一种祖冲之密码安全算法的实现方法技术

技术编号:34267656 阅读:86 留言:0更新日期:2022-07-24 15:18
本发明专利技术提供一种祖冲之密码安全算法的实现方法,包括以下步骤:在密钥装入阶段秘密产生一个随机数,根据随机数值确定密钥装入的顺序;在初始化阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()、非线性函数W=F(X0,X1,X2)和/或LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行计算;和/或如下:在工作阶段秘密产生一个或多个随机数,根据该随机数值获取对应的计算比特重构BitReconstrction()、非线性函数F(X0,X1,X2)和/或LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行计算;在密钥输出阶段秘密产生一个或多个随机数,根据该随机值获取对应的计算比特重构BitReconstrction()、非线性函数F(X0,X1,X2)和/或LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行计算。其使得非入侵物理攻击的方法在统计意义上失效。得非入侵物理攻击的方法在统计意义上失效。得非入侵物理攻击的方法在统计意义上失效。

An implementation method of Zuchongzhi password security algorithm

【技术实现步骤摘要】
一种祖冲之密码安全算法的实现方法


[0001]本专利技术涉及信息安全
,尤其涉及一种抗能量攻击的祖冲之密码安全算法的实现方法。

技术介绍

[0002]ZUC密码算法与其它公开密码算法一样,其加密和解密过程是基本是一样的,其安全性除算法本身外,主要依赖于密钥的安全性,一旦密钥被破解(非法获取),则整个算法就失去了安全性,加密也就失去了意义。
[0003]破解密钥分为入侵式物理攻击和非入侵式物理攻击,能量攻击是一种较为常见的非入侵式物理攻击手段,包括简单能量攻击(SPA)、差分能量攻击(DPA)和时间攻击等等。由于不同运算过程中,不同数值运算的耗电/电磁辐射大小不同,给在非入侵式物理攻击提供了可能。其主要原理是根据算法本身的特点,利用选择性明文,根据算法中运算中的顺序、运算内容的耗电/电磁辐射的大小进行破解,同时利用统计学原理,大量重复计算过程中,获取统计意义上的能量差异,从而获得密钥的真值或部分值。

技术实现思路

[0004]基于此,本专利技术的目的在于提供一种祖冲之密码安全算法的实现方法,其使得在运算过程中能量消耗在时间上具有随机性,并在统计意义上使得能量耗散白噪声化,破坏简单能量攻击(SPA)、差分能量攻击(DPA)的基础,使得非入侵物理攻击的方法失效。为实现上述目的,本专利技术的技术方案如下:
[0005]一种祖冲之密码安全算法的实现方法,包括以下阶段:
[0006]S1.密钥装入阶段;
[0007]S2.初始化阶段;
[0008]S3.工作阶段;r/>[0009]S4.密钥输出阶段;
[0010]其中,
[0011]在密钥装入阶段秘密产生一个随机数,根据随机数值获取对应的密钥装入的预定顺序,并按照对应的预定顺序进行密钥装入;
[0012]在初始化阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序和/或计算寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算;
[0013]和/或如下:
[0014]在工作阶段秘密产生一个或多个随机数,根据该随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序及和/或
计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算。
[0015]在密钥输出阶段秘密产生一个或多个随机数,根据该随机值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序及计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算,在完成非线性函数W=F(X0,X1,X2)运算后,计算Z=W

X3;
[0016]三个32比特字X0,X1,X2代表非线性函数F()的输入,一个32比特字W代表非线性函数F()的输出,Z为输出的32位密钥字,

表示按比特位逐位异或运算,X3为比特比特重组BitReconstrction()输出的最后一个比特字;在祖冲之算法中,“字”表示一个32比特数据字段。
[0017]在步骤S1密钥装入阶段秘密产生一个随机数,根据随机数值获取对应的密钥装入的预定顺序,并按照对应的预定顺序进行密钥装入,包括:
[0018]先产生一个随机数r0,按照预定的算法计算出随机数r0所对应的线性反馈寄存器LFSR内容s
i
的装入的预定顺序,并根据该预设顺序完成线性反馈寄存器LFSR内容s
i
的装入,即完成:
[0019]s
i
=Ki||Di||IVi,i=0,1,

