[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JPWO2010047356A1 - 暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム - Google Patents

暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム Download PDF

Info

Publication number
JPWO2010047356A1
JPWO2010047356A1 JP2010534836A JP2010534836A JPWO2010047356A1 JP WO2010047356 A1 JPWO2010047356 A1 JP WO2010047356A1 JP 2010534836 A JP2010534836 A JP 2010534836A JP 2010534836 A JP2010534836 A JP 2010534836A JP WO2010047356 A1 JPWO2010047356 A1 JP WO2010047356A1
Authority
JP
Japan
Prior art keywords
key
session
information
parameter
session information
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.)
Withdrawn
Application number
JP2010534836A
Other languages
English (en)
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.)
Sony Corp
Original Assignee
Sony Corp
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 Sony Corp filed Critical Sony Corp
Publication of JPWO2010047356A1 publication Critical patent/JPWO2010047356A1/ja
Withdrawn legal-status Critical Current

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/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/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
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Landscapes

  • Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Power Engineering (AREA)
  • Computing Systems (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

【課題】グループ鍵共有技術におけるセキュリティを更に向上させることが可能な、新規かつ改良された暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムを提供すること。【解決手段】本発明に係る暗号化装置および鍵処理装置では、同時通信を行う際に利用されるセッション鍵を算出するために必要となるセッション情報を各装置が生成する際に、それぞれのセッション情報中に、各装置に予め割り当てられている各装置に固有の秘密鍵に依存する値を含有させる。これにより、グループメンバによる成りすましに対する防御を実現することが可能となる。【選択図】図1

Description

本発明は、暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムに関する。
近年の通信技術の進歩により、電話会議やチャットなど、複数の参加者による同時通信が広く行われるようになった。この通信は、しばしばインターネットなど安全性が確立されていない通信路を介しても行われる。この場合、会議の内容などの通信のコンテンツを同時通信の参加者以外の者から守るために、通信内容を暗号化することが一般的である。
暗号化技術の最も一般的な方法としては、共通鍵暗号と呼ばれる、送信者と受信者が同じ鍵を共有し、この鍵を用いてコンテンツを暗号化したり復号したりする方法がある。また、複数(特に、3人以上)のエンティティ間で、セッション鍵と呼ばれる同一の鍵を共有するための技術として、グループ鍵共有(Group Key Agreement:GKA)技術がある(例えば、以下の非特許文献1〜非特許文献3を参照。)。
M.Burmester and Y.Desmedt,"A Secure and Efficient Conference Key Distribution Systems",In Advances in Cryptology−EUROCRYPT’94,volume950 of Lecture Notes in Computer Science, pages275−286,Springer,May 1994. L.Zhou,W.Susilo and Y.Mu,"Efficient ID−based Authenticated Group Key Agreement from Bilinear Pairings",Mobile Ad−hoc and Sensor Networks−MSN 2006,LNCS 4325,pp.521−532,Springer−Verlag,2006. C.Boyd and J.M.Gonzalez Nieto,"Round−optimal Contributory Conference Key Agreement",PKC 2003,LNCS 2567,pp.161−174,Springer,2003.
上記非特許文献1に記載の方式では、同時通信を行うメンバが行う計算量が大きくなってしまうという問題があった。また、上記非特許文献2に記載の方式は、非特許文献1に記載の方式よりは計算量は少ないものの、本願発明者らによる当該方法の詳細な検討の結果、グループメンバによる成りすましが可能であることが明らかとなった。
また、本願発明者らによる検討の結果、上記非特許文献2および非特許文献3に記載の方法では、同時通信を行うメンバで共有すべきグループ鍵をグループ内の特定のユーザに共有できないようにすることができてしまうという問題があることが明らかとなった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、グループ鍵共有技術におけるセキュリティを更に向上させることが可能な、新規かつ改良された暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える暗号化装置が提供される。
前記パラメータ選択部は、パラメータδ∈ およびパラメータk と、前記所定のビット数を有するパラメータrと、を選択してもよい。
前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記メンバ情報生成部は、下記式1に基づいて、各参加装置に対応した前記メンバ情報Pをそれぞれ生成してもよい。
ここで、下記式1において、Hは、公開されている前記ハッシュ関数の一つであり、Sは、自装置に予め割り当てられている秘密鍵であり、Qは、各参加装置に予め割り当てられている公開鍵であり、iは、2〜nの整数である。
Figure 2010047356
前記セッション情報生成部は、下記式2で表される値Xと、下記式3で表される値Yとを算出し、下記式4で表される前記セッション情報Dを生成してもよい。
ここで、下記式2および下記式3におけるHは、公開されている前記ハッシュ関数の一つである。また、下記式4において、P〜Pは、各参加装置に対応した前記メンバ情報であり、Lは、P〜Pの前記メンバ情報と前記参加装置との対応関係が記載された情報である。
Figure 2010047356
前記暗号化装置は、自装置にて生成した前記セッション情報と、前記参加装置から取得した式5で表されるそれぞれの前記セッション情報D(i=2,・・・,n)と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式6で表される検証パラメータzを算出し、下記式7が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
Figure 2010047356
前記メンバ検証部は、前記式7が成立する場合に、正当な機器から前記参加装置が構成されていると判断し、前記セッション鍵生成部は、下記式8に基づいて前記セッション鍵Kを算出してもよい。ここで、下記式8におけるHは、公開されている前記ハッシュ関数の一つである。
Figure 2010047356
前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記パラメータ選択部は、パラメータδ およびパラメータk と、前記所定のビット数を有するパラメータrと、を選択し、前記メンバ情報生成部は、下記式9に基づいて、各参加装置に対応した前記メンバ情報Pをそれぞれ生成してもよい。
ここで、下記式9において、Hは、公開されている前記ハッシュ関数の一つであり、Sは、自装置に予め割り当てられている秘密鍵であり、Qは、各参加装置に予め割り当てられている公開鍵である。
Figure 2010047356
前記セッション情報生成部は、下記式10で表される値Vと、下記式11で表される値Wとを算出し、下記式12で表される前記セッション情報Dを生成してもよい。
ここで、下記式10におけるHおよび下記式11におけるHは、公開されている前記ハッシュ関数の一つである。また、下記式11において、SIG(x)は、所定の署名生成鍵を用いて情報xに対して生成したデジタル署名を表す。また、下記式12において、P〜Pは、各参加装置に対応した前記メンバ情報であり、Lは、前記メンバ情報と前記参加装置との対応関係が記載された情報である。
Figure 2010047356
前記暗号化装置は、前記式12で表される、自装置にて生成した前記セッション情報Dおよび前記参加装置から取得した前記セッション情報Dを用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式13で表されるパラメータk’(j=1,・・・,n、j≠i)を算出し、算出したパラメータk’と、前記セッション情報Dとに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
Figure 2010047356
前記セッション鍵生成部は、前記メンバ検証部による検証が成功した場合に、下記式14に基づいて前記セッション鍵Kを算出してもよい。
Figure 2010047356
前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、前記パラメータ選択部は、所定のビット数を有するパラメータNを選択し、前記セッション情報生成部は、下記式15で表されるデジタル署名が付加されたメッセージDと、暗号文E(e,N)(i=2,・・・,n)とを生成してもよい。
ここで、下記式15において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
Figure 2010047356
前記セッション鍵生成部は、前記他の参加装置から取得した所定のビット数を有するパラメータNと、前記パラメータ選択部により選択されたパラメータNとを用いて、下記式16に基づいて前記セッション鍵Kを算出してもよい。
Figure 2010047356
上記課題を解決するために、本発明の別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える鍵処理装置が提供される。
前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記セッション鍵取得部は、前記暗号化装置から、下記式17で表される前記セッション情報Dを取得し、前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報Dに含まれる、自装置に対応するメンバ情報Pおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式18により一時鍵r’を算出してもよい。
ここで、下記式17におけるHおよび下記式10におけるHは、公開されている前記ハッシュ関数の一つである。
Figure 2010047356
前記セッション鍵生成部は、下記式19で表される前記セッション情報Dを生成してもよい。ここで、下記式19におけるkは、セッション情報を算出する際に用いられるパラメータである。
Figure 2010047356
前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式19で表される前記セッション情報を取得し、前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式17で表される前記セッション情報Dと、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式20で表される検証パラメータzを算出し、下記式21が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
ここで、下記式20および式21における変数nは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。
Figure 2010047356
前記メンバ検証部は、前記式21が成立する場合に、前記同時通信に参加する機器が正当な機器から構成されていると判断し、前記セッション鍵生成部は、下記式22に基づいて前記セッション鍵Kを算出してもよい。ここで、下記式22におけるHは、公開されている前記ハッシュ関数の一つである。
Figure 2010047356
前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、前記鍵処理装置は、前記暗号化装置から取得した下記式23で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、前記一時鍵算出部は、前記暗号化装置から伝送された暗号文E(e,N)を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータNを算出し、前記メンバ検証部は、下記式23で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータNとを用いて算出されたh(N)とに基づいて、前記暗号化装置の検証を行ってもよい。
ここで、下記式23において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
Figure 2010047356
前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータNを選択し、前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータNを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信してもよい。
前記セッション鍵生成部は、前記一時鍵算出部により算出されたパラメータNと、前記パラメータ選択部により選択されたパラメータNと、前記他の参加装置から取得したパラメータNとを用いて、下記式24に基づいて前記セッション鍵Kを算出してもよい。
Figure 2010047356
上記課題を解決するために、本発明の更に別の観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、含む暗号化方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、を含む鍵処理方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとして所定のビット数を有するパラメータを選択するパラメータ選択機能と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。
上記課題を解決するために、本発明の更に別の観点によれば、上述の暗号化装置と上述の鍵処理装置とを含む鍵共有システムが提供される。
以上説明したように本発明によれば、グループ鍵共有技術におけるセキュリティを更に向上させることが可能である。
本発明の第1の実施形態に係る鍵共有システムについて説明するための説明図である。 同実施形態に係る鍵生成装置の構成を説明するためのブロック図である。 同実施形態に係る暗号化装置の構成を説明するためのブロック図である。 同実施形態に係る鍵処理装置の構成を説明するためのブロック図である。 同実施形態に係る鍵生成方法の流れについて説明するための流れ図である。 同実施形態に係るセッション鍵生成処理について説明するための流れ図である。 同実施形態に係るセッション鍵生成処理について説明するための流れ図である。 同実施形態に係るセッション鍵生成処理について説明するための説明図である。 本発明の第2の実施形態に係る暗号化装置の構成を説明するためのブロック図である。 同実施形態に係る鍵処理装置の構成を説明するためのブロック図である。 同実施形態に係るセッション鍵生成処理について説明するための流れ図である。 本発明の第3の実施形態に係る鍵共有システムについて説明するための説明図である。 同実施形態に係る鍵生成装置の構成を説明するためのブロック図である。 同実施形態に係る暗号化装置の構成を説明するためのブロック図である。 同実施形態に係る鍵生成処理について説明するための流れ図である。 同実施形態に係るセッション鍵生成処理について説明するための流れ図である。 本発明の各実施形態に係る暗号化装置のハードウェア構成を説明するためのブロック図である。 非特許文献2に記載の方法における鍵生成処理について説明するための流れ図である。 非特許文献2に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。 非特許文献2に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。 非特許文献2に記載の第2の方法における鍵生成処理について説明するための流れ図である。 非特許文献2に記載の第2の方法におけるセッション鍵生成処理について説明するための流れ図である。 非特許文献3に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
1 鍵共有システム
3 通信網
10 鍵生成装置
11 メンバ情報管理部
13 パラメータ選択部
15 公開情報生成部
17 鍵生成部
19 公開鍵生成部
21 秘密鍵生成部
22 署名鍵生成部
23 情報提供部
25 通信制御部
27 記憶部
100 暗号化装置
101,201 個人鍵取得部
103,203 グループ鍵生成部
105,121,131,209,229 パラメータ選択部
107,123,133 メンバ情報生成部
109,125,135,211,227 セッション情報生成部
111,127,137,205,221 セッション情報取得部
113,139,213,225 メンバ検証部
115,129,141,215,231 セッション鍵生成部
117,217 通信制御部
119,219 記憶部
200 鍵処理装置
207,223 一時鍵算出部
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
なお、説明は、以下の順序で行うものとする。
(1)目的
非特許文献1に記載の方法について
非特許文献2に記載の方法について
非特許文献2に記載の方法の問題点について
非特許文献2に記載の第2の方法について
非特許文献3に記載の方法について
非特許文献2に記載の第2の方法と非特許文献3に記載の方法の問題点について
(2)第1の実施形態
(2−1)鍵共有システムについて
(2−2)鍵生成装置の構成について
(2−3)暗号化装置の構成について
(2−4)鍵処理装置の構成について
(2−5)鍵生成方法について
(2−6)セッション鍵の生成方法について
(2−7)セッション鍵の生成方法における計算量等について
(3)第2の実施形態
(3−1)暗号化装置の構成について
(3−2)鍵処理装置の構成について
(3−3)鍵生成方法について
(3−4)セッション鍵の生成方法について
(4)第3の実施形態
(4−1)鍵共有システムについて
(4−2)鍵生成装置の構成について
(4−3)暗号化装置の構成について
(4−4)セッション鍵の生成方法について
(5)本発明の各実施形態に係る暗号化装置、鍵処理装置のハードウェア構成について
(6)まとめ
(目的)
まず、本発明に係る暗号化装置および鍵処理装置について説明するに先立ち、従来のグループ鍵共有技術について説明し、本発明の目的とするところについて説明する。
<非特許文献1に記載の方法について>
非特許文献1に記載の方法は、同報通信路を用いて、下記に示すプロトコルによりn人のメンバ(U,・・・Un−1)間でセッション鍵Kを共有する方法である。なお、下記に示すプロトコルは、何度でも実行可能である。実行に先立ち、システムセットアップとして、適切な大きさの素数pとq、位数qを持つ元α∈Zと、について、メンバ間で合意がとれているものとする。また、以下に示すプロトコルにおいて、各メンバの番号iは、mod nで考える点に注意されたい。
まず、各メンバUは、パラメータrを選択して、以下の式901を用いて算出されるzを他のメンバに同報送信する。なお、a∈Zという表記は、集合Zから要素aをランダムに選択することを表すものとする。
Figure 2010047356
続いて、各メンバUは、zi+1およびzi−1を用いて、X=(zi+1/zi−1rimod pを計算し、各メンバに同報送信する。
次に、各メンバUは、以下の式902を用いて、Kを算出する。上記のプロトコルにより、各メンバUはKを得るが、それぞれのメンバについてセッション鍵KとKとの関係は以下の式903のようになるため、メンバ間でセッション鍵Kを共有することが可能となる。
Figure 2010047356
しかしながら、この非特許文献1に記載の方法は、Kを算出するために、O(n)回のmod pでの乗算が必要となり、メンバの計算量が大きくなるという欠点がある。
<非特許文献2に記載の方法について>
非特許文献2に記載の方法は、メンバの計算量の削減を図ったグループ鍵共有に関する方法である。以下、図18〜図20を参照しながら、非特許文献2に記載の方法について、詳細に説明する。図18は、非特許文献2に記載の方法における鍵生成処理について説明するための流れ図である。図19および図20は、非特許文献2に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
この非特許文献2に記載の方法では、双線形写像(バイリニアマップ)技術を利用する。この双線形写像を、「e」と表すこととする。双線形写像e:G×G→Gは、位数qの群Gの2つの要素の組を、同じ位数qを持つ別の群Gに写像(マップ)する。この写像(マッピング)の特徴として、双線形性および非退化性を有することが挙げられる。
1.双線形性:任意のu,v∈Gおよびa,b∈Z に対して、e(u,v)=e(u,v)abが成立する。
2.非退化性:Gの生成元gに対し、e(g,g)≠1
[鍵生成処理]
非特許文献2に記載の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図18を参照しながら、詳細に説明する。
まず、鍵共有システムにおけるセンタは、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する(ステップS901)。
続いて、センタは、パラメータP∈と、パラメータs∈ を選択し(ステップS903)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、センタは、H、H、H、Hの4種類のハッシュ関数を選択する(ステップS905)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
:{0,1} → G
:G → {0,1}
:{0,1} → Z
:G → {0,1}
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する(ステップS907)。公開されるシステムパラメータは、例えば、<e,G,G,q,P,Ppub,H,H,H,H>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(ID)を有するメンバUが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザUの公開鍵Qと秘密鍵Sとを生成する(ステップS909)。
公開鍵Q = H(ID
秘密鍵S = sQ
センタは、生成したユーザUの個人鍵(すなわち、公開鍵Qと秘密鍵S)を、該当するユーザUに伝送する。また、センタは、生成したユーザUの公開鍵Qを、公開することも可能である。
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図17に示したステップS909のみを実行することで、新たな個人鍵を生成することが可能である。
なお、上述のように、ユーザの公開鍵Qは、公開されているユーザのIDと、公開パラメータであるハッシュ関数Hから生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Sは、センタが秘匿しているマスター鍵sを用いて生成を行うため、センタのみが生成することができる。
非特許文献2に記載の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
[セッション鍵の生成処理]
次に、図19および図20を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献2に記載の方式では、n人のメンバU,U,・・・,Uのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバUがイニシエータであるとする。
[Round1]
まず、イニシエータであるメンバUが有する情報処理装置は、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信で用いられるパラメータであるパラメータδ∈と、パラメータk と、を選択する(ステップS911)。また、メンバUが有する情報処理装置は、パラメータr∈{0,1}を選択する(ステップS911)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、メンバUが有する情報処理装置は、同時通信に参加するメンバU〜Uに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報P(i=2,・・・,n)を生成する(ステップS913)。このメンバ情報Pは、以下の式911で表される値である。
Figure 2010047356
ここで、上記式911において、Hは、システムパラメータとして公開されているハッシュ関数の一つであり、eは、システムパラメータとして公開されている双線形写像である。また、上記式911におけるrおよびδは、メンバUが有する情報処理装置が選択したパラメータである。また、上記式911におけるSは、メンバUに割り当てられている秘密鍵であり、Qは、同時通信に参加するメンバU〜Uに割り与えられている公開鍵である。
続いて、メンバUが有する情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下のような値X、Yを算出する。また、X,Yの算出が終了すると、メンバUが有する情報処理装置は、以下の式914で表されるセッション情報Dを生成する(ステップS915)。
Figure 2010047356
なお、メンバUが有する情報処理装置は、式911に基づいて、(n−1)個のPを算出するが、例えばメンバUに対するメンバ情報がPであるとは限らない。そのため、メンバUが有する情報処理装置は、式914で表されるセッション情報の中に、P〜Pのそれぞれと、各メンバとの対応関係を表す情報Lを添付する。
セッション情報Dの生成が終了すると、メンバUが有する情報処理装置は、生成したセッション情報Dを同報送信する(ステップS917)。
[Round2]
セッション情報Dを受信したメンバU〜Uが有する情報処理装置は、まず、セッション情報D中に含まれる情報Lを参照し、自身に対応するメンバ情報がP〜Pのどれなのかを判断する(ステップS919)。
続いて、メンバU〜Uが有する情報処理装置は、自身に対応するメンバ情報Pと、セッション情報Dと、イニシエータであるメンバUの公開鍵Qと、自身の秘密鍵Sを用いて、以下の式915に基づき一時鍵r’を算出する(ステップS921)。
Figure 2010047356
ここで、メンバUにより正しくセッション情報Dが生成されていれば、メンバU〜Uが有する情報処理装置で算出された一時鍵r’は、メンバUが有する情報処理装置で選択された一時鍵rと等しくなる。すなわち、r’=rが成立する。
次に、メンバU〜Uが有する情報処理装置は、パラメータk を選択する(ステップS923)。その後、選択したパラメータkと、算出した一時鍵r’と、公開されているシステムパラメータと、を用いて、以下の式916によりメンバUが有する情報処理装置へ伝送されるセッション情報Dを生成する(ステップS925)。なお、以下の式916では、r’=rが成立しているとして、定式化している。
Figure 2010047356
セッション情報Dの生成が終了すると、メンバU〜Uが有する情報処理装置それぞれは、自身以外の全ての情報処理装置に対して、生成したセッション情報Dを同報送信する(ステップS927)。
[セッション鍵生成]
メンバUが有する情報処理装置は、メンバU〜Uが有する情報処理装置から伝送された全てのセッション情報Dを取得することで、自身が生成したセッション情報Dを含め、セッション情報D〜Dまで全n個のセッション情報を有することとなる。メンバUが有する情報処理装置は、セッション情報D〜Dと、公開されているシステムパラメータと、を用いて、検証用に用いられるパラメータ(以下、検証パラメータと称する。)zおよびzを算出する(ステップS929)。
同様に、メンバU〜Uが有する情報処理装置それぞれは、セッション情報Dと、自身以外のメンバU〜Uが有する情報処理装置から取得したセッション情報Dとを含め、セッション情報D〜Dまで全n個のセッション情報を有することとなる。メンバU〜Uが有する情報処理装置それぞれは、セッション情報D〜Dと、公開されているシステムパラメータと、を用いて、検証パラメータzおよびzを算出する(ステップS931)。
Figure 2010047356
なお、上記式918において、2≦j≦nである。
続いて、メンバUが有する情報処理装置は、算出した検証パラメータz、zを用いて演算を行い、以下の式919が成立するか否かを判定する(ステップS933)。同様に、メンバU〜Uが有する情報処理装置それぞれは、算出した検証パラメータz、zを用いて演算を行い、以下の式919が成立するか否かを判定する(ステップS935)。式919が成立した場合には、それぞれの情報処理装置は、セッション鍵Kの確立のために参加したn人のメンバが全て正当なメンバであると判断する。すなわち、式919が成立するか否かを判断するステップS933およびステップS935は、メンバの正当性を検証しているステップであるといえる。
Figure 2010047356
メンバUが有する情報処理装置は、式919が成立した場合にのみ、以下の式920に基づいて、セッション鍵Kを算出する(ステップS937)。同様に、メンバU〜Uが有する情報処理装置それぞれは、式919が成立した場合にのみ、以下の式920に基づいて、セッション鍵Kを算出する(ステップS939)。
Figure 2010047356
このセッション鍵Kがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS941)。
<非特許文献2に記載の方法の問題点について>
このように、上述の非特許文献2に記載の方法は、メンバ以外の者がセッション鍵Kにアクセスすることを防ぐために、[Round2]において各メンバが同報送信したメッセージを、それぞれのメンバが一括して検証する方法である。
しかしながら、本願発明者らは、このような非特許文献2に記載の方法を詳細に検討した結果、以下のような場合には、グループメンバによる成りすまし行為が成立してしまうという問題が発生することに想到した。
すなわち、非特許文献2に記載の方法の[Round2]における検証は、送信者固有の情報を利用していない。そのため、本願発明者らは、[Round1]でイニシエータが送信した一時鍵rの値を知ることができるメンバであれば、この検証をすり抜ける値を生成することが可能であることに想到したのである。
今、メンバUが、意図的に、または通信エラーなどの理由により、上述のような鍵共有プロトコルに参加できなかったと仮定する。この場合、本来であればメンバUからセッション情報Dが送信されないため、n人のメンバのセッション情報が集められず、セッション鍵Kが確立されることはない。
しかしながら、上述の方式では、rの値を知ることができる他のメンバUが、自分のセッション情報Dとは別に、メンバUを装ったセッション情報Dを送信することができてしまう。すなわち、上述の方式では、メンバuは、自身の秘密鍵S等を用いて式915により生成したr’を、他の計算に流用することが可能である。また、式916におけるセッション情報の算出では、算出した一時鍵と、公開されているパラメータとを用いることで、自由にセッション情報を算出することができる。そのため、ステップS923におけるパラメータkの選択の際に、kとは異なる別のパラメータkを併せて選択することで、2つのセッション情報D,Dを得ることができてしまう。その結果、実際にはメンバUが参加していないにも係らず、U以外のメンバは、Uを含むn人のメンバ間でセッション鍵が共有できたと誤解してしまうこととなる。
上述のような状況が、例えば重要な会議等の際にセッション鍵を生成する際に生じたとすれば、その影響は甚大なものとなりうる。そのため、本発明の第1の実施形態に係る方式では、上述のような非特許文献2に記載の方式におけるメンバによる成りすまし行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
<非特許文献2に記載の第2の方法について>
非特許文献2には、上述の方法に加えて以下に説明する第2の方法が記載されている。以下では、図21および図22を参照しながら、非特許文献2に記載の第2の方法について、詳細に説明する。図21は、非特許文献2に記載の第2の方法における鍵生成処理について説明するための流れ図である。図22は、非特許文献2に記載の第2の方法におけるセッション鍵生成処理について説明するための流れ図である。
[鍵生成処理]
非特許文献2に記載の第2の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図21を参照しながら、詳細に説明する。
まず、鍵共有システムにおけるセンタは、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する(ステップS951)。
続いて、センタは、パラメータP∈と、パラメータs∈ を選択し(ステップS953)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、センタは、H、H、Hの3種類のハッシュ関数を選択する(ステップS955)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
:{0,1} → G
:G → {0,1}
:{0,1} → {0,1}
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する(ステップS957)。公開されるシステムパラメータは、例えば、<e,G,G,q,P,Ppub,H,H,H>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(ID)を有するメンバUが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザUの公開鍵Qと秘密鍵Sとを生成する(ステップS959)。
公開鍵Q = H(ID
秘密鍵S = sQ
センタは、生成したユーザUの個人鍵(すなわち、公開鍵Qと秘密鍵S)を、該当するユーザUに伝送する。また、センタは、生成したユーザUの公開鍵Qを、公開することも可能である。
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図20に示したステップS959のみを実行することで、新たな個人鍵を生成することが可能である。
なお、上述のように、ユーザの公開鍵Qは、公開されているユーザのIDと、公開パラメータであるハッシュ関数Hから生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Sは、センタが秘匿しているマスター鍵sを用いて生成を行うため、センタのみが生成することができる。
非特許文献2の第2の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵とを利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
[セッション鍵の生成処理]
次に、図22を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。
まず、各メンバUが有する各情報処理装置は、パラメータδと、パラメータk と、を選択する(ステップS961)。ここで、パラメータδは、セッション鍵の共有に用いられるパラメータである。また、各メンバUが有する各情報処理装置は、パラメータr{0,1}を選択する(ステップS961)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、各メンバUが有する各情報処理装置は、同時通信に参加する自分以外のメンバU(1≦j≦n,j≠i)に対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報P を生成する(ステップS963)。このメンバ情報P は、以下の式921で表される値である。
Figure 2010047356
ここで、上記式921において、Hは、システムパラメータとして公開されているハッシュ関数の一つであり、eは、システムパラメータとして公開されている双線形写像である。また、上記式921におけるrおよびδは、メンバUが有する情報処理装置が選択したパラメータである。また、上記式921におけるSは、メンバUに割り当てられている秘密鍵であり、Qは、同時通信に参加するメンバUに割り与えられている公開鍵である。
続いて、各メンバUが有する各情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下の式922で表される値Vを算出する。また、Vの算出が終了すると、各メンバUが有する各情報処理装置は、以下の式923で表されるセッション情報Dを生成する(ステップS965)。
Figure 2010047356
なお、各メンバUが有する各情報処理装置は、式921に基づいて、(n−1)個のP を算出するが、例えばメンバUに対するメンバ情報がP であるとは限らない。そのため、各メンバUが有する各情報処理装置は、式923で表されるセッション情報の中に、P のそれぞれと、各メンバとの対応関係を表す情報Lを添付する。
セッション情報Dの生成が終了すると、各メンバUが有する各情報処理装置は、生成したセッション情報Dを各情報処理装置へ同報送信する(ステップS967)。
他の情報処理装置からセッション情報D(1≦j≦n,j≠i)を受信したメンバUが有する情報処理装置は、まず、セッション情報D中に含まれる情報Lを参照し、自身に対応するメンバ情報P を検出する(ステップS969)。
続いて、各メンバUが有する情報処理装置は、自身に対応するメンバ情報P と、セッション情報Dと、メンバUの公開鍵Qと、自身の秘密鍵Sを用いて、以下の式924に基づきパラメータk’を算出する(ステップS971)。
Figure 2010047356
次に、各メンバUが有する各情報処理装置は、算出したパラメータk’と、選択したパラメータkとを用いて、以下の式925によりセッション鍵Kを算出する(ステップS973)。
Figure 2010047356
このセッション鍵Kがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS975)。
<非特許文献3に記載の方法について>
[セッション鍵の生成処理]
非特許文献3に記載の方法は、通信のオーバーヘッドを小さくするために、同時通信に参加する各情報処理装置が1度だけしかメッセージを送信しない1ラウンド型の方式を実現するための方法である。以下では、図23を参照しながら、非特許文献3に記載の方法について、詳細に説明する。図23は、非特許文献3に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
かかるセッション鍵生成処理に先立ち、この非特許文献3に記載の方法では、鍵共有システムにおけるセンタが、鍵生成装置を利用して、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵、ならびに、署名用のユーザ鍵)との生成を行っているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Eおよび復号関数D、ならびに、デジタル署名方式の署名生成関数Sおよび署名検証関数Vが公開される。また、各ユーザUが有する情報処理装置には、ユーザUの公開暗号化鍵e、秘密復号鍵d、秘密署名生成鍵s、公開署名検証鍵vが保持されており、公開暗号化鍵eおよび公開署名検証鍵vは、各メンバU間で共有されているものとする。
なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献3に記載の方式では、n人のメンバU,U,・・・,Uのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバUがイニシエータであるとする。
まず、イニシエータUが有する情報処理装置は、無作為に乱数を生成し、パラメータNとする(ステップS981)。続いて、イニシエータUが有する情報処理装置は、鍵を共有するユーザのリストUを、メンバ情報として生成する(ステップS983)。次に、イニシエータUが有する情報処理装置は、他のメンバUの公開暗号化鍵eと、自身の秘密署名生成鍵sと、選択したパラメータNと、公開パラメータと、を用いて、以下の式926で表されるセッション情報Dを生成する(ステップS985)。ここで、i=2,・・・,nである。
Figure 2010047356
ここで、上記式926において、E(A,B)は、鍵Aを用いてメッセージBを暗号化した暗号文を表し、S(A,B)は、鍵Aを用いてメッセージBに対して施したデジタル署名を表す。
次に、イニシエータUが有する情報処理装置は、生成したメンバ情報Uおよびセッション情報Dを、他のメンバUに同報送信する(ステップS987)。
続いて、イニシエータUが有する情報処理装置は、各ユーザU(i=2,・・・,n)の公開暗号化鍵eを利用してパラメータNを暗号化し、暗号文E(e,N)を生成する。その後、イニシエータUが有する情報処理装置は、生成した暗号文E(e,N)を各メンバUの情報処理装置に送信する(ステップS989)。
各メンバUの各情報処理装置は、イニシエータUの情報処理装置から送信された各情報を受信すると、暗号文E(e,N)を復号して、パラメータNを取得する。また各メンバUの各情報処理装置は、パラメータNを無作為に選択して(ステップS991)、ユーザ情報Uと、パラメータNとを、他の情報処理装置に同報送信する(ステップS993)。これにより、同時通信に参加する各情報処理装置は、パラメータN〜Nを取得することができる。
続いて、イニシエータを含む各メンバUの各情報処理装置は、取得したパラメータNと、公開パラメータであるハッシュ関数hとを利用して、以下の式927によりセッション鍵Kを算出する(ステップS995)。
Figure 2010047356
このセッション鍵Kがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS997)。
<非特許文献2に記載の第2の方法および非特許文献3に記載の方法の問題点>
このように、上述の非特許文献2に記載の第2の方法、および、非特許文献3に記載の方法は、1ラウンド型の方式を実現したグループ鍵の共有方法である。しかしながら、本願発明者らは、これらの方法を詳細に検討した結果、これらの方法に共通する以下のような問題があることに想到した。
それは、あるユーザ(ユーザAとする。)が、あるユーザ(ユーザBとする。)に対して他のユーザに送ったものとは別の値を送信することにより、n人のグループで共有するグループ鍵を、ユーザBだけが共有できないようにできるという問題である。
具体的に、4人(U,U,U,U)のグループを考える。非特許文献2に記載の第2の方式において、UがUを陥れるためには、先に説明したP の算出において、正しいrとは異なる他の値を用いることで、UがP から導出するk’の値は、他のユーザが得た正しい値とは別のものとなる。このため、Uは、グループ鍵の共有が正しく行えないこととなる。
他方、非特許文献3に記載の方式では、上述のような不正を実行できるのは、イニシエータUである。すなわち、Uが、あるユーザに対してのみ、各ユーザUに対して生成するE(e,N)をNとは異なる他の値を用いて作成することで、そのユーザはNを得ることができず、結果としてグループ鍵の共有が正しく行えないことになる。
さらに、上述のような攻撃者以外の各メンバは、この攻撃が行われたことを知ることができず、全員がグループ鍵を共有できたものと考えて目的の処理(例えば、グループ鍵を用いて行う処理)を行ってしまう。かかる問題は、システムのセキュリティ上好ましくないものである。
そこで、以下で説明する本発明の第2の実施形態に係る方式では、上述のような非特許文献3に記載の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。また、以下で説明する本発明の第3の実施形態に係る方式では、上述のような非特許文献2に記載の第2の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
なお、以下で説明する本発明の各実施形態に係る方式は、上記非特許文献2および上記非特許文献3に記載の方式を基盤を成す技術とし、この基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本発明の各実施形態の特徴を成す部分である。つまり、本発明の各実施形態は、上述のような技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
(第1の実施形態)
<鍵共有システムについて>
まず、図1を参照しながら、本発明の第1の実施形態に係る鍵共有システムについて、詳細に説明する。図1は、本実施形態に係る鍵共有システムについて説明するための説明図である。
本実施形態に係る鍵共有システム1は、例えば図1に示したように、鍵生成装置10と、複数台の暗号化装置100A、100B、100C・・・と、複数台の鍵処理装置200A、200B、200C・・・と、を主に備える。これらの装置は、通信網3を介して、相互に接続されている。
通信網3は、鍵生成装置10、暗号化装置100、鍵処理装置200それぞれの間を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網3は、例えば、インターネット、NGN(Next Generation Network)、電話回線網、衛星通信網、同報通信路等の公衆回線網や、WAN(Wide Area Network)、LAN(Local Area Network)、IP−VPN(Internet Protocol−Virtual Private Network)、Ethernet(登録商標)、ワイヤレスLAN等の専用回線網などで構成されており、有線/無線を問わない。
鍵生成装置10は、暗号化装置100および鍵処理装置200それぞれに固有の公開鍵と秘密鍵とを生成し、公開鍵を公開するとともに、各装置に対して、安全な通信路を介して、それぞれの公開鍵および秘密鍵を配信する。また、鍵生成装置10は、本実施形態に係る鍵共有システム1で用いられ公開することが可能なパラメータを、システムパラメータとして公開する。なお、この鍵生成装置10は、公開鍵および秘密鍵の生成・管理を行うセンタ等が所有することが可能である。
暗号化装置100は、鍵生成装置10によって生成された公開鍵・秘密鍵や、公開されているシステムパラメータ等を用いて、暗号化装置100と複数台の鍵処理装置200との間で行われる同時通信に要するセッション鍵を生成するための情報を暗号化する。また、暗号化装置100は、暗号化したセッション鍵を生成するための情報を、通信網3を介して各鍵処理装置200へと伝送する。この暗号化装置100は、任意の第三者が所有することが可能であり、また、鍵生成装置10の所有者や、鍵処理装置200の所有者が所有することも可能である。
鍵処理装置200は、暗号化装置100から送信された暗号化された情報を用いて、同時通信に際して必要なセッション鍵を生成するための情報を生成する。また、鍵処理装置200は、生成した情報を、暗号化装置100および同時通信に参加する他の鍵処理装置200に対して通信網3を介して伝送する。この鍵処理装置200は、任意の第三者が所有することが可能であり、また、鍵生成装置10の所有者や、暗号化装置100の所有者が所有することも可能である。
なお、暗号化装置100および鍵処理装置200は、パーソナルコンピュータ(Personal Computer:PC)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)であってもよい。また、暗号化装置100および鍵処理装置200は、ネットワークを介した通信機能を有する機器であれば、任意の装置であってもよい。例えば、これらの装置は、PDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、これらの装置は、契約者が持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。
なお、図1において、暗号化装置100および鍵処理装置200は、3台ずつしか記載されていないが、本実施形態に係る鍵共有システム1において、これらの装置の台数は、図1に示した例に限定されるわけではない。
<鍵生成装置の構成について>
次に、図2を参照しながら、本実施形態に係る鍵生成装置10の構成について、詳細に説明する。図2は、本実施形態に係る鍵生成装置の機能を説明するためのブロック図である。
本実施形態に係る鍵生成装置10は、例えば図2に示したように、メンバ情報管理部11と、パラメータ選択部13と、公開情報生成部15と、鍵生成部17と、情報提供部23と、通信制御部25と、記憶部27と、を主に備える。
メンバ情報管理部11は、例えば、CPU(Central Processing Unit)、ROM(Read Only Memory)、RAM(Random Access Memory)等により実現される。メンバ情報管理部11は、本実施形態に係る鍵生成装置10において公開鍵および秘密鍵からなるメンバ用の個人鍵を生成したメンバに関する情報を管理する。これらのメンバ情報は、例えば後述する記憶部27に記録されている。
パラメータ選択部13は、例えば、CPU、ROM、RAM等により実現されるものであり、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する。続いて、パラメータ選択部13は、パラメータP∈と、パラメータs∈ を選択し、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H、H、H、Hの4種類のハッシュ関数を選択する。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
:{0,1} → G
:G → {0,1}|q|
:{0,1}|q| → Z
:G → {0,1}|q|
ここで、上述の{0,1}|q|という記載は、0と1からなるqビットの大きさのデータを意味する。本実施形態に係る鍵共有システム1が必要としているセキュリティレベルに応じてqの大きさを適宜設定することで、セキュリティレベルを変更することが可能である。
パラメータ選択部13は、これらのパラメータをシステムパラメータとして記憶部27に記録する。また、これらの選択されたパラメータは、公開情報生成部15および鍵生成部17に伝送される。
公開情報生成部15は、例えば、CPU、ROM、RAM等により実現されるものであり、パラメータ選択部13が選択した各種のパラメータやハッシュ関数の中から、公開情報(公開システムパラメータ)として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部15は、<e,G,G,q,P,Ppub,H,H,H,H>の組み合わせを公開情報として生成し、記憶部27に格納する。
鍵生成部17は、例えば、CPU、ROM、RAM等により実現される。鍵生成部17は、本実施形態に係る鍵共有システム1を利用するメンバから、公開鍵および秘密鍵からなるメンバ用の個人鍵の生成を要請された場合に、これらの個人鍵を生成する。鍵生成部17は、個人鍵の生成に際して、メンバ情報管理部11から、要請のあったメンバに関するID(例えば、ユーザIDやメールアドレス等)を取得し、取得したIDとパラメータ選択部13が選択したシステムパラメータとに基づいて、鍵の生成を行う。この鍵生成部17は、例えば図2に示したように、公開鍵生成部19と、秘密鍵生成部21を更に備える。
公開鍵生成部19は、例えば、CPU、ROM、RAM等により実現される。公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(ID)と、システムパラメータであるハッシュ関数Hとを用いて、以下の式11に基づいてメンバiの公開鍵Qを生成する。
公開鍵Q = H(ID) ・・・(式11)
公開鍵生成部19は、生成したメンバUの公開鍵Qを、該当するメンバUのメンバ情報に関連づけて、記憶部27に格納することが可能である。
秘密鍵生成部21は、例えば、CPU、ROM、RAM等により実現される。秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qと、マスター秘密鍵sとを用いて、以下の式13に基づいてメンバUの秘密鍵Sを生成する。
秘密鍵S = sQ ・・・(式13)
秘密鍵生成部21は、生成したメンバUの秘密鍵Sを、該当するメンバUのメンバ情報に関連づけて、記憶部27に格納することが可能である。
なお、メンバの公開鍵は、式11からも明らかなように、公開情報と、メンバUのIDから生成されるものである。本実施形態に係る鍵共有システム1では、メンバUのIDは、ユーザIDやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバUのIDとを用いて、公開鍵を算出することが可能である。他方、メンバUの秘密鍵は、式13からも明らかなように、鍵生成装置10において秘匿されるマスター秘密鍵を用いて算出される値であるため、鍵生成装置10のみが生成可能である。
情報提供部23は、例えば、CPU、ROM、RAM等により実現される。情報提供部23は、本実施形態に係る暗号化装置100や鍵処理装置200の要請に応じて、公開情報やメンバの公開鍵等の各種の情報をこれらの装置に提供する。情報提供部23は、これらの情報の提供に際して、記憶部27に格納されている各種のデータを参照することが可能である。
通信制御部25は、例えば、CPU、ROM、RAM、通信装置等により実現されるものであり、鍵生成装置10と、暗号化装置100や鍵処理装置200との間で行われる通信の制御を行う。
記憶部27は、メンバ情報管理部11が管理しているメンバ情報や、パラメータ選択部13により選択されたシステムパラメータや、公開情報生成部15が生成した公開情報や、鍵生成部17が生成した個人鍵等が格納されている。また、記憶部27には、本実施形態に係る鍵生成装置10が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部27は、メンバ情報管理部11、パラメータ選択部13、公開情報生成部15、鍵生成部17、情報提供部23、通信制御部25等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る鍵生成装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る鍵生成装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<暗号化装置の構成について>
続いて、図3を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。図3は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
本実施形態に係る暗号化装置100は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置100は、メンバUが所持しているものとする。本実施形態に係る暗号化装置100は、例えば図3に示したように、個人鍵取得部101と、グループ鍵生成部103と、通信制御部117と、記憶部119と、を主に備える。
個人鍵取得部101は、例えば、CPU、ROM、RAM等により実現される。個人鍵取得部101は、後述する通信制御部117を介して、鍵生成装置10から、当該暗号化装置100を使用するメンバに予め割り当てられた個人鍵(すなわち、公開鍵および秘密鍵)を取得する。また、個人鍵取得部101は、個人鍵の取得にあわせて、鍵生成装置10から公開情報(公開されているシステムパラメータ)を取得することも可能である。個人鍵取得部101は、取得した個人鍵や公開情報を、例えば後述する記憶部119に格納する。
グループ鍵生成部103は、例えば、CPU、ROM、RAM等により実現される。グループ鍵生成部103は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、鍵処理装置200から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を鍵処理装置200とともに生成する。このグループ鍵生成部103は、例えば図3に示したように、パラメータ選択部105と、メンバ情報生成部107と、セッション情報生成部109と、を更に備える。また、グループ鍵生成部103は、セッション情報取得部111と、メンバ検証部113と、セッション鍵生成部115と、を更に備える。
パラメータ選択部105は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部105は、パラメータδ∈ およびパラメータk と、同時通信における一時鍵として利用される所定のビット数を有するパラメータrと、を選択する。パラメータ選択部105は、選択したこれらのパラメータを、メンバ情報生成部107およびセッション情報生成部109に伝送する。
なお、パラメータ選択部105は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部107は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部107は、同時通信に参加するメンバU(i=2,・・・,n)の公開鍵Qと、自身が保持する秘密鍵Sと、パラメータ選択部105により選択された一時鍵rと、公開情報と、を用いて、以下の式101に示すメンバ情報Pを生成する。このメンバ情報Pは、n−1人の参加メンバそれぞれに対して生成される。
Figure 2010047356
ここで、上記式101において、Hは、公開されているハッシュ関数の一つであり、iは、2〜nの整数である。
また、メンバ情報生成部107は、生成したP〜Pのメンバ情報と、同時通信に参加するn−1人それぞれのメンバとの対応関係を明らかにするために、P〜Pのメンバ情報がどのような順番で並んでいるかを表す情報Lを、あわせて生成する。なお、説明の簡潔性のため、Lは一定のルールに従って作られるものとし,n人のメンバいずれが作成しても同一のデータになるものとする。
メンバ情報生成部107は、生成したメンバ情報Pと、メンバ情報とメンバとの対応関係を表す情報Lと、を、セッション情報生成部109へと伝送する。
なお、メンバ情報生成部107は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部109は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部109は、パラメータ選択部105から伝送された各種パラメータと、メンバ情報生成部107から伝送されたメンバ情報Pおよび対応関係に関する情報Lと、公開情報と、に基づいて、メンバUのセッション情報Dを生成する。より詳細には、セッション情報生成部109は、まず、下記式102で表される値Xと、下記式103で表される値Yとを算出する。その後、セッション情報生成部109は、算出した値等を用いて、下記式104で表されるセッション情報Dを生成する。このセッション情報は、暗号化装置100と複数の鍵処理装置200との間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
Figure 2010047356
なお、上記式102および式103において、「a||b」という表記は、aというデータにbというデータのビットを連結することを表している。また、上記式102および式103におけるHは、公開されているハッシュ関数の一つである。
本実施形態に係るセッション情報生成部109は、上記式103に示したように、メンバUの秘密鍵Sを用いてセッション情報を生成する。従って、メンバUのセッション情報を偽装しようとしても、メンバU以外の者は、セッション情報Dを生成することができない。
セッション情報生成部109は、通信制御部117を介して、生成したセッション情報Dを、メンバU〜メンバUが有する鍵処理装置200へと同報送信する。また、セッション情報生成部109は、生成したセッション情報Dを、メンバ検証部113に送信する。セッション情報生成部109は、生成したセッション情報Dを、生成した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報取得部111は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部111は、通信制御部117を介して、全ての鍵処理装置200それぞれから伝送されたセッション情報Dを取得する。このセッション情報Dは、下記式201で表されるものである。
Figure 2010047356
セッション情報取得部111は、取得した全てのセッション情報Dを、後述するメンバ検証部113へと伝送する。また、セッション情報取得部111は、取得したセッション情報Dを、取得した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部113は、例えば、CPU、ROM、RAM等により実現されるものである。メンバ検証部113は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部113は、自身で生成したセッション情報Dと、全ての鍵処理装置200から取得したセッション情報Dとに基づいて、まず、下記式105で表される検証パラメータzを算出する。続いて、メンバ検証部113は、下記式106の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部113は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部115に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部113は、セッション情報Dを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
Figure 2010047356
なお、本実施形態に係るメンバ検証部113は、基盤技術とは異なり、検証パラメータzを算出する際に、全てのセッション情報D(i=1,・・・,n)について、セッション情報の一部であるXについての和をとる。これにより、本実施形態に係る暗号化装置100では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部113は、基盤技術とは異なり、各メンバの公開鍵Qを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Sを用いる必要があり、別のメンバUがメンバUに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
メンバ検証部113は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータzを、セッション鍵生成部115へと伝送する。また、メンバ検証部113は、算出した検証パラメータzを、算出した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部115は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部115は、メンバ検証部113による同時通信の参加メンバの検証が成功した場合に、メンバ検証部113から伝送された検証パラメータzを用いて、同時通信にて用いられるセッション鍵Kを生成する。セッション鍵Kの生成は、以下の式107により行われる。ここで、下記式107におけるHは、公開されているハッシュ関数の一つである。
Figure 2010047356
このようにして生成されるセッション鍵Kを用いることで、暗号化装置100および複数の鍵処理装置200の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部115は、生成したセッション鍵Kを、生成した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
通信制御部117は、例えば、CPU、ROM、RAM、通信装置等から構成されており、暗号化装置100と鍵生成装置10や鍵処理装置200との間で行われる通信の制御を行う。
記憶部119は、鍵生成装置10により公開されている公開情報や、鍵生成装置10から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部119には、本実施形態に係る暗号化装置100が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部119は、個人鍵取得部101、グループ鍵生成部103および当該グループ鍵生成部103に含まれる各処理部、通信制御部117等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る暗号化装置100の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<鍵処理装置の構成について>
次に、図4を参照しながら、本実施形態に係る鍵処理装置200の構成について、詳細に説明する。図4は、本実施形態に係る鍵処理装置の機能を説明するためのブロック図である。
本実施形態に係る鍵処理装置200は、同時通信のイニシエータである暗号化装置100の使用者(メンバU)以外のメンバU(i=2,・・・,n)が使用する装置である。本実施形態に係る鍵処理装置200は、例えば図4に示したように、個人鍵取得部201と、グループ鍵生成部203と、通信制御部217と、記憶部219と、を主に備える。
個人鍵取得部201は、例えば、CPU、ROM、RAM等により実現される。個人鍵取得部201は、後述する通信制御部217を介して、鍵生成装置10から、当該鍵処理装置200を使用するメンバに予め割り当てられた個人鍵(すなわち、公開鍵および秘密鍵)を取得する。また、個人鍵取得部201は、個人鍵の取得にあわせて、鍵生成装置10から公開情報(公開されているシステムパラメータ)を取得することも可能である。個人鍵取得部201は、取得した個人鍵や公開情報を、例えば後述する記憶部219に格納する。
グループ鍵生成部203は、例えば、CPU、ROM、RAM等により実現される。グループ鍵生成部203は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、暗号化装置100および他の鍵処理装置200から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を上述の装置とともに生成する。このグループ鍵生成部203は、例えば図4に示したように、セッション情報取得部205と、一時鍵算出部207と、パラメータ選択部209と、セッション情報生成部211と、メンバ検証部213と、セッション鍵生成部215と、を更に備える。
セッション情報取得部205は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部205は、暗号化装置100から伝送されたセッション情報Dと、同時通信に参加する他の鍵処理装置200から伝送された、暗号化装置100から伝送されるセッション情報Dとは異なるセッション情報Dと、を取得する。より詳細には、セッション情報取得部205は、後述する通信制御部217を介して、イニシエータである暗号化装置100から伝送される、下記式104で表されるセッション情報Dを取得する。同様に、セッション情報取得部205は、同時通信に参加する他の鍵処理装置200から、下記式201で表されるセッション情報Dを取得する。
Figure 2010047356
セッション情報取得部205は、暗号化装置100から伝送されたセッション情報Dを、後述する一時鍵算出部207およびセッション情報生成部211に伝送する。また、セッション情報取得部205は、他の鍵処理装置200から伝送されたセッション情報Dを、後述するメンバ検証部213に伝送する。また、セッション情報取得部205は、取得したこれらのセッション情報を、取得した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
一時鍵算出部207は、例えば、CPU、ROM、RAM等により実現される。一時鍵算出部207は、セッション情報取得部205から伝送されたセッション情報Dに基づいて、同時通信において一時的に利用される一時鍵を算出する。一時鍵算出部207は、まず、セッション情報Dに含まれる、メンバ情報Pの対応付けに関する情報Lを参照して、自装置に対応するメンバ情報Pを検出する。次に、一時鍵算出部207は、自装置に対応するメンバ情報Pと、自身の個人鍵と、暗号化装置100を使用しているメンバUの公開鍵と、公開情報とを用いて、以下の式202により一時鍵r’を算出する。ここで、下記式202におけるHは、公開されているハッシュ関数の一つである。
Figure 2010047356
ここで、メンバUにより正しくセッション鍵Dが生成されていれば、メンバUが有する鍵処理装置200で算出された一時鍵r’は、メンバUが有する暗号化装置で選択された一時鍵rと等しくなる。すなわち、上記式202において、右側に位置する等号が成立して、結果的にr’=rが成立する。
一時鍵算出部207は、算出した一時鍵r’を、後述するセッション情報生成部211に伝送する。なお、以下の説明では、r’=rが成立したものとして、r’をrと表記する。また、一時鍵算出部207は、算出した一時鍵を、算出した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
パラメータ選択部209は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部209は、自装置においてセッション情報Dを算出する際に用いられるパラメータk を選択する。パラメータ選択部209は、選択したパラメータkを、セッション情報生成部211に伝送する。
なお、パラメータ選択部209は、選択したパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部211は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部211は、パラメータkと、自身が保持するメンバUの秘密鍵と、公開情報と、暗号化装置100から伝送されたセッション情報Dと、を用いて、セッション情報Dを上述の式201に基づいて生成する。生成されたセッション情報Diは、通信制御部217を介して、暗号化装置100、および、同時通信を行う他の鍵処理装置200へ同報送信される。
Figure 2010047356
本実施形態に係るセッション情報生成部211は、上記式201に示したように、メンバUの秘密鍵Sを用いてセッション情報を生成する。従って、メンバUのセッション情報を偽装しようとしても、秘密鍵Sを保持しているメンバU以外の者は、セッション情報Dを生成することができない。
メンバ検証部213は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部213は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部213は、自身で生成したセッション情報Dと、暗号化装置100から取得したセッション情報Dと、他の鍵処理装置200から取得したセッション情報Dとに基づき、まず、下記式203に示す検証パラメータzを算出する。続いて、メンバ検証部213は、下記式204の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部213は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部215に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部213は、取得したセッション情報Dを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
Figure 2010047356
なお、本実施形態に係るメンバ検証部213は、基盤技術とは異なり、検証パラメータzを算出する際に、全てのセッション情報D(i=1,・・・,n)について、セッション情報の一部であるXについての和をとる。これにより、本実施形態に係る鍵処理装置200では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部213は、基盤技術とは異なり、各メンバの公開鍵Qを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Sを用いる必要があり、別のメンバUがメンバUに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
メンバ検証部213は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータzを、セッション鍵生成部215へと伝送する。また、メンバ検証部213は、算出した検証パラメータzを、算出した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部215は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部215は、メンバ検証部213による同時通信の参加メンバの検証が成功した場合に、メンバ検証部213から伝送された検証パラメータzを用いて、同時通信にて用いられるセッション鍵Kを生成する。セッション鍵Kの生成は、以下の式205により行われる。ここで、下記式205におけるHは、公開されているハッシュ関数の一つである。
Figure 2010047356
このようにして生成されるセッション鍵Kを用いることで、鍵処理装置200および暗号化装置100の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部215は、生成したセッション鍵Kを、生成した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
通信制御部217は、例えば、CPU、ROM、RAM、通信装置等により実現される。通信制御部217は、鍵処理装置200と鍵生成装置10や暗号化装置100との間で行われる通信の制御を行う。また、通信制御部217は、鍵処理装置200と他の鍵処理装置200との間で行われる通信の制御を行うことも可能である。
記憶部219は、鍵生成装置10により公開されている公開情報や、鍵生成装置10から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部219には、本実施形態に係る鍵処理装置200が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部219は、個人鍵取得部201、グループ鍵生成部203および当該グループ鍵生成部203に含まれる各処理部、通信制御部217等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る鍵処理装置200の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る鍵処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
なお、上述の暗号化装置100が鍵処理装置200の機能を併せて有していても良く、鍵処理装置200が暗号化装置100の機能を併せて有していても良い。また、ある同時通信においては、鍵処理装置200がイニシエータ(つまり暗号化装置100)として本実施形態に係るプロトコルを開始しても良い。また、ある同時通信において、暗号化装置100が、その他の参加メンバが利用する機器として、鍵処理装置200の機能を果たしても良い。
<鍵生成処理について>
本実施形態に係る鍵共有システム1では、まず、センタが保持する鍵生成装置10が、本方法における各種のシステムパラメータ(すなわち、公開情報)と、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、本実施形態に係る鍵生成装置10が行う鍵生成処理について、図5を参照しながら、詳細に説明する。
まず、鍵処理装置10のパラメータ選択部13は、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する(ステップS11)。
続いて、パラメータ選択部13は、パラメータP∈と、パラメータs∈ を選択し(ステップS13)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H、H、H、Hの4種類のハッシュ関数を選択する(ステップS15)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
:{0,1} → G
:G → {0,1}|q|
:{0,1}|q| → Z
:G → {0,1}|q|
続いて、公開情報生成部15は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ(公開情報)として公開する(ステップS17)。公開されるシステムパラメータは、例えば、<e,G,G,q,P,Ppub,H,H,H,H>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(ID)を有するメンバUが、この鍵共有システム1に参加する際に、鍵生成部17は、以下の方法で、ユーザUの公開鍵Qと秘密鍵Sとを生成する(ステップS19)。
より詳細には、まず、公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(ID)と、システムパラメータであるハッシュ関数Hとを用いて、メンバUの公開鍵Qを生成する。
公開鍵Q = H(ID
次に、秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qと、マスター秘密鍵sとを用いて、メンバUの秘密鍵Sを生成する。
秘密鍵S = sQ
鍵生成装置10は、生成したユーザUの個人鍵(すなわち、公開鍵Qと秘密鍵S)を、該当するメンバUに伝送する。また、鍵生成装置10は、生成したメンバUの公開鍵Qを、公開してもよい。
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
<セッション鍵の生成方法について>
続いて、図6および図7を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図6および図7は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
本実施形態に係るセッション鍵の生成方法は、暗号化装置100が中心となって行う処理と、鍵処理装置200が中心となって行う処理と、暗号化装置100および鍵処理装置200がそれぞれ行うセッション鍵の生成処理と、の3つの処理を含む。以下、暗号化装置が中心となって行う処理を、Round1とも称する。また、鍵処理装置200が中心となって行う処理を、Round2とも称する。
なお、以下の説明では、1台の暗号化装置100と(n−1)台の鍵処理装置200との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、n人のメンバU,U,・・・,Uのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバUがイニシエータであるとする。
[Round1]
まず、イニシエータであるメンバUが有する暗号化装置100のパラメータ選択部105は、セッション鍵共有に用いられるパラメータであるパラメータδ∈と、パラメータk と、を選択する(ステップS101)。また、メンバUが有する情報処理装置は、パラメータr∈{0,1}|q|を選択する(ステップS101)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、暗号化装置100のメンバ情報生成部107は、同時通信に参加するメンバU〜Uに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報P(i=2,・・・,n)を生成する(ステップS103)。このメンバ情報Pは、上述の式101で表される値である。また、メンバ情報生成部107は、メンバ情報Pの生成にあわせて、メンバ情報とメンバとの対応関係を表す情報Lを生成する。
続いて、セッション情報生成部109は、公開情報と、選択したパラメータと、メンバUの秘密鍵と、を用いて、上述の式102および式103に示した値X、Yを算出する。また、X,Yの算出が終了すると、セッション情報生成部109は、上述の式104で表されるセッション情報Dを生成する(ステップS105)。
セッション情報Dの生成が終了すると、セッション情報生成部109は、通信制御部117を介して、生成したセッション情報Dを、全ての鍵処理装置200に対して同報送信する(ステップS107)。
[Round2]
セッション情報取得部205によりセッション情報Dを受信したメンバU〜Uが有する鍵処理装置200は、取得したセッション情報Dを、一時鍵算出部207に伝送する。一時鍵算出部207は、まず、セッション情報D中に含まれる情報Lを参照し、自身に対応するメンバ情報がP〜Pのどれなのかを判断する(ステップS109)。
続いて、一時鍵算出部207は、自身に対応するメンバ情報Pと、セッション情報Dと、イニシエータであるメンバUの公開鍵Qと、自身の秘密鍵Sを用いて、上述の式202に基づき一時鍵r’を算出する(ステップS111)。
ここで、メンバUにより正しくセッション鍵Dが生成されていれば、メンバU〜Uが有する鍵処理装置200で算出された一時鍵r’は、メンバUが有する暗号化装置100で選択された一時鍵rと等しくなる。すなわち、r’=rが成立する。
次に、パラメータ選択部209は、パラメータk を選択する(ステップS113)。その後、セッション情報生成部211は、パラメータkと、一時鍵r’と、公開情報と、自身の秘密鍵Sとを用いて、暗号化装置100および他のメンバUが有する鍵処理装置200へと伝送されるセッション情報Dを生成する(ステップS115)。このセッション情報Dの生成は、上述の式201に基づいて行われる。
セッション情報Dの生成が終了すると、メンバU〜Uが有する鍵処理装置200のセッション情報生成部211それぞれは、自身以外の全ての装置に対して、生成したセッション情報Dを同報送信する(ステップS117)。これにより、生成したセッション情報Dが、暗号化装置100および他の全ての鍵処理装置200に対して送信されることとなる。
[セッション鍵生成]
暗号化装置100のセッション情報取得部111は、メンバU〜Uが有する鍵処理装置200から伝送された全てのセッション情報Dを取得する。これにより、暗号化装置100は、自身が生成したセッション情報Dを含め、セッション情報D〜Dまで全n個のセッション情報を有することとなる。暗号化装置100のメンバ検証部113は、セッション情報D〜Dと、公開情報とを用いて、式105に示した検証パラメータzを算出する(ステップS119)。
同様に、メンバU〜Uが有する鍵処理装置200それぞれは、セッション情報Dと、自身以外のメンバU〜Uが有する鍵処理装置200から取得したセッション情報Dとを含め、セッション情報D〜Dまで全n個のセッション情報を有することとなる。それぞれのメンバU〜Uが有する鍵処理装置200のメンバ検証部213は、セッション情報D〜Dと、公開情報とを用いて、式203により検証パラメータzを算出する(ステップS121)。
続いて、暗号化装置100のメンバ検証部113は、算出した検証パラメータzを用いて演算を行い、上述の式106が成立するか否かを判定する(ステップS123)。同様に、それぞれのメンバU〜Uが有する鍵処理装置200のメンバ検証部213は、算出した検証パラメータzを用いて演算を行い、上述の式204が成立するか否かを判定する(ステップS125)。式106が成立した場合には、暗号化装置100は、セッション鍵Kの確立のために参加したn人のメンバが全て正当なメンバであると判断する。同様に、式204が成立した場合には、各鍵処理装置200は、セッション鍵Kの確立のために参加したn人のメンバが全て正当なメンバであると判断する。このように、式106および式204が成立するか否かを判断するステップS123およびステップS125は、メンバの正当性を検証しているステップであるといえる。
メンバUが有する暗号化装置100のセッション鍵生成部115は、式106が成立した場合にのみ、上述の式107に基づいて、セッション鍵Kを算出する(ステップS127)。同様に、それぞれのメンバU〜Uが有する鍵処理装置200のセッション鍵生成部215は、式204が成立した場合にのみ、上述の式205に基づいて、セッション鍵Kを算出する(ステップS129)。
このような手順により、同時通信で用いられるセッション鍵Kがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS131)。
このように、本実施形態に係るセッション鍵の生成方法では、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。仮にメンバUがプロトコルに参加していない状況が生じた場合、その他のメンバは、一時鍵rの値は知り得ても、メンバUの秘密鍵Sは知ることができない。そのため、本実施形態に係るセッション鍵の生成方法では、その他のメンバが、基盤技術における方式のように、Uの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
なお、本実施形態に係るセッション鍵の生成方法では、メンバUが送信する値として、メンバUの秘密鍵Sを用いた値(式103に示した値Y)を生成している。これにより、メンバUの公開鍵Qを用いたメンバの検証が可能となる。この際、検証される値には、kpubだけでなく、H(r||L)も含まれている。すなわち、何れかのメンバがrの値として他のメンバとは異なる値を使用した場合には、上述の検証において等号が成立しない。その結果、同時通信に参加するメンバは、セッション鍵が正しく共有できなかったことが把握できる。このように、本実施形態に係るセッション鍵の生成方法では、メンバへの成りすましを防止するだけでなく、ある特定のメンバを除外する行為を防止することも可能となる。
<セッション鍵の生成方法における計算量等について>
次に、図8を参照しながら、本実施形態に係るセッション鍵の生成方法における計算量等について検討する。図8は、本実施形態に係るセッション鍵生成処理について説明するための説明図である。
図8では、本実施形態に係るセッション鍵の生成方法と、基盤技術である非特許文献2に記載の方法とにおける計算量等を、比較しながら示している。図8において、「M Size」はメッセージ量を表し、「G−Mul」は、群G上における掛け算の回数を表し、「G−Mul」は、群G上における掛け算の回数を表す。また、図中の「n」は、メンバの数を表している。また、図中の「U」は、イニシエータの計算量を表しており、「U(each)」は、イニシエータ以外の(n−1)ユーザそれぞれに必要な計算量を表している。また、図中の「Total」は、n人全員のトータルの計算量を表している。
図8から明らかなように、本実施形態に係る方法は、非特許文献2に記載の方法と、ラウンド数、メッセージ量およびペアリングの回数については同様の負荷となっている。他方、群G上における掛け算の回数について、非特許文献2に記載の方法は、トータルで(n+2n+1)回必要であるのに対し、本実施形態に係る方法では、(8n−2)回だけでよくなっている。これは、非特許文献2に記載の方法では、計算量がメンバ数nの二乗に比例していくのに対し、本実施形態に係る方法では、メンバ数nに比例して大きくなることを示している。そのため、メンバ数nが大きくなればなるほど、本実施形態に係る方法の計算負荷は抑制されることを示している。同様に、群G上における掛け算の回数について、非特許文献2に記載の方法は、(2n−2)回必要であるのに対し、本実施形態に係る方法では、0回となっており、同様に計算負荷の削減が実現できたことを示している。
(第2の実施形態)
続いて、図9〜図11を参照しながら、本発明の第2の実施形態に係る鍵共有システムについて、詳細に説明する。図9は、本実施形態に係る暗号化装置100の構成を説明するためのブロック図であり、図10は、本実施形態に係る鍵処理装置200の構成を説明するためのブロック図である。また、図11は、本実施形態に係るセッション鍵生成処理を説明するための流れ図である。
なお、本実施形態に係る鍵共有システムでは、非特許文献3に記載の方法と同様にして、システム内の鍵生成装置10により、各種のシステムパラメータと、各メンバ用の個人鍵とが生成されているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Eおよび復号関数D、ならびに、デジタル署名方式の署名生成関数Sおよび署名検証関数Vが公開される。また、ユーザUが有する装置には、ユーザUの公開暗号化鍵e、秘密復号鍵d、秘密署名生成鍵s、公開署名検証鍵v等が保持されており、公開暗号化鍵eおよび公開署名検証鍵vは、各メンバU間で共有されているものとする。
<暗号化装置の構成について>
まず、図9を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。
本実施形態に係る暗号化装置100は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置100は、メンバUが所持しているものとする。本実施形態に係る暗号化装置100は、例えば図9に示したように、個人鍵取得部101と、グループ鍵生成部103と、通信制御部117と、記憶部119と、を主に備える。
ここで、本実施形態に係る個人鍵取得部101、通信制御部117および記憶部119は、本発明の第1の実施形態に係る各処理部と同様の構成を有し、同様の効果を奏するものであるため、以下では詳細な説明は省略する。
グループ鍵生成部103は、例えば、CPU、ROM、RAM等により実現される。グループ鍵生成部103は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、鍵処理装置200から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を鍵処理装置200とともに生成する。このグループ鍵生成部103は、例えば図9に示したように、パラメータ選択部121と、メンバ情報生成部123と、セッション情報生成部125と、を更に備える。また、グループ鍵生成部103は、セッション情報取得部127と、セッション鍵生成部129と、を更に備える。
パラメータ選択部121は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部121は、同時通信における一時鍵として利用される所定のビット数を有するパラメータNを選択する。パラメータ選択部121は、選択したパラメータを、セッション情報生成部125に伝送する。
なお、パラメータ選択部121は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部123は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部123は、同時通信に参加するメンバU(i=2,・・・,n)に関する情報が記載されたメンバ情報Uを生成する。このメンバ情報Uを参照することで、暗号化装置200は、同時通信に参加するメンバUを特定することが可能となる。メンバ情報生成部123は、生成したメンバ情報Uを、セッション情報生成部125へと伝送する。
なお、メンバ情報生成部123は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部125は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部125は、パラメータ選択部121から伝送された各種パラメータと、メンバ情報生成部123から伝送されたメンバ情報Uと、公開情報と、に基づいて、署名が付加されたセッション情報Dを生成する。
より詳細には、セッション情報生成部125は、まず、セッション情報Dとして以下の式111で表されるメッセージを生成する。
Figure 2010047356
上記式111から明らかなように、セッション情報Dは、ユーザUの公開暗号化鍵eを用いて、パラメータ選択部121が選択したパラメータNを暗号化したものの集合と、Nそのものを公開情報であるハッシュ関数hを用いて変換したものとを含む。
その後、セッション情報生成部125は、生成したセッション情報Dに対して、公開情報である署名生成関数Sと、ユーザU自身の秘密署名生成鍵sとを用いて、以下の式112で表される署名を付加する。
Figure 2010047356
また、セッション情報生成部125は、セッション情報Dと、セッション情報Dに付加する署名と、を生成すると、通信制御部117に、セッション情報Dと、セッション情報Dに付加する署名と、メンバ情報Uと、を同報送信するように要請する。また、セッション情報生成部125は、各メンバUに送信するための暗号化されたパラメータNをそれぞれ生成すると、通信制御部117に、これら暗号化されたパラメータNの送信を要請する。
また、セッション情報生成部125は、セッション情報の生成に利用したパラメータN1を、セッション鍵生成部129に伝送する。なお、パラメータNは、パラメータ選択部121から直接セッション鍵生成部129に伝送されてもよいし、セッション鍵生成部129が、記憶部119等に一時的に格納されているパラメータNを取得してもよい。
セッション情報取得部127は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部127は、通信制御部117を介して、全ての鍵処理装置200それぞれから伝送されたセッション情報Dを取得する。このセッション情報Dは、それぞれの鍵処理装置200を所持しているユーザを特定するための情報であるユーザ情報Uと、各鍵処理装置200が選択したパラメータNとを含む。
セッション情報取得部127は、取得した全てのセッション情報Dを、セッション鍵生成部129へと伝送する。また、セッション情報取得部127は、取得したセッション情報Dを、取得した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部129は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部129は、セッション情報生成部125から伝送されたパラメータNと、セッション情報取得部127から伝送されたパラメータNと、公開情報とを用いて、同時通信で用いられるセッション鍵Kを生成する。
より詳細には、セッション鍵生成部129は、公開されているハッシュ関数hと、取得したパラメータN〜Nと、を利用して、以下の式113に基づいてセッション鍵Kを生成する。
Figure 2010047356
このようにして生成されるセッション鍵Kを用いることで、暗号化装置100および複数の鍵処理装置200の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部129は、生成したセッション鍵Kを、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
以上、本実施形態に係る暗号化装置100の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<鍵処理装置の構成について>
次に、図10を参照しながら、本実施形態に係る鍵処理装置200の構成について、詳細に説明する。
本実施形態に係る鍵処理装置200は、同時通信のイニシエータである暗号化装置100の使用者(メンバU)以外のメンバU(i=2,・・・,n)が使用する装置である。本実施形態に係る鍵処理装置200は、例えば図10に示したように、個人鍵取得部201と、グループ鍵生成部203と、通信制御部217と、記憶部219と、を主に備える。
ここで、本実施形態に係る個人鍵取得部201、通信制御部217および記憶部219は、本発明の第1の実施形態に係る各処理部と同様の構成を有し、同様の効果を奏するものであるため、以下では詳細な説明は省略する。
グループ鍵生成部203は、例えば、CPU、ROM、RAM等により実現される。グループ鍵生成部203は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、暗号化装置100および他の鍵処理装置200から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を上述の装置とともに生成する。このグループ鍵生成部203は、例えば図10に示したように、セッション情報取得部221と、一時鍵算出部223と、メンバ検証部225と、セッション情報生成部227と、パラメータ選択部229と、セッション鍵生成部231と、を更に備える。
セッション情報取得部221は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部221は、暗号化装置100から伝送されたセッション情報Dを含む各種情報と、同時通信に参加する他の鍵処理装置200から伝送された、暗号化装置100から伝送されるセッション情報Dとは異なるセッション情報Dと、を取得する。より詳細には、セッション情報取得部221は、通信制御部217を介して、暗号化装置100から送信された署名の付加されたセッション情報Dおよび暗号化されたパラメータNを取得する。また、セッション情報取得部221が取得するセッション情報Dは、他の鍵処理装置200を所持しているユーザを特定するための情報であるユーザ情報Uと、各鍵処理装置200が選択したパラメータNとを含む。
セッション情報取得部221は、暗号化されたパラメータNを受信すると、この暗号化されたパラメータNを、一時鍵算出部223に伝送する。また、セッション情報取得部221は、暗号化装置100から同報送信された、署名の付加されたセッション情報Dを、メンバ検証部225に伝送する。
また、セッション情報取得部221は、他の鍵処理装置200それぞれから同報送信されたセッション情報Dを取得すると、取得した各セッション情報Dを、セッション鍵生成部231に伝送する。
なお、セッション情報取得部221は、取得したこれらのセッション情報等を、取得した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
一時鍵算出部223は、例えば、CPU、ROM、RAM等により実現される。一時鍵算出部223は、セッション情報取得部221から暗号化されたパラメータNに関する情報が伝送されると、この暗号化された情報を復号してパラメータNの値を取得する。暗号化された情報は、鍵処理装置200を有するユーザUの公開暗号化鍵eを用いて暗号化されているため、各鍵処理装置200は、保持している秘密復号鍵dを用いて暗号文の復号を行うことができる。ここで、パラメータNは、同時通信において一時的に利用される一時鍵と考えることができる。一時鍵算出部223は、復号の結果得られたパラメータNを、メンバ検証部225に伝送する。
また、一時鍵算出部223は、算出した一時鍵であるパラメータNを、算出した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部225は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部225は、セッション情報取得部221から伝送されたデジタル署名(暗号化装置100から同報送信されたセッション情報Dに付加されていたもの)の検証を行う。このデジタル署名は、暗号化装置100を保持しているイニシエータUの公開署名検証鍵vを用いて行うことが可能である。この検証処理により、イニシエータUが送信したデジタル署名が、正当なユーザUのデジタル署名であることを確認することができる。更に、メンバ検証部225は、一時鍵算出部223から伝送されたパラメータNと公開されているハッシュ関数hとを用いてh(N)を独自に算出する。その後、メンバ検証部225は、算出したh(N)と、セッション情報取得部221から伝送されたセッション情報Dに含まれるh(N)とが同値であるかを検証する。
算出した値とセッション情報Dに含まれている値とが一致し、かつ、デジタル署名が正規のものであった場合には、メンバ検証部225は、取得したセッション情報が正規のメンバ(すなわち、正規のイニシエータ)から送信されたものであると判断する。この場合、メンバ検証部225は、セッション情報生成部227に、正規のメンバからセッション情報Dが送信された旨を表す検証結果を伝送する。
また、デジタル署名が正規のものでなかった場合、または、算出したh(N)がセッション情報Dに含まれている値と一致しなかった場合には、メンバ検証部225は、取得したセッション情報Dは正規のメンバにより送信されたものではないと判断する。その結果、鍵処理装置200は、セッション鍵の生成処理を終了する。
セッション情報生成部227は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部227は、メンバ検証部225から、取得したセッション情報の検証に成功した旨が通知されると、パラメータ選択部229にパラメータNの選択を要請する。また、パラメータ選択部229からパラメータNが通知されると、セッション情報生成部227は、通信制御部217を介して、鍵処理装置200を保持するユーザUを特定するユーザ情報Uと、選択したパラメータNとを、他のメンバに対して同報送信する。このユーザ情報UおよびパラメータNは、ユーザUが有する鍵処理装置200から送信されるセッション情報Dである。ユーザ情報UおよびパラメータNを送信すべきメンバの特定は、暗号化装置100から送信されたメンバ情報Uを参照することで行われる。
セッション情報Dの送信が終了すると、セッション情報生成部227は、パラメータ選択部229により選択されたパラメータNと、一時鍵算出部223により算出されたパラメータNとを、セッション鍵生成部231に伝送する。なお、パラメータNのセッション鍵生成部231への伝送は、後述するパラメータ選択部229により行われてもよい。また、パラメータNのセッション鍵生成部231への伝送は、一時鍵算出部223により行われてもよい。
パラメータ選択部229は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部229は、セッション情報生成部227の要請を受けて、セッション情報Dの一部として利用される所定のビット数を有するパラメータNを選択する。パラメータ選択部229は、選択したパラメータを、セッション情報生成部227に伝送する。
なお、パラメータ選択部229は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部231は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部231は、パラメータNおよびNと、他の鍵処理装置200から送信されたパラメータNと、公開情報とを用いて、同時通信で用いられるセッション鍵Kを生成する。
より詳細には、セッション鍵生成部231は、公開されているハッシュ関数hと、取得したパラメータN〜Nと、を利用して、以下の式211に基づいてセッション鍵Kを生成する。
Figure 2010047356
このようにして生成されるセッション鍵Kを用いることで、鍵処理装置200は、暗号化装置100および他の鍵処理装置200の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部231は、生成したセッション鍵Kを、生成した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
以上、本実施形態に係る鍵処理装置200の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る鍵処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
なお、上述の暗号化装置100が鍵処理装置200の機能を併せて有していても良く、鍵処理装置200が暗号化装置100の機能を併せて有していても良い。また、ある同時通信においては、鍵処理装置200がイニシエータ(つまり暗号化装置100)として本実施形態に係るプロトコルを開始しても良い。また、ある同時通信において、暗号化装置100が、その他の参加メンバが利用する機器として、鍵処理装置200の機能を果たしても良い。
<セッション鍵の生成方法について>
続いて、図11を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図11は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
なお、以下の説明では、1台の暗号化装置100と(n−1)台の鍵処理装置200との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、n人のメンバU,U,・・・,Uのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバUがイニシエータであるとする。
まず、イニシエータであるメンバUが有する暗号化装置100のパラメータ選択部121は、一時的な鍵として利用されるパラメータNを選択し(ステップS201)、セッション情報生成部125に伝送する。
次に、暗号化装置100のメンバ情報生成部123は、同時通信に参加するメンバU(i=2,・・・,n)に関する情報が記載されたメンバ情報Uを生成する(ステップS203)。メンバ情報生成部123は、メンバ情報Uの生成が終了すると、生成したメンバ情報Uをセッション情報生成部125に伝送する。
セッション情報生成部125は、メンバ情報Uを参照しながら、ユーザUの公開暗号化鍵eを用いて、各メンバUに対し暗号化されたパラメータN(すなわち、E(e,N))を生成する。セッション情報生成部125は、パラメータ選択部121から伝送されたパラメータと、メンバ情報生成部123から伝送されたメンバ情報Uと、公開情報と、に基づいて、署名が付加されたセッション情報Dを生成する(ステップS205)。この署名が付加されたセッション情報Dの生成は、上述の式111および式112に基づいて行われる。
続いて、セッション情報生成部125は、メンバ情報Uおよび署名の付加されたセッション情報Dを、通信制御部117を介して、鍵処理装置200に同報送信する(ステップS207)。
その後、セッション情報生成部125は、暗号化されたパラメータNを、通信制御部117を介して、各鍵処理装置200に送信する(ステップS209)。
セッション情報取得部221によりセッション情報Dおよび暗号化されたパラメータNを受信したメンバU〜Uが有する鍵処理装置200は、まず、取得したメッセージ(セッション情報D)の検証を行う(ステップS211)。このメッセージの検証は、一時鍵算出部223により算出されたパラメータNと、セッション情報取得部221が取得した署名が付加されたセッション情報Dとを利用して、メンバ検証部225により行われる。
メンバ検証部225による検証処理の結果、メッセージが正規のものであると確認されなかった場合には、鍵処理装置200は、セッション鍵の生成処理を中止する。他方、メンバ検証部225による検証処理の結果、メッセージが正規のものであると確認された場合には、セッション情報生成部227は、パラメータ選択部229にパラメータNの選択を要請する。その結果、パラメータ選択部229は、パラメータNを無作為に選択する(ステップS213)。パラメータ選択部229は、選択したパラメータNを、セッション情報生成部227に通知する。
その後、セッション情報生成部227は、通信制御部217を介して、鍵処理装置200を保持するユーザUを特定するユーザ情報Uと、選択したパラメータNとを、暗号化装置100を含む他のメンバに対して同報送信する(ステップS215)。
暗号化装置100および鍵処理装置200のセッション情報取得部は、他の鍵処理装置200から送信されたパラメータN等を取得する(ステップS217)。これにより、(n−1)台の全ての鍵処理装置200から、ユーザ情報UおよびパラメータNが同報送信されることとなり、N〜Nまでのn個のパラメータが揃うこととなる。
その後、暗号化装置100および鍵処理装置200のセッション鍵生成部129は、N〜Nのn個のパラメータを用いて、セッション鍵Kを算出する(ステップS219)。このような手順により、同時通信で用いられるセッション鍵Kがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS221)。
このように、本実施形態に係るセッション鍵の生成方法では、イニシエータUの有する暗号化装置100が選択したパラメータNに値して、イニシエータUが有する秘密署名生成鍵を用いてデジタル署名を付加する。鍵処理装置200では、イニシエータUから伝送されたメッセージの検証時に、公開署名検証鍵を用いてイニシエータUから伝送されたセッション情報Dの検証を行う。これにより、イニシエータが特定のメンバにだけ異なるパラメータNの値を送信することを防止することができる。
(第3の実施形態)
続いて、図12〜図16を参照しながら、本発明の第3の実施形態に係る鍵共有システムについて、詳細に説明する。
<鍵共有システムについて>
まず、図12を参照しながら、本実施形態に係る鍵共有システムについて、詳細に説明する。図12は、本実施形態に係る鍵共有システムについて説明するための説明図である。
本実施形態に係る鍵共有システム1は、例えば図12に示したように、鍵生成装置10と、複数台の暗号化装置100A、100B、100C、100D・・・と、を主に備える。これらの装置は、通信網3を介して、相互に接続されている。
通信網3は、鍵生成装置10および暗号化装置100それぞれの間を双方向通信又は一方向通信可能に接続する通信回線網である。この通信網3については、本発明の第1の実施形態に係る通信網3と同様であるため、詳細な説明は省略する。
鍵生成装置10は、暗号化装置100それぞれに固有の公開鍵と秘密鍵とを生成し、公開鍵を公開するとともに、各装置に対して、安全な通信路を介して、それぞれの公開鍵および秘密鍵を配信する。また、鍵生成装置10は、上述の公開鍵および秘密鍵に加えて、暗号化装置100それぞれに固有の署名生成鍵および署名検証鍵を生成し、各装置に対して、安全な通信路を介して、それぞれの署名生成鍵および署名検証鍵を配信する。さらに、鍵生成装置10は、本実施形態に係る鍵共有システム1で用いられ公開することが可能なパラメータを、システムパラメータとして公開する。なお、この鍵生成装置10は、公開鍵および秘密鍵の生成・管理を行うセンタ等が所有することが可能である。
暗号化装置100は、上述の公開鍵・秘密鍵および署名生成鍵および署名検証鍵、ならびに、公開されているシステムパラメータ等を用いて、複数の暗号化装置100間で行われる同時通信に要するセッション鍵を生成するための情報を暗号化する。また、暗号化装置100は、暗号化したセッション鍵を生成するための情報を、通信網3を介して他の暗号化装置100へと伝送する。これにより、各暗号化装置100は、同時通信に際して必要なセッション鍵を共有することができる。この暗号化装置100は、任意の第三者が所有することが可能であり、また、鍵生成装置10の所有者が所有することも可能である。
なお、暗号化装置100は、パーソナルコンピュータ(Personal Computer:PC)等のコンピュータ装置(ノート型、デスクトップ型を問わない。)であってもよい。また、暗号化装置100は、ネットワークを介した通信機能を有する機器であれば、任意の装置であってもよい。例えば、これらの装置は、PDA(Personal Digital Assistant)、家庭用ゲーム機、DVD/HDDレコーダ、テレビジョン受像器等の情報家電、テレビジョン放送用のチューナやデコーダなどで構成することもできる。また、暗号化装置は、契約者が持ち運びできるポータブルデバイス(Portabale Device)、例えば、携帯型ゲーム機、携帯電話、携帯型映像/音声プレーヤ、PDA、PHSなどであってもよい。
なお、図12において、暗号化装置100は、4台しか記載されていないが、本実施形態に係る鍵共有システム1において、暗号化装置の台数は、図12に示した例に限定されるわけではない。
<鍵生成装置の構成について>
次に、図13を参照しながら、本実施形態に係る鍵生成装置10の構成について、詳細に説明する。本実施形態に係る鍵生成装置10は、例えば図13に示したように、メンバ情報管理部11と、パラメータ選択部13と、公開情報生成部15と、鍵生成部17と、情報提供部23と、通信制御部25と、記憶部27と、を主に備える。
メンバ情報管理部11は、例えば、CPU、ROM、RAM等により実現される。メンバ情報管理部11は、本実施形態に係る鍵生成装置10において公開鍵および秘密鍵からなるメンバ用の個人鍵を生成したメンバに関する情報を管理する。これらのメンバ情報は、例えば記憶部27に記録されている。
パラメータ選択部13は、例えば、CPU、ROM、RAM等により実現されるものであり、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する。続いて、パラメータ選択部13は、パラメータP∈と、パラメータs∈ を選択し、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
また、パラメータ選択部13は、以下の4種類のハッシュ関数H、H、H、Hを選択する。
:{0,1} → G
:G → {0,1}
:{0,1} → {0,1}
:Z → {0,1}
ここで、ハッシュ関数Hにおけるtは、ハッシュ関数の出力長であり、例えば、t=160(すなわち、出力長160bit)などの値が設定される。
公開情報生成部15は、例えば、CPU、ROM、RAM等により実現されるものであり、パラメータ選択部13が選択した各種のパラメータやハッシュ関数の中から、公開情報(公開システムパラメータ)として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部15は、<e,G,G,q,P,Ppub,H,H,H,H>の組み合わせを公開情報として生成し、記憶部27に格納する。
鍵生成部17は、例えば、CPU、ROM、RAM等により実現される。鍵生成部17は、本実施形態に係る鍵共有システム1を利用するメンバから、公開鍵および秘密鍵からなるメンバ用の個人鍵の生成を要請された場合に、これらの個人鍵を生成する。また、鍵生成部17は、個人鍵の生成にあわせて、メンバがデジタル署名の付加およびデジタル署名の検証に利用する署名鍵を生成する。鍵生成部17は、個人鍵および署名鍵の生成に際して、メンバ情報管理部11から、要請のあったメンバに関するID(例えば、ユーザIDやメールアドレス等)を取得し、取得したIDとパラメータ選択部13が選択したシステムパラメータとに基づいて、鍵の生成を行う。この鍵生成部17は、例えば図13に示したように、公開鍵生成部19と、秘密鍵生成部21と、署名鍵生成部22と、を更に備える。
公開鍵生成部19は、例えば、CPU、ROM、RAM等により実現される。公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(ID)と、システムパラメータであるハッシュ関数Hとを用いて、以下の式21に基づいてメンバiの公開鍵Qを生成する。
公開鍵Q = H(ID) ・・・(式21)
公開鍵生成部19は、生成したメンバUの公開鍵Qを、該当するメンバUのメンバ情報に関連づけて、記憶部27に格納することが可能である。
秘密鍵生成部21は、例えば、CPU、ROM、RAM等により実現される。秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qと、マスター秘密鍵sとを用いて、以下の式23に基づいてメンバUの秘密鍵Sを生成する。
秘密鍵S = sQ ・・・(式23)
秘密鍵生成部21は、生成したメンバUの秘密鍵Sを、該当するメンバUのメンバ情報に関連づけて、記憶部27に格納することが可能である。
なお、メンバの公開鍵は、式21からも明らかなように、公開情報と、メンバUのIDから生成されるものである。本実施形態に係る鍵共有システム1では、メンバUのIDは、ユーザIDやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバUのIDとを用いて、公開鍵を算出することが可能である。他方、メンバUの秘密鍵は、式23からも明らかなように、鍵生成装置10において秘匿されるマスター秘密鍵を用いて算出される値であるため、鍵生成装置10のみが生成可能である。
署名鍵生成部22は、例えば、CPU、ROM、RAM等により実現される。署名鍵生成部22は、tビットの任意の値に対して処理を実行可能なデジタル署名技術を利用して、メンバUに固有の署名生成鍵skおよび署名検証鍵vkを生成する。
署名鍵生成部22は、生成したメンバUの署名生成鍵skおよび署名検証鍵vkを、該当するメンバUのメンバ情報に関連づけて、記憶部27に格納することが可能である。
情報提供部23は、例えば、CPU、ROM、RAM等により実現される。情報提供部23は、本実施形態に係る暗号化装置100の要請に応じて、公開情報やメンバの公開鍵等の各種の情報をこれらの装置に提供する。情報提供部23は、これらの情報の提供に際して、記憶部27に格納されている各種のデータを参照することが可能である。
通信制御部25は、例えば、CPU、ROM、RAM、通信装置等により実現されるものであり、鍵生成装置10と、暗号化装置100との間で行われる通信の制御を行う。
記憶部27は、メンバ情報管理部11が管理しているメンバ情報や、パラメータ選択部13により選択されたシステムパラメータや、公開情報生成部15が生成した公開情報や、鍵生成部17が生成した個人鍵等が格納されている。また、記憶部27には、本実施形態に係る鍵生成装置10が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部27は、メンバ情報管理部11、パラメータ選択部13、公開情報生成部15、鍵生成部17、情報提供部23、通信制御部25等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る鍵生成装置10の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る鍵生成装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<暗号化装置の構成について>
続いて、図14を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。図14は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
本実施形態に係る暗号化装置100は、同時通信に参加するメンバが操作する装置である。本実施形態に係る暗号化装置100は、例えば図14に示したように、個人鍵取得部101と、グループ鍵生成部103と、通信制御部117と、記憶部119と、を主に備える。
個人鍵取得部101は、例えば、CPU、ROM、RAM等により実現される。個人鍵取得部101は、通信制御部117を介して、鍵生成装置10から、当該暗号化装置100を使用するメンバに予め割り当てられた個人鍵(すなわち、公開鍵および秘密鍵)を取得する。また、個人鍵取得部101は、個人鍵の取得にあわせて、鍵生成装置10から公開情報(公開されているシステムパラメータ)を取得することも可能である。個人鍵取得部101は、取得した個人鍵や公開情報を、例えば記憶部119に格納する。
グループ鍵生成部103は、例えば、CPU、ROM、RAM等により実現される。グループ鍵生成部103は、自身が保持する個人鍵と、同時通信を行うメンバの公開鍵と、公開情報と、他の暗号化装置100から取得する情報と、を用いて、同時通信を行う際に利用されるグループ鍵を他の暗号化装置100とともに生成する。このグループ鍵生成部103は、例えば図14に示したように、パラメータ選択部131と、メンバ情報生成部133と、セッション情報生成部135と、を更に備える。また、グループ鍵生成部103は、セッション情報取得部137と、メンバ検証部139と、セッション鍵生成部141と、を更に備える。
パラメータ選択部131は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部131は、パラメータδ およびパラメータk と、同時通信における一時鍵として利用されるtビットのパラメータrと、を選択する。パラメータ選択部131は、選択したこれらのパラメータを、メンバ情報生成部107およびセッション情報生成部135に伝送する。
なお、パラメータ選択部131は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部133は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部133は、同時通信に参加するメンバU(1≦j≦n、j≠i)の公開鍵Qと、自身が保持する秘密鍵Sと、パラメータ選択部131により選択された一時鍵rと、公開情報と、を用いて、以下の式121に示すメンバ情報P を生成する。
Figure 2010047356
ここで、上記式121において、Hは、公開されているハッシュ関数の一つである。
また、メンバ情報生成部107は、生成したメンバ情報P と、同時通信に参加するn−1人それぞれのメンバとの対応関係を明らかにするために、メンバ情報P がどのような順番で並んでいるかを表す情報Lを、あわせて生成する。
メンバ情報生成部133は、生成したメンバ情報P と、メンバ情報とメンバとの対応関係を表す情報Lと、を、セッション情報生成部135へと伝送する。
なお、メンバ情報生成部133は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部135は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部135は、パラメータ選択部131から伝送された各種パラメータと、メンバ情報生成部133から伝送されたメンバ情報P および対応関係に関する情報Lと、公開情報と、に基づいて、メンバUのセッション情報Dを生成する。
より詳細には、セッション情報生成部135は、まず、下記式122で表される値Vと、下記式123で表される値Wとを算出する。その後、セッション情報生成部135は、算出した値等を用いて、下記式124で表されるセッション情報Dを生成する。このセッション情報は、複数の暗号化装置100間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
Figure 2010047356
なお、上記式123において、SIG(x)は、署名生成鍵skを用いて、メッセージxに対して生成したデジタル署名を表す。
セッション情報生成部135は、パラメータ選択部131が選択した乱数kに対してデジタル署名を付加し、変更された乱数kが特定のメンバに対して送信されることを防止している。また、乱数kを平文のまま送信すると、メンバ以外の者も後に生成されるセッション鍵を知ることができてしまう。そのため、セッション情報生成部135は、kを公開情報であるハッシュ関数Hに入力したものをメッセージとし、メンバUに固有の秘密鍵である署名生成鍵skを用いてセッション情報Dを生成する。
セッション情報生成部135は、通信制御部117を介して、生成したセッション情報Dを他の暗号化装置100へと同報送信する。また、セッション情報生成部135は、生成したセッション情報Dを、メンバ検証部139に送信する。セッション情報生成部135は、生成したセッション情報Dを、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報取得部137は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部137は、通信制御部117を介して、他の暗号化装置100それぞれから伝送されたセッション情報Dを取得する。
セッション情報取得部137は、取得した全てのセッション情報Dを、メンバ検証部139へと伝送する。また、セッション情報取得部137は、取得したセッション情報Dを、取得した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部139は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部139は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部139は、自身の個人鍵と、自身が保持する暗号化装置100で選択したパラメータと、他の暗号化装置100から取得したセッション情報Dとを用いて、メンバの検証を行う。
メンバ検証部139は、他の暗号化装置100から送信されたセッション情報Dを取得すると、まず、取得したセッション情報Dに含まれる情報Lを参照して、セッション情報Dの中から、自身に対応するP を検出する。続いて、下記式125で表される値k’を算出する。
Figure 2010047356
続いて、メンバ検証部139は、算出したk’と、公開情報であるハッシュ関数Hとを用いて、H(k’)を算出する。その後、メンバ検証部139は、セッション情報Dに含まれるWが、算出したH(k’)の正当なデジタル署名になっているか否かを、メンバUの署名検証鍵vkを用いて確認する。
メンバ検証部139は、上述のようなメンバの検証処理を、他の暗号化装置100から取得した全てのセッション情報Dに対して実施する。
メンバ検証部139は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出したk’を、セッション鍵生成部141へと伝送する。また、メンバ検証部139は、メンバの検証が失敗した場合には、セッション鍵の生成処理を終了する。
なお、メンバ検証部139は、算出した各種の値を、算出した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部141は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部141は、メンバ検証部139による同時通信の参加メンバの検証が成功した場合に、メンバ検証部139から伝送された複数の値k’を用いて、同時通信にて用いられるセッション鍵Kを生成する。セッション鍵Kの生成は、以下の式126により行われる。
Figure 2010047356
このようにして生成されるセッション鍵Kを用いることで、複数の暗号化装置100の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部141は、生成したセッション鍵Kを、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録してもよい。
通信制御部117は、例えば、CPU、ROM、RAM、通信装置等から構成されており、暗号化装置100と鍵生成装置10や他の暗号化装置100との間で行われる通信の制御を行う。
記憶部119は、鍵生成装置10により公開されている公開情報や、鍵生成装置10から取得した公開鍵および秘密鍵からなる個人鍵等が格納されている。また、記憶部119には、本実施形態に係る暗号化装置100が、何らかの処理を行う際に保存する必要が生じた様々なパラメータや処理の途中経過等、または、各種のデータベース等が、適宜記録されてもよい。この記憶部119は、個人鍵取得部101、グループ鍵生成部103および当該グループ鍵生成部103に含まれる各処理部、通信制御部117等が、自由に読み書きを行うことが可能である。
以上、本実施形態に係る暗号化装置100の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<鍵生成処理について>
本実施形態に係る鍵共有システム1では、センタが保持する鍵生成装置10が、各種のシステムパラメータ(すなわち公開情報)と、各メンバ用の個人鍵(すなわち公開鍵および秘密鍵ならびに署名生成鍵および署名検証鍵を含むユーザ鍵)との生成を行う。以下、本実施形態に係る鍵生成装置10が行う鍵生成処理について、図15を参照しながら、詳細に説明する。
まず、鍵処理装置10のパラメータ選択部13は、位数qと、位数qを有する2つの群G,Gと、双線形写像eと、を所定の方法に則して選択する(ステップS21)。
続いて、パラメータ選択部13は、パラメータP∈と、パラメータs∈ を選択し(ステップS23)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H、H、H、Hの4種類のハッシュ関数を選択する(ステップS25)。それぞれのハッシュ関数は、先だって説明した特徴を有するハッシュ関数である。
続いて、公開情報生成部15は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ(公開情報)として公開する(ステップS27)。公開されるシステムパラメータは、例えば、<e,G,G,q,P,Ppub,H,H,H,H>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(ID)を有するメンバUが、この鍵共有システム1に参加する際に、鍵生成部17は、以下の方法で、ユーザUの公開鍵Qと秘密鍵Sとを生成する(ステップS29)。
より詳細には、まず、公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(ID)と、システムパラメータであるハッシュ関数Hとを用いて、メンバUの公開鍵Qを生成する。
公開鍵Q = H(ID
次に、秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qと、マスター秘密鍵sとを用いて、メンバUの秘密鍵Sを生成する。
秘密鍵S = sQ
また、署名鍵生成部22は、用いるデジタル署名技術に則した方法で、メンバUに固有の署名生成鍵skおよび署名検証鍵vkを生成する(ステップS29)。
鍵生成装置10は、生成したユーザUの個人鍵(すなわち、公開鍵Qおよび秘密鍵S、ならびに、署名生成鍵skおよび署名検証鍵vk)を、該当するメンバUに伝送する。また、鍵生成装置10は、生成したメンバUの公開鍵Qを、公開してもよい。
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
<セッション鍵の生成処理>
次に、図16を参照しながら、複数の暗号化装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる暗号化装置間で同時通信の実現を試みるものとする。
まず、各メンバUが有する各暗号化装置100のパラメータ選択部131は、パラメータδと、パラメータk と、を選択する(ステップS301)。ここで、パラメータδは、セッション鍵の共有に用いられるパラメータである。また、各メンバUが有する各暗号化装置100のパラメータ選択部131は、パラメータr{0,1}を選択する(ステップS301)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、各メンバUが有する各暗号化装置100のメンバ情報生成部133は、同時通信に参加する自分以外のメンバU(1≦j≦n,j≠i)に対して、メンバ情報P を生成する(ステップS303)。このメンバ情報P は、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報である。このメンバ情報P は、上記式121で表される値である。
続いて、各メンバUが有する各暗号化装置100のセッション情報生成部135は、公開されているシステムパラメータと、選択したパラメータとを用いて、上記式124で表されるセッション情報Dを生成する(ステップS305)。
セッション情報Dの生成が終了すると、各メンバUが有する各暗号化装置100のセッション情報生成部135は、通信制御部117を介して、生成したセッション情報Dを各暗号化装置100へ同報送信する(ステップS307)。
他の暗号化装置100から送信されたセッション情報D(1≦j≦n,j≠i)は、メンバUが有する暗号化装置100のセッション情報取得部137によって受信される。セッション情報取得部137は、受信したセッション情報Dを、メンバ検証部139に伝送する。
メンバ検証部139は、まず、セッション情報D中に含まれる情報Lを参照し、自装置に対応するメンバ情報P を検出する(ステップS309)。
続いて、メンバ検証部139は、自身に対応するメンバ情報P と、セッション情報Dと、メンバUの公開鍵Qと、自身の秘密鍵Sを用いて、上記式125に基づきパラメータk’を算出する(ステップS311)。
次に、メンバ検証部139は、算出したパラメータk’と、公開情報であるハッシュ関数Hとを用いて、H(k’)を算出する。その後、メンバ検証部139は、セッション情報Dに含まれるWが、算出したH(k’)の正当なデジタル署名になっているか否かを、メンバUの署名検証鍵vkを用いて検証する(ステップS313)。
メンバ検証部139は、メッセージの検証(ひいては、メンバの検証)が成功した場合には、その旨を表す結果とともに、算出したk’を、セッション鍵生成部141へと伝送する。また、検証に失敗した場合には、メンバ検証部139は、セッション鍵の生成処理を終了する。
各暗号化装置100のセッション鍵生成部141は、メンバ検証部139によるメッセージの検証が成功した場合に、メンバ検証部139から伝送された複数の値k’を用いて、同時通信にて用いられるセッション鍵Kを生成する(ステップS315)。セッション鍵Kの生成は、上記式126により行われる。
このセッション鍵Kがそれぞれの暗号化装置100で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの暗号化装置100で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS317)。
このように、本実施形態に係るセッション鍵の生成方法では、各メンバが、メッセージを送信する際に、セッション鍵に作用する自装置で選択した乱数kに対してデジタル署名を付加する。これにより、パラメータkを、特定のメンバに対して変更して用いることを防止している。
ところで、上述の実施形態では、パラメータkをハッシュ関数に入力したH(k)をメッセージとし、このメッセージに対してデジタル署名を付加している。デジタル署名方式には、メッセージ復元型と認証子付加型の2つの種類がある。認証子付加型のデジタル署名を用いる場合、任意のデータ長のメッセージに対応するために、メッセージをまずハッシュ関数に入力してから署名を生成し、検証側でもメッセージをハッシュ関数に入力した結果を用いて検証処理を行う。このように、ハッシュ関数が鍵共有システムに含まれ、メッセージをハッシュ関数に通して使うタイプのデジタル署名システムを用いる場合には、SIG(H(k))の代わりにSIG(k)を セッション情報Dの要素としてもよい。
(ハードウェア構成について)
次に、図17を参照しながら、本発明の各実施形態に係る暗号化装置100のハードウェア構成について、詳細に説明する。図17は、本発明の各実施形態に係る暗号化装置100のハードウェア構成を説明するためのブロック図である。
暗号化装置100は、主に、CPU901と、ROM903と、RAM905と、ホストバス907と、ブリッジ909と、外部バス911と、インターフェース913と、入力装置915と、出力装置917と、ストレージ装置919と、ドライブ921と、接続ポート923と、通信装置925とを備える。
CPU901は、演算処理装置および制御装置として機能し、ROM903、RAM905、ストレージ装置919、またはリムーバブル記録媒体927に記録された各種プログラムに従って、暗号化装置100内の動作全般またはその一部を制御する。ROM903は、CPU901が使用するプログラムや演算パラメータ等を記憶する。RAM905は、CPU901の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一次記憶する。これらはCPUバス等の内部バスにより構成されるホストバス907により相互に接続されている。
ホストバス907は、ブリッジ909を介して、PCI(Peripheral Component Interconnect/Interface)バスなどの外部バス911に接続されている。
入力装置915は、例えば、マウス、キーボード、タッチパネル、ボタン、スイッチおよびレバーなどユーザが操作する操作手段である。また、入力装置915は、例えば、赤外線やその他の電波を利用したリモートコントロール手段(いわゆる、リモコン)であってもよいし、暗号化装置100の操作に対応した携帯電話やPDA等の外部接続機器929であってもよい。さらに、入力装置915は、例えば、上記の操作手段を用いてユーザにより入力された情報に基づいて入力信号を生成し、CPU901に出力する入力制御回路などから構成されている。暗号化装置100のユーザは、この入力装置915を操作することにより、暗号化装置100に対して各種のデータを入力したり処理動作を指示したりすることができる。
出力装置917は、例えば、CRTディスプレイ装置、液晶ディスプレイ装置、プラズマディスプレイ装置、ELディスプレイ装置およびランプなどの表示装置や、スピーカおよびヘッドホンなどの音声出力装置や、プリンタ装置、携帯電話、ファクシミリなど、取得した情報をユーザに対して視覚的または聴覚的に通知することが可能な装置で構成される。出力装置917は、例えば、暗号化装置100が行った各種処理により得られた結果を出力する。具体的には、表示装置は、暗号化装置100が行った各種処理により得られた結果を、テキストまたはイメージで表示する。他方、音声出力装置は、再生された音声データや音響データ等からなるオーディオ信号をアナログ信号に変換して出力する。
ストレージ装置919は、暗号化装置100の記憶部の一例として構成されたデータ格納用の装置であり、例えば、HDD(Hard Disk Drive)等の磁気記憶部デバイス、半導体記憶デバイス、光記憶デバイス、または光磁気記憶デバイス等により構成される。このストレージ装置919は、CPU901が実行するプログラムや各種データ、および外部から取得した各種のデータなどを格納する。
ドライブ921は、記録媒体用リーダライタであり、暗号化装置100に内蔵、あるいは外付けされる。ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録されている情報を読み出して、RAM905に出力する。また、ドライブ921は、装着されている磁気ディスク、光ディスク、光磁気ディスク、または半導体メモリ等のリムーバブル記録媒体927に記録を書き込むことも可能である。リムーバブル記録媒体927は、例えば、DVDメディア、HD−DVDメディア、Blu−rayメディア、コンパクトフラッシュ(登録商標)(CompactFlash:CF)、メモリースティック、または、SDメモリカード(Secure Digital memory card)等である。また、リムーバブル記録媒体927は、例えば、非接触型ICチップを搭載したICカード(Integrated Circuit card)または電子機器等であってもよい。
接続ポート923は、例えば、USB(Universal Serial Bus)ポート、i.Link等のIEEE1394ポート、SCSI(Small Computer System Interface)ポート、RS−232Cポート、光オーディオ端子、HDMI(High−Definition Multimedia Interface)ポート等の、機器を暗号化装置100に直接接続するためのポートである。この接続ポート923に外部接続機器929を接続することで、暗号化装置100は、外部接続機器929から直接各種のデータを取得したり、外部接続機器929に各種のデータを提供したりする。
通信装置925は、例えば、通信網931に接続するための通信デバイス等で構成された通信インターフェースである。通信装置925は、例えば、有線または無線LAN(Local Area Network)、Bluetooth、またはWUSB(Wireless USB)用の通信カード、光通信用のルータ、ADSL(Asymmetric Digital Subscriber Line)用のルータ、または、各種通信用のモデム等である。この通信装置925は、例えば、インターネットや他の通信機器との間で、例えばTCP/IP等の所定のプロトコルに則して信号等を送受信することができる。また、通信装置925に接続される通信網931は、有線または無線によって接続されたネットワーク等により構成され、例えば、インターネット、家庭内LAN、赤外線通信、ラジオ波通信または衛星通信等であってもよい。
以上、本発明の各実施形態に係る暗号化装置100の機能を実現可能なハードウェア構成の一例を示した。上記の各構成要素は、汎用的な部材を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用するハードウェア構成を変更することが可能である。
なお、本発明の各実施形態に係る鍵生成装置10および鍵処理装置200のハードウェア構成は、本発明の各実施形態に係る暗号化装置100のハードウェア構成と同様の構成を有するため、詳細な説明は省略する。
(まとめ)
以上説明したように、本発明の各実施形態に係る鍵共有システムでは、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。そのため、その他のメンバが、基盤技術における方式のように、Uの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、本発明の各実施形態に係る鍵共有システムでは、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
また、本発明の第1の実施形態に係る鍵共有システムでは、検証パラメータzを算出する際に、全てのセッション情報D(i=1,・・・,n)について、セッション情報の一部であるXについての和をとる。これにより、セッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を大きく削減することが可能となり、セッション鍵の生成に要する計算負荷を抑制することが可能となる。
また、グループ鍵共有技術において、メンバ全員が正しく鍵を共有できたかを確認する技術は、Key Confirmationという概念として知られている。この概念を実現するための具体的方法としては、グループ鍵を共有するためのプロトコルに加え、各メンバが導出したグループ鍵が正しいことを確認することが求められる。この場合、各メンバがグループ鍵に基づいて計算する値を送信し、他のメンバの値が正しいことを確認する方法が考えられる。しかしながら、上述の方法では、グループ鍵の確認のための余計なメッセージ送受信が必要になり、1ラウンドのグループ鍵共有方式では、実現できない。しかしながら、本発明の第2の実施形態および第3の実施形態では、セッション情報中に、メンバ固有の秘密鍵に依存する値を含有させることで、1ラウンドのグループ鍵共有方式でもKey Confirmationを実現することができる。
また、Key Confirmationと関連する概念として、completenessという概念がある。この概念は、「全参加者がグループ鍵の作成に貢献した場合に限り全参加者が同じ鍵を計算可能である」という概念である。しかしながら、定数ラウンド(特に、1ラウンド)でこのcompletenessを満たす方式は、存在していなかった。しかしながら、本発明の第1の実施形態に係る方式では、上述の検証処理により、全メンバが同じパラメータrを利用していることが確認できる。また、グループ鍵は全て同報送信により送信されるため、あるユーザが別のユーザと異なる値を与えられることはない。このため、この方式は、定数ラウンド方式であるにも関わらず、completenessを満たすものとなっている。
また、Key Confirmationについては,全メンバが同じグループ鍵を共有可能であることは言えるものの、上述の方式では、各メンバが実際にグループ鍵を共有したかどうかの確認は行っていない。よって、「弱めたKey Confirmation」、すなわち、「各メンバが同じグループ鍵を導出するための情報を得られている」、という概念を考えると、上述の方式はこの概念を満たすものとなっている。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、本発明の第2の実施形態および第3の実施形態において、ユーザに固有の秘密鍵を用いて算出される値の一例としてデジタル署名を例に挙げたが、かかる例に限定されるわけではない。デジタル署名以外に、ユーザに固有の秘密鍵や公開パラメータ等を利用して算出される値そのものを利用することも可能である。

Claims (25)

  1. セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
    前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
    前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
    それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
    自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
    を備える、暗号化装置。
  2. 前記パラメータ選択部は、パラメータδ∈ およびパラメータk と、前記所定のビット数を有するパラメータrと、を選択する、請求項1に記載の暗号化装置。
  3. 前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、
    前記メンバ情報生成部は、下記式1に基づいて、各参加装置に対応した前記メンバ情報Pをそれぞれ生成する、請求項2に記載の暗号化装置。

    ここで、下記式1において、Hは、公開されている前記ハッシュ関数の一つであり、Sは、自装置に予め割り当てられている秘密鍵であり、Qは、各参加装置に予め割り当てられている公開鍵であり、iは、2〜nの整数である。

    Figure 2010047356
  4. 前記セッション情報生成部は、下記式2で表される値Xと、下記式3で表される値Yとを算出し、下記式4で表される前記セッション情報Dを生成する、請求項3に記載の暗号化装置。

    ここで、下記式2および下記式3におけるHは、公開されている前記ハッシュ関数の一つである。また、下記式4において、P〜Pは、各参加装置に対応した前記メンバ情報であり、Lは、P〜Pの前記メンバ情報と前記参加装置との対応関係が記載された情報である。
    Figure 2010047356
  5. 前記暗号化装置は、自装置にて生成した前記セッション情報と、前記参加装置から取得した式5で表されるそれぞれの前記セッション情報D(i=2,・・・,n)と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
    前記メンバ検証部は、下記式6で表される検証パラメータzを算出し、下記式7が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項4に記載の暗号化装置。

    Figure 2010047356
  6. 前記メンバ検証部は、前記式7が成立する場合に、正当な機器から前記参加装置が構成されていると判断し、
    前記セッション鍵生成部は、下記式8に基づいて前記セッション鍵Kを算出する、請求項5に記載の暗号化装置。

    ここで、下記式8におけるHは、公開されている前記ハッシュ関数の一つである。

    Figure 2010047356
  7. 前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、
    前記パラメータ選択部は、パラメータδ およびパラメータk と、前記所定のビット数を有するパラメータrと、を選択し、
    前記メンバ情報生成部は、下記式9に基づいて、各参加装置に対応した前記メンバ情報Pをそれぞれ生成する、請求項1に記載の暗号化装置。

    ここで、下記式9において、Hは、公開されている前記ハッシュ関数の一つであり、Sは、自装置に予め割り当てられている秘密鍵であり、Qは、各参加装置に予め割り当てられている公開鍵である。

    Figure 2010047356
  8. 前記セッション情報生成部は、下記式10で表される値Vと、下記式11で表される値Wとを算出し、下記式12で表される前記セッション情報Dを生成する、請求項7に記載の暗号化装置。

    ここで、下記式10におけるHおよび下記式11におけるHは、公開されている前記ハッシュ関数の一つである。また、下記式11において、SIG(x)は、所定の署名生成鍵を用いて情報xに対して生成したデジタル署名を表す。また、下記式12において、P〜Pは、各参加装置に対応した前記メンバ情報であり、Lは、前記メンバ情報と前記参加装置との対応関係が記載された情報である。
    Figure 2010047356
  9. 前記暗号化装置は、前記式12で表される、自装置にて生成した前記セッション情報Dおよび前記参加装置から取得した前記セッション情報Dを用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
    前記メンバ検証部は、下記式13で表されるパラメータk’(j=1,・・・,n、j≠i)を算出し、算出したパラメータk’と、前記セッション情報Dとに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項8に記載の暗号化装置。

    Figure 2010047356
  10. 前記セッション鍵生成部は、前記メンバ検証部による検証が成功した場合に、下記式14に基づいて前記セッション鍵Kを算出する、請求項9に記載の暗号化装置。

    Figure 2010047356
  11. 前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、
    前記パラメータ選択部は、所定のビット数を有するパラメータNを選択し、
    前記セッション情報生成部は、下記式15で表されるデジタル署名が付加されたメッセージDと、暗号文E(e,N)(i=2,・・・,n)とを生成する、請求項1に記載の暗号化装置。

    ここで、下記式15において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。

    Figure 2010047356
  12. 前記セッション鍵生成部は、前記他の参加装置から取得した所定のビット数を有するパラメータNと、前記パラメータ選択部により選択されたパラメータNとを用いて、下記式16に基づいて前記セッション鍵Kを算出する、請求項11に記載の暗号化装置。

    Figure 2010047356
  13. 暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
    前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
    自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
    前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
    前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
    を備える、鍵処理装置。
  14. 前記公開パラメータとして、位数qを有する互いに異なる2つの群G,Gと、前記群Gの要素の組を前記群Gへと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、
    前記セッション鍵取得部は、前記暗号化装置から、下記式17で表される前記セッション情報Dを取得し、
    前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報Dに含まれる、自装置に対応するメンバ情報Pおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式18により一時鍵r’を算出する、請求項13に記載の鍵処理装置。

    ここで、下記式17におけるHおよび下記式10におけるHは、公開されている前記ハッシュ関数の一つである。

    Figure 2010047356
  15. 前記セッション鍵生成部は、下記式19で表される前記セッション情報Dを生成する、請求項14に記載の鍵処理装置。
    ここで、下記式19におけるkは、セッション情報を算出する際に用いられるパラメータである。

    Figure 2010047356
  16. 前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式19で表される前記セッション情報を取得し、
    前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式17で表される前記セッション情報Dと、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
    前記メンバ検証部は、下記式20で表される検証パラメータzを算出し、下記式21が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項15に記載の鍵処理装置。

    ここで、下記式20および式21における変数nは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。

    Figure 2010047356
  17. 前記メンバ検証部は、前記式21が成立する場合に、前記同時通信に参加する機器が正当な機器から構成されていると判断し、
    前記セッション鍵生成部は、下記式22に基づいて前記セッション鍵Kを算出する、請求項16に記載の鍵処理装置。

    ここで、下記式22におけるHは、公開されている前記ハッシュ関数の一つである。

    Figure 2010047356
  18. 前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、
    前記鍵処理装置は、前記暗号化装置から取得した下記式23で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、
    前記一時鍵算出部は、前記暗号化装置から伝送された暗号文E(e,N)を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータNを算出し、
    前記メンバ検証部は、下記式23で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータNとを用いて算出されたh(N)とに基づいて、前記暗号化装置の検証を行う、請求項13に記載の鍵処理装置。

    ここで、下記式23において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
    Figure 2010047356
  19. 前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータNを選択し、
    前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータNを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信する、請求項18に記載の鍵処理装置。
  20. 前記セッション鍵生成部は、前記一時鍵算出部により算出されたパラメータNと、前記パラメータ選択部により選択されたパラメータNと、前記他の参加装置から取得したパラメータNとを用いて、下記式24に基づいて前記セッション鍵Kを算出する、請求項19に記載の鍵処理装置。
    Figure 2010047356
  21. セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、
    前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、
    前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、
    それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、
    自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
    を含む、暗号化方法。
  22. 暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、
    前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、
    自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、
    選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、
    前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、
    前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
    を含む、鍵処理方法。
  23. 他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
    前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択機能と、
    前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、
    前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、
    それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、
    自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
    を実現させるためのプログラム。
  24. 暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
    前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、
    前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、
    自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、
    選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、
    前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
    を実現させるためのプログラム。
  25. セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
    前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
    前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
    それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
    自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
    を備える暗号化装置と、
    前記暗号化装置から伝送されたセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
    前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
    自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
    前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
    前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
    を備える鍵処理装置と、
    を含む、鍵共有システム。
JP2010534836A 2008-10-22 2009-10-21 暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム Withdrawn JPWO2010047356A1 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2008272201 2008-10-22
JP2008272201 2008-10-22
PCT/JP2009/068147 WO2010047356A1 (ja) 2008-10-22 2009-10-21 鍵共有システム

Publications (1)

Publication Number Publication Date
JPWO2010047356A1 true JPWO2010047356A1 (ja) 2012-03-22

Family

ID=42119393

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010534836A Withdrawn JPWO2010047356A1 (ja) 2008-10-22 2009-10-21 暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム

Country Status (4)

Country Link
US (1) US20110194698A1 (ja)
JP (1) JPWO2010047356A1 (ja)
CN (1) CN102177677A (ja)
WO (1) WO2010047356A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100670017B1 (ko) * 2004-12-31 2007-01-19 삼성전자주식회사 조합에 기반한 브로드캐스트 암호화 방법
CN103221988B (zh) * 2010-10-26 2016-08-03 日本电信电话株式会社 代理计算系统、计算装置、能力提供装置、代理计算方法、能力提供方法
US8611544B1 (en) 2011-01-25 2013-12-17 Adobe Systems Incorporated Systems and methods for controlling electronic document use
US9137014B2 (en) * 2011-01-25 2015-09-15 Adobe Systems Incorporated Systems and methods for controlling electronic document use
JP6088522B2 (ja) 2011-09-20 2017-03-01 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. グループメンバーによるグループ秘密の管理
US10631134B2 (en) * 2012-11-29 2020-04-21 Red Hat, Inc. Distributing data between mobile services
US9215075B1 (en) 2013-03-15 2015-12-15 Poltorak Technologies Llc System and method for secure relayed communications from an implantable medical device
CN103796199B (zh) * 2014-02-19 2015-06-17 郑州轻工业学院 移动非平衡网络中可认证非对称群组秘钥协商方法
US9454787B1 (en) * 2014-03-04 2016-09-27 Stephen M. Dorr Secure membership data sharing system and associated methods
US9231965B1 (en) * 2014-07-23 2016-01-05 Cisco Technology, Inc. Traffic segregation in DDoS attack architecture
CN104219051B (zh) * 2014-08-20 2018-04-13 北京奇艺世纪科技有限公司 一种群组内消息的通信方法和系统
US10419213B2 (en) * 2015-01-16 2019-09-17 Nippon Telegraph And Telephone Corporation Key exchange method, key exchange system, key device, terminal device, and program
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
US11190499B2 (en) * 2016-07-19 2021-11-30 Nippon Telegraph And Telephone Corporation Communication terminals, server devices, and programs
FR3074989B1 (fr) * 2017-12-11 2021-03-05 Airbus Defence & Space Sas Procede de communication securise
US11115193B2 (en) * 2017-12-29 2021-09-07 Intel Corporation Technologies for internet of things key management
CN109727128B (zh) * 2018-12-07 2020-10-09 杭州秘猿科技有限公司 一种基于多个硬件钱包的资产管理方法及系统
CN115314203B (zh) * 2022-10-11 2022-12-20 南京易科腾信息技术有限公司 群组密钥协商方法

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2868759B1 (ja) * 1998-03-17 1999-03-10 株式会社高度移動通信セキュリティ技術研究所 鍵更新方法
US6343280B2 (en) * 1998-12-15 2002-01-29 Jonathan Clark Distributed execution software license server
EP1437856B1 (en) * 2001-10-19 2011-01-19 Pioneer Corporation Electronic device control system and method, and control apparatus
KR100571820B1 (ko) * 2003-10-20 2006-04-17 삼성전자주식회사 신원 정보를 기반으로 하는 암호 시스템에서의 컨퍼런스세션 키 분배 방법
US8126814B2 (en) * 2004-11-18 2012-02-28 Cisco Technology, Inc. Method and system for installing software and hardware feature licenses on devices
US7725721B2 (en) * 2004-11-18 2010-05-25 Cisco Technology, Inc. Method and system for transferring software and hardware feature licenses between devices
KR100670017B1 (ko) * 2004-12-31 2007-01-19 삼성전자주식회사 조합에 기반한 브로드캐스트 암호화 방법
US8086850B2 (en) * 2006-06-23 2011-12-27 Honeywell International Inc. Secure group communication among wireless devices with distributed trust
CN101272240B (zh) * 2007-03-21 2013-01-23 华为技术有限公司 一种会话密钥的生成方法、系统和通信设备
US7907735B2 (en) * 2007-06-15 2011-03-15 Koolspan, Inc. System and method of creating and sending broadcast and multicast data
US7496539B1 (en) * 2008-05-15 2009-02-24 International Business Machines Corporation Systems, methods and computer products for providing tape library dynamic price performance enhancement feature
CN100581169C (zh) * 2008-08-21 2010-01-13 西安西电捷通无线网络通信有限公司 一种基于单播会话密钥的组播密钥分发方法及其更新方法

