説明

ハードウェアベースの暗号法

ハードウェア公開物理的クローン不能機能を使用するハードウェア暗号ユニットのための技術が、一般的に説明される。ソースコンピュータは、ハードウェア暗号ユニットのシミュレーションを使用してメッセージを暗号化することができる。次に、その暗号化されたメッセージが、宛先コンピュータに送られることが可能である。次に、宛先コンピュータが、ハードウェア暗号ユニットを使用して、そのメッセージを解読することができる。送信元コンピュータが、ハードウェア暗号ユニットのシミュレーションを使用して、入力値をシミュレーション出力に変換することができる。そのシミュレーション出力が、送信元コンピュータから宛先コンピュータに送信されることが可能であり、宛先コンピュータにおいて、ハードウェア暗号ユニットの出力が、シミュレートされた出力と合致するまで、可能なすべての入力値がハードウェア暗号ユニットに通されることが可能である。合致する出力を生成した入力値が、通信チャネルを介して平文で送信されることなしに、送信元コンピュータと宛先コンピュータとの間で共有される秘密となる。

【発明の詳細な説明】
【技術分野】
【0001】
(関連出願の相互参照)
本出願は、2009年6月17日に出願し、参照により全体が本明細書に明確に組み込まれている「Hardware Based Cryptography」という名称の米国非仮特許出願第12/486,451号の優先権を主張する。
【背景技術】
【0002】
暗号法は、潜在的にセキュアでない通信チャネルを介する情報のセキュアな通信をサポートすることができる。通信チャネルを介して送信されるべきメッセージは、チャネルを介して送信されるのに先立って、鍵で暗号化されることが可能であり、その後、受信機において解読されることが可能である。送信されるメッセージは暗号化されるため、そのメッセージが、受信機に到達する前に通信チャネルから傍受された場合、読み取られる恐れは、より小さい。対称鍵暗号システムが、暗号通信の一例である。共有秘密鍵システムとしても知られる対称鍵システムにおいて、送信機と受信機はともに、同一の秘密鍵を有し、その鍵が、暗号化するのにも、解読するのにも使用される。また、暗号技術は、格納されたデータをセキュリティで保護するのに、さらに他の様々な情報セキュリティアプリケーションおよび通信セキュリティアプリケーションにおいて使用されることも可能である。
【発明の概要】
【0003】
本開示は、一般に、ハードウェアの公開された物理的にクローン不能な機能(ハードウェア公開物理的クローン不能機能)を使用して共有される秘密を交換するためのいくつかの方法を説明する。いくつかの例示的な方法によれば、以下の動作の1つまたは複数が実行されることが可能である。暗号化されたデータが受信される。可能な初期値のプールからの少なくとも1つの初期値が、ハードウェア公開物理的クローン不能機能に関連付けられた入力レジスタにロードされる。入力レジスタからの、それらのロードされた値に対応する論理信号が、ハードウェア公開物理的クローン不能機能に入るように結合される。これらの論理信号が、ハードウェア公開物理的クローン不能機能を通して伝搬され、結合された論理信号から論理信号の第2のセットが生成されるようになる。ハードウェア公開物理的クローン不能機能からの論理信号の第2のセットが、出力レジスタに入るようにラッチされる。ラッチされた出力レジスタが、受信された、暗号化されたデータと比較される。ロードされた初期値が、受信された、暗号化されたデータと合致する、ラッチされた出力レジスタに応答して、共有される秘密として識別される。
【0004】
本開示は、一般に、コンピュータによって実行されると、秘密入力値を共有するようにコンピュータを構成するコンピュータ実行可能命令が格納されている何らかのコンピュータ記憶媒体を説明する。一部の例示的なコンピュータ記憶媒体は、コンピュータによって実行されると、以下の動作の1つまたは複数を実行することによって秘密入力値を共有するようにコンピュータを構成するコンピュータ実行可能命令が格納されている。入力値は、入力値のプールから選択される。ハードウェア公開物理的クローン不能機能に関連する一意のパラメータを特徴付ける情報が受け取られる。ハードウェア公開物理的クローン不能機能が、一意のパラメータを特徴付ける情報に基づいてシミュレートされて、選択された入力値からシミュレートされた出力が生成される。シミュレートされた出力は、選択された入力値が回復され得るハードウェア公開物理的クローン不能機能に送信される。
【0005】
本開示は、一般に、いくつかの暗号システムを説明する。いくつかの例示的な暗号システムは、以下、すなわち、ハードウェア公開物理的クローン不能機能、入力レジスタ、出力レジスタ、および/または探索モジュールの1つまたは複数を含むように構成される。ハードウェア公開物理的クローン不能機能は、パラメータ化されることが可能な動作特性を含む。これらのパラメータは、ハードウェア公開物理的クローン不能機能内の製造のばらつきと関係する。入力レジスタは、信号をハードウェア公開物理的クローン不能機能にロードする。出力レジスタは、ハードウェア公開物理的クローン不能機能から結果値をもたらす。探索モジュールは、入力空間の要素を入力レジスタにロードすること、および出力レジスタにおいて所望される結果を識別することによって、入力空間を探索するように動作可能である。
【0006】
以上の概要は、単に例示的であり、限定することは全く意図していない。前述した例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面、および以下の詳細な説明を参照することによって明白となろう。
【0007】
本開示の以上、およびその他の特徴は、添付の図面と併せて解釈される、以下の説明、および添付の特許請求の範囲から、より完全に明白となろう。これらの図面は、本開示によるいくつかの実施形態を示すに過ぎず、したがって、本開示の範囲を限定すると考えられるべきでないものと理解して、本開示が、添付の図面の使用を介してさらに具体的に、さらに詳細に説明される。
【図面の簡単な説明】
【0008】
【図1】ホストコンピュータと、ハードウェア暗号ユニットとを有する暗号システムを示すブロック図である。
【図2】論理ゲートベースのハードウェア公開物理的クローン不能機能を使用するハードウェア暗号ユニットを示すブロック図である。
【図3】様々なゲート遅延の効果を示すように構成された3つの論理ゲートを示す回路図である。
【図4】ハードウェア公開物理的クローン不能機能の2つの層の間の様々なゲート遅延による信号遷移の回数を増加させることの効果を示すタイミングチャートである。
【図5】ハードウェアベースの暗号法のための動作環境を示すコンピュータネットワーク図である。
【図6】ハードウェア公開物理的クローン不能機能を使用する解読のためにメッセージを暗号化するためのプロセスを示す流れ図である。
【図7】ハードウェア公開物理的クローン不能機能を使用してメッセージを解読するためのプロセスを示す流れ図である。
【図8】本明細書で提示される実施形態に従ってすべてが構成された、例示的なコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【0009】
以下の詳細な説明において、本明細書の一部分を成す、添付の図面が参照される。添付の図面において、同様の符号は、文脈がそうでないことを規定しない限り、通常、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明される例示的な実施形態は、限定することは意図していない。本明細書で提示される主題の趣旨または範囲を逸脱することなく、他の実施形態が利用されることが可能であり、さらに他の変更が行われることが可能である。本明細書で一般に説明され、図に示される本開示は、本明細書ですべて明示的に企図される、多種多様な異なる構成において配置されること、置換されること、組み合わされること、分離されること、および設計されることが可能であることが容易に理解されよう。
【0010】
本開示は、暗号ハードウェア公開物理的クローン不能機能と関係する方法、装置、システム、およびコンピュータプログラム製品に向けられる。従来の暗号技術は、一般に、数学アプローチおよび計算アプローチを用いるが、物理的法則および技術制約が使用されることも可能である。例えば、半導体IC(集積回路)内の、特に非常に深いミクロン以下の技術スケールにおける本来的な製造のばらつきが、一意の、クローン不能なシステムをもたらすように活用されることが可能である。そのようなデバイスまたはシステムのクローン不能な性質は、セキュアな暗号機能の基礎を提供することができる。
【0011】
現在、および将来のCMOS(相補型金属酸化膜半導体)技術、または他の半導体技術における本来的な製造のばらつきが、製造の各インスタンス内でゲートレベルの一意性を生じさせることが可能である。ゲート、および互いに接続する導体に関して正確なフィーチャサイズを有するICを製造しようと試みる際、様々な技術的な課題が生じる。同様の課題が、ドーピングレベルに影響する可能性もある。これらの課題には、ウェーハ格子構造の不完全さ、一様でないドーパント分布、マスクの位置合わせ不良、化学研磨もしくは機械研磨が含まれることが可能である。このため、単一の設計のそれぞれの製造されたICが、ゲートのタイミング、面積、電力、およびソフト誤り率感受性の点でわずかに異なるゲートを、一般に有することが可能である。これらの微妙な違いを顕在化するようにそのようなICを動作させることが、一意の動作特性を有するICをもたらすことが可能である。同様に、フォトニック結晶ベースの光学チップ間インタコネクトおよび光学チップ内インタコネクトが、製造のばらつきによる、それらのインタコネクトの一意の動作特性に関して活用されることが可能である。そのようなフォトニックインタコネクトは、信号およびクロックに関して高いスループット、および低い遅延分布をサポートすることができる。
【0012】
ハードウェア暗号ユニットは、入力レジスタが、ゲートに入力を供給しており、さらに出力レジスタが、指定された期間の後に、ゲートからの結果をラッチする、多数の論理ゲートとして実施されることが可能である。ホストコンピュータが、一意に変形された出力を生成するように入力ベクトルおよびクロッキング周期を指定することができる。ハードウェア暗号ユニットの動作は、ハードウェア暗号ユニットの入力レジスタに入力ベクトルを発行することによって始まることが可能である。それらの入力ベクトルに関連する信号が、ハードウェア暗号ユニットの論理ゲートを通って伝搬された後、結果が、出力レジスタに入るようにラッチされることが可能である。ハードウェア暗号ユニットは、リアルタイムで、例えば、1クロックサイクル、または数クロックサイクルで結果を生成することができる。これらの結果は、各ゲートのタイミング特性に依存するので、攻撃者は、正確なタイミング精度で、ゲートレベルでハードウェア暗号ユニットをシミュレートまたはエミュレートしなければならないことになる。
【0013】
ソースコンピュータは、ハードウェア暗号ユニットのシミュレーションを使用してメッセージを暗号化することができる。次に、暗号化されたメッセージが、宛先コンピュータに送られることが可能である。次に、宛先コンピュータが、ハードウェア暗号ユニットを使用して、そのメッセージを解読することができる。宛先コンピュータは、宛先コンピュータがハードウェア暗号ユニットに結び付けられるので、ハードウェア暗号ユニットのためのホストコンピュータと呼ばれることも可能である。送信元コンピュータは、ハードウェア暗号ユニットのシミュレーションを使用して、入力値の入力ベクトルをシミュレーション出力に変形することができる。このシミュレーション出力が、送信元コンピュータから宛先コンピュータに送信されることが可能であり、宛先コンピュータにおいて、ハードウェア暗号ユニットの出力が、シミュレートされた出力と合致するまで、可能なすべての入力値がハードウェア暗号ユニットに通されることが可能である。合致する出力を生成した入力値が、通信チャネルを介して平文で送信されることなしに、送信元コンピュータと宛先コンピュータとの間で共有される秘密となる。本明細書で提示されるハードウェア暗号ユニットおよび暗号技術は、対称鍵アプローチ、非対称鍵アプローチ、秘密鍵アプローチ、および公開鍵アプローチをサポートするように活用されることが可能である。
【0014】
ハードウェア暗号ユニットにおけるゲートの数がNによって与えられる場合、シミュレーションは、各入力ベクトルサイクルに関してO(N3)の複雑度を有し、複数のサイクルが使用されることが可能である。このため、100,000個のゲートの場合、攻撃者は、ハードウェア暗号ユニットをシミュレートし、非常に大きな入力値プールからの入力に対する各パスを生成するために、1015回を超える動作が完了されることを要求することになる。これに対して、ハードウェア暗号ユニットは、1ナノ秒という速さで、さらに数ナノジュールのエネルギー消費で、暗号パスをもたらすことができる。
【0015】
ハードウェア暗号ユニットは、1クロックサイクル、または数クロックサイクルで、指定された入力を一意の出力にマップすることができる。秘密交換のための単一の入力値に関してハードウェア暗号ユニットをシミュレートすることは可能であるが、秘密鍵交換を攻撃するように可能な入力値の十分な数に関する出力をシミュレートすることは、途方もなく遅い。このため、潜在的な攻撃者が、リアルタイム制約の下で完全なシミュレーションを行うことを要求するプロトコルは、高いレベルのセキュリティを有する暗号機能を提供することができる。通常の例の場合、100万のコンピュータを有する仮想の攻撃者は、暗号を破るのに30,000年を超えた年数を要する可能性がある。強力で、柔軟性のあるハードウェアベースの暗号法をサポートすることができるのは、ハードウェア暗号ユニットによってもたらされる結果と、ハードウェア暗号ユニットの完全なシミュレーションとの間の、この複雑度のギャップである。
【0016】
次に図1を参照すると、本明細書で提示される1つまたは複数の実施形態による、ホストコンピュータ120と、ハードウェア暗号ユニット110とを有する暗号システム100が示される。ホストコンピュータ120は、ホストインタフェース125を介してハードウェア暗号ユニット110にアクセスすることが可能である。ハードウェア暗号ユニット110は、製造プロセスの各個別のインスタンスが、他のハードウェア暗号ユニット110から一意であるハードウェア暗号ユニット110をもたらすように製造され得る。このため、ハードウェア暗号ユニット110の物理的な所有は、関連する暗号機能を非常にセキュアに一意に処理するプロセッサをサポートすることができる。また、ハードウェア暗号ユニット110は、ハードウェア暗号ユニット110のソフトウェアシミュレーションなどの、ソフトウェアとして実施されることも可能である。
【0017】
ホストインタフェース125は、任意のコンピュータインタフェースであることが可能である。例えば、ホストインタフェース125は、シリアル、パラレル、ユニバーサルシリアルバス(USB)、ペリフェラルコンポーネントインタコネクト(PCI)、有線、無線、Bluetooth(登録商標)、無線周波数ID(RFID)、光ファイバ、フリースペースオプティカル、あるいはハードウェア暗号ユニット110をホストコンピュータ120に結合するのに妥当な他の任意のインタフェースであることが可能である。ハードウェア暗号ユニット110内のインタフェースモジュール130が、ホストコンピュータ120に情報を通信するため、およびコンピュータ120から情報を通信するための、ハードウェア暗号ユニット110とホストインタフェース125の間のインタフェースを提供することができる。
【0018】
ホストコンピュータ120が、ハードウェア暗号ユニット110に暗号要求を発行することが可能である。暗号要求は、ハードウェア暗号ユニット110のインタフェースモジュール130に要求を通信することによって、ハードウェア暗号ユニット110に与えられることが可能である。暗号要求の入力ベクトルが、インタフェースモジュール130から入力レジスタ140にクロック制御されて入れられる初期値として供給されることが可能である。入力クロック145が、入力レジスタ140に入れられる入力をクロック制御するのに使用されることが可能である。入力ベクトルは、クロック制御されて入力レジスタ140に入れられると、ハードウェア公開物理的クローン不能機能(HPPUF)150に供給され得る。
【0019】
HPPUF150は、複数の論理ゲート、半導体信号パス、プラズモンパスのアレイ、フォトニック結晶構造、ナノワイヤゲート、他の任意のナノワイヤ構造、あるいは測定される構造の動作に影響を与える仕方で各製造インスタンスにおいてわずかにばらつきがある可能性がある任意の構造として製造され得る。製造インスタンス間の構造のばらつきは、製造プロセスの変動、意図的な製造上の外乱、またはそのような変動と外乱の両方に起因することが可能である。組合せ論理HPPUF150実施形態において、製造のばらつきは、同一の設計に対応する集積回路の間でさえ、異なる遅延、異なる電力、またはその他の異なる物理的特性を有する各論理ゲートとして顕在化する可能性がある。HPPUF150は、正確にシミュレートされ得るように完全に特徴付けられることが可能な物理システムである。しかし、HPPUF150シミュレーションは、実際のHPPUF150ハードウェアの実行よりはるかに長い時間を要求する可能性がある。
【0020】
HPPUF150からのもたらされる出力値が、出力レジスタ160に到着することが可能である。出力クロック165が、HPPUF150の出力値をラッチして、指定された時間に出力レジスタ160に入れることが可能である。出力クロック165は、入力クロック145からの特定の時間遅延または位相オフセットで生成され得る。タイマ、遅延、位相ロックループ、またはそれ以外のタイミング機構が、HPPUF150を通した信号伝搬を開始した入力クロック145における遷移の後の指定された時間に、出力クロック165における遷移の生成をサポートすることが可能である。ラッチされて出力レジスタ160に入れられた出力値は、ホストインタフェース125を介してホストコンピュータ120がアクセスするように、インタフェースモジュール130に供給され得る。暗号要求は、ハードウェア暗号ユニット110が入力レジスタ140にロードする入力値、ならびに出力クロック165を使用して出力値をクロック制御して出力レジスタ160に入れるための指定された時間を指定することを含むことが可能である。
【0021】
HPPUF150の可能なすべての出力の完全なシミュレーションに必要とされる時間は、非常に長い時間を必要とする可能性がある。例えば、このシミュレーションは、今日の最も進んだ技術を使用して数年、数十年、または数世紀もの程度の時間を必要とする可能性がある。これに対して、HPPUF150ハードウェア自体の出力の計算は、1ナノ秒未満しか必要としない可能性がある。また、出力のランダムに選択された小さいサブセットの確率論的検証が、数ミリ秒の程度で行われることも可能である。
【0022】
ハードウェア暗号ユニット110は、サイドチャネル攻撃、物理的攻撃、およびソフトウェア脆弱性に対する本来的な耐性があると考えられることが可能である。ハードウェア暗号ユニット110は、製造するのが安価であることが可能であり、さらに超高速で、超低電力であることが可能である。ハードウェア暗号ユニット110は、通信リンク、無線通信、インターネット通信、ウェブトランザクション、ファイナンシャルトランザクション、電子メール、ソフトウェアダウンロード、パスワード暗号化、データストレージ、クレジットカード、IDカード、パスポート、SIM(加入者IDモジュール)、スマートファイナンシャルノート、または他の様々なセキュアなアプリケーションなどの多数のアプリケーションにおいて使用され得る。通常の暗号技術とは異なり、ハードウェア暗号ユニット110は、証明されていない数学的課題に依存しないことが可能である。ハードウェア暗号ユニット110は、従来のアプローチと比べて、大幅に費用が安く、より高速であり、より電力を節約することが可能である。
【0023】
1つのハードウェア暗号ユニット110が、1つまたは複数のHPPUF150を使用することが可能である。複数のHPPUF150の場合、入力ベクトルは、同一であることも、異なることも可能である。入力ベクトルは、種を入れられた乱数発生器から導き出されることが可能である。1つまたは複数のHPPUF150からの出力の複数の出力または複数の部分が、多様なシミュレーション計算難度の暗号機能をサポートするのに使用されることが可能である。例えば、HPPUFは、様々なサイズおよびシミュレーション要件を有することが可能である。HPPUF150からの出力は、ハッシュ関数に適用されることが可能である。
【0024】
時間効果、放射効果、エレクトロマイグレーション効果、およびその他の効果が、HPPUF150が、HPPUF150の初期の特性からドリフトすることを生じさせる可能性がある。このことが生じた場合、ハードウェア暗号ユニット110は、暗号ユニット110の公開の特性に基づくシミュレーションにもはや対応しない結果を生じさせる可能性がある。廃棄される代わりに、この暗号ユニット110は、この暗号ユニット110の新たな物理的特性に対応する公開のディスクリプタ情報で特徴付けし直されて、使用に戻されることが可能である。
【0025】
暗号機能に関連付けられた入力データが、プラズモン構造、フォトニック結晶構造、無線周波数構造、または3次元構造などの高い帯域幅のインタコネクトを使用して、ハードウェア暗号ユニット110に供給され得る。暗号機能に関する入力ベクトルは、より多くの入力ビットをもたらすように暗号、シフトレジスタ、線形フィードバックシフトレジスタ、乱数発生器に種を入れる、つまり、初期設定することによって、あるいは他の任意の仕方で拡大されることが可能である。
【0026】
ハードウェア暗号ユニット110は、様々なセキュアなトランザクション、無線または有線のメッセージまたはパケットの暗号化、電子メール暗号化、あるいは他の任意の目的で使用されることが可能である。例えば、カスタマ、または関連するサービスプロバイダが、相互にセキュアな通信をサポートするためにハードウェア暗号ユニット110を備えていることが可能である。
【0027】
入力値が、入力値プールと呼ばれる大きい選択空間から選択されることが可能である。これらの入力値は、秘密鍵として使用されることが可能である。HPPUF150ベースのハードウェア暗号ユニット110が、本明細書で説明される秘密鍵の交換をサポートすることが可能である。HPPUF150の入力はまず、ハッシュ操作に通されることが可能である。また、HPPUF150の出力が、ハッシュ関数に通されることも可能である。HPPUF150の出力をハッシュすることは、攻撃者が、その出力の選択された部分を攻撃するのではなく、HPPUF150のすべての出力を計算することを余儀なくさせることが可能である。また、ハッシュ関数が、複数のHPPUF150が逐次に適用される状況において、2つのHPPUF150の間で提供されることも可能である。
【0028】
ハードウェア暗号ユニット110は、通信の両方の側が特殊なハードウェアを有し、さらにそのハードウェアを同時に、または順次に使用する、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット110は、最終の通信されたメッセージが、排他的論理和(XOR)演算を使用して、並行に、または順次に送られた複数のメッセージを組み合わせることによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット110は、最終の通信されたメッセージが、解読されたメッセージと、公開で通信された別の通信されたメッセージとの関数を適用することによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。
【0029】
ハードウェア暗号ユニット110は、最終の通信されたメッセージが、解読されたメッセージと、公開で通信された別の通信されたメッセージとをXOR演算することによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット110は、或る特定のパターンが位置する出力位置のアドレスまたはインデックスが、通信されるメッセージを符号化するのに使用される、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。
【0030】
ハードウェア暗号ユニット110は、HPPUF150出力がアナログ信号および/またはデジタル信号をもたらすことが可能なマルチモードであることが可能である。これらの信号は、ゲート遅延、ゲート遅延の差、スイッチング電力、漏れ電力、ならびに認証ユニット110から測定され得るその他の物理的特性または動作特性によって確立されることが可能である。HPPUF150は、HPPUF150内の再収束パス間の論理競合または信号競合をなくすためにマルチプレクサを使用することが可能である。
【0031】
HPPUF150は、構成設定がHPPUF150の出力に影響を与えるように、供給電圧、バイアス電圧、またはその他の動作設定などのパラメータで構成されることが可能である。そのような構成設定は、HPPUF150のパラメータ化された特性の一部として、暗号鍵交換の一部として、または別個のセットアップ段階もしくはネゴシエーション段階の一部として交換されることが可能である。
【0032】
HPPUF150は、入力値プールの要素をHPPUF150に通して、所望される出力を識別することに関連する構造またはモジュールなどの、サポートする構造またはモジュールとともに、ハードウェア暗号ユニット150上に一緒に配置されることが可能である。そのような構造またはモジュールは、ハードウェア暗号ユニット110の外部に配置され、ハードウェア暗号ユニット110に結合されることも可能である。ハードウェア暗号ユニット110のアーキテクチャは、HPPUF150を使用した出力値探索などのサポート機能のパイプライン化された実行をサポートするように構成されることが可能である。
【0033】
ナノワイヤ構造が、HPPUF150の基礎にあることが可能である。ナノワイヤ構造は、約100ナノメートル以下の程度の断面を有する非常に小さいワイヤ構造を含むことが可能である。ナノワイヤ構造は、自己集合性であることが可能である。また、フォトニック結晶構造が、HPPUF150の基礎であることも可能である。そのようなフォトニック結晶構造は、電磁波と光学的に相互作用することが可能なフォトニックナノ構造であることが可能である。
【0034】
次に図2を参照すると、本明細書で提示されるいくつかの実施形態による論理ゲートハードウェア公開物理的クローン不能機能150を使用するハードウェア暗号ユニット110が、示されている。入力レジスタ140が、フリップフロップ210A〜210Nのコレクションとして実施され得る。フリップフロップは、インタフェースモジュール130からの入力クロック145によってクロック制御され得る。入力レジスタ140を構成するフリップフロップ210A〜210Nの出力は、NAND(否定論理積)ゲート220A〜220Nの第1の層への入力の役割をすることが可能である。NANDゲート220A〜220Nの第1の層からの出力は、NANDゲート230A〜230Nの第2の層への入力の役割をすることが可能である。NANDゲート230A〜230Nの第2の層からの出力は、NANDゲート240A〜240Nの層Hに続くNANDゲートのさらなる層への入力の役割をすることが可能である。
【0035】
NANDゲート240A〜240Nの層Hからの出力は、出力レジスタ160への入力の役割をすることが可能である。出力レジスタ160は、フリップフロップ250A〜250Nのアレイから構成されることが可能である。出力フリップフロップ250A〜250Nは、出力クロック165によってクロック制御され得る。出力レジスタ160の出力は、ホストコンピュータ120への応答のためにインタフェースモジュール130にフィードバックされることが可能である。HPPUF150を構成する論理ゲートの総数は、実施形態、および動作コンテキストにより、数十、数百、数千、数百万、またはそれより多いことが可能である。
【0036】
HPPUF150は、図示されるとおり、NANDゲートから形成されることが可能であるが、他のタイプの論理ゲートが使用されることも可能である。2入力、3入力、4入力、またはそれ以外の多入力などの、多入力論理ゲートが、HPPUF150を構成する論理ゲートとして使用されることが可能であることを認識されたい。混合タイプの論理ゲート、および様々な数の入力を有するゲートが、単一のHPPUF150内で使用されることが可能である。例えば、ORゲート、NOR(否定論理和)ゲート、ANDゲート、NANDゲート、XOR(排他的論理和)ゲート、またはその他のタイプの組合せ論理が、HPPUF150内で使用されることが可能である。論理ゲートの層の間、例えば、NANDゲート220A〜220Nの第1の層と、NANDゲート230A〜230Nの第2の層の間の、論理ゲートの層の間の互いの接続は、1つの層から次の層への任意の多種多様な互いの接続であることが可能であり、したがって、各層の出力は、前の層からの様々な入力に適度に依存する。出力フリップフロップ250A〜250Nの数は、一般に、入力フリップフロップ210A〜210Nの数と同一であることが可能であるが、これら2つの数は、異なることも可能である。
【0037】
HPPUF150の幅、すなわちWは、入力フリップフロップ210A〜210Nの数と出力フリップフロップ250A〜250Nの数のうち、いずれかの数、または両方の数と関係することが可能である。HPPUF150内の層の数、すなわちHは、HPPUF150の高さと考えられることが可能である。積(W×2H)が大きいことが有利である可能性がある。W=106であり、H=80であるものと想定すると、約1030回の計算が、HPPUF150の出力を再現するのに必要とされる可能性がある。このことは、10億のコンピュータ上で10億年を超えることに匹敵する可能性がある。Hを60に低減することが、匹敵する計算を、およそ、100万のコンピュータ上で100万年に減少させる可能性がある。Hを約50に低減することが、暗号ユニット110のセキュアな動作を一般にサポートする計算の複雑度をHPPUF150に提供することが可能である。W=109であるものと想定すると、H=40もやはり、一般に、暗号ユニット110のセキュアな動作をサポートする。一般に、Hの値は、2〜100の範囲内、またはそれより大きいことが可能である。
【0038】
HPPUF150の適用がM回、繰り返される場合、Wは、Mに対して直線的に低減されることが可能であるのに対して、Hは、Mに対して対数的に低減されることが可能である。このため、M=109である場合、W=106およびH=20という値が、一般に、暗号ユニット110のセキュアな動作をサポートすることができる。一般に、Wは、1000、または数百にさえ低減されることが可能であるが、推量ベースの攻撃に対する脆弱性を回避することを試みるよう、Wを100未満に低減しないことが望ましい可能性がある。Wを可能な限り大きく設定することは、HPPUF150の出力をサンプリングすることに関する必要とされるタイミング精度を小さくする役割をすることが可能である。
【0039】
ハードウェア暗号ユニット110(特に、HPPUF150の論理ゲート)を形成するための半導体プロセス内の製造のばらつきが、それぞれの個別に製造されたハードウェア暗号ユニット110の一意性を許すことが可能である。例えば、各ゲート内の半導体構造またはトランジスタの構造サイズまたは電気的特性が、他のゲートに比べて各ゲートと関係する速度、遅延、またはタイミングをわずかに変える可能性がある。
【0040】
例えば、ハードウェア暗号ユニット110の1つの製造されたインスタンスにおいて、NANDゲート220Aが、NANDゲート220Bと比べて、より大きい遅延を有する可能性がある。別の製造されたインスタンスにおいて、NANDゲート220Bが、NANDゲート220Aと比べて、より大きい遅延を有する可能性がある。これらの違いは、リソグラフィアラインメント特性、ドーピング特性、メタライゼーション特性、またはその他の半導体製造特性などの製造のばらつきと関係することが可能である。HPPUF150内の論理ゲートを通る信号の遅延の変動は、1つのゲートが、そのゲートの出力を、別のそれぞれの論理ゲートより後に生成するので、各層における出力が複数の遷移を含むことを生じさせる可能性がある。例えば、NANDゲート220Aが、NANDゲート220Bと比べて、より大きい遅延を有する場合、層1から層2への出力は、NANDゲート220Bが出力をもたらすと、遷移が生じ、その後、NANDゲート220Aが出力を生成すると、わずかに後の時点でさらなる遷移が生じる。
【0041】
HPPUF150内のH層のそれぞれにおいて、信号の遷移の回数は、増加して、最終の層、つまり、層Hにおいて、出力が、最も速く出力に到着する信号から始まって、最終の論理出力における静止までの期間にわたるいくつかのセットの値に関して様々であるようになり得る。出力のばらつきの、この期間は、出力クロック165が出力のセットを明確にサンプリングすることが可能な時間枠を提供する。様々な論理ゲートの間のタイミングのばらつきは、認証ユニット110のそれぞれの製造されたインスタンスに一意であることが可能であるため、或る特定の時点で出力レジスタ160においてサンプリングされる特定の論理状態もやはり、ハードウェア暗号ユニット110に一意であることが可能である。HPPUF150の結果として、この時間インスタンスをサンプリングすることは、ハードウェア暗号ユニット110を使用する暗号機能に関する一意の動作および出力をもたらすことができる。正確なサンプリングは困難である可能性があるため、応答は、その応答が、指定されたサンプリング時間の前後の変動についての小さい時間枠にわたってHPPUF150の出力状態と合致した場合、正しいものとして受け入れられることが可能である。
【0042】
ハードウェア暗号ユニット110の或る特定のインスタンスが作成されると、上記のように特定されたタイミング特性が、ハードウェア暗号ユニット110のそのインスタンスに関する公開の情報として特徴付けられ、配布されることが可能である。その特定のハードウェア暗号ユニット110に関する公開の情報は、暗号化コンピュータによって、ハードウェア暗号ユニット110を使用する解読コンピュータにおいて探索され得る出力をシミュレートするのに使用されることが可能である。このシミュレーションは、計算するのに、例えば、数秒までかかる可能性があるが、ハードウェア暗号ユニット110は、出力を非常に迅速に、例えば、数ナノ秒内に計算することができる。可能な入力値の数が多いことにより、攻撃者が、可能なすべての入力値に関するHPPUF150出力を計算することを防止することが可能である。このため、共有される秘密鍵の適時の識別は、ハードウェア暗号ユニット110の1つの特定のインスタンスだけからしか可能でない可能性がある。このため、HPPUF150を含むハードウェア暗号ユニット110は、セキュアな暗号システムの基礎の役割をすることができる。
【0043】
次に図3を参照すると、回路図300が、本明細書で提示される1つまたは複数の実施形態による様々なゲート遅延の効果を示すように配置された3つの論理ゲートを例示する。NANDゲート310およびNANDゲート320が、NANDゲート330への入力として出力をもたらすことが可能である。NANDゲート310は、NANDゲート320の遅延より、わずかに遅い遅延を有することが可能である。このため、NANDゲート310の出力(信号A)は、NANDゲート320の出力(信号B)に先立って、NANDゲート330の入力に到着することが可能である。NANDゲート330の出力(信号C)は、NANDゲート330が、入力として信号Aおよび信号Bを受け取るので、信号Aと信号Bの両方に依存することが可能である。
【0044】
次に図4を参照すると、タイミングチャート350が、本明細書で提示される1つまたは複数の実施形態によるハードウェア公開物理的クローン不能機能の2つの層の間の様々なゲート遅延による信号遷移の回数を増加させることの効果を例示する。タイミングチャート350内の信号は、図3に関連して定義された信号である。NANDゲート310出力は、信号Aであり、タイミングトレース352Aとして示される。NANDゲート320出力は、信号Bであり、タイミングトレース352Bとして示される。NANDゲート330出力は、信号Cであり、タイミングトレース352Cとして示される。NANDゲート310出力(信号A)の遷移は、時刻T1に生じ、その後、時刻T2にNANDゲート320からの出力(信号B)の遷移が続く。信号Cに関するトレース352Cは、信号Aおよび信号Bを入力として受け取るNANDゲート330の出力を示す。信号Cに関するトレース352Cは、NANDゲート330の出力が、NANDゲート330の入力の各遷移でどのように遷移することが可能であるかを示す。このため、NANDゲート310およびNANDゲート320からの2つの入力の間の遅延は、NANDゲート330の出力が、これらの入力のそれぞれにおいて1回だけの遷移しか存在しないものの、実際には2回、遷移することをもたらす可能性がある。2入力ゲートのスタックにおける各層で信号遷移の回数が潜在的に2倍になることで、層Hは、短い期間にわたって2Hもの回数の信号遷移を有する可能性がある。ハードウェア暗号ユニット110の出力は、遷移する値の、このシーケンスを、或る指定された時点でサンプリングすることによって獲得されることが可能である。信号Cに関するトレース352C内の遷移のわずかな遅延は、NANDゲート330を通る遅延と関係することが可能である。
【0045】
遷移する出力値のシーケンスをサンプリングすることは、非常に正確なタイミング機構を必要とする可能性がある。この精度要件は、Hとともに指数関数的に増加する可能性がある。前述したとおり、M(HPPUF150を適用することに関する反復カウント)を増加させること、およびW(HPPUF150に関連する幅)を増加させることが、HPPUF150の計算の複雑度を必ずしも低減することなしに、Hの値を低減することができる。H=20という値が、製造された論理ゲートに関して現在、妥当である可能性がある。H=30という値が、いくつかの半導体実施形態によるオンチップクロック制御の限度と考えられることが可能である。H=70以上の値は、原子時計において使用される技術などの高度のクロック制御技術を使用して可能であり得る。
【0046】
次に図5を参照すると、コンピュータネットワーク図が、ハードウェアベースの暗号法のための動作環境400を示す。メッセージが、宛先コンピュータ420に送信するために送信元コンピュータ410において暗号化されることが可能である。このメッセージは、宛先コンピュータ420において解読されることが可能である。入力値のプール405が、ハードウェア暗号ユニット110のHPPUF150(図1に示される)への入力の大きい選択空間を備えることが可能である。入力値のプール405に関する選択空間は、ハードウェア暗号ユニット110の入力レジスタ140によって規定されるサイズの可能なすべての値であることが可能である。また、この選択空間は、より大きい可能な空間の何らかのサブセットであることも可能である。入力値のプール405に関連する入力値は、暗号ユニット110の初期設定値と呼ばれることも可能である。また、これらの入力値は、秘密暗号鍵と考えられることも可能である。
【0047】
宛先コンピュータ420は、ハードウェア暗号ユニット110に結合されることが可能である。ハードウェア暗号ユニット110に関連付けられたHPPUF150のパラメータ化された特性450が、宛先コンピュータ420から送信元コンピュータ410に送信されることが可能である。送信元コンピュータ410は、入力値のプール405から入力値425をランダムに選択することができる。HPPUF150のシミュレーション430が、HPPUF150のパラメータ化された特性450を使用して、送信元コンピュータ410において実行されることが可能である。HPPUF150のシミュレーション430は、ランダムに選択された入力値425からシミュレーション出力435を生成することができる。シミュレーション出力435は、送信元コンピュータ410から宛先コンピュータ420に送信されることが可能である。宛先コンピュータ420は、すべてのプール値に対して実行されるハードウェア455を使用して、入力値のプール405の中のすべての値にハードウェア暗号ユニット110を適用して、シミュレーション結果460を生成するプール値を識別することができる。このため、宛先コンピュータ420は、送信元コンピュータ410だけに知られている、ランダムに選択された入力値425を回復することができる。これで、ランダムに選択された入力値425の秘密が、送信元コンピュータ410と宛先コンピュータ420との間の通信チャネルを介して、ランダムに選択された入力値425をオープンに送信することなしに、送信元コンピュータ410と宛先コンピュータ420の間で共有される。
【0048】
ランダムに選択された入力値425が、送信元コンピュータ410および宛先コンピュータ420において知られたことで、ランダムに選択された入力値425は、情報を暗号化し、解読する暗号または暗号鍵として使用されることが可能である。送信元コンピュータ410が、ランダムに選択された入力値425を元の平文メッセージ440とXOR(排他的論理和)演算して、暗号文メッセージ445を生成することができる。暗号文メッセージ445は、送信元コンピュータ410から宛先コンピュータ420に送信されることが可能である。宛先コンピュータ420において、暗号文メッセージ445が、シミュレーション出力460を生成するプール値として回復された、ランダムに選択された入力値425と、XOR演算されることが可能である。
【0049】
宛先コンピュータ420において、シミュレーション出力460を生成するプール値を受信された暗号文445とXOR演算することは、宛先コンピュータ420において、回復された平文465を生成することを可能にする。ランダムに選択された入力値425は、秘密鍵、または共有される秘密と考えられることが可能である。また、システム400は、セキュアな鍵配布または鍵共有を実行することによって、任意のタイプの鍵を共有するのに使用されることも可能である。平文440は、送信元コンピュータ410から宛先コンピュータ420にセキュアに送信されるべき鍵によって置き換えられることが可能である。いずれかのタイプの鍵が送信元コンピュータ410と宛先コンピュータ420との間で共有されると、その鍵は、宛先コンピュータ420から送信元コンピュータ410に情報を逆方向に送信するのに使用されることが可能である。また、鍵は、交換されると、ストリーム暗号への入力として、または乱数発生器の種として使用されることも可能である。そのような両方のアプローチが、任意の長さのメッセージをサポートすることができる。
【0050】
暗号システム400は、従来の公開鍵暗号プロトコルまたは秘密鍵暗号プロトコルを、本明細書で開示されるハードウェアベースの暗号技術と組み合わせる暗号アプローチをサポートすることができる。暗号システム400は、暗号化されたメッセージが、ランダムに選択された入力値425を直接に使用する代わりに、入力ベクトルにハッシュ関数を適用することによって得られるように操作されることが可能である。暗号システム400は、暗号化されたメッセージが、HPPUF150に関連する出力または中間値のサブセットにハッシュ関数、または他のタイプの関数を適用することによって得られるように操作されることが可能である。
【0051】
次に図6を参照すると、ハードウェア公開物理的クローン不能機能を使用する暗号技術のための本明細書で提示される実施形態に関するさらなる詳細が与えられる。詳細には、図6は、本明細書で提示される少なくともいくつかの実施形態によるハードウェア公開物理的クローン不能機能を使用する解読のためにメッセージを暗号化するためのプロセス500を示す流れ図である。
【0052】
本明細書で説明される動作は、操作上または製造上の動作のシーケンスとして、コンピュータによって実施される動作、またはコンピューティングシステム上で実行されているプログラムモジュールのシーケンスとして、あるいは互いに接続された、マシン論理回路、またはコンピューティングシステム内の回路モジュールとして実施されることを認識されたい。実施は、様々な実施形態のパフォーマンス要件、およびその他の要件に依存する選択の問題である。本明細書で説明される論理動作のいくつかは、状態動作、構造デバイス、行動、またはモジュールという様々な呼び方をされる。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェアで、ファームウェアで、専用デジタル論理で、さらに以上の組合せで実施されることが可能である。また、図に示され、本明細書で説明されるよりも多い、または少ない動作が実行されることが可能であることも認識されたい。また、これらの動作は、順次に、並行に、または本明細書で説明される順序とは異なる順序で実行されることも可能である。
【0053】
プロセス500は、動作500で開始し、大きい入力値プール405から送信元コンピュータ410によって入力値が選択されることが可能である。選択は、ランダムに、擬似ランダムに、または他の任意の仕方で行われることが可能である。宛先コンピュータ420に共有されると、ランダムに選択された入力値425は、送信元コンピュータ410と宛先コンピュータ420の間の共有される秘密鍵と考えられることが可能である。動作520に進むと、HPPUF150をシミュレートするためのパラメータ化された特性が、宛先コンピュータ420から送信元コンピュータ410において受信されることが可能である。これらのパラメータ化された特性に関連するHPPUF150は、宛先コンピュータ110に関連付けられたハードウェア暗号ユニット110内に含まれることが可能である。
【0054】
動作530に進むと、動作520で受信された公開のパラメータ化された特性が、送信元コンピュータ410によって、宛先コンピュータ420に配置されたハードウェア暗号ユニット110をシミュレートするのに使用されることが可能である。ハードウェア暗号ユニット110のシミュレーションは、動作510で選択された、ランダムに選択された入力値425に関するシミュレートされた出力435を生成するのに使用されることが可能である。
【0055】
動作540に進むと、シミュレートされた出力435が、送信元コンピュータ410から宛先コンピュータ420に送信されることが可能である。動作550に進むと、送信元コンピュータ410が、選択された入力値425を平文メッセージ440とXOR演算して、暗号文445を生成する。動作560に進むと、暗号文445が、送信元コンピュータ410から宛先コンピュータ420に送信されることが可能である。
【0056】
次に図7を参照すると、ハードウェア公開物理的クローン不能機能を使用する暗号技術のための本明細書で提示される実施形態に関するさらなる詳細が与えられる。詳細には、図7は、本明細書で提示される少なくともいくつかの実施形態によるハードウェア公開物理的クローン不能機能を使用してメッセージを解読するためのプロセス600を示す流れ図である。
【0057】
プロセス600は、動作610で始まり、ハードウェア公開物理的クローン不能機能を備えるハードウェア暗号ユニット110が製造されることが可能である。動作620に進むと、ハードウェア暗号ユニット110に関する一意の特性がパラメータ化されることが可能である。動作630に進むと、動作620でパラメータ化された一意の特性が、送信元コンピュータ410に送信されることが可能である。
【0058】
動作640に進むと、宛先コンピュータ420が、送信元コンピュータ410から、シミュレートされた出力を受信することが可能である。動作650に進むと、暗号文、つまり、暗号化されたメッセージが、宛先コンピュータ420によって送信元コンピュータ410から受信される。動作660に進むと、入力値のプール405からのすべての値が、ハードウェア暗号ユニット110に通されて、動作640で送信元コンピュータ410から受信された、シミュレートされた出力435を生成する特定の入力値が見出されることが可能である。受信された、シミュレートされた出力435を生成するランダムに選択された入力値425を入力値のプール405から識別することは、それまで送信元コンピュータ410だけに知られていたランダムに選択された入力値425の値を宛先コンピュータ420に供給することが可能である。これで、この値は、送信元コンピュータ410と宛先コンピュータ420の間の共有される秘密である。
【0059】
動作670に進むと、動作660で特定された入力値が、宛先コンピュータ420によって、動作650で受信された暗号文445を解読するのに使用されることが可能である。動作660で特定された入力値は、動作650で受信された、受信された暗号文445とXOR演算されて、回復された平文465がもたらされることが可能である。
【0060】
図8を参照すると、様々な実施形態を実施するための例示的なコンピューティングシステムが示されている。このコンピューティングシステムは、ホストコンピュータ120、送信元コンピュータ410、宛先コンピュータ420、あるいはハードウェア暗号ユニット110の製造および特徴付けの際に使用されるコンピュータのための実施形態をサポートすることができる。コンピューティングシステムは、コンピュータ10を含む。コンピュータ10は、プロセッサ11と、メモリ12と、1つまたは複数のドライブ13とを含むことが可能である。ドライブ13、およびドライブ13に関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール23、ならびにコンピュータ10のための他のデータのストレージを提供することができる。コンピュータ10は、従来のコンピュータシステム、組み込まれた制御コンピュータ、ラップトップ、またはサーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、車両情報システム、モバイル電話機、カスタマイズされたマシン、または他のハードウェアプラットフォームとして実施されることが可能である。プロセッサ11は、汎用プロセッサ、プロセッサコア、マルチプロセッサ、マルチコアプロセッサ、グラフィックスプロセッサ、DSP(デジタル信号処理)プロセッサ、ASIC(特定用途向け集積回路)内に実装されるカスタマイズされたコンピューティングデバイス、FPGA(フィールドプログラマブルゲートアレイ)内に実装されるカスタマイズされたコンピューティングデバイス、任意のタイプのプログラマブルロジック内に実装されるカスタマイズされたコンピューティングデバイス、状態マシン、再構成可能プロセッサ、他の任意の処理ユニット、あるいは以上の任意の組合せまたは多重化されたものであることが可能である。
【0061】
ドライブ13、他のストレージデバイス、または関連するコンピュータ可読媒体は、オペレーティングシステム21、アプリケーションプログラム22、プログラムモジュール23、およびデータベース24を格納することができる。コンピュータ10は、ユーザがコマンドおよびデータを入力することが可能なユーザ入力デバイス15を含むことが可能である。入力デバイスは、電子デジタイザ、マイクロフォン、キーボード、ポインティングデバイス、または以上の任意の組合せを含むことが可能である。ポインティングデバイスの例には、マウス、トラックボール、ライトペン、タッチスクリーン、またはタッチパッドが含まれることが可能である。コンピュータ10に対する他の入力デバイスには、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれることが可能である。入力デバイスは、システムバスに結合されたユーザ入力インタフェースを介してプロセッサ11に結合され得る。また、入力デバイスは、パラレルポート、ゲームポート、またはUSB(ユニバーサルシリアルバス)などの他のインタフェースまたはバス構造によって接続されることも可能である。コンピュータ10のようなコンピュータは、出力周辺インタフェース19、または類似したインタフェースを介して接続されることが可能な、スピーカなどの他の周辺出力デバイスを含むことも可能である。
【0062】
コンピュータ10は、ネットワークインタフェース16に接続された遠隔コンピュータなどの、1つまたは複数のコンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。遠隔コンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークPC,ピアデバイス、または他の一般的なネットワークノードであることが可能である。遠隔コンピュータは、コンピュータ10に関連して本明細書で説明される要素の多く、またはすべてを含むことが可能である。ネットワーキング環境は、WAN(ネットワーク)、LAN(ローカルエリアネットワーク)、イントラネット、インターネット、または以上の組合せを含むことが可能である。
【0063】
LANネットワーキング環境、またはWLAN(ワイヤレスLAN)ネットワーキング環境において使用される場合、コンピュータ10は、ネットワークインタフェース16またはネットワークアダプタを介してLANに接続されることが可能である。WANネットワーキング環境において使用される場合、コンピュータ10は、モデム、あるいはWANを介して通信を確立するための他の機構を含むことが可能である。WANは、インターネット、例示されるネットワーク18、他の様々なネットワーク、または以上の任意の組合せを含むことが可能である。コンピュータの間で通信リンク、リング、メッシュ、バス、クラウド、またはネットワークを確立する他の機構が使用されてもよいことを認識されたい。
【0064】
1つまたは複数の実施形態によれば、コンピュータ10は、プロセッサ11および/またはプログラムモジュール23が、本明細書で提示される実施形態によるハードウェア公開物理的クローン不能機能を使用して暗号動作を実行することができるように構成されることが可能である。コンピュータ10は、ドライブ13、または他のストレージデバイスに関連する1つまたは複数の物理的コンピュータ可読記憶媒体の1つまたは複数のインスタンスを含むことが可能である。システムバスは、プロセッサ11が、コンピュータ可読記憶媒体に/からコードおよび/またはデータを読み取ることを可能にすることができる。媒体は、半導体、磁気材料、光媒体、電気的ストレージ、電気化学的ストレージ、または他の任意のそのようなストレージ技術を含むが、以上には限定されない任意の適切な技術を使用して実施される記憶要素の形態の装置を表すことが可能である。媒体は、RAM技術、ROM技術、フラッシュ技術、あるいは他のタイプの揮発性メモリ技術または不揮発性メモリ技術のいずれとして特徴付けられるかにかかわらず、メモリ12に関連する構成要素を表すことが可能である。また、媒体は、ストレージドライブ13として実施されるか、別様に実施されるかにかかわらず、二次ストレージを表すことも可能である。ハードドライブ実施形態は、ソリッドステートと特徴付けられることが可能であり、あるいは磁気的に符号化された情報を格納する回転する媒体を含むことが可能である。
【0065】
記憶媒体は、1つまたは複数のプログラムモジュール23を含むことが可能である。プログラムモジュール23は、プロセッサ11にロードされて、実行されると、汎用コンピューティングシステムを、ハードウェア公開物理的クローン不能機能を使用する暗号動作を円滑にするようにカスタマイズされた特定用コンピューティングシステムに変換するソフトウェア命令を含むことが可能である。この説明の全体で詳述されるとおり、プログラムモジュール23は、コンピュータ10が、本明細書で説明される構成要素、論理フロー、および/またはデータ構造を使用して全体的なシステム内、または動作環境内に参加することが可能な様々なツールまたは技術を提供することが可能である。
【0066】
プロセッサ11は、任意の数の状態を個々に、または一緒になってとることが可能な任意の数のトランジスタまたは他の回路要素から構築されることが可能である。より具体的には、プロセッサ11は、状態マシンまたは有限状態マシンとして動作することが可能である。そのようなマシンは、プログラムモジュール23内に含まれる実行可能命令をロードすることによって、第2のマシン、つまり専用のマシンに変換されることが可能である。これらのコンピュータ実行可能命令は、プロセッサ12が状態の間でどのように遷移するかを規定して、その結果、プロセッサ11を構成するトランジスタまたは他の回路要素を、第1のマシンから第2のマシンに変換することによって、プロセッサ11を変換し、第2のマシンは、ハードウェア公開物理的クローン不能機能を使用する暗号動作をサポートするように特別に構成されることが可能である。いずれのマシンの状態も、1つまたは複数のユーザ入力デバイス15、ネットワークインタフェース16、他の周辺装置、他のインタフェース、あるいは1名または複数名のユーザまたは他の主体から入力を受け取ることによって変換されることが可能である。また、いずれのマシンも、プリンタ、スピーカ、ビデオディスプレイなどの様々な出力デバイス、または別様の出力デバイスの状態、または様々な物理的特性を変換することが可能である。
【0067】
また、プログラムモジュール23を符号化することが、記憶媒体の物理的構造を変換することも可能である。物理的構造の特定の変換は、この説明の様々な実施形態において、様々な要因に依存することが可能である。そのような要因の例には、一次ストレージとして特徴付けられるか、二次ストレージとして特徴付けられるかなどにかかわらず、記憶媒体を実装するのに使用される技術が含まれることが可能であるが、そのような技術には限定されない。例えば、記憶媒体が半導体ベースのメモリとして実装される場合、プログラムモジュール23は、ソフトウェアが半導体メモリ12の中に符号化される場合、メモリ12の状態を変換することが可能である。例えば、ソフトウェアは、半導体メモリ12を構成するトランジスタ、キャパシタ、または他のディスクリートの回路要素の状態を変換することが可能である。
【0068】
別の例として、記憶媒体は、ドライブ13などの磁気技術または光学技術を使用して実装されることが可能である。そのような実装形態において、プログラムモジュール23は、ソフトウェアが磁気媒体または光媒体の中に符号化される場合、磁気媒体または光媒体の物理的状態を変換することが可能である。これらの変換は、所与の磁気媒体内の特定のロケーションの磁気特性を変更することを含むことが可能である。また、これらの変換は、所与の光媒体内の特定のロケーションの物理的特徴または物理的特性を変更して、それらのロケーションの光学特性を変えることを含むことも可能である。物理的媒体の他の様々な変換が、この説明の趣旨および範囲を逸脱することなく、可能であることを認識されたい。
【0069】
本開示は、様々な態様の例示として意図されている、本開示で説明される特定の実施形態に関連して限定されるべきものではない。当業者には明白となるとおり、多くの修正や変形が、本開示の趣旨および範囲を逸脱することなく、行われ得る。本開示で列挙される方法および装置に加えて、本開示の範囲内の機能的に均等な方法および装置が、以上の説明から当業者には明白となろう。そのような修正や変形は、添付の特許請求の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等の全範囲に関連してのみ限定されるものとされる。本開示は、もちろん、異なることが可能である特定の方法、構成要素、要素、装置、またはシステムに限定されないことを理解されたい。また、本明細書で使用される用語は、特定の実施形態を説明することだけを目的とし、限定することは意図していないことも理解されたい。
【0070】
本明細書における実質的にいずれの複数形および/または単数形の用語に関連しても、当業者は、文脈および/または用途に適切であるように、複数形から単数形に、さらに/または単数形から複数形に変えることができる。様々な単数形/複数形の置換は、簡明のために本明細書で明確に記載されている可能性がある。
【0071】
一般に、本明細書において、特に添付の特許請求の範囲(例えば、添付の特許請求の範囲の本文)において使用される用語は、「開かれた」用語(例えば、「含み」という用語は、「〜を含み、ただし、〜には限定されず」と解釈されるべきであり、「有する」という用語は、「少なくとも〜を有する」と解釈されるべきであり、「含む」という用語は、「〜を含むが、〜には限定されない」と解釈されるべきであるといった具合に)であることが一般に意図されていることが当業者には理解されよう。
【0072】
述べられるクレーム記載要素の特定の数が意図される場合、そのような意図は、クレームに明示的に記載され、そのような記載がない場合、そのような意図は全く存在しないことが当業者にはさらに理解されよう。例えば、理解の助けとして、添付の特許請求の範囲は、クレーム記載要素を導入する「少なくとも1つの」および「1つまたは複数の」という導入の句の使用を含む可能性がある。しかし、そのような句の使用は、「1つまたは複数の」または「少なくとも1つの」という導入の句、および「或る」などの不定冠詞を同一のクレームが含む場合でも、「或る」という不定冠詞によるクレーム記載要素の導入が、導入されるそのようなクレーム記載要素を含む任意の特定のクレームを、1つだけのそのような記載要素を含む実施形態に限定することを暗示すると解釈されるべきではなく(例えば、「或る」は、「少なくとも1つの」または「1つまたは複数の」を意味すると解釈されるべきである)、同じことが、クレーム記載要素を導入するのに使用される定冠詞の使用についても当てはまる。さらに、導入されるクレーム記載要素の特定の数が明示的に記載される場合でも、そのような記載は、少なくとも記載される数を意味するものと解釈されるべきであることが当業者には認識されよう(例えば、他の修飾なしの「2つの記載要素」というだけの記載は、少なくとも2つの記載要素、または2つ以上の記載要素を意味する)。
【0073】
「A、B、およびCなどのうち少なくとも1つ」に類する慣用表現が使用される事例において、一般に、そのような構文は、当業者がその慣用表現を理解する意味で意図されている(例えば、「A、B、およびCのうち少なくとも1つを有するシステム」は、Aだけ有するシステム、Bだけ有するシステム、Cだけを有するシステム、AとBをともに有するシステム、AとCをともに有するシステム、BとCをともに有するシステム、および/またはAとBとCをともに有するシステムなどを含むが、以上には限定されない)。「A、B、またはCなどのうち少なくとも1つ」に類する慣用表現が使用される事例において、一般に、そのような構文は、当業者がその慣用表現を理解する意味で意図されている(例えば、「A、B、またはCのうち少なくとも1つを有するシステム」は、Aだけ有するシステム、Bだけ有するシステム、Cだけを有するシステム、AとBをともに有するシステム、AとCをともに有するシステム、BとCをともに有するシステム、および/またはAとBとCをともに有するシステムなどを含むが、以上には限定されない)。この説明においてであれ、特許請求の範囲においてであれ、または図面においてであれ、2つ以上の代替の項目を提示する実質的にいずれの選言的な語および/または句も、それらの項目のうち1つ、それらの項目のいずれか、または両方の項目を含む可能性を企図するものと理解されるべきことが、当業者にはさらに理解されよう。例えば、「AまたはB」という句は、「A」の可能性、または「B」の可能性、あるいは「AとB」の可能性を含むものと理解される。
【0074】
さらに、本開示の特徴または態様が、マーカッシュグループの用語で説明される場合、本開示は、その結果、そのマーカッシュグループの任意の個別のメンバ、またはメンバのサブグループの点においても説明されることが当業者には認識されよう。
【0075】
当業者には理解されるとおり、書面の説明を提供することに関してなどの、あらゆる目的で、本明細書で開示されるすべての範囲は、それらの範囲のあらゆる可能な部分範囲、および部分範囲の組合せも包含する。いずれのリストアップされる範囲も、少なくとも等しい1/2部分範囲、1/3部分範囲、1/4部分範囲、1/5部分範囲、1/10部分範囲などに細分された同一の範囲を十分に説明し、可能にするものと容易に認識され得る。非限定的な例として、本明細書で説明される各範囲は、下1/3、中1/3、および上1/3などに容易に細分され得る。やはり、当業者には理解されるとおり、「〜まで」、「少なくとも〜」、「〜より大きい」、「〜未満」などのすべての言葉は、記載される数を含み、さらに、前述したとおり、部分範囲にその後、細分され得る範囲を指す。最後に、当業者には理解されるとおり、範囲は、各個別のメンバを含む。このため、例えば、1〜3のセルを有するグループは、1つのセルを有するグループ、2つのセルを有するグループ、または3つのセルを有するグループを指す。同様に、1〜5のセルを有するグループは、1つのセルを有するグループ、2つのセルを有するグループ、3つのセルを有するグループ、4つのセルを有するグループ、または5つのセルを有するグループを指すといった具合である。

