【新規性喪失の例外の表示】特許法第30条第2項適用 (発行所)一般社団法人電子情報通信学会、(刊行物名)2012年 暗号と情報セキュリティシンポジウム予稿集 3A 3−3 第1頁〜第4頁、(発行日)平成24年1月30日、において発表 一般社団法人電子情報通信学会主催の「2012年 暗号と情報セキュリティシンポジウム(SCIS2012)」において、平成24年2月1日に発表
【文献】
Canetti, R., Halevi, S. and Katz, J.,Chosen-Ciphertext Security from Identity-Based Encryption,Lecture Notes in Computer Science,2004年,Vol.3027,,p.207-222
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0014】
上述の課題を解決するために、本開示における公開鍵暗号システムの1つの態様は、送信装置と受信装置とを用いて構成され、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、前記送信装置及び前記受信装置に設けられ、共通パラメータ及び復号者の署名スキーム用のパラメータを設定する送信者セットアップ部及び受信者セットアップ部と、前記受信装置に設けられ、署名用秘密鍵及び署名用公開鍵からなる鍵ペアを、前記復号者の署名スキーム用のパラメータに基づいて生成する署名鍵生成部を有し、前記署名用秘密鍵を含む受信者の秘密鍵及び前記署名用公開鍵を含む受信者の公開鍵からなる鍵ペアを、前記共通パラメータ及び前記復号者の署名スキーム用のパラメータに基づいて生成する鍵生成部と、前記送信装置に設けられ、送信者によって任意に選択された情報を前記添付情報として取得し、前記受信者の公開鍵及び前記添付情報を用いて、前記本体情報を暗号文に暗号化する暗号化部と、前記受信装置に設けられ、前記署名用秘密鍵を用いて前記添付情報への署名を生成する署名部を有し、
前記署名用公開鍵に基づいて前記署名が正当である場合に、前記
署名を用いて、前記暗号文を正しい本体情報に復号し、前記署名が正当でない場合に、本体情報とは異なる値を出力する署名復号部と、
前記添付情報を表示し、その後に、ユーザによる操作を受け付けるユーザインタフェース部と、を備え
、前記署名復号部は、前記ユーザによる特定の操作が受け付けられた場合のみ、前記暗号化本体情報を前記本体情報に復号する。
【0015】
このような構成によれば、
前記ユーザに対して前記添付情報への注意を喚起した上で、前記受信装置において正当な署名用秘密鍵による前記添付情報への署名が行われた場合のみ(つまり、正当な受信者が前記添付情報に同意した場合のみ)、受信装置において正しい本体情報が得られるので、受信者による添付情報への同意と本体情報へのアクセスの制御とが、余分な通信を行うことなく保証される。
【0016】
また、本発明の公開鍵暗号システムの1つの態様において、前記送信者セットアップ部及び前記受信者セットアップ部は、前記復号者の署名スキーム用のパラメータの一部として双線形性を有するペアリング演算を設定し、前記暗号化部は、前記添付情報と前記署名用公開鍵とに前記ペアリング演算を施した値を前記乱数でべき乗して得られる値を送信者共通鍵として生成し、前記送信者共通鍵を用いて前記本体情報を暗号化本体情報に暗号化し、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記受信装置へ送信し、前記署名復号部は、前記暗号化本体情報、前記乱数に対応する共通鍵生成用の情報、及び前記添付情報を、前記送信装置から受信し、前記署名用秘密鍵による前記添付情報への署名と前記乱数に対応する共通鍵生成用の情報とに前記ペアリング演算を施して得られる値を前記受信者共通鍵として生成し、前記受信者共通鍵を用いて、前記暗号化本体情報を前記本体情報に復号してもよい。
【0017】
このような構成によれば、前記署名復号を行うための公開鍵暗号システムを、ペアリング演算を用いて、具体的に構成することができる。
【0018】
また、本発明の公開鍵暗号システムの1つの態様において、前記鍵生成部は、受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを生成し、前記公開鍵暗号システムは、前記署名用秘密鍵及び前記署名用公開鍵からなる鍵ペアとは別に、前記受信者の暗号化用の秘密鍵、公開鍵からなる鍵ペアを用いた処理を行ってもよい。
【0019】
このような構成によれば、正当な受信者が前記添付情報に施した署名が漏洩した場合に、該署名を入手した正当な受信者以外の者によって前記暗号化本体情報が復号されることを阻止できる。
【0022】
これらの全般的または具体的な態様は、システム、送信装置、受信装置、方法、集積回路、コンピュータプログラムまたは記録媒体で実現されてもよく、システム、送信装置、受信装置、方法、集積回路、コンピュータプログラムおよび記録媒体の任意な組み合わせで実現されてもよい。
【0023】
以下、本発明の一態様に係る公開鍵暗号システムについて、図面を参照しながら具体的に説明する。
【0024】
なお、以下で説明する実施の形態は、いずれも本発明の一具体例を示すものである。以下の実施の形態で示される数値、形状、材料、構成要素、構成要素の配置位置及び接続形態、ステップ、ステップの順序などは、一例であり、本発明を限定する主旨ではない。また、以下の実施の形態における構成要素のうち、最上位概念を示す独立請求項に記載されていない構成要素については、任意の構成要素として説明される。
【0025】
(実施の形態)
実施の形態では、本発明の基本的な考え方である署名復号スキームについて説明し、その後に、署名復号スキームの具体的な構成例について説明する。
【0026】
まず、本明細書で用いる基本的な概念について述べる。
【0027】
群G
1、G
2を、位数が素数qである2つの巡回群とする。なお、本明細書では、群G
1、G
2における演算を乗法的に記述するが、これは群G
1、G
2を乗法群に限定するものではない。群G
1、G
2には適した加法群を用いてもよい。
【0028】
(定義1)ペアリング
以下の性質を満たす写像^e:G
1×G
1→G
2をペアリング^eと呼ぶ。なお、ペアリングは、通常eの上に^を付した記号で表されるが、本明細書では表記の都合上、^eと記す。
【0029】
・双線形性:任意のx,y∈G
1及び任意のa,b∈整数について、^e(x
a,y
b)=^e(x,y)
ab、
・非縮退性:あるx,y∈G
1について、^e(x,y)≠1、
・計算可能性:任意のx,y∈G
1について、^e(x,y)を計算するための効率的なアルゴリズムが存在する。
【0030】
(定義2)BDH(Bilinear Diffie−Hellman)パラメータジェネレータ
セキュリティパラメータk>0に対し、位数が素数qである2つの巡回群G
1、G
2の記述、及びペアリング^e:G
1×G
1→G
2の記述を、kの多項式時間で出力する確率的アルゴリズムIGは、BDHパラメータジェネレータである。
【0031】
(定義3)BDH(Bilinear Diffie−Hellman)計算問題
与えられたg,g
a,g
b,g
c∈G
1(ここで、gはG
1のランダムな生成元であり、a,b,c∈Z
qもランダムに選ばれる)について、^e(g,g)
abcを計算すること。
【0032】
次に、署名復号スキームの定義を述べる。なお、以下の説明では、メッセージmが本体情報の一例であり、条件Condが添付情報の一例である。本発明は、メッセージm、条件Condの具体的な内容を限定しないが、一例として、課題の欄で述べたように、メッセージmはソフトウェアパッケージであり、条件Condは当該ソフトウェアパッケージに添付される使用許諾契約書であってもよい。
【0033】
署名復号スキームΓは、7つのアルゴリズム(Setup,KeyGen,KeyGenSig,Encrypt,Signdecrypt,Sign,Veri)から構成される。
【0034】
・(param,param_sig)←Setup(1
k):
セットアップアルゴリズムSetupは、セキュリティパラメータkを入力に取り、共通パラメータparam、及び復号者による署名スキーム用のパラメータparam_sigを出力する。
【0035】
・(sk
R,pk
R)←KeyGen(param,param_sig):
受信者鍵生成アルゴリズムKeyGenは、共通パラメータparam、及び復号者の署名スキーム用のパラメータparam_sigを入力に取り、鍵ペア(sk
R,pk
R)を出力する。ここで、sk
R=(sk
R,enc,sk
R,sig)、pk
R=(pk
R,enc,pk
R,sig)である。sk
R,enc、pk
R,encは、受信者の暗号化用の秘密鍵、公開鍵を表し、sk
R,sig、pk
R,sigは、受信者の署名用の秘密鍵、公開鍵を表す。署名スキームのための鍵生成アルゴリズムKeyGenが、(sk
R,sig,pk
R,sig)の生成に用いられる。すなわち、(sk
R,sig,pk
R,sig)←KeyGenSig(param_sig)である。
【0036】
・(C,Cond)←Encrypt(pk
R,enc,pk
R,sig,param,param_sig,m,Cond):
署名復号スキームのための暗号化アルゴリズムEncryptは、受信者の公開鍵pk
R,enc、pk
R,sig、共通パラメータparam、復号者の署名スキーム用のパラメータparam_sig、メッセージm、及び条件Condを入力に取り、署名復号のための暗号文Cを条件Condとともに出力する。
【0037】
・m又は¬m(≠m)←Signdecrypt(sk
R,enc,sk
R,sig,param,param_sig,C,Cond):
署名復号アルゴリズムSigndecryptは、受信者の暗号化用の秘密鍵sk
R,enc,署名用の秘密鍵sk
R,sig、共通パラメータparam、復号者の署名スキーム用のパラメータparam_sig、暗号文C、及び条件Condを入力に取り、次の動作を行うことにより、正しいメッセージm又は誤った値¬m(≠m)を出力する。
【0038】
(1)σ←Sign(sk
R,sig,param_sig,Cond):
署名アルゴリズムSignは、受信者の署名用の秘密鍵sk
R,sig、復号者の署名スキーム用のパラメータparam_sig、及び条件Condを入力に取り、署名σを出力する。
【0039】
(2)Decrypt(sk
R,enc,param,param_sig,σ,C,Cond)=m(Veri(pk
R,sig,param_sig,σ,Cond)=Tの場合)又は¬m(その他の場合):
復号アルゴリズムDecryptは、受信者の暗号化用の秘密鍵sk
R,enc、共通パラメータparam、復号者の署名スキーム用のパラメータparam_sig、署名σ、及び条件Condを入力に取り、受信者の署名用の公開鍵pk
R,sig、共通パラメータparam、復号者の署名スキーム用のパラメータparam_sig、署名σ、及び条件Condを入力に取る検証アルゴリズムVeriが、署名が正しいことを示す記号Tを出力する場合は、暗号文Cから正しいメッセージmを出力し、その他の場合は、適当なメッセージ¬m(≠m)を出力する。
【0040】
このように定義される署名復号スキームΓによれば、Encrypt(pk
R,enc,pk
R,sig,param,param_sig,m,Cond)の出力(C,Cond)が、Signdecryptの入力の一部として与えられると、Signdecrypt(sk
R,enc,sk
R,sig,param,param_sig,C,Cond)は、メッセージ空間に含まれる正しいメッセージmを出力する。また、メッセージ空間に含まれる任意の条件Condについて、Veri(pk
R,sig,param_sig,Sign(sk
R,sig,param_sig,Cond),Cond)=Tとなる。
【0041】
なお、署名復号スキームで用いられる署名アルゴリズムSign及び検証アルゴリズムVeriは、上記の例に限らない。上記の署名アルゴリズムSign及び検証アルゴリズムVeriは、復号者の署名スキーム用のパラメータparam_sigを引数に取り、独立した1つの署名方式に基づく署名及び検証を行うが、この他にも、例えば、復号者の署名スキーム用のパラメータparam_sig及び共通パラメータparamの両方を引数に取り、拡張された署名方式を取り扱えるように変形された署名アルゴリズムSign及び検証アルゴリズムVeriを用いてもよい。
【0042】
また、送信者は、Encryptの計算を行う際に、受信者の暗号化アルゴリズムEnc’を追加的に用いてもよい。これと対応して、受信者は、Signdecryptの計算を行う際に、復号アルゴリズムDec’を用いてもよい。その場合、paramの一部であるparam_enc’を用いて、鍵生成アルゴリズムKeyGenEnc’:(sk
R,enc’,pk
R,enc’)←KeyGenEnc’(param_enc’)から、sk
R,encの一部であるsk
R,enc’及びpk
R,encの一部であるpk
R,enc’を生成する。
【0043】
・C’←Enc’(pk
R,enc’,param,m’):
受信者の暗号化アルゴリズムEnc’は、受信者の公開鍵pk
R,enc’、共通パラメータparam、及びメッセージm’を入力に取り、暗号文C’を出力する。
【0044】
・m’←Dec’(sk
R,enc’,param,C’):
復号アルゴリズムDec’は、受信者の秘密鍵sk
R,enc’,共通パラメータparam、及び暗号文C’を入力に取り、正しいメッセージm’又は誤った値¬m’(≠m’)を出力する。
【0045】
メッセージ空間に含まれる任意のメッセージm’について、m’←Dec’(sk
R,enc’,param,Enc’(pk
R,enc’,param,m’))である。
【0046】
上述した署名復号スキームは、例えば、送信装置及び受信装置を用いて構成される公開鍵暗号システムによって実行される。
【0047】
図1は、署名復号スキームを実行するための公開鍵暗号システムの一構成例を示す機能ブロック図である。
【0048】
図1に示される公開鍵暗号システム1は、本体情報へのアクセスを前記本体情報に添付される添付情報を用いて制御する公開鍵暗号システムであって、送信装置10と受信装置20とを用いて構成される。送信装置10と受信装置20とは、例えばインターネットなどの、秘匿性のない通信路40で接続されている。
【0049】
送信装置10は、セットアップ部11、暗号化部14、通信部18、及び記憶部19を有している。受信装置20は、セットアップ部21、鍵生成部22、ユーザインタフェース部23、署名復号部24、通信部28、記憶部29を有している。
【0050】
各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、プロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0051】
セットアップ部11、21は、共通パラメータparam、及び復号者の署名スキーム用のパラメータparam_sigを設定する。共通パラメータparam、及び復号者の署名スキーム用のパラメータparam_sigは、Setupアルゴリズムに従って生成される。設定された共通パラメータparam及び復号者の署名スキーム用のパラメータparam_sigは、例えば記憶部19、29に格納されてもよい。
【0052】
鍵生成部22は、KeyGenSigアルゴリズムに従って、復号者の署名スキーム用のパラメータparam_sigに基づいて、受信者の署名用秘密鍵sk
R,sig及び署名用公開鍵pk
R,sigからなる鍵ペア(sk
R,sig,pk
R,sig)を生成する。そして、KeyGenアルゴリズムに従って、共通パラメータparam及び復号者の署名スキーム用のパラメータparam_sigに基づいて、署名用秘密鍵sk
R,sigを含む受信者の秘密鍵sk
R、及び署名用公開鍵pk
R,sigを含む受信者の公開鍵pk
Rからなる鍵ペア(sk
R,pk
R)を生成する。
【0053】
受信者の秘密鍵sk
Rは受信装置20において秘密に保持され、受信者の公開鍵pk
Rは通信部28、18を介して、受信装置20から送信装置10へ送られる。
【0054】
暗号化部14は、Encryptアルゴリズムに従って、受信者の公開鍵pk
R、及び条件Condを用いてメッセージmを暗号文Cに暗号化する。
【0055】
条件Cond及び暗号文Cは、通信部18、28を介して、送信装置10から受信装置20へ送られる。
【0056】
ユーザインタフェース部23は、暗号文Cを復号する前に、ユーザに条件Condを提示し、条件Condに同意するか否かを示す操作をユーザから受け付ける。
【0057】
署名復号部24は、Signアルゴリズムに従って、署名用秘密鍵skR,sigを用いて条件Condへの署名σを生成し、Veriアルゴリズムに従って、署名用公開鍵
pkR,sigを用いて署名σの正当性を検証し、かつ、Signdecryptアルゴリズムに従って、署名σが正当である場合に、前記受信者の秘密鍵skRを用いて、暗号文Cを正しいメッセージmに復号し、前記署名σが正当でない場合に、メッセージmとは異なる値を出力する。
【0058】
このように構成された公開鍵暗号システム1は、署名復号スキームの各アルゴリズムに従って、以下を満たす。
【0059】
暗号化部14におけるEncrypt(pk
R,enc,pk
R,sig,param,param_sig,m,Cond)の出力(C,Cond)が、署名復号部24におけるSigndecryptの入力の一部として与えられると、Signdecrypt(sk
R,enc,sk
R,sig,param,param_sig,C,Cond)は、メッセージ空間に含まれる正しいメッセージmを出力する。
【0060】
また、メッセージ空間に含まれる任意の条件Condについて、Veri(pk
R,sig,param_sig,Sign(sk
R,sig,param_sig,Cond),Cond)=Tとなる。
【0061】
その結果、受信装置20において署名用秘密鍵sk
R,sigによる条件Condへの署名が正当である場合のみ(つまり、受信者が条件Condに同意した場合のみ)、受信装置20において正しいメッセージmが得られるので、受信者による条件Condへの同意とメッセージmへのアクセスの制御とが、余分な通信を行うことなく保証される。
【0062】
本発明の署名復号スキームに基づく公開鍵暗号システムは、上述した、EncryptとSigndecryptとの関係、及びVeriとSignとの関係を満たすことによって特徴付けられる。従って、署名復号スキームに基づく公開鍵暗号システムの具体的な構成であって、EncryptとSigndecryptとの間、及びVeriとSignとの間に、上述の関係を満たすものは、本発明に含まれる。ただし、具体的な構成によっては、Veriアルゴリズムは明示的には実装されず、Signdecryptアルゴリズムに暗に含まれることがあり得る。
【0063】
次に、署名復号スキームの具体的な構成例について説明する。まず、この構成例に関連するいくつかの技術について述べる。
【0064】
非特許文献2:Dan Boneh and Matthew Franklin,“Identity−Based Encryption from the Weil Pairing,” SIAM J. of Computing, Vol.32, No.3, pp.586−615, 2003.によると、Moni Naorによって、任意のIDベース暗号(Identity−Based Encryption:IBE)スキームを用いて公開鍵署名スキームが構成できることが分かっている。IBEのマスター秘密鍵は、署名者の秘密鍵として機能し、識別IDは、メッセージmとみなされる。よって、IDを所有する相手の復号鍵を求めることは、メッセージm(すなわちID)の署名を求めることを意味する。
【0065】
Gentryは、特許文献1及び非特許文献1において、このような関係を、公開鍵を暗黙に認証可能にするために用いている。暗黙の認証では、認証者が更新済みの公開鍵に署名を行い、かつ、受信者に復号鍵を付与した時に限り、受信者は復号することができるが、送信者は、暗号化を行う際に、受信者がこのような処理を行うことができるか否かを把握しない。
【0066】
Gentryのスキームは、証明書ベース暗号(Certificate−Based Encryption)と呼ばれている。このスキームは、Boneh−FranklinのIBEと、2人の署名者によるBoneh−Gentry−Lynn−Shachamの公開鍵アグリゲート署名方式であるBGLSアグリゲート署名方式(非特許文献3:Dan Boneh, Craig Gentry, Ben Lynn and Hovav Shacham, “Aggregate and Verifiably Encrypted Signatures from Bilinear Maps,” E.Biham (Ed.), LNCS 2656, Advances in Cryptology −Eurocrypt 2003, Springer−Verlag, pp.416−432, 2003.)とを組み合わせたものである。
【0067】
以下で述べる署名復号スキームの構成例は、IBEスキームを利用する点でGentryの証明書ベース暗号と共通しているが、受信者によって署名されるメッセージが、識別IDではなく、送信者が任意に選択できる情報である点、及び署名をアグリゲートする必要がない点でGentryの証明書ベース暗号と相違している。
【0068】
署名復号スキームでは、署名をアグリゲートする必要がないことから、単に、Boneh−Lynn−Shachamの公開鍵署名スキーム(非特許文献4:Dan Boneh, BenLynn and Hovav Shacham,“Short Signature from the Weil Pairing,” Journal of Cryptology, Vol.17, pp.297−319, 2004.)が用いられる。
【0069】
図2は、IBEスキームを利用して具体化された署名復号スキームの一構成例の動作を示すフローチャートである。この構成例に係る署名復号スキームは、例えば、
図1に示される公開鍵暗号システム1において実行される。
【0070】
図1及び
図2を参照しながら、署名復号スキームの一構成例について詳細に説明する。
【0071】
1.(param,param_sig)←Setup(1
k):
入力1
kに対し、次のステップを実行する。
【0072】
1−1.入力1
kに対し、前述したBDHパラメータジェネレータIGを実行し、2つの群G
1、G
2、及びペアリング^e:G
1×G
1→G
2を生成する。
【0073】
1−2.任意の生成元g∈G
1を選択する。
【0074】
1−3.ハッシュ関数H
1:あるnについてG
2→{0,1}
n、及びハッシュ関数H
2:{0,1}
*→G
1、を選択する。
【0075】
群G
1、G
2、ペアリング^e、ハッシュ関数H
1、H
2の具体例は、例えば、非特許文献2に詳しく述べられているため、ここでは詳細な説明を省略する。
【0076】
非特許文献2の、5.A concrete IBE system using the Weil pairing、6.Extensions and Observationsの中のTate pairing and other curves、及び、Appendix A Definition of the Weil pairingに、ベイユペアリング及びテイトペアリングの具体的な構成方法が記載されている。
【0077】
ハッシュ関数については、非特許文献2の、4.3 Relaxing the hashing requirementsに記載されている手法と合わせた形で、5.2 Admissible encoding function: MapToPointに記載されている。
【0078】
本明細書で開示する署名復号スキームには、一例として、これらのペアリング及びハッシュ関数が適用できる。
【0079】
共通パラメータはparam=(G
1,G
2,^e,g,H
1,H
2)であり、復号者の署名スキーム用のパラメータはparam_sig=(G
1,G
2,^e,g,H
2)である。メッセージスペースS
m及び条件スペースS
Condは、それぞれS
m={0,1}
n、及びS
Cond={0,1}
*である。
【0080】
共通パラメータparam及び復号者の署名スキーム用のパラメータparam_sigは、パラメータに係わる何らかの不正が生じる余地がないならば、送信装置10及び受信装置20の何れかで生成されてもよく、送信装置10及び受信装置20以外のエンティティ(不図示)で生成されてもよい。
【0081】
セットアップ部11、21は、通信部18、28を介して、共通パラメータparam及び復号者の署名スキーム用のパラメータparam_sigを、送信装置10と受信装置20とで共有する(S11、S21)。共有された共通パラメータparam及び復号者の署名スキーム用のパラメータparam_sigは、例えば記憶部19、29に格納されてもよい。
【0082】
2.(sk
R,pk
R)←KeyGen(param,param_sig):
入力(param,param_sig)に対し、次のステップを実行する。なお、以下では、一般化のために、アルゴリズムへの入力として共通パラメータparamと復号者の署名スキーム用のパラメータparam_sigの両方を記載しているが、例えば、上記の具体例のように、共通パラメータparamが与えられると復号者の署名スキーム用のパラメータparam_sigの値が全て定まるとき、共通パラメータparamのみをアルゴリズムの入力とすることもできる。
【0083】
2−1.入力(G
1,G
2,^e,g,H
2)に対し、KeyGenSigを実行することにより、秘密鍵s∈Z
qを無作為に選択した後、公開鍵v∈G
1をv←g
sにより生成する。復号者の署名用の鍵ペアは、(sk
R,sig,pk
R,sig)=(s,v)である。
【0084】
なお、簡略のため、本構成例では(sk
R,enc,pk
R,enc)=(Λ,Λ)(Λは空の値)とし、KeyGenの出力を(sk
R,pk
R)=(s,v)と表記する。
【0085】
鍵生成部22は、受信装置20の署名用秘密鍵s、署名用公開鍵g
sのペアを上述のように生成する(S22)。署名用秘密鍵sが受信装置20において秘密に保持され、署名用公開鍵g
sが送信装置10へ通知される(S12)。
【0086】
3.(C,Cond)←Encrypt(pk
R,enc,pk
R,sig,param,param_sig,m,Cond):
送信者は、署名復号のための条件Cond∈S
Condの下でメッセージm∈S
mを暗号化するため、次のステップを実行することによってEncrypt(Λ,v,param,param_sig,m,Cond)を計算する。
【0087】
3−1.h←H
2(Cond)∈G
1を計算する。
【0089】
3−3.暗号文CをC=(g
r,m XOR H
1(^e(h,v)
r))により設定する。ここで、演算XORは排他的論理和を表す。
【0090】
暗号化部14は、メッセージm及び条件Condを取得し(S13)、取得されたメッセージm及び条件Condを入力の一部として、上述のEncryptを計算する。
【0091】
暗号化部14は、乱数rを生成し(S14)、乱数r、条件Cond、及び受信装置20の署名用公開鍵v(=g
s)から、ハッシュ関数H
1、H
2、及びペアリング^eにより送信者共通鍵を生成する(S15)。暗号化部14は、条件Condのダイジェストh=H
2(Cond)∈G
1と署名用公開鍵vとにペアリング演算を施し、当該ペアリング演算の結果を乱数rでべき乗することにより、送信者共通鍵H
1(^e(h,v)
r)を生成する。
【0092】
暗号化部14は、メッセージmを、送信者共通鍵H
1(^e(h,v)
r)と排他的論理和を取ることにより、暗号化メッセージV←m XOR H
1(^e(h,v)
r)に暗号化し、乱数rに対応する共通鍵生成用の情報g
rと暗号化メッセージVとで構成される暗号文C=(g
r,V)を設定する。
【0093】
通信部18は、暗号文C、条件Condを受信装置20へ送信する(S17)。なお、乱数rは、送信装置10において安全に破棄され、送信装置10から漏洩しないものとする。
【0094】
4.m又は¬m(≠m)←Signdecrypt(sk
R,enc,sk
R,sig,param,param_sig,C,Cond):
復号者は、受信された暗号文C=(U,V)を復号するため、次のステップを実行することによってSigndecrypt(Λ,s,param,param_sig,C,Cond)を計算する。
【0095】
4−1.σ←Sign(sk
R,sig,param_sig,Cond):
復号者は、Sign(s,param_sig,Cond)を次のように計算する。
【0096】
(a)h←H
2(Cond)を計算する。
【0097】
(b)署名σをσ←h
s∈G
1により生成する。
【0098】
Sign(s,param_sig,Cond)の出力はσ=h
sである。
【0099】
4−2.m又は¬m(≠m)←Decrypt(sk
R,enc,param,param_sig,σ,C,Cond):
復号者は、Decrypt(Λ,param,param_sig,σ,C,Cond)を、m←V XOR H
1(^e(σ,U))により計算する。
【0100】
Decrypt(Λ,param,param_sig,σ,C,Cond)の出力はメッセージmであり、これをSignDecrypt(Λ,param,param_sig,σ,C,Cond)の出力とする。
【0101】
通信部28は、上述のSigndecryptの入力の一部となる暗号文C=(U,V)及び条件Condを、送信装置10から受信する(S23)。
【0102】
ユーザインタフェース部23は、従来と同様、受信された条件Condを表示し(S24)、その後に、ユーザによる操作を受け付けてもよい(S25)。ユーザにより条件Condに同意したことを示す特定の操作が受け付けられた場合のみ(S25でYES)、署名復号が実行される(S26〜S28)。
【0103】
図3は、条件Condを表示するための条件提示画面の一例を示す図である。
図3では、セットアッププログラムがメッセージmの一例であり、使用許諾契約書31が条件Condの一例である。
【0104】
図3の条件提示画面には、使用許諾契約書31とともに、ユーザ操作を受け付けるためのいくつかのボタンが表示されている。ユーザによる特定の操作の一例として、同意するボタン32に対するクリック操作、次へボタン33に対するクリック操作が、この順に行われた場合のみ、暗号化されたセットアッププログラムの署名復号が実行される。
【0105】
署名復号部24は、受信装置20の署名用秘密鍵s、条件Cond、及び送信装置10の公開鍵g
rから、送信装置10と共通のハッシュ関数H
1、H
2、及びペアリング^eにより受信者共通鍵を生成する(S26)。署名復号部24は、条件Condのダイジェストh=H
2(Cond)∈G
1を計算し、受信装置20の署名用秘密鍵sによる条件Condへの署名σ=h
sを用いて、受信者共通鍵H
1(^e(σ,U))を生成する。
【0106】
ここで、送信装置10において暗号化に用いられる受信者の署名用公開鍵g
sと、受信装置20において署名復号に用いられる受信者の署名用秘密鍵sとが正しく対応している場合、生成される受信者共通鍵H
1(^e(σ,U))=H
1(^e(h
s,g
r))は、ペアリング^eの双線形性から、送信者共通鍵H
1(^e(h,v)
r)=H
1(^e(h,g
s)
r)と同じ値H
1(^e(h,g)
sr)である。
【0107】
復号部24は、暗号文Cに含まれる暗号化メッセージVを、受信者共通鍵H
1(^e(σ,U))と排他的論理和を取ることにより、メッセージm←V XOR H
1(^e(σ,U))に復号し(S27)、復号されたメッセージmを出力する(S28)。
【0108】
上述のように構成された公開鍵暗号システム1によれば、受信装置20において送信者共通鍵と同一の値の受信者共通鍵を生成できるのは、乱数rが送信装置10から漏洩していない前提で、受信装置20が秘密鍵sによる条件Condへの署名σ=h
sを行った場合(つまり、受信者が条件Condを知り得た場合)のみと考えることができる。
【0109】
このことから、暗号化メッセージVを正しく復号できた受信装置20は、条件Condに同意したことが保証される。従って、受信者による条件Condへの同意とメッセージmへのアクセスの制御とが、余分な通信を行うことなく保証される。例えば、
図3に示した例で言えば、ユーザが使用許諾契約書31に同意した場合のみ、セットアッププログラムによるソフトウェアのインストールが正しく行われるので、ユーザの使用許諾契約書31への同意と、ソフトウェアの保護とが、余分な通信を行うことなく保証される。
【0110】
公開鍵暗号システム1では、送信装置10に入力される任意の条件Condについて上述の説明が成り立つことから、本体情報の送信者は、本体情報へのアクセス制御のためにユーザが同意したことの保証が欲しいと考えるどのような条件でも、添付情報に記述することができる。
【0111】
なお、上記の実施の形態において、各構成要素は、専用のハードウェアで構成されるか、各構成要素に適したソフトウェアプログラムを実行することによって実現されてもよい。各構成要素は、プロセッサなどのプログラム実行部が、ハードディスクまたは半導体メモリなどの記録媒体に記録されたソフトウェアプログラムを読み出して実行することによって実現されてもよい。
【0112】
(変形例)
以上、本発明の1つの態様に係る公開鍵暗号システムについて、実施の形態に基づいて説明したが、本発明は、この実施の形態に限定されるものではない。本発明の趣旨を逸脱しない限り、当業者が思いつく各種変形を本実施の形態に施したものや、異なる実施の形態における構成要素を組み合わせて構築される形態も、本発明の一つまたは複数の態様の範囲内に含まれてもよい。
【0113】
例えば、上記の実施の形態に係る署名復号スキームの具体例では、受信者が条件Condに施した署名を入手できた人は、暗号化メッセージVを正しいメッセージmに復号できてしまう。そこで、そのような復号ができないように、署名用のみならず、受信者の別の秘密鍵を用いた処理を導入してもよい。例えば、上述した受信者の暗号化用の秘密鍵、公開鍵の鍵ペア(sk
R,enc,pk
R,enc)を、空の値とするのではなく、有効な秘密鍵及び公開鍵のペアとして、受信者の署名用の鍵ペアとは別に当該暗号化用の鍵ペアを用いた処理を導入してもよい。
【0114】
また、上記の実施の形態の具体例に対し、例えば、Fujisaki−Okamoto変換を適用することにより、さらに安全性を高めることもできる。Fujisaki−Okamoto変換の具体的な適用例については、例えば、特許文献1、非特許文献1、及び非特許文献2に記載されている。