JP5945525B2 - 鍵交換システム、鍵交換装置、その方法、及びプログラム - Google Patents

鍵交換システム、鍵交換装置、その方法、及びプログラム Download PDF

Info

Publication number
JP5945525B2
JP5945525B2 JP2013204195A JP2013204195A JP5945525B2 JP 5945525 B2 JP5945525 B2 JP 5945525B2 JP 2013204195 A JP2013204195 A JP 2013204195A JP 2013204195 A JP2013204195 A JP 2013204195A JP 5945525 B2 JP5945525 B2 JP 5945525B2
Authority
JP
Japan
Prior art keywords
key
ciphertext
generation
secret
public
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2013204195A
Other languages
English (en)
Other versions
JP2015070498A (ja
Inventor
一樹 米山
一樹 米山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NTT Inc
NTT Inc USA
Original Assignee
Nippon Telegraph and Telephone Corp
NTT Inc USA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nippon Telegraph and Telephone Corp, NTT Inc USA filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2013204195A priority Critical patent/JP5945525B2/ja
Publication of JP2015070498A publication Critical patent/JP2015070498A/ja
Application granted granted Critical
Publication of JP5945525B2 publication Critical patent/JP5945525B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は、情報セキュリティ技術の応用技術に関し、特に、二者間で共通の共通鍵を共有する鍵交換方式に関する。
二者間で共通のセッション鍵を共有する鍵交換方式として、鍵カプセル化メカニズムに基づく鍵交換方式のFSXY方式が知られている(非特許文献1参照)。
以下、図1を用いて従来技術の概要を説明する。
[定義]
κをセキュリティパラメータとする。
F={Fκ:Domκ×FSκ→Rngκ}κを定義域{Domκ}κ、鍵空間{FSκ}κ、値域{Rngκ}κを持つ関数族とする。このとき、もし多項式時間の識別者Dに対して、関数族Fκと真性ランダム関数RFκ:Domκ→Rngκが見分けられなければ、F={Fκ}κを疑似ランダム関数と呼ぶ。
Ext:S×X→Yを有限シード空間S、有限定義域X、有限値域Yを持つ関数とする。このとき、もしH(DX)≧kとなるX上の任意分布DXに対して、Δ((US,Ext(US,DX)),(US,UY))≦neglが成り立つならば、Extを強ランダム抽出器と呼ぶ。ただし、kは予め定められた所定の値であり、例えば、k=κとする。Hは最小エントロピーを表す。また、Δ(X,Y)は確率変数XとYの統計的距離を表す。統計的距離の詳細については非特許文献2を参照されたい。US,UX,UYはそれぞれS,X,Y上の一様分布を表し、|X|=n≧k、|Y|=k、|S|=dとする。neglは漸近的に無視できる程度に十分に小さな値である。|・|は集合・の長さ(言い換えると、集合・に含まれる元を表す際に必要となる情報量、例えば、対応するビット長)を表す。dは強ランダム抽出器Extに対して求められる安全性等により定まる所定の値である。
(KeyGen,EnCap,DeCap)を選択暗号文攻撃に対して識別不可能な鍵カプセル化メカニズム(「key encapsulation mechanism」、以下「KEM」ともいう)とする。KEMは、共通鍵暗号方式で用いる共通鍵を公開鍵暗号方式で暗号化し、二者間で鍵共有を行うためのメカニズムである。KEMについての詳細は非特許文献2を参照されたい。(wKeyGen,wEnCap,wDeCap)を選択平文攻撃に対して識別不可能な(「indistinguishable against chosen plaintext attacks 」、以下「IND-CPA」ともいう)KEMとする。なお、選択暗号文攻撃に対して識別不可能な(「indistinguishable against chosen ciphertext attacks 」、以下「IND-CCA」ともいう)KEMをIND-CCA secure KEMともいい、選択平文攻撃に対して識別不可能な(「indistinguishable against chosen plaintext attacks 」、以下「IND-CPA」ともいう)KEMをIND-CPA secure KEMともいう。
鍵生成アルゴリズムKeyGen及びwKeyGenは、セキュリティパラメータκとrg∈RSG(RSGは鍵生成の乱数空間)とを入力とし、公開鍵ekと秘密鍵dkとを出力する。
鍵カプセル化アルゴリズムEnCap及びwEnCapは、公開鍵ekとre∈RSE(RSEは鍵カプセル化の乱数空間)を入力とし、KEM鍵K∈KS(KSはKEM鍵空間)と暗号文CT∈CS(CSは暗号文空間)を出力する。
復号アルゴリズムDeCap及びwDeCapは秘密鍵dkと暗号文CT∈CSとを入力とし、KEM鍵K∈KSを出力する。
[共通公開パラメータ]
F:{0,1}*×FS→RSE、F':{0,1}*×FS→RSE、G:{0,1}*×FS→{0,1}κをそれぞれ疑似ランダム関数とする。ただし、FSは疑似ランダム関数の鍵空間(|FS|=κ)、RSEは鍵カプセル化アルゴリズムの乱数空間、RSGは鍵生成アルゴリズムの乱数空間とする。Ext:SS×KS→FSをランダムに選んだシードs∈SSを用いる強ランダム抽出器とする。ただし、SSをシード空間、KSをKEM鍵の空間とする。
疑似ランダム関数F、F'及びG、強ランダム抽出器Ext、並びに、シードsを共通公開パラメータとする(図1参照)。
[長期公開鍵と長期秘密鍵]
ユーザUIはランダムにσI∈FSとrI∈RSGを選び、鍵生成アルゴリズムより(ekI,dkI)←KeyGen(1κ,rI)を得る。UIの長期秘密鍵と長期公開鍵を((dkII),ekI)とする。
[鍵交換]
ユーザUAは長期秘密鍵と長期公開鍵((dkAA),ekA)を持ち、ユーザUBは長期秘密鍵と長期公開鍵((dkBB),ekB)を持つ。
1.
ユーザUAはランダムにアドホック秘密鍵rA,r'A∈FSとrTA∈RSGを選び、暗号文CTAとKEM鍵KAとを次式により求める。
Figure 0005945525
さらに、セキュリティパラメータκとアドホック秘密鍵rTAを入力として、公開鍵ekTと秘密鍵dkTとを次式により計算する。
(ekT,dkT)←wKeyGen(1κ,rTA)
ユーザUAは求めた(UA,UB,CTA,ekT)をユーザUBに送信する。ただし、
Figure 0005945525
は、排他的論理和を表す。なお、UIはユーザの識別子であり、ユーザの名前やメールアドレス、鍵交換方式のために用意した文字を含む記号列等の識別子、ユーザの操作する端末の識別子であってもよい。要は、ユーザを特定するための識別子であれば、どのようなものでもよく、利用方法に応じて適宜設定すればよい。
2.
(UA,UB,CTA,ekT)を受け取ったら、ユーザUBはランダムにアドホック秘密鍵rB,r'B∈FSとrTB∈RSEをと選ぶ。次に、アドホック秘密鍵rB,r'B、長期秘密鍵(dkBB)を用いて次式により暗号文CTBとKEM鍵KBとを計算する。
Figure 0005945525
さらに、ユーザUBは、アドホック秘密鍵rB,r'B、長期秘密鍵(dkBB)を用いて次式により暗号文CTBとKEM鍵KBとを計算する。
Figure 0005945525
ユーザUBは、(UA,UB,CTB,CTT)をユーザUAに送信する。さらに、UBは、
Figure 0005945525
を計算し、セッション識別子ST=(UA,UB,ekA,ekB,CTA,ekT,CTB,CTT)を用いて、セッション鍵
Figure 0005945525
を導出する。セッション鍵SKの生成に係るセッションを終了し、その際の全てのセッション情報を削除する。
3.
ユーザUAは、(UA,UB,CTB,CTT)を受け取ったら、
Figure 0005945525
を計算し、セッション識別子ST=(UA,UB,ekA,ekB,CTA,ekT,CTB,CTT)を用いて、セッション鍵
Figure 0005945525
を導出する。セッション鍵SKの生成に係るセッションを終了し、その際の全てのセッション情報を削除する。
ユーザUA及びUBは、セッション鍵SKを用いて、データ暗号化し、安全に通信することができる。
Fujioka, A., Suzuki, K., Xagawa, K., Yoneyama, K., "Strongly Secure Authenticated Key Exchange from Factoring, Codes, and Lattices", In:Public Key Cryptography 2012, 2012, pp.467-484. D. Moriyama, R. Nishimaki, and T. Okamoto. "公開鍵暗号の数理" 共立出版, 2011.
非特許文献1の従来技術には、セッションにおけるオンライン計算の一部を耐タンパモジュールの内部で行わなくてはならないという問題点がある。以下、具体的に問題点を述べる。
非特許文献1の従来技術は、各秘密情報の漏洩に強い。例えば、ユーザUAとUBのアドホック秘密鍵rA,r'A,rTA,rB,r'B,rTBが漏洩しても、長期秘密鍵(dkAA),(dkBB)が同時に漏洩しない限り、
Figure 0005945525
の値が分からないため、セッション鍵SKの値に関する情報は一切漏れないことが証明できる。よって、アドホック秘密鍵rA,r'A,rTA,rB,r'B,rTBの生成を耐タンパモジュール(例:SIMカード)内ではなく、ホストマシン(例:スマートフォン)のメモリ上で行っても安全性が保証される。しかし、全ての計算をホストマシンで行うことはできない。ユーザUAは、
Figure 0005945525
を、ユーザUBは、
Figure 0005945525
を途中で計算する必要がある。もしこれらの値が漏洩した場合、この方式は安全ではない。よって、実装する場合にはこれらの値は耐タンパモジュール内で計算されなければならない。
しかし、一般に耐タンパモジュールは高コストなため、内蔵される計算資源が乏しく、頻繁にオンライン計算を行う環境では実行のボトルネックとなってしまう。よって、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式が望ましい。
本発明は、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式を用いる鍵交換システム、鍵交換装置、その方法、及びそのプログラムを提供することを目的とする。
上記の課題を解決するために、本発明の第一の態様によれば、鍵交換システムは、第一鍵交換装置と第二鍵交換装置とを含み、第一鍵交換装置と第二鍵交換装置との間で共通の共通鍵を共有する。秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、第一鍵交換装置以外の鍵交換装置に対して秘密にされ、秘密鍵dkAに対応する公開鍵ekAと秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、第二鍵交換装置に対してアクセス可能にされるものとし、秘密鍵dkBは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、秘密鍵dkBに対応する公開鍵ekBと秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを第一鍵交換装置に対してアクセス可能にされるものとする。第一鍵交換装置は、暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択部と、第二鍵交換装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成部と、秘密鍵dkAを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、第二鍵交換装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、秘密鍵dkTを用いて、第二鍵交換装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号部と、秘密鍵dkSAを用いて、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号部と、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成部と、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成部とを含む。第二鍵交換装置は、暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択部と、公開鍵ekAを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、第二鍵生成アドホック秘密鍵rTBを暗号化し、暗号文CTTを生成する第三暗号化部と、秘密鍵dkBを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、第一暗号文CTAを復号し、第一鍵KAを求める第四復号部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、公開鍵ekTを用いて、暗号文CTT及び第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、公開鍵ekSAを用いて、第二暗号文CTSB及び第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化部と、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成部と、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成部とを含む。
上記の課題を解決するために、本発明の他の態様によれば、鍵交換装置は、他の装置との間で共通の共通鍵を共有する。鍵交換装置は、秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、鍵交換装置以外の鍵交換装置に対して秘密にされ、秘密鍵dkAに対応する公開鍵ekAと秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、他の装置に対してアクセス可能にされるものとし、秘密鍵dkBは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、秘密鍵dkBに対応する公開鍵ekBと秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを鍵交換装置に対してアクセス可能にされるものとする。鍵交換装置は、暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択部と、他の装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成部と、秘密鍵dkAを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、他の装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、秘密鍵dkTを用いて、他の装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号部と、秘密鍵dkSAを用いて、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号部と、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成部と、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成部とを含む。
上記の課題を解決するために、本発明の他の態様によれば、鍵交換装置は、他の装置との間で共通の共通鍵を共有する。秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、他の装置以外の鍵交換装置に対して秘密にされ、秘密鍵dkAに対応する公開鍵ekAと秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、鍵交換装置に対してアクセス可能にされるものとし、秘密鍵dkBは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、秘密鍵dkBに対応する公開鍵ekBと秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを他の装置に対してアクセス可能にされるものとする。鍵交換装置は、暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択部と、公開鍵ekAを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、第二鍵生成アドホック秘密鍵rTBを暗号化し、暗号文CTTを生成する第三暗号化部と、秘密鍵dkBを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、他の装置から受信する第一暗号文CTAを復号し、第一鍵KAを求める第四復号部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、他の装置から受信する公開鍵ekTを用いて、暗号文CTT及び第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化部と、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、公開鍵ekSAを用いて、第二暗号文CTSB及び第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化部と、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成部と、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成部とを含む。
上記の課題を解決するために、本発明の他の態様によれば、鍵交換方法は、第一鍵交換装置と第二鍵交換装置との間で共通の共通鍵を共有するためのものである。秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、第一鍵交換装置以外の鍵交換装置に対して秘密にされ、秘密鍵dkAに対応する公開鍵ekAと秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、第二鍵交換装置に対してアクセス可能にされるものとし、秘密鍵dkBは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、秘密鍵dkBに対応する公開鍵ekBと秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを第一鍵交換装置に対してアクセス可能にされるものとする。鍵交換方法は、第一鍵交換装置が、暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択ステップと、第一鍵交換装置が、第二鍵交換装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化ステップと、第一鍵交換装置が、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成ステップと、第二鍵交換装置が、暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択ステップと、第二鍵交換装置が、公開鍵ekAを用いて、鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化ステップと、第二鍵交換装置が、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、第二鍵生成アドホック秘密鍵rTBを暗号化し、暗号文CTTを生成する第三暗号化ステップと、第一鍵交換装置が、秘密鍵dkAを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、第二鍵交換装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号ステップと、第一鍵交換装置が、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、秘密鍵dkTを用いて、第二鍵交換装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号ステップと、第一鍵交換装置が、秘密鍵dkSAを用いて、公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号ステップと、第一鍵交換装置が、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成ステップと、第一鍵交換装置が、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成ステップと、第二鍵交換装置が、秘密鍵dkBを用いて、鍵カプセル化メカニズムの復号アルゴリズムにより、第一暗号文CTAを復号し、第一鍵KAを求める第四復号ステップと、第二鍵交換装置が、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、公開鍵ekTを用いて、暗号文CTT及び第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化ステップと、第二鍵交換装置が、公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、公開鍵ekSAを用いて、第二暗号文CTSB及び第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化ステップと、第二鍵交換装置が、第一鍵KA、第二鍵KB、鍵KT及び鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成ステップと、第二鍵交換装置が、疑似ランダム関数Gにより、セッション識別子と、共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成ステップとを含む。
本発明によれば、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式を実現することができるという効果を奏する。
FSXY方式の処理の概要を説明するための図。 鍵交換システムの構成例を示す図。 第一鍵交換装置の機能ブロック図。 第二鍵交換装置の機能ブロック図。 鍵交換システム1の処理フローの例を示す図。
以下、本発明の実施形態について説明する。なお、以下の説明に用いる図面では、同じ機能を持つ構成部や同じ処理を行うステップには同一の符号を記し、重複説明を省略する。以下の説明において、テキスト中で使用する記号「^」、「~」、「」等は、本来直前の文字の真上に記載されるべきものであるが、テキスト記法の制限により、当該文字の直後に記載する。式中においてはこれらの記号は本来の位置に記述している。また、ベクトルや行列の各要素単位で行われる処理は、特に断りが無い限り、そのベクトルやその行列の全ての要素に対して適用されるものとする。
<第一実施形態>
本実施形態では、特殊なKEM(公開鍵独立暗号文生成可能KEM:「KEM with public-key-independent-ciphertext」、以下「PKIC-KEM」ともいう)を用いることで、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式を実現する。
PKIC-KEMとは、暗号文を公開鍵の情報無しで生成できるKEMのことである。本実施形態では、IND-CPA secure KEM(wKeyGen,wEnCap,wDeCap)をIND-CPA secure PKIC-KEM(wKeyGen,wEnCapC,wEnCapK,wDeCap)に置き換える。
IND-CPA secure PKIC-KEMの鍵生成アルゴリズムwKeyGenと復号アルゴリズムwDeCapとは、通常のIND-CPA secure KEMと同一である。
IND-CPA secure PKIC-KEMの暗号文生成アルゴリズムwEnCapCは鍵交換システムの公開パラメータとre∈RSE(RSEは暗号文生成の乱数空間)を入力とし、暗号文CT∈CS(CSは暗号文空間)を出力する。
IND-CPA secure PKIC-KEMのKEM鍵生成アルゴリズムwEnCapKは公開鍵ek、暗号文CT、乱数reを入力とし、KEM鍵K∈KS(KSはKEM鍵空間)を出力する。このようなPKIC-KEMとして、例えば、参考文献1に詳細な構成法の1つが記述されている。
[参考文献1]Taher El Gamal, "A Public Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms", IEEE Transactions on Information Theory, 1985, vol. IT-31, no. 4, pp. 469-472.
各ユーザUPは、PKIC-KEMを用いて(ekSP,dkSP)←wKeyGen(1κ,r')とCTSP←wEnCapC(rSP)を事前に生成する。FSXY方式の長期秘密鍵(dkPP)に代えて、(dkP,dkSP,rSP)を長期秘密鍵に設定し、FSXY方式の長期公開鍵ekPに加えて、(ekSP,CTSP)を長期公開鍵に設定する。
また、FSXY方式の鍵交換セッションにおいて(KA,KB,KT)を共有していたが、本実施形態では、KSも共有する。なお、ユーザUAはKS←wDeCapdk_SA(CTSB)、ユーザUBはKS←wEnCapKek_SA(CTSB;rSB)のように計算してKSを共有する。ここで、KSはお互いの長期秘密鍵(dkA,dkSA,rSA)、(dkB,dkSB,rSB)と長期公開鍵(ekA,ekSA,CTSA)、(ekB,ekSB,CTSB)だけに依存した情報であるため、アドホック秘密鍵rA,rTA,rB,rTBが漏洩しても影響がない。よって、FSXY方式のように
Figure 0005945525
を計算しなくても、安全性が証明できる。そのため、耐タンパモジュール内でのオンライン計算を行う必要がない。
本実施形態の鍵交換方式を以下に示す。
[準備]
κをセキュリティパラメータとする。KDF:Salt×X→Yを有限ソルト空間Salt、有限定義域X、有限値域Yを持つ関数とする。このとき、もしH(DX)≧κとなるX上の任意分布DXと任意の多項式時間攻撃者Aとに対して、|Pr[y∈RRng;1←A(y)]-Pr[x∈RDom;s∈RSalt;y←KDF(s,x);1←A(y)]|≦neglが成り立つならば、KDFを鍵導出関数と呼ぶ。ただし、A(・)は攻撃者Aに対してある値・を与えたときの出力を表す。つまり、上記式は、有限値域Yの元yを攻撃者Aに対して与えたときに、値域Rngからランダムに元yを選ぶ確率と、KDFの入力をソルトsと有限定義域Xの元xとして元yを出力し、有限値域Yの元yを攻撃者Aに対して与えたときに、有限ソルト空間Saltからランダムにソルトsを選び、定義域Domからランダムに元xを選ぶ確率との差が、漸近的に無視できる程度に十分小さな値以下であることを表している。ただし、|X|=n≧k、|Y|=k、|Salt|=dとする。dは鍵導出関数KDFに対して求められる安全性等により定まる所定の値である。
<鍵交換システム1>
図2は、鍵交換システム1の構成例を示す図である。鍵交換システム1は、第一鍵交換装置10と第二鍵交換装置20とサーバ30とを含む。各装置は、通信回線を介して接続されている。第一鍵交換装置10と前記第二鍵交換装置20とは、その間で共通の共通鍵(この実施形態では、セッション鍵SK)を共有する。
図3は、第一鍵交換装置10の機能ブロック図である。第一鍵交換装置10は、第一記憶部11と、第一秘密鍵選択部12と、第一暗号化部13と、鍵生成部14と、第一復号部15と、第二復号部16と、第三復号部17と、第一パラメータ生成部18と、第一セッション鍵生成部19とを含む。
図4は、第二鍵交換装置20の機能ブロック図である。第二鍵交換装置20は、第二記憶部21と、第二秘密鍵選択部22と、第二暗号化部23と、第三暗号化部24と、第四復号部25と、第四暗号化部26と、第五暗号化部27、第二パラメータ生成部28と、第二セッション鍵生成部29とを含む。
図5は、鍵交換システム1の処理フローの例を示す図である。
[公開パラメータ]
サーバ30は、疑似ランダム関数G、鍵導出関数KDF、公開ソルトsを公開パラメータとして、第一鍵交換装置10と前記第二鍵交換装置20とがアクセスできるように、図示しない記憶部に記憶しておく。
疑似ランダム関数Gは、次のように表される。G:{0,1}*×FS→{0,1}κ。ただし、FSは疑似ランダム関数の鍵空間(|FS|=κ)とする。鍵導出関数KDFは、ランダムに選んだ公開ソルトs∈Saltを用い、次のように表される。KDF:Salt×KS→FS。ただし、Saltをソルト空間、KSをKEM鍵の空間とする。
<長期公開鍵と長期秘密鍵>
ユーザUPはランダムにr,r'∈RRSGとrSPRRSEを選び、鍵生成アルゴリズムより(ekP,dkP)←KeyGen(1κ,r)と(ekSP,dkSP)←wKeyGen(1κ,r')、暗号文生成アルゴリズムによりCTSP←wEnCapC(rSP)を計算する。UPの長期秘密鍵を(dkP,dkSP,rSP)、長期公開鍵を(ekP,ekSP,CTSP)とする。
[鍵交換]
<第一記憶部11及び第二記憶部21>
ユーザUAの操作する第一鍵交換装置10は、r,r'∈RRSGとrSARRSEを選び、IND-CCA secure KEMの鍵生成アルゴリズムにより(ekA,dkA)←KeyGen(1κ,r)を生成し、IND-CPA secure PKIC-KEMの鍵生成アルゴリズムにより(ekSA,dkSA)←wKeyGen(1κ,r')を生成する。さらに、IND-CPA secure PKIC-KEMの暗号文生成アルゴリズムによりCTSA←wEnCaAC(rSA)を計算する。第一鍵交換装置10は、(dkA,dkSA,rSA)を第一長期秘密鍵SSKAとして第一記憶部11に秘密に記憶し、(ekA,ekSA,CTSA)を第一長期公開鍵SPKAとして、第一記憶部11またはサーバ30に、第二鍵交換装置20がアクセスできるように、記憶する。
同様に、ユーザUBの操作する第二鍵交換装置20は、第二長期秘密鍵SSKB:=(dkB,dkSB,rSB)を生成し、第二記憶部21に秘密に記憶し、第二長期公開鍵SPKB:=(ekB,ekSB,CTSB)を生成し、第二記憶部21またはサーバ30に、第一鍵交換装置10がアクセスできるように、記憶する。
[第一鍵交換装置10の処理の流れ(図3及び5参照)]
<第一秘密鍵選択部12>
第一秘密鍵選択部12は、暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し(rARRSE)、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する(s11、rTARRSG)。第一秘密鍵選択部12は、第一暗号文生成アドホック秘密鍵rAと第一鍵生成アドホック秘密鍵rTAとを、第一記憶部11に秘密に記憶する。
<第一暗号化部13>
第一暗号化部13は、第二長期公開鍵SPKBに含まれる第二IND-CCA公開鍵ekBを第二鍵交換装置20またはサーバ30から受け取る。第一暗号化部13は、第二IND-CCA公開鍵ekBを用いて、IND-CCA secure KEMにより、第一記憶部11から取り出した第一暗号文生成アドホック秘密鍵rAを暗号化し、第一IND-CCA暗号文CTAと第一IND-CCA鍵KAとの組を生成する(s12、(CTA,KA)←EnCapek_B(rA))。第一暗号化部13は、第一IND-CCA鍵KAを第一記憶部11に秘密に記憶する。なお、「秘密」とは、対象となる情報にアクセスするための正当性を有さないものに対してアクセスできないようにすることを意味する。
<鍵生成部14>
鍵生成部14は、第一鍵生成アドホック秘密鍵rTAを第一記憶部11から取り出す。鍵生成部14は、IND-CPA secure PKIC-KEMにより、第一鍵生成アドホック秘密鍵rTAを用いて、IND-CPA公開鍵ekTとIND-CPA秘密鍵dkTとの組を生成する(s13、(ekT,dkT)←wKeyGen(1κ,rTA))。鍵生成部14は、IND-CPA秘密鍵dkTを第一記憶部11に秘密に記憶する。
第一鍵交換装置10は、図示しない送信部を介して、(UA,UB,CTA,ekT)を第二鍵交換装置20に送信する。
さらに、第一鍵交換装置10は、図示しない受信部を介して、(UA,UB,CTB,CTT)を第二鍵交換装置20から受信する。CTB,CTTの詳細については後述する。
<第一復号部15>
第一復号部15は、第一記憶部11から第一IND-CCA秘密鍵dkAを取り出し、これを用いて、IND-CCA secure KEMにより、第二鍵交換装置20から受信した第二IND-CCA暗号文CTBを復号し、第二IND-CCA鍵KBを求める(s14、KB←DeCapdk_A(CTB))。
<第二復号部16>
第二復号部16は、IND-CPA secure PKIC-KEMにより、第一記憶部11からIND-CPA秘密鍵dkTを取り出し、これを用いて、第二鍵交換装置20から受信したIND-CPA暗号文CTTを復号し、IND-CPA鍵KTを求める(s15、KT←wDeCapdk_T(CTT))。
<第三復号部17>
第三復号部17は、第二鍵交換装置20またはサーバ30から第二IND-CPA暗号文CTSB(公開パラメータ)を受け取る。第三復号部17は、第一記憶部11から第一IND-CPA秘密鍵dkSAを取り出し、これを用いて、IND-CPA secure PKIC-KEMにより、第二IND-CPA暗号文CTSBを復号し、IND-CPA鍵KSを求める(s16、KS←wDeCapdk_SA(CTSB))。
<第一パラメータ生成部18>
第一パラメータ生成部18は、サーバ30から鍵導出関数KDF及び公開ソルトs(公開パラメータ)を受け取る。第一パラメータ生成部18は、第一暗号化部13、第一復号部15、第二復号部16及び第三復号部17からそれぞれ第一IND-CCA鍵KA、第二IND-CCA鍵KB、IND-CPA鍵KT及びIND-CPA鍵KSを受け取り、これらの値と、鍵導出関数KDF及び公開ソルトsとを用いて、次式により、セッション鍵生成パラメータK'1、K'2、K'3及びK'4を求める(s17)。
K'1←KDF(s,KA)
K'2←KDF(s,KB)
K'3←KDF(s,KT)
K'4←KDF(s,KS)
<第一セッション鍵生成部19>
第一セッション鍵生成部19は、疑似ランダム関数G(公開パラメータ)をサーバ30から受け取る。第一セッション鍵生成部19は、第一パラメータ生成部18からセッション鍵生成パラメータK'1、K'2、K'3及びK'4を受け取り、疑似ランダム関数Gにより、セッション識別子ST=(UA,UB,SPKA,SPKB,CTA,ekT,CTB,CTT)と、セッション鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて、次式により、セッション鍵SKを生成する(s18)。
Figure 0005945525
第一鍵交換装置10は、セッション鍵SKの生成に係るセッションを終了し、全てのセッション情報を削除する。
[第二鍵交換装置20の処理の流れ(図4及び5参照)]
<第二秘密鍵選択部22>
第二秘密鍵選択部22は、暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し(rBRRSE)、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する(s21、rTBRRSE)。第二秘密鍵選択部22は、第二暗号文生成アドホック秘密鍵rBと第二鍵生成アドホック秘密鍵rTBとを、第二記憶部21に秘密に記憶する。
<第二暗号化部23>
第二暗号化部23は、第一長期公開鍵SPKAに含まれる第一IND-CCA公開鍵ekAを第一鍵交換装置10またはサーバ30から受け取る。第二暗号化部23は、第一IND-CCA公開鍵ekAを用いて、IND-CCA secure KEMにより、第二記憶部21から取り出した第二暗号文生成アドホック秘密鍵rBを暗号化し、第二IND-CCA暗号文CTBと第二IND-CCA鍵KBとの組を生成する(s22、(CTB,KB)←EnCapek_A(rB))。第二暗号化部は、第二IND-CCA鍵KBを第二記憶部21に秘密に記憶する。
<第三暗号化部24>
第三暗号化部24は、第二鍵生成アドホック秘密鍵rTBを第二記憶部21から取り出し、IND-CPA secure PKIC-KEMの暗号文生成アルゴリズムwEnCapCにより、取り出した第二鍵生成アドホック秘密鍵rTBを暗号化し、IND-CPA暗号文CTTを生成する(s23、CTT←wEnCapC(rTB))。
第二鍵交換装置20は、図示しない受信部を介して、(UA,UB,CTA,ekT)を第一鍵交換装置10から受信する。
さらに、第二鍵交換装置20は、図示しない送信部を介して、(UA,UB,CTB,CTT)を第一鍵交換装置10に送信する。
<第四復号部25>
第四復号部25は、第二記憶部21から第二IND-CCA秘密鍵dkBを取り出し、これを用いて、IND-CCA secure KEMにより、受信した(UA,UB,CTA,ekT)に含まれる第一IND-CCA暗号文CTAを復号し、第一IND-CCA鍵KAを求める(s24、KA←DeCapdk_B(CTA))。
<第四暗号化部26>
第四暗号化部26は、第二鍵生成アドホック秘密鍵rTBを第二記憶部21から取り出す。第四暗号化部26は、IND-CPA secure PKIC-KEMのKEM鍵生成アルゴリズムwEnCapKにより、受信した(UA,UB,CTA,ekT)に含まれるIND-CPA公開鍵ekTを用いて、第三暗号化部24で生成したIND-CPA暗号文CTT及び取り出した第二鍵生成アドホック秘密鍵rTBを暗号化し、IND-CPA鍵KTを生成する(s25、KT←wEnCapKek_T(CTT;rTB))。
<第五暗号化部27>
第五暗号化部27は、サーバ30または第一鍵交換装置10から長期公開鍵SPKAに含まれる第一IND-CPA公開鍵ekSAを受け取る。第五暗号化部27は、第二記憶部21から第二長期秘密鍵SSKBに含まれる第二暗号文生成秘密鍵rSBを取り出し、IND-CPA secure PKIC-KEMのKEM鍵生成アルゴリズムwEnCapKにより、受け取った第一IND-CPA公開鍵ekSAを用いて、第二長期公開鍵SPKBに含まれる第二IND-CPA暗号文CTSB及び取り出した第二暗号文生成秘密鍵rSBを暗号化し、IND-CPA鍵KSを生成する(s26、KS←wEnCapKek_SA(CTSB,rSB))。
<第二パラメータ生成部28>
第二パラメータ生成部28は、サーバ30から鍵導出関数KDF及び公開ソルトs(公開パラメータ)を受け取る。第二パラメータ生成部28は、第二暗号化部23、第四復号部25、第四暗号化部26及び第五暗号化部27からそれぞれ第二IND-CCA鍵KB、第一IND-CCA鍵KA、IND-CPA鍵KT及びIND-CPA鍵KSを受け取り、これらの値と、鍵導出関数KDF及び公開ソルトsとを用いて、次式により、セッション鍵生成パラメータK'1、K'2、K'3及びK'4を求める(s27)。
K'1←KDF(s,KA)
K'2←KDF(s,KB)
K'3←KDF(s,KT)
K'4←KDF(s,KS)
<第二セッション鍵生成部29>
第二セッション鍵生成部29は、疑似ランダム関数G(公開パラメータ)をサーバ30から受け取る。第二セッション鍵生成部29は、第二パラメータ生成部28からセッション鍵生成パラメータK'1、K'2、K'3及びK'4を受け取り、疑似ランダム関数Gにより、セッション識別子ST=(UA,UB,SPKA,SPKB,CTA,ekT,CTB,CTT)と、セッション鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて、次式により、セッション鍵SKを生成する(s28)。
Figure 0005945525
第二鍵交換装置20は、セッション鍵SKの生成に係るセッションを終了し、全てのセッション情報を削除する。
<効果>
このような構成により、FSXY方式のように
Figure 0005945525
を計算しなくても、安全性が証明できる。そのため、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式を実現することができる。また、なお、IND-CPA secure KEM(wKeyGen,wEnCap,wDeCap)をIND-CPA secure PKIC-KEM(wKeyGen,wEnCapC,wEnCapK,wDeCap)に置き換えることにより、FSXY方式では、ユーザUBは、ユーザUAから(UA,UB,CTA,ekT)を受信するまでセッション鍵SK生成のための処理((UA,UB,CTB,CTT)を生成する処理)を開始することができないが、本実施形態では、ユーザUAの操作する第一鍵交換装置10から(UA,UB,CTA,ekT)を受信する前に、第二鍵交換装置20は(UA,UB,CTB,CTT)を生成することができる。よって、本実施形態の方式は、遅延に強い。
<変形例>
なお、本実施形態では、鍵カプセル化メカニズムとして、IND-CCA secure KEMを用いているが、必ずしも、選択暗号文攻撃に対して識別不可能でなく、また、公開鍵独立暗号文生成可能鍵カプセル化メカニズムとしてIND-CPA secure PKIC-KEMを用いているが、必ずしも、選択平文攻撃に対して識別不可能でなくとも、耐タンパモジュール内でオンライン計算を行うこと無く安全な方式を実現することができる。ただし、IND-CCA secure KEMとIND-CPA secure PKIC-KEMとを用いることで、数学的にも安全となる。
鍵導出関数KDFに代えて、強ランダム抽出器Ext及びシードsを公開パラメータとしてもよい。強ランダム抽出器Extは、ランダムに選んだシードs∈SSを用い、次のように表される。Ext:SS×KS→FS。ただし、SSをシード空間、KSをKEM鍵の空間とする。
本実施形態では、第一長期秘密鍵SSKA等及び第二長期秘密鍵SSKB等をそれぞれ第一記憶部11及び第二記憶部21に秘密に記憶しているが、必ずしも第一鍵交換装置10及び第二鍵交換装置20の内部に記憶する必要はなく、それぞれ第一鍵交換装置10及び第二鍵交換装置20以外の鍵交換装置に対して秘密にされていればよい。例えば、安全な通信回線を使ってサーバ30に送信し、サーバ30内部で記憶し、必要に応じて、安全な通信回線を使って取り出せばよい。
第一鍵交換装置10の機能と第二鍵交換装置20の機能とを一つの鍵交換装置上で実装し、その鍵交換装置を第一鍵交換装置10として機能させてもよいし、第二鍵交換装置20として機能させてもよい。その場合、第一記憶部11と第二記憶部21、第一秘密鍵選択部12と第二秘密鍵選択部22、第一暗号化部13と第二暗号化部23、第一パラメータ生成部18と第二パラメータ生成部28、第一セッション鍵生成部19と第二セッション鍵生成部29等は、同様の機能を有するため、入力及び出力を変えるだけでよく、共用することができる。
本発明は上記の実施形態及び変形例に限定されるものではない。例えば、上述の各種の処理は、記載に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。その他、本発明の趣旨を逸脱しない範囲で適宜変更が可能である。
<プログラム及び記録媒体>
また、上記の実施形態及び変形例で説明した各装置における各種の処理機能をコンピュータによって実現してもよい。その場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD−ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶部に格納する。そして、処理の実行時、このコンピュータは、自己の記憶部に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実施形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよい。さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、プログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、コンピュータ上で所定のプログラムを実行させることにより、各装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。

