利索能及
我要发布
收藏
专利号: 2021109921488
申请人: 山东大学
专利类型:发明专利
专利状态:已下证
更新日期:2026-05-14
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在于,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;

*

所述密钥轮转函数用于为状态更新和密钥流生成提供两个密钥相关位k′和k ,所述密钥轮转函数包括三部分:7比特计数器c、时钟控制器、密钥存储单元、密钥相关位生成单元;

所述非线性反馈移位寄存器和线性反馈移位寄存器存储有Fruit‑80的内部状态,分别包含一个非线性反馈函数和一个线性反馈函数,根据这两个函数,非线性反馈移位寄存器和线性反馈移位寄存器随着每时钟周期更新内部状态;所述非线性反馈移位寄存器和线性反馈移位寄存器的部分位作为所述密钥流输出函数的自变量,用于输出密钥流;

所述非线性反馈函数的自变量包含非线性反馈移位寄存器、线性反馈移位寄存器的最低位和密钥轮转函数的一个密钥相关位k′;

所述线性反馈函数的自变量仅包含线性反馈移位寄存器;

所述密钥流输出函数包括线性部分和非线性部分,每轮提取非线性反馈移位寄存器与*线性反馈移位寄存器的内部状态,并引入另一个密钥相关位k,生成密钥流用于加密;

所述状态控制单元用于指示硬件实现装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器的状态更新,所述状态控制单元包括一个状态机和一个7比特计数器c′,所述状态机将加密算法的五个阶段用五个独热码编码的状态表示,占用5比特;所述7比特计数器c′用于与密钥轮转函数的7比特计数器c对比,保证密钥轮转函数与状态控制单元同步;

所述加密算法的五个阶段包括:

(1)空闲状态阶段:装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器;

(2)载入密钥阶段:随后在下一个周期进入载入密钥阶段,非线性反馈移位寄存器与线性反馈移位寄存器首尾相连,形成80位的移位寄存器,共执行80轮载入80位的密钥key;80轮后,非线性反馈移位寄存器与线性反馈移位寄存器的内部状态为:n[0:36]=key[0:36]

l[0:42]=key[37:79]

(3)载入初始向量阶段:状态控制单元进入载入初始向量阶段,持续80位,输入端口IN逐位载入初始向量IV′,该位与密钥流输出函数进行异或运算,并在状态控制单元的控制下与非线性反馈函数和线性反馈函数异或运算后反馈至非线性反馈移位寄存器与线性反馈移位寄存器的最高位;

(4)初始化阶段:状态控制单元进入初始化阶段,更新7比特计数器c′:c′0=n0,c′1=n1,…,c′5=n5,c′6=l0;当出现密钥轮转函数的7比特计数器c与7比特计数器c′不匹配时,此时状态控制单元控制非线性反馈移位寄存器与线性反馈移位寄存器不进行状态更新,7比特计数器c′不更新;仅有密钥轮转函数的循环反馈移位寄存器循环移位,7比特计数器c更新直到c=c′;随后持续80轮更新非线性反馈移位寄存器和线性反馈移位寄存器,在此阶段二者的最高位仅分别由g(*)和f(*)驱动,密钥流输出函数h(*)不参与状态更新;

(5)密钥流生成阶段:最后,状态控制单元进入密钥流生成阶段,持续此阶段直到再次收到复位信号;状态控制单元控制密钥流输出函数和初始向量IV′不参与内部状态更新;在这一阶段中,在并行方案下,每个时钟周期更新w轮内部状态,在面积优化方案下w=1。

2.根据权利要求1所述的一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在7

于,将所述7比特计数器c记作ci,i=0,1,…,6,共7比特,每轮加一,达到最大值2‑1后归零;

定义三个变量r,p,q分别为7比特计数器c的低四位、中五位和高五位,即:r=(c0,c1,c2,c3),p=(c1,c2,c3,c4,c5),q=(c2,c3,c4,c5,c6);r的取值范围为0‑15,p和q的取值范围为0‑

