CN116644442A - 基于复合加密的文件校验方法、装置、系统及存储介质 - Google Patents
基于复合加密的文件校验方法、装置、系统及存储介质 Download PDFInfo
- Publication number
- CN116644442A CN116644442A CN202211728804.4A CN202211728804A CN116644442A CN 116644442 A CN116644442 A CN 116644442A CN 202211728804 A CN202211728804 A CN 202211728804A CN 116644442 A CN116644442 A CN 116644442A
- Authority
- CN
- China
- Prior art keywords
- file
- hash value
- file information
- key
- information
- 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 99
- 238000012795 verification Methods 0.000 title claims abstract description 79
- 150000001875 compounds Chemical class 0.000 title claims abstract description 17
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 121
- 230000005540 biological transmission Effects 0.000 claims abstract description 105
- 238000004364 calculation method Methods 0.000 claims abstract description 70
- 239000002131 composite material Substances 0.000 claims description 44
- 238000004590 computer program Methods 0.000 claims description 15
- 238000012546 transfer Methods 0.000 claims description 9
- 230000004044 response Effects 0.000 claims description 8
- 230000011218 segmentation Effects 0.000 claims description 7
- 238000004806 packaging method and process Methods 0.000 claims description 5
- 230000006870 function Effects 0.000 description 23
- 230000008569 process Effects 0.000 description 19
- 238000004891 communication Methods 0.000 description 17
- 238000010586 diagram Methods 0.000 description 11
- 238000012545 processing Methods 0.000 description 7
- 238000005538 encapsulation Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 5
- 238000013478 data encryption standard Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 3
- 238000003032 molecular docking Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 125000004122 cyclic group Chemical group 0.000 description 2
- 230000018109 developmental process Effects 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013524 data verification Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Software Systems (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Databases & Information Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种基于复合加密的文件校验方法、装置、系统及存储介质,其中,所述方法包括:确定待传输的文件信息;基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;对所述文件信息和所述随机对称密钥进行HMAC‑SM3计算,确定所述文件信息的初始文件哈希值;对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
Description
技术领域
本申请涉及但不限于区块链技术领域,尤其涉及一种基于复合加密的文件校验方法、装置、系统及存储介质。
背景技术
针对文件内容,相关技术一般多用md5方案进行内容完整性的校验,但是存在第三方获取文件,并在给出对应md5后,依然可以欺骗接收者。例如第三方截获到文件之后,将修改后的文件同md5码一起被篡改,当接收方拿到文件后,依旧无法鉴别。同时,采用MAC信息校验码,虽然可以进行校验,但是它连同消息一同发给接收者,同样可以被截获,进而进行对接收者的欺骗。目前缺乏对发送者与接收者之间建立安全的通信通道,同时对内容缺乏完整性校验的一整套技术方法。
此外,目前采用的对称加密和非对称加密,多属于国外算法,而不是国密算法,自主安全可控性非常低,常常被暴露出漏洞等问题,如对称加密DES等,非对称加密RSA等,可靠性等也不如国密算法。
发明内容
有鉴于此,本申请实施例至少提供一种基于复合加密的文件校验方法、装置、系统及存储介质。
本申请实施例的技术方案是这样实现的:
第一方面,本申请实施例提供一种基于复合加密的文件校验方法,应用于文件发送端,所述方法包括:
确定待传输的文件信息;基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
第二方面,本申请实施例提供一种基于复合加密的文件校验方法,应用于文件接收端,所述方法包括:
基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
第三方面,本申请实施例提供一种基于复合加密的文件校验装置,应用于文件发送端,所述装置包括:
第一确定模块,用于确定待传输的文件信息;
第一通道建立模块,用于基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
第二确定模块,用于对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;
加密传输模块,用于对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
第四方面,本申请实施例提供一种基于复合加密的文件校验装置,应用于文件接收端,所述装置包括:
通道建立模块,用于基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
第二接收模块,用于接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;
解密模块,用于利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;
验证模块,用于基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
第五方面,本申请实施例提供一种基于复合加密的文件校验系统,包括文件发送端和文件接收端,其中:
所述文件发送端确定待传输的文件信息;基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
所述文件接收端基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
第六方面,本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述第一方面或第二方面中的部分或全部步骤。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,而非限制本公开的技术方案。
本申请实施例中,发送文件端基于国密SM2非对称加密算法和SM4对称加密算法与文件接收端协商确定传输密钥,使文件传输双方都同时使用相同的随机对称密钥且随机对称密钥不易在传输中被窃取,从而可以在文件发送端和文件接收端之间建立安全可靠的通信机制,这样防止文件信息在传输中被篡改,进而能够在文件接收后确保文件内容完整性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,这些附图示出了符合本申请的实施例,并与说明书一起用于说明本申请的技术方案。
图1为本申请实施例提供的基于复合加密的文件校验方法的可选的流程示意图;
图2为本申请实施例提供的基于复合加密的文件校验方法的可选的流程示意图;
图3为本申请实施例提供的文件发送端中复合加密过程的流程示意图;
图4为本申请实施例提供的文件接收端中复合解密过程的流程示意图;
图5为本申请实施例提供的基于复合加密的文件校验方法的逻辑流程图;
图6为本申请实施例提供的SM3发送计算模块与SM3接收计算及验证模块之间的流程框图;
图7为本申请实施例提供的改进型HMAC-SM3模块的计算流程图;
图8为本申请实施例提供的基于复合加密的文件校验系统的整体框图;
图9A为本申请实施例提供的省系统与区块链系统之间的流程示意图;
图9B为本申请实施例提供的集团系统与区块链系统之间的流程示意图;
图10为本申请实施例提供的一种基于复合加密的文件校验装置的组成结构示意图;
图11为本申请实施例提供的一种基于复合加密的文件校验装置的组成结构示意图;
图12为本申请实施例提供的一种计算机设备的硬件实体示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面结合附图和实施例对本申请的技术方案进一步详细阐述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。
所涉及的术语“第一/第二/第三”仅仅是区别类似的对象,不代表针对对象的特定排序,可以理解地,“第一/第二/第三”在允许的情况下可以互换特定的顺序或先后次序,以使这里描述的本申请实施例能够以除了在这里图示或描述的以外的顺序实施。
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本申请的目的,不是旨在限制本申请。
在对本申请实施例进行进一步详细说明之前,先对本申请实施例中涉及的名词和术语进行说明,本申请实施例中涉及的名词和术语适用于如下的解释。
本申请实施例中所提及的SM2、SM3和SM4算法均为国家密码局以《中华人民共和国密码行业标准》的方式陆续公布的商业密码技术。其中,SM2为非对称加密算法,其基于椭圆曲线密码(ECC,Elliptic Curve Cryptography)的公钥密码算法标准,提供数字签名、密钥交换、公钥加密等应用,能够良好的替代国际上常用的RSA(Rivest Shamir Adleman)、ECDSA(椭圆曲线数字签名算法,Elliptic Curve Digital Signature Algorithm)和ECDH(椭圆曲线密钥协商算法,Elliptic Curve Diffie Hellman Algorithm)等算法。而SM3则为哈希算法,其哈希结果为256比特,能够替代过击上常用的MD5(单向散列算法,Message-Digest Algorithm 5)、SHA1(安全哈希算法,Secure Hash Algorithm1)和SHA256等算法。另外,SM4则为一种对称加密算法,其密钥长度和分组长度均为128比特,主要应用于无线局域网的标准,可以有效的替代DES(数据加密标准,Data Encryption Standard)和AES(高级加密标准,Advanced Encryption Standard)等算法。
HMAC是密钥相关的哈希运算消息认证码(Hash-based Message AuthenticationCode)的缩写,由H.Krawezyk,M.Bellare,R.Canetti于1996年提出的一种基于Hash函数和密钥进行消息认证的方法,并于1997年作为RFC2104被公布,并在IPSec和其他网络协议(如SSL)中得以广泛应用,现在已经成为事实上的Internet安全标准。它可以与任何迭代散列函数捆绑使用。
HMAC是一种利用密码学中的散列函数来进行消息认证的一种机制,所能提供的消息认证包括两方面内容:一方面,消息完整性认证:能够证明消息内容在传送过程没有被修改。另一方面,信源身份认证:因为通信双方共享了认证的密钥,接收方能够认证发送该数据的信源与所宣称的一致,即能够可靠地确认接收的消息与发送的一致。
HMAC首先计算初始消息的指印(消息摘要),然后用对称密钥加密,只有发送方和接收方知道这个密钥,从而使接收方可以肯定消息来自正确的发送方,没有在中途被篡改。但是存在以下问题:
(1)HMAC中假设只有发送方和接收方知道,存在密钥交换问题。
(2)即使解决了密钥交换问题,HMAC也不适用于多个接收方的情形。这是因为,为了用HMAC产生MAC,就要利用对称密钥,而对称密钥是双方共享的:一个发送方,一个接收方。
(3)接收方是如何知道消息来自发送方,而不是来自其他的接收方。所有接收方都知道这个对称密钥,因此很可能以发送方的身份发一个假消息,用HMAC准备这个消息的MAC,发送消息和MAC,就像合法的发送方一样,这是无法阻止和检测的。
(4)如何证明MAC是A产生还是B产生的,A和B都知道这个对称密钥,双方都有可能生成这个消息及其MAC。
相关技术中针对文件内容,一般多采用md5算法,进行验证内容完整性,但是存在第三方获取文件,并在给出对应md5后,依然可以欺骗接收者。同时,采用MAC信息校验码,虽然可以进行校验,但是它连同消息一同发给接收者,同样可以被截获,进而进行对接收者的欺骗。目前缺乏对发送者接收者之间建立安全的通信通道,同时对内容缺乏完整性校验的一整套技术方法。此外,目前采用的对称加密和非对称加密,多属于国外算法,而不是国密算法,自主安全可控性非常低,常常被暴露出漏洞等问题,如对称加密DES等,非对称加密RSA等,可靠性等也不如国密算法。
本申请实施例提供一种基于复合加密的文件校验方法,该方法可以由计算机设备的处理器执行。其中,计算机设备指的可以是服务器、笔记本电脑、平板电脑、台式计算机、智能电视、机顶盒、移动设备(例如移动电话、便携式视频播放器、个人数字助理、专用消息设备、便携式游戏设备)等具备文件校验能力的设备。图1为本申请实施例提供的基于复合加密的文件校验方法的可选的流程示意图,如图1所示,该方法包括如下步骤S110至步骤S140:
步骤S110,确定待传输的文件信息。
这里,文件发送端从待传输文件中提取出文件信息,包括文件产生的时间,文件产生者,文件内容,文件文件大小,文件处理单位,文件类别、文件优先级等。其中待传输文件可以包括但不限于工单文件、司法存证文件、医疗数据文件、电子合同文件等,本申请实施例对此不作限定。
步骤S120,基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥。
这里,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的。本申请实施例中为了提升安全可靠度以及提高加解密效率,首先采用SM4对称加密算法生成随机对称密钥,同时为了发送方与接收方都同时使用相同的随机对称密钥且随机对称密钥不在传输中被窃取,需要采用非对称国密算法SM2对随机对称密钥进行加密后发送给文件接收端,以建立起文件发送端与文件传输端之间的安全通信传输通道。
步骤S130,对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值。
这里,HMAC-SM3哈希杂凑算法,即将一个密钥和一个消息作为输入,生成一个消息摘要作为输出,所述初始文件哈希值即HMAC-SM3-code。本申请实施例中将随机对称密钥作为初始密钥,将文件信息作为一个消息,对文件进行哈希杂凑计算,得到文件信息的HMAC-SM3-code值。
步骤S140,对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
这里,文件发送端利用基于SM4算法产生的随机对称密钥,对文件信息和初始文件哈希值分别进行加密后,由文件发送端的通信模块传输到文件接收端,继而由文件接收端基于接收到的传输内容对文件信息进行校验,包括文件完整性以及文件发送端的身份认证等。
本申请实施例中,发送文件端基于国密SM2非对称加密算法和SM4对称加密算法与文件接收端协商确定传输密钥,使文件传输双方都同时使用相同的随机对称密钥且随机对称密钥不易在传输中被窃取,从而可以在文件发送端和文件接收端之间建立安全可靠的通信机制,这样防止文件信息在传输中被篡改,进而能够在文件接收后确保文件内容完整性。
在一些实施例中,上述步骤S120“基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥”可以包括如下步骤S121至步骤S124:
步骤S121,向所述文件接收端发送非对称公钥请求;
步骤S122,接收所述文件接收端返回的请求响应;其中,所述请求响应包括所述文件接收端基于所述SM2算法生成的公钥;
步骤S123,基于所述SM4算法生成随机对称密钥;
步骤S124,利用所述公钥对所述随机对称密钥进行加密得到所述传输密钥。
在上述实施例中,为确保随机对称密钥的安全传输,使用国密算法SM2非对称加密传输,由文件接收端基于SM2算法生成公钥并发送给文件接收端,方便文件发送端对随机对称密钥进行加密,从而在文件发送端与文件接受端之间建立加密传输通道,使文件发送端同时提供文件加密以及传输加密功能。这样提升文件传输的安全可靠度。
在一些实施例中,上述步骤S130“对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值”包括如下步骤S131至步骤S135:
步骤S131,对所述随机对称密钥与第一迭代循环序列进行异或运算并反序,得到第一反序序列。
这里,所述第一迭代循环序列为ipad迭代循环比特序列,即将00110110这一比特序列不断循环反复直到达到分组长度所形成的比特序列,这个比特序列称为opad-key-bit。
值得注意的是,只使用SM3算法不能提供完整性保护,而是需要配合密钥使用,即带密钥的杂凑算法(HMAC-SM3):利用杂凑算法,将一个密钥和一个消息作为输入,生成一个消息摘要作为输出。本申请实施例将随机对称密钥作为初始密钥且将文件信息作为一个消息,即可利用HMAC-SM3可对文件进行完整性检验。
在一些实施方式中,将基于SM4算法产生的随机对称密钥(key)作为HMAC-SM3算法的初始密钥直接与第一迭代循环序列进行异或运算并反序;在一些实施方式中,如果随机对称密钥比SM3函数的分组长度要长,则要用SM3函数求出随机对称密钥的散列值,然后将这个散列值用作HMAC的初始密钥;在一些实施方式中,如果随机对称密钥比上述分组长度要短,就在密钥末尾填充0,直到整体长度达到单向散列函数的分组长度为止。
步骤S132,对所述文件信息与所述第一反序序列进行SM3计算得到第一散列值。
这里,将文件信息与第一反序序列一起输入到SM3单向散列函数进行SM3计算,得到第一散列值即ipad-key-bit-reverse。
步骤S133,将所述第一反序序列分段后与所述第一散列值拼装的结果进行SM3计算,得到第二散列值。
这里,将第一反序序列按整体长度从中间位置分成前后两段,并将后段设置在前面,前段设置在后面,第一散列值则设置在中间部分,之后将这三部分拼装的结果输入SM3单向散列函数进行SM3计算,得到第二散列值即ipad-key-bit-reverse-SM3。
步骤S134,对所述随机对称密钥与第二迭代循环序列进行异或运算并反序,得到第二反序序列。
这里,所述第二迭代循环序列将01011100这一比特序列不断循环反复直到达到分组长度所形成的比特序列,这个比特序列称为opad-key-bit。
步骤S135,将所述第二反序序列分段后与所述第二散列值拼装的结果进行SM3计算,得到所述初始文件哈希值。
这里,将第二反序序列按整体长度从中间位置分成前后两段,并将后段设置在前面,前段设置在后面,第二散列值则设置在中间部分,之后将这三部分拼装的结果输入SM3单向散列函数进行SM3计算,得到最终的散列值opad-key-bit-reverse-SM3,将此值作为文件信息的初始文件哈希值。
上述实施例中,先将随机对称密钥与ipad循环序列进行异或运算并反序分段,并将得到的第一反序序列与文件信息进行SM3计算后与第一反序序列进行拼装后再次进行SM3计算;然后将随机对称密钥与ipad循环序列进行异或运算并反序分段,并将得到的第二反序序列与上一步SM3计算结果进行拼装组合,得到文件信息最终的散列值作为初始文件哈希值;如此提供了基于国密算法SM3的文件计算发送及接收计算及验证方法,从而从文件传输上确保文件内容不被篡改。
在一些实施例中,所述方法还包括:在确定所述传输密钥之后,接收所述文件接收端发送的消息头;所述消息头用于所述文件发送端封装在所述文件信息中并回传给所述文件接收端进行一致性验证;对所述文件信息和所述消息头进行信息封装;相应地,所述对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值,包括:对封装后的所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述初始文件哈希值。
上述实施例中,在确定传输密钥即文件发送端与文件接收端之间建立加密通道之后,文件发送端对文件接收端发送的消息头进行解析后与文件信息进行信息封装,后续将封装后的文件信息发送到文件接收端,便于文件接收端基于消息头验证文件完整性与对应性。
在一些实施例中,所述文件发送端为省系统或集团系统,所述文件接收端为区块链系统,所述方法还包括以下步骤S150至步骤S170:
步骤S150,对所述文件信息进行加密后传送到所述区块链系统,以通过所述区块链系统实现文件流转;
步骤S160,在所述文件发送端为所述集团系统的情况下,响应于所述文件信息的内容需要修改,对所述文件信息添加只读属性,同时追加修改的文件内容;
步骤S170,加密所述修改的文件内容后同所述文件信息一起传送到所述区块链系统。
上述实施例中,在文件发送端为省系统或集团系统,且文件接收端为区块链系统的情况下,通过区块链系统对文件进行流转,防止某个省公司系统对文件进行篡改;同时针对集团系统附加文件内容追加功能,避免对原文件进行任何修改或覆盖,并对追加内容进行加密后随文件信息一起传送到区块链系统,以进一步进行文件的流转。从而基于区块链系统做到文件未被篡改下进行文件存储,多节点文件同步,做到文件可追溯等,确保文件不被篡改且其它节点也可提供对接服务,不局限于仅一个文件发送端一个文件接收端的场景。
图2为本申请实施例提供的基于复合加密的文件校验方法的可选的流程示意图,应用于文件接收端,如图2所示,该方法包括如下步骤S210至步骤S240:
步骤S210,基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;
这里,所述传输密钥是对所述文件发送端利用SM2非对称公钥对基于SM4算法生成的随机对称密钥加密后得到的。
步骤S220,接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;
步骤S230,利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;
这里,文件接收端首先对传输密钥进行解密得到随机对称密钥,再利用随机对称密钥对接收到的加密的文件信息进行解密,得到原始的文件信息,对加密的初始文件哈希值进行解密,得到原始的文件信息对应的初始文件哈希值。
步骤S240,基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
在一些实施方式中,文件接收端对比针对同一文件信息计算的实际文件哈希值和接收到的初始文件哈希值是否一致,进而验证文件信息是否完整。在一些实施方式方式中,文件接收端通过计算的实际文件哈希值对文件信息中例如文件类别、优先级、文件产生时间、文件信息大小等每一属性信息进行逐一对比,进而验证文件信息是否完整。
本申请实施例中,发送接收端基于国密SM2非对称加密算法和SM4对称加密算法与文件发送端协商确定传输密钥,使文件传输双方都同时使用相同的随机对称密钥且随机对称密钥不易在传输中被窃取,从而可以在文件发送端和文件接收端之间建立安全可靠的通信机制,这样防止文件信息在传输中被篡改,同时文件接收端在文件接收后进行解密并通过重新计算实际文件哈希值进行完整性验证,以确保传输的文件内容完整一致。
在一些实施例中,上述步骤S210“基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥”可以通过以下步骤实现:
步骤S211,响应于所述文件发送端发送的非对称公钥请求,基于所述SM2算法生成公钥私钥对;
步骤S212,向所述文件发送端发送所述公钥私钥对中的公钥,以使所述文件发送端利用所述公钥对基于所述SM4算法生成的所述随机对称密钥加密得到所述传输密钥。
上述实施例中,文件发送端利用文件接收端发送的SM2非对称公钥对随机对称密钥进行加密得到传输密钥并发送给文件接收端,由于文件接收端具有SM2非对称私钥可以对该传输密钥进行解密得到随机对称密钥,从而建立文件发送端与文件接收端之间安全传输的加密通道。
在一些实施例中,上述步骤S240“基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性”包括以下步骤S241至步骤S242:
步骤S241,对所述文件信息和所述随机对称密钥重新进行HMAC-SM3计算,确定所述文件信息对应的实际文件哈希值;
这里,文件接收端同文件发送端一样,均设置HMAC-SM3计算模块,具体的计算方式同前述步骤S131至步骤S135的具体实施方式。
步骤S242,基于所述实际哈希值和所述初始哈希值的对比结果,验证所述文件信息的完整性。
在一些实施例中,在确定所述文件信息对应的实际文件哈希值之前,所述方法还包括:对解密后的所述文件信息进行解装,得到消息头;确定所述消息头是否为所述文件接收端向所述文件发送端发送的消息头,以验证所述文件信息的完整性。这样,解装的消息头起到回传作用,从而便于文件接收端对接收的文件信息进行信源身份验证,从而能够可靠地确认接收的消息与发送的一致。
在一些实施例中,所述文件发送端为省系统或集团系统,所述文件接收端为区块链系统,所述方法还包括步骤S250至步骤S260:
步骤S250,在所述文件信息验证通过的情况下,存储所述文件信息,并将所述文件信息同步到所述区块链系统中的各节点中;
步骤S260,根据业务流程,按照所述文件信息的相关方进行文件流转。
上述实施例中,在文件信息验证通过后,将文件信息存储在区块链系统中的当前节点同时进行区块链多节点同步。从而一方面便于其它节点能够对外提供对接服务,如专业公司进行访问文件等,另一方面使得文件可以更好地进行历史追溯以及相关完整性校验。
下面结合一个具体实施例对上述基于复合加密的文件校验方法进行说明,然而值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。
本申请实施例首先需要在文件发送者和接收者之间建立安全可靠的通信机制,即文件在传输中防止被篡改。同时确保在文件接收后确保文件内容完整性。此外,做到文件可存储,可追溯,防篡改。通过建立一整套基于复合国密加解密算法的装置及系统,通过增加改进型的HMAC-SM3特有模块等综合技术手段,最终达到防止文件被恶意修改,做到可追溯,防篡改目的。
本申请实施例提出基于符合国密算法对文件完整性在内容本身方面加密、传输通道方面进行整体加密的解决技术方法和思路。
一方面,本申请实施例提供的文件发送端中设置基于国密加解密算法的复合加密装置,主要包括消息头解密模块、信息封装模块、改进型HMAC-SM3计算模块、SM4对称密钥加密模块、密钥产生模块、SM2非对称密钥加密模块和通信模块。图3为本申请实施例提供复合加密过程的流程示意图,如图3所示,该复合加密装置通过以下过程提供文件加密以及传输加密功能:
步骤S301,文件发送者确定待传输文件的文件信息。
这里,文件信息包括文件产生的时间,文件产生者,文件内容,文件文件大小,文件处理单位,文件类别、文件优先级等。
步骤S302,通过消息头解密模块对文件接收端发送的消息头进行解析。
这里,在文件发送端与文件接收端之间建立加密通道后,接受到文件发送端的消息头;其中消息头用于文件接收端验证文件发送端的文件完整性与对应性。
步骤S303,通过文件信息封装模块对文件信息及消息头进行信息封装。
步骤S304,通过改进型HMAC-SM3计算模块对封装后的文件进行计算,获取到HMAC-SM3-code值。
步骤S305,通过SM4对称密钥加密模块进行文件发送端与文件接收端的加密通道建立。
步骤S306,通过SM4密钥产生模块生成随机对称密钥。
步骤S307,通过SM2非对称密钥加密模块对随机对称密钥进行加密。
这里,文件发送端与文件接收端之间的加密通道建立,即SM4产生的随机对称密钥的传输是通过国密SM2非对称算法产生的公私钥加密后传输的。
步骤S308,通过通信模块发送传输密钥、文件、HMAC-SM3-code值。
另一方面,本申请实施例提供的文件接收端中设置基于国密加解密算法的复合解密装置,主要包括公钥生成模块、通信模块、SM2非对称密钥解密模块、SM4对称密钥解密模块、文件信息解装模块、消息头验证模块、改进型HMAC-SM3计算模块、验证模块。图4为本申请实施例提供的文件接收端中复合解密过程的流程示意图,如图4所示,该复合解密装置通过以下过程提供文件加密以及传输加密功能:
步骤S401,通过公钥生成模块生成公钥私钥对。
这里,采用SM2国密算法生成一对公钥和私钥,其中公钥用于文件发送端对传输的随机对称密钥进行加密,私钥用于文件接收端对接收的随机对称密钥进行解密。
步骤S402,通过通信模块接收文件发送端发送的密钥、文件和HMAC-SM3-code值。
步骤S403,通过SM2非对称密钥解密模块获取文件发送端的随机对称密钥。
这里,采用SM2国密算法生成的私钥对文件发送端发送的随机对称密钥进行解密。
步骤S404,通过SM4对称密钥解密模块对接收的文件和HMAC-SM3-code值进行解密。
这里,利用上一步获取的随机对称密钥对文件内容解密并验证。
步骤S405,文件信息解装模块对解密后的文件进行解装。
这里,对文件信息,包括文件产生的时间,文件产生者,文件内容,文件文件大小,文件处理单位,文件类别、文件优先级等进行一一解装。
步骤S406,消息头验证模块对文件发送端的消息头进行回传性验证。
这里,验证是否解装后得到的消息头是否为起初由文件接收端发送的消息头(不局限于接收端的IP地址或自定义消息头),验证一致性。
步骤S407,通过改进型HMAC-SM3计算模块对文件内容进行Hash计算,得到计算结果。
步骤S408,通过验证模块对解装的文件信息、HMAC-SM3的计算结果及发送端发送的结果进行验证。
步骤S409,验证通过后,把文件信息最终发给文件接受者。
图5为本申请实施例提供的基于复合加密的文件校验方法的逻辑流程图,如图5所示,文件发送端与文件接收端之间的通道加密流程如下:
步骤S501,文件发送端向文件接收端请求公钥。
这里,为保证与文件接收端之间加密传输,文件发送端首先向文件接收端请求非对称国密算法SM2所用的公钥。
步骤S502,文件接收端生成公私钥对。
这里,文件接收端在接收文件发送端的非对称公钥请求后,生成用于SM2非对称密钥算法的公私钥对。
步骤S503,文件接收端发送公钥,文件发送端获取公钥。
这里,文件接收端将公钥返回给文件发送端。此时,文件接收端拥有私钥,文件发送端拥有公钥。在此过程中,文件接收端会连同自身的消息头一起传递给文件发送端。消息头作用为回传作用,以验证整体消息的完整性。
步骤S504,文件发送端生成随机对称密钥。
步骤S505,文件发送端用SM2非对称公钥对随机对称密钥加密。
这里,文件发送端对随机对称密钥加密即封装随机对称密钥后再发送给文件接收端。
步骤S506,文件接收端用SM2非对称私钥对随机对称密钥解密。
这里,文件接收端同样用基于国密SM2算法的自身私钥进行解密,获取到随机对称密钥,至此文件发送端与文件接收端之间通道建立,之后文件接收端和发送端可以用随机对称密钥加密传输内容并传输,也就是说基于国密算法SM4进行传输内容的对称加解密。
步骤S507,文件发送端解密后消息头。
步骤S508,文件发送端确定文件信息。
步骤S509,文件发送端对文件信息封装后进行HMAC-SM3计算。
这里,文件发送端用自身私钥对消息头,对文件信息进行封装,得到文件封装信息,再通过改进型HMAC-SM3计算模块确定文件内容的初始文件哈希值,即HMAC-SM3-code值。
步骤S510,文件发送端用随机对称密钥加密消息头、文件信息以及HAMC-SM3-code并传输。
步骤S511,文件接收端采用随机对称密钥解密。
步骤S512,文件接收端进行消息头验证。
步骤S513,文件接收端进行文件解封获得文件信息。
步骤S514,文件接收端对文件信息进行改进型HMAC-SM3计算。
步骤S515,文件接收端通过验证模块校验完整性。
在文件接收端收到后同样基于国密SM4算法进行对称解密后,对消息头验证,验证通过后,对文件封装信息进行解析,解析后的文件内容与HMAC-SM3-code一同参与SM3计算,最终验证文件完整性。
本申请实施例还提出基于国密HMAC-SM3改进型特有模块,国密算法SM3的文件计算发送及接收计算及验证装置。图6为本申请实施例提供的SM3发送计算模块与SM3接收计算及验证模块之间的流程框图,如图6所示,文件发送端的SM3发送计算模块生成一个随机对称密钥Key 601,并对文件信息602进行封装,通过改进型HMAC-SM3计算模块603进行文件封装信息的Hash值计算,得到初始文件哈希值即HMAC-SM3-code值604,通过国密对称算法SM4建立的加密传输通道将Key601、文件信息602与HMAC-SM3-code值604加密后传送到文件接收端的SM3接收计算及验证模块。SM3接收计算及验证模块先用SM4进行对称解密,再通过改进型HMAC-SM3计算模块605对解密后的文件信息602以及Key601重新进行HMAC-SM3的计算,得到文件接收端的HMAC-SM3-code值606,看这个值是否与传送过来的HMAC-SM3-code值604是否相等,并送到验证模块607进行验证。验证模块不仅判断两个HMAC-SM3-code值是否相等,而且对文件信息,如文件产生时间信息,文件文件大小、文件类别、文件优先级等各个属性校验,都通过后,则验证文件为完整的。
为了安全以及校验文件文件完整性,同时防止利用已知的HMAC-SM3算法进行计算,本申请实施例同时提出改进型HMAC-SM3模块。该模块被封装在相关复合加解密装置中。图7为本申请实施例提供的改进型HMAC-SM3模块的计算流程图,如图7所示,该流程包括以下步骤:
步骤S701,密钥填充:
首先,将SM4产生的随机对称密钥(key)作为改进型HMAC-SM3的密钥的默认初始值。如果密钥比SM3函数的分组长度要长,则要用SM3函数求出密钥的散列值,然后将这个散列值用作HMAC的密钥。如果密钥比分组长度要短,就在末尾填充0,直到其长度达到单向散列函数的分组长度为止。
SM4的密钥长度和分组长度均为128位,对其进行位数填充,需要在末尾填充0,直到其长度达到单向散列函数SM3的分组长度256位为止。
步骤S702,填充后的密钥与ipad迭代循环比特序列进行异或运算:
ipad迭代循环比特序列是将00110110这一比特序列不断循环反复直到达到分组长度所形成的比特序列。这里将这个比特序列称为ipad-key-bit。
将填充后的密钥与即ipad-key-bit进行异或运算,将异或运算后的结果进行反序,并且按其整体长度从中间位置分成前后两段,得到第一反序序列。
步骤S703,将第一反序序列与文件信息的SM3计算后的Hash值拼装:
将文件信息与ipad迭代循环比特序列即步骤S702得到的反序的ipad-key-bit通过SM3计算Hash值,得出第一散列值ipad-key-bit-reverse。同时,把ipad-key-bit反序并分段后的比特串进行按长度1/2分段,把后段设置在前面,前段设置在后面,中间为ipad-key-bit-reverse进行拼装。将拼装后结果输入SM3单向散列函数,再通过SM3计算Hash值,得出第二散列值,即ipad-key-bit-reverse-SM3。
步骤S704,将填充后的密钥与opad迭代循环比特序列进行异或运算:
与步骤S702类似,将填充后的密钥与被称为opad的比特序列进行异或运算,opad是将01011100这一比特序列不断循环反复直到达到分组长度所形成的比特序列,这个比特序列称为opad-key-bit。将异或运算后的结果进行反序,并且按其整体长度从中间位置分成前后两段,得到第二反序序列。
步骤S705,将第二反序序列与第二散列值ipad-key-bit-reverse-SM3进行拼装组合:
与步骤S703类似,将和密钥相关的比特序列(opad-key-bit)反序并分段后,得到opad-key-bit-reverse。同时,把opad-key-bit反序并分段后的比特串即第二反序序列按1/2分段,把后段放在前面,前段放在后面,中间为ipad-key-bit-reverse-SM3进行拼装。
步骤S706,将拼装结果输入SM3单向散列函数,并计算出HMAC-SM3-code值。
这里,HMAC-SM3-code值是最终输出的最终的HMAC-SM3值(opad-key-bit-reverse-SM3)即本申请实施例计算的文件信息的初始文件哈希值。
本申请实施例提出基于区块链技术建立的对文件存储、同步,流转系统进行文件传输及校验。本申请实施例内置基于国密算法的复合解密装置的区块链系统,外置复合国密算法加密装置。图8为本申请实施例提供的基于复合加密的文件校验系统的整体框图,如图8所示,包括作为文件发送端的A省系统、B省系统、集团系统,以及作为文件接收端的区块链系统,其中省系统(A省系统或B省系统)最初提交文件,文件在流转到其他省系统之前,必须经过区块链系统。防止因为某个省公司系统对文件进行篡改。同时,为了安全起见,在省系统附加基于国密算法的复合加密装置,不设置复合解密装置,复合解密装置只在区块链系统进行设置。
在实施中,省系统A通过复合加密装置801对文件802进行加密后,与区块链系统建立对称加密通道,发送国密SM4对称加密后的文件信息,由区块链系统中的复合解密装置803进行解密,并对文件信息进行验证。验证通过后,通过存储模块804对文件信息进行存储,通过同步模块805进行区块链多节点间的同步。通过文件流转模块806传送到集团系统。集团系统中对文件添加只读属性得到只读文件807,若需要修改文件内容,则不能对原文件进行任何修改或覆盖,只能通过追加文件模块808追加文件内容,同时再经过复合加密装置809进行加密后,再传送到区块链系统,以进一步进行文件的流转。通过区块链系统的文件流转模块806传送到B省系统的只读文件810,若需要修改文件内容,通过追加文件模块811追加文件内容,同时再经过复合加密装置812进行加密后,再传送到区块链系统。
省系统与区块链系统流程,集团系统与区块链系统流程这两部分类似,在这里统一描述。首先,在省和集团系统中分别部署复合加密装置,对文件信息以及追加的文件信息进行封装,封装一般会含有文件产生时间、文件信息大小,文件类别,优先级等属性信息,以便后续进一步进行验证。封装后通过复合加密装置采用国密SM3进行哈希杂凑值计算,并通过改进型HMAC-SM3模块,计算Hash值即HMAC-SM3-code值。与区块链系统通过非对称加解密国密算法SM2以及对称加解密算法SM4建立起加密传输通道,当区块链系统收到传送的加密文件以及HMAC-SM3-code值包括key等,通过复合解密装置进行解密。验证通过后,节点进行存储,同时进行区块链多节点同步。同步的目的,第一,为了其它节点能够对外提供对接服务,如专业公司进行访问文件等,第二,为了文件可以更好的进行历史追溯以及相关完整性校验。
此外,集团系统与区块链系统流程还包括以下过程:根据业务上的流程,按文件信息相关方进行系统流转,对文件添加只读属性,再进行传输到其它系统,若需要修改文件内容,则不能对原文件进行任何修改或覆盖,只能追加文件内容,同时再经过复合加密装置进行加密后,再传送到区块链系统,以进一步进行文件的流转。
图9A为本申请实施例提供的省系统与区块链系统之间的流程示意图,如图9A所示,所述流程包括如下步骤:
步骤S901,省系统通过复合加密装置对文件进行加密后向区块链系统传递加密文件。
步骤S902,区块链系统通过复合解密装置对加密文件进行解密。
步骤S903,区块链系统对解密的文件进行文件验证。
步骤S904,区块链系统判断文件是否被篡改。
这里,若判定结果为否,则执行步骤S905;若判定结果为是,则结束流程,不进行任何操作。
步骤S905,区块链系统进行文件存储。
步骤S906,区块链系统进行文件同步。
步骤S907,区块链系统进行文件流转。
步骤S908,区块链系统向省系统反馈结果。
图9B为本申请实施例提供的集团系统与区块链系统之间的流程示意图,如图9B所示,所述流程包括如下步骤:
步骤S911,区块链系统通过文件流转模块向集团系统传送流转文件。
步骤S912,集团系统对文件添加只读属性,得到只读文件。
步骤S913,集团系统通过复合加密装置对文件进行加密后向区块链系统传递加密文件。
步骤S914,区块链系统通过复合解密装置对加密文件进行解密。
步骤S915,区块链系统对解密的文件进行文件验证。
步骤S916,区块链系统判断文件是否被篡改。
这里,若判定结果为否,则执行步骤S917;若判定结果为是,则结束流程,不进行任何操作。
步骤S917,区块链系统进行文件存储。
步骤S918,区块链系统进行文件同步。
步骤S919,区块链系统进行文件流转。
步骤S920,区块链系统向省系统反馈结果。
在文件防篡改方面,相关技术提供的方案往往使用单一的加解密方法,且缺乏与区块链相结合等缺陷,不能提供一整套完整的解决方案。本申请实施例提出了一种基于复合国密加解密算法的加解密装置,提出改进型HMAC-SM3特有模块,以及基于区块链的国密算法SM3的文件计算发送及接收计算及验证装置。从文件传输上,确保文件内容不被篡改。同时由于基于区块链系统,做到文件未被篡改下进行文件存储,多节点文件同步,做到文件可追溯等,确保文件不被篡改。从整体来看,通过采取以上基于复合国密算法的加解密装置及区块链系统等技术手段,防止文件被篡改,
本申请实施例提供的基于复合加密的文件校验系统及方法可用于普通文件加解密及文件完整性验证场景,不限于工单文件的校验,在司法存证中存证初始文件以及存证后的文件的校验、电子合同的合同发起方与接收方的文件对比、医疗病例数据从诊断人到医治人过程中的数据是否一致校验等凡涉及文件防篡改、对文件需要保护的场景下均可应用,由于各个公司都希望整个文件在流转的过程中不希望有任何的被篡改的情况,即客户上传的文件,即为实际所看到的文件,因此具有广阔的价值及市场前景。
基于前述的实施例,本申请实施例提供一种基于复合加密的文件校验装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器(Central Processing Unit,CPU)、微处理器(Microprocessor Unit,MPU)、数字信号处理器(Digital Signal Processor,DSP)或现场可编程门阵列(Field Programmable GateArray,FPGA)等。
图10为本申请实施例提供的一种基于复合加密的文件校验装置的组成结构示意图,应用于文件发送端,如图10所示,该文件校验装置1000包括:第一确定模块1010、第一通道建立模块1020、第二确定模块1030和加密传输模块1040,其中:
所述第一确定模块1010,用于确定待传输的文件信息;
所述第一通道建立模块1020,用于基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
所述第二确定模块1030,用于对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;
所述加密传输模块1040,用于对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
在一些可能的实施例中,所述第一通道建立模块包括:第一发送单元,用于向所述文件接收端发送非对称公钥请求;接收单元,用于接收所述文件接收端返回的请求响应;其中,所述请求响应包括所述文件接收端基于所述SM2算法生成的公钥;第一生成单元,用于基于所述SM4算法生成随机对称密钥;加密单元,用于利用所述公钥对所述随机对称密钥进行加密得到所述传输密钥。
在一些可能的实施例中,所述装置还包括:第一接收模块,用于在确定所述传输密钥之后,接收所述文件接收端发送的消息头;所述消息头用于所述文件发送端封装在所述文件信息中并回传给所述文件接收端进行一致性验证;封装模块,用于对所述文件信息和所述消息头进行信息封装;相应地,所述第二确定模块1030还用于对封装后的所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述初始文件哈希值。
在一些可能的实施例中,所述第二确定模块1030包括:第一异或单元,用于对所述随机对称密钥与第一迭代循环序列进行异或运算并反序,得到第一反序序列;第一计算单元,用于对所述文件信息与所述第一反序序列进行SM3计算得到第一散列值;第二计算单元,用于将所述第一反序序列分段后与所述第一散列值拼装的结果进行SM3计算,得到第二散列值;第二异或单元,用于对所述随机对称密钥与第二迭代循环序列进行异或运算并反序,得到第二反序序列;第三计算单元,用于将所述第二反序序列分段后与所述第二散列值拼装的结果进行SM3计算,得到所述初始文件哈希值。
在一些可能的实施例中,所述文件发送端为省系统或集团系统,所述接收端为区块链系统,所述装置还包括文件流转模块,用于对所述文件信息进行加密后传送到所述区块链系统,以通过所述区块链系统实现文件流转;文件追加模块,用于在所述文件发送端为所述集团系统的情况下,响应于所述文件信息的内容需要修改,对所述文件信息添加只读属性,同时追加修改的文件内容;传输模块,用于加密所述修改的文件内容后同所述文件信息一起传送到所述区块链系统。
以上装置实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。在一些实施例中,本公开实施例提供的装置具有的功能或包含的模块可以用于执行上述方法实施例描述的方法,对于本申请装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
基于前述的实施例,本申请实施例提供一种基于复合加密的文件校验装置,该装置包括所包括的各模块、以及各模块所包括的各单元,可以通过计算机设备中的处理器来实现;当然也可通过具体的逻辑电路实现;在实施的过程中,处理器可以为中央处理器、微处理器、数字信号处理器或现场可编程门阵列等。
图11为本申请实施例提供的一种基于复合加密的文件校验装置的组成结构示意图,应用于文件接收端,如图11所示,文件校验装置1100包括:第二通道建立模块1111、第二接收模块1120、解密模块1130和验证模块1140,其中:
所述第二通道建立模块1111,用于基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
所述第二接收模块1120,用于接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;
所述解密模块1130,用于利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;
所述验证模块1130,用于基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
在一些可能的实施例中,所述第二通道建立模块1111包括:第二生成单元,用于响应于所述文件发送端发送的非对称公钥请求,基于所述SM2算法生成公钥私钥对;第二发送单元,用于向所述文件发送端发送所述公钥私钥对中的公钥,以使所述文件发送端利用所述公钥对基于所述SM4算法生成的所述随机对称密钥加密得到所述传输密钥。
在一些可能的实施例中,所述解密模块1130包括:第一解密单元,用于利用所述SM2算法生成的私钥对所述传输密钥进行解密得到所述随机对称密钥;第二解密单元,用于利用所述随机对称密钥对所述加密的文件信息和所述加密的初始文件哈希值进行分别解密,得到对应的所述文件信息和所述初始文件哈希值。
在一些可能的实施例中,所述验证模块1130包括:第四计算单元,用于对所述文件信息和所述随机对称密钥重新进行HMAC-SM3计算,确定所述文件信息对应的实际文件哈希值;第一验证单元,用于基于所述实际哈希值和所述初始哈希值的对比结果,验证所述文件信息的完整性。
在一些可能的实施例中,在确定所述文件信息对应的实际文件哈希值之前,所述验证模块1130还包括:解装单元,用于对解密后的所述文件信息进行解装,得到消息头;第二验证单元,用于确定所述消息头是否为所述文件接收端向所述文件发送端发送的消息头,以验证所述文件信息的完整性。
在一些可能的实施例中,所述文件发送端为省系统或集团系统,所述文件接收端为区块链系统,所述装置还包括存储同步模块,用于在所述文件信息验证通过的情况下,存储所述文件信息,并将所述文件信息同步到所述区块链系统中的各节点中;文件流转模块,用于根据业务流程,按照所述文件信息的相关方进行文件流转。
需要说明的是,本申请实施例中,如果以软件功能模块的形式实现上述的基于复合加密的文件校验方法,并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。这样,本申请实施例不限制于任何特定的硬件、软件或固件,或者硬件、软件、固件三者之间的任意结合。
本申请实施例提供一种计算机设备,包括存储器和处理器,所述存储器存储有可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述文件发送端方法中的部分或全部步骤,或者实现上述文件接收端方法中的部分或全部步骤。
本申请实施例提供一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述文件发送端方法中的部分或全部步骤,或者实现上述文件接收端方法中的部分或全部步骤。所述计算机可读存储介质可以是瞬时性的,也可以是非瞬时性的。
本申请实施例提供一种计算机程序,包括计算机可读代码,在所述计算机可读代码在计算机设备中运行的情况下,所述计算机设备中的处理器执行用于实现上述文件发送端方法中的部分或全部步骤,或者实现上述文件接收端方法中的部分或全部步骤。
本申请实施例提供一种计算机程序产品,所述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,所述计算机程序被计算机读取并执行时,实现上述文件发送端方法中的部分或全部步骤,或者实现上述文件发送端方法中的部分或全部步骤。该计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一些实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一些实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
这里需要指出的是:上文对各个实施例的描述倾向于强调各个实施例之间的不同之处,其相同或相似之处可以互相参考。以上设备、存储介质、计算机程序及计算机程序产品实施例的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果。对于本申请设备、存储介质、计算机程序及计算机程序产品实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
需要说明的是,图12为本申请实施例中计算机设备的一种硬件实体示意图,如图12所示,该计算机设备1200的硬件实体包括:处理器1201、通信接口1202和存储器1203,其中:
处理器1201通常控制计算机设备1200的总体操作。
通信接口1202可以使计算机设备通过网络与其他终端或服务器通信。
存储器1203配置为存储由处理器1201可执行的指令和应用,还可以缓存待处理器1201以及计算机设备1200中各模块待处理或已经处理的数据(例如,图像数据、音频数据、语音通信数据和视频通信数据),可以通过闪存(FLASH)或随机访问存储器(Random AccessMemory,RAM)实现。处理器1201、通信接口1202和存储器1203之间可以通过总线1204进行数据传输。
应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本申请的各种实施例中,上述各步骤/过程的序号的大小并不意味着执行顺序的先后,各步骤/过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本申请上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本申请各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。
Claims (15)
1.一种基于复合加密的文件校验方法,其特征在于,应用于文件发送端,所述方法包括:
确定待传输的文件信息;
基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
对所述文件信息和所述随机对称密钥进行哈希杂凑HMAC-SM3计算,确定所述文件信息的初始文件哈希值;
对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
2.根据权利要求1所述的方法,其特征在于,所述基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥,包括:
向所述文件接收端发送非对称公钥请求;
接收所述文件接收端返回的请求响应;其中,所述请求响应包括所述文件接收端基于所述SM2算法生成的公钥;
基于所述SM4算法生成随机对称密钥;
利用所述公钥对所述随机对称密钥进行加密得到所述传输密钥。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在确定所述传输密钥之后,接收所述文件接收端发送的消息头;所述消息头用于所述文件发送端封装在所述文件信息中并回传给所述文件接收端进行一致性验证;
对所述文件信息和所述消息头进行信息封装;
相应地,所述对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值,包括:对封装后的所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述初始文件哈希值。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值,包括:
对所述随机对称密钥与第一迭代循环序列进行异或运算并反序,得到第一反序序列;
对所述文件信息与所述第一反序序列进行SM3计算得到第一散列值;
将所述第一反序序列分段后与所述第一散列值拼装的结果进行SM3计算,得到第二散列值;
对所述随机对称密钥与第二迭代循环序列进行异或运算并反序,得到第二反序序列;
将所述第二反序序列分段后与所述第二散列值拼装的结果进行SM3计算,得到所述初始文件哈希值。
5.根据权利要求1至3任一项所述的方法,其特征在于,所述文件发送端为省系统或集团系统,所述接收端为区块链系统,所述方法还包括:
对所述文件信息进行加密后传送到所述区块链系统,以通过所述区块链系统实现文件流转;
在所述文件发送端为所述集团系统的情况下,响应于所述文件信息的内容需要修改,对所述文件信息添加只读属性,同时追加修改的文件内容;
加密所述修改的文件内容后同所述文件信息一起传送到所述区块链系统。
6.一种基于复合加密的文件校验方法,其特征在于,应用于文件接收端,所述方法包括:
基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;
利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;
基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
7.根据权利要求6所述的方法,其特征在于,所述基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥,包括:
响应于所述文件发送端发送的非对称公钥请求,基于所述SM2算法生成公钥私钥对;
向所述文件发送端发送所述公钥私钥对中的公钥,以使所述文件发送端利用所述公钥对基于所述SM4算法生成的所述随机对称密钥加密得到所述传输密钥。
8.根据权利要求7所述的方法,其特征在于,所述利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到所述文件信息和所述初始文件哈希值,包括:
利用所述SM2算法生成的私钥对所述传输密钥进行解密得到所述随机对称密钥;
利用所述随机对称密钥对所述加密的文件信息和所述加密的初始文件哈希值进行分别解密,得到对应的所述文件信息和所述初始文件哈希值。
9.根据权利要求7所述的方法,其特征在于,所述基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性,包括:
对所述文件信息和所述随机对称密钥重新进行HMAC-SM3计算,确定所述文件信息对应的实际文件哈希值;
基于所述实际哈希值和所述初始哈希值的对比结果,验证所述文件信息的完整性。
10.根据权利要求9所述的方法,其特征在于,在确定所述文件信息对应的实际文件哈希值之前,所述方法还包括:
对解密后的所述文件信息进行解装,得到消息头;
确定所述消息头是否为所述文件接收端向所述文件发送端发送的消息头,以验证所述文件信息的完整性。
11.根据权利要求6至10任一项所述的方法,其特征在于,所述文件发送端为省系统或集团系统,所述文件接收端为区块链系统,所述方法还包括:
在所述文件信息验证通过的情况下,存储所述文件信息,并将所述文件信息同步到所述区块链系统中的各节点中;
根据业务流程,按照所述文件信息的相关方进行文件流转。
12.一种基于复合加密的文件校验装置,其特征在于,应用于文件发送端,所述装置包括:
第一确定模块,用于确定待传输的文件信息;
第一通道建立模块,用于基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
第二确定模块,用于对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;
加密传输模块,用于对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
13.一种基于复合加密的文件校验装置,其特征在于,应用于文件接收端,所述装置包括:
第二通道建立模块,用于基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;
第二接收模块,用于接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;
解密模块,用于利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;
验证模块,用于基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
14.一种基于复合加密的文件校验系统,其特征在于,包括文件发送端和文件接收端,其中:
所述文件发送端确定待传输的文件信息;基于SM2非对称加密算法和SM4对称加密算法,与文件接收端协商确定用于双方安全传输文件的传输密钥;其中,所述传输密钥是对所述文件发送端生成的随机对称密钥加密后得到的;对所述文件信息和所述随机对称密钥进行HMAC-SM3计算,确定所述文件信息的初始文件哈希值;对所述文件信息、所述初始文件哈希值进行加密后,发送到所述文件接收端,以通过所述文件接收端对所述文件信息进行完整性校验。
所述文件接收端基于SM2非对称加密算法和SM4对称加密算法,与文件发送端协商确定用于双方安全传输文件的传输密钥;接收所述文件发送端传输的加密的文件信息和加密的初始文件哈希值;利用所述传输密钥对所述加密的文件信息和所述加密的初始文件哈希值分别进行解密,得到对应的所述文件信息和所述初始文件哈希值;基于所述文件信息对应的实际文件哈希值和所述初始文件哈希值,验证所述文件信息的完整性。
15.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至5任一项所述方法中的步骤,或者实现权利要求6至11任一项所述方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211728804.4A CN116644442A (zh) | 2022-12-30 | 2022-12-30 | 基于复合加密的文件校验方法、装置、系统及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211728804.4A CN116644442A (zh) | 2022-12-30 | 2022-12-30 | 基于复合加密的文件校验方法、装置、系统及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116644442A true CN116644442A (zh) | 2023-08-25 |
Family
ID=87621784
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211728804.4A Pending CN116644442A (zh) | 2022-12-30 | 2022-12-30 | 基于复合加密的文件校验方法、装置、系统及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116644442A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117291750A (zh) * | 2023-11-27 | 2023-12-26 | 平利县女娲茗鼎农业科技有限公司 | 基于区块链的兽医用废弃物溯源管理方法及系统 |
-
2022
- 2022-12-30 CN CN202211728804.4A patent/CN116644442A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117291750A (zh) * | 2023-11-27 | 2023-12-26 | 平利县女娲茗鼎农业科技有限公司 | 基于区块链的兽医用废弃物溯源管理方法及系统 |
CN117291750B (zh) * | 2023-11-27 | 2024-02-06 | 平利县女娲茗鼎农业科技有限公司 | 基于区块链的兽医用废弃物溯源管理方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111740828B (zh) | 一种密钥生成方法以及装置、设备、加解密方法 | |
US11108565B2 (en) | Secure communications providing forward secrecy | |
US10785019B2 (en) | Data transmission method and apparatus | |
KR101725847B1 (ko) | 키 복원 공격들을 좌절시키기 위한 대책으로서 송신기-수신기 페어링을 위한 마스터 키 암호화 기능들 | |
CN108199835B (zh) | 一种多方联合私钥解密方法 | |
US10057071B2 (en) | Component for connecting to a data bus, and methods for implementing a cryptographic functionality in such a component | |
WO2016065321A1 (en) | Secure communication channel with token renewal mechanism | |
EP3476078B1 (en) | Systems and methods for authenticating communications using a single message exchange and symmetric key | |
US9130744B1 (en) | Sending an encrypted key pair and a secret shared by two devices to a trusted intermediary | |
US20150229621A1 (en) | One-time-pad data encryption in communication channels | |
KR102017758B1 (ko) | 의료 기기, 게이트웨이 기기 및 이를 이용한 프로토콜 보안 방법 | |
EP3673610B1 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
JP2022537733A (ja) | 認証付き鍵共有 | |
US11528127B2 (en) | Computer-implemented system and method for highly secure, high speed encryption and transmission of data | |
KR20200067265A (ko) | 실시간 데이터 전송을 위한 블록 암호 장치 및 방법 | |
CN108011856B (zh) | 一种传输数据的方法和装置 | |
CN116644442A (zh) | 基于复合加密的文件校验方法、装置、系统及存储介质 | |
US11088835B1 (en) | Cryptographic module to generate cryptographic keys from cryptographic key parts | |
Goyal et al. | Cryptographic security using various encryption and decryption method | |
CN106534077B (zh) | 一种基于对称密码的可认证的代理重加密系统及方法 | |
CN107534552B (zh) | 在服务器设备、客户端设备处执行的方法及服务器设备 | |
CN112822015B (zh) | 信息传输方法及相关装置 | |
CN111526131B (zh) | 基于秘密共享和量子通信服务站的抗量子计算的电子公文传输方法和系统 | |
JP2018042081A (ja) | データ送受信方法およびセンシングシステム | |
CN114696999A (zh) | 一种身份鉴别方法和装置 |
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 |