用于数据库查询的同态加密制造技术

技术编号:11466710 阅读:95 留言:0更新日期:2015-05-17 01:50
本公开涉及用于数据库查询的同态加密。使用密钥(图6)和随机数(图7)来加密数值(图5)以产生密文。该密文是同态的且其包括两个或更多个子密文(图8)。基于加法(图10)、平均(图11)和乘法操作的查询可以在不对与该查询相关的数值进行解密的情况下执行。每一子密文(图8)存储在单个记录中且在单独的属性中。公开了加密(402)和解密、创建适合的表(400)、查询这样的数据库(412)以及更新这样的数据库(408、410)的方法。

【技术实现步骤摘要】
【国外来华专利技术】用于数据库查询的同态加密
本公开涉及用于数据库查询的同态加密。本公开包括用于对要存储在数据库中的数值进行加密、对数据库中存储的密文进行解密、对存储密文的数据库执行聚合和乘法查询、在数据库中创建表格以存储密文、以及插入包括密文的记录的计算机实现的方法。其他方面包括数据库、软件和计算机系统。本领域的技术人员(除了其他的以外)已经知道通用计算机系统,包括硬件和软件。
技术介绍
在诸如金融应用和医疗电子健康应用之类的许多应用中,数据库是集成的部分。数据库可能非常敏感,其包含对企业或个人有价值的数据。对个人、企业和政府而言,偷窃敏感数据越来越受到关注。通过使用诸如OracleDatabase、MySQL、MicrosoftSQLServer等之类的数据库管理系统(DBMSs)来管理数据库。数据库可以部署在企业内的服务器上、云中的虚拟服务器上、或云中的DBMS服务上。对于部署的每一种类型,数据偷窃都是关注点。当在企业的经营场所内的服务器上部署数据库时,服务器物理上在企业的控制之下。如果服务器受到恶意软件或病毒的入侵或感染,则攻击者可能能够通过绕过任何企业访问控制机制,来访问原始数据库数据文件并偷窃数据。在另一方面,由于企业中的数据库管理员能够访问所存储的数据以执行数据库管理任务,因此其有机会(故意地或者意外地)违反数据的隐私和完整性。数据库系统也可以被企业部署在虚拟服务器上,其运行在像AmazonElasticComputeCloud(AmazonEC2)的云上。在该情况下,在数据库底层的虚拟服务器在物理上处于云提供商的控制之下,且企业在虚拟服务器上安装DBMS来管理其数据库。类似于上面的情况,在该情况下,如果云基础设施被攻击者入侵、被恶意软件或病毒感染,则也会发生数据偷窃,且企业数据库管理员可能违反数据库的隐私和完整性。此外,如果云提供商不值得信任,则他们可以偷窃在他们所提供的虚拟服务器中的数据库数据。当前存在由云提供商提供的DBMS服务,例如AmazonRelationalDatabaseService(AmazonRDS)和MicrosSQLAzureDatabase。通过使用DBMS服务,企业可以将其数据库放入云上的虚拟DBMS中。在该情况下,企业无需购买并安装其自身的DBMS软件,且可以减少雇佣高技能的数据库管理员(DBA)的成本。云提供商负责数据库系统的管理、升级和性能调优。类似地,如果入侵了数据库服务,则攻击或病毒感染可以偷窃数据。此外,由于数据库直接在云提供商的管理之下,则提供商仅通过使用标准的数据库访问接口就可以容易地偷窃企业数据。针对数据库的数据偷窃问题的直截了当的方法是对数据库中的数据进行加密。即,数据在被存入数据库中时被加密,或整个数据文件被加密,如MicrosoftSQLServer2008和Oracle10gDatabase所允许的。以此方式,可以保护数据库中的数据不受入侵服务器的攻击者和数据库管理员(如果他们不知道加密密钥)的危害。但是,在加密之后,在MicrosoftSQLServer2008和Oracle10g数据库中不再可以直接查询数据库了,或者在执行查询之前不得不先解密数据。
技术实现思路
在第一方面,提供了一种计算机实现的方法,其用于加密要存储在数据库中的数值,该方法包括:使用加法同态加密确定针对数值的密文,其中密文包括两个或更多个子密文;以及使每一子密文单独地并在单个记录中存储在数据库中。一优点是,数字(纯文本)值不被加密为单个密文。任何用于确定数值的密文或纯文本攻击将需要解密使加密方法健壮的多个子密文。此外,在不访问数据库模式的情况下(通过使用适当的不提供信息的名称,这可能会混淆例如数据库的表的属性的本质),恶意的第三方可能不知道多少子密文或哪个子密文表示哪个纯文本值。此外,单独存储子密文意味着子密文也与记录中的其他值分开存储。这提供了更大的灵活性,包括对包含记录的特定值执行查询的能力,而无需解密整个记录。重要的是,另外的优点是加密是加法同态的。这允许在不解密密文的情况下,对数据库中的数值执行聚合查询,例如使用求和和平均操作的查询。该加法同态加密也可以是乘法同态。确定密文的步骤可以是基于包括一组密钥分量的密钥的,其中在该组密钥分量中的密钥分量的数目等于子密文的数目。每一密钥分量可以包括一个或多个子分量,且密钥或每一密钥子分量可以是加密密钥。一优点是,使用多个密钥分量使加密方法对密文或纯文本攻击而言是健壮的。更多的子密文意味着使用更多的密钥,且继而加密更安全。另一优点是,可以在不增加每一子密文的存储大小的情况下增加加密的健壮性。每一密钥分量可以基于包含密文的子密文的数目。该方法还可以包括:基于子密文的数目确定该组密钥分量。一优点是,该方法适合用于包括大量子密文的两个或更多的子密文。密钥可以满足以下等式:其中,V是该值,n是子密文的数目,K(n)是密钥,fi是密钥的第i个函数,且Valuei是K(n)和V的第i个函数。fi和Valuei可以相对于n具有线性的时间复杂度。确定密文可以包括确定用于满足以下等式的子密文:其中,V是该值,n是子密文的数目,K(n)是密钥,fi是密钥的第i个函数,且Vi是第i个子密文。fi可以相对于n具有线性的时间复杂度。一优点是,本实施例不需要知道所有可能的输入的最大和,且适合用于现有数据库中而无需修改,且其中无需限制聚合值。还有一优点是,在加密时无需知道要添加到数据库的记录的数目,且可以被添加到数据库的密文记录的数目可以任意大。不使用减小加密方法的健壮性和对密文执行的查询的准确性的取模(modulo)或地板算术(floorarithmetic)操作来获得该优点。确定密文可以包括确定满足以下等式的子密文:Vi=Valuei(K(n),V)+Noisei(K(n),R)其中,V是该值,n是子密文的数目,K(n)是密钥,R是一组随机数,Vi是第i个子密文,Valuei是K(n)和V的第i个函数,且Noisei是K(n)和R的第i个函数。Valuei和Noisei相对于n可能具有线性的时间复杂度。每一子密文可以包括将第一结果和第二结果相加,其中第一结果是基于与该子密文相关联的密钥和数值的函数的值,且第二结果是基于与该子密文相关联的密钥和一个或多个随机数的函数的值。这两个函数都可以相对于子密文的数目具有线性时间复杂度,即这些函数相对于子密文的数目不成指数时间复杂度,从而可扩展以增加子密文数目。确定密文可能与密钥的存储大小在复杂度上成线性。确定每一子密文可以基于数值和密钥的乘法(或除法)。与也由该方法加密的、每个与不同密钥相关联的其他数值相比,该密钥对于该数值而言可以是唯一的。每一子密文可以基于整个数值或根本不基于数值。在确定子密文时,没有数值的总计(summary)、取整(rounding)或子部分(sub-part)。每一子密文可以独立于数值的其他子密文。即,子密文不用于确定数值的其他子密文。该方法还可以包括以下步骤:确定一组随机数分量;其中确定密文的步骤还基于该组随机数分量。随机数分量可以包括一个或多个随机数。一优点是,由随机数将噪声引入密文中,使产生的密文难以破解。在该情况下,使用的子密文越多,随机数越多,则继而加密越安全。确定密文的步骤可本文档来自技高网
...

