CN111835509A - 一种基于哈希函数和口令的抗丢失单向加密方法及装置 - Google Patents

一种基于哈希函数和口令的抗丢失单向加密方法及装置 Download PDF

Info

Publication number
CN111835509A
CN111835509A CN202010430852.XA CN202010430852A CN111835509A CN 111835509 A CN111835509 A CN 111835509A CN 202010430852 A CN202010430852 A CN 202010430852A CN 111835509 A CN111835509 A CN 111835509A
Authority
CN
China
Prior art keywords
hash
algorithm
data
password
byte
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010430852.XA
Other languages
English (en)
Other versions
CN111835509B (zh
Inventor
张鹏
王志伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Chengdu Shengtuoyuan Technology Co ltd
Original Assignee
Chengdu Shengtuoyuan Technology Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Chengdu Shengtuoyuan Technology Co ltd filed Critical Chengdu Shengtuoyuan Technology Co ltd
Priority to CN202010430852.XA priority Critical patent/CN111835509B/zh
Publication of CN111835509A publication Critical patent/CN111835509A/zh
Application granted granted Critical
Publication of CN111835509B publication Critical patent/CN111835509B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0891Revocation or update of secret information, e.g. encryption key update or rekeying
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Storage Device Security (AREA)

Abstract

本发明属于信息安全技术领域,公开一种基于哈希函数和口令的抗丢失单向加密方法,包括:预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;根据口令、随机数及Hash函数算法进行发送端密钥升级;根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;根据分组密码算法和接收端密钥进行接收端数据解密;本发明还公开一种基于哈希函数和口令的抗丢失单向加密装置。本发明可以进行密钥的单向升级操作,与外部口令共同控制加密,可以保证在全部源码、密钥、外部口令完全失控时仍然保证之前处理的通信内容数据的安全性。

Description

一种基于哈希函数和口令的抗丢失单向加密方法及装置
技术领域
本发明属于信息安全技术领域,尤其涉及一种基于哈希函数和口令的抗丢失单向加密方法及装置。
背景技术
在极地科学考察、商业外交、深海勘探、远洋探测、国家安全等单向通信环境中,通信双方通常需要依赖卫星信道、深海信道等特殊信道展开,且通信内容通常需要保密,同时加密使用的通信设备存在着丢失的风险,安全条件比较恶劣,在上述限制条件下,如何保证之前加密过的信息安全,是亟需解决的问题。
现有的安全产品和技术通常满足以下两个基本假设中的至少一个:一是通信双方的设备安全可控,不存在加解密设备被敌手控制甚至解剖的可能性,此时,设备中的加解密密钥通常是固定的,封装于设备内部;二是通信双方具备双向通信条件,在设备失联、失控等特殊紧急情况下,收方可以触发发送端紧急自毁程序,保证关键数据在失联、失控时自行烧毁。
介于本专利涉及的通信环境的恶劣性,现有技术(张俊松,物联网环境下的安全与隐私保护关键问题研究[D],北京邮电大学,2014.)无法完美契合当前的恶劣使用场景,如果直接应用现有技术不加任何改造,就会存在比较明显的安全隐患:只要敌手解剖了设备,就可以获取利用该设备加密过的一切信息内容;同时没有专门针对该应用场景的保密通信技术;基于以上的现状,本发明旨在给出一个单向通信环境下的、在设备丢失情况下仍然对过往数据具有保护能力的、具备加密功能的方法和装置设计。
发明内容
本发明针对在单向通信环境下直接应用现有技术存在比较明显的安全隐患,且缺少专门针对该应用场景的保密通信技术的问题,提出一种基于哈希函数和口令的抗丢失单向加密方法及装置。
为了实现上述目的,本发明采用以下技术方案:
一种基于哈希函数和口令的抗丢失单向加密方法,包括:
步骤1:预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
步骤2:根据口令、随机数及Hash函数算法进行发送端密钥升级;
步骤3:根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
步骤4:根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
步骤5:根据分组密码算法和接收端密钥进行接收端数据解密。
进一步地,所述步骤1包括:
步骤1.1:同步不少于20字节的口令PW;
步骤1.2:同步32字节初始随机数Rand32;
步骤1.3:同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
步骤1.4:同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
进一步地,所述步骤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.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包括:
步骤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包括:
步骤5.1:通过步骤4生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一个数据包内容部分之首;
步骤5.2:按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
步骤5.3:对IV进行加密,实现对密文的解密;包括:
步骤5.3.1:将分组密码算法的密文最左边字节取出,和当前帧的1字节密文Ci进行异或操作,得到当前字节密文对应的1字节明文Mi
步骤5.3.2:将本次的分组密码算法生成的密文填充至IV位置;
步骤5.4:重复第5.3步骤,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
一种基于哈希函数和口令的抗丢失单向加密装置,包括:
同步模块,用于预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
密钥升级模块,用于根据口令、随机数及Hash函数算法进行发送端密钥升级;
数据加密模块,用于根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
密钥校准模块,用于根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
数据解密模块,用于根据分组密码算法和接收端密钥进行接收端数据解密。
进一步地,所述同步模块包括:
第一同步子模块,用于同步不少于20字节的口令PW;
第二同步子模块,用于同步32字节初始随机数Rand32;
第三同步子模块,用于同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
第四同步子模块,用于同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
进一步地,所述密钥升级模块包括:
第一串联子模块,用于从发送端的存储区读出32字节随机数Rand32,将32字节随机数Rand32和不少于20字节的口令PW作串联,即生成Rand32||PW;
第一Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW);
第一会话密钥生成子模块,用于根据分组密码算法的密钥长度选择不同,从H中截取低位A bit数据作为当前通信会话密钥key,A≥128;
第二Hash计算子模块,用于将H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数。
进一步地,所述数据加密模块包括:
第一加密子模块,用于通过会话密钥生成子模块生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一帧数据包内容部分之首;
第一IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第二加密子模块,用于对IV进行加密,实现对明文的加密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的1字节密文Ci,i≥1;
将本次分组密码算法生成的密文填充至IV位置;
密文传输子模块,用于重复执行第二加密子模块,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送;
进一步地,所述密钥校准模块包括:
第二串联子模块,用于将当前存储的32字节随机数Rand32和约定好的口令作串联,即得到Rand32||PW;
第三Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW);
第二会话密钥生成子模块,用于从H中截取低位A bit数据作为当前通信的候选会话密钥key0,A≥128;
判断子模块,用于通过候选会话密钥解密数据内容中的固定A bit密文C0,看明文是否为全0,如是,则判断当前的候选会话密钥已经校准,即赋值key=key0,执行第五Hash计算子模块;否则,执行第四Hash计算子模块;
第四Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,之后返回第二串联子模块;
第五Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数;
进一步地,所述数据解密模块包括:
第三加密子模块,用于通过密钥校准模块生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一个数据包内容部分之首;
第二IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第四加密子模块,用于对IV进行加密,实现对密文的解密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节密文Ci进行异或操作,得到当前字节密文对应的1字节明文Mi
将本次的分组密码算法生成的密文填充至IV位置;
明文数据得出子模块,用于重复执行第四加密子模块,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
与现有技术相比,本发明具有的有益效果:
1.本发明具有安全可规约性:如果底层调用的分组密码算法和Hash函数算法安全,则该加密方法和加密装置就安全。
2.本发明具有自同步特性:由于每帧数据使用不同的IV作为加密起点,故每帧数据加密时所使用的乱数流独立;所以一帧数据的丢失、错位不会影响其余帧的正常解密。对于信息的解密方,只需使用完全一致的方法或装置,使用相同的key和IV生成方式再现乱数序列,就可以完成解密。
3.本发明抗丢失:即使加密装置丢失,攻击者只能拿到该加密方案,即使将IV的生成方式公开在代码之中,攻击者由于没有分组密码算法(如AES)的密钥,所以就不具备加密能力;所以不能够根据IV推测出乱数,因此不具备解密能力。
附图说明
图1为本发明实施例一种基于哈希函数和口令的抗丢失单向加密方法的流程图之一;
图2为本发明实施例一种基于哈希函数和口令的抗丢失单向加密方法的流程图之二;
图3为本发明实施例一种基于哈希函数和口令的抗丢失单向加密方法的逐帧数据加密原理示意图;
图4为本发明实施例一种基于哈希函数和口令的抗丢失单向加密方法的逐帧数据解密原理示意图;
图5为本发明实施例一种基于哈希函数和口令的抗丢失单向加密装置的结构示意图。
具体实施方式
下面结合附图和具体的实施例对本发明做进一步的解释说明:
如图1所示,一种基于哈希函数和口令的抗丢失单向加密方法,包括:
步骤S101:预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
步骤S102:根据口令、随机数及Hash函数算法进行发送端密钥升级;
步骤S103:根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
步骤S104:根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
步骤S105:根据分组密码算法和接收端密钥进行接收端数据解密。
进一步地,所述步骤S101包括:
步骤S101.1:同步不少于20字节的口令PW;
步骤S101.2:同步32字节初始随机数Rand32;
步骤S101.3:同步选择一个国际上公认安全的分组密码算法;作为一种可实施方式,本实施例选择的分组密码算法可以为AES的128bit密钥版本;值得说明的是,对于其他的分组密码算法,本发明的原理仍然成立;
步骤S101.4:同步选择一个国际上公认安全的Hash函数算法;作为一种可实施方式,本实施例选择的Hash函数算法可以为SHA-256;值得说明的是,对于其他的Hash函数算法,本发明的原理仍然成立。
具体地,当分组密码算法为AES的128bit密钥版本,Hash函数算法为SHA-256时,本发明的另一种基于哈希函数和口令的抗丢失单向加密方法的流程图如图2所示,技术来源如表1所示。
表1.技术来源说明
Figure BDA0002500532920000071
Figure BDA0002500532920000081
进一步地,所述步骤S102包括:
步骤S102.1:从发送端的存储区读出32字节随机数Rand32,将32字节随机数Rand32和不少于20字节的口令PW作串联,即生成Rand32||PW;
步骤S102.2:将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW)(当Hash函数算法为SHA-256时,H=SHA-256(Rand32||PW)),H≥256bit;
步骤S102.3:根据分组密码算法(这里假设使用的是AES算法128比特密钥版本的OFB加密模式)的密钥长度选择不同,从H中截取低位A bit数据作为当前通信会话密钥key,A≥128;作为一种可实施方式,A可为128;
步骤S102.4:将H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,即作赋值操作Rand32:=Hash(H)(当Hash函数算法为SHA-256时,Rand32:=SHA-256(H)),并将本次计算出的Rand32替换原有的存储在发送端存储区的Rand32。
进一步地,所述步骤S103包括:
步骤S103.1:通过步骤S102.3生成的会话密钥key控制分组密码算法(如AES算法),对A bit的全0数据进行1次加密,并将加密后的密文不加处理地添加在第一个数据包内容部分之首,为了表述方便,将该密文记作C0
步骤S103.2:对当前通信的第i帧数据包(简称第i帧)信息进行加密时,假设第i帧包含N个字节;按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;每个IV由4个数据块组成,每块数据取值均占据4个字节;IV可以不予发送;
步骤S103.3:对IV进行加密,实现对明文的加密;包括:
步骤S103.3.1:将分组密码算法(这里假设使用的是AES算法128比特密钥版本的OFB加密模式)的密文最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的1字节密文Ci,i≥1;
步骤S103.3.2:将本次分组密码算法生成的密文填充至IV位置;
作为一种可实施方式,当分组密码算法为AES算法时,可按照图3所示的方式对IV进行加密,实现对明文的加密;具体来说,执行以下步骤:
将AES算法OFB加密模式的密文的最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的密文Ci;这里的i从1开始计数;
将本次AES算法生成的密文Z0||Z1||Z2||Z3填充至IV位置;
步骤S103.4:重复步骤S103.3,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送。
进一步地,所述步骤S104包括:
步骤S104.1:将当前存储的32字节随机数Rand32和约定好的口令作串联,即得到Rand32||PW;
步骤S104.2:将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW)(当Hash函数算法为SHA-256时,H=SHA-256(Rand32||PW)),H≥256bit;
步骤S104.3:从H中截取低位Abit数据作为当前通信的候选会话密钥key0,A≥128;
步骤S104.4:通过候选会话密钥解密数据内容中的固定A bit密文C0,看明文是否为全0,如是,则判断当前的候选会话密钥已经校准,即赋值key=key0,执行步骤S104.6;否则,执行步骤S104.5;
步骤S104.5:H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,即作赋值操作Rand32:=Hash(H)(当Hash函数算法为SHA-256时,Rand32:=SHA-256(H)),并将本次计算出的Rand32替换原有的存储在发送端存储区的Rand32,之后返回步骤S104.1;
步骤S104.6:H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,即作赋值操作Rand32:=Hash(H)(当Hash函数算法为SHA-256时,Rand32:=SHA-256(H)),并将本次计算出的Rand32替换原有的存储在发送端存储区的Rand32。
进一步地,所述步骤S105包括:
步骤S105.1:通过步骤S104生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文不加处理地添加在第一个数据包内容部分之首,为了表述方便,将该密文记作C0
步骤S105.2:按照与发送端相同,即按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;每个IV由4个数据块组成,每块数据取值均占据4个字节;
步骤S105.3:对IV进行加密,实现对密文的解密;包括:
步骤S105.3.1:将分组密码算法(这里假设使用的是AES算法128比特密钥版本的OFB解密模式)的密文最左边字节取出,和当前帧的1字节密文Ci进行异或操作,得到当前字节密文对应的1字节明文Mi
步骤S105.3.2:将本次的分组密码算法生成的密文填充至IV位置;
作为一种可实施方式,当分组密码算法为AES算法时,可按照图4所示的方式对IV进行加密,实现对密文的解密;具体来说,执行以下步骤:
将AES算法OFB解密模式的密文的最左边字节取出,和当前帧的1字节密文Ci做异或操作,得到当前字节密文对应的明文Mi;这里的i从1开始计数;
将本次的AES算法生成的密文Z0||Z1||Z2||Z3填充至IV位置;
步骤S105.4:重复第S105.3步骤,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
在上述方法的基础上,本发明还公开一种基于哈希函数和口令的抗丢失单向加密装置,如图5所示,包括:
同步模块501,用于预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
密钥升级模块502,用于根据口令、随机数及Hash函数算法进行发送端密钥升级;
数据加密模块503,用于根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
密钥校准模块504,用于根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
数据解密模块505,用于根据分组密码算法和接收端密钥进行接收端数据解密。
进一步地,所述同步模块501包括:
第一同步子模块,用于同步不少于20字节的口令PW;
第二同步子模块,用于同步32字节初始随机数Rand32;
第三同步子模块,用于同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
第四同步子模块,用于同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
进一步地,所述密钥升级模块502包括:
第一串联子模块,用于从发送端的存储区读出32字节随机数Rand32,将32字节随机数Rand32和不少于20字节的口令PW作串联,即生成Rand32||PW;
第一Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW);
第一会话密钥生成子模块,用于根据分组密码算法的密钥长度选择不同,从H中截取低位A bit数据作为当前通信会话密钥key,A≥128;
第二Hash计算子模块,用于将H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数。
进一步地,所述数据加密模块503包括:
第一加密子模块,用于通过会话密钥生成子模块生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一帧数据包内容部分之首;
第一IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第二加密子模块,用于对IV进行加密,实现对明文的加密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的1字节密文Ci,i≥1;
将本次分组密码算法生成的密文填充至IV位置;
密文传输子模块,用于重复执行第二加密子模块,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送。
进一步地,所述密钥校准模块504包括:
第二串联子模块,用于将当前存储的32字节随机数Rand32和约定好的口令作串联,即得到Rand32||PW;
第三Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H=Hash(Rand32||PW);
第二会话密钥生成子模块,用于从H中截取低位A bit数据作为当前通信的候选会话密钥key0,A≥128;
判断子模块,用于通过候选会话密钥解密数据内容中的固定A bit密文C0,看明文是否为全0,如是,则判断当前的候选会话密钥已经校准,即赋值key=key0,执行第五Hash计算子模块;否则,执行第四Hash计算子模块;
第四Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,之后返回第二串联子模块;
第五Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数。
进一步地,所述数据解密模块505包括:
第三加密子模块,用于通过密钥校准模块生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一个数据包内容部分之首;
第二IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第四加密子模块,用于对IV进行加密,实现对密文的解密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节密文Ci进行异或操作,得到当前字节密文对应的1字节明文Mi
将本次的分组密码算法生成的密文填充至IV位置;
明文数据得出子模块,用于重复执行第四加密子模块,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
综上,本发明设计了一个在单向通信环境下的加密方法及加密装置,可以进行密钥的单向升级操作,与外部口令共同控制加密,可以保证在全部源码、密钥、外部口令完全失控时仍然保证之前处理的通信内容数据的安全性(即前向安全性)。与既有的“设计不可解剖的设备”思路不同,本发明抛弃了利用物理手段或者其他工艺手段保护秘密信息的思路,将对秘密信息的保护完全转化为高强度密码算法和密码Hash函数的破解问题,换句话说,即使敌手可以完全操控本加密设备,如果底层调用的分组密码算法和Hash函数安全,则本发明就安全。同时,本发明设计有密钥校准过程保证一份报文使用一份密钥,可以更好地提升通信的安全性。
而正是由于上述技术方案,使得本发明:
1.具有安全可规约性:如果底层调用的分组密码算法安全,则该加密方法和加密装置就安全;
2.具有自同步特性:由于每帧数据使用不同的IV作为加密起点,故每帧数据加密时所使用的乱数流独立;所以一帧数据的丢失、错位不会影响其余帧的正常解密。对于信息的解密方,只需使用完全一致的方法或装置,使用相同的key和IV生成方式再现乱数序列,就可以完成解密;
3.抗丢失:即使加密装置丢失,攻击者只能拿到该加密方案,即使将IV的生成方式公开在代码之中,攻击者由于没有分组密码算法(如AES)的密钥,所以就不具备加密能力;所以不能够根据IV推测出乱数,因此不具备解密能力。
与此同时,SHA-256算法可以保证本加密通道所使用的会话密钥一报一变,同时满足:
(1)会话密钥由人机共管,丢失容错特性好:会话密钥由终端存储的随机数、发送者口令共同生成,两个要素中的任何一个丢失的情况下,攻击者既无法知晓当前SHA-256的输入,也无法反推SHA-256的过去输入,故仍然可以保证前向及后向会话密钥安全。
(2)极端情况下可满足多重前向安全:即使当前会话的会话密钥、当前终端的随机数、发送者口令三要素同时暴露,由SHA-256杂凑函数的单向性特性,也不会暴露之前会话密钥的任何信息。
可以看出,系统的运行依赖三个关键要素:
1.会话密钥;
2.存储的32字节随机数;
3.用户的口令。
我们在表2中完备地列出了当Hash函数算法为SHA-256时,密钥升级模块(Key-Updating)各个要素泄露时,对整个系统的安全威胁程度。
表2.密钥升级模块的完整安全性分析示意
□:不可获得的内容 ■:可以获得的内容
Figure BDA0002500532920000141
以上所示仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,包括:
步骤1:预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
步骤2:根据口令、随机数及Hash函数算法进行发送端密钥升级;
步骤3:根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
步骤4:根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
步骤5:根据分组密码算法和接收端密钥进行接收端数据解密。
2.根据权利要求1所述的一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,所述步骤1包括:
步骤1.1:同步不少于20字节的口令PW;
步骤1.2:同步32字节初始随机数Rand32;
步骤1.3:同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
步骤1.4:同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
3.根据权利要求2所述的一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,所述步骤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运算的输出值更新随机数。
4.根据权利要求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,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送。
5.根据权利要求4所述的一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,所述步骤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运算的输出值更新随机数。
6.根据权利要求5所述的一种基于哈希函数和口令的抗丢失单向加密方法,其特征在于,所述步骤5包括:
步骤5.1:通过步骤4生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一个数据包内容部分之首;
步骤5.2:按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
步骤5.3:对IV进行加密,实现对密文的解密;包括:
步骤5.3.1:将分组密码算法的密文最左边字节取出,和当前帧的1字节密文Ci进行异或操作,得到当前字节密文对应的1字节明文Mi
步骤5.3.2:将本次的分组密码算法生成的密文填充至IV位置;
步骤5.4:重复第5.3步骤,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
7.一种基于哈希函数和口令的抗丢失单向加密装置,其特征在于,包括:
同步模块,用于预先进行收发端信息的同步,所述信息包括口令、随机数、分组密码算法及Hash函数算法;
密钥升级模块,用于根据口令、随机数及Hash函数算法进行发送端密钥升级;
数据加密模块,用于根据分组密码算法和发送端密钥进行发送端数据加密和随机数升级;
密钥校准模块,用于根据口令、随机数、分组密码算法及Hash函数算法进行接收端密钥校准;
数据解密模块,用于根据分组密码算法和接收端密钥进行接收端数据解密。
8.根据权利要求7所述的一种基于哈希函数和口令的抗丢失单向加密装置,其特征在于,所述同步模块包括:
第一同步子模块,用于同步不少于20字节的口令PW;
第二同步子模块,用于同步32字节初始随机数Rand32;
第三同步子模块,用于同步选择一个分组密码算法;所述分组密码算法包括AES的128bit密钥版本;
第四同步子模块,用于同步选择一个Hash函数算法;所述Hash函数算法包括SHA-256。
9.根据权利要求8所述的一种基于哈希函数和口令的抗丢失单向加密装置,其特征在于,所述密钥升级模块包括:
第一串联子模块,用于从发送端的存储区读出32字节随机数Rand32,将32字节随机数Rand32和不少于20字节的口令PW作串联,即生成Rand32||PW;
第一Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H= Hash(Rand32||PW);
第一会话密钥生成子模块,用于根据分组密码算法的密钥长度选择不同,从H中截取低位A bit数据作为当前通信会话密钥key,A≥128;
第二Hash计算子模块,用于将H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数。
10.根据权利要求9所述的一种基于哈希函数和口令的抗丢失单向加密装置,其特征在于,所述数据加密模块包括:
第一加密子模块,用于通过会话密钥生成子模块生成的会话密钥key控制分组密码算法,对A bit的全0数据进行1次加密,并将加密后的密文C0不加处理地添加在第一帧数据包内容部分之首;
第一IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第二加密子模块,用于对IV进行加密,实现对明文的加密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节明文Mi进行异或操作,得到当前字节明文对应的1字节密文Ci,i≥1;
将本次分组密码算法生成的密文填充至IV位置;
密文传输子模块,用于重复执行第二加密子模块,直至全部帧的明文信息处理完,将密文数据进行数据包编码,并予以发送;
优选地,所述密钥校准模块包括:
第二串联子模块,用于将当前存储的32字节随机数Rand32和约定好的口令作串联,即得到Rand32||PW;
第三Hash计算子模块,用于将串联后的数据Rand32||PW输入Hash函数算法计算,得到杂凑值H= Hash(Rand32||PW);
第二会话密钥生成子模块,用于从H中截取低位A bit数据作为当前通信的候选会话密钥key0,A≥128;
判断子模块,用于通过候选会话密钥解密数据内容中的固定A bit密文C 0 ,看明文是否为全0,如是,则判断当前的候选会话密钥已经校准,即赋值key=key0,执行第五Hash计算子模块;否则,执行第四Hash计算子模块;
第四Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数,之后返回第二串联子模块;
第五Hash计算子模块,用于H再进行一次Hash运算,通过再次Hash运算的输出值更新随机数;
优选地,所述数据解密模块包括:
第三加密子模块,用于通过密钥校准模块生成的会话密钥key控制分组密码算法,对Abit的全0数据进行1次加密,并将加密后的密文C 0 不加处理地添加在第一个数据包内容部分之首;
第二IV生成子模块,用于按照IV=i||date||selfdef的方式生成第i帧数据包的16字节初始向量IV,即IV由当前的帧序号、当前东八区的日期及自定义值串联得出;
第四加密子模块,用于对IV进行加密,实现对密文的解密;包括:
将分组密码算法的密文最左边字节取出,和当前帧的1字节密文C i 进行异或操作,得到当前字节密文对应的1字节明文Mi
将本次的分组密码算法生成的密文填充至IV位置;
明文数据得出子模块,用于重复执行第四加密子模块,直至全部密文信息处理完,得到最终的明文数据,通信部分完成。
CN202010430852.XA 2020-05-20 2020-05-20 一种基于哈希函数和口令的抗丢失单向加密方法及装置 Active CN111835509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010430852.XA CN111835509B (zh) 2020-05-20 2020-05-20 一种基于哈希函数和口令的抗丢失单向加密方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010430852.XA CN111835509B (zh) 2020-05-20 2020-05-20 一种基于哈希函数和口令的抗丢失单向加密方法及装置

