一种加密方法、计算机设备和计算机存储介质技术

技术编号:21606408 阅读:24 留言:0更新日期:2019-07-13 18:31
本发明专利技术提供一种加密方法、计算机设备和计算机存储介质,方法包括以下步骤:获取第一字符串、第二字符串和随机字符串;对第一字符串和随机字符串进行加密生成第一数据;将对称分组加密算法拆分为四个算法模块,并根据四个算法模块将第二字符串和随机字符串组合为四个密钥模块,其中,四个密钥模块与四个算法模块一一对应;获取明文数据,利用四个密钥模块与四个算法模块对明文数据进行分块加密并生成第二数据;第一数据和第二数据拼接后取哈希值;将第一数据、第二数据和哈希值进行拼接并加密后生成第三数据;对第三数据进行编码得到密文数据。通过将密钥与算法进行深度融合,确保解密功能分布式的在加固应用程序内部执行,提高加密可靠性。

An Encryption Method, Computer Equipment and Computer Storage Media

【技术实现步骤摘要】
一种加密方法、计算机设备和计算机存储介质
本专利技术涉及数据加密
,具体涉及一种加密方法、计算机设备和计算机存储介质。
技术介绍
密钥,是安全加密机制中最重要的元素。许多著名加密算法中都用到了密钥,通过密钥和加密算法用来保护业务系统中的代码、通讯安全、系统参数、协议等等各种重要的核心资产。密钥的作用是控制各种加密安全机制的有效性,一旦密钥被破解,密文和其他的重要代码也面临风险,安全加密功能可能失去效果和作用。传统密码学原语的安全性基于黑盒攻击模型,在这个模型中,攻击者只能对密码学原语进行黑盒访问(即“随机预言”访问),而对程序运行时的内部状态一无所知。理论上来讲,不考虑现实生活中程序运行时各种类型的信息泄露的话,这样的假设是合理的。但实际上,一旦我们在终端运行程序时,总会发生各种信息的泄露,造成更强的攻击。白盒攻击即是这样的一种攻击,它有别于传统密码模型中定义的攻击类型,它假设攻击者对设备终端(即应用程序的运行环境)拥有完全的控制能力,能够观测并更改软件运行时的所有内部数据,攻击者具有更强的攻击能力。因此,传统黑盒模型下安全的密码学原语在白盒攻击模型下极度的脆弱,我们需要更高强度的密码体制来抵抗这种攻击。
技术实现思路
本专利技术目的在于提供一种加密方法、计算机设备和计算机存储介质,以增大破解难度和提高加密可靠性。为了实现本专利技术目的,根据第一方面,本专利技术实施例提供一种加密方法,所述方法包括如下步骤:获取第一字符串、第二字符串和随机字符串;对所述第一字符串和所述随机字符串进行加密生成第一数据;将对称分组加密算法(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进行编码得到密文数据。具体而言,本专利技术实施例一所述加密方法将密钥与加密算法进行结合,使用过程中密钥不本文档来自技高网...

【技术保护点】
1.一种加密方法,其特征在于,包括以下步骤:获取第一字符串、第二字符串和随机字符串;对所述第一字符串和所述随机字符串进行加密生成第一数据;将对称分组加密算法(SM4加密算法)拆分为四个算法模块,并根据所述四个算法模块将所述第二字符串和所述随机字符串组合为四个密钥模块,其中,所述四个密钥模块与所述四个算法模块一一对应;获取明文数据,利用所述四个密钥模块与所述四个算法模块对所述明文数据进行分块加密并生成第二数据;所述第一数据和所述第二数据拼接后取哈希值;将所述第二数据、所述第一数据和所述哈希值依序进行拼接并加密后生成第三数据;对所述第三数据进行编码得到密文数据。

【技术特征摘要】
1.一种加密方法,其特征在于,包括以下步骤:获取第一字符串、第二字符串和随机字符串;对所述第一字符串和所述随机字符串进行加密生成第一数据;将对称分组加密算法(SM4加密算法)拆分为四个算法模块,并根据所述四个算法模块将所述第二字符串和所述随机字符串组合为四个密钥模块,其中,所述四个密钥模块与所述四个算法模块一一对应;获取明文数据,利用所述四个密钥模块与所述四个算法模块对所述明文数据进行分块加密并生成第二数据;所述第一数据和所述第二数据拼接后取哈希值;将所述第二数据、所述第一数据和所述哈希值依序进行拼接并加密后生成第三数据;对所述第三数据进行编码得到密文数据。2.根据权利要求1所述的加密方法,其特征在于,所述获取第一字符串包括:提供第一数组,根据所述第一数组和预设规则确定第一数组对应的第一字符串。3.根据权利要求2所述的加密方法,其特征在于,所述获取随机字符串包括:获取当前系统时间,根据所述当前系统时间确定随机字符串。4.根据权利要求3所述的加密方法,其特征在于,所述获取第二字符串包括:提供第二数组,根据所述第二数组和预设规则确定第二数组对应的第二字符串。5.根据权利要求...

【专利技术属性】
技术研发人员:孙强强连耿雄
申请(专利权)人:深圳供电局有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1