一种基于可变S盒的软件加解密快速实现方法、装置、芯片及存储介质制造方法及图纸

技术编号:37118061 阅读:12 留言:0更新日期:2023-04-01 05:13
本发明专利技术属于密码技术领域,公开一种基于可变S盒的软件加解密快速实现方法、装置、芯片及存储介质。该方法包括:在Z密码算法密码砖运算过程中,通过预计算中间值,将加、减运算统一转化为模加运算,减少判断过程,简化S变换与G变换的运算流程;将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算。该装置包括中间值预计算模块、密码砖分类及并行运算模块。本发明专利技术在保证安全通信的同时,可有效减少握手时延,提升用户体验。用户体验。用户体验。

【技术实现步骤摘要】
一种基于可变S盒的软件加解密快速实现方法、装置、芯片及存储介质


[0001]本专利技术属于密码
,尤其涉及一种基于可变S盒的软件加解密快速实现方法、装置、芯片及存储介质。

技术介绍

[0002]移动互联网在快速发展的同时,安全问题也愈发突出,比如静态密码撞库、个人信息泄露、暴力攻击等安全事件时有发生。传统安全手段存在一定的局限性。基于以上问题,2018年郑建华院士团队提出一种新的对称密码体制(郑建华,任盛,靖青,宋若虎.Z密码算法设计方案[J].密码学报,2018,5(6):579

590):Z密码算法。为用户提供的加密算法是各不相同的加解密算法实例。目前,Z密码算法的实现大多是基于软件的实现方式,但是现有的基于软件的实现方式密码协议握手时延较高,用户体验较差。

技术实现思路

[0003]本专利技术针对现有的基于软件的Z密码算法实现方式密码协议握手时延较高,用户体验较差的问题,提出一种基于可变S盒的软件加解密快速实现方法、装置、芯片及存储介质,在保证安全通信的同时,可有效减少握手时延,提升用户体验。
[0004]为了实现上述目的,本专利技术采用以下技术方案:
[0005]本专利技术一方面提出一种基于可变S盒的软件加解密快速实现方法,包括:
[0006]在Z密码算法密码砖运算过程中,通过预计算中间值,将加、减运算统一转化为模加运算,减少判断过程,简化S变换与G变换的运算流程;
[0007]将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算。
[0008]进一步地,按照如下方式简化S变换:
[0009]对于4比特的密码砖S变换,输入的参数为16比特数据(c
15
c
14
c
13

c2c1c0),对输入的参数进行修改,最终传入的参数为C
′3C
′2C
′1C
′0,满足
[0010]ifc8==0
[0011]C
′3C
′2C
′1C
′0=c3c2c1c0;
[0012]else
[0013]C
′3C
′2C
′1C
′0=(0

c3c2c1c0)mod 16;
[0014]通过预计算传入的参数C
′3C
′2C
′1C
′0,在进行4比特的S变换时,直接进行
[0015]y=s[x+C
′3C
′2C
′1C
′0mod 16]运算;
[0016]其中s表示4比特代替表,即16元的S盒;x为输入;y为输出;
[0017]对于8比特的密码砖S变换,输入的参数为16比特数据(c
15
c
14
c
13

c2c1c0),对输入的参数进行修改,最终传入的参数为C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0,满足
[0018]ifc8==0
[0019]C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0=c7c6c5c4c3c2c1c0;
[0020]else
[0021]C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0=(0

c7c6c5c4c3c2c1c0)mod 256;
[0022]通过预计算传入的参数C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0,在进行8比特的S变换时,直接进行
[0023]y=S[x+C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0mod 256]运算;
[0024]其中S表示8比特代替表,即256元的S盒;
[0025]对于16比特和32比特的密码砖S变换,则基于8比特密码砖的S变换运算得出。
[0026]进一步地,按照如下方式简化G变换:
[0027]在进行16比特的加密的G变换时,设参数各个位为B7B6B5B4B3B2B1B0,则G变换的运算为
[0028][0029]其中b1=S[b+C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0mod 256],a、b分别为输入的16bit x按字节分成的高、低8比特。
[0030]进一步地,所述将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算包括:
[0031]将每层密码砖按地址、位宽重新标识、分类,并按照下式制定密码砖地址掩码:
[0032]m=(w<<v1)|(w<<v2)|

|(w<<v
n
)
[0033]p=(u1<<v1)|(u2<<v2)|

