説明

暗号化システム、公開鍵暗号化方法、鍵生成装置、計算機および公開鍵秘密鍵生成プログラム

【課題】ランダム関数へのオラクルアクセスに基づく公開鍵暗号方法を用いて、標準計算機モデル上で適応的選択暗号文攻撃に対して安全(IND−CCA2安全)な公開鍵暗号方法Π'を与えるための方法を提供する。
【解決手段】鍵生成装置、暗号化装置、および、暗号化システムであって、鍵生成装置は、鍵生成部を備え、鍵生成部は、鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数と落とし戸とから、二つの対を生成し、関数族を生成し、生成された二つの対と、関数族とを用いて、暗号化鍵PKと復号化鍵SKとを生成することを特徴とする。このようにして得られた公開鍵暗号において、公開鍵暗号Πおよび関数族がある一定の安全性を満たすとき、公開鍵暗号Π'はIND−CCA2安全であることが示される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メッセージを暗号化して通信を行う暗号システムに関する。
【背景技術】
【0002】
公開鍵暗号は、公開鍵と秘密鍵との異なる鍵情報を用いて、データの暗号化・復号化を行う暗号技術のひとつである。公開鍵暗号は、「鍵生成」、「暗号化」及び「復号化」の3つの手段(アルゴリズムなど)から定義される。鍵生成手段とは、セキュリティパラメータ(例えば、鍵長を指定するパラメータ)を入力として、公開鍵と秘密鍵とを出力する手段である。暗号化手段とは、メッセージ文と公開鍵を入力として暗号文を出力する手段である。復号化手段とは、暗号文と秘密鍵とを入力としてメッセージ文を出力する手段である。
【0003】
例えば、公開鍵暗号を暗号通信に利用する場合、鍵生成は受信者が行い、公開鍵のみを公開し、秘密鍵は安全な方法によって保持する。送信者は、メッセージ文を作成し、暗号化手段を用いて暗号化を行い、暗号文を受信者に送信する。受信者は、復号化手段を用いて暗号文の復号化を行う。
【0004】
公開鍵暗号の安全性は、通常、標準計算機モデル、または、ランダムオラクルモデル(例えば、非特許文献1)上で与えられる。
【0005】
標準計算機モデルとは、(対話型)チューリングマシンから構成されるモデルで、現実の計算機システムに近いものと考えられている。
【0006】
一方、ランダムオラクルモデルでは、全てのパーティ(攻撃者を含む)がランダム関数へオラクルとしてアクセスすることが許されている(以下、このようなランダム関数をランダムオラクルと呼ぶ)。
【0007】
現実のシステムにおいては、ランダムオラクルの部分は実用的なハッシュ関数に置き換えて利用される(このような方法論は、random oracle methodologyと呼ばれる)。このとき、ランダムオラクルモデル上における安全性証明は現実のシステムにおいては通用しなくなってしまうが、安全性の何らかの根拠を示すものと考えられている。
【0008】
前述のように、ランダムオラクルモデルは観念論的なモデルであるが、実用性に優れた暗号プロトコルの設計が容易であるため、多くの暗号プロトコルが提案されている。
【0009】
random oracle methodologyに関するネガティブな結果として、非特許文献2では、ランダムオラクルモデル上では安全であるが、ランダムオラクルのいかなる関数への置き換えに対しても安全ではない暗号プロトコルが存在することが示されている。また、非特許文献3では、RSA full-domain hash 署名は標準計算機モデル上で安全にはならないと考えられる根拠を示している。
【0010】
一方、random oracle methodologyに関するポジティブな結果として、非特許文献4は、ランダムオラクルの性質の一部を満たすハッシュ関数の実現方法について記載している。非特許文献5では、非特許文献7に記載のOAEPにおけるランダムオラクルの関数への置き換えを考察している。非特許文献6では、非特許文献1に記載の公開鍵暗号方法において、ランダムオラクルのadaptive perfectly one-way hash functionへの置き換えを考察している。
【先行技術文献】
【非特許文献】
【0011】
【非特許文献1】M. Bellare and P. Rogaway. Random Oracles are Practical: A Paradigm for Designing Efficient Protocols, http://www.cse.ucsd.edu/ ~mihir/papers/ro.html
【非特許文献2】R. Canetti, O. Goldreich, and S. Halevi. Random Oracle Methodology, Revised,http://domino.research.ibm.com/comm/research_projects.nsf/pages/security.Publications.html/
【非特許文献3】Y. Dodis, R.Oliveira, and K. Pietrzak. On the Generic Insecurity of Full-domain Hash, Advances in Cryptography -- CRYPTO2005, pp.449-466, Springer-Verlag, 2005
【非特許文献4】R. Canetti. Towards realizing random oracles: Hash functions that hide all partial information, http://domino.research.ibm.com/comm/ research_projects.nsf/pages/security.Publications.html/
【非特許文献5】A. Boldyreva and M. Fischlin. On the Security of OAEP, http://www.cc.gatech.edu/~aboldyre/publications.html
【非特許文献6】O. Pandey, R. Pass, and V. Vaikuntanathan. Adaptive One-way Functions and Applications, Advances in Cryptography -- CRYPTO2008, pp.57-74, Springer-Verlag, 2008
【非特許文献7】M. Bellare and P. Rogaway. Optimal asymmetric encryption -- How to encrypt with RSA,http://cseweb.ucsd.edu/~mihir/ papers/oaep.html
【発明の概要】
【発明が解決しようとする課題】
【0012】
前述のように、公開鍵暗号の安全性は、通常、ランダムオラクルモデル、または、標準計算機モデル上で与えられる。しかし、ランダムオラクルモデル上における公開鍵暗号方法と、標準計算機モデル上における公開鍵暗号方法とはそれぞれのモデルにおいて考察されるにとどまり、これらのモデル相互間において、安全性を考察することは行われていない。
【0013】
本発明は、第三者から情報を秘匿するための暗号方法を安全かつ効率的に実現するため、ランダムオラクルモデル上の公開鍵暗号方法で一定の安全性を満たすものをベースとして、標準計算機モデル上で安全性証明可能であり、かつ、暗号化および復号化の高速処理に優れた公開鍵暗号方法を提供することを目的とする。
【課題を解決するための手段】
【0014】
本発明の代表的な一例を示せば以下の通りである。すなわち、暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムであって、前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、前記鍵生成部は、前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成し、前記生成された二つの対(π1,π1-1)および(π2,π2-1)を前記第1の記憶部に格納し、式(1)を満たす関数族Fiを生成し(但し、fiσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(2)を満たすものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納し、前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(3)によって暗号化鍵PKと復号化鍵SKとを生成し、前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信し、前記暗号化部は、前記第2の入力部を介して前記暗号化装置にメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記第2の記憶部に格納し、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(4)を計算し、当該計算結果を前記第2の記憶部に格納し、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて、式(5)を計算し、当該計算結果を前記第2の記憶部に格納し、前記第2の記憶部に格納される情報を用いて、暗号文Cを式(6)に示すように生成し、前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信し、前記復号化部は、前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(7)を計算して、当該計算結果を前記第3の記憶部に格納し、前記暗号文Cと、前記復号化鍵SKとを用いて、式(8)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記第3の記憶部に格納し、式(9)を満たすか否かを判定し、前記式(9)を満たすと判定された場合に、前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする。
【0015】
【数1】

【0016】
【数2】

【0017】
【数3】

【0018】
【数4】

【0019】
【数5】

【0020】
【数6】

【0021】
【数7】

【0022】
【数8】

【0023】
【数9】

【発明の効果】
【0024】
本発明によれば、標準計算機モデル上において安全性証明可能であり、かつ、実用的な公開鍵暗号を提供することが可能となる。
【図面の簡単な説明】
【0025】
【図1】本発明の第1の実施形態における暗号システムの構成の一例を示す説明図である。
【図2】本発明の第1の実施形態の受信者側装置の構成の一例を示す説明図である。
【図3】本発明の第1の実施形態の鍵生成部の構成の一例を示す説明図である。
【図4】本発明の第1の実施形態の復号化部の構成の一例を示す説明図である。
【図5】本発明の第1の実施形態の受信者側装置のハードウェア構成の一例を示すブロック図である。
【図6】本発明の第1の実施形態の送信者側装置の構成の一例を示す説明図である。
【図7】本発明の第1の実施形態の暗号化部の構成の一例を示す説明図である。
【図8】本発明の第1の実施形態の暗号化・復号化処理を説明するフローチャートである。
【図9】本発明の第2の実施形態の暗号化・復号化処理を説明するフローチャートである。
【図10】本発明の第3の実施形態の暗号化・復号化処理を説明するフローチャートである。
【発明を実施するための形態】
【0026】
以下の実施形態においては、暗号プロトコルを公開鍵暗号プロトコルとして利用し、公開鍵を暗号化鍵とし、秘密鍵を復号化鍵として利用する例を説明するが、本発明はこのような態様に限定されるわけではない。
【0027】
[第1の実施形態]
本発明の第1の実施形態では、標準計算機モデル上で証明可能安全性をもつ公開鍵暗号方法について述べる。
【0028】
図1は、本発明の第1の実施形態における暗号システム10の構成の一例を示す説明図である。
【0029】
図1に示すように、暗号システム10は、受信者側装置100と送信者側装置200とを備えており、これらはネットワーク300を介して相互に情報を送受信することができる。
【0030】
なお、暗号システム10は、受信者側装置100および送信者側装置200を、それぞれ、一以上備えていてもよい。
【0031】
図2は、本発明の第1の実施形態の受信者側装置100の構成の一例を示す説明図である。
【0032】
受信者側装置100は、入力部110、演算部120、記憶部130、通信部140および出力部150を備える。
【0033】
入力部110は、受信者側装置100に情報を入力する。
【0034】
演算部120は、論理演算、べき乗算、剰余演算、ハッシュ関数演算およびランダム関数演算を含む各種演算の実行、並びに、受信者側装置100の各部の制御を行う。演算部120は、鍵生成部121および復号化部122を備える。
【0035】
鍵生成部121は、公開鍵(暗号化鍵)および秘密鍵(復号化鍵)を生成する。復号化部122は、秘密鍵を用いて復号化処理を実行する。
【0036】
記憶部130は、入力部110から入力された情報および演算部120の処理結果等を格納する。通信部140は、ネットワーク300を介して送信者側装置200と通信する。出力部150は、外部に情報を出力する。
【0037】
図3は、本発明の第1の実施形態の鍵生成部121の構成の一例を示す説明図である。
【0038】
鍵生成部121は、落とし戸付き一方向性関数生成部123および関数生成部124を備える。
【0039】
落とし戸付き一方向性関数生成部123は、落とし戸付き一方向性関数(π)と落とし戸(π-1)との対を生成する。関数生成部124は、関数族Fiを生成する。
【0040】
図4は、本発明の第1の実施形態の復号化部122の構成の一例を示す説明図である。
【0041】
復号化部122は、関数計算部125、復号化処理部126および検査部127を備える。
【0042】
関数計算部125は、ハッシュ関数等の各種関数の計算を実行する。復号化処理部126は、秘密鍵を用いて、入力された暗号文を復号化する。検査部127は、復号化処理部126によって復号化されたメッセージを検証する。
【0043】
図5は、本発明の第1の実施形態の受信者側装置100のハードウェア構成の一例を示すブロック図である。
【0044】
受信者側装置100は、例えば、図5に示すようなハードウェア構成からなる計算機によって実現される。
【0045】
図5に示すように、受信者側装置100は、CPU(Central Processing Unit)400、メモリ401、外部記憶装置403、通信装置404、出力装置405、入力装置406および読書装置407を備える。
【0046】
CPU400は、メモリ401上に展開されたプログラムを実行する。
【0047】
メモリ401は、CPU400によって実行されるプログラムおよびCPU400が処理を実行するために必要となる情報を格納する。また、メモリ401は、CPU400が処理を実行するためのワークエリアとしても用いられる。
【0048】
外部記憶装置403は、CPU400によって実行される各種プログラムが格納される。また、処理に必要となる情報および処理結果等も格納される。
【0049】
通信装置404は、ネットワークを介して他の装置と通信するための装置である。通信装置は、例えばNIC(Network Interface Card)等が考えられる。
【0050】
出力装置405は、CPU400によって実行された処理の結果を出力するための装置である。出力装置405は、例えば、ディスプレイ等が考えられる。
【0051】
入力装置406は、受信者側装置100に情報を入力するための装置である。入力装置406は、例えば、キーボード又はマウスなどが考えられる。
【0052】
読書装置407は、可搬性を有する記憶媒体408から情報を読み出したり、又は、情報を書き込んだりするための装置である。なお、記憶媒体408としては、CD−ROM(Compact Disk Read Only Memory)又はDVD(Digital Versatile Disk Read Only Memory)等が考えられる。
【0053】
受信者側装置100が備える各構成を実現する方法としては、例えば、入力部110は、CPU400が入力装置406を利用することによって実現でき、演算部120は、外部記憶装置403に格納される所定のプログラムをメモリ401にロードしてCPU400が実行することによって実現でき、記憶部130は、CPU400がメモリ401又は外部記憶装置403を利用することによって実現でき、通信部140は、CPU400が通信装置404を利用することによって実現でき、出力部150は、CPU400が出力装置405を利用することによって実現できる。
【0054】
なお、受信者側装置100が備える各構成は、プログラムとして実現されてもよいし、ハードウェアとして実現されてもよい。
【0055】
メモリ401にロードされる所定のプログラムは、読書装置407を介して記憶媒体408から、又は、通信装置404を介してネットワークから、外部記憶装置403に格納され、その後、メモリ401上にロードされてCPU400によって実行されるようにしてもよい。また、読書装置407を介して記憶媒体408から、又は、通信装置404を介してネットワークから、メモリ401上に直接ロードされ、CPU400によって実行されるようにしてもよい。
【0056】
図6は、本発明の第1の実施形態の送信者側装置200の構成の一例を示す説明図である。
【0057】
送信者側装置200は、入力部210、演算部220、記憶部230、通信部240および出力部250を備える。
【0058】
入力部210は、送信者側装置200に情報を入力する。
【0059】
演算部220は、論理演算、べき乗算、剰余演算、ハッシュ関数演算およびランダム関数演算を含む各種演算の実行、並びに、送信者側装置200の各部の制御を行う。演算部220は、乱数生成部221および暗号化部222を備える。
【0060】
乱数生成部221は、処理に必要となる乱数を生成する。暗号化部222は、公開鍵を用いて暗号化処理を実行する。
【0061】
記憶部230は、入力部210から入力された情報および演算部220の処理結果等を格納する。通信部240は、ネットワーク300を介して受信者側装置100と通信する。出力部250は、外部に情報を出力する。
【0062】
図7は、本発明の第1の実施形態の暗号化部222の構成の一例を示す説明図である。
【0063】
暗号化部222は、関数計算部223および暗号化処理部224を備える。
【0064】
関数計算部223は、ハッシュ関数等の各種関数の計算を実行する。暗号化処理部224は、公開鍵を用いて入力されたメッセージ文を暗号化する。
【0065】
図8は、本発明の第1の実施形態の暗号化・復号化処理を説明するフローチャートである。
【0066】
[鍵生成処理]
受信者側装置100の演算部120は、入力部110を介して、1k(kは、セキュリティパラメータ)の入力を受け付ける(S500)。当該入力を受けた演算部120の鍵生成部121が処理を開始する。
【0067】
鍵生成部121の落とし戸付き一方向性関数生成部123は、入力1kに基づいて、落とし戸付き一方向性関数と落とし戸との二つの対(π1,π1-1)および(π2,π2-1)を生成し、生成された落とし戸付き一方向性関数と落とし戸との対を記憶部130に格納する(S501)。ここで、各1≦i≦2について、πiは落とし戸付き一方向性関数を示し、πi-1は落とし戸を示す。
【0068】
次に、鍵生成部121の関数生成部124は、式(10)を満たす関数族Fiを生成し、生成された関数族Fiを記憶部130に格納する(S502)。
【0069】
【数10】

【0070】
但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(11)を満たすものとする。
【0071】
【数11】

【0072】
次に、鍵生成部121は、記憶部130に格納された落とし戸付き一方向性関数と落とし戸との対(π1,π1-1)および(π2,π2-1)と、関数族Fiとを用いて、式(12)によって公開鍵PKと秘密鍵SKとを生成する(S503)。
【0073】
【数12】

【0074】
鍵生成部121は、出力装置105を用いて、生成された公開鍵PKおよび暗号鍵SKを出力する。なお、出力された公開鍵PKは、ネットワーク300その他の搬送手段を介して、他の装置が取得できるように公開される。
【0075】
本実施形態では、受信者側装置100が復号化部122を備えるため、秘密鍵SKは、記憶部130に格納されるものとするが、本発明はこれに限定されることなく秘密鍵SKを他の装置に出力又は格納してもよい。
【0076】
[暗号化処理]
送信者側装置200は、入力部210又は通信部240を介して、メッセージ文M∈{0,1}k2および公開鍵PKを取得する(S510)。その後、送信者側装置200の演算部220が処理を開始する。
【0077】
演算部220は、メッセージ文Mの暗号文Cを以下の処理によって生成する。
【0078】
まず、演算部220の乱数生成部221は、r∈{0,1}k1と、σ1∈S1,kおよびσ2∈S2,kとをランダムに選択し、選択されたr、σ1およびσ2を記憶部230に格納する(S511)。
【0079】
次に、演算部220の暗号化部222は、取得された公開鍵PKと、記憶部230に格納されるσ1およびσ2とを用いて式(13)を計算し、当該計算結果を記憶部230に格納する(S512)。
【0080】
【数13】

【0081】
具体的には、暗号化部222の関数計算部223が、公開鍵PK、σ1およびσ2を用いて式(13)を計算する。
【0082】
演算部220の暗号化部222は、記憶部230に格納される情報を用いて、式(14)を計算し、計算結果を記憶部230に格納する(S513)。
【0083】
【数14】

【0084】
ここで、暗号化部222の関数計算部223が関数fσ1とfσ2とを計算する。
【0085】
演算部220の暗号化部222は、記憶部230に格納された情報を用いて、C=(u1,u2,r,v)を生成し、メッセージ文Mの暗号文として出力部250又は通信部240を介して、受信者側装置100に送信する(S514)。
【0086】
[復号化処理]
受信者側装置100の演算部120は、入力部110又は通信部140を介して、秘密鍵SKおよび暗号文Cを取得する(S520)。なお、本実施形態では、秘密鍵SKは鍵生成部121から取得され、暗号文Cは送信者側装置200から取得される。その後、受信者側装置100の復号化部122が処理を開始する。
【0087】
復号化部122は、暗号文Cを以下の処理によって復号化する。
【0088】
まず、復号化部122の復号化処理部126は、暗号文Cに含まれるu1およびu2と、秘密鍵SKに含まれる落とし戸π1-1およびπ2-2とを用いて、式(15)を計算し、計算結果を記憶部130に格納する(S521)。
【0089】
【数15】

【0090】
復号化部122の関数計算部125は、記憶部130に格納されたデータを用いて、M∈{0,1}k2およびz∈{0,1}k3を式(16)によって計算し、計算結果を記憶部130に格納する(S522)。
【0091】
【数16】

【0092】
復号化部122の検査部127は、記憶部130に格納される計算結果を用いて、式(17)が成立するか否かを検査する(S523)。
【0093】
【数17】

【0094】
式(17)を満たす、すなわち、検査に成功したと判定された場合、復号化部122は、暗号文Cのメッセージ文として出力部150からMを出力する。
【0095】
式(17)を満たさない、すなわち、検査に失敗したと判定された場合、復号化部122は、出力部150からエラーを示すメッセージを出力する。
【0096】
本実施形態で説明した公開鍵暗号方法は、非特許文献1に記載のランダムオラクルモデル上の公開鍵暗号方法をベースにして、標準計算機モデル上で安全となるように変換している。
【0097】
本実施形態で説明した公開鍵暗号方法の安全性に関しては、関数族Fi(i=1,2)がそれぞれ次の条件を満たすとき、IND−CCA2安全であることが証明される(IND−CCA2安全の詳細については、非特許文献1または非特許文献7に記載されている)。
【0098】
「攻撃者は(1k,πi(σi),Fi,k)を入力として、関数族Fiへの攻撃を行う。攻撃者は、次のオラクルにアクセスすることが許されている。
・オラクル1:質問xに対して、Hi(x)がリターンされる。
・オラクル2:質問(u,x)に対して、u≠πi(σi)ならばfσ’(x)がリターンされる。但し、σ'=πi-1(u)、u=πi(σi)ならばエラーを示すメッセージがリターンされる。
このとき、攻撃者は関数Hiがランダム関数なのか関数fσiなのかを1/2よりもよい確率で推測することが難しい。」
【0099】
[第2の実施形態]
第2の実施形態では、ランダムオラクルO1,…,Onを利用する公開鍵暗号Π=(K,E,D)をベースにして、ランダムオラクルに依存しない公開鍵暗号Π'=(K',E',D')を与える一般的方法について説明する。但し、公開鍵暗号プロトコルΠの鍵生成手段Kはランダムオラクルに依存しないものとする。
【0100】
第2の実施形態における暗号システムは、第1の実施形態と同一であるため説明を省略する。また、受信者側装置100および送信者側装置200の構成についても第1の実施形態と同一であるため説明を省略する。
【0101】
以下、第1の実施形態との差異を中心に説明する。
【0102】
図9は、本発明の第2の実施形態の暗号化・復号化処理を説明するフローチャートである。
【0103】
[鍵生成処理]
受信者側装置100の演算部120は、入力部110に介して、1k(kは、セキュリティパラメータ)の入力を受け付ける(S600)。当該入力を受け付けた演算部120の鍵生成部121が処理を開始する。
【0104】
鍵生成部121は、公開鍵暗号プロトコルΠを用いて、公開鍵pkおよび秘密鍵skを生成し、記憶部130に格納する(S601)。
【0105】
鍵生成部121の落とし戸付き一方向性関数生成部123は、入力1kに基づいて、落とし戸付き一方向性関数と落とし戸との対(π,π-1)を生成し、生成された落とし戸付き一方向性関数と落とし戸との対(π,π-1)を記憶部130に格納する(S602)。ここで、πは落とし戸付き一方向性関数を示し、π-1は落とし戸を示す。
【0106】
鍵生成部121の関数計算部125は、式(18)を満たす関数族Fiを生成し、生成された関数族Fiを記憶部130に格納する(S603)。
【0107】
【数18】

【0108】
但し、各fσiは、ランダム関数Oiと同一の定義域と、値域とを持つものとする。
【0109】
鍵生成部121は、公開鍵pkおよび秘密鍵skと、落とし戸付き一方向性関数と落とし戸との対(π,π-1)と、関数族Fiとを用いて、式(19)によってランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の公開鍵PKと秘密鍵SKとを生成する(S604)。
【0110】
【数19】

【0111】
鍵生成部121は、出力装置105を用いて、生成された公開鍵PKおよび暗号鍵SKを出力する。なお、出力された公開鍵PKは、ネットワーク300その他の搬送手段を介して、他の装置が取得できるように公開される。
【0112】
本実施形態では、受信者側装置100が復号化部122を備えるため、秘密鍵SKは記憶部130に格納されるものとするが、本発明はこれに限定されることなく、秘密鍵SKを他の装置に出力又は格納してもよい。
【0113】
[暗号化処理]
送信者側装置200は、入力部210又は通信部240を介して、メッセージ文Mおよび公開鍵PKを取得する(S610)。その後、送信者側装置200の演算部220が処理を開始する。
【0114】
演算部220は、メッセージ文Mの暗号文Cを以下の処理によって生成する。
【0115】
まず、演算部220の乱数生成部221は、σi∈Si,k(1≦i≦n)をランダムに選択し、選択されたσiを記憶部230に格納する(S611)。
【0116】
演算部220の暗号化部222は、選択されたσiおよび公開鍵PKに含まれる一方向性関数πを用いて式(20)を計算し、計算結果を記憶部230に格納する(S612)。
【0117】
【数20】

