CN113612609B - 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 - Google Patents
一种Fruit-80超轻量级加密算法的硬件实现装置及方法 Download PDFInfo
- Publication number
- CN113612609B CN113612609B CN202110992148.8A CN202110992148A CN113612609B CN 113612609 B CN113612609 B CN 113612609B CN 202110992148 A CN202110992148 A CN 202110992148A CN 113612609 B CN113612609 B CN 113612609B
- Authority
- CN
- China
- Prior art keywords
- shift register
- key
- feedback shift
- bit
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/12—Details relating to cryptographic hardware or logic circuitry
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种Fruit‑80超轻量级加密算法的硬件实现装置及方法,硬件实现装置包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;密钥轮转函数用于提供两个密钥相关位;非线性反馈移位寄存器和线性反馈移位寄存器分别包含一个非线性反馈函数和一个线性反馈函数;密钥流输出函数每轮提取非线性反馈移位寄存器与线性反馈移位寄存器的内部状态,生成密钥流用于加密;状态控制单元用于装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器的状态更新。本发明所公开的硬件实现装置及方法能够降低Fruit‑80超轻量级序列密码的硬件资源占用,最大程度提高其吞吐率。
Description
技术领域
本发明涉及加密算法技术领域,特别涉及一种Fruit-80超轻量级加密算法的硬件实现装置及方法。
背景技术
轻量级密码凭借着高安全性、设计紧凑等优点成为近年来密码学的研究热点之一,备受物联网安全应用领域关注。传统的轻量级序列密码,比如Grain、Trivium和WG系列,密钥长度较短,内部状态极为紧凑,因此软硬件实现效率高。然而,这种仅有80位密钥长度的序列密码极易被时间-内存-数据折中攻击(TMDTO)攻破。Sprout序列密码为超轻量级密码设计提供了新的思路,加入密钥轮转函数使得密钥参与密码每轮内部状态更新,从而有效提升安全性。
继Sprout、Plantlet等超轻量级密码后,Fruit系列的密钥轮转函数设计更加复杂,安全性更高。Fruit-80超轻量级序列密码作为Fruit系列的最终版,于2018年被提出,这种密码的密钥长度仅为80位,内部状态也仅有80比特,明显小于其他序列密码;其密钥轮转函数在每轮内部状态更新时提供一位密钥相关位,在输出密钥流时提供另一个密钥相关位。
Fruit-80作为超轻量级密码,有着比传统密码更加紧凑的内部状态,在微型化终端上有着较强应用前景,但目前尚无面向多场景的Fruit-80硬件实现策略。为了能在对面积、成本和实时性要求高的终端上实现,应该设计高效的Fruit-80硬件实现装置及方法。
发明内容
为解决上述技术问题,本发明提供了一种Fruit-80超轻量级加密算法的硬件实现装置及方法,以达到降低Fruit-80超轻量级序列密码的硬件资源占用,最大程度提高其吞吐率的目的。
为达到上述目的,本发明的技术方案如下:
一种Fruit-80超轻量级加密算法的硬件实现装置,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;
所述密钥轮转函数用于为状态更新和密钥流生成提供两个密钥相关位k′和k*,所述密钥轮转函数包括三部分:7比特计数器c、时钟控制器、密钥存储单元、密钥相关位生成单元;
所述非线性反馈移位寄存器和线性反馈移位寄存器存储有Fruit-80的内部状态,分别包含一个非线性反馈函数和一个线性反馈函数,根据这两个函数,非线性反馈移位寄存器和线性反馈移位寄存器随着时钟每周期更新内部状态;所述非线性反馈移位寄存器和线性反馈移位寄存器的部分位作为所述密钥流输出函数的自变量,用于输出密钥流;
所述非线性反馈函数的自变量包含非线性反馈移位寄存器、线性反馈移位寄存器的最低位和密钥轮转函数的一个密钥相关位k′;
所述线性反馈函数的自变量仅包含线性反馈移位寄存器;
所述密钥流输出函数包括线性部分和非线性部分,每轮提取非线性反馈移位寄存器与线性反馈移位寄存器的内部状态,并引入另一个密钥相关位k*,生成密钥流用于加密;
所述状态控制单元用于指示硬件实现装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器的状态更新,所述状态控制单元包括一个状态机和一个7比特计数器c′,所述状态机将加密算法的五个阶段用五个独热码编码的状态表示,占用5比特;所述7比特计数器c′用于与密钥轮转函数的7比特计数器c对比,保证密钥轮转函数与状态控制单元同步。
上述方案中,将所述7比特计数器c记作ci,i=0,1,…,6,共7比特,每轮加一,达到最大值27-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直接由全局时钟驱动。
上述方案中,所述密钥相关位生成单元利用得到的kr,kp+16,kq+48生成密钥存储单元中的两个密钥相关位k′,k*,具体逻辑如下:
上述方案中,将所述线性反馈移位寄存器l表示为li,i=0,1,…,42,共43位,包含有一个线性反馈函数f(*),具体如下:
所述线性反馈函数f(*)的自变量仅包含线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数。
上述方案中,将所述非线性反馈移位寄存器n表示为ni,i=0,1,…,36,共37位,包含有一个非线性反馈函数g(*),具体如下:
其中,l0表示线性反馈移位寄存器的最低位。
上述方案中,所述密钥流输出函数h(*)为:
其中,ni表示所述非线性反馈移位寄存器n的第i位,li表示所述线性反馈移位寄存器l的第i位。
一种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。
进一步的技术方案中,当装置处于载入密钥阶段时,通过输入端口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分别如下:
其中,g(*)表示非线性反馈函数,f(*)表示线性反馈函数,h(*)表示密钥流输出函数,IV′t表示第t轮初始向量;
当装置处于密钥流生成阶段时,按照与初始化阶段相同的状态更新规则,此阶段密钥流输出函数h(*)的结果作为伪随机密钥流用于加密。
进一步的技术方案中,在并行方案中,在密钥流生成阶段,非线性反馈移位寄存器和线性反馈移位寄存器的最w高位分别被g0(*),g1(*),…,gw-1(*)和l0(*),l1(*),…,lw-1(*)驱动;在其他阶段,非线性反馈移位寄存器和线性反馈移位寄存器只有最高位被组合逻辑更新;因此,反馈移位寄存器最高位仍保留与面积优化方案相同的逻辑复用驱动结构,其余次w-1高位只被复制后的线性反馈函数驱动。
进一步的技术方案中,在并行方案中,非线性反馈移位寄存器与线性反馈移位寄存器均由触发器实现;
当并行宽度w=16或为16的倍数时,输出key0,key1,…,key15的循环反馈移位寄存器不更新,替换为一个16位的固定寄存器;
当并行宽度w=32或为32的倍数时,所有循环反馈移位寄存器不更新,输出key0,key1,…,key15的循环反馈移位寄存器替换为一个16位固定寄存器,输出key16,…,key47和key48,…,key79的循环反馈移位寄存器替换为两个32位的固定寄存器。
通过上述技术方案,本发明提供的一种Fruit-80超轻量级加密算法的硬件实现装置及方法具有如下有益效果:
本发明提出的一种Fruit-80超轻量级加密算法硬件实现装置及方法,具有资源占用少、吞吐率高的特点,既能满足物联网紧凑终端安全需求,也能满足边缘传感网络高速数据传输需求。
本发明提出的密钥轮转函数硬件实现装置能够高效实现超轻量级序列密码的密钥轮转函数,大大降低保存密钥所需要的硬件面积,提升产生密钥相关位的速度。
一般来说,评估密码硬件实现装置时不需要考虑密钥存储单元的面积,因此本发明提供两组数据,分别为包含密钥轮转函数时该硬件实现装置的面积和吞吐率、不包含密钥轮转函数时该硬件实现装置的面积和吞吐率。
在Xilinx 7系列FPGA上(Virtex-7):
在面积优化方案下,不包含密钥轮转函数的Fruit-80超轻量级加密算法硬件实现装置仅占用17个Slices,运行频率为538.2MHz;包含密钥轮转函数的加密算法硬件实现占用27个Slices,运行频率为224.7MHz。
以并行宽度为32在并行方案下,不包含密钥轮转函数的Fruit-80超轻量级加密算法硬件实现占用116个Slices,吞吐率高达4.54Gbps;包含密钥轮转函数的加密算法硬件实现占用138个Slices,吞吐率为4.12Gbps。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的面积优化方案下Fruit-80超轻量级加密算法的硬件实现装置示意图;
图2为本发明实施例所公开的并行方案下Fruit-80超轻量级加密算法的硬件实现装置示意图;
图3为密钥轮转函数组成示意图;
图4为本发明实施例所公开的Fruit-80超轻量级加密算法的实现方法流程示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种Fruit-80超轻量级加密算法的硬件实现装置,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元。
一、密钥轮转函数
密钥轮转函数用于为状态更新和密钥流生成提供两个密钥相关位k′和k*,如图3所示,密钥轮转函数包括三部分:7比特计数器c、密钥存储单元、时钟控制器、密钥相关位生成单元。
1、7比特计数器c
将7比特计数器c记作ci,i=0,1,…,6,共7比特,每轮加一,达到最大值27-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(取值范围0-15),p+16(取值范围16-47),q+48(取值范围48-79)输出到密钥存储单元。
2、密钥存储单元
密钥存储单元保存有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。
由于p和q分别由7比特计数器c的第2-6位和第3-7位决定,每轮计数器加1,因此每两轮p加1,每四轮q加1。因此,保存有ka,a=0,1,…,15的16位循环反馈移位寄存器CFSR1每周期更新一次,保存有kb,b=16,17,…,47的32位循环反馈移位寄存器CFSR2每两个周期更新一次,保存有kc,c=48,49,…,79的32位循环反馈移位寄存器CFSR3每四个周期更新一次。
3、时钟控制器
时钟控制器用于产生二分频和四分频信号,分别驱动循环反馈移位寄存器CFSR2和循环反馈移位寄存器CFSR3,循环反馈移位寄存器CFSR1直接由全局时钟驱动。
4、密钥相关位生成单元
密钥相关位生成单元利用得到的kr,kp+16,kq+48生成密钥存储单元中的两个密钥相关位k′,k*,具体逻辑如下:
二、非线性反馈移位寄存器
非线性反馈移位寄存器和线性反馈移位寄存器存储有Fruit-80的内部状态,分别包含一个非线性反馈函数和一个线性反馈函数,根据这两个函数,非线性反馈移位寄存器和线性反馈移位寄存器随着时钟每周期更新内部状态;非线性反馈移位寄存器和线性反馈移位寄存器的部分位作为密钥流输出函数的自变量,用于输出密钥流。
非线性反馈函数的自变量包含非线性反馈移位寄存器、线性反馈移位寄存器的最低位和密钥轮转函数的一个密钥相关位k′。
将非线性反馈移位寄存器n表示为ni,i=0,1,…,36,共37位,包含有一个非线性反馈函数g(*),具体如下:
其中,l0表示线性反馈移位寄存器的最低位。
三、线性反馈移位寄存器
将线性反馈移位寄存器l表示为li,i=0,1,…,42,共43位,包含有一个线性反馈函数f(*),具体如下:
线性反馈函数f(*)的自变量仅包含线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数。
四、密钥流输出函数
密钥流输出函数包括线性部分和非线性部分,每轮提取非线性反馈移位寄存器与线性反馈移位寄存器的内部状态,并引入另一个密钥相关位k*,生成密钥流用于加密。
密钥流输出函数h(*)具体为:
其中,ni表示非线性反馈移位寄存器n的第i位,li表示线性反馈移位寄存器l的第i位。
五、状态控制单元
状态控制单元用于指示硬件实现装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器的状态更新,状态控制单元包括一个状态机和一个7比特计数器c′,状态机将加密算法的五个阶段用五个独热码编码的状态表示,占用5比特;7比特计数器c′用于与密钥轮转函数的7比特计数器c对比,保证密钥轮转函数与状态控制单元同步。
一种Fruit-80超轻量级加密算法的实现方法,如图4所示,包括如下过程:
(1)空闲状态阶段:
装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器。
(2)载入密钥阶段:
随后在下一个周期进入载入密钥阶段,非线性反馈移位寄存器与线性反馈移位寄存器首尾相连,形成80位的移位寄存器,共执行80轮载入80位的密钥key;80轮后,非线性反馈移位寄存器与线性反馈移位寄存器的内部状态为:
n[0:36]=key[0:36]
l[0:42]=key[37:79]
当装置处于载入密钥阶段时,通过输入端口IN逐位读入外部输入的密钥,非线性反馈移位寄存器和线性反馈移位寄存器分别载入80位密钥的低37位和高43位。
(3)载入初始向量阶段:
状态控制单元进入载入初始向量阶段,持续80位,输入端口IN逐位载入初始向量IV′,该位与密钥流输出函数进行异或运算,并在状态控制单元的控制下与非线性反馈函数和线性反馈函数异或运算后反馈至非线性反馈移位寄存器与线性反馈移位寄存器的最高位;
当装置处于载入初始向量阶段时,在装置外部将70位初始向量与10位常数组合成80位的数据,记作IV′,表示为:IV′={1,0,0,0,0,0,0,0,0,0,IV[0:69]};载入初始向量阶段共持续80轮,每轮读入1比特IV′,与密钥流输出函数的结果异或运算后反馈至非线性反馈移位寄存器和线性反馈移位寄存器,在此阶段对于第t轮,更新为非线性反馈移位寄存器和线性反馈移位寄存器的最高位:
具体地,更新函数un和ul分别如下:
其中,g(*)表示非线性反馈函数,f(*)表示线性反馈函数,h(*)表示密钥流输出函数,IV′t表示第t轮初始向量。
(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;
当装置处于密钥流生成阶段时,按照与初始化阶段相同的状态更新规则,此阶段密钥流输出函数h(*)的结果作为伪随机密钥流用于加密,每周期生成w位密钥流,可用于w位明文加密。
本发明提供两种实现方案:面积优化方案与并行方案。
如图1所示,本发明设计的Fruit-80加密算法硬件实现装置包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元。
在面积优化方案中,非线性反馈移位寄存器和线性反馈移位寄存器在算法的不同阶段最高位载入的值不同,这由非线性反馈函数、线性反馈函数、状态控制单元和密钥流输出函数决定。在载入密钥阶段,线性反馈移位寄存器通过IN端口从外部载入数据,同时最低位l0载入非线性反馈移位寄存器的最高位。在载入初始向量阶段,线性反馈移位寄存器和非线性反馈移位寄存器的最高位分别为在随后的两个阶段:初始化阶段和密钥流生成阶段,线性反馈移位寄存器和非线性反馈移位寄存器的最高位载入f(*)和g(*)。
由图1可知,密钥流输出函数的输入数据包括密钥轮转函数输出的k′,k*、线性反馈移位寄存器和非线性反馈移位寄存器。
面积优化方案旨在节约硬件面积。FPGA内部的查找表资源可以被配置为移位寄存器查找表(SRL)用于实现移位寄存器,一个SRL最多能够实现32位连续的移位寄存器。具体地,连续的移位寄存器被定义为,从最高位到最低位中的每一位都没有被任何组合逻辑函数使用,包括反馈函数和密钥流输出函数。使用SRL实现Fruit-80硬件装置中的非线性反馈函数与线性反馈函数能够降低触发器资源占用。
在面积优化方案中,非线性反馈移位寄存器与线性反馈移位寄存器的最高位由非线性反馈函数和线性反馈函数、密钥流输出函数、状态控制单元和密钥轮转函数驱动,设计在一个组合逻辑中,达到逻辑复用的目的。
在面积优化方案中,对于密钥轮转函数中的密钥存储单元,使用三个SRL实现三个循环反馈移位寄存器CFSR1,CFSR2,CFSR3,SRL的输出端与输入端相连,输出端结果作为kr,kp+16,kq+48传送给密钥相关位生成单元。从而使用三个查找表代替80个触发器。
如图2所示的并行方案下,各结构与图1相同。
并行方案目标是尽可能地提升硬件装置的吞吐率。定义参数并行宽度w,表示在密钥流生成阶段每周期更新w轮内部状态。
并行方案将非线性反馈函数和线性反馈函数、密钥流输出函数复制w次,即:g0(*),g1(*),…,gw-1(*)和l0(*),l1(*),…,lw-1(*),以实现在一个周期内更新多轮内部状态。
非线性反馈移位寄存器和线性反馈移位寄存器在算法的不同阶段最高位载入的值不同,这由非线性反馈函数、线性反馈函数、状态控制单元和密钥流输出函数决定。在载入密钥阶段,线性反馈移位寄存器通过IN端口从外部载入数据,同时最低位l0载入非线性反馈移位寄存器的最高位。在载入初始向量阶段,线性反馈移位寄存器和非线性反馈移位寄存器的最高位分别载入和在随后的两个阶段:初始化阶段和密钥流生成阶段,线性反馈移位寄存器和非线性反馈移位寄存器的最高w位分别载入f(*)0-f(*)w-1和g(*)0-g(*)w-1。
进一步的,在并行方案中,在密钥流生成阶段,非线性反馈移位寄存器和线性反馈移位寄存器的最w高位从高到低分别被g(*)w-1,g(*)w-2,…,g(*)0和f(*)w-1,f(*)w-2,…,f(*)0驱动;在其他阶段,非线性反馈移位寄存器和线性反馈移位寄存器只有最高位被组合逻辑更新。
具体地,状态更新表示为:
{n36,n35,…,n0}→{g(*)w-1,g(*)w-2,…,g(*)0,n36,n35,…,nw}
{l42,l41,…,l0}→{f(*)w-1,f(*)w-2,…,f(*)0,l42,l41,…,lw}
具体地,复制后的线性反馈函数表示为:
可以发现,对于复制后的函数f(l)7存在自变量l37+7-1,为线性反馈函数的l43第44位,然而线性反馈移位寄存器仅有43位,l43超出了线性反馈移位寄存器的范围,需要用当前周期内部状态不存在的值代替,因此替换为f(l)0。
进一步地,对于复制反馈函数、密钥流输出函数过程中其他的ni+a,i=0,1,…,36;a=0,1,…,w-1和lj+a,j=0,1,…,42;a=0,1,…,w-1,替换如下:
在并行方案中,非线性反馈移位寄存器与线性反馈移位寄存器均由触发器实现;
密钥流生成函数按照上述规则复制w次,即h(*)w-1,h(*)w-2,...,h(*)0。
具体地,复制后的密钥流生成函数为:
对于ni+a,i=0,1,…,36;a=0,1,…,w-1和lj+a,j=0,1,…,42;a=0,1,…,w-1同样执行上述替换。
当并行宽度w=16或为16的倍数时,输出key0,key1,…,key15的循环反馈移位寄存器不更新,替换为一个16位的固定寄存器;
当并行宽度w=32或为32的倍数时,所有循环反馈移位寄存器不更新,输出key0,key1,…,key15的循环反馈移位寄存器替换为一个16位固定寄存器,输出key16,…,key47和key48,…,key79的循环反馈移位寄存器替换为两个32位的固定寄存器。
优选地,为保证组合逻辑级数不超过最大限制,即保证最大运行频率,w的最大限度为32。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
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比特计数器c记作ci,i=0,1,…,6,共7比特,每轮加一,达到最大值27-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超轻量级加密算法的实现方法,其特征在于,在并行方案中,非线性反馈移位寄存器与线性反馈移位寄存器均由触发器实现;
当并行宽度w=16或为16的倍数时,输出key0,key1,…,key15的循环反馈移位寄存器不更新,替换为一个16位的固定寄存器;
当并行宽度w=32或为32的倍数时,所有循环反馈移位寄存器不更新,输出key0,key1,…,key15的循环反馈移位寄存器替换为一个16位固定寄存器,输出key16,…,key47和key48,…,key79的循环反馈移位寄存器替换为两个32位的固定寄存器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110992148.8A CN113612609B (zh) | 2021-08-27 | 2021-08-27 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110992148.8A CN113612609B (zh) | 2021-08-27 | 2021-08-27 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113612609A CN113612609A (zh) | 2021-11-05 |
CN113612609B true CN113612609B (zh) | 2022-05-27 |
Family
ID=78309443
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110992148.8A Active CN113612609B (zh) | 2021-08-27 | 2021-08-27 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113612609B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114553424B (zh) * | 2022-02-21 | 2024-03-15 | 南京航空航天大学 | Zuc-256流密码轻量级硬件系统 |
CN114629624A (zh) * | 2022-03-11 | 2022-06-14 | 南京航空航天大学 | 基于并行循环移位寄存器的轻量级Hash函数构造方法 |
CN114615069B (zh) * | 2022-03-19 | 2022-11-04 | 山东大学 | 一种Quartet轻量级加密算法的实现装置及方法 |
CN114969848B (zh) * | 2022-05-16 | 2024-06-04 | 山东大学 | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 |
CN115208553B (zh) * | 2022-07-15 | 2024-02-27 | 山东大学 | Triad轻量级流密码加密算法的芯片实现装置及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112398639B (zh) * | 2020-11-04 | 2022-02-22 | 山东大学 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
CN112532377B (zh) * | 2020-12-08 | 2022-04-26 | 山东大学 | 一种Espresso流密码及其变体的硬件实现装置与方法 |
-
2021
- 2021-08-27 CN CN202110992148.8A patent/CN113612609B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN113612609A (zh) | 2021-11-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113612609B (zh) | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 | |
Jiao et al. | Stream cipher designs: a review | |
Schneier | Description of a new variable-length key, 64-bit block cipher (Blowfish) | |
JP3851115B2 (ja) | 暗号回路 | |
US8160242B2 (en) | Efficient implementation of arithmetical secure hash techniques | |
Preneel et al. | The cryptographic hash function RIPEMD-160 | |
Clark et al. | The LILI-II keystream generator | |
CN112398639A (zh) | 一种Fountain轻量级加密算法的实现装置、方法及应用 | |
US5983252A (en) | Pseudo-random number generator capable of efficiently exploiting processors having instruction-level parallelism and the use thereof for encryption | |
CN114615069B (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN112367158A (zh) | 一种加速sm3算法的方法、处理器、芯片及电子设备 | |
Wang et al. | A hardware implementation of ZUC-256 stream cipher | |
Chawla et al. | FPGA implementation of an optimized 8-bit AES architecture: A masked S-Box and pipelined approach | |
WO2001017152A1 (en) | A method for the hardware implementation of the idea cryptographic algorithm - hipcrypto | |
Gilbert et al. | Decorrelated Fast Cipher: an AES Candidate | |
Van Hieu et al. | Hardware implementation for fast block generator of Litecoin blockchain system | |
CN108768615B (zh) | 散列算法在同一框架下的asic芯片实现方法 | |
CN114553424B (zh) | Zuc-256流密码轻量级硬件系统 | |
Jansen et al. | Cascade jump controlled sequence generator and Pomaranch stream cipher | |
Schneier et al. | Two sh: A 128-bit block cipher | |
Beuchat et al. | A low-area unified hardware architecture for the AES and the cryptographic hash function ECHO | |
CN114969848B (zh) | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 | |
Hulle et al. | Compact Reconfigurable Architecture for Sosemanuk Stream Cipher | |
Sumathi et al. | Study of Data Security Algorithms using Verilog HDL. | |
CN116132018B (zh) | 一种在p4可编程交换机上实现sha256算法的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |