(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6042663
(24)【登録日】2016年11月18日
(45)【発行日】2016年12月14日
(54)【発明の名称】signcryption方法と装置及び対応するsigncryption検証方法と装置
(51)【国際特許分類】
H04L 9/32 20060101AFI20161206BHJP
G09C 1/00 20060101ALI20161206BHJP
【FI】
H04L9/00 675B
G09C1/00 640D
【請求項の数】10
【外国語出願】
【全頁数】14
(21)【出願番号】特願2012-187432(P2012-187432)
(22)【出願日】2012年8月28日
(65)【公開番号】特開2013-48417(P2013-48417A)
(43)【公開日】2013年3月7日
【審査請求日】2015年8月14日
(31)【優先権主張番号】11306076.8
(32)【優先日】2011年8月29日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】501263810
【氏名又は名称】トムソン ライセンシング
【氏名又は名称原語表記】Thomson Licensing
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(74)【代理人】
【識別番号】100091214
【弁理士】
【氏名又は名称】大貫 進介
(72)【発明者】
【氏名】ライラ エル アイマニ
【審査官】
金沢 史明
(56)【参考文献】
【文献】
特開2002−215026(JP,A)
【文献】
特開2003−173139(JP,A)
【文献】
特開2011−097453(JP,A)
【文献】
国際公開第2003/003329(WO,A1)
【文献】
Laila El Aimani,Generic Constructions for Verifiable Signcryption,Cryptology ePrint Archive,International Association for Cryptologic Research (IACR),2011年11月,Report 2011/592,Ver. 20111103:101928,[2016年6月23日検索],インターネット,URL,http://eprint.iacr.org/2011/592/20111103:101928
【文献】
Laila El Aimani,Design and Analysis of Opaque Signatures,2011年 4月29日,pp. 65-134,[2016年6月23日検索],インターネット,URL,http://hss.ulb.uni-bonn.de/2011/2541/2541.pdf
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00− 9/38
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
装置により平文mをsigncryptする方法であって、前記装置において、
第1の暗号化アルゴリズムと受信者の第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得するステップと、
乱数rと、カプセル化アルゴリズムと、前記受信者の第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成するステップと、
送信者の秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成するステップと、
前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得するステップと、
前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dからsigncryptionを構成するステップと、
前記signcryptionを出力するステップと、を有する方法。
【請求項2】
第1の暗号文eの復号結果の知識と、前記第2の暗号文e_dが前記セッション鍵kを用いた前記第1の暗号文eと前記カプセル化cとの正しい署名sの暗号であることを証明するステップをさらに有する、請求項1に記載の方法。
【請求項3】
受信した、平文mのsigncryptionを装置によりunsigncryptする方法であって、前記signcryptionは第1の暗号文eと、カプセル化cと、第2の暗号文e_dとを含み、前記方法は前記装置において、
第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、signcryptionの受信者の第1の公開鍵に対応する前記受信者の第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号するステップと、
逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、前記受信者の第2の公開鍵Kpkに対応する前記受信者の第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出すステップと、
第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復するステップと、
検証アルゴリズムと、前記署名の生成に用いられた送信者の秘密署名鍵Sskに対応する、前記signcryptionの前記送信者の公開署名鍵Spkとを用いて、前記署名sが正しいか検証するステップと、を有する方法。
【請求項4】
前記平文mと前記第1の暗号文eの復号結果とが等しいまたは等しくないとの知識、前記第2の暗号文e_dの復号結果の知識、及び前記復号結果が前記第1の暗号文eと前記カプセル化cとの正しいデジタル署名であることを証明するステップをさらに有する、請求項3に記載の方法。
【請求項5】
平文mをsigncryptするsigncryption装置であって、
第1の暗号化アルゴリズムと受信者の第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得する手段と、
乱数rと、カプセル化アルゴリズムと、前記受信者の第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成する手段と、
送信者の秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成する手段と、
前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得する手段と、
前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dからsigncryptionを構成する手段と、
前記signcryptionを出力する手段と、を有するsigncryption装置。
【請求項6】
第1の暗号文eの復号結果の知識と、前記第2の暗号文e_dが前記セッション鍵kを用いた前記第1の暗号文eと前記カプセル化cとの正しい署名sの暗号であることを証明する手段をさらに有する、請求項5に記載のsigncryption装置。
【請求項7】
受信した、平文mのsigncryptionをunsigncryptするsigncryption検証装置であって、前記signcryptionは第1の暗号文eと、カプセル化cと、第2の暗号文e_dとを含み、前記signcryption検証装置は、
第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、signcryptionの受信者の第1の公開鍵に対応する前記受信者の第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号する手段と、
逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、前記受信者の第2の公開鍵Kpkに対応する前記受信者の第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出す手段と、
第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復する手段と、
検証アルゴリズムと、前記署名の生成に用いられた送信者の秘密署名鍵Sskに対応する、前記signcryptionの前記送信者の公開署名鍵Spkとを用いて、前記署名sが正しいか検証する手段と、を有するsigncryption検証装置。
【請求項8】
前記平文mと前記第1の暗号文eの復号結果とが等しいまたは等しくないとの知識と、署名sが前記第1の暗号文eと前記カプセル化cの正しいデジタル署名であるかどうかとを証明する手段をさらに有する、請求項7に記載のsigncryption検証装置。
【請求項9】
プロセッサにより実行されたとき、前記プロセッサに、請求項1または2いずれか一項に記載の方法を実行させるコンピュータプログラム。
【請求項10】
プロセッサにより実行されたとき、前記プロセッサに、請求項3または4いずれか一項に記載の方法を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は概して暗号に関し、特にsigncryptionに関する。
【背景技術】
【0002】
このセクションは、以下に説明して特許請求する本発明の様々な態様に関連する様々な態様の技術を読者に紹介することを意図するものである。この説明は、本発明の様々な態様の理解を容易にする背景情報を読者に提供する役に立つはずである。従って、言うまでもなく、これらの記載は上記を考慮して読むべきであり、先行技術として認める(admissions of prior art)ものではない。
【0003】
多くの異なる暗号方式がある。Laila El Aimaniは、非特許文献1において、いくつかの暗号方式を説明しており、特に強固で否定できない署名、すなわちエンティティとの協力なくしては検証をできない署名を説明している。この論文では、筆者は基本的に基本的暗号からかかる署名をどう構成するか研究している。彼女は、従来のパラダイム(例えば、Encrypt_then_SignやCommit_then_Encrypt_and_Sign)では、リーズナブルなセキュリティレベルを満たすために、高価な暗号が必要であることを示している。次に、彼女は、少し調整するだけで、安価な暗号で構成できるようになり、得られる署名の効率(例えば、コスト、帯域幅、検証可能性)にもよいインパクトを与えることを示している。しかし、署名は、署名されるメッセージを暗号化するものではない。
【0004】
多くの実生活のアプリケーションには伝送データの秘密性と信ぴょう性/インテグリティの両方が必要なので、署名と暗号の機能を両方とも提供する暗号メカニズムであるいわゆるsigncryptionは、ますます広がりを見せている。一例として、投票者のプライバシーを保証するため暗号化が必要であり、同時に投票センターが暗号化された投票が投票者のものであることを確認する必要がある電子選挙がある。
【0005】
かかるメカニズムを基本的暗号プリミティブから構成するのは、専用の一体的構成と比較して、分析しやすい方式を実現できるので、暗号技術の分野では慣用されている。基本的暗号プリミティブからこれらのメカニズムを実現するのに用いられる、最も良く使われる先行技術のパラダイムは、「encrypt_then_sign」(EtS)パラダイムと「sign_then_encrypt」(StE)パラダイムである。
【0006】
Encrypt_then_sign(EtS)
送信者は、公開鍵と秘密鍵のペア(Spk, Ssk)を有し、受信者は異なる公開鍵と秘密鍵のペア(Epk, Esk)を有する。
【0007】
送信者は、受信者の公開鍵Epkを用いて平文mを暗号化して、暗号文eを得る。次に、送信者の秘密鍵Sskを用いて暗号文eに署名し、署名sを得る。ペア(e, s)が平文mのsigncryptionを構成する。
【0008】
その時送信者は、暗号文eの基礎となるメッセージに関する知識を提供することもできる。当業者には言うまでもなく、これは、用いる暗号方式が「クラスE」であれば、効率的に行える(非特許文献2参照。)この論文は、必要なプロトコルも、Commit_then_Encrypt_and_Signパラダイムによる確認者署名のセキュリティプルーフとともに説明している。確認者署名をセキュアにするため、このパラダイムは高価な暗号を使わなければならないことが示されている。しかし、このパラダイムは微調整により非常に安価な暗号でも使えるようになり、多くの実際的な構成が得られる。この論文は、さらに、この手法の具体的な場合、すなわちEncrypt_then_Signを検討しており、このソリューションを用いた確認者署名の実際的な実現方法を提示している。しかし、この研究のプリミティブでは、署名されるメッセージを暗号化できない。)クラスEは、準同形暗号方式により構成され、暗号文がメッセージを暗号化することを証明する効率的プロトコルを受け入れる。かかる暗号方式の例としては、ElGamal暗号(非特許文献3参照)、Paillier暗号(非特許文献4参照)、Linear Diffie-Hellman KEM/DEM(非特許文献5参照)がある。
【0009】
受信者は送信者の公開鍵Spkを用いて、暗号文eの署名sが正しいかチェックする。そして、署名が正しければ、受信者は、受信者の秘密鍵Eskを用いて暗号文eを復号して、平文mを得る。
【0010】
受信者は、いつでも誰にでも、平文mが暗号文eを復号したものである(または復号したものではない)ことを証明できる。これは、秘密鍵を開示せずに行えることが好ましい。EtSでは、かかる証明は、「confirm/deny protocols」と呼ばれるが、暗号文があるメッセージを暗号化したものであることを証明することとなる。これらの証明は、ある暗号文があるメッセージを暗号化したものであるかチェックすることが困難な場合に、すなわち使われる暗号化方式が基礎となるメッセージに基づき暗号文を区別することを困難にする識別不能性(indistinguishability)特性を満たす場合に、意味がある。一般的に、2つのメッセージとそのうち一方の暗号文とがあるとき、どちらのメッセージがその暗号文に対応するか、分からない。signcryption構成のセキュリティでは、基礎となる暗号の識別不能性が必要なので、上記のプルーフを効率的に実行させる暗号方式を検討しなければならない。ここで再び、クラスEの暗号方式は、非特許文献2に記載されているように、この目標を達成している。
【0011】
Sign_then_encrypt(StE)
EtSのように、送信者は公開鍵と秘密鍵のペア(Spk, Ssk)を有し、受信者は異なる公開鍵と秘密鍵のペア(Epk, Esk)を有する。
【0012】
StEは、従来技術の署名方法と、従来技術の署名暗号化方法とを用いて、簡単に実現できる。
【0013】
特許文献1はSign_then_Encryptパラダイムを用いてメッセージをsigncryptする他の一ソリューションを説明している。このアイデアは、まず、署名するメッセージの署名をRSAを用いて作成し、次に、再びRSAを用いて、異なる鍵ペアで、作成した署名を暗号化する。その結果が問題のメッセージのsigncryptionとなる。このsigncryptionのde-signcrypt(すなわち復号と検証)は、まずsigncryptionを復号し、出力される署名を符号で検証し、最後にその符号の基礎であるメッセージを回復することにより行う。このソリューションは、検証機能を提供しないように見える。すなわちメッセージが無ければ、作成されたsigncryptionの適格性を効率的に証明できないように見える。確かに、このソリューションの効率的な検証は、検証を容易にする代数的性質を破壊するハッシュ関数とXOR演算とがあるため、妥当とは思えなさそうである。
【0014】
StEを実施する他の一方法は、デジタル署名方式と暗号方式とからsigncryption方式を構成することである。これは2つのメカニズム、すなわちセッション鍵を生成するメカニズムである鍵カプセル化メカニズム(KEM)と、対称鍵暗号化方式であるデータカプセル化メカニズム(DEM)との組み合わせである。
【0015】
KEMは3つのアルゴリズム(鍵生成、カプセル化、逆カプセル化(decapsulation))により構成される。鍵生成は鍵ペア(pk,sk)を生成する。カプセル化は、pkを用いて、鍵kとそのカプセル化cを生成する。逆カプセル化(decapsulation)は、秘密鍵skを用いて、鍵のカプセル化から鍵を読み出す。一例は、ElGamal暗号方式を基礎としたKEMである。
【0016】
DEMーデータカプセル化メカニズム−は、データを暗号化するが、通常は対称鍵暗号アルゴリズムを用いる。
【0017】
StEは
図1に示されている。乱数r、KEMのカプセル化アルゴリズム、及び公開鍵pkを用いて、セッション鍵kとそのカプセル化cとを求める。送信者は、その秘密鍵Sskを用いて、平文mとカプセル化cとを連結したものに署名して、署名s(図示せず)を得る。DEM暗号化アルゴリズムとセッション鍵kとを用いて、(m,s)を暗号化し、eを求める。ペア(c,
e)は平文mのsigncryptionを構成する。(c, e)を「unsigncrypt」するには、KEMの逆カプセル化アルゴリズムと秘密鍵とを用いて、セッション鍵kのカプセル化cからセッション鍵kを回復する。次に、DEMの復号アルゴリズムとセッション鍵kとを用いて、eを復号して(m,s)を求める。最後に、送信者の公開鍵を用いて、署名sの正しさを検証する。
【0018】
送信者は、さらに、求めたsigncryptionの正しさを証明する必要がある。StEでは、この証明により、eの復号文が分かり、この復号文はsigncryptされたメッセージと、cと連結されたこのメッセージの署名と連結である。
【0019】
この証明は、理論的観点から妥当である(非特許文献6参照)。しかし、証明すべきデータはビット列であり代数的要素ではないので、効率的にどう証明するかは分からない。
【0020】
KEM/DEM暗号化方式の一例はElGamal暗号である:
1.ElGamal.Setup。元gから生成された、情報的に書かれた群Gを考える。群Gは有限群であり、位数はdであるとする。
【0021】
2.ElGamal.Keygen。鍵生成アルゴリズムは、入力がセキュリティパラメータであり、出力がZ
dの整数xである。群の元はy=g
xである。鍵のペアは(sk=x, pk=y)である。
【0022】
3.ElGamal.Encrypt(m)。[第1ステップ:KEMカプセル化アルゴリズム]:Z
dのランダムなrを用いて、鍵k=y
rとそのカプセル化c=g
rとを生成する。[第2ステップ:DEM暗号化アルゴリズム]:mを暗号化しe=m・k。[最終的出力]:(c, e)がmの暗号を構成する。
【0023】
4.ElGamal.Decrypt(c, e)。[第1ステップ:KEM逆カプセル化アルゴリズム]:xを用いて、k=c
x=(g
r)
x=(g
x)
r=y
rとして、cから鍵kを回復する。[第2ステップ:DEM復号アルゴリズム]:m=c・k
-1としてmを回復する。
【0024】
最後に、構成の正しさを効率的に証明するため、(KEM/DEMパラダイムから得られる)用いる暗号化方式が前述の「クラスE」になることが必要である。すなわち、暗号化が同形であり、ある暗号文があるメッセージの暗号文であることを証明する効率的な証明ができることが必要である。ElGamal暗号はこれを満たす。
【0025】
一般的に、signcryptionが検証可能であるためには次の特性が必要である。
【0026】
1.不可鍛性(unforgeability):(必ずしも敵対者によりコントロールされていなくても)メッセージの送信者のふりをすることが計算的に実現不可能である。
【0027】
2.区別性(indistinguishability):メッセージに関してそのsigncryptionから何らかの情報を推測することが計算的に実現不可能である。
【0028】
3.検証可能性(verifiability):signcryptionの正しさを効率的に証明できる可能性。
【0029】
電子選挙の例をもう一度考えるが、投票センターは投票者から「signcrypt」された投票の正しさの証明を必要とする。また、投票を復号するtrustされたパーティ(受信者)は、例えば、後で問題にならないように、送信者が問題の投票をしたのだということを証明しなければならないだろう。そのため、受信者の秘密鍵を開示せずにかかる証明を提供する効率的な手段により、受信者を支援することが望ましい。
【0030】
これらの特性を考慮して、EtSとStEは次を実行する:
EtSはverifiabilityに関してよい比較ができるが、それは単に送信者が暗号文の復号に関する知識を証明する必要があるからである。また、受信者はメッセージが暗号文の復号である、または復号でないことを証明しなければならない。かかる証明は、同形暗号と呼ばれる特殊な暗号クラスを考えた場合、容易に実行できる。しかし、indistinguishabilityを実現するためには、EtSは基礎となる署名方式が最高のセキュリティnotionを満たすことを、すなわち、敵対者が署名を取得したかも知れないメッセージに対し、新しい署名を取得するのが困難であることを非公式的に示す、選択されたメッセージ攻撃の下での強いunforgeabilityを要求する。かかる必要性は、署名方式が上記の要件を満たさない場合、署名されたメッセージに新しいsigncryptionを生成する可能性により正当化される。かかる可能性は、よく使われるほとんどの攻撃モデルにおいて、indistinguishability adversaryにメッセージを読み出すスキを与える。
【0031】
StEは、基礎となる署名方式に高いsecurity notionsは必要としない。この場合、敵対者はデジタル署名を有していないことが明確だからである。StEに好意的な他の議論は、StEが送信者に完全な匿名性を提供することである。メッセージmのsigncryptionは暗号文である。一方、EtSでは、送信者がsigncryption(e,s)に係わったか、単に(送信者の公開鍵を用いて)暗号文eのデジタル署名の正しさをチェックすることにより、誰でもチェックできる。しかし、verifiabilityはハードルとなる。上記手法は(用いた署名方式の)署名アルゴリズムを、用いたカプセル化と連結してsigncryptするメッセージに適用する。さらに、得られる署名を問題のメッセージと連結したものの暗号化をする。暗号化された署名とメッセージに関する知識の証明をするため、できたsigncryptionの正しさを証明するには、署名の同形性と暗号方式の同形性とを利用する必要がある。結果として、用いる暗号化と署名の方式は、ビットストリングではなく、代数的構造が既知の集合の要素に作用する必要がある。
まとめると、EtSにより、送信者の匿名性と構成ブロックのセキュリティという代償によって、効率的なverifiabilityが得られる。StEは、verifiabilityという代償によって、安価な構成を用いて、よりよいプライバシーを実現できる。
【0032】
当業者には言うまでもなく、EtSとStEの欠点を回避しつつ長所を組み合わせるソリューションが必要である。本発明はかかるソリューションを提供するものである。
【先行技術文献】
【特許文献】
【0033】
【特許文献1】米国特許出願公開第2005/240762号明細書
【非特許文献】
【0034】
【非特許文献1】Laila El Aimani著「Design and Analysis ofOpaque Signatures」(Dissertation RheinischenFriedrich-Wilhelms-Universitat Bonn(http://hss.ulb.uni-bonn.de/2011/2541/2541.pdf))
【非特許文献2】Laila El Aimani著「Efficient ConfirmerSignatures from the "Signature of a Commitment" Paradigm」(ProvSec 2010: 87-101)
【非特許文献3】Taher El Gamal著「A Public Key Cryptosystemand a Signature Scheme Based on Discrete Logarithms」(CRYPTO1984:10-18)
【非特許文献4】Paillier著「Public-Key Cryptosystems Based onComposite Degree Residuosity Classes」(EUROCRYPT 1999:223-238)
【非特許文献5】Dan Boneh, Xavier Boyen, Hovav Shacham著「ShortGroup Signatures」(CRYPTO 2004: 41-55)
【非特許文献6】Oded Goldreich, Silvio Micali, Avi Wigderson著「How to Prove all NP-Statements in Zero-Knowledge, and a Methodologyof Cryptographic Protocol Design」(CRYPTO 1986: 171-185)
【発明の概要】
【0035】
第1の態様では、本発明は平文mをsigncryptする方法に関する。装置は、第1の暗号化アルゴリズムと第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得し;乱数rと、カプセル化アルゴリズムと、第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成し、秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成し、前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得し、前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dから前記signcryptionを構成し、前記signcryptionを出力する。
【0036】
第1の好ましい実施形態において、上記装置は、さらに、第1の暗号文eの復号の知識と、前記第2の暗号文e_dが前記カプセル化cの鍵を用いたカプセル化cの正しい署名と前記第1の暗号文eを暗号化していることを証明する。
【0037】
第2の態様では、本発明は、受信した、平文mのsigncryptionを逆signcryptする方法に関する。signcryptionは第1の暗号文eとカプセル化cと、第2の暗号文e_dとを含む。装置は、第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、第1の公開鍵に対応する第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号し、逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、第2の公開鍵Kpkに対応する第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出し、第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復し、検証アルゴリズムと、前記署名の生成に用いられた秘密署名鍵Sskに対応する公開署名鍵Spkとを用いて、前記署名sが正しいか検証する。
【0038】
第1の好ましい実施形態では、前記装置は、さらに、前記平文mと前記暗号文eの復号と、前記第2の暗号文e_dの復号とが等しいまたは等しくないとの知識を、及び前記復号が前記第1の暗号文eと前記カプセル化cの正しいデジタル署名であることを証明する。
【0039】
第3の態様では、本発明は平文mをsigncryptするsigncryption装置に関する。signcryption装置は、第1の暗号化アルゴリズムと第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得する手段と、乱数rと、カプセル化アルゴリズムと、第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成する手段と、秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成する手段と、前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得する手段と、前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dから前記signcryptionを構成する手段と、前記signcryptionを出力する手段と、を有する。
【0040】
第1の好ましい実施形態では、第1の暗号文eの復号の知識と、前記第2の暗号文e_dが前記カプセル化cの鍵を用いたカプセル化cの正しい署名と前記第1の暗号文eを暗号化していることを証明する手段をさらに有する。
【0041】
第4の態様では、本発明は、受信した、平文mのsigncryptionをunsigncryptするsigncryption検証装置装置に関する。前記signcryptionは第1の暗号文eと、カプセル化cと、第2の暗号文e_dとを含む。前記signcryption検証装置は、第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、第1の公開鍵に対応する第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号する手段と、逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、第2の公開鍵Kpkに対応する第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出す手段と、第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復する手段と、検証アルゴリズムと、前記署名の生成に用いられた秘密署名鍵Sskに対応する公開署名鍵Spkとを用いて、前記署名sが正しいか検証する手段とを有する。
【0042】
第1の好ましい実施形態では、前記平文mの復号と前記暗号文eとが等しいまたは等しくないとの知識と、署名sが前記第1の暗号文eと前記カプセル化cの正しいデジタル署名であるかどうかとを証明する手段をさらに有する。
【0043】
第5の態様では、本発明は、プロセッサにより実行されると、第1の態様の方法の任意の実施形態の方法を実行する命令を記憶した記憶媒体に関する。
【0044】
第6の態様では、本発明は、プロセッサにより実行されると、第2の態様の方法の任意の実施形態の方法を実行する命令を記憶した記憶媒体に関する。
【図面の簡単な説明】
【0045】
添付した図面を参照して、限定的でない例示により、本発明の好ましい特徴をここに説明する。
【
図1】すでに説明したように、従来技術のKEM/DEMパラダイム方式を示す図である。
【
図2】本発明の好ましい実施形態によるsigncryption方法を示す。
【
図3】本発明の好ましい実施形態によるsigncryptionシステムを示す。
【発明を実施するための形態】
【0046】
本発明の主要な発明的アイデアは、まず、signcryptする平文を公開鍵暗号方式を用いて暗号化し、次に、生成された暗号文に変形StEを適用することよりなる。この変形StEと暗号文との結果が、その平文の新しいsigncryptionを構成する。
【0047】
ある意味で、この手法はEtSとStEの組み合わせと見ることができる。そのため、「encrypt_then_sign_then_encrypt」(EtStE)と呼ぶことができる。
【0048】
本発明の好ましい実施形態によるsigncryption(SC)方法を
図2に示す。この方法は、第1の暗号化方式E=(E.Keygen,
E.Encrypt, E.Decrypt)と、署名方式S=(S.Keygen, S.Sign,
S.Verify)と、いわゆるKEM/DEMパラダイムの第2の暗号化方式とを用いる。この第2の暗号化方式は、実際には、鍵カプセル化及びセッション鍵生成方式K=(K.Keygen, K.Encapsulate, K.Decapsulate)と第2の暗号化方式D=(D.Encrypt, D.Decrypt)とを含む。第2の暗号化方式は対称である。
【0049】
signcryption方式SCは次の通りである。
【0050】
まず、必要な鍵を生成する。E.Keygenを呼び(Epk,Esk)を求め、S.Keygenを呼び(Spk,Ssk)を求め、K.Keygenを呼び(Kpk,Ksk)を求める。送信者の鍵ペアを(Spk,Ssk)に設定し、受信者の鍵ペアを({Epk, Kpk},{Esk,Ksk})に設定する。言うまでもなく、このステップは、鍵の配布を含むが、本発明の範囲外であり、どんな好適な方法を用いても良い。送信者と受信者が自分たち独自の鍵ペアを生成することが好ましい。仮定として、送信者と受信者は方法ステップを実行するのに必要な鍵を有しているものとする。
【0051】
送信者は第1の暗号化アルゴリズムを用いて、Epkで平文mを暗号化し、暗号文e、すなわちe=E.Encrypt(m)を得る(ステップS1)。送信者は、カプセル化アルゴリズムとKpkとを用いて、鍵kとそのカプセル化c、すなわち(c,k)=K.Encapsulate()とを生成する(ステップS2)。次に、送信者は、Sskを用いて(e, c)の署名s=S.sign(e,
c)を生成する(ステップS3)。最後に、送信者は、第2の暗号化方式を用いて、鍵kでsを暗号化する。すなわち、e_kd=D.Encrypt(s)(ステップS4)。mのsigncryptionは(e, c,
e_d)により構成される(ステップS5)。
【0052】
次に、送信者は、signcryption(e,c,e_d)を受信者に送信する(ステップS6)。
【0053】
受信者はEskを用いてeを復号し、mすなわちm=E.Decrypt(e)を求める(ステップS7)。次に、受信者はKskを用いてcからk、すなわちk=K.Decapsulate(c)を読み出し(ステップS8)、鍵kを用いてe_dを復号することによりs、すなわちs=D.Decrypt(e_d)を回復する(ステップS9)。最後に、受信者はSpkを用いて、S.Verify(s)を用いて(e,c)の署名が正しいかチェックする(ステップS10)。
【0054】
送信者はeの復号に関する知識を証明でき、e_dが、カプセル化の鍵を用いたcとeの連結の正しい署名を暗号化してものであることを証明できる。受信者は、mがeの復号であること(または、復号でないこと)を証明できる。受信者は、さらに、(c,e_d)の復号の知識を証明し、この復号が(e,c)の正当なまたは正当でない署名よりなることを証明する。
【0055】
上記の構成が効率的に実現できるのは、基礎となる暗号化方式が同形であり、用いられる署名方式が「クラスS」の署名クラスに、すなわちメッセージmと公開鍵pkがあるとき、pkとmに対する署名sとを有する者がこの署名sの知識を効率的に証明できるような、署名の知識の効率的な証明ができる署名クラスに属する場合である。「クラスS」は、Laila El Aimani著「On Generic Constructions of
Designated Confirmer Signatures」(INDOCRYPT 2009:
343-362)で定義されている。
【0056】
かかるクラスは、今までに提案されよく使われているほとんどの署名を包含し、例えばRSA-FDH [Mihir Bellare, Phillip Rogaway: Random Oracles are
Practical: A Paradigm for Designing Efficient Protocols. ACM Conference on
Computer and Communications Security 1993: 62-73]:
1.RSA.Keygen:RSAモジュラスNとRSA鍵(pk=e,sk=d)を生成する。ビットストリングをZ
Nの要素にマッピングする衝突耐性のあるハッシュ関数hを考えよ。
2.RSA.Sign(m):mの署名をs=h(m)
d mod Nとして計算する。
3.RSA.verify(m,s):s
e=h(m) mod Nであるかチェックする。
【0057】
すぐに分かることは、sを有する者が、h(m)のe番目のルートの知識の証明をすることにより、sの知識を証明できることである。
【0058】
図3は、本発明の好ましい実施形態によるsigncryptionシステム100を示す。システム100は、送信器110と受信器120とを有し、各々は、他の装置と通信するように構成された少なくとも1つのインタフェースユニット111、121と、少なくとも1つのプロセッサ(「プロセッサ」)112、122と、データを記憶するように構成された、アキュムレータや中間計算結果などの少なくとも1つのメモリ113、123とを有する。送信器110のプロセッサ112は、本発明の方法の実施形態により平文をsigncryptするように構成され、受信器120のプロセッサ122は、本発明の方法の実施形態によりsigncryptionを復号し検証するように構成されている。CD−ROMやDVDなどの第1のコンピュータプログラム製品114は、送信器110のプロセッサ112により実行されたとき、本発明のいずれかの実施形態による平文のsigncryptionを実行する命令を記憶している。CD−ROMやDVDなどの第2のコンピュータプログラム製品124は、送信器120のプロセッサ122により実行されたとき、本発明のいずれかの実施形態によりsigncryptionを復号し検証する命令を記憶している。
言うまでもなく、本signcryption方法は、従来のsigncryption方法と比較すると、性能がよく、特にverifiabilityに関する性能がよく、それと同時に高いセキュリティを提供する。
【0059】
この改善は、この構成ではEtSとStEのメリットを組み合わせつつ、両者の欠点を回避していることによる。
【0060】
Verifiability
本発明の方法を用いて取得したsigncryption(e, c, e_d)の正当性を証明するには、送信器は:
1.eの復号に関する知識を提供し、
2.(c,e_d)の復号に関する知識と、この復号がcとeの連結の正しい署名であることを証明しなければならない。
【0061】
両方の証明は、用いる暗号化方式が「クラスE」に属し、用いる署名方式が「クラスS」に属するとき、効率的に実行できる。これらは両方とも、上記の証明プロトコルとともに、[Laila El Aimani著「On Generic Constructions
of Designated Confirmer Signatures」(INDOCRYPT 2009:
343-362)]に説明されている。
【0062】
StEパラダイムでは、(メッセージmの)signcryptionは、(c,e)の形式であり、送信器は、復号(c,e)の知識と、この復号の第1部分がcと復号の残り部分(すなわち、m)との連結の正しい署名であることを証明する必要がある。これは理論的観点からは可能であるが、これを実現する効率的な方法は現在のところ知られていない。受信器のプロトコル、すなわち確認/拒絶プロトコルにも同じことが当てはまる。
【0063】
よりよいプライバシ
本方法のsigncryptionは2つの暗号文を有し、攻撃者は暗号化されていないデジタル署名を有していない。これにより2つの方法でプライバシが向上する。第1に、EtSパラダイムに反して、indistinguishability性に影響せずに、「安価な」セキュリティ要件で、基礎となる署名方式を用いることができる。第2に、(EtSではsigncryptionに含まれるデジタル署名が正当か否か暗号文で誰でもチェックできるのに反して、)(第2の暗号化方式が匿名である場合、)signcryptionの送信者がsigncryptionに係わったか否かチェックできない。
【0064】
明細書、特許請求の範囲、及び図面に開示した各特徴は、独立に設けることもできるし、適切に組み合わせて設けることもできる。ハードウェアで実施されると説明した機能はソフトウェアでも実施できるし、その逆の場合もある。特許請求の範囲に示す参照符号は例示であり、請求項の範囲を限定するものではない。
実施形態について付記を記す。
(付記1) 装置により平文mをsigncryptする方法であって、前記装置において、
第1の暗号化アルゴリズムと受信者の第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得するステップと、
乱数rと、カプセル化アルゴリズムと、前記受信者の第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成するステップと、
送信者の秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成するステップと、
前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得するステップと、
前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dから前記signcryptionを構成するステップと、
前記signcryptionを出力するステップと、を有する方法。
(付記2) 第1の暗号文eの復号の知識と、前記第2の暗号文e_dが前記カプセル化cの鍵を用いたカプセル化cの正しい署名と前記第1の暗号文eを暗号化していることを証明するステップをさらに有する、付記1に記載の方法。
(付記3) 受信した、平文mのsigncryptionを装置によりunsigncryptする方法であって、前記signcryptionは第1の暗号文eと、カプセル化cと、第2の暗号文e_dとを含み、前記方法は前記装置において、
第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、signcryptionの受信者の第1の公開鍵に対応する前記受信者の第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号するステップと、
逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、前記受信者の第2の公開鍵Kpkに対応する前記受信者の第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出すステップと、
第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復するステップと、
検証アルゴリズムと、前記署名の生成に用いられた前記送信者の秘密署名鍵Sskに対応する、前記signcryptionの送信者の公開署名鍵Spkとを用いて、前記署名sが正しいか検証するステップと、を有する方法。
(付記4) 前記平文mと前記暗号文eの復号と、前記第2の暗号文e_dの復号とが等しいまたは等しくないとの知識を、及び前記復号が前記第1の暗号文eと前記カプセル化cの正しいデジタル署名であることを証明するステップをさらに有する、付記3に記載の方法。
(付記5) 平文mをsigncryptするsigncryption装置であって、
第1の暗号化アルゴリズムと受信者の第1の公開鍵Epkを用いて、前記平文mを暗号化して、第1の暗号文eを取得する手段と、
乱数rと、カプセル化アルゴリズムと、前記受信者の第2の公開鍵Kpkとを用いて、セッション鍵kと、前記セッション鍵kのカプセル化cとを生成する手段と、
送信者の秘密署名鍵Sskを用いて、署名アルゴリズムで、前記第1の暗号文eと前記カプセル化cとの署名sを生成する手段と、
前記セッション鍵kを用いて、第2の暗号化アルゴリズムで、前記署名sを暗号化して、第2の暗号文e_dを取得する手段と、
前記第1の暗号文eと、前記カプセル化cと、前記第2の暗号文e_dから前記signcryptionを構成する手段と、
前記signcryptionを出力する手段と、を有するsigncryption装置。
(付記6) 第1の暗号文eの復号の知識と、前記第2の暗号文e_dが前記カプセル化cの鍵を用いたカプセル化cの正しい署名と前記第1の暗号文eを暗号化していることを証明する手段をさらに有する、付記5に記載のsigncryption装置。
(付記7) 受信した、平文mのsigncryptionをunsigncryptするsigncryption検証装置装置であって、前記signcryptionは第1の暗号文eと、カプセル化cと、第2の暗号文e_dとを含み、前記signcryption検証装置は、
第1の復号アルゴリズムと、前記第1の暗号文eの暗号化に使われた、signcryptionの受信者の第1の公開鍵に対応する前記受信者の第1の秘密鍵Eskとを用いて、前記第1の暗号文eを復号する手段と、
逆カプセル化アルゴリズムと、セッション鍵kのカプセル化に用いられた、前記受信者の第2の公開鍵Kpkに対応する前記受信者の第2の秘密鍵Kskとを用いて、前記カプセル化cを逆カプセル化することにより、セッション鍵kを読み出す手段と、
第2の復号アルゴリズムと前記セッション鍵kとを用いて前記第2の暗号文e_dを復号することにより署名sを回復する手段と、
検証アルゴリズムと、前記署名の生成に用いられた前記送信者の秘密署名鍵Sskに対応する、前記signcryptionの送信者の公開署名鍵Spkとを用いて、前記署名sが正しいか検証する手段と、を有するsigncryption検証装置装置。
(付記8) 前記平文mの復号と前記暗号文eとが等しいまたは等しくないとの知識と、署名sが前記第1の暗号文eと前記カプセル化cの正しいデジタル署名であるかどうかとを証明する手段をさらに有する、付記7に記載のsigncryption検証装置。
(付記9) プロセッサにより実行されたとき、付記1または2いずれか一項に記載の方法を実行する命令を記憶した記憶媒体。
(付記10) プロセッサにより実行されたとき、付記3または4いずれか一項に記載の方法を実行する命令を記憶した記憶媒体。