电子现金设计

时间:2022-07-17 10:26:56

电子现金设计

[摘要]自从1983年Chaum首次提出盲数字签名的概念以来,不少研究者相继提出了许多电子现金方案,但迄今为止却很少有研究者讨论电子现金系统的具体设计。本文简要回顾了电子现金的发展和电子现金设计中涉及的关键密码技术,最后介绍了一个可以运行于离线的、匿名性可控的、可防止重复消费的、通用的电子现金系统的设计。

[关键词]电子现金匿名性盲签名切割选择技术Applet

一、引言

20世纪90年代以来,随着计算机网络技术的飞速发展,在全世界范围内掀起了电子商务的热潮,电子支付是电子商务中最为关键的重要组成部分。为了保护用户的合法权利,保障交易的匿名性和不可跟踪性,发展了一种新的电子支付方式即电子现金。理想的电子现金应有具有独立性、安全性、匿名性、离线性、可传递性和可分性等特点。

电子现金的发展已经经历过20多年的历史。1982年D.Chaum最早提出盲签名的概念,并在RSA盲签名的基础上设计了一个在线的、完全匿名的电子现金方案。之后,Chaum等人利用切割选择技术和RSA盲数字签名技术,于1988年提出了一个离线的、完全匿名的电子现金方案。1991年Okamoto等基于切割-选择技术,采用二叉树结构表示电子现金,提出第一个可分的电子现金方案。1993年Brands提出限制性盲数字签名的概念,并在此基础上,提出了一个离线的、完全匿名的、具有重复花费者追踪功能的电子现金方案。1995年,Stadler和Brickel分别独立地提出离线、匿名性可控制的电子现金方案,称为公平电子现金方案。1996年Frankel等基于间接论述证明,提出一个基于可信方的离线、公平的电子现金方案。同年Abe等提出了部分盲数字签名的概念,并基于部分盲数字签名构建了第一个可以在电子现金中植入有效期的匿名的、离线的电子现金系统。1997年Jakobsson等[9]提出基于魔力墨水数字签名技术实现公平电子现金方案。1998年,Lysyanskaya和Ramzan结合群数字签名与盲数字签名协议,首次提出了群盲数字签名协议的概念,并且构造了一个多个银行参与发行电子现金的完全匿名的电子现金方案。2001年,王常吉等人把群盲数字签名协议与限制性盲签名相结合,提出了群限制性盲签名的概念,并在此基础上构造了一个多银行参与发行的、公正的可控匿名的电子现金方案。

然而,目前已提出的电子现金系统偏重于理论研究,很少有文章讨论电子现金系统的设计问题。本文介绍了电子现金方案中常用的关键技术,设计了一个离线的、匿名性可控的电子现金系统。

二、电子现金方案中的关键密码技术

为了保证电子现金的匿名性,常用的相关密码技术如下:

1.盲签名

盲签名就是接收者在不让签名者获取所签署消息具体内容的情况下所采取的一种特殊的数字签名技术,它除了满足一般的数字签名条件外,还必须满足下面的两条性质:

盲性:签名者对其所签署的消息的具体内容是不可见的。

不可链接性:当签名信息被公布后,签名者不能将签名与盲消息联系起来。

在电子现金支付系统中,盲签名能很好地保证电子现金的匿名性,因此在电子现金系统中得到广泛的应用。但是,在盲签名中,签名人完全不知道最终签名的任何信息,可能造成签名被非法使用等问题。

2.限制性盲签名

限制性盲签名是由Brands提出的,在限制性盲签名中,消息提供者要把其公钥附在盲化的消息后面作为待签信息的一部分交给签名者;签名的验证方要求消息的提供者用其私钥签名,用收到的公钥验证后才予以接收。对于离线的、匿名的电子现金系统来说,限制性盲签名很好地保护了合法用户身份的匿名性,同时可以对重复花费电子现金的非法用户进行匿名性撤销。

3.群签名

在一个群签名方案中,允许群体中的任意一个成员以匿名的方式代表整个群体对消息进行签名。与其他的数字签名一样,群签名可以用惟一的群公钥来公开验证,但人们却无法揭露具体签名者的身份,也无法判断两个群签名是否是由同一个群成员签署。当发生争议时(如产生法律纠纷时),惟一指定的群管理者能够“打开”群签名,揭示签名者的身份。一个好的群签名方案应该满足以下的安全需求:匿名性、不关联性、防伪造性、可跟踪性、防陷害攻击、抗联合攻击。在电子现金系统中,群签名用于设计多银行的电子现金系统。中央银行作为群管理者,每个银行拥有自己的群成员证书,用于代表整个群签发电子现金。

