CN104123431B - 一种元素的模逆计算方法及装置 - Google Patents

一种元素的模逆计算方法及装置 Download PDF

Info

Publication number
CN104123431B
CN104123431B CN201310144914.0A CN201310144914A CN104123431B CN 104123431 B CN104123431 B CN 104123431B CN 201310144914 A CN201310144914 A CN 201310144914A CN 104123431 B CN104123431 B CN 104123431B
Authority
CN
China
Prior art keywords
zeronum
mould
moves
mantissa
inverse
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201310144914.0A
Other languages
English (en)
Other versions
CN104123431A (zh
Inventor
刘娟
林灿伟
明瑞华
王昆
黄洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nationz Technologies Inc
Original Assignee
Nationz Technologies Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nationz Technologies Inc filed Critical Nationz Technologies Inc
Priority to CN201310144914.0A priority Critical patent/CN104123431B/zh
Publication of CN104123431A publication Critical patent/CN104123431A/zh
Application granted granted Critical
Publication of CN104123431B publication Critical patent/CN104123431B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明适用于计算机及通信技术领域,提供了一种元素的模逆计算方法及装置,该方法包括:获取临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;对临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*x1=u(mod P0),a*x2=v(mod P0);在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;当K=0时,判断X是否大于零,如X大于零,X即为a关于P的模逆。本发明提供的技术方案具有计算速度快,计算资源需求少的优点。

Description

一种元素的模逆计算方法及装置
技术领域
本发明属于计算机及通信电子领域,尤其涉及一种元素的模逆计算方法及装置。
背景技术
随着计算机网络技术和通信技术的发展,对元素求其模逆的问题应用越来越广泛。譬如,RSA算法中的密钥的产生,椭圆曲线公钥密码系统和数字签名方案中,在选择仿射坐标系的情况下,也需要频繁地用到模逆运算。目前,通常元素的模逆计算方法一般有三种:费马定理方法,蒙哥马利模逆方法和二进制扩展欧几里得算法。费马定理不适合模逆不存在的情形,二进制扩展欧几里得算法是目前已公布的速度最快的算法。但是二进制扩展欧几里得算法的速度仍然很慢,且资源需求较大。
发明内容
本发明实施例的目的在于提供一种元素的模逆计算方法,旨在解决通过现有技术中计算速度慢,资源需求大的问题。
本发明实施例是这样实现的,一种元素的模逆计算方法,所述方法包括:
获取临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
对临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*x1=u(mod P0),a*x2=v(mod P0);其中,a为元素,当a关于P的逆元存在时,X为其逆元,即满足a*x=1(mod P),;P为模数,P=P0*2k;P0为奇数,K为2的指数;
在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;
在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;
当K=0时,判断X是否大于零,如X大于零,X即为a关于P的模逆;如X小于零,X'=X+P0;其中X'为a关于P的模逆。
可选的,所述对临时变量X1、X2和递减变量u、v进行迭代计算具体包括:
获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0的尾数有ZeroNum个0,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0)>>ZeroNum;
或获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0的尾数有ZeroNum个0,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0)>>ZeroNum。
或获取u—v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0-x2的尾数有ZeroNum个0,对系数n做越界处理,保证|x1+n*P0-x2|<P0*2ZeroNum,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0-x2)>>ZeroNum。
或获取v—u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0-x1的尾数有ZeroNum个0。对系数n做越界处理,保证|x2+n*P0-x1|<P0*2ZeroNum,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0-x1)>>ZeroNum。
可选的,所述方法还包括:
当K大于0时,获取k比特的TailInvA,满足a*TailInvA的最低k比特为00...01,选择合适的n,将X''=Y+nP0的最低k比特凑成与TailInvA一样,则X''为a关于P的模逆;其中Y为a关于P0的模逆;
另一方面,提供一种元素的模逆计算装置,所述装置包括:
初始化单元,用于获取临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
奇数模逆计算单元,用于对临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*x1=u(mod P0),a*x2=v(mod P0);其中,a为元素,当a关于P的逆元存在时,X为其逆元,即满足a*x=1(mod P);P为模数,P=P0*2k;P0为奇数,K为2的指数;
模逆处理单元,用于在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;当K=0时,判断X是否大于零,如X大于零,X即为a关于P的模逆;如X小于零,X'=X+P0;其中X'为a关于P的模逆。
可选的,所述奇数模逆计算单元具体用于:
获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0的尾数有ZeroNum个0,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0)>>ZeroNum;
或获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0的尾数有ZeroNum个0,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0)>>ZeroNum。
或获取u—v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0-x2的尾数有ZeroNum个0,对系数n做越界处理,保证|x1+n*P0-x2|<P0*2ZeroNum,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0-x2)>>ZeroNum。
或获取v—u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0-x1的尾数有ZeroNum个0。对系数n做越界处理,保证|x2+n*P0-x1|<P0*2ZeroNum,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0-x1)>>ZeroNum。
可选的,所述装置还包括:
偶数模逆计算单元,用于当K大于0时,获取k比特的TailInvA,满足a*TailInvA的最低k比特为00...01,选择合适的n,将X''=Y+nP0的最低k比特凑成与TailInvA一样,则X''为a关于P的模逆;其中Y为a关于P0的模逆;
本发明实施例与现有技术相比,有益效果在于:本发明的技术方案的计算速度比通常的算法的速度快了接近一倍,当P为偶数时,资源需求上少了两个大数变量,所以其具有计算速度快,资源需求小的优点。
附图说明
图1是本发明实施例提供的一种元素的模逆计算方法的流程图;
图2是本发明实施例提供的一种元素的模逆计算装置的结构图;
图3是本发明实施例提供的模逆处理单元的硬件结构图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明具体实施方式提供一种元素的模逆计算方法,该方法如图1所示,包括:
101、获取临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
102、对临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*x1=u(mod P0),a*x2=v(mod P0);其中,a为元素,当a关于P的逆元存在时,X为其逆元,即满足a*X=1(mod P);P为模数,P=P0*2k;P0为奇数,K为2的指数。
103、在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;
104、在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;
105、当K=0时,判断X是否大于零,如X大于零,X即为a关于P的模逆;如X小于零,X'=X+P0;其中X'为a关于P的模逆。
可选的,上述102中迭代计算的方法具体可以为下述方式中的任一种:
方式A、获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0的尾数有ZeroNum个0,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0)>>ZeroNum;
方式B、获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0的尾数有ZeroNum个0,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0)>>ZeroNum。
方式C、获取u—v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0-x2的尾数有ZeroNum个0,对系数n做越界处理,保证|x1+n*P0-x2|<P0*2ZeroNum,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0-x2)>>ZeroNum。
方式D、获取v—u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0-x1的尾数有ZeroNum个0。对系数n做越界处理,保证|x2+n*P0-x1|<P0*2ZeroNum,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0-x1)>>ZeroNum。
方式E、如果u,v相等,确定元素a的模逆不存在;即u(或v)即为a与P的最大公约数。
可选的,上述方式在105之后还可以包括:
当K大于0时,获取k比特的TailInvA,满足a*TailInvA的最低k比特为00...01,即选择合适的n,将X''=Y+nP0的最低k比特凑成与TailInvA一样,则X''为a关于P的模逆;其中Y为a关于P0的模逆;。
本发明提供的方法在K=0时,即模数P的尾数为1时,此时P=P0,通过测试发现,采用本发明提供的方法计算速度比通常的计算方法的速度快了近一倍,所以其具有计算速度快的优点,另外,当P为偶数时,在迭代计算中,本发明的计算方法资源需求上少了两个大数变量,所以其具有计算资源计算小的优点。
本发明具体实施方式还提供一种元素的模逆计算装置,该装置200如图2所示,包括:
初始化单元201,用于获取临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
奇数模逆计算单元202,用于对临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*x1=u(mod P0),a*x2=v(mod P0);其中,a为元素,当a关于P的逆元存在时,X为其逆元,即满足a*x=1(mod P);P为模数,P=P0*2k;P0为奇数
模逆处理单元203,用于在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;当K=0时,判断X是否大于零,如X大于零,X即为a关于P的模逆;如X小于零,X'=X+P0;其中X'为a关于P的模逆。
可选的,奇数模逆计算单元202具体用于:
获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0的尾数有ZeroNum个0,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0)>>ZeroNum;
或获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0的尾数有ZeroNum个0,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0)>>ZeroNum。
或获取u—v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x1+n*P0-x2的尾数有ZeroNum个0,对系数n做越界处理,保证|x1+n*P0-x2|<P0*2ZeroNum,对大数u,x1进行迭代更新,u=u>>ZeroNum,x1=(x1+n*P0-x2)>>ZeroNum。
或获取v—u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐x2+n*P0-x1的尾数有ZeroNum个0。对系数n做越界处理,保证|x2+n*P0-x1|<P0*2ZeroNum,对大数v,x2进行迭代更新,v=v>>ZeroNum,x2=(x2+n*P0-x1)>>ZeroNum。
可选的,上述装置还包括:
偶数模逆计算单元204,用于当K大于0时,获取k比特的TailInvA,满足a*TailInvA的最低k比特为00...01,选择合适的n,将X''=Y+nP0的最低k比特凑成与TailInvA一样,则X''为a关于P的模逆;其中Y为a关于P0的模逆。
可选的,上述模逆处理单元203的结构图如图3所示,包括:控制单元2031、多个存储单元2032和算术运算单元2033;其中,控制单元2031,用于对模逆计算过程中整个流程的控制,存储单元2032,用于存储大数中间变量,算术运算单元2033具体可以为多输入加法器,用于处理模逆运算中的32位比特级所有加法。
本发明提供的装置在K=0时,即模数P的尾数为1时,此时P=P0,通过测试发现,采用本发明提供的装置计算速度比通常的计算方法的速度快了近一倍,所以其具有计算速度快的优点,另外,当P为偶数时,在迭代计算中,本发明的装置资源需求上少了两个大数变量,所以其具有计算资源计算小的优点。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (7)

