加速电子签名传输的方法

文档序号:7591306阅读:545来源:国知局
专利名称:加速电子签名传输的方法
技术领域
本发明涉及一种用于加速传输公共密钥电子签名类型的电子签名的方法。
在保密密钥密码术的传统模型中,希望通过非安全信道进行通信的两个人必须首先对保密加密密钥K达成协议。加密函数和解密函数采用相同的密钥K。这种保密密钥加密系统的缺点在于所述系统在任何加密消息通过非安全信道发送之前,要求事先在两个人之间通过安全信道就密钥K进行通信。实际上,找到绝对安全通信信道一般都困难,尤其是在两个人之间的距离隔得很远的情况下。安全信道表示不可能知道或修改通过该信道的信息的信道。这样的安全信道能由连接所述两个人拥有的两个终端的电缆来实现。
公共密钥密码术的概念由Whitfield Diffie和Martin Hellman于1976年发明。公共密钥密码术解决了通过非安全信道发送密钥的问题。公共密钥密码术的原理包括利用一对密钥公共加密密钥和专用解密密钥。从计算的角度上看,从公共加密密钥得到专用解密密钥难以行得通。希望向用户B传送信息的用户A使用用户B的公共加密密钥。只有用户B拥有与其公共密钥有关的专用密钥。因此只有用户B能够解密发送给他的消息。
公共密钥密码术较之保密密钥密码术的另一个优点在于公共密钥密码术允许通过使用电子签名的进行验证。
发明RSA加密系统的Rivest、Shamir和Adleman于1977年开发了公共密钥加密方案的第一实施例。RSA安全性基于对两个素数的乘积的这样一个大数进行因子分解的难度。其后,建议了许多公共密钥加密系统,其安全性是基于以下各种计算问题(这里所列并非穷举)
-Merkle-Hellman“背包”这种加密系统基于子集的和的问题的难度;-McEliece这种加密系统基于代数码理论。它基于解码线性码的问题;-ElGamal这种加密系统基于有限域中离散对数的难度;-椭圆曲线椭圆曲线加密系统构成对现行加密系统的修改,以便将之应用到椭圆曲线域。椭圆曲线加密系统的优点在于与其它加密系统相比,它们需要较小的密钥大小。
RSA加密系统是最广泛使用的公共密钥加密系统。它可用作加密方法或签名方法。RSA加密系统用于智能卡,用于智能卡中的某些应用。RSA对智能卡的可能应用为访问数据库,金融应用,诸如付费电视、加油或高速公路通行费支付的远程支付应用。
RSA加密系统的原理如下。它可以被分成三个不同部分,即1)生成RSA密钥对;2)将明码消息加密为加密消息,以及3)将加密消息解密为明码消息。
第一部分是生成RSA密钥。根据以下5个步骤的方法,各个用户建立RSA公共密钥和相应的专用密钥4)生成两个相同长度的不同素数p和q;5)计算n=pq和φ=(p-1)(q-1)6)随机选择整数e,使得pgcd(e,φ)=1,其中1<e<φ;7)计算唯一的整数d,使得e*d=1mod(模)φ,其中1<d<φ;8)公共密钥为(n,e);专用密钥是d或(d,p,q)。
整数e和d分别被称为加密指数和解密指数。整数n被称为模数。
第二部分包括将表示为m的明码消息通过算法加密为表示为c的加密消息,其中1<m<n,算法如下
计算c=m^e mod n。
第三部分包括通过一种算法、利用专用解密指数d解密所加密的消息。将表示为c的加密消息解密为表示为m的明码消息的算法在下面给出,其中1<c<n计算m=c^d mod n。
RSA系统也可用于生成电子签名。基于RSA系统的电子签名方案的原理一般可以被定义为三个部分-第一部分是利用之前描述的RSA系统的第一部分中所描述的方法生成RSA密钥;-第二部分是生成签名。方法包括把要签名的消息M作为输入,利用函数μ对它应用编码,以便得到字符串μ(M),并应用上述RSA系统的第三部分的解密方法。因此只有拥有所述专用密钥的用户能够生成签名;-第三部分是签名的验证。方法包括把要签名的消息M以及要验证的签名s作为输入,利用函数μ对消息M应用编码,以便得到字符串μ(M),对签名s应用在RSA系统的第二部分中描述的加密方法,并验证得到的结果等于μ(M)。在这种情况下,消息M的签名s有效,反之则是错误的。
有许多利用不同函数μ的编码方法。编码方法的一个示例是在“ISO/IEC 9796-2,信息技术-安全技术-数字签名方案提供消息恢复,第二部分利用散列函数的机制”标准中描述的方法。编码方法的另一个示例是在“RSA实验室,PKCS#1RSA密码术规范,2.0版(“RSA Laboratories,PKCS#1RSA cryptography specifications,version 2.0,September 1998”)”标准中描述的方法。这两种编码方法有可能对任意长度的消息进行签名。
上述这两种编码方法的缺点在于它们需要传输RSA模长度的电子签名,也就是一般1024比特。对于电子签名方法的某些应用,出现用户的专用密钥被验证签名的实体知道,特别是在该实体是认证机构或银行时。
本发明的方法包括仅发送消息M的签名S的一部分S’。本发明的方法包括两个不同部分第一部分是短签名的生成,第二部分是由具有用户的专用密钥的实体验证短签名。
生成短签名的方法把消息M和用户的专用密钥d作为输入,并包括以下步骤1)利用用户的专用密钥d生成消息M的签名S。
2)计算签名S的一部分S’,所述一部分能是包含在签名S中的一串比特。
验证短签名的方法把消息M、要被验证的短签名S’、以及用户的专用密钥d作为输入,并包括以下步骤1)利用用户的专用密钥d来生成消息M的签名S。
2)计算签名S的一部分S”,并验证所述一部分S”等于短签名S’。
短签名生成和验证方法的优点在于要发送的签名的长度远远小于一般情况下的因此有可能只发送签名的64比特而不是1024比特。其结果是由较短的传输时间而有更好的性能。
权利要求
1.一种电子签名方法,所述方法包括仅发送消息M的签名S的一部分S’,其特征在于所述方法包括两个不同部分第一部分是短签名的生成,第二部分是由具有用户的专用密钥的实体验证所述短签名。
2.如权利要求1所述的方法,其特征在于所述短签名的生成包括以下2个步骤1)利用所述用户的专用密钥d来生成所述消息M的签名S。2)计算所述签名S的一部分S’。
3.如权利要求1所述的方法,其特征在于利用所述用户的专用密钥d对所述消息M的签名S的所述验证包括下面2个步骤1)利用所述用户的专用密钥d来生成所述消息M的签名S;2)计算所述签名S的一部分S”,并验证所述一部分S”等于所述短签名S’。
4.如权利要求2或3中任一一项所述的方法,其特征在于所述短签名S的所述一部分S’和所述一部分S”都是所述签名S中包括的一串比特。
5.如前述权利要求中任何一项权利要求所述的方法,其特征在于所用签名系统基于RSA系统。
6.如权利要求1所述的方法,其特征在于验证所述签名的所述实体是银行。
7.如权利要求1所述的方法,其特征在于验证所述签名的所述实体是认证机构。
8.如前述权利要求中任何一项权利要求所述的方法,其特征在于它使用智能卡类型的便携式对象。
全文摘要
RSA加密算法是最广泛使用的公共密钥加密算法。本发明包括定义一种用于大大缩短要发送的签名的长度的方法。本发明可以容易地用于智能卡类型的电子部件。
文档编号H04L9/32GK1393080SQ01802929
公开日2003年1月22日 申请日期2001年9月26日 优先权日2000年9月28日
发明者J·S·科伦, D·纳卡彻 申请人:格姆普拉斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1