数据加密技术在嵌入式系统中的应用
假设某数据d在随机数列中的存储位置为md(双字节),地址md为小于N的随机数,md在随机数列中的存储位置为nd'(高字节)和kd'(低字节),则原始数据d可表述为:
为提高加密强度,数据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)变为:
式中:Jnd,Jkd分别是数据nd'和kd'在随机数列X[i]中的基地址;f随机是本次加密操作的地址偏移量。
另外在把数据写入随机数序列X[i]时被写数据也经过了变换,变换规则可以采用高4位与低4位交换、取非、字/字节循环移位、XOR等各种方法,只要变换后不破坏数据的惟一性即可。设把数据写入随机数序列时的变换规则为F2,对应的反变换表示为,则式(3)变为:
由于f随机具有随机特性,则每次加密数据时,数据d写入随机数列的位置md具有随机性、存储md寻址地址的字节位置也具有随机性;这样就保证了系统每次在加密数据时数据地址及数据地址的存储地址都是不相同的,大大增加了破译难度。
综上所述,把数据d插入随机数列的过程是:第1步,产生一随机数序列X[i],其中iN,N为数组长度;第2步,根据规则F1得到基地址偏移量f随机;第3步,产生一随机数md,其中mdN,并且没有被使用过;第4步,把数据d经过F2规则变换后赋值给X[md];第5步,假设nd'为数据md的高8位,则把nd'经过F2规则变换后赋值给X[Jmd+f随机],其中Jnd是加密算法中数据d存储地址的高字节的存储基地址。第6步,假设kd'为数据md的低8位,则把kd'经过F2规则变换后赋值给X[Jkd+f随机],其中Jkd是加密算法中数据d存储地址的低字节的存储基地址。至此,即完成了一个数据插入随机数列的过程。
根据随机数列得到数据d的过程是:第1步,根据规则F1得到基地址偏移量f随机,第2步,把X[Jnd+f随机]经规则变换后赋值给nd';第3步,把X[Jkd+f随机]经规则变换后赋值给kd';第4步,X[nd'8+kd']经规则变换后即得到原始数据d。
3.2 密文数据防篡改的方法
为防止密文数据被非法更改,采用了经过改进的循环冗余校验技术。即数列X[i]的字节x[M]存储[0,M-1]地址段中所有数据的校验和,x[2M]字节存储[M,2M-1]地址段中所有数据的校验和,…,在解密时首先检查各地址段数据的校验和与“校验和存储字节”的存储值是否相等,即可判断数据是否被非法更改。假设M是被计算的数据段长度,则:
式中:F2代表数据写入随机数列时的变换规则;k=1,2,…,N/M。
通过这种方法,密文数据中的任何字节被非法更改,都可以被检测到。另外被求和的字段长度也可以设置成不相等,数据就更难被破解。
3.3 数列置换
为进一步提高加密强度,埋入数据后的随机数列X[i]还可经过“置换表”技术进行加密。在该方法中,置换表Z[i]是关键,它是数列[0,1,…,255]中的元素再经过随机排列而得到的。设Z[i]中的数据为x[i],则z[i]具有如下特征:
使用两个或更多的“置换表”,在置换操作时按伪随机的方式使用每个袭,可以进一步提高加密强度。但每增加一个置换袭,嵌入式系统程序中就需要增加一个长度为255 B的数组,因此置换表的数量还要根据加密强度需求、嵌入式系统的存储和数据处理能力等因素确定。
4 结语
接本文所述方法加密后的数据是一组没有任何规律的伪随机数,且完全相同的密文数据每次加密后都不相同,具有很高的加密强度和防破解能力。另外该加密方法还具有微处理器资源需求小,算法容易实现,加、解密运行时间短等优点。该加密方法还可应用于软件用户口令存储加密、数字签名等方面。该技术现已成功应用在某型工业控制设备试用状态管理和某型机载电子设备自动测试系统使用权限管理等数据加密领域,取得了很好的应用效果。在工业设备的试用状态管理应用中,当需要对已经交付用户试用的设备进行工作状态设置时(如试用状态升级到正式交付状态等),生产厂商只需把密文文件通过互联网发送给用户,用户把数据拷贝到U盘后再插入设备的USB口,重新启动设备即
可完成,使用起来十分方便。
嵌入式系统,数据加密 数据寻址 密钥 相关文章:
- 嵌入式安全模块在电子产品版权保护中应用(09-09)
- 一种密钥可配置的DES加密算法的FPGA实现(06-05)
- 低成本USB接口密钥的设计方法(12-21)
- 打造一个基于单片机的“USB“密钥(10-15)
- CentOS64+Qt+Mysql+ftp+无密钥传输的配置详细过程(10-08)
- Atmega128单片机的RC5和RC6算法比较与改进(12-28)