evo真人(中国)

文章橫幅PC版
文章橫幅iPad版
文章橫幅手機版

ElGamal數字簽名

TIME:2019-03-21 13:39  click: 265 次 來源: 未知

ElGamal數字簽名算法需要使用隨機數,它是一種非確定性的簽名方案,但它的運算過程並非是ElGamal加密算法的逆過程。

1.用戶選擇密鑰

系統先選取一個大素數p及p的本原根a,用戶A選擇一個隨機數x(1xp-1)作為自己的私鑰,計算y=axmod p,將y作為自己的公鑰。整個系統公開的參數有大素數p、本原根a以及每個用戶的公鑰;而每個用戶的私鑰x則嚴格保密。

2.簽名過程

給定消息M,用戶A進行下述計算來實現簽名。

(1)選擇隨機數k∈Zp*,且k與p-1互素(注意:隨機數k需要保密)。

(2)簽名方A對消息M進行散列壓縮後得到消息散列碼H(M),再計算

r=ak mod p

s=(H(M)-xr)k-1mod(p-1)

將(r,s)作為用戶A對消息M的數字簽名,與消息M一起發送給接收方。

3.驗證簽名的過程

接收方B在收到消息M與數字簽名(r,s)後,先計算消息M的散列碼H(M)。然後計算

yrrs mod p=aH(M) mod p

如果上式创建,則可確信(r,s)為有效簽名,否則認為簽名是偽造的。

4.證明驗證簽名的正確性

若(r,s)為合法用戶採用 ElGamal數字簽名算法對消息M的簽名,則

yrrs=(ax)r(ak)s=axr+ksmod p

又因為

s=(H(M)-xr)k-1mod(p-1)

兩邊乘k再移項得

ks+xr=H(M)mod(p-1)

根據模運算規則有

axr+ks=aH(M)mod pmod p

由費馬定理的推論,ak=ak mod(p-1)mod p,將k替換成H(M),有

axr+ks=aH(M)mod p

因此有

yrrs=aH(M)mod p

 

上一篇:什麼是虛擬專用網絡 下一篇:IPSec的工作原理