(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-10-17
(45)【発行日】2022-10-25
(54)【発明の名称】秘密統計処理システム、方法、統計処理装置及びプログラム
(51)【国際特許分類】
G09C 1/00 20060101AFI20221018BHJP
【FI】
G09C1/00 650Z
(21)【出願番号】P 2018168573
(22)【出願日】2018-09-10
【審査請求日】2021-01-05
(73)【特許権者】
【識別番号】000004226
【氏名又は名称】日本電信電話株式会社
(74)【代理人】
【識別番号】100121706
【氏名又は名称】中尾 直樹
(74)【代理人】
【識別番号】100128705
【氏名又は名称】中村 幸雄
(74)【代理人】
【識別番号】100147773
【氏名又は名称】義村 宗洋
(72)【発明者】
【氏名】田中 哲士
(72)【発明者】
【氏名】宮島 麻美
(72)【発明者】
【氏名】高橋 元
(72)【発明者】
【氏名】五十嵐 大
(72)【発明者】
【氏名】濱田 浩気
(72)【発明者】
【氏名】菊池 亮
(72)【発明者】
【氏名】冨士 仁
【審査官】行田 悦資
(56)【参考文献】
【文献】国際公開第2017/119211(WO,A1)
【文献】国際公開第2016/178291(WO,A1)
【文献】秘密計算システム「算師」の試用提供を開始 ~大切なデータの安心・安全な利活用ができる世界を実現~,BUSINESS COMMUNICATION,日本,株式会社ビジネスコミュニケーション社,2018年09月01日,第55巻, 第9号,pp.50-51
【文献】五十嵐 大 ほか,軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理,2011年 暗号と情報セキュリティシンポジウム(SCIS2011)[CD-ROM],日本,電子情報通信学会,2011年01月28日
(58)【調査した分野】(Int.Cl.,DB名)
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算装置と、
前記度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理装置と、
を含む秘密統計処理システム
であって、
前記クロス集計表計算装置は、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する複数の秘密計算装置と、前記断片を復元することにより、前記度数が平文となっているクロス集計表を計算する管理装置と、を含む、
秘密統計処理システム。
【請求項2】
請求項1の秘密統計処理システムであって、
前記統計処理装置は、ロジスティック回帰分析のパラメータを計算する処理を行う、
秘密統計処理システム。
【請求項3】
請求項1
又は2の秘密統計処理システムの統計処理装置。
【請求項4】
クロス集計表計算装置が、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算ステップと、
統計処理装置が、前記度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理ステップと、
を含む秘密統計処理方法
であって、
前記クロス集計表計算ステップは、複数の秘密計算装置が、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する秘密計算ステップと、管理装置が、前記断片を復元することにより、前記度数が平文となっているクロス集計表を計算する管理ステップと、を含む、
秘密統計処理方法。
【請求項5】
請求項
3の統計処理装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、暗号応用技術に関し、入力データを明かすことなくデータ処理を行う秘密計算技術に特に関する。
【背景技術】
【0002】
暗号化された数値を復元することなく、特定の演算結果を得る方法として秘密計算と呼ばれる方法がある(例えば、非特許文献1参照。)。秘密計算により、3台又はそれ以上の任意の台数の秘密計算装置に数値の断片を分散させる暗号化を施し、元の数値を復元することなく、加減算、定数倍、乗算、論理演算、データ形式変換をすることができる。また、秘密計算により、これらの演算結果を暗号化したまま、すなわち、分散された断片のまま保持することができる。さらに、これらの秘密計算を拡張したものとして、複数のデータを秘匿したままソートを実現する秘密ソートや、浮動小数点数を秘密計算で用いる断片の形式で実現し、四則演算や指数関数等の演算を断片のまま処理する方式が知られている。
【先行技術文献】
【非特許文献】
【0003】
【文献】千田浩司,濱田浩気,五十嵐大,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の再考”,In CSS,2010.
【文献】C.M.ビショップ(著)、元田浩(監訳)、栗田多喜夫(監訳)、樋口知之(監訳)、松本裕治(監訳)、村田昇(監訳)、「パターン認識と機械学習 上」、2012、pp.204-206
【発明の概要】
【発明が解決しようとする課題】
【0004】
ところで、クロス集計表に対してロジスティック回帰分析のパラメータを求める処理等の統計処理を行うためには、除算や指数関数と言った演算が必要となる(例えば、非特許文献2参照。)。
【0005】
しかし、既存の手法ではこれらの演算は秘密計算で実現しているが低速であり、実用的な時間で実現することができない場合があった。
【0006】
本発明は、ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行う秘密統計処理システム、方法、統計処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
この発明の一態様による秘密統計処理システムは、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算装置と、度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理装置と、を備えており、クロス集計表計算装置は、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する複数の秘密計算装置と、断片を復元することにより、度数が平文となっているクロス集計表を計算する管理装置と、備えている。
【発明の効果】
【0008】
ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行うことができる。
【図面の簡単な説明】
【0009】
【
図1】
図1は、秘密統計処理システムの機能構成の例を示す図である。
【
図2】
図2は、秘密統計処理方法の処理手続きの例を示す図である。
【発明を実施するための形態】
【0010】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【0011】
[技術的背景]
クロス集計表を用いたロジスティック回帰分析のパラメータを求める処理等の統計処理を行う際に、秘密計算でロジスティック回帰分析のパラメータを求める処理等の統計処理に必要な計算を全て行うと低速となる場合がある。それは、例えば、ロジスティック回帰分析のパラメータを求める処理等の統計処理には、除算、指数関数といった秘密計算で行うと低速になる演算が含まれる場合があるためである。
【0012】
ここで、クロス集計表とは、複数のカテゴリ属性を対象に属性値の組み合わせ毎の度数をまとめた表である。言い換えれば、クロス集計表は、属性値の組み合わせ(x,y)のそれぞれに対応する度数をまとめた表である。例えば、説明の簡略化のために、説明変数が2属性(x
1,x
2)であり、目的変数が1属性yであるとすると、これらの3属性(x
1×x
2×y)のクロス集計表は、
図3のようになる。
【0013】
図3において、a
1,…,a
l1は属性x
1の属性値であり、l
1は属性x
1の属性値の個数である。ここで、a
l1の下付き文字の中のl1は、「l
1」を意味する。このように、下付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。同様に、上付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。a
1,…,a
l2は属性x
2の属性値であり、l
2は属性x
2の属性値の個数である。n
i,jは、属性x
1の属性値がa
iであり、属性x
2の属性値がb
jであり、属性yの属性値が0である場合の度数である。m
i,jは、属性x
1の属性値がa
iであり、属性x
2の属性値がb
jであり、属性yの属性値が1である場合の度数である。
【0014】
ここで、クロス集計表が求まった後は、求まったクロス集計表の度数に基づいて、除算、指数関数等のロジスティック分析等の統計処理に必要な処理を秘密計算ではない通常の計算で行うことができる。そこで、本発明では、クロス集計表が求まった後は、求まったクロス集計表の度数に基づいて、除算、指数関数等の秘密計算で行うと低速になる演算を秘密計算ではない通常の計算で行う。これにより、ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行うことができる。
【0015】
[実施形態]
秘密統計処理システムは、
図1に示すように、クロス集計表計算装置2及び統計処理装置3を例えば備えている。秘密統計処理システムは、1個以上の登録装置1を更に備えていてもよい。
【0016】
秘密統計処理方法は、秘密統計処理システムが、以下に説明する及び
図2に示すステップS1からステップS3の処理を行うことにより例えば実現される。
【0017】
<登録装置1>
各登録装置1は、クロス集計表を作成するために必要な各レコードを保持している。例えば、登録装置1は、健康保険組合、企業等の各個人の情報を保有しているコンピュータである。この場合、クロス集計表を作成するために必要なレコードは、例えば各個人の身長、体重、血圧等の健康に関する情報である。
【0018】
各登録装置1は、クロス集計を作成するために必要な各レコードについての情報を、クロス集計表計算装置2に送信する。例えば、各登録装置1は、クロス集計を作成するために必要な各レコードを秘密分散することによりN個の断片を生成し、クロス集計を作成するために必要な情報として、これらの生成されたN個の断片を、クロス集計表計算装置2に送信する。
【0019】
<クロス集計表計算装置2>
クロス集計表計算装置2に、各登録装置1が送信したクロス集計を作成するために必要な各レコードについての情報が入力される。
【0020】
クロス集計表計算装置2は、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算する(ステップS2)。
【0021】
度数が平文となっているクロス集計表は、統計処理装置3に送信される。
【0022】
クロス集計表計算装置2は、例えば、管理装置21と、N個の秘密計算装置221,…,22Nとを備えている。Nは、2以上の所定の正の整数である。以下、この場合のクロス集計表計算装置2の処理について説明する。
【0023】
各登録装置1が送信したクロス集計を作成するために必要な各レコードについての情報は、管理装置21に入力される。
【0024】
管理装置21は、入力された各レコードについての情報を秘密計算装置221,…,22Nに送信する(ステップS21)。例えば、入力された各レコードについての情報が秘密分散されたN個の断片である場合には、管理装置21は、N個の断片をそれぞれ秘密計算装置221,…,22Nに送信する。
【0025】
秘密計算装置221,…,22Nは、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する(ステップS22)。言い換えれば、秘密計算装置221,…,22Nは、秘密分散されたN個の断片を復元せずに、度数が秘密分散され断片となっているクロス集計表を秘密計算する(例えば、参考文献1参照)。
〔参考文献1〕五十嵐大,千田浩司,濱田浩気,高橋克巳,“軽量検証可能3パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理”,2011年暗号と情報セキュリティシンポジウム
【0026】
秘密計算装置221,…,22Nは、度数が秘密分散され断片となっているクロス集計表を管理装置21に送信する(ステップS23)。
【0027】
管理装置21は、断片を復元することにより、言い換えればクロス集計表の断片となっている度数を復元することにより、度数が平文となっているクロス集計表を計算する(ステップS24)。
【0028】
管理装置21は、計算したクロス集計表を、統計処理装置3に送信する(ステップS25)。
【0029】
<統計処理装置3>
統計処理装置3には、クロス集計表計算装置2が送信した、度数が平文となっているクロス集計表が入力される。
【0030】
統計処理装置3は、度数が平文となっているクロス集計表を用いて、所定の統計処理を行う(ステップS3)。統計処理装置3による所定の統計処理は、秘密計算ではなく平文で行われる。
【0031】
所定の統計処理は、除算、指数関数等の秘密計算で行うと低速になる演算を含む処理である。所定の統計処理の例は、ロジスティック回帰分析のパラメータを計算する処理である。
【0032】
以下、所定の統計処理が、
図3の3属性(x
1,x
2,y)のクロス集計表についてロジスティック回帰分析のパラメータを計算する処理である場合の統計処理装置3の処理の例を説明する。
【0033】
図3の3属性(x
1,x
2,y)のクロス集計表についてロジスティック回帰分析のパラメータを求めるためには、このクロス集計表の誤差関数E(w
→)
【0034】
【0035】
を最大化すればよい。ここで、ロジスティック回帰分析のパラメータをw0,w1,w2として、w→=(w0,w1,w2)であり、x→
i,j=(1,ai,bj)であり、Tをベクトル又は行列の転置として、
【0036】
【0037】
であるとする。
【0038】
誤差関数E(w→)をw0,w1,w2のそれぞれで偏微分すると以下の式が得られる。
【0039】
【0040】
これらの偏微分した式の値は、
【0041】
【0042】
であるため、度数が平文となっているクロス集計表から計算可能である。統計処理装置3は、これらの偏微分した式の値が0に十分近くなるような、ロジスティック回帰分析のパラメータw0,w1,w2を求める。
【0043】
そのために、dを所定の1以上の整数として、統計処理装置3は、以下の処理を行う。3属性(x1,x2,y)のクロス集計表の場合は、d=2である。
【0044】
統計処理装置3は、パラメータαを所定の値に設定する(ステップS31)。パラメータαは、例えば1未満であり0に十分近い値に設定される。言い換えれば、0<α<<1となるように設定される。
【0045】
統計処理装置3は、w→(0)=(w0
(0),w1
(0),…,wd
(0))を所定の値に設定する(ステップS32)。また、統計処理装置3は、t=0とする。所定の値は、例えばランダム値である。
【0046】
統計処理装置3は、度数が平文となっているクロス集計表から、勾配grad(E(w→(t)))=(∂E(w→(t))/∂w0
(t),∂E(w→(t))/∂w1
(t),…,∂E(w→(t))/∂wd
(t))を計算する(ステップS33)。
【0047】
統計処理装置3は、勾配grad(E(w→(t)))の値が所定の終了条件を満たす場合には、処理を終了する(ステップS34)。処理終了時のw→(t)=(w0
(t),w1
(t),…,wd
(t))が、ロジスティック回帰分析のパラメータとなる。所定の終了条件は、εを所定の正の値として、例えば、||grad(E(w→(t)))||<εである。εは例えば0に近い正の値である。所定の終了条件は、||grad(E(w→(t)))||<ε|E(w→(t))|又は||grad(E(w→(t)))||<ε(1+|E(w→(t))|)であってもよい。ここで、|x|はxの絶対値、||v||はベクトルvのL2ノルム((vTv)(1/2))である。
【0048】
勾配grad(E(w→(t)))の値が所定の終了条件を満たさない場合には、統計処理装置3は、w→(t+1)=w→(t)-α・grad(E(w→(t)))を計算する(ステップS35)。
【0049】
統計処理装置3は、t=t+1として、言い換えればtを1だけインクリメントして、ステップS33の処理に戻る。これにより、勾配grad(E(w→(t)))の値が所定の終了条件を満たすまで、ステップS33からステップS35の処理が繰り返し行われる。
【0050】
このようにして、クロス集計表を用いることによって、個々のレコードのプライバシは保護しながらも、秘密計算では低速となる除算や指数関数を秘密計算を用いない通常のアルゴリズムで実行することで、実用的な時間でのロジスティック回帰分析のパラメータを求めることができる。
【0051】
[変形例]
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。
【0052】
例えば、各登録装置1は、クロス集計表を作成するために必要なレコードをランダムに入れ替えたものを、クロス集計を作成するために必要な情報として、クロス集計表計算装置2に送信してもよい。
【0053】
この場合、クロス集計表計算装置は、ランダムに入れ替えられたレコードに基づいて、度数が平文となっているクロス集計表を計算する(ステップS2)。この場合、レコードは、ランダムに入れ替えられているので、クロス集計表計算装置2に対して、各レコードは秘匿化される。
【0054】
また、実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【0055】
[プログラム、記録媒体]
上記説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【0056】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【0057】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【0058】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
【0059】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【0060】
1 登録装置
2 クロス集計表計算装置
21 管理装置
221,…,22N 秘密計算装置
3 統計処理装置