CN115021982A - 一种基于商密算法sm4的加解密方法、介质 - Google Patents

一种基于商密算法sm4的加解密方法、介质 Download PDF

Info

Publication number
CN115021982A
CN115021982A CN202210554794.0A CN202210554794A CN115021982A CN 115021982 A CN115021982 A CN 115021982A CN 202210554794 A CN202210554794 A CN 202210554794A CN 115021982 A CN115021982 A CN 115021982A
Authority
CN
China
Prior art keywords
data
encrypted
encryption
encryption method
decrypted
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
Application number
CN202210554794.0A
Other languages
English (en)
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.)
Shanghai Ouye Finance Information Service Co ltd
Original Assignee
Shanghai Ouye Finance Information Service 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 Shanghai Ouye Finance Information Service Co ltd filed Critical Shanghai Ouye Finance Information Service Co ltd
Priority to CN202210554794.0A priority Critical patent/CN115021982A/zh
Publication of CN115021982A publication Critical patent/CN115021982A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/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

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可以将一些敏感字段、隐私字段加密后再存入数据库中,由于数据库中所保存的只是一串加密后的无意义字符串,需要进行解密才能够获取真实内容,故即使取得了数据库的权限也无法读取加密字段的真实内容,可以保证敏感字段在数据库中不可读来起到保护数据的作用,并且结合了种子加密夹持,解决了单一加密算法易被破解的问题,起到了多重保护作用,为数据安全性提供了更高的保障。

Description

