(Electronic Cash)其实是一种用电子形式模拟现金的技术。电子现金系统企图在多方面为在钱交易复制现金的特性:方便、费用低(或者没有交易费用)。不记名以及其他性质。但不是所有的电子现金系统都满足这些特点,多数电子现金系统都能为小额在线交易提供快捷与方便。

电子现金系统概述


   电子商务是通过 Internet网所进行的商务活动,对于电子商务一个非常关键的要求就是要有一个安全高效的电子现金系统。自 19 8 2年D. Chaum[2]发表第一篇关于电子现金系统的论文以来,在电子现金系统的研究方面已取得了很多研究成果。

电子现金系统基本概念


  电子现金( E-cash )又称为 电子货币 ( E-money )或数字货币( digital cash ),是一种非常重要的 电子支付系统,它可以被看作是现实货币的电子或数字模拟,电子现金以数字信息形式存在,通过互联网流通。但比现实货币更加方便、经济。它最简单的形式包括三个主体:商家,用户,银行;和四个安全协议过程:初始 化协议,提款协议,支付协议,存款协议。第一个电子现金方案是由Chaum [2]在1982年提出,他利用盲签名技术来实现,可以完全保护用户的隐私权。但这种完全匿名的电子现金也为许多不法分子提供了方便,他们利用电子现金的完全匿名性进行一些违法犯罪活动,例如贪污、非法购买(如购买×××、军火等 )、敲诈勒索等。警方即便拿到赃款,也不能抓出犯罪分子。基于这个原因,合理的电子现金系统应该是不完全或条件匿名的。1995年,Stadler等人 [3]提出了公平盲签名 ( fair blind signature)的概念,可以用于条件匿名的支付系统。1996年,Camenisch等人[4]和 Frankel等人[5]分别独立地首次提出了公平的离线电子现金( fair off-line electronic cash )的概念,同时给出了两个方案。公平电子现金中的用户的匿名性是不完全的,它可以被一个可信赖的第三方 ( TTP)撤消,从而可以防止利用电子现金的完全匿名性进行的犯罪活动。
  电子现金在其生命周期中要经过提取、支付和存款 3个过程,涉及用户、商家和银行等 3方。电子现金的基本流通模式如图 1所示。用户与银行执行提取协议从银行提取电子现金;用户与商家执行支付协议支付电子现金;商家与银行执行存款协议 ,将交易所得的电子现金存入银行。典型的电子现金支付模型如下:

电子现金的分类

  * 电子现金系统根据其交易的载体可分为基于账户的电子现金系统和基于代金券的电子现金系统;
  * 根据电子现金在花费时商家是否需要与银行进行联机验证分为联机电子现金系统和脱机电子现金系统;
  * 根据一个电子现金是否可以合法的支付多次将电子现金分为可分电子现金和不可分电子现金。
  电子现金应具有的基本特性

性质

  电子现金在经济领域起着与普通现金同样的作用,对正常的经济运行至关重要。电子现金应具备以下性质 :
  1. 独立性: 电子现金的安全性不能只靠物理上的安全来保证,必须通过电子现金自身使用的各项密码技术来保证电子现金的安全;
  2. 不可重复花费: 电子现金只能使用一次,重复花费能被容易地检查出来;
  3. 匿名性:银行和商家相互勾结也不能跟踪电子现金的使用,就是无法将电子现金的用户的购买行为联系到一起,从而隐蔽电子现金用户的购买历史;
  4. 不可伪造性:用户不能造假币,包括两种情况:一是用户不能凭空制造有效的电子现金;二是用户从银行提取N个有效的电子现金后,也不能根据提取和支付这N个电子现金的信息制造出有效的电子现金;
  5. 可传递性:用户能将电子现金像普通现金一样,在用户之间任意转让,且不能被跟踪;
  6. 可分性:电子现金不仅能作为整体使用,还应能被分为更小的部分多次使用,只要各部分的面额之和与原电子现金面额相等,就可以进行任意金额的支付;

