1. 程式人生 > >密碼學_Elgamal密碼體制 1

密碼學_Elgamal密碼體制 1

Elgama演算法是基於離散對數的演算法,應用於數字簽名標誌DSS、S/MIME電子郵件標準,

與Diffie-Hellman一樣,Elgama演算法也是使用者共同選擇一個素數q,α是q的素根,使用者A生成的祕鑰對如下:

  1. 隨機生成整數 XA,1<XA<q-1
  2. 計算 YA=α^XA mod q
  3. A的私鑰為 XA, 公鑰為 {q, α, YA}

 

 其他任何使用者B通過A的公鑰可以加密資訊:

  1. 將資訊表示為一個整數M,1<=M<=q-1, 以分組密碼序列的方式來發送資訊,其中每個分塊的長度不小於整數q
  2. 選擇任意整數k,1<=k<=q-1
  3. 計算一次祕鑰 k=(YA)^k mod q
  4. 將M加密城明文對 (C1,C2), C1=α^k mod q,   C2=K·M mod q 

 

用A恢復明文: 

  1. 計算 K= (C1)^XA mod q 恢復祕鑰
  2. 計算 M=(C2·K^-1) mod q

 

以上是Elgama演算法加密全部過程