基于aes算法的加密密钥流产生方法

文档序号:8433550阅读:572来源:国知局
基于aes算法的加密密钥流产生方法
【技术领域】
[0001] 本发明涉及通信领域,尤其涉及一种基于AES算法的加密密钥流产生方法。
【背景技术】
[0002]AES(AdvancedE:ncryptionstandard,高级加密标准)是美国联邦政府采用的一 种区块加密标准。该个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。目 前,AES已然成为对称密钥加密中最流行的算法之一。
[0003] 在LTE化ongTermEvolution,长期演进)系统中,无线接口层2中的PDCP(Packet DataConvergenceProtocol,分组数据汇聚协议)层用于对用户平面和控制平面中的数据 及信令进行加密,及对信令进行完整性保护。PDCP所采用的加解密及完整性保护/验证算 法包括;AES,Snow3G及Zuc。其中,AES算法作为加解密算法被称为128-EEA2;作为完整性 保护/验证算法被称为128-EIA2。
[0004]PDCP层采用的AES加密算法的基本流程为;通过对网络参数和加密密钥(Key)计 算,算出一个加密密钥流(Keystream),再将该加密密钥流与明文的比特流进行异或,从而 得到加密后的密文。
[0005] PDCP层使用AES算法作为完整性保护/验证算法的基本流程为:对一串不定长的 信令进行AES相关计算,其中的计算步骤和加密算法相同,区别仅在于在最后阶段需要采 用不同的计算方法,生成一个32位的MC_I,用于完整性验证。
[0006]AES加密过程是在一个原始的4X4的字节矩阵上运作,原始的4X4的字节矩阵的 各元素根据网络参数获取。作为一种基于迭代的加密算法,在生成加密密钥流的过程中需 要很多轮的重复和变换,而每轮又包括下面4个阶段:
[0007] 矩阵乘法转换(SubBytes)-通过一个非线性的替换函数,用查找表的方式把4X4 的字节矩阵中的每个字节替换成查找表对应的字节;
[0008] 矩阵行位移(ShiftRows)-将矩阵中的每一行进行循环式移位,即将矩阵中每一 行的各个字节循环向左方位移;
[000引列混合(MixColumns)-做矩阵中每一列的矩阵乘法,即与一个固定的4X4矩阵相 乘;及
[0010] 密钥二元加(AddRoun化ey)-将矩阵中的每一个字节都与该轮的回合密钥(round key)做异或运算。
[0011] 整个计算过程中,矩阵乘法转换阶段和列混合阶段都需要用到二元点乘和移位, 且都需要调用大量查找表进行查表计算,尤其是在列混合计算中,128比特长度的区块中每 个字节(8个比特)都要经过移位、异或及重新排列,才能计算出最后的加密密钥流。在实现 上比较耗时,在芯片设计中需要例化更多的资源,并且在控制逻辑上调度也显得比较复杂。

【发明内容】

[0012] 为了解决上述问题,本发明提供了一种基于AES算法的加密密钥流产生方法,从 而简化算法,节约计算时间。
[0013] 本发明的额外方面和优点将部分地在下面的描述中阐述,并且部分地将从描述中 变得显然,或者可W通过本发明的实践而习得。
[0014] 本发明提供了一种基于AES算法的加密密钥流产生方法,包括:获取与待计算的 字节矩阵的各元素对应的新元素的表达式;对各新元素的表达式分别进行计算,W得到第 一字节矩阵;W及对第一字节矩阵进行密钥二元加计算。
[0015] 本发明实施例提供的基于AES算法的加密密钥流产生方法,直接对固定系数矩阵 中的各元素与待计算的字节矩阵中对应的元素进行点乘获得各点乘积,通过一个步骤即可 同时实现行位移和列混合运算,在硬件实现上面,不用单独进行行位移,也无需对行位移后 的矩阵元素进行缓存,有效的提高了处理效率,同时减少了硬件成本。
[0016] 在本发明的优选方案中,通过预先设置扩展查找表的方式,将所述矩阵乘法转换 步骤用查表方式替代,无需进行所述点乘计算,进一步提高了处理效率。
【附图说明】
[0017] 通过参照附图详细描述其示例实施方式,本发明的上述和其它特征及优点将变得 更加明显。
[0018] 图1为本发明的基于AES算法的加密密钥流产生方法的示意图。
[0019] 图2为本发明实施例的基于AES算法的加密密钥流产生方法的流程图。
【具体实施方式】
[0020] 现在将参考附图更全面地描述示例实施方式。然而,示例实施方式能够W多种形 式实施,且不应被理解为限于在此阐述的实施方式;相反,提供该些实施方式使得本发明将 全面和完整,并将示例实施方式的构思全面地传达给本领域的技术人员。在图中,为了清 晰,夸大了区域和层的厚度。在图中相同的附图标记表示相同或类似的结构,因而将省略它 们的详细描述。
[0021] 所描述的特征、结构或特性可任何合适的方式结合在一个或更多实施方式 中。在下面的描述中,提供许多具体细节从而给出对本发明的实施方式的充分理解。然而, 本领域技术人员将意识到,可W实践本发明的技术方案而没有所述特定细节中的一个或更 多,或者可W采用其它的方法、组元、材料等。在其它情况下,不详细示出或描述公知结构、 材料或者操作W避免模糊本发明的各方面。
[0022] 需要说明的是,本发明是基于AES算法的加密密钥流产生方法,在AES算法中,根 据美国国家标准与技术研究所在2001年11月26日发布的AES算法标准(NIST;"Advanced ElncryptionStandard(AES)(FIPSPUB197)")的规定,在AES算法计算过程中:
[0023] 1)点乘运算
[0024] 如果点乘是0x02 ?乘数,判断乘数的最高位是否为1,如果为1,则将该乘数左移1 位后与Ox化进行异或得到点乘积,否则,直接将该乘数左移1位得到点乘积;
[00巧]如果点乘是0x01 ?乘数,则点乘积为乘数;
[0026] 如果是用其他系数点乘乘数,将该其他系数数分解为0x02和0x01的组合,分别与 乘数进行上述点乘后再进行异或得到点乘积,如;
[0027] 0jc03?乘数=(0x02?乘数?0x01?乘数)。
[002引 2)加法运算
[0029] 使用异或运算取代加法运算。
[0030] 图1为本发明的基于AES算法的加密密钥流产生方法的示意图。如图1所示,本 发明的基于AES算法的加密密钥流产生方法的基本流程为:将AES算法中计算加密密钥流 每一轮计算中的矩阵行位移步骤和列混合步骤合并,并先于矩阵乘法转换步骤进行,得到 与待计算的字节矩阵的各元素对应的新元素的表达式,并在矩阵乘法转换步骤中使用扩展 查找表替代原始查找表进行元素查找,W完
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1