基于标准rsa的优化公平交换方法

文档序号:7618983阅读:110来源:国知局
专利名称:基于标准rsa的优化公平交换方法
技术领域
本发明涉及网络通信安全技术领域,更具体地是涉及一种基于标准RSA算法的优化公平的数字签名交换方法。
背景技术
电子商务、移动商务已成为基于Internet的现代经济活动的主要形式之一。尽管对信息安全系统的研究已有近70多年的历史,但是新的经济活动形式对安全的特殊需求也不断提升,诸如公平性、可追踪性等新安全特性就是除了传统的保密性、完整性、非否认性等安全要求之外的新需求,基于信息技术的商务活动的主要问题之一就是在任意的两个互不信任的主体之间以一种高效、公平的方式来交换电子数据;公平性和高效性成为这类电子商务协议的基本要求。公平交换协议可以使得参与交换的双方以公平的方式交换信息;即,要么任何一方都可以得到对方的信息,要么双方都得不到对方的信息。显然,公平性是大多数电子商务协议安全所必须解决的关键问题。
在设计公平交换协议时,通常有三种基本的方法逐步秘密交换方法、使用在线可信第三方(TTP,trusted third party)的方法、使用离线TTP的方法。
逐步秘密交换方法反映了网络异步交换的特点,但是至少总存在“一比特的不公平性”。因此,目前国际上已经很少有基于这种方法的公平交换协议。
使用在线TTP的交换方法是在协议中使用一个在线的TTP作为公平交换的基础。依据TTP参与程度的不同,这种方法大致又可以分为两大类内联TTP的方法与在线TTP的方法。内联TTP方法指的是在交换的每一步过程中都需要TTP的参与;而在线TTP方法则是说在一次交换中TTP至少需要参与一次。由于在交换的过程中使用一个在线的TTP作为公平交换的基础,所以无论从计算上还是在通信上讲TTP都会成为一个瓶颈,这就注定这类交换方法的效率不会很高。
使用离线TTP的交换方法是目前国际上公平交换方法设计和研究的重点和热点。这类交换方法基于这样一个合理的假设在大多数情况下,参与交换的双方主体都是诚实的。因此,大多数情况下,交换过程无需TTP的在线参与。只有交换的双方发生纠纷时,TTP才参与交换的争端解决,以便保证交换的公平性。这类使用离线TTP的交换方法被称为“优化公平交换方法”,本发明即属于这一类交换方法。
目前已有的基于离线TTP的优化公平交换方法多数基于离散对数问题,这类方法多采用计算复杂性较高的零知识证明技术,效率很低。另一方面,现有的基于RSA的优化公平交换协议,要么被证明是不安全的,要么是基于非标准RSA体制的。因此,根据现有的技术方案,国际上尚没有一个基于标准RSA密码算法的高效、安全的优化公平交换方法。

