基于滑动窗口的多变量二次方程的乱序加密方法及装置制造方法及图纸

技术编号:22242443 阅读:28 留言:0更新日期:2019-10-09 21:53
本申请公开了一种基于滑动窗口的多变量二次方程的乱序加密方法及装置,在获取指示信息时,采用乱序生成单项式下标值的方式来生成多个单项式下标值(i,j,k),并按照单项式下标值(i,j,k)的生成顺序,依次计算多个单项式a

Chaotic Encryption Method and Device for Multivariable Quadratic Equation Based on Sliding Window

【技术实现步骤摘要】
基于滑动窗口的多变量二次方程的乱序加密方法及装置
本申请涉及信息安全
,尤其涉及一种基于滑动窗口的多变量二次方程的乱序加密方法及装置。
技术介绍
多变量密码构建方法是基于有限域上的一组多变量方程进行密码构建的方法。由于多变量方程组可以规约为多变量二次方程组,因此多变量密码构建方法常基于一组多变量二次方程构建。多变量二次方程可以表示如下:Q(x)=∑1≤i≤j≤nαijxixj+∑1≤i≤nβijxi+γ侧信道攻击(sidechannelattack简称SCA),又称旁路攻击,是一种针对加密电子设备在运行过程中的时间消耗、功率消耗或电磁辐射之类的侧信道信息泄露而对加密设备进行攻击的方法。这种攻击方法给密码设备带来了严重的威胁。传统应对多变量二次方程的侧信道泄露的方法,通常采用在加密时直接按照相同顺序对多个多变量二次方程中的每一个单项式进行计算,再把每个单项式的计算结果累加后暂存于寄存器中。若攻击者通过对每个多变量二次方程相应寄存器存储操作的功耗进行分析,即可获得密钥或明文信息(aij或者xj的信息),进而攻破密码算法。为解决上述问题,现有技术中,采用打乱每个二次方程中各个单项式的计算顺序,使得对多变量二次方程的计算可以抵御侧信道攻击。但在采用现有技术进行侧信道攻击抵御时发现,在选定了开始的单项式编号之后,各个多项式之间的计算仍然是固定且顺序的,攻击者通过穷举初始下标的方式,仍有可能对齐多项式计算从而获得密钥或明文信息,进而威胁密码算法的安全性。
技术实现思路
本申请实施例所要解决的技术问题在于,提供一种基于滑动窗口的多变量二次方程的乱序加密方法,提高密钥的安全性,有效抵御侧信道攻击。为解决上述问题,本申请实施例提供一种基于滑动窗口的多变量二次方程的乱序加密方法,适于在计算设备中执行,至少包括如下步骤:提取包括n个变量r个多变量二次方程的多变量二次方程组,根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r,L=n或L=n+1;根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。进一步的,所述根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),包括:根据所述n个变量,初始化所述滑动窗口大小L,基于所述滑动窗口大小,将各单项式下标分成多个窗口;其中,若n为奇数,则长度L=n,各单项式下标分成r×(n+1)/2个窗口;若n为偶数,则长度L=n+1,各单项式下标分成r×n/2个窗口;将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为j+Ls-1后,执行如下步骤:步骤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大于等于窗口个数时,执行步骤S20;所述根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),还包括:步骤S20、将w赋值为1,将l赋值为l+1,判断l是否为奇数;若是,则执行步骤S21;否则,将j赋值为j+L+L/2+1后,执行步骤S14;步骤S21、判断赋值后的l是否等于L;若是,则将j赋值为j+L-Ls后,执行步骤S14;否则,则执行步骤S22;步骤S22、判断Ls是否小于L/2;若是,则将j赋值为j+L/2+1,将Ls赋值为Ls+1后,执行步骤S14;否则,将j赋值为j+1,将Ls赋值为1后,执行步骤S14。进一步的,每个所述多变量二次方程相应的密文为进一步的,还提供一种基于滑动窗口的多变量二次方程的乱序加密装置,包括:单项式下标生成器,用于提取包括n个变量r个多变量二次方程的多变量二次方程组,根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r,L=n或L=n+1;单项式乘法器,用于根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;累加器,用于基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。进一步的,所述单项式下标生成器具体用于:根据所述n个变量,初始化所述滑动窗口大小L,基于所述滑动窗口大小,将各单项式下标分成多个窗口;;其中,若n为奇数,则长度L=n,各单项式下标分成r×(n+1)/2个窗口;若n为偶数,则长度L=n+1,各单项式下标分成r×n/2个窗口;将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为j+Ls-1后,执行如下步骤:步骤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大于等于窗口个数时,执行步骤S20;所述单项式下标生成器还用于:步骤S20、将w赋值为1,将l赋值为l+1,判断赋值后的l是否为奇数;若是,则执行步骤S21;否则,将j赋值为j+L+L/2+1后,执行步骤S14;步骤S21、判断赋值后的l是否等于L;若是,则将j赋值为j+L-L本文档来自技高网...

