轻量级认证加密算法ASCON
认证加密算法ASCON是CAESAR竞赛胜出算法之一,并为轻量级资源受限环境的首选方案,其工作模式基于MONKEYDUPLEX。接下来给出ASCON的算法描述。算法状态大小为320比特(5个64比特长的字x0,⋯,x4),属于类SPONGE结构。下图中列出了两种方案ASCON-128和ASCON-128a的参数。
如下图所示,ASCON的加密过程基于MONKEYDUPLEX,分为四个阶段:初始化,相关数据处理,明文处理,结束部分。
(1)模式
ASCON的初始状态为,IV(64比特),K(128比特)和nonce N(128比特)的级联,如上图所示,IV在算法的两个方案中均为常数。状态首先经过Pa置换,然后异或K。关数据被分成长度为64比特的数据分组Ai(i=1,…,s). 中间状态依次异或Ai, 进行Pb置换操作。在相关数据处理的结尾,最低比特异或1。明文处理阶段中,类似于Ai的处理方式,中间状态异或明文分组Pi(i=1,…,t), 输出相应的Ci, 然后进行Pb置换操作。在终结部分中,中间状态异或K,然后作用置换Pa, 中间状态在最低128比特异或密钥K后,输出标签T。
(2)置换
如上图所示,置换Pa和Pb仅在轮函数P的迭代轮数上有区别。轮函数P由常数加,置换层和线性层组成。关于常数加操作,其每轮常数不同,均是对字x2的异或操作。整个状态(5个64比特字x0,…,x4)可划分为64个5比特长的比特分片(bit-slice)。
如下图所示,置换层对每个比特分片进行平行的S盒操作,其中字x0的比特为S盒的最高比特。
如下图所示,线性层将每个64比特的状态字xi替换为Σi(xi),提供扩散作用。
ASCON算法5X5S盒的分量布尔函数如下图所示: