JP6468567B2 - 鍵交換方法、鍵交換システム - Google Patents

鍵交換方法、鍵交換システム Download PDF

Info

Publication number
JP6468567B2
JP6468567B2 JP2016170900A JP2016170900A JP6468567B2 JP 6468567 B2 JP6468567 B2 JP 6468567B2 JP 2016170900 A JP2016170900 A JP 2016170900A JP 2016170900 A JP2016170900 A JP 2016170900A JP 6468567 B2 JP6468567 B2 JP 6468567B2
Authority
JP
Japan
Prior art keywords
key
sid
communication device
function
exclusive
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
JP2016170900A
Other languages
English (en)
Other versions
JP2018037938A (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.)
Nippon Telegraph and Telephone Corp
Ibaraki University NUC
Original Assignee
Nippon Telegraph and Telephone Corp
Ibaraki University NUC
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, Ibaraki University NUC filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2016170900A priority Critical patent/JP6468567B2/ja
Priority to US16/321,657 priority patent/US11258588B2/en
Priority to EP17846577.9A priority patent/EP3509246B1/en
Priority to PCT/JP2017/031188 priority patent/WO2018043573A1/ja
Priority to CN201780048745.7A priority patent/CN109565440B/zh
Publication of JP2018037938A publication Critical patent/JP2018037938A/ja
Application granted granted Critical
Publication of JP6468567B2 publication Critical patent/JP6468567B2/ja
Priority to US17/350,201 priority patent/US11677543B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC

Description

