文章横幅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数字签名过程 下一篇:CA的作用