CN110008745B - 一种加密方法、计算机设备和计算机存储介质 - Google Patents
一种加密方法、计算机设备和计算机存储介质 Download PDFInfo
- Publication number
- CN110008745B CN110008745B CN201910249570.7A CN201910249570A CN110008745B CN 110008745 B CN110008745 B CN 110008745B CN 201910249570 A CN201910249570 A CN 201910249570A CN 110008745 B CN110008745 B CN 110008745B
- Authority
- CN
- China
- Prior art keywords
- data
- character string
- algorithm
- encryption
- keys
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 34
- 238000004590 computer program Methods 0.000 claims description 6
- 230000004927 fusion Effects 0.000 abstract description 2
- 238000005728 strengthening Methods 0.000 abstract description 2
- 230000008569 process Effects 0.000 description 8
- 238000005336 cracking Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000007499 fusion processing Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
Abstract
本发明提供一种加密方法、计算机设备和计算机存储介质,方法包括以下步骤:获取第一字符串、第二字符串和随机字符串;对第一字符串和随机字符串进行加密生成第一数据;将对称分组加密算法拆分为四个算法模块,并根据四个算法模块将第二字符串和随机字符串组合为四个密钥,其中,四个密钥与四个算法模块一一对应;获取明文数据,利用四个密钥与四个算法模块对明文数据进行分块加密并生成第二数据;第一数据和第二数据拼接后取哈希值;将第一数据、第二数据和哈希值进行拼接并加密后生成第三数据;对第三数据进行编码得到密文数据。通过将密钥与算法进行深度融合,确保解密功能分布式的在加固应用程序内部执行,提高加密可靠性。
Description
技术领域
本发明涉及数据加密技术领域,具体涉及一种加密方法、计算机设备和计算机存储介质。
背景技术
密钥,是安全加密机制中最重要的元素。许多著名加密算法中都用到了密钥,通过密钥和加密算法用来保护业务系统中的代码、通讯安全、系统参数、协议等等各种重要的核心资产。密钥的作用是控制各种加密安全机制的有效性,一旦密钥被破解,密文和其他的重要代码也面临风险,安全加密功能可能失去效果和作用。
传统密码学原语的安全性基于黑盒攻击模型,在这个模型中,攻击者只能对密码学原语进行黑盒访问(即“随机预言”访问),而对程序运行时的内部状态一无所知。理论上来讲,不考虑现实生活中程序运行时各种类型的信息泄露的话,这样的假设是合理的。但实际上,一旦我们在终端运行程序时,总会发生各种信息的泄露,造成更强的攻击。白盒攻击即是这样的一种攻击,它有别于传统密码模型中定义的攻击类型,它假设攻击者对设备终端(即应用程序的运行环境)拥有完全的控制能力,能够观测并更改软件运行时的所有内部数据,攻击者具有更强的攻击能力。因此,传统黑盒模型下安全的密码学原语在白盒攻击模型下极度的脆弱,我们需要更高强度的密码体制来抵抗这种攻击。
发明内容
本发明目的在于提供一种加密方法、计算机设备和计算机存储介质,以增大破解难度和提高加密可靠性。
为了实现本发明目的,根据第一方面,本发明实施例提供一种加密方法,所述方法包括如下步骤:
获取第一字符串、第二字符串和随机字符串;
对所述第一字符串和所述随机字符串进行加密生成第一数据;
将对称分组加密算法(SM4加密算法)拆分为四个算法模块,并根据所述四个算法模块将所述第二字符串和所述随机字符串组合为四个密钥,其中,所述四个密钥与所述四个算法模块一一对应;
获取明文数据,利用所述四个密钥与所述四个算法模块对所述明文数据进行分块加密并生成第二数据;
所述第一数据和所述第二数据拼接后取哈希值;
将所述第二数据、所述第一数据和所述哈希值依序进行拼接并加密后生成第三数据;
对所述第三数据进行编码得到密文数据。
优选地,所述获取第一字符串包括:提供第一数组,根据所述第一数组和预设规则确定第一数组对应的第一字符串。
优选地,所述获取随机字符串包括:获取当前系统时间,根据所述当前系统时间确定随机字符串。
优选地,所述获取第二字符串包括:提供第二数组,根据所述第二数组和预设规则确定第二数组对应的第二字符串。
优选地,所述根据所述四个算法模块将所述第二字符串和所述随机字符串组合为四个密钥包括:
根据所述四个算法模块将所述第二字符串和所述随机字符串组合为16字节密钥;
将所述16字节密钥按4字节为单位依序划分得到所述四个密钥。
优选地,所述利用所述四个密钥与所述四个算法模块对所述明文数据进行分块加密并生成第二数据包括:
对所述明文数据进行16字节分组得到多个16字节长度的数据块;
利用所述四个密钥与所述四个算法模块分别对所述多个16字节长度的数据块进行加密得到所述第二数据。
优选地,所述对所述第三数据进行编码得到密文数据包括采用Base64编码方式对所述第三数据进行编码得到密文数据。
为了实现本发明目的,根据第二方面,本发明实施例提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现如第一方面实施例所述的加密方法。
为了实现本发明目的,根据第三方面,本发明实施例提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,以实现如第一方面实施例所述的加密方法。
本发明实施例具有以下有益效果:
本发明实施例通过将密钥与算法进行深度融合,四个密钥根据计算出来最终的算法密钥(16字节)按照顺序以4个字节为单位进行分块,对称分组加密算法在加密原始数据的时候,不再调用配置密钥的接口,而是直接把这几块密钥数据和算法写在一起,进行加密操作,这样就保证了算法和密钥是不可区分的,并且是分块的,从而确保解密功能分布式的在加固应用程序内部执行,密钥不会在内存中出现,所以不能被提取使——即便是动态的,从而增大破解难度和提高加密可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例一所述加密方法流程图。
具体实施方式
以下将参考附图详细说明本公开的各种示例性实施例、特征和方面。附图中相同的附图标记表示功能相同或相似的元件。尽管在附图中示出了实施例的各种方面,但是除非特别指出,不必按比例绘制附图。另外,为了更好的说明本发明,在下文的具体实施例中给出了众多的具体细节。本领域技术人员应当理解,没有某些具体细节,本发明同样可以实施。在一些实例中,对于本领域技术人员熟知的手段、元件和电路未作详细描述,以便于凸显本发明的主旨。
如图1所示,本发明实施例一提供一种基于透明加密技术的加密方法,包括以下步骤:
获取第一字符串A、随机字符串B和第二字符串C;
采用预设加密算法对所述第一字符串A和所述随机字符串B进行加密生成第一数据块E;
将对称分组加密算法(SM4加密算法)拆分为四个算法模块,并根据所述四个算法模块将所述第二字符串C和所述随机字符串B组合为四个密钥,其中,所述四个密钥与所述四个算法模块一一对应;
获取明文数据,利用所述四个密钥与所述四个算法模块对所述明文数据进行分块加密并生成第二数据D;
通过预设哈希算法所述第二数据和所述第一数据依序拼接后得到的数据进行处理得到其哈希值F,用于校验数据是否被篡改;
将所述第二数据D、所述第一数据E和所述哈希值F依序进行拼接并采用预设加密算法进行加密后生成第三数据G;本实施例中优选但不限于异或加密算法。
对所述第三数据G进行编码得到密文数据。
在本实施例中,所述获取第一字符串A包括:提供第一数组,根据所述第一数组和预设规则确定第一数组对应的第一字符串A,用于后面要使用的密钥,用于加密后面的随机字符串B。
在本实施例中,所述获取随机字符串B包括:获取当前系统时间,根据所述当前系统时间确定随机字符串B。
在本实施例中,所述获取第二字符串C包括:提供第二数组,根据所述第二数组和预设规则确定第二数组对应的第二字符串C。
在本实施例中,所述根据所述四个算法模块将所述第二字符串C和所述随机字符串B组合为四个密钥包括:
根据所述四个算法模块将所述第二字符串C和所述随机字符串B组合为16字节密钥;
将所述16字节密钥按4字节为单位依序划分得到所述四个密钥,每一密钥长度为4字节。
在本实施例中,所述利用所述四个密钥与所述四个算法模块对所述明文数据进行分块加密并生成第二数据D包括:
对所述明文数据进行16字节分组得到多个16字节长度的数据块;
利用所述四个密钥与所述四个算法模块分别对所述多个16字节长度的数据块进行加密得到所述第二数据D。
在本实施例中,所述对所述第三数据G进行编码得到密文数据包括采用Base64编码方式对所述第三数据G进行编码得到密文数据。
具体而言,本发明实施例一所述加密方法将密钥与加密算法进行结合,使用过程中密钥不进行重现,可以用于不安全的环境下加密。本实施例中所述透明加密就是将加密算法和其密钥进行了整体融合性的高强度保护,不但加密强度更强,而且以相对更安全的方式保护了自己的密钥;支持一次一密,可用于程序内部数据、本地数据/文件的保护以及通信数据的保护,安全强度更高。
其中,本实施例依据可重构计算的数学原理将密码法与用户钥有机融合,利用用户密钥对原本共同的算法进行重构,使得密钥融合到自己的算法中,在执行加解密过程中,密钥不会进行重组和明文化。这种密码体制改变了以往的算法及密钥使用模式,密钥不在作为加解密的核心内容,而变成整个算法体系为核心内容的模式,在面对破解的过程中由点对象变成了面对象,破解难度极大的增加。
并且,本实施例方法的透明加密化过程中,将密钥通过转化表的方式融入算法中,并且在整个融入过程中插入了扰乱码等技术来增强透明化保护强度。通过密钥生成透明密钥库的过程中可选择生成只有加密、解密接口的库,也可生成具有加密与解密接口的库。
更具体地,本实施例方法的透明加密在加解密过程中,不再使用算法依赖密钥的方式完成加解密,而是在算法运行过程中完成加解密操作,因为密钥已经被融合进算法中,在加解密过程中算法不在重现。技术生成的透明加解密算法可以实现高强度、高效率的加解密运算,在存储、运算过程中不暴露密钥信息,内存及本地无密钥残留数据。有效抵抗静态分析和动态分析,静态篡改和动态篡改。
本发明实施例还二提供一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现如实施例一所述的加密方法。
需要说明的是,前述对实施例一方法的解释说明也适用于实施例二的计算机设备,其实现原理类似,此处不再赘述。
本发明实施例还三提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时,以实现如实施例一所述的加密方法。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本实施例中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本实施例披露的各实施例。
Claims (4)
1.一种加密方法,其特征在于,包括以下步骤:
获取第一字符串、第二字符串和随机字符串,包括:提供第一数组,根据所述第一数组和预设规则确定第一数组对应的第一字符串;提供第二数组,根据所述第二数组和预设规则确定第二数组对应的第二字符串;获取当前系统时间,根据所述当前系统时间确定随机字符串;
对所述第一字符串和所述随机字符串进行加密生成第一数据;
将对称分组加密算法拆分为四个算法模块,并根据所述四个算法模块将所述第二字符串和所述随机字符串组合为四个密钥,包括:根据所述四个算法模块将所述第二字符串和所述随机字符串组合为16字节密钥;将所述16字节密钥按4字节为单位依序划分得到所述四个密钥;其中,所述四个密钥与所述四个算法模块一一对应;
获取明文数据,利用所述四个密钥与所述四个算法模块对所述明文数据进行分块加密并生成第二数据,包括:对所述明文数据进行16字节分组得到多个16字节长度的数据块;利用所述四个密钥与所述四个算法模块分别对所述多个16字节长度的数据块进行加密得到所述第二数据;
所述第一数据和所述第二数据拼接后取哈希值;
将所述第二数据、所述第一数据和所述哈希值依序进行拼接并加密后生成第三数据;
对所述第三数据进行编码得到密文数据。
2.根据权利要求1所述的加密方法,其特征在于,所述对所述第三数据进行编码得到密文数据包括采用Base64编码方式对所述第三数据进行编码得到密文数据。
3.一种计算机设备,其特征在于,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时,以实现如权利要求1或2所述的加密方法。
4.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时,以实现如权利要求1或2所述的加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249570.7A CN110008745B (zh) | 2019-03-29 | 2019-03-29 | 一种加密方法、计算机设备和计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910249570.7A CN110008745B (zh) | 2019-03-29 | 2019-03-29 | 一种加密方法、计算机设备和计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110008745A CN110008745A (zh) | 2019-07-12 |
CN110008745B true CN110008745B (zh) | 2024-01-16 |
Family
ID=67168920
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910249570.7A Active CN110008745B (zh) | 2019-03-29 | 2019-03-29 | 一种加密方法、计算机设备和计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110008745B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110990848A (zh) * | 2019-11-18 | 2020-04-10 | 上海易点时空网络有限公司 | 基于hive数据仓库的敏感字加密方法及装置、存储介质 |
CN111371563A (zh) * | 2020-02-28 | 2020-07-03 | 北京达佳互联信息技术有限公司 | 口令验证方法、装置、电子设备及存储介质 |
CN111859424B (zh) * | 2020-07-17 | 2022-07-08 | 苏州浪潮智能科技有限公司 | 物理管理平台的数据加密方法、系统、终端及存储介质 |
CN112347498B (zh) * | 2020-12-01 | 2022-10-28 | 南阳理工学院 | 一种加密方法、装置、电子设备及可读存储介质 |
CN113452705B (zh) * | 2021-06-28 | 2023-02-21 | 长春吉大正元信息技术股份有限公司 | 一种加密通信方法、装置、电子设备和存储介质 |
CN115604012A (zh) * | 2022-10-20 | 2023-01-13 | 浪潮云信息技术股份公司(Cn) | 一种政务云场景下实现重要数据完整存储的方法及系统 |
CN116015766B (zh) * | 2022-12-09 | 2023-06-27 | 淮阴师范学院 | 计算机的数据安全传输系统 |
CN116484407B (zh) * | 2023-04-23 | 2024-03-22 | 深圳市天下房仓科技有限公司 | 一种数据安全保护方法、装置、电子设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086490A1 (zh) * | 2014-12-01 | 2016-06-09 | 公安部第三研究所 | 基于密钥分散运算实现网络电子身份标识信息保护的方法 |
CN107948152A (zh) * | 2017-11-23 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 信息存储方法、获取方法、装置及设备 |
CN107943450A (zh) * | 2017-11-17 | 2018-04-20 | 上海众人网络安全技术有限公司 | 随机数生成方法、装置、计算机设备及计算机可读介质 |
CN107948155A (zh) * | 2017-11-24 | 2018-04-20 | 重庆金融资产交易所有限责任公司 | 密码校验方法、装置、计算机设备和计算机可读存储介质 |
-
2019
- 2019-03-29 CN CN201910249570.7A patent/CN110008745B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016086490A1 (zh) * | 2014-12-01 | 2016-06-09 | 公安部第三研究所 | 基于密钥分散运算实现网络电子身份标识信息保护的方法 |
CN107943450A (zh) * | 2017-11-17 | 2018-04-20 | 上海众人网络安全技术有限公司 | 随机数生成方法、装置、计算机设备及计算机可读介质 |
CN107948152A (zh) * | 2017-11-23 | 2018-04-20 | 腾讯科技(深圳)有限公司 | 信息存储方法、获取方法、装置及设备 |
CN107948155A (zh) * | 2017-11-24 | 2018-04-20 | 重庆金融资产交易所有限责任公司 | 密码校验方法、装置、计算机设备和计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
8位平台SMS4密码算法实时加解密实现;张建华;刘宏伟;;微计算机信息(第18期);第33页-34页 * |
Also Published As
Publication number | Publication date |
---|---|
CN110008745A (zh) | 2019-07-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110008745B (zh) | 一种加密方法、计算机设备和计算机存储介质 | |
CN105450620B (zh) | 一种信息处理方法及装置 | |
EP2158718B1 (en) | System and method for defining programmable processing steps applied when protecting the data | |
CN102138300B (zh) | 消息认证码预计算在安全存储器中的应用 | |
US10797868B2 (en) | Shared secret establishment | |
Hao et al. | Deleting secret data with public verifiability | |
CN105024803B (zh) | 白箱实现中的行为指纹 | |
US20100115260A1 (en) | Universal secure token for obfuscation and tamper resistance | |
CN109661792B (zh) | 计算分组密码的设备和方法 | |
CN104469767A (zh) | 一套移动办公系统中集成式安全防护子系统的实现方法 | |
KR102397579B1 (ko) | 부채널 분석 방지를 위한 화이트박스 암호 방법 및 장치 | |
CN105468940B (zh) | 软件保护方法及装置 | |
CN109462477B (zh) | 基于物联网嵌入式设备的白盒加密方法 | |
CN113722683B (zh) | 模型保护方法、装置、设备、系统以及存储介质 | |
KR20060018852A (ko) | 랜덤 함수를 사용하는 실행의 증명 | |
CN102904712A (zh) | 信息加密方法 | |
CN108718233B (zh) | 一种加密方法、计算机设备及存储介质 | |
US20230254122A1 (en) | Secret material exchange and authentication cryptography operations | |
US20150256343A1 (en) | Securely Generating and Storing Passwords in a Computer System | |
CN113010856A (zh) | 一种动态非对称加解密的JavaScript代码混淆方法与系统 | |
CN109274644A (zh) | 一种数据处理方法、终端和水印服务器 | |
KR20130093557A (ko) | 적어도 하나의 암호화 명령어를 포함하는 소프트웨어 애플리케이션의 협력 실행을 위한 시스템, 장치, 및 방법 | |
KR20130020861A (ko) | 자가암호화를 이용한 소프트웨어 변조방지 방법 | |
CN117240625B (zh) | 一种涉及防篡改的数据处理方法、装置及电子设备 | |
Jagdale et al. | Securing MMS with high performance elliptic curve cryptography |
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 |