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

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

【技术领域】
[0001] 本发明涉及云数据库【技术领域】,尤其涉及一种云数据库加密方法、系统及装置。

【背景技术】
[0002] 数据库系统是企业信息系统的核心之一,随着云计算技术的发展,传统上部署在 本地网络环境中的单机数据库和分布式数据库正逐渐向部署在数据中心的云数据库迁移。 相对于传统的数据库系统,云数据库具有高可扩展性和高可用性的特点,能够满足电信、金 融等需要大规模存储和大规模数据处理的领域的应用,并降低客户的成本。由于数据库系 统中存储的大量结构化数据(即数据表),如企业的财务数据、企业客户关系数据、医疗机构 的病例档案等,具有高价值和高敏感性,为了保证企业数据安全,在迁移至第三方的云数据 库时需要对敏感数据进行加密以抵御可能来自数据中心内部和外部的各种安全威胁。
[0003] 云数据库是一种新的云计算服务,与对象存储等云存储服务模式不同。首先,传 统的对象云存储服务中存储的数据为非结构化数据,例如二进制数据文件;而云数据库主 要存储结构化数据,特别是包括大量的数值型数据。更重要的区别是,云数据库要为客户 同时提供对结构化数据的存储服务以及对结构化数据的处理服务,而对象云存储服务则 不涉及对加密数据的计算需求。传统的数据加密方案,如高级加密标准(AES,Advanced EncryptionStandard)分组加密算法不适用于云数据库,因为经过加密后的密文数据不支 持任何计算,客户必须将数据下载到本地解密后才能够进行计算。
[0004] 通过对国内外发明专利和相关技术进行检索,我们将已存在且与本发明相关性 较高的技术总结为三类,分别是:本地数据库加密方案,麻省理工大学的CryptDB方案和 CipherCloud公司的云数据库加密网关:
[0005] 本地数据库加密方案主要是对存储在磁盘上的数据进行加密,加密的数据在读入 内存后解密,并对解密后的数据进行操作和计算。通过本地数据库加密,所有存储在磁盘上 的数据都是加密的。本地数据库加密方案不能用于保护云数据库安全,这是因为即使将本 地数据加密方案应用于云数据库,数据也会在云数据库中的内存中解密,而云数据库的内 存中也是不安全的,容易遭受来自于云服务内部的攻击。
[0006] 麻省理工大学的CryptDB云数据库加密方案主要采用对称加密,不区分数据上传 者和数据申请者,两者合为一体,都拥有能够解密数据的密钥,只要有一个数据上传者的终 端系统被攻破,整个系统的安全性就遭到破坏,因此该方案的安全性较低。并且,该方案只 能够进行密文的加法操作。
[0007] CipherCloud公司的云数据加密网关技术中包括一种对云数据库进行加密的技术 方案,其方案主要特征为对称加密方案和数据标记技术,并且没有信息表明该方案支持对 数值型加密数据的计算。
[0008] 可见,现有的云数据库加密技术的安全性较低,并且不能支持数值型加密数据的 多种运算。


【发明内容】

