CN110299986A - 基于rsa乱序的多变量二次方程加密方法和装置 - Google Patents
基于rsa乱序的多变量二次方程加密方法和装置 Download PDFInfo
- Publication number
- CN110299986A CN110299986A CN201910447305.XA CN201910447305A CN110299986A CN 110299986 A CN110299986 A CN 110299986A CN 201910447305 A CN201910447305 A CN 201910447305A CN 110299986 A CN110299986 A CN 110299986A
- Authority
- CN
- China
- Prior art keywords
- monomial
- assigning
- subscript
- quadratic equation
- assigned
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 39
- 239000004576 sand Substances 0.000 claims description 7
- 102100037060 Forkhead box protein D3 Human genes 0.000 abstract 1
- 101001029308 Homo sapiens Forkhead box protein D3 Proteins 0.000 abstract 1
- 238000004364 calculation method Methods 0.000 description 22
- 238000004422 calculation algorithm Methods 0.000 description 6
- 238000010276 construction Methods 0.000 description 4
- 238000004590 computer program Methods 0.000 description 3
- 241000764238 Isis Species 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000005034 decoration Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000000605 extraction Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000005670 electromagnetic radiation Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/002—Countermeasures against attacks on cryptographic mechanisms
- H04L9/003—Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/302—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computing Systems (AREA)
- Theoretical Computer Science (AREA)
- Complex Calculations (AREA)
Abstract
本申请公开了一种基于RSA乱序的多变量二次方程加密方法及装置,通过在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成单项式下标值的方式来生成多个单项式下标值(i,j,k),并按照单项式下标值(i,j,k)的生成顺序,依次计算多个单项式ak ijxixj,使不同多变量二次方程中单项式的计算顺序各不相同,最后,将多变量二次方程中每个单项式累加到寄存器中,完成对多变量二次方程组的计算。通过打乱各个单项式的计算顺序,使带有该寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻,从而减少了寄存器存储操作的功耗曲线与密钥信息的相关性,进而抵御侧信道攻击,有效提高密钥的安全性。
Description
技术领域
本申请涉及信息安全技术领域,尤其涉及一种基于RSA乱序的多变量二次方程加密方法及装置。
背景技术
多变量密码构建方法是基于有限域上的一组多变量方程进行密码构建的方法。由于多变量方程组可以规约为多变量二次方程组,因此多变量密码构建方法常基于一组多变量二次方程构建。多变量二次方程可以表示如下:
Q(x)=∑1≤i≤j≤nαijxixj+∑1≤i≤nβijxi+γ
侧信道攻击(side channel attack简称SCA),又称旁路攻击,是一种针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法。这种攻击方法给密码设备带来了严重的威胁。
传统应对多变量二次方程的侧信道泄露的方法,通常采用在加密时直接按照相同顺序对多个多变量二次方程中的每一个单项式进行计算,再把每个单项式的计算结果累加后暂存于寄存器中。若攻击者通过对每个多变量二次方程相应寄存器存储操作的功耗进行分析,即可获得密钥或明文信息(aij或者xj的信息),进而攻破密码算法。
为解决上述问题,现有技术中,采用打乱每个二次方程中各个单项式的计算顺序,使得对多变量二次方程的计算可以抵御侧信道攻击。但在采用现有技术进行侧信道攻击抵御时发现,在选定了开始的单项式编号之后,各个多项式之间的计算仍然是固定且顺序的,攻击者通过穷举初始下标的方式,仍有可能对齐多项式计算从而获得密钥或明文信息,进而威胁密码算法的安全性。
发明内容
本申请实施例所要解决的技术问题在于,提供一种基于RSA乱序的多变量二次方程加密方法,提高密钥的安全性,有效抵御侧信道攻击。
为解决上述问题,本申请实施例提供一种基于RSA乱序的多变量二次方程加密方法,适于在计算设备中执行,至少包括如下步骤:
提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值 (i,j,k);其中,1≤i≤j≤n,1≤k≤r;
根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;
基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。
进一步的,提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),包括:
步骤S11、根据r、n和n+1展开的素数之积r=Πri、n=Πni和n+1=Πmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1) ×(Q-1)互素的最小整数E后,生成所述随机滑动窗口子下标lE%(P×Q);其中,l为滑动窗口内部迭代编号;
步骤S12、根据所述素数P和素数Q,获取大小为L=P×Q的所述滑动窗口,基于所述滑动窗口大小,将所述多变量二次方程组的各单项式下标分成多个窗口;
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14;其中,1≤is≤js≤n,1≤ks≤r;
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18;
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17;
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17;
步骤S17、将j赋值为j-(n-i+1),执行步骤S14;
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中各单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为w+1,将j赋值为j+L后,执行步骤S14;其中,1≤Ls≤L/2, 1≤is≤js≤n,1≤ks≤r。
进一步的,所述步骤S18还包括,在w大于等于窗口个数时,执行步骤S19;
所述提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),还包括:
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14;
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为 js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
进一步的,每个所述多变量二次方程相应的密文为:
进一步的,还提供一种基于RSA乱序的多变量二次方程加密装置,包括:
单项式下标生成器,用于提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r;
单项式乘法器,用于根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;
累加器,用于基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。
进一步的,所述单项式下标生成器具体用于:
步骤S11、根据r、n和n+1展开的素数之积r=Πri、n=Πni和n+1=Πmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1) ×(Q-1)互素的最小整数E后,生成所述随机滑动窗口子下标lE%(P×Q);其中, l为滑动窗口内部迭代编号;
步骤S12、根据所述素数P和素数Q,获取大小为L=P×Q的所述滑动窗口,基于所述滑动窗口大小,将所述多变量二次方程组的各单项式下标分成多个窗口;
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14;其中,1≤is≤js≤n,1≤ks≤r;
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18;
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17;
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17;
步骤S17、将j赋值为j-(n-i+1),执行步骤S14;
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中各单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为w+1,将j赋值为j+L后,执行步骤S14;其中,1≤Ls≤L/2, 1≤is≤js≤n,1≤ks≤r。
进一步的,所述步骤S18还包括,在w大于等于窗口个数时,执行步骤S19;
所述单项式下标生成器还用于:
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14;
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为 js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
进一步的,每个所述多变量二次方程相应的密文为:
实施本申请实施例,具有如下有益效果:
本申请实施例提供的一种基于RSA乱序的多变量二次方程加密方法及装置,通过在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成单项式下标值的方式来生成多个单项式下标值(i,j,k),并按照单项式下标值(i,j,k) 的生成顺序,依次计算多个单项式ak ijxixj,使不同多变量二次方程中单项式的计算顺序各不相同,最后,将多变量二次方程中每个单项式累加到寄存器中,完成对多变量二次方程组的计算。通过打乱各个单项式的计算顺序,使带有该寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻,从而减少了寄存器存储操作的功耗曲线与密钥信息的相关性,进而抵御侧信道攻击,有效提高密钥的安全性。
附图说明
图1是本申请的一个实施例提供的基于RSA乱序的多变量二次方程加密方法的流程示意图;
图2是图1提供的基于RSA乱序的多变量二次方程加密方法中步骤S1的一个流程示意图;
图3是图1提供的基于RSA乱序的多变量二次方程加密方法中步骤S1的又一个流程示意图;
图4是本申请的再一个实施例提供的基于RSA乱序的多变量二次方程加密方法的流程示意图;
图5是本申请的一个实施例提供的基于RSA乱序的多变量二次方程加密装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参见图1,是本申请的一个实施例提供的基于RSA乱序的多变量二次方程加密方法的流程示意图,如图1所示,包括:
步骤S1、提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k)。
其中,1≤i≤j≤n,1≤k≤r。
优选的,乱序生成的单项式下标值(i,j,k)的个数设定为rn(n+1)/2个,每个下标有且仅有出现一次。
在本实施例中,执行步骤S1以前,还包括:获取执行密文构建的指示信息,并响应该指示信息,提取包括n个变量r个多变量二次方程的多变量二次方程组。其中,指示信息可以是用户或智能终端发送的触发指令。
步骤S2、根据每个单项式下标值(i,j,k)的生成顺序,依次计算多变量二次方程组的多个单项式
其中,为明文,xi为密钥,或,为密钥,xi为明文。
优选的,多变量二次方程组的单项式个数设定为r×n(n+1)/2个。
步骤S3、基于单项式下标值(i,j,k)的生成顺序,将属于同一多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻。
其中,多变量二次方程与寄存器一一对应。
在本实施例中,步骤S3具体为,按照单项式αijxixj的计算顺序,依次将每个单项式αijxixj累加到寄存器中,所述寄存器中累加后的值即为密文。
在本实施例中,每个多变量二次方程相应的密文为:
其中,多变量二次方程随机生成不同的单项式下标初始值(is,js,ks),然后按照上述公式进行计算,获得密文。
需要说明的是,在有限域上计算具有r个方程的多变量二次方程组来实现对密钥、明文的加密。其中,若为明文,则xi为密钥;若为密钥,则xi为明文。在本实施例中,在计算多变量二次方程组中的每个多变量二次方程时,随机打乱每个多变量二次方程中的各个单项式的计算顺序,使不同多变量二次方程中的单项式的计算顺序各不相同。
在计算多变量二次方程组时,根据在指定范围内生成的不重复的随机数,确定滑动窗口的大小,并基于所述滑动窗口所在线程,乱序生成r×n(n+1)/2个单项式下标值(i,j,k),即将当前滑动窗口内的多变量二次方程的单项式下标值重新进行排序,使每个多变量二次方程的单项式下标值的顺序各不相同。其中, r×n(n+1)/2个单项式下标值(i,j,k)涵盖多变量二次方程组中的所有单项式下标值。按照多变量二次方程组各自的单项式下标值生成顺序,计算各个单项式在每计算一个单项式时,将该单项式累加到寄存器中,在累加完所有单项式后,即可获得该多变量二次方程相应的密文。多变量二次方程组中的r个方程的计算结果分别相应存储到r个寄存器中。
每个多变量二次方程中具有n×(n+1)/2项单项式,单项式计算顺序打乱后,攻击者若想通过对r个寄存器的功耗分析来获取密钥或明文信息,则需要考虑 n×A(n(n+1)/2,n(n+1)/2)=n×(n(n+1)/2)!种可能性来进行分析,从而难以实现对侧信道的攻击。
需要说明的是,本发明实施例提供的多变量二次方程的加密方法一般应用于PC机、移动设备如手机、pad等。其中,每个多变量二次方程中各个单项式计算顺序均不相同,累加到存储器中的顺序也不相同,从而防止攻击者通过对存储器进行功耗分析而获取密钥信息。
本实施例提供的基于RSA乱序的多变量二次方程加密方法,可用于结合任意一种基于MQ问题设计出来的多变量方程的密码算法进行加密,如多变量公钥密码算法(MPKC)、流密码算法QUAD和身份认证算法等,从而进一步优化寄存器抵抗侧信道攻击的能力。
进一步的,参见图2,是图1提供的基于RSA乱序的多变量二次方程加密方法中步骤S1的一个流程示意图。在本实施例中,图1所示的步骤S1包括:
步骤S11、根据r、n和n+1展开的素数之积r=Πri、n=Πni和n+1=Πmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1) ×(Q-1)互素的最小整数E后,生成随机滑动窗口子下标lE%(P×Q)。
其中,l为滑动窗口内部迭代编号。
步骤S12、根据素数P和素数Q,获取大小为L=P×Q的滑动窗口,基于滑动窗口大小,将多变量二次方程组的各单项式下标分成多个窗口。
优选的,将各单项式下标分成rn(n+1)/2L个窗口。
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14。
其中,1≤is≤js≤n,1≤ks≤r。
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18。
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17。
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17。
步骤S17、将j赋值为j-(n-i+1),执行步骤S14。
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为 w+1,将j赋值为j+L后,执行步骤S14。
其中,1≤Ls≤L/2,1≤is≤js≤n,1≤ks≤r。
进一步的,参见图3,是图1提供的基于RSA乱序的多变量二次方程加密方法中步骤S1的又一个流程示意图。在本实施例中,除图2所示步骤外,还包括:
步骤S18、在w大于等于窗口个数时,执行步骤S19。
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14。
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为 js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
需要说明的是,将多变量二次方程组中的所有单项式完全打乱来抗侧信道攻击的效果最佳。同时,为了减少计算时间和存储开销,避免耗费大量的资源,采用仅打乱每个多变量二次方程中的初始计算顺序,使每个多变量二次方程从不同的初始单项式开始计算,之后仍按顺序计算即可。例如,需计算r个多项式方程组,单项式下标生成器2给随机生成单项式初始下标值(5,5,1),取L=6,随机生成Ls=3,在当前滑动窗口中,从RSA(Ls)到RSA(L-1)循环取出单项式,再取出第L个单项式,最后从RSA(Ls-1)到RSA(1)循环取出单项式,依次按步骤计算r个多变量二次方程的所有单项式等。这种乱序生成方法使得密钥、明文的在不同多变量二次方程中的相同操作隐藏在不同的时钟周期内,无法通过存储器的功耗曲线特征而观察得到,而且简单高效,有利于软硬件高效实现。
进一步的,参见图4,是本申请的再一个实施例提供的基于RSA乱序的多变量二次方程加密方法的流程示意图。
包括乱序下标控制器31、多项式变量寄存器32、乘法器33、乘法器34、加法器35、寄存器36和判断器37。其中,多项式变量寄存器32中存储的值可以为密钥,也可以为明文。本发明实施例提供的多变量二次方程的加密装置用于实现多变量二次方程组的加密,其中,多变量二次方程组具有r个多变量二次方程。在计算多变量二次方程时,乱序下标控制器31随机生成单项式下标值i、 j和k,其中,随机生成的初始的单项式下标值为is、js和ks。多项式变量寄存器 32根据乱序下标控制器31生成的单项式下标值,输出变量xi和xj。乘法器33接收变量xi和xj并将其相乘后输出,乘法器34将乘法器33输出的值与系数αij相乘后输出,获得单项式,再将单项式通过加法器35累加到寄存器36中。判断器37在寄存器36中累加了下标为(i,j,k)的单项式后判断窗口内部迭代编号是否大于滑动窗口大小,若否,则判定为0,将寄存器36中的值与下一个单项式累加后存储到寄存器36中;若是,则判定为1,输出寄存器36中的值,即为密文。
进一步的,参见图5。是本申请的一个实施例提供的基于RSA乱序的多变量二次方程加密装置的结构示意图。包括:
单项式下标生成器101,用于提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k)。其中,1≤i≤j≤n,1≤k≤r。
优选的,乱序生成的单项式下标值(i,j,k)的个数设定为rn(n+1)/2个。
在本实施例中,单项式下标生成器101还用于,获取执行密文构建的指示信息,并响应该指示信息,提取包括n个变量r个多变量二次方程的多变量二次方程组。其中,指示信息可以是用户或智能终端发送的触发指令。
在本实施例中,单项式下标生成器101具体用于:
步骤S11、根据r、n和n+1展开的素数之积r=Пri、n=Πni和n+1=Пmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1) ×(Q-1)互素的最小整数E后,生成随机滑动窗口子下标lE%(P×Q)。
其中,l为滑动窗口内部迭代编号。
步骤S12、根据素数P和素数Q,获取大小为L=P×Q的滑动窗口,基于滑动窗口大小,将多变量二次方程组的各单项式下标分成多个窗口。
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14。
其中,1≤is≤js≤n,1≤ks≤r。
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18。
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17。
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17。
步骤S17、将j赋值为j-(n-i+1),执行步骤S14。
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为 w+1,将j赋值为j+L后,执行步骤S14。
其中,1≤Ls≤L/2,1≤is≤js≤n,1≤ks≤r。
作为本实施例的一个优选举例,步骤S18还包括,在w大于等于窗口个数时,执行步骤S19。
此时所述单项式下标生成器101还用于:
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14。
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为 js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
单项式乘法器102,用于根据每个单项式下标值(i,j,k)的生成顺序,依次计算多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文。
累加器103,用于基于单项式下标值(i,j,k)的生成顺序,将属于同一多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻。
其中,多变量二次方程与寄存器一一对应。
在本实施例中,累加器103具体用于,按照单项式αijxixj的计算顺序,依次将每个单项式αijxixj累加到寄存器中,所述寄存器中累加后的值即为密文。
优选的,多变量二次方程组的单项式个数设定为r×n(n+1)/2个。
需要说明的是,在有限域上计算具有r个方程的多变量二次方程组来实现对密钥、明文的加密。其中,若为明文,则xi为密钥;若为密钥,则xi为明文。在本实施例中,在计算多变量二次方程组中的每个多变量二次方程时,随机打乱每个多变量二次方程中的各个单项式的计算顺序,使不同多变量二次方程中的单项式的计算顺序各不相同。
在计算多变量二次方程组时,单项式下标生成器101乱序生成r×n(n+1)/2 个单项式下标值(i,j,k),即将多变量二次方程的单项式下标值重新进行排序,使每个多变量二次方程的单项式下标值的顺序各不相同。其中,r×n(n+1)/2个单项式下标值(i,j,k)涵盖多变量二次方程组中的所有单项式下标值。单项式乘法器 102按照多变量二次方程组各自的单项式下标值生成顺序,计算各个单项式累加器103在单项式乘法器102每计算一个单项式时,将该单项式累加到寄存器中,在累加完所有单项式后,即可获得该多变量二次方程相应的密文。多变量二次方程组中的r个方程的计算结果分别相应存储到r个寄存器中。
本申请实施例提供一种基于RSA乱序的多变量二次方程加密方法及装置,通过在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成单项式下标值的方式来生成多个单项式下标值(i,j,k),并按照单项式下标值(i,j,k)的生成顺序,依次计算多个单项式ak ijxixj,使不同多变量二次方程中单项式的计算顺序各不相同,最后,将多变量二次方程中每个单项式累加到寄存器中,完成对多变量二次方程组的计算。通过打乱各个单项式的计算顺序,使带有该寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻,从而减少了寄存器存储操作的功耗曲线与密钥信息的相关性,进而抵御侧信道攻击,有效提高密钥的安全性。
本申请的又一实施例还提供了一种基于RSA乱序的多变量二次方程加密终端设备,包括处理器、存储器以及存储在所述存储器中且被配置为由所述处理器执行的计算机程序,所述处理器执行所述计算机程序时实现如上述实施例所述的基于RSA乱序的多变量二次方程加密方法。
以上所述是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory, ROM)或随机存储记忆体(Random AccessMemory,RAM)等。
Claims (8)
1.一种基于RSA乱序的多变量二次方程加密方法,其特征在于,至少包括如下步骤:
提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r;
根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;
基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。
2.根据权利要求1所述的基于RSA乱序的多变量二次方程加密方法,其特征在于,提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),包括:
步骤S11、根据r、n和n+1展开的素数之积r=Πri、n=Пni和n+1=Πmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1)×(Q-1)互素的最小整数E后,生成所述随机滑动窗口子下标lE%(P×Q);其中,l为滑动窗口内部迭代编号;
步骤S12、根据所述素数P和素数Q,获取大小为L=P×Q的所述滑动窗口,基于所述滑动窗口大小,将所述多变量二次方程组的各单项式下标分成多个窗口;
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14;其中,1≤is≤js≤n,1≤ks≤r;
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18;
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17;
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17;
步骤S17、将j赋值为j-(n-i+1),执行步骤S14;
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中各单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为w+1,将j赋值为j+L后,执行步骤S14;其中,1≤Ls≤L/2,1≤is≤js≤n,1≤ks≤r。
3.根据权利要求2所述的基于RSA乱序的多变量二次方程加密方法,其特征在于,所述步骤S18还包括,在w大于等于窗口个数时,执行步骤S19;
所述提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的不重复的随机滑动窗口子下标,确定滑动窗口的大小,并基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),还包括:
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14;
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
4.根据权利要求1所述的基于RSA乱序的多变量二次方程加密方法,其特征在于,每个所述多变量二次方程相应的密文为:
5.一种基于RSA乱序的多变量二次方程加密装置,其特征在于,包括:
单项式下标生成器,用于提取包括n个变量r个多变量二次方程的多变量二次方程组,根据在指定范围内生成的RSA随机数以及滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r;
单项式乘法器,用于根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;
累加器,用于基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。
6.根据权利要求5所述的基于RSA乱序的多变量二次方程加密装置,其特征在于,所述单项式下标生成器具体用于:
步骤S11、根据r、n和n+1展开的素数之积r=Пri、n=Πni和n+1=Πmi,获取所有素数ri、ni和mi中的最大两个数标记为素数P和素数Q,并获取与(P-1)×(Q-1)互素的最小整数E后,生成所述随机滑动窗口子下标lE%(P×Q);其中,l为滑动窗口内部迭代编号;
步骤S12、根据所述素数P和素数Q,获取大小为L=P×Q的所述滑动窗口,基于所述滑动窗口大小,将所述多变量二次方程组的各单项式下标分成多个窗口;
步骤S13、将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为执行步骤S14;其中,1≤is≤js≤n,1≤ks≤r;
步骤S14、判断j是否大于n;若是,则执行步骤S15;否则,执行步骤S18;
步骤S15、将i赋值为i+1,判断赋值后的i是否大于n;若是,则执行步骤S16;否则,执行步骤S17;
步骤S16、将i赋值为i%n,判断k是否小于r;若是,将k赋值为k+1,执行步骤S17;否则,将k赋值为1,执行步骤S17;
步骤S17、将j赋值为j-(n-i+1),执行步骤S14;
步骤S18、生成一个单项式下标值,判断l是否大于L;若是,则所述多变量二次方程中各单项式下标值生成完毕;否则,在w小于窗口个数时,将w赋值为w+1,将j赋值为j+L后,执行步骤S14;其中,1≤Ls≤L/2,1≤is≤js≤n,1≤ks≤r。
7.根据权利要求6所述的基于RSA乱序的多变量二次方程加密装置,其特征在于,所述步骤S18还包括,在w大于等于窗口个数时,执行步骤S19;
所述单项式下标生成器还用于:
步骤S19、将w赋值为1,l赋值为l+1,判断l是否大于L-Ls;若是,则执行步骤S20;否则,将i赋值为is,j赋值为js+(Ls+l-1)E%L-1,k赋值为ks,执行步骤S14;
步骤S20、判断赋值后的l是否等于L-Ls+1;若是,则将i赋值为is,j赋值为js+L-1,k赋值为ks,执行步骤S14;否则,将i赋值为is,j赋值为js+(L-l+1)E%L-1,k赋值为ks,执行步骤S14。
8.根据权利要求5所述的基于RSA乱序的多变量二次方程加密装置,其特征在于,每个所述多变量二次方程相应的密文为:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910447305.XA CN110299986B (zh) | 2019-05-27 | 2019-05-27 | 基于rsa乱序的多变量二次方程加密方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910447305.XA CN110299986B (zh) | 2019-05-27 | 2019-05-27 | 基于rsa乱序的多变量二次方程加密方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110299986A true CN110299986A (zh) | 2019-10-01 |
CN110299986B CN110299986B (zh) | 2022-12-27 |
Family
ID=68027311
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910447305.XA Active CN110299986B (zh) | 2019-05-27 | 2019-05-27 | 基于rsa乱序的多变量二次方程加密方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110299986B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941774A (zh) * | 2022-12-29 | 2023-04-07 | 天翼云科技有限公司 | 服务节点选取方法、装置、电子装置和存储介质 |
TWI845428B (zh) * | 2023-10-05 | 2024-06-11 | 財團法人資訊工業策進會 | 加密訊號區段定位裝置及方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100329447A1 (en) * | 2007-11-08 | 2010-12-30 | Koichiro Akiyama | Encryption apparatus, decryption apparatus, key generation apparatus, and program |
CN105610571A (zh) * | 2016-01-26 | 2016-05-25 | 广东技术师范学院 | 一种多变量二次方程的乱序加密方法 |
CN105681033A (zh) * | 2016-01-26 | 2016-06-15 | 广东技术师范学院 | 一种多变量二次方程的乱序加密装置 |
-
2019
- 2019-05-27 CN CN201910447305.XA patent/CN110299986B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100329447A1 (en) * | 2007-11-08 | 2010-12-30 | Koichiro Akiyama | Encryption apparatus, decryption apparatus, key generation apparatus, and program |
CN105610571A (zh) * | 2016-01-26 | 2016-05-25 | 广东技术师范学院 | 一种多变量二次方程的乱序加密方法 |
CN105681033A (zh) * | 2016-01-26 | 2016-06-15 | 广东技术师范学院 | 一种多变量二次方程的乱序加密装置 |
Non-Patent Citations (1)
Title |
---|
李伟键: "KLEIN和QUAD的侧信道攻击与防护研究", 《中国博士学位论文全文数据库》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115941774A (zh) * | 2022-12-29 | 2023-04-07 | 天翼云科技有限公司 | 服务节点选取方法、装置、电子装置和存储介质 |
TWI845428B (zh) * | 2023-10-05 | 2024-06-11 | 財團法人資訊工業策進會 | 加密訊號區段定位裝置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110299986B (zh) | 2022-12-27 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109787743B (zh) | 一种基于矩阵运算的可验证的全同态加密方法 | |
Medwed et al. | Template attacks on ECDSA | |
JP4632950B2 (ja) | 個人鍵を用いた耐タンパ暗号処理 | |
KR100720726B1 (ko) | Rsa 알고리즘을 이용한 보안유지시스템 및 그 방법 | |
US20040139136A1 (en) | Method for securing a computer installation involving a cryptographic algorithm using boolean operations and arithmetic operations and the corresponding embedded system | |
WO2018118569A1 (en) | Protecting parallel multiplication operations from external monitoring attacks | |
Luo et al. | Side-channel timing attack of RSA on a GPU | |
EP3396894B1 (en) | Apparatus and method for performing operation being secure against side channel attack | |
US10721056B2 (en) | Key processing method and device | |
CN106464483B (zh) | 用于电子部件实现椭圆曲线密码算法的应对方法、电子电路和电子系统 | |
CN104917608B (zh) | 一种密钥抗功耗攻击的方法 | |
CN111817842B (zh) | 一种针对rsa-crt运算的能量分析攻击测试装置和方法 | |
CN110299986B (zh) | 基于rsa乱序的多变量二次方程加密方法和装置 | |
CN109617671B (zh) | 加解密、扩展方法及装置、加解密系统、终端 | |
US20210152331A1 (en) | Protecting polynomial hash functions from external monitoring attacks | |
EP3115887A1 (en) | Method, device and non-transitory computer-readable medium for cryptographic computation | |
Kamoun et al. | Experimental Implementation of 2ODPA attacks on AES design with flash-based FPGA Technology | |
CN105681033B (zh) | 一种多变量二次方程的乱序加密装置 | |
CN110048840B (zh) | 一种基于rsa算法的信息处理方法、系统及相关组件 | |
Bonnecaze et al. | AES side-channel countermeasure using random tower field constructions | |
CN110299992B (zh) | 基于滑动窗口的多变量二次方程的乱序加密方法及装置 | |
KR20120129045A (ko) | 부채널 공격에 대응하는 대칭치 암호 알고리즘 구현 방법 | |
Bellare et al. | Defending against key exfiltration: efficiency improvements for big-key cryptography via large-alphabet subkey prediction | |
CN105610571B (zh) | 一种多变量二次方程的乱序加密方法 | |
CN110299991B (zh) | 抗侧信道攻击的quad流密码生成装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |