説明

鍵合意および移送プロトコル

【課題】好適な鍵合意および移送プロトコルを提供する。
【解決手段】鍵確立プロトコルは、公開鍵を利用し、ハッシュ暗号関数を利用した値の生成を含む。この値はセッション鍵を生成するのに必要な情報と共に通信者間で移送される。セッション鍵が合意(共有)されていない場合、暗号関数の値は通信者の各々においては同じものになる。暗号関数の値はセッション鍵へのアクセスなしでは修正したり合意したりすることはできない。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は暗号鍵の移送および認証用の鍵合意(共有)プロトコルに関する。
【背景技術】
【0002】
情報交換中にプライバシーを保護するために、鍵を使用して、データを暗号化することは良く知られている。鍵は通信者がメッセージを暗号化し復号できるようなものであって、横取りする人がメッセージのコンテンツを決定することができないようなものを選ばなければならない。
【0003】
秘密鍵の暗号のプロトコルでは、通信者は、それらに秘密の共通鍵を共有する。これは通信者間で鍵を合意(即ち共有)しておく必要があり、また、鍵の秘密を保持するための設備も必要であり、基礎をなすセキュリティが危険にさらされた場合には鍵の変更をもたらすものである。
【0004】
公開鍵暗号のプロトコルは、Diffie-Hellmanによって1976年に最初に提案されたものであって、潜在的な全ての通信者に利用可能になった公開鍵、および、意図した受信者にのみ知らされる秘密鍵を利用するものである。公開鍵と秘密(私用)鍵は、受信者の公開鍵で暗号化されたメッセージが、平文、暗号テキストおよび公開鍵についての知識で導出できないような秘密鍵で容易に解読することができる、ことに関するものである。
【0005】
鍵の確立は、2つの(あるいはより多くの)関係者がセッション鍵と呼ばれる共有の秘密鍵を確立するプロセスである。続いてセッション鍵がプライバシーのようなある暗号のゴールを達成するために使用される。以下の2種類の鍵合意(共有)プロトコルがある。
・鍵が一方の当事者によって作成され、安全に第二の当事者に送信される鍵移送プロトコル。
・共有秘密鍵を一緒に確立するような情報を双方の当事者が与える鍵合意(共有)プロトコル。
当事者間で要求されるメッセージ交換の数は、パスの数と呼ばれる。鍵確立プロトコルでは、具体的に識別された第二当事者から他の相手方がセッション鍵の値を知ることが無いことを一方の当事者が保証される場合には、暗黙の鍵認証(あるいは単に鍵認証)を提供すると考えられる。暗黙の鍵認証の性質は、第二当事者が実際にセッション鍵を所有することを必ずしも意味しない。鍵確立プロトコルでは、具体的に識別された第二当事者が特別のセッション鍵を実際に所有していることを一方の当事者が保証された場合には、鍵の確認をもたらすものであると考えられる。認証がプロトコルに関連する両当事者に供給される場合は、鍵認証は相互のものであると考えられ、ただ1つの当事者に供給される場合には、認証は一方的であると考えられる。
【0006】
暗黙の鍵認証を提供することを主張する様々な従来提案がある。
【0007】
例えば、鍵合意(共有)のためのNyberg-Rueppelの1パスプロトコル、および、マツモト−タカシマ−イマイ(MTI)およびGossおよびYacobiの2パスプロトコルがある。
【0008】
従来の提案は、共通鍵を確立する通信者間の伝送が安全で、中途介在者がセッション鍵を取得することができず、暗号文を解読することができないことを保証する。このようにして、資金移動のようなセンシティブなトランザクション(取引)のためのセキュリティ(安全)が提供される。
【0009】
例えば、MTI/AO鍵合意プロトコルは、次の方法で、2つの通信者に知られていた共有秘密鍵Kを確立、即ち設定する。
1.最初、即ち、一度だけのセットアップのときに、鍵生成および公開が、確実性を保証するやり方で適切な系(system)の素数(prime)pおよび生成元(generator)