Publications (2)

Publication Number Publication Date
CN111835509A true CN111835509A (zh) 2020-10-27
CN111835509B CN111835509B (zh) 2023-04-07

Family

ID=72914053

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010430852.XA Active CN111835509B (zh) 2020-05-20 2020-05-20 一种基于哈希函数和口令的抗丢失单向加密方法及装置

Country Status (1)

Country Link
CN (1) CN111835509B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124354A (zh) * 2021-11-23 2022-03-01 中国银行股份有限公司 确定性鉴别加解密装置及方法
CN114465804A (zh) * 2022-02-16 2022-05-10 贵州福润德文化产业发展有限公司 一种可对抗重放攻击的指令加密、解密方法
CN114760051A (zh) * 2022-03-18 2022-07-15 中国电子科技集团公司第七研究所 一种密钥同步方法及其系统
CN117098120A (zh) * 2023-10-19 2023-11-21 国网山西省电力公司晋城供电公司 一种北斗短报文数据加解密方法、设备及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007142504A (ja) * 2005-11-14 2007-06-07 Kotohaco:Kk 情報処理システム
CN102045169A (zh) * 2010-12-10 2011-05-04 厦门市美亚柏科信息股份有限公司 一种新口令认证方法和装置
US20170155634A1 (en) * 2015-11-30 2017-06-01 International Business Machines Corporation Password-based management of encrypted files
CN108667595A (zh) * 2017-03-28 2018-10-16 吉林化工学院 一种大数据文件的压缩加密方法
CN108768613A (zh) * 2018-04-03 2018-11-06 四川新网银行股份有限公司 一种基于多种加密算法的密文口令校验方法
CN110071799A (zh) * 2019-04-09 2019-07-30 山东超越数控电子股份有限公司 一种加密存储密钥的生成保护方法,系统,终端机及可读存储介质
US20190349191A1 (en) * 2018-05-08 2019-11-14 NEC Laboratories Europe GmbH Dynamic anonymous password-authenticated key exchange (apake)

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007142504A (ja) * 2005-11-14 2007-06-07 Kotohaco:Kk 情報処理システム
CN102045169A (zh) * 2010-12-10 2011-05-04 厦门市美亚柏科信息股份有限公司 一种新口令认证方法和装置
US20170155634A1 (en) * 2015-11-30 2017-06-01 International Business Machines Corporation Password-based management of encrypted files
CN108667595A (zh) * 2017-03-28 2018-10-16 吉林化工学院 一种大数据文件的压缩加密方法
CN108768613A (zh) * 2018-04-03 2018-11-06 四川新网银行股份有限公司 一种基于多种加密算法的密文口令校验方法
US20190349191A1 (en) * 2018-05-08 2019-11-14 NEC Laboratories Europe GmbH Dynamic anonymous password-authenticated key exchange (apake)
CN110071799A (zh) * 2019-04-09 2019-07-30 山东超越数控电子股份有限公司 一种加密存储密钥的生成保护方法,系统,终端机及可读存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
HANNA WILLA DHANY ET AL.: ""Encryption and Decryption using Password Based Encryption,MD5,and DES"", 《INTERNATIONAL CONFERENCE ON PUBLIC POLICY, SOCIAL COMPUTING AND DEVELOPMENT 2017(ICOPOSDEV 2017)》 *
孙克强等: "基于Hash函数和对称加密算法的一次性口令方案", 《信息与电子工程》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124354A (zh) * 2021-11-23 2022-03-01 中国银行股份有限公司 确定性鉴别加解密装置及方法
CN114124354B (zh) * 2021-11-23 2024-04-16 中国银行股份有限公司 确定性鉴别加解密装置及方法
CN114465804A (zh) * 2022-02-16 2022-05-10 贵州福润德文化产业发展有限公司 一种可对抗重放攻击的指令加密、解密方法
CN114465804B (zh) * 2022-02-16 2024-03-26 贵州福润德文化产业发展有限公司 一种可对抗重放攻击的指令加密、解密方法
CN114760051A (zh) * 2022-03-18 2022-07-15 中国电子科技集团公司第七研究所 一种密钥同步方法及其系统
CN117098120A (zh) * 2023-10-19 2023-11-21 国网山西省电力公司晋城供电公司 一种北斗短报文数据加解密方法、设备及存储介质
CN117098120B (zh) * 2023-10-19 2024-01-02 国网山西省电力公司晋城供电公司 一种北斗短报文数据加解密方法、设备及存储介质