发明内容
本发明的目的在于提供一种基于标准RSA密码算法的优化公平交换方法。该交换方法不使用任何零知识证明技术,无需用户向可信第三方注册,且具有可证安全性。
本发明所提供的基于标准RSA的优化公平交换方法是基于以下的构思假设参与交换的双方分别为A和B,设双方默认的TTP的RSA公钥为(N,u),其中,N为该TTP的RSA公钥模。
TTP选择一个陷门单向置换族fer→remod N,每一个参与实体(即A和B)选择其中的一个单向置换e=H(IDi,pk)‖0x01(其中,IDi为用户标识,rRZN*是用户IDi随机选择的一个随机数,pk为用户IDi的RSA公钥),因此交换方A的签名RSA公钥为(nA,eA),对应的签名私钥为(nA,dA);交换方B的签名RSA公钥为(nB,eB),对应的签名私钥为(nB,dB)。
其中,e=H(IDi,pk)‖0x01为一个杂凑函数PHash,其定义如下PHash(Msg)=H(Msg)‖0x01式中,Msg∈{0,1}*,H=SHA1/SHA256。也就是说,对于任意的输入,PHash总输出一个长度为168比特或264比特的奇数;其中,fer→remod N通过函数PCV来计算,即PCV(IDi,r,PK)=rPHash(IDi||PK)modN]]>式中,N选取为两个强素数之积,使得任意一个奇数e=H(ID,pk)‖0x01以极大的概率与(N)互素。
基于上述的算法,本发明的基于标准RSA密码算法的优化公平交换方法可以通过如下步骤实现第一步A向B发送自己的概率签名承诺§mA,IDA,yA,sigA**,其中mA为待签名消息,IDA为签名者标识,yA为签名者的签名承诺,sigA为签名,消息的生成过程为a、A选择一个秘密随机数rA∈ZN*b、利用函数PCV计算yA=PCV(IDA,rA,PKA)c、利用A的RSA私钥dA计算对消息(mA‖yA)的签名sigA=H(mA||yA)dAmodnA;]]>第二步B验证A提交的概率签名承诺 当且仅当满足以下两个条件时a、0<yA<Nb、<mA‖yA,sigA>是IDA的一个有效普通RSA签名 才被认为是一个有效的概率签名承诺,交换继续进行,如果验证失败,则结束交换;第三步B向A发送自己的概率签名‖mB,IDB,rB,sigB‖,其中mB为待签名消息,IDA为签名者标识,yB为签名者的签名承诺,sigB为签名,消息生成的过程为a、B选择一个秘密随机数rB∈ZN*b、利用函数PCV计算yB=PCV(IDB,rB,PKB)c、利用B的RSA私钥dB计算对消息(mB‖yB)的签名sigB=H(mB||yB)dBmodng;]]>第四步A验证B提交的概率签名‖mB,IDB,rB,sigB‖,当且仅当满足以下两个条件时a、rBZN*
b、<mB‖PCV(IDB,rB,pkB),sigB>是IDB的一个有效普通RSA签名‖mB,IDB,rB,sigB‖才被认为是一个有效的概率签名,交换继续进行,如果验证失败,则结束交换;第五步A向B发送其用于生成第一步骤所发送的概率签名承诺的秘密随机数rA;第六步B利用在第二步中接收到的签名承诺yA验证A提交的秘密随机数rA,即,计算PCV(IDA,rA,PKA)是否等于yA,如果相等则协议交换成功,A和B都达到了公平交换各自概率签名的安全目标,如果验证失败,B可以向可信第三方(TTP)提出仲裁申请,由TTP执行仲裁程序。
以上描述了本发明提供的基于标准RSA密码算法的优化公平交换方法,本领域的技术人员可以理解,TTP虽则没有参与正常的协议交换步骤,但作为公平性和不可抵赖性的保证,TTP仍然是本发明提供的完整的技术方案的一部分。以下描述在上述的基于标准RSA的优化公平交换方法中,在数据交换之后,可能发生的抵赖行为以及离线的TTP执行仲裁程序具体步骤第一种当双方第一次交换数据,即A向B发送自己的概率签名承诺§mA,IDA,yA,sigA**之后,由签名算法的安全性可知,A无法否认自己的概率签名承诺§mA,IDA,yA,sigA**。换言之,在协议正确执行完第一步之后,A无法抵赖,只有B才可能抵赖,即B否认自己曾收到过A的概率签名承诺§mA,IDA,yA,sigA**。但即使B在这个阶段否认自己曾收到过A的概率签名承诺§mA,IDA,yA,sigA**,他也无法得到任何利益;而且,B就算抵赖也不会给A造成任何损失,也就是说,B没有必要抵赖。因此,在正常的逻辑下,此时参与协议交换的双方都不需要TTP执行仲裁程序。
第二种当双方第二次交换数据,即B向A发送自己的概率签名‖mB,IDB,rB,sigB‖之后,由签名算法的安全性可知,B无法否认自己的概率签名‖mB,IDB,rB,sigB‖,而且,按照协议规范,既然B向A发送了自己的概率签名‖mB,IDB,rB,sigB‖,则说明B承认了他接收到了A的正确概率签名承诺§mA,IDA,yA,sigA**这样一个事实,因此,B也无法否认他收到了A的正确概率签名承诺§mA,IDA,yA,sigA**。换言之,B是无法抵赖的。
此时,如果A抵赖,否认收到了B的概率签名‖mB,IDB,rB,sigB‖而拒绝向B发送其概率签名秘密值rA,则B可以向TTP求助,执行仲裁过程。此时,B需要向TTP同时提交如下信息A的概率签名承诺§mA,IDA,yA,sigA**以及自己的概率签名‖mB,IDB,rB,sigB‖。
TTP进行仲裁的过程如下TTP首先验证B的概率签名‖mB,IDB,rB,sigB‖。如果B的概率签名有效,则TTP执行签名恢复过程。根据系统设计要求,TTP必须能够从A的概率签名承诺§mA,IDA,yA,sigA**正确恢复出A的概率签名‖mA,IDA,rA,sigA‖。TTP恢复A的概率签名过程如下(1)TTP检查0<yA<N是否成立。如果该条件不成立,则中止签名恢复,返回“无效签名”;(2)TTP检查H(mA||yA)= sigAeAmodnA.]]>如果该条件不成立,则中止签名恢复,返回“无效签名”;(3)TTP计算υA=PHash(IDA‖PKA)。设(N)=(p-1)(q-1),该值仅有TTP知道。TTP利用扩展的欧几里德算法计算ωA,满足ωAυA=1mod(N);(4)TTP计算rA=yAwAmodN.]]>TTP通过上述过程恢复出的‖mA,IDA,rA,sigA‖一定为A的一个有效概率签名。也就是说,如果§mA,IDA,yA,sigA**是A给B的一个有效的概率签名承诺,则TTP一定能够正确恢复出A的正确概率签名‖mA,IDA,rA,sigA‖显然,TTP可以从A的概率签名承诺§mA,IDA,yA,sigA**正确恢复出A的概率签名‖mA,IDA,rA,sigA‖。
TTP将恢复出的A的概率签名‖mA,IDA,rA,sigA‖交给B,并将B的概率签名‖mB,IDB,rB,sigB‖发送给A,从而完成了其仲裁功能。
第三种
当双方第三次交换数据,即A向B发送其在第一步骤用于生成所发送的概率签名承诺的秘密随机数rA之后,按照协议规范,既然A向B发送了自己的秘密值rA,则说明A承认了他接收到了B的正确概率签名‖mB,IDB,rB,sigB‖这样一个事实。
因此,一旦A向B发送了自己秘密值rA,她便无法否认她曾收到了B的正确概率签名‖mB,IDB,rB,sigB‖。显然,A无法、也没有必要否认她收到了B的正确概率签名‖mB,IDB,rB,sigB‖,A更不能否认她自己的概率签名‖mA,ID,rA,sigA‖。
如果B否认曾收到过A的秘密值rA,同时B在给定的时间内又不向TTP提起仲裁,则B的否认无效。如果B验证rA失败,B可以向TTP申请仲裁,具体的仲裁过程同第二种情形下的仲裁过程完全一样也就是B向TTP提出仲裁请求,TTP验证B的请求通过后,利用自身的私钥pkTTP恢复A的秘密随机数rA。


