説明

識別認証システムおよび方法

時間的に変化する動的値とイベントの発生に関連するイベント状態と認証装置に関連する秘密とに少なくとも部分的に依存する認証コードを生成するための方法およびシステム。イベント状態に応じて認証コードを生成することによって識別認証コードは、識別性を検証するため、イベント状態情報を伝達するため、そして確実な仕方でそうするために使用されることができる。

【発明の詳細な説明】
【技術分野】
【0001】
本出願は、2002年11月27日に出願された米国特許仮出願第60/429,754号の35U.S.C.§119(e)の下での恩典を請求する。
【0002】
本発明は、一般的には暗号法とセキュリティの分野に関する。より特定的には本発明は、識別認証コードの生成と検証とに関する。
【背景技術】
【0003】
一般にセキュリティシステムは、物理的セキュリティシステムの場合には物理的場所または物体へのアクセスが許されるエンティティ(実体)の識別性、またはデータセキュリティシステムの場合にはコンピュータシステムまたはデータへの電子的アクセスが許されるエンティティの識別性を検証するために、識別性に基づく認証方式を使用する。このようなセキュリティシステムの一つの目標は、認可されていない関係者がアクセスを獲得できないように識別性を正確に決定することである。セキュリティシステムは、エンティティを認証するために数個の因子の一つ以上を単独で、または組み合わせて使用できる。例えば識別システムは、エンティティが知っている或るもの、エンティティがそうである或るもの、またはエンティティが持っている或るものに基づくことができる。
【0004】
エンティティが知っている或るものの例は、コード語、パスワード、個人識別番号(「PIN」)などである。一つの例示的なコンピュータに基づく認証方法は、特定のエンティティまたは利用者に固有である秘密の伝達を含む。認証を求めるエンティティは、エンティティの識別性を認証する検証者に秘密またはその秘密から誘導される値を送信する。典型的な実施形態ではエンティティは、識別情報(例えば利用者名)と秘密(例えばパスワード)の両者を検証者に伝達する。検証者は典型的には、秘密を各エンティティに関連付ける記録を所有している。もし検証者がエンティティに関する適正な秘密を受け取れば、そのエンティティは首尾よく認証される。もし検証者が正しい秘密を受け取らなければ、認証は果たされない。
【0005】
エンティティがそうである或るものの例は、指紋、筆跡、眼の網膜パターン、および顔、体、器官の外観、サイズ、形状といった身体的、生物学的、心理的特徴(ここでは一般に生物学的特徴と呼ばれる)といった、人々に特有の特徴を含む。適当な生物学的特徴は、典型的には人の制御下になく、したがってそれらは部分的にでも複製することが困難であるので、意図している人に限らず誰にとっても提示することは困難である。検証者は典型的には、その特徴を観測でき、また特徴をエンティティに関連付ける記録とその特徴とを比較できる。生物学的特徴の観測は、一般に生体測定的測定と呼ばれる。
【0006】
エンティティが所有する或るものの例は、利用者にとって一意である、または相対的に一意である一般にトークンと呼ばれる物理的またはディジタルの物体である。単純な例は、ドアで使用される通常の金属のキーである。実際にドアキーの所有は、ロック(錠)に関して利用者を認証して入室を許可する。同様に、例えばある特定の仕方でトークンがアクセスされるときに現れる固有の識別番号を有するある幾つかの特定の物理的電子的特徴を持つバンクカード(キャッシュカード)といったトークンの所有は、このタイプの因子であり得る。コンピュータ装置内に在る暗号化キーを使用して暗号化を実行するコンピュータ装置を含むトークンもまた、このタイプの因子と考えられるであろう。例えばトークンは、PINまたは呼掛け値を含み得る利用者入力を受け入れて、カードに記憶された秘密暗号化キーで暗号化された結果を出力として与え得るであろう。
【0007】
トークンはまた、あるいは代替として時間といった更なる入力情報を使用するかも知れず、あるいは例えば、結果が時間的には変化するが、秘密(例えばトークンと検証者だけによって知られている値)、しかしその秘密を所有しない観測者によって予測できない秘密を所有するエンティティにとって決定論的であるようなカウンタを使用する可能性もある。これらのシステムは一般に、エンティティを認証するために使用される認証コードを生成するために記憶された秘密を入力として使用して、ある計算を実行する。ある幾つかのシステムは、最終的にエンティティを認証する非予測可能認証コードを計算するために時間ベースの動的変数を使用するという点で時間ベースである。ここで「非予測可能」は、認証コードが関連の秘密またはそのコードを計算するためのアルゴリズムまたはそれら両者を知らない関係者によって予測可能でないことを意味する。一例の「System and Method for User Authentication Employing Dynamic Encryption Variables(動的な暗号化変数を使用する利用者認証のためのシステムおよび方法)」と題する米国特許第5,937,068号は、入力として3個の変数、すなわち現在時刻と、カードによって行われたアクセス要求の回数と、1アクセス要求ごとに更新される「秘密の動的暗号化キー」の組合せまたはサブセットを使用する。この場合トークンはまた、認証コードを伝達する前に利用者によって入力されたPINを検証する。
【0008】
このような手法によって生成される認証コードの動的性質は、一定の認証コードの使用に本来付随する問題を回避するが、管理されていない、あるいは盗まれたトークンは攻撃に対して無防備のままに留まる。トークンへのアクセスを獲得する自称攻撃者は、トークンをそれらの操作方法を、および/またはその中に記憶された秘密を決定するために意図された高性能の分析にかけることができる。攻撃者は、関連する秘密、または認証コードを計算するためのアルゴリズム、またはそれら両者、を決定するためにトークンを調べてこのような分析を実行する可能性がある。それから攻撃者は、安全に保護された領域またはシステムへの物理的または電子的アクセスを不正に獲得するために、見たところ正当な認証コードを生成することができるかもしれない。多くの改竄防止ハードウエア設計は利用可能であるが、改竄防止を挫折させるために新しい攻撃が頻繁に開発されている。更に現在の改竄防止設計は、検証者、認証システム、システム管理者または他の関連当局にトークンが改竄されたという如何なる徴候も与えない。
【0009】
改竄の検出に対する一つの手法は、Johan Hastad、Jakob Jonsson、Ari Juels、Moti Yung「funkspiel schemes:an alternative to conventional tamper resistance(フンクスピール方式:従来の改竄防止に対する代替手段)」、2000年のコンピュータと通信のセキュリティに関するACM会議、125〜133ページに記述されている。Hastad等は、幾つかの「フンクスピール方式」を説明しており、それによって装置は、改竄することが検出されたかどうかを敵対者に明らかにすることなく、改竄が発生したことを検証者に示すことができる。これらの方式は、一連のメッセージ認証コードの生成に向けられており、この場合改竄が検出された後には、メッセージ認証が果たされ得ない。与えられた一例ではメッセージ認証コードはディジタル署名方式に埋め込まれており、ここではディジタル署名は取引が装置によって承認されたかどうかを示すが、メッセージ認証コードは装置が改竄されたかどうかを示す。メッセージ認証コードそれ自身は、時間ベースの識別認証よりむしろ一連のメッセージ取引に向けられているので、識別認証コードとしては適当でない可能性がある。特にHastad等は、検証者による実質的な計算(例えば潜在的に長い一連の関数評価)または両関係者による実質的な計算(例えば非対称暗号化)または両関係者による実質的な記憶(例えば多くの1回ビット)なしで、極めて長期間に亘ってこれらの間で単一の認証コードを効率的に検証するための如何なる方法も提供していない。
【発明の開示】
【発明が解決しようとする課題】
【0010】
本発明は、検証者が認証コードを効率的に検証できて、イベント状態の信号送出を識別できる、イベントの発生の徴候を識別認証コードの効率的計算に直接含めることによって、これらの欠点に取り組んでいる。
【課題を解決するための手段】
【0011】
従来の手法は、認証コード内のイベント情報または認証コードの一部としてのイベント情報を伝達するための柔軟性を持たないが、本手法では認証コードは一つ以上の報告可能なイベントの発生に関する情報を検証者に伝達する仕方で生成される。報告可能なイベントは、認証方法の正常な動作に関連するイベントとは異なる(そして検証者に報告され得る)イベントである。こうして例えば、報告可能なイベントは、認証コードに関する要求を報告するイベントを含まないであろう。これに対して報告可能なイベントは、変則的な、異常な、顕著な、通常でないなどのうちの少なくとも一つであるイベントであり得るであろう。報告可能なイベントはまた、装置によって検出され得る、および/または装置によって、または装置に伝達され得る如何なる種類のイベントでもあり得る。例示的報告可能なイベントは、装置の改竄;装置によって検出される装置の外部のイベント;閾値を超える、または閾値未満の温度といった環境的イベント;静電気放電;高いまたは低いバッテリーパワー;特定場所における地理的存在;生体測定示度における信頼度レベル;等々を含む。報告可能なイベントはまた、認証システムのセキュリティが損なわれた可能性の、または認証装置が動作上の問題(例えば認証装置の状態)を持つか、発展させる可能性の徴候を与えることもできる。報告可能なイベントは、多数の過去のイベントの累積結果であり得る。報告可能なイベントはまた、装置の動作状態でもあり得る。
【0012】
報告可能なイベントは、認証装置の状態(例えば改竄、低いバッテリーパワーなど)、認証システムのセキュリティ(例えば利用者の生体測定情報の強度、PIN入力の精度、認証装置署名の検証)、利用者の状態(例えば移動または静止状態、ネットワークアクセス位置、施設内の位置など)、装置の位置(例えば地域、国、都市など)、あるいは装置が位置する環境(例えば温度、放射線レベルなど)に関する情報を含むことができる。一実施形態では報告可能なイベントは、認証装置の状態、認証システムのセキュリティ、利用者の状態、装置の位置、および装置が位置する環境のうちの少なくとも一つに関する情報を直接報告する。
【0013】
一般に本発明の幾つかの態様において利用者または利用者の代わりの装置は、動的変数(例えば時間的に変化する)と利用者または装置に関連する秘密との両者に基づいて認証コードをアルゴリズム的に計算する。生成された認証コードは、観測者にとって非予測可能であるが、検証者によって検証可能である。認証コードはまた、部分的には他の任意の情報に、例えばPIN、パスワードおよび生体測定観測から誘導されるデータ、または利用者、認証装置または検証者に関連する情報のうちの一つ以上に依存することもできる。
【0014】
認証システムのセキュリティは、報告可能なイベントの発生時に装置が特定の措置をとるときに改善される。一つの例示的実施形態では、もし攻撃者が装置を分解しようと、さもなければ装置を改竄しようと試みた場合に、装置が装置のイベント状態を伝達することによってこのようなイベントの発生(いったん装置によって検出された)を検証者に信号で知らせることが有用である。この例では改竄イベントは、少なくとも二つの可能なイベント状態を、すなわちYES−改竄が発生した状態と、NO−改竄が発生しなかった状態とを持つ。改竄のタイプに関する情報または改竄が発生した時刻に関する情報といった他の情報も伝達され得る。報告可能なイベントの他の例は、環境的イベント(例えば高いまたは低い温度)、バッテリー電圧レベル、およびPINまたはパスワード入力の正確さを含む。
【0015】
一実施形態ではイベントの発生は、認証コードで明示的に伝達される。例えば認証コードに含まれる一つ以上のビットは、イベントの発生を報告するために、すなわちイベント状態を報告するために専用にされ得る(またここでわれわれは、イベント状態を表す、伝達する、またはイベント状態から誘導されるデータをイベント状態データと呼ぶ)が、ここでイベント状態はイベント(単数または複数)の発生または非発生に関しての装置の状態に関する情報である。もう一つの実施形態では装置のイベント状態は、装置と検証者だけが通信からイベント状態を容易に決定し得るように暗示的に伝達され得る。警告されない攻撃者は当局による観測と逮捕とに導き得る措置をとる可能性がより高くなるので、イベントが検出されて伝達されたかどうかを装置へのアクセスを有する攻撃者がもし決定できなければ、好都合であり得る。ある幾つかの実施形態では装置は、イベントの発生が報告可能なイベントの発生に続いて、装置によって出力される識別認証コードで伝達されるように、イベントの発生時には異なって動作する。これは、複製を思いとどまらせる助けとなり得る。例えば変則的なイベントの警告を発している装置がコピーされると、「クローン」またはコピーされた装置もまたその変則的なイベントを報告するであろう。
【0016】
一実施形態では認証方法は、トークンまたはキーフォッブといった利用者に提供されるハードウエア装置に組み込まれ得る。(他の可能性は以下に説明される。)更に装置は、例えば汎用コンピュータ、ハンドヘルドコンピュータ、電話、パーソナルディジタルアシスタント(PDA)等々に上で、または他の或る仕方で実行されるソフトウエアとして、この方法を実行するためのソフトウエアプログラムを含むことができる。ある幾つかの実施形態では装置は、認証こと度を生成するために利用者がPIN、検証者識別子等々といった第2の秘密を入力することを可能にする。
【0017】
一般に一態様で本発明は、イベント状態を装置内に記憶し、イベントに応じてイベント状態を修正し、動的値(例えば時刻値)とイベント状態と装置に関連する秘密とに少なくとも部分的に依存する認証コードを生成することによって識別認証コードを生成する認証装置に関する。こうして認証装置は、イベント状態に基づいて異なる識別認証コードを生成する。受信された認証コードを認証装置によって生成され得る可能な認証コードと比較することによって検証者は、利用者の識別性を認証できるばかりでなく、イベント状態も決定でき、それによって一つ以上のイベントが発生したかどうかを決定できる。
【0018】
ある幾つかの実施形態ではイベント状態は、一つ以上の報告可能なイベントに関連している。ある幾つかの実施形態ではイベント状態は、報告可能なイベントに応じて修正される。ある幾つかのこのような実施形態ではイベント状態は、一つ以上の報告可能なイベントの状態を反映するイベント状態データの形で記憶される。こうしてイベント状態データは、イベント状態を伝達できる。
【0019】
ある幾つかの実施形態では本方法は、イベントの報告が認証コードで伝達されたかどうかを装置へのアクセスを有する攻撃者が決定することができないように構成される。前に簡単に述べたように、イベント情報の通信は「隠された(コバート)」と呼ばれることができる。これに対してもしあるイベント情報が攻撃者または観測者によって推定され得るならば、この通信は「公然の(オバート)」と呼ばれる。隠された通信は、攻撃者が報告に気づくことなくイベントの発生を報告するために使用され得るので有益であり得る。公然の通信は、一般の観測者が状態情報について通知されることを可能にするという点で有益であり得る。イベント状態のある部分を隠された仕方で、他の部分を公然の仕方で通知することは可能である。
【0020】
イベント状態情報を使用して識別認証コードを生成するためのシステムの実施形態は、イベント状態を認証装置に記憶するためのデータ記憶装置と、一つ以上の報告可能なイベントに応じてイベント状態を修正するためのイベント記録装置と、動的値とイベント状態と装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するための認証コード発生器と、を含むことができる。このような実施形態は、認証装置の一部(例えばトークン)または検証者の一部(例えば検証コンピュータ)またはその両者として含まれることができる。装置と検証者の両者に関してシステムは、マイクロプロセッサまたは他の汎用コンピュータといったコンピュータ上で動作するソフトウエアとして実現可能である。このシステムはまた、上述のようにハードウエアに実現されることも可能である。
【0021】
一般に他の態様では検証者は、時間と装置に関連する秘密とイベント状態とに少なくとも部分的に依存する、装置によって生成される識別認証コードを含む認証情報を受信する。検証者は、受信された識別認証コードに応じて利用者の識別性を検証し、イベント状態を決定する。検証者は、そのイベント状態からイベントが発生したかどうかを決定できる。検証者は、決定されたイベント状態に応じて措置を取ることができ、例えば後刻の分析のためにイベント状態をログ(記録)すること、またはシステム管理者または関連当局に警告すること、あるいはその場所またはシステムに、異なるイベント状態が決定された場合に与えられるよりも更に限定されたアクセスを与えることができる。認証情報はまた、利用者識別子とPINとパスワードと生体測定示度と他の更なる認証情報とのうちの一つ以上を含むことができる。
【0022】
ある幾つかの実施形態では検証者は、時間に関連する動的値とイベント状態とに少なくとも部分的に依存する予期される識別認証コードを生成する。イベント状態は、以下更に説明されるイベント状態秘密と、一つ以上のビットが時間間隔に関連するイベント状態秘密から誘導されるビットと、を含むことができる。
【0023】
一般に他の態様では本発明は、例えば認証装置および/または検証者によって識別認証コードを生成するためのシステムと方法とに関する。先ず装置を説明すると、この装置は、認証装置に関連する第1の秘密値と、イベント状態に関連する第2の秘密値とを記憶している。装置はまた、時間的に変化する動的値を生成する。装置は、第2の値と動的値とから時間に関連するイベント状態データを誘導する。装置は、第1の値とイベント状態データとから時間に関連する値を誘導する。それから装置は、入力として時間固有値を使用して識別認証コードを計算する。同様にして検証者は、イベント状態データに依存する一つ以上の可能な認証コードを決定するようにこれらの方法ステップを実現できる。
【0024】
一実施形態ではイベント状態データは、各々が時間と関連するビットを含んでおり、この場合、時間固有値は第1の値と、時間に関連するそれぞれのビットとから誘導される。このような実施形態では、ビットの値に依存して時間に関連する二つの可能な状態が存在する。もしあるイベントが発生すれば、これらのビットは、生成された認証コードがこれら二つの可能な選択のうちの他方であるように検出されたイベントに応じて修正される。任意選択的に第2の秘密値(イベント状態に関連する)はまた、イベント状態ビットの後刻の生成が正常とは異なる値を持つように、検出されたイベントに応じて修正され得る。第1の秘密値は、第2の秘密値と同じであり得るか、異なる値であり得るか、部分的にオーバーラップし得る。
【0025】
一実施形態ではイベント状態データは、それぞれの時間に関連する多数のビットを含んでおり、この場合、時間固有値は第1の値と、それぞれの時間に関連するこれら多数のビットとから誘導される。
【0026】
一般に他の態様では、認証装置に関連する識別認証コードを生成するためのシステムは、認証コード発生器を含む。認証コード発生器は、時間的に変化する動的値とイベントの発生を示すイベント状態と認証装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成する。このようなシステムの一実施形態は、マイクロプロセッサまたは汎用コンピュータといったプロセッサ上での実行のためのソフトウエアプログラムとして実現される。本システムは、認証装置または検証者または他のシステムに含まれ得る。
【0027】
本発明の前述および他の目的と態様と特徴と利点は、下記の説明と請求項から更に明らかになるであろう。
【発明を実施するための最良の形態】
【0028】
図1を参照すると、本発明による認証システム100の一実施形態で検証者105は、例示的利用者110の識別性を確実に認証することを助けるために使用される。ここで使用されるように「認証する」は、利用者の識別性を検証することを意味し、したがって「認証する」と「検証する」は、全体を通じて交換可能に使用され得る。また本明細書は、簡単のために「利用者」の認証を論じるが、「利用者」が例えば人、動物、装置、機械またはコンピュータといった認証を必要とする如何なるエンティティ(実体)をも意味することは理解されるべきである。単一の利用者110の包含することは例示的であって、典型的には検証者105は非常に多くの利用者110を検証するために使用されるであろう。同様に単一の検証者105の包含することは例示的であって、典型的には利用者110は非常に多くの検証者105のうちの一つ以上によって検証される認証の試みを持つことができる。ある幾つかの実施形態では単一の検証者105が一つの利用者110を検証できるが、他の実施形態ではこの仕事を実行するために二つ以上の検証者が共に必要とされる。
【0029】
検証者105は、ここで説明される機能を実現する如何なる種類の装置であっても良い。一実施形態では検証者105は、例えば一企業内の非常に多くの利用者の認証を可能にするためにプロセッサ、メモリなどを含むサーバークラスのコンピュータ上で動作するソフトウエアとして実現される。検証者105はまた、デスクトップコンピュータ(卓上計算機)、ラップトップコンピュータ、専用装置、またはパーソナルディジタルアシスタント(PDA)の上で動作するソフトウエアとして実現されることもあり得る。例えば検証者105は、おそらくは同じまたは異なるコンピュータ上で一つ以上の他のコンピュータプログラムと対話しながら、汎用コンピュータ上で動作するソフトウエアプログラムとして実現されることもあり得る。検証者105機能の一部または全部は、ハードウエアに、例えば特定用途向け集積回路(ASIC)などに実現されることもあり得る。なお更なる実施形態では検証者105は、セルラー電話(携帯電話)に、またはセルラー電話に埋め込まれていてセルラー電話の回路と対話することに適応した特殊ハードウエアに実現されることもあり得る。本発明の精神から逸脱することなく、他のサイズ、形状および実施形態が可能である。
【0030】
認証は、限定なしに、アクセスまたは特権を与えること、措置をとること、またはこれら二つのある組合せを可能にすることを含む一つ以上の措置の遂行という結果になり得る。アクセスは限定なしに、物理的場所、通信ネットワーク、コンピュータシステムなどへのアクセス;金融サービス・記録、健康サービス・記録などといったサービスへのアクセス;または情報またはサービスのレベルへのアクセスを含む。利用者110と検証者105は、物理的に互いに近くに在ることも、遠く離れていることもあり得る。
【0031】
図示のように利用者110は、利用者認証装置120と通信することができる。利用者認証装置120は、利用者110を認証するために使用される情報を与える。利用者認証装置120は、任意選択的にユーザインタフェース130を与えることができる。利用者110と利用者認証装置120との間の通信は、このユーザインタフェース130を介して行うことができる。ユーザインタフェース130は、入力インタフェース、出力インタフェースまたは両者を備えることができる。入力インタフェースは、利用者110が利用者認証装置120に情報を伝達することを可能にする。入力インタフェースは、利用者入力を受け取るための如何なる機構であってもよく、また限定なしに、キーパッドまたはキーボード;一つ以上の押しボタン、スイッチまたはノブ;タッチスクリーン(接触感応画面);ポインティング装置または押圧装置;トラックボール;音響、音声または筆跡を捕捉するための装置;生体測定入力(指紋、網膜または音声特徴といった)を捕捉するための装置;等々を含むことができる。出力インタフェースは、利用者認証装置120が利用者110に情報を伝達することを可能にし、また限定なしに、LCDディスプレイまたはLEDディスプレイといった英数字または図形をサポートする表示装置;電気泳動表示装置;一つ以上の光源;拡声器(ラウドスピーカー)、音響または音声発生器;振動インタフェース;等々を含む、利用者に情報伝達するための如何なる機構でも良い。ある幾つかの実施形態では利用者110は、ユーザインタフェース130を介して利用者認証装置120に、識別情報(利用者識別子、またはPIN、またはパスワード、または指紋、網膜パターンまたは音声サンプルといった生体測定特徴)を与え、あるいは所有物(物理的キー、ディジタル暗号化キー、ディジタル証明書または認証トークン)を与える。
【0032】
利用者認証装置120は、利用者認証装置120が確実な認証のために利用者認証装置120に必要とされる機能を実行することを条件として、本発明の種々の実施形態において種々の形をとりうる。利用者認証装置120は、幅広い種々の形と形状因子とを有するパッケージに実現され得る。例えば利用者認証装置120は、クレジットカードのサイズと形状の装置であることができ、あるいは遥かに小さいことも遥かに大きいこともあり得る。利用者認証装置120のクレジットカードサイズの一実施形態は、オンボードメモリと電源と小型LCDディスプレイとを有するマイクロプロセッサを含む。この実施形態は任意選択的に、PIN入力用、または認証情報要求の入力用、または他の入力用または装置120との対話用のキーパッドまたはボタンを含む。他の実施形態ではクレジットカードサイズの装置120は、電力および/またはインタフェースを提供するもう一つの装置に設置され得る「スマートカード」として使用されるオンボードメモリを有するプロセッサを含む。更に他の実施形態ではクレジットカードサイズの装置120は、その片側に磁気ストリップまたは他のデータ記憶装置を含むクレジットカードといったカードである。他の実施形態では利用者認証装置120は、「キーフォブ」、すなわちキーリングに取り付けられるようにサイズと形状が決められたディスプレイとバッテリーを有する更に小型の装置である。更に他の実施形態では利用者認証装置120は、コンピュータ、または電話、またはUSBドングルといった他の装置と通信する周辺装置である。なお更に他の実施形態では利用者認証装置120は、デスクトップコンピュータ、ラップトップコンピュータまたはパーソナルディジタルアシスタント(PDA)であり得る。例えば認証装置120は、おそらくは同じまたは異なるコンピュータ上で一つ以上の他のコンピュータプログラムと対話する、汎用コンピュータ上で動作するソフトウエアプログラムとして実現され得る。なお更なる実施形態では利用者認証装置は、セルラー電話、またはセルラー電話に埋め込まれていてSIMカードといったセルラー電話の回路と対話することに適応した特殊ハードウエアであり得る。この例および他の例では認証装置120は、互いに通信する二つのコンポーネント、例えば無線通信装置(例えば携帯電話)とSIMカードといった取外し可能なアクセサリとを含むことができる。本発明の精神から逸脱せずに、他のサイズ、形状および実施形態が可能である。
【0033】
本発明の実施形態が使用され得る例示的認証装置は、マサチューセッツ州ベドフォードのRSA Security Inc.から入手可能な認証トークンのRSA SECURIDファミリーのメンバーである。ある幾つかのRSA SECURIDハードウエア装置は例えば、生成された認証コードを利用者に表示し、それから利用者はこの表示された認証コードを検証者への伝達のためにコンピュータに伝達する。例えば一実施形態ではこの情報は数値である。
【0034】
ある幾つかの実施形態では利用者認証装置120は、利用者110を認証するために使用される秘密を記憶している。典型的には記憶された秘密は、認証装置と検証者にだけ利用可能である情報である。例えば一実施形態ではこの情報は数値である。記憶された秘密は、利用者10に関する認証コードを生成するために使用される。利用者認証装置120はまた、例えばもし動作しているクロックで実現されれば現在時刻であり得る動的データを記憶またはアクセスできる。利用者認証装置120はまた、以下更に説明されるように他の情報を与えることも、あるいは他の計算または結合関数を実行することもできる。例えば一実施形態では秘密を記憶することに加えて装置120は、利用者110から個人的に選択された秘密(PINまたはパスワードといった)を受け取り、利用者110から受け取られた秘密に応じた動的な非予測可能認証コードと記憶された秘密と現在時刻とを生成する。ここで例えば非予測可能認証コードは、利用者110から受け取られた秘密と記憶された秘密と認証コードを生成するアルゴリズムへのアクセスを持たない如何なる人にも予測可能ではない。利用者認証装置120はまた任意選択的に、検証者識別情報といった他の入力を受け取ることができ、また認証コードの生成時に、そのおよび/または他の付加的情報を使用できる。
【0035】
例示的利用者110は任意選択的に(そして実施形態に依存して)、通信端末140への直接アクセスと、利用者認証装置120を介しての通信端末140への間接アクセスとのうちの一つまたは両方を持っている。通信端末140は、限定なしに、カード読取装置;装置の容器、クレードルまたはホールダー;パソコン;電話;パーソナルディジタルアシスタント(PDA);ネットワークインタフェースカード;無線トランシーバ;等々を含む、種々の実施形態において種々の形をとることができる。認証プロセス時に利用者110は、情報を直接、装置120だけに、または端末140だけに伝達でき、または装置120にも端末140にも伝達できず、あるいは装置120と端末140の両者に伝達できる。同様に通信端末140は、直接入力を利用者110から、利用者認証装置120から、または両者から受信できる。図示のように利用者110は任意選択的に、通信端末140の実施形態に依存して存在し得る端末ユーザインタフェース145を介して通信端末と直接通信する。装置ユーザインタフェース130と同様に端末ユーザインタフェース145は、入力インタフェースまたは出力インタフェースまたはその両者を含むことができる。入力インタフェースと出力インタフェースは、装置ユーザインタフェース130に関して前に説明された一つ以上の形、あるいは他の形をとることができる。
【0036】
通信端末130は任意選択的に、端末140と利用者認証装置120との間の通信のために装置/端末インタフェース160を備えることができる。一実施形態ではこのインタフェースは、標準的または専用のプロトコルを使用する、端末140と装置120との間の有線または無線通信チャネルの形をとることができる。例えば装置120がスマートカードであって端末140がカード読取装置を含む実施形態では通信インタフェース160は、スマートカードと読取装置との間の有線直列通信リンクであり得るであろう。装置120が無線通信能力を有するトークンであって端末140が無線トランシーバを含む他の実施形態では、インタフェース160は無線リンクであり得るであろう。
【0037】
通信端末140は、装置120のための装置インタフェース160を備えることなく、端末インタフェース145を介してユーザインタフェース130を備えることができる。例えば端末140は、利用者110が認証情報を検証者105に伝達するために使用する電話であり得る。このような実施形態では利用者認証情報は、一連の英数字のディジットに関連するトーンとして表され得る。この実施形態では利用者110は、検証者105との通信接続を確立するために電話番号をダイアルし、検証者105に英数字の利用者認証情報を伝達するために一連のキー押下を実行する。
【0038】
端末140と認証装置120は、各々一緒にまたは別々に他の装置に統合されることができ、同様に端末140と装置120とそれぞれのインタフェース130、145、160の機能は、分離可能なコンポーネントに実現され得る。例えば認証装置120は、ハンドヘルドコンピュータ(図示せず)への追加カードとして実現され得る。このハンドヘルドコンピュータは、ユーザインタフェース130を備え、または無線ネットワークインタフェースの形の端末140も備える。同様に携帯電話は、端末140とユーザインタフェース130の機能を備えることができるが、携帯電話または、SIMカードといったプラグインコンポーネントは、認証装置120の機能の一部または全部を備える。
【0039】
通信端末140は、通信チャネル170を介して検証者105に情報を伝達する。通信チャネル170は、利用者110の識別性を認証するために必要とされる情報の検証者105への伝達を可能にする如何なる方法および/またはインタフェースであって良い。通信端末140は、利用者110または装置120またはその両者によって生成された情報を通信チャネル170上で検証者105に伝達することができる。通信端末140と検証者105は、標準の電話回線と、LANまたはWANリンク(例えば802.11、T1、T3、56kb、X.25)と、広帯域接続(ISDN、フレームリレー、ATM)と、無線接続とを含む種々の接続を経由する通信チャネル170を実現できる。通信端末140と検証者105との間の接続は、種々の通信プロトコル(例えばTCP/IP、IPX、SPX、NetBIOS、Ethernet(登録商標)、RS232および直接非同期接続)を使用して確立され得る。検証者105は、通信端末140から受信された情報を処理する。検証者105は、利用者110の識別性を認証することに応じて措置を実行することができる。例えば検証者105は、データへのオンラインアクセスまたは限定された領域または物理的項目への物理的アクセスを与えることができる。
【0040】
通信チャネル170上を伝達された認証コードは、各利用者認証の試みに関して動的で予測できない(認証コードを、および/または前の利用者認証の試みへのアクセスを生成するために使用されたアルゴリズムおよび/または秘密の知識を持たない観測者にとって予測できない)ように設計される。ある幾つかの実施形態ではこのアルゴリズムは、たとえアルゴリズムが攻撃者に知られても認証コードが非予測可能であるように選択される。またアルゴリズムは、非常に多くの利用者に関する大きなセットの前の認証の試みの知識が攻撃者に予測可能な認証コードを作らないように選択され得る。認証コードはまた、以下更に説明されるようにイベント状態情報を伝達することもできる。
【0041】
各利用者認証の試みに関して検証者105は、利用者認証情報を受信して、受信された情報を検証する。以下更に説明されるように、ある幾つかの実施形態では検証者はまた、一つ以上のイベントが発生したかどうかを示すイベント状態を、また任意選択的に幾つかの場合にはイベントの性質を示すイベント状態を決定する。ある幾つかの実施形態では利用者を認証するために検証者105は、利用者認証装置120によって実行されるアルゴリズム的計算と実質的に同じであるアルゴリズム的計算を各利用者認証の試みのために実行する。ある幾つかの実施形態では検証者は、利用者110を首尾よく検証できる多数の認証コードが可能であるように、多数の可能なイベントとイベント状態とに関して認証コードを決定することができる。検証者105は、何か一致があるかどうかを決定するために通信チャネル170を介して受信された認証情報と検証者105によって生成された認証情報とを比較する。もし一致があれば、検証者105は、決定されたイベント状態に依存して利用者110の識別性を認証できる。一実施形態では受信された利用者情報と生成された利用者情報とが一致しないときは、利用者認証の試みは失敗となる。ある幾つかの実施形態では検証者は、通信チャネル170を介して通信端末140に肯定応答または否定応答(肯定的受信通知または否定的受信通知)を伝達することができ、また端末140は装置120に、または利用者110に直接、肯定応答を伝達できる、またはできない。利用者110を首尾よく検証できる複数の認証コードが可能である更なる実施形態では、検証者105は先ず、予期されるイベント状態に関する予期される認証コードを決定し、もし検証者が異なる認証コードを受信すれば、認証装置が首尾よく検証されたかどうかを示す前に、他の可能なイベント状態に関して認証コードを決定して比較する。例えば生成値増分(以下更に説明される)と、検証者105と認証装置120との間の不正確に同期した時間クロックとに起因して、他の可能な認証コードも存在し得ることに留意のこと。
【0042】
一実施形態ではイベント発生の検証者による決定は、アクセスの完全な否認よりもむしろ利用者110の活動に対する制限を誘発する。この制限は、前の認証の試み以降に発生したイベントのタイプに基づくことができる。例えば利用者のPINが指定された回数より多く不正確に認証トークに入力されたときに、高度に内密な情報へのワークステーション利用者のアクセスは、除去され得るが、非内密情報へのアクセスは継続して許可される。
【0043】
利用者認証装置120は、イベントが発生したかどうかを示すイベント状態データを保持できる。イベント状態が保持されている報告可能なイベント(単数または複数)は、装置の正常動作時には発生しない異常なイベントである可能性がある。このような変則的なイベントの例は、装置を改竄すること、環境的イベント(例えば異常温度)、不正確な電力供給、放射線検出などを含む。報告可能なイベントの他の例は限定なしに、装置の場所(例えば装置は特定の建物、部屋、都市、国、地域またはそれらの何らかの組合せに在る);装置(例えばもしカード、トークンなどであれば)が読取装置に挿入されている時間の長さ(おそらくは、管理されていない装置を利用者が読取装置内に放置したことを示す);認証の品質(例えば成功した認証に先立つ多数回のPINエラー、生体測定一致の強さなど);装置署名またはパターン(例えば装置が検証者によって検査され得るパターンまたは一連のビットを生成して、イベント状態がこのパターン内に現在ビットを表示する);関連する認証(例えば検証者は、認可された仕方で要求者が入力した物理的場所からネットワーク資源へのアクセスが要求されているかどうかを決定できる);記憶された秘密の位置(例えばイベント状態は承認されたハードウエア装置(例えばカード、トークンなど)内に記憶された秘密が存在するか、あるいは転送されたか(例えばラップトップといったソフトウエア容器にダウンロードされたか)どうかを示す)を含むことができる。イベント状態データのサイズは、可能なイベント状態の数に依存し得る。例えば二つのイベント状態に関しては単に1ビットが必要とされる。7個の状態に関しては3ビット、以下同様である。したがって一例として地理的場所を取れば、可能な7箇所のうちの一つを示すために3ビットが使用でき、あるいは経度/緯度を示すためには遥かに多数のビットが使用され得る。
【0044】
イベントの発生は、利用者人書装置120によって保持されるイベント状態の変化という結果をもたらし、高い確率で利用者認証装置120によって生成される認証コードが、さもなければ検証者105によって予期されるものとは異なるであろうという更なる結果を伴う。検証者105は、受信された識別認証コードが一つ以上のイベントに関連しているかどうかを決定し、もしそうであれば、管理者への警告、制限されたアクセスなどといった適当な措置をとることができる。
【0045】
イベント状態は、検証者にとって特定の意味を持つ必要はない。効率のために検証者は、どのイベント状態(単数または複数)が最も可能性が高いかを決定し、最初にその最も可能性が高いイベント状態(単数または複数)に関連する認証コードによって認証を検査することができる。検証者は、信号で知らされているイベント状態が有効であるか(例えば予期されているか)、または無効であるか(例えば予期されていないか)どうかを決定するために最も可能性の高いイベント状態情報によって認証コードを検証できる。更にイベント状態の解釈は、検証プロセス以外で遂行され得る。一実施形態ではイベント状態情報は、そのイベント情報がどのようなイベントを、例えば改竄、低いバッテリーなどを信号で知らせているかを決定するために、検証者ではないエンティティによって分析され、解釈される。検証者は、イベント状態を解釈できるサービスにイベント状態情報を伝達することができる。
【0046】
検証者が認証コードを可能性の高い個別のイベント状態とのそれらの対応に関して検査するとき、検証者の動作の効率は可能性の高いイベント状態の数に依存する可能性がある。例えばもし可能性の高いイベント状態が二つしかなければ、検証者はせいぜい2回の検査動作を実行すればよいが、可能性の高いイベント状態が10個あれば、検証者は10回もの検査動作を実行する可能性がある。検証者は、この仕方で非常に多くのイベント状態に適応できる可能性がある。しかしながらある幾つかの実施形態では検証者は、認証コードがイベント状態に関して検証者にヒントを与えることができるので、多数のイベント状態に適応できる。他の実施形態ではイベント状態は、さもなければすべての可能性の高い個別のイベント状態を検査することなしに認証コードから回復され得る仕方で与えられ得る。このような実施形態では検証者の動作の効率は、このようなイベント状態の数には依存しない可能性がある。
【0047】
各可能性の高いイベント状態は異なる認証コードに対応し得るので、ランダムな認証コードが検証者によって受け入れられる確率は、可能性の高いイベント状態の数が増加するにつれて、特に認証コードの長さが一定であれば、増加する可能性がある。したがってランダムな認証コードが受け入れられる確率を十分に小さく維持するために、可能性の高いイベント状態の数が増加するにつれて認証コードの長さを増加させることは賢明であり得る。例えば10個の可能性の高いイベント状態が存在すれば、認証コードの長さは数字1桁分だけ増やされ得る。
【0048】
後述の実施形態ほど多くのセキュリティの利点を持たない単純な例として一実施形態では、利用者認証装置120は、イベント状態データ記憶を維持している。この例ではイベントの発生の前には、イベント状態データ記憶はゼロに等しい。イベント状態データ記憶の内容は、検証者に伝達される第2の認証コードを形成するために装置120によって生成される第1の認証コードに結合(例えば加算)される。最初のうちは、イベント状態は認証コードに如何なる変化も起こさない。ある特定のイベントの発生時に、イベント状態データ記憶は100になるように修正される。一実施形態では特に、認証装置120は、認証装置120のケースの開放によって駆動されるスイッチを含むので、もし装置120が開かれると、このスイッチが割り込みを起こし、これは認証装置120内のプロセッサにイベントデータ記憶の内容を100に変更させる。第2の認証コードがイベントデータ記憶の内容を第1の認証コードに加算した結果であるとき、この後に生成される認証コードは予期される認証コードとはちょうど100だけ異なるであろう。検証者は、受信された認証コード(すなわち第2の認証コード)が最初に予期された認証コードではないことを直ちに認めるであろう。検証者は、受信された認証コードが100という値だけ予期されたものとは異なることも認めるであろう。それから検証者は、イベント状態データの変化を誘発するイベント(この場合は認証装置の開放)が発生したと推断するであろう。更なる実施形態では、異なるイベントは認証コードを異なるように変化させる(例えば1、10などを加算する)可能性がある。これらの実施形態では、異なるイベントは結果として得られる認証コードに依存すると認められ得る。以下更に述べられるようにある幾つかの手法は、イベントが発生したかどうかを検出者が決定することをより容易にできるが、イベント発生が検出されたことを攻撃者が決定することを遥かに困難にする。スイッチは、限定なしに、分離可能な接触表面、または押しボタンスイッチ、ロッカスイッチなどといった任意の形式のリミットスイッチを含めて、認証装置120が開放されるか、さもなければ改竄された場合に状態変化を与える如何なる手段であってもよい。
【0049】
一実施形態では利用者110を認証して認証装置120のイベント状態を決定するために検証者105は、利用者認証装置120によって実行されるアルゴリズム的計算の一部または全部を「反転する」アルゴリズム的計算を受信された認証コードに対して実行する。単純な例では利用者認証装置120は、利用者認証装置120によって記憶された秘密と利用者入力のPINとをアルゴリズム的に結合することによって認証コードを生成する。この例で利用者を検証するために検証者は、その記録から利用者に関連するPINと利用者の認証装置120に記憶された秘密とを検索する。検証者105は、例えば受信された認証コードから利用者のPINを減算する、および/またはXORする(排他的論理和をとる)ことによってこの結合演算を反転する。検証者105は、PIN除去後の結果を利用者認証装置120に記憶された秘密の値と、または記憶された秘密を使用して装置120によってその時に生成されたはずの値と比較する。もしこれらが一致すれば、利用者は認証される。もしこれらが一致しなければ利用者認証は不成功となる。ある幾つかの実施形態では検証者105は、公開キー暗号化といった対称キー暗号化手法または非対称キー暗号化手法を使用して利用者認証装置120によって暗号化された値を復号する。ある幾つかの実施形態では検証者105はまた、一つ以上にイベントが発生したかどうかを示す入力によって認証コードを計算する。他のバージョンでは検証者105は、イベントが発生したかどうかを示し、またそのイベントに関する更なる情報を示す入力によって認証コードを計算する。
【0050】
他の実施形態では利用者110の第1の認証は、利用者110によって認証装置120に供給された情報に基づいて利用者認証装置120によって実行される。例えば利用者によって供給される情報は、PINまたはパスワードまたは生体測定情報であり得る。装置120は、この第1の認証を単独で、または他の装置と共同で実行できる。もし第1の認証が認証装置120によって首尾よく検証されれば、装置120は検証者105によって検証される識別性認証コードを生成する。一実施形態では第1の認証の強度は検証者105によって検証される認証コード内のイベント状態として伝達される。例えばイベント状態は、生体測定要素の一致の程度を反映することができる。更なる実施形態では第1の認証は、利用者110の面前で行われるローカルな認証である。
【0051】
図2を参照すると、図1の利用者認証装置120と検証者105との一実施形態では、認証コード290を生成するために結合関数230によって種々の値が結合される。一般に結合関数230は、利用者認証装置120によって記憶またはアクセスされたデータ235に基づいて認証コード290を生成する。図示のようにこのような装置データ235は、利用者認証装置120に関連する装置秘密(K)と、利用者認証装置120によって生成された動的な時間的に変化する値(T)と、一つ以上のイベントの発生を表すイベント状態(E)とを含む。
【0052】
装置データ235の他の例は、利用者認証装置120の製造日時、最後の認証コードの生成以降の時間の長さ、利用者認証装置120の製造場所(例えば緯度と経度)の符号化、認証コードの生成時における利用者認証装置120の場所の符号化(特定的または一般的に)(例えばGPSまたは拡張GPSを使用して)、装置署名またはパターン、装置タイプ(例えばハードウエアまたはソフトウエア)、またはこれら他の量の一つ以上の任意の組合せを含む。結合関数230はまた、利用者に関する認証コード(A)290を生成するために、利用者データ(利用者データ(P)としてファントム図で示されている)または検証者データ(検証者識別子(V)としてファントム図で示されている)と生成値(生成値(N)としてファントム図で示されており、以下更に説明される)のうちの一つ以上を任意選択的に使用できる。利用者データの他の例は、網膜撮影、指紋といった生体測定情報;社会保障番号、生年月日(おそらくは誕生時刻を含む)といった識別情報;および一意の名前と番号、またはその他の情報;から誘導されるデータを含む。検証者データは、名前、番号、IPアドレス、またはプロセッサ通し番号といった検証者105を識別する情報を含むことができる。生成値Nは、指定された時間内に要求される認証コードの数を示す。
【0053】
結合関数230は、コンピュータによって、例えば埋め込みプロセッサ上で動作するファームウエアによって実行される命令として実現され得る。他の実施形態では結合関数230は、特定用途向け集積回路(ASIC)、フィールドプログラマブル(利用者書き込み可能)ゲートアレイまたは他の倫理装置といった専用ハードウエアに実現され得る。更に他の実施形態では結合関数230は、汎用デスクトップ、ラップトップ、またはハンドヘルドその他のコンピュータ装置の上で動作するソフトウエアアプリケーションプログラムとして実現可能である。
【0054】
図は一般に、認証コード290を生成するための多数の例示的実施形態を示している。結合の仕方と結合関数230に与えられる入力とがこれらの例から変わり得ることは理解されるべきである。一実施形態では認証コード291は、記憶された秘密(K)と動的値(T)とイベント状態とから構成される。
【0055】
結合関数230と結合関数の要素は、装置120、通信端末140またはこれら二つの組合せに実現され得る。
【0056】
記憶された秘密(K)は、装置120と一意に関連する数値といった1単位の情報である。装置120の典型的なハードウエア実施形態では、秘密(K)は装置から秘密(K)を抽出することが極めて困難であるように装置120内に作り込まれて記憶される。装置120の典型的なソフトウエア実施形態では、秘密(K)はデータ記憶に記憶され、好ましくは確実にまた装置にとってアクセス可能に記憶される。装置120にとってアクセス可能であることに加えて、秘密(K)はまた、検証者105にとってアクセス可能な確実なデータ記憶装置に記憶される。ある幾つかの実施形態では装置120だけが秘密(K)へのアクセスを持ち、検証者は秘密(K)の関数へのアクセスを持っており、あるいはこの逆の場合がある。ある幾つかの実施形態では装置120の秘密(K)は、検証者105によって記憶された値に対応するが、それと同じではなく、例えばこの場合、各々が公開キー暗号システムにおける1対のキーのうちの一つを持っている。他の実施形態では秘密(K)は、下記のようにマスター秘密(KMASTER)から誘導され得る。ある実施形態では秘密(K)は、秘密値が観測された認証コードとして結果的に得られたものであるかどうかを見るために各可能な秘密値を試みることによってその秘密を、結合関数230の出力へのアクセスを持った攻撃者が推測することが困難であるように、非常に多くの可能な値から選択された値である。特定の一実施形態では秘密(K)は長さが128ビットである数のグループ(すなわち2128−1以下の負でない数の集合)から選択される。
【0057】
動的値(T)は、時間的に変化する16進または10進の数値といった1単位の情報である。一実施形態では動的値(T)は、特定の開始時刻と終了時刻とによって画定される特定の予め決められた時間間隔と一意に関連している。時間隔は、如何なる特定の長さであることも要求されないし、すべての時間間隔が同じ長さであることも要求されない。唯一の要件は、時間間隔スケジュールが装置120と検証者105との間でおおよそ同期していることである。装置120と検証者105とを同期させるために使用され得る例示的方法は、「Method and Apparatus for Synchronizing Generation of Separate, Free Running, Time Dependent Equipment(別個の自由動作、時間依存性の装置の生成を同期させるための方法および装置)」と題する米国特許第4,885,778号に記載されている。時間間隔は、1秒、1分、1時間、1月、1年またはその他都合の良い如何なる時間の長さでも持つことができるであろう。より短い時間間隔からの増加したセキュリティと、装置120、検証者105の処理能力、ならびに認証装置120がコードを検証者に与えるためにかかる時間との間にはとるべきバランスが存在する。例えばもし装置120が通信端末にタイプ入力する利用者のために認証コードを表示すれば、1分の時間間隔が使用され得る。一実施形態では特定の時間間隔を識別する動的値(T)は、その特定の時間間隔内で生成されるすべての認証コードに関して一定に留まる。
【0058】
例えば一実施形態では1分という一定の時間間隔が使用され、動的値は1980年1月1日真夜中以降の分の数である。もう一つの実施形態では1時間という時間間隔が使用され、動的値は1999年12月15日正午以降の秒数である。この秒数は、各時間間隔の最初の秒に関して決定される。このような実施形態ではカウントが始まる時刻は、装置120と検証者105との間で共有される秘密であることが可能である。間隔期間の長さ(単数または複数)もまた、装置120と検証者105との間で共有される秘密であり得る。
【0059】
もう一つの実施形態では、各時間間隔の長さは1時間である。1日に24時間存在するので、各時間は1から24の値といった一意の値によって識別でき;1年の365日の各々は1から365の値によって一意に識別でき;また各年は例えば2001といった年の番号によって識別できる。各々が1時間、1日または1年を識別するこれら3個の値は、一つのそして唯一つの特定の1時間という時間間隔を一意に識別する値を生成するためにこのような仕方で結合される。この1時間という時間間隔は、特定の(時間・日・年)結合によって表示され得る。例えば値100232001は、2001年1月23日である年2001(2001)の第23番目の日(023)の午前9時と10時との間の時間を一意に識別するであろう。同様に値170322001は、2001年2月1日である年2001(2001)の第32番目の日(032)の午後4時と5時との間の時間を一意に識別するであろう。他の変形版は、本技術に通常のスキルを有する人々によって直ちに理解されるであろう。
【0060】
一実施形態では動的値(T)は、時間クロック関数の出力として与えられ、この出力は次に動的値関数に与えられる。動的値関数は、クロック関数によって与えられたデータに応じて適当な動的値(T)を決定する。クロックとプロセッサとを有する装置に実現されたこのような一実施形態では動的値(T)は、初期値に設定され、1秒ごとに増加させられるカウンタであるクロックによって生成される。このクロックは、最初に構成された時刻以降の秒数をカウントする。60秒ごとにクロックは動的値関数に信号を送り、この関数はクロックを読み取って動的値(T)を増加させ、その増加した値をその時間間隔における動的値(T)として記憶する。ある幾つかの実施形態では時間値は、ISO−8601フォーマットで与えられる。
【0061】
ある幾つかの実施形態では動的値(T)は、外部クロック、例えば通信端末140のクロックによって与えられる。一部の実施形態では動的値(T)は、ある規則的に発生する措置に基づいて、例えば認証コードの要求に基づいて、または受信された外部信号に基づいて変化する。規則的に発生する措置は、装置120にとって観測可能な、好ましくは検証者105によって観測可能な、またはおおよそ近似可能なイベント、例えば受信された無線信号または認証の試みであり得るであろう。このような規則的に発生するイベント時に動的値(T)は変化する。このようなイベントは典型的には、イベント状態(E)の変化の結果起こるイベントではないであろう。したがってこのようなイベントは、報告可能なイベントではないであろう。
【0062】
一実施形態では秘密(K)と動的値(T)とイベント状態(E)は,認証コードA(K、T、E)291としての結合のために結合関数230に供給される。秘密(K)と動的値(T)とイベント状態(E)との結合は、如何なる順序にでも行うことができ、一つ以上の種々の結合方法を使用することができる。例えば一つの極度に単純化された実施形態ではハッシュ関数といった一方向性関数が値(K、T、E)に適用され、その結果は結果として得られる認証コードに到達するために正しい長さに切り詰められる。もう一つの実施形態では値(K、T、E)のうちの少なくとも二つ、またはそれらの部分は、入力として一方向性関数に与えられる。一方向性関数は、この関数の出力の知識が、与えられた入力の再構成を許さないような仕方で入力値の領域を出力値の領域に写像する数学的関数である。一方向性関数の例は、MD5、SHA−1といったハッシュ関数およびキー誘導関数である。特定の一実施形態では、RC6またはRijndael(AES)アルゴリズムといったブロック暗号は、(K)と(T)の結合を生成するために秘密(K)をキーとして、動的値(T)をデータとして使用する。これらの実施形態の一つでは結合関数230は、一定の記憶された秘密(K)と動的値(T)とに結合される各異なるイベント状態(E)が結果として異なる認証コード値になるように設計される。上述のように如何なる順序の結合でも可能であり、(K)、(T)、(E)のうちの二つは利用者認証装置120で結合されることができ、残りの一つはその結果と通信端末140において結合され得る。
【0063】
利用者データ(P)は、入力として結合関数230にも供給され得る。利用者データ(P)は、英数字列、または厳密に数値、例えば個人識別番号(PIN)またはパスワードといった1単位の情報である。一実施形態では利用者データ(P)は、利用者110と一意に関連する情報である。利用者データ(P)は、生体測定的測定または観測によっても取得できる。一実施形態では利用者データの識別性または値は、利用者110と検証者105にだけ知られる(すなわち装置には知られない)秘密である。利用者データ(P)は、それが傷つけられることから保護する検証者105にとってアクセス可能な仕方で記憶され得る。利用者データ(P)は、利用者によって与えられる実際のPIN、パスワード、生体測定データなどであることができ、あるいは利用者データ値(P)は一つ以上の他の関数による利用者データの処理の結果であり得る。例えば利用者データ(P)は、入力として結合関数230に与えられる前に、ハッシュ関数といった一方向関数またはキー誘導関数によってもう一つの値に写像され得る。パスワードを他の情報と結合する誘導関数が使用可能である。例えばセキュリティを増加させるために、誘導関数の適用に先立って、塩と呼ばれるランダムな情報列がパスワードと結合され得る。この塩は、秘密値である必要はない。誘導関数には反復関数が含まれることもあり得る。パスワードを誘導する基底関数を何回実行したかを示すために、反復回数と呼ばれる数が使用され得る。誘導関数への反復回数の組み込みは、パスワードを誘導するために必要とされる努力を増加させる。適度の反復回数、例えば1000回は、キー(例えば利用者データ)を計算するときに合法的関係者にとって重荷になりそうもないが、攻撃者にとっては大きな重荷になるであろう。もし利用者データ値がランダムであって非常に多くの可能な値から選択されたのであれば、より少ない反復回数が使用可能であろう。
【0064】
一実施形態では結合関数230は、認証コードA(K、T、E、P)292を生成するために利用者データ値(P)を秘密(K)と動的値(T)とイベント状態(E)とに結合する。結合関数230は、認証コード292を生成するためにこれらの値を如何なる順序にでも(そして言及されていない他の値に)結合できる。特定の一実施形態では利用者認証装置120は先ず、前述のように認証コードA(K、T、E)291を生成するために(K、T、E)を結合する。それから結合関数230は、(K、T、E、P)の関数である認証コード292を生成するために、この生成された認証コード291をPIN(P)に結合する。PIN(P)は、PIN(P)をA(K、T、E)に付加することによって、またはPIN(P)をA(K、T、E)に算術的に加算することによって、またはブロック暗号または他の一方向性関数または他のアルゴリズムまたはこれらの組合せ、および二つ以上の入力値を共に結合する他の手法を使用することによって、A(K、T,E)に結合され得る。両結合のために同じステップが使用でき、あるいはこれらのステップが異なる可能性もあり、−例えば(K)はキー入力としてブロック暗号に与えられ、(T、E)はデータ入力としてブロック暗号与えられることができ、ブロック暗号に結合されたPINは、加算または排他的論理和演算による結果として得られる。もう一つの実施形態では利用者データ値(P)とイベント状態(E)は先ず、入力としての使用のために暗号化関数に結合され、それから動的値(T)と秘密(K)はその結果を暗号化するためにこれらをキーとして使用することによってこれらに結合される。他の実施形態では動的値(T)と秘密(K)とが結合され、この結果に利用者データ(P)とイベント状態(E)とが結合される。結合は、例えばこれらの値が入力として単一の関数に与えられると同時に、あるいはある値が他の値に結合されるにつれて段階的に行われ得る。ある幾つかの結合は認証装置120上で起こり得るが、他の結合は通信端末140上で起こり得る。無論、結合が変形版として他の値または処理を含み得ることは理解されるべきである。
【0065】
前述のように装置120の種々の実施形態は、種々の仕方で利用者データ(P)の入力を受信できる。これらは限定なしに、キーパッド、キーボード、タッチスクリーン、ポインタまたはマウスによる選択、筆跡認識、音声認識等々を経由した利用者入力(例えばPINの)を含むことができる。利用者データは、認証装置120と一体化された生体測定読取装置を使用して読み取られ得る。利用者データ(P)はまた、電気的または電磁的手段を介して他の装置からも伝達され得る。例えばPIN入力と指紋読取装置とによって与えられる利用者データ(P)の二つ以上の項目が存在し得ることは理解されるべきである。同様にもう一つの例としてPINは、装置によって検証されることができ、データは装置によるPINの成功した検証に応じて結合関数に与えられ得る。
【0066】
他の種々の実施形態では認証コード293を生成するために、今説明されたデータに(すなわち利用者データ(P)に、またはこのデータにではなく)他のデータが結合され得る。この他データは、時間間隔内に要求された各認証コードに関して増加させられる生成値(N)を含むことができる。その内容が引例によってここに組み込まれている、Brainard等による「Enhanced Time−Based Authentication(拡張された時間ベースの認証)」と題する同時係属中の米国特許出願通し番号第10/010,769号を参照のこと。
【0067】
この他のデータはまた、特定の検証者(105)の、または検証者のグループの識別性と関連する値である検証者識別子(V)を含むことができる。検証者識別子(V)の使用は、利用者に成りすますために使用され得る特定のエンティティ情報をもう一つのエンティティに与えることなしに、異なるエンティティによって操作される検証者によって同じ利用者認証装置120(同じ秘密(K)を有する)が使用されることを可能にする。その内容が引例によってここに組み込まれている、Brainard等による「System and Method for Authentication Seed Distribution(認証シード散布のためのシステムおよび方法)」と題する同時係属中の米国特許出願通し番号第09/304,775号を参照のこと。
【0068】
例えば一実施形態では結合関数230は、認証コード293を生成するために秘密(K)と動的値(T)とイベント状態(E)と利用者データ(P)と検証者識別子(V)と生成値(N)とを結合する。結合関数は、これらの値(K、T、E、P、V、N)を種々の仕方で如何なる順序にでも結合できる。結合関数230によって結合される前にこれらの値は、一つ以上の他の関数によって処理され得る。認証装置120の種々の実施形態は、種々の仕方でこのデータの入力を受信できる。
【0069】
一実施形態では認証コード290を生成するために使用される秘密(K)の部分は、時間的に変化する。秘密(K)の部分は、動的変数(T)に基づいて他の部分から誘導される。例えば特定の時間間隔のために割り当てられた秘密値(K)の一部分が存在し得る。この実施形態では秘密(K)の一部分は、1秒、1分、1時間、1日、1月、1年ごとに異なり得る。これは、動的値(T)による1分という時間値ごとに、秘密(K)を1セットの秘密:すなわち現在年(KY)に対応する秘密、現在月(KM)に対応する秘密、現在日(KD)に対応する秘密、現在時間(KH)に対応する秘密、現在分(KMIN)に対応する秘密、すなわちK=(KY,KM,KD,KH,KMIN)(またはそれらのうちの一つ以上に基づくサブセットまたは関数)として表すことによって遂行され得る。したがってこれらの実施形態では秘密(K)の部分は、相互に誘導されることができ、秘密(K)の一部分は認証コード290を生成するために使用され得る。
【0070】
例えば1年ごとの秘密(KY)は、データ値として適当にパディング(パッド詰め)されたキーと現在年として秘密を有するブロック暗号を使用することによって生成され得る。例えば128ビット・ブロック暗号を使用する実施形態では現在年値(0000〜9999)は、128ビットのデータブロックを与えるために0、1または検証者105に知られたあるランダムパターンをパディング(パッド詰め)されることができる。こうして、KY=EK(YYYYPPPPPPPPPP)となり、ここでPはパディングを表し、EKはキーとして秘密を使用するデータYYYYのブロック暗号を表す。同様な仕方で月ごとの秘密は、1秒時間ごとに同じまたは異なるブロック暗号を適用することによって誘導され得る。KM=EKY(YYYYMMPPPPPPPPPP)となり、ここでYYYYMMは現在の月と年の値を表し、1年ごとの秘密はブロック暗号へのキーとして使用される。1日ごとに秘密と1時間ごとの秘密は、同様に生成されることか可能であって、KD=EKM(YYYYMMDDPPPPPP)およびKH=EKD(YYYYMMDDHHPPPP)となる。
【0071】
種々の実施形態では秘密の各々は、認証コードを生成するために関連時間間隔の時に使用され得る。例えば1時間ごとの秘密は、上記の秘密として使用されることができ、認証コードを生成するために時間とイベント状態データとに結合され得る。上記の例はブロック暗号に関して与えられているが、秘密を生成するためのここに説明された方法の如何なるもの(例えばハッシュ関数)も使用され得ることは理解されるであろう。新しい秘密値を生成するための他の手法は、「Personal Security System(個人セキュリティシステム)」と題するWeissへの米国特許第5,361,062号に記載されている。
【0072】
もう一つの手法ではイベント状態は、それが結合関数内に入力として直接供給されないような仕方で伝達され得る。このような一実施形態では例えばイベント状態は、イベント状態に応じて装置のクロックによって与えられる時刻を修正することによって伝達され得る。この実施形態の例示的実施形態では装置は、イベントの発生を示すためにそのクロックを1分以上進める。クロックは、もう一つのイベントを示すために1分以上遅らされる。装置のクロックと検証者のクロックとが必要な精度を持っていることを条件として、検証者は単に、装置の時刻が検証者によって予期される時刻と比較してより早いか遅いか同じであるかどうかを決定することによってイベント状態を決定できる。更に他の値と計算とが上述のものと組み合わせて使用できることは理解されるべきである。
【0073】
呼掛けもまた、結合関数230への入力であり得る。一実施形態では応答は、呼掛け、秘密キーおよびイベント状態から誘導される、すなわち時間からは誘導されない。例えば検証者が与える呼掛け値は、上述のように動的値(T)として使用され得るであろう。
【0074】
また結合関数の一部として一つ以上の値(例えばイベント状態(E))は、数学的演算への入力として与えられるデータを選択するために使用され得る。一実施形態では結合関数への入力として使用され得る二つ以上の秘密(K)が存在する。結合関数の一部としてイベント状態(E)の値は、認証コードを生成するために秘密(K)のうちのどれが結合関数内で使用されるかを決定するために使用される。例えばイベント状態(E)が1ビットであって二つの秘密(K0)、(K1)が存在する実施形態では0というイベント状態は上述の関数291におけるKとしての使用のために一方の秘密(例えばK0)を選択し、1というイベント状態は他方の秘密(例えばK1)を選択する。こうして一説明的例ではもし装置が改竄されていなければ、イベント状態は0であって、関数291では秘密K0が使用される。改竄の検出時にはイベント状態は1にセットされ、関数291では秘密K1が使用される。
【0075】
図3を参照すると、識別認証コード330の決定に直接的にイベント状態データ320を含む実勢形態の動作に関するデータの流れが示されている。認証装置は、装置に関連する装置秘密305である第1の秘密値を記憶または計算する。この第1の秘密値305は、前述の秘密K、秘密Kの一部分、またはその変形体または誘導体であり得る。認証装置はまた、第2の秘密値、装置のイベント状態に関連するイベント秘密310を記憶または計算する。イベント秘密310によって表されるイベント状態は、装置が検証者に伝達するイベントに関連している。上述のように、これは装置の通常の動作では遭遇しない異常なまたは変則的なイベントである可能性がある。イベント秘密310は、第1の秘密値305とは独立であるか、第1の秘密値305または第1の秘密値305から誘導されることができ、またイベント秘密310の値は同じであるか、同じ秘密から誘導されることができる。認証装置はまた、前述のようにクロックによって与えられる現在時刻に、または認証の試みの回数といった他の値に基づくことができる動的値315へのアクセスを有する、および/または動的値315を計算するので、この動的値315は時間的に変化する。
【0076】
動的値315とイベント秘密310とを使用して認証装置120は、時間に関連するイベント状態データ320を誘導する。この実施形態のバージョンではイベント状態データ320は、データの一つ以上にビットによって表される値である。イベント状態データ320は、動的値315および/またはイベント秘密310の変化によって誘発される反復性のループにおいて決定され得る。更にイベント秘密310は、動的値315の全部または一部と数学的に結合され得る。イベント状態データ320は、時間固有値325を形成するために装置秘密305と動的値315とに結合される。それから時間固有値325は、識別認証コード330を計算するために使用される。時間固有値325は、識別認証コード330を形成するために、PIN、パスワード、生体測定示度から誘導される値、生成値、検証者識別子、および/または他の情報と数学的に結合され得る。もしイベント状態データ320が動的値315だけに結合されるならば、攻撃者は動的値が変化する前にもう一つの認証コードを要求することによって、イベント状態が変化したかどうかを決定することができる。例えば結合関数への入力として上述の生成値を使用することは、これを防止するであろう。更に動的値が変更されるたびにイベント状態を変更することは、攻撃者が状態検出を決定することをより一層困難にするであろう。
【0077】
一般にイベント状態に関連するイベント(単数または複数)の発生は、イベント状態データ320に関連する修正または何らかの変化という結果になる。一実施形態ではプロセッサがイベントを検出すると、プロセッサはメモリに記憶されたイベント状態データ320を修正する。もう一つの実施形態では、イベントの発生が装置による明示的な措置なしでイベント状態データ320を修正するように、環境的イベント(例えば静電気放電)に本来敏感であるイベント状態データ320はメモリに記憶される。またイベント状態データ320のためのデータ記憶ハードウエアは、イベント(例えば装置の分解)がイベント状態データ320を自動的に修正するように設計され得る。イベント状態データ320に関連するイベントの発生は、イベント秘密310の修正という結果になり得る。このようにして新しいイベント状態データ320が生成されると、新しいデータはイベントの発生を伝達するであろう。しかしながらある幾つかのイベントに関しては、イベント秘密310を修正することなくイベント秘密310からイベント状態データ320を決定することによって現在状態を単に報告する(セーブしない)ことが有益であり得る。これはイベントが長期間または短期間に亘って報告されることを可能にする。
【0078】
一実施形態ではイベント状態データ320は、各々が時間(例えば1時間)に関連するビットの形で記憶される。時間に関連するそれぞれのイベント状態ビットは、その時間に関する時間固有値325を誘導するために使用される。この例示的実施形態ではイベント状態ビットに関して二つの可能な選択が存在するが、他の実施形態では多数のビット(またしたがって多数の状態)が存在することがあり得る。検証者が識別認証コード330を受信すると、検証者は受信されたコードが予期された値であるかどうかを決定するであろう。もしそうでなければ、検証者は反対の状態ビットに関して予期される認証コードを計算する(すなわち1を0に、または0を1に置き換える)であろう。もし検証者が反対の状態ビットを有する受信された識別認証コードを取得すれば、検証者はイベントが発生したことを決定したのであり、適当な措置をとることができる。他の実施形態ではイベント状態データ320は、1ビットであり、イベント秘密310と同じである。この1ビットはイベントが発生したか否かを示す。
【0079】
図4を参照すると、例えば動的値(T)415が変化したときにイベント秘密(ES)410の値が繰り返し更新される、イベント状態データを伝達する認証コードを誘導するための方法の一実施形態が示されている。一実施形態では、繰り返される更新は、イベント状態データの変更がイベント検出の結果であるか定例の更新であるかを攻撃者が決定できないので、イベントが検出されたかどうかをイベント状態データへのアクセスを有する攻撃者が決定することを防止する。こうしてイベント検出は、隠されたままに留まる。一実施形態ではイベント秘密(ES)410は、正常な動作時に規則的に、例えば動的値(T)415が更新されたときに更新または修正される。他の実施形態ではイベント秘密(ES)410は、ある他の間隔に基づいて、または他の正規の動作に基づいて規則的または周期的に修正される。
【0080】
報告可能なイベントの発生時に装置は、ある仕方でイベント秘密(ES)410を修正する措置をとる。例えばある幾つかの実施形態ではイベント秘密(ES)410は、誘発するイベントの発生時に1回以上の追加回数だけ修正され、またこれらの修正は正規の修正のために使用される同じ関数を使用して行われる。他の実施形態では誘発するイベントのときに、イベント秘密(ES)410は、通常使用されるものとは異なる関数を使用して、またはイベント秘密(ES)410を異なるデータと結合することによって修正される。
【0081】
一実施形態では認証装置は、1日(KD)405に関連する秘密を生成するために動的値(T)415と共同して使用される装置秘密(図示せず)を持っている。日秘密(KD)は、月暗号化キーKMを使用して現在日付に関連する情報を暗号化することによって生成される。例えば、KD=EKM(T)=EKM(YYYYMMDDPPPPPP)となり、ここでTは年月日フォーマットで現在の動的値を表す。認証装置はまた、この実施形態では初期値411を有するイベント秘密(ES)410を記憶する。この実施形態の一バージョンでは初期値411は、装置秘密から独立していることができる。もう一つのバージョンでは、これは装置秘密から誘導される。また装置秘密と初期値411は同じであるか、共通の値から誘導されることができる。
【0082】
動的値(T)415によって決定されるように周期的に、イベント秘密(ES)410の新しい値はイベント秘密キー(KES)413を使用して誘導され、たとえば最初の誘導時に初期値411は交換される。イベント秘密キー(KES)413の値の変更はまた、イベント秘密キー(KES)413を使用してイベント状態秘密(ES)410から誘導されるイベント状態ビット(EBITS)420の変化という結果をもたらす。それから特定の時間に関連するイベント状態ビット(EBITS)420は、識別認証コードを生成するために使用される。
【0083】
この実施形態ではイベント秘密キー(KES)413は方程式KES=(ESxorFPAD1)にしたがって誘導されるが、ここでFPAD1は予め決められた一定値である。各更新間隔でイベント秘密(ES)410の新しい値は、例えばFPAD2もまた予め決められた一定値である方程式ES=EKES(ESxorFPAD2)にしたがってイベント秘密(ES)410の既存の値に適用される論理演算の結果を暗号化するためにイベント秘密キー(KES)413を使用することによって誘導される。イベント状態ビット(EBITS)420はまた、例えばFPAD3が予め決められたもう一つの一定値である方程式EBITS=EKES(ESxorFPAD3)にしたがってイベント秘密(ES)410に適用される論理演算の結果を暗号化することによって誘導される。こうしてイベント状態ビット(EBITS)420を形成するためにイベント秘密(ES)410とFPAD3とに対して排他的論理和演算が適用される。一実施形態では72個のイベント状態ビット(EBITS)420のグループが各3日の期間(すなわち72時間の期間)に関して誘導され、イベント状態ビット420の各々はそれぞれこの期間内の1時間に関連している。
【0084】
イベント状態ビット(EBITS)420に基づく認証コードの誘導は、追加の秘密を誘導することによって完了され得る。第一に時間KH425に関する秘密は、1日ごとの秘密KDと動的値(T)415とその時間(EBITS(T))に関連するイベント状態ビットとから、これらの値を一方向性関数、メッセージ・ダイジェスト(メッセージ要約)、ブロック暗号などであり得る関数(g)に入力として与えることによって、誘導される。これは、KH=g(KD,T,EBITS(T))と書くことができる。この時間内の1分に関する秘密(KM)429は、関数(g)と同じであるか異なり得る関数(f)を使用して計算でき、ここで(f)は、入力として(KH)425と、KM=f(KH,T)と書くことのできる分に関する動的値とをとる。分秘密(KM)429は認証コードとして直接使用できる。代替として認証コードは更に、例えばPINおよび/または上述のような他の値を結合することによって分秘密(KM)429から誘導され得る。
【0085】
図5を参照すると、装置メモリの二つの値の記憶部分の内容は、コラム1とコラム2とに示されている。ここで値1は認証装置に関連する秘密値を表し、また値2はイベント状態に関連するイベント状態データを表す。措置が発生するとコラム3に示すようにこれらの措置は、例示的出力(コラム4)および/または記憶された値(コラム1、コラム2)に影響を及ぼし得る。最も左のコラムは、開始時間T1で始まり時間T7で終わる時間増分を表す。イベントは周期的に発生しない可能性があるので、二つの隣接時間(例えばT1とT2)間の時間の長さが、別の1対の隣接時間(例えばT2とT3)によって表される時間の長さと等しくない可能性があることは留意されるべきである。この例では出力は画面上に表示されるが、前述のように他の出力手段も可能である。一実施形態では更新される秘密値(コラム1)は、マスター秘密値、例えばマスター秘密値から誘導されるマスターシードではない。
【0086】
第1の時間T1で認証装置は初期化される。これは、製造プロセス時に、または後刻のセットアッププロセスにおいて実行され得る。初期化は、例えば移動体装置に装置秘密を無線で送信することによって、またはネットワークに接続された装置に秘密をダウンロードすることによってリモートに、またはローカルにどちらでも遂行できる。初期化プロセスは、装置と少なくとも一つの検証者との間に少なくとも部分的に同期が存在するように行われる。ここで「同期化する」は、二つ以上の装置(すなわち認証装置と検証者)がある情報の一貫性のある表現を取得することを意味するために使用される。これは、装置秘密(コラム1)として記憶されたデータA1の完全な表現と、イベント状態データ(コラム2)として記憶されたデータB1の完全な表現とを共有する検証者を含むことができる。これはまた、例えば公開キー暗号システムにおける記憶された秘密キーに関連する公開キーの意味でデータの一部または表現を共有することを含むこともできる。
【0087】
第2の時間T2では、時間が経過して動的値の変化にしたがって秘密値(コラム1)とイベント状態データ(コラム2)が更新される。表に示すように、装置秘密は値A2を持ち、イベント状態データは(コラム2)は値B2を持つ。一実施形態ではこれらの値の更新は、好ましくは一方向性関数を使用してそれらの古い値をこれらから誘導された値に交換することによって行われる。他の実施形態では秘密値またはイベント状態データを表す各ビットの値は、更新(例えば逆演算)のときに存在した状態とは反対の状態に変更され得るであろう。他の変形版、例えば他の種類の修正および他の値との結合も可能である。
【0088】
第3の時間T3ではコラム1の装置秘密とコラム2のイベント状態データはそれぞれ、時間T2以降の経過時間が動的値に関してもう一つの更新期間を完了するには十分でないので、時間T2にあったものと同じである。この例では時間T3において利用者は、呼掛けと正しいPINとを装置に入力して出力を取得する。他の実施形態では呼掛けは使用されないかもしれない。この例では出力(コラム4)は、装置秘密(コラム1)とイベント状態データ(コラム2)ならびに呼掛けとPINとの関数である。呼掛けまたはPINの入力がこの例に含まれていても本発明の要件ではないことは理解されるべきである。上述のように出力は潜在的に、同じまたは異なるPINまたはパスワードおよび利用者識別子と共に検証者に伝達される。検証者は、装置がその状態にあると信じられる状態であって、(A2,B2)および他の前記の値から誘導される状態と一致しているかどうかを決定する。もし一致しなければ検証者は、それが一致する状態が存在するかどうかを決定しようと試みる。1セットの許容可能な状態のうちの一つの帰結に基づいて利用者は、その口座、識別性または会員資格、または誘発される警告などと関連するある許可を与えられることができる。
【0089】
第4の時間T4では、時間は再び経過して動的値に変化によって装置秘密(コラム1)とイベント状態データ(コラム2)は、装置秘密が値A3を持ち、イベント状態データが値B3を持つように更新される。
【0090】
第5の時間T5ではイベントが発生し、これがイベント状態データ(コラム2)に変化を誘発する。上述のようにこの変化は、このイベントに起因するメモリへの直接的影響の結果であり得るであろう。この変化はまた、例えばポーリングされた信号ラインにおける割り込みまたは変化の結果としてプロセッサ命令によって実施され得るであろう。表に示すように装置秘密はまだ値A3を持っているが、イベント状態データは今や値B4を持っており、これは更新または修正された状態を表している。この例ではイベント状態値の更新は、好ましくは一方向性関数を使用して、古い値B3をそれから誘導される値に交換することによって行われる。知られている値によるイベント状態データ(コラム2)の交換(例えば追加の更新)は、この変更が将来の認証コードに反映されるので、認証装置に記録されたイベント発生が存在するかどうかを検証者が決定することを可能にする。例えば図4の実施形態のビットEBITSは、交換され得るであろう。
【0091】
第6の時間T6では、時間は再び経過して動的値の変化にしたがって装置秘密値(コラム1)とイベント状態データ(コラム2)は再び更新される。表に示すように装置秘密は現在、値A4を持っており、イベント状態データは値B5を持っている。このイベント状態データは、時間T5でイベントが登録されなかった場合に持つはずである値とは異なっている。これは、これら値がこれらの前の状態に関数を適用することによって更新されるからであって、したがって如何なる修正も、将来の時間におけるイベント状態データを変更されたままに留まらせるであろう。
【0092】
時間T7では利用者は、再び呼掛けと正しいPINとを入力して出力値を取得する。認証装置によって生成された識別認証コードは、装置秘密A4(コラム1)とイベント状態データB5(コラム2)から誘導されるであろう。出力値は、利用者と装置との間、装置と検証者との間、および利用者と装置との間のすべての通信を観測者がセーブしたとしても、イベントが行5に登録されていることを装置秘密または元のイベント状態データの知識なしでは利用者(または観測者)が決定できないほどのものである。たとえそうであっても出力値はなお、登録されたイベントが行7の時間中または時間前に起こったことが検証者によって検出され得る(その値および関連情報の検証時に)ほどのものである。したがって例えばトークンを改竄した攻撃者は、変更されたトークンが使用されるたびにイベント情報が検証者に送信されていることに気づかずにいるであろう。
【0093】
例示的実施形態として再び図4の実施形態を参照すると時間T5で、使用されたビットEBITS420(図4)は交換される。したがってB5は、時間T5で登録されなかったイベントを持っていたものとは時間T7では異なるであろう。時間T5における変化は、イベント状態の後のバージョンに含まれ、また時間T7の認証コードに反映される。
【0094】
他の実施形態ではイベントの性質とイベントの時間といった更なる情報が検証者によって決定され得ることが可能である。この例では検証者は、識別認証コードが利用者に関連する値であることを検出するが、イベント状態を決定しない。しかしながらイベント状態データの値は、イベント状態データに基づいて、イベントの性質と時間とに関する情報を与える認証コードの生成という結果をもたらす仕方で修正され得る。例えばイベントの一つのタイプは出力の第1の部分に影響を及ぼすが第2の部分には影響を及ぼさないことが可能である一方、イベントの第2のタイプは第2の部分に影響を及ぼし得るが第1の部分には影響を及ぼすことはできない。ある幾つかの実施形態では第1、第2の部分は部分的にまたは完全にオーバーラップできる。もし第1、第2の部分が完全にオーバーラップすれば、これら二つの異なるイベントは、結果として得られた二つの異なる出力値を生成し、これから検証者はイベントが発生したに違いないということばかりでなく、それがどのようなタイプのイベントであったか(すなわちイベントの性質)を決定できる。同様に異なる時間中のイベントの登録は、出力の異なる部分に影響を及ぼすことができ、あるいは出力の値が値の異なる範囲に入るようにすることができる。イベントに関する更に詳細な情報はまた、例えば複数のイベント状態ビット420からなるマルチビット値を各選択された更新期間、例えば1時間に関連付けることによって伝達され得る。マルチビット2進値は、単一ビット値よりもイベントに関する多くの情報の伝達を考慮に入れることができる。例えばイベントが装置の場所(例えば米国以外にある装置?)に関連付けられる場合には、二つの可能なイベント状態−YESまたはNOだけが存在する可能性がある。この例ではイベントの性質は、1ビットだけで伝達可能である。しかしながら装置が米国の外に配置されていることをイベント状態が登録すると、検証者はその場所イベントに関する更に特定的な情報に関心を持つ可能性がある。この例ではイベント状態は、多数の可能な都市、国または地域などのうちの一つを伝達することができる。
【0095】
いずれの場合にも、また前述のように、イベントが登録されたかどうか、どのようなイベント(単数または複数)が登録されたか、イベント(単数または複数)が装置によっていつ登録されたか、を出力または出力の分布から単に、検証者(装置が直接通信によるか代理によるかいずれによってでも、ある時点で少なくとも部分的にこの検証者と同期している)が決定することは可能である。種々のコラムの値が単に本発明の教えを例示することを意味しており、これらの値が異なるフォーマットまたは表現またはそれらの組合せで、より長くまたはより短くできることは理解されるべきである。
【0096】
もし検証者は決定された状態が、検証者が通信している認証装置に関連する状態であるということを決定してはいるが、その状態がアクセスを与えることに関して許容できる状態でないかもしれない場合には、検証者は特定の措置をとる、例えば(限定なしに)当局に警告する、口座へのアクセスを阻止する、このイベントが前記装置によって後に登録され得るイベントを発生させる、あるいはこれらの任意の組み合わせを実行することができる。上記のように一つのイベントに関して多数の状態が存在し得る。しかしながら図5の説明では説明の単純化のために単に二つの一般的なカテゴリー(許容可能対許容不可)が使用されている。本技術に精通する人が、ここでこれらの教えを考えればこれら二つの状態のカテゴリーを三つ以上に容易に拡張できることは理解されるべきである。
【0097】
図6を参照すると一実施形態では、認証装置によって識別認証コードを生成するための方法は、認証装置にイベント状態データを記憶するステップを含む(ステップ601)。イベント状態データは、多数の部分に、例えば図4の実施形態におけるように、イベント秘密と別個のイベント状態ビットと共に記憶され得る。イベントの発生を表すイベント状態値は、プロセッサの内部または外部に存在し得る通常のメモリといったデータ記憶に記憶され得る。イベント状態データは、そのイベントがプロセッサまたはその他の介入なしにメモリ修正を起こすようにイベントに敏感であるメモリに記憶され得る。イベント状態データは、プロセッサによって読み取られ得る電子信号またはポートであり得る。イベント状態データは、絶えず更新され得る。例えばイベント状態は、図5を参照しながら説明されたように、それ自身の関数によって動的変数の適当な変化時に絶えず更新されるメモリを含むことができる。イベント状態データは、その値から誘導されるイベント状態とビットとに関連する値として記憶され得る。このような一実施形態では、これらのビットは各々が時間間隔に関連している。
【0098】
本方法はまた、イベントに応じてイベント状態データを修正するステップを含む(ステップ602)。この修正は、スイッチその他から適当な信号を受信するプロセッサによって遂行され得る。イベント状態データ記憶は、イベントの発生が本来、イベント状態データを修正するように設計され得る。例えばメモリの電気端子は、ケースの取外しがメモリ内容を変更するように装置ケースに接続され得る。
【0099】
上述のようにイベントは多くの形をとることができ、また異例または異常なイベント、または認証装置の正常な動作に関連しないイベントであることも可能である。一般に、認証は、もし単一の予期される状態が存在しなければ検証者がその他のイベント状態に関連する認証コードを計算しなくてはならないので、あまり効率的ではないであろう。異常イベントの非限定的例は、装置を改竄すること(例えばケーススイッチの誘発)と、環境的イベント(例えば温度、または放射線曝露)、不正確な電力入力(例えば高すぎる、または低すぎる)などといった装置外部のイベントとを含む。イベントはまた、このようなイベントの欠如(例えば電力正常)も含むことができる。
【0100】
修正は、イベント状態データ記憶に第1の値を直ちに記憶することと、その後に同じデータ記憶またはもう一つのデータ記憶に第2の値を記憶することとを含むことができる。もしこれらの値が二つの異なるデータ記憶に記憶されれば、これらの値はなお部分的にオーバーラップすることができる。直ちに記憶された値は、決定論的に計算されることができ、あるいは0または1といった定数であり得るであろう。即時データ記憶装置は、ここではそれがプロセッサその他のハードウエアクロックと同期して更新されないことを意味する非同期であり得る。第2の値は、例えばもしそれが例えば一方向性関数を使用して元の値から計算されるならば、少なくとも部分的に非決定論的であり得る。
【0101】
本方法はまた、動的値とイベント状態データと装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップを含む(ステップ603)。生成された認証コードはまた、PINとパスワードと生体測定観測から誘導されたデータとのうちの一つ以上といった利用者データに依存し得る。利用者は、このデータを認証装置に与えることができる。一部の利用者データは、おそらくは暗号化された形で認証装置に記憶され得る。利用者は認証装置へのある入力(すなわち生体測定データ)を与えることができ、また認証装置は他のデータを復号できる。
【0102】
認証装置は、利用者データの正しいことを検証でき、またもし利用者データが正しければ、識別認証コードを単に与えることができる。ある幾つかの実施形態では、間違った利用者データの多数回の提示は、イベント状態の修正という結果になり得るので、間違った利用者データの継続的な提示は検証者に報告される。
【0103】
識別認証コードを含む認証情報は、検証者に伝達される(ステップ604)。上述のように検証者への伝達は、人間の介入によって、またはよらなくて起こり得る。検証者は、PIN、パスワード、生体測定示度などといった他の認証および識別データを任意選択的に含むことができる認証情報を受信する。検証者は、認証装置によって記憶またはアクセスされた情報と同じであり得る、またはそれから誘導され得る、またはそれに関係し得る装置に関連した動的値と秘密とへのアクセスを有する。検証者は、利用者の識別性を検証し、受信された認証コードに応じてイベント状態を決定できる。
【0104】
前述のように適切な設計によって、イベント状態の伝達は、認証装置と検証者だけが伝達された状態に気付いているように行われることが可能である。
【0105】
図7を参照すると一実施形態ではイベント状態データは、二つの秘密値を含む。第1の秘密値は、セキュリティ強化秘密(C)である。第2の秘密値は、状態カウンタ秘密(X)である。この実施形態のバージョンではセキュリティ強化秘密(C)と状態カウンタ秘密(X)の各々は、例えば少なくとも80ビットという、強い暗号セキュリティを達成するために十分な長さのビット列を含む。これらの長さとは無関係に各秘密(C)、(X)は、ハッシュ関数、ブロック暗号などといった一方向性暗号変換によって更新され得る。セキュリティ強化秘密(C)は周期的に更新される。例えばセキュリティ強化秘密(C)が認証装置120(例えばトークン)において使用されるとき、秘密(C)は新しい識別認証コードがそのトークンに関して生成される各時間間隔で更新され得る。以下に説明されるようにセキュリティ強化秘密(C)の時間的に変化する性質は、セキュリティ強化秘密(C)の過去の値の所有が一般に攻撃者にとって有用ではないので、この実施形態のセキュリティを改善する。状態カウンタ秘密(X)は、イベントの検出時に更新される。状態カウンタ秘密(X)に対して行われる更新の程度は、検出されたイベントの量、検出されたイベントの性質またはそれら両者に依存し得る。検出されたイベントの性質を示すために状態カウンタ秘密(X)の更新が行われると、ある特定の更新値がある特定の検出可能イベントに対応するように、分類システムが使用される。例えばXの異なる値は、異なるイベントまたはイベント状態を指すことができる。
【0106】
イベントコード(F)は、少なくとも部分的にはセキュリティ強化秘密(C)と状態カウンタ秘密(X)の結合の結果である。例えばイベントコード(F)の値は、秘密(C)、(X)に適用される関数の出力の或る部分であり得る。一バージョンではイベントコード(F)は、(X)と(C)に排他的論理和演算が適用されたときに結果として得られる値の或る部分である。もし状態カウンタ秘密(X)が強い秘密であれば、この手法は順方向に確実な暗号化を与えるので有利である。他のバージョンではイベントコード(F)はセキュリティ強化秘密(C)が秘密キーとして使用される標準的対称暗号(例えばAES)の下で暗号化された状態カウンタ秘密(X)値の或る部分である。ここで使用されているように部分という用語は、全体またはその或る一部からなる値を指している。
【0107】
イベントコード(F)は、検出されたイベントの量、検出されたイベントの性質またはそれら両者を伝達する認証コードを生成するために使用され得る。例えば図示のようにイベントコード(F)は、秘密(K)と動的値(T)との結合の結果得られる値である認証値(S)と結合され得る。(F)と(S)とを結合した結果は、認証コード(A)である。一実施形態では認証コード(A)は、イベントコード(F)と認証値(S)とに排他的論理和演算が適用されたときに結果として得られる値の或る部分である。代替として認証値(A)は、認証値(S)が秘密キーとして使用される場合にイベントコード(F)にメッセージ認証コード(MAC)が適用されたとき誘導される。
【0108】
下記の説明目的のために認証装置120によって生成された認証コードは、(AV)とも呼ばれる今説明した手法も使用して、それを検証者によって生成された認証コードとは区別するために(AD)によって表される。
【0109】
認証コード(AD)は検証のために検証者に送信される。一実施形態では検証者は、同様な仕方、または認証装置と同期した仕方で現在時間に関してセキュリティ強化秘密(C)を更新し、現在の認証値(S)を計算することによって認証コード(AD)を再構成しようと試みる。検証者はまた、前述のようなイベントコード(F)を誘導するために状態カウンタ秘密(X)とセキュリティ強化秘密(C)との記憶された値を使用する。検証者は、第1の認証コード(A1V)を誘導するためにイベントコード(F)とセキュリティ強化秘密(C)とを使用する。検証者は、第1の認証コード(A1V)の値を認証装置120によって生成された受信した認証コード(AD)の値と比較する。認証コード(AD)は、もし(AD)が(A1V)に等しければ受け入れられる。
【0110】
もし受信された認証コード(AD)が第1の認証コード(A1V)に等しくなければ、検証者によって記憶された状態カウンタ秘密(X)の値は更新される。状態カウンタ秘密(X)の更新された値はイベントコード(F)の更新された値を誘導するために使用される。それから検証者は、第2の認証コード(A2V)を誘導するためにイベントコード(F)とセキュリティ強化秘密(C)の更新された値を使用する。再び検証者によって誘導された認証コード(すなわちこの繰り返しでは(A2V))は、認証コード(AD)と比較される。もし(AD)が(A2V)に等しければ、検証者は状態カウンタ秘密(X)の値によって指示される如何なるイベントの量および/または性質でも決定することができる。検証者は、この知識を使用して、認証コード(AD)を認証し、認証コード(AD)が無効であると決定し、一つ以上のイベントが発生したこと(例えば装置の改竄)を、またはそれらの組合せを信頼される当局に通知することができる。更に適当であれば検証者はまた、利用者110にそのイベントを通知し、発行当局にイベントを通知し、あるいは両者に通知することもできる。もし認証コード(AD)が第2の認証コード(A2V)に等しくなければ、検証者は、認証コード(AD)を生成する状態カウンタ秘密(X)の値が決定されるまで、状態カウンタ秘密(X)を更新してイベントコード(F)と認証コード(AV)との値を誘導するプロセスを繰り返すことができる。代替として検証者は、認証装置120によって与えられる或る特定の認証コード(AD)に関して認証プロセスを繰り返すことなく、認証コード(AD)が無効であると決定することができる。もし受信された認証コード(AD)が予期された認証コード(A1V)と一致しなければ、検証者はまた、認証装置と検証者との間の可能なクロックドリフトを明らかにするために隣接時間に関連する更なる認証コードを計算することもできる。
【0111】
一実施形態では検証者はまた、イベントコード(F)と状態カウンタ秘密(X)とが或る特定の仕方で誘導されるときに認証コード(AD)が部分的に誘導される状態カウンタ秘密(X)の値に対応する一つ以上にイベントを効率的に決定することもできる。この実施形態の一バージョンではイベントコードはイベント状態データである。特にイベントコード(F)がセキュリティ強化秘密(C)と状態カウンタ秘密(X)とに適用された排他的論理和から誘導され、認証コード(AD)がイベントコード(F)と認証値(S)とに適用された排他的論理和から誘導されるという両方の場合には、検証者は認証コード(AD)に対応する状態カウンタ秘密(XD)を効率的に計算できる。最初に検証者は、認証値(S)と認証コード(AD)とに適用された排他的論理和演算の関数として認証コード(AD)に対応するイベントコード(FD)を計算する。次に検証者は、イベントコード(FD)とセキュリティ強化秘密(C)とに適用された排他的論理和演算の関数として、対応する状態カウンタ秘密(XD)を計算する。前の例で説明されたようにこのプロセスは、検証者が状態カウンタ秘密(XD)によって示される任意のイベントの量および/または性質を決定できるまで、または認証コード(AD)が無効にされるまで繰り返されることができる。
【0112】
さて図8を参照すると一実施形態では、認証とイベント通信のためのシステムは、あるイベントが認証装置120によって検出されたかどうか、および/または認証コード810で伝達されたかどうかを、装置へのアクセスを有する攻撃者が決定することを困難にするための設計の一実施形態である。
【0113】
認証装置120ではイベント状態データ812は、レジスタ814といったメモリに記憶される。(検証者は、同様な仕方で一つ以上の認証装置120に関してイベント状態データ812を記憶できる。)イベント状態データ812は、例えば動的値(T)815の変化に応じて周期的に更新される。これらのスケジュールされた更新は、認証装置120と検証者の両者によって行われる。このようなシステムのためのレジスタ814は、認証装置120と検証者だけによって知られたランダム値を使用することによって初期化され得る。
【0114】
一実施形態ではイベント状態データ812自身は単に、入力(または入力の一つ)としてイベント状態データを一方向性関数に適用することによって更新される。これは図ではESt=f1(ESt-1)として示されており、ここでEStは現在のイベント状態データ812であり、ESt-1は前の期間からのイベント状態データ812であり、f1はハッシュ関数(例えばMD5およびSHA−1)、キー誘導関数などといった一方向性関数である。他の演算(例えばビットスワッピング、数学演算)も更新関数fの一部として実施されることが可能であり、装置秘密といった他のデータも更新演算に含まれ得る。この周期的更新は、ESt-1の値と更新演算で使用されるアルゴリズムとの両者を知るこれらの装置とエンティティとにとって所定の時間に予測可能であるほどに決定論的である。この予測可能性は、検証者が認証装置と適切に同期していることを条件として、認証装置120によって与えられるイベント状態データ812が検証者によって予測されるイベント状態データ812と一致することを可能にする。
【0115】
イベント状態データ812の次の値を誘導する際にイベント状態データ812の過去の値が使用されるので、過去のイベントはイベント状態データ812の後刻誘導される値に絶えず影響を及ぼす。例えば所定の時間T1でイベント状態データ812は或る特定の値を持っており、第2の時間T2でイベント状態データ812は検証者には予測可能である異なる値を(極めて高い確率で)持つであろう。しかしながらイベント状態データ812は、元の値を知らない観測者には予測可能ではない。開始時刻に関する観測者の不確実さも障害になり得る。イベント状態データ812へのアクセスを獲得する攻撃者は、データがいつ更新されたかを知るであろうが、イベント状態データ812が前のイベント状態データ812とどのように関係しているかを、すなわち前のイベント状態データ812が単純に更新されたか、あるいは正常な演算とは異なる演算によって、または異なる時間に前もって修正および/または更新されたかどうかを知らないであろう。したがって攻撃者が知られたくないイベント(例えば装置の改竄)の発生の証拠を消すために攻撃者がイベント状態データ812の過去の値を再生することはできない。
【0116】
イベントの発生時に認証装置120のイベント状態データ812は、さもなければそれが正常動作時にあるとは異なる仕方で修正される。これらのスケジュールされていない更新(U)は、検出されたイベントの発生に、イベントの性質に、イベントの状態に、または性質と状態との組合せに対応する仕方でイベント状態データ812の全部または一部を修正する。一実施形態ではイベントの発生時にイベント状態データ812は、現在の時間よりはむしろ次の時間に関する値を持っている。この手法は、更新がイベント検出の結果であるか正常な動作であるかどうかを攻撃者が知っていそうにないので、装置の動作(すなわちイベント状態データ更新)を正常であるように見せるという利点を持っている。他の実施形態ではイベント化発生すると、イベント状態データ812を更新するために、周期的更新を生成するために使用される方法とは異なる、スケジュールされていない更新(U)を実行する方法が使用される。このような一実施形態ではスケジュールされていない更新(U)を実行する際に、装置秘密802であるかも、またはないかもしれない秘密データ(図示せず)が使用される。例えば秘密データまたは秘密データから誘導される値が、イベント状態データ812と交換または結合され得る。
【0117】
レジスタ814は、複数のビット817(例えばaとb)を含んでおり、第1の部分818と第2の部分820とを含むことができる。イベント状態データ812が二つ以上の部分に分割されると、そこでは一つ以上の部分は現在のイベント状態(ESC)818を示すことができ、また一つ以上に部分は前に検出されたイベント(ESLT)820に対応できる。一実施形態では周期的更新は、長期イベント状態(ESLT)820を変えないままにしておきながら、現在イベント状態(ESC)818に対応するビットを修正する(例えば他のデータを使用して演算をセット、リセット、または実行する)。この例では長期イベント状態(ESLT)820と現在イベント状態(ESC)818の両者が、更新動作の際に使用される。
【0118】
図8において長期イベント状態データ820と現在イベント状態818は、隣接ビット817からなる連続部分として示されている。しかしながら長期イベント状態データ820と現在イベント状態818のどちらか、または両者は、レジスタ814の非隣接部分に分割され得る。これらの部分は、単一ビット、隣接ビット、非隣接ビットまたは他のある決定論的仕方でレジスタ814から選択されるビット817から構成され得る。更に長期イベント状態データ820と現在イベント状態818の各々は、同じビットのどれも使用できないか、同じビットの一部を使用できるか、同じビットの全部を使用できる。割り当てられたレジスタ814が使用される場合、現在時間中に発生するイベントは一バージョンでは、現在イベント状態データ例えば(ESC)818に関する情報を含むレジスタ814の部分の値を単に更新するように動作できる。したがってイベントの検出は、イベント状態データのどの部分が修正されるかに依存して長期的または短期的効果を持つことができる。
【0119】
一実施形態ではセレクタ822は、識別認証コード810を生成する際に使用され得る図ではS1、S2などと示されている複数の秘密から一つの秘密を選択する。これら複数の秘密は、攻撃者へのこれらの開示を防止する仕方で生成される値であって、例えばこれらの秘密は乱数発生器、暗号化アルゴリズムなどの結果であり得る。
【0120】
レジスタ814に記憶されたイベント状態データの一部分は、二つ以上の秘密S1、・・・、Snから選択するために或る特定の時間に使用される。例えばもし2個の秘密S1、S2が存在するならば、これら二つの秘密の間で、例えばa=0であればS1を、a=1であればS2を選択するために、1個のビット(a)が使用され得る。もし4個の秘密S1、S2、S3、S4が存在するならば、これらの秘密の間で、例えばa=0、b=0であればS1を、a=1、b=0であればS2を、a=0、b=1であればS3をa=1、b=1であればS4を選択するために、2個のビット(ab)が使用され得る。選択された秘密は、認証コード810を生成するためにセレクタ822によって結合関数826に供給される。このようにして認証コード810は、イベントの発生および/またはイベントの性質に関する情報を検証者に与える。他の変形版が可能であることは無論である。例えば選択された秘密自身の一部分は、認証コードとして使用され得るであろう。
【0121】
更なる実施形態では秘密のマルチレベル階層が使用される。マルチレベル階層の一つの一般的な例は、月シード、日シード、時間シードおよび分シードを含む1セットの値である。この例では月シードは、日シード、時間シード、分シードの値を決定するために必要とされるので最高レベルのシードである。図8に示す実施形態では各秘密S1、・・・、Snは、例えば月シードであり得る親秘密S0から生成される。したがって各秘密は、異なる潜在的な日シードである。この実施形態の一実施例では秘密は、各秘密Snに関して関数(f2)が親秘密S0とこれに対応する秘密番号(n)とに適用されたときに生成される。関数(f2)は、ハッシュ関数(例えばMD5とSHA−1)、キー誘導関数などといった一方向性関数であり得る。この仕方で生成された秘密S1、・・・、Snもまた、親秘密S0が更新されるときに周期的に更新されるであろう。このようにして新しい日秘密が生成されるときに新しいイベント秘密も生成され得る。この実施形態の更なるバージョンでは前の時間からの秘密(例えばT1におけるSn)もまた、現在時間に関する秘密(例えばT2におけるSn)を生成するために入力として関数(f2)に供給され得る。
【0122】
一般に結合関数826は、認証装置120にオンボードで記憶されている、および/または認証プロセス時に遠くから(リモートに)アクセスされるデータを使用して認証コード810を生成する。図示のようにこのデータは一つ以上のイベントの発生を表す秘密S1、・・・、Sn、装置秘密805、動的値(T)815、生成値(N)などといった値を含むことができる。その他の例におけるようにこれらの値から誘導される値は使用可能であろう(例えば動的値、または装置秘密の代わりに装置秘密から誘導される月シード)。同様に結合関数には更なる値が含まれ得る(例えば呼掛け値または他のデータ)。
【0123】
この実施形態の一バージョンでは7ビット・レジスタ814が128個の利用可能な秘密、例えばS1、・・・、S128という結果をもたらす。しかしながらレジスタ814は、遥かに大きく、例えば160ビットにもなり得る。大きなレジスタ814サイズは、選択され得る利用可能な秘密の数を膨大に増加させる機会を与える。しかしながら所望されるセキュリティレベルを与えるために必要とされる数を超えて利用可能な秘密の数を拡大することは必要とすべきではない。これは、イベント状態データ820を与える際の使用のために全レジスタ814の一部部だけを選択することによって避けることができる。同様にもう一つの例としてレジスタは、毎分使用される2個の異なるビットによって1時間使用されることが可能である。
【0124】
他の実施形態ではイベント状態データ812の更新、秘密S1、・・・、Snの更新または或る組合せは、少なくとも部分的には認証装置120が検証者から受信する呼掛けの結果から得られる。
【0125】
検証者が識別認証コード810を受信すると、検証者は既知のイベント状態データ812に基づいてその受信されたコード810が予期された値であるかどうかを決定する。もしそうでなければ、検証者はイベント状態データ812の一つ以上の更なる値に関して予期される認証コード810を計算する。秘密を生成するためにイベント状態データ812の単一ビットが使用される場合には、単に二つの可能なイベント状態が存在する。その結果、有効な認証装置120によって与えられ得る単に二つの可能な認証コード810、例えばS1を使用して誘導される第1の認証コードとS2を使用して誘導される第2の認証コードが存在する。
【0126】
選択のために2個のビットが使用されるときには検証者は、有効な認証装置120の4個の可能なイベント状態(例えば00、01、10、11)のいずれによって識別認証コード810が生成されたかどうかを決定できる。2ビットが使用されると、検証者は、受信されたコードを秘密S1、S2、S3、S4によって生成されるはずの受信コードと比較し、イベントが発生したことを認証コードが示すかどうか、または無効な認証コードが受信されたかどうかを決定するであろう。上述のように複数のビット817に含まれるビット817の数が大きいほど、潜在的に有効な秘密の数と潜在的に有効な認証コード810の数の両者は増加する。しかしながら検証者によって実行されるこれらの計算は、検証者が最も可能性の高い秘密(すなわちイベント状態データ812の最も可能性の高い値)に基づいて認証コード812を計算することによって開始する場合に、より迅速に完了することができる。例えば検証者は、先行する認証の各々においてイベント状態データ812の値を知るであろう。検証者の知識は、有効な認証装置120のイベント状態または認証コード810の無効性を決定する前に必要とされる繰り返しの回数を減少させる。イベント状態データ812が非常に多くのビット817から形成される場合には、減少した繰り返し回数は、認証コード810を処理する際に検証者の効率を実質的に向上させることができる。無論のこと、秘密S1、・・・、Snを生成する方法だけを知っているがイベント状態データ812を知らない検証者は、働いてはいるが前の効率の利点を欠いていてイベント状態を決定できないかどうかを見るために各秘密を試してみることによって、なお認証コードを検証することができる。
【0127】
代替として認証コード810は、繰り返し計算を実行する必要なしに認証コード810が誘導される時間とイベント状態の一方または両方を検証者が直ちに決定することを可能にする情報を含むことができる。一実施形態ではこのような手法は、時間および/またはイベント状態を暗示または示唆する明示的情報を認証コード810内に含むことによって実現される。
【0128】
検証者は、認証コードに対応するイベント状態が予期されないときにはスケジュールされていない更新が発生した可能性があると考えることがあり得る。それから検証者は、前のスケジュールされた更新の間の或る時刻にスケジュールされていない更新が発生したと想定して、イベント状態を再計算することができる。もし再計算されたイベント状態が将来の認証演算における認証コードに対応するイベント状態と一致し続ければ、検証者はそのスケジュールされていない更新がある特定の時刻に発生したと推断できる。代替として検証者は、時刻を決定することなくスケジュールされていない更新が発生したと結論付けることができる。
【0129】
スケジュールされていない更新が検証者によって検出されると、検証者は検証者によって実行される将来の周期的更新の結果が認証装置によって実行される将来の周期的更新の結果に対応するように、認証装置120に関する検証者のデータを更新することができる。
【0130】
前述の実施形態の一つ以上は、一つ以上のマスター検証者と一つ以上の従属検証者とを含むシステムにおいて使用され得る。一般にマスター検証者は、認証時に使用される通信端末140から従属検証者よりも遠く離れている。一実施形態ではマスター検証者は、一つ以上の認証装置120に関する各秘密とそれに対応する認証コードとを計算するために必要とされる情報を記憶している。認可された検証者による認証を容易にするために認証装置120とこの手法で使用されるマスター検証者との両者は、各期間中に一時秘密を誘導する。しかしながら従属検証者は、マスター検証者から秘密を受信したときにそれに提示されるコードだけを認証できる。更に従属検証者によって受信された秘密は、特定の期間中だけ有効であって(すなわちこれらは一時秘密である)、これらは限られた数の認証装置に関してだけ有効である。その結果、従属検証者は、減少した期間中だけ認証できる。従属検証者が認証できる期間は、従属検証者が認証コードを生成するために使用される有効な秘密を所有している期間に限られる。この手法は、従属検証者が危険に曝される場合に攻撃者がなし得る損傷を減らすので有利であり得る。
【0131】
従属検証者は、秘密の更新に同意し、要求に応じて、またはスケジュールされた更新で、またはその両方でマスター検証者から一時秘密を受信する。これらの一時秘密は、或る特定の期間中だけ、例えば1月、1日、1時間などの間だけの使用に限定され得る。更に、または代替として、各秘密が満了期間の終了に先立つ任意の時間に一度使用され得る場合には、ある設定された量の一時秘密が供給され得る。一時秘密として使用され得る幾つかの値は、例えば図2の装置秘密(K)と動的値(T)とイベント状態データ(E)とを含む。代替として前述の実施形態の一時秘密は、単一の期間中だけ有効である一時マスター秘密から生成され得る。この代替手法では、マスター検証者は、同意している従属サーバの各々に、その期間中に装置秘密(K)と動的値(T)とイベント状態(E)とのうちの一つ以上を生成するために使用される一時マスター秘密を与える。
【0132】
前述の実施形態の一つ以上とも整合する更なる実施形態では、検証者105と認証装置120との間の情報の通信を容易にするために、中間サーバが使用される。この手法は、認証装置120の有用性を増加させるので有利である。例えば認証コードは、認証システム100に一般に関与しないシステム、例えば検証者105を欠くシステムに提示され得る。この実施形態では中間サーバは、認証を完了するために検証者105と通信するであろう。
【0133】
前述の手法の一つ以上はまた、攻撃者がイベント状態とイベント状態データとの過去の値を検出することを防止する手法を使用することもできる。この手法は、認証装置120の物理メモリへのアクセスを有する攻撃者による攻撃の成功を防止するために使用され得る。このような攻撃は、延長された期間中にメモリに記憶された値がそれら自身をメモリ内に焼き込むことができるので成功の可能性を持っている。これらの値を消去または上書きしようとする後刻の試みは、適当に装備した攻撃者からこの隠された情報を消去することができない。磁気記憶媒体もまた、前に記憶された値の望ましくない長期のメモリから被害を受ける。RAMに記憶された値の場合のようにこれらの過去の値もまた、メモリへのアクセスを有する攻撃者によって再生され得る。
【0134】
一実施形態ではイベント状態データの頻繁な周期的更新は、イベント状態データの過去の値の焼き込みを防止する。もう一つの実施形態ではイベント状態データは、暗号的に保護される。例えばイベント状態データは、二つ以上のレジスタに、または同じレジスタの別々の部分に記憶され得る。この手法を使用すると、排他的論理和演算はイベント状態データを共に形成する値に適用されることが可能であって、これらの値は時間に亘って更新され得る。その結果、イベント状態データの実際の値は直接には記憶されず、またどの値も焼き込みできないが、それでもなおイベント状態データは容易に決定され得る。この方法は、前述の周期的更新と共に使用され得る。このような手法は、例えばその内容が引例によってここに組み込まれている、Symposium on Theoritical Aspects in Computer Science,1999(コンピュータ科学における理論的態様に関するシンポジウム、1999年)のDi Crescenzo等による「How to Forget a Secret(秘密を忘れる方法)」に記載されている。
【0135】
ここに説明されていることの変形版、修正版、および他の実施形態は、請求されているような本発明の精神と範囲から逸脱することなく、本技術に通常のスキルを有する人々に思い浮かぶであろう。したがって本発明は、前述の例示的説明によってではなく、その代わりに前述の請求項の精神と範囲とによって定義されるべきである。
【図面の簡単な説明】
【0136】
これらの図面では同じ参照文字は、一般に種々の図を通して同じ部分を指している。またこれらの図面は、必ずしもスケールに従っておらず、その代わりに概ね本発明の原理を説明すること力点が置かれている。
【図1】本発明の一実施形態による認証装置と検証者とを含む認証システムを示すブロック図である。
【図2】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図3】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図4】図3の実施形態の詳細な実施形態を示すブロック図である。
【図5】認証コードを生成する際のイベント状態データの使用を示す例である。
【図6】認証コードを生成するための方法の実施形態を示すフローチャートである。
【図7】本発明の一実施形態による認証コードの生成を示すブロック図である。
【図8】本発明の一実施形態による認証コードの生成を示すブロック図である。
【符号の説明】
【0137】
100 認証システム、 105 検証者、 110 利用者、 120 利用者認証装置、 130 ユーザインタフェース、 140 通信端末、 145 端末インタフェース、 160 通信インタフェース、 170通信チャネル、 230 結合関数、 235 装置データ、 290、291、292、293 認証コード、 305 第1の秘密値、 310 イベント秘密、 315 動的値、 320 イベント状態データ、 325 時間固有値、 330 識別認証コード、 410 イベント秘密、 411 初期値、 413 イベント秘密キー、 415 動的値、 420 イベント状態ビット、425 入力、 429 分秘密、 802 装置秘密、 805 装置秘密、 810 認証コード、 812 イベント状態データ、 814 レジスタ、 815 動的値、 817 複数のビット、 818 現在イベント状態、 820 長期イベント状態、 822 セレクタ、 826 結合関数