【技术保护点】
1.一种基于滑动窗口的多变量二次方程的乱序加密方法,其特征在于,至少包括如下步骤:提取包括n个变量r个多变量二次方程的多变量二次方程组,根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r,L=n或L=n+1;根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式

【技术特征摘要】
1.一种基于滑动窗口的多变量二次方程的乱序加密方法,其特征在于,至少包括如下步骤:提取包括n个变量r个多变量二次方程的多变量二次方程组,根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k);其中,1≤i≤j≤n,1≤k≤r,L=n或L=n+1;根据每个所述单项式下标值(i,j,k)的生成顺序,依次计算所述多变量二次方程组的多个单项式其中,为明文,xi为密钥,或,为密钥,xi为明文;基于所述单项式下标值(i,j,k)的生成顺序,将属于同一所述多变量二次方程的多个单项式依次累加到同一寄存器中,以使带有r个所述寄存器的电子设备产生的具有相同密钥信息的侧信道信息出现在不同时刻;其中,所述多变量二次方程与所述寄存器一一对应。2.根据权利要求1所述的基于滑动窗口的多变量二次方程的乱序加密方法,其特征在于,所述根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),包括:根据所述n个变量,初始化所述滑动窗口大小L,基于所述滑动窗口大小,将各单项式下标分成多个窗口;其中,若n为奇数,则长度L=n,各单项式下标分成r×(n+1)/2个窗口;若n为偶数,则长度L=n+1,各单项式下标分成r×n/2个窗口;将窗口的窗口编号预设为w=1,窗口的内部迭代编号预设为l=1,随机生成初始值Ls后,随机生成单项式下标初始值i=is,j=js,k=ks,并将j赋值为j+Ls-1后,执行如下步骤:步骤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所述的基于滑动窗口的多变量二次方程的乱序加密方法,其特征在于,所述步骤S18还包括,在w大于等于窗口个数时,执行步骤S20;所述根据所述n个变量,生成大小为L的滑动窗口,基于所述滑动窗口所在线程,乱序生成多个单项式下标值(i,j,k),还包括:步骤S20、将w赋值为1,将l赋值为l+1,判断l是否为奇数;若是,则执行步骤S21;否则,将j赋值为j+L+L/2+1后,执行步骤S14;步骤S21、判断赋值后的l是否等于L;若是,则将j赋值为j+L-Ls后,执行步骤S14;否则,则执行步骤S22;步骤S22、判断Ls是否小于L/2;若是,则将j赋值为j+L/2+1,将Ls赋值为Ls+1后,执行步骤S14;否则,将j赋值为j+1,将Ls赋值为1后,执行步骤S14。4.根据权利要求1所述的基于滑动窗口的多变量二次方程的乱序加密方法,其特征在于,每个所述多变量二次方程相应的密文为5...

【专利技术属性】
技术研发人员:李伟键黄娴鹿福祥李艳华
申请(专利权)人:广东技术师范大学
类型:发明
国别省市:广东,44

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

1