当前位置:文档之家› 高级加密标准AES算法的FPGA实现

高级加密标准AES算法的FPGA实现

高级加密标准AES

文张斌

颜回中

(暨南大学信息技术研究所,广东[摘

要]

介绍了AES 数据加密结构,方案。

AES 加密算法密码模块作为安全保密系统的重要组成部分,单等特点被广泛应用于密码模块的研制中。

[关键词]AES ;Rijndael ;分组加密算法;FPGA ;轮变换

——————————————————————————

—作者简介:文张斌,男,湖北荆州人,硕士,研究方向:光电一体化,信号处理算法与编码。

1.引言

随着计算机和通信网络的广泛应用,信息的安全性已受到人们的普遍重视。信息安全已不仅仅局限于政治、军事以及外交等领域,而且也与人们的日常生活息息相关。现在密码学理论和技术已得到了迅速发展,它是信息科学和技术中的一个重要研究领域。目前随着密码分析技术的不断发展,超期服役的DES 算法已被攻破,

DES 密钥长度为56位,存在密钥过短的缺陷,

3DES 是一种由DES 衍生出来的算法,虽然增加了密钥长度,但3DES 的加密和解密时间消耗较大。Rijndael 数据加密算法成为AES 算法的标准以来,经过多年来的分析和测试,至今没有发现AES 的明显缺点,也没有找到明显的安全漏洞。标准的商品化CPU 和DSP 无法跟上数据加密算法的计算要求。

基于FPGA 高度优化的可编程的硬件安全性解决方案提供了并行处理能力,并且可以达到所要求的加密处理性能基准。

2.算法说明2.1

算法概要

AES 是分组密钥,算法输入128位数据,密钥长度也是128位。用Nr 表示对一个数据分组加密的轮数。每一轮都需要一个与输入分组具有相同长度的扩展密钥Expandedkey(i)的参与。由于外部输入的加密密钥K 长度有限,所以在算法中要用一个密钥扩展程序(Keyexpansion)把外部密钥K 扩展成更长的比特串,以生成各轮的加密和解密密钥。

表1

密钥长度与N k ,N r 的关系

Rijndael 算法由加密、解密和密钥编排三个算法组成。加密算法是把明文经过Nr+1轮变换得到密文,

AES 具有128比特的分组长度,对于128,192,256位密钥长度的Rijndael

算法,以产生各轮变换所需要的轮密钥。

2.2

AES 密钥调度

密钥调度包括两个部分:密钥扩展和轮密钥选取。密钥扩展是指把Nk 比特初始密钥映射为所谓的扩展密钥,而轮密钥选取则是从扩展密钥中选择出Nb 比特的轮密钥。

图1密钥扩展流程图

2.3以加密为例的轮变换

轮变换由字节替代、字节位移、列混合和轮密钥加法4个模块组成。字节代替(ByteSub )变换是一个非线性的字节代替,它在每个状态字上独立地进行运算。代替表(或S 盒)是可逆的,且是由两个变换的合成而构造出来的。对于128字节的密钥长度的AES 轮变换的字节移位可见图2。

图2

128bits 密钥长度的字节移位

列混合对状态矩阵的列独立进行变换,将状态的列看作是有限域GF (28)上的多项式a (x),与多项式c (x)=03x 3+01x 2+01x+02相乘(模x 4+1)。令b(x)=c(x)×a(x),

写成密钥长度密钥映射的二维矩阵的列数

轮数N r

128410192612256

8

14

—49—

图4列混合

3.AES的FPGA实现

由AES原理可以看出,通过FPGA实现AES算法,各部运算可以分解为最基本的查找和异或。

用伪代码表示的Rijndael加密算法,如提前进行密钥扩展,Rijndael加密算法描述可变为:

Rijndael(State,ExpandedKey)

{

AddRoundKey(State,ExpandedKey);

For(i=1;i

Round(State,ExpandedKey+Nb*i);

FinalRound(State,ExpandedKey+Nb*Rnd);

}

本设计是用FPGA实现AES加密/解密。命名为wb_aescomtroller.V文件包含数据输入输出,接口转换,控制;其它的各个模块均以独立的V文件描述,如sbox.V文件描述的是字节替换表模块(ByteSubstitution,S-盒)。以下以加密为例,详述其过程。

加密开始时,首先由输入密钥开始密钥扩展,由此也决定将要进行循环的轮数。根据输入密钥长度的不同,进行不同轮数的循环。首先是执行密钥加(RoundKey-Add),之后进行Nr轮的运算(最后一轮没有列混合)。

每一轮的开始首先是轮密钥加(RoundKey-Add),本设计中,用了一个128*8的存储器,在加密模块开始时(即数据输入时)同时开始工作,扩展后的密钥存入寄存器组,通过输入密钥的长度和计数器来决定当前输入的、将要进行轮密钥加的128位密钥。字节替换(Byte-Sub)用查找表的方式实现。列混合(Mix-Col)主要是XTime和xor运算,可以分为最简单的xor运算。明文(plaintext)经过Nr轮的运算,即得到密文(ciphertext)输出。

在ModelsimSE6.0软件仿真平台上,编译project里面的所有V文件,经仿真,把工程上的测试文件test_bench_top加入wave,仿真输出波形,可见图6和图7所示。

图5第1个时钟加/解密输出(解密输出延迟1个单位时钟)

图6第53个时钟加/解密输出

因此,结合上图5和图6,可以发现384比特的tmo序列的前面128bits被提取为密文;中间128bits作为明文以及加密输入码;后面的128bits作为密钥。仿真输出后,发现加密后输出码流test_out与ciph一致,从加密码流再经解密的输出码流test_out2与最初输入码流plain一致,即设计输出结果符合整个设计要求,AES算法得以实现,结果正确。

4.结束语

本文讨论了用FPGA实现AES算法的设计方案,重点详述了AES算法的原理以及FPGA实现步骤。通过用Verilog 语言编写实现程序,在ModelSim SE6.0软件平台上进行编译、仿真,使得以Rijndael数据加密算法的AES高级加密标准得到很好的体现。实验结果表明,本设计基于FPGA可编程逻辑器件的实现方法提供了并行处理能力,达到设计所要求的加密处理性能基准。

参考文献:

[1]夏宇闻.Verilog数字系统设计教程(第二版)[M].北京航空航天大学出版社,2008.

[2]储奕锋.AES算法的FPGA实现[J].开发研究与设计技术.2007:191-193.

[3]张延伟等.VerilogHDL程序设计实例详解[M].人民邮电出版社,2008.

[4]吴鹏,李开成.基于FPGA的Rijndael算法实现的研究[J].计算机与通信信号.2007(120):46-48.

[5]唐金艺.AES算法FPGA实现分析[J].计算机安全.2008(6):14-20.

[6]苏国强,郑小平等.基于低成本FPGA的AES算法实现[J].甘肃高师学报.2009(14):17-19.

[7]刘腕,何道君等,FPGA设计与应用[M].清华大学出版社,2006.

(下转第53页)

—50—

The Design and Implementation on the Digital Signature of Courses Selecting System

Liang Yuying

(Zhaoqing Technical and Science College ,Zhaoqing 526040,Guangdong )

【Abstract 】At present ,many schools use paper signature for students selecting the course or directly transmitting studens'grades

without code online .To solve these problems ,

this paper uses a digital signature technology and B/S architecture approach to ensure system data integrity while ensuring data confidentiality ,authenticity ,non-repudiation ,etc .The system can achieve the functions of the course selecting management ,curriculum management ,the management of the elective course grade ,public and private keys management ,

signature verification and so on .【Keywords 】

courses selecting system ;digital signature ;B/S architecture ;anti-denying

———————————————————————————————————————————————————————————————————————————————————————————————————————————(上接第50页)

不同类别的用户在登录后使用不同的功能模块。根据系统的功能需求,学生、教师和管理员3类用户分别有各自的功能模块。学生用户可以进行修改用户信息、选课和查看学分等操作。

教师用户可以管理选修课程的学生信息以及选修课程的成绩。管理员用户管理学生用户信息、教师用户信息、课程和班级信息。

4.结束语

基于数字签名的选课系统有利于学校对教务工作的管理,具有可使用性和可维护性,数字签名具有保密性、安全性和不可抵赖性,同时采用B/S 结构方式设计系统更增加了系统的安全可靠性,从而提高了选课系统的可信度。本文介绍了基于DSA 算法的数字签名,尽管数字签名技术还不够完善,如签字后的文件可能被接收者重复使用;公钥算法的效率相当低,不易用于长文件的加密等等。但是,

随着Internet

[1][2]2007-4[3][J].[4]社,

2005[5]FPGA Implementation of Advanced Encryption Standard AES Algorithm

Wen Zhangbin Yan Huizhong

(Information Technology Research Institute of Jinan University,Guangzhou 510075,Guangdong )

【Abstract 】This paper introduces the AES (Advanced Encryption Standard)Algorithm ,as well as the correlative concept and basic

operation of finite-field .AES encryption algorithm module is an important part of security system,its core mission is to encrypt the data .AES block cipher algorithm is widely used in research and development modules for its high efficiency ,low overhead ,simple features such as the current password .

【Keywords 】

AES ;Rijndael ;block encryption algorithm ;FPGA ;round transformation

—53—

相关主题
文本预览
相关文档 最新文档