ISSN在线(2278 - 8875)打印(2320 - 3765)
M。Sambasiva Reddy1和y先生阿玛先生2
|
相关文章Pubmed,谷歌学者 |
访问更多的相关文章国际先进研究期刊》的研究在电子、电子、仪表工程
安全是最重要的部分在数据通信系统中,增加更多的随机密钥的安全以及加密算法的复杂性。结果在最近投资这些算法补偿与巨大的内存空间和大型硬件平台上执行时间场景由于其重构自然低价格和销售速度。在本文中,我们展示的设计和实现一个128位的高级加密标准(AES)对称加密和解密算法通过开发合适的硬件和软件设计Xilinx Spartan-3E (XC3S500E-FG320)设备。系统优化的执行速度和硬件的利用率。我们有一些实时应用程序基于AES算法的数据完整性、数据保密、身份验证和其他各种领域,数字签名。未来这个项目的范围是运行一个应用程序使用此AES实现。
关键字 |
AES加密、解密,加密,实现,Spartan-3E |
介绍 |
现今密码学在嵌入式系统设计有一个主要的角色。在许多应用程序中,数据通常需要一个安全的连接通过加密来实现。加密技术分为两类一是对称密钥加密(发送方和接收方股份相同的键),第二个是不对称密钥加密(发送方和接收方的股票不同的键)。 |
微火焰是一个32位RISC处理器与哈佛建筑风潮,它有32个,32位通用电阻。它是一个32位指令字有三个操作数和两个寻址模式.Microblaze有单独的指令和数据总线的32位符合IBM的OPB(芯片外围总线)。Microblaze有2个类型的管道。一些应用程序是在软件中实现,需要硬件实现,但有些需要软件和硬件的结合即. .并行实现的软件和硬件,提高系统性能。EDK(嵌入式开发工具包)提供软件和硬件的并行处理实现。 |
美国国家标准与技术研究院(NIST),征求建议的高级加密标准(AES)。AES是联邦信息处理标准(FIPS),这是一个密码算法,用于保护电子数据。AES算法是一个对称的分组密码,可以加密(译成密码)和解密(解密)信息。一种莫名其妙的形式称为密文加密转换数据。解密的密文数据转换回原来的形式,被称为明文。AES算法使用加密密钥能够128年,192年,256位加密和解密128位的数据块。 |
合成使用Xilinx ISE 13.3提出的体系结构和实施XC3S500e斯巴达3 e FPGA板。这个设计的必要的软件是使用功能丰富的C / c++编写的代码编辑器和编译环境中提供的SDK (Xilinx软件开发工具包)。SDK提供一个环境来创建软件平台和应用程序针对Xilinx嵌入式处理器(MicroBlaze)。SDK处理硬件设计创建Xilinx平台工作室(XPS)。 |
AES算法 |
AES有3种,即AES - 128、AES - 192、AES - 256,在每种情况下代表数量的大小(位)所使用的关键。所有的模式都在10、12或14轮取决于块的大小和长度选择的关键。AES仅仅允许一个128位的数据长度,可分为四个基本操作。这些块操作的字节数组和组织作为一个4 * 4的矩阵称为状态。算法开始一轮添加关键阶段之后,九轮四个阶段和十分之一的三个阶段,既适用于加密和解密算法[1][2][4]。 |
这轮由以下四个阶段: |
•替换字节 |
•改变行 |
•混合列 |
•添加圆键 |
不包括第十轮列混合阶段。前9轮解密算法由以下四个阶段: |
•逆转移行 |
•反替代字节 |
•添加圆键 |
•逆列混合 |
![]() |
第十轮再次逆列混合阶段不包括。整体流动的AES算法的加密和ecryption算法是显示在图1。 |
用字节:是一个非线性字节替换,使用变电站表(盒)从输入状态是每个字节替换为另一个字节。替换是可逆的,由两个变换的构成如下所述[2][8]。用字节操作如图3所示。 |
![]() |
1。状态字节由乘法逆元的有限域GF(28),用于AES。这个字段是使用以下不可约多项式的派生程度8: |
m (x) =×8 + x4 + x3 + x + 1。(1) |
2。仿射变换应用上面的结果。固定矩阵和固定在仿射变换向量/ GF(2)图2所示。 |
![]() |
逆替换字节:替代品的反向操作字节转换,在逆Sbox应用于每个字节的状态。这是通过应用的逆仿射变换后的GF(28)的乘法逆元。 |
行转移:转移行变换,第一行的数组保持不变。字节在第二、第三和第四行周期性改变,两个和三个字节到左边,分别如图4所示。行逆转变:转变的逆行,第一行的数组保持不变。字节在第二、第三和第四行周期性改变,分别向右2和3个字节。 |
![]() |
混合列:列混合变换,每一列的数组被认为是多项式/ GF (28)。与一个固定多项式相乘后模x4 + 1 (x) [2], MixColumn的操作,如图5所示。 |
(x) = 03 * x3 + 01 * x2 + 01 * x + 2 (2) |
结果是输出的对应的列状态如图5所示。因为它可以注意到这个操作需要乘以„twoA¢和„threeA¢,硬件相对简单的移位操作。 |
![]() |
逆列混合:在逆列混合变换,每一列的数组是一个多项式/ GF (28)。与一个固定多项式相乘后模x4 + 1 b (x), |
b (x) = 0 b * x3 + 0 d * x2 + 09 * x + 0 e (3) |
结果是输出的对应的列状态。因为它不是那么简单的硬件实现混合列,如果我们比较,InvMixCol需要实施更多的逻辑资源。 |
添加圆键:添加圆键操作如图6所示,这是一个简单的异或操作状态和轮之间的关键。多哈回合谈判主要来源于密码密钥的密钥调度过程。国家和圆的关键是相同的大小和获取下一个状态的XOR运算完成每个元素: |
b (i, j) = (i, j)⊕k (i, j) (4) |
b是当前状态的,下一个状态和k圆键。 |
![]() |
有三个步骤,在每个关键计划[6]。Keyrotate:函数Keyrotate需要一个四字节单词,并向左旋转一个字节。Keysubytes: Keysubytes操作需要四字节输入词替换每个字节的输入到另一个字节根据天地盒。KeyRcon:一个词的第一个字节是xor的常数。Rcon表的每个值属于Rinjdael有限域。添加轮加密和解密密钥是相同的。 |
实现 |
AES加密: |
使用硬件描述语言(VHDL)编码实现AES算法在Xilinx 12.4[3],我们继续与128位的加密和解密。AES加密块如图7所示,加密参数输入明文,关键尺寸和大小的关键输出密文。首先,我们必须映射16字节输入明文以正确的顺序的4 * 4字节状态,基于关键尺寸计算轮的数量和扩大使用我们的关键进度的关键。圆一个明文和密钥xor,剩下的九轮已申请四个操作:替换字节,转移行,列,混合添加圆键。 |
第十轮列混合阶段,关键是不包括在每个迭代生成[7]。这里简单的每个字节异或各自的字节的状态的关键是得到密文的加密算法。 |
b . AES解密: |
为AES解密,加密过程仅仅发生在相反的顺序相同。解密块如图8所示,加密参数输入密文,密钥和加密明文应该是一样的输出。在解密的关键计划保持不变;我们唯一需要实现的业务是逆subBytes, shiftRows和mixColumns, addRoundKey保持不变。 |
EDK AES算法的实现: |
在这一章里,我们已经看到了AES算法的实现使用单独的软件和硬件。有一些缺点在这些实现。缺点的硬件实现和软件实现克服的缺点利用EDK实现硬件实现是可以克服的。在EDK实现我们使用软硬件结合。 |
嵌在一个FPGA的设计: |
对于这个设计过程中,我们可以使用MICROBLAZE风潮处理器,我们使用斯巴达3 e starter kit的FPGA装备合成的目的。 |
嵌入式开发工具包(EDK): |
嵌入式开发工具包(EDK)是一套工具和IP,您可以用它来设计一个完整的嵌入式处理器系统在Xilinx FPGA器件实现。 |
Xilinx平台工作室(XPS): |
Xilinx平台Studio开发环境(XPS)是用于嵌入式处理器系统的硬件部分设计。您可以运行XPS在批处理模式或使用GUI, XPS现在与PlanAhead集成工具,使开发变得更容易。 |
软件开发工具包(SDK): |
软件开发工具包(SDK)是一个集成开发环境,XPS的补充,用于嵌入式软件C / c++应用程序创建和验证。SDK构建在Eclipse的开源框架和可能出现熟悉的你或你的设计团队的成员。更多信息关于Eclipse开发环境一般,伊势设计工具开发软件是嵌入式处理器用于添加源,然后在XPS使用基本系统构建器创建。 |
选择一个板类型: |
后街男孩需要选择一个可用的开发板,或自定义。支持开发板可以选择项目导航器,或者从XPS,后街男孩的介绍屏幕。 |
XPS工具: |
XPS包括底层工具需要开发嵌入式处理器系统的硬件组件 |
Platgen: |
XPS包括硬件平台生成工具,Platgen产生高密度脂蛋白和低水平嵌入式处理器系统的网表。当你实现FPGA设计的PlanAhead™设计工具,Platgen在必要时自动运行。 |
将硬件平台转换为比特流: |
设计在一个FPGA工作,它需要转换为比特流。这种转换是以下三个步骤: |
1。XPS生成网表是代表你的嵌入式硬件平台。 |
2。设计实现PlanAhea(映射到FPGA逻辑)的工具。 |
3所示。实现设计转换为比特流,然后可以下载到FPGA。 |
配置FPGA:下载比特流 |
——输入文件→download.bit |
这个下载下载。使用Xilinx一些文件到目标板 |
工具以批处理方式的影响 |
——XPS使用etc /下载。cmd文件下载比特流 |
•下载。cmd文件包含信息,如使用电缆的类型和FPGA的位置在一个JTAG链。 |
结果 |
加密过程(128位): |
纯文本:3658001543081 a4f0a0c42130b3a0c00。 |
关键:000102030405060708090 a0b0c0d0e0f。 |
密文:61 d03aeddde79bdbda779bcaf0abfffe。 |
解密过程(128位): |
密文:61 d03aeddde79bdbda779bcaf0abfffe。 |
关键:13111 d7fe3944a17f307a78b4d2b30c5。 |
纯文本:3658001543081 a4f0a0c42130b3a0c00。 |
结论 |
我们研究了微火焰和评估使用的小程序。我们实现了AES算法在所有三个模块,软件平台、硬件平台、软件和硬件平台的混合。e使用microblaze处理器。使用EDK实现AES算法(嵌入式开发工具包)是更好的解决方案的硬件实现和软件实现。执行速度,功耗少FPGA上实现所需和规模相比,硬件实现。 |
比较: |
![]() |
未来的范围: |
在这个项目中我们做了AES算法的实现。我们可以扩展这个实现图像加密和解密使用AES算法。 |
引用 |
|