一种重要数据存储加密方法及系统技术方案

技术编号:35774764 阅读:17 留言:0更新日期:2022-12-01 14:18
本发明专利技术涉及加密改造技术领域,具体提供了一种重要数据存储加密方法,具有如下步骤:S1、对接具有相关认证资质的服务器密码机厂商,对数据库中重要数据进行SM4加密,形成密文;S2、用户正常登陆后,服务端从所述数据库查询出重要数据的密文,进行SM4解密,得到明文返回客户端;S3、当用户对重要数据进行增加或更新操作时,服务端先将用户输入的明文进行SM4加密,将重要数据的密文存储入库。与现有技术相比,本发明专利技术摆脱了对国外密码技术的依赖,更加符合政府对政务云提出的系统商用密码应用安全性评估的要求。估的要求。估的要求。

【技术实现步骤摘要】
一种重要数据存储加密方法及系统


[0001]本专利技术涉及加密改造
,具体提供一种重要数据存储加密方法及系统。

技术介绍

[0002]伴随着社会电子信息化、云计算技术的快速发展,很多地方的政府部门也实施了上云计划,构建本地的政务云平台,从而将自己的业务部署上云,所以,政务云平台自身的稳定运行和安全防护也就尤为重要。对于政务云平台中的业务支撑系统,其内部存储了包括账号密码、客户信息、商业机密等重要数据,对这些重要数据进行加密存储可以进行有效的保护,即使有人用非法手段拿到了这些数据,拿到的也是加密后的密文,不用担心客户隐私、商业机密的泄漏。
[0003]为了确保系统的重要数据的安全性,保护系统内部的客户隐私、商品信息等数据不会被非法窃取,并摆脱对国外密码技术的依赖,使用国家密码对数据进行加密和解密,实现系统内重要数据的存储机密性至关重要。

技术实现思路