を選択し公表することにより行われる。通信者Aは、長期的な秘密鍵として、ランダム(無作為)な整数「a」(但し、l≦a≦p-2)を選択し、長期的な公開鍵ZAa mod pを計算する。Bは同様の鍵b、zBを生成する。AとBは互いの長期的な公開鍵の認証されたコピーにそれぞれアクセスする。
【0010】
2.プロトコルは、次のメッセージの交換を要求する。
A→ B : αx mod p (1)
A← B : αy mod p (2)
xとyの値は、もちろんpが十分に大きなものが選択されるという前提であるが、指数やαの値の値が知られた場合でさえも、指数を決定することが非実用的であるような伝送の間は安全な状態にされる。
【0011】
3.プロトコルを実施するために、共有鍵が必要とされる度に、次のステップが行なわれる。
(a)Aは無作為の整数x(但しl≦x≦p-2)を選択し、Bにメッセージ(1)、即ち、αx mod pを送る。
(b)Bは無作為の整数y(但しl≦y≦p-2)を選択し、Aにメッセージ(2)、即ち、αy mod pを送る。
(c)Aは鍵K=(αzBX mod pを計算する。
(d)Bは鍵K=(αzB mod pを計算する。
(e)両方が、鍵K−αbx+ayを共有する。
【0012】
鍵Kを計算するために、Aは自分の秘密鍵aおよび無作為(ランダム)の整数xを使用しなければならず、そして、それらの両方はAにのみに知られている。同様に、Bは、セッション鍵Kを計算するために自分の秘密鍵bおよび無作為の整数yを使用しなければならない。秘密鍵a、bが危険にさらされず安全なものであるという前提で、中途介在者は他の通信者と同一のセッション鍵を生成することができない。従って、どんな暗号テキストも両方の通信者によって判読可能になることはない。
【発明の概要】
【発明が解決しようとする課題】
【0013】
上記および関連するプロトコルは、鍵確立に十分で従来の盗聴者あるいは途中に介在する者の攻撃に強い、と考えられていた。
【0014】
いくつかの状況では、敵が、第2の通信者の真実の同一性に関して1つの通信者を誤解させることが有利かもしれない。
【0015】
そのような攻撃では、活動的な敵、即ち、途中介在者(interloper)Eは、AとBの間で交換されるメッセージを修正すると、その結果として、Bは、彼がEと鍵Kを共有すると信じ、一方で、AがBと同じ鍵Kを共有すると信じる。たとえEがKの値を知らないとしても、通信者の同一性に関する偽の情報は有用となり得る。
【0016】
そのような攻撃が成功裡に始められるかもしれない場合、実際的なシナリオは下記である。Bが銀行支店で、Aが口座所有者である、と仮定する。証明書は銀行本部によって出され、証明書内には、所有者の口座情報がある。資金の電子預金用のプロトコルは、相互に認証された鍵合意によって銀行支店で鍵を交換することであると仮定する。一旦Bが送信するものを認証したならば、暗号化された資金は証明書にある口座番号に預け入れられる。それ以上、認証が、暗号化された預金メッセージ(帯域幅を保存するその場合かもしれない)中でそのとき行われなければ、預金はEの口座に為されるだろう。
【0017】
従って、上記の損失が除去される、或いは軽減されるプロトコルを提供することが本発明の目的である。
【課題を解決するための手段】
【0018】
よって、本発明によれば、通信者A,Bの組の間で認証する方法であって、その間で情報の交換を可能にする方法であり、前記通信者の各々は、それぞれの秘密鍵a,bと、これらの秘密鍵の各々と生成元(器)(generator)αから得られる公開鍵pAとpとを持ち、下記のステップを含む方法が提供される。
i)はじめに第1の通信者が、第1の無作為の整数xを選択し、前記生成元を含む関数f(α)を指数g(x)でべき乗して、第1の(べき乗された)指数関数f(α)g(x)を提供するステップ。
ii)前記第1の通信者Aが、前記第1の指数関数f(α)g(x)を含むメッセージを第2の通信者Bへ移送するステップ。
iii)前記通信者Bが、第2の無作為の整数yを選択し、前記生成元を含む関数f(α)を指数g(y)でべき乗して、第2の(べき乗された)指数関数f(α)g(y)を提供するステップ。
iv)前記第2の通信者Bが、前記第1の通信者Aによって公開された情報と、前記第2の通信者Bの秘密(即ちBだけが知る私用)の情報とからセッション鍵Kを構築するステップであり、また、このセッション鍵が、前記第1の通信者Aによっても、Bによって公開された情報と、前記第1の通信者Aの秘密の情報のために構築されるステップ。
v)前記第2の通信者Bが、関数


の値hを生成するステップ(但し、関数





とKとを共に用いた暗号関数であり、


はBによって与えられた公開情報のサブセット、即ち部分集合であり、これによって


とKの値を結びつける)。
vi)前記第2の通信者Bが、前記第1の通信者Aに、前記第2の指数関数f(α)g(y)と、
関数


の値hとをを含むメッセージを移送するステップ。
vii)前記第1の通信者が、前記メッセージを受取り、前記第1の通信者の秘密と、前記第2の通信者Bによって公開されたものによる情報からセッション鍵K’を計算するステップ。
viii)前記第1の通信者Aが、暗号関数


の値h’を計算するステップ。
ix)これらの通信を検証(即ち、認証)するために、前記暗号関数Fから得られた前記値を比較するステップ。
【0019】
セッション鍵Kが、AかBのいずれかに秘密の情報を使ってのみ生成させることができるため、Kを


と暗号関数hとに結合することによって、EがKを抽出すること、或いは、Aによって得られるものと一致させるような新たな値の関数を差し挟むことを防止する。
本発明は、例えば、以下を提供する。
(項目1)
データ通信システムで第1および第2の通信者を認証する方法において、
a)前記第1の通信者が、第1の値GAを生成し、前記第1の値を前記第2の通信者に送出するステップと、
b)前記第2の通信者が、第2の値GBを生成するステップと、
c)前記通信者が各々、共有鍵Kを得るステップと、
d)前記第2の通信者が、前記第1の通信者の識別情報および前記第1および第2の値の第1の鍵付きハッシュを計算するステップであって、前記第1の鍵付きハッシュが前記共有鍵Kを使用するステップと、
e)前記第2の通信者が、前記第1の鍵付きハッシュ、前記識別情報、および前記第2の値を、前記第1の通信者に送出するステップと、
f)前記第1の通信者が、前記第1の通信者の識別情報、および前記第1および第2の値の第1の検証鍵付きハッシュを計算するステップであって、前記第1の検証鍵付きハッシュが前記共有鍵Kを使用するステップと、
g)前記第1の通信者が、前記第1の鍵付きハッシュが前記第1の検証鍵付きハッシュと同じであることを検証するステップと、
を含む方法。
(項目2)
項目1に記載の方法において、
h)前記第1の通信者が、前記第2の通信者の識別情報、および、前記第1および第2の値の第2の鍵付きハッシュを計算するステップであって、前記第2の鍵付きハッシュが前記共有鍵Kを使用するステップと、
i)前記第1の通信者が、前記第2の通信者の前記識別情報および前記第2の鍵付きハッシュを前記第2の通信者に送出するステップと、
j)前記第2の通信者が、前記第2の通信者の識別情報および前記第1および第2の値の第2の検証鍵付きハッシュを計算するステップであって、前記第2の鍵付きハッシュが前記共有鍵Kを使用するステップと、
k)前記第2の通信者が、前記第2の検証鍵付きハッシュが前記第2の鍵付きハッシュと同じであるかを検証するステップと、
をさらに含むことを特徴とする方法。
(項目3)
データ通信システムで第1の通信者と第2の通信者との間で認証された鍵の合意の方法であって、前記通信者の各々は公開鍵暗号システムにおける公開鍵と秘密鍵とのペアを有し、前記方法が、
a)前記第1の通信者が、第1の値GAを生成し、この第1の値を前記第2の通信者に送出するステップと、
b)前記第2の通信者が、第2の値GBを生成するステップと、
c)前記通信者の各々は、自分だけの秘密である情報および他の通信者に公開されている情報から共有鍵Kを計算するステップと、
d)前記第2の通信者が、前記第1の通信者の識別情報および前記第1および第2の値の第1の鍵付きハッシュを計算するステップであって、前記鍵付きハッシュが前記共有鍵Kを使用するステップと、
e)前記2の通信者が、前記第1の鍵付きハッシュ、前記識別情報、および、前記第2の値を前記第1の通信者に送出するステップと、
f)前記第1の通信者が、前記第1の通信者の識別情報、前記第1および第2の値の第1の検証鍵付きハッシュを計算するステップであって、前記検証鍵付きハッシュが前記共有鍵Kを使用するステップと、
g)前記第1の通信者が、前記第1の鍵付きハッシュが前記第1の検証鍵付きハッシュと同じであるかを検証するステップと、
を含む方法。
(項目4)
項目1に記載の方法において、
h)前記第1の通信者が、前記第2の通信者の識別情報、前記第1および第2の値の第2の鍵付きハッシュを計算するステップであって、前記第2の鍵付きハッシュが前記共有鍵Kを使用するステップと、
i)前記第1の通信者が、前記第2の鍵付きハッシュ、および、前記第2の通信者の識別情報を前記第2の通信者に送出するステップと、
j)前記第2の通信者が、前記第2の通信者の識別情報、および、前記第1および第2の値の第2の検証鍵付きハッシュを計算するステップであって、前記第2の鍵付きハッシュが共有鍵Kを使用するステップと、
k)前記第2の通信者が、前記第2の検証鍵付きハッシュが前記第2の鍵付きハッシュと同じであるかを検証するステップと、
をさらに含むことを特徴とする方法。
(項目5)
項目1,2,3,4のいずれか1項に記載の方法を実装する暗号ユニット。
【図面の簡単な説明】
【0020】
発明の実施例は、付属の図面を参照して説明するが、これらの図面は例示に過ぎない。
【図1】図1はデータ通信システムの説明図である。
【図2】図2−図8は種々のプロトコルの実装の説明図である。
【図3】図2−図8は種々のプロトコルの実装の説明図である。
【図4】図2−図8は種々のプロトコルの実装の説明図である。
【図5】図2−図8は種々のプロトコルの実装の説明図である。
【図6】図2−図8は種々のプロトコルの実装の説明図である。
【図7】図2−図8は種々のプロトコルの実装の説明図である。
【図8】図2−図8は種々のプロトコルの実装の説明図である。
【発明を実施するための形態】
【0021】
したがって、図1を参照すると、通信者A(10)、通信者B(12)のペアは、通信チャネル14を介して情報を交換する。暗号ユニット16および18は、通信者10、12の各々と、チャネル14との間に置かれる。鍵20は、各ユニット16,18とそれぞれの通信者10,12との間で運ばれる平文を変換して、チャネル14で運ばれる暗号文にするために、暗号ユニット16および18の各々に関連付けられる。
【0022】
操作においては、通信者A(10)によって生成されたメッセージは、鍵20を備えたユニット16によって暗号化され、ユニット18にチャネル14上、暗号テキスト(暗文)として送信される。
【0023】
鍵20はユニット18の暗号テキストを操作して、通信者B(12)のために平文メッセージを生成する。鍵20が通信者に与えられている場合には、通信者12が受け取ったメッセージは通信者10によって送られたものに変換される。
【0024】
図1で示したシステムが作動するためには、それぞれの鍵20は同一のもにする必要があり、したがって、同一の鍵を確立するたに、公開された方法で情報の移送を可能にする鍵合意(共有)プロトコルは確立される。その実装を、図2−図7に図解で示す。
【0025】
図2を参照して、相互公開鍵・認証鍵合意プロトコルは、図の左側に示された、通信者Aと、右側に示された通信者Bの間で補間しあうものである。通信者Aは、公開−秘密(私用)鍵のペア、PA、SAををそれぞれ持ち、同様に通信者Bは、公開−秘密(私用)鍵のペア、PB、SBををそれぞれ持つ。
【0026】
最初に、通信者Aは乱数RNDAとしてセッション秘密鍵を生成し、対応する公開セッション鍵GA=F(RNDA)を計算する。関数FAは、暗号の一方向性関数であり、典型的には、楕円暗号系のポイント乗算(point multiplication)のような集合の生成元(器)による指数(exponetion)である。
【0027】
公開セッション鍵GAは、セッション秘密鍵RNDBおよび公開セッション鍵GBの対応するパラメーターを生成する通信者Bへ移送される。
【0028】
通信者Bは、Aの公開情報GA、PAと、,Bの秘密情報RNDB、SBの関数としてセッション鍵Kを計算する。対応する鍵K'は、Aの秘密(プライベート)情報およびBの公開情報(すなわちf(RNDA、GB、SA、PB)の公開情報を使用して、Aによって計算することができる。
【0029】
通信者Bが鍵Kを生成した後、彼はストリング(文字列)(GA‖GB‖IdA)をコンパイル(compile)、即ち1つにまとめるが、ここで、IdAはAを識別するストリングである。この連結されたストリングは、ストリングhashBを生成するために鍵Kを使用する、鍵付きハッシュ関数である暗号関数hkでハッシュされる。
【0030】
ストリングhashBはIdAとGBと共に通信者Aに移送される。
【0031】
Bからのメッセージを受けて、通信者Aは、上述したように鍵K'を計算する。通信者Aは、さらに、鍵K'による鍵が付いたハッシュ関数を使用して、ストリング(GB//GA//IdA)からハッシュhashverifiyBを計算する。通信者Aは、ハッシュを検証して鍵K、K'の同一性が確認(証明)できるかどうかを検査する。
【0032】
その後、通信者Aは、ストリング(GA//GB//IdB)において鍵K'を使用して、ハッシュhK’を計算し、通信者BのIdBと一緒のそれを移送する。同様に、通信者Bは、同じストリング上で、鍵Kを使用する鍵付きハッシュ関数hKを使用して、hashverifyAを計算し、hashA=hashverifiyAであるかを検証する。
【0033】
図3に相互の実体認証プロトコルを実装するための同様のプロトコルを示す。このプロトコルでは、通信者は、安全なチャネルを介して得られた鍵Kを共有する。通信者A、Bは、各々、AとBのセッション公開鍵としてそれぞれ使用される無作為(ランダムな)の整数を生成する。その後、鍵付きハッシュ関数で利用されている共有秘密鍵と共に図2に示したように、情報交換と検証が進む。
【0034】
十分な相互公開鍵・認証鍵交換プロトコルを図4に示す。信頼を認証されたチャネルを介した公開鍵PA、PBの最初の交換が行われた後に、図4のプロトコル中で示されるような情報交換が続く。この場合、通信者Aは、AがBによる受信を確認することと所望するストリングx2と一緒に、図2を参照して説明したように計算されたGAを送信する。通信者Bは図2のような鍵Kを計算し、ペアのストリングy1,y2を生成するが、これらのストリングは、Bが、Aによって認証されること、および、Aによって受信されたことを確認(検証)することを所望するものである。これらのストリングは、ハッシュhashBと識別情報IdAと共に、Aに送信される。ハッシュhashBは、認証されるべきストリングy1とメッセージx2とを含むストリング上で実施される。
【0035】
通信者Aは鍵Kを計算し、ハッシュが前のものと同じであるか検証する。これは、また、Bによるx2の受領を確認(検証)する。
【0036】
通信者Aは、次に、ストリングz1,z2を生成し、ここで、z1は、AがBによって認証されることを所望するようなストリング(文字列)であり、z2は、後で述べるプロトコルの後続の実行によって使用することができるようなストリングである。Bの識別情報IdBと一緒のストリングz1およびy2は、ストリングhashAを提供するために鍵Kでハッシュされるストリングに含まれている。これは、ストリングz1,z2およびBの識別情報と共に、ハッシュが前のものであるのかを検証するものである通信者Bに送信され、これによって、通信者Aによる、z1の認証およびy2の受信を確認する。
【0037】
したがって、情報は、認証された仕組みで交換され、得られた共通鍵は、安全なチャネル上での後続の通信の交換を可能にする。
【0038】
図4で説明したプロトコルを用いて、ストリングx2、yl、y2、zl、z2をすべて空のストリング(文字列)にすることによって、相互公開鍵認証鍵合意(共有)プロトコルを実装することが可能である。あるいは、暗黙の鍵を用いて相互公開鍵・認証鍵合意プロトコルを、kの値を鍵Kと共に暗号関数Eに適用した結果であるEK(k)を表わすと仮定されるストリングとしてx2を使用することによって実装することができる。通信者Bは、Kの値を計算することができ、よって、ストリングからkの名目上(即ち理論上)の値が取り出される。彼は、通信者Aと共に共有セッション鍵としてこれを使用することができる。ylの値は、EK(kl2)としてのz1およびEK(k2l)を表わすために使用することができ、ここでk12、k21は、通信のための異なる鍵、即ち、通信者間で共有される他の秘密情報である。この場合、y2、Z2とが空のストリング(文字列)である。このように、通信者の間における鍵k21およびkl2の認証された鍵輸送と一緒に共有鍵KABについての鍵合意、および、kについての認証された鍵合意がなされる。さらに、追加情報がそのときストリングx2,y2で提供される場合、適正な受信の確認も得られる。
【0039】
図4のプロトコルも、次のセッションの第1のパス中で交換される情報を渡すためにストリングz2を使用することにより、連続セッションの効率を増加させるために使用することもできる。したがって、図5で示すように、ストリングGA、x2は、前のセッションのz2として送られる。その後、以前のように、プロトコルは通信者Bから進行する。図5で見られるように、3番目の伝送は任意に省略することができる。通信者Bは、さらに、y2として交換に次のセッションのため情報GB、y1を含めることによりこの機能の利点を利用することもできる。
【0040】
相互公開鍵認証鍵合意プロトコルも、図6で示すような実体認証実装(entity authentication implementation)に適応することができる。この場合、図3でのように、通信者が安全なチャネル上で共有鍵を得たものであるとして、鍵生成が省略される。
【0041】
同様に、図5のそれと同様に、前のセッションにおける情報交換を利用するために図7で例示するように、図6のプロトコルを修正することもできる。
【0042】
従って、特別のニーズを満たすために一般的なプロトコルから多くの汎用で柔軟なプロトコルを開発し得ることがわかる。これらのプロトコルは、楕円曲線暗号手法を実装する、即ち、Zpで操作することができるようにすることが好適である。
【0043】
図3に示した公開鍵認証鍵合意プロトコルのメッセージフローと、図2で示した実体認証プロトコルのものとは同一の構造を持っていることが、容易に分るであろう。さらに、それの検証と同様に、通信者AおよびBによるハッシュ値hashAおよびhashBの計算も、それぞれ入力として同一の構造のストリングをとる。実際、両方のプロトコルは、プロトコルの中で使用される鍵Kを導出する方法だけにおいて異なる。したがって、両方のプロトコルを結合した実装は、メッセージ送受信、エラー処理、同様のものを含む通信フローの共通の取り扱いという利点を得ることができ、また鍵検証ステップ(即ちハッシュ値の生成および処理)の共通の取り扱いの利点を利用することもできる。
【0044】
同様の論法は、は、図4で示した公開鍵認証鍵合意プロトコルの公開鍵の処理ステップ、および、メッセージフロー、および図5に示したそれらのものの形式に適用できる。前者の一部だけの実行から、後者のものが形成されることが認識されるだろう。図4で示した公開鍵認証鍵合意プロトコルを用いて、図3に示したものを実装、即ち実行することができ、そして同様に、図6で示した拡張された実体認証プロトコルを用いて、図2に示したものを実装、即ち実行することができることに注意されたい。したがって、説明したプロトコルはすべて、これらプロトコルの全ておよび各々のプロトコルステップの実装(実行)のほとんど共通で通信(テレコミュニケーション)とメッセージフローを扱うための大規模な共通ルーチンで実装(実施)することができる
【0045】
本発明は、公開鍵ベースの合意プロトコルおよび実体認証プロトコルに言及しながら記述したが、それが対称な鍵合意プロトコル上で等しく利用することができることが認識されるであろう。そのような実施態様では、共有鍵Kの計算は、鍵付きハッシュ関数への1つの入力としてマスター鍵kmを使用して行なうことができる。暫定の鍵GAとGBとの結合は別の入力として使用され、結果として生じる出力は共有鍵Kとして使用される。そのような構成は図8に示してある。

【特許請求の範囲】
【請求項1】
データ通信システムにおける第1の通信部と第2の通信部との間での対称鍵の合意の方法であって、該第1の通信部および該第2の通信部は、それぞれ、マスター鍵Kを有し、該方法は、
該第1の通信部が第1の値Xを生成し、該第1の値Xを該第2の通信部に提供するステップと、
該第2の通信部が第2の値Yを生成し、該第1の値Xと該第2の値Yとの組み合わせにおいて鍵付き暗号関数を作用させることによって、共有鍵kを計算するステップであって、該第2の通信部は、該マスター鍵Kを、該鍵付き暗号関数に対する入力として用い、該第2の通信部により計算された該共有鍵kは、鍵付きハッシュ関数に対する入力として用いられ、該鍵付きハッシュ関数は、該第1の値X、該第2の値Y、ならびに該第1の通信部および該第2の通信部のうちの一方の識別情報の組み合わせにおいて作用させるためのものである、ステップと、
該第2の通信部が該第2の値Yを該第1の通信部に提供するステップと、
該第1の通信部が、該第1の値Xと該第2の値Yとの組み合わせにおいて該鍵付き暗号関数を作用させることによって、該共有鍵kを計算するステップであって、該第1の通信部は、該マスター鍵Kを、該鍵付き暗号関数に対する入力として用い、該第1の通信部により計算された該共有鍵kは、該鍵付きハッシュ関数に対する入力として用いられる、ステップと
を包含する、方法。
【請求項2】
前記第2の通信部が、第1のハッシュ値を生成するために、前記第1の値X、前記第2の値Y、ならびに前記第1の通信部および該第2の通信部のうちの一方の識別情報の組み合わせに、前記鍵付きハッシュ関数を適用するステップであって、該第2の通信部は、該第2の通信部によって計算された前記共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第2の通信部が、該第1のハッシュ値を該第1の通信部に提供するステップと、
該第1の通信部が、第2のハッシュ値を生成するために、該第1の値X、該第2の値Y、ならびに該第1の通信部および該第2の通信部のうちの該一方の該識別情報の組み合わせに、該鍵付きハッシュ関数を適用するステップであって、該第1の通信部は、該第1の通信部によって計算された該共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第1の通信部が、該第1のハッシュ値が該第2のハッシュ値に等しいことを検証するステップと
をさらに包含する、請求項1に記載の方法。
【請求項3】
前記第1の通信部が、第3のハッシュ値を生成するために、前記第1の値X、前記第2の値Y、ならびに該第1の通信部および前記第2の通信部のうちのもう一方の識別情報の組み合わせに、前記鍵付きハッシュ関数を適用するステップであって、該第1の通信部は、該第1の通信部によって計算された前記共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第1の通信部が、該第3のハッシュ値を該第2の通信部に提供するステップと、
該第2の通信部が、第4のハッシュ値を生成するために、該第1の値X、該第2の値Y、ならびに該第1の通信部および該第2の通信部のうちの該もう一方の該識別情報の組み合わせに、該鍵付きハッシュ関数を適用するステップであって、該第2の通信部は、該第2の通信部によって計算された該共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第2の通信部が、該第3のハッシュ値が該第4のハッシュ値に等しいことを検証するステップと
をさらに包含する、請求項2に記載の方法。
【請求項4】
前記第1のハッシュ値および前記第2のハッシュ値は、それぞれ、h(Y‖X‖Id)の形態であり、前記第3のハッシュ値および前記第4のハッシュ値は、それぞれ、h(X‖Y‖Id)の形態であり、hは前記鍵付きハッシュ関数であり、Idは、前記第1の通信部および前記第2の通信部のうちの前記一方の前記識別情報であり、Idは、該第1の通信部および該第2の通信部のうちの前記もう一方の前記識別情報である、請求項3に記載の方法。
【請求項5】
前記第1の値Xは、前記第1の通信部によって生成されたランダムな整数であり、前記第2の値Yは、前記第2の通信部によって生成されたランダムな整数である、請求項1〜4のいずれかに記載の方法。
【請求項6】
前記鍵付き暗号関数は別の鍵付きハッシュ関数である、請求項1〜5のいずれかに記載の方法。
【請求項7】
前記鍵付き暗号関数は前記鍵付きハッシュ関数である、請求項1〜5のいずれかに記載の方法。
【請求項8】
前記共有鍵kは、h(X‖Y)の形態である、請求項6または7に記載の方法。
【請求項9】
データ通信システムにおける第1の通信部と第2の通信部との間での対称鍵の合意の方法であって、該第1の通信部および該第2の通信部は、それぞれ、マスター鍵Kを有し、該方法は、
該第1の通信部が、第1の値Xを生成し、該第1の値Xを該第2の通信部に提供するステップと、
該第1の通信部が、該第2の通信部によって生成された第2の値Yを取得するステップと、
該第1の通信部が、該第1の値Xと該第2の値Yとの組み合わせにおいて鍵付き暗号関数を作用させることによって、共有鍵kを計算するステップであって、該第1の通信部は、該マスター鍵Kを、該鍵付き暗号関数に対する入力として用い、該第1の通信部により計算された該共有鍵kは、鍵付きハッシュ関数に対する入力として用いられ、該鍵付きハッシュ関数は、該第1の値X、該第2の値Y、ならびに該第1の通信部および該第2の通信部のうちの一方の識別情報の組み合わせにおいて作用させるためのものであり、該共有鍵kは、また、該マスター鍵Kを該鍵付き暗号関数に対する入力として用いることによって、該第1の値Xおよび該第2の値Yの該組み合わせにおいて、該第2の通信部が該鍵付き暗号関数を作用させることによって、該第2の通信部によって計算可能であり、該第2の通信部により計算可能な該共有鍵kは、また、該鍵付きハッシュ関数に対する入力として該第2の通信部によって用いることが可能である、ステップと
を包含する、方法。
【請求項10】
前記第1の通信部が、前記第2の通信部から第1のハッシュ値を受信するステップであって、該第1のハッシュ値は、該第2の通信部が、該第2の通信部により計算された前記共有鍵kを用いて、前記第1の値X、前記第2の値Y、ならびに前記第1の通信部および該第2の通信部のうちの一方の識別情報の組み合わせに前記鍵付きハッシュ関数を適用することによって、該第2の通信部により計算される、ステップと、
該第1の通信部が、第2のハッシュ値を生成するために、該第1の値X、該第2の値Y、ならびに該第1の通信部および該第2の通信部のうちの該一方の該識別情報の組み合わせに、該鍵付きハッシュ関数を適用するステップであって、該第1の通信部は、該第1の通信部によって計算された該共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第1の通信部が、該第1のハッシュ値が該第2のハッシュ値に等しいことを検証するステップと
をさらに包含する、請求項9に記載の方法。
【請求項11】
前記第1の通信部が、第3のハッシュ値を生成するために、前記第1の値X、前記第2の値Y、ならびに該第1の通信部および前記第2の通信部のうちのもう一方の識別情報の組み合わせに、前記鍵付きハッシュ関数を適用するステップであって、該第1の通信部は、該第1の通信部によって計算された前記共有鍵kを、該鍵付きハッシュ関数に対する入力として用いる、ステップと、
該第1の通信部が、検証のために該第3のハッシュ値を該第2の通信部に提供するステップであって、これにより、該第2の通信部は、第4のハッシュ値を生成するために該第2の通信部により計算された該共有鍵kを用いて、該第1の値X、該第2の値Y、ならびに該第1の通信部および前記第2の通信部のうちの該もう一方の該識別情報の組み合わせに、該鍵付きハッシュ関数を適用することによって、該第3のハッシュ値を検証し、次いで、該第3のハッシュ値が該第4のハッシュ値に等しいことを検証することが可能である、ステップと
をさらに包含する、請求項10に記載の方法。
【請求項12】
前記第2のハッシュ値は、h(Y‖X‖Id)の形態であり、前記第3のハッシュ値は、h(X‖Y‖Id)の形態であり、hは前記鍵付きハッシュ関数であり、Idは、前記第1の通信部および前記第2の通信部のうちの前記一方の前記識別情報であり、Idは、該第1の通信部および該第2の通信部のうちの前記もう一方の前記識別情報である、請求項11に記載の方法。
【請求項13】
前記第1の値Xは、前記第1の通信部によって生成されたランダムな整数である、請求項9〜12のいずれかに記載の方法。
【請求項14】
前記鍵付き暗号関数は別の鍵付きハッシュ関数である、請求項9〜13のいずれかに記載の方法。
【請求項15】
前記鍵付き暗号関数は前記鍵付きハッシュ関数である、請求項9〜13のいずれかに記載の方法。
【請求項16】
前記共有鍵kは、h(X‖Y)の形態である、請求項14または15に記載の方法。
【請求項17】
前記鍵付きハッシュ関数は暗号ハッシュ関数である、請求項1〜16のいずれかに記載の方法。
【請求項18】
第1の通信部と第2の通信部とを含むシステムであって、該第1の通信部と該第2の通信部とは、共に、請求項1〜8のいずれかに記載の方法を実行するように構成されている、システム。
【請求項19】
請求項9〜16のいずれかに記載の方法を実行するように構成されている暗号ユニットを有する通信部。
【請求項20】
請求項9〜16のいずれかに記載の方法を実行する複数のコンピュータ読み取り可能命令を格納したコンピュータ読み取り可能媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公開番号】特開2011−182454(P2011−182454A)
【公開日】平成23年9月15日(2011.9.15)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−108819(P2011−108819)
【出願日】平成23年5月13日(2011.5.13)
【分割の表示】特願2006−529491(P2006−529491)の分割
【原出願日】平成16年5月17日(2004.5.17)
【出願人】(397071791)サーティコム コーポレーション (38)
【Fターム(参考)】