System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种基于新型动态初始化技术的小状态流密码实现方法技术_技高网

一种基于新型动态初始化技术的小状态流密码实现方法技术

技术编号:40710890 阅读:2 留言:0更新日期:2024-03-22 11:12
本发明专利技术提供一种基于新型动态初始化技术的小状态流密码实现方法,该方法基于CIVK的构造方案构造了一个轻量级流密码算法。该算法使用2个NFSR串联作为驱动,使用1个128位的非易失性存储器存储初始值和密钥前缀,通过一个大周期的选择函数使非易失性存储器中的值参与到算法初始化和密钥流的生成过程中。该算法硬件开销低,安全性高,经研究表明该算法面对已知多种攻击的安全级别都不低于128位。

【技术实现步骤摘要】

本专利技术涉及信息安全领域,具体是一种基于新型动态初始化技术的小状态流密码实现方法


技术介绍

1、流密码是对称加密系统的一个重要分支,其应用场景非常广泛,可用于大规模数据传输或资源受限的情况。经典的流密码算法包括grain系列算法、fruit系列算法、snow系列算法、zuc算法等。流密码必然有内部状态,这使其容易受到时间-存储-数据权衡(timememory data tradeoff,tmdto)攻击。为抵抗这种攻击,一般的做法是设计密码算法的内部状态至少是所需安全级别的两倍,例如grain系列算法的内部状态是密钥长度的两倍,而trivium算法的内部状态大于密钥长度的两倍。然而这种设计会导致流密码在硬件实现时资源代价过大,从而使算法不适用于资源受限、低功耗、物联网等新的应用场景。

2、为了既能抵抗tmdto攻击,又能减小内部状态的长度,研究人员最近几年提出了“小状态”轻量级流密码。所谓小状态是指在能够抵抗tmdto攻击的前提下,密码算法内部状态的长度小于密钥长度两倍。相应的轻量级流密码算法包括sprout、fruit和plantlet等,这些算法整体结构高度相似,都基于grain算法的结构,采用线性或者非线性反馈移位寄存器(linear/nonlinear feedback shift register,lfsr/nfsr)的串联结构进行驱动。目前,小状态流密码形成了四种结构:(1)lizard;(2)ckey(continuous key)构造;(3)civ(continuous iv)构造;(4)civk(consisting of the initial value and key prefix)。.

3、传统流密码算法多使用反馈移位寄存器(易失性的寄存器)作为算法内部状态;而小状态流密码算法(除lizard外)都是使用非易失性存储器替代部分寄存器。在算法运行过程中,持续使用存储在非易失性存储器中的值,可以在保证算法安全性的前提下,减少内部寄存器大小,从而有效减小算法对硬件资源的消耗。流密码fruit-80、plantlet和sprout都采用了ckey构造,这种构造的流密码在其状态更新期间连续使用存储在非易失性存储器中的密钥,附加的密钥位将为算法提供生日界限之外的安全性。这种ckey构造被证明对通用tmdto攻击的抵抗能力最多为内部状态大小的一半。civ不使用初始密钥,而是使用初始值作为非易失性部分,到目前为止还没有基于civ结构的流密码算法。civk则是使用密钥前缀和初始值作为非易失性部分。

4、动态初始化技术是指使流密码算法初始化轮数不确定的一种技术,该技术最早在fruit-80算法中出现,目的是为了防止算法内部状态的回溯,以往使用了该技术的算法中其实现都依赖于定时器,在算法初始化一定轮数后,将fsr中部分位置存储的数据赋值给定时器中的指定位置,继续运行算法,直到定时器中的值为指定的值(如全1)时,结束初始化过程。但是使用这种技术会增加寄存器的位数从而增加硬件成本。


技术实现思路

1、本专利技术的目的是结合动态初始化技术,设计一种安全强度高,能够有效防止状态回溯,能抵抗tmdto攻击和快速相关攻击等已有攻击方法,能适用于资源受限环境的小状态流密码算法。该算法将2个nfsr串联,1个非易失性存储器用来存储初始向量和密钥前缀,并使用选择函数选择非易失性存储器中的比特位,选中的比特位参与nfsr状态的更新过程;最后选取2个nfsr的部分状态经过复杂的输出函数,得到输出比特;在算法初始化过程中应用了新型的动态初始化技术,同时输出函数的输出参与内部状态的更新;在密钥流生成阶段,输出函数的输出比特组成密钥流,且该输出不再参与内部状态的更新。

2、实现本专利技术目的的技术方案是:

3、本专利技术设计一个基于新型动态初始化技术的小状态流密码实现方法,主要包括如下步骤:

4、(1)设计算法总体结构

5、算法总体框架使用grain类算法的结构并结合civk方案和动态初始化技术。采用2个串联的nfsr作为算法的驱动部分,选取2个nfsr的内部状态位作为选择函数和输出函数的输入;为保证算法在具有较小的内部状态的同时,又可以满足安全需求,使用civk方案,即使用1个非易失性的存储器,存储初始向量与密钥前缀,使用大周期的选择函数选择参与nfsr状态更新的非易失性状态比特,该选择函数应用于算法的初始化和密钥流生成过程;在算法初始化过程中,应用动态初始化技术且输出函数的输出反馈至nfsr,参与其内部状态的更新;密钥流生成阶段,输出函数的输出比特组成密钥流,且该输出比特不再参与nfsr内部状态的更新。

6、(2)选择nfsr1部件

7、本专利技术选用achterbahn-128/80的33比特的nfsr a12,并稍作修改以保证其不陷入全零状态。

8、(3)选择nfsr2部件

9、nfsr2为95位宽,使用grain-128a中g的修改版本作为其反馈多项式。

10、(4)设计civk方案

11、非易失性存储器具有断电不丢失,读取速度快等优点,且相对寄存器具有明显的成本优势;在这128比特的存储器中,96位的初始向量存储在高位,32位的密钥前缀存储在低位,且存储在非易失性存储器中的值在整个过程中保持不变;设置一个选择函数,每次选择非易失性存储器中的3位作为该选择函数的输入,通过该函数输出1个比特位参与nfsr内部状态更新。

12、(5)设计算法输出函数

13、算法的输出函数由1个线性函数和3个三角函数组成,通过混合nfsr中的多个比特位,以进一步增强密码的非线性性。

14、(6)设计算法初始化过程

15、初始化阶段分为四个步骤:

16、第一步,将128位的密钥加载到2个nfsr中,算法迭代128轮;

17、第二步,判断nfsr2中的的状态是否为01011。若这五个状态位是01011,则进入下一步;若不是,则算法继续迭代,直至这五个状态位等于01011,再进入下一步。这一步完成后算法迭代的轮数是未知的。

18、第三步,将nfsr2最后五位分别异或非易失性存储器中的密钥前缀的前五位,得到的值依然赋值给nfsr2后五位。

19、第四步,算法再进行256轮迭代。

20、(7)生成密钥流过程

21、算法初始化后,算法的输出位为密钥比特,此时算法的输出位不再参与nfsr状态的更新,每一轮迭代生成1比特的密钥,多次迭代的输出比特组成密钥流,限制单个密钥初始值对生成的密钥流长度最大为232。

22、(8)算法加解密过程

23、数据加密时,根据明文的大小,产生密钥流,并逐比特和明文比特异或产生密文;解密时,将密钥流逐比特与密文异或恢复明文。

24、本专利技术的有益效果是:

25、(1)本专利技术方法采用了一种新的动态初始化技术,可以阻止通过内部状态求逆本文档来自技高网...

【技术保护点】

1.一种基于新型动态初始化技术的小状态流密码实现方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的基于新型动态初始化技术的小状态流密码实现方法,其特征在于,步骤(1)所述设计算法整体结构,确定算法各组件,具体过程如下:

3.根据权利要求1所述的基于新型动态初始化技术的小状态流密码实现方法,其特征在于,步骤(2)所述基于动态初始化技术设计算法初始化过程,具体过程如下:

4.根据权利要求1所述的基于新型动态初始化技术的小状态流密码实现方法,其特征在于,步骤(3)所述密钥流生成过程,具体过程如下:

【技术特征摘要】

1.一种基于新型动态初始化技术的小状态流密码实现方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的基于新型动态初始化技术的小状态流密码实现方法,其特征在于,步骤(1)所述设计算法整体结构,确定算法各组件,具体过程如下:

3.根据权利要求1...

【专利技术属性】
技术研发人员:范欣张润莲武小年
申请(专利权)人:桂林电子科技大学
类型:发明
国别省市:

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

1