CN114282469A - 一种Camellia算法P函数的硬件电路及优化方法 - Google Patents

一种Camellia算法P函数的硬件电路及优化方法 Download PDF

Info

Publication number
CN114282469A
CN114282469A CN202111601868.3A CN202111601868A CN114282469A CN 114282469 A CN114282469 A CN 114282469A CN 202111601868 A CN202111601868 A CN 202111601868A CN 114282469 A CN114282469 A CN 114282469A
Authority
CN
China
Prior art keywords
module
output signal
input signals
function
layer
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.)
Pending
Application number
CN202111601868.3A
Other languages
English (en)
Inventor
沈璇
何俊
黄金杰
王欣玫
代威
陈刚
李云凡
王建山
王磊
张洪碧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN202111601868.3A priority Critical patent/CN114282469A/zh
Publication of CN114282469A publication Critical patent/CN114282469A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Design And Manufacture Of Integrated Circuits (AREA)

Abstract

本发明公开了一种Camellia算法P函数的硬件电路及优化方法。该硬件电路中,Camellia算法P函数的总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},硬件电路包括四层电路;第一层电路四个模块的输出信号仅受总输入信号影响;第二层电路四个模块的输出信号同时受总输入信号和第一层电路四个模块的输出信号影响;第三层电路四个模块的输出信号同时受第一层电路和第二层电路共八个模块的输出信号影响;第四层电路四个模块的输出信号同时受第二层电路和第三层电路共八个模块的输出信号影响。本发明中异或门电路数是目前已知最少的,降低了整体密码算法硬件实现的成本及面积。

Description

