秘密计算方法、秘密计算系统、秘密计算服务器、注册者终端、用户终端以及程序的制作方法
【专利摘要】以隐匿了个人信息的状态进行数据处理。注册者终端(2)对注册时输入密码进行秘密分散而分配给秘密计算服务器(1)。秘密计算服务器(1)验证密码是否一致。注册者终端(2)对处理对象数据进行秘密分散而分配给秘密分散服务器(1)。秘密计算服务器(1)存储数据分散值。用户终端(3)对利用时输入密码进行秘密分散而分配给秘密计算服务器(1)。秘密计算服务器(1)验证密码是否一致。用户终端(3)将数据处理请求发送给秘密计算服务器(1)。秘密计算服务器(1)对数据分散值执行秘密计算,生成处理结果的分散值。用户终端(3)恢复处理结果分散值而获得处理结果。
【专利说明】
秘密计算方法、秘密计算系统、秘密计算服务器、注册者终端、用户终端以及程序
技术领域
[0001]本发明涉及密码应用技术,尤其涉及不泄漏输入数据而进行函数计算、统计处理的秘密计算技术。
【背景技术】
[0002]近年来,通过遵守个人信息保护法等提高了保护隐私的重要性。因此,例如在利用了大数据的数据挖掘、罕见病例的处方新药开发、国家规划布局这样的采用人口普查信息等的统计分析中,增加了以隐匿个人信息的状态进行数据处理的要求。但是,在多数情况下,积累的重要的数据被进行了秘密管理,无法充分应对要求高的市场分析和用于策划的统计分析,停留在数据的积累,可谓没有走出记录的领域。
[0003]以隐匿个人信息的状态的信息利用考虑如下的方法:在物理上将包含个人信息的数据库进行隔离,通过运用向所需的信息进行的接入来应对。例如,考虑从数据库中删除有关个人信息的项目、在保存数据时进行加密且在加工时解密为明文、通过运用而进行限定于系统管理者等的接入控制、以不能确定个人的方式掩蔽个人信息等方法。
[0004]以在通过如上述那样的方法隐匿了个人信息的状态进行函数计算、统计处理作为目的的技术中,例如有非专利文献I至9中所举的技术。
[0005]现有技术文献
[0006]非专利文献
[0007]非专利文献l:DanBogdanov ,Margus Niitsoo , Tomas Toft ,Jan WiIlemson,“High-performance secure mult1-party computat1n for data miningapplicat1ns,,,Internat1nal Journal of Informat1n Security,vo1.11, issue 6,pp403-418,2012
[0008]非专利文献2:Martin Burkhart ,Mar1 Strasser, Di I ip Many ,XenofontasDimitropoulos,uSEPIA:Privacy-Preserving Aggregat1n of Mult1-Domain NetworkEvents and Statistics,,,USENIX Security, 2010
[0009]非专利文献3: Raluca Ada Popa , Catherine M.S.RedfieldjNickolaiZeldovich,Hari Balakrishnan,“CryptDB: Protecting Confidentiality withEncrypted Query Processing”,SOSP’I IProceedings of the Twenty-Third ACMSymposium on Operating Systems Principles,pp.85-100,2011
[0010]非专利文南犬4: Craig Gentry,“Ful Iy Homomorphic Encrypt1n Using IdealLattices”,STOC’09Proceedings of the 41st annual ACM symposium on Theory ofcomputing,pp.169-178,2009
[0011]非专利文献5:日本甲骨文株式会社,“Oracle Advanced Security”、
[0012][online]、[2014年 I 月 24 日检索],互联网〈URL:
[0013]http://www.0racle.com/technetwork/jp/database/enterprise-edit1n/ds_security-adv anced—security—llgr2_134506_ja.pdf>
[OOM]非专利文献6:三菱电机株式会社,“秘匿検索基盤乂 7卜夕工,[online]、[2014年I月24日检索],互联网〈URL:
[0015]http://www.mitsubishielectric.c0.jp/news/2013/pdf/0703-a.pdf>
[0016]非专利文献7:日本IBM株式会社,“IBM InfoSphere Optim Data MaskingSolut1n for Oracle E-Business Suite”,[online],[2014年I 月24 日检索],互联网〈URL:
[0017]http://www-06.1bm.com/software/jp/data/optim/solut1nbrief/IMS14011_JPJA_01.pdf)
[0018]非专利文献8:株式会社富士通研究所,“世界初!暗号化L t圭圭統計計算令生体認証疔PSr可能準同型暗号仍高速化技術旮開発”,[online],[2014年I月24日检索],互联网〈URL:
[0019]http://pr.fujitsu.com/jp/news/2013/08/28.html>
[0020]非专利文献9:日本电气株式会社,“NEC、世界初、X—夕X—只(7)情報旮暗号化L化圭圭処理秘匿計算技術旮開発”,[online],[2014年I月24日检索],互联网〈URL:http://jpn.nec.com/press/201311/20131106_01.html>
【发明内容】
[0021]发明要解决的课题
[0022]基于以往的方法的对个人信息进行了隐匿的信息利用中存在以下的课题。在从数据库中删除个人信息的方法中,例如在少数情况下的分析等数据的整体数目少的情况下,能够根据个人信息以外的值而类推个人,不能保证安全性。在保存数据时进行加密的方法中,在对数据进行加工时需要解码为明文,不能排除信息泄露的危险性。在通过运用而进行接入控制的方法中,存在由于来自内部的非法接入而信息泄露的危险性。在掩蔽数据的方法中,只要掩蔽一次就不能还原,缺乏能够应对各种统计分析要求的灵活性。
[0023]本发明的目的在于,提供在隐匿了数据中包含的个人信息的状态下不进行恢复就能够进行各种数据处理的秘密计算技术。
[0024]用于解决课题的方案
[0025]为了解决上述的课题,本发明的秘密计算方法中,n、k是2以上的整数,且n3k,n台秘密计算服务器的存储部中存储有将信息提供者的注册密码秘密分散为η个的注册密码分散值以及将信息分析者的利用密码秘密分散为η个的利用密码分散值,上述秘密计算方法包含:注册时认证请求步骤,由注册者终端的认证请求部将信息提供者输入的注册时输入密码秘密分散为η个的注册时输入密码分散值分配给η台秘密分散服务器;注册时认证执行步骤,由至少k台秘密计算服务器的认证执行部利用注册时输入密码分散值与注册密码分散值,验证注册密码与注册时输入密码是否一致;秘密分散步骤,由注册者终端的秘密分散部将信息提供者输入的处理对象数据秘密分散为η个而生成数据分散值;注册请求步骤,由注册者终端的注册请求部将数据分散值分配给η台秘密分散服务器;注册执行步骤,由η台秘密计算服务器的注册执行部将数据分散值存储到存储部;利用时认证请求步骤,由用户终端的认证请求部将信息分析者输入的利用时输入密码秘密分散为η个的利用时输入密码分散值分配给η台秘密计算服务器;利用时认证执行步骤,由至少k台秘密计算服务器的认证执行部利用利用时输入密码分散值与利用密码分散值,验证利用密码与利用时输入密码是否一致;运算请求步骤,由用户终端的运算请求部将对于处理对象数据的数据处理请求发送给η台秘密计算服务器;秘密计算步骤,由至少k台秘密计算服务器的秘密计算部按照数据处理请求,对数据分散值执行秘密计算,并生成将对处理对象数据执行了数据处理请求的处理结果秘密分散为η个的处理结果分散值;以及结果恢复步骤,由用户终端的结果恢复部对处理结果分散值中的、从秘密计算服务器接收到的至少k个处理结果分散值进行恢复,从而获得处理结果。
[0026]发明效果
[0027]根据本发明,在隐匿了数据中包含的个人信息的状态下不进行恢复就能够进行各种数据处理。
【附图说明】
[0028]图1是例示秘密计算系统的功能结构的图。
[0029]图2是例示秘密计算服务器的功能结构的图。
[0030]图3是例示注册者终端的功能结构的图。
[0031 ]图4是例示用户终端的功能结构的图。
[0032]图5是例示秘密计算方法的处理流程的图。
[0033]图6是例示秘密计算方法的处理流程的图。
【具体实施方式】
[0034]在说明实施方式之前,说明在本发明中利用的基本技术概念。
[0035][秘密分散技术]
[0036]秘密分散是将数据变换为多个分散值,利用一定数目以上的分散值能够恢复原来的数据,根据少于一定数目的分散值绝对不能恢复原来的数据的技术。作为秘密分散之一的(k,n)_秘密分散是将把被输入的明文分割为η个的分散值预先分散到η个计算主体,只要凑齐任意的k个分散值就能够恢复明文,根据少于k个的分散值不能获得与明文有关的一切信息的秘密分散。此时,n、k是I以上的整数,且nekjk,!!)-秘密分散的代表性例是在uA.Shamir,uHow to share a secret”,Communicat1ns of the ACM,Volume 22 Issue11,pp.612-613,1979.(参考文献I)”中记载的Shamir秘密分散。在本发明中利用的秘密分散只要是后述的秘密计算以及秘密计算认证可利用的方法,可以是任意的秘密分散。
[0037][秘密计算技术]
[0038]秘密计算是对多个计算主体将计算对象的数据秘密分散保存,不用恢复原来的数据,与其他的计算主体协作而计算原来的数据的函数值的分散值的技术。在秘密计算中,作为基本技术而利用秘密分散。
[0039]在本发明中利用的秘密计算适当利用能够对基于特定的秘密分散方法的分散值进行所期望的数据处理所需的各种运算的计算即可。对秘密分散值进行加法或乘法等基本运算的秘密计算技术例如记载在“千田浩司、濱田浩気、五十嵐大、高橋克己、‘軽量検証可能3/、° 一亍J秘匿関数計算(7)再考,、:3夕匕° 二一夕七年二 U亍夕求夕夕厶2010、2010年(参考文献2)”中。从数据串的秘密分散值,以隐匿了信息的状态进行检索的秘密匹配技术例如记载在“千田浩司、寺田雅之、山口高康、五十嵐大、濱田浩気、高橋克巳、‘統計的開示制御旮考慮L t七年二 T 70夕? 口卜=W、情報処理学会研究報告、2011-CSEC-52
(12)、2011年(参考文献3)”中。以隐匿了数据串的秘密分散值的状态进行排列的秘密分类技术例如记载在“濱田浩気、五十嵐大、千田浩司、高橋克巳、‘秘匿関数計算上(7λ線形時間:/一卜,、3夕匕° 二一夕七年二求夕夕厶2011、2011年(参考文献4)”中。
[0040][秘密计算认证技术]
[0041 ] 秘密计算认证是对多个计算主体,将登录名和密码等认证信息秘密分散而保存,不恢复认证信息而与其他计算主体协作认证用户所输入的认证信息是否正确的技术。
[0042]在本发明中,能够利用任意的秘密计算认证方法。例如,能够利用在“菊池亮、五十嵐大、千田浩司、濱田浩気、‘無条件秘匿性旮持07少于/、° 一亍|>只亍厶用/、°只y — K認証方式二一夕七年^ Ut-^夕求夕夕厶2013、2013年(参考文献5)”中记载的秘密计算认证方法。
[0043]以下,详细说明本发明的实施方式。另外,图中对具有相同功能的结构部赋予相同标号,并省略重复说明。
[0044][实施方式]
[0045]参照图1,说明实施方式的秘密计算系统的结构例。秘密计算系统包含n(32)台秘密计算服务器IvJn、至少I台注册者终端2、至少I台用户终端3以及网络9。秘密计算服务器I1,…,In、注册者终端2以及用户终端3分别连接到网络9。各网络9只要被构成为秘密计算服务器I1,…,In之间、各秘密计算服务器I1,…,In与注册者终端2之间、各秘密计算服务器li,…,In与用户终端3之间可相互通信即可,例如能够由互联网、LAN、WAN等构成。各秘密计算服务器h,-_,ln之间的通信路径期望通过加密技术等实现隐匿性高的通信。此外,秘密计算服务器I1,…,In、注册者终端2以及用户终端3不一定要能够经由网络9以在线方式进行通信。例如,也可以构成为将注册者终端2输出的信息存储在USB存储器等可移动型记录介质中,从该可移动型记录介质向任意的秘密计算服务器I1(Ififn)以离线方式输入。
[0046]参照图2,说明在秘密计算系统中包含的秘密计算服务器I1(I= Ir^n)的结构例。秘密计算服务器Ii包含认证执行部10、注册执行部12、秘密计算部14以及存储部16。秘密计算服务器Ii例如是在具有中央运算处理装置(Central Processing Unit、CPU)、主存储装置(Random Access Memory、RAM)等已知或专用的计算机中读入特殊的程序而构成的特殊的装置。秘密计算服务器I1例如基于中央运算处理装置的控制而执行各处理。秘密计算服务器1工中输入的数据或在各处理中获得的数据例如存储在主存储装置中,在主存储装置中存储了的数据根据需要而被读取并用于其他处理。存储部16能够由RAM(RandomAccess Memory)等主存储装置、硬盘或光盘或闪速存储器这样的由半导体存储元件构成的辅助存储装置、或者关系数据库或键值存储器(key-value store)等中间件构成。
[0047]参照图3,说明在秘密计算系统中包含的注册者终端2的结构例。注册者终端2包含认证请求部20、数据输入部22、秘密分散部24以及注册请求部26。注册者终端2例如是在具有中央运算处理装置(Central Processing UnitXI3U)、主存储装置(Random AccessMem0ry、RAM)等已知或专用的计算机中读入特殊的程序而构成的特殊的装置。注册者终端2例如基于中央运算处理装置的控制而执行各处理。在注册者终端2中输入的数据或在各处理中获得的数据例如存储在主存储装置中,在主存储装置中存储了的数据根据需要而被读取并用于其他处理。注册者终端2具体是台式或笔记本式的个人计算机、移动电话、智能手机、平板终端等。
[0048]参照图4,说明在秘密计算系统中包含的用户终端3的结构例。用户终端3包含认证请求部30、运算输入部32、运算请求部34以及结果恢复部36。用户终端3例如是在具有中央运算处理装置(Central Processing UnitXI3U)、主存储装置(Random Access Memory、RAM)等已知或专用的计算机中读入特殊的程序而构成的特殊的装置。用户终端3例如基于中央运算处理装置的控制而执行各处理。在用户终端3中输入的数据或在各处理中获得的数据例如存储在主存储装置中,在主存储装置中存储了的数据根据需要而被读取并用于其他处理。用户终端3具体是台式或笔记本式的个人计算机、移动电话、智能手机、平板终端等。
[0049]参照图5、6,按照过程的顺序而说明实施方式的秘密计算系统所执行的秘密计算方法的处理流程的一例。图5是注册者终端2将作为数据处理的对象的数据注册到秘密计算服务器1!,...,^中的步骤。
[0050]在秘密计算服务器I1(I= Ir^n)的存储部16中,存储有将对利用注册者终端2的信息提供者或利用用户终端3的信息分析者分别设定的密码秘密分散为η个的分散值中的、第i个分散值。以下,将信息提供者的密码称为注册密码,将注册密码分散为η个的分散值称为注册密码分散值。此外,将信息分析者的密码称为利用密码,将利用密码分散为η个的分散值称为利用密码分散值。对密码进行秘密分散的方法需要是能够利用上述的秘密计算认证技术的秘密分散方法。例如,能够应用在参考文献5中记载的秘密分散方法。
[0051]在步骤S20a中,注册者终端2的认证请求部20将把信息提供者输入的密码秘密分散为η个的分散值向η台秘密计算服务器h,…,In分配。以下,将信息提供者输入的密码称为注册时输入密码,将注册时输入密码分散为η个的分散值称为注册时输入密码分散值。分配是指将i设为I以上且η以下的各整数,将第i个注册时输入密码分散值经由通信路径发送给第i个秘密计算服务器h的情况。
[0052]在步骤SlOa中,秘密计算服务器I1的认证执行部10利用从注册者终端2接收到的注册时输入密码分散值与在存储部16中存储着的注册密码分散值,验证注册密码与注册时输入密码是否一致。步骤SlOa只要η台秘密计算服务器I1,…,1?中的至少k台协作执行即可。验证密码的具体的方法请参照上述的参考文献4。
[0053]在步骤SlOb中,秘密计算服务器I1的认证执行部10在判定为注册密码与注册时输入密码一致的情况下,将表示认证成功的认证结果发送给注册者终端2。在判定为注册密码与注册时输入密码不一致的情况下,将表示认证失败的认证结果发送给注册者终端2。
[0054]在步骤S20b中,注册者终端2的认证请求部20在从秘密计算服务器I1接收到的认证结果表示认证失败的情况下,结束处理。在从秘密计算服务器h接收到的认证结果表示认证成功的情况下,将处理推进至步骤S22。认证结果会从至少k台秘密计算服务器I接收,但只要不是所有的认证结果都表示认证成功,都判定为认证失败。
[0055]在步骤S22中,对注册者终端2的数据输入部22输入成为数据处理的对象的处理对象数据。处理对象数据中包含有能够确定个人的个人信息。个人信息例如是姓名、地址、出生年月日、性别这样的表示个人属性的信息。根据数据处理的目的,处理对象数据中的个人信息以外的信息被设定必要的项目。
[0056]在步骤S24中,注册者终端2的秘密分散部24将处理对象数据秘密分散为n个而生成数据分散值。将处理对象数据进行秘密分散的方法需要是能够利用上述的秘密计算技术的秘密分散方法。例如,能够应用上述的参考文献2至4的任一个中记载的秘密分散方法。此时,将在处理对象数据中包含的相当于个人信息的项目以及个人信息以外的项目进行汇总,从而作为处理对象数据整体来进行秘密分散。
[0057]在步骤S26中,注册者终端2的注册请求部26将数据分散值分配给n台秘密分散服务器h,…,ln。分配是将i设为1以上且n以下的各整数,将第i个数据分散值经由通信路径发送给第i个秘密计算服务器h的情况。[〇〇58]在步骤S12中,秘密计算服务器h,…,ln的注册执行部12将从注册者终端2接收到的数据分散值存储在存储部16中。
[0059]参照图6,说明利用向秘密计算服务器h,…,1?注册的处理对象数据的分散值,进行由用户终端3请求的数据处理的步骤。
[0060]在步骤S30a中,用户终端3的认证请求部30将把信息分析者输入的密码秘密分散为n个的分散值分配给n台秘密计算服务器h,…,ln。以下,将信息分析者输入的密码称为利用时输入密码,将把利用时输入密码秘密分散为n个的分散值称为利用时输入密码分散值。 分配是指将i设为1以上且n以下的各整数,将第i个利用时输入密码分散值经由通信路径发送给第i个秘密计算服务器h的情况。
[0061]在步骤SlOc中,秘密计算服务器h的认证执行部10利用从用户终端3接收到的利用时输入密码分散值与在存储部16中存储着的利用密码分散值,验证利用密码与利用时输入密码是否一致。步骤SlOc由n台秘密计算服务器h,…,1?中的至少k台协作而执行即可。验证密码的具体的方法请参照上述的参考文献5。[〇〇62]在步骤S10d中,秘密计算服务器h的认证执行部10在判定为利用密码与利用时输入密码一致的情况下,将表示认证成功的认证结果发送给用户终端3。在判定为利用密码与利用时输入密码不一致的情况下,将表示认证失败的认证结果发送给用户终端3。[〇〇63] 在步骤S30b中,用户终端3的认证请求部30在从秘密计算服务器h接收到的认证结果表示认证失败的情况下,结束处理。在从秘密计算服务器h接收到的认证结果表示认证成功的情况下,将处理推进步骤S32。认证结果至少会从k台秘密计算服务器1接收,但只要不是所有的认证结果都表示认证成功,都判定为认证失败。[〇〇64]在步骤S32中,用户终端3的运算输入部32被输入记述了对于处理对象数据的数据处理的内容的数据处理请求。数据处理请求例如是通过预先决定的编程语言记述的脚本。 具体来说,能够利用面向统计分析通过开源码项目开发的R语言等。关于R语言的细节请参照“The R Project、“The R Project for Statistical Computing”、[online]、[2014年1 月14日检索]、互联网〈11此:111^口://\¥¥¥.1—口1'0」6(31:.0坪/;[11(161.111:1111>(参考文献6)”。在数据处理请求中,除了加法、乘法等基本运算之外,还可以包含有对处理对象数据进行排列的分类处理、从处理对象数据中提取符合条件的数据的匹配处理。[〇〇65] 在步骤S34中,用户终端3的运算请求部34将数据处理请求发送给n台秘密计算服务器h,…,In。发送路径只要n台秘密计算服务器h,…,In全部能够接收数据处理请求,则可以是任意的路径。例如,可以由用户终端3对n台秘密计算服务器h,…,1?全部单独发送,也可以从用户终端3对任意一台秘密计算服务器h发送,并从秘密计算服务器h向其他秘密计算服务器lj( j = l,…,n、i乒j)转发。[〇〇66]在步骤S14a中,秘密计算服务器h的秘密计算部14按照从用户终端3接收到的数据处理请求,对在存储部16中存储着的数据分散值执行秘密计算,并生成将对处理对象数据执行了数据处理请求后的处理结果分散为n个的分散值。以下,将处理结果分散为n个的分散值称为处理结果分散值。步骤S14a只要n台秘密计算服务器h,…,1?中的至少k台协作执行即可。[〇〇67] 在步骤S14b中,秘密计算服务器h的秘密计算部14将处理结果分散值发送给用户终端3。[〇〇68]在步骤S36中,用户终端3的结果恢复部36将从秘密计算服务器^妾收到的处理结果分散值进行恢复而获得处理结果。处理结果分散值无需从n台秘密计算服务器h,…,1?全部接收,只要至少从k台秘密计算服务器1接收k个以上的处理结果分散值,就能够恢复处理结果。[〇〇69] 如此,根据本发明的秘密计算技术,在通过秘密计算认证安全地经历认证的基础上,由注册者终端对处理对象数据整体被秘密分散的分散值以隐匿了个人信息的状态进行统计分析、检索等数据处理,并将处理结果的分散值返还给用户终端。由此,对秘密计算服务器以隐匿了处理对象数据以及处理结果中包含的个人信息的状态不用进行恢复就能够进行各种数据处理。
[0070][与现有技术的比较]
[0071]在非专利文献1中记载的秘密计算技术中,存在不能进行统计分析所需的分类处理、由于利用特殊的语言编译器所以信息处理的扩展性低、计算节点数目固定等技术问题。 根据本发明的秘密计算技术,能够以隐匿了信息的状态利用分类处理,能够利用通用的编程语言,计算节点数目可变。
[0072]在非专利文献2中记载的秘密计算技术中,存在基本运算性能低、不能进行分类处理、不能进行程序扩展等技术问题。根据本发明的秘密计算技术,能够以隐匿了信息的状态利用分类处理,能够利用通用的编程语言。此外,在非专利文献2中记载的秘密计算技术中, 基本运算性能是每秒8万次乘法,比较低,但本发明的秘密计算技术是每秒100万次乘法,具有尚基本运算性能。
[0073]在非专利文献3中记载的秘密计算技术通过阶段性地利用多个密码实现加密的状态下的分类,但能够处理的运算种类被限制。此外,存在如下问题:随着重复处理,能够估计顺序关系等。根据本发明的秘密计算技术,能够进行分类处理、匹配处理等各种运算,且能够以通过秘密分散隐匿了信息的状态进行分类处理,因此安全性高。
[0074]在非专利文献4中记载的秘密计算技术在利用全同态密码进行了加密的状态下能够进行任意的运算,但执行时间慢且实用性低。本发明的秘密计算技术如上述那样,基本运算性能高。
[0075]在非专利文献5中记载的秘密计算技术对数据库进行加密,但为了数据处理而需要恢复加密数据。本发明的秘密计算技术中所有的运算不需要恢复信息而以隐匿了信息的状态可执行。
[0076]在非专利文献6中记载的秘密计算技术对数据不进行解码也能够进行检索,但需要在数据提供主体之间共享密钥,不能保证隐匿性。本发明的秘密计算技术由于通过不利用密钥的秘密分散而进行信息的隐匿,因此安全性高。
[0077]在非专利文献7中记载的秘密计算技术能够将个人信息和机密信息一边维持数据的含义一边进行掩蔽,但除了个人信息以外的信息以明文状态被处理,因此难以在医疗或行政的领域那样的处理敏感数据的特定领域利用。本发明的秘密计算技术由于包含个人信息以外的信息在内将处理对象数据进行汇总而作为整体来进行秘密分散,因此即使在处理对象数据数少的情况下也难以根据个人信息以外的信息估计个人。
[0078]在非专利文献8中记载的秘密计算技术通过一台服务器进行的逻辑运算能够进行平均值、标准方差、合计等统计处理,但由于不能进行分类处理,因此即使是统计处理也不能求出最大值、最小值、中间值等,扩展性低。此外,还存在基本运算性能低的问题。根据本发明的秘密计算技术,能够以隐匿了信息的状态利用分类处理,因此能够求出最大值、最小值、中间值等。此外,如上述那样,本发明的秘密计算技术的基本运算性能高。
[0079]在非专利文献9中记载的秘密计算技术能够以对关系数据库(Relat1nal database)进行了加密的状态进行数据处理,但一部分运算需要在客户侧执行。此外,由于每个运算的加密方式不同,因此存在信息处理的扩展性低等问题。本发明的秘密计算技术仅在秘密计算服务器之间进行秘密运算,用户终端等不会参与数据处理。此外,由于所有的运算利用通过特定的秘密分散技术进行了秘密分散的分散值进行,因此数据处理内容的设计的自由度高。
[0080]本发明并不限定于上述的实施方式,在不脱离本发明的宗旨的范围内当然能够进行适当变更。在上述实施方式中说明的各种处理不仅按照记载的顺序时序地执行,也可以根据执行处理的装置的处理能力或根据需要,并行地或者单独执行。[0〇81][程序、记录介质]
[0082]在通过计算机实现在上述实施方式中说明的各装置中的各种处理功能的情况下, 通过程序来记述各装置应具有的功能的处理内容。此外,通过计算机来执行该程序,从而在计算机上实现上述各装置中的各种处理功能。
[0083]记述了该处理内容的程序能够预先记录在计算机中可读取的记录介质。作为计算机中可读取的记录介质,例如有磁记录装置、光盘、光磁记录介质、半导体存储器等任意的记录介质
[0084]此外,该程序的流通例如通过将记录了该程序的DVD、CD-ROM等进行销售、转让、出租等而进行。进而,也可以设为如下结构:通过将该程序预先存储在服务器计算机的存储装置中,经由网络从服务器计算机向其他计算机转发该程序,从而使该程序流通。
[0085]执行这样的程序的计算机例如首先将记录在可移动型记录介质中的程序或者从服务器计算机转发的程序暂时存储在自己的存储装置中。然后,在执行处理时,该计算机读取在自己的记录介质中存储的程序,执行基于所读取的程序的处理。此外,作为该程序的其他的执行方式,也可以由计算机从可移动型记录介质直接读取程序,执行基于该程序的处理,进而,也可以在每次从服务器计算机向该计算机转发程序时,依次执行基于接受的程序的处理。此外,也可以设为如下的结构:从服务器计算机对该计算机不进行程序的转发,而是通过仅根据其执行指示与结果取得而实现处理功能的所谓的ASP(应用服务提供商)型的服务,执行上述的处理。另外,设本方式中的程序包含用于电子计算机进行的处理的、顺应程序的信息(不是对于计算机的直接的命令但具有规定计算机的处理的性质的数据等)。
[0086]此外,在本方式中,设通过在计算机上执行规定的程序从而构成本装置,但也可以设为通过硬件来实现这些处理内容的至少一部分。
【主权项】
1.一种秘密计算方法, 其中n、k是2以上的整数,且n3k, η台秘密计算服务器的存储部中存储有将信息提供者的注册密码秘密分散为η个的注册密码分散值以及将信息分析者的利用密码秘密分散为η个的利用密码分散值, 上述秘密计算方法包含: 注册时认证请求步骤,由注册者终端的认证请求部将上述信息提供者输入的注册时输入密码秘密分散为η个的注册时输入密码分散值分配给η台上述秘密计算服务器; 注册时认证执行步骤,由至少k台上述秘密计算服务器的认证执行部利用上述注册时输入密码分散值与上述注册密码分散值,验证上述注册密码与上述注册时输入密码是否一致; 秘密分散步骤,由上述注册者终端的秘密分散部将上述信息提供者输入的处理对象数据秘密分散为η个而生成数据分散值; 注册请求步骤,由上述注册者终端的注册请求部将上述数据分散值分配给η台上述秘密分散服务器; 注册执行步骤,由η台上述秘密计算服务器的注册执行部将上述数据分散值存储到上述存储部; 利用时认证请求步骤,由用户终端的认证请求部将上述信息分析者输入的利用时输入密码秘密分散为η个的利用时输入密码分散值分配给η台上述秘密计算服务器; 利用时认证执行步骤,由至少k台上述秘密计算服务器的认证执行部利用上述利用时输入密码分散值与上述利用密码分散值,验证上述利用密码与上述利用时输入密码是否一致; 运算请求步骤,由上述用户终端的运算请求部将对于上述处理对象数据的数据处理请求发送给η台上述秘密计算服务器; 秘密计算步骤,由至少k台上述秘密计算服务器的秘密计算部按照上述数据处理请求,对上述数据分散值执行秘密计算,并生成将对上述处理对象数据执行了上述数据处理请求的处理结果秘密分散为η个的处理结果分散值;以及 结果恢复步骤,由上述用户终端的结果恢复部对上述处理结果分散值中的、从上述秘密计算服务器接收到的至少k个上述处理结果分散值进行恢复,从而获得上述处理结果。2.如权利要求1所述的秘密计算方法,其中, 上述处理对象数据包含能够确定个人的个人信息, 上述秘密分散步骤通过汇总上述处理对象数据整体而进行秘密分散,从而生成上述数据分散值。3.如权利要求1或2所述的秘密计算方法,其中, 上述数据处理请求包含对上述处理对象数据进行排列的分类处理和/或从上述处理对象数据提取符合条件的数据的匹配处理, 上述秘密计算步骤通过对上述数据分散值执行秘密分类计算和/或秘密匹配计算,从而生成上述处理结果分散值。4.一种秘密计算系统,n、k是2以上的整数,且n3k,所述秘密计算系统包含η台秘密计算服务器、至少I台注册者终端以及至少I台用户终端, 上述注册者终端包含: 认证请求部,将把信息提供者输入的注册时输入密码秘密分散为η个的注册时输入密码分散值分配给η台上述秘密计算服务器; 秘密分散部,将上述信息提供者输入的处理对象数据秘密分散为η个而生成数据分散值;以及 注册请求部,将上述数据分散值分配给η台上述秘密分散服务器, 上述用户终端包含: 认证请求部,将把信息分析者输入的利用时输入密码秘密分散为η个的利用时输入密码分散值分配给η台上述秘密计算服务器; 运算请求部,将对于上述处理对象数据的数据处理请求发送给η台上述秘密计算服务器;以及 结果恢复部,将把对上述处理对象数据执行了上述数据处理请求的处理结果秘密分散为η个的处理结果分散值中的、从上述秘密计算服务器接收到的至少k个处理结果分散值进行恢复,从而获得处理结果, 上述秘密计算服务器包含: 存储部,存储将上述信息提供者的注册密码秘密分散为η个的注册密码分散值以及将上述信息分析者的利用密码秘密分散为η个的利用密码分散值; 认证执行部,在接收了上述注册时输入密码分散值时,利用上述注册时输入密码分散值与上述注册密码分散值,验证上述注册密码与上述注册时输入密码是否一致,在接收了上述利用时输入密码分散值时,利用上述利用时输入密码分散值与上述利用密码分散值,验证上述利用密码与上述利用时输入密码是否一致; 注册执行部,将上述数据分散值存储到上述存储部;以及 秘密计算部,根据上述数据处理请求,对上述数据分散值执行秘密计算,并生成上述处理结果分散值。5.—种秘密计算服务器,n、k是2以上的整数,且n3k, 上述秘密计算服务器包含: 存储部,存储将信息提供者的注册密码秘密分散为η个的注册密码分散值以及将信息分析者的利用密码秘密分散为η个的利用密码分散值; 认证执行部,在接收了将上述信息提供者输入的注册时输入密码秘密分散为η个的注册时输入密码分散值时,利用上述注册时输入密码分散值与上述注册密码分散值,验证上述注册密码与上述注册时输入密码是否一致,在接收了将上述信息分析者输入的利用时输入密码秘密分散为η个的利用时输入密码分散值时,利用上述利用时输入密码分散值与上述利用密码分散值,验证上述利用密码与上述利用时输入密码是否一致; 注册执行部,将把上述信息提供者输入的处理对象数据秘密分散为η个的数据分散值存储到上述存储部;以及 秘密计算部,根据对于上述处理对象数据的数据处理请求,对上述数据分散值执行秘密计算,并生成将对上述处理对象数据执行了上述数据处理请求的处理结果秘密分散为η个的处理结果分散值。6.一种注册者终端,η、k是2以上的整数,且η会k, 所述注册者终端包括: 认证请求部,将把信息提供者输入的注册时输入密码秘密分散为η个的注册时输入密码分散值分配给η台秘密计算服务器; 秘密分散部,将上述信息提供者输入的处理对象数据秘密分散为η个而生成数据分散值;以及 注册请求部,将上述数据分散值分配给η台上述秘密分散服务器。7.—种用户终端,n、k是2以上的整数,且n3k, 上述用户终端包含: 认证请求部,将把信息分析者输入的利用时输入密码秘密分散为η个的利用时输入密码分散值分配给η台秘密计算服务器; 运算请求部,将对于上述信息分析者输入的处理对象数据的数据处理请求发送给η台上述秘密计算服务器;以及 结果恢复部,将把对上述处理对象数据执行了上述数据处理请求的处理结果秘密分散为η个的处理结果分散值中的、从上述秘密计算服务器接收到的至少k个处理结果分散值进行恢复,从而获得上述处理结果。8.—种程序,用于使计算机起到权利要求5所述的秘密计算服务器、权利要求6所述的注册者终端或权利要求7所述的用户终端的作用。
【文档编号】G06F21/60GK105981088SQ201480074049
【公开日】2016年9月28日
【申请日】2014年12月5日
【发明人】宫田辉子, 泷口浩义, 桐渊直人, 千田浩司, 五十岚大, 诸桥玄武, 富士仁, 栢口茂
【申请人】日本电信电话株式会社