ECC算法整理紀要


初始ECC算法

1、用戶A 密鑰生成

(1):用隨機數發生器產生隨機數k[1,n-1];

(2):計算橢圓曲線點PA=[k]G,為公鑰,k為用戶A私鑰;

2、 用戶B加密算法及流程

設需要發送的消息為比特串M,klen為M的比特長度。

為了對明文M進行加密,作為加密者的用戶B應實現以下運算步驟:

(1):用隨機數發生器產生隨機數r[1,n-1](隨機數r為用戶B的私鑰);

(2):計算橢圓曲線點C1=[r]G=(x1,y1),,將C1(用戶B的公鑰)的數據類型轉換為比特串;

(3):計算橢圓曲線點C2=[r]=(x2,y2),將C2的數據類型轉換為比特串;

(4):計算C 3= M*x2(modp)

(5):輸出密文C=(x1,y1,C3)

(一個M對應一個C;)

3、 用戶A解密算法及流程

(1):從密文C中取出C1(x1,y1)。

(2):使用私鑰k計算點C4(x2,y2)=k C1=k ( x1,y1)。

(3):在中計算。

(4):最后計算明文P = C3,解密完成。

明文嵌入ECC算法

1、密鑰生成用戶A

(1):用隨機數發生器產生隨機數k[1,n-1];

(2):計算橢圓曲線點=[k]G,為公鑰,k為用戶A私鑰;

2、 用戶B加密算法及流程

設需要發送的消息為比特串M,klen為M的比特長度。

為了對明文M進行加密,作為加密者的用戶B應實現以下運算步驟:

(1):用隨機數發生器產生隨機數r[1,n-1](隨機數r為用戶B的私鑰);

(2):計算橢圓曲線點C1=[r]G=(x1,y1),,將C1(用戶B的公鑰)的數據類型轉換為比特串;

(3):計算橢圓曲線點C2=[r]=(x2,y2),將C2的數據類型轉換為比特串;

(4):將明文M表示成一個域元素,即將明文轉換成橢圓曲線上的點

(5):計算C 3=  C2

(6):輸出密文C=(x1,y1,C3)

(一個對應一個C)

3、 用戶A解密算法及流程

(1):從密文C中取出C1(x1,y1)。

(2):使用私鑰k計算點C4(x2,y2)=k C1=k ( x1,y1)

(3):從密文C中取出C3。

(4):最后計算明文P = C3- C4,解密完成。(解密時以密文點對中第二及之后的點減A對應私鑰與第一個點對的倍乘)

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM