一种结构紧凑的CLEFIA算法加密电路


一种结构紧凑的clefia算法加密电路
技术领域
1.本发明涉及加密芯片领域,更具体涉及一种结构紧凑的clefia算法加密电路。


背景技术:



2.物联网设备数量的快速增长和边缘计算的发展在给日常生活带来便利的同时也带来了数据安全性问题。然而,大量物联网设备部署在依赖于小型电池供电的受限环境中,如何在保障数据安全的同时减小硬件开销成为目前物联网发展迫切需要解决的问题之一。数据安全最核心方法是使用密码算法进行数据加密来保障数据的机密性。
3.传统的加密算法电路实现如高级加密标准aes存在硬件开销较大的问题,难以有效部署在资源较为受限的环境中。日本索尼公司2007年提出了clefia分组加密算法,但是传统的clefia加密算法结构冗余复杂,不利于在物联网场景中广泛应用。


技术实现要素:



4.本发明是为了解决上述现有技术存在的不足之处,提出一种结构紧凑的clefia算法加密电路,以期能减少电路结构中的冗余部分和实现资源共享,从而能减少硬件资源消耗,使其适用于资源受限的物联网设备。
5.本发明为达到上述发明目的,采用如下技术方案:
6.本发明一种结构紧凑的clefia算法加密电路的特点在于,包括:数据流控制单元、常数运算单元、密钥扩展单元以及gfn
4,r
集成单元;
7.所述数据流控制单元接收外部输入的时钟信号、复位信号和电路运行信号,并在电路运行信号有效时,将自身的电路忙信号拉高并发送给所述常数运算单元;所述数据流控制单元内部的计数器开始计数,并产生计数器低位信号分别发送给所述常数运算单元和gfn
4,r
集成单元,同时产生状态信号并分别发送给所述密钥扩展单元和gfn
4,r
集成单元;
8.所述常数运算单元接收所述时钟信号、所述复位信号和所述电路运行信号以及所述电路忙信号和所述计数器低位信号,并向所述密钥扩展单元和gfn
4,r
集成单元分别输出一组常数;
9.所述gfn
4,r
集成单元接收外部输入的明文、所述时钟信号、所述复位信号、所述密钥、所述计数器低位信号、所述状态信号和一组常数,并生成信号l[127:0]后发送给所述密钥扩展单元;
[0010]
所述密钥扩展单元接收外部输入的密钥、所述时钟信号、复位信号、所述状态信号、一组常数以及所述信号l[127:0],并生成白密钥和轮密钥一起发送给所述gfn
4,r
集成单元;
[0011]
所述gfn
4,r
集成单元根据所述白密钥和轮密钥,并生成密文c[127:0]后输出,同时,所述数据流控制单元产生加密完成信号。
[0012]
本发明所述的一种结构紧凑的clefia算法加密电路的特点也在于,所述数据流控制单元包括:加法器、计数器、第一比较器、第二比较器、第一触发器至第三触发器、第一多
选择器至第六多路选择器;
[0013]
所述加法器接收所述计数器发送的计数值后进行循环加1运算,并得到累加结果后发送给第一多路选择器;所述第一多路选择器在外部输入的电路运行信号为高电平时选择所述加法器输出的累加结果并输出给第二多路选择器;所述第二多路选择器在加密完成信号为低电平时,选择第一多路选择器输出的累加结果并发送给计数器;
[0014]
所述计数器在电路运行信号有效时开始计数,并将生成的计数值发送给第一比较器,同时将计数值最低位作为所述数据流控制单元的一个输出;
[0015]
所述第一比较器接收计数器的计数值以及外部输入的预置数a后,产生比较结果并发送给第三多路选择器;所述第三多路选择器在第一比较器输出的比较结果为高电平时,选择预置数“1”进行输出,所述第三多路选择器在第一比较器输出的比较结果为低电平时,选择预置数“0”进行输出,从而将输出结果发送给第一触发器;
[0016]
所述第一触发器接收外部输入的时钟信号和复位信号,并生成加密完成信号后分别发送给第二多路选择器和第五多路选择器;
[0017]
所述第四多路选择器在外部输入的电路运行信号为高电平时,选择预置数“1”输出给第五多路选择器;所述第五多路选择器在加密完成信号为低电平时,选择第四多路选择器的输出值并发送给第二触发器;
[0018]
所述第二触发器接收外部输入的时钟信号、复位信号并输出电路忙信号;
[0019]
所述第二比较器接收计数器输出的计数值,并与“1”进行比较,得到的结果发送给第六多路选择器;
[0020]
所述第六多路选择器在第二比较器输出的结果为高电平时,选择外部输入的预置数b输出给第三触发器;
[0021]
所述第三触发器接收外部输入的时钟信号和复位信号,并根据所述预置数b产生状态信号。
[0022]
所述常数运算单元包括:触发器、gf(2
16
)乘法器、第七多路选择器和第八多路选择器;
[0023]
所述触发器接收外部输入的时钟信号、复位信号和第七多路选择器的输出信号,得到信号ti[15:0]并发送给gf(2
16
)乘法器;
[0024]
所述gf(2
16
)乘法器以预置数c作为一个乘数,以ti[15:0]作为另一个乘数进行伽罗华域乘法计算,得到的乘法结果发送给第七多路选择器;
[0025]
电路运行信号和电路忙信号通过或门后,再与计数器低位信号相与,得到的逻辑值作为所述第七多路选择器的控制端的输入,当逻辑值为高电平时,将gf(2
16
)乘法器输出的乘法结果发送给触发器;
[0026]
对信号ti[15:0]依次进行取反和循环左移8位操作后得到信号not1[15:0]和信号sl8[15:0],信号ti[15:0]还与预置数d进行按位异或运算后得到信号xor2[15:0];
[0027]
对信号not1[15:0]与预置数f进行按位异或运算得到信号xor1[15:0];
[0028]
对所述信号not1[15:0]进行循环左移1位操作后得到信号sl1[15:0];
[0029]
对信号xor1[15:0]和信号sl8[15:0]进行位拼接操作,得到的第一拼接结果发送给第八多路选择器;
[0030]
对信号xor2[15:0]和信号sl1[15:0]进行位拼接操作,得到的第二拼接结果也发
送给第八多路选择器;
[0031]
所述第八多路选择器以所述计数器低位信号作为控制端,并接收所述第一拼接结果和第二拼接结果,从而输出常数信号con[31:0]。
[0032]
所述密钥扩展单元包括:触发器、异或门、第九多路选择器和第十多路选择器;
[0033]
所述第九多路选择器接收所述状态信号、信号l[127:0],并对信号l[127:0]进行σ函数运算后得到信号ln1[127:0],当状态信号为高电平时,选择信号ln1[127:0]发送给触发器,当状态信号为低电平时,选择信号l[127:0]发送给触发器;
[0034]
所述触发器接收外部输入的时钟信号和复位信号,并输出信号ln2[127:0]发送给异或门;
[0035]
所述第十多路选择器以所述状态信号作为控制端的输入并接收外部输入的密钥k[127:0],当所述状态信号为高电平时选择密钥k[127:0]作为输出信号key1[127:0],当所述状态信号为低电平时选择预置数“0”作为输出信号key1[127:0]并发送给异或门;
[0036]
对常数信号con[31:0]进行位拼接操作得到信号con1[127:0]并发送给异或门;
[0037]
所述异或门对信号ln2[127:0]、信号key1[127:0]和信号con1[127:0]进行按位异或运算后得到轮密钥rk[63:0]并作为所述密钥扩展单元的一个输出信号;所述密钥扩展单元将所述密钥k[127:0]作为白密钥wk[127:0]并输出。
[0038]
所述gfn
4,r
集成单元包括:f函数、迭代模块、第十一多路选择器至第二十二多路选择器;
[0039]
所述第十一多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[127:96]和部分密钥k[127:96],并输出选择结果1给第十五多路选择器;
[0040]
所述第十二多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[63:32]和部分密钥k[63:32],并输出选择结果2给第十五多路选择器;
[0041]
所述第十三多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[95:64]和部分密钥k[95:64],并输出选择结果3发送给第十六多路选择器;
[0042]
所述第十四多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[31:0]和部分密钥k[31:0],并输出选择结果4给第十六多路选择器;
[0043]
所述第十五多路选择器以所述计数器低位信号作为控制端,并接收选择结果1和选择结果2,从而输出信号u0[31:0]分别给f函数和迭代模块;
[0044]
所述第十六多路选择器以所述计数器低位信号作为控制端,并接收选择结果3和选择结果4,从而输出信号u1[31:0];
[0045]
所述第十七多路选择器以所述计数器低位信号作为控制端,并接收所述白密钥wk[127:64],从而输出选择结果5给第十八多路选择器;
[0046]
所述第十八多路选择器以所述状态信号作为控制端,接收选择结果5和预置数“0”,并输出选择结果6,然后与信号u1[31:0]进行按位异或运算后得到信号u2[31:0];
[0047]
所述第十九多路选择器以所述计数器低位信号作为控制端,并接收所述轮密钥rk[63:0],从而输出选择信号7给第二十多路选择器;
[0048]
所述第二十多路选择器以所述状态信号作为控制端,接收选择信号7和所述常数con[31:0],从而输出选择信号8发送给f函数;
[0049]
所述f函数接收数所述计数器低位信号、信号u0[31:0]和选择信号8,从而输出信
号f1[31:0];
[0050]
对信号f1[31:0]与信号u2[31:0]进行按位异或运算后得到信号u3[31:0]并发送给迭代模块;
[0051]
所述第二十一多路选择器以所述计数器低位信号作为控制端,并接收所述白密钥wk[63:0],从而输出选择结果9给第二十二多路选择器;
[0052]
所述迭代模块以所述计数器低位信号为控制信号,并接收信号u0[31:0]和信号u3[31:0],从而产生信号m1[31:0]和信号m2[31:0],其中,信号m1[31:0]作为gfn
4,r
集成单元的一个输出信号产生信号l[127:96]或信号l[63:32]或密文c[127:96]或密文c[63:32],信号m2[31:0]与信号f1[31:0]进行按位异或运算得到信号d1[31:0];
[0053]
所述第二十二多路选择器以所述状态信号作为控制端,接收选择结果9和预置数“0”,并输出选择结果10,然后与信号d1[31:0]进行按位异或运算后得到信号l[95:64]或l[31:0]或密文c[95:64]或密文c[31:0],并作为gfn
4,r
集成单元的另一个输出信号。
[0054]
所述迭代模块包括4组寄存器l0、l1、r0、r1;
[0055]
寄存器l0和r0先后接收信号u0[31:0]作为初值,寄存器l1和r1先后接收信号u3[31:0]作为初值;
[0056]
当计数器低位信号为0时,寄存器l0保持不变,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与r0异或后得到的值;
[0057]
当计数器低位信号为1时,寄存器l0接收寄存器r0的值,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与l0异或后得到的值。
[0058]
所述gfn
4,r
集成单元输出信号l[127:0]时,第十一多路选择器至第十四多路选择器选择所述所述密钥k[127:0]作为输出,第十八多路选择器选择预置数“0”作为输出,第二十多路选择器选择所述常数con[31:0]作为输出,第二十二多路选择器选择预置数“0”作为输出;
[0059]
所述gfn
4,r
集成单元输出密文c[127:0]时,第十一多路选择器至第十四多路选择器选择所述明文p[127:0]作为输出,第十八多路选择器选择所述白密钥wk[127:64]作为输出,第二十多路选择器选择所述轮密钥rk[63:0]作为输出,第二十二多路选择器选择所述白密钥wk[63:0]作为输出。
[0060]
与现有技术相比,本发明的有益效果在于:
[0061]
1、本发明充分利用了clefia加密算法硬件实现后的数据通路,通过数据流控制单元对常数运算单元、密钥扩展单元和进行控制,数据流控制单元依据计数器信号产生控制逻辑,进行相应状态下的数据传输,解决了控制和运算逻辑设计复杂的问题,结构清晰简单,面积紧凑,有利于在物联网场景下的广泛使用。
[0062]
2、本发明实现了密钥长度为128-bit的clefia加密算法,计算l[127:0]和密文使用了同一种电路结构,即gfn
4,r
结构;传统硬件实现需要两个单元分别计算l[127:0]和密文,本发明通过多路选择器将计算l[127:0]和密文的数据路径合二为一,实现了资源共享,增加了资源利用率,降低了硬件消耗。
[0063]
3、本发明gfn
4,r
集成单元中的gfn
4,r
结构存在四条数据路径,四条数据路径按规律传输以计算出需要的数值,但是该结构存在冗余部分,重复多余的结构增加了寄存器的数
量,本发明通过将四条数据路径缩减到两条,并且仅仅需要四个寄存器就可以实现gfn
4,r
结构,减少了多余的电路设计,进一步减少了硬件资源消耗,解决了传统结构冗余复杂、不利于在物联网场景下使用的问题。
附图说明
[0064]
图1为本发明一种结构紧凑的clefia算法加密电路的顶层结构框图;
[0065]
图2为本发明数据流控制单元的内部结构框图;
[0066]
图3为本发明常数运算单元的内部结构框图;
[0067]
图4为本发明密钥扩展单元的内部结构框图;
[0068]
图5为本发明σ函数运算方式示意图;
[0069]
图6为本发明gfn
4,r
集成单元的内部结构框图;
[0070]
图7为本发明迭代模块的数据传输示意图。
具体实施方式
[0071]
本实施例中,一种结构紧凑的clefia算法加密电路,如图1所示,包括:数据流控制单元、常数运算单元、密钥扩展单元以及gfn
4,r
集成单元;
[0072]
数据流控制单元接收外部输入的时钟信号clk、复位信号rst和电路运行信号run,并在电路运行信号run有效时,将自身的电路忙信号busy拉高并发送给常数运算单元;数据流控制单元内部的计数器开始计数,并产生计数器低位信号lsb分别发送给常数运算单元和gfn
4,r
集成单元,同时产生状态信号state并分别发送给密钥扩展单元和gfn
4,r
集成单元;
[0073]
常数运算单元接收时钟信号clk、复位信号rst和电路运行信号run以及电路忙信号busy和计数器低位信号lsb,并向密钥扩展单元和gfn
4,r
集成单元分别输出一组常数信号con[31:0];
[0074]
gfn
4,r
集成单元接收外部输入的明文p[127:0]、时钟信号clk、复位信号rst、密钥k[127:0]、计数器低位信号lsb、状态信号state和常数信号con[31:0],并生成信号l[127:0]后发送给密钥扩展单元;
[0075]
密钥扩展单元接收外部输入的密钥k[127:0]、时钟信号clk、复位信号rst、状态信号state、常数信号con[31:0]以及信号l[127:0],并生成白密钥wk[127:0]和轮密钥rk[63:0]一起发送给gfn
4,r
集成单元;
[0076]
gfn
4,r
集成单元根据白密钥wk[127:0]和轮密钥rk[63:0],并生成密文c[127:0]后输出,同时,数据流控制单元产生加密完成信号done。
[0077]
如图2所示,数据流控制单元包括:加法器、计数器、第一比较器、第二比较器、第一触发器至第三触发器、第一多路选择器至第六多路选择器;
[0078]
加法器接收计数器发送的计数值后进行循环加1运算,并得到累加结果后发送给第一多路选择器;第一多路选择器在外部输入的电路运行信号run为高电平时选择加法器输出的累加结果并输出给第二多路选择器;第二多路选择器在加密完成信号done为低电平时,选择第一多路选择器输出的累加结果并发送给计数器;
[0079]
计数器在电路运行信号run有效时开始计数,并将生成的计数值发送给第一比较器,同时将计数值最低位作为数据流控制单元的一个输出;
[0080]
第一比较器接收计数器的计数值以及预先存储的整个电路需要完成的时钟周期预置数a后,产生比较结果并发送给第三多路选择器,当计数值与预先存储的整个电路需要完成的时钟周期预置数a相等时,第一比较器输出高电平,其他情况输出低电平;第三多路选择器在第一比较器输出的比较结果为高电平时,选择预置数“1”进行输出,第三多路选择器在第一比较器输出的比较结果为低电平时,选择预置数“0”进行输出,从而将输出结果发送给第一触发器;
[0081]
第一触发器接收外部输入的时钟信号clk和复位信号rst,并生成加密完成信号done后分别发送给第二多路选择器和第五多路选择器,当第三多路选择器输出“1”时,加密完成信号拉高,从而完成一次加密的完整操作;
[0082]
第四多路选择器在外部输入的电路运行信号run为高电平时,选择预置数“1”输出给第五多路选择器;第五多路选择器在加密完成信号done为低电平时,选择第四多路选择器的输出值并发送给第二触发器;
[0083]
第二触发器接收外部输入的时钟信号clk、复位信号rst并输出电路忙信号busy,当电路运行信号run为高电平且加密完成信号done为低电平时,电路忙信号busy拉高直至加密完成信号done为高电平后再拉低;
[0084]
第二比较器接收计数器输出的计数值,并与“1”进行比较,得到的结果发送给第六多路选择器;
[0085]
第六多路选择器在第二比较器输出的结果为高电平时,选择外部输入的预置数b输出给第三触发器;
[0086]
第三触发器接收外部输入的时钟信号clk和复位信号rst,并根据预置数b产生状态信号state。
[0087]
如图3所示,常数运算单元包括:触发器、gf(2
16
)乘法器、第七多路选择器和第八多路选择器;
[0088]
触发器接收外部输入的时钟信号clk、复位信号rst和第七多路选择器的输出信号,得到信号ti[15:0]并发送给gf(2
16
)乘法器;
[0089]
gf(2
16
)乘法器以预置数c作为一个乘数,以信号ti[15:0]作为另一个乘数进行伽罗华域乘法计算,得到的乘法结果发送给第七多路选择器,信号ti[15:0]的初值根据密钥长度来选择,本实施例中实现的是128-bit的clefia加密电路,128-bit的密钥长度对应的信号ti[15:0]初值为0x428a;gf(2
16
)乘法器以gf(2
16
)上的乘法运算为核心,基于本原多项式z
16
+z
15
+z
13
+z
11
+z5+z4+1进行运算,本实施例中,预置数c为0x0002-2
,信号ti[15:0]与0x0002-2
在gf(2
16
)上进行乘法运算,相当于将ti[15:0]在gf(2
16
)上右移一位,再依据本原多项式得到右移后的结果即为乘法结果;
[0090]
电路运行信号run和电路忙信号busy通过或门后,再与计数器低位信号lsb相与,得到的逻辑值作为第七多路选择器的控制端的输入,当逻辑值为高电平时,将gf(2
16
)乘法器输出的乘法结果发送给触发器;
[0091]
对信号ti[15:0]依次进行取反和循环左移8位操作后得到信号not1[15:0]和信号sl8[15:0],信号ti[15:0]还与预置数d进行按位异或运算后得到信号xor2[15:0],本实施例中预置数d为0xb7e1;
[0092]
对信号not1[15:0]与预置数f进行按位异或运算得到信号xor1[15:0],本实施例
中预置数f为0x243f;
[0093]
对信号not1[15:0]进行循环左移1位操作后得到信号sl1[15:0];
[0094]
对信号xor1[15:0]和信号sl8[15:0]进行位拼接操作,得到的第一拼接结果发送给第八多路选择器;
[0095]
对信号xor2[15:0]和信号sl1[15:0]进行位拼接操作,得到的第二拼接结果也发送给第八多路选择器;
[0096]
第八多路选择器以计数器低位信号lsb作为控制端,并接收第一拼接结果和第二拼接结果,从而输出常数信号con[31:0]。
[0097]
如图4所示,密钥扩展单元包括:触发器、异或门、第九多路选择器和第十多路选择器;
[0098]
第九多路选择器接收状态信号state、信号l[127:0],并对信号l[127:0]进行σ函数运算后得到信号ln1[127:0],如图5为σ函数运算方式示意图,即ln1[127:71]为l[120:64],ln1[70:64]为l[6:0],ln1[63:57]为l[127:121],ln1[56:0]为l[63:7],当状态信号state为高电平时,选择信号ln1[127:0]发送给触发器,当状态信号state为低电平时,选择信号l[127:0]发送给触发器;
[0099]
触发器接收外部输入的时钟信号clk和复位信号rst,并输出信号ln2[127:0]发送给异或门;
[0100]
第十多路选择器以状态信号state作为控制端的输入并接收外部输入的密钥k[127:0],当状态信号state为高电平时选择密钥k[127:0]作为输出信号key1[127:0]并发送给异或门,此时异或门为三输入,当状态信号state为低电平时选择预置数“0”作为输出信号key1[127:0]并发送给异或门,此时三输入异或门相当于两输入异或门;
[0101]
对四组常数信号con[31:0]进行位拼接操作得到信号con1[127:0]并发送给异或门;
[0102]
异或门对信号ln2[127:0]、信号key1[127:0]和信号con1[127:0]进行按位异或运算后得到轮密钥rk[63:0]并作为密钥扩展单元的一个输出信号;密钥扩展单元将密钥k[127:0]作为白密钥wk[127:0]并输出。
[0103]
如图6所示,gfn
4,r
集成单元包括:f函数、迭代模块、第十一多路选择器至第二十二多路选择器;
[0104]
第十一多路选择器以状态信号state作为控制端,接收外部输入的部分明文p[127:96]和部分密钥k[127:96],并输出选择结果1给第十五多路选择器;
[0105]
第十二多路选择器以状态信号state作为控制端,接收外部输入的部分明文p[63:32]和部分密钥k[63:32],并输出选择结果2给第十五多路选择器;
[0106]
第十三多路选择器以状态信号state作为控制端,接收外部输入的部分明文p[95:64]和部分密钥k[95:64],并输出选择结果3发送给第十六多路选择器;
[0107]
第十四多路选择器以状态信号state作为控制端,接收外部输入的部分明文p[31:0]和部分密钥k[31:0],并输出选择结果4给第十六多路选择器;
[0108]
第十五多路选择器以计数器低位信号lsb作为控制端,并接收选择结果1和选择结果2,从而输出信号u0[31:0]分别给f函数和迭代模块;
[0109]
第十六多路选择器以计数器低位信号lsb作为控制端,并接收选择结果3和选择结
果4,从而输出信号u1[31:0];
[0110]
第十七多路选择器以计数器低位信号lsb作为控制端,并接收白密钥wk[127:64],从而输出选择结果5给第十八多路选择器;
[0111]
第十八多路选择器以状态信号state作为控制端,接收选择结果5和预置数“0”,并输出选择结果6,然后与信号u1[31:0]进行按位异或运算后得到信号u2[31:0];
[0112]
第十九多路选择器以计数器低位信号lsb作为控制端,并接收轮密钥rk[63:0],从而输出选择信号7给第二十多路选择器;
[0113]
第二十多路选择器以状态信号state作为控制端,接收选择信号7和常数信号con[31:0],从而输出选择信号8发送给f函数;
[0114]
f函数接收数计数器低位信号lsb、信号u0[31:0]和选择信号8,从而输出信号f1[31:0];
[0115]
对信号f1[31:0]与信号u2[31:0]进行按位异或运算后得到信号u3[31:0]并发送给迭代模块;
[0116]
第二十一多路选择器以计数器低位信号lsb作为控制端,并接收白密钥wk[63:0],从而输出选择结果9给第二十二多路选择器;
[0117]
迭代模块以计数器低位信号lsb为控制信号,并接收信号u0[31:0]和信号u3[31:0],从而产生信号m1[31:0]和信号m2[31:0],信号m1[31:0]作为gfn
4,r
集成单元的一个输出信号产生信号l[127:96]或信号l[63:32]或密文c[127:96]或密文c[63:32],信号m2[31:0]与信号f1[31:0]进行按位异或运算得到信号d1[31:0];
[0118]
第二十二多路选择器以状态信号state作为控制端,接收选择结果9和预置数“0”,并输出选择结果10,然后与信号d1[31:0]进行按位异或运算后得到信号l[95:64]或信号l[31:0]或密文c[95:64]或密文c[31:0],并作为gfn
4,r
集成单元的另一个输出信号。
[0119]
具体实施中,gfn
4,r
集成单元输出信号l[127:0]时,第十一多路选择器至第十四多路选择器选择密钥k[127:0]作为输出,第十八多路选择器选择预置数“0”作为输出,第二十多路选择器选择常数con[31:0]作为输出,第二十二多路选择器选择预置数“0”作为输出;
[0120]
gfn
4,r
集成单元输出密文c[127:0]时,第十一多路选择器至第十四多路选择器选择明文p[127:0]作为输出,第十八多路选择器选择白密钥wk[127:64]作为输出,第二十多路选择器选择轮密钥rk[63:0]作为输出,第二十二多路选择器选择白密钥wk[63:0]作为输出。
[0121]
如图7所示,迭代模块包括4组寄存器l0、l1、r0、r1;
[0122]
寄存器l0和r0先后接收信号u0[31:0]作为初值,寄存器l1和r1先后接收信号u3[31:0]作为初值;
[0123]
当计数器低位信号lsb为0时,寄存器l0保持不变,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与r0异或后得到的值;
[0124]
当计数器低位信号lsb为1时,寄存器l0接收寄存器r0的值,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与l0异或后得到的值。

技术特征:


1.一种结构紧凑的clefia算法加密电路,其特征在于,包括:数据流控制单元、常数运算单元、密钥扩展单元以及gfn
4,r
集成单元;所述数据流控制单元接收外部输入的时钟信号、复位信号和电路运行信号,并在电路运行信号有效时,将自身的电路忙信号拉高并发送给所述常数运算单元;所述数据流控制单元内部的计数器开始计数,并产生计数器低位信号分别发送给所述常数运算单元和gfn
4,r
集成单元,同时产生状态信号并分别发送给所述密钥扩展单元和gfn
4,r
集成单元;所述常数运算单元接收所述时钟信号、所述复位信号和所述电路运行信号以及所述电路忙信号和所述计数器低位信号,并向所述密钥扩展单元和gfn
4,r
集成单元分别输出一组常数;所述gfn
4,r
集成单元接收外部输入的明文、所述时钟信号、所述复位信号、所述密钥、所述计数器低位信号、所述状态信号和一组常数,并生成信号l[127:0]后发送给所述密钥扩展单元;所述密钥扩展单元接收外部输入的密钥、所述时钟信号、复位信号、所述状态信号、一组常数以及所述信号l[127:0],并生成白密钥和轮密钥一起发送给所述gfn
4,r
集成单元;所述gfn
4,r
集成单元根据所述白密钥和轮密钥,并生成密文c[127:0]后输出,同时,所述数据流控制单元产生加密完成信号。2.根据权利要求1所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述数据流控制单元包括:加法器、计数器、第一比较器、第二比较器、第一触发器至第三触发器、第一多路选择器至第六多路选择器;所述加法器接收所述计数器发送的计数值后进行循环加1运算,并得到累加结果后发送给第一多路选择器;所述第一多路选择器在外部输入的电路运行信号为高电平时选择所述加法器输出的累加结果并输出给第二多路选择器;所述第二多路选择器在加密完成信号为低电平时,选择第一多路选择器输出的累加结果并发送给计数器;所述计数器在电路运行信号有效时开始计数,并将生成的计数值发送给第一比较器,同时将计数值最低位作为所述数据流控制单元的一个输出;所述第一比较器接收计数器的计数值以及外部输入的预置数a后,产生比较结果并发送给第三多路选择器;所述第三多路选择器在第一比较器输出的比较结果为高电平时,选择预置数“1”进行输出,所述第三多路选择器在第一比较器输出的比较结果为低电平时,选择预置数“0”进行输出,从而将输出结果发送给第一触发器;所述第一触发器接收外部输入的时钟信号和复位信号,并生成加密完成信号后分别发送给第二多路选择器和第五多路选择器;所述第四多路选择器在外部输入的电路运行信号为高电平时,选择预置数“1”输出给第五多路选择器;所述第五多路选择器在加密完成信号为低电平时,选择第四多路选择器的输出值并发送给第二触发器;所述第二触发器接收外部输入的时钟信号、复位信号并输出电路忙信号;所述第二比较器接收计数器输出的计数值,并与“1”进行比较,得到的结果发送给第六多路选择器;所述第六多路选择器在第二比较器输出的结果为高电平时,选择外部输入的预置数b输出给第三触发器;
所述第三触发器接收外部输入的时钟信号和复位信号,并根据所述预置数b产生状态信号。3.根据权利要求1所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述常数运算单元包括:触发器、gf(2
16
)乘法器、第七多路选择器和第八多路选择器;所述触发器接收外部输入的时钟信号、复位信号和第七多路选择器的输出信号,得到信号ti[15:0]并发送给gf(2
16
)乘法器;所述gf(2
16
)乘法器以预置数c作为一个乘数,以ti[15:0]作为另一个乘数进行伽罗华域乘法计算,得到的乘法结果发送给第七多路选择器;电路运行信号和电路忙信号通过或门后,再与计数器低位信号相与,得到的逻辑值作为所述第七多路选择器的控制端的输入,当逻辑值为高电平时,将gf(2
16
)乘法器输出的乘法结果发送给触发器;对信号ti[15:0]依次进行取反和循环左移8位操作后得到信号not1[15:0]和信号sl8[15:0],信号ti[15:0]还与预置数d进行按位异或运算后得到信号xor2[15:0];对信号not1[15:0]与预置数f进行按位异或运算得到信号xor1[15:0];对所述信号not1[15:0]进行循环左移1位操作后得到信号sl1[15:0];对信号xor1[15:0]和信号sl8[15:0]进行位拼接操作,得到的第一拼接结果发送给第八多路选择器;对信号xor2[15:0]和信号sl1[15:0]进行位拼接操作,得到的第二拼接结果也发送给第八多路选择器;所述第八多路选择器以所述计数器低位信号作为控制端,并接收所述第一拼接结果和第二拼接结果,从而输出常数信号con[31:0]。4.根据权利要求3所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述密钥扩展单元包括:触发器、异或门、第九多路选择器和第十多路选择器;所述第九多路选择器接收所述状态信号、信号l[127:0],并对信号l[127:0]进行σ函数运算后得到信号ln1[127:0],当状态信号为高电平时,选择信号ln1[127:0]发送给触发器,当状态信号为低电平时,选择信号l[127:0]发送给触发器;所述触发器接收外部输入的时钟信号和复位信号,并输出信号ln2[127:0]发送给异或门;所述第十多路选择器以所述状态信号作为控制端的输入并接收外部输入的密钥k[127:0],当所述状态信号为高电平时选择密钥k[127:0]作为输出信号key1[127:0],当所述状态信号为低电平时选择预置数“0”作为输出信号key1[127:0]并发送给异或门;对常数信号con[31:0]进行位拼接操作得到信号con1[127:0]并发送给异或门;所述异或门对信号ln2[127:0]、信号key1[127:0]和信号con1[127:0]进行按位异或运算后得到轮密钥rk[63:0]并作为所述密钥扩展单元的一个输出信号;所述密钥扩展单元将所述密钥k[127:0]作为白密钥wk[127:0]并输出。5.根据权利要求4所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述gfn
4,r
集成单元包括:f函数、迭代模块、第十一多路选择器至第二十二多路选择器;所述第十一多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[127:96]和部分密钥k[127:96],并输出选择结果1给第十五多路选择器;
所述第十二多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[63:32]和部分密钥k[63:32],并输出选择结果2给第十五多路选择器;所述第十三多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[95:64]和部分密钥k[95:64],并输出选择结果3发送给第十六多路选择器;所述第十四多路选择器以所述状态信号作为控制端,接收外部输入的部分明文p[31:0]和部分密钥k[31:0],并输出选择结果4给第十六多路选择器;所述第十五多路选择器以所述计数器低位信号作为控制端,并接收选择结果1和选择结果2,从而输出信号u0[31:0]分别给f函数和迭代模块;所述第十六多路选择器以所述计数器低位信号作为控制端,并接收选择结果3和选择结果4,从而输出信号u1[31:0];所述第十七多路选择器以所述计数器低位信号作为控制端,并接收所述白密钥wk[127:64],从而输出选择结果5给第十八多路选择器;所述第十八多路选择器以所述状态信号作为控制端,接收选择结果5和预置数“0”,并输出选择结果6,然后与信号u1[31:0]进行按位异或运算后得到信号u2[31:0];所述第十九多路选择器以所述计数器低位信号作为控制端,并接收所述轮密钥rk[63:0],从而输出选择信号7给第二十多路选择器;所述第二十多路选择器以所述状态信号作为控制端,接收选择信号7和所述常数con[31:0],从而输出选择信号8发送给f函数;所述f函数接收数所述计数器低位信号、信号u0[31:0]和选择信号8,从而输出信号f1[31:0];对信号f1[31:0]与信号u2[31:0]进行按位异或运算后得到信号u3[31:0]并发送给迭代模块;所述第二十一多路选择器以所述计数器低位信号作为控制端,并接收所述白密钥wk[63:0],从而输出选择结果9给第二十二多路选择器;所述迭代模块以所述计数器低位信号为控制信号,并接收信号u0[31:0]和信号u3[31:0],从而产生信号m1[31:0]和信号m2[31:0],其中,信号m1[31:0]作为gfn
4,r
集成单元的一个输出信号产生信号l[127:96]或信号l[63:32]或密文c[127:96]或密文c[63:32],信号m2[31:0]与信号f1[31:0]进行按位异或运算得到信号d1[31:0];所述第二十二多路选择器以所述状态信号作为控制端,接收选择结果9和预置数“0”,并输出选择结果10,然后与信号d1[31:0]进行按位异或运算后得到信号l[95:64]或l[31:0]或密文c[95:64]或密文c[31:0],并作为gfn
4,r
集成单元的另一个输出信号。6.根据权利要求5所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述迭代模块包括4组寄存器l0、l1、r0、r1;寄存器l0和r0先后接收信号u0[31:0]作为初值,寄存器l1和r1先后接收信号u3[31:0]作为初值;当计数器低位信号为0时,寄存器l0保持不变,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与r0异或后得到的值;当计数器低位信号为1时,寄存器l0接收寄存器r0的值,寄存器l1接收寄存器r1的值,寄存器r0接收寄存器l1的值,寄存器r1接收由寄存器l1经过f函数后,再与l0异或后得到的
值。7.根据权利要求5所述的一种结构紧凑的clefia算法加密电路,其特征在于,所述gfn
4,r
集成单元输出信号l[127:0]时,第十一多路选择器至第十四多路选择器选择所述所述密钥k[127:0]作为输出,第十八多路选择器选择预置数“0”作为输出,第二十多路选择器选择所述常数con[31:0]作为输出,第二十二多路选择器选择预置数“0”作为输出;所述gfn
4,r
集成单元输出密文c[127:0]时,第十一多路选择器至第十四多路选择器选择所述明文p[127:0]作为输出,第十八多路选择器选择所述白密钥wk[127:64]作为输出,第二十多路选择器选择所述轮密钥rk[63:0]作为输出,第二十二多路选择器选择所述白密钥wk[63:0]作为输出。

技术总结


本发明公开了一种结构紧凑的CLEFIA算法加密电路,包括:数据流控制单元、常数运算单元、密钥扩展单元和GFN


技术研发人员:

程心 徐一璇 邢鑫怡 张永强 张章

受保护的技术使用者:

合肥工业大学

技术研发日:

2022.08.18

技术公布日:

2022/11/18

本文发布于:2024-09-20 19:36:30,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/5697.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:信号   所述   多路   选择器
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议