数据加密技术在中的应用

时间:2013-01-16来源:网络

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

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

b.JPG


假设某数据d在随机数列中的存储位置为md(双字节),地址md为小于N的随机数,md在随机数列中的存储位置为nd'(高字节)和kd'(低字节),则原始数据d可表述为:
c.JPG
为提高加密强度,数据d的存储地址的存储地址nd'和kd'是伪随机的,每次加密操作时,其值将分别在地址空间Jnd±F,Jkd±F的范围内变化,其中,Jnd,Jkd分别为数据d存储地址的高、低字节的存储基地址,F为存储地址最大偏移量。这3个量都是事先定义好的。为简化算法的复杂程度,降低算法对随机存储器的需求,所有原始数据基地址的最大偏移量可以设置成相等。
加密操作时基地址偏移量的具体值,f随机,由随机数列中某些元素通过规定的算法运算得到:
f随机=F1(X[xa],…,X[xb]) (2)
式中:xa,…,xb分别为小于N的固定值;F1表示运算规则。运算规则可以采用求和再取低几位、取反求和等各种规则,但要保证运算结果f随机F。为简化加密过程,可以在随机数列中规定某段数据专门用于产生基地址偏移量。
考虑到f随机,则式(1)变为:
e.JPG
式中:Jnd,Jkd分别是数据nd'和kd'在随机数列X[i]中的基地址;f随机是本次加密操作的地址偏移量。

1 2 3

关键词: 嵌入式系统 数据加密 数据寻址 密钥

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版