Elgamal-Encryption
ElGamal 密碼的長度
好的,這是一個愚蠢的問題,但我想確定一下。
ElGamal 密碼的長度是多少?它等於循環群的 2 個元素的大小,對吧?但是元素的長度並不總是相同的,對吧?
玩具範例:
我們選擇 p = 23, q = 11 (p = 2q+1),我們的生成器是 18,所以 G = {18,2,13,4,3,8,6,16,12,9,1}。秘密密鑰 x 為 6(隨機形式 {1,q-1}),h = g^x mod p = 8。
現在是有趣的部分:
m = 18 和 r = 8 的加密是 (16,3)
m = 18 和 r = 7 的加密是 (6,9)
我得到不同長度的密碼是因為它是玩具範例還是什麼?填充?所有組元素的長度都相同嗎?我沒有註意到真正的 ElGamal 實現有任何長度差異。
一種常見的可能性是您的非玩具 ElGamal 密碼將整數表示為固定寬度的八位字節字元串,其寬度足以容納基本欄位中的任何元素;這可能與PKCS#1v2.2或等效的 I2OSP 一起使用,但還有許多其他(不太常見的)方法。
另一種可能性是您沒有努力為您的非玩具 ElGamal 密碼找到更短的密文。當使用ASN.1表示整數時,數字大小是八位字節,對於某些參數,整數可能低於最大大小且機率很低,例如低至約 1/256 ≈ 0.4%。即使有兩個整數,也可能需要進行數百次嘗試才能觀察到低於通常大小的密文。還有其他約定,觀察較短的密文需要數十億次嘗試。