[0009] 本发明提供了一种云数据库加密方法,能够提高云数据库的安全性,并且支持数 值型加密数据的多种运算。
[0010] 本发明还提供了一种云数据库加密系统及用于云数据库加密的装置,能够提高云 数据库的安全性,并且支持数值型加密数据的多种运算。
[0011] 本发明的技术方案是这样实现的:
[0012] 一种云数据库加密方法,包括:
[0013] 数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥 对由数据申请客户端生成,且对应不同的计算种类;
[0014] 数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应 的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其 对应的数据明文的预处理方式发送至云数据库。
[0015] 一种云数据库加密系统,包括:
[0016] 数据申请客户端,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传 客户端;所述密钥对对应不同的计算种类;
[0017] 数据上传客户端,用于对数据明文进行预处理,并根据可能进行的计算种类,采用 对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文 及其对应的数据明文的预处理方式发送至云数据库;
[0018] 云数据库,用于保存所述数据密文及其对应的数据明文的预处理方式。
[0019] 一种用于云数据库加密的数据申请客户端,包括:
[0020] 密码生成模块,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客 户端,并将所述密钥对发送至重加密代理;所述密钥对对应不同的计算种类;
[0021] 密文计算请求模块,用于向云数据库发送密文计算请求,所述密文计算请求包含 计算数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库 中的位置信息,或者,所述计算数据为数据密文以及预处理方式;
[0022] 结果处理模块,用于接收云数据库反馈的最终结果的密文或包含中间结果的密文 的表达式,采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明 文;或者,采用对应密钥对中的私钥对所述中间结果的密文进行解密,得到中间结果的明 文,并采用中间结果的明文及所述表达式计算出最终结果的明文。
[0023] -种用于云数据库加密的数据上传客户端,包括:
[0024] 公钥保存模块,用于接收并保存对应不同计算种类的密钥对中的公钥;
[0025] 预处理及加密模块,用于对数据明文进行预处理;并根据可能进行的计算种类,采 用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文;
[0026] 密文上传模块,用于将所述数据密文及其对应的数据明文的预处理方式发送至云 数据库。
[0027] -种用于云数据库加密的云数据库,包括:
[0028] 存储模块,用于接收并保存数据上传客户端发送的数据密文及其对应的数据明文 的预处理方式;
[0029] 总控模块,用于接收数据申请客户端发送的密文计算请求,所述密文计算请求包 含计算数据和针对数据明文的计算公式;当所述计算数据为数据密文及预处理方式在存 储模块中的位置信息时,根据所述位置信息及计算公式中的计算种类从存储模块中提取对 应的数据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公 式,将所述数据密文及针对数据密文的计算公式发送至计算引擎;当所述计算数据为数据 密文以及预处理方式时,根据所述预处理方式及计算公式生成针对数据密文的计算公式, 将所述数据密文及针对数据密文的计算公式发送至计算引擎;
[0030] 计算引擎,用于采用所述针对数据密文的计算公式对数据密文进行计算,当无法 对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加 密代理,采用重加密代理返回的数据密文继续计算,直至计算出最终结果的密文或包含中 间结果的密文的表达式,并反馈至数据申请客户端。
[0031] 一种用于云数据库加密的重加密代理,包括:
[0032] 密钥对保存模块,用于保存数据申请客户端发送的一个以上密钥对,所述密钥对 对应不同的计算种类;
[0033] 计算模块,用于接收来自云数据库的计算中间结果及针对计算中间结果的计算公 式,采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计 算公式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加 密后的数据密文返回至云数据库。
[0034] 可见,本发明提出的云数据库加密方法、系统及装置,由数据申请客户端生成对应 不同计算种类的密钥对,将其中的公钥发送至数据上传客户端;数据上传客户端对数据明 文进行预处理之后,采用可能进行的计算种类所对应的密钥对中的公钥进行加密,将数据 密文及对应明文的预处理方式上传至云数据库,从而使云数据库可以直接采用数据密文进 行多种运算。由于用于解密的私钥由数据申请方拥有,而数据申请方通常位于企业内部网 络中,因此能够提高云数据库的安全性。

【专利附图】

【附图说明】
[0035] 图1为本发明提出的云数据库加密方法实现流程图;
[0036] 图2为本发明中密钥及数据的交互示意图;
[0037] 图3为本发明提出的云数据库加密系统的结构示意图;
[0038] 图4为本发明提出的数据申请客户端的结构示意图;
[0039] 图5为本发明提出的数据上传客户端的结构示意图;
[0040] 图6为本发明提出的云数据库的结构示意图;
[0041] 图7为本发明提出的重加密代理的结构示意图。

【具体实施方式】
[0042] 本发明提出一种云数据库加密方法,其应用的系统由三方构成,分别为云数据库、 数据上传方和数据请求方。云数据库是云计算供应商提供给客户的服务,其中包括对结构 化数据(也就是数据表)的存储和计算,云数据库对数据的存储和计算都是位于客户的网络 边界之外的,不受客户的控制。数据上传方和数据请求方可以视为云数据库客户的两种不 同角色,其中数据上传方是云数据库中数据的生产者,数据上传方将客户的数据由本地网 络环境上传到云数据库中。数据请求方是云数据库中数据的消费者,数据请求方可以要求 从云数据库中下载指定的数据到本地网络环境,也可以向云数据库发送对云数据库中数据 的计算请求,并将计算结果下载到本地网络环境。数据上传方和数据请求方可以是同一个 实体,如相同的用户或计算设备,也可以是不同的实体。
[0043] 以一个大型的家电零售企业为例,该企业在全国范围内拥有多家连锁家电卖场, 其中每个卖场均配置有多台POS机,这些POS机通过专网或虚拟专用网(VPN,Virtual Private Network)连入企业总部的网络,每天的销售数据由POS机产生并传输到总部的部 署在小型机上的关系数据库中,数据分析人员通过在数据库中的数据上执行一定的分析函 数,从而对企业的销售情况、资金状况做出统计和分析结果。随着该企业的业务扩展和数据 量的增大,用于存储和分析数据的小型机和商业关系数据系统无法支持业务的需要,该企 业决定将本地的数据库及分析系统迁移至云数据库系统中。迁移后的系统中,POS机生成 的数据会通过网络传输上云数据库中,而总部的数据分析人员通过终端向云数据库发出数 据分析的计算指令,并得到计算结果。在迁移后的场景中,位于卖场的POS机等终端系统构 成本发明系统中的数据上传方,位于总部的数据分析人员及其终端构成数据请求方,而场 景中的云数据库则构成系统的云数据库方。
[0044] 应用与上述场景,本发明提出一种云数据库加密系统,包括:
[0045] 云数据库:云数据库包括云数据库总控模块、云数据库存储模块,和云数据库密文 计算引擎。本发明的云数据库加密方法可以用于传统的关系型数据库向非关系型的云数据 库进行安全迁移,保证用户数据安全和隐私,保证对本地数据的计算可以迁移到云数据库 上对密文的计算。本发明的方法可以适用于现有的多种云数据库,我们建议以NoSQL (Not only SQL),即具有良好扩展性和高并发处理能力的非关系型云数据库作为本发明中云数 据库的实例。
[0046] 数据上传客户端:数据上传客户端部署于数据上传方,为数据上传方提供用户界 面和应用程序开发界面。数据上传客户端从用户或用户代理程序那里获得待上传到云服务 器的明文数据,对数据进行预处理和加密,并完成密文的上传。数据上传客户端根据可能进 行计算的种类对经过预处理后的明文采用不同的加密算法进行加密。
[0047]数据申请客户端:数据申请客户端部署于数据申请方,为数据申请方提供用户界 面和应用程序开发界面。数据申请方客户端从用户或用户代理程序那里获得计算请求,将 计算请求以及参与计算的数据发送给云数据库,并从云数据库那里获得返回的计算结果, 将结果的密文解密并进行数据处理,将处理后的最终明文结果返回给用户或用户代理程 序。
[0048] 重加密代理:重加密代理可以是一个在线的服务器也可以是一个独立的插件,部 署于数据申请方可信的环境中,并可以和云数据库通信。重加密代理是属于数据申请方的, 并被数据申请方信任。重加密代理主要用于为云数据库提供服务,云数据库将无法计算的 表达式和密文数据发送给重加密代理,重加密代理对密文解密后,采用明文进行计算,并将 计算结果重新加密,将结果密文返回给云数据库。
[0049] 应用上述系统,本发明提出一种云数据库加密方法,如图1为该方法实现流程图, 包括:
[0050] 步骤101:数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公 钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;
[0051] 步骤102 :数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类, 采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据 密文及其对应的数据明文的预处理方式发送至云数据库。
[0052] 由于云数据库是对数码密文进行计算的,并且必须保证从数据密文的计算结果能 够得到等于数据明文的计算结果,为达到这一要求,步骤101中数据申请客户端生成的密 钥对需要满足特定的加密方案,可以为加法同态加密密钥对、乘法同态加密密钥对或者一 定程度的全同态加密密钥对。具体如下:
[0053] 加法同态加密方案:加密同态加密方案属于公钥加密,此类方案支持密文之间的 加法操作,密文之和解密后等于对应的明文之和。通常加法同态加密方案的明文值域为非 负整数,方案支持任意多次的密文间加法运算,但不支持密文之间的乘法运算和其他运算。 目前已经有多种加法同态方案,在实际部署中本发明建议采用Paillier加法同态加密方 案。
[0054] 乘法同态加密方案:乘法同态加密属于公钥加密,此类方案支持密文之间的乘法 操作,密文的乘积解密后等于对应文明的乘积。通常乘法同态加密方案的明文值域为非负 整数,方案支持任意多次的密文间乘法运算,但不支持密文之间的加法运算或其他运算。目 前已经有多种乘法同态方案,在实际部署中本发明建议采用ElGamal乘法同态加密方案。
[0055] 一定程度的全同态加密方案(SomewhatFullyHomomorphicEncryption):-些同 态加密方案支持任意数量的密文加法运算和少量密文乘法运算,这些同态加密方案又称为 一定程度的全同态加密方案。通常一定程度的全同态加密方案的明文值域为非负整数。在 实际部署中本发明建议采用BGN方案和BV方案,其中BGN同态加密支持无限次数的密文加 法运算和一次密文乘法运算,BV加密方案可以支持少量的乘法。另外,全同态加密是可以 同时支持无限次数密文加法运算和乘法运算的加密方案,目前已经出现多个全同态加密方 案,但是效率较低。
[0056] 上述加密方案都属于公钥加密方案。公钥加密方案的使用需要在加密之前进行密 钥的生成和分发。公钥加密方案的密钥对由公钥和私钥构成,其中公钥用于数据加密,并需 要以可信的方式分发到所有进行加密的终端,在本发明中为数据上传客户端;私钥用于数 据解密,需要安全地保存在本地,在本发明中为数据申请客户端。
[0057] 在本发明中,由数据申请客户端安全地生成公钥和私钥密钥对。在实际部署中本 发明建议在离线的安全密码机或密码卡中生成密钥对。
[0058] 数据申请客户端在本地系统中安全地存储密钥对。在实际部署中本发明建议通过 HSM(HardwareSecurityModule,硬件安全模块)来存储密钥对,对于个人用户终端可以采 用USBKey形式的HSM,对于企业应用可以采用PCI卡或者主机形式的HSM。
[0059] 数据申请客户端将密钥对通过上述安全方式部署在重加密代理中。
[0060] 数据申请客户端通过可信的方式将公钥集合分发给数据上传客户端。在实际部署 中本发明建议通过PKI(公钥基础设施)体制分发密钥,也就是通过向CA权威中心申请公 钥证书,并且将公钥证书分发给数据上传客户端。
[0061] 由上述对加密方案的介绍可见,加法同态加密、乘法同态加密和一定程度的全同 态加密都要求数据明文的值域为非负整数,并且只能支持加法和乘法计算;而在实际情况 中,数据上传客户端上传的数据明文还包括其他类型,并且数据申请客户端请求的计算还 包括加法和乘法以外的运算。为了解决这一矛盾,本发明可以采用如下两种措施:
[0062] 第一,数据上传客户端在对数据明文进行加密之前对数据明文进行预处理,使数 据满足计算要求并支持更多种类的计算;
[0063] 第二,设置重加密代理,重加密代理从数据申请客户端处获取密钥对。当云数据库 无法继续计算时,将计算中间结果及计算公式发送至重加密代理;重加密代理采用密钥对 中的私钥进行解密,采用解密后的数据进行计算,并对计算结果采用密钥对中的公钥进行 加密,将加密后的结果反馈至云数据库;云数据库采用重加密代理返回的数据密文继续计 算,当无法继续计算时重复前述过程,直至计算出最终结果的密文或包含中间结果的密文 的表达式。
[0064] 如图2为本发明中密钥及数据的交互示意图。数据申请客户端生成密钥对,将密 钥对中的公钥发送至数据上传客户端,并将密钥对发送至重加密代理;数据上传客户端对 数据明文进行预处理后,对预处理的结果采用公钥进行加密,将数据密文及预处理方式上 传至云数据库。数据申请客户端向云数据库发送密文计算请求;云数据库采用数据密文进 行计算,当无法计算时,将计算中间结果及计算公式发送至重加密代理;重加密代理将计算 中间结果解密,采用解密后的数据进行计算,得到计算结果,再将计算结果加密,将加密后 的数据密文返回至云数据库;云数据库与重加密代理的交互可能重复多次。最终,云数据库 将结果密文发送至数据申请客户端,数据申请客户端对结果密文解密,得到结果明文。
[0065] 以下举具体的实施例详细介绍。
[0066] 实施例一:
[0067] 本实施例介绍对数据明文的预处理方式。预处理方式可以为:根据可能进行的计 算种类,对数据明文进行扩展;之后,将数据明文及扩展后的数据映射为非负整数。
[0068] 以下详细介绍。
[0069] 一个待迁移的本地数据库系统包含如下内容:
[0070] 对数据表结构的定义,数据表中的每列都需要制定一个数据类型,数据表支持的 数据类型分为三类:分别是数值型、字符串型和二进制数据,其中数值型又可以细分为整数 和实数,整数可以再分为有符号整数和无符号整数。数值型数据类型还可以指定不同的精 度,即采用多少二进制位来表示一个整数。
[0071] 数据库中的数据可以视为一个二维表,其中每行可以看做一个记录,一个记录包 含多个字段,每个字段的值域由表结构定义中的列数据类型规定。
[0072] 对数据库数据的统计和分析算法,例如,针对下表所示的数据表,数据申请方可以 要求在月收入一列做平均值的计算。
[0073]

