数据库系统、数据库处理方法

申请号 CN201680025992.0 申请日 2016-05-06 公开(公告)号 CN107533813B 公开(公告)日 2021-02-19
申请人 日本电信电话株式会社; 发明人 桐渊直人; 泷口浩义;
摘要 本 发明 的 数据库 系统具备:判定单元(13),其判定是否将要在数据库中注册的信息进行隐匿;终端装置(1),在判定单元(13)判断为进行隐匿的情况下,将N设为规定的正整数,将信息秘密分散,由此生成N个碎片信息,并发送到系统管理装置(2);系统管理装置(2),其将从终端装置(1)接收到的N个碎片信息分别发送到N个数据库装置(3);N个数据库装置(3),其分别存储从系统管理装置(2)接收到的N个碎片信息。
权利要求

1.一种数据库系统,其包含:
判定单元,判定是否将要在数据库中注册的信息进行隐匿;
终端装置,在所述判定单元中判断为进行隐匿的情况下,通过将N设为规定的正整数、将所述信息秘密分散而生成N个碎片信息,并将其发送到系统管理装置,使得仅通过将K个碎片汇集在一起即可得知原始数据,其中K为N以下的正整数;
所述系统管理装置,将从所述终端装置接收到的N个碎片信息分别发送到N个数据库装置;以及
N个数据库装置,其分别存储从所述系统管理装置接收到的N个碎片信息,所述判定单元被设置在所述终端装置中,
所述判定单元判定是否将用于参照数据库的检索条件的全部或一部分进行隐匿,在将C设为K以上N以下的正整数,在所述判定单元中判定为将所述检索条件的全部或一部分进行隐匿的情况下,所述终端装置通过将所述检索条件的全部或一部分秘密分散而生成C个碎片检索信息,并发送到所述系统管理装置,
所述系统管理装置将从所述终端装置接收到的C个碎片检索信息分别发送到C个数据库装置,
所述C个数据库装置通过秘密计算而找出与所述C个碎片检索信息对应的C个碎片信息,
所述系统管理装置将所述C个碎片信息中的K个碎片信息发送到所述终端装置,所述终端装置基于接收到的K个碎片信息恢复原始信息。
2.根据权利要求1所述的数据库系统,其中,
所述判定单元判定要从数据库参照的信息是否被隐匿,
在将K设为N以下的规定的正整数,在所述判定单元中判定为被隐匿的情况下,所述系统管理装置读入分别存储于所述N个数据库装置中的K个数据库装置的K个碎片信息并发送到所述终端装置,
所述终端装置基于从所述系统管理装置接收到的K个碎片信息而恢复原始信息。
3.一种数据库处理方法,其包含:
判定单元判定是否将要在数据库注册的信息进行隐匿的判定步骤;
终端装置在所述判定步骤中判定为进行隐匿的情况下,通过将N设为规定的正整数、将所述信息秘密分散而生成N个碎片信息,并发送到系统管理装置,使得仅通过将K个碎片汇集在一起即可得知原始数据的步骤,其中K为N以下的正整数;
系统管理装置将从所述终端装置接收到的N个碎片信息分别发送到N个数据库装置的步骤;以及
N个数据库装置分别存储从所述系统管理装置接收到的N个碎片信息的步骤,所述判定单元被设置在所述终端装置中,
所述判定单元判定是否将用于参照数据库的检索条件的全部或一部分进行隐匿,在将C设为K以上N以下的正整数,在所述判定单元中判定为将所述检索条件的全部或一部分进行隐匿的情况下,所述终端装置通过将所述检索条件的全部或一部分秘密分散而生成C个碎片检索信息,并发送到所述系统管理装置,
所述系统管理装置将从所述终端装置接收到的C个碎片检索信息分别发送到C个数据库装置,
所述C个数据库装置通过秘密计算而找出与所述C个碎片检索信息对应的C个碎片信息,
所述系统管理装置将所述C个碎片信息中的K个碎片信息发送到所述终端装置,所述终端装置基于接收到的K个碎片信息恢复原始信息。

说明书全文

数据库系统、数据库处理方法

技术领域

[0001] 本发明涉及密码应用技术,特别是涉及对数据库中存储的数据进行信息 处理而不公开数据的秘密计算的技术。

背景技术