Claims (8)

  1. 第一鍵交換装置と第二鍵交換装置とを含み、前記第一鍵交換装置と前記第二鍵交換装置との間で共通の共通鍵を共有する鍵交換システムであって、
    秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、前記第一鍵交換装置以外の鍵交換装置に対して秘密にされ、前記秘密鍵dkAに対応する公開鍵ekAと前記秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、前記第二鍵交換装置に対してアクセス可能にされるものとし、
    秘密鍵dkBは前記鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、前記秘密鍵dkBに対応する公開鍵ekBと前記秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを前記第一鍵交換装置に対してアクセス可能にされるものとし、
    前記第一鍵交換装置は、
    暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択部と、
    前記第二鍵交換装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、前記第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成部と、
    前記秘密鍵dkAを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記第二鍵交換装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、前記秘密鍵dkTを用いて、前記第二鍵交換装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号部と、
    前記秘密鍵dkSAを用いて、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号部と、
    前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成部と、
    疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成部とを含み、
    前記第二鍵交換装置は、
    暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択部と、
    前記公開鍵ekAを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、前記第二鍵生成アドホック秘密鍵rTBを暗号化し、前記暗号文CTTを生成する第三暗号化部と、
    前記秘密鍵dkBを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記第一暗号文CTAを復号し、第一鍵KAを求める第四復号部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記公開鍵ekTを用いて、前記暗号文CTT及び前記第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記公開鍵ekSAを用いて、前記第二暗号文CTSB及び前記第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化部と、
    前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成部と、
    前記疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成部とを含む、
    鍵交換システム。
  2. 請求項1の鍵交換システムであって、
    κをセキュリティパラメータ、FSを疑似ランダム関数の鍵空間、|FS|=κ、G:{0,1}*×FS→{0,1}κを疑似ランダム関数、KSをKEM鍵の空間、Saltをソルト空間、KDF:Salt×KS→FSをランダムに選んだ公開ソルトs∈Saltを用いる鍵導出関数、Ext:SS×KS→FSをランダムに選んだ公開シードs'を用いる強ランダム抽出器とし、
    疑似ランダム関数G、鍵導出関数KDF及び公開ソルトs、または、強ランダム抽出器Ext及びシードs'を共通公開パラメータとし、
    前記第一パラメータ生成部及び前記第二パラメータ生成部は、
    K'1←KDF(s,KA)
    K'2←KDF(s,KB)
    K'3←KDF(s,KT)
    K'4←KDF(s,KS)
    または
    K'1←Ext(s',KA)
    K'2←Ext(s',KB)
    K'3←Ext(s',KT)
    K'4←Ext(s',KS)
    により、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4を求め、
    前記第一共通鍵生成部及び前記第二共通鍵生成部は、UA及びUAをそれぞれ第一鍵交換装置及び第二鍵交換装置の操作者の識別子とし、セッション識別子ST=(UA,UB,SPKA,SPKB,CTA,ekT,CTB,CTT)を用いて、
    Figure 0005945525
    により、前記共通鍵SKを生成する、
    鍵交換システム。
  3. 請求項1または2の鍵交換システムであって、
    前記鍵カプセル化メカニズムは、選択暗号文攻撃に対して識別不可能であり、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムは、選択平文攻撃に対して識別不可能である、
    鍵交換システム。
  4. 他の装置との間で共通の共通鍵を共有する鍵交換装置であって、
    秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、前記鍵交換装置以外の鍵交換装置に対して秘密にされ、前記秘密鍵dkAに対応する公開鍵ekAと前記秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、前記他の装置に対してアクセス可能にされるものとし、
    秘密鍵dkBは前記鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、前記秘密鍵dkBに対応する公開鍵ekBと前記秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを前記鍵交換装置に対してアクセス可能にされるものとし、
    暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択部と、
    前記他の装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、前記第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成部と、
    前記秘密鍵dkAを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記他の装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、前記秘密鍵dkTを用いて、前記他の装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号部と、
    前記秘密鍵dkSAを用いて、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号部と、
    前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成部と、
    疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成部とを含む、
    鍵交換装置。
  5. 他の装置との間で共通の共通鍵を共有する鍵交換装置であって、
    秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、前記他の装置以外の鍵交換装置に対して秘密にされ、前記秘密鍵dkAに対応する公開鍵ekAと前記秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、前記鍵交換装置に対してアクセス可能にされるものとし、
    秘密鍵dkBは前記鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、前記秘密鍵dkBに対応する公開鍵ekBと前記秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを前記他の装置に対してアクセス可能にされるものとし、
    暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択部と、
    前記公開鍵ekAを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、前記第二鍵生成アドホック秘密鍵rTBを暗号化し、前記暗号文CTTを生成する第三暗号化部と、
    前記秘密鍵dkBを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記他の装置から受信する第一暗号文CTAを復号し、第一鍵KAを求める第四復号部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記他の装置から受信する公開鍵ekTを用いて、前記暗号文CTT及び前記第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化部と、
    前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記公開鍵ekSAを用いて、前記第二暗号文CTSB及び前記第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化部と、
    前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成部と、
    前記疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成部とを含む、
    鍵交換装置。
  6. 第一鍵交換装置と第二鍵交換装置との間で共通の共通鍵を共有するための鍵交換方法であって、
    秘密鍵dkAは鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSAは、暗号文を公開鍵の情報無しで生成できる公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第一暗号文生成秘密鍵rSAは暗号文生成の乱数空間RSEからランダムに選択され、第一暗号文CTSAは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第一暗号文生成秘密鍵rSAが暗号化されて生成されるものであり、秘密鍵dkAと秘密鍵dkSAと第一暗号文生成秘密鍵rSAとを含む第一長期秘密鍵SSKAが、前記第一鍵交換装置以外の鍵交換装置に対して秘密にされ、前記秘密鍵dkAに対応する公開鍵ekAと前記秘密鍵dkSAに対応する公開鍵ekSAと第一暗号文CTSAとを含む第一長期公開鍵SPKAとが、前記第二鍵交換装置に対してアクセス可能にされるものとし、
    秘密鍵dkBは前記鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、秘密鍵dkSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより生成され、第二暗号文生成秘密鍵rSBは暗号文生成の乱数空間RSEからランダムに選択され、第二暗号文CTSBは前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより第二暗号文生成秘密鍵rSBが暗号化されて生成されるものであり、秘密鍵dkBと秘密鍵dkSBと第二暗号文生成秘密鍵rSBとを含む第二長期秘密鍵SSKBを秘密にされ、前記秘密鍵dkBに対応する公開鍵ekBと前記秘密鍵dkSBに対応する公開鍵ekSBと第二暗号文CTSBとを含む第二長期公開鍵SPKBを前記第一鍵交換装置に対してアクセス可能にされるものとし、
    前記第一鍵交換装置が、暗号文生成の乱数空間RSEからランダムに第一暗号文生成アドホック秘密鍵rAを選択し、鍵生成の乱数空間RSGからランダムに第一鍵生成アドホック秘密鍵rTAを選択する第一秘密鍵選択ステップと、
    前記第一鍵交換装置が、前記第二鍵交換装置にアクセス可能に記憶される第二長期公開鍵SPKBに含まれる公開鍵ekBを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第一暗号文生成アドホック秘密鍵rAを暗号化し、第一暗号文CTAと第一鍵KAとの組を生成する第一暗号化ステップと、
    前記第一鍵交換装置が、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの鍵生成アルゴリズムにより、前記第一鍵生成アドホック秘密鍵rTAを用いて、公開鍵ekTと秘密鍵dkTとの組を生成する鍵生成ステップと、
    前記第二鍵交換装置が、暗号文生成の乱数空間RSEからランダムに第二暗号文生成アドホック秘密鍵rBを選択し、暗号文生成の乱数空間RSEからランダムに第二鍵生成アドホック秘密鍵rTBを選択する第二秘密鍵選択ステップと、
    前記第二鍵交換装置が、前記公開鍵ekAを用いて、前記鍵カプセル化メカニズムの鍵カプセル化アルゴリズムにより、第二暗号文生成アドホック秘密鍵rBを暗号化し、第二暗号文CTBと第二鍵KBとの組を生成する第二暗号化ステップと、
    前記第二鍵交換装置が、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの暗号文生成アルゴリズムにより、前記第二鍵生成アドホック秘密鍵rTBを暗号化し、前記暗号文CTTを生成する第三暗号化ステップと、
    前記第一鍵交換装置が、前記秘密鍵dkAを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記第二鍵交換装置から受信する第二暗号文CTBを復号し、第二鍵KBを求める第一復号ステップと、
    前記第一鍵交換装置が、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、前記秘密鍵dkTを用いて、前記第二鍵交換装置から受信する暗号文CTTを復号し、鍵KTを求める第二復号ステップと、
    前記第一鍵交換装置が、前記秘密鍵dkSAを用いて、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムの復号アルゴリズムにより、第二暗号文生成秘密鍵rSBが暗号化されて生成される第二暗号文CTSBを復号し、鍵KSを求める第三復号ステップと、
    前記第一鍵交換装置が、前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第一パラメータ生成ステップと、
    前記第一鍵交換装置が、疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第一共通鍵生成ステップと、
    前記第二鍵交換装置が、前記秘密鍵dkBを用いて、前記鍵カプセル化メカニズムの復号アルゴリズムにより、前記第一暗号文CTAを復号し、第一鍵KAを求める第四復号ステップと、
    前記第二鍵交換装置が、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記公開鍵ekTを用いて、前記暗号文CTT及び前記第二鍵生成アドホック秘密鍵rTBを暗号化し、鍵KTを生成する第四暗号化ステップと、
    前記第二鍵交換装置が、前記公開鍵独立暗号文生成可能鍵カプセル化メカニズムのKEM鍵生成アルゴリズムにより、前記公開鍵ekSAを用いて、前記第二暗号文CTSB及び前記第二暗号文生成秘密鍵rSBを暗号化し、鍵KSを生成する第五暗号化ステップと、
    前記第二鍵交換装置が、前記第一鍵KA、前記第二鍵KB、前記鍵KT及び前記鍵KSを用いて、共通鍵生成パラメータK'1、K'2、K'3及びK'4を求める第二パラメータ生成ステップと、
    前記第二鍵交換装置が、前記疑似ランダム関数Gにより、セッション識別子と、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4とを用いて共通鍵SKを生成する第二共通鍵生成ステップとを含む、
    鍵交換方法。
  7. 請求項5の鍵交換方法であって、
    κをセキュリティパラメータ、FSを疑似ランダム関数の鍵空間、|FS|=κ、G:{0,1}*×FS→{0,1}κを疑似ランダム関数、KSをKEM鍵の空間、Saltをソルト空間、KDF:Salt×KS→FSをランダムに選んだ公開ソルトs∈Saltを用いる鍵導出関数、Ext:SS×KS→FSをランダムに選んだ公開シードs'を用いる強ランダム抽出器とし、
    疑似ランダム関数G、鍵導出関数KDF及び公開ソルトs、または、強ランダム抽出器Ext及びシードs'を共通公開パラメータとし、
    前記第一パラメータ生成ステップ及び前記第二パラメータ生成ステップは、
    K'1←KDF(s,KA)
    K'2←KDF(s,KB)
    K'3←KDF(s,KT)
    K'4←KDF(s,KS)
    または
    K'1←Ext(s',KA)
    K'2←Ext(s',KB)
    K'3←Ext(s',KT)
    K'4←Ext(s',KS)
    により、前記共通鍵生成パラメータK'1、K'2、K'3及びK'4を求め、
    前記第一共通鍵生成ステップ及び前記第二共通鍵生成ステップは、UA及びUAをそれぞれ第一鍵交換装置及び第二鍵交換装置の操作者の識別子とし、セッション識別子ST=(UA,UB,SPKA,SPKB,CTA,ekT,CTB,CTT)を用いて、
    Figure 0005945525
    により、前記共通鍵SKを生成する、
    鍵交換方法。
  8. 請求項4または5の鍵交換装置として、コンピュータを機能させるためのプログラム。
