(19)国家知识产权局
(12)发明 专利申请
(10)申请公布号
(43)申请公布日
(21)申请 号 202210866087.5
(22)申请日 2022.07.22
(71)申请人 桂林电子科技大 学
地址 541004 广西壮 族自治区桂林市七 星
区金鸡路1号
(72)发明人 韦永壮 李珂悫 武小年
(74)专利代理 机构 桂林市华杰 专利商标事务所
有限责任公司 451 12
专利代理师 杨雪梅
(51)Int.Cl.
H04L 9/06(2006.01)
H04L 9/08(2006.01)
(54)发明名称
一种面向多平台的密码算法PASSERO的实现
方法
(57)摘要
本发明公开了一种面向多平台的密码算法
PASSERO的实现方法, PASSERO是对ROCCA算法结
构的改进 算法, PASSERO在初始化时, 在单密钥设
置下以MILP求解器测的第1轮活跃S盒数量下界
比ROCCA算法第4轮活跃S盒数量下界多4个, 第2
轮比ROCCA算 法第8轮多35个, 第3轮比ROCCA算法
第12轮多53个, 因此, PASSERO轮函数即使设置为
5轮, 其依然能很好地抵抗差分攻击, 且抵抗差分
攻击的安全性高于ROCCA算法; 类似ROOCA的安全
分析, PASSERO也可以有效抵抗伪造攻击、 积分攻
击和状态恢复攻击。 在资源受限环境中, 本发明
所述的PASSERO算法使用固定切片AES技术大大
提高了数据加解密的实现速度。 在资源充足环境
中, 本发明所述的PASSERO算法使用SIMD指令部
分提高数据加解密的实现速度。
权利要求书4页 说明书9页 附图6页
CN 115225255 A
2022.10.21
CN 115225255 A
1.一种面向多平台的密码算法PAS SERO的实现方法, 其特 征在于, 包括如下步骤:
(1)PASSERO算法轮函数设计
PASSERO轮函数的整体结构与ROCCA轮函数结构类似, 但基于固定切片AES实现思想,
PASSERO轮函数中采用AES四轮迭代部件; 并更换ROCCA轮函数结构中的置换操作, 以达到更
好的扩散混淆效果;
(2)PASSERO算法结构设计
PASSERO算法整体结构同ROCCA算法结构, 包括初始化、 处理关联数据、 加密明文和生成
标志四个部分; 但基于轮函数结构, PASSERO在初始化部分将ROCCA迭代轮函数次数由20轮
减少为5轮; 在处理关联数据部分, PASSERO设置 关联数据为256比特; 在加密明文部分, 通过
和
的方式来获得密文; 在
生成标志部分, 迭代轮函数次数由ROC CA的20轮减少到 5轮;
(3)在资源受限环境下基于固定切片的实现方法
根据PASSERO算法结构确定输入输出变量以及实现模块, 并利用固定切片AES技术对
PASSERO进行实现;
(4)在资源充足环境下的高效实现方法
根据PASSERO算法结构确定输入输出变量以及实现模块, 进一步利用SIMD指令集的
AESNI指令和XOR指令对PAS SERO进行 具体实现。
2.根据权利要求1所述的密码算法PAS SERO的实现方法, 其特 征在于:
步骤(1)所述的PAS SERO算法轮函数设计, 具体步骤如下:
(1.1)PASSERO轮函数的整体结构与ROCCA轮函数结构类似, 输入输出都是8 ×128比特,
首先, 对8 ×128比特的输入状态设计一个新的置换操作打乱输入状态 顺序; 其次, 通过部件
扩展以4个AES四轮迭代部件和4个XOR部件 对置换后的状态进行操作获得输出状态;
(1.2)更换ROCCA轮函数结构中的置换操作, 首先通过随机打乱8 ×128比特的输入状态
来穷搜新的置换, 然后通过MILP求解器测新置换活跃S盒下界的情况, 接着与ROCCA轮函数
结构中置换的活跃S盒下界的情况进行对比, 若新置换活跃S盒下界高于ROCCA轮函数中置
换的活跃S盒下界, 则选取这个新置换, 否则继续穷搜新置换, 直到选取出扩散混淆效果更
好的置换为止, 新的置换 见表1所示;
(1.3)基于变换的部件和置换, PASSERO轮函数结构具体描述如下: 轮函数R从输入到输
出用R(STA,x0,x1)→STAnew简要表示, 其中以STA表示PASSERO算法的状态, STA由8个部分组
成, STA=(STA[0],STA[1],...STA[7]), 每个部分大小都为128比特; x0,x1是128比特常数
值; 以AES(X,Y)4表示AES四轮迭代, 即AES(X,Y)4=AES(AES(AES(AES(X,Y),Y),Y),Y), 其中
MixColumns、 ShiftRow和
SubBytes是与AES算法中相同的操作; 以STAnew表示更新后的状态, 即STAnew=(STAnew[0],
STAnew[1],...STAnew[7]);
PASSERO具体的轮函数 结构以表1所示计算方法表示:
表1 PASSERO轮函数R描述权 利 要 求 书 1/4 页
2
CN 115225255 A
2(1.4)考虑存在算法输入明文很长的情况, 故设置一个轮加密状态比特R_ENC, 当其为0
时, 设置轮函数R在求STAnew[1]、 STAnew[3]、 STAnew[5]和STAnew[6]时其AES操作只迭代一轮,
以降低计算复杂度; 当其 为1时, 采用(1.3)所述的轮函数R的计算方法。
3.根据权利要求1所述的密码算法PAS SERO的实现方法, 其特 征在于:
步骤(2)所述的PAS SERO算法结构设计, 具体步骤如下:
(2.1)在初始化部分, 首先基于轮函数结构, 通过MILP求解器测试初始化部分活跃S盒
的下界, 然后与ROCCA算法初始化部分活跃S盒下界测试情况进行对比, 确定PASSERO在初始
化部分将ROC CA迭代轮函数次数由20轮减少为5轮;
(2.2)在处理关联数据部分, PASSERO把关联数据定为256比特, 即只需要通过一轮轮函
数R来获得新的状态;
(2.3)在加密明文部分, 通过
和
的方式完成加密获得密文, 其中M指明文, A(M)操作是指
MixColumns、 ShiftRo w和SubBytes是与AES算法中相同的操作;
(2.4)在生成标志部分, 通过(2.1)测试 方法确定迭代轮函数次数由20轮减少到 5轮。
4.根据权利要求1所述的密码算法PAS SERO的实现方法, 其特 征在于:
步骤(3)所述的在资源受限环境下基于固定切片的实现方法, 具体步骤如下:
(3.1)输入128比特的随机数N和256比特的密钥K, 其中256比特的密钥K分为高128比特
的密钥K0和低128比特的密钥K1; 设置z0、 z1分别为z0=428a2f98d728ae227137449 123, z1=
b5c0fbcfec4d3b2fe9b5dba58 189dbbc; 对状态STA进行初始化, 令STA[0]=K1, STA[1]=N,
STA[2]=z1, STA[3]=z0,
STA[5]=0, STA[6]=K0, STA[7]=0;
(3.2)设置轮加密状态比特R_ENC为 1, 根据(3.1)得到的STA以及z0、 z1, 对轮函数R(STA,
z0,z1)迭代5轮得到新的STAnew, 其中轮函数R的4个AES部件的实现使用固定切片AES技术, 即
一次固定切片AES操作可以并行操作 2个AES部件, 这样在轮函数R的4个AES部件实现中只需
要调用2次固定切片AES操作;
(3.3)输入25 6比特关联 数据AD, 其中AD分为高128比特AD0和低128比特AD1;
(3.4)如果输入AD非空, 根据得到的STAnew以及AD0、 AD1, 对轮函数R(STAnew,AD0,AD1)迭代
1轮进一步获得新的状态STAnew, 转(3.5); 若输入AD为空, 则转(3.5);权 利 要 求 书 2/4 页
3
CN 115225255 A
3
专利 一种面向多平台的密码算法PASSERO的实现方法
文档预览
中文文档
20 页
50 下载
1000 浏览
0 评论
309 收藏
3.0分
温馨提示:本文档共20页,可预览 3 页,如浏览全部内容或当前文档出现乱码,可开通会员下载原始文档
本文档由 人生无常 于 2024-03-18 04:06:33上传分享