基于变色龙哈希函数的电子支票生成和验证方法
【专利摘要】本发明公开了一种基于变色龙哈希函数的电子支票生成和验证方法,包括:电子支票系统初始化的步骤,银行和客户的私钥提取的步骤,客户向银行申请电子支票的步骤,银行向客户颁发空白支票的步骤,客户生成签名支票的步骤,支票接收方验证签名支票有效性的步骤。本发明的有益效果是:(1)计算效率高,处理速度快,计算资源消耗少;(2)长度短,其传输消耗的带宽少,特别适用于资源受限的无线网络环境的电子商务中;(3)能够抵抗外部敌手和恶意的客户攻击,安全性高,利用分叉引理推导证明本发明的安全性能够规约到计算性Diffie-Hellman问题;(4)基于身份密码体制设计,消除了公钥基础设施的公钥证书带来的繁琐。
【专利说明】基于变色龙哈希函数的电子支票生成和验证方法
【技术领域】
[0001]本发明涉及公钥密码、数字签名和安全电子商务领域,具体而言是一种基于变色龙哈希函数的电子支票的生成和验证方法。
【背景技术】
[0002]随着计算机网络和移动互联网的发展和普及,电子商务的发展即将进入成熟期,会给现代商业模式带来根本性的变革。电子支付系统作为电子商务的资金结算模式,已经渗透到了社会生活的方方面面,而电子支票作为纸质支票在电子世界的替代物,已经被许多金融机构采用,广泛应用于远程资本结算和在线购物中。
[0003]然而,电子支票虽然实现了高效灵活的在线支付功能,但是,因为电子支票在公开信道上传递,而且系统的参与者未必是可以相信的,所以它同时也带来了欺骗、盗窃、伪造等一系列安全问题。其次,随着移动互联网的不断发展,智能手机等无线设备逐步能够作为网络终端参与到电子商务的各个环节,虽然智能手机的计算能力越来越强,但一些复杂的密码学操作,例如双线性对运算,对智能手机来说还是无法承受的。因此,设计安全高效的电子支票协议对于移动电子商务的推广和普及具有重要的意义。
[0004]在电子支票协议中,早期的方案主要采用数字签名来实现电子支票的不可伪造性和不可否认性,通过添加冗余信息来防止客户对支票的重复使用。后来,国内外学者纷纷将代理签名、自认证签名和一次签名应用于电子支票协议的构造中,提出了将代理签名、自认证签名和一次签名等方案转化成电子支票协议的方法,但这些方案均存在效率和安全性上的缺陷。
[0005]具体来说,包括以下问题:
[0006](I)目前的电子支票协议保证的安全性普遍较低,只保证了外部的攻击者无法伪造有效的电子支票,而没有考虑抵抗恶意的客户的攻击,故现有的电子支票协议普遍不安全;
[0007](2)在同等的安全级别下,现有的电子支票协议的效率比较低,签名的验证过程需要较多的双线性对运算,且电子支票的长度较长,对计算资源和通信资源的消耗多,不适用于计算能力和通信能力受限的环境;
[0008](3)目前主要的电子支票协议都是基于公钥基础设施的,需要公钥基础设施维护和管理用户的公钥证书,且使用时需要验证证书的有效性和真实性,导致系统复杂,使用繁琐;
[0009](4)现有的电子支票协议的本质是由银行的签名授权和客户的签名组成,设计思路单一,缺乏对密码学新方法和新技术的探索和应用。
【发明内容】
[0010]本发明的发明目的在于:针对现有技术中存在的问题,提供一种处理速度快、电子支票长度短的基于变色龙哈希函数的电子支票生成和验证方法。[0011]本发明的技术方案如下:
[0012]一种基于变色龙哈希函数的电子支票生成和验证方法,包括:
[0013]电子支票系统初始化的步骤,包括
[0014](1.1)根据安全参数k来决定G1, G2的阶q的二进制比特位数,设置系统参数=G1是以P为生成元的q阶加法循环群,G2是q阶乘法循环群,e表示双线性映射=G1XG1 — G2 ;
[0015](1.2)可信权威在整数上的q阶乘法群Zq*选择随机数s作为系统主密钥,计算并发布系统公钥Ppub=SP ;
[0016]银行和客户的私钥提取的步骤,包括
[0017](2.1)银行和客户分别将自己的身份IDb和IDc发送给可信权威;
[0018](2.2)可信权威利用主密钥s为银行计算私钥Sidb=SH(IDb),并将银行私钥Sidb通过安全信道发送给银行,银行的公钥为其身份信息IDb;其中H是哈希函数,定义为H: {O, IH-G1 ;
[0019](2.3)可信权威利用主密钥s为客户计算对应的私钥Sidc=SH(IDc),并将客户私钥Sidc通过安全信道发送给客户,客户的公钥为其身份信息IDc ;
[0020]客户向银行申请电子支票的步骤,包括
[0021](3.1)客户选择任意长度的随机消息t和群G1上的随机元素R,计算随机消息t的变色龙哈希函数的哈希值Ht=e (R, P) e (H1 (t) H (IDc),Ppub),并将(IDC,Ht)作为电子支票的申请信息发送给银行;其中H1是哈希函数,定义为H1: {O, I}* — Zq* ;
[0022]银行向客户颁发空白支票的步骤,包括
[0023](4.1)银行生成授权书W,该授权书包括银行的身份信息IDb、客户的身份信息IDC、授权有效期以及对客户签名信息的限制;
[0024](4.2)银行选择Zq*上的随机数r,利用银行的私钥Sidb和普通的数字签名算法对授权书w和变色龙哈希函数的哈希值Ht进行签名,计算0l=rH(IDB),h=H2 (Ht, w, σ D和σ 2= (r+h) Sidb,得到签名σ 2);其中H2是哈希函数,定义为H2IG2X {O, IHXG1 — Zq* ;
[0025](4.3)银行生成空白支票(W,σ w),将空白支票发送给客户;
[0026]客户生成签名支票的步骤,包括
[0027] (5.1)客户在空白支票上签署金额,生成支票m ;
[0028](5.2)客户根据变色龙哈希函数的碰撞性和私钥SID。计算碰撞值R’= (? (O-H1On) )SIDC+R,生成支票m的签名om=(R’,σ 1; ο 2),并生成由授权书w、支票m和签名0?]构成的签名支票(w,m,om);
[0029](5.3)客户将签名支票(w,m, σ J发送给支票接收方;
[0030]支票接收方验证签名支票有效性的步骤,包括
[0031](6.1)验证支票m是否满足授权书w的要求,包括银行的身份信息IDb、客户的身份信息ID。、授权有效期以及对客户签名信息的限制;如不满足,则签名支票无效;
[0032](6.2)根据支票m,委托书w,支票签名σ m= (R,,O11O2),以及系统公钥Ppub,客户身份 IDc 计算 Hm=e (R,,P) e (H1 (m) H (IDc),Ppub)和 h=H2 (Hm, W1Q1);
[0033](6.3)基于银行身份IDb和支票签名σ m= (R’,σ ρ σ 2),检验验证公式e(P, o2)=e (Ppub, (r+h) H(IDb))是否成立;如果验证公式成立,签名支票有效;否则,签名支票无效。
[0034]上述银行向客户颁发空白支票的步骤中,还包括客户收到空白支票(W,Ow)后,确认授权书w的内容是否符合申请时的信息,包括客户与银行的身份信息,授权有效期以及客户签名消息的限制;然后利用授权书W重新计算哈希值h=H2(Ht,w,O i),通过验证公式e(P, σ 2) =e (Ppub, (r+h) H(IDb))是否成立来完成有效性验证;如果验证公式成立,空白支票有效;否则,空白支票无效。
[0035]由于采用了上述技术方案,本发明的有益效果是:
[0036](I)本发明的电子支票计算效率高,处理速度快,计算资源消耗少;
[0037](2)由于本发明的电子支票的长度短,其传输消耗的带宽少,特别适用于资源受限的无线网络环境的电子商务中;
[0038](3)本发明由于电子支票协议能够抵抗外部敌手和恶意的客户攻击,安全性高,利用分叉引理推导证明本发明的安全性能够规约到计算性Diffie-Hellman问题;
[0039](4)本发明基于身份密码体制设计,消除了公钥基础设施的公钥证书带来的繁琐。
【专利附图】
【附图说明】
[0040]图1是本发明的实施例中客户申请电子支票和银行颁发电子支票的流程图;
[0041]图2是本发明的实施例中客户签署电子支票和商家及银行验证电子支票的流程图。
【具体实施方式】
[0042]本说明书公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换。即,除非特别叙述,每个特征只是一系列等效或类似特征中的一个例子而已。
[0043]步骤1,电子支票系统初始化。
[0044](1.1)根据安全参数k来决定G1, G2的阶q的二进制比特位数,设置系统参数=G1是以P为生成兀的q阶加法循环群(参考文献:A.J.Menezes, P.C.0orschot, S.A.Vanstone著,胡磊,王鹏等译,应用密码学手册,北京:电子工业出版社,2005年),62是,阶乘法循环群,e表示双线性映射=G1XG1 — G2 ;其中,安全参数是根据安全性要求,事先确定的一个描述系统安全性的参数,本发明中安全参数k的取值一般为512,768,1024或2048 ;
[0045](1.2)可信权威在整数上的q阶乘法群Zq*选择随机数s作为系统主密钥,计算并发布系统公钥Ppub=SP。可信权威是一个公认的可信机构,可以是政府、法院等。
[0046]步骤2,银行和客户的私钥提取。
[0047](2.1)银行和客户分别将自己的身份IDb和IDc发送给可信权威;
[0048](2.2)可信权威利用主密钥s为银行计算私钥Sidb=SH(IDb),并将银行私钥Sidb通过安全信道发送给银行,银行的公钥为其身份信息IDb;其中H是哈希函数,定义为H: {O, IH-G1 ;
[0049](2.3)可信权威利用主密钥s为客户计算对应的私钥Sidc=SH(IDc),并将客户私钥Sidc通过安全信道发送给客户,客户的公钥为其身份信息IDC。
[0050]步骤3,客户向银行发起电子支票申请。[0051]如图1,客户选择任意长度的随机消息t和群G1上的随机元素R,计算随机消息t的变色龙哈希函数的哈希值Ht=e (R, P) e (H1 (t) H(IDc),Ppub),并将(IDC,Ht)作为电子支票的申请信息发送给银行;其中H1是哈希函数,定义为H1: {O, I}* — Zq*0
[0052]步骤4,银行向客户颁发空白支票。
[0053]如图1,银行根据客户的电子支票申请,生成授权书和空白支票,并将空白支票发送给客户,客户收到支票后确定空白支票的有效性:
[0054](4.1)银行生成授权书W,该授权书包括了银行的身份信息IDb,客户的身份信息IDc,授权的有效期,对客户签名的信息的限制(例如能够签名支票的面值上限)等;
[0055](4.2)银行选择Zq*上的随机数r,利用银行的私钥Sidb和普通数字签名算法对授权书w和变色龙哈希函数的哈希值Ht进行签名,计算σ ^rH (IDb),h=H2 (Ht, w, σ J和σ 2= (r+h) Sidb,得到签名Ow=(OpO2)n其中H2是哈希函数,定义为H2IG2X {O, Ij^XG1-Zq* ;其中,普通的数字签名算法包括PKCS#1:RSA签名标准,美国数字签名标准DSS,DSS的椭圆曲线版本E⑶SS等;
[0056](4.3)银行生成空白支票(W,σ w),通过安全信道将空白支票发送给客户;
[0057](4.4)客户收到空白支票(w,ow)后,首先确认授权书w的内容是否符合申请时的信息,包括客户与银行的身份信息,授权书的有效期以及对客户签名的消息的限制等;然后利用授权书w重新计算哈希值h=H2 (Ht, w, σ J,通过验证公式e(P, σ 2) =e (Ppub, (r+h)H(IDb))是否成立来完成有效性验证;如果验证公式成立,空白支票有效;否则,空白支票无效。
[0058]步骤5,客户生成签名支票。
[0059]如图2,客户购买商品时,签署金额及签名后生成签名支票,发送给商家:
[0060] (5.1)客户购买商品,签署空白支票的金额,生成支票m ;
[0061](5.2)客户在已知的申请支票时所选择的随机消息t和群G1上的随机元素R下,根据变色龙哈希函数的碰撞性和私钥Sidc计算碰撞值R’ = (H1 (t) -H1 (m)) Sidc+R,生成支票m的签名om=(R’,σ 1; ο 2),并生成由授权书w,支票m和签名ο ^勾成的签名支票(w,m,om);变色龙哈希函数的碰撞性表示在申请过程中客户利用随机消息t,随机元素R计算的变色龙哈希值与支票m,碰撞值R’对应的变色龙哈希值相同;
[0062](5.3)客户将签名支票(w,m, σ J发送给商家。
[0063]步骤6,商家和银行验证签名支票的有效性。
[0064]如图2,商家收到签名支票(w,m, om)后,检验签名σ m是否是消息m在委托书w下的有效签名,如果有效,则与客户进行商品交换,并将签名支票(w,m,σω)交给银行,银行再次验证后,给商家兑换现金。
[0065](6.1)验证支票m是否符合授权书W,即支票m满足授权书w的要求,包括银行的身份信息IDb、客户的身份信息ID。、授权有效期以及对客户签名信息的限制。如不满足,则签名支票无效;否则,执行6.2;
[0066](6.2)根据支票m,委托书w,支票签名σ m= (R,,O11O2),以及系统公钥Ppub,客户身份 IDc 计算 Hm=e (R,,P) e (H1 (m) H (IDc),Ppub)和 h=H2 (Hm, W1Q1);
[0067](6.3)基于银行身份IDb和支票签名σ m= (R’,σ ρ σ 2),检验验证公式e(P, o2)=e (Ppub, (r+h) H(IDb))是否成立;如果验证公式成立,签名支票有效;否则,签名支票无效;
[0068](6.4)商家与客户进行商品交换;
[0069](6.5)商家向银行提出兑换申请,银行利用步骤(6.1),(6.2)和(6.3)再次检验支票有效性,如果支票有效,则兑换现金;否则通知商家,不能兑换。
[0070]上述实施例中,给出了客户将签署后的支票进行商品交换的步骤,此时,商家作为支票接收方,需要对签名支票的有效性进行验证,银行接收到支票兑换现金时,也需要对有效性进行一次验证,两次验证的方法是完全一样的。如果电子支票不是用于与商家交换商品,客户也可以签署后,直接发送给银行,此时银行作为支票接收方,也按相同的步骤对签名支票的有效性进行验证。
[0071]本发明并不局限于前述的【具体实施方式】,本发明扩展到任何在本说明书中披露的新特征或任何新的组合,以及披露的任一新的方法或过程的步骤或任何新的组合。
【权利要求】
1.一种基于变色龙哈希函数的电子支票生成和验证方法,其特征在于,包括:电子支票系统初始化的步骤,包括 (1.1)根据安全参数k来决定G1, G2的阶q的二进制比特位数,设置系统参数=G1是以P为生成元的q阶加法循环群,G2是q阶乘法循环群,e表示双线性映射K1XG1 — G2 ; (1.2)可信权威在整数上的q阶乘法群Zq*选择随机数s作为系统主密钥,计算并发布系统公钥Ppub=SP ; 银行和客户的私钥提取的步骤,包括 (2.1)银行和客户分别将自己的身份IDb和ID。发送给可信权威; (2.2)可信权威利用主密钥s为银行计算私钥Sidb=SH(IDb),并将银行私钥Sidb通过安全信道发送给银行,银行的公钥为其身份信息IDb;其中H是哈希函数,定义为H: {O, IH-G1 ; (2.3)可信权威利用主密钥s为客户计算对应的私钥Sme=SH(IDe),并将客户私钥SIDc通过安全信道发送给客户,客户的公钥为其身份信息IDc ; 客户向银行申请电子支票的步骤,包括 (3.1)客户选择任意长度的随机消息t和群G1上的随机元素R,计算随机消息t的变色龙哈希函数的哈希值Ht=e (R, P) e (H1 (t) H(IDc),Ppub),并将(IDC,Ht)作为电子支票的申请信息发送给银行;其中H1是哈希函数,定义为H1: {O, I}* — Zq* ; 银行向客户颁发空白支票的步骤,包括 (4.1)银行生成授权书 《,该授权书包括银行的身份信息IDb、客户的身份信息ID。、授权有效期以及对客户签名信息的限制; (4.2)银行选择Zq*上的随机数r,利用银行的私钥Sidb和普通数字签名算法对授权书w和变色龙哈希函数的哈希值Ht进行签名,计算σ FH(IDb) , h=H2(Ht, W,O1)和o2=(r+h)Sidb,得到签名 σψ=(σ 1; σ2);其中 H2 是哈希函数,定义SH2 = G2X {0,1}^XG1-Zq*; (4.3)银行生成空白支票(w,σν),通过安全信道将空白支票发送给客户; 客户生成签名支票的步骤,包括 (5.1)客户在空白支票上签署金额,生成支票m; (5.2)客户根据变色龙哈希函数的碰撞性和私钥Sidc计算碰撞值R’ =(H1U)-H1(Hi))SIDC+R,生成支票m的签名om=(R’,0ι,ο 2),并生成由授权书w、支票m和签名om构成的签名支票(w,m,om); (5.3)客户将签名支票(w,m, σ J发送给支票接收方; 支票接收方验证签名支票有效性的步骤,包括 (6.1)验证支票m是否满足授权书w的要求,包括银行的身份信息IDb、客户的身份信息ID。、授权有效期以及对客户签名信息的限制;如不满足,则签名支票无效; (6.2)根据支票m,委托书W,支票签名Om= (R^,O1, σ 2),以及系统公钥Ppub,客户身份IDc 计算 Hm=e (R,,P) e (H1 (m) H (IDc),Ppub)和 h=H2 (Hm, w,0l); (6.3)基于银行身份IDb和支票签名σ m=(R’,σ i,σ 2),检验验证公式e(P, o2)=e (Ppub, (r+h)H(IDB))是否成立;如果验证公式成立,签名支票有效;否则,签名支票无效。
2.如权利要求1所述的基于变色龙哈希函数的电子支票生成和验证方法,其特征在于,所述银行向客户颁发空白支票的步骤中,还包括客户收到空白支票(W,Ow)后,确认授权书W的内容是否符合申请时的信息,包括客户与银行的身份信息,授权有效期以及对客户签名消息的限制;然后利用授权书W重新计算哈希值h=H2(Ht,w,O1),通过验证公式e(P, σ 2) =e (Ppub, (r+h)H(IDB))是否成立来完成有效性验证;如果验证公式成立,空白支票有效;否则,空白支票无效。
3.如权利要求1所述的基于变色龙哈希函数的电子支票生成和验证方法,其特征在于,所述银行向客户颁发空白支票的步骤中,使用的普通数字签名算法包括PKCS#1:RSA签名标准、美国数字签名标准DSS和DSS的椭圆曲线版本E⑶SS。
【文档编号】H04L9/32GK103475487SQ201310432228
【公开日】2013年12月25日 申请日期:2013年9月22日 优先权日:2013年9月22日
【发明者】孙颖, 柴继文, 梁晖辉, 吴 民, 刘珊梅, 熊晓雯, 李晓雪, 陈晓玲 申请人:国家电网公司, 国网四川省电力公司电力科学研究院