(57)【要約】  暗号化装置（５００）は、暗号化部（５０４）、検知要素生成部（５０５）、送信部（５０６）を備える。暗号化部（５０４）は、対をなす２つの鍵のうちの一方の鍵を用いて平文を暗号化することにより、平文が暗号化された準同型演算の可能な暗号文を生成する。検知要素生成部（５０５）は、一方の鍵と暗号文とを用いて、暗号文の改変の検知に用いる検知要素Ｅを生成する。送信部（５０６）は、暗号文と検知要素とを送信する。
2017126001.tif 000002
【特許請求の範囲】
【請求項１】
対をなす２つの鍵のうちの一方の鍵を用いて平文Ｍを暗号化することにより、前記平文Ｍが暗号化された準同型演算の可能な暗号文Ｄを生成する暗号化部と、
前記一方の鍵と前記暗号文Ｄとを用いて、前記暗号文Ｄの改変の検知に用いる検知要素Ｅを生成する検知要素生成部と、
前記暗号文Ｄと前記検知要素Ｅとを出力する出力部と
を備えた暗号化装置。
【請求項２】
前記一方の鍵は、
対をなす第１の公開鍵ｐｋと第１の秘密鍵ｓｋとのうちの前記第１の公開鍵ｐｋである請求項１に記載の暗号化装置。
【請求項３】
前記暗号化装置は、
共通パラメータｐｕｂを保管する保管部を備え、
前記暗号化部は、
第１の乱数ｒと第２の乱数ｓとを選択し、前記第１の公開鍵ｐｋに加え、前記第１の乱数ｒと前記共通パラメータｐｕｂとを用いて前記暗号文Ｄを生成し、
前記検知要素生成部は、
前記第１の公開鍵ｐｋと前記暗号文Ｄとに加え、前記第１の乱数ｒと、前記第２の乱数ｓと、前記共通パラメータｐｕｂとを用いて、前記検知要素Ｅを生成する請求項２に記載の暗号化装置。
【請求項４】
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを取得する取得部と、
前記暗号文Ｄと異なる暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋが保管された保管部と、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値との照合を行う改変検知部と、
前記改変検知部による照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、前記変換暗号文ＲＣに変換する変換部と、
前記変換暗号文ＲＣを出力する出力部と
を備えた暗号文変換装置。
【請求項５】
前記暗号文Ｄは、
第１の秘密鍵ｓｋと組みをなす第１の公開鍵ｐｋを用いて前記平文Ｍが暗号化されており、
前記検知要素Ｅは、
前記第１の公開鍵ｐｋと前記暗号文Ｄとを用いて生成されており、
前記変換鍵ｒｋは、
前記暗号文Ｄに準同型演算が施された場合に準同型演算の演算結果の復号に用いる復号鍵である第２の秘密鍵ｅｓｋと対をなす第２の公開鍵ｅｐｋと、前記第１の秘密鍵ｓｋとに基づいて生成されており、
前記保管部は、
前記第１の公開鍵ｐｋが保管されており、
前記改変検知部は、
前記検知要素Ｅと前記第１の公開鍵ｐｋとに基づいて前記基準値を生成し、前記第１の公開鍵ｐｋと前記暗号文Ｄとに基づいて前記照合値を生成する請求項４に記載の暗号文変換装置。
【請求項６】
コンピュータに、
対をなす２つの鍵のうちの一方の鍵を用いて平文Ｍを暗号化することにより、前記平文Ｍが暗号化された準同型演算の可能な暗号文Ｄを生成する処理、
前記一方の鍵ｐｋと前記暗号文Ｄとを用いて、前記暗号文Ｄの改変の検知に用いる検知要素Ｅを生成する処理、
前記暗号文Ｄと前記検知要素Ｅとを出力する処理
を実行させるための暗号化プログラム。
【請求項７】
コンピュータに、
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを取得する処理、
前記暗号文Ｄと異なる暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋを保管する処理、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値とを照合する処理、
照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、前記変換暗号文ＲＣに変換する処理、
前記変換暗号文ＲＣを出力する処理
を実行させるための暗号文変換プログラム。
【請求項８】
暗号化部と、検知要素生成部と、出力部とを備えた暗号化装置が行う暗号化方法であって、
前記暗号化部が、
対をなす２つの鍵のうちの一方の鍵を用いて平文Ｍを暗号化することにより、前記平文Ｍが暗号化された準同型演算の可能な暗号文Ｄを生成し、
前記検知要素生成部が、
前記一方の鍵ｐｋと前記暗号文Ｄとを用いて、前記暗号文Ｄの改変の検知に用いる検知要素Ｅを生成し、
前記出力部が、
前記暗号文Ｄと前記検知要素Ｅとを出力する
暗号化方法。
【請求項９】
取得部と、保管部と、改変検知部と、変換部と、出力部とを備えた暗号文変換装置が行う暗号文変換方法であって、
前記取得部が、
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを取得し、
前記保管部が、
前記暗号文Ｄと異なる暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋを保管し、
前記改変検知部が、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値との照合を行い、
前記変換部が、
前記改変検知部による照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、前記変換暗号文ＲＣに変換し、
前記出力部が、
前記変換暗号文ＲＣを出力する暗号文変換方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、準同型暗号に関するものである。本発明は、準同型暗号を使用する、暗号化装置、暗号文変換装置、暗号化プログラム、暗号文変換プログラム、暗号化方法及び暗号文変換方法に関する。
【背景技術】
【０００２】
通常、データを暗号化してしまうと復号しなければ内部のデータを閲覧及び編集することは不可能なため、複数の暗号文内のデータを編集する場合は、一度復号しデータとして平文を取り出したうえで編集を行い、再度暗号化する必要がある。これに対して準同型暗号は、暗号文のまま内部のデータを編集することが可能である。その際の処理は準同型演算と呼ばれ、準同型演算の可能な種類、準同型演算の回数は、具体的方式によって変化する。【０００３】
準同型暗号としては、ＥｌＧａｍａｌ暗号やＰａｉｌｉｅｒ暗号など、加算のみ、もしくは、乗算のみを可能とする準同型暗号に加え、加算、乗算を無制限に実行できるＧｅｎｔｒｙ暗号などが提案されている。それらの方式では、第一点として、準同型演算する際は、暗号文は同じ公開鍵で作成されていなければいけない。第二点として、準同型演算前の暗号文は、暗号化したまま演算を行うがゆえ、準同型演算によって平文が改変されても検知できないという課題がある。【０００４】
このような課題に対しての解決方式がいくつか提案されている（例えば、特許文献１及び非特許文献１参照）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第ＷＯ２０１４／０１０２０２  Ａ１号
【非特許文献】
【０００６】
【非特許文献１】Ｋｅｉｔａ  Ｅｍｕｒａ，  Ｇｏｉｃｈｉｒｏ  Ｈａｎａｏｋａ，  Ｇｏ  Ｏｈｔａｋｅ，  Ｔａｋａｈｉｒｏ  Ｍａｔｓｕｄａ，  Ｓｈｏｔａ  Ｙａｍａｄａ：  Ｃｈｏｓｅｎ  Ｃｉｐｈｅｒｔｅｘｔ  Ｓｅｃｕｒｅ  Ｋｅｙｅｄ−Ｈｏｍｏｍｏｒｐｈｉｃ  Ｐｕｂｌｉｃ−Ｋｅｙ  Ｅｎｃｒｙｐｔｉｏｎ．  Ｐｕｂｌｉｃ  Ｋｅｙ  Ｃｒｙｐｔｏｇｒａｐｈｙ  ２０１３：  ３２−５０
【発明の概要】
【発明が解決しようとする課題】
【０００７】
特許文献１に記載されている方法では、複数の異なる鍵で作成された暗号文を、代理人再暗号化と呼ばれる技術により、特定の一つの鍵の暗号文に変化させ、準同型演算を行っている。
しかし、この方法では、準同型演算前の暗号文の安全性が低く、平文データの改変可能であるという課題がある。【０００８】
非特許文献１に記載されている別の方法では、準同型演算をする際には特別な鍵を必要とする代わりに、準同型演算前の暗号文の安全性の強度を上げている。具体的には、平文データの改ざんを防いでいる。
しかし、この方法では、準同型演算後の暗号文を復号できるユーザは、準同型前の暗号文も復号できてしまうという課題がある。【０００９】
このように特許文献１、非特許文献１の場合、準同型演算前の暗号文の平文の内容が改変されてしまう恐れがある。【００１０】
そこで、本発明は、準同型演算前の暗号文の改変を検知する装置、プログラム及び方法の提供を目的とする。
【課題を解決するための手段】
【００１１】
この発明の暗号化装置は、
対をなす２つの鍵のうちの一方の鍵を用いて平文Ｍを暗号化することにより、前記平文Ｍが暗号化された準同型演算の可能な暗号文Ｄを生成する暗号化部と、
前記一方の鍵と前記暗号文Ｄとを用いて、前記暗号文Ｄの改変の検知に用いる検知要素Ｅを生成する検知要素生成部と、
前記暗号文Ｄと前記検知要素Ｅとを出力する出力部と
を備えたことを特徴とする。
【発明の効果】
【００１２】
本発明は、データを暗号化したままデータの演算可能な準同型暗号技術において、暗号文の改変を検知する検知要素を採用するので、準同型演算前の暗号文の改変を検知できる。よって、改変されていない真正な暗号文を用いた、安全な準同型演算の利用を実現することができる。
【図面の簡単な説明】
【００１３】
【図１】実施の形態１の図で、秘匿分析システムの構成を示すブロック図。
【図２】実施の形態１の図で、共通パラメータ生成装置のロック図。
【図３】実施の形態１の図で、第１の鍵生成装置のブロック図。
【図４】実施の形態１の図で、第２の鍵生成装置のロック図。
【図５】実施の形態１の図で、暗号化装置のブロック図。
【図６】実施の形態１の図で、変換鍵生成装置のブロック図。
【図７】実施の形態１の図で、暗号文変換装置のロック図。
【図８】実施の形態１の図で、準同型演算装置のブロック図。
【図９】実施の形態１の図で、第１の復号装置のブロック図。
【図１０】実施の形態１の図で、第２の復号装置の示すブロック図。
【図１１】実施の形態１の図で、共通パラメータ生成装置の処理を示すフローチャート。
【図１２】実施の形態１の図で、第１の鍵生成装置の処理を示すフローチャート。
【図１３】実施の形態１の図で、第２の鍵生成装置の処理を示すフローチャート。
【図１４】実施の形態１の図で、暗号化装置の処理を示すフローチャート。
【図１５】実施の形態１の図で、変換鍵生成装置の処理を示すフローチャート。
【図１６】実施の形態１の図で、暗号文変換装置の処理を示すフローチャート。
【図１７】実施の形態１の図で、準同型演算装置の処理を示すフローチャート。
【図１８】実施の形態１の図で、第１の復号装置の処理を示すフローチャート。
【図１９】実施の形態１の図で、第２の復号装置の処理を示すフローチャート。
【図２０】実施の形態１の図で、秘匿分析システムのデータの入力、出力を示す図。
【図２１】実施の形態１の図で、共通パラメータ生成装置等のハードウェア構成を示す図。
【図２２】実施の形態１の図で、共通パラメータ生成装置等のハードウェア構成を示す別の図。
【発明を実施するための形態】
【００１４】
実施の形態１．
以下では、鍵生成装置３００等を次のように記す。
（１）実施の形態１では、対となる、公開鍵ｐｋ、復号鍵ｓｋ（秘密鍵）を生成する鍵生成装置３００が登場する。この鍵生成装置３００を第１の鍵生成装置３００と記す。
（２）第１の鍵生成装置３００によって生成された公開鍵ｐｋ、復号鍵ｓｋを第１の公開鍵ｐｋ、第１の復号鍵ｓｋと記す。なお、公開鍵ｐｋ、復号鍵ｓｋと記す場合もある。
（３）実施の形態１では、対となる、公開鍵ｅｐｋ、復号鍵ｅｓｋ（秘密鍵）を生成する準同型演算後鍵生成装置４００が登場する。この準同型演算後鍵生成装置４００を、第２の鍵生成装置と記す。
（４）第２の鍵生成装置によって生成される公開鍵ｅｐｋ、復号鍵ｅｓｋを、第２の公開鍵ｅｐｋ、第２の復号鍵ｅｓｋと記す。なお公開鍵ｅｐｋ、復号鍵ｅｓｋと記す場合もある。
（５）実施の形態１では、第１の復号鍵ｓｋを用いて暗号文を復号する復号装置９００が登場する。この復号装置９００を第１の復号装置と記す。
（６）実施の形態１では、第２の復号鍵ｅｓｋを用いて準同型演算後の暗号文を復号する復号装置１０００が登場する。この復号装置１０００を第２の復号装置と記す。
【００１５】
図１は、秘匿分析システム１００の構成を示すブロック図である。図１に示すように、秘匿分析システム１００は、共通パラメータ生成装置２００と、複数の第１の鍵生成装置３００と、複数の第２の鍵生成装置４００と、暗号化装置５００と、変換鍵生成装置６００と、暗号文変換装置７００と、準同型演算装置８００と、第１の復号装置９００と、第２の復号装置１０００と、を備える。
【００１６】
秘匿分析システム１００は、共通パラメータ生成装置２００〜第２の復号装置１０００が、それぞれインターネット１０１を経由して接続されず、同じ企業内に敷設されたＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）で接続されて実現されてもよい。
【００１７】
インターネット１０１は、共通パラメータ生成装置２００と、複数の第１の鍵生成装置３００と、複数の第２の鍵生成装置４００と、暗号化装置５００と、変換鍵生成装置６００と、暗号文変換装置７００と、準同型演算装置８００と、第１の復号装置９００と、第２の復号装置１０００とを接続する通信路である。インターネット１０１は、ネットワークの例である。インターネット１０１の代わりに、他の種類のネットワークが用いられてもよい。
【００１８】
共通パラメータ生成装置２００は、システムで用いる共通のパラメータである共通パラメータｐｕｂを作成し、インターネット１０１を介して、複数の第１の鍵生成装置３００と、複数の第２の鍵生成装置４００と、暗号化装置５００と、変換鍵生成装置６００と、暗号文変換装置７００と、準同型演算装置８００と、第１の復号装置９００と、第２の復号装置１０００へ、共通パラメータｐｕｂを送信する。なお、この共通パラメータｐｕｂは、インターネット１０１を介さず、郵送、ウェブサイトの掲示板等で提供してもよい。
なお、以下の暗号化装置５００等の説明において、共通パラメータｐｕｂの取得の説明がない場合は、すでに取得しているとする。
【００１９】
第１の鍵生成装置３００は、パーソナルコンピュータでもよい。第１の鍵生成装置３００は、公開鍵ｐｋと復号鍵ｓｋを生成し、公開鍵ｐｋを、暗号化装置５００，暗号文変換装置７００，第１の復号装置９００へ送信し、復号鍵ｓｋを、変換鍵生成装置６００と、第１の復号装置９００へ送信するコンピュータである。
【００２０】
第２の鍵生成装置４００は、パーソナルコンピュータでもよい。第２の鍵生成装置４００は、第２の公開鍵ｅｐｋと第２の復号鍵ｅｓｋを生成し、第２の公開鍵ｅｐｋを、変換鍵生成装置６００と、準同型演算装置８００へ送信し、第２の復号鍵ｅｓｋを、第２の復号装置１０００へ送信するコンピュータである。
【００２１】
暗号化装置５００は、データの暗号化装置として機能し、パーソナルコンピュータでもよい。暗号化装置５００は、第１の鍵生成装置３００から公開鍵ｐｋを受信し、また外部から平文Ｍを入力され、暗号文Ｃを出力するコンピュータである。
【００２２】
変換鍵生成装置６００は、パーソナルコンピュータでもよい。変換鍵生成装置６００は、第１の鍵生成装置３００から復号鍵ｓｋを、第２の鍵生成装置４００から第２の公開鍵ｅｐｋを受信し、変換鍵ｒｋを作成し、暗号文変換装置７００へ送信するコンピュータである。
【００２３】
暗号文変換装置７００は、パーソナルコンピュータでもよい。暗号文変換装置７００は、変換鍵生成装置６００から変換鍵ｒｋを受信し、暗号文Ｃを入力され、公開鍵ｐｋを取得し、暗号文Ｃが変換された変換暗号文ＲＣを生成して出力するコンピュータである。
【００２４】
準同型演算装置８００は、パーソナルコンピュータでもよい。準同型演算装置８００は、第２の鍵生成装置４００から、第２の公開鍵ｅｐｋを受信し、複数の変換暗号文ＲＣを入力され、準同型演算が実行された暗号文ＥＣ（以下、暗号文ＥＣ）を出力するコンピュータである。
【００２５】
第１の復号装置９００は、パーソナルコンピュータでもよい。第１の復号装置９００は、第１の鍵生成装置３００から復号鍵ｓｋを受信し、公開鍵ｐｋを取得し、暗号文Ｃを入力され、暗号文Ｃの復号結果を出力するコンピュータである。
【００２６】
第２の復号装置１０００は、パーソナルコンピュータでもよい。第２の復号装置１０００は、第２の鍵生成装置４００から、第２の復号鍵ｅｓｋを受信し、暗号文ＥＣを入力され、暗号文ＥＣの復号結果を出力するコンピュータである。
なお、同じパーソナルコンピュータ内に、第１の鍵生成装置３００、復号装置９００、変換鍵生成装置６００のいずれか２つ以上が同時に含まれていてもよい。
なお、同じパーソナルコンピュータ内に、第２の鍵生成装置４００、第２の復号装置１０００が同時に含まれていてもよい。
なお、同じパーソナルコンピュータ内に、変換鍵生成装置６００、暗号文変換装置７００、準同型演算装置８００のいずれか２つ以上が同時に含まれていてもよい。
【００２７】
＜＊＊＊構成の説明＊＊＊＞
以下、本実施の形態の構成について説明する。
図１に示したように、秘匿分析システム１００は、共通パラメータ生成装置２００と、複数の第１の鍵生成装置３００と、複数の第２の鍵生成装置４００と、暗号化装置５００と、変換鍵生成装置６００と、暗号文変換装置７００と、準同型演算装置８００と、第１の復号装置９００と、第２の復号装置１０００と、を備える。
【００２８】
図２〜図１０の装置は、いずれもコンピュータである、共通パラメータ生成装置２００、第１の鍵生成装置３００、第２の鍵生成装置４００、暗号化装置５００、変換鍵生成装置６００、暗号文変換装置７００、準同型演算装置８００、第１の復号装置９００、第２の復号装置１０００の構成を示すブロック図である。
図２１は、共通パラメータ生成装置２００〜第２の復号装置１０００のハードウェア構成を示す図である。
【００２９】
本実施の形態において、共通パラメータ生成装置２００、第１の鍵生成装置３００、第２の鍵生成装置４００、暗号化装置５００、変換鍵生成装置６００、暗号文変換装置７００、準同型演算装置８００、第１の復号装置９００、第２の復号装置１０００は、コンピュータである。
【００３０】
共通パラメータ生成装置２００、第１の鍵生成装置３００、第２の鍵生成装置４００は、プロセッサ９１、入力インタフェース９３、出力インタフェース９４といったハードウェアを備える。暗号化装置５００〜第２の復号装置１０００は、プロセッサ９１、記憶装置９２、入力インタフェース９３、出力インタフェース９４といったハードウェアを備える。以下、入力インタフェース９３、出力インタフェース９４は、入力Ｉ／Ｆ９３、出力Ｉ／Ｆ９４と記す。
【００３１】
図２〜図１０では、各機能部とハードウェアとの関係を示している。図２〜図１０において、プロセッサ９１として示す「〜部」は、ソフトウェアで実現される。つまり、プロセッサ９１として示す「〜部」は、プロセッサ９１がソフトウェアを実行することで実現される。また、図５〜図１０における「保管部」は、記憶装置９２で実現される。
【００３２】
プロセッサ９１は、信号線を介して他のハードウェアと接続され、これら他のハードウェアを制御する。プロセッサ９１は、プロセッシングを行うＩＣ（Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）である。プロセッサ９１は、具体的には、ＣＰＵ（Ｃｅｎｔｒａｌ・Ｐｒｏｃｅｓｓｉｎｇ・Ｕｎｉｔ）である。
【００３３】
記憶装置９２は、補助記憶装置９２ａ及びメモリ９２ｂを含む。補助記憶装置９２ａは、具体的には、ＲＯＭ（Ｒｅａｄ・Ｏｎｌｙ・Ｍｅｍｏｒｙ）、フラッシュメモリ、又は、ＨＤＤ（Ｈａｒｄ・Ｄｉｓｋ・Ｄｒｉｖｅ）である。メモリ９２ｂは、具体的には、ＲＡＭ（Ｒａｎｄｏｍ・Ａｃｃｅｓｓ・Ｍｅｍｏｒｙ）である。
【００３４】
入力Ｉ／Ｆ９３は、信号が入力されるポートである。また、入力Ｉ／Ｆ９３は、マウス、キーボード、タッチパネルといった入力装置と接続されるポートであってもよい。入力Ｉ／Ｆ９３は、具体的には、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ・Ｓｅｒｉａｌ・Ｂｕｓ）端子である。なお、入力インタフェース９３は、ＬＡＮ（Ｌｏｃａｌ・Ａｒｅａ・Ｎｅｔｗｏｒｋ）と接続されるポートであってもよい。
【００３５】
出力Ｉ／Ｆ９４は、信号を出力するポートである。出力Ｉ／Ｆ９４は、ＵＳＢ端子でもよい
【００３６】
補助記憶装置９２ａには、プロセッサ９１として示す「〜部」の機能を実現するプログラムが記憶されている。このプログラムは、メモリ９２ｂにロードされ、プロセッサ９１に読み込まれ、プロセッサ９１によって実行される。補助記憶装置９２ａには、ＯＳ（Ｏｐｅｒａｔｉｎｇ・Ｓｙｓｔｅｍ）も記憶されている。ＯＳの少なくとも一部がメモリ９２ｂにロードされ、プロセッサ９１はＯＳを実行しながら、プロセッサ９１として示す「部」の機能を実現するプログラムを実行する。
【００３７】
共通パラメータ生成装置２００〜第２の復号装置１０００は、１つのプロセッサ９１のみを備えていてもよいし、複数のプロセッサ９１を備えていてもよい。複数のプロセッサ９１が「部」の機能を実現するプログラムを連携して実行してもよい。
【００３８】
プロセッサ９１として示す「部」の機能による処理の結果を示す情報、データ、信号値、及び、変数値は、補助記憶装置９２ａ、メモリ９２ｂ、又は、プロセッサ９１内のレジスタ又はキャッシュメモリに記憶される。
【００３９】
プロセッサ９１として示す「部」の機能を実現するプログラムは、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ＤＶＤ（Ｄｉｇｉｔａｌ・Ｖｅｒｓａｔｉｌｅ・Ｄｉｓｃ）といった可搬記録媒体に記憶されてもよい。
【００４０】
図２は、共通パラメータ生成装置２００の構成を示すブロック図である。図２に示すように、共通パラメータ生成装置２００は、入力部２０１と、共通パラメータ生成部２０２と、送信部２０３とを備える。図示していないが、共通パラメータ生成装置２００は、共通パラメータ生成装置２００の各部で使用されるデータを記憶する記録媒体を備える。入力部２０１は、本システムで用いる鍵のビット長Ｌｂｉｔを入力する。次に、共通パラメータ生成部２０２は、本システムで用いる演算の基本となる共通パラメータｐｕｂを生成する。図示していないが、共通パラメータｐｕｂを生成するために、共通パラメータ生成部２０２は乱数生成機能を備えてもよい。送信部２０３は、共通パラメータ生成部２０２で生成された共通パラメータｐｕｂを、複数の第１の鍵生成装置３００と、複数の第２の鍵生成装置４００と、暗号化装置５００と、変換鍵生成装置６００と、暗号文変換装置７００と、準同型演算装置８００と、第１の復号装置９００と、第２の復号装置１０００へ送信する。
【００４１】
図３は、第１の鍵生成装置３００の構成を示すブロック図である。図３に示すように、第１の鍵生成装置３００は、入力部３０１と、鍵生成部３０２と、鍵送信部３０３とを備える。図示していないが、第１の鍵生成装置３００は、第１の鍵生成装置３００の各部で使用されるデータを記憶する記録媒体を備える。入力部３０１は、共通パラメータｐｕｂを入力する。次に、鍵生成部３０２は、第１の公開鍵ｐｋと、第１の復号鍵ｓｋとのペアを生成する。図示していないが、ｐｋとｓｋを生成するために、鍵生成部３０２は乱数生成機能を備えてもよい。鍵送信部３０３は、鍵生成部３０２で生成された第１の公開鍵ｐｋを、暗号化装置５００、暗号文変換装置７００，第１の復号装置９００へ送信し、生成された第１の復号鍵ｓｋを、変換鍵生成装置６００と、第１の復号装置９００へ送信する。
【００４２】
図４は、第２の鍵生成装置４００の構成を示すブロック図である。図４に示すように、第２の鍵生成装置４００は、入力部４０１と、鍵生成部４０２と、鍵送信部４０３とを備える。図示していないが、第２の鍵生成装置４００は、第２の鍵生成装置４００の各部で使用されるデータを記憶する記録媒体を備える。入力部４０１は、共通パラメータｐｕｂを入力する。鍵生成部４０２は、第２の公開鍵ｅｐｋと第２の復号鍵ｅｓｋのペアを生成する。図示していないが、第２の公開鍵ｅｐｋと第２の復号鍵ｅｓｋを生成するために、鍵生成部４０２は乱数生成機能を備えてもよい。鍵送信部４０３は、鍵生成部４０２で生成された第２の公開鍵ｅｐｋを、変換鍵生成装置６００と、準同型演算装置８００へ送信し、生成された第２の復号鍵ｅｓｋを、第２の暗号文復号装置１０００へ送信する。
【００４３】
図５は、暗号化装置５００の構成を示すブロック図である。図５に示すように、暗号化装置５００は、受信部５０１と、保管部５０２と、入力部５０３と、暗号化部５０４と、検知要素生成部５０５と、送信部５０６を備える。図示していないが、暗号化装置５００は、暗号化装置５００の各部で使用されるデータを記憶する記録媒体を備える。受信部５０１は、第１の公開鍵ｐｋを入力する。保管部５０２は、第１の公開鍵ｐｋを保管する。入力部５０３は、外部より平文Ｍを入力する。暗号化部５０４は、保管部５０２に保存された第１の公開鍵ｐｋと入力部５０３にて入力された平文Ｍとから、暗号文Ｄを生成する。図示していないが、暗号文Ｄを生成するために、暗号化部５０４は乱数生成機能を備えてもよい。検知要素生成部５０５は、暗号文Ｄと第１の公開鍵ｐｋとから、検知要素Ｅを生成する。図示していないが、検知要素Ｅを生成するために、検知要素生成部５０５は乱数生成機能を備えてもよい。送信部５０６は、暗号文Ｃ＝（Ｄ、Ｅ）を出力する。つまり、送信部５０６は、暗号文Ｄと検知要素Ｅとの組を暗号文Ｃとして出力する。
【００４４】
図６は、変換鍵生成装置６００の構成を示すブロック図である。図６に示すように、変換鍵生成装置６００は、受信部６０１と、保管部６０２と、入力部６０３と、変換鍵生成部６０４と、送信部６０５を備える。図示していないが、変換鍵生成装置６００は、変換鍵生成装置６００の各部で使用されるデータを記憶する記録媒体を備える。受信部６０１は、復号鍵ｓｋを受信する。次に、保管部６０２は、復号鍵ｓｋを保管する。入力部６０３は、第２の公開鍵ｅｐｋを入力する。変換鍵生成部６０４は、保管部６０２に保存された第１の復号鍵ｓｋと入力部６０３にて入力された第２の公開鍵ｅｐｋとから、変換鍵ｒｋを生成する。
つまり、
ｒｋ＝ＲＫＧ（ｅｐｋ，ｓｋ）である。
ＲＫＧは変換鍵ｒｋの生成を示す演算記号である。図示していないが、変換鍵ｒｋを生成するために、変換鍵生成部６０４は乱数生成機能を備えてもよい。送信部６０５は、変換鍵ｒｋを暗号文変換装置７００へ送信する。
【００４５】
図７は、暗号文変換装置７００の構成を示すブロック図である。図７に示すように、暗号文変換装置７００は、受信部７０１と、保管部７０２と、入力部７０３と、改変検知部７０４と、暗号文変換部７０５と、送信部７０６を備える。図示していないが、暗号文変換装置７００は、暗号文変換装置７００の各部で使用されるデータを記憶する記録媒体を備える。
受信部７０１は、変換鍵ｒｋを受信する。保管部７０２は、変換鍵ｒｋを保管する。入力部７０３には、暗号文Ｃ＝（Ｄ，Ｅ）と第１の公開鍵ｐｋとが入力される。改変検知部７０４は、第１の公開鍵ｐｋを用いて、入力部７０３にて入力された暗号文Ｃの平文Ｍが改変されていないかを検証する。暗号文変換部７０５は、保管部７０２に保存された変換鍵ｒｋと入力部７０３にて入力された暗号文Ｃとから、変換暗号文ＲＣを生成する。改変検知部７０４により改変が検知された場合は、暗号文変換部７０５は、変換暗号文ＲＣとして、改変を示す特殊な記号を変換暗号文ＲＣに代入する。改変検知部７０４は改変を検知しない場合は、変換暗号文ＲＣを生成する。図示していないが、変換暗号文ＲＣを生成するために、暗号文変換部７０５は乱数生成機能を備えてもよい。送信部７０６は、変換暗号文ＲＣを出力する。
【００４６】
図８は、準同型演算装置８００の構成を示すブロック図である。図８に示すように、準同型演算装置８００は、受信部８０１と、保管部８０２と、入力部８０３と、準同型演算部８０４と、送信部８０５を備える。図示していないが、準同型演算装置８００は、準同型演算装置８００の各部で使用されるデータを記憶する記録媒体を備える。受信部８０１は、変換暗号文ＲＣを受信する。保管部８０２は、受信部８０１で受信された変換暗号文ＲＣを複数保管する。入力部８０３は、第２の公開鍵ｅｐｋを入力する。準同型演算部８０４は、保管部８０２に保存された全ての変換暗号文ＲＣと、入力部８０３にて入力された第２の公開鍵ｅｐｋとから、暗号文ＥＣを生成する。図示していないが、暗号文ＥＣを生成するために、準同型演算部８０４は乱数生成機能などを備えてもよい。送信部８０５は、暗号文ＥＣを出力する。
【００４７】
図９は、第１の復号装置９００の構成を示すブロック図である。図９に示すように、第１の復号装置９００は、受信部９０１と、保管部９０２と、入力部９０３と、復号処理部９０４と、送信部９０５を備える。図示していないが、第１の復号装置９００は、第１の復号装置９００の各部で使用されるデータを記憶する記録媒体を備える。受信部９０１は、復号鍵ｓｋを入力する。保管部９０２は、受信部９０１で受信された復号鍵ｓｋを保管する。入力部９０３には、暗号文Ｃ（Ｄ，Ｅ）、公開鍵ｐｋが入力される。復号処理部９０４は、保管部９０２に保存された復号鍵ｓｋと、入力部９０３にて入力された暗号文Ｃとから、暗号文Ｃの復号結果Ｍを生成する。送信部９０５は、復号結果Ｍを出力する。
【００４８】
図１０は、第２の復号装置１０００の構成を示すブロック図である。図１０に示すように、第２の復号装置１０００は、受信部１００１と、保管部１００２と、入力部１００３と、復号処理部１００４と、送信部１００５を備える。図示していないが、第２の復号装置１０００は、第２の復号装置１０００の各部で使用されるデータを記憶する記録媒体を備える。受信部１００１は、第２の復号鍵ｅｓｋを入力する。保管部１００２は、受信部１００１で受信された第２の復号鍵ｅｓｋを保管する。入力部１００３は、暗号文ＥＣを入力する。復号処理部１００４は、保管部１００２に保存された第２の復号鍵ｅｓｋと、入力部１００３にて入力された暗号文ＥＣとから、暗号文ＥＣの復号結果ＥＭを生成する。送信部１００５は、復号結果ＥＭを出力する。
【００４９】
以下では、本実施の形態の各装置の計算方法に相当する、各装置の動作を説明する。
図２０も参照して説明する。図２０は秘匿分析システム１００のデータの入力、出力を示す図である。
【００５０】
図１１は、共通パラメータ生成装置２００の動作を示すフローチャートである。図２０に示すように、共通パラメータ生成装置２００は、鍵のビット長Ｌｂｉｔを受け取り、共通パラメータｐｕｂを生成し、共通パラメータｐｕｂを出力する。
【００５１】
ステップＳ２０１において、入力部２０１は、鍵のビット長Ｌｂｉｔを受け取る。
ステップＳ２０２において、共通パラメータ生成部２０２は、鍵のビット長Ｌｂｉｔを元に、ペアリング演算可能な要素ＢＧ＝（ｐ、Ｇ、ＧＴ、ｅ）を生成する。
ここで、
ｐは、群Ｇと群ＧＴの位数を示す。
ｅは、Ｇ×Ｇ→ＧＴの写像を持つ双線形写像とする。双線形写像とは、全てのｇ∈Ｇ、及びａ、ｂ∈Ｚｐに対して、ｅ（ｇａ、ｇｂ）＝ｅ（ｇ、ｇ）ａｂ∈ＧＴとなる写像である。このｅを用いた演算を、ペアリング演算と呼ぶ。なおＺｐはｍｏｄ＝ｐの整数の集合である。
ステップＳ２０３において、共通パラメータ生成部２０２は、ハッシュ関数Ｈ及びハッシュ関数鍵ｋを生成する。
ステップＳ２０４において、共通パラメータ生成部２０２は、群Ｇからｇをランダムに選び、ｕ、ｖ、ｗ∈Ｚｐをランダムに選ぶ。
ステップＳ２０５において、共通パラメータ生成部２０２は、
Ｕ＝ｇｕ、Ｖ＝ｇｖ、Ｗ＝ｇｗ、Ｐ＝ｅ（ｇ、ｇ）、
を計算し、共通パラメータｐｕｂ＝（ＢＧ、ｇ、Ｕ、Ｖ、Ｗ、Ｐ、ｋ）
を生成する。
ステップＳ２０６において、送信部２０３は、共通パラメータｐｕｂを出力する。
なお、送信部２０３は出力部であり、図１のように、インターネット１０１を介して送信することを想定しているが、内蔵されて記憶媒体、あるいは取り付けられた記憶媒体に共通パラメータｐｕｂを出力してもよい。これは、後述のすべての送信部も同様である。
【００５２】
図１２は、第１の鍵生成装置３００の動作を示すフローチャートである。図２０に示すように、第１の鍵生成装置３００は、共通パラメータｐｕｂを受け取り、共通パラメータｐｕｂを使用して第１の公開鍵ｐｋ、第１の復号鍵ｓｋを生成し、第１の公開鍵ｐｋ、第１の復号鍵ｓｋを出力する。
【００５３】
ステップＳ３０１において、入力部３０１は、共通パラメータｐｕｂを受信する。
ステップＳ３０２において、鍵生成部３０２は、復号鍵ｓｋ∈Ｚｐをランダムに選択する。
ステップＳ３０３において、鍵生成部３０２は、公開鍵ｐｋ＝ｇｓｋを計算する。
ステップＳ３０４において、鍵送信部３０３は、公開鍵ｐｋと復号鍵ｓｋを送信する。
【００５４】
図１３は、第２の鍵生成装置４００の動作を示すフローチャートである。図２０に示すように、第２の鍵生成装置４００は、共通パラメータｐｕｂを受け取り、共通パラメータｐｕｂを使用して第２の公開鍵ｅｐｋ、第２の復号鍵ｅｓｋを生成し、第２の公開鍵ｅｐｋ、第２の復号鍵ｅｓｋを出力する。第２の公開鍵ｅｐｋは、変換鍵ｒｋの生成、暗号文ＲＣの暗号文ＥＣへの暗号化に使用される。第２の復号鍵ｅｓｋは、暗号文ＥＣの復号に使用される。
【００５５】
ステップＳ４０１において、入力部４０１は、共通パラメータｐｕｂを受け取る。
ステップＳ４０２において、鍵生成部４０２は、共通パラメータｐｕｂを用いて、復号鍵ｅｓｋ∈Ｚｐをランダムに選択する。
ステップＳ４０３において、鍵生成部４０２は、公開鍵ｅｐｋ＝ｇｅｓｋを計算する。
ステップＳ４０４において、鍵送信部４０３は、第２の公開鍵ｅｐｋと第２の復号鍵ｅｓｋを送信する。
【００５６】
図１４は、暗号化装置５００の動作を示すフローチャートである。図１４により、暗号化装置５００による暗号化方法を説明する。図２０に示すように、暗号化装置５００は、共通パラメータｐｕｂ、公開鍵ｐｋを受け取る。また暗号化装置５００は、平文Ｍを取得する。暗号化装置５００は、暗号文Ｃを生成し、出力する。
【００５７】
ステップＳ５０１において、受信部５０１は、共通パラメータｐｕｂ、公開鍵ｐｋを受け取る。保管部５０２は、共通パラメータｐｕｂ、公開鍵ｐｋを保管する。
入力部５０３は、平文Ｍを受け取る。
ステップＳ５０２において、暗号化部５０４は、共通パラメータｐｕｂを用いて、乱数ｒ，ｓ∈Ｚｐをランダムに選択する。
【００５８】
ステップＳ５０３において、暗号化部５０４は、対をなす２つの鍵のうちの一方の鍵である第１の公開鍵ｐｋを用いて平文Ｍを暗号化することにより、平文Ｍが暗号化された準同型演算の可能な暗号文Ｄを生成する。
具体的には暗号化部５０４は、
Ｃ０＝Ｍ・Ｐｒ      （式１）
Ｃ１＝ｐｋｒ        （式２）
を暗号文Ｄとして計算する。
Ｄ＝（Ｃ０，Ｃ１）
である。ここで「・」は、群Ｇ内で定義される乗算を示す。
式１、式２において、
Ｍは平文である。
Ｐは、共通パラメータｐｕｂに含まれるペアリング演算Ｐである。
乱数ｒは、Ｓ５０２で選択されている。
ｐｋは、第１の公開鍵ｐｋである。
このように、暗号化部５０４は、第１の乱数ｒと第２の乱数ｓとを選択し、第１の公開鍵ｐｋに加え、第１の乱数ｒと共通パラメータｐｕｂとを用いて暗号文Ｄを生成する。
また、検知要素生成部５０５は、第１の公開鍵ｐｋと暗号文Ｄ＝（Ｃ０，Ｃ１）とを用いて、暗号文Ｄの改変の検知に用いる検知要素Ｅを生成する。
具体的には、検知要素生成部５０５は、
ｔ＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））      （式３）
Ｃ２＝（ＵｓＶｔＷ）ｒ                    （式４）
を計算する。
（式３）（式４）において、
式３の右辺のＨ（ｋ，（ｐｋ，Ｃ０，Ｃ１））は、ハッシュ関数Ｈ、ハッシュ鍵ｋにより、（ｐｋ，Ｃ０，Ｃ１）を暗号化すること示す。ハッシュ関数Ｈ、ハッシュ鍵ｋの情報は共通パラ―メーターｐｕｂに含まれている。式４の右辺のＵ，Ｖ，Ｗは共通パラ―メーターｐｕｂに含まれている。ｔは式３により得られ、乱数ｒ、乱数ｓはＳ５０２の乱数である。乱数ｒは第１の乱数、乱数ｓは第２の乱数と記す。式３、式４に示すように、検知要素生成部５０５は、第１の公開鍵ｐｋと暗号文Ｄとに加え、第１の乱数ｒと、第２の乱数ｓと、共通パラメータｐｕｂとを用いて、検知要素Ｅを生成する。
【００５９】
ステップＳ５０４において、送信部５０６は、Ｃ＝（Ｃ０、Ｃ１、ｓ、Ｃ２）を出力する。
Ｃ＝（Ｃ０、Ｃ１、ｓ、Ｃ２）＝（Ｄ，Ｅ）
である。ここでＣ０、Ｃ１が暗号文Ｄに相当し、Ｃ２が検知要素Ｅに相当する。
出力部である送信部５０６は、暗号文Ｄと検知要素Ｅとを出力する。
【００６０】
図１５は、変換鍵生成装置６００の動作を示すフローチャートである。図２０に示すように、変換鍵生成装置６００は、共通パラメータｐｕｂ、第１の復号鍵ｓｋ、第２の公開鍵ｅｐｋを受けとり、変換鍵ｒｋを生成して出力する。
【００６１】
ステップＳ６０１において、受信部６０１は、復号鍵ｓｋを受け取り、保管部６０２は復号鍵ｓｋを保管する。入力部６０３は、第２の公開鍵ｅｐｋを受け取る。
ステップＳ６０２において、変換鍵生成部６０４は、
ｒｋ＝ｅｐｋ１／ｓｋ
を計算する。変換鍵ｒｋは、暗号文Ｄに準同型演算が施された場合に準同型演算の演算結果の復号に用いる第２の秘密鍵ｅｓｋ（第２の復号鍵）と対をなす第２の公開鍵ｅｐｋと、第１の復号鍵ｓｋ（第１の秘密鍵）とに基づいて生成されている。
ステップＳ６０３において、送信部６０５は、変換鍵ｒｋを出力する。
【００６２】
図１６は、暗号文変換装置７００の動作を示すフローチャートである。図１６を用いて、暗号文変換装置７００による暗号文変換方法を説明する。図２０に示すように、暗号文変換装置７００は、共通パラメータｐｕｂ，第１の公開鍵ｐｋ，変換鍵ｒｋ、Ｃ＝（Ｄ，Ｅ）＝（Ｃ０、Ｃ１、ｓ、Ｃ２）を受け取り、暗号文Ｃを暗号文ＲＣへ変換し、暗号文ＲＣを出力する。
【００６３】
ステップＳ７０１において、受信部７０１は、変換鍵ｒｋを受け取る。保管部７０２は変換鍵ｒｋ、共通パラメータｐｕｂ，第１の公開鍵ｐｋ等を保管する。変換鍵ｒｋは、暗号文Ｄと異なる暗号文である変換暗号文ＲＣへの変換に使用される。入力部７０３は、暗号文Ｃ＝（Ｄ、Ｅ）と第１の公開鍵ｐｋを受け取る。暗号文Ｃは平文Ｍが暗号化された暗号文Ｄと、検知要素Ｅとを含む。暗号文Ｄは、準同型演算が可能である。このように、取得部である入力部７０３は、平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、暗号文Ｄの改変の検知に用いる検知要素Ｅとを取得する。
ステップＳ７０２において、
改変検知部７０４は、
ｔ’＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））
を計算する。
ｔ’＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））の意味は、
ハッシュ関数Ｈ及びハッシュ鍵ｋを用いて、（ｐｋ，Ｃ０，Ｃ１）を暗号化することを意味する。Ｃ０，Ｃ１は暗号文Ｃに含まれている。
【００６４】
ステップＳ７０３において、改変検知部７０４は、
ｅ（Ｃ２，ｐｋ）＝ｅ（Ｃ１，（ＵｓＶｔ’Ｗ））
が成り立つかを検証する。成り立った場合、つまり改変が検知されない場合、処理はステップＳ７０５へ進み、成り立たなかった場合、つまり改変が検知された場合、処理はステップＳ７０４へ進む。
このように、改変検知部７０４は、暗号文Ｄが改変されているかどうかの基準となる基準値のｅ（Ｃ２，ｐｋ）を、検知要素ＥであるＣ２に基づいて生成し、基準値との照合に用いる照合値のｅ（Ｃ１，（ＵｓＶｔ’Ｗ））を、暗号文Ｄに基づいて生成する。照合値のｅ（Ｃ１，（ＵｓＶｔ’Ｗ））は、
ｔ’＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））
を含んでいる。
ｔ’においてＣ０，Ｃ１は暗号文Ｄである。
よって、照合値のｅ（Ｃ１，（ＵｓＶｔ’Ｗ））は暗号文Ｄに基づいて生成されている。
改変検知部７０４は、基準値と照合値との照合を行う。
より具体的には、改変検知部７０４は、検知要素Ｅと第１の公開鍵ｐｋとに基づいて基準値のｅ（Ｃ２，ｐｋ）を生成し、第１の公開鍵ｐｋと暗号文Ｄとに基づいて照合値のｅ（Ｃ１，（ＵｓＶｔ’Ｗ））を生成する。
【００６５】
ステップＳ７０４において、暗号文変換部７０５は、ＲＣ＝⊥とする。
⊥は変換失敗を示す特別なシンボルであり、暗号文変換が失敗したことを示すことを規定しているのならばどんな記号でも構わない。
ステップＳ７０５において、暗号文変換部７０５は、
Ｃ’１＝ｅ（Ｃ１、ｒｋ）＝ｅ（ｐｋｒ、ｒｋ）
を計算し、
変換暗号文ＲＣ＝（Ｃ０、Ｃ’１）＝（Ｍ・Ｐｒ，ｅ（ｐｋｒ、ｒｋ））
を生成する。このように、変換部である暗号文変換部７０５は、改変検知部７０４による照合の結果、暗号文Ｄの改変が検知されない場合に、変換鍵ｒｋを用いることにより、暗号文Ｄを、暗号文Ｄから変換された変換暗号文ＲＣに変換する。
ステップＳ７０６において、出力部である送信部７０６は、変換暗号文ＲＣ＝（Ｃ０、Ｃ’１）を出力する。
【００６６】
図１７は、準同型演算装置８００の動作を示すフローチャートである。図２０に示すように、準同型演算装置８００は、共通パラメータｐｕｂ，第２の公開鍵ｅｐｋ、複数（ｎ個）のＲＣを受け取る。ｎ個のそれぞれのＲＣをＲＣｉと記す。
【００６７】
ステップＳ８０１において、受信部８０１は、変換後の暗号文ＲＣを受け取り、保管部８０２は暗号文ＲＣを保管する。そして、入力部８０３は、第２の公開鍵ｅｐｋを受け取る。
ステップＳ８０２において、準同型演算部８０４は、
乱数ｒ’∈Ｚｐを選択する。
ステップＳ８０３において、準同型演算部８０４は、以下の式で、新たに左辺のＣ０，Ｃ’１を計算する。
以下の式は、以下の式で得られる準同型演算結果の要求があったことを想定している。準同型演算部８０４は、この要求に応答して、以下の式の演算を行う。
Ｃ０＝Ｐｒ’Πｉ∈［ｎ］Ｃｉ０
Ｃ’１＝ｅ（ｇ，ｅｐｋ）ｒ’×Πｉ∈［ｎ］Ｃ’ｉ１
を計算する。
ステップＳ８０４において、送信部８０５は、上記の準同型演算後の暗号文ＥＣである、
ＥＣ＝（Ｃ０、Ｃ’１）
を出力する。
【００６８】
図１８は、第１の復号装置９００の動作を示すフローチャートである。
図２０に示すように、第１の復号装置９００は、共通パラメータｐｕｂ、第１の公開鍵ｐｋ、第１の復号鍵ｓｋ、暗号文Ｃ＝（Ｃ０、Ｃ１、ｓ、Ｃ２）を受け取る。第１の復号装置９００は、暗号文Ｃを平文Ｍに復号する。
【００６９】
ステップＳ９０１において、受信部９０１は、共通パラメータｐｕｂ、第１の公開鍵ｐｋ、第１の復号鍵ｓｋを受け取る。保管部９０２は、共通パラメータｐｕｂ、第１の公開鍵ｐｋ、第１の復号鍵ｓｋを保管する。入力部９０３は、暗号文Ｃを受け取る。
ステップＳ９０２において、復号処理部９０４は、
ｔ’＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））
を計算する。
ステップＳ９０３において、復号処理部９０４は、
ｅ（Ｃ２，ｐｋ）＝ｅ（Ｃ１，（ＵｓＶｔ’Ｗ））
が成り立つかを検証し、成り立った場合はステップＳ９０５へ、成り立たなかった場合はステップＳ９０４へ進む。
ステップＳ９０４において、復号処理部９０４は、
Ｍ＝⊥
とする。⊥は変換失敗を示す特別なシンボルであり、暗号文変換が失敗したことを示すことを規定しているのならばどんな記号でも構わない。
ステップＳ９０５において、復号処理部９０４は、
Ｍ＝Ｃ０／ｅ（Ｃ１、ｇ）１／ｓｋ
を計算する。
ステップＳ９０６において、送信部９０５は、復号結果Ｍを出力する。
【００７０】
図１９は、第２の復号装置１０００の動作を示すフローチャートである。第２の復号装置１０００は、図２０に示すように、共通パラメータｐｕｂ、第２の秘密鍵ｅｓｋ、暗号文ＥＣ＝（Ｃ０、Ｃ’１）を受け付ける。第２の復号装置１０００は、暗号文ＥＣを復号して、復号結果ＥＭを出力する。
【００７１】
ステップＳ１００１において、受信部１００１は、第２の復号鍵ｅｓｋを受け取り、保管部１００２は第２の復号鍵ｅｓｋを保管する。入力部１００３は、準同型演算後の暗号文ＥＣを受け取る。
ステップＳ１００２において、復号処理部１００４は、
ＥＭ＝Ｃ０／（Ｃ’１）１／ｅｓｋ
を計算する。
ステップＳ１００３において、送信部１００５は、復号結果ＥＭを出力する。
【００７２】
＜＊＊＊実施の形態１の効果の説明＊＊＊＞
本実施の形態は、以下のような効果を奏する。
（１）本実施の形態では、たとえ異なる公開鍵で暗号化されたデータであっても、変換鍵を用いることにより、同じ第２の公開鍵ｅｐｋの暗号文に変換することができる。それにより準同型演算装置を用いることにより、個々の暗号文の情報は秘匿されたままで平文の演算を実行することができる。
（２）本実施の形態では、暗号文Ｃは、復号装置における復号処理で、ｔを用いた検証式を確認する為、暗号文Ｃ内の平文Ｍを変更することはできない。それにもかかわらず、変換鍵を用いることで、同じ第２の公開鍵ｅｐｋの暗号文に変換することができるので、準同型演算装置を用いることにより、個々の暗号文の情報は秘匿されたままで平文の演算を実行できる。
（３）本実施の形態では、公開鍵ｐｋを用いた暗号文Ｃの安全性を非常に高くできるにもかかわらず、秘匿したまま平文Ｍの演算が可能であるため、安全な秘匿分析巣ステムを実現することができる。
（４）暗号化装置は、暗号文Ｄと共に、暗号文Ｄの改変を検知する検知要素Ｅを暗号文Ｃに含めるので、暗号文Ｄの改変を防止できる。
（５）暗号文変換装置は、検知要素Ｅを用いて暗号文Ｄの改変の有無を検証した後、改変がないと判断した場合に、暗号文Ｃを暗号文ＲＣへ変換する。よって、改変されていない暗号文Ｃを準同型演算装置に提供できる。
【００７３】
＊＊＊他の構成＊＊＊
また、本実施の形態ではプロセッサ９１として示す「部」の機能がソフトウェアで実現されるが、変形例として、プロセッサ９１として示す「部」の機能がハードウェアで実現されてもよい。
図２２は、プロセッサ９１として示す「部」の機能が、ハードウェアである処理回路９９で実現される場合を示す。処理回路９９は信号線９９ａに接続している。処理回路９９によって、前述したプロセッサ９１として示す「部」の機能及び「保管部」の機能を実現する。処理回路９９は、プロセッサ９１として示す「部」の機能及び「保管部」の機能を実現する専用の電子回路である。処理回路９９は、具体的には、単一回路、複合回路、プログラム化したプロセッサ、並列プログラム化したプロセッサ、ロジックＩＣ、ＧＡ（Ｇａｔｅ・Ａｒｒａｙ）、ＡＳＩＣ（Ａｐｐｌｉｃａｔｉｏｎ・Ｓｐｅｃｉｆｉｃ・Ｉｎｔｅｇｒａｔｅｄ・Ｃｉｒｃｕｉｔ）、又は、ＦＰＧＡ（Ｆｉｅｌｄ−Ｐｒｏｇｒａｍｍａｂｌｅ・Ｇａｔｅ・Ａｒｒａｙ）である。
【００７４】
プロセッサ９１として示す「部」の機能は、１つの処理回路９９で実現されてもよいし、複数の処理回路９９に分散して実現されてもよい。
【００７５】
別の変形例として、図２〜図１０に示す装置がソフトウェアとハードウェアとの組合せで実現されてもよい。即ち、図２〜図１０に示す装置の一部の機能が専用のハードウェアで実現され、残りの機能がソフトウェアで実現されてもよい。
【００７６】
プロセッサ９１、記憶装置９２、及び、処理回路９９を、総称して「プロセッシングサーキットリ」という。つまり、図２〜図１０における、プロセッサ９１として示す「部」の機能及び「保管部」は、プロセッシングサーキットリにより実現される。
【００７７】
プロセッサ９１として示す「部」を「工程」又は「手順」又は「処理」に読み替えてもよい。また、プロセッサ９１として示す「部」の機能をファームウェアで実現してもよい。
【００７８】
また、図２〜図１０に示す共通パラメータ生成装置２００〜第２の復号装置１０００の動作は、方法、プログラムとして把握できる。暗号化装置５００は、暗号化プログラムによって動作する。暗号化装置５００の動作は、暗号化方法である。また、暗号文変換装置７００は、暗号文変換プログラムによって動作する。暗号文変換装置７００の動作は、暗号文変換方法である。
【００７９】
なお、実施の形態１では公開鍵ｐｋ、復号鍵ｓｋを用いているが、公開鍵ｐｋと復号鍵の役割を逆にし、公開鍵ｐｋを復号に使用してもよい。これは公開鍵ｅｐｋ，復号鍵ｅｓｋについても同様である。
【符号の説明】
【００８０】
ｐｕｂ  共通パラ―メーター、ＲＣ  暗号文、ｐｋ  第１の公開鍵、ｓｋ  第１の復号鍵、ｅｐｋ  第２の公開鍵、ｅｓｋ  第２の復号鍵、ｒｋ  変換鍵、９１  プロセッサ、９２  記憶装置、９３  入力Ｉ／Ｆ、９４  出力Ｉ／Ｆ、９９  処理回路、９９ａ  信号線、１００  秘匿分析システム、１０１  インターネット、２００  共通パラメータ生成装置、２０１  入力部、２０２  共通パラメータ生成部、２０３  送信部、３００  第１の鍵生成装置、３０１  入力部、３０２  鍵生成部、３０３  鍵送信部、４００  第２の鍵生成装置、４０１  入力部、４０２  鍵生成部、４０３  鍵送信部、５００  暗号化装置、５０１  受信部、５０２  保管部、５０３  入力部、５０４  暗号化部、５０５  検知要素生成部、５０６  送信部、６００  変換鍵生成装置、６０１  受信部、６０２  保管部、６０３  入力部、６０４  変換鍵生成部、６０５  送信部、７００  暗号文変換装置、７０１  受信部、７０２  保管部、７０３  入力部、７０４  改変検知部、７０５  暗号文変換部、７０６  送信部、８００  準同型演算装置、８０１  受信部、８０２  保管部、８０３  入力部、８０４  準同型演算部、８０５  送信部、９００  第１の復号装置、９０１  受信部、９０２  保管部、９０３  入力部、９０４  復号処理部、９０５  送信部、１０００  第２の復号装置、１００１  受信部、１００２  保管部、１００３  入力部、１００４  復号処理部、１００５  送信部。
【図１】
2017126001.tif 000003
【図２】
2017126001.tif 000004
【図３】
2017126001.tif 000005
【図４】
2017126001.tif 000006
【図５】
2017126001.tif 000007
【図６】
2017126001.tif 000008
【図７】
2017126001.tif 000009
【図８】
2017126001.tif 000010
【図９】
2017126001.tif 000011
【図１０】
2017126001.tif 000012
【図１１】
2017126001.tif 000013
【図１２】
2017126001.tif 000014
【図１３】
2017126001.tif 000015
【図１４】
2017126001.tif 000016
【図１５】
2017126001.tif 000017
【図１６】
2017126001.tif 000018
【図１７】
2017126001.tif 000019
【図１８】
2017126001.tif 000020
【図１９】
2017126001.tif 000021
【図２０】
2017126001.tif 000022
【図２１】
2017126001.tif 000023
【図２２】
2017126001.tif 000024
【手続補正書】
【提出日】平成28年8月23日(2016.8.23)
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】０００１
【補正方法】変更
【補正の内容】
【０００１】
本発明は、準同型暗号に関するものである。本発明は、準同型暗号を使用する、暗号文変換装置、暗号文変換プログラム及び暗号文変換方法に関する。
【手続補正３】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを含み、準同型演算の不可能なデータＣを取得する取得部と、
前記暗号文Ｄと異なる暗号文であり準同型演算の可能な暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋが保管された保管部と、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を、準同型演算の不可能な前記データＣに含まれる前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を、準同型演算の不可能な前記データＣに含まれる前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値との照合を行い、前記データＣの改変を検知する改変検知部と、
前記改変検知部による照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、準同型演算の可能な前記変換暗号文ＲＣに変換する変換部と、
前記変換暗号文ＲＣを出力する出力部と
を備えた暗号文変換装置。
【請求項２】
前記保管部は、さらに、
公開鍵ｐｋ、共通パラメータｐｕｂを保管し、
前記共通パラメータｐｕｂは、
要素として、要素Ｕ、要素Ｖ，要素Ｗを含み、
ここで、要素Ｕ＝ｇｕ、要素Ｖ＝ｇｖ、要素Ｗ＝ｇｗ、
ｕ、ｖ、ｗは、ｍｏｄＰの整数の集合ＺＰに属する整数、
ｇはｅをＧ×Ｇ→ＧＴの写像を持つ双線形写像とする場合に群Ｇに属する元、
前記取得部は、
準同型演算の不可能な前記データＣとして、Ｃ＝（Ｃ０、Ｃ１、ｓ、Ｃ２）を取得し、
ここで、
（Ｃ０、Ｃ１）は暗号文Ｄ、
ｓはｍｏｄＰの整数の集合ＺＰに属する乱数、
Ｃ２は検知要素Ｅ、
前記改変検知部は、
ハッシュ関数Ｈ及びハッシュ鍵ｋを用いて、前記公開鍵ｐｋ及び前記暗号文Ｄ＝（Ｃ０，Ｃ１）が暗号化されたｔ’＝Ｈ（ｋ，（ｐｋ，Ｃ０，Ｃ１））を計算し、
前記照合値として、前記データＣに含まれるＣ１と、前記共通パラメータｐｕｂに含まれる要素Ｕ、要素Ｖ、要素Ｗと、前記データＣに含まれる乱数ｓと、計算で得られた計算値ｔ’とを用いて、Ｃ１と（ＵｓＶｔ’Ｗ）とのペアリング演算であるｅ（Ｃ１，（ＵｓＶｔ’Ｗ））を生成し、
前記基準値として、前記データＣに含まれるＣ２と、前記公開鍵ｐｋとを用いて、Ｃ２と公開鍵ｐｋとのペアリング演算であるｅ（Ｃ２，ｐｋ）を生成し、
前記基準値として生成されたｅ（Ｃ２，ｐｋ）と、前記照合値として生成されたｅ（Ｃ１，（ＵｓＶｔ’Ｗ））との照合を行う請求項１に記載の暗号文変換装置。
【請求項３】
前記変換鍵ｒｋは、
前記暗号文Ｄ＝（Ｃ０，Ｃ１）に準同型演算が施された場合に準同型演算の演算結果の復号に用いる復号鍵である第２の秘密鍵ｅｓｋと対をなす第２の公開鍵ｅｐｋと、前記公開鍵ｐｋと対をなす秘密鍵ｓｋとに基づき、
ｒｋ＝ｅｐｋ１／ＳＫ
として生成されており、
前記変換部は、
前記暗号文Ｄの改変が検知されない場合に、前記データＣに含まれるＣ１と、前記変換鍵ｒｋとを用いて、Ｃ１と前記変換鍵ｒｋとのペアリング演算であるＣ’１＝ｅ（Ｃ１，ｒｋ）を生成し、
前記データＣに含まれるＣ０と、生成したＣ’１とを用いて、Ｃ０とＣ’１とのペアリング演算であるｅ（Ｃ０，Ｃ’１）を、準同型演算の可能な前記変換暗号文ＲＣとして生成する請求項２に記載の暗号文変換装置。
【請求項４】
コンピュータに、
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを含み、準同型演算の不可能なデータＣを取得する処理、
前記暗号文Ｄと異なる暗号文であり準同型演算の可能な暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋを保管する処理、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を、準同型演算の不可能な前記データＣに含まれる前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を、準同型演算の不可能な前記データＣに含まれる前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値とを照合を行い、前記データＣの改変を検知する処理、
照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、準同型演算の可能な前記変換暗号文ＲＣに変換する処理、
前記変換暗号文ＲＣを出力する処理
を実行させるための暗号文変換プログラム。
【請求項５】
取得部と、保管部と、改変検知部と、変換部と、出力部とを備えた暗号文変換装置が行う暗号文変換方法であって、
前記取得部が、
平文Ｍが暗号化された準同型演算の可能な暗号文Ｄと、前記暗号文Ｄの改変の検知に用いる検知要素Ｅとを含み、準同型演算の不可能なデータＣを取得し、
前記保管部が、
前記暗号文Ｄと異なる暗号文であり準同型演算の可能な暗号文である変換暗号文ＲＣへの変換に用いる変換鍵ｒｋを保管し、
前記改変検知部が、
前記暗号文Ｄが改変されているかどうかの基準となる基準値を、準同型演算の不可能な前記データＣに含まれる前記検知要素Ｅに基づいて生成し、前記基準値との照合に用いる照合値を、準同型演算の不可能な前記データＣに含まれる前記暗号文Ｄに基づいて生成し、前記基準値と前記照合値との照合を行い、前記データＣの改変を検知し、
前記変換部が、
前記改変検知部による照合の結果、前記暗号文Ｄの改変が検知されない場合に、前記変換鍵ｒｋを用いることにより、前記暗号文Ｄを、準同型演算の可能な前記変換暗号文ＲＣに変換し、
前記出力部が、
前記変換暗号文ＲＣを出力する暗号文変換方法。
【国際調査報告】
2017126001.tif 000025
2017126001.tif 000026
2017126001.tif 000027
2017126001.tif 000028