Also Published As

Publication number Publication date
CN111835509B (zh) 2023-04-07

Similar Documents

Publication Publication Date Title
CN111835509B (zh) 一种基于哈希函数和口令的抗丢失单向加密方法及装置
Perrin et al. The double ratchet algorithm
Saraf et al. Text and image encryption decryption using advanced encryption standard
CN1323507C (zh) 分组加密算法中对短分组的处理方法
US8687800B2 (en) Encryption method for message authentication
EP3178190B1 (en) Encoder, decoder and method
EP2197144A1 (en) Methods and devices for a chained encryption mode
US10412063B1 (en) End-to-end double-ratchet encryption with epoch key exchange
EP2772001B1 (en) Dynamic encryption method
US20140044262A1 (en) Low Latency Encryption and Authentication in Optical Transport Networks
CN113726725A (zh) 一种数据加解密方法、装置、电子设备及存储介质
Asaad et al. Partial image encryption using RC4 stream cipher approach and embedded in an image
CN112073115A (zh) 基于Lora的低轨卫星物联网注册安全验证方法、物联网终端、网络服务器和用户服务器
US8458452B1 (en) System and method for encryption and decryption of data transferred between computer systems
CN107070637A (zh) 一种交叠分组的数据加解密方法
CN103686616A (zh) 一种集群组呼安全加密同步的方法
CN108494554B (zh) 一种基于双明文的数据对称加密方法
CN108599922B (zh) 新型含密钥消息完整性认证码的生成方法
EP3996321A1 (en) Method for processing encrypted data
CN108768923A (zh) 一种基于量子可逆逻辑线路的加密算法的聊天实时加密方法
KR100388059B1 (ko) 비대칭키 암호 알고리즘을 이용한 데이터 암호화 시스템및 그 방법
WO2003049363A1 (en) System and method for symmetrical cryptography
Ahmad et al. Energy efficient sensor network security using Stream cipher mode of operation
CN102474413B (zh) 私钥压缩
US6418224B1 (en) Methods and apparatus for self-inverting multiple-iteration CMEA crypto-processing for improved security for wireless telephone messages

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant