(57)【特許請求の範囲】
【請求項１】
共通パラメータｐｐを受信する受信部と、
前記共通パラメータｐｐを用いて公開鍵と秘密鍵を生成する鍵生成部とを有し、
前記共通パラメータｐｐには、少なくとも、
多項式環Ｒ＝Ｚ［Ｘ］／＜ＸＮ＋１＞と、
前記多項式環Ｒ上の分布χと、
パラメータλに依存して決定される２以上の整数である整数ｑと、
任意の２の冪数であるＮとが含まれ、
前記鍵生成部は、
前記分布χから多項式ｓ’を選択し、選択した多項式ｓ’をベクトル化してベクトルｓを取得し、
前記多項式環Ｒの要素である多項式の複数の係数の各々を前記整数ｑで除算して得られる余りが複数の係数の各々である多項式を要素にもつ多項式環ＲｑからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルａを取得し、
前記分布χからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルｅを取得し、
任意の整数ｐを用いて、ｂ＝ｓ’ａ＋ｐｅを計算して、ベクトルｂを取得し、
前記ベクトルｂとベクトル（−ａ）とを連結して、Ｎ×２の行列Ａ１を前記公開鍵として生成し、前記ベクトルｓと前記行列Ａ１とを用いて前記秘密鍵を生成するデータ利用者鍵生成装置。
【請求項２】
前記鍵生成部は、
データ暗号化のための暗号化鍵として用いることができ、更に、準同型演算のコミットメント鍵を生成することができる行列を、前記行列Ａ１として生成する請求項１に記載のデータ利用者鍵生成装置。
【請求項３】
前記行列Ａ１から抽出された一部の行列の転置行列Ａ２’を用いて前記コミットメント鍵が生成できる請求項２に記載のデータ利用者鍵生成装置。
【請求項４】
プロセッサが、共通パラメータｐｐを受信し、受信した前記共通パラメータｐｐを用いて公開鍵と秘密鍵を生成する鍵生成方法であって、
前記共通パラメータｐｐには、少なくとも、
多項式環Ｒ＝Ｚ［Ｘ］／＜ＸＮ＋１＞と、
前記多項式環Ｒ上の分布χと、
パラメータλに依存して決定される２以上の整数である整数ｑと、
任意の２の冪数であるＮとが含まれ、
前記プロセッサは、
前記分布χから多項式ｓ’を選択し、選択した多項式ｓ’をベクトル化してベクトルｓを取得し、
前記多項式環Ｒの要素である多項式の複数の係数の各々を前記整数ｑで除算して得られる余りが複数の係数の各々である多項式を要素にもつ多項式環ＲｑからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルａを取得し、
前記分布χからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルｅを取得し、
任意の整数ｐを用いて、ｂ＝ｓ’ａ＋ｐｅを計算して、ベクトルｂを取得し、
前記ベクトルｂとベクトル（−ａ）とを連結して、Ｎ×２の行列Ａ１を前記公開鍵として生成し、前記ベクトルｓと前記行列Ａ１とを用いて前記秘密鍵を生成する鍵生成方法。
【請求項５】
共通パラメータｐｐを受信する受信処理と、前記共通パラメータｐｐを用いて公開鍵と秘密鍵を生成する鍵生成処理とをプロセッサに実行させる鍵生成プログラムであって、
前記共通パラメータｐｐには、少なくとも、
多項式環Ｒ＝Ｚ［Ｘ］／＜ＸＮ＋１＞と、
前記多項式環Ｒ上の分布χと、
パラメータλに依存して決定される２以上の整数である整数ｑと、
任意の２の冪数であるＮとが含まれ、
前記鍵生成処理には、
前記分布χから多項式ｓ’を選択し、選択した多項式ｓ’をベクトル化してベクトルｓを取得する処理と、
前記多項式環Ｒの要素である多項式の複数の係数の各々を前記整数ｑで除算して得られる余りが複数の係数の各々である多項式を要素にもつ多項式環ＲｑからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルａを取得する処理と、
前記分布χからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルｅを取得する処理と、
任意の整数ｐを用いて、ｂ＝ｓ’ａ＋ｐｅを計算して、ベクトルｂを取得する処理と、
前記ベクトルｂとベクトル（−ａ）とを連結して、Ｎ×２の行列Ａ１を前記公開鍵として生成し、前記ベクトルｓと前記行列Ａ１とを用いて前記秘密鍵を生成する処理とが含まれる鍵生成プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データの暗号化に関する。
【背景技術】
【０００２】
データの暗号化方式として準同型暗号方式（以下、単に「準同型暗号」という）がある。
準同型暗号は、データを暗号化したまま演算ができる暗号化技術である。データを暗号文のまま演算する処理は準同型演算と呼ばれ、準同型演算することが可能な演算の種類及び演算の回数は個々の方式によって異なる。準同型暗号を用いることにより、クラウドサーバなどに、秘匿された状態のデータについての分析を委託することが可能となる。【０００３】
非特許文献１では、検証可能準同型暗号が説明されている。非特許文献１では、例えば、加法について準同型演算が可能な準同型暗号が利用され、データ供給者からの暗号文データの収集と、収集した暗号文データに対する準同型演算を用いた計算をクラウドサーバなどを用いたアグリゲータに委託する。データ利用者は、最終的な計算結果のみを入手することができ、また、委託した準同型演算が正しく実行されたことを検証することができる。
【先行技術文献】
【非特許文献】
【０００４】
【非特許文献１】Ｋ．Ｏｈａｒａ，Ｙ．Ｓａｋａｉ，Ｆ．Ｙｏｓｈｉｄａ，Ｍ．Ｉｗａｍｏｔｏ，ａｎｄ  Ｋ．Ｏｈａｔａ．  “Ｐｒｉｖａｃｙ−Ｐｒｅｓｅｒｖｉｎｇ  Ｓｍａｒｔ  Ｍｅｔｅｒｉｎｇ  ｗｉｔｈ  Ｖｅｒｉｆｉａｂｉｌｉｔｙ  ｆｏｒ  ｂｏｔｈ  Ｂｉｌｌｉｎｇ  ａｎｄ  Ｅｎｅｒｇｙ  Ｍａｎａｇｅｍｅｎｔ”，ＡｓｉａＰＫＣ＠ＡｓｉａＣＣＳ，ｐｐ２３−３２，ＡＣＭ，２０１４
【発明の概要】
【発明が解決しようとする課題】
【０００５】
非特許文献１に記載の方法では、暗号化装置への入力として、署名鍵と公開鍵の他にコミットメント鍵と呼ばれる鍵が必要である。【０００６】
本発明は、暗号化装置へのコミットメント鍵の入力が不要な構成を実現することを主な目的とする。
【課題を解決するための手段】
【０００７】
本発明に係るデータ利用者鍵生成装置は、
共通パラメータｐｐを受信する受信部と、
前記共通パラメータｐｐを用いて鍵を生成する鍵生成部とを有し、
前記共通パラメータｐｐには、少なくとも、
多項式環Ｒ＝Ｚ［Ｘ］／＜ＸＮ＋１＞と、
前記多項式環Ｒ上の分布χと、
パラメータλに依存して決定される２以上の整数である整数ｑと、
任意の２の冪数であるＮとが含まれ、
前記鍵生成部は、
前記分布χから多項式ｓ’を選択し、選択した多項式ｓ’をベクトル化してベクトルｓを取得し、
前記多項式環Ｒの要素である多項式の複数の係数の各々を前記整数ｑで除算して得られる余りが複数の係数の各々である多項式を要素にもつ多項式環ＲｑからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルａを取得し、
前記分布χからＮ個の多項式を選択し、選択した前記Ｎ個の多項式をベクトル化してベクトルｅを取得し、
任意の整数ｐを用いて、ｂ＝ｓ’ａ＋ｐｅを計算して、ベクトルｂを取得し、
前記ベクトルｂとベクトル（−ａ）とを連結して、Ｎ×２の行列Ａ１を生成する。
【発明の効果】
【０００８】
以上のようにして生成された行列Ａ１は暗号化鍵として用いることができるとともに、コミットメント鍵の生成が可能である。このため、本発明によれば、暗号化装置へのコミットメント鍵の入力が不要となる。
【図面の簡単な説明】
【０００９】
【図１】実施の形態１に係る秘匿情報処理システムの構成例を示す図。
【図２】実施の形態１に係る共通パラメータ生成装置の機能構成例を示す図。
【図３】実施の形態１に係るデータ供給者鍵生成装置の機能構成例を示す図。
【図４】実施の形態１に係るデータ利用者鍵生成装置の機能構成例を示す図。
【図５】実施の形態１に係る暗号化装置の機能構成例を示す図。
【図６】実施の形態１に係る準同型演算装置の機能構成例を示す図。
【図７】実施の形態１に係る復号装置の機能構成例を示す図。
【図８】実施の形態１に係る共通パラメータ生成装置の動作例を示すフローチャート。
【図９】実施の形態１に係るデータ供給者鍵生成装置の動作例を示すフローチャート。
【図１０】実施の形態１に係るデータ利用者鍵生成装置の動作例を示すフローチャート。
【図１１】実施の形態１に係る暗号化装置の動作例を示すフローチャート。
【図１２】実施の形態１に係る準同型演算装置の動作例を示すフローチャート。
【図１３】実施の形態１に係る復号装置の動作例を示すフローチャート。
【図１４】実施の形態１に係る共通パラメータ生成装置のハードウェア構成例を示す図。
【図１５】実施の形態１に係るデータ供給者鍵生成装置のハードウェア構成例を示す図。
【図１６】実施の形態１に係るデータ利用者鍵生成装置のハードウェア構成例を示す図。
【図１７】実施の形態１に係る暗号化装置のハードウェア構成例を示す図。
【図１８】実施の形態１に係る準同型演算装置のハードウェア構成例を示す図。
【図１９】実施の形態１に係る復号装置のハードウェア構成例を示す図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施の形態について、図を用いて説明する。以下の実施の形態の説明及び図面において、同一の符号を付したものは、同一の部分又は相当する部分を示す。
【００１１】
実施の形態１．
＊＊＊構成の説明＊＊＊
図１は、本実施の形態に係る秘匿情報処理システム１００の構成例を示す。
【００１２】
図１に示すように、秘匿情報処理システム１００は、共通パラメータ生成装置２００と、複数のデータ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、複数の暗号化装置５００と、準同型演算装置６００と、復号装置７００とを有する。
【００１３】
インターネット１０１は、共通パラメータ生成装置２００と、データ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、暗号化装置５００と、準同型演算装置６００と、復号装置７００とを接続する通信路である。インターネット１０１はネットワークの例である。インターネット１０１の代わりに、他の種類のネットワークが用いられてもよい。
【００１４】
共通パラメータ生成装置２００は、例えば、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）である。
共通パラメータ生成装置２００は、秘匿情報処理システム１００で共通に用いられるパラメータである共通パラメータを生成する。更に、共通パラメータ生成装置２００は、生成した共通パラメータを、インターネット１０１を介して、複数のデータ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、複数の暗号化装置５００と、準同型演算装置６００と、復号装置７００へ送信する。
【００１５】
データ供給者鍵生成装置３００は、例えば、ＰＣである。
データ供給者鍵生成装置３００は、署名鍵と検証鍵を生成する。そして、データ供給者鍵生成装置３００は、署名鍵を暗号化装置５００へ送信する。また、データ供給者鍵生成装置３００は、検証鍵を、復号装置７００へ送信する。
【００１６】
データ利用者鍵生成装置４００は、例えば、ＰＣである。
データ利用者鍵生成装置４００は、公開鍵と秘密鍵を生成する。そして、データ利用者鍵生成装置４００は、公開鍵を暗号化装置５００へ送信する。また、データ利用者鍵生成装置４００は、秘密鍵を復号装置７００へ送信する。
【００１７】
暗号化装置５００は、例えば、ＰＣである。
暗号化装置５００は、データ供給者鍵生成装置３００から署名鍵を受信する。また、暗号化装置５００は、データ利用者鍵生成装置４００から公開鍵を受信する。そして、暗号化装置５００は、外部から入力された平文データ（以下、単に「平文」という）を公開鍵及び署名鍵を用いて暗号化し、暗号化により得られた暗号文データ（以下、単に「暗号文」という）を出力する。
【００１８】
準同型演算装置６００は、例えば、大容量の記憶媒体を持つ計算機である。
準同型演算装置６００は、データ保管装置としても機能する。
すなわち、準同型演算装置６００は、暗号化装置５００から暗号文の保管要求があれば、暗号文を保管する。
準同型演算装置６００は、保管している暗号文に対して準同型演算を行う。準同型演算装置６００は、保管している暗号文と、入力された演算から、演算後暗号文を生成する。また、準同型演算装置６００は、演算後暗号文を復号装置７００へ送信する。
【００１９】
復号装置７００は、例えば、ＰＣである。
復号装置７００は、データ供給者鍵生成装置３００から検証鍵を受信する。また、復号装置７００は、データ利用者鍵生成装置４００から秘密鍵を受信する。また、復号装置７００は、準同型演算装置６００から演算後暗号文を受信する。そして、復号装置７００は、外部から入力された演算と、秘密鍵と、検証鍵とを用いて、演算後暗号文の復号結果を出力する。
【００２０】
なお、図１では、データ供給者鍵生成装置３００と暗号化装置５００が異なる計算機で実現されている。データ供給者鍵生成装置３００と暗号化装置５００とが同じ計算機で実現されていてもよい。つまり、単一のＰＣにデータ供給者鍵生成装置３００の機能と暗号化装置５００の機能とが含まれていてもよい。
０００００
また、図１では、共通パラメータ生成装置２００と、データ利用者鍵生成装置４００と、復号装置７００とが異なる計算機で実現されている。共通パラメータ生成装置２００と、データ利用者鍵生成装置４００と、復号装置７００のうちの少なくとも２つが同じ計算機で実現されていてもよい。つまり、単一のＰＣに共通パラメータ生成装置２００の機能とデータ利用者鍵生成装置４００の機能と復号装置７００の機能のうちの少なくとも２つが含まれていてもよい。
【００２１】
図２は、共通パラメータ生成装置２００の機能構成例を示す。
【００２２】
図２に示すように、共通パラメータ生成装置２００は、入力部２０１と、共通パラメータ生成部２０２と、送信部２０３を有する。
図示していないが、共通パラメータ生成装置２００は、共通パラメータ生成装置２００の各要素で使用されるデータを記憶する記憶装置を有する。
【００２３】
入力部２０１は、パラメータλを受信する。そして、入力部２０１は、受信したパラメータλを共通パラメータ生成部２０２へ送信する。
【００２４】
共通パラメータ生成部２０２は、入力部２０１からパラメータλを受信する。そして、共通パラメータ生成部２０２は、パラメータλを用いて、秘匿情報処理システム１００で共通に用いられる共通パラメータｐｐを生成する。共通パラメータ生成部２０２は、生成した共通パラメータｐｐを送信部２０３へ送信する。
図示していないが、共通パラメータ生成部２０２は、共通パラメータｐｐを生成するために、乱数生成機能を有してもよい。
【００２５】
送信部２０３は、共通パラメータ生成部２０２で生成された共通パラメータｐｐを、複数のデータ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、複数の暗号化装置５００と、準同型演算装置６００と、復号装置７００へ送信する。
【００２６】
図３は、データ供給者鍵生成装置３００の機能構成例を示す。
【００２７】
図３に示すように、データ供給者鍵生成装置３００は、受信部３０１と、鍵生成部３０２と、送信部３０３を有する。
図示していないが、データ供給者鍵生成装置３００は、データ供給者鍵生成装置３００の各要素で使用されるデータを記憶する記憶装置を有する。
【００２８】
受信部３０１は、共通パラメータ生成装置２００から共通パラメータｐｐを受信する。そして、受信部３０１は、共通パラメータｐｐを鍵生成部３０２へ送信する。
【００２９】
鍵生成部３０２は、受信部３０１から共通パラメータｐｐを受信する。そして、鍵生成部３０２は、共通パラメータｐｐを用いて、署名鍵ｓｓｋと検証鍵ｓｐｋを生成する。そして、鍵生成部３０２は、生成した署名鍵ｓｓｋと検証鍵ｓｐｋを送信部３０３へ送信する。
図示していないが、鍵生成部３０２は、署名鍵ｓｓｋと検証鍵ｓｐｋを生成するために、乱数生成機能を有してもよい。
【００３０】
送信部３０３は、鍵生成部３０２で生成された署名鍵ｓｓｋを、暗号化装置５００へ送信する。
また、送信部３０３は、鍵生成部３０２で生成された検証鍵ｓｐｋを復号装置７００へ送信する。
【００３１】
図４は、データ利用者鍵生成装置４００の機能構成例を示す。
データ利用者鍵生成装置４００の動作手順は、鍵生成方法に相当する。また、データ利用者鍵生成装置４００の動作を実現するプログラムは、鍵生成プログラムに相当する。
【００３２】
図４に示すように、データ利用者鍵生成装置４００は、受信部４０１と、鍵生成部４０２と、送信部４０３を有する。
図示していないが、データ利用者鍵生成装置４００は、データ利用者鍵生成装置４００の各要素で使用されるデータを記憶する記憶装置を有する。
【００３３】
受信部４０１は、共通パラメータ生成装置２００から共通パラメータｐｐを受信する。そして、受信部４０１は、受信した共通パラメータｐｐを鍵生成部４０２へ送信する。
受信部４０１により行われる処理は受信処理に相当する。
【００３４】
鍵生成部４０２は、受信部４０１から共通パラメータｐｐを受信する。そして、鍵生成部４０２は、共通パラメータｐｐを用いて、公開鍵ｖｐｋと秘密鍵ｖｓｋを生成する。そして、鍵生成部４０２は、生成した公開鍵ｖｐｋと秘密鍵ｖｓｋを送信部４０３へ送信する。
図示していないが、鍵生成部４０２は、公開鍵ｖｐｋと秘密鍵ｖｓｋを生成するために、乱数生成機能を有してもよい。
鍵生成部４０２により行われる処理は鍵生成処理に相当する。
【００３５】
送信部４０３は、鍵生成部４０２で生成された公開鍵ｖｐｋを、暗号化装置５００へ送信する。また、送信部４０３は、鍵生成部４０２で生成された秘密鍵ｖｓｋを復号装置７００へ送信する。
【００３６】
図５は、暗号化装置５００の機能構成例を示す。
【００３７】
図５に示すように、暗号化装置５００は、受信部５０１と、鍵保管部５０２と、入力部５０３と、暗号化部５０４と、送信部５０５を有する。
図示していないが、暗号化装置５００は、暗号化装置５００の各要素で使用されるデータを記憶する記憶装置を有する。
【００３８】
受信部５０１は、データ供給者鍵生成装置３００から署名鍵ｓｓｋを受信する。また、受信部５０１は、データ利用者鍵生成装置４００から公開鍵ｖｐｋを受信する。そして、受信部５０１は、受信した署名鍵ｓｓｋと公開鍵ｖｐｋを鍵保管部５０２へ送信する。
【００３９】
鍵保管部５０２は、受信部５０１から、署名鍵ｓｓｋと公開鍵ｖｐｋを受信し、受信した署名鍵ｓｓｋと公開鍵ｖｐｋを保管する。
【００４０】
入力部５０３は、外部から平文ｍを受信する。そして、入力部５０３は、受信した平文ｍを暗号化部５０４へ送信する。
【００４１】
暗号化部５０４は、鍵保管部５０２から署名鍵ｓｓｋと公開鍵ｖｐｋを受信する。また、暗号化部５０４は、入力部５０３から平文ｍを受信する。そして、暗号化部５０４は、受信した平文ｍに、署名鍵ｓｓｋと公開鍵ｖｐｋと適用して、暗号文ｃを生成する。そして、暗号化部５０４は、生成した暗号文ｃを送信部５０５へ送信する。
図示していないが、暗号化部５０４は、暗号文ｃを生成するために、乱数生成機能を有してもよい。
【００４２】
送信部５０５は、暗号化部５０４で生成された暗号文ｃを、準同型演算装置６００へ送信する。
【００４３】
図６は、準同型演算装置６００の機能構成例を示す。
図６に示すように、準同型演算装置６００は、受信部６０１と、暗号文保管部６０２と、入力部６０３と、準同型演算部６０４と、送信部６０５を有する。
図示していないが、準同型演算装置６００は、準同型演算装置６００の各要素で使用されるデータを記憶する記憶装置を有する。
【００４４】
受信部６０１は、暗号化装置５００から暗号文ｃを受信する。そして、受信部６０１は、受信した暗号文ｃを暗号文保管部６０２へ送信する。
【００４５】
暗号文保管部６０２は、受信部６０１から暗号文ｃを受信し、受信した暗号文ｃを保管する。
【００４６】
入力部６０３は、外部から演算ｆを受信し、受信した演算ｆを準同型演算部６０４へ送信する。
【００４７】
準同型演算部６０４は、暗号文保管部６０２から複数の暗号文ｃと、入力部６０３から演算ｆを受信する。そして、準同型演算部６０４は、複数の暗号文ｃに演算ｆを行って、演算後暗号文ｃ＊を生成し、生成した演算後暗号文ｃ＊を送信部６０５へ送信する。
【００４８】
送信部６０５は、準同型演算部６０４で生成された演算後暗号文ｃ＊を、復号装置７００へ送信する。
【００４９】
図７は、復号装置７００の機能構成例を示す。
【００５０】
図７に示すように、復号装置７００は、受信部７０１と、鍵保管部７０２と、入力部７０３と、復号処理部７０４と、送信部７０５を有する。
図示していないが、復号装置７００は、復号装置７００の各要素で使用されるデータを記憶する記憶装置を有する。
【００５１】
受信部７０１は、データ供給者鍵生成装置３００から検証鍵ｓｐｋを受信する。また、受信部７０１は、データ利用者鍵生成装置４００から秘密鍵ｖｓｋを受信する。そして、受信部７０１は、受信した検証鍵ｓｐｋと秘密鍵ｖｓｋとを鍵保管部７０２へ送信する。
また、受信部７０１は、準同型演算装置６００から演算後暗号文ｃ＊を受信し、受信した演算後暗号文ｃ＊を復号処理部７０４へ送信する。
【００５２】
鍵保管部７０２は、受信部７０１から検証鍵ｓｐｋと秘密鍵ｖｓｋを受信し、受信した検証鍵ｓｐｋと秘密鍵ｖｓｋを保管する。
【００５３】
入力部７０３は、外部から演算ｆを受信し、受信した演算ｆを復号処理部７０４へ送信する。
【００５４】
復号処理部７０４は、鍵保管部７０２から検証鍵ｓｐｋと秘密鍵ｖｓｋと、演算後暗号文ｃ＊とを受信する。また、復号処理部７０４は、入力部７０３から演算ｆを受信する。そして、復号処理部７０４は、受信した演算後暗号文ｃ＊に検証鍵ｓｐｋと秘密鍵ｖｓｋと演算ｆを適用して、復号結果ｍ＊を生成し、生成した復号結果ｍ＊を送信部７０５へ送信する。
【００５５】
送信部８０５は、復号処理部８０４で生成された復号結果ｍ＊を出力する。
【００５６】
＊＊＊動作の説明＊＊＊
次に、本実施の形態に係る秘匿情報処理システム１００に含まれる各装置の動作例を説明する。
なお、各装置の動作例を説明する前に、以下で説明における記法と定義を説明する。
【００５７】
非特許文献１に記載の方法は、離散対数に基づく暗号方式を用いて構成されている。しかし、このような暗号方式は、量子コンピュータが実用化された場合、安全性が失われてしまうことが知られている。本実施の形態では、量子コンピュータに対しても耐性があるとされている格子暗号が用いられる。このように、本実施の形態においては、耐量子性を持つ任意の電子署名方式を利用できるため、利用する電子署名アルゴリズムを一般化して（Ｇｅｎ，Ｓｉｇ，Ｖｅｒ）として表す。
［ａ｜｜ｂ］は、ベクトルまたは行列ａとベクトルまたは行列ｂとの連結を表す。
行列Ａに対してＡＴを、行列Ａに対する転置行列とする。
自然数ｎに対してＩｎを（ｎ×ｎ）の単位行列とする。
任意の自然数ｎと多項式環Ｒに対して、Ｒｎを多項式環Ｒの要素である多項式の複数の係数の各々をｎで除算して得られた余りが複数の係数の各々である多項式を要素に持つ多項式環とする。
【００５８】
図８は、共通パラメータ生成装置２００の動作例を示すフローチャートである。
【００５９】
ステップＳ２０１において、入力部２０１は、パラメータλを受信し、受信したパラメータλを共通パラメータ生成部２０２へ送信する。
【００６０】
ステップＳ２０２において、共通パラメータ生成部２０２は、パラメータλをもとにセットアップアルゴリズムＳｅｔｕｐを実行し、共通パラメータｐｐを生成する。そして、共通パラメータ生成部２０２は、生成した共通パラメータｐｐを送信部２０３へ送信する。
セットアップアルゴリズムＳｅｔｕｐは、例えば、以下のような、共通パラメータｐｐを生成するアルゴリズムである。
【００６１】
Ｓｅｔｕｐ（１λ）：
ｑをパラメータλに依存して決定される２以上の整数とする。
Ｎを任意の２の冪数とし、ｋを（Ｎ＋２）以下の整数とする。
χを、多項式環Ｒ＝Ｚ［Ｘ］／＜ＸＮ＋１＞上の分布とする。なお、多項式環Ｒに含まれる「Ｚ」はベクトルである。
βを任意の整数ｐ以下の小さな整数とする。
共通パラメータｐｐ＝（λ，ｑ，Ｎ，ｋ，β，Ｒ，χ）とする。
【００６２】
ステップＳ２０３において、送信部２０３は、共通パラメータｐｐを、複数のデータ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、複数の暗号化装置５００と、準同型演算装置６００と、復号装置７００へ送信する。
【００６３】
図９は、データ供給者鍵生成装置３００の動作例を示すフローチャートである。
【００６４】
ステップＳ３０１において、受信部３０１は、共通パラメータ生成装置２００から共通パラメータｐｐを受信し、受信した共通パラメータｐｐを鍵生成部３０２へ送信する。
【００６５】
ステップＳ３０２において、鍵生成部３０２は、共通パラメータｐｐをもとにデータ供給者鍵生成アルゴリズムＳＫＧｅｎを実行し、署名鍵ｓｓｋと検証鍵ｓｐｋを生成する。
そして、鍵生成部３０２は、生成した署名鍵ｓｓｋと検証鍵ｓｐｋを送信部３０３へ送信する。
データ供給者鍵生成アルゴリズムＳＫＧｅｎは、例えば、以下のような、署名鍵ｓｓｋと検証鍵ｓｐｋを生成するアルゴリズムである。
【００６６】
ＳＫＧｅｎ（ｐｐ）：
署名鍵生成アルゴリズムＳｉｇ（１λ）を実行し、生成された署名鍵ｓｋと検証鍵ｐｋを、ＳＫＧｅｎアルゴリズムの出力（ｓｓｋ，ｓｐｋ）＝（ｓｋ，ｐｋ）として出力する。
【００６７】
ステップＳ３０３において、送信部３０３は、鍵生成部３０２で生成された署名鍵ｓｓｋを暗号化装置５００へ送信し、検証鍵ｓｐｋを復号装置７００へ送信する。
【００６８】
図１０は、データ利用者鍵生成装置４００の動作例を示すフローチャートである。
【００６９】
ステップＳ４０１において、受信部４０１は、共通パラメータ生成装置２００から共通パラメータｐｐを受信し、受信した共通パラメータｐｐを鍵生成部４０２へ送信する。
【００７０】
ステップＳ４０２において、鍵生成部４０２は、共通パラメータｐｐをもとにデータ利用者鍵生成アルゴリズムＶＫＧｅｎを実行し、公開鍵ｖｐｋと秘密鍵ｖｓｋを生成する。
そして、鍵生成部４０２は、生成した公開鍵ｖｐｋと秘密鍵ｖｓｋを送信部４０３へ送信する。
データ利用者鍵生成アルゴリズムＶＫＧｅｎは、例えば、以下のような、公開鍵ｖｐｋと秘密鍵ｖｓｋを生成するアルゴリズムである。
【００７１】
ＶＫＧｅｎ（ｐｐ）：
分布χから多項式ｓ’を選択し、ｓ＝［１｜｜ｓ’］により、選択した多項式ｓ’をベクトル化してベクトルｓを取得する。
多項式環ＲｑからＮ個の多項式をランダムに選択し、選択したＮ個の多項式をベクトル化してベクトルａを取得する。
分布χからＮ個の多項式を選択し、選択したＮ個の多項式をベクトル化してベクトルｅを取得する。
整数ｐを用いて、ｂ＝ｓ’ａ＋ｐｅを計算して、ベクトルｂを取得する。
Ａ１＝［ｂ｜｜−ａ］により、ベクトルｂとベクトル（−ａ）とを連結して、（Ｎ×２）の行列Ａ１を生成する。
（ｖｐｋ，ｖｓｋ）＝（Ａ１，（ｓ，Ａ１））を出力する。つまり、行列Ａ１はそのまま公開鍵ｖｐｋとして用いられる。
【００７２】
ステップＳ４０３において、送信部４０３は、鍵生成部４０２で生成された公開鍵ｖｐｋを暗号化装置５００へ送信し、秘密鍵ｖｓｋを復号装置７００へ送信する。
なお、後述するように、暗号化装置５００は、公開鍵ｖｐｋ、つまり行列Ａ１を、データ暗号化のための暗号化鍵として用いることができ、更に、行列Ａ１から準同型演算のコミットメント鍵を生成することができる。
【００７３】
図１１は、暗号化装置５００の動作例を示すフローチャートである。
【００７４】
ステップＳ５０１において、受信部５０１は、データ供給者鍵生成装置３００から署名鍵ｓｓｋを受信し、データ利用者鍵生成装置４００から公開鍵ｖｐｋを受信する。そして、受信部５０１は、受信した署名鍵ｓｓｋと公開鍵ｖｐｋを鍵保管部５０２へ送信する。
【００７５】
ステップＳ５０２において、鍵保管部５０２は、署名鍵ｓｓｋと公開鍵ｖｐｋを受信し、受信した署名鍵ｓｓｋと公開鍵ｖｐｋを保管する。
【００７６】
ステップＳ５０３において、入力部５０３は、平文ｍを受信し、受信した平文ｍを暗号化部５０４へ送信する。
【００７７】
ステップＳ５０４において、暗号化部５０４は、署名鍵ｓｓｋと公開鍵ｖｐｋと平文ｍをもとに暗号化アルゴリズムＥｎｃを実行し、暗号文ｃを生成する。そして、暗号化部５０４は、生成した暗号文ｃを送信部５０５へ送信する。
暗号化アルゴリズムＥｎｃは、例えば、以下のような、暗号文ｃを生成するアルゴリズムである。
【００７８】
Ｅｎｃ（ｓｓｋ，ｖｐｋ，ｍ∈Ｒｑ）：
任意の文字列からなるタグｔを生成する。タグｔは暗号文ｃごとに一意に生成される必要がある。タグｔは、例えば、署名鍵ｓｓｋに対応するｉｎｄｅｘと暗号文ｃの生成時刻から生成される。
暗号文ｃは次の要素（ｃ１，｛ｃ２．１，…，ｃ２．ｋ｝，Ｃ，σ）と署名鍵ｓｓｋに対応するｉｎｄｅｘから構成される。
１．多項式環Ｒ２からＮ個の多項式をランダムに選択し、選択した多項式をベクトル化してベクトルｒ１を取得する。
ｃ１＝［ｍ｜｜０］＋（Ａ１）Ｔ・ｒ１により、ベクトルｃ１を取得する。
２．多項式環Ｒから係数の最大値がβ以下となる多項式をｋ個ランダムに選択し、選択結果をｒ２＝（ｒ２．１，…，ｒ２．ｋ）と定義する。
（Ｎ×２）の行列である行列Ａ１（公開鍵ｖｐｋ）から、任意の位置の（ｋ−２）×２の行列を抽出し、抽出した行列を転置して、行列Ａ２’を取得する。
Ａ２＝［Ｉ２｜｜Ａ２’］により行列Ａ２を取得する。
Ｃ＝Ａ２・ｒ２＋［０｜｜ｍ］により、コミットメント鍵Ｃを取得する。
３．｛１，…，ｋ｝の全ての要素ｉに対して、以下を行う。
多項式環Ｒ２からＮ個の多項式をランダムに選択し、選択した多項式をベクトル化しベクトルｒ３．ｉを取得する。
ｃ２．ｉ＝［ｒ２．ｉ｜｜０］＋（Ａ１）Ｔ・ｒ３．ｉを計算する。
４．署名アルゴリズムＳｉｇ（ｓｓｋ，Ｃ｜｜ｔ）を実行し、実行結果を署名σとして取得する。
最後に、署名鍵ｓｓｋに対応するｉｎｄｅｘと暗号文ｃ（ｃ１，（ｃ２．１，…，ｃ２．ｋ），Ｃ，σ）を出力する。
【００７９】
ステップＳ５０５において、送信部５０５は、暗号化部５０４で生成された暗号文ｃを、準同型演算装置６００へ送信する。
【００８０】
図１２は、準同型演算装置６００の動作例を示すフローチャートである。
【００８１】
ステップＳ６０１において、受信部６０１は、暗号化装置５００から暗号文ｃを受信し、受信した暗号文ｃを暗号文保管部６０２へ送信する。
【００８２】
ステップＳ６０２において、暗号文保管部６０２は、暗号文ｃを受信し、受信した暗号文ｃを保管する。
【００８３】
ステップＳ６０３において、入力部６０３は、演算ｆを受信し、受信した演算ｆを準同型演算部６０４へ送信する。
【００８４】
ステップＳ６０４において、準同型演算部６０４は、保管された複数の暗号文ｃと演算ｆをもとに準同型演算アルゴリズムＥｖａｌを実行し、演算後暗号文ｃ＊を生成する。そして、準同型演算部６０４は、生成した演算後暗号文ｃ＊を送信部６０５へ送信する。
ここでは、例として、暗号文ｃ（１）＝（ｉｎｄｅｘ（１），（ｃ１（１），（ｃ２．１（１），…，ｃ２．ｋ（１）），Ｃ（１），σ（１））），…，ｃ（ｈ）＝（ｉｎｄｅｘ（ｈ），（ｃ１（ｈ），（ｃ２．１（ｈ），…，ｃ２．ｋ（ｈ）），Ｃ（ｈ），σ（ｈ）））と演算ｆ（ｍ１，…，ｍｈ）＝ｗ１・ｍ１＋…＋ｗｈ・ｍｈを用いて説明する。このとき、ｃ（１）からｃ（ｈ）は、すべて同じｉｎｄｅｘに対応する暗号文でもよい。また、ｃ（１）からｃ（ｈ）は、すべて異なるｉｎｄｅｘに対応する暗号文でもよい。また、ｃ（１）からｃ（ｈ）は、一部が同じｉｎｄｅｘに対応する暗号文でもよい。
【００８５】
【数１】
0006980154.tif 000002
【００８６】
ステップＳ６０５において、送信部６０５は、準同型演算部６０４で生成された演算後暗号文ｃ＊を、復号装置７００へ送信する。
【００８７】
図１３は、復号装置７００の動作例を示すフローチャートである。
【００８８】
ステップＳ７０１において、受信部７０１は、データ供給者鍵生成装置３００から検証鍵ｓｐｋを受信し、データ利用者鍵生成装置４００から秘密鍵ｖｓｋを受信し、受信した検証鍵ｓｐｋと秘密鍵ｖｓｋを鍵保管部７０２へ送信する。
【００８９】
ステップＳ７０２において、鍵保管部７０２は、検証鍵ｓｐｋと秘密鍵ｖｓｋを受信し、受信した検証鍵ｓｐｋと秘密鍵ｖｓｋを保管する。
【００９０】
ステップＳ７０３において、受信部７０１は、準同型演算装置６００から演算後暗号文ｃ＊を受信し、受信した演算後暗号文ｃ＊を復号処理部７０４へ送信する。
【００９１】
ステップＳ７０４において、入力部７０３は、演算ｆを受信し、受信した演算ｆを復号処理部７０４へ送信する。
【００９２】
ステップＳ７０５において、復号処理部７０４は、複数の検証鍵ｓｐｋと秘密鍵ｖｓｋと演算後暗号文ｃ＊と演算ｆをもとに復号アルゴリズムＤｅｃを実行し、復号結果ｍ＊を生成し、送信部７０５へ送信する。ここでは、例として、以下に示す演算後暗号文ｃ＊と演算ｆ（ｍ１，…，ｍｈ）＝ｗ１・ｍ１＋…＋ｗｈ・ｍｈを用いて説明する。
【００９３】
【数２】
0006980154.tif 000003
【００９４】
Ｄｅｃ（ｓｐｋ（１），…，ｓｐｋ（ｈ），ｖｓｋ，ｃ＊，ｆ）：
Ｅｎｃアルゴリズムで使用した、暗号文ｃに一意に対応するタグｔを復元する。例えば、ｉｎｄｅｘと暗号文ｃの生成時刻からタグｔを復元する。
次に、以下のステップ（１）からステップ（５）を順に実行する。
（１）｛１，…，ｈ｝の全ての要素ｉについて、検証アルゴリズムＶｅｒ（ｓｐｋ（ｉ），Ｃ（ｉ）｜｜ｔ，σ（ｉ））を実行し、すべてのｉについて検証を通過した場合、次のステップに進む。すべてのｉについて検証を通過しない場合は、エラーを表す記号⊥を出力して動作を停止する。
【００９５】
【数３】
0006980154.tif 000004
【００９６】
ステップＳ７０６において、送信部７０５は、復号処理部７０４で生成された復号結果ｍ＊を出力する。
【００９７】
＊＊＊実施の形態の効果の説明＊＊＊
非特許文献１に記載の方法では、暗号化装置への入力として、署名鍵と公開鍵の他にコミットメント鍵と呼ばれる鍵が必要である。本実施の形態によれば、暗号化装置５００において行列Ａ１からコミットメント鍵の生成が可能である。このため、暗号化装置５００には、署名鍵と公開鍵（行列Ａ１）のみ入力すればよく、管理すべき鍵の個数を減らすことができる。
【００９８】
非特許文献１に記載の方法は、離散対数に基づく暗号方式を用いて構成されている。しかし、このような暗号方式は、量子コンピュータが実用化された場合、その安全性が失われてしまうことが知られている。本実施の形態では、量子コンピュータに対しても耐性があるとされている格子暗号を用いているため、量子コンピュータが実用化された場合でも、安全性が失われない。
【００９９】
また、本実施の形態では、準同型演算装置６００を用いることにより、クラウドサーバなどを用いたアグリゲータに安全にデータの収集と計算を委託することができる。ここで、「安全に」の意味は、データ供給者のデータがアグリゲータとデータ利用者に漏れないこと、計算結果がデータ供給者とアグリゲータに漏れないこと、計算結果が正しい演算によるものであることを確認可能であることを指す。
【０１００】
また、本実施の形態では、準同型演算装置６００が実行した演算ｆと、復号装置７００に入力する演算ｆ’が一致する場合のみ、復号装置７００が復号結果ｍ＊を出力する。そのため、準同型演算装置６００が正しく演算ｆを実行しなかった場合、演算ｆと演算ｆ’とが一致せず、復号装置７００による復号結果を得られない。このため、復号装置７００が実行した演算が正しくなかったことを検出することができる。
【０１０１】
＊＊＊ハードウェア構成の説明＊＊＊
最後に、共通パラメータ生成装置２００と、データ供給者鍵生成装置３００と、データ利用者鍵生成装置４００と、暗号化装置５００と、準同型演算装置６００と、復号装置７００のハードウェア構成例を説明する。
【０１０２】
図１４は、共通パラメータ生成装置２００のハードウェア構成例を示す。
図１４に示すように、共通パラメータ生成装置２００は、プロセッサ２５１を備えている。プロセッサ２５１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）である。プロセッサ２５１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）、ＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）等である。
プロセッサ２５１はバス２５２を介してＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２５３、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２５４、通信ボード２５５、ディスプレイ２５６、キーボード２５７、マウス２５８、ドライブ２５９、磁気ディスク装置２６０などのハードウェアデバイスと接続され、これらのハードウェアデバイスを制御する。
ドライブ２５９は、ＦＤ（Ｆｌｅｘｉｂｌｅ  Ｄｉｓｋ  Ｄｒｉｖｅ）、ＣＤ（Ｃｏｍｐａｃｔ  Ｄｉｓｃ）、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｃ）などの記憶媒体を読み書きする機器である。ＲＯＭ２５３、ＲＡＭ２５４、磁気ディスク装置２６０及びドライブ２５９は記憶装置の一例である。キーボード２５７、マウス２５８および通信ボード２５５は入力装置の一例である。ディスプレイ２５６および通信ボード２５５は出力装置の一例である。通信ボード２５５は有線または無線で、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、インターネット、電話回線などの通信網に接続している。磁気ディスク装置２６０には、ＯＳ２６１（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、プログラム２６２及びファイル２６３が記憶されている。
【０１０３】
プログラム２６２は、入力部２０１、共通パラメータ生成部２０２及び送信部２０３の機能を実行するプログラムである。プログラム２６２は、プロセッサ２５１により読み出され実行される。すなわち、プログラム２６２は、入力部２０１、共通パラメータ生成部２０２及び送信部２０３としてコンピュータを機能させる。また、プログラム２６２は、入力部２０１、共通パラメータ生成部２０２及び送信部２０３の手順や方法をコンピュータに実行させる。
プログラム２６２は、磁気ディスク、ＦＤ、光ディスク、ＣＤ、ブルーレイ（登録商標）ディスク、ＤＶＤ等の可搬記録媒体に格納されていてもよい。そして、プログラム２６２が格納された可搬記録媒体を商業的に流通させてもよい。
【０１０４】
また、プロセッサ２５１は、ＯＳ２６１の少なくとも一部を実行する。
プロセッサ２５１はＯＳ２６１の少なくとも一部を実行しながら、プログラム２６２を実行する。
プロセッサ９０１がＯＳ２６１を実行することで、タスク管理、メモリ管理、ファイル管理、通信制御等が行われる。
なお、図１４は、プログラム２６２が実行されている状態を示す。つまり、図１４は、プログラム２６２がプロセッサ２５１にロードされ、プロセッサ２５１が入力部２０１、共通パラメータ生成部２０２及び送信部２０３として動作している状態を示す。
【０１０５】
ファイル２６３には、入力部２０１、共通パラメータ生成部２０２及び送信部２０３で使用される各種データ（入力、出力、判定結果、計算結果、処理結果など）が含まれる。
【０１０６】
入力部２０１、共通パラメータ生成部２０２及び送信部２０３の「部」を、「回路」又は「工程」又は「手順」又は「処理」に読み替えてもよい。
また、共通パラメータ生成装置２００は、処理回路により実現されてもよい。処理回路は、例えば、ロジックＩＣ（Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＧＡ（Ｇａｔｅ  Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ  Ｓｐｅｃｉｆｉｃ  Ｉｎｔｅｇｒａｔｅｄ  Ｃｉｒｃｕｉｔ）、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ  Ｇａｔｅ  Ａｒｒａｙ）である。
なお、本明細書では、プロセッサと処理回路との上位概念を、「プロセッシングサーキットリー」という。
つまり、プロセッサと処理回路とは、それぞれ「プロセッシングサーキットリー」の具体例である。
【０１０７】
図１５は、データ供給者鍵生成装置３００のハードウェア構成例を示す。
図１６は、データ利用者鍵生成装置４００のハードウェア構成例を示す。
図１７は、暗号化装置５００のハードウェア構成例を示す。
図１８は、準同型演算装置６００のハードウェア構成例を示す。
図１９は、復号装置７００のハードウェア構成例を示す。
【０１０８】
データ供給者鍵生成装置３００、データ利用者鍵生成装置４００、暗号化装置５００、準同型演算装置６００及び復号装置７００のハードウェア構成は、共通パラメータ生成装置２００のハードウェア構成と同じである。
つまり、データ供給者鍵生成装置３００は、プロセッサ３５１、バス３５２、ＲＯＭ３５３、ＲＡＭ３５４、通信ボード３５５、ディスプレイ３５６、キーボード３５７、マウス３５８、ドライブ３５９及び磁気ディスク装置３６０で構成される。そして、磁気ディスク装置３６０には、ＯＳ３６１、プログラム３６２及びファイル３６３が含まれる。
データ利用者鍵生成装置４００は、プロセッサ４５１、バス４５２、ＲＯＭ４５３、ＲＡＭ４５４、通信ボード４５５、ディスプレイ４５６、キーボード４５７、マウス４５８、ドライブ４５９及び磁気ディスク装置４６０で構成される。そして、磁気ディスク装置４６０には、ＯＳ４６１、プログラム４６２及びファイル４６３が含まれる。
暗号化装置５００は、プロセッサ５５１、バス５５２、ＲＯＭ５５３、ＲＡＭ５５４、通信ボード５５５、ディスプレイ５５６、キーボード５５７、マウス５５８、ドライブ５５９及び磁気ディスク装置５６０で構成される。そして、磁気ディスク装置５６０には、ＯＳ５６１、プログラム５６２及びファイル５６３が含まれる。
準同型演算装置６００は、プロセッサ６５１、バス６５２、ＲＯＭ６５３、ＲＡＭ６５４、通信ボード６５５、ディスプレイ６５６、キーボード６５７、マウス６５８、ドライブ６５９及び磁気ディスク装置６６０で構成される。そして、磁気ディスク装置６６０には、ＯＳ６６１、プログラム６６２及びファイル６６３が含まれる。
復号装置７００は、プロセッサ７５１、バス７５２、ＲＯＭ７５３、ＲＡＭ７５４、通信ボード７５５、ディスプレイ７５６、キーボード７５７、マウス７５８、ドライブ７５９及び磁気ディスク装置７６０で構成される。そして、磁気ディスク装置７６０には、ＯＳ７６１、プログラム７６２及びファイル７６３が含まれる。
【０１０９】
以下に示す点を除き、共通パラメータ生成装置２００のハードウェア構成についての説明は、データ供給者鍵生成装置３００、データ利用者鍵生成装置４００、暗号化装置５００、準同型演算装置６００及び復号装置７００のハードウェアについても適用される。
各装置では、それぞれの機能構成に対応するプログラムが磁気ディスク装置に格納されている。
つまり、プログラム３６２は、受信部３０１、鍵生成部３０２及び送信部３０３を実現するプログラムである。
プログラム４６２は、受信部４０１、鍵生成部４０２及び送信部４０３を実現するプログラムである。
プログラム５６２は、受信部５０１、鍵保管部５０２、入力部５０３、暗号化部５０４及び送信部５０５を実現するプログラムである。
プログラム６６２は、受信部６０１、暗号文保管部６０２、入力部６０３、準同型演算部６０４及び送信部６０５を実現するプログラムである。
プログラム７６２は、受信部７０１、鍵保管部７０２、入力部７０３、復号処理部７０４及び送信部７０５を実現するプログラムである。
また、データ供給者鍵生成装置３００、データ利用者鍵生成装置４００、暗号化装置５００、準同型演算装置６００及び復号装置７００は、それぞれ、ロジックＩＣ、ＧＡ、ＡＳＩＣ、ＦＰＧＡ等の処理回路により実現されてもよい。
【符号の説明】
【０１１０】
１００  秘匿情報処理システム、１０１  インターネット、２００  共通パラメータ生成装置、２０１  入力部、２０２  共通パラメータ生成部、２０３  送信部、２５１  プロセッサ、２５２  バス、２５３  ＲＯＭ、２５４  ＲＡＭ、２５５  通信ボード、２５６  ディスプレイ、２５７  キーボード、２５８  マウス、２５９  ドライブ、２６０  磁気ディスク装置、２６１  ＯＳ、２６２  プログラム、２６３  ファイル、３００  データ供給者鍵生成装置、３０１  受信部、３０２  鍵生成部、３０３  送信部、３５１  プロセッサ、３５２  バス、３５３  ＲＯＭ、３５４  ＲＡＭ、３５５  通信ボード、３５６  ディスプレイ、３５７  キーボード、３５８  マウス、３５９  ドライブ、３６０  磁気ディスク装置、３６１  ＯＳ、３６２  プログラム、３６３  ファイル、４００  データ利用者鍵生成装置、４０１  受信部、４０２  鍵生成部、４０３  送信部、４５１  プロセッサ、４５２  バス、４５３  ＲＯＭ、４５４  ＲＡＭ、４５５  通信ボード、４５６  ディスプレイ、４５７  キーボード、４５８  マウス、４５９  ドライブ、４６０  磁気ディスク装置、４６１  ＯＳ、４６２  プログラム、４６３  ファイル、５００  暗号化装置、５０１  受信部、５０２  鍵保管部、５０３  入力部、５０４  暗号化部、５０５  送信部、５５１  プロセッサ、５５２  バス、５５３  ＲＯＭ、５５４  ＲＡＭ、５５５  通信ボード、５５６  ディスプレイ、５５７  キーボード、５５８  マウス、５５９  ドライブ、５６０  磁気ディスク装置、５６１  ＯＳ、５６２  プログラム、５６３  ファイル、６００  準同型演算装置、６０１  受信部、６０２  暗号文保管部、６０３  入力部、６０４  準同型演算部、６０５  送信部、６５１  プロセッサ、６５２  バス、６５３  ＲＯＭ、６５４  ＲＡＭ、６５５  通信ボード、６５６  ディスプレイ、６５７  キーボード、６５８  マウス、６５９  ドライブ、６６０  磁気ディスク装置、６６１  ＯＳ、６６２  プログラム、６６３  ファイル、７００  復号装置、７０１  受信部、７０２  鍵保管部、７０３  入力部、７０４  復号処理部、７０５  送信部、７５１  プロセッサ、７５２  バス、７５３  ＲＯＭ、７５４  ＲＡＭ、７５５  通信ボード、７５６  ディスプレイ、７５７  キーボード、７５８  マウス、７５９  ドライブ、７６０  磁気ディスク装置、７６１  ＯＳ、７６２  プログラム、７６３  ファイル。
【図１】
0006980154.tif 000005
【図２】
0006980154.tif 000006
【図３】
0006980154.tif 000007
【図４】
0006980154.tif 000008
【図５】
0006980154.tif 000009
【図６】
0006980154.tif 000010
【図７】
0006980154.tif 000011
【図８】
0006980154.tif 000012
【図９】
0006980154.tif 000013
【図１０】
0006980154.tif 000014
【図１１】
0006980154.tif 000015
【図１２】
0006980154.tif 000016
【図１３】
0006980154.tif 000017
【図１４】
0006980154.tif 000018
【図１５】
0006980154.tif 000019
【図１６】
0006980154.tif 000020
【図１７】
0006980154.tif 000021
【図１８】
0006980154.tif 000022
【図１９】
0006980154.tif 000023