【技术保护点】
一种计算机实现的方法,其用于加密要存储在数据库中的数值,所述方法包括:使用加法同态加密确定针对所述数值的密文,其中所述密文包括两个或更多个子密文;以及使每一子密文单独地并在单个记录中存储在所述数据库中。

【技术特征摘要】
【国外来华专利技术】2012.06.22 AU 20129026531.一种计算机实现的方法,其用于对数据库执行查询,其中,所述查询的数值对象被表示为使用加法同态加密确定的密文,并且所述密文包括多个部分,所述多个部分包括至少第一子密文和第二子密文,所述方法包括:将所述第一子密文和所述第二子密文存储在所述数据库中,其中,所述第一子密文和所述第二子密文是所述密文的部分分量,以使得对所述密文的解密需要至少所述第一子密文和所述第二子密文,所述第一子密文和所述第二子密文在所述数据库中在单独的属性中存储,并且所述第一子密文和所述第二子密文中的每个是基于整个数值来确定的,其中,对所述第二子密文进行确定是独立于对所述第一子密文的确定的;生成查询,所述查询涉及要对存储在所述数据库中的所述第一子密文和所述第二子密文执行的计算;以及对所述第一子密文和所述第二子密文执行所述计算以确定针对所述查询的加密答案,而不需要解密所述第一子密文和所述第二子密文。2.根据权利要求1所述的计算机实现的方法,其中所述加法同态加密也是乘法同态的。3.根据权利要求1所述的计算机实现的方法,其中所述方法还包括以下步骤:基于包括一组密钥分量的密钥来确定所述密文,其中在该组密钥分量中的密钥分量的数目等于子密文的数目。4.根据权利要求3所述的计算机实现的方法,其中所述方法还包括:基于子密文的数目确定该组密钥分量。5.根据权利要求3所述的计算机实现的方法,其中所述密钥满足以下等式:其中,V是所述数值,n是子密文的数目,K(n)是所述密钥,fi是所述密钥的第i个函数,且Valuei是K(n)和V的第i个函数。6.根据权利要求3所述的计算机实现的方法,其中确定所述密文包括确定满足以下等式的子密文:其中,V是所述数值,n是子密文的数目,K(n)是所述密钥,fi是所述密钥的第i个函数,且Vi是第i个子密文。7.根据权利要求3所述的计算机实现的方法,其中确定所述密文包括确定满足以下等式的子密文:Vi=Valuei(K(n),V)+Noisei(K(n),R)其中,V是所述数值,n是子密文的数目,K(n)是所述密钥,R是一组随机数,Vi是第i个子密文,Valuei是K(n)和V的第i个函数,且Noisei是K(n)和R的第i个函数。8.根据权利要求1所述的计算机实现的方法,其中所述方法包括以下步骤:通过以下来确定所述密文:针对每一子密文,将第一结果和第二结果相加,其中所述第一结果是基于与该子密文相关联的密钥和所述数值的函数的值,且所述第二结果是基于与该子密文相关联的所述密钥和一个或多个随机数的函数的值。9.根据权利要求1所述的计算机实现的方法,其中所述方法包括以下步骤:确定所述密文,其不包括使用取模或地板算术运算。10.根据权利要求1所述的计算机实现的方法,其中所述方法还包括如下步骤:确定一组随机数分量;以及基于该组随机数分量确定所述密文。11.根据权利要求10所述的计算机实现的方法,其中确定所述密文基于包括一组密钥分量的密钥,其中该组密钥分量中的密钥分量的数目等于子密文的数目,且确定该组随机数分量包括确定满足如下等式的一组随机数:其中,n是子密文的数目,K(n)是所述密钥,fi是所述密钥的第i个函数,R是一组随机数分量;且Noisei是K(n)和R的第i个函数。12.根据权利要求11所述的计算机实现的方法,其中所述等式可组合且所述方法还包括:将所述密钥的多个实例融合以创建新的密钥实例。13.根据权利要求1所述的计算机实现的方法,其中所述方法还包括:基于用于对数值进行加密的密钥来解密针对所述查询的加密的答案。14.根据权利要求1所述的计算机实现的方法,其中所述计算是基于乘法的对所述数据库的查询,所...

【专利技术属性】
技术研发人员:刘东喜
申请(专利权)人:联邦科学技术研究组织
类型:发明
国别省市:澳大利亚;AU

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

1