evo真人(中国)

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

盲簽名數學原理

TIME:2019-03-21 13:40  click: 278 次 來源: 未知

由於Intemet的普遍運用,傳統的生活方式正逐漸向電子化、網絡化的方向开展,如人們利用網絡購物,在家中就可以買到所需品,網絡便捷帶來了眾多的安全隱患。消費者使用有銀行的數字簽名的電子現金時的安全保護技術,此時就要用到盲簽名技術。以下是RSA盲簽名體制的步驟和實例:

(1)參數選擇。系統隨機選取兩個大素數P和q,計算n=pq;再計算n的歐拉函數∂(n)=(p-1)(q-1),計算完後,n可以公開。然後選擇一個與中∂(n)互素的整數e作為某用戶的公鑰(這樣e才會具有乘法逆元)。求出e的乘法逆元,將該結果作為私鑰d,即de=1 mod ∂(n)。將d保密,(d,m)作為私鑰,將e公開,(e,n)作為公鑰。p、q和中∂(n)都需要保密。

(2)簽名過程。用戶(請求籤名者)選擇待簽名的消息m∈Zn*和一個隨機數r∈Zn作為盲因子,並用簽名方的公鑰e對原消息進行盲化,計算

m'=mre mod n

然後把盲化的消息m'發送給簽名者進行簽名。

簽名者收到m'後,用自己的私鑰d對其進行簽名,計算

Sign(m')=(m')d mod n

可見簽名過程和普通RSA簽名完全一致,然後把Sign(m')作為m'的簽名發送給用戶。

(3)脫盲過程。求籤名者收到Sign(m')後,對其進行脫盲運算,只要計算

Sign(m)=Sign(m')/r mod n

Sign(m)就是對原消息m的直接簽名,即Sign(m)=md mod n,這是因為

Sign(m)=Sign(m')/r=(m')d/r=(mre)d/r

=md red/r mod n=md r/r mod n=md mod n

(4)驗證簽名。由於Sign(m)就是對原消息m的直接簽名,因此驗證者可以用簽名者的公鑰e像驗證普通RSA簽名一樣驗證簽名。即驗證如下等式是否创建:

m=(Sign(m))e mod n

【例】取p=3,q=11,則n=33,∂(n)=20,再取公鑰e=3,計算得知d=7.

設明文m=6,任取隨機數r=5;求m的盲簽名,並對盲簽名進行驗證。

解:m'=6×53 mod 33=750 mod 33=24

Sign(m')=247 mod 33=18

Sign(m)=18×5-1 mod 33→5×Sign(m)mod 33=18,得Sign(m)=30。

驗證:m=6;(Sign(m))e mod n=303 mod 33=6.

兩者相等,說明簽名是有效的。

 

上一篇:rsa數字簽名過程 下一篇:電子商務安全技術分析