CN101969374B - 分组密码算法中混淆层的实现方法 - Google Patents
分组密码算法中混淆层的实现方法 Download PDFInfo
- Publication number
- CN101969374B CN101969374B CN2010105212465A CN201010521246A CN101969374B CN 101969374 B CN101969374 B CN 101969374B CN 2010105212465 A CN2010105212465 A CN 2010105212465A CN 201010521246 A CN201010521246 A CN 201010521246A CN 101969374 B CN101969374 B CN 101969374B
- Authority
- CN
- China
- Prior art keywords
- prime
- data
- input
- overbar
- implementation method
- 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.)
- Expired - Fee Related
Links
- 238000000034 method Methods 0.000 title claims abstract description 26
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 19
- 239000011159 matrix material Substances 0.000 claims abstract description 9
- 239000013598 vector Substances 0.000 claims description 10
- 230000021615 conjugation Effects 0.000 claims description 2
- 238000013500 data storage Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 2
- 230000008676 import Effects 0.000 claims 1
- 238000006243 chemical reaction Methods 0.000 abstract description 8
- 239000002131 composite material Substances 0.000 abstract description 8
- 238000005516 engineering process Methods 0.000 abstract description 3
- 238000004364 calculation method Methods 0.000 description 8
- 238000013507 mapping Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 238000004088 simulation Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 238000005290 field theory Methods 0.000 description 1
- 238000012067 mathematical method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Landscapes
- Storage Device Security (AREA)
- Complex Calculations (AREA)
Abstract
本发明提供了一种分组密码算法中混淆层的实现方法。该方法实现了一种基于GF(216)求逆的S盒的新的实现方法,通过有限域GF(216)与复合域GF((28)2)的转化,降低传统查表方法带来的存储量和计算量,节省硬件实现开销,提高基于GF(216)求逆的S盒的运算效率。该方法包括:先把需要进行GF(216)上求逆运算的数据进行初始化,再选择GF(28)上的本原多项式求解有限域GF(216)与复合域GF((28)2)的转化矩阵,利用转化矩阵把初始化后GF(216)中的元素在GF(28)中表示出来,并在GF(28)中进行求逆运算,最后把运算结果通过转化矩阵转化成GF(216)中的元素形式输出。与现有的查表算法相比,本发明提供的方案存储面积仅为原有技术的1/512,在硬件实现面积上至少节省了98.57%,而在速度上提高了32.96%。
Description
技术领域
本发明涉及分组密码加密解密算法,具体涉及分组密码算法中混淆层的实现方法。
背景技术
随机混淆层是数据加解密算法实现加密数据的混淆和扩散的核心运算层,在分组密码算法中通常使用S盒实现随机混淆层的非线性置换。为满足现代信息安全的需要,密码设计尽可能使用大规模的随机混淆层,确保数据加密的安全性和灵活性。其中,基于GF(216)求逆运算的S盒在军事通信、卫星数据链路、下一代带互联网络安全等领域中有广泛的应用和重要的作用。因此,对此类S盒的研究和高效实现具有很强的现实意义。
由于加密算法在每一次轮函数运算时都要通过S盒进行有限域运算,S盒运算的高效实现很大程度上决定着整个加密系统的性能。然而,基于GF(216)求逆运算的S盒虽然在安全性方面性能优秀,但涉及大规模存储和计算,在实现效率上大打折扣。实现求逆运算的一般操作是预先计算GF(216)求逆对应每一个输入的输出结果,生成一张包含65536个16比特数据的查找表,存放在只读存储器(ROM)中,运算时将输入值连接到ROM的地址总线上。此方法实现占用大量存储和计算资源,特别是硬件实现时占用存储面积庞大,且会造成固定的延时影响实现效率。
工程上通常牺牲硬件代价换取实现效率,有限域理论的数学方法,特别是复合域算法,则可以通过优化逻辑函数有效地降低硬件开销。复合域算法对AES算法的基于GF(28)求逆的S盒的实现已相对成熟:针对AES的S盒,Atri Rudra等实现了其GF(28)中元素与GF((24)2)元素的映射,并分析了代表元选取对转化效率的影响;C.Jutla等实现了AES在复合域GF((24)2)上的全部运算。A.Satoh等将AES在GF(28)中的元素映射到GF(((22)2)2)中进行计算,进一步缩小查表规模;Xinmiao Zhang等应用复合域方法实现了AES算法FPGA仿真21.56Gbps的吞吐率。而针对GF(216)求逆S盒的分析方法和高效实现技术研究尚不多见。
发明内容
本发明的目的是提供一种基于GF(216)求逆的S盒的新的实现方法,通过有限域GF(216)与复合域GF((28)2)的转化,降低传统查表方法带来的存储量和计算量,节省硬件实现开销,提高基于GF(216)求逆的S盒的运算效率。
本发明的原理是:先把需要进行GF(216)上求逆运算的数据进行初始化,再选择GF(28)上的本原多项式求解有限域GF(216)与复合域GF((28)2)的转化矩阵,利用转化矩阵把初始化后GF(216)中的元素在GF(28)中表示出来,并在GF(28)中进行求逆运算,最后把运算结果通过转化矩阵转化成GF(216)中的元素形式输出。
本发明对应的流程图如图1所示,详细技术方案如下:
一种分组密码算法中混淆层的实现方法,其特征在于,所述方法包含如下步骤:
A.接收输入数据块,所述数据块包括加密数据块和密钥数据块;
对于首轮运算,所述加密数据块的输入为待加密的明文;对第二轮至末轮运算,所述加密数据块的输入为前一轮的运算结果。所述密钥数据块的数据由密钥扩展算法产生,根据不同的运算轮数,得到相应的密钥数据。所述加密数据块的输入介质可以采用通用计算机或专用加解密器的输入设备。所述加密数据块的输入方式可以采用多种形式,包括数据存储介质、用户手动输入等。
B.对接收到的数据进行初始化,方法为:根据加密算法分组长度和密钥长度,在加密数据块和密钥数据块中读取相应长度的数据进行异或,结果存入向量P=(p0,p1,p2…p15)T中,其中pi∈GF(2)(i=0…15),表示该元素以基底{1,α,α2…,α15}展开的系数,所述α为GF(216)中本原多项式p(x)=x16+x12+x3+x+1的一个根;
C.用基于共轭的复合域算法,计算以{1,α,α2…,α15}为基底的GF(216)与复合域GF((28)2)的转化矩阵M,得到
E.定义向量b0={b00,b01,…,b07},b1={b10,b11,…,b17},在GF(28)中计算: 其中γ=αc,c=(216-1)/(28-1),
F.生成向量b=(b00,b01,…,b07,b10,b11,…b17)T,计算M-1×b,其中
G.输出所处理的数据块。
本发明的有益效果:本发明实现了基于GF(216)求逆的S盒作为加解密算法的随机混淆层,与现有的查表算法相比,本发明提供的方案存储面积仅为原有技术的1/512,在硬件实现面积上至少节省了98.57%,而在速度上提高了32.96%。本发明适用于诸如智能卡、掌上机、移动设备等对面积要求比较严格的场合。
附图说明
图1为本发明对应的流程图;
图2为本发明的硬件仿真结构图。
具体实施方式
下面通过FPGA仿真的硬件实现过程对本发明作进一步说明,在不脱离本发明及所附权利要求的精神和范围内,硬件实现的具体方法是可以替换和修改的。
采用本发明方案进行的硬件仿真的电路结构如图2所示,其中模块200为GF(216)到GF(28)2的同构映射,模块201为GF(216)到GF(28)2的同构逆映射,模块202为GF(28)上的加法运算,模块203为GF(28)上的元素与常量C的乘法,模块204为GF(28)上的元素与常量D的乘法,模块205为GF(28)上的平方运算,模块206为GF(28)上的求逆运算,模块207为GF(28)上的乘法运算。接入数据输入模块后进行数据初始化,将数据存入向量P=(p0,p1,p2…p15)T,输入开发板。
将转化矩阵M写入仿真开发板的同构映射模块200,通过该模块计算,将输入向量P转化为两个GF(28)中数据的形式,存入向量p′0、p′1。将p′1模块分别输入模块203和模块205进行常数乘法和平方运算,205模块的输出结果输入204模块进行常数乘法,这里D取值为γ,如发明内容步骤E所示。在模块203中,常数C取值为γ192。模块203的计算结果与p′0异或后与p′0相乘,结果与模块204的结果一同输入模块202进行加法,之后进入模块206实现8位2进制数求逆运算,此时求逆运算在GF(28)中进行,可以通过查表进行运算。将p′0与模块203结果相加后的结果与模块206求逆后的结果相乘,得到8bit数据b0。将p′1与模块206求逆后的结果相乘,得到8bit数据b1。将b0、b1作为输入,通过模块201进行计算,得到输入数据在GF(216)中的求逆结果,将所得结果数据块输出。
以传统的GF(216)上的查表方法进行运算,硬件实现面积为16420Slice LUTs,最大路径延时为16.448ns。本发明提供的方案在硬件仿真条件相同的情况下,可以达到实现面积为235Slice LUTs,最大路径延时为12.357ns,实现面积上至少节省了98.57%,而在速度上提高了32.96%。
Claims (5)
1.一种分组密码算法中混淆层的实现方法,其特征在于,所述方法包含如下步骤:
A.接收输入数据块,所述数据块包括加密数据块和密钥数据块;
B.对接收到的数据进行初始化,方法为:根据加密算法分组长度和密钥长度,在加密数据块和密钥数据块中读取相应长度的数据进行异或,结果存入向量P=(p0,p1,p2…p15)T中,其中pi∈GF(2),表示该元素以基底{1,α,α2…,α15}展开的系数,所述α为GF(216)中本原多项式p(x)=x16+x12+x3+x+1的一个根;
C.用基于共轭的复合域算法,计算以{1,α,α2…,α15}为基底的GF(216)与复合域GF((28)2)的转化矩阵M;
E.定义向量b0={b00,b01,…,b07},b1={b10,b11,…,b17},在GF(28)中计算: 其中γ=αc,c=(216-1)/(28-1),
F.生成向量b=(b00,b01,…,b07,b10,b11,…b17)T,计算M-1×b;
G.输出所处理的数据块。
2.如权利要求1所述的实现方法,其特征在于,所述步骤A中,对于首轮运算,所述加密数据块的输入为待加密的明文;对第二轮至末轮运算,所述加密数据块的输入为前一轮的运算结果。
3.如权利要求1所述的实现方法,其特征在于,所述密钥数据块的数据由密钥扩展算法产生,根据不同的运算轮数,得到相应的密钥数据。
4.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入介质为通用计算机或专用加解密器的输入设备。
5.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入方式为数据存储介质输入或者用户手动输入。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105212465A CN101969374B (zh) | 2010-10-27 | 2010-10-27 | 分组密码算法中混淆层的实现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010105212465A CN101969374B (zh) | 2010-10-27 | 2010-10-27 | 分组密码算法中混淆层的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101969374A CN101969374A (zh) | 2011-02-09 |
CN101969374B true CN101969374B (zh) | 2012-06-20 |
Family
ID=43548480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010105212465A Expired - Fee Related CN101969374B (zh) | 2010-10-27 | 2010-10-27 | 分组密码算法中混淆层的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101969374B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106031079B (zh) * | 2013-12-20 | 2019-10-11 | 皇家飞利浦有限公司 | 加密算法中的运算符提升 |
CN104065473A (zh) * | 2014-06-25 | 2014-09-24 | 成都信息工程学院 | Sm4分组密码算法s盒的紧凑实现方法 |
CN106716345A (zh) * | 2014-09-30 | 2017-05-24 | 皇家飞利浦有限公司 | 用于执行混淆算术的电子计算设备 |
CN107797790B (zh) * | 2017-11-03 | 2021-07-09 | 深圳职业技术学院 | 一种基于全一不可约多项式的有限域求逆器 |
CN110363000B (zh) * | 2019-07-10 | 2023-11-17 | 深圳市腾讯网域计算机网络有限公司 | 识别恶意文件的方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697369A (zh) * | 2005-06-14 | 2005-11-16 | 河北工业大学 | 分组密码加密解密的方法及其加密解密器 |
CN101159545A (zh) * | 2007-11-19 | 2008-04-09 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0214620D0 (en) * | 2002-06-25 | 2002-08-07 | Koninkl Philips Electronics Nv | Round key generation for AES rijndael block cipher |
-
2010
- 2010-10-27 CN CN2010105212465A patent/CN101969374B/zh not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1697369A (zh) * | 2005-06-14 | 2005-11-16 | 河北工业大学 | 分组密码加密解密的方法及其加密解密器 |
CN101159545A (zh) * | 2007-11-19 | 2008-04-09 | 西安西电捷通无线网络通信有限公司 | 一种基于分组密码算法的加密处理方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101969374A (zh) | 2011-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | High performance data encryption with AES implementation on FPGA | |
CN106850221B (zh) | 信息加密、解密方法及装置 | |
JP6083234B2 (ja) | 暗号処理装置 | |
CN106921487B (zh) | 可重构s盒电路结构 | |
CN102006161B (zh) | 一种对称密钥加密的非线性变换方法及其实现装置 | |
US20150312028A1 (en) | Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same | |
US20100011047A1 (en) | Hardware-Based Cryptographic Accelerator | |
CN101969374B (zh) | 分组密码算法中混淆层的实现方法 | |
CN105099672A (zh) | 混合加密方法及实现该方法的装置 | |
KR101449239B1 (ko) | 환 동형 사상을 이용한 동형 암호화 방법과 복호화 방법 및 이를 이용한 장치 | |
CN106992852B (zh) | 应用于AES与Camellia密码算法的可重构S盒电路结构 | |
KR100800468B1 (ko) | 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법 | |
CN101938349A (zh) | 一种适用于硬件实现的s盒及其电路实现方法 | |
Fiskiran | Workload characterization of elliptic curve cryptography and other network security algorithms for constrained environments | |
Shahbazi et al. | Design and implementation of an ASIP-based cryptography processor for AES, IDEA, and MD5 | |
CN106254062A (zh) | 序列密码实现装置及其序列密码实现方法 | |
CN111736902A (zh) | 基于simd指令的sm4的并行计算方法及装置、可读存储介质 | |
CN107181586A (zh) | 可重构s盒电路结构 | |
Imran et al. | Hardware design and implementation of scalar multiplication in elliptic curve cryptography (ECC) over GF (2163) on FPGA | |
KR101601684B1 (ko) | 부채널 공격에 대응하는 대칭키 암호 알고리즘 구현 방법 | |
Rashidi et al. | Implementation of an optimized and pipelined combinational logic rijndael S-Box on FPGA | |
CN106998249A (zh) | 应用于SM4与Camellia密码算法的可重构S盒电路结构 | |
Kaleel Rahuman et al. | Reconfigurable architecture for elliptic curve cryptography using fpga | |
Kaur et al. | FPGA implementation of efficient hardware for the advanced encryption standard | |
CN103873229B (zh) | KLEIN加密AVR环境下抗timing和cache边信道攻击的快速保护方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120620 Termination date: 20151027 |
|
EXPY | Termination of patent right or utility model |