天天看點

【密碼學原理】橢圓曲線密碼學

要建立基于橢圓曲線的密碼體制,需要有類似因子分解兩個素數之積或者求離散對數這樣的困難問題。

如果對于方程

【密碼學原理】橢圓曲線密碼學

,其中

【密碼學原理】橢圓曲線密碼學

,對給定的

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

計算

【密碼學原理】橢圓曲線密碼學

是容易的,但是對給定的

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

計算

【密碼學原理】橢圓曲線密碼學

是困難的,我們認為這就是橢圓曲線的離散對數問題。

用橢圓曲線密碼實作Diffie-Hellman密鑰交換

橢圓曲線的方程為

【密碼學原理】橢圓曲線密碼學

或者

【密碼學原理】橢圓曲線密碼學

,選擇大整數

【密碼學原理】橢圓曲線密碼學

和參數

【密碼學原理】橢圓曲線密碼學

,其中

【密碼學原理】橢圓曲線密碼學

為素數

【密碼學原理】橢圓曲線密碼學

,或者形為

【密碼學原理】橢圓曲線密碼學

的整數。橢圓群

【密碼學原理】橢圓曲線密碼學

,在

【密碼學原理】橢圓曲線密碼學

中挑選基點

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

的階為一個非常大的數

【密碼學原理】橢圓曲線密碼學

,點

【密碼學原理】橢圓曲線密碼學

的階

【密碼學原理】橢圓曲線密碼學

使得

【密碼學原理】橢圓曲線密碼學

成立的最小正整數。

Alice和Bob之間完成密鑰交換的過程如圖所示

【密碼學原理】橢圓曲線密碼學

要破解這種體制,攻擊者必須由

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

算出

【密碼學原理】橢圓曲線密碼學

,但這個是困難的。

這裡的密鑰是一對數字。

橢圓曲線加密和解密

首先将明文

【密碼學原理】橢圓曲線密碼學

編碼為形如

【密碼學原理】橢圓曲線密碼學

的點

【密碼學原理】橢圓曲線密碼學

,并對點

【密碼學原理】橢圓曲線密碼學

加密和解密。

Alice選擇一個私鑰

【密碼學原理】橢圓曲線密碼學

,産生公鑰

【密碼學原理】橢圓曲線密碼學

Alice将

【密碼學原理】橢圓曲線密碼學

加密後發送給Bob,A随機選擇一個正整數

【密碼學原理】橢圓曲線密碼學

,産生密文

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

Bob對密文解密,需要用第二個點減去第一個點與Bob的私鑰之積:

【密碼學原理】橢圓曲線密碼學

Alice通過将

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

相加來僞裝消息

【密碼學原理】橢圓曲線密碼學

,隻有ALice知道

【密碼學原理】橢圓曲線密碼學

是以除了Alice其他人不能僞裝

【密碼學原理】橢圓曲線密碼學

,但是在僞裝後的消息中包含了線索,是以在已知私鑰

【密碼學原理】橢圓曲線密碼學

的時候可以除去僞裝。

要破解這種體制,攻擊者必須由

【密碼學原理】橢圓曲線密碼學

【密碼學原理】橢圓曲線密碼學

算出

【密碼學原理】橢圓曲線密碼學

,但這個是困難的。

【密碼學原理】橢圓曲線密碼學

繼續閱讀