【0118】
具体的には、暗号化処理部224が式(20)を計算する。
【0119】
演算部220の暗号化部222は、公開鍵PKおよび公開鍵暗号プロトコルΠを用いて、式(21)を計算し、計算結果を記憶部230に格納する(S613)。
【0120】
【数21】

【0121】
具体的には、暗号化処理部224が、公開鍵PKおよび公開鍵暗号プロトコルΠを用いて、式(21)を計算する。ここで、暗号化アルゴリズムEは、各ランダムオラクルOiの代わりに、関数計算部223を用いて関数fσi(1≦i≦n)による計算を実行する。
【0122】
演算部220は、記憶部230に格納された計算結果を用いて、C=(u,v)を生成し、メッセージMの暗号文として出力部250又は通信部240を介して、受信者側装置100に送信する(S614)。
【0123】
[復号化処理]
受信者側装置100の演算部120は、入力部110又は通信部140を介して、秘密鍵SKおよび暗号文C=(u,v)取得する(S620)。なお、本実施形態では、秘密鍵SKは鍵生成部121から取得され、暗号文Cは送信者側装置200から取得される。その後、受信者側装置100の復号化部122が処理を開始する。
【0124】
復号化部122の復号化処理部126は、秘密鍵SKに含まれるπ-1と、暗号文Cに含まれるuとを用いて、式(22)を計算し、計算結果を記憶部130に格納する(S621)。
【0125】
【数22】

