使用公共密钥的加密方法技术

技术编号:3534963 阅读:245 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及基于进行量G↑[k]modp计算的离散算法的,使用公共密钥的加密方法。根据本发明专利技术,提出了两种方案来减少乘法次数,一种方案在于产生具有很少为1的位数的“中空”指数K,但其位长足够保持系统的整体安全性;另一种方案在于并列地实现g的幂计算并在它们之间组合指数,以便对于给定指数不会二次地重复同一幂的计算,本发明专利技术适于产生数字帖码,认证,及编码。(*该技术在2016年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术旨在提供一各基于进行模P的量计算的离散算法的、使用公共密钥的所谓加密方法。它可应用于产生信息数字帖码、在两个实体之间的认证期间或在数据编码中。在这类方法中,其安全性的基础是必需对某些函数逆运算并尤其涉及离散算法的极其困难性。如果给出数学关系式y=gxmodulop-以下写为y=gxmodp(它表示y为gx被P除的余数),这个问题是,当我们已知P、g及Y时求解X。一旦当P的字长达到或超过512位及X的字长达到或超过128位,在当前的学识状态下该问题是不可能求解的。在这类系统中,通常具有一个权威机构,由它提供构成模的大字长数P。该权威机构同样选择一个称为基数的整数,以便由g形成集,这就是说数gxmodp形成的集,其中x属于区间〔0,p-1〕,或最长字长至少为2128的子集。参数p及g称为是“公共”的,这就是说,它们是由权威机构提供给所有附属该权威机构的用户的。根据某些变型方案,这些参数是由每个用户个别选择的,并在此情况下作为其公共密钥的组成部分。实施这类加密系统的主要缺点是必需具有相当大的计算和存储手段,因为要实现复杂的计算。事实上,量gxmodp的计算在于实现模的乘法运算,这是很花费时间和存储空间的。在仅使用标准微处理机的简单电子装置上这类运算操作不大可能实现。对于具有专用于这类计算的处理机的电子装置,尽管能合乎要求,但在计算时间及用于中间结果所需的存储空间方面有限制。事实上,通过传统的“平方相乘”方法(以英语缩写SQM(Square·Multiply)公知),通常,量gxmodp的计算是相当花成本的,因为它平均等同于3/2 Log2(P)次乘法运算。根据该方法,当K为n位字长时,我们计算g的所有次幂,这就是说,所有次方g0,g1,g2……gn,然后在这些幂之间进行所需乘法运算(例如g17=g1·g16)。根据该“平方相乘”方法,单gk就需要n/2次乘法及n个乘方。在一次需要提供N个帧码的情况下,我们将产生Ngk,那么就要进行并列计算。并列“平方相乘”法需要N×n/2次乘法及n个乘方。由E.BRICKELL等人提出的一种缩写名称为BGKW的方法能减小平方相乘方法情况中的乘法次数,但导致需要存储大量预先计算的常数,而由此需要设置大量的存储器是非常不利的。在该方法中导入N个值的并列计算意味着使用多个寄存器来存储中间结果。因此在涉及非常短时间中产生大量帖码的情况下该方法变得更加受限制,因为在此情况下要导入并列计算。本专利技术的目的在于解除所有这些缺点。它能对于在所有加密系统并尤其是使用微处理机的智能卡类型的便携装置上实施加密算法提供一种灵活的解决方案,及计算时间和存储空间方面的花费少。根据本专利技术的第一目的,提供的加密方法能降低模的乘法次数,以致根据所采用的加密方案(Schnorr或El Gamal)可获得15%至40%的计算时间方面的增益。根据本专利技术,提出了两种方案来减少乘法次数,一种方案在于产生具有很少为1的位数的“中空”指数K,但其位长足够保持系统的整体安全性;另一方案在于并列地实现g的幂计算,同时它们之间组合指数,以便对于给定指数不含二次地重复同一幂的计算。更具体地,本专利技术旨在提供一种,它基于进行量gkmodp计算的离散算法,式中p是称为模的质数,K是通常长度为n位的随机数,及g是称为基数的整数,其中一个实体E实现认证和/或帖码和/或编码操作,并包括与另一实体的信号交换,在另一实体中将涉及这个量,其特征在于对于该实体包括以下的步骤-产生一个长度为N位的随机指数,N等于n+b位;-计算该指数的汉明(hamming)加权C并与一预先确定的值h相比较;-验证该随机值K是否满足条件C≥h,-在汉时加权小于h的情况下,放弃该随机值K并重新开始产生新的指数,直到获得满足该条件的一个指数为止,-或在相反情况下保存该值,-根据保存值计算表达式gkmodp,-在与另一实体交换电子信号时使用该表达式。本专利技术还旨在一种,它基于进行量gkmodp计算的离散算法,式中P是称为模的质数,K是通常长度为n位的随机数,及g是称为基数的整数,其中一个实体E实现认证和/或帖码和/或编码操作,并包括与另一实体的信号交换,在另一实体中将涉及这个量,其特征在于对于该实体包括以下的步骤-产生一个加权为ai的n位随机指数集kj,其由以下表达式表示kj=∑ai2i,-并列地计算g2i的幂,同时组合这些指数,以使得对于一个指数计算出的g的幂用于另外其起作用的指数,-对于每个给定kj,计算还未计算的g的幂,并将这些幂重组合以获得所需的表达式gkjmodp,-在与另一实体交换信号时使用该表达式。根据第一实施方式,并列计算及重组合的步骤包括下列操作-成对地组合指数以获得反映它们公共部分的指数kc,并根据获得的组合结果反复地进行这些组合,-对于每个kc值这样地计算量Gkc=gkcmodp,用对于组合获得的指数kc组合一个指数kj,该指数属于该组合,以便消除公共部分并仅保留不同部分,确定反映给定指数kj及给定指数kc之间不同部分的指数k′j,-这样地计算Gk′j∶Gk′j=gk′jmodp,-通过进行对每次信号交换获得的各量Gkc之间的乘法运算确定表达式Gkjmodp。在第二实施方式,并列计算及再组合的步骤包括以下的操作-在它们之间组合指数以形成具有公共部分的指数的可能组合子集,-确定反映每个组合子集公共部分的指数kc,使给定加权的非零位相应于所考虑组合的相同加权的非零位。-对于每个kc值这样地计算量Gkc∶Gkc=gkcmodp,-对于指数kj所属的每个组合子集使每个指数kj与获得的所有指数相组合,以便消除公共部分并仅保留不同部分,-确定反映给定指数kj及给定指数kc之间不同部分的指数k′j,-这样地计算量Gk′j=gk′jmodp,-通过对于每个kj进行量G′kj及GkD之间的一次乘法运算来确定表达式gkjmodp。根据本专利技术的另一目的,允许获得指数之间共同部分的组合是由逻辑功能“与”来实现的。根据本专利技术的另一目的,允许获得指数之间共同部分的组合是内逻辑功能“异或”来实现的。在阅读以下由说明例及非限制性形式并参照附图描述和给出的说明后将会对本专利技术的其它特点和优点更加明白附图说明图1用于实施本专利技术的系统的原理图;图2表示第一应用中方法的基本步骤的功能图;图3表示根据第一实施方式的第二应用中方法的基本步骤的功能图;图4表示根据第二实施方式的第二应用中方法的基本步骤的功能图。在图1上我们看到实施本专利技术的加密方法的一个系统的原理图。该系统由一个希望执行电子信号交换的实体E1和至少另一实体E2组成。这两个实体分别设有一个处理单元(CPU)11、30,一个通信接口,一个随机存取存储器(RAM)13、32和/或只读存储器(ROM)14、34和/或非易失性可存入或可重存入存储器(EPROM或EEPROM)15、33及一个地址母线、数据母线、控制母线16、35。处理操作单元和/或ROM包括与涉及本专利技术方法的计算步骤执行相对应的程序或计算资源,这就是说,当认证期间或当电子帖码发生时或当待发送到其它实体的电子信号加密时的程序或计算资源。处理单元或ROM具有模数乘法、加法及减法所需的资源。同样地处理单元和/或ROM包括适用于每种加密算法及参数g及p的加密功本文档来自技高网...

【技术保护点】
使用公共密钥的加密方法,它基于进行量g↑[k]modp计算的离散算法,式中P是称为模的质数,K是通常长度为n位的随机数,及g是称为基数的整数,其中一个实体E实现认证和/或帖码和/或编码操作,并包括与另一实体的信号交换,在另一实体中及这个量起作用,其特征在于:对于该实体包括以下的步骤:-产生一个长度为N位的随机指数,N等于n+b位,-计算该指数的汉明加权C并与一预先确定的值h相比较,-验证该随机值K是否满足条件C≥h,-在汉明加权小于h的情况下,放弃该随机值K并 重新开始产生新的指数,直到获得满足该条件的一个指数为止,-或在相反情况下保存该值,-根据保存值计算表达式g↑[k]modp,-在与另一实体交换信号时使用该表达式。

【技术特征摘要】

【专利技术属性】
技术研发人员:D姆雷希D纳卡彻
申请(专利权)人:格姆普拉斯有限公司
类型:发明
国别省市:FR[法国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1