[发明专利]一种基于哈希函数和口令的抗丢失单向加密方法及装置有效
申请号: | 202010430852.X | 申请日: | 2020-05-20 |
公开(公告)号: | CN111835509B | 公开(公告)日: | 2023-04-07 |
发明(设计)人: | 张鹏;王志伟 | 申请(专利权)人: | 成都盛拓源科技有限公司 |
主分类号: | H04L9/08 | 分类号: | H04L9/08;H04L9/06;H04L9/40 |
代理公司: | 郑州大通专利商标代理有限公司 41111 | 代理人: | 张立强 |
地址: | 610000 四川省成都市自由*** | 国省代码: | 四川;51 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 函数 口令 丢失 单向 加密 方法 装置 | ||
1.一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,包括:
步骤1:预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
步骤2:根据口令、随机数及Hash函数算法进行发送端密钥升级;所述步骤2包括:
步骤2.1:从发送端的存储区读出32字节随机数Rand32,将32字节随机数Rand32和不少于20字节的口令PW作串联,即生成Rand32||PW;
步骤2.2:将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H= Hash(Rand32||PW);
步骤2.3:根据分组密码算法的密钥长度选择不同,从H中截取低位A bit数据作为当前通信会话密钥key,A≥128;
步骤2.4:将H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数;
步骤3:根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;所述步骤3包括:
步骤3.1:通过步骤2.3生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一帧数据包内容部分之首;
步骤3.2:按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
步骤3.3:对IV进行加密,实现对明文的加密;包括:
步骤3.3.1:将分组密码算法的密文最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的1字节密文Ci,i≥1;
步骤3.3.2:将本次分组密码算法生成的密文填充至IV位置;
步骤3.4:重复步骤3.3,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送;
步骤4:根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;所述步骤4包括:
步骤4.1:将当前存储的32字节随机数Rand32和约定好的口令作串联,即得到Rand32||PW;
步骤4.2:将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H= Hash(Rand32||PW);
步骤4.3:从H中截取低位A bit数据作为当前通信的候选会话密钥key0,A≥128;
步骤4.4:通过候选会话密钥解密数据内容中的固定A bit密文C0,看明文是否为全0,如是,则判断当前的候选会话密钥已经校准,即赋值key=key0,执行步骤4.6;否则,执行步骤4.5;
步骤4.5:H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,之后返回步骤4.1;
步骤4.6:H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数;
步骤5:根据分组密码算法和接收端密钥进行接收端数据解密。
2.根据权利要求1所述的一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,所述步骤1包括:
步骤1.1:同步不少于20字节的口令PW;
步骤1.2:同步32字节初始随机数Rand32;
步骤1.3:同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
步骤1.4:同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于成都盛拓源科技有限公司,未经成都盛拓源科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010430852.X/1.html,转载请声明来源钻瓜专利网。