iT邦幫忙

2022 iThome 鐵人賽

DAY 19
1
自我挑戰組

簡介密碼學系列 第 19

Day19- ElGamal加密算法

  • 分享至 

  • xImage
  •  

從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太像了不敢要錢?)
而免錢的真香,讚啦


上一篇
Day18- Diffie–Hellman
下一篇
Day20- Man-in-the-middle
系列文
簡介密碼學30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言