数据库系统、数据库处理方法与流程

文档序号:13351027阅读:269来源:国知局
数据库系统、数据库处理方法与流程

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



背景技术:

作为将数据库中存储的数据隐匿的方法,已知主要有如下三种方法:(1)基于透明加密的加密、(2)基于可检索的密码等的加密、(3)基于全同态加密的加密。

(1)透明加密是通过将数据加密之后存储于数据库,从而将存储于数据库的数据隐匿的加密(例如,参照非专利文献1。)。

(2)基于可检索的密码等的加密是通过在密文的状态下进行特定的处理,能够进行隐匿了数据的状态下的检索或者与密码方式相应的操作的加密(例如,参照非专利文献1。)。

(3)基于全同态加密的加密是通过在密文的状态下进行任意的处理,能够进行隐匿了数据的状态下的操作的加密(例如,参照非专利文献1。)。

现有技术文献

非专利文献

非专利文献1:oracleadvancedsecurity,[online],[平成27年5月1日检索],网址〈url:http://www.oracle.com/jp/products/database/options/advanced-security/overview/index.html〉

非专利文献2:d.x.song,d.wagner,anda.perring,“practicaltechniquesforsearchesonencrypteddata,”inieeesymposiumonsecurityandprivacy,pages44-55,2000.

非专利文献3:c.gentry,“fullyhomomorphicencryptionusingideallattices,”instoc‘09,pages169-178,2009.

发明所要解决的课题

上述(1)~(3)的方法均是使用密钥的方式,因此,存在密钥泄露的风险。



技术实现要素:

本发明的目的在于,提供一种没有密钥泄露的风险的数据库系统、数据库处理方法。

用于解决课题的技术方案

本发明一方面的数据库系统具备:判定单元,其判定是否将要注册在数据库中的信息进行隐匿;终端装置,其在判定单元判断为进行隐匿的情况下,通过将n设为规定的正整数、将信息秘密分散而生成n个碎片信息,并发送到系统管理装置;系统管理装置,将从终端装置接收到的n个碎片信息分别发送到n个数据库装置;以及n个数据库装置,分别存储从系统管理装置接收到的n个碎片信息。

发明效果

由于不必使用密钥,因此没有密钥泄露的风险。

附图说明

图1是用于说明数据库系统的例子的框图。

图2是用于说明数据注册处理的例子的流程图。

图3是用于说明数据检索处理的例子的流程图。

具体实施方式

如图1所示,数据库系统例如具备终端装置1、系统管理装置2、n个数据库装置3。

终端装置1为手机、智能手机、pc等信息终端。终端装置1例如具备查询解释单元11、隐匿单元12、判定单元13及恢复单元14。在图1的例子中,仅描绘出一个终端装置1,但也可以是不同的多个终端装置1以相互可通信的状态与系统管理装置2连接。

如后所述,系统管理装置2是用于管理数据库系统的服务器。系统管理装置2例如具备数据库控制单元21。

如后所述,数据库装置3是存储被秘密分散的碎片,根据需要通过秘密计算而恢复信息的装置。数据库装置3例如具备记录单元31及秘密计算处理单元32。

秘密分散是通过将输入的数据进行变换并隔离成多个(n个)碎片而进行隐匿的技术。n是规定的正整数。仅通过将k个(k是n以下的正整数。)碎片汇集在一起即可得知原始数据,由于不必使用密钥,因此没有因陷入危险而导致的信息泄露风险(例如,参照参考文献1。)。

〔参考文献1〕a.shamir,“howtoshareasecret,”communicationsoftheacm22,pages612-613,1979.

秘密计算是使用通过秘密分散而被隐匿的c个(c是k以上n以下的正整数。)碎片,不公开地处理原始数据的技术。已知理论上可以执行任意的函数计算。下述的参考文献2中示出作为基本运算的乘法的方法。

〔参考文献2〕r.gennaro,m.o.rabin,andt.rabin,“simplifiedvssandfast-trackmultipartycomputationswithapplicationstothresholdcryptography,”17thannualacmsymposiumonprinciplesofdistributedcomputing,acm,1998.

数据库的操作是从终端装置1输入,经由系统管理装置2在各数据库装置3中来执行。数据库的数据处理与通常的数据库同样,主要由6个处理构成。6个处理是:1.表定义、2.数据注册、3.数据检索、4.数据更新、5.数据删除、6.表删除。以下,对各处理进行说明。

[表定义]

表定义是定义存储数据的表的操作。

被输入终端装置1的查询(例如sql语句)在通过查询解释单元11判定为“表定义”处理的情况下,将表名、表的各列的属性等有关创建的表的信息发送到系统管理装置2。

系统管理装置2通过数据库控制单元21向n个数据库装置发送有关创建的表的信息。

数据库装置3将有关创建的表的信息记录于记录单元31,并将完成通知回送到系统管理装置2。

系统管理装置2确认从n个数据库装置正常地接收到完成通知的情况,通知终端装置1“表定义”处理正常结束。

终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给用户。

[数据注册]

数据注册是存储数据的操作。

在被输入到终端装置1的查询(例如sql语句)由查询解释单元11判定为“数据注册”处理的情况下,将注册数据的表名发送到系统管理装置2。

系统管理装置1从至少一个数据库装置3取得有关对象的表的信息即表信息,将该信息回送到终端装置1。

终端装置1的判定单元13根据回送的信息判定隐匿的列。即,判定单元13判定是否将要在数据库注册的信息进行隐匿(步骤a1、图2)。

判定为进行隐匿的信息、换言之存储于隐匿的列中的信息在终端装置1的隐匿单元12被秘密分散。终端装置1将通过秘密分散而变换成碎片的信息和未判定为进行隐匿的信息、即存储于未隐匿的列的明文的信息一并发送到系统管理装置2。

这样,在判定单元13判定为进行隐匿的情况下,终端装置1的隐匿单元12通过将该进行隐匿的信息秘密分散而生成n个碎片信息并发送到系统管理装置(步骤a2、图2)。n个碎片信息分别与n个数据库装置3相关联。

系统管理装置2将从终端装置1接收到的n个碎片信息分别发送到n个数据库装置3(步骤a3、图2)。具体而言,系统管理装置2通过数据库控制单元21向n个数据库装置3发送“数据注册”处理需要的表名、注册的明文/碎片数据等信息。

数据库装置3分别存储从系统管理装置2接收到的n个碎片信息(步骤a4、图2)。即,各数据库装置3将注册的碎片信息记录于记录单元31,并将结束通知回送到系统管理装置。

系统管理装置2确认从n个数据库装置3正常地接收到了完成通知的情况,通知终端装置1“数据注册”处理正常结束。

终端装置1通过查询解释单元11将与被输入的查询相对应的应答通知给用户。

[数据检索]

数据检索是从存储的数据参照对象的数据的操作。

在被输入终端装置1的查询(例如sql语句)由查询解释单元11判定为“数据检索”处理的情况下,将检索数据的表名发送到系统管理装置2。

系统管理装置2从至少一个数据库装置3取得有关成为数据检索的对象的表的信息,并将该信息回送到终端装置1。

终端装置1的判定单元13判定是否将用于参照数据库的检索条件的全部或一部分进行隐匿(步骤b1)。即,判定单元13根据回送的信息判定执行的“数据检索”处理中是否包含秘密计算处理。例如,在检索某个年龄以上的人的id的情况下,其年龄被隐匿。

另外,判定单元13判定要从数据库参照的信息是否被隐匿(步骤b2)。例如,判定单元13在检索对象的列中含有碎片的情况下,判定为要从数据库参照的信息被隐匿。

