基于RSA签名的电子现金协议是由Chaum于1982年提出的。它是一个在线电子现金方案,由以下几个部分组成。
(1)初始化协议
②银行选取公钥e,满足gcd(e,(p-1)(q-1))=1。
③银行用欧几里得扩展算法计算私钥d,使之满足:ed=1 modφ(n),φ(n)是欧拉函数。
e和n是公开的,d是保密的,p、q及φ(n)由银行秘密销毁。H()是公开的单向函数。
(2)提款协议
顾客向银行证明身份后,提出取款要求,银行允许后双方执行以下协议。
①顾客随机选择m,选取随机数r∈Z*n作为盲因子,计算
并将m′发送给银行。
②银行用自己的私钥对m′签名(www.daowen.com)
并将s′发送给顾客。
③顾客对签名进行除盲
可得到电子现金{m,[H(m)]d}。
(3)支付及存款协议
①顾客将电子现金{m,[H(m)]d}传送给商家。
②商家验证{m,[H(m)]d}e=H(m)mod n,如果等式成立,将电子现金传送给银行。
③银行确定电子现金的有效性及有无重复花费,若无,则将商家的账户增加相应的金额,同时将此笔电子现金存入资料库中。
该协议是最早被提出的电子现金协议,效率也较高。但是,它也存在一些安全问题:①该协议对顾客的隐私是无条件保护的,容易被不法分子利用,进行洗黑钱等犯罪活动;②该协议中的电子现金未嵌入顾客的任何身份信息,从而拥有该电子现金的任何人都可花费该电子现金。
盲签名使得用户能够在不泄露待签名信息m的内容的前途下取得银行的签名,但是银行必须确信m是依据正确的方式生成的,为了追踪重复花费者,还必须包含用户的身份信息。Chaum首先提出了剖分选择方法来解决这一问题,但剖分选择方法会极大地降低系统的效率。为防止电子现金重复花费,银行需要维护所有花费过的电子现金数据库,该数据库会无限增长。为了避免数据库无限增长,一种解决方法是规定电子现金的有效期,那么数据库中所有超期的电子现金记录就可以删除掉。另一种解决方法是使用部分盲签名和公平盲签名。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。