鍵共有システム
【課題】サーバと端末間で高強度セキュリティを要求される通信に対しての公開鍵暗号を用いた鍵共有において、端末から得られる情報は極力小さくし、かつ、サーバのなりすましを防御する。
【解決手段】公開鍵暗号のドメインパラメータおよび秘密鍵と公開鍵を端末毎に生成するパラメータ生成手段はドメインパラメータから成るビット列に対してのハッシュ値を計算し、サーバは端末毎にパラメータ生成手段が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持し、端末はパラメータ生成手段が生成する公開鍵およびハッシュ値のみの組から成るリストを保持する。鍵共有時にはサーバはドメインパラメータを端末に送信し、端末は受信したドメインパラメータのハッシュ値を計算し、保持しているハッシュ値を用いて検証を行ったのちに鍵共有の手続きを開始する。
【解決手段】公開鍵暗号のドメインパラメータおよび秘密鍵と公開鍵を端末毎に生成するパラメータ生成手段はドメインパラメータから成るビット列に対してのハッシュ値を計算し、サーバは端末毎にパラメータ生成手段が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持し、端末はパラメータ生成手段が生成する公開鍵およびハッシュ値のみの組から成るリストを保持する。鍵共有時にはサーバはドメインパラメータを端末に送信し、端末は受信したドメインパラメータのハッシュ値を計算し、保持しているハッシュ値を用いて検証を行ったのちに鍵共有の手続きを開始する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、公開鍵暗号を用いて2エンティティ間において秘密情報を共有する鍵共有システムに関する。
【背景技術】
【0002】
近年、通信による情報交換が盛んに行われており、通信秘匿のための暗号化は必須の技術である。現代暗号では、アルゴリズムを公開しても暗号の鍵を秘密にすることによって通信秘匿を実現している。そのため、暗号を用いた通信ではデータを暗号化するための鍵を、通信を行う両者でどのように共有するのかが課題となる。
【0003】
現代暗号は、主に対称鍵暗号と公開鍵暗号に分類される。前者はDESやAESなどのブロック暗号が代表的で、送信側と受信側が予め同一の鍵を持っていることを前提とする。後者はRSA暗号が代表的で、暗号化と復号で使用する鍵が異なり、暗号化で使用する鍵は公開鍵、復号で使用する鍵は秘密鍵と呼ばれる。秘密鍵から公開鍵を生成することは容易だが、その逆は非常に困難という性質を持つ。このため、公開鍵は公開してあっても秘密鍵の漏洩がなければ公開鍵で暗号化した情報は秘密鍵を持つ者のみが復号可能である。
【0004】
しかしながら、公開鍵暗号は対称暗号よりも非常に大きな計算量が必要であるため、公開鍵暗号を用いて対称鍵暗号で使用する鍵(セッション鍵と呼ばれる)を共有し、実際のデータは対称鍵暗号を用いて暗号化処理を行うことが多い。
【0005】
公開鍵暗号を使用する際には、公開鍵暗号で使用する演算を定義するドメインパラメータや公開鍵が正しいことを保証する必要がある。有限体上の離散対数を用いる方式の場合には、ドメインパラメータは剰余系演算を定める素数pと離散対数問題の生成元となるmod pの元g(mod p)からなり、秘密鍵x(mod q)に対して公開鍵はy=gx(mod p)と一般に定められる。ここで、qはgの位数、すなわちga=1(mod p)となる最小の自然数aである。
【0006】
ここでは、ドメインパラメータと公開鍵を併せて公開情報と呼ぶことにする。公開情報の正当性は、認証局による公開鍵証明書に基づく方式がよく知られている。その一方で、閉じたシステムでは、信頼できる機関から公開情報を直接入手するようにすることによって信頼性を確保することが可能となる。
【0007】
例えば、図8に示すような暗号通信システムのモデルはパラメータ生成手段101、サーバ102および端末103から構成される。サーバ1台に対して端末は複数存在する。各端末は直接的にはサーバとのみ通信を行う。パラメータ生成手段は端末配布時に公開鍵暗号のパラメータ、鍵情報を生成し、サーバと端末に必要な情報を設定してから、端末をユーザに渡す。パラメータ生成手段101とサーバ102は同一の装置で実現される場合もある。
【0008】
Diffie-Hellmanアルゴリズムに基づく鍵共有方式では、十分大きな素数qに対して(p−1)がqで割り切れるような素数pを生成する。このときgq=1(mod p)となる1ではない元gが存在する。エンティティA、B間のDiffie-Hellman鍵共有は次の表1に示すように行われる。
【0009】
【表1】
【0010】
表1におけるr、sが秘密鍵、gr(mod p)、gs(mod p)が公開鍵となる。両者は共通の秘密g(rs)(mod p)を共有することができ、gr(mod p)とgs(mod p)からg(rs)(mod p)を求めることは離散対数問題と同程度に難しいと考えられている。
【0011】
しかしながら、Diffie-Hellmanアルゴリズムは、gr(mod p)やgs(mod p)を盗聴して秘密情報を求める受動的な攻撃には強いが、なりすましなどの能動的な攻撃に弱いことが知られている。そこで、Diffie-Hellmanアルゴリズムを用いる際には通信相手を認証することが必須となる。
【0012】
そこで、認証付鍵共有に関しては、例えば非特許文献1に記載されている方法が知られている。
【0013】
以下、非特許文献1に記載されている認証付鍵共有の方法を述べる。認証付鍵共有では主に認証で使用する固定鍵と、セッション鍵生成のためのみに使用する一時鍵が存在する。固定鍵はエンティティ間で事前に保持しておく秘密鍵と公開鍵で、長期にわたって保持する鍵であり、固定公開鍵を用いて相手が固定秘密鍵を持っていることを検証することが可能となり、認証を実現することができる。一方、一時鍵はDiffie-Hellmanアルゴリズムにおいてセッション鍵生成時に発生させる乱数を用いて生成する秘密鍵と公開鍵である。
【0014】
固定秘密鍵が一方のみに存在する場合の鍵共有方法として、非特許文献1ではC(1,1)という方法が述べられている。C(1,1)の最初の‘1’は一時鍵の個数であり、2番目の‘1’が固定鍵の個数を表している。
【0015】
図9はC(1,1)におけるパラメータ生成手段の処理およびサーバと端末が持つ固定鍵に関する情報の例を示している。端末に設定する固定鍵のインデックスi=1,2,…,Lに対して次の処理を行う。
【0016】
パラメータ生成手段101によって、(p(i),q(i),g(i),x(i),y(i))の組が生成され、サーバ102は、生成された (p(i),q(i),g(i),x(i),y(i))の組のリスト201を保持する。また、端末103は(p(i),g(i),y(i))の組のリスト202を保持する。
【0017】
このように端末でサーバに対しての固定公開鍵を設定することによって、端末ではサーバのなりすましを検証することが可能となる。
【0018】
以下、図10に基づき端末103とサーバ102とを有する通信モデルにC(1,1)を適用した場合の認証付き鍵共有の手続きを述べる。端末103はサーバ102に対して端末IDを送信する(ステップS1001)。サーバ102は端末103に対してのパラメータリストの中で使用するパラメータのインデックスiを決定し(ステップS1002)、端末103に送信する(ステップS1003)。ここで、事前に使用するパラメータのインデックスに関しての取り決めがある場合にはこれらのステップは省略することができる。
【0019】
端末103は乱数r(1<r<q(i))を生成し(ステップS1004)、一時公開鍵w=g(i)r(mod p(i))を求めて(ステップS1005)、サーバ102に送信する(ステップS1006)。通常は、ここでサーバ102は一時公開鍵wの正当性をチェックする処理を行う。すなわち、wは0,1ではなく、wq(i)=1(mod p(i))が成り立つことを検証する。
【0020】
端末103はrと固定公開鍵y(i)を用いてz=y(i)r(mod p(i))=g(rx(i))(mod p(i))を計算する(ステップS1007)。生成されたzと端末−サーバ間の共有情報(公開情報でよい)であるotherinfoを入力とする鍵導出関数kdfを用いてセッション鍵k=kdf(w,otherinfo)を生成する(ステップS1008)。鍵導出関数にはハッシュ関数を適用することが望ましい。otherinfoは端末IDなど、端末固有の情報を含むようにする。ハッシュ関数を使用する場合はwとotherinfoを連接したビット列をハッシュ関数の入力とする。ハッシュ関数に関しては、例えば非特許文献2に述べられている。
【0021】
サーバ102では受信したwを用いてZ=wx(i)(mod p(i))=grx(i)(mod p(i))を計算する(ステップS1009)。正しく処理を行えていれば端末103とサーバ102でZ=zを共有することができる。サーバ102では端末103と同一のotherinfoとZを用いて鍵導出関数kdfを用いてセッション鍵K=kを導出する(ステップS1010)。
【0022】
図11は、サーバSでも一時秘密鍵を生成する方法を示しており、もし仮に、サーバの固定秘密鍵が漏洩した場合でも、過去のセッション鍵を求めることはできないようにすることが可能である。以下、図10と対比しての差異部分を示す。
【0023】
サーバ102でインデックスi送信後、乱数aを生成し(ステップS1104)、一時公開鍵b=g(i)a(mod p(i))を生成し(ステップS1105)、端末103に送信する(ステップS1108)。サーバ102ではC=wa(mod p(i))=g(ra)(mod p(i))を生成し(ステップS1110)、端末103はc=g(ar)(mod p(i))を生成する(ステップS1114)。正しく処理を行えていればサーバ102と端末103でC=cを共有することができる。サーバ102ではZ,Cとotherinfoを用いてセッション鍵kを導出する(ステップS1112)。同様に端末103ではz,cとotherinfoを用いてセッション鍵K=kを導出する(ステップS1115)。
【0024】
また、安全な鍵共有を行うためには図12に示すような同一のセッション鍵を共有していることを双方で確認するステップが欠かせない。この確認には、メッセージ認証を使用することができる。メッセージ認証に関しては、例えば非特許文献3に述べられている共通鍵暗号を利用する方法が適用できる。
【0025】
図12に示す、サーバ102におけるセッション鍵の確認手続きについて以下に説明する。セッション鍵Kの一部を共通鍵暗号用の秘密鍵K1に、残りをメッセージ認証用の秘密鍵K2に割り当てる(ステップS1201)。K2を秘密鍵として、メッセージ認証用データMac_Data_S_Tのメッセージ認証子Mを生成し(ステップS1202)、端末103に送信する(ステップS1205)。Mac_Data_S_Tはサーバ102と端末103で共有可能な公開データ、一時公開鍵やIDなどから成るデータで構成する。
【0026】
端末103から送られてきたメッセージ認証子mを鍵K2とメッセージ認証用データMac_Data_T_Sを用いて検証する(ステップS1207)。また、端末103では、上記サーバ102と同様の手順により、Mac_Data_T_Sのメッセージ認証子mを生成後、送信し、サーバ102より送られてきたメッセージ認証子Mの検証を行う。Mac_Data_T_SはMac_Data_S_Tと同様のデータであるが、両者は異なる必要がある。
【0027】
以上、有限体上の離散対数問題を用いた鍵共有方式を説明したが、非特許文献1が示すように有限体上の楕円曲線の有理点のなす加群を用いても同様の鍵共有を行うことができる。楕円曲線を用いることによってパラメータを小さく設定しても安全性を保つことができ、処理速度を上げることが可能となる。
【0028】
また、特許文献1では、楕円曲線上の離散対数問題に基づく暗号化方式を採用することで、鍵長サイズを削減するとともに、端末間でやり取りしたデータの正当性の検証を行う発明が記載されている。
【特許文献1】特開2007−13564号公報
【非特許文献1】NIST Special Publication (SP) 800-56A,「Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography」、2006年
【非特許文献2】NIST Federal Information Processing Standards (FIPS) Publication 180-2, 「Specifications for the ECURE HASH STANDARD」2002年
【非特許文献3】NIST Special Publication (SP) 800-38B 「Recommendation for Block Cipher Modes of Operation: the CMAC Mode for Authentication」2005年
【発明の開示】
【発明が解決しようとする課題】
【0029】
しかしながら、ドメインパラメータや公開鍵を端末に事前に設定しておく場合、その端末は比較的長期にわたってその設定を利用することになる。そのために、攻撃者が端末のそれらの情報を入手した際には比較的長期にわたってそのドメインパラメータに対しての攻撃機会を与えることになる。
【0030】
特許文献1においては、正当性検証により、保護はされるが、高強度セキュリティを要求されるアプリケーションにおいてはそのような状況は望ましくなく、攻撃者が端末から得られる情報は極力小さくすることが望まれる。そのためには端末には何の鍵情報も事前に格納せずに、セッション開始時に公開情報をサーバが端末に送付する方法が考えられる。
【0031】
しかし、このときサーバのなりすましが容易に行えてしまうという課題がある。また、不正なサーバが不正なドメインパラメータを送付した場合には固定秘密鍵がたとえ漏洩していなくても安全性が損なわれる場合がある。
【0032】
本発明は、上記問題点に鑑みてなされたもので、端末の情報が漏洩してもドメインパラメータの情報を得ることが不可能な高強度セキュリティを実現する。
【課題を解決するための手段】
【0033】
上記課題を解決するため、本発明における鍵共有システムは、公開鍵暗号のドメインパラメータおよび秘密鍵、公開鍵を端末毎に生成するパラメータ生成手段を有するパラメータ生成装置と、サーバと、端末間とで秘密情報を共有する鍵共有システムにおいて、パラメータ生成装置は、ドメインパラメータから成るビット列に対してのハッシュ値を計算するハッシュ値計算手段を有し、サーバは、端末毎にパラメータ生成装置が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持する第1の保持手段を備え、端末は、パラメータ生成装置が生成する公開鍵およびハッシュ値の組から成るリストを保持する第2の保持手段を備えることを特徴とする。
【0034】
パラメータ生成装置は、ドメインパラメータから成る前記ビット列と同一長の乱数を生成して、ハッシュ値との排他的論理和を求める排他的論理和生成手段を有し、サーバは、第1の保持手段により、パラメータ生成手段が生成するドメインパラメータ、秘密鍵および排他的論理和を求めた結果を含むリストを保持し、端末は、第2の保持手段により、パラメータ生成手段が生成するハッシュ値と公開鍵に乱数を追加した組から成るリストを保持することを特徴とする。
【0035】
パラメータ生成装置は、有限体上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする。
【0036】
パラメータ生成装置は、有限体係数の楕円曲線上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする。
【0037】
サーバ及び端末は、回線装置の暗号化のための補助手段として動作することを特徴とする。
【0038】
サーバは、第1の保持手段により、回線装置に付随するパスワードデータを保持し、端末は、回線装置に対するパスワードを外部から取り込むパスワード入力手段を備え、パスワードを含むデータを用いてセッション鍵を導出することを特徴とする。
【0039】
パラメータ生成装置は、サーバ上に組み込まれていることを特徴とする。
【発明の効果】
【0040】
本発明により、端末の情報が漏洩しても攻撃者はドメインパラメータの情報を得ることができないため、事前の攻撃は不可能である。さらに、端末がドメインパラメータのハッシュ値を持つことによって不正なサーバから不正なパラメータを送付された場合でもチェックすることが可能となる。また、端末が公開鍵を予め格納しておくことにより、共有セッション鍵を検証する過程において固定秘密鍵を持たない不正なサーバをチェックすることが可能となる。さらに、サーバと端末間でドメインパラメータを分散保持し、セッション開始時にはサーバは分散情報のみを送ることによって通信路上の情報のみからはドメインパラメータを求めることは不可能となる。また、既存の回線装置やそれに付随するパスワードを組み合わせることによって端末(ユーザ)の識別を可能にすることができる。
【発明を実施するための最良の形態】
【0041】
本発明ではサーバと端末の安全性は大きく異なる状況を想定する。つまり、サーバは安全な場所にあり、秘密情報の漏洩や不正な処理などのリスクは非常に小さいと仮定する一方、端末は盗難や情報流出の危険性が高いと仮定する。このようなモデルでは端末に固定秘密鍵を設定しても有効性は低いため、サーバのみに固定秘密鍵を設定する方法が適している。
【0042】
図1は、本発明の実施形態におけるパラメータ生成手段101の動作と、サーバ102および端末103が保持する情報を示している。パラメータ生成手段101は端末が与えられたときに公開鍵パラメータリストのインデックスi=1,2,..,Lに対して次の処理を行う。ここでLはその端末に対するパラメータの個数の上限である。
【0043】
ドメインパラメータp(i),g(i)およびq(i),秘密鍵x(i),公開鍵y(i)を生成する。次に、p(i)とg(i)を連接したビット列であるp(i)||g(i)を入力データとするハッシュ値h(i)=Hash(p(i)||g(i))を求める。サーバ102は従来技術と同様にp(i),g(i),q(i),x(i),y(i)を格納する。端末103にはハッシュ値h(i)と公開鍵y(i)のみを格納する。
【0044】
次に図2を用いて、本発明の実施形態におけるサーバ102と端末103の間での鍵共有の手続きを示す。従来技術と同様に、端末103はサーバ102に対して端末IDを送信し(ステップS1001)、サーバ102は103に対してのパラメータリストの中で使用するパラメータのインデックスiを決定する(ステップS1002)。
【0045】
サーバ102は、インデックスiと対応するp=p(i)およびg=g(i)を連接したビット列p||gを求め、送信する(ステップS201、S202)。端末103では受信したp||gに対してハッシュ値Hash(p||g)を計算し、格納しているh(i)と比較する(ステップS203)。一致していない場合は不正なパラメータが送付されたとして鍵共有処理を終了する。p,gの正当性が確認できたら従来通りの鍵共有処理を行う(図10におけるステップS1003からステップS1009と同様の処理を実行)。
【0046】
本発明のようにp,gを端末に格納しないことによって、端末が盗難されて情報が漏洩したとしてもハッシュ値h(i)と公開鍵y(i)のみが漏洩するだけで攻撃者はp(i)やg(i)の情報を得ることは無いため特定パラメータの離散対数問題の攻撃の機会を与えることはない。また、不正なサーバがなりすまして不正なパラメータを送付した場合にはハッシュ値h(i)によって確かめることができる。また、不正なサーバが一度送付されたインデックスi,p(i),g(i)をコピーしておき再度送信する応答攻撃に対しては不正なサーバは秘密鍵x(i)を保有していないため、Diffie-Hellmanのアルゴリズムにおいて端末と同一のセッション鍵を生成することができないため、図1に示したようなセッション鍵の共有確認処理によって安全性を保つことができる。
【0047】
図3は、図11にて説明した、サーバでも一時秘密鍵を生成する鍵共有方式に対して本発明を組み合わせた動作を示す図である。本発明によって図11に示したサーバの固定秘密鍵x(i)漏洩時でも過去のセッション鍵の秘匿と、端末情報漏洩時の安全性向上を実現可能となる。処理手順については、インデックスi決定後(ステップS1102)、上記で説明したステップS201からS203を行い、その後の動作は、図11で説明したステップS1104からS1115と同様である。
【0048】
図4は、本発明の他の実施形態であり、p(i)||g(i)を乱数でバーナム暗号化(秘密分散)した形で送付することによって、通信路を盗聴しただけではp(i)とg(i)の情報を得ることができないようにした方法である。以下、パラメータ生成手段101の処理について詳細に説明する。
【0049】
従来と同様にドメインパラメータp(i),g(i),q(i)および秘密鍵x(i)と公開鍵y(i)を生成後、図1と同様にハッシュ値h(i)=Hash(p(i)||g(i))を生成する。次に、p(i)||g(i)と同一長の乱数R(i)を生成し、U(i)=R(i)+(p(i)||g(i))を計算する。ここで、‘+’は排他的論理和を示す。このとき、パラメータ生成手段101はサーバ102には公開情報と秘密鍵に加えてU(i)を、端末103にはh(i),y(i)とR(i)を設定する。
【0050】
図5は、図11で示した鍵共有方式に対して、本実施形態を適用した場合の鍵共有処理の手続きを示している。以下、図10にしたがって鍵共有処理の説明を行う。
【0051】
まず、従来と同様に端末103は端末IDをサーバ102に送信し(ステップS1101)、サーバ102はパラメータのインデックスiを決定する(ステップS1102)。サーバ102はインデックスiとU(i)を端末103に送信する(ステップS501)。端末103は受信したU(i)と格納しているR(i)からR(i)+U(i)を計算し、p||gに割り当て(ステップS502)、端末103はハッシュ値h=Hash(p||g)を計算し、格納しているh(i)と比較する(ステップS503)。一致していない場合は不正なパラメータが送付されたとして鍵共有処理を終了する。p,gの正当性が確認できたら従来通りの鍵共有処理を行う(図11におけるステップS1104からステップS1115と同様の処理を実行)。
【0052】
本実施形態における方法を用いることによって、通信路上のデータを取得するだけではp(i), g(i)を得ることは不可能となり、安全性を高めることが可能となる。
【0053】
以上、本発明は有限体上の離散対数問題を用いた鍵共有方式を説明したが、非特許文献1が示すように有限体上の楕円曲線の有理点のなす加群を用いても同様の鍵共有を行うことができる。楕円曲線を用いることによってパラメータを小さく設定しても安全性を保つことができ、処理速度を上げることが可能となる。
【0054】
また、本発明で想定するような端末に格納した情報が漏洩するリスクが高いことを想定するモデルでは端末のなりすましに対して防御することは困難となる。そこで端末側の安全性を高めるためには他の手段を併用する必要がある。
【0055】
図6は、例えば本発明を電話などの従来の回線装置の補助手段として利用する形態を示している。図6でサーバ102および端末103は本発明における鍵共有を行う端末で、通信を行う電話機などの回線端末601、602の補助手段として機能する。端末103に付属する回線装置は、例えば携帯電話が利便性に優れている。
【0056】
図6に示すように回線装置の補助手段と本発明を利用することで、従来の回線システムによって回線装置が特定できるため、端末側で利用できる電話機を特定しておくことによって、端末自体のなりすましの防止は難しいが不特定の電話機での使用はできなくなるために安全性の向上を図ることが可能となる。
【0057】
図6の回線装置を併用した方式の安全性を更に向上させることは、回線装置(電話機)とユーザを対応づけてユーザによるパスワード認証を行うことによって実現できる。この場合、図7に示すように、サーバ102は公開鍵暗号のドメインパラメータや鍵情報等の他に端末側の回線装置のID(電話番号)と対応するパスワードリスト702を保持する。端末側ではユーザは利用時にパスワード701を入力する必要がある。パスワードの認証は、図11に示した鍵導出関数の入力となるサーバ-端末間の共有情報otherinfoに含めることで実現可能である。パスワードが一致しない場合は導出されるセッション鍵は一致しないため、通常のセッション鍵共有の確認過程に含める形でユーザ認証が可能になる。
【0058】
また、例えばNIST Special Publication (SP) 800-57, 「Recommendati for Key Management」2006年を参考に高度な安全性を実現するためのパラメータ設定が可能である。非特許文献3によると、2030年まで利用する場合に推奨される離散対数のパラメータの値pが2048ビット、qが224ビットとなる。また、使用するハッシュ関数は非特許文献2に記載されているSHA−224、SHA−256、SHA−384、SHA−512のいずれかとなる。本実施形態については、SHA−256を用いることとする。
【0059】
共通鍵暗号は鍵長128ビットのAES、セッション鍵共有確認のためのメッセージ認証も128ビットのAESを用いて非特許文献3の方式を適用すると、図11の鍵導出関数kdf()は2048ビットのDiffie-Hellmanアルゴリズムによる共有情報とotherinfoを連接したビット列をSHA−256に入力してハッシュ値を求めることになる。
【0060】
図7のようにユーザのパスワードも利用する場合には、更にパスワードを連接したビット列をSHA−256の入力とする。SHA−256の出力の256ビットに対して、前半128ビットをデータ暗号化に利用するAESの秘密鍵K1に、後半128ビットをメッセージ認証用の秘密鍵K2として利用する。図1で示した、本発明におけるp||gに対するハッシュ値の生成にも前述のSHA−256を利用することができる。
【0061】
パラメータのリストのサイズは、例えば2年間毎日変更する場合、図1の端末が保持するデータ量はハッシュ値256ビットと公開鍵2048ビットのペアが712個となり、約1.64メガビットのデータ量となる。
【0062】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。
【図面の簡単な説明】
【0063】
【図1】本発明の実施形態におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図2】本発明の実施形態における鍵共有処理を示す図である。
【図3】本発明の実施形態においるサーバ側で一時秘密鍵を利用する場合の処理を示す図である。
【図4】本発明の別の実施形態におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図5】本発明の別の実施形態における鍵共有処理を示す図である。
【図6】本発明の適用例を示す図である。
【図7】本発明の適用例を示す図である。
【図8】通信モデルを示す図である。
【図9】従来技術におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図10】従来技術における鍵共有処理を示す図である。
【図11】従来技術におけるサーバ側で一時秘密鍵を利用する場合の処理を示す図である。
【図12】従来技術における共有セッション鍵を相互で検証する過程を示す図である。
【符号の説明】
【0064】
101 パラメータ生成手段
102 サーバ
103 端末
104、105 回線装置
701 パスワード
【技術分野】
【0001】
本発明は、公開鍵暗号を用いて2エンティティ間において秘密情報を共有する鍵共有システムに関する。
【背景技術】
【0002】
近年、通信による情報交換が盛んに行われており、通信秘匿のための暗号化は必須の技術である。現代暗号では、アルゴリズムを公開しても暗号の鍵を秘密にすることによって通信秘匿を実現している。そのため、暗号を用いた通信ではデータを暗号化するための鍵を、通信を行う両者でどのように共有するのかが課題となる。
【0003】
現代暗号は、主に対称鍵暗号と公開鍵暗号に分類される。前者はDESやAESなどのブロック暗号が代表的で、送信側と受信側が予め同一の鍵を持っていることを前提とする。後者はRSA暗号が代表的で、暗号化と復号で使用する鍵が異なり、暗号化で使用する鍵は公開鍵、復号で使用する鍵は秘密鍵と呼ばれる。秘密鍵から公開鍵を生成することは容易だが、その逆は非常に困難という性質を持つ。このため、公開鍵は公開してあっても秘密鍵の漏洩がなければ公開鍵で暗号化した情報は秘密鍵を持つ者のみが復号可能である。
【0004】
しかしながら、公開鍵暗号は対称暗号よりも非常に大きな計算量が必要であるため、公開鍵暗号を用いて対称鍵暗号で使用する鍵(セッション鍵と呼ばれる)を共有し、実際のデータは対称鍵暗号を用いて暗号化処理を行うことが多い。
【0005】
公開鍵暗号を使用する際には、公開鍵暗号で使用する演算を定義するドメインパラメータや公開鍵が正しいことを保証する必要がある。有限体上の離散対数を用いる方式の場合には、ドメインパラメータは剰余系演算を定める素数pと離散対数問題の生成元となるmod pの元g(mod p)からなり、秘密鍵x(mod q)に対して公開鍵はy=gx(mod p)と一般に定められる。ここで、qはgの位数、すなわちga=1(mod p)となる最小の自然数aである。
【0006】
ここでは、ドメインパラメータと公開鍵を併せて公開情報と呼ぶことにする。公開情報の正当性は、認証局による公開鍵証明書に基づく方式がよく知られている。その一方で、閉じたシステムでは、信頼できる機関から公開情報を直接入手するようにすることによって信頼性を確保することが可能となる。
【0007】
例えば、図8に示すような暗号通信システムのモデルはパラメータ生成手段101、サーバ102および端末103から構成される。サーバ1台に対して端末は複数存在する。各端末は直接的にはサーバとのみ通信を行う。パラメータ生成手段は端末配布時に公開鍵暗号のパラメータ、鍵情報を生成し、サーバと端末に必要な情報を設定してから、端末をユーザに渡す。パラメータ生成手段101とサーバ102は同一の装置で実現される場合もある。
【0008】
Diffie-Hellmanアルゴリズムに基づく鍵共有方式では、十分大きな素数qに対して(p−1)がqで割り切れるような素数pを生成する。このときgq=1(mod p)となる1ではない元gが存在する。エンティティA、B間のDiffie-Hellman鍵共有は次の表1に示すように行われる。
【0009】
【表1】
【0010】
表1におけるr、sが秘密鍵、gr(mod p)、gs(mod p)が公開鍵となる。両者は共通の秘密g(rs)(mod p)を共有することができ、gr(mod p)とgs(mod p)からg(rs)(mod p)を求めることは離散対数問題と同程度に難しいと考えられている。
【0011】
しかしながら、Diffie-Hellmanアルゴリズムは、gr(mod p)やgs(mod p)を盗聴して秘密情報を求める受動的な攻撃には強いが、なりすましなどの能動的な攻撃に弱いことが知られている。そこで、Diffie-Hellmanアルゴリズムを用いる際には通信相手を認証することが必須となる。
【0012】
そこで、認証付鍵共有に関しては、例えば非特許文献1に記載されている方法が知られている。
【0013】
以下、非特許文献1に記載されている認証付鍵共有の方法を述べる。認証付鍵共有では主に認証で使用する固定鍵と、セッション鍵生成のためのみに使用する一時鍵が存在する。固定鍵はエンティティ間で事前に保持しておく秘密鍵と公開鍵で、長期にわたって保持する鍵であり、固定公開鍵を用いて相手が固定秘密鍵を持っていることを検証することが可能となり、認証を実現することができる。一方、一時鍵はDiffie-Hellmanアルゴリズムにおいてセッション鍵生成時に発生させる乱数を用いて生成する秘密鍵と公開鍵である。
【0014】
固定秘密鍵が一方のみに存在する場合の鍵共有方法として、非特許文献1ではC(1,1)という方法が述べられている。C(1,1)の最初の‘1’は一時鍵の個数であり、2番目の‘1’が固定鍵の個数を表している。
【0015】
図9はC(1,1)におけるパラメータ生成手段の処理およびサーバと端末が持つ固定鍵に関する情報の例を示している。端末に設定する固定鍵のインデックスi=1,2,…,Lに対して次の処理を行う。
【0016】
パラメータ生成手段101によって、(p(i),q(i),g(i),x(i),y(i))の組が生成され、サーバ102は、生成された (p(i),q(i),g(i),x(i),y(i))の組のリスト201を保持する。また、端末103は(p(i),g(i),y(i))の組のリスト202を保持する。
【0017】
このように端末でサーバに対しての固定公開鍵を設定することによって、端末ではサーバのなりすましを検証することが可能となる。
【0018】
以下、図10に基づき端末103とサーバ102とを有する通信モデルにC(1,1)を適用した場合の認証付き鍵共有の手続きを述べる。端末103はサーバ102に対して端末IDを送信する(ステップS1001)。サーバ102は端末103に対してのパラメータリストの中で使用するパラメータのインデックスiを決定し(ステップS1002)、端末103に送信する(ステップS1003)。ここで、事前に使用するパラメータのインデックスに関しての取り決めがある場合にはこれらのステップは省略することができる。
【0019】
端末103は乱数r(1<r<q(i))を生成し(ステップS1004)、一時公開鍵w=g(i)r(mod p(i))を求めて(ステップS1005)、サーバ102に送信する(ステップS1006)。通常は、ここでサーバ102は一時公開鍵wの正当性をチェックする処理を行う。すなわち、wは0,1ではなく、wq(i)=1(mod p(i))が成り立つことを検証する。
【0020】
端末103はrと固定公開鍵y(i)を用いてz=y(i)r(mod p(i))=g(rx(i))(mod p(i))を計算する(ステップS1007)。生成されたzと端末−サーバ間の共有情報(公開情報でよい)であるotherinfoを入力とする鍵導出関数kdfを用いてセッション鍵k=kdf(w,otherinfo)を生成する(ステップS1008)。鍵導出関数にはハッシュ関数を適用することが望ましい。otherinfoは端末IDなど、端末固有の情報を含むようにする。ハッシュ関数を使用する場合はwとotherinfoを連接したビット列をハッシュ関数の入力とする。ハッシュ関数に関しては、例えば非特許文献2に述べられている。
【0021】
サーバ102では受信したwを用いてZ=wx(i)(mod p(i))=grx(i)(mod p(i))を計算する(ステップS1009)。正しく処理を行えていれば端末103とサーバ102でZ=zを共有することができる。サーバ102では端末103と同一のotherinfoとZを用いて鍵導出関数kdfを用いてセッション鍵K=kを導出する(ステップS1010)。
【0022】
図11は、サーバSでも一時秘密鍵を生成する方法を示しており、もし仮に、サーバの固定秘密鍵が漏洩した場合でも、過去のセッション鍵を求めることはできないようにすることが可能である。以下、図10と対比しての差異部分を示す。
【0023】
サーバ102でインデックスi送信後、乱数aを生成し(ステップS1104)、一時公開鍵b=g(i)a(mod p(i))を生成し(ステップS1105)、端末103に送信する(ステップS1108)。サーバ102ではC=wa(mod p(i))=g(ra)(mod p(i))を生成し(ステップS1110)、端末103はc=g(ar)(mod p(i))を生成する(ステップS1114)。正しく処理を行えていればサーバ102と端末103でC=cを共有することができる。サーバ102ではZ,Cとotherinfoを用いてセッション鍵kを導出する(ステップS1112)。同様に端末103ではz,cとotherinfoを用いてセッション鍵K=kを導出する(ステップS1115)。
【0024】
また、安全な鍵共有を行うためには図12に示すような同一のセッション鍵を共有していることを双方で確認するステップが欠かせない。この確認には、メッセージ認証を使用することができる。メッセージ認証に関しては、例えば非特許文献3に述べられている共通鍵暗号を利用する方法が適用できる。
【0025】
図12に示す、サーバ102におけるセッション鍵の確認手続きについて以下に説明する。セッション鍵Kの一部を共通鍵暗号用の秘密鍵K1に、残りをメッセージ認証用の秘密鍵K2に割り当てる(ステップS1201)。K2を秘密鍵として、メッセージ認証用データMac_Data_S_Tのメッセージ認証子Mを生成し(ステップS1202)、端末103に送信する(ステップS1205)。Mac_Data_S_Tはサーバ102と端末103で共有可能な公開データ、一時公開鍵やIDなどから成るデータで構成する。
【0026】
端末103から送られてきたメッセージ認証子mを鍵K2とメッセージ認証用データMac_Data_T_Sを用いて検証する(ステップS1207)。また、端末103では、上記サーバ102と同様の手順により、Mac_Data_T_Sのメッセージ認証子mを生成後、送信し、サーバ102より送られてきたメッセージ認証子Mの検証を行う。Mac_Data_T_SはMac_Data_S_Tと同様のデータであるが、両者は異なる必要がある。
【0027】
以上、有限体上の離散対数問題を用いた鍵共有方式を説明したが、非特許文献1が示すように有限体上の楕円曲線の有理点のなす加群を用いても同様の鍵共有を行うことができる。楕円曲線を用いることによってパラメータを小さく設定しても安全性を保つことができ、処理速度を上げることが可能となる。
【0028】
また、特許文献1では、楕円曲線上の離散対数問題に基づく暗号化方式を採用することで、鍵長サイズを削減するとともに、端末間でやり取りしたデータの正当性の検証を行う発明が記載されている。
【特許文献1】特開2007−13564号公報
【非特許文献1】NIST Special Publication (SP) 800-56A,「Recommendation for Pair-Wise Key Establishment Schemes Using Discrete Logarithm Cryptography」、2006年
【非特許文献2】NIST Federal Information Processing Standards (FIPS) Publication 180-2, 「Specifications for the ECURE HASH STANDARD」2002年
【非特許文献3】NIST Special Publication (SP) 800-38B 「Recommendation for Block Cipher Modes of Operation: the CMAC Mode for Authentication」2005年
【発明の開示】
【発明が解決しようとする課題】
【0029】
しかしながら、ドメインパラメータや公開鍵を端末に事前に設定しておく場合、その端末は比較的長期にわたってその設定を利用することになる。そのために、攻撃者が端末のそれらの情報を入手した際には比較的長期にわたってそのドメインパラメータに対しての攻撃機会を与えることになる。
【0030】
特許文献1においては、正当性検証により、保護はされるが、高強度セキュリティを要求されるアプリケーションにおいてはそのような状況は望ましくなく、攻撃者が端末から得られる情報は極力小さくすることが望まれる。そのためには端末には何の鍵情報も事前に格納せずに、セッション開始時に公開情報をサーバが端末に送付する方法が考えられる。
【0031】
しかし、このときサーバのなりすましが容易に行えてしまうという課題がある。また、不正なサーバが不正なドメインパラメータを送付した場合には固定秘密鍵がたとえ漏洩していなくても安全性が損なわれる場合がある。
【0032】
本発明は、上記問題点に鑑みてなされたもので、端末の情報が漏洩してもドメインパラメータの情報を得ることが不可能な高強度セキュリティを実現する。
【課題を解決するための手段】
【0033】
上記課題を解決するため、本発明における鍵共有システムは、公開鍵暗号のドメインパラメータおよび秘密鍵、公開鍵を端末毎に生成するパラメータ生成手段を有するパラメータ生成装置と、サーバと、端末間とで秘密情報を共有する鍵共有システムにおいて、パラメータ生成装置は、ドメインパラメータから成るビット列に対してのハッシュ値を計算するハッシュ値計算手段を有し、サーバは、端末毎にパラメータ生成装置が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持する第1の保持手段を備え、端末は、パラメータ生成装置が生成する公開鍵およびハッシュ値の組から成るリストを保持する第2の保持手段を備えることを特徴とする。
【0034】
パラメータ生成装置は、ドメインパラメータから成る前記ビット列と同一長の乱数を生成して、ハッシュ値との排他的論理和を求める排他的論理和生成手段を有し、サーバは、第1の保持手段により、パラメータ生成手段が生成するドメインパラメータ、秘密鍵および排他的論理和を求めた結果を含むリストを保持し、端末は、第2の保持手段により、パラメータ生成手段が生成するハッシュ値と公開鍵に乱数を追加した組から成るリストを保持することを特徴とする。
【0035】
パラメータ生成装置は、有限体上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする。
【0036】
パラメータ生成装置は、有限体係数の楕円曲線上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする。
【0037】
サーバ及び端末は、回線装置の暗号化のための補助手段として動作することを特徴とする。
【0038】
サーバは、第1の保持手段により、回線装置に付随するパスワードデータを保持し、端末は、回線装置に対するパスワードを外部から取り込むパスワード入力手段を備え、パスワードを含むデータを用いてセッション鍵を導出することを特徴とする。
【0039】
パラメータ生成装置は、サーバ上に組み込まれていることを特徴とする。
【発明の効果】
【0040】
本発明により、端末の情報が漏洩しても攻撃者はドメインパラメータの情報を得ることができないため、事前の攻撃は不可能である。さらに、端末がドメインパラメータのハッシュ値を持つことによって不正なサーバから不正なパラメータを送付された場合でもチェックすることが可能となる。また、端末が公開鍵を予め格納しておくことにより、共有セッション鍵を検証する過程において固定秘密鍵を持たない不正なサーバをチェックすることが可能となる。さらに、サーバと端末間でドメインパラメータを分散保持し、セッション開始時にはサーバは分散情報のみを送ることによって通信路上の情報のみからはドメインパラメータを求めることは不可能となる。また、既存の回線装置やそれに付随するパスワードを組み合わせることによって端末(ユーザ)の識別を可能にすることができる。
【発明を実施するための最良の形態】
【0041】
本発明ではサーバと端末の安全性は大きく異なる状況を想定する。つまり、サーバは安全な場所にあり、秘密情報の漏洩や不正な処理などのリスクは非常に小さいと仮定する一方、端末は盗難や情報流出の危険性が高いと仮定する。このようなモデルでは端末に固定秘密鍵を設定しても有効性は低いため、サーバのみに固定秘密鍵を設定する方法が適している。
【0042】
図1は、本発明の実施形態におけるパラメータ生成手段101の動作と、サーバ102および端末103が保持する情報を示している。パラメータ生成手段101は端末が与えられたときに公開鍵パラメータリストのインデックスi=1,2,..,Lに対して次の処理を行う。ここでLはその端末に対するパラメータの個数の上限である。
【0043】
ドメインパラメータp(i),g(i)およびq(i),秘密鍵x(i),公開鍵y(i)を生成する。次に、p(i)とg(i)を連接したビット列であるp(i)||g(i)を入力データとするハッシュ値h(i)=Hash(p(i)||g(i))を求める。サーバ102は従来技術と同様にp(i),g(i),q(i),x(i),y(i)を格納する。端末103にはハッシュ値h(i)と公開鍵y(i)のみを格納する。
【0044】
次に図2を用いて、本発明の実施形態におけるサーバ102と端末103の間での鍵共有の手続きを示す。従来技術と同様に、端末103はサーバ102に対して端末IDを送信し(ステップS1001)、サーバ102は103に対してのパラメータリストの中で使用するパラメータのインデックスiを決定する(ステップS1002)。
【0045】
サーバ102は、インデックスiと対応するp=p(i)およびg=g(i)を連接したビット列p||gを求め、送信する(ステップS201、S202)。端末103では受信したp||gに対してハッシュ値Hash(p||g)を計算し、格納しているh(i)と比較する(ステップS203)。一致していない場合は不正なパラメータが送付されたとして鍵共有処理を終了する。p,gの正当性が確認できたら従来通りの鍵共有処理を行う(図10におけるステップS1003からステップS1009と同様の処理を実行)。
【0046】
本発明のようにp,gを端末に格納しないことによって、端末が盗難されて情報が漏洩したとしてもハッシュ値h(i)と公開鍵y(i)のみが漏洩するだけで攻撃者はp(i)やg(i)の情報を得ることは無いため特定パラメータの離散対数問題の攻撃の機会を与えることはない。また、不正なサーバがなりすまして不正なパラメータを送付した場合にはハッシュ値h(i)によって確かめることができる。また、不正なサーバが一度送付されたインデックスi,p(i),g(i)をコピーしておき再度送信する応答攻撃に対しては不正なサーバは秘密鍵x(i)を保有していないため、Diffie-Hellmanのアルゴリズムにおいて端末と同一のセッション鍵を生成することができないため、図1に示したようなセッション鍵の共有確認処理によって安全性を保つことができる。
【0047】
図3は、図11にて説明した、サーバでも一時秘密鍵を生成する鍵共有方式に対して本発明を組み合わせた動作を示す図である。本発明によって図11に示したサーバの固定秘密鍵x(i)漏洩時でも過去のセッション鍵の秘匿と、端末情報漏洩時の安全性向上を実現可能となる。処理手順については、インデックスi決定後(ステップS1102)、上記で説明したステップS201からS203を行い、その後の動作は、図11で説明したステップS1104からS1115と同様である。
【0048】
図4は、本発明の他の実施形態であり、p(i)||g(i)を乱数でバーナム暗号化(秘密分散)した形で送付することによって、通信路を盗聴しただけではp(i)とg(i)の情報を得ることができないようにした方法である。以下、パラメータ生成手段101の処理について詳細に説明する。
【0049】
従来と同様にドメインパラメータp(i),g(i),q(i)および秘密鍵x(i)と公開鍵y(i)を生成後、図1と同様にハッシュ値h(i)=Hash(p(i)||g(i))を生成する。次に、p(i)||g(i)と同一長の乱数R(i)を生成し、U(i)=R(i)+(p(i)||g(i))を計算する。ここで、‘+’は排他的論理和を示す。このとき、パラメータ生成手段101はサーバ102には公開情報と秘密鍵に加えてU(i)を、端末103にはh(i),y(i)とR(i)を設定する。
【0050】
図5は、図11で示した鍵共有方式に対して、本実施形態を適用した場合の鍵共有処理の手続きを示している。以下、図10にしたがって鍵共有処理の説明を行う。
【0051】
まず、従来と同様に端末103は端末IDをサーバ102に送信し(ステップS1101)、サーバ102はパラメータのインデックスiを決定する(ステップS1102)。サーバ102はインデックスiとU(i)を端末103に送信する(ステップS501)。端末103は受信したU(i)と格納しているR(i)からR(i)+U(i)を計算し、p||gに割り当て(ステップS502)、端末103はハッシュ値h=Hash(p||g)を計算し、格納しているh(i)と比較する(ステップS503)。一致していない場合は不正なパラメータが送付されたとして鍵共有処理を終了する。p,gの正当性が確認できたら従来通りの鍵共有処理を行う(図11におけるステップS1104からステップS1115と同様の処理を実行)。
【0052】
本実施形態における方法を用いることによって、通信路上のデータを取得するだけではp(i), g(i)を得ることは不可能となり、安全性を高めることが可能となる。
【0053】
以上、本発明は有限体上の離散対数問題を用いた鍵共有方式を説明したが、非特許文献1が示すように有限体上の楕円曲線の有理点のなす加群を用いても同様の鍵共有を行うことができる。楕円曲線を用いることによってパラメータを小さく設定しても安全性を保つことができ、処理速度を上げることが可能となる。
【0054】
また、本発明で想定するような端末に格納した情報が漏洩するリスクが高いことを想定するモデルでは端末のなりすましに対して防御することは困難となる。そこで端末側の安全性を高めるためには他の手段を併用する必要がある。
【0055】
図6は、例えば本発明を電話などの従来の回線装置の補助手段として利用する形態を示している。図6でサーバ102および端末103は本発明における鍵共有を行う端末で、通信を行う電話機などの回線端末601、602の補助手段として機能する。端末103に付属する回線装置は、例えば携帯電話が利便性に優れている。
【0056】
図6に示すように回線装置の補助手段と本発明を利用することで、従来の回線システムによって回線装置が特定できるため、端末側で利用できる電話機を特定しておくことによって、端末自体のなりすましの防止は難しいが不特定の電話機での使用はできなくなるために安全性の向上を図ることが可能となる。
【0057】
図6の回線装置を併用した方式の安全性を更に向上させることは、回線装置(電話機)とユーザを対応づけてユーザによるパスワード認証を行うことによって実現できる。この場合、図7に示すように、サーバ102は公開鍵暗号のドメインパラメータや鍵情報等の他に端末側の回線装置のID(電話番号)と対応するパスワードリスト702を保持する。端末側ではユーザは利用時にパスワード701を入力する必要がある。パスワードの認証は、図11に示した鍵導出関数の入力となるサーバ-端末間の共有情報otherinfoに含めることで実現可能である。パスワードが一致しない場合は導出されるセッション鍵は一致しないため、通常のセッション鍵共有の確認過程に含める形でユーザ認証が可能になる。
【0058】
また、例えばNIST Special Publication (SP) 800-57, 「Recommendati for Key Management」2006年を参考に高度な安全性を実現するためのパラメータ設定が可能である。非特許文献3によると、2030年まで利用する場合に推奨される離散対数のパラメータの値pが2048ビット、qが224ビットとなる。また、使用するハッシュ関数は非特許文献2に記載されているSHA−224、SHA−256、SHA−384、SHA−512のいずれかとなる。本実施形態については、SHA−256を用いることとする。
【0059】
共通鍵暗号は鍵長128ビットのAES、セッション鍵共有確認のためのメッセージ認証も128ビットのAESを用いて非特許文献3の方式を適用すると、図11の鍵導出関数kdf()は2048ビットのDiffie-Hellmanアルゴリズムによる共有情報とotherinfoを連接したビット列をSHA−256に入力してハッシュ値を求めることになる。
【0060】
図7のようにユーザのパスワードも利用する場合には、更にパスワードを連接したビット列をSHA−256の入力とする。SHA−256の出力の256ビットに対して、前半128ビットをデータ暗号化に利用するAESの秘密鍵K1に、後半128ビットをメッセージ認証用の秘密鍵K2として利用する。図1で示した、本発明におけるp||gに対するハッシュ値の生成にも前述のSHA−256を利用することができる。
【0061】
パラメータのリストのサイズは、例えば2年間毎日変更する場合、図1の端末が保持するデータ量はハッシュ値256ビットと公開鍵2048ビットのペアが712個となり、約1.64メガビットのデータ量となる。
【0062】
以上、本発明の好適な実施の形態により本発明を説明した。ここでは特定の具体例を示して本発明を説明したが、特許請求の範囲に定義された本発明の広範囲な趣旨および範囲から逸脱することなく、これら具体例に様々な修正および変更を加えることができることは明らかである。
【図面の簡単な説明】
【0063】
【図1】本発明の実施形態におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図2】本発明の実施形態における鍵共有処理を示す図である。
【図3】本発明の実施形態においるサーバ側で一時秘密鍵を利用する場合の処理を示す図である。
【図4】本発明の別の実施形態におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図5】本発明の別の実施形態における鍵共有処理を示す図である。
【図6】本発明の適用例を示す図である。
【図7】本発明の適用例を示す図である。
【図8】通信モデルを示す図である。
【図9】従来技術におけるパラメータ生成手段の処理およびサーバと端末が保持する情報を示す図である。
【図10】従来技術における鍵共有処理を示す図である。
【図11】従来技術におけるサーバ側で一時秘密鍵を利用する場合の処理を示す図である。
【図12】従来技術における共有セッション鍵を相互で検証する過程を示す図である。
【符号の説明】
【0064】
101 パラメータ生成手段
102 サーバ
103 端末
104、105 回線装置
701 パスワード
【特許請求の範囲】
【請求項1】
公開鍵暗号のドメインパラメータおよび秘密鍵、公開鍵を端末毎に生成するパラメータ生成手段を有するパラメータ生成装置と、サーバと、前記端末間とで秘密情報を共有する鍵共有システムにおいて、
前記パラメータ生成装置は、前記ドメインパラメータから成るビット列に対してのハッシュ値を計算するハッシュ値計算手段を有し、
前記サーバは、前記端末毎に前記パラメータ生成装置が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持する第1の保持手段を備え、
前記端末は、前記パラメータ生成装置が生成する前記公開鍵および前記ハッシュ値の組から成るリストを保持する第2の保持手段を備えることを特徴とする鍵共有システム。
【請求項2】
前記パラメータ生成装置は、ドメインパラメータから成る前記ビット列と同一長の乱数を生成して、前記ハッシュ値との排他的論理和を求める排他的論理和生成手段を有し、
前記サーバは、前記第1の保持手段により、前記パラメータ生成手段が生成する前記ドメインパラメータ、前記秘密鍵および前記排他的論理和を求めた結果を含むリストを保持し、
前記端末は、前記第2の保持手段により、前記パラメータ生成手段が生成する前記ハッシュ値と前記公開鍵に前記乱数を追加した組から成るリストを保持することを特徴とする請求項1記載の鍵共有システム。
【請求項3】
前記パラメータ生成装置は、有限体上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする請求項1又は2に記載の鍵共有システム。
【請求項4】
前記パラメータ生成装置は、有限体係数の楕円曲線上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする請求項1から3のいずれか1項に記載の鍵共有システム。
【請求項5】
前記サーバ及び前記端末は、回線装置の暗号化のための補助手段として動作することを特徴とする請求項1から4のいずれか1項に記載の鍵共有システム。
【請求項6】
前記サーバは、前記第1の保持手段により、前記回線装置に付随するパスワードデータを保持し、
前記端末は、前記回線装置に対するパスワードを外部から取り込むパスワード入力手段を備え、前記パスワードを含むデータを用いてセッション鍵を導出することを特徴とする請求項5記載の鍵共有システム。
【請求項7】
前記パラメータ生成装置は、前記サーバ上に組み込まれていることを特徴とする請求項1から6のいずれか1項に記載の鍵共有システム。
【請求項1】
公開鍵暗号のドメインパラメータおよび秘密鍵、公開鍵を端末毎に生成するパラメータ生成手段を有するパラメータ生成装置と、サーバと、前記端末間とで秘密情報を共有する鍵共有システムにおいて、
前記パラメータ生成装置は、前記ドメインパラメータから成るビット列に対してのハッシュ値を計算するハッシュ値計算手段を有し、
前記サーバは、前記端末毎に前記パラメータ生成装置が生成する公開鍵暗号のドメインパラメータおよび秘密鍵を含むリストを保持する第1の保持手段を備え、
前記端末は、前記パラメータ生成装置が生成する前記公開鍵および前記ハッシュ値の組から成るリストを保持する第2の保持手段を備えることを特徴とする鍵共有システム。
【請求項2】
前記パラメータ生成装置は、ドメインパラメータから成る前記ビット列と同一長の乱数を生成して、前記ハッシュ値との排他的論理和を求める排他的論理和生成手段を有し、
前記サーバは、前記第1の保持手段により、前記パラメータ生成手段が生成する前記ドメインパラメータ、前記秘密鍵および前記排他的論理和を求めた結果を含むリストを保持し、
前記端末は、前記第2の保持手段により、前記パラメータ生成手段が生成する前記ハッシュ値と前記公開鍵に前記乱数を追加した組から成るリストを保持することを特徴とする請求項1記載の鍵共有システム。
【請求項3】
前記パラメータ生成装置は、有限体上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする請求項1又は2に記載の鍵共有システム。
【請求項4】
前記パラメータ生成装置は、有限体係数の楕円曲線上の離散対数問題に基づくアルゴリズムを利用し、パラメータを生成することを特徴とする請求項1から3のいずれか1項に記載の鍵共有システム。
【請求項5】
前記サーバ及び前記端末は、回線装置の暗号化のための補助手段として動作することを特徴とする請求項1から4のいずれか1項に記載の鍵共有システム。
【請求項6】
前記サーバは、前記第1の保持手段により、前記回線装置に付随するパスワードデータを保持し、
前記端末は、前記回線装置に対するパスワードを外部から取り込むパスワード入力手段を備え、前記パスワードを含むデータを用いてセッション鍵を導出することを特徴とする請求項5記載の鍵共有システム。
【請求項7】
前記パラメータ生成装置は、前記サーバ上に組み込まれていることを特徴とする請求項1から6のいずれか1項に記載の鍵共有システム。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【公開番号】特開2009−239737(P2009−239737A)
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願番号】特願2008−84780(P2008−84780)
【出願日】平成20年3月27日(2008.3.27)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
【公開日】平成21年10月15日(2009.10.15)
【国際特許分類】
【出願日】平成20年3月27日(2008.3.27)
【出願人】(000004237)日本電気株式会社 (19,353)
【Fターム(参考)】
[ Back to top ]