Trust钱包科技

    文章横幅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数字签名过程 下一篇:电子商务安全技术分析