【特許請求の範囲】
【請求項1】
ハードウェア公開物理的クローン不能機能を使用して共有される秘密を交換するための方法であって、
暗号化されたデータを受信すること、
可能な初期値のプールからの少なくとも1つの初期値を、前記ハードウェア公開物理的クローン不能機能に関連付けられた入力レジスタにロードすること、
前記入力レジスタからの前記ロードされた値に対応する論理信号を、前記ハードウェア公開物理的クローン不能機能に入るように結合すること、
前記論理信号を、前記ハードウェア公開物理的クローン不能機能を通して伝搬させて、前記結合された論理信号から論理信号の第2のセットを生成すること、
前記ハードウェア公開物理的クローン不能機能からの論理信号の前記第2のセットをラッチして、出力レジスタに入れること、
前記ラッチされた出力レジスタを、前記受信された、暗号化されたデータと比較すること、および
前記受信された、暗号化されたデータと合致する、前記ラッチされた出力レジスタに応答して、前記ロードされた初期値を、前記共有される秘密として識別すること
を備える方法。
【請求項2】
前記初期値をロードすることに先立って、前記入力レジスタを或る知られている状態に初期設定することをさらに備える請求項1に記載の方法。
【請求項3】
前記ハードウェア公開物理的クローン不能機能は、複数の論理ゲートを備える請求項1に記載の方法。
【請求項4】
前記ハードウェア公開物理的クローン不能機能は、ナノワイヤを備える請求項1に記載の方法。
【請求項5】
前記ハードウェア公開物理的クローン不能機能は、フォトニック結晶を備える請求項1に記載の方法。
【請求項6】
暗号化されたメッセージを受信すること、および前記暗号化されたメッセージを前記共有される秘密と組み合わせることによって、前記暗号化されたメッセージを解読することをさらに備える請求項1に記載の方法。
【請求項7】
前記共有される秘密を使用して、前記入力をストリーム暗号に構成することをさらに備える請求項1に記載の方法。
【請求項8】
コンピュータによって実行されると、
入力値のプールから前記入力値を選択すること、
ハードウェア公開物理的クローン不能機能に関連する一意のパラメータを特徴付ける情報を受け取ること、
一意のパラメータを特徴付ける前記情報に基づいて、前記ハードウェア公開物理的クローン不能機能をシミュレートして、前記選択された入力値からシミュレートされた出力を生成すること、および
前記シミュレートされた出力を、前記選択された入力値が回復され得る前記ハードウェア公開物理的クローン不能機能に送信すること
によって、秘密の入力値を共有するように前記コンピュータを構成するコンピュータ実行可能命令が格納されているコンピュータ記憶媒体。
【請求項9】
前記選択された入力値、および前記回復される、選択された入力値は、前記コンピュータシステムと、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムとの間の共有される秘密を備える請求項8に記載のコンピュータ記憶媒体。
【請求項10】
前記コンピュータシステムに、前記共有される秘密を平文メッセージと組み合わせて、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムに送信されるべき暗号文メッセージを生成させることをさらに備える請求項9に記載のコンピュータ記憶媒体。
【請求項11】
前記共有される秘密は、ストリーム暗号への入力である請求項9に記載のコンピュータ記憶媒体。
【請求項12】
前記共有される秘密は、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムから受信されたメッセージを解読することをサポートする請求項9に記載のコンピュータ記憶媒体。
【請求項13】
前記共有される秘密は、前記コンピュータシステムと、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムの間のセキュアな鍵交換をサポートする請求項9に記載のコンピュータ記憶媒体。
【請求項14】
ハードウェア公開物理的クローン不能機能内の製造のばらつきと関係する、パラメータ化されることが可能な動作特性を有する前記ハードウェア公開物理的クローン不能機能と、
信号を前記ハードウェア公開物理的クローン不能機能にロードするための入力レジスタと、
前記ハードウェア公開物理的クローン不能機能から結果値をもたらすための出力レジスタと、
入力空間の要素を前記入力レジスタにロードすること、および前記出力レジスタにおいて所望される結果を識別することによって、前記入力空間を探索するように動作可能である探索モジュールと
を備える暗号システム。
【請求項15】
前記結果値が前記出力レジスタにおいていつラッチされるかを決定するためのタイミング機構をさらに備える請求項14に記載の暗号システム。
【請求項16】
前記探索モジュールと通信するように構成された、ホストコンピュータに対するインタフェースをさらに備える請求項14に記載の暗号システム。
【請求項17】
前記ハードウェア公開物理的クローン不能機能は、前記パラメータ化された特性から前記ハードウェア公開物理的クローン不能機能をシミュレートするために使用される時間より少ない時間で動作する請求項14に記載の暗号システム。
【請求項18】
前記ハードウェア公開物理的クローン不能機能は、複数の論理ゲートを備える請求項14に記載の暗号システム。
【請求項19】
前記ハードウェア公開物理的クローン不能機能は、ナノワイヤを備える請求項14に記載の暗号システム。
【請求項20】
前記ハードウェア公開物理的クローン不能機能は、フォトニック結晶を備える請求項14に記載の暗号システム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate


【公表番号】特表2012−529867(P2012−529867A)
【公表日】平成24年11月22日(2012.11.22)
【国際特許分類】
【出願番号】特願2012−515096(P2012−515096)
【出願日】平成22年6月9日(2010.6.9)
【国際出願番号】PCT/US2010/037918
【国際公開番号】WO2011/016900
【国際公開日】平成23年2月10日(2011.2.10)
【出願人】(509348786)エンパイア テクノロジー ディベロップメント エルエルシー (117)
【Fターム(参考)】