轻量级分组密码RECTANGLE

更新时间:2023-06-19 20:50:50 阅读: 评论:0

轻量级分组密码RECTANGLE
RECTANGLE 基于 SPN 网络设计,其分组长度为64比特,密钥长度分为80比特和128比特两个版本。本文对RECTANGLE 算法基本结构、轮函数、密钥扩展算法做基本介绍。
1. 符号和术语
文中用到的符号及术语如下: 1) RC[t]:第t 轮的轮常量。
2) ||:比特位(串)的连接,若||a b ,则连接后a 为高比特位(串),b 为低比
特位(串);
3) <<<:循环左移操作,X n <<<;表示将X 循环左移n 比特。 4) ⊕:按位异或。
5) ()n LSB X :取X 最低 (最右边)n 比特。 6) ()n MSB X :取X 最高 (最左边) n 比特。
7) 种子密钥:密码算法的初始密钥,用于密钥扩展算法的输入。 8) 轮子密钥:迭代型密码算法每一轮的子密钥,通过密钥扩展算法得到。
2. 算法状态
妈妈的大
设64比特明文、密文、轮子密钥以及中间结果统称为一个算法状态。RECTANGLE 64比特算法状态6362210||||
车辆涉水
||||||W w w w w w =统一按照图1 a)排列
为416⨯的矩阵,其中每个元素对应一个比特;图1 b)为对应的二维坐标表示方法,其中0,0a 表示最低比特位,0,1a 表示次低比特位,……,3,15a 表示最高比特位。定义:
15210311817164734333263
50
49
48w w w w w w w w w w w w w w w w ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦ a) 算法状态 0,150,20,10,01,151,21,11,02,152,22,12,03,15
3,2
3,1
3,0a a a a a a a a a a a a a a a a ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
b) 二维坐标表示
图1. RECTANGLE 算法状态及二维坐标表示
1) ,15,2,1,0||||||||i i i i i R a a a a =表示算法状态的第i 行,其中03i ≤≤;
2) 3,2,1,0,||||||j j j j j C a a a a =表示算法状态的第j 列,其中015j ≤≤。
3. 轮函数
随意涂鸦RECTANGLE 一共有25轮,轮函数由轮密钥加(AddRoundKey)、列变换(SubColumn)、行移位(ShiftRow)三个模块组成,最后一轮之后增加一次轮密钥加操作。
1) 轮密钥加:64比特的算法状态与轮子密钥按位异或。
2) 列变换:对每一列进行S 盒置换,即'()j j C S C =,其中015j ≤≤,S 盒
置换表如表1所示。
表1 RECTANGLE S 盒置换表
3) 行移位:对每一行进行循环左移,其中第0行保持不变,第1行循环左
移1比特,第2行循环左移12比特,第3行循环左移13比特,如下所示。
00112233'0'1'12'13
R R R R R R R R =<<<=<<<=<<<=<<<
4. 密钥扩展算法
80比特密钥
80比特种子密钥20179||
||||||V v v v v =排列成516⨯的矩阵,图2给出了密钥
奥特曼简笔画图片大全状态及其二维坐标表示。设,15,2,1,0||...||||||i i i i i R k k k k =表示第i 行,其中04i ≤≤;
r K 表示第r 轮的轮子密钥,其中025r ≤≤。则第零轮的轮子密钥
网上展馆20310||||||K R R R R =。接着循环执行如下操作25次,每循环一次之后将前4行作
为新一轮的轮子密钥。
15
21
031181716473433326350
494879
6665
64v v v v v v v v v v v v v v v v v v v v ⎡⎤⎢⎥⎢⎥
⎢⎥⎢
⎥⎢⎥⎢⎥⎣⎦          0,15
0,20,10,01,151,21,11,02,152,22,12,03,153,23,13,04,154,2
4,1
4,0k k k k k k k k k k k k k k k k k k k k ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎢⎥⎣
system权限图2. 80比特密钥状态及其二维坐标表示
a) S 盒操作:对前4行的最低4列分别进行S 盒操作。
3,2,1,0,3,2,1,0,'||'||'||'(||||||)j j j j j j j j k k k k S k k k k =,其中03j ≤≤。
感动的歌曲b) 一轮5分支广义Feistel 变换。
001
123343
40
2'(8)'''(12)'R R R R R R R R R R R R =<<<⊕==<<⊕==<
c) 轮常量异或。
0,40,30,20,10,00,40,30,20,10,0'||'||'||'||'(||||||||)[]k k k k k k k k k k RC t =⊕,[]RC t 对应第
t 轮的轮常量,其中125t ≤≤,长度为5比特,通过线性反馈移位寄存器得到。
128比特密钥
图3对应128比特密钥状态的二维坐标表示。设,31,2,1,0||...||||||i i i i i R k k k k =用来表示第i 行,03i ≤≤;r K 表示第r 轮的轮子密钥,025r ≤≤。则第零轮的轮子密钥0163161611602)||)|(|(|(()|)K LSB R LSB LSB R LSB R R =。接着循环执行如下步骤25此,每次产生一个轮子密钥。
0,310,20,10,01,311,21,11,02,312,22,12,03,31
3,2
3,1
3,0k k k k k k k k k k k k k k k k ⎡⎤⎢⎥⎢⎥⎢⎥⎢⎥⎣⎦
图3. 128比特密钥状态二维坐标表示
a) S 盒操作:对最低8列分别进行S 盒操作。
3,2,1,0,3,2,1,0,'||'||'||'(||||||)j j j j j j j j k k k k S k k k k =,其中07j ≤≤。网络规划师
b) 一轮4分支广义Feistel 变换。
00112330
2
2'(8)''(16)'R R R R R R R R R R =<<<⊕=<<⊕==<
c) 轮常量异或:与80比特密钥的轮常量异或一致。

本文发布于:2023-06-19 20:50:50,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/1045998.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:密钥   算法   状态   表示
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图