模逆运算器、模逆运算方法及安全系统技术方案

技术编号:24335017 阅读:72 留言:0更新日期:2020-05-29 21:54
一种模逆运算器、模逆运算方法及安全系统,涉及信息安全技术领域。模逆运算器(1)包括:计数器(11)、计算单元(12)以及控制单元(10);控制单元(10)用于通过计数器(11)更新模逆运算的操作数的有效字长,并将更新后的有效字长记作当前有效字长;控制单元(10)还用于控制计算单元(12)以当前有效字长的操作数进行模逆运算。通过控制有效字长的操作数进行模逆运算,从而减少操作数的存取以及计算次数,提高计算效率。

Modular inverse arithmetic unit, modular inverse arithmetic method and safety system

【技术实现步骤摘要】
【国外来华专利技术】模逆运算器、模逆运算方法及安全系统
本申请涉及信息安全
,特别涉及一种模逆运算器、模逆运算方法及安全系统。
技术介绍
在公钥密码体制中,当前主流的公钥密码算法有RSA和椭圆曲线密码(Elliptic Curve Cryptography,ECC)两种。ECC密码体制比RSA等其他公钥密码体制更加节省资源且加解密效率更高。模逆运算单元是整个ECC系统中最耗费时间的模块,因此提高模逆运算单元的处理速度是提升整个ECC系统的运行效率的关键所在。专利技术人发现现有技术至少存在以下问题:现有的模逆运算器在计算效率方面还有待改进。
技术实现思路
本申请部分实施例的目的在于提供一种模逆运算器、模逆运算方法及安全系统,通过控制有效字长的操作数进行模逆运算,从而减少操作数的存取以及计算次数,提高计算效率。本申请实施例提供了一种模逆运算器,包括:计数器、计算单元以及控制单元;所述控制单元用于通过所述计数器更新模逆运算的操作数的有效字长,并将更新后的所述有效字长记作当前有效字长;所述控制单元还用于控制所述计算单元以当前有效字长的所述操作数进行模逆运算。本申请实施例还提供了一种模逆运算方法,包括:根据已执行的模逆运算更新操作数的有效字长;根据更新的有效字长进行后一步模逆运算。本申请实施例还提供了一种安全系统,包括存储器以及如前所述的模逆运算器;所述存储器与所述模逆运算器连接,用于存储模逆运算的相关数据,或者所述模逆运算的相关数据以及所述系统中的其他数据。本申请实施例相对于现有技术而言,在模逆运算过程中,通过计数器更新操作数的有效字长,并以更新后的有效字长的操作数进行模逆运算。由于模逆运算中,操作数的有效字长会逐渐增加或者减少,因此以有效字长的操作数进行模逆运算可减少操作数的存取以及计算次数,提高计算效率。另外,所述计数器包括第一寄存器以及第二寄存器;所述控制单元用于控制所述第一寄存器记录所述操作数的有效字长,还用于在模逆运算过程中,通过所述第二寄存器累计所述操作数的比特变化次数,并根据所述比特变化次数更新所述第一寄存器记录的所述有效字长。本实施例单独通过第一寄存器记录操作数的有效字长,并通过第二寄存器累计操作数的比特变化次数,硬件实现更简单,且更便于控制单元更新以及获取操作数的有效字长。另外,所述控制单元用于根据预设的字长更新规则更新所述有效字长,所述字长更新规则包括:当所述操作数增大时,且所述第二寄存器累计的比特变化次数达到所述操作数的单位字长时,将所述操作数的有效字长加1,当所述操作数减小时,且所述操作数的比特变化次数达到所述单位字长时,将所述操作数的有效字长减1。另外,所述第二寄存器的位数为其中W是所述操作数的单位字长。本实施例以单位字长作为第二寄存器的最大累计值对操作数的有效字长进行更新,不仅使得第二寄存器硬件资源需求小,而且使得参与运算的操作数的有效字长更接近其实际字长,计算效率更高。另外,所述操作数包括第一类型的操作数,所述计算单元包括移位器以及加减法器;所述控制单元控制所述移位器对所述第一类型的操作数进行左移一位运算,并通过所述计数器将所述第一类型的操作数的比特变化次数加1;所述控制单元还控制所述加减法器对第一类型的操作数进行加法运算,在所述加法运算的加数小于或者等于被加的第一类型的操作数时,将所述被加的第一类型的操作数的比特变化次数加1,在所述加数大于所述被加的第一类型的操作数时,通过所述计数器将所述被加的第一类型的操作数的有效比特长度更新为所述加数的有效比特长度。本实施例为第一类型的操作数的有效字长的准确更新提供了一种方法。另外,所述操作数还包括第二类型的操作数;所述控制单元控制所述移位器对所述第二类型的操作数进行右移一位运算,并通过所述计数器将所述第二类型的操作数的比特变化次数加1;所述控制单元还控制所述加减法器对所述第二类型的操作数进行预设减法运算,并控制所述移位器对所述减法运算的结果右移一位,通过所述计数器将所述第二类型的操作数的比特变化次数加1;其中,所述预设减法运算的减数小于被减数。本实施例为第二类型的操作数的有效字长的准确更新提供了一种方法。另外,所述模逆运算器还包括寄存器堆,用于存储模逆运算的模数,所述寄存器堆包括多个寄存器,且所述多个寄存器的总比特长度为所述模数的比特长度。另外,所述计算单元包括:移位器以及加减法器;所述控制单元用于控制所述计算单元按照以下步骤进行所述模逆运算:S1:初始化所述模逆运算的相关数据;其中,所述模逆运算为:Y=a-1mod p,Y、a、p分别为所述模逆运算的结果、输入数以及模数;所述模逆运算的相关数据包括操作数u、v、x1、x2以及参数k,所述模逆运算的相关数据分别初始化为:u=a,v=p,x1=1,x2=0,k=0;S2:判断v是否大于0,如果v大于0,则执行步骤S3,如果v小于或者等于0,则执行步骤S4;所述S3包括:在v为偶数时,控制所述移位器将v右移一位,x1左移一位,并将k的值加1;在v为奇数且u为偶数时,控制所述移位器将u右移一位,x2左移一位,并将k的值加1;在u、v均为奇数,且v大于或者等于u时,控制所述加减法器以及所述移位器执行:v=(v-u)/2、x2=x2+x1、x1左移一位运算,并将k的值加1;在u、v均为奇数,且v小于u时,控制所述加减法器以及所述移位器执行:u=(u-v)/2、x1=x2+x1、x2左移一位运算,并将k的值加1;在k的值每加1后,返回步骤S2;所述S4包括:在u等于1且x1大于模数p时,将x1减去p并赋值给x1后返回中间结果;在u等于1且x1小于或者等于模数p时,返回中间结果;在u不等于1时,返回a不可逆;S5:对所述中间结果进行蒙哥马利模乘得到所述Y;所述控制单元还用于在所述步骤S3中,在所述移位器以及加减法器每计算一次,控制所述计数器更新对应的操作数的有效字长。附图说明一个或多个实施例通过与之对应的附图中的图片进行示例性说明,这些示例性说明并不构成对实施例的限定,附图中具有相同参考数字标号的元件表示为类似的元件,除非有特别申明,附图中的图不构成比例限制。图1是根据本申请第一实施例中的模逆运算电路及其应用的安全系统的的示意图;图2是根据本申请第一实施例中的模逆运算电路的一种模逆运算方法的流程图;图3是根据本申请第二实施例中的模逆运算方法的流程图。具体实施方式为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请部分实施例进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。请参阅图1,本申请第一实施例涉及一种模逆运算器1,可应用于安全系统,该安全系统例如为金融卡、门卡、指纹锁以及安全的嵌入式设备等的公钥密码系统。该模逆运算器1包括:控制单元10、计数器11以及计算单元12,控制单元10用于通过计数器11更新模本文档来自技高网...

【技术保护点】
一种模逆运算器,其特征在于,包括:计数器、计算单元以及控制单元;/n所述控制单元用于通过所述计数器更新模逆运算的操作数的有效字长,并将更新后的所述有效字长记作当前有效字长;/n所述控制单元还用于控制所述计算单元以当前有效字长的所述操作数进行模逆运算。/n

【技术特征摘要】
【国外来华专利技术】一种模逆运算器,其特征在于,包括:计数器、计算单元以及控制单元;
所述控制单元用于通过所述计数器更新模逆运算的操作数的有效字长,并将更新后的所述有效字长记作当前有效字长;
所述控制单元还用于控制所述计算单元以当前有效字长的所述操作数进行模逆运算。


如权利要求1所述的模逆运算器,其中,所述计数器包括第一寄存器以及第二寄存器;
所述控制单元用于控制所述第一寄存器记录所述操作数的有效字长,还用于在模逆运算过程中,通过所述第二寄存器累计所述操作数的比特变化次数,并根据所述比特变化次数更新所述第一寄存器记录的所述有效字长。


如权利要求2所述的模逆运算器,其中,所述控制单元用于根据预设的字长更新规则更新所述有效字长,所述字长更新规则包括:
当所述操作数增大时,且所述第二寄存器累计的比特变化次数达到所述操作数的单位字长时,将所述操作数的有效字长加1,
当所述操作数减小时,且所述操作数的比特变化次数达到所述单位字长时,将所述操作数的有效字长减1。


