北极星

搜索历史清空

  • 水处理
您的位置:电力输配电电力通信技术正文

数据加密在嵌入式系统升级中的应用

2014-06-19 10:04来源:e-works关键词:MCUISP电力通信收藏点赞

投稿

我要投稿

1、MCUISP和IAP功能

现在MCU已经普遍采用Flash型的EEPROM作为程序存储器,Flash结构的存储器写入时可以按字节操作把1写成0,擦除时都是按扇区操作,把0写成1。它的流行与普及为ISP/IAP功能的实现提供了技术基础。

ISP,In System Programming,它的意思是“在系统编程”,即MCU不需要从电路板上取下就可以编程写人最终用户代码,已经编程的器件也可以用ISP方式擦除或再编程,从而改变了单片机系统的固化程序升级需拔插单片机芯片、使用专用编程器进行烧录的麻烦方式,轻松实现在单片机系统电路板上对单片机芯片内固化的程序进行升级。

IAP,In Application Programming,它的意思是“在应用编程”,即MCU在运行时程序存储器可由程序自身进行擦写。也就是说程序自己可以往程序存储器里写数据或修改程序。这种方式的典型应用就是程序运行中的数据存储。ISP/IAP的区别是:ISP通常是在手工操作下整片擦除、编程,需要简单的硬件资源;而IAP却是在某段程序的控制下对另外一段程序Flash进行读写,可以控制对特定地址的读写操作。实际上单片机的ISP功能就是通过IAP技术来实现的,即芯片在出厂前就已经有一段芯片制造商的boot程序在芯片里面,片子上电后,开始运行这段程序,当检测到上位机有下载要求时,便和上位机通信,然后下载数据到存储区。其实在系统编程是通过厂商的boot程序对片内Flash存储器进行擦除/编程的方法,而在应用编程是用户的应用代码对片内Flash存储器进行擦除/编程的方法。正是因为有了IAP,从而使得MCU可以将数据写入到程序存储器中,数据如同烧入的程序一样,掉电不丢失。IAP技术的普及对于高档仪器仪表的智能化意义重大,使得仪器的程序可以根据实际情况进行改变和调整。

2、数据加密

加密就是把明文变成别人看不懂的密文,然后发送给自己想要的人,接收方用配套的解密算法又把密文解开成明文,这样就不怕在传送的路上被别人截获而泄密,以此来防止非授权用户使用该数据。

数据加密中的明文是指原始的或未加密的数据,需要通过加密算法对其进行加密,加密算法的输入信息为明文和密钥;密文,即明文加密后的格式,是加密算法的输出信息。加密算法是公开的,而密钥则是不公开的。密文,不应为无密钥的用户理解,用于数据的存储以及传输。传统的加密方法有两种,替换和置换。替换是使用密钥将明文中的每一个字符转换为密文中的一个字符。而置换仅将明文的字符按不同的顺序重新排列。单独使用这两种方法的任意一种都是不够安全的,但是将这两种方法结合起来就能提供比较高的安全程度。

加密方式分为对称加密和不对称加密。对称,就是采用这种加密方法的双方使用同样的密钥进行加密和解密。在对称加密算法中,数据发送方将明文和加密密钥一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。接收方收到密文后,若想解读原文,则需要使用与加密相同的密钥及相同算法的逆运算对密文进行解密,才能使其恢复成可读明文。这就要求加密密钥能够从解密密钥中推算出来,同时解密密钥也可以从加密密钥中推算出来。而在大多数的对称算法中,加密密钥和解密密钥是相同的,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求发送方和接收方在安全通信之前,商定一个密钥。对称算法的安全性依赖于密钥,泄漏密钥就意味着任何人都可以对他们发送或接收的消息解密,所以密钥的保密性对通信安全至关重要。由于其计算量小、加密速度快、加密效率高,对称性加密通常在消息发送方需要加密大量数据时使用。如果用户每次使用对称加密算法时,都使用其他人不知道的惟一密钥,安全性是可以得到保证的。

不对称加密算法的基本原理是,如果发信方想发送只有收信方才能解读的加密信息,发送方必须首先知道接收方的公钥,然后利用接收方的公钥来加密原文;接收方收到加密密文后,使用自己的私钥才能解密密文。显然,采用不对称加密算法,收发双方在通信之前,接收方必须将自己早已随机生成的公钥送给发送方,而自己保留私钥。由于不对称算法拥有两个密钥,因而特别适用于分布式系统中的数据加密。非对称加密算法的保密性比较好,它消除了最终用户交换密钥的需要,但加密和解密花费时间长、速度慢,它不适合于对文件加密而只适用于对少量数据进行加密。广泛应用的不对称加密算法有RSA算法和美国国家标准局提出的DSA。以不对称加密算法为基础的加密技术应用非常广泛。

3、常用加密算法

由于受限于MCU的运算能力,并非所有的加密算法都适用于嵌入式系统。TEA(Tiny Encryption Algorithm)是一种小型的对称加密解密算法,由剑桥大学计算机实验室的David Wheeler和Roger Needham于1994年发明。它以加密解密速度快、效率高、实现简单著称。该算法的可靠性是通过加密轮数而不是算法的复杂度来保证的,TEA算法主要运用了移位和异或运算,密钥在加密过程中始终不变。它是一种分组密码算法,其明文密文块为64比特,密钥长度为128比特。TEA算法利用不断增加的Delta(黄金分割率)值作为变化,使得每轮的加密不相同,有很强的抗差分分析能力。

DES算法又被称为美国数据加密标准,是上世纪七十年代美国IBM公司研制的对称密码体制加密算法,并在1977年成为美国官方加密标准。DES的工作原理为:明文按64位进行分组,每个块用64位密钥进行加密,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位,使得每个密钥都有奇数个1),分组后的明文组和56位的密钥按位替代或交换的方法形成密文组。每块先用初始置换方法进行加密,再连续进行16次复杂的替换,最后再对其使用初始置换的逆。第i步的替换并不是直接利用原始的密钥K,而是由K与i计算出的密钥Ki。其入口参数有三个:key、data、mode。key为加密解密使用的密钥,data为加密解密的数据,mode为其工作模式。当模式为加密模式时,明文按照64位进行分组,形成明文组,key用于对数据加密,当模式为解密模式时,key用于对数据解密。攻击DES的主要形式被称为蛮力或彻底密钥搜索,即重复尝试各种密钥直到有一个符合为止。如果DES使用56位的密钥,则可能的密钥数量是2的56次方个。随着计算机系统能力的不断发展,DES的安全性比它刚出现时会弱得多,然而从非关键性质的实际出发,仍可以认为它是足够的。不过在实际使用中更多地选择新的加密标准一高级加密标准。

密码学中的高级加密标准(Advanced Encryption Standard,AES),是美国联邦政府采用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标准已然成为对称密钥加密中最流行的算法之一。AES的区块长度固定为128比特,密钥长度则可以是128,192或256比特,分别称为AES—128,AES—192,AES—256,如果数据块及密钥长度不足时,则补齐之。AES算法是基于置换和代替的,置换是数据的重新排列,而代替是用一个单元数据替换另一个。AES算法使用了多重循环实现置换和替换,在规范中被称为Bytes Sub(字节替换)——对数据的每个字节应用非线性变换;Shift Rows(行位移变换)——对每一行字节循环重新排序;Mix Columns(列混合变换)——对矩阵的列应用线性变换;Add Round Key——对状态和每轮的子密钥进行异或操作。该算法对内存的需求非常低,使得它很适应于资源受限制的环境。

原标题:数据加密在嵌入式系统升级中的应用
投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。