,15;其中,Ki为密钥,IVi为初始向量,Di为祖冲之算法所规定的240比特常量。
[0020]按照随机数的值完成16个线性反馈寄存器内容s
i
的装入,是指并非按照固定顺序完成s
i
的赋值,而是根据随机数的数值,计算赋值顺序,并根据计算的先后顺序再进行s
i
的赋值。
[0021]在初始化阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序和/或计算寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算;包括:
[0022]在步骤S2初始化阶段先秘密产生一个或多个随机数ri,按照预定的算法计算出随机数ri所对应的计算比特重构BitReconstrction()、非线性函数W=F(X0,X1,X2)和/或寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算。
[0023]上述比特重构BitReconstrction()、非线性函数W=F(X0,X1,X2)及寄存器初始化模式运算LFSRWithInitialisationMode()的计算需要进行32轮,不同轮次可以是同一个随机数,也可以是不同的随机数。
[0024]在工作阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数F(X0,X1,X2)的预设顺序及和/或计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特
重构BitReconstrction()的计算、非线性函数F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算;包括:
[0025]在步骤S3工作阶段秘密产生一个随本文档来自技高网...

【技术保护点】

【技术特征摘要】
1.一种祖冲之密码安全算法的实现方法,其特征在于,包括以下步骤:S1,密钥装入阶段;S2,初始化阶段;S3,工作阶段;S4,密钥输出阶段;其中,在密钥装入阶段秘密产生一个随机数,根据随机数值获取对应的密钥装入的预定顺序,并按照对应的预定顺序进行密钥装入;在初始化阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序和/或计算寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算;和/或如下:在工作阶段秘密产生一个或多个随机数,根据该随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序和/或计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算;在密钥输出阶段秘密产生一个或多个随机数,根据该随机值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序及计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算,在完成非线性函数W=F(X0,X1,X2)运算后,计算Z=W

X3;三个32比特字X0,X1,X2代表非线性函数F()的输入,一个32比特字W代表非线性函数F()的输出,Z为输出的32位密钥字,

表示按比特位逐位异或运算,X3为比特比特重组BitReconstrction()输出的最后一个比特字;在祖冲之算法中,“字”表示一个32比特数据字段。2.根据权利要求1所述的祖冲之密码安全算法的实现方法,其特征在于:在密钥装入阶段秘密产生一个随机数,根据随机数值获取对应的密钥装入的预定顺序,并按照对应的预定顺序进行密钥装入;包括:先产生一个随机数r0,按照预定的算法计算出随机数r0所对应的线性反馈寄存器LFSR内容s
i
的装入的预定顺序,并根据该预设顺序完成线性反馈寄存器LFSR内容s
i
的装入,即完成:s
i
=Ki||Di||IVi,i=0,1,

,15;其中,Ki为密钥,IVi为初始向量,Di为祖冲之算法所规定的240比特常量。3.根据权利要求1所述的祖冲之密码安全算法的实现方法,其特征在于:在初始化阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构
BitReconstrction()的预设顺序、计算非线性函数W=F(X0,X1,X2)的预设顺序和/或计算寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算;包括:先产生一个或多个随机数ri,按照预定的算法计算出随机数ri所对应的计算比特重构BitReconstrction()、非线性函数W=F(X0,X1,X2)和/或寄存器初始化模式运算LFSRWithInitialisationMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器初始化模式LFSRWithInitialisationMode()的计算。4.根据权利要求1所述的祖冲之密码安全算法的实现方法,其特征在于:在工作阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数F(X0,X1,X2)的预设顺序和/或计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算;包括:先产生一个随机数r1或多个随机数r1、r2、r3,按照预定的算法计算出随机数r1所对应的计算比特重构BitReconstrction()、非线性函数W=F(X0,X1,X2)和/或寄寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算;或者,按照预定的算法计算出随机数r1所对应的计算比特重构BitReconstrction()的预设顺序、随机数r2所对应的计算非线性函数W=F(X0,X1,X2)的预设顺序、随机数r3所对应的计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和寄存器工作模式运算LFSRWithWorkMode()的计算。5.根据权利要求1所述的祖冲之密码安全算法的实现方法,其特征在于:在密钥输出阶段秘密产生一个或多个随机数,根据随机数值获取对应的计算比特重构BitReconstrction()的预设顺序、计算非线性函数Z=F(X0,X1,X2)

X3的预设顺序及计算寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并根据对应的预设顺序进行比特重构BitReconstrction()的计算、非线性函数Z=F(X0,X1,X2)

X3的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算;包括:先产生一个或多个随机数rj,按照预定的算法计算出随机数rj所对应的计算比特重构BitReconstrction()、非线性函数Z=F(X0,X1,X2)

X3和/或寄寄存器工作模式运算LFSRWithWorkMode()的预设顺序,并按照对应的预设顺序进行比特重构BitReconstrction()计算、非线性函数W=F(X0,X1,X2)的计算和/或寄存器工作模式运算LFSRWithWorkMode()的计算。6.根据权利要求3、4或5所述的祖冲之密码安全算法的实现方法,其特征在...

【专利技术属性】
技术研发人员:闫鸣生闫申安刚王金贵
申请(专利权)人:北京江南天安科技有限公司
类型:发明
国别省市:

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

1