以下、各実施形態について図面を用いて説明するが、その前に、各実施形態に個別に用いられる各種の暗号方式等について述べる。また、各実施形態に用いられる各装置は、それぞれハードウェア構成、又はハードウェア資源とソフトウェアとの組合せ構成のいずれでも実施可能となっている。組合せ構成のソフトウェアとしては、予めネットワーク又は記憶媒体から対応する装置のコンピュータにインストールされ、対応する装置の機能を実現させるためのプログラムが用いられる。
<各種の暗号方式>
暗号化したデータを用いて統計処理を行う技術として、暗号化した状態で元のデータに対して、加減算や大小比較といった各種処理を実行可能な方式が知られている。この種の方式としては、例えば、第1の文献([Paillier])、第2の文献([OPE])、第3の文献([HLP10])及び第4の文献([AN2013-51001])にそれぞれ記載されている第1乃至第4の方式がある。ここで、各文献([Paillier]、[OPE]、[HLP10]、[AN2013-51001])に関する情報は、次の通りである。
[Paillier] Pascal Paillier, Public-Key Cryptosystems Based on Composite Degree Residuosity Classes, EUROCRYPT 1999, pp223-238.
[OPE] A. Boldyreva, N. Chenette, Y. Lee and A. O'Neill. Order-preserving symmetric encryption. In Eurocrypt '09, pp. 224{241. Springer, 2009.
[HLP10] C-Y. Hsu, C-S. Lu, S-C. Pei, “Homomorphic Encryption-based Secure SIFT for Privacy-Preserving Feature Extraction”, Proceedings of SPIE - The International Society for Optical Engineering, 2011.
[AN2013-51001] 特願2013-051001 (出願日:2013年3月13日)。
第1の方式は、暗号化した状態で加減算が可能な暗号方式(以下、準同型暗号と呼ぶ)であり、[Paillier]方式とも呼ぶ。
第2の方式は、暗号文の大小関係と対応する平文の大小関係が一致する順序保存暗号(Order Preserving Encryption)方式であり、[OPE]方式とも呼ぶ。
第3の方式は、準同型暗号で、かつ大小比較が可能な方式であり、[HLP10]方式とも呼ぶ。
第4の方式は、準同型暗号で、かつ大小比較が可能な方式であり、[AN2013-51001]方式とも呼ぶ。
各実施形態では、この種の方式を用いて、暗号化したデータを匿名化する。このとき、元のデータが暗号化された状態のため、匿名化の前に、暗号化したデータを外部に出力できる。従って、暗号化したデータをクラウド等の外部サービスに保管できる。また、暗号化したデータを匿名化して得られた暗号化匿名化データを復号し、匿名化データを得るようにしてもよい。
次に、暗号化した状態で演算を行う各方式の代表的なアルゴリズムについて説明する。
始めに、(加法的な)準同型暗号方式([Paillier]方式)について述べる。[Paillier]方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の加算、暗号文の減算、復号の5つの関数(以下、アルゴリズムともいう)からなる。
(鍵生成)KeyGen(1k)→(pkA,skA)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、公開鍵pkAと秘密鍵skAの組(pkA,skA)を出力する。
(暗号化)Enc(pkA,m1)→CA,m1
暗号化アルゴリズムEncは、ユーザAの公開鍵pkAと平文m1が入力されると、ユーザA宛の暗号文CA,m1を出力する。
(暗号文の加算)Add(CA,m1,CA,m2)→CA,m1+m2
加算アルゴリズムAddは、ユーザA宛の暗号文CA,m1とCA,m2が入力されると、ユーザA宛の暗号文CA,m1+m2を出力する。
(暗号文の減算)Sub(CA,m1,CA,m2)→CA,m1-m2
減算アルゴリズムSubは、ユーザA宛の暗号文CA,m1とCA,m2が入力されると、ユーザA宛の暗号文CA,m1-m2を出力する。
(復号)Dec(skA,CA,m1+m2)→m1+m2
復号アルゴリズムDecは、ユーザAの秘密鍵skAとユーザA宛の暗号文CA,m1+m2が入力されると、平文m1+m2を出力する。
次に、大小比較可能な順序保存暗号方式([OPE]方式)について述べる。[OPE]方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の比較、復号の4つの関数(以下、アルゴリズムともいう)からなる。
(鍵生成)KeyGen(1k)→(skA)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、秘密鍵skAを出力する。
(暗号化)Enc(skA,m1)→CA,m1
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
暗号文の比較アルゴリズムCompは、暗号文CA,m1とCA,m2が入力されると、m1がm2より大きなときは1を、m1とm2が等しいときは0を、m1がm2よりも小さいときは-1を出力する。
(復号)Dec(skA,CA,m1)→ m1
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1が入力されると、平文m1を出力する。
次に、(加法的な)準同型暗号方式と大小比較可能な暗号方式([HLP10]方式、[AN2013-51001]方式)の性質を保持する暗号方式について述べる。この暗号方式の基本的なモデルは、以下の鍵生成、暗号化、暗号文の加算、暗号文の減算、暗号文の比較、復号の6つの関数(以下、アルゴリズムともいう)からなる。
(鍵生成)KeyGen(1k)→(skA)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、秘密鍵skAを出力する。
(暗号化)Enc(skA,m1)→CA,m1
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
(暗号文の加算)Add(CA,m1,CA,m2)→CA,m1+m2
加算アルゴリズムAddは、暗号文CA,m1とCA,m2が入力されると、暗号文CA,m1+m2を出力する。
(暗号文の減算)Sub(CA,m1,CA,m2)→CA,m1-m2
減算アルゴリズムSubは、暗号文CA,m1とCA,m2が入力されると、暗号文CA,m1-m2を出力する。
暗号文の比較アルゴリズムCompは、暗号文CA,m1とCA,m2が入力されると、m1がm2より大きなときは1を、m1とm2が等しいときは0を、m1がm2よりも小さいときは-1を出力する。
(復号)Dec(skA,CA,m1+m2)→ m1+m2
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1+m2が入力されると、平文m1+m2を出力する。
また、上述したモデルに基づく、[AN2013-51001]方式の各関数の具体的なアルゴリズムの一例を述べる。他の方式とは異なり、この[AN2013-51001]方式については、本願出願時に未公開のため、各関数のアルゴリズムの一例を詳細に述べる。
(鍵生成)KeyGen(1k)→(a、gsv、g、N、a-1、s、v)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N(又はs、v、a-1、N)を出力する。
以下、この鍵生成アルゴリズムKeyGenによる鍵生成処理の一例を具体的に述べる。
始めに、鍵生成アルゴリズムKeyGenは、p’=(p−1)/2,q’=(q−1)/2が素数となる素数p,qを生成する。素数p,qは、上記セキュリティパラメータ1kに対応するセキュリティパラメータλに基づいて、合成数N=pqのビット数がλ又はλより大きい値となるように生成される。
次に、鍵生成アルゴリズムKeyGenは、パラメータpp’qq’及びNを計算する。
次に、鍵生成アルゴリズムKeyGenは、位数がpp’qq’である乗法群Gを生成し、Gの元gをGからランダムに選択する。位数がpp’qq’である乗法群Gを生成するには、例えば、ZN2*の元をZN2*からランダムに選択し、選択した元を二乗して得られた値をgとすれば良い。ここで、ZN2*はZN2かつN2と互いに素な整数の集合(=(Z/N2Z)*)であり、合成数N2に対する乗法群ZN2*と呼んで良い。ZN2は0以上N2未満の整数の集合(=(Z/N2Z)である。
次に、鍵生成アルゴリズムKeyGenは、先に計算したパラメータpp’qq’及びNに基づき、各鍵の一部a,s,vを集合{1,…,pp’qq’}からそれぞれランダムに選択する。
続いて、鍵生成アルゴリズムKeyGenは、a・a−1modN2=1を満たすa−1の値と、gsvの値とを計算する。しかる後、鍵生成アルゴリズムKeyGenは、暗号化鍵a,gsv,g,N、二次演算鍵a−1,s,N、三次演算鍵v,N、、及び復号鍵sv、a-1、N(又はs、v、a-1、N)を出力する。
なお、暗号化鍵は、a,sv,g,Nであっても良いし、a,s,v,g,Nであっても良い。また、g,N,N2は暗号化鍵、二次演算鍵、及び三次演算鍵に含めず、公開パラメータとして各装置に対して公開しておいても良い。まとめると、暗号鍵はa,s,v(又はa,sv)を含む。二次演算鍵はa−1,sを含む。三次演算鍵はvを含む。
これらのことは、後述する各実施形態及び各変形例においても同様である。
以上により、鍵生成処理が完了する。なお、本明細書では、Gを乗法群と想定した記法を採用しているが、これに限らず、Gを加法群と想定した記法で表すことも可能である。
(暗号化)Enc(m)→C=(C1、C2)
暗号化アルゴリズムEncは、暗号化鍵と平文mが入力されると、暗号文C=(C1、C2)を出力する。
以下、この暗号化アルゴリズムEncによる暗号化処理の一例を具体的に述べる。
ここでは、暗号化アルゴリズムEncがk(kは自然数)個の平文(暗号化対象の数値データ)m1,…,mkを暗号化する例を説明する。各平文miはZNの元である。ZNは0以上N未満の整数の集合(=(Z/NZ)である。
始めに、暗号化アルゴリズムEncは、k個の乱数r1,…,rkをZN2*からランダムにそれぞれ選択する。次に、暗号化アルゴリズムEncは、生成した乱数r1,…,rkと、前述した暗号化鍵a,gsv,g,Nとを用いて、次式により平文m1,…,mkを暗号化する。
これにより、暗号文Ci(i=1,…,k)が生成される。なお、暗号化鍵aは、鍵生成アルゴリズムKeyGenを備えた鍵生成装置が生成しても良く、鍵生成アルゴリズムKeyGenを備えた暗号化装置が生成しても良い。後者の場合、鍵生成装置は、暗号化鍵gsv,g,Nを暗号化装置に送信し、暗号化装置は、暗号化鍵aを生成し、また、a−1の値を計算する。なお、暗号化装置は、pp’qq’の値を知らない場合、暗号化鍵aをZN2*の中からランダムに選択すれば良い。
以上により、暗号化処理が完了する。
(暗号文の一次演算処理)Cal1st(C)→X=(X1、X2)
一次演算処理アルゴリズムCal1stは、暗号文Cが入力されると、一次演算結果X=(X1、X2)を出力する。
以下、この一次演算処理アルゴリズムCal1stによる一次演算処理の一例を具体的に述べる。
この例の一次演算処理は、暗号文(暗号化データ)を加減算する処理である。
一次演算処理としては、後述する三次演算処理により次式Fの正負が判定される場合を例に挙げて述べる。
ここで、niは任意の整数である。また、Kは、式Fの計算に必要なインデックスiの集合である。例えば、F=2m1−m2の場合、n1=2,n2=−1,K={1,2}である。また、加減算の式Fにおける被減数maと減数mbとの間の大小関係を判定したい場合、例えば、F=ma−mb=3m2−4m3+m5とし、n2=3,n3=−4,n5=1,K={2,3,5}である。ここで、被減数maは3m2+m5であり、減数mbは4m3である。また、数値a,bの大小関係を判定したい場合、F=ma−mb=m1−m2とし、n1=1,n2=−1,K={1,2}とすればよい。
一次演算処理アルゴリズムCal1stは、式Fの計算に必要な暗号文Ci(i∈K)が入力されると、次式により、一次演算結果X=(X1、X2)を計算する。
しかる後、一次演算処理アルゴリズムCal1stは、一次演算結果X=(X1、X2)を出力する。
以上により、一次演算処理が完了する。
(暗号文の二次演算処理)Cal2nd(X)→Y=(Y1、Y2)
二次演算処理アルゴリズムCal2ndは、1次演算結果Xと二次演算鍵a-1、s、Nが入力されると、二次演算結果Y=(Y1、Y2)を出力する。
以下、この二次演算処理アルゴリズムCal2ndによる二次演算処理の一例を具体的に述べる。
この例の二次演算処理は、加減算された暗号文(暗号化データ)をランダム化する処理である。
二次演算処理アルゴリズムCal2ndは、パラメータL,J,β,Dを生成する。これらのパラメータL,J,β,Dを選択する指標については後述する。なお、パラメータL,J,β,Dは外部から与えられても良い。
次に、二次演算処理アルゴリズムCal2ndは、β個の乱数r’i(i=0,…,β−1)を集合{1,…,L}の中からランダムにそれぞれ選択する。ここで、β=1であっても良いし、β≧2であっても良い。これは他の実施形態や変形例においても同様である。また、乱数zを集合{0,1,…,J}の中からランダムに選択する。そして、二次演算処理アルゴリズムCal2ndは、次式に示す乱数Rを計算し、乱数R,zを取得する。
次に、二次演算処理アルゴリズムCal2ndは、前述した二次演算鍵a−1,s,Nと、一次演算結果X=(X1、X2)及び乱数R,zとを用いて、次式により、二次演算結果Y=(Y1、Y2)を計算する。
しかる後、二次演算処理アルゴリズムCal2ndは、一次演算結果Y=(Y1、Y2)を出力する。
ここで、各パラメータを選択する指標について説明する。正負判定可能な絶対値の最大値をDとする。すなわち、0<F<DのときFを正と判定し,−D<F<0のときFを負と判定できるようにしたいとする。このとき、二次演算処理アルゴリズムCal2ndは、次式を満たすように、β個の乱数r’iを選択する。
また、二次演算処理アルゴリズムCal2ndは、β個の乱数r’iの積であるRを上記のように選択したとき,R<Jとなる確率が十分小さくなるようにJを選択する。
以上により、二次演算処理が完了する。
(暗号文の三次演算処理)
三次演算処理アルゴリズムCal3rdは、二次演算結果Yと三次演算鍵v、Nが入力されると、正又は負(又は0)を示す判定結果を出力する。
以下、この三次演算処理アルゴリズムCal3rdによる三次演算処理の一例を具体的に述べる。
この例の三次演算処理は、ランダム化及び加減算された暗号文(暗号化データ)から加減算の式における被減数と減数との間の大小関係を判定する処理である。
三次演算処理アルゴリズムCal3rdは、前述した三次演算鍵v,Nと、二次演算結果Y1,Y2とを用いて、次式により、W’を計算する。
W’がNの倍数でない場合、以降の計算を行わず、三次演算処理を終了する。そうでない場合(W’がNの倍数である場合)、三次演算処理アルゴリズムCal3rdは、次式により、三次演算結果Wを計算する。
次に、三次演算処理アルゴリズムCal3rdは、W<N/2ならば式Fは正であると判定し、そうでないならば式Fは負(又は0)と判定する。
F=Ma−Mbの形で表されるとき、Fが正であれば、Ma>Mbと判定できる。Fが負であれば、Ma≦Mbと判定できる。
しかる後、三次演算処理アルゴリズムCal3rdは、判定結果を出力する。
以上により、三次演算処理が完了する。
なお、判定の際に、三次演算処理アルゴリズムCal3rdは、−J≦W≦0ならばF=0と判定しても良い。この場合、三次演算処理アルゴリズムCal3rdは、−N/2<W<−JならばFは負であると判定する。これは他の実施形態や変形例においても同様である。
ここで、F=3m2−4m3+m5の場合を例に取って、W=FR−zとなることを示す。一次演算結果X1,X2、二次演算結果Y1,Y2及び三次演算結果Wはそれぞれ以下のように表される。
三次演算結果Wにおいては、W=FR−zであり、FRからzを引いている。しかしながら、上述したようにRの値を適切に設定すれば、三次演算処理アルゴリズムCal3rdは、乱数zの値に影響を受けることなく、正しくFの正負判定を行うことができる。
上述した例では、F=Ma−Mb=3m2−4m3+m5であるので、例えば、被減数Ma=3m2+m5、減数Mb=4m3とおくことにより、被減数(3m2+m5)と減数(4m3)との間の大小関係を判定できる。また、例えば、被減数Ma=3m2、減数Mb=4m3−m5とみなすことにより、被減数(3m2)と減数(4m3−m5)との間の大小関係を判定することもできる。
(復号)Dec(C)→ m
復号アルゴリズムDecは、復号鍵sv、a-1、N(又はs、v、a-1、N)と暗号文Cが入力されると、平文mを出力する。
以下、この復号アルゴリズムDecによる復号処理の一例を具体的に述べる。
復号アルゴリズムDecは、復号鍵sv、a-1、N(又はs、v、a-1、N)と、暗号文Ciとを用いて、次式によりD’を計算する。
D’がNの倍数でない場合、以降の計算を行わず、復号処理を終了する。そうでない場合(D’がNの倍数である場合)、復号アルゴリズムDecは、次式により、平文miを計算する。
しかる後、復号アルゴリズムDecは、平文m=mi(i=1,…,k)を出力する。
以上により、復号処理が完了する。
一方、データを暗号化する技術として暗号化と復号に同一の鍵を用いる方式も知られている。この種の方式としては、例えば、第5の文献([AES])に記載されている第5の方式(以下、[AES]方式とも呼ぶ。)がある。ここで、第5の文献([AES])に関する情報は、次の通りである。
[AES] AES(Advanced Encryption Standard):FIPS-197, http://csrc.nist.gov/publications/fips/fips197/fips-197.pdf
暗号化と復号に同一の鍵を用いる暗号方式([AES]方式)について述べる。[AES]方式の性質を保持する暗号方式の基本的なモデルは、以下の鍵生成、暗号化、復号の3つの関数(以下、アルゴリズムともいう)からなる。
(鍵生成)KeyGen(1k)→(skA)
鍵生成アルゴリズムKeyGenは、セキュリティパラメータ1kが入力されると、秘密鍵skAを出力する。
(暗号化)Enc(skA,m1)→CA,m1
暗号化アルゴリズムEncは、秘密鍵skAと平文m1が入力されると、暗号文CA,m1を出力する。
(復号)Dec(skA,CA,m1)→ m1
復号アルゴリズムDecは、秘密鍵skAと暗号文CA,m1が入力されると、平文m1+m2を出力する。
以上が各実施形態に個別に用いられる各種の暗号方式([Paillier]方式、[OPE]方式、[HLP10]方式、[AN2013-51001]方式、[AES]方式)の代表的なアルゴリズムである。各実施形態は、図43又は図44に示すように、各種の暗号方式([Paillier]方式、[OPE]方式、…)による暗号化データを復号せずに匿名化処理(仮名化、トップコーディング、…)する形態となっている。なお、図43は、データ所有者が暗号化データを外部サービスに保存する旨の上記(A)の場合を示している。図44は、M2Mサービスが暗号化データを外部サービスに保存する旨の上記(B)の場合を示している。
<第1の実施形態:仮名化>
図1は第1の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。この匿名化システムは、1台以上の暗号化装置10、匿名化装置20及び復号装置30を備え、各装置10,20,30が互いに通信網40を介して接続されている。通信網40は統計処理装置50に接続されている。通信網40は、例えば、無線LAN(Local Area Network)、有線LAN、光回線網、電話回線網、イントラネット、イーサネット(登録商標)及びインターネットやこれらの組み合わせである。
ここで、暗号化装置10は、暗号パラメータ格納部11、鍵記憶部12、一時データ記憶部13、通信部14、パラメータ生成部15、乱数生成部16、暗号化部17及び制御部18を備えている。なお、本実施形態では1台の暗号化装置10を用いる場合について述べる。複数台の暗号化装置を用いる場合は、第2の実施形態において述べる。
暗号パラメータ格納部11、鍵記憶部12及び一時データ記憶部13は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、暗号化鍵及び一時データ等を記憶する。一時データ記憶部13は、各項目毎に値を含む個人データを記憶する第1記憶手段を構成している。
通信部14、パラメータ生成部15、乱数生成部16、暗号化部17及び制御部18は、例えば、図示しないプロセッサが、後述する暗号化装置10内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。暗号化部17は、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する暗号化手段を構成している。また、暗号化部17は、匿名化する処理に用いる匿名用パラメータを暗号化して暗号化匿名用パラメータを生成するパラメータ暗号化手段、を構成している。なお、匿名用パラメータとしては、例えば、乱数、しきい値、下限値、上限値、代表値、誤差などが適宜、使用可能となっている。本実施形態では、匿名用パラメータとして乱数が用いられる。暗号化匿名用パラメータとしては、例えば、暗号化乱数、暗号化しきい値、暗号化下限値、暗号化上限値、暗号化代表値、暗号化誤差などが適宜、使用可能となっている。本実施形態では、暗号化匿名用パラメータとして暗号化乱数が用いられる。但し、パラメータ暗号化手段は、第13及び第14の実施形態に述べるように、必須ではなく省略可能である。
匿名化部20は、暗号パラメータ格納部21、暗号化データ格納部22、一時データ記憶部23、通信部24、乱数生成部25、匿名化処理部26、演算部27、演算結果比較部28及び制御部29を備えている。
暗号パラメータ格納部21、暗号化データ格納部22、一時データ記憶部23は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、暗号化データ及び一時データ等を記憶する。一時データ記憶部23は、暗号化装置10により生成された暗号化データを記憶する第2記憶手段を構成している。
通信部24、乱数生成部25、匿名化処理部26、演算部27、演算結果比較部28及び制御部29は、例えば、図示しないプロセッサが、後述する匿名化部20内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。匿名化処理部26は、第2記憶手段内の暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する匿名化手段を構成している。匿名化手段は、暗号化装置10により生成された暗号化匿名用パラメータに基づいて、暗号化データから暗号化匿名化データを生成する機能をもっている。但し、この機能は、第13及び第14の実施形態に述べるように、暗号化匿名用パラメータを用いない場合には省略される。
復号装置30は、暗号パラメータ格納部31、秘密鍵格納部32、一時データ記憶部33、通信部34、乱数生成部35、鍵生成部36、復号部37及び制御部38を備えている。
暗号パラメータ格納部31、秘密鍵格納部32及び一時データ記憶部33は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ、秘密鍵及び一時データ等を記憶する。一時データ記憶部33は、匿名化装置20により生成された暗号化匿名化データを記憶する第3記憶手段を構成している。
通信部34、乱数生成部35、鍵生成部36、復号部37及び制御部38は、例えば、図示しないプロセッサが、後述する復号装置30内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。復号部37は、第3記憶手段内の暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する復号手段を構成している。ここで、匿名化データは、例えば、個人データのうち、一部の項目の値が匿名化された値と、一部の項目以外の項目の値とを含む情報であってもよい。また例えば、暗号化匿名化データは、暗号化データに含まれる一部の項目の暗号化された値が匿名化された値と、暗号化データに含まれる一部の項目以外の項目の値とを含む情報であってもよい。なお、暗号化匿名化データにおいて、「暗号化データに含まれる一部の項目の暗号化された値が匿名化された値」は、「匿名化データに含まれる一部の項目の値が匿名化された値が暗号化された値」と同じ値に読み替えてもよい。
統計処理装置50は、データ格納部51、通信部52及び統計処理部53を備えている。
データ格納部51は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、匿名化データ及び統計データ等を記憶する。
通信部52及び統計処理部53は、例えば、図示しないプロセッサが、後述する統計処理装置50内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
尚、図1中、各装置10,20,30,50を1台ずつ備えた場合を示したが、これに限らず、各装置10,20,30,50は、1台以上の任意の台数を備えてもよい。また、図1中、匿名化装置20は暗号化データの格納機能(暗号化データ格納部22)を備え、復号装置30は鍵生成に関する機能(各部31,33〜36,38)を備えたが、これに限らず、例えば図2に示すように、当該各機能を他の装置に配置してもよい。このことは、任意の各装置及び任意の各機能についても同様である。
本実施形態は、個人データの1つである社員番号を暗号化したまま仮名化する技術に関する。
個人データとは、個人に関する情報であって、氏名、社員番号、年齢、収入、生年月日、その他の情報などのように、単一または複数の組み合わせにより、特定の個人を識別可能な情報をいう。「個人データ」は、「個人情報」又は「個人情報のデータ」等と呼んでもよい。本実施形態では、図3に一例を示すように、名前、社員番号、年齢及び収入といった属性項目の属性値(文字列又は数値)が個人データとして用いられ、当該個人データがテーブルT1に格納されている。ここでは、属性項目「名前」の属性値に文字列を用いている。属性項目「社員番号」の属性値に数値を用いている(但し、社員番号はID情報であるため、文字列と数値の組み合わせを用いてもよい。)。属性項目「年齢」及び「収入」の属性値に数値を用いている。当該テーブルT1は、図示した属性項目の属性値として個人データを含んでいるが、これに加え、図示しない他の属性項目の属性値として個人データ以外の情報を含んでもよい。いずれにしても、テーブルT1には、個人データが記述されている。また、個人データ以外の情報が属性値になる属性項目としては、例えば、罹患した病名、購入した商品名、アンケートの回答、などが適宜、使用可能となっている。なお、「属性項目」の用語は、単に「属性」又は「項目」と呼んでもよく、「属性情報」又は「項目情報」等と呼んでもよい。同様に、「属性値」の用語は、単に「値」と呼んでもよい。
個人データの匿名化とは、特定の個人を識別不能とするように個人データを変換する処理のことをいう。匿名化の処理については前述したような方法が知られている。
これらの定義は、以下の各実施形態や変形例においても同様である。
次に、本実施形態における匿名化システムの動作について図4のシーケンス図、並びに図3、図5及び図6の模式図を用いて説明する。以下の説明では、(加法的な)準同型暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST1において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、準同型暗号方式における鍵ペア(公開鍵pkA、秘密鍵skA)を生成する。
KeyGen(1k)→(pkA,skA)
なお、鍵生成部36は、鍵ペアの生成処理において必要な乱数を乱数生成部35から取得することができる。また、復号装置30の鍵生成部36は、生成した鍵ペア(pkA,skA)を秘密鍵格納部32に保存する。ここで、公開鍵pkAは暗号化鍵であり、秘密鍵skAは復号鍵である。
ステップST2において、復号装置30の制御部38は、通信部34により、暗号化装置10に、暗号化鍵である公開鍵pkAを送付する。暗号化装置10の制御部18は、通信部14により受信した公開鍵pkAを鍵記憶部12に格納する。
ステップST3において、暗号化装置10の暗号化部17は、図3に示したテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、仮名化対象の属性項目(社員番号)の属性値dataiを、鍵記憶部12内の公開鍵pkAに基づいてレコード毎に暗号化する。
Enc(pkA,datai)→CA,data_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、公開鍵pkAに基づいて、テーブルT1のうち、仮名化対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図5に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST4において、暗号化装置10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST5において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。
(匿名化)
ステップST6において、暗号化装置10の乱数生成部16は、仮名化するための匿名用パラメータを乱数Rとして生成する。暗号化部17は、生成した乱数Rを、鍵記憶部12内の公開鍵pkAに基づいて準同型暗号方式で暗号化し、暗号化匿名用パラメータである暗号化乱数CA,Rを生成する。
Enc(pkA,R)→CA,R
ステップST7において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内の仮名化対象の属性項目(社員番号)と、暗号化乱数CA,Rとを匿名化装置20に送付する。但し、予め匿名化装置20が公開鍵pkAを取得することにより、暗号化乱数CA,Rを匿名化装置20が予め保持又は生成する場合には、暗号化装置10による暗号化乱数CA,Rの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST8において、匿名化装置20は、通信部24により、当該属性項目(社員番号)及び暗号化乱数CA,Rを受信する。匿名化処理部26は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(社員番号)に一致する属性項目(社員番号)の属性値CA,data_iと、受信した暗号化乱数CA,R とをレコード毎に加算する。
Add(CA,data_i,CA,R)→CA,data_i+R
すなわち、ステップST3で暗号化された属性値CA,data_iは、暗号化された状態のままで暗号化乱数CA,R が加算されることにより、復号されずに匿名化された属性値CA,data_i+Rに変換される。
このように、テーブルT1e内の仮名化対象の属性項目(社員番号)の属性値が匿名化され、図6に示すように、匿名化された属性値CA,data_i+Rを含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST9において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルT1の属性値data_iを、仮名化用の乱数Rによって仮名化することができる。ここで、暗号化装置10は、仮名化用の暗号化乱数CA,Rに基づいて、仮名化前と仮名化後の対応テーブルを作成してもよい。この場合、仮名化したテーブルの属性情報から個人を特定することや、仮名化処理を元に戻すことも可能である。
しかる後、ステップST10において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、秘密鍵格納部32内の復号鍵である秘密鍵skAに基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、仮名化対象の属性項目(社員番号)の属性値が匿名化されているか否かを判定する。例えば、匿名化前の属性値の桁数(例、5桁)よりも高い桁数(例、7桁)の暗号化乱数CA,Rを加算した場合、当該属性値が高い桁数(例、7桁)であれば、匿名化されていると判定される。また例えば、匿名化された属性項目(社員番号)の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置10が匿名化前の値を復号装置30に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップST6(又はST4)から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
ステップST11において、復号装置30の制御部38は、判定の結果、属性値が匿名化されている場合には、通信部34により、復号結果のテーブルからなる匿名化データを安全に統計処理装置50に送付する。
ステップST12において、統計処理装置50は、通信部52により受信した匿名化データを用いて統計処理を実行し、得られた統計処理結果をデータ格納部51に保存する。しかる後、統計処理装置50は、適宜、この統計処理結果を利用する。
上述したように本実施形態によれば、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する。暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する。暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する。このような構成により、個人データを暗号化して得られた暗号化データを復号せずに匿名化することができる。
また、本実施形態によれば、匿名化する処理に用いる匿名用パラメータを暗号化して暗号化匿名用パラメータを生成し、暗号化匿名用パラメータに基づいて、暗号化データから暗号化匿名化データを生成する。このような構成により、匿名用パラメータを調整して匿名化処理をやり直すことにより、好ましい匿名化結果の匿名化データを生成することができる。
なお、本実施形態では、復号装置30が鍵生成を実行したが、これに限らず、暗号化装置10が鍵生成を実行し、本実施形態と同様に適切な装置へ鍵を送付してもよい。
また、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施可能となっている。これらの暗号方式を用いる場合、それぞれの暗号方式における暗号アルゴリズムを置き換えることにより、本実施形態を同様に実施して同様の効果を得ることができる。
本実施形態は、図2に示すように、復号装置30から鍵生成機能(乱数生成部35及び鍵生成部36)を分離した鍵生成装置60と、匿名化装置20から保管機能(暗号化データ格納部22)を分離したデータ保管装置70とを備えた構成に変形してもよい。この時、既存のデータ保管装置70に、匿名化装置20を連携させることで、本実施形態と同様の効果を得ることが可能になる。
ここで、鍵生成装置60は、暗号パラメータ格納部61、一時データ記憶部62、通信部63、乱数生成部64、鍵生成部65及び制御部66を備えている。
暗号パラメータ格納部61及び一時データ記憶部62は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び一時データ等を記憶する。
通信部63、乱数生成部64、鍵生成部65及び制御部66は、例えば、図示しないプロセッサが、後述する鍵生成装置60内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
データ保管装置70は、例えばクラウドにより実施されて大量データを保管可能な装置(又はシステム)であり、データ格納部71及び通信部72を備えている。
データ格納部71は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、データ等を記憶する。
通信部72は、例えば、図示しないプロセッサが、後述するデータ保管装置70内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
図2に示す構成によれば、例えば図7に示すように、前述した各ステップST1〜ST12を各装置10,20,30,50,60,70で分担して実行する。図7中、図4に示したステップと同一のステップを実行する場合には実行する装置の変更の有無によらずに同一のステップ番号を付し、ステップ自体を複数のサブステップに分けて実行する場合にはステップ番号に枝番(−1,−2,−3)を付している。このようなステップ番号の付け方は、以下の各実施形態及び各変形例でも同様である。
図7は、主に、データ保管装置70に保存した暗号化データを匿名化装置20により匿名化し、得られた匿名化データをデータ保管装置70上で更新し、復号装置30に送付する場合の動作を説明するためのシーケンス図である。
この動作においては、具体的には、鍵生成装置60が鍵ペアを生成及び保存し(ST1)、暗号化鍵を暗号化装置10に送付する(ST2)。暗号化装置10は、データを暗号化し(ST3)、得られた暗号化データをデータ保管装置70に送付する(ST4)。データ保管装置70は、暗号化データを保管する(ST5)。暗号化装置10は、乱数Rを暗号化し(ST6)、得られた暗号化乱数CA,Rを匿名化装置20に送付する(ST7)。データ保管装置70は、保管した暗号化データを匿名化装置20に送付する(ST8−1)。匿名化装置20は、送付された暗号化データを暗号化乱数CA,Rに基づいて復号せずに匿名化(仮名化)し、得られた暗号化匿名化データをデータ保管装置70に送付する(ST9−1)。データ保管装置70は、送付された暗号化匿名化データを保管し(ST9−2)、当該暗号化匿名化データを復号装置30に送付する(ST9−3)。復号装置30は、例えば復号鍵を鍵生成装置60に要求する。鍵生成装置60は、復号鍵を復号装置30に送付する(ST10−1)。復号装置30は、送付された復号鍵に基づいて、暗号化匿名化データを復号し、得られた匿名化データが匿名化されているか否かを判定(確認)する(ST10−2)。判定の結果、否の場合には、ステップST6からやり直す。判定の結果、匿名化されている場合には、前述したステップST11〜ST12が実行される。
このとき、既存のデータ保管装置70を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
また例えば、図8は、主に、データ保管装置70に保存した暗号化データを匿名化装置20により匿名化し、得られた匿名化データをデータ保管装置70上では更新せずに、復号装置30に送付する場合の動作を説明するためのシーケンス図である。この動作は、具体的には、図7に示すステップST9−1〜ST9−3に代えて、匿名化装置20が暗号化匿名化データを復号装置30に送付するステップST9を実行する動作である。
この場合、データ保管装置70内の暗号化データは、原本データを暗号化した状態のままであり、その状態に対して匿名化した匿名化データを適宜得ることが可能になる。このとき、データ保管装置70の暗号化データが更新されないことから匿名化前と後の暗号化データを暗号化装置10又は復号装置30で管理する必要がなく、データの管理コストを低減することが可能となる。これは後述する実施形態や変形例においても同様である。
<第1の実施形態の変形例:仮名化>
第1の実施形態は、匿名化装置20が、テーブルT1eのうち、仮名化対象の属性項目(社員番号)の属性値CA,data_iを、レコード毎に異なる暗号化乱数CA,Rにより仮名化することができる。
ここで、復号した匿名化データ(仮名化した社員番号)が漏れ、かつ仮名化対象の1つのレコードの情報(社員番号の原本データ)を知っているユーザが関与したとする。このような状況でも、関与したユーザは、匿名化データの各レコードが異なる暗号化乱数CA,Rで仮名化されていることから、他のレコードの情報(社員番号の原本データ)を推測することができない。
<第2の実施形態:M2M及び仮名化>
図9は第2の実施形態に係る匿名化システム及びその周辺構成を示す模式図であり、図1及び図2と同一部分には同一符号を付してその詳しい説明を省略し、ここでは異なる部分について主に述べる。以下の各実施形態及び変形例も同様にして重複した部分の説明を省略する。
第2の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第1の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
具体的には、第2の実施形態は、図1に示した構成に比べ、暗号化装置10をN台設け、且つ鍵生成装置60及びパラメータ生成装置80を更に備えている。但し、パラメータ生成装置80は、必須ではなく、例えばいずれかの暗号化装置10がパラメータ(例、乱数R)及び暗号化パラメータ(暗号化乱数CA,R)を生成する場合には、省略してもよい。このことは、以下の各実施形態及び各変形例でも同様である。
ここで、N台の暗号化装置(1〜N)10は、前述した暗号化装置10のパラメータ生成部15に代えて、データ取得部19を備えている。
パラメータ生成装置80は、暗号パラメータ格納部81、鍵記憶部82、通信部83、パラメータ生成部84、乱数生成部85、暗号化部86及び制御部87を備えている。
暗号パラメータ格納部81及び鍵記憶部82は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び鍵等を記憶する。
通信部83、パラメータ生成部84、乱数生成部85、暗号化部86及び制御部87は、例えば、図示しないプロセッサが、後述するパラメータ生成装置80内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
次に、本実施形態における匿名化システムの動作について図10のシーケンス図を用いて説明する。
(事前準備)
ステップST1において、鍵生成装置60の鍵生成部65は、暗号パラメータ格納部61内のセキュリティパラメータ(1k)に基づいて、準同型暗号方式における鍵ペア(公開鍵pkA、秘密鍵skA)を生成する。
KeyGen(1k)→(pkA,skA)
なお、鍵生成部65は、鍵の生成処理において必要な乱数を乱数生成部64から取得することができる。また、公開鍵pkAは暗号化鍵であり、秘密鍵skAは復号鍵である。
ステップST2において、鍵生成装置60の制御部66は、通信部63により、暗号化鍵である公開鍵pkAを各暗号化装置(1〜N)10及びパラメータ生成装置80に送付する。各暗号化装置(1〜N)10の制御部18は、通信部14により受信した公開鍵pkAを鍵記憶部12に格納する。同様に、パラメータ生成装置80の制御部87は、通信部83により受信した公開鍵pkAを鍵記憶部82に格納する。なお、各暗号化装置(1〜N)10は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。同様に、鍵生成装置60の制御部66は、通信部63により、復号鍵である秘密鍵skAを復号装置30に送付する。復号装置30の制御部38は、通信部34により受信した秘密鍵sAを秘密鍵格納部32に格納する。
ステップST3において、各暗号化装置(1〜N)10のデータ取得部19は、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置(1〜N)10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、仮名化対象の属性項目(社員番号)の属性値dataiを、鍵記憶部12内の公開鍵pkAに基づいてレコード毎に暗号化する。
Enc(pkA,datai)→CA,data_i
同様に、各暗号化装置(1〜N)10の暗号化部17は、公開鍵pkAに基づいて、テーブルT1のうち、仮名化対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST4において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データと、テーブルT1e内の仮名化対象の属性項目(社員番号)とを匿名化装置20に送付する。
ステップST5において、匿名化装置20は、通信部24により、暗号化データであるテーブルT1eと、テーブルT1e内の仮名化対象の属性項目(社員番号)とを受信する。しかる後、匿名化装置20の制御部29は、当該テーブルT1eと、仮名化対象の属性項目(社員番号)とを一時データ記憶部23に保管する。
このとき、一時データ記憶部23内のテーブルT1eは、新たに受信したテーブルT1eの内容が追加された状態で更新される。なお、これに限らず、匿名化装置20は、暗号化装置(1〜N)10から受信したテーブルT1eをそれぞれ一時データ記憶部23に保管し、N個のテーブルT1eを集めた内容にテーブルT1eを更新してもよい。いずれにしても、一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。このことは、以下の各実施形態及び各変形例でも同様である。
(匿名化)
ステップST6において、パラメータ生成装置80の乱数生成部85は、仮名化するための匿名用パラメータを乱数Rとして生成する。パラメータ生成装置80の暗号化部86は、生成した乱数Rを、鍵記憶部82内の公開鍵pkAに基づいて準同型暗号方式で暗号化し、暗号化匿名用パラメータである暗号化乱数CA,Rを生成する。
Enc(pkA,R)→CA,R
ステップST7において、パラメータ生成装置80の制御部87は、通信部83により、暗号化乱数CA,Rを匿名化装置20に送付する。但し、暗号化乱数CA,Rを匿名化装置20が予め保持又は生成する場合には、パラメータ生成装置80による暗号化乱数CA,Rの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST8において、匿名化装置20は、通信部24により、暗号化乱数CA,Rを受信する。匿名化処理部26は、一時データ記憶部23内のテーブルT1eのうち、ステップST5で受信した属性項目(社員番号)に一致する属性項目(社員番号)の属性値CA,data_iと、受信した暗号化乱数CA,R とをレコード毎に加算する。
Add(CA,data_i,CA,R)→CA,data_i+R
すなわち、ステップST3で暗号化された属性値CA,data_iは、暗号化された状態のままで暗号化乱数CA,R が加算されることにより、復号されずに匿名化された属性値CA,data_i+Rに変換される。
このように、テーブルT1e内の仮名化対象の属性項目(社員番号)の属性値が匿名化され、前述同様に、匿名化された属性値CA,data_i+Rを含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST9において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
以下、前述した通り、ステップST10〜ST12が実行される。
上述したように本実施形態によれば、暗号化装置10を複数台とした場合でも、第1の実施形態と同様の作用効果を得ることができる。
なお、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
<第2の実施形態の変形例:仮名化>
第2の実施形態は、第1の実施形態の変形例と同様に、匿名化装置20が、テーブルT1eのうち、仮名化対象の属性項目(社員番号)の属性値CA,data_iを、レコード毎に異なる暗号化乱数CA,Rにより仮名化することができる。
これにより、第1の実施形態の変形例と同様の効果を得ることができる。
<第3の実施形態:トップコーディング>
次に、第3の実施形態に係る匿名化システムについて図1を参照しながら説明する。
第3の実施形態は、暗号化した「社員番号」を仮名化した第1の実施形態とは異なり、暗号化した「収入」をトップコーディングする形態である。
次に、本実施形態における匿名化システムの動作について図11のシーケンス図、及び図12乃至図14の模式図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST21において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における、復号装置30自身の鍵(秘密鍵skA)を生成する。
KeyGen(1k)→(skA)
なお、鍵生成部36は、鍵の生成処理において必要な乱数を乱数生成部35から取得することができる。また、鍵生成部36は、生成した秘密鍵skAを秘密鍵格納部32に保存する。
ステップST22において、復号装置30の制御部38は、通信部34により、暗号化装置10に、共通鍵である秘密鍵skAを送付する。暗号化装置10の制御部18は、通信部14により受信した秘密鍵skAを鍵記憶部12に格納する。
ステップST23において、暗号化装置10の暗号化部17は、図12に示すテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、トップコーディング対象の属性項目(収入)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図13に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST24において、暗号化装置10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST25において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。
(匿名化)
ステップST26において、暗号化装置10のパラメータ生成部15は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。暗号化部17は、生成したしきい値Tを、鍵記憶部12内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値CA,Tが生成される。
Enc(skA,T)→CA,T
ステップST27において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内のトップコーディング対象の属性項目(収入)と、暗号化しきい値CA,Tとを匿名化装置20に送付する。但し、匿名化装置20が秘密鍵skAを予め取得することにより、暗号化しきい値CA,Tを匿名化装置20が予め保持又は生成する場合には、暗号化装置10による暗号化しきい値CA,Tの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST28において、匿名化装置20は、通信部24により、当該属性項目(収入)及び暗号化しきい値CA,Tを受信する。匿名化処理部26は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(収入)に一致する属性項目(収入)の属性値CA,data_iと、受信した暗号化しきい値CA,T とをレコード毎に比較する。
匿名化処理部26は、比較結果が1の時は、属性値CA,data_iを暗号化しきい値CA,Tに置き換える。
すなわち、ステップST23で暗号化された属性値CA,data_iは、暗号化された状態のままで適宜、暗号化しきい値CA,T に置き換えられることにより、復号されずに匿名化された属性値(CA,T)に変換される。
このように、テーブルT1e内のトップコーディング対象の属性項目(収入)の属性値が匿名化され、図14に示すように、匿名化された属性値(CA,T)を含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST29において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルT1の属性値data_iを、トップコーディング用のしきい値Tによってトップコーディングすることができる。ここで、匿名化装置20には、どの属性値(CA,data_i)を置き換えたかが分かり、置き換えた暗号文は全部同じ値(CA,T)になる。しかしながら、匿名化装置20には、しきい値T及び元の属性値(data_i)は分からない。
ここで、暗号化装置10は、トップコーディング前の暗号化データを保持している場合、トップコーディング前とトップコーディング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、トップコーディングした属性値を元に戻すことも可能である。
しかる後、ステップST30において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、秘密鍵格納部32内の秘密鍵skAに基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、トップコーディング対象の属性項目(収入)の属性値が匿名化されているか否かを判定する。例えば、匿名化前の属性値をトップコーディングした場合、当該属性値のいずれかが「以上」又は「以下」の文字列を含んでいれば、匿名化されていると判定される。また例えば、匿名化された属性項目(収入)の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置10が匿名化前の値を復号装置30に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップST26(又はST24)から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
ステップST31において、復号装置30の制御部38は、判定の結果、属性値が匿名化されている場合には、通信部34により、復号結果のテーブルからなる匿名化データを安全に統計処理装置50に送付する。但し、匿名化データは、復号結果のテーブルのうちの社員番号の属性値を、適宜、匿名化した状態で送付することが好ましい。このことは、以下の各実施形態及び各変形例でも同様である。
ステップST32において、統計処理装置50は、通信部52により受信した匿名化データを用いて統計処理を実行し、得られた統計処理結果をデータ格納部51に保存する。しかる後、統計処理装置50は、適宜、この統計処理結果を利用する。
上述したように本実施形態によれば、匿名化処理としてトップコーディングを実行する場合でも、第1の実施形態と同様の作用効果を得ることができる。
なお、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
<第4の実施形態:M2M及びトップコーディング>
図15は第4の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
第4の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第3の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
具体的には、第4の実施形態は、図1に示した構成に比べ、暗号化装置10をN台設け、且つパラメータ生成装置80を更に備えている。但し、パラメータ生成装置80は、必須ではなく、例えばいずれかの暗号化装置10がパラメータ(例、しきい値T)及び暗号化パラメータ(暗号化しきい値CA,T)を生成する場合には、省略してもよい。このことは、以下の各実施形態及び各変形例でも同様である。
ここで、N台の暗号化装置(1〜N)10は、前述した暗号化装置10のパラメータ生成部15に代えて、データ取得部19を備えている。
パラメータ生成装置80は、暗号パラメータ格納部81、鍵記憶部82、通信部83、パラメータ生成部84、乱数生成部85、暗号化部86及び制御部87を備えている。
暗号パラメータ格納部81及び鍵記憶部82は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ暗号パラメータ及び鍵等を記憶する。
通信部83、パラメータ生成部84、乱数生成部85、暗号化部86及び制御部87は、例えば、図示しないプロセッサが、後述するパラメータ生成装置80内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
次に、本実施形態における匿名化システムの動作について図16のシーケンス図を用いて説明する。
(事前準備)
ステップST21において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における復号装置30自身の鍵(秘密鍵skA)を生成する。
KeyGen(1k)→(skA)
なお、鍵生成部36は、鍵の生成処理において必要な乱数を乱数生成部35から取得することができる。また、鍵生成部36は、生成した秘密鍵skAを秘密鍵格納部32に保存する。
ステップST22において、復号装置30の制御部38は、通信部34により、共通鍵である秘密鍵skAを各暗号化装置(1〜N)10及びパラメータ生成装置80に送付する。パラメータ生成装置80の制御部87は、通信部83により受信した秘密鍵skAを鍵記憶部82に格納する。同様に、各暗号化装置(1〜N)10の制御部18は、通信部14により受信した秘密鍵skAを鍵記憶部12に格納する。なお、各暗号化装置(1〜N)10は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。
ステップST23において、各暗号化装置(1〜N)10のデータ取得部19は、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置(1〜N)10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、トップコーディング対象の属性項目(収入)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
同様に、各暗号化装置(1〜N)10の暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST24において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データと、テーブルT1e内のトップコーディング対象の属性項目(収入)とを匿名化装置20に送付する。
ステップST25において、匿名化装置20は、通信部24により、暗号化データであるテーブルT1eと、テーブルT1e内のトップコーディング対象の属性項目(収入)とを受信する。しかる後、匿名化装置20の制御部29は、当該テーブルT1eと、トップコーディング対象の属性項目(収入)とを一時データ記憶部23に保管する。一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。
(匿名化)
ステップST26において、パラメータ生成装置80のパラメータ生成部84は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。パラメータ生成装置80の暗号化部86は、生成したしきい値Tを、鍵記憶部82内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化し、暗号化匿名用パラメータである暗号化しきい値CA,Tを生成する。
Enc(skA,T)→CA,T
ステップST27において、パラメータ生成装置80の制御部87は、通信部83により、暗号化しきい値CA,Tを匿名化装置20に送付する。但し、暗号化しきい値CA,Tを匿名化装置20が予め保持又は生成する場合には、パラメータ生成装置80による暗号化乱数CA,Rの生成及び送付を省略できる。
以下、前述した第3の実施形態と同様に、ステップST28〜ST32が実行される。
上述したように本実施形態によれば、、暗号化装置10を複数台とした場合でも、第3の実施形態と同様の作用効果を得ることができる。
なお、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
ただし、本実施形態では、各機器に秘密鍵skAを格納するが、この秘密鍵skAは暗号化のみならず復号処理もできるため、各機器上で、秘密鍵skAを適切に管理しなければならない。このことは、以下の各実施形態及び各変形例でも同様である。
<第5の実施形態:グルーピング>
次に、第5の実施形態に係る匿名化システムについて図1を参照しながら説明する。
第5の実施形態は、暗号化した「社員番号」を仮名化した第1の実施形態とは異なり、暗号化した「年齢」をグルーピングする形態である。
次に、本実施形態における匿名化システムの動作について図17のシーケンス図、及び図18乃至図20の模式図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST41において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、大小比較可能な暗号方式における、復号装置30自身の鍵(秘密鍵skA)を生成する。
KeyGen(1k)→(skA)
なお、鍵生成部36は、鍵の生成処理において必要な乱数を乱数生成部35から取得することができる。また、鍵生成部36は、生成した秘密鍵skAを秘密鍵格納部32に保存する。
ステップST42において、復号装置30の制御部38は、通信部34により、暗号化装置10に、共通鍵である秘密鍵skAを送付する。暗号化装置10の制御部18は、通信部14により受信した秘密鍵skAを鍵記憶部12に格納する。
ステップST43において、暗号化装置10の暗号化部17は、図18に示すテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、グルーピング対象の属性項目(年齢)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図19に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST44において、暗号化装置10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST45において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。
(匿名化)
ステップST46において、暗号化装置10のパラメータ生成部15は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。暗号化部17は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部12内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mが生成される。
Enc(skA,L)→CA,L
Enc(skA,U)→CA,U
Enc(skA,M)→CA,M
ステップST47において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内のグルーピング対象の属性項目(年齢)と、暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mとを匿名化装置20に送付する。但し、匿名化装置20が秘密鍵skAを予め取得することにより、暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mを匿名化装置20が予め保持又は生成する場合には、各値CA,L、CA,U及びCA,Mの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST48において、匿名化装置20は、通信部24により、当該属性項目(年齢)と、暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mとを受信する。匿名化処理部26は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(年齢)に一致する属性項目(年齢)の属性値CA,data_iと、受信した暗号化下限値CA,L及び暗号化上限値CA,U をレコード毎に比較する。
グルーピングしたいテーブルの属性項目(年齢)の属性値CA,data_iが暗号化下限値CA,L以上で暗号化上限値CA,U以下のとき、当該属性値CA,data_iを暗号化代表値CA,Mに置き換える。ここで、暗号化属性値CA,data_iが暗号化下限値CA,L以上のときは、第1の比較処理Comp(CA,data_i,CA,L)の結果が「1」又は「0」の場合に相当する。属性値CA,data_iが暗号化上限値CA,U以下のときは、第2の比較処理Comp(CA,data_i,CA,U)の結果が「−1」又は「0」の場合に相当する。
なお、属性値CA,data_iを暗号化代表値CA,M に置き換える際に、比較処理Compの結果が0の場合を含めるか否か、などといったグルーピングの方法は、適宜、変更可能となっている。グルーピングの方法は、例えば、用途・目的に応じた一般的な手法を用いてもよく、それら一般的な手法を本実施形態の手法に組み合わせて実施しても良い。
すなわち、ステップST43で暗号化された属性値CA,data_iは、暗号化された状態のままで適宜、暗号化代表値CA,M に置き換えられることにより、復号されずに匿名化された属性値(CA,M)に変換される。
このように、テーブルT1e内のグルーピング対象の属性項目(年齢)の属性値が匿名化され、図20に示すように、匿名化された属性値(CA,M)を含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST49において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルT1の属性値data_iを、各グループの下限値L及び上限値Uを指定することによってグルーピングすることができる。ここで、匿名化装置20には、どの属性値(CA,data_i)を置き換えたかが分かり、置き換えた暗号文は全部同じ値(各グループの暗号化代表値CA,M)になる。しかしながら、匿名化装置20には、グループの下限値L、上限値U、代表値M、及び元の属性値(data_i)は分からない。
ここで、暗号化装置10は、グルーピング前の暗号化データを保持している場合、グルーピング前とグルーピング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、グルーピングした属性値を元に戻すことも可能である。
しかる後、ステップST50において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、秘密鍵格納部32内の秘密鍵skAに基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、グルーピング対象の属性項目(年齢)の属性値が匿名化されているか否かを判定する。例えば、各グループの代表値が「20代」、「30代」、「40代」等の場合、当該属性値が「代」の文字列を含むときには、匿名化されていると判定される。また例えば、匿名化された属性項目(年齢)の属性値について、匿名化前の値と匿名化後の値とが異なる場合には、属性値が匿名化されている旨を判定してもよい。この場合、任意のタイミングで暗号化装置10が匿名化前の値を復号装置30に送信しておけばよい。いずれにしても、判定の結果が否の場合には、ステップST46(又はST44)から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
以下、前述したステップST31〜ST32と同様に、ステップST51〜ST52が実行される。
上述したように本実施形態によれば、匿名化処理としてグルーピングを実行する場合でも、第1の実施形態と同様の作用効果を得ることができる。
なお、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
<第6の実施形態:M2M及びグルーピング>
次に、第6の実施形態に係る匿名化システムについて図15を参照しながら説明する。
第6の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第5の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
次に、本実施形態における匿名化システムの動作について図21のシーケンス図を用いて説明する。以下の説明では、大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST41〜ST42は、第4の実施形態のステップST21〜ST22と同様に実行される。但し、鍵生成に用いる暗号方式は、第5の実施形態の大小比較可能な暗号方式を用いる。
ステップST43において、各暗号化装置(1〜N)10のデータ取得部19は、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置(1〜N)10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、グルーピング対象の属性項目(年齢)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
同様に、各暗号化装置(1〜N)10の暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST44において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データと、テーブルT1e内のグルーピング対象の属性項目(年齢)とを匿名化装置20に送付する。
ステップST45において、匿名化装置20は、通信部24により、暗号化データであるテーブルT1eと、テーブルT1e内のグルーピング対象の属性項目(年齢)とを受信する。しかる後、匿名化装置20の制御部29は、当該テーブルT1eと、グルーピング対象の属性項目(年齢)とを一時データ記憶部23に保管する。一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。
(匿名化)
ステップST46において、パラメータ生成装置80のパラメータ生成部84は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。パラメータ生成装置80の暗号化部86は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部82内の秘密鍵skAに基づいて、大小比較可能な暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mが生成される。
Enc(skA,L)→CA,L
Enc(skA,U)→CA,U
Enc(skA,M)→CA,M
ステップST47において、パラメータ生成装置80の制御部87は、通信部83により、テーブルT1e内のグルーピング対象の属性項目(年齢)と、暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mとを匿名化装置20に送付する。但し、匿名化装置20が秘密鍵skAを予め取得することにより、暗号化下限値CA,L、暗号化上限値CA,U及び暗号化代表値CA,Mを匿名化装置20が予め保持又は生成する場合には、各値CA,L、CA,U及びCA,Mの生成及び送付を省略できる。
以下、前述した第5の実施形態と同様に、ステップST48〜ST52が実行される。
上述したように本実施形態によれば、暗号化装置10を複数台とした場合でも、第5の実施形態と同様の作用効果を得ることができる。
なお、本実施形態は、(加法的な)準同型暗号でかつ大小比較可能な暗号方式でも同様に実施することが可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
<第7の実施形態:誤差の導入>
次に、第7の実施形態に係る匿名化システムについて図1、図3、図5及び図6を参照しながら説明する。
第7の実施形態は、乱数R及び暗号化乱数CA,Rを用いた第1の実施形態とは異なり、誤差R及び暗号化誤差CA,Rを用いる形態である。すなわち、第7の実施形態は、第1の実施形態における乱数Rを誤差Rとみなし、第1の実施形態と同一の構成(図1)及び処理によって、テーブルT1の属性値を匿名化(誤差の導入による仮名化)する構成となっている。このとき、テーブルT1は、第1の実施形態と同様に、順次、テーブルT1e,T1aに変更される(図3、図5及び図6)。
以上のような構成によれば、図22に示すように、第1の実施形態と同様の作用効果を得ることができる。また、本実施形態は、第1の実施形態における匿名化(仮名化)に加え、社員番号以外の属性項目(年齢、収入)の暗号化された属性値(CA,data_i+R)に暗号化誤差CA,Rを導入(加減算)することにより、一層、匿名化を進めることができる。
<第7の実施形態の変形例:誤差の導入>
第7の実施形態の変形例は、第1の実施形態の変形例と同様に、匿名化装置20が、テーブルT1eのうち、仮名化対象の属性項目(社員番号)の属性値CA,data_iに対し、レコード毎に異なる暗号化誤差CA,Rを導入して仮名化することができる。
これにより、第1の実施形態の変形例と同様の効果を得ることができる。
また、第7の実施形態の変形例は、仮名化対象の属性項目(社員番号)に加え、誤差の導入対象の属性項目(年齢、収入)の属性値CA,data_iに対し、レコード毎に異なる暗号化誤差CA,Rを導入して、一層、匿名化を進めることができる
<第8の実施形態:M2M及び誤差の導入>
次に、第8の実施形態に係る匿名化システムについて図9を参照しながら説明する。
第8の実施形態は、M2Mに乱数R及び暗号化乱数CA,Rを用いた第2の実施形態とは異なり、M2Mに誤差R及び暗号化誤差CA,Rを用いる形態である。すなわち、第8の実施形態は、第2の実施形態における乱数Rを誤差Rとみなし、第2の実施形態と同一の処理によって、テーブルの属性値を匿名化(誤差の導入による仮名化)する構成となっている。
以上のような構成によれば、第2の実施形態と同様の作用効果を得ることができる。また、本実施形態は、第2の実施形態における匿名化(仮名化)に加え、社員番号以外の属性項目(年齢、収入)の暗号化された属性値に暗号化誤差CA,Rを導入(加減算)することにより、一層、匿名化を進めることができる。
<第8の実施形態の変形例:誤差の導入>
第8の実施形態の変形例は、第2の実施形態の変形例と同様に、匿名化装置20が、テーブルT1eのうち、仮名化対象の属性項目(社員番号)の属性値CA,data_iに対し、レコード毎に異なる暗号化誤差CA,Rを導入して仮名化することができる。
これにより、第2の実施形態の変形例と同様の効果を得ることができる。
また、第8の実施形態の変形例は、仮名化対象の属性項目(社員番号)に加え、誤差の導入対象の属性項目(年齢、収入)の属性値CA,data_iに対し、レコード毎に異なる暗号化誤差CA,Rを導入して、一層、匿名化を進めることができる。
<第9の実施形態:[AN2013-51001]方式でトップコーディング>
図23は第9の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
第9の実施形態は、[OPE]方式を用いた第3の実施形態とは異なり、[AN2013-51001]方式を用いる形態である。
これに伴い、第9の実施形態は、図1に示した構成に比べ、匿名化支援装置90を更に備えている。
匿名化支援装置90は、鍵記憶部91、一時データ記憶部92、通信部93、パラメータ生成部94、乱数生成部95、演算部96及び制御部97を備えている。
鍵記憶部91及び一時データ記憶部92は、図示しないプロセッサから読出/書込可能な記憶装置又は記憶装置の記憶領域として実現可能となっており、それぞれ鍵及び一時データ等を記憶する。
通信部93、パラメータ生成部94、乱数生成部95、演算部96及び制御部97は、例えば、図示しないプロセッサが、後述する匿名化支援装置90内の各ステップを含むプログラムを実行することにより実現される機能ブロックとなっている。
また、匿名化装置20は、図1に示した構成に比べ、鍵記憶部220を更に備えている。
復号装置30は、図1に示した構成において、秘密鍵格納部32に代えて、鍵記憶部320を備えている。
次に、本実施形態における匿名化システムの動作について図24のシーケンス図、並びに図25及び図26の模式図を用いて説明する。以下の説明は、[AN2013-51001]の(加法的な)準同型暗号で且つ大小比較可能な暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST61において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、[AN2013-51001]の暗号方式における鍵生成を実行する。これにより、鍵生成部36は、暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N(又はs、v、a-1、N)を生成する。
KeyGen(1k)→(a、gsv、g、N、a-1、s、v)
なお、鍵生成部36は、鍵の生成処理において必要な乱数を乱数生成部35から取得することができる。また、鍵生成部36は、生成した暗号化鍵a、gsv、g、N、二次演算鍵a-1、s、N、三次演算鍵v、N、及び復号鍵sv、a-1、N(又はs、v、a-1、N)を鍵記憶部320に保存する。
ステップST62において、復号装置30の制御部38は、通信部34により、暗号化鍵a、gsv、g、Nを暗号化装置10に送付する。暗号化装置10の制御部18は、通信部14により受信した暗号化鍵a、gsv、g、Nを鍵記憶部12に格納する。
ステップST63において、復号装置30の制御部38は、通信部34により、三次演算鍵v、Nを匿名化装置20に送付する。匿名化装置20の制御部29は、通信部24により受信した三次演算鍵v、Nを鍵記憶部220に格納する。
ステップST64において、復号装置30の制御部38は、通信部34により、二次演算鍵a-1、s、Nを匿名化支援装置90に送付する。匿名化支援装置90の制御部97は、通信部93により受信した二次演算鍵a-1、s、Nを鍵記憶部91に格納する。
ステップST65において、暗号化装置10の暗号化部17は、図12に示したテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、トップコーディング対象の属性項目(収入)の属性値dataiを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
Enc(datai)→Cdata_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、暗号化鍵a、gsv、g、Nに基づいて、テーブルT1のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図25に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST66において、暗号化装置10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST67において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。
(匿名化)
ステップST68において、暗号化装置10のパラメータ生成部15は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。暗号化部17は、生成したしきい値Tを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値CTが生成される。
Enc(T)→CT
ステップST69において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内のトップコーディング対象の属性項目(収入)と、暗号化しきい値CTとを匿名化装置20に送付する。但し、匿名化装置20が暗号化鍵a、gsv、g、Nを予め取得することにより、暗号化しきい値CTを匿名化装置20が予め保持又は生成する場合には、暗号化装置10による暗号化しきい値CTの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST70において、匿名化装置20は、通信部24により、当該属性項目(収入)及び暗号化しきい値CTを受信する。匿名化装置20の演算部27は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(収入)に一致する属性項目(収入)の属性値Cdata_iと、受信した暗号化しきい値CT とに基づいて、一次演算結果X=(X1、X2)を生成する。
ステップST71において、匿名化装置20の制御部29は、通信部24により、一次演算結果Xを匿名化支援装置90に送付する。
ステップST72において、匿名化支援装置90は、通信部93により、一次演算結果Xを受信する。匿名化支援装置90の演算部96は、受信した一次演算結果Xと、鍵記憶部91内の二次演算鍵a-1、s、Nとに基づいて、二次演算結果Y=(Y1、Y2)を生成する。
ステップST73において、匿名化支援装置90の制御部97は、通信部93により、二次演算結果Yを匿名化装置20に送付する。
ステップST74において、匿名化装置20は、通信部24により、二次演算結果Yを受信する。匿名化装置20の演算部27は、受信した二次演算結果Yと、鍵記憶部91内の三次演算鍵v、Nとに基づいて、三次演算結果Wを生成する。
ステップST75において、匿名化装置20の演算結果比較部28は、三次演算結果Wと、N/2とを比較し、W<N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負(又は0)と判定する。判定結果は、演算結果比較部28から匿名化処理部26に出力される。
匿名化装置20の匿名化処理部26は、判定結果が正のときには、属性値Cdata_iを暗号化しきい値CTに置き換える。なお、「判定結果が正のとき」は、「式F=Cdata_i−CT が正のとき」に相当する。「それ以外のとき」は、「式F=Cdata_i−CT が負(又は0)のとき」に相当する。
すなわち、ステップST65で暗号化された属性値Cdata_iは、暗号化された状態のままで適宜、暗号化しきい値CT に置き換えられることにより、復号されずに匿名化された属性値(CT)に変換される。
このように、テーブルT1e内のトップコーディング対象の属性項目(収入)の属性値が匿名化され、図26に示すように、匿名化された属性値(CT)を含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST76において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルT1の属性値data_iを、トップコーディング用のしきい値Tによってトップコーディングすることができる。ここで、匿名化装置20には、どの属性値(Cdata_i)を置き換えたかが分かり、置き換えた暗号文は全部同じ値(CT)になる。しかしながら、匿名化装置20には、しきい値T及び元の属性値(data_i)は分からない。また、暗号化装置10は、トップコーディング前の暗号化データを保持している場合、トップコーディング前とトップコーディング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、トップコーディングした属性値を元に戻すことも可能である。
しかる後、ステップST76において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、鍵記憶部320内の復号鍵sv、a-1、N(又はs、v、a-1、N)に基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、トップコーディング対象の属性項目(収入)の属性値が匿名化されているか否かを判定する。具体的には、例えば、第3の実施形態と同様にして判定すればよい。判定の結果が否の場合には、ステップST68(又はST66)から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
以下、第3の実施形態のステップST31〜ST32と同様に、ステップST78〜ST79が実行される。
上述したように本実施形態によれば、[AN2013-51001]方式の暗号方式を用い、匿名化処理としてトップコーディングを実行する場合でも、第1の実施形態と同様の作用効果を得ることができる。
本実施形態は、図2及び図7に示した変形例と同様に、図27に示すように、匿名化装置20による暗号化データ及び暗号化匿名データの保管に代えて、暗号化データ及び暗号化匿名化データを保管するためのデータ保管装置70を更に備えてもよい。この時既存のデータ保管装置70に匿名化装置20を連携させることで、本実施形態と同様の効果を得ることが可能になる。例えば図28に示すように、ステップST66で暗号化データをデータ保管装置70に送付し、ステップST67でデータ保管装置70が暗号化データを保管してもよい。また、ステップST70−1でデータ保管装置70が暗号化データを匿名化装置20に送付し、ステップST70−2で匿名化装置20が一次演算結果を生成するようにしてもよい。同様に、ステップST76−1で匿名化装置20が暗号化匿名化データをデータ保管装置70に送付し、ステップS76−2でデータ保管装置70が暗号化匿名化データを保管してもよい。また、ステップST76−3でデータ保管装置70が暗号化匿名化データを復号装置30に送付するようにしてもよい。このとき、既存のデータ保管装置70を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
また例えば図8に示した変形例と同様に、図29に示すように、図28のステップST76−1〜ST76−3に代えて、元のステップST76を実行するようにしてもよい。この場合、図8に示した動作による効果と同様の効果を得ることができる。
<第10の実施形態:M2M、[AN2013-51001]方式及びトップコーディング>
図30は第10の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
第10の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第9の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
具体的には、第10の実施形態は、図23に示した構成に比べ、暗号化装置10をN台設け、且つパラメータ生成装置80を更に備えている。N台の暗号化装置(1〜N)10及びパラメータ生成装置80の構成は、それぞれ第4の実施形態と同様である。
次に、本実施形態における匿名化システムの動作について図31のシーケンス図を用いて説明する。
(事前準備)
ステップST61は、前述した第9の実施形態と同様に実行される。
ステップST62において、復号装置30の制御部38は、通信部34により、暗号化鍵a、gsv、g、NをN台の暗号化装置(1〜N)10及びパラメータ生成装置80に送付する。パラメータ生成装置80の制御部87は、通信部83により受信した暗号化鍵a、gsv、g、Nを鍵記憶部82に格納する。同様に、暗号化装置10の制御部18は、通信部14により受信した暗号化鍵a、gsv、g、Nを鍵記憶部12に格納する。なお、各暗号化装置(1〜N)10は、機器組み立て時に暗号化鍵a、gsv、g、Nを入力して格納してもよく、機器を配置後、ネットワーク経由で暗号化鍵a、gsv、g、Nを受信して格納してもよい。
ステップST63〜ST64は、前述した第9の実施形態と同様に実行される。
ステップST65において、各暗号化装置(1〜N)10のデータ取得部19は、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、トップコーディング対象の属性項目(収入)の属性値dataiを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
Enc(datai)→Cdata_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、暗号化鍵a、gsv、g、Nに基づいて、テーブルT1のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST66において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データと、テーブルT1e内のトップコーディング対象の属性項目(収入)とを匿名化装置20に送付する。
ステップST67において、匿名化装置20は、通信部24により、暗号化データであるテーブルT1eと、テーブルT1e内のトップコーディング対象の属性項目(収入)とを受信する。しかる後、匿名化装置20の制御部29は、当該テーブルT1eと、トップコーディング対象の属性項目(収入)とを一時データ記憶部23に保管する。一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。
(匿名化)
ステップST68において、パラメータ生成装置80のパラメータ生成部84は、トップコーディングするための匿名用パラメータである、しきい値Tを生成する。パラメータ生成装置80の暗号化部86は、生成したしきい値Tを、鍵記憶部82内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化しきい値CTが生成される。
Enc(T)→CT
ステップST69において、パラメータ生成装置80の制御部87は、通信部83により、暗号化しきい値CTを匿名化装置20に送付する。
以下、前述した第9の実施形態と同様に、ステップST70〜ST79が実行される。
上述したように本実施形態によれば、暗号化装置10を複数台とした場合でも、第9の実施形態と同様の作用効果を得ることができる。
本実施形態では、第4の実施形態や第6の実施形態とは異なり、機器に秘密鍵そのものは格納しないため、仮に機器から鍵を盗まれても、暗号化したデータを復号または匿名化することはできない。
<第11の実施形態:[AN2013-51001]方式でグルーピング>
次に、第11の実施形態に係る匿名化システムについて図23を参照しながら説明する。
第11の実施形態は、暗号化した「収入」をトップコーディングした第9の実施形態とは異なり、暗号化した「年齢」をグルーピングする形態である。
次に、本実施形態における匿名化システムの動作について図32のシーケンス図、並びに図33及び図34の模式図を用いて説明する。以下の説明では、[AN2013-51001]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST81〜ST84は、第9の実施形態のステップST61〜ST64と同様に実行される。
ステップST85において、暗号化装置10の暗号化部17は、暗号化前のテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、グルーピング対象の属性項目(年齢)の属性値dataiを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
Enc(datai)→Cdata_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、暗号化鍵a、gsv、g、Nに基づいて、テーブルT1のうち、グルーピング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図33に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST85〜ST86は、第9の実施形態のステップST65〜ST66と同様に実行される。
(匿名化)
ステップST88において、暗号化装置10のパラメータ生成部15は、グルーピングするための匿名用パラメータである、各グループの下限値L、上限値U及び代表値Mを生成する。暗号化部17は、生成した下限値L、上限値U及び代表値Mを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMが生成される。
Enc(L)→CL
Enc(U)→CU
Enc(M)→CM
ステップST89において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内のグルーピング対象の属性項目(年齢)と、暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMとを匿名化装置20に送付する。但し、匿名化装置20が暗号化鍵a、gsv、g、Nを予め取得することにより、暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMを匿名化装置20が予め保持又は生成する場合には、各値CL、CU及びCMの生成及び送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST90において、匿名化装置20は、通信部24により、当該属性項目(年齢)、暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMを受信する。匿名化装置20の演算部27は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(年齢)に一致する属性項目(年齢)の属性値Cdata_iと、受信した暗号化下限値CL及び暗号化上限値CU とに基づいて、一次演算結果XL,XUを生成する。ここで、一次演算結果XL =(X1L、X2L)は、下限値Lに関する分析情報である。一次演算結果XU =(X1U、X2U)は、上限値Uに関する分析情報である。
ステップST91において、匿名化装置20の制御部29は、通信部24により、一次演算結果XL ,XU を匿名化支援装置90に送付する。
ステップST92において、匿名化支援装置90は、通信部93により、一次演算結果XL ,XU を受信する。匿名化支援装置90の演算部96は、受信した一次演算結果XL ,XU と、鍵記憶部91内の二次演算鍵a-1、s、Nとに基づいて、二次演算結果YL ,YU を生成する。ここで、二次演算結果YL =(Y1L、Y2L)は、下限値Lに関する分析情報である。一次演算結果YU =(Y1U、Y2U)は、上限値Uに関する分析情報である。
ステップST93において、匿名化支援装置90の制御部97は、通信部93により、二次演算結果YL ,YU を匿名化装置20に送付する。
ステップST94において、匿名化装置20は、通信部24により、二次演算結果YL ,YU を受信する。匿名化装置20の演算部27は、受信した二次演算結果YL ,YU と、鍵記憶部91内の三次演算鍵v、Nとに基づいて、三次演算結果WL ,WU を生成する。ここで、三次演算結果WL は、下限値Lに関する分析情報である。三次演算結果WU は、上限値Uに関する分析情報である。
ステップST95において、匿名化装置20の演算結果比較部28は、下限値Lに関する三次演算結果WL と、N/2と比較し、WL <N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負(又は0)と判定する。この下限値Lに関する判定結果は、演算結果比較部28から匿名化処理部26に出力される。
同様に、匿名化装置20の演算結果比較部28は、上限値Lに関する三次演算結果WU と、N/2と比較し、WU <N/2のときには比較結果を正と判定し、それ以外のときには比較結果を負(又は0)と判定する。上限値Uに関する判定結果は、演算結果比較部28から匿名化処理部26に出力される。
しかる後、匿名化装置20の匿名化処理部26は、下限値Lに関する判定結果が正で上限値Uに関する判定結果が負(又は0)のときには、属性値Cdata_iを暗号化代表値CMに置き換える。なお、「下限値Lに関する判定結果が正のとき」は、「式F=Cdata_i−CL が正のとき」に相当する。「上限値Uに関する判定結果が負(又は0)のとき」は、「式F=Cdata_i−CU が負(又は0)のとき」に相当する。すなわち、匿名化処理部26は、属性値Cdata_iが暗号化下限値CL を超えて暗号化上限値CU 以下の範囲内にあるとき、属性値Cdata_iを暗号化代表値CMに置き換える。
これにより、ステップST85で暗号化された属性値Cdata_iは、暗号化された状態のままで適宜、暗号化代表値CM に置き換えられることにより、復号されずに匿名化された属性値(CM)に変換される。
このように、テーブルT1e内のグルーピング対象の属性項目(年齢)の属性値が匿名化され、図34に示すように、匿名化された属性値(CM)を含むテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST96において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値で表現されているテーブルT1の属性値data_iを、各グループの下限値L及び上限値Uを指定することによってグルーピングすることができる。ここで、匿名化装置20には、どの属性値(Cdata_i)を置き換えたかが分かり、置き換えた暗号文は全部同じ値(各グループの暗号化代表値CM)になる。しかしながら、匿名化装置20には、グループの下限値L、上限値U、代表値M、及び元の属性値(data_i)は分からない。
ここで、暗号化装置10は、グルーピング前の暗号化データを保持している場合、グルーピング前とグルーピング後の対応テーブルを作成してもよい。元のデータを別途保持していれば、グルーピングした属性値を元に戻すことも可能である。
しかる後、ステップST97において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、鍵記憶部320内の復号鍵sv、a-1、N(又はs、v、a-1、N)に基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、グルーピング対象の属性項目(年齢)の属性値が匿名化されているか否かを判定する。具体的には、例えば、第5の実施形態と同様にして判定すればよい。判定の結果が否の場合には、ステップST88(又はST86)から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
以下、前述したステップST51〜ST52と同様に、ステップST98〜ST99が実行される。
上述したように本実施形態によれば、[AN2013-51001]方式の暗号方式を用い、匿名化処理としてグルーピングを実行する場合でも、第1の実施形態と同様の作用効果を得ることができる。
<第12の実施形態:M2M、[AN2013-51001]方式及びグルーピング>
次に、第12の実施形態に係る匿名化システムについて図30を参照しながら説明する。
第12の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第11の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
具体的には、第12の実施形態は、図23に示した構成に比べ、暗号化装置10をN台設け、且つパラメータ生成装置80を更に備えている。N台の暗号化装置(1〜N)10及びパラメータ生成装置80の構成は、それぞれ第4の実施形態と同様である。
次に、本実施形態における匿名化システムの動作について図35のシーケンス図を用いて説明する。
(事前準備)
ステップST81は、前述した第11の実施形態と同様に実行される。
ステップST82において、復号装置30の制御部38は、通信部34により、暗号化鍵a、gsv、g、NをN台の暗号化装置(1〜N)10及びパラメータ生成装置80に送付する。パラメータ生成装置80の制御部87は、通信部83により受信した暗号化鍵a、gsv、g、Nを鍵記憶部82に格納する。同様に、暗号化装置10の制御部18は、通信部14により受信した暗号化鍵a、gsv、g、Nを鍵記憶部12に格納する。なお、各暗号化装置(1〜N)10は、機器組み立て時に暗号化鍵a、gsv、g、Nを入力して格納してもよく、機器を配置後、ネットワーク経由で暗号化鍵a、gsv、g、Nを受信して格納してもよい。
ステップST83〜ST84は、前述した第11の実施形態と同様に実行される。
ステップST85において、各暗号化装置(1〜N)10のデータ取得部19は、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、グルーピング対象の属性項目(年齢)の属性値dataiを、鍵記憶部12内の暗号化鍵a、gsv、g、Nに基づいてレコード毎に暗号化する。
Enc(datai)→Cdata_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、暗号化鍵a、gsv、g、Nに基づいて、テーブルT1のうち、トップコーディング対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST86において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データと、テーブルT1e内のグルーピング対象の属性項目(年齢)とを匿名化装置20に送付する。
ステップST87において、匿名化装置20は、通信部24により、暗号化データであるテーブルT1eと、テーブルT1e内のグルーピング対象の属性項目(年齢)とを受信する。しかる後、匿名化装置20の制御部29は、当該テーブルT1eと、グルーピング対象の属性項目(年齢)とを一時データ記憶部23に保管する。一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。
(匿名化)
ステップST88において、パラメータ生成装置80のパラメータ生成部84は、グルーピングするための匿名用パラメータである、グループの下限値L、グループの上限値U及びグループの代表値Mを生成する。パラメータ生成装置80の暗号化部86は、生成した下限値L、上限値U及びグループの代表値Mを、鍵記憶部82内の暗号化鍵a、gsv、g、Nに基づいて、[AN2013-51001]の暗号方式で暗号化する。これにより、暗号化匿名用パラメータである暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMが生成される。
Enc(L)→CL
Enc(U)→CU
Enc(M)→CM
ステップST89において、パラメータ生成装置80の制御部87は、通信部83により、テーブルT1e内のグルーピング対象の属性項目(年齢)と、暗号化下限値CL、暗号化上限値CU及び暗号化代表値CMとを匿名化装置20に送付する。
以下、前述した第11の実施形態と同様に、ステップST90〜ST99が実行される。
上述したように本実施形態によれば、暗号化装置10を複数台とした場合でも、第11の実施形態と同様の作用効果を得ることができる。
本実施形態では、第4の実施形態や第6の実施形態とは異なり、機器に秘密鍵そのものは格納しないため、仮に機器から鍵を盗まれても、暗号化したデータを復号または匿名化することはできない。
<第13の実施形態:削除、リサンプリング、ソート又はスワッピング>
次に、第13の実施形態に係る匿名化システムについて図1を参照しながら説明する。
第13の実施形態は、暗号化した「社員番号」を仮名化した第1の実施形態とは異なり、暗号化した「社員番号」を削除する形態である。なお、本実施形態は、前述した第1〜第12の実施形態とは異なり、匿名化する処理に用いる匿名用パラメータを暗号化した暗号化匿名用パラメータ(例、暗号化乱数、暗号化しきい値、暗号化下限値、暗号化上限値、暗号化代表値、暗号化誤差など)を用いない。
このような本実施形態は、「削除」に代えて、「リサンプリング」、「ソート」又は「スワッピング」を用いる形態に変形可能である。
次に、本実施形態における匿名化システムの動作について図36のシーケンス図、並びに図37及び図38の模式図を用いて説明する。以下の説明では、[AES]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST101において、復号装置30の鍵生成部36は、暗号パラメータ格納部31内のセキュリティパラメータ(1k)に基づいて、[AES]の暗号方式における鍵(秘密鍵skA)を生成する。
KeyGen(1k)→(skA)
なお、鍵生成部36は、鍵の生成処理において必要な乱数を乱数生成部35から取得することができる。また、鍵生成部36は、生成した秘密鍵skAを秘密鍵格納部32に保存する。
ステップST102において、復号装置30の制御部38は、通信部34により、暗号化装置10に、共通鍵である秘密鍵skAを送付する。暗号化装置10の制御部18は、通信部14により受信した秘密鍵skAを鍵記憶部12に格納する。
ステップST103において、暗号化装置10の暗号化部17は、図3に示すテーブルT1を一時データ記憶部13から読み出す。暗号化部17は、このテーブルT1のうち、削除対象の属性項目(社員番号)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、削除対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、テーブルT1内の全ての属性項目の属性値が暗号化され、図37に示すように、当該全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST104において、暗号化装置10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST105において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。
(匿名化)
ステップST106において、暗号化装置10の制御部18は、通信部14により、テーブルT1e内の削除対象の属性項目(社員番号)を匿名化装置20に送付する。但し、匿名化装置20が削除対象の属性項目を予め保持する場合には、暗号化装置10による削除対象の属性項目の送付を省略できる。このことは、以下の各実施形態及び変形例でも同様である。
ステップST107において、匿名化装置20は、通信部24により、削除対象の属性項目(社員番号)を受信する。匿名化処理部26は、一時データ記憶部23内のテーブルT1eのうち、受信した属性項目(社員番号)に一致する属性項目(社員番号)の列を削除する。すなわち、匿名化処理部26は、図37に示したテーブルT1eから削除対象の属性項目(社員番号)及びその属性値(CA,data_i)を削除する。これにより、図38に示すように、匿名化されたテーブルT1aが暗号化匿名化データとして生成される。
しかる後、匿名化処理部26は、テーブルT1aを一時データ記憶部23に保存する。
ステップST108において、匿名化装置20の制御部29は、通信部24により、一時データ記憶部23内のテーブルT1aからなる暗号化匿名化データを復号装置30に送付する。
本実施形態によれば、暗号化データを復号せずに匿名化し、得られた暗号化匿名化データを復号して匿名化データを利用することが可能になる。詳しくは数値、文字列などで表現されているテーブルT1の属性を削除することが可能になる。ここで、匿名化装置20には、削除した属性項目(社員番号)及びその属性値(CA,data_i)が分かる。しかしながら、匿名化装置20には、削除した属性項目(社員番号)の元の属性値(data_i)は分からない。
ここで、暗号化装置10は、削除前の暗号化データを保持している場合、削除前と削除後の対応テーブルを作成してもよい。元のデータを別途保持していれば、元のデータの属性項目及び属性値から個人を特定することや、削除処理を元に戻すことも可能である。
しかる後、ステップST109において、復号装置30の制御部38は、通信部34により、暗号化匿名化データを受信して一時データ記憶部33に記憶する。復号部37は、秘密鍵格納部32内の秘密鍵skAに基づいて、一時データ記憶部33内の暗号化匿名化データであるテーブルT1a内の各属性項目の値を復号し、得られた復号結果のテーブルを得る。
復号装置30の制御部38は、復号結果のテーブルのうち、削除対象の属性項目(社員番号)の属性値が匿名化されているか否かを判定する。例えば、復号結果のテーブルが、意図した通りに削除対象の属性項目の列を含まなければ、匿名化されていると判定される。この場合、任意のタイミングで暗号化装置10が削除対象の属性項目を復号装置30に送信しておけばよい。判定の結果が否の場合には、ステップST104から処理をやり直し、好ましい匿名化結果が得られるまで繰り返す。
以下、前述したステップST11〜ST12と同様に、ステップST110〜ST111が実行される。
上述したように本実施形態によれば、匿名化処理として削除を実行する場合でも、暗号化匿名用パラメータに関する作用効果を除き、第1の実施形態と同様の作用効果を得ることができる。
本実施形態は、暗号化した属性値を削除する匿名化処理を実行したが、これに代えて、暗号化した属性値をリサンプリング、ソート又はスワッピングする匿名化処理を実行してもよい。この場合、本実施形態を同様に実施して同様の効果を得ることができる。
また、復号装置30による鍵生成に代えて、暗号化装置10による鍵生成を実行してもよい。この場合、暗号化装置10が復号装置30に秘密鍵を送付して実施すればよい。
なお、本実施形態は、[AES]のような暗号化と復号に同一の鍵を用いる暗号方式のみならず、(加法的な)準同型暗号方式、大小比較可能な暗号方式、(加法的な)準同型暗号方式と大小比較可能な暗号方式を保持する暗号方式でも同様に実施可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
また、本実施形態は、図2に示した変形例と同様に、鍵生成装置60及びデータ保管装置70を更に備えてもよい。この時既存のデータ保管装置70に、匿名化装置20を連携させることで、本実施形態と同様の効果を得ることが可能になる。例えば図39に示すように、ステップST104で暗号化データをデータ保管装置70に送付し、ステップST105でデータ保管装置70が暗号化データを保管してもよい。また、ステップST107−1でデータ保管装置70が暗号化データを匿名化装置20に送付し、ステップST107−2で匿名化装置20が削除対象の属性項目の列を削除するようにしてもよい。同様に、ステップST108−1で匿名化装置20が暗号化匿名化データをデータ保管装置70に送付し、ステップS108−2でデータ保管装置70が暗号化匿名化データを保管してもよい。また、ステップST108−3でデータ保管装置70が暗号化匿名化データを復号装置30に送付するようにしてもよい。このとき、既存のデータ保管装置70を大きく変えることなく、本実施形態の効果を得ることが可能になる。これは後述する実施形態や変形例においても同様である。
また例えば図8に示した変形例と同様に、図40に示すように、図39のステップST108−1〜ST108−3に代えて、元のステップST108を実行するようにしてもよい。この場合、図8に示した動作による効果と同様の効果を得ることができる。
<第14の実施形態:M2Mと、削除、リサンプリング、ソート又はスワッピング>
図41は第14の実施形態に係る匿名化システム及びその周辺構成を示す模式図である。
第14の実施形態は、暗号化装置10が個人データを暗号化して匿名化装置20に預ける第13の実施形態とは異なり、M2Mサービスのように、各機器で取得した個人データを暗号化してなる暗号化データを匿名化装置20で収集する形態となっている。ここでいう各機器は、各々の暗号化装置(1〜N)10に相当する。
具体的には、第14の実施形態は、図1に示した構成に比べ、暗号化装置10をN台設け、且つユーザ端末100を更に備えている。但し、ユーザ端末100は、必須ではなく、例えばいずれかの暗号化装置10が削除対象の属性項目(社員番号)を匿名化装置20に送付する場合には、省略してもよい。このことは、以下の各変形例でも同様である。
ここで、N台の暗号化装置(1〜N)10の構成は、匿名化処理の方法を除き、前述した第4の実施形態等と同様である。
ユーザ端末100は、通常の通信機能を有するコンピュータであり、例えば、記憶部101、通信部102及び制御部103を備えている。
次に、本実施形態における匿名化システムの動作について図42のシーケンス図を用いて説明する。以下の説明では、[AES]の暗号方式を用いて匿名化する場合を例に挙げて述べる。
(事前準備)
ステップST101は、前述した第13の実施形態と同様に実行される。
ステップST102において、復号装置30の制御部38は、通信部34により、共通鍵である秘密鍵skAを各暗号化装置(1〜N)10に送付する。各暗号化装置(1〜N)10の制御部18は、通信部14により受信した秘密鍵skAを鍵記憶部12に格納する。なお、各暗号化装置(1〜N)10は、機器組み立て時に公開鍵pkAを入力して格納してもよく、機器を配置後、ネットワーク経由で公開鍵pkAを受信して格納してもよい。
ステップST103において、各暗号化装置(1〜N)10のデータ取得部19は、図3に示すように、テーブルT1からなる個人データを取得して一時データ記憶部13に記憶する。各暗号化装置(1〜N)10の暗号化部17は、一時データ記憶部13内のテーブルT1のうち、削除対象の属性項目(社員番号)の属性値dataiを、鍵記憶部12内の秘密鍵skAに基づいてレコード毎に暗号化する。
Enc(skA,datai)→CA,data_i
なお、暗号化部17は、暗号化の処理において必要なパラメータ及び乱数を、それぞれ暗号パラメータ格納部11及び乱数生成部16から取得することができる。
同様に、暗号化部17は、秘密鍵skAに基づいて、テーブルT1のうち、削除対象の属性項目以外の属性項目の属性値をレコード毎に暗号化する。これにより、前述同様に、図37に示すように、全ての属性項目の属性値が暗号化されたテーブルT1eが暗号化データとして生成される。
ステップST104において、各暗号化装置(1〜N)10の制御部18は、通信部14により、テーブルT1eからなる暗号化データを匿名化装置20に送付する。
ステップST105において、匿名化装置20は、通信部24により受信した暗号化データであるテーブルT1eを一時データ記憶部23に保管する。一時データ記憶部23内のテーブルT1eは、暗号化装置(1〜N)10から受信したテーブルT1eを集めた内容に更新される。
(匿名化)
ステップST106において、ユーザ端末100の制御部103は、通信部102により、削除対象の属性項目(社員番号)を匿名化装置20に送付する。但し、匿名化装置20が削除対象の属性項目を予め保持する場合には、暗号化装置10による削除対象の属性項目の送付を省略できる。このことは、以下の各変形例でも同様である。
以下、ステップST107〜ST111は、前述した第13の実施形態と同様に実行される。
上述したように本実施形態によれば、暗号化装置10を複数台とした場合でも、第13の実施形態と同様の作用効果を得ることができる。
ただし、本実施形態では、各機器に秘密鍵skAを格納するが、この秘密鍵skAは暗号化のみならず復号処理もできるため、各機器上で、秘密鍵skAを適切に管理しなければならない。
また、本実施形態は、暗号化した属性値を削除する匿名化処理に代えて、暗号化した属性値をリサンプリング、ソート又はスワッピングする匿名化処理を実行してもよい。この場合、本実施形態を同様に実施して同様の効果を得ることができる。
また、本実施形態は、[AES]のような暗号化と復号に同一の鍵を用いる暗号方式のみならず、(加法的な)準同型暗号方式、大小比較可能な暗号方式、(加法的な)準同型暗号方式と大小比較可能な暗号方式を保持する暗号方式でも同様に実施可能である。これら暗号方式を用いる場合は、それぞれの方式における暗号アルゴリズムを置き換えることで同様に実現できる。
以上説明した少なくとも一つの実施形態によれば、個人データに含まれる各項目の値を暗号化する処理により、当該個人データから暗号化データを生成する。暗号化データのうちの一部の項目の値を復号せずに匿名化する処理により、当該暗号化データから暗号化匿名化データを生成する。暗号化匿名化データを復号する処理により、当該暗号化匿名化データから匿名化データを生成する。このような構成により、個人データを暗号化して得られた暗号化データを復号せずに匿名化することができる。
なお、上記の各実施形態に記載した手法は、コンピュータに実行させることのできるプログラムとして、磁気ディスク(フロッピー(登録商標)ディスク、ハードディスクなど)、光ディスク(CD−ROM、DVDなど)、光磁気ディスク(MO)、半導体メモリなどの記憶媒体に格納して頒布することもできる。
また、この記憶媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記憶媒体であれば、その記憶形式は何れの形態であっても良い。
また、記憶媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているOS(オペレーティングシステム)や、データベース管理ソフト、ネットワークソフト等のMW(ミドルウェア)等が上記実施形態を実現するための各処理の一部を実行しても良い。
さらに、各実施形態における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネット等により伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記の各実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であっても良い。
なお、各実施形態におけるコンピュータは、記憶媒体に記憶されたプログラムに基づき、上記の各実施形態における各処理を実行するものであって、パソコン等の1つからなる装置、複数の装置がネットワーク接続されたシステム等の何れの構成であっても良い。
また、各実施形態におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置、マイコン等も含み、プログラムによって本発明の機能を実現することが可能な機器、装置を総称している。
なお、本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。