韩 进周 燕(.山东科技大学计算机科学与工程学院,山东 青岛 66590;.山东科技大学电子通信与物理学院,山东 青岛 66590)
基于S3C6410的嵌入式加密网关设计与实现
韩 进1周 燕2
(1.山东科技大学计算机科学与工程学院,山东 青岛 266590;2.山东科技大学电子通信与物理学院,山东 青岛 266590)
随着科技的迅猛发展,智能便捷的电子设备越来越受人们欢迎,其中离不开网络技术和嵌入式系统的应用。网关作为网络的核心组成部分,能够实现终端设备的互联以及不同网络之间的通信。文章利用 ARM嵌入式处理器作为硬件平台核心,以嵌入式 Linux操作系统作为软件平台,使用AES加密算法提高信息的安全性和保密性,建立网关系统的开发平台,设计了一种嵌入式网关接入以太网。
嵌入式网关;socket网络编程;AES加密算法
伴随着信息化时代的到来,智能化设备和现代化系统不断更新和发展。嵌入式系统作为信息技术的一个重要组成部分,随时随地都能在人们是视野中出现,不论是家用电器、通讯工具等电子产品、还是工业自动化设备、医疗仪器等系统设施,嵌入式系统的应用越来越普遍。现实生活中,设备网络化已经成为一种趋势,网关作为不同网络间的信息交换的桥梁,在连接不同设备和各网络之间起到了关键作用。信息的安全性和保密性是信息交换过程中的重要环节,加密技术能够在信息的传输和存储等过程中提供保护。
嵌入式网关由硬件设计和软件设计组成。硬件设计由以嵌入式处理器为核心组成的最小系统和外围硬件接口电路组成,软件设计由嵌入式 Linux操作系统和相关运行的软件组成。
嵌入式微处理器是构成整个硬件电路的核心,设计选取了三星公司的S3C6410[1]微处理器。该处理器是一款16/32位RISC微处理器,基于ARM11内核,可外接大容量RAM和ROM,拥有多个IO接口和UART接口。[2]
嵌入式操作系统是构成整个系统软件部分的核心,嵌入式网关通过嵌入式操作系统接入网络实现不同设备间通信。设计选取了嵌入式 Linux操作系统,其带有与硬件相关的TCP/IP通信协议,能够实现网络通信。
考虑到传输过程中信息的安全性和保密性,设计中添加了AES加密算法在客户端对传输的数据进行加密后发送,在服务器端接收后使用相同密钥解密。
由于串口通信是计算机上一种非常通用的设备通信方式且应用十分广泛,因此设计中笔者设定外部设备是以串口形式输入,外围硬件电路接口主要使用以太网接口和串行口。嵌入式网关硬件电路结构如图1所示:
图1 硬件电路结构图
硬件电路中,嵌入式微处理器采用的是三星公司ARM1176JZF-S内核的 S3C6410,嵌入式外围设备采用的是DM9000A[3]以太网控制芯片、NAND FLASH存储器、SDRAM存储器和串口芯片MAX232。采用220V交流供电,电源模块转换成5V、3.3V等直流给各模块供电。
3.1 嵌入式处理器
嵌入式处理器是网关的最重要的核心,考虑到性能、外围电路和总线接口的需要,本文中网关硬件电路选取的三星S3C6410为核心处理器,该处理器有高性能、低成本、低功耗等特点,可以连接Flash和DDR两种存储器,外部存储器选择了 1GB的SLC NAND FLASH,内部存储器选择了两片16位的128MB mobile DDR内存。
3.2 网络模块
其中,网络模块由 DM9000A以太网控制芯片和HR911105A组成。DM9000A通过16位数据总线,与ARM的数据总线连接,网络变压器RJ-45接口集成了HR911105A与之连接。以太网中的数据从DM9000A传至ARM,通过内部集成的串口控制完成网关的信息传递。
3.3 存储模块
NAND FLASH芯片选用三星的K9G4G08U0A,供电电压为2.7V~3.6V。[4]其具有掉电不丢失信息的优点,用于存储软件的目标代码,像系统BSP引导程序、系统内核、各驱动程序和应用程序等。
SDRAM采用了两片16位的DDR芯片K4X1G163PC-L,供电电压为1.8V,S3C6410通过两个总线接口与之连接,用于存储处理器运行过程中需要的数据。
嵌入式网关结合了硬件电路和软件设计,本次设计的嵌入式网关的功能主要是实现网络连接、数据传递和协议转换。ARM11内核拥有MMU可以直接移植裁剪好的Linux操作系统,便可搭建好软硬件开发平台。
Linux操作系统内核支持网络,无需外挂TCP/IP协议包。软件设计部分,协议的转换变为socket网络编程的问题。
软件设计所实现的主要功能为:设定嵌入式终端设备发送信息通过串口连入网关,并经由网口传送至服务器,期间传送的数据经过加密算法确保信息的安全性和保密性。由此,嵌入式网关软件系统的设计包括编写socket网络程序和AES加密算法的实现。
图2 软件设计总体结构图
4.1 Socket和UDP协议
Socket套接口可以看作一个特殊的I/O,为应用程序和网络设备提供虚拟接口(API),包含对 TCP/IP协议的封装和应用。不同应用程序间的进行连接网络和交换信息,都需要访问网络协议。编写socket程序,通过调用socket接口,进行网络间信息交换。
TCP/IP协议是一组协议族(含TCP、UDP、IP等),根据数据传输方式选择一种协议。数据传输过程中,UDP协议(用户数据报协议)具有延迟少、数据传输效率高的特点,考虑到网关设备尽量资源消耗小、处理速度快,因此,本文选择UDP协议规定数据传输方式。
4.2 socket网络程序设计
C/S模式(客户/服务器模式)常用于网络通信,客户端和服务器通过 socket进行通信。服务器通过网络与客户端连接,客户端与服务器连接并提出请求,服务器应答并和客户端建立连接,生成 socket代表该连接,客户端与服务器按协议进行数据传输。
软件部分需要分别编写客户端和服务器的程序。服务器先启动服务程序,等待客户端的请求;客户端运行应用程序后,连接服务器并提出请求;服务器应答并建立与客户端连接,客户端与服务器进行通信,数据信息通过请求/应答方式传送。
AES加密算法即密码学中的高级加密标准,是美国联邦政府采用的一种区块加密标准。[5]该算法有安装密钥快、占用内存少、可并行处理、可抵御目前所知攻击、多平台支持运行、设计简单等优点。
算法加密过程主要经历 4步变换:字节替换、行位移变换、列混合变换以及轮密钥加,解密过程为每个加密过程的逆运算。[6]
图3 加密/解密流程图
5.1 字节替换
字节替换是AES算法中惟一的非线形变换,是一个砖匠置换,该置换包含一个作用在状态字节上的S-box,它是由字节在 GF(28)域中求其乘法逆,并外加一个仿射变换实现。[7]即每个8位二进制数通过一系列非线性变换后,变成另外的8位二进制数。
5.2 行位移变换
行位移变换是对行进行变换,将矩阵进行行移位操作,第一行不动,第二行循环左移一位,第三行循环左移两位,第四行循环左移三位。多轮变换后,原密码排序已打乱,非线形度增加。
5.3 列混合变换
把状态矩阵当作是有限域 GF(28)中的多项式,乘一个固定多项式,若出现溢位,则将其与x4+1模余。[7]
5.4 轮密钥加
最后一步变换是通过与密钥进行按位异或运算,每轮变换所需密钥都是密钥扩展的原始密钥后得到。[7]
连接好网关与设备,检查好网络,使用串口调试助手进行调试。
运行客户端程序,输入服务器IP地址,发送数据,同时显示生成的密文,如图4。
图4 客户端发送数据
可以看到根据发送信息的不同,加密算法产生的密文也不同,对比客户端和服务器的密文和发送/接受的信息可以确认网关是否通信正常且具有良好的安全性。
运行服务器程序,在服务器接收信息,对比客户端和服务器的密文和发送/接受的信息,由此可以发现网关通信功能正常,且具有良好的安全性和保密性。设计实现预计功能,如图5。
图5 服务器接受信息
本文设计了一个基于 S3C6410的嵌入式加密网关的方案,详细介绍了整个方案,着重阐述了socket套接口和UDP协议进行数据传输的具体方法和实现步骤,说明了AES加密算法的加密机制,最后验证了所设计的网关的可行性。随着越来越多的嵌入式系统出现在生活中,嵌入式加密网关的设计实现具有一定的应用价值。
[1] S3C6410X RISC Microprocessor user’s manual, Revision1.10 [EB/OL].[2016-11-10]. http:/ /www.samsungsemi.com.
[2] 唐新忠,李海忠,马明明,等.基于 ARM 平台的智能家居网关设计[J].现代电子技术, 2016,39(20):121-124.
[3] DM9000A Datasheet (PDF)-Davicom Semiconductor,Inc. Version:DM9000A-17-DS-F01[EB/OL]. [2016-11-10]. http://www.alldatasheet.com/datasheet-pdf/pdf/329725/DA VICOM/DM9000A.html.
[4] K9G4G08U0A Datasheet (PDF)-Samsung semiconductor. [EB/OL]. [2016-11-10]. http://www.alldatasheet.com/datasheet-pdf/pdf/204289/SA MSUNG/K9G4G08U0A.html.
[5] 龚进.AES加密算法在电子系统中的优化及应用研究[D].太原:中北大学,2012.
[6] 赵雪梅.AES加密算法的实现及应用[J].常熟理工学院学报,2010,24(2):105-110.
[7] 张小梅.AES算法在ARM核嵌入式系统上的优化实现[J].计算机应用与软件,2012,29(5):285-288.
Design and implementation of embedded encryption gateway based on S3C6410
With the rapid development of science and technology, intelligent and convenient electronic devices are more and more popular, which cannot be separated from the application of network technology and embedded systems. Gateway, as the core component of the network, can realize the interconnection of terminal equipment and the communication between different networks. This paper establishes a gateway system development platform and designs an embedded Ethernet access gateway by taking use of ARM embedded processor as the core of hardware platform, the embedded Linux operating system as the software platform, and AES encryption algorithm to improve information security and confidentiality.
embedded gateway; socket network programming; AES encryption algorithm
TP399
A
1008-1151(2016)12-0009-03
2016-11-07
韩进(1968-),女,山东青岛人,山东科技大学计算机科学与工程学院教授,博士,硕士生导师,研究方向为嵌入式计算机控制、计算机系统结构、电子电路;周燕(1991-),女,山东青岛人,山东科技大学电子通信与物理学院硕士研究生,研究方向为嵌入式系统及应用。