(57)【要約】      （修正有）【課題】任意の公開鍵暗号方式の暗号文を他の公開鍵暗号方式の暗号文に変換するための変換鍵を生成する、変換鍵生成装置を提供する。【解決手段】暗号文変換システム１において、変換鍵生成装置は、第１の公開鍵暗号方式の復号鍵と、第２の公開鍵暗号方式の公開鍵とを入力として、確率的回路又は関数秘密分散を用いて、第１の公開鍵暗号方式による第１の暗号文ｃｔｓを、第２の公開鍵暗号方式による第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄを生成する鍵生成手段、を有する。【選択図】図１
2019211735.tif 000002
【特許請求の範囲】
【請求項１】
第１の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、第２の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを前記第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄを生成する鍵生成手段、
を有することを特徴とする変換鍵生成装置。
【請求項２】
第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄと、前記第１の暗号文ｃｔｓとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の暗号文ｃｔｓを前記第２の暗号文ｔｃｔに変換する変換手段、
を有することを特徴とする暗号文変換装置。
【請求項３】
第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓが変換鍵ｕｔｋｓ→ｄにより変換された第２の暗号文ｔｃｔと、第２の公開鍵暗号方式Σｄの復号鍵ｓｋｄとを入力として、前記第２の暗号文ｔｃｔを前記復号鍵ｓｋｄにより復号したメッセージｍを出力する復号手段、
を有することを特徴とする復号装置。
【請求項４】
第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄを生成する変換鍵生成装置と、前記変換鍵ｕｔｋｓ→ｄにより前記第１の暗号文ｃｔｓを前記第２の暗号文ｔｃｔに変換する暗号文変換装置と、前記第２の暗号文ｔｃｔを復号する復号装置とが含まれる暗号文変換システムであって、
前記変換鍵生成装置は、
前記第１の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、前記第２の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、確率的回路又は関数秘密分散を用いて、前記変換鍵ｕｔｋｓ→ｄを生成する鍵生成手段と、
前記変換鍵ｕｔｋｓ→ｄを前記暗号文変換装置に送信する第１の送信手段と、を有し、
前記暗号文変換装置は、
前記変換鍵ｕｔｋｓ→ｄと、前記第１の暗号文ｃｔｓとを入力として、前記確率的回路又は関数秘密分散を用いて、前記第１の暗号文ｃｔｓを前記第２の暗号文ｔｃｔに変換する変換手段と、
前記第２の暗号文ｔｃｔを前記復号装置に送信する第２の送信手段と、を有し、
前記復号装置は、
前記第２の暗号文ｔｃｔと、前記第２の公開鍵暗号方式Σｄの復号鍵ｓｋｄとを入力として、前記第２の暗号文ｔｃｔを前記復号鍵ｓｋｄにより復号したメッセージｍを出力する復号手段、を有する、
ことを特徴とする暗号文変換システム。
【請求項５】
第１の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、第２の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを前記第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄを生成する鍵生成手順、
をコンピュータが実行することを特徴とする変換鍵生成方法。
【請求項６】
第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄと、前記第１の暗号文ｃｔｓとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の暗号文ｃｔｓを前記第２の暗号文ｔｃｔに変換する変換手順、
をコンピュータが実行することを特徴とする暗号文変換方法。
【請求項７】
第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓが変換鍵ｕｔｋｓ→ｄにより変換された第２の暗号文ｔｃｔと、第２の公開鍵暗号方式Σｄの復号鍵ｓｋｄとを入力として、前記第２の暗号文ｔｃｔを前記復号鍵ｓｋｄにより復号したメッセージｍを出力する復号手段、
をコンピュータが実行することを特徴とする復号方法。
【請求項８】
コンピュータを、請求項１に記載の変換鍵生成装置における各手段、請求項２に記載の暗号文変換装置における各手段又は請求項３に記載の復号装置における各手段のいずれかとして機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、変換鍵生成装置、暗号文変換装置、復号装置、暗号文変換システム、変換鍵生成方法、暗号文変換方法、復号方法、及びプログラムに関する。
【背景技術】
【０００２】
或る方式の暗号文を平文に戻すことなく他の方式の暗号文に変換する技術として暗号文変換と呼ばれる技術が知られている。このような暗号文変換の方式として、プロキシ再暗号方式が従来から数多く提案されている（例えば非特許文献１乃至３）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Matt Blaze, Gerrit Bleumer, and Martin Strauss. Divertible protocols and atomic proxy cryptography. In Kaisa Nyberg, editor, EUROCRYPT'98, volume 1403 of LNCS, pages 127-144. Springer, Heidelberg, May / June 1998.
【非特許文献２】Giuseppe Ateniese, Kevin Fu, Matthew Green, and Susan Hohenberger. Improved proxy re-encryption schemes with applications to secure distributed storage. In NDSS 2005. The Internet Society, February 2005.
【非特許文献３】Ran Canetti and Susan Hohenberger. Chosen-ciphertext secure proxy re-encryption. In Peng Ning, Sabrina De Capitani di Vimercati, and Paul F. Syverson, editors, ACM CCS 07, pages 185-194. ACM Press, October 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、従来の暗号文変換方式では、その方式が定める形式の暗号文しか変換することができなかった。これに対して、或る暗号方式の暗号文を他の暗号方式に変換したい場合、これらの暗号方式にあわせてプロキシ再暗号を一から設計することも可能であるが、設計に時間を要すると共に、実用化への導入コストも高くなる。
【０００５】
また、従来の暗号文変換方式では、既存の公開鍵暗号方式の暗号文（すなわち、プロキシ再暗号でない通常の公開鍵暗号方式の暗号文）を汎用的に他の公開鍵暗号方式の暗号文に変換することができなかった。
【０００６】
本発明は、上記の点に鑑みてなされたもので、任意の公開鍵暗号方式の暗号文を他の公開鍵暗号方式の暗号文に変換することを目的とする。
【課題を解決するための手段】
【０００７】
上記目的を達成するため、本発明の変換鍵生成装置は、第１の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、第２の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを前記第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄを生成する鍵生成手段、を有することを特徴とする。
【０００８】
また、本発明の暗号文変換装置は、第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓを第２の公開鍵暗号方式Σｄによる第２の暗号文ｔｃｔに変換するための変換鍵ｕｔｋｓ→ｄと、前記第１の暗号文ｃｔｓとを入力として、確率的回路又は関数秘密分散を用いて、前記第１の暗号文ｃｔｓを前記第２の暗号文ｔｃｔに変換する変換手段、を有することを特徴とする。
【０００９】
また、本発明の復号装置は、第１の公開鍵暗号方式Σｓによる第１の暗号文ｃｔｓが変換鍵ｕｔｋｓ→ｄにより変換された第２の暗号文ｔｃｔと、第２の公開鍵暗号方式Σｄの復号鍵ｓｋｄとを入力として、前記第２の暗号文ｔｃｔを前記復号鍵ｓｋｄにより復号したメッセージｍを出力する復号手段、を有することを特徴とする。
【発明の効果】
【００１０】
本発明によれば、任意の公開鍵暗号方式の暗号文を他の公開鍵暗号方式の暗号文に変換することができる。
【図面の簡単な説明】
【００１１】
【図１】第一の実施形態に係る暗号文変換システムの全体構成の一例を示す図である。
【図２】第一の実施形態に係る暗号文変換システムの全体処理の一例を示すフローチャート（実施例１）である。
【図３】第一の実施形態に係る暗号文変換システムの全体処理の一例を示すフローチャート（実施例２）である。
【図４】第二の実施形態に係る暗号文変換システムの全体構成の一例を示す図である。
【図５】第二の実施形態に係る暗号文変換システムの全体処理の一例を示すフローチャートである。
【図６】コンピュータのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【００１２】
以下、本発明の実施の形態（第一の実施形態及び第二の実施形態）について説明する。本発明の各実施形態では、任意の公開鍵暗号方式の暗号を他の公開鍵暗号方式の暗号文に変換する暗号文変換システム１について説明する。このような暗号文変換システム１により、現在利用している或る公開鍵暗号方式の暗号文を他の公開鍵暗号方式の暗号文に変換することができるため、例えば、プロキシ再暗号の設計の手間が省けると共に、実用化への導入コストも削減することができる。
【００１３】
＜準備＞
まず、本発明を説明する前に、いくつかの用語等について説明する。
【００１４】
・関数秘密分散（ＦＳＳ：Function Secret Sharing）
以降、関数秘密分散（ＦＳＳ）について説明する。記号等の表記は以下の参考文献１及び２に従う。ただし、筆記体で表されている記号等については、便宜上、ブロック体で表す。また、以降では、加法再構成法に限定して説明する。なお、関数秘密分散の詳細については、例えば、以下の参考文献１や参考文献２を参照されたい。
【００１５】
［参考文献１］
Elette Boyle, Niv Gilboa, and Yuval Ishai. Function secret sharing.
［参考文献２］
Elette Boyle, Niv Gilboa, and Yuval Ishai. Breaking the circuit size barrier for secure computation under DDH. In Matthew Robshaw and Jonathan Katz, editors, CRYPTO 2016, Part I, volume 9814 of LNCS, pages 509-539. Springer, Heidelberg, August 2016.
関数はビット列ｆの集合（クラス）Ｆとして表現される。各集合は、入力長ｎ及び出力長ｍである効率的な評価アルゴリズムＥｖａｌを定める。ここで、Ｅｖａｌ（ｆ，ｘ）は、ｆの入力ｘに対する出力値を計算するようなアルゴリズムである。
【００１６】
このとき、関数クラスＦに対するｍ−パーティ関数秘密分散は、２つのアルゴリズム（Ｇｅｎ，Ｅｖａｌ）からなる。
【００１７】
ここで、Ｇｅｎ（１λ，ｆ）は、鍵生成アルゴリズムであり、セキュリティパラメータ１λと関数の記述ｆ∈Ｆとを入力として、ｍ個の鍵（ｋ１，・・・，ｋｍ）を出力する。なお、各鍵は入力の領域Ｄｆと出力の領域Ｒｆとの記述を含んでいると仮定する。
【００１８】
また、Ｅｖａｌ（ｉ，ｋｉ，ｘ）は、評価アルゴリズムであり、インデックスｉ∈［ｍ］と、鍵ｋｉと、ｘ∈｛０，１｝ｎとを入力として、ｙｉを出力する。ここで、ｙｉはｆ（ｘ）のｉ番目の分割値を示すｆｉ（ｘ）である。
【００１９】
次に、関数クラスＦに対する安全な（ｍ，ｔ）−δ−ＦＳＳは、以下の（１−１）δ−正当性と、（１−２）秘匿性とを満たす。
【００２０】
（１−１）δ−正当性：全てのｆ∈Ｆ、ｘ∈Ｄｆに対して、
【００２１】
【数１】
2019211735.tif 000003
が成立する。
【００２２】
（１−２）秘匿性：チャレンジャーと攻撃者Ａとの間の実験
【００２３】
【数２】
2019211735.tif 000004
を以下のＳｔｅｐ１〜Ｓｔｅｐ５により定義する。
【００２４】
Ｓｔｅｐ１：チャレンジャーはセキュリティパラメータ１λを攻撃者Ａに送る。
【００２５】
Ｓｔｅｐ２：攻撃者Ａは
【００２６】
【数３】
2019211735.tif 000005
であるような関数の記述ｆ０，ｆ１∈Ｆと、大きさが高々ｔの集合Ｓ⊂［ｍ］とをチャレンジャーに送る。
【００２７】
Ｓｔｅｐ３：チャレンジャーは（ｋ１，・・・，ｋｍ）←Ｇｅｎ（１λ，ｆｂ）を計算し、ｖ：＝｛ｋｉ｝ｉ∈Ｓと設定する。
【００２８】
Ｓｔｅｐ４：チャレンジャーはｖを攻撃者Ａに渡す。
【００２９】
Ｓｔｅｐ５：攻撃者Ａは推測ｂ´∈｛０，１｝を出力する。この出力ｂ´が実験の出力である。
【００３０】
このとき、もしどのような攻撃者Ａに対しても
【００３１】
【数４】
2019211735.tif 000006
が成立する場合、ＦＳＳはｔ−安全であるという。もし、δ≦ｎｅｇｌ（λ）の場合は、単に、（ｍ，ｔ）−ＦＳＳと表記する。
【００３２】
正当性は、最終的に計算したい値ｆ（ｘ）をＥｖａｌ（ｉ，ｋｉ，ｘ）によって分散して計算しているということを意味する。また、秘匿性は、攻撃者は鍵の部分集合を与えられても（すなわち、ｋ１，・・・，ｋｍの一部が与えられても）関数ｆに関する情報を得られないということを意味している。
【００３３】
・識別不可能性難読化器（ＩＯ：Indistinguishability Obfuscator）
難読化器とはプログラムを変換し、異なるプログラムに変換する技術である。変換後のプログラムの機能は、変換前のプログラムの機能と完全に同一である。また、変換後のプログラムは、変換前のプログラムに関する情報を漏らさない。特に、識別不可能性難読化器とは、同一の機能を持つ２つの異なるプログラムを変換した場合に、変換後のプログラムがどちらのプログラムを変換して得られたものかを識別できないことを保証する難読化器である。なお、識別不可能性難読化器の詳細については、例えば、以下の参考文献３や参考文献４を参照されたい。
【００３４】
［参考文献３］
Boaz Barak, Oded Goldreich, Russell Impagliazzo, Steven Rudich, Amit Sahai, Salil P.Vadhan, and Ke Yang. On the (im)possibility of obfuscating programs. Journal of the ACM, 59(2):6, 2012.
［参考文献４］
Sanjam Garg, Craig Gentry, Shai Halevi, Mariana Raykova, Amit Sahai, and Brent Waters. Candidate indistinguishability obfuscation and functional encryption for all circuits. SIAM J. Comput., 45(3):882-929, 2016.
すなわち、確率的多項式時間機械ｉＯが回路族｛Ｃλ｝λ∈Ｎに対する識別不可能性難読化器であるとは、以下の（２−１）正当性と、（２−２）識別不可能性とを満たすことである。ここで、Ｎは自然数全体の集合を表す。
【００３５】
（２−１）正当性：任意のセキュリティパラメータλ∈Ｎ、任意のｃ∈Ｃλ、任意の入力ｘに対して、Ｐｒ［ｃ´（ｘ）＝ｃ（ｘ）：ｃ´←ｉＯ（ｃ）］＝１となる。
【００３６】
（２−２）識別不可能性：任意の多項式サイズ識別器Ｄに対して、無視できる関数μ（・）が存在して、任意のセキュリティパラメータλ∈Ｎ、サイズが等しい任意の回路対ｃ０，ｃ１∈Ｃλで任意の入力ｘについてｃ０（ｘ）＝ｃ１（ｘ）が成立するものに対して、以下が成立する。
【００３７】
｜Ｐｒ［Ｄ（ｉＯ（ｃ０））＝１］−Ｐｒ［Ｄ（ｉＯ（ｃ１））＝１］｜≦μ（λ）
これは、ｃ０及びｃ１が同じ機能を持つ回路であるならば、攻撃者はｃ０の難読化を受け取ったのか、ｃ１の難読化を受け取ったのかを区別できないことを意味する。
【００３８】
・確率的識別不可能性難読化器（ＰＩＯ：Probabilistic Indistinguishability Obfuscator）
次に、確率的回路族Ｃ：＝｛Ｃλ｝λ∈Ｎに対する難読化を考える。上述の難読化器は、確定的回路に対するものであったが、確率的識別不可能性難読化器（ＰＩＯ）は確率的回路に対する難読化器である。
【００３９】
確率的多項式時間アルゴリズムｐｉＯが確率的回路族Ｃ＝｛Ｃλ｝λ∈Ｎに対する確率的識別不可能性難読化器であるとは、以下の（３−１）正当性と、（３−２）識別不可能性とを満たすことである。
【００４０】
（３−１）正当性：任意のλ∈Ｎと、任意のｃ∈Ｃλと、任意のｃ´←ｐｉＯ（Ｃ）と、任意の入力ｘとに対して、ｃ（ｘ）の確率分布とｃ´（ｘ）の確率分布とが同一である。なお、この正当性の詳細については、例えば、以下の参考文献５を参照されたい。
【００４１】
［参考文献５］
Yevgeniy Dodis, Shai Halevi, Ron D. Rothblum, and Daniel Wichs. Spooky encryption and its applications. In Matthew Robshaw and Jonathan Katz, editors, CRYPTO 2016, Part III, volume 9816 of LNCS, pages 93-122. Springer, Heidelberg, August 2016.
（３−２）識別不可能性：任意の多項式サイズ識別器Ｄに対して、無視できる関数μ（・）が存在して、任意のセキュリティパラメータλ∈Ｎ、サイズが等しい任意の回路対ｃ０，ｃ１∈Ｃλで任意の入力ｘについてｃ０（ｘ）＝ｃ１（ｘ）が成立するものに対して、以下が成立する。
【００４２】
｜Ｐｒ［Ｄ（ｃ０，ｃ１，ｐｉＯ（ｃ０））＝１］−Ｐｒ［Ｄ（ｃ０，ｃ１，ｐｉＯ（ｃ１））＝１］｜≦μ（λ）
なお、上記の（３−１）の正当性の定義は、参考文献５に記載されているDodisらの定義を採用したが、以下の参考文献６に記載されているCanettiらの定義を採用しても良い。
【００４３】
［参考文献６］
Ran Canetti, Huijia Lin, Stefano Tessaro, and Vinod Vaikuntanathan. Obfuscation of probabilistic circuits and applications. In Dodis and Nielsen [DN15], pages 468-497.
また、上記の（３−２）の識別不可能性の定義についても、上記の参考文献６に記載されているものを採用しても良い。
【００４４】
ここで、識別不可能性難読化器があれば、確率的識別不可能性難読化器が存在することが知られている。また、識別不可能性難読化器と一方向性関数とが存在すれば、確率的回路に対する確率的識別不可能性難読化器が構成できる。
【００４５】
識別不可能性難読化器の具体的な実現方法については、例えば、上記の参考文献４や以下の参考文献７、参考文献８を参照されたい。また、確率的識別不可能性難読化器の具体的な実現方法については、例えば、上記の参考文献６を参照されたい。
【００４６】
［参考文献７］
Boaz Barak, Sanjam Garg, Yael Tauman Kalai, Omer Paneth, and Amit Sahai. Protecting obfuscation against algebraic attacks. In Phong Q. Nguyen and Elisabeth Oswald, editors, EUROCRYPT 2014, volume 8441 of LNCS, pages 221-238. Springer, Heidelberg, May 2014.
［参考文献８］
Sanjam Garg, Eric Miles, Pratyay Mukherjee, Amit Sahai, Akshayaram Srinivasan, and Mark Zhandry. Secure obfuscation in a weak multilinear map model. In Martin Hirt and Adam D. Smith, editors, TCC 2016-B, Part II, volume 9986 of LNCS, pages 241-268.Springer, Heidelberg, October / November 2016.
＜本発明の概要＞
本発明の各実施形態では、任意の公開鍵暗号方式の暗号文を他の公開鍵暗号方式の暗号文に変換する汎用的暗号文変換器（ＵＣＴ：Universal Ciphertext Transformation）として機能する暗号文変換システム１について説明する。そこで、以降では、汎用的暗号文変換器を定義し、この汎用的暗号文変換器の性質等について説明する。なお、汎用的暗号文変換器はプロキシ再暗号の一般化とみることができるため、以降の用語等の多くは、例えば、上記の非特許文献１乃至３に記載されているプロキシ再暗号で用いられている用語等を踏襲する。
【００４７】
以降では、既存の全ての公開鍵暗号方式の総数をＫとして、各公開鍵暗号方式は［Ｋ］に属する番号によって番号付けされているものとする。また、公開鍵暗号方式で生成する鍵対に対して［Ｕ］に属する番号によって番号付けするものとする。ここで、
【００４８】
【数５】
2019211735.tif 000007
と記載した場合は、ｉ番目の鍵対が公開鍵暗号方式
【００４９】
【数６】
2019211735.tif 000008
によって生成されたことを意味する。ただし、σｉ∈［Ｋ］である。なお、Ｇｅｎは鍵生成アルゴリズム、Ｅｎｃは暗号化アルゴリズム、Ｄｅｃは復号アルゴリズムを表す。
【００５０】
以降では、或るユーザが委譲者又は受任者であることを強調するときは、委譲者と受任者の鍵対をそれぞれ（ｐｋｓ，ｓｋｓ）及び（ｐｋｄ，ｓｋｄ）で表す。すなわち、ｐｋｓの下での暗号文はｐｋｄの下での暗号文に変換される。ここで、委譲者は、公開鍵暗号方式ｓの暗号文を公開鍵暗号方式ｓの暗号文に変換して、この変換後の暗号文の復号を受任者に委譲するユーザである。一方で、受任者は、公開鍵暗号方式ｓの暗号文を復号するユーザである。
【００５１】
なお、以降では、Σσｉ（ただし、「σｉ」の「ｉ」は、正確には「σ」の下付き表記「σｉ」である。以降も同様である。）の記述の中に、暗号文空間Ｃσｉ及びメッセージ空間Ｍσｉも含まれているものとする。
【００５２】
汎用的暗号文変換器は、以下の３つのアルゴリズム（ＴｒＫｅｙＧｅｎ，ＴｒＣＴ，ＴｒＤｅｃ）から構成される。
【００５３】
ＴｒＫｅｙＧｅｎ（１λ，Σσｓ，Σσｄ，ｓｋｓ，ｐｋｄ）は、セキュリティパラメータ１λと、公開鍵暗号方式の対（Σσｓ，Σσｄ）と、公開鍵暗号方式Σσｓの復号鍵ｓｋｓと、公開鍵暗号方式Σσｄの公開鍵ｐｋｄとを入力として、ｐｋｓの下での暗号文をｐｋｄの下での暗号文に変換するための変換鍵ｕｔｋｓ→ｄを出力する。以降、セキュリティパラメータ１λはしばしば省略される。
【００５４】
ＴｒＣＴ（Σσｓ，Σσｄ，ｕｔｋｓ→ｄ，ｃｔｓ）は、公開鍵暗号方式の対（Σσｓ，Σσｄ）と、変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σσｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、変換された暗号文ｔｃｔを出力する。
【００５５】
ＴｒＤｅｃ（Σσｄ，ｓｋｄ，ｔｃｔ）は、公開鍵暗号方式Σσｄと、公開鍵暗号方式Σσｄの復号鍵ｓｋｄと、変換鍵ｕｔｋｓ→ｄの下での変換後の暗号文ｔｃｔとを入力として、メッセージｍ∈Ｍσｓを出力する。
【００５６】
ただし、例えば、後述する実施例１等では、汎用的暗号文変換器にはＴｒＤｅｃが含まなくても良い。すなわち、２つのアルゴリズム（ＴｒＫｅｙＧｅｎ，ＴｒＣＴ）を汎用的暗号文変換器としても良い。
【００５７】
なお、変換後の暗号文空間Ｃσｓ→σｄは潜在的にＣσｓ及びＣσｄに依存するため、ｔｃｔが暗号文空間Ｃσｄに含まれない場合も有り得る。
【００５８】
（単方向単一ホップＵＣＴ）
まず、単方向単一ホップの汎用的暗号文変換器（ＵＣＴ）について説明する。単方向単一ホップＵＣＴとは、暗号文が他の暗号文に変換されるのは一度のみであり、一度変換された暗号文はそれ以上変換できない汎用的暗号文変換器のことである。
【００５９】
単方向単一ホップのＵＣＴは、以下の性質（単方向の正当性）を持っている必要がある。すなわち、単方向単一ホップのＵＣＴは、任意の公開鍵暗号方式の対（Σσｓ，Σσｄ）と、鍵対（ｐｋｓ，ｓｋｓ）←Ｇｅｎσｓ（１λｓ），（ｐｋｄ，ｓｋｄ）←Ｇｅｎσｄ（１λｄ）（ただし、「λｉ」（ここではｉはｓ又はｄ）の「ｉ」は、正確にはそれぞれ「λ」の下付き表記「λｉ」である。以降も同様である。）と、メッセージｍ∈Ｍσｓと、ｃｔｓ←Ｅｎｃσｓ（ｐｋｓ，ｍ）とに対して、以下が成立することが必要である。
【００６０】
Ｐｒ［ＴｒＤｅｃ（Σσｄ，ｓｋｄ，ＴｒＣＴ（Σ´，ＴｒＫｅｙＧｅｎ（Σ´，ｓｋｓ，ｐｋｄ），ｃｔｓ））＝ｍ］＝１
ただし、Σ´：＝（Σσｓ，Σσｄ）である。
【００６１】
（双方向ＵＣＴ）
双方向のＵＣＴを考えることもできる。すなわち、鍵対（ｐｋｓ，ｓｋｓ）及び（ｐｋｄ，ｓｋｄ）から生成された変換鍵は、ｐｋｓの下での暗号文をｓｋｄで復号可能な暗号文に変換可能で、かつ、ｐｋｄの下での暗号文をｓｋｓで復号可能な暗号文に変換可能である。しかしながら、単方向ＵＣＴは双方向ＵＣＴよりも強力である。これは、単方向ＵＣＴにより、変換鍵ｕｔｋｓ→ｄと変換鍵ｄ→ｓとを生成することで、双方向ＵＣＴを実現可能なためである。
【００６２】
（単方向複数ホップＵＣＴ）
次に、単方向複数ホップＵＣＴについて説明する。単方向複数ホップＵＣＴでは、変換鍵ｕｔｋｓ→ｄによって変換された暗号文ｔｃｔは公開鍵ｐｋｄの下での暗号文と同一のフォーマットをしており、複数回の暗号文変換が適用可能である。すなわち、ｔｃｔ←ＴｒＣＴ（Σσｓ，Σσｄ，ｕｔｋｓ→ｄ，ｃｔｓ）に対して、
【００６３】
【数７】
2019211735.tif 000009
が成立している。ただし、ｔはｔ≧１であるような整数である。
【００６４】
ここで、Ｌ＝Ｌ（λ）を汎用的暗号文変換器が扱える最大のホップ数とする。このとき、単方向複数ホップＵＣＴは、以下の性質（Ｌ−ホップ正当性）を持っている必要がある。すなわち、単方向複数ホップＵＣＴは、任意の公開鍵暗号方式の対（Σσ０，Σσ１，・・・，ΣσＬ）と、鍵対（ｐｋｉ，ｓｋｉ）←Ｇｅｎσｉ（１λｉ），（ｉ＝０，１，・・・，Ｌ）と、メッセージｍ∈Ｍσ０と、暗号文ｃｔ０←Ｅｎｃσ０（ｐｋ０，ｍ）とに対して、以下が成立することが必要である。
【００６５】
Ｐｒ［ＴｒＤｅｃｊ（ｓｋｊ，ＴｒＣＴ（Σ´，ＴｒＫｅｙＧｅｎ（Σ´，ｓｋｊ−１，ｐｋｊ），ｃｔｊ））＝ｍ］＝１
ただし、ｊ∈［１，Ｌ］であり、
【００６６】
【数８】
2019211735.tif 000010
である。
【００６７】
なお、汎用的暗号文変換器の安全性は、攻撃者が変換鍵を与えられたとしても、暗号文から平文に関する情報が得られないことを要求している。
【００６８】
［第一の実施形態］
以降では、本発明の第一の実施形態について説明する。以降の各実施形態では、簡単のため、Σσｉ＝（Ｇｅｎσｉ，Ｅｎｃσｉ，Ｄｅｃσｉ）をΣｉ＝（Ｇｅｎｉ，Ｅｎｃｉ，Ｄｅｃｉ）とも表す。なお、例えば、或るユーザｉ（例えば、委譲者）の公開鍵暗号方式をΣｉ、別のユーザｊ（例えば、受任者）の公開鍵暗号方式をΣｊとした場合、Σｉ＝Σｊとなることも起こり得る。これは、Σｉ及びΣｊは正確にはそれぞれΣσｉ及びΣσｊであり、σｉ＝σｊ∈［Ｋ］となる場合が起こり得るためである。
【００６９】
＜全体構成＞
まず、本実施形態に係る暗号文変換システム１の全体構成について、図１を参照しながら説明する。図１は、第一の実施形態に係る暗号文変換システム１の全体構成の一例を示す図である。
【００７０】
図１に示すように、本実施形態に係る暗号文変換システム１には、変換鍵生成装置１０と、暗号文変換装置２０と、受信装置３０とが含まれる。なお、変換鍵生成装置１０と、暗号文変換装置２０と、受信装置３０とは、例えば、インターネット等の通信ネットワークを介して通信可能に接続される。
【００７１】
変換鍵生成装置１０は、任意の公開鍵暗号方式の公開鍵による暗号文を他の公開鍵暗号方式の公開鍵による暗号文に変換するための変換鍵を生成するコンピュータ又はコンピュータシステムである。変換鍵生成装置１０は、鍵生成処理部１１０と、記憶部１２０とを有する。
【００７２】
鍵生成処理部１１０は、ＴｒＫｅｙＧｅｎアルゴリズムを実行する。すなわち、鍵生成処理部１１０は、セキュリティパラメータ１λと、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換元の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、変換後の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、公開鍵ｐｋｓの下での暗号文を公開鍵ｐｋｄの下での暗号文に変換するための変換鍵ｕｔｋｓ→ｄを出力する。この変換鍵ｕｔｋｓ→ｄは、例えば、記憶部１２０に記憶されると共に、暗号文変換装置２０に送信される。
【００７３】
なお、鍵生成処理部１１０は、例えば、変換鍵生成装置１０にインストールされた１以上のプログラムがプロセッサ等に実行させる処理により実現される。また、記憶部１２０は、例えば補助記憶装置等を用いて実現可能である。
【００７４】
暗号文変換装置２０は、任意の公開鍵暗号方式の公開鍵による暗号文を他の公開鍵暗号方式の公開鍵による暗号文に変換するコンピュータ又はコンピュータシステムである。暗号文変換装置２０は、変換処理部２１０と、記憶部２２０とを有する。
【００７５】
変換処理部２１０は、ＴｒＣＴアルゴリズムを実行する。すなわち、変換処理部２１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換鍵生成装置１０で生成された変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、公開鍵ｐｋｄの下での暗号文ｃｔｓを公開鍵ｐｋｄの下での暗号文ｔｃｔに変換する。この暗号文ｔｃｔは、受信装置３０に送信される。
【００７６】
ここで、変換処理部２１０は、変換鍵生成装置１０から送信された暗号文ｃｔｓを入力しても良いし、変換鍵生成装置１０とは異なる装置から送信された暗号文ｃｔｓを入力しても良いし、記憶部２２０に記憶されている暗号文ｃｔｓを入力しても良い。
【００７７】
なお、変換処理部２１０は、例えば、暗号文変換装置２０にインストールされた１以上のプログラムがプロセッサ等に実行させる処理により実現される。記憶部２２０は、例えば補助記憶装置等を用いて実現可能である。
【００７８】
受信装置３０は、変換後の暗号文を復号するコンピュータ又はコンピュータシステムである。受信装置３０は、復号処理部３１０と、記憶部３２０とを有する。
【００７９】
復号処理部３１０は、ＴｒＤｅｃアルゴリズムを実行する。すなわち、復号処理部３１０は、公開鍵暗号方式Σｄと、公開鍵暗号方式Σｄの復号鍵ｓｋｄと、変換後の暗号文ｔｃｔとを入力として、メッセージｍを出力する。このメッセージｍは、例えば、記憶部３２０に記憶される。
【００８０】
なお、復号処理部３１０は、例えば、受信装置３０にインストールされた１以上のプログラムがプロセッサ等に実行させる処理により実現される。記憶部３２０は、例えば補助記憶装置等を用いて実現可能である。
【００８１】
なお、図１に示す暗号文変換システム１の構成は一例であって、他の構成であっても良い。例えば、変換鍵生成装置１０と暗号文変換装置２０とが一体で構成されていても良い。又は、例えば、暗号文変換装置２０と受信装置３０とが一体で構成されていても良い。又は、例えば、変換鍵生成装置１０と受信装置３０とが一体で構成されていても良い。
【００８２】
＜第一の実施形態に係る暗号文変換システム１の全体処理（実施例１）＞
以降では、本実施形態に係る暗号文変換システム１の全体処理の実施例１として、確率的識別不可能性難読化器（ＰＩＯ）を用いて単方向単一ホップの汎用的暗号文変換器を構成する場合の全体処理について、図２を参照しながら説明する。図２は、第一の実施形態に係る暗号文変換システム１の全体処理の一例を示すフローチャート（実施例１）である。なお、以降では、確率的識別不可能性難読化器（ＰＩＯ）を用いて構成された単方向単一ホップの汎用的暗号文変換器をＵＣＴｐｉｏとも表す。
【００８３】
ステップＳ１０１：変換鍵生成装置１０の鍵生成処理部１１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換元の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、変換後の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、以下のステップＳ１０１−１〜ステップＳ１０１〜２により変換鍵ｕｔｋｓ→ｄを出力する。
【００８４】
ステップＳ１０１−１：まず、鍵生成処理部１１０は、確率的回路Ｔｐｉｏを以下のように定義（記述）する。したがって、確率的回路Ｔｐｉｏは、Ｔｐｉｏ［Σｓ，Σｄ，ｓｋｓ，ｐｋｄ］とも表される。
【００８５】
確率的回路Ｔｐｉｏに直接書き込まれている値：Σｓ，Σｄ，ｓｋｓ，ｐｋｄ
確率的回路Ｔｐｉｏの入力：ｃｔｓ∈Ｃｓ
確率的回路Ｔｐｉｏの処理：（１）ｍ←Ｄｅｃｓ（ｓｋｓ，ｃｔｓ）を計算する。（２）ｃｔｄ←Ｅｎｃｄ（ｐｋｄ，ｍ）を生成して出力する。
【００８６】
ステップＳ１０１−２：次に、鍵生成処理部１１０は、ｕｔｋｓ→ｄ：＝ｐｉＯ（Ｔｐｉｏ）を変換鍵として出力する。すなわち、変換鍵ｕｔｋｓ→ｄは、確率的回路ＴｐｉｏをＰＩＯによって難読化したものである。
【００８７】
これにより、変換鍵生成装置１０により変換鍵ｕｔｋｓ→ｄが生成される。この変換鍵ｕｔｋｓ→ｄは、例えば、記憶部１２０に記憶されると共に、暗号文変換装置２０に送信される。
【００８８】
ステップＳ１０２：暗号文変換装置２０の変換処理部２１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換鍵生成装置１０で生成された変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、以下のステップＳ１０２−１〜ステップＳ１０２−２により暗号文ｃｔｓを暗号文ｔｃｔに変換する。
【００８９】
ステップＳ１０２−１：まず、変換処理部２１０は、変換鍵をｕｔｋｓ→ｄ＝ｐｉＯ（Ｔｐｉｏ）とパースする。
【００９０】
ステップＳ１０２−２：次に、変換処理部２１０は、ｔｃｔ：＝ｐｉＯ（Ｔｐｉｏ）（ｃｔｓ）を計算して、変換後の暗号文として出力する。
【００９１】
これにより、暗号文変換装置２０により、暗号文ｃｔｓが暗号文ｔｃｔに変換される。この変換後の暗号文ｔｃｔは、例えば、受信装置３０に送信される。
【００９２】
ステップＳ１０３：受信装置３０の復号処理部３１０は、公開鍵暗号方式Σｄと、公開鍵暗号方式Σｄの復号鍵ｓｋｄと、変換後の暗号文ｔｃｔとを入力として、以下のステップＳ１０３−１〜ステップＳ１０３−２によりメッセージｍを出力する。
【００９３】
ステップＳ１０３−１：まず、復号処理部３１０は、ｔｃｔ＝ｃｔｄ´とパースする。
【００９４】
ステップＳ１０３−２：次に、復号処理部３１０は、ｍ´←Ｄｅｃｄ（ｓｋｄ，ｃｔｄ´）を計算して、復号されたメッセージとして出力する。
【００９５】
これにより、受信装置３０により、復号されたメッセージｍ´が得られる。ここで、実施例１におけるメッセージｍ´の正当性について説明する。確率的回路Ｔｐｉｏの定義により、ｃｔｓ←Ｅｎｃｓ（ｐｋｓ，ｍ）に対して、Ｔｐｉｏ（ｃｔｓ）＝Ｅｎｃｄ（ｐｋｄ，ｍ）＝ｃｔｄが成立する。このため、確率的識別不可能性難読化器ｐｉＯの正当性と、Σｓの正当性とにより、ｔｃｔ＝ｐｉＯ（Ｔｐｉｏ）（ｃｔｓ）＝ｃｔｄが成立する。したがって、Σｄの正当性により、ｍ＝ｍ´＝Ｄｅｃｄ（ｓｋｄ，ｃｔｄ´）が成立する。すなわち、任意のｊ∈［Ｌ］（ｓ＝０及びｔｃｔ０＝ｃｔｓと考える。）に対して、以下が成立する。
【００９６】
ＴｒＤｅｃ（Σｊ，ｓｋｊ，ＴｒＣＴ（Σ´，ＴｒＫｅｙＧｅｎ（Σ´，ｓｋｊ−１，ｐｋｊ），ｔｃｔｊ−１））＝Ｄｅｃｊ−１（ｓｋｊ−１，ｔｃｔｊ−１）
ただし、Σ´＝（Σｊ−１，Σｊ）である。
【００９７】
以上より、公開鍵暗号方式Σｉが安全であり、ｐｉＯが安全な確率的回路に対する識別不可能性難読化であるならば、ＵＣＴｐｉｏは、公開鍵暗号方式に対する安全な単方向複数ホップの汎用的暗号文変換器である。
【００９８】
＜第一の実施形態に係る暗号文変換システム１の全体処理（実施例２）＞
以降では、本実施形態に係る暗号文変換システム１の全体処理の実施例２として、関数秘密分散（ＦＳＳ）を用いて単方向複数ホップの汎用的暗号文変換器を構成する場合の全体処理について、図３を参照しながら説明する。図３は、第一の実施形態に係る暗号文変換システム１の全体処理の一例を示すフローチャート（実施例２）である。ここで、単方向複数ホップの汎用的暗号文変換器を構成する関数秘密分散は、２−パーティ関数秘密分散（すなわち、ＦＳＳ＝（ＦＳＳ．Ｇｅｎ，ＦＳＳ．Ｅｖａｌ））であるものとする。なお、以降では、関数秘密分散を用いて構成された単方向複数ホップの汎用的暗号文変換器をＵＣＴｆｓｓとも表す。
【００９９】
ステップＳ２０１：変換鍵生成装置１０の鍵生成処理部１１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換元の公開鍵暗号方式Σｓの復号鍵ｓｋｓと、変換後の公開鍵暗号方式Σｄの公開鍵ｐｋｄとを入力として、以下のステップＳ２０１−１〜ステップＳ２０１〜３により変換鍵ｕｔｋｓ→ｄを出力する。
【０１００】
ステップＳ２０１−１：まず、鍵生成処理部１１０は、関数Ｔｆｓｓを以下のように定義（記述）する。したがって、関数Ｔｆｓｓは、Ｔｆｓｓ［Σｓ，ｓｋｓ］とも表される。
【０１０１】
関数Ｔｆｓｓに直接書き込まれている値：Σｓ，ｓｋｓ
関数Ｔｆｓｓの入力：暗号文ｃｔｓ∈Ｃｓ
関数Ｔｆｓｓの処理：ｍ←Ｄｅｃｓ（ｓｋｓ，ｃｔｓ）を計算して出力する。
【０１０２】
ステップＳ２０１−２：次に、鍵生成処理部１１０は、関数秘密分散の鍵（ｋ１，ｋ２）←ＦＳＳ．Ｇｅｎ（１λ，Ｔｆｓｓ［Σｓ，ｓｋｓ］）と、ｋ２の暗号文
【０１０３】
【数９】
2019211735.tif 000011
とを生成する。以降では、明細書のテキストの便宜上、このｋ２の暗号文を「ｃｔｄ〜」とも表す。
【０１０４】
ステップＳ２０１−３：次に、鍵生成処理部１１０は、ｕｔｋｓ→ｄ：＝（ｋ１，ｃｔｄ〜）を変換鍵として出力する。
【０１０５】
これにより、変換鍵生成装置１０により変換鍵ｕｔｋｓ→ｄが生成される。この変換鍵ｕｔｋｓ→ｄは、例えば、記憶部１２０に記憶されると共に、暗号文変換装置２０に送信される。
【０１０６】
ステップＳ２０２：暗号文変換装置２０の変換処理部２１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換鍵生成装置１０で生成された変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、以下のステップＳ２０２−１〜ステップＳ２０２−３により暗号文ｃｔｓを暗号文ｔｃｔに変換する。
【０１０７】
ステップＳ２０２−１：まず、変換処理部２１０は、変換鍵をｕｔｋｓ→ｄ＝（ｋ１，ｃｔｄ〜）とパースする。
【０１０８】
ステップＳ２０２−２：次に、変換処理部２１０は、ｙ１←ＦＳＳ．Ｅｖａｌ（１，ｋ１，ｃｔｓ）を計算する。
【０１０９】
ステップＳ２０２−３：次に、変換処理部２１０は、変換後の暗号文をｔｃｔ：＝（ｃｔｓ，ｙ１，ｃｔｄ〜）として出力する。
【０１１０】
これにより、暗号文変換装置２０により、暗号文ｃｔｓが暗号文ｔｃｔに変換される。この変換後の暗号文ｔｃｔは、例えば、受信装置３０に送信される。
【０１１１】
ステップＳ２０３：受信装置３０の復号処理部３１０は、公開鍵暗号方式Σｄと、公開鍵暗号方式Σｄの復号鍵ｓｋｄと、変換後の暗号文ｔｃｔとを入力として、以下のステップＳ２０３−１〜ステップＳ２０３−３によりメッセージｍを出力する。
【０１１２】
ステップＳ２０３−１：まず、復号処理部３１０は、変換後の暗号文をｔｃｔ＝（ｃｔｓ，ｙ１，ｃｔｄ〜）とパースする。
【０１１３】
ステップＳ２０３−２：次に、復号処理部３１０は、ｋ２´←Ｄｅｃｄ（ｓｋｄ，ｃｔｄ〜）と、ｙ２←ＦＳＳ．Ｅｖａｌ（２，ｋ２´，ｃｔｓ）とを計算する。
【０１１４】
ステップＳ２０３−３：次に、復号処理部３１０は、ｍ´：＝ｙ１＋ｙ２を、復号されたメッセージとして出力する。ここで、実施例２におけるメッセージｍ´の正当性について説明する。公開鍵暗号方式Σｄの正当性より、ｋ２＝ｋ２´←Ｄｅｃｄ（ｓｋｄ，ｃｔｄ〜）が成立する。これは、ｃｔｄ〜←Ｅｎｃｄ（ｐｋｄ，ｋ２）であるためである。また、（ｋ１，ｋ２）←ＦＳＳ．Ｇｅｎ（１λ，Ｔｆｓｓ［Σｓ，ｓｋｓ］）に対して、（２，１）−δ−ＦＳＳの正当性により、以下が成立する。
【０１１５】
Ｔｆｓｓ［Σｓ，ｓｋｓ］（ｃｔｓ）＝ＦＳＳ．Ｅｖａｌ（１，ｋ１，ｃｔｓ）＋ＦＳＳ．Ｅｖａｌ（２，ｋ２，ｃｔｓ）＝ｙ１＋ｙ２
更に、関数Ｔｆｓｓの定義より、ｃｔｓ←Ｅｎｃｓ（ｐｋｓ，ｍ）に対して、Ｔｆｓｓ［Σｓ，ｓｋｓ］（ｃｔｓ）＝ｍが成立する。したがって、ｍ＝ｍ´である。
【０１１６】
以上より、公開鍵暗号方式Σｉが安全であり、ＦＳＳが任意の回路に対する安全な（２，１）−δ−ＦＳＳであるならば、ＵＣＴｆｓｓは、公開鍵暗号方式に対する安全な単方向単一ホップの汎用的暗号文変換器である。
【０１１７】
なお、任意の回路に対する安全な（２，１）−δ−ＦＳＳは、ＬＷＥ（Learning With Error）仮定あるいは識別不可能性難読化を用いて実現することができる。このことの詳細については、例えば、上記の参考文献１や参考文献５を参照されたい。
【０１１８】
（実施例２の拡張）
上記の実施例２で説明したＵＣＴｆｓｓは定数回複数ホップに拡張することができる。定数とはセキュリティパラメータに依存しない定数という意味である。上記の実施例２では変換処理部２１０がｔｃｔ：＝（ｃｔｓ，ｙ１，ｃｔｄ〜）を出力したが、これに代えて、変換処理部２１０は、
【０１１９】
【数１０】
2019211735.tif 000012
を変換後の暗号文として出力するようにする。ここで、
【０１２０】
【数１１】
2019211735.tif 000013
である。
【０１２１】
よって、ｔｃｔ∈Ｃｄ２が成立し、このｔｃｔをもう一度別のユーザｄ´に向けて、変換鍵ｕｔｃｄ→ｄ´を使うことで変換することができる。
【０１２２】
また、復号処理部３１０が実行するＴｒＤｅｃアルゴリズムは次のように修正される。すなわち、ユーザｄ´の受信装置３０の復号処理部３１０は、まず、復号鍵ｓｋｄ´を使うことで（ｃｔｓ，ｙ１，ｋ２）を得ることができる。ただし、ｋ２はＦＳＳ．Ｇｅｎ（Ｔｆｓｓ［Σｓ，ｓｋｓ］）によって生成された関数秘密分散（ＦＳＳ）の鍵である。次に、復号処理部３１０は、ｍ＝ＦＳＳ．Ｅｖａｌ（１，ｋ１，ｃｔｓ）＋ＦＳＳ．Ｅｖａｌ（２，ｋ２，ｃｔｓ）を得ることができる。
【０１２３】
上記では２回ホップの場合について説明したが、同様にＬ回ホップの場合も実現することができる。なお、この方法は、暗号文の変換を繰り返す毎に、暗号文の長さが或る多項式に従って増大するため、変換を定数回しか適用することができない。
【０１２４】
以上より実施例２の拡張についても、実施例２と同様に、公開鍵暗号方式Σｉが安全であり、ＦＳＳが任意の回路に対する安全な（２，１）−δ−ＦＳＳであるならば、ＵＣＴｆｓｓは、公開鍵暗号方式に対する安全な単方向単一ホップの汎用的暗号文変換器である。
【０１２５】
［第二の実施形態］
以降では、本発明の第二の実施形態について説明する。
【０１２６】
＜全体構成＞
以降では、本実施形態に係る暗号文変換システム１の全体構成について、図４を参照しながら説明する。図４は、第二の実施形態に係る暗号文変換システム１の全体構成の一例を示す図である。
【０１２７】
図４に示すように、本実施形態に係る暗号文変換システム１には、変換鍵生成装置１０と、外部ストレージ装置４０とが含まれる。変換鍵生成装置１０と外部ストレージ装置４０とは、例えば、インターネット等の通信ネットワークを介して通信可能に接続されている。
【０１２８】
変換鍵生成装置１０は、第一の実施形態と同様に、変換鍵を生成するコンピュータ又はコンピュータシステムである。また、変換鍵生成装置１０が有する鍵生成処理部１１０及び記憶部１２０も第一の実施形態と同様である。
【０１２９】
外部ストレージ装置４０は、任意の公開鍵暗号方式の公開鍵による暗号文を記憶しており、この暗号文を他の公開鍵暗号方式の公開鍵による暗号文に変換するコンピュータ又はコンピュータシステムである。外部ストレージ装置４０は、例えば、任意の公開鍵暗号方式の公開鍵による暗号文を記憶するクラウドストレージサーバ等である。外部ストレージ装置４０は、変換処理部４１０と、記憶部４２０とを有する。
【０１３０】
変換処理部４１０は、ＴｒＣＴアルゴリズムを実行する。すなわち、変換処理部２１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換鍵生成装置１０で生成された変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、公開鍵ｐｋｄの下での暗号文ｃｔｓを公開鍵ｐｋｄの下での暗号文ｔｃｔに変換する。ここで、変換処理部４１０は、記憶部４２０に記憶されている暗号文ｃｔｓを入力として、この暗号文ｃｔｓをｔｃｔに変換する。そして、変換処理部４１０は、変換後の暗号文ｔｃｔを記憶部４２０に記憶する。
【０１３１】
このように、第二の実施形態に係る暗号文変換システム１では、外部ストレージ装置４０に記憶されている暗号文ｃｔｓを、他の公開鍵暗号方式の公開鍵の下での暗号文ｔｃｔに変換する。これにより、例えば、或る公開鍵暗号方式Σｓで暗号化された大量の暗号文が外部ストレージ装置４０に保存されているような場合に、これらの大量の暗号文を当該外部ストレージ装置４０上で他の公開鍵暗号方式Σｄの暗号文に変換することができる。
【０１３２】
しかも、このとき、本実施形態に係る暗号文変換システム１では、公開鍵暗号方式Σｓの復号鍵ｓｋｓを外部ストレージ装置４０に渡すことなく、暗号文の変換を行うことができる。このため、例えば、公開鍵暗号方式Σｓに脆弱性が見つかったような場合や公開鍵ｐｋｓの生成に利用したセキュリティパラメータでは十分な安全性が保証できない時代遅れのものになってしまったような場合等に、別の公開鍵暗号方式（例えば最新の公開鍵暗号方式等）への移行やより長いセキュリティパラメータを使って生成した公開鍵への移行等を外部ストレージ装置４０により容易に行うことができるようになる。
【０１３３】
＜第二の実施形態に係る＞
以降では、本実施形態に係る暗号文変換システム１の全体処理について、図５を参照しながら説明する。図５は、第二の実施形態に係る暗号文変換システム１の全体処理の一例を示すフローチャートである。
【０１３４】
ステップＳ３０１：変換鍵生成装置１０の鍵生成処理部１１０は、第一の実施形態と同様の方法により変換鍵ｕｔｋｓ→ｄを生成し、この変換鍵ｕｔｋｓ→ｄを外部ストレージ装置４０に出力（送信）する。
【０１３５】
ステップＳ３０２：外部ストレージ装置４０の変換処理部４１０は、公開鍵暗号方式の対（Σｓ，Σｄ）と、変換鍵生成装置１０で生成された変換鍵ｕｔｋｓ→ｄと、公開鍵暗号方式Σｓの公開鍵ｐｋｓの下での暗号文ｃｔｓとを入力として、第一の実施形態と同様の方法により暗号文ｃｔｓを暗号文ｔｃｔに変換する。そして、変換処理部４１０は、変換後の暗号文ｔｃｔを記憶部４２０に出力（保存）する。なお、変換処理部４１０は、暗号文ｃｔｓを記憶部４２０から入力する。
【０１３６】
これにより、外部ストレージ装置４０により、記憶部４２０に記憶されている暗号文ｃｔｓが暗号文ｔｃｔに変換される。
【０１３７】
＜ハードウェア構成＞
最後に、上記の各実施形態で説明した変換鍵生成装置１０、暗号文変換装置２０、受信装置３０及び外部ストレージ装置４０のハードウェア構成について説明する。これらの各装置は、例えば図６に示すコンピュータ５００と同様のハードウェア構成により実現可能である。図６は、コンピュータ５００のハードウェア構成の一例を示す図である
図５に示すコンピュータ５００は、入力装置５０１と、表示装置５０２と、ＲＡＭ（Random Access Memory）５０３と、ＲＯＭ（Read Only Memory）５０４と、プロセッサ５０５と、外部Ｉ／Ｆ５０６と、通信Ｉ／Ｆ５０７と、補助記憶装置５０８とを有する。これら各ハードウェアは、それぞれがバス５０９を介して通信可能に接続されている。
【０１３８】
入力装置５０１は、例えばキーボードやマウス、タッチパネル等であり、ユーザが各種操作を入力するのに用いられる。表示装置５０２は、例えばディスプレイ等であり、ユーザに対して処理結果等を表示するのに用いられる。なお、コンピュータ５００は、入力装置５０１及び表示装置５０２のうちの少なくとも一方を有していなくても良い。
【０１３９】
ＲＡＭ５０３は、プログラムやデータを一時保持する揮発性の半導体メモリである。ＲＯＭ５０４は、電源を切ってもプログラムやデータを保持することができる不揮発性の半導体メモリである。プロセッサ５０５は、例えばＣＰＵ（Central Processing Unit）等であり、ＲＯＭ５０４や補助記憶装置５０８等からプログラムやデータをＲＡＭ５０３上に読み出して処理を実行する演算装置である。
【０１４０】
外部Ｉ／Ｆ５０６は、外部装置とのインタフェースである。外部装置には、記録媒体５０６ａ等がある、記録媒体５０６ａとしては、例えば、ＣＤ（Compact Disc）、ＤＶＤ（Digital Versatile Disk）、ＳＤメモリカード（Secure Digital memory card）、ＵＳＢ（Universal Serial Bus）メモリカード等が挙げられる。
【０１４１】
通信Ｉ／Ｆ５０７は、コンピュータ５００を通信ネットワークに接続するためのインタフェースである。コンピュータ５００は、通信Ｉ／Ｆ５０７を介して、他の装置との間でデータ通信を行うことができる。
【０１４２】
補助記憶装置５０８は、例えばＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）等の不揮発性の記憶装置である。補助記憶装置５０８には、各種データやプログラム等が記憶されている。
【０１４３】
本発明の各実施形態で説明した変換鍵生成装置１０、暗号文変換装置２０、受信装置３０及び外部ストレージ装置４０は、例えば図６に示すコンピュータ５００のハードウェア構成を有することにより、上述した各種処理を実現することができる。なお、本発明の各実施形態で説明した変換鍵生成装置１０、暗号文変換装置２０、受信装置３０及び外部ストレージ装置４０は、例えば、複数台のコンピュータ５００のハードウェア構成を有していても良い。
【０１４４】
本発明は、具体的に開示された上記の各実施形態に限定されるものではなく、特許請求の範囲から逸脱することなく、種々の変形や変更、組み合わせ等が可能である。
【符号の説明】
【０１４５】
１        暗号文変換システム
１０      変換鍵生成装置
２０      暗号文変換装置
３０      受信装置
４０      外部ストレージ装置
１１０    鍵生成処理部
１２０    記憶部
２１０    変換処理部
２２０    記憶部
３１０    復号処理部
３２０    記憶部
４１０    変換処理部
４２０    記憶部
【図１】
2019211735.tif 000014
【図２】
2019211735.tif 000015
【図３】
2019211735.tif 000016
【図４】
2019211735.tif 000017
【図５】
2019211735.tif 000018
【図６】
2019211735.tif 000019