在判定单元13判定为将检索条件的全部或一部分进行隐匿的情况下,终端装置1的隐匿单元12通过将检索条件的全部或一部分秘密分散而生成碎片检索信息,并发送到系统管理装置2(步骤b3)。此时,判定单元13也可以将有关是否将用于参照数据库的检索条件的全部或一部分进行隐匿的判定结果和要从数据库参照的信息是否被隐匿的判定结果的信息发送到系统管理装置2。碎片检索信息生成c个,将c设为k以上n以下的正整数。各碎片检索信息与数据库装置3的任一个相关联。

(1)在判定为将用于参照数据库的检索条件的全部或一部分进行隐匿的情况、即通过将检索条件的全部或一部分进行秘密分散而生成碎片检索信息的情况下,系统管理装置2将c个碎片检索信息分别发送到对应的数据库装置3(步骤b4)。

该情况下,分别接收到c个碎片检索信息的c个数据库装置3通过秘密计算而发现与上述c个碎片检索信息对应的c个碎片信息(步骤b5)。

系统管理装置2将发现的c个碎片信息中的k个碎片信息发送到终端装置1(步骤b6)。例如,系统管理装置2分别从c个数据库装置3接收c个碎片信息,将接收到的c个碎片信息中的k个碎片信息发送到终端装置1。另外,系统管理装置2也可以选择分别存储有所发现的c个碎片信息的c个数据库装置3中的k个数据库装置,从所选择的k个数据库装置3分别接收k个碎片信息,将接收到的k个碎片信息发送到终端装置1。

终端装置1的恢复单元14基于接收到的k个碎片信息恢复原始信息(步骤b7)。之后,通过终端装置1的查询解释单元11将与所输入的查询相对应的应答通知给用户。