1.一种用于密钥产生、密码系统或数字签名的元素模逆计算装置,其特征在于,所述装置被配置为包括初始化单元、奇数模逆计算单元以及模逆处理单元;其中,
所述初始化单元,用于获取密钥、密码或数字签名的临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
所述奇数模逆计算单元,用于对密钥、密码或数字签名的临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*X1=u(modP0),a*X2=v(modP0);其中,a为元素,也即密钥、密码或数字签名的参数;当a关于P的逆元存在时,X为其逆元,即满足a*X=1(modP);P为模数,P=P0*2K;P0为奇数,K为2的指数;
所述模逆处理单元,用于在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;当K=0时,判断X是否大于零,如X大于零,X即为密钥、密码或数字签名的参数a关于P的模逆;如X小于零,X'=X+P0;其中X'为密钥、密码或数字签名的参数a关于P的模逆。
2.根据权利要求1所述的装置,其特征在于,所述奇数模逆计算单元具体用于:
获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X1+n*P0的尾数有ZeroNum个0,对大数u,X1进行迭代更新,u=u>>ZeroNum,X1=(X1+n*P0)>>ZeroNum;
或获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X2+n*P0的尾数有ZeroNum个0,对大数v,X2进行迭代更新,v=v>>ZeroNum,X2=(X2+n*P0)>>ZeroNum;
或获取u-v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X1+n*P0-X2的尾数有ZeroNum个0,对系数n做越界处理,保证|X1+n*P0-X2|<P0*2ZeroNum,对大数u,X1进行迭代更新,u=u>>ZeroNum,X1=(X1+n*P0-X2)>>ZeroNum;
或获取v-u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X2+n*P0-X1的尾数有ZeroNum个0;对系数n做越界处理,保证|X2+n*P0-X1|<P0*2ZeroNum,对大数v,X2进行迭代更新,v=v>>ZeroNum,X2=(X2+n*P0-X1)>>ZeroNum;
所述设定值为大于1的整数。
3.根据权利要求2所述的装置,其特征在于,所述装置还包括:
偶数模逆计算单元,用于当K大于0时,获取K比特的TailInvA,满足a*TailInvA的最低K比特为00...01,选择合适的n,将X”=Y+nP0的最低K比特凑成与TailInvA一样,则X”为密钥、密码或数字签名的参数a关于P的模逆;其中Y为密钥、密码或数字签名的参数a关于P0的模逆。
4.根据权利要求2或3所述的装置,其特征在于,所述模逆处理单元包括:控制单元、多个存储单元和算术运算单元;其中,所述控制单元,用于对模逆计算过程中整个流程的控制;
所述存储单元,用于存储大数中间变量;
所述算术运算单元,用于处理模逆运算中的32位比特级所有加法。
5.一种利用权利要求1所述装置的模逆计算方法,其特征在于,所述方法包括:
初始化单元获取密钥、密码或数字签名的临时变量X1、X2和递减变量u、v的初始值,其中,X1、X2的初始值分别为1、0;递减变量u、v的初始值分别为a、P0;
奇数模逆计算单元对密钥、密码或数字签名的临时变量X1、X2和递减变量u、v进行迭代计算,其中迭代过程中满足:a*X1=u(modP0),a*X2=v(modP0);其中,a为元素,也即密钥、密码或数字签名的参数;当a关于P的逆元存在时,X为其逆元,即满足a*X=1(modP);P为模数,P=P0*2K,P0为奇数,K为2的指数;
模逆处理单元在迭代计算中每完成一次迭代,判断u、v中是否有一个为1,如u、v中没有一个是1,继续迭代计算;如u、v中有一个是1,结束迭代计算;
在迭代计算结束后,如u为1,则将X1赋值给X,如v为1,则将X2赋值给X;
当K=0时,判断X是否大于零,如X大于零,X即为密钥、密码或数字签名的参数a关于P的模逆;如X小于零,X′=X+P0;其中X′为密钥、密码或数字签名的参数a关于P的模逆。
6.根据权利要求5所述的方法,其特征在于,所述奇数模逆计算单元对临时变量X1、X2和递减变量u、v进行迭代计算具体包括:
获取u最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X1+n*P0的尾数有ZeroNum个0,对大数u,X1进行迭代更新,u=u>>ZeroNum,X1=(X1+n*P0)>>ZeroNum;
或获取v最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X2+n*P0的尾数有ZeroNum个0,对大数v,X2进行迭代更新,v=v>>ZeroNum,X2=(X2+n*P0)>>ZeroNum;
或获取u-v最低字节尾数0的个数ZeroNum,决定本次迭代u右移位数,该u右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X1+n*P0-X2的尾数有ZeroNum个0,对系数n做越界处理,保证|X1+n*P0-X2|<P0*2ZeroNum,对大数u,X1进行迭代更新,u=u>>ZeroNum,X1=(X1+n*P0-X2)>>ZeroNum;
或获取v-u最低字节尾数0的个数ZeroNum,决定本次迭代v右移位数,该v右移位数为ZeroNum,如果ZeroNum大于设定值,令ZeroNum=设定值,获取系数n,凑齐X2+n*P0-X1的尾数有ZeroNum个0;对系数n做越界处理,保证|X2+n*P0-X1|<P0*2ZeroNum,对大数v,X2进行迭代更新,v=v>>ZeroNum,X2=(X2+n*P0-X1)>>ZeroNum;
所述设定值为大于1的整数。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
当K大于0时,偶数模逆计算单元获取K比特的TailInvA,满足a*TailInvA的最低K比特为00...01,选择合适的n,将X”=Y+nP0的最低K比特凑成与TailInvA一样,则X”为密钥、密码或数字签名的参数a关于P的模逆;其中Y为密钥、密码或数字签名的参数a关于P0的模逆。
CN201310144914.0A 2013-04-24 2013-04-24 一种元素的模逆计算方法及装置 Active CN104123431B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310144914.0A CN104123431B (zh) 2013-04-24 2013-04-24 一种元素的模逆计算方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310144914.0A CN104123431B (zh) 2013-04-24 2013-04-24 一种元素的模逆计算方法及装置