【特許請求の範囲】
【請求項1】
認証装置に関連する識別認証コードを生成するための方法であって、
認証装置にイベント(事象)状態を記憶するステップと、
イベントに応じて前記イベント状態を修正するステップと、
(i)動的値と(ii)前記イベント状態と(iii)前記装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップと、を含むことを特徴とする方法。
【請求項2】
前記イベントは報告可能なイベントを含むことを特徴とする、請求項1に記載の方法。
【請求項3】
前記イベントは変則なイベントを含むことを特徴とする、請求項1に記載の方法。
【請求項4】
前記イベントは前記装置を改竄することを含むことを特徴とする、請求項1に記載の方法。
【請求項5】
前記イベントは前記装置によって検出される前記装置の外部のイベントを含むことを特徴とする、請求項1に記載の方法。
【請求項6】
前記イベントは環境的イベントを含むことを特徴とする、請求項1に記載の方法。
【請求項7】
前記イベントは減少したバッテリーパワー(電池電力)出力を含むことを特徴とする、請求項1に記載の方法。
【請求項8】
前記イベントは環境的イベントと減少したバッテリーパワー出力と前記装置を改竄することのうちの少なくとも一つの欠如を含むことを特徴とする、請求項1に記載の方法。
【請求項9】
前記識別認証コードを表示するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項10】
前記生成するステップは、(i)前記動的な値と、(ii)前記イベント状態と、(iii)前記装置に関連する前記秘密と、(iv)PIN(個人識別番号)とパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つと、に少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項11】
前記PINとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つは前記認証装置に記憶されることを特徴とする、請求項10に記載の方法。
【請求項12】
前記PINとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つは暗号化された形で前記認証装置に記憶されることを特徴とする、請求項11に記載の方法。
【請求項13】
前記生成するステップは、(i)前記動的値と、(ii)前記イベント状態と、(iii)前記装置に関連する前記秘密と、(iv)生体測定観測から取得されるデータが復号するために使用され得るように暗号化された形で記憶されたPINとパスワードとのうちの少なくとも一つと、に少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項14】
前記生成するステップの前に、前記PINとパスワードと生体測定観測から誘導されるデータとのうちの少なくとも一つを含む利用者入力データを受信するステップを更に含むことを特徴とする、請求項10に記載の方法。
【請求項15】
前記生成するステップの前に、利用者入力データの正しいことを検証するステップを更に含み、また
前記利用者入力データが正しいと検証された場合にだけ前記識別認証コードを与えるステップを更に含むことを特徴とする、請求項14に記載の方法。
【請求項16】
前記識別認証コードを検証者に送信するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項17】
前記識別認証コードを含む認証情報を検証者によって受信するステップと、
前記利用者の識別性(身分証明)と前記イベント状態とを検証者によって決定するステップとを更に含むことを特徴とする、請求項16に記載の方法。
【請求項18】
前記検証者は前記装置に関連する前記秘密の表現を含むことを特徴とする、請求項16に記載の方法。
【請求項19】
前記認証情報は利用者識別子を更に含むことを特徴とする、請求項17に記載の方法。
【請求項20】
前記認証情報はPINとパスワードのうちの少なくとも一つを更に含むことを特徴とする、請求項17に記載の方法。
【請求項21】
前記装置と検証者だけが前記イベント状態を容易に決定できることを特徴とする、請求項16に記載の方法。
【請求項22】
イベント状態を修正する前記ステップはイベント状態データを第1のデータ記憶装置に記憶するステップを含むことを特徴とする、請求項1に記載の方法。
【請求項23】
前記修正するステップは第1の値を前記第1のデータ記憶装置に直ちに記憶し、その後に第2の値を第2のデータ記憶装置に記憶するステップを含むことを特徴とする、請求項22に記載の方法。
【請求項24】
前記第1のデータ記憶装置と前記第2のデータ記憶装置は同じデータ記憶装置であることを特徴とする、請求項22に記載の方法。
【請求項25】
前記第1のデータ記憶装置は前記第2のデータ記憶装置とオーバーラップすることを特徴とする、請求項22に記載の方法。
【請求項26】
前記第1のデータ記憶装置は前記第2のデータ記憶装置とは異なることを特徴とする、請求項22に記載の方法。
【請求項27】
前記第1値は決定論的に計算されることを特徴とする、請求項22に記載の方法。
【請求項28】
前記第1値はゼロであることを特徴とする、請求項22に記載の方法。
【請求項29】
直ちに記憶する前記ステップは非同期的であることを特徴とする、請求項22に記載の方法。
【請求項30】
前記第1の値と前記第2の値のうちの少なくとも一つは少なくとも部分的にランダムであることを特徴とする、請求項22に記載の方法。
【請求項31】
前記第2の値は計算された値を含むことを特徴とする、請求項22に記載の方法。
【請求項32】
前記生成するステップは、時間に関連する動的値と、前記イベント状態に反映されるイベントの発生とに少なくとも部分的に依存する識別認証コードを生成するステップを更に含むことを特徴とする、請求項1に記載の方法。
【請求項33】
前記イベント状態はイベント状態に関連する値とこの値から誘導されるビットとを含み、これらのビットの各々は時間間隔と関連していることを特徴とする、請求項1に記載の方法。
【請求項34】
前記装置は互いに通信する二つのコンポーネントを含むことを特徴とする、請求項1に記載の方法。
【請求項35】
前記イベント状態の少なくとも一部と前記秘密の少なくとも一部は前記二つのコンポーネントの一つに記憶されることを特徴とする、請求項34に記載の方法。
【請求項36】
前記コンポーネントの一方は無線通信装置を含み、他方のコンポーネントは前記無線装置に取外し可能なアクセサリを含むことを特徴とする、請求項34に記載の方法。
【請求項37】
装置を検証するための方法であって、
時間と前記装置に関連する秘密とイベント状態とに少なくとも部分的に依存する装置によって生成される識別認証コードを含む認証情報を受信するステップと、
前記受信された識別認証コードに応じて利用者の識別性(身分証明)を検証し、前記イベント状態を決定するステップと、を含むことを特徴とする方法。
【請求項38】
前記イベント状態に応じて措置をとるステップを含むことを特徴とする、請求項37に記載の方法。
【請求項39】
前記決定されたイベント状態に応じてイベントが発生したかどうかを決定するステップを更に含むことを特徴とする、請求項37に記載の方法。
【請求項40】
前記イベント状態は前記装置を改竄することを含むことを特徴とする、請求項37に記載の方法。
【請求項41】
前記イベントは前記装置によって検出される前記装置の外部のイベントを含むことを特徴とする、請求項37に記載の方法。
【請求項42】
前記イベントは環境的イベントと減少したバッテリーパワー出力と前記装置を改竄することのうちの少なくとも一つの欠如を含むことを特徴とする、請求項37に記載の方法。
【請求項43】
前記認証情報は利用者識別子を更に含むことを特徴とする、請求項37に記載の方法。
【請求項44】
前記認証情報はPINとパスワードのうちの少なくとも一つを更に含むことを特徴とする、請求項43に記載の方法。
【請求項45】
前記装置と検証者だけが前記イベント状態を容易に決定できることを特徴とする、請求項37に記載の方法。
【請求項46】
前記装置と検証者だけがイベントが登録されたかどうかを容易に決定できることを特徴とする、請求項37に記載の方法。
【請求項47】
前記検証するステップは時間に関連する動的値と前記イベント状態とに少なくとも部分的に依存する予期される識別認証コードを生成することを更に含むことを特徴とする、請求項37に記載の方法。
【請求項48】
前記イベント状態はイベント状態秘密と前記動的値から誘導されるビットとを含み、これらのビットの各々は時間間隔と関連していることを特徴とする、請求項46に記載の方法。
【請求項49】
装置によって識別認証コードを生成するための方法であって、
装置に関連する第1の秘密値をこの装置内に記憶するステップと、
イベント状態に関連する第2の秘密値をこの装置内に記憶するステップと、
時間的に変化する動的値を前記装置によって生成するステップと、
時間に関連するイベント状態データを前記第2の秘密値から誘導するステップと、
ある時間に関する時間固有値を前記第1の秘密値と前記イベント状態データとから誘導するステップと、
前記時間固有値を入力として使用して識別認証コードを計算するステップと、を含むことを特徴とする方法。
【請求項50】
前記イベント状態データは各々が時間に関連するビットを含んでおり、前記時間固有値は前記第1の秘密値と前記時間に関連するそれぞれのビットとから誘導されることを特徴とする、請求項49に記載の方法。
【請求項51】
イベントの発生を検出するステップと、
前記検出されたイベントに応じてイベント状態ビットを修正するステップと、を更に含むことを特徴とする、請求項50に記載の方法。
【請求項52】
前記検出されたイベントに応じて前記第2の秘密値を修正するステップと、を更に含むことを特徴とする、請求項49に記載の方法。
【請求項53】
前記第1の秘密値は最初のうちは、前記第2の秘密値と同じであることを特徴とする、請求項49に記載の方法。
【請求項54】
前記イベントは前記装置を改竄することを含むことを特徴とする、請求項49に記載の方法。
【請求項55】
前記識別認証コードを前記装置に表示するステップを更に含むことを特徴とする、請求項49に記載の方法。
【請求項56】
前記識別認証コードを検証者に送信するステップを更に含むことを特徴とする、請求項49に記載の方法。
【請求項57】
前記イベント状態データは複数のビットを含み、これら複数のビットはそれぞれの時間に関連しており、また時間固有値は前記第1の秘密値と前記それぞれの時間に関連する前記複数のビットとから誘導されることを特徴とする、請求項49に記載の方法。
【請求項58】
前記イベント状態データは前記動的値と前記第2の秘密値とから誘導されることを特徴とする、請求項49に記載の方法。
【請求項59】
認証装置に関連する識別認証コードを生成するためのシステムであって、時間的に変化する動的値とイベントの発生を示すイベント状態と前記認証装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するための認証コード発生器を含むことを特徴とするシステム。
【請求項60】
認証装置によって識別認証コードを生成し、前記認証装置と時間的にほぼ同期する検証装置によって前記識別認証コードを検証するための方法であって、
イベント状態を認証装置内に記憶するステップと、
イベントに応じて前記イベント状態を修正するステップと、
時間値と前記イベント状態と前記装置に関連する秘密とに少なくとも部分的に依存する識別認証コードを生成するステップと、
前記識別認証コードを前記検証装置に送信するステップと、
前記検証装置によって前記識別認証コードを検証し、前記イベント状態を決定するステップと、を含むことを特徴とする方法。
【請求項61】
認証とイベント状態通信とのためのシステムであって、
イベント状態データ値と、
正常な動作時に予め決められた仕方で前記イベント状態データ値を周期的に更新するための第1のイベント状態修飾子と、イベントの発生時に前記イベント状態データ値を更新するための第2のイベント状態修飾子と、
複数の秘密値と、
識別認証コードが生成されたときに発生する前記イベント状態データ値に応じてこれらの秘密値の一つを選択するためのセレクタと、
その秘密値に応じて識別認証コードを生成するためのコード発生器と、を含むことを特徴とするシステム。
【請求項62】
前記イベント状態データ値の第1の部分は前記第1のイベント状態修飾子によって更新され、前記イベント状態データ値の第2の部分は前記第2のイベント状態修飾子によって更新されることを特徴とする、請求項61に記載のシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2006−508471(P2006−508471A)
【公表日】平成18年3月9日(2006.3.9)
【国際特許分類】
【出願番号】特願2004−557367(P2004−557367)
【出願日】平成15年11月26日(2003.11.26)
【国際出願番号】PCT/US2003/037928
【国際公開番号】WO2004/051585
【国際公開日】平成16年6月17日(2004.6.17)
【出願人】(505195133)アールエスエイ セキュリティー インク (3)
【Fターム(参考)】