CN104426973B - 一种云数据库加密方法、系统及装置 - Google Patents

一种云数据库加密方法、系统及装置 Download PDF

Info

Publication number
CN104426973B
CN104426973B CN201310393464.9A CN201310393464A CN104426973B CN 104426973 B CN104426973 B CN 104426973B CN 201310393464 A CN201310393464 A CN 201310393464A CN 104426973 B CN104426973 B CN 104426973B
Authority
CN
China
Prior art keywords
data
ciphertext
clear text
calculating
cloud database
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
Application number
CN201310393464.9A
Other languages
English (en)
Other versions
CN104426973A (zh
Inventor
侯长江
刘斐
柏洪涛
任兰芳
王静
左敏
刘芳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China Mobile Communications Group Co Ltd
Original Assignee
China Mobile Communications Group Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China Mobile Communications Group Co Ltd filed Critical China Mobile Communications Group Co Ltd
Priority to CN201310393464.9A priority Critical patent/CN104426973B/zh
Publication of CN104426973A publication Critical patent/CN104426973A/zh
Application granted granted Critical
Publication of CN104426973B publication Critical patent/CN104426973B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network 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
    • H04L63/0471Network 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 applying encryption by an intermediary, e.g. receiving clear information at the intermediary and encrypting the received information at the intermediary before forwarding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提出一种云数据库加密方法、系统及装置,其中方法包括:数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。本发明能够提高云数据库的安全性,并且支持数值型加密数据的多种运算。

Description

一种云数据库加密方法、系统及装置
技术领域
本发明涉及云数据库技术领域,尤其涉及一种云数据库加密方法、系统及装置。
背景技术
数据库系统是企业信息系统的核心之一,随着云计算技术的发展,传统上部署在本地网络环境中的单机数据库和分布式数据库正逐渐向部署在数据中心的云数据库迁移。相对于传统的数据库系统,云数据库具有高可扩展性和高可用性的特点,能够满足电信、金融等需要大规模存储和大规模数据处理的领域的应用,并降低客户的成本。由于数据库系统中存储的大量结构化数据(即数据表),如企业的财务数据、企业客户关系数据、医疗机构的病例档案等,具有高价值和高敏感性,为了保证企业数据安全,在迁移至第三方的云数据库时需要对敏感数据进行加密以抵御可能来自数据中心内部和外部的各种安全威胁。
云数据库是一种新的云计算服务,与对象存储等云存储服务模式不同。首先,传统的对象云存储服务中存储的数据为非结构化数据,例如二进制数据文件;而云数据库主要存储结构化数据,特别是包括大量的数值型数据。更重要的区别是,云数据库要为客户同时提供对结构化数据的存储服务以及对结构化数据的处理服务,而对象云存储服务则不涉及对加密数据的计算需求。传统的数据加密方案,如高级加密标准(AES,AdvancedEncryption Standard)分组加密算法不适用于云数据库,因为经过加密后的密文数据不支持任何计算,客户必须将数据下载到本地解密后才能够进行计算。
通过对国内外发明专利和相关技术进行检索,我们将已存在且与本发明相关性较高的技术总结为三类,分别是:本地数据库加密方案,麻省理工大学的CryptDB方案和CipherCloud公司的云数据库加密网关:
本地数据库加密方案主要是对存储在磁盘上的数据进行加密,加密的数据在读入内存后解密,并对解密后的数据进行操作和计算。通过本地数据库加密,所有存储在磁盘上的数据都是加密的。本地数据库加密方案不能用于保护云数据库安全,这是因为即使将本地数据加密方案应用于云数据库,数据也会在云数据库中的内存中解密,而云数据库的内存中也是不安全的,容易遭受来自于云服务内部的攻击。
麻省理工大学的CryptDB云数据库加密方案主要采用对称加密,不区分数据上传者和数据申请者,两者合为一体,都拥有能够解密数据的密钥,只要有一个数据上传者的终端系统被攻破,整个系统的安全性就遭到破坏,因此该方案的安全性较低。并且,该方案只能够进行密文的加法操作。
CipherCloud公司的云数据加密网关技术中包括一种对云数据库进行加密的技术方案,其方案主要特征为对称加密方案和数据标记技术,并且没有信息表明该方案支持对数值型加密数据的计算。
可见,现有的云数据库加密技术的安全性较低,并且不能支持数值型加密数据的多种运算。
发明内容
本发明提供了一种云数据库加密方法,能够提高云数据库的安全性,并且支持数值型加密数据的多种运算。
本发明还提供了一种云数据库加密系统及用于云数据库加密的装置,能够提高云数据库的安全性,并且支持数值型加密数据的多种运算。
本发明的技术方案是这样实现的:
一种云数据库加密方法,包括:
数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;
数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
一种云数据库加密系统,包括:
数据申请客户端,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端;所述密钥对对应不同的计算种类;
数据上传客户端,用于对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库;
云数据库,用于保存所述数据密文及其对应的数据明文的预处理方式。
一种用于云数据库加密的数据申请客户端,包括:
密码生成模块,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端,并将所述密钥对发送至重加密代理;所述密钥对对应不同的计算种类;
密文计算请求模块,用于向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
结果处理模块,用于接收云数据库反馈的最终结果的密文,采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文。
一种用于云数据库加密的数据上传客户端,包括:
公钥保存模块,用于接收并保存对应不同计算种类的密钥对中的公钥;
预处理及加密模块,用于对数据明文进行预处理;并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文;
密文上传模块,用于将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
一种用于云数据库加密的云数据库,包括:
存储模块,用于接收并保存数据上传客户端发送的数据密文及其对应的数据明文的预处理方式;
总控模块,用于接收数据申请客户端发送的密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;当所述计算数据为数据密文及预处理方式在存储模块中的位置信息时,根据所述位置信息及计算公式中的计算种类从存储模块中提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎;当所述计算数据为数据密文以及预处理方式时,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎;
计算引擎,用于采用所述针对数据密文的计算公式对数据密文进行计算,当无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理,采用重加密代理返回的数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端。
一种用于云数据库加密的重加密代理,包括:
密钥对保存模块,用于保存数据申请客户端发送的一个以上密钥对,所述密钥对对应不同的计算种类;
计算模块,用于接收来自云数据库的计算中间结果及针对计算中间结果的计算公式,采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库。
可见,本发明提出的云数据库加密方法、系统及装置,由数据申请客户端生成对应不同计算种类的密钥对,将其中的公钥发送至数据上传客户端;数据上传客户端对数据明文进行预处理之后,采用可能进行的计算种类所对应的密钥对中的公钥进行加密,将数据密文及对应明文的预处理方式上传至云数据库,从而使云数据库可以直接采用数据密文进行多种运算。由于用于解密的私钥由数据申请方拥有,而数据申请方通常位于企业内部网络中,因此能够提高云数据库的安全性。
附图说明
图1为本发明提出的云数据库加密方法实现流程图;
图2为本发明中密钥及数据的交互示意图;
图3为本发明提出的云数据库加密系统的结构示意图;
图4为本发明提出的数据申请客户端的结构示意图;
图5为本发明提出的数据上传客户端的结构示意图;
图6为本发明提出的云数据库的结构示意图;
图7为本发明提出的重加密代理的结构示意图。
具体实施方式
本发明提出一种云数据库加密方法,其应用的系统由三方构成,分别为云数据库、数据上传方和数据请求方。云数据库是云计算供应商提供给客户的服务,其中包括对结构化数据(也就是数据表)的存储和计算,云数据库对数据的存储和计算都是位于客户的网络边界之外的,不受客户的控制。数据上传方和数据请求方可以视为云数据库客户的两种不同角色,其中数据上传方是云数据库中数据的生产者,数据上传方将客户的数据由本地网络环境上传到云数据库中。数据请求方是云数据库中数据的消费者,数据请求方可以要求从云数据库中下载指定的数据到本地网络环境,也可以向云数据库发送对云数据库中数据的计算请求,并将计算结果下载到本地网络环境。数据上传方和数据请求方可以是同一个实体,如相同的用户或计算设备,也可以是不同的实体。
以一个大型的家电零售企业为例,该企业在全国范围内拥有多家连锁家电卖场,其中每个卖场均配置有多台POS机,这些POS机通过专网或虚拟专用网(VPN,VirtualPrivate Network)连入企业总部的网络,每天的销售数据由POS机产生并传输到总部的部署在小型机上的关系数据库中,数据分析人员通过在数据库中的数据上执行一定的分析函数,从而对企业的销售情况、资金状况做出统计和分析结果。随着该企业的业务扩展和数据量的增大,用于存储和分析数据的小型机和商业关系数据系统无法支持业务的需要,该企业决定将本地的数据库及分析系统迁移至云数据库系统中。迁移后的系统中,POS机生成的数据会通过网络传输上云数据库中,而总部的数据分析人员通过终端向云数据库发出数据分析的计算指令,并得到计算结果。在迁移后的场景中,位于卖场的POS机等终端系统构成本发明系统中的数据上传方,位于总部的数据分析人员及其终端构成数据请求方,而场景中的云数据库则构成系统的云数据库方。
应用与上述场景,本发明提出一种云数据库加密系统,包括:
云数据库:云数据库包括云数据库总控模块、云数据库存储模块,和云数据库密文计算引擎。本发明的云数据库加密方法可以用于传统的关系型数据库向非关系型的云数据库进行安全迁移,保证用户数据安全和隐私,保证对本地数据的计算可以迁移到云数据库上对密文的计算。本发明的方法可以适用于现有的多种云数据库,我们建议以NoSQL(Notonly SQL),即具有良好扩展性和高并发处理能力的非关系型云数据库作为本发明中云数据库的实例。
数据上传客户端:数据上传客户端部署于数据上传方,为数据上传方提供用户界面和应用程序开发界面。数据上传客户端从用户或用户代理程序那里获得待上传到云服务器的明文数据,对数据进行预处理和加密,并完成密文的上传。数据上传客户端根据可能进行计算的种类对经过预处理后的明文采用不同的加密算法进行加密。
数据申请客户端:数据申请客户端部署于数据申请方,为数据申请方提供用户界面和应用程序开发界面。数据申请方客户端从用户或用户代理程序那里获得计算请求,将计算请求以及参与计算的数据发送给云数据库,并从云数据库那里获得返回的计算结果,将结果的密文解密并进行数据处理,将处理后的最终明文结果返回给用户或用户代理程序。
重加密代理:重加密代理可以是一个在线的服务器也可以是一个独立的插件,部署于数据申请方可信的环境中,并可以和云数据库通信。重加密代理是属于数据申请方的,并被数据申请方信任。重加密代理主要用于为云数据库提供服务,云数据库将无法计算的表达式和密文数据发送给重加密代理,重加密代理对密文解密后,采用明文进行计算,并将计算结果重新加密,将结果密文返回给云数据库。
应用上述系统,本发明提出一种云数据库加密方法,如图1为该方法实现流程图,包括:
步骤101:数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;
步骤102:数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
由于云数据库是对数码密文进行计算的,并且必须保证从数据密文的计算结果能够得到等于数据明文的计算结果,为达到这一要求,步骤101中数据申请客户端生成的密钥对需要满足特定的加密方案,可以为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。具体如下:
加法同态加密方案:加密同态加密方案属于公钥加密,此类方案支持密文之间的加法操作,密文之和解密后等于对应的明文之和。通常加法同态加密方案的明文值域为非负整数,方案支持任意多次的密文间加法运算,但不支持密文之间的乘法运算和其他运算。目前已经有多种加法同态方案,在实际部署中本发明建议采用Paillier加法同态加密方案。
乘法同态加密方案:乘法同态加密属于公钥加密,此类方案支持密文之间的乘法操作,密文的乘积解密后等于对应文明的乘积。通常乘法同态加密方案的明文值域为非负整数,方案支持任意多次的密文间乘法运算,但不支持密文之间的加法运算或其他运算。目前已经有多种乘法同态方案,在实际部署中本发明建议采用ElGamal乘法同态加密方案。
一定程度的全同态加密方案(Somewhat Fully Homomorphic Encryption):一些同态加密方案支持任意数量的密文加法运算和少量密文乘法运算,这些同态加密方案又称为一定程度的全同态加密方案。通常一定程度的全同态加密方案的明文值域为非负整数。在实际部署中本发明建议采用BGN方案和BV方案,其中BGN同态加密支持无限次数的密文加法运算和一次密文乘法运算,BV加密方案可以支持少量的乘法。另外,全同态加密是可以同时支持无限次数密文加法运算和乘法运算的加密方案,目前已经出现多个全同态加密方案,但是效率较低。
上述加密方案都属于公钥加密方案。公钥加密方案的使用需要在加密之前进行密钥的生成和分发。公钥加密方案的密钥对由公钥和私钥构成,其中公钥用于数据加密,并需要以可信的方式分发到所有进行加密的终端,在本发明中为数据上传客户端;私钥用于数据解密,需要安全地保存在本地,在本发明中为数据申请客户端。
在本发明中,由数据申请客户端安全地生成公钥和私钥密钥对。在实际部署中本发明建议在离线的安全密码机或密码卡中生成密钥对。
数据申请客户端在本地系统中安全地存储密钥对。在实际部署中本发明建议通过HSM(Hardware Security Module,硬件安全模块)来存储密钥对,对于个人用户终端可以采用USB Key形式的HSM,对于企业应用可以采用PCI卡或者主机形式的HSM。
数据申请客户端将密钥对通过上述安全方式部署在重加密代理中。
数据申请客户端通过可信的方式将公钥集合分发给数据上传客户端。在实际部署中本发明建议通过PKI(公钥基础设施)体制分发密钥,也就是通过向CA权威中心申请公钥证书,并且将公钥证书分发给数据上传客户端。
由上述对加密方案的介绍可见,加法同态加密、乘法同态加密和一定程度的全同态加密都要求数据明文的值域为非负整数,并且只能支持加法和乘法计算;而在实际情况中,数据上传客户端上传的数据明文还包括其他类型,并且数据申请客户端请求的计算还包括加法和乘法以外的运算。为了解决这一矛盾,本发明可以采用如下两种措施:
第一,数据上传客户端在对数据明文进行加密之前对数据明文进行预处理,使数据满足计算要求并支持更多种类的计算;
第二,设置重加密代理,重加密代理从数据申请客户端处获取密钥对。当云数据库无法继续计算时,将计算中间结果及计算公式发送至重加密代理;重加密代理采用密钥对中的私钥进行解密,采用解密后的数据进行计算,并对计算结果采用密钥对中的公钥进行加密,将加密后的结果反馈至云数据库;云数据库采用重加密代理返回的数据密文继续计算,当无法继续计算时重复前述过程,直至计算出最终结果的密文。
如图2为本发明中密钥及数据的交互示意图。数据申请客户端生成密钥对,将密钥对中的公钥发送至数据上传客户端,并将密钥对发送至重加密代理;数据上传客户端对数据明文进行预处理后,对预处理的结果采用公钥进行加密,将数据密文及预处理方式上传至云数据库。数据申请客户端向云数据库发送密文计算请求;云数据库采用数据密文进行计算,当无法计算时,将计算中间结果及计算公式发送至重加密代理;重加密代理将计算中间结果解密,采用解密后的数据进行计算,得到计算结果,再将计算结果加密,将加密后的数据密文返回至云数据库;云数据库与重加密代理的交互可能重复多次。最终,云数据库将结果密文发送至数据申请客户端,数据申请客户端对结果密文解密,得到结果明文。
以下举具体的实施例详细介绍。
实施例一:
本实施例介绍对数据明文的预处理方式。预处理方式可以为:根据可能进行的计算种类,对数据明文进行扩展;之后,将数据明文及扩展后的数据映射为非负整数。
以下详细介绍。
一个待迁移的本地数据库系统包含如下内容:
对数据表结构的定义,数据表中的每列都需要制定一个数据类型,数据表支持的数据类型分为三类:分别是数值型、字符串型和二进制数据,其中数值型又可以细分为整数和实数,整数可以再分为有符号整数和无符号整数。数值型数据类型还可以指定不同的精度,即采用多少二进制位来表示一个整数。
数据库中的数据可以视为一个二维表,其中每行可以看做一个记录,一个记录包含多个字段,每个字段的值域由表结构定义中的列数据类型规定。
对数据库数据的统计和分析算法,例如,针对下表所示的数据表,数据申请方可以要求在月收入一列做平均值的计算。
类型 月收入 日期
1 工资 6000 2012-01-01
2 工资 7000 2012-01-20
3 工资 8000 2012-02-01
4 工资 6600 2012-03-01
5 工资 7300 2012-04-01
6 工资 8000 2012-05-01
7 工资 8000 2012-06-01
8 工资 6000 2012-07-01
9 工资 8000 2012-08-01
10 工资 8000 2012-12-01
对原数据库中的现有数据进行统计,可以确定每列中数据的值域范围和数值特点,数值范围和数值特点可以包括单不限于最大值、最小值、最大公约数、最小公倍数、平均值、方差等等。
根据对原数据的计算逻辑,发现每一列所需要进行的计算类型,这些计算可以包括加法、求负数、乘法、求倒数,求幂等等。
最后得到云数据库的数据表结构定义,每列数据包含如下内容:
1)该列数据的基本数据类型;
2)该列数据的值域范围
3)该列数据可能进行的计算种类,可以包括但不限于加法、减法、求负数、求倒数、求幂等。
确定上述内容之后,数据上传客户端可以对数据明文进行预处理,具体方式可以为:根据可能进行的计算种类对数据明文进行扩展,之后将数据明文及扩展后的数据映射为非负整数。需要指出的是,对数据明文进行扩展并非必要步骤,也可以仅对数据明文进行映射。
针对不同类型的数据明文,可以具体采用不同的预处理方式。包括:
1)当数据明文为枚举类型数据时,由于对枚举类型数据不存在复杂的计算,因此对此类数据不需要进行扩展,只需将枚举类型的数据明文直接映射为非负整数。由于枚举类型的值选自一个允许值列表中,该列表在数据表创建时的列规格中被明确列举,故可以将枚举类型中的每一个值分别映射为整数的1、2、3、4等。
2)当数据明文不是枚举类型数据时,首先可以对数据明文进行扩展,扩展的方式包括但不限于计算数据明文的负数、倒数、幂。
扩展之后,可以将数据明文及扩展后的数据映射为非负整数,例如:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数。
映射方式举例如下:
例如,如果数据x为有符号整数,假定值域范围为[-a,b],其中a、b为非负整数,则可以通过函数f(x)=x+a可以将值域范围为[-a,b]的有符号整数映射为值域为[0,a+b]的非负整数。
又如,如果数据类型为非负浮点数,并且其精度范围包括小数范围,那么根据其值域的范围,可以将该值乘以一个固定的正整数,使得映射后的值不存在小数范围精度。例如当一个数据项为正浮点数,其值域的最小值为1.2345E-10,小数部分精度有4位十进制数字,那么可以将该数据项统一乘以10E14,从而将该数据项的所有值都映射为正整数。
又如,如果数据类型为负浮点数,可以先将该数乘以一个固定的正整数,得到一个有符号整数,再将该有符号整数与一个正整数相加,得到映射后的非负整数。例如当一个数据项为负浮点数,其值域的最大值为-1.2345E-10,小数部分精度有4位十进制数字,那么可以将该数据项统一乘以10E14,从而将该数据项的所有值都映射为负整数,之后将该负整数与一个固定的正整数相加,得到非负整数。
以上针对部分类型数据的映射方式进行了举例,本发明对具体的映射方式不作限制,只需要满足最终的映射结果为非负整数即可。
对于映射后的数据,本发明采用不同的加密方式进行加密,具体如下:
1)对于原数据项A,可以对映射结果采用加法同态加密算法或一定程度的全同态加密算法进行加密,以支持密文加法操作;
也可以对映射结果采用乘法同态加密算法或一定程度的全同态加密算法进行加密,以支持密文乘法操作。
2)对于原数据项A的负数,即-A,可以对映射结果采用加法同态加密算法或一定程度的全同态加密算法进行加密,以支持密文减法操作。
3)对于原数据项A的倒数,即1/A,可以对映射结果采用乘法同态加密算法或一定程度的全同态加密算法进行加密,以支持密文除法操作。
4)对于原数据项A的幂,即A^n,可以对映射结果采用乘法同态加密算法或一定程度的全同态加密算法进行加密,以支持密文幂操作。
另外,由于数据上传客户端对需要上传的数据明文进行了预处理,即上传至云数据库的数据所对应的明文并不是原始的数据明文,因此数据上传客户端需要将对数据明文的预处理方式一并上传至云数据库,以便云数据库在后续计算时能够最终得到对原始数据明文的计算结果。
实施例二:
本实施例介绍密文计算过程。数据申请客户端生成密钥对后,进一步将所述密钥对发送至重加密代理;
需要进行密文计算时,数据申请客户端向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
云数据库根据所述位置信息及计算公式中的计算种类从云数据库中提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提取的数据密文进行计算;或者,云数据库根据接收的预处理方式及计算公式生成针对数据密文的计算公式,对接收的数据密文进行计算;
当云数据库无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理,重加密代理采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库;
云数据库采用所述重加密代理返回的数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端;
数据申请客户端采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文。
上述过程中,云数据库判定无法对数据密文继续进行计算的方式可以为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当云数据库收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化为0。
以下具体介绍。
在进行密文计算时,首先由数据申请客户端向云数据库发出密文计算请求,密文计算请求由进行计算的数据集合和计算公式构成。如果数据集合中的数据项是云数据库中的密文数据,那么计算请求中以该数据的在云数据库中的逻辑位置或查询方式给出。数据在云数据库中的逻辑位置可以看做该数据的一个地址或者索引,例如,数据库某表中第N列的前10个数据项,或者数据库某表中属性为“年龄”的第一个数据项。也可以通过查询的方式从云数据库中获取密文数据的集合,例如,可以从数据库某表中提取某列最近插入的10个数据项。如果数据集合中包括由数据申请方提供的、不在云数据库中的数据项,那么数据申请客户端应首先采用本发明中的数据预处理子步骤和加密子步骤对该明文进行预处理及加密,并加入到计算请求中。计算公式是一个确定型的数学公式,即不包括IF、ELSE判断语句。
云数据库在接收到计算请求后,对计算公式进行分析,根据计算公式中对数据进行的计算类型从数据库中提取该计算类型对应的密文。如果对密文的计算只涉及加法计算,那么就从数据库中提取该数据经过加法同态加密产生的密文;如果对密文的计算只涉及乘法计算,那么就从该数据库中提取该数据经过乘法同态加密产生的密文;如果对密文的计算涉及多种计算,那么可以提取一定程度全同态加密产生的密文。
云数据库会为参与计算的密文中间结果设置一个累加标记,这个标记用于记录该密文进行计算的种类和数量。因为本方案中采用的同态加密方案作为基本工具不能提供任意类型的计算或任意数量的计算,因此在进行一定数量的计算后,通过累加标记的值,云数据库可以知道该密文已经达到计算数量的上限,中间计算结果密文将无法进行更多的运算,如果再进行运算,则会导致密文不可计算或计算后的密文不可解密。
在出现密文达到计算上限的情况下,云数据库会将密文、对该密文的计算,以及由数据申请方发出的计算请求发送给重加密代理。重加密代理会首先验证计算请求的数字签名,从而判断该计算请求是否为数据申请方发出。验证通过后,重加密代理会将密文重加密请求和计算请求进行匹配分析,确认云数据库发出的请求是计算请求中的一个子步骤并且云数据库本身无法完成。
重加密代理会解密请求中的密文,用公式对明文进行计算,并将计算结果进行加密,之后,重加密代理将密文返回给云数据库。
云数据库将该密文的累加标记初始化为0,重新参与计算。上述云数据库与重加密代理的交互可能重复多次,直至云数据库计算出最终结果的密文。
如果收到数据申请客户端接收到的结果是一个包含密文在内的表达式,则数据申请客户端完成对该表达式的计算。
例如,在线调查问卷统计国民平均收入,为了保证参与问卷调查的人员,即数据的上传方的隐私,数据上传客户端使用数据申请客户端的公钥对其工资进行加密,之后上传到云数据库。
云端对密文数据进行加法操作,并将得到的密文结果以及参与问卷的总人数N发送给数据申请客户端,数据申请客户端解密得到结果SUM,计算表达式SUM/N即可得到国民平均收入。
本发明还提出一种云数据库加密系统,如图3为该系统结构示意图,包括:
数据申请客户端301,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端;所述密钥对对应不同的计算种类;
数据上传客户端302,用于对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库;
云数据库303,用于保存所述数据密文及其对应的数据明文的预处理方式。
上述系统中,数据申请客户端301生成的密钥对可以为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
上述系统中,数据上传客户端302对数据明文进行预处理的方式可以为:根据可能进行的计算种类,对数据明文进行扩展;将数据明文及扩展后的数据映射为非负整数。
数据上传客户端302对数据明文进行扩展的方式可以为:计算数据明文的负数、倒数或幂。
数据上传客户端302将数据明文及扩展后的数据映射为非负整数的方式可以为:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数;
当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
上述系统可以进一步包括重加密代理304;
所述数据申请客户端301还将所述密钥对发送至重加密代理304;
数据申请客户端301还用于,向云数据库303发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;还用于采用对应密钥对中的私钥对云数据库303反馈的最终结果的密文进行解密,得到最终结果的明文。
云数据库303还用于,根据所述位置信息及计算公式中的计算种类提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提取的数据密文进行计算;或者,根据接收的预处理方式及计算公式生成针对数据密文的计算公式,对接收的数据密文进行计算;还用于当无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理304;并接收重加密代理304返回的数据密文,采用所述数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端301;
所述重加密代理304用于,采用对应密钥对中的私钥对所述计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库303。
上述系统中,云数据库303判定无法对数据密文继续进行计算的方式可以为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当云数据库303收到重加密代理304返回的数据密文时,将所述累加标记中的计算次数初始化为0。
本发明还提出一种用于云数据库加密的数据申请客户端,如图4为该数据申请客户端的结构示意图,包括:
密码生成模块401,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端,并将所述密钥对发送至重加密代理;所述密钥对对应不同的计算种类;
密文计算请求模块402,用于向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
结果处理模块403,用于接收云数据库反馈的最终结果的密文,采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文。
上述密钥对可以为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
本发明还提出一种用于云数据库加密的数据上传客户端,如图5为该数据上传客户端的结构示意图,包括:
公钥保存模块501,用于接收并保存对应不同计算种类的密钥对中的公钥;
预处理及加密模块502,用于对数据明文进行预处理;并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文;
密文上传模块503,用于将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
上述数据上传客户端中,预处理及加密模块502对数据明文进行预处理的方式可以为:根据可能进行的计算种类,对数据明文进行扩展;将数据明文及扩展后的数据映射为非负整数。
所述预处理及加密模块对数据明文进行扩展的方式可以为:计算数据明文的负数、倒数或幂。
预处理及加密模块502将数据明文及扩展后的数据映射为非负整数的方式可以为:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数;
当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
本发明还提出一种用于云数据库加密的云数据库,如图6为该云数据库的结构示意图,包括:
存储模块601,用于接收并保存数据上传客户端发送的数据密文及其对应的数据明文的预处理方式;
总控模块602,用于接收数据申请客户端发送的密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;当所述计算数据为数据密文及预处理方式在存储模块中的位置信息时,根据所述位置信息及计算公式中的计算种类从存储模块中提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎603;当所述计算数据为数据密文以及预处理方式时,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎603;
计算引擎603,用于采用所述针对数据密文的计算公式对数据密文进行计算,当无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理,采用重加密代理返回的数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端。
上述云数据库中,计算引擎603判定无法对数据密文继续进行计算的方式可以为:为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当计算引擎603收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化为0。
本发明还提出一种用于云数据库加密的重加密代理,如图7为该重加密代理的结构示意图,包括:
密钥对保存模块701,用于保存数据申请客户端发送的一个以上密钥对,所述密钥对对应不同的计算种类;
计算模块702,用于接收来自云数据库的计算中间结果及针对计算中间结果的计算公式,采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库。
综上可见,本发明提出的云数据库加密方法、系统及装置,由数据申请客户端生成对应不同计算种类的密钥对,将其中的公钥发送至数据上传客户端;数据上传客户端对数据明文进行预处理之后,采用可能进行的计算种类所对应的公钥进行加密,将数据密文及对应明文的预处理方式上传至云数据库。由于本发明采用多种同态加密算法对经过预处理之后的数据明文进行加密,因此云数据库可以直接采用数据密文进行多种运算。由于用于解密的私钥由数据申请方拥有,而数据申请方通常位于企业内部网络中,因此能够提高云数据库的安全性。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (23)

