Present轻量级分组密码

FROM:

说明,开销单位

32-bit XOR = 80 GE, 32-bit arithmetic ADD = 148 GE,
192-bit FF = 1344 GE, SHIFT = 0 GE

SP-network

 31 rounds 

Ki i={1,2, ... , 32} k32用来做白化(线性的置换和非线性的替换) 由user-supplied key来生成

The block length is 64 bits

key lengths of 80 or 128 bits  

很多时候用80bits是可行的,也符合eSTREAM项目中面向硬件的流密码的设计目标

 

 

 子密钥Ki是当前密钥寄存器中最左边的64位   对应

 κ63 κ62 ...  κ0 = Ki (子密钥)

 k79 k78 ... k16 = K(密钥寄存器) 

每当提取完轮密钥 κi 后,密钥寄存器做更新:

除了安全和高效实现之外,设计present时的主要目标是简单。因此,类似的设计被考虑到[21]的其他环境中,甚至可以用作学生[20]的教程,这并不奇怪。在本节中,我们将说明我们在设计present时所做的决定。然而,首先,我们描述预期的应用程序需求。

使用目标和环境

并不是要广泛使用(来替代)已经存在的密钥(如AES),而是在一些不适合使用AES的情况下,常有这t样的特征:

密码吗要在硬件上实现

Applications只需要中等安全级别

Applications不太可能需要对大量数据加密

对于一些设备可以在制造的时候就把密钥固定,而不是由用户自己进行密钥的重置 (对安全性来说是优的)

安全性+实现的物理空间+峰值+平均功耗+定时需求

空间的最有效使用--分组密码只用来加密 (?)

 

 由于这些因素,所以设计者决定使用64-bits 的分组密码(带有80-bits 的密钥长度) 

使得加密解密有大致相同的物理要求

选择同时支持加密和解密将产生一个轻量级块密码实现,它仍然比encryption-only  AES小。

The permutation layer(置换层) 也叫线形层

主要关注硬件效率,使用最少数量的处理元件  ========>  bit permutation n

The S-box S盒

 为的就是比六位8位的S盒更compact 更有效率一些

对S盒的雪崩效应做改善:数学描述

 正如在第5节中将变得清楚的那样,这些条件将确保present抵抗微分和线性攻击。通过对满足上述条件

的所有4位S-box进行分类,我们选择了一个特别适合于高效硬件实现的S-box

安全性分析

1、差分、线性密码分析

为了描述Present对差分、线性密码分析的抵抗性,提供一个涉及到微分(或线性)特性的所谓动态s盒数量的下界。

 

给出一些相关Theorem

 4轮PERESENT的线性逼近表达式的最大偏差为 $varepsilon_{4} = frac{1}{2^7}$  可以证明。然后用它来确定28轮线性逼近表达式的最大偏差:

  (堆积引理得到的结果)

所以在这样的假设下,分析者需要近似31轮的28轮就可以恢复密钥攻击,线性密码分析要求大概要$2^84$个明文/密文对   显然不现实

Structural attacks such as integral attacks [25] and bottleneck attacks [17] are well-
suited to the analysis of AES-like ciphers

很强的词结构,其中的单词通常是字节  but 目前的设计通常是字节

 

代数攻击用在流密码比用在分组密码更成功  

Persent结构简单同时也有研究的意义

目前的S-box由GF(2)上8个输入/输出变量的21个二次方程描述。这并不奇怪,因为众所周知,任何四位S-box都可以用至少21个这样的方程来描述。

整个密码可以用e = n * 21个v = n * 8个变量的二次方程来描述,其中n为加密算法中的s盒数和密钥调度。

目前我们有n =(31×16)+ 31,因此整个系统包含11,067个二次方程,包含4216个变量。

那么问题就是------求解多元二次方程系统的一般问题是np难问题。然而,由于分组密码系统是由n个小系统通过简单的线性层连接而成的,因此其系统非常稀疏。然而,还不清楚这一事实是否可以利用在所谓的代数攻击。

提出PRESENT的人,使用Magma中的f4算法在小规模版本上进行了模拟。当只有一个S-box时,即只有四个比特的非常小的块,岩浆就可以在许多回合中求解得到的方程组。然而,通过增加块大小和增加s盒以及适当的线性扩散层,方程组很快就变得太大了。即使考虑一个由7个s盒组成的系统,即一个28位的块大小,我们也无法在合理的时间内得到一个两轮简化密码版本的解决方案。我们的分析表明,代数攻击不太可能对现在构成威胁。

 

  ?

 密钥周期攻击,依赖于不同的子集某种可识别关系 

related-key  attacks and slide attacks 

解决办法,使用一个依赖循环的计数器

本文描述了一种新的分组密码。我们的目标是开发一种超轻量级密码,提供与64位块大小和80位密钥相称的安全级别。有趣的是,present的实现要求类似于许多紧凑流密码。因此,我们认为它具有理论和实际意义。同所有新的建议一样,我们不鼓励立即部署现有的建议,但强烈鼓励对其进行分析。

原文地址:https://www.cnblogs.com/PiaYie/p/13837762.html