当前位置: 首页 > 专利查询>山东大学专利>正文

一种Quartet轻量级加密算法的实现装置及方法制造方法及图纸

技术编号:33786007 阅读:95 留言:0更新日期:2022-06-12 14:41
本发明专利技术公开了一种Quartet轻量级加密算法的实现装置及方法,该实现装置包括明文处理模块、状态更新模块、状态寄存器组、状态控制单元、轮常数生成模块、密钥流生成模块、多路开关以及两个数据选择器;明文处理模块接收用户输入的指示信号flag和明文,输出处理后的64

【技术实现步骤摘要】
一种Quartet轻量级加密算法的实现装置及方法


[0001]本专利技术涉及加密算法
,特别涉及一种Quartet轻量级加密算法的实现装置及方法。

技术介绍

[0002]轻量级密码凭借着高安全性、设计紧凑等优点成为近年来密码学的研究热点之一,备受物联网安全应用领域关注。然而,随着物联网应用的普及,计算能力较弱的终端设备急需专门面向资源受限环境设计的面积更小、速度更快、安全水平更高的加密算法,而Quartet轻量级密码在设计时就以资源受限环境为目标,因而在物联网环境下具有天然的良好实现性能。
[0003]Quartet轻量级序列密码于2019年被提出,这种密码的密钥长度为128位,内部状态为256比特,是一种新型结构的序列密码,兼具序列密码和分组密码的特点,即加密时将明文序列划分为长度均为64

bit的组,而每个明文分组又与每轮产生的64

bit密钥逐位异或获得密文。密码借鉴了SHA

3标准的Keccak哈希算法,使用4个64

bit的并行状态,提高了硬件实现的效率,并运用5个ASCON算法的扩散函数,增加了状态内的差分传播,可降低伪造或篡改攻击的成功机率。此外,Quartet算法还具备关联数据加密认证(AEAD)功能,可通过加密后生成的认证标签来判断是否需要进行解密,如果标签错误,则不会输出解密结果,避免了有用信息的泄露。
[0004]Quartet作为轻量级序列密码,有着比传统序列密码更加高效的面向资源受限环境的算法结构,在物联网等场景下有着广泛的应用。然而,目前尚无高效的Quartet硬件实现策略。为了能在对面积、成本和实时性要求高的终端上实现,应该设计高效的Quartet实现装置及方法。

技术实现思路

[0005]为解决上述技术问题,本专利技术提供了一种Quartet轻量级加密算法的实现装置及方法,具有资源占用少、吞吐率高的特点,既能满足物联网紧凑终端安全需求,也能满足边缘传感网络高速数据传输需求。
[0006]为达到上述目的,本专利技术的技术方案如下:
[0007]一种Quartet轻量级加密算法的实现装置,包括明文处理模块、状态更新模块、状态寄存器组、状态控制单元、轮常数生成模块、密钥流生成模块、多路开关、数据选择器Mux1和数据选择器Mux2;
[0008]所述明文处理模块接收用户输入的指示信号flag和明文,输出处理后的64

bit明文给状态控制单元;
[0009]所述状态更新模块包括三个,用于在状态控制单元输出的使能信号的驱动下进行3种不同的扩散运算,为加密算法计算不断更新的内部状态,并将更新后的状态送入状态寄存器组中;
[0010]所述状态寄存器组由4个状态寄存器state0

state3组成,负责存储加密算法运行过程中生成并不断更新的状态,每个时刻4个状态寄存器state0

state3的取值称为该时刻的状态,分别记作x0‑
x3;
[0011]所述状态控制单元的输入端K和输入端IV分别用于接收用户输入的初始化密钥和初始化向量,输入端ADi用于接收用户输入的8

bit关联数据,输入端mi与明文处理模块的输出相连,接收处理过的64

bit明文;所述状态控制单元的输入端CIN0~CIN3分别与4个状态寄存器state0~state3的输出一一对应相连,用于每个时刻读取一组状态;所述状态控制单元的输出cnt与所述轮常数生成模块的输入、以及数据选择器Mux2的地址端相连,分别为轮常数生成模块提供计数值和为数据选择器Mux2提供地址;所述状态控制单元将读入的128

