CN111988133B - ***sm4加密解密验证方法、装置、设备、及存储介质 - Google Patents

***sm4加密解密验证方法、装置、设备、及存储介质 Download PDF

Info

Publication number
CN111988133B
CN111988133B CN202010832985.XA CN202010832985A CN111988133B CN 111988133 B CN111988133 B CN 111988133B CN 202010832985 A CN202010832985 A CN 202010832985A CN 111988133 B CN111988133 B CN 111988133B
Authority
CN
China
Prior art keywords
target
length
encryption
plaintext file
decryption
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.)
Active
Application number
CN202010832985.XA
Other languages
English (en)
Other versions
CN111988133A (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.)
Inspur Power Commercial Systems Co Ltd
Original Assignee
Inspur Power Commercial Systems 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 Inspur Power Commercial Systems Co Ltd filed Critical Inspur Power Commercial Systems Co Ltd
Priority to CN202010832985.XA priority Critical patent/CN111988133B/zh
Publication of CN111988133A publication Critical patent/CN111988133A/zh
Application granted granted Critical
Publication of CN111988133B publication Critical patent/CN111988133B/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/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
    • 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
    • YGENERAL 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
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE 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/00Reducing energy consumption in communication networks
    • Y02D30/50Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate

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)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种***SM4加密解密验证方法,该方法包括以下步骤:当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。应用本发明实施例所提供的技术方案,提高了对***SM4加密解密验证的准确性,较大地提高了验证效率。本发明还公开了一种***SM4加密解密验证装置、设备及存储介质,具有相应技术效果。

Description