この発明は情報セキュリティ技術の応用に関し、特に、グループを形成する複数のユーザが共通鍵を共有する鍵交換技術に関する。
従来からグループを形成する複数のユーザが共通鍵を共有する鍵交換技術が提案されている(例えば、非特許文献1、2参照)。非特許文献1には、そのような鍵交換技術を実現する情報システムのアーキテクチャが記載されている。非特許文献2には、そのような鍵交換技術のアルゴリズムが記載されている。
Suvo Mittra, "Iolus: a framework for scalable secure multicasting", SIGCOMM '97, pp. 277-288 "Scalable Multicast Key Distribution"、[online]、[平成28年7月12日検索]、インターネット<URL:https://tools.ietf.org/html/rfc1949>
非特許文献1、2に記載の従来技術では、共通鍵を共有したユーザ以外のユーザと新たに共有するなど動的なメンバ変更を許しながら複数のユーザが共通鍵を共有することはできない。また、ユーザ数をnとして、全体として鍵交換に必要な計算量はO(log n)となるため、ユーザ数の増大に従って鍵交換の計算量が増えるという問題がある。
この発明の目的は、このような点に鑑みて、共通鍵を共有するメンバの変更を許しながら複数のユーザが共通鍵を共有することができ、鍵交換に必要な計算量を低減することができる鍵交換技術を提供することである。
本発明の一態様は、nを2以上の整数とし、iを1からnまでの各整数とし、jを2からnまでの各整数とし、Sを鍵配送装置とし、Uiをn台の通信装置とし、U1を上記通信装置Uiから選択された1台の代表通信装置とし、Ujを上記通信装置Uiから上記代表通信装置U1を除いたn-1台の一般通信装置とし、||を連結演算子とし、α, βを次式で定義されるとし、
Figure 0006468567
上記鍵配送装置Sの記憶部に、秘密ストリングstS, st'Sが記憶されており、上記通信装置Uiの記憶部に、秘密ストリングsti, st'iが記憶されており、上記通信装置Uiが、ねじれ疑似ランダム関数により上記秘密ストリングsti, st'iを用いてri, ki, siを生成し、Ri=gr_iおよびci=gk_ihs_iを計算し、(Ri, ci)を上記鍵配送装置Sへ送信する第一鍵生成ステップと、上記鍵配送装置Sが、ターゲット衝突困難ハッシュ関数によりc1, …, cnを用いてsidを生成し、各iについて(sid, Rα, Rβ)を上記通信装置Uiへ送信するセッションID生成ステップと、上記代表通信装置U1が、疑似ランダム関数により(sid, Rn r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, R2 r_1)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信する代表第二鍵生成ステップと、上記一般通信装置Ujが、疑似ランダム関数により(sid, Rα r_j)を用いてKj lを生成し、疑似ランダム関数により(sid, Rβ r_j)を用いてKj rを生成し、Kj lとKj rとの排他的論理和によりTjを計算し、(kj, sj, Tj)を上記鍵配送装置Sへ送信する一般第二鍵生成ステップと、上記鍵配送装置Sが、ねじれ疑似ランダム関数により上記秘密ストリングstS, st'Sを用いてksを生成し、k2, …, kn, ksの排他的論理和によりk'を計算し、各jについてT1, …, Tj-1の排他的論理和によりT'jを計算し、k'を上記代表通信装置U1へ送信し、(k', T'j, T')を上記一般通信装置Ujへ送信する第三鍵生成ステップと、上記一般通信装置Ujが、T'jとKj lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算する第一セッション鍵生成ステップと、上記通信装置Uiが、疑似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成する第二セッション鍵生成ステップとを含む。
本発明の一態様は、nを2以上の整数とし、kを1以上の整数とし、||を連結演算子とし、Sを鍵配送装置とし、Ui(i=1, …, n+k)をn+k台の通信装置とし、通信装置U1, …, Unにより確立されたセッションに通信装置Un+1, …, Un+kが新たに参加する際の鍵交換方法であって、U1を上記通信装置U1, Un, Un+1, …, Un+kから選択された1台の代表通信装置とし、上記鍵配送装置Sの記憶部に、秘密ストリングstS, st'Sが記憶されており、上記通信装置Ui(i=1, …, n+k)の記憶部に、秘密ストリングsti, st'iが記憶されており、さらに、上記通信装置U1, …, Unの記憶部に、上記通信装置U1, …, Unにより確立されたセッションで生成された秘密情報rが記憶されており、上記通信装置Ui(i=1, n, …, n+k)が、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてri, ki, siを生成し、Ri=gr_iおよびci=gk_ihs_iを計算し、(Ri, ci)を上記鍵配送装置Sへ送信し、上記通信装置Ui(i=2, …, n-1)が、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてki, siを生成し、ci=gk_ihs_iを計算し、ciを上記鍵配送装置Sへ送信する第一鍵生成ステップと、上記鍵配送装置Sが、ターゲット衝突困難ハッシュ関数によりc1, …, cn+kを用いてsidを生成し、i=1, 2について(sid, Ri-1)を、i=3, …, n-2についてsidを、i=n-1, nについて(sid, Ri+1)を、i=n+1, …, n+kについて(sid, Ri-1, Ri+1)を上記通信装置Uiへ送信する(ただし、R0=Rn+K,Rn+k+1=R1とする)セッションID生成ステップと、上記代表通信装置U1が、擬似ランダム関数により(sid, Rn+k r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, gr_1r)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信し、上記通信装置U2が、擬似ランダム関数により(sid, R1 r)を用いてK2 lを生成し、擬似ランダム関数により(sid, gr)を用いてK2 rを生成し、K2 lとK2 rとの排他的論理和によりT2を計算し、(k2, s2, T2)を上記鍵配送装置Sへ送信し、上記通信装置Ui (i=3, …, n-2)が、(ki, si)を上記鍵配送装置Sへ送信し、上記通信装置Un-1が、擬似ランダム関数により(sid, gr)を用いてKn-1 lを生成し、擬似ランダム関数により(sid, Rn r)を用いてKn-1 rを生成し、Kn-1 lとKn-1 rとの排他的論理和によりTn-1を計算し、(kn-1, sn-1, Tn-1)を上記鍵配送装置Sへ送信し、上記通信装置Unが、擬似ランダム関数により(sid, Rn r)を用いてKn lを生成し、擬似ランダム関数により(sid, Rn+1 r_n)を用いてKn rを生成し、Kn lとKn rとの排他的論理和によりTnを計算し、(kn, sn, Tn)を上記鍵配送装置Sへ送信し、上記通信装置Ui(i=n+1, …, n+k)が、擬似ランダム関数により(sid, Ri-1 r_i)を用いてKi lを生成し、擬似ランダム関数により(sid, Ri+1 r_i)を用いてKi rを生成し、Ki lとKi rとの排他的論理和によりTiを計算し、(ki, si, Ti)を上記鍵配送装置Sへ送信する第二鍵生成ステップと、上記鍵配送装置Sが、ねじれ擬似ランダム関数により上記秘密ストリングstS, st'Sを用いてksを生成し、k2, …, kn+k, ksの排他的論理和によりk'を計算し、i=2, …, n+kについてT1, …, Ti-1(ただし、i=3, …, n-1についてTiを空とする)の排他的論理和によりT'iを計算し、k'を上記代表通信装置U1へ送信し、(k', T'i, T')を上記通信装置Ui(i=2, …, n+k)へ送信する第三鍵生成ステップと、上記通信装置Ui(i=2, n, …, n+k)が、T'iとKi lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算し、上記通信装置Ui(i=3, …, n-1)が、T'iとgrとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算する第一セッション鍵生成ステップと、上記通信装置Ui(i=1, …, n+k)が、擬似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成する第二セッション鍵生成ステップとを含む。
この発明によれば、共通鍵を共有するメンバの変更を許しながら複数のユーザが共通鍵を共有することができる。鍵交換に必要な計算量が、ユーザ数の定数回、すなわちO(1)となり、従来よりも削減されている。
鍵交換システムの機能構成を例示する図。 鍵配送装置及び通信装置の機能構成を例示する図。 鍵交換方法の処理フローを例示する図(システムセットアップ)。 鍵交換方法の処理フローを例示する図(セッション鍵配送)。 鍵交換方法の処理フローを例示する図(ユーザ追加)。
実施形態の説明に先立って、この明細書における表記方法等について説明する。
<表記方法>
_(アンダースコア)は下付き添字を表す。例えば、xy_zはyzがxに対する上付き添字であり、xy_zはyzがxに対する下付き添字であることを表す。
ある集合Setについて、Setから要素mをランダムに選ぶことを、m∈RSetと表記する。
あるアルゴリズムALGについて、入力xと乱数rに対してALGがyを出力することを、y←ALG(x;r)と表記する。なお、ALGが確定的アルゴリズムの場合は、乱数rは空である。
|・|は値・のビット長とする。
<定義>
кをセキュリティパラメータとする。
F={Fк: Domк×FSк→Rngк}кを定義域{Domк}к、鍵空間{FSк}к、値域{Rngк}кを持つ関数族とする。このとき、もし任意の多項式時間の識別者Dに対して、関数Fкと真正ランダム関数RFк: Domк→Rngкが見分けられなければ、F={Fк}кを擬似ランダム関数族と呼ぶ。擬似ランダム関数の具体例は、例えば、下記参考文献1に記載されている。
〔参考文献1〕O.ゴールドライヒ著、「現代暗号・確率的証明・擬似乱数」、シュプリンガー・フェアラーク東京、2001年
H={Hк: Domк→Rngк}кを定義域{Domк}к、値域{Rngк}кを持つハッシュ関数族とする。このとき、もし任意の多項式時間の攻撃者Aに対して、x∈RDomкを与えた上でHк(x)=Hк(x')となるようなx'(≠x)を見つけられなければ、H={Hк}кをターゲット衝突困難ハッシュ関数族と呼ぶ。ターゲット衝突困難ハッシュ関数の具体例は、例えば、下記参考文献2に記載されている。
〔参考文献2〕J.A.ブーフマン著、「暗号理論入門 原書第3版」、丸善出版、2007年
メッセージ認証コードアルゴリズムを(MGen, Tag, Ver)とする。MAC鍵生成アルゴリズムMGenはセキュリティパラメータкを入力とし、MAC鍵mkを出力する。タグ生成アルゴリズムTagはMAC鍵mkと平文mを入力とし、認証タグσを出力する。検証アルゴリズムVerはMAC鍵mkと平文mと認証タグσを入力とし、認証タグσが正しければ1を、正しくなければ0を出力する。メッセージ認証コードアルゴリズムの具体例は、例えば、上記参考文献2に記載されている。
関数暗号アルゴリズムを(Setup, Der, FEnc, FDec)とする。セットアップアルゴリズムSetupはセキュリティパラメータкを入力とし、マスタ秘密鍵mskと公開パラメータParamsを出力する。鍵導出アルゴリズムDerは公開パラメータParamsとマスタ秘密鍵mskと属性Aを入力とし、ユーザ秘密鍵uskを出力する。暗号化アルゴリズムFEncは公開パラメータParamsとアクセス構造Pと平文mを入力とし、暗号文CTを出力する。復号アルゴリズムFDecはユーザ秘密鍵uskと暗号文CTを入力とし、属性Aがアクセス構造Pを満たすならば平文mを出力する。関数暗号アルゴリズムの具体例は、例えば、下記参考文献3に記載されている。
〔参考文献3〕D. Boneh, A. Sahai, and B. Waters, “Functional encryption: definitions and challenges”, TCC, Lecture Notes in Computer Science, vol. 6597, pp. 253-273, 2011.
IDベース暗号アルゴリズムを(IBE-Setup, IBE-Der, IBE-Enc, IBE-Dec)とする。セットアップアルゴリズムIBE-Setup はセキュリティパラメータкを入力とし、マスタ秘密鍵mskと公開パラメータParamsを出力する。鍵導出アルゴリズムIBE-Der は公開パラメータParams、マスタ秘密鍵mskとID∈{0, 1}*を入力とし、ユーザ秘密鍵uskを出力する。暗号化アルゴリズムIBE-Encは公開パラメータParams、ID∈{0, 1}*と平文mを入力とし、暗号文CTを出力する。復号アルゴリズムIBE-Decは公開パラメータParams、ユーザ秘密鍵uskと暗号文CTを入力とし、平文mを出力する。IDベース暗号アルゴリズムの具体例は、例えば、参考文献4の8章“Boneh-Franklin IBE”、9章“Boneh-Boyen IBE”に記載されている。
〔参考文献4〕 Luther Martin, “Introduction to Identity-Based Encryption”, 1st Edition, Artech House, January 2008.
関数tPRF: {0, 1}к×FSк×{0, 1}к×FSк→Rngкをねじれ擬似ランダム関数と呼び、擬似ランダム関数Fкを用いて、
Figure 0006468567
と定義する。ただし、a, b'∈{0, 1}кであり、a', b∈FSкである。ねじれ擬似ランダム関数の具体例は、例えば、下記参考文献5に記載されている。
〔参考文献5〕Kazuki Yoneyama, “One-Round Authenticated Key Exchange with Strong Forward Secrecy in the Standard Model against Constrained Adversary”, IEICE Transactions, vol. E96-A, no. 6, pp. 1124-1138, 2013.
以下、この発明の実施の形態について詳細に説明する。なお、図面中において同じ機能を有する構成部には同じ番号を付し、重複説明を省略する。
<システム構成>
実施形態の鍵交換システムは、図1に例示するように、鍵配送装置1およびN(≧2)台の通信装置21, …, 2Nを含む。この実施形態では、鍵配送装置1および通信装置21, …, 2Nはそれぞれ通信網3へ接続される。通信網3は、鍵配送装置1が通信装置21, …, 2Nそれぞれと通信可能なように構成された回線交換方式もしくはパケット交換方式の通信網である。この実施形態では、通信装置21, …, 2N同士は通信できなくともよい。通信網3は安全が確保された通信路である必要はなく、例えばインターネットなどを用いることができる。
鍵配送装置1は、図2(A)に例示するように、記憶部100、第一セットアップ部101、第二セットアップ部102、ユーザID受信部103、初期鍵生成部104、秘密ストリング生成部105、ユーザ鍵送信部111、セッションID生成部113、認証タグ検証部114、第三鍵生成部115、および認証タグ生成部116を含む。通信装置2は、図2(B)に例示するように、記憶部200、ユーザID送信部203、初期鍵受信部204、秘密ストリング生成部205、ユーザ鍵受信部211、第一鍵生成部212、第二鍵生成部214、認証タグ生成部215、認証タグ検証部216、およびセッション鍵生成部217を含む。この鍵配送装置1および通信装置21, …, 2Nが、図3および図4に例示する各ステップの処理を行うことにより実施形態の鍵交換方法が実現される。
鍵配送装置1および通信装置21, …, 2Nは、例えば、中央演算処理装置(CPU: Central Processing Unit)、主記憶装置(RAM: Random Access Memory)などを有する公知又は専用のコンピュータに特別なプログラムが読み込まれて構成された特別な装置である。各装置は、例えば、中央演算処理装置の制御のもとで各処理を実行する。各装置に入力されたデータや各処理で得られたデータは、例えば、主記憶装置に格納され、主記憶装置に格納されたデータは必要に応じて中央演算処理装置へ読み出されて他の処理に利用される。各装置が備える各処理部は、少なくとも一部が集積回路等のハードウェアによって構成されていてもよい。
鍵配送装置1が備える記憶部100および通信装置21, …, 2Nが備える記憶部200は、例えば、RAM(Random Access Memory)などの主記憶装置、ハードディスクや光ディスクもしくはフラッシュメモリ(Flash Memory)のような半導体メモリ素子により構成される補助記憶装置、またはリレーショナルデータベースやキーバリューストアなどのミドルウェアにより構成することができる。各記憶部は秘密情報を記憶するため、耐タンパ性を有する記憶装置(例えば、SIMカードなど)であることが望ましい。
<システムセットアップ>
図3を参照して、実施形態の鍵交換方法におけるシステムセットアップの処理手続きを説明する。
以降の説明では、以下のように記号を定義する。Sは鍵配送装置1を示し、Ui(i∈{1, …, N})はN台の通信装置21, …, 2Nを示すものとする。Gをкビットの素数位数pの乗法巡回群とする。g, hをそれぞれ群Gの生成元とする。H: {0, 1}*→{0, 1}кをターゲット衝突困難ハッシュ関数とする。tPRF: {0, 1}к×FSк×{0, 1}к×FSк→Zp、tPRF': {0, 1}к×FSк×{0, 1}к×FSк→FSкをねじれ擬似ランダム関数とする。F: {0, 1}к×G→Zp 2、F': {0, 1}к×Zp→FSк、F": {0, 1}к×FSк→{0, 1}к、F''': {0, 1}к×FSк→Zpを擬似ランダム関数とする。
なお、S, Uiを各アルゴリズムの入力とする場合、各装置を一意に特定する識別子を表すものとする。
ステップS101において、鍵配送装置Sの第一セットアップ部101は、関数暗号のセットアップアルゴリズムSetupにより公開パラメータParamsおよびマスタ秘密鍵mskを生成する。第一セットアップ部101は、公開パラメータParamsを通信装置U1, …, UNそれぞれへ送信する。公開パラメータParamsおよびマスタ秘密鍵mskは記憶部100へ記憶される。また、通信装置Uiは、鍵配送装置Sから受信した公開パラメータParamsを記憶部200へ記憶する。
ステップS102において、鍵配送装置Sの第二セットアップ部102は、IDベース暗号のセットアップアルゴリズムIBE-Setupにより、鍵配送装置Sの公開パラメータParams'およびマスタ秘密鍵msk'を生成する。公開パラメータParams'およびマスタ秘密鍵msk'は記憶部100へ記憶される。
ステップS203において、通信装置UiのユーザID送信部203は、鍵配送装置SへユーザIDを登録するため、Uiを送信する。ユーザIDは、ユーザを識別することができる任意の文字列であればよいので、例えば、メールアドレスを用いることができる。
ステップS103において、鍵配送装置SのユーザID受信部103は、ユーザIDであるUiを受信する。ステップS104において、鍵配送装置Sの初期鍵生成部104は、IDベース暗号の鍵導出アルゴリズムIBE-Derにより、通信装置Uiの初期鍵skU_i←IBE-Der(Params’, msk’, Ui)を生成し、通信装置Uiに送信する。
ステップS204において、通信装置Uiの初期鍵受信部204は、通信装置Uiの初期鍵skU_iを受信する。通信装置Uiは、初期鍵skU_iを記憶部200へ記憶する。
ステップS105において、鍵配送装置Sの秘密ストリング生成部105は、ねじれ擬似ランダム関数で用いる秘密ストリング(stS, st'S)をstSRFSк、st'S∈{0, 1}кとして生成する。秘密ストリング(stS, st'S)は記憶部100へ記憶される。
ステップS205において、通信装置Uiの秘密ストリング生成部205は、ねじれ擬似ランダム関数で用いる秘密ストリング(sti, st'i)をstiRFSк、st'i∈{0, 1}кとして生成する。秘密ストリング(sti, st'i)は記憶部200へ記憶される。
<セッション鍵配送>
図4を参照して、実施形態の鍵交換方法におけるセッション鍵配送の処理手続きを説明する。
以下では、N台の通信装置21, …, 2Nのうち任意のn(≦N)台の通信装置Ui(i∈{1, …, n})が共通鍵であるセッション鍵SKの共有を行うものとする。
ステップS111において、鍵配送装置Sのユーザ鍵送信部111は、通信装置Uiがセッションを開始したときに、そのセッションが通信装置UiのタイムフレームTFにおける最初のセッションだった場合、現在時刻をtimeとし、属性をAi=(Ui, time)として、関数暗号の鍵導出アルゴリズムDerにより、通信装置Uiのユーザ秘密鍵uski←Der(Params, msk, Ai)を生成する。また、メッセージ認証コードの鍵生成アルゴリズムMGenにより、通信装置UiのMAC鍵mki←MGenを生成する。そして、IDベース暗号の暗号化アルゴリズムIBE-Encにより、ユーザ秘密鍵uskiおよびMAC鍵mkiを暗号化し、暗号文CTi←IBE-Enc(Params', Ui, (uski, mki))を生成する。ユーザ鍵送信部111は、暗号文CTiを通信装置Uiへそれぞれ送信する。
ステップS211において、通信装置Uiのユーザ鍵受信部211は、IDベース暗号の復号アルゴリズムIBE-Decにより、通信装置Uiの初期鍵skU_iを用いて鍵配送装置Sから受信した暗号文CTiを復号し、ユーザ秘密鍵およびMAC鍵(uski, mki)←IBE-Decsk_Ui(CTi, Params')を得る。ユーザ鍵受信部211は、ユーザ秘密鍵uskiおよびMAC鍵mkiを記憶部200へ記憶する。
ステップS212において、通信装置Uiの第一鍵生成部212は、~riR{0, 1}к, ~r'iRFSк, ~kiR{0, 1}к, ~k'iRFSк, ~siR{0, 1}к, ~s'iRFSкを生成し、ねじれ擬似ランダム関数tPRFにより、ri=tPRF(~ri, ~r'i, sti, st'i), ki=tPRF(~ki, ~k'i, sti, st'i), si=tPRF(~si, ~s'i, sti, st'i)を計算する。また、Ri=gr_i, ci=gk_ihs_iを計算する。そして、第一鍵生成部212は、(Ri, ci)を鍵配送装置Sへ送信する。
ステップS112において、鍵配送装置Sは、通信装置Uiから(Ri, ci)を受信する。このとき、すべての通信装置U1, …, Unから(R1, c1), …, (Rn, cn)を受信するまで待機する。
ステップS113において、鍵配送装置SのセッションID生成部113は、ターゲット衝突困難ハッシュ関数Hにより、通信装置U1, …, Unから受信したc1, …, cnを用いて、sid=H(c1, …, cn)を生成する。また、n台の通信装置U1, …, Unから1台の通信装置を代表者として選択する。代表者の選択方法は任意であり、例えば、予め定めておいた優先順位が最も高い通信装置を選択してもよいし、直近でセッションを開始した通信装置を選択してもよい。ここでは、通信装置U1が選択されたものとし、U1を代表通信装置と呼ぶ。また、代表通信装置U1以外のn-1台の通信装置Uj(j∈{2, …, n})を一般通信装置と呼ぶ。セッションID生成部113は、次式のようにα, βを計算し、(sid, Rα, Rβ)を通信装置Uiへそれぞれ送信する。また、鍵配送装置Sは、U1には代表通信装置であることを通知しておく。
Figure 0006468567
ステップS213において、通信装置Uiは、鍵配送装置Sから(sid, Rα, Rβ)をそれぞれ受信する。通信装置Uiは、(sid, Rα, Rβ)を受け取り次第、以降の処理を実行する。i=2, …, nの場合、すなわち通信装置Uiが通信装置Uj(i=j)であれば、ステップS214jへ処理を進める。i=1の場合、すなわち通信装置Uiが代表通信装置U1であれば、ステップS2141へ処理を進める。
ステップS214jにおいて、一般通信装置Ujの第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, Rα r_j)を用いてKj lを生成し、擬似ランダム関数Fにより(sid, Rβ r_j)を用いてKj rを生成し、Kj lとKj rとの排他的論理和によりTjを計算する。
Figure 0006468567
ステップS215jにおいて、一般通信装置Ujの認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mkjを用いて、認証タグσj=Tagmk_j(Rj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid)を生成する。認証タグ生成部215は、(kj, sj, Tj, σj)を鍵配送装置Sへ送信する。
ステップS2141において、代表通信装置U1の第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, Rn r_1)を用いてK1 lを生成し、擬似ランダム関数Fにより(sid, R2 r_1)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算する。ただし、||は連結演算子である。
Figure 0006468567
ステップS2151において、代表通信装置U1の認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mk1を用いて、認証タグσ1=Tagmk_1(R1, c1, Rn, R2, T1, T', U1, sid)を生成する。認証タグ生成部215は、(T1, T', σ1)を鍵配送装置Sへ送信する。
ステップS114jにおいて、鍵配送装置Sの認証タグ検証部114は、j=2, …, nについて、一般通信装置Ujから(kj, sj, Tj, σj)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、一般通信装置UjのMAC鍵mkjを用いて、Vermk_j(Rj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid, σj)を検証する。認証タグσjが正当でなければ一般通信装置Ujのセッションを終了する。また、j=2, …, nについて、cj=gk_jhs_jが成り立つか否かを検証する。成り立たなければ一般通信装置Ujのセッションを終了する。
ステップS1141において、鍵配送装置Sの認証タグ検証部114は、代表通信装置U1から(T1, T', σ1)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、代表通信装置U1のMAC鍵mk1を用いて、Vermk_1(R1, c1, Rn, R2, T1, T', U1, sid, σ1)を検証する。認証タグσ1が正当でなければ代表通信装置U1のセッションを終了する。
ステップS115aにおいて、鍵配送装置Sの第三鍵生成部115は、~kSR{0, 1}к, ~k'SRFSк, ~K1R{0, 1}к, ~K'1RFSкを生成し、ねじれ擬似ランダム関数tPRFにより、kS=tPRF(~kS, ~k'S, stS, st'S), K1=tPRF' (~K1, ~K'1, stS, st'S)を計算する。また、次式により、k'を計算する。
Figure 0006468567
ステップS115bにおいて、鍵配送装置Sの第三鍵生成部115は、j=2, …, nについて、次式により、T'jを計算する。
Figure 0006468567
ステップS115cにおいて、鍵配送装置Sの第三鍵生成部115は、i=1, …, nについて、アクセス構造Pi=(ID=Ui)∧(time∈TF)として、関数暗号の暗号化アルゴリズムFEncにより共通鍵K1を暗号化して、暗号文CT'i=FEnc(Params, Pi, K1)を生成する。ここで、IDは通信装置を表す述語変数であり、TFは通信装置のタイムフレームを表す述語変数である。
ステップS116jにおいて、鍵配送装置Sの認証タグ生成部116は、j=2, …, nについて、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置UjのMAC鍵mkjを用いて認証タグσ'j=Tagmk_j(Rj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid, c1, k', T'j, T', CT'j)を生成する。認証タグ生成部116は、(c1, k', T'j, T', CT'j, σ'j)を一般通信装置Ujへ送信する。
ステップS1161において、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、代表通信装置U1のMAC鍵mk1を用いて、認証タグσ'1=Tagmk_1(R1, c1, Rn, R2, T1, T', U1, sid, k', CT'1)を生成する。認証タグ生成部116は、(k', CT'1, σ'1)を代表通信装置U1へ送信する。
ステップS216jにおいて、一般通信装置Ujの認証タグ検証部216は、鍵配送装置Sから(c1, k', T'j, T', CT'j, σ'j)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、一般通信装置UjのMAC鍵mkjを用いて、Vermk_j(Rj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid, c1, k', T'j, T', CT'j, σ'j)を検証する。認証タグσ'jが正当でなければ一般通信装置Ujのセッションを終了する。また、次式のように、T'jとKj lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算する。
Figure 0006468567
そして、c1=gk_1hs_1が成り立つか否かを検証する。成り立たなければ一般通信装置Ujのセッションを終了する。
ステップS2161において、代表通信装置U1の認証タグ検証部216は、鍵配送装置Sから(k', CT'1, σ'1)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、代表通信装置U1のMAC鍵mk1を用いて、Vermk_1(R1, c1, Rn, R2, T1, T', U1, sid, k', CT'1, σ'1)を検証する。認証タグσ'1が正当でなければ代表通信装置U1のセッションを終了する。
ステップS217において、通信装置Uiのセッション鍵生成部217は、関数暗号の復号アルゴリズムFDecにより、通信装置Uiのユーザ秘密鍵uskiを用いて、共通鍵K1←FDecusk_i(CT'i, Pi)を復号する。また、次式のように、擬似ランダム関数F'により共通鍵K2を計算する。
Figure 0006468567
そして、次式のように、擬似ランダム関数F"によりセッション鍵SKを計算する。
Figure 0006468567
上記のように構成することにより、この発明の鍵交換技術によれば、鍵交換を行う可能性があるユーザの情報としてユーザIDのみを登録しておけば、複数のユーザが共通鍵を共有することができる。特に、鍵配送装置Sに対してユーザID以外のいかなる情報も漏らさずに複数のユーザが共通鍵K2とセッション鍵SKを共有することができる。また、従来は鍵交換に必要な全体の計算量がユーザ数をnとしてO(log n)となるが、この発明によればユーザ数の定数回、すなわちO(1)となるため、従来よりも少ない計算量で鍵交換ができる。
また、IDベース暗号を用いることにより、既存のIDを使って鍵を発行することができるため、一般の公開鍵暗号の場合に必要となる公開鍵データベースを用意する必要がなくなり、運用するコストが下がるという効果がある。
以下では、セッション鍵を共有した複数のユーザに新たなユーザを追加する時の鍵交換方法の処理手続きについて説明する。通信装置Ui(i∈{1, …, n})でセッション鍵SKの共有が済んでいるものとする。鍵交換処理終了時(S217の後)に、ユーザ追加のために用いる秘密情報を各通信装置Uiは記憶部200に記憶する。代表通信装置U1は、次式で計算される秘密情報H1 l、H1 r、rを記憶部200に記憶する。
Figure 0006468567
一般通信装置Uj(j∈{2, …, n})は、次式で計算される秘密情報Hj l、Hj r、rを記憶部200に記憶する。
Figure 0006468567
<ユーザ追加>
図5を参照して、実施形態の鍵交換方法におけるユーザ追加の処理手続きを説明する。
通信装置U1, …, Unにより確立されたセッションに通信装置Un+1, …, Un+kが新たに参加するものとする(kは1以上の整数、n+kはN以下の整数)。以下、i∈{1, …, n+k}とする。
ステップS311において、鍵配送装置Sのユーザ鍵送信部111は、通信装置Ui(i=1, …, n+k)がセッションを開始したときに、そのセッションが通信装置UiのタイムフレームTF'における最初のセッションだった場合、現在時刻をtimeとし、属性をAi=(Ui, time)として、関数暗号の鍵導出アルゴリズムDerにより、通信装置Uiのユーザ秘密鍵uski←Der(Params, msk, Ai)を生成する。また、メッセージ認証コードの鍵生成アルゴリズムMGenにより、通信装置UiのMAC鍵mki←MGenを生成する。そして、IDベース暗号の暗号化アルゴリズムIBE-Encにより、ユーザ秘密鍵uskiおよびMAC鍵mkiを暗号化し、暗号文CTi←IBE-Enc (Params', Ui, (uski, mki))を生成する。ユーザ鍵送信部111は、暗号文CTiを通信装置Uiへそれぞれ送信する。
ステップS411において、通信装置Uiのユーザ鍵受信部211は、IDベース暗号の復号アルゴリズムIBE-Decにより、通信装置Uiの初期鍵skU_iを用いて鍵配送装置Sから受信した暗号文CTiを復号し、ユーザ秘密鍵およびMAC鍵(uski, mki)←IBE-Decsk_Ui(CTi, Params')を得る。ユーザ鍵受信部211は、ユーザ秘密鍵uskiおよびMAC鍵mkiを記憶部200へ記憶する。
ステップS412において、i∈{1}∪[n, n+k]の場合、通信装置Uiの第一鍵生成部212は、~riR{0, 1}к, ~r'iRFSк, ~kiR{0, 1}к, ~k'iRFSк, ~siR{0, 1}к, ~s'iRFSкを生成し、ねじれ擬似ランダム関数tPRFにより、ri=tPRF(~ri, ~r'i, sti, st'i), ki=tPRF(~ki, ~k'i, sti, st'i), si=tPRF(~si, ~s'i, sti, st'i)を計算する。また、Ri=gr_i, ci=gk_ihs_iを計算する。そして、第一鍵生成部212は、(Ri, ci)を鍵配送装置Sへ送信する。
i∈[2, n-1]の場合、通信装置Uiの第一鍵生成部212は、~kiR{0, 1}к, ~k'iRFSк, ~siR{0, 1}к, ~s'iRFSкを生成し、ねじれ擬似ランダム関数tPRFにより、ki=tPRF(~ki, ~k'i, sti, st'i), si=tPRF(~si, ~s'i, sti, st'i)を計算する。また、ci=gk_ihs_iを計算する。そして、第一鍵生成部212は、ciを鍵配送装置Sへ送信する。
ステップS312において、鍵配送装置Sは、通信装置Uiから(Ri, ci)またはciを受信する。このとき、すべての通信装置U1, …, Un+kから(R1, c1), c2,…, cn-1, (Rn, cn) ,…, (Rn+k, cn+k)を受信するまで待機する。
ステップS313において、鍵配送装置SのセッションID生成部113は、ターゲット衝突困難ハッシュ関数Hにより、通信装置U1, …, Un+kから受信したc1, …, cn+kを用いて、sid=H(c1, …, cn+k)を生成する。また、k+2台の通信装置U1, Un , Un+1 ,…, Un+kから1台の通信装置を代表者として選択する。ここでは、通信装置U1が選択されたものとし、U1を代表通信装置と呼ぶ。また、代表通信装置U1以外のn+k-1台の通信装置Ui(i∈{2, …, n+k})を一般通信装置と呼ぶ。セッションID生成部113は、i∈[n+1, n+k]の場合、(sid, Ri-1, Ri+1)を通信装置Uiへそれぞれ送信する(ただし、Rn+k+1=R1とする)。また、i∈[1, 2]の場合、(sid, Ri-1)を通信装置Uiへそれぞれ送信する(ただし、R0=Rn+kとする)。i∈[3, n-2]の場合、sidを通信装置Uiへそれぞれ送信する。i∈[n-1, n]の場合、(sid, Ri+1)を通信装置Uiへそれぞれ送信する。また、鍵配送装置Sは、U1には代表通信装置であることを通知しておく。
ステップS413において、通信装置Uiは、鍵配送装置Sから(sid, Ri-1, Ri+1)、(sid, Ri-1)、sid、(sid, Ri+1)のいずれかをそれぞれ受信する。具体的には、i∈[n+1, n+k]の場合、通信装置Uiは、(sid, Ri-1, Ri+1)を受信する(ただし、Rn+k+1=R1とする)。i∈[1, 2]の場合、通信装置Uiは、(sid, Ri-1)を受信する(ただし、R0=Rn+kとする)。i∈[3, n-2]の場合、通信装置Uiは、sidを受信する。i∈[n-1, n]の場合、通信装置Uiは、(sid, Ri+1)を受信する。
通信装置Uiは、(sid, Ri-1, Ri+1)、(sid, Ri-1)、sid、(sid, Ri+1)のいずれかを受け取り次第、ステップS414とステップS415の処理を実行する。この処理は、i=1の場合、i=2の場合、i∈[3, n-2]の場合、i=n-1の場合、i=nの場合、i∈[n+1, n+k]の場合の6つに場合分けして実行される。ただし、i∈[3, n-2]の場合、ステップS414ではなにも処理しない。つまり、通信装置Uiは、sidを受け取り次第、ステップS415の処理を実行する。
i=1の場合、ステップS414において、代表通信装置U1の第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, Rn+k r_1)を用いてK1 lを生成し、擬似ランダム関数Fにより(sid, gr_1r)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算する。ただし、||は連結演算子である。
Figure 0006468567
ステップS415において、代表通信装置U1の認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mk1を用いて、認証タグσ1=Tagmk_1(R1, c1, Rn+k, T1, T', U1, sid)を生成する。認証タグ生成部215は、(T1, T', σ1)を鍵配送装置Sへ送信する。
i=2の場合、ステップS414において、通信装置U2の第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, R1 r)を用いてK2 lを生成し、擬似ランダム関数Fにより(sid, gr)を用いてK2 rを生成し、K2 lとK2 rとの排他的論理和によりT2を計算する。
Figure 0006468567
ステップS415において、通信装置U2の認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mk2を用いて、認証タグσ2=Tagmk_2(c2, R1, k2, s2, T2, U2, sid)を生成する。認証タグ生成部215は、(k2, s2, T2, σ2)を鍵配送装置Sへ送信する。
i∈[3, n-2]の場合、ステップS415において、通信装置Uiの認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mkiを用いて、認証タグσi=Tagmk_i(ci, ki, si, Ui, sid)を生成する。認証タグ生成部215は、(ki, si, σi)を鍵配送装置Sへ送信する。
i=n-1の場合、ステップS414において、通信装置Un-1の第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, gr)を用いてKn-1 lを生成し、擬似ランダム関数Fにより(sid, Rn r)を用いてKn-1 rを生成し、Kn-1 lとKn-1 rとの排他的論理和によりTn-1を計算する。
Figure 0006468567
ステップS415において、通信装置Un-1の認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mkn-1を用いて、認証タグσn-1=Tagmk_n-1(cn-1, Rn, kn-1, sn-1, Tn-1, Un-1, sid)を生成する。認証タグ生成部215は、(kn-1, sn-1, Tn-1, σn-1)を鍵配送装置Sへ送信する。
i=nの場合、ステップS414において、通信装置Unの第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, Rn r)を用いてKn lを生成し、擬似ランダム関数Fにより(sid, Rn+1 r_n)を用いてKn rを生成し、Kn lとKn rとの排他的論理和によりTnを計算する。
Figure 0006468567
ステップS415において、通信装置Unの認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mknを用いて、認証タグσn=Tagmk_n(Rn, cn, Rn+1, kn, sn, Tn, Un, sid)を生成する。認証タグ生成部215は、(kn, sn, Tn, σn)を鍵配送装置Sへ送信する。
i∈[n+1, n+k]の場合、ステップS414において、通信装置Uiの第二鍵生成部214は、次式のように、擬似ランダム関数Fにより(sid, Ri-1 r_i)を用いてKi lを生成し、擬似ランダム関数Fにより(sid, Ri+1 r_i)を用いてKi rを生成し、Ki lとKi rとの排他的論理和によりTiを計算する。
Figure 0006468567
ステップS415において、通信装置Uiの認証タグ生成部215は、メッセージ認証コードのタグ生成アルゴリズムTagにより、MAC鍵mkiを用いて、認証タグσi=Tagmk_i(Ri, ci, Ri-1, Ri+1, ki, si, Ti, Ui, sid)を生成する。認証タグ生成部215は、(ki, si, Ti, σi)を鍵配送装置Sへ送信する。
ステップS314において、鍵配送装置Sの認証タグ検証部114は、代表通信装置U1から(T1, T', σ1)を受信し、i=2, n-1, …, n+kについて、一般通信装置Uiから(ki, si, Ti, σi)を受信し、i=3, …, n-2について、一般通信装置Uiから(ki, si, σi)を受信し、メッセージ認証コードの検証アルゴリズムVerにより検証する。認証タグσi (i=1, …, n+k) が正当でなければ通信装置Uiのセッションを終了する。また、i=2, …, n+kについて、ci=gk_ihs_iが成り立つか否かを検証する。成り立たなければ一般通信装置Uiのセッションを終了する。
ステップS315aにおいて、鍵配送装置Sの第三鍵生成部115は、~kSR{0, 1}к, ~k'SRFSкを生成し、ねじれ擬似ランダム関数tPRFにより、kS=tPRF(~kS, ~k'S, stS, st'S)を計算する。また、次式により、k'を計算する。
Figure 0006468567
ステップS315bにおいて、鍵配送装置Sの第三鍵生成部115は、i=2, …, n+kについて、次式により、T'iを計算する。
Figure 0006468567
ただし、i=3, …, n-1について、Tiを空とする。したがって、T3'=…=Tn-1'=0となる。
ステップS315cにおいて、鍵配送装置Sの第三鍵生成部115は、i=1, …, n+kについて、アクセス構造Pi=(ID=Ui)∧(time∈TF)として、関数暗号の暗号化アルゴリズムFEncにより共通鍵K1を暗号化して、暗号文CT'i=FEnc(Params, Pi, K1)を生成する。ここで、IDは通信装置を表す述語変数であり、TFは通信装置のタイムフレームを表す述語変数である。また、共通鍵K1はステップS115cで生成したものである。
ステップS316において、鍵配送装置Sは認証タグを生成し、通信装置Uiに送信する。この処理は、i=1の場合、i=2の場合、i∈[3, n-2]の場合、i=n-1の場合、i=nの場合、i∈[n+1, n+k]の場合の6つに場合分けして実行される。
i=1の場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、代表通信装置U1のMAC鍵mk1を用いて、認証タグσ'1=Tagmk_1(R1, c1, Rn+k, T1, T', U1, sid, k', CT'1)を生成する。認証タグ生成部116は、(k', CT'1, σ'1)を代表通信装置U1へ送信する。
i=2の場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置U2のMAC鍵mk2を用いて認証タグσ'2=Tagmk_2(c2, R1, k2, s2, T2, U2, sid, c1, k', T'2, T', CT'2)を生成する。認証タグ生成部116は、(c1, k', T'2, T', CT'2, σ'2)を一般通信装置U2へ送信する。
i∈[3, n-2]の場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置UiのMAC鍵mkiを用いて認証タグσ'i= Tagmk_i(ci, ki, si, Ui, sid, c1, k', T'i, T', CT'i)を生成する。認証タグ生成部116は、(c1, k', T'i, T', CT'i, σ'i)を一般通信装置Uiへ送信する。
i=n-1の場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置Un-1のMAC鍵mkn-1を用いて認証タグσ'n-1= Tagmk_n-1(cn-1, Rn, kn-1, sn-1, Tn-1, Un-1, sid, c1, k', T'n-1, T', CT'n-1)を生成する。認証タグ生成部116は、(c1, k', T'n-1, T', CT'n-1, σ'n-1)を一般通信装置Un-1へ送信する。
i=nの場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置UnのMAC鍵mknを用いて認証タグσ'n=Tagmk_n(Rn, cn, Rn+1, kn, sn, Tn, Un, sid, c1, k', T'n, T', CT'n)を生成する。認証タグ生成部116は、(c1, k', T'n, T', CT'n, σ'n)を一般通信装置Unへ送信する。
i∈[n+1, n+k]の場合、鍵配送装置Sの認証タグ生成部116は、メッセージ認証コードのタグ生成アルゴリズムTagにより、一般通信装置UiのMAC鍵mkiを用いて認証タグσ'i= Tagmk_i(Ri, ci, Ri-1, Ri+1, ki, si, Ti, Ui, sid, c1, k', T'i, T', CT'i)を生成する。認証タグ生成部116は、(c1, k', T'i, T', CT'i, σ'i)を一般通信装置Uiへ送信する。
ステップS416において、i∈[2, n+k]の場合、一般通信装置Uiの認証タグ検証部216は、鍵配送装置Sから(c1, k', T'i, T', CT'i, σ'i)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、検証する。認証タグσ'iが正当でなければ一般通信装置Uiのセッションを終了する。また、i=2, n, …, n+kについては、T'iとKi lとの排他的論理和によりK1 lを計算し、i=3, …, n-1については、T'iとgrとの排他的論理和によりK1 lを計算する。
Figure 0006468567
さらに、T'とK1 lとの排他的論理和によりk1||s1を計算する。
Figure 0006468567
そして、c1=gk_1hs_1が成り立つか否かを検証する。成り立たなければ一般通信装置Uiのセッションを終了する。
i=1の場合、代表通信装置U1の認証タグ検証部216は、鍵配送装置Sから(k', CT'1, σ'1)を受信し、メッセージ認証コードの検証アルゴリズムVerにより、検証する。認証タグσ'1が正当でなければ代表通信装置U1のセッションを終了する。
ステップS417において、通信装置Uiのセッション鍵生成部217は、関数暗号の復号アルゴリズムFDecにより、通信装置Uiのユーザ秘密鍵uskiを用いて、共通鍵K1←FDecusk_i(CT'i, Pi)を復号する。また、次式のように、擬似ランダム関数F'により共通鍵K2を計算する。
Figure 0006468567
そして、次式のように、擬似ランダム関数F"によりセッション鍵SKを計算する。
Figure 0006468567
最後に、ユーザ追加のために用いる秘密情報を通信装置Ui(i=1, …, n)は更新する。また、通信装置Ui(i=n+1, …, n+k) は新たに記憶部200に記憶する。代表通信装置U1は、次式で計算される秘密情報H1 l、rで記憶部200に記憶しているものを更新する。
Figure 0006468567
通信装置Ui(i=2, …, n-1)は、次式で計算される秘密情報rで記憶部200に記憶しているものを更新する。
Figure 0006468567
通信装置Unは、次式で計算される秘密情報Hn r、rで記憶部200に記憶しているものを更新する。
Figure 0006468567
通信装置Ui(i=n+1, …, n+k) は、次式で計算される秘密情報Hi l、Hi r、rを記憶部200に記憶する。
Figure 0006468567
上記のように構成することにより、この発明の鍵交換技術によれば、鍵交換を行う可能性があるユーザの情報としてユーザIDのみを登録しておけば、その範囲で動的にユーザを追加することができる。また、ユーザ追加時にも効率的に複数のユーザが共通鍵を共有することができる。具体的には、鍵交換に必要な全体の計算量はユーザ数の定数回、すなわちO(1)となる。
<応用例>
本実施形態の鍵交換システムは、鍵配送サーバSを介して通信装置Ui間でセッション鍵SKを共有するものである。その際、通信装置Uiを識別するためのユーザID(例えば、メールアドレス)を鍵配送サーバSに登録しておく必要はあるが、スタートポロジーを用いてO(1)でセッション鍵SKを共有することができるため、各種暗号通信システムの動作開始までの時間を短縮することができる。当該鍵交換システムの適用例を以下にいくつか示す。
(1)VoIP技術を用いた二地点間通話や電話会議での鍵配送に利用する。
(2)WebRTC中のDTLS(Datagram Transport Layer Security)を代替し、ブラウザやスマートフォンでのWeb会議やWeb電話の暗号化通信の鍵配送に利用する。
(3)メッセージングアプリの復号鍵の共有に使う。
<変形例>
この発明は上述の実施形態に限定されるものではなく、この発明の趣旨を逸脱しない範囲で適宜変更が可能であることはいうまでもない。上記実施形態において説明した各種の処理は、記載の順に従って時系列に実行されるのみならず、処理を実行する装置の処理能力あるいは必要に応じて並列的にあるいは個別に実行されてもよい。
[プログラム、記録媒体]
上記実施形態で説明した各装置における各種の処理機能をコンピュータによって実現する場合、各装置が有すべき機能の処理内容はプログラムによって記述される。そして、このプログラムをコンピュータで実行することにより、上記各装置における各種の処理機能がコンピュータ上で実現される。
この処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等どのようなものでもよい。
また、このプログラムの流通は、例えば、そのプログラムを記録したDVD、CD-ROM等の可搬型記録媒体を販売、譲渡、貸与等することによって行う。さらに、このプログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することにより、このプログラムを流通させる構成としてもよい。
このようなプログラムを実行するコンピュータは、例えば、まず、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、一旦、自己の記憶装置に格納する。そして、処理の実行時、このコンピュータは、自己の記録媒体に格納されたプログラムを読み取り、読み取ったプログラムに従った処理を実行する。また、このプログラムの別の実行形態として、コンピュータが可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することとしてもよく、さらに、このコンピュータにサーバコンピュータからプログラムが転送されるたびに、逐次、受け取ったプログラムに従った処理を実行することとしてもよい。また、サーバコンピュータから、このコンピュータへのプログラムの転送は行わず、その実行指示と結果取得のみによって処理機能を実現する、いわゆるASP(Application Service Provider)型のサービスによって、上述の処理を実行する構成としてもよい。なお、本形態におけるプログラムには、電子計算機による処理の用に供する情報であってプログラムに準ずるもの(コンピュータに対する直接の指令ではないがコンピュータの処理を規定する性質を有するデータ等)を含むものとする。
また、この形態では、コンピュータ上で所定のプログラムを実行させることにより、本装置を構成することとしたが、これらの処理内容の少なくとも一部をハードウェア的に実現することとしてもよい。
1 鍵配送装置
2 通信装置
3 通信網
100 記憶部
101 第一セットアップ部
102 第二セットアップ部
103 ユーザID受信部
104 初期鍵生成部
105 秘密ストリング生成部
111 ユーザ鍵送信部
113 セッションID生成部
114 認証タグ検証部
115 第三鍵生成部
116 認証タグ生成部
200 記憶部
203 ユーザID送信部
204 初期鍵受信部
205 秘密ストリング生成部
211 ユーザ鍵受信部
212 第一鍵生成部
214 第二鍵生成部
215 認証タグ生成部
216 認証タグ検証部
217 セッション鍵生成部

Claims (6)

  1. nを2以上の整数とし、iを1からnまでの各整数とし、jを2からnまでの各整数とし、Sを鍵配送装置とし、Uiをn台の通信装置とし、U1を上記通信装置Uiから選択された1台の代表通信装置とし、Ujを上記通信装置Uiから上記代表通信装置U1を除いたn-1台の一般通信装置とし、||を連結演算子とし、α, βを次式で定義されるとし、
    Figure 0006468567
    上記鍵配送装置Sの記憶部に、秘密ストリングstS, st'Sが記憶されており、
    上記通信装置Uiの記憶部に、秘密ストリングsti, st'iが記憶されており、
    上記通信装置Uiが、ねじれ疑似ランダム関数により上記秘密ストリングsti, st'iを用いてri, ki, siを生成し、Ri=gr_iおよびci=gk_ihs_iを計算し、(Ri, ci)を上記鍵配送装置Sへ送信する第一鍵生成ステップと、
    上記鍵配送装置Sが、ターゲット衝突困難ハッシュ関数によりc1, …, cnを用いてsidを生成し、各iについて(sid, Rα, Rβ)を上記通信装置Uiへ送信するセッションID生成ステップと、
    上記代表通信装置U1が、疑似ランダム関数により(sid, Rn r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, R2 r_1)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信する代表第二鍵生成ステップと、
    上記一般通信装置Ujが、疑似ランダム関数により(sid, Rα r_j)を用いてKj lを生成し、疑似ランダム関数により(sid, Rβ r_j)を用いてKj rを生成し、Kj lとKj rとの排他的論理和によりTjを計算し、(kj, sj, Tj)を上記鍵配送装置Sへ送信する一般第二鍵生成ステップと、
    上記鍵配送装置Sが、ねじれ疑似ランダム関数により上記秘密ストリングstS, st'Sを用いてksを生成し、k2, …, kn, ksの排他的論理和によりk'を計算し、各jについてT1, …, Tj-1の排他的論理和によりT'jを計算し、k'を上記代表通信装置U1へ送信し、(k', T'j, T')を上記一般通信装置Ujへ送信する第三鍵生成ステップと、
    上記一般通信装置Ujが、T'jとKj lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算する第一セッション鍵生成ステップと、
    上記通信装置Uiが、疑似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成する第二セッション鍵生成ステップと、
    を含み、
    timeを現在時刻とし、IDを上記通信装置を表す述語変数とし、TFを上記通信装置のタイムフレームを表す述語変数とし、
    上記鍵配送装置Sの記憶部に、関数暗号のマスタ秘密鍵mskがさらに記憶されており、
    上記鍵配送装置Sが、各iについて属性をA i =(U i , time)として関数暗号の鍵導出アルゴリズムにより上記マスタ秘密鍵mskを用いてユーザ秘密鍵usk i を生成するユーザ鍵送信ステップと、
    上記通信装置U i が、上記ユーザ秘密鍵usk i を得るユーザ鍵受信ステップと、
    をさらに含み、
    上記第三鍵生成ステップは、ねじれ疑似ランダム関数により上記秘密ストリングst S , st' S を用いて共通鍵K 1 を生成し、各iについてアクセス構造をP i =(ID=U i )∧(time∈TF)として関数暗号の暗号化アルゴリズムにより上記共通鍵K 1 を暗号化して暗号文CT' i を生成するものであり、
    上記第二セッション鍵生成ステップは、関数暗号の復号アルゴリズムにより上記ユーザ秘密鍵usk i を用いて上記暗号文CT' i を復号して上記共通鍵K 1 を得、疑似ランダム関数により(sid, K 1 )を用いて生成した値と疑似ランダム関数により(sid, K 2 )を用いて生成した値との排他的論理和によりセッション鍵SKを計算するものである、
    鍵交換方法。
  2. 請求項に記載の鍵交換方法であって、
    上記ユーザ鍵送信ステップは、メッセージ認証コードの鍵生成アルゴリズムによりMAC鍵mkiを生成するものであり、
    上記ユーザ鍵受信ステップは、上記ユーザ秘密鍵uskiおよび上記MAC鍵mkiを得るものであり、
    上記代表通信装置U1が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn, R2, T1, T', U1, sidを用いて認証タグσ1を生成する代表第一認証タグ生成ステップと、
    上記一般通信装置Ujが、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkjおよびRj, cj, Rα, Rβ, kj, sj, Tj, Uj ,sidを用いて認証タグσjを生成する一般第一認証タグ生成ステップと、
    上記鍵配送装置Sが、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn, R2, T1, T', U1, sidを用いて上記認証タグσ1を検証し、各jについてメッセージ認証コードの検証アルゴリズムにより上記MAC鍵mkjおよびRj, cj, Rα, Rβ, kj, sj, Tj, Uj ,sidを用いて上記認証タグσjを検証し、cj=gk_jhs_jが成り立つか否かを検証する第一認証タグ検証ステップと、
    上記鍵配送装置Sが、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn, R2, T1, T', U1, sid, k', CT'1を用いて認証タグσ'1を生成し、各jについてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkjおよびRj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid, c1, k', T'j, T', CT'jを用いて認証タグσ'jを生成する第二認証タグ生成ステップと、
    上記代表通信装置U1が、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn, R2, T1, T', U1, sid, k', CT'1を用いて上記認証タグσ'1を検証する代表第二認証タグ検証ステップと、
    上記一般通信装置Ujが、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mkjおよびRj, cj, Rα, Rβ, kj, sj, Tj, Uj, sid, c1, k', T'j, T', CT'jを用いて上記認証タグσ'jを検証し、T'jとKj lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を求め、c1=gk_1hs_1が成り立つか否かを検証する一般第二認証タグ検証ステップと、
    をさらに含む鍵交換方法。
  3. nを2以上の整数とし、iを1からnまでの各整数とし、jを2からnまでの各整数とし、||を連結演算子とし、α, βを次式で定義されるとし、
    Figure 0006468567
    鍵配送装置Sとn台の通信装置Uiとを含み、上記通信装置Uiは代表通信装置U1とn-1台の一般通信装置Ujとからなる鍵交換システムであって、
    timeを現在時刻とし、IDを上記通信装置を表す述語変数とし、TFを上記通信装置のタイムフレームを表す述語変数とし、
    上記鍵配送装置Sは、
    秘密ストリングstS, st'S 、関数暗号のマスタ秘密鍵mskを記憶する記憶部と、
    各iについて属性をA i =(U i , time)として関数暗号の鍵導出アルゴリズムにより上記マスタ秘密鍵mskを用いてユーザ秘密鍵usk i を生成するユーザ鍵送信部と、
    各iについて上記通信装置Uiから(Ri, ci)を受信し、ターゲット衝突困難ハッシュ関数によりc1, …, cnを用いてsidを生成し、各iについて(sid, Rα, Rβ)を上記通信装置Uiへ送信するセッションID生成部と、
    上記代表通信装置U1から(T1, T')を受信し、各jについて上記一般通信装置Ujから(kj, sj, Tj)を受信し、ねじれ疑似ランダム関数により上記秘密ストリングstS, st'Sを用いてks 、共通鍵K 1 を生成し、k2, …, kn, ksの排他的論理和によりk'を計算し、各jについてT1, …, Tj-1の排他的論理和によりT'jを計算し、各iについてアクセス構造をP i =(ID=U i )∧(time∈TF)として関数暗号の暗号化アルゴリズムにより上記共通鍵K 1 を暗号化して暗号文CT' i を生成し、(k', CT' 1 )を上記代表通信装置U1へ送信し、(k', T'j, T', CT' j )を上記一般通信装置Ujへ送信する第三鍵生成部と、
    を含み、
    上記代表通信装置U1は、
    秘密ストリングst1, st'1を記憶する記憶部と、
    上記ユーザ秘密鍵usk 1 を得るユーザ鍵受信部と、
    ねじれ疑似ランダム関数により上記秘密ストリングst1, st'1を用いてr1, k1, s1を生成し、R1=gr_1およびc1=gk_1hs_1を計算し、(R1, c1)を上記鍵配送装置Sへ送信する第一鍵生成部と、
    上記鍵配送装置Sから(sid, Rn, R2)を受信し、疑似ランダム関数により(sid, Rn r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, R2 r_1)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信する第二鍵生成部と、
    上記鍵配送装置Sから(k', CT' 1 )を受信し、疑似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成し、関数暗号の復号アルゴリズムにより上記ユーザ秘密鍵usk 1 を用いて上記暗号文CT' 1 を復号して上記共通鍵K 1 を得、疑似ランダム関数により(sid, K 1 )を用いて生成した値と疑似ランダム関数により(sid, K 2 )を用いて生成した値との排他的論理和によりセッション鍵SKを計算するセッション鍵生成部と、
    を含み、
    上記一般通信装置Ujは、
    秘密ストリングstj, st'jを記憶する記憶部と、
    上記ユーザ秘密鍵usk j を得るユーザ鍵受信部と、
    ねじれ疑似ランダム関数により上記秘密ストリングstj, st'jを用いてrj, kj, sjを生成し、Rj=gr_jおよびcj=gk_jhs_jを計算し、(Rj, cj)を上記鍵配送装置Sへ送信する第一鍵生成部と、
    上記鍵配送装置Sから(sid, Rα, Rβ)を受信し、疑似ランダム関数により(sid, Rα r_j)を用いてKj lを生成し、疑似ランダム関数により(sid, Rβ r_j)を用いてKj rを生成し、Kj lとKj rとの排他的論理和によりTjを計算し、(kj, sj, Tj)を上記鍵配送装置Sへ送信する第二鍵生成部と、
    上記鍵配送装置Sから(k', T'j, T', CT' j )を受信し、T'jとKj lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算し、疑似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて上記共通鍵K2を生成し、関数暗号の復号アルゴリズムにより上記ユーザ秘密鍵usk j を用いて上記暗号文CT' j を復号して上記共通鍵K 1 を得、疑似ランダム関数により(sid, K 1 )を用いて生成した値と疑似ランダム関数により(sid, K 2 )を用いて生成した値との排他的論理和によりセッション鍵SKを計算するセッション鍵生成部と、
    を含む鍵交換システム。
  4. nを2以上の整数とし、kを1以上の整数とし、||を連結演算子とし、Sを鍵配送装置とし、Ui(i=1, …, n+k)をn+k台の通信装置とし、通信装置U1, …, Unにより確立されたセッションに通信装置Un+1, …, Un+kが新たに参加する際の鍵交換方法であって、
    U1を上記通信装置U1, Un, Un+1, …, Un+kから選択された1台の代表通信装置とし、
    上記鍵配送装置Sの記憶部に、秘密ストリングstS, st'Sが記憶されており、
    上記通信装置Ui(i=1, …, n+k)の記憶部に、秘密ストリングsti, st'iが記憶されており、
    さらに、上記通信装置U1, …, Unの記憶部に、上記通信装置U1, …, Unにより確立されたセッションで生成された秘密情報rが記憶されており、
    上記通信装置Ui(i=1, n, …, n+k)が、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてri, ki, siを生成し、Ri=gr_iおよびci=gk_ihs_iを計算し、(Ri, ci)を上記鍵配送装置Sへ送信し、上記通信装置Ui(i=2, …, n-1)が、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてki, siを生成し、ci=gk_ihs_iを計算し、ciを上記鍵配送装置Sへ送信する第一鍵生成ステップと、
    上記鍵配送装置Sが、ターゲット衝突困難ハッシュ関数によりc1, …, cn+kを用いてsidを生成し、i=1, 2について(sid, Ri-1)を、i=3, …, n-2についてsidを、i=n-1, nについて(sid, Ri+1)を、i=n+1, …, n+kについて(sid, Ri-1, Ri+1)を上記通信装置Uiへ送信する(ただし、R0=Rn+K,Rn+k+1=R1とする)セッションID生成ステップと、
    上記代表通信装置U1が、擬似ランダム関数により(sid, Rn+k r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, gr_1r)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信し、上記通信装置U2が、擬似ランダム関数により(sid, R1 r)を用いてK2 lを生成し、擬似ランダム関数により(sid, gr)を用いてK2 rを生成し、K2 lとK2 rとの排他的論理和によりT2を計算し、(k2, s2, T2)を上記鍵配送装置Sへ送信し、上記通信装置Ui (i=3, …, n-2)が、(ki, si)を上記鍵配送装置Sへ送信し、上記通信装置Un-1が、擬似ランダム関数により(sid, gr)を用いてKn-1 lを生成し、擬似ランダム関数により(sid, Rn r)を用いてKn-1 rを生成し、Kn-1 lとKn-1 rとの排他的論理和によりTn-1を計算し、(kn-1, sn-1, Tn-1)を上記鍵配送装置Sへ送信し、上記通信装置Unが、擬似ランダム関数により(sid, Rn r)を用いてKn lを生成し、擬似ランダム関数により(sid, Rn+1 r_n)を用いてKn rを生成し、Kn lとKn rとの排他的論理和によりTnを計算し、(kn, sn, Tn)を上記鍵配送装置Sへ送信し、上記通信装置Ui(i=n+1, …, n+k)が、擬似ランダム関数により(sid, Ri-1 r_i)を用いてKi lを生成し、擬似ランダム関数により(sid, Ri+1 r_i)を用いてKi rを生成し、Ki lとKi rとの排他的論理和によりTiを計算し、(ki, si, Ti)を上記鍵配送装置Sへ送信する第二鍵生成ステップと、
    上記鍵配送装置Sが、ねじれ擬似ランダム関数により上記秘密ストリングstS, st'Sを用いてksを生成し、k2, …, kn+k, ksの排他的論理和によりk'を計算し、i=2, …, n+kについてT1, …, Ti-1(ただし、i=3, …, n-1についてTiを空とする)の排他的論理和によりT'iを計算し、k'を上記代表通信装置U1へ送信し、(k', T'i, T')を上記通信装置Ui(i=2, …, n+k)へ送信する第三鍵生成ステップと、
    上記通信装置Ui(i=2, n, …, n+k)が、T'iとKi lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算し、上記通信装置Ui(i=3, …, n-1)が、T'iとgrとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算する第一セッション鍵生成ステップと、
    上記通信装置Ui(i=1, …, n+k)が、擬似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成する第二セッション鍵生成ステップと、
    を含み、
    timeを現在時刻とし、IDを上記通信装置を表す述語変数とし、TFを上記通信装置のタイムフレームを表す述語変数とし、
    上記鍵配送装置Sの記憶部に、関数暗号のマスタ秘密鍵mskと、上記通信装置U 1 , …, U n により確立されたセッションで生成された共通鍵K 1 がさらに記憶されており、
    上記鍵配送装置Sが、i=1, …, n+kについて属性をA i =(U i , time)として関数暗号の鍵導出アルゴリズムにより上記マスタ秘密鍵mskを用いてユーザ秘密鍵usk i を生成するユーザ鍵送信ステップと、
    上記通信装置U i (i=1, …, n+k)が、上記ユーザ秘密鍵usk i を得るユーザ鍵受信ステップと、
    をさらに含み、
    上記第三鍵生成ステップは、上記鍵配送装置Sの記憶部に記憶した共通鍵K 1 を読出し、i=1, …, n+kについてアクセス構造をP i =(ID=U i )∧(time∈TF)として関数暗号の暗号化アルゴリズムにより上記共通鍵K 1 を暗号化して暗号文CT' i を生成するものであり、
    上記第二セッション鍵生成ステップは、関数暗号の復号アルゴリズムにより上記ユーザ秘密鍵usk i を用いて上記暗号文CT' i を復号して上記共通鍵K 1 を得、擬似ランダム関数により(sid, K 1 )を用いて生成した値と擬似ランダム関数により(sid, K 2 )を用いて生成した値との排他的論理和によりセッション鍵SKを計算するものである、
    鍵交換方法。
  5. 請求項に記載の鍵交換方法であって、
    上記ユーザ鍵送信ステップは、メッセージ認証コードの鍵生成アルゴリズムによりMAC鍵mkiを生成するものであり、
    上記ユーザ鍵受信ステップは、上記ユーザ秘密鍵uskiおよび上記MAC鍵mkiを得るものであり、
    上記代表通信装置U1が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn+k, T1, T', U1, sidを用いて認証タグσ1を生成し、上記通信装置U2が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk2およびc2, R1, k2, s2, T2, U2, sidを用いて認証タグσ2を生成し、上記通信装置Ui(i=3, …, n-2)が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkiおよびci, ki, si, Ui, sidを用いて認証タグσiを生成し、上記通信装置Un-1が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkn-1およびcn-1, Rn, kn-1, sn-1, Tn-1, Un-1, sidを用いて認証タグσn-1を生成し、上記通信装置Unが、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mknおよびRn, cn, Rn+1, kn, sn, Tn, Un, sidを用いて認証タグσnを生成し、上記通信装置Ui(i=n+1, …, n+k)が、メッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkiおよびRi, ci, Ri-1, Ri+1, ki, si, Ti, Ui, sidを用いて認証タグσiを生成する第一認証タグ生成ステップと、
    上記鍵配送装置Sが、上記代表通信装置U1から(T1, T', σ1)を、上記通信装置Ui(i=2, n-1, …, n+k)から(ki, si, Ti, σi)を、上記通信装置Ui(i=3, …, n-2)から(ki, si, σi)を受信し、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mki(i=1, …, n+k)を用いて上記認証タグσiを検証し、i=2, …, n+kについてci=gk_ihs_iが成り立つか否かを検証する第一認証タグ検証ステップと、
    上記鍵配送装置Sが、i=1についてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk1およびR1, c1, Rn+k, T1, T', U1, sid, k', CT'1を用いて認証タグσ'1を生成し、i=2についてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mk2およびc2, R1, k2, s2, T2, U2, sid, c1, k', T'2, T', CT'2を用いて認証タグσ'2を生成し、i=3, …, n-2についてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkiおよびci, ki, si, Ui, sid, c1, k', T'i, T', CT'iを用いて認証タグσ'iを生成し、i=n-1についてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkn-1およびcn-1, Rn, kn-1, sn-1, Tn-1, Un-1, sid, c1, k', T'n-1, T', CT'n-1を用いて認証タグσ'n-1を生成し、i=nについてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mknおよびRn, cn, Rn+1, kn, sn, Tn, Un, sid, c1, k', T'n, T', CT'nを用いて認証タグσ'nを生成し、i=n+1, …, n+kについてメッセージ認証コードのタグ生成アルゴリズムにより上記MAC鍵mkiおよびRi, ci, Ri-1, Ri+1, ki, si, Ti, Ui, sid, c1, k', T'i, T', CT'iを用いて認証タグσ'iを生成する第二認証タグ生成ステップと、
    上記代表通信装置U1が、上記鍵配送装置Sから(k', CT'1, σ'1)を受信し、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mk1を用いて上記認証タグσ'1を検証し、上記通信装置Ui (i=2, …, n+k) が、上記鍵配送装置Sから(c1, k', T'i, T', CT'i, σ'i)を受信し、メッセージ認証コードの検証アルゴリズムにより上記MAC鍵mkiを用いて上記認証タグσ'iを検証し、c1=gk_1hs_1が成り立つか否かを検証する第二認証タグ検証ステップと、
    をさらに含む鍵交換方法。
  6. nを2以上の整数とし、kを1以上の整数とし、||を連結演算子とし、
    鍵配送装置Sとn+k台の通信装置Ui(i=1, …, n+k)とを含む鍵交換システムであって、
    U1を上記通信装置U1, Un, Un+1, …, Un+kから選択された1台の代表通信装置とし、
    timeを現在時刻とし、IDを上記通信装置を表す述語変数とし、TFを上記通信装置のタイムフレームを表す述語変数とし、
    上記鍵配送装置Sは、
    秘密ストリングstS, st'S 、関数暗号のマスタ秘密鍵msk、上記通信装置U 1 , …, U n により確立されたセッションで生成された共通鍵K 1 を記憶する記憶部と、
    i=1, …, n+kについて属性をA i =(U i , time)として関数暗号の鍵導出アルゴリズムにより上記マスタ秘密鍵mskを用いてユーザ秘密鍵usk i を生成するユーザ鍵送信部と、
    上記通信装置Ui(i=1, n, …, n+k)から(Ri, ci)を、上記通信装置Ui(i=2, …, n-1)からciを受信し、ターゲット衝突困難ハッシュ関数によりc1, …, cn+kを用いてsidを生成し、i=1, 2について(sid, Ri-1)を、i=3, …, n-2についてsidを、i=n-1, nについて(sid, Ri+1)を、i= n+1, …, n+kについて(sid, Ri-1, Ri+1)を上記通信装置Uiへ送信する(ただし、R0=Rn+K,Rn+k+1=R1とする)セッションID生成部と、
    上記代表通信装置U1から(T1, T')を、上記通信装置Ui (i=2 ,n-1 ,…, n+k)から(ki, si, Ti)を、上記通信装置Ui (i=3, …, n-2)から(ki, si)を受信し、ねじれ擬似ランダム関数により上記秘密ストリングstS, st'Sを用いてksを生成し、k2, …, kn+k, ksの排他的論理和によりk'を計算し、i=2, …, n+kについてT1, …, Ti-1(ただし、i=3, …, n-1についてTiを空とする)の排他的論理和によりT'iを計算し、上記記憶部に記憶した共通鍵K 1 を読出し、i=1, …, n+kについてアクセス構造をP i =(ID=U i )∧(time∈TF)として関数暗号の暗号化アルゴリズムにより上記共通鍵K 1 を暗号化して暗号文CT' i を生成し、(k', CT' 1 )を上記代表通信装置U1へ、(k', T'i, T', CT' i )を上記通信装置Ui(i=2, …, n+k)へ送信する第三鍵生成部と、
    を含み、
    上記通信装置Ui(i=1, …, n+k)は、
    上記ユーザ秘密鍵usk i を得るユーザ鍵受信部と、
    秘密ストリングsti, st'iを記憶し、i=1, …, nについては上記通信装置U1, …, Unにより確立されたセッションで生成された秘密情報rをさらに記憶する記憶部と、
    i=1, n, …, n+kについて、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてri, ki, siを生成し、Ri=gr_iおよびci=gk_ihs_iを計算し、(Ri, ci)を上記鍵配送装置Sへ送信し、i=2, …, n-1について、ねじれ擬似ランダム関数により上記秘密ストリングsti, st'iを用いてki, siを生成し、ci=gk_ihs_iを計算し、ciを上記鍵配送装置Sへ送信する第一鍵生成部と、
    i=1について、上記鍵配送装置Sから(sid, Rn+k)を受信し、擬似ランダム関数により(sid, Rn+k r_1)を用いてK1 lを生成し、擬似ランダム関数により(sid, gr_1r)を用いてK1 rを生成し、K1 lとK1 rとの排他的論理和によりT1を計算し、K1 lとk1||s1との排他的論理和によりT'を計算し、(T1, T')を上記鍵配送装置Sへ送信し、i=2について、上記鍵配送装置Sから(sid, R1)を受信し、擬似ランダム関数により(sid, R1 r)を用いてK2 lを生成し、擬似ランダム関数により(sid, gr)を用いてK2 rを生成し、K2 lとK2 rとの排他的論理和によりT2を計算し、(k2, s2, T2)を上記鍵配送装置Sへ送信し、i=3, …, n-2について、上記鍵配送装置Sからsidを受信し、(ki, si)を上記鍵配送装置Sへ送信し、i=n-1について、上記鍵配送装置Sから(sid, Rn)を受信し、擬似ランダム関数により(sid, gr)を用いてKn-1 lを生成し、擬似ランダム関数により(sid, Rn r)を用いてKn-1 rを生成し、Kn-1 lとKn-1 rとの排他的論理和によりTn-1を計算し、(kn-1, sn-1, Tn-1)を上記鍵配送装置Sへ送信し、i=nについて、上記鍵配送装置Sから(sid, Rn+1)を受信し、擬似ランダム関数により(sid, Rn r)を用いてKn lを生成し、擬似ランダム関数により(sid, Rn+1 r_n)を用いてKn rを生成し、Kn lとKn rとの排他的論理和によりTnを計算し、(kn, sn, Tn)を上記鍵配送装置Sへ送信し、i=n+1, …, n+kについて、上記鍵配送装置Sから(sid, Ri-1, Ri+1)を受信し、擬似ランダム関数により(sid, Ri-1 r_i)を用いてKi lを生成し、擬似ランダム関数により(sid, Ri+1 r_i)を用いてKi rを生成し、Ki lとKi rとの排他的論理和によりTiを計算し、(ki, si, Ti)を上記鍵配送装置Sへ送信する第二鍵生成部と、
    i=1については上記鍵配送装置Sからk'を受信し、擬似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成し、i=2, n, …, n+k については上記鍵配送装置Sから (k', T'i, T')を受信し、T'iとKi lとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算し、擬似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成し、i=3, …, n-1については上記鍵配送装置Sから (k', T'i, T')を受信し、T'iとgrとの排他的論理和によりK1 lを計算し、T'とK1 lとの排他的論理和によりk1||s1を計算し、擬似ランダム関数によりsidおよびk'とk1との排他的論理和を用いて共通鍵K2を生成し、関数暗号の復号アルゴリズムにより上記ユーザ秘密鍵usk i を用いて上記暗号文CT' i を復号して上記共通鍵K 1 を得、擬似ランダム関数により(sid, K 1 )を用いて生成した値と擬似ランダム関数により(sid, K 2 )を用いて生成した値との排他的論理和によりセッション鍵SKを計算するセッション鍵生成部と、
    を含む鍵交換システム。
JP2016170900A 2016-09-01 2016-09-01 鍵交換方法、鍵交換システム Active JP6468567B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2016170900A JP6468567B2 (ja) 2016-09-01 2016-09-01 鍵交換方法、鍵交換システム
US16/321,657 US11258588B2 (en) 2016-09-01 2017-08-30 Key exchange method and key exchange system
EP17846577.9A EP3509246B1 (en) 2016-09-01 2017-08-30 Key exchange method and key exchange system
PCT/JP2017/031188 WO2018043573A1 (ja) 2016-09-01 2017-08-30 鍵交換方法、鍵交換システム
CN201780048745.7A CN109565440B (zh) 2016-09-01 2017-08-30 密钥交换方法,密钥交换系统
US17/350,201 US11677543B2 (en) 2016-09-01 2021-06-17 Key exchange method and key exchange system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016170900A JP6468567B2 (ja) 2016-09-01 2016-09-01 鍵交換方法、鍵交換システム

Publications (2)

Publication Number Publication Date
JP2018037938A JP2018037938A (ja) 2018-03-08
JP6468567B2 true JP6468567B2 (ja) 2019-02-13

Family

ID=61309187

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016170900A Active JP6468567B2 (ja) 2016-09-01 2016-09-01 鍵交換方法、鍵交換システム

Country Status (5)

Country Link
US (2) US11258588B2 (ja)
EP (1) EP3509246B1 (ja)
JP (1) JP6468567B2 (ja)
CN (1) CN109565440B (ja)
WO (1) WO2018043573A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11451369B2 (en) * 2019-04-16 2022-09-20 Nec Corporation Method and system for multi-authority controlled functional encryption
CN113132976B (zh) * 2021-05-11 2022-08-12 国网信息通信产业集团有限公司 一种分布式无线通信配电网差动保护方法及系统
WO2022256555A2 (en) * 2021-06-03 2022-12-08 Ntt Research, Inc. Function-embedded traitor tracing for a digital content distribution system
CN113472780A (zh) * 2021-06-30 2021-10-01 上海和数软件有限公司 一种用于区块链的数据加密传输方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7571321B2 (en) * 2003-03-14 2009-08-04 Voltage Security, Inc. Identity-based-encryption messaging system
US7978848B2 (en) * 2007-01-09 2011-07-12 Microsoft Corporation Content encryption schema for integrating digital rights management with encrypted multicast
CN101399660B (zh) 2007-09-28 2010-11-10 华为技术有限公司 协商组群密钥的方法和设备
CN101626364A (zh) * 2008-07-08 2010-01-13 赵运磊 一类可基于口令、抗秘密数据泄露的认证和密钥交换方法
CN101272244A (zh) * 2008-04-30 2008-09-24 北京航空航天大学 一种无线自组织网络密钥更新和撤销方法
CN101431414B (zh) 2008-12-15 2011-06-29 西安电子科技大学 基于身份的认证群组密钥管理方法
US8301883B2 (en) * 2009-08-28 2012-10-30 Alcatel Lucent Secure key management in conferencing system
US9602276B2 (en) 2010-06-11 2017-03-21 Qualcomm Incorporated Method and apparatus for virtual pairing with a group of semi-connected devices
JP5784833B2 (ja) * 2011-07-15 2015-09-24 アルカテル−ルーセント セキュアグループメッセージング
US8584216B1 (en) * 2012-03-15 2013-11-12 Symantec Corporation Systems and methods for efficiently deploying updates within a cryptographic-key management system
WO2014017959A1 (en) * 2012-07-27 2014-01-30 Telefonaktiebolaget L M Ericsson (Publ) Secure session for a group of network nodes

Also Published As

Publication number Publication date
CN109565440A (zh) 2019-04-02
US11677543B2 (en) 2023-06-13
US11258588B2 (en) 2022-02-22
US20200252208A1 (en) 2020-08-06
JP2018037938A (ja) 2018-03-08
US20210314146A1 (en) 2021-10-07
EP3509246B1 (en) 2021-05-26
EP3509246A4 (en) 2020-02-19
EP3509246A1 (en) 2019-07-10
WO2018043573A1 (ja) 2018-03-08
CN109565440B (zh) 2021-09-21

Similar Documents

Publication Publication Date Title
JP6497747B2 (ja) 鍵交換方法、鍵交換システム
JP2019535153A (ja) トラステッドコンピューティングに基づく量子鍵配送のための方法及びシステム
US11677543B2 (en) Key exchange method and key exchange system
CN111510281A (zh) 一种同态加密方法及装置
US20230188325A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
JP2016158189A (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20180063105A1 (en) Management of enciphered data sharing
JP2022525137A (ja) データに基づく行為を実施するための方法および装置
CN111052673B (zh) 匿名广播方法、密钥交换方法、匿名广播系统、密钥交换系统、通信装置、程序
JP6368047B2 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、代表通信装置、一般通信装置、およびプログラム
US20200235915A1 (en) Computer-implemented system and method for highly secure, high speed encryption and transmission of data
WO2014030706A1 (ja) 暗号化データベースシステム、クライアント装置およびサーバ、暗号化データ加算方法およびプログラム
WO2007142170A1 (ja) 不正者失効システム、暗号化装置、暗号化方法およびプログラム
JP4758110B2 (ja) 通信システム、暗号化装置、鍵生成装置、鍵生成方法、復元装置、通信方法、暗号化方法、暗号復元方法
JP2019125956A (ja) 鍵交換方法、鍵交換システム、鍵交換サーバ装置、通信装置、プログラム
US11451518B2 (en) Communication device, server device, concealed communication system, methods for the same, and program
JP2009141767A (ja) 暗号鍵の生成システム、暗号鍵の生成方法、暗号化認証システム及び暗号化通信システム
Odelberg et al. Distributed cipher chaining for increased security in password storage
Arvin S. Lat et al. SOUL System: secure online USB login system
JP2019041355A (ja) 暗号化装置、復号装置、暗号化システム、暗号化方法及び暗号化プログラム
Das A hybrid algorithm for secure cloud computing
JP2007142897A (ja) 署名装置、検証装置、復号装置、平文復元装置、情報提供装置、署名システム、通信システム、鍵生成装置及び署名方法
CN117040860A (zh) 网络节点数据流通验证方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180802

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20180802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181206

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: 20190108

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190109

R150 Certificate of patent or registration of utility model

Ref document number: 6468567

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250