bit的初始化密钥按照高低64位分成两组,即K[127:64]和K[63:0],直接连线输出给数据选择器Mux2的数据输入端,供生成认证标签时使用;
[0012]所述轮常数生成模块由26选1的数据选择器Mux3组成,可根据输入端的输入选择输出对应地址的轮常数,用于初始化阶段中的状态更新;
[0013]所述密钥流生成模块与状态寄存器组的输出相连,密钥流生成模块根据状态寄存器组的取值与数据选择器Mux2的输出异或生成密钥流;
[0014]所述多路开关的数据输入端与状态控制单元的输出cout0~cout3相连,地址输入端与状态控制单元中状态指示寄存器mode相连,数据输出端分别与三个状态更新模块的输入相连,可根据地址输入端的输入将状态控制单元的输出给某个状态更新模块;
[0015]所述数据选择器Mux1的数据输入端与三个状态更新模块的输出相连,地址输入端与状态控制单元中状态指示寄存器mode相连,输出与状态寄存器组相连,可根据地址输入端的输入将某个状态更新模块的输出给状态寄存器组;
[0016]所述数据选择器Mux2的两个数据输入端分别与状态控制单元输出的两组初始化密钥K[127:64]和K[63:0]相连,地址输入端与状态控制单元的输出cnt相连,可根据地址输出初始化密钥的部分位,用于与密钥流逐位异或生成认证标签。
[0017]上述方案中,所述状态更新模块包括执行ASCON线性扩散函数的扩散运算单元和二选一的数据选择器Mux4,所述数据选择器Mux4具备使能端记作ENABLE,ENABLE取值为0或者1;当其值为1时,4个64

bit数据通过输入端口S
i
_x0~S
i
_x3被送入扩散运算单元中,1≤i≤3,i代表状态更新模块号;每个64

bit数据均需经过4个ASCON线性扩散函数获得运算结果,通过输出端口S
i
_S0~S
i
_S3输出,1≤i≤3,i代表状态更新模块号;当ENABLE取值为0时,状态更新模块的输出等于输入的数据。
[0018]进一步的技术方案中,所述扩散运算单元由非门、与门、异或门及循环移位单元一、循环移位单元二、循环移位单元三组成,功能是对输入的数据进行扩散运算,所述循环移位单元一、循环移位单元二、循环移位单元三的功能是对输入的数据进行循环向左移动2位;
[0019]所述扩散运算单元的具体逻辑如下:
[0020]χ函数:OUT
i

IN
i
^(~IN
i+2
)&IN
i+1
;0≤i≤3
[0021]ρ函数:OUT
i

{IN
i
[63

n
i
:32],IN
i
[63:64

n
i
],IN
i
[31

n
i
:0],IN
i
[31:32

n
i
]};0≤i本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种Quartet轻量级加密算法的实现装置,其特征在于,包括明文处理模块、状态更新模块、状态寄存器组、状态控制单元、轮常数生成模块、密钥流生成模块、多路开关、数据选择器Mux1和数据选择器Mux2;所述明文处理模块接收用户输入的指示信号flag和明文,输出处理后的64

bit明文给状态控制单元;所述状态更新模块包括三个,用于在状态控制单元输出的使能信号的驱动下进行3种不同的扩散运算,为加密算法计算不断更新的内部状态,并将更新后的状态送入状态寄存器组中;所述状态寄存器组由4个状态寄存器state0

state3组成,负责存储加密算法运行过程中生成并不断更新的状态,每个时刻4个状态寄存器state0

state3的取值称为该时刻的状态,分别记作x0‑
x3;所述状态控制单元的输入端K和输入端IV分别用于接收用户输入的初始化密钥和初始化向量,输入端ADi用于接收用户输入的8

bit关联数据,输入端mi与明文处理模块的输出相连,接收处理过的64

bit明文;所述状态控制单元的输入端CIN0~CIN3分别与4个状态寄存器state0~state3的输出一一对应相连,用于每个时刻读取一组状态;所述状态控制单元的输出cnt与所述轮常数生成模块的输入、以及数据选择器Mux2的地址端相连,分别为轮常数生成模块提供计数值和为数据选择器Mux2提供地址;所述状态控制单元将读入的128

bit的初始化密钥按照高低64位分成两组,即K[127:64]和K[63:0],直接连线输出给数据选择器Mux2的数据输入端,供生成认证标签时使用;所述轮常数生成模块由26选1的数据选择器Mux3组成,可根据输入端的输入选择输出对应地址的轮常数,用于初始化阶段中的状态更新;所述密钥流生成模块与状态寄存器组的输出相连,密钥流生成模块根据状态寄存器组的取值与数据选择器Mux2的输出异或生成密钥流;所述多路开关的数据输入端与状态控制单元的输出cout0~cout3相连,地址输入端与状态控制单元中状态指示寄存器mode相连,数据输出端分别与三个状态更新模块的输入相连,可根据地址输入端的输入将状态控制单元的输出给某个状态更新模块;所述数据选择器Mux1的数据输入端与三个状态更新模块的输出相连,地址输入端与状态控制单元中状态指示寄存器mode相连,输出与状态寄存器组相连,可根据地址输入端的输入将某个状态更新模块的输出给状态寄存器组;所述数据选择器Mux2的两个数据输入端分别与状态控制单元输出的两组初始化密钥K[127:64]和K[63:0]相连,地址输入端与状态控制单元的输出cnt相连,可根据地址输出初始化密钥的部分位,用于与密钥流逐位异或生成认证标签。2.根据权利要求1所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述状态更新模块包括执行ASCON线性扩散函数的扩散运算单元和二选一的数据选择器Mux4,所述数据选择器Mux4具备使能端记作ENABLE,ENABLE取值为0或者1;当其值为1时,4个64

