一种适用于嵌入式系统的加密IP核设计详解.doc
《一种适用于嵌入式系统的加密IP核设计详解.doc》由会员分享,可在线阅读,更多相关《一种适用于嵌入式系统的加密IP核设计详解.doc(4页珍藏版)》请在三一文库上搜索。
1、一种适用于嵌入式系统的加密IP核设计详解Rijndael加密算法于2000年被确定为美国高级加密标准AES(Advanced EncrypTIon Standard),现在己是工业界数据加密的通用标准之一。Rijndael算法无论从理论分析,还是在实践应用都表现出很好的抵抗各种攻击的性能,其安全性是不容置疑的。随着计算机技术、微电子技术的不断融合,嵌入式系统应用得到了迅猛发展。近年来嵌入式技术广泛用于解决保密信息的传输、存储和管理方面的问题。而这些都需要嵌入式系统集成有可靠的加密模块。现有一些应用中的加密模块还不尽如人意。本文针对此应用需求设计一种适用于嵌入式系统的加密IP核。1 AES算法1
2、.1 AES算法描述密钥密码体制分为流密码和分组密码两种。分组密码是信息与网络安全中实现数据加密、数字签名、认证及密钥管理的核心体制,具有速度快、易于标准化和便于软硬件实现等特点。AES采用分组密码的加密方式,其分组长度分为128 bit、192 bit、256 bit三种,AES密码在相同的轮函数作用下,迭代运算次数的不同可达到不同级别的安全强度。128 bit分组长度的情况下,循环轮数指定为11次,目前还没有可行的算法可以对该模型进行有效攻击1。每一轮处理均为作用在中间结果上的一批运算,该中间结果称为状态,用44字节矩阵表示,其中,数据矩阵称为State、密钥矩阵称为Key。AES加密涉及
3、5种运算,分别是字节代换 (SubBytes)、行移变换(ShiftRows)、列混合变换(MixColumns)、密钥加法(AddRoundKey)和密钥扩展 (ExpandedKey)。字节代换是对State每个字节进行独立非线性变换,由字节在GF(28)域中求其乘法逆并外加一个仿射变换完成2。具体实现中广泛使用查表方式完成该步变换(实现该功能单元被称为Sbox),以避免复杂的乘法运算。行移变换是对State进行按行移位操作,第0行不移位,第1行循环左移一位,第2行循环左移两位,第3行循环左移三位。密钥加法是将轮密钥Key和状态State中对应字节按位异或。密钥扩展提供轮变换对应密钥加法用
4、到的各轮密钥。各轮运算中使用到的轮密钥都不相同,密钥扩展运算通过控制迭代运算次数计算出对应轮所需轮密钥。加密过程由11轮运算组成,其中首轮只进行密钥加法,接着进行9次轮变换,轮变换由字节代换、行移变换、列混合变换及密钥加法4个步骤构成,再进行末轮变换,在末轮中跳过列混合变换。末轮完成后输出密文数据。AES加密过程如图1所示。1.2 常用AES优化实现AES算法的轮操作特点看似更适合于在通用CPU平台下编程实现,而实际上,此种实现方式在性能方面存在加密速度慢等先天局限性。AES加密处理单元一般处于数据主干道上,其处理数据能力直接影响整个应用系统的外在性能表现,因此,研究数据处理能力强的硬件加密实
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 一种 适用于 嵌入式 系统 加密 IP 设计 详解
链接地址:https://www.31doc.com/p-3364865.html