【0126】
復号化部122の復号化処理部126は、秘密鍵SKおよび公開鍵暗号プロトコルΠを用いて、式(23)を計算し、計算結果を記憶部130に格納する(S622)。
【0127】
【数23】

【0128】
ここで、復号化アルゴリズムDは、各ランダムオラクルOiの代わりに、関数計算部125を用いて関数fσiによる計算を実行する。
【0129】
以上の処理によって、受信者側装置100の演算部120は、Mを暗号文Cに対するメッセージ文として取得することができる。
【0130】
本実施形態で説明した公開鍵暗号方法の安全性に関しては、公開鍵暗号Πおよび関数族の組(F1,…,Fn)が次の条件を満たすとき、IND−CCA2安全であることが証明される。
【0131】
Πの条件:攻撃者は、(1k,pk)を入力として、公開鍵暗号プロトコルΠへの攻撃を行う。攻撃者は、次のオラクルにアクセスすることが許されている(ランダムオラクルへのアクセスは許されていない。)。
・オラクル1:質問(x0,x1)に対して、ランダムにb∈{0,1}が選択され、式(24)がリターンされる。但し、このオラクルへの質問は1回のみ。
【0132】
【数24】

【0133】
・オラクル2:質問((f1,…,fn),C)(fiはOiと同一の定義域、値域を持つ関数)に対して、式(25)がリターンされる。但し、この質問はオラクル1への質問を行う前のみ。
【0134】
【数25】

【0135】
・オラクル3:質問((f1,…,fn),C)(fi=b、または、Oiと同一の定義域、値域を持つ関数)に対して、式(26)がリターンされる。但し、この質問はオラクル1への質問を行った後のみ。
【0136】
【数26】

【0137】
このとき、攻撃者は1/2よりもよい確率でbの値を推測することが難しい。
【0138】
(F1,…,Fn)の条件:攻撃者は(1k,π(σ1||…||σn),F1,k,…,Fn,k)を入力として、関数族の組(F1,…,Fn)への攻撃を行う。攻撃者は、次のオラクルにアクセスすることが許されている。
・オラクル1:質問(i,x)(1≦i≦n)に対して、Hi(x)がリターンされる。
・オラクル2:質問(i,u,x)(1≦i≦n)に対して、σ'1||…||σ'n=π-1(u)であるとき、σ'i≠σiならばfσ’i(x)がリターンされる。σ'i=σiならばHi(x)がリターンされる。
このとき、攻撃者は関数(H1,…,Hn)がランダム関数の組なのか、関数(fσ1,…,fσn)の組なのかを1/2よりもよい確率で推測することが難しい。
【0139】
[第3の実施形態]
第3の実施形態は、第2の実施形態において説明した方法に基づく公開鍵暗号方法である。
【0140】
第3の実施形態における暗号システムは、第1の実施形態と同一であるため説明を省略する。また、受信者側装置100および送信者側装置200の構成についても第1の実施形態と同一であるため説明を省略する。
【0141】
図10は、本発明の第3の実施形態の暗号化・復号化処理を説明するフローチャートである。
【0142】
[鍵生成処理]
受信者側装置100の演算部120は、入力部110を介して、1k(kは、セキュリティパラメータ)の入力を受け付ける(S700)。当該入力を受け付けた演算部120の鍵生成部121が処理を開始する。
【0143】
鍵生成部121の落とし戸付き一方向性関数生成部123は、入力1kに基づいて、落とし戸付き一方向性関数と落とし戸との対(π,π-1)を生成し、生成された落とし戸付き一方向性関数と落とし戸との対(π,π-1)を記憶部130に格納する(S701)。ここで、πは落とし戸付き一方向性関数を示し、π-1は落とし戸を示す。
【0144】
鍵生成部121の関数計算部125は、式(27)を満たす関数族Fiを生成し、生成された関数族Fiを記憶部130に格納する(S702)。
【0145】
【数27】

