[发明专利]一种轻量级密码算法HBcipher实现方法与装置在审
申请号: | 201810025266.X | 申请日: | 2018-01-11 |
公开(公告)号: | CN108206736A | 公开(公告)日: | 2018-06-26 |
发明(设计)人: | 李浪;郭影;邹祎;焦铬;邓红卫;李永超 | 申请(专利权)人: | 衡阳师范学院 |
主分类号: | H04L9/06 | 分类号: | H04L9/06 |
代理公司: | 长沙市融智专利事务所 43114 | 代理人: | 龚燕妮 |
地址: | 421002 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 密码算法 轮函数 吞吐率 运算控制信号 加密效率 解密过程 硬件实现 运算方式 奇偶性 算法 加密 置换 | ||
1.一种轻量级密码算法HBcipher实现方法,其特征在于,包括以下步骤:
步骤1:获取待加密的明文,并依据密钥位数确定轮数r,轮数控制信号的初始值为1;
其中,所述待加密的明文按高位到低位、从左至右的顺序排列成8×8的明文矩阵;
步骤2:依据当前轮数控制信号count,对待加密的数据矩阵进行矩阵划分,获得数据块L和数据块R;
若当前轮数控制信号count为奇数,则将待加密的数据矩阵的左半部分和右半部分分别作为数据块L和数据块R;
其中,数据块的每一行由对应矩阵部分的连续两行按照从高位至低位排列获得;
若当前轮数控制信号count为偶数,则将待加密的数据矩阵的上半部分和下半部分分别作为数据块L和数据块R;
步骤3:将密钥按照从高位到低位、从左至右,每行16位排列,得到轮密钥矩阵,将轮密钥矩阵的左半部分和右半部分分别作为左控制密钥Qi和右控制密钥Qi+1;
步骤4:依据当前轮数控制信号,将数据块与控制密钥进行轮函数操作;
当轮运算控制信号count为奇数时,左控制密钥Qi与数据块L进行F1函数、右控制密钥Qi+1与数据块R进行F2函数运算;
当轮运算控制信号count为偶数时,右控制密钥Qi+1与数据块L进行F1函数、左控制密钥Qi与数据块R进行F2函数运算;
将经过F1函数、F2函数运算后的数据转换成16进制数据后合并,再进行F3函数运算;
所述F1函数依次包括轮密钥加、S1盒置换、行移位运算;
所述F2函数依次包括轮密钥加、S2盒置换、轮常数加运算;
所述F3函数依次包括列混淆和P2置换运算;
步骤5:判断当前轮数控制信号count是否等于轮数r,若不等于,令count=count+1,将经过F3函数运算输出的结果作为新一轮的待加密数据,返回步骤2,否则,输出加密结果。
2.根据权利要求1所述的方法,其特征在于,所述F3函数中的P2置换运算过程如下:
将待进行P2置换的4×16数据矩阵按照从左至右的顺序划分成顺序连接的4个4×4的矩阵,并从左至右标记4个矩阵的对角线,依次为a、b、c、d,相邻矩阵的对角线首尾连接,得到依次画出4个矩阵的对角线标号a、b、c、d,获得8个等腰三角形,其a、c为从左上角到右下角的主对角线,b、d为从左下角到右上角的次对角线;
将对角线a、b、d上方的三角形中的数据沿对角线向下翻折变换;
将对角线b下方和对角线c上方的三角形中的数据,沿矩形边向右翻折变换;
将对角线c下方的三角形中的数据,沿对角线向上翻折变换;
将对角线a、d下方的三角形中的数据分别沿顺时针、逆时针旋转90°变换,其中,对角线d下方的三角形经过逆时针旋转变换后移至第一个4×4的矩阵所在的区域;
次对角线b、d经过的数据沿逆时针旋转90°变换;
主对角线a、c经过的数据沿顺时针旋转90°变换,其中,主对角线a经过的数据经过顺时针旋转变换后移至最后一个4×4的矩阵所在的区域。
3.根据权利要求2所述的方法,其特征在于,当密钥长度为64位时,轮数r为16;当密钥长度为128位时,轮数r为20。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于衡阳师范学院,未经衡阳师范学院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810025266.X/1.html,转载请声明来源钻瓜专利网。