【权利要求】
1. 一种云数据库加密方法,其特征在于,所述方法包括: 数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由 数据申请客户端生成,且对应不同的计算种类; 数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密 钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应 的数据明文的预处理方式发送至云数据库。
2. 根据权利要求1所述的方法,其特征在于,所述密钥对为加法同态加密密钥对、乘法 同态加密密钥对或者一定程度的全同态加密密钥对。
3. 根据权利要求1所述的方法,其特征在于,所述数据上传客户端对数据明文进行预 处理的方式为: 根据可能进行的计算种类,对数据明文进行扩展; 将数据明文及扩展后的数据映射为非负整数。
4. 根据权利要求3所述的方法,其特征在于,所述对数据明文进行扩展的方式为: 计算数据明文的负数、倒数或幂。
5. 根据权利要求3所述的方法,其特征在于,所述将数据明文及扩展后的数据映射为 非负整数的方式为: 当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正 整数相加,得到映射后的非负整数; 当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正 整数相乘,得到映射后的非负整数; 当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整 数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数; 当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
6. 根据权利要求1至5任意一项所述的方法,其特征在于,所述方法进一步包括:数据 申请客户端将生成的密钥对发送至重加密代理; 数据申请客户端向云数据库发送密文计算请求,所述密文计算请求包含计算数据和针 对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的位置信 息,或者,所述计算数据为数据密文以及预处理方式; 云数据库根据所述位置信息及计算公式中的计算种类从云数据库中提取对应的数据 密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提 取的数据密文进行计算;或者,云数据库根据接收的预处理方式及计算公式生成针对数据 密文的计算公式,对接收的数据密文进行计算; 当云数据库无法对数据密文继续进行计算时,将计算中间结果及针对计算中间结果的 计算公式发送至重加密代理,重加密代理采用对应密钥对中的私钥对计算中间结果进行解 密,采用所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对 中的公钥对计算结果进行加密,将加密后的数据密文返回至云数据库; 云数据库采用所述重加密代理返回的数据密文继续计算,直至计算出最终结果的密文 或包含中间结果的密文的表达式,并反馈至数据申请客户端; 数据申请客户端采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终 结果的明文;或者,数据申请客户端采用对应密钥对中的私钥对所述中间结果的密文进行 解密,得到中间结果的明文,并采用中间结果的明文及所述表达式计算出最终结果的明文。
7. 根据权利要求6所述的方法,其特征在于,所述云数据库判定无法对数据密文继续 进行计算的方式为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算中 间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限 时,判定无法对数据密文继续进行计算; 当云数据库收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化 为〇。
8. -种云数据库加密系统,其特征在于,所述系统包括: 数据申请客户端,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户 端;所述密钥对对应不同的计算种类; 数据上传客户端,用于对数据明文进行预处理,并根据可能进行的计算种类,采用对应 的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其 对应的数据明文的预处理方式发送至云数据库; 云数据库,用于保存所述数据密文及其对应的数据明文的预处理方式。
9. 根据权利要求8所述的系统,其特征在于,所述数据申请客户端生成的密钥对为加 法同态加密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
10. 根据权利要求9所述的系统,其特征在于,所述数据上传客户端对数据明文进行预 处理的方式为: 根据可能进行的计算种类,对数据明文进行扩展; 将数据明文及扩展后的数据映射为非负整数。
11. 根据权利要求10所述的系统,其特征在于,所述数据上传客户端对数据明文进行 扩展的方式为: 计算数据明文的负数、倒数或幂。
12. 根据权利要求10所述的系统,其特征在于,所述数据上传客户端将数据明文及扩 展后的数据映射为非负整数的方式为: 当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正 整数相加,得到映射后的非负整数; 当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正 整数相乘,得到映射后的非负整数; 当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整 数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数; 当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
13. 根据权利要求8至12任意一项所述的系统,其特征在于,所述系统进一步包括重加 密代理; 所述数据申请客户端还将所述密钥对发送至重加密代理; 数据申请客户端还用于,向云数据库发送密文计算请求,所述密文计算请求包含计算 数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的 位置信息,或者,所述计算数据为数据密文以及预处理方式;还用于采用对应密钥对中的私 钥对云数据库反馈的最终结果的密文进行解密,得到最终结果的明文;或者,采用对应密钥 对中的私钥对云数据库反馈的中间结果的密文进行解密,得到中间结果的明文,并采用中 间结果的明文及云数据库反馈的表达式计算出最终结果的明文; 云数据库还用于,根据所述位置信息及计算公式中的计算种类提取对应的数据密文及 预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,对提取的数 据密文进行计算;或者,根据接收的预处理方式及计算公式生成针对数据密文的计算公式, 对接收的数据密文进行计算;还用于当无法对数据密文继续进行计算时,将计算中间结果 及针对计算中间结果的计算公式发送至重加密代理;并接收重加密代理返回的数据密文, 采用所述数据密文继续计算,直至计算出最终结果的密文或包含中间结果的密文的表达 式,并反馈至数据申请客户端; 所述重加密代理用于,采用对应密钥对中的私钥对所述计算中间结果进行解密,采用 所述针对计算中间结果的计算公式对解密后的数据进行计算,并采用对应密钥对中的公钥 对计算结果进行加密,将加密后的数据密文返回至云数据库。
14. 根据权利要求13所述的系统,其特征在于,所述云数据库判定无法对数据密文继 续进行计算的方式为:云数据库为计算中间结果设置累加标记,所述累加标记记录该计算 中间结果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限 时,判定无法对数据密文继续进行计算; 当云数据库收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化 为〇。
15. -种用于云数据库加密的数据申请客户端,其特征在于,所述数据申请客户端包 括: 密码生成模块,用于生成一个以上密钥对,将密钥对中的公钥发送至数据上传客户端, 并将所述密钥对发送至重加密代理;所述密钥对对应不同的计算种类; 密文计算请求模块,用于向云数据库发送密文计算请求,所述密文计算请求包含计算 数据和针对数据明文的计算公式;所述计算数据为数据密文及预处理方式在云数据库中的 位置信息,或者,所述计算数据为数据密文以及预处理方式; 结果处理模块,用于接收云数据库反馈的最终结果的密文或包含中间结果的密文的表 达式,采用对应密钥对中的私钥对所述最终结果的密文进行解密,得到最终结果的明文;或 者,采用对应密钥对中的私钥对所述中间结果的密文进行解密,得到中间结果的明文,并采 用中间结果的明文及所述表达式计算出最终结果的明文。
16. 根据权利要求15所述的数据申请客户端,其特征在于,所述密钥对为加法同态加 密密钥对、乘法同态加密密钥对或者一定程度的全同态加密密钥对。
17. -种用于云数据库加密的数据上传客户端,其特征在于,所述数据上传客户端包 括: 公钥保存模块,用于接收并保存对应不同计算种类的密钥对中的公钥; 预处理及加密模块,用于对数据明文进行预处理;并根据可能进行的计算种类,采用对 应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文; 密文上传模块,用于将所述数据密文及其对应的数据明文的预处理方式发送至云数据 库。
18. 根据权利要求17所述的数据上传客户端,其特征在于,所述预处理及加密模块对 数据明文进行预处理的方式为: 根据可能进行的计算种类,对数据明文进行扩展; 将数据明文及扩展后的数据映射为非负整数。
19. 根据权利要求18所述的数据上传客户端,其特征在于,所述预处理及加密模块对 数据明文进行扩展的方式为: 计算数据明文的负数、倒数或幂。
20. 根据权利要求18所述的数据上传客户端,其特征在于,所述预处理及加密模块将 数据明文及扩展后的数据映射为非负整数的方式为: 当数据明文或扩展后的数据为有符号整数时,将该数据明文或扩展后的数据与一个正 整数相加,得到映射后的非负整数; 当数据明文或扩展后的数据为非负浮点数时,将该数据明文或扩展后的数据与一个正 整数相乘,得到映射后的非负整数; 当数据明文或扩展后的数据为负浮点数时,将该数据明文或扩展后的数据与一个正整 数相乘,并将相乘后的结果与一个正整数相加,得到映射后的非负整数; 当数据明文为枚举类型数据时,将该数据明文直接映射为非负整数。
21. -种用于云数据库加密的云数据库,其特征在于,所述云数据库包括: 存储模块,用于接收并保存数据上传客户端发送的数据密文及其对应的数据明文的预 处理方式; 总控模块,用于接收数据申请客户端发送的密文计算请求,所述密文计算请求包含计 算数据和针对数据明文的计算公式;当所述计算数据为数据密文及预处理方式在存储模块 中的位置信息时,根据所述位置信息及计算公式中的计算种类从存储模块中提取对应的数 据密文及预处理方式,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将 所述数据密文及针对数据密文的计算公式发送至计算引擎;当所述计算数据为数据密文以 及预处理方式时,根据所述预处理方式及计算公式生成针对数据密文的计算公式,将所述 数据密文及针对数据密文的计算公式发送至计算引擎; 计算引擎,用于采用所述针对数据密文的计算公式对数据密文进行计算,当无法对数 据密文继续进行计算时,将计算中间结果及针对计算中间结果的计算公式发送至重加密代 理,采用重加密代理返回的数据密文继续计算,直至计算出最终结果的密文或包含中间结 果的密文的表达式,并反馈至数据申请客户端。
22. 根据权利要21所述的云数据库,其特征在于,所述计算引擎判定无法对数据密文 继续进行计算的方式为:为计算中间结果设置累加标记,所述累加标记记录该计算中间结 果已经进行的计算种类及次数,当所述次数达到对应密钥对所支持的计算次数上限时,判 定无法对数据密文继续进行计算; 当计算引擎收到重加密代理返回的数据密文时,将所述累加标记中的计算次数初始化 为〇。
23. -种用于云数据库加密的重加密代理,其特征在于,所述重加密代理包括: 密钥对保存模块,用于保存数据申请客户端发送的一个以上密钥对,所述密钥对对应 不同的计算种类; 计算模块,用于接收来自云数据库的计算中间结果及针对计算中间结果的计算公式, 采用对应密钥对中的私钥对计算中间结果进行解密,采用所述针对计算中间结果的计算公 式对解密后的数据进行计算,并采用对应密钥对中的公钥对计算结果进行加密,将加密后 的数据密文返回至云数据库。
【文档编号】H04L9/32GK104426973SQ201310393464
【公开日】2015年3月18日 申请日期:2013年9月3日 优先权日:2013年9月3日
【发明者】侯长江, 刘斐, 柏洪涛, 任兰芳, 王静, 左敏, 刘芳 申请人:中国移动通信集团公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1