现有的微支付系统通常不提供公平性,即参与徽支付交易的消费者和商家有可能通过交易中的欺诈行为采获取商业利益。我们可以利用密码学中散列函数的单向特性,提出了一种基于对称加密体制和散列链的新型公正微支付系统,它是一种离线的预支付系统,支持数字货币的可分性,并允许消费者使用同一个散列链与多个商家进行交易。
一、符号描述和基本定义
本文所涉及到的符号和参数的意义描述如下:||表示字符串连接运算符;IDB表示银行的身份标识;IDc表示消费者的匿名标识;AM表示商家M的网址;IDNK表示商家MK的身份标识;KCB表示消费者和银行共享的秘密密钥;KcM表示消费者和商家共享的一次性秘密密钥:KMKB表示商家MK和银行共享的秘密密钥;{M}Kij表示使用秘密密钥Kij对消息M进行加密;H(.)表示碰撞自由的单向散列函数;Hr(WN)表示对WN进行r次散列运算的结果,即:
二、散列链
为了提供交易的有效性和不可否认服务,许多支付系统中采用了数字签名技术。但由于徽支付系统中信息服务的每笔费用很小,过多地采用公钥技术会严重影响系统效率,从而可能使得交易的处理开销超过消费者和商家的交易额.所以,在微支付系统中,更多地采用了效率更高的散列函数来代替数字签名,或者将二者有机地结合起来。
散列链就是这样一种实现方式,它最初由Lamport提出,主要用于口令认证,后来被应用到微支付机制中。具体实现方法就是由消费者选择一随机数,然后对其进行多次散列计算,把每次得出的散列结果组成一个序列,序列中的每个值代表一个支付单元。这种徽支付方案的设计目标是通过使用效宰更高的散列函数来代替公钥加密算法,从而提高协议执行的效率。由于散支付具有交易金额小的特点,效率和速度成为系统设计者追求的主要目标,因而散列函数和对称密钥算法更适用于徽支付系统,而大额支付系统为保证安全性,常采用公钥密码技术。
散列链代表消费者在特定商家的信用,它是由一系列的散列值组成的。每个散列链微支付系统(散列值)代表—个支付单元,通常是一美分。
消费者一般通过如下程序来产生一个新的散列链,如图1所示。
(1)消费者决定产生做列链的长度N。如果每个散列链微支付系统的值为l美分’则一个长度为20的散列链将代表20美分。散列链代表的金额要比它要在商家处购买的商品或服务的价格大一些,未花费的散列链微支付系统将会被安全地丢弃。
(2)选择一个随机数WN,称为散列链的根,敢列链上的其他值都可以由它来生成。
(3)对wN进行Ⅳ次敢列计算,每个散列值形成—个散列链微支付系统。安全散列算法SHA可以用作散列函数。
(4)最后产生的散列链就是{W0,W1,W2…,wn}。
三、基于散列键的新型公正微支付系统
本文所提出的微支付方案涉及到交易的三方。消费者C(Customer)、商家M(Merchant)和银行口(Bank)。其中,消费者C是使用数字货币购买信息商品或服务的主体,商家M是为消费者提供商品或服务并接受消费者支付的网上商店,银行B在方案中相当于经纪人的角色,它作为消费者和商家之间的中介,能够为消费者和商家开立并维护账户、认证交易双方的身份、进行货币销售和交易结算,并协调解决可能引起的争端。
1、开户协议
消费者选择一个匿名标识IDc,该标识与消费者的真实身份没有必然联系。消费者将IDc发送给银行,同时向银行出示其身份证或护照等来唯一标识其身份。银行验证其证明,为其开立并维护一个账户,然后在消费者账户数据库中存储该消费者的身份识别信息及IDc,从而将IDc与消费者的身份信息绑定在一起。同时,消费者与银行共享一个秘密密钥Kcb。
商家也必须在银行处开户,他将IDM作为其身份标识发送给银行,同时向银行出示其营业执照和网址Au等来唯一标识其身份。银行验证其证明,为其开立和维护一个账户,并在商家账户数据库中存储该商家的身份识别信息IDM和网址AM从而将AM,与商家的身份识别信息IDM绑定在—起。同样,商家也与银行共享一个秘密密钥KMB。
2、取款协议
(1)消费者通过浏览商家的站点选择需要购买的商品或服务,并记录商家的问址AM及商品或服务的价格,生成订单信息OI,它包含购买商品或服务的种类、数量和总金额等信息。消费者发送一个取款请求给银行,取款i青求的格式:(AM,IDC,IDB,OI)KCB。
(2)银行首先验证取款请求的合法性(他知道秘密密钥KCB),并根据订单信息中的总金额决定生成散列链的长度N。如果交易额为20美分且每个散列值代表的面额为l美分,则需要产生一个长度为20的散列链。银行选择一个随机数WN(称为数列链的根),根据公式:
对wN进行N次敢列计算,其中i=N-1,N-2…1,0。这样银行就生成了一个散列链,{WN,WN-1,....W1,wo}称为该敢列链的锚,其中每个敲列值代表—个货币单位。
(3)银行产生一个取款响应,同时为消费者和商家产生一个一次性会话密钥Kc^o并将其发送给消费者,消息格式:(N,WN,W0,KCM,Expiry)KCB。
其中Expiry为数字货币的有效期.银行将MWo,Expiry和WN存储数据库中,并从消费者账户上扣除与散列链数额相当的资金。
(4)银行发送授权消息给商家,格式为:(N,W0,IDC,IDB,KCM,Expiry,OI)KMB。
商家验证授权消息的合法性,并保存N,Wo,Expiry, OI和IDc。
3、支付协议
(1)消费者根据公式Wi=H(Wi+1),对WN进行JN次散列计算,其中i=N-1,N-2...,1,0。并将结果与wo比较,验证数字货币的合法性,并发送支付指令给商家:(N,, IDc, IDB(WI,1),OI)KCB。
其中(WI,1)是消费者敝列链中的第一个支付对。
(2)商家首先进行支付指令合法性的检查,然后遍历其数据库,根据支付指令中的IDC检查是否存在对应予该消费者的银行授权信息,观察该数字货币是否过期,并计算H(W),通过与银行传来的Wo进行比较来验证支付指令的合法性。若验证通过,商家就根据银行和消费者提供的Ⅳ值将信息商品或服务分成N个单位,并将第一单位的商品或服务提供给消费者。
(3)第一个支付对被接受后,消费者即可重复发送(wi,1)进行多次支付,育到交易完成。当商家将最后一单位的商品或服务提供给消费者后,将数据库中对应于该消费者的银行授权信息(包括散列链的锚W0、订单信息OI,有效期Expiry和消费者的匿名标识IDc)删除。
4、存款协议
(1)一段时间(如一天)后,商家将根据消费者的支付指令生成存款请求信息:(wN,NIDc,IDM)KMB。
(2)银行首先检查数字货币是否过期,并通过将存款请求信息中的元素与数据库中存储的相应数据项对比和计算,验证其合法性。如果验证通过的话,则银行将与散列链数额相当的资金转移到商家的账户上,并将数据库中消费者条目中的wo、Expiry和WN删除。
四、基于对称加密体制和散列链的新型公正微支付系统性能分析
在本节中,我们将PayWord方案同本文提出的系统进行详细的比较,以说明系统的实用性和高效性。
1、可分性
假定消费者C需要与P个商家进行交易,且希望通过一次取款来得到所需的数字货币,他可以将各个商家的订单信息包含在取款请求中,并将其发送给银行。银行根据总的交易预选择N和wN,由于一个散列链包含N个数字货币,这些N个数字货币可以分为P个子链,其中PSM各个子链的表达式如下:
其中C1,C2,…,CP分别表示消费者与各商家的交易额,且C1+C2+…+cP=N。
银行保存W0+Wc1+WC1+C2,....,WC1+C2+Wp,并将W0+Wc1+WC1+C2,....,WC1+C2+Wp和每个子链的有效期参数发送给消费者和商家。每个商家只能得到与消费者订单信息相应的子链的锚值,如商家MK,可以收到由银行发来的子链CK的锚值wC1,...,+CK-1。在支付过程中,消费者将支付指令Pk给商家k:
商家K验证:
并发送一个单位的信息商品或服务给消费者。当交易会话结束时,商家将存款请求:
发送给银行。
PayWord方案中没有提及可分性,消费者生成的PayWord链通常部是针对特定商家的。
2、公平性
本文所提出的系统是一种预付系统,它假定银行是诚信的,消费者在获得商品或服务之前将相应的资金支付给银行,因而商家和银行的利益得到了很好的保障。交易所需散列链是由银行产生的,消费者的超支消费问题也得到解决。同时,由于在和消费者进行交易前商家需要银行的授权信息,并能够通过遍历数据库验证消费者支付指令的合法性,在支付结束时删除对应于该消费者的银行授权信息,从而有效地防止了消费者进行重复花费。此外,在支付协议中,消费者对商家的给付和商家对消费者信息商品或服务的提供都是逐步交互进行的,无论谁先中断协议都不可能得到好处。银行在验证合法性后,可以接受商家在协议非正常中断后存储的部分数字货币。综上所述,本文所提出的系统对于客户和商家都是公平的。
而PayWord方案并没有为参与交易的各方提供真正的公正性。在PayWord方案中,由于它是基于信用的,消费者在付款之前已获取了商家所提供的信息商品或服务,因而存在着消费者的重复花费和超支消费等欺诈行为,对于银行和商家邯是不公平的。
3、安全性
由于每次支付执行时,交易信息都是使用共享密钥进行加密的,所以攻击者无法获取相关的敏感信息,也无法伪造合法的电子现金。同时,商家无法进行重复存储,由于存款协议执行结束时,
银行已将数据库中消费者条目中的wo,OI,Expiry和wN删除且商家不知道C和B共享的秘密密钥KC8,因而无法通过银行的合法性检验。由前面的分析可知,本系统同样能够防止消费者进行重复花费和超支消费。
PayWord系统中支付承诺是使用消费者的私钥进行签名的,且由于散列函数具有单向不可逆性,因而能够有效防止攻击者的伪造和非法花费。银行通过数据库的形式存储某一支付承诺及其对应的已花费的PayWord,能够有效地防止消费者重复花费和商家的重复存储。
4、效率分析
在本系统中,消费者不需要银行签名的证书,而仅仅需要与银行共享一个秘密密钥KCB,消费者的支付承诺(消费者对支付指令的签名)转换为消费者使用对称密钥对支付指令进行加密。在协议执行过程中,散列运算的次数基本上与PayWord相同,且商家和银行保存的信息也很简单,并在协议执行完成后即可进行删除,因而计算开销和存储开销大大减少。在PayWord方案中,每个消费者需要一个由银行签名的数字证书,且在每次支付时,需要消费者签名生成一个支付承诺,消费者、银行和商家都需要进行N次散列运算。为防止消费者进行重复花费,银行和商家需要记录和保存最后一次消费的有效PayWord、支付承诺及数字证书等信息,计算开饷和存储开销较大。所以,本文所提出的微支付系统,由于完全没有采用公钥密码算法,其效率大大提高。
5、有限的匿名性
由于只有银行知道消费者的匿名标识和真实身份之问的对应关系,因而在与商家进行交易时,商家不能获知消费者的身份信息,所以系统为消费者提供了有限的匿名性。在PayWord方案中,由于银行颁发给消费者的数字证书中包含了消费者的身份信息,因而系统没有提供匿名性服务。
小知识之微支付
微支付是指在互联网上,进行的一些小额的资金支付。 这种支付机制有着特殊的系统要求,在满足一定安全性的前提下,要求有尽量少的信息传输,较低的管理和存储需求,即速度和效率要求比较高。这种支付形式就称为微支付。现在大家所说的微支付,主要是指微信支付。