CN108055127A - 计算与数据分离支持热更新加密算法和密钥数据加密方法 - Google Patents
计算与数据分离支持热更新加密算法和密钥数据加密方法 Download PDFInfo
- Publication number
- CN108055127A CN108055127A CN201711337142.7A CN201711337142A CN108055127A CN 108055127 A CN108055127 A CN 108055127A CN 201711337142 A CN201711337142 A CN 201711337142A CN 108055127 A CN108055127 A CN 108055127A
- Authority
- CN
- China
- Prior art keywords
- encryption
- ciphertext
- key
- data
- algorithm
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0891—Revocation or update of secret information, e.g. encryption key update or rekeying
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
本发明提供一种计算与数据分离支持热更新加密算法和密钥数据加密方法。所述计算与数据分离支持热更新加密算法,首先把加密的运算抽象出来,组成一个统一的服务;再按工作密钥的加密、工作密钥的升级、加密和解密实现。所述密钥数据加密方法包括加密数据服务和加密升级两部分。有益的技术效果:本发明的计算和数据分离,增强了数据安全性;本发明的升级加密算法或更改密钥对调用方透明,无须调用方更改;本发明的工作密钥双重不同方式加密,降低密钥泄露风险。
Description
技术领域
本发明属于数据保密、安防技术领域,具体涉及一种计算与数据分离支持热更新加密算法和密钥数据加密方法。
背景技术
现在数据安全、客户隐私越来越重要。为了预防拖库发生后,和可能的人为造成的数据泄露,对敏感隐私数据采取加密存储就很重要。一般加密方法有对称加密和非对称加密,一般开发中,会在各自程序里实现一套加密解密方法。但是现在微服务流行,仅我们部门就有几十个微服务,并且仍然保持一定的增势。对于有些服务可能共用着一些敏感数据,有些服务又共用着一套相同的加密方法。若是各自实现一套加解密方法,不便于服务的管理,升级等。此外,现有数据保密技术存在如下的技术难点:
1.大部分的加密方案无法支持加密算法或密钥的更新,或更新的成本非常大。
2.已有的大部分加密方案计算和存储并未分离,加密数据的安全性仍有较大隐患。
3.工作密钥单层保护,易泄露,并对主密钥的安全要求很高
综上所述,为了现有技术的不足,需要一个共用的加密服务。
发明内容
本发明的目的是提供一种计算与数据分离支持热更新加密算法和密钥数据加密方法。其具体的实现方法如下:
计算与数据分离支持热更新加密算法,其特征在于,首先把加密的运算抽象出来,组成一个统一的服务;再按如下步骤进行:
步骤1.工作密钥的加密;采用双重加密的方式加密工作密钥:
第一层/第一重:利用密钥结构先打乱工作密钥原有的结构,重新得到打乱后的工作密钥;
第二层/第二重:由主密钥加密第一层得到的打乱后的工作密钥;
步骤2.工作密钥的升级;工作密钥仅通过增加的方式升级;换言之,工作密钥不能更改,也不能删除;基于工作密钥只能增加,不能修改和删除,业务随时拿着旧数据或者新数据均可解密成功。
步骤3.加密;
3.1根据对应的加密算法得到原密文;
3.2组合新的密文,该密文结构为:加密算法id长度+加密算法id长度+原密文长度+原密文;
3.3用3BASE64加密新的密文结构,得到最后的密文。
步骤4.解密;
4.1先解开密文结构,得到算法id和真实的密文;
4.2再按照算法id找到对应的算法类型,加密后的算法密钥;
4.3之后,利用密钥结构和主密钥解开被加密的算法密钥,得到真实的算法密钥;
4.4最后,再解密文。这样即便有旧数据请求解密时,也能解开。
进一步说,在步骤一中,密钥结构是一种加密算法,一种随机打乱,一种***常量或变量的方式。
进一步说,密钥结构存储在数据库,主密钥存储在配置里;换言之,主密钥和密钥结构单独分开存储。优选的方案是,主密钥存储在配置里并由关键人物保密存储在其它安全的地方。这样,无论密钥结构或者主密钥单独泄露,都不能解密数据。而,也降低了两者都泄露的风险。
进一步说,加密算法id为1位16进制;加密算法id为16进制,且长度可变;原密文长度为4位16进制。
进一步说,包括加密数据服务和加密升级两部分;其中,
加密数据服务具体为:数据服务会存储原文加密的密文,而抛给业务方的是为每条密文单独颁发的密文id;任何业务服务用相同的数据请求加密后,会得到相同的密文id;
加密升级具体为:新建一张密码密文表,对原密码密文表里的数据逐一按照新的加密方法重新加密,并存储到新建的密码密文表里;
若此时有密码请求加密,则会进行两次加密:按照旧算法加密,存储到旧密码密文表里;再按照新算法加密,并存储到新的密码密文表里;
虽然会得到不同的密文,但是密文id确是一样的;再将密文id返回给业务调用方;当旧密码密文表里的数据已经全部在新密码密文表里有新的对应关系时,会更改消息类型和算法的对应关系,当再有新的数据请求加密时,就只采用新的算法加密且只存储在新的密码密文表里。进一步说,其它消息类型的升级也相同。
进一步说,加密运算服务的工作密钥会升级,相应的就需要加密数据服务升级;因为其实加密数据服务才是对业务调用方的直接接口;在升级的时候就要求服务的加密解密功能仍能对外提供,故为平滑升级;
进一步说,在升级的时候,按照原文类型来做升级;例如,可能会单独升级密码,而手机号不用升级。若是所有数据都在同一张表里,升级的时候量就会非常大,并且还需要保证同一张表里的同类型的数据的密文是和当时重新请求加密运算服务,得到的密文需相等。不然会返回业务方不懂的密文id,当涉及到业务交互时,可能会导致业务方以为是两条不同的数据。
为此,按照消息类型分表,将数据(例如密码,手机号,身份证号的数据)分别存在不同(三张)的表里。假如此时密码的安全性需要提高,需进行升级,才用本发明方法后,就可以只升级密码密文表而实现提高密码的安全性。
有益的技术效果
本发明的技术优点突出表现在如下方面:
1.计算和数据分离,增强了数据安全性;
2.升级加密算法或更改密钥对调用方透明,无须调用方更改;
3.工作密钥双重不同方式加密,降低密钥泄露风险。
附图说明
图1是本发明的流程图。
图2是本发明的时序图。
图3是本发明的更新流程图。
具体实施方式
现结合附图详细说明本发明的技术特点与显著优点。
一、加密运算服务
结合图1至2,在本发明中,首先把加密的一些运算抽象出来,组成一个统一的服务。这一设计思想是相对比较容易实现的。但同时这就意味着一个服务,拥有着全部门乃至全公司的敏感数据的解密权限,这就让加密运算服务本身的安全问题提高到很高的等级。为此,本发明作出如下的改进与优化:
1.1工作密钥的加密
通用的做法是所有算法的工作密钥都由服务的主密钥加密然后存储。但这其实是把所有工作密钥的安全性依赖到了一个单独的主密钥。主密钥的管理可能会采取硬盘加密的方式加密。这样虽然安全性提高了,但是每次请求主密钥的复杂度增加了,甚至有可能影响到服务的性能。
为此,在本发明中采用双重加密的方式加密工作密钥。第一层利用密钥结构先打乱工作密钥原有的结构,重新得到打乱后的工作密钥。密钥结构可以是定义了一种加密算法,也可以是一种随机打乱,***常量,变量的方式。第二层由主密钥加密第一层得到的打乱后的工作密钥。
使用时,密钥结构存储在数据库,主密钥存储在配置里,并由关键人物保密存储在其它安全的地方。这样,无论密钥结构或者主密钥单独泄露,都不能解密数据。而主密钥和密钥结构单独分开存储,也降低了两者都泄露的风险。
1.2工作密钥的升级
加密算法的加密强度一般会随着加密密钥的长度增长而加大。加密强度越大,意味着越难被破解,解密时需要的时长和CPU越高。所以需要选择一个适当长度的密钥。若是为了追求性能而选择一个可能会被破解的密钥,则需要定期升级密钥。
本发明是一个面向公用的服务,并且本身并不存储业务数据,所以若是该服务采用更改密钥的方式进行密钥的升级,则需要业务方同时重新请求加密。当涉及到的服务很多时,和多个部门合作,整个事情就会变得相当麻烦。所以在本发明中的工作密钥不允许更改和删除,只能增加。
1.3加密与解密
加密的同时需要考虑到解密,故本发明的加密与解密在这里一起来阐述。
本发明中的算法可能会存在多种密钥,其中的有些密钥可能处于安全问题,已经被淘汰不能再使用来加密数据。但在本发明中,这种密钥仍旧是不能删除的,因为业务方可能会有旧数据采用的是旧密钥加密的,解密就仍要用旧密钥。
但是出于安全性考虑,加密运算服务加密时,并不会告知调用方采用的是什么加密方法。并且为了业务方的方便,给到业务方的数据应该足够精简,应该只有加密的密文。所以本发明的改进侧重在密文上:
1)根据对应的加密算法得到原密文
2)组合新的密文结构:加密算法id长度(1位16进制)+加密算法id(16进制,长度可变)+原密文长度(4位16进制)+原密文
3)BASE64加密新的密文结构,得到最后的密文
由于本发明所基于的工作密钥是只能增加,不能修改和删除,业务随时拿着旧数据或者新数据均可解密成功。
采用本发明进行解密时,会先解开密文结构,得到算法id和真实的密文。按照算法id找到对应的算法类型,加密后的算法密钥等。再利用密钥结构和主密钥解开被加密的算法密钥,得到真实的算法密钥,最后再解密文。这样即便有旧数据请求解密时,也能解开。
二、加密数据服务
结合图2至3,有了加密运算服务,解决了多业务服务都需要去实现一套加密解密的算法、密钥的管理等工作。但是实际业务需要的更复杂。业务经常是交叉的,从A服务得到的数据,需要和B服务数据库里数据进行比对。这就要求A,B服务用统样的数据就行加密时,需得到相同的密文。当A服务的加密算法升级后,B服务也必须得同时升级,否则数据比对会失败。这就提高了业务复杂度。为此,本发明还提供一种采用数据加密方案,具体如下
2.1加密数据服务
数据服务会存储原文加密的密文,而抛给业务方的是为每条密文单独颁发的密文id。任何业务服务用相同的数据请求加密后,会得到相同的密文id。本发明的一个技术特征就是把加密运算服务和加密数据服务分成二个相对独立的服务。加密运算服务是CPU密集型,很大量的运算。加密数据服务是IO密集型,运算量小,但是数据管理多。在本发明中将两者分开,即存在两个服务,有利于各自的服务器配置和扩展等。
2.2加密升级
在本发明中,加密运算服务的工作密钥会升级,相应的就需要加密数据服务升级。因为其实加密数据服务才是对业务调用方的直接接口。在升级的时候就要求服务的加密解密功能仍能对外提供,就是需要平滑升级。
当需要升级的时候,一般会按照原文类型来做升级。例如可能会单独升级密码,而手机号不用升级。若是所有数据都在同一张表里,升级的时候量就会非常大,并且还需要保证同一张表里的同类型的数据的密文是和当时重新请求加密运算服务,得到的密文需相等。不然会返回业务方不懂的密文id,当涉及到业务交互时,可能会导致业务方以为是两条不同的数据。
为此,本发明是按照消息类型分表,例如密码,手机号,身份证号的数据会分别存在不同的表里。因此,当采用本发明方案,且当密码的安全性需要提高时,所需要进行的升级就仅为密码密文表的升级,相对传统方案,效率高、速度快、可靠性有保障。
本发明的升级方法具体是:首先新建一张密码密文表,对原密码密文表里的数据逐一按照新的加密方法重新加密,并存储到新建的密码密文表里。若此时有密码请求加密,则会进行两次加密:按照旧算法加密,存储到旧密码密文表里;再按照新算法加密,并存储到新的密码密文表里。虽然他们会得到不同的密文,但是密文id确是一样的。再将密文id返回给业务调用方。当旧密码密文表里的数据已经全部在新密码密文表里有新的对应关系时,会更改消息类型和算法的对应关系,当再有新的数据请求加密时,就只会采用新的算法加密且只存储在新的密码密文表里。其它消息类型的升级相同。
Claims (9)
1.计算与数据分离支持热更新加密算法,其特征在于,首先把加密的运算抽象出来,组成一个统一的服务;再按如下步骤进行:
步骤1.工作密钥的加密;采用双重加密的方式加密工作密钥:
第一层利用密钥结构先打乱工作密钥原有的结构,重新得到打乱后的工作密钥;
第二层由主密钥加密第一层得到的打乱后的工作密钥;
步骤2.工作密钥的升级;工作密钥的升级;工作密钥仅通过增加的方式升级;
步骤3.加密;
3.1根据对应的加密算法得到原密文;
3.2组合新的密文,该密文结构为:加密算法id长度+加密算法id长度+原密文长度+原密文;
3.3用3BASE64加密新的密文结构,得到最后的密文。
步骤4.解密;
4.1先解开密文结构,得到算法id和真实的密文;
4.2再按照算法id找到对应的算法类型,加密后的算法密钥;
4.3之后,利用密钥结构和主密钥解开被加密的算法密钥,得到真实的算法密钥;
4.4最后,再解密文。
2.根据权利要求1所述的计算与数据分离支持热更新加密算法,其特征在于,在步骤一中,密钥结构是一种加密算法,一种随机打乱,一种***常量或变量的方式。
3.根据权利要求1所述的计算与数据分离支持热更新加密算法,其特征在于,密钥结构存储在数据库,主密钥存储在配置里;换言之,主密钥和密钥结构单独分开存储。
4.根据权利要求1所述的计算与数据分离支持热更新加密算法,其特征在于,加密算法id为1位16进制;加密算法id为16进制,且长度可变;原密文长度为4位16进制。
5.采用权利要求1至4任一计算与数据分离支持热更新加密算法的加密数据方法,其特征在于,包括加密数据服务和加密升级两部分;其中,加密数据服务存储原文加密的密文,而抛给业务方的是为每条密文单独颁发的密文id;任何业务服务用相同的数据请求加密后,会得到相同的密文id;
加密升级具体为:新建一张密码密文表,对原密码密文表里的数据逐一按照新的加密方法重新加密,并存储到新建的密码密文表里;若此时有密码请求加密,则会进行两次加密:按照旧算法加密,存储到旧密码密文表里;再按照新算法加密,并存储到新的密码密文表里;得到不同的密文,但是密文id确是一样的;随后,再将密文id返回给业务调用方。
6.根据权利要求5所述的加密数据方法,其特征在于,在加密升级中,当旧密码密文表里的数据已经全部在新密码密文表里有新的对应关系时,更改消息类型和算法的对应关系;当再有新的数据请求加密时,则只采用新的算法加密且只存储在新的密码密文表里。
7.根据权利要求5所述的加密数据方法,其特征在于,当加密运算服务的工作密钥进行升级时,相应的加密数据服务就进行升级;且加密数据服务是对业务调用方的直接接口,故在本方法中的升级为平滑升级。
8.根据权利要求5所述的加密数据方法,其特征在于,在升级的时候,按照原文类型来做升级;换言之,当密码的安全性需要提高并需要升级时,只升级密码密文表就可实现提高密码的安全性。
9.根据权利要求5所述的加密数据方法,其特征在于,本发明通过返回加密id来保证后续加密算法或密钥升级,对业务无影响;本发明的服务拆分为加密数据服务和加密运算服务,将计算和数据分离;即在本发明中,不同数据来源之间的数据互不可见。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337142.7A CN108055127A (zh) | 2017-12-14 | 2017-12-14 | 计算与数据分离支持热更新加密算法和密钥数据加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711337142.7A CN108055127A (zh) | 2017-12-14 | 2017-12-14 | 计算与数据分离支持热更新加密算法和密钥数据加密方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108055127A true CN108055127A (zh) | 2018-05-18 |
Family
ID=62132814
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711337142.7A Pending CN108055127A (zh) | 2017-12-14 | 2017-12-14 | 计算与数据分离支持热更新加密算法和密钥数据加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108055127A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547195A (zh) * | 2018-11-13 | 2019-03-29 | 阳光保险集团股份有限公司 | 一种密码数据处理方法及装置 |
CN116933285A (zh) * | 2023-07-19 | 2023-10-24 | 贝壳找房(北京)科技有限公司 | 数据加密的升级方法、设备、介质及计算机程序产品 |
CN117201021A (zh) * | 2023-11-08 | 2023-12-08 | 中孚信息股份有限公司 | 用于主业务***的密钥动态切换方法、***、装置及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281299A (zh) * | 2013-04-26 | 2013-09-04 | 天地融科技股份有限公司 | 一种加解密装置以及信息处理方法和*** |
US20140341375A1 (en) * | 2013-05-16 | 2014-11-20 | Megachips Corporation | Random number generating device, cipher processing device, storage device, and information processing system |
CN105790925A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 数据加密解密方法和装置 |
CN106789004A (zh) * | 2016-12-15 | 2017-05-31 | 国云科技股份有限公司 | 一种高效安全的网络通信方法 |
-
2017
- 2017-12-14 CN CN201711337142.7A patent/CN108055127A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103281299A (zh) * | 2013-04-26 | 2013-09-04 | 天地融科技股份有限公司 | 一种加解密装置以及信息处理方法和*** |
US20140341375A1 (en) * | 2013-05-16 | 2014-11-20 | Megachips Corporation | Random number generating device, cipher processing device, storage device, and information processing system |
CN105790925A (zh) * | 2014-12-24 | 2016-07-20 | 北京奇虎科技有限公司 | 数据加密解密方法和装置 |
CN106789004A (zh) * | 2016-12-15 | 2017-05-31 | 国云科技股份有限公司 | 一种高效安全的网络通信方法 |
Non-Patent Citations (2)
Title |
---|
张建华: "5.1.3 WEB文件加密存储", 《WEB安全与容侵》 * |
王世昌: "国外银行卡互联网络的报文安全体系", 《计算机***与网络技术开发及应用实例》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109547195A (zh) * | 2018-11-13 | 2019-03-29 | 阳光保险集团股份有限公司 | 一种密码数据处理方法及装置 |
CN116933285A (zh) * | 2023-07-19 | 2023-10-24 | 贝壳找房(北京)科技有限公司 | 数据加密的升级方法、设备、介质及计算机程序产品 |
CN117201021A (zh) * | 2023-11-08 | 2023-12-08 | 中孚信息股份有限公司 | 用于主业务***的密钥动态切换方法、***、装置及介质 |
CN117201021B (zh) * | 2023-11-08 | 2024-02-23 | 中孚信息股份有限公司 | 用于主业务***的密钥动态切换方法、***、装置及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110472428B (zh) | 基于区块链的医疗数据共享方法及共享*** | |
CN100561916C (zh) | 一种更新认证密钥的方法和*** | |
US9704159B2 (en) | Purchase transaction system with encrypted transaction information | |
CN102402664B (zh) | 数据访问控制装置和数据访问控制方法 | |
CN110120869A (zh) | 密钥管理***及密钥服务节点 | |
US20100325732A1 (en) | Managing Keys for Encrypted Shared Documents | |
CN108667605B (zh) | 一种数据加密、解密方法和装置 | |
US20130073854A1 (en) | Data storage incorporating crytpographically enhanced data protection | |
CN102571329A (zh) | 密码密钥管理 | |
JP2020519097A (ja) | 一致コホートの作成およびブロックチェーンを使用した保護データの交換 | |
CN107168998A (zh) | 一种基于保留格式的数据库透明加密方法 | |
CN108154038A (zh) | 数据处理方法及装置 | |
CN111079188B (zh) | mybatis字段加密解密装置及加密解密*** | |
CN108055127A (zh) | 计算与数据分离支持热更新加密算法和密钥数据加密方法 | |
CN112287392B (zh) | 一种具备保护隐私信息的智能合约实现方法及*** | |
CN108270739A (zh) | 一种管理加密信息的方法及装置 | |
US20160330022A1 (en) | Cryptographic system, key generation apparatus, re-encryption apparatus and user terminal | |
CN106022159B (zh) | 基于云计算的erp数据处理方法 | |
US10733317B2 (en) | Searchable encryption processing system | |
CN111585753A (zh) | 一种业务数据集中加密***及方法 | |
CN116340331A (zh) | 一种基于区块链的大型仪器实验结果存证方法和*** | |
US20210166222A1 (en) | Arrangement of blockchains with a restricted transaction | |
CN113127927B (zh) | 一种许可链数据共享及监管的属性重构加密方法及*** | |
CN109784920B (zh) | 一种基于区块链的交易信息审计方法及装置 | |
CN114372242A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180518 |