CN112398639B - 一种Fountain轻量级加密算法的实现装置、方法及应用 - Google Patents
一种Fountain轻量级加密算法的实现装置、方法及应用 Download PDFInfo
- Publication number
- CN112398639B CN112398639B CN202011216492.XA CN202011216492A CN112398639B CN 112398639 B CN112398639 B CN 112398639B CN 202011216492 A CN202011216492 A CN 202011216492A CN 112398639 B CN112398639 B CN 112398639B
- Authority
- CN
- China
- Prior art keywords
- bit
- linear feedback
- fountain
- shift register
- feedback shift
- 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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明公开了一种Fountain轻量级加密算法的实现装置、方法及应用,该装置包括状态控制单元、线性反馈移位寄存器、非线性变换盒、密钥流提取单元和反馈值生成单元;实现方法包括面积优化方案和并行方案,应用包括Fountain流密码的生成,Fountain型密钥流生成器的生成、Fountain型MAC函数的生成。本发明所公开的Fountain轻量级加密算法设计紧凑、节约资源、提升数据吞吐率,延时低,安全性高,能满足资源紧张的物联网终端设备数据加密需求。
Description
技术领域
本发明涉及数据加密技术领域,特别涉及一种Fountain轻量级加密算法的实现装置、方法及应用。
背景技术
物联网技术作为信息科技产业的第三次革命的核心,近年来在工业、教育、医疗等领域不断发展,人们随处可见周围的物联网设备。依靠RFID、Zigbee和蓝牙等通信技术和无处不在的终端传感器,物联网可以实现任何物体与网络的连接,使万物互联不再是天方夜谭。
然而,在信息技术高速发展的时代,物联网已深入工业互联网、智能电网、智慧交通等关乎民生与国家安全的重点领域,物联网安全这一关键问题也不容小觑。传统密码大多通过软件实现,即高级语言编写密码实现代码,经过编译在通用处理器上运行,然而这种软件实现的加密算法受限于处理器的运行频率,很难做到高速加密。此外,由于轻量级密码尚未形成标准算法,算法需要不断迭代,设计专用芯片需要重新投入研发成本。
目前标准密码(如AES,SM系列)已广泛应用,但由于这些密码密钥长度较大、运算复杂,在微型化终端(如RFID标签)很难部署标准加密算法。因此,设计紧凑的轻量级密码成为近年来密码学研究热点之一。
将轻量级密码部署于资源紧张的计算平台,因此更需要高效、紧凑、吞吐率高的实现装置。
发明内容
为解决上述技术问题,本发明提供了一种Fountain轻量级加密算法的实现装置、方法及应用,以达到设计紧凑、节约资源、提升数据吞吐率,安全性高的目的。
为达到上述目的,本发明的技术方案如下:
一种Fountain轻量级加密算法的实现装置,包括状态控制单元、线性反馈移位寄存器、非线性变换盒、密钥流提取单元和反馈值生成单元;
所述状态控制单元用于调整和控制装置状态,根据装置当前所处阶段,控制输入和输出使能,控制密钥流产生;
所述线性反馈移位寄存器包括四个独立的64位移位寄存器,每位的状态为0或1,每个独立的64位移位寄存器同时包括一个或多个线性反馈函数,用于对当前线性反馈移位寄存器内64位内部状态产生线性变换;
所述非线性变换盒为4比特输入和4比特输出,共包含三种模式,在状态控制单元状态不同的情况下对4比特输入执行不同的非线性变换,对线性反馈移位寄存器的内部状态实现非线性变换;
所述密钥流提取单元包含密钥流提取函数,用于提取线性反馈移位寄存器的内部状态,在时钟信号的控制下,选取部分特殊位执行异或和与运算;
所述反馈值生成单元包括四个反馈值生成函数,在状态控制单元的控制下,根据线性反馈函数、非线性变换盒、密钥流提取单元和输入端口传入的数据产生反馈值,分别用于四个64位移位寄存器状态更新。
上述方案中,所述状态控制单元将Fountain整个加密流程分为:载入阶段、初始化阶段、处理关联数据阶段、处理明文阶段、结束阶段和验证标签输出阶段。
进一步的技术方案中,所述线性反馈移位寄存器分为两种状态,即载入状态和工作状态;
在状态控制单元的控制下,线性反馈移位寄存器复位后首先进入载入状态,即状态控制单元处于载入阶段,不需要考虑反馈值生成单元,而是以连续线性移位的方式将256位初始数据流载入4个独立的线性反馈移位寄存器内,即第一个线性反馈移位寄存器的最低位连接第二个线性反馈移位寄存器的最高位,第二个线性反馈移位寄存器的最低位连接第三个线性反馈移位寄存器的最高位,第三个线性反馈移位寄存器的最低位连接第四个线性反馈移位寄存器的最高位;
所述线性反馈移位寄存器加载初始数据流后进入工作状态,四个线性反馈移位寄存器在线性反馈函数的基础上异或当前轮密钥流提取单元的结果作为反馈值,分别存入线性反馈移位寄存器的第63位;四个线性反馈移位寄存器在工作状态下互相独立,不会将某个线性反馈移位寄存器的最低位输出给另一个线性反馈移位寄存器的最高位。
进一步的技术方案中,所述非线性变换盒执行非线性变换时,首先将4比特的输入数据(x0,x1,x2,x3)代入S盒,输出4比特数据(m0,m1,m2,m3);
然后将S盒的输出数据执行比特重组,定义一个操作符号||为拼接两个二进制位,结果为在GF(22)上的元素,重组输出定义为在GF(22)上的列向量R,因此对于三种模式,重组函数定义为K模式、A模式和T模式,重组输出的列向量R在三种不同模式下生成如下:
进一步的技术方案中,所述A模式仅用于处理关联数据阶段的第一个子阶段,T模式仅用于结束阶段,其他阶段均使用K模式。
进一步的技术方案中,所述反馈值生成单元反馈值li,(i=0,1,2,3)在不同阶段的反馈值生成函数不同,分别用于4个64位线性反馈移位寄存器内部状态更新;
所述初始化阶段的反馈值生成函数如下:
所述处理关联数据阶段包括两个子阶段,其中第一个子阶段反馈值生成函数如下:
第二个子阶段与初始化阶段的反馈值生成函数相同;
所述处理明文阶段的反馈值生成函数如下:
所述结束阶段的反馈值生成函数如下:
所述验证标签输出阶段的反馈值生成函数如下:
一种Fountain轻量级加密算法的实现方法,采用上述的一种Fountain轻量级加密算法的实现装置,包括面积优化方案和并行方案;
所述面积优化方案以节约片上资源为目的,在FPGA中引入移位寄存器查找表SRL,采用4个64位线性反馈移位寄存器,每个线性反馈移位寄存器分别包含一个线性反馈函数,单周期输出1比特数据;
所述并行方案以提高吞吐率为目标,所有线性反馈移位寄存器均以寄存器的形式实现,以降低最大路径延时,所述并行方案能够允许密码硬件结构在处理明文阶段一个周期内完成多轮状态更新,即一周期输出多位密钥流,但其他阶段均保持一周期完成一轮状态更新,并行方案含有一个参数w,表示并行宽度,即需要将线性反馈移位寄存器中的线性反馈函数、密钥流提取单元和非线性变换盒复制w次,单周期输出w比特数据。
一种Fountain轻量级加密算法的应用,采用上述的实现方法,该加密算法可用于Fountain流密码的生成,Fountain型密钥流生成器的生成、Fountain型MAC函数的生成,所述Fountain流密码支持关联数据加密验证,完成加密后会输出64bit或128bit的验证标签,用于带验证的加密应用;Fountain型密钥流生成器仅输出密钥流,不输出验证标签,用于无需验证的加密应用;Fountain型MAC函数不用于加密数据,而产生关联数据的消息认证码。
上述方案中,所述并行方案不适用于Fountain型MAC函数。
通过上述技术方案,本发明提供的Fountain轻量级密码支持密钥长度128位、支持关联数据加密验证(AEAD),Fountain轻量级密码的内部状态远少于AES、SM系列等标准密码,设计紧凑;Fountain的线性反馈设计允许并行化实现,大大提升算法的数据吞吐率。作为轻量级密码,Fountain的密钥长度高于Grain、Trivium等轻量级密码,具有高安全性能抵抗猜测确定攻击、抗差分攻击和滑动攻击等。
本发明提出的Fountain加密算法的实现装置及方法具有功耗低、资源占用小、延时低的特点,能满足资源紧张的物联网终端设备数据加密需求。
同时,本发明根据应用场景的不同,在Fountain流密码基础上,分别设计了Fountain型密钥流生成器、Fountain型MAC函数应用方法,在对高吞吐率有较大需求的场景,本发明能实现加密算法的高频率执行。Fountain型密钥流生成器、Fountain型MAC函数均为Fountain流密码的部分简化版,减少了在特定应用上的不必要的功能,在计算资源有限的情况下,本发明实现了Fountain加密算法的资源占用的最小化。
在Xilinx 7系列FPGA上(Virtex-7)
面积优化方案总共消耗28个Slices,运行频率为320MHz;其中Fountain型密钥流生成器应用方法面积更小,为16个Slices,最高频率达到420MHz。
以并行宽度w为32的并行方案为例,面积占用为156Slices,吞吐率达到8.7Gbps,其中Fountain型密钥流生成器应用方法占用面积为138Slices,吞吐率达到12.4Gbps。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的一种Fountain轻量级加密算法的实现装置组成示意图;
图2为Fountain流密码生成过程流程图;
图3为Fountain型密钥生成器生成过程流程图;
图4为Fountain型MAC函数生成过程流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种Fountain轻量级加密算法的实现装置,如图1所示,包括状态控制单元、线性反馈移位寄存器(LFSR)、非线性变换盒(S-Box)、密钥流提取单元和反馈值生成单元。
一、状态控制单元
状态控制单元用于调整和控制装置状态,根据装置当前所处阶段,控制输入和输出使能,控制密钥流产生。状态控制单元将Fountain整个加密流程分为:载入阶段、初始化阶段、处理关联数据阶段、处理明文阶段、结束阶段和验证标签输出阶段。
状态控制单元以有限状态机(FSM)的形式实现,状态控制单元将有限状态机的值输出至状态输出端口STE。
装置接收到复位信号RST后,状态控制单元置为首个状态,也就是载入阶段,表示整个装置复位。此时不需要将线性反馈移位寄存器复位。
二、线性反馈移位寄存器(LFSR)
线性反馈移位寄存器包括四个独立的64位移位寄存器(四个独立的LFSR分别命名为αi、βi、γi、δi,i=0,1,…,63,分别表示四个线性反馈移位寄存器的第0位到第63位)每位的状态为0或1,每个独立的64位移位寄存器同时包括一个或w个线性反馈函数,用于对当前线性反馈移位寄存器内64位内部状态产生线性变换。
对于每个LFSR表示伽罗瓦域GF(2^64-1)的m序列,线性反馈移位寄存器m序列线性反馈函数为:
LFSR0:1+x12+x25+x31+x64
LFSR1:1+x9+x19+x31+x64
LFSR2:1+x14+x20+x31+x64
LFSR3:1+x6+x10+x31+x64
因此,四个线性反馈函数fi(x),i=0,1,2,3,分别如下,其中x表示四组LFSR,共计256位内部状态,即四个LFSR内的值:
LFSR在时钟信号的控制下,每个时钟周期均移位一次,即完成一轮状态更新,第0位载入原第1位状态,第1位载入原第2位状态,以此类推,第62位载入原第63位状态,第63位载入反馈值。
LFSR单元分为两种状态,即载入状态和工作状态。
在状态控制单元的控制下,LFSR复位后首先进入载入状态,即状态控制单元处于载入阶段,此时不需要考虑反馈值生成单元,而是以连续线性移位的方式将256位初始数据流载入4个独立的LFSR内,即第一个LFSR的最低位连接第二个LFSR的最高位,第二个LFSR的最低位连接第三个LFSR的最高位,第三个线性反馈移位寄存器的最低位连接第四个线性反馈移位寄存器的最高位。
256位初始数据流,由16字节密钥、12字节初始向量和4字节常数组成,加载结束后每个寄存器内的值最终满足:
α[63:0]=(IV3,Key3,IV2,Key2,IV2,Key1,IV0,Key0)
β[63:0]=(IV7,Key7,IV6,Key6,IV5,Key5,IV4,Key4)
γ[63:0]=(IV11,Key11,IV10,Key10,IV9,Key9,IV8,Key8)
δ[63:0]=(Cst3,Cst2,Cst1,Key15,Key14,Cst0,Key13,Key12)
其中,Keyi(i=0,1,…,15)表示第i字节密钥,IVi(i=0,1,…,11)表示第i字节初始向量,Csti表示4个字节的常数:
Cst0=0xff,Cst1=0x3f,Cst2=0x00,Cst3=0x80
LFSR加载初始数据流后进入工作状态,四个LFSR在线性反馈函数的基础上异或当前轮密钥流提取单元的结果作为反馈值li,i=0,1,2,3分别存入LFSR的第63位(α63,β63,γ63,δ63)。
四个LFSR在工作状态下互相独立,不会将某个LFSR的最低位输出给另一个LFSR的最高位。
三、非线性变换盒(S-Box)
非线性变换盒SR(x0,x1,x2,x3)为4比特输入和4比特输出,共包含三种模式,在状态控制单元状态不同的情况下对4比特输入执行不同的非线性变换,对线性反馈移位寄存器的内部状态实现非线性变换。
非线性变化盒4个输入位分别为α1,β1,γ1,δ1,非线性变换盒在任意时钟周期t时4比特输入(x0,x1,x2,x3)分别为(α1,β1,γ1,δ1)。
非线性变换盒执行非线性变换时,首先将4比特的输入数据(x0,x1,x2,x3)代入S盒,输出4比特数据(m0,m1,m2,m3);
然后将S盒的输出数据执行比特重组,定义一个操作符号||为拼接两个二进制位,结果为在GF(22)上的元素,例如(1||1)=3,(1||0)=2。重组输出定义为在GF(22)上的列向量R,因此对于三种模式,重组函数定义为K模式、A模式和T模式,重组输出的列向量R在三种不同模式下生成如下:
其中,A模式仅用于处理关联数据阶段的第一个子阶段,T模式仅用于结束阶段,其他阶段均使用K模式。
四、密钥流提取单元
密钥流提取单元包含密钥流提取函数,用于提取线性反馈移位寄存器的内部状态,在时钟信号的控制下,选取部分特殊位执行异或和与运算;其中提取LFSR单元内部状态的函数符合:
输出端口OUT与密钥流提取单元h(x)相连。
五、反馈值生成单元
反馈值生成单元包括四个反馈值生成函数,在状态控制单元的控制下,根据线性反馈函数、非线性变换盒、密钥流提取单元和输入端口传入的数据产生反馈值,分别用于四个64位移位寄存器状态更新。
反馈值生成单元反馈值li,(i=0,1,2,3)在不同阶段的反馈值生成函数不同,分别用于4个64位线性反馈移位寄存器内部状态更新。
载入阶段内,状态控制单元控制数据选择器,使得每个LFSR的最高位载入前一个LFSR的最低位,即每个LFSR的最高位与前一个LFSR的最低位相连。随后,剩余所有阶段内,状态控制单元控制数据选择器,使每个LFSR的最高位载入反馈值Li,即每个LFSR的最高位与反馈值生成单元相连。
初始化阶段的反馈值生成函数如下:
处理关联数据阶段包括两个子阶段,其中第一个子阶段反馈值生成函数如下:
第二个子阶段与初始化阶段的反馈值生成函数相同;
处理明文阶段的反馈值生成函数如下:
结束阶段的反馈值生成函数如下:
验证标签输出阶段的反馈值生成函数如下:
一种Fountain轻量级加密算法的实现方法,采用上述的一种Fountain轻量级加密算法的实现装置,包括面积优化方案和并行方案。
1、面积优化方案
面积优化方案以节约片上资源为目的,在FPGA中引入移位寄存器查找表SRL,采用4个64位线性反馈移位寄存器,每个线性反馈移位寄存器分别包含一个线性反馈函数,单周期输出1比特数据;
移位寄存器查找表SRL其本质是一种特殊综合后的查找表,具有一个参数len,SRLlen表示最多能够替代长度为len的移位寄存器,len由FPGA器件型号决定,常见值为16或32。因此利用一个查找表可以节约最多16/32个寄存器。在面积优化方案中,将每个LFSR的高32位使用SRL实现,以SRL32为例,实现共计256位内部状态的四组LFSR共需要4个查找表,128个寄存器,面积远远小于不使用SRL优化的256个寄存器。
寄存器、查找表均为FPGA内部资源。移位寄存器查找表(SRL)是一种特殊综合后的查找表。通常,我们在实现线性反馈移位寄存器时会使用等长的寄存器。而引入SRL即可替代若干个寄存器。
在朴素方法中,每个64位LFSR使用64个寄存器。
在面积优化方案中,每个64位的LFSR的高32位用使用一个SRL32代替,低32位保持使用32个寄存器。实现共计256位内部状态的四组LFSR共需要4个查找表,128个寄存器,面积远远小于不使用SRL优化的256个寄存器。
2、并行方案
并行方案以提高吞吐率为目标,所有线性反馈移位寄存器均以寄存器的形式实现,以降低最大路径延时,并行方案能够允许密码硬件结构在处理明文阶段一个周期内完成多轮状态更新,即一周期输出多位密钥流,但其他阶段均保持一周期完成一轮状态更新,并行方案含有一个参数w,表示并行宽度,即需要将线性反馈移位寄存器中的线性反馈函数、密钥流提取单元和非线性变换盒复制w次,单周期输出w比特数据。
…………
若原索引i加上偏移量后大于或等于64,用尚未存入LFSR,但即将在下个周期载入的内部状态代替,即线性反馈函数的结果:
对于并行方案,在处理明文阶段每周期完成w轮状态更新,即每周期:
状态控制单元基于有限状态机实现,将上述载入阶段拆分为载入密钥状态、载入初始向量状态和载入常数状态3种状态,将处理关联数据阶段拆分为载入关联数据状态和移位阶段2种状态,再加入空闲状态(IDLE)和结束状态(DONE),因此共包括11种状态,以独热码的形式共占用11个触发器资源。
非线性变换盒根据状态控制单元状态寄存器的值共有3种不同的变换模式,因此共有3*16个变换对,如在FPGA中以分布式ROM的形式实现,共占用3个4输入查找表。
一种Fountain轻量级加密算法的应用,采用上述的实现方法,该加密算法可用于Fountain流密码的生成,Fountain型密钥流生成器的生成、Fountain型MAC函数的生成,Fountain流密码支持关联数据加密验证,完成加密后会输出64bit或128bit的验证标签,用于带验证的加密应用;Fountain型密钥流生成器仅输出密钥流,不输出验证标签,用于无需验证的加密应用;Fountain型MAC函数不用于加密数据,而产生关联数据的消息认证码。
并行方案不适用于Fountain型MAC函数。
如图2所示,Fountain流密码的生成过程,装置依次经过载入阶段、初始化阶段、处理关联数据阶段、处理明文阶段、结束阶段、生成验证标签阶段。
1、复位后,装置清空加密结束标志位,状态控制单元禁用非线性变换盒,状态控制单元进入载入阶段。控制每个LFSR最高位为前一个LFSR的最低位,形成一个256位的连续线性移位寄存器。通过装置的输入端口IN载入数据,四个64位的线性移位寄存器分别表示为α、β、γ、δ,执行256次移位,共载入256比特数据,这些数据包括密钥(Key)、初始向量(IV),最终满足:
α[63:0]=(IV3,Key3,IV2,Key2,IV2,Key1,IV0,Key0)
β[63:0]=(IV7,Key7,IV6,Key6,IV5,Key5,IV4,Key4)
γ[63:0]=(IV11,Key11,IV10,Key10,IV9,Key9,IV8,Key8)
δ[63:0]=(Cst3,Cst2,Cst1,Key15,Key14,Cst0,Key13,Key12)
2、状态控制单元进入初始化阶段,控制非线性变换盒为K模式,共执行384轮,每轮需要一个时钟周期。
3、随后状态控制单元进入处理关联数据阶段子阶段一,将非线性变换盒置为A模式,执行轮数与关联数据长度相同。此阶段内输入端口IN为关联数据。
4、再执行处理关联数据阶段子阶段二,非线性变换盒置为K模式,保持64个周期。
5、结束处理关联数据阶段时,对第二个LFSR的第0位异或1,用于区分阶段域。此时装置进入加密工作模式。装置在工作模式下,除结束阶段,其余阶段均有数据输出。
6、进入工作模式后,状态控制单元处于处理明文阶段,输入端口IN为明文,输出端口OUT作为输出的密钥流,用于异或加密。非线性变换盒为K模式,执行次数与明文数据长度相同。当装置为并行方案时,每周期执行w轮状态更新,即处理w比特明文,输出w比特密钥流,其余阶段下仍保持串行处理,即一周期完成1轮状态更新。
7、在处理完所有明文后,对第四个LFSR的第1位异或1,用于区分阶段域。
8、此时装置的状态控制单元进入结束阶段,执行386轮与初始化第2步相同的操作,但非线性变换盒处于T模式。
9、随后状态控制单元进入生成验证标签阶段,根据需求,执行64轮或128轮迭代,非线性变换盒处于K模式,输出端口OUT输出数据即验证标签。
10、生成验证标签后,装置将结束标志位置1,完成此次加密。
如图3所示,Fountain型密钥生成器的生成过程,装置依次经过载入阶段、初始化阶段、处理明文阶段。
1、复位后,装置清空加密结束标志位,状态控制单元禁用非线性变换盒,与图2相同,状态控制单元依次完成载入阶段、初始化阶段,
2、在处理关联数据阶段,由于无关联数据输入,直接执行第二个子阶段,也就是执行状态更新64轮,非线性变换盒置为K模式,执行64个周期。
3、进入工作模式后,状态控制单元处于处理明文阶段,输入端口IN为明文,输出端口OUT作为输出的密钥流,用于异或加密。非线性变换盒为K模式,执行次数与明文数据长度相同。当装置为并行方案时,每周期执行w轮状态更新,即处理w比特明文,输出w比特密钥流。
4、在处理完所有明文后,直接将结束标志位置1,完成此次加密。
如图4所示,Fountain型MAC函数的生成过程,装置依次经过载入阶段、初始化阶段、处理关联数据阶段、结束阶段、生成验证标签阶段。
1、复位后,装置清空加密结束标志位,状态控制单元禁用非线性变换盒,与图2相同,状态控制单元依次完成载入阶段、初始化阶段、处理相关数据阶段,随后进入工作模式。
2、跳过处理明文阶段,依次执行如图2所述的结束阶段、生成验证标签阶段。
3、生成验证标签后,装置将结束标志位置1,完成此次消息验证码生成。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (9)
1.一种Fountain轻量级加密算法的实现装置,其特征在于,包括状态控制单元、线性反馈移位寄存器、非线性变换盒、密钥流提取单元和反馈值生成单元;
所述状态控制单元用于调整和控制装置状态,根据装置当前所处阶段,控制输入和输出使能,控制密钥流产生;
所述线性反馈移位寄存器包括四个独立的64位移位寄存器,每位的状态为0或1,每个独立的64位移位寄存器同时包括一个或多个线性反馈函数,用于对当前线性反馈移位寄存器内64位内部状态产生线性变换;
所述非线性变换盒为4比特输入和4比特输出,共包含三种模式,在状态控制单元状态不同的情况下对4比特输入执行不同的非线性变换,对线性反馈移位寄存器的内部状态实现非线性变换;
所述密钥流提取单元包含密钥流提取函数,用于提取线性反馈移位寄存器的内部状态,在时钟信号的控制下,选取部分特殊位执行异或和与运算;
所述反馈值生成单元包括四个反馈值生成函数,在状态控制单元的控制下,根据线性反馈函数、非线性变换盒、密钥流提取单元和输入端口传入的数据产生反馈值,分别用于四个64位移位寄存器状态更新。
2.根据权利要求1所述的一种Fountain轻量级加密算法的实现装置,其特征在于,所述状态控制单元将Fountain整个加密流程分为:载入阶段、初始化阶段、处理关联数据阶段、处理明文阶段、结束阶段和验证标签输出阶段。
3.根据权利要求2所述的一种Fountain轻量级加密算法的实现装置,其特征在于,所述线性反馈移位寄存器分为两种状态:载入状态和工作状态;
在状态控制单元的控制下,线性反馈移位寄存器复位后首先进入载入状态,状态控制单元处于载入阶段,不需要考虑反馈值生成单元,而是以连续线性移位的方式将256位初始数据流载入4个独立的线性反馈移位寄存器内,第一个线性反馈移位寄存器的最低位连接第二个线性反馈移位寄存器的最高位,第二个线性反馈移位寄存器的最低位连接第三个线性反馈移位寄存器的最高位,第三个线性反馈移位寄存器的最低位连接第四个线性反馈移位寄存器的最高位;
所述线性反馈移位寄存器加载初始数据流后进入工作状态,四个线性反馈移位寄存器在线性反馈函数的基础上异或当前轮密钥流提取单元的结果作为反馈值,分别存入线性反馈移位寄存器的第63位;四个线性反馈移位寄存器在工作状态下互相独立,不会将某个线性反馈移位寄存器的最低位输出给另一个线性反馈移位寄存器的最高位。
4.根据权利要求2所述的一种Fountain轻量级加密算法的实现装置,其特征在于,所述非线性变换盒执行非线性变换时,首先将4比特的输入数据(x0,x1,x2,x3)代入S盒,输出4比特数据(m0,m1,m2,m3);
然后将S盒的输出数据执行比特重组,定义一个操作符号||为拼接两个二进制位,拼接结果为在GF(22)上的元素,重组输出定义为在GF(22)上的列向量R,因此对于三种模式,重组函数定义为K模式、A模式和T模式,重组输出的列向量R在三种不同模式下生成如下:
5.根据权利要求4所述的一种Fountain轻量级加密算法的实现装置,其特征在于,所述A模式仅用于处理关联数据阶段的第一个子阶段,T模式仅用于结束阶段,其他阶段均使用K模式。
6.根据权利要求4所述的一种Fountain轻量级加密算法的实现装置,其特征在于,所述反馈值生成单元反馈值li在不同阶段的反馈值生成函数不同,分别用于4个64位线性反馈移位寄存器内部状态更新,其中,i=0,1,2,3;
所述初始化阶段的反馈值生成函数如下:
所述处理关联数据阶段包括两个子阶段,其中第一个子阶段反馈值生成函数如下:
第二个子阶段与初始化阶段的反馈值生成函数相同;
所述处理明文阶段的反馈值生成函数如下:
所述结束阶段的反馈值生成函数如下:
所述验证标签输出阶段的反馈值生成函数如下:
7.一种Fountain轻量级加密算法的实现方法,采用权利要求1-6任一项所述的一种Fountain轻量级加密算法的实现装置,其特征在于,包括面积优化方法和并行方法;
所述面积优化方法以节约片上资源为目的,在FPGA中引入移位寄存器查找表SRL,采用4个64位线性反馈移位寄存器,每个线性反馈移位寄存器分别包含一个线性反馈函数,单周期输出1比特数据;
所述并行方法以提高吞吐率为目标,所有线性反馈移位寄存器均以寄存器的形式实现,以降低最大路径延时,所述并行方法能够允许密码硬件结构在处理明文阶段一个周期内完成多轮状态更新,一周期输出多位密钥流,但其他阶段均保持一周期完成一轮状态更新,并行方法 含有一个参数w,表示并行宽度,需要将线性反馈移位寄存器中的线性反馈函数、密钥流提取单元和非线性变换盒复制w次,单周期输出w比特数据。
8.一种应用Fountain轻量级加密算法的方法,采用权利要求7所述的实现方法,其特征在于,该加密算法可用于Fountain流密码的生成,Fountain型密钥流生成器的生成、Fountain型MAC函数的生成,所述Fountain流密码支持关联数据加密验证,完成加密后会输出64bit或128bit的验证标签,用于带验证的加密应用;Fountain型密钥流生成器仅输出密钥流,不输出验证标签,用于无需验证的加密应用;Fountain型MAC函数不用于加密数据,而产生关联数据的消息认证码。
9.根据权利要求8所述的一种应用Fountain轻量级加密算法的方法,其特征在于,所述并行方法 不适用于Fountain型MAC函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216492.XA CN112398639B (zh) | 2020-11-04 | 2020-11-04 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011216492.XA CN112398639B (zh) | 2020-11-04 | 2020-11-04 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112398639A CN112398639A (zh) | 2021-02-23 |
CN112398639B true CN112398639B (zh) | 2022-02-22 |
Family
ID=74598768
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011216492.XA Active CN112398639B (zh) | 2020-11-04 | 2020-11-04 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112398639B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113612609B (zh) * | 2021-08-27 | 2022-05-27 | 山东大学 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
CN114553424B (zh) * | 2022-02-21 | 2024-03-15 | 南京航空航天大学 | Zuc-256流密码轻量级硬件系统 |
CN114615069B (zh) * | 2022-03-19 | 2022-11-04 | 山东大学 | 一种Quartet轻量级加密算法的实现装置及方法 |
CN115208553B (zh) * | 2022-07-15 | 2024-02-27 | 山东大学 | Triad轻量级流密码加密算法的芯片实现装置及方法 |
CN115037485B (zh) * | 2022-08-12 | 2022-11-08 | 北京智芯微电子科技有限公司 | 轻量级认证加密算法的实现方法、装置及设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360568A (zh) * | 2017-08-24 | 2017-11-17 | 西安交通大学 | 利用喷泉码实现对称加密保障无线数据安全传输的方法 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2011123575A1 (en) * | 2010-03-30 | 2011-10-06 | Engels Daniel W | Cryptographic processor with dynamic update of encryption state |
-
2020
- 2020-11-04 CN CN202011216492.XA patent/CN112398639B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107360568A (zh) * | 2017-08-24 | 2017-11-17 | 西安交通大学 | 利用喷泉码实现对称加密保障无线数据安全传输的方法 |
CN111431697A (zh) * | 2020-03-31 | 2020-07-17 | 衡阳师范学院 | 一种新型轻量级分组密码corl的实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112398639A (zh) | 2021-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112398639B (zh) | 一种Fountain轻量级加密算法的实现装置、方法及应用 | |
AU767323B2 (en) | Block encryption device using auxiliary conversion | |
US8787563B2 (en) | Data converter, data conversion method and program | |
JP4052480B2 (ja) | 疑似乱数発生方法、疑似乱数発生器、及び疑似乱数発生プログラム | |
JP6406350B2 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN108964872B (zh) | 一种基于aes的加密方法及装置 | |
KR20170067133A (ko) | 하드웨어 지원 빠른 의사 난수 생성 방법 및 시스템 | |
KR20050120460A (ko) | 정보 누출 공격을 방지하기 위한 갈로아 필드 상의 곱셈방법 및 장치, 역변환 장치 그리고 aes 바이트 치환연산장치 | |
JP2005215688A (ja) | S−box演算を用いるハードウェア暗号化/復号化装置及び、その方法 | |
WO2009031883A1 (en) | Encryption processor | |
JP2015191106A (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
WO2011123575A1 (en) | Cryptographic processor with dynamic update of encryption state | |
WO2015146430A1 (ja) | 暗号処理装置、および暗号処理方法、並びにプログラム | |
CN104219045A (zh) | Rc4 流密码生成器 | |
CN103701591A (zh) | 一种序列密码实现方法和密钥流生成方法及装置 | |
CN111478766A (zh) | 一种分组密码meg实现方法、装置及存储介质 | |
WO2007129197A1 (en) | Cryptographic apparatus and process | |
KR100411684B1 (ko) | 이진 데이터 블록의 암호 변환 방법 | |
CN110071927B (zh) | 一种信息加密方法、系统及相关组件 | |
JP2000075785A (ja) | 高速暗号処理回路および処理方法 | |
CN115208553B (zh) | Triad轻量级流密码加密算法的芯片实现装置及方法 | |
RU2140716C1 (ru) | Способ криптографического преобразования блоков цифровых данных | |
Nafl et al. | Fast lightweight encryption device based on LFSR technique for increasing the speed of LED performance | |
Rais et al. | VIRTEX‐5 FPGA IMPLEMENTATION OF ADVANCED ENCRYPTION STANDARD ALGORITHM | |
CN114422111B (zh) | 一种轻量级的sm4算法的硬件实现电路 |
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 | ||
CB03 | Change of inventor or designer information | ||
CB03 | Change of inventor or designer information |
Inventor after: Yang Gangqiang Inventor after: Shi Zhengyuan Inventor before: Yang Gangqiang |
|
GR01 | Patent grant | ||
GR01 | Patent grant |