bit数据通过输入端口S
i
_x0~S
i
_x3被送入扩散运算单元中,1≤i≤3,i代表状态更新模块号;每个64

bit数据均需经过4个ASCON线性扩散函数获得运算结果,通过输出端口S
i
_S0~S
i
_S3输出,1≤i≤3,i代表状态更新模块号;当ENABLE取值为0时,状态更新模块的输出等于输入的数据。
3.根据权利要求2所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述扩散运算单元由非门、与门、异或门及循环移位单元一、循环移位单元二、循环移位单元三组成,功能是对输入的数据进行扩散运算,所述循环移位单元一、循环移位单元二、循环移位单元三的功能是对输入的数据进行循环向左移动2位;所述扩散运算单元的具体逻辑如下:χ函数:OUT
i

IN
i
^(~IN
i+2
)&IN
i+1
;0≤i≤3ρ函数:OUT
i

{IN
i
[63

n
i
:32],IN
i
[63:64

n
i
],IN
i
[31

n
i
:0],IN
i
[31:32

n
i
]};0≤i≤3λ函数:OUT
i

IN
i
^{IN
i
[r
i,1

1:0],IN
i
[63:r
i,1
]}^{IN
i
[r
i,2

1:0],IN
i
[63:r
i,2
]};0≤i≤3其中,IN
i
代表输入的64比特数据,^表示逐位异或,逻辑值相同则结果为0,不同则结果为1;~表示逐位取反,逻辑值1取反为0,逻辑值0取反为1;&表示逐位相与;IN
i
[∶]表示64比特中的某些比特位,{}表示拼接,即将几个不同位宽的信号拼接为一个信号,而最终信号的位宽等于各个信号位宽的和;n
i
代表ASCON线性扩散函数中ρ函数使用的参数值;在算法运行的不同阶段,n
i
的取值始终是固定的;r
i,1
,r
i,2
代表ASCON线性扩散函数中χ函数使用的参数值,在算法运行的不同阶段,r
i,1
,r
i,2
的取值是可变的。4.根据权利要求1所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述密钥流生成模块由异或门、非门和循环移位单元四组成;所述密钥流生成模块每轮将状态x1逐位取反,状态x0循环右移n
z
比特,二者相与的结果再和状态x2、x3逐位异或,最终生成64

bit的密钥流z
t
用于加密。5.根据权利要求1所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述明文处理模块包括一个二选一的数据选择器Mux5和一个七选一的数据选择器Mux6,所述数据选择器Mux6具备一个输入端flag,用于接收指示输入的明文是否完整;所述数据选择器Mux5具有一个输入端length(`m),用于接收不完整明文的长度;所述数据选择器Mux5具有一个输出端Mi,用于输出64

bit的明文m
i
;所述明文处理模块的功能是对用户输入的明文进行处理,如果flag取值为1,表示输入的明文是完整的64

bit,此时数据选择器Mux5将直接按照用户输入的明文进行输出;如果flag取值为0,则表示输入的明文是不完整的,需要进行填充,数据选择器Mux5将通过数据选择器Mux6选择与不完整明文长度对应的填充完成的序列输出。6.根据权利要求1所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述状态控制单元包括一个9比特计数器,三个比较器,三个使能信号寄存器en1~en3,一个状态指示寄存器mode以及三个数据选择器Mux7~Mux9,用于指示硬件装置依次进入五个阶段:载入阶段、初始化阶段、处理关联数据阶段、加密数据及密钥流生成阶段、生成认证标签阶段;所述计数器具备复位端rst,其取值为0或1,当取值为1时为有效状态,计数器清零,否则计数器计数并输出计数值cnt。7.根据权利要求6所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述计数器用于计算加密算法消耗的周期数,并通过比较器控制改变使能信号寄存器en1~en3和状态指示寄存器mode的值;其中,使能信号寄存器en1~en3取值为0或1,当取值为1时为有效状态,否则为无效状态;状态指示寄存器mode可取8个值,范围为0~7,不同的取值代表对输入数据进行不同的逻辑操作,而三个数据选择器Mux7~Mux9通过状态指示寄存器mode
的值选择对输入的4个64

bit数据cin0~cin3做不同逻辑操作并输出。8.根据权利要求1所述的一种Quartet轻量级加密算法的实现装置,其特征在于,所述多路开关根据状态控制单元中状态指示寄存器mode的值,将状态控制单元的输出cout0~cout3送入某个状态更新模块的输入,当mode取值为0、1、2、4、5、6时;将状态控制单元的输出cout0~cout3送入状态更新模块1的输入;当mode取值为3时;将状态控制单元的输出cout0~cout3送入状态更新模块2的输入;当mode取值为7时;将状态控制单元的输出cout0~cout3送入状态更新模块3的输入。9.根据权利要求1所述的一种Qu...

【专利技术属性】
技术研发人员:杨刚强陈诚万志国熊海良陈雷
申请(专利权)人:山东大学
类型:发明
国别省市:

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

1