|(u
n
<<v
n
)
[0034]其中n表示一层中一类位宽的密码砖个数;w表示每类位宽的密码砖元素最大值;v
i
表示一层中每个密码砖移到最右边,需要移动的最低位数,i=1,2...n;u
i
表示优化后一层中每个密码砖模加运算结果;m表示密码砖地址掩码;p表示优化后一层中所有密码砖模加运算结果或运算;
[0035]对于4比特、8比特密码砖的并行运算,包括:
[0036]对4比特、8比特密码砖对应的参数与掩码进行高、低位的拆分,得到对应的m_l、m_h、p_l、p_h;进而得到并行加密运算公式为:
[0037]y=((x&m_l)+p_l)^(x&m_h)^p_h
[0038]对于16比特、32比特密码砖的并行运算,包括:将掩码与参数进行适当的拆分,基于8比特密码砖的并行运算进行16比特、32比特密码砖的并行运算。
[0039]本专利技术另一方面提出一种基于可变S盒的软件加解密快速实现装置,包括:
[0040]中间值预计算模块,用于在Z密码算法密码砖运算过程中,通过预计算中间值,将加、减运算统一转化为模加运算,减少判断过程,简化S变换与G变换的运算流程;
[0041]密码砖分类及并行运算模块,用于将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算。
[0042]进一步地,所述中间值预计算模块中,按照如下方式简化S变换:
[0043]本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于可变S盒的软件加解密快速实现方法,其特征在于,包括:在Z密码算法密码砖运算过程中,通过预计算中间值,将加、减运算统一转化为模加运算,减少判断过程,简化S变换与G变换的运算流程;将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算。2.根据权利要求1所述的一种基于可变S盒的软件加解密快速实现方法,其特征在于,按照如下方式简化S变换:对于4比特的密码砖S变换,输入的参数为16比特数据(c
15
c
14
c
13

c2c1c0),对输入的参数进行修改,最终传入的参数为C
′3C
′2C
′1C
′0,满足if c8==0C
′3C
′2C
′1C
′0=c3c2c1c0;elseC
′3C
′2C
′1C
′0=(0

c3c2c1c0)mod 16;通过预计算传入的参数C
′3C
′2C
′1C
′0,在进行4比特的S变换时,直接进行y=s[x+C
′3C
′2C
′1C
′0mod 16]运算;其中s表示4比特代替表,即16元的S盒;x为输入;y为输出;对于8比特的密码砖S变换,输入的参数为16比特数据(c
15
c
14
c
13

c2c1c0),对输入的参数进行修改,最终传入的参数为C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0,满足if c8==0C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0=c7c6c5c4c3c2c1c0;elseC
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0=(0

c7c6c5c4c3c2c1c0)mod 256;通过预计算传入的参数C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0,在进行8比特的S变换时,直接进行y=S[x+C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0mod 256]运算;其中S表示8比特代替表,即256元的S盒;对于16比特和32比特的密码砖S变换,则基于8比特密码砖的S变换运算得出。3.根据权利要求2所述的一种基于可变S盒的软件加解密快速实现方法,其特征在于,按照如下方式简化G变换:在进行16比特的加密的G变换时,设参数各个位为B7B6B5B4B3B2B1B0,则G变换的运算为其中b1=S[b+C
′7C
′6C
′5C
′4C
′3C
′2C
′1C
′0mod 256],a、b分别为输入的16bit x按字节分成的高、低8比特。4.根据权利要求1所述的一种基于可变S盒的软件加解密快速实现方法,其特征在于,所述将每层密码砖按地址、位宽重新标识、分类,制定密码砖地址掩码,将相同类型的密码砖统一并行运算包括:将每层密码砖按地址、位宽重新标识、分类,并按照下式制定密码砖地址掩码:m=(w<<v1)|(w<<v2)|...|(w<<v
n
)p=(u1<<v1)|(u2<<v2)|...|(u
n
<<v
n
)其中n表示一层中一类位宽的密码砖个数;w表示每类位宽的密码砖元素最大值;v
i
表示
一层中每个密码砖移到最右边,需要移动的最低位数,i=1,2...n;u
i
表示优化后一层中每个密码砖模加运算结果;m表示密码砖地址掩码;p表示优化后一层中所有密码砖模加运算结果或运算;对于4比特、8比特密码砖的并行运算,包括:对4比特、8比特密码砖对应的参数与掩码进行高、低位的拆分,得到对应的m_l、m_h、p_l、p_h;进而得到并行加密运算公式为:y=((x&m_l)+p_l)^(x&m_h)^p_h对于16比特、32比特密码砖的并行运算,包括:将掩码与参数进行适当的拆分,基于8比特密码砖的并行运算进行16比特、32比特密码砖的并行运算。5.一种基于可变S盒的软件加解密快速实现装置,其特征在于,包括:中间值预计算模块,用于在Z密码算法密码砖运算过程中,通过预计算中间值,将加、减运算统一转化为模加运算,减少判断过程,简化S...

【专利技术属性】
技术研发人员:周伟张文袁喜凤
申请(专利权)人:郑州信大华芯信息科技有限公司
类型:发明
国别省市:

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

1