如权利要求3所述的模逆运算器,其中,所述第二寄存器的位数为Log2W,其中W是所述操作数的单位字长。


如权利要求1至4中任一项所述的模逆运算器,其中,所述操作数包括第一类型的操作数,所述计算单元包括移位器以及加减法器;
所述控制单元控制所述移位器对所述第一类型的操作数进行左移一位运算,并通过所述计数器将所述第一类型的操作数的比特变化次数加1;
所述控制单元还控制所述加减法器对第一类型的操作数进行加法运算,在所述加法运算的加数小于或者等于被加的第一类型的操作数时,将所述被加的第一类型的操作数的比特变化次数加1,在所述加数大于所述被加的第一类型的操作数时,通过所述计数器将所述被加的第一类型的操作数的有效比特长度更新为所述加数的有效比特长度。


如权利要求5所述的模逆运算器,其中,所述操作数还包括第二类型的操作数;
所述控制单元控制所述移位器对所述第二类型的操作数进行右移一位运算,并通过所述计数器将所述第二类型的操作数的比特变化次数加1;
所述控制单元还控制所述加减法器对所述第二类型的操作数进行预设减法运算,并控制所述移位器对所述减法运算的结果右移一位,通过所述计数器将所述第二类型的操作数的比特变化次数加1;其中,所述预设减法运算的减数小于被减数。


如权利要求1所述的模逆运算器,其中,所述模逆运算器还包括寄存器堆,用于存储模逆运算的模数,所述寄存器堆包括多个寄存器,且所述多个寄存器的总比特长度为所述模数的比特长度。


如权利要求1所述的模逆运算器,其中,所述计算单元包括:移位器以及加减法器;
所述控制单元用于控制所述计算单元按照以下步骤进行所述模逆运算:
S1:初始化所述模逆运算的相关数据;其中,所述模逆运算为:Y=a
-1mod p,Y、a、p分别为所述模逆运算的结果、输入数以及模数;所述模逆运算的相关数据包括操作数u、v、x1、x2以及参数k,所述模逆运算的相关数据分别初始化为:u=a,v=p,x1=1,x2=0,k=0;

S2:判断v是否大于0,如果v大于0,则执行步骤S3,如果v小于或者等于0,则执行步骤S4;
所述S3包括:
在v为偶数时,控制所述移位器将v右移一位,x1左移一位,并将k的值加1;
在v为奇数且u为偶数时,控制所述移位器将u右移一位,x2左移一位,并将k的值加1;
在u、v均为奇数,且v大于或者等于u时,控制所述加减法器以及所述移位器执行:v=(v-u)/2、x2=x2+x1、x1左移一位运算,并将k的值加1;
在u、v均为奇数,且v小于u时,控制所述加减法器以及所述移位器执行:u=(u-v)/2、x1=x2+x1、x2左移一位运算,并将k的值加1;
在k的值每加1后,返回步骤S2;
所述S4包括:
在u等于1且x1大于模数p时,将x1减去p并赋值给x1后返回中间结果;
在u等于1且x1小于或者等于模数p时,返回中间结果;
在u不等于1时,返...

【专利技术属性】
技术研发人员:王冬格韦健
申请(专利权)人:深圳市汇顶科技股份有限公司
类型:发明
国别省市:广东;44

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

1