Publications (2)

Publication Number Publication Date
CN104123431A CN104123431A (zh) 2014-10-29
CN104123431B true CN104123431B (zh) 2018-09-14

Family

ID=51768841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310144914.0A Active CN104123431B (zh) 2013-04-24 2013-04-24 一种元素的模逆计算方法及装置

Country Status (1)

Country Link
CN (1) CN104123431B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105988772B (zh) * 2015-03-04 2019-04-26 上海复旦微电子集团股份有限公司 模逆运算器
CN105988771B (zh) * 2015-03-04 2019-10-22 上海复旦微电子集团股份有限公司 模逆运算器
CN105577372A (zh) * 2015-12-11 2016-05-11 杭州朔天科技有限公司 模逆算法的无符号处理方法及模逆加速器
CN108961333B (zh) * 2018-06-21 2021-05-14 杭州晶一智能科技有限公司 一种图像区域像素面积的高效计算方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1429360A (zh) * 2000-05-17 2003-07-09 德国捷德有限公司 加密的方法和装置
CN101180606A (zh) * 2005-05-25 2008-05-14 西门子威迪欧汽车电子股份公司 模逆元的确定
EP1600852B1 (en) * 2004-05-29 2009-12-02 The Queen's University of Belfast Method and apparatus for calculating a modular inverse
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE69826963T2 (de) * 1997-11-04 2005-11-17 Nippon Telegraph And Telephone Corp. Gerät für die modulare Inversion zur Sicherung von Information

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1429360A (zh) * 2000-05-17 2003-07-09 德国捷德有限公司 加密的方法和装置
EP1600852B1 (en) * 2004-05-29 2009-12-02 The Queen's University of Belfast Method and apparatus for calculating a modular inverse
CN101180606A (zh) * 2005-05-25 2008-05-14 西门子威迪欧汽车电子股份公司 模逆元的确定
CN101826142A (zh) * 2010-04-19 2010-09-08 中国人民解放军信息工程大学 一种可重构椭圆曲线密码处理器

Also Published As

Publication number Publication date
CN104123431A (zh) 2014-10-29

Similar Documents

Publication Publication Date Title
Amara et al. Elliptic curve cryptography and its applications
CN104123431B (zh) 一种元素的模逆计算方法及装置
WO2015164996A1 (zh) 椭圆域曲线运算方法和椭圆域曲线运算器
US10721056B2 (en) Key processing method and device
US10374790B2 (en) Countermeasure method for an electronic component implementing an elliptic curve cryptography algorithm
Lee et al. Improved multi-precision squaring for low-end RISC microcontrollers
US9948463B2 (en) Multivariate public key signature/verification system and signature/verification method
Koppermann et al. 18 seconds to key exchange: Limitations of supersingular isogeny Diffie-Hellman on embedded devices
CN109547160B (zh) 一种循环移位网络编码构造方法
CN105574269B (zh) 一种专用指令处理器的设计验证方法
CN111538480B (zh) 一种用于椭圆曲线密码的倍点运算方法及系统
US10833868B2 (en) Direct anonymous attestation-based apparatus and method
Pedersen et al. Network coding over the 2 32− 5 prime field
CN102396010B (zh) 有限域运算装置、有限域运算方法、程序以及记录介质
WO2023236899A1 (zh) 数据处理方法、装置、设备及存储介质
CN116436709B (zh) 一种数据的加解密方法、装置、设备和介质
KR101977873B1 (ko) 하드웨어 구현된 모듈러 역원 모듈
JP2004125891A (ja) べき乗剰余演算器
US10484186B2 (en) Cascading multivariate quadratic identification schemes for chain of trust
CN109284082A (zh) 一种ecc和sm2通用的点运算方法及装置
CN108847929A (zh) 私钥存储的门限恢复方法及系统
CN107040380A (zh) 一种基于二进制域的椭圆曲线密码体制的改进模除方法
US20140215219A1 (en) Method for verifying an electronic signature and data processing device
CN110233727A (zh) 一种sm2运算方法、系统、设备及计算机存储介质
CN107533454B (zh) 用于固定执行流乘数再译码和标量乘法的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
CB03 Change of inventor or designer information

Inventor after: Liu Juan

Inventor after: Lin Canwei

Inventor after: Ming Ruihua

Inventor after: Wang Kun

Inventor after: Huang Yang

Inventor before: Huang Yang

CB03 Change of inventor or designer information
GR01 Patent grant
GR01 Patent grant