從DF衍伸而來的加密法
雖然DF不是一個加密演算法而是一個用於金鑰交換的系統,但離散對數的問題應用被帶入密碼學的應用當中,
於是在西元1985年 塔希爾·蓋莫爾 提出了ELGamal算法,一種基於離散對數為基本的非對稱式加密演算法,
而這套演算法現在也和RSA一樣被廣泛使用
算法
金鑰生成
- 選擇一個安全的質數p,何其原根g
- 從質數p生成循環群P:{1,2,3,....p-1}
- 從P中隨機選擇一個數b(2<=b<=p-2)
- 計算h=g^b mod p
- 公開h、g、p、P作為公鑰, 保留b作為私鑰
加密
- 要傳送訊息的Alic選擇一個a屬於{2....p-2}
- 計算c1=h^a mod p
- 計算遮蔽金鑰c2=h^a mod p
- 將訊息pt投射到P上成x
- 加密訊息ct=x⋅c2 mod p
- 將ct和c1寄給Bob
解密
- Bob收到ct和c1後
- 計算遮蔽金鑰c2=c1^b mod p
- 計算c2在群P中的反元素c2'(模逆原)
- 計算x=ct⋅c2' mod p
- 將x映射回pt
注意
每次的a,b最好都要重新選擇以保證安全
好處
和RSA類似都大量被用於混合加密對稱式加密的金鑰
但RSA是有被註冊的所以使用上需要付錢給RSA這家公司
而ElGamal沒有註冊版權(和DF太像了不敢要錢?)
而免錢的真香,讚啦