CN114629644A - 数据加密方法、存储介质、计算机程序产品和电子设备 - Google Patents
数据加密方法、存储介质、计算机程序产品和电子设备 Download PDFInfo
- Publication number
- CN114629644A CN114629644A CN202210320862.7A CN202210320862A CN114629644A CN 114629644 A CN114629644 A CN 114629644A CN 202210320862 A CN202210320862 A CN 202210320862A CN 114629644 A CN114629644 A CN 114629644A
- Authority
- CN
- China
- Prior art keywords
- data
- service
- service module
- encryption
- key
- 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
- 238000000034 method Methods 0.000 title claims abstract description 123
- 238000004590 computer program Methods 0.000 title claims abstract description 21
- 238000011144 upstream manufacturing Methods 0.000 claims abstract description 73
- 230000004044 response Effects 0.000 claims abstract description 58
- 230000005540 biological transmission Effects 0.000 claims description 51
- 238000004891 communication Methods 0.000 claims description 17
- 238000007726 management method Methods 0.000 description 149
- 230000000875 corresponding effect Effects 0.000 description 56
- 230000005856 abnormality Effects 0.000 description 16
- 230000006870 function Effects 0.000 description 16
- 238000004422 calculation algorithm Methods 0.000 description 13
- 238000012545 processing Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 8
- 239000003795 chemical substances by application Substances 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000000586 desensitisation Methods 0.000 description 4
- 238000006243 chemical reaction Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 230000006378 damage Effects 0.000 description 2
- 238000013478 data encryption standard Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005538 encapsulation Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000750 progressive effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 238000009795 derivation Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000000873 masking effect Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- 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)
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
本公开实施例公开了一种数据加密方法、存储介质、计算机程序产品和电子设备。该数据加密方法之一应用于业务端,该数据加密方法包括:通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据;响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥;基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。本公开实施例采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而降低了加密密钥被分析的风险,进而提高了数据安全性。
Description
技术领域
本公开实施例涉及一种数据加密方法、存储介质、计算机程序产品和电子设备。
背景技术
数据加密,指通过加密算法和加密密钥将明文数据转变为密文数据的过程。数据加密是计算机系统对数据进行保护的一种方式。它利用密码技术对数据进行加密,实现数据隐蔽,从而起到保护数据安全的作用。
现有的数据安全建设大多围绕数据生命周期来展开安全建设工作,涵盖数据采集、数据存储、数据传输、数据使用与共享、数据销毁等环节。每个环节的安全措施包括敏感数据识别与分类分级、敏感数据透明加密存储、接口签名与验签、加密隧道传输、数据传输监控与审计、数据流转管控与审批、敏感数据脱敏展示、磁盘物理销毁等措施。其中,数据的加密一般采用固定密钥对数据库里的数据进行加密,应用访问数据库时自动进行解密或者使用方使用协商好的密钥进行解密。
然而,随着业务快速增长,应用数量庞大,数据流通场景丰富,传统的数据加密方式仍然面临着数据泄露等数据安全问题。
发明内容
本公开实施例提供一种数据加密方法、存储介质、计算机程序产品和电子设备,以提高数据安全性。
根据本公开实施例的第一个方面,提供的一种数据加密系统,所述系统包括:业务端和密钥管理端,所述业务端部署有用于提供服务的多个服务模块,所述密钥管理端与所述业务端通信连接;其中:
所述业务端,被配置成:确定所述本地缓存中是否包含加密密钥;响应于确定出本地缓存中不包含加密密钥,向所述密钥管理端发送加密密钥获取请求;
所述密钥管理端,被配置成:响应于接收到所述业务端发送的加密密钥获取请求,向所述业务端发送所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥;
所述业务端,还被配置成:基于所获取的加密密钥和所述业务数据,生成与所述业务数据相对应的密文数据。
可选地,在本公开任一实施例的系统中,所述业务端,还被配置成:
响应于所述目标服务模块的下游服务模块具备解密能力,将所述密文数据传输至所述下游服务模块。
可选地,在本公开任一实施例的系统中,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述业务端,具体被配置成:响应于目标服务模块接收到所述目标服务模块的上游服务模块发送的密文数据,向所述密钥管理端发送解密密钥获取请求;
所述密钥管理端,还被配置成:响应于接收到所述业务端发送的解密密钥获取请求,确定所述目标服务模块是否具有针对所述上游服务模块发送的密文数据的解密权限;响应于确定所述目标服务模块具有所述解密权限,向所述业务端发送用于对所述上游服务模块发送的密文数据进行解密的解密密钥;
所述业务端,还被配置成:响应于接收到所述解密密钥,采用所述解密密钥对所述密文数据进行解密。
可选地,在本公开任一实施例的系统中,在所述目标服务模块不具备解密能力的情况下,所述业务数据为明文数据;以及
所述业务端,具体被配置成:
确定所述本地缓存中是否包含加密密钥。
可选地,在本公开任一实施例的系统中,所述业务端或者所述密钥管理端,还被配置成:
将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可选地,在本公开任一实施例的系统中,所述业务端,还被配置成:
响应于经过预设时长未从本地缓存中获取加密密钥,删除本地缓存中的加密密钥。
可选地,在本公开任一实施例的系统中,所述密钥管理端,还被配置成:
将所述密钥管理端生成的加密密钥永久存储于第一预设存储器中。
可选地,在本公开任一实施例的系统中,所述业务端,还被配置成:
周期性地向所述密钥管理端发送加密密钥获取请求,采用所述密钥管理端返回的加密密钥替换本地缓存中的加密密钥;
响应于经过预设时长未从本地缓存中获取加密密钥,暂停向所述密钥管理端发送加密密钥获取请求。
可选地,在本公开任一实施例的系统中,所述多个服务模块中提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
可选地,在本公开任一实施例的系统中,所述密钥管理端,还被配置成:
将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
可选地,在本公开任一实施例的系统中,所述密钥管理端,还被配置成:
通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
可选地,在本公开任一实施例的系统中,在所述多个服务模块均具备解密能力的情况下,所述多个服务模块之间通过密文数据进行数据传输。
根据本公开实施例的第二个方面,提供的一种数据加密方法,所述方法应用于业务端,所述方法包括:
通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据;
响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥;
基于所获取的加密密钥和所述业务数据,生成与所述业务数据相对应的密文数据。
可选地,在本公开任一实施例的方法中,所述响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥,包括:
响应于确定出本地缓存中不包含加密密钥,向与所述业务端通信连接的密钥管理端发送加密密钥获取请求;
接收所述密钥管理端返回的、所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥。
可选地,在本公开任一实施例的方法中,所述方法还包括:
响应于所述目标服务模块的下游服务模块具备解密能力,将所述密文数据传输至所述下游服务模块。
可选地,在本公开任一实施例的方法中,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据,包括:
采用所述解密密钥对所述密文数据进行解密,以及确定本地缓存中是否包含加密密钥。
可选地,在本公开任一实施例的方法中,在所述目标服务模块不具备解密能力的情况下,所述业务数据为明文数据;以及
所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据之后,还包括:
确定所述本地缓存中是否包含加密密钥。
可选地,在本公开任一实施例的方法中,所述方法还包括:
将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可选地,在本公开任一实施例的方法中,所述方法还包括:
响应于经过预设时长未从本地缓存中获取加密密钥,删除本地缓存中的加密密钥。
可选地,在本公开任一实施例的方法中,所述方法还包括:
所述从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥之后,在所述本地缓存中存储所述加密密钥;
周期性地向所述密钥管理端发送加密密钥获取请求,采用所述密钥管理端返回的加密密钥替换本地缓存中的加密密钥;响应于经过预设时长未从本地缓存中获取加密密钥,暂停向所述密钥管理端发送加密密钥获取请求。
可选地,在本公开任一实施例的方法中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
可选地,在本公开任一实施例的方法中,所述方法还包括:
将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
可选地,在本公开任一实施例的方法中,在所述业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
根据本公开实施例的第三个方面,提供的一种数据加密方法,所述方法应用于密钥管理端,所述方法包括:
向与所述密钥管理端通信连接的业务端发送所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使所述业务端基于所发送的加密密钥和业务数据,生成与所述业务数据相对应的密文数据;
其中,所述业务数据为所述业务端部署的目标服务模块接收到的、所述目标服务模块的上游服务模块传输的数据。
可选地,在本公开任一实施例的方法中,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述方法还包括:
响应于接收到所述业务端发送的解密密钥获取请求,确定所述目标服务模块是否具有针对所述上游服务模块发送的密文数据的解密权限,其中,所述解密密钥获取请求经由所述业务端在所述目标服务模块接收到所述目标服务模块的上游服务模块发送的密文数据的情况下发送;
响应于确定所述目标服务模块具有所述解密权限,向所述业务端发送用于对所述上游服务模块发送的密文数据进行解密的解密密钥,以使所述业务端采用所述解密密钥对所述密文数据进行解密。
可选地,在本公开任一实施例的方法中,所述方法还包括:
将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可选地,在本公开任一实施例的方法中,所述方法还包括:
将所述密钥管理端生成的加密密钥永久存储于第一预设存储器中。
可选地,在本公开任一实施例的方法中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
可选地,在本公开任一实施例的方法中,所述方法还包括:
将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
可选地,在本公开任一实施例的方法中,所述方法还包括:
通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
可选地,在本公开任一实施例的方法中,在所述业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
根据本公开实施例的第四个方面,提供的一种数据加密装置,所述装置设置于业务端,所述装置包括:
接收单元,被配置成通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据;
获取单元,被配置成响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥;
第一生成单元,被配置成基于所获取的加密密钥和所述业务数据,生成与所述业务数据相对应的密文数据。
可选地,在本公开任一实施例的装置中,所述获取单元包括:
发送子单元,被配置成响应于确定出本地缓存中不包含加密密钥,向与所述业务端通信连接的密钥管理端发送加密密钥获取请求;
接收子单元,被配置成接收所述密钥管理端返回的、所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥。
可选地,在本公开任一实施例的装置中,所述装置还包括:
传输单元:被配置成响应于所述目标服务模块的下游服务模块具备解密能力,将所述密文数据传输至所述下游服务模块。
可选地,在本公开任一实施例的装置中,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述接收单元包括:
解密子单元,被配置成采用所述解密密钥对所述密文数据进行解密,以及确定本地缓存中是否包含加密密钥。
可选地,在本公开任一实施例的装置中,在所述目标服务模块不具备解密能力的情况下,所述业务数据为明文数据;以及
所述接收单元包括:
确定子单元,被配置成确定所述本地缓存中是否包含加密密钥。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第一存储单元,被配置成将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
第二确定单元,被配置成响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可选地,在本公开任一实施例的装置中,所述装置还包括:
删除单元,被配置成响应于经过预设时长未从本地缓存中获取加密密钥,删除本地缓存中的加密密钥。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第一发送单元,被配置成周期性地向所述密钥管理端发送加密密钥获取请求,采用所述密钥管理端返回的加密密钥替换本地缓存中的加密密钥;
暂停单元,被配置成响应于经过预设时长未从本地缓存中获取加密密钥,暂停向所述密钥管理端发送加密密钥获取请求。
可选地,在本公开任一实施例的装置中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第二存储单元,被配置成将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
检索单元,被配置成响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
第一返回单元,被配置成响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
可选地,在本公开任一实施例的装置中,在所述业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
根据本公开实施例的第五个方面,提供的一种数据加密装置,所述装置设置于密钥管理端,所述装置包括:
第二发送单元,被配置成向与所述密钥管理端通信连接的业务端发送所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使所述业务端基于所发送的加密密钥和业务数据,生成与所述业务数据相对应的密文数据;
其中,所述业务数据为所述业务端部署的目标服务模块接收到的、所述目标服务模块的上游服务模块传输的数据。
可选地,在本公开任一实施例的装置中,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述装置还包括:
第三确定单元,被配置成响应于接收到所述业务端发送的解密密钥获取请求,确定所述目标服务模块是否具有针对所述上游服务模块发送的密文数据的解密权限,其中,所述解密密钥获取请求经由所述业务端在所述目标服务模块接收到所述目标服务模块的上游服务模块发送的密文数据的情况下发送;
第三发送单元,被配置成响应于确定所述目标服务模块具有所述解密权限,向所述业务端发送用于对所述上游服务模块发送的密文数据进行解密的解密密钥,以使所述业务端采用所述解密密钥对所述密文数据进行解密。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第三存储单元,被配置成将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
第四确定单元,被配置成响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第四存储单元,被配置成将所述密钥管理端生成的加密密钥永久存储于第一预设存储器中。
可选地,在本公开任一实施例的装置中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第五存储单元,被配置成将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
检索单元,被配置成响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
第二返回单元,被配置成响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
可选地,在本公开任一实施例的装置中,所述装置还包括:
第二生成单元,被配置成通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
可选地,在本公开任一实施例的装置中,在所述业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
根据本公开实施例的第六个方面,提供的一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现本公开上述第二方面或第三方面的数据加密方法中任一实施例的方法。
根据本公开实施例的第七个方面,提供的一种计算机可读介质,该计算机程序被处理器执行时,实现如上述第二方面或第三方面的数据加密方法中任一实施例的方法。
根据本公开实施例的第八个方面,提供的一种计算机程序,该计算机程序包括计算机可读代码,当该计算机可读代码在设备上运行时,使得该设备中的处理器执行用于实现如上述第二方面或第三方面的数据加密方法中任一实施例的方法中各步骤的指令。
基于本公开上述第一方面中实施例提供的数据加密系统,包括:业务端和密钥管理端,业务端部署有用于提供服务的多个服务模块,密钥管理端与业务端通信连接;其中:业务端,被配置成:确定所述本地缓存中是否包含加密密钥;响应于确定出本地缓存中不包含加密密钥,向密钥管理端发送加密密钥获取请求;密钥管理端,被配置成:响应于接收到业务端发送的加密密钥获取请求,向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥;业务端,还被配置成:基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
基于本公开上述第二方面中实施例提供的数据加密方法,该方法应用于业务端,其可以通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据,然后,在本地缓存中不包含加密密钥的情况下,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥,最后,基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
基于本公开上述第三方面中实施例提供的数据加密方法,该方法应用于密钥管理端,其可以在接收到与密钥管理端通信连接的业务端发送的加密密钥获取请求的情况下,向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据,其中,业务数据为业务端部署的目标服务模块接收到的、目标服务模块的上游服务模块传输的数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
下面通过附图和实施例,对本公开的技术方案做进一步的详细描述。
附图说明
构成说明书的一部分的附图描述了本公开的实施例,并且连同描述一起用于解释本公开的原理。
参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
图1A为本公开数据加密系统的一个实施例的流程图。
图1B为本公开数据加密系统的一个实施例的应用场景示意图。
图2为本公开的一个数据加密方法的一个实施例的流程图。
图3为本公开的另一个数据加密方法的一个实施例的流程图。
图4为本公开的一个数据加密装置的一个实施例的结构示意图。
图5为本公开的另一个数据加密装置的一个实施例的结构示意图。
图6是本公开一示例性实施例提供的电子设备的结构图。
具体实施方式
现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
本领域技术人员可以理解,本公开实施例中的“第一”、“第二”等术语仅用于区别不同步骤、设备或模块等,既不代表任何特定技术含义,也不表示它们之间的必然逻辑顺序。
还应理解,在本公开实施例中,“多个”可以指两个或两个以上,“至少一个”可以指一个、两个或两个以上。
还应理解,对于本公开实施例中提及的任一部件、数据或结构,在没有明确限定或者在前后文给出相反启示的情况下,一般可以理解为一个或多个。
另外,本公开中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本公开中字符“/”,一般表示前后关联对象是一种“或”的关系。
还应理解,本公开对各个实施例的描述着重强调各个实施例之间的不同之处,其相同或相似之处可以相互参考,为了简洁,不再一一赘述。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
本公开实施例可以应用于终端设备、计算机系统和服务器中的至少一种电子设备,其可与众多其它通用或专用计算系统环境或配置一起操作。适于与终端设备、计算机系统和服务器中的至少一种电子设备一起使用的众所周知的计算系统、环境和/或配置的例子包括但不限于:个人计算机系统、服务器计算机系统、瘦客户机、厚客户机、手持或膝上设备、基于微处理器的系统、机顶盒、可编程消费电子产品、网络个人电脑、小型计算机系统﹑大型计算机系统和包括上述任何系统的分布式云计算技术环境,等等。
终端设备、计算机系统和服务器中的至少一种电子设备可以在由计算机系统执行的计算机系统可执行指令(诸如程序模块)的一般语境下描述。通常,程序模块可以包括例程、程序、目标程序、组件、逻辑、数据结构等等,它们执行特定的任务或者实现特定的抽象数据类型。计算机系统/服务器可以在分布式云计算环境中实施,分布式云计算环境中,任务是由通过通信网络链接的远程处理设备执行的。在分布式云计算环境中,程序模块可以位于包括存储设备的本地或远程计算系统存储介质上。
请参考图1A,示出了本公开数据加密系统的一个实施例的结构示意图。该数据加密系统包括业务端和密钥管理端,业务端部署有用于提供服务的多个服务模块,密钥管理端与业务端通信连接。其中:业务端,被配置成:确定所述本地缓存中是否包含加密密钥;响应于确定出本地缓存中不包含加密密钥,向密钥管理端发送加密密钥获取请求;密钥管理端,被配置成:响应于接收到业务端发送的加密密钥获取请求,向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥;业务端,还被配置成:基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。
如图1A所示,在101中,业务端确定本地缓存中是否包含加密密钥。
在本实施例中,在多个服务模块中的目标服务模块接收到目标服务模块的上游服务模块传输的业务数据的情况下,业务端可以确定本地缓存中是否包含加密密钥。
其中,业务端可以是用于提供业务处理的一个或多个电子设备(例如分布式服务器)。业务端可以部署有用于提供服务的多个服务模块。
作为示例,每个服务模块可以通过程序实现用户服务、后台服务等服务。
在这里,每个服务模块所提供的服务可以根据实际需求确定。多个服务模块中可以包括用以提供相同服务的至少两个服务模块,可选的,多个服务模块中的各个服务模块所提供的服务也可以彼此不同。服务模块可以采用微服务架构来实现。用户通过用户终端发送的数据可以在服务模块之间进行传输。
目标服务模块可以是上述业务端中部署的具有上游服务模块的服务模块。业务数据可以是业务端所处理的任何数据,例如,业务数据可以是用户数据、后台数据等数据。加密密钥可以用于数据加密。例如,若业务数据为明文数据,则加密密钥可以直接对业务数据进行加密。此外,若业务数据为密文数据,则加密密钥可以对业务数据解密后的明文数据进行加密,或者直接对处于密文状态的业务数据进行加密。
在本实施例中,一些情况下,业务端的本地缓存中可以包含加密密钥;在另一些情况下,业务端的本地缓存中也可以不包含加密密钥。
作为示例,业务端可以周期性地从密钥管理端获取加密密钥,并将所获得的加密密钥存储于缓存中,在此情况下,业务端的本地缓存中通常可以包含加密密钥。此外,若缓存中包含的加密密钥超过预设时长未被用于加密,则可以删除缓存中的加密密钥,在删除缓存中的加密密钥之后,业务端的本地缓存中可能不包含加密密钥。
可选的,在每次从密钥管理端获取加密密钥后,可以再次使用最新获得的加密密钥重新进行加密。
102,业务端确定本地缓存中不包含加密密钥。
在本实施例中,业务端可以确定本地缓存中不包含加密密钥。
103,业务端向密钥管理端发送加密密钥获取请求。
在本实施例中,在确定本地缓存中不包含加密密钥的情况下,业务端可以向密钥管理端发送加密密钥获取请求。
其中,上述密钥管理端可以是用于对密钥进行管理的一个或多个电子设备。作为示例,密钥管理端可以是KMS(Key Manage System,密钥管理系统)。加密密钥获取请求用于指示业务端向密钥管理端请求加密密钥。密钥管理端可以用于生成加密密钥。例如,密钥管理端可以周期性地采用预设算法生成加密密钥。此外,密钥管理端也可以在接收到业务端发送的加密密钥获取请求之后,采用预设算法生成加密密钥。这里,密钥管理端每次所生成的加密密钥可以不同。
104,密钥管理端向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥。
在本实施例中,密钥管理端可以向业务端发送该密钥管理端生成的加密密钥中,生成时刻距离当前时刻最接近的加密密钥。
其中,生成时刻指示密钥管理端生成加密密钥的时刻。通常,每个加密密钥对应一个生成时刻。当前时刻可以是执行上述104的时刻。
105,业务端基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。
在本实施例中,业务端可以采用多种方式,基于从密钥管理系统获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。
作为示例,在业务数据为明文数据的情况下,业务端可以直接采用加密密钥对业务数据进行加密,从而得到与业务数据相对应的密文数据。在业务数据为密文数据的情况下,业务端可以直接采用加密密钥对业务数据进行加密,或者,首先对业务数据进行解密得到明文数据,再采用加密密钥对所得到的明文数据进行加密,从而得到与业务数据相对应的密文数据。
在这里,采用加密密钥进行加密的算法,可以包括但不限于以下至少一项:DES(Data Encryption Standard,数据加密标准)、AES(Advanced Encryption Standard,高级加密标准)、ENC加密算法等等。
本公开的上述实施例提供的数据加密系统包括:业务端和密钥管理端,业务端部署有用于提供服务的多个服务模块,密钥管理端与业务端通信连接;其中:业务端,被配置成:确定本地缓存中是否包含加密密钥;响应于确定出本地缓存中不包含加密密钥,向密钥管理端发送加密密钥获取请求;密钥管理端,被配置成:响应于接收到业务端发送的加密密钥获取请求,向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥;业务端,还被配置成:基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,并且,在业务端确定本地缓存中不包含加密密钥的情况下,才从密钥管理端获取加密密钥,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
在本实施例的一些可选的实现方式中,在目标服务模块的下游服务模块具备解密能力的情况下,业务端还可以将密文数据传输至目标服务模块的下游服务模块。
在这里,可以通过对服务模块进行配置(例如通过程序代码,编程实现),从而使得该服务模块具备解密能力。
作为示例,可以采用以下方式,确定目标服务模块的下游服务模块是否具备解密能力:首先,将具备解密能力的服务模块的模块标识存储于预设存储器中。然后,在判断目标服务模块的下游服务模块是否具备解密能力时,确定该下游服务模块的模块标识是否存储于上述预设存储器中。如果存储于上述预设存储器中,则确定该目标服务模块的下游服务模块具备解密能力。反之,则确定该目标服务模块的下游服务模块不具备解密能力。
可选的,也可以在服务模块的数据流出侧配置开关,控制通过接口输出明文数据或密文数据。具体而言,在目标服务模块的下游服务模块不具备解密能力(即未完成配置)的情况下,可以通过程序来控制其是否需要对所得到的数据进行解密。进一步地,仅在其具备解密能力的情况下,才将密文数据传输至该下游服务模块,若不具备解密能力,则可以将明文数据传输至该下游该服务模块。
在这里,由于对各个服务模块进行配置,使其具备解密能力需要一定的时间。因此,在服务模块不具备解密能力的情况下,可以通过程序来控制其是否需要对所得到的数据进行解密。进一步地,仅在其具备解密能力的情况下,才将密文数据传输至该服务模块,若不具备解密能力,则可以将明文数据传输至该服务模块。
可以理解,在上述可选的实现方式中,在下游服务模块具备解密能力的情况下,业务端才将密文数据传输至该下游服务模块,由此确保服务模块未全部配置完成即可投入使用,因而可以更及时地将数据加密系统投入使用。
在本实施例的一些可选的实现方式中,在目标服务模块具备解密能力的情况下,业务数据为密文数据。基于此,在目标服务模块接收到目标服务模块的上游服务模块发送的密文数据的情况下,业务端还可以向密钥管理端发送解密密钥获取请求。进而,在接收到业务端发送的解密密钥获取请求的情况下,密钥管理端可以确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限,以及在确定目标服务模块具有解密权限的情况下,密钥管理端可以向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥。之后,在接收到解密密钥的情况下,业务端可以用解密密钥对密文数据进行解密。
其中,关于“目标服务模块具备解密能力”的相关描述请参考以上论述,在此不再赘述。
在这里,上述密钥管理端可以采用以下方式,确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限:首先,将具有针对于上游服务模块发送的密文数据的解密权限的服务模块的模块标识存储于预设存储器中。然后,判断发送解密密钥获取请求的服务模块(例如目标服务模块)的模块标识是否存储于上述数据库中。如果存储于上述预设存储器中,则确定该服务模块具有针对上游服务模块发送的密文数据的解密权限。反之,则确定该服务模块不具有针对上游服务模块发送的密文数据的解密权限。
可选的,上述密钥管理端也可以采用以下方式,确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限:首先,将每个服务模块的模块标识和该服务模块的上游服务模块生成的密文数据的解密密钥关联存储于预设存储器中。然后,判断该预设存储器中,是否包含有与发送解密密钥获取请求的服务模块(例如目标服务模块)的模块标识关联存储的解密密钥。若是,则确定该服务模块具有针对上游服务模块发送的密文数据的解密权限。反之,则确定该服务模块不具有针对上游服务模块发送的密文数据的解密权限。
可以理解,上述可选的实现方式可以通过确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限,来确定是否向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥。由此,可以进一步提高数据的安全性。
在本实施例的一些可选的实现方式中,在目标服务模块不具备解密能力的情况下,业务数据为明文数据。由此,业务端可以确定本地缓存中是否包含加密密钥。
其中,关于“目标服务模块具备解密能力”的相关描述请参考以上论述,在此不再赘述。
可以理解,上述可选的实现方式可以在目标服务模块不具备解密能力,并且,目标服务模块接收到目标服务模块的上游服务模块发送的明文数据的情况下,直接采用加密密钥对明文数据进行加密。由此,可以在未完成服务模块的配置的情况下,即可投入使用,因而可以更及时地将数据加密系统投入使用。
在本实施例的一些可选的实现方式中,业务端或者密钥管理端,还可以执行以下步骤:
首先,将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储。其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块。
然后,在确定发生数据传输异常的情况下,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
其中,上述数据传输异常可以包括但不限于数据泄露、数据传输路径异常中的至少一项。
可以理解,上述可选的实现方式可以通过将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,实现数据传输异常的源头追溯,从而提高数据传输异常源头定位的及时性、准确性。
在本实施例的一些可选的实现方式中,在经过预设时长未从本地缓存中获取加密密钥的情况下,业务端可以删除本地缓存中的加密密钥。
在这里,预设时长可以是预先确定的时长。例如,预设时长可以是24小时、10小时等等。
可以理解,上述可选的时间方式可以在经过预设时长未从本地缓存中获取加密密钥的情况下,删除业务端的本地缓存中的加密密钥,从而提高业务端数据处理的速度。
在本实施例的一些可选的实现方式中,密钥管理端还可以将密钥管理端生成的加密密钥永久存储于第一预设存储器中。
可以理解,上述可选的实现方式可以将密钥管理端生成的全部加密密钥永久存储于第一预设存储器中,全部加密密钥可以长期保持有效不做清理,因此,无需对加密密钥等历史数据进行批量处理,从而进一步提高了数据安全性。
在本实施例的一些可选的实现方式中,业务端还可以执行以下步骤:
第一步骤,周期性地向密钥管理端发送加密密钥获取请求,采用密钥管理端返回的加密密钥替换(即更新)本地缓存中的加密密钥。
第二步骤,在业务端周期性地向密钥管理端发送加密密钥获取请求,并且,经过预设时长未从本地缓存中获取加密密钥的情况下,暂停向密钥管理端发送加密密钥获取请求。
可以理解,上述可选的实现方式中的第一步骤,可以周期性更新本地缓存中的加密密钥,从而降低了加密密钥频繁使用情况下加密密钥被分析的风险。上述可选的实现方式中的第二步骤可以在经过预设时长未从本地缓存中获取加密密钥的情况下,暂停向密钥管理端发送加密密钥获取请求,在后续需要采用加密密钥进行数据加密的情况下,再从密钥管理端获取加密密钥,从而降低了资源消耗。
在本实施例的一些可选的实现方式中,多个服务模块中提供相同业务的服务模块的密钥使用权限相同。其中,每个服务模块具有一种密钥使用权限。
在这里,可以按照业务的不同,对各个服务模块进行编组,从而使得提供相同业务的服务模块的密钥使用权限相同。其中,密钥使用权限可以包括加密密钥的使用权限、检索密钥的使用权限、认证密钥的使用权限等等。被编入一个组的服务模块即对该组的密钥(例如加密密钥、检索密钥、认证密钥)享有相同的使用权限。这里,每个服务模块只能被编入一个组,而不能同时被编入多个组。
可以理解,上述可选的实现方式可以权限管理,使得业务内各服务模块间更有效的共享数据,并且可以降低中间密文数据转换的频率。
在本实施例的一些可选的实现方式中,密钥管理端还可以执行以下步骤:
第一步,将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中。
第二步,在接收到数据检索请求的情况下,在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要。
第三步,在接收到数据读取请求的情况下,返回第二预设存储器中存储的、数据读取请求所请求读取的数据的密文数据。
可以理解,由于明文数据的加密密钥的变动将导致加密生成的密文数据的频繁变动,然而,明文数据的数据摘要往往是固定不变的。因而,在上述可选的实现方式中,可以通过在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要,实现数据检索,由此,可以在密文数据频繁变动的情况下,避免无法检索的情况。
在本实施例的一些可选的实现方式中,密钥管理端还可以通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
在这里,密钥管理端可以采用各种对称加密算法(例如AES、SM4)等高强度对称加密算法,通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
可以理解,上述可选的实现方式中,加密密钥不再是完全随机的比特串,而采用伪随机函数与根密钥通过计算的方式,来生成加密密钥。加密密钥随时生成随时使用,可以不再落到数据库磁盘中。由此,可以提高系统可用性和横向扩展能力,密钥获取不再依赖数据库查询,可以满足海量加密密钥场景下,系统高可用的需求。此外,还可以提高系统安全性。在上述可选的实现方式中,密钥管理端只需要保证根密钥安全性即可,降低了系统攻击面,简化了系统面临的攻击风险。
在本实施例的一些可选的实现方式中,在多个服务模块均具备解密能力的情况下,多个服务模块之间通过密文数据进行数据传输。
可以理解,上述可选的实现方式中,在多个服务模块均具备解密能力的情况下,多个服务模块之间通过密文数据进行数据传输。由此,通过在各个服务模块之间传输密文数据而不包含明文数据进一步提高了数据安全性。
在本公开上述实施例的一个应用场景中,上述数据加密系统可以应用于以下场景所描述的流程中:
作为示例,请参考图1B,图1B为本公开数据加密系统的一个实施例的应用场景示意图。这里结合图1B对该应用场景进行示例性说明:
第一步,业务数据流转(流入和流出)途径包括:接口、消息中间件和日志收集等。在流转输入密文数据的过程中,可能流入明文数据和非标准密文数据。其中,可以通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据,来实现业务数据流转。
第二步,敏感数据采集:指用户等人员通过终端应用或网页录入的用户敏感数据(例如身份证号码、手机号码等),终端采集的敏感数据发送至服务端(即数据加密系统)后,经过加密后以密文的形式在整个数据加密系统内部流转。这里,上述加密过程的实现可以包括:首先确定本地缓存中是否包含加密密钥,如果不包含加密密钥,则从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥,然后,基于所获取的加密密钥和所述业务数据,生成与所述业务数据相对应的密文数据。
第三步,敏感数据脱敏:脱敏之前可以首先进行解密,也可以不解密。其中,脱敏方式可以包括但不限于:部分遮盖、转虚拟号等。该第三步可以通过部署在数据加密系统中的agent执行,可以面向各语言栈提供SDK(Software Development Kit,软件开发工具包)封装。这里,上述解密过程可以包括:首先通过目标服务模块接收该目标服务模块的上游服务模块发送的密文数据,然后获取用于对所述上游服务模块发送的密文数据进行解密的解密密钥,之后,采用解密密钥对所述密文数据进行解密,以及确定本地缓存中是否包含加密密钥。
第四步,数据展示与应用:终端展示敏感数据需进行遮盖、号码呼叫使用虚拟号、生成合同等使用真实号码的业务接入需审批。
第五步,数据加密:该步骤可以包含对明文数据的加密,以及生成数据摘要的过程。其中,加密算法可以使用高强度对称加密算法。该第五步可以通过部署在数据加密系统中的agent执行,可以面向各语言栈提供SDK封装。这里,可以将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中,如果接收到数据检索请求,则在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;如果接收到数据读取请求,则返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
第六步,数据本地化:按照业务的需求生成数据摘要等。该第六步可以通过部署在业务端中的agent执行,可以面向各语言栈提供SDK封装。
这里,对上述第六步进行如下阐述:
首先,可以采用分布式的agent部署方式,在业务端部署的agent中进行解密操作运算。
其中,数据加密以及流转的处理过程如下:
第一,通过数据加密系统中的SDK调用agent加解密功能。
第二,若业务端的本地缓存中包含加密密钥,则使用该加密密钥进行加密;若业务端的本地缓存中不包含加密密钥,则向密钥管理端发送加密密钥获取请求。其中,可以通过业务端部署的Agent实现加密密钥的缓存,以及通过加密会话向密钥管理端请求加密密钥
第三,密钥管理端生成的加密密钥可以以密文形式存储于数据库中。
第四,可以采用Access服务为密钥管理端提供密钥访问权限管理的能力。其中,可以将每个服务模块的模块标识和该服务模块的上游服务模块生成的密文数据的解密密钥关联存储于上述Access中。然后,在判断服务模块是否具有针对上游服务模块发送的密文数据的解密权限时,确定Access中,是否包含与发送解密密钥获取请求的服务模块(例如目标服务模块)的模块标识关联存储的解密密钥。若是,则确定该服务模块具有针对上游服务模块发送的密文数据的解密权限。反之,则确定该服务模块不具有针对上游服务模块发送的密文数据的解密权限。
此外,在上述应用场景中,可以通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。这里,可以选用key derivation算法(如argon2、bcrypt等)作为伪随机函数,提供加密密钥生成能力
在这里,假设选取基于块加密算法的PRF作为加密密钥生成算法的伪随机函数,PRF的映射空间大小为N,攻击者至多可以进行Q次请求攻击。在实际环境下N至少为2128,现有计算条件下Q难以多于264,故可以认为攻击者可获得的密钥信息为可忽略的足够小量。
另外,可以采用如下方案实现数据加解密与脱敏:
首先,在数据流入侧,业务端可以接收上游数据并进行参数检查后,进行本地化处理,进而根据明文数据生成密文数据、数据摘要等。
然后,将密文数据、数据摘要等数据存储于数据库、ES、Kafka、Redis等数据存储服务中。由此,可以通过检索数据检索请求所请求检索的数据的数据摘要、读取数据读取请求所请求读取的数据的密文数据,实现数据检索和读取功能。
其中,可以基于哈希运算消息认证码(HMAC,Hash-based MessageAuthentication Code)生成加密密钥,相比传统可按业务分配不同的密钥以对抗彩虹表分析。密钥生成时可以绑定固定的摘要算法,无需在使用过程中单独指定。
之后,在数据流出侧,可以配置开关,控制通过接口输出明文数据或密文数据。具体而言,在服务模块不具备解密能力(即未完成配置)的情况下,可以通过程序来控制其是否需要对所得到的数据进行解密。进一步地,仅在其具备解密能力的情况下,才将密文数据传输至该服务模块,若不具备解密能力,则可以将明文数据传输至该服务模块。
可以理解,上述应用场景中,可以减少固定密钥带来的数据泄露问题,减少在获得明文数据之后无法保证其再次被流转而带来的数据泄露问题,以及减少由于解密行为没有集中管控,而导致的发生数据泄露时无法定位源头的问题。
请继续参考图2,示出了根据本公开的一个数据加密方法的一个实施例的流程200。该数据加密方法应用于业务端,该数据加密方法包括:
201,通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据。
在本实施例中,业务端可以确定本地缓存中是否包含加密密钥。
其中,业务端可以是用于提供业务处理的一个或多个电子设备(例如分布式服务器)。业务端可以部署有用于提供服务的多个服务模块。
202,响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥。
在本实施例中,在确定业务端的本地缓存中不包含加密密钥的情况下,业务端可以从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥。
其中,生成时刻指示密钥管理端生成加密密钥的时刻。通常,每个加密密钥对应一个生成时刻。当前时刻可以是执行上述202的时刻。
203,基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。
在本实施例中,基于202中所获取的加密密钥和上述目标服务模块接收到的业务数据,业务端可以生成与该业务数据相对应的密文数据。
本公开的上述实施例提供的数据加密方法应用于业务端,其可以通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据,然后,在本地缓存中不包含加密密钥的情况下,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥,最后,基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
在本实施例的一些可选的实现方式中,在本地缓存中不包含加密密钥的情况下,上述执行主体可以采用如下方式,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥:
首先,在本地缓存中不包含加密密钥的情况下,向与业务端通信连接的密钥管理端发送加密密钥获取请求。
然后,接收密钥管理端返回的、密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥。
可以理解,上述可选的实现方式可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,并且,在业务端确定本地缓存中不包含加密密钥的情况下,才从密钥管理端获取加密密钥,从而降低了加密密钥被分析的风险,进而提高了数据安全性。
在本实施例的一些可选的实现方式中,在目标服务模块的下游服务模块具备解密能力的情况下,上述执行主题还可以将密文数据传输至下游服务模块。
可以理解,在上述可选的实现方式中,在下游服务模块具备解密能力的情况下,业务端才将密文数据传输至该下游服务模块,由此确保服务模块未全部配置完成即可投入使用,因而可以更及时地将数据加密系统投入使用。
在本实施例的一些可选的实现方式中,在目标服务模块具备解密能力的情况下,业务数据为密文数据。所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据之后,还包括:
首先,获取用于对上游服务模块发送的密文数据进行解密的解密密钥。
然后,采用解密密钥对密文数据进行解密,以及确定本地缓存中是否包含加密密钥。
可以理解,上述可选的实现方式可以通过确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限,来确定是否向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥。由此,可以进一步提高数据的安全性。
在本实施例的一些可选的实现方式中,在目标服务模块不具备解密能力的情况下,业务数据为明文数据。基于此,上述执行主体还可以采用如下方式,确定本地缓存中是否包含加密密钥:
在目标服务模块接收到目标服务模块的上游服务模块发送的明文数据的情况下,确定本地缓存中是否包含加密密钥。
可以理解,上述可选的实现方式可以在目标服务模块不具备解密能力,并且,目标服务模块接收到目标服务模块的上游服务模块发送的明文数据的情况下,直接采用加密密钥对明文数据进行加密。由此,可以在未完成服务模块的配置的情况下,即可投入使用,因而可以更及时地将数据加密系统投入使用。
在本实施例的一些可选的实现方式中,上述执行主体还可以执行如下步骤:
首先,将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储。其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块。
然后,确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可以理解,上述可选的实现方式可以通过将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,实现数据传输异常的源头追溯,从而提高数据传输异常源头定位的及时性、准确性。
在本实施例的一些可选的实现方式中,在经过预设时长未从本地缓存中获取加密密钥的情况下,上述执行主体还可以删除本地缓存中的加密密钥。
可以理解,上述可选的时间方式可以在经过预设时长未从本地缓存中获取加密密钥的情况下,删除业务端的本地缓存中的加密密钥,从而提高业务端数据处理的速度。
在本实施例的一些可选的实现方式中,上述业务端还可以执行如下步骤:
步骤一,周期性地向密钥管理端发送加密密钥获取请求,采用密钥管理端返回的加密密钥替换本地缓存中的加密密钥。
步骤二,在周期性地向密钥管理端发送加密密钥获取请求,并且,经过预设时长未从本地缓存中获取加密密钥的情况下,暂停向密钥管理端发送加密密钥获取请求。
可以理解,上述可选的实现方式中的步骤一,可以周期性更新本地缓存中的加密密钥,从而降低了加密密钥频繁使用情况下加密密钥被分析的风险。上述可选的实现方式中的步骤二可以在经过预设时长未从本地缓存中获取加密密钥的情况下,暂停向密钥管理端发送加密密钥获取请求,在后续采用加密密钥进行数据加密的情况下,再从密钥管理端获取加密密钥,从而降低了资源消耗。
在本实施例的一些可选的实现方式中,业务端可以在每次获得加密密钥之后,采用最新获得的加密密钥对业务数据进行重新加密,从而获得新的密文数据。
在本实施例的一些可选的实现方式中,提供相同业务的服务模块的密钥使用权限相同。其中,每个服务模块具有一种密钥使用权限。
可以理解,上述可选的实现方式可以权限管理,使得业务内各服务模块间更有效的共享数据,并且可以降低中间密文数据转换的频率。
在本实施例的一些可选的实现方式中,上述执行主体还可以执行如下步骤:
步骤一,将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中。
步骤二,在接收到数据检索请求的情况下,在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要。
步骤三,在接收到数据读取请求的情况下,返回第二预设存储器中存储的、数据读取请求所请求读取的数据的密文数据。
可以理解,由于明文数据的加密密钥的变动将导致加密生成的密文数据的频繁变动,然而,明文数据的数据摘要往往是固定不变的。因而,在上述可选的实现方式中,可以通过在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要,实现数据检索,由此,可以在密文数据频繁变动的情况下,避免无法检索的情况。
在本实施例的一些可选的实现方式中,在业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
可以理解,上述可选的实现方式中,在多个服务模块均具备解密能力的情况下,多个服务模块之间通过密文数据进行数据传输。由此,通过在各服务模块之间传输密文数据而不包括明文数据进一步提高了数据安全性。
需要说明的是,除上面所记载的内容外,本公开实施例还可以包括与图1A对应的实施例中相同或类似的特征、效果,在此不再赘述。
进一步参考图3,图3是本公开的另一个数据加密方法的一个实施例的流程图。该数据加密方法应用于密钥管理端,该数据加密方法包括:
301,向与密钥管理端通信连接的业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据。
在本实施例中,在接收到与密钥管理端通信连接的业务端发送的加密密钥获取请求的情况下,密钥管理端可以向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据
从图3中可以看出,本实施例中的数据加密方法应用于密钥管理端,该数据加密方法的流程300可以在接收到与密钥管理端通信连接的业务端发送的加密密钥获取请求的情况下,向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据,其中,业务数据为业务端部署的目标服务模块接收到的、目标服务模块的上游服务模块传输的数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
在本实施例的一些可选的实现方式中,在目标服务模块具备解密能力的情况下,业务数据为密文数据。所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据之后,上述执行主体还可以执行如下步骤:
步骤一,在接收到业务端发送的解密密钥获取请求的情况下,确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限。其中,解密密钥获取请求经由业务端在目标服务模块接收到目标服务模块的上游服务模块发送的密文数据的情况下发送。
步骤二,在确定目标服务模块具有解密权限的情况下,向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥,以使业务端采用解密密钥对密文数据进行解密。
可以理解,上述可选的实现方式可以通过确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限,来确定是否向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥。由此,可以进一步提高数据的安全性。
在本实施例的一些可选的实现方式中,上述执行主体还可以执行如下步骤:
首先,将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储。其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块。
然后,在确定发生数据传输异常的情况下,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
可以理解,上述可选的实现方式可以通过将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,实现数据传输异常的源头追溯,从而提高数据传输异常源头定位的及时性、准确性。
在本实施例的一些可选的实现方式中,上述执行主体还可以将密钥管理端生成的加密密钥永久存储于第一预设存储器中。
可以理解,上述可选的实现方式可以将密钥管理端生成的全部加密密钥永久存储于第一预设存储器中,全部加密密钥可以长期保持有效不做清理,因此,无需对加密密钥等历史数据进行批量处理,进一步提高了数据安全性。
在本实施例的一些可选的实现方式中,提供相同业务的服务模块的密钥使用权限相同。其中,每个服务模块具有一种密钥使用权限。
可以理解,上述可选的实现方式可以通过编组,使得业务内各服务模块间更有效的共享数据,并且可以降低中间密文数据转换的频率。
在本实施例的一些可选的实现方式中,上述执行主体还可以执行以下步骤:
步骤一,将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中。
步骤二,在接收到数据检索请求的情况下,在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要。
步骤三,在接收到数据读取请求的情况下,返回第二预设存储器中存储的、数据读取请求所请求读取的数据的密文数据。
可以理解,由于明文数据的加密密钥的变动将导致加密生成的密文数据的频繁变动,然而,明文数据的数据摘要往往是固定不变的。因而,在上述可选的实现方式中,可以通过在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要,实现数据检索,由此,可以在密文数据频繁变动的情况下,避免无法检索的情况。
在本实施例的一些可选的实现方式中,上述执行主体还可以通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
可以理解,上述可选的实现方式中,加密密钥不再是完全随机的比特串,而以伪随机函数与根密钥通过计算生成加密密钥。加密密钥随时生成随时使用,可以不再落到数据库磁盘中。由此,可以提高系统可用性和横向扩展能力,密钥获取不再依赖数据库查询,可以满足海量密钥下系统高可用的需求。此外,还可以提高系统安全性。在上述可选的实现方式中,密钥管理端只需要保证根密钥安全性即可,降低了系统攻击面,简化了系统面临的攻击风险。
在本实施例的一些可选的实现方式中,在业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
可以理解,上述可选的实现方式中,在多个服务模块均具备解密能力的情况下,多个服务模块之间通过密文数据进行数据传输。由此,通过在各服务模块之间传输密文数据而不包括明文数据进一步提高了数据安全性。
需要说明的是,除上面所记载的内容外,本公开实施例还可以包括与图1A对应的实施例中相同或类似的特征、效果,在此不再赘述。
进一步参考图4,作为对上述各图所示方法的实现,本公开提供了一种数据加密装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征,以及产生与图2所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。
如图4所示,本实施例的数据加密装置400设置于业务端,该装置400包括:接收单元401、获取单元402和第一生成单元403。其中,接收单元401,被配置成通过目标服务模块接收该目标服务模块的上游服务模块传输的业务数据;获取单元402,被配置成响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥;第一生成单元403,被配置成基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。
在本实施例中,数据加密装置400的接收单元401可以确定本地缓存中是否包含加密密钥。
在本实施例中,在接收单元401确定本地缓存中不包含加密密钥的情况下,获取单元402可以从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥。
在本实施例中,第一生成单元403可以基于获取单元402所获取的加密密钥和上述目标服务模块接收到的业务数据,生成与业务数据相对应的密文数据。
在本实施例的一些可选的实现方式中,获取单元402包括:
发送子单元(图中未示出),被配置成响应于确定出本地缓存中不包含加密密钥,向与业务端通信连接的密钥管理端发送加密密钥获取请求;
接收子单元(图中未示出),被配置成接收密钥管理端返回的、密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥。
在本实施例的一些可选的实现方式中,该装置400还包括:
传输单元(图中未示出),被配置成响应于目标服务模块的下游服务模块具备解密能力,将密文数据传输至下游服务模块。
在本实施例的一些可选的实现方式中,在目标服务模块具备解密能力的情况下,业务数据为密文数据;以及
接收单元401包括:
获取子单元(图中未示出),被配置成获取用于对上游服务模块发送的密文数据进行解密的解密密钥;
解密子单元(图中未示出),被配置成采用解密密钥对密文数据进行解密,以及确定本地缓存中是否包含加密密钥。
在本实施例的一些可选的实现方式中,在目标服务模块不具备解密能力的情况下,业务数据为明文数据;以及
接收单元401包括:
确定子单元(图中未示出),被配置成确定本地缓存中是否包含加密密钥。
在本实施例的一些可选的实现方式中,该装置400还包括:
第一存储单元(图中未示出),被配置成将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
第二确定单元(图中未示出),被配置成响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
在本实施例的一些可选的实现方式中,该装置400还包括:
删除单元(图中未示出),被配置成响应于经过预设时长未从本地缓存中获取加密密钥,删除本地缓存中的加密密钥。
在本实施例的一些可选的实现方式中,该装置400还包括:
第一发送单元(图中未示出),被配置成周期性地向密钥管理端发送加密密钥获取请求,采用密钥管理端返回的加密密钥替换本地缓存中的加密密钥;
暂停单元(图中未示出),被配置成响应于经过预设时长未从本地缓存中获取加密密钥,暂停向密钥管理端发送加密密钥获取请求。
在本实施例的一些可选的实现方式中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
在本实施例的一些可选的实现方式中,该装置400还包括:
第二存储单元(图中未示出),被配置成将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
检索单元(图中未示出),被配置成响应于接收到数据检索请求,在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要;
第一返回单元(图中未示出),被配置成响应于接收到数据读取请求,返回第二预设存储器中存储的、数据读取请求所请求读取的数据的密文数据。
在本实施例的一些可选的实现方式中,在业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
本公开的上述实施例提供的数据加密装置设置于业务端,该装置400中,接收单元401可以确定本地缓存中是否包含加密密钥,然后,在本地缓存中不包含加密密钥的情况下,获取单元402可以从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥,最后,第一生成单元403基于所获取的加密密钥和业务数据,生成与业务数据相对应的密文数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
下面请参考图5,作为对上述各图所示方法的实现,本公开提供了另一种数据加密装置的一个实施例,该装置实施例与图3所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图3所示的方法实施例相同或相应的特征,以及产生与图3所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。
如图5所示,本实施例的数据加密装置500设置于密钥管理端,该装置500包括:第二发送单元501。其中,第二发送单元501,被配置成向与密钥管理端通信连接的业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据;其中,业务数据为业务端部署的目标服务模块接收到的、目标服务模块的上游服务模块传输的数据。
在本实施例中,在接收到与密钥管理端通信连接的业务端发送的加密密钥获取请求的情况下,数据加密装置500的第二发送单元501向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据;其中,业务数据为业务端部署的目标服务模块接收到的、目标服务模块的上游服务模块传输的数据。
在本实施例的一些可选的实现方式中,在目标服务模块具备解密能力的情况下,业务数据为密文数据;以及
该装置500还包括:
第三确定单元(图中未示出),被配置成响应于接收到业务端发送的解密密钥获取请求,确定目标服务模块是否具有针对上游服务模块发送的密文数据的解密权限,其中,解密密钥获取请求经由业务端在目标服务模块接收到目标服务模块的上游服务模块发送的密文数据的情况下发送;
第三发送单元(图中未示出),被配置成响应于确定目标服务模块具有解密权限,向业务端发送用于对上游服务模块发送的密文数据进行解密的解密密钥,以使业务端采用解密密钥对密文数据进行解密。
在本实施例的一些可选的实现方式中,该装置500还包括:
第三存储单元(图中未示出),被配置成将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
第四确定单元(图中未示出),被配置成响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的加密
在本实施例的一些可选的实现方式中,该装置500还包括:
第四存储单元(图中未示出),被配置成将密钥管理端生成的加密密钥永久存储于第一预设存储器中。
在本实施例的一些可选的实现方式中,提供相同业务的服务模块的密钥使用权限相同,其中,每个服务模块具有一种密钥使用权限。
在本实施例的一些可选的实现方式中,该装置500还包括:
第五存储单元(图中未示出),被配置成将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
检索单元(图中未示出),被配置成响应于接收到数据检索请求,在第二预设存储器中,检索数据检索请求所请求检索的数据的数据摘要;
第二返回单元(图中未示出),被配置成响应于接收到数据读取请求,返回第二预设存储器中存储的、数据读取请求所请求读取的数据的密文数据。
在本实施例的一些可选的实现方式中,该装置500还包括:
第二生成单元(图中未示出),被配置成通过预先确定的伪随机函数,根据根密钥和数据标识生成数据加密密钥。
在本实施例的一些可选的实现方式中,在业务端部署的服务模块均具备解密能力的情况下,服务模块之间通过密文数据进行数据传输。
本公开的上述实施例提供的数据加密装置500设置于密钥管理端,该装置500中,在接收到与密钥管理端通信连接的业务端发送的加密密钥获取请求的情况下,第二发送单元501可以向业务端发送密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使业务端基于所发送的加密密钥和业务数据,生成与业务数据相对应的密文数据;其中,业务数据为业务端部署的目标服务模块接收到的、目标服务模块的上游服务模块传输的数据。由此,本公开实施例可以采用生成时刻距离当前时刻最接近的加密密钥进行数据加密,从而相对于采用固定加密密钥对各数据进行加密等加密方式降低了加密密钥被分析的风险,进而提高了数据安全性。
下面,参考图6来描述根据本公开实施例的电子设备。该电子设备可以是第一设备和第二设备中的任一个或两者、或与它们独立的单机设备,该单机设备可以与第一设备和第二设备进行通信,以从它们接收所采集到的输入信号。
图6图示了根据本公开实施例的电子设备的框图。
如图6所示,电子设备6包括一个或多个处理器601和存储器602。
处理器601可以是中央处理单元(CPU)或者具有数据处理能力和/或指令执行能力的其他形式的处理单元,并且可以控制电子设备中的其他组件以执行期望的功能。
存储器602可以包括各种形式的计算机可读存储介质,例如易失性存储器和/或非易失性存储器。所述易失性存储器例如可以包括随机存取存储器(RAM)和/或高速缓冲存储器(cache)等。所述非易失性存储器例如可以包括只读存储器(ROM)、硬盘、闪存等。在所述计算机可读存储介质上可以存储一个或多个计算机程序指令,处理器601可以运行所述程序指令,以实现上文所述的本公开的各个实施例的数据加密方法以及/或者其他期望的功能。在所述计算机可读存储介质中还可以存储诸如输入信号、信号分量、噪声分量等各种内容。
在一个示例中,电子设备还可以包括:输入装置603和输出装置604,这些组件通过总线系统和/或其他形式的连接机构(未示出)互连。
例如,在该电子设备是第一设备或第二设备时,该输入装置603可以是上述的麦克风或麦克风阵列,用于捕捉声源的输入信号。在该电子设备是单机设备时,该输入装置603可以是通信网络连接器,用于从第一设备和第二设备接收所采集的输入信号。
此外,该输入装置603还可以包括例如键盘、鼠标等等。该输出装置604可以向外部输出各种信息,包括确定出的距离信息、方向信息等。该输出装置604可以包括例如显示器、扬声器、打印机、以及通信网络及其所连接的远程输出设备等等。
当然,为了简化,图6中仅示出了该电子设备中与本公开有关的组件中的一些,省略了诸如总线、输入/输出接口等等的组件。除此之外,根据具体应用情况,电子设备还可以包括任何其他适当的组件。
除了上述方法和设备以外,本公开的实施例还可以是计算机程序产品,其包括计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据加密方法中的步骤。
所述计算机程序产品可以以一种或多种程序设计语言的任意组合来编写用于执行本公开实施例操作的程序代码,所述程序设计语言包括面向对象的程序设计语言,诸如Java、C++等,还包括常规的过程式程序设计语言,诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。
此外,本公开的实施例还可以是计算机可读存储介质,其上存储有计算机程序指令,所述计算机程序指令在被处理器运行时使得所述处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据加密方法中的步骤。
所述计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
另外,本公开的实施例还可以是计算机程序,该计算机程序可以包括计算机可读代码。当上述计算机可读代码在设备上运行时,该设备中的处理器执行本说明书上述“示例性方法”部分中描述的根据本公开各种实施例的数据加密方法中的步骤。
以上结合具体实施例描述了本公开的基本原理,但是,需要指出的是,在本公开中提及的优点、优势、效果等仅是示例而非限制,不能认为这些优点、优势、效果等是本公开的各个实施例必须具备的。另外,上述公开的具体细节仅是为了示例的作用和便于理解的作用,而非限制,上述细节并不限制本公开为必须采用上述具体的细节来实现。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
本说明书中各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似的部分相互参见即可。对于系统实施例而言,由于其与方法实施例基本对应,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
可能以许多方式来实现本公开的方法和装置。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本公开的方法和装置。用于所述方法的步骤的上述顺序仅是为了进行说明,本公开的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本公开实施为记录在记录介质中的程序,这些程序包括用于实现根据本公开的方法的机器可读指令。因而,本公开还覆盖存储用于执行根据本公开的方法的程序的记录介质。
本公开的描述是为了示例和描述起见而给出的,而并不是无遗漏的或者将本公开限于所公开的形式。很多修改和变化对于本领域的普通技术人员而言是显然的。选择和描述实施例是为了更好说明本公开的原理和实际应用,并且使本领域的普通技术人员能够理解本公开从而设计适于特定用途的带有各种修改的各种实施例。
Claims (13)
1.一种数据加密方法,其特征在于,所述方法应用于业务端,所述方法包括:
通过目标服务模块接收所述目标服务模块的上游服务模块传输的业务数据;
响应于确定出本地缓存中不包含加密密钥,从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥;
基于所获取的加密密钥和所述业务数据,生成与所述业务数据相对应的密文数据。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
响应于所述目标服务模块的下游服务模块具备解密能力,将所述密文数据传输至所述下游服务模块。
3.根据权利要求1-2之一所述的方法,其特征在于,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;
所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据之后,还包括:
获取用于对所述上游服务模块发送的密文数据进行解密的解密密钥;
采用所述解密密钥对所述密文数据进行解密,以及确定所述本地缓存中是否包含加密密钥。
4.根据权利要求1-2之一所述的方法,其特征在于,在所述目标服务模块不具备解密能力的情况下,所述业务数据为明文数据;
所述通过目标服务模块接收目标服务模块的上游服务模块传输的业务数据之后,还包括:
确定所述本地缓存中是否包含加密密钥。
5.根据权利要求1-4之一所述的方法,其特征在于,所述方法还包括:
将所述业务数据的数据标识和与所述业务数据相对应的加密方标识关联存储,其中,与所述业务数据相对应的加密方标识指示用于对所述业务数据进行加密的服务模块;
响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
6.根据权利要求1-5之一所述的方法,其特征在于,所述方法还包括:
所述从密钥管理端获取生成时刻距离当前时刻最接近的加密密钥之后,在所述本地缓存中存储所述加密密钥;
响应于经过预设时长未从所述本地缓存中获取加密密钥,删除所述本地缓存中的加密密钥;和/或
周期性地向所述密钥管理端发送加密密钥获取请求,采用所述密钥管理端返回的加密密钥替换所述本地缓存中的加密密钥;响应于经过预设时长未从本地缓存中获取加密密钥,暂停向所述密钥管理端发送加密密钥获取请求。
7.一种数据加密方法,其特征在于,所述方法应用于密钥管理端,所述方法包括:
向与所述密钥管理端通信连接的业务端发送所述密钥管理端生成的加密密钥中生成时刻距离当前时刻最接近的加密密钥,以使所述业务端基于所发送的加密密钥和业务数据,生成与所述业务数据相对应的密文数据;
其中,所述业务数据为所述业务端部署的目标服务模块接收到的、所述目标服务模块的上游服务模块传输的数据。
8.根据权利要求7所述的方法,其特征在于,在所述目标服务模块具备解密能力的情况下,所述业务数据为密文数据;以及
所述方法还包括:
响应于接收到所述业务端发送的解密密钥获取请求,确定所述目标服务模块是否具有针对所述上游服务模块发送的密文数据的解密权限,其中,所述解密密钥获取请求经由所述业务端在所述目标服务模块接收到所述目标服务模块的上游服务模块发送的密文数据的情况下发送;
响应于确定所述目标服务模块具有所述解密权限,向所述业务端发送用于对所述上游服务模块发送的密文数据进行解密的解密密钥,以使所述业务端采用所述解密密钥对所述密文数据进行解密。
9.根据权利要求7或8所述的方法,其特征在于,所述方法还包括:
将业务数据的数据标识和与该业务数据相对应的加密方标识关联存储,其中,与该业务数据相对应的加密方标识指示用于对该业务数据进行加密的服务模块;
响应于确定发生数据传输异常,确定与发生数据传输异常的业务数据的数据标识关联存储的加密方标识指示的服务模块。
10.根据权利要求7-9之一所述的方法,其特征在于,所述方法还包括:
将明文数据的数据摘要和明文数据的密文数据存储于第二预设存储器中;
响应于接收到数据检索请求,在所述第二预设存储器中,检索所述数据检索请求所请求检索的数据的数据摘要;
响应于接收到数据读取请求,返回所述第二预设存储器中存储的、所述数据读取请求所请求读取的数据的密文数据。
11.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时,实现上述权利要求1-10任一所述的方法。
12.一种计算机程序产品,包括计算机程序/指令,其特征在于,该计算机程序/指令被处理器执行时实现上述权利要求1-10任一所述的方法。
13.一种电子设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述存储器中存储的计算机程序,且所述计算机程序被执行时,实现上述权利要求1-10任一所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210320862.7A CN114629644A (zh) | 2022-03-29 | 2022-03-29 | 数据加密方法、存储介质、计算机程序产品和电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210320862.7A CN114629644A (zh) | 2022-03-29 | 2022-03-29 | 数据加密方法、存储介质、计算机程序产品和电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114629644A true CN114629644A (zh) | 2022-06-14 |
Family
ID=81903910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210320862.7A Pending CN114629644A (zh) | 2022-03-29 | 2022-03-29 | 数据加密方法、存储介质、计算机程序产品和电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114629644A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011000A (zh) * | 2023-03-27 | 2023-04-25 | 北京信安世纪科技股份有限公司 | 访问方法、装置、及计算设备 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387500A (zh) * | 2011-10-25 | 2012-03-21 | 中兴通讯股份有限公司 | 一种业务密钥管理方法及系统 |
CN107786328A (zh) * | 2017-09-01 | 2018-03-09 | 深圳市金立通信设备有限公司 | 一种生成密钥的方法、服务节点设备及计算机可读介质 |
US20190132120A1 (en) * | 2017-10-27 | 2019-05-02 | EMC IP Holding Company LLC | Data Encrypting System with Encryption Service Module and Supporting Infrastructure for Transparently Providing Encryption Services to Encryption Service Consumer Processes Across Encryption Service State Changes |
WO2019227557A1 (zh) * | 2018-06-01 | 2019-12-05 | 平安科技(深圳)有限公司 | 密钥管理方法、设备、存储介质及装置 |
CN111104691A (zh) * | 2019-11-28 | 2020-05-05 | 贝壳技术有限公司 | 敏感信息的处理方法、装置、存储介质及设备 |
CN111274611A (zh) * | 2020-02-04 | 2020-06-12 | 北京同邦卓益科技有限公司 | 数据脱敏方法、装置及计算机可读存储介质 |
CN112367169A (zh) * | 2020-11-11 | 2021-02-12 | 平安科技(深圳)有限公司 | 数据加解密方法、装置、设备及存储介质 |
WO2021144848A1 (ja) * | 2020-01-14 | 2021-07-22 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
CN113987557A (zh) * | 2021-12-24 | 2022-01-28 | 亿次网联(杭州)科技有限公司 | 一种文件加密处理方法、系统、电子设备和存储介质 |
CN114095152A (zh) * | 2020-08-03 | 2022-02-25 | 天翼电子商务有限公司 | 密钥更新及数据加解密方法、系统、介质及装置 |
-
2022
- 2022-03-29 CN CN202210320862.7A patent/CN114629644A/zh active Pending
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102387500A (zh) * | 2011-10-25 | 2012-03-21 | 中兴通讯股份有限公司 | 一种业务密钥管理方法及系统 |
CN107786328A (zh) * | 2017-09-01 | 2018-03-09 | 深圳市金立通信设备有限公司 | 一种生成密钥的方法、服务节点设备及计算机可读介质 |
US20190132120A1 (en) * | 2017-10-27 | 2019-05-02 | EMC IP Holding Company LLC | Data Encrypting System with Encryption Service Module and Supporting Infrastructure for Transparently Providing Encryption Services to Encryption Service Consumer Processes Across Encryption Service State Changes |
WO2019227557A1 (zh) * | 2018-06-01 | 2019-12-05 | 平安科技(深圳)有限公司 | 密钥管理方法、设备、存储介质及装置 |
CN111104691A (zh) * | 2019-11-28 | 2020-05-05 | 贝壳技术有限公司 | 敏感信息的处理方法、装置、存储介质及设备 |
WO2021144848A1 (ja) * | 2020-01-14 | 2021-07-22 | 三菱電機株式会社 | 登録装置、検索操作装置、データ管理装置、登録プログラム、検索操作プログラムおよびデータ管理プログラム |
CN111274611A (zh) * | 2020-02-04 | 2020-06-12 | 北京同邦卓益科技有限公司 | 数据脱敏方法、装置及计算机可读存储介质 |
CN114095152A (zh) * | 2020-08-03 | 2022-02-25 | 天翼电子商务有限公司 | 密钥更新及数据加解密方法、系统、介质及装置 |
CN112367169A (zh) * | 2020-11-11 | 2021-02-12 | 平安科技(深圳)有限公司 | 数据加解密方法、装置、设备及存储介质 |
CN113987557A (zh) * | 2021-12-24 | 2022-01-28 | 亿次网联(杭州)科技有限公司 | 一种文件加密处理方法、系统、电子设备和存储介质 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116011000A (zh) * | 2023-03-27 | 2023-04-25 | 北京信安世纪科技股份有限公司 | 访问方法、装置、及计算设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11979388B2 (en) | System and method for enhanced data protection | |
CN108632284B (zh) | 基于区块链的用户数据授权方法、介质、装置和计算设备 | |
US9735962B1 (en) | Three layer key wrapping for securing encryption keys in a data storage system | |
US11397820B2 (en) | Method and apparatus for processing data, computer device and storage medium | |
US9020149B1 (en) | Protected storage for cryptographic materials | |
CN109450633B (zh) | 信息加密发送方法及装置、电子设备、存储介质 | |
WO2021076868A1 (en) | Systems and methods for re-using cold storage keys | |
JP2014119486A (ja) | 秘匿検索処理システム、秘匿検索処理方法、および秘匿検索処理プログラム | |
CN109726575B (zh) | 一种数据加密方法及装置 | |
CN108777685B (zh) | 用于处理信息的方法和装置 | |
CN110708291B (zh) | 分布式网络中数据授权访问方法、装置、介质及电子设备 | |
US10536276B2 (en) | Associating identical fields encrypted with different keys | |
CN104967591A (zh) | 云存储数据读写方法、设备及读写控制方法、设备 | |
WO2022189851A1 (en) | Systems, methods, and computer-readable media for utilizing anonymous sharding techniques to protect distributed data | |
CN112469036A (zh) | 一种消息加解密方法、装置、移动终端和存储介质 | |
CN109711178B (zh) | 一种键值对的存储方法、装置、设备及存储介质 | |
CN109325360B (zh) | 信息管理方法与装置 | |
CN114629644A (zh) | 数据加密方法、存储介质、计算机程序产品和电子设备 | |
US9218296B2 (en) | Low-latency, low-overhead hybrid encryption scheme | |
US10491387B2 (en) | End-to-end encryption of a block storage device with protected key | |
KR102542213B1 (ko) | 네트워크 기반 스토리지의 데이터 실시간 암복호화 보안 시스템 및 방법 | |
US20230179404A1 (en) | Hybrid cloud-based security service method and apparatus for security of confidential data | |
CN111783140A (zh) | 请求响应方法及装置、电子设备及计算机可读存储介质 | |
CN113672955B (zh) | 一种数据处理方法、系统及装置 | |
EP3985540B1 (en) | Method and apparatus for generating synthetic data |
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 |