1.一种云数据库加密方法,其特征在于,所述方法包括:
数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;
数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
2.根据权利要求1所述的方法,其特征在于,所述密钥对为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
3.根据权利要求1所述的方法,其特征在于,所述数据上传客户端对数据明文进行预处理的方式为:
根据可能进行的计算种类,对数据明文进行扩展;
将数据明文及扩展后的数据映射为非负整数。
4.根据权利要求3所述的方法,其特征在于,所述对数据明文进行扩展的方式为:
计算数据明文的负数、倒数或幂。
5.根据权利要求3所述的方法,其特征在于,所述将数据明文及扩展后的数据映射为非负整数的方式为:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数;
当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
6.根据权利要求1至5任意一项所述的方法,其特征在于,所述方法进一步包括:数据申请客户端将生成的密钥对发送至重加密代理;
数据申请客户端向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
云数据库根据所述位置信息及计算公式中的计算种类从云数据库中提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提取的数据密文进行计算;或者,云数据库根据接收的预处理方式及计算公式生成针对数据密文的计算公式,对接收的数据密文进行计算;
当云数据库无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理,重加密代理采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库;
云数据库采用所述重加密代理返回的数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端;
数据申请客户端采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文。
7.根据权利要求6所述的方法,其特征在于,所述云数据库判定无法对数据密文继续进行计算的方式为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当云数据库收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化为0。
8.一种云数据库加密系统,其特征在于,所述系统包括:
数据申请客户端,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端;所述密钥对对应不同的计算种类;
数据上传客户端,用于对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库;
云数据库,用于保存所述数据密文及其对应的数据明文的预处理方式。
9.根据权利要求8所述的系统,其特征在于,所述数据申请客户端生成的密钥对为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
10.根据权利要求9所述的系统,其特征在于,所述数据上传客户端对数据明文进行预处理的方式为:
根据可能进行的计算种类,对数据明文进行扩展;
将数据明文及扩展后的数据映射为非负整数。
11.根据权利要求10所述的系统,其特征在于,所述数据上传客户端对数据明文进行扩展的方式为:
计算数据明文的负数、倒数或幂。
12.根据权利要求10所述的系统,其特征在于,所述数据上传客户端将数据明文及扩展后的数据映射为非负整数的方式为:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数;
当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
13.根据权利要求8至12任意一项所述的系统,其特征在于,所述系统进一步包括重加密代理;
所述数据申请客户端还将所述密钥对发送至重加密代理;
数据申请客户端还用于,向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;还用于采用对应密钥对中的私钥对云数据库反馈的最终结果的密文进行解密,得到最终结果的明文;
云数据库还用于,根据所述位置信息及计算公式中的计算种类提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提取的数据密文进行计算;或者,根据接收的预处理方式及计算公式生成针对数据密文的计算公式,对接收的数据密文进行计算;还用于当无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理;并接收重加密代理返回的数据密文,采用所述数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端;
所述重加密代理用于,采用对应密钥对中的私钥对所述计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库。
14.根据权利要求13所述的系统,其特征在于,所述云数据库判定无法对数据密文继续进行计算的方式为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当云数据库收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化为0。
15.一种用于云数据库加密的数据申请客户端,其特征在于,所述数据申请客户端包括:
密码生成模块,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端,并将所述密钥对发送至重加密代理;所述密钥对对应不同的计算种类;
密文计算请求模块,用于向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
结果处理模块,用于接收云数据库反馈的最终结果的密文,采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文。
16.根据权利要求15所述的数据申请客户端,其特征在于,所述密钥对为加法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
17.一种用于云数据库加密的数据上传客户端,其特征在于,所述数据上传客户端包括:
公钥保存模块,用于接收并保存对应不同计算种类的密钥对中的公钥;
预处理及加密模块,用于对数据明文进行预处理;并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文;
密文上传模块,用于将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
18.根据权利要求17所述的数据上传客户端,其特征在于,所述预处理及加密模块对数据明文进行预处理的方式为:
根据可能进行的计算种类,对数据明文进行扩展;
将数据明文及扩展后的数据映射为非负整数。
19.根据权利要求18所述的数据上传客户端,其特征在于,所述预处理及加密模块对数据明文进行扩展的方式为:
计算数据明文的负数、倒数或幂。
20.根据权利要求18所述的数据上传客户端,其特征在于,所述预处理及加密模块将数据明文及扩展后的数据映射为非负整数的方式为:
当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正整数相加,得到映射后的非负整数;
当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,得到映射后的非负整数;
当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数;
当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
21.一种用于云数据库加密的云数据库,其特征在于,所述云数据库包括:
存储模块,用于接收并保存数据上传客户端发送的数据密文及其对应的数据明文的预处理方式;
总控模块,用于接收数据申请客户端发送的密文计算请求,所述密文计算请求包含计算数据和针对数据明文的计算公式;当所述计算数据为数据密文及预处理方式在存储模块中的位置信息时,根据所述位置信息及计算公式中的计算种类从存储模块中提取对应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎;当所述计算数据为数据密文以及预处理方式时,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述数据密文及针对数据密文的计算公式发送至计算引擎;
计算引擎,用于采用所述针对数据密文的计算公式对数据密文进行计算,当无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代理,采用重加密代理返回的数据密文继续计算,直至计算出最终结果的密文,并反馈至数据申请客户端。
22.根据权利要求21所述的云数据库,其特征在于,所述计算引擎判定无法对数据密文继续进行计算的方式为:为计算中间结果设置累加标记,所述累加标记记录该计算中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判定无法对数据密文继续进行计算;
当计算引擎收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化为0。
23.一种用于云数据库加密的重加密代理,其特征在于,所述重加密代理包括:
密钥对保存模块,用于保存数据申请客户端发送的一个以上密钥对,所述密钥对对应不同的计算种类;
计算模块,用于接收来自云数据库的计算中间结果及针对计算中间结果的计算公式,采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库。
CN201310393464.9A 2013-09-03 2013-09-03 一种云数据库加密方法、系统及装置 Active CN104426973B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310393464.9A CN104426973B (zh) 2013-09-03 2013-09-03 一种云数据库加密方法、系统及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310393464.9A CN104426973B (zh) 2013-09-03 2013-09-03 一种云数据库加密方法、系统及装置