JP2013204195A 2013-09-30 2013-09-30 鍵交換システム、鍵交換装置、その方法、及びプログラム Active JP5945525B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2013204195A JP5945525B2 (ja) 2013-09-30 2013-09-30 鍵交換システム、鍵交換装置、その方法、及びプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013204195A JP5945525B2 (ja) 2013-09-30 2013-09-30 鍵交換システム、鍵交換装置、その方法、及びプログラム

Publications (2)

Publication Number Publication Date
JP2015070498A JP2015070498A (ja) 2015-04-13
JP5945525B2 true JP5945525B2 (ja) 2016-07-05

Family

ID=52836773

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013204195A Active JP5945525B2 (ja) 2013-09-30 2013-09-30 鍵交換システム、鍵交換装置、その方法、及びプログラム

Country Status (1)

Country Link
JP (1) JP5945525B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6497747B2 (ja) * 2016-04-19 2019-04-10 日本電信電話株式会社 鍵交換方法、鍵交換システム
CN111541533B (zh) * 2020-04-07 2023-05-26 陕西师范大学 抵抗连续秘密信息泄露的无证书密钥封装方法
JP7569387B2 (ja) * 2020-04-15 2024-10-17 グーグル エルエルシー 三者暗号ハンドシェイクプロトコル