***SM4加密解密验证方法、装置、设备、及存储介质
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种***SM4加密解密验证方法、装置、设备及计算机可读存储介质。
背景技术
在数据传输及数据存储中,为保证数据安全性,对数据进行加密操作。GmSSL是一个开放源代码的软件库包,相比OpenSSL它可以支持国密算法SM2/SM3/SM4/SM9等,属于软件方法实现加密。目前某些芯片公司使用GmSSL工具再封装进自己的硬件加密引擎,使得新的GmSSL既支持芯片的硬件引擎加密,也可以实现软件加密。其中SM4分组加密算法是中国无线标准中使用的分组加密算法,其应用比较广泛,在***利用SM4分组加密算法进行数据加解密前,需要对***是否能够成功的进行SM4加解密进行验证。
现有的***SM4加密解密验证方式是通过手动设置单行指令选择一个可以支持的明文长度的特定明文文件和秘钥,利用该明文文件和秘钥对***进行SM4加密解密验证。实现起来效率较低,每次加密指定执行一个固定的明文长度,验证覆盖面不够随机和完整,导致对***SM4加密解密验证不准确。
综上所述,如何有效地解决手动设置单行指令进行***SM4加密解密验证,效率较低,验证覆盖面不够随机和完整,验证不准确等问题,是目前本领域技术人员急需解决的问题。
发明内容
本发明的目的是提供一种***SM4加密解密验证方法,该方法提高了对***SM4加密解密验证的准确性,较大地提高了验证效率;本发明的另一目的是提供一种***SM4加密解密验证装置、设备及计算机可读存储介质。
为解决上述技术问题,本发明提供如下技术方案:
一种***SM4加密解密验证方法,包括:
当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;
利用shell脚本获取所述目标明文文件长度的第一随机数组,得到目标明文文件;
利用所述shell脚本获取所述目标秘钥长度的第二随机数组,得到目标秘钥;
分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
在本发明的一种具体实施方式中,获取目标明文文件长度,包括:
判断是否存在预设明文文件长度;
若是,则将所述预设明文文件长度确定为所述目标明文文件长度;
若否,则利用所述shell脚本从明文文件长度数组中随机获取第一随机长度数,将所述第一随机长度数确定为所述目标明文文件长度。
在本发明的一种具体实施方式中,获取目标秘钥长度,包括:
判断是否存在预设秘钥长度;
若是,则将所述预设秘钥长度确定为所述目标秘钥长度;
若否,则利用所述shell脚本从秘钥长度数组中随机获取第二随机长度数,将所述第二随机长度数确定为所述目标秘钥长度。
在本发明的一种具体实施方式中,分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,包括:
获取目标SM4测试模式;
判断所述目标SM4测试模式是否为电码本模式;
若是,则分别通过所述硬件引擎和所述GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作;
若否,则获取目标初始化向量,分别通过所述硬件引擎和所述GmSSL软件包利用所述目标秘钥和所述目标初始化向量对所述目标明文文件进行加解密操作。
在本发明的一种具体实施方式中,获取目标初始化向量,包括:
获取目标向量长度;
利用所述shell脚本获取所述目标向量长度的第三随机数组,得到所述目标初始化向量。
在本发明的一种具体实施方式中,获取目标向量长度,包括:
判断是否存在预设向量长度;
若是,则将所述预设向量长度确定为所述目标向量长度;
若否,则利用所述shell脚本从向量长度数组中随机获取第三随机长度数,将所述第三随机长度数确定为所述目标向量长度。
在本发明的一种具体实施方式中,分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作,包括:
通过所述硬件引擎利用所述目标秘钥对所述目标明文文件进行加密操作,得到硬件加密密文文件;
通过所述GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加密操作,得到软件加密密文文件;
判断所述硬件加密密文文件与所述软件加密密文文件是否一致;
若是,则***SM4加密项测试通过;
通过所述硬件引擎对所述硬件加密密文文件进行解密操作,得到硬件解密明文文件;
判断所述硬件解密明文文件与所述目标明文文件是否一致;
若是,则***SM4解密项测试通过;
当所述***SM4加密项和所述***SM4解密项均测试通过时,确定所述***对应的SM4加密解密验证通过。
一种***SM4加密解密验证装置,包括:
长度获取模块,用于当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;
明文文件获得模块,用于利用shell脚本获取所述目标明文文件长度的第一随机数组,得到目标明文文件;
秘钥获得模块,用于利用所述shell脚本获取所述目标秘钥长度的第二随机数组,得到目标秘钥;
加解密验证模块,用于分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
一种***SM4加密解密验证设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如前所述***SM4加密解密验证方法的步骤。
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如前所述***SM4加密解密验证方法的步骤。
应用本发明实施例所提供的方法,当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。通过利用shell脚本获取第一随机数组作为目标明文文件,并利用shell脚本获取第二随机数组作为目标秘钥,增强了目标明文文件和目标秘钥的随机性,从而增强了验证覆盖面的随机性和完整性,提高了对***SM4加密解密验证的准确性。通过shell脚本自动获取目标明文文件和目标秘钥,较大地提高了验证效率。
相应的,本发明实施例还提供了与上述***SM4加密解密验证方法相对应的***SM4加密解密验证装置、设备和计算机可读存储介质,具有上述技术效果,在此不再赘述。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中***SM4加密解密验证方法的一种实施流程图;
图2为本发明实施例中***SM4加密解密验证方法的另一种实施流程图;
图3为本发明实施例中***SM4加密解密验证方法的另一种实施流程图;
图4为本发明实施例中一种***SM4加密解密验证装置的结构框图;
图5为本发明实施例中一种***SM4加密解密验证设备的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一:
参见图1,图1为本发明实施例中***SM4加密解密验证方法的一种实施流程图,该方法可以包括以下步骤:
S101:当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度。
当需要对***进行SM4加密解密验证时,向***加解密验证中心发送***SM4加密解密验证请求,***加解密验证中心接收***SM4加密解密验证请求,并获取目标明文文件长度和目标秘钥长度。
S102:利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件。
在获取到目标明文文件长度之后,利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件。如可以利用shell脚本从文件数据库中获取目标明文文件长度的第一随机数组,从而得到目标明文文件。
S103:利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥。
在获取到目标秘钥长度之后,利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥。如可以利用shell脚本从秘钥数据库中获取目标秘钥长度的第二随机数组,从而得到目标秘钥。
S104:分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
在得到目标明文文件和目标秘钥之后,分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,得到加解密结果信息,根据加解密结果信息对***进行SM4加密解密验证操作。具体的可以是通过对比硬件加密结果和软件加密结果的一致性对***进行SM4加密验证,在利用硬件引擎对加密后的硬件加密密文文件进行解密之后,得到硬件解密明文文件,通过将硬件解密明文文件与目标明文文件进行对比,从而对***进行SM4解密验证。通过利用shell脚本遍历得到第一随机数组作为目标明文文件,并利用shell脚本遍历得到第二随机数组作为目标秘钥,增强了目标明文文件和目标秘钥的随机性,从而增强了验证覆盖面的随机性和完整性,提高了对***SM4加密解密验证的准确性。通过shell脚本自动获取目标明文文件和目标秘钥,较大地提高了验证效率。
应用本发明实施例所提供的方法,当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。通过利用shell脚本获取第一随机数组作为目标明文文件,并利用shell脚本获取第二随机数组作为目标秘钥,增强了目标明文文件和目标秘钥的随机性,从而增强了验证覆盖面的随机性和完整性,提高了对***SM4加密解密验证的准确性。通过shell脚本自动获取目标明文文件和目标秘钥,较大地提高了验证效率。
需要说明的是,基于上述实施例一,本发明实施例还提供了相应的改进方案。在后续实施例中涉及与上述实施例一中相同步骤或相应步骤之间可相互参考,相应的有益效果也可相互参照,在下文的改进实施例中不再一一赘述。
实施例二:
参见图2,图2为本发明实施例中***SM4加密解密验证方法的另一种实施流程图,该方法可以包括以下步骤:
S201:接收***SM4加密解密验证请求。
S202:判断是否存在预设明文文件长度,若是,则执行步骤S203,若否,则执行步骤S204。
存在两种情况,一种是预先指定用于***SM4加密解密验证的目标明文文件的长度,另一种是不指定用于***SM4加密解密验证的目标明文文件的长度。在接收到***SM4加密解密验证请求之后,判断是否存在预设明文文件长度,若是,则说明预先指定了用于***SM4加密解密验证的目标明文文件的长度,执行步骤S203,若否,则说明未预先指定用于***SM4加密解密验证的目标明文文件的长度,执行步骤S204。
S203:将预设明文文件长度确定为目标明文文件长度。
当确定存在预设明文文件长度时,将预设明文文件长度确定为目标明文文件长度。
S204:利用shell脚本从明文文件长度数组中随机获取第一随机长度数,将第一随机长度数确定为目标明文文件长度。
预先设置明文文件长度数组,明文文件长度数组中包含多个不同的第一随机长度数。当确定不存在预设明文文件长度时,利用shell脚本从明文文件长度数组中随机获取第一随机长度数,将第一随机长度数确定为目标明文文件长度。
S205:利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件。
S206:判断是否存在预设秘钥长度,若是,则执行步骤S207,若否,则执行步骤S208。
类比目标明文文件的长度,关于目标秘钥的长度也存在两种情况,一种是预先指定用于***SM4加密解密验证的目标秘钥的长度,另一种是不指定用于***SM4加密解密验证的目标秘钥的长度。在接收到***SM4加密解密验证请求之后,判断是否存在预设秘钥长度,若是,则说明预先指定了用于***SM4加密解密验证的目标秘钥的长度,执行步骤S207,若否,则说明未预先指定用于***SM4加密解密验证的目标秘钥的长度,执行步骤S208。
S207:将预设秘钥长度确定为目标秘钥长度。
当确定存在预设秘钥长度时,将预设秘钥长度确定为目标秘钥长度。
S208:利用shell脚本从秘钥长度数组中随机获取第二随机长度数,将第二随机长度数确定为目标秘钥长度。
预先设置秘钥长度数组,秘钥长度数组中包含多个不同的第二随机长度数。当确定不存在预设秘钥长度时,利用shell脚本从秘钥长度数组中随机获取第二随机长度数,将第二随机长度数确定为目标秘钥长度。
S209:利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥。
S210:获取目标SM4测试模式。
SM4国密算法共有5种工作模式,分别为:1)电码本模式(ECB,ElectronicCodebook Book);2)密码分组链接模式(CBC,Cipher Block Chaining);3)计算器模式(CTR,Counter);4)密码反馈模式(CFB,Cipher FeedBack);5)输出反馈模式(OFB,OutputFeedBack)。相应的,***SM4加密解密验证也存在以上5中模式,在得到目标明文文件和目标秘钥之后,获取目标SM4测试模式。
S211:判断目标SM4测试模式是否为电码本模式,若是,则执行步骤S212,若否,则执行步骤S213。
在***SM4加密解密验证的5种测试模式中,电码本模式加密只需要秘钥,不需要初始化向量,其他4种测试模式需要秘钥和初始化向量。在获取到目标SM4测试模式之后,判断目标SM4测试模式是否为电码本模式,若是,则执行步骤S212,若否,则执行步骤S213。
S212:分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
当确定目标SM4测试模式为电码本模式时,分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作。
S213:判断是否存在预设向量长度,若是,则执行步骤S214,若否,则执行步骤S215。
类比目标明文文件的长度和目标秘钥的长度,关于目标初始化向量的长度也存在两种情况,一种是预先指定用于***SM4加密解密验证的目标初始化向量的长度,另一种是不指定用于***SM4加密解密验证的目标初始化向量的长度。当确定目标SM4测试模式为非电码本模式时,判断是否存在预设向量长度,若是,则说明预先指定了用于***SM4加密解密验证的目标初始化向量的长度,执行步骤S214,若否,则说明未预先指定用于***SM4加密解密验证的目标初始化向量的长度,执行步骤S215。
S214:将预设向量长度确定为目标向量长度。
当确定存在预设向量长度时,将预设向量长度确定为目标向量长度。
S215:利用shell脚本从向量长度数组中随机获取第三随机长度数,将第三随机长度数确定为目标向量长度。
预先设置向量长度数组,向量长度数组中包含多个不同的第三随机长度数。当确定不存在预设向量长度时,利用shell脚本从向量长度数组中随机获取第三随机长度数,将第三随机长度数确定为目标向量长度。
S216:利用shell脚本获取目标向量长度的第三随机数组,得到目标初始化向量。
在获取到目标向量长度之后,利用shell脚本获取目标向量长度的第三随机数组,得到目标初始化向量。如可以利用shell脚本从向量数据库中获取目标向量长度的第三随机数组,从而得到目标初始化向量。
S217:分别通过硬件引擎和GmSSL软件包利用目标秘钥和目标初始化向量对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
在目标SM4测试模式为非电码本模式的情况下,在分别获取到目标秘钥、目标初始化向量以及目标明文文件之后,分别通过硬件引擎和GmSSL软件包利用目标秘钥和目标初始化向量对目标明文文件进行加解密操作。
实施例三:
参见图3,图3为本发明实施例中***SM4加密解密验证方法的另一种实施流程图,该方法可以包括以下步骤:
S301:当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度。
S302:利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件。
S303:利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥。
S304:通过硬件引擎利用目标秘钥对目标明文文件进行加密操作,得到硬件加密密文文件。
在得到目标明文文件和目标秘钥之后,通过硬件引擎利用目标秘钥对目标明文文件进行加密操作,得到硬件加密密文文件。
S305:通过GmSSL软件包利用目标秘钥对目标明文文件进行加密操作,得到软件加密密文文件。
在得到目标明文文件和目标秘钥之后,通过GmSSL软件包利用目标秘钥对目标明文文件进行加密操作,得到软件加密密文文件。
S306:判断硬件加密密文文件与软件加密密文文件是否一致,若是,则执行步骤S307,若否,则执行步骤S308。
在得到硬件加密密文文件和软件加密密文文件之后,判断硬件加密密文文件与软件加密密文文件是否一致,若是,则说明***支持SM4国密算法的加密项,执行步骤S307,若否,则说明***不支持SM4国密算法的加密项,执行步骤S308。
S307:***SM4加密项测试通过。
在确定硬件加密密文文件与软件加密密文文件一致时,***SM4加密项测试通过。
S308:***SM4加密项测试失败。
当确定硬件加密密文文件与软件加密密文文件不一致时,***SM4加密项测试失败。
S309:通过硬件引擎对硬件加密密文文件进行解密操作,得到硬件解密明文文件。
在得到硬件加密密文文件之后,通过硬件引擎对硬件加密密文文件进行解密操作,得到硬件解密明文文件。
S310:判断硬件解密明文文件与目标明文文件是否一致,若是,则执行步骤S311,若否,则执行步骤S312。
在得到硬件解密明文文件之后,判断硬件解密明文文件与目标明文文件是否一致,若是,则说明***支持SM4国密算法的解密项,执行步骤S311,若否,则说明***不支持SM4国密算法的解密项,执行步骤S312。
S311:***SM4解密项测试通过。
在确定硬件解密明文文件与目标明文文件一致时,***SM4解密项测试通过。
S312:***SM4解密项测试失败。
在确定硬件解密明文文件与目标明文文件不一致时,***SM4解密项测试失败。
S313:当***SM4加密项和***SM4解密项均测试通过时,确定***对应的SM4加密解密验证通过。
当确定***SM4加密项和***SM4解密项均测试通过时,确定***对应的SM4加密解密验证通过。通过shell语言自动化的方式高效快速的实现SM4国密算法的五种模式下的硬件加解密、软件加密、文件对比等一系列测试验证。验证过程中可以指定目标明文文件长度、目标秘钥长度、目标向量长度。如果不指定以上数据长度,可以从相应的数组中遍历测试所有长度的明文文件,并可以随机选择不同长度的秘钥和初始化向量,覆盖到了随机长度的秘钥和初始化向量,以及多种长度的明文加密过程,保证了测试的随机性和完整覆盖度,准确、高效的验证***对SM4国密算法的支持。
shell语言实现***SM4加密解密验证的过程可以包括:
定义函数,获取明文
Figure BDA0002638667300000111
Figure BDA0002638667300000121
设置在不指定固定明文长度时需要验证的明文长度数组
LEN_SM4=(16 32 64 256 1024 8192 16384)
从明文长度数组中依次取数,生成不同长度的明文
Figure BDA0002638667300000122
Figure BDA0002638667300000131
定义函数,获得秘钥(key)或者数初始化向量(iv)
Figure BDA0002638667300000132
Figure BDA0002638667300000143
定义SM4测试的5个模式
Figure BDA0002638667300000141
定义函数,SM4的硬件加密解密,软件加密的测试验证过程
Figure BDA0002638667300000142
Figure BDA0002638667300000151
Figure BDA0002638667300000161
Figure BDA0002638667300000171
相应于上面的方法实施例,本发明实施例还提供了一种***SM4加密解密验证装置,下文描述的***SM4加密解密验证装置与上文描述的***SM4加密解密验证方法可相互对应参照。
参见图4,图4为本发明实施例中一种***SM4加密解密验证装置的结构框图,该装置可以包括:
长度获取模块41,用于当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;
明文文件获得模块42,用于利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;
秘钥获得模块43,用于利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;
加解密验证模块44,用于分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
应用本发明实施例所提供的装置,当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。通过利用shell脚本获取第一随机数组作为目标明文文件,并利用shell脚本获取第二随机数组作为目标秘钥,增强了目标明文文件和目标秘钥的随机性,从而增强了验证覆盖面的随机性和完整性,提高了对***SM4加密解密验证的准确性。通过shell脚本自动获取目标明文文件和目标秘钥,较大地提高了验证效率。
在本发明的一种具体实施方式中,长度获取模块41包括明文文件长度获取子模块,明文文件长度获取子模块包括:
第一判断单元,用于判断是否存在预设明文文件长度;
第一明文文件长度确定单元,用于当确定存在预设明文文件长度时,将预设明文文件长度确定为目标明文文件长度;
第二明文文件长度确定单元,用于当确定不存在预设明文文件长度时,利用shell脚本从明文文件长度数组中随机获取第一随机长度数,将第一随机长度数确定为目标明文文件长度。
在本发明的一种具体实施方式中,长度获取模块41包括秘钥长度获取子模块,秘钥长度获取子模块包括:
第二判断单元,用于判断是否存在预设秘钥长度;
第一秘钥长度确定单元,用于当确定存在预设秘钥长度时,将预设秘钥长度确定为目标秘钥长度;
第二秘钥长度确定单元,用于当确定不存在预设秘钥长度时,利用shell脚本从秘钥长度数组中随机获取第二随机长度数,将第二随机长度数确定为目标秘钥长度。
在本发明的一种具体实施方式中,加解密验证模块44包括:
模式获取子模块,用于获取目标SM4测试模式;
第一判断子模块,用于判断目标SM4测试模式是否为电码本模式;
第一加解密子模块,用于当确定目标SM4测试模式为电码本模式时,分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作;
第二加解密子模块,用于当确定目标SM4测试模式为非电码本模式时,获取目标初始化向量,分别通过硬件引擎和GmSSL软件包利用目标秘钥和目标初始化向量对目标明文文件进行加解密操作。
在本发明的一种具体实施方式中,第二加解密子模块包括向量获取单元,
向量获取单元,用于获取目标向量长度;利用shell脚本获取目标向量长度的第三随机数组,得到目标初始化向量。
在本发明的一种具体实施方式中,向量获取单元包括:
判断子单元,用于判断是否存在预设向量长度;
第一向量长度确定子单元,用于当确定存在预设向量长度时,将预设向量长度确定为目标向量长度;
第二向量长度确定子单元,用于当确定不存在预设向量长度时,利用shell脚本从向量长度数组中随机获取第三随机长度数,将第三随机长度数确定为目标向量长度。
在本发明的一种具体实施方式中,加解密验证模块44包括:
硬件加密子模块,用于通过硬件引擎利用目标秘钥对目标明文文件进行加密操作,得到硬件加密密文文件;
软件加密子模块,用于通过GmSSL软件包利用目标秘钥对目标明文文件进行加密操作,得到软件加密密文文件;
第二判断子模块,用于判断硬件加密密文文件与软件加密密文文件是否一致;
加密项测试结果获得子模块,用于当确定硬件加密密文文件与软件加密密文文件一致时,***SM4加密项测试通过;
硬件解密子模块,用于通过硬件引擎对硬件加密密文文件进行解密操作,得到硬件解密明文文件;
第三判断子模块,用于判断硬件解密明文文件与目标明文文件是否一致;
解密项测试结果获得子模块,用于当确定硬件解密明文文件与目标明文文件一致时,***SM4解密项测试通过;
***加解密验证结果获得子模块,用于当***SM4加密项和***SM4解密项均测试通过时,确定***对应的SM4加密解密验证通过。
相应于上面的方法实施例,参见图5,图5为本发明所提供的***SM4加密解密验证设备的示意图,该设备可以包括:
存储器51,用于存储计算机程序;
处理器52,用于执行上述存储器51存储的计算机程序时可实现如下步骤:
当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
对于本发明提供的设备的介绍请参照上述方法实施例,本发明在此不做赘述。
相应于上面的方法实施例,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时可实现如下步骤:
当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;利用shell脚本获取目标明文文件长度的第一随机数组,得到目标明文文件;利用shell脚本获取目标秘钥长度的第二随机数组,得到目标秘钥;分别通过硬件引擎和GmSSL软件包利用目标秘钥对目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
该计算机可读存储介质可以包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不做赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置、设备及计算机可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种***SM4加密解密验证方法,其特征在于,包括:
当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;
利用shell脚本获取所述目标明文文件长度的第一随机数组,得到目标明文文件;
利用所述shell脚本获取所述目标秘钥长度的第二随机数组,得到目标秘钥;
分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
2.根据权利要求1所述的***SM4加密解密验证方法,其特征在于,获取目标明文文件长度,包括:
判断是否存在预设明文文件长度;
若是,则将所述预设明文文件长度确定为所述目标明文文件长度;
若否,则利用所述shell脚本从明文文件长度数组中随机获取第一随机长度数,将所述第一随机长度数确定为所述目标明文文件长度。
3.根据权利要求1所述的***SM4加密解密验证方法,其特征在于,获取目标秘钥长度,包括:
判断是否存在预设秘钥长度;
若是,则将所述预设秘钥长度确定为所述目标秘钥长度;
若否,则利用所述shell脚本从秘钥长度数组中随机获取第二随机长度数,将所述第二随机长度数确定为所述目标秘钥长度。
4.根据权利要求1至3任一项所述的***SM4加密解密验证方法,其特征在于,分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,包括:
获取目标SM4测试模式;
判断所述目标SM4测试模式是否为电码本模式;
若是,则分别通过所述硬件引擎和所述GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作;
若否,则获取目标初始化向量,分别通过所述硬件引擎和所述GmSSL软件包利用所述目标秘钥和所述目标初始化向量对所述目标明文文件进行加解密操作。
5.根据权利要求4所述的***SM4加密解密验证方法,其特征在于,获取目标初始化向量,包括:
获取目标向量长度;
利用所述shell脚本获取所述目标向量长度的第三随机数组,得到所述目标初始化向量。
6.根据权利要求5所述的***SM4加密解密验证方法,其特征在于,获取目标向量长度,包括:
判断是否存在预设向量长度;
若是,则将所述预设向量长度确定为所述目标向量长度;
若否,则利用所述shell脚本从向量长度数组中随机获取第三随机长度数,将所述第三随机长度数确定为所述目标向量长度。
7.根据权利要求1所述的***SM4加密解密验证方法,其特征在于,分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作,包括:
通过所述硬件引擎利用所述目标秘钥对所述目标明文文件进行加密操作,得到硬件加密密文文件;
通过所述GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加密操作,得到软件加密密文文件;
判断所述硬件加密密文文件与所述软件加密密文文件是否一致;
若是,则***SM4加密项测试通过;
通过所述硬件引擎对所述硬件加密密文文件进行解密操作,得到硬件解密明文文件;
判断所述硬件解密明文文件与所述目标明文文件是否一致;
若是,则***SM4解密项测试通过;
当所述***SM4加密项和所述***SM4解密项均测试通过时,确定所述***对应的SM4加密解密验证通过。
8.一种***SM4加密解密验证装置,其特征在于,包括:
长度获取模块,用于当接收到***SM4加密解密验证请求时,获取目标明文文件长度和目标秘钥长度;
明文文件获得模块,用于利用shell脚本获取所述目标明文文件长度的第一随机数组,得到目标明文文件;
秘钥获得模块,用于利用所述shell脚本获取所述目标秘钥长度的第二随机数组,得到目标秘钥;
加解密验证模块,用于分别通过硬件引擎和GmSSL软件包利用所述目标秘钥对所述目标明文文件进行加解密操作,以对***进行SM4加密解密验证操作。
9.一种***SM4加密解密验证设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述***SM4加密解密验证方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述***SM4加密解密验证方法的步骤。
CN202010832985.XA 2020-08-18 2020-08-18 ***sm4加密解密验证方法、装置、设备、及存储介质 Active CN111988133B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010832985.XA CN111988133B (zh) 2020-08-18 2020-08-18 ***sm4加密解密验证方法、装置、设备、及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010832985.XA CN111988133B (zh) 2020-08-18 2020-08-18 ***sm4加密解密验证方法、装置、设备、及存储介质

Publications (2)

Publication Number Publication Date
CN111988133A CN111988133A (zh) 2020-11-24
CN111988133B true CN111988133B (zh) 2023-05-16

Family

ID=73435682

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010832985.XA Active CN111988133B (zh) 2020-08-18 2020-08-18 ***sm4加密解密验证方法、装置、设备、及存储介质

Country Status (1)

Country Link
CN (1) CN111988133B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115277028B (zh) * 2022-09-27 2023-03-31 三未信安科技股份有限公司 一种国密算法芯片的验证***和方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN108959982A (zh) * 2018-07-06 2018-12-07 江苏北弓智能科技有限公司 一种基于硬件加密tf卡的移动终端文件加解密***及方法
CN109347627A (zh) * 2018-09-19 2019-02-15 平安科技(深圳)有限公司 数据加解密方法、装置、计算机设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070074027A1 (en) * 2005-09-26 2007-03-29 Tien-Chun Tung Methods of verifying, signing, encrypting, and decrypting data and file

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108632248A (zh) * 2018-03-22 2018-10-09 平安科技(深圳)有限公司 数据加密方法、数据查询方法、装置、设备及存储介质
CN108959982A (zh) * 2018-07-06 2018-12-07 江苏北弓智能科技有限公司 一种基于硬件加密tf卡的移动终端文件加解密***及方法
CN109347627A (zh) * 2018-09-19 2019-02-15 平安科技(深圳)有限公司 数据加解密方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN111988133A (zh) 2020-11-24

Similar Documents

Publication Publication Date Title
CN109728914B (zh) 数字签名验证方法、***、装置及计算机可读存储介质
CN112688784A (zh) 一种数字签名、验证方法、装置及***
CN108833361B (zh) 一种基于虚拟账号的身份认证方法及装置
CN106452770B (zh) 一种数据加密方法、解密方法、装置和***
CN105577379A (zh) 一种信息处理方法及装置
CN113114654B (zh) 一种终端设备接入安全认证方法、装置及***
CN109005184A (zh) 文件加密方法及装置、存储介质、终端
US11128455B2 (en) Data encryption method and system using device authentication key
CN108416224B (zh) 一种数据加解密方法及装置
CN116633555A (zh) 一种用于终端设备数据采集交互的方法及***
CN111988133B (zh) ***sm4加密解密验证方法、装置、设备、及存储介质
CN105825142A (zh) 用于对移动终端中文档加解密的方法和装置
CN114553557B (zh) 密钥调用方法、装置、计算机设备和存储介质
CN113672955B (zh) 一种数据处理方法、***及装置
CN114124469B (zh) 数据处理的方法、装置和设备
CN115694921A (zh) 一种数据存储方法、设备及介质
CN109255225A (zh) 基于双重身份认证的硬盘数据安全管理装置
CN112528309A (zh) 一种数据存储加密和解密的方法及其装置
FI120174B (fi) Tietojen tallentaminen laitteen yhteydessä
CN111726320B (zh) 数据处理方法、装置及设备
CN113726742B (zh) 测试认证方法、装置、电子设备及介质
CN112566124B (zh) 密钥生成及加解密方法、装置以及sim卡芯片
CN116305193B (zh) 一种加密配置文件生成方法及装置
CN115801274B (zh) 一种固件保护方法
CN111565104B (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
GR01 Patent grant
GR01 Patent grant