对离线电子现金系统,为了防止电子现金的重复花费,目前主要有两种解决方法:

(1)事前阻止

事前阻止是依赖防篡改智能卡的物理安全性,以达到电子现金重复花费的事前阻止。该方法最早由Brands提出,在电子现金方案中置入了一个防窜扰的设备(如智能卡)以保护银行与用户的利益,用户的计算机可以看成是储存电子现金的电子钱包,同时,防篡改设备可以看成是该电子钱包内的一个观察者,防窜扰设备用以确保用户不能重复花费电子现金,而电子钱包确保银行不能够毫无根据地指控用户重复花费。

(2)事后检测

可以利用切割选择技术和限制性盲签名技术。切割选择技术即用户在提取电子现金时,不能让银行知道电子现金中用户的身份信息,但银行需要知道提取的电子现金是正确构造的。切割选择技术是用户正确构造N个电子现金传给银行,银行随机抽取其中的N-1个让用户给出它们的构造,如果构造是正确的,银行就认为另一个的构造也是正确的,并对它进行签名。

为了防止犯罪分子利用电子现金的匿名性进行诸如洗钱、勒索、非法购买等非法活动,研究者提出公正的盲数字签名技术来实现电子现金的匿名性可撤销。公正的盲数字签名除了具有盲签名的性质外,还具有如下性质:可信方可以给签名者发送一些信息,使得签名者能把所签名的消息与协议的执行场景(viewofprotocol)联系起来。公正的盲签名协议机制模型包括签名者、发送者(也是签名的接收者)、可信实体与签名协议和联系恢复协议。执行签名协议后,发送者接收到一个消息的签名,而且签名者不能把该签名与执行场景联系起来。通过执行联系恢复(link-recovery)协议,签名者从可信实体处获得一些辅助信息,使得签名者能把签名与执行场景联系起来。

三、电子现金支付系统结构设计

电子现金系统开发工具选用JAVA语言,在用户端主要是下载并运行Applet,可确保从远方来的Applet在执行时,不会对用户端的电脑造成伤害,也不会将电脑病毒传播进来。系统在通信时,采用SSL协议,确保通信安全。电子现金系统包括有3个实体:银行、商家以及用户。系统结构图如图1所示。

图1系统结构图

1.银行

(1)银行网站服务器:银行必须建立一个网站服务器,这样用户可通过浏览器进行开户、查看自己账户相关信息等相关操作。

(2)取款Applet:用户通过取款Applet与银行通信,并通过操作用户本地文件系统将电子现金数据存入用户计算机。

(3)存款Applet:用户通过存款Applet与银行通信,并通过操作用户本地文件系统将电子现金读取出来以发送给银行。

(4)银行管理系统:银行使用管理系统来管理和操作数据库中的电子现金。

(5)数据库:银行用数据库来存储电子现金数据。

2.商家

(1)网站服务器:商家必须建立一个网站服务器,这样用户可通过浏览器查看商家商品相关信息。

(2)付款Applet:用户通过付款Applet与商家电子钱包通信,并通过操作用户本地文件系统将电子现金读取出来以发送给商家电子钱包。

(3)电子钱包:商家通过电子钱包软件来管理并操作商家接收的电子现金。

(4)数据库:商家通过数据库来存储电子现金数据。

3.用户

(1)浏览器:用户使用浏览器来查看其在银行的账户信息以及商家的商品信息,并利用浏览器运行各种Applet以实现网上支付。

(2)文件系统:用户的电子现金是以文件形式存储在用户计算机上的。

四、电子现金支付系统流程设计

1.开户

用户携带证件,先到银行开立账户,取得个人账户信息。银行先确认其合法身份,建立消费者数据库,并将消费者的相关信息存入数据库。为实现重复消费者检测功能以及可撤销匿名,用户和银行还需要执行零知识证明协议。

2.取款过程

取款过程如图2所示。

①用户浏览银行网站,银行网站服务器向用户发送由银行数字签名的取款Applet。

②用户浏览器用银行的数字证书验证取款Applet,如果验证成功,则下载并运行取款Applet。

③用户在取款Applet中输入需要取得的电子现金相关信息(譬如面值、数量),确认取款后,Applet将生成电子现金数据发送给银行管理系统。

④银行管理系统接收到电子现金数据后,对其进行验证,若验证成功,则对其进行盲签名,然后将盲签名后的电子现金数据回发给用户的取款Applet。同时,银行管理系统从用户账户中扣除相应金额。

⑤用户Applet将得到的数据解开盲数字签名得到电子现金的银行签名,并将电子现金和签名一并以文件形式存储于用户计算机中。同时,取款Applet显示一条消息以提示用户取款成功。

3.支付过程

支付过程如图3所示。

图3支付过程

①用户浏览商家网站,商家服务器向用户发送支付Applet。

②用户浏览器下载并运行支付Applet之后,用户可通过操作支付Applet向商家支付电子现金。

③支付Applet显示出用户所拥有的电子现金以供用户选择。在用户选择完电子现金之后,支付Applet读取相应电子现金数据,并发送给商家的电子钱包。

④商家电子钱包使用银行公钥验证所接收的电子现金的银行签名,若电子现金有效,则商家电子钱包将所收到的电子现金存入数据库,并向用户的支付Applet发送确认消息。

(4)存款过程

存款过程如图4所示。

图4存款过程

①商家浏览银行网站,银行网站服务器向商家发送存款Applet。

②商家浏览器下载存款并运行存款Applet后,商家可通过存款Applet向银行进行存款操作。

③存款Applet显示出商家所拥有的电子现金以供商家选择。在商家选择完电子现金之后,存款Applet读取相应电子现金数据,并发送给银行管理系统。

④银行管理系统使用银行公钥验证所接收的电子现金的银行签名,并搜索数据库查看该电子现金是否被重复消费。如果没有被重复消费,则存储该电子现金及相应参数。银行从商家账户中增加相应的金额并返回一条确认消息。

五、结论

本文介绍了电子现金支付系统中用到的关键密码技术,详细介绍了一个通用的、离线匿名的电子现金系统的设计。由于该系统避免了第三方实体(例如:信用卡中心等)的介入,使得交易更加直接,也节省了交易时候的通信负担和与第三方实体发生通信时候的成本,实现了离线性。可以利用盲签名技术和切割选择的方法,实现匿名性,但当用户重复消费时,银行能揭示出作弊者的实际身份。交易过程中涉及到用户、商家以及银行之间的通信是通过Applet来完成的,对Applet签名排除了所有其他非法Applet在浏览器上运行的可能性,保证了电子现金的安全性。

参考文献:

[1]D.Chaum.BlindSignatureforuntraceablepayment.InAdvancesinCryptology-CRYPTO’82,1983:199~203

[2]D.Chaum,etc..UntraceableElectronicCash.InAdvancesinCryptology-CRYPTO''''88,1989:3~327

[3]T.Okamato,K.Ohata.Universalelectroniccash.InAdvancesCryptology-CRYPTO’91.LectureNotesinComputerScience576,Springer-Verlag,1991:324~327

[4]S.Brands.Anefficientoff-lineelectroniccashsystembasedontherepresentationproblem.ReportsCS-R9323,CentrumvoorWiskundeenInformatica,March1993

[5]M.Stadler,etc..FairBlindSignature.InAdvancesinCryptology-EUROCRYPT''''95,LectureNotesinComputerScience921,Springer-Verlag,1995:209~219

[6]E.Brickell,P.Gemmell,D.Kravitz.Trustee-basedtracingextensionstoanonymouscashandthemakingofanonymouschange.InProceedingsofthe6thAnnualACM-SIAMSymposiumonDiscreteAlgorithms,1995:157~166

[7]Y.Frankel,etc..IndirectDiscourseProofs:AchievingEfficientFairOff-LineE-cash.InAdvancesinCryptology-ASIACRYPT''''96,LectureNotesinComputerScience1163,Springer-Verlag,1996:286–300.

[8]M.Abe,E.Fujisaki.HowtoDateBlindSignatures.InAdvancesinCryptology-ASIACRYPT''''96,LectureNotesinComputerScience1163,Springer-Verlag,1996:244~251,1996

[9]M.Jakobsson,M.Yung.Distributedmagicinksignatures.InAdvancesinCryptology-EUROCRYPT''''97,LectureNotesinComputerScience1233,Springer-Verlag,1997:450~464

[10]A.LysyanskayaandZ.Ramzan.GroupblindDigitalSignatures:AScalableSolutiontoElec-troniccash.InFinacialCryptography''''98,LNCS1465,184-197,Springcr-Verlag,1998

[11]王常吉,蒋文保,裴定一.用限制性群签名构造电子现金系统.通信学报,22(12),63~69,2001.12

上一篇:电子商务安全模型管理 下一篇:商务企业信息管理