31,因此p+16的取值范围为16‑47,q+48的取值范围为48‑79,定义三个索引信号:r,p+16,q+

48输出到密钥存储单元;

所述密钥存储单元保存有80比特的密钥ki,i=0,1,…,79,根据所述三个索引信号输出三位密钥kr,kp+16,kq+48,分别表示第r位密钥、第p+16位密钥、第q+48位密钥;根据所述三个索引信号的取值范围发现,kr,kp+16,kq+48分别对应着ka,a=0,1,…,15;kb,b=16,17,…,47;

kc,c=48,49,…,79;

所述密钥存储单元包括三个循环反馈移位寄存器,将密钥ki的低16位,即ka存放在一个

16位循环反馈移位寄存器CFSR1中,每周期移位一次,最低位即kr;将kb存放在一个32位循环反馈移位寄存器CFSR2中,每两轮移位一次,最低位即kp+16;将kc存放在32位循环反馈移位寄存器CFSR3中,每四轮移位一次,最低位即kq+48;

所述时钟控制器用于产生二分频和四分频信号,分别驱动循环反馈移位寄存器CFSR2和循环反馈移位寄存器CFSR3,循环反馈移位寄存器CFSR1直接由全局时钟驱动。

3.根据权利要求2所述的一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在于,所述密钥相关位生成单元利用得到的kr,kp+16,kq+48生成密钥存储单元中的两个密钥相*关位k′,k,具体逻辑如下:

k′=kr,kp+16,kq+48⊕kr,kp+16⊕kp+16,kq+48⊕kr,kq+48⊕kp+16*

k=k1,kp+16⊕kp+16,kq+48⊕kr,kq+48⊕kr⊕kp+16⊕kq+48。

4.根据权利要求1所述的一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在于,将所述线性反馈移位寄存器l表示为li,i=0,1,…,42,共43位,包含有一个线性反馈函数f(*),具体如下:f(l)=l0⊕l8⊕l18⊕l23⊕l28⊕l37

所述线性反馈函数f(*)的自变量仅包含线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数。

5.根据权利要求1所述的一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在于,将所述非线性反馈移位寄存器n表示为ni,i=0,1,…,36,共37位,包含有一个非线性反馈函数g(*),具体如下:g(n,l,k′)=k′⊕l0⊕n0⊕n10⊕n12·n3⊕n14·n25⊕n8·n1θ⊕n5·n23·n31⊕n20⊕n28·n30·n32·n34其中,l0表示线性反馈移位寄存器的最低位。

6.根据权利要求1所述的一种Fruit‑80超轻量级加密算法的硬件实现装置,其特征在于,所述密钥流输出函数h(*)为:* *

h(n,l,k)=k·(n36⊕l19)⊕l6·l15⊕l1·l22⊕n1·n33·l42⊕n35·l27⊕n1·n24⊕n0⊕n7⊕n19⊕n29⊕n36⊕l38其中,ni表示所述非线性反馈移位寄存器n的第i位,li表示所述线性反馈移位寄存器l的第i位。

7.一种Fruit‑80超轻量级加密算法的实现方法,其特征在于,包括如下过程:(1)空闲状态阶段:装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器;

(2)载入密钥阶段:随后在下一个周期进入载入密钥阶段,非线性反馈移位寄存器与线性反馈移位寄存器首尾相连,形成80位的移位寄存器,共执行80轮载入80位的密钥key;80轮后,非线性反馈移位寄存器与线性反馈移位寄存器的内部状态为:n[0:36]=key[0:36]

l[0:42]=key[37:79]

(3)载入初始向量阶段:状态控制单元进入载入初始向量阶段,持续80位,输入端口IN逐位载入初始向量IV′,该位与密钥流输出函数进行异或运算,并在状态控制单元的控制下与非线性反馈函数和线性反馈函数异或运算后反馈至非线性反馈移位寄存器与线性反馈移位寄存器的最高位;