电子现金系统中使用的密码技术


  电子现金的安全性和可靠性等主要是依靠密码技术来实现的,主要有:
  1. 分割选择技术: 用户在提取电子现金时,不能让银行知道电子现金中用户的身份信息,但银行需要知道提取的电子现金是正确构造的。分割选择技术是用户正确构造N个电子现金传给银行,银行随机抽取其中的N-1个让用户给出它们的构造,如果构造是正确的,银行就认为另一个的构造也是正确的,并对它进行签名。
  2. 零知识证明:证明者向验证者证明并使其相信自己知道或拥有某一消息,但证明过程不能向验证者泄漏任何关于被证明消息的信息。以上两种技术用于将用户的身份信息嵌入到电子现金中。
  3. 认证:认证一方面是鉴别通信中信息发送者是真实的而不是假冒的;另一方面是验证被传送信息是正确和完整的,没有被篡改、重放或延迟。
  4. 盲 数字签名: 签名申请者将待签名的消息经"盲变换"后发送给签名者, 签名者并不知道所签发消息的具体内容, 该技术用于实现用户的匿名性。

电子现金系统方案

  电子现金设计的基本流程如下:
  1. 取款协议(Withdrawal Protocol):用户从自己的银行帐户上提取电子现金。为了保证用户匿名的前提下获得带有银行签名的合法电子现金,用户将与银行交互执行盲签名协议,同时银行必须确信电子现金上包含必要的用户身份。一般取款协议分为如下两步子协议:
  * 开户协议。这一步通常计算量较大,用于向用户提供包含其身份信息的电子执照。
  * 取款协议。这一步只是单纯的盲签名过程,用户能够从其帐户中提取电子现金。
  2. 支付协议(Payment Protocal):用户使用电子现金从商店中购买货物。通常也分为两个子协议:
  * 验证电子现金的签名,用于确认电子现金是否合法。
  * 知识泄露协议。买方将向卖方泄露部分有关自己的身份的信息,用于防止买方滥用电子现金。
  3. 存款协议(Deposit Protocal):用户及商家将电子现金存入到自己的银行账户上。在这一步中银行将检查存入的电子现金是否被合法使用,如果发现有非法使用的情况发生,银行将使用重用检测协议跟踪非法用户的身份,对其进行惩罚。
  离线电子现金具体方案:
  一、初始化协议(只执行一次)
  银行B基于离散对数问题选择参数:选择两个大素数p、q 且q |(p-1)。定义乘法群ZP上的阶为素数q的子群Gq以及Gq的一个生成元组(g,g 1,g 2),银行B的签名私钥x∈Zq ,无碰撞单向散列函数H0、H1,银行B公开其公钥y =g x,以及p、q、g、g 1、g 2、H0、
  H1(为了简单起见,只考虑单一面额和单一有效期,不同签名私钥对应电子现金的不同面额。)
  用户U设置(开户协议):选取u1∈RZq,计算I U=(g 1) u1作为用户的银行账号,并将知识证明的签名SPK{a|I U=g 1 a}(m)传给银行,这里m表示用户的身份识别信息,银行验证此知识证明的签名,若验证成功,存储I U与用户的身份识别信息。
  二、取款协议(银行和用户之间的认证及盲签名协议)
  1. 用户→银行:用户先通过身份识别协议(如schnorr协议),向银行证明自己是其账号的持有者,然后将取款需求(电子现金的面值,数量等)传送给银行;
  2. 银行→用户:银行先验证用户提交的身份识别信息,然后选取w∈RZq,计算a 0=gw,b0=(I Ug 2)w,z0 = (I Ug 2)x ,传送a 0,b0 ,z0给用户。
  3. 用户→银行:选取x 1, x 2,s,u,v∈RZq ,计算B=g 1 x1g 2 x2,A=(I Ug 2) s ,z= (z0) s , a= (a 0)ugv , b=(b0)suAv ,c=H0(A‖B‖z‖a‖b) ,c 0=c/umod q, 传送c 0给银行。
  4. 银行→用户:计算r 0= w+c 0x mod q, 传送r 0给用户,同时借记用户的账号。
  5. 用户:检查gr 0 yc0a 0和 (I Ug 2)r0 (z0)c0b0 , 若验证通过, 则计算r=v+r 0u1 mod q 。取款协议实际上是一个盲签名协议,一个签名Sign(A, B)=(z,a,b,r)有效,当且仅当gr = yH0 (A‖B‖z‖a‖b)a和A r=zH0 (A‖B‖z‖a‖b)b成立。用户得到的电子现金为Coin = {A,B,Sign(A,B)}
  三、支付协议(在匿名信道上的用户U和商家S的协议)
  1. 用户→商家:用户将电子现金Coin发送给商家。
  2. 商家→用户:验证电子现金Coin上银行的签名,若验证通过,则计算质询串d=H1(A‖B‖Is),然后将质询串d传送给用户U。其中Is表示商家在银行的账户。
  3. 用户→商家:用户计算出应答r1 =d(u1s) +x 1mod q,r2=ds+x 2modq,将(r1,r2)发送给商家。
  4. 商家:检验g 1 r1g 2 r2AdB,若检验通过,则接受用户的支付,否则拒绝。
  四、存款协议
  商家传送支付协议的一个副本给银行, (如商家一样地)检验电子现金上银行的盲签名Sign(A,B) = (z,a,b,r)是否有效,若检验通过,银行在此数据库中存储(A,r 1,r 2,I s),并且在商家的账户中存入电子现金相应的金额。
  方案的安全性分析
  该电子现金系统方案的安全性是建立在计算离散对数问题困难性的基础上的。
  无法伪造合法的电子现金
  不法用户即使以合法用户的身份在银行提取k个合法的电子现金,他仍然不能根据已经得到的信息伪造出第k+1个合法的电子现金,因为他无法得到银行的秘密私钥x
  合法用户的匿名性得到保证
  在电子现金中嵌入有用户的识别信息(即账号IU),商家和银行在支付协议和存款协议中,获得的数据有A,B,Sign(A,B),r1,r2,其中B,r2 不含用户的识别信息IU,而A,r1,Sign(A,B)都是IU盲化后的结果,商家和银行若想从接收到的数据中得到用户的识别信息(即IU),必须知道盲因子s,而s是用户随机选取并保密的,这就保证了电子现金的匿名性。
  商家无法伪造有效的支付信息
  在支付协议中,尽管商家知道A,B,Sign(A,B),他可以计算d,但由于他不知道用户的秘密钥u1、s,因而他自己不能随意构造r'1,r'2,使得满足gr'1gr'2 AdB,所以在没有合法用户的参与下,商家无法伪造有效的支付信息。
  电子现金系统的未来发展方向
  电子现金的传递性的可用×××
  传递性是物理现金一个基本的特征,但在电子现金中还没有应用,最主要的原因是:电子现金中为了能跟踪重复花费的用户,在电子现金中加入了盲化的用户身份信息,在电子现金流动的过程中将加入使用过该电子现金的所有用户身份信息,因此根据信息论的理论,电子现金的长度是不断地增长的,每次交易都将造成大通信量问题,无法有利于实际应用;另外电子现金无论是在构造还是存款过程中,相对于物理现金都是相当容易而有效的。因此目前公平的离线电子现金的研究并不关注电子现金的传递性。
  多银行电子现金的研究
  现有的公平电子现金方案都是由一个银行发行的,但在现实生活中由多个电子银行系统发行的电子现金较之单个银行发行的电子现金是更适合的,因为在一个国家或地区具有电子现金发行能力的银行可能不止一家。这多个银行形成一个群体,它们受国家的中央银行管理,每个银行都可以发行电子现金。所以由多个银行发行的公平电子现金模型是电子现金系统研究的重要方向,在这方面的研究主要是利用改进的 群签名方案和群盲签名方案设计的多银行公平电子现金方案。但现在存在两个公开问题:第一是设计一个实用的多银行公平电子现金方案当然不一定是只是利用群签名技术,利用其它的技术可能更好地解决;第二是设计一个可废除群成员的群签名方案,这也是群签名研究中的一个公开问题。