Also Published As

Publication number Publication date
WO2010047356A1 (ja) 2010-04-29
US20110194698A1 (en) 2011-08-11
CN102177677A (zh) 2011-09-07

Similar Documents

Publication Publication Date Title
WO2010047356A1 (ja) 鍵共有システム
JP3552648B2 (ja) アドホック無線通信用データ送受システム及びアドホック無線通信用データ送受方法
CN104579694B (zh) 一种身份认证方法及系统
JP5365072B2 (ja) 鍵生成装置、暗号化装置、受信装置、鍵生成方法、暗号化方法、鍵処理方法およびプログラム
CN102577230B (zh) 低等待时间的对等体会话建立
EP3289723B1 (en) Encryption system, encryption key wallet and method
KR101297648B1 (ko) 서버와 디바이스간 인증방법
EP1643677A2 (en) Method of authenticating device using broadcast cryptography
Liu et al. A novel asymmetric three-party based authentication scheme in wearable devices environment
JP6950745B2 (ja) 鍵交換装置、鍵交換システム、鍵交換方法、及び鍵交換プログラム
CN102427442A (zh) 组合请求相关元数据和元数据内容
CN111342955B (zh) 一种通信方法及其设备、计算机存储介质
Abusukhon et al. A novel network security algorithm based on private key encryption
CN109962777A (zh) 许可区块链系统中的密钥生成、获取密钥的方法及设备
WO2017181518A1 (zh) 一种加密通讯的方法及装置、系统
CN114553590B (zh) 数据传输方法及相关设备
WO2018043573A1 (ja) 鍵交換方法、鍵交換システム
Xia et al. Searchable Public-Key Encryption with Data Sharing in Dynamic Groups for Mobile Cloud Storage.
WO2016199507A1 (ja) 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム
KR20100096490A (ko) 보안 통신 수행 방법 및 그 장치
CN113365264A (zh) 一种区块链无线网络数据传输方法、装置及系统
Al-Husainy MAC address as a key for data encryption
JP5512598B2 (ja) 情報共有システム、方法、装置及びプログラム
Jin et al. Efficient coalition detection in traitor tracing
CN114760040A (zh) 一种身份鉴别方法和装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20130108