微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 数据加密技术在嵌入式系统中的应用

数据加密技术在嵌入式系统中的应用

时间:01-16 来源:互联网 点击:

摘要:在装备的试用状态管理和敏感数据保护等方面,数据加密技术的应用越来越广泛。针对嵌入式系统的特点和数据加密需求,给出了一种可应用到嵌入式系统的数据加密算法。该方法在随机数序列的基础上实现数据加密,并综合应用了数据二次寻址、置换表、数据字节运算、改进的循环冗余校验等技术,相同明文每次加密后形成的密文数据各不相同,具有加密强度高、算法容易实现、密文数据防篡改等特点。该技术已成功应用于C8051F020和MSP430F135单片机系统,分别实现了某两型装备的试用期状态管理和敏感数据保护。
关键词:嵌入式系统,数据加密;数据寻址;密钥

0 引言
当前嵌入式系统已经广泛应用在武器装备和民用产品的各个领域,在其越来越智能化的同时,与之运行有关的各种工作参数等设置数据也越来越成为需要保护的对象。
某些系统中,系统工作状态设置参数、测量结果等敏感数据必须经过授权才能被设置或查看。在没有授权的情况下,即使得到敏感数据,也无法破解数据的真正含义。在具有“试用风险管理”功能的民用产品中,产品交付用户的日期、试用期限及试用状态(类似于软件产品的“试用版本”)、试用状态到交付状态的设置、产品序列号、产品工作状态设置口令等数据直接关系到产品生产厂商的经济利益。产品试用期结束后,产品工作状态升级等设置数据需要通过用户传递给设备,因此,在客观上就需要一种强有力的安全措施来保护这些敏感数据不被篡改或非法应用到其他同型产品。

1 数据加密的应用实例
数据加密在嵌入式系统中的应用实例如图1所示。在该应用中,包括“远程控制端”和“用户端”两个子系统,其中“远程控制端”可以是上级机关,也可以是民用产品的生产、销售单位。在“远程控制端”,根据密钥文件,敏感数据被加密处理后形成密文数据,就可以通过互联网或非涉密人员进行传递。密文数据传送到设备的使用单位后,再由非涉密的使用人员(或民用产品用户)把这些数据输入嵌入式设备。设备根据其存储的密钥数据把密文还原成内部可识别的敏感数据,再进行相应操作,从而最终实现远程控制端对设备的控制;把嵌入式设备中的数据传输到远程控制端的过程与之相反,首先敏感数据由嵌入式设备进行加密处理,再通过互联网或其他非涉密渠道传送到远程控制端,密文数据解密后即可还原成原始数据。


在设备试用状态管理的应用实例中,“远程控制端”密文数据的产生由“远程控制端”密文数据产生程序实现,密文数据的具体功能由数据“任务类型”定义,包括升级到交装状态、延长试用期限、交装状态和试用状态出厂参数设置等4种任务,用户界面如图2所示。只要操作人员在用户界面上输入设备序列号、用户密码、任务类型等数据,再点击“创建文件”,密文数据即可生成,然后即可把该密文数据文件通过互联网等传递给用户。当用户把该密文数据注入设备时,设备按规定的算法把数据解密后,再判断设备序列号和用户密码是否与设备定义一致,如果一致则执行密文数据定义的任务。通过这样的方法,设备生产厂商即可实现对设备试用状态的远程控制。

2 嵌入式系统数据加密技术的特点
所谓数据加密技术是指将信息(或称明文)经过加密钥匙及加密函数转换,变成无意义的密文,而接收方将此密文经过解密函数、解密钥匙还原成明文的技术。
数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,因此数据发送方和接收方都需要一些特殊的信息用于加解密,这就是所谓的密钥(或加密算法)。密钥分为专用密钥和公开密钥两种。嵌入式系统中用户端的密钥存储在硬件设备中,因数据存储芯片在硬件上设置有加密机制,无法被读取或破译,因此采用专用密钥这种简单的形式即可满足要求。
在嵌入式系统中,“远程控制端”的密钥由远程控制人员掌握,“用户端”的密钥存储在嵌入式系统中,用户无法得到密钥数据,就无法破解密文数据,从而无法擅自设置嵌入式设备中需要保护的工作参数和工作状态。
根据嵌入式系统的特点及加密技术的应用环境,应用到嵌入式系统时,数据加密具有以下几个特点:
(1)加密算法要简单且容易在MCU上实现,占用的字节数要尽可能少;
(2)应具有较高的加密强度。如果用户有多台设备,就有机会获得多套密文数据。由于设备和密文数据都处于用户掌控之下,如果加密强度不够,密文数据将很容易被破解,并被非法应用到其他设备;
(3)加密技术应能识别密文数据是否被非法篡改,以防止用户更改数据后再在设备上试验,进而逐步掌握密文数据的加密规则;
(4)密文数据中应包含设备序列号信息,以防止数据被非法应用到其他设备。

3 数据加密的实现方法
下面介绍的数据加密方法已成功应用蓟某嵌入式设备中。其基本过程是,先把被加密数据通过“置换表”法、数据字节运算等加密算法进行加密处理,再把加密后的数据根据一定的规则随机地插入到一随机数序列中,同时把该数据在数列中的存储地址插入该数列的某规定位置。操作完成后再对该数列采用“置换表”法进行数据置换,并采用循环冗余校验技术分段计算数列的校验和,并把校验和插入数列的规定位置。该方法加密强度高,代码量少,运算量小,随机存储器需求量小,适合应用到嵌入式系统中。
3.1 数据加密方法
在加密数据前,首先产生一随机数序列X[i],其中iN,N为数组长度(单位为B),其大小可根据原始数据的数量、加密强度、嵌入式系统的存储和处理能力等综合考虑后确定。
在加密过程中,原始数据通过二次寻址的方式插入随机数列,这样数据在数列中的存储位置可以是随机的,被加密数据的存储地址是相对固定的。数据二次寻址方式原理示意图如图3所示。图中,每次加密操作时原始数据0x7E的存储位置是随机的,本次加密操作时其存储地址0x01C2存储在0x00D9和0x01D8两个字节中。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top