(57)【要約】【課題】本体情報に添付される添付情報への受信者による同意と、前記本体情報へのアクセスの制御とが、余分な通信を行うことなく保証される公開鍵暗号システムの提供。【解決手段】共通パラメータ及び復号者の署名スキーム用のパラメータを設定するセットアップ部１１、２１と、署名用秘密鍵及び署名用公開鍵を生成し、かつ前記署名用秘密鍵を含む受信者の秘密鍵、及び前記署名用公開鍵を含む受信者の公開鍵を生成する鍵生成部２２と、前記受信者の公開鍵及び前記添付情報である条件を用いて前記本体情報であるメッセージを暗号文に暗号化する暗号化部１４と、前記署名用秘密鍵を用いて前記条件への署名を生成し、前記署名用公開鍵を用いて前記署名の正当性を検証し、前記署名が正当か否かに応じて、前記暗号文を正しいメッセージに復号するか又は誤った値を出力する署名復号部２４と、を備える。【選択図】図１
2014026238.tif 000002
【特許請求の範囲】
【請求項１】
送信装置と受信装置とを用いて構成され、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、
前記送信装置及び前記受信装置に設けられ、共通パラメータ及び復号者の署名スキーム用のパラメータを設定する送信者セットアップ部及び受信者セットアップ部と、
前記受信装置に設けられ、署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成する署名鍵生成部を有し、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成する鍵生成部と、
前記送信装置に設けられ、前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化する暗号化部と、
前記受信装置に設けられ、前記署名用秘密鍵を用いて前記添付情報への署名を生成する署名部及び前記署名用公開鍵を用いて前記署名の正当性を検証する検証部を有し、前記署名が正当である場合に、前記受信者の秘密鍵を用いて前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力する署名復号部と、
を備える公開鍵暗号システム。
【請求項２】
前記送信者セットアップ部及び前記受信者セットアップ部は、前記復号者の署名スキーム用のパラメータの一部として双線形性を有するペアリング演算を設定し、
前記暗号化部は、前記添付情報と前記署名用公開鍵とに前記ペアリング演算を施した値を前記乱数でべき乗して得られる値を送信者共通鍵として生成し、前記送信者共通鍵を用いて前記本体情報を暗号化本体情報に暗号化し、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記受信装置へ送信し、
前記署名復号部は、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記送信装置から受信し、前記署名用秘密鍵による前記添付情報への署名と前記乱数に対応する共通鍵生成用の情報とに前記ペアリング演算を施して得られる値を前記受信者共通鍵として生成し、前記受信者共通鍵を用いて、前記暗号化本体情報を前記本体情報に復号する、
請求項１に記載の公開鍵暗号システム。
【請求項３】
前記鍵生成部は、受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを生成し、
前記公開鍵暗号システムは、前記署名用秘密鍵及び前記署名用公開鍵からなる鍵ペアとは別に、前記受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを用いた処理を行う
請求項１に記載の公開鍵暗号システム。
【請求項４】
前記受信装置は、さらに、
前記添付情報を表示し、その後に、ユーザによる操作を受け付けるユーザインタフェース部を有し、
前記復号部は、前記ユーザによる特定の操作が受け付けられた場合のみ、前記暗号化本体情報を前記本体情報に復号する、
請求項１から請求項３の何れか１項に記載の公開鍵暗号システム。
【請求項５】
本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムを、受信装置とともに構成する送信装置であって、
共通パラメータ及び復号者の署名スキーム用のパラメータを前記受信装置と共有するセットアップ部と、
前記署名用パラメータに基づいて生成された署名用公開鍵を含みかつ前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成された受信者の公開鍵と前記添付情報とを用いて、前記本体情報を暗号化本体情報に暗号化する暗号化部と、
を備える送信装置。
【請求項６】
本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムを、送信装置とともに構成する受信装置であって、
共通パラメータ及び復号者の署名スキーム用のパラメータを前記送信装置と共有するセットアップ部と、
署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成する署名鍵生成部を有し、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成する鍵生成部と、
前記署名用秘密鍵を用いて前記添付情報への署名を生成する署名部及び前記署名用公開鍵を用いて前記署名の正当性を検証する検証部を有し、前記署名が正当である場合に、前記受信者の公開鍵を用いて前記本体情報から暗号化された暗号化本体情報を、前記受信者の秘密鍵を用いて正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力する署名復号部と、
を備える受信装置。
【請求項７】
本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号方法であって、
前記公開鍵暗号方法は、送信装置と受信装置とを用いて構成される公開鍵暗号システムにおいて実行され、
前記送信装置は、送信者セットアップ部と、暗号化部と、を有し、
前記受信装置は、受信者セットアップ部と、鍵生成部と、署名復号部と、を有し、
前記送信者セットアップ部及び前記受信者セットアップ部において、共通パラメータ及び復号者の署名スキーム用のパラメータを設定するステップと、
前記鍵生成部において、署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成し、かつ、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成するステップと、
前記暗号化部において、前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化するステップと、
前記署名復号部において、前記署名用秘密鍵を用いて前記添付情報への署名を生成し、前記署名用公開鍵を用いて前記署名の正当性を検証し、かつ、前記署名が正当である場合に、前記受信者の秘密鍵を用いて前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力するステップと、
を含む公開鍵暗号方法。
【請求項８】
本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムで用いられるコンピュータ実行可能なプログラムであって、
前記公開鍵暗号システムは、各々がコンピュータを有する送信装置と受信装置とを用いて構成され、
前記プログラムは、
共通パラメータ及び復号者の署名スキーム用のパラメータを設定するステップを、前記送信装置のコンピュータ及び前記受信装置のコンピュータに実行させ、
署名用秘密鍵及び署名用公開鍵からなる鍵ペアを前記復号者の署名スキーム用のパラメータに基づいて生成し、かつ、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成するステップを、前記受信装置のコンピュータに実行させ、
前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化するステップを、前記送信装置のコンピュータに実行させ、
前記署名用秘密鍵を用いて前記添付情報への署名を生成し、前記署名用公開鍵を用いて前記署名の正当性を検証し、かつ、前記署名が正当である場合に、前記受信者の秘密鍵を用いて、前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力するステップを、前記受信装置のコンピュータに実行させる、
プログラム
【請求項９】
コンピュータ読み取り可能な記録媒体であって、請求項８に記載のプログラムを記憶している記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、公開鍵暗号システム、送信装置、受信装置、公開鍵暗号方法、プログラム、及び記録媒体に関し、特に、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する技術に関する。
【背景技術】
【０００２】
近年、公開鍵暗号に基づく暗号システム（以下、公開鍵暗号システム）が普及している。公開鍵暗号システムは、インターネットを介してソフトウェアや各種コンテンツを安全に配信し、またメールやウェブのデータを安全に伝達するために、広く利用されている。
【０００３】
公開鍵暗号システムに関して、安全性や機能性をさらに向上するための種々の技術の検討が続けられている。一例として、非特許文献１及び特許文献１では、公開鍵暗号システムの一種であるＩＤ（ＩＤｅｎｔｉｔｙ）ベース暗号システムにおいて、安全性を低下させる要因となる鍵状態の問い合わせや鍵預託を排除するための公開鍵構造基盤（ＰＫＩ：Ｐｕｂｌｉｃ  Ｋｅｙ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）が開示されている。
【０００４】
特許文献１のＰＫＩにおいて、認証者は、認証者の秘密鍵による受信者の固有情報（例えば、受信者のＩＤや有効期限が含まれる）への署名を復号鍵として受信者へ提供するとともに、その復号鍵に対応する暗号鍵を送信者へ提供する。当該ＰＫＩによって提供される復号鍵、暗号鍵のペアと、従来から用いられる受信者秘密鍵、受信者公開鍵のペアとを併用して、メッセージを２重に暗号化及び復号することにより、鍵状態の問い合わせや鍵預託の必要がないＩＤベース暗号システムが実現される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２００５−５３７７１１号公報
【非特許文献】
【０００６】
【非特許文献１】Ｃｒａｉｇ  Ｇｅｎｔｒｙ，“Ｃｅｒｔｉｆｉｃａｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  ａｎｄ  ｔｈｅ  Ｃｅｒｆｉｃａｔｅ  Ｒｅｖｏｃａｔｉｏｎ  Ｐｒｏｂｌｅｍ，”  Ｅ．Ｂｉｈａｍ  （Ｅｄ．）：ＬＮＣＳ２６５６，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −Ｅｕｒｏｃｒｙｐｔ  ２００３，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  ｐｐ．２７２−２９３，  ２００３．
【発明の概要】
【発明が解決しようとする課題】
【０００７】
公開鍵暗号システムの安全性や機能性の向上に向けた需要は、上記の他にも種々存在する。
【０００８】
例えば、多くのソフトウェアパッケージは、使用前に、ユーザに使用許諾契約書への同意を求める機能を有している。そのような機能は、通常、ソフトウェアのインストール時に使用許諾契約書を表示してから、ユーザに同意ボタンを選択するように求めるといったユーザインタフェースによって実現される。
【０００９】
しかしながら、そのようなユーザインタフェースのみでは、同意ボタンを選択したどのユーザにもソフトウェアの使用が許諾されてしまうため、ソフトウェアへのアクセスをユーザごとに制御することができない。そのため、ユーザによる使用許諾契約書への同意を前提として、ユーザごとにソフトウェアへのアクセスを制御しようとすれば、例えば、ベンダがソフトウェアパッケージを暗号化して配布し、ユーザから要求が受信された後に初めて、ベンダがそのユーザにパスワードを送信するといった、ベンダとユーザとの間の余分な通信が必要となる。
【００１０】
そこで、本発明は、本体情報（例えばソフトウェアパッケージ）へのアクセスを前記本体情報に添付される添付情報（例えば、前記ソフトウェアパッケージに添付される使用許諾契約書）を用いて制御する公開鍵暗号システムにおいて、受信者による添付情報への同意と本体情報へのアクセスの制御とが、余分な通信を行うことなく保証される公開鍵暗号システム及び公開鍵暗号方法を提供する。
【課題を解決するための手段】
【００１１】
上述の課題を解決するために、本開示における公開鍵暗号システムの１つの態様は、送信装置と受信装置とを用いて構成され、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、前記送信装置及び前記受信装置に設けられ、共通パラメータ及び復号者の署名スキーム用のパラメータを設定する送信者セットアップ部及び受信者セットアップ部と、前記受信装置に設けられ、署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成する署名鍵生成部を有し、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成する鍵生成部と、前記送信装置に設けられ、前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化する暗号化部と、前記受信装置に設けられ、前記署名用秘密鍵を用いて、前記添付情報への署名を生成する署名部及び前記署名用公開鍵を用いて前記署名の正当性を検証する検証部を有し、前記署名が正当である場合に、前記受信者の秘密鍵を用いて、前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力する署名復号部と、を備える。
【発明の効果】
【００１２】
本開示に係る公開鍵暗号システムによれば、前記受信装置において正当な署名用秘密鍵による前記添付情報への署名が行われた場合のみ（つまり、正当な受信者が前記添付情報に同意した場合のみ）、受信装置において正しい本体情報が得られるので、受信者による添付情報への同意と本体情報へのアクセスの制御とが、余分な通信を行うことなく保証される。
【図面の簡単な説明】
【００１３】
【図１】図１は、本発明の実施の形態に係る公開鍵暗号システムの構成例を示す機能ブロック図である。
【図２】図２は、本発明の実施の形態に係る公開鍵暗号方法の一例を示すフローチャートである。
【図３】図３は、本発明の実施の形態に係る添付情報提示画面の一例を示す図である。
【発明を実施するための形態】
【００１４】
上述の課題を解決するために、本開示における公開鍵暗号システムの１つの態様は、送信装置と受信装置とを用いて構成され、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、前記送信装置及び前記受信装置に設けられ、共通パラメータ及び復号者の署名スキーム用のパラメータを設定する送信者セットアップ部及び受信者セットアップ部と、前記受信装置に設けられ、署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成する署名鍵生成部を有し、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成する鍵生成部と、前記送信装置に設けられ、前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化する暗号化部と、前記受信装置に設けられ、前記署名用秘密鍵を用いて前記添付情報への署名を生成する署名部及び前記署名用公開鍵を用いて前記署名の正当性を検証する検証部を有し、前記署名が正当である場合に、前記受信者の秘密鍵を用いて、前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力する署名復号部と、を備える。
【００１５】
このような構成によれば、前記受信装置において正当な署名用秘密鍵による前記添付情報への署名が行われた場合のみ（つまり、正当な受信者が前記添付情報に同意した場合のみ）、受信装置において正しい本体情報が得られるので、受信者による添付情報への同意と本体情報へのアクセスの制御とが、余分な通信を行うことなく保証される。
【００１６】
また、本発明の公開鍵暗号システムの１つの態様において、前記送信者セットアップ部及び前記受信者セットアップ部は、前記復号者の署名スキーム用のパラメータの一部として双線形性を有するペアリング演算を設定し、前記暗号化部は、前記添付情報と前記署名用公開鍵とに前記ペアリング演算を施した値を前記乱数でべき乗して得られる値を送信者共通鍵として生成し、前記送信者共通鍵を用いて前記本体情報を暗号化本体情報に暗号化し、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記受信装置へ送信し、前記署名復号部は、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記送信装置から受信し、前記署名用秘密鍵による前記添付情報への署名と前記乱数に対応する共通鍵生成用の情報とに前記ペアリング演算を施して得られる値を前記受信者共通鍵として生成し、前記受信者共通鍵を用いて、前記暗号化本体情報を前記本体情報に復号してもよい。
【００１７】
このような構成によれば、前記署名復号を行うための公開鍵暗号システムを、ペアリング演算を用いて、具体的に構成することができる。
【００１８】
また、本発明の公開鍵暗号システムの１つの態様において、前記鍵生成部は、受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを生成し、前記公開鍵暗号システムは、前記署名用秘密鍵及び前記署名用公開鍵からなる鍵ペアとは別に、前記受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを用いた処理を行ってもよい。
【００１９】
このような構成によれば、正当な受信者が前記添付情報に施した署名が漏洩した場合に、該署名を入手した正当な受信者以外の者によって前記暗号化本体情報が復号されることを阻止できる。
【００２０】
また、本発明の公開鍵暗号システムの１つの態様において、前記受信装置は、さらに、前記添付情報を表示し、その後に、ユーザによる操作を受け付けるユーザインタフェース部を有し、前記復号部は、前記ユーザによる特定の操作が受け付けられた場合のみ、前記暗号化本体情報を前記本体情報に復号してもよい。
【００２１】
このような構成によれば、前記ユーザに対して、前記添付情報への注意を喚起できる。
【００２２】
これらの全般的または具体的な態様は、システム、送信装置、受信装置、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、送信装置、受信装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【００２３】
以下、本発明の一態様に係る公開鍵暗号システムについて、図面を参照しながら具体的に説明する。
【００２４】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【００２５】
（実施の形態）
実施の形態では、本発明の基本的な考え方である署名復号スキームについて説明し、その後に、署名復号スキームの具体的な構成例について説明する。
【００２６】
まず、本明細書で用いる基本的な概念について述べる。
【００２７】
群Ｇ１、Ｇ２を、位数が素数ｑである２つの巡回群とする。なお、本明細書では、群Ｇ１、Ｇ２における演算を乗法的に記述するが、これは群Ｇ１、Ｇ２を乗法群に限定するものではない。群Ｇ１、Ｇ２には適した加法群を用いてもよい。
【００２８】
（定義１）ペアリング
以下の性質を満たす写像＾ｅ：Ｇ１×Ｇ１→Ｇ２をペアリング＾ｅと呼ぶ。なお、ペアリングは、通常ｅの上に＾を付した記号で表されるが、本明細書では表記の都合上、＾ｅと記す。
【００２９】
・双線形性：任意のｘ，ｙ∈Ｇ１及び任意のａ，ｂ∈整数について、＾ｅ（ｘａ，ｙｂ）＝＾ｅ（ｘ，ｙ）ａｂ、
・非縮退性：あるｘ，ｙ∈Ｇ１について、＾ｅ（ｘ，ｙ）≠１、
・計算可能性：任意のｘ，ｙ∈Ｇ１について、＾ｅ（ｘ，ｙ）を計算するための効率的なアルゴリズムが存在する。
【００３０】
（定義２）ＢＤＨ（Ｂｉｌｉｎｅａｒ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）パラメータジェネレータ
セキュリティパラメータｋ＞０に対し、位数が素数ｑである２つの巡回群Ｇ１、Ｇ２の記述、及びペアリング＾ｅ：Ｇ１×Ｇ１→Ｇ２の記述を、ｋの多項式時間で出力する確率的アルゴリズムＩＧは、ＢＤＨパラメータジェネレータである。
【００３１】
（定義３）ＢＤＨ（Ｂｉｌｉｎｅａｒ  Ｄｉｆｆｉｅ−Ｈｅｌｌｍａｎ）計算問題
与えられたｇ，ｇａ，ｇｂ，ｇｃ∈Ｇ１（ここで、ｇはＧ１のランダムな生成元であり、ａ，ｂ，ｃ∈Ｚｑもランダムに選ばれる）について、＾ｅ（ｇ，ｇ）ａｂｃを計算すること。
【００３２】
次に、署名復号スキームの定義を述べる。なお、以下の説明では、メッセージｍが本体情報の一例であり、条件Ｃｏｎｄが添付情報の一例である。本発明は、メッセージｍ、条件Ｃｏｎｄの具体的な内容を限定しないが、一例として、課題の欄で述べたように、メッセージｍはソフトウェアパッケージであり、条件Ｃｏｎｄは当該ソフトウェアパッケージに添付される使用許諾契約書であってもよい。
【００３３】
署名復号スキームΓは、７つのアルゴリズム（Ｓｅｔｕｐ，ＫｅｙＧｅｎ，ＫｅｙＧｅｎＳｉｇ，Ｅｎｃｒｙｐｔ，Ｓｉｇｎｄｅｃｒｙｐｔ，Ｓｉｇｎ，Ｖｅｒｉ）から構成される。
【００３４】
・（ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ）←Ｓｅｔｕｐ（１ｋ）：
セットアップアルゴリズムＳｅｔｕｐは、セキュリティパラメータｋを入力に取り、共通パラメータｐａｒａｍ、及び復号者による署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇを出力する。
【００３５】
・（ｓｋＲ，ｐｋＲ）←ＫｅｙＧｅｎ（ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ）：
受信者鍵生成アルゴリズムＫｅｙＧｅｎは、共通パラメータｐａｒａｍ、及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇを入力に取り、鍵ペア（ｓｋＲ，ｐｋＲ）を出力する。ここで、ｓｋＲ＝（ｓｋＲ，ｅｎｃ，ｓｋＲ，ｓｉｇ）、ｐｋＲ＝（ｐｋＲ，ｅｎｃ，ｐｋＲ，ｓｉｇ）である。ｓｋＲ，ｅｎｃ、ｐｋＲ，ｅｎｃは、受信者の暗号化用の秘密鍵、公開鍵を表し、ｓｋＲ，ｓｉｇ、ｐｋＲ，ｓｉｇは、受信者の署名用の秘密鍵、公開鍵を表す。署名スキームのための鍵生成アルゴリズムＫｅｙＧｅｎが、（ｓｋＲ，ｓｉｇ，ｐｋＲ，ｓｉｇ）の生成に用いられる。すなわち、（ｓｋＲ，ｓｉｇ，ｐｋＲ，ｓｉｇ）←ＫｅｙＧｅｎＳｉｇ（ｐａｒａｍ＿ｓｉｇ）である。
【００３６】
・（Ｃ，Ｃｏｎｄ）←Ｅｎｃｒｙｐｔ（ｐｋＲ，ｅｎｃ，ｐｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，ｍ，Ｃｏｎｄ）：
署名復号スキームのための暗号化アルゴリズムＥｎｃｒｙｐｔは、受信者の公開鍵ｐｋＲ，ｅｎｃ、ｐｋＲ，ｓｉｇ、共通パラメータｐａｒａｍ、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ、メッセージｍ、及び条件Ｃｏｎｄを入力に取り、署名復号のための暗号文Ｃを条件Ｃｏｎｄとともに出力する。
【００３７】
・ｍ又は¬ｍ（≠ｍ）←Ｓｉｇｎｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｓｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，Ｃ，Ｃｏｎｄ）：
署名復号アルゴリズムＳｉｇｎｄｅｃｒｙｐｔは、受信者の暗号化用の秘密鍵ｓｋＲ，ｅｎｃ，署名用の秘密鍵ｓｋＲ，ｓｉｇ、共通パラメータｐａｒａｍ、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ、暗号文Ｃ、及び条件Ｃｏｎｄを入力に取り、次の動作を行うことにより、正しいメッセージｍ又は誤った値¬ｍ（≠ｍ）を出力する。
【００３８】
（１）σ←Ｓｉｇｎ（ｓｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ）：
署名アルゴリズムＳｉｇｎは、受信者の署名用の秘密鍵ｓｋＲ，ｓｉｇ、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ、及び条件Ｃｏｎｄを入力に取り、署名σを出力する。
【００３９】
（２）Ｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃ，Ｃｏｎｄ）＝ｍ（Ｖｅｒｉ（ｐｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃｏｎｄ）＝Ｔの場合）又は¬ｍ（その他の場合）：
復号アルゴリズムＤｅｃｒｙｐｔは、受信者の暗号化用の秘密鍵ｓｋＲ，ｅｎｃ、共通パラメータｐａｒａｍ、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ、署名σ、及び条件Ｃｏｎｄを入力に取り、受信者の署名用の公開鍵ｐｋＲ，ｓｉｇ、共通パラメータｐａｒａｍ、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ、署名σ、及び条件Ｃｏｎｄを入力に取る検証アルゴリズムＶｅｒｉが、署名が正しいことを示す記号Ｔを出力する場合は、暗号文Ｃから正しいメッセージｍを出力し、その他の場合は、適当なメッセージ¬ｍ（≠ｍ）を出力する。
【００４０】
このように定義される署名復号スキームΓによれば、Ｅｎｃｒｙｐｔ（ｐｋＲ，ｅｎｃ，ｐｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，ｍ，Ｃｏｎｄ）の出力（Ｃ，Ｃｏｎｄ）が、Ｓｉｇｎｄｅｃｒｙｐｔの入力の一部として与えられると、Ｓｉｇｎｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｓｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，Ｃ，Ｃｏｎｄ）は、メッセージ空間に含まれる正しいメッセージｍを出力する。また、メッセージ空間に含まれる任意の条件Ｃｏｎｄについて、Ｖｅｒｉ（ｐｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｓｉｇｎ（ｓｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ），Ｃｏｎｄ）＝Ｔとなる。
【００４１】
なお、署名復号スキームで用いられる署名アルゴリズムＳｉｇｎ及び検証アルゴリズムＶｅｒｉは、上記の例に限らない。上記の署名アルゴリズムＳｉｇｎ及び検証アルゴリズムＶｅｒｉは、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇを引数に取り、独立した１つの署名方式に基づく署名及び検証を行うが、この他にも、例えば、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇ及び共通パラメータｐａｒａｍの両方を引数に取り、拡張された署名方式を取り扱えるように変形された署名アルゴリズムＳｉｇｎ及び検証アルゴリズムＶｅｒｉを用いてもよい。
【００４２】
また、送信者は、Ｅｎｃｒｙｐｔの計算を行う際に、受信者の暗号化アルゴリズムＥｎｃ’を追加的に用いてもよい。これと対応して、受信者は、Ｓｉｇｎｄｅｃｒｙｐｔの計算を行う際に、復号アルゴリズムＤｅｃ’を用いてもよい。その場合、ｐａｒａｍの一部であるｐａｒａｍ＿ｅｎｃ’を用いて、鍵生成アルゴリズムＫｅｙＧｅｎＥｎｃ’：（ｓｋＲ，ｅｎｃ’，ｐｋＲ，ｅｎｃ’）←ＫｅｙＧｅｎＥｎｃ’（ｐａｒａｍ＿ｅｎｃ’）から、ｓｋＲ，ｅｎｃの一部であるｓｋＲ，ｅｎｃ’及びｐｋＲ，ｅｎｃの一部であるｐｋＲ，ｅｎｃ’を生成する。
【００４３】
・Ｃ’←Ｅｎｃ’（ｐｋＲ，ｅｎｃ’，ｐａｒａｍ，ｍ’）：
受信者の暗号化アルゴリズムＥｎｃ’は、受信者の公開鍵ｐｋＲ，ｅｎｃ’、共通パラメータｐａｒａｍ、及びメッセージｍ’を入力に取り、暗号文Ｃ’を出力する。
【００４４】
・ｍ’←Ｄｅｃ’（ｓｋＲ，ｅｎｃ’，ｐａｒａｍ，Ｃ’）：
復号アルゴリズムＤｅｃ’は、受信者の秘密鍵ｓｋＲ，ｅｎｃ’，共通パラメータｐａｒａｍ、及び暗号文Ｃ’を入力に取り、正しいメッセージｍ’又は誤った値¬ｍ’（≠ｍ’）を出力する。
【００４５】
メッセージ空間に含まれる任意のメッセージｍ’について、ｍ’←Ｄｅｃ’（ｓｋＲ，ｅｎｃ’，ｐａｒａｍ，Ｅｎｃ’（ｐｋＲ，ｅｎｃ’，ｐａｒａｍ，ｍ’））である。
【００４６】
上述した署名復号スキームは、例えば、送信装置及び受信装置を用いて構成される公開鍵暗号システムによって実行される。
【００４７】
図１は、署名復号スキームを実行するための公開鍵暗号システムの一構成例を示す機能ブロック図である。
【００４８】
図１に示される公開鍵暗号システム１は、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、送信装置１０と受信装置２０とを用いて構成される。送信装置１０と受信装置２０とは、例えばインターネットなどの、秘匿性のない通信路４０で接続されている。
【００４９】
送信装置１０は、セットアップ部１１、暗号化部１４、通信部１８、及び記憶部１９を有している。受信装置２０は、セットアップ部２１、鍵生成部２２、ユーザインタフェース部２３、署名復号部２４、通信部２８、記憶部２９を有している。
【００５０】
各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、プロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【００５１】
セットアップ部１１、２１は、共通パラメータｐａｒａｍ、及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇを設定する。共通パラメータｐａｒａｍ、及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇは、Ｓｅｔｕｐアルゴリズムに従って生成される。設定された共通パラメータｐａｒａｍ及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇは、例えば記憶部１９、２９に格納されてもよい。
【００５２】
鍵生成部２２は、ＫｅｙＧｅｎＳｉｇアルゴリズムに従って、復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇに基づいて、受信者の署名用秘密鍵ｓｋＲ，ｓｉｇ及び署名用公開鍵ｐｋＲ，ｓｉｇからなる鍵ペア（ｓｋＲ，ｓｉｇ，ｐｋＲ，ｓｉｇ）を生成する。そして、ＫｅｙＧｅｎアルゴリズムに従って、共通パラメータｐａｒａｍ及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇに基づいて、署名用秘密鍵ｓｋＲ，ｓｉｇを含む受信者の秘密鍵ｓｋＲ、及び署名用公開鍵ｐｋＲ，ｓｉｇを含む受信者の公開鍵ｐｋＲからなる鍵ペア（ｓｋＲ，ｐｋＲ）を生成する。
【００５３】
受信者の秘密鍵ｓｋＲは受信装置２０において秘密に保持され、受信者の公開鍵ｐｋＲは通信部２８、１８を介して、受信装置２０から送信装置１０へ送られる。
【００５４】
暗号化部１４は、Ｅｎｃｒｙｐｔアルゴリズムに従って、受信者の公開鍵ｐｋＲ、及び条件Ｃｏｎｄを用いてメッセージｍを暗号文Ｃに暗号化する。
【００５５】
条件Ｃｏｎｄ及び暗号文Ｃは、通信部１８、２８を介して、送信装置１０から受信装置２０へ送られる。
【００５６】
ユーザインタフェース部２３は、暗号文Ｃを復号する前に、ユーザに条件Ｃｏｎｄを提示し、条件Ｃｏｎｄに同意するか否かを示す操作をユーザから受け付ける。
【００５７】
署名復号部２４は、Ｓｉｇｎアルゴリズムに従って、署名用秘密鍵ｓｋＲ，ｓｉｇを用いて条件Ｃｏｎｄへの署名σを生成し、Ｖｅｒｉアルゴリズムに従って、署名用公開鍵ｓｋＲ，ｓｉｇを用いて署名σの正当性を検証し、かつ、Ｓｉｇｎｄｅｃｒｙｐｔアルゴリズムに従って、署名σが正当である場合に、前記受信者の秘密鍵ｓｋＲを用いて、暗号文Ｃを正しいメッセージｍに復号し、前記署名σが正当でない場合に、メッセージｍとは異なる値を出力する。
【００５８】
このように構成された公開鍵暗号システム１は、署名復号スキームの各アルゴリズムに従って、以下を満たす。
【００５９】
暗号化部１４におけるＥｎｃｒｙｐｔ（ｐｋＲ，ｅｎｃ，ｐｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，ｍ，Ｃｏｎｄ）の出力（Ｃ，Ｃｏｎｄ）が、署名復号部２４におけるＳｉｇｎｄｅｃｒｙｐｔの入力の一部として与えられると、Ｓｉｇｎｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｓｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，Ｃ，Ｃｏｎｄ）は、メッセージ空間に含まれる正しいメッセージｍを出力する。
【００６０】
また、メッセージ空間に含まれる任意の条件Ｃｏｎｄについて、Ｖｅｒｉ（ｐｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｓｉｇｎ（ｓｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ），Ｃｏｎｄ）＝Ｔとなる。
【００６１】
その結果、受信装置２０において署名用秘密鍵ｓｋＲ，ｓｉｇによる条件Ｃｏｎｄへの署名が正当である場合のみ（つまり、受信者が条件Ｃｏｎｄに同意した場合のみ）、受信装置２０において正しいメッセージｍが得られるので、受信者による条件Ｃｏｎｄへの同意とメッセージｍへのアクセスの制御とが、余分な通信を行うことなく保証される。
【００６２】
本発明の署名復号スキームに基づく公開鍵暗号システムは、上述した、ＥｎｃｒｙｐｔとＳｉｇｎｄｅｃｒｙｐｔとの関係、及びＶｅｒｉとＳｉｇｎとの関係を満たすことによって特徴付けられる。従って、署名復号スキームに基づく公開鍵暗号システムの具体的な構成であって、ＥｎｃｒｙｐｔとＳｉｇｎｄｅｃｒｙｐｔとの間、及びＶｅｒｉとＳｉｇｎとの間に、上述の関係を満たすものは、本発明に含まれる。ただし、具体的な構成によっては、Ｖｅｒｉアルゴリズムは明示的には実装されず、Ｓｉｇｎｄｅｃｒｙｐｔアルゴリズムに暗に含まれることがあり得る。
【００６３】
次に、署名復号スキームの具体的な構成例について説明する。まず、この構成例に関連するいくつかの技術について述べる。
【００６４】
非特許文献２：Ｄａｎ  Ｂｏｎｅｈ  ａｎｄ  Ｍａｔｔｈｅｗ  Ｆｒａｎｋｌｉｎ，“Ｉｄｅｎｔｉｔｙ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  ｆｒｏｍ  ｔｈｅ  Ｗｅｉｌ  Ｐａｉｒｉｎｇ，”  ＳＩＡＭ  Ｊ．  ｏｆ  Ｃｏｍｐｕｔｉｎｇ，  Ｖｏｌ．３２，  Ｎｏ．３，  ｐｐ．５８６−６１５，  ２００３．によると、Ｍｏｎｉ  Ｎａｏｒによって、任意のＩＤベース暗号（Ｉｄｅｎｔｉｔｙ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ：ＩＢＥ）スキームを用いて公開鍵署名スキームが構成できることが分かっている。ＩＢＥのマスター秘密鍵は、署名者の秘密鍵として機能し、識別ＩＤは、メッセージｍとみなされる。よって、ＩＤを所有する相手の復号鍵を求めることは、メッセージｍ（すなわちＩＤ）の署名を求めることを意味する。
【００６５】
Ｇｅｎｔｒｙは、特許文献１及び非特許文献１において、このような関係を、公開鍵を暗黙に認証可能にするために用いている。暗黙の認証では、認証者が更新済みの公開鍵に署名を行い、かつ、受信者に復号鍵を付与した時に限り、受信者は復号することができるが、送信者は、暗号化を行う際に、受信者がこのような処理を行うことができるか否かを把握しない。
【００６６】
Ｇｅｎｔｒｙのスキームは、証明書ベース暗号（Ｃｅｒｔｉｆｉｃａｔｅ−Ｂａｓｅｄ  Ｅｎｃｒｙｐｔｉｏｎ）と呼ばれている。このスキームは、Ｂｏｎｅｈ−ＦｒａｎｋｌｉｎのＩＢＥと、２人の署名者によるＢｏｎｅｈ−Ｇｅｎｔｒｙ−Ｌｙｎｎ−Ｓｈａｃｈａｍの公開鍵アグリゲート署名方式であるＢＧＬＳアグリゲート署名方式（非特許文献３：Ｄａｎ  Ｂｏｎｅｈ，  Ｃｒａｉｇ  Ｇｅｎｔｒｙ，  Ｂｅｎ  Ｌｙｎｎ  ａｎｄ  Ｈｏｖａｖ  Ｓｈａｃｈａｍ，  “Ａｇｇｒｅｇａｔｅ  ａｎｄ  Ｖｅｒｉｆｉａｂｌｙ  Ｅｎｃｒｙｐｔｅｄ  Ｓｉｇｎａｔｕｒｅｓ  ｆｒｏｍ  Ｂｉｌｉｎｅａｒ  Ｍａｐｓ，”  Ｅ．Ｂｉｈａｍ  （Ｅｄ．），  ＬＮＣＳ  ２６５６，  Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  −Ｅｕｒｏｃｒｙｐｔ  ２００３，  Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ，  ｐｐ．４１６−４３２，  ２００３．）とを組み合わせたものである。
【００６７】
以下で述べる署名復号スキームの構成例は、ＩＢＥスキームを利用する点でＧｅｎｔｒｙの証明書ベース暗号と共通しているが、受信者によって署名されるメッセージが、識別ＩＤではなく、送信者が任意に選択できる情報である点、及び署名をアグリゲートする必要がない点でＧｅｎｔｒｙの証明書ベース暗号と相違している。
【００６８】
署名復号スキームでは、署名をアグリゲートする必要がないことから、単に、Ｂｏｎｅｈ−Ｌｙｎｎ−Ｓｈａｃｈａｍの公開鍵署名スキーム（非特許文献４：Ｄａｎ  Ｂｏｎｅｈ，  ＢｅｎＬｙｎｎ  ａｎｄ  Ｈｏｖａｖ  Ｓｈａｃｈａｍ，“Ｓｈｏｒｔ  Ｓｉｇｎａｔｕｒｅ  ｆｒｏｍ  ｔｈｅ  Ｗｅｉｌ  Ｐａｉｒｉｎｇ，”  Ｊｏｕｒｎａｌ  ｏｆ  Ｃｒｙｐｔｏｌｏｇｙ，  Ｖｏｌ．１７，  ｐｐ．２９７−３１９，  ２００４．）が用いられる。
【００６９】
図２は、ＩＢＥスキームを利用して具体化された署名復号スキームの一構成例の動作を示すフローチャートである。この構成例に係る署名復号スキームは、例えば、図１に示される公開鍵暗号システム１において実行される。
【００７０】
図１及び図２を参照しながら、署名復号スキームの一構成例について詳細に説明する。
【００７１】
１．（ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ）←Ｓｅｔｕｐ（１ｋ）：
入力１ｋに対し、次のステップを実行する。
【００７２】
１−１．入力１ｋに対し、前述したＢＤＨパラメータジェネレータＩＧを実行し、２つの群Ｇ１、Ｇ２、及びペアリング＾ｅ：Ｇ１×Ｇ１→Ｇ２を生成する。
【００７３】
１−２．任意の生成元ｇ∈Ｇ１を選択する。
【００７４】
１−３．ハッシュ関数Ｈ１：あるｎについてＧ２→｛０，１｝ｎ、及びハッシュ関数Ｈ２：｛０，１｝＊→Ｇ１、を選択する。
【００７５】
群Ｇ１、Ｇ２、ペアリング＾ｅ、ハッシュ関数Ｈ１、Ｈ２の具体例は、例えば、非特許文献２に詳しく述べられているため、ここでは詳細な説明を省略する。
【００７６】
非特許文献２の、５．Ａ  ｃｏｎｃｒｅｔｅ  ＩＢＥ  ｓｙｓｔｅｍ  ｕｓｉｎｇ  ｔｈｅ  Ｗｅｉｌ  ｐａｉｒｉｎｇ、６．Ｅｘｔｅｎｓｉｏｎｓ  ａｎｄ  Ｏｂｓｅｒｖａｔｉｏｎｓの中のＴａｔｅ  ｐａｉｒｉｎｇ  ａｎｄ  ｏｔｈｅｒ  ｃｕｒｖｅｓ、及び、Ａｐｐｅｎｄｉｘ  Ａ  Ｄｅｆｉｎｉｔｉｏｎ  ｏｆ  ｔｈｅ  Ｗｅｉｌ  ｐａｉｒｉｎｇに、ベイユペアリング及びテイトペアリングの具体的な構成方法が記載されている。
【００７７】
ハッシュ関数については、非特許文献２の、４．３  Ｒｅｌａｘｉｎｇ  ｔｈｅ  ｈａｓｈｉｎｇ  ｒｅｑｕｉｒｅｍｅｎｔｓに記載されている手法と合わせた形で、５．２  Ａｄｍｉｓｓｉｂｌｅ  ｅｎｃｏｄｉｎｇ  ｆｕｎｃｔｉｏｎ：  ＭａｐＴｏＰｏｉｎｔに記載されている。
【００７８】
本明細書で開示する署名復号スキームには、一例として、これらのペアリング及びハッシュ関数が適用できる。
【００７９】
共通パラメータはｐａｒａｍ＝（Ｇ１，Ｇ２，＾ｅ，ｇ，Ｈ１，Ｈ２）であり、復号者の署名スキーム用のパラメータはｐａｒａｍ＿ｓｉｇ＝（Ｇ１，Ｇ２，＾ｅ，ｇ，Ｈ２）である。メッセージスペースＳｍ及び条件スペースＳＣｏｎｄは、それぞれＳｍ＝｛０，１｝ｎ、及びＳＣｏｎｄ＝｛０，１｝＊である。
【００８０】
共通パラメータｐａｒａｍ及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇは、パラメータに係わる何らかの不正が生じる余地がないならば、送信装置１０及び受信装置２０の何れかで生成されてもよく、送信装置１０及び受信装置２０以外のエンティティ（不図示）で生成されてもよい。
【００８１】
セットアップ部１１、２１は、通信部１８、２８を介して、共通パラメータｐａｒａｍ及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇを、送信装置１０と受信装置２０とで共有する（Ｓ１１、Ｓ２１）。共有された共通パラメータｐａｒａｍ及び復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇは、例えば記憶部１９、２９に格納されてもよい。
【００８２】
２．（ｓｋＲ，ｐｋＲ）←ＫｅｙＧｅｎ（ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ）：
入力（ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ）に対し、次のステップを実行する。なお、以下では、一般化のために、アルゴリズムへの入力として共通パラメータｐａｒａｍと復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇの両方を記載しているが、例えば、上記の具体例のように、共通パラメータｐａｒａｍが与えられると復号者の署名スキーム用のパラメータｐａｒａｍ＿ｓｉｇの値が全て定まるとき、共通パラメータｐａｒａｍのみをアルゴリズムの入力とすることもできる。
【００８３】
２−１．入力（Ｇ１，Ｇ２，＾ｅ，ｇ，Ｈ２）に対し、ＫｅｙＧｅｎＳｉｇを実行することにより、秘密鍵ｓ∈Ｚｑを無作為に選択した後、公開鍵ｖ∈Ｇ１をｖ←ｇｓにより生成する。復号者の署名用の鍵ペアは、（ｓｋＲ，ｓｉｇ，ｐｋＲ，ｓｉｇ）＝（ｓ，ｖ）である。
【００８４】
なお、簡略のため、本構成例では（ｓｋＲ，ｅｎｃ，ｐｋＲ，ｅｎｃ）＝（Λ，Λ）（Λは空の値）とし、ＫｅｙＧｅｎの出力を（ｓｋＲ，ｐｋＲ）＝（ｓ，ｖ）と表記する。
【００８５】
鍵生成部２２は、受信装置２０の署名用秘密鍵ｓ、署名用公開鍵ｇｓのペアを上述のように生成する（Ｓ２２）。署名用秘密鍵ｓが受信装置２０において秘密に保持され、署名用公開鍵ｇｓが送信装置１０へ通知される（Ｓ１２）。
【００８６】
３．（Ｃ，Ｃｏｎｄ）←Ｅｎｃｒｙｐｔ（ｐｋＲ，ｅｎｃ，ｐｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，ｍ，Ｃｏｎｄ）：
送信者は、署名復号のための条件Ｃｏｎｄ∈ＳＣｏｎｄの下でメッセージｍ∈Ｓｍを暗号化するため、次のステップを実行することによってＥｎｃｒｙｐｔ（Λ，ｖ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，ｍ，Ｃｏｎｄ）を計算する。
【００８７】
３−１．ｈ←Ｈ２（Ｃｏｎｄ）∈Ｇ１を計算する。
【００８８】
３−２．乱数ｒ∈Ｚｑを選択する。
【００８９】
３−３．暗号文ＣをＣ＝（ｇｒ，ｍ  ＸＯＲ  Ｈ１（＾ｅ（ｈ，ｖ）ｒ））により設定する。ここで、演算ＸＯＲは排他的論理和を表す。
【００９０】
暗号化部１４は、メッセージｍ及び条件Ｃｏｎｄを取得し（Ｓ１３）、取得されたメッセージｍ及び条件Ｃｏｎｄを入力の一部として、上述のＥｎｃｒｙｐｔを計算する。
【００９１】
暗号化部１４は、乱数ｒを生成し（Ｓ１４）、乱数ｒ、条件Ｃｏｎｄ、及び受信装置２０の署名用公開鍵ｖ（＝ｇｓ）から、ハッシュ関数Ｈ１、Ｈ２、及びペアリング＾ｅにより送信者共通鍵を生成する（Ｓ１５）。暗号化部１４は、条件Ｃｏｎｄのダイジェストｈ＝Ｈ２（Ｃｏｎｄ）∈Ｇ１と署名用公開鍵ｖとにペアリング演算を施し、当該ペアリング演算の結果を乱数ｒでべき乗することにより、送信者共通鍵Ｈ１（＾ｅ（ｈ，ｖ）ｒ）を生成する。
【００９２】
暗号化部１４は、メッセージｍを、送信者共通鍵Ｈ１（＾ｅ（ｈ，ｖ）ｒ）と排他的論理和を取ることにより、暗号化メッセージＶ←ｍ  ＸＯＲ  Ｈ１（＾ｅ（ｈ，ｖ）ｒ）に暗号化し、乱数ｒに対応する共通鍵生成用の情報ｇｒと暗号化メッセージＶとで構成される暗号文Ｃ＝（ｇｒ，Ｖ）を設定する。
【００９３】
通信部１８は、暗号文Ｃ、条件Ｃｏｎｄを受信装置２０へ送信する（Ｓ１７）。なお、乱数ｒは、送信装置１０において安全に破棄され、送信装置１０から漏洩しないものとする。
【００９４】
４．ｍ又は¬ｍ（≠ｍ）←Ｓｉｇｎｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｓｋＲ，ｓｉｇ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，Ｃ，Ｃｏｎｄ）：
復号者は、受信された暗号文Ｃ＝（Ｕ，Ｖ）を復号するため、次のステップを実行することによってＳｉｇｎｄｅｃｒｙｐｔ（Λ，ｓ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，Ｃ，Ｃｏｎｄ）を計算する。
【００９５】
４−１．σ←Ｓｉｇｎ（ｓｋＲ，ｓｉｇ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ）：
復号者は、Ｓｉｇｎ（ｓ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ）を次のように計算する。
【００９６】
（ａ）ｈ←Ｈ２（Ｃｏｎｄ）を計算する。
【００９７】
（ｂ）署名σをσ←ｈｓ∈Ｇ１により生成する。
【００９８】
Ｓｉｇｎ（ｓ，ｐａｒａｍ＿ｓｉｇ，Ｃｏｎｄ）の出力はσ＝ｈｓである。
【００９９】
４−２．ｍ又は¬ｍ（≠ｍ）←Ｄｅｃｒｙｐｔ（ｓｋＲ，ｅｎｃ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃ，Ｃｏｎｄ）：
復号者は、Ｄｅｃｒｙｐｔ（Λ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃ，Ｃｏｎｄ）を、ｍ←Ｖ  ＸＯＲ  Ｈ１（＾ｅ（σ，Ｕ））により計算する。
【０１００】
Ｄｅｃｒｙｐｔ（Λ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃ，Ｃｏｎｄ）の出力はメッセージｍであり、これをＳｉｇｎＤｅｃｒｙｐｔ（Λ，ｐａｒａｍ，ｐａｒａｍ＿ｓｉｇ，σ，Ｃ，Ｃｏｎｄ）の出力とする。
【０１０１】
通信部２８は、上述のＳｉｇｎｄｅｃｒｙｐｔの入力の一部となる暗号文Ｃ＝（Ｕ，Ｖ）及び条件Ｃｏｎｄを、送信装置１０から受信する（Ｓ２３）。
【０１０２】
ユーザインタフェース部２３は、従来と同様、受信された条件Ｃｏｎｄを表示し（Ｓ２４）、その後に、ユーザによる操作を受け付けてもよい（Ｓ２５）。ユーザにより条件Ｃｏｎｄに同意したことを示す特定の操作が受け付けられた場合のみ（Ｓ２５でＹＥＳ）、署名復号が実行される（Ｓ２６〜Ｓ２８）。
【０１０３】
図３は、条件Ｃｏｎｄを表示するための条件提示画面の一例を示す図である。図３では、セットアッププログラムがメッセージｍの一例であり、使用許諾契約書３１が条件Ｃｏｎｄの一例である。
【０１０４】
図３の条件提示画面には、使用許諾契約書３１とともに、ユーザ操作を受け付けるためのいくつかのボタンが表示されている。ユーザによる特定の操作の一例として、同意するボタン３２に対するクリック操作、次へボタン３３に対するクリック操作が、この順に行われた場合のみ、暗号化されたセットアッププログラムの署名復号が実行される。
【０１０５】
署名復号部２４は、受信装置２０の署名用秘密鍵ｓ、条件Ｃｏｎｄ、及び送信装置１０の公開鍵ｇｒから、送信装置１０と共通のハッシュ関数Ｈ１、Ｈ２、及びペアリング＾ｅにより受信者共通鍵を生成する（Ｓ２６）。署名復号部２４は、条件Ｃｏｎｄのダイジェストｈ＝Ｈ２（Ｃｏｎｄ）∈Ｇ１を計算し、受信装置２０の署名用秘密鍵ｓによる条件Ｃｏｎｄへの署名σ＝ｈｓを用いて、受信者共通鍵Ｈ１（＾ｅ（σ，Ｕ））を生成する。
【０１０６】
ここで、送信装置１０において暗号化に用いられる受信者の署名用公開鍵ｇｓと、受信装置２０において署名復号に用いられる受信者の署名用秘密鍵ｓとが正しく対応している場合、生成される受信者共通鍵Ｈ１（＾ｅ（σ，Ｕ））＝Ｈ１（＾ｅ（ｈｓ，ｇｒ））は、ペアリング＾ｅの双線形性から、送信者共通鍵Ｈ１（＾ｅ（ｈ，ｖ）ｒ）＝Ｈ１（＾ｅ（ｈ，ｇｓ）ｒ）と同じ値Ｈ１（＾ｅ（ｈ，ｇ）ｓｒ）である。
【０１０７】
復号部２４は、暗号文Ｃに含まれる暗号化メッセージＶを、受信者共通鍵Ｈ１（＾ｅ（σ，Ｕ））と排他的論理和を取ることにより、メッセージｍ←Ｖ  ＸＯＲ  Ｈ１（＾ｅ（σ，Ｕ））に復号し（Ｓ２７）、復号されたメッセージｍを出力する（Ｓ２８）。
【０１０８】
上述のように構成された公開鍵暗号システム１によれば、受信装置２０において送信者共通鍵と同一の値の受信者共通鍵を生成できるのは、乱数ｒが送信装置１０から漏洩していない前提で、受信装置２０が秘密鍵ｓによる条件Ｃｏｎｄへの署名σ＝ｈｓを行った場合（つまり、受信者が条件Ｃｏｎｄを知り得た場合）のみと考えることができる。
【０１０９】
このことから、暗号化メッセージＶを正しく復号できた受信装置２０は、条件Ｃｏｎｄに同意したことが保証される。従って、受信者による条件Ｃｏｎｄへの同意とメッセージｍへのアクセスの制御とが、余分な通信を行うことなく保証される。例えば、図３に示した例で言えば、ユーザが使用許諾契約書３１に同意した場合のみ、セットアッププログラムによるソフトウェアのインストールが正しく行われるので、ユーザの使用許諾契約書３１への同意と、ソフトウェアの保護とが、余分な通信を行うことなく保証される。
【０１１０】
公開鍵暗号システム１では、送信装置１０に入力される任意の条件Ｃｏｎｄについて上述の説明が成り立つことから、本体情報の送信者は、本体情報へのアクセス制御のためにユーザが同意したことの保証が欲しいと考えるどのような条件でも、添付情報に記述することができる。
【０１１１】
なお、上記の実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、プロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【０１１２】
（変形例）
以上、本発明の１つの態様に係る公開鍵暗号システムについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
【０１１３】
例えば、上記の実施の形態に係る署名復号スキームの具体例では、受信者が条件Ｃｏｎｄに施した署名を入手できた人は、暗号化メッセージＶを正しいメッセージｍに復号できてしまう。そこで、そのような復号ができないように、署名用のみならず、受信者の別の秘密鍵を用いた処理を導入してもよい。例えば、上述した受信者の暗号化用の秘密鍵、公開鍵の鍵ペア（ｓｋＲ，ｅｎｃ，ｐｋＲ，ｅｎｃ）を、空の値とするのではなく、有効な秘密鍵及び公開鍵のペアとして、受信者の署名用の鍵ペアとは別に当該暗号化用の鍵ペアを用いた処理を導入してもよい。
【０１１４】
また、上記の実施の形態の具体例に対し、例えば、Ｆｕｊｉｓａｋｉ−Ｏｋａｍｏｔｏ変換を適用することにより、さらに安全性を高めることもできる。Ｆｕｊｉｓａｋｉ−Ｏｋａｍｏｔｏ変換の具体的な適用例については、例えば、特許文献１、非特許文献１、及び非特許文献２に記載されている。
【産業上の利用可能性】
【０１１５】
本発明は、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムに広く適用できる。
【符号の説明】
【０１１６】
１    公開鍵暗号システム
１０    送信装置
１１    セットアップ部
１４    暗号化部
１８    通信部
１９    記憶部
２０    受信装置
２１    セットアップ部
２２    鍵生成部
２３    ユーザインタフェース部
２４    署名復号部
２８    通信部
２９    記憶部
３１    使用許諾契約書
３２    同意するボタン
３３    次へボタン
４０    通信路
【図１】
2014026238.tif 000003
【図２】
2014026238.tif 000004
【図３】
2014026238.tif 000005