Publications (2)

Publication Number Publication Date
CN104426973A CN104426973A (zh) 2015-03-18
CN104426973B true CN104426973B (zh) 2018-03-23

Family

ID=52974886

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310393464.9A Active CN104426973B (zh) 2013-09-03 2013-09-03 一种云数据库加密方法、系统及装置

Country Status (1)

Country Link
CN (1) CN104426973B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10594472B2 (en) 2015-03-09 2020-03-17 Jintai Ding Hybrid fully homomorphic encryption (F.H.E.) systems
TWI553504B (zh) * 2015-09-24 2016-10-11 鴻海精密工業股份有限公司 雲端加密系統及方法
TWI636369B (zh) * 2016-04-19 2018-09-21 中華電信股份有限公司 即時串流紀錄資料分析系統與方法
CN107347047B (zh) * 2016-05-04 2021-10-22 阿里巴巴集团控股有限公司 攻击防护方法和装置
CN106131139B (zh) * 2016-06-23 2019-07-19 暨南大学 一种云关系数据库的浮点数据的加密及查询方法
CN106657267B (zh) * 2016-11-15 2019-10-08 华中科技大学 基于边缘服务器的云存储系统
CN106878266B (zh) * 2016-12-23 2019-03-08 中科星图股份有限公司 一种非结构化数据传输系统
CN106856480A (zh) * 2017-02-27 2017-06-16 努比亚技术有限公司 数据存储方法及装置
CN108809906B (zh) 2017-05-03 2020-07-07 腾讯科技(深圳)有限公司 数据处理方法、系统及装置
CN109426738B (zh) * 2017-08-23 2021-11-12 中芯国际集成电路制造(上海)有限公司 一种硬件加密器及加密方法、电子装置
CN108055118B (zh) * 2017-12-11 2020-06-05 东北大学 一种隐私保护的图数据交集计算方法
CN108111295B (zh) * 2017-12-15 2020-08-25 河海大学 一种基于类模运算的同态加密方法
CN109190395B (zh) * 2018-08-21 2020-09-04 浙江大数据交易中心有限公司 一种基于数据变换的全同态加密方法及系统
CN109726584B (zh) * 2018-12-12 2023-08-25 西安得安信息技术有限公司 云数据库密钥管理系统
CN111464282B (zh) * 2019-01-18 2024-04-26 百度在线网络技术(北京)有限公司 基于同态加密的数据处理方法和装置
CN110365785A (zh) * 2019-07-18 2019-10-22 广东省新一代通信与网络创新研究院 入云数据的处理方法、终端设备及存储介质
CN110795743B (zh) * 2019-09-12 2022-03-25 连连银通电子支付有限公司 数据写入、读取、加密方法和装置,及数据传输系统
CN111371544B (zh) * 2020-05-27 2020-09-08 支付宝(杭州)信息技术有限公司 基于同态加密的预测方法、装置、电子设备及存储介质
CN112256753B (zh) * 2020-10-13 2021-05-18 山东三木众合信息科技股份有限公司 一种数据的加密安全传输方法
CN113141246B (zh) * 2021-03-08 2022-11-18 江苏大学 一种同态加密在学生心理健康调查中的系统设计与实现方法
CN113660276A (zh) * 2021-08-18 2021-11-16 宜宾电子科技大学研究院 一种基于隐私数据保护的远程任务调度方法
CN115225391A (zh) * 2022-07-21 2022-10-21 电子科大科园股份有限公司 问卷加密方法、装置、电子设备及可读存储介质
CN117595979A (zh) * 2023-11-20 2024-02-23 北京信安世纪科技股份有限公司 数据处理方法及设备

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427575A (zh) * 2001-12-17 2003-07-02 北京兆日科技有限责任公司 电子密码形成与核验方法
CN1937495A (zh) * 2006-09-29 2007-03-28 清华大学深圳研究生院 媒体网络应用的数字版权保护方法及系统
CN101247605A (zh) * 2008-03-25 2008-08-20 中兴通讯股份有限公司 短信息加密、签名方法、移动终端及短信息加密系统
EP2154815A1 (en) * 2007-05-30 2010-02-17 Fujitsu Limited Image encrypting device, image decrypting device, method and program
CN102984156A (zh) * 2012-11-30 2013-03-20 无锡赛思汇智科技有限公司 一种可验证的分布式隐私数据比较与排序方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1427575A (zh) * 2001-12-17 2003-07-02 北京兆日科技有限责任公司 电子密码形成与核验方法
CN1937495A (zh) * 2006-09-29 2007-03-28 清华大学深圳研究生院 媒体网络应用的数字版权保护方法及系统
EP2154815A1 (en) * 2007-05-30 2010-02-17 Fujitsu Limited Image encrypting device, image decrypting device, method and program
CN101247605A (zh) * 2008-03-25 2008-08-20 中兴通讯股份有限公司 短信息加密、签名方法、移动终端及短信息加密系统
CN102984156A (zh) * 2012-11-30 2013-03-20 无锡赛思汇智科技有限公司 一种可验证的分布式隐私数据比较与排序方法及装置

Also Published As

Publication number Publication date
CN104426973A (zh) 2015-03-18

Similar Documents

Publication Publication Date Title
CN104426973B (zh) 一种云数据库加密方法、系统及装置
CN109784931B (zh) 一种基于区块链的数据查询平台的查询方法
CN111931250B (zh) 多方安全计算一体机
US9641332B1 (en) Privacy-preserving measurements of a campaign
US11308234B1 (en) Methods for protecting data
CN105721148B (zh) 一种基于双随机数的数据文件加密方法及系统
Liu et al. Revfrf: Enabling cross-domain random forest training with revocable federated learning
CN107005408A (zh) 公共密钥加密系统
CN109214201A (zh) 一种数据共享方法、终端设备及计算机可读存储介质
CN110059501A (zh) 一种基于差分隐私的安全外包机器学习方法
EP4293557A2 (en) Generating sequences of network data while preventing acquisition or manipulation of time data
Li et al. An efficient blind filter: Location privacy protection and the access control in FinTech
CN111553443A (zh) 裁判文书处理模型的训练方法、训练装置和电子设备
CN112199697A (zh) 基于共享根密钥的信息处理方法、装置、设备及介质
CN114186263A (zh) 一种基于纵向联邦学习的数据回归方法及电子装置
Corena et al. Secure and fast aggregation of financial data in cloud-based expense tracking applications
CN111490995A (zh) 保护隐私的模型训练方法和装置、数据处理方法、服务器
CN107005576A (zh) 从服务器日志生成用于链接标识符的桥接匹配标识符
CN113239401A (zh) 一种基于电力物联网的大数据分析系统、方法及计算机存储介质
CN115150055B (zh) 一种基于同态加密的隐私保护岭回归方法
US11018857B2 (en) Encryption scheme using multiple parties
CN113498602B (zh) 防止欺诈的计算机实现的方法、存储介质、设备及系统
Ren et al. Efficiency boosting of secure cross-platform recommender systems over sparse data
EP4261809A1 (en) Service provision system
Pathak et al. Efficient Protocols for Principal Eigenvector Computation over Private Data.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant