説明

暗号法的に安全な認証装置、システム及び方法

電子装置は上記電子装置の認証時に使用される複数の識別値を発生する。上記装置は、インターフェースと、プライベート鍵を発生するためのプライベート鍵発生器と、少なくともプライベート鍵を格納するための不揮発性メモリと、インデックスソースと、ハッシュエンジンと、上記プライベート鍵発生器、上記不揮発性メモリ、上記インデックスソース、上記ハッシュエンジン、及び上記インターフェースとの間の論理的相互接続とを備える。上記ハッシュエンジンは、上記論理的相互接続を介して上記インターフェースに提供された複数の識別値を発生する。上記複数の識別値は、上記電子装置を認証するときの使用のために、検証装置に提供される。代わりにもしくはさらに、複数の装置はペアが構成されてルート鍵が共有されて相互間を暗号通信し、及び/もしくは相互に認証してもよい。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は一般的に、装置の安全な認証を提供するためのシステム及び方法に関し、排他的ではないがより特に、複数のプライベート鍵が各装置に対して内部だけに格納されるように、複数の装置の内部のキーイングを利用する認証システムを提供することに関する。
【背景技術】
【0002】
小型で低電力の複数の無線装置は、工業プロセスのモニタリング及び制御と、機械の健全性のモニタリングと、環境及び生息環境のモニタリングと、複数のヘルスケア応用と、ビルディング自動化と、ユーティリティのモニタリング及び制御、並びに交通制御を含む、多くの産業及び民間の応用領域において使用される。複数の無線装置は、お互いに通信してもよく、及び/もしくは中心サーバと通信してもよい。複数の無線装置は、例えば複数の交通信号を制御することや電気及びガスの使用を制御することや建物の中への入場を制御することなどの重大な複数の機能を実行する能力を有するかもしれないので、複数の無線装置の安全性が危険にさらされないことが重要である。しばしば、複数の無線装置は、データの暗号化及び/もしくは認証のために複数の暗号鍵を使用する。例えば、複数の無線装置は、データ暗号化及び/もしくはフレームインテグリティのための対称鍵128ビットの進歩した暗号化標準を使用し、データを複数の暗号鍵なしに複数の者により修正されることから保護されてもよい。製造時において、複数の生産者は、公開鍵暗号法を使用して、装置を一意的に識別するプライベート鍵を組み込むか、もしくは挿入してもよい。プライベート鍵は装置の認証のために使用されてもよい。
【発明の概要】
【発明が解決しようとする課題】
【0003】
しかしながら、複数の生産者が第三者の複数の製造業者を使用する場合、鍵のリークの脅威の可能性があり、そこではキーイングマテリアルのすべてが複数の正規装置を製造するために使用されるとは限らない。この場合において、非正規装置が、当該非正規装置が複数の無線装置に対して認証されないアクセスを可能とするかもしれないプライベート鍵が組み込まれるかもしれない。
【0004】
さらに、複数の装置の中に組み込まれた複数のプライベート鍵が発生され、例えばデータベース内もしくは取り外し可能な媒体内などの、上記複数の装置に対して外部に格納される。もし第三者が組み込まれた複数の鍵を格納するデータベースに対するアクセスを獲得することができたならば、第三者は1つのもしくはそれ以上の無線装置に対して認証されないアクセスを得ることができるかもしれない。すべての可能性がある128ビットの鍵を通してサーチして複数の装置に対するアクセスを獲得しなければならない代わりに、可能性がある複数の鍵のサーチ空間は、データ記憶装置上に格納された複数の鍵に対して狭まるであろう。従って、複数の無線装置の安全性は、複数の鍵のセットが格納された外部のデータ記憶装置の安全性に依存するかもしれない。データ記憶装置の安全性を危険にさらすことは、結果としてそこに格納された複数の鍵を有する複数の無線装置の安全性を危険にさらすことになるかもしれない。
【課題を解決するための手段】
【0005】
電子装置は、オンボードの乱数発生器により発生された乱数及びインデックス番号と参照番号との差に基づいた複数の識別値を発生する。複数の識別値は、乱数をリリースすることなしに電子装置を認証することにおいて、検証装置により使用される。
【0006】
他の複数の目的及び複数の特徴は一部においては明白となろう。そして、一部においては後述において指摘されるであろう。
【0007】
対応する複数の参照文字は、複数の図面を通して対応する複数の部分を指示する。
【図面の簡単な説明】
【0008】
【図1】本発明の一実施形態に係る安全な認証装置を含む例示的なシステムのブロック図である。
【図2】本発明の一実施形態に係る安全な認証装置のブロック図である。
【図3】本発明の一実施形態に係るプロセッサを含む安全な認証装置のブロック図である。
【図4A】図2の安全な認証装置、もしくは本発明の複数の実施形態に係る他の安全な認証装置の内部のキーイング演算を例示するフローチャートである。
【図4B】図2の安全な認証装置、もしくは本発明の複数の実施形態に係る他の安全な認証装置の内部のキーイング演算を例示するフローチャートである。
【図5】図2の安全な認証装置、もしくは本発明の複数の実施形態に係る他の安全な認証装置を認証する検証装置の演算を例示するフローチャートである。
【図6】図2の安全な認証装置、もしくは本発明の複数の実施形態に係る他の安全な認証装置の認証演算を例示するフローチャートである。
【図7】図2の安全な認証装置、もしくは本発明の複数の実施形態に係る他の安全な認証装置の内部のキーイング演算及び/もしくは暗号法の鍵共有演算を例示するフローチャートである。
【発明を実施するための形態】
【0009】
開示された複数の実施形態において、内部にプライベート鍵を発生して格納する、安全な認証装置、システム及び方法が提示される。プライベート鍵は、装置のための固有の識別値(I.V.)を発生するために使用される。プライベート鍵は他の複数の装置に対してアクセス不可能であり、それによりプライベート鍵が潜在的に第三者によりアクセスされることを防止する。安全な認証装置は、当該装置がそれがプライベート鍵を開示することなしにプライベート鍵を所有することを実証できる認証方法を利用する。従って、認証は外部とプライベート鍵を通信で送受信しなければならない装置なしに達成される。プライベート鍵が、例えば装置のメモリ内などの、装置に対する内部だけに格納されて装置に対して外部から決して通信されないので、第三者が装置の安全性を危険にさらすことは非常に困難である。
【0010】
いま、複数の図面を見ると、図1は、一実施形態に係る安全な認証装置200及びプロセッサ110を含む電子装置100のブロック図を提供する。安全な認証装置200は、1つのもしくはそれ以上の識別値を、例えばサーバ120もしくは他のステーションなどの検証装置に対する送信のためのプロセッサ110に対して提供してもよく、装置もしくはシステムは電子装置100の固有のアイデンティティ(同一性)を検証する必要がある。安全な認証装置200は、マイクロチップ内、システムボード上、もしくは一般的にプロセッサ110とインターフェースすることができる任意の装置を通して実装されてもよい。電子装置は、識別値(I.V.)と電子装置100の識別と現在の時間とを送信し、電子装置100が本物であることを検証するときの使用のためにこれらのすべてがサーバ120により受信される。図1に例示された実施形態において、情報は、例えばアンテナ130、140を介して、及び/もしくは(例えば、赤外線送信などの)いくつかの他の無線送信を介して、及び/もしくは(例えば、有線ネットワークなどの)有線接続150を介してなどの無線送信により送信されてもよい。
【0011】
電子装置100は、認証を要求する任意の装置であってもよい。例えば、電子装置100は、遠隔の検針システムにおいて使用される検針装置であってもよく、その場合は、プロセッサ110はサーバと通信してもよく、検針に関する情報を上記サーバに送信する。この例において、検針装置は、請求書作成サーバを用いて認証して検針装置により提供された複数の値を検証する必要があるとしてもよい。代わりに、電子装置100は、国際的な携帯機器識別子(IMEI)を使用する携帯電話ネットワークを用いて認証する携帯電話であってもよい。従って、プロセッサ110は、携帯電話を操作して音声情報を含む情報を送信するための携帯電話プロセッサであろう。代わりに、電子装置100は、認証を必要とする無線ネットワークにおいて動作する無線センサであってもよい。
【0012】
1つの実施形態において、1つのもしくはそれ以上の複数の電子装置100は、電子装置100が製造されるときにサーバ120とペアが構成されてもよい。各安全な認証装置200は、ボード上にそれ自身のプライベート鍵を有し、それ自身のプライベート鍵を発生する。さらに、各装置200は、将来における終了の日付/時間を識別して(もしくは割り当てられて)そのプライベート鍵と関連付けられてもよい。識別された終了の日付/時間は、例えば日付/時間を将来に向けた50年とするなど、装置の平均寿命よりも長く続くように、将来において十分に遠いべきである。安全な認証装置200は、プライベート鍵と識別された終了の日付/時間とを、例えば不揮発性メモリ内などの内部に格納する。
【0013】
演算において、各安全な認証装置200は、現在の日付/時間と終了の日付/時間との間の時間量を決定する。例えば、秒、ミリ秒、分などの任意の単位において測定される。各安全な認証装置200は、時間量から得られたプライベート鍵に対してある回数のハッシュを実行し、その結果生じたハッシュ(すなわち、第1の識別値。)をプロセッサ110に提供する。ハッシュの数は差であってもよく、または差から得られた線形値であってもよく、または差に関する全体もしくは一部に基づいたある他の値から得られた線形値であってもよい。プロセッサ110は、次の情報をサーバ120に送信する。すなわち、第1の識別値と、クロック160により提供された現在の日付/時間と、例えば携帯電話のIMEIなどの電子装置100の識別子(「ID」)とである。サーバ120は、送信された情報を受信するためのインターフェース122と、動作可能なようにインターフェース122に接続されるプロセッサ124と、例えばデータ記憶装置内などのメモリ126とを含む。プロセッサは、メモリ126内に電子装置100の識別子と、第1の識別値と、現在の日付/時間とを格納する。しかしながら、安全な認証装置200は、プライベート鍵を決してサーバ120に提供しない。従って、送信された情報を受信することによって、もしくはサーバ120にアクセスすることによって、プライベート鍵が第三者によって獲得されないように、プライベート鍵は送信されない。結果として、装置100及びサーバ120の安全性は危険にさらされない。安全な認証装置の最初の複数のキーイング演算が、以下の図4においてより詳細に説明される。
【0014】
サーバ120は各電子装置100を認証することができ、すなわち電子装置100は(「より最近の現在の日付/時間」と呼ばれる)より最近の時間においてサーバを用いて認証を開始することができる。認証の間、各安全な認証装置200は、より最近の現在の日付/時間を決定し、安全な認証装置200上に格納された、より最近の現在の日付/時間と終了の日付/時間との間の(例えば、複数の秒などの)時間量を決定する。安全な認証装置200は、時間量に基づいてプライベート鍵をハッシュして第2の識別値を発生する(例えば、複数のハッシュは、より最近の現在の日付/時間と終了の日付/時間との間の秒数から得られた回数だけであってもよい。)。安全な認証装置200は、装置識別子及びより最近の現在の日付/時間と一緒に第2の識別値をサーバ120に提供するプロセッサ110に対して、上記第2の識別値を提供する。サーバ120は、安全な認証装置200から受信されたより最近の現在の日付/時間と、(例えば、第1の識別値のすぐ前の現在の日付/時間などの)電子装置100が認証されたときの最後に受信された前の日付/時間との間の(例えば、数秒などの)時間量を決定する。もし電子装置100が前に認証されなかった場合、この前の日付/時間は、電子装置100がサーバと最初にペアが構成されたときの日付/時間であろう。サーバ120は、より最近の現在の日付/時間と前の複数の日付/時間との間の(例えば、数秒における差などの)時間量を決定し、受信された第2の識別値を、(例えば、数秒などの)時間量から得られた回数だけハッシュする。その結果生じた第2の識別値は、装置100の安全な認証装置200から受信された前の(第1の)識別値と等しくなるべきである。特に、もしその結果生じた値が装置100の安全な認証装置200から受信された前の(第1の)識別値と等しければ、その場合は認証が確認される。そうでなければ、もしその結果生じた値が装置100の安全な認証装置200から受信された前の(第1の)識別値と等しくなければ、その場合はその認証は失敗してその装置は認証されない。安全な認証装置200を検証すること、もしくは認証することの複数の演算が、以下の図4から図5においてより詳細に説明される。
【0015】
プライベート鍵が安全な認証装置200内だけに格納されるので、安全な認証装置200だけが、プライベート鍵に対して、終了の日付/時間とより最近の現在の日付/時間との間の時間量から得られた数だけハッシュを実行し、その結果をサーバ120に提供することができる。次に、サーバは、前の識別値が安全な認証装置200から受信されて以来ずっと、(例えば、数秒などの)時間量から得られた回数だけ識別値をハッシュし続ける。もし、例えば安全なハッシュアルゴリズム−256(SHA−256)などの強いハッシュ関数が使用されるならば、第三者が安全な認証装置200により提供された複数の識別値に基づいてプライベート鍵を決定することは非常に困難かもしれない。
【0016】
図2は、一実施形態に係る安全な認証装置200のブロック図である。安全な認証装置200は、(破線を用いて図示された)オプション的なインターフェース220と、プライベート鍵(P.K.)を発生するための(例えば、エントロピーソースなどの)プライベート鍵発生器230と、少なくともプライベート鍵を格納するための不揮発性メモリ240と、インデックス番号を提供するインデックスソース250と、ハッシュエンジン260と、プライベート鍵発生器230、不揮発性メモリ240、インデックスソース250、ハッシュエンジン260、及びオプション的なインターフェース220との間にある論理的相互接続270とを含む。ハッシュエンジン260はプライベート鍵を使用して論理的相互接続270及び任意のオプション的なインターフェース220を介して通信装置280に提供される識別値(I.V.)を発生する。ここで留意されるように、識別値は、装置200を認証するときの使用のためである。論理的相互接続270は通信装置280を用いて直接的に通信してもよいので、インターフェース220はオプション的である。オプション的なインターフェース220は、シリアルインターフェース、集積回路間(IC)インターフェース、システムパケットインターフェース(SPI)、もしくは論理的相互接続270と(例えば、携帯電話などの)通信装置280との間を通信することができる一般的な任意のインターフェースとしてもよい。インターフェース220は有線としてもよいし、及び/もしくは無線としてもよいし、通信装置280の一部であってもよい。
【0017】
論理的相互接続270は、オプション的なインターフェース220を介して、プライベート鍵発生器230、不揮発性メモリ240、インデックスソース250、ハッシュエンジン260、及び通信装置280との間の通信ができる任意の回路であってもよい。例えば、論理的相互接続270は、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、複合プログラム可能なロジックデバイス(CPLD)、または一般的な任意のプログラム可能なロジックもしくはプログラム可能なデバイスであってもよい。
【0018】
ハッシュエンジン260は、例えば暗号法のハッシュなどのハッシュを実行することができる任意のエンジンであってもよい。1つの実施形態において、ハッシュエンジン240は、例えばSHA−256もしくはSHA−512などの1つのもしくはそれ以上の安全なハッシュアルゴリズム(SHA)ハッシュ、例えばRIPEMD−128もしくはRIPEMD−160などのRACEインテグリティプリミティブズエバリューエーションメッセージダイジェスト(RIPEMD)の複数のハッシュ、メッセージダイジェストアルゴリズム5(MD5)の複数のハッシュ、または一般的な任意のハッシュアルゴリズムを実行する。1つの実施形態において、ハッシュエンジン260は、例えばTESLA(調節された効率的なストリーム損失許容性がある認証)などの対称暗号法の認証プロトコルを実行してもよい。
【0019】
プライベート鍵発生器230は、プライベート鍵として使用される乱数を実質的に発生することができる任意のソースであってもよい。1つの実施形態において、プライベート鍵発生器230は、本願と同日に出願された特許出願に開示された乱数発生器であってもよい。メモリ240は、例えば乱数などのプライベート鍵、及び終了の日付/時間を格納することができる不揮発性メモリであってもよい。インデックスソース250は、クロックソース、内部発振器、または装置200と一緒に集積されたもしくは装置200から分離された一般的な任意の振動信号発生源であってもよい。代わりに、インデックスソース250は、複数の能動型電源もしくは複数のクロック源を必要としない内部の複数の時間参照(または、時間のおおよその経過を決定する能力)であってもよい。ここで使用されるように、インデックス発生器もしくはクロックが装置200に対して外部となるように、インデックスソース250は装置200に対するポートもしくは入力であってもよい。
【0020】
一実施形態における演算において、プライベート鍵発生器230は、プライベート鍵(P.K.)として使用される乱数を発生する。この実施形態において、インデックスソース250はクロックであり、インデックス番号は現在の日付/時間を表してもよく、将来の終了の日付/時間は参照番号として使用される、ということが仮定される。参照番号はメモリ240内に格納されてもよく、その場合は、論理的相互接続はハッシュエンジン260だけがその参照番号にアクセスすることができるように構成された内部のロジックを有する。代わりに、参照番号は、(図示されない)分離されたメモリ内に格納されてもよい。論理的相互接続270はメモリ240内に乱数を格納し、論理的相互接続はハッシュエンジン260だけがその乱数にアクセスすることができるように構成された内部のロジックを有する。安全な認証装置200が、例えばサーバ120などの検証装置とペアを構成する場合、論理的相互接続270は現在の日付/時間を識別し、メモリ240内に格納された終了の日付/時間からの秒数と現在の日付/時間とをハッシュエンジン260に対して指示する。現在の日付/時間は、第三者が将来における日付/時間を安全な認証装置200に対して提供することを回避するために、安全な認証装置200により内部的に識別されてもよい。次に、ハッシュエンジン260は、乱数に対して、秒数から得られた数だけハッシュを実行する。その結果生じたハッシュ値(すなわち、識別値I.V.)と、現在の日付/時間と、安全な認証装置200の識別子とがサーバ120に対して提供される。1つの実施形態において、安全な認証装置200の識別子は、安全な認証装置200のメモリ240の中に予めプログラムされる。
【0021】
代わりに、サーバ120は、安全な認証装置200からハッシュ値と現在の日付/時間とを受信すると同時に、識別子を安全な認証装置200に提供してもよい。この実施形態において、安全な認証装置200は、メモリ260内に装置識別子を格納し、サーバ120は、例えばデータ記憶装置内などの、安全な認証装置200に対して外部に、ハッシュ値と現在の日付/時間と装置識別子とを格納する。安全な認証装置の最初の複数のキーイング演算が以下の図4においてより詳細に説明される。
【0022】
認証演算において、論理的相互接続270は、クロックにより指示された現在の日付/時間とメモリ240内に格納された終了の日付/時間との間の複数の秒における差を、ハッシュエンジン260に対して指示する。ハッシュエンジン260は、乱数に対して、指示された秒数から得られた数だけハッシュを実行する。論理的相互接続270は、オプション的なインターフェース220を介して、ハッシュ値と、現在の日付/時間と、装置識別子とを、例えばサーバ120などの検証装置に対して提供する。次に、サーバ120は、安全な認証装置200の前の認証、もしくは安全な認証装置200の開始以来ずっと、秒数から得られた回数だけハッシュ値をハッシュし続ける。その結果得られたハッシュ値は、安全な認証装置200により提供される前のハッシュ値と等しくなるべきである。安全な認証装置200を検証すること、もしくは認証することの複数の演算が以下の図4から図5においてより詳細に説明される。
【0023】
従って、図2において例示された一実施形態において、本発明は、論理的相互接続270と、論理的相互接続270に接続された不揮発性メモリ240とを含む装置を備える。プライベート鍵発生器230は、プライベート鍵P.K.を発生し、プライベート鍵P.K.を論理的相互接続270を介して不揮発性メモリ240内のプライベート鍵P.K.を格納するための不揮発性メモリ240に供給するために、論理的相互接続270に接続される。ハッシュエンジン260は論理的相互接続270に接続され、論理的相互接続270を介してプライベート鍵P.K.を受信して、プライベート鍵P.K.に対して、(例えば、インデックス番号と参照番号との間の差に基づくなどの)インデックスソース250により指示されたインデックス番号に基づいた数だけハッシュを実行して識別値I.V.を発生する。論理的相互接続270は、オプション的なインターフェース220を介して、識別値I.V.を例えばサーバ120などの検証装置に提供する。
【0024】
一実施形態において、論理的相互接続270、プライベート鍵発生器230、不揮発性メモリ240、及びハッシュエンジン260は、例えばASIC、及び/もしくはFPGA、及び/もしくはCPLDなどの単一の集積装置を構成する。単一の集積装置は、論理的相互接続270が不揮発性メモリ240内だけにプライベート鍵を格納し、不揮発性メモリ240内だけに格納されたプライベート鍵をハッシュエンジン260に供給できるように構成される。
【0025】
結果として、単一の集積装置は、不揮発性メモリ内に格納されたプライベート鍵が他の複数の装置によりアクセス不可能となるように構成される。その結果、他の複数の装置は安全性を危険にさらすためのプライベート鍵を獲得することができない。言い換えると、そのような装置はアクセスされるポートもしくは入力/出力が存在しないので、他の複数の装置は単一の集積装置内に格納されたプライベート鍵を読み出すことができない。
【0026】
TESLA(調節された効率的なストリーム損失許容性がある認証)を実装する1つの実施形態において、ハッシュエンジン260によるハッシュの数は、インデックスソース250により提供されたインデックス番号と参照番号との間の差に基づき、その差から得られてもよい、ということが考えられる。例えば、もしインデックスソースがクロックソースであってインデックス番号がクロック番号であるならば、その場合はハッシュの数はクロック番号と参照時間との間の差に基づいてもよい。より特定の実施例として、ハッシュの数が現在のタイムスタンプと終了のタイムスタンプとの間の差に基づくとして、クロック番号が現在のタイムスタンプであってもよく、参照時間が終了のタイムスタンプであってもよい。いくつかの複数の実施形態において、終了のタイムスタンプは、安全な認証装置200の平均寿命を超えるために遠い将来の日付を備える。ここで使用されるように、遠い将来の日付は、例えば現在の日付/時間に少なくとも10年をプラスした日付などを意味し、または例えば現在の日付/時間に少なくとも50年もしくはそれ以上をプラスした日付などを意味する。
【0027】
TESLA(調節された効率的なストリーム損失許容性がある認証)を実装する1つの実施形態において、安全な認証装置200は、暗号法的に安全な認証チップを備えることが考えられ、それはプライベート鍵発生器230を用いてルート鍵であって公にリリースされないKと称された「ベース鍵」を作り出す。このベース鍵Kは、インデックス1…N及び関連する鍵K…KからなるTESLA鍵チェーンに対する始点として使用され、ここで、各連続した鍵Kは公式K=SHA256_HASH(i−1|Ki−1)を用いて前の鍵Ki−1の暗号法的に安全なハッシュとして計算される。認証された施設において初期化及び内部のキーイングと同時に装置200を製造する間、N及びKだけが装置200から開示され、装置200のための「暗号法のDNA署名」を表す。この方法において、TESLA鍵チェーンは装置200に対して内部に作り出され、露出されない。装置200からの複数のインデックス及び複数の鍵の後に続く複数のリリースは、終了点の絶対的な認証のために後で使用され、認証された製造製品としてそのペディグリを指示する。
【0028】
図3は、一実施形態に係る、ここで安全な認証プロセッサ300として参照された、プロセッサを有する安全な認証装置のブロック図である。安全な認証プロセッサ300は、プロセッサ330と、例えばクロックソース340などのインデックスソースと、プライベート鍵発生器350と、メモリ360とを含む。装置300は、例えば携帯電話などの通信装置370と通信するために、オプション的なインターフェース320を含んでもよい。プロセッサ330は通信装置370と直接的に通信してもよいので、インターフェース320はオプション的である。プロセッサ330は、マイクロプロセッサ、コントローラ、もしくは一般的な任意のプロセッサであってもよい。この実施形態において、プロセッサ330は、プライベート鍵発生器とメモリ260との間の相互接続を提供する。1つの実施形態において、プロセッサ330は、回路に対する外部からのアクセスが不可能である回路であって、それはASIC、及び/もしくはFPGA、及び/もしくはCPLDであってもよい。また、プロセッサ330が構成されもしくはプログラムされて、例えば安全なハッシュアルゴリズム(SHA)の複数のハッシュ、RACEインテグリティプリミティブズエバリューエーションメッセージダイジェスト(RIPEMD)の複数のハッシュ、メッセージダイジェストアルゴリズム5(MD5)の複数のハッシュ、もしくは一般的な任意の複数のハッシュアルゴリズムなどの1つのもしくはそれ以上のハッシュアルゴリズムを実行してもよい、ということが考えられる。代わりに、プロセッサは(図3において図示されない)分離したハッシュエンジンと相互接続してもよい(例えば、図2参照。)。代わりに、プロセッサ330は、例えば通信装置370のプロセッサなどの分離したプロセッサであってもよい。しかしながら、プロセッサ330のような分離したプロセッサを使用することは、もし分離したプロセッサがアクセス可能であれば、それが他の複数の装置がメモリ360内に格納されたプライベート鍵にアクセスすることを可能とするかもしれないので、装置300の安全性に影響を与えるかもしれない。プライベート鍵発生器350は、実質的に乱数を発生してプライベート鍵として使用されることができる任意のソースであってもよい。
【0029】
一実施形態における演算において、プライベート鍵発生器350は、乱数を発生してプライベート鍵として使用される。プロセッサ330は、終了の日付/時間を決定し、メモリ内360内に終了の日付/時間及び乱数を格納する。安全な認証プロセッサ300は、例えばサーバ120などの検証装置とペアを構成するとき、プロセッサ330は現在の日付/時間を識別して、例えばメモリ360内に格納された終了の日付/時間と現在の日付/時間との秒数の差を決定する。現在の日付/時間はしばしば、第三者が将来における日付/時間を安全な認証プロセッサ300に提供することを避けるために、安全な認証プロセッサ300により内部で識別される。次に、プロセッサ330は、乱数に対して、秒数から得られた数だけハッシュを実行する。その結果生じたハッシュ値と、現在の日付/時間と、安全な認証プロセッサ300の識別子とが、例えばプロセッサとペアが構成されるサーバ120などの検証装置に提供される。安全な認証プロセッサ300の識別子は、安全な認証プロセッサ300のメモリ360の中にプログラムされてもよい。代わりに、検証装置は、安全な認証プロセッサ300からハッシュ値及び現在の日付/時間を受信すると同時に、識別子を安全な認証プロセッサ300に提供してもよい。安全な認証プロセッサ300は、メモリ360内に装置識別子を格納し、検証装置は、ハッシュ値と、現在の日付/時間と、装置識別子とを、例えばデータ記憶装置内などの、安全な認証プロセッサ300に対する外部に格納する。安全な認証プロセッサ300の最初の複数のキーイング演算が、以下の図4A及び図4Bにおいてより詳細に説明される。
【0030】
認証演算において、プロセッサ330は、メモリ360から終了の日付/時間及び乱数を検索する。プロセッサ330は、現在の日付/時間を識別し、現在の日付/時間と終了の日付/時間との間の秒数を決定する。次に、プロセッサ330は、乱数に対して、決定された秒数から得られた数だけハッシュを実行する。プロセッサ330は、オプション的なインターフェース320を介して、ハッシュ値と、現在の日付/時間と、装置識別子とを、例えばサーバ120などの検証装置に提供する。次に、検証装置は、安全な認証プロセッサ300の前の認証もしくは安全な認証プロセッサ300の初期化からの秒数から得られた回数の間ハッシュ値をハッシュし続ける。その結果生じたハッシュ値は、安全な認証プロセッサ300により提供された前のハッシュ値と等しくなるべきである。安全な認証プロセッサ300を検証すること、もしくは認証することの複数の演算が、以下の図4から図5においてより詳細に説明される。代わりに、一実施形態において、プロセッサ330は、終了の日付/時間及び現在の日付/時間の代わりに参照番号及びインデックス番号を使用してもよい。
【0031】
図4Aは、図2の安全な認証装置、もしくは本発明の他の複数の安全な認証装置の実施形態の例示的な内部のキーイング演算を例示するフローチャートである。安全な認証装置200、もしくはそれの特定の複数の構成要素により実行される図4Aの演算が説明される。しかしながら、複数の演算は、例えば上述した図2から図3において説明された複数の構成要素のうちのいずれかなどの安全な認証装置200もしくは安全な認証プロセッサ300の複数の構成要素のいずれかにより実行されてもよい。複数の説明の目的のために、図4Aの複数の演算が線形として例示されて説明される。しかしながら、図4Aの複数の演算はまた並列演算であってもよく、すなわち1つのもしくはそれ以上の演算が同時に実行されてもよい。1つの実施形態において、図4Aの内部のキーイング演算は、例えば不揮発性メモリなどのコンピュータ/プロセッサ読み出し可能なタンジブル記録媒体上に格納されたコンピュータ/プロセッサ実行可能な複数の命令において実行されてもよい。もう1つの実施形態において、複数の命令はプログラム可能なロジックにより実行されてもよい。
【0032】
401において、乱数が安全な認証装置200のプライベート鍵発生器230により発生する。402において、安全な認証装置200は、(例えば、終了の日付/時間などの)参照番号を識別し、もしくは決定する。代わりに、製造時において、参照番号が安全な認証装置200のメモリ260の中にプログラムされてもよい。一実施形態において、インデックス番号は、より最近の認証時において発生された第2のインデックス番号がより早い時間において発生された第1のインデックスよりも小さいように、一連の減少数から取られる。
【0033】
403において、安全な認証装置200は、乱数及び参照番号を、例えばメモリ240内などに格納する。404において、安全な認証装置200は、例えばインデックスソース250から提供されるなどの、参照番号とインデックス番号との間の差を決定する。405において、安全な認証装置200は、決定された差から得られた回数だけ乱数をハッシュする。406において、安全な認証装置200は、ハッシュ、インデックス番号、及び/もしくは装置識別子を、例えば装置200とペアが構成されるサーバ120の検証装置に出力する。検証装置は、装置識別子を安全な認証装置200に割り当て、及び/もしくは当該装置識別子を安全な認証装置200に提供してもよい。安全な認証装置200は、メモリ240内に装置識別子を格納してもよい。装置200は、論理的相互接続270を介してメモリ240内に乱数を格納するので、外部からその乱数にアクセスすることが不可能となり、その結果、他の装置は乱数にアクセスすることができず装置の安全性が危険にさらされることはない。
【0034】
図4Bは、図2の安全な認証装置、もしくは本発明の他の安全な複数の認証装置の実施形態のもう1つの例示的な内部のキーイング演算を例示するフローチャートである。安全な認証装置200、もしくはそれの特定の複数の構成要素により実行される図4Bの複数の演算が説明される。しかしながら、複数の演算は、例えば図2から図3において上述説明された複数の構成要素のいずれかなどの安全な認証装置200、もしくは安全な認証プロセッサ300の複数の構成要素のいずれかにより実行されてもよい。複数の説明の目的のために、図4Bの複数の演算が線形として例示されて説明される。しかしながら、図4Bの複数の演算はまた並列演算されてもよく、すなわち1つのもしくはそれ以上の演算が同時に実行されてもよい。一実施形態において、図4Bの内部のキーイング演算は、例えば不揮発性メモリなどのコンピュータ/プロセッサ読み出し可能なタンジブル記録媒体上に格納されたコンピュータ/プロセッサ実行可能な複数の命令において実行されてもよい。もう1つの実施形態において、複数の命令はプログラム可能なロジックにより実行されてもよい。
【0035】
410において、乱数が安全な認証装置200のプライベート鍵発生器230により発生する。420において、安全な認証装置200は終了の日付/時間を識別する。終了の日付/時間が例えば現在の日付/時間に50年をプラスするなどの安全な認証装置200の平均寿命を超えるように、終了の日付/時間が識別されてもよい。代わりに、終了の日付/時間は、製造時において安全な認証装置200のメモリ260の中にプログラムされてもよい。
【0036】
430において、安全な認証装置200は、例えばメモリ240内などに乱数及び終了の日付/時間を格納する。440において、安全な認証装置200は、現在の日付/時間から終了の日付/時間までの時間量を決定する。時間量は、例えば秒、分、ミリ秒、日などの任意の時間増加量で測定されてもよい。450において、安全な認証装置200は、決定された時間量から得られた回数だけ乱数をハッシュする。460において、安全な認証装置200は、ハッシュと、現在の日付/時間と、装置識別子とを、例えば装置200がペアを構成するサーバ120などの検証装置に対して出力してもよい。代わりに、安全な認証装置200は、ハッシュと現在の日付/時間とを出力する。検証装置は、装置識別子を安全な認証装置200に対して割り当ててもよく、及び/もしくは当該装置識別子を安全な認証装置200に対して提供してもよい。安全な認証装置200は、メモリ240内に装置識別子を格納してもよい。
【0037】
図5は、例えば安全な認証装置200、もしくは他の複数の安全な認証装置を認証するサーバ120などの検証装置の演算を例示するフローチャートである。複数の説明の目的のために、図5の複数の演算は線形的に演算するとして例示されて説明される。しかしながら、図5の複数の演算はまた並列演算されてもよく、すなわち、1つのもしくはそれ以上の演算が同時に演算されてもよい。
【0038】
510において、サーバ120は、それ自身を認証するために安全な認証装置200を要求する。代わりにもしくはさらに、安全な認証装置200は、サーバ120を用いてそれ自身を認証するために要求を開始してもよい。例えば、安全な認証装置200は、データをサーバ120に通信することを望んでもよく、サーバ120は当該データを通信する前に安全な認証装置210が認証することを要求してもよい。520において、サーバ120のプロセッサ124は、インターフェース122を介して安全な認証装置200から次の情報を受信する。すなわち、装置識別子と、日付/時間と、ハッシュ値とである。受信された情報は、メモリ126内に格納される。530において、サーバ120のプロセッサ124は、例えばデータ記憶装置からなどのメモリ126から、装置識別子と関連する安全な認証装置200の前の認証の日付/時間を検索する。また、サーバ120は、安全な認証装置200から受信された前のハッシュ値をメモリ126から検索する。装置識別子と関連する安全な認証装置200の前の認証の日付/時間及び安全な認証装置200から受信された前のハッシュ値は、サーバ120と最初のペアを構成する装置200からであってもよい。
【0039】
540において、サーバ120のプロセッサ124は、受信された日付/時間から前の認証の日付/時間までの時間量を決定する。時間量は、例えば秒、分、日などの任意の時間増加量で測定されてもよいが、当該時間増加量は、安全な認証装置200がサーバ120とペアが構成されるときに使用される同一の時間増加量であるべきである。例えば、もし安全な認証装置200がサーバ120とペアが構成されたときに使用された時間増加量が秒で測定されたならば、その場合は受信された日付/時間から前の認証の日付/時間までの時間量もまた、秒で測定されるべきである。
【0040】
550において、サーバ120のプロセッサ124は、安全な認証装置200から受信されたハッシュ値を、決定された時間量から得られた回数だけハッシュする。例えば、もし決定された時間量が100秒であれば、安全な認証装置200はハッシュ値を100回ハッシュしてもよい。555において、サーバ120のプロセッサ124は、ハッシュの結果が安全な認証装置200から受信された前のハッシュ値と等しいか否かを決定する。もし、555において、サーバ120のプロセッサ124がハッシュの結果が前に受信されたハッシュと等しくないことを決定するならば、サーバ120は560に移動する。560において、サーバ120のプロセッサ124は安全な認証装置200の認証が失敗されたことを決定する。サーバ120は、認証が失敗したことを安全な認証装置200に対して通信してもよい。もし、555において、サーバ120のプロセッサ124がハッシュの結果が前に受信されたハッシュと等しいことを決定するならば、サーバ120は570に移動する。570において、サーバ120のプロセッサ124は認証が成功したことを決定する。サーバ120は、認証が成功したことを安全な認証装置200に対して通信してもよい。
【0041】
図6は、図2の安全な認証装置、もしくは他の安全な複数の認証装置の認証演算を例示するフローチャートである。安全な認証装置200、もしくはそれの特定の複数の構成要素により実行された図6の複数の演算が説明される。しかしながら、複数の演算は、例えば図2から図3において上述説明された複数の構成要素のいずれかなどの安全な認証装置200もしくは安全な認証プロセッサ300のいずれかの複数の構成要素により実行されてもよい。複数の説明の目的のために、図6の複数の演算が線形的に演算するとして例示されて説明される。しかしながら、図6の複数の演算はまた並列演算されてもよく、すなわち、1つのもしくはそれ以上の演算が同時に演算されてもよい。
【0042】
610において、安全な認証装置200は、例えばサーバ120などから認証要求を受信する。代わりにもしくはさらに、安全な認証装置200は、サーバ120を用いて認証するために要求してもよい。例えば、安全な認証装置200は、データを通信することを望んでもよいし、もしくはサーバ120上で動作を実行してもよいし、もしくはその逆であってもよい。代わりに、サーバ120は、安全な認証装置200のアイデンティティを検証することを望んでもよい。620において、安全な認証装置200は、メモリ260から乱数及び終了の日付/時間(すなわち、参照番号)を検索する。630において、安全な認証装置200は、現在の日付/時間から終了の日付/時間までの時間量を決定する(すなわち、装置200は、インデックス番号と参照番号との間の差を決定する。)。時間量は、例えば秒、分、日などの任意の時間増加量で測定されてもよい。
【0043】
640において、安全な認証装置200は、(すなわち、差に基づいて)決定された時間量から得られた回数だけ乱数をハッシュする。例えば、もし時間量が1000秒ならば、安全な認証装置200は、乱数を1000回だけハッシュしてもよい。650において、安全な認証装置200は、ハッシュ値と現在の日付/時間と装置識別子とを、もしあれば、例えばオプション的なインターフェース220を通してサーバ120に提供する(すなわち、装置200は、識別値及びインデックス番号を、装置を認証するときの使用のために検証装置に提供する。)。
【0044】
図7は、図1から図3の安全な認証装置、もしくは他の複数の安全な認証装置の、内部のキーイング演算及び/または暗号法の鍵共有演算を例示するフローチャートである。安全な認証装置200、もしくはそれの特定の複数の構成要素により実行される図7の複数の演算が例示されて説明される。しかしながら、複数の演算は、例えば図1から図3において上述説明された複数の構成要素のいずれかなどの、安全な認証装置200もしくは安全な認証プロセッサ300の複数の構成要素のいずれかにより実行されてもよい。複数の説明の目的のために、図7の複数の演算が線形的に演算するとして説明される。しかしながら、図7の複数の演算はまた並列演算されてもよく、すなわち、1つのもしくはそれ以上の演算が同時に演算されてもよい。複数の説明の目的のために、複数のハッシュ演算において使用される暗号鍵の共有に関する図7の複数の演算が説明される。しかしながら、図7の複数の演算はまた、複数のプライベート鍵の複数の暗号鍵との共有を含んでもよく、もしくは複数のプライベート鍵だけの共有を含んでもよい。
【0045】
710において、第1の安全な認証装置200及び第2の安全な認証装置200’が識別される。一実施形態において、第2の安全な装置200’は、サーバ120を備える。第1の及び第2の安全な認証装置は、安全な通信を約束する複数の装置であってもよい。720において、第1の安全な認証装置200は、第2の安全な認証装置200’に接続される。複数の安全な認証装置は、妨害されもしくはそうでなければ決定される通信のリスクを最小化するために、有線接続を用いて接続されてもよい。代わりに、複数の安全な認証装置は、無線接続を用いて接続されてもよい。730において、接続された複数の安全な認証装置は、安全な鍵の確立を実行して共通のルート鍵及び/もしくは共通のプライベート鍵に到着してそれらのハッシュエンジンにより使用される(実施例はディフィへルマン鍵交換である。)。740において、複数の装置はお互いから切断されて分離され、使用のための準備完了状態となる。複数のメッセージは、図4から図6において説明された及び/もしくは後述説明された複数の演算を用いて暗号化され及び/もしくは認証されてもよい。
【0046】
750において、第1の安全な認証装置200及び第2の安全な認証装置200’は、暗号化された複数のメッセージを送受信して通信するために、及び/もしくは複数の通信を行って認証するために、共有されたルート鍵を使用する。第1の安全な認証装置200と第2の安全な認証装置200’との間の通信に関し、両方の装置は、上述した使用のために同一の認証チェーンを有し、両方の装置はまた、分離した秘密鍵チェーンを計算することができる。いま、(対称鍵の暗号化のために)同一の複数の秘密鍵を使用することによる複数の装置間の安全な通信が、共通のインデックス番号だけを第2の装置に対して露出する第1の装置により可能となる。複数の秘密鍵及び/もしくは複数の乱数が複数の装置により外部に露出されなかったので、複数の装置間の通信は実質的に安全なのかもしれない。
【0047】
また、複数の装置のうちの一方が他方を認証することに関し、上述の代わりとしてもしくは上述に加えて以下のことが考えられる。760において、第1の装置200は、ランダムなプライベート鍵を第2の装置200’に提供することにより(もしくはその逆により)、第2の装置200’を認証してもよい。第1の装置は、共有の共通のルート鍵を使用して提供されたランダムなプライベート鍵に基づき、第1の識別値を計算する。770において、第2の装置は、共有の共通のルート鍵を使用して提供されたランダムなプライベート鍵に基づき、第2の識別値を計算するであろう。計算された第2の識別値は、第1の装置に提供されて第2の装置を認証する。780において、第1の装置は、第2の識別値をそれの第1の識別値と比較する。もし第2の識別値と第1の識別値と等しければ、第2の装置は認証され、そうでなければ、第2の装置は認証されない。言い換えると、第2の装置は、それが共有のルート鍵を知ることを第1の装置に対して検証し、第1の装置により第2の装置に対して提供されたランダムなプライベート鍵に対して、第1の装置と同一の複数のハッシュ演算を実行することができる。
【0048】
従って、一実施形態において、本発明は、第1のハッシュエンジン260及び第1のプライベート鍵P.K.を第2の装置200’に対して発生するための第1のプライベート鍵発生器230を有する第1の装置200と暗号法によりペアを構成するための方法を備える。710において、第2のハッシュエンジン260’及び第2のプライベート鍵P.K.’を発生するための第2のプライベート鍵発生器230’を有する第2の装置200’が識別される。720において、第1の装置200と第2の装置200’とが接続され、730において、第1の装置200と第2の装置200’とは共通の鍵を発生する。740において、上記複数の装置は切断される。共通のルート鍵及び第1のプライベート鍵は、第1の装置200の第1のハッシュエンジン260により使用されて第2の装置200’と暗号通信し、共通のルート鍵及び第2のプライベート鍵は、第2の装置200’の第2のハッシュエンジン260’により使用されて第1の装置200と暗号通信する。
【0049】
別の一実施形態において、暗号法通信のために複数の装置がペアを構成するための方法が提供される。710において、第1の装置200及び第2の装置200’が識別される。各装置が図2において例示されたようであってもよい。第1の装置200は第2の装置200’に接続され、共通のルート鍵が各装置の各ハッシュエンジンによる使用のために接続された複数の装置により発生する。第1の装置200は、それのハッシュエンジンを介して共通のルート鍵を使用して第2の装置200’と暗号通信し、その逆もまた同様である。オプション的に、各装置は、ハッシュエンジンによる使用のためにインデックスソースを持ってもよく、ここで各ハッシュエンジンは、インデックスソースとプライベート鍵と共通のルート鍵とに基づいて識別値を発生する。発生された識別値が、装置を認証するときの使用のために、論理的相互接続を介して提供される。
【0050】
一実施形態において、プライベート鍵P.K.を発生するためのプライベート鍵発生器230と、少なくともプライベート鍵を格納するための不揮発性メモリ240と、プライベート鍵を使用し、この装置200がペアを構成する少なくとも1つの他の装置200’により使用される共通のルート鍵を使用するハッシュエンジン260と、プライベート鍵発生器、不揮発性メモリ、及びハッシュエンジンとの間にある論理的相互接続270とを含む暗号法の電子装置200が提供される。ハッシュエンジンは、プライベート鍵及び共通のルート鍵に基づいて識別値を発生する。他の装置200’を用いて装置200を認証するときの使用のために、識別値が論理的相互接続を介して提供され、共通のルート鍵は他の装置200’に暗号通信するために使用される。
【0051】
一実施形態において、暗号法の通信のためのシステムは複数の装置を備え、ここで各装置200は、プライベート鍵を発生するためのプライベート鍵発生器230と、少なくともプライベート鍵を格納するための不揮発性メモリ240と、共通ルート鍵及びプライベート鍵を使用するハッシュエンジン260と、プライベート鍵発生器、不揮発性メモリ、及びハッシュエンジンとの間の論理的相互接続270とを備える。各装置は、複数の装置をともに接続することにより発生された共通のルート鍵を共有する。各装置200の各ハッシュエンジンは、共通のルート鍵を使用して複数の装置の他の複数の装置200’と暗号通信するように構成される。
【0052】
結果として、2つの分離したチェーンは、各計算されたチェーンのためのハッシュチェーンにおける(少なくとも)1つの異なるビットを用いて計算され、従って、2つのチェーンは2つの識別値を発生し、もし複数のチェーンと結果生じた複数の識別値との両方が発生されたことにより「ルートランダム」(すなわち、ルート鍵及び/もしくは乱数)が知らないならば、各チェーンは他方とは「無関係」のように見える。このことが、同一のメカニズムであるが2つの異なるチェーンを用いる認証と暗号法の安全性との両方を提供する。
【0053】
ここで説明された複数の方法は、コンピュータシステムにより実行可能な複数のソフトウェアプログラムにより実行されてもよい。さらに、複数の実行には、分散処理、コンポーネント/オブジェクト分散処理、及び並列処理を含んでもよい。代わりにもしくはさらに、バーチャルコンピュータシステム処理が、ここで説明された1つのもしくはそれ以上の方法もしくは機能を実行するように構築されてもよい。
【0054】
ここで説明された複数の例示は、種々の複数の実施形態の構造の一般的な理解を提供することが意図される。複数の例示は、ここで説明された複数の構造もしくは複数の方法を利用する装置、複数のプロセッサ、及び複数のシステムのすべての要素及び特徴の完全な説明として役目を果たすことは意図されない。多数の他の複数の実施形態は、本開示を検討すると同時に当業者に対して明白であってもよい。本開示の範囲から離れることなしに構造的な及び論理的な複数の代用や複数の変更がなされてもよいように、他の複数の実施形態が利用されて本開示から得られてもよい。さらに、複数の例示は単なる代表であって、スケールで描かれなくてよい。複数の例示内のある複数の比率が誇張されてもよい一方で、他の複数の比率が最小化されてもよい。従って、本開示及び複数の図面は制限的というよりもむしろ例示的としてみなされるべきである。
【0055】
上述説明された主題は、例示的であって制限的でないと考えられるべきであり、添付された特許請求の範囲はすべて真の精神及び説明の範囲内に入るような複数の変形、複数の強化、及び他の複数の実施形態を包含することが意図される。従って、法律により許容された最大の範囲で、当該範囲は、以下の特許請求の範囲及びそれらの複数の均等物の最も広く許容可能な解釈により決定されるべきであり、上述の詳細説明により制限されもしくは限定されるべきでない。
【0056】
例示の複数の目的のために、例えばオペレーティングシステムなどの複数のプログラム及び他の複数の実行可能なプログラム構成要素が別個の複数のブロックとしてここで例示される。しかしながら、そのような複数のプログラム及び複数の構成要素は種々の時々においてコンピュータの異なる複数の記録構成要素内に存在し、当該コンピュータの1つのもしくは複数のデータプロセッサにより実行される、ということが認識される。
【0057】
例示的なコンピューティングシステム環境との接続において説明したが、本発明の複数の実施形態は、多数の他の一般的な目的または特定の目的のコンピューティングシステム環境もしくは構成を用いて動作可能である。コンピューティングシステム環境は、本発明の任意の態様の使用もしくは機能の範囲に関して任意の限定を示唆することは意図されない。さらに、コンピューティングシステム環境は、例示的な動作環境において図示された複数の構成要素のうちの任意の1つもしくは組み合わせに関する任意の従属関係もしくは要件を有するとして解釈されるべきでない。本発明の複数の態様を用いた使用に適しているかもしれない十分に知られた複数のコンピューティングシステム、複数の環境、及び/もしくは複数の構成の複数の例は、これらには限定されないが、複数のパーソナルコンピュータ、複数のサーバコンピュータ、ハンドヘルドもしくはラップトップの複数の装置、マルチプロセッサもしくは複数のシステム、マイクロプロセッサに基づいた複数のシステム、複数のセットトップボックス、プログラム可能なコンシューマエレクロトロニクス、複数の携帯電話、複数のネットワークPC、複数のマイクロコンピュータ、複数のメインフレームコンピュータ、上述の複数のシステムもしくは複数の装置のいずれかを含む複数の分散型コンピューティング環境などを含む。
【0058】
本発明の複数の実施形態は、例えば1つのもしくはそれ以上のコンピュータもしくは他の装置により実行される、複数のプログラムモジュールなどのコンピュータ実行可能な複数の命令の一般的なコンテキストにおいて説明されてもよい。一般的に、複数のプログラムモジュールは、これらには限定されないが、複数のルーティーン、複数のプログラム、複数のオブジェクト、複数のコンポーネント、及び特定の複数のタスクを実行しもしくは特定の複数のアブストラクトデータタイプを実行する複数のデータ構造を含む。また、本発明の複数の態様は、複数のタスクが通信ネットワークを通してリンクされる複数の遠隔の処理装置により実行される複数の分散型コンピューティング環境において実施されてもよい。分散型コンピューティング環境において、複数のプログラムモジュールは、局所的な及び遠隔の両方の複数のメモリ記録装置を含むコンピュータ記録媒体内に位置してもよい。
【0059】
演算において、複数のコンピュータ及び/または複数のサーバは、本発明の複数の態様を実行するために、例えばここで例示されたコンピュータ実行可能な命令などの複数のコンピュータ実行可能な命令を実行してもよい。
【0060】
ここで例示されて説明された本発明の複数の実施形態における複数の演算の実行もしくは性能のオーダは、他に特に規定がなければ、必須ではない。すなわち、複数の演算は、任意のオーダにおいて実行されてもよく、他に特に規定がなければ、本発明の複数の実施形態は、ここで開示された演算よりも追加的なもしくはより少ない演算を含んでもよい。例えば、もう1つの演算の前に、もしくはもう1つの演算と同時に、もしくはもう1つの演算の後に特定の演算を実行し、もしくは遂行することが本発明の複数の態様の範囲内で考えられる。
【0061】
本発明の複数の実施形態が、コンピュータ実行可能な複数の命令を用いて実行されてもよい。コンピュータ実行可能な複数の命令がタンジブルコンピュータ読み出し可能な記録媒体上の1つのもしくはそれ以上のコンピュータ実行可能な複数のコンポーネントもしくは複数のモジュールの中に編成されてもよい。本発明の複数の態様は、任意の数のそのような複数のコンポーネントもしくは複数のモジュールの編成を用いて実行されてもよい。例えば、本発明の複数の態様は、特定のコンピュータ実行可能な複数の命令または、複数の図面において例示されてここで説明された、特定の複数のコンポーネントもしくは複数のモジュールに限定されない。本発明の他の複数の実施形態は、異なるコンピュータ実行可能な複数の命令、またはここで例示されて説明されたよりも高いもしくは低い機能を有する複数のコンポーネントを含んでもよい。
【0062】
本発明の複数の態様の複数の要素もしくはそれの複数の実施形態を紹介する場合、冠詞「a」、「an」、「the」、及び「said」は、1つのもしくはそれ以上の要素が存在することを意味することを意図する。用語「備えている」、「含んでいる」、及び「有している」は、記載された複数の要素以外の追加的な複数の要素が存在してもよいことを包括的に意味することが意図される。
【0063】
上述したことを考慮して、本発明のいくつかの複数の利点が成し遂げられて他の複数の有益な結果が達成されることが理解されるであろう。
【0064】
例示されもしくは説明された図示された複数の構成要素のすべては必要とされないかもしれない。さらに、いくつかの複数の実施及び複数の実施形態には、追加的な複数の構成要素を含んでもよい。ここで説明された特許請求の範囲の精神もしくは範囲から離れることなしに、複数の構成要素の配列及びタイプにおける複数の変形がなされてもよい。さらに、異なったもしくはより少ない構成要素が提供されてもよく、複数の構成要素は組み合わされてもよい。代わりにもしくはさらに、構成要素はいくつかの複数の構成要素により実行されてもよい。
【0065】
もし本発明の複数の態様が詳細に説明されたならば、添付された特許請求の範囲において定義された発明の複数の態様の範囲から離れることなしに複数の変更及び複数の変形が可能となることが明白となろう。本発明の複数の態様の範囲から離れることなしに上述した複数の構成、複数の生産物、及び複数の方法において種々の複数の変更がなされるので、上述の説明において含まれた、そして添付の複数の図面において図示されたすべての事項が例示的として解釈され、限定的な意味において解釈されるべきでないということが意図される。

