JPWO2010047356A1 - 暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム - Google Patents
暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システム Download PDFInfo
- 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
Links
- 238000012545 processing Methods 0.000 title claims abstract description 198
- 238000000034 method Methods 0.000 title claims abstract description 181
- 238000003672 processing method Methods 0.000 title claims abstract description 8
- 230000006854 communication Effects 0.000 claims abstract description 295
- 238000004891 communication Methods 0.000 claims abstract description 295
- 238000012795 verification Methods 0.000 claims description 179
- 230000006870 function Effects 0.000 claims description 162
- 230000010365 information processing Effects 0.000 claims description 86
- 238000004364 calculation method Methods 0.000 claims description 60
- 238000005516 engineering process Methods 0.000 abstract description 19
- 238000003860 storage Methods 0.000 description 75
- 239000003999 initiator Substances 0.000 description 44
- 238000004590 computer program Methods 0.000 description 21
- 230000008569 process Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 17
- 230000003287 optical effect Effects 0.000 description 12
- 230000005540 biological transmission Effects 0.000 description 10
- 230000008859 change Effects 0.000 description 10
- 238000013507 mapping Methods 0.000 description 6
- 230000000694 effects Effects 0.000 description 4
- 238000012790 confirmation Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 239000004065 semiconductor Substances 0.000 description 3
- 230000007175 bidirectional communication Effects 0.000 description 2
- 230000007717 exclusion Effects 0.000 description 2
- 230000006872 improvement Effects 0.000 description 2
- 125000002066 L-histidyl group Chemical group [H]N1C([H])=NC(C([H])([H])[C@](C(=O)[*])([H])N([H])[H])=C1[H] 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007850 degeneration Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key 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/083—Key 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/0833—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public 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/3073—Public 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/60—Digital content management, e.g. content distribution
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/80—Wireless
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に記載の方法では、同時通信を行うメンバで共有すべきグループ鍵をグループ内の特定のユーザに共有できないようにすることができてしまうという問題があることが明らかとなった。
そこで、本発明は、上記問題に鑑みてなされたものであり、本発明の目的とするところは、グループ鍵共有技術におけるセキュリティを更に向上させることが可能な、新規かつ改良された暗号化装置、鍵処理装置、暗号化方法、鍵処理方法、プログラムおよび鍵共有システムを提供することにある。
上記課題を解決するために、本発明のある観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える暗号化装置が提供される。
前記パラメータ選択部は、パラメータδ∈RZq *およびパラメータk1∈RZq *と、前記所定のビット数を有するパラメータrと、を選択してもよい。
前記公開パラメータとして、位数qを有する互いに異なる2つの群G1,G2と、前記群G1の要素の組を前記群G2へと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記メンバ情報生成部は、下記式1に基づいて、各参加装置に対応した前記メンバ情報Piをそれぞれ生成してもよい。
ここで、下記式1において、HAは、公開されている前記ハッシュ関数の一つであり、S1は、自装置に予め割り当てられている秘密鍵であり、Qiは、各参加装置に予め割り当てられている公開鍵であり、iは、2〜nの整数である。
前記セッション情報生成部は、下記式2で表される値X1と、下記式3で表される値Y1とを算出し、下記式4で表される前記セッション情報D1を生成してもよい。
ここで、下記式2および下記式3におけるHBは、公開されている前記ハッシュ関数の一つである。また、下記式4において、P2〜Pnは、各参加装置に対応した前記メンバ情報であり、Lは、P2〜Pnの前記メンバ情報と前記参加装置との対応関係が記載された情報である。
前記暗号化装置は、自装置にて生成した前記セッション情報と、前記参加装置から取得した式5で表されるそれぞれの前記セッション情報Di(i=2,・・・,n)と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式6で表される検証パラメータzを算出し、下記式7が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
前記メンバ検証部は、前記式7が成立する場合に、正当な機器から前記参加装置が構成されていると判断し、前記セッション鍵生成部は、下記式8に基づいて前記セッション鍵Kを算出してもよい。ここで、下記式8におけるHCは、公開されている前記ハッシュ関数の一つである。
前記公開パラメータとして、位数qを有する互いに異なる2つの群G1,G2と、前記群G1の要素の組を前記群G2へと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記パラメータ選択部は、パラメータδi∈RZq *およびパラメータki∈RZq *と、前記所定のビット数を有するパラメータriと、を選択し、前記メンバ情報生成部は、下記式9に基づいて、各参加装置に対応した前記メンバ情報Piをそれぞれ生成してもよい。
ここで、下記式9において、H2は、公開されている前記ハッシュ関数の一つであり、Siは、自装置に予め割り当てられている秘密鍵であり、Qjは、各参加装置に予め割り当てられている公開鍵である。
前記セッション情報生成部は、下記式10で表される値Viと、下記式11で表される値Wiとを算出し、下記式12で表される前記セッション情報Diを生成してもよい。
ここで、下記式10におけるH3および下記式11におけるH4は、公開されている前記ハッシュ関数の一つである。また、下記式11において、SIGi(x)は、所定の署名生成鍵を用いて情報xに対して生成したデジタル署名を表す。また、下記式12において、P2〜Pnは、各参加装置に対応した前記メンバ情報であり、Lは、前記メンバ情報と前記参加装置との対応関係が記載された情報である。
前記暗号化装置は、前記式12で表される、自装置にて生成した前記セッション情報Diおよび前記参加装置から取得した前記セッション情報Diを用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式13で表されるパラメータkj’(j=1,・・・,n、j≠i)を算出し、算出したパラメータkj’と、前記セッション情報Diとに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
前記セッション鍵生成部は、前記メンバ検証部による検証が成功した場合に、下記式14に基づいて前記セッション鍵Kを算出してもよい。
前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、前記パラメータ選択部は、所定のビット数を有するパラメータNiを選択し、前記セッション情報生成部は、下記式15で表されるデジタル署名が付加されたメッセージDと、暗号文E(ei,N1)(i=2,・・・,n)とを生成してもよい。
ここで、下記式15において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
前記セッション鍵生成部は、前記他の参加装置から取得した所定のビット数を有するパラメータNiと、前記パラメータ選択部により選択されたパラメータN1とを用いて、下記式16に基づいて前記セッション鍵KUを算出してもよい。
上記課題を解決するために、本発明の別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、を備える鍵処理装置が提供される。
前記公開パラメータとして、位数qを有する互いに異なる2つの群G1,G2と、前記群G1の要素の組を前記群G2へと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、前記セッション鍵取得部は、前記暗号化装置から、下記式17で表される前記セッション情報D1を取得し、前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報D1に含まれる、自装置に対応するメンバ情報Piおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式18により一時鍵r’を算出してもよい。
ここで、下記式17におけるHBおよび下記式10におけるHAは、公開されている前記ハッシュ関数の一つである。
前記セッション鍵生成部は、下記式19で表される前記セッション情報Diを生成してもよい。ここで、下記式19におけるkiは、セッション情報を算出する際に用いられるパラメータである。
前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式19で表される前記セッション情報を取得し、前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式17で表される前記セッション情報D1と、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、前記メンバ検証部は、下記式20で表される検証パラメータzを算出し、下記式21が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証してもよい。
ここで、下記式20および式21における変数nは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。
前記メンバ検証部は、前記式21が成立する場合に、前記同時通信に参加する機器が正当な機器から構成されていると判断し、前記セッション鍵生成部は、下記式22に基づいて前記セッション鍵Kを算出してもよい。ここで、下記式22におけるHCは、公開されている前記ハッシュ関数の一つである。
前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、前記鍵処理装置は、前記暗号化装置から取得した下記式23で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、前記一時鍵算出部は、前記暗号化装置から伝送された暗号文E(ei,N1)を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータN1を算出し、前記メンバ検証部は、下記式23で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータN1とを用いて算出されたh(N1)とに基づいて、前記暗号化装置の検証を行ってもよい。
ここで、下記式23において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータNiを選択し、前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータNiを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信してもよい。
前記セッション鍵生成部は、前記一時鍵算出部により算出されたパラメータN1と、前記パラメータ選択部により選択されたパラメータNiと、前記他の参加装置から取得したパラメータNiとを用いて、下記式24に基づいて前記セッション鍵KUを算出してもよい。
上記課題を解決するために、本発明の更に別の観点によれば、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、含む暗号化方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、を含む鍵処理方法が提供される。
上記課題を解決するために、本発明の更に別の観点によれば、他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとして所定のビット数を有するパラメータを選択するパラメータ選択機能と、前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。
上記課題を解決するために、本発明の更に別の観点によれば、暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、を実現させるためのプログラムが提供される。
上記課題を解決するために、本発明の更に別の観点によれば、上述の暗号化装置と上述の鍵処理装置とを含む鍵共有システムが提供される。
以上説明したように本発明によれば、グループ鍵共有技術におけるセキュリティを更に向上させることが可能である。
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 一時鍵算出部
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に記載の方法について
非特許文献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人のメンバ(U0,・・・Un−1)間でセッション鍵Kを共有する方法である。なお、下記に示すプロトコルは、何度でも実行可能である。実行に先立ち、システムセットアップとして、適切な大きさの素数pとq、位数qを持つ元α∈Zpと、について、メンバ間で合意がとれているものとする。また、以下に示すプロトコルにおいて、各メンバの番号iは、mod nで考える点に注意されたい。
非特許文献1に記載の方法は、同報通信路を用いて、下記に示すプロトコルによりn人のメンバ(U0,・・・Un−1)間でセッション鍵Kを共有する方法である。なお、下記に示すプロトコルは、何度でも実行可能である。実行に先立ち、システムセットアップとして、適切な大きさの素数pとq、位数qを持つ元α∈Zpと、について、メンバ間で合意がとれているものとする。また、以下に示すプロトコルにおいて、各メンバの番号iは、mod nで考える点に注意されたい。
まず、各メンバUiは、パラメータri∈RZqを選択して、以下の式901を用いて算出されるziを他のメンバに同報送信する。なお、a∈RZという表記は、集合Zから要素aをランダムに選択することを表すものとする。
続いて、各メンバUiは、zi+1およびzi−1を用いて、Xi=(zi+1/zi−1)rimod pを計算し、各メンバに同報送信する。
次に、各メンバUiは、以下の式902を用いて、Kiを算出する。上記のプロトコルにより、各メンバUiはKiを得るが、それぞれのメンバについてセッション鍵KとKiとの関係は以下の式903のようになるため、メンバ間でセッション鍵Kを共有することが可能となる。
しかしながら、この非特許文献1に記載の方法は、Kiを算出するために、O(n2)回のmod pでの乗算が必要となり、メンバの計算量が大きくなるという欠点がある。
<非特許文献2に記載の方法について>
非特許文献2に記載の方法は、メンバの計算量の削減を図ったグループ鍵共有に関する方法である。以下、図18〜図20を参照しながら、非特許文献2に記載の方法について、詳細に説明する。図18は、非特許文献2に記載の方法における鍵生成処理について説明するための流れ図である。図19および図20は、非特許文献2に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
非特許文献2に記載の方法は、メンバの計算量の削減を図ったグループ鍵共有に関する方法である。以下、図18〜図20を参照しながら、非特許文献2に記載の方法について、詳細に説明する。図18は、非特許文献2に記載の方法における鍵生成処理について説明するための流れ図である。図19および図20は、非特許文献2に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
この非特許文献2に記載の方法では、双線形写像(バイリニアマップ)技術を利用する。この双線形写像を、「e」と表すこととする。双線形写像e:G1×G1→G2は、位数qの群G1の2つの要素の組を、同じ位数qを持つ別の群G2に写像(マップ)する。この写像(マッピング)の特徴として、双線形性および非退化性を有することが挙げられる。
1.双線形性:任意のu,v∈G1およびa,b∈Zq *に対して、e(ua,vb)=e(u,v)abが成立する。
2.非退化性:G1の生成元gに対し、e(g,g)≠1
2.非退化性:G1の生成元gに対し、e(g,g)≠1
[鍵生成処理]
非特許文献2に記載の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図18を参照しながら、詳細に説明する。
非特許文献2に記載の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図18を参照しながら、詳細に説明する。
まず、鍵共有システムにおけるセンタは、位数qと、位数qを有する2つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する(ステップS901)。
続いて、センタは、パラメータP∈RG1と、パラメータs∈RZq *を選択し(ステップS903)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、センタは、H1、H4、H5、H6の4種類のハッシュ関数を選択する(ステップS905)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
H1:{0,1}* → G1
H4:G2 → {0,1}n
H5:{0,1}n → Zq *
H6:G1 → {0,1}n
H4:G2 → {0,1}n
H5:{0,1}n → Zq *
H6:G1 → {0,1}n
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する(ステップS907)。公開されるシステムパラメータは、例えば、<e,G1,G2,q,P,Ppub,H1,H4,H5,H6>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(IDi)を有するメンバUiが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザUiの公開鍵Qiと秘密鍵Siとを生成する(ステップS909)。
公開鍵Qi = H1(IDi)
秘密鍵Si = sQi
秘密鍵Si = sQi
センタは、生成したユーザUiの個人鍵(すなわち、公開鍵Qiと秘密鍵Si)を、該当するユーザUiに伝送する。また、センタは、生成したユーザUiの公開鍵Qiを、公開することも可能である。
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図17に示したステップS909のみを実行することで、新たな個人鍵を生成することが可能である。
なお、上述のように、ユーザの公開鍵Qiは、公開されているユーザのIDと、公開パラメータであるハッシュ関数H1から生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Siは、センタが秘匿しているマスター鍵sを用いて生成を行うため、センタのみが生成することができる。
非特許文献2に記載の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
[セッション鍵の生成処理]
次に、図19および図20を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献2に記載の方式では、n人のメンバU1,U2,・・・,Unのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバU1がイニシエータであるとする。
次に、図19および図20を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献2に記載の方式では、n人のメンバU1,U2,・・・,Unのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバU1がイニシエータであるとする。
[Round1]
まず、イニシエータであるメンバU1が有する情報処理装置は、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信で用いられるパラメータであるパラメータδ∈RG2と、パラメータk1∈RZq *と、を選択する(ステップS911)。また、メンバU1が有する情報処理装置は、パラメータr∈R{0,1}nを選択する(ステップS911)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
まず、イニシエータであるメンバU1が有する情報処理装置は、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信で用いられるパラメータであるパラメータδ∈RG2と、パラメータk1∈RZq *と、を選択する(ステップS911)。また、メンバU1が有する情報処理装置は、パラメータr∈R{0,1}nを選択する(ステップS911)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、メンバU1が有する情報処理装置は、同時通信に参加するメンバU2〜Unに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Pi(i=2,・・・,n)を生成する(ステップS913)。このメンバ情報Piは、以下の式911で表される値である。
ここで、上記式911において、H4は、システムパラメータとして公開されているハッシュ関数の一つであり、eは、システムパラメータとして公開されている双線形写像である。また、上記式911におけるrおよびδは、メンバU1が有する情報処理装置が選択したパラメータである。また、上記式911におけるS1は、メンバU1に割り当てられている秘密鍵であり、Qiは、同時通信に参加するメンバU2〜Unに割り与えられている公開鍵である。
続いて、メンバU1が有する情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下のような値X1、Y1を算出する。また、X1,Y1の算出が終了すると、メンバU1が有する情報処理装置は、以下の式914で表されるセッション情報D1を生成する(ステップS915)。
なお、メンバU1が有する情報処理装置は、式911に基づいて、(n−1)個のPiを算出するが、例えばメンバU2に対するメンバ情報がP2であるとは限らない。そのため、メンバU1が有する情報処理装置は、式914で表されるセッション情報の中に、P2〜Pnのそれぞれと、各メンバとの対応関係を表す情報Lを添付する。
セッション情報D1の生成が終了すると、メンバU1が有する情報処理装置は、生成したセッション情報D1を同報送信する(ステップS917)。
[Round2]
セッション情報D1を受信したメンバU2〜Unが有する情報処理装置は、まず、セッション情報D1中に含まれる情報Lを参照し、自身に対応するメンバ情報がP2〜Pnのどれなのかを判断する(ステップS919)。
セッション情報D1を受信したメンバU2〜Unが有する情報処理装置は、まず、セッション情報D1中に含まれる情報Lを参照し、自身に対応するメンバ情報がP2〜Pnのどれなのかを判断する(ステップS919)。
続いて、メンバU2〜Unが有する情報処理装置は、自身に対応するメンバ情報Piと、セッション情報D1と、イニシエータであるメンバU1の公開鍵Q1と、自身の秘密鍵Siを用いて、以下の式915に基づき一時鍵r’を算出する(ステップS921)。
ここで、メンバU1により正しくセッション情報D1が生成されていれば、メンバU2〜Unが有する情報処理装置で算出された一時鍵r’は、メンバU1が有する情報処理装置で選択された一時鍵rと等しくなる。すなわち、r’=rが成立する。
次に、メンバU2〜Unが有する情報処理装置は、パラメータki∈RZq *を選択する(ステップS923)。その後、選択したパラメータkiと、算出した一時鍵r’と、公開されているシステムパラメータと、を用いて、以下の式916によりメンバU1が有する情報処理装置へ伝送されるセッション情報Diを生成する(ステップS925)。なお、以下の式916では、r’=rが成立しているとして、定式化している。
セッション情報Diの生成が終了すると、メンバU2〜Unが有する情報処理装置それぞれは、自身以外の全ての情報処理装置に対して、生成したセッション情報Diを同報送信する(ステップS927)。
[セッション鍵生成]
メンバU1が有する情報処理装置は、メンバU2〜Unが有する情報処理装置から伝送された全てのセッション情報Diを取得することで、自身が生成したセッション情報D1を含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。メンバU1が有する情報処理装置は、セッション情報D1〜Dnと、公開されているシステムパラメータと、を用いて、検証用に用いられるパラメータ(以下、検証パラメータと称する。)z1およびzjを算出する(ステップS929)。
メンバU1が有する情報処理装置は、メンバU2〜Unが有する情報処理装置から伝送された全てのセッション情報Diを取得することで、自身が生成したセッション情報D1を含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。メンバU1が有する情報処理装置は、セッション情報D1〜Dnと、公開されているシステムパラメータと、を用いて、検証用に用いられるパラメータ(以下、検証パラメータと称する。)z1およびzjを算出する(ステップS929)。
同様に、メンバU2〜Unが有する情報処理装置それぞれは、セッション情報D1と、自身以外のメンバU2〜Unが有する情報処理装置から取得したセッション情報Diとを含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。メンバU2〜Unが有する情報処理装置それぞれは、セッション情報D1〜Dnと、公開されているシステムパラメータと、を用いて、検証パラメータz1およびzjを算出する(ステップS931)。
なお、上記式918において、2≦j≦nである。
続いて、メンバU1が有する情報処理装置は、算出した検証パラメータz1、zjを用いて演算を行い、以下の式919が成立するか否かを判定する(ステップS933)。同様に、メンバU2〜Unが有する情報処理装置それぞれは、算出した検証パラメータz1、zjを用いて演算を行い、以下の式919が成立するか否かを判定する(ステップS935)。式919が成立した場合には、それぞれの情報処理装置は、セッション鍵Kの確立のために参加したn人のメンバが全て正当なメンバであると判断する。すなわち、式919が成立するか否かを判断するステップS933およびステップS935は、メンバの正当性を検証しているステップであるといえる。
メンバU1が有する情報処理装置は、式919が成立した場合にのみ、以下の式920に基づいて、セッション鍵Kを算出する(ステップS937)。同様に、メンバU2〜Unが有する情報処理装置それぞれは、式919が成立した場合にのみ、以下の式920に基づいて、セッション鍵Kを算出する(ステップS939)。
このセッション鍵Kがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS941)。
<非特許文献2に記載の方法の問題点について>
このように、上述の非特許文献2に記載の方法は、メンバ以外の者がセッション鍵Kにアクセスすることを防ぐために、[Round2]において各メンバが同報送信したメッセージを、それぞれのメンバが一括して検証する方法である。
このように、上述の非特許文献2に記載の方法は、メンバ以外の者がセッション鍵Kにアクセスすることを防ぐために、[Round2]において各メンバが同報送信したメッセージを、それぞれのメンバが一括して検証する方法である。
しかしながら、本願発明者らは、このような非特許文献2に記載の方法を詳細に検討した結果、以下のような場合には、グループメンバによる成りすまし行為が成立してしまうという問題が発生することに想到した。
すなわち、非特許文献2に記載の方法の[Round2]における検証は、送信者固有の情報を利用していない。そのため、本願発明者らは、[Round1]でイニシエータが送信した一時鍵rの値を知ることができるメンバであれば、この検証をすり抜ける値を生成することが可能であることに想到したのである。
今、メンバUiが、意図的に、または通信エラーなどの理由により、上述のような鍵共有プロトコルに参加できなかったと仮定する。この場合、本来であればメンバUiからセッション情報Diが送信されないため、n人のメンバのセッション情報が集められず、セッション鍵Kが確立されることはない。
しかしながら、上述の方式では、rの値を知ることができる他のメンバUjが、自分のセッション情報Djとは別に、メンバUiを装ったセッション情報Diを送信することができてしまう。すなわち、上述の方式では、メンバujは、自身の秘密鍵Sj等を用いて式915により生成したr’を、他の計算に流用することが可能である。また、式916におけるセッション情報の算出では、算出した一時鍵と、公開されているパラメータとを用いることで、自由にセッション情報を算出することができる。そのため、ステップS923におけるパラメータkjの選択の際に、kjとは異なる別のパラメータkiを併せて選択することで、2つのセッション情報Dj,Diを得ることができてしまう。その結果、実際にはメンバUiが参加していないにも係らず、Uj以外のメンバは、Uiを含むn人のメンバ間でセッション鍵が共有できたと誤解してしまうこととなる。
上述のような状況が、例えば重要な会議等の際にセッション鍵を生成する際に生じたとすれば、その影響は甚大なものとなりうる。そのため、本発明の第1の実施形態に係る方式では、上述のような非特許文献2に記載の方式におけるメンバによる成りすまし行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
<非特許文献2に記載の第2の方法について>
非特許文献2には、上述の方法に加えて以下に説明する第2の方法が記載されている。以下では、図21および図22を参照しながら、非特許文献2に記載の第2の方法について、詳細に説明する。図21は、非特許文献2に記載の第2の方法における鍵生成処理について説明するための流れ図である。図22は、非特許文献2に記載の第2の方法におけるセッション鍵生成処理について説明するための流れ図である。
非特許文献2には、上述の方法に加えて以下に説明する第2の方法が記載されている。以下では、図21および図22を参照しながら、非特許文献2に記載の第2の方法について、詳細に説明する。図21は、非特許文献2に記載の第2の方法における鍵生成処理について説明するための流れ図である。図22は、非特許文献2に記載の第2の方法におけるセッション鍵生成処理について説明するための流れ図である。
[鍵生成処理]
非特許文献2に記載の第2の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図21を参照しながら、詳細に説明する。
非特許文献2に記載の第2の方法では、まず、鍵共有システムにおけるセンタが、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、センタが行う鍵生成処理について、図21を参照しながら、詳細に説明する。
まず、鍵共有システムにおけるセンタは、位数qと、位数qを有する2つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する(ステップS951)。
続いて、センタは、パラメータP∈RG1と、パラメータs∈RZq *を選択し(ステップS953)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、センタは、H1、H2、H3の3種類のハッシュ関数を選択する(ステップS955)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
H1:{0,1}* → G1
H2:G2 → {0,1}n
H3:{0,1}n → {0,1}n
H2:G2 → {0,1}n
H3:{0,1}n → {0,1}n
続いて、センタは、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータとして公開する(ステップS957)。公開されるシステムパラメータは、例えば、<e,G1,G2,q,P,Ppub,H1,H2,H3>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(IDi)を有するメンバUiが、この鍵共有システムに参加する際に、センタは、以下の方法で、ユーザUiの公開鍵Qiと秘密鍵Siとを生成する(ステップS959)。
公開鍵Qi = H1(IDi)
秘密鍵Si = sQi
秘密鍵Si = sQi
センタは、生成したユーザUiの個人鍵(すなわち、公開鍵Qiと秘密鍵Si)を、該当するユーザUiに伝送する。また、センタは、生成したユーザUiの公開鍵Qiを、公開することも可能である。
また、センタは、新たなユーザから個人鍵の生成を要請された場合には、図20に示したステップS959のみを実行することで、新たな個人鍵を生成することが可能である。
なお、上述のように、ユーザの公開鍵Qiは、公開されているユーザのIDと、公開パラメータであるハッシュ関数H1から生成可能であるため、センタに限らず任意のユーザが計算することが可能である。また、ユーザの秘密鍵Siは、センタが秘匿しているマスター鍵sを用いて生成を行うため、センタのみが生成することができる。
非特許文献2の第2の方法を用いて同時通信の実行を試みる複数の情報処理装置は、上述のようにして公開されたシステムパラメータと、ユーザの公開鍵や秘密鍵とを利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
[セッション鍵の生成処理]
次に、図22を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。
次に、図22を参照しながら、複数の情報処理装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。
まず、各メンバUiが有する各情報処理装置は、パラメータδi∈RG2と、パラメータki∈RZq *と、を選択する(ステップS961)。ここで、パラメータδiは、セッション鍵の共有に用いられるパラメータである。また、各メンバUiが有する各情報処理装置は、パラメータri∈R{0,1}nを選択する(ステップS961)。このパラメータriは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、各メンバUiが有する各情報処理装置は、同時通信に参加する自分以外のメンバUj(1≦j≦n,j≠i)に対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Pi jを生成する(ステップS963)。このメンバ情報Pi jは、以下の式921で表される値である。
ここで、上記式921において、H2は、システムパラメータとして公開されているハッシュ関数の一つであり、eは、システムパラメータとして公開されている双線形写像である。また、上記式921におけるriおよびδiは、メンバUiが有する情報処理装置が選択したパラメータである。また、上記式921におけるSiは、メンバUiに割り当てられている秘密鍵であり、Qjは、同時通信に参加するメンバUjに割り与えられている公開鍵である。
続いて、各メンバUiが有する各情報処理装置は、公開されているシステムパラメータと、選択したパラメータとを用いて、以下の式922で表される値Viを算出する。また、Viの算出が終了すると、各メンバUiが有する各情報処理装置は、以下の式923で表されるセッション情報Diを生成する(ステップS965)。
なお、各メンバUiが有する各情報処理装置は、式921に基づいて、(n−1)個のPi jを算出するが、例えばメンバU2に対するメンバ情報がPi 2であるとは限らない。そのため、各メンバUiが有する各情報処理装置は、式923で表されるセッション情報の中に、Pi jのそれぞれと、各メンバとの対応関係を表す情報Lを添付する。
セッション情報Diの生成が終了すると、各メンバUiが有する各情報処理装置は、生成したセッション情報Diを各情報処理装置へ同報送信する(ステップS967)。
他の情報処理装置からセッション情報Dj(1≦j≦n,j≠i)を受信したメンバUiが有する情報処理装置は、まず、セッション情報Dj中に含まれる情報Lを参照し、自身に対応するメンバ情報Pj iを検出する(ステップS969)。
続いて、各メンバUiが有する情報処理装置は、自身に対応するメンバ情報Pj iと、セッション情報Djと、メンバUjの公開鍵Qjと、自身の秘密鍵Siを用いて、以下の式924に基づきパラメータkj’を算出する(ステップS971)。
次に、各メンバUiが有する各情報処理装置は、算出したパラメータkj’と、選択したパラメータkiとを用いて、以下の式925によりセッション鍵Kを算出する(ステップS973)。
このセッション鍵Kがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS975)。
<非特許文献3に記載の方法について>
[セッション鍵の生成処理]
非特許文献3に記載の方法は、通信のオーバーヘッドを小さくするために、同時通信に参加する各情報処理装置が1度だけしかメッセージを送信しない1ラウンド型の方式を実現するための方法である。以下では、図23を参照しながら、非特許文献3に記載の方法について、詳細に説明する。図23は、非特許文献3に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
[セッション鍵の生成処理]
非特許文献3に記載の方法は、通信のオーバーヘッドを小さくするために、同時通信に参加する各情報処理装置が1度だけしかメッセージを送信しない1ラウンド型の方式を実現するための方法である。以下では、図23を参照しながら、非特許文献3に記載の方法について、詳細に説明する。図23は、非特許文献3に記載の方法におけるセッション鍵生成処理について説明するための流れ図である。
かかるセッション鍵生成処理に先立ち、この非特許文献3に記載の方法では、鍵共有システムにおけるセンタが、鍵生成装置を利用して、この方法における各種のシステムパラメータと、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵、ならびに、署名用のユーザ鍵)との生成を行っているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Eおよび復号関数D、ならびに、デジタル署名方式の署名生成関数Sおよび署名検証関数Vが公開される。また、各ユーザUiが有する情報処理装置には、ユーザUiの公開暗号化鍵ei、秘密復号鍵di、秘密署名生成鍵si、公開署名検証鍵viが保持されており、公開暗号化鍵eiおよび公開署名検証鍵viは、各メンバUi間で共有されているものとする。
なお、以下の説明では、全体でn台からなる情報処理装置間で同時通信の実現を試みるものとする。また、非特許文献3に記載の方式では、n人のメンバU1,U2,・・・,Unのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバU1がイニシエータであるとする。
まず、イニシエータU1が有する情報処理装置は、無作為に乱数を生成し、パラメータN1とする(ステップS981)。続いて、イニシエータU1が有する情報処理装置は、鍵を共有するユーザのリストUを、メンバ情報として生成する(ステップS983)。次に、イニシエータU1が有する情報処理装置は、他のメンバUiの公開暗号化鍵eiと、自身の秘密署名生成鍵siと、選択したパラメータN1と、公開パラメータと、を用いて、以下の式926で表されるセッション情報Dを生成する(ステップS985)。ここで、i=2,・・・,nである。
ここで、上記式926において、E(A,B)は、鍵Aを用いてメッセージBを暗号化した暗号文を表し、S(A,B)は、鍵Aを用いてメッセージBに対して施したデジタル署名を表す。
次に、イニシエータU1が有する情報処理装置は、生成したメンバ情報Uおよびセッション情報Dを、他のメンバUiに同報送信する(ステップS987)。
続いて、イニシエータU1が有する情報処理装置は、各ユーザUi(i=2,・・・,n)の公開暗号化鍵eiを利用してパラメータN1を暗号化し、暗号文E(ei,N1)を生成する。その後、イニシエータU1が有する情報処理装置は、生成した暗号文E(ei,N1)を各メンバUiの情報処理装置に送信する(ステップS989)。
各メンバUiの各情報処理装置は、イニシエータU1の情報処理装置から送信された各情報を受信すると、暗号文E(ei,N1)を復号して、パラメータN1を取得する。また各メンバUiの各情報処理装置は、パラメータNiを無作為に選択して(ステップS991)、ユーザ情報Uiと、パラメータNiとを、他の情報処理装置に同報送信する(ステップS993)。これにより、同時通信に参加する各情報処理装置は、パラメータN1〜Nnを取得することができる。
続いて、イニシエータを含む各メンバUiの各情報処理装置は、取得したパラメータNiと、公開パラメータであるハッシュ関数hとを利用して、以下の式927によりセッション鍵KUを算出する(ステップS995)。
このセッション鍵KUがそれぞれの情報処理装置で算出されることにより、同時通信で用いられるセッション鍵KUがそれぞれの情報処理装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS997)。
<非特許文献2に記載の第2の方法および非特許文献3に記載の方法の問題点>
このように、上述の非特許文献2に記載の第2の方法、および、非特許文献3に記載の方法は、1ラウンド型の方式を実現したグループ鍵の共有方法である。しかしながら、本願発明者らは、これらの方法を詳細に検討した結果、これらの方法に共通する以下のような問題があることに想到した。
このように、上述の非特許文献2に記載の第2の方法、および、非特許文献3に記載の方法は、1ラウンド型の方式を実現したグループ鍵の共有方法である。しかしながら、本願発明者らは、これらの方法を詳細に検討した結果、これらの方法に共通する以下のような問題があることに想到した。
それは、あるユーザ(ユーザAとする。)が、あるユーザ(ユーザBとする。)に対して他のユーザに送ったものとは別の値を送信することにより、n人のグループで共有するグループ鍵を、ユーザBだけが共有できないようにできるという問題である。
具体的に、4人(U1,U2,U3,U4)のグループを考える。非特許文献2に記載の第2の方式において、U2がU3を陥れるためには、先に説明したP2 3の算出において、正しいriとは異なる他の値を用いることで、U3がP2 3から導出するk2’の値は、他のユーザが得た正しい値とは別のものとなる。このため、U3は、グループ鍵の共有が正しく行えないこととなる。
他方、非特許文献3に記載の方式では、上述のような不正を実行できるのは、イニシエータU1である。すなわち、U1が、あるユーザに対してのみ、各ユーザUiに対して生成するE(ei,N1)をN1とは異なる他の値を用いて作成することで、そのユーザはN1を得ることができず、結果としてグループ鍵の共有が正しく行えないことになる。
さらに、上述のような攻撃者以外の各メンバは、この攻撃が行われたことを知ることができず、全員がグループ鍵を共有できたものと考えて目的の処理(例えば、グループ鍵を用いて行う処理)を行ってしまう。かかる問題は、システムのセキュリティ上好ましくないものである。
そこで、以下で説明する本発明の第2の実施形態に係る方式では、上述のような非特許文献3に記載の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。また、以下で説明する本発明の第3の実施形態に係る方式では、上述のような非特許文献2に記載の第2の方式におけるメンバの除外行為を防止し、より安全性の向上したグループ鍵共有技術を提供することを目的とする。
なお、以下で説明する本発明の各実施形態に係る方式は、上記非特許文献2および上記非特許文献3に記載の方式を基盤を成す技術とし、この基盤技術の上に改良を加えることにより、より顕著な効果を得ることができるように構成されたものである。従って、その改良に係る技術こそが本発明の各実施形態の特徴を成す部分である。つまり、本発明の各実施形態は、上述のような技術的事項の基礎概念を踏襲するが、その本質はむしろ改良部分に集約されており、その構成が明確に相違すると共に、その効果において基盤技術とは一線を画するものであることに注意されたい。
(第1の実施形態)
<鍵共有システムについて>
まず、図1を参照しながら、本発明の第1の実施形態に係る鍵共有システムについて、詳細に説明する。図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は、本実施形態に係る鍵生成装置の機能を説明するためのブロック図である。
次に、図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つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する。続いて、パラメータ選択部13は、パラメータP∈RG1と、パラメータs∈RZq *を選択し、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H1、HA、HB、HCの4種類のハッシュ関数を選択する。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
H :{0,1}* → G1
HA :G2 → {0,1}|q|
HB :{0,1}|q| → Zq *
HC :G1 → {0,1}|q|
HA :G2 → {0,1}|q|
HB :{0,1}|q| → Zq *
HC :G1 → {0,1}|q|
ここで、上述の{0,1}|q|という記載は、0と1からなるqビットの大きさのデータを意味する。本実施形態に係る鍵共有システム1が必要としているセキュリティレベルに応じてqの大きさを適宜設定することで、セキュリティレベルを変更することが可能である。
パラメータ選択部13は、これらのパラメータをシステムパラメータとして記憶部27に記録する。また、これらの選択されたパラメータは、公開情報生成部15および鍵生成部17に伝送される。
公開情報生成部15は、例えば、CPU、ROM、RAM等により実現されるものであり、パラメータ選択部13が選択した各種のパラメータやハッシュ関数の中から、公開情報(公開システムパラメータ)として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部15は、<e,G1,G2,q,P,Ppub,H,HA,HB,HC>の組み合わせを公開情報として生成し、記憶部27に格納する。
鍵生成部17は、例えば、CPU、ROM、RAM等により実現される。鍵生成部17は、本実施形態に係る鍵共有システム1を利用するメンバから、公開鍵および秘密鍵からなるメンバ用の個人鍵の生成を要請された場合に、これらの個人鍵を生成する。鍵生成部17は、個人鍵の生成に際して、メンバ情報管理部11から、要請のあったメンバに関するID(例えば、ユーザIDやメールアドレス等)を取得し、取得したIDとパラメータ選択部13が選択したシステムパラメータとに基づいて、鍵の生成を行う。この鍵生成部17は、例えば図2に示したように、公開鍵生成部19と、秘密鍵生成部21を更に備える。
公開鍵生成部19は、例えば、CPU、ROM、RAM等により実現される。公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(IDi)と、システムパラメータであるハッシュ関数Hとを用いて、以下の式11に基づいてメンバiの公開鍵Qiを生成する。
公開鍵Qi = H(IDi) ・・・(式11)
公開鍵生成部19は、生成したメンバUiの公開鍵Qiを、該当するメンバUiのメンバ情報に関連づけて、記憶部27に格納することが可能である。
秘密鍵生成部21は、例えば、CPU、ROM、RAM等により実現される。秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qiと、マスター秘密鍵sとを用いて、以下の式13に基づいてメンバUiの秘密鍵Siを生成する。
秘密鍵Si = sQi ・・・(式13)
秘密鍵生成部21は、生成したメンバUiの秘密鍵Siを、該当するメンバUiのメンバ情報に関連づけて、記憶部27に格納することが可能である。
なお、メンバの公開鍵は、式11からも明らかなように、公開情報と、メンバUiのIDから生成されるものである。本実施形態に係る鍵共有システム1では、メンバUiのIDは、ユーザIDやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバUiのIDとを用いて、公開鍵を算出することが可能である。他方、メンバUiの秘密鍵は、式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は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
続いて、図3を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。図3は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
本実施形態に係る暗号化装置100は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置100は、メンバU1が所持しているものとする。本実施形態に係る暗号化装置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は、パラメータδ∈RZq *およびパラメータk1∈RZq *と、同時通信における一時鍵として利用される所定のビット数を有するパラメータrと、を選択する。パラメータ選択部105は、選択したこれらのパラメータを、メンバ情報生成部107およびセッション情報生成部109に伝送する。
なお、パラメータ選択部105は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部107は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部107は、同時通信に参加するメンバUi(i=2,・・・,n)の公開鍵Qiと、自身が保持する秘密鍵S1と、パラメータ選択部105により選択された一時鍵rと、公開情報と、を用いて、以下の式101に示すメンバ情報Piを生成する。このメンバ情報Piは、n−1人の参加メンバそれぞれに対して生成される。
ここで、上記式101において、HAは、公開されているハッシュ関数の一つであり、iは、2〜nの整数である。
また、メンバ情報生成部107は、生成したP2〜Pnのメンバ情報と、同時通信に参加するn−1人それぞれのメンバとの対応関係を明らかにするために、P2〜Pnのメンバ情報がどのような順番で並んでいるかを表す情報Lを、あわせて生成する。なお、説明の簡潔性のため、Lは一定のルールに従って作られるものとし,n人のメンバいずれが作成しても同一のデータになるものとする。
メンバ情報生成部107は、生成したメンバ情報Piと、メンバ情報とメンバとの対応関係を表す情報Lと、を、セッション情報生成部109へと伝送する。
なお、メンバ情報生成部107は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部109は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部109は、パラメータ選択部105から伝送された各種パラメータと、メンバ情報生成部107から伝送されたメンバ情報Piおよび対応関係に関する情報Lと、公開情報と、に基づいて、メンバU1のセッション情報D1を生成する。より詳細には、セッション情報生成部109は、まず、下記式102で表される値X1と、下記式103で表される値Y1とを算出する。その後、セッション情報生成部109は、算出した値等を用いて、下記式104で表されるセッション情報D1を生成する。このセッション情報は、暗号化装置100と複数の鍵処理装置200との間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
なお、上記式102および式103において、「a||b」という表記は、aというデータにbというデータのビットを連結することを表している。また、上記式102および式103におけるHBは、公開されているハッシュ関数の一つである。
本実施形態に係るセッション情報生成部109は、上記式103に示したように、メンバU1の秘密鍵S1を用いてセッション情報を生成する。従って、メンバU1のセッション情報を偽装しようとしても、メンバU1以外の者は、セッション情報D1を生成することができない。
セッション情報生成部109は、通信制御部117を介して、生成したセッション情報D1を、メンバU2〜メンバUnが有する鍵処理装置200へと同報送信する。また、セッション情報生成部109は、生成したセッション情報D1を、メンバ検証部113に送信する。セッション情報生成部109は、生成したセッション情報D1を、生成した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報取得部111は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部111は、通信制御部117を介して、全ての鍵処理装置200それぞれから伝送されたセッション情報Diを取得する。このセッション情報Diは、下記式201で表されるものである。
セッション情報取得部111は、取得した全てのセッション情報Diを、後述するメンバ検証部113へと伝送する。また、セッション情報取得部111は、取得したセッション情報Diを、取得した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部113は、例えば、CPU、ROM、RAM等により実現されるものである。メンバ検証部113は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部113は、自身で生成したセッション情報D1と、全ての鍵処理装置200から取得したセッション情報Diとに基づいて、まず、下記式105で表される検証パラメータzを算出する。続いて、メンバ検証部113は、下記式106の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部113は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部115に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部113は、セッション情報Diを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
なお、本実施形態に係るメンバ検証部113は、基盤技術とは異なり、検証パラメータzを算出する際に、全てのセッション情報Di(i=1,・・・,n)について、セッション情報の一部であるXiについての和をとる。これにより、本実施形態に係る暗号化装置100では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部113は、基盤技術とは異なり、各メンバの公開鍵Qiを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Siを用いる必要があり、別のメンバUjがメンバUiに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
メンバ検証部113は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータzを、セッション鍵生成部115へと伝送する。また、メンバ検証部113は、算出した検証パラメータzを、算出した日時等を表す情報などと関連付けて、後述する記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部115は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部115は、メンバ検証部113による同時通信の参加メンバの検証が成功した場合に、メンバ検証部113から伝送された検証パラメータzを用いて、同時通信にて用いられるセッション鍵Kを生成する。セッション鍵Kの生成は、以下の式107により行われる。ここで、下記式107におけるHCは、公開されているハッシュ関数の一つである。
このようにして生成されるセッション鍵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は、本実施形態に係る鍵処理装置の機能を説明するためのブロック図である。
次に、図4を参照しながら、本実施形態に係る鍵処理装置200の構成について、詳細に説明する。図4は、本実施形態に係る鍵処理装置の機能を説明するためのブロック図である。
本実施形態に係る鍵処理装置200は、同時通信のイニシエータである暗号化装置100の使用者(メンバU1)以外のメンバUi(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から伝送されたセッション情報D1と、同時通信に参加する他の鍵処理装置200から伝送された、暗号化装置100から伝送されるセッション情報D1とは異なるセッション情報Diと、を取得する。より詳細には、セッション情報取得部205は、後述する通信制御部217を介して、イニシエータである暗号化装置100から伝送される、下記式104で表されるセッション情報D1を取得する。同様に、セッション情報取得部205は、同時通信に参加する他の鍵処理装置200から、下記式201で表されるセッション情報Diを取得する。
セッション情報取得部205は、暗号化装置100から伝送されたセッション情報D1を、後述する一時鍵算出部207およびセッション情報生成部211に伝送する。また、セッション情報取得部205は、他の鍵処理装置200から伝送されたセッション情報Diを、後述するメンバ検証部213に伝送する。また、セッション情報取得部205は、取得したこれらのセッション情報を、取得した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
一時鍵算出部207は、例えば、CPU、ROM、RAM等により実現される。一時鍵算出部207は、セッション情報取得部205から伝送されたセッション情報D1に基づいて、同時通信において一時的に利用される一時鍵を算出する。一時鍵算出部207は、まず、セッション情報D1に含まれる、メンバ情報Piの対応付けに関する情報Lを参照して、自装置に対応するメンバ情報Piを検出する。次に、一時鍵算出部207は、自装置に対応するメンバ情報Piと、自身の個人鍵と、暗号化装置100を使用しているメンバU1の公開鍵と、公開情報とを用いて、以下の式202により一時鍵r’を算出する。ここで、下記式202におけるHAは、公開されているハッシュ関数の一つである。
ここで、メンバU1により正しくセッション鍵D1が生成されていれば、メンバUiが有する鍵処理装置200で算出された一時鍵r’は、メンバU1が有する暗号化装置で選択された一時鍵rと等しくなる。すなわち、上記式202において、右側に位置する等号が成立して、結果的にr’=rが成立する。
一時鍵算出部207は、算出した一時鍵r’を、後述するセッション情報生成部211に伝送する。なお、以下の説明では、r’=rが成立したものとして、r’をrと表記する。また、一時鍵算出部207は、算出した一時鍵を、算出した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
パラメータ選択部209は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部209は、自装置においてセッション情報Diを算出する際に用いられるパラメータki∈RZq *を選択する。パラメータ選択部209は、選択したパラメータkiを、セッション情報生成部211に伝送する。
なお、パラメータ選択部209は、選択したパラメータを、選択した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部211は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部211は、パラメータkiと、自身が保持するメンバUiの秘密鍵と、公開情報と、暗号化装置100から伝送されたセッション情報D1と、を用いて、セッション情報Diを上述の式201に基づいて生成する。生成されたセッション情報Diは、通信制御部217を介して、暗号化装置100、および、同時通信を行う他の鍵処理装置200へ同報送信される。
本実施形態に係るセッション情報生成部211は、上記式201に示したように、メンバUiの秘密鍵Siを用いてセッション情報を生成する。従って、メンバUiのセッション情報を偽装しようとしても、秘密鍵Siを保持しているメンバUi以外の者は、セッション情報Diを生成することができない。
メンバ検証部213は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部213は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部213は、自身で生成したセッション情報Diと、暗号化装置100から取得したセッション情報D1と、他の鍵処理装置200から取得したセッション情報Diとに基づき、まず、下記式203に示す検証パラメータzを算出する。続いて、メンバ検証部213は、下記式204の左辺および右辺に示した値をそれぞれ算出し、等号が成立するか否かに基づいて、同時通信に参加するメンバの正当性を検証する。等号が成立する場合には、メンバ検証部213は、同時通信を行うメンバが正当なメンバのみから構成されていると判断し、後述するセッション鍵生成部215に、セッション鍵の生成を要請する。また、等号が成立しない場合には、メンバ検証部213は、取得したセッション情報Diを伝送したメンバの中に正当なメンバではない者が存在すると判定し、セッション鍵の生成は行わない。
なお、本実施形態に係るメンバ検証部213は、基盤技術とは異なり、検証パラメータzを算出する際に、全てのセッション情報Di(i=1,・・・,n)について、セッション情報の一部であるXiについての和をとる。これにより、本実施形態に係る鍵処理装置200では、後述するセッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を、基盤技術に比べて大きく削減することが可能となる。また、本実施形態に係るメンバ検証部213は、基盤技術とは異なり、各メンバの公開鍵Qiを用いた検証を行う。この検証をパスするセッション情報を作成するためには、各メンバが自身の秘密鍵Siを用いる必要があり、別のメンバUjがメンバUiに成りすますことはできない。このため、前述の基盤技術の問題を防いでいる。
メンバ検証部213は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出した検証パラメータzを、セッション鍵生成部215へと伝送する。また、メンバ検証部213は、算出した検証パラメータzを、算出した日時等を表す情報などと関連付けて、後述する記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部215は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部215は、メンバ検証部213による同時通信の参加メンバの検証が成功した場合に、メンバ検証部213から伝送された検証パラメータzを用いて、同時通信にて用いられるセッション鍵Kiを生成する。セッション鍵Kiの生成は、以下の式205により行われる。ここで、下記式205におけるHCは、公開されているハッシュ関数の一つである。
このようにして生成されるセッション鍵Kiを用いることで、鍵処理装置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を参照しながら、詳細に説明する。
本実施形態に係る鍵共有システム1では、まず、センタが保持する鍵生成装置10が、本方法における各種のシステムパラメータ(すなわち、公開情報)と、各メンバ用の個人鍵(すなわち、公開鍵および秘密鍵を含むユーザ鍵)との生成を行う。以下、本実施形態に係る鍵生成装置10が行う鍵生成処理について、図5を参照しながら、詳細に説明する。
まず、鍵処理装置10のパラメータ選択部13は、位数qと、位数qを有する2つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する(ステップS11)。
続いて、パラメータ選択部13は、パラメータP∈RG1と、パラメータs∈RZq *を選択し(ステップS13)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H、HA、HB、HCの4種類のハッシュ関数を選択する(ステップS15)。それぞれのハッシュ関数は、以下のような特徴を有するハッシュ関数である。
H :{0,1}* → G1
HA :G2 → {0,1}|q|
HB :{0,1}|q| → Zq *
HC :G1 → {0,1}|q|
HA :G2 → {0,1}|q|
HB :{0,1}|q| → Zq *
HC :G1 → {0,1}|q|
続いて、公開情報生成部15は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ(公開情報)として公開する(ステップS17)。公開されるシステムパラメータは、例えば、<e,G1,G2,q,P,Ppub,H,HA,HB,HC>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(IDi)を有するメンバUiが、この鍵共有システム1に参加する際に、鍵生成部17は、以下の方法で、ユーザUiの公開鍵Qiと秘密鍵Siとを生成する(ステップS19)。
より詳細には、まず、公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(IDi)と、システムパラメータであるハッシュ関数Hとを用いて、メンバUiの公開鍵Qiを生成する。
公開鍵Qi = H(IDi)
次に、秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qiと、マスター秘密鍵sとを用いて、メンバUiの秘密鍵Siを生成する。
秘密鍵Si = sQi
鍵生成装置10は、生成したユーザUiの個人鍵(すなわち、公開鍵Qiと秘密鍵Si)を、該当するメンバUiに伝送する。また、鍵生成装置10は、生成したメンバUiの公開鍵Qiを、公開してもよい。
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
<セッション鍵の生成方法について>
続いて、図6および図7を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図6および図7は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
続いて、図6および図7を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図6および図7は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
本実施形態に係るセッション鍵の生成方法は、暗号化装置100が中心となって行う処理と、鍵処理装置200が中心となって行う処理と、暗号化装置100および鍵処理装置200がそれぞれ行うセッション鍵の生成処理と、の3つの処理を含む。以下、暗号化装置が中心となって行う処理を、Round1とも称する。また、鍵処理装置200が中心となって行う処理を、Round2とも称する。
なお、以下の説明では、1台の暗号化装置100と(n−1)台の鍵処理装置200との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、n人のメンバU1,U2,・・・,Unのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバU1がイニシエータであるとする。
[Round1]
まず、イニシエータであるメンバU1が有する暗号化装置100のパラメータ選択部105は、セッション鍵共有に用いられるパラメータであるパラメータδ∈RG2と、パラメータk1∈RZq *と、を選択する(ステップS101)。また、メンバU1が有する情報処理装置は、パラメータr∈R{0,1}|q|を選択する(ステップS101)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
まず、イニシエータであるメンバU1が有する暗号化装置100のパラメータ選択部105は、セッション鍵共有に用いられるパラメータであるパラメータδ∈RG2と、パラメータk1∈RZq *と、を選択する(ステップS101)。また、メンバU1が有する情報処理装置は、パラメータr∈R{0,1}|q|を選択する(ステップS101)。このパラメータrは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、暗号化装置100のメンバ情報生成部107は、同時通信に参加するメンバU2〜Unに対して、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報Pi(i=2,・・・,n)を生成する(ステップS103)。このメンバ情報Piは、上述の式101で表される値である。また、メンバ情報生成部107は、メンバ情報Piの生成にあわせて、メンバ情報とメンバとの対応関係を表す情報Lを生成する。
続いて、セッション情報生成部109は、公開情報と、選択したパラメータと、メンバU1の秘密鍵と、を用いて、上述の式102および式103に示した値X1、Y1を算出する。また、X1,Y1の算出が終了すると、セッション情報生成部109は、上述の式104で表されるセッション情報D1を生成する(ステップS105)。
セッション情報D1の生成が終了すると、セッション情報生成部109は、通信制御部117を介して、生成したセッション情報D1を、全ての鍵処理装置200に対して同報送信する(ステップS107)。
[Round2]
セッション情報取得部205によりセッション情報D1を受信したメンバU2〜Unが有する鍵処理装置200は、取得したセッション情報D1を、一時鍵算出部207に伝送する。一時鍵算出部207は、まず、セッション情報D1中に含まれる情報Lを参照し、自身に対応するメンバ情報がP2〜Pnのどれなのかを判断する(ステップS109)。
セッション情報取得部205によりセッション情報D1を受信したメンバU2〜Unが有する鍵処理装置200は、取得したセッション情報D1を、一時鍵算出部207に伝送する。一時鍵算出部207は、まず、セッション情報D1中に含まれる情報Lを参照し、自身に対応するメンバ情報がP2〜Pnのどれなのかを判断する(ステップS109)。
続いて、一時鍵算出部207は、自身に対応するメンバ情報Piと、セッション情報D1と、イニシエータであるメンバU1の公開鍵Q1と、自身の秘密鍵Siを用いて、上述の式202に基づき一時鍵r’を算出する(ステップS111)。
ここで、メンバU1により正しくセッション鍵D1が生成されていれば、メンバU2〜Unが有する鍵処理装置200で算出された一時鍵r’は、メンバU1が有する暗号化装置100で選択された一時鍵rと等しくなる。すなわち、r’=rが成立する。
次に、パラメータ選択部209は、パラメータki∈RZq *を選択する(ステップS113)。その後、セッション情報生成部211は、パラメータkiと、一時鍵r’と、公開情報と、自身の秘密鍵Siとを用いて、暗号化装置100および他のメンバUiが有する鍵処理装置200へと伝送されるセッション情報Diを生成する(ステップS115)。このセッション情報Diの生成は、上述の式201に基づいて行われる。
セッション情報Diの生成が終了すると、メンバU2〜Unが有する鍵処理装置200のセッション情報生成部211それぞれは、自身以外の全ての装置に対して、生成したセッション情報Diを同報送信する(ステップS117)。これにより、生成したセッション情報Diが、暗号化装置100および他の全ての鍵処理装置200に対して送信されることとなる。
[セッション鍵生成]
暗号化装置100のセッション情報取得部111は、メンバU2〜Unが有する鍵処理装置200から伝送された全てのセッション情報Diを取得する。これにより、暗号化装置100は、自身が生成したセッション情報D1を含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。暗号化装置100のメンバ検証部113は、セッション情報D1〜Dnと、公開情報とを用いて、式105に示した検証パラメータzを算出する(ステップS119)。
暗号化装置100のセッション情報取得部111は、メンバU2〜Unが有する鍵処理装置200から伝送された全てのセッション情報Diを取得する。これにより、暗号化装置100は、自身が生成したセッション情報D1を含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。暗号化装置100のメンバ検証部113は、セッション情報D1〜Dnと、公開情報とを用いて、式105に示した検証パラメータzを算出する(ステップS119)。
同様に、メンバU2〜Unが有する鍵処理装置200それぞれは、セッション情報D1と、自身以外のメンバU2〜Unが有する鍵処理装置200から取得したセッション情報Diとを含め、セッション情報D1〜Dnまで全n個のセッション情報を有することとなる。それぞれのメンバU2〜Unが有する鍵処理装置200のメンバ検証部213は、セッション情報D1〜Dnと、公開情報とを用いて、式203により検証パラメータzを算出する(ステップS121)。
続いて、暗号化装置100のメンバ検証部113は、算出した検証パラメータzを用いて演算を行い、上述の式106が成立するか否かを判定する(ステップS123)。同様に、それぞれのメンバU2〜Unが有する鍵処理装置200のメンバ検証部213は、算出した検証パラメータzを用いて演算を行い、上述の式204が成立するか否かを判定する(ステップS125)。式106が成立した場合には、暗号化装置100は、セッション鍵Kの確立のために参加したn人のメンバが全て正当なメンバであると判断する。同様に、式204が成立した場合には、各鍵処理装置200は、セッション鍵Kiの確立のために参加したn人のメンバが全て正当なメンバであると判断する。このように、式106および式204が成立するか否かを判断するステップS123およびステップS125は、メンバの正当性を検証しているステップであるといえる。
メンバU1が有する暗号化装置100のセッション鍵生成部115は、式106が成立した場合にのみ、上述の式107に基づいて、セッション鍵Kを算出する(ステップS127)。同様に、それぞれのメンバU2〜Unが有する鍵処理装置200のセッション鍵生成部215は、式204が成立した場合にのみ、上述の式205に基づいて、セッション鍵Kを算出する(ステップS129)。
このような手順により、同時通信で用いられるセッション鍵Kがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS131)。
このように、本実施形態に係るセッション鍵の生成方法では、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。仮にメンバUiがプロトコルに参加していない状況が生じた場合、その他のメンバは、一時鍵rの値は知り得ても、メンバUiの秘密鍵Siは知ることができない。そのため、本実施形態に係るセッション鍵の生成方法では、その他のメンバが、基盤技術における方式のように、Uiの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
なお、本実施形態に係るセッション鍵の生成方法では、メンバUiが送信する値として、メンバUiの秘密鍵Siを用いた値(式103に示した値Yi)を生成している。これにより、メンバUiの公開鍵Qiを用いたメンバの検証が可能となる。この際、検証される値には、kiPpubだけでなく、H2(r||L)も含まれている。すなわち、何れかのメンバがrの値として他のメンバとは異なる値を使用した場合には、上述の検証において等号が成立しない。その結果、同時通信に参加するメンバは、セッション鍵が正しく共有できなかったことが把握できる。このように、本実施形態に係るセッション鍵の生成方法では、メンバへの成りすましを防止するだけでなく、ある特定のメンバを除外する行為を防止することも可能となる。
<セッション鍵の生成方法における計算量等について>
次に、図8を参照しながら、本実施形態に係るセッション鍵の生成方法における計算量等について検討する。図8は、本実施形態に係るセッション鍵生成処理について説明するための説明図である。
次に、図8を参照しながら、本実施形態に係るセッション鍵の生成方法における計算量等について検討する。図8は、本実施形態に係るセッション鍵生成処理について説明するための説明図である。
図8では、本実施形態に係るセッション鍵の生成方法と、基盤技術である非特許文献2に記載の方法とにおける計算量等を、比較しながら示している。図8において、「M Size」はメッセージ量を表し、「G1−Mul」は、群G1上における掛け算の回数を表し、「G2−Mul」は、群G2上における掛け算の回数を表す。また、図中の「n」は、メンバの数を表している。また、図中の「U1」は、イニシエータの計算量を表しており、「Ui(each)」は、イニシエータ以外の(n−1)ユーザそれぞれに必要な計算量を表している。また、図中の「Total」は、n人全員のトータルの計算量を表している。
図8から明らかなように、本実施形態に係る方法は、非特許文献2に記載の方法と、ラウンド数、メッセージ量およびペアリングの回数については同様の負荷となっている。他方、群G1上における掛け算の回数について、非特許文献2に記載の方法は、トータルで(n2+2n+1)回必要であるのに対し、本実施形態に係る方法では、(8n−2)回だけでよくなっている。これは、非特許文献2に記載の方法では、計算量がメンバ数nの二乗に比例していくのに対し、本実施形態に係る方法では、メンバ数nに比例して大きくなることを示している。そのため、メンバ数nが大きくなればなるほど、本実施形態に係る方法の計算負荷は抑制されることを示している。同様に、群G2上における掛け算の回数について、非特許文献2に記載の方法は、(2n−2)回必要であるのに対し、本実施形態に係る方法では、0回となっており、同様に計算負荷の削減が実現できたことを示している。
(第2の実施形態)
続いて、図9〜図11を参照しながら、本発明の第2の実施形態に係る鍵共有システムについて、詳細に説明する。図9は、本実施形態に係る暗号化装置100の構成を説明するためのブロック図であり、図10は、本実施形態に係る鍵処理装置200の構成を説明するためのブロック図である。また、図11は、本実施形態に係るセッション鍵生成処理を説明するための流れ図である。
続いて、図9〜図11を参照しながら、本発明の第2の実施形態に係る鍵共有システムについて、詳細に説明する。図9は、本実施形態に係る暗号化装置100の構成を説明するためのブロック図であり、図10は、本実施形態に係る鍵処理装置200の構成を説明するためのブロック図である。また、図11は、本実施形態に係るセッション鍵生成処理を説明するための流れ図である。
なお、本実施形態に係る鍵共有システムでは、非特許文献3に記載の方法と同様にして、システム内の鍵生成装置10により、各種のシステムパラメータと、各メンバ用の個人鍵とが生成されているものとする。これにより、システムパラメータとして、ハッシュ関数、公開鍵暗号方式の暗号化関数Eおよび復号関数D、ならびに、デジタル署名方式の署名生成関数Sおよび署名検証関数Vが公開される。また、ユーザUiが有する装置には、ユーザUiの公開暗号化鍵ei、秘密復号鍵di、秘密署名生成鍵si、公開署名検証鍵vi等が保持されており、公開暗号化鍵eiおよび公開署名検証鍵viは、各メンバUi間で共有されているものとする。
<暗号化装置の構成について>
まず、図9を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。
まず、図9を参照しながら、本実施形態に係る暗号化装置100の構成について、詳細に説明する。
本実施形態に係る暗号化装置100は、同時通信において利用されるセッション鍵の生成処理を開始するイニシエータが操作する装置である。なお、以下の説明では、この暗号化装置100は、メンバU1が所持しているものとする。本実施形態に係る暗号化装置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は、同時通信における一時鍵として利用される所定のビット数を有するパラメータN1を選択する。パラメータ選択部121は、選択したパラメータを、セッション情報生成部125に伝送する。
なお、パラメータ選択部121は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部123は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部123は、同時通信に参加するメンバUi(i=2,・・・,n)に関する情報が記載されたメンバ情報Uを生成する。このメンバ情報Uを参照することで、暗号化装置200は、同時通信に参加するメンバUiを特定することが可能となる。メンバ情報生成部123は、生成したメンバ情報Uを、セッション情報生成部125へと伝送する。
なお、メンバ情報生成部123は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部125は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部125は、パラメータ選択部121から伝送された各種パラメータと、メンバ情報生成部123から伝送されたメンバ情報Uと、公開情報と、に基づいて、署名が付加されたセッション情報Dを生成する。
より詳細には、セッション情報生成部125は、まず、セッション情報Dとして以下の式111で表されるメッセージを生成する。
上記式111から明らかなように、セッション情報Dは、ユーザUiの公開暗号化鍵eiを用いて、パラメータ選択部121が選択したパラメータN1を暗号化したものの集合と、N1そのものを公開情報であるハッシュ関数hを用いて変換したものとを含む。
その後、セッション情報生成部125は、生成したセッション情報Dに対して、公開情報である署名生成関数Sと、ユーザU1自身の秘密署名生成鍵s1とを用いて、以下の式112で表される署名を付加する。
また、セッション情報生成部125は、セッション情報Dと、セッション情報Dに付加する署名と、を生成すると、通信制御部117に、セッション情報Dと、セッション情報Dに付加する署名と、メンバ情報Uと、を同報送信するように要請する。また、セッション情報生成部125は、各メンバUiに送信するための暗号化されたパラメータN1をそれぞれ生成すると、通信制御部117に、これら暗号化されたパラメータN1の送信を要請する。
また、セッション情報生成部125は、セッション情報の生成に利用したパラメータN1を、セッション鍵生成部129に伝送する。なお、パラメータN1は、パラメータ選択部121から直接セッション鍵生成部129に伝送されてもよいし、セッション鍵生成部129が、記憶部119等に一時的に格納されているパラメータN1を取得してもよい。
セッション情報取得部127は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部127は、通信制御部117を介して、全ての鍵処理装置200それぞれから伝送されたセッション情報Diを取得する。このセッション情報Diは、それぞれの鍵処理装置200を所持しているユーザを特定するための情報であるユーザ情報Uiと、各鍵処理装置200が選択したパラメータNiとを含む。
セッション情報取得部127は、取得した全てのセッション情報Diを、セッション鍵生成部129へと伝送する。また、セッション情報取得部127は、取得したセッション情報Diを、取得した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部129は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部129は、セッション情報生成部125から伝送されたパラメータN1と、セッション情報取得部127から伝送されたパラメータNiと、公開情報とを用いて、同時通信で用いられるセッション鍵KUを生成する。
より詳細には、セッション鍵生成部129は、公開されているハッシュ関数hと、取得したパラメータN1〜Nnと、を利用して、以下の式113に基づいてセッション鍵KUを生成する。
このようにして生成されるセッション鍵KUを用いることで、暗号化装置100および複数の鍵処理装置200の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部129は、生成したセッション鍵KUを、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
以上、本実施形態に係る暗号化装置100の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る暗号化装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
<鍵処理装置の構成について>
次に、図10を参照しながら、本実施形態に係る鍵処理装置200の構成について、詳細に説明する。
次に、図10を参照しながら、本実施形態に係る鍵処理装置200の構成について、詳細に説明する。
本実施形態に係る鍵処理装置200は、同時通信のイニシエータである暗号化装置100の使用者(メンバU1)以外のメンバUi(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とは異なるセッション情報Diと、を取得する。より詳細には、セッション情報取得部221は、通信制御部217を介して、暗号化装置100から送信された署名の付加されたセッション情報Dおよび暗号化されたパラメータN1を取得する。また、セッション情報取得部221が取得するセッション情報Diは、他の鍵処理装置200を所持しているユーザを特定するための情報であるユーザ情報Uiと、各鍵処理装置200が選択したパラメータNiとを含む。
セッション情報取得部221は、暗号化されたパラメータN1を受信すると、この暗号化されたパラメータN1を、一時鍵算出部223に伝送する。また、セッション情報取得部221は、暗号化装置100から同報送信された、署名の付加されたセッション情報Dを、メンバ検証部225に伝送する。
また、セッション情報取得部221は、他の鍵処理装置200それぞれから同報送信されたセッション情報Diを取得すると、取得した各セッション情報Diを、セッション鍵生成部231に伝送する。
なお、セッション情報取得部221は、取得したこれらのセッション情報等を、取得した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
一時鍵算出部223は、例えば、CPU、ROM、RAM等により実現される。一時鍵算出部223は、セッション情報取得部221から暗号化されたパラメータN1に関する情報が伝送されると、この暗号化された情報を復号してパラメータN1の値を取得する。暗号化された情報は、鍵処理装置200を有するユーザUiの公開暗号化鍵eiを用いて暗号化されているため、各鍵処理装置200は、保持している秘密復号鍵diを用いて暗号文の復号を行うことができる。ここで、パラメータN1は、同時通信において一時的に利用される一時鍵と考えることができる。一時鍵算出部223は、復号の結果得られたパラメータN1を、メンバ検証部225に伝送する。
また、一時鍵算出部223は、算出した一時鍵であるパラメータN1を、算出した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部225は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部225は、セッション情報取得部221から伝送されたデジタル署名(暗号化装置100から同報送信されたセッション情報Dに付加されていたもの)の検証を行う。このデジタル署名は、暗号化装置100を保持しているイニシエータU1の公開署名検証鍵v1を用いて行うことが可能である。この検証処理により、イニシエータU1が送信したデジタル署名が、正当なユーザU1のデジタル署名であることを確認することができる。更に、メンバ検証部225は、一時鍵算出部223から伝送されたパラメータN1と公開されているハッシュ関数hとを用いてh(N1)を独自に算出する。その後、メンバ検証部225は、算出したh(N1)と、セッション情報取得部221から伝送されたセッション情報Dに含まれるh(N1)とが同値であるかを検証する。
算出した値とセッション情報Dに含まれている値とが一致し、かつ、デジタル署名が正規のものであった場合には、メンバ検証部225は、取得したセッション情報が正規のメンバ(すなわち、正規のイニシエータ)から送信されたものであると判断する。この場合、メンバ検証部225は、セッション情報生成部227に、正規のメンバからセッション情報Dが送信された旨を表す検証結果を伝送する。
また、デジタル署名が正規のものでなかった場合、または、算出したh(N1)がセッション情報Dに含まれている値と一致しなかった場合には、メンバ検証部225は、取得したセッション情報Dは正規のメンバにより送信されたものではないと判断する。その結果、鍵処理装置200は、セッション鍵の生成処理を終了する。
セッション情報生成部227は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部227は、メンバ検証部225から、取得したセッション情報の検証に成功した旨が通知されると、パラメータ選択部229にパラメータNiの選択を要請する。また、パラメータ選択部229からパラメータNiが通知されると、セッション情報生成部227は、通信制御部217を介して、鍵処理装置200を保持するユーザUiを特定するユーザ情報Uiと、選択したパラメータNiとを、他のメンバに対して同報送信する。このユーザ情報UiおよびパラメータNiは、ユーザUiが有する鍵処理装置200から送信されるセッション情報Diである。ユーザ情報UiおよびパラメータNiを送信すべきメンバの特定は、暗号化装置100から送信されたメンバ情報Uを参照することで行われる。
セッション情報Diの送信が終了すると、セッション情報生成部227は、パラメータ選択部229により選択されたパラメータNiと、一時鍵算出部223により算出されたパラメータN1とを、セッション鍵生成部231に伝送する。なお、パラメータNiのセッション鍵生成部231への伝送は、後述するパラメータ選択部229により行われてもよい。また、パラメータN1のセッション鍵生成部231への伝送は、一時鍵算出部223により行われてもよい。
パラメータ選択部229は、例えば、CPU、ROM、RAM等により実現される。パラメータ選択部229は、セッション情報生成部227の要請を受けて、セッション情報Diの一部として利用される所定のビット数を有するパラメータNiを選択する。パラメータ選択部229は、選択したパラメータを、セッション情報生成部227に伝送する。
なお、パラメータ選択部229は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部231は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部231は、パラメータN1およびNiと、他の鍵処理装置200から送信されたパラメータNiと、公開情報とを用いて、同時通信で用いられるセッション鍵KUを生成する。
より詳細には、セッション鍵生成部231は、公開されているハッシュ関数hと、取得したパラメータN1〜Nnと、を利用して、以下の式211に基づいてセッション鍵KUを生成する。
このようにして生成されるセッション鍵KUを用いることで、鍵処理装置200は、暗号化装置100および他の鍵処理装置200の間で、安全性の担保された同時通信を行うことが可能となる。
なお、セッション鍵生成部231は、生成したセッション鍵KUを、生成した日時等を表す情報などと関連付けて、記憶部219などに履歴情報等と一緒に記録しておいてもよい。
以上、本実施形態に係る鍵処理装置200の機能の一例を示した。上記の各構成要素は、汎用的な部材や回路を用いて構成されていてもよいし、各構成要素の機能に特化したハードウェアにより構成されていてもよい。また、各構成要素の機能を、CPU等が全て行ってもよい。従って、本実施形態を実施する時々の技術レベルに応じて、適宜、利用する構成を変更することが可能である。
なお、上述のような本実施形態に係る鍵処理装置の各機能を実現するためのコンピュータプログラムを作製し、パーソナルコンピュータ等に実装することが可能である。また、このようなコンピュータプログラムが格納された、コンピュータで読み取り可能な記録媒体も提供することができる。記録媒体は、例えば、磁気ディスク、光ディスク、光磁気ディスク、フラッシュメモリなどである。また、上記のコンピュータプログラムは、記録媒体を用いずに、例えばネットワークを介して配信してもよい。
なお、上述の暗号化装置100が鍵処理装置200の機能を併せて有していても良く、鍵処理装置200が暗号化装置100の機能を併せて有していても良い。また、ある同時通信においては、鍵処理装置200がイニシエータ(つまり暗号化装置100)として本実施形態に係るプロトコルを開始しても良い。また、ある同時通信において、暗号化装置100が、その他の参加メンバが利用する機器として、鍵処理装置200の機能を果たしても良い。
<セッション鍵の生成方法について>
続いて、図11を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図11は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
続いて、図11を参照しながら、本実施形態に係る暗号化装置100が行う暗号化方法および鍵処理装置200が行う鍵処理方法を含むセッション鍵の生成方法について、詳細に説明する。図11は、本実施形態に係るセッション鍵生成処理について説明するための流れ図である。
なお、以下の説明では、1台の暗号化装置100と(n−1)台の鍵処理装置200との間で同時通信の実現を試みるものとする。また、本実施形態に係る方式では、n人のメンバU1,U2,・・・,Unのうち、いずれかのメンバがプロトコル開始者(以下、イニシエータとも称する。)となる。以下の説明では、簡単のために、メンバU1がイニシエータであるとする。
まず、イニシエータであるメンバU1が有する暗号化装置100のパラメータ選択部121は、一時的な鍵として利用されるパラメータN1を選択し(ステップS201)、セッション情報生成部125に伝送する。
次に、暗号化装置100のメンバ情報生成部123は、同時通信に参加するメンバUi(i=2,・・・,n)に関する情報が記載されたメンバ情報Uを生成する(ステップS203)。メンバ情報生成部123は、メンバ情報Uの生成が終了すると、生成したメンバ情報Uをセッション情報生成部125に伝送する。
セッション情報生成部125は、メンバ情報Uを参照しながら、ユーザUiの公開暗号化鍵eiを用いて、各メンバUiに対し暗号化されたパラメータN1(すなわち、E(ei,N1))を生成する。セッション情報生成部125は、パラメータ選択部121から伝送されたパラメータと、メンバ情報生成部123から伝送されたメンバ情報Uと、公開情報と、に基づいて、署名が付加されたセッション情報Dを生成する(ステップS205)。この署名が付加されたセッション情報Dの生成は、上述の式111および式112に基づいて行われる。
続いて、セッション情報生成部125は、メンバ情報Uおよび署名の付加されたセッション情報Dを、通信制御部117を介して、鍵処理装置200に同報送信する(ステップS207)。
その後、セッション情報生成部125は、暗号化されたパラメータN1を、通信制御部117を介して、各鍵処理装置200に送信する(ステップS209)。
セッション情報取得部221によりセッション情報Dおよび暗号化されたパラメータN1を受信したメンバU2〜Unが有する鍵処理装置200は、まず、取得したメッセージ(セッション情報D)の検証を行う(ステップS211)。このメッセージの検証は、一時鍵算出部223により算出されたパラメータN1と、セッション情報取得部221が取得した署名が付加されたセッション情報Dとを利用して、メンバ検証部225により行われる。
メンバ検証部225による検証処理の結果、メッセージが正規のものであると確認されなかった場合には、鍵処理装置200は、セッション鍵の生成処理を中止する。他方、メンバ検証部225による検証処理の結果、メッセージが正規のものであると確認された場合には、セッション情報生成部227は、パラメータ選択部229にパラメータNiの選択を要請する。その結果、パラメータ選択部229は、パラメータNiを無作為に選択する(ステップS213)。パラメータ選択部229は、選択したパラメータNiを、セッション情報生成部227に通知する。
その後、セッション情報生成部227は、通信制御部217を介して、鍵処理装置200を保持するユーザUiを特定するユーザ情報Uiと、選択したパラメータNiとを、暗号化装置100を含む他のメンバに対して同報送信する(ステップS215)。
暗号化装置100および鍵処理装置200のセッション情報取得部は、他の鍵処理装置200から送信されたパラメータNi等を取得する(ステップS217)。これにより、(n−1)台の全ての鍵処理装置200から、ユーザ情報UiおよびパラメータNiが同報送信されることとなり、N1〜Nnまでのn個のパラメータが揃うこととなる。
その後、暗号化装置100および鍵処理装置200のセッション鍵生成部129は、N1〜Nnのn個のパラメータを用いて、セッション鍵KUを算出する(ステップS219)。このような手順により、同時通信で用いられるセッション鍵KUがそれぞれの装置で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS221)。
このように、本実施形態に係るセッション鍵の生成方法では、イニシエータU1の有する暗号化装置100が選択したパラメータN1に値して、イニシエータU1が有する秘密署名生成鍵を用いてデジタル署名を付加する。鍵処理装置200では、イニシエータU1から伝送されたメッセージの検証時に、公開署名検証鍵を用いてイニシエータU1から伝送されたセッション情報Dの検証を行う。これにより、イニシエータが特定のメンバにだけ異なるパラメータN1の値を送信することを防止することができる。
(第3の実施形態)
続いて、図12〜図16を参照しながら、本発明の第3の実施形態に係る鍵共有システムについて、詳細に説明する。
続いて、図12〜図16を参照しながら、本発明の第3の実施形態に係る鍵共有システムについて、詳細に説明する。
<鍵共有システムについて>
まず、図12を参照しながら、本実施形態に係る鍵共有システムについて、詳細に説明する。図12は、本実施形態に係る鍵共有システムについて説明するための説明図である。
まず、図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と、を主に備える。
次に、図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つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する。続いて、パラメータ選択部13は、パラメータP∈RG1と、パラメータs∈RZq *を選択し、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
また、パラメータ選択部13は、以下の4種類のハッシュ関数H1、H2、H3、H4を選択する。
H1:{0,1}* → G1
H2:G2 → {0,1}t
H3:{0,1}t → {0,1}t
H4:Zq * → {0,1}t
H2:G2 → {0,1}t
H3:{0,1}t → {0,1}t
H4:Zq * → {0,1}t
ここで、ハッシュ関数H4におけるtは、ハッシュ関数の出力長であり、例えば、t=160(すなわち、出力長160bit)などの値が設定される。
公開情報生成部15は、例えば、CPU、ROM、RAM等により実現されるものであり、パラメータ選択部13が選択した各種のパラメータやハッシュ関数の中から、公開情報(公開システムパラメータ)として公開可能なものを選択し、公開情報とする。具体的には、公開情報生成部15は、<e,G1,G2,q,P,Ppub,H1,H2,H3,H4>の組み合わせを公開情報として生成し、記憶部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(IDi)と、システムパラメータであるハッシュ関数Hとを用いて、以下の式21に基づいてメンバiの公開鍵Qiを生成する。
公開鍵Qi = H1(IDi) ・・・(式21)
公開鍵生成部19は、生成したメンバUiの公開鍵Qiを、該当するメンバUiのメンバ情報に関連づけて、記憶部27に格納することが可能である。
秘密鍵生成部21は、例えば、CPU、ROM、RAM等により実現される。秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qiと、マスター秘密鍵sとを用いて、以下の式23に基づいてメンバUiの秘密鍵Siを生成する。
秘密鍵Si = sQi ・・・(式23)
秘密鍵生成部21は、生成したメンバUiの秘密鍵Siを、該当するメンバUiのメンバ情報に関連づけて、記憶部27に格納することが可能である。
なお、メンバの公開鍵は、式21からも明らかなように、公開情報と、メンバUiのIDから生成されるものである。本実施形態に係る鍵共有システム1では、メンバUiのIDは、ユーザIDやメールアドレス等の情報であるため、任意のユーザは、公開情報と、メンバUiのIDとを用いて、公開鍵を算出することが可能である。他方、メンバUiの秘密鍵は、式23からも明らかなように、鍵生成装置10において秘匿されるマスター秘密鍵を用いて算出される値であるため、鍵生成装置10のみが生成可能である。
署名鍵生成部22は、例えば、CPU、ROM、RAM等により実現される。署名鍵生成部22は、tビットの任意の値に対して処理を実行可能なデジタル署名技術を利用して、メンバUiに固有の署名生成鍵skiおよび署名検証鍵vkiを生成する。
署名鍵生成部22は、生成したメンバUiの署名生成鍵skiおよび署名検証鍵vkiを、該当するメンバUiのメンバ情報に関連づけて、記憶部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は、本実施形態に係る暗号化装置の機能を説明するためのブロック図である。
続いて、図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は、パラメータδi∈RZq *およびパラメータki∈RZq *と、同時通信における一時鍵として利用されるtビットのパラメータriと、を選択する。パラメータ選択部131は、選択したこれらのパラメータを、メンバ情報生成部107およびセッション情報生成部135に伝送する。
なお、パラメータ選択部131は、選択したこれらのパラメータを、選択した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ情報生成部133は、例えば、CPU、ROM、RAM等により実現される。メンバ情報生成部133は、同時通信に参加するメンバUj(1≦j≦n、j≠i)の公開鍵Qjと、自身が保持する秘密鍵Siと、パラメータ選択部131により選択された一時鍵riと、公開情報と、を用いて、以下の式121に示すメンバ情報Pi jを生成する。
ここで、上記式121において、H2は、公開されているハッシュ関数の一つである。
また、メンバ情報生成部107は、生成したメンバ情報Pi jと、同時通信に参加するn−1人それぞれのメンバとの対応関係を明らかにするために、メンバ情報Pi jがどのような順番で並んでいるかを表す情報Lを、あわせて生成する。
メンバ情報生成部133は、生成したメンバ情報Pi jと、メンバ情報とメンバとの対応関係を表す情報Lと、を、セッション情報生成部135へと伝送する。
なお、メンバ情報生成部133は、生成したメンバ情報等を、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報生成部135は、例えば、CPU、ROM、RAM等により実現される。セッション情報生成部135は、パラメータ選択部131から伝送された各種パラメータと、メンバ情報生成部133から伝送されたメンバ情報Pi jおよび対応関係に関する情報Lと、公開情報と、に基づいて、メンバUiのセッション情報Diを生成する。
より詳細には、セッション情報生成部135は、まず、下記式122で表される値Viと、下記式123で表される値Wiとを算出する。その後、セッション情報生成部135は、算出した値等を用いて、下記式124で表されるセッション情報Diを生成する。このセッション情報は、複数の暗号化装置100間で行われる同時通信を特定するとともに、同時通信におけるセッション鍵を生成するために用いられる情報である。
なお、上記式123において、SIGi(x)は、署名生成鍵skiを用いて、メッセージxに対して生成したデジタル署名を表す。
セッション情報生成部135は、パラメータ選択部131が選択した乱数kiに対してデジタル署名を付加し、変更された乱数kiが特定のメンバに対して送信されることを防止している。また、乱数kiを平文のまま送信すると、メンバ以外の者も後に生成されるセッション鍵を知ることができてしまう。そのため、セッション情報生成部135は、kiを公開情報であるハッシュ関数H4に入力したものをメッセージとし、メンバUiに固有の秘密鍵である署名生成鍵skiを用いてセッション情報Diを生成する。
セッション情報生成部135は、通信制御部117を介して、生成したセッション情報Diを他の暗号化装置100へと同報送信する。また、セッション情報生成部135は、生成したセッション情報Diを、メンバ検証部139に送信する。セッション情報生成部135は、生成したセッション情報Diを、生成した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション情報取得部137は、例えば、CPU、ROM、RAM等により実現される。セッション情報取得部137は、通信制御部117を介して、他の暗号化装置100それぞれから伝送されたセッション情報Diを取得する。
セッション情報取得部137は、取得した全てのセッション情報Diを、メンバ検証部139へと伝送する。また、セッション情報取得部137は、取得したセッション情報Diを、取得した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
メンバ検証部139は、例えば、CPU、ROM、RAM等により実現される。メンバ検証部139は、同時通信に参加するメンバが正当なメンバであるか否かを検証する。より詳細には、メンバ検証部139は、自身の個人鍵と、自身が保持する暗号化装置100で選択したパラメータと、他の暗号化装置100から取得したセッション情報Djとを用いて、メンバの検証を行う。
メンバ検証部139は、他の暗号化装置100から送信されたセッション情報Djを取得すると、まず、取得したセッション情報Djに含まれる情報Lを参照して、セッション情報Djの中から、自身に対応するPj iを検出する。続いて、下記式125で表される値kj’を算出する。
続いて、メンバ検証部139は、算出したkj’と、公開情報であるハッシュ関数H4とを用いて、H4(kj’)を算出する。その後、メンバ検証部139は、セッション情報Djに含まれるWjが、算出したH4(kj’)の正当なデジタル署名になっているか否かを、メンバUjの署名検証鍵vkjを用いて確認する。
メンバ検証部139は、上述のようなメンバの検証処理を、他の暗号化装置100から取得した全てのセッション情報Djに対して実施する。
メンバ検証部139は、メンバの検証が成功した場合には、その旨を表す結果とともに、算出したkj’を、セッション鍵生成部141へと伝送する。また、メンバ検証部139は、メンバの検証が失敗した場合には、セッション鍵の生成処理を終了する。
なお、メンバ検証部139は、算出した各種の値を、算出した日時等を表す情報などと関連付けて、記憶部119などに履歴情報等と一緒に記録しておいてもよい。
セッション鍵生成部141は、例えば、CPU、ROM、RAM等により実現される。セッション鍵生成部141は、メンバ検証部139による同時通信の参加メンバの検証が成功した場合に、メンバ検証部139から伝送された複数の値kj’を用いて、同時通信にて用いられるセッション鍵Kを生成する。セッション鍵Kの生成は、以下の式126により行われる。
このようにして生成されるセッション鍵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を参照しながら、詳細に説明する。
本実施形態に係る鍵共有システム1では、センタが保持する鍵生成装置10が、各種のシステムパラメータ(すなわち公開情報)と、各メンバ用の個人鍵(すなわち公開鍵および秘密鍵ならびに署名生成鍵および署名検証鍵を含むユーザ鍵)との生成を行う。以下、本実施形態に係る鍵生成装置10が行う鍵生成処理について、図15を参照しながら、詳細に説明する。
まず、鍵処理装置10のパラメータ選択部13は、位数qと、位数qを有する2つの群G1,G2と、双線形写像eと、を所定の方法に則して選択する(ステップS21)。
続いて、パラメータ選択部13は、パラメータP∈RG1と、パラメータs∈RZq *を選択し(ステップS23)、これらのパラメータを用いて、Ppub=sPを計算する。このパラメータPは、ランダムジェネレータとも呼ばれるものである。また、パラメータsは、マスター秘密鍵として秘匿される。
次に、パラメータ選択部13は、H1、H2、H3、H4の4種類のハッシュ関数を選択する(ステップS25)。それぞれのハッシュ関数は、先だって説明した特徴を有するハッシュ関数である。
続いて、公開情報生成部15は、上述のステップで生成した各種の設定値のうち公開してもよいものを、システムパラメータ(公開情報)として公開する(ステップS27)。公開されるシステムパラメータは、例えば、<e,G1,G2,q,P,Ppub,H1,H2,H3,H4>となる。
次に、ユーザID番号やメールアドレス等といったユーザを識別するためのID(IDi)を有するメンバUiが、この鍵共有システム1に参加する際に、鍵生成部17は、以下の方法で、ユーザUiの公開鍵Qiと秘密鍵Siとを生成する(ステップS29)。
より詳細には、まず、公開鍵生成部19は、メンバ情報管理部11から取得した、要請のあったメンバに関するID(IDi)と、システムパラメータであるハッシュ関数Hとを用いて、メンバUiの公開鍵Qiを生成する。
公開鍵Qi = H1(IDi)
次に、秘密鍵生成部21は、公開鍵生成部19が生成した公開鍵Qiと、マスター秘密鍵sとを用いて、メンバUiの秘密鍵Siを生成する。
秘密鍵Si = sQi
また、署名鍵生成部22は、用いるデジタル署名技術に則した方法で、メンバUiに固有の署名生成鍵skiおよび署名検証鍵vkiを生成する(ステップS29)。
鍵生成装置10は、生成したユーザUiの個人鍵(すなわち、公開鍵Qiおよび秘密鍵Si、ならびに、署名生成鍵skiおよび署名検証鍵vki)を、該当するメンバUiに伝送する。また、鍵生成装置10は、生成したメンバUiの公開鍵Qiを、公開してもよい。
本実施形態に係る鍵共有システムを用いて同時通信の実行を試みる装置は、上述のようにして公開されたシステムパラメータと、メンバの公開鍵や秘密鍵と、を利用して、以下のような方法で同時通信に用いられるセッション鍵を生成し、互いに共有する。
<セッション鍵の生成処理>
次に、図16を参照しながら、複数の暗号化装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる暗号化装置間で同時通信の実現を試みるものとする。
次に、図16を参照しながら、複数の暗号化装置間で行われる同時通信の際に利用されるセッション鍵の生成処理について、詳細に説明する。なお、以下の説明では、全体でn台からなる暗号化装置間で同時通信の実現を試みるものとする。
まず、各メンバUiが有する各暗号化装置100のパラメータ選択部131は、パラメータδi∈RG2と、パラメータki∈RZq *と、を選択する(ステップS301)。ここで、パラメータδiは、セッション鍵の共有に用いられるパラメータである。また、各メンバUiが有する各暗号化装置100のパラメータ選択部131は、パラメータri∈R{0,1}tを選択する(ステップS301)。このパラメータriは、上記同時通信におけるセッション鍵を共有するための手続きとして選択される。
次に、各メンバUiが有する各暗号化装置100のメンバ情報生成部133は、同時通信に参加する自分以外のメンバUj(1≦j≦n,j≠i)に対して、メンバ情報Pi jを生成する(ステップS303)。このメンバ情報Pi jは、同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報である。このメンバ情報Pi jは、上記式121で表される値である。
続いて、各メンバUiが有する各暗号化装置100のセッション情報生成部135は、公開されているシステムパラメータと、選択したパラメータとを用いて、上記式124で表されるセッション情報Diを生成する(ステップS305)。
セッション情報Diの生成が終了すると、各メンバUiが有する各暗号化装置100のセッション情報生成部135は、通信制御部117を介して、生成したセッション情報Diを各暗号化装置100へ同報送信する(ステップS307)。
他の暗号化装置100から送信されたセッション情報Dj(1≦j≦n,j≠i)は、メンバUiが有する暗号化装置100のセッション情報取得部137によって受信される。セッション情報取得部137は、受信したセッション情報Djを、メンバ検証部139に伝送する。
メンバ検証部139は、まず、セッション情報Dj中に含まれる情報Lを参照し、自装置に対応するメンバ情報Pj iを検出する(ステップS309)。
続いて、メンバ検証部139は、自身に対応するメンバ情報Pj iと、セッション情報Djと、メンバUjの公開鍵Qjと、自身の秘密鍵Siを用いて、上記式125に基づきパラメータkj’を算出する(ステップS311)。
次に、メンバ検証部139は、算出したパラメータkj’と、公開情報であるハッシュ関数H4とを用いて、H4(kj’)を算出する。その後、メンバ検証部139は、セッション情報Djに含まれるWjが、算出したH4(kj’)の正当なデジタル署名になっているか否かを、メンバUjの署名検証鍵vkjを用いて検証する(ステップS313)。
メンバ検証部139は、メッセージの検証(ひいては、メンバの検証)が成功した場合には、その旨を表す結果とともに、算出したkj’を、セッション鍵生成部141へと伝送する。また、検証に失敗した場合には、メンバ検証部139は、セッション鍵の生成処理を終了する。
各暗号化装置100のセッション鍵生成部141は、メンバ検証部139によるメッセージの検証が成功した場合に、メンバ検証部139から伝送された複数の値kj’を用いて、同時通信にて用いられるセッション鍵Kを生成する(ステップS315)。セッション鍵Kの生成は、上記式126により行われる。
このセッション鍵Kがそれぞれの暗号化装置100で算出されることにより、同時通信で用いられるセッション鍵Kがそれぞれの暗号化装置100で共有できたこととなり、複数の参加者による同時通信を開始することが可能となる(ステップS317)。
このように、本実施形態に係るセッション鍵の生成方法では、各メンバが、メッセージを送信する際に、セッション鍵に作用する自装置で選択した乱数kiに対してデジタル署名を付加する。これにより、パラメータkiを、特定のメンバに対して変更して用いることを防止している。
ところで、上述の実施形態では、パラメータkiをハッシュ関数に入力したH4(ki)をメッセージとし、このメッセージに対してデジタル署名を付加している。デジタル署名方式には、メッセージ復元型と認証子付加型の2つの種類がある。認証子付加型のデジタル署名を用いる場合、任意のデータ長のメッセージに対応するために、メッセージをまずハッシュ関数に入力してから署名を生成し、検証側でもメッセージをハッシュ関数に入力した結果を用いて検証処理を行う。このように、ハッシュ関数が鍵共有システムに含まれ、メッセージをハッシュ関数に通して使うタイプのデジタル署名システムを用いる場合には、SIGi(H4(ki))の代わりにSIGi(ki)を セッション情報Diの要素としてもよい。
(ハードウェア構成について)
次に、図17を参照しながら、本発明の各実施形態に係る暗号化装置100のハードウェア構成について、詳細に説明する。図17は、本発明の各実施形態に係る暗号化装置100のハードウェア構成を説明するためのブロック図である。
次に、図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のハードウェア構成と同様の構成を有するため、詳細な説明は省略する。
(まとめ)
以上説明したように、本発明の各実施形態に係る鍵共有システムでは、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。そのため、その他のメンバが、基盤技術における方式のように、Uiの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、本発明の各実施形態に係る鍵共有システムでは、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
以上説明したように、本発明の各実施形態に係る鍵共有システムでは、各メンバから伝送されるセッション情報中に、メンバ固有の秘密鍵に依存する値を含み、各装置におけるメンバの検証時に、各メンバの公開鍵を用いてセッション情報の検証を行う。そのため、その他のメンバが、基盤技術における方式のように、Uiの公開鍵を用いた検証にパスするようなセッション情報を生成することができない。その結果、本発明の各実施形態に係る鍵共有システムでは、メンバによる攻撃を防ぐことが可能となり、安全性の向上を図ることが可能となる。
また、本発明の第1の実施形態に係る鍵共有システムでは、検証パラメータzを算出する際に、全てのセッション情報Di(i=1,・・・,n)について、セッション情報の一部であるXjについての和をとる。これにより、セッション鍵の算出の際に、計算負荷の大きな群上での掛け算の回数を大きく削減することが可能となり、セッション鍵の生成に要する計算負荷を抑制することが可能となる。
また、グループ鍵共有技術において、メンバ全員が正しく鍵を共有できたかを確認する技術は、Key Confirmationという概念として知られている。この概念を実現するための具体的方法としては、グループ鍵を共有するためのプロトコルに加え、各メンバが導出したグループ鍵が正しいことを確認することが求められる。この場合、各メンバがグループ鍵に基づいて計算する値を送信し、他のメンバの値が正しいことを確認する方法が考えられる。しかしながら、上述の方法では、グループ鍵の確認のための余計なメッセージ送受信が必要になり、1ラウンドのグループ鍵共有方式では、実現できない。しかしながら、本発明の第2の実施形態および第3の実施形態では、セッション情報中に、メンバ固有の秘密鍵に依存する値を含有させることで、1ラウンドのグループ鍵共有方式でもKey Confirmationを実現することができる。
また、Key Confirmationと関連する概念として、completenessという概念がある。この概念は、「全参加者がグループ鍵の作成に貢献した場合に限り全参加者が同じ鍵を計算可能である」という概念である。しかしながら、定数ラウンド(特に、1ラウンド)でこのcompletenessを満たす方式は、存在していなかった。しかしながら、本発明の第1の実施形態に係る方式では、上述の検証処理により、全メンバが同じパラメータrを利用していることが確認できる。また、グループ鍵は全て同報送信により送信されるため、あるユーザが別のユーザと異なる値を与えられることはない。このため、この方式は、定数ラウンド方式であるにも関わらず、completenessを満たすものとなっている。
また、Key Confirmationについては,全メンバが同じグループ鍵を共有可能であることは言えるものの、上述の方式では、各メンバが実際にグループ鍵を共有したかどうかの確認は行っていない。よって、「弱めたKey Confirmation」、すなわち、「各メンバが同じグループ鍵を導出するための情報を得られている」、という概念を考えると、上述の方式はこの概念を満たすものとなっている。
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
例えば、本発明の第2の実施形態および第3の実施形態において、ユーザに固有の秘密鍵を用いて算出される値の一例としてデジタル署名を例に挙げたが、かかる例に限定されるわけではない。デジタル署名以外に、ユーザに固有の秘密鍵や公開パラメータ等を利用して算出される値そのものを利用することも可能である。
Claims (25)
- セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える、暗号化装置。 - 前記パラメータ選択部は、パラメータδ∈RZq *およびパラメータk1∈RZq *と、前記所定のビット数を有するパラメータrと、を選択する、請求項1に記載の暗号化装置。
- 前記公開パラメータとして、位数qを有する互いに異なる2つの群G1,G2と、前記群G1の要素の組を前記群G2へと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、
前記パラメータ選択部は、パラメータδi∈RZq *およびパラメータki∈RZq *と、前記所定のビット数を有するパラメータriと、を選択し、
前記メンバ情報生成部は、下記式9に基づいて、各参加装置に対応した前記メンバ情報Piをそれぞれ生成する、請求項1に記載の暗号化装置。
ここで、下記式9において、H2は、公開されている前記ハッシュ関数の一つであり、Siは、自装置に予め割り当てられている秘密鍵であり、Qjは、各参加装置に予め割り当てられている公開鍵である。
- 前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、
前記パラメータ選択部は、所定のビット数を有するパラメータNiを選択し、
前記セッション情報生成部は、下記式15で表されるデジタル署名が付加されたメッセージDと、暗号文E(ei,N1)(i=2,・・・,n)とを生成する、請求項1に記載の暗号化装置。
ここで、下記式15において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
- 暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ、前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える、鍵処理装置。 - 前記公開パラメータとして、位数qを有する互いに異なる2つの群G1,G2と、前記群G1の要素の組を前記群G2へと写像する双線形写像eと、複数の異なるハッシュ関数と、2つのパラメータP,Ppubと、が公開されており、
前記セッション鍵取得部は、前記暗号化装置から、下記式17で表される前記セッション情報D1を取得し、
前記一時鍵算出部は、前記暗号化装置から伝送された前記セッション情報D1に含まれる、自装置に対応するメンバ情報Piおよびパラメータδと、前記秘密鍵と、前記暗号化装置に予め割り当てられている公開鍵と、前記公開パラメータと、を用いて、下記式18により一時鍵r’を算出する、請求項13に記載の鍵処理装置。
ここで、下記式17におけるHBおよび下記式10におけるHAは、公開されている前記ハッシュ関数の一つである。
- 前記セッション情報取得部は、前記同時通信に参加する他の参加装置から、前記式19で表される前記セッション情報を取得し、
前記鍵処理装置は、自装置にて生成した前記セッション情報と、前記暗号化装置から取得した式17で表される前記セッション情報D1と、前記他の参加装置から取得した前記セッション情報と、を用いて、前記同時通信に参加する機器の正当性を検証するメンバ検証部を更に備え、
前記メンバ検証部は、下記式20で表される検証パラメータzを算出し、下記式21が成立するか否かに基づいて、前記同時通信に参加する機器の正当性を検証する、請求項15に記載の鍵処理装置。
ここで、下記式20および式21における変数nは、前記暗号化装置、前記鍵処理装置および前記他の参加装置の個数の和を表す。
- 前記公開パラメータとして、所定の情報を暗号化する暗号化関数E、暗号化された情報を復号する復号関数D、所定の情報にデジタル署名を付加する署名生成関数S、および、デジタル署名の検証を行う署名検証関数Vと、ハッシュ関数とが公開されており、
前記鍵処理装置は、前記暗号化装置から取得した下記式23で表される前記セッション情報と、前記一時鍵算出部により算出された一時鍵とを用いて、前記暗号化装置の正当性を検証するメンバ検証部を更に備え、
前記一時鍵算出部は、前記暗号化装置から伝送された暗号文E(ei,N1)を自装置が保持する秘密鍵を用いて復号して、前記一時鍵としてパラメータN1を算出し、
前記メンバ検証部は、下記式23で表される前記セッション情報に付加されたデジタル署名の検証結果と、前記ハッシュ関数と前記パラメータN1とを用いて算出されたh(N1)とに基づいて、前記暗号化装置の検証を行う、請求項13に記載の鍵処理装置。
ここで、下記式23において、S(s,x)は、所定の署名生成鍵sを用いて情報xに対して生成したデジタル署名を表し、E(e,x)は、公開鍵eを用いて情報xを暗号化した暗号文を表す。
- 前記パラメータ選択部は、前記メンバ検証部による検証が成功した場合に、所定のビット数を有するパラメータNiを選択し、
前記セッション情報生成部は、前記パラメータ選択部により選択されたパラメータNiを、前記セッション情報として前記暗号化装置および前記他の参加装置に送信する、請求項18に記載の鍵処理装置。 - セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するステップと、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するステップと、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するステップと、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するステップと、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
を含む、暗号化方法。 - 暗号化装置から伝送された、当該暗号化装置との間で行われるセッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報を取得するステップと、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出するステップと、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するステップと、
選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成ステップと、
前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報を取得するステップと、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するステップと、
を含む、鍵処理方法。 - 他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
前記セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択機能と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成機能と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成機能と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得機能と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
を実現させるためのプログラム。 - 暗号化装置および他の情報処理装置との間で、セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行うことが可能なコンピュータに、
前記暗号化装置から伝送された、当該暗号化装置との間で行われる同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられ前記同時通信に参加する参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるセッション情報と、前記他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得機能と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出機能と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択機能と、
選択された前記パラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成機能と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成機能と、
を実現させるためのプログラム。 - セッション鍵共有後に行うセッション鍵を用いて保護したメッセージの交換である同時通信を行う他の情報処理装置との間で、当該セッション鍵を共有する際に利用されるパラメータを選択するとともに、前記同時通信における前記セッション鍵を共有するための手続きとしてパラメータを選択するパラメータ選択部と、
前記同時通信に参加する前記情報処理装置である参加装置に一時的な鍵として利用されるパラメータを送信するための情報であるメンバ情報を、前記パラメータ選択部により選択されたパラメータと、予め公開されている公開パラメータと、自装置に予め割り当てられている秘密鍵と、前記参加装置に予め割り当てられている公開鍵と、を用いて生成するメンバ情報生成部と、
前記メンバ情報と、前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、を用いて、前記同時通信を特定するとともに前記同時通信におけるセッション鍵を生成するために用いられるセッション情報を生成するセッション情報生成部と、
それぞれの前記参加装置から、当該参加装置により生成された他の前記セッション情報を取得するセッション情報取得部と、
自装置が生成した前記セッション情報と、前記参加装置が生成した前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える暗号化装置と、
前記暗号化装置から伝送されたセッション情報と、前記同時通信に参加する他の参加装置から伝送された、前記暗号化装置から伝送される前記セッション情報とは異なるセッション情報と、を取得するセッション情報取得部と、
前記暗号化装置から伝送された前記セッション情報と、前記暗号化装置に予め割り当てられている公開鍵と、自装置に予め割り当てられている秘密鍵と、予め公開されている公開パラメータと、を用いて、前記暗号化装置にて設定された同時通信における一時的な鍵を算出する一時鍵算出部と、
自装置において生成され前記暗号化装置へと伝送されるセッション情報を算出する際に用いられるパラメータを選択するパラメータ選択部と、
前記パラメータ選択部により選択されたパラメータと、前記公開パラメータと、前記秘密鍵と、前記暗号化装置から伝送されたセッション情報と、を用いて、前記暗号化装置および前記他の参加装置へと伝送されるセッション情報を生成するセッション情報生成部と、
前記自装置が生成した前記セッション情報と、前記暗号化装置から伝送された前記セッション情報と、前記他の参加装置から伝送された前記セッション情報と、を用いて、前記セッション鍵を生成するセッション鍵生成部と、
を備える鍵処理装置と、
を含む、鍵共有システム。
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)
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)
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 | 西安西电捷通无线网络通信有限公司 | 一种基于单播会话密钥的组播密钥分发方法及其更新方法 |
-
2009
- 2009-10-21 JP JP2010534836A patent/JPWO2010047356A1/ja not_active Withdrawn
- 2009-10-21 WO PCT/JP2009/068147 patent/WO2010047356A1/ja active Application Filing
- 2009-10-21 US US13/122,233 patent/US20110194698A1/en not_active Abandoned
- 2009-10-21 CN CN2009801401603A patent/CN102177677A/zh active Pending
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 |