[0004]本专利技术是针对上述现有技术的不足,提供一种实用性强的重要数据存储加密方法。
[0005]本专利技术进一步的技术任务是提供一种设计合理,安全适用的重要数据存储加密系统。
[0006]本专利技术解决其技术问题所采用的技术方案是:
[0007]一种重要数据存储加密方法,具有如下步骤:
[0008]S1、对接具有相关认证资质的服务器密码机厂商,对数据库中重要数据进行SM4加密,形成密文;
[0009]S2、用户正常登陆后,服务端从所述数据库查询出重要数据的密文,进行SM4解密,得到明文返回客户端;
[0010]S3、当用户对重要数据进行增加或更新操作时,服务端先将用户输入的明文进行SM4加密,将重要数据的密文存储入库。
[0011]进一步的,所述SM4加密明文字符串时,先将字符串转换为字节数组格式,同时确定密钥、分组模式和填充模式,对字节数组进行SM4加密运算,得到加密后的字节数组,对密文字节数组进行Base64加密,再转换成字符串格式,即可得到密文字符串。
[0012]进一步的,SM4解密密文字符串时,先把字符串转换为字节数组并进行Base64解密,保证密钥、分组模式、填充模式跟加密时的保持一致,然后进行SM4解密运算,得到解密后的字节数组,将该字节数组直接转换成字符串,即可得到明文字符串。
[0013]进一步的,具体的加解密算法为:
[0014]输入的明文为128bit数据,将其按位拆分为4个32bit的数据X0,X1,X2,X3;定义i=0,将X
i+1
,X
i+2
,X
i+3
和轮密钥K
i+4
做异或运算,得到一个32bit的数据,把该数据拆分成4个
8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成一个32bit的数据,记为y;
[0015]将y分别循环左移2,10,18,24位,得到4个32bit的左移结果,再加上y和X
i
,这6个32bit数据做异或运算,得到X
i+4
,至此完成了一轮的加解密运算;
[0016]使用32个不同的轮密钥,完成32轮运算后,将最后得到的4个32bit数据X
35
,X
34
,X
33
,X
32
合并成一个128bit的数据,最后输出即可。
[0017]进一步的,轮密钥K
i+4
做异或运算时,具体方法如下:
[0018]输入128bit的原始密钥,将按位拆分为4个32bit的数据,分别与固定系统参数FK0,FK1,FK2,FK3进行异或运算,得到用于循环的密钥K0,K1,K2,K3;定义i=0,将K1,K2,K3和固定参数CK
i
做异或运算,得到一个32bit的数据,把数据拆分成4个8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成一个32bit的数据,记为y;
[0019]将y分别循环左移13位,23位,得到2个32bit的左移结果,再加上y和K
i
,这4个32bit数据做异或运算,得到K
i+4
,至此完成了一轮的运算,K
i+4
即为用于加解密算法的密钥;
[0020]使用32个不同的固定参数CK
i
完成32轮运算,便可获得32个用于加解密的密钥。
[0021]一种重要数据存储加密系统,对接具有相关认证资质的服务器密码机厂商,对数据库中重要数据进行SM4加密,形成密文;用户正常登陆后,服务端从所述数据库查询出重要数据的密文,进行SM4解密,得到明文返回客户端;当用户对重要数据进行增加或更新操作时,服务端先将用户输入的明文进行SM4加密,将重要数据的密文存储入库。
[0022]进一步的,所述SM4加密明文字符串时,先将字符串转换为字节数组格式,同时确定密钥、分组模式和填充模式,对字节数组进行SM4加密运算,得到加密后的字节数组,对密文字节数组进行Base64加密,再转换成字符串格式,即可得到密文字符串。
[0023]进一步的,SM4解密密文字符串时,先把字符串转换为字节数组并进行Base64解密,保证密钥、分组模式、填充模式跟加密时的保持一致,然后进行SM4解密运算,得到解密后的字节数组,将该字节数组直接转换成字符串,即可得到明文字符串。
[0024]进一步的,具体的加解密算法为:
[0025]输入的明文为128bit数据,将其按位拆分为4个32bit的数据X0,X1,X2,X3;定义i=0,将X
i+1
,X
i+2
,X
i+3
和轮密钥K
i+4
做异或运算,得到一个32bit的数据,把该数据拆分成4个8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成一个32bit的数据,记为y;
[0026]将y分别循环左移2,10,18,24位,得到4个32bit的左移结果,再加上y和X
i
,这6个32bit数据做异或运算,得到X
i+4
,至此完成了一轮的加解密运算;
[0027]使用32个不同的轮密钥,完成32轮运算后,将最后得到的4个32bit数据X
35
,X
34
,X
33
,X
32
合并成一个128bit的数据,最后输出即可。
[0028]进一步的,轮密钥K
i+4
做异或运算时,具体方法如下:
[0029]输入128bit的原始密钥,将按位拆分为4个32bit的数据,分别与固定系统参数FK0,FK1,FK2,FK3进行异或运算,得到用于循环的密钥K0,K1,K2,K3;定义i=0,将K1,K2,K3和固定参数CK
i
做异或运算,得到一个32bit的数据,把数据拆分成4个8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种重要数据存储加密方法,其特征在于,具有如下步骤:S1、对接具有相关认证资质的服务器密码机厂商,对数据库中重要数据进行SM4加密,形成密文;S2、用户正常登陆后,服务端从所述数据库查询出重要数据的密文,进行SM4解密,得到明文返回客户端;S3、当用户对重要数据进行增加或更新操作时,服务端先将用户输入的明文进行SM4加密,将重要数据的密文存储入库。2.根据权利要求1所述的一种重要数据存储加密方法,其特征在于,所述SM4加密明文字符串时,先将字符串转换为字节数组格式,同时确定密钥、分组模式和填充模式,对字节数组进行SM4加密运算,得到加密后的字节数组,对密文字节数组进行Base64加密,再转换成字符串格式,即可得到密文字符串。3.根据权利要求2所述的一种重要数据存储加密方法,其特征在于,SM4解密密文字符串时,先把字符串转换为字节数组并进行Base64解密,保证密钥、分组模式、填充模式跟加密时的保持一致,然后进行SM4解密运算,得到解密后的字节数组,将该字节数组直接转换成字符串,即可得到明文字符串。4.根据权利要求3所述的一种重要数据存储加密方法,其特征在于,具体的加解密算法为:输入的明文为128bit数据,将其按位拆分为4个32bit的数据X0,X1,X2,X3;定义i=0,将X
i+1
,X
i+2
,X
i+3
和轮密钥K
i+4
做异或运算,得到一个32bit的数据,把该数据拆分成4个8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成一个32bit的数据,记为y;将y分别循环左移2,10,18,24位,得到4个32bit的左移结果,再加上y和X
i
,这6个32bit数据做异或运算,得到X
i+4
,至此完成了一轮的加解密运算;使用32个不同的轮密钥,完成32轮运算后,将最后得到的4个32bit数据X
35
,X
34
,X
33
,X
32
合并成一个128bit的数据,最后输出即可。5.根据权利要求3所述的一种重要数据存储加密方法,其特征在于,轮密钥K
i+4
做异或运算时,具体方法如下:输入128bit的原始密钥,将按位拆分为4个32bit的数据,分别与固定系统参数FK0,FK1,FK2,FK3进行异或运算,得到用于循环的密钥K0,K1,K2,K3;定义i=0,将K1,K2,K3和固定参数CK
i
做异或运算,得到一个32bit的数据,把数据拆分成4个8bit数据分别进行盒变换,再将4个8bit盒变换结果合并成一个32bit的数据,记为y;将y分别循环左移13位,23位,得到2个32bit的左移结果,再加上y和K
i
,这4个32bit数据做异或运算,得到K
i+4
,至此完成了一轮的运算,K
i+4
即为用于加解密算法的密钥;使用32个不同的固定参数CK
i
完成32轮运算,便可获得32个用于加解密的密钥...

【专利技术属性】
技术研发人员:张明
申请(专利权)人:浪潮云信息技术股份公司
类型:发明
国别省市:

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

1