(57)【要約】      （修正有）【課題】ＲＦＩＤタグなど電子装置を制御する安全かつ効率的な方法を提供すること。【解決手段】初期の真正性指標（ＡＩ0）を提供するステップ（ＳＴＲ１、ＳＴＴ１）と、データ提供装置（ＰＤ）において、現在のデータ提供装置変数（ＰＤＶＮi）として初期変数を提供するステップ（ＳＴＲ２）と、データ提供装置（ＰＤ）において、特に一方向関数を使用して、現在のデータ提供装置変数（ＰＤＶＮｉ）および初期の真正性指標（ＡＩ0）の関数として現在のデータ提供装置の真正性指標（ＰＤＡＩi）を提供するステップ（ＳＴＲ３）と、データ受信装置部（ＲＤ）で、初期の真正性指標（ＡＩ0）を、先行するデータ受信装置の真正性指標（ＲＤＡＩi-1）として設定するステップと、データ受信装置（ＲＤ）において、現在のデータ受信装置の真正性指標（ＲＤＡＩi）を提供するステップ（ＳＴＴ２）とを含む初期化ステップなどを備える。【選択図】図２
2006217590.tif 000002
【特許請求の範囲】
【請求項１】
無線周波数識別リーダ（１０）を含むデータ提供装置（ＰＤ）から、無線周波数識別トランスポンダ（１６）を含むデータ受信装置（ＲＤ）にデータを転送する方法において、
（ａ）初期化ステップであって、
初期の真正性指標（ＡＩ0）を提供するステップ（ＳＴＲ１、ＳＴＴ１）と、
前記データ提供装置（ＰＤ）において、現在のデータ提供装置変数（ＰＤＶＮi）として初期変数を提供するステップ（ＳＴＲ２）と、
前記データ提供装置（ＰＤ）において、特に一方向関数を使用し、前記現在のデータ提供装置変数（ＰＤＶＮi）および前記初期の真正性指標（ＡＩ0）の関数として現在のデータ提供装置の真正性指標（ＰＤＡＩi）を提供するステップ（ＳＴＲ３）と、
前記データ受信装置（ＲＤ）において、前記初期の真正性指標（ＡＩ0）を、先行するデータ受信装置の真正性指標（ＲＤＡＩi-1）として設定するステップと、
前記データ受信装置（ＲＤ）において、現在のデータ受信装置の真正性指標（ＲＤＡＩi）を提供するステップ（ＳＴＴ２）と
を含む初期化ステップと、
（ｂ）提供データ（ＤａｔａＰ）の提供ステップであって、
前記データ提供装置（ＰＤ）において、特に一方向関数を使用し、前記提供データ（ＤａｔａＰ）の関数としてデータ真正性指標（ＤａｔａＡＩ）を決定するステップ（ＳＴＲ７）と、
前記データ受信装置（ＲＤ）において、前記データ真正性指標（ＤａｔａＡＩ）および前記提供データ（ＤａｔａＰ）を提供するステップ（ＳＴＲ８）と
を含む提供データ提供ステップと
を備えたことを特徴とする方法。
【請求項２】
前記提供データ（ＤａｔａＰ）は、
メッセージデータ（ＭＤ）、
次のデータ提供装置の真正性指標（ＰＤＡＩi+1）、
現在のデータ提供装置変数（ＰＤＶＮi）、
データ提供装置識別データ（ＰＤＩＤ）、および
データ受信装置識別データ（ＲＤＩＤ）のうち少なくとも１つを含むことを特徴とする請求項１に記載の方法。
【請求項３】
前記提供ステップ（ｂ）は、
前記データ提供装置（ＰＤ）において、次のデータ提供装置変数（ＰＤＶＮi+1）として新しい変数を提供するステップ（ＳＴＲ５）をさらに含むことを特徴とする請求項１または請求項２に記載の方法。
【請求項４】
前記提供ステップ（ｂ）は、
前記データ提供装置（ＰＤ）において、特に一方向関数を使用し、前記現在のデータ提供装置の真正性指標（ＰＤＡＩi）および前記次のデータ提供装置変数（ＰＤＶＮi+1）の関数として前記次のデータ提供装置の真正性指標（ＰＤＡＩi+1）を決定するステップ（ＳＴＲ６）をさらに含むことを特徴とする請求項３に記載の方法。
【請求項５】
前記データ受信装置（ＲＤ）において、前記データ真正性指標（ＤａｔａＡＩ）および前記提供データ（ＤａｔａＰ）を提供するステップは、前記次のデータ提供装置の真正性指標（ＰＤＡＩi+1）を次のデータ受信装置の真正性指標（ＲＤＡＩi+1）として、および前記現在のデータ提供装置変数（ＰＤＶＮi）を現在のデータ受信装置変数（ＲＤＶＮi）として提供するステップを含むことを特徴とする請求項４に記載の方法。
【請求項６】
前記提供ステップ（ｂ）は、
前記データ提供装置（ＰＤ）において、前記次のデータ提供装置変数（ＰＤＶＮi+1）を前記現在のデータ提供装置変数（ＰＤＶＮi）として、および前記次のデータ提供装置の真正性指標（ＰＤＡＩi+1）を前記現在のデータ提供装置の真正性指標（ＰＤＡＩi）として設定するステップ（ＳＴＲ９）をさらに含むことを特徴とする請求項５に記載の方法。
【請求項７】
前記提供データ（ＤａｔａＰ）の提供ステップ（ｂ）の後に、
（ｃ）前記データ受信装置（ＲＤ）において、
前記データ真正性指標（ＤａｔａＡＩ）を、特に一方向関数を使用して前記データ受信装置において決定された、前記提供データの関数としてのテストデータ真正性指標（ＤａｔａＡＩtest）と（ＳＴＴ３）、
前記現在のデータ受信装置の真正性指標（ＲＤＡＩi）を、特に一方向関数を使用し、前記先行するデータ受信装置の真正性指標（ＲＤＡＩi-1）および前記現在のデータ受信装置変数（ＲＤＶＮi）の関数として前記データ受信装置において決定されたテスト真正性指標（ＡＩtest）と（ＳＴＴ４）比較するステップと
を含むデータ検証および認証ステップをさらに備えたことを特徴とする請求項１ないし請求項６のいずれかに記載の方法。
【請求項８】
前記ステップ（ｃ）は、
前記データ受信装置において、前記現在のデータ受信装置の真正性指標（ＲＤＡＩi）を、前記先行するデータ受信装置の真正性指標（ＲＤＡＩi-1）として、および前記次のデータ受信装置の真正性指標（ＲＤＡＩi+1）を前記現在のデータ受信装置の真正性指標（ＲＤＡＩi）として設定するステップ（ＳＴＴ５）をさらに含むことを特徴とする請求項７に記載の方法。
【請求項９】
前記ステップ（ｂ）および前記ステップ（ｃ）が繰り返し実行されることを特徴とする請求項１ないし請求項８のいずれかに記載の方法。
【請求項１０】
各ステップ（ｂ）において、新しいメッセージデータ（ＭＤ）を前記データ受信装置（ＲＤ）において提供することができることを特徴とする請求項９に記載の方法。
【請求項１１】
前記現在のデータ提供装置の真正性指標（ＰＤＡＩi）および／または前記次のデータ提供装置の真正性指標（ＰＤＡＩi+1）および／または前記データ真正性指標（ＤａｔａＡＩ）および／または前記テストデータ真正性指標（ＤａｔａＡＩtest）および／または前記テスト真正性指標（ＡＩtest）は、一方向関数（ｈ1、ｈ2、ｈ3、ｈ4、ｈ5）、特に、少なくとも１つの
ＰＤＡＩi＝ｈ1（ＰＤＶＮi，ＡＩ0）、
ＰＤＡＩi+1＝ｈ1（ＰＤＶＮi+1，ＰＤＡＩi）、
ＤａｔａＡＩ＝ｈ2（ＤａｔａＰ）、
ＤａｔａＡＩtest＝ｈ2（ＤａｔａＰ）、および
ＡＩtest＝ｈ1（ＲＤＶＮi，ＲＤＡＩi-1）
を使用して計算され、上式で、
ＡＩ0は、初期の真正性指標を表し、
ＰＤＶＮiは、現在のデータ提供装置変数を表し、
ＰＤＶＮi+1は、次のデータ提供装置変数を表し、
ＤａｔａＰは、提供データを表し、
ＲＤＡＩi-1は、先行するデータ受信装置の真正性指標を表し、
ＲＤＶＮiは、現在のデータ受信装置変数を表し、
ＰＤＡＩiは、現在のデータ提供装置の真正性指標を表し、
ＰＤＡＩi+1は、次のデータ提供装置の真正性指標を表し、
ＤａｔａＡＩは、データ真正性指標を表し、
ＤａｔａＡＩtestは、テストデータ真正性指標を表し、
ＡＩtestは、テスト真正性指標を表し、
ｈ1およびｈ2は、一方向関数を表すことを特徴とする請求項１ないし請求項１０のいずれかに記載の方法。
【請求項１２】
前記一方向関数は、ハッシュ関数であることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記一方向関数は、少なくともＳＨＡ−１、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＭＤ２、ＭＤ４、ＭＤ５およびＲＩＰＥＭＤ−１６０、Ｓｎｅｆｒｕ、Ｔｉｇｅｒ、ならびにＷｈｉｒｌｐｏｏｌを含むハッシュ関数の集合から選択されることを特徴とする請求項１１または請求項１２に記載の方法。
【請求項１４】
前記メッセージデータ（ＭＤ）は、前記データ受信装置（ＲＤ）によって実行されるコンピュータプログラムコードを備えることを特徴とする請求項１ないし請求項１３のいずれかに記載の方法。
【請求項１５】
前記提供データ（ＤａｔａＰ）の提供ステップは、前記提供データ（ＤａｔａＰ）を無線チャネルを介して送信するステップを含むことを特徴とする請求項１ないし請求項１４のいずれかに記載の方法。
【請求項１６】
前記データ提供装置（ＰＤ）は、無線周波数送信器を備えたことを特徴とする請求項１ないし請求項１５のいずれかに記載の方法。
【請求項１７】
前記データ受信装置（ＲＤ）は、無線周波数受信器を備えたことを特徴とする請求項１ないし請求項１６のいずれかに記載の方法。
【請求項１８】
前記データ提供装置（ＰＤ）上でロードされると、請求項１ないし請求項１７のいずれかに記載の方法を実行し、特にコンピュータ読取可能な記憶媒体に記憶されたことを特徴とするコンピュータプログラム製品。
【請求項１９】
提供データ（ＤａｔａＰ）をデータ受信装置（ＲＤ）に送信するよう構成されたデータ提供装置（ＰＤ）であって、
変数生成装置と、
特に一方向関数を使用して、データ提供装置の真正性指標を生成するデータ提供装置の真正性指標生成装置と、
特に一方向関数を使用して、データ真正性指標を生成するデータ真正性指標生成装置と、
提供データ提供装置と
を備えたことを特徴とするデータ提供装置（ＰＤ）。
【請求項２０】
メッセージデータ（ＭＤ）を提供するメッセージデータ提供装置をさらに備えたことを特徴とする請求項１９に記載のデータ提供装置（ＰＤ）。
【請求項２１】
前記提供データ提供装置は、無線周波数送信器を備えたことを特徴とする請求項１９または請求項２０に記載のデータ提供装置（ＰＤ）。
【請求項２２】
提供データ（ＤａｔａＰ）をデータ提供装置（ＰＤ）から受信するよう構成されたデータ受信装置（ＲＤ）であって、
提供データ受信装置と、
特に一方向関数を使用して、テストデータ真正性指標を生成するためのテストデータ真正性指標生成装置と、
特に一方向関数を使用して、テスト真正性指標を生成するためのテスト真正性指標生成装置と
を備えたことを特徴とするデータ受信装置（ＲＤ）。
【請求項２３】
前記データ真正性指標（ＤａｔａＡＩ）を前記テストデータ真正性指標（ＤａｔａＡＩtest）と、
現在のデータ受信装置の真正性指標（ＲＤＡＩi）を前記テスト真正性指標（ＡＩtest）とを比較するように適合された比較装置
をさらに備えたことを特徴とする請求項２２に記載のデータ受信装置（ＲＤ）。
【請求項２４】
前記提供データ受信装置は、無線周波数受信器を備えたことを特徴とする請求項２２または請求項２３に記載のデータ受信装置（ＲＤ）。
【請求項２５】
請求項１９ないし請求項２１のいずれかに記載のデータ提供装置（ＰＤ）と、請求項２２ないし請求項２４のいずれかに記載のデータ受信装置（ＲＤ）とを備えたことを特徴とする通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを転送する方法、コンピュータプログラム製品、データ提供装置、データ受信装置、および通信システムに関し、詳細には、１つまたは複数のＲＦＩＤ（無線周波数識別）リーダと１つまたは複数のＲＦＩＤ（無線周波数識別）トランスポンダとの間で送られるデータの認証／検証に関する。
【背景技術】
【０００２】
無線周波数識別（ＲＦＩＤ）技術を使用する応用例が多くなってきており、許可されないアクセスに対して、ＲＦＩＤトランスポンダ（ＲＦＩＤタグ）に記憶されたデータを保護する必要性が高まっている。ＲＦＩＤタグにアクセスするものとしては、一般に、ＲＦＩＤリーダが知られている。ＲＦＩＤリーダは、特定の無線チャネルを介して送信されるメッセージを用いて、ＲＦＩＤタグ内に実装された機能を遠隔で実行することができる。例えば、ＲＦＩＤタグは、警報または盗難防止装置として倉庫内で使用することができる。ＲＦＩＤタグは、衣類などに取り付けて、例えば倉庫の出口にある特定の検出器を通過すると、そのタグが活動状態にある限り警報のトリガとなることができる。
【０００３】
さらに、ＲＦＩＤタグは、多種多様な書籍を容易かつ迅速に整理および識別するために図書館で使用される。ＲＦＩＤタグはまた、例えばパスポートの所有者の生体測定データを記憶するため、パスポートの一部として設けることができる。生体測定データをパスポートに明示して記録するのではなくＲＦＩＤタグを使用することにより、データを暗号化して特定の人にしか見えないようにすることができる。さらに、多種多様なデータをＲＦＩＤタグ上に記憶させておいて、データ変更、例えば追加データを記憶しなければならない場合に修正することもできる。
【０００４】
また、ＲＦＩＤタグは、人および／または物体を自動的に追跡および識別するために使用することができる。例えば人に、個人識別番号が記憶されているＲＦＩＤタグを携行させるといったことができる。作業場を出入りするとき、自動化された機械によってＲＦＩＤタグのトリガが引かれ、個人識別番号を読み取って入退時間を記憶する。したがって、その人の作業時間を容易に記録することができる。
【０００５】
さらに、ＲＦＩＤタグは、サプライチェーンを全体に観察し、および／または管理するために使用される。サプライチェーンの様々な場所（ｉｎｓｔｉｔｕｔｉｏｎ）にＲＦＩＤリーダが設けられる。ＲＦＩＤタグを付されている商品がそれぞれのＲＦＩＤリーダの届く範囲を通過し、またはその中に入ると、ＲＦＩＤタグとＲＦＩＤリーダとの通信によりタグにより示された商品を認識することができる。したがって、ＲＦＩＤタグを付された商品の工程または送達を容易に把握することができる。
【０００６】
さらに、入場チケットなど使い捨ての識別物品にＲＦＩＤタグを組み込むことができる。例えば、フットボールスタジアムに入ることができる入場チケットには、そのチケットを所有する人に関するデータを含むＲＦＩＤタグを組み込むことができる。したがって、偽のチケットを販売することや、違法にチケットを再販することが困難になる。
【０００７】
従来、ＲＦＩＤタグにアクセスするためには、ＲＦＩＤリーダが使用しされている。ＲＦＩＤリーダは、例えばＲＦＩＤタグを非活動状態にするために、キーワードまたはソフトウェアコードもしくはプログラムを含むメッセージデータを送信することができる。また、ＲＦＩＤリーダを使用して、ＲＦＩＤタグに記憶されたデータを作成し、読み取り、修正し、または削除することができる。したがって、ＲＦＩＤタグに対する許可されないアクセスを回避することが非常に重要である。
【０００８】
【非特許文献１】www.wikipedia.org
【発明の開示】
【発明が解決しようとする課題】
【０００９】
一般にＲＦＩＤリーダに転送しなければならないＲＦＩＤタグの一意の識別番号を、例えば、ＲＳＡ暗号化などの方法を使用して暗号化することによって、２つの装置間の通信を安全なものにすることが知られている。しかし、そのような暗号化は、通常は時間のかかるものであり、通常のＲＦＩＤタグにおいては使用することができないような量の計算力が必要となる。
【００１０】
例えば、ＲＦＩＤタグの一意の識別番号を安全に提供するために、一般に使用される他の技法としては、ハッシュロックモデルが採用される。ハッシュロックモデルによれば、ＲＦＩＤタグは、ＲＦＩＤリーダに乱数と妥当性検査番号を送信するが、妥当性検査番号は、乱数とＲＦＩＤタグの一意の識別番号とをハッシュ関数の引数および変数として、ハッシュ関数を使用して計算される。乱数と妥当性検査番号を使用して、ＲＦＩＤリーダで、ＲＦＩＤタグの一意の識別番号が記憶されているデータベースから一意の識別番号を推測することができる。
【００１１】
本発明の一目的は、ＲＦＩＤタグなど電子装置を制御する安全かつ効率的な方法を提供することである。この目的は、独立請求項の特徴によって解決される。
【課題を解決するための手段】
【００１２】
本発明の一態様によれば、無線周波数識別リーダなどデータ提供装置から、無線周波数識別トランスポンダなどデータ受信装置にデータを転送するための方法、すなわち、
【００１３】
（ａ）初期化ステップであって、
−  初期の真正性指標（ａｕｔｈｅｎｔｉｃｉｔｙ  ｉｎｄｉｃａｔｏｒ）を提供するステップと、
−  データ提供装置において、現在のデータ提供装置変数として初期変数を提供するステップと、
−  データ提供装置において、特に一方向関数を使用して、現在のデータ提供装置変数および初期の真正性指標の関数として現在のデータ提供装置の真正性指標を提供するステップと、
−  データ受信装置において、初期の真正性指標を、先行するデータ受信装置の真正性指標として設定するステップと、
−  データ受信装置において、現在のデータ受信装置の真正性指標を提供するステップとを含む初期化ステップと、
【００１４】
（ｂ）提供データ提供ステップであって、
−  データ提供装置において、特に一方向関数を使用して、提供データの関数としてデータ真正性指標を決定するステップと、
−  データ受信装置において、データ真正性指標と提供データを提供するステップとを含む提供データ提供ステップとを有する方法が提供される。
【００１５】
したがって、本発明の方法によれば、擬似乱数によって生成された変数とすることができる初期の真正性指標が提供される。「擬似乱数によって生成された」は、初期の真正性指標を、Ｃ／Ｃ＋＋プログラミング言語における関数ｒａｎｄ（）など、一般に知られている擬似乱数発生器を使用して生成することができることを意味する。さらに、一方向関数は、関数の出力だけを与えて、逆関数を得ることが困難な関数とすることができる。さらに、一方向関数は、実質的に耐衝突性を有する。換言すれば、一方向関数は、異なる入力変数を使用すると、実質的に常に異なる出力値を生成する。具体的には、従来知られている一方向関数を使用すると、２つの異なる入力変数を使用して同じ出力値を生成する統計確率は、約１０-10未満、特に約１０-20未満である。
【００１６】
さらに、初期の真正性指標は、データ提供装置部、またはデータ受信装置において生成することができ、初期化ステップ中には、データ提供装置とデータ受信装置の間で交換することができる。さらに、初期の真正性指標を提供し、データ受信装置において、初期の真正性指標を、例示的な先行するデータ受信装置の真正性指標として設定するステップは、１つのステップとして実行することができる。したがって、初期化ステップ中には、先行するデータ受信装置の真正性指標を、従来知られている擬似乱数発生器を使用して作成することができる。次いで、そのように生成された先行するデータ受信装置の真正性指標は、データ提供装置に転送することができ、現在のデータ提供装置変数としてそこで記憶することができる。さらに、データ提供装置からデータ受信装置に転送されることになるデータ真正性指標は、特に、提供データを転送する直前に生成される。
【００１７】
一例として、提供データは、無線周波数識別リーダから無線周波数識別トランスポンダに転送することができる。提供データを送信する前に、データ真正性指標が生成されている。また、データ真正性指標は、無線周波数識別リーダから無線周波数識別トランスポンダに送信することができる。データ真正性指標は、例えば、提供データが、提供データ提供ステップ中で、第三者などによって改変されているかどうか検証するために使用することができる。
【００１８】
具体的には、提供データは、以下のうち少なくとも１つを含む。すなわち、
−  メッセージデータ
−  次のデータ提供装置の真正性指標
−  現在のデータ提供装置変数
−  データ提供装置識別データ
−  データ受信装置識別データ
したがって、提供データを提供することにより、例えばキーワード、ソフトウェアコード、コンピュータプログラムなどからなる可能性があるメッセージデータを、ＲＦＩＤリーダからＲＦＩＤタグに送信することができる。
【００１９】
さらに、提供装置識別データは、データ受信装置において提供することができる。したがって、１つのデータ受信装置が、いくつかのデータ提供装置からの提供データを備えることができる可能性がある。データ提供装置の各々は、個々のデータ提供装置識別データを有する。したがって、データ受信装置は、異なるデータ提供装置から送信された提供装置間で区別することができる。
【００２０】
換言すれば、提供データは、データ提供装置識別データを含むことができ、その結果、データ受信装置は、提供データを特定のデータ提供装置に関連付けることができる。さらに、データ受信装置においてデータ提供装置識別データを提供することにより、提供データが、本当にそのデータ受信装置と通信するべきであるデータ提供装置から送られているかどうか検証することが可能である。
【００２１】
例示的な一実施態様によれば、データ受信装置において提供データを提供するステップは、次のデータ提供装置の真正性指標を次のデータ受信装置の真正性指標として、および現在のデータ提供装置変数を現在のデータ受信装置変数として提供するステップを含む。
【００２２】
したがって、提供データは、データ提供装置からデータ受信装置に転送され、次のデータ提供装置の真正性指標が、データ受信装置において、次のデータ受信装置の真正性指標として設定され、現在のデータ提供装置変数が現在のデータ受信装置変数として設定される。
【００２３】
本発明の他の例示的な実施態様によれば、提供ステップ（ｂ）は、データ提供装置において、次のデータ提供装置変数として新しい変数を提供するステップをさらに含み、その変数は、例示的には、擬似乱数発生器を使用して生成される。
【００２４】
具体的には、提供データの提供ステップ（ｂ）は、データ提供装置において、特に一方向関数を使用して、現在のデータ提供装置の真正性指標および次のデータ提供装置変数の関数として次のデータ提供装置の真正性指標を決定するステップをさらに含む。
【００２５】
さらに、データ受信装置において提供データを提供するステップは、特に、次のデータ提供装置の真正性指標を次のデータ受信装置の真正性指標として、また、現在のデータ提供装置変数を現在のデータ受信装置変数として提供するステップを含む。
【００２６】
したがって、本発明の例示的な実施形態において、提供データは、少なくとも次のデータ提供装置の真正性指標と現在のデータ提供装置変数とを備え、それらは、データ提供装置とデータ受信装置との連続する通信を可能にする。さらに、提供データはまた、メッセージデータ、および／またはデータ提供装置識別データ、および／またはデータ受信装置識別データを備えることができる。
【００２７】
具体的には、提供ステップ（ｂ）は、データ提供装置において、次のデータ提供装置変数を現在のデータ提供装置変数として、および次のデータ提供装置の真正性指標を現在のデータ提供装置の真正性指標として設定するステップをさらに含む。
【００２８】
換言すれば、データ受信装置において提供データを提供した後に、現在のデータ提供装置変数は、特に新しい擬似乱数によって置き換えられる。新しい擬似乱数を使用して、現在のデータ提供装置の真正性指標が新たに生成される。
【００２９】
他の例示的な実施形態において、本方法は、提供データを提供するステップ（ｂ）の後で、
【００３０】
（ｃ）
−  データ受信装置において、
−−  データ真正性指標を、データ受信装置において決定された、提供データの関数としてのテストデータ真正性指標と、また
−−  現在のデータ受信装置の真正性指標を、先行するデータ受信装置の真正性指標および現在のデータ受信装置変数の関数としてデータ受信装置において決定されたテスト真正性指標と比較するステップを含むデータ検証および認証ステップを含む。
【００３１】
換言すれば、データ受信装置において、テストデータ真正性指標は、データ提供装置からデータ受信装置に転送された提供データから作成される。次いで、テストデータ真正性指標は、データ真正性指標に比較される。データ真正性指標とテストデータ真正性指標が等しい場合、提供データは、提供ステップ（ｂ）中に改変されていない。したがって、データ提供装置からデータ受信装置部に提供データを送るための、およびデータ受信装置において受信された提供データがデータ提供装置から送られた提供データと同一であるかどうか検証することが可能である容易な方法が提供される。
【００３２】
さらに、テスト真正性指標は、特に現在のデータ受信装置変数を使用して作成される。したがって、データ提供装置からデータ受信装置への提供データの送信が第三者から見渡された場合ですら、その第三者は、データ受信装置において提供された時点で、現在のデータ受信装置変数を学習するにすぎない。
【００３３】
したがって、第三者は、提供データの提供前に現在のデータ受信装置変数を知らないため、元の提供データの代わりに改変された提供データを提供することができない。
【００３４】
換言すれば、提供データがデータ受信装置に提供された後では、第三者が提供データの提供を見渡した場合、第三者は、現在のデータ受信装置変数の値を学習するにすぎず、その値は、同時にデータ受信装置に知られ、現在送信されている提供データと組み合わせてのみ使用される。
【００３５】
データ提供装置からデータ受信装置に送られたさらなる提供データを認証するために、提供の時点で、新しい擬似乱数がいくつかの提供データとして提供される。この場合も、データ受信装置において、データ真正性指標をテストデータ真正性指標と比較することによって、その提供データが改変されているかどうかを検証することができる。さらに、送られた現在のデータ受信装置の真正性指標を、データ受信装置において作成されたテスト真正性指標と比較することによって、提供データが正しいデータ提供装置から送られているかどうか検証することができる。
【００３６】
有利には、両当事者に知られていなければならない、また、ある量の時間を与えると解読することが可能であるパスワードを使用することなしに、データ提供装置の安全な認証、およびデータ提供装置の安全な認証／検証が可能である。むしろ、本発明の利点は、パスワードの暗号化を回避することができることである。したがって、暗号化されたパスワードがないため、第三者がデータ提供装置とデータ受信装置との通信を見渡した場合ですら、通信を改悪することができない。すなわち、提供装置から送られた提供データは、データ受信装置が認識することなしに第三者から送られたデータで置き換えることも、その提供中に改変することもできない。したがって、時間のかかる提供データの暗号化を回避することができる。本発明によれば、データ受信装置において受信された提供データが、許可されたデータ提供装置によって送られているかどうか、また、送られたデータが元の提供データであるかどうか、安全に識別することが可能になる。
【００３７】
具体的には、データ提供装置の正しい身元を検証するために使用される現在のデータ受信装置変数が変化するため、また、現在のデータ受信装置変数は、それが共に送信された提供データを認証するために使用することができるにすぎないため、第三者が偽の提供データを提供することは不可能である。したがって、初期化の後で、認証式データ提供が確立される。というのは、提供データの提供中に送られる次のデータ提供装置の真正性指標の構成要素を、第三者が導出することができないからである。
【００３８】
具体的には、データ検証および認証ステップ（ｃ）は、データ受信装置において、現在のデータ受信装置の真正性指標を、先行するデータ受信装置の真正性指標として、また、次のデータ受信装置の真正性指標を現在のデータ受信装置の真正性指標として設定するステップをさらに含む。
【００３９】
他の例示的な実施形態によれば、ステップ（ｂ）とステップ（ｃ）は、繰り返し実施される。
【００４０】
換言すれば、ステップ（ｂ）およびステップ（ｃ）が連続的に繰り返され、したがって、ステップ（ｂ）に従って提供データを提供し、ステップ（ｃ）に従って即座に提供データの提供を検証および認証する。
【００４１】
しかし、ステップ（ｂ）を繰り返し実施することによっていくつかの提供データを提供することも可能であり、ある回数でステップ（ｂ）を実施した後で、異なる数の提供データを検証および認証するために、ステップ（ｃ）が特に同じ回数で実施される。またはこれに代えて、多数の提供データと、対応するデータ真正性指標を、データ提供装置で生成することができる。したがって、提供データは、データ真正性指標、ならびに提供装置変数および／または提供装置の真正性指標および／またはメッセージデータなど、それぞれの提供データをさらに次々に生成する必要なしに提供しさえすればよい。
【００４２】
上述のように、提供データを認証するために、現在のデータ受信装置変数、および先行するデータ受信装置の真正性指標を提供しなければならない。したがって、第三者は、提供データの提供を最初から見渡すことができることになり、提供データは、データ受信装置において提供される。しかし、本発明の方法は、初期の真正性指標を使用して開始されるため、最初の提供装置変数は秘密であり、データ提供装置に知られているだけなので、第三者は、現在のデータ受信装置の真正性指標を決して計算することができないことになる。さらに、特に最初の提供データを送信する前には、最初の提供装置変数はデータ提供装置に知られているだけである。すなわち、データ受信装置には知られていない。
【００４３】
具体的には、各ステップ（ｂ）で、新しいメッセージデータをデータ受信装置において提供することができる。したがって、各データ提供ステップに関して異なるメッセージデータを提供することにより、データ受信装置に様々なアクションを実行するように指令することが可能である。
【００４４】
本発明の方法の他の例示的な実施態様によれば、現在のデータ提供装置の真正性指標および／または次のデータ提供装置の真正性指標および／またはデータ真正性指標および／またはテストデータ真正性指標および／またはテスト真正性指標は、一方向関数、特に、
【００４５】
ＰＤＡＩi＝ｈ1（ＰＤＶＮi，ＡＩ0）、
ＰＤＡＩi+1＝ｈ1（ＰＤＶＮi+1，ＰＤＡＩi）、
ＤａｔａＡＩ＝ｈ2（ＤａｔａＰ）、
ＤａｔａＡＩtest＝ｈ2（ＤａｔａＰ）、および
ＡＩtest＝ｈ1（ＲＤＶＮi，ＲＤＡＩi-1）
のうち少なくとも１つを使用して計算され、上式で、
ＡＩ0は、初期の真正性指標を表し、
ＰＤＶＮiは、現在のデータ提供装置変数を表し、
ＰＤＶＮi+1は、次のデータ提供装置変数を表し、
ＤａｔａＰは、提供データを表し、
ＲＤＡＩi-1は、先行するデータ受信装置の真正性指標を表し、
ＲＤＶＮiは、現在のデータ受信装置変数を表し、
ＰＤＡＩiは、現在のデータ提供装置の真正性指標を表し、
ＰＤＡＩi+1は、次のデータ提供装置の真正性指標を表し、
ＤａｔａＡＩは、データ真正性指標を表し、
ＤａｔａＡＩtestは、テストデータ真正性指標を表し、
ＡＩtestは、テスト真正性指標を表し、
ｈ1およびｈ2は、一方向関数を表す。
【００４６】
例えば、ｈ1およびｈ2は、異なる一方向関数を表すことができる。しかし、ｈ1およびｈ2は、同じ一方向関数を表すことも可能である。
【００４７】
さらに具体的には、一方向関数はハッシュ関数であり、特に、一方向関数は、少なくともＳＨＡ−１、ＳＨＡ−２２４、ＳＨＡ−２５６、ＳＨＡ−３８４、ＳＨＡ−５１２、ＭＤ２、ＭＤ４、ＭＤ５およびＲＩＰＥＭＤ−１６０、ＧＯＳＴ−Ｈａｓｈ、ＣＲＣ−３２、Ｇｈａｓｈ−３、Ｓｎｅｆｒｕ、Ｔｉｇｅｒ、ならびにＷｈｉｒｌｐｏｏｌを含むハッシュ関数の集合から選択される。前述のハッシュ関数は、特に従来知られているハッシュ関数であり、これらは、例えばウェブページ（非特許文献１参照）で述べられており、例えば、ウェブページ（非特許文献１参照）上で参照されているように、ハッシュ関数の出力値を計算する一般に知られているプログラム内で実装される。本発明によれば、ハッシュ関数は、任意の長さのメッセージからデータの固定長ストリングを生成する関数である。その関数は、あらゆる一意の入力メッセージについて実質的に一意の値を生成する。換言すれば、ハッシュ関数は、実質的に任意の入力変数から、出力だけを与えて入力変数を推測することが可能でない特定の長さの出力を計算する。さらに、それぞれハッシュ関数の引数または変数として使用されたとき同じ出力が計算される２つの入力変数は、実質的に存在しない。すなわち、ハッシュ関数は、実質的に耐衝突性を有する。すなわち、２つの異なる入力変数が与えられて、従来知られているハッシュ関数を使用して２つの同一の出力変数を生み出す統計確率は、例えば約１０-10未満、より具体的には約１０-20未満である。
【００４８】
さらに、より具体的には、現在の提供装置変数および次の提供装置変数は、ビット列がハッシュ関数の出力の長さと同様の長さである。すなわち、現在の提供装置変数および次の提供装置変数のビット数は、それぞれ、ハッシュ関数の出力、例えば現在のデータ提供装置の真正性指標または次の現在のデータ提供装置の真正性指標のビット数と同様の長さとすることができる。
【００４９】
したがって、上記ですでに指摘したように、提供データの提供が第三者によって調査されても、例えば初期の真正性指標を、提供データの提供中に送られた現在の提供装置の真正性指標から推測することはできない。したがって、提供データの提供を調査する第三者は、他のどの提供データ真正性指標をも決定することができない。というのは、連続する提供データ真正性指標は、ハッシュ関数と、ハッシュ関数の引数または変数として先行する提供装置の真正性指標および提供装置変数、すなわち擬似乱数とを使用して計算されるからである。提供装置変数は、その認証および検証のために提供装置変数が使用される提供データと同時にデータ受信装置に送られるまで、データ提供装置によって秘密に保たれる。
【００５０】
具体的には、メッセージデータは、データ受信装置によって実行されるコンピュータプログラムコードを備える。
【００５１】
他の例示的な実施態様によれば、提供データをデータ受信装置に送るステップは、提供データを無線チャネルを介して送信するステップを含む。例えば、データを送るために使用される周波数波、約１２５ｋＨｚと１３４ｋＨｚの間、約４００ＭＨｚと９３０ＭＨｚの間、約１３．５６ＭＨｚ、約２．４５ＧＨｚ、約５．８ＧＨｚを含む範囲の集合のうちの少なくとも１つとすることができる。
【００５２】
したがって、データ提供装置は、特に無線周波数送信器を備え、データ受信装置は、無線周波数受信器を備えることができる。
【００５３】
本発明の他の態様は、データ提供装置上にロードされると、上記のいずれか１つによる方法を実施する、特にコンピュータ読取可能な記憶媒体に記憶されたコンピュータプログラム製品を提供することである。
【００５４】
本発明の他の態様によれば、提供データをデータ受信装置に送信することが可能なデータ提供装置であって、
−  変数生成装置と、
−  特に一方向関数を使用して、データ提供装置の真正性指標を生成することが可能なデータ提供装置の真正性指標生成装置と、
−  特に一方向関数を使用して、データ真正性指標を生成することが可能なデータ真正性指標生成装置と、
−  提供データ提供装置とを備える装置が提供される。
【００５５】
具体的には、データ提供装置は、メッセージデータを提供することが可能なメッセージデータ提供装置をさらに備える。メッセージデータ提供装置は、例えば、メッセージデータを生成するように、かつ／またはメッセージデータを他の入力装置から受信するように適合させることができる。さらに、メッセージデータ提供装置は、メッセージデータをデータベースから提供することができ、データベースは、外部データベースまたは内部データベースとすることができる。
【００５６】
具体的には、提供データ提供装置は、無線周波数エミッタを備える。
【００５７】
本発明の他の態様によれば、提供データをデータ提供装置から受信することが可能なデータ受信装置であって、
−  提供データ受信装置と、
−  特に一方向関数を使用して、テストデータ真正性指標を生成することが可能なテストデータ真正性指標生成装置と、
−  特に一方向関数を使用して、テスト真正性指標を生成することが可能なテスト真正性指標生成装置とを備える装置が提供される。
【００５８】
具体的には、データ受信装置は、
−  データ真正性指標をテストデータ真正性指標と、また、
−  現在のデータ受信装置の真正性指標をテスト真正性指標と比較するように適合された比較装置をさらに備える。
【００５９】
例えば、提供データ受信装置は、無線周波数受信器を備える。
【００６０】
本発明の他の態様は、本発明によるデータ提供装置と、本発明によるデータ受信装置とを備える通信システムを含む。
【発明を実施するための最良の形態】
【００６１】
本発明の例示的な実施形態について、添付の図面を参照して下記で述べる。
【００６２】
図１は、ＲＦＩＤ（無線周波数識別）リーダ１０の例示的な形態であるデータ提供装置を示す図である。ＲＦＩＤリーダ１０は、ユーザ１２が手で保持することができるものである。一方、ＲＦＩＤリーダ１０は、壁（図示せず）または地面１４に載置することができる。ＲＦＩＤリーダ１０は、線１８によって示されている無線電波を介してＲＦＩＤ（無線周波数識別）トランスポンダ１６（以下では、ＲＦＩＤタグ）と（一方向または双方向での）通信を行う。適正な通信を確立するため、ＲＦＩＤリーダ１０とＲＦＩＤタグ１６とは共に、各々アンテナ２０を備える。さらに、ＲＦＩＤタグ１６は、図に示すように、製品、例えばジャケット２２のような衣類に取り付けることができる。ジャケット２２は、例えば倉庫（ｗａｒｅｈｏｕｓｅ、図示せず）内で販売されるかもしれない。しかし、ＲＦＩＤタグ１６は、任意の他の物品または製品またはエンティティ、特に、安全に取引され、またはＲＦＩＤリーダ１０との通信を可能にしなければならない移動可能な物品に貼り付け、または取り付けることができる。
【００６３】
ＲＦＩＤリーダ１０およびＲＦＩＤタグ１６は、必ずしも無線周波数通信１８を介して通信しなくてもよい。むしろ、任意の他の通信方法を使用することができる。すなわち、これらは、電気接続、ＵＳＢ接続、光接続、Ｂｌｕｅｔｏｏｔｈ接続、または任意の他の一方向もしくは双方向もしくは多方向システムを介した任意の他の通信（例えば、インターネット）を介して、互いに接続することができる。
【００６４】
ＲＦＩＤリーダ１０を使用して、例えばデータをＲＦＩＤタグ１６上で記憶し、またはＲＦＩＤタグ１６部にコマンドを提供することができ、その結果ＲＦＩＤタグ１６部に特定のアクションを実行させることができる。例えば、ＲＦＩＤリーダ１０は、ＲＦＩＤタグ１６がそれ自体を活動状態または非活動状態にするように、ＲＦＩＤタグ１６においてメッセージデータを送ることができる。例えば、ジャケット２２が倉庫で販売される場合、ジャケット２２の価格を読み取ると、それと同時にＲＦＩＤリーダは、ＲＦＩＤタグ１６を非活動化することができる。したがって、支払い済みジャケット２２を持って倉庫を離れる顧客（図示せず）は、アラームのトリガをひかないことになる。その場合、ＲＦＩＤリーダ１０は、例えば価格を読み取るための読取走査装置（ｓｃａｎｎｉｎｇ  ｄｅｖｉｃｅ）内に、またはジャケット２２を包装するテーブル内にＲＦＩＤリーダ１０を収めてレジに近い任意の場所に設けることができる。
【００６５】
しかし、ＲＦＩＤタグ１６を先に非活動化することなくジャケット２２が倉庫の外に持ち出されると、その結果、例えばアラームのトリガ引かれる。さらに、提供データをＲＦＩＤリーダ１０から受信した後に、ＲＦＩＤタグ１６がその一意の識別番号をＲＦＩＤリーダ１０に送信するように提供データを設定することができる。したがって、ＲＦＩＤリーダ１０の範囲内で、ＲＦＩＤタグ１６の番号を迅速に把握することが容易となる。さらに、例えば異なるＲＦＩＤタグ１６と、それぞれのＲＦＩＤタグ１６に関係する商品とを区別することも可能となる。例えば、ＲＦＩＤタグ１６のそれぞれの識別番号、およびＲＦＩＤタグが構成される衣類のタイプ、それらの色、サイズなどを含むデータベースを提供することができる。例えば倉庫内のＲＦＩＤタグ１６すべてと通信することができる、またデータベースにアクセスすることができるＲＦＩＤリーダ１０を使用すると、容易かつ迅速に、倉庫内に納められた商品、例えば衣類の高速な在庫リストを作成することが可能になる。
【００６６】
さらに、特定のメッセージデータをＲＦＩＤリーダ１０からＲＦＩＤタグ１６に送ることすら不要とすることができる。むしろ、ＲＦＩＤタグ１６部においてＲＦＩＤリーダ１０の一意の識別番号ＰＤＩＤを提供することで十分である可能性がある。識別番号ＰＤＩＤをＲＦＩＤタグ１６に提供すると、識別番号ＰＤＩＤを認証および検証した後に、ＲＦＩＤタグ１６は、自動的に非活動状態または活動状態にするか、あるいはＲＦＩＤタグ１６に記憶されているデータを他の装置に送ることができる。例えば、ＲＦＩＤリーダ１０は、従来のバーコードリーダと置き換えることができる。顧客が、ジャケット２２などを購入すると、ＲＦＩＤタグ１６をＲＦＩＤリーダ１０で非活動状態にすることができ、それと同時に、ＲＦＩＤタグ１６に記憶されているジャケット２２の価格情報をレジ部に提供することができる。その場合、価格情報は、ＲＦＩＤタグ１６からＲＦＩＤリーダ１０に送信することができる。またはこれに代えて、他のＲＦＩＤリーダ（図示せず）をレジ近くに配置してレジと通信するよう構成することができる。
【００６７】
ＲＦＩＤリーダ１０とＲＦＩＤタグ１６との通信について、図２および図３に示されているフローチャートを使用してさらに説明する。
【００６８】
図２および図３は、（例示的なデータ提供装置としての）ＲＦＩＤリーダ１０、および（例示的なデータ受信装置としての）ＲＦＩＤタグ１６の動作のフローチャートを示す。ＲＦＩＤリーダ１０とＲＦＩＤタグ１６との通信の適正な認証および検証を確立するために、ＲＦＩＤリーダ１０とＲＦＩＤタグ１６を共に初期化しなければならない。具体的には、提供データの識別を認証および検証するために、ＲＦＩＤリーダ１０およびＲＦＩＤタグ１６を初期化しなければならない（ステップＳＴＲ１からＳＴＲ４、ならびにＳＴＴ１およびＳＴＴ２）。
【００６９】
初期化中に、ＲＦＩＤリーダ１０またはＲＦＩＤタグ１６は、初期の真正性指標ＡＩ0を作成する（ステップＳＴＲ１、ＳＴＴ１）。具体的には、初期の真正性指標ＡＩ0は、ＲＦＩＤリーダ１０で生成し、ＲＦＩＤタグ１６メモリ（図示せず）内に焼き込む（ｂｕｒｎｔ  ｉｎｔｏ）ことができる。初期の真正性指標ＡＩ0は、擬似乱数によって生成されたビット列とすることができる。「擬似乱数によって生成された」は、Ｃ／Ｃ＋＋プログラミング言語に組み込まれている関数ｒａｎｄ（）など従来の乱数発生器を使用して生成されていることを意味する。例えば、初期の真正性指標ＡＩ0は、
【００７０】
ＡＩ0＝６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１
【００７１】
の値を有する。
【００７２】
初期の真正性指標ＡＩ0は、ＲＦＩＤリーダとＲＦＩＤタグとの間で、安全な方法で交換される。例えば、初期化中には、ＲＦＩＤリーダ１０とＲＦＩＤタグ１６とを物理的に接触させること、または安全な環境内で無線周波数通信１８を介して交換することが必要となる。初期の真正性指標ＡＩ0は、ＲＦＩＤリーダ１０で生成し、ＲＦＩＤタグ１６の製造中にＲＦＩＤタグ１６のメモリ（図示せず）内に焼き込むことができる。
【００７３】
さらに、初期化中には、ＲＦＩＤリーダ１０は、（例えば現在のデータ提供装置変数として）最初の変数ＰＤＶＮiを生成する。例えば、第１のメッセージ、すなわちｉ＝１を送信するとき、最初の変数ＰＤＶＮ1は、
【００７４】
ＰＤＶＮ1＝３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１
【００７５】
の値を有する（ステップＳＴＲ２）。
【００７６】
さらに、初期化中には、（例えばデータ提供装置の真正性指標として）現在の真正性指標ＰＤＡＩ1が、従来知られているハッシュ関数など一方向関数を使用して生成される。現在の真正性指標ＰＤＡＩ1は、ハッシュ関数、並びにハッシュ関数の引数または変数として初期の真正性指標ＡＩ0および最初の変数ＰＤＶＮ1を使用して計算される（ステップＳＴＲ３）。次いで、現在の真正性指標ＰＤＡＩ1または最初の変数ＰＤＶＮ1を、安全な方法でＲＦＩＤタグ１６に送信する（ステップＳＴＲ４）。現在の真正性指標ＰＤＡＩ1は、ＲＦＩＤタグ１６においてその初期化中に提供することができる。例えば、ＲＦＩＤタグ１６の製造中に、初期の真正性指標ＡＩ0および現在の真正性指標ＰＤＡＩ1がＲＦＩＤタグ１６において提供される。それらは、ＲＦＩＤタグ１６のメモリ（図示せず）内に焼き込むようにすることができる。さらに、上記の実施例を実施する場合、現在の真正性指標ＰＤＡＩiは、例えば、ハッシュ関数として、従来知られているＭＤ５を使用し、初期の真正性指標ＡＩ0および最初の変数ＰＤＶＮ1から計算される。現在の真正性指標ＰＤＡＩ1は、
【００７７】
ＰＤＡＩ1＝ｈMD5（ＰＤＶＮ1，ＡＩ0）
＝ｈMD5（３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１，６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１）
＝９３  ６９  ７Ｆ  １Ｆ  Ｄ９  ８Ｆ  ＣＣ  ７０  Ｅ１  ３６  ６Ａ  ２９  ２Ｃ  ６１  ８３  ７Ｄ
【００７８】
として計算される。次いで、ＲＦＩＤリーダ１０の初期化が完了する。
【００７９】
したがって、ＲＦＩＤタグ１６の初期化中には、初期の真正性指標（ＡＩ0）が、ＲＦＩＤタグ１６において作成されるか、またはＲＦＩＤリーダ１０からＲＦＩＤタグ１６において受信する（ステップＳＴＴ１）。さらに、現在の真正性指標ＰＤＡＩiをＲＦＩＤタグ１６において受信するが、これは、ＲＦＩＤタグ１６において（例えば現在の受信装置の真正性指標として）ＲＤＡＩiと呼ばれるようになる。本実施例によれば、ＲＦＩＤタグ１６における現在の真正性指標をＲＤＡＩ1と呼ぶ。
【００８０】
ＲＤＡＩ1＝９３  ６９  ７Ｆ  １Ｆ  Ｄ９  ８Ｆ  ＣＣ  ７０  Ｅ１  ３６  ６Ａ  ２９  ２Ｃ  ６１  ８３  ７Ｄ
【００８１】
またはこれに代えて、最初の変数ＰＤＶＮ１をＲＦＩＤタグ１６に送信し、ハッシュ関数、並びにその引数または変数として最初の変数ＰＤＶＮ1および初期の真正性指標ＡＩ0を使用し、ＲＦＩＤタグ１６において現在の真正性指標ＲＤＡＩ1を計算することが可能である（ステップＳＴＴ２）。次いで、ＲＦＩＤタグ１６の初期化が完了する。
【００８２】
次に、ＲＦＩＤリーダ１０による提供データの提供について述べる（ステップＳＴＲ５からＳＴＲ９）。提供データをＲＦＩＤリーダ１０からＲＦＩＤタグ１６に送信する前に、データ真正性指標ＤａｔａＡＩが作成され、データ真正性指標は、従来のハッシュ関数、並びにハッシュ関数の引数または変数として、（例えばデータ提供装置識別データとして）ＲＦＩＤリーダ１０の一意の識別番号ＰＤＩＤ、（例えばデータ受信装置識別データとして）ＲＦＩＤタグ１６の一意の識別番号ＲＤＩＤ、コンピュータプログラムコードなどを含むことができるメッセージデータＭＤ、最初の変数ＰＤＶＮ1、および（例えば次の提供装置の真正性指標として）次の真正性指標ＰＤＡＩi+1のうち１つまたは複数を使用して計算される。本実施例では、ｉ＝１であるため、次の真正性指標ＰＤＡＩi+1は、ＰＤＡＩ2と呼ばれる。
【００８３】
本実施例では、ＲＦＩＤリーダ１０の一意の識別番号ＰＤＩＤは、
ＰＤＩＤ＝Ａ
として選択し、ＲＦＩＤタグ１６の一意の識別番号ＲＤＩＤは、
ＲＤＩＤ＝Ｂ
として選択し、メッセージデータＭＤは、
ＭＤ＝”Ｒｅａｄ  ＥＰＣ”
として選択するが、ここでＥＰＣは、ＲＦＩＤタグ１６が取り付けられる物品の電子製品番号とすることができ、最初の変数ＰＤＶＮ1は、上述のように与えられる。すなわち、
【００８４】
ＰＤＶＮ1＝３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１
【００８５】
以下のステップが実施されて、データが提供される。すなわち、次の真正性指標ＰＤＡＩ2を提供するためには、擬似乱数とすることができる（例えば次の提供装置変数として）次の変数ＰＤＶＮi+1を、ＲＦＩＤリーダ１０で生成しなければならない。上記の用語に沿えば、本実施例では、次の変数ＰＤＶＮi+1は、ＰＤＶＮ2と呼ばれる。
【００８６】
具体的には、本実施例では、次の変数ＰＤＶＮ2は、
【００８７】
ＰＤＶＮ2＝３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２
【００８８】
に等しい。
【００８９】
またはこれに代えて、次の変数は、特に多数の変数を含むデータベースからとることができる。変数は、変数の記憶された順序とは実質上、別に選択することができるか、あるいは変数を記憶する際にデータベース内で実質的にランダムに記憶して、変数が互いにすべて異なるようにすることができる。また、同じ変数を数回提供することも可能である（ステップＳＴＲ５）。
【００９０】
次の真正性指標ＰＤＡＩ2は、ハッシュ関数と、ハッシュ関数の引数または変数として、次の変数ＰＤＶＮ2および現在の真正性指標ＰＤＡＩ1とを使用して生成される。したがって、次の真正性指標ＰＤＡＩ2は、
【００９１】
ＰＤＡＩ2＝ｈMD5（ＰＤＶＮ2，ＰＤＡＩ1）
＝ｈMD5（３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２  ３２，９３  ６９  ７Ｆ  １Ｆ  Ｄ９  ８Ｆ  ＣＣ  ７０  Ｅ１  ３６  ６Ａ  ２９  ２Ｃ  ６１  ８３  ７Ｄ）
＝Ｂ５  Ｅ５  ＥＦ  ６Ｅ  ６Ｃ  ５０  Ｃ５  Ｄ６  ５２  Ｄ１  Ｄ６  Ｃ１  ５７  ５９  ６３  ＦＢ
【００９２】
に等しい（ステップＳＴＲ６）。
【００９３】
次に、データ真正性指標ＤａｔａＡＩが、ＲＦＩＤリーダ１０において生成される。データ真正性指標ＤａｔａＡＩは、提供データのハッシュ関数から計算される。提供データは、メッセージデータＭＤ、ＲＦＩＤリーダ１０の一意の識別番号ＰＤＩＤ、ＲＦＩＤタグ１６の一意の識別番号ＲＤＩＤ、最初の変数ＰＤＶＮ1、および次の真正性指標ＰＤＡＩ2を含むことができる。本実施例では、データ真正性指標は、
【００９４】
ＤａｔａＡＩ＝ｈMD5（ＭＤ，ＰＤＩＤ，ＲＤＩＤ，ＰＤＶＮ1，ＰＤＡＩ2）
＝ｈMD5（”Ｒｅａｄ  ＥＰＣ”，Ａ，Ｂ，３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１，Ｂ５  Ｅ５  ＥＦ  ６Ｅ  ６Ｃ  ５０  Ｃ５  Ｄ６  ５２  Ｄ１  Ｄ６  Ｃ１  ５７  ５９  ６３  ＦＢ）
＝８Ｅ  ０２  ９Ｆ  ７７  Ｆ２  ７Ｄ  ５０  ４９  Ｄ３  Ｂ３  ７６  Ｅ０  ０３  ５Ｄ  ９７  ＢＦ
【００９５】
として計算される（ステップＳＴＲ７）。
【００９６】
次いで、提供データおよびデータ真正性指標ＤａｔａＡＩが、ＲＦＩＤタグ１６において提供される（ステップＳＴＲ８）。
【００９７】
他のメッセージデータＭＤをＲＦＩＤリーダ１０からＲＦＩＤタグ１６に送る場合、次に変数ＰＤＶＮ2が最初の変数ＰＤＶＮ1として使用される。さらに、ＲＦＩＤリーダ１０において、次の真正性指標ＰＤＡＩ2が現在の真正性指標ＰＤＡＩiとして使用される（ステップＳＴＲ９）。次いで、データの提供の１サイクルが完了する。他の提供データを提供するために、ステップＳＴＲ５からＳＴＲ９を繰り返し実施することができる。
【００９８】
以下では、ＲＦＩＤタグ１６においての認証および検証について説明する（ステップＳＴＴ３からＳＴＴ５）。
【００９９】
ＲＦＩＤタグ１６に送信された後で、現在の真正性指標ＰＤＡＩ1は、（現在の受信器真正性指標の例として）現在の真正性指標ＲＤＡＩ1と呼ばれ、次の真正性指標ＰＤＡＩ2が（次の受信器真正性指標の例として）次の真正性指標ＲＤＡＩ2と呼ばれ、最初の変数ＰＤＶＮ1が最初の変数ＲＤＶＮ1と呼ばれる。したがって、
【０１００】
ＲＤＡＩ1＝ＰＤＡＩ1＝９３  ６９  ７Ｆ  １Ｆ  Ｄ９  ８Ｆ  ＣＣ  ７０  Ｅ１  ３６  ６Ａ  ２９  ２Ｃ  ６１  ８３  ７Ｄ
ＲＤＡＩ2＝ＰＤＡＩ2＝Ｂ５  Ｅ５  ＥＦ  ６Ｅ  ６Ｃ  ５０  Ｃ５  Ｄ６  ５２  Ｄ１  Ｄ６  Ｃ１  ５７  ５９  ６３  ＦＢ
ＲＤＶＮ1＝ＰＤＶＮ1＝３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１
【０１０１】
次に、ＲＦＩＤタグ１６において、データ真正性指標ＤａｔａＡＩは、テストデータ真正性指標ＤａｔａＡＩtestと比較される。したがって、テストデータ真正性指標ＤａｔａＡＩtestは、ＲＦＩＤタグ１６においてのデータ真正性指標ＤａｔａＡＩの計算（ステップＳＴＲ７参照）と同様だが、代わりに提供された提供データを使用して、ＲＦＩＤタグ１６において計算される。換言すれば、テストデータ真正性指標ＤａｔａＡＩtestは、ハッシュ関数と、その引数または変数として、データ真正性指標ＤａｔａＡＩについて使用されるものは同じであるが、ＲＦＩＤリーダ１０からＲＦＩＤタグ１６に送られた要素とを使用して計算される。したがって、テストデータ真正性指標ＤａｔａＡＩtestは、
【０１０２】
ＤａｔａＡＩtest＝ｈMD5（ＭＤ，ＰＤＩＤ，ＲＤＩＤ，ＲＤＶＮ1，ＲＤＡＩ2）
＝ｈMD5（”Ｒｅａｄ  ＥＰＣ”，Ａ，Ｂ，３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１，Ｂ５  Ｅ５  ＥＦ  ６Ｅ  ６Ｃ  ５０  Ｃ５  Ｄ６  ５２  Ｄ１  Ｄ６  Ｃ１  ５７  ５９  ６３  ＦＢ）
＝８Ｅ  ０２  ９Ｆ  ７７  Ｆ２  ７Ｄ  ５０  ４９  Ｄ３  Ｂ３  ７６  Ｅ０  ０３  ５Ｄ  ９７  ＢＦ
【０１０３】
に等しい（ステップＳＴＴ３）。
【０１０４】
データ真正性指標ＤａｔａＡＩとテストデータ真正性指標ＤａｔａＡＩtestが合致する場合、さらなるステップがＲＦＩＤタグ１６によって実施される。
【０１０５】
テスト真正性指標ＡＩtestは、ＲＦＩＤタグ１６において、ハッシュ関数と、ハッシュ関数の引数または変数として、（先行する受信装置の真正性指標の例として）先行する真正性指標ＲＤＡＩi-1および最初の変数ＲＤＶＮ1とを使用して計算される。本実施例によれば、先行する真正性指標は、ＲＤＡＩ0と呼ばれる。最初のメッセージを送信するとき、先行する真正性指標ＲＤＡＩ0の値は、初期の真正性指標ＡＩ0の値に等しい。上記の実施例によれば、ＡＩtest＝ｈMD5（ＲＤＡＩ0，ＲＤＶＮ1）である。第１のメッセージを送信した後に、テスト真正性指標ＡＩtestは、以下のように計算される。すなわち、
【０１０６】
ＡＩtest＝ｈMD5（ＡＩ0，ＲＤＶＮ1）
＝ｈMD5（６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１  ６１，３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１  ３１）
＝９３  ６９  ７Ｆ  １Ｆ  Ｄ９  ８Ｆ  ＣＣ  ７０  Ｅ１  ３６  ６Ａ  ２９  ２Ｃ  ６１  ８３  ７Ｄ
【０１０７】
現在の真正性指標ＲＤＡＩ1は、テスト真正性指標ＡＩtestと比較される。現在の真正性指標ＲＤＡＩ1とテスト真正性指標ＡＩtestとが合致する場合、メッセージデータＭＤは受け入れられ、例えば、それぞれのプログラムコード／アクションをＲＦＩＤタグ１６において／ＲＦＩＤタグ１６から実行することができる（ステップＳＴＴ４）。特定のアクションを実行するには、ＲＦＩＤリーダ１０以外の他の装置にデータを送信することが必要となる可能性もある。本実施例によれば、ＲＦＩＤタグ１６は、コマンド「Ｒｅａｄ  ＥＰＣ」を実行する。すなわち、ＲＦＩＤタグ１６は、ＥＰＣをＲＦＩＤリーダ１０に送ることができる。
【０１０８】
他の提供データをＲＦＩＤタグ１６において受信する場合、先行する真正性指標ＲＤＡＩ0の値が、現在の真正性指標ＲＤＡＩiの値によって置き換えられ、その後に、現在の真正性指標ＲＤＡＩ1の値は、（ＳＴＲ８中に次の真正性指標ＰＤＡＩ2としてＲＦＩＤリーダ１０によって提供された）次の真正性指標ＲＤＡＩ2の値によって置き換えられる（ＳＴＴ５）。そうして、提供データの認証および検証が完了する。
【０１０９】
したがって、任意のさらに多くの（ａｎｙ  ｆｕｒｔｈｅｒ  ｎｕｍｂｅｒ  ｏｆ）メッセージデータをＲＦＩＤリーダ１０からＲＦＩＤタグ１６に送信することができる。すなわち、第２のメッセージを送信すると、カウント数ｉの値を１だけ、すなわちｉ＝２に増やして、任意のさらに多くのアクションをＲＦＩＤタグ１６が実行することができる。
【０１１０】
したがって、ＲＦＩＤリーダ１０とＲＦＩＤタグ１６との通信は、時間のかかるデータの暗号化／解読が必要ないにもかかわらず、非常に安全である。むしろ、（メッセージ）データは、第三者が把握／読み取ることができる。しかし、ＲＦＩＤタグ１６は、例えばＲＦＩＤリーダ１０によって提供されないプログラムコードを実行することはできない。
【０１１１】
本発明は、上述の諸実施形態に限定されない。むしろ、本発明の多数の他の実施形態が可能である。例えば、ＲＦＩＤリーダ１０とＲＦＩＤタグ１６を使用するのではなく、通信し、特に次々にデータを交換しなければならない、電子送信器（ｅｌｅｃｔｒｏｎｉｃ  ｅｍｉｔｔｅｒ）および受信器からなる任意の他のシステムを使用することができる。さらに、ＲＦＩＤタグ１６がＲＦＩＤリーダ１０からデータを受信し、さらに上述の形で他のＲＦＩＤ装置にデータを送ることも可能である。そのとき、ＲＦＩＤタグ１６はまた、他の装置のためのＲＦＩＤリーダとして機能することになり、他の装置は、ＲＦＩＤタグとして機能することになる。その連鎖は延長することができ、その結果、様々なＲＦＩＤタグが、同時にＲＦＩＤリーダとして機能することになる。
【図面の簡単な説明】
【０１１２】
【図１】本発明の一実施形態によるデータ提供装置およびデータ受信装置の概略図である。
【図２】データ提供装置の動作のフローチャートである。
【図３】データ受信装置の動作のフローチャートである。
【符号の説明】
【０１１３】
１０  ＲＦＩＤリーダ
１２  ユーザ
１４  地面
１６  ＲＦＩＤタグ
１８  無線周波数通信
２０  アンテナ
２２  ジャケット
【図１】
2006217590.tif 000003
【図２】
2006217590.tif 000004
【図３】
2006217590.tif 000005