采用智能卡的多银行离线电子现金模型及协议设计
扫描二维码
随时随地手机看文章
随着计算机网络技术和数字信息技术的迅速发展, 电子商务将成为信息化社会的主要商务模式, 其核心技术之一就是提供安全方便并能保障用户隐私的电子支付系统( EPS) , 而电子现金( e-cash) 就是一种非常重要的电子支付系统。其中, 商家和用户可拥有各自银行的多银行离线电子现金系统更符合实际需求, 是当今各国学者研究的热点问题。然而, 数字串形式的电子现金很容易被拷贝多次, 因此, 设计多银行离线电子现金方案的一个重要问题就是阻止重复花费。现有的离线解决方案有两种:
a) 预先阻止。在用户的电子钱包中加入防窜改硬件, 一般用于单银行。例如, 1993 年由S. Brands[ 3 ] 首次提出的一种利用Smart 卡的电子支付系统。
b) 事后检测。存储时, 查找已支付的电子现金数据库。如果找到与本次存储的电子现金相同的记录, 银行会查出重复花费者的身份 。
大多数现有离线电子现金方案只采用方法b) 来确保安全性。但如果某人用错误的身份拥有账户, 或在重复花费大量货币后消失, 那么即使系统事后检测出重复花费者的身份, 也无法祢补已经造成的巨大损失。可见, 能在发生前阻止重复花费的方法a) 也是非常重要的。
本文将多银行离线电子现金协议的思想[ 4 ~6] 与上述两种方法相结合, 采用椭圆曲线密码体制, 提出一种基于智能卡的多银行离线电子现金模型及相应协议的详细设计。该协议在确保用户隐私性的情况下, 同时采用预先阻止和事后检测两种方法来有效解决重复花费问题, 减轻了银行事后检测的负担,增强了系统的安全性; 同时, 智能卡的引入又可以提高用户在交易时的方便灵活性, 更切合实际发展的潮流。
1 基于智能卡的多银行离线电子现金模型
本文提出的基于智能卡的多银行离线电子现金模型。模型包括以下参与方: 银行( Bank1 , ?, Bankn) 、用户( User, 有自己的银行Banki ) 和商家( Shopper, 有自己的银行Bankj) 。各参与方之间执行不同的协议来完成电子交易。
本模型的特点如下:
a) 多家银行之间协同工作 , 相互传递信息, 共同完成任务。
b) 用户的电子钱包中加入银行发行的、不可窜改的智能卡。智能卡和用户的个人计算机( PC 机) 通过相互制约共同完成协议。智能卡对PC 机的制约表现为: 如果用户删除智能卡中对自己不利的信息或两次花费同一电子现金, 则智能卡不工作; PC 机对智能卡的制约表现为: 智能卡不能直接向外界传送或从外界接收信息, 而必须通过PC 机进行, 以防止智能卡将用户的保密信息( 如身份等) 泄露出去, 并且在PC 机和智能卡交互时要相互验证[ 7] 。
在电子现金的生命周期中, 要经过提取、支付和存储三个过程, 前提是用户和商家在各自的银行有账户。如果没有, 就必须先在各自的银行申请一个新账户。因此, 在协议具体实现的过程中, 分为开户、提取、支付和存储四个过程。
下面简述基于智能卡的多银行离线电子现金模型中的交易流程:
a) 开户。用户、商家分别与自己的银行执行开户协议, 并且要到银行去确认。银行发给用户一张智能卡, 它和PC 机组成用户端电子钱包, 共同参与协议。
b) 提取。用户和自己的银行在认证过的通信信道上执行提取协议, 从用户的账户中提取电子现金。电子现金的公钥包含智能卡和PC 机共同产生的信息, 多家银行对其进行受限盲签名。
c) 支付。用户与商家执行支付协议, 要经过智能卡的检测, 确认没有重复花费后才可成功支付。该过程中, 商家无须与银行进行通信, 该交易是离线的。
d) 存储。商家和自己的银行执行存储协议, 银行检测是否重复花费或重复存储。如果没有, 将电子现金存入商家的账户; 否则, 银行可以从两次不同的支付信息中揭示用户或商家的身份。
2 基于智能卡的多银行离线电子现金协议
按照上述电子现金的交易流程, 采用椭圆曲线密码体制,来设计一个基于智能卡的多银行离线电子现金协议。协议中多家银行协同工作, 智能卡在方便用户使用电子现金的同时起到监控作用, 达到预先阻止重复花费的目的。
在协议执行之前要求由多个银行完成系统的初始化, 同时用户和商家必须到各自的开户银行注册获取账号。
2. 1 系统参数的建立
2. 2 开户协议
2. 3 提取协议
2. 4 支付协议
2. 5 存储协议
3 协议性能分析
本文提出协议的安全性主要基于椭圆曲线密码体制、受限盲签名和联合签名。具有“密钥短, 高安全性”特点的椭圆曲线密码体制, 更有利于用在处理能力较低的智能卡上, 可以降低其复杂度和成本, 同时又可提高协议的执行效率。
3. 1 公平匿名性
一方面, 本协议由于智能卡的加入, 采用一类在Radu 联合签名方案[ 10] 的基础上抽象出来的方案[ 11] 。该方案允许两个签名者( 智能卡和PC 机) 用他们的私钥对某一信息进行联合签名, 如在支付时对商家质询的应答; 同时要求保密签名者的签名私钥, 并且能够用其公钥对签名进行验证。这样, 既可以防止银行的监视程序与别的程序通信而泄露了用户的信息,保护了用户的隐私性, 又可以保证监视程序能够有效防止用户的重复花费。
另一方面, 本文的提取协议实质上是受限盲签名协议。在电子现金中加入用户账号信息A= s( U??P2 ) , 由于用户选择了盲因子s 进行盲化, 银行和商家都看不到用户的账号信息, 用户对商家和银行来说满足了匿名性。银行不能根据一次支付的电子现金计算出用户的账号信息; 如果商家重复存储或用户重复支付电子现金, 那么银行可根据新发送来的信息和数据库已有的对应信息, 查出商家或用户的账号, 所以协议满足公平匿名性。
3. 2 不可伪造性
3. 3 预先阻止重复花费
如果智能卡的防窜改性没被破坏, 那么用户不能重复花费电子现金。因为智能卡与PC 机共同合作参与提取和支付协议, 采用联合签名技术, PC 机无法单独完成整个交易。另外, 智能卡存有电子现金的标志和它产生的电子现金序列号构成的二元组( R, y0 ) , y0 是一次性参数。支付时, 智能卡通过查找( R, y0 ≠0) 来判断是否重复花费。该方法保证了每个电子现金只能花费一次。
3. 4 事后检测重复花费
如果智能卡被意外破坏, 或商家试图重复存储, 仍可通过银行事后检测的方法查出重复花费者的身份, 来确保系统的安全性, 保障银行的利益。
4 结束语
在电子现金由理论向实际应用发展的过程中, 多银行电子现金的研究是一个重要课题。本文从实际应用的角度出发, 针对多银行离线电子现金系统的重复花费问题, 建立并分析了一种基于智能卡的多银行离线电子现金模型, 在此基础上完整描述该协议的各个部分。最后, 分析得出本文提出的协议可以有效解决重复花费问题, 具有很好的安全性、公平匿名性、不可伪造性和实用性。