CN114969848B - 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 - Google Patents
一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 Download PDFInfo
- Publication number
- CN114969848B CN114969848B CN202210528772.7A CN202210528772A CN114969848B CN 114969848 B CN114969848 B CN 114969848B CN 202210528772 A CN202210528772 A CN 202210528772A CN 114969848 B CN114969848 B CN 114969848B
- Authority
- CN
- China
- Prior art keywords
- shift register
- feedback shift
- bit
- key
- linear feedback
- 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
- 238000000034 method Methods 0.000 title claims abstract description 21
- 125000004122 cyclic group Chemical group 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 4
- 238000012886 linear function Methods 0.000 claims description 2
- 238000013461 design Methods 0.000 description 4
- 238000010586 diagram Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/72—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/30—Arrangements for executing machine instructions, e.g. instruction decode
- G06F9/30098—Register arrangements
- G06F9/3012—Organisation of register space, e.g. banked or distributed register file
- G06F9/30134—Register stacks; shift registers
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y04—INFORMATION OR COMMUNICATION TECHNOLOGIES HAVING AN IMPACT ON OTHER TECHNOLOGY AREAS
- Y04S—SYSTEMS INTEGRATING TECHNOLOGIES RELATED TO POWER NETWORK OPERATION, COMMUNICATION OR INFORMATION TECHNOLOGIES FOR IMPROVING THE ELECTRICAL POWER GENERATION, TRANSMISSION, DISTRIBUTION, MANAGEMENT OR USAGE, i.e. SMART GRIDS
- Y04S40/00—Systems for electrical power generation, transmission, distribution or end-user application management characterised by the use of communication or information technologies, or communication or information technology specific aspects supporting them
- Y04S40/20—Information technology specific aspects, e.g. CAD, simulation, modelling, system security
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Complex Calculations (AREA)
Abstract
本发明公开了一种Plantlet超轻量级加密算法的硬件实现装置及实现方法,该装置包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;其中,状态控制单元控制不同阶段线性反馈移位寄存器和非线性反馈移位寄存器的状态更新逻辑,密钥轮转函数将初始化密钥逐位输出参与状态更新;而线性反馈移位寄存器和非线性反馈移位寄存器的部分位则送入密钥流输出函数,供其生成密钥流。本发明所公开的硬件实现装置及实现方法可以降低Plantlet超轻量级序列密码的硬件资源占用,最大程度提高其吞吐率。
Description
技术领域
本发明涉及加密算法技术领域,特别涉及一种Plantlet超轻量级加密算法的硬件实现装置及实现方法。
背景技术
轻量级密码凭借着高安全性、设计紧凑等优点成为近年来密码学的研究热点之一,备受物联网安全应用领域关注。传统的轻量级序列密码,比如Grain、Trivium和WG系列,密钥长度较短,内部状态极为紧凑,因此软硬件实现效率高。然而,这种仅有80位密钥长度的序列密码极易被时间-内存-数据折中攻击(TMDTO)攻破。Sprout序列密码为超轻量级密码设计提供了新的思路,加入密钥轮转函数RKF使得密钥参与密码每轮内部状态更新,从而有效提升安全性。
在Sprout序列密码设计思想的影响下,Plantlet超轻量级密码于2017年被提出。该密码的密钥长度仅为80位,明显小于其他序列密码;其密钥轮转函数的结构也更加精简,摒弃了Sprout序列密码中LSFR对RKF的控制及RKF输出的选择模式,使得密钥的所有比特位都可以参与到状态内部更新中,保证了算法的轻量级和安全性。
Plantlet作为超轻量级密码,有着比传统密码更加紧凑的内部状态,在微型化终端上有着较强应用前景,但目前尚无面向多场景的Plantlet硬件实现策略。为了能在对面积、成本和实时性要求高的终端上实现,应该设计高效的Plantlet硬件实现装置及方法。
发明内容
为解决上述技术问题,本发明提供了一种Plantlet超轻量级加密算法的硬件实现装置及实现方法,以达到降低Plantlet超轻量级序列密码的硬件资源占用,最大程度提高其吞吐率的目的。
为达到上述目的,本发明的技术方案如下:
一种Plantlet超轻量级加密算法的硬件实现装置,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;
所述密钥轮转函数为一个80-bit的循环反馈移位寄存器,密钥轮转函数在载入密钥阶段通过端口IN1逐位读入初始化密钥,经过80轮后赋予循环反馈移位寄存器初值,在初始化阶段和生成密钥流阶段,密钥轮转函数逐位输出循环反馈移位寄存器最低位的值,参与非线性反馈移位寄存器的更新,同时将此值送入最高位,形成一个循环;
所述非线性反馈移位寄存器共40位,所述线性反馈移位寄存器共61位,所述非线性反馈移位寄存器和线性反馈移位寄存器分别根据非线性反馈函数g(*)和线性反馈函数f(*),随着时钟每周期更新内部状态,且所述非线性反馈移位寄存器与线性反馈移位寄存器的部分位作为密钥流输出函数的自变量,用于生成密钥流;
所述密钥流输出函数每轮提取非线性反馈移位寄存器与线性反馈移位寄存器部分位的值,生成密钥流zt,该值在初始化阶段参与线性反馈移位寄存器的更新,在生成密钥流阶段则用于加密;
所述状态控制单元用于指示装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器进行状态更新;所述状态控制单元包括一个状态机与一个9比特计数器c′,所述状态机将算法运行分为五个阶段,分别是空闲状态阶段、载入密钥阶段、载入初始向量阶段、初始化阶段和密钥流生成阶段;所述9比特计数器c′用于计算运行的轮数,控制状态切换,计数值的一部分将参与非线性反馈移位寄存器的更新。
上述方案中,所述密钥轮转函数的输出结果kt表达为:
kt=k(tmod80)
其中,t表示第几轮,mod表示取模。
上述方案中,所述非线性反馈函数g(*)的自变量为非线性反馈移位寄存器中的特定位,含有与运算和异或运算,具体逻辑如下:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;表示异或运算。
上述方案中,所述线性反馈函数f(*)的自变量为线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数,具体逻辑如下:
其中,li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
上述方案中,所述密钥流输出函数输出的密钥流zt为:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
上述方案中,所述状态机使用五个独热码编码表示算法运行的五个阶段,占用5比特;9比特计数器c′被分为两部分,低7位计数范围为0到79,高2位计数范围为0到3;算法每运行一轮,计数器低7位的值增加1;当计数器低7位计数满79后产生1次进位,此时计数器高2位增加1,低7位复位为0重新开始计数。
一种Plantlet超轻量级加密算法的实现方法,包括如下过程:
(1)空闲状态阶段:装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器;
(2)载入密钥阶段:密钥轮转函数执行80轮载入初始化密钥,80轮后,密钥轮转函数中已存储有初始化密钥,并产生单比特密钥kt用于更新非线性反馈移位寄存器;
(3)载入初始向量阶段:线性反馈移位寄存器和非线性反馈移位寄存器首尾相连,形成101位的移位寄存器,共执行101轮从外部载入初始化向量;
(4)初始化阶段:状态控制单元进入初始化阶段,持续320轮,密钥轮转函数开始逐位产生单比特密钥kt,密钥流输出函数根据线性反馈移位寄存器和非线性反馈移位寄存器生成密钥流zt,参与线性反馈移位寄存器值的更新;在状态控制单元的控制下,密钥流zt与线性反馈函数f(*)输出异或反馈至线性反馈移位寄存器的最高位,而非线性反馈函数g(*)、状态控制单元的9比特计数器c′输出、密钥轮转函数输出kt及线性反馈移位寄存器最低位异或后反馈至非线性反馈移位寄存器的最高位;
(5)密钥流生成阶段:状态控制单元进入密钥流生成阶段后,将持续停留在此阶段直到再次收到复位信号,状态控制单元控制密钥流输出函数及密钥轮转函数不参与内部状态更新。
上述方案中,在载入初始向量阶段,非线性反馈移位寄存器载入90位初始化向量的低40位,线性反馈移位寄存器的低50位载入90位初始化向量的第40位到第89位,线性反馈移位寄存器的第59位载入0,其余位载入1,持续101轮结束。
上述方案中,在初始化阶段,线性反馈移位寄存器根据线性反馈函数f(*)及密钥流输出函数输出的密钥流zt的值进行更新;具体为,将线性反馈移位寄存器的第60位持续置为1,第59位按照如下逻辑更新:
线性反馈移位寄存器的第58位至第0位按照如下逻辑更新:
li=li+1,0≤i≤58
其中,li表示线性反馈移位寄存器中第i位的值,li+1表示与该位相邻的更高1位的值;
非线性反馈移位寄存器则根据非线性反馈函数g(*)及密钥轮转函数输出的kt,线性反馈移位寄存器最低位l0以及计数器输出的第4位c4做异或运算进行更新,具体逻辑如下:
非线性反馈移位寄存器的第39位按照如下逻辑更新:
非线性反馈移位寄存器的其余位按照如下逻辑更新:
ni=ni+1,0≤i≤38。
其中,ni表示非线性反馈移位寄存器中第i位的值,ni+1表示与该位相邻的更高1位的值。
进一步的技术方案中,当装置处于密钥流生成阶段时,按照与初始化阶段完全相同的规则更新非线性反馈移位寄存器,而线性反馈移位寄存器更新逻辑如下:
线性反馈移位寄存器的第60位按照如下逻辑更新:
线性反馈移位寄存器的其余位按照如下逻辑更新:
li=li+1,0≤i≤59
此时硬件装置将保持产生密钥流的状态,直到复位信号有效才会重新进入空闲状态阶段。
通过上述技术方案,本发明提供的一种Plantlet超轻量级加密算法的硬件实现装置及实现方法具有如下有益效果:
本发明通过移位索引法来实现密钥轮转函数。移位索引法将80位的初始化密钥按照从高位到低位的顺序装入循环反馈移位寄存器中,每轮取出循环反馈移位寄存器最低位的值作为密钥轮转函数的输出,同时将其送入循环反馈移位寄存器的最高位。这样加密装置不仅可以按照轮数顺序获得密钥值,还可以将该值永久存储在循环移位寄存器中,有效减少了由直接索引而增加的门电路及相应逻辑,进而降低了硬件面积和功耗。
本发明的硬件实现装置及方法,具有资源占用少、吞吐率高的特点,既能满足物联网紧凑终端安全需求,也能满足边缘传感网络高速数据传输需求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例所公开的一种Plantlet超轻量级加密算法的硬件实现装置结构示意图;
图2为密钥轮转函数结构示意图;
图3为Plantlet状态机示意图;
图4为Plantlet超轻量级加密算法的实现方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
本发明提供了一种Plantlet超轻量级加密算法的硬件实现装置,如图1所示,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元。其中,状态控制单元控制不同阶段线性反馈移位寄存器和非线性反馈移位寄存器的状态更新逻辑,密钥轮转函数将初始化密钥逐位输出参与状态更新;而线性反馈移位寄存器和非线性反馈移位寄存器的部分位则送入密钥流输出函数,供其生成密钥流。
Plantlet超轻量级加密算法为一个伪随机密钥流生成器,输入数据包括80位密钥key、90位初始向量iv,输出数据为最长230位的伪随机密钥流zt。
一、密钥轮转函数
如图2所示,密钥轮转函数为一个80-bit的循环反馈移位寄存器,密钥轮转函数在载入密钥阶段通过端口IN1逐位读入初始化密钥,循环反馈移位寄存器的最高位载入读入值,其余位载入相邻高位的值(如第2位载入第3位的值,第50位载入第51位的值);经过80轮后赋予循环反馈移位寄存器初值,在初始化阶段和生成密钥流阶段,密钥轮转函数逐位输出循环反馈移位寄存器最低位的值作为初始化密钥,并将此值同时送入最高位,形成一个循环。
密钥轮转函数的输出结果kt表达为:
kt=k(tmod80)
其中,t表示第几轮,mod表示取模。如当算法进行到第5轮时,5mod 80=5,密钥轮转函数将输出初始化密钥的第5位;当算法进行到第88轮时,88mod 50=38,密钥轮转函数将输出初始化密钥的第38位,以此类推。
二、非线性反馈移位寄存器和线性反馈移位寄存器
非线性反馈移位寄存器和线性反馈移位寄存器存储有Plantlet的内部状态,分别包含一个非线性反馈函数g(*)和一个线性反馈函数f(*)。根据这两个函数,两个反馈移位寄存器随着时钟每周期更新内部状态。线性反馈移位寄存器与非线性反馈移位寄存器的部分位作为密钥流输出函数的自变量,用于输出密钥流zt。
非线性反馈移位寄存器共40位,其每一位的值记作ni,i=0,1,...,39。非线性反馈函数g(*)的自变量为非线性反馈移位寄存器中的特定位,含有与运算和异或运算,具体逻辑如下:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;表示异或运算。
线性反馈移位寄存器共61位,其每一位记作li,i=0,1,...,60。线性反馈函数f(*)的自变量为线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数,具体逻辑如下:
其中,li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
三、密钥流输出函数
密钥流输出函数每轮提取非线性反馈移位寄存器与线性反馈移位寄存器部分位的值,生成密钥流zt,该值在初始化阶段参与线性反馈移位寄存器的更新,在生成密钥流阶段则用于加密;
具体的,密钥流输出函数输出的密钥流zt为:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
四、状态控制单元
状态控制单元用于指示装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器进行状态更新。
状态控制单元包括一个状态机与一个9比特计数器c′。
状态机将算法运行分为五个阶段,分别是空闲状态阶段、载入密钥阶段、载入初始向量阶段、初始化阶段和密钥流生成阶段。状态机使用五个独热码编码表示算法运行的五个阶段,占用5比特;如空闲状态IDLE表示为00001,载入密钥LD_KEY表示为00010,载入初始化向量LD_IV表示为00100等,并根据计数器计数值进行状态转换,如图3所示。
9比特计数器c′用于计算运行的轮数,控制状态切换,计数值的一部分将参与非线性反馈移位寄存器的更新。
9比特计数器c′被分为两部分,低7位计数范围为0到79,高2位计数范围为0到3;算法每运行一轮,计数器低7位的值增加1;当计数器低7位计数满79后产生1次进位,此时计数器高2位增加1,低7位复位为0重新开始计数。
状态机是通过计数器控制状态转换的。装置复位后进入空闲状态IDLE,在下一个时钟到达时进入载入密钥阶段(LD_KEY),计数器对装置运行的轮数进行计数。若计数器计数值不足79,表明该阶段尚未结束,状态机将持续停留在这一状态;而当计数器计数满79时,载入密钥阶段结束,状态机控制装置进入载入向量阶段(LD_IV),计数器清零并重新计数直至计满100,载入向量阶段结束,状态机控制装置进入初始化阶段(INIT),计数器清零并重新计数直至计满319,初始化阶段结束,装置进入最终的生成密钥流阶段(PROC),此时若无复位信号,则装置将始终停留在这一阶段,不断产生密钥流,直至接收到复位信号,装置恢复空闲,如此循环。
一种Plantlet超轻量级加密算法的实现方法,如图4所示,包括如下过程:
(1)空闲状态阶段:装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器。
(2)载入密钥阶段:密钥轮转函数执行80轮载入初始化密钥,80轮后,密钥轮转函数中已存储有初始化密钥,并产生单比特密钥kt用于更新非线性反馈移位寄存器。
(3)载入初始向量阶段:线性反馈移位寄存器和非线性反馈移位寄存器首尾相连,形成101位的移位寄存器,共执行101轮通过IN2端口从外部载入初始化向量。101轮后,两个反馈移位寄存器的内部状态为:
n[0:39]=IV[0:39]
l[0:60]={key[40:89],1111111101}
在载入初始向量阶段,非线性反馈移位寄存器载入90位初始化向量的低40位,线性反馈移位寄存器的低50位载入90位初始化向量的第40位到第89位,线性反馈移位寄存器的第59位载入0,其余位载入1,持续101轮结束。
(4)初始化阶段:状态控制单元进入初始化阶段,持续320轮,密钥轮转函数开始逐位产生单比特密钥kt,密钥流输出函数根据线性反馈移位寄存器和非线性反馈移位寄存器生成密钥流zt,参与线性反馈移位寄存器值的更新,但此时的密钥流不作为最终的密钥输出;在状态控制单元的控制下,密钥流zt与线性反馈函数f(*)输出异或反馈至线性反馈移位寄存器的最高位,而非线性反馈函数g(*)、状态控制单元的9比特计数器c′输出、密钥轮转函数输出kt及线性反馈移位寄存器最低位异或后反馈至非线性反馈移位寄存器的最高位。
在初始化阶段,线性反馈移位寄存器根据线性反馈函数f(*)及密钥流输出函数输出的密钥流zt的值进行更新;具体为,将线性反馈移位寄存器的第60位持续置为1,第59位按照如下逻辑更新:
线性反馈移位寄存器的第58位至第0位按照如下逻辑更新:
li=li+1,0≤i≤58
其中,li表示线性反馈移位寄存器中第i位的值,li+1表示与该位相邻的更高1位的值;
非线性反馈移位寄存器则根据非线性反馈函数g(*)及密钥轮转函数输出的kt,线性反馈移位寄存器最低位l0以及计数器输出的第4位c4做异或运算进行更新,具体逻辑如下:
非线性反馈移位寄存器的第39位按照如下逻辑更新:
非线性反馈移位寄存器的其余位按照如下逻辑更新:
ni=ni+1,0≤i≤38。
其中,ni表示非线性反馈移位寄存器中第i位的值,ni+1表示与该位相邻的更高1位的值。
(5)密钥流生成阶段:状态控制单元进入密钥流生成阶段,持续此阶段直到再次收到复位信号,状态控制单元控制密钥流输出函数及密钥轮转函数不参与内部状态更新。
当装置处于密钥流生成阶段时,按照与初始化阶段完全相同的规则更新非线性反馈移位寄存器,而线性反馈移位寄存器更新逻辑如下:
线性反馈移位寄存器的第60位按照如下逻辑更新:
线性反馈移位寄存器的其余位按照如下逻辑更新:
li=li+1,0≤i≤59
此时硬件装置将保持产生密钥流的状态,直到复位信号有效才会重新进入空闲状态阶段。
Plantlet中的线性反馈移位寄存器一般直接通过寄存器实现,即分别使用61-bit和40-bit的寄存器实现线性反馈移位寄存器和非线性反馈移位寄存器,这种方法会导致FPGA中的寄存器资源消耗较大。而通过合理利用FPGA内部的移位寄存器查找表(SRL)资源,可将部分触发器用查找表代替,在实现相同位数移位寄存器功能的同时,减少了寄存器资源的消耗,进而降低整体的面积占用。但由于数据在SRL中进行移位操作时,除了最高位和最低位,其余中间的数据是不可见的,即中间位无法被直接提取。而Plantlet算法在加密过程中要提取线性反馈移位寄存器部分位的值,因此不能直接将线性反馈移位寄存器用SRL替代,而是将其61位拆分,去除在加密过程中参与逻辑运算的位,对剩下的连续位根据连续的长度逐个用SRL代替,并记录替代后的面积消耗。因为引入SRL后也有一定的资源消耗,所以需要通过比较引入SRL后增加的资源数目与其替代的触发器数目来权衡最合适的SRL个数,获得最佳的替代结果。根据测试结果,最合适的SRL个数为5个,此时设计消耗的寄存器和查找表数目比例最合理,占用的slice数目最少。
在Xilinx 7系列FPGA上(Virtex-7):
在面积优化方案下,使用SRL方法优化的Plantlet超轻量级加密算法硬件实现装置仅占用22个Slices,运行频率为340.72MHz,吞吐率可达340.72Mbps。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
Claims (10)
1.一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,包括密钥轮转函数、非线性反馈移位寄存器、线性反馈移位寄存器、密钥流输出函数和状态控制单元;
所述密钥轮转函数为一个80-bit的循环反馈移位寄存器,密钥轮转函数在载入密钥阶段通过端口IN1逐位读入初始化密钥,经过80轮后赋予循环反馈移位寄存器初值,在初始化阶段和生成密钥流阶段,密钥轮转函数逐位输出循环反馈移位寄存器最低位的值,参与非线性反馈移位寄存器的更新,同时将此值送入最高位,形成一个循环;
所述非线性反馈移位寄存器共40位,所述线性反馈移位寄存器共61位,所述非线性反馈移位寄存器和线性反馈移位寄存器分别根据非线性反馈函数g(*)和线性反馈函数f(*),随着时钟每周期更新内部状态,且所述非线性反馈移位寄存器与线性反馈移位寄存器的部分位作为密钥流输出函数的自变量,用于输出密钥流;
所述密钥流输出函数每轮提取非线性反馈移位寄存器与线性反馈移位寄存器部分位的值,生成密钥流zt,该值在初始化阶段参与线性反馈移位寄存器的更新,在生成密钥流阶段则用于加密;
所述状态控制单元用于指示装置处于的密码阶段,协调非线性反馈移位寄存器和线性反馈移位寄存器进行状态更新;所述状态控制单元包括一个状态机与一个9比特计数器c′,所述状态机将算法运行分为五个阶段,分别是空闲状态阶段、载入密钥阶段、载入初始向量阶段、初始化阶段和密钥流生成阶段;所述9比特计数器c′用于计算运行的轮数,控制状态切换,计数值的一部分将参与非线性反馈移位寄存器的更新。
2.根据权利要求1所述的一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,所述密钥轮转函数的输出结果kt表达为:
kt=k(tmod80)
其中,t表示第几轮,mod表示取模。
3.根据权利要求1所述的一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,所述非线性反馈函数g(*)的自变量为非线性反馈移位寄存器中的特定位,含有与运算和异或运算,具体逻辑如下:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;表示异或运算。
4.根据权利要求1所述的一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,所述线性反馈函数f(*)的自变量为线性反馈移位寄存器的特定位,且仅有异或运算,为线性函数,具体逻辑如下:
其中,li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
5.根据权利要求1所述的一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,所述密钥流输出函数输出的密钥流zt为:
其中,ni表示非线性反馈移位寄存器中第i位的值,i=0,1,...,39;li表示线性反馈移位寄存器中第i位的值,i=0,1,...,60;表示异或运算。
6.根据权利要求1所述的一种Plantlet超轻量级加密算法的硬件实现装置,其特征在于,所述状态机使用五个独热码编码表示算法运行的五个阶段,占用5比特;9比特计数器c′被分为两部分,低7位计数范围为0到79,高2位计数范围为0到3;算法每运行一轮,计数器低7位的值增加1;当计数器低7位计数满79后产生1次进位,此时计数器高2位增加1,低7位复位为0重新开始计数。
7.一种Plantlet超轻量级加密算法的实现方法,其特征在于,包括如下过程:
(1)空闲状态阶段:装置复位后,状态控制单元首先进入空闲状态,清空非线性反馈移位寄存器与线性反馈移位寄存器;
(2)载入密钥阶段:密钥轮转函数执行80轮载入初始化密钥,80轮后,密钥轮转函数中已存储有初始化密钥,并产生单比特密钥kt用于更新非线性反馈移位寄存器;
(3)载入初始向量阶段:线性反馈移位寄存器和非线性反馈移位寄存器首尾相连,形成101位的移位寄存器,共执行101轮从外部载入初始化向量;
(4)初始化阶段:状态控制单元进入初始化阶段,持续320轮,密钥轮转函数开始逐位产生单比特密钥kt,密钥流输出函数根据线性反馈移位寄存器和非线性反馈移位寄存器生成密钥流zt,参与线性反馈移位寄存器值的更新;在状态控制单元的控制下,密钥流zt与线性反馈函数f(*)输出异或反馈至线性反馈移位寄存器的最高位,而非线性反馈函数g(*)、状态控制单元的9比特计数器c′输出、密钥轮转函数输出kt及线性反馈移位寄存器最低位异或后反馈至非线性反馈移位寄存器的最高位;
(5)密钥流生成阶段:状态控制单元进入密钥流生成阶段后,将持续停留在此阶段直到再次收到复位信号,状态控制单元控制密钥流输出函数及密钥轮转函数不参与内部状态更新。
8.根据权利要求7所述的一种Plantlet超轻量级加密算法的实现方法,其特征在于,在载入初始向量阶段,非线性反馈移位寄存器载入90位初始化向量的低40位,线性反馈移位寄存器的低50位载入90位初始化向量的第40位到第89位,线性反馈移位寄存器的第59位载入0,其余位载入1,持续101轮结束。
9.根据权利要求7所述的一种Plantlet超轻量级加密算法的实现方法,其特征在于,在初始化阶段,线性反馈移位寄存器根据线性反馈函数f(*)及密钥流输出函数输出的密钥流zt的值进行更新;具体为,将线性反馈移位寄存器的第60位持续置为1,第59位按照如下逻辑更新:
线性反馈移位寄存器的第58位至第0位按照如下逻辑更新:
li=li+1,0≤i≤58
其中,li表示线性反馈移位寄存器中第i位的值,li+1表示与该位相邻的更高1位的值;
非线性反馈移位寄存器则根据非线性反馈函数g(*)及密钥轮转函数输出的kt,线性反馈移位寄存器最低位l0以及计数器输出的第4位c4做异或运算进行更新,具体逻辑如下:
非线性反馈移位寄存器的第39位按照如下逻辑更新:
非线性反馈移位寄存器的其余位按照如下逻辑更新:
ni=ni+1,0≤i≤38;
其中,ni表示非线性反馈移位寄存器中第i位的值,ni+1表示与该位相邻的更高1位的值。
10.根据权利要求9所述的一种Plantlet超轻量级加密算法的实现方法,其特征在于,当装置处于密钥流生成阶段时,按照与初始化阶段完全相同的规则更新非线性反馈移位寄存器,而线性反馈移位寄存器更新逻辑如下:
线性反馈移位寄存器的第60位按照如下逻辑更新:
线性反馈移位寄存器的其余位按照如下逻辑更新:
li=li+1,0≤i≤59
此时硬件装置将保持产生密钥流的状态,直到复位信号有效才会重新进入空闲状态阶段。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528772.7A CN114969848B (zh) | 2022-05-16 | 2022-05-16 | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210528772.7A CN114969848B (zh) | 2022-05-16 | 2022-05-16 | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114969848A CN114969848A (zh) | 2022-08-30 |
CN114969848B true CN114969848B (zh) | 2024-06-04 |
Family
ID=82982915
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210528772.7A Active CN114969848B (zh) | 2022-05-16 | 2022-05-16 | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114969848B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961427B1 (en) * | 1999-11-23 | 2005-11-01 | General Instrument Corporation | Methods and apparatus for keystream generation |
JP2007060191A (ja) * | 2005-08-24 | 2007-03-08 | Kddi Corp | ストリーム暗号方法および装置 |
JP2012235287A (ja) * | 2011-04-28 | 2012-11-29 | Kddi Corp | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
CN204966055U (zh) * | 2015-09-18 | 2016-01-13 | 芯佰微电子(北京)有限公司 | 一种用于安全芯片的内建密钥只读存储器保护电路 |
CN112260828A (zh) * | 2020-10-19 | 2021-01-22 | 黑龙江大学 | 基于混沌系统和fpga的轻量级密钥序列发生器 |
CN112398639A (zh) * | 2020-11-04 | 2021-02-23 | 山东大学 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
CN113612609A (zh) * | 2021-08-27 | 2021-11-05 | 山东大学 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
-
2022
- 2022-05-16 CN CN202210528772.7A patent/CN114969848B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6961427B1 (en) * | 1999-11-23 | 2005-11-01 | General Instrument Corporation | Methods and apparatus for keystream generation |
JP2007060191A (ja) * | 2005-08-24 | 2007-03-08 | Kddi Corp | ストリーム暗号方法および装置 |
JP2012235287A (ja) * | 2011-04-28 | 2012-11-29 | Kddi Corp | ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
WO2013069392A1 (ja) * | 2011-11-09 | 2013-05-16 | Kddi株式会社 | 非線形処理器、ストリーム暗号の暗号化装置、ストリーム暗号の復号化装置、マスク処理方法、ストリーム暗号の暗号化方法、ストリーム暗号の復号化方法およびプログラム |
CN204966055U (zh) * | 2015-09-18 | 2016-01-13 | 芯佰微电子(北京)有限公司 | 一种用于安全芯片的内建密钥只读存储器保护电路 |
CN112260828A (zh) * | 2020-10-19 | 2021-01-22 | 黑龙江大学 | 基于混沌系统和fpga的轻量级密钥序列发生器 |
CN112398639A (zh) * | 2020-11-04 | 2021-02-23 | 山东大学 | 一种Fountain轻量级加密算法的实现装置、方法及应用 |
CN113612609A (zh) * | 2021-08-27 | 2021-11-05 | 山东大学 | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 |
Non-Patent Citations (2)
Title |
---|
一种基于混沌系统的快速序列密码算法;韦玉轩;重庆工学院学报(自然科学版);20091231(011);全文 * |
一种针对Grain-128的新错误攻击;汤永利;韩娣;闫玺玺;叶青;信息安全研究;20161231(003);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN114969848A (zh) | 2022-08-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113612609B (zh) | 一种Fruit-80超轻量级加密算法的硬件实现装置及方法 | |
CN101957741A (zh) | 一种基于亚阈值特性的真随机数发生器 | |
CN113078996B (zh) | Sm4密码算法的fpga优化实现方法、系统及应用 | |
CN115756391A (zh) | 用于实现非对称算法rsa模幂计算的硬件电路及方法 | |
CN112819168B (zh) | 一种格密码加解密中的环多项式乘法器电路 | |
CN112398639A (zh) | 一种Fountain轻量级加密算法的实现装置、方法及应用 | |
CN112367158A (zh) | 一种加速sm3算法的方法、处理器、芯片及电子设备 | |
CN114615069B (zh) | 一种Quartet轻量级加密算法的实现装置及方法 | |
CN114911455B (zh) | 基于fpga的高速伪随机数生成方法及高速伪随机数生成器 | |
CN107479857A (zh) | 随机数产生及后处理电路 | |
Kahri et al. | Efficient FPGA hardware implementation of secure hash function SHA-256/Blake-256 | |
CN114969848B (zh) | 一种Plantlet超轻量级加密算法的硬件实现装置及实现方法 | |
CN112799634B (zh) | 一种基于基22mdc ntt结构的高性能环多项式乘法器 | |
CN109460212A (zh) | 一种单级真随机数的产生方法 | |
US5608802A (en) | Data ciphering device | |
CN115632799B (zh) | 一种抗建模可配置双模puf结构及其配置方法 | |
Wong et al. | Lightweight and high performance SHA-256 using architectural folding and 4-2 adder compressor | |
CN114553424B (zh) | Zuc-256流密码轻量级硬件系统 | |
Kieu-Do-Nguyen et al. | A power-efficient implementation of sha-256 hash function for embedded applications | |
CN109039608B (zh) | 一种基于双S核的8-bitAES电路 | |
Zhao et al. | High throughput implementation of SMS4 on FPGA | |
Kahri et al. | An FPGA implementation of the SHA-3: The BLAKE hash function | |
Hulle et al. | Compact Reconfigurable Architecture for Sosemanuk Stream Cipher | |
CN201845328U (zh) | 一种基于亚阈值特性的真随机数发生器 | |
CN116820394B (zh) | 一种面向椭圆曲线加密算法的标量乘电路 |
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 |