[0002] 作为将数据库中存储的数据隐匿的方法,已知主要有如下三种方法:(1) 基于透明加密的加密、(2)基于可检索的密码等的加密、(3)基于全同态 加密的加密。
[0003] (1)透明加密是通过将数据加密之后存储于数据库,从而将存储于数据 库的数据隐匿的加密(例如,参照非专利文献1。)。
[0004] (2)基于可检索的密码等的加密是通过在密文的状态下进行特定的处 理,能够进行隐匿了数据的状态下的检索或者与密码方式相应的操作的加密 (例如,参照非专利文献2。)。
[0005] (3)基于全同态加密的加密是通过在密文的状态下进行任意的处理,能 够进行隐匿了数据的状态下的操作的加密(例如,参照非专利文献3。)。
[0006] 现有技术文献
[0007] 非专利文献
[0008] 非专利文献1:Oracle Advanced Security,[online],[平成27年5月1 日检索],网址〈URL: http://www.oracle.com/jp/products/database/options/advanced-security/overview/index.html〉
[0009] 非专利文献2:D.X.Song,D.Wagner,and A.Perring“,Practical Techniques for Searches on Encrypted Data,”in IEEE Symposium on Security and Privacy, pages 44-55,2000.
[0010] 非专利文献3:C.Gentry,“Fully Homomorphic Encryption Using Ideal Lattices,”in STOC‘09,pages 169-178,2009.
[0011] 发明所要解决的课题
[0012] 上述(1)~(3)的方法均是使用密钥的方式,因此,存在密钥泄露的 险。

发明内容

[0013] 本发明的目的在于,提供一种没有密钥泄露的风险的数据库系统、数据 库处理方法。
[0014] 用于解决课题的技术方案
[0015] 本发明一方面的数据库系统具备:判定单元,其判定是否将要注册在数 据库中的信息进行隐匿;终端装置,其在判定单元判断为进行隐匿的情况下, 通过将N设为规定的正整数、将信息秘密分散而生成N个碎片信息,并发送 到系统管理装置;系统管理装置,将从终端装置接收到的N个碎片信息分别 发送到N个数据库装置;以及N个数据库装置,分别存储从系统管理装置接 收到的N个碎片信息。
[0016] 发明效果
[0017] 由于不必使用密钥,因此没有密钥泄露的风险。附图说明
[0018] 图1是用于说明数据库系统的例子的框图
[0019] 图2是用于说明数据注册处理的例子的流程图
[0020] 图3是用于说明数据检索处理的例子的流程图。

具体实施方式

