CN101969374B - 分组密码算法中混淆层的实现方法 - Google Patents

分组密码算法中混淆层的实现方法 Download PDF

Info

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
realizing
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
Application number
CN2010105212465A
Other languages
English (en)
Other versions
CN101969374A (zh
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.)
Beihang University
Original Assignee
Beihang University
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 Beihang University filed Critical Beihang University
Priority to CN2010105212465A priority Critical patent/CN101969374B/zh
Publication of CN101969374A publication Critical patent/CN101969374A/zh
Application granted granted Critical
Publication of CN101969374B publication Critical patent/CN101969374B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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,得到
M = 0 0 1 0 0 1 0 0 1 0 1 1 0 0 0 0 1 0 1 1 0 0 0 0 0 0 1 0 0 1 0 0 1 1 1 0 0 1 1 0 1 0 1 1 0 0 0 0 1 0 1 1 1 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 0 0 0 0 0 1 1 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 1 0 0 0 0 1 0 0 0 0 0 1 1 1 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 1 0 1 1 1 0 0 1 1 1 0 0 0 0 0 0 0 0 1 1 0 0 1 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 1 0 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 1 0 0 0 1 0 1 1 1 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 0 1 0 0 0 1 0 1 0 1 1 0 0 0 0 1 0 1 0 0 0 0 1
D.计算T×P,将输出结果记作向量
Figure GDA0000111435710000032
pji∈GF(2),生成向量 p 0 ′ = { p ‾ 00 , p ‾ 01 , . . . , p ‾ 07 } , p 1 ′ = { p ‾ 10 , p ‾ 11 , . . . , p ‾ 17 } ;
E.定义向量b0={b00,b01,…,b07},b1={b10,b11,…,b17},在GF(28)中计算: b 0 = ( γ 192 p 1 ′ ⊕ p 0 ′ ) Δ - 1 b 1 = p 1 ′ Δ - 1 ; 其中γ=αc,c=(216-1)/(28-1), Δ = p 1 ′ p 0 ′ γ 192 ⊕ ( p 0 ′ ) 2 ⊕ ( p 1 ′ ) 2 γ ;
F.生成向量b=(b00,b01,…,b07,b10,b11,…b17)T,计算M-1×b,其中
M - 1 1 0 0 0 0 1 0 1 0 0 0 0 1 1 0 1 0 1 0 0 0 1 0 0 1 0 0 0 1 0 0 0 0 1 0 0 0 1 0 1 0 1 0 0 0 1 0 0 0 1 1 1 0 1 0 0 0 1 0 0 1 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 0 0 0 1 1 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 0 1 0 1 0 0 1 1 0 0 0 0 0 0 0 0 1 1 1 0 0 1 1 1 0 1 0 1 0 0 0 0 1 0 0 0 0 0 0 0 1 1 1 0 0 0 1 1 1 1 1 0 0 0 0 0 1 0 0 0 0 1 0 0 1 1 1 0 0 1 1 1 1 1 1 0 0 0 1 1 0 0 0 0 0 1 0 0 1 1 1 0 0 1 1 0 0 1 1 1 0 0 1 1 1 1 0 1 0 0 0 0 1 1 0 1 0 1 1 0 0 1 1 1 0 0 1 0 0 1 0 0 0 0 0 0 1 1 0 1 0 0 0 0 1 1 0 1 0 0 1 0 0 1 0 0 ;
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;
D.计算M×P,将输出结果记作向量
Figure FDA0000111435700000011
pji∈GF(2),生成向量 p 0 ′ = { p ‾ 00 , p ‾ 01 , . . . , p ‾ 07 } , p 1 ′ = { p ‾ 10 , p ‾ 11 , . . . , p ‾ 17 } ;
E.定义向量b0={b00,b01,…,b07},b1={b10,b11,…,b17},在GF(28)中计算: b 0 = ( γ 192 p 1 ′ ⊕ p 0 ′ ) Δ - 1 b 1 = p 1 ′ Δ - 1 ; 其中γ=αc,c=(216-1)/(28-1), Δ = p 1 ′ p 0 ′ γ 192 ⊕ ( p 0 ′ ) 2 ⊕ ( p 1 ′ ) 2 γ ;
F.生成向量b=(b00,b01,…,b07,b10,b11,…b17)T,计算M-1×b;
G.输出所处理的数据块。
2.如权利要求1所述的实现方法,其特征在于,所述步骤A中,对于首轮运算,所述加密数据块的输入为待加密的明文;对第二轮至末轮运算,所述加密数据块的输入为前一轮的运算结果。
3.如权利要求1所述的实现方法,其特征在于,所述密钥数据块的数据由密钥扩展算法产生,根据不同的运算轮数,得到相应的密钥数据。
4.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入介质为通用计算机或专用加解密器的输入设备。
5.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入方式为数据存储介质输入或者用户手动输入。
CN2010105212465A 2010-10-27 2010-10-27 分组密码算法中混淆层的实现方法 Expired - Fee Related CN101969374B (zh)

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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3085004A1 (en) * 2013-12-20 2016-10-26 Koninklijke Philips N.V. Operator lifting in cryptographic algorithm
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

Patent Citations (2)

* Cited by examiner, † Cited by third party
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
CN101969374B (zh) 分组密码算法中混淆层的实现方法
CN102006161B (zh) 一种对称密钥加密的非线性变换方法及其实现装置
US20150312028A1 (en) Homomorphic encryption and decryption methods using ring isomorphism, and apparatuses using the same
CN104639314A (zh) 基于aes加密/解密算法的装置和流水控制方法
CN104298937A (zh) 用于存储器地址加密的装置和方法
CN101938349A (zh) 一种适用于硬件实现的s盒及其电路实现方法
Shahbazi et al. Design and implementation of an ASIP-based cryptography processor for AES, IDEA, and MD5
CN104065473A (zh) Sm4分组密码算法s盒的紧凑实现方法
CN110166223A (zh) 一种国密sm4的快速软件实现方法
CN103888247A (zh) 抵抗差分功耗分析攻击的数据处理系统及其数据处理方法
CN108494546A (zh) 一种白盒加密方法、装置及存储介质
CN103916248A (zh) 一种全同态加密公钥空间压缩方法
CN107566113A (zh) 3des对称加解密方法、系统及计算机可读存储介质
CN104852798A (zh) 一种数据加解密系统及方法
Zou et al. Hybrid encryption algorithm based on AES and RSA in file encryption
US8553878B2 (en) Data transformation system using cyclic groups
CN106982116A (zh) 一种基于可逆逻辑电路的aes的本地文件加密方法
Rashidi et al. Implementation of an optimized and pipelined combinational logic rijndael S-Box on FPGA
CN101958790A (zh) 无线通信网络数字信息加密或解密方法
CN107171782A (zh) 一种基于可逆逻辑电路的aes私密日志加密方法
JP6136325B2 (ja) 暗号処理装置、暗号処理方法およびプログラム
Da Costa et al. The feasibility of the crystals-kyber scheme for smart metering systems
Bajaj et al. AES algorithm for encryption
CN104753662A (zh) 基于aes算法的加密密钥流产生方法
CN103684748A (zh) 对称式加解密方法、对称式加解密系统

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