签密方法和装置以及对应的签密验证方法和装置的制作方法

文档序号:7859058阅读:303来源:国知局
专利名称:签密方法和装置以及对应的签密验证方法和装置的制作方法
技术领域
本发明涉及一种密码技术,特别涉及一种签密技术。
背景技术
这部分将向读者介绍可能与下面描述和/或要求权利的本发明的各个方面有关的技术领域的各个方面。这个讨论相信有助于给读者提供背景信息以有利于更好地理解本发明的各个方面。因此,应该理解的是,应该从上述角度阅读这些陈述,而不是将其解读为对现有技术的承认。目前存在许多种不同的密码方案。Laila El Aimani在“Design and Analysis of Opaque Signatures”(不透明类型签名的设计和分析)(DissertationRheinischen Friedrich-Willielms-Universitat. Bonn (http ://hss. ulb. uni-bonn.de/2011/2541/2541, pdf))中描述了几种,显著地确认者(confirmer)和不可否认签名,即,其中没有某一实体的合作就不能获得验证的签名。在这篇论文中,作者实质性地研究了如何从基本的密码学原语(basic cryptographic primitives)建立这样的签名。她展示了传统的范例(例如 Encrypt_then_Sign 和 Commit_then_Encrypt_and_Sign)需要进行昂贵的加密以达到合理的安全水平。然后,她展示了较小的调整就可以使这些构建得益于廉价的加密而获得广泛应用,这种调整对作为结果的签名的效率(例如成本、带宽、可验证性)有积极影响。然而,这些签名并不提供待签名的消息的加密。由于许多现实生活中的应用要求被传送数据的机密性和认证性/完整性,被称作签密(signcryption)的提供签名和加密功能的密码机制正在变得越来越常见。一个例示性的示例是其中需要加密以保证投票者隐私、同时投票中心需要确保该被加密的投票来自该投票者的电子选举。在密码技术中,从基本的密码学原语建立这样的机制是惯例的,这是因为这样做允许比较于较之专用的、整体的构建,获得易于分析的方案。在现有技术中,使用最为广泛的从基本的密码学原语中设计出这些机制的范例是“encrypt_then_sign” (EtS)和“sign_then_encrypt,,(StE)范例。Encrypt_then_sign (EtS)发送者持有一个公钥/私钥对(Spk,Ssk),接收者持有一个不同的公钥/私钥对(Epk, EskX发送者使用接收者的公钥Epk对明文m加密以获得密文e。然后使用发送者私钥对密文e签名以获得签名S。(e, s)对形成明文m的签密。发送者还可以在此时证明隐含在密文e中的消息的知识。技术人员将了解到,如果使用的加密方案属于“E类”(参见Laila ElAimani :出自“Signature of a Commitment(承诺签名)”范例的Efficient Confirmer Signatures (高效的确认者签名),ProvSec2010:87-101。该论文还描述了 Commit_then_Encrypt_and_Sign范例的确认者签名所需的协议和其安全证明。该论文表明为了获得安全的确认者签名,该范例必须依靠昂贵的加密。然而,很小的微调改进使得该范例得益于廉价的加密而广泛使用,致使产生了具有许多实用性实现的构建。该论文更进一步地阐明了这种技术的具体情形,即Encrypt_then_Sign,并呈现了几种使用这种解决方案的确认者签名的实用性实现。然而,该研究最初的目的并不允许对待签名的消息加密),那么上述证明可以被高效地运行。E类由接受用于证明给定的密文对给定的消息加密的高效协议的同态(homomorphic)加密方案组成。这类加密方案的实例是 ElGamal 加密[Taher ElGamal :A Public Key Cryptosystem and aSignature Scheme Based on Discrete Logarithms (基于离散对数的公钥密码系统和签名方案),CRYPTO 1984:10-18]、Paillier 的加密[Public-Key Cryptosystems Based onComposite Degree Residuosity Classes(基于复合度剩余类的公钥密码系统),EUROCRYPT1999:223-238]和线性 Diffie-HeIImanKEM/DEM[Dan Boneh,Xavier Boyen, HovavShacham:Short Group Signatures (短群签名),CRYPTO 2004:41-55]。接收者使用发送者的公钥Spk以检查密文e的签名s是正确的。然后,如果该签名是正确的,那么该接收者会使用该接收者的私钥Esk解密该密文e以获得明文消息m。接收者可以在任何时间向任何人证明m是(或不是)e的解密,优选地在不披露 该私钥的情况下。在EtS中,这种证明,被称作“确认/否定协议”,相当于证明密文是(或不是)给定消息的解密。当难以检查给定的密文是否是对给定的消息的加密时,即当使用的加密方案满足满足基于隐含的消息区分密文是困难的不可区分性质时,这种证明尤为有用。通常地,给定两个消息和其中之一的加密,应该不能区分哪个消息与给定的密文对应。因为签密构建的安全性要求底层加密具有不可区分性质,所以必须考虑允许前述证明高效执行的加密方案。此外,如在[Laila El Aimani :出自“Signature of aCommitment,,Paradigm( “承诺签名”范例)的 Efficient Confirmer Signatures (高效的确认者签名XProvSec 2010:87-101]中所展示的那样,E类的加密方案完成了这个目标。Sign_then_encrypt(StE)如在EtS中那样,发送者持有一个公钥/私钥对(Spk,Ssk),接收者持有一个不同的公钥/私钥对(Epk,Esk)。可以使用现有技术的签名方法和现有技术的签名加密方法以一种简单的方式实施 StE。美国专利第2005/240762号描述了另外一种使用Sign_then_Encrypt范例对消息签密的解决方案。这个想法在于首先使用RSA在待签名的消息上生成签名,然后再一次使用RSA和不同的密钥对对生成的签名加密。这个结果形成讨论中的消息的签密。可以通过首先对该签密解密、验证在编码时输出的签名、最后恢复隐含在编码中的消息来对这个签密进行解签密(解密和验证)。这个解决方案似乎并没有提供可验证性的功能,即在不出现消息的情况下高效地证明生成的签密的完构性(well formedness)。确实,由于散列函数(Hash Functions)和XOR (异或)运算符的存在,它们破坏了能使得可验证性变得容易的任何代数性质,因此这种解决方案的高效可验证性看起来并不合理。另一种实施StE的方式是从数字签名方案和加密方案中建立签密方案;它是两种机制的组合密钥封装机制(KEM)和数据封装机制(DEM),其中,密钥封装机制(KEM)是用于产生会话密钥的机制,数据封装机制(DEM)是一种对称密钥加密方案。KEM由“三件套”算法(密钥生成、封装、解封装)组成。密钥生成算法生成密钥对(pk,sk)。封装算法使用Pk生成密钥k和其封装C,解封装使用私钥Sk从其封装中取回密钥。一个实例是暗含ElGamal加密方案的KEM。DEM——数据封装机制——对数据加密,通常使用对称密钥加密算法。在图I中例示StE。随机数r、KEM的封装算法和公钥pk被用来获得会话密钥k和其封装C。然后,发送者使用其私钥Ssk对连接在一起的明文m和封装c签名,从而获得签名s (未示出)。DEM的加密算法和会话密钥k被用来加密(m,s)并获得e。(c, e)对形成m的签密。为了 “解签密(unsigncrypt)” (c, e),使用KEM的解封装算法和私钥将会话密钥k从其封装c中恢复出来。然后,使用DEM的解密算法和会话密钥k解密e以获得(m, s)。最后,可以使用发送者的公钥来验证签名s的有效性。发送者进一步需要证明获得的签密的有效性。在StE中,这种证明相当于证明e的解密的知识,以及该解密是连接在一起的待签密的消息和与c连接在一起的那个消息上的签名。 从理论的观点上看[OdedGoldreich, Silvio Micali, Avi ffigderson:How toProve all NP-Statements in Zero-Knowledge, and a Methodology of CryptographicProtocol Design(如何零知识地证明所有的NP问题,以及密码协议设计的方法论),CRYPTO1986:171-185],这种证明是合理的。然而,当将要证明的数据是由比特串(bit_strings)而不是由代数元素组成的时候,如何高效地实施它仍旧未知。KEM/DEM加密方案的一个示例是ELGamal加密I. ElGamal. Setup。我们工作在由某g生成的乘法表示的群G中。该群G是有限的并具有某d阶。2. ElGamal. Keygen。密钥生成算法输入一个安全参数并输出一个Zd中的整数X,以及群元素y=gx。密钥对是(sk=x, pk=y)。3. ElGamal. Encryt (m)。[第一步KEM封装算法]:使用Zd中的某随机数r生成密钥I^ylr和其封装czg1·。[第二步DEM加密算法]:用e=m · k对m加密。[最后输出]:(c, e)形成m的加密。4. ElGamal. Decryt (c, e)。[第一步KEM解封装算法]:使用x,从c中恢复密钥k% k=cx= (gr)x= (gx)r = yro [第二步DEM 解密算法]:恢复 m 为 m=c · k'最后,为了能够高效地证明该构建的有效性,使用的加密方案(衍生于KEM/DEM范例)必须属于前面提到的“E类”,即加密是同态的并且接受高效的用于证明给定的密文对给定的消息加密的证明。对于ElGamal的加密是这种情形。通常地,可验证的签密必须具有下列性质I.不可伪造性假冒发送者发送某消息(不一定被敌手控制)在计算上不可行。2.不可区分性从消息的签密推算与该消息有关的任何信息在计算上不可行。3.可验证性高效证明签密的有效性的可能性。再次考虑电子选举的示例,投票中心可能要求投票者提供“签密的”投票的有效性的证明。同样地,例如,为了解决后继争议,对投票解密的受信方(接收者)可能会被强制证明发送者确实已经做出了讨论中的投票。因此,以在不需要披露其私钥的情况下提供这样的证明的高效方法来支持接收者是被期待的。根据这些性质,EtS和StE的表现如下由于发送者只需要证明给定密文的解密的知识,所以EtS在可验证性方面更佳。同样地,接收者必须证明消息是或不是给定密文的解密。如果考虑一种特殊类别的被称作同态加密的加密,那么这种证明很容易进行。然而,为了获得不可区分性,EtS苛刻地要求底层签名方案满足最高安全概念,即在遭到选择消息攻击(chosen message attacks)时,这通常表示很难在敌手可能已经获得了一个或若干签名的消息上获得新的签名,仍然要求较强的不可伪造性。下列可能性为这种要求提供了足够的理由万一签名方案不满足上述要求,那么就会存在在任何已经被签密的消息上创建新签密的可能(只需在密文e上生成新的数字签名)。这种可能性给予了不可区分性的敌手在大部分常见的攻击模式中取回消息的资格。StE不要求底层签名方案的高安全性概念,因为在此情形中,敌手并不明确持有所涉及的数字签名。支持StE的另一论据是它允许发送者完全匿名;消息111上的签密是密文,而在EtS中,任何人都可以通过简单地检查密文e上的数字签名的有效性(使用发送者的公钥)来检查发送者是否涉及签密(e,s)。但是,此时可验证性变成障碍该技术将(使用的签名方案的)签名算法应用于待签密的且与使用的封装连接在一起的消息。它进一步生成与讨论中的消息连接在一起的签名结果的加密。为了证明生成的签密的有效性,利用签名和 加密方案的同态性质以提供被加密的签名和消息的知识证明是必须的。因此,使用的加密和签名方案必须被操作于来自已知代数结构的集合的元素而不是操作比特串。总而言之,EtS提供了以发送者的匿名性和对构建模块的安全性要求为代价的高效的可验证性。StE则以可验证性为代价使用廉价的构建而获得了更好的私密性。本领域的技术人员将要了解到的是,存在着结合EtS和StE的优点、同时避免它们的缺点的解决方案的需要。本发明就提供了这样的一种解决方案。

发明内容
第一方面,本发明提供了一种对明文m签密的方法。一种装置使用第一加密算法和第一公钥Epk对明文m加密以得到第一密文e ;使用随机数r、封装算法和第二公钥Kpk生成会话密钥k和该会话密钥k的封装c ;使用签名算法和私用签名密钥Ssk生成第一密文e和封装c的签名s ;使用第二加密算法和会话密钥k对签名s加密以得到第二密文e_d ;从第一密文e、封装c和第二密文e_d形成签密;输出该签密。在第一优选实施例中,该装置进一步证明了第一密文e的解密的知识,以及第二密文e_d使用封装c的密钥在封装c和第一密文e上加密了有效的签名S。第二方面,本发明针对一种对接收到的明文m的签密解签密的方法,所述签密包括第一密文e、封装c和第二密文e_d。装置使用第一解密算法和与用于对第一密文e加密的第一公钥Epk对应的第一私钥Esk对第一密文e进行解密;通过使用解封装算法和与用于封装会话密钥k的第二公钥Kpk对应的第二私钥Ksk对封装c进行解封装;通过使用第二解密算法和会话密钥k对第二密文e_d解密以恢复签名s ;使用验证算法和与用于生成签名的私用签名密钥Ssk对应的公用签名密钥Spk验证签名s是正确的。在第一优选实施例中,该装置进一步证明了明文m和第一密文e的解密的等同性或不等同性的知识、第二密文e_d的解密以及该解密是对第一密文e和封装c的有效的数字签名。第三方面,本发明提供了一种用于对明文m签密的签密装置。该签密装置包括适配用于以下的处理器使用第一加密算法和第一公钥Epk对明文m加密以获得第一密文e ;使用随机数r、封装算法和第二公钥Kpk以生成会话密钥k和该会话密钥k的封装c ;使用私用签名密钥Ssk利用签名算法在第一密文e和封装c上生成签名s ;使用会话密钥k利用第二加密算法对签名s加密以获得第二密文e_d ;以及由第一密文e、封装c和第二密文e_d形成签密。该装置进一步包括适配用于输出该签密的接口。在第一优选实施例中,该处理器进一步适配用于证明第一密文e的解密的知识,以及第二密文e_d使用封装c的密钥在封装c和第一密文e上加密了有效签名S。第四方面,本发明针对一种用于验证接收到的明文m的签密的签密验证装置,该签密包括第一密文e、封装c和第二密文e_d。该签密验证装置包括适配用于以下的处理器使用第一解密算法和与用来对第一密文e加密的第一公钥Epk对应的第一私钥Esk对第一密文e解密;通过使用解封装算法和与用来封装会话密钥k的第二公钥Kpk对应的第二私钥Ksk对封装c解封装以取回会话密钥k ;通过使用第二解密算法和会话密钥k对第二密文e_d解密以恢复签名s ;以及使用验证算法和与用于生成签名的私用签名密钥Ssk对应 的公有签名密钥Spk验证签名s是正确的。在第一优选实施例中,处理器进一步适配用于证明明文m和第一密文e的解密的等同性或不等同性的知识,以及签名s是否是第一密文e和封装c的有效的数字签名。第五方面,本发明提供了一种具有指令存储于其中的计算机程序产品,当处理器执行这些指令时,运行第一方面的方法的任何实施例的方法。第六方面,本发明提供了一种具有指令存储于其中的计算机程序产品,当处理器执行这些指令时,运行第二方面的方法的任何实施例的方法。


现在将通过结合附图以非限定性方式对本发明的优选特征进行描述,附图中图I图示已经描述过的现有技术KEM/DEM范例方案;图2图示根据本发明优选实施例的签密方法;以及图3图示根据本发明优选实施例的签密系统。
具体实施例方式本发明的一个主要创新思想在于首先使用公钥加密方案对待签密的明文加密,然后将StE的变型应用到生成的密文上。这个变型STE和该密文的结果形成明文的新签密。从某种意义上说,这项技术可以被视为是EtS和StE的结合;因此它可以用术语“encrypt_then_sign_then_encrypt” (EtStE)表不。图2图示了根据本发明的优选实施例的签密(SC)方法。该方法使用第一加密方案 E= (E. Keygen, E. Encrypt, E. Decrypt)、签名方案 S= (S. Keygen, S. Sign, S. Verify)以及来自实际上包括密钥封装和会话密钥生成方案K= (K. Keygen, K. Encapsulate, K.Decapsulate)和对称的第二加密方案D= (D. Encrypt, D. Decrypt)的被称作KEM/DEM范例的第二加密方案。可以按照如下方式获得签密方案SC。首先生成必需的密钥。调用E. Keygen以得到(Epk, Esk),调用S. Keygen以得到(Spk, Ssk),调用K. Keygen以得到(Kpk,Ksk)。发送者的密钥对被设定为(Spk, Ssk),接收者的密钥对被设定为({Epk,Kpk},{Esk,Ksk})。应该了解的是,这一步骤,包括分发密钥在内,在本发明的范围以外——可以使用任何合适的方法,但是优选地发送者和接收者生成他们自己的密钥对。假定发送者和接收者持有执行方法步骤的必需的密钥。发送者使用第一加密算法利用Epk对明文m加密以获得密文e, e=E. Encrypt (m),步骤SI。发送者使用封装算法和Kpk生成密钥k和其封装c, (c, k) =K. EncapsulateO ,步骤S2。然后,发送者使用Ssk在(e,c)上生成签名,s=S. sign (e,c),步骤S3。最后,发送者使用第二加密方案利用密钥k对s加密,e_kd=D. Encrypt (S),步骤S4。(e, c, e_d)形成m的签密,步骤S5。然后,发送者将签密(e,c, e_d)发送给接收者,步骤S6。接收者使用Esk对e解密以获得m, m=E· Decrypt (e),步骤S7。然后,接收者使用Ksk从c取回k, k=K. Decapsulate (c),步骤S8,并通过使用密钥k对e_d解密恢复s, s=D. Decrypt (e_d),步骤S9。最后,接收者使用Spk利用S. Verify(S)检查在(e, c)上的签名s是有效的,步骤SlO。发送者证明e的解密的知识,以及e_d使用封装的密钥在连接在一起的c和e上加密有效的签名是可能的,步骤S11。接收者可以证明m是(或不是)e的解密。他进一步证明(c,e_d)的解密的知识,以及该解密由在(e,c)上的有效/无效的签名组成,步骤S12。如果底层加密方案是同态的并且使用的签名方案属于Laila ElAimani在OnGeneric Constructions of Designated Confirmer Signatures (指定的石角认者签名的类属构建),IND0CRYPT 2009:343-362中定义的签名类——“S类”——即,接受签名的高效的知识证明的签名方案给定消息m和公钥pk,pk的持有者和m上的签名s可以高效地证明这个签名s的知识,那么上述构建接受高效的实例化。这样的类包括目前提出来的大多数的使用广泛的签名,例如RSA-FDH [MihirBellarej Phillip Rogaway: Random Oracles are Practical: A Paradigm for DesigningEfficient Protocols (随机预言机是实际可行的设计高效协议的范例),计算机和通信安全 ACM 会议 1993 62-73]I. RSA. Keygen :生成RSA模数N和RSA密钥(pk=e,sk=d)。考虑将比特串映射到Zn中的元素的防碰撞散列函数h。2. RSA. Sign (m):计算 m 上的签名为 s=h (m) dmod N。3. RSA. verify (m, s):检查是否满足 se=h (m)mod N。容易看出s的持有者可以通过提供h (m)的第e个根的知识证明来证明s的知识。图3例示了根据本发明优选实施例的用于签密的系统100。系统100包括发送者110和接收者120,每个包括至少一个适配用于和其它装置通信的接口单元111和121、至少一个处理器(“处理器”)112和122以及至少一个适配用于存储诸如累加器和中间计算结果这样的数据的存储器113和123。发送者110的处理器112适配用于根据本发明方法的任何一个实施例对明文进行签密,接收者120的处理器122适配用于根据本发明方法的任何一个实施例对签密进行解密和验证。第一计算机程序产品114如⑶-ROM或DVD包括存储的指令,当发送者110的处理器112执行这些指令时,根据本发明的任何一个实施例对明文进行签密。第二计算机程序产品124如⑶-ROM或DVD包括存储的指令,当接收者120的处理器122执行这些指令时,根据本发明的任何一个实施例对签密进行解密和验证。本领域技术人员将要了解到的是,与现有技术的签密方法相比,本发明的签密方法可以提供更好的性能,尤其在可验证性方面,同时提供较高的安全性。这种改善得益于下述事实构建结合了 EtS和StE方法的优点,同时避免了它们的缺点。可骀证件为了证明使用本发明的方法获得的签密(e,c, e_d)的有效性,发送者需要I.证明e的解密的知识; 2.证明(c,e_d)的解密的知识以及该解密是连接在一起的c和e上的有效签名。如果使用的加密方案属于“E类”并且使用的签名方案属于“S类”,那么两个证明都可以被高效地执行,其中“E类”和“S类”连同提到的证明协议一起在[Laila ElAimani “On Generic Constructions of Designated Confirmer Signatures”(指定的石角认者签名的类属构建),IND0CRYPT 2009:343-362]中描述。在StE范例中,签密(某消息m上的)具有形式(c,e),并且发送者需要证明解密(c,e)的知识以及该解密的第一部分是连接在一起的c和该解密的剩余部分(即m)上的有效签名。尽管从理论的观点上看这样做是可能的,但是目前任何能实现它的高效的方式都是未知的。接收者的协议,即确认/否定协议,也是这种情况。更好的私密性本发明的方法的签密包括两个密文,即,攻击者并不明确具有数字签名。这从两个方面提升了私密性。第一,与EtS范例相比,以“廉价”的安全性要求且不影响不可区分性性质地使用底层签名方案是可能的。第二,给定签密,检查(如果第二加密方案是匿名的)发送者是否涉及签密是不可能的(相比较于其中任何人都可以检查包含在签密中的数字签名是否在密文上有效)。说明书中公开的每个特征、权利要求(如果适用)和附图都可以被独立地或者以任何合适的组合的方式提供。被描述为使用硬件实施的特征也可能可以使用软件实施,反之亦然。权利要求中出现的参考标号仅作示例性用途,而对权利要求的范围不具有限制性影响。
权利要求
1.一种通过装置(Iio)对明文m签密的方法,所述方法包括在所述装置(110)处的步骤 -使用第一加密算法和接收者的第一公钥Epk对明文m加密(SI)以获得第一密文e ;-使用(S2)随机数r、封装算法和接收者的第二公钥Kpk以生成会话密钥k和所述会话密钥k的封装c ; -使用发送者的私用签名密钥Ssk利用签名算法在所述第一密文e和所述封装c上生成(S3)签名s ; -使用所述会话密钥k利用第二加密算法对所述签名s加密(S4)以获得第二密文e_d ; -由所述第一密文e、所述封装c和所述第二密文e_d形成(S5)所述签密;以及 -输出(S6)所述签密。
2.如权利要求I中所述的方法,进一步包括证明(Sll)所述第一密文e的解密的知识以及所述第二密文e_d使用所述封装c的所述密钥在所述封装c和所述第一密文e上加密有效签名s的步骤。
3.一种通过装置(120)对接收到的明文m的签密解签密的方法,所述签密包括第一密文e、封装c和第二密文e_d,所述方法包括在所述装置(120)处的步骤 -使用第一解密算法和与用来对所述第一密文e加密的所述接收者的第一公钥Epk对应的签密的接收者的第一私钥Esk对所述第一密文e解密(S7); -通过使用解封装算法和与用来对会话密钥k封装的所述接收者的第二公钥Kpk对应的所述接收者的第二私钥Ksk对所述封装c解封装以取回(S8)所述会话密钥k ; -通过使用第二解密算法和所述会话密钥k对所述第二密文e_d解密以恢复(S9)签名;以及 -使用验证算法和与用来生成所述签名的所述发送者的私用签名密钥Ssk对应的所述签密的发送者的公用签名密钥Spk验证(SlO)所述签名是正确的。
4.如权利要求3中所述的方法,其中,所述方法进一步包括证明(S12)所述明文m和所述第一密文e的所述解密的等同性和不等同性的知识、所述第二密文e_d的所述解密以及所述解密是所述第一密文e和所述封装c上有效的数字签名的步骤。
5.一种用于对明文m签密的签密装置(I 10),所述签密装置(I 10)包括 -处理器(112),适配用于 -使用第一加密算法和接收者的第一公钥Epk对明文m加密以获得第一密文e ; -使用随机数r、封装算法和接收者的第二公钥Kpk以生成会话密钥k和所述会话密钥k的封装c ; -使用发送者的私用签名密钥Ssk利用签名算法在所述第一密文e和所述封装c上生成签名s ; -使用所述会话密钥k利用第二加密算法对所述签名s加密以获得第二密文e_d ;以及 -由所述第一密文e、所述封装c和所述第二密文e_d形成所述签密; 以及 -接口(111),适配用于输出所述签密。
6.如权利要求5中所述的签密装置,其中,所述处理器(112)进一步适配用于证明所述第一密文e的解密的知识以及所述第二密文e_d使用所述封装c的密钥在所述封装c和所述第一密文e上加密有效签名S。
7.一种用于对接收到的明文m的签密解签密的签密验证装置(120),,所述签密包括第一密文e、封装c和第二密文e_d,所述签密验证装置(120)包括 -处理器(122),适配用于 -使用第一解密算法和与用来对所述第一密文e加密的所述接收者的第一公钥Epk对应的签密的接收者的第一私钥Esk对所述第一密文e解密; -通过使用解封装算法和与用来对会话密钥k封装的所述接收者的第 二公钥Kpk对应的所述接收者的第二私钥Ksk对所述封装c解封装以取回所述会话密钥k ; -通过使用第二解密算法和所述会话密钥k对所述第二密文e_d解密以恢复签名;以及 -使用验证算法和与用来生成所述签名的所述发送者的私用签名密钥Ssk对应的所述签密的发送者的公用签名密钥Spk验证所述签名是正确的。
8.如权利要求7中所述的签密验证装置,其中,所述处理器(122)进一步适配用于证明所述明文m和所述第一密文e的所述解密的等同性和不等同性的知识,以及所述签名s是否是在所述第一密文e和所述封装c上的有效的数字签名。
9.一种具有存储于其上的指令的计算机程序产品(114),当所述指令被处理器执行时,进行权利要求I和2中任何一项所述的方法。
10.一种具有存储于其上的指令的计算机程序产品(124),当所述指令被处理器执行时,进行权利要求3和4中任何一项所述的方法。
全文摘要
发送者(110)使用如下方法步骤生成签密使用第一加密算法利用公钥Epk对明文m加密(S1)以获得密文e,e=E.Encrypt(m);使用封装算法和公钥Kpk生成(S2)密钥k和其封装c,k,c=KD.Encapsulate();使用Ssk对(e,c)签名,s=S.sign(e,c),步骤S3;使用第二加密算法和密钥k对签名s加密(S4),e_d=D.Encrypt(s)。该m的签密由(e,c,e_d)形成(S5)。发送者还可以证明(S11)e的解密的知识,以及e_d使用封装的密钥对连接在一起的c和e上的有效签名加密。本发明还提供了相应的签密验证装置和方法,以及计算机程序产品。
文档编号H04L9/32GK102970138SQ20121031024
公开日2013年3月13日 申请日期2012年8月28日 优先权日2011年8月29日
发明者L.埃尔艾玛尼 申请人:汤姆森特许公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1