JP5799876B2 - プログラム、情報処理方法及び情報処理装置 - Google Patents

プログラム、情報処理方法及び情報処理装置 Download PDF

Info

Publication number
JP5799876B2
JP5799876B2 JP2012077861A JP2012077861A JP5799876B2 JP 5799876 B2 JP5799876 B2 JP 5799876B2 JP 2012077861 A JP2012077861 A JP 2012077861A JP 2012077861 A JP2012077861 A JP 2012077861A JP 5799876 B2 JP5799876 B2 JP 5799876B2
Authority
JP
Japan
Prior art keywords
data
organization
information processing
secret
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2012077861A
Other languages
English (en)
Other versions
JP2013205796A (ja
Inventor
淳 小暮
淳 小暮
武司 下山
武司 下山
雅哉 安田
雅哉 安田
津田 宏
宏 津田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012077861A priority Critical patent/JP5799876B2/ja
Publication of JP2013205796A publication Critical patent/JP2013205796A/ja
Application granted granted Critical
Publication of JP5799876B2 publication Critical patent/JP5799876B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、暗号化データの演算を行うプログラム、情報処理方法及び情報処理装置に関する。
情報通信技術の発展に伴い、これまで広範囲に分散していたデータを一箇所にまとめて分析などを行うことが可能になってきた。
現在、クラウドコンピューティングは、システムの新規導入や更新を検討している企業などから注目を集めている技術の一つである。クラウドコンピューティングとは、従来ユーザが保有していたハードウェア・ソフトウェアやアプリケーションなどを、インターネットなどのネットワークを通じて利用する利用形態のことである。
このクラウドコンピューティングは、イメージ図で表すと、インターネットを雲(cloud;クラウド)のように図示することから、このように呼ばれている。コンピューティングをクラウド化することで、ユーザは、利便性を手に入れる代わりに、安全性や信頼性への不安など、新たな情報セキュリティの問題に直面する。
ここで、クラウドコンピューティングにおいて、データを秘匿しながら集計を行う技術に、マスク方式と、準同型暗号方式の2つがある。また、電子的に順位付けを行う技術として、作成された順位付け関数と、参加者が選択したくじ情報とにより、参加者の順位付けを行う技術がある。
特開2002−352037号公報
牛田芽生恵、伊藤孝一、片山佳則、小櫻文彦、津田宏、「ゲートウェイによるクラウド間のデータ秘匿集計技術」、暗号と情報セキュリティシンポジウム(SCIS2011)、予稿集(CD−ROM) 安田雅哉、矢嶋純、下山武司、小暮淳、「複数企業が持つ購買履歴データのクラウド秘匿集計」、暗号と情報セキュリティシンポジウム(SCIS2012)、予稿集(CD−ROM)
マスク値を用いる従来技術では、各データmiにマスク値Tiを加えることにより、元のデータmiを秘匿する。このマスク値を用いる技術では、Tiの総和が0となるようにTiを定めることにより、正しい総和m1+m2+・・・+mkを計算することができる。
また、準同型暗号を用いる従来技術では、暗号データを秘匿したまま操作することができる準同型暗号を用い、例えば暗号化関数E()および暗号データの加算が以下の式(1)を満たすように定義されている。
Figure 0005799876
この準同型を用いる技術では、ユーザデータの暗号文のみをクラウドに預け、クラウド側では暗号文操作のみを行うことで、ユーザデータ(平文データ)が漏洩することなく演算結果を入手できる。そのため、準同型暗号は、クラウドにおける様々な差異化サービスを実現すると期待される技術である。
暗号文の加算操作可能な準同型暗号として、Paillier暗号やAdditive ElGamal方式などが代表的である。加算操作について、具体的な計算方法は各方式によって異なる。
しかしながら、従来技術では、データを秘匿しつつ、データの大小比較を行うことが困難であった。このため、所定のデータに対して、全体における順位を計算することが困難であった。
そこで、開示の技術では、個々のデータを秘匿しつつ、全体における順位を計算することができるプログラム、情報処理方法及び情報処理装置を提供することを目的とする。
開示の技術における一態様のプログラムは、1又は複数の処理対象のデータに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象のデータの個数が秘匿された秘匿データを、複数の組織から取得し、取得されたデータ毎の前記秘匿データを、組織毎に記憶部に記憶し、前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する処理をコンピュータに実行させる。
また、開示の技術における他の態様のプログラムは、1又は複数の処理対象のデータに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象のデータの個数を秘匿して秘匿データを生成し、前記秘匿データをサーバに送信し、前記サーバにより各組織から受信された秘匿データに対し、前記所定範囲内のデータ毎に、前記サーバから各組織の秘匿データが加算操作されたデータを、又は前記加算操作されたデータを復号した装置から復号後のデータを受信し、前記受信されたデータを用いて、前記各組織の全てのデータに対する前記処理対象のデータの順位を決定する処理をコンピュータに実行させる。
開示の技術によれば、個々のデータを秘匿しつつ、全体における順位を計算することができる。
実施例1における秘匿計算システムの一例を示す図。 実施例1における情報処理装置のハードウェア構成の一例を示すブロック図。 実施例1における秘匿計算システム内の各装置の機能構成の一例を示すブロック図で。 実施例1におけるシステムの処理手順(その1)を説明するための図。 実施例1におけるシステムの処理手順(その2)を説明するための図。 実施例1におけるシステムの処理手順(その3)を説明するための図。 実施例1におけるマスク値生成処理の一例を示すフローチャート。 実施例1における秘匿データ生成処理(その1)の一例を示すフローチャート。 実施例1における暗号操作処理(その1)の一例を示すフローチャート。 実施例1における順位決定処理の一例を示すフローチャートト。 実施例1における鍵生成処理の一例を示すフローチャート。 実施例1における秘匿データ生成処理(その2)の一例を示すフローチャート。 実施例1における暗号操作処理(その2)の一例を示すフローチャート。 実施例1における復号処理の一例を示すフローチャート。 実施例1における秘匿データ生成処理(その3)の一例を示すフローチャート。 実施例1における暗号操作処理(その3)の一例を示すフローチャート。 実施例2における秘匿計算システム内の各装置の機能構成の一例を示すブロック図。
以下、各実施例について、添付図面を参照しながら説明する。
[実施例1]
<システム>
図1は、実施例1における秘匿計算システム1の一例を示す図である。図1に示す秘匿計算システム1は、例えばクラウドコンピューティングシステムを用いて実装されうる。図1に示す秘匿計算システム1では、数値データxの順位について、以下の定義を用いる。
所定のデータxの順位とは、(xよりも大きなデータの個数)+1であるという定義を利用する。データの取り得る値は、M1,M2,…,Mnとする。組織U1,U2,…Umが各々複数のデータを保持しているとする。各組織Uiは、各々に以下のデータ{Nij},j=1,2,…,nを生成する。
Nij=#{x|x>Mj,xはUiの保持するデータ} ・・・式(2)
ただし、#は集合の個数を表す。
例えば、組織U1は、N11〜N1nを生成し、組織U2は、N21〜N2nを生成し、組織Umは、Nm1〜Nmnを生成する。
各組織Uiは、後述する(i)マスク方式、または(ii)準同型暗号方式、または(iii)両方式の組合せにより、データ{Nij}を秘匿し、秘匿されたデータを例えばクラウドサーバに送信する。
クラウドサーバは、秘匿されたデータに対して暗号操作を行い、後述する(i)の場合は、暗号操作後のデータを各組織Uiに送信する。後述する(ii)又は(iii)の場合、クラウドサーバは、暗号操作後のデータを例えば復号処理装置に送信し、復号処理装置は、復号処理を行ったデータを各組織Uiに送信する。
以下に示す例では、対象のデータとして、数値データを例にして説明するが、数値データ以外にも、順位付けが可能な文字、例えばアルファベットなどでもよい。アルファベットの場合は、Aが一番大きく、Zが一番小さいなどを定義づけておけばよい。
図1に示す秘匿計算システム1は、クラウドサーバとしての情報処理装置10と、秘匿データを提供する情報処理装置20、30と、マスク値の管理サーバとして機能する情報処理装置40と、準同型暗号の秘密鍵を有する情報処理装置50とがネットワークを介して接続されている。秘匿計算システム1に接続される情報処理装置の数は、図1に示す例に限られない。
情報処理装置20、30は、秘匿したい1又は複数の数値データを秘匿し、秘匿データを情報処理装置10に送信する。情報処理装置20、30は、情報処理装置10又は情報処理装置50から受信した順位付けの結果データを受信し、保持していた各数値データの順位を知ることができる。
情報処理装置40は、情報処理装置20、30などの組織の装置で数値データを秘匿するのにマスク値が用いられる場合、このマスク値の生成、管理を行う。情報処理装置40は、各組織の数、取りうる値の数を把握し、各マスク値Tijを生成する。生成された各マスク値は、組織毎に、情報処理装置20、30などの組織の装置に送信される。
情報処理装置50は、組織の装置において、数値データを秘匿するのに準同型暗号が用いられる場合、この暗号方式の秘密鍵を保持する。情報処理装置50は、情報処理装置10から暗号操作されたデータを取得すると、秘密鍵を用いて暗号操作されたデータを復号し、復号データを各組織の装置に送信する。情報処理装置50は、復号処理装置として機能する。
また、各情報処理装置20〜50は、ノートPC(Personal Computer)やデスクトップPCやサーバ、タブレット端末、又はスマートフォンなどである。
<ハードウェア>
図2は、実施例1における情報処理装置10のハードウェア構成の一例を示すブロック図である。図2に示す情報処理装置10は、制御部102、主記憶部104、補助記憶部106、通信部108、及び記録媒体I/F部110を少なくとも有する。各部は、バスを介して相互にデータ送受信可能に接続されている。
制御部102は、コンピュータの中で、各装置の制御やデータの演算、加工を行うCPU(Central Processing Unit)である。また、制御部102は、主記憶部104や補助記憶部106に記憶されたプログラムを実行する演算装置であり、通信部108や各記憶部からデータを受け取り、演算、加工した上で、出力部や各記憶部に出力する。
また、制御部102は、例えば補助記憶部106に記憶される秘匿順位計算プログラムを実行することで、秘匿されたデータの順位計算機能を果たす。
主記憶部104は、ROM(Read Only Memory)やRAM(Random Access Memory)などであり、制御部102が実行する基本ソフトウェアであるOSやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
補助記憶部106は、HDD(Hard Disk Drive)などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。また、補助記憶部106は、記録媒体112などから取得した秘匿順位計算プログラムや、通信部108から取得した秘匿データなど記憶しておいてもよい。
通信部108は、有線又は無線などのネットワークを通じて通信を行う。通信部108は、例えば、情報処理装置20などから秘匿データを取得する。
記録媒体I/F(インターフェース)部110は、USB(Universal Serial Bus)などのデータ伝送路を介して接続された記録媒体112(例えば、フラッシュメモリなど)と情報処理装置10とのインターフェースである。
また、記録媒体112に、所定のプログラムを格納し、この記録媒体112に格納されたプログラムは記録媒体I/F部110を介して情報処理装置10にインストールされる。インストールされた所定のプログラムは、情報処理装置10により実行可能となる。
なお、上記情報処理装置10の構成は、情報処理装置20〜50についても同様である。各情報処理装置は、図2に示すように、一般的なコンピュータの構成を有する。各情報処理装置は、入力部や表示部を備えてもよい。以降では、各情報処理装置の構成については、図2に示す符号と同じ符号を共通して用いる。
<機能>
図3は、実施例1における秘匿計算システム1内の各装置の機能構成の一例を示すブロック図である。
(情報処理装置40)
情報処理装置40は、マスク値を生成、管理するサーバとしての機能を有する装置である。情報処理装置40は、マスク値生成部402、通信部404を有する。
マスク値生成部402は、秘匿計算システム1で用いられる組織の数、取りうる値の数が予め設定されている。ここでは、組織の数は、m個、取りうる値の数は、n個とする。マスク値生成部402は、組織の変数をi、取りうる値の変数をjとし、マスク値Tijを生成する。
このとき、マスク値生成部402は、次の式(3)が成り立つように、マスク値を生成する。
T1j+T2j+T3j+・・・+Tmj=0 ・・・式(3)
マスク値生成部402は、取りうる値の所定値に対し、各組織のマスク値の総和が0になるようマスク値を生成する。マスク値生成部402は、生成した全てのマスク値Tijを、通信部404に出力する。
通信部404は、マスク値Tij(1≦j≦n)を、組織Uiの装置に送信する。例えば、通信部404は、マスク値T1jを組織U1の装置に送信し、マスク値T2jを組織U2の装置に送信する。
(情報処理装置20)
情報処理装置20は、数値データを提供する組織により使用される装置である。情報処理装置20は、保持部202、秘匿部204、通信部206、及び順位決定部208を有する。
保持部202は、順位付けを行いたい数値データを1又は複数保持する。数値データは、例えばテストの点数や、お店の売上などである。
秘匿部204は、保持部202に保持されている1又は複数の処理対象の数値データについて、所定範囲内の数値データ毎に、各数値データより大きい処理対象の数値データの個数を計算する。この個数は、上述した式(2)のNijにより求めることができる。
秘匿部204は、計算した各Nij(1≦j≦n)を秘匿して秘匿データを生成する。秘匿には、例えば以下の3つの方法を用いる。
(i)マスク値による秘匿方法
秘匿部204は、次の式(4)を用いて秘匿データを計算する。
N'ij=Nij+Tij ・・・式(4)
Tijは、マスク値である。マスク値は、情報処理装置40から送信され、各組織の情報処理装置は、送信されたマスク値を保持しておく。例えば、組織U1の情報処理装置には、マスク値T1jが保持される。秘匿方法(i)によれば、簡易的にデータを秘匿することができる。
(ii)準同型暗号による秘匿方法
秘匿部204は、E(Nij)を計算する。E()は、暗号データを加算演算することで、平文データが加算される準同型暗号の公開鍵で暗号化することを表す。この準同型暗号には、Paillier暗号やAdditive ElGamal暗号などがある。秘匿方法(ii)によれば、データの追加、削除、更新などが容易に行えるようになる。
(iii)マスク値と準同型暗号とによる秘匿方法
秘匿部204は、次の式(5)を用いて秘匿データを計算する。
E(Nij+Tij)=E(N'ij) ・・・式(5)
秘匿部204は、マスク値が加算された数値データを準同型暗号の公開鍵で暗号化する。秘匿方法(iii)によれば、秘密鍵を有する人にも、個々のデータはマスクされているため、個々のデータを秘匿することができる。
秘匿部204は、(i)〜(iii)のいずれかの秘匿方法で生成した秘匿データを、通信部206に出力する。秘匿データとは、N'ij、E(Nij)、又はE(N'ij)のいずれかである。
通信部206は、生成された各秘匿データを情報処理装置10に送信する。通信部206は、情報処理装置10又は情報処理装置50から結果データを受信した場合、結果データを順位決定部208に出力する。結果データは、暗号操作された、又は暗号操作され復号されたデータであり、このデータ値をNj(=N1j+N2j+N3j+・・・+Nmj)とする。
順位決定部208は、結果データのうち、保持部202に保持される1又は複数の数値データに対応する値に1を加算し、各組織の全ての数値データに対する処理対象の数値データの順位を決定する。例えば、順位決定部208は、処理対象データのMjの順位を、Nj+1位と決定する。
情報処理装置30は、情報処理装置20と同様の機能を有する。また、各組織の装置も、情報処理装置20と同様の構成を有する。
(情報処理装置10)
情報処理装置10は、例えばクラウドのサーバであり、秘匿計算を行う装置である。情報処理装置10は、通信部302、記憶部304、及び暗号操作部306を有する。
通信部302は、受信部322と送信部324とを有する。受信部322は、各組織Uiの装置(例えば情報処理装置20、30など)から秘匿データを受信する。受信部322は、秘匿データを、所定範囲内のデータ毎に複数の組織から取得する。所定範囲とは、例えばM1〜Mnをいう。
送信部324は、加算操作された秘匿データを結果データとして、各組織に送信する。送信部324は、結果データが暗号化されている場合は、結果データを復号させるために情報処理装置50に送信する。
記憶部304は、受信部322により受信された所定範囲内の数値データ毎の秘匿データ(Nij)を、組織毎に記憶する。
暗号操作部306は、記憶部304に記憶された所定範囲内の数値データ毎に、各組織の秘匿データを加算操作する。暗号操作部306は、個々のデータは秘匿されたまま、次の式(6)を用いて加算操作する。
Nj=N1j+N2j+…+Nmj(1≦j≦n) ・・・式(6)
暗号操作部306は、(i)の場合、次の式(7)により、N'jを計算する。
N'j=N'1j+N'2j+…+N'mj ・・・式(7)
このとき、T1j+T2j+…+Tmjは予め0となるように定めておくことにより、暗号操作部306は、Njを求めることができる。つまり、N'j=Njである。
暗号操作部306は、(ii)の場合、次の式(8)により、E(Nj)を計算する。
Figure 0005799876
暗号操作部306は、(iii)の場合、次の式(9)により、E(N'j)を計算する。
Figure 0005799876
暗号操作部306は、加算操作により求められた結果データを、送信部324に出力する。
(情報処理装置50)
情報処理装置50は、準同型暗号の秘密鍵を用いて暗号化されている結果データを復号する装置である。情報処理装置50は、通信部502及び復号部504を有する。
通信部502は、情報処理装置10から暗号化されている結果データを受信する。受信した結果データを復号部504に出力する。また、通信部502は、復号部504により復号された結果データを各組織の装置に送信する。
復号部504は、通信部502から取得した結果データを、準同型暗号の秘密鍵を用いて復号する。これにより、復号部504は、結果データ(Nj)を取得することができる。復号部504は、取得した結果データを各装置に送信するため、通信部502に出力する。
秘匿計算システム1は、以上の機能を有することで、個々のデータを秘匿しつつ、全体における順位を計算することができる。つまり、各組織Uiは、各データ値Mjの全体における順位を知ることができる。
<システムの処理手順>
次に、秘匿計算システム1の処理手順について説明する。秘匿方法として(i)〜(iii)を用いるシステムの処理について順に説明する。
《マスク値による秘匿方法を用いる場合》
図4は、実施例1におけるシステムの処理手順(その1)を説明するための図である。図4に示す例では、マスク値による秘匿方法を用いる。図4に示すように、以下の手順で処理が行われる。
(1)マスク値生成
情報処理装置40は、組織数m、取りうる値の数nを用いて、マスク値Tijを生成する。T1j〜Tmjの総和は0になる。
(2)マスク値を送信
情報処理装置40は、組織毎に生成したマスク値を、その組織に送信する。例えば、情報処理装置40は、マスク値T1j(1≦j≦n)を組織U1に送信する。
(3)Nijを計算
各組織Uiの装置は、式(2)を用いて、各数値データ(Mj)よりも大きい処理対象のデータの個数を計算する。
Nij=#{x|x>Mj,xはUiの保持するデータ}
#は、集合の個数を表す。
(4)秘匿データを計算
各組織Uiの装置は、情報処理装置40から送信されたマスク値を用いて、データの個数をマスクする。各組織の装置は、式(4)によりN'ij=Nij+Tijを求める。
(5)秘匿データを送信
各組織Uiの装置は、秘匿データN'ijを情報処理装置10に送信する。
(6)加算操作
情報処理装置10は、式(7)によりN'jを求める。なお、N'j=Njであるため、情報処理装置10は、Njを求めることができる。
(7)Njを送信
情報処理装置10は、Njを各組織の装置に送信する。これにより、各組織は、自身が保持する各数値データに対応するNjの値に1を加算すれば、その数値データの全体の順位を知ることができる。
次に、(i)マスク値による秘匿方法を用いる具体例について説明する。以下に示す具体例では、組織数m=3,データのとり得る値の数n=5の場合の、Nij,Tij,N'ijの例を挙げる。
例えば、5点満点のテストを、3つの塾(組織)に行い、それぞれの塾で受けた各受験者の成績(点数)は、秘密にしておき、各受験者の点数の総合成績を知りたい場合がある。
この場合、各データは以下の通りとする。
データの取りうる値(ただし0点は除く):M1=1,M2=2,M3=3,M4=4,M5=5
組織(塾):U1,U2,U3
U1の3人の成績:1点、2点、4点
U2の2人の成績:3点、4点
U3の2人の成績:2点、5点
このとき、各組織の装置は、まず、Mjよりも大きい点数の個数を計算する。
U1のデータ{N1j}:N11=2,N12=1,N13=1,N14=0,N15=0
例えば、N11は、M1=1(点)よりも大きい点数の個数を表す。1点よりも大きい点数の個数は、2点と4点とで2つである。よって、N11=2となる。
U2のデータ{N2j}:N21=2,N22=2,N23=1,N24=0,N25=0
例えば、N23は、M3=3(点)よりも大きい点数の個数を表す。3点よりも大きい点数の個数は、4点の1つである。よって、N23=1となる。
U3のデータ{N3j}:N31=2,N32=1,N33=1,N34=1,N35=0
例えば、N35は、M5=5(点)よりも大きい点数の個数を表す。5点よりも大きい点数の個数は、0である。よって、N35=0となる。
一方、情報処理装置40は、例えば次のようにマスク値を生成しておく。
マスク値{Tij}
T11= 3,T12=−4,T13= 6,T14=−2,T15=−5
T21= 5,T22= 7,T23=−4,T24=−5,T25= 3
T31=−8,T32=−3,T33=−2,T34= 7,T35= 2
マスク値は、組織毎に対応するマスク値を加算すると0になる。例えば、加算値は、T11+T21+T31=3+5+(−8)=0となる。よって、全てのjについて、T1j+T2j+T3j=0が成立する。
次に、各組織の装置は、秘匿データ{N'ij=Nij+Tij}を生成する。
U1のデータ{N'1j}:N'11=5,N'12=−3,N'13=7,N'14=−2,N'15=−5
U2のデータ{N'2j}:N'21=7,N'22=9,N'23=−3,N'24=−5,N'25=3
U3のデータ{N'3j}:N'31=−6,N'32=−2,N'33=−1,N'34=8,N'35=2
次に、情報処理装置10は、暗号操作(加算操作)を行い、順位データ{Ni}を生成する。
N1=N'11+N'21+N'31=5+7−6=6
N2=N'12+N'22+N'32=−3+9−2=4
N3=N'13+N'23+N'33=7−3−1=3
N4=N'14+N'24+N'34=−2−5+8=1
N5=N'15+N'25+N'35=−5+3+2=0
従って、各組織の装置は、Njを取得することで、各点数の順位が分かる。
M1の順位:N1+1=7位
M2の順位:N2+1=5位
M3の順位:N3+1=4位
M4の順位:N4+1=2位
M5の順位:N5+1=1位
つまり、1点の受験者は7位であり、2点の受験者は5位であり、3点の受験者は4位であり、4点の受験者は2位であり、5点の受験者は1位である。
《準同型暗号による秘匿方法を用いる場合》
図5は、実施例1におけるシステムの処理手順(その2)を説明するための図である。図5に示す例では、準同型暗号による秘匿方法を用いる。図5に示すように、以下の手順で処理が行われる。
(1)公開鍵、秘密鍵の生成
情報処理装置50は、例えば、PaillierやAdditive ElGamal暗号などの準同型暗号の秘密鍵(SK:Secret Key)、公開鍵(PK:Public Key)を生成する。
(2)公開鍵を公開
情報処理装置50は、生成した公開鍵(PK)を公開する。
(3)Nijを計算
各組織Uiの装置は、式(2)を用いて、各数値データ(Mj)よりも大きい処理対象のデータの個数を計算する。
Nij=#{x|x>Mj,xはUiの保持するデータ}
#は、集合の個数を表す。
(4)秘匿データを計算
各組織Uiの装置は、情報処理装置50により公開された公開鍵(PK)を用いて、データの個数Nijを暗号化する。各組織の装置は、E(Nij,PK)を求める。E(Nij,PK)は、データNijを公開鍵PKで暗号化することを表す。E(Nij,PK)は、単にE(Nij)とも表記する。
(5)秘匿データを送信
各組織Uiの装置は、秘匿データE(Nij)を情報処理装置10に送信する。
(6)加算操作
情報処理装置10は、式(8)によりE(Nj)を求める。
(7)E(Nj)を送信
情報処理装置10は、E(Nj)を情報処理装置50に送信する。
(8)秘密鍵で復号
情報処理装置50は、受信したE(Nj)を秘密鍵(SK)で復号する。これにより、情報処理装置50は、Nj(j=1,2,・・・,n)の値を取得することができる。
(9)Njを送信
情報処理装置50は、各組織Uiに対し、取得したNjを送信する。これにより、各組織は、自身が保持する各数値データに対応するNjの値に1を加算すれば、その数値データの全体の順位を知ることができる。また、準同型暗号を用いる場合は、クラウドサーバ以外の装置で秘匿データの復号を行うことで、クラウドサーバにも結果データが分からない点で、セキュリティ上の大きなメリットがある。
《マスク値と準同型暗号とによる秘匿方法を用いる場合》
図6は、実施例1におけるシステムの処理手順(その3)を説明するための図である。図6に示す例では、マスク値と準同型暗号とによる秘匿方法を用いる。図6に示すように、以下の手順で処理が行われる。
(1A)マスク値生成
情報処理装置40は、組織数m、取りうる値の数nを用いて、マスク値Tijを生成する。T1j〜Tmjの総和は0になる。
(2A)マスク値を送信
情報処理装置40は、組織毎に生成したマスク値を、その組織に送信する。例えば、情報処理装置40は、マスク値T1j(1≦j≦n)を組織U1に送信する。
(1B)公開鍵、秘密鍵の生成
情報処理装置50は、例えば、PaillierやAdditive ElGamal暗号などの準同型暗号の秘密鍵(SK:Secret Key)、公開鍵(PK:Public Key)を生成する。
(2B)公開鍵を公開
情報処理装置50は、生成した公開鍵(PK)を公開する。
(3)Nijを計算
各組織Uiの装置は、式(2)を用いて、各数値データ(Mj)よりも大きい処理対象のデータの個数を計算する。
Nij=#{x|x>Mj,xはUiの保持するデータ}
#は、集合の個数を表す。
(4)秘匿データを計算(その1)
各組織Uiの装置は、情報処理装置40から送信されたマスク値を用いて、データの個数をマスクする。各組織の装置は、式(4)によりN'ij=Nij+Tijを求める。
(5)秘匿データを計算(その2)
各組織Uiの装置は、情報処理装置50により公開された公開鍵(PK)を用いて、データの個数N'ijを暗号化する。各組織の装置は、N'ij=E(N'ij,PK)を求める。E(N'ij,PK)は、データN'ijを公開鍵PKで暗号化することを表す。E(N'ij,PK)は、単にE(N'ij)とも表記する。
(6)秘匿データを送信
各組織Uiの装置は、秘匿データE(N'ij)を情報処理装置10に送信する。
(7)加算操作
情報処理装置10は、式(9)によりE(N'j)を求める。
(8)E(N'j)を送信
情報処理装置10は、E(N'j)を情報処理装置50に送信する。
(9)秘密鍵で復号
情報処理装置50は、受信したE(N'j)を秘密鍵(SK)で復号する。これにより、情報処理装置50は、N'j=N'jであるため、Nj(j=1,2,・・・,n)の値を取得することができる。
(10)Njを送信
情報処理装置50は、各組織Uiに対し、取得したNjを送信する。これにより、各組織は、自身が保持する各数値データに対応するNjの値に1を加算すれば、その数値データの全体の順位を知ることができる。また、準同型暗号を用いる場合は、クラウドサーバ以外の装置で秘匿データの復号を行うことで、クラウドサーバにも結果データが分からない点で、セキュリティ上の大きなメリットがある。
<動作>
次に、秘匿計算システム1の各装置の動作について説明する。各動作の処理は、秘匿方法(i)〜(iii)毎に説明する。
《マスク値による秘匿方法の場合》
図7は、実施例1におけるマスク値生成処理の一例を示すフローチャートである。情報処理装置40は、マスク値を管理する機能を有する。情報処理装置40は、処理をする前に、組織数mと取りうる値の数nとを入力される。
図7に示す例では、ステップS101で、マスク値生成部402は、nに対応する変数jに1を代入する。
ステップS102で、マスク値生成部402は、マスク値T1j,・・・,Tmjを生成する。
ステップS103で、マスク値生成部402は、jに1を加算する。ステップS104で、マスク値生成部402は、jがnより大きいかを判定する。j>nであれば(ステップS104−YES)ステップS105に進み、j>nでなければ(ステップS104−NO)ステップS102に戻る。
ステップS105で、通信部404は、mに対応する変数iに1を代入する。ステップS106で、通信部404は、Ti1,・・・,Tinを組織Uiに送信する。変数iは、mに対応する変数である。
ステップS107で、通信部404は、iに1を加算する。ステップS108で、通信部404は、iがmより大きいかを判定する。i>mであれば(ステップS108−YES)処理を終了し、i>mでなければ(ステップS108−NO)ステップS106に戻る。この処理により、マスク値Tijが生成される。
図8は、実施例1における秘匿データ生成処理(その1)の一例を示すフローチャートである。以下に示す例は、組織Uiの装置で行われる処理の例である。組織Uiの装置には、データがn個保持されている。
図8に示すステップS201で、通信部206は、マスク値Ti1,・・・,Tinを受信する。
ステップS202で、秘匿部204は、nの変数jに1を代入する。ステップS203で、秘匿部204は、式(2)を用いてNijを計算する。
ステップS204で、秘匿部204は、式(4)によりN'ijを計算する。ステップS205で、秘匿部204は、jに1を加算する。
ステップS206で、秘匿部204は、jがnより大きいかを判定する。j>nであれば(ステップS206−YES)ステップS207に進み、j>nでなければ(ステップS206−NO)ステップS203に戻る。
ステップS207で、通信部206は、生成された秘匿データN'i1,・・・,N'inを情報処理装置10に送信する。
これにより、個々のデータそのものではないNijに対し、さらにそのNijを秘匿して、クラウド側に送信することができる。
図9は、実施例1における暗号操作処理(その1)の一例を示すフローチャートである。情報処理装置10は、クラウドのサーバとしての機能を果たす。
図9に示すステップS301で、受信部322は、各組織Uiから秘匿データN'ij(j=1,・・・,n)を受信する。受信したデータは、記憶部304に記憶される。ステップS302で、暗号操作部306は、jに1を代入する。
ステップS303で、暗号操作部306は、各組織Uiの秘匿データを加算する。暗号操作部306は、N'1j+,・・・,N'mj=N'j=Njを計算する。
ステップS304で、暗号操作部306は、jに1を加算する。ステップS305で、暗号操作部306は、jがnより大きいかを判定する。j>nであれば(ステップS305−YES)ステップS306に進み、j>nでなければ(ステップS305−NO)ステップS303に戻る。
ステップS306で、送信部324は、取得したNi,・・・,Nnを各組織Uiの装置に送信する。
これにより、クラウド側では、個々のデータを知ることなく、暗号操作を行い、N1,・・・,Nnを各組織の装置に送信することができる。
図10は、実施例1における順位決定処理の一例を示すフローチャートである。図10に示すステップS351で、通信部206は、情報処理装置10からN1,・・・,Nnを受信する。
ステップS352で、順位決定部208は、保持部202に保持されるデータxに対応するNjを特定する。
ステップS353で、順位決定部208は、Njの値に1を加算することで、データxの順位を決定する。
これにより、各組織Uiの装置は、データxの全体における順位を決定することができる。
《準同型暗号による秘匿方法の場合》
図11は、実施例1における鍵生成処理の一例を示すフローチャートである。情報処理装置50は、暗号加算が可能な準同型暗号を用いる装置である。
図11に示すステップS401で、情報処理装置50は、公開鍵PKと秘密鍵SKとを生成する。
ステップS402で、情報処理装置50は、生成した公開鍵PKを公開する。これにより、他の装置が、この公開鍵PKを用いて暗号化を行うことができるようになる。
図12は、実施例1における秘匿データ生成処理(その2)の一例を示すフローチャートである。以下に示す例は、組織Uiの装置で行われる処理の例である。組織Uiの装置には、処理対象のデータがn個保持されているとする。
図12に示すステップS501で、組織Uiの装置は、公開されている公開鍵PKを取得する。
ステップS502で、秘匿部204は、nの変数jに1を代入する。ステップS503で、秘匿部204は、式(2)を用いてNijを計算する。
ステップS504で、秘匿部204は、公開鍵PKによりE(Nij)を計算する。ステップS505で、秘匿部204は、jに1を加算する。
ステップS506で、秘匿部204は、jがnより大きいかを判定する。j>nであれば(ステップS506−YES)ステップS507に進み、j>nでなければ(ステップS506−NO)ステップS503に戻る。
ステップS507で、通信部206は、生成された秘匿データE(Ni1),・・・,E(Nin)を情報処理装置10に送信する。
これにより、個々のデータそのものではないNijに対し、さらにそのNijを暗号を用いて秘匿して、クラウド側に送信することができる。
図13は、実施例1における暗号操作処理(その2)の一例を示すフローチャートである。情報処理装置10は、クラウドのサーバとしての機能を果たす。
図13に示すステップS601で、受信部322は、各組織Uiから秘匿データE(Nij)(j=1,・・・,n)を受信する。受信したデータは、記憶部304に記憶される。ステップS602で、暗号操作部306は、jに1を代入する。
ステップS603で、暗号操作部306は、各組織Uiの秘匿データを暗号加算する。暗号操作部306は、式(8)により、E(Nj)を計算する。
ステップS604で、暗号操作部306は、jに1を加算する。ステップS605で、暗号操作部306は、jがnより大きいかを判定する。j>nであれば(ステップS605−YES)ステップS606に進み、j>nでなければ(ステップS605−NO)ステップS603に戻る。
ステップS606で、送信部324は、生成したE(N1),・・・,E(Nn)を情報処理装置50に送信する。
これにより、クラウド側では、個々のデータを知ることなく、暗号操作を行い、E(N1),・・・,E(Nn)を情報処理装置50に送信することができる。
図14は、実施例1における復号処理の一例を示すフローチャートである。図14に示すステップS701で、通信部502は、情報処理装置10からE(N1),・・・,E(Nn)を受信する。
ステップS702で、復号部504は、秘密鍵SKを用いて、暗号化されたE(N1),・・・,E(Nn)を復号する。これにより、N1,・・・,Nnが取得される。
ステップS703で、通信部502は、取得したN1,・・・,Nnを各Uiの装置に送信する。
これにより、クラウド側では、個々のデータを知ることなく、暗号操作を行い、N1,・・・,Nnを、復号処理を行う装置に送信することができる。このとき、各組織の装置は、データの追加、削除、更新などを容易に行うことができる。
なお、順位の決定処理については、データの受信相手が情報処理装置50になるところが異なり、他は図10と同じである。
《マスク値と準同型暗号とによる秘匿方法の場合》
図15は、実施例1における秘匿データ生成処理(その3)の一例を示すフローチャートである。以下に示す例は、組織Uiの装置で行われる処理の例である。組織Uiの装置には、データがn個保持されている。
図15に示すステップS801で、組織Uiの装置は、公開されている公開鍵PKを取得する。
ステップS802で、通信部206は、マスク値Ti1,・・・,Tinを受信する。ステップS803で、秘匿部204は、nの変数jに1を代入する。ステップS804で、秘匿部204は、式(2)を用いてNijを計算する。
ステップS805で、秘匿部204は、式(4)によりN'ijを計算する。ステップS806で、秘匿部204は、公開鍵PKによりE(N'ij)を計算する。ステップS807で、秘匿部204は、jに1を加算する。
ステップS808で、秘匿部204は、jがnより大きいかを判定する。j>nであれば(ステップS808−YES)ステップS809に進み、j>nでなければ(ステップS808−NO)ステップS804に戻る。
ステップS809で、通信部206は、生成された秘匿データE(N'i1),・・・,E(N'in)を情報処理装置10に送信する。
これにより、個々のデータそのものではないN'ijに対し、さらにそのN'ijを、暗号を用いて秘匿して、クラウド側に送信することができる。よって、秘密鍵を有する人は、個々のデータはマスクされているため、個々のデータを知ることができない。
図16は、実施例1における暗号操作処理(その3)の一例を示すフローチャートである。情報処理装置10は、クラウドのサーバとしての機能を果たす。
図16に示すステップS901で、受信部322は、各組織Uiから秘匿データE(N'ij)(j=1,・・・,n)を受信する。受信したデータは、記憶部304に記憶される。ステップS902で、暗号操作部306は、jに1を代入する。
ステップS903で、暗号操作部306は、各組織Uiの秘匿データを暗号加算する。暗号操作部306は、式(9)により、E(N'j)を計算する。
ステップS904で、暗号操作部306は、jに1を加算する。ステップS905で、暗号操作部306は、jがnより大きいかを判定する。j>nであれば(ステップS905−YES)ステップS906に進み、j>nでなければ(ステップS905−NO)ステップS903に戻る。
ステップS906で、送信部324は、生成したE(N1),・・・,E(Nn)を情報処理装置50に送信する。ここで、N'1=N1,・・・,N'n=Nnである。
なお、マスク値生成処理は、図7に示す処理と同様であり、鍵生成処理は、図11に示す処理と同様であり、復号処理は、図14に示す処理と同様である。順位決定処理は、データの受信相手が情報処理装置50になること以外は、図10に示す処理と同様である。
これにより、クラウド側では、個々のデータを知ることなく、暗号操作を行い、E(N1),・・・,E(Nn)を情報処理装置50に送信することができる。また、秘密鍵を有する人でも、個々のデータはマスクされているため、個々のデータを知ることができない。
以上、実施例1によれば、個々のデータを秘匿しつつ、全体における順位を計算することができる。
[実施例2]
次に、実施例2における秘匿計算システムについて説明する。実施例2では、どの秘匿方法を用いるかを、システムを制御する装置が決定する。この装置は、制御サーバとも呼ぶ。制御サーバは、秘匿したいデータのセキュリティ度に応じて、その秘匿方法を用いるかを決定する。
<システムとハードウェア>
実施例2における秘匿計算システムは、図1に示す秘匿計算システム1に制御サーバを追加する。制御サーバのハードウェアは、図2に示すハードウェアと同様である。
<機能>
図17は、実施例2における秘匿計算システム2内の各装置の機能構成の一例を示すブロック図である。図17に示す機能で、図3に示す機能と同様の機能を有するものは、同じ符号を付す。以下では、実施例2における主な機能について説明する。
(制御サーバ60)
制御サーバ60は、ネットワークを介して各装置と接続され、秘匿計算システム2を制御するサーバである。制御サーバ60は、秘匿制御部602を有する。
秘匿制御部602は、処理対象のデータのセキュリティ度に基づき、秘匿方法(i)〜(iii)のいずれを用いるかを決定する。秘匿制御部602は、決定した秘匿方法を、各組織Uiに通知する。
例えば、秘匿制御部602は、管理者などにより与えられた処理対象のセキュリティ度が「低」を示せば、秘匿方法(i)に決定し、セキュリティ度が「中」を示せば、秘匿方法(ii)に決定し、セキュリティ度が「高」を示せば、秘匿方法(iii)に決定する。
なお、秘匿制御部602は、秘匿方法(i)又は(iii)に決定した場合は、組織数mと取りうる値の数nを情報処理装置40に通知し、マスク値を生成させる。秘匿制御部602は、秘匿方法(ii)又は(iii)に決定した場合、情報処理装置50に通知し、公開鍵と秘密鍵とを生成させる。
秘匿制御部602は、処理対象データの取りうる値M1,M2,・・・,Mnを決定してもよい。例えば、テストの点数の場合は、0点から満点までの各点数がM1,・・・,Mnになり、売上などの場合は、所定単位毎に上限値までの値がM1,・・・,Mnになる。所定単位は、処理対象のお店や会社の規模に基づくが、例えば、10万単位、100万単位、1000万単位などである。秘匿制御部602は、決定した取りうる値をM1,・・・,Mnを各組織Ui及び各情報処理装置10、40、50に通知する。
制御サーバ60以外の各装置は、実施例1の各装置の機能と同様の機能を有する。なお、情報処理装置20の秘匿部204は、秘匿方法(i)〜(iii)のいずれも処理可能であり、秘匿制御部602により通知された秘匿方法で秘匿を行う。
[変形例]
なお、上記各実施例では、大きい値の方が、順位が高い実施例について説明したが、小さい値の方が、順位が高い場合は、式(2)のx<Mjをとなるデータの個数をカウントすればよい。
なお、前述した各実施例で説明した処理を実現するためのプログラムを記録媒体に記録することで、各実施例での処理をコンピュータに実施させることができる。例えば、このプログラムを記録媒体に記録し、このプログラムが記録された記録媒体をコンピュータに読み取らせて、前述した処理を実現させることも可能である。
なお、記録媒体は、CD−ROM、フレキシブルディスク、光磁気ディスク等の様に情報を光学的、電気的或いは磁気的に記録する記録媒体、ROM、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。この記録媒体には、搬送波は含まれない。
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。
なお、以上の各実施例に関し、さらに以下の付記を開示する。
(付記1)
1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して取得し、
取得されたデータ毎の前記秘匿データを、組織毎に記憶部に記憶し、
前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する処理をコンピュータに実行させるためのプログラム。
(付記2)
前記秘匿データは、前記処理対象データの個数にマスク値を加算して秘匿され、
前記マスク値は、前記所定範囲内のデータ毎の、各組織のマスク値の総和が0となる付記1記載のプログラム。
(付記3)
前記秘匿データは、暗号化データを加算操作すると、平文データが加算される準同型暗号を用いて暗号化される付記1記載のプログラム。
(付記4)
前記秘匿データは、前記マスク値が加算されたデータに対し、暗号化データを加算操作すると、平文データが加算される準同型暗号を用いて暗号化されたデータである付記2記載のプログラム。
(付記5)
前記データ毎の加算操作されたデータを、各組織の装置に送信する処理をさらにコンピュータに実行させるための付記1又は2に記載のプログラム。
(付記6)
1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象のデータの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して取得し、
取得されたデータ毎の秘匿データを、組織毎に記憶部に記憶し、
前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する処理をコンピュータが実行する情報処理方法。
(付記7)
1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して受信する受信部と、
前記受信部により受信されたデータ毎の秘匿データを、組織毎に記憶する記憶部と、
前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する操作部と
を備える情報処理装置。
(付記8)
1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数を秘匿して秘匿データを生成し、
前記秘匿データをサーバに送信し、
前記サーバにより各組織から受信された秘匿データに対し、前記所定範囲内のデータ毎に、前記サーバから各組織の秘匿データが加算操作されたデータを、又は前記加算操作されたデータを復号した装置から復号後のデータを受信し、
前記受信されたデータを用いて、前記各組織の全てのデータに対する前記処理対象データの順位を決定する処理をコンピュータに実行させるためのプログラム。
1、2 秘匿計算システム
10、20、30、40、50情報処理装置
60 制御サーバ
102 制御部
104 主記憶部
106 補助記憶部
204 秘匿部
206 通信部
208 順位決定部
302 通信部
304 記憶部
306 暗号操作部
602 秘匿制御部

Claims (7)

  1. 1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して取得し、
    取得されたデータ毎の前記秘匿データを、組織毎に記憶部に記憶し、
    前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する処理をコンピュータに実行させるためのプログラム。
  2. 前記秘匿データは、前記処理対象データの個数にマスク値を加算して秘匿され、
    前記マスク値は、前記所定範囲内のデータ毎の、各組織のマスク値の総和が0となる請求項1記載のプログラム。
  3. 前記秘匿データは、暗号化データを加算操作すると、平文データが加算される準同型暗号を用いて暗号化される請求項1記載のプログラム。
  4. 前記秘匿データは、前記マスク値が加算されたデータに対し、暗号化データを加算操作すると、平文データが加算される準同型暗号を用いて暗号化されたデータである請求項2記載のプログラム。
  5. 1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して取得し、
    取得されたデータ毎の秘匿データを、組織毎に記憶部に記憶し、
    前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する処理をコンピュータが実行する情報処理方法。
  6. 1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数が秘匿された秘匿データを、複数の組織の装置からネットワークを介して受信する受信部と、
    前記受信部により受信されたデータ毎の秘匿データを、組織毎に記憶する記憶部と、
    前記記憶部に記憶された所定範囲内のデータ毎に、各組織の秘匿データを加算操作する操作部と
    を備える情報処理装置。
  7. 1又は複数の処理対象データに対して、所定範囲内のデータ毎に、該データより大きい前記処理対象データの個数を秘匿して秘匿データを生成し、
    前記秘匿データをサーバに送信し、
    前記サーバにより各組織から受信された秘匿データに対し、前記所定範囲内のデータ毎に、前記サーバから各組織の秘匿データが加算操作されたデータを、又は前記加算操作されたデータを復号した装置から復号後のデータを受信し、
    前記受信されたデータを用いて、前記各組織の全てのデータに対する前記処理対象データの順位を決定する処理をコンピュータに実行させるためのプログラム。
JP2012077861A 2012-03-29 2012-03-29 プログラム、情報処理方法及び情報処理装置 Expired - Fee Related JP5799876B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012077861A JP5799876B2 (ja) 2012-03-29 2012-03-29 プログラム、情報処理方法及び情報処理装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012077861A JP5799876B2 (ja) 2012-03-29 2012-03-29 プログラム、情報処理方法及び情報処理装置

Publications (2)

Publication Number Publication Date
JP2013205796A JP2013205796A (ja) 2013-10-07
JP5799876B2 true JP5799876B2 (ja) 2015-10-28

Family

ID=49524895

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012077861A Expired - Fee Related JP5799876B2 (ja) 2012-03-29 2012-03-29 プログラム、情報処理方法及び情報処理装置

Country Status (1)

Country Link
JP (1) JP5799876B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3379768B1 (en) 2016-01-18 2019-11-06 Mitsubishi Electric Corporation Encryption device, encrypted text conversion device, encryption program, encrypted text conversion program, encryption method, and encrypted text conversion method
WO2019203262A1 (ja) * 2018-04-20 2019-10-24 日本電信電話株式会社 秘密集約順位システム、秘密計算装置、秘密集約順位方法、およびプログラム
CN114444106B (zh) 2022-02-07 2023-03-17 百度在线网络技术(北京)有限公司 相关系数获取方法、装置、电子设备和存储介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3204317B2 (ja) * 1998-12-28 2001-09-04 日本電気株式会社 電子入札システム
JP2002352037A (ja) * 2001-05-23 2002-12-06 Ntt Data Corp 順位付け方法、抽選サーバ、端末及びプログラム
JP2003141385A (ja) * 2001-10-30 2003-05-16 Nippon Telegr & Teleph Corp <Ntt> 電子入札方法、その装置、そのプログラム及び記録媒体
US7305378B2 (en) * 2004-07-16 2007-12-04 International Business Machines Corporation System and method for distributed privacy preserving data mining
US7856100B2 (en) * 2005-12-19 2010-12-21 Microsoft Corporation Privacy-preserving data aggregation using homomorphic encryption

Also Published As

Publication number Publication date
JP2013205796A (ja) 2013-10-07

Similar Documents

Publication Publication Date Title
Zhang et al. Lattice-based proxy-oriented identity-based encryption with keyword search for cloud storage
EP3779717B1 (en) Multiparty secure computing method, device, and electronic device
Li et al. Privacy-preserving machine learning with multiple data providers
WO2020034754A1 (zh) 多方安全计算方法及装置、电子设备
TW202013928A (zh) 多方安全計算方法及裝置、電子設備
CN107077469B (zh) 服务器装置、检索系统、终端装置以及检索方法
WO2017061024A1 (ja) 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
JP2016512611A (ja) プライバシー保護リッジ回帰
Sun et al. A searchable personal health records framework with fine-grained access control in cloud-fog computing
CN111510281A (zh) 一种同态加密方法及装置
WO2014007296A1 (ja) 順序保存暗号化システム、暗号化装置、復号化装置、暗号化方法、復号化方法およびこれらのプログラム
JPWO2019215818A1 (ja) 登録装置、サーバ装置、秘匿検索システム、秘匿検索方法、登録プログラムおよびサーバプログラム
CN111555880A (zh) 数据碰撞方法、装置、存储介质及电子设备
Will et al. Secure voting in the cloud using homomorphic encryption and mobile agents
JP2019168590A (ja) 情報処理方法及び情報処理システム
JP2015056820A (ja) 情報の暗号化・復号化方法、情報提供システムおよびプログラム
JP5799876B2 (ja) プログラム、情報処理方法及び情報処理装置
EP3644545B1 (en) Apparatus and method for encryption and decryption
JP5724720B2 (ja) 情報処理方法及び装置、並びにコンピュータシステム
Almishari et al. Privacy-preserving matching of community-contributed content
Zhou et al. A novel privacy protection scheme for internet of things based on blockchain and privacy set intersection technique
Armour et al. Subverting Deniability
WO2022244226A1 (ja) セキュア結合システム、情報処理装置、セキュア結合方法、及びプログラム
JP4611769B2 (ja) 電子調達入札方法、電子調達入札システム、および電子調達入札プログラム
JP6232629B2 (ja) 汎用秘匿関数計算システム、デ−タ処理装置、汎用秘匿関数計算方法、汎用秘匿関数計算プログラム、および、記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150715

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150728

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150810

R150 Certificate of patent or registration of utility model

Ref document number: 5799876

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees