(57)【特許請求の範囲】
【請求項１】
第１及び第２通信ユニット間のセキュア通信を提供する方法であって、本方法は、共有シークレットキーを生成する、前記第１及び第２通信ユニット間のキー交換を備え、前記キー交換は、ユーザ対話を含み、前記方法は、
−少なくとも一部のユーザ対話によって、前記第１及び第２通信ユニットへパスコードを提供するステップと、
−前記第１通信ユニットによって前記共有シークレットキーへの第１寄与（contribution）と、前記第２通信ユニットによって前記共有シークレットキーへの第２寄与を生成し、前記生成された各寄与を、対応する他の通信ユニットへ送信するステップと、
−少なくとも前記パスコードに基づいて、対応する受信側通信ユニットによって、前記送信された第１及び第２寄与を認証するステップと、
−前記受信された寄与が正常に認証された場合にのみ、少なくとも前記受信された第１あるいは第２寄与から前記通信ユニットのそれぞれによって前記共有シークレットキーを確立するステップと、
−前記生成された共有シークレットキーを使用して、前記第２通信ユニットによって前記パスコードを暗号化するステップと、
−前記生成された第２寄与とともに、前記暗号化されたパスコードを前記第１通信ユニットへ送信するステップと、
−前記第１通信ユニットによって、前記受信された暗号化パスコードを解読するステップと、
−前記受信された第２寄与を認証するために、前記第１通信ユニットへ提供された前記パスコードと、前記解読された受信されたパスコードとを比較するステップと
を備えることを特徴とする方法。
【請求項２】
前記パスコードは、ユーザ対話を介して、通信するのに十分短い
ことを特徴とする請求項１に記載の方法。
【請求項３】
前記第１及び第２寄与は、ディフィ−ヘルマンキー交換プロトコルの第１及び第２パブリックキーである
ことを特徴とする請求項１に記載の方法。
【請求項４】
前記第１及び第２通信ユニットへパスコードを提供するステップは、前記第１通信ユニットによってパスコードを生成し、かつユーザ対話を含む通信チャネルを介して、前記第２通信ユニットへ前記生成されたパスコードを提供する
ことを特徴とする請求項１に記載の方法。
【請求項５】
前記送信された第１及び第２寄与を認証するステップは、メッセージ認証コードのタグ値を算出することによって前記第１寄与を認証し、前記タグ値は、前記第１寄与と前記パスコードから算出される
ことを特徴とする請求項１に記載の方法。
【請求項６】
前記タグ値は、誤り訂正コードのコード語のシンボルを選択することによって算出され、前記コード語は、前記第１寄与に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項５に記載の方法。
【請求項７】
前記第１寄与から一方向ハッシュ関数のハッシュ値を算出し、かつ誤り訂正符号のコード語のシンボルを選択することによって前記タグ値を算出するステップを更に備え、前記コード語は、前記第１寄与の前記ハッシュ値に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項６に記載の方法。
【請求項８】
前記誤り訂正コードは、リード−ソロモンコードである
ことを特徴とする請求項６に記載の方法。
【請求項９】
−前記第１通信ユニットによって前記共有シークレットキーへの前記第１寄与を生成し、前記生成された第１寄与を前記第２通信ユニットへ送信するステップと、
−前記パスコードに基づいて前記第２通信ユニットによって前記受信された第１寄与を認証し、かつ、前記受信された第１寄与が信頼あるものとして受け入れられる場合、少なくとも前記受信された第１寄与から前記共有シークレットキーを生成するステップと、
−前記第２通信ユニットによって生成された前記共有シークレットキーへの第２寄与を前記第１通信ユニットへ送信するステップと、
−前記パスコードに基づいて、前記第１通信ユニットによって前記受信された第２寄与を認証し、かつ前記受信された第１寄与が信頼あるものとして受け入れられる場合にのみ、前記第２通信ユニットによって前記共有シークレットキーを生成するステップと
を備えることを特徴とする請求項１に記載の方法。
【請求項１０】
−キーとして前記パスコードを使用して、前記第１寄与からメッセージ認証コードの第１メッセージタグを算出するステップと、
−前記算出された第１メッセージタグを前記第２通信ユニットへ提供するステップとを更に備え、
前記パスコードに基づいて前記第２通信ユニットによって前記受信された第１寄与を認証するステップは、
−キーとして前記パスコードを使用して、前記受信した第１寄与から前記メッセージ認証コードの第２メッセージタグを算出するステップと、
−前記受信した第１寄与を認証するために、前記第１及び第２メッセージタグを比較するステップと
を備えることを特徴とする請求項９に記載の方法。
【請求項１１】
第１通信ユニットと第２通信ユニット間のセキュア通信を提供する方法であって、前記方法は、登録ステップと、キー交換ステップとを備え、
前記登録ステップは、
−前記第１通信ユニットによって、キー交換メカニズムの第１プライベートキー値と、対応する第１パブリックキーを生成するステップと、
−前記第１通信ユニットによってパスコードを生成するステップと、
−前記第１通信ユニットによって、前記パスコードを使用してメッセージ認証コードに従う前記第１パブリックキーのメッセージタグを算出するステップと、
−少なくとも一部のユーザ対話によって、前記パスコードと、前記算出されたタグ値を前記第２通信ユニットにアクセス可能にするステップとを備え、
前記キー交換ステップは、
−前記第１通信ユニットによって、前記第１パブリックキーを前記第２通信ユニットへ送信するステップと、
−前記第２通信ユニットによって前記パスコードを使用して前記メッセージ認証コードに従う前記受信した第１パブリックキーの前記タグ値を算出し、前記算出したタグ値が前記通信されたタグ値に対応する場合、前記受信した第１パブリックキーを受け入れるステップと
−前記第２通信ユニットによって、前記キー交換メカニズムの第２プライベートキー値と対応する第２パブリックキーを生成するステップと、
−前記第２通信ユニットによって、前記第１パブリックキーと前記第２プライベートキー値から、前記キー交換メカニズムの共有シークレットキーを算出するステップと、
−前記算出された共有シークレットキーを使用して、前記第２通信ユニットによってパスコードを暗号化するステップと、
−前記第２通信ユニットによって、前記第２パブリックキーと前記暗号化されたパスコードを前記第１通信ユニットへ送信するステップと、
−前記第１通信ユニットによって、前記第２パブリックキーと前記第１プライベートキーから、前記キー交換メカニズムの前記共有シークレットキーを算出するステップと、
−前記第１通信ユニットによって算出された前記共有シークレットキーを使用して、前記送信され、暗号化されたパスコードを前記第１通信ユニットによって解読し、前記解読されたパスコードが、前記第１通信ユニットによって生成されたパスコードに対応する場合、前記算出された共有シークレットキーを受け入れるステップと
を備えることを特徴とする方法。
【請求項１２】
第１及び第２通信ユニット間の共有シークレットキーを生成するキー交換によって、少なくとも前記第１及び第２通信ユニット間のセキュア通信を提供する通信システムであって、前記キー交換は、ユーザ対話を含み、前記通信システムは、
−少なくとも一部のユーザ対話によって、前記第１及び第２通信ユニットへパスコードを提供する手段と、
−前記第１通信ユニットによって前記共有シークレットキーへの第１寄与（contribution）と、前記第２通信ユニットによって前記共有シークレットキーへの第２寄与を生成する手段と、
−前記生成された各寄与を、対応する他の通信ユニットへ送信する手段と、
−前記パスコードに基づいて、対応する受信側通信ユニットによって、前記送信された第１及び第２寄与を認証する手段と、
−前記受信された寄与が正常に認証された場合にのみ、少なくとも前記受信された第１あるいは第２寄与から前記通信ユニットのそれぞれによって前記共有シークレットキーを確立する手段と、
−前記生成された共有シークレットキーを使用して、前記第２通信ユニットによって前記パスコードを暗号化する手段と、
−前記生成された第２寄与とともに、前記暗号化されたパスコードを前記第１通信ユニットへ送信する手段と、
−前記第１通信ユニットによって、前記受信された暗号化パスコードを解読する手段と、
−前記受信された第２寄与を認証するために、前記第１通信ユニットへ提供された前記パスコードと、前記解読された受信されたパスコードとを比較する手段と
を備えることを特徴とする通信システム。
【請求項１３】
前記第１通信ユニットは、前記パスコードを生成するように適合されている処理手段と、第１通信チャネルとは異なる第２通信チャネルを介して、前記生成されたパスコードを前記第２通信ユニットへ提供する出力手段とを備える
ことを特徴とする請求項１２に記載の通信システム。
【請求項１４】
前記第１及び第２通信ユニットはそれぞれ、メッセージ認証コードのタグ値を算出する処理手段を備え、前記タグ値は、前記第１寄与及び前記パスコードから算出される
ことを特徴とする請求項１２に記載の通信システム。
【請求項１５】
前記処理手段は、誤り訂正コードのコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項１４に記載の通信システム。
【請求項１６】
前記処理手段は、更に、前記第１寄与から一方向ハッシュ関数のハッシュ値を算出し、かつ誤り訂正符号のコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与の前記ハッシュ値に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項１５に記載の通信システム。
【請求項１７】
前記誤り訂正コードは、リード−ソロモンコードである
ことを特徴とする請求項１５に記載の通信システム。
【請求項１８】
共有シークレットキーを生成するキー交換によって、他の通信ユニットとのセキュア通信を提供する通信ユニットであって、前記キー交換は、ユーザ対話を含み、前記通信ユニットは、データ処理手段、ユーザインタフェース手段及び通信インタフェースを備え、
前記処理手段は、
−前記ユーザインタフェース手段を介する、少なくとも一部のユーザ対話によって、前記他の通信ユニットへ提供されるパスコードを生成するステップと、
−前記共有シークレットキーへの第１寄与を生成し、前記通信インタフェースを介して送信し、かつ、前記通信インタフェースを介して、前記共有シークレットキーへの第２寄与を受信するステップであって、前記第２寄与は、前記他の通信ユニットによって生成されるステップと、
−前記パスコードに基づいて、前記受信した第２寄与を認証するステップと、
−前記受信した第２寄与が正常に認証された場合にのみ、少なくとも前記第２寄与から前記共有シークレットキーを確立するステップと、
−前記共有シークレットキーを使用して、前記第２寄与とともに受信された暗号化されたパスコードを解読するステップと、
−前記解読されたパスコードが前記生成されたパスコードに対応する場合、前記受信した第２寄与を受け入れるステップと
を実行するように適合されている
ことを特徴とする通信ユニット。
【請求項１９】
前記処理手段は、更に、前記他の通信ユニットへ提供されるメッセージ認証コードのタグ値を算出するように適合され、前記タグ値は、前記第１寄与及び前記パスコードから算出される
ことを特徴とする請求項１８に記載の通信ユニット。
【請求項２０】
前記処理手段は、誤り訂正コードのコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項１９に記載の通信ユニット。
【請求項２１】
前記処理手段は、更に、前記第１寄与から一方向ハッシュ関数のハッシュ値を算出し、かつ誤り訂正符号のコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与の前記ハッシュ値に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項２０に記載の通信ユニット。
【請求項２２】
前記誤り訂正コードは、リード−ソロモンコードである
ことを特徴とする請求項２０に記載の通信ユニット。
【請求項２３】
共有シークレットキーを生成するキー交換によって、他の通信ユニットとのセキュア通信を提供する通信ユニットであって、前記キー交換は、ユーザ対話を含み、前記通信ユニットは、データ処理手段、記憶手段、通信インタフェース及び共有シークレットキーを生成するキー交換を実行するように適合されている処理手段を備え、
前記処理手段は、
−少なくとも一部のユーザ対話で、前記他の通信ユニットによって生成されたパスコードを受信し、かつ記憶するステップと、
−前記通信インタフェースを介して、前記他の通信ユニットによって生成された前記共有シークレットキーへの第１寄与を受信するステップと、
−前記パスコードに基づいて、前記受信した第１寄与を認証するステップと、
−前記受信した第１寄与が正常に認証された場合、少なくも前記第１寄与から前記共有シークレットキーを確立し、かつ前記通信インタフェースを介して、前記共有シークレットキーへの第２寄与を送信するステップと、
−前記共有シークレットキーを使用して、前記記憶されたパスコードを解読するステップと、
−前記通信インタフェースを介して、前記解読されたパスコードを前記第２寄与とともに、前記他の通信ユニットへ送信するステップと
を実行するように適合されている
ことを特徴とする通信ユニット。
【請求項２４】
更に、前記記憶手段にメッセージ認証タグを記憶するように適合され、前記処理手段は、更に、以下のように適合されている
−前記受信した第１寄与と前記パスコードからメッセージ認証コードのタグ値を算出し、
−前記算出されたタグ値が前記記憶されたメッセージ認証タグに対応する場合にのみ、前記受信した第１寄与を受け入れる
ことを特徴とする請求項２３に記載の通信ユニット。
【請求項２５】
前記処理手段は、更に、誤り訂正コードのコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項２４に記載の通信ユニット。
【請求項２６】
前記処理手段は、更に、前記第１寄与から一方向ハッシュ関数のハッシュ値を算出し、かつ誤り訂正符号のコード語のシンボルを選択することによって前記タグ値を算出するように適合され、前記コード語は、前記第１寄与の前記ハッシュ値に対応し、前記シンボルは、前記パスコードによって識別される
ことを特徴とする請求項２５に記載の通信ユニット。
【請求項２７】
前記誤り訂正コードは、リード−ソロモンコードである
ことを特徴とする請求項２５に記載の通信ユニット。
【請求項２８】
請求項１乃至１１のいずれか１項に記載の方法をコンピュータに実行させるためのコンピュータプログラム。
【請求項２９】
請求項１乃至１１のいずれか１項に記載の方法をコンピュータに実行させるためのプログラムを記憶していることを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の分野
本発明は、第１通信ユニットと第２通信ユニット間のセキュア通信に関するものである。
【０００２】
本発明の背景
無線通信システムでは、関係する通信ユニット間のセキュア通信の確立は、重要なものである。多くの通信システムでは、キー交換メカニズムが実現されていて、これは、関係する通信ユニットに共通共有シークレットを提供する。一旦共有シークレットが２つのユニット間で確立されると、その共有シークレットは、そのユニット間で通信されるメッセージの暗号化及び保全性保護（integrity protection）の少なくとも一方を提供するために使用される。
【０００３】
多くの状況では、セキュア通信の確立は、ユーザ対話が介在するキー交換によって達成される、このユーザ対話には、パスコード、例えば、ユーザがパスワードあるいはＰＩＮを一方あるいは両方の通信ユニットへ入力するものがある。特に、ユーザ対話は、関係するユニットが、まだセキュリティ関係、例えば、共有シークレットを確立していない情報で必要となる場合がある。
【０００４】
短距離無線通信技術の一例には、ブルートゥースがある、これは、２．４５ＧＨｚの無免許のＩＳＭ（工業、科学及び医療）帯域で動作する無線通信技術である、これは広く利用可能である。この帯域は、８３．５ＭＨｚの無線スペクトルを提供する。ブルートゥースは、低コスト、低電力の無線構成を提供する技術である。ブルートゥースを使用することで、いわゆるピコネット形式のアドホックでパーソナルデバイスを接続することが可能である。ブルートゥース規格（「ブルートゥースシステム仕様書、コア、バージョン１．１」における「基本帯域仕様」、ブルートゥース専用団体、２００１年２月（"Baseband Specification" in "Specification of the Bluetooth System, Core, Version 1.1", Bluetooth Special Interest Group, February 2001）を参照）は、いくつかのセキュリティメカニズムを備えている。特に、ブルートゥース規格は、ペアリングメカニズムを提供する、これは、接続する前の２つのデバイスが、共有シークレット、いわゆる、リンクキーを、２つのブルートゥースデバイス間で確立するためのキー交換を実行する。このリンクキーは、ＰＩＮから導出され、これは、ユーザ（群）のデバイスによって入力される。このリンクキーは、続いて、ブルートゥース通信を保護するために使用される。
【０００５】
米国特許４，２００，７７０号に開示されている、いわゆるディフィ−へルマンキー交換プロトコルは、共有シークレットを備える２つのデバイスを提供する。このプロトコルに従えば、各デバイスは、シークレットキーと、そのシークレットキーからパブリックキーを生成し、そのパブリックキーを他のデバイスへ送信する。この共有シークレットは、自身のシークレットキーと、他のデバイスで受信した対応するパブリックキーから、各デバイスによって生成される。
【０００６】
このようなキー交換メカニズムの一般的な問題は、中間者攻撃、即ち、不正ユーザが、通信デバイス間のメッセージを傍受し、かつ変更する場合のセキュリティ破壊による攻撃がある。
【０００７】
シー．  ゲールマン及びケイ．  ネイバーグによる、論文「ブルートゥース帯域幅セキュリティへの拡張」、ノルディックサイエンス議事録  ２００１、コペンハーゲン  ２００１年１１月（C. Gehrmann and K. Nyberg, "Enhancements to the Bluetooth baseband security", Proceedings of the Nordsec 2001, Copenhagen, November 2001）では、ユーザ対話が介在する認証スキームを記載している。特に、この論文は、匿名のディフィ−ヘルマンキー交換によって予め確立されている共有シークレットを認証する方法を記載している。この方法は、ディフィ−ヘルマンキー交換中に中間者攻撃が存在している場合に、確立されたディフィ−ヘルマンキーが、正当なデバイスとは異なっているという前提に基づいている。この認証は、確立された共有シークレットに基づいて、２つのデバイスによって算出されるチェック値に基づいている。この生成されたチェック値は、両方のデバイスに表示されて、ユーザによって比較される、あるいは一方のデバイスによって算出されたそのチェック値が他方のデバイスに入力されることで、他のデバイスに、比較を実行することを可能にする。
【０００８】
上述の従来システムの問題は、セキュア通信の確立時に発生する、確立された共有シークレットを認証するヒューマン対話を必要とすることである。しかしながら、これは、例えば、実際のセキュア通信が高速に確立されるべきある状況では、望ましくない。
【０００９】
本発明の要約
上述の及び他の問題は、第１及び第２通信ユニット間でセキュア通信を提供する方法によって解決される、この方法は、共有シークレットキーを生成する第１及び第２通信ユニット間のキー交換を備え、このキー交換は、ユーザ対話を含み、この方法は、
−少なくとも一部のユーザ対話によって、前記第１及び第２通信ユニットへパスコードを提供するステップと、
−前記第１通信ユニットによって前記共有シークレットキーへの第１寄与（contribution）と、前記第２通信ユニットによって前記共有シークレットキーへの第２寄与を生成し、前記生成された各寄与を、対応する他の通信ユニットへ送信するステップと、
−少なくとも１つの前記パスコードに基づいて、対応する受信側通信ユニットによって、前記送信された第１及び第２寄与を認証するステップと、
−前記受信された寄与が正常に認証された場合にのみ、少なくとも前記受信された第１あるいは第２寄与から前記通信ユニットのそれぞれによって前記共有シークレットキーを確立するステップと
を備える。
【００１０】
本発明の効果は、実際のキー交換の前に、パスコートが判定され、かつ通信ユニットへ提供できることであり、また、このパスコードは、実際のキー交換、即ち、共有シークレットの生成が発生する時点よりも後の時点で使用できることである。ここで、共有シークレットを認証するために、共有シークレットの実際の生成中に、ユーザ対話に対して必要とされることは、本方法のセキュリティを低下させることなく、解消される。
【００１１】
本発明の更なる効果は、キー交換に伴う中間者攻撃のリスクを削減することであり、これによって、通信システムのセキュリティを向上する。
【００１２】
パスコードは、例えば、第１通信ユニットによって、自動的に生成されることが好ましく、これによって、パスコードの不規則性を補償する。通信ユニットの１つによって生成されるパスコードが、通信チャネルを介して他の通信ユニットへ送信される場合、ここで、この通信チャネルは、キー交換に対して使用される通信リンクとは別のユーザ対話を介在する、セキュリティが向上する、これは、別通信チャネルの敵対的な傍受のリスクも低下するからである。例えば、ユーザ対話が介在する別通信チャネルは、電話回線、メールあるいは登録プロセスの一部として送信されるレターあるいはその類であっても良い。パスコードは短いことが好ましく、マンマシーンインタフェースあるいはヒューマン間インタフェースを介して通信するのに十分に短いことが好ましい。例えば、パスコードは、１０の桁、文字、他のシンボルよりも短いストリング、例えば、４〜６の１６進数桁未満のストリングであっても良く、これによって、パスコードの通信を簡略化する。例えば、パスコードは、通信ユニットのディスプレイから容易に読み取ることができ、この通信ユニットは、そのコードを生成して、電話を介して、あるいはメールあるいはその類によって通信し、更に、他のユニット、電話、コンピュータ、あるいはその類にキー入力することができる。
【００１３】
ここで、ユーザ対話は、パスコードを、例えば、ディスプレイから読み取り、そのパスコードを入力するための、あるいはパスコードあるいはその類を送信するための許可のユーザ入力指示を少なくとも実行するための通信ユニットの少なくとも１つのユーザを介在する、即ち、ユーザ対話は、通信ユニットの１つによってパスコードを出力すること、あるいは、ユーザによる入力、例えば、パスコードのユーザ指示を受信することの少なくとも一方を介在する。いくつかの実施形態では、ユーザ対話は、ヒューマン間インタフェースを更に介在する、これは、例えば、あるデバイスのユーザから他のデバイスのユーザへのパスコードを通信することによるものである。
【００１４】
キー交換は共有シークレットを生成する適切なキー交換メカニズムに基づいていても良く、共有シークレットは、連続通信中に十分なセキュリティを提供するために十分に長いことが好ましい。一実施形態では、キー交換は、ディフィ−ヘルマンキー交換である。キー交換メカニズムの他の例には、ＲＳＡキー交換が含まれる。本発明に従うキー交換が、一般的な標準キー交換メカニズムに基づくことができることが利点である。
【００１５】
本発明の実施形態に従えば、送信された第１及び第２寄与を認証するステップは、メッセージ認証コードのタグ値を算出することによって第１寄与を認証し、ここで、タグ値は、第１寄与とパスコードから算出されるものであり、これによって、高レベルのセキュリティを提供し、かつわずかなコンピュータリソースで済む効果的な第１寄与の認証を提供する。好ましくは、メッセージ認証コード（ＭＡＣ）は、絶対的なセキュアＭＡＣである、即ち、大きなコンピュータリソースでも実質的に損失することがないＭＡＣである（a MAC that substantially cannnot be broken even with large computational resoureces）。
【００１６】
更なる実施形態に従えば、タグ値は、誤り訂正コード、例えば、リード−ソロモンコードのコード語のシンボルを選択することによって算出され、このコード語は、第１寄与に対応し、また、そのシンボルは、パスコードによって識別される。これによって、高セキュリティの認証は、ショートパスコードに対してもさえも提供される。
【００１７】
好ましくは、認証は、更に、第１寄与から一方向ハッシュ関数のハッシュ値を算出し、また、誤り訂正コードのコード語のシンボルを選択することによってタグ値を算出し、このコード語は、第１寄与のハッシュ値に対応し、また、そのシンボルは、パスコードによって識別される。ここで、高レベルのセキュリティを維持しながら、パスコード長を、更に、削減することができる。
【００１８】
通信ユニットという用語は、データ通信を容易にするための、通信信号、例えば、無線通信信号を受信及び／あるいは送信する適切な回路を備える任意のデバイスあるいはデバイスのグループを意味するものである。このようなデバイスの例には、ポータブル無線通信機器及び他のハンドヘルドあるいはポータブルデバイスが含まれる。ポータブル無線通信機器という用語は、移動電話、ページャ、コミュニケータ、即ち、電子オーガナイザ、スマートフォン、パーソナルデジタルアシスタント（ＰＤＡ）、ハンドヘルドコンピュータあるいはその類のようなあらゆる機器を含むものである。
【００１９】
通信ユニットの更なる例には、ステーショナリ通信機器、例えば、ステーショナリコンピュータあるいは、無線通信インタフェースを含む他の電子機器を含んでいる。一実施形態では、これらのユニットの１つは、いくつかのデバイスから構成されていても良い。例えば、通信ユニットは、例えば、アクセスポイントを備えるコンピュータネットワークを備えていても良く、このアクセスポイントは、コンピュータネットワーク、例えば、ＬＡＮへの無線アクセスを提供する。
【００２０】
例えば、通信ユニットは、ブルートゥース技術、あるいは他の無線通信技術、例えば、無線ＬＡＮに従って動作しても良い。
【００２１】
更なる実施形態は、従属請求項で開示される。
【００２２】
上述及び後述の方法の特徴は、ソフトウェアで実現されても良く、また、データ処理システム、あるいはコンピュータ実行可能命令の実行によって生じる他の処理手段で実行されても良いことに注意する。この命令は、記憶媒体から、あるいはコンピュータネットワークを介して他のコンピュータから、ＲＡＭのようなメモリにロードさされるプログラムコード手段であっても良い。選択的には、上述の特徴は、ソフトウェアに代わる固定配線回路、あるいはそれとソフトウェアとの組み合わせによって実現されても良い。
【００２３】
本発明は、上述及び後述の方法を含む様々な方法で実現することができ、また、通信システム及び更なる製造手段で実現することができ、これらは、最初に説明した方法で説明される効果及び利点の１つ以上をもたらし、また、それぞれは、最初に説明した方法で説明され、かつ従属請求項で開示される実施形態に対応する１つ以上の実施形態を備えている。
【００２４】
本発明は、更に、第１及び第２通信ユニット間の共有シークレットキーを生成するキー交換によって、少なくとも前記第１及び第２通信ユニット間のセキュア通信を提供する通信システムに関するものであり、前記キー交換は、ユーザ対話を含み、前記通信システムは、
−少なくとも一部のユーザ対話によって、前記第１及び第２通信ユニットへパスコードを提供する手段と、
−前記第１通信ユニットによって前記共有シークレットキーへの第１寄与（contribution）と、前記第２通信ユニットによって前記共有シークレットキーへの第２寄与を生成する手段と、
前記生成された各寄与を、対応する他の通信ユニットへ送信する手段と、
−前記パスコードに基づいて、対応する受信側通信ユニットによって、前記送信された第１及び第２寄与を認証する手段と、
−前記受信された寄与が正常に認証された場合にのみ、少なくとも前記受信された第１あるいは第２寄与から前記通信ユニットのそれぞれによって前記共有シークレットキーを確立する手段と
を備える。
【００２５】
本発明は、更に、共有シークレットキーを生成するキー交換によって、他の通信ユニットとのセキュア通信を提供する通信ユニットに関するものであり、前記キー交換は、ユーザ対話を含み、前記通信ユニットは、データ処理手段、ユーザインタフェース手段及び通信インタフェースを備え、前記処理手段は、以下のステップを実行するように適合されている
−前記ユーザインタフェース手段を介する、少なくとも一部のユーザ対話によって、前記他の通信ユニットへ提供されるパスコードを生成するステップと、
−前記共有シークレットキーへの第１寄与を生成し、前記通信インタフェースを介して送信し、かつ、前記通信インタフェースを介して、前記共有シークレットキーへの第２寄与を受信するステップであって、前記第２寄与は、前記他の通信ユニットによって生成されるステップと、
−前記パスコードに基づいて、前記受信した第２寄与を認証するステップと、
−前記受信した第２寄与が正常に認証された場合にのみ、少なくとも前記第２寄与から前記共有シークレットキーを確立するステップと
を備える。
【００２６】
本発明は、更に、共有シークレットキーを生成するキー交換によって、他の通信ユニットとのセキュア通信を提供する通信ユニットに関するものであり、前記キー交換は、ユーザ対話を含み、前記通信ユニットは、データ処理手段、記憶手段、通信インタフェース及び共有シークレットキーを生成するキー交換を実行するように適合されている処理手段を備え、前記キー交換は、以下のステップを実行するように適合されている
−少なくとも一部のユーザ対話で、前記他の通信ユニットによって生成されたパスコードを受信し、かつ記憶するステップと、
−前記通信インタフェースを介して、前記他の通信ユニットによって生成された前記共有シークレットキーへの第１寄与を受信するステップと、
−前記パスコードに基づいて、前記受信した第１寄与を認証するステップと、
−前記受信した第１寄与が正常に認証された場合、少なくも前記第１寄与から前記共有シークレットキーを確立し、かつ前記通信インタフェースを介して、前記共有シークレットキーへの第２寄与を送信するステップと
を備える。
【００２７】
ここで、処理手段という用語は、上述の機能を実行するために適切に適合されている任意の回路及びデバイスの少なくとも一方を意味するものである。特に、この用語は、汎用、あるいは専用プログラマブルマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル論理アレイ（ＰＬＡ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定専用電子回路等、あるいはそれらの組み合わせを意味するものである。
【００２８】
通信インタフェースは、無線通信チャネルを介してデータを通信する任意の適切な回路あるいはデバイスを備えていても良い。例えば、このインタフェースは、無線送信機及び受信機を備えていても良い、あるいは、別の通信技術、例えば、赤外線信号あるいはその類を使用する送信機／受信機であっても良い。
【００２９】
記憶手段という用語は、データ記憶用の任意の適切な構成あるいはデバイスを構成することを意図するものであり、これには、例えば、電気的消去可能プログラマブルリードオンリメモリ（ＥＥＰＲＯＭ）、フラッシュメモリ、消去可能プログラマブルリードオンリメモリ（ＥＰＲＯＭ）、リードオンリメモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）がある。記憶手段は、通信ユニットの一部に集積されていても良い、あるいはその通信ユニットに対して着脱可能に装着されて接続されても良い。例えば、記憶手段は、リムーバル記憶手段であっても良く、これには、例えば、メモリカード、ＰＣＭＣＩＡカード、スマートカードあるいはその類がある。
【００３０】
実施形態の詳細説明
図１は、セキュアキー交換メカニズムの実施形態のフロー図である。Ａ及びＢで示される２つのユニットが、共有シークレットキーを確立するために、セキュアキー交換を実行することを意図している場合、これらは、次のステップを実行する、ここで、参照番号１０１で示される左側のフロー図のステップはユニットＡによって実行され、参照番号１０２で示される右側のフロー図のステップはユニットＢによって実行される。
【００３１】
以下のキー交換は、キーアグリーメント（鍵共有：key agreement）用の、いわゆる、「ディフィ−ヘルマン」方法に基づいている。以下の説明の理解を容易にするために、ディフィ−ヘルマンキーアグリーメントを簡単に説明する。これのより詳細な説明については、米国特許４，２００，７７０号で参照され、これは、参照することによってその全体が本明細書に組み込まれる。
【００３２】
２つのユニットＡ及びＢが共有シークレットキーを確立したい場合、これらは、素数ｐ＞２と、基底ｇに同意する、これらは基本（原始）ｍｏｄ  ｐ（primitive mod p）である。パラメータｐ及びｇは、両ユニットにハードコード化されていても良く、これらは、一方のユニットで生成されて、他方のユニットへ通信されても良い、あるいは、これらは、サードパーティから検索されても良く、あるいはその類がなされても良い。例えば、ｐ及びｇを生成するために、ｐの値が選択されても良い、これは、例えば、大きな乱数、例えば、１０００ビット以上からなる乱数から選択されても良く、また、ｐが素数であるかどうかをテストするために、素数テスト（prime test）が実行されても良い。そうでない場合、素数が検出されるまでテストを実行して、新規のｐを選択しても良い。続いて、乱数ｇが選択され、かつｇが生成元（generator）であるかがテストされる、そうでない場合、生成元が検出されるまでテストを実行して、新規のｇが選択される。
【００３３】
各ユニットは、ｐ−１未満のシークレット番号を生成する。以下では、ユニットＡによって生成されるシークレット番号はｘと称し、ユニットＢによって生成されるシークレット番号はｙと称する。次に、各ユニットは、シークレット値と上述のパラメータに基づいてパブリックキーを生成する、ユニットＡは、Ｘ＝ｇx  ｍｏｄ  ｐ  を生成し、ここで、ｍｏｄは、モジュラス（modulus）関数を示している、即ち、整数剰余である。同様に、ユニットＢは、Ｙ＝ｇy  ｍｏｄ  ｐを生成する。
【００３４】
ユニットは、自身のパブリックキーを交換し、かつそれぞれのユニットは、共通シークレット値Ｓを、以下に従って算出する：
ユニットＡ：Ｓ＝（Ｙ）x  ｍｏｄ  ｐ
ユニットＢ：Ｓ＝（Ｘ）y  ｍｏｄ  ｐ
従って、この結果として、ユニットＡ及びＢは、シークレット値ｘ及びｙを通信することなく、共通シークレットキーＳを設定する、これは、（ｇy  ｍｏｄ  ｐ）x  ｍｏｄ  ｐ＝（ｇx  ｍｏｄ  ｐ）y  ｍｏｄ  ｐであるからである。
【００３５】
ここで、図１を参照すると、キー交換の初期ステップ１０３では、ユニットＡは、乱数ｘ、対応するディフィ−ヘルマンパブリックキーＸ及びショートシークレットストリングＫあるいは他のパスコードを生成する。ディフィ−ヘルマンパブリックキーＸは、上述のように、対応するパラメータｇ及びｐに基づいて算出される、これは、ユニットＡ及びＢによって同意されているものである。好ましくは、シークレットストリングＫは、適切なキー空間、例えば、４〜６桁の１６進ストリングからランダムに判定される。
【００３６】
次のステップ１０４では、ユニットＡは、メッセージ認証コード（ＭＡＣ：message authentication code）を使用して、パブリックキーＸからタグ値ｔを算出する。ここで、メッセージ認証コードという用語は、送信側（送信機：sendor）と受信側（受信機：receiver）間で通信されるメッセージからタグ値を算出するための任意の適切な関数を示すものであり、ここで、この関数は、送信側と受信側間の対称（共通：symmetric）共有シークレットに基づいている。シークレット値は、キーと呼ばれる。シークレットキーは、ＭＡＣ算出への入力変数である。正しいシークレットキーを所有するものだけが、任意のメッセージに対するタグ値を算出することができる。ＭＡＣのタグ値は保全性チェック値である、これは、オリジナルメッセージデータから算出され、かつそれはメッセージの受信側へ通信される。ＭＡＣによって保護されたメッセージの受信においては、受信側は、受信データに基づいて、対応するタグ値を算出する。算出されたタグ値が受信したタグ値と等しい場合、メッセージは認証されたものとして受け入れられる。周知のＭＡＣの例には、いわゆる、メッセージ認証用キー化（鍵付：keyed）ハッシング（ＨＭＡＣ）アルゴリズムがあり、これは、暗号技術における一方向性ハッシュ関数に基づいていて、これには、セキュアハッシュアルゴリズムＳＨＡ−１及びメッセージダイジェストアルゴリズムＭＤ５がある。ＭＡＣは、多くの通信プロトコルでデータ保全性保護を提供するために使用される。誤り訂正コードに基づくＭＡＣ関数の実施形態は、以下で説明する。ステップ１０４では、ＭＡＣ関数への入力に、パブリックキーＸが組み込まれる、また、生成されたシークレットストリングキーＫがタグ値ｔのＭＡＣ算出用のキーとして使用される。キー設定中に追加のデータが通信される、いくつかの実施形態では、タグ値は、パブリックキーＸと追加のデータを含むメッセージから算出されても良く、これによって、追加のデータに対しても保全性保護を提供することが理解される。
【００３７】
ステップ１０５では、生成されたシークレットストリングＫと算出されたタグ値ｔが、図１の破線矢印１０６で示されるように、ユーザ対話が介在する適切な通信チャネルを介してユニットＢへ通信される。例えば、Ｋとｔの値は、ユニットＡのディスプレイから値を読み上げ、ユニットＢにその値をキー入力することによって、ユニットＡからユニットＢへ転送されても良い。別の実施形態では、値はいくつかの他の手段によって転送されても良く、これには、例えば、電気通信ネットワークを介して、暗号化されたメッセージ、例えば、電子メール、ＳＭＳあるいはその類として値を送信することによるものがある、あるいは、ユーザ対話が介在する他の適切な通信チャネル、好ましくは、セキュア通信が確立されている通信チャネルとは異なる通信チャネルを介するものがある。ユニットＡとＢは、互いに確立されている通信リンクを持つ必要がないという利点があり、これらは、互いに近接している必要すらない。例えば、ユニットＡのユーザは、シークレットストリングとタグ値を、電話、メールあるいは他の適切な手段によって、ユニットＢのユーザへ通信することができる。また、Ｋとｔの生成された値の通信は、例えば、登録処理の一部として、共有シークレットキーが実際にユニット間で確立する時より前に実行されても良い。一実施形態では、識別子ＩＤがＫ及びｔとともに通信される、これは次回のＫ及びｔの検索を容易にするためである。
【００３８】
ステップ１０７では、ユニットＢは、Ｋ及びｔの値を受信し、ステップ１１０では、それらをユニットＢの記憶媒体１１１、例えば、ポータブルデバイスのＥＰＲＯＭあるいはＥＥＰＲＯＭに記憶する、あるいは、スマートカード、ハードディスク、あるいはその他の適切なデータ記憶装置上に記憶する。値Ｋ及びｔが識別子ＩＤに関連付けられている場合、値Ｋ及びｔは、例えば、その識別子をインデックスとして使用して、その識別子と関連付けて記憶される。
【００３９】
同様に、ステップ１０８では、ユニットＡは、シークレットストリングＫをユニットＡの記憶媒体１０９に記憶し、オプションとしては、識別子ＩＤと関連付けて記憶する。また、ユニットＡは、シークレット値ｘを記憶する、パブリックキーＸの算出は、これに基づいている。
【００４０】
これで、初期登録プロセスが終了となる。実際のキー交換を含む続くステップは、ユニットＡ及びＢが実際に通信リンクを介して接続される場合に実行される。これは、図１の線分１２７で示されるように、上述の初期登録後あるいはそれより後の時点に、直ちに発生する場合がある。
【００４１】
ステップ１１２では、ユニットＡは、無線通信リンクを介して、パブリックキーＸをユニットＢへ送信することによって、実際のキー交換を初期化する。シークレットストリングＫが識別子ＩＤに関連付けられている実施形態では、ユニットＡもその識別子を送信する。同様に、ステップ１０４で、タグ値ｔがパブリックキーといくつかの追加のデータに対して算出される、この追加のデータもユニットＡからユニットＢへ送信される。
【００４２】
ユニットＢがユニットＡからパブリックキーＸを受信する場合（ステップ１１３）、ステップ１１４で、ユニットＢは、識別子ＩＤに基づく実施形態では、記憶媒体１１１からシークレットストリングＫを検索する。ユニットＢは、シークレットストリングＫに基づいて、受信したパブリックキーＸのＭＡＣタグ値ｔ’を算出する。
【００４３】
ステップ１１５では、ユニットＢは、算出されたタグ値ｔ’と予め記憶されているタグ値ｔとを比較する。タグ値が異なる場合、受信したパブリックキーは拒否される（ステップ１１６）。例えば、ユニットＢは、対応するメッセージをユニットＡに送信することによって、また／あるいは、その拒否についてをユーザに通知することによって、例えば、可視あるいは可聴指示を提供することによって、キー交換を中止することができる。そうでない場合、即ち、タグ値が等しい場合、パブリックキーＸは受け入れられ、かつプロセスはステップ１１７に継続する。
【００４４】
ステップ１１７では、ユニットＢは、上述のように、シークレット値ｙと対応するディフィ−ヘルマンパブリックキーＹを生成する。
【００４５】
ステップ１１８では、ユニットＢは、対応するディフィ−ヘルマン共有シークレットキーＳ＝（Ｘ）y  ｍｏｄ  ｐを生成する。
【００４６】
ステップ１１９では、ユニットＢは、生成された共有シークレットキーＳを使用して、記憶媒体１１１から検索されるシークレットストリングＫを暗号化し、暗号化シークレットストリングＫ*を得る。この暗号化は、対称シークレットキーに基づく任意の適切な暗号化方法に基づいていても良く、これには、例えば、ＡＥＳ、ＳＡＦＥＲ＋、ＲＣ５、ＤＥＳ、３ＤＥＳ等がある。
【００４７】
ステップ１２０では、ユニットＢは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹをユニットＡへ送信する。そして、一実施形態では、ユニットＢは、更に、対応する識別子ＩＤを送信する。
【００４８】
ステップ１２１では、ユニットＡは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹを受信する。
【００４９】
ステップ１２２では、ユニットＡは、記憶媒体１０９に記憶されているシークレット値ｘを使用して、ディフィ−ヘルマン共有シークレットキーＳ＝（Ｙ）x  ｍｏｄ  ｐを生成する。
【００５０】
ステップ１２３では、ユニットＡは、生成された共有シークレットキーＳを使用して、受信した暗号化シークレットストリングＫ*を解読して、解読されたシークレットストリングＫ’を取得する。
【００５１】
ステップ１２４では、ユニットＡは、受信し、解読したシークレットストリングＫ’と、ユニットＡによって生成され、かつ記憶媒体１０９に記憶されているシークレットストリングＫとを比較する。シークレットストリングが等しくない場合、受信したパブリックキーＹが拒否される、即ち、生成された共有シークレットキーＳが破棄される（ステップ１２５）。そうでない場合、プロセスはステップ１２６に継続する。
【００５２】
ステップ１２６では、受信したパブリックキーＹが受け入れられる、即ち、算出された共有シークレットキーＳが、共有シークレットとして受け入れられる。一実施形態では、対応するメッセージがユニットＢへ送信される、これによって、キー交換が完了する。生成された共有シークレットキーは、例えば、ユニット間で送信されるメッセージを暗号化することによって、また／あるいは保全性保護を実行することによって、ユニットＡとＢ間の連続通信を保護するために使用することができる。
【００５３】
別の実施形態では、ユニットＢからユニットＡへ通信されるパブリックキーＹは、異なる方法によって、例えば、ＭＡＣ値を算出することによって認証されても良いことが理解される。同一キーが、この方法のセキュリティを落とすことなく、数回使用することができることが、暗号化Ｋ*を含ませることによるＹの認証の利点である。
【００５４】
図２ａ−ｂは、本発明の更なる実施形態に従うキー交換メカニズムのフロー図を示している。上述の例のように、２つのユニットは、共有シークレットキーを確立するために、セキュアキー交換を実行する。上述の例と比較すると、ユニットの一方は、２つのデバイスＢ及びＣを備える、一方、他方のユニットは、デバイスＡで示される、１つのデバイスだけを備えている。初期登録処理が、デバイスＡとデバイスＣ間で実行される。以下の図７でより詳細に説明されるように、例えば、デバイスＡは、移動電話、ＰＤＡあるいはその類のようなポータブルデバイスであっても良く、デバイスＢは、コンピュータネットワークのアクセスポイントあるいはその類であっても良く、デバイスＣは、コンピュータネットワークのサーバコンピュータであっても良い。ここで、参照番号１０１で示される図２ａ−ｂの左側のフロー図のステップは、デバイスＡによって実行され、参照番号２０２で示される中央のフロー図のステップはデバイスＢによって実行され、参照番号２０１で示される右側のフロー図のステップはデバイスＣによって実行される。図２ａ−ｂの例では、デバイスＡ、ＢあるいはＣによって実行されるステップのいくつかは、図１のユニットＡによって実行されるステップに対応し、ここでは、対応するステップには、同一の参照番号で参照する。
【００５５】
図２ａを参照すると、初期ステップ１０３では、デバイスＡは、乱数ｘ、対応するディフィ−ヘルマンパブリックキーＸ及びショートシークレットストリングＫを生成する、また、次のステップ１０４では、デバイスＡは、メッセージ認証コード（ＭＡＣ）を使用して、上述のように、キーとするシークレットストリングＫを用いて、パブリックキーＸからタグ値ｔを算出する。
【００５６】
ステップ２０５では、生成されたシークレットストリングＫと算出されたタグ値ｔが、破線矢印２０６で示されるように、適切な通信チャネルを介してデバイスＣへ通信される。この通信は、図１の参照番号１０５、１０６及び１０７を参照して説明される、図１のデバイスＡとＢ間の上述のパラメータの通信に対応する。但し、本実施形態では、このパラメータは、ユーザ対話を介在して、デバイスＡとＣ間で通信される。例えば、Ｋとｔの値は、登録処理の一部として、デバイスＡからデバイスＣへ転送されても良い。一実施形態では、デバイスＡのユーザは、デバイスＡからシークレットストリングとタグ値を読み上げ、例えば、電話、メールあるいは任意の他の適切な手段によって、それらをデバイスＣのユーザへ通信することができる。一実施形態では、デバイスＡは、上述のデータを備えるメッセージを生成して、それを、デバイスＣとアクセスポイントＢを備えるコンピュータネットワークを介して、権限を有するネットワークオペレータへ送信する。一実施形態では、識別子ＩＤがＫ及びｔとともに通信される、これは次回のＫ及びｔの検索を容易にするためである。
【００５７】
ステップ２０７では、デバイスＣは、Ｋ及びｔの値を受信し、ステップ２１０では、それらを記憶媒体２１１に記憶する、これには、例えば、コンピュータネットワークのセキュリティ関連情報を管理するためのキーデータベースがある。値Ｋ及びｔが識別子が識別子ＩＤに関連付けられている場合、値Ｋ及びｔは、例えば、その識別子をインデックスとして使用して、その識別子と関連付けて記憶される。
【００５８】
同様に、ステップ１０８では、デバイスＡは、シークレットストリングＫをデバイスＡの記憶媒体１０９に記憶し、可能であれば、識別子ＩＤと関連付けて記憶する。また、デバイスＡは、シークレット値ｘを記憶する、パブリックキーＸの算出は、これに基づいている。オプションとしては、デバイスＡは、更に、パブリックキーＸを記憶することができる。選択的には、パブリックキーは、後の時点で、プライベートキーＸから再生成されても良い。
【００５９】
これで、デバイスＡとＣ間の初期登録プロセスが終了となる。実際のキー交換を含む続くステップは、デバイスＡ及びＢが実際に通信リンクを介して接続される場合に実行される。これは、線分２２７で示されるように、上述の初期登録後あるいはそれより後の時点に、直ちに発生する場合がある。
【００６０】
ステップ１１２では、デバイスＡは、無線通信リンクを介して、パブリックキーＸを、オプションとして、追加データをデバイスＢへ送信することによって、デバイスＢとの実際のキー交換を初期化する。シークレットストリングＫが識別子ＩＤに関連付けられている実施形態では、デバイスＡもその識別子を送信する。
【００６１】
デバイスＡからパブリックキーＸを受信した後（ステップ２１３）、デバイスＢは、記憶媒体２１１からシークレットストリングＫとタグ値ｔを検索する（ステップ２０８及び２０９）。一実施形態では、デバイスＢは、コンピュータネットワークを介して、受信した識別子ＩＤを含むリクエストをデバイスＣへ送信することができる。そのリクエストに応じて、デバイスＣは、データベース２１１からタグ値とシークレットストリングを検索し、それらをデバイスＢへ送信する（ステップ２０８）、そこで、それらは受信される（ステップ２０９）。別の実施形態では、デバイスＢは、コンピュータネットワークを介してデータベース２１１への直接アクセスを持っていても良い、つまり、デバイスＢは、データベースから直接パラメータを検索することができる。好ましくは、シークレットストリングＫとタグ値ｔは、セキュア接続２２２を介して通信されても良く、例えば、暗号化されても良く、また／あるいはセキュアコンピュータネットワークを介して通信されても良い。
【００６２】
ステップ２１４では、デバイスＢは、検索されたシークレットストリングＫに基づいて、受信したパブリックキーＸのＭＡＣタグ値ｔ’を算出する。
【００６３】
ステップ２１５では、デバイスＢは、算出されたタグ値ｔ’と検索されたタグ値ｔとを比較する。タグ値が異なる場合、受信したパブリックキーは拒否される（ステップ２１６）。そうでない場合、パブリックキーＸは受け入れられ、かつプロセスはステップ２１７に継続する。
【００６４】
ステップ２１７では、デバイスＢは、上述のように、シークレット値ｙと対応するディフィ−ヘルマンパブリックキーＹを生成する。
【００６５】
ステップ２１８では、デバイスＢは、対応するディフィ−ヘルマン共有シークレットキーＳ＝（Ｘ）y  ｍｏｄ  ｐを生成する。
【００６６】
ステップ２１９では、デバイスＢは、生成された共有シークレットキーＳを使用して、検索されたシークレットストリングＫを暗号化し、図１で説明したような、暗号化シークレットストリングＫ*を得る。
【００６７】
ステップ２２０では、デバイスＢは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹをデバイスＡへ送信する。そして、一実施形態では、デバイスＢは、更に、対応する識別子ＩＤを送信する。
【００６８】
ステップ１２１では、デバイスＡは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹを受信する。
【００６９】
ステップ１２２では、デバイスＡは、記憶媒体１０９に記憶されているシークレット値ｘを使用して、ディフィ−ヘルマン共有シークレットキーＳ＝（Ｙ）x  ｍｏｄ  ｐを生成する。
【００７０】
ステップ１２３では、デバイスＡは、生成された共有シークレットキーＳを使用して、受信した暗号化シークレットストリングＫ*を解読して、解読されたシークレットストリングＫ’を取得する。
【００７１】
ステップ１２４では、デバイスＡは、受信し、解読したシークレットストリングＫ’と、デバイスＡによって生成され、かつ記憶媒体１０９に記憶されているシークレットストリングＫとを比較する。シークレットストリングが等しくない場合、受信したパブリックキーＹが拒否される、即ち、生成された共有シークレットキーＳが破棄される（ステップ１２５）。そうでない場合、プロセスはステップ１２６に継続する。
【００７２】
ステップ１２６では、受信したパブリックキーＹが受け入れられる、即ち、算出された共有シークレットキーＳが、共有シークレットとして受け入れられる。一実施形態では、対応するメッセージがデバイスＢへ送信される、これによって、キー交換が完了する。生成された共有シークレットキーは、例えば、デバイス間で送信されるメッセージを暗号化することによって、また／あるいは保全性保護を実行することによって、デバイスＡとＢ間の連続通信を保護するために使用することができる。
【００７３】
図２ｂを参照すると、この例では、デバイスＣ、即ち、ネットワークサーバあるいはその類は、キー交換プロセスを初期化する。ここで、この実施形態では、デバイスＡと、デバイスＢとＣを備えるシステムは、図２ａの例と比べて、役割を変更している、また、図２ａで説明されるステップは、ここでは、対応する他のデバイスによって実行される。以下では、対応するステップは、図２ａで示される参照番号と同一の参照番号で示される。特に、と、乱数ｘ、対応するディフィ−ヘルマンパブリックキーＸ及びショートシークレットストリングＫを生成する初期ステップ１０３と、キーとするシークレットストリングＫを用いて、パブリックキーＸからタグ値ｔを算出するステップ１０４で説明されるステップはそれぞれ、デバイスＣ、即ち、ネットワークサーバあるいはその類によって実行される。
【００７４】
従って、ステップ２０５及び２０７では、生成されたシークレットストリングＫと算出されたタグ値ｔは、破線矢印２０６で示されるように、適切な通信チャネルを介してデバイスＣからデバイスＡへ通信される。この実施形態では、ネットワークオペレータは通信を初期化するものであることが理解される。
【００７５】
ステップ２１０では、デバイスＡは、デバイスＡの記憶媒体１０９に受信したデータを記憶する。
【００７６】
同様に、ステップ１０８では、デバイスＣは、シークレットストリングＫとシークレット値ｘを記憶媒体２１１に記憶する、これには、例えば、コンピュータネットワークのセキュリティ関連情報を管理するためのキーデータベースがある。この例でも、シークレットストリングＫと、関連する値ｘ、Ｘ及びｔは、図２ａで説明したように、識別子ＩＤに関連付けられていても良いことが理解される。
【００７７】
これで、デバイスＡとＣ間の初期登録プロセスが終了となる。実際のキー交換を含む続くステップは、デバイスＡ及びＢが実際に通信リンクを介して接続される場合に実行される。これは、線分２２７で示されるように、上述の初期登録後あるいはそれより後の時点に、直ちに発生する場合がある。また、この実施形態では、デバイスＡではなく、デバイスＢが、キー交換を初期化する。
【００７８】
従って、デバイスＢは、記憶媒体２１１からシークレットストリングＫとディフィ−ヘルマンキーｘ及びＸを検索する（ステップ２２８及び２２９）。上述したように、これは、ダイレクトデータベースクエリーを介して実行されても良い、あるいは（セキュア）コンピュータネットワークを介してデバイスＣへ送信される、例えば、受信した識別子ＩＤあるいはその類を含むリクエストを介して実行されても良い。
【００７９】
ステップ１１２では、無線通信リンクを介して、パブリックキーＸをデバイスＡへ送信することによって、オプションとしては、追加データをデバイスＡへ送信することによって、実際のキー交換が、デバイスＢによって初期化される。
【００８０】
ステップ２１３では、デバイスＡは、パブリックキーＸを受信し、ステップ２１４では、デバイスＢは、デバイスＡに記憶されているシークレットストリングＫに基づいて、受信したパブリックキーＸのＭＡＣタグ値ｔ’を算出する。
【００８１】
ステップ２１５では、デバイスＡは、算出されたタグ値ｔ’と予め記憶されたタグ値ｔとを比較する。タグ値が異なる場合、受信したパブリックキーは拒否される（ステップ２１６）。そうでない場合、パブリックキーＸは受け入れられ、かつプロセスはステップ２１７に継続する。
【００８２】
ステップ２１７では、デバイスＡは、上述のように、シークレット値ｙと対応するディフィ−ヘルマンパブリックキーＹを生成する。
【００８３】
ステップ２１８では、デバイスＡは、対応するディフィ−ヘルマン共有シークレットキーＳ＝（Ｘ）y  ｍｏｄ  ｐを生成する。
【００８４】
ステップ２１９では、デバイスＡは、生成された共有シークレットキーＳを使用して、シークレットストリングＫを暗号化し、図１で説明したような、暗号化シークレットストリングＫ*を得る。
【００８５】
ステップ２２０では、デバイスＡは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹをデバイスＢへ送信する。
【００８６】
ステップ１２１では、デバイスＢは、暗号化シークレットストリングＫ*とディフィ−ヘルマンパブリックキーＹを受信する。
【００８７】
ステップ１２２では、デバイスＢは、記憶媒体２１１から検索されたシークレット値ｘを使用して、ディフィ−ヘルマン共有シークレットキーＳ＝（Ｙ）x  ｍｏｄ  ｐを生成する。
【００８８】
ステップ１２３では、デバイスＢは、生成された共有シークレットキーＳを使用して、受信した暗号化シークレットストリングＫ*を解読し、解読されたシークレットストリングＫ’を取得する。
【００８９】
ステップ１２４では、デバイスＢは、受信し、解読したシークレットストリングＫ’と、デバイスＣによって生成され、かつ記憶媒体２１１から検索されたシークレットストリングＫとを比較する。シークレットストリングが等しくない場合、受信したパブリックキーＹが拒否される、即ち、生成された共有シークレットキーＳが破棄される（ステップ１２５）。そうでない場合、プロセスはステップ１２６に継続する。
【００９０】
ステップ１２６では、受信したパブリックキーＹが受け入れられる、即ち、算出された共有シークレットキーＳが、共有シークレットとして受け入れられる。一実施形態では、対応するメッセージがデバイスＡへ送信される、これによって、キー交換が完了する。生成された共有シークレットキーは、例えば、デバイス間で送信されるメッセージを暗号化することによって、また／あるいは保全性保護を実行することによって、デバイスＡとＢ間の連続通信を保護するために使用することができる。
【００９１】
いくつかの実施形態では、ステップ１２２、１２３、１２４及び１２６は、デバイスＣによって実行されても良い、これによって、デバイスＢとＣの両方において、キー交換アルゴリズムを実際に実現する必要性を回避することが理解される。この場合、デバイスＢは、単に、受信したキーデータを、デバイスＡからデバイスＣへ、例えば、セキュアコンピュータネットワークを介して送信する、ここで、キーデータは、上述のように、認証され、かつ更に処理される。
【００９２】
ここで、まとめると、上述の例は、第１通信ユニットと第２通信ユニット間のキー交換方法を開示している。この方法は、登録ステージと、キー交換ステージを備えている。登録ステージは、以下のものを備える。
【００９３】
−第１通信ユニットによって、キー交換メカニズム、好ましくは、ディフィ−ヘルマンキーアグリーメントの第１プライベートキーと、対応する第１パブリックキーを生成し、
−第１通信ユニットによって、パスコードを生成し、
−第１通信ユニットによって、パスコードを使用してメッセージ認証コードに従う第１パブリックキーのメッセージタグを算出し、
−パスコードと算出されたタグ値を第２通信ユニットにアクセス可能にする。
【００９４】
実際のキー交換ステージは、２つのユニットが通信リンクを介して接続され、かつその通信リンクを介してメッセージを交換することができる時点より後の任意の時点で実行することができる。このステージは、以下のものを備える。
【００９５】
−第１通信ユニットによって、第１パブリックキーを第２通信ユニットへ送信し、
−第２通信ユニットによって、パスコードを使用して、メッセージ認証コードに従う受信した第１パブリックキーのタグ値を算出し、かつ算出したタグ値が第２通信ユニットにアクセス可能にしたタグ値に対応する場合、その受信した第１パブリックキーを受け入れ、
−第２通信ユニットによって、キー交換メカニズムの第２プライベートキー値と対応する第２パブリックキーを生成し、
−第２通信ユニットによって、第１パブリックキーと第２プライベートキーから、キー交換メカニズムの共有シークレットキーを算出し、
−算出された共有シークレットキーを使用して、第２通信ユニットによってパスコードを暗号化し、
−第２通信ユニットによって、第２パブリックキーと暗号化されたデータ要素を第１通信ユニットへ送信し、
−第１通信ユニットによって、第２パブリックキーと第１プライベートキー値から、キー交換メカニズムの共有シークレットキーを算出し、
−第１通信ユニットによって算出された共有シークレットキーを使用して、送信され、暗号化されたデータ要素を第１通信ユニットによって解読し、解読されたデータ要素が、第１通信ユニットによって生成されたパスコードに対応する場合、算出された共有シークレットキーを受け入れる。
【００９６】
図３は、誤り訂正コードに基づくメッセージ認証コードを算出する方法のフロー図を示している。図３の例では、データ空間Ｄからのデータ要素ｄは、メッセージ認証コード（ＭＡＣ）を使用する認証対象であると想定する。このデータ要素ｄは、メッセージ、例えば、上述の方法におけるパブリックキーＸであっても良く、あるいは、以下で、より詳細に説明する、適切な関数ｈ、即ち、ｄ＝ｈ（Ｍ）によってメッセージＭから導出されるデータ要素であっても良い。この例のために、データ要素ｄは、メッセージとしても参照する。
【００９７】
一般的に、ＭＡＣは、データ空間Ｄとキー空間Ｋからタグ空間Ｃへのマッピングｆである、即ち、ｆ：Ｄ×Ｋ→Ｃである、ここで、メッセージｄ∈Ｄとキーｋ∈Ｋは、タグｔ∈Ｃへマッピングされる、即ち、（ｄ，ｋ）→ｔである。
【００９８】
ＭＡＣは、メッセージの保全性を保護するために使用される、即ち、送信側から受信側への送信中に、データが変更されないことを補償するために使用される。手動認証では、ショートＭＡＣ値が使用される、即ち、１０〜１５の桁、文字、他のシンボルの少なくともいずれかより小さい長さのタグが使用される、これによって、ユーザに、タグ値を通信すること及び比較することの少なくとも一方を可能にする。このような手動認証スキームでは、セキュリティは、コンピュータ的なセキュリティではなく、ＭＡＣ関数の絶対的な（unconditional）セキュリティに基づいている。例えば、ロングハッシュコードを備えるハッシュ関数がＭＡＣ関数として使用される場合、セキュリティは、コンピュータ的なセキュリティに基づいている。
【００９９】
ＭＡＣ関数の絶対的なセキュリティは、異なるタイプの可能性のある攻撃を考慮することによって判定される。２つの主なタイプは、偽装（impersonation）攻撃と置換（substitution）攻撃がある。以下の説明の理解を容易にするために、これらのタイプの攻撃について、本明細書において簡単に説明する。より詳細な説明は、ジー．  カバチアンスキ、ビー．  スミーツ及びティー  ヨハンソンによる、「誤り訂正コードを介する体系的Ａコードの濃度」  ＩＥＥＥ  会報  情報理論、ＩＴ−４２、ページ５６６−５７８、１９９６年（On the cardinality of systematic A-codes via error correcting codes", IEEE Transaction on Information theory, vol. IT-42, pp. 566-578,1996,）を参照されたい、これは、そのすべてを参照することによって本明細書に組み込まれる。
【０１００】
偽装攻撃では、攻撃者は、正当な送信側と受信側間のデータ交換を事前に観測することなく、データが正当な送信側から送信されていることを受信側に信用させる試行を行う。一方、置換攻撃においては、攻撃者は、いくつかのデータｄを観測し、次に、その観測したデータをいくつかの他のデータｄ’≠ｄに置き換える。偽装攻撃及び置換攻撃を成功させるための攻撃者の確率は、それぞれＰIとＰSで示され、これは、以下のように表現することができる。
【０１０１】
0004550736.tif 000002
【０１０２】
例えば、上述のキー交換プロトコルの構成では、観測されたデータｄを他のデータｄ’へ置換するための攻撃者の確率は、キー交換方法のセキュリティに関連する測定値である、即ち、図１及び２ａの例のユニットＡからユニットＢへ送信されるパブリックキー及び図２ｂのユニットＢからユニットＡへ送信されるパブリックキーを、別のパブリックキーに置換するための確率である。この状況では、ｄ’が受信側に有効データとして受け入れられる場合に、攻撃者は成功する。短距離無線通信環境、例えば、ブルートゥースでは、両方のユニットは、物理的に互いに近接していて、かつ、データの受信だけに制限されている、これは、両方のユニットが、レディ状態にあることを示す信号を発信している場合である。ここで、このような状況では、偽装攻撃は容易に回避することができるので、置換攻撃の確率は、セキュリティにより関連する測定値に関係するものとして見なしても良い。また、図１及び図２の環境では、ＭＡＣ関数によって算出されるタグ値は、データが送信される通信リンクとは異なる別の通信チャネルを介して通信される。これは、標準的なＭＡＣ環境とは対照的である、ここで、データ及びタグ値の両方が一緒に送信され、かつこれらは、攻撃者によって観測される可能性がある。これらを前提とすると、置換攻撃の成功確率は、以下のように表現することができる。
【０１０３】
0004550736.tif 000003
【０１０４】
ここで、キーがキー空間Ｋからランダムで一律に選択されるとすると、上述の確率は、次のように表現することができる。
【０１０５】
0004550736.tif 000004
【０１０６】
ここで、｜・｜は、濃度セット、即ち、｜Ｋ｜は、Ｋの濃度であり、上述の式の分子は、ｄ及びｄ’に対して同一のＭＡＣ関数を生成するキー空間Ｋ内のすべてのキーのセットの濃度である。従って、上述の式から、高いセキュリティを提供するために、ＭＡＣ関数ｆの衝突確率は低くするべきである。
【０１０７】
ＭＡＣ構成の以下の例は、誤り訂正コードに基づいている。この説明のために、有限フィールドＦqに渡る誤り訂正コードを想定する。特に、Ｆqに渡るコード語長ｎのｑ−元符号（q-ary code）を想定し、これをＶで示す。一般的には、このコードは、メッセージからコード語へのマッピングであり、そうすることで、各メッセージは固有のコード語に対応し、かつそれぞれのコード語はいくつかのシンボルを構成する。従って、コードＶは、ベクトルｖ∈Ｖ＝｛ｖ(d)：ｄ∈Ｄ｝のすべてを構成し、ここで、ｖ(d)＝（ｖ1(d)，ｖ2(d)，．．．，ｖn(d)、即ち、ｖi(d)＝Ｆqは、コード語ｖ(d)のシンボルである。
【０１０８】
２つのｑ−元のｎ組（タプル：tuple）のｘ及びｙ間のハミング距離ｄH（ｘ，ｙ）は、同一ではないｎ組のコンポーネント数である、即ち、ｄH（ｘ，ｙ）＝｜｛ｉ∈｛１，．．．，ｎ｝：ｘi≠ｙi｝｜である。コードＶの最小距離は、
【０１０９】
0004550736.tif 000005
【０１１０】
である。即ち、コードＶのすべてのコード語間の最小距離である。
【０１１１】
図３を参照すると、誤り訂正コードに基づくＭＡＣ構成の例が説明される。
【０１１２】
初期ステップ３０１では、ＭＡＣ構成に対する入力データが提供される、即ち、認証対象のメッセージｄとＭＡＣ関数の入力として使用されるキーｋが提供される。
【０１１３】
ステップ３０２では、インデックスｉ∈｛１，．．．，ｎ｝が、キーｋの関数ｇ、即ち、ｉ＝ｇ（ｋ）として選択される。特に、キー空間Ｋがｎ要素である場合、即ち、｜Ｋ｜＝ｎである場合、各ｋは固有にシンボルインデックスの１つにマッピングされる、各インデックスは、１つのキーに対応する。一実施形態では、キーは直接インデックス、即ち、ｉ＝ｋとして使用される。
【０１１４】
ステップ３０３では、タグ値ｔは、コードＶのコード語Ｖ(d)のｉ番目のシンボルとして判定される、このコードＶは、メッセージｄに対応する、即ち、
【０１１５】
0004550736.tif 000006
【０１１６】
に対応する。
【０１１７】
ここで、タグ値は、誤り訂正コードのコード語の選択されるシンボルとして判定され、コード語はメッセージに対応するコード語であり、また、シンボルは、キーによって特定される。その結果、上述の例では、ＭＡＣは、ｎに等しいキー空間サイズと、コーディング空間サイズに等しいメッセージ空間を用いて取得される。また、上述の置換攻撃に対する確率Ｐsは、次のように与えられる。
【０１１８】
0004550736.tif 000007
【０１１９】
図４ａ〜ｂは、リード−ソロモンコードに基づいてメッセージ認証コードを算出する方法の例のフロー図である。
【０１２０】
リード−ソロモン（ＲＳ）符号という用語は、誤り訂正コードのタイプを示しており、ここで、コード語は、生成多項式を用いる多項式除算を介して定義される、これは、アイ．エス．  リード及びジー．  ソロモンによる、「有限フィールド上の多項式コード」、応用数理学会、８号、ページ３００〜３０４、１９６０年（l. S. Reed and G. Solomon,"Polynomial Codes over Certain Finite Fields", journal of Soc. Ind. Appl. Math. , vol. 8, pp. 300- 304,1960）を参照されたい、これは、参照することによって、その全体が本明細書に組み込まれる。リード−ソロモンコードという用語は、更に、リード−ソロモンコードの変形、例えば、いわゆる、規格化リード−ソロモンコードを構成することも意図されるものである。
【０１２１】
図４ａの構成では、初期ステップ４０１では、ＭＡＣ構成に対する入力データが提供される、即ち、認証対象のメッセージｄとＭＡＣ関数の入力として使用されるキーｋが提供される。
【０１２２】
ステップ４０２では、メッセージは、Ｆq上のｑ−元のτ組（タプル）として表現される、即ち、ｄ＝ｄ0、ｄ1，．．．，ｄτ-1として表現され、ここで、ｄi∈Ｆqである。従って、メッセージに対応するリード−ソロモン（ＲＳ）エンコーディング（符号化）多項式は、以下のように定義される。
【０１２３】
0004550736.tif 000008
【０１２４】
ステップ４０３では、ＭＡＣのタグ値は、キーｋで特定される点での多項式を評価することによって算出される、即ち、
【０１２５】
0004550736.tif 000009
【０１２６】
となる。
【０１２７】
ここで、キーｋは、リード−ソロモンコードのシンボルを特定し、これは、タグ値として使用される。上述のように、シンボルは、キーの適切な関数によって特定されても良いことが理解される。
【０１２８】
更に、この構成では、キーは、有限フィールドＦq、即ち、ｋ∈Ｆqから選択されることに注意する。その結果、この構成は、以下の属性を持っている、ｎ＝ｑ＝｜Ｋ｜及び｜Ｄ｜＝ｑτ＝ｎτとなる。上述のコードの最小距離は、ｄH（Ｖ）＝ｎ−τ＋１である、つまり、置換攻撃の成功確率は、ＰS＝（τ−１）／ｎである。リード−ソロモンコードの利点は、これらが、最小距離が大きいロングコードであることである。
【０１２９】
上述の内容は、更に、確率ＰSが、メッセージ空間Ｄのサイズが大きくなることを意味するものである。
【０１３０】
図４ｂは、リード−ソロモンコードに基づくＭＡＣ構成の別の実施形態のフロー図を示している。
【０１３１】
ここで、この構成に従えば、初期ステップ４０４では、ＭＡＣ構成に対する入力データが提供される、即ち、認証対象のメッセージｄとＭＡＣ関数の入力として使用されるキーｋが提供される。
【０１３２】
ステップ４０５では、一方向ハッシュ関数ｈがメッセージに適用される。この説明のために、一方向ハッシュ関数という用語は、データ要素、例えば、ストリングを入力として取得し、かつ固定長バイナリ値（ハッシュ）を出力として生成するアルゴリズムを意味するものである。特に、このプロセスは不可逆である、即ち、生成されているデータ要素の検出時には、与えられるハッシュ値は、コンピュータで実行できないようにされるべきである。同様に、同一のハッシュ値を生成する２つの任意のデータ要素を検出することも、コンピュータで実行できないようにされるべきである。適切なハッシュ関数の例には、標準セキュアハッシュアルゴリズムＳＨＡ−１がある。このＳＨＡ−１アルゴリズムは、２６４ビット長未満のメッセージを取得して、１６０−ビットのメッセージダイジェストを生成する。一方向ハッシュ関数の他の例には、ＭＤ４、ＭＤ５及びその類が含まれる。ハッシュ関数δ＝ｈ（ｄ）の出力は、リード−ソロモンコードへの入力として使用される。一実施形態では、ハッシュ関数の出力は、メッセージサイズを更に効果的に削減するために切り捨てられる。
【０１３３】
従って、ステップ４０６では、ハッシュ値δは、Ｆq上のｑ−元のτ組（タプル）として表現される、即ち、δ＝δ0，δ1，．．．，δτ-1であり、ここで、δi∈Ｆqである。
【０１３４】
ステップ４０７では、ＭＡＣのタグ値ｔは、キーｋによって特定される点の、対応するリード−ソロモンエンコーディング多項式を評価することによって算出される、即ち、
【０１３５】
0004550736.tif 000010
【０１３６】
ここで、ＳＨＡ−１のような一方向ハッシュ関数をメッセージにまず適用することによって、メッセージ空間のサイズが削減される、これによって、キー長あるいはＭＡＣの出力長、即ち、タグ長を著しく大きくすることなく、置換攻撃の成功確率ＰSを低下させる。その結果、ショートキー及びショートメッセージタグに対してさえ安全な認証が提供される、これによって、人間の対話が介在するキー及びメッセージタグの通信を可能にする。
【０１３７】
図５は、図４ａ〜ｂのＭＡＣ構成のいくつかの構成例に対する置換攻撃の成功確率を示すテーブルを示している。ｌｏｇ2｜Ｄ｜で示される第１列は、ビット数で示されるメッセージのサイズである、ｌｏｇ2（ｎ）で示される第２列はビット数によるキーサイズを示している、一方、最後の列は、対応する置換攻撃の成功確率を示している。例えば、４桁の１６進数のコード長と、４桁のキーサイズ（ｎ＝ｑ＝１６4）からなるコードは、１２８ビット長のメッセージに対して、２-13〜２-16の間の偽装確率となる。従って、１２８ビットに切り捨てられるＳＨＡ−１出力と、１６進数で４ビットのキーサイズとコードサイズは、十分に高いセキュリティをもたらす。キーサイズを５桁（ｌｏｇ2（ｎ）＝２０）に増やす場合、この偽装確率は、２-17あるいはそれ未満に更に低下する。
【０１３８】
図６は、Ａ及びＢで示される２つの通信ユニットを含む通信システムのブロック図を示している。通信ユニットＡと通信ユニットＢは、通信リンク６０５を介して互いに通信する。
【０１３９】
通信ユニットＡは、処理ユニット６０２、その処理ユニットに接続されている無線通信ユニット６０３、その処理ユニットに接続されている記憶媒体６０４、その処理ユニットに接続されているユーザインタフェース６０６を備えている。
【０１４０】
無線通信ユニット６０３は、処理ユニット６０２から受信したデータを、無線リンク６０５を介して通信ユニット６０７へ送信し、その通信ユニット６０７は、無線リンクからデータを受信し、それらを処理ユニットへ転送する。例えば、無線通信ユニット６０３は、ブルートゥース技術に基づいていても良く、また、２．４５ＧＨｚのＩＳＭ帯で送信／受信することができる。
【０１４１】
処理ユニット６０２、例えば、適切なプログラム化マイクロプロセッサは、通信ユニットＡによって実現される機能に従って、他のユニットから受信したデータを処理し、また、他のユニットへの送信対象のデータを処理する。特に、処理ユニット６０２は、上述のセキュリティ機能、特に、上述のパスコード及び対応するタグ値の生成、キー交換及び認証方法を実行するために適切にプログラムされている。
【０１４２】
記憶媒体６０４は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリあるいはその類であり、これは、パスコードＫを記憶するとともに、キー交換プロトコルで必要なパラメータを記憶するように適合されている。
【０１４３】
ユーザインタフェース６０６は、生成されたパスコードＫ及び対応するタグ値ｔを表示するためのディスプレイを備え、そうすることで、ユーザは、生成された値を読み取り、かつそれらを通信ユニットＢへ送信することができる。加えて、ユーザインタフェース６０６は、データ入力手段を備えていても良く、これには、例えば、キーボード、キーパッド、ポインティングデバイス、タッチスクリーンあるいはその類がある。
【０１４４】
通信ユニットＢは、処理ユニット６０９、その処理ユニットに接続されている無線通信ユニット６０８、その処理ユニットに接続されている記憶媒体６１０、その処理ユニットに接続されているユーザインタフェース６１１を備えている。
【０１４５】
無線通信ユニット６０９は、通信装置Ａの無線通信ユニット６０３に対応する、これによって、無線通信ユニットＡとＢ間の無線通信を可能にする。
【０１４６】
処理ユニット６０９は、通信ユニットによって実現される機能に従って、他のユニットから受信したデータを処理し、また、他のユニットへの送信対象のデータを処理する。特に、処理ユニットは、上述のセキュリティ機能、特に、上述のキー交換及び認証方法、及びユニットＡによって実現される対応するキー交換プロトコル及び認証メカニズムを実行するために適切にプログラムされている。
【０１４７】
同様に、記憶媒体６０４は、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリあるいはその類であり、これは、パスコードＫとタグ値ｔと、キー交換プロトコルで必要なパラメータを記憶するように適合されている。
【０１４８】
ユーザインタフェース６１１は、入力デバイスを備え、これには、例えば、キーパッド、キーボード、タッチスクリーンあるいはその類があり、これは、ユーザに、パスコードＫと、通信ユニットＡによって生成される、パスコードＫと対応するタグ値ｔを入力することを可能にする。加えて、ユーザインタフェースは、ディスプレイ、ポインティングデバイス、及びその類の少なくとも１つを備えていても良い。
【０１４９】
このように、図６の通信システムは、２つの通信ユニット、例えば、２つのポータブル通信デバイスを備えていて、これには、例えば、２つの移動電話、移動電話とポータブルコンピュータ、２つのポータブルコンピュータ、あるいは、上述の方法に従って共有シークレットキーを確立することによって通信リンク６０５を介してセキュア通信を確立する同様の電子機器の任意の組み合わせがある。
【０１５０】
一実施形態では、処理ユニット及び記憶媒体の少なくとも一方は、対応する通信ユニットに着脱可能に装着されても良い、これによって、実際のユニットとは独立して確立されるセキュリティアソシエーション（セキュリティ協定：security association）を可能にする。例えば、記憶媒体及び処理ユニットの少なくとも一方は、スマートカード、例えば、ＳＩＭカードによって構成されても良い。
【０１５１】
また、通信ユニットは、更に、図６のブロック図で省略されているコンポーネントを備えていても良いことに注意する。例えば、通信ユニットは、更に、受信機に接続されている自動ゲイン制御（ＡＧＣ）ユニット、デコーダ、エンコーダ、あるいはその類を備えていても良い。
【０１５２】
図７はコンピュータネットワークのアクセスポイントを介するコンピュータネットワークを用いて通信するポータブル通信ユニットのブロック図を示している。
【０１５３】
通信ユニットＡは、図６で説明する通信ユニットＡに対応する。通信ユニットＡは、処理ユニット６０２、その処理ユニットに接続されている無線通信ユニット６０３、その処理ユニットに接続されている記憶媒体６０４、その処理ユニットに接続されているユーザインタフェース６０６を備えている。これらのコンポーネントは、上記で詳細に説明しているものである。
【０１５４】
通信ユニットＡは、無線通信リンク６０５を介して、通信ネットワーク７０１のアクセスポイント７０２と通信する。例えば、通信ネットワーク７０１は、無線ＬＡＮ、１つ以上のアクセスポイントを介して無線アクセスを提供する有線ＬＡＮ、あるいはその類であっても良い。図７では、ネットワークノード７０３及び７０４によって、更なるネットワークコンポーネントが例示されている。図７の例では、ネットワークノード７０３は、ネットワークサーバコンピュータであり、これは、いくつかのユニットに対応するパスコードとタグ値のキーデータベース７０５を管理し、このユニットは、無線リンクを介してコンピュータネットワーク７０１にアクセスすることができる。ここで、ユニットＡが図２ａ〜ｂで説明した処理に従って、コンピュータネットワークを用いて登録を行いたい場合、ネットワークサーバ７０３は、その処理において、デバイスＣの役割を果たしても良い。例えば、図２ｂの実施形態に従えば、ネットワークサーバ７０３がパスキーＫとタグ値とを生成している場合、その値はユニットＡに転送されても良い。例えば、この転送は、初期化処理の一部としてオペレータによって、あるいは電話を介してユニットＡのユーザへデータを通信することによって、あるいはメールを送信することによって、あるいはその類によって発生しても良い。そして、このパラメータは、ユニットＡへ入力される。また、そのデータは、データベース７０５に記憶される。ユニットＡがアクセスポイントＢとの接続を確立している場合、図２ｂのキー交換プロセスで、記憶されたパラメータが検索され、かつ使用される。
【０１５５】
別の実施形態では、アクセスポイントＢは、キーデータベースを含んでいる、あるいは直接（ダイレクト）アクセスを持っていて、かつ登録処理は、図１で説明されるように、ユニットＡとアクセスポイントＢ間で直接実行される。
【０１５６】
本明細書で使用される場合の「構成する／構成している」という用語は、上述の特徴、整数値（integers）、ステップあるいはコンポーネントの存在を特定するために採用されているが、これは、他の特徴、整数値、ステップ、コンポーネントあるいはそれらのグループの存在あるいは追加を除外するものではないことが重視されるべきである。
【０１５７】
本発明の実施形態が説明され、かつ図示されているが、本発明はこれに制約されるものではなく、請求項で定義される対象の範囲内で、他の方法で実施されても良い。
【０１５８】
本発明は、いくつかの専用要素を備えるハードウェアによって実現することができ、また、適切なプログラム化コンピュータによって実現することができる。いくつかの手段を列挙している装置の請求項では、これらの手段のいくつかは、ハードウェアの１つ及び同一要素によって実現されても良く、これには、例えば、適切なプログラム化マイクロプロセッサあるいはコンピュータ、１つ以上のユーザインタフェース、本明細書で説明される１つ以上の通信インタフェースの少なくとも１つである。ある数値（measurement）が従属請求項と互いに異なって引用されていることは、これらの数値の組み合わせが効果として使用できないことを示しているものではない。
【図面の簡単な説明】
【０１５９】
【図１】セキュアキー交換メカニズムの実施形態のフロー図を示す図である。
【図２ａ】セキュアキー交換メカニズムの更なる実施形態のフロー図を示す図である。
【図２ｂ】セキュアキー交換メカニズムの更なる実施形態のフロー図を示す図である。
【図３】誤り訂正コードに基づいて、メッセージ認証コードを算出する方法のフロー図を示す図である。
【図４ａ】リード−ソロモンコードに基づくメッセージ認証コードを算出する方法の例のフロー図である。
【図４ｂ】リード−ソロモンコードに基づくメッセージ認証コードを算出する方法の例のフロー図である。
【図５】図４ａ〜ｂのＭＡＣ構成のいくつかの構成例に対する置換攻撃の成功確率を示すテーブルである。
【図６】２つの通信デバイスのブロック図である。
【図７】コンピュータネットワークのアクセスポイントを介して、コンピュータネットワークと通信するポータブル通信ユニットのブロック図である。
【図１】
0004550736.tif 000011
【図２ａ】
0004550736.tif 000012
【図２ｂ】
0004550736.tif 000013
【図３】
0004550736.tif 000014
【図４ａ】
0004550736.tif 000015
【図４ｂ】
0004550736.tif 000016
【図５】
0004550736.tif 000017
【図６】
0004550736.tif 000018
【図７】
0004550736.tif 000019