随着普适计算技术的不断发展,嵌入式应用对安全的需求越来越高,因此安全领域的研究人员开始设计专门面向嵌入式应用的加密算法。那么接下来我就给大家介绍几款比较常用的面向嵌入式应用的加密算法。

一、HIGHT加密算法

HIGHT是一种分组加密算法。它的分组长度和密钥长度分别为64位和128位。尽管这种加密算法的设计目标是提供低资源占用率的硬件实现,然而由于其结构非常简单并且以8位数据为基本操作单元,其在嵌入式平台上的软件实现效率也很高。HIGHT的基本操作包括加法、减法、异或和位循环。

面向嵌入式应用的加密算法

二、SEA加密算法

SEA加密算法是一种分组加密算法,它的设计目标是为具有优先指令集的微处理器提供低成本的加密算法。这种算法具有可变的参数,包括分组长度、密钥长度和处理器字长。这一特性使其能够方便地移植到各种平台。

SEA的基本操作包括异或、与(或)、字循环、位循环以及加法。虽然其算法结构非常灵活、简单,但为了提供足够的安全性,需要执行相当多次的迭代,这一点限制了它的性能。

面向嵌入式应用的加密算法

三、PRESENT加密算法

PRESENT加密算法是一种超轻量级的分组加密算法。它的主要设计目标是硬件实现效率和功耗,这使得它更加适合用硬件实现。PRESENT的基本操作包括异或,位元替换和位置换。尽管位元替换和位置换用硬件实现的效率非常高,但用软件实现就过于复杂了,除非通过牺牲资源来换取性能的改善。

小知识之分组密码

分组密码是将明文消息编码表示后的数字(简称明文数字)序列,划分成长度为n的组(可看成长度为n的矢量),每组分别在密钥的控制下变换成等长的输出数字(简称密文数字)序列。