一种Camellia算法P函数的硬件电路及优化方法
技术领域
本发明属于Camellia算法技术领域,更具体地,涉及一种Camellia算法P函数的硬件电路及优化方法。
背景技术
随着高速无线通信网和物联网的发展,各类通信设备和处理终端逐渐朝着轻量化、智能化方向发展。轻量级设备的普及对密码算法提出了更高的要求,首先,资源受限装置需提供安全的加解密功能;其次,加解密电路面积必须尽可能小。因此,密码算法的优化实现越来越重要。Camellia是一种常用的分组密码算法,由三菱和日本电信电话(NTT)于2000年共同发明,具有较高的安全性强度,是欧盟NESSIE项目选定算法和日本CRYPTREC项目推荐算法,并于2005年正式成为ISO/IEC国际标准,广泛应用于网络通信加密领域。
现代分组密码一般包含线性部分和非线性部分。在研究分组密码的优化实现时,通常将密码算法线性部分表示成有限域F2上的二元矩阵,并通过搜索该矩阵的实现评估密码算法的实现代价。然而,上述方法并不适用于Camellia算法。
发明内容
针对现有技术的至少一个缺陷或改进需求,本发明提供了一种Camellia算法P函数的硬件电路及优化方法,其实现P函数的异或门电路数是目前已知最少的,降低了整体密码算法硬件实现的成本及面积。
为实现上述目的,按照本发明的第一方面,提供了一种Camellia算法P函数的硬件电路,Camellia算法P函数的总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},所述硬件电路包括四层电路,每层电路包括四个模块;
其中第一层电路的输入信号为:z1,z2,z3,z4,z5,z6,z7,z8,z1={x1,x2,……,x8},z2={x9,x10,……,x16},z3={x17,x18,……,x24},z4={x25,x26,……,x32},z5={x33,x34,……,x40},z6={x41,x42,……,x48},z7={x49,x50,……,x56},z8={x57,x58,……,x64},输出信号为:
Figure BDA0003432092590000021
Figure BDA0003432092590000022
Figure BDA0003432092590000023
表示异或操作;
第二层电路的输入信号为:z5,z6,z7,z8,z9,z10,z11,z12,输出信号为:
Figure BDA0003432092590000024
第三层电路的输入信号为:z9,z10,z11,z12,z13,z15,z18,z20,输出信号为:z22,z19,z14,z17,并且z22,z19,z14,z17还作为所述硬件电路的输出信号,
Figure BDA0003432092590000025
第四层电路的输入信号为:z13,z14,z15,z17,z18,z19,z20,z22,输出信号为:z23,z21,z16,z24,并且z23,z21,z16,z24还作为所述硬件电路的输出信号,
Figure BDA0003432092590000026
进一步地,其中第一层电路包括第一模块、第二模块、第三模块和第四模块;
第一模块的输入信号为:x1,x2,x3,x4,x5,x6,x7,x8,x41,x42,x43,x44,x45,x46,x47,x48,输出信号为
Figure BDA0003432092590000027
Figure BDA0003432092590000028
Figure BDA0003432092590000029
Figure BDA00034320925900000210
第二模块的输入信号为:x17,x18,x19,x20,x21,x22,x23,x24,x57,x58,x59,x60,x61,x62,x63,x64,输出信号为:
Figure BDA00034320925900000211
Figure BDA00034320925900000212
Figure BDA00034320925900000213
第三模块的输入信号为:x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,输出信号为:
Figure BDA00034320925900000214
Figure BDA00034320925900000215
Figure BDA0003432092590000031
第四模块的输入信号为:x9,x10,x11,x12,x13,x14,x15,x16,x49,x50,x51,x52,x53,x54,x55,x56,输出信号为:
Figure BDA0003432092590000032
Figure BDA0003432092590000033
Figure BDA0003432092590000034
进一步地,第二层电路包括第五模块、第六模块、第七模块和第八模块;
第五模块的输入信号为:x49,x50,x51,x52,x53,x54,x55,x56
Figure BDA0003432092590000035
输出信号为:
Figure BDA0003432092590000036
Figure BDA0003432092590000037
Figure BDA0003432092590000038
第六模块的输入信号为:x33,x34,x35,x36,x37,x38,x39,x40
Figure BDA0003432092590000039
输出信号为:
Figure BDA00034320925900000310
Figure BDA00034320925900000311
Figure BDA00034320925900000312
Figure BDA00034320925900000313
第七模块的输入信号为:x41,x42,x43,x44,x45,x46,x47,x48
Figure BDA00034320925900000314
输出信号为:
Figure BDA00034320925900000315
Figure BDA00034320925900000316
Figure BDA00034320925900000317
Figure BDA00034320925900000318
第八模块的输入信号为:x57,x58,x59,x60,x61,x62,x63,x64
Figure BDA00034320925900000319
输出信号为:
Figure BDA00034320925900000320
Figure BDA00034320925900000321
Figure BDA00034320925900000322
Figure BDA00034320925900000323
进一步地,第三层电路包括第九模块、第十模块、第十一模块和第十二模块;
第九模块的输入信号为:
Figure BDA0003432092590000041
Figure BDA0003432092590000042
输出信号为:
Figure BDA0003432092590000043
Figure BDA0003432092590000044
Figure BDA0003432092590000045
Figure BDA0003432092590000046
第十模块的输入信号为:
Figure BDA0003432092590000047
Figure BDA0003432092590000048
输出信号为:
Figure BDA0003432092590000049
Figure BDA00034320925900000410
Figure BDA00034320925900000411
Figure BDA00034320925900000412
第十一模块的输入信号为:
Figure BDA00034320925900000413
Figure BDA00034320925900000414
输出信号为:
Figure BDA00034320925900000415
Figure BDA00034320925900000416
Figure BDA00034320925900000417
Figure BDA00034320925900000418
第十二模块的输入信号为:
Figure BDA00034320925900000419
输出信号为:
Figure BDA00034320925900000420
Figure BDA00034320925900000421
Figure BDA00034320925900000422
进一步地,第四层电路包括第十三模块、第十四模块、第十五模块和第十六模块;
第十三模块的输入信号为:
Figure BDA00034320925900000423
Figure BDA00034320925900000424
输出信号为:
Figure BDA00034320925900000425
Figure BDA00034320925900000426
Figure BDA00034320925900000427
Figure BDA0003432092590000051
第十四模块的输入信号为:
Figure BDA0003432092590000052
Figure BDA0003432092590000053
输出信号为:
Figure BDA0003432092590000054
Figure BDA0003432092590000055
Figure BDA0003432092590000056
Figure BDA0003432092590000057
第十五模块的输入信号为:
Figure BDA0003432092590000058
Figure BDA0003432092590000059
输出信号为:
Figure BDA00034320925900000510
Figure BDA00034320925900000511
Figure BDA00034320925900000512
Figure BDA00034320925900000513
第十六模块的输入信号为:
Figure BDA00034320925900000514
Figure BDA00034320925900000515
输出信号为:
Figure BDA00034320925900000516
Figure BDA00034320925900000517
Figure BDA00034320925900000518
Figure BDA00034320925900000519
进一步地,包括128个异或逻辑门。
按照本发明的第二方面,提供了一种Camellia算法P函数的硬件电路的优化方法,包括步骤:
S1,将Camellia算法P函数表示为64×64的二元矩阵,总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},继而将Camellia算法P函数表示为元素在有限域
Figure BDA00034320925900000520
上的矩阵;
S2,优化有限域
Figure BDA00034320925900000521
上矩阵的实现,包括子步骤:
S2.1,初始化异或操作的输入变量集合S,S={z1,z2,…,z8},z1={x1,x2,……,x8},z2={x9,x10,……,x16},z3={x17,x18,……,x24},z4={x25,x26,……,x32},z5={x33,x34,……,x40},z6={x41,x42,……,x48},z7={x49,x50,……,x56},z8={x57,x58,……,x64},继而将Camellia算法P函数表示为元素在有限域
Figure BDA0003432092590000061
上的矩阵;
S2.2,给出利用集合S中的元素生成矩阵输出变量的异或操作方案集合Imp;
S2.3,遍历集合Imp,消除其中的冗余异或操作;
S2.4,将经过步骤S2.3处理后的集合Imp中的异或操作对应的矩阵实现深度为D,将集合Imp中的异或操作按深度分为D个集合,从第二层开始,遍历之前的每一层,从中选择两个元素做异或,并将异或后得到的结果保存到集合S中,利用更新的集合S生成新的矩阵实现,若该实现消耗异或操作数较之前有所减少,则用新生成的矩阵实现替换集合Imp,转到步骤S2.3,否则,若异或操作数并未减少,转到S2.5;
S2.5,将集合Imp中的异或操作展开成关于输入变量{z1,z2,……,z8}的线性表达式,转到S2.6;
S2.6,重复执行步骤S2.1至S2.5预设次数,保留异或操作数最小的集合Imp,作为有限域
Figure BDA0003432092590000062
上矩阵的最优实现。
进一步地,一种Camellia算法P函数的硬件电路的优化方法,还包括步骤:
S3,确定有限域
Figure BDA0003432092590000063
上矩阵的最优实现后,确定Camellia算法P函数的门级逻辑电路。
总体而言,本发明与现有技术相比,具有有益效果:
(1)本发明中异或门电路数是目前已知最少的,减少了Camellia算法P函数的实现代价,进而降低了整体密码算法硬件实现的成本及面积。
(2)本发明的优化方法中,采用基于深度优先的框架,在搜索矩阵优化时,从当前深度出发,将之前所有深度中因异或操作产生的中间结果作为当前深度下异或门的可能输入信号,由此保证了本发明生成的矩阵优化实现电路深度较小。利用该框架,可以使得本发明得到的密码算法P函数优化实现电路的电路深度较优的同时,异或操作数也最小。
(3)本发明的优化方法中,调用启发式算法次数少,对启发式算法依赖性小,搜索过程速度更快,保证了本发明的高效性。
附图说明
图1是本发明实施例的Camellia算法的F-函数流程图;
图2是本发明实施例的Camellia算法P函数的实现中各层之间的关系图;
图3是本发明实施例的Camellia算法P函数的实现电路图;
图4是本发明实施例的第一模块电路图;
图5是本发明实施例的第二模块电路图;
图6是本发明实施例的第三模块电路图;
图7是本发明实施例的第四模块电路图;
图8是本发明实施例的第五模块电路图;
图9是本发明实施例的第六模块电路图;
图10是本发明实施例的第七模块电路图;
图11是本发明实施例的第八模块电路图;
图12是本发明实施例的第九模块电路图;
图13是本发明实施例的第十模块电路图;
图14是本发明实施例的第十一模块电路图;
图15是本发明实施例的第十二模块电路图;
图16是本发明实施例的第十三模块电路图;
图17是本发明实施例的第十四模块电路图;
图18是本发明实施例的第十五模块电路图;
图19是本发明实施例的第十六模块电路图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
图1所示为Camellia密码算法更新函数(即F-函数)的流程图,本发明涉及的电路优化整个算法中的P-函数(即线性层)部分对应电路。
本发明的P-函数电路的得到方法为,将算法P-函数表示成元素在
Figure BDA0003432092590000081
上的矩阵;优化
Figure BDA0003432092590000082
上矩阵的实现,列出
Figure BDA0003432092590000083
上矩阵的实现关系图;列出Camellia算法P-函数的门级逻辑电路图。
S1,将Camellia算法P函数表示为64×64的二元矩阵,总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},继而将Camellia算法P函数表示为元素在有限域
Figure BDA0003432092590000084
上的矩阵。
通过将密码算法P函数表示成二元域F2上的矩阵,继而利用既有启发式算法搜索矩阵的优化实现是目前探索密码算法P函数优化实现的主要手段。
Camellia算法的更新函数中,P-函数可以表示成有限域F2上64×64的二元矩阵,该矩阵如下所示:
1000000000000000100000001000000000000000100000001000000010000000010000000000000001000000010000000000000001000000010000000100000000100000000000000010000000100000000000000010000000100000001000000001000000000000000100000001000000000000000100000001000000010000000010000000000000001000000010000000000000001000000010000000100000000100000000000000010000000100000000000000010000000100000001000000001000000000000000100000001000000000000000100000001000000010000000010000000000000001000000010000000000000001000000010000000110000000100000000000000010000000100000000000000010000000100000000100000001000000000000000100000001000000000000000100000001000000001000000010000000000000001000000010000000000000001000000010000000010000000100000000000000010000000100000000000000010000000100000000100000001000000000000000100000001000000000000000100000001000000001000000010000000000000001000000010000000000000001000000010000000010000000100000000000000010000000100000000000000010000000100000000100000001000000000000000100000001000000000000000100000001100000001000000010000000000000001000000010000000000000001000000001000000010000000100000000000000010000000100000000000000010000000010000000100000001000000000000000100000001000000000000000100000000100000001000000010000000000000001000000010000000000000001000000001000000010000000100000000000000010000000100000000000000010000000010000000100000001000000000000000100000001000000000000000100000000100000001000000010000000000000001000000010000000000000001000000001000000010000000100000000000000010000000100000000000000010000000010000000100000001000000010000000100000001000000000000000000000000100000001000000010000000100000001000000010000000000000000000000001000000010000000100000001000000010000000100000000000000000000000010000000100000001000000010000000100000001000000000000000000000000100000001000000010000000100000001000000010000000000000000000000001000000010000000100000001000000010000000100000000000000000000000010000000100000001000000010000000100000001000000000000000000000000100000001000000010000000100000001000000010000000010000000100000000000000000000000000000001000000010000000100000000100000001000000000000000000000000000000010000000100000001000000001000000010000000000000000000000000000000100000001000000010000000010000000100000000000000000000000000000001000000010000000100000000100000001000000000000000000000000000000010000000100000001000000001000000010000000000000000000000000000000100000001000000010000000010000000100000000000000000000000000000001000000010000000100000000100000001000000000000000000000000000000010000000100000001000000001000000010000000000000001000000000000000100000001000000000000000010000000100000000000000010000000000000001000000010000000000000000100000001000000000000000100000000000000010000000100000000000000001000000010000000000000001000000000000000100000001000000000000000010000000100000000000000010000000000000001000000010000000000000000100000001000000000000000100000000000000010000000100000000000000001000000010000000000000001000000000000000100000001000000000000000010000000100000000000000010000000000000001000000010000000000000000100000001000000010000000100000000000000010000000000000000000000001000000010000000100000001000000000000000100000000000000000000000010000000100000001000000010000000000000001000000000000000000000000100000001000000010000000100000000000000010000000000000000000000001000000010000000100000001000000000000000100000000000000000000000010000000100000001000000010000000000000001000000000000000000000000100000001000000010000000100000000000000010000000000000000000000001000000010000000100000001000000000000000110000000000000000000000010000000100000001000000010000000000000000100000000000000000000000100000001000000010000000100000000000000001000000000000000000000001000000010000000100000001000000000000000010000000000000000000000010000000100000001000000010000000000000000100000000000000000000000100000001000000010000000100000000000000001000000000000000000000001000000010000000100000001000000000000000010000000000000000000000010000000100000001000000010000000000000000100000000000000000000000100000001000000010000000100000000
实现上述矩阵所需异或操作的数目即Camellia算法P函数电路所耗异或逻辑门数目。然而,目前已知的优化矩阵实现的启发式算法搜索效率受限于矩阵大小和稠密度,具体来说,随着矩阵的维度和稠密度增加,算法生成矩阵实现方案的速度降低,这导致算法搜索矩阵优化实现的效率不高,也因此使得密码算法P函数实现代价的优化效果差强人意。由于上述原因,既有启发式算法中,只有Paar提出的算法Paar1和后来的学者对其进行改进后提出的算法RPaar1能快速的给出Camellia算法P函数的优化实现方案,具体实现代价(异或门数)如下表所示:
表1算法Paar1和RPaar1优化Camellia算法P函数矩阵结果对比
优化前 Paar1 RPaar1
288 176 165
由图1所示流程图可知,Camellia算法P函数的输入为(z1,z2,…,z8),其中
Figure BDA0003432092590000101
Camellia算法P函数的输出为(z′1,z′2,…,z′8),其中
Figure BDA0003432092590000102
由算法P-函数可知,其输入输出变量满足如下关系式:
Figure BDA0003432092590000103
Figure BDA0003432092590000104
Figure BDA0003432092590000105
Figure BDA0003432092590000106
Figure BDA0003432092590000107
Figure BDA0003432092590000108
Figure BDA0003432092590000109
Figure BDA00034320925900001010
于是Camellia算法P函数可以由元素属于
Figure BDA00034320925900001011
上的矩阵表示如下,其中“1”对应F2上8×8的单位矩阵。
Figure BDA00034320925900001012
S2,优化有限域
Figure BDA00034320925900001013
上矩阵的实现。
将密码算法P函数表示成元素属于有限域
Figure BDA00034320925900001014
的矩阵,通过优化
Figure BDA00034320925900001015
上矩阵的实现构造算法P函数的优化实现方案。保持与图1所示算法P函数输入输出信号一致的符号,将矩阵的输入变量和输出变量分别记为(z1,z2,…,z8)和(z′1,z′2,…,z′8),其中zi和z′i均属于
Figure BDA00034320925900001016
下面给出本发明优化
Figure BDA0003432092590000111
上的矩阵的具体步骤。
S2.1,初始化异或操作可能的输入变量组成的集合S。
将异或操作可能的输入组成的集合记为S,S的初值为元素属于
Figure BDA0003432092590000112
上矩阵的所有输入组成的集合,对于Camellia算法P函数对应的矩阵,S={z1,z2,…,z8},其中
Figure BDA0003432092590000113
转到S2.2。
S2.2,给出利用集合S中的元素生成矩阵输出变量的异或操作方案集合Imp。
给出利用集合S中的元素{z1,z2,…,z8}生成矩阵输出变量(z′1,z′2,…,z′8)的方案,记矩阵的实现为Imp,Imp是由一系列形如
Figure BDA0003432092590000114
的操作组成的集合,矩阵的实现代价即集合Imp中这类操作的数量。转到S2.3。
此时集合Imp中的操作方案可以是随机生成的,并非是最优异或操作方案集合,需要进行后续的步骤进行优化。
S2.3,遍历集合Imp,消除其中的冗余异或操作。
由于硬件工艺库的不同,异或门有2-输入异或门和3-输入异或门,对应逻辑单元的输入变量数分别为2和3。考虑到集合Imp中的操作均由2-输入异或门实现,一方面,Imp中的异或操作得到的结果可能存在重复,也就是说,存在两个不同的操作{b,c}和{d,e},
Figure BDA0003432092590000115
的结果等于
Figure BDA0003432092590000116
另一方面,在Imp集合中,可能存在两个重复的异或操作,即,存在
Figure BDA0003432092590000117
针对这两种情形,均删除重复的操作,仅保留其中之一,并根据删除的异或操作更新Imp中剩余操作的操作数。转到S2.4。
S2.4,初步优化集合Imp中的操作数。
设经过步骤S2.3处理后的集合Imp中的异或操作对应的矩阵实现深度为D,将集合Imp中的异或操作按深度分为D个集合。从第二层开始,遍历之前的每一层,从中选择两个元素做异或,并将异或后得到的结果保存到集合S中。利用更新的集合S生成新的矩阵实现(具体实现可和步骤S2.2相同),若该实现消耗异或操作数较之前有所减少,则用新生成的实现替换Imp,转到步骤S2.3;否则,若异或操作数并未减少,转到S2.5。
进一步地,S2.4包括子步骤:
S2.4.1,根据深度D,将集合Imp中的异或操作分为D个不同的集合,记为Imp1,Imp2,…,ImpD,Impj(j=1,2,…,D)由一组形如
Figure BDA0003432092590000121
的异或操作构成,对应矩阵实现中第j层所消耗的异或操作组成的集合,其中j=1,2,…,D。
S2.4.2,假设当前层记为L(2≤L≤D),当前层之前的层为第1层一直到第L-1层,接着从这些层中的异或操作组成的集合Imp1,Imp2,…,ImpL-1中遍历选择两个操作,将异或得到的结果加入到集合S中。集合S得到更新,利用更新后的S集合有可能找到矩阵异或数消耗更少的实现。
S2.4.3,利用更新后的集合S生成矩阵实现,根据新生成的矩阵实现,比较该实现消耗的异或操作数与当前Imp集合中异或操作总数,若新生成的实现所需异或操作较少,表明一种更优的实现已经找到,因此,用该实现替换掉当前的集合Imp,由于矩阵实现得到更新,需重新开始优化过程,因此,转到S2.3;否则,若新生成的实现所需异或数并未减少,则表明矩阵实现并没有得到优化,此时如果第1层一直到第L-1层消耗的异或操作未被遍历完,继续遍历过程。如果上述遍历过程已结束,并且L<D,则令L=L+1并回到步骤S2.4.2,直至L=D,并且从所有小于D的层中遍历选择两个异或操作的过程完成为止。
S2.5,进一步减少集合Imp中的操作数。
将集合Imp中的异或操作展开成关于输入变量zi的线性表达式,其中
Figure BDA0003432092590000122
设集合Imp中异或操作的数量为N,则扩展之后可得到N个关于zi的线性表达式,N个表达式与矩阵的输入变量之间的关系可由矩阵表示,即得到一个N×8的矩阵,该矩阵中的元素为
Figure BDA0003432092590000123
上的0或1,因此可以用既有的启发式算法搜索其优化实现。转到S2.6。
既有启发式算法的搜索效率受到如矩阵大小、矩阵稠密度等因素的影响,过多的调用既有启发式算法在速度上并不一定占据优势;而在本发明实施例的搜索过程中,异或操作是展开成元素属于有限域
Figure BDA0003432092590000124
的矩阵,并且,给定一种矩阵的实现。
S2.6,重复上述步骤S2.1至S2.5预设次数,即重新生成新的集合Imp,并对新的集合Imp执行消除冗余异或操作和优化操作,最后保留异或操作数最小的集合Imp,其对应的矩阵实现也最优。
利用上述步骤,得到了如表2所示Camellia算法P函数在
Figure BDA0003432092590000131
上对应矩阵的优化实现,该实现由16个异或操作构成。
表2 Camellia算法P函数在
Figure BDA0003432092590000132
上对应矩阵的实现
Figure BDA0003432092590000133
在目前被提出的搜索矩阵优化实现的启发式算法中,适用于优化维数小于64的矩阵的有Paar1、RPaar1、BP、RNBP、A1以及A2,表3给出了上述启发式算法生成的矩阵实现所需异或操作数,其中第二行为
Figure BDA0003432092590000134
上8x×8的矩阵的优化实现所需异或操作的数量。由于Camellia算法P函数表示成
Figure BDA0003432092590000135
上8×8的矩阵时,该矩阵由
Figure BDA0003432092590000136
上的“0”和“1”构成,分别对应F2上8×8的零矩阵和8×8的单位矩阵,因此,
Figure BDA0003432092590000137
上8×8矩阵的实现代价乘以8即该矩阵对应在F2上的矩阵的实现代价,如表3第三行所示,即Camellia算法P函数硬件实现电路所需异或逻辑门的数量。
表3现有启发式算法优化矩阵实现结果对比
Figure BDA0003432092590000138
由表2的实现可知,本发明涉及的
Figure BDA0003432092590000141
上8×8矩阵的实现需要进行16次异或操作,对应16×8=128个异或逻辑门,比较表1和表3第三行的结果可知,本发明的Camellia算法P函数硬件实现所需异或门数最少,为目前已知最优。
如图2所示,Camellia算法P函数在
Figure BDA0003432092590000142
上对应矩阵的优化实现可以根据深度分为四层。
(1)第一层的输入信号为:z1,z2,z3,z4,z5,z6,z7,z8,输出信号为:z9,z10,z11,z12。第一层需进行4次异或操作,分别为:
Figure BDA0003432092590000143
Figure BDA0003432092590000144
(2)第二层的输入信号为:z5,z6,z7,z8,z9,z10,z11,z12,输出信号为:z20,z18,z13,z15。第二层需进行4次异或操作,分别为:
Figure BDA0003432092590000145
Figure BDA0003432092590000146
(3)第三层的输入信号为:z9,z10,z11,z12,z13,z15,z18,z20,输出信号为:z22,z19,z14,z17,分别对应矩阵的输出信号z′8,z′6,z′7,z′5。第三层需进行4次异或操作,分别为:
Figure BDA0003432092590000147
Figure BDA0003432092590000148
(4)第四层的输入信号为:z13,z14,z15,z17,z18,z19,z20,z22,输出信号为:z23,z21,z16,z24,分别对应矩阵的输出信号z′1,z′3,z′4,z′2。第四层需进行4次异或操作,分别为:
Figure BDA0003432092590000149
Figure BDA00034320925900001410
S3、确定有限域
Figure BDA00034320925900001411
上矩阵的最优实现后,确定Camellia算法P函数的门级逻辑电路。
由图1可知,Camellia算法P函数的输入以字节为单位,因此,为了得到Camellia算法P函数的门级逻辑电路,需将表2中的实现按比特展开。Camellia算法P函数对应一个F2上64×64的二元矩阵,记该矩阵的输入信号为(x1,x2,…,x64),输出信号为(y1,y2,…,y64),则上述输入信号与图1所示基于字节的变量zi(i=1,2,…,8)之间的关系为:z1=(x1,x2,…,x8),z2=(x9,x10,…,x16),z3=(x17,x18,…,x24),z4=(x25,x26,…,x32),z5=(x33,x34,…,x40),z6=(x41,x42,…,x48),z7=(x49,x50,…,x56),z8=(x57,x58,…,x64)。上述输出信号与图1所示基于字节的变量z′i(i=1,2,…,8)之间的关系为:z′1=(y1,y2,…,y8),z′2=(y9,y10,…,y16),z′3=(y17,y18,…,y24),z′4=(y25,y26,…,y32),z′5=(y33,y34,…,y40),z′6=(y41,y42,…,y48),z′7=(y49,y50,…,y56),z′8=(y57,y58,…,y64)。
本发明利用图2所示Camellia算法P函数的实现中各层之间的关系并根据表2所示
Figure BDA0003432092590000151
上矩阵的优化实现中的异或操作将Camellia算法P函数的实现分为十六个模块,其中模块一、模块二、模块三和模块四在同一层并行执行,模块五、模块六、模块七和模块八在同一层并行执行,模块九、模块十、模块十一和模块十二在同一层并行执行,模块十三、模块十四、模块十五和模块十六在同一层并行执行,对每一个模块的分析如下:
(1)第一模块
第一模块的输入字节为z1(P函数的输入)和z6(P函数的输入),输出字节为z9。即,
第一模块的输入信号为:
x1,x2,x3,x4,x5,x6,x7,x8,x41,x42,x43,x44,x45,x46,x47,x48.
第一模块的输出信号为:
Figure BDA0003432092590000152
第一模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000153
Figure BDA0003432092590000154
上述变量中,
Figure BDA0003432092590000155
表示字节z9中的第i比特,i=1,2,…,8。
(2)第二模块
第二模块的输入字节为z3(P函数的输入)和z8(P函数的输入),输出字节为z10。即,
第二模块的输入信号为:
x17,x18,x19,x20,x21,x22,x23,x24,x57,x58,x59,x60,x61,x62,x63,x64.
第二模块的输出信号为:
Figure BDA0003432092590000161
第二模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000162
Figure BDA0003432092590000163
上述变量中,
Figure BDA0003432092590000164
表示字节z10中的第i比特,i=1,2,…,8。
(3)第三模块
第三模块的输入字节为z4(P函数的输入)和z5(P函数的输入),输出字节为z11。即,
第三模块的输入信号为:
x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40.
第三模块的输出信号为:
Figure BDA0003432092590000165
第三模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000166
Figure BDA0003432092590000167
上述变量中,
Figure BDA0003432092590000168
表示字节z11中的第i比特,i=1,2,…,8。
(4)第四模块
第四模块的输入字节为z2(P函数的输入)和z7(P函数的输入),输出字节为z12。即,
第四模块的输入信号为:
x9,x10,x11,x12,x13,x14,x15,x16,x49,x50,x51,x52,x53,x54,x55,x56.
第四模块的输出信号为:
Figure BDA0003432092590000169
第四模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA00034320925900001610
Figure BDA0003432092590000171
上述变量中,
Figure BDA0003432092590000172
表示字节z12中的第i比特,i=1,2,…,8。
(5)第五模块
第五模块的输入字节为z7(P函数的输入)和z9(由第一模块生成),输出字节为z20。即,
第五模块的输入信号为:
x49,x50,x51,x52,x53,x54,x55,x56
Figure BDA0003432092590000173
第五模块的输出信号为:
Figure BDA0003432092590000174
第五模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000175
Figure BDA0003432092590000176
上述变量中,
Figure BDA0003432092590000177
表示字节zj中的第i比特,i=1,2,…,8.
(6)第六模块
第六模块的输入字节为z5(P函数的输入)和z10(由第二模块生成),输出字节为z18。即,
第六模块的输入信号为:
x33,x34,x35,x36,x37,x38,x39,x40
Figure BDA0003432092590000178
第六模块的输出信号为:
Figure BDA0003432092590000179
第六模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA00034320925900001710
Figure BDA00034320925900001711
上述变量中,
Figure BDA00034320925900001712
表示字节zj中的第i比特,i=1,2,…,8。
(7)第七模块
第七模块的输入字节为z6(P函数的输入)和z11(由第三模块生成),输出字节为z13。即,
第七模块的输入信号为:
x41,x42,x43,x44,x45,x46,x47,x48
Figure BDA0003432092590000181
第七模块的输出信号为:
Figure BDA0003432092590000182
第七模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000183
Figure BDA0003432092590000184
上述变量中,
Figure BDA0003432092590000185
表示字节zj中的第i比特,i=1,2,…,8。
(8)第八模块
第八模块的输入字节为z8(P函数的输入)和z12(由第四模块生成),输出字节为z15。即,
第八模块的输入信号为:
x57,x58,x59,x60,x61,x62,x63,x64
Figure BDA0003432092590000186
第八模块的输出信号为:
Figure BDA0003432092590000187
第八模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000188
Figure BDA0003432092590000189
上述变量中,
Figure BDA00034320925900001810
表示字节zj中的第i比特,i=1,2,…,8。
(9)第九模块
第九模块的输入字节为z11(由第三模块生成)和z20(由第五模块生成),输出字节为z22(z'8)。即,
第九模块的输入信号为:
Figure BDA00034320925900001811
第九模块的输出信号为:
Figure BDA0003432092590000191
即y57,y58,y59,y60,y61,y62,y63,y64
第九模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000192
Figure BDA0003432092590000193
上述变量中,
Figure BDA0003432092590000194
表示字节zj中的第i比特,i=1,2,…,8。
(10)第十模块
第十模块的输入字节为z12(由第四模块生成)和z18(由第六模块生成),输出字节为z19(z'6)。即,
第十模块的输入信号为:
Figure BDA0003432092590000195
第十模块的输出信号为:
Figure BDA0003432092590000196
即y41,y42,y43,y44,y45,y46,y47,y48.
第十模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000197
Figure BDA0003432092590000198
上述变量中,
Figure BDA0003432092590000199
表示字节zj中的第i比特,i=1,2,…,8。
(11)第十一模块
第十一模块的输入字节为z10(由第二模块生成)和z13(由第七模块生成),输出字节为z14(z'7)。即,
第十一模块的输入信号为:
Figure BDA00034320925900001910
第十一模块的输出信号为:
Figure BDA0003432092590000201
即y49,y50,y51,y52,y53,y54,y55,y56.
第十一模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000202
Figure BDA0003432092590000203
上述变量中,
Figure BDA0003432092590000204
表示字节zj中的第i比特,i=1,2,…,8。
(12)第十二模块
第十二模块的输入字节为z9(由第一模块生成)和z15(由第八模块生成),输出字节为z17(z'5)。即,
第十二模块的输入信号为:
Figure BDA0003432092590000205
第十二模块的输出信号为:
Figure BDA0003432092590000206
即y33,y34,y35,y36,y37,y38,y39,y40.
第十二模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000207
Figure BDA0003432092590000208
上述变量中,
Figure BDA0003432092590000209
表示字节zj中的第i比特,i=1,2,…,8.
(13)第十三模块
第十三模块的输入字节为z18(由第六模块生成)和z22(由第九模块生成),输出字节为z23(z'1)。即,
第十三模块的输入信号为:
Figure BDA00034320925900002010
第十三模块的输出信号为:
Figure BDA0003432092590000211
即y1,y2,y3,y4,y5,y6,y7,y8
第十三模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000212
Figure BDA0003432092590000213
上述变量中,
Figure BDA0003432092590000214
表示字节zj中的第i比特,i=1,2,…,8。
(14)第十四模块
第十四模块的输入字节为z19(由第十模块生成)和z20(由第五模块生成),输出字节为z21(z'3)。即,
第十四模块的输入信号为:
Figure BDA0003432092590000215
第十四模块的输出信号为:
Figure BDA0003432092590000216
即y17,y18,y19,y20,y21,y22,y23,y24
第十四模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000217
Figure BDA0003432092590000218
上述变量中,
Figure BDA0003432092590000219
表示字节zj中的第i比特,i=1,2,…,8。
(15)第十五模块
第十五模块的输入字节为z14(由第十一模块生成)和z15(由第八模块生成),输出字节为z16(z'4)。即,
第十五模块的输入信号为:
Figure BDA00034320925900002110
第十五模块的输出信号为:
Figure BDA0003432092590000221
即y25,y26,y27,y28,y29,y30,y31,y32
第十五模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000222
Figure BDA0003432092590000223
上述变量中,
Figure BDA0003432092590000224
表示字节zj中的第i比特,i=1,2,…,8。
(16)第十六模块
第十六模块的输入字节为z13(由第七模块生成)和z17(由第十二模块生成),输出字节为z24(z'2)。即,
第十六模块的输入信号为:
Figure BDA0003432092590000225
第十六模块的输出信号为:
Figure BDA0003432092590000226
即y9,y10,y11,y12,y13,y14,y15,y16
第十六模块包括8个异或逻辑门,对应8个异或操作分别为:
Figure BDA0003432092590000227
Figure BDA0003432092590000228
上述变量中,
Figure BDA0003432092590000229
表示字节zj中的第i比特,i=1,2,…,8。
图3中所有模块均为异或门电路的集成,各模块的电路实现已由图4-19具体给出。由于各模块所需异或门电路总数达到目前已知最优,图4-19给出的电路实现降低了算法线性部件的实现代价。基于上述实现,本发明可以减少Camellia算法P函数的实现成本以及面积,从而达到优化整体算法硬件实现的目的。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种Camellia算法P函数的硬件电路,其特征在于,Camellia算法P函数的总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},所述硬件电路包括四层电路,每层电路包括四个模块;
其中第一层电路的输入信号为:z1,z2,z3,z4,z5,z6,z7,z8,z1={x1,x2,……,x8},z2={x9,x10,……,x16},z3={x17,x18,……,x24},z4={x25,x26,……,x32},z5={x33,x34,……,x40},z6={x41,x42,……,x48},z7={x49,x50,……,x56},z8={x57,x58,……,x64},输出信号为:z9,z10,z11,z12,z9=z1⊕z6,z10=z3⊕z8,z11=z4⊕z5,z12=z2⊕z7,⊕表示异或操作;
第二层电路的输入信号为:z5,z6,z7,z8,z9,z10,z11,z12,输出信号为:z20,z18,z13,z15,z20=z7⊕z9,z18=z5⊕z10,z13=z6⊕z11,z15=z8⊕z12
第三层电路的输入信号为:z9,z10,z11,z12,z13,z15,z18,z20,输出信号为:z22,z19,z14,z17,并且z22,z19,z14,z17还作为所述硬件电路的输出信号,z22=z11⊕z20,z19=z12⊕z18,z14=z10⊕z13,z17=z9⊕z15
第四层电路的输入信号为:z13,z14,z15,z17,z18,z19,z20,z22,输出信号为:z23,z21,z16,z24,并且z23,z21,z16,z24还作为所述硬件电路的输出信号,z23=z18⊕z22,z21=z19⊕z20,z16=z14⊕z15,z24=z17⊕z13
2.如权利要求1所述的一种Camellia算法P函数的硬件电路,其特征在于,其中第一层电路包括第一模块、第二模块、第三模块和第四模块;
第一模块的输入信号为:x1,x2,x3,x4,x5,x6,x7,x8,x41,x42,x43,x44,x45,x46,x47,x48,输出信号为
Figure FDA0003432092580000011
Figure FDA0003432092580000012
Figure FDA0003432092580000013
Figure FDA0003432092580000014
第二模块的输入信号为:x17,x18,x19,x20,x21,x22,x23,x24,x57,x58,x59,x60,x61,x62,x63,x64,输出信号为:
Figure FDA0003432092580000021
Figure FDA0003432092580000022
Figure FDA0003432092580000023
第三模块的输入信号为:x25,x26,x27,x28,x29,x30,x31,x32,x33,x34,x35,x36,x37,x38,x39,x40,输出信号为:
Figure FDA0003432092580000024
Figure FDA0003432092580000025
Figure FDA0003432092580000026
第四模块的输入信号为:x9,x10,x11,x12,x13,x14,x15,x16,x49,x50,x51,x52,x53,x54,x55,x56,输出信号为:
Figure FDA0003432092580000027
Figure FDA0003432092580000028
Figure FDA0003432092580000029
3.如权利要求2所述的一种Camellia算法P函数的硬件电路,其特征在于,第二层电路包括第五模块、第六模块、第七模块和第八模块;
第五模块的输入信号为:x49,x50,x51,x52,x53,x54,x55,x56
Figure FDA00034320925800000210
输出信号为:
Figure FDA00034320925800000211
Figure FDA00034320925800000212
Figure FDA00034320925800000213
第六模块的输入信号为:x33,x34,x35,x36,x37,x38,x39,x40
Figure FDA00034320925800000214
输出信号为:
Figure FDA00034320925800000215
Figure FDA00034320925800000216
Figure FDA00034320925800000217
第七模块的输入信号为:x41,x42,x43,x44,x45,x46,x47,x48
Figure FDA00034320925800000218
输出信号为:
Figure FDA0003432092580000031
Figure FDA0003432092580000032
Figure FDA0003432092580000033
第八模块的输入信号为:x57,x58,x59,x60,x61,x62,x63,x64
Figure FDA0003432092580000034
输出信号为:
Figure FDA0003432092580000035
Figure FDA0003432092580000036
Figure FDA0003432092580000037
4.如权利要求3所述的一种Camellia算法P函数的硬件电路,其特征在于,第三层电路包括第九模块、第十模块、第十一模块和第十二模块;
第九模块的输入信号为:
Figure FDA0003432092580000038
Figure FDA00034320925800000323
输出信号为:
Figure FDA0003432092580000039
Figure FDA00034320925800000310
Figure FDA00034320925800000311
Figure FDA00034320925800000312
第十模块的输入信号为:
Figure FDA00034320925800000313
Figure FDA00034320925800000324
输出信号为:
Figure FDA00034320925800000314
Figure FDA00034320925800000315
Figure FDA00034320925800000316
Figure FDA00034320925800000317
第十一模块的输入信号为:
Figure FDA00034320925800000318
Figure FDA00034320925800000325
输出信号为:
Figure FDA00034320925800000319
Figure FDA00034320925800000320
Figure FDA00034320925800000321
Figure FDA00034320925800000322
第十二模块的输入信号为:
Figure FDA0003432092580000041
输出信号为:
Figure FDA0003432092580000042
Figure FDA0003432092580000043
Figure FDA0003432092580000044
Figure FDA0003432092580000045
5.如权利要求4所述的一种Camellia算法P函数的硬件电路,其特征在于,第四层电路包括第十三模块、第十四模块、第十五模块和第十六模块;
第十三模块的输入信号为:
Figure FDA0003432092580000046
Figure FDA00034320925800000424
输出信号为:
Figure FDA0003432092580000047
Figure FDA0003432092580000048
Figure FDA0003432092580000049
Figure FDA00034320925800000410
第十四模块的输入信号为:
Figure FDA00034320925800000411
Figure FDA00034320925800000425
输出信号为:
Figure FDA00034320925800000412
Figure FDA00034320925800000413
Figure FDA00034320925800000414
Figure FDA00034320925800000415
第十五模块的输入信号为:
Figure FDA00034320925800000416
Figure FDA00034320925800000426
输出信号为:
Figure FDA00034320925800000417
Figure FDA00034320925800000418
Figure FDA00034320925800000419
Figure FDA00034320925800000420
第十六模块的输入信号为:
Figure FDA00034320925800000421
Figure FDA00034320925800000427
输出信号为:
Figure FDA00034320925800000422
Figure FDA00034320925800000423
Figure FDA0003432092580000051
Figure FDA0003432092580000052
6.如权利要求1所述的一种Camellia算法P函数的硬件电路,其特征在于,包括128个异或逻辑门。
7.一种Camellia算法P函数的硬件电路的优化方法,其特征在于,包括步骤:
S1,将Camellia算法P函数表示为64×64的二元矩阵,总输入信号为{x1,x2,x3,……,x64},总输出信号为{y1,y2,y3,……,y64},继而将Camellia算法P函数表示为元素在有限域
Figure FDA0003432092580000053
上的矩阵;
S2,优化有限域
Figure FDA0003432092580000054
上矩阵的实现,包括子步骤:
S2.1,初始化异或操作的输入变量集合S,S={z1,z2,…,z8},z1={x1,x2,……,x8},z2={x9,x10,……,x16},z3={x17,x18,……,x24},z4={x25,x26,……,x32},z5={x33,x34,……,x40},z6={x41,x42,……,x48},z7={x49,x50,……,x56},z8={x57,x58,……,x64};
S2.2,给出利用集合S中的元素生成矩阵输出变量的异或操作方案集合Imp;
S2.3,遍历集合Imp,消除其中的冗余异或操作;
S2.4,将经过步骤S2.3处理后的集合Imp中的异或操作对应的矩阵实现深度为D,将集合Imp中的异或操作按深度分为D个集合,从第二层开始,遍历之前的每一层,从中选择两个元素做异或,并将异或后得到的结果保存到集合S中,利用更新的集合S生成新的矩阵实现,若该实现消耗异或操作数较之前有所减少,则用新生成的矩阵实现替换集合Imp,转到步骤S2.3,否则,若异或操作数并未减少,转到S2.5;
S2.5,将集合Imp中的异或操作展开成关于输入变量{z1,z2,……,z8}的线性表达式,转到S2.6;
S2.6,重复执行步骤S2.1至S2.5预设次数,保留异或操作数最小的集合Imp,作为有限域
Figure FDA0003432092580000061
上矩阵的最优实现。
8.如权利要求7所述的一种Camellia算法P函数的硬件电路的优化方法,其特征在于,还包括步骤:
S3,确定有限域
Figure FDA0003432092580000062
上矩阵的最优实现后,确定Camellia算法P函数的门级逻辑电路。
CN202111601868.3A 2021-12-24 2021-12-24 一种Camellia算法P函数的硬件电路及优化方法 Pending CN114282469A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111601868.3A CN114282469A (zh) 2021-12-24 2021-12-24 一种Camellia算法P函数的硬件电路及优化方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111601868.3A CN114282469A (zh) 2021-12-24 2021-12-24 一种Camellia算法P函数的硬件电路及优化方法

Publications (1)

Publication Number Publication Date
CN114282469A true CN114282469A (zh) 2022-04-05

Family

ID=80875271

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111601868.3A Pending CN114282469A (zh) 2021-12-24 2021-12-24 一种Camellia算法P函数的硬件电路及优化方法

Country Status (1)

Country Link
CN (1) CN114282469A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115276955A (zh) * 2022-06-27 2022-11-01 湖北大学 一种优化的clefia算法线性层实现电路

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115276955A (zh) * 2022-06-27 2022-11-01 湖北大学 一种优化的clefia算法线性层实现电路

Similar Documents

Publication Publication Date Title
Zhou et al. Improving the MILP-based security evaluation algorithm against differential/linear cryptanalysis using a divide-and-conquer approach
CN109639579B (zh) 组播报文的处理方法及装置、存储介质、处理器
CN112507644B (zh) 优化的sm4算法线性层电路
CN109145624B (zh) 一种基于Hadoop平台的多混沌文本加密算法
CN114282469A (zh) 一种Camellia算法P函数的硬件电路及优化方法
Derbez et al. Increasing precision of division property
Lee et al. Bundle-updatable SRAM-based TCAM design for openflow-compliant packet processor
CN114615069B (zh) 一种Quartet轻量级加密算法的实现装置及方法
Lee et al. A node-reliability based CRC-aided successive cancellation list polar decoder architecture combined with post-processing
CN106850189A (zh) 一种减少sm3密码杂凑算法中运算量的方法及装置
US7346161B2 (en) Method and apparatus for designing cipher logic, and a computer product
CN108804933B (zh) 一种用于信息隐藏技术中的大数据的进制转换方法
CN111339562B (zh) 保序/揭序密文恢复方法及装置
CN109951275B (zh) 密钥生成方法、装置、计算机设备及存储介质
US6611494B1 (en) Orthogonal sequence generator
CN114826560B (zh) 一种轻量级分组密码cref实现方法及系统
CN114553424A (zh) Zuc-256流密码轻量级硬件系统
Lin et al. Fast tcam-based multi-match packet classification using discriminators
CN111585579B (zh) 基于布尔函数的分组密码s盒快速实现方法及装置
US7433905B2 (en) Device and method for processing digital values in particular in non-adjacent form
Xu et al. Approximate belief propagation decoder for polar codes
US11309896B2 (en) Reconfigurable logic circuit
CN112769703A (zh) 一种高效的基于sram的tcam实现方法
Borowik et al. Logic synthesis method for pattern matching circuits implementation in FPGA with embedded memories
KR100473449B1 (ko) 병렬 연산구조를 갖는 엠디5 해쉬함수 연산 방법

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