一种基于商密算法SM4的加解密方法、介质
技术领域
本发明涉及数据保护技术领域,特别是涉及一种基于商密算法SM4的加解密方法、介质。
背景技术
目前,一些敏感字段、隐私字段存入数据库后,会面临被泄露的风险。现有的方法大多都是采用国外加密算法来对敏感字段、隐私字段进行加密后,再将其存入数据库中,但没有采用国内加密算法进行加密的方法。而且,现有的方法大多都是采用单一加密算法进行加密,存在单一加密算法易被破解的问题。
发明内容
本发明的目的是提供一种基于商密算法SM4的加解密方法、介质,采用商密算法SM4和种子加密方法对隐私数据进行加密处理,解决了单一加密算法易被破解的问题。
为实现上述目的,本发明提供了如下方案:
第一方面,本发明提供一种基于商密算法SM4的加密方法,所述加密方法包括:
利用种子加密方法生成加密种子;
对所述加密种子进行16进制换算,得到商密算法SM4所需的加密种子值;
以所述加密种子值作为输入,利用所述商密算法SM4对待加密数据进行加密,得到加密后数据;
将所述加密后数据和所述加密种子值存入数据库。
第二方面,本发明提供一种基于商密算法SM4的解密方法,所述解密方法包括:
获取待解密数据和所述待解密数据加密时所用的加密种子值;所述待解密数据采用上述的加密方法加密得到;
对所述加密种子值进行16进制换算,得到商密算法SM4所需的解密种子值;
以所述解密种子值作为输入,利用所述商密算法SM4对所述待解密数据进行解密,得到解密后数据。
第三方面,本发明提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述加密方法的步骤;或实现上述解密方法的步骤。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明用于提供一种基于商密算法SM4的加解密方法、介质,使用商密算法SM4可以将一些敏感字段、隐私字段加密后再存入数据库中,由于数据库中所保存的只是一串加密后的无意义字符串,需要进行解密才能够获取真实内容,故即使取得了数据库的权限也无法读取加密字段的真实内容,可以保证敏感字段在数据库中不可读来起到保护数据的作用,并且结合了种子加密夹持,解决了单一加密算法易被破解的问题,起到了多重保护作用,为数据安全性提供了更高的保障。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例1所提供的加密方法的方法流程图;
图2为本发明实施例2所提供的解密方法的方法流程图;
图3为本发明实施例3所提供的工具类的功能示意图;
图4为本发明实施例3所提供的工具类的加密步骤示意图;
图5为本发明实施例3所提供的工具类的解密步骤示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的目的是提供一种基于商密算法SM4的加解密方法、介质,采用商密算法SM4和种子加密方法对隐私数据进行加密处理,解决了单一加密算法易被破解的问题。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
实施例1:
本实施例用于提供一种基于商密算法SM4的加密方法,如图1所示,所述加密方法包括:
S1:利用种子加密方法生成加密种子;
种子加密方法可以采用商密算法SM4,种子加密方法对随机码进行处理,以生成加密种子。
本实施例所述的加密方法包括多种版本,每一版本对应一版本号,不同的版本对应不同的规则。故在利用种子加密方法生成加密种子之前,本实施例的加密方法还包括:选择加密方法的版本号,基于种子加密方法对版本号和随机码进行处理,生成加密种子。
S2:对所述加密种子进行16进制换算,得到商密算法SM4所需的加密种子值;
商密算法SM4为ShangMi4,简称SM4。
S3:以所述加密种子值作为输入,利用所述商密算法SM4对待加密数据进行加密,得到加密后数据;
本实施例的待加密数据可为敏感字段和隐私字段等需要保护的数据,待加密数据的数据格式包括键值对、数组和单条字符串。
S4:将所述加密后数据和所述加密种子值存入数据库。
加密时所生成的加密种子值也需要保存下来,供解密时使用。
在得到加密后数据后,本实施例的加密方法还包括:根据需求选择加密后数据的数据格式,将加密后数据以所选择的数据格式存入数据库中,加密后数据的数据格式包括键值对、数组和单条字符串。
作为一种可选的实施方式,本实施例的加密方法可以同时对多个待加密数据进行处理,以对待加密数据进行批量处理,提高加密处理的效率。
因为某些场景下,有一批待加密数据会同时加密,但是在随后一些操作中可能对其中一些待加密数据进行修改,如果直接替换新的种子,可能会影响后续的查询。故本实施例提供了原种子再次加密功能,在修改了数据的同时不修改种子值,即在待加密数据发生修改后,本实施例的加密方法还包括:以加密种子值作为输入,利用商密算法SM4对修改后的待加密数据进行再次加密。由于支持再次加密,这样在使用系统查询数据时,可以用加密后的字段与之前保存的内容进行配对,保证了系统的可用性。
本实施例的加密方法使用了国人发明的商密算法SM4,可以将一些敏感字段、隐私字段加密后再存入数据库中,由于数据库中所保存的只是一串加密后的无意义字符串,需要进行解密才能够获取真实内容,故即使取得了数据库的权限也无法读取加密字段的真实内容,可以保证敏感字段在数据库中不可读来起到保护数据的作用,并且结合了种子加密夹持,解决了单一加密算法易被破解的问题,起到了多重保护作用,为数据安全性提供了更高的保障。
实施例2:
本实施例用于提供一种基于商密算法SM4的解密方法,如图2所示,所述解密方法包括:
T1:获取待解密数据和所述待解密数据加密时所用的加密种子值;所述待解密数据采用实施例1所述的加密方法加密得到;
T2:对所述加密种子值进行16进制换算,得到商密算法SM4所需的解密种子值;
T3:以所述解密种子值作为输入,利用所述商密算法SM4对所述待解密数据进行解密,得到解密后数据。
解密方法的版本号与加密方法的版本号相同。在得到解密后数据后,本实施例的解密方法还包括:根据需求选择解密后数据的数据格式,将解密后数据以所选择的数据格式输出,解密后数据的数据格式包括键值对、数组和单条字符串。
利用实施例1的加密方法将隐私字段加密保存到数据库后,可以通过本实施例的解密方法实现数据库的隐私字段查询功能,在保护了数据安全性的同时,使得可用性没有降低。
实施例3:
本实施例用于提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现实施例1所述加密方法的步骤;或实现实施例2所述解密方法的步骤。
对实施例1的加密方法和实施例2的解密方法进行编码,所得到的代码就是上述计算机程序,在本实施例中将该计算机程序简称为工具类,如图3所示,此工具类实际上就是进行加密解密的代码,用来对需加密的敏感字段进行加密,得到加密后字段,并将加密后字段存入数据库,同时还可以用来对从数据库中取出的加密后字段进行解密。
本实施例提供一种结合了商密算法SM4来保护加密字段的工具类,也是一种可以用于互联网应用的工具类。该工具类在进行加密时,需要先选择工具类版本号和提供需加密的数据,通过所选择版本的工具类进行加密,得到的加密后数据的返回格式可以根据需求选择,将加密后数据和加密种子值存入数据库中即可,加密种子值是商密算法SM4中不可或缺的一个参数,可以在后续解密中使用,所以也必须妥善保存。该工具类也提供同等的解密方法,解密过程需要提供工具类版本号,需解密的数据和加密种子值,通过之前工具类生成的加密种子值就能还原出加密之前的值,解密后数据的返回格式同样可以根据需求选择,不同于加密过程,该工具类的解密过程是存在失败异常的情况,比如版本号的错误,种子值不正确,亦或者是解密数据本身就不是该工具类加密得到的数据类型,都可能对解密过程产生影响。本实施例的解密方法只能成功解密利用上述加密方法加密后的数据,解密其他数据会出现异常报错。
如图4所示,所述工具类的加密步骤包括:
步骤1:使用者提供需要加密的敏感字段;
步骤2:使用者选择工具类的版本号;
步骤3:将上述两步骤的数据一起发送给所述工具类;
步骤4:工具类会根据版本号进行加密种子的生成,规则随着版本号会变化;
步骤5:生成的加密种子通过16进制算法转换为商密算法SM4所需要的key值(即加密种子值),该key值对使用者无感;
步骤6:上述key值和使用者提供的需要加密的数据一起进行商密算法SM4计算得到加密后数据;
步骤7:使用者根据需求选择加密后数据的返回格式;
步骤8:使用者通过所述工具类得到加密种子值和加密后数据;
步骤9:使用者将得到的加密种子值和加密后数据保存到数据库中。
如图5所示,所述工具类的解密步骤包括:
步骤1:使用者提供需要解密的字段和之前加密产生的加密种子值;
步骤2:使用者选择工具类的版本号,解密时的版本号需要与加密时选择的版本号一致,不然解密失败;
步骤3:将上述两步骤的数据一起发送给所述工具类;
步骤4:加密种子值通过16进制算法转换为商密算法SM4所需要的key值(即解密种子值),该key值对使用者无感;
步骤5:上述key值和使用者提供的需要解密的数据一起进行商密算法SM4计算得到解密后数据;
步骤6:使用者得到解密后数据。
所述工具类还对未来的升级提供了一定的兼容能力,同时还提供了多种数据格式,使用者能更加方便快捷的使用所述工具类。加密过程和解密过程的输入输出数据都支持多种数据格式,数据格式包括:键值对、数组、单条字符串。所述工具类在加密和解密的过程中不仅提供了多种返回格式的选择,也提供批量操作的可能,使得批处理的任务也不会因为所述工具类变得缓慢,效率经测试每万条在几毫秒之内完成。
本说明书中每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。

Claims (10)

1.一种基于商密算法SM4的加密方法,其特征在于,所述加密方法包括:
利用种子加密方法生成加密种子;
对所述加密种子进行16进制换算,得到商密算法SM4所需的加密种子值;
以所述加密种子值作为输入,利用所述商密算法SM4对待加密数据进行加密,得到加密后数据;
将所述加密后数据和所述加密种子值存入数据库。
2.根据权利要求1所述的加密方法,其特征在于,所述加密方法包括多种版本;在利用种子加密方法生成加密种子之前,所述加密方法还包括:选择所述加密方法的版本号。
3.根据权利要求1所述的加密方法,其特征在于,所述待加密数据的数据格式包括键值对、数组和单条字符串。
4.根据权利要求1所述的加密方法,其特征在于,在得到加密后数据后,所述加密方法还包括:根据需求选择所述加密后数据的数据格式,将所述加密后数据以所选择的数据格式存入所述数据库中;所述加密后数据的数据格式包括键值对、数组和单条字符串。
5.根据权利要求1所述的加密方法,其特征在于,所述加密方法同时对多个所述待加密数据进行处理。
6.根据权利要求1所述的加密方法,其特征在于,在所述待加密数据发生修改后,所述加密方法还包括:以所述加密种子值作为输入,利用所述商密算法SM4对修改后的待加密数据进行再次加密。
7.一种基于商密算法SM4的解密方法,其特征在于,所述解密方法包括:
获取待解密数据和所述待解密数据加密时所用的加密种子值;所述待解密数据采用权利要求1-6任一项所述的加密方法加密得到;
对所述加密种子值进行16进制换算,得到商密算法SM4所需的解密种子值;
以所述解密种子值作为输入,利用所述商密算法SM4对所述待解密数据进行解密,得到解密后数据。
8.根据权利要求7所述的解密方法,其特征在于,所述解密方法的版本号与所述加密方法的版本号相同。
9.根据权利要求7所述的解密方法,其特征在于,在得到解密后数据后,所述解密方法还包括:根据需求选择所述解密后数据的数据格式,将所述解密后数据以所选择的数据格式输出;所述解密后数据的数据格式包括键值对、数组和单条字符串。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1-6任一项所述加密方法的步骤;或实现权利要求7-9任一项所述解密方法的步骤。
CN202210554794.0A 2022-05-19 2022-05-19 一种基于商密算法sm4的加解密方法、介质 Pending CN115021982A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210554794.0A CN115021982A (zh) 2022-05-19 2022-05-19 一种基于商密算法sm4的加解密方法、介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210554794.0A CN115021982A (zh) 2022-05-19 2022-05-19 一种基于商密算法sm4的加解密方法、介质

Publications (1)

Publication Number Publication Date
CN115021982A true CN115021982A (zh) 2022-09-06

Family

ID=83069044

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210554794.0A Pending CN115021982A (zh) 2022-05-19 2022-05-19 一种基于商密算法sm4的加解密方法、介质

Country Status (1)

Country Link
CN (1) CN115021982A (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108712412A (zh) * 2018-05-15 2018-10-26 北京五八信息技术有限公司 一种数据库的加密、解密方法、装置、存储介质及终端
US20180367309A1 (en) * 2016-04-28 2018-12-20 Arnold G. Reinhold System and method for securely storing and utilizing password validation data
CN111310211A (zh) * 2020-02-19 2020-06-19 成都三零凯天通信实业有限公司 一种商密sm4算法加密数据库的方法
CN111541677A (zh) * 2020-04-17 2020-08-14 中国科学院上海微系统与信息技术研究所 一种基于窄带物联网的安全混合加密方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180367309A1 (en) * 2016-04-28 2018-12-20 Arnold G. Reinhold System and method for securely storing and utilizing password validation data
CN108712412A (zh) * 2018-05-15 2018-10-26 北京五八信息技术有限公司 一种数据库的加密、解密方法、装置、存储介质及终端
CN111310211A (zh) * 2020-02-19 2020-06-19 成都三零凯天通信实业有限公司 一种商密sm4算法加密数据库的方法
CN111541677A (zh) * 2020-04-17 2020-08-14 中国科学院上海微系统与信息技术研究所 一种基于窄带物联网的安全混合加密方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
吴震 等: "基于SM4算法的白盒密码视频数据共享系统", 北京航空航天大学学报, vol. 46, no. 9, 24 September 2020 (2020-09-24), pages 1660 - 1669 *

Similar Documents

Publication Publication Date Title
US9489521B2 (en) Format preserving encryption methods for data strings with constraints
US9158933B2 (en) Protection of encryption keys in a database
CN102163268B (zh) 在执行期间验证软件代码的完整性的方法和设备
CN106599723B (zh) 一种文件加密方法及装置、文件解密方法及装置
KR101216995B1 (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
US8874932B2 (en) Method for order invariant correlated encrypting of data and SQL queries for maintaining data privacy and securely resolving customer defects
US7681046B1 (en) System with secure cryptographic capabilities using a hardware specific digital secret
CN111010266B (zh) 消息的加解密、读写方法、装置、计算机设备和存储介质
CN111131282B (zh) 请求加密方法、装置、电子设备及存储介质
US20160013933A1 (en) Order-preserving encryption system, device, method, and program
CN103853943A (zh) 程序保护方法及装置
CN114443718A (zh) 一种数据查询方法及系统
US8462948B2 (en) System and method for protecting data of mobile phone
CN115603907A (zh) 加密存储数据的方法、装置、设备和存储介质
CN115982761A (zh) 敏感信息处理方法、装置、电子设备和存储介质
KR102096359B1 (ko) 거듭 행렬 기반의 비밀키 암호화가 가능한 데이터 전송 장치 및 그 동작 방법
CN116455572B (zh) 数据加密方法、装置及设备
CN116132065A (zh) 密钥确定方法、装置、计算机设备和存储介质
CN114116059B (zh) 多级链式解压缩结构密码机的实现方法及密码计算设备
CN115021982A (zh) 一种基于商密算法sm4的加解密方法、介质
US20240020383A1 (en) Method and circuit for protecting an electronic device from a side-channel attack
US11829512B1 (en) Protecting membership in a secure multi-party computation and/or communication
US11568070B2 (en) Secure access control processes
KR102062979B1 (ko) 암호화 장치 및 방법과, 암호화 방식의 추천 방법
CN114282244A (zh) 多云密钥管理和基于byok的数据安全管理方法

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: Room 3005, No.9, Lane 803, Shuangcheng Road, Baoshan District, Shanghai 201900

Applicant after: Shanghai Ouye Jincheng Information Service Co.,Ltd.

Address before: Room 3005, No.9, Lane 803, Shuangcheng Road, Baoshan District, Shanghai 201900

Applicant before: SHANGHAI OUYE FINANCE INFORMATION SERVICE Co.,Ltd.