(57)【要約】時間的に変化する動的値とイベントの発生に関連するイベント状態と認証装置に関連する秘密とに少なくとも部分的に依存する認証コードを生成するための方法およびシステム。イベント状態に応じて認証コードを生成することによって識別認証コードは、識別性を検証するため、イベント状態情報を伝達するため、そして確実な仕方でそうするために使用されることができる。
2006508471.tif 000002
【特許請求の範囲】
【請求項１】
認証装置に関連する識別認証コードを生成するための方法であって、
認証装置にイベント（事象）状態を記憶するステップと、
イベントに応じて前記イベント状態を修正するステップと、
（i）動的値と（ii）前記イベント状態と（iii）前記装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップと、を含むことを特徴とする方法。
【請求項２】
前記イベントは報告可能なイベントを含むことを特徴とする、請求項１に記載の方法。
【請求項３】
前記イベントは変則なイベントを含むことを特徴とする、請求項１に記載の方法。
【請求項４】
前記イベントは前記装置を改竄することを含むことを特徴とする、請求項１に記載の方法。
【請求項５】
前記イベントは前記装置によって検出される前記装置の外部のイベントを含むことを特徴とする、請求項１に記載の方法。
【請求項６】
前記イベントは環境的イベントを含むことを特徴とする、請求項１に記載の方法。
【請求項７】
前記イベントは減少したバッテリーパワー（電池電力）出力を含むことを特徴とする、請求項１に記載の方法。
【請求項８】
前記イベントは環境的イベントと減少したバッテリーパワー出力と前記装置を改竄することのうちの少なくとも一つの欠如を含むことを特徴とする、請求項１に記載の方法。
【請求項９】
前記識別認証コードを表示するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１０】
前記生成するステップは、（i）前記動的な値と、（ii）前記イベント状態と、（iii）前記装置に関連する前記秘密と、（iv）ＰＩＮ（個人識別番号）とパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つと、に少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１１】
前記ＰＩＮとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つは前記認証装置に記憶されることを特徴とする、請求項１０に記載の方法。
【請求項１２】
前記ＰＩＮとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つは暗号化された形で前記認証装置に記憶されることを特徴とする、請求項１１に記載の方法。
【請求項１３】
前記生成するステップは、（i）前記動的値と、（ii）前記イベント状態と、（iii）前記装置に関連する前記秘密と、（iv）生体測定観測から取得されるデータが復号するために使用され得るように暗号化された形で記憶されたＰＩＮとパスワードとのうちの少なくとも一つと、に少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１４】
前記生成するステップの前に、前記ＰＩＮとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つを含む利用者入力データを受信するステップを更に含むことを特徴とする、請求項１０に記載の方法。
【請求項１５】
前記生成するステップの前に、利用者入力データの正しいことを検証するステップを更に含み、また
前記利用者入力データが正しいと検証された場合にだけ前記識別認証コードを与えるステップを更に含むことを特徴とする、請求項１４に記載の方法。
【請求項１６】
前記識別認証コードを検証者に送信するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項１７】
前記識別認証コードを含む認証情報を検証者によって受信するステップと、
前記利用者の識別性（身分証明）と前記イベント状態とを検証者によって決定するステップとを更に含むことを特徴とする、請求項１６に記載の方法。
【請求項１８】
前記検証者は前記装置に関連する前記秘密の表現を含むことを特徴とする、請求項１６に記載の方法。
【請求項１９】
前記認証情報は利用者識別子を更に含むことを特徴とする、請求項１７に記載の方法。
【請求項２０】
前記認証情報はＰＩＮとパスワードのうちの少なくとも一つを更に含むことを特徴とする、請求項１７に記載の方法。
【請求項２１】
前記装置と検証者だけが前記イベント状態を容易に決定できることを特徴とする、請求項１６に記載の方法。
【請求項２２】
イベント状態を修正する前記ステップはイベント状態データを第１のデータ記憶装置に記憶するステップを含むことを特徴とする、請求項１に記載の方法。
【請求項２３】
前記修正するステップは第１の値を前記第１のデータ記憶装置に直ちに記憶し、その後に第２の値を第２のデータ記憶装置に記憶するステップを含むことを特徴とする、請求項２２に記載の方法。
【請求項２４】
前記第１のデータ記憶装置と前記第２のデータ記憶装置は同じデータ記憶装置であることを特徴とする、請求項２２に記載の方法。
【請求項２５】
前記第１のデータ記憶装置は前記第２のデータ記憶装置とオーバーラップすることを特徴とする、請求項２２に記載の方法。
【請求項２６】
前記第１のデータ記憶装置は前記第２のデータ記憶装置とは異なることを特徴とする、請求項２２に記載の方法。
【請求項２７】
前記第１値は決定論的に計算されることを特徴とする、請求項２２に記載の方法。
【請求項２８】
前記第１値はゼロであることを特徴とする、請求項２２に記載の方法。
【請求項２９】
直ちに記憶する前記ステップは非同期的であることを特徴とする、請求項２２に記載の方法。
【請求項３０】
前記第１の値と前記第２の値のうちの少なくとも一つは少なくとも部分的にランダムであることを特徴とする、請求項２２に記載の方法。
【請求項３１】
前記第２の値は計算された値を含むことを特徴とする、請求項２２に記載の方法。
【請求項３２】
前記生成するステップは、時間に関連する動的値と、前記イベント状態に反映されるイベントの発生とに少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項１に記載の方法。
【請求項３３】
前記イベント状態はイベント状態に関連する値とこの値から誘導されるビットとを含み、これらのビットの各々は時間間隔と関連していることを特徴とする、請求項１に記載の方法。
【請求項３４】
前記装置は互いに通信する二つのコンポーネントを含むことを特徴とする、請求項１に記載の方法。
【請求項３５】
前記イベント状態の少なくとも一部と前記秘密の少なくとも一部は前記二つのコンポーネントの一つに記憶されることを特徴とする、請求項３４に記載の方法。
【請求項３６】
前記コンポーネントの一方は無線通信装置を含み、他方のコンポーネントは前記無線装置に取外し可能なアクセサリを含むことを特徴とする、請求項３４に記載の方法。
【請求項３７】
装置を検証するための方法であって、
時間と前記装置に関連する秘密とイベント状態とに少なくとも部分的に依存する装置によって生成される識別認証コードを含む認証情報を受信するステップと、
前記受信された識別認証コードに応じて利用者の識別性（身分証明）を検証し、前記イベント状態を決定するステップと、を含むことを特徴とする方法。
【請求項３８】
前記イベント状態に応じて措置をとるステップを含むことを特徴とする、請求項３７に記載の方法。
【請求項３９】
前記決定されたイベント状態に応じてイベントが発生したかどうかを決定するステップを更に含むことを特徴とする、請求項３７に記載の方法。
【請求項４０】
前記イベント状態は前記装置を改竄することを含むことを特徴とする、請求項３７に記載の方法。
【請求項４１】
前記イベントは前記装置によって検出される前記装置の外部のイベントを含むことを特徴とする、請求項３７に記載の方法。
【請求項４２】
前記イベントは環境的イベントと減少したバッテリーパワー出力と前記装置を改竄することのうちの少なくとも一つの欠如を含むことを特徴とする、請求項３７に記載の方法。
【請求項４３】
前記認証情報は利用者識別子を更に含むことを特徴とする、請求項３７に記載の方法。
【請求項４４】
前記認証情報はＰＩＮとパスワードのうちの少なくとも一つを更に含むことを特徴とする、請求項４３に記載の方法。
【請求項４５】
前記装置と検証者だけが前記イベント状態を容易に決定できることを特徴とする、請求項３７に記載の方法。
【請求項４６】
前記装置と検証者だけがイベントが登録されたかどうかを容易に決定できることを特徴とする、請求項３７に記載の方法。
【請求項４７】
前記検証するステップは時間に関連する動的値と前記イベント状態とに少なくとも部分的に依存する予期される識別認証コードを生成することを更に含むことを特徴とする、請求項３７に記載の方法。
【請求項４８】
前記イベント状態はイベント状態秘密と前記動的値から誘導されるビットとを含み、これらのビットの各々は時間間隔と関連していることを特徴とする、請求項４６に記載の方法。
【請求項４９】
装置によって識別認証コードを生成するための方法であって、
装置に関連する第１の秘密値をこの装置内に記憶するステップと、
イベント状態に関連する第２の秘密値をこの装置内に記憶するステップと、
時間的に変化する動的値を前記装置によって生成するステップと、
時間に関連するイベント状態データを前記第２の秘密値から誘導するステップと、
ある時間に関する時間固有値を前記第１の秘密値と前記イベント状態データとから誘導するステップと、
前記時間固有値を入力として使用して識別認証コードを計算するステップと、を含むことを特徴とする方法。
【請求項５０】
前記イベント状態データは各々が時間に関連するビットを含んでおり、前記時間固有値は前記第１の秘密値と前記時間に関連するそれぞれのビットとから誘導されることを特徴とする、請求項４９に記載の方法。
【請求項５１】
イベントの発生を検出するステップと、
前記検出されたイベントに応じてイベント状態ビットを修正するステップと、を更に含むことを特徴とする、請求項５０に記載の方法。
【請求項５２】
前記検出されたイベントに応じて前記第２の秘密値を修正するステップと、を更に含むことを特徴とする、請求項４９に記載の方法。
【請求項５３】
前記第１の秘密値は最初のうちは、前記第２の秘密値と同じであることを特徴とする、請求項４９に記載の方法。
【請求項５４】
前記イベントは前記装置を改竄することを含むことを特徴とする、請求項４９に記載の方法。
【請求項５５】
前記識別認証コードを前記装置に表示するステップを更に含むことを特徴とする、請求項４９に記載の方法。
【請求項５６】
前記識別認証コードを検証者に送信するステップを更に含むことを特徴とする、請求項４９に記載の方法。
【請求項５７】
前記イベント状態データは複数のビットを含み、これら複数のビットはそれぞれの時間に関連しており、また時間固有値は前記第１の秘密値と前記それぞれの時間に関連する前記複数のビットとから誘導されることを特徴とする、請求項４９に記載の方法。
【請求項５８】
前記イベント状態データは前記動的値と前記第２の秘密値とから誘導されることを特徴とする、請求項４９に記載の方法。
【請求項５９】
認証装置に関連する識別認証コードを生成するためのシステムであって、時間的に変化する動的値とイベントの発生を示すイベント状態と前記認証装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するための認証コード発生器を含むことを特徴とするシステム。
【請求項６０】
認証装置によって識別認証コードを生成し、前記認証装置と時間的にほぼ同期する検証装置によって前記識別認証コードを検証するための方法であって、
イベント状態を認証装置内に記憶するステップと、
イベントに応じて前記イベント状態を修正するステップと、
時間値と前記イベント状態と前記装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップと、
前記識別認証コードを前記検証装置に送信するステップと、
前記検証装置によって前記識別認証コードを検証し、前記イベント状態を決定するステップと、を含むことを特徴とする方法。
【請求項６１】
認証とイベント状態通信とのためのシステムであって、
イベント状態データ値と、
正常な動作時に予め決められた仕方で前記イベント状態データ値を周期的に更新するための第１のイベント状態修飾子と、イベントの発生時に前記イベント状態データ値を更新するための第２のイベント状態修飾子と、
複数の秘密値と、
識別認証コードが生成されたときに発生する前記イベント状態データ値に応じてこれらの秘密値の一つを選択するためのセレクタと、
その秘密値に応じて識別認証コードを生成するためのコード発生器と、を含むことを特徴とするシステム。
【請求項６２】
前記イベント状態データ値の第１の部分は前記第１のイベント状態修飾子によって更新され、前記イベント状態データ値の第２の部分は前記第２のイベント状態修飾子によって更新されることを特徴とする、請求項６１に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本出願は、２００２年１１月２７日に出願された米国特許仮出願第６０／４２９，７５４号の３５Ｕ．Ｓ．Ｃ．§１１９（ｅ）の下での恩典を請求する。
【０００２】
本発明は、一般的には暗号法とセキュリティの分野に関する。より特定的には本発明は、識別認証コードの生成と検証とに関する。
【背景技術】
【０００３】
一般にセキュリティシステムは、物理的セキュリティシステムの場合には物理的場所または物体へのアクセスが許されるエンティティ（実体）の識別性、またはデータセキュリティシステムの場合にはコンピュータシステムまたはデータへの電子的アクセスが許されるエンティティの識別性を検証するために、識別性に基づく認証方式を使用する。このようなセキュリティシステムの一つの目標は、認可されていない関係者がアクセスを獲得できないように識別性を正確に決定することである。セキュリティシステムは、エンティティを認証するために数個の因子の一つ以上を単独で、または組み合わせて使用できる。例えば識別システムは、エンティティが知っている或るもの、エンティティがそうである或るもの、またはエンティティが持っている或るものに基づくことができる。
【０００４】
エンティティが知っている或るものの例は、コード語、パスワード、個人識別番号（「ＰＩＮ」）などである。一つの例示的なコンピュータに基づく認証方法は、特定のエンティティまたは利用者に固有である秘密の伝達を含む。認証を求めるエンティティは、エンティティの識別性を認証する検証者に秘密またはその秘密から誘導される値を送信する。典型的な実施形態ではエンティティは、識別情報（例えば利用者名）と秘密（例えばパスワード）の両者を検証者に伝達する。検証者は典型的には、秘密を各エンティティに関連付ける記録を所有している。もし検証者がエンティティに関する適正な秘密を受け取れば、そのエンティティは首尾よく認証される。もし検証者が正しい秘密を受け取らなければ、認証は果たされない。
【０００５】
エンティティがそうである或るものの例は、指紋、筆跡、眼の網膜パターン、および顔、体、器官の外観、サイズ、形状といった身体的、生物学的、心理的特徴（ここでは一般に生物学的特徴と呼ばれる）といった、人々に特有の特徴を含む。適当な生物学的特徴は、典型的には人の制御下になく、したがってそれらは部分的にでも複製することが困難であるので、意図している人に限らず誰にとっても提示することは困難である。検証者は典型的には、その特徴を観測でき、また特徴をエンティティに関連付ける記録とその特徴とを比較できる。生物学的特徴の観測は、一般に生体測定的測定と呼ばれる。
【０００６】
エンティティが所有する或るものの例は、利用者にとって一意である、または相対的に一意である一般にトークンと呼ばれる物理的またはディジタルの物体である。単純な例は、ドアで使用される通常の金属のキーである。実際にドアキーの所有は、ロック（錠）に関して利用者を認証して入室を許可する。同様に、例えばある特定の仕方でトークンがアクセスされるときに現れる固有の識別番号を有するある幾つかの特定の物理的電子的特徴を持つバンクカード（キャッシュカード）といったトークンの所有は、このタイプの因子であり得る。コンピュータ装置内に在る暗号化キーを使用して暗号化を実行するコンピュータ装置を含むトークンもまた、このタイプの因子と考えられるであろう。例えばトークンは、ＰＩＮまたは呼掛け値を含み得る利用者入力を受け入れて、カードに記憶された秘密暗号化キーで暗号化された結果を出力として与え得るであろう。
【０００７】
トークンはまた、あるいは代替として時間といった更なる入力情報を使用するかも知れず、あるいは例えば、結果が時間的には変化するが、秘密（例えばトークンと検証者だけによって知られている値）、しかしその秘密を所有しない観測者によって予測できない秘密を所有するエンティティにとって決定論的であるようなカウンタを使用する可能性もある。これらのシステムは一般に、エンティティを認証するために使用される認証コードを生成するために記憶された秘密を入力として使用して、ある計算を実行する。ある幾つかのシステムは、最終的にエンティティを認証する非予測可能認証コードを計算するために時間ベースの動的変数を使用するという点で時間ベースである。ここで「非予測可能」は、認証コードが関連の秘密またはそのコードを計算するためのアルゴリズムまたはそれら両者を知らない関係者によって予測可能でないことを意味する。一例の「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｕｓｅｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｅｍｐｌｏｙｉｎｇ  Ｄｙｎａｍｉｃ  Ｅｎｃｒｙｐｔｉｏｎ  Ｖａｒｉａｂｌｅｓ（動的な暗号化変数を使用する利用者認証のためのシステムおよび方法）」と題する米国特許第５，９３７，０６８号は、入力として３個の変数、すなわち現在時刻と、カードによって行われたアクセス要求の回数と、１アクセス要求ごとに更新される「秘密の動的暗号化キー」の組合せまたはサブセットを使用する。この場合トークンはまた、認証コードを伝達する前に利用者によって入力されたＰＩＮを検証する。
【０００８】
このような手法によって生成される認証コードの動的性質は、一定の認証コードの使用に本来付随する問題を回避するが、管理されていない、あるいは盗まれたトークンは攻撃に対して無防備のままに留まる。トークンへのアクセスを獲得する自称攻撃者は、トークンをそれらの操作方法を、および／またはその中に記憶された秘密を決定するために意図された高性能の分析にかけることができる。攻撃者は、関連する秘密、または認証コードを計算するためのアルゴリズム、またはそれら両者、を決定するためにトークンを調べてこのような分析を実行する可能性がある。それから攻撃者は、安全に保護された領域またはシステムへの物理的または電子的アクセスを不正に獲得するために、見たところ正当な認証コードを生成することができるかもしれない。多くの改竄防止ハードウエア設計は利用可能であるが、改竄防止を挫折させるために新しい攻撃が頻繁に開発されている。更に現在の改竄防止設計は、検証者、認証システム、システム管理者または他の関連当局にトークンが改竄されたという如何なる徴候も与えない。
【０００９】
改竄の検出に対する一つの手法は、Ｊｏｈａｎ  Ｈaｓｔａｄ、Ｊａｋｏｂ  Ｊｏｎｓｓｏｎ、Ａｒｉ  Ｊｕｅｌｓ、Ｍｏｔｉ  Ｙｕｎｇ「ｆｕｎｋｓｐｉｅｌ  ｓｃｈｅｍｅｓ：ａｎ  ａｌｔｅｒｎａｔｉｖｅ  ｔｏ  ｃｏｎｖｅｎｔｉｏｎａｌ  ｔａｍｐｅｒ  ｒｅｓｉｓｔａｎｃｅ（フンクスピール方式：従来の改竄防止に対する代替手段）」、２０００年のコンピュータと通信のセキュリティに関するＡＣＭ会議、１２５〜１３３ページに記述されている。Ｈaｓｔａｄ等は、幾つかの「フンクスピール方式」を説明しており、それによって装置は、改竄することが検出されたかどうかを敵対者に明らかにすることなく、改竄が発生したことを検証者に示すことができる。これらの方式は、一連のメッセージ認証コードの生成に向けられており、この場合改竄が検出された後には、メッセージ認証が果たされ得ない。与えられた一例ではメッセージ認証コードはディジタル署名方式に埋め込まれており、ここではディジタル署名は取引が装置によって承認されたかどうかを示すが、メッセージ認証コードは装置が改竄されたかどうかを示す。メッセージ認証コードそれ自身は、時間ベースの識別認証よりむしろ一連のメッセージ取引に向けられているので、識別認証コードとしては適当でない可能性がある。特にＨaｓｔａｄ等は、検証者による実質的な計算（例えば潜在的に長い一連の関数評価）または両関係者による実質的な計算（例えば非対称暗号化）または両関係者による実質的な記憶（例えば多くの１回ビット）なしで、極めて長期間に亘ってこれらの間で単一の認証コードを効率的に検証するための如何なる方法も提供していない。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、検証者が認証コードを効率的に検証できて、イベント状態の信号送出を識別できる、イベントの発生の徴候を識別認証コードの効率的計算に直接含めることによって、これらの欠点に取り組んでいる。
【課題を解決するための手段】
【００１１】
従来の手法は、認証コード内のイベント情報または認証コードの一部としてのイベント情報を伝達するための柔軟性を持たないが、本手法では認証コードは一つ以上の報告可能なイベントの発生に関する情報を検証者に伝達する仕方で生成される。報告可能なイベントは、認証方法の正常な動作に関連するイベントとは異なる（そして検証者に報告され得る）イベントである。こうして例えば、報告可能なイベントは、認証コードに関する要求を報告するイベントを含まないであろう。これに対して報告可能なイベントは、変則的な、異常な、顕著な、通常でないなどのうちの少なくとも一つであるイベントであり得るであろう。報告可能なイベントはまた、装置によって検出され得る、および／または装置によって、または装置に伝達され得る如何なる種類のイベントでもあり得る。例示的報告可能なイベントは、装置の改竄；装置によって検出される装置の外部のイベント；閾値を超える、または閾値未満の温度といった環境的イベント；静電気放電；高いまたは低いバッテリーパワー；特定場所における地理的存在；生体測定示度における信頼度レベル；等々を含む。報告可能なイベントはまた、認証システムのセキュリティが損なわれた可能性の、または認証装置が動作上の問題（例えば認証装置の状態）を持つか、発展させる可能性の徴候を与えることもできる。報告可能なイベントは、多数の過去のイベントの累積結果であり得る。報告可能なイベントはまた、装置の動作状態でもあり得る。
【００１２】
報告可能なイベントは、認証装置の状態（例えば改竄、低いバッテリーパワーなど）、認証システムのセキュリティ（例えば利用者の生体測定情報の強度、ＰＩＮ入力の精度、認証装置署名の検証）、利用者の状態（例えば移動または静止状態、ネットワークアクセス位置、施設内の位置など）、装置の位置（例えば地域、国、都市など）、あるいは装置が位置する環境（例えば温度、放射線レベルなど）に関する情報を含むことができる。一実施形態では報告可能なイベントは、認証装置の状態、認証システムのセキュリティ、利用者の状態、装置の位置、および装置が位置する環境のうちの少なくとも一つに関する情報を直接報告する。
【００１３】
一般に本発明の幾つかの態様において利用者または利用者の代わりの装置は、動的変数（例えば時間的に変化する）と利用者または装置に関連する秘密との両者に基づいて認証コードをアルゴリズム的に計算する。生成された認証コードは、観測者にとって非予測可能であるが、検証者によって検証可能である。認証コードはまた、部分的には他の任意の情報に、例えばＰＩＮ、パスワードおよび生体測定観測から誘導されるデータ、または利用者、認証装置または検証者に関連する情報のうちの一つ以上に依存することもできる。
【００１４】
認証システムのセキュリティは、報告可能なイベントの発生時に装置が特定の措置をとるときに改善される。一つの例示的実施形態では、もし攻撃者が装置を分解しようと、さもなければ装置を改竄しようと試みた場合に、装置が装置のイベント状態を伝達することによってこのようなイベントの発生（いったん装置によって検出された）を検証者に信号で知らせることが有用である。この例では改竄イベントは、少なくとも二つの可能なイベント状態を、すなわちＹＥＳ−改竄が発生した状態と、ＮＯ−改竄が発生しなかった状態とを持つ。改竄のタイプに関する情報または改竄が発生した時刻に関する情報といった他の情報も伝達され得る。報告可能なイベントの他の例は、環境的イベント（例えば高いまたは低い温度）、バッテリー電圧レベル、およびＰＩＮまたはパスワード入力の正確さを含む。
【００１５】
一実施形態ではイベントの発生は、認証コードで明示的に伝達される。例えば認証コードに含まれる一つ以上のビットは、イベントの発生を報告するために、すなわちイベント状態を報告するために専用にされ得る（またここでわれわれは、イベント状態を表す、伝達する、またはイベント状態から誘導されるデータをイベント状態データと呼ぶ）が、ここでイベント状態はイベント（単数または複数）の発生または非発生に関しての装置の状態に関する情報である。もう一つの実施形態では装置のイベント状態は、装置と検証者だけが通信からイベント状態を容易に決定し得るように暗示的に伝達され得る。警告されない攻撃者は当局による観測と逮捕とに導き得る措置をとる可能性がより高くなるので、イベントが検出されて伝達されたかどうかを装置へのアクセスを有する攻撃者がもし決定できなければ、好都合であり得る。ある幾つかの実施形態では装置は、イベントの発生が報告可能なイベントの発生に続いて、装置によって出力される識別認証コードで伝達されるように、イベントの発生時には異なって動作する。これは、複製を思いとどまらせる助けとなり得る。例えば変則的なイベントの警告を発している装置がコピーされると、「クローン」またはコピーされた装置もまたその変則的なイベントを報告するであろう。
【００１６】
一実施形態では認証方法は、トークンまたはキーフォッブといった利用者に提供されるハードウエア装置に組み込まれ得る。（他の可能性は以下に説明される。）更に装置は、例えば汎用コンピュータ、ハンドヘルドコンピュータ、電話、パーソナルディジタルアシスタント（ＰＤＡ）等々に上で、または他の或る仕方で実行されるソフトウエアとして、この方法を実行するためのソフトウエアプログラムを含むことができる。ある幾つかの実施形態では装置は、認証こと度を生成するために利用者がＰＩＮ、検証者識別子等々といった第２の秘密を入力することを可能にする。
【００１７】
一般に一態様で本発明は、イベント状態を装置内に記憶し、イベントに応じてイベント状態を修正し、動的値（例えば時刻値）とイベント状態と装置に関連する秘密とに少なくとも部分的に依存する認証コードを生成することによって識別認証コードを生成する認証装置に関する。こうして認証装置は、イベント状態に基づいて異なる識別認証コードを生成する。受信された認証コードを認証装置によって生成され得る可能な認証コードと比較することによって検証者は、利用者の識別性を認証できるばかりでなく、イベント状態も決定でき、それによって一つ以上のイベントが発生したかどうかを決定できる。
【００１８】
ある幾つかの実施形態ではイベント状態は、一つ以上の報告可能なイベントに関連している。ある幾つかの実施形態ではイベント状態は、報告可能なイベントに応じて修正される。ある幾つかのこのような実施形態ではイベント状態は、一つ以上の報告可能なイベントの状態を反映するイベント状態データの形で記憶される。こうしてイベント状態データは、イベント状態を伝達できる。
【００１９】
ある幾つかの実施形態では本方法は、イベントの報告が認証コードで伝達されたかどうかを装置へのアクセスを有する攻撃者が決定することができないように構成される。前に簡単に述べたように、イベント情報の通信は「隠された（コバート）」と呼ばれることができる。これに対してもしあるイベント情報が攻撃者または観測者によって推定され得るならば、この通信は「公然の（オバート）」と呼ばれる。隠された通信は、攻撃者が報告に気づくことなくイベントの発生を報告するために使用され得るので有益であり得る。公然の通信は、一般の観測者が状態情報について通知されることを可能にするという点で有益であり得る。イベント状態のある部分を隠された仕方で、他の部分を公然の仕方で通知することは可能である。
【００２０】
イベント状態情報を使用して識別認証コードを生成するためのシステムの実施形態は、イベント状態を認証装置に記憶するためのデータ記憶装置と、一つ以上の報告可能なイベントに応じてイベント状態を修正するためのイベント記録装置と、動的値とイベント状態と装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するための認証コード発生器と、を含むことができる。このような実施形態は、認証装置の一部（例えばトークン）または検証者の一部（例えば検証コンピュータ）またはその両者として含まれることができる。装置と検証者の両者に関してシステムは、マイクロプロセッサまたは他の汎用コンピュータといったコンピュータ上で動作するソフトウエアとして実現可能である。このシステムはまた、上述のようにハードウエアに実現されることも可能である。
【００２１】
一般に他の態様では検証者は、時間と装置に関連する秘密とイベント状態とに少なくとも部分的に依存する、装置によって生成される識別認証コードを含む認証情報を受信する。検証者は、受信された識別認証コードに応じて利用者の識別性を検証し、イベント状態を決定する。検証者は、そのイベント状態からイベントが発生したかどうかを決定できる。検証者は、決定されたイベント状態に応じて措置を取ることができ、例えば後刻の分析のためにイベント状態をログ（記録）すること、またはシステム管理者または関連当局に警告すること、あるいはその場所またはシステムに、異なるイベント状態が決定された場合に与えられるよりも更に限定されたアクセスを与えることができる。認証情報はまた、利用者識別子とＰＩＮとパスワードと生体測定示度と他の更なる認証情報とのうちの一つ以上を含むことができる。
【００２２】
ある幾つかの実施形態では検証者は、時間に関連する動的値とイベント状態とに少なくとも部分的に依存する予期される識別認証コードを生成する。イベント状態は、以下更に説明されるイベント状態秘密と、一つ以上のビットが時間間隔に関連するイベント状態秘密から誘導されるビットと、を含むことができる。
【００２３】
一般に他の態様では本発明は、例えば認証装置および／または検証者によって識別認証コードを生成するためのシステムと方法とに関する。先ず装置を説明すると、この装置は、認証装置に関連する第１の秘密値と、イベント状態に関連する第２の秘密値とを記憶している。装置はまた、時間的に変化する動的値を生成する。装置は、第２の値と動的値とから時間に関連するイベント状態データを誘導する。装置は、第１の値とイベント状態データとから時間に関連する値を誘導する。それから装置は、入力として時間固有値を使用して識別認証コードを計算する。同様にして検証者は、イベント状態データに依存する一つ以上の可能な認証コードを決定するようにこれらの方法ステップを実現できる。
【００２４】
一実施形態ではイベント状態データは、各々が時間と関連するビットを含んでおり、この場合、時間固有値は第１の値と、時間に関連するそれぞれのビットとから誘導される。このような実施形態では、ビットの値に依存して時間に関連する二つの可能な状態が存在する。もしあるイベントが発生すれば、これらのビットは、生成された認証コードがこれら二つの可能な選択のうちの他方であるように検出されたイベントに応じて修正される。任意選択的に第２の秘密値（イベント状態に関連する）はまた、イベント状態ビットの後刻の生成が正常とは異なる値を持つように、検出されたイベントに応じて修正され得る。第１の秘密値は、第２の秘密値と同じであり得るか、異なる値であり得るか、部分的にオーバーラップし得る。
【００２５】
一実施形態ではイベント状態データは、それぞれの時間に関連する多数のビットを含んでおり、この場合、時間固有値は第１の値と、それぞれの時間に関連するこれら多数のビットとから誘導される。
【００２６】
一般に他の態様では、認証装置に関連する識別認証コードを生成するためのシステムは、認証コード発生器を含む。認証コード発生器は、時間的に変化する動的値とイベントの発生を示すイベント状態と認証装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成する。このようなシステムの一実施形態は、マイクロプロセッサまたは汎用コンピュータといったプロセッサ上での実行のためのソフトウエアプログラムとして実現される。本システムは、認証装置または検証者または他のシステムに含まれ得る。
【００２７】
本発明の前述および他の目的と態様と特徴と利点は、下記の説明と請求項から更に明らかになるであろう。
【発明を実施するための最良の形態】
【００２８】
図１を参照すると、本発明による認証システム１００の一実施形態で検証者１０５は、例示的利用者１１０の識別性を確実に認証することを助けるために使用される。ここで使用されるように「認証する」は、利用者の識別性を検証することを意味し、したがって「認証する」と「検証する」は、全体を通じて交換可能に使用され得る。また本明細書は、簡単のために「利用者」の認証を論じるが、「利用者」が例えば人、動物、装置、機械またはコンピュータといった認証を必要とする如何なるエンティティ（実体）をも意味することは理解されるべきである。単一の利用者１１０の包含することは例示的であって、典型的には検証者１０５は非常に多くの利用者１１０を検証するために使用されるであろう。同様に単一の検証者１０５の包含することは例示的であって、典型的には利用者１１０は非常に多くの検証者１０５のうちの一つ以上によって検証される認証の試みを持つことができる。ある幾つかの実施形態では単一の検証者１０５が一つの利用者１１０を検証できるが、他の実施形態ではこの仕事を実行するために二つ以上の検証者が共に必要とされる。
【００２９】
検証者１０５は、ここで説明される機能を実現する如何なる種類の装置であっても良い。一実施形態では検証者１０５は、例えば一企業内の非常に多くの利用者の認証を可能にするためにプロセッサ、メモリなどを含むサーバークラスのコンピュータ上で動作するソフトウエアとして実現される。検証者１０５はまた、デスクトップコンピュータ（卓上計算機）、ラップトップコンピュータ、専用装置、またはパーソナルディジタルアシスタント（ＰＤＡ）の上で動作するソフトウエアとして実現されることもあり得る。例えば検証者１０５は、おそらくは同じまたは異なるコンピュータ上で一つ以上の他のコンピュータプログラムと対話しながら、汎用コンピュータ上で動作するソフトウエアプログラムとして実現されることもあり得る。検証者１０５機能の一部または全部は、ハードウエアに、例えば特定用途向け集積回路（ＡＳＩＣ）などに実現されることもあり得る。なお更なる実施形態では検証者１０５は、セルラー電話（携帯電話）に、またはセルラー電話に埋め込まれていてセルラー電話の回路と対話することに適応した特殊ハードウエアに実現されることもあり得る。本発明の精神から逸脱することなく、他のサイズ、形状および実施形態が可能である。
【００３０】
認証は、限定なしに、アクセスまたは特権を与えること、措置をとること、またはこれら二つのある組合せを可能にすることを含む一つ以上の措置の遂行という結果になり得る。アクセスは限定なしに、物理的場所、通信ネットワーク、コンピュータシステムなどへのアクセス；金融サービス・記録、健康サービス・記録などといったサービスへのアクセス；または情報またはサービスのレベルへのアクセスを含む。利用者１１０と検証者１０５は、物理的に互いに近くに在ることも、遠く離れていることもあり得る。
【００３１】
図示のように利用者１１０は、利用者認証装置１２０と通信することができる。利用者認証装置１２０は、利用者１１０を認証するために使用される情報を与える。利用者認証装置１２０は、任意選択的にユーザインタフェース１３０を与えることができる。利用者１１０と利用者認証装置１２０との間の通信は、このユーザインタフェース１３０を介して行うことができる。ユーザインタフェース１３０は、入力インタフェース、出力インタフェースまたは両者を備えることができる。入力インタフェースは、利用者１１０が利用者認証装置１２０に情報を伝達することを可能にする。入力インタフェースは、利用者入力を受け取るための如何なる機構であってもよく、また限定なしに、キーパッドまたはキーボード；一つ以上の押しボタン、スイッチまたはノブ；タッチスクリーン（接触感応画面）；ポインティング装置または押圧装置；トラックボール；音響、音声または筆跡を捕捉するための装置；生体測定入力（指紋、網膜または音声特徴といった）を捕捉するための装置；等々を含むことができる。出力インタフェースは、利用者認証装置１２０が利用者１１０に情報を伝達することを可能にし、また限定なしに、ＬＣＤディスプレイまたはＬＥＤディスプレイといった英数字または図形をサポートする表示装置；電気泳動表示装置；一つ以上の光源；拡声器（ラウドスピーカー）、音響または音声発生器；振動インタフェース；等々を含む、利用者に情報伝達するための如何なる機構でも良い。ある幾つかの実施形態では利用者１１０は、ユーザインタフェース１３０を介して利用者認証装置１２０に、識別情報（利用者識別子、またはＰＩＮ、またはパスワード、または指紋、網膜パターンまたは音声サンプルといった生体測定特徴）を与え、あるいは所有物（物理的キー、ディジタル暗号化キー、ディジタル証明書または認証トークン）を与える。
【００３２】
利用者認証装置１２０は、利用者認証装置１２０が確実な認証のために利用者認証装置１２０に必要とされる機能を実行することを条件として、本発明の種々の実施形態において種々の形をとりうる。利用者認証装置１２０は、幅広い種々の形と形状因子とを有するパッケージに実現され得る。例えば利用者認証装置１２０は、クレジットカードのサイズと形状の装置であることができ、あるいは遥かに小さいことも遥かに大きいこともあり得る。利用者認証装置１２０のクレジットカードサイズの一実施形態は、オンボードメモリと電源と小型ＬＣＤディスプレイとを有するマイクロプロセッサを含む。この実施形態は任意選択的に、ＰＩＮ入力用、または認証情報要求の入力用、または他の入力用または装置１２０との対話用のキーパッドまたはボタンを含む。他の実施形態ではクレジットカードサイズの装置１２０は、電力および／またはインタフェースを提供するもう一つの装置に設置され得る「スマートカード」として使用されるオンボードメモリを有するプロセッサを含む。更に他の実施形態ではクレジットカードサイズの装置１２０は、その片側に磁気ストリップまたは他のデータ記憶装置を含むクレジットカードといったカードである。他の実施形態では利用者認証装置１２０は、「キーフォブ」、すなわちキーリングに取り付けられるようにサイズと形状が決められたディスプレイとバッテリーを有する更に小型の装置である。更に他の実施形態では利用者認証装置１２０は、コンピュータ、または電話、またはＵＳＢドングルといった他の装置と通信する周辺装置である。なお更に他の実施形態では利用者認証装置１２０は、デスクトップコンピュータ、ラップトップコンピュータまたはパーソナルディジタルアシスタント（ＰＤＡ）であり得る。例えば認証装置１２０は、おそらくは同じまたは異なるコンピュータ上で一つ以上の他のコンピュータプログラムと対話する、汎用コンピュータ上で動作するソフトウエアプログラムとして実現され得る。なお更なる実施形態では利用者認証装置は、セルラー電話、またはセルラー電話に埋め込まれていてＳＩＭカードといったセルラー電話の回路と対話することに適応した特殊ハードウエアであり得る。この例および他の例では認証装置１２０は、互いに通信する二つのコンポーネント、例えば無線通信装置（例えば携帯電話）とＳＩＭカードといった取外し可能なアクセサリとを含むことができる。本発明の精神から逸脱せずに、他のサイズ、形状および実施形態が可能である。
【００３３】
本発明の実施形態が使用され得る例示的認証装置は、マサチューセッツ州ベドフォードのＲＳＡ  Ｓｅｃｕｒｉｔｙ  Ｉｎｃ．から入手可能な認証トークンのＲＳＡ  ＳＥＣＵＲＩＤファミリーのメンバーである。ある幾つかのＲＳＡ  ＳＥＣＵＲＩＤハードウエア装置は例えば、生成された認証コードを利用者に表示し、それから利用者はこの表示された認証コードを検証者への伝達のためにコンピュータに伝達する。例えば一実施形態ではこの情報は数値である。
【００３４】
ある幾つかの実施形態では利用者認証装置１２０は、利用者１１０を認証するために使用される秘密を記憶している。典型的には記憶された秘密は、認証装置と検証者にだけ利用可能である情報である。例えば一実施形態ではこの情報は数値である。記憶された秘密は、利用者１０に関する認証コードを生成するために使用される。利用者認証装置１２０はまた、例えばもし動作しているクロックで実現されれば現在時刻であり得る動的データを記憶またはアクセスできる。利用者認証装置１２０はまた、以下更に説明されるように他の情報を与えることも、あるいは他の計算または結合関数を実行することもできる。例えば一実施形態では秘密を記憶することに加えて装置１２０は、利用者１１０から個人的に選択された秘密（ＰＩＮまたはパスワードといった）を受け取り、利用者１１０から受け取られた秘密に応じた動的な非予測可能認証コードと記憶された秘密と現在時刻とを生成する。ここで例えば非予測可能認証コードは、利用者１１０から受け取られた秘密と記憶された秘密と認証コードを生成するアルゴリズムへのアクセスを持たない如何なる人にも予測可能ではない。利用者認証装置１２０はまた任意選択的に、検証者識別情報といった他の入力を受け取ることができ、また認証コードの生成時に、そのおよび／または他の付加的情報を使用できる。
【００３５】
例示的利用者１１０は任意選択的に（そして実施形態に依存して）、通信端末１４０への直接アクセスと、利用者認証装置１２０を介しての通信端末１４０への間接アクセスとのうちの一つまたは両方を持っている。通信端末１４０は、限定なしに、カード読取装置；装置の容器、クレードルまたはホールダー；パソコン；電話；パーソナルディジタルアシスタント（ＰＤＡ）；ネットワークインタフェースカード；無線トランシーバ；等々を含む、種々の実施形態において種々の形をとることができる。認証プロセス時に利用者１１０は、情報を直接、装置１２０だけに、または端末１４０だけに伝達でき、または装置１２０にも端末１４０にも伝達できず、あるいは装置１２０と端末１４０の両者に伝達できる。同様に通信端末１４０は、直接入力を利用者１１０から、利用者認証装置１２０から、または両者から受信できる。図示のように利用者１１０は任意選択的に、通信端末１４０の実施形態に依存して存在し得る端末ユーザインタフェース１４５を介して通信端末と直接通信する。装置ユーザインタフェース１３０と同様に端末ユーザインタフェース１４５は、入力インタフェースまたは出力インタフェースまたはその両者を含むことができる。入力インタフェースと出力インタフェースは、装置ユーザインタフェース１３０に関して前に説明された一つ以上の形、あるいは他の形をとることができる。
【００３６】
通信端末１３０は任意選択的に、端末１４０と利用者認証装置１２０との間の通信のために装置／端末インタフェース１６０を備えることができる。一実施形態ではこのインタフェースは、標準的または専用のプロトコルを使用する、端末１４０と装置１２０との間の有線または無線通信チャネルの形をとることができる。例えば装置１２０がスマートカードであって端末１４０がカード読取装置を含む実施形態では通信インタフェース１６０は、スマートカードと読取装置との間の有線直列通信リンクであり得るであろう。装置１２０が無線通信能力を有するトークンであって端末１４０が無線トランシーバを含む他の実施形態では、インタフェース１６０は無線リンクであり得るであろう。
【００３７】
通信端末１４０は、装置１２０のための装置インタフェース１６０を備えることなく、端末インタフェース１４５を介してユーザインタフェース１３０を備えることができる。例えば端末１４０は、利用者１１０が認証情報を検証者１０５に伝達するために使用する電話であり得る。このような実施形態では利用者認証情報は、一連の英数字のディジットに関連するトーンとして表され得る。この実施形態では利用者１１０は、検証者１０５との通信接続を確立するために電話番号をダイアルし、検証者１０５に英数字の利用者認証情報を伝達するために一連のキー押下を実行する。
【００３８】
端末１４０と認証装置１２０は、各々一緒にまたは別々に他の装置に統合されることができ、同様に端末１４０と装置１２０とそれぞれのインタフェース１３０、１４５、１６０の機能は、分離可能なコンポーネントに実現され得る。例えば認証装置１２０は、ハンドヘルドコンピュータ（図示せず）への追加カードとして実現され得る。このハンドヘルドコンピュータは、ユーザインタフェース１３０を備え、または無線ネットワークインタフェースの形の端末１４０も備える。同様に携帯電話は、端末１４０とユーザインタフェース１３０の機能を備えることができるが、携帯電話または、ＳＩＭカードといったプラグインコンポーネントは、認証装置１２０の機能の一部または全部を備える。
【００３９】
通信端末１４０は、通信チャネル１７０を介して検証者１０５に情報を伝達する。通信チャネル１７０は、利用者１１０の識別性を認証するために必要とされる情報の検証者１０５への伝達を可能にする如何なる方法および／またはインタフェースであって良い。通信端末１４０は、利用者１１０または装置１２０またはその両者によって生成された情報を通信チャネル１７０上で検証者１０５に伝達することができる。通信端末１４０と検証者１０５は、標準の電話回線と、ＬＡＮまたはＷＡＮリンク（例えば８０２．１１、Ｔ１、Ｔ３、５６ｋｂ、Ｘ．２５）と、広帯域接続（ＩＳＤＮ、フレームリレー、ＡＴＭ）と、無線接続とを含む種々の接続を経由する通信チャネル１７０を実現できる。通信端末１４０と検証者１０５との間の接続は、種々の通信プロトコル（例えばＴＣＰ／ＩＰ、ＩＰＸ、ＳＰＸ、ＮｅｔＢＩＯＳ、Ｅｔｈｅｒｎｅｔ（登録商標）、ＲＳ２３２および直接非同期接続）を使用して確立され得る。検証者１０５は、通信端末１４０から受信された情報を処理する。検証者１０５は、利用者１１０の識別性を認証することに応じて措置を実行することができる。例えば検証者１０５は、データへのオンラインアクセスまたは限定された領域または物理的項目への物理的アクセスを与えることができる。
【００４０】
通信チャネル１７０上を伝達された認証コードは、各利用者認証の試みに関して動的で予測できない（認証コードを、および／または前の利用者認証の試みへのアクセスを生成するために使用されたアルゴリズムおよび／または秘密の知識を持たない観測者にとって予測できない）ように設計される。ある幾つかの実施形態ではこのアルゴリズムは、たとえアルゴリズムが攻撃者に知られても認証コードが非予測可能であるように選択される。またアルゴリズムは、非常に多くの利用者に関する大きなセットの前の認証の試みの知識が攻撃者に予測可能な認証コードを作らないように選択され得る。認証コードはまた、以下更に説明されるようにイベント状態情報を伝達することもできる。
【００４１】
各利用者認証の試みに関して検証者１０５は、利用者認証情報を受信して、受信された情報を検証する。以下更に説明されるように、ある幾つかの実施形態では検証者はまた、一つ以上のイベントが発生したかどうかを示すイベント状態を、また任意選択的に幾つかの場合にはイベントの性質を示すイベント状態を決定する。ある幾つかの実施形態では利用者を認証するために検証者１０５は、利用者認証装置１２０によって実行されるアルゴリズム的計算と実質的に同じであるアルゴリズム的計算を各利用者認証の試みのために実行する。ある幾つかの実施形態では検証者は、利用者１１０を首尾よく検証できる多数の認証コードが可能であるように、多数の可能なイベントとイベント状態とに関して認証コードを決定することができる。検証者１０５は、何か一致があるかどうかを決定するために通信チャネル１７０を介して受信された認証情報と検証者１０５によって生成された認証情報とを比較する。もし一致があれば、検証者１０５は、決定されたイベント状態に依存して利用者１１０の識別性を認証できる。一実施形態では受信された利用者情報と生成された利用者情報とが一致しないときは、利用者認証の試みは失敗となる。ある幾つかの実施形態では検証者は、通信チャネル１７０を介して通信端末１４０に肯定応答または否定応答（肯定的受信通知または否定的受信通知）を伝達することができ、また端末１４０は装置１２０に、または利用者１１０に直接、肯定応答を伝達できる、またはできない。利用者１１０を首尾よく検証できる複数の認証コードが可能である更なる実施形態では、検証者１０５は先ず、予期されるイベント状態に関する予期される認証コードを決定し、もし検証者が異なる認証コードを受信すれば、認証装置が首尾よく検証されたかどうかを示す前に、他の可能なイベント状態に関して認証コードを決定して比較する。例えば生成値増分（以下更に説明される）と、検証者１０５と認証装置１２０との間の不正確に同期した時間クロックとに起因して、他の可能な認証コードも存在し得ることに留意のこと。
【００４２】
一実施形態ではイベント発生の検証者による決定は、アクセスの完全な否認よりもむしろ利用者１１０の活動に対する制限を誘発する。この制限は、前の認証の試み以降に発生したイベントのタイプに基づくことができる。例えば利用者のＰＩＮが指定された回数より多く不正確に認証トークに入力されたときに、高度に内密な情報へのワークステーション利用者のアクセスは、除去され得るが、非内密情報へのアクセスは継続して許可される。
【００４３】
利用者認証装置１２０は、イベントが発生したかどうかを示すイベント状態データを保持できる。イベント状態が保持されている報告可能なイベント（単数または複数）は、装置の正常動作時には発生しない異常なイベントである可能性がある。このような変則的なイベントの例は、装置を改竄すること、環境的イベント（例えば異常温度）、不正確な電力供給、放射線検出などを含む。報告可能なイベントの他の例は限定なしに、装置の場所（例えば装置は特定の建物、部屋、都市、国、地域またはそれらの何らかの組合せに在る）；装置（例えばもしカード、トークンなどであれば）が読取装置に挿入されている時間の長さ（おそらくは、管理されていない装置を利用者が読取装置内に放置したことを示す）；認証の品質（例えば成功した認証に先立つ多数回のＰＩＮエラー、生体測定一致の強さなど）；装置署名またはパターン（例えば装置が検証者によって検査され得るパターンまたは一連のビットを生成して、イベント状態がこのパターン内に現在ビットを表示する）；関連する認証（例えば検証者は、認可された仕方で要求者が入力した物理的場所からネットワーク資源へのアクセスが要求されているかどうかを決定できる）；記憶された秘密の位置（例えばイベント状態は承認されたハードウエア装置（例えばカード、トークンなど）内に記憶された秘密が存在するか、あるいは転送されたか（例えばラップトップといったソフトウエア容器にダウンロードされたか）どうかを示す）を含むことができる。イベント状態データのサイズは、可能なイベント状態の数に依存し得る。例えば二つのイベント状態に関しては単に１ビットが必要とされる。７個の状態に関しては３ビット、以下同様である。したがって一例として地理的場所を取れば、可能な７箇所のうちの一つを示すために３ビットが使用でき、あるいは経度／緯度を示すためには遥かに多数のビットが使用され得る。
【００４４】
イベントの発生は、利用者人書装置１２０によって保持されるイベント状態の変化という結果をもたらし、高い確率で利用者認証装置１２０によって生成される認証コードが、さもなければ検証者１０５によって予期されるものとは異なるであろうという更なる結果を伴う。検証者１０５は、受信された識別認証コードが一つ以上のイベントに関連しているかどうかを決定し、もしそうであれば、管理者への警告、制限されたアクセスなどといった適当な措置をとることができる。
【００４５】
イベント状態は、検証者にとって特定の意味を持つ必要はない。効率のために検証者は、どのイベント状態（単数または複数）が最も可能性が高いかを決定し、最初にその最も可能性が高いイベント状態（単数または複数）に関連する認証コードによって認証を検査することができる。検証者は、信号で知らされているイベント状態が有効であるか（例えば予期されているか）、または無効であるか（例えば予期されていないか）どうかを決定するために最も可能性の高いイベント状態情報によって認証コードを検証できる。更にイベント状態の解釈は、検証プロセス以外で遂行され得る。一実施形態ではイベント状態情報は、そのイベント情報がどのようなイベントを、例えば改竄、低いバッテリーなどを信号で知らせているかを決定するために、検証者ではないエンティティによって分析され、解釈される。検証者は、イベント状態を解釈できるサービスにイベント状態情報を伝達することができる。
【００４６】
検証者が認証コードを可能性の高い個別のイベント状態とのそれらの対応に関して検査するとき、検証者の動作の効率は可能性の高いイベント状態の数に依存する可能性がある。例えばもし可能性の高いイベント状態が二つしかなければ、検証者はせいぜい２回の検査動作を実行すればよいが、可能性の高いイベント状態が１０個あれば、検証者は１０回もの検査動作を実行する可能性がある。検証者は、この仕方で非常に多くのイベント状態に適応できる可能性がある。しかしながらある幾つかの実施形態では検証者は、認証コードがイベント状態に関して検証者にヒントを与えることができるので、多数のイベント状態に適応できる。他の実施形態ではイベント状態は、さもなければすべての可能性の高い個別のイベント状態を検査することなしに認証コードから回復され得る仕方で与えられ得る。このような実施形態では検証者の動作の効率は、このようなイベント状態の数には依存しない可能性がある。
【００４７】
各可能性の高いイベント状態は異なる認証コードに対応し得るので、ランダムな認証コードが検証者によって受け入れられる確率は、可能性の高いイベント状態の数が増加するにつれて、特に認証コードの長さが一定であれば、増加する可能性がある。したがってランダムな認証コードが受け入れられる確率を十分に小さく維持するために、可能性の高いイベント状態の数が増加するにつれて認証コードの長さを増加させることは賢明であり得る。例えば１０個の可能性の高いイベント状態が存在すれば、認証コードの長さは数字１桁分だけ増やされ得る。
【００４８】
後述の実施形態ほど多くのセキュリティの利点を持たない単純な例として一実施形態では、利用者認証装置１２０は、イベント状態データ記憶を維持している。この例ではイベントの発生の前には、イベント状態データ記憶はゼロに等しい。イベント状態データ記憶の内容は、検証者に伝達される第２の認証コードを形成するために装置１２０によって生成される第１の認証コードに結合（例えば加算）される。最初のうちは、イベント状態は認証コードに如何なる変化も起こさない。ある特定のイベントの発生時に、イベント状態データ記憶は１００になるように修正される。一実施形態では特に、認証装置１２０は、認証装置１２０のケースの開放によって駆動されるスイッチを含むので、もし装置１２０が開かれると、このスイッチが割り込みを起こし、これは認証装置１２０内のプロセッサにイベントデータ記憶の内容を１００に変更させる。第２の認証コードがイベントデータ記憶の内容を第１の認証コードに加算した結果であるとき、この後に生成される認証コードは予期される認証コードとはちょうど１００だけ異なるであろう。検証者は、受信された認証コード（すなわち第２の認証コード）が最初に予期された認証コードではないことを直ちに認めるであろう。検証者は、受信された認証コードが１００という値だけ予期されたものとは異なることも認めるであろう。それから検証者は、イベント状態データの変化を誘発するイベント（この場合は認証装置の開放）が発生したと推断するであろう。更なる実施形態では、異なるイベントは認証コードを異なるように変化させる（例えば１、１０などを加算する）可能性がある。これらの実施形態では、異なるイベントは結果として得られる認証コードに依存すると認められ得る。以下更に述べられるようにある幾つかの手法は、イベントが発生したかどうかを検出者が決定することをより容易にできるが、イベント発生が検出されたことを攻撃者が決定することを遥かに困難にする。スイッチは、限定なしに、分離可能な接触表面、または押しボタンスイッチ、ロッカスイッチなどといった任意の形式のリミットスイッチを含めて、認証装置１２０が開放されるか、さもなければ改竄された場合に状態変化を与える如何なる手段であってもよい。
【００４９】
一実施形態では利用者１１０を認証して認証装置１２０のイベント状態を決定するために検証者１０５は、利用者認証装置１２０によって実行されるアルゴリズム的計算の一部または全部を「反転する」アルゴリズム的計算を受信された認証コードに対して実行する。単純な例では利用者認証装置１２０は、利用者認証装置１２０によって記憶された秘密と利用者入力のＰＩＮとをアルゴリズム的に結合することによって認証コードを生成する。この例で利用者を検証するために検証者は、その記録から利用者に関連するＰＩＮと利用者の認証装置１２０に記憶された秘密とを検索する。検証者１０５は、例えば受信された認証コードから利用者のＰＩＮを減算する、および／またはＸＯＲする（排他的論理和をとる）ことによってこの結合演算を反転する。検証者１０５は、ＰＩＮ除去後の結果を利用者認証装置１２０に記憶された秘密の値と、または記憶された秘密を使用して装置１２０によってその時に生成されたはずの値と比較する。もしこれらが一致すれば、利用者は認証される。もしこれらが一致しなければ利用者認証は不成功となる。ある幾つかの実施形態では検証者１０５は、公開キー暗号化といった対称キー暗号化手法または非対称キー暗号化手法を使用して利用者認証装置１２０によって暗号化された値を復号する。ある幾つかの実施形態では検証者１０５はまた、一つ以上にイベントが発生したかどうかを示す入力によって認証コードを計算する。他のバージョンでは検証者１０５は、イベントが発生したかどうかを示し、またそのイベントに関する更なる情報を示す入力によって認証コードを計算する。
【００５０】
他の実施形態では利用者１１０の第１の認証は、利用者１１０によって認証装置１２０に供給された情報に基づいて利用者認証装置１２０によって実行される。例えば利用者によって供給される情報は、ＰＩＮまたはパスワードまたは生体測定情報であり得る。装置１２０は、この第１の認証を単独で、または他の装置と共同で実行できる。もし第１の認証が認証装置１２０によって首尾よく検証されれば、装置１２０は検証者１０５によって検証される識別性認証コードを生成する。一実施形態では第１の認証の強度は検証者１０５によって検証される認証コード内のイベント状態として伝達される。例えばイベント状態は、生体測定要素の一致の程度を反映することができる。更なる実施形態では第１の認証は、利用者１１０の面前で行われるローカルな認証である。
【００５１】
図２を参照すると、図１の利用者認証装置１２０と検証者１０５との一実施形態では、認証コード２９０を生成するために結合関数２３０によって種々の値が結合される。一般に結合関数２３０は、利用者認証装置１２０によって記憶またはアクセスされたデータ２３５に基づいて認証コード２９０を生成する。図示のようにこのような装置データ２３５は、利用者認証装置１２０に関連する装置秘密（Ｋ）と、利用者認証装置１２０によって生成された動的な時間的に変化する値（Ｔ）と、一つ以上のイベントの発生を表すイベント状態（Ｅ）とを含む。
【００５２】
装置データ２３５の他の例は、利用者認証装置１２０の製造日時、最後の認証コードの生成以降の時間の長さ、利用者認証装置１２０の製造場所（例えば緯度と経度）の符号化、認証コードの生成時における利用者認証装置１２０の場所の符号化（特定的または一般的に）（例えばＧＰＳまたは拡張ＧＰＳを使用して）、装置署名またはパターン、装置タイプ（例えばハードウエアまたはソフトウエア）、またはこれら他の量の一つ以上の任意の組合せを含む。結合関数２３０はまた、利用者に関する認証コード（Ａ）２９０を生成するために、利用者データ（利用者データ（Ｐ）としてファントム図で示されている）または検証者データ（検証者識別子（Ｖ）としてファントム図で示されている）と生成値（生成値（Ｎ）としてファントム図で示されており、以下更に説明される）のうちの一つ以上を任意選択的に使用できる。利用者データの他の例は、網膜撮影、指紋といった生体測定情報；社会保障番号、生年月日（おそらくは誕生時刻を含む）といった識別情報；および一意の名前と番号、またはその他の情報；から誘導されるデータを含む。検証者データは、名前、番号、ＩＰアドレス、またはプロセッサ通し番号といった検証者１０５を識別する情報を含むことができる。生成値Ｎは、指定された時間内に要求される認証コードの数を示す。
【００５３】
結合関数２３０は、コンピュータによって、例えば埋め込みプロセッサ上で動作するファームウエアによって実行される命令として実現され得る。他の実施形態では結合関数２３０は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル（利用者書き込み可能）ゲートアレイまたは他の倫理装置といった専用ハードウエアに実現され得る。更に他の実施形態では結合関数２３０は、汎用デスクトップ、ラップトップ、またはハンドヘルドその他のコンピュータ装置の上で動作するソフトウエアアプリケーションプログラムとして実現可能である。
【００５４】
図は一般に、認証コード２９０を生成するための多数の例示的実施形態を示している。結合の仕方と結合関数２３０に与えられる入力とがこれらの例から変わり得ることは理解されるべきである。一実施形態では認証コード２９１は、記憶された秘密（Ｋ）と動的値（Ｔ）とイベント状態とから構成される。
【００５５】
結合関数２３０と結合関数の要素は、装置１２０、通信端末１４０またはこれら二つの組合せに実現され得る。
【００５６】
記憶された秘密（Ｋ）は、装置１２０と一意に関連する数値といった１単位の情報である。装置１２０の典型的なハードウエア実施形態では、秘密（Ｋ）は装置から秘密（Ｋ）を抽出することが極めて困難であるように装置１２０内に作り込まれて記憶される。装置１２０の典型的なソフトウエア実施形態では、秘密（Ｋ）はデータ記憶に記憶され、好ましくは確実にまた装置にとってアクセス可能に記憶される。装置１２０にとってアクセス可能であることに加えて、秘密（Ｋ）はまた、検証者１０５にとってアクセス可能な確実なデータ記憶装置に記憶される。ある幾つかの実施形態では装置１２０だけが秘密（Ｋ）へのアクセスを持ち、検証者は秘密（Ｋ）の関数へのアクセスを持っており、あるいはこの逆の場合がある。ある幾つかの実施形態では装置１２０の秘密（Ｋ）は、検証者１０５によって記憶された値に対応するが、それと同じではなく、例えばこの場合、各々が公開キー暗号システムにおける１対のキーのうちの一つを持っている。他の実施形態では秘密（Ｋ）は、下記のようにマスター秘密（ＫMASTER）から誘導され得る。ある実施形態では秘密（Ｋ）は、秘密値が観測された認証コードとして結果的に得られたものであるかどうかを見るために各可能な秘密値を試みることによってその秘密を、結合関数２３０の出力へのアクセスを持った攻撃者が推測することが困難であるように、非常に多くの可能な値から選択された値である。特定の一実施形態では秘密（Ｋ）は長さが１２８ビットである数のグループ（すなわち２128−１以下の負でない数の集合）から選択される。
【００５７】
動的値（Ｔ）は、時間的に変化する１６進または１０進の数値といった１単位の情報である。一実施形態では動的値（Ｔ）は、特定の開始時刻と終了時刻とによって画定される特定の予め決められた時間間隔と一意に関連している。時間隔は、如何なる特定の長さであることも要求されないし、すべての時間間隔が同じ長さであることも要求されない。唯一の要件は、時間間隔スケジュールが装置１２０と検証者１０５との間でおおよそ同期していることである。装置１２０と検証者１０５とを同期させるために使用され得る例示的方法は、「Ｍｅｔｈｏｄ  ａｎｄ  Ａｐｐａｒａｔｕｓ  ｆｏｒ  Ｓｙｎｃｈｒｏｎｉｚｉｎｇ  Ｇｅｎｅｒａｔｉｏｎ  ｏｆ  Ｓｅｐａｒａｔｅ，  Ｆｒｅｅ  Ｒｕｎｎｉｎｇ，  Ｔｉｍｅ  Ｄｅｐｅｎｄｅｎｔ  Ｅｑｕｉｐｍｅｎｔ（別個の自由動作、時間依存性の装置の生成を同期させるための方法および装置）」と題する米国特許第４，８８５，７７８号に記載されている。時間間隔は、１秒、１分、１時間、１月、１年またはその他都合の良い如何なる時間の長さでも持つことができるであろう。より短い時間間隔からの増加したセキュリティと、装置１２０、検証者１０５の処理能力、ならびに認証装置１２０がコードを検証者に与えるためにかかる時間との間にはとるべきバランスが存在する。例えばもし装置１２０が通信端末にタイプ入力する利用者のために認証コードを表示すれば、１分の時間間隔が使用され得る。一実施形態では特定の時間間隔を識別する動的値（Ｔ）は、その特定の時間間隔内で生成されるすべての認証コードに関して一定に留まる。
【００５８】
例えば一実施形態では１分という一定の時間間隔が使用され、動的値は１９８０年１月１日真夜中以降の分の数である。もう一つの実施形態では１時間という時間間隔が使用され、動的値は１９９９年１２月１５日正午以降の秒数である。この秒数は、各時間間隔の最初の秒に関して決定される。このような実施形態ではカウントが始まる時刻は、装置１２０と検証者１０５との間で共有される秘密であることが可能である。間隔期間の長さ（単数または複数）もまた、装置１２０と検証者１０５との間で共有される秘密であり得る。
【００５９】
もう一つの実施形態では、各時間間隔の長さは１時間である。１日に２４時間存在するので、各時間は１から２４の値といった一意の値によって識別でき；１年の３６５日の各々は１から３６５の値によって一意に識別でき；また各年は例えば２００１といった年の番号によって識別できる。各々が１時間、１日または１年を識別するこれら３個の値は、一つのそして唯一つの特定の１時間という時間間隔を一意に識別する値を生成するためにこのような仕方で結合される。この１時間という時間間隔は、特定の（時間・日・年）結合によって表示され得る。例えば値１００２３２００１は、２００１年１月２３日である年２００１（２００１）の第２３番目の日（０２３）の午前９時と１０時との間の時間を一意に識別するであろう。同様に値１７０３２２００１は、２００１年２月１日である年２００１（２００１）の第３２番目の日（０３２）の午後４時と５時との間の時間を一意に識別するであろう。他の変形版は、本技術に通常のスキルを有する人々によって直ちに理解されるであろう。
【００６０】
一実施形態では動的値（Ｔ）は、時間クロック関数の出力として与えられ、この出力は次に動的値関数に与えられる。動的値関数は、クロック関数によって与えられたデータに応じて適当な動的値（Ｔ）を決定する。クロックとプロセッサとを有する装置に実現されたこのような一実施形態では動的値（Ｔ）は、初期値に設定され、１秒ごとに増加させられるカウンタであるクロックによって生成される。このクロックは、最初に構成された時刻以降の秒数をカウントする。６０秒ごとにクロックは動的値関数に信号を送り、この関数はクロックを読み取って動的値（Ｔ）を増加させ、その増加した値をその時間間隔における動的値（Ｔ）として記憶する。ある幾つかの実施形態では時間値は、ＩＳＯ−８６０１フォーマットで与えられる。
【００６１】
ある幾つかの実施形態では動的値（Ｔ）は、外部クロック、例えば通信端末１４０のクロックによって与えられる。一部の実施形態では動的値（Ｔ）は、ある規則的に発生する措置に基づいて、例えば認証コードの要求に基づいて、または受信された外部信号に基づいて変化する。規則的に発生する措置は、装置１２０にとって観測可能な、好ましくは検証者１０５によって観測可能な、またはおおよそ近似可能なイベント、例えば受信された無線信号または認証の試みであり得るであろう。このような規則的に発生するイベント時に動的値（Ｔ）は変化する。このようなイベントは典型的には、イベント状態（Ｅ）の変化の結果起こるイベントではないであろう。したがってこのようなイベントは、報告可能なイベントではないであろう。
【００６２】
一実施形態では秘密（Ｋ）と動的値（Ｔ）とイベント状態（Ｅ）は，認証コードＡ（Ｋ、Ｔ、Ｅ）２９１としての結合のために結合関数２３０に供給される。秘密（Ｋ）と動的値（Ｔ）とイベント状態（Ｅ）との結合は、如何なる順序にでも行うことができ、一つ以上の種々の結合方法を使用することができる。例えば一つの極度に単純化された実施形態ではハッシュ関数といった一方向性関数が値（Ｋ、Ｔ、Ｅ）に適用され、その結果は結果として得られる認証コードに到達するために正しい長さに切り詰められる。もう一つの実施形態では値（Ｋ、Ｔ、Ｅ）のうちの少なくとも二つ、またはそれらの部分は、入力として一方向性関数に与えられる。一方向性関数は、この関数の出力の知識が、与えられた入力の再構成を許さないような仕方で入力値の領域を出力値の領域に写像する数学的関数である。一方向性関数の例は、ＭＤ５、ＳＨＡ−１といったハッシュ関数およびキー誘導関数である。特定の一実施形態では、ＲＣ６またはＲｉｊｎｄａｅｌ（ＡＥＳ）アルゴリズムといったブロック暗号は、（Ｋ）と（Ｔ）の結合を生成するために秘密（Ｋ）をキーとして、動的値（Ｔ）をデータとして使用する。これらの実施形態の一つでは結合関数２３０は、一定の記憶された秘密（Ｋ）と動的値（Ｔ）とに結合される各異なるイベント状態（Ｅ）が結果として異なる認証コード値になるように設計される。上述のように如何なる順序の結合でも可能であり、（Ｋ）、（Ｔ）、（Ｅ）のうちの二つは利用者認証装置１２０で結合されることができ、残りの一つはその結果と通信端末１４０において結合され得る。
【００６３】
利用者データ（Ｐ）は、入力として結合関数２３０にも供給され得る。利用者データ（Ｐ）は、英数字列、または厳密に数値、例えば個人識別番号（ＰＩＮ）またはパスワードといった１単位の情報である。一実施形態では利用者データ（Ｐ）は、利用者１１０と一意に関連する情報である。利用者データ（Ｐ）は、生体測定的測定または観測によっても取得できる。一実施形態では利用者データの識別性または値は、利用者１１０と検証者１０５にだけ知られる（すなわち装置には知られない）秘密である。利用者データ（Ｐ）は、それが傷つけられることから保護する検証者１０５にとってアクセス可能な仕方で記憶され得る。利用者データ（Ｐ）は、利用者によって与えられる実際のＰＩＮ、パスワード、生体測定データなどであることができ、あるいは利用者データ値（Ｐ）は一つ以上の他の関数による利用者データの処理の結果であり得る。例えば利用者データ（Ｐ）は、入力として結合関数２３０に与えられる前に、ハッシュ関数といった一方向関数またはキー誘導関数によってもう一つの値に写像され得る。パスワードを他の情報と結合する誘導関数が使用可能である。例えばセキュリティを増加させるために、誘導関数の適用に先立って、塩と呼ばれるランダムな情報列がパスワードと結合され得る。この塩は、秘密値である必要はない。誘導関数には反復関数が含まれることもあり得る。パスワードを誘導する基底関数を何回実行したかを示すために、反復回数と呼ばれる数が使用され得る。誘導関数への反復回数の組み込みは、パスワードを誘導するために必要とされる努力を増加させる。適度の反復回数、例えば１０００回は、キー（例えば利用者データ）を計算するときに合法的関係者にとって重荷になりそうもないが、攻撃者にとっては大きな重荷になるであろう。もし利用者データ値がランダムであって非常に多くの可能な値から選択されたのであれば、より少ない反復回数が使用可能であろう。
【００６４】
一実施形態では結合関数２３０は、認証コードＡ（Ｋ、Ｔ、Ｅ、Ｐ）２９２を生成するために利用者データ値（Ｐ）を秘密（Ｋ）と動的値（Ｔ）とイベント状態（Ｅ）とに結合する。結合関数２３０は、認証コード２９２を生成するためにこれらの値を如何なる順序にでも（そして言及されていない他の値に）結合できる。特定の一実施形態では利用者認証装置１２０は先ず、前述のように認証コードＡ（Ｋ、Ｔ、Ｅ）２９１を生成するために（Ｋ、Ｔ、Ｅ）を結合する。それから結合関数２３０は、（Ｋ、Ｔ、Ｅ、Ｐ）の関数である認証コード２９２を生成するために、この生成された認証コード２９１をＰＩＮ（Ｐ）に結合する。ＰＩＮ（Ｐ）は、ＰＩＮ（Ｐ）をＡ（Ｋ、Ｔ、Ｅ）に付加することによって、またはＰＩＮ（Ｐ）をＡ（Ｋ、Ｔ、Ｅ）に算術的に加算することによって、またはブロック暗号または他の一方向性関数または他のアルゴリズムまたはこれらの組合せ、および二つ以上の入力値を共に結合する他の手法を使用することによって、Ａ（Ｋ、Ｔ，Ｅ）に結合され得る。両結合のために同じステップが使用でき、あるいはこれらのステップが異なる可能性もあり、−例えば（Ｋ）はキー入力としてブロック暗号に与えられ、（Ｔ、Ｅ）はデータ入力としてブロック暗号与えられることができ、ブロック暗号に結合されたＰＩＮは、加算または排他的論理和演算による結果として得られる。もう一つの実施形態では利用者データ値（Ｐ）とイベント状態（Ｅ）は先ず、入力としての使用のために暗号化関数に結合され、それから動的値（Ｔ）と秘密（Ｋ）はその結果を暗号化するためにこれらをキーとして使用することによってこれらに結合される。他の実施形態では動的値（Ｔ）と秘密（Ｋ）とが結合され、この結果に利用者データ（Ｐ）とイベント状態（Ｅ）とが結合される。結合は、例えばこれらの値が入力として単一の関数に与えられると同時に、あるいはある値が他の値に結合されるにつれて段階的に行われ得る。ある幾つかの結合は認証装置１２０上で起こり得るが、他の結合は通信端末１４０上で起こり得る。無論、結合が変形版として他の値または処理を含み得ることは理解されるべきである。
【００６５】
前述のように装置１２０の種々の実施形態は、種々の仕方で利用者データ（Ｐ）の入力を受信できる。これらは限定なしに、キーパッド、キーボード、タッチスクリーン、ポインタまたはマウスによる選択、筆跡認識、音声認識等々を経由した利用者入力(例えばＰＩＮの)を含むことができる。利用者データは、認証装置１２０と一体化された生体測定読取装置を使用して読み取られ得る。利用者データ（Ｐ）はまた、電気的または電磁的手段を介して他の装置からも伝達され得る。例えばＰＩＮ入力と指紋読取装置とによって与えられる利用者データ（Ｐ）の二つ以上の項目が存在し得ることは理解されるべきである。同様にもう一つの例としてＰＩＮは、装置によって検証されることができ、データは装置によるＰＩＮの成功した検証に応じて結合関数に与えられ得る。
【００６６】
他の種々の実施形態では認証コード２９３を生成するために、今説明されたデータに(すなわち利用者データ（Ｐ）に、またはこのデータにではなく)他のデータが結合され得る。この他データは、時間間隔内に要求された各認証コードに関して増加させられる生成値（Ｎ）を含むことができる。その内容が引例によってここに組み込まれている、Ｂｒａｉｎａｒｄ等による「Ｅｎｈａｎｃｅｄ  Ｔｉｍｅ−Ｂａｓｅｄ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ（拡張された時間ベースの認証）」と題する同時係属中の米国特許出願通し番号第１０／０１０，７６９号を参照のこと。
【００６７】
この他のデータはまた、特定の検証者（１０５）の、または検証者のグループの識別性と関連する値である検証者識別子（Ｖ）を含むことができる。検証者識別子（Ｖ）の使用は、利用者に成りすますために使用され得る特定のエンティティ情報をもう一つのエンティティに与えることなしに、異なるエンティティによって操作される検証者によって同じ利用者認証装置１２０（同じ秘密（Ｋ）を有する）が使用されることを可能にする。その内容が引例によってここに組み込まれている、Ｂｒａｉｎａｒｄ等による「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ａｕｔｈｅｎｔｉｃａｔｉｏｎ  Ｓｅｅｄ  Ｄｉｓｔｒｉｂｕｔｉｏｎ（認証シード散布のためのシステムおよび方法）」と題する同時係属中の米国特許出願通し番号第０９／３０４，７７５号を参照のこと。
【００６８】
例えば一実施形態では結合関数２３０は、認証コード２９３を生成するために秘密（Ｋ）と動的値（Ｔ）とイベント状態（Ｅ）と利用者データ（Ｐ）と検証者識別子（Ｖ）と生成値（Ｎ）とを結合する。結合関数は、これらの値（Ｋ、Ｔ、Ｅ、Ｐ、Ｖ、Ｎ）を種々の仕方で如何なる順序にでも結合できる。結合関数２３０によって結合される前にこれらの値は、一つ以上の他の関数によって処理され得る。認証装置１２０の種々の実施形態は、種々の仕方でこのデータの入力を受信できる。
【００６９】
一実施形態では認証コード２９０を生成するために使用される秘密（Ｋ）の部分は、時間的に変化する。秘密（Ｋ）の部分は、動的変数（Ｔ）に基づいて他の部分から誘導される。例えば特定の時間間隔のために割り当てられた秘密値（Ｋ）の一部分が存在し得る。この実施形態では秘密（Ｋ）の一部分は、１秒、１分、１時間、１日、１月、１年ごとに異なり得る。これは、動的値（Ｔ）による１分という時間値ごとに、秘密（Ｋ）を１セットの秘密：すなわち現在年（ＫY）に対応する秘密、現在月（ＫM）に対応する秘密、現在日（ＫD）に対応する秘密、現在時間（ＫH）に対応する秘密、現在分（ＫMIN）に対応する秘密、すなわちＫ＝（ＫY，ＫM，ＫD，ＫH，ＫMIN）（またはそれらのうちの一つ以上に基づくサブセットまたは関数）として表すことによって遂行され得る。したがってこれらの実施形態では秘密（Ｋ）の部分は、相互に誘導されることができ、秘密（Ｋ）の一部分は認証コード２９０を生成するために使用され得る。
【００７０】
例えば１年ごとの秘密（ＫY）は、データ値として適当にパディング（パッド詰め）されたキーと現在年として秘密を有するブロック暗号を使用することによって生成され得る。例えば１２８ビット・ブロック暗号を使用する実施形態では現在年値（００００〜９９９９）は、１２８ビットのデータブロックを与えるために０、１または検証者１０５に知られたあるランダムパターンをパディング（パッド詰め）されることができる。こうして、ＫY＝ＥK（ＹＹＹＹＰＰＰＰＰＰＰＰＰＰ）となり、ここでＰはパディングを表し、ＥKはキーとして秘密を使用するデータＹＹＹＹのブロック暗号を表す。同様な仕方で月ごとの秘密は、１秒時間ごとに同じまたは異なるブロック暗号を適用することによって誘導され得る。ＫM＝ＥKY（ＹＹＹＹＭＭＰＰＰＰＰＰＰＰＰＰ）となり、ここでＹＹＹＹＭＭは現在の月と年の値を表し、１年ごとの秘密はブロック暗号へのキーとして使用される。１日ごとに秘密と１時間ごとの秘密は、同様に生成されることか可能であって、ＫD＝ＥKM（ＹＹＹＹＭＭＤＤＰＰＰＰＰＰ）およびＫH＝ＥKD（ＹＹＹＹＭＭＤＤＨＨＰＰＰＰ）となる。
【００７１】
種々の実施形態では秘密の各々は、認証コードを生成するために関連時間間隔の時に使用され得る。例えば１時間ごとの秘密は、上記の秘密として使用されることができ、認証コードを生成するために時間とイベント状態データとに結合され得る。上記の例はブロック暗号に関して与えられているが、秘密を生成するためのここに説明された方法の如何なるもの（例えばハッシュ関数）も使用され得ることは理解されるであろう。新しい秘密値を生成するための他の手法は、「Ｐｅｒｓｏｎａｌ  Ｓｅｃｕｒｉｔｙ  Ｓｙｓｔｅｍ（個人セキュリティシステム）」と題するＷｅｉｓｓへの米国特許第５，３６１，０６２号に記載されている。
【００７２】
もう一つの手法ではイベント状態は、それが結合関数内に入力として直接供給されないような仕方で伝達され得る。このような一実施形態では例えばイベント状態は、イベント状態に応じて装置のクロックによって与えられる時刻を修正することによって伝達され得る。この実施形態の例示的実施形態では装置は、イベントの発生を示すためにそのクロックを１分以上進める。クロックは、もう一つのイベントを示すために１分以上遅らされる。装置のクロックと検証者のクロックとが必要な精度を持っていることを条件として、検証者は単に、装置の時刻が検証者によって予期される時刻と比較してより早いか遅いか同じであるかどうかを決定することによってイベント状態を決定できる。更に他の値と計算とが上述のものと組み合わせて使用できることは理解されるべきである。
【００７３】
呼掛けもまた、結合関数２３０への入力であり得る。一実施形態では応答は、呼掛け、秘密キーおよびイベント状態から誘導される、すなわち時間からは誘導されない。例えば検証者が与える呼掛け値は、上述のように動的値（Ｔ）として使用され得るであろう。
【００７４】
また結合関数の一部として一つ以上の値（例えばイベント状態（Ｅ））は、数学的演算への入力として与えられるデータを選択するために使用され得る。一実施形態では結合関数への入力として使用され得る二つ以上の秘密（Ｋ）が存在する。結合関数の一部としてイベント状態（Ｅ）の値は、認証コードを生成するために秘密（Ｋ）のうちのどれが結合関数内で使用されるかを決定するために使用される。例えばイベント状態（Ｅ）が１ビットであって二つの秘密（Ｋ0）、（Ｋ1）が存在する実施形態では０というイベント状態は上述の関数２９１におけるＫとしての使用のために一方の秘密（例えばＫ0）を選択し、１というイベント状態は他方の秘密（例えばＫ1）を選択する。こうして一説明的例ではもし装置が改竄されていなければ、イベント状態は０であって、関数２９１では秘密Ｋ0が使用される。改竄の検出時にはイベント状態は１にセットされ、関数２９１では秘密Ｋ1が使用される。
【００７５】
図３を参照すると、識別認証コード３３０の決定に直接的にイベント状態データ３２０を含む実勢形態の動作に関するデータの流れが示されている。認証装置は、装置に関連する装置秘密３０５である第１の秘密値を記憶または計算する。この第１の秘密値３０５は、前述の秘密Ｋ、秘密Ｋの一部分、またはその変形体または誘導体であり得る。認証装置はまた、第２の秘密値、装置のイベント状態に関連するイベント秘密３１０を記憶または計算する。イベント秘密３１０によって表されるイベント状態は、装置が検証者に伝達するイベントに関連している。上述のように、これは装置の通常の動作では遭遇しない異常なまたは変則的なイベントである可能性がある。イベント秘密３１０は、第１の秘密値３０５とは独立であるか、第１の秘密値３０５または第１の秘密値３０５から誘導されることができ、またイベント秘密３１０の値は同じであるか、同じ秘密から誘導されることができる。認証装置はまた、前述のようにクロックによって与えられる現在時刻に、または認証の試みの回数といった他の値に基づくことができる動的値３１５へのアクセスを有する、および／または動的値３１５を計算するので、この動的値３１５は時間的に変化する。
【００７６】
動的値３１５とイベント秘密３１０とを使用して認証装置１２０は、時間に関連するイベント状態データ３２０を誘導する。この実施形態のバージョンではイベント状態データ３２０は、データの一つ以上にビットによって表される値である。イベント状態データ３２０は、動的値３１５および／またはイベント秘密３１０の変化によって誘発される反復性のループにおいて決定され得る。更にイベント秘密３１０は、動的値３１５の全部または一部と数学的に結合され得る。イベント状態データ３２０は、時間固有値３２５を形成するために装置秘密３０５と動的値３１５とに結合される。それから時間固有値３２５は、識別認証コード３３０を計算するために使用される。時間固有値３２５は、識別認証コード３３０を形成するために、ＰＩＮ、パスワード、生体測定示度から誘導される値、生成値、検証者識別子、および／または他の情報と数学的に結合され得る。もしイベント状態データ３２０が動的値３１５だけに結合されるならば、攻撃者は動的値が変化する前にもう一つの認証コードを要求することによって、イベント状態が変化したかどうかを決定することができる。例えば結合関数への入力として上述の生成値を使用することは、これを防止するであろう。更に動的値が変更されるたびにイベント状態を変更することは、攻撃者が状態検出を決定することをより一層困難にするであろう。
【００７７】
一般にイベント状態に関連するイベント（単数または複数）の発生は、イベント状態データ３２０に関連する修正または何らかの変化という結果になる。一実施形態ではプロセッサがイベントを検出すると、プロセッサはメモリに記憶されたイベント状態データ３２０を修正する。もう一つの実施形態では、イベントの発生が装置による明示的な措置なしでイベント状態データ３２０を修正するように、環境的イベント（例えば静電気放電）に本来敏感であるイベント状態データ３２０はメモリに記憶される。またイベント状態データ３２０のためのデータ記憶ハードウエアは、イベント（例えば装置の分解）がイベント状態データ３２０を自動的に修正するように設計され得る。イベント状態データ３２０に関連するイベントの発生は、イベント秘密３１０の修正という結果になり得る。このようにして新しいイベント状態データ３２０が生成されると、新しいデータはイベントの発生を伝達するであろう。しかしながらある幾つかのイベントに関しては、イベント秘密３１０を修正することなくイベント秘密３１０からイベント状態データ３２０を決定することによって現在状態を単に報告する（セーブしない）ことが有益であり得る。これはイベントが長期間または短期間に亘って報告されることを可能にする。
【００７８】
一実施形態ではイベント状態データ３２０は、各々が時間（例えば１時間）に関連するビットの形で記憶される。時間に関連するそれぞれのイベント状態ビットは、その時間に関する時間固有値３２５を誘導するために使用される。この例示的実施形態ではイベント状態ビットに関して二つの可能な選択が存在するが、他の実施形態では多数のビット（またしたがって多数の状態）が存在することがあり得る。検証者が識別認証コード３３０を受信すると、検証者は受信されたコードが予期された値であるかどうかを決定するであろう。もしそうでなければ、検証者は反対の状態ビットに関して予期される認証コードを計算する（すなわち１を０に、または０を１に置き換える）であろう。もし検証者が反対の状態ビットを有する受信された識別認証コードを取得すれば、検証者はイベントが発生したことを決定したのであり、適当な措置をとることができる。他の実施形態ではイベント状態データ３２０は、１ビットであり、イベント秘密３１０と同じである。この１ビットはイベントが発生したか否かを示す。
【００７９】
図４を参照すると、例えば動的値（Ｔ）４１５が変化したときにイベント秘密（ＥＳ）４１０の値が繰り返し更新される、イベント状態データを伝達する認証コードを誘導するための方法の一実施形態が示されている。一実施形態では、繰り返される更新は、イベント状態データの変更がイベント検出の結果であるか定例の更新であるかを攻撃者が決定できないので、イベントが検出されたかどうかをイベント状態データへのアクセスを有する攻撃者が決定することを防止する。こうしてイベント検出は、隠されたままに留まる。一実施形態ではイベント秘密（ＥＳ）４１０は、正常な動作時に規則的に、例えば動的値（Ｔ）４１５が更新されたときに更新または修正される。他の実施形態ではイベント秘密（ＥＳ）４１０は、ある他の間隔に基づいて、または他の正規の動作に基づいて規則的または周期的に修正される。
【００８０】
報告可能なイベントの発生時に装置は、ある仕方でイベント秘密（ＥＳ）４１０を修正する措置をとる。例えばある幾つかの実施形態ではイベント秘密（ＥＳ）４１０は、誘発するイベントの発生時に１回以上の追加回数だけ修正され、またこれらの修正は正規の修正のために使用される同じ関数を使用して行われる。他の実施形態では誘発するイベントのときに、イベント秘密（ＥＳ）４１０は、通常使用されるものとは異なる関数を使用して、またはイベント秘密（ＥＳ）４１０を異なるデータと結合することによって修正される。
【００８１】
一実施形態では認証装置は、１日（ＫD）４０５に関連する秘密を生成するために動的値（Ｔ）４１５と共同して使用される装置秘密（図示せず）を持っている。日秘密（ＫD）は、月暗号化キーＫMを使用して現在日付に関連する情報を暗号化することによって生成される。例えば、ＫD＝ＥKM（Ｔ）＝ＥKM（ＹＹＹＹＭＭＤＤＰＰＰＰＰＰ）となり、ここでＴは年月日フォーマットで現在の動的値を表す。認証装置はまた、この実施形態では初期値４１１を有するイベント秘密（ＥＳ）４１０を記憶する。この実施形態の一バージョンでは初期値４１１は、装置秘密から独立していることができる。もう一つのバージョンでは、これは装置秘密から誘導される。また装置秘密と初期値４１１は同じであるか、共通の値から誘導されることができる。
【００８２】
動的値（Ｔ）４１５によって決定されるように周期的に、イベント秘密（ＥＳ）４１０の新しい値はイベント秘密キー（ＫES）４１３を使用して誘導され、たとえば最初の誘導時に初期値４１１は交換される。イベント秘密キー（ＫES）４１３の値の変更はまた、イベント秘密キー（ＫES）４１３を使用してイベント状態秘密（ＥＳ）４１０から誘導されるイベント状態ビット（ＥＢＩＴＳ）４２０の変化という結果をもたらす。それから特定の時間に関連するイベント状態ビット（ＥＢＩＴＳ）４２０は、識別認証コードを生成するために使用される。
【００８３】
この実施形態ではイベント秘密キー（ＫES）４１３は方程式ＫES＝（ＥＳｘｏｒＦＰＡＤ１）にしたがって誘導されるが、ここでＦＰＡＤ１は予め決められた一定値である。各更新間隔でイベント秘密（ＥＳ）４１０の新しい値は、例えばＦＰＡＤ２もまた予め決められた一定値である方程式ＥＳ＝ＥKES（ＥＳｘｏｒＦＰＡＤ２）にしたがってイベント秘密（ＥＳ）４１０の既存の値に適用される論理演算の結果を暗号化するためにイベント秘密キー（ＫES）４１３を使用することによって誘導される。イベント状態ビット（ＥＢＩＴＳ）４２０はまた、例えばＦＰＡＤ３が予め決められたもう一つの一定値である方程式ＥＢＩＴＳ＝ＥKES（ＥＳｘｏｒＦＰＡＤ３）にしたがってイベント秘密（ＥＳ）４１０に適用される論理演算の結果を暗号化することによって誘導される。こうしてイベント状態ビット（ＥＢＩＴＳ）４２０を形成するためにイベント秘密（ＥＳ）４１０とＦＰＡＤ３とに対して排他的論理和演算が適用される。一実施形態では７２個のイベント状態ビット（ＥＢＩＴＳ）４２０のグループが各３日の期間（すなわち７２時間の期間）に関して誘導され、イベント状態ビット４２０の各々はそれぞれこの期間内の１時間に関連している。
【００８４】
イベント状態ビット（ＥＢＩＴＳ）４２０に基づく認証コードの誘導は、追加の秘密を誘導することによって完了され得る。第一に時間ＫH４２５に関する秘密は、１日ごとの秘密ＫDと動的値（Ｔ）４１５とその時間（ＥＢＩＴＳ（Ｔ））に関連するイベント状態ビットとから、これらの値を一方向性関数、メッセージ・ダイジェスト(メッセージ要約)、ブロック暗号などであり得る関数（ｇ）に入力として与えることによって、誘導される。これは、ＫH＝ｇ（ＫD，Ｔ，ＥＢＩＴＳ（Ｔ））と書くことができる。この時間内の１分に関する秘密（ＫM）４２９は、関数（ｇ）と同じであるか異なり得る関数（ｆ）を使用して計算でき、ここで（ｆ）は、入力として（ＫH）４２５と、ＫM＝ｆ（ＫH，Ｔ）と書くことのできる分に関する動的値とをとる。分秘密（ＫM）４２９は認証コードとして直接使用できる。代替として認証コードは更に、例えばＰＩＮおよび／または上述のような他の値を結合することによって分秘密（ＫM）４２９から誘導され得る。
【００８５】
図５を参照すると、装置メモリの二つの値の記憶部分の内容は、コラム１とコラム２とに示されている。ここで値１は認証装置に関連する秘密値を表し、また値２はイベント状態に関連するイベント状態データを表す。措置が発生するとコラム３に示すようにこれらの措置は、例示的出力（コラム４）および／または記憶された値（コラム１、コラム２）に影響を及ぼし得る。最も左のコラムは、開始時間Ｔ1で始まり時間Ｔ7で終わる時間増分を表す。イベントは周期的に発生しない可能性があるので、二つの隣接時間（例えばＴ1とＴ2)間の時間の長さが、別の１対の隣接時間（例えばＴ2とＴ3）によって表される時間の長さと等しくない可能性があることは留意されるべきである。この例では出力は画面上に表示されるが、前述のように他の出力手段も可能である。一実施形態では更新される秘密値（コラム１）は、マスター秘密値、例えばマスター秘密値から誘導されるマスターシードではない。
【００８６】
第1の時間Ｔ1で認証装置は初期化される。これは、製造プロセス時に、または後刻のセットアッププロセスにおいて実行され得る。初期化は、例えば移動体装置に装置秘密を無線で送信することによって、またはネットワークに接続された装置に秘密をダウンロードすることによってリモートに、またはローカルにどちらでも遂行できる。初期化プロセスは、装置と少なくとも一つの検証者との間に少なくとも部分的に同期が存在するように行われる。ここで「同期化する」は、二つ以上の装置（すなわち認証装置と検証者）がある情報の一貫性のある表現を取得することを意味するために使用される。これは、装置秘密（コラム１）として記憶されたデータＡ１の完全な表現と、イベント状態データ（コラム２）として記憶されたデータＢ１の完全な表現とを共有する検証者を含むことができる。これはまた、例えば公開キー暗号システムにおける記憶された秘密キーに関連する公開キーの意味でデータの一部または表現を共有することを含むこともできる。
【００８７】
第２の時間Ｔ2では、時間が経過して動的値の変化にしたがって秘密値（コラム１）とイベント状態データ（コラム２）が更新される。表に示すように、装置秘密は値Ａ2を持ち、イベント状態データは（コラム２）は値Ｂ2を持つ。一実施形態ではこれらの値の更新は、好ましくは一方向性関数を使用してそれらの古い値をこれらから誘導された値に交換することによって行われる。他の実施形態では秘密値またはイベント状態データを表す各ビットの値は、更新（例えば逆演算）のときに存在した状態とは反対の状態に変更され得るであろう。他の変形版、例えば他の種類の修正および他の値との結合も可能である。
【００８８】
第３の時間Ｔ3ではコラム１の装置秘密とコラム２のイベント状態データはそれぞれ、時間Ｔ2以降の経過時間が動的値に関してもう一つの更新期間を完了するには十分でないので、時間Ｔ2にあったものと同じである。この例では時間Ｔ3において利用者は、呼掛けと正しいＰＩＮとを装置に入力して出力を取得する。他の実施形態では呼掛けは使用されないかもしれない。この例では出力（コラム４）は、装置秘密（コラム１）とイベント状態データ（コラム２）ならびに呼掛けとＰＩＮとの関数である。呼掛けまたはＰＩＮの入力がこの例に含まれていても本発明の要件ではないことは理解されるべきである。上述のように出力は潜在的に、同じまたは異なるＰＩＮまたはパスワードおよび利用者識別子と共に検証者に伝達される。検証者は、装置がその状態にあると信じられる状態であって、（Ａ2，Ｂ2）および他の前記の値から誘導される状態と一致しているかどうかを決定する。もし一致しなければ検証者は、それが一致する状態が存在するかどうかを決定しようと試みる。１セットの許容可能な状態のうちの一つの帰結に基づいて利用者は、その口座、識別性または会員資格、または誘発される警告などと関連するある許可を与えられることができる。
【００８９】
第４の時間Ｔ4では、時間は再び経過して動的値に変化によって装置秘密（コラム１）とイベント状態データ（コラム２）は、装置秘密が値Ａ3を持ち、イベント状態データが値Ｂ3を持つように更新される。
【００９０】
第５の時間Ｔ5ではイベントが発生し、これがイベント状態データ（コラム２）に変化を誘発する。上述のようにこの変化は、このイベントに起因するメモリへの直接的影響の結果であり得るであろう。この変化はまた、例えばポーリングされた信号ラインにおける割り込みまたは変化の結果としてプロセッサ命令によって実施され得るであろう。表に示すように装置秘密はまだ値Ａ3を持っているが、イベント状態データは今や値Ｂ4を持っており、これは更新または修正された状態を表している。この例ではイベント状態値の更新は、好ましくは一方向性関数を使用して、古い値Ｂ3をそれから誘導される値に交換することによって行われる。知られている値によるイベント状態データ（コラム２）の交換（例えば追加の更新）は、この変更が将来の認証コードに反映されるので、認証装置に記録されたイベント発生が存在するかどうかを検証者が決定することを可能にする。例えば図４の実施形態のビットＥＢＩＴＳは、交換され得るであろう。
【００９１】
第６の時間Ｔ6では、時間は再び経過して動的値の変化にしたがって装置秘密値（コラム１）とイベント状態データ（コラム２）は再び更新される。表に示すように装置秘密は現在、値Ａ4を持っており、イベント状態データは値Ｂ5を持っている。このイベント状態データは、時間Ｔ5でイベントが登録されなかった場合に持つはずである値とは異なっている。これは、これら値がこれらの前の状態に関数を適用することによって更新されるからであって、したがって如何なる修正も、将来の時間におけるイベント状態データを変更されたままに留まらせるであろう。
【００９２】
時間Ｔ7では利用者は、再び呼掛けと正しいＰＩＮとを入力して出力値を取得する。認証装置によって生成された識別認証コードは、装置秘密Ａ4（コラム１）とイベント状態データＢ5（コラム２）から誘導されるであろう。出力値は、利用者と装置との間、装置と検証者との間、および利用者と装置との間のすべての通信を観測者がセーブしたとしても、イベントが行５に登録されていることを装置秘密または元のイベント状態データの知識なしでは利用者（または観測者）が決定できないほどのものである。たとえそうであっても出力値はなお、登録されたイベントが行７の時間中または時間前に起こったことが検証者によって検出され得る（その値および関連情報の検証時に）ほどのものである。したがって例えばトークンを改竄した攻撃者は、変更されたトークンが使用されるたびにイベント情報が検証者に送信されていることに気づかずにいるであろう。
【００９３】
例示的実施形態として再び図４の実施形態を参照すると時間Ｔ5で、使用されたビットＥＢＩＴＳ４２０（図４）は交換される。したがってＢ5は、時間Ｔ5で登録されなかったイベントを持っていたものとは時間Ｔ7では異なるであろう。時間Ｔ5における変化は、イベント状態の後のバージョンに含まれ、また時間Ｔ7の認証コードに反映される。
【００９４】
他の実施形態ではイベントの性質とイベントの時間といった更なる情報が検証者によって決定され得ることが可能である。この例では検証者は、識別認証コードが利用者に関連する値であることを検出するが、イベント状態を決定しない。しかしながらイベント状態データの値は、イベント状態データに基づいて、イベントの性質と時間とに関する情報を与える認証コードの生成という結果をもたらす仕方で修正され得る。例えばイベントの一つのタイプは出力の第１の部分に影響を及ぼすが第２の部分には影響を及ぼさないことが可能である一方、イベントの第２のタイプは第２の部分に影響を及ぼし得るが第１の部分には影響を及ぼすことはできない。ある幾つかの実施形態では第１、第２の部分は部分的にまたは完全にオーバーラップできる。もし第１、第２の部分が完全にオーバーラップすれば、これら二つの異なるイベントは、結果として得られた二つの異なる出力値を生成し、これから検証者はイベントが発生したに違いないということばかりでなく、それがどのようなタイプのイベントであったか（すなわちイベントの性質）を決定できる。同様に異なる時間中のイベントの登録は、出力の異なる部分に影響を及ぼすことができ、あるいは出力の値が値の異なる範囲に入るようにすることができる。イベントに関する更に詳細な情報はまた、例えば複数のイベント状態ビット４２０からなるマルチビット値を各選択された更新期間、例えば１時間に関連付けることによって伝達され得る。マルチビット２進値は、単一ビット値よりもイベントに関する多くの情報の伝達を考慮に入れることができる。例えばイベントが装置の場所（例えば米国以外にある装置？）に関連付けられる場合には、二つの可能なイベント状態−ＹＥＳまたはＮＯだけが存在する可能性がある。この例ではイベントの性質は、１ビットだけで伝達可能である。しかしながら装置が米国の外に配置されていることをイベント状態が登録すると、検証者はその場所イベントに関する更に特定的な情報に関心を持つ可能性がある。この例ではイベント状態は、多数の可能な都市、国または地域などのうちの一つを伝達することができる。
【００９５】
いずれの場合にも、また前述のように、イベントが登録されたかどうか、どのようなイベント（単数または複数）が登録されたか、イベント（単数または複数）が装置によっていつ登録されたか、を出力または出力の分布から単に、検証者（装置が直接通信によるか代理によるかいずれによってでも、ある時点で少なくとも部分的にこの検証者と同期している）が決定することは可能である。種々のコラムの値が単に本発明の教えを例示することを意味しており、これらの値が異なるフォーマットまたは表現またはそれらの組合せで、より長くまたはより短くできることは理解されるべきである。
【００９６】
もし検証者は決定された状態が、検証者が通信している認証装置に関連する状態であるということを決定してはいるが、その状態がアクセスを与えることに関して許容できる状態でないかもしれない場合には、検証者は特定の措置をとる、例えば（限定なしに）当局に警告する、口座へのアクセスを阻止する、このイベントが前記装置によって後に登録され得るイベントを発生させる、あるいはこれらの任意の組み合わせを実行することができる。上記のように一つのイベントに関して多数の状態が存在し得る。しかしながら図５の説明では説明の単純化のために単に二つの一般的なカテゴリー（許容可能対許容不可）が使用されている。本技術に精通する人が、ここでこれらの教えを考えればこれら二つの状態のカテゴリーを三つ以上に容易に拡張できることは理解されるべきである。
【００９７】
図６を参照すると一実施形態では、認証装置によって識別認証コードを生成するための方法は、認証装置にイベント状態データを記憶するステップを含む（ステップ６０１）。イベント状態データは、多数の部分に、例えば図４の実施形態におけるように、イベント秘密と別個のイベント状態ビットと共に記憶され得る。イベントの発生を表すイベント状態値は、プロセッサの内部または外部に存在し得る通常のメモリといったデータ記憶に記憶され得る。イベント状態データは、そのイベントがプロセッサまたはその他の介入なしにメモリ修正を起こすようにイベントに敏感であるメモリに記憶され得る。イベント状態データは、プロセッサによって読み取られ得る電子信号またはポートであり得る。イベント状態データは、絶えず更新され得る。例えばイベント状態は、図５を参照しながら説明されたように、それ自身の関数によって動的変数の適当な変化時に絶えず更新されるメモリを含むことができる。イベント状態データは、その値から誘導されるイベント状態とビットとに関連する値として記憶され得る。このような一実施形態では、これらのビットは各々が時間間隔に関連している。
【００９８】
本方法はまた、イベントに応じてイベント状態データを修正するステップを含む（ステップ６０２）。この修正は、スイッチその他から適当な信号を受信するプロセッサによって遂行され得る。イベント状態データ記憶は、イベントの発生が本来、イベント状態データを修正するように設計され得る。例えばメモリの電気端子は、ケースの取外しがメモリ内容を変更するように装置ケースに接続され得る。
【００９９】
上述のようにイベントは多くの形をとることができ、また異例または異常なイベント、または認証装置の正常な動作に関連しないイベントであることも可能である。一般に、認証は、もし単一の予期される状態が存在しなければ検証者がその他のイベント状態に関連する認証コードを計算しなくてはならないので、あまり効率的ではないであろう。異常イベントの非限定的例は、装置を改竄すること（例えばケーススイッチの誘発）と、環境的イベント（例えば温度、または放射線曝露）、不正確な電力入力（例えば高すぎる、または低すぎる）などといった装置外部のイベントとを含む。イベントはまた、このようなイベントの欠如（例えば電力正常）も含むことができる。
【０１００】
修正は、イベント状態データ記憶に第１の値を直ちに記憶することと、その後に同じデータ記憶またはもう一つのデータ記憶に第２の値を記憶することとを含むことができる。もしこれらの値が二つの異なるデータ記憶に記憶されれば、これらの値はなお部分的にオーバーラップすることができる。直ちに記憶された値は、決定論的に計算されることができ、あるいは０または１といった定数であり得るであろう。即時データ記憶装置は、ここではそれがプロセッサその他のハードウエアクロックと同期して更新されないことを意味する非同期であり得る。第２の値は、例えばもしそれが例えば一方向性関数を使用して元の値から計算されるならば、少なくとも部分的に非決定論的であり得る。
【０１０１】
本方法はまた、動的値とイベント状態データと装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップを含む（ステップ６０３）。生成された認証コードはまた、ＰＩＮとパスワードと生体測定観測から誘導されたデータとのうちの一つ以上といった利用者データに依存し得る。利用者は、このデータを認証装置に与えることができる。一部の利用者データは、おそらくは暗号化された形で認証装置に記憶され得る。利用者は認証装置へのある入力（すなわち生体測定データ）を与えることができ、また認証装置は他のデータを復号できる。
【０１０２】
認証装置は、利用者データの正しいことを検証でき、またもし利用者データが正しければ、識別認証コードを単に与えることができる。ある幾つかの実施形態では、間違った利用者データの多数回の提示は、イベント状態の修正という結果になり得るので、間違った利用者データの継続的な提示は検証者に報告される。
【０１０３】
識別認証コードを含む認証情報は、検証者に伝達される（ステップ６０４）。上述のように検証者への伝達は、人間の介入によって、またはよらなくて起こり得る。検証者は、ＰＩＮ、パスワード、生体測定示度などといった他の認証および識別データを任意選択的に含むことができる認証情報を受信する。検証者は、認証装置によって記憶またはアクセスされた情報と同じであり得る、またはそれから誘導され得る、またはそれに関係し得る装置に関連した動的値と秘密とへのアクセスを有する。検証者は、利用者の識別性を検証し、受信された認証コードに応じてイベント状態を決定できる。
【０１０４】
前述のように適切な設計によって、イベント状態の伝達は、認証装置と検証者だけが伝達された状態に気付いているように行われることが可能である。
【０１０５】
図７を参照すると一実施形態ではイベント状態データは、二つの秘密値を含む。第１の秘密値は、セキュリティ強化秘密（Ｃ）である。第２の秘密値は、状態カウンタ秘密（Ｘ）である。この実施形態のバージョンではセキュリティ強化秘密（Ｃ）と状態カウンタ秘密（Ｘ）の各々は、例えば少なくとも８０ビットという、強い暗号セキュリティを達成するために十分な長さのビット列を含む。これらの長さとは無関係に各秘密（Ｃ）、（Ｘ）は、ハッシュ関数、ブロック暗号などといった一方向性暗号変換によって更新され得る。セキュリティ強化秘密（Ｃ）は周期的に更新される。例えばセキュリティ強化秘密（Ｃ）が認証装置１２０（例えばトークン）において使用されるとき、秘密（Ｃ）は新しい識別認証コードがそのトークンに関して生成される各時間間隔で更新され得る。以下に説明されるようにセキュリティ強化秘密（Ｃ）の時間的に変化する性質は、セキュリティ強化秘密（Ｃ）の過去の値の所有が一般に攻撃者にとって有用ではないので、この実施形態のセキュリティを改善する。状態カウンタ秘密（Ｘ）は、イベントの検出時に更新される。状態カウンタ秘密（Ｘ）に対して行われる更新の程度は、検出されたイベントの量、検出されたイベントの性質またはそれら両者に依存し得る。検出されたイベントの性質を示すために状態カウンタ秘密（Ｘ）の更新が行われると、ある特定の更新値がある特定の検出可能イベントに対応するように、分類システムが使用される。例えばＸの異なる値は、異なるイベントまたはイベント状態を指すことができる。
【０１０６】
イベントコード（Ｆ）は、少なくとも部分的にはセキュリティ強化秘密（Ｃ）と状態カウンタ秘密（Ｘ）の結合の結果である。例えばイベントコード（Ｆ）の値は、秘密（Ｃ）、（Ｘ）に適用される関数の出力の或る部分であり得る。一バージョンではイベントコード（Ｆ）は、（Ｘ）と（Ｃ）に排他的論理和演算が適用されたときに結果として得られる値の或る部分である。もし状態カウンタ秘密（Ｘ）が強い秘密であれば、この手法は順方向に確実な暗号化を与えるので有利である。他のバージョンではイベントコード（Ｆ）はセキュリティ強化秘密（Ｃ）が秘密キーとして使用される標準的対称暗号（例えばＡＥＳ）の下で暗号化された状態カウンタ秘密（Ｘ）値の或る部分である。ここで使用されているように部分という用語は、全体またはその或る一部からなる値を指している。
【０１０７】
イベントコード（Ｆ）は、検出されたイベントの量、検出されたイベントの性質またはそれら両者を伝達する認証コードを生成するために使用され得る。例えば図示のようにイベントコード（Ｆ）は、秘密（Ｋ）と動的値（Ｔ）との結合の結果得られる値である認証値（Ｓ）と結合され得る。（Ｆ）と（Ｓ）とを結合した結果は、認証コード（Ａ）である。一実施形態では認証コード（Ａ）は、イベントコード（Ｆ）と認証値（Ｓ）とに排他的論理和演算が適用されたときに結果として得られる値の或る部分である。代替として認証値（Ａ）は、認証値（Ｓ）が秘密キーとして使用される場合にイベントコード（Ｆ）にメッセージ認証コード（ＭＡＣ）が適用されたとき誘導される。
【０１０８】
下記の説明目的のために認証装置１２０によって生成された認証コードは、（ＡV）とも呼ばれる今説明した手法も使用して、それを検証者によって生成された認証コードとは区別するために（ＡD）によって表される。
【０１０９】
認証コード（ＡD）は検証のために検証者に送信される。一実施形態では検証者は、同様な仕方、または認証装置と同期した仕方で現在時間に関してセキュリティ強化秘密（Ｃ）を更新し、現在の認証値（Ｓ）を計算することによって認証コード（ＡD）を再構成しようと試みる。検証者はまた、前述のようなイベントコード（Ｆ）を誘導するために状態カウンタ秘密（Ｘ）とセキュリティ強化秘密（Ｃ）との記憶された値を使用する。検証者は、第１の認証コード（Ａ1V）を誘導するためにイベントコード（Ｆ）とセキュリティ強化秘密（Ｃ）とを使用する。検証者は、第１の認証コード（Ａ1V）の値を認証装置１２０によって生成された受信した認証コード（ＡD）の値と比較する。認証コード（ＡD）は、もし（ＡD）が（Ａ1V）に等しければ受け入れられる。
【０１１０】
もし受信された認証コード（ＡD）が第１の認証コード（Ａ1V）に等しくなければ、検証者によって記憶された状態カウンタ秘密（Ｘ）の値は更新される。状態カウンタ秘密（Ｘ）の更新された値はイベントコード（Ｆ）の更新された値を誘導するために使用される。それから検証者は、第２の認証コード（Ａ2V）を誘導するためにイベントコード（Ｆ）とセキュリティ強化秘密（Ｃ）の更新された値を使用する。再び検証者によって誘導された認証コード（すなわちこの繰り返しでは（Ａ2V））は、認証コード（ＡD）と比較される。もし（ＡD）が（Ａ2V）に等しければ、検証者は状態カウンタ秘密（Ｘ）の値によって指示される如何なるイベントの量および／または性質でも決定することができる。検証者は、この知識を使用して、認証コード（ＡD）を認証し、認証コード（ＡD）が無効であると決定し、一つ以上のイベントが発生したこと（例えば装置の改竄）を、またはそれらの組合せを信頼される当局に通知することができる。更に適当であれば検証者はまた、利用者１１０にそのイベントを通知し、発行当局にイベントを通知し、あるいは両者に通知することもできる。もし認証コード（ＡD）が第２の認証コード（Ａ2V）に等しくなければ、検証者は、認証コード（ＡD）を生成する状態カウンタ秘密（Ｘ）の値が決定されるまで、状態カウンタ秘密（Ｘ）を更新してイベントコード（Ｆ）と認証コード（ＡV）との値を誘導するプロセスを繰り返すことができる。代替として検証者は、認証装置１２０によって与えられる或る特定の認証コード（ＡD）に関して認証プロセスを繰り返すことなく、認証コード（ＡD）が無効であると決定することができる。もし受信された認証コード（ＡD）が予期された認証コード（Ａ1V）と一致しなければ、検証者はまた、認証装置と検証者との間の可能なクロックドリフトを明らかにするために隣接時間に関連する更なる認証コードを計算することもできる。
【０１１１】
一実施形態では検証者はまた、イベントコード（Ｆ）と状態カウンタ秘密（Ｘ）とが或る特定の仕方で誘導されるときに認証コード（ＡD）が部分的に誘導される状態カウンタ秘密（Ｘ）の値に対応する一つ以上にイベントを効率的に決定することもできる。この実施形態の一バージョンではイベントコードはイベント状態データである。特にイベントコード（Ｆ）がセキュリティ強化秘密（Ｃ）と状態カウンタ秘密（Ｘ）とに適用された排他的論理和から誘導され、認証コード（ＡD）がイベントコード（Ｆ）と認証値（Ｓ）とに適用された排他的論理和から誘導されるという両方の場合には、検証者は認証コード（ＡD）に対応する状態カウンタ秘密（ＸD）を効率的に計算できる。最初に検証者は、認証値（Ｓ）と認証コード（ＡD）とに適用された排他的論理和演算の関数として認証コード（ＡD）に対応するイベントコード（ＦD）を計算する。次に検証者は、イベントコード（ＦD）とセキュリティ強化秘密（Ｃ）とに適用された排他的論理和演算の関数として、対応する状態カウンタ秘密（ＸD）を計算する。前の例で説明されたようにこのプロセスは、検証者が状態カウンタ秘密（ＸD）によって示される任意のイベントの量および／または性質を決定できるまで、または認証コード（ＡD）が無効にされるまで繰り返されることができる。
【０１１２】
さて図８を参照すると一実施形態では、認証とイベント通信のためのシステムは、あるイベントが認証装置１２０によって検出されたかどうか、および／または認証コード８１０で伝達されたかどうかを、装置へのアクセスを有する攻撃者が決定することを困難にするための設計の一実施形態である。
【０１１３】
認証装置１２０ではイベント状態データ８１２は、レジスタ８１４といったメモリに記憶される。（検証者は、同様な仕方で一つ以上の認証装置１２０に関してイベント状態データ８１２を記憶できる。）イベント状態データ８１２は、例えば動的値（Ｔ）８１５の変化に応じて周期的に更新される。これらのスケジュールされた更新は、認証装置１２０と検証者の両者によって行われる。このようなシステムのためのレジスタ８１４は、認証装置１２０と検証者だけによって知られたランダム値を使用することによって初期化され得る。
【０１１４】
一実施形態ではイベント状態データ８１２自身は単に、入力（または入力の一つ）としてイベント状態データを一方向性関数に適用することによって更新される。これは図ではＥＳt＝ｆ1（ＥＳt-1）として示されており、ここでＥＳtは現在のイベント状態データ８１２であり、ＥＳt-1は前の期間からのイベント状態データ８１２であり、ｆ1はハッシュ関数（例えばＭＤ５およびＳＨＡ−１）、キー誘導関数などといった一方向性関数である。他の演算（例えばビットスワッピング、数学演算）も更新関数ｆの一部として実施されることが可能であり、装置秘密といった他のデータも更新演算に含まれ得る。この周期的更新は、ＥＳt-1の値と更新演算で使用されるアルゴリズムとの両者を知るこれらの装置とエンティティとにとって所定の時間に予測可能であるほどに決定論的である。この予測可能性は、検証者が認証装置と適切に同期していることを条件として、認証装置１２０によって与えられるイベント状態データ８１２が検証者によって予測されるイベント状態データ８１２と一致することを可能にする。
【０１１５】
イベント状態データ８１２の次の値を誘導する際にイベント状態データ８１２の過去の値が使用されるので、過去のイベントはイベント状態データ８１２の後刻誘導される値に絶えず影響を及ぼす。例えば所定の時間Ｔ1でイベント状態データ８１２は或る特定の値を持っており、第２の時間Ｔ2でイベント状態データ８１２は検証者には予測可能である異なる値を（極めて高い確率で）持つであろう。しかしながらイベント状態データ８１２は、元の値を知らない観測者には予測可能ではない。開始時刻に関する観測者の不確実さも障害になり得る。イベント状態データ８１２へのアクセスを獲得する攻撃者は、データがいつ更新されたかを知るであろうが、イベント状態データ８１２が前のイベント状態データ８１２とどのように関係しているかを、すなわち前のイベント状態データ８１２が単純に更新されたか、あるいは正常な演算とは異なる演算によって、または異なる時間に前もって修正および／または更新されたかどうかを知らないであろう。したがって攻撃者が知られたくないイベント（例えば装置の改竄）の発生の証拠を消すために攻撃者がイベント状態データ８１２の過去の値を再生することはできない。
【０１１６】
イベントの発生時に認証装置１２０のイベント状態データ８１２は、さもなければそれが正常動作時にあるとは異なる仕方で修正される。これらのスケジュールされていない更新（Ｕ）は、検出されたイベントの発生に、イベントの性質に、イベントの状態に、または性質と状態との組合せに対応する仕方でイベント状態データ８１２の全部または一部を修正する。一実施形態ではイベントの発生時にイベント状態データ８１２は、現在の時間よりはむしろ次の時間に関する値を持っている。この手法は、更新がイベント検出の結果であるか正常な動作であるかどうかを攻撃者が知っていそうにないので、装置の動作（すなわちイベント状態データ更新）を正常であるように見せるという利点を持っている。他の実施形態ではイベント化発生すると、イベント状態データ８１２を更新するために、周期的更新を生成するために使用される方法とは異なる、スケジュールされていない更新（Ｕ）を実行する方法が使用される。このような一実施形態ではスケジュールされていない更新（Ｕ）を実行する際に、装置秘密８０２であるかも、またはないかもしれない秘密データ（図示せず）が使用される。例えば秘密データまたは秘密データから誘導される値が、イベント状態データ８１２と交換または結合され得る。
【０１１７】
レジスタ８１４は、複数のビット８１７（例えばａとｂ）を含んでおり、第１の部分８１８と第２の部分８２０とを含むことができる。イベント状態データ８１２が二つ以上の部分に分割されると、そこでは一つ以上の部分は現在のイベント状態（ＥＳC）８１８を示すことができ、また一つ以上に部分は前に検出されたイベント（ＥＳLT）８２０に対応できる。一実施形態では周期的更新は、長期イベント状態（ＥＳLT）８２０を変えないままにしておきながら、現在イベント状態（ＥＳC）８１８に対応するビットを修正する（例えば他のデータを使用して演算をセット、リセット、または実行する）。この例では長期イベント状態（ＥＳLT）８２０と現在イベント状態（ＥＳC）８１８の両者が、更新動作の際に使用される。
【０１１８】
図８において長期イベント状態データ８２０と現在イベント状態８１８は、隣接ビット８１７からなる連続部分として示されている。しかしながら長期イベント状態データ８２０と現在イベント状態８１８のどちらか、または両者は、レジスタ８１４の非隣接部分に分割され得る。これらの部分は、単一ビット、隣接ビット、非隣接ビットまたは他のある決定論的仕方でレジスタ８１４から選択されるビット８１７から構成され得る。更に長期イベント状態データ８２０と現在イベント状態８１８の各々は、同じビットのどれも使用できないか、同じビットの一部を使用できるか、同じビットの全部を使用できる。割り当てられたレジスタ８１４が使用される場合、現在時間中に発生するイベントは一バージョンでは、現在イベント状態データ例えば（ＥＳC）８１８に関する情報を含むレジスタ８１４の部分の値を単に更新するように動作できる。したがってイベントの検出は、イベント状態データのどの部分が修正されるかに依存して長期的または短期的効果を持つことができる。
【０１１９】
一実施形態ではセレクタ８２２は、識別認証コード８１０を生成する際に使用され得る図ではＳ1、Ｓ2などと示されている複数の秘密から一つの秘密を選択する。これら複数の秘密は、攻撃者へのこれらの開示を防止する仕方で生成される値であって、例えばこれらの秘密は乱数発生器、暗号化アルゴリズムなどの結果であり得る。
【０１２０】
レジスタ８１４に記憶されたイベント状態データの一部分は、二つ以上の秘密Ｓ1、・・・、Ｓnから選択するために或る特定の時間に使用される。例えばもし２個の秘密Ｓ1、Ｓ2が存在するならば、これら二つの秘密の間で、例えばａ＝０であればＳ1を、ａ＝１であればＳ2を選択するために、１個のビット（ａ）が使用され得る。もし4個の秘密Ｓ1、Ｓ2、Ｓ3、Ｓ4が存在するならば、これらの秘密の間で、例えばａ＝０、ｂ＝０であればＳ1を、ａ＝１、ｂ＝０であればＳ2を、ａ＝０、ｂ＝１であればＳ3をａ＝１、ｂ＝１であればＳ4を選択するために、２個のビット（ａｂ）が使用され得る。選択された秘密は、認証コード８１０を生成するためにセレクタ８２２によって結合関数８２６に供給される。このようにして認証コード８１０は、イベントの発生および／またはイベントの性質に関する情報を検証者に与える。他の変形版が可能であることは無論である。例えば選択された秘密自身の一部分は、認証コードとして使用され得るであろう。
【０１２１】
更なる実施形態では秘密のマルチレベル階層が使用される。マルチレベル階層の一つの一般的な例は、月シード、日シード、時間シードおよび分シードを含む１セットの値である。この例では月シードは、日シード、時間シード、分シードの値を決定するために必要とされるので最高レベルのシードである。図８に示す実施形態では各秘密Ｓ1、・・・、Ｓnは、例えば月シードであり得る親秘密Ｓ0から生成される。したがって各秘密は、異なる潜在的な日シードである。この実施形態の一実施例では秘密は、各秘密Ｓnに関して関数（ｆ2）が親秘密Ｓ0とこれに対応する秘密番号（ｎ）とに適用されたときに生成される。関数（ｆ2）は、ハッシュ関数（例えばＭＤ５とＳＨＡ−１）、キー誘導関数などといった一方向性関数であり得る。この仕方で生成された秘密Ｓ1、・・・、Ｓnもまた、親秘密Ｓ0が更新されるときに周期的に更新されるであろう。このようにして新しい日秘密が生成されるときに新しいイベント秘密も生成され得る。この実施形態の更なるバージョンでは前の時間からの秘密（例えばＴ1におけるＳn）もまた、現在時間に関する秘密（例えばＴ2におけるＳn）を生成するために入力として関数（ｆ2）に供給され得る。
【０１２２】
一般に結合関数８２６は、認証装置１２０にオンボードで記憶されている、および／または認証プロセス時に遠くから（リモートに）アクセスされるデータを使用して認証コード８１０を生成する。図示のようにこのデータは一つ以上のイベントの発生を表す秘密Ｓ1、・・・、Ｓｎ、装置秘密８０５、動的値（Ｔ）８１５、生成値（Ｎ）などといった値を含むことができる。その他の例におけるようにこれらの値から誘導される値は使用可能であろう（例えば動的値、または装置秘密の代わりに装置秘密から誘導される月シード）。同様に結合関数には更なる値が含まれ得る（例えば呼掛け値または他のデータ）。
【０１２３】
この実施形態の一バージョンでは７ビット・レジスタ８１４が１２８個の利用可能な秘密、例えばＳ1、・・・、Ｓ128という結果をもたらす。しかしながらレジスタ８１４は、遥かに大きく、例えば１６０ビットにもなり得る。大きなレジスタ８１４サイズは、選択され得る利用可能な秘密の数を膨大に増加させる機会を与える。しかしながら所望されるセキュリティレベルを与えるために必要とされる数を超えて利用可能な秘密の数を拡大することは必要とすべきではない。これは、イベント状態データ８２０を与える際の使用のために全レジスタ８１４の一部部だけを選択することによって避けることができる。同様にもう一つの例としてレジスタは、毎分使用される２個の異なるビットによって１時間使用されることが可能である。
【０１２４】
他の実施形態ではイベント状態データ８１２の更新、秘密Ｓ1、・・・、Ｓnの更新または或る組合せは、少なくとも部分的には認証装置１２０が検証者から受信する呼掛けの結果から得られる。
【０１２５】
検証者が識別認証コード８１０を受信すると、検証者は既知のイベント状態データ８１２に基づいてその受信されたコード８１０が予期された値であるかどうかを決定する。もしそうでなければ、検証者はイベント状態データ８１２の一つ以上の更なる値に関して予期される認証コード８１０を計算する。秘密を生成するためにイベント状態データ８１２の単一ビットが使用される場合には、単に二つの可能なイベント状態が存在する。その結果、有効な認証装置１２０によって与えられ得る単に二つの可能な認証コード８１０、例えばＳ1を使用して誘導される第１の認証コードとＳ2を使用して誘導される第２の認証コードが存在する。
【０１２６】
選択のために２個のビットが使用されるときには検証者は、有効な認証装置１２０の４個の可能なイベント状態（例えば００、０１、１０、１１）のいずれによって識別認証コード８１０が生成されたかどうかを決定できる。２ビットが使用されると、検証者は、受信されたコードを秘密Ｓ1、Ｓ2、Ｓ3、Ｓ4によって生成されるはずの受信コードと比較し、イベントが発生したことを認証コードが示すかどうか、または無効な認証コードが受信されたかどうかを決定するであろう。上述のように複数のビット８１７に含まれるビット８１７の数が大きいほど、潜在的に有効な秘密の数と潜在的に有効な認証コード８１０の数の両者は増加する。しかしながら検証者によって実行されるこれらの計算は、検証者が最も可能性の高い秘密（すなわちイベント状態データ８１２の最も可能性の高い値）に基づいて認証コード８１２を計算することによって開始する場合に、より迅速に完了することができる。例えば検証者は、先行する認証の各々においてイベント状態データ８１２の値を知るであろう。検証者の知識は、有効な認証装置１２０のイベント状態または認証コード８１０の無効性を決定する前に必要とされる繰り返しの回数を減少させる。イベント状態データ８１２が非常に多くのビット８１７から形成される場合には、減少した繰り返し回数は、認証コード８１０を処理する際に検証者の効率を実質的に向上させることができる。無論のこと、秘密Ｓ1、・・・、Ｓｎを生成する方法だけを知っているがイベント状態データ８１２を知らない検証者は、働いてはいるが前の効率の利点を欠いていてイベント状態を決定できないかどうかを見るために各秘密を試してみることによって、なお認証コードを検証することができる。
【０１２７】
代替として認証コード８１０は、繰り返し計算を実行する必要なしに認証コード８１０が誘導される時間とイベント状態の一方または両方を検証者が直ちに決定することを可能にする情報を含むことができる。一実施形態ではこのような手法は、時間および／またはイベント状態を暗示または示唆する明示的情報を認証コード８１０内に含むことによって実現される。
【０１２８】
検証者は、認証コードに対応するイベント状態が予期されないときにはスケジュールされていない更新が発生した可能性があると考えることがあり得る。それから検証者は、前のスケジュールされた更新の間の或る時刻にスケジュールされていない更新が発生したと想定して、イベント状態を再計算することができる。もし再計算されたイベント状態が将来の認証演算における認証コードに対応するイベント状態と一致し続ければ、検証者はそのスケジュールされていない更新がある特定の時刻に発生したと推断できる。代替として検証者は、時刻を決定することなくスケジュールされていない更新が発生したと結論付けることができる。
【０１２９】
スケジュールされていない更新が検証者によって検出されると、検証者は検証者によって実行される将来の周期的更新の結果が認証装置によって実行される将来の周期的更新の結果に対応するように、認証装置１２０に関する検証者のデータを更新することができる。
【０１３０】
前述の実施形態の一つ以上は、一つ以上のマスター検証者と一つ以上の従属検証者とを含むシステムにおいて使用され得る。一般にマスター検証者は、認証時に使用される通信端末１４０から従属検証者よりも遠く離れている。一実施形態ではマスター検証者は、一つ以上の認証装置１２０に関する各秘密とそれに対応する認証コードとを計算するために必要とされる情報を記憶している。認可された検証者による認証を容易にするために認証装置１２０とこの手法で使用されるマスター検証者との両者は、各期間中に一時秘密を誘導する。しかしながら従属検証者は、マスター検証者から秘密を受信したときにそれに提示されるコードだけを認証できる。更に従属検証者によって受信された秘密は、特定の期間中だけ有効であって（すなわちこれらは一時秘密である）、これらは限られた数の認証装置に関してだけ有効である。その結果、従属検証者は、減少した期間中だけ認証できる。従属検証者が認証できる期間は、従属検証者が認証コードを生成するために使用される有効な秘密を所有している期間に限られる。この手法は、従属検証者が危険に曝される場合に攻撃者がなし得る損傷を減らすので有利であり得る。
【０１３１】
従属検証者は、秘密の更新に同意し、要求に応じて、またはスケジュールされた更新で、またはその両方でマスター検証者から一時秘密を受信する。これらの一時秘密は、或る特定の期間中だけ、例えば１月、１日、１時間などの間だけの使用に限定され得る。更に、または代替として、各秘密が満了期間の終了に先立つ任意の時間に一度使用され得る場合には、ある設定された量の一時秘密が供給され得る。一時秘密として使用され得る幾つかの値は、例えば図２の装置秘密（Ｋ）と動的値（Ｔ）とイベント状態データ（Ｅ）とを含む。代替として前述の実施形態の一時秘密は、単一の期間中だけ有効である一時マスター秘密から生成され得る。この代替手法では、マスター検証者は、同意している従属サーバの各々に、その期間中に装置秘密（Ｋ）と動的値（Ｔ）とイベント状態（Ｅ）とのうちの一つ以上を生成するために使用される一時マスター秘密を与える。
【０１３２】
前述の実施形態の一つ以上とも整合する更なる実施形態では、検証者１０５と認証装置１２０との間の情報の通信を容易にするために、中間サーバが使用される。この手法は、認証装置１２０の有用性を増加させるので有利である。例えば認証コードは、認証システム１００に一般に関与しないシステム、例えば検証者１０５を欠くシステムに提示され得る。この実施形態では中間サーバは、認証を完了するために検証者１０５と通信するであろう。
【０１３３】
前述の手法の一つ以上はまた、攻撃者がイベント状態とイベント状態データとの過去の値を検出することを防止する手法を使用することもできる。この手法は、認証装置１２０の物理メモリへのアクセスを有する攻撃者による攻撃の成功を防止するために使用され得る。このような攻撃は、延長された期間中にメモリに記憶された値がそれら自身をメモリ内に焼き込むことができるので成功の可能性を持っている。これらの値を消去または上書きしようとする後刻の試みは、適当に装備した攻撃者からこの隠された情報を消去することができない。磁気記憶媒体もまた、前に記憶された値の望ましくない長期のメモリから被害を受ける。ＲＡＭに記憶された値の場合のようにこれらの過去の値もまた、メモリへのアクセスを有する攻撃者によって再生され得る。
【０１３４】
一実施形態ではイベント状態データの頻繁な周期的更新は、イベント状態データの過去の値の焼き込みを防止する。もう一つの実施形態ではイベント状態データは、暗号的に保護される。例えばイベント状態データは、二つ以上のレジスタに、または同じレジスタの別々の部分に記憶され得る。この手法を使用すると、排他的論理和演算はイベント状態データを共に形成する値に適用されることが可能であって、これらの値は時間に亘って更新され得る。その結果、イベント状態データの実際の値は直接には記憶されず、またどの値も焼き込みできないが、それでもなおイベント状態データは容易に決定され得る。この方法は、前述の周期的更新と共に使用され得る。このような手法は、例えばその内容が引例によってここに組み込まれている、Ｓｙｍｐｏｓｉｕｍ  ｏｎ  Ｔｈｅｏｒｉｔｉｃａｌ  Ａｓｐｅｃｔｓ  ｉｎ  Ｃｏｍｐｕｔｅｒ  Ｓｃｉｅｎｃｅ，１９９９（コンピュータ科学における理論的態様に関するシンポジウム、１９９９年）のＤｉ  Ｃｒｅｓｃｅｎｚｏ等による「Ｈｏｗ  ｔｏ  Ｆｏｒｇｅｔ  ａ  Ｓｅｃｒｅｔ（秘密を忘れる方法）」に記載されている。
【０１３５】
ここに説明されていることの変形版、修正版、および他の実施形態は、請求されているような本発明の精神と範囲から逸脱することなく、本技術に通常のスキルを有する人々に思い浮かぶであろう。したがって本発明は、前述の例示的説明によってではなく、その代わりに前述の請求項の精神と範囲とによって定義されるべきである。
【図面の簡単な説明】
【０１３６】
これらの図面では同じ参照文字は、一般に種々の図を通して同じ部分を指している。またこれらの図面は、必ずしもスケールに従っておらず、その代わりに概ね本発明の原理を説明すること力点が置かれている。
【図１】本発明の一実施形態による認証装置と検証者とを含む認証システムを示すブロック図である。
【図２】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図３】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図４】図３の実施形態の詳細な実施形態を示すブロック図である。
【図５】認証コードを生成する際のイベント状態データの使用を示す例である。
【図６】認証コードを生成するための方法の実施形態を示すフローチャートである。
【図７】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図８】本発明の一実施形態による認証コードの生成を示すブロック図である。
【符号の説明】
【０１３７】
１００  認証システム、  １０５  検証者、  １１０  利用者、  １２０  利用者認証装置、  １３０  ユーザインタフェース、  １４０  通信端末、  １４５  端末インタフェース、  １６０  通信インタフェース、  １７０通信チャネル、  ２３０  結合関数、  ２３５  装置データ、  ２９０、２９１、２９２、２９３  認証コード、  ３０５  第１の秘密値、  ３１０  イベント秘密、  ３１５  動的値、  ３２０  イベント状態データ、  ３２５  時間固有値、  ３３０  識別認証コード、  ４１０  イベント秘密、  ４１１  初期値、  ４１３  イベント秘密キー、  ４１５  動的値、  ４２０  イベント状態ビット、４２５  入力、  ４２９  分秘密、  ８０２  装置秘密、  ８０５  装置秘密、  ８１０  認証コード、  ８１２  イベント状態データ、  ８１４  レジスタ、  ８１５  動的値、  ８１７  複数のビット、  ８１８  現在イベント状態、  ８２０  長期イベント状態、  ８２２  セレクタ、  ８２６  結合関数
【図１】
2006508471.tif 000003
【図２】
2006508471.tif 000004
【図３】
2006508471.tif 000005
【図４】
2006508471.tif 000006
【図５】
2006508471.tif 000007
【図６】
2006508471.tif 000008
【図７】
2006508471.tif 000009
【図８】
2006508471.tif 000010
【国際調査報告】
2006508471.tif 000011
2006508471.tif 000012
2006508471.tif 000013