




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于ARM的3DES加密算法实现 引 言 现代密码学根据密钥类型的不同将加密算法分为对称加密算法和公开密钥加密算法。3DES算法作为对称加密算法的一种,被实践证明是一种安全性非常高的加密算法,受到了广泛的应用。加密算法主要通过软件和硬件两种方式来实现,软件的实现方式具有灵活方便的优点,同时也具有加密速度受限制的缺点。采用硬件实现加密算法是实际应用中必须要考虑到的问题。目前经常采用硬件FPGA等来实现,该种实验方式具有处理速度快的特点,但是对系统的复杂度要求较高。嵌入式微处理器具有实现简单,系统集成度高,体积小,易于移植等众多优点,因此有必要研发基于嵌入式微处理器的加密算法硬件设备,在此提出一种基于ARM处理器的3DES的硬件实现方法。1 3DES算法原理 DES是美国国家标准局颁布的数据加密算法,作为世界范围内的公开加密标准已经使用了20多年。随着计算机处理速度的提高,DES算法面临着一些安全威胁,DES采用56位密钥,曾经有人用穷举搜索法对DES进行过密钥搜索攻击。近年来也有人提出了差分和线性攻击方案,该方案的实施必须有超高速计算机的支持。为了增强DES算法应对差分或线性攻击的可能性,人们提出了一系列改进方案,采用增加密钥长度是一种可行的途径。为了增加密钥的长度,可将分组密码进行级联,在不同的密钥作用下,连续多次对一组明文进行加密。其中,最有效的方法是使用三重DES加密,它可使加密密钥长度扩展到128位,在提高加密强度的同时,足以应付目前的各种攻击。 DES是一个分组加密算法,它以64位为分组对数据加密。64位的分组明文序列作为加密算法的输入,经过16轮加密得到64位的密文序列。加密的密钥为64位,实际长度为56位,DES算法的保密性取决于密钥。DES对64位的明文分组进行操作。首先通过一个初始置换IP,将64位的明文分成各32位长的左半部分和右半部分,该初始置换只在16轮加密过程进行之前进行一次。在经过初始置换操作后,对得到的64位序列进行16轮加密运算,这些运算被称为函数f,在运算过程中,输入数据与密钥结合。经过16轮运算后,左、右两部分合在一起得到一个64位的输出序列,该序列再经过一个末尾置换IP-1,获得最终的加密结果。过程如图1所示。 在每一轮加密过程中,函数厂的运算包括以下四个部分:首先进行密钥序列移位,从移位后的56位密钥序列中选出48位;然后通过一个扩展置换将输入序列32位的右半部分扩展成48位,再与48位的轮密钥进行异或运算;再者通过8个s盒将异或运算后获得的48位序列替代成一个32位序列;最后对32位序列应用置换P进行置换变换,得到-厂的32位输出序列。将函数厂的输出与输入序列的左半部分进行异或运算后的结果作为新一轮加密过程输入序列的右半部分,当前输入序列的右半部分作为新一轮加密过程输入序列的左半部分。上述过程重复操作16次,便实现了DES的16轮加密运算。 假设Bi是第i轮计算的结果,则Bi为一个64位的序列,Li和Ri分别是Bi的左半部分和右半部分,Ki是第i轮的48位密钥,且f是实现代换、置换及密钥异或等运算的函数,那么每一轮加密的具体过程为: 以上操作的详细过程如图2所示。 在3DES加密算法中,加密过程用两个不同的密钥K1和K2对一个分组消息进行三次DES加密。首先使用第一个密钥进行DES加密,然后使用第二个密钥对第一次的结果进行DES解密,最后使用第一个密钥对第二次的结果进行DES加密。 解密过程首先使用第一个密钥进行DES解密,然后使用第二个密钥对第一次的结果进行DES加密,最后再使用第一个密钥对第二次的结果进行DES解密。 DES算法的密钥长度是56位,三重DES算法的密钥长度是112位,加密强度显著增强,可以很好地应付各种攻击,目前尚没有可行的攻击方法,应用3DES的加密系统具有很大的实用价值。2 基于ARM的硬件实现 根据满足3DES算法和一般嵌入式应用的需求,在此设计了一个基于ARM微处理器的嵌入式系统。以三星S3C2410处理器作为系统的核心,用嵌入式Linux作为操作系统。加密的数据可以存放于NAND FLASH等存储介质上,加密后的结果可以通过液晶屏直观地显示出来,实现用户交互。在此设计过程中,难点是图形显示与加密函数的实现。这里通过移植MiniGUI,并在其上开发显示程序,完成了两者之间的联系,实验结果给出了3DES算法的演示效果。整个系统的具体实现如下。21 系统设计框图 系统的核心部分是ARM微处理器,由ARM微处理器和其他一些功能单元构成了完整的嵌入式系统。这里的ARM微处理器选为基于ARM920T核心的S3C2410处理器芯片,其工作频率最高达200 MHz;外围包括64 MB的NAND FLASH和64 MB的RAM、键盘接口、串口、CPLD译码单元、网络单元、语音单元、LCD及触摸屏等。上述部件共同构建了嵌入式系统的硬件平台。系统核心框架如图3所示。22 操作系统移植 该系统建立在嵌入式Linux系统之上,因此首先要移植Linux系统到ARM处理器上。嵌入式Linux是按照嵌入式操作系统要求设计的一种小型操作系统。一由一个内核以及一些根据需要进行定制的系统模块组成。 要构建运行环境,首先移植BootLoader到嵌入式系统中,通过BootlLoader可以完成对系统板上的主要部件,如CPU,SDRAM,FLAsH、串行口等进行初始化。分配内存空间的映射,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。Linux内核采用了稳定版的linux-2418内核。该系统采用Cramfs文件系统,Cramfs被设计为简单较小的只读可压缩文件系统,因此很适合用作嵌入式的文件系统。可以利用工具软件BusyBox和Mkcramfs制作Cramfs文件系统。做好文件系统后下载到开发板上,可以看到Linux系统运行正常。23 MiniGUI图形界面显示 MiniGUI是针对嵌入式设备,跨操作系统的图形界面支持系统,MiniGUI为实时嵌入式操作系统提供了非常完善的图形及用户界面支持。MiniGUI小巧、灵活且对中文的支持性最好。从技术架构上看,MiniGUI包括几个模块:输入抽象层、输出抽象层、消息模块、窗口模块、图形设备接口模块及MiniGUI组件。 要想使MiniGUI能在本硬件系统上执行,需要移植MiniGUI到S3C2410开发平台。首先,安装交叉编译链,下载相关资源:libminigui-134targz,minigui-res-133targz,经过相应的配置和交叉编译后就可以把相应的库拷贝到Cramfs文件系统的目录,重新用Mkcramfs工具制作文件系统。对于应用程序,只需要经过交叉编译后执行可执行程序即可。 该系统利用MiniGUI图形界面作为3DES的演示输出。消息机制是MiniGUI运行的基础,应用程序通过接收消息与外界交互。消息由系统和应用程序产生,比如创建窗口时系统会产生MSG_CREAT消息,用户在窗口中的各种操作都会产生一系列相应消息。系统采用了逻辑字体输出,建立逻辑字体的函数为Create-LogFont,设置设备hdc实用指定逻辑字体的函数为SelectFont。用TextOut作为输出,部分主函数如下: 其中调用的show(hdc)是3DES加密算法的具体实现。实验的简单演示结果如图4所示。实验结果表明,该系统可以实现正确的加密和解密功能,因此可以用基于ARM的嵌入式3DES加密系统进行数据加密,保证信息的安全。采用这种嵌入式微处理器的方法实现起来简单,体
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 锻造供应链专员考试试卷及答案
- 非遗传承人(现代创新方向)笔试试题及答案
- 2025年怀化市辰溪县自然资源局招募笔试考试试题【答案】
- 2025年廊坊文安县选聘高中教师考试笔试试题【答案】
- 项目投资风险的管理
- 2025年井下瑞雷波探测仪合作协议书
- 2025年模组检测系统项目建议书
- 2025年暑假建筑专业大学生.实践报告范文
- 以实践为导向的高校干细胞研究与教学策略
- 提升教学效果的利器教育机器人技术概览
- 随州市城市规划管理技术规定
- 绿色食品高粱生产技术操作规程
- 机械原理课程设计说明书精压机
- 三年级除法竖式谜
- 口腔修复学-全口义齿修复课件
- 矿床规模划分标准
- 抖音快闪自我介绍(含背景音乐)
- 中国南方人才市场办事指引
- 3、焊缝(焊道、焊口)宽度计算公式
- 天车工考试考试试题
- 抗体药物中试项目可行性研究报告写作范文
评论
0/150
提交评论