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

文档序号:7763229阅读:1037来源:国知局
专利名称:分组密码算法中混淆层的实现方法
技术领域
本发明涉及分组密码加密解密算法,具体涉及分组密码算法中混淆层的实现方 法。
背景技术
随机混淆层是数据加解密算法实现加密数据的混淆和扩散的核心运算层,在分组 密码算法中通常使用S盒实现随机混淆层的非线性置换。为满足现代信息安全的需要,密 码设计尽可能使用大规模的随机混淆层,确保数据加密的安全性和灵活性。其中,基于GF (216)求逆运算的S盒在军事通信、卫星数据链路、下一代带互联网络安全等领域中有广泛 的应用和重要的作用。因此,对此类S盒的研究和高效实现具有很强的现实意义。由于加密算法在每一次轮函数运算时都要通过S盒进行有限域运算,S盒运算的 高效实现很大程度上决定着整个加密系统的性能。然而,基于GF (216)求逆运算的S盒虽 然在安全性方面性能优秀,但涉及大规模存储和计算,在实现效率上大打折扣。实现求逆运 算的一般操作是预先计算GF (216)求逆对应每一个输入的输出结果,生成一张包含65536个 16比特数据的查找表,存放在只读存储器(ROM)中,运算时将输入值连接到ROM的地址总线 上。此方法实现占用大量存储和计算资源,特别是硬件实现时占用存储面积庞大,且会造成 固定的延时影响实现效率。工程上通常牺牲硬件代价换取实现效率,有限域理论的数学方法,特别是复 合域算法,则可以通过优化逻辑函数有效地降低硬件开销。复合域算法对AES算法的 基于GF(28)求逆的S盒的实现已相对成熟针对AES的S盒,Atri Rudra等实现了其
Gint)中元素与G^pi)2)元素的映射,并分析了代表元选取对转化效率的影响;C. Jutla等 实现了 AES在复合域上的全部运算。A. Satoh等将AES在(3凡?)中的元素映射 到GiH22)2)3)中进行计算,进一步缩小查表规模;Xinmiao Zhang等应用复合域方法实现了 AES算法FPGA仿真21. 56Gbps的吞吐率。而针对G汽求逆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所示,详细技术方案如下
3一种分组密码算法中混淆层的实现方法,其特征在于,所述方法包含如下步骤 A.接收输入数据块,所述数据块包括加密数据块和密钥数据块;对于首轮运算,所述 加密数据块的输入为待加密的明文;对第二轮至末轮运输,所述加密数据块的输入为前一 轮的运算结果。所述密钥数据块的数据由密钥扩展算法产生,根据不同的运算轮数,得到相 应的密钥数据。所述加密数据块的输入介质可以采用通用计算机或专用加解密器的输入设 备。所述加密数据块的输入方式可以采用多种形式,包括数据存储介质、用户手动输入等。
B.对接收到的数据进行初始化,方法为根据加密算法分组长度和密钥长度,在加
密数据块和密钥数据块中读取相应长度的数据进行异或,结果存入向量P=CPW2-A5/ 中,其中乃€朋(2).表示该元素以基底{1,0乂_"乂5}展开的系数,所辻v力GF(216)中本原多
项式兴勾=
' + j^+x + l 的一个根;
C.用基于共轭的复合域算法,计算以(l,a,O2-
GF ((28)2)的转化矩阵Τ,得到Γ
0O
1O 1 1 1 O O 1 O 1 O O
01
1O
1 O
1 1 1 O
01
11 O O
0O
11 1 O 1 1 ι ι
O 1
ο ι
O O O O
为基底的GF(216)与复合域 [01100 “
O
O
O O
0O
11 O 1 O O O O O 1 O 1 O 1 O 1
O
O O
D.计算1 乂P,将输出结果记作向量P =■ Pm Ao,Μι,…,Pft GF(Zj ,生成向量
Pl) = iPoo,Poi,"'Po7} , Ρ = θ'Ρι '···'Ρι };
Ε.定义向量 ;其中f =
為1,
,c=(2to"-l)/(28-l)
,A = I
辟十OO2十(X)V
,在GF(28)中计算
W任書
-1F.
生 成向量 ^=feI / ‘ 计 算 T
1-1,
其中
权利要求
一种分组密码算法中混淆层的实现方法,其特征在于,所述方法包含如下步骤A.接收输入数据块,所述数据块包括加密数据块和密钥数据块; B.对接收到的数据进行初始化,方法为根据加密算法分组长度和密钥长度,在加密数据块和密钥数据块中读取相应长度的数据进行异或,结果存入向量中,其中,表示该元素以基底展开的系数,所述为GF(216)中本原多项式的一个根;C.用基于共轭的复合域算法,计算以为基底的GF(216)与复合域GF((28)2)的转化矩阵T;D. 计算,将输出结果记作向量,生成向量,;E.定义向量,,在GF(28)中计算;其中,,;F.生成向量,计算;G. 输出所处理的数据块。2010105212465100001dest_path_image001.jpg,697044dest_path_image002.jpg,2010105212465100001dest_path_image003.jpg,289831dest_path_image004.jpg,2010105212465100001dest_path_image005.jpg,64801dest_path_image003.jpg,879173dest_path_image006.jpg,2010105212465100001dest_path_image007.jpg,577001dest_path_image008.jpg,2010105212465100001dest_path_image009.jpg,906352dest_path_image010.jpg,2010105212465100001dest_path_image011.jpg,105252dest_path_image012.jpg,dest_path_image013.jpg,148032dest_path_image014.jpg,dest_path_image015.jpg,954445dest_path_image016.jpg,dest_path_image017.jpg
2.如权利要求1所述的实现方法,其特征在于,所述步骤A中,对于首轮运算,所述加密 数据块的输入为待加密的明文;对第二轮至末轮运输,所述加密数据块的输入为前一轮的运算结果。
3.如权利要求1所述的实现方法,其特征在于,所述密钥数据块的数据由密钥扩展算 法产生,根据不同的运算轮数,得到相应的密钥数据。
4.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入介质为通用计 算机或专用加解密器的输入设备。
5.如权利要求1所述的实现方法,其特征在于,所述加密数据块的输入方式为数据存 储介质输入或者用户手动输入。
全文摘要
本发明提供了一种分组密码算法中混淆层的实现方法。该方法实现了一种基于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%。
文档编号H04L9/00GK101969374SQ20101052124
公开日2011年2月9日 申请日期2010年10月27日 优先权日2010年10月27日
发明者姜鑫, 张筱, 李洪革, 王文华, 王钊, 邱望洁, 郑志明, 高莹 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1