CN115499118A - 报文密钥生成、文件加密、解密方法、装置、设备和介质 - Google Patents
报文密钥生成、文件加密、解密方法、装置、设备和介质 Download PDFInfo
- Publication number
- CN115499118A CN115499118A CN202210936760.8A CN202210936760A CN115499118A CN 115499118 A CN115499118 A CN 115499118A CN 202210936760 A CN202210936760 A CN 202210936760A CN 115499118 A CN115499118 A CN 115499118A
- Authority
- CN
- China
- Prior art keywords
- file
- message key
- preset
- key
- ciphertext
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 81
- 238000004590 computer program Methods 0.000 claims description 22
- 238000003860 storage Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 11
- 238000000605 extraction Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 13
- 230000005540 biological transmission Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 230000008569 process Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例提供了一种报文密钥生成、文件加密、解密方法、装置、设备和介质,涉及信息安全技术领域,该报文密钥生成方法包括:获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;对所述共享密钥与信息内容进行哈希运算,得到哈希值;提取所述哈希值中的第一预设长度的字符作为密文文件的报文密钥,将所述哈希值中的其余字符作为所述密文文件的初始向量。解决了目前的报文密钥生成方法较为不便的技术问题,达到了提高报文密钥生成便捷性,与降低报文密钥生成成本的技术效果。
Description
技术领域
本申请涉及信息安全技术领域,具体地,涉及一种报文密钥生成、文件加密、解密方法、装置、设备和介质。
背景技术
目前的文件加密大多采用共享密钥的方式,即数据发送方和数据接收方拥有相同的密钥,但是这种方式会产生大量使用相同密钥加密出来的密文,容易提供较多的密码分析素材,从而降低数据的安全性。因此,报文密钥应用而生,即由共享密钥派生出报文密钥,使用报文密钥来对数据进行加密。
目前的报文密钥主要是以共享密钥为密钥,对数据包编号、随机生成的IV(initialization vector,初始向量)或者固定常数等进行加密(分组加密较为常见),所派生出来的报文密钥,能够满足通常的实用要求。但是在实际应用中可能需要装配硬件随机数发生器或者设计软件等产生该初始向量,并增加针对该初始向量对应的存储空间等。
因此,目前的报文密钥生成方法较为不便。
发明内容
本申请实施例中提供了一种报文密钥生成、文件加密、解密方法、装置、设备和介质。
本申请实施例的第一个方面,提供了一种报文密钥生成方法,包括:
获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;
对共享密钥与信息内容进行哈希运算,得到哈希值;
提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量。
在本申请一个可选的实施例中,获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容,包括:
获取针对当前文件的输入口令信息,并基于输入口令信息生成共享密钥。
在本申请一个可选的实施例中,预设信息类别包括系统时间,信息内容包括系统当前时间。
在本申请一个可选的实施例中,系统当前时间的精度至少为毫秒。
在本申请一个可选的实施例中,信息类别还包括用户标识,信息内容还包括用户标识编号。
在本申请一个可选的实施例中,对共享密钥与信息内容进行哈希运算,得到哈希值,包括:
基于共享密钥、系统当前时间与用户标识编号构建目标字符串;
对目标字符串进行哈希运算,得到哈希值。
在本申请一个可选的实施例中,若报文密钥的字符长度大于第二预设长度,则该报文密钥生成方法还包括:
对共享密钥与信息内容构成的字符串进行哈希运算,得到第一哈希值;
对共享密钥与第一哈希值构成的字符串进行哈希运算,得到第二哈希值;
将第一哈希值确定为密文文件的报文密钥;
从第二哈希值中提取字符内容作为初始向量。
本申请实施例的第二个方面,提供了一种文件加密方法,包括:
基于如上任一项的报文密钥生成方法生成针对明文文件的报文密钥与初始向量;
基于报文密钥与初始向量对明文文件进行加密,得到密文文件。
本申请实施例的第三个方面,提供了一种文件解密方法,包括:
从密文文件预设位置开始提取第一预设长度的目标字符;其中,密文文件是基于如上的文件加密方法得到的;
基于目标字符与预设的共享密钥对密文文件进行哈希运算,得到密文文件的报文密钥与初始向量;
基于报文密钥与初始向量对密文文件进行解密,得到明文文件。
本申请实施例的第四个方面,提供了一种报文密钥生成装置,包括:
第一获取模块,用于获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;
第一计算模块,用于对共享密钥与信息内容进行哈希运算,得到哈希值;
确定模块,用于提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量。
本申请实施例的第五个方面,提供了一种文件加密装置,包括:
生成模块,用于基于如上的报文密钥生成方法生成针对明文文件的报文密钥与初始向量;
加密模块,用于基于报文密钥与初始向量对明文文件进行加密,得到密文文件。
本申请实施例的第六个方面,提供了一种文件解密装置,包括:
提取模块,用于从密文文件预设位置开始提取第一预设长度的目标字符;其中,密文文件是基于如上文件加密方法得到的;
第二计算模块,用于基于目标字符与预设的共享密钥对密文文件进行哈希运算,得到密文文件的报文密钥与初始向量;
解密模块,用于基于报文密钥与初始向量对密文文件进行解密,得到明文文件。
本申请实施例的第七个方面,提供了一种计算机设备,包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上任一项方法的步骤。
本申请实施例的第八个方面,提供了一种计算机可读存储介质,其上存储有计算机程序,其特征在于,计算机程序被处理器执行时实现如上任一项的方法的步骤。
本申请实施例先获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容,对共享密钥与信息内容进行哈希运算后得到哈希值,提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量,第一方面,无需专门配置用于生成初始向量的随机数发生器或者对应的软件,只需要基于哈希运算,从得到的哈希值中提取即可得到需要的初始向量,从而解决了目前的报文密钥生成方法较为不便的技术问题,达到了提高报文密钥生成便捷性,与降低报文密钥生成成本的技术效果;第二方面,本申请实施例中的初始向量是基于哈希运算计算得到的,在基于该初始向量与报文密钥生成密文文件后无需在密文文件中存放较长的初始向量,解密方只需要基于共享密钥与信息内容进行计算即可得到该初始向量,缩短了密文文件,可节省数据传输与存储的资源,进一步提高文件传输的效率;第三方面,本申请实施例中的初始向量为哈希值中提取得到的,无关人员很难直接解析得到,较为隐秘,可以大大增强密码系统的安全强度。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1为本申请一个实施例提供的计算机设备结构示意图;
图2为本申请一个实施例提供的报文密钥生成方法的流程图;
图3为本申请一个实施例提供的报文密钥生成方法的流程图;
图4为本申请一个实施例提供的报文密钥生成方法的流程图;
图5为本申请一个实施例提供的文件加密方法的流程图;
图6为本申请一个实施例提供的文件解密方法的流程图;
图7为本申请一个实施例提供的报文密钥生成装置结构示意图;
图8为本申请一个实施例提供的文件加密装置结构示意图;
图9为本申请一个实施例提供的文件解密装置结构示意图。
具体实施方式
在实现本申请的过程中,发明人发现,目前的报文密钥生成方法较为不便。
针对上述问题,本申请实施例中提供了报文密钥生成方法,以提高报文密钥生成的便利性。
本申请实施例中的方案可以采用各种计算机语言实现,例如,面向对象的程序设计语言Java和直译式脚本语言JavaScript等。
为了使本申请实施例中的技术方案及优点更加清楚明白,以下结合附图对本申请的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本申请的一部分实施例,而不是所有实施例的穷举。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
以下对本申请实施例提供的文件处理方法的应用环境作简要说明:
示例性的,图1为本申请实施例提供的一例计算机设备的结构示意图。该计算机设备可以是终端。如图1所示,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质例如可以为磁盘。非易失性存储介质中存储有文件(可以为待处理的文件,也可以为处理后的文件)、操作系统和计算机程序等。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种报文密钥生成方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
请参见图2,以下实施例以上述计算机设备为执行主体,将本申请实施例提供的报文密钥生成方方法应用于上述计算机设备来生成报文密钥为例进行具体说明。本申请实施例提供的报文密钥生成方法包括如下步骤201-步骤203:
步骤201、获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容。
其中,当前文件是指待加密文件,该当前文件可以为明文文件,也可以为需要进一步加密的密文文件,该当前文件可以为数据包、文档、视频、音频等各种形式的文件,本申请实施例不作具体限定。共享密钥是指加密方与解密方事先约定好双方均已知晓的密钥。预设信息类别是指事先设定的在加密过程中需要引入的信息类别,例如加密方或者解密方的身份、时间、地址、IP地址、文件类型等任意可以实时确定信息类别,对应的信息内容例如为:01(加密方),2022年1月1日20点15分14秒,XX省XX市XX区XX街道XX号,https://XXX/XXX,二级加密文件。该预设信息类别可以根据实际情况具体设定或者选择,本申请实施例不作具体限定。
步骤202、对共享密钥与信息内容进行哈希运算,得到哈希值。
例如将共享密钥与得到的信息内容联接成一个字符串,然后使用hash(哈希)算法对该字符串作哈希运算,即可得到一组哈希密码,也就是哈希值。哈希值的长度根据具体的哈希算法决定,例如,在散列算法为SHA-1的情况下,哈希值的长度固定为20个字节。因此,无论共享密钥与信息内容的输入数据为多少字节,对应输出的哈希值的数据长度固定为20个字节。此外,还需要解释的是,两个相同数据进行哈希运算后的哈希值必然相同,因此,只需要加密方与解密方均知晓对应的共享密钥与信息内容即可对加密文件进行解密,安全性高,且便利性高。
步骤203、提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量。
比如,hash算法选用SM3算法,得到的哈希值为32位,因此可以将哈希值的前16字节作为SM4算法报文密钥,后16字节作为初始向量,也就上述的IV。该初始向量IV是实际使用的IV,它不在密文中出现,密文中出现的只有信息内容构成的字符串,即使攻击者能从密文中看见信息内容构成的字符串,但是他若没有共享密钥,就不能以计算哈希值的形式计算得到该初始向量。当然,该划分方法仅为示例,具体将哈希值中的哪一部分字符内容作为报文密钥,哪一部分作为初始向量可以根据实际情况具体设定,只需要基于得到的哈希值提取得到对应的报文密钥与初始向量即可。
本申请实施例先获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容,对共享密钥与信息内容进行哈希运算后得到哈希值,提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量,第一方面,无需专门配置用于生成初始向量的随机数发生器或者对应的软件,只需要基于哈希运算,从得到的哈希值中提取即可得到需要的初始向量,从而解决了目前的报文密钥生成方法较为不便的技术问题,达到了提高报文密钥生成便捷性,与降低报文密钥生成成本的技术效果;第二方面,本申请实施例中的初始向量是基于哈希运算计算得到的,在基于该初始向量与报文密钥生成密文文件后无需在密文文件中存放较长的初始向量,解密方只需要基于共享密钥与信息内容进行计算即可得到该初始向量,缩短了密文文件,可节省数据传输与存储的资源,进一步提高文件传输的效率;第三方面,本申请实施例中的初始向量为哈希值中提取得到的,无关人员很难直接解析得到,较为隐秘,可以大大增强密码系统的安全强度。
在本申请一个可选实施例中,上述步骤201、获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容,包括如下步骤:
获取针对当前文件的输入口令信息,并基于输入口令信息生成共享密钥。
该输入口令信息是指加密方与解密方实现约定的一个用于生成共享密钥的信息。计算机设备可以基于密钥派生函数从一个共享的秘密比特串中派生出密钥数据,也就得到了该共享密钥。在密钥协商过程中,密钥派生函数在密钥交换所获共享的秘密比特串上,从中产生所需的会话密钥或进一步加密所需的密钥数据,可以进一步提高共享密钥的安全性,进一步提高本申请实施例确定的报文密钥的安全性与可靠性。
在本申请一个可选实施例中,上述预设信息类别包括系统时间,信息内容包括系统当前时间。在不同的语言编译系统中,例如C/C++语言、Java或Pathon等均可以使用语句实现获取系统时间,简单方便,可以大大提高报文密钥生成的兼容性。
在本申请一个可选实施例中,上述系统当前时间的精度至少为毫秒。
由于文件读写、调用哈希算法、数据加密和产生MAC(Media Access Control或者Medium Access Control,媒体访问控制)地址均需花费计算资源,在通常的实用数据处理环境中,无论是远程传送或本地文件加密存储,加密两份报文的时间间隔小于1毫秒的可能性极小,因此本申请实施例将系统当前时间的精度设定至毫秒级别,可以防止在加密过程中或者数据传输过程中出现加密两份数据调用相同系统时间的情况的发生,从而避免两份文件的报文密钥相同,进一步提高得到的报文密钥的可靠性与加密系统的安全性。
在本申请一个可选实施例中,示例性的,以毫秒为最小切割单位,将系统时间中的毫秒数0—999表示成10比特,秒数0—59表示成6比特,分钟数也表示成6比特,小时数0—23表示成5比特,日占5比特,月占4比特,年占12比特,可用共计48比特(6字节)表示系统时间。也可以精确到微秒,比如将0—999微秒按每4微秒分段,分成250个时间段,可用一个字节表示微秒值,从而实现将系统时间映射为若干个字符。当然,在此仅为示例,本申请实施例也可以采用其他映射方式,只需要可以实现将系统时间映射为对应字符的目的即可。
在本申请一个可选实施例中,上述信息类别还包括用户标识,信息内容还包括用户标识编号。本申请实施例通过在信息类别中加入用户标识可以防止加密方与解密方出现巧合性系统时间碰撞而导致双方得到的报文密钥相同,进一步提高报文密钥生成的可靠性。添加用户标识的方式例如可以为:在系统时间后面缀加一个或两个字节,用于指示加密方身份编号或接收方方向。这样,即使出现了加密方与解密方调用相同的系统时间,也不会生相同的报文密钥,进而提高报文密钥生成的可靠性
请参见图3,在本申请一个可选实施例中,上述步骤202、对共享密钥与信息内容进行哈希运算,得到哈希值,包括如下步骤301-步骤302:
步骤301、基于共享密钥、系统当前时间与用户标识编号构建目标字符串。
例如,K表示共享密钥,T表示系统当前时间与,用户A的编号为01,用户B的编号为02,A为加密方,构成的目标字符串为(K|T|0x01),对应的若B为加密方,则构成的目标字符串为(K|T|0x02),或者,当A向B发消息时,构成的目标字符串为(K|T|0x0102),当B向A发消息时,构成的目标字符串为(K|T|0x0201),在此对应目标字符串的具体形式不作任何限定,可根据实际情况具体设定。
步骤302、对目标字符串进行哈希运算,得到哈希值。
在得到上述目标字符串后进行哈希计算即可,例如hash(K|T|0x01),hash(K|T|0x02),hash(K|T|0x0102),hash(K|T|0x0201)等,得到对应的哈希值即可。在得到哈希值后,可以基于上述步骤203进行报文密钥与初始向量的提取即可。
本申请实施例先基于共享密钥、系统当前时间与用户标识编号构建目标字符串,然后对该目标字符串进行哈希运算得到对应的哈希值即可,通过这种方式可以将字符串的构建与哈希计算分开独立执行,可以同时对多个文件进行哈希计算,效率更高。
请参见图4,在本申请一个可选实施例中,若报文密钥的字符长度大于第二预设长度,例如报文密钥长度为256比特,采用例如AES-256进行分组加密算法,哈希算法使用SHA-512则没有问题,若仍然用输出长度为256的哈希算法,则上述报文密钥生成方法还包括如下步骤401-步骤404:
步骤401、对共享密钥与信息内容构成的字符串进行哈希运算,得到第一哈希值。
步骤402、对共享密钥与第一哈希值构成的字符串进行哈希运算,得到第二哈希值。
步骤403、将第一哈希值确定为密文文件的报文密钥。
步骤404、从第二哈希值中提取字符内容作为初始向量。
即先对共享密钥与信息内容,例如共享密钥与系统当前时间构成的字符串进行第一次哈希计算,得到的哈希值即为第一哈希值,将该第一哈希值作为报文密钥。然后将共享密钥与报文密钥,也就是将共享密钥与得到的第一哈希值构成新的字符串,对该新的字符串进行第二次哈希计算得到第二哈希值后,从该第二哈希值中提取部分字符内容作为该初始向量。需要解释的是,提取的字符内容与长度可以根据时间情况具体设定,但是一定设定完成后,该长度与提取位置将固定不便,且解密方与加密方均共享后才可以完成对密文文件的解密。
本申请实施例针对报文密钥的字符长度大于第二预设长度的情况进行两次哈希运算从而提取得到对应的报文密钥与初始向量,避免出现报文密钥与初始向量过长的问题,进而节省存储资源,同时提高数据传输的效率。
请参见图5,本申请一个实施例提供了一种文件加密方法,包括如下步骤501-步骤502:
步骤501、基于如上任一项的报文密钥生成方法生成针对明文文件的报文密钥与初始向量。
生成报文密钥与初始向量的方式与有益效果已经在上述实施例中详细阐述,在此不作赘述。
步骤502、基于报文密钥与初始向量对明文文件进行加密,得到密文文件。
本申请实施例通过上述报文密钥生成方法得到针对明文文件的报文密钥与初始向量,无需专门配置用于生成初始向量的随机数发生器或者对应的软件,只需要基于哈希运算,从得到的哈希值中提取即可得到需要的初始向量,提高了报文密钥生成便捷性,降低报文密钥生成成本,进而提高了文件加密的便捷性,降低了文件加密的成本。
请参见图6,本申请实施例提供了一种文件解密方法,包括如下步骤601-步骤603:
步骤601、从密文文件预设位置开始提取第一预设长度的目标字符;其中,密文文件是基于如上的文件加密方法得到的。
步骤602、基于目标字符与预设的共享密钥对密文文件进行哈希运算,得到密文文件的报文密钥与初始向量。
步骤603、基于报文密钥与初始向量对密文文件进行解密,得到明文文件。
例如信息内容构成的字符串为T,共享密钥构成的字符串为K,不论T是6字节还是7字节(或者在T中又缀加其它参数,比如上文的缀加加密方的身份代码),只要解密方与加密方约定一致,双方均可以计算hash(K|T),得到同样的报文密钥和初始向量IV。这里“K|T”表示将字符串K和T串接成一个字符串。例如,K、T分别为16和8字节,使用SM3算法对16+8=24字节字符串K|T计算哈希值,得到32字节输出值。将输出值前16字节用作算法SM4的密钥,后16字节用作IV,然后可将一份报文数据依SM4算法的ECB(Electronic Codebook Book,电码本模式),CBC(Cipher Block Chaining,密码分组链接模式)、CTR(Counter,计算器模式),OFB(Output FeedBack,输出反馈模式)或CFB(Cipher FeedBack,密码反馈模式)等模式分组加密。解密方拥有共享密钥K,且能够从密文头部约定位置提取字符串T,通过计算hash(K|T)可以得到同样的报文密钥和初始向量,然后基于该报文密钥与初始向量即可从密文正文处解密出明文,操作简单且安全性能更高。
应该理解的是,虽然流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
请参见图7,本申请一个实施例提供了一种报文密钥生成装置700,包括:第一获取模块710、第一计算模块720与确定模块730,其中:
该第一获取模块710,用于获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;
该第一计算模块720,用于对共享密钥与信息内容进行哈希运算,得到哈希值;
该确定模块730,用于提取哈希值中的第一预设长度的字符作为密文文件的报文密钥,将哈希值中的其余字符作为密文文件的初始向量。
在本申请一个可选实施例中,该第一获取模块710具体用于,获取针对当前文件的输入口令信息,并基于输入口令信息生成共享密钥。
在本申请一个可选实施例中,预设信息类别包括系统时间,信息内容包括系统当前时间。
在本申请一个可选实施例中,该系统当前时间的精度至少为毫秒。
在本申请一个可选实施例中,信息类别还包括用户标识,信息内容还包括用户标识编号。
在本申请一个可选实施例中,该第一计算模块720具体用于,基于共享密钥、系统当前时间与用户标识编号构建目标字符串;对目标字符串进行哈希运算,得到哈希值。
在本申请一个可选实施例中,若报文密钥的字符长度大于第二预设长度,该第一计算模块720具体用于,对共享密钥与信息内容构成的字符串进行哈希运算,得到第一哈希值;对共享密钥与第一哈希值构成的字符串进行哈希运算,得到第二哈希值;将第一哈希值确定为密文文件的报文密钥;从第二哈希值中提取字符内容作为初始向量。
请参见图8,本申请一个实施例提供了一种文件加密装置800,包括:生成模块810与加密模块820:
该生成模块810,用于基于如上的报文密钥生成方法生成针对明文文件的报文密钥与初始向量;
该加密模块820,用于基于报文密钥与初始向量对明文文件进行加密,得到密文文件。
请参见图9,本申请一个实施例提供了一种文件解密装置900,包括:提取模块910、第二计算模块920与解密模块930,其中:
该提取模块910,用于从密文文件预设位置开始提取第一预设长度的目标字符;其中,密文文件是基于上述文件加密方法得到的;
该第二计算模块920,用于基于目标字符与预设的共享密钥对密文文件进行哈希运算,得到密文文件的报文密钥与初始向量;
该解密模块930,用于基于报文密钥与初始向量对密文文件进行解密,得到明文文件。
关于上述各装置的具体限定可以参见上文中对于报文密钥生成方法、文件加密方法、文件解密方法的限定,在此不再赘述。上述各装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备的内部结构图可以如图1所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现如上的一种报文密钥生成方法、文件加密方法与文件解密方法。包括:包括存储器和处理器,存储器存储有计算机程序,处理器执行计算机程序时实现如上一种报文密钥生成方法、文件加密方法与文件解密方法中的任一步骤。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时可以实现如上报文密钥生成方法、文件加密方法与文件解密方法中的任一步骤。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。
Claims (10)
1.一种报文密钥生成方法,其特征在于,包括:
获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;
对所述共享密钥与信息内容进行哈希运算,得到哈希值;
提取所述哈希值中的第一预设长度的字符作为密文文件的报文密钥,将所述哈希值中的其余字符作为所述密文文件的初始向量。
2.根据权利要求1所述的报文密钥生成方法,其特征在于,所述获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容,包括:
获取针对所述当前文件的输入口令信息,并基于所述输入口令信息生成所述共享密钥。
3.根据权利要求1或2所述的报文密钥生成方法,其特征在于,所述预设信息类别包括系统时间,所述信息内容包括系统当前时间。
4.一种文件加密方法,其特征在于,包括:
基于如权利要求1-3任一项所述的报文密钥生成方法生成针对明文文件的报文密钥与初始向量;
基于所述报文密钥与所述初始向量对所述明文文件进行加密,得到密文文件。
5.一种文件解密方法,其特征在于,包括:
从密文文件预设位置开始提取第一预设长度的目标字符;其中,所述密文文件是基于权利要求4所述的文件加密方法得到的;
基于所述目标字符与预设的共享密钥对所述密文文件进行哈希运算,得到所述密文文件的报文密钥与初始向量;
基于所述报文密钥与所述初始向量对所述密文文件进行解密,得到明文文件。
6.一种报文密钥生成装置,其特征在于,包括:
第一获取模块,用于获取针对当前文件预设的共享密钥与预设信息类别对应的信息内容;
第一计算模块,用于对所述共享密钥与信息内容进行哈希运算,得到哈希值;
确定模块,用于提取所述哈希值中的第一预设长度的字符作为密文文件的报文密钥,将所述哈希值中的其余字符作为所述密文文件的初始向量。
7.一种文件加密装置,其特征在于,包括:
生成模块,用于基于如权利要求1-3任一项所述的报文密钥生成方法生成针对明文文件的报文密钥与初始向量;
加密模块,用于基于所述报文密钥与所述初始向量对所述明文文件进行加密,得到密文文件。
8.一种文件解密装置,其特征在于,包括:
提取模块,用于从密文文件预设位置开始提取第一预设长度的目标字符;其中,所述密文文件是基于权利要求4所述的文件加密方法得到的;
第二计算模块,用于基于所述目标字符与预设的共享密钥对所述密文文件进行哈希运算,得到所述密文文件的报文密钥与初始向量;
解密模块,用于基于所述报文密钥与所述初始向量对所述密文文件进行解密,得到明文文件。
9.一种计算机设备,包括:包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至5中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至5中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210936760.8A CN115499118A (zh) | 2022-08-05 | 2022-08-05 | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210936760.8A CN115499118A (zh) | 2022-08-05 | 2022-08-05 | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115499118A true CN115499118A (zh) | 2022-12-20 |
Family
ID=84465792
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210936760.8A Pending CN115499118A (zh) | 2022-08-05 | 2022-08-05 | 报文密钥生成、文件加密、解密方法、装置、设备和介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115499118A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132159A (zh) * | 2023-02-02 | 2023-05-16 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795533A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于标识符的加密、解密的方法及其执行装置 |
-
2022
- 2022-08-05 CN CN202210936760.8A patent/CN115499118A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103795533A (zh) * | 2012-10-31 | 2014-05-14 | 三星Sds株式会社 | 基于标识符的加密、解密的方法及其执行装置 |
Non-Patent Citations (1)
Title |
---|
李琴;曾凡平;: "RC4密码的改进方法及其性能分析" * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116132159A (zh) * | 2023-02-02 | 2023-05-16 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
CN116132159B (zh) * | 2023-02-02 | 2024-04-09 | 马上消费金融股份有限公司 | 数据加密方法、装置、电子设备及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11818262B2 (en) | Method and system for one-to-many symmetric cryptography and a network employing the same | |
RU2718689C2 (ru) | Управление конфиденциальной связью | |
CN108282329B (zh) | 一种双向身份认证方法及装置 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN101340279A (zh) | 数据加密及解密方法、系统及设备 | |
US9917695B2 (en) | Authenticated encryption method using working blocks | |
EP3476078A1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
CN109873699A (zh) | 一种可撤销的身份公钥加密方法 | |
CN103152362A (zh) | 基于云计算的大数据文件加密传输方法 | |
JP2020532177A (ja) | データの高度なセキュリティ、高速暗号化および、伝送のためのコンピュータ実装システムおよび方法 | |
CA3056814A1 (en) | Symmetric cryptographic method and system and applications thereof | |
CN113055376A (zh) | 一种区块链数据保护系统 | |
CN112948867A (zh) | 加密报文的生成与解密方法、装置及电子设备 | |
CN111586023A (zh) | 一种认证方法、设备和存储介质 | |
CN113722741A (zh) | 数据加密方法及装置、数据解密方法及装置 | |
CN115499118A (zh) | 报文密钥生成、文件加密、解密方法、装置、设备和介质 | |
Luring et al. | Analysis of security features in DLMS/COSEM: Vulnerabilities and countermeasures | |
CN109361506A (zh) | 信息处理方法 | |
KR101793528B1 (ko) | 무인증서 공개키 암호 시스템 | |
CN112149166B (zh) | 非常规密码保护方法及银行智能机器 | |
CN116866029B (zh) | 随机数加密数据传输方法、装置、计算机设备及存储介质 | |
JP6165044B2 (ja) | 利用者認証装置、システム、方法及びプログラム | |
CN116094735A (zh) | 一种密码服务管理方法、设备及计算机存储介质 | |
Vignesh Saravanan et al. | Enhancing Data Security and Privacy using Hybrid Cryptography | |
KR20140119837A (ko) | 인터넷서비스 등에 응용가능한 패턴암호와 이 암호를 이용한 시스템과 비즈니스방법 |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20221220 |
|
RJ01 | Rejection of invention patent application after publication |