基于ARM的硬件实现
根据满足3DES算法和一般嵌入式应用的需求,在此设计了一个基于ARM微处理器的嵌入式系统。以三星S3C2410处理器作为系统的核心,用嵌入式Linux作为操作系统。加密的数据可以存放于NANDFLASH等存储介质上,加密后的结果可以通过液晶屏直观地显示出来,实现用户交互。
在此设计过程中,难点是图形显示与加密函数的实现。这里通过移植MiniGUI,并在其上开发显示程序,完成了两者之间的联系,实验结果给出了3DES算法的演示效果。整个系统的具体实现如下。
1.系统设计框图
系统的核心部分是ARM微处理器,由ARM微处理器和其他一些功能单元构成了完整的嵌入式系统。这里的ARM微处理器选为基于ARM920T核心的S3C2410处理器芯片,其工作频率最高达200MHz;外围包括64MB的NANDFLAsH和64MB的RAM、键盘接口、串口、CPLD译码单元、网络单元、语音单元、LCD及触摸屏等。上述部件共同构建了嵌入式系统的硬件平台。
2.操作系统移植
该系统建立在嵌入式Linux系统之上,因此首先要移植Linux系统到ARM处理器上。嵌入式Linux是按照嵌入式操作系统要求设计的一种小型操作系统。一由一个内核以及一些根据需要进行定制的系统模块组成。
要构建运行环境,首先移植BootLoader到嵌入式系统中,通过BootlLoader可以完成对系统板上的主要部件,如CPU,SDRAM,FLAsH、串行口等进行初始化。分配内存空间的映射,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统准备好正确的环境。
Linux内核采用了稳定版的linux-2.4.18内核。该系统采用Cramfs文件系统,Cramfs被设计为简单较小的只读可压缩文件系统,因此很适合用作嵌入式的文件系统。可以利用工具软件BusyBox和Mkcramfs制作Cramfs文件系统。做好文件系统后下载到开发板上,可以看到Linux系统运行正常。
3.MiniGUI图形界面显示
MiniGUI是针对嵌入式设备,跨操作系统的图形界面支持系统,MiniGUI为实时嵌入式操作系统提供了非常完善的图形及用户界面支持。MiniGUI小巧、灵活且对中文的支持性最好。从技术架构上看,MiniGUI包括几个模块:输入抽象层、输出抽象层、消息模块、窗口模块、图形设备接口模块及.MiniGUI组件。
要想使MiniGUI能在本硬件系统上执行,需要移植MiniGUI到S3C2410开发平台。首先,安装交叉编译链,下载相关资源:libminigui-1.3.4.tar.gz,minigui-res-1.3.3.tar.gz,经过相应的配置和交叉编译后就可以把相应的库拷贝到Cramfs文件系统的目录,重新用Mkcramfs工具制作文件系统。对于应用程序,只需要经过交叉编译后执行可执行程序即可。
该系统利用MiniGUI图形界面作为3DES的演示输出。消息机制是MiniGUI运行的基础,应用程序通过接收消息与外界交互。消息由系统和应用程序产生,比如创建窗口时系统会产生MSG_CREAT消息,用户在窗口中的各种操作都会产生一系列相应消息。
系统采用了逻辑字体输出,建立逻辑字体的函数为Create-LogFont,设置设备hdc实用指定逻辑字体的函数为SelectFont。用TextOut作为输出,部分主函数如下:
其中调用的show(hdc)是3DES加密算法的具体实现。实验的简单演示结果如图4所示。实验结果表明,该系统可以实现正确的加密和解密功能,因此可以用基于ARM的嵌入式3DES加密系统进行数据加密,保证信息的安全。采用这种嵌入式微处理器的方法实现起来简单,体积小,易于移植到其他系统中,与采用FPGA的方法相比,实现起来灵活,系统复杂度低。
总结
3DES加密算法结合嵌入式系统的特点,就实现了基于ARM的3DES的加密算法的系统设计,详细阐述了3DES算法原理及加密系统的实现过程,并给出了演示结果。此系统具有方便、灵活、体积小,可定制等特点,因此在实际应用中有一定的参考意义。