(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。

终端装置1的恢复单元14基于接收到的k个碎片信息恢复原始信息(步骤b7)。之后,通过终端装置1的查询解释单元11,将与所输入的查询相对应的应答通知给用户。

在该(2)的情况下,不进行图3的步骤b3至步骤b5的处理。

(3)在未判定为将用于参照数据库的检索条件的全部或一部分进行隐匿的情况、且判定为要从数据库参照的信息被隐匿的情况下,系统管理装置2向至少1个数据库装置3发送检索命令。

接收到检索命令的数据库装置3从记录单元31取得检索对象信息,并将检索结果回送到系统管理装置2。

系统管理装置2将来自数据库装置3的结果回送到终端装置1。

之后,通过终端装置1的查询解释单元11,将与所输入的查询相对应的应答通知给用户。

在该(3)的情况下,不进行图3的步骤b3至步骤b7的处理。

[数据更新]

数据更新是更新所存储的对象的数据的操作。

在被输入终端装置1的查询(例如sql语句)通过查询解释单元11判定为“数据更新”处理的情况下,将更新数据的表名发送到系统管理装置2。

系统管理装置2从至少1个数据库装置3取得有关对象的表的信息,并将该信息回送到终端装置1。

终端装置1根据回送的信息判定隐匿的列及执行的“数据更新”处理中是否包含秘密计算处理。隐匿的列中存储的信息通过终端装置1的隐匿单元12被秘密分散。通过秘密分散而变换为碎片的信息和未隐匿的列中存储的明文的信息及秘密计算处理的有无被发送到系统管理装置2。例如,在将住址、电话号码等应进行隐匿的私人信息维持隐匿进行更新的情况下,对“数据更新”处理进行秘密计算。

系统管理装置2通过数据库控制单元21向n个数据库装置3发送“数据更新”处理需要的表名、更新的明文/隐匿数据等信息。

数据库装置3仅在包含秘密计算处理的情况下实施秘密计算处理单元32进行的秘密计算处理,将更新的信息记录于记录单元31,并将完成通知回送到系统管理装置2。

系统管理装置2确认从n个数据库装置正常地接收到完成通知的情况,通知终端装置1“表更新”处理正常完成。

终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给用户。

[数据删除]

数据删除是删除所存储的对象的数据的操作。

在被输入终端装置1的查询(例如sql语句)由查询解释单元11判定为“数据删除”处理的情况下,将删除数据的表名发送到系统管理装置2。

系统管理装置2从至少一个数据库装置3取得有关对象的表的信息,并将该信息回送到终端装置1。

终端装置1的判定单元13根据回送的信息判定“数据删除”处理中是否包含秘密计算处理,通过系统管理装置2的数据库控制单元21向n个数据库装置3发送“数据删除”处理需要的表名、删除条件等信息。例如,在将被隐匿的id等信息维持被隐匿的状态进行删除的情况下,对“数据删除”处理进行秘密计算处理。

数据库装置3仅在包含秘密计算处理的情况下实施秘密计算处理单元32的秘密计算处理,将要删除的信息从记录单元31删除,并将完成通知回送到系统管理装置2。

系统管理装置2确认从n个数据库装置正常地接收到完成通知的情况,通知终端装置1“数据删除”处理正常完成。

终端装置1通过查询解释单元11将与所输入的查询相对应的响应通知给用户。

[表删除]

表删除是删除所定义的对象的表的操作。

被输入终端装置1的查询(例如sql语句)由查询解释单元11判定为“表删除”处理,将删除的表名发送到系统管理装置2。

系统管理装置2通过数据库控制单元21向n个数据库装置3发送“表删除”处理需要的表名等信息。

数据库装置3将删除的信息从记录单元删除,并将完成通知回送到系统管理装置2。

系统管理装置2确认从n个数据库装置3正常地接收到完成通知的情况,通知终端装置1“表删除”处理正常完成。

终端装置1通过查询解释单元11将与所输入的查询相对应的应答通知给用户。

[变形例等]

终端装置1的查询解释单元11也可以与一般的数据库操作命令(例如sql语句)相对应。由此,不必改造利用数据库的外部程序就能够利用安全的数据库。

例如,外部程序存在于一般的web三层模型的系统上的情况下,对数据库的操作命令从应用服务器发送到数据库服务器,因此,通过将来自应用服务器的数据库操作命令发送到终端装置1,不必改造应用服务器上的外部程序就能够利用安全的数据库。

另外,作为数据库装置3,也可以使用原有的数据库装置。由此,能够消减成本。

数据库的功能被分成包含秘密计算的操作和不含秘密计算的操作。例如,对隐匿的年龄的检索包含秘密计算,但未指定条件的检索不含秘密计算。不含秘密计算的操作与一般的数据库的操作相同,因此,可以通过直接利用原有的数据库的该功能而进行处理。只要仅在包含秘密计算的情况下,秘密计算处理单元32进行处理即可。例如,通过由原有的数据库所具备的外部功能调用单元来调用,秘密计算处理单元32进行处理。

由此,关于不含秘密计算的操作的程序在原有数据库中被代用,因此是不必要的,能够消减发明整体的程序的量。

在上述的例子中,判定单元13设置于终端装置1,但判定单元13也可以设置于终端装置1的外部。例如,判定单元13也可以设置于系统管理装置2。

[程序及记录介质]

在数据库系统、数据库处理方法中说明的处理不仅可按照记载的顺序以时间序列来执行,而且还可以按照执行处理的装置的处理能力或者根据需要并行或单独地执行。

另外,在由计算机实现构成数据库系统的各装置或各单元中的各处理的情况下,该各装置或各单元应有的功能的处理内容通过程序来记述。而且,通过计算机执行该程序,在计算机上实现该各处理。

记述了该处理内容的程序能够记录在计算机可读取的记录介质中。作为由计算机可读取的记录介质,例如也可以是磁记录装置、光盘、光磁记录介质、半导体存储器等那样的装置。

另外,如上所述,各装置或各部也可以通过在计算机上执行规定的程序而构成,也可通过硬件实现这些处理内容的至少一部分。

另外,不用说,在不脱离本发明的宗旨的范围内可以进行适当变更。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1