【0146】
但し、fσiは、各σ1∈S1,k、σ2∈S2,kに対して、式(28)を満たすものとする。
【0147】
【数28】

【0148】
鍵生成部121は、落とし戸付き一方向性関数と落とし戸との対(π,π-1)と、関数族Fiとを用いて、式(29)によって公開鍵PKと秘密鍵SKとを生成する(S703)。
【0149】
【数29】

【0150】
鍵生成部121は、出力装置105を用いて、生成された公開鍵PKおよび暗号鍵SKを出力する。なお、出力された公開鍵PKは、ネットワーク300を介してその他の搬送手段を介して、他の装置が取得できるように公開される。
【0151】
本実施形態では、受信者側装置100が復号化部122を備えるため、秘密鍵SKは記憶部130に格納されるものとするが、本発明はこれに限定されることなく、秘密鍵SKを他の装置に出力又は格納してもよい。
【0152】
[暗号化処理]
送信者側装置200は、入力部210又は通信部240を介して、メッセージ文M∈{0,1}k2および公開鍵PKを取得する(S710)。その後、送信者側装置200の演算部220が処理を開始する。
【0153】
演算部220は、メッセージ文Mの暗号文Cを以下の処理によって生成する。
【0154】
演算部220の乱数生成部221は、r∈{0,1}k1、σ1∈S1,kおよびσ2∈S2,kをランダムに選択し、選択されたr、σ1およびσ2を記憶部230に格納する(S711)。
【0155】
演算部220の暗号化部222は、選択されたσ1およびσ2と、公開鍵PKに含まれる一方向性関数πとを用いて式(30)を計算し、計算結果を記憶部230に格納する(S712)。
【0156】
【数30】

【0157】
具体的には、暗号化処理部224が式(30)を計算する。
【0158】
演算部220の暗号化部222は、暗号鍵PKと、選択されたr、σ1およびσ2とを用いて、式(31)を計算し、計算結果を記憶部230に格納する(S713)。
【0159】
【数31】

【0160】
ここで、関数計算部223が関数fσ1とfσ2とを計算する。
【0161】
演算部220は、記憶部230に格納された計算結果を用いて、C=(u,r,v)を生成し、メッセージMの暗号文として出力部250又は通信部240を介して、受信者側装置100に送信する(S714)。
【0162】
[復号化処理]
受信者側装置100の演算部120は、入力部110又は通信部140を介して、秘密鍵SKおよび暗号文C=(u,r,v)を取得する(S720)。なお、本実施形態では、秘密鍵SKは鍵生成部121から取得され、暗号文Cは送信者側装置200から取得される。その後、受信者側装置100の復号化部122が処理を開始する。
【0163】
復号化部122の復号化処理部126は、秘密鍵SKに含まれる落とし戸π-1と、暗号文Cに含まれるuとを用いて、式(32)を計算し、計算結果を記憶部130に格納する(S721)。
【0164】
【数32】

【0165】
復号化部122の復号化処理部126は、秘密鍵SKと暗号文Cとを用いて、M∈{0,1}k2およびz∈{0,1}k3を式(33)によって計算し、計算結果を記憶部130に格納する(S722)。
【0166】
【数33】

【0167】
復号化部122の検査部127は、記憶部130に格納される計算結果を用いて、式(34)が成立するか否かを検査する(S723)。
【0168】
【数34】

【0169】
式(34)を満たす、すなわち、検査に成功したと判定された場合、復号化部122は、暗号文Cのメッセージ文として出力部150からMを出力する。
【0170】
式(34)を満たさない、すなわち、検査に失敗したと判定された場合、復号化部122は、出力部150からエラーを示すメッセージを出力する。
【0171】
本実施形態で説明した公開鍵暗号方法の安全性に関しては、関数族の組(F1,F2)が次の条件を満たすとき、IND−CCA2安全であることが証明される。
【0172】
「攻撃者は(1k,π(σ1||σ2),F1,k,F2,k)を入力として、関数族の組(F1,F2)への攻撃を行う。攻撃者は、次のオラクルにアクセスすることが許されている。
・オラクル1:質問(i,x)(1≦i≦2)に対して、Hi(x)がリターンされる。
・オラクル2:質問(i,u,x)(1≦i≦2)に対して、σ'1||σ'2=π-1(u)であるとき、σ'i≠σiならばfσ’i(x)がリターンされる。σ'i=σiならばHi(x)がリターンされる。
このとき、攻撃者は関数(H1,H2)がランダム関数の組なのか、関数(fσ1,fσ2)の組なのかを1/2よりもよい確率で推測することが難しい。」
第1の実施形態、第2の実施形態および第3の実施形態では、受信者側装置100と送信者側装置200との間において暗号通信を行う例を示したが、本発明は、このような態様に限定されるわけではなく、暗号通信をベースとした、電子ショッピングシステム、電子メールシステム、会員用情報配信システム、コンテンツ配信システム、その他ファイル暗号システムなど様々なシステムに適用することが可能である。
【0173】
また、各装置が備える構成は、CPUがメモリ上にロードされたプログラムを実行することによって実現してもよいし、独立したハードウェアとして実現してもよい。
【0174】
また、鍵生成部121、暗号化部222および復号化部122は、異なる計算機に備えられていてもよいし、一つの計算機に備えられていてもよい。
【0175】
また、鍵生成部121、暗号化部222および復号化部122のそれぞれを、一つの装置として実現してもよい。
【符号の説明】
【0176】
10 暗号システム
100 受信者側装置
105 出力装置
110 入力部
120 演算部
121 鍵生成部
122 復号化部
123 落とし戸付き一方向性関数生成部
124 関数生成部
125 関数計算部
126 復号化処理部
127 検査部
130 記憶部
140 通信部
150 出力部
200 送信者側装置
210 入力部
220 演算部
221 乱数生成部
222 暗号化部
223 関数計算部
224 暗号化処理部
230 記憶部
240 通信部
250 出力部
300 ネットワーク
400 CPU(Central Processing Unit)
401 メモリ
403 外部記憶装置
404 通信装置
405 出力装置
406 入力装置
407 読書装置
408 記憶媒体

【特許請求の範囲】
【請求項1】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムであって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記鍵生成部は、
前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成し、前記生成された二つの対(π1,π1-1)および(π2,π2-1)を前記第1の記憶部に格納し、
式(1)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(2)を満たすものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納し、
前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(3)によって暗号化鍵PKと復号化鍵SKとを生成し、
前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信し、
前記暗号化部は、
前記第2の入力部を介して前記暗号化装置にメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(4)を計算し、当該計算結果を前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて、式(5)を計算し、当該計算結果を前記第2の記憶部に格納し、
前記第2の記憶部に格納される情報を用いて、暗号文Cを式(6)に示すように生成し、
前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信し、
前記復号化部は、
前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(7)を計算して、当該計算結果を前記第3の記憶部に格納し、
前記暗号文Cと、前記復号化鍵SKとを用いて、式(8)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記第3の記憶部に格納し、
式(9)を満たすか否かを判定し、
前記式(9)を満たすと判定された場合に、前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする暗号化システム。
【数1】

【数2】

【数3】

【数4】

【数5】

【数6】

【数7】

【数8】

【数9】

【請求項2】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムであって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記鍵生成部は、
前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、ランダムオラクル関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kを用いて、公開鍵暗号方法Πの暗号化鍵pkと復号化鍵skとを生成して、前記生成された暗号化鍵pkと復号化鍵skとを前記第1の記憶部に格納し、
落とし戸付き一方向性関数πと落とし戸とπ-1からの対(π,π-1)を生成して、前記生成された対(π,π-1)を前記第1の記憶部に格納し、
式(10)を満たす関数族Fiを生成して(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納し、
前記暗号化鍵pkおよび復号化鍵skと、前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(11)によって前記ランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の暗号化鍵PKと復号化鍵SKとを生成し、
前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信し、
前記暗号化部は、
前記第2の入力部を介して前記暗号化装置にメッセージ文Mが入力された場合に、σi∈Si,k(1≦i≦n)をランダムに選択して、前記選択されたσiを前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(12)を計算して、当該計算結果を前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(13)を計算して、当該計算結果を前記第2の記憶部に格納し、
前記第2の記憶部に格納される情報を用いて、メッセージ文Mの暗号文Cを式(14)に示すように生成し、
前記暗号化部が、前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信し、
前記復号化部は、
前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(15)によってσiを計算して、当該計算結果を前記第3の記憶部に格納し、
前記公開鍵暗号プロトコルΠと前記復号化鍵SKとを用いて式(16)によってMを計算し、
前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする暗号化システム。
【数10】

【数11】

【数12】

【数13】

【数14】

【数15】

【数16】

【請求項3】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムであって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記鍵生成部は、
前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数πと落とし戸π-1とから対(π,π-1)を生成し、前記生成された対(π,π-1)を前記第1の記憶部に格納し、
式(17)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(18)を満たすものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納し、
前記生成された対(π,π-1)と前記関数族Fiとを用いて、式(19)によって暗号化鍵PKと復号化鍵SKとを生成し、
前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信し、
前記暗号化部は、
前記第2の入力部を介して前記暗号化装置にメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(20)を計算して、当該計算結果を前記第2の記憶部に格納し、
前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて、式(21)を計算して、当該計算結果を前記第2の記憶部に格納し、
前記第2の記憶部に格納される情報を用いて、暗号文Cを式(22)に示すように生成し、
前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信し、
前記復号化部は、
前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(23)を計算して、当該計算結果を前記第3の記憶部に格納し、
前記暗号文Cと、前記復号化鍵SKとを用いて、式(24)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記第3の記憶部に格納し、
式(25)を満たすか否かを判定し、
前記式(25)を満たすと判定された場合に、前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする暗号化システム。
【数17】

【数18】

【数19】

【数20】

【数21】

【数22】

【数23】

【数24】

【数25】

【請求項4】
前記暗号化システムは、第1の計算機と、前記第1の計算機と接続される第2の計算機とを備え、
前記第1の計算機は、前記鍵生成装置および前記復号化装置を備え、前記第2の計算機は、前記暗号化装置を備えることを特徴とする請求項1から3のいずれかに記載の暗号化システム。
【請求項5】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムにおける公開鍵暗号化方法であって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記方法は、
前記鍵生成部が、前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成し、前記生成された二つの対(π1,π1-1)および(π2,π2-1)を前記第1の記憶部に格納するステップと、
前記鍵生成部が、式(26)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(27)を満たすものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納するステップと、
前記鍵生成部が、前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(28)によって暗号化鍵PKと復号化鍵SKとを生成するステップと、
前記鍵生成部が、前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信するステップと、
前記暗号化部が、前記第2の入力部を介して前記暗号化装置にメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(29)を計算し、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて、式(30)を計算し、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の記憶部に格納される情報を用いて、暗号文Cを式(31)に示すように生成するステップと、
前記暗号化部が、前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信するステップと、
前記復号化部が、前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(32)を計算して、当該計算結果を前記第3の記憶部に格納するステップと、
前記復号化部が、前記暗号文Cと、前記復号化鍵SKとを用いて、式(33)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記第3の記憶部に格納するステップと、
前記復号化部が、式(34)を満たすか否かを判定するステップと、
前記復号化部が、前記式(34)を満たすと判定された場合に、前記Mを前記暗号文Cのメッセージ文として取得するステップと、を含むことを特徴とする公開鍵暗号化方法。
【数26】

【数27】

【数28】

【数29】

【数30】

【数31】

【数32】

【数33】

【数34】

【請求項6】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムにおける公開鍵暗号化方法であって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記方法は、
前記鍵生成部が、前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、ランダムオラクル関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kを用いて、公開鍵暗号方法Πの暗号化鍵pkと復号化鍵skとを生成して、前記生成された暗号化鍵pkと復号化鍵skとを前記第1の記憶部に格納するステップと、
前記鍵生成部が、落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成して、前記生成された対(π,π-1)を前記第1の記憶部に格納するステップと、
前記鍵生成部が、式(35)を満たす関数族Fiを生成して(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納するステップと、
前記鍵生成部が、前記暗号化鍵pkおよび復号化鍵skと、前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(36)によって前記ランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の暗号化鍵PKと復号化鍵SKとを生成するステップと、
前記鍵生成部が、前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信するステップと、
前記暗号化部が、前記第2の入力部を介して前記暗号化装置にメッセージ文Mが入力された場合に、σi∈Si,k(1≦i≦n)をランダムに選択して、前記選択されたσiを前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(37)を計算して、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(38)を計算して、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の記憶部に格納される情報を用いて、メッセージ文Mの暗号文Cを式(39)に示すように生成するステップと、
前記暗号化部が、前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信するステップと、
前記復号化部が、前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(40)によってσiを計算して、当該計算結果を前記第3の記憶部に格納するステップと、
前記復号化部が、前記公開鍵暗号プロトコルΠと前記復号化鍵SKとを用いて式(41)によってMを計算するステップと、
前記復号化部が、前記Mを前記暗号文Cのメッセージ文として取得するステップと、を含むことを特徴とする公開鍵暗号化方法。
【数35】

【数36】

【数37】

【数38】

【数39】

【数40】

【数41】

【請求項7】
暗号化鍵および復号化鍵を生成する鍵生成装置、メッセージ文を暗号化することによって暗号文を生成する暗号化装置、並びに、前記暗号文を復号化する復号化装置を備える暗号化システムにおける公開鍵暗号化方法であって、
前記鍵生成装置、前記暗号化装置、および前記復号化装置は、互いに接続され、
前記鍵生成装置は、前記暗号化鍵および前記復号化鍵を生成する鍵生成部と、他の装置から情報を取得するための第1の入力部と、他の装置に情報を出力するための第1の出力部と、情報を格納する第1の記憶部と、を備え、
前記暗号化装置は、前記暗号化鍵を用いて、メッセージ文を暗号化する暗号化部と、他の装置から情報を取得するための第2の入力部と、他の装置に情報を出力するための第2の出力部と、情報を格納する第2の記憶部と、を備え、
前記復号化装置は、前記復号化鍵を用いて、暗号文を復号化する復号化部と、他の装置から情報を取得するための第3の入力部と、他の装置に情報を出力するための第3の出力部と、情報を格納する第3の記憶部と、を備え、
前記方法は、
前記鍵生成部が、前記第1の入力部を介して前記鍵生成装置にセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成し、前記生成された対(π,π-1)を前記第1の記憶部に格納するステップと、
前記鍵生成部が、式(42)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(43)を満たすものとする。)、前記生成された関数族Fiを前記第1の記憶部に格納するステップと、
前記鍵生成部が、前記生成された対(π,π-1)と前記関数族Fiとを用いて、式(44)によって暗号化鍵PKと復号化鍵SKとを生成するステップと、
前記鍵生成部が、前記第1の出力部を介して、前記生成された暗号化鍵PKを前記暗号化装置に送信し、前記生成された復号化鍵SKを前記復号化装置に送信するステップと、
前記暗号化部が、前記第2の入力部を介して前記暗号化装置にメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(45)を計算して、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の入力部を介して取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて、式(46)を計算して、当該計算結果を前記第2の記憶部に格納するステップと、
前記暗号化部が、前記第2の記憶部に格納される情報を用いて、暗号文Cを式(47)に示すように生成するステップと、
前記暗号化部が、前記第2の出力部を介して前記生成された暗号文Cを前記復号化装置に送信するステップと、
前記復号化部が、前記第3の入力部を介して前記復号化装置に前記暗号文Cが入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(48)を計算して、当該計算結果を前記第3の記憶部に格納するステップと、
前記復号化部が、前記暗号文Cと、前記復号化鍵SKとを用いて、式(49)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記第3の記憶部に格納するステップと、
前記復号化部が、式(50)を満たすか否かを判定するステップと、
前記復号化部が、前記式(50)を満たすと判定された場合に、前記Mを前記暗号文Cのメッセージ文として取得するステップと、を含むことを特徴とする公開鍵暗号化方法。
【数42】

【数43】

【数44】

【数45】

【数46】

【数47】

【数48】

【数49】

【数50】

【請求項8】
暗号化鍵および復号化鍵を生成する鍵生成装置であって、
前記鍵生成装置は、
他の装置から情報を取得するための入力部と、
他の装置に情報を出力するための出力部と、
情報を格納する記憶部と、
前記入力部を介してセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成し、(式51)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(52)を満たすものとする。)、前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(53)によって暗号化鍵PKと復号化鍵SKとを生成する鍵生成部と、を備えることを特徴とする鍵生成装置。
【数51】