(4)初始化阶段:状态控制单元进入初始化阶段,更新7比特计数器c′:c′0=n0,c′1=n1,…,c′5=n5,c′6=l0;当出现密钥轮转函数的7比特计数器c与7比特计数器c′不匹配时,此时状态控制单元控制非线性反馈移位寄存器与线性反馈移位寄存器不进行状态更新,7比特计数器c′不更新;仅有密钥轮转函数的循环反馈移位寄存器循环移位,7比特计数器c更新直到c=c′;随后持续80轮更新非线性反馈移位寄存器和线性反馈移位寄存器,在此阶段二者的最高位仅分别由g(*)和f(*)驱动,密钥流输出函数h(*)不参与状态更新;

(5)密钥流生成阶段:最后,状态控制单元进入密钥流生成阶段,持续此阶段直到再次收到复位信号;状态控制单元控制密钥流输出函数和初始向量IV′不参与内部状态更新;在这一阶段中,在并行方案下,每个时钟周期更新w轮内部状态,在面积优化方案下w=1。

8.根据权利要求7所述的一种Fruit‑80超轻量级加密算法的实现方法,其特征在于,当装置处于载入密钥阶段时,通过输入端口IN逐位读入外部输入的密钥,非线性反馈移位寄存器和线性反馈移位寄存器分别载入80位密钥的低37位和高43位;

当装置处于载入初始向量阶段时,在装置外部将70位初始向量与10位常数组合成80位的数据,记作IV′,表示为:IV′={1,0,0,0,0,0,0,0,0,0,IV[0:69]};载入初始向量阶段共持续80轮,每轮读入1比特IV′,与密钥流输出函数的结果异或运算后反馈至非线性反馈移位寄存器和线性反馈移位寄存器,在此阶段对于第t轮,更新为非线性反馈移位寄存器和线性反馈移位寄存器的最高位:具体地,更新函数un和ul分别如下:

un=g(*)⊕h(*)⊕IV′t

ul=f(*)⊕h(*)⊕IV′t

其中,g(*)表示非线性反馈函数,f(*)表示线性反馈函数,h(*)表示密钥流输出函数,IV′t表示第t轮初始向量;

当装置处于密钥流生成阶段时,按照与初始化阶段相同的状态更新规则,此阶段密钥流输出函数h(*)的结果作为伪随机密钥流用于加密。

9.根据权利要求7所述的一种Fruit‑80超轻量级加密算法的实现方法,其特征在于,在并行方案中,在密钥流生成阶段,非线性反馈移位寄存器和线性反馈移位寄存器的最w高位分别被g0(*),g1(*),…,gw‑1(*)和l0(*),l1(*),…,lw‑1(*)驱动;在其他阶段,非线性反馈移位寄存器和线性反馈移位寄存器只有最高位被组合逻辑更新;因此,反馈移位寄存器最高位仍保留与面积优化方案相同的逻辑复用驱动结构,其余次w‑1高位只被复制后的线性反馈函数驱动。

10.根据权利要求7所述的一种Fruit‑80超轻量级加密算法的实现方法,其特征在于,在并行方案中,非线性反馈移位寄存器与线性反馈移位寄存器均由触发器实现;

密钥轮转函数每周期共生成2*w个密钥相关位,分别为k′a,

所述密钥存储单元均由触发器实现,取三个循环移位寄存器的低w位作为

传送给密钥相关位生成单元生成k′a,

当并行宽度w=16或为16的倍数时,输出key0,key1,…,key15的循环反馈移位寄存器不更新,替换为一个16位的固定寄存器;

当并行宽度w=32或为32的倍数时,所有循环反馈移位寄存器不更新,输出key0,key1,…,key15的循环反馈移位寄存器替换为一个16位固定寄存器,输出key16,…,key47和key48,…,key79的循环反馈移位寄存器替换为两个32位的固定寄存器。