(57)【要約】      （修正有）【課題】ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行う秘密統計処理システムを提供する。【解決手段】秘密統計処理システムは、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算装置２と、度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理装置３と、を備える。クロス集計表計算装置２は、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する複数の秘密計算装置２２１，…，２２Ｎと、断片を復元することにより、度数が平文となっているクロス集計表を計算する管理装置２１と、を備える。【選択図】図１
2020042128.tif 000002
【特許請求の範囲】
【請求項１】
各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算装置と、
前記度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理装置と、
を含む秘密統計処理システム。
【請求項２】
請求項１の秘密統計処理システムであって、
前記統計処理装置は、ロジスティック回帰分析のパラメータを計算する処理を行う、
秘密統計処理システム。
【請求項３】
請求項２の秘密統計処理システムであって、
前記クロス集計表計算装置は、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する複数の秘密計算装置と、前記断片を復元することにより、前記度数が平文となっているクロス集計表を計算する管理装置と、を含む、
秘密統計処理システム。
【請求項４】
請求項１から３の何れかの秘密統計処理システムの統計処理装置。
【請求項５】
クロス集計表計算装置が、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算ステップと、
統計処理装置が、前記度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理ステップと、
を含む秘密統計処理方法。
【請求項６】
請求項４の統計処理装置の各部としてコンピュータを機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、暗号応用技術に関し、入力データを明かすことなくデータ処理を行う秘密計算技術に特に関する。
【背景技術】
【０００２】
暗号化された数値を復元することなく、特定の演算結果を得る方法として秘密計算と呼ばれる方法がある（例えば、非特許文献１参照。）。秘密計算により、３台又はそれ以上の任意の台数の秘密計算装置に数値の断片を分散させる暗号化を施し、元の数値を復元することなく、加減算、定数倍、乗算、論理演算、データ形式変換をすることができる。また、秘密計算により、これらの演算結果を暗号化したまま、すなわち、分散された断片のまま保持することができる。さらに、これらの秘密計算を拡張したものとして、複数のデータを秘匿したままソートを実現する秘密ソートや、浮動小数点数を秘密計算で用いる断片の形式で実現し、四則演算や指数関数等の演算を断片のまま処理する方式が知られている。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】千田浩司，濱田浩気，五十嵐大，高橋克巳，“軽量検証可能３パーティ秘匿関数計算の再考”，In CSS，2010．
【非特許文献２】C.M.ビショップ(著)、元田浩(監訳)、栗田多喜夫(監訳)、樋口知之(監訳)、松本裕治(監訳)、村田昇(監訳)、「パターン認識と機械学習 上」、2012、pp.204-206
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、クロス集計表に対してロジスティック回帰分析のパラメータを求める処理等の統計処理を行うためには、除算や指数関数と言った演算が必要となる（例えば、非特許文献２参照。）。
【０００５】
しかし、既存の手法ではこれらの演算は秘密計算で実現しているが低速であり、実用的な時間で実現することができない場合があった。
【０００６】
本発明は、ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行う秘密統計処理システム、方法、統計処理装置及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００７】
この発明の一態様による秘密統計処理システムは、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算するクロス集計表計算装置と、度数が平文となっているクロス集計表を用いて、所定の統計処理を行う統計処理装置と、を備えている。
【発明の効果】
【０００８】
ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行うことができる。
【図面の簡単な説明】
【０００９】
【図１】図１は、秘密統計処理システムの機能構成の例を示す図である。
【図２】図２は、秘密統計処理方法の処理手続きの例を示す図である。
【図３】図３は、クロス集計表の例を示す図である。
【発明を実施するための形態】
【００１０】
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
【００１１】
[技術的背景]
クロス集計表を用いたロジスティック回帰分析のパラメータを求める処理等の統計処理を行う際に、秘密計算でロジスティック回帰分析のパラメータを求める処理等の統計処理に必要な計算を全て行うと低速となる場合がある。それは、例えば、ロジスティック回帰分析のパラメータを求める処理等の統計処理には、除算、指数関数といった秘密計算で行うと低速になる演算が含まれる場合があるためである。
【００１２】
ここで、クロス集計表とは、複数のカテゴリ属性を対象に属性値の組み合わせ毎の度数をまとめた表である。言い換えれば、クロス集計表は、属性値の組み合わせ（x,y）のそれぞれに対応する度数をまとめた表である。例えば、説明の簡略化のために、説明変数が２属性(x1,x2)であり、目的変数が１属性yであるとすると、これらの３属性(x1×x2×y)のクロス集計表は、図３のようになる。
【００１３】
図３において、a1,…,al1は属性x1の属性値であり、l1は属性x1の属性値の個数である。ここで、al1の下付き文字の中のl1は、「l1」を意味する。このように、下付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。同様に、上付き文字の中では、更なる上付き文字及び下付き文字の表現を省略することがある。a1,…,al2は属性x2の属性値であり、l2は属性x2の属性値の個数である。ni,jは、属性x1の属性値がaiであり、属性x2の属性値がbjであり、属性yの属性値が0である場合の度数である。mi,jは、属性x1の属性値がaiであり、属性x2の属性値がbjであり、属性yの属性値が1である場合の度数である。
【００１４】
ここで、クロス集計表が求まった後は、求まったクロス集計表の度数に基づいて、除算、指数関数等のロジスティック分析等の統計処理に必要な処理を秘密計算ではない通常の計算で行うことができる。そこで、本発明では、クロス集計表が求まった後は、求まったクロス集計表の度数に基づいて、除算、指数関数等の秘密計算で行うと低速になる演算を秘密計算ではない通常の計算で行う。これにより、ロジスティック回帰分析のパラメータを求める処理等の統計処理を従来よりも速く行うことができる。
【００１５】
[実施形態]
秘密統計処理システムは、図１に示すように、クロス集計表計算装置２及び統計処理装置３を例えば備えている。秘密統計処理システムは、１個以上の登録装置１を更に備えていてもよい。
【００１６】
秘密統計処理方法は、秘密統計処理システムが、以下に説明する及び図２に示すステップＳ１からステップＳ３の処理を行うことにより例えば実現される。
【００１７】
<登録装置１>
各登録装置１は、クロス集計表を作成するために必要な各レコードを保持している。例えば、登録装置１は、健康保険組合、企業等の各個人の情報を保有しているコンピュータである。この場合、クロス集計表を作成するために必要なレコードは、例えば各個人の身長、体重、血圧等の健康に関する情報である。
【００１８】
各登録装置１は、クロス集計を作成するために必要な各レコードについての情報を、クロス集計表計算装置２に送信する。例えば、各登録装置１は、クロス集計を作成するために必要な各レコードを秘密分散することによりＮ個の断片を生成し、クロス集計を作成するために必要な情報として、これらの生成されたＮ個の断片を、クロス集計表計算装置２に送信する。
【００１９】
<クロス集計表計算装置２>
クロス集計表計算装置２に、各登録装置１が送信したクロス集計を作成するために必要な各レコードについての情報が入力される。
【００２０】
クロス集計表計算装置２は、各レコードを秘匿化したまま、度数が平文となっているクロス集計表を秘密計算する（ステップＳ２）。
【００２１】
度数が平文となっているクロス集計表は、統計処理装置３に送信される。
【００２２】
クロス集計表計算装置２は、例えば、管理装置２１と、Ｎ個の秘密計算装置２２１，…，２２Ｎとを備えている。Ｎは、２以上の所定の正の整数である。以下、この場合のクロス集計表計算装置２の処理について説明する。
【００２３】
各登録装置１が送信したクロス集計を作成するために必要な各レコードについての情報は、管理装置２１に入力される。
【００２４】
管理装置２１は、入力された各レコードについての情報を秘密計算装置２２１，…，２２Ｎに送信する（ステップＳ２１）。例えば、入力された各レコードについての情報が秘密分散されたＮ個の断片である場合には、管理装置２１は、Ｎ個の断片をそれぞれ秘密計算装置２２１，…，２２Ｎに送信する。
【００２５】
秘密計算装置２２１，…，２２Ｎは、各レコードを秘匿化したまま、度数が秘密分散され断片となっているクロス集計表を秘密計算する（ステップＳ２２）。言い換えれば、秘密計算装置２２１，…，２２Ｎは、秘密分散されたＮ個の断片を復元せずに、度数が秘密分散され断片となっているクロス集計表を秘密計算する（例えば、参考文献１参照）。
〔参考文献１〕五十嵐大，千田浩司，濱田浩気，高橋克巳，“軽量検証可能３パーティ秘匿関数計算の効率化及びこれを用いたセキュアなデータベース処理”，２０１１年暗号と情報セキュリティシンポジウム
【００２６】
秘密計算装置２２１，…，２２Ｎは、度数が秘密分散され断片となっているクロス集計表を管理装置２１に送信する（ステップＳ２３）。
【００２７】
管理装置２１は、断片を復元することにより、言い換えればクロス集計表の断片となっている度数を復元することにより、度数が平文となっているクロス集計表を計算する（ステップＳ２４）。
【００２８】
管理装置２１は、計算したクロス集計表を、統計処理装置３に送信する（ステップＳ２５）。
【００２９】
<統計処理装置３>
統計処理装置３には、クロス集計表計算装置２が送信した、度数が平文となっているクロス集計表が入力される。
【００３０】
統計処理装置３は、度数が平文となっているクロス集計表を用いて、所定の統計処理を行う（ステップＳ３）。統計処理装置３による所定の統計処理は、秘密計算ではなく平文で行われる。
【００３１】
所定の統計処理は、除算、指数関数等の秘密計算で行うと低速になる演算を含む処理である。所定の統計処理の例は、ロジスティック回帰分析のパラメータを計算する処理である。
【００３２】
以下、所定の統計処理が、図３の３属性（x1,x2,y）のクロス集計表についてロジスティック回帰分析のパラメータを計算する処理である場合の統計処理装置３の処理の例を説明する。
【００３３】
図３の３属性（x1,x2,y）のクロス集計表についてロジスティック回帰分析のパラメータを求めるためには、このクロス集計表の誤差関数E(w→)
【００３４】
【数１】
2020042128.tif 000003
【００３５】
を最大化すればよい。ここで、ロジスティック回帰分析のパラメータをw0,w1,w2として、ｗ→=(w0,w1,w2)であり、x→i,j=(1,ai,bj)であり、Tをベクトル又は行列の転置として、
【００３６】
【数２】
2020042128.tif 000004
【００３７】
であるとする。
【００３８】
誤差関数E(w→)をw0,w1,w2のそれぞれで偏微分すると以下の式が得られる。
【００３９】
【数３】
2020042128.tif 000005
2020042128.tif 000006
2020042128.tif 000007
【００４０】
これらの偏微分した式の値は、
【００４１】
【数４】
2020042128.tif 000008
【００４２】
であるため、度数が平文となっているクロス集計表から計算可能である。統計処理装置３は、これらの偏微分した式の値が０に十分近くなるような、ロジスティック回帰分析のパラメータw0,w1,w2を求める。
【００４３】
そのために、dを所定の１以上の整数として、統計処理装置３は、以下の処理を行う。３属性（x1,x2,y）のクロス集計表の場合は、d=2である。
【００４４】
統計処理装置３は、パラメータαを所定の値に設定する（ステップＳ３１）。パラメータαは、例えば１未満であり０に十分近い値に設定される。言い換えれば、0<α<<1となるように設定される。
【００４５】
統計処理装置３は、w→(0)=(w0(0),w1(0),…,wd(0))を所定の値に設定する（ステップＳ３２）。また、統計処理装置３は、t=0とする。所定の値は、例えばランダム値である。
【００４６】
統計処理装置３は、度数が平文となっているクロス集計表から、勾配grad(E(w→(t)))=(∂E(w→(t))/∂w0(t),∂E(w→(t))/∂w1(t),…,∂E(w→(t))/∂wd(t))を計算する（ステップＳ３３）。
【００４７】
統計処理装置３は、勾配grad(E(w→(t)))の値が所定の終了条件を満たす場合には、処理を終了する（ステップＳ３４）。処理終了時のw→(t)=(w0(t),w1(t),…,wd(t))が、ロジスティック回帰分析のパラメータとなる。所定の終了条件は、εを所定の正の値として、例えば、||grad(E(w→(t)))||<εである。εは例えば０に近い正の値である。所定の終了条件は、||grad(E(w→(t)))||<ε|E(w→(t))|又は||grad(E(w→(t)))||<ε(1+|E(w→(t))|)であってもよい。ここで、|x|はxの絶対値、||v||はベクトルvのL2ノルム((vTv)(1/2))である。
【００４８】
勾配grad(E(w→(t)))の値が所定の終了条件を満たさない場合には、統計処理装置３は、w→(t+1)=w→(t)-α・grad(E(w→(t)))を計算する（ステップＳ３５）。
【００４９】
統計処理装置３は、t=t+1として、言い換えればtを１だけインクリメントして、ステップＳ３３の処理に戻る。これにより、勾配grad(E(w→(t)))の値が所定の終了条件を満たすまで、ステップＳ３３からステップＳ３５の処理が繰り返し行われる。
【００５０】
このようにして、クロス集計表を用いることによって、個々のレコードのプライバシは保護しながらも、秘密計算では低速となる除算や指数関数を秘密計算を用いない通常のアルゴリズムで実行することで、実用的な時間でのロジスティック回帰分析のパラメータを求めることができる。
【００５１】
[変形例]
以上、この発明の実施の形態について説明したが、具体的な構成は、これらの実施の形態に限られるものではなく、この発明の趣旨を逸脱しない範囲で適宜設計の変更等があっても、この発明に含まれることはいうまでもない。
【００５２】
例えば、各登録装置１は、クロス集計表を作成するために必要なレコードをランダムに入れ替えたものを、クロス集計を作成するために必要な情報として、クロス集計表計算装置２に送信してもよい。
【００５３】
この場合、クロス集計表計算装置は、ランダムに入れ替えられたレコードに基づいて、度数が平文となっているクロス集計表を計算する（ステップＳ２）。この場合、レコードは、ランダムに入れ替えられているので、クロス集計表計算装置２に対して、各レコードは秘匿化される。
【００５４】
また、実施の形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
【００５５】
[プログラム、記録媒体]
上記説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
【００５６】
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
【００５７】
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
【００５８】
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記憶装置に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP（Application Service Provider）型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの（コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等）を含むものとする。
【００５９】
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
【符号の説明】
【００６０】
１     登録装置
２     クロス集計表計算装置
２１   管理装置
２２１，…，２２Ｎ   秘密計算装置
３     統計処理装置
【図１】
2020042128.tif 000009
【図２】
2020042128.tif 000010
【図３】
2020042128.tif 000011