【数52】

【数53】

【請求項9】
暗号化鍵および復号化鍵を生成する鍵生成装置であって、
前記鍵生成装置は、
他の装置から情報を取得するための入力部と、
他の装置に情報を出力するための出力部と、
情報を格納する記憶部と、
前記入力部を介してセキュリティパラメータkが入力された場合に、ランダムオラクル関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kを用いて、公開鍵暗号方法Πの暗号化鍵pkと復号化鍵skとを生成し、落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成し、式(54)を満たす関数族Fiを生成し(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)、前記暗号化鍵pkおよび復号化鍵skと、前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(55)によって前記ランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の暗号化鍵PKと復号化鍵SKとを生成する鍵生成部と、を備えることを特徴とする鍵生成装置。
【数54】

【数55】

【請求項10】
暗号化鍵および復号化鍵を生成する鍵生成装置であって、
前記鍵生成装置は、
他の装置から情報を取得するための入力部と、
他の装置に情報を出力するための出力部と、
情報を格納する記憶部と、
前記入力部を介してセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成し、式(56)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(57)を満たすものとする。)、前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(58)によって暗号化鍵PKと復号化鍵SKとを生成する鍵生成部と、を備えることを特徴とする鍵生成装置。
【数56】

【数57】

【数58】

【請求項11】
暗号化鍵および復号化鍵を生成する鍵生成部と、暗号文を復号化する復号化部とを備える計算機であって、
前記計算機は、さらに、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記鍵生成部は、
前記入力部を介してセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成し、前記生成された二つの対(π1,π1-1)および(π2,π2-1)を前記記憶部に格納し、
式(59)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(60)を満たすものとする。)、前記生成された関数族Fiを前記記憶部に格納し、
前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(61)によって暗号化鍵PKと復号化鍵SKとを生成し、
前記復号化部は、
前記暗号化鍵と、ランダムに選択されたらr∈{0,1}k1、σ1∈S1,k、およびσ2∈S2,kと用いて、式(62)から式(64)によってメッセージ文M∈{0,1}k2を暗号化した暗号文Cが、前記入力部を介して入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(65)を計算して、当該計算結果を前記記憶部に格納し、
前記暗号文Cと、前記復号化鍵SKとを用いて、式(66)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記記憶部に格納し、
式(67)を満たすか否かを判定し、
前記式(67)を満たすと判定された場合は、前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする計算機。
【数59】

【数60】

【数61】

【数62】

【数63】

【数64】

【数65】

【数66】

【数67】

【請求項12】
暗号化鍵および復号化鍵を生成する鍵生成部と、暗号文を復号化する復号化部とを備える計算機であって、
前記計算機は、さらに、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記鍵生成部は、
前記入力部を介してセキュリティパラメータkが入力された場合に、ランダムオラクル関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kを用いて、公開鍵暗号方法Πの暗号化鍵pkと復号化鍵skとを生成して、前記生成された暗号化鍵pkと復号化鍵skとを前記記憶部に格納し、
落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成して、前記生成された対(π,π-1)を前記記憶部に格納し、
式(68)を満たす関数族Fiを生成して(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)、前記生成された関数族Fiを前記記憶部に格納し、
前記暗号化鍵pkおよび復号化鍵skと、前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(69)によって前記ランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の暗号化鍵PKと復号化鍵SKとを生成し、
前記復号化部は、
前記暗号化鍵と、ランダムに選択されたσi∈Si,k(1≦i≦n)とを用いて、式(70)から式(72)によってメッセージ文Mを暗号化した暗号文Cが、前記入力部を介して前記復号化装置に入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(73)によってσiを計算して、当該計算結果を前記第3の記憶部に格納し、
前記公開鍵暗号プロトコルΠと前記復号化鍵SKとを用いて式(74)によってMを計算し、
前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする計算機。
【数68】

【数69】

【数70】

【数71】

【数72】

【数73】

【数74】

【請求項13】
暗号化鍵および復号化鍵を生成する鍵生成部と、暗号文を復号化する復号化部とを備える計算機であって、
前記計算機は、さらに、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記鍵生成部は、
前記入力部を介してセキュリティパラメータkが入力された場合に、落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成し、前記生成された対(π,π-1)を前記記憶部に格納し、
式(75)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(76)を満たすものとする。)、前記生成された関数族Fiを前記記憶部に格納し、
前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(77)によって暗号化鍵PKと復号化鍵SKとを生成し、
前記復号化部は、
前記暗号化鍵PKと、ランダムに選択されたr∈{0,1}k1、σ1∈S1,k、およびσ2∈S2,kとを用いて、式(78)から式(80)によってメッセージ文M∈{0,1}k2を暗号化した暗号文Cが、前記入力部を介して入力された場合に、前記暗号文Cと、前記復号化鍵SKとを用いて、式(81)を計算して、当該計算結果を前記記憶部に格納し、
前記暗号文Cと、前記復号化鍵SKとを用いて、式(82)によってM∈{0,1}k2およびz∈{0,1}k3を計算して、当該計算結果を前記記憶部に格納し、
式(83)を満たすか否かを判定し、
前記式(83)を満たすと判定された場合は、前記Mを前記暗号文Cのメッセージ文として取得することを特徴とする計算機。
【数75】

【数76】

【数77】

【数78】

【数79】

【数80】

【数81】

【数82】

【数83】

【請求項14】
暗号化鍵を用いてメッセージ文を暗号化することによって暗号文を生成する暗号化部を備える計算機であって、
前記計算機は、さらに、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記暗号化部は、
前記入力部を介してメッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記記憶部に格納し、
セキュリティパラメータkと、落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから生成された二つの対(π1,π1-1)および(π2,π2-1)と、暗号化鍵PKと、式(84)を満たす関数族Fi(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(85)を満たすものとする。)とを用いて、式(86)によって生成された暗号化鍵PKを、前記入力部を介して取得し、
前記取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(87)を計算し、当該計算結果を前記記憶部に格納し、
前記取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて式(88)を計算し、当該計算結果を前記記憶部に格納し、
前記記憶部に格納される情報を用いて、暗号文Cを式(89)に示すように生成することを特徴とする計算機。
【数84】

【数85】

【数86】

【数87】

【数88】

【数89】

【請求項15】
暗号化鍵を用いてメッセージ文を暗号化することによって暗号文を生成する暗号化部を備える計算機であって、
前記計算機は、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記暗号化部は、
前記入力部を介してメッセージ文Mが入力された場合に、σi∈Si,k(1≦i≦n)をランダムに選択して、前記選択されたσiを前記記憶部に格納し、
セキュリティパラメータk、ランダム関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kと、落とし戸付き一方向性関数πと落とし戸π-1とから生成された対(π,π-1)と、式(90)を満たす関数族Fiを生成して(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)とを用いて、式(91)によって生成された暗号化鍵PKを、前記入力部を介して取得し、
前記取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(92)を計算して、当該計算結果を前記記憶部に格納し、
前記入力部を介して取得された暗号化鍵PKと、前記選択されたσiとを用いて、式(93)を計算して、当該計算結果を前記記憶部に格納し、
前記記憶部に格納される情報を用いて、メッセージ文Mの暗号文Cを式(94)に示すように生成することを特徴とする計算機。
【数90】

【数91】

【数92】

【数93】

【数94】

【請求項16】
暗号化鍵を用いてメッセージ文を暗号化することによって暗号文を生成する暗号化部を備える計算機であって、
前記計算機は、さらに、他の装置から情報を取得するための入力部と、他の装置に情報を出力するための出力部と、情報を格納する記憶部と、を備え、
前記暗号化部は、
前記入力部を介して、メッセージ文M∈{0,1}k2が入力された場合に、r∈{0,1}k1をランダムに選択し、σ1∈S1,kおよびσ2∈S2,kをランダムに選択して、前記選択されたrと、σ1およびσ2とを前記記憶部に格納し、
セキュリティパラメータkと、落とし戸付き一方向性関数πと落とし戸π-1とから生成された対(π,π-1)と、式(95)を満たす関数族Fiを生成し(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(96)を満たすものとする。)とを用いて、式(97)によって生成された暗号化鍵PKを、前記入力部を介して取得し、
前記取得された暗号化鍵PKと、前記選択されたσ1およびσ2とを用いて、式(98)を計算して、当該計算結果を前記記憶部に格納し、
前記取得された暗号化鍵PKと、前記選択されたrと、前記選択されたσ1およびσ2とを用いて式(99)を計算して、当該計算結果を前記記憶部に格納し、
前記第2の記憶部に格納される情報を用いて、暗号文Cを式(100)に示すように生成することを特徴とする計算機。
【数95】

【数96】

【数97】

【数98】

【数99】

【数100】

【請求項17】
公開鍵および秘密鍵を生成する鍵生成装置が備える公開鍵秘密鍵生成プログラムであって、
前記鍵生成装置は、プロセッサと、前記プロセッサに接続され、前記公開鍵秘密鍵生成プログラムを格納するメモリとを備え、
前記プログラムは、
セキュリティパラメータkを受け付ける手順と、
落とし戸付き一方向性関数π1およびπ2と落とし戸π1-1およびπ2-1とから、二つの対(π1,π1-1)および(π2,π2-1)を生成する手順と、
式(101)を満たす関数族Fiを生成する処理と(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(102)を満たすものとする。)、
前記生成された二つの対(π1,π1-1)および(π2,π2-1)と、前記関数族Fiとを用いて、式(103)によって公開鍵PKと秘密鍵SKとを生成する手順と、を前記プロセッサに実行させることを特徴とする公開鍵秘密鍵生成プログラム。
【数101】

【数102】

【数103】

【請求項18】
公開鍵および秘密鍵を生成する鍵生成装置が備える公開鍵秘密鍵生成プログラムであって、
前記鍵生成装置は、プロセッサと、前記プロセッサに接続され、前記公開鍵秘密鍵生成プログラムを格納するメモリとを備え、
前記プログラムは、
セキュリティパラメータkを受け付ける手順と、
ランダムオラクル関数O1,…,On(nは自然数)のオラクルアクセス(以下、ランダムオラクルと呼ぶ)を前提とした公開鍵暗号方法Π=(K,E,D)(但し、鍵生成手段Kはランダムオラクルに依存しないものとする)の前記鍵生成手段Kを用いて、公開鍵暗号方法Πの公開鍵pkと秘密鍵skとを生成する手順と、
落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成する手順と、
式(104)を満たす関数族Fiを生成する手順と(但し、fσiは、前記ランダムオラクル関数Oiと同一の定義域と値域とを持つものとする。)、
前記公開鍵pkおよび秘密鍵skと、前記落とし戸付き一方向性関数と落とし戸との対である(π,π-1)と、前記関数族Fiとを用いて、式(105)によって前記ランダムオラクルに依存しない新たな公開鍵暗号プロトコルΠ'の公開鍵PKと秘密鍵SKとを生成する手順と、を前記プロセッサに実行させることを特徴とする公開鍵秘密鍵生成プログラム。
【数104】

【数105】

【請求項19】
公開鍵および秘密鍵を生成する鍵生成装置が備える公開鍵秘密鍵生成プログラムであって、
前記鍵生成装置は、プロセッサと、前記プロセッサに接続され、公開鍵秘密鍵生成プログラムを格納するメモリとを備え、
前記プログラムは、
セキュリティパラメータkを受け付ける手順と、
落とし戸付き一方向性関数πと落とし戸π-1とから、対(π,π-1)を生成する処理と、
式(106)を満たす関数族Fiを生成する手順と(但し、fσiは、各σ1∈S1,k,σ2∈S2,kに対して、式(107)を満たすものとする。)、
前記生成された対(π,π-1)と、前記関数族Fiとを用いて、式(108)によって公開鍵PKと秘密鍵SKとを生成する手順と、を前記プロセッサに実行させることを特徴とする公開鍵秘密鍵生成プログラム。
【数106】

【数107】

【数108】


【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−150006(P2011−150006A)
【公開日】平成23年8月4日(2011.8.4)
【国際特許分類】
【出願番号】特願2010−9167(P2010−9167)
【出願日】平成22年1月19日(2010.1.19)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】