Also Published As

Publication number Publication date
JP2015070498A (ja) 2015-04-13

Similar Documents

Publication Publication Date Title
EP3453135B1 (en) System and method for encryption and decryption based on quantum key distribution
US10785019B2 (en) Data transmission method and apparatus
Checkoway et al. A systematic analysis of the juniper dual EC incident
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
JP6499519B2 (ja) メッセージを安全に交換する暗号方式並びにこの方式を実施する装置及びシステム
CN112115461B (zh) 设备认证方法、装置、计算机设备和存储介质
CN111448779A (zh) 用于混合秘密共享的系统、设备和方法
US12210658B2 (en) Executing entity-specific cryptographic code in a cryptographic
CN110855667B (zh) 一种区块链加密方法、装置及系统
KR102143525B1 (ko) 교집합 연산을 지원하는 함수 암호를 위한 방법 및 이를 이용한 장치
JP2014175970A (ja) 情報配信システム、情報処理装置及びプログラム
CN111404952A (zh) 变电站数据加密传输方法、装置、计算机设备和存储介质
Krishnamoorthy et al. Implementation and management of cloud security for industry 4. O-data using hybrid elliptical curve cryptography
Olumide et al. A hybrid encryption model for secure cloud computing
JP5945525B2 (ja) 鍵交換システム、鍵交換装置、その方法、及びプログラム
Kabir et al. RIOT-based smart metering system for privacy-preserving data aggregation using watermarking and encryption
EP3010173B1 (en) Key storage device, key storage method, and program therefor
JP6840685B2 (ja) データ共有方法、データ共有システム、通信端末、データ共有サーバ、プログラム
KR20180007974A (ko) 데이터의 암호화, 복호화 방법 및 이를 이용하는 장치
US11075756B2 (en) Method of encryption, method of decryption, corresponding computer device and program
CN110419195A (zh) 在iot轻量级终端环境中基于代理重加密的数据管理方法及系统
JP7385025B2 (ja) 暗号化コプロセッサにおけるエンティティ固有の暗号化コードの実行
JP2015022460A (ja) 情報記憶システム、情報記憶装置、その方法、及びプログラム
Singh et al. Security of Data with 3DES & Watermarking Algorithm
JP6108012B2 (ja) 情報配信システム、情報処理装置及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160428

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20160524

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160530

R150 Certificate of patent or registration of utility model

Ref document number: 5945525

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350