【特許請求の範囲】
【請求項1】
プライベート鍵を発生するためのプライベート鍵発生器と、
少なくとも上記プライベート鍵を格納するための不揮発性メモリと、
インデックスソースと、
ハッシュエンジンと、
上記プライベート鍵発生器、上記不揮発性メモリ、上記インデックスソース、及び上記ハッシュエンジンとの間の論理的相互接続とを備えた電子装置であって、
上記ハッシュエンジンは、上記論理的相互接続を介して提供される識別値を発生し、
上記識別値は上記装置を認証するときの使用のためであることを特徴とする電子装置。
【請求項2】
論理的相互接続と、
上記論理的相互接続に接続された不揮発性メモリと、
プライベート鍵を発生するプライベート鍵発生器とを備えた装置であって、
上記プライベート鍵発生器は、上記論理的相互接続に接続され、上記プライベート鍵を上記不揮発性メモリ内に格納するために、上記論理的相互接続を介して上記プライベート鍵を上記不揮発性メモリに提供し、
上記装置は、
上記論理的相互接続に接続されたハッシュエンジンを備え、
上記ハッシュエンジンは、上記論理的相互接続を介して上記プライベート鍵を受信し、上記プライベート鍵に対して、インデックスソースを指示するインデックス番号に基づいた数だけハッシュを実行して識別値を発生し、
上記論理的相互接続は、上記装置を認証するときの使用のために上記識別値を提供することを特徴とする装置。
【請求項3】
上記論理的相互接続、上記プライベート鍵発生器、上記不揮発性メモリ及び上記ハッシュエンジンは、単一の集積装置を備え、
上記単一の集積装置は、上記論理的相互接続が上記不揮発性メモリ内だけに上記プライベート鍵を格納し、上記不揮発性メモリ内だけに格納された上記プライベート鍵を上記ハッシュエンジンに提供されるように構成され、
上記単一の集積装置は、上記不揮発性メモリ内に格納された上記プライベート鍵が他の複数の装置がアクセス不可能となるように構成され、その結果上記他の複数の装置は上記プライベート鍵を獲得することができないことを特徴とする請求項2記載の装置。
【請求項4】
上記装置の識別子、上記インデックス番号及び上記識別値は、上記不揮発性メモリ内に格納され、上記論理的相互接続は上記装置を認証するときの使用のために、上記インデックス番号及び上記識別子を提供することを特徴とする請求項3記載の装置。
【請求項5】
上記ハッシュの数は、上記インデックス番号と参照番号との差に基づくことを特徴とする請求項2記載の装置。
【請求項6】
上記インデックスソースはクロックソースであり、上記インデックス番号はクロック番号であり、上記ハッシュの数は上記不揮発性メモリ内に格納された上記クロック番号と参照時間との間の差から得られたことを特徴とする請求項5記載の装置。
【請求項7】
上記プライベート鍵発生器は、上記装置内の乱数発生器であり、
上記クロック番号は現在のタイムスタンプを備え、
上記参照時間は終了のタイムスタンプを備え、
上記ハッシュの数は上記現在のタイムスタンプと上記終了のタイムスタンプとの間の差から得られることを特徴とする請求項6記載の装置。
【請求項8】
上記終了のタイムスタンプは遠い将来の日付を備えたことを特徴とする請求項7記載の装置。
【請求項9】
ある識別子が上記不揮発性メモリ内に格納され、上記論理的相互接続は、上記装置を認証するときの使用のために、上記識別子を提供することを特徴とする請求項2記載の装置。
【請求項10】
上記論理的相互接続に接続されたインターフェースをさらに備え、
上記識別値が上記論理的相互接続を介して上記インターフェースに対して提供されることを特徴とする請求項1記載の電子装置。
【請求項11】
プロセッサと、
上記プロセッサに接続された不揮発性メモリと、
上記プライベート鍵を発生するプライベート鍵発生器とを備えた装置であって、
上記プライベート鍵発生器は上記プロセッサに接続され、上記プロセッサは上記不揮発性メモリ内に上記プライベート鍵を格納し、
上記装置は、
インデックス番号を上記プロセッサに対して指示するインデックスソースを備え、
上記プロセッサは、上記プライベート鍵に対して、上記不揮発性メモリ内に格納された上記インデックス番号に基づいた数だけハッシュを実行して識別値を発生し、
上記プロセッサは、上記装置を認証するときの使用のために、上記識別値を提供することを特徴とする装置。
【請求項12】
上記プロセッサ、上記プライベート鍵発生器、及び上記不揮発性メモリは、単一の集積装置を備え、
上記単一の集積装置は、上記プロセッサが上記不揮発性メモリ内だけに上記プライベート鍵を格納できるように構成され、
上記単一の集積装置は、上記不揮発性メモリ内に格納された上記プライベート鍵が他の複数の装置によりアクセス不可能となるように構成され、その結果上記他の複数の装置は上記プライベート鍵を獲得することができないことを特徴とする請求項11の装置。
【請求項13】
上記装置の識別子、上記インデックス番号、及び上記識別値は、上記不揮発性メモリ内に格納され、上記プロセッサは、上記装置を認証するときの使用のために、上記インデックス番号と上記識別子とを提供することを特徴とする請求項12記載の装置。
【請求項14】
上記ハッシュの数は、上記インデックス番号と参照番号との間の差に基づくか、もしくは、上記インデックス番号が上記現在の日付/時間であって上記ハッシュの数は上記現在の日付/時間と将来の日付/時間との間の差に基づくことを特徴とする請求項12記載の装置。
【請求項15】
プライベート鍵を発生するためのプライベート鍵発生器と、
少なくとも上記プライベート鍵を格納するための不揮発性メモリと、
インデックスソースと、
ハッシュエンジンと、
上記プライベート鍵発生器、上記不揮発性メモリ、上記インデックスソース、及び上記ハッシュエンジンとの間の論理的相互接続と、
情報を送信するためのプロセッサとを備えた電子装置であって、
上記ハッシュエンジンは、上記論理的相互接続を介して上記プロセッサに提供される識別値を発生し、上記識別値は、上記装置を認証するときの使用のためであることを特徴とする電子装置。
【請求項16】
検証装置と複数の電子装置とを備えたシステムであって、
上記各電子装置は、
論理的相互接続と、
上記論理的相互接続に接続された不揮発性メモリと、
プライベート鍵を発生するプライベート鍵発生器とを備え、
上記プライベート鍵発生器は、上記論理的相互接続に接続され、上記不揮発性メモリ内に上記プライベート鍵を格納するために、上記論理的相互接続を介して上記プライベート鍵を上記不揮発性メモリに提供し、
上記各電子装置は、
インデックス番号を指示するインデックスソースと、
上記論理的相互接続に接続されたハッシュエンジンとを備え、
上記ハッシュエンジンは、上記論理的相互接続を介して上記プライベート鍵を受信し、上記プライベート鍵に対して、上記インデックス番号に基づいた数だけハッシュを実行して識別値を発生し、
上記論理的相互接続は、上記装置を認証するときの使用のために、上記識別値及び上記インデックス番号を上記検証装置に対して提供し、
上記検証装置は、上記識別値及び上記インデックス番号を受信し、上記検証装置は、上記受信されたインデックス番号に基づいた上記受信された識別値に対して、所定の数のハッシュを実行して上記装置が認証されるべきか否かを決定することを特徴とするシステム。
【請求項17】
上記検証装置は、第1の識別値及び第1のインデックス番号を受信し、
上記検証装置は、第2の識別値及び第2のインデックス番号を受信し、
上記検証装置は、上記受信された第2のインデックス番号に対して、上記第1のインデックス番号と上記第2のインデックス番号との間の差から得られた数だけハッシュを実行して結果を決定し、
上記検証装置は、上記結果を上記第1の識別値と比較して、上記検証装置は、上記結果が上記第1の識別値と等しい場合は上記装置を認証し、上記結果が上記第1の認証値と等しくない場合は上記装置を認証しないことを特徴とする請求項16記載のシステム。
【請求項18】
装置識別子を有する安全な認証装置を認証するためのシステムであって、上記システムは、
前のタイムスタンプ及び上記装置識別子と関連する前のハッシュ値を格納するためのメモリと、
上記メモリに動作可能なように接続された論理的相互接続とを備え、
上記論理的相互接続は上記装置に通信するために動作し、
上記システムは、
上記メモリ及び上記論理的相互接続に動作可能なように接続されたプロセッサを備え、
上記プロセッサは、上記論理的相互接続を介して、上記装置識別子と現在のハッシュ値と現在のタイムスタンプとを受信するために動作し、上記プロセッサは、上記メモリから、上記前のタイムスタンプと上記装置識別子と関連する上記前のハッシュ値とを検索し、
上記プロセッサは、上記現在のタイムスタンプと上記前のタイムスタンプとの間の時間量を決定し、上記プロセッサは、上記現在のハッシュ値に対して、上記現在のタイムスタンプと上記前のタイムスタンプとの間の時間量に基づいた数だけハッシュを実行して、識別値を発生し、
上記プロセッサは、上記識別値が上記前のハッシュ値が等しいか否かを決定して、上記識別値が上記前のハッシュ値と等しければ上記装置は認証され、そうでなければ上記装置は認証されないことを特徴とするシステム。
【請求項19】
上記ハッシュの数は、上記前のタイムスタンプと上記現在のタイムスタンプとの間の秒数と等しいことを特徴とする請求項18記載のシステム。
【請求項20】
認証する情報を検証装置に対して提供する装置によって使用するための方法であって、上記方法は、
乱数を発生するステップと、
参照番号を決定するステップと、
上記乱数と上記参照番号とを格納するステップと、
インデックス番号と上記参照番号との間の差を決定するステップと、
上記決定された差に基づいた数だけハッシュを上記乱数に対して実行するステップと、
上記装置を認証するときの使用のために、上記識別値及び上記インデックス番号を上記検証装置に対して提供するステップとを備えたことを特徴とする方法。
【請求項21】
上記装置を認証するときの使用のために、上記装置の識別子を上記検証装置に対して提供するステップをさらに備えたことを特徴とする請求項20記載の方法。
【請求項22】
上記参照番号は終了の日付/時間を備え、上記インデックス番号は現在の日付/時間を備え、
上記実行するステップは、
上記現在の日付/時間と上記終了の日付/時間との間の上記決定された差に基づいた数だけハッシュを上記乱数に対して実行して上記識別値を発生するステップを備え、
上記提供するステップは、
上記装置を認証するときの使用のために、上記識別値及び上記現在の日付/時間を上記検証装置に対して提供するステップを備えたことを特徴とする請求項20記載の方法。
【請求項23】
安全な認証装置を認証するための方法であって、上記方法は、
装置識別子と、ハッシュ値と、現在のタイムスタンプとを受信するステップと、
上記装置識別子により識別された装置の前の認証と関連する前のタイムスタンプ及び前のハッシュ値を検索するステップと、
上記現在のタイムスタンプと上記前のタイムスタンプとの間の時間量を決定するステップと、
上記現在のタイムスタンプと上記前のタイムスタンプとの間の時間量に基づいた数だけハッシュを上記ハッシュ値に対して実行するステップと、
上記ハッシュの数だけ実行した結果生じた値が上記前のハッシュ値と等しいか否かを決定するステップとを備え、
上記結果生じた値が上記前のハッシュ値と等しければ上記装置は認証され、そうでなければ上記装置は認証されないことを特徴とする方法。
【請求項24】
上記ハッシュの数は、上記前のタイムスタンプと上記現在のタイムスタンプとの間の秒数と等しいことを特徴とする請求項23記載の方法。
【請求項25】
認証する情報を検証装置に提供する装置によって使用するための方法であって、上記情報は、上記装置のメモリ内に格納された乱数及び参照番号を含み、
上記方法は、
上記メモリから上記乱数と上記参照番号とを検索するステップと、
インデックス番号と上記参照番号との間の差を決定するステップと、
上記決定された差に基づいた数だけハッシュを上記乱数に対して実行して識別値を発生するステップと、
上記装置を認証するときの使用のために、上記識別値及び上記インデックス番号を上記検証装置に対して提供するステップとを備えたことを特徴とする方法。
【請求項26】
上記装置を認証するときの使用のために、上記装置の識別子を上記検証装置に提供するステップをさらに備えたことを特徴とする請求項25記載の方法。
【請求項27】
複数の安全な認証装置のペアを構成するための方法であって、上記方法は、
第1の装置と第2の装置とを識別するステップと、
上記第1の装置と上記第2の装置とを接続するステップと、
上記接続された第1の装置及び第2の装置により、共通のルート鍵を発生するステップとを備え、
上記共通のルート鍵は、上記第1の装置のハッシュエンジン及び上記第2の装置のハッシュエンジンにより使用されて相互間を暗号通信し、及び/もしくは相互を認証することを特徴とする方法。
【請求項28】
上記第1の装置及び上記第2の装置は、共通のインデックス番号だけをお互いが共有することにより、対称鍵暗号法のための同一の複数の秘密鍵を用いて相互に通信することを特徴とする請求項27記載の方法。
【請求項29】
上記第1の装置は、ランダムなプライベート鍵を上記第2の装置に対して提供し、上記第1の装置は、上記共通のルート鍵を使用して上記提供されたランダムなプライベート鍵に基づき第1の識別値を計算し、
上記第2の装置は、上記共通のルート鍵を使用して上記提供されたランダムなプライベート鍵に基づき第2の識別値を計算し、
上記計算された第2の識別値は上記第1の装置に提供され、上記第1の装置は、上記計算された第1の識別値を上記第2の識別値と比較して上記第2の装置を認証することを特徴とする請求項27記載の方法。
【請求項30】
第1のハッシュエンジンを有する第1の装置と、第2の装置に対して第1のプライベート鍵を発生するための第1のプライベート発生器とを暗号法によりペアを構成する方法であって、上記方法は、
第2のハッシュエンジンを有する第2の装置と第2のプライベート鍵を発生するための第2のプライベート鍵発生器とを識別するステップと、
上記第1の装置と上記第2の装置とを接続するステップと、
上記接続された第1の及び第2の装置により、共通のルート鍵を発生するステップと、
上記第1の装置と上記第2の装置とを切断するステップとを備え、
上記共通のルート鍵及び上記第1のプライベート鍵が上記第1の装置の上記第1のハッシュエンジンにより使用されて上記第2の装置と暗号通信し、上記共通のルート鍵及び上記第2のプライベート鍵が上記第2の装置の上記第2のハッシュエンジンにより使用されて上記第1の装置と暗号通信することを特徴とする方法。
【請求項31】
暗号通信で複数の装置のペアを構成するための方法であって、上記方法は、 第1の装置と第2の装置とを識別するステップを備え、
上記各装置は、
プライベート鍵を発生するためのプライベート鍵発生器と、
少なくとも上記プライベート鍵を格納するための不揮発性メモリと、
ルート鍵及び上記プライベート鍵を使用するハッシュエンジンと、
上記プライベート鍵発生器、上記不揮発性メモリ、及び上記ハッシュエンジンとの間の論理的相互接続とを備え、
上記方法は、
上記第1の装置と上記第2の装置とを接続するステップと、
上記接続された第1の及び第2の装置により、各ハッシュエンジンによる使用のための共通のルート鍵を発生するステップとを備え、
上記第1の装置は、そのハッシュエンジンを介して上記共通のルート鍵を使用して上記第2の装置と暗号通信し、及び上記第2の装置はそのハッシュエンジンを介して上記共通のルート鍵を使用して上記第1の装置と暗号通信することを特徴とする方法。
【請求項32】
各装置は、上記ハッシュエンジンによる使用のためのインデックスソースを有し、各ハッシュエンジンは、上記インデックスソースに基づいた識別値と上記プライベート鍵と上記共通のルート鍵とを発生し、上記発生された識別値は、上記装置を認証するときの使用のために、上記論理的相互接続を介して提供されることを特徴とする請求項31記載の方法。
【請求項33】
暗号法の電子装置であって、上記電子装置は、
プライベート鍵を発生するためのプライベート鍵発生器と、
少なくとも上記プライベート鍵を格納するための不揮発性メモリと、
上記プライベート鍵を使用し、この装置とペアが構成される少なくとも1つの他の装置により使用された共通のルート鍵を使用するハッシュエンジンと、
上記プライベート鍵発生器、不揮発性メモリ、及び上記ハッシュエンジンとの間の論理的相互接続とを備え、
上記ハッシュエンジンは、上記プライベート鍵に基づいた識別値及び上記共通のルート鍵を発生し、上記識別値は、他の装置を用いて上記装置を認証するときの使用のために、上記論理的相互接続を介して提供され、上記共通のルート鍵は、他の装置と暗号通信するために使用されることを特徴とする電子装置。
【請求項34】
複数の装置を備えた暗号通信のためのシステムであって、
上記各装置は、
プライベート鍵を発生するためのプライベート鍵発生器と、
少なくとも上記プライベート鍵を格納するための不揮発性メモリと、
共通のルート鍵と上記プライベート鍵とを使用するハッシュエンジンと、
上記プライベート鍵発生器、上記不揮発性メモリ、及び上記ハッシュエンジンとの間の論理的相互接続とを備え、
上記各装置は、上記複数の装置をともに接続することにより発生された上記共通の鍵を共有し、
上記各装置の上記各ハッシュエンジンは、上記共通のルート鍵を使用して上記複数の装置の他の複数の装置と暗号通信するように構成されることを特徴とするシステム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公表番号】特表2013−512619(P2013−512619A)
【公表日】平成25年4月11日(2013.4.11)
【国際特許分類】
【出願番号】特願2012−541112(P2012−541112)
【出願日】平成22年11月17日(2010.11.17)
【国際出願番号】PCT/US2010/057054
【国際公開番号】WO2011/066152
【国際公開日】平成23年6月3日(2011.6.3)
【出願人】(512136282)アクララ・アールエフ・システムズ・インコーポレイテッド (2)
【氏名又は名称原語表記】ACLARA RF SYSTEMS INC.
【Fターム(参考)】