图1表示基于标准RSA的优化公平交换方法的流程图;图2表示可信第三方执行仲裁协议的流程图。
具体实施例方式
以下参照附图通过优选的实施例详细说明本发明提供的基于标准RSA的优化公平交换方法,但不构成对本发明的限制。在描述具体实施例的实现过程之前,首先说明本实施例中所使用的概率签名计算的实现过程,具体的程序伪代码如下RSA_PSS(person,Cert,CertTTP,m){其中,各个参数具体说明如下person为签名人,Cert为签名人的证书,CertTTP为可信第三方的证书,m为签名的消息。
1)产生随机数
rperson=random();2)从证书中获取公私钥和IDpublicperson=getpubkey(Certperson);prvkeyperson=getprvkey(Certperson);IDperson=getID(Certperson);3)从可信第三方(TTP,Trusted Third Party)的证书中得到公钥modulusn;n=getModulus(CertTTP);4)计算yAyA=exp_mod(rperson,Hash(IDperson‖publicperson)‖0x01,n);5)对消的息普通RSA签名sig=RSA_sign(mperson‖y,prvkeyperson);}如图1所示,为一个完整的公平交换协议的过程,具体实现步骤如下第1步交换方A向交换方B发送概率签名承诺A对消息mA签名,具体的程序伪代码为sigA=RSA_PSS(A,CertA,CertTTP,mA)然后A将消息mA、签名sigA、签名承诺yA和自己的身份标识IDA一起发送给B,即发送自己的概率签名承诺§mA,IDA,yA,sigA**给B,但保留秘密随机数rA;第2步B验证概率签名承诺B收到A提交的概率签名承诺§mA,IDA,yA,sigA*·*,首先验证A的签名
RSA_verify(mA‖yA,sigA,pubkeyA)第3步B向A发送概率签名B验证A的签名成功后,产生秘密随机数rB,并对消息mB签名sigB=RSA_PSS(B,CertB,CertTTP,mB)然后B将消息mB、签名sigB、签名承诺yB和自己的身份标识IDB一起发送给A,即,发送自己的概率签名‖mB,IDB,rB,sigB‖给A;第4步A验证概率签名A收到B提交的概率签名‖mB,IDB,rB,sigB‖后,验证B的签名RSA_verify(mB‖yB,sigB,pubkeyB)然后A计算YB=exp_mod(rB,Hash(IDB‖pubkeyB)‖0x01,n)然后A检查YB是否等于yB;第5步A向B发送用于生成概率签名承诺的秘密随机数A验证B的签名成功后,向B发送其在第一步中保留的秘密随机数rA;第6步B验证秘密随机数B收到A提交的秘密随机数rA后,验证A的概率签名,即,计算YA=exp_mod(rA,Hash(IDA‖pubkeyA)‖0x01,n)然后检查YA是否等于yA;此时会产生两个结果其一、B验证A的秘密随机数rA成功,A和B完成了一次公平的交换。
其二、还可能出现异常的情况,即,A在获取了B发送的概率签名‖mB,IDB,rB,sigB‖后抵赖(具体表现?不发送秘密随机数的话是否又和流程图不一直呢?),使得在第七步骤中B验证A的秘密随机数rA失败,这时就需要离线的TTP执行仲裁协议,解决纠纷,即如图1中的步骤7和8所示第7步B向TTP申请仲裁B向TTP提交的仲裁信息包括A的概率签名承诺§mA,IDA,yA,sigA**和自己的概率签名‖mB,IDB,rB,sigB‖;第8步TTP执行仲裁TTP使用自己的签名私钥恢复A的秘密随机数rA,从而使A无法对消息的交换抵赖。
如图2所示,表示B向TTP提出仲裁申请以及TTP执行仲裁程序的具体步骤步骤a B向TTP提交仲裁信息B向A提交的仲裁信息包括A的概率签名承诺§mA,IDA,yA,sigA**和B自身的概率签名‖mB,IDB,rB,sigB‖;步骤b TTP验证仲裁信息的有效性和合法性验证交易过程中各个阶段的签名,验证第一阶段A的签名RSA_verify(mA‖yA,sigA,pubkeyA)验证第二阶段B的签名RSA_verify(mB‖yB,sigB,pubkeyB)验证成功则说明A,B交易的信息是有效的;步骤c TTP使用自己的陷门信息恢复出A的概率签名TTP_Recovery(YA,IDA,pubkeyA,CertTTP,PrvKeyTTP){
其中,输入参数的说明如下YA为A概率签名的计算结果,IDA、pubkeyA为A的身份ID和公钥,CertTTP为TTP的证书,PrvKeyTTP为TTP的签名私钥,1)计算中间变量λλ=PHash(IDA,pubkeyA);2)计算φ(N)p=getPrvKeyParam(PrvKeyTTP,Prime_P);获取素数p;q=getPrvKeyParam(PrvKeyTTP,Prime_Q);获取素数q;φ(N)=Mul(p-1,q-1);3)计算中间变量λ在φ(N)下的逆υυ=inv_mod(λ,φ(N));4)获取TTP证书中的公钥modulus Nn=getModulus(CertTTP);5)恢复随机数rArA=exp_mod(yA,υ,n);}步骤d TTP将A的概率签名发送给B,从而使A无法抵赖自己在交换中的行为。
权利要求
1.一种基于标准RSA的优化公平交换方法,其特征在于,参与公平交换的双方使用基于标准RSA算法的概率签名来完成正常的公平交换,当任一方对其交换行为抵赖时,则由可信第三方执行仲裁。
2.如权利要求1所述的基于标准RSA的优化公平交换方法,其特征在于,所述的概率签名的实现方法为可信第三方选择一个陷门单向置换族,参与公平交换的双方各选择其中的一个单向置换,并通过一个随机数在单向置换下的象产生概率签名。
3.如权利要求2所述的基于标准RSA的优化公平交换方法,其特征在于,所述的参与公平交换的双方其身份标识显式地与各自的概率签名直接绑定。
4.如权利要求1或2所述的基于标准RSA的优化公平交换方法,其特征在于,所述的可信第三方执行仲裁的方法为利用陷门恢复出参与公平交换的双方用于产生概率签名的秘密随机数。
5.如权利要求4所述的基于标准RSA的优化公平交换方法,其特征在于,所述的可信第三方在执行仲裁的过程中需要显式地验证参与公平交换的双方的身份标识。
6.如权利要求3所述的一种基于标准RSA的优化公平交换方法,其特征在于,所述的正常的公平交换包括如下步骤发送概率签名承诺步骤,交换方A向交换方B发送概率签名承诺;验证概率签名承诺步骤,交换方B验证交换方A提交的概率签名承诺,如果验证失败则结束交换;发送概率签名步骤,交换方B向交换方A发送概率签名;验证概率签名步骤,交换方A验证交换方B提交的概率签名,如果验证失败则结束交换;发送秘密随机数步骤,交换方A向交换方B发送用于生成概率签名承诺的秘密随机数;验证秘密随机数步骤,交换方B验证交换方A发送的秘密随机数,如果验证失败,可以向可信第三方提出仲裁申请,由可信第三方执行仲裁。
7.如权利要求6所述的基于标准RSA的优化公平交换方法,其特征在于,所述的可信第三方执行仲裁的具体步骤如下交换方B向可信第三方提交仲裁信息;可信第三方验证B提交仲裁信息的合法性和有效性,如果验证失败,则仲裁终止;可信第三方使用自己的陷门信息恢复出交换方A的概率签名;可信第三方将恢复出的交换方A的概率签名发送给交换方B。
全文摘要
本发明涉及一种基于标准RSA密码算法的优化公平交换方法,其特征在于,参与公平交换的双方使用基于标准RSA算法的概率签名来完成正常的公平交换步骤,当任一方对其交换行为抵赖时,则由可信第三方执行仲裁。作为一个优化公平交换方案,该方法需要一个离线的可信第三方支持,适用于基于因特网的各类电子交易中的公平交换问题。该方法巧妙地避免了已有方案必须依赖零知识证明的缺陷,是第一个基于RSA密码体制的简洁、高效的优化公平交换方法,兼容于各类符合RSA公钥密码标准的软、硬件实现平台,可快速应用于广泛部署的基于RSA公钥密码技术的各类应用。该方法无需用户事先向可信第三方注册,易于在各类软、硬件环境下高速实现,具有可证安全性。
文档编号H04L9/28GK1688123SQ20051007517
公开日2005年10月26日 申请日期2005年6月10日 优先权日2005年6月10日
发明者冯登国, 张振峰, 周永彬 申请人:中国科学院软件研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1