在之前的文章中,我们了解了轻量级分组密码算法,并且在文章中我们讲到PRESENT算法和其他算法相比,拥有更高的硬件执行效率,使其成为轻量级分组算法中的佼佼者。今天我们就通过本文来了解一下PRESENT加密算法。

PRESENT算法简介

PRESENT算法是在CHES2007国际会议上由Bogdanov等人提出的,主要为物联网中资源受限的智能卡或加密节点开发设计。虽然是轻量级密码算法,但完全的31轮PRESENT密码算法是可以抵抗现有的数学攻击的。

PRESENT算法的设计思路借鉴了DES加密算法,但具体实现还是有很大差别,PRESENT的S盒是4位进4位出,位移和模2加运算。同时,PRESENT的轮函数采用SP结构(替代—轮换),而DES则采用的是FEISTEL结构;相比 DES、AES 等加密算法,PRESENT算法更适合资源受限的物联网安全应用。

PRESENT加密算法

PRESENT算法的加密原理

PRESENT分组长度为64 bit,即每次运算操作输入64 bit,又由于是4进4出的方式,故推算共有16个S盒,其加密轮函数F主要操作有轮密钥加、S盒置换、P置换三个部分。31轮中每一轮包括线性置换Р和非线性置换S,非线性置换S常称之为的S盒置换。

PRESENT算法的密钥长度可以为80 bit 或128 bit;64 bit明文经过31轮的迭代和最末轮白化运算后得到需要的64 bit密钥。

PRESENT加密算法

PRESENT算法的加密过程

  1. 轮密钥加:64bit 轮输入同轮密钥进行异或。
  2.  S 盒代换层:将轮密钥加64bit 输出查找16 个4 进4 出的S 盒。
  3.  P 置换层:通过置换表P(i)对S 盒代换64bit 输出按比特进行重新排列。

为提高算法安全性,PRESENT 在第31 轮后使用64bit 密钥K32 进行后期白化操作。

PRESENT加密算法

PRESENT算法的优缺点

与AES、DES等算法相比,轻量级PRESENT加密算法将经过多次S置换和P置换、轮密钥加操作的密钥作为加密系统的主控密钥,扩展了密钥宽度,增加了安全性能。

但是,PRESENT加密算法的编程非常简单,功耗攻击点也比较容易选择,这就导致PRESENT差分功耗攻击在安全性方面仍然存在着一定的不足之处。

免责声明:素材源于网络,如有侵权,请联系删稿。