[0021] 如图1所示,数据库系统例如具备终端装置1、系统管理装置2、N个数 据库装置3。
[0022] 终端装置1为手机、智能手机、PC等信息终端。终端装置1例如具备查 询解释单元11、隐匿单元12、判定单元13及恢复单元14。在图1的例子中, 仅描绘出一个终端装置1,但也可以是不同的多个终端装置1以相互可通信的 状态与系统管理装置2连接。
[0023] 如后所述,系统管理装置2是用于管理数据库系统的服务器。系统管理 装置2例如具备数据库控制单元21。
[0024] 如后所述,数据库装置3是存储被秘密分散的碎片,根据需要通过秘密 计算而恢复信息的装置。数据库装置3例如具备记录单元31及秘密计算处理 单元32。
[0025] 秘密分散是通过将输入的数据进行变换并隔离成多个(N个)碎片而进 行隐匿的技术。N是规定的正整数。仅通过将K个(K是N以下的正整数。) 碎片汇集在一起即可得知原始数据,由于不必使用密钥,因此没有因陷入危 险而导致的信息泄露风险(例如,参照参考文献1。)。
[0026] 〔参考文献1〕A.Shamir,“How to Share a Secret,”Communications of the ACM 22,pages 612-613,1979.
[0027] 秘密计算是使用通过秘密分散而被隐匿的C个(C是K以上N以下的正 整数。)碎片,不公开地处理原始数据的技术。已知理论上可以执行任意的 函数计算。下述的参考文献2中示出作为基本运算的乘法的方法。
[0028] 〔参考文献2〕R.Gennaro,M.O.Rabin,and T.Rabin,“Simplified VSS and Fast-track Multiparty Computations with Applications to Threshold Cryptography,”17th annual ACM symposium on Principles of distributed computing,ACM,1998.[0029] 数据库的操作是从终端装置1输入,经由系统管理装置2在各数据库装 置3中来执行。数据库的数据处理与通常的数据库同样,主要由6个处理构 成。6个处理是:1.表定义、
2.数据注册、3.数据检索、4.数据更新、5.数 据删除、6.表删除。以下,对各处理进行说明。
[0030] [表定义]
[0031] 表定义是定义存储数据的表的操作。
[0032] 被输入终端装置1的查询(例如SQL语句)在通过查询解释单元11判 定为“表定义”处理的情况下,将表名、表的各列的属性等有关创建的表的信 息发送到系统管理装置2。
[0033] 系统管理装置2通过数据库控制单元21向N个数据库装置发送有关创建 的表的信息。
[0034] 数据库装置3将有关创建的表的信息记录于记录单元31,并将完成通知 回送到系统管理装置2。
[0035] 系统管理装置2确认从N个数据库装置正常地接收到完成通知的情况, 通知终端装置1“表定义”处理正常结束。
[0036] 终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给 用户。
[0037] [数据注册]
[0038] 数据注册是存储数据的操作。
[0039] 在被输入到终端装置1的查询(例如SQL语句)由查询解释单元11判 定为“数据注册”处理的情况下,将注册数据的表名发送到系统管理装置2。
[0040] 系统管理装置2从至少一个数据库装置3取得有关对象的表的信息即表 信息,将该信息回送到终端装置1。
[0041] 终端装置1的判定单元13根据回送的信息判定隐匿的列。即,判定单元 13判定是否将要在数据库注册的信息进行隐匿(步骤A1、图2)。
[0042] 判定为进行隐匿的信息、换言之存储于隐匿的列中的信息在终端装置1 的隐匿单元12被秘密分散。终端装置1将通过秘密分散而变换成碎片的信息 和未判定为进行隐匿的信息、即存储于未隐匿的列的明文的信息一并发送到 系统管理装置2。
[0043] 这样,在判定单元13判定为进行隐匿的情况下,终端装置1的隐匿单元 12通过将该进行隐匿的信息秘密分散而生成N个碎片信息并发送到系统管理 装置(步骤A2、图2)。N个碎片信息分别与N个数据库装置3相关联。
[0044] 系统管理装置2将从终端装置1接收到的N个碎片信息分别发送到N个 数据库装置3(步骤A3、图2)。具体而言,系统管理装置2通过数据库控 制单元21向N个数据库装置3发送“数据注册”处理需要的表名、注册的明文 /碎片数据等信息。
[0045] 数据库装置3分别存储从系统管理装置2接收到的N个碎片信息(步骤 A4、图2)。即,各数据库装置3将注册的碎片信息记录于记录单元31,并 将结束通知回送到系统管理装置。
[0046] 系统管理装置2确认从N个数据库装置3正常地接收到了完成通知的情 况,通知终端装置1“数据注册”处理正常结束。
[0047] 终端装置1通过查询解释单元11将与被输入的查询相对应的应答通知给 用户。
[0048] [数据检索]
[0049] 数据检索是从存储的数据参照对象的数据的操作。
[0050] 在被输入终端装置1的查询(例如SQL语句)由查询解释单元11判定 为“数据检索”处理的情况下,将检索数据的表名发送到系统管理装置2。
[0051] 系统管理装置2从至少一个数据库装置3取得有关成为数据检索的对象 的表的信息,并将该信息回送到终端装置1。
[0052] 终端装置1的判定单元13判定是否将用于参照数据库的检索条件的全部 或一部分进行隐匿(步骤B1)。即,判定单元13根据回送的信息判定执行 的“数据检索”处理中是否包含秘密计算处理。例如,在检索某个年龄以上的 人的id的情况下,其年龄被隐匿。
[0053] 另外,判定单元13判定要从数据库参照的信息是否被隐匿(步骤B2)。 例如,判定单元13在检索对象的列中含有碎片的情况下,判定为要从数据库 参照的信息被隐匿。
[0054] 在判定单元13判定为将检索条件的全部或一部分进行隐匿的情况下,终 端装置1的隐匿单元12通过将检索条件的全部或一部分秘密分散而生成碎片 检索信息,并发送到系统管理装置2(步骤B3)。此时,判定单元13也可以 将有关是否将用于参照数据库的检索条件的全部或一部分进行隐匿的判定结 果和要从数据库参照的信息是否被隐匿的判定结果的信息发送到系统管理装 置2。碎片检索信息生成C个,将C设为K以上N以下的正整数。各碎片检 索信息与数据库装置3的任一个相关联。
[0055] (1)在判定为将用于参照数据库的检索条件的全部或一部分进行隐匿的 情况、即通过将检索条件的全部或一部分进行秘密分散而生成碎片检索信息 的情况下,系统管理装置2将C个碎片检索信息分别发送到对应的数据库装 置3(步骤B4)。
[0056] 该情况下,分别接收到C个碎片检索信息的C个数据库装置3通过秘密 计算而发现与上述C个碎片检索信息对应的C个碎片信息(步骤B5)。
[0057] 系统管理装置2将发现的C个碎片信息中的K个碎片信息发送到终端装 置1(步骤B6)。例如,系统管理装置2分别从C个数据库装置3接收C个 碎片信息,将接收到的C个碎片信息中的K个碎片信息发送到终端装置1。 另外,系统管理装置2也可以选择分别存储有所发现的C个碎片信息的C个 数据库装置3中的K个数据库装置,从所选择的K个数据库装置3分别接收 K个碎片信息,将接收到的K个碎片信息发送到终端装置1。
[0058] 终端装置1的恢复单元14基于接收到的K个碎片信息恢复原始信息(步 骤B7)。之后,通过终端装置1的查询解释单元11将与所输入的查询相对 应的应答通知给用户。
[0059] (2)在未判定为将用于参照数据库的检索条件的全部或一部分进行隐匿 的情况、且判定为要从数据库参照的信息被隐匿的情况下,系统管理装置2 读入N个数据库装置3中的K个数据库装置3中分别存储的K个碎片信息并 发送到终端装置1(步骤B6)。例如,系统管理装置2从N个数据库装置3 分别接收N个碎片信息,并将接收到的N个碎片信息中的K个碎片信息发送 到终端装置1。另外,系统管理装置2也可以选择N个数据库装置3中的K 个数据库装置3,从所选择的K个数据库装置3分别接收K个碎片信息,并 将接收到的K个碎片信息发送到终端装置1。
[0060] 终端装置1的恢复单元14基于接收到的K个碎片信息恢复原始信息(步 骤B7)。之后,通过终端装置1的查询解释单元11,将与所输入的查询相对 应的应答通知给用户。
[0061] 在该(2)的情况下,不进行图3的步骤B3至步骤B5的处理。
[0062] (3)在未判定为将用于参照数据库的检索条件的全部或一部分进行隐匿 的情况、且判定为要从数据库参照的信息被隐匿的情况下,系统管理装置2 向至少1个数据库装置3发送检索命令。
[0063] 接收到检索命令的数据库装置3从记录单元31取得检索对象信息,并将 检索结果回送到系统管理装置2。
[0064] 系统管理装置2将来自数据库装置3的结果回送到终端装置1。
[0065] 之后,通过终端装置1的查询解释单元11,将与所输入的查询相对应的 应答通知给用户。
[0066] 在该(3)的情况下,不进行图3的步骤B3至步骤B7的处理。
[0067] [数据更新]
[0068] 数据更新是更新所存储的对象的数据的操作。
[0069] 在被输入终端装置1的查询(例如SQL语句)通过查询解释单元11判 定为“数据更新”处理的情况下,将更新数据的表名发送到系统管理装置2。
[0070] 系统管理装置2从至少1个数据库装置3取得有关对象的表的信息,并 将该信息回送到终端装置1。
[0071] 终端装置1根据回送的信息判定隐匿的列及执行的“数据更新”处理中是 否包含秘密计算处理。隐匿的列中存储的信息通过终端装置1的隐匿单元12 被秘密分散。通过秘密分散而变换为碎片的信息和未隐匿的列中存储的明文 的信息及秘密计算处理的有无被发送到系统管理装置2。例如,在将住址、电 话号码等应进行隐匿的私人信息维持隐匿进行更新的情况下,对“数据更新” 处理进行秘密计算。
[0072] 系统管理装置2通过数据库控制单元21向N个数据库装置3发送“数据 更新”处理需要的表名、更新的明文/隐匿数据等信息。
[0073] 数据库装置3仅在包含秘密计算处理的情况下实施秘密计算处理单元32 进行的秘密计算处理,将更新的信息记录于记录单元31,并将完成通知回送 到系统管理装置2。
[0074] 系统管理装置2确认从N个数据库装置正常地接收到完成通知的情况, 通知终端装置1“表更新”处理正常完成。
[0075] 终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给 用户。
[0076] [数据删除]
[0077] 数据删除是删除所存储的对象的数据的操作。
[0078] 在被输入终端装置1的查询(例如SQL语句)由查询解释单元11判定 为“数据删除”处理的情况下,将删除数据的表名发送到系统管理装置2。
[0079] 系统管理装置2从至少一个数据库装置3取得有关对象的表的信息,并 将该信息回送到终端装置1。
[0080] 终端装置1的判定单元13根据回送的信息判定“数据删除”处理中是否包 含秘密计算处理,通过系统管理装置2的数据库控制单元21向N个数据库装 置3发送“数据删除”处理需要的表名、删除条件等信息。例如,在将被隐匿 的id等信息维持被隐匿的状态进行删除的情况下,对“数据删除”处理进行秘 密计算处理。
[0081] 数据库装置3仅在包含秘密计算处理的情况下实施秘密计算处理单元32 的秘密计算处理,将要删除的信息从记录单元31删除,并将完成通知回送到 系统管理装置2。
[0082] 系统管理装置2确认从N个数据库装置正常地接收到完成通知的情况, 通知终端装置1“数据删除”处理正常完成。
[0083] 终端装置1通过查询解释单元11将与所输入的查询相对应的响应通知给 用户。
[0084] [表删除]
[0085] 表删除是删除所定义的对象的表的操作。
[0086] 被输入终端装置1的查询(例如SQL语句)由查询解释单元11判定为“表 删除”处理,将删除的表名发送到系统管理装置2。
[0087] 系统管理装置2通过数据库控制单元21向N个数据库装置3发送“表删 除”处理需要的表名等信息。
[0088] 数据库装置3将删除的信息从记录单元删除,并将完成通知回送到系统 管理装置2。
[0089] 系统管理装置2确认从N个数据库装置3正常地接收到完成通知的情况, 通知终端装置1“表删除”处理正常完成。
[0090] 终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给 用户。
[0091] [变形例等]
[0092] 终端装置1的查询解释单元11也可以与一般的数据库操作命令(例如 SQL语句)相对应。由此,不必改造利用数据库的外部程序就能够利用安全 的数据库。
[0093] 例如,外部程序存在于一般的Web三层模型的系统上的情况下,对数据 库的操作命令从应用服务器发送到数据库服务器,因此,通过将来自应用服 务器的数据库操作命令发送到终端装置1,不必改造应用服务器上的外部程序 就能够利用安全的数据库。
[0094] 另外,作为数据库装置3,也可以使用原有的数据库装置。由此,能够消 减成本。
[0095] 数据库的功能被分成包含秘密计算的操作和不含秘密计算的操作。例如, 对隐匿的年龄的检索包含秘密计算,但未指定条件的检索不含秘密计算。不 含秘密计算的操作与一般的数据库的操作相同,因此,可以通过直接利用原 有的数据库的该功能而进行处理。只要仅在包含秘密计算的情况下,秘密计 算处理单元32进行处理即可。例如,通过由原有的数据库所具备的外部功能 调用单元来调用,秘密计算处理单元32进行处理。
[0096] 由此,关于不含秘密计算的操作的程序在原有数据库中被代用,因此是 不必要的,能够消减发明整体的程序的量。
[0097] 在上述的例子中,判定单元13设置于终端装置1,但判定单元13也可以 设置于终端装置1的外部。例如,判定单元13也可以设置于系统管理装置2。
[0098] [程序及记录介质]
[0099] 在数据库系统、数据库处理方法中说明的处理不仅可按照记载的顺序以 时间序列来执行,而且还可以按照执行处理的装置的处理能或者根据需要 并行或单独地执行。
[0100] 另外,在由计算机实现构成数据库系统的各装置或各单元中的各处理的 情况下,该各装置或各单元应有的功能的处理内容通过程序来记述。而且, 通过计算机执行该程序,在计算机上实现该各处理。
[0101] 记述了该处理内容的程序能够记录在计算机可读取的记录介质中。作为 由计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介 质、半导体存储器等那样的装置。
[0102] 另外,如上所述,各装置或各部也可以通过在计算机上执行规定的程序 而构成,也可通过硬件实现这些处理内容的至少一部分。
[0103] 另外,不用说,在不脱离本发明的宗旨的范围内可以进行适当变更。
QQ群二维码
意见反馈