一个通用的电子现金系统的设计[摘要]自从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)网站服务器:商家必须建立一个网站服务器,这样用户可通过浏览器查看商家商品相关信息。