(57)【要約】  ハードウェア公開物理的クローン不能機能を使用するハードウェア暗号ユニットのための技術が、一般的に説明される。ソースコンピュータは、ハードウェア暗号ユニットのシミュレーションを使用してメッセージを暗号化することができる。次に、その暗号化されたメッセージが、宛先コンピュータに送られることが可能である。次に、宛先コンピュータが、ハードウェア暗号ユニットを使用して、そのメッセージを解読することができる。送信元コンピュータが、ハードウェア暗号ユニットのシミュレーションを使用して、入力値をシミュレーション出力に変換することができる。そのシミュレーション出力が、送信元コンピュータから宛先コンピュータに送信されることが可能であり、宛先コンピュータにおいて、ハードウェア暗号ユニットの出力が、シミュレートされた出力と合致するまで、可能なすべての入力値がハードウェア暗号ユニットに通されることが可能である。合致する出力を生成した入力値が、通信チャネルを介して平文で送信されることなしに、送信元コンピュータと宛先コンピュータとの間で共有される秘密となる。
2012529867.tif 000002
【特許請求の範囲】
【請求項１】
ハードウェア公開物理的クローン不能機能を使用して共有される秘密を交換するための方法であって、
暗号化されたデータを受信すること、
可能な初期値のプールからの少なくとも１つの初期値を、前記ハードウェア公開物理的クローン不能機能に関連付けられた入力レジスタにロードすること、
前記入力レジスタからの前記ロードされた値に対応する論理信号を、前記ハードウェア公開物理的クローン不能機能に入るように結合すること、
前記論理信号を、前記ハードウェア公開物理的クローン不能機能を通して伝搬させて、前記結合された論理信号から論理信号の第２のセットを生成すること、
前記ハードウェア公開物理的クローン不能機能からの論理信号の前記第２のセットをラッチして、出力レジスタに入れること、
前記ラッチされた出力レジスタを、前記受信された、暗号化されたデータと比較すること、および
前記受信された、暗号化されたデータと合致する、前記ラッチされた出力レジスタに応答して、前記ロードされた初期値を、前記共有される秘密として識別すること
を備える方法。
【請求項２】
前記初期値をロードすることに先立って、前記入力レジスタを或る知られている状態に初期設定することをさらに備える請求項１に記載の方法。
【請求項３】
前記ハードウェア公開物理的クローン不能機能は、複数の論理ゲートを備える請求項１に記載の方法。
【請求項４】
前記ハードウェア公開物理的クローン不能機能は、ナノワイヤを備える請求項１に記載の方法。
【請求項５】
前記ハードウェア公開物理的クローン不能機能は、フォトニック結晶を備える請求項１に記載の方法。
【請求項６】
暗号化されたメッセージを受信すること、および前記暗号化されたメッセージを前記共有される秘密と組み合わせることによって、前記暗号化されたメッセージを解読することをさらに備える請求項１に記載の方法。
【請求項７】
前記共有される秘密を使用して、前記入力をストリーム暗号に構成することをさらに備える請求項１に記載の方法。
【請求項８】
コンピュータによって実行されると、
入力値のプールから前記入力値を選択すること、
ハードウェア公開物理的クローン不能機能に関連する一意のパラメータを特徴付ける情報を受け取ること、
一意のパラメータを特徴付ける前記情報に基づいて、前記ハードウェア公開物理的クローン不能機能をシミュレートして、前記選択された入力値からシミュレートされた出力を生成すること、および
前記シミュレートされた出力を、前記選択された入力値が回復され得る前記ハードウェア公開物理的クローン不能機能に送信すること
によって、秘密の入力値を共有するように前記コンピュータを構成するコンピュータ実行可能命令が格納されているコンピュータ記憶媒体。
【請求項９】
前記選択された入力値、および前記回復される、選択された入力値は、前記コンピュータシステムと、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムとの間の共有される秘密を備える請求項８に記載のコンピュータ記憶媒体。
【請求項１０】
前記コンピュータシステムに、前記共有される秘密を平文メッセージと組み合わせて、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムに送信されるべき暗号文メッセージを生成させることをさらに備える請求項９に記載のコンピュータ記憶媒体。
【請求項１１】
前記共有される秘密は、ストリーム暗号への入力である請求項９に記載のコンピュータ記憶媒体。
【請求項１２】
前記共有される秘密は、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムから受信されたメッセージを解読することをサポートする請求項９に記載のコンピュータ記憶媒体。
【請求項１３】
前記共有される秘密は、前記コンピュータシステムと、前記ハードウェア公開物理的クローン不能機能に関連付けられたシステムの間のセキュアな鍵交換をサポートする請求項９に記載のコンピュータ記憶媒体。
【請求項１４】
ハードウェア公開物理的クローン不能機能内の製造のばらつきと関係する、パラメータ化されることが可能な動作特性を有する前記ハードウェア公開物理的クローン不能機能と、
信号を前記ハードウェア公開物理的クローン不能機能にロードするための入力レジスタと、
前記ハードウェア公開物理的クローン不能機能から結果値をもたらすための出力レジスタと、
入力空間の要素を前記入力レジスタにロードすること、および前記出力レジスタにおいて所望される結果を識別することによって、前記入力空間を探索するように動作可能である探索モジュールと
を備える暗号システム。
【請求項１５】
前記結果値が前記出力レジスタにおいていつラッチされるかを決定するためのタイミング機構をさらに備える請求項１４に記載の暗号システム。
【請求項１６】
前記探索モジュールと通信するように構成された、ホストコンピュータに対するインタフェースをさらに備える請求項１４に記載の暗号システム。
【請求項１７】
前記ハードウェア公開物理的クローン不能機能は、前記パラメータ化された特性から前記ハードウェア公開物理的クローン不能機能をシミュレートするために使用される時間より少ない時間で動作する請求項１４に記載の暗号システム。
【請求項１８】
前記ハードウェア公開物理的クローン不能機能は、複数の論理ゲートを備える請求項１４に記載の暗号システム。
【請求項１９】
前記ハードウェア公開物理的クローン不能機能は、ナノワイヤを備える請求項１４に記載の暗号システム。
【請求項２０】
前記ハードウェア公開物理的クローン不能機能は、フォトニック結晶を備える請求項１４に記載の暗号システム。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本出願は、２００９年６月１７日に出願し、参照により全体が本明細書に明確に組み込まれている「Ｈａｒｄｗａｒｅ  Ｂａｓｅｄ  Ｃｒｙｐｔｏｇｒａｐｈｙ」という名称の米国非仮特許出願第１２／４８６，４５１号の優先権を主張する。
【背景技術】
【０００２】
暗号法は、潜在的にセキュアでない通信チャネルを介する情報のセキュアな通信をサポートすることができる。通信チャネルを介して送信されるべきメッセージは、チャネルを介して送信されるのに先立って、鍵で暗号化されることが可能であり、その後、受信機において解読されることが可能である。送信されるメッセージは暗号化されるため、そのメッセージが、受信機に到達する前に通信チャネルから傍受された場合、読み取られる恐れは、より小さい。対称鍵暗号システムが、暗号通信の一例である。共有秘密鍵システムとしても知られる対称鍵システムにおいて、送信機と受信機はともに、同一の秘密鍵を有し、その鍵が、暗号化するのにも、解読するのにも使用される。また、暗号技術は、格納されたデータをセキュリティで保護するのに、さらに他の様々な情報セキュリティアプリケーションおよび通信セキュリティアプリケーションにおいて使用されることも可能である。
【発明の概要】
【０００３】
本開示は、一般に、ハードウェアの公開された物理的にクローン不能な機能（ハードウェア公開物理的クローン不能機能）を使用して共有される秘密を交換するためのいくつかの方法を説明する。いくつかの例示的な方法によれば、以下の動作の１つまたは複数が実行されることが可能である。暗号化されたデータが受信される。可能な初期値のプールからの少なくとも１つの初期値が、ハードウェア公開物理的クローン不能機能に関連付けられた入力レジスタにロードされる。入力レジスタからの、それらのロードされた値に対応する論理信号が、ハードウェア公開物理的クローン不能機能に入るように結合される。これらの論理信号が、ハードウェア公開物理的クローン不能機能を通して伝搬され、結合された論理信号から論理信号の第２のセットが生成されるようになる。ハードウェア公開物理的クローン不能機能からの論理信号の第２のセットが、出力レジスタに入るようにラッチされる。ラッチされた出力レジスタが、受信された、暗号化されたデータと比較される。ロードされた初期値が、受信された、暗号化されたデータと合致する、ラッチされた出力レジスタに応答して、共有される秘密として識別される。
【０００４】
本開示は、一般に、コンピュータによって実行されると、秘密入力値を共有するようにコンピュータを構成するコンピュータ実行可能命令が格納されている何らかのコンピュータ記憶媒体を説明する。一部の例示的なコンピュータ記憶媒体は、コンピュータによって実行されると、以下の動作の１つまたは複数を実行することによって秘密入力値を共有するようにコンピュータを構成するコンピュータ実行可能命令が格納されている。入力値は、入力値のプールから選択される。ハードウェア公開物理的クローン不能機能に関連する一意のパラメータを特徴付ける情報が受け取られる。ハードウェア公開物理的クローン不能機能が、一意のパラメータを特徴付ける情報に基づいてシミュレートされて、選択された入力値からシミュレートされた出力が生成される。シミュレートされた出力は、選択された入力値が回復され得るハードウェア公開物理的クローン不能機能に送信される。
【０００５】
本開示は、一般に、いくつかの暗号システムを説明する。いくつかの例示的な暗号システムは、以下、すなわち、ハードウェア公開物理的クローン不能機能、入力レジスタ、出力レジスタ、および／または探索モジュールの１つまたは複数を含むように構成される。ハードウェア公開物理的クローン不能機能は、パラメータ化されることが可能な動作特性を含む。これらのパラメータは、ハードウェア公開物理的クローン不能機能内の製造のばらつきと関係する。入力レジスタは、信号をハードウェア公開物理的クローン不能機能にロードする。出力レジスタは、ハードウェア公開物理的クローン不能機能から結果値をもたらす。探索モジュールは、入力空間の要素を入力レジスタにロードすること、および出力レジスタにおいて所望される結果を識別することによって、入力空間を探索するように動作可能である。
【０００６】
以上の概要は、単に例示的であり、限定することは全く意図していない。前述した例示的な態様、実施形態、および特徴に加えて、さらなる態様、実施形態、および特徴が、図面、および以下の詳細な説明を参照することによって明白となろう。
【０００７】
本開示の以上、およびその他の特徴は、添付の図面と併せて解釈される、以下の説明、および添付の特許請求の範囲から、より完全に明白となろう。これらの図面は、本開示によるいくつかの実施形態を示すに過ぎず、したがって、本開示の範囲を限定すると考えられるべきでないものと理解して、本開示が、添付の図面の使用を介してさらに具体的に、さらに詳細に説明される。
【図面の簡単な説明】
【０００８】
【図１】ホストコンピュータと、ハードウェア暗号ユニットとを有する暗号システムを示すブロック図である。
【図２】論理ゲートベースのハードウェア公開物理的クローン不能機能を使用するハードウェア暗号ユニットを示すブロック図である。
【図３】様々なゲート遅延の効果を示すように構成された３つの論理ゲートを示す回路図である。
【図４】ハードウェア公開物理的クローン不能機能の２つの層の間の様々なゲート遅延による信号遷移の回数を増加させることの効果を示すタイミングチャートである。
【図５】ハードウェアベースの暗号法のための動作環境を示すコンピュータネットワーク図である。
【図６】ハードウェア公開物理的クローン不能機能を使用する解読のためにメッセージを暗号化するためのプロセスを示す流れ図である。
【図７】ハードウェア公開物理的クローン不能機能を使用してメッセージを解読するためのプロセスを示す流れ図である。
【図８】本明細書で提示される実施形態に従ってすべてが構成された、例示的なコンピューティングシステムを示すブロック図である。
【発明を実施するための形態】
【０００９】
以下の詳細な説明において、本明細書の一部分を成す、添付の図面が参照される。添付の図面において、同様の符号は、文脈がそうでないことを規定しない限り、通常、同様の構成要素を識別する。詳細な説明、図面、および特許請求の範囲において説明される例示的な実施形態は、限定することは意図していない。本明細書で提示される主題の趣旨または範囲を逸脱することなく、他の実施形態が利用されることが可能であり、さらに他の変更が行われることが可能である。本明細書で一般に説明され、図に示される本開示は、本明細書ですべて明示的に企図される、多種多様な異なる構成において配置されること、置換されること、組み合わされること、分離されること、および設計されることが可能であることが容易に理解されよう。
【００１０】
本開示は、暗号ハードウェア公開物理的クローン不能機能と関係する方法、装置、システム、およびコンピュータプログラム製品に向けられる。従来の暗号技術は、一般に、数学アプローチおよび計算アプローチを用いるが、物理的法則および技術制約が使用されることも可能である。例えば、半導体ＩＣ（集積回路）内の、特に非常に深いミクロン以下の技術スケールにおける本来的な製造のばらつきが、一意の、クローン不能なシステムをもたらすように活用されることが可能である。そのようなデバイスまたはシステムのクローン不能な性質は、セキュアな暗号機能の基礎を提供することができる。
【００１１】
現在、および将来のＣＭＯＳ（相補型金属酸化膜半導体）技術、または他の半導体技術における本来的な製造のばらつきが、製造の各インスタンス内でゲートレベルの一意性を生じさせることが可能である。ゲート、および互いに接続する導体に関して正確なフィーチャサイズを有するＩＣを製造しようと試みる際、様々な技術的な課題が生じる。同様の課題が、ドーピングレベルに影響する可能性もある。これらの課題には、ウェーハ格子構造の不完全さ、一様でないドーパント分布、マスクの位置合わせ不良、化学研磨もしくは機械研磨が含まれることが可能である。このため、単一の設計のそれぞれの製造されたＩＣが、ゲートのタイミング、面積、電力、およびソフト誤り率感受性の点でわずかに異なるゲートを、一般に有することが可能である。これらの微妙な違いを顕在化するようにそのようなＩＣを動作させることが、一意の動作特性を有するＩＣをもたらすことが可能である。同様に、フォトニック結晶ベースの光学チップ間インタコネクトおよび光学チップ内インタコネクトが、製造のばらつきによる、それらのインタコネクトの一意の動作特性に関して活用されることが可能である。そのようなフォトニックインタコネクトは、信号およびクロックに関して高いスループット、および低い遅延分布をサポートすることができる。
【００１２】
ハードウェア暗号ユニットは、入力レジスタが、ゲートに入力を供給しており、さらに出力レジスタが、指定された期間の後に、ゲートからの結果をラッチする、多数の論理ゲートとして実施されることが可能である。ホストコンピュータが、一意に変形された出力を生成するように入力ベクトルおよびクロッキング周期を指定することができる。ハードウェア暗号ユニットの動作は、ハードウェア暗号ユニットの入力レジスタに入力ベクトルを発行することによって始まることが可能である。それらの入力ベクトルに関連する信号が、ハードウェア暗号ユニットの論理ゲートを通って伝搬された後、結果が、出力レジスタに入るようにラッチされることが可能である。ハードウェア暗号ユニットは、リアルタイムで、例えば、１クロックサイクル、または数クロックサイクルで結果を生成することができる。これらの結果は、各ゲートのタイミング特性に依存するので、攻撃者は、正確なタイミング精度で、ゲートレベルでハードウェア暗号ユニットをシミュレートまたはエミュレートしなければならないことになる。
【００１３】
ソースコンピュータは、ハードウェア暗号ユニットのシミュレーションを使用してメッセージを暗号化することができる。次に、暗号化されたメッセージが、宛先コンピュータに送られることが可能である。次に、宛先コンピュータが、ハードウェア暗号ユニットを使用して、そのメッセージを解読することができる。宛先コンピュータは、宛先コンピュータがハードウェア暗号ユニットに結び付けられるので、ハードウェア暗号ユニットのためのホストコンピュータと呼ばれることも可能である。送信元コンピュータは、ハードウェア暗号ユニットのシミュレーションを使用して、入力値の入力ベクトルをシミュレーション出力に変形することができる。このシミュレーション出力が、送信元コンピュータから宛先コンピュータに送信されることが可能であり、宛先コンピュータにおいて、ハードウェア暗号ユニットの出力が、シミュレートされた出力と合致するまで、可能なすべての入力値がハードウェア暗号ユニットに通されることが可能である。合致する出力を生成した入力値が、通信チャネルを介して平文で送信されることなしに、送信元コンピュータと宛先コンピュータとの間で共有される秘密となる。本明細書で提示されるハードウェア暗号ユニットおよび暗号技術は、対称鍵アプローチ、非対称鍵アプローチ、秘密鍵アプローチ、および公開鍵アプローチをサポートするように活用されることが可能である。
【００１４】
ハードウェア暗号ユニットにおけるゲートの数がＮによって与えられる場合、シミュレーションは、各入力ベクトルサイクルに関してＯ（Ｎ3）の複雑度を有し、複数のサイクルが使用されることが可能である。このため、１００，０００個のゲートの場合、攻撃者は、ハードウェア暗号ユニットをシミュレートし、非常に大きな入力値プールからの入力に対する各パスを生成するために、１０15回を超える動作が完了されることを要求することになる。これに対して、ハードウェア暗号ユニットは、１ナノ秒という速さで、さらに数ナノジュールのエネルギー消費で、暗号パスをもたらすことができる。
【００１５】
ハードウェア暗号ユニットは、１クロックサイクル、または数クロックサイクルで、指定された入力を一意の出力にマップすることができる。秘密交換のための単一の入力値に関してハードウェア暗号ユニットをシミュレートすることは可能であるが、秘密鍵交換を攻撃するように可能な入力値の十分な数に関する出力をシミュレートすることは、途方もなく遅い。このため、潜在的な攻撃者が、リアルタイム制約の下で完全なシミュレーションを行うことを要求するプロトコルは、高いレベルのセキュリティを有する暗号機能を提供することができる。通常の例の場合、１００万のコンピュータを有する仮想の攻撃者は、暗号を破るのに３０，０００年を超えた年数を要する可能性がある。強力で、柔軟性のあるハードウェアベースの暗号法をサポートすることができるのは、ハードウェア暗号ユニットによってもたらされる結果と、ハードウェア暗号ユニットの完全なシミュレーションとの間の、この複雑度のギャップである。
【００１６】
次に図１を参照すると、本明細書で提示される１つまたは複数の実施形態による、ホストコンピュータ１２０と、ハードウェア暗号ユニット１１０とを有する暗号システム１００が示される。ホストコンピュータ１２０は、ホストインタフェース１２５を介してハードウェア暗号ユニット１１０にアクセスすることが可能である。ハードウェア暗号ユニット１１０は、製造プロセスの各個別のインスタンスが、他のハードウェア暗号ユニット１１０から一意であるハードウェア暗号ユニット１１０をもたらすように製造され得る。このため、ハードウェア暗号ユニット１１０の物理的な所有は、関連する暗号機能を非常にセキュアに一意に処理するプロセッサをサポートすることができる。また、ハードウェア暗号ユニット１１０は、ハードウェア暗号ユニット１１０のソフトウェアシミュレーションなどの、ソフトウェアとして実施されることも可能である。
【００１７】
ホストインタフェース１２５は、任意のコンピュータインタフェースであることが可能である。例えば、ホストインタフェース１２５は、シリアル、パラレル、ユニバーサルシリアルバス（ＵＳＢ）、ペリフェラルコンポーネントインタコネクト（ＰＣＩ）、有線、無線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、無線周波数ＩＤ（ＲＦＩＤ）、光ファイバ、フリースペースオプティカル、あるいはハードウェア暗号ユニット１１０をホストコンピュータ１２０に結合するのに妥当な他の任意のインタフェースであることが可能である。ハードウェア暗号ユニット１１０内のインタフェースモジュール１３０が、ホストコンピュータ１２０に情報を通信するため、およびコンピュータ１２０から情報を通信するための、ハードウェア暗号ユニット１１０とホストインタフェース１２５の間のインタフェースを提供することができる。
【００１８】
ホストコンピュータ１２０が、ハードウェア暗号ユニット１１０に暗号要求を発行することが可能である。暗号要求は、ハードウェア暗号ユニット１１０のインタフェースモジュール１３０に要求を通信することによって、ハードウェア暗号ユニット１１０に与えられることが可能である。暗号要求の入力ベクトルが、インタフェースモジュール１３０から入力レジスタ１４０にクロック制御されて入れられる初期値として供給されることが可能である。入力クロック１４５が、入力レジスタ１４０に入れられる入力をクロック制御するのに使用されることが可能である。入力ベクトルは、クロック制御されて入力レジスタ１４０に入れられると、ハードウェア公開物理的クローン不能機能（ＨＰＰＵＦ）１５０に供給され得る。
【００１９】
ＨＰＰＵＦ１５０は、複数の論理ゲート、半導体信号パス、プラズモンパスのアレイ、フォトニック結晶構造、ナノワイヤゲート、他の任意のナノワイヤ構造、あるいは測定される構造の動作に影響を与える仕方で各製造インスタンスにおいてわずかにばらつきがある可能性がある任意の構造として製造され得る。製造インスタンス間の構造のばらつきは、製造プロセスの変動、意図的な製造上の外乱、またはそのような変動と外乱の両方に起因することが可能である。組合せ論理ＨＰＰＵＦ１５０実施形態において、製造のばらつきは、同一の設計に対応する集積回路の間でさえ、異なる遅延、異なる電力、またはその他の異なる物理的特性を有する各論理ゲートとして顕在化する可能性がある。ＨＰＰＵＦ１５０は、正確にシミュレートされ得るように完全に特徴付けられることが可能な物理システムである。しかし、ＨＰＰＵＦ１５０シミュレーションは、実際のＨＰＰＵＦ１５０ハードウェアの実行よりはるかに長い時間を要求する可能性がある。
【００２０】
ＨＰＰＵＦ１５０からのもたらされる出力値が、出力レジスタ１６０に到着することが可能である。出力クロック１６５が、ＨＰＰＵＦ１５０の出力値をラッチして、指定された時間に出力レジスタ１６０に入れることが可能である。出力クロック１６５は、入力クロック１４５からの特定の時間遅延または位相オフセットで生成され得る。タイマ、遅延、位相ロックループ、またはそれ以外のタイミング機構が、ＨＰＰＵＦ１５０を通した信号伝搬を開始した入力クロック１４５における遷移の後の指定された時間に、出力クロック１６５における遷移の生成をサポートすることが可能である。ラッチされて出力レジスタ１６０に入れられた出力値は、ホストインタフェース１２５を介してホストコンピュータ１２０がアクセスするように、インタフェースモジュール１３０に供給され得る。暗号要求は、ハードウェア暗号ユニット１１０が入力レジスタ１４０にロードする入力値、ならびに出力クロック１６５を使用して出力値をクロック制御して出力レジスタ１６０に入れるための指定された時間を指定することを含むことが可能である。
【００２１】
ＨＰＰＵＦ１５０の可能なすべての出力の完全なシミュレーションに必要とされる時間は、非常に長い時間を必要とする可能性がある。例えば、このシミュレーションは、今日の最も進んだ技術を使用して数年、数十年、または数世紀もの程度の時間を必要とする可能性がある。これに対して、ＨＰＰＵＦ１５０ハードウェア自体の出力の計算は、１ナノ秒未満しか必要としない可能性がある。また、出力のランダムに選択された小さいサブセットの確率論的検証が、数ミリ秒の程度で行われることも可能である。
【００２２】
ハードウェア暗号ユニット１１０は、サイドチャネル攻撃、物理的攻撃、およびソフトウェア脆弱性に対する本来的な耐性があると考えられることが可能である。ハードウェア暗号ユニット１１０は、製造するのが安価であることが可能であり、さらに超高速で、超低電力であることが可能である。ハードウェア暗号ユニット１１０は、通信リンク、無線通信、インターネット通信、ウェブトランザクション、ファイナンシャルトランザクション、電子メール、ソフトウェアダウンロード、パスワード暗号化、データストレージ、クレジットカード、ＩＤカード、パスポート、ＳＩＭ（加入者ＩＤモジュール）、スマートファイナンシャルノート、または他の様々なセキュアなアプリケーションなどの多数のアプリケーションにおいて使用され得る。通常の暗号技術とは異なり、ハードウェア暗号ユニット１１０は、証明されていない数学的課題に依存しないことが可能である。ハードウェア暗号ユニット１１０は、従来のアプローチと比べて、大幅に費用が安く、より高速であり、より電力を節約することが可能である。
【００２３】
１つのハードウェア暗号ユニット１１０が、１つまたは複数のＨＰＰＵＦ１５０を使用することが可能である。複数のＨＰＰＵＦ１５０の場合、入力ベクトルは、同一であることも、異なることも可能である。入力ベクトルは、種を入れられた乱数発生器から導き出されることが可能である。１つまたは複数のＨＰＰＵＦ１５０からの出力の複数の出力または複数の部分が、多様なシミュレーション計算難度の暗号機能をサポートするのに使用されることが可能である。例えば、ＨＰＰＵＦは、様々なサイズおよびシミュレーション要件を有することが可能である。ＨＰＰＵＦ１５０からの出力は、ハッシュ関数に適用されることが可能である。
【００２４】
時間効果、放射効果、エレクトロマイグレーション効果、およびその他の効果が、ＨＰＰＵＦ１５０が、ＨＰＰＵＦ１５０の初期の特性からドリフトすることを生じさせる可能性がある。このことが生じた場合、ハードウェア暗号ユニット１１０は、暗号ユニット１１０の公開の特性に基づくシミュレーションにもはや対応しない結果を生じさせる可能性がある。廃棄される代わりに、この暗号ユニット１１０は、この暗号ユニット１１０の新たな物理的特性に対応する公開のディスクリプタ情報で特徴付けし直されて、使用に戻されることが可能である。
【００２５】
暗号機能に関連付けられた入力データが、プラズモン構造、フォトニック結晶構造、無線周波数構造、または３次元構造などの高い帯域幅のインタコネクトを使用して、ハードウェア暗号ユニット１１０に供給され得る。暗号機能に関する入力ベクトルは、より多くの入力ビットをもたらすように暗号、シフトレジスタ、線形フィードバックシフトレジスタ、乱数発生器に種を入れる、つまり、初期設定することによって、あるいは他の任意の仕方で拡大されることが可能である。
【００２６】
ハードウェア暗号ユニット１１０は、様々なセキュアなトランザクション、無線または有線のメッセージまたはパケットの暗号化、電子メール暗号化、あるいは他の任意の目的で使用されることが可能である。例えば、カスタマ、または関連するサービスプロバイダが、相互にセキュアな通信をサポートするためにハードウェア暗号ユニット１１０を備えていることが可能である。
【００２７】
入力値が、入力値プールと呼ばれる大きい選択空間から選択されることが可能である。これらの入力値は、秘密鍵として使用されることが可能である。ＨＰＰＵＦ１５０ベースのハードウェア暗号ユニット１１０が、本明細書で説明される秘密鍵の交換をサポートすることが可能である。ＨＰＰＵＦ１５０の入力はまず、ハッシュ操作に通されることが可能である。また、ＨＰＰＵＦ１５０の出力が、ハッシュ関数に通されることも可能である。ＨＰＰＵＦ１５０の出力をハッシュすることは、攻撃者が、その出力の選択された部分を攻撃するのではなく、ＨＰＰＵＦ１５０のすべての出力を計算することを余儀なくさせることが可能である。また、ハッシュ関数が、複数のＨＰＰＵＦ１５０が逐次に適用される状況において、２つのＨＰＰＵＦ１５０の間で提供されることも可能である。
【００２８】
ハードウェア暗号ユニット１１０は、通信の両方の側が特殊なハードウェアを有し、さらにそのハードウェアを同時に、または順次に使用する、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット１１０は、最終の通信されたメッセージが、排他的論理和（ＸＯＲ）演算を使用して、並行に、または順次に送られた複数のメッセージを組み合わせることによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット１１０は、最終の通信されたメッセージが、解読されたメッセージと、公開で通信された別の通信されたメッセージとの関数を適用することによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。
【００２９】
ハードウェア暗号ユニット１１０は、最終の通信されたメッセージが、解読されたメッセージと、公開で通信された別の通信されたメッセージとをＸＯＲ演算することによって得られる、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。ハードウェア暗号ユニット１１０は、或る特定のパターンが位置する出力位置のアドレスまたはインデックスが、通信されるメッセージを符号化するのに使用される、ハードウェアベースの公開鍵プロトコルまたは秘密鍵プロトコルをサポートすることができる。
【００３０】
ハードウェア暗号ユニット１１０は、ＨＰＰＵＦ１５０出力がアナログ信号および／またはデジタル信号をもたらすことが可能なマルチモードであることが可能である。これらの信号は、ゲート遅延、ゲート遅延の差、スイッチング電力、漏れ電力、ならびに認証ユニット１１０から測定され得るその他の物理的特性または動作特性によって確立されることが可能である。ＨＰＰＵＦ１５０は、ＨＰＰＵＦ１５０内の再収束パス間の論理競合または信号競合をなくすためにマルチプレクサを使用することが可能である。
【００３１】
ＨＰＰＵＦ１５０は、構成設定がＨＰＰＵＦ１５０の出力に影響を与えるように、供給電圧、バイアス電圧、またはその他の動作設定などのパラメータで構成されることが可能である。そのような構成設定は、ＨＰＰＵＦ１５０のパラメータ化された特性の一部として、暗号鍵交換の一部として、または別個のセットアップ段階もしくはネゴシエーション段階の一部として交換されることが可能である。
【００３２】
ＨＰＰＵＦ１５０は、入力値プールの要素をＨＰＰＵＦ１５０に通して、所望される出力を識別することに関連する構造またはモジュールなどの、サポートする構造またはモジュールとともに、ハードウェア暗号ユニット１５０上に一緒に配置されることが可能である。そのような構造またはモジュールは、ハードウェア暗号ユニット１１０の外部に配置され、ハードウェア暗号ユニット１１０に結合されることも可能である。ハードウェア暗号ユニット１１０のアーキテクチャは、ＨＰＰＵＦ１５０を使用した出力値探索などのサポート機能のパイプライン化された実行をサポートするように構成されることが可能である。
【００３３】
ナノワイヤ構造が、ＨＰＰＵＦ１５０の基礎にあることが可能である。ナノワイヤ構造は、約１００ナノメートル以下の程度の断面を有する非常に小さいワイヤ構造を含むことが可能である。ナノワイヤ構造は、自己集合性であることが可能である。また、フォトニック結晶構造が、ＨＰＰＵＦ１５０の基礎であることも可能である。そのようなフォトニック結晶構造は、電磁波と光学的に相互作用することが可能なフォトニックナノ構造であることが可能である。
【００３４】
次に図２を参照すると、本明細書で提示されるいくつかの実施形態による論理ゲートハードウェア公開物理的クローン不能機能１５０を使用するハードウェア暗号ユニット１１０が、示されている。入力レジスタ１４０が、フリップフロップ２１０Ａ〜２１０Ｎのコレクションとして実施され得る。フリップフロップは、インタフェースモジュール１３０からの入力クロック１４５によってクロック制御され得る。入力レジスタ１４０を構成するフリップフロップ２１０Ａ〜２１０Ｎの出力は、ＮＡＮＤ（否定論理積）ゲート２２０Ａ〜２２０Ｎの第１の層への入力の役割をすることが可能である。ＮＡＮＤゲート２２０Ａ〜２２０Ｎの第１の層からの出力は、ＮＡＮＤゲート２３０Ａ〜２３０Ｎの第２の層への入力の役割をすることが可能である。ＮＡＮＤゲート２３０Ａ〜２３０Ｎの第２の層からの出力は、ＮＡＮＤゲート２４０Ａ〜２４０Ｎの層Ｈに続くＮＡＮＤゲートのさらなる層への入力の役割をすることが可能である。
【００３５】
ＮＡＮＤゲート２４０Ａ〜２４０Ｎの層Ｈからの出力は、出力レジスタ１６０への入力の役割をすることが可能である。出力レジスタ１６０は、フリップフロップ２５０Ａ〜２５０Ｎのアレイから構成されることが可能である。出力フリップフロップ２５０Ａ〜２５０Ｎは、出力クロック１６５によってクロック制御され得る。出力レジスタ１６０の出力は、ホストコンピュータ１２０への応答のためにインタフェースモジュール１３０にフィードバックされることが可能である。ＨＰＰＵＦ１５０を構成する論理ゲートの総数は、実施形態、および動作コンテキストにより、数十、数百、数千、数百万、またはそれより多いことが可能である。
【００３６】
ＨＰＰＵＦ１５０は、図示されるとおり、ＮＡＮＤゲートから形成されることが可能であるが、他のタイプの論理ゲートが使用されることも可能である。２入力、３入力、４入力、またはそれ以外の多入力などの、多入力論理ゲートが、ＨＰＰＵＦ１５０を構成する論理ゲートとして使用されることが可能であることを認識されたい。混合タイプの論理ゲート、および様々な数の入力を有するゲートが、単一のＨＰＰＵＦ１５０内で使用されることが可能である。例えば、ＯＲゲート、ＮＯＲ（否定論理和）ゲート、ＡＮＤゲート、ＮＡＮＤゲート、ＸＯＲ（排他的論理和）ゲート、またはその他のタイプの組合せ論理が、ＨＰＰＵＦ１５０内で使用されることが可能である。論理ゲートの層の間、例えば、ＮＡＮＤゲート２２０Ａ〜２２０Ｎの第１の層と、ＮＡＮＤゲート２３０Ａ〜２３０Ｎの第２の層の間の、論理ゲートの層の間の互いの接続は、１つの層から次の層への任意の多種多様な互いの接続であることが可能であり、したがって、各層の出力は、前の層からの様々な入力に適度に依存する。出力フリップフロップ２５０Ａ〜２５０Ｎの数は、一般に、入力フリップフロップ２１０Ａ〜２１０Ｎの数と同一であることが可能であるが、これら２つの数は、異なることも可能である。
【００３７】
ＨＰＰＵＦ１５０の幅、すなわちＷは、入力フリップフロップ２１０Ａ〜２１０Ｎの数と出力フリップフロップ２５０Ａ〜２５０Ｎの数のうち、いずれかの数、または両方の数と関係することが可能である。ＨＰＰＵＦ１５０内の層の数、すなわちＨは、ＨＰＰＵＦ１５０の高さと考えられることが可能である。積（Ｗ×２H）が大きいことが有利である可能性がある。Ｗ＝１０６であり、Ｈ＝８０であるものと想定すると、約１０30回の計算が、ＨＰＰＵＦ１５０の出力を再現するのに必要とされる可能性がある。このことは、１０億のコンピュータ上で１０億年を超えることに匹敵する可能性がある。Ｈを６０に低減することが、匹敵する計算を、およそ、１００万のコンピュータ上で１００万年に減少させる可能性がある。Ｈを約５０に低減することが、暗号ユニット１１０のセキュアな動作を一般にサポートする計算の複雑度をＨＰＰＵＦ１５０に提供することが可能である。Ｗ＝１０9であるものと想定すると、Ｈ＝４０もやはり、一般に、暗号ユニット１１０のセキュアな動作をサポートする。一般に、Ｈの値は、２〜１００の範囲内、またはそれより大きいことが可能である。
【００３８】
ＨＰＰＵＦ１５０の適用がＭ回、繰り返される場合、Ｗは、Ｍに対して直線的に低減されることが可能であるのに対して、Ｈは、Ｍに対して対数的に低減されることが可能である。このため、Ｍ＝１０9である場合、Ｗ＝１０6およびＨ＝２０という値が、一般に、暗号ユニット１１０のセキュアな動作をサポートすることができる。一般に、Ｗは、１０００、または数百にさえ低減されることが可能であるが、推量ベースの攻撃に対する脆弱性を回避することを試みるよう、Ｗを１００未満に低減しないことが望ましい可能性がある。Ｗを可能な限り大きく設定することは、ＨＰＰＵＦ１５０の出力をサンプリングすることに関する必要とされるタイミング精度を小さくする役割をすることが可能である。
【００３９】
ハードウェア暗号ユニット１１０（特に、ＨＰＰＵＦ１５０の論理ゲート）を形成するための半導体プロセス内の製造のばらつきが、それぞれの個別に製造されたハードウェア暗号ユニット１１０の一意性を許すことが可能である。例えば、各ゲート内の半導体構造またはトランジスタの構造サイズまたは電気的特性が、他のゲートに比べて各ゲートと関係する速度、遅延、またはタイミングをわずかに変える可能性がある。
【００４０】
例えば、ハードウェア暗号ユニット１１０の１つの製造されたインスタンスにおいて、ＮＡＮＤゲート２２０Ａが、ＮＡＮＤゲート２２０Ｂと比べて、より大きい遅延を有する可能性がある。別の製造されたインスタンスにおいて、ＮＡＮＤゲート２２０Ｂが、ＮＡＮＤゲート２２０Ａと比べて、より大きい遅延を有する可能性がある。これらの違いは、リソグラフィアラインメント特性、ドーピング特性、メタライゼーション特性、またはその他の半導体製造特性などの製造のばらつきと関係することが可能である。ＨＰＰＵＦ１５０内の論理ゲートを通る信号の遅延の変動は、１つのゲートが、そのゲートの出力を、別のそれぞれの論理ゲートより後に生成するので、各層における出力が複数の遷移を含むことを生じさせる可能性がある。例えば、ＮＡＮＤゲート２２０Ａが、ＮＡＮＤゲート２２０Ｂと比べて、より大きい遅延を有する場合、層１から層２への出力は、ＮＡＮＤゲート２２０Ｂが出力をもたらすと、遷移が生じ、その後、ＮＡＮＤゲート２２０Ａが出力を生成すると、わずかに後の時点でさらなる遷移が生じる。
【００４１】
ＨＰＰＵＦ１５０内のＨ層のそれぞれにおいて、信号の遷移の回数は、増加して、最終の層、つまり、層Ｈにおいて、出力が、最も速く出力に到着する信号から始まって、最終の論理出力における静止までの期間にわたるいくつかのセットの値に関して様々であるようになり得る。出力のばらつきの、この期間は、出力クロック１６５が出力のセットを明確にサンプリングすることが可能な時間枠を提供する。様々な論理ゲートの間のタイミングのばらつきは、認証ユニット１１０のそれぞれの製造されたインスタンスに一意であることが可能であるため、或る特定の時点で出力レジスタ１６０においてサンプリングされる特定の論理状態もやはり、ハードウェア暗号ユニット１１０に一意であることが可能である。ＨＰＰＵＦ１５０の結果として、この時間インスタンスをサンプリングすることは、ハードウェア暗号ユニット１１０を使用する暗号機能に関する一意の動作および出力をもたらすことができる。正確なサンプリングは困難である可能性があるため、応答は、その応答が、指定されたサンプリング時間の前後の変動についての小さい時間枠にわたってＨＰＰＵＦ１５０の出力状態と合致した場合、正しいものとして受け入れられることが可能である。
【００４２】
ハードウェア暗号ユニット１１０の或る特定のインスタンスが作成されると、上記のように特定されたタイミング特性が、ハードウェア暗号ユニット１１０のそのインスタンスに関する公開の情報として特徴付けられ、配布されることが可能である。その特定のハードウェア暗号ユニット１１０に関する公開の情報は、暗号化コンピュータによって、ハードウェア暗号ユニット１１０を使用する解読コンピュータにおいて探索され得る出力をシミュレートするのに使用されることが可能である。このシミュレーションは、計算するのに、例えば、数秒までかかる可能性があるが、ハードウェア暗号ユニット１１０は、出力を非常に迅速に、例えば、数ナノ秒内に計算することができる。可能な入力値の数が多いことにより、攻撃者が、可能なすべての入力値に関するＨＰＰＵＦ１５０出力を計算することを防止することが可能である。このため、共有される秘密鍵の適時の識別は、ハードウェア暗号ユニット１１０の１つの特定のインスタンスだけからしか可能でない可能性がある。このため、ＨＰＰＵＦ１５０を含むハードウェア暗号ユニット１１０は、セキュアな暗号システムの基礎の役割をすることができる。
【００４３】
次に図３を参照すると、回路図３００が、本明細書で提示される１つまたは複数の実施形態による様々なゲート遅延の効果を示すように配置された３つの論理ゲートを例示する。ＮＡＮＤゲート３１０およびＮＡＮＤゲート３２０が、ＮＡＮＤゲート３３０への入力として出力をもたらすことが可能である。ＮＡＮＤゲート３１０は、ＮＡＮＤゲート３２０の遅延より、わずかに遅い遅延を有することが可能である。このため、ＮＡＮＤゲート３１０の出力（信号Ａ）は、ＮＡＮＤゲート３２０の出力（信号Ｂ）に先立って、ＮＡＮＤゲート３３０の入力に到着することが可能である。ＮＡＮＤゲート３３０の出力（信号Ｃ）は、ＮＡＮＤゲート３３０が、入力として信号Ａおよび信号Ｂを受け取るので、信号Ａと信号Ｂの両方に依存することが可能である。
【００４４】
次に図４を参照すると、タイミングチャート３５０が、本明細書で提示される１つまたは複数の実施形態によるハードウェア公開物理的クローン不能機能の２つの層の間の様々なゲート遅延による信号遷移の回数を増加させることの効果を例示する。タイミングチャート３５０内の信号は、図３に関連して定義された信号である。ＮＡＮＤゲート３１０出力は、信号Ａであり、タイミングトレース３５２Ａとして示される。ＮＡＮＤゲート３２０出力は、信号Ｂであり、タイミングトレース３５２Ｂとして示される。ＮＡＮＤゲート３３０出力は、信号Ｃであり、タイミングトレース３５２Ｃとして示される。ＮＡＮＤゲート３１０出力（信号Ａ）の遷移は、時刻Ｔ１に生じ、その後、時刻Ｔ２にＮＡＮＤゲート３２０からの出力（信号Ｂ）の遷移が続く。信号Ｃに関するトレース３５２Ｃは、信号Ａおよび信号Ｂを入力として受け取るＮＡＮＤゲート３３０の出力を示す。信号Ｃに関するトレース３５２Ｃは、ＮＡＮＤゲート３３０の出力が、ＮＡＮＤゲート３３０の入力の各遷移でどのように遷移することが可能であるかを示す。このため、ＮＡＮＤゲート３１０およびＮＡＮＤゲート３２０からの２つの入力の間の遅延は、ＮＡＮＤゲート３３０の出力が、これらの入力のそれぞれにおいて１回だけの遷移しか存在しないものの、実際には２回、遷移することをもたらす可能性がある。２入力ゲートのスタックにおける各層で信号遷移の回数が潜在的に２倍になることで、層Ｈは、短い期間にわたって２Hもの回数の信号遷移を有する可能性がある。ハードウェア暗号ユニット１１０の出力は、遷移する値の、このシーケンスを、或る指定された時点でサンプリングすることによって獲得されることが可能である。信号Ｃに関するトレース３５２Ｃ内の遷移のわずかな遅延は、ＮＡＮＤゲート３３０を通る遅延と関係することが可能である。
【００４５】
遷移する出力値のシーケンスをサンプリングすることは、非常に正確なタイミング機構を必要とする可能性がある。この精度要件は、Ｈとともに指数関数的に増加する可能性がある。前述したとおり、Ｍ（ＨＰＰＵＦ１５０を適用することに関する反復カウント）を増加させること、およびＷ（ＨＰＰＵＦ１５０に関連する幅）を増加させることが、ＨＰＰＵＦ１５０の計算の複雑度を必ずしも低減することなしに、Ｈの値を低減することができる。Ｈ＝２０という値が、製造された論理ゲートに関して現在、妥当である可能性がある。Ｈ＝３０という値が、いくつかの半導体実施形態によるオンチップクロック制御の限度と考えられることが可能である。Ｈ＝７０以上の値は、原子時計において使用される技術などの高度のクロック制御技術を使用して可能であり得る。
【００４６】
次に図５を参照すると、コンピュータネットワーク図が、ハードウェアベースの暗号法のための動作環境４００を示す。メッセージが、宛先コンピュータ４２０に送信するために送信元コンピュータ４１０において暗号化されることが可能である。このメッセージは、宛先コンピュータ４２０において解読されることが可能である。入力値のプール４０５が、ハードウェア暗号ユニット１１０のＨＰＰＵＦ１５０（図１に示される）への入力の大きい選択空間を備えることが可能である。入力値のプール４０５に関する選択空間は、ハードウェア暗号ユニット１１０の入力レジスタ１４０によって規定されるサイズの可能なすべての値であることが可能である。また、この選択空間は、より大きい可能な空間の何らかのサブセットであることも可能である。入力値のプール４０５に関連する入力値は、暗号ユニット１１０の初期設定値と呼ばれることも可能である。また、これらの入力値は、秘密暗号鍵と考えられることも可能である。
【００４７】
宛先コンピュータ４２０は、ハードウェア暗号ユニット１１０に結合されることが可能である。ハードウェア暗号ユニット１１０に関連付けられたＨＰＰＵＦ１５０のパラメータ化された特性４５０が、宛先コンピュータ４２０から送信元コンピュータ４１０に送信されることが可能である。送信元コンピュータ４１０は、入力値のプール４０５から入力値４２５をランダムに選択することができる。ＨＰＰＵＦ１５０のシミュレーション４３０が、ＨＰＰＵＦ１５０のパラメータ化された特性４５０を使用して、送信元コンピュータ４１０において実行されることが可能である。ＨＰＰＵＦ１５０のシミュレーション４３０は、ランダムに選択された入力値４２５からシミュレーション出力４３５を生成することができる。シミュレーション出力４３５は、送信元コンピュータ４１０から宛先コンピュータ４２０に送信されることが可能である。宛先コンピュータ４２０は、すべてのプール値に対して実行されるハードウェア４５５を使用して、入力値のプール４０５の中のすべての値にハードウェア暗号ユニット１１０を適用して、シミュレーション結果４６０を生成するプール値を識別することができる。このため、宛先コンピュータ４２０は、送信元コンピュータ４１０だけに知られている、ランダムに選択された入力値４２５を回復することができる。これで、ランダムに選択された入力値４２５の秘密が、送信元コンピュータ４１０と宛先コンピュータ４２０との間の通信チャネルを介して、ランダムに選択された入力値４２５をオープンに送信することなしに、送信元コンピュータ４１０と宛先コンピュータ４２０の間で共有される。
【００４８】
ランダムに選択された入力値４２５が、送信元コンピュータ４１０および宛先コンピュータ４２０において知られたことで、ランダムに選択された入力値４２５は、情報を暗号化し、解読する暗号または暗号鍵として使用されることが可能である。送信元コンピュータ４１０が、ランダムに選択された入力値４２５を元の平文メッセージ４４０とＸＯＲ（排他的論理和）演算して、暗号文メッセージ４４５を生成することができる。暗号文メッセージ４４５は、送信元コンピュータ４１０から宛先コンピュータ４２０に送信されることが可能である。宛先コンピュータ４２０において、暗号文メッセージ４４５が、シミュレーション出力４６０を生成するプール値として回復された、ランダムに選択された入力値４２５と、ＸＯＲ演算されることが可能である。
【００４９】
宛先コンピュータ４２０において、シミュレーション出力４６０を生成するプール値を受信された暗号文４４５とＸＯＲ演算することは、宛先コンピュータ４２０において、回復された平文４６５を生成することを可能にする。ランダムに選択された入力値４２５は、秘密鍵、または共有される秘密と考えられることが可能である。また、システム４００は、セキュアな鍵配布または鍵共有を実行することによって、任意のタイプの鍵を共有するのに使用されることも可能である。平文４４０は、送信元コンピュータ４１０から宛先コンピュータ４２０にセキュアに送信されるべき鍵によって置き換えられることが可能である。いずれかのタイプの鍵が送信元コンピュータ４１０と宛先コンピュータ４２０との間で共有されると、その鍵は、宛先コンピュータ４２０から送信元コンピュータ４１０に情報を逆方向に送信するのに使用されることが可能である。また、鍵は、交換されると、ストリーム暗号への入力として、または乱数発生器の種として使用されることも可能である。そのような両方のアプローチが、任意の長さのメッセージをサポートすることができる。
【００５０】
暗号システム４００は、従来の公開鍵暗号プロトコルまたは秘密鍵暗号プロトコルを、本明細書で開示されるハードウェアベースの暗号技術と組み合わせる暗号アプローチをサポートすることができる。暗号システム４００は、暗号化されたメッセージが、ランダムに選択された入力値４２５を直接に使用する代わりに、入力ベクトルにハッシュ関数を適用することによって得られるように操作されることが可能である。暗号システム４００は、暗号化されたメッセージが、ＨＰＰＵＦ１５０に関連する出力または中間値のサブセットにハッシュ関数、または他のタイプの関数を適用することによって得られるように操作されることが可能である。
【００５１】
次に図６を参照すると、ハードウェア公開物理的クローン不能機能を使用する暗号技術のための本明細書で提示される実施形態に関するさらなる詳細が与えられる。詳細には、図６は、本明細書で提示される少なくともいくつかの実施形態によるハードウェア公開物理的クローン不能機能を使用する解読のためにメッセージを暗号化するためのプロセス５００を示す流れ図である。
【００５２】
本明細書で説明される動作は、操作上または製造上の動作のシーケンスとして、コンピュータによって実施される動作、またはコンピューティングシステム上で実行されているプログラムモジュールのシーケンスとして、あるいは互いに接続された、マシン論理回路、またはコンピューティングシステム内の回路モジュールとして実施されることを認識されたい。実施は、様々な実施形態のパフォーマンス要件、およびその他の要件に依存する選択の問題である。本明細書で説明される論理動作のいくつかは、状態動作、構造デバイス、行動、またはモジュールという様々な呼び方をされる。これらの動作、構造デバイス、行動、およびモジュールは、ソフトウェアで、ファームウェアで、専用デジタル論理で、さらに以上の組合せで実施されることが可能である。また、図に示され、本明細書で説明されるよりも多い、または少ない動作が実行されることが可能であることも認識されたい。また、これらの動作は、順次に、並行に、または本明細書で説明される順序とは異なる順序で実行されることも可能である。
【００５３】
プロセス５００は、動作５００で開始し、大きい入力値プール４０５から送信元コンピュータ４１０によって入力値が選択されることが可能である。選択は、ランダムに、擬似ランダムに、または他の任意の仕方で行われることが可能である。宛先コンピュータ４２０に共有されると、ランダムに選択された入力値４２５は、送信元コンピュータ４１０と宛先コンピュータ４２０の間の共有される秘密鍵と考えられることが可能である。動作５２０に進むと、ＨＰＰＵＦ１５０をシミュレートするためのパラメータ化された特性が、宛先コンピュータ４２０から送信元コンピュータ４１０において受信されることが可能である。これらのパラメータ化された特性に関連するＨＰＰＵＦ１５０は、宛先コンピュータ１１０に関連付けられたハードウェア暗号ユニット１１０内に含まれることが可能である。
【００５４】
動作５３０に進むと、動作５２０で受信された公開のパラメータ化された特性が、送信元コンピュータ４１０によって、宛先コンピュータ４２０に配置されたハードウェア暗号ユニット１１０をシミュレートするのに使用されることが可能である。ハードウェア暗号ユニット１１０のシミュレーションは、動作５１０で選択された、ランダムに選択された入力値４２５に関するシミュレートされた出力４３５を生成するのに使用されることが可能である。
【００５５】
動作５４０に進むと、シミュレートされた出力４３５が、送信元コンピュータ４１０から宛先コンピュータ４２０に送信されることが可能である。動作５５０に進むと、送信元コンピュータ４１０が、選択された入力値４２５を平文メッセージ４４０とＸＯＲ演算して、暗号文４４５を生成する。動作５６０に進むと、暗号文４４５が、送信元コンピュータ４１０から宛先コンピュータ４２０に送信されることが可能である。
【００５６】
次に図７を参照すると、ハードウェア公開物理的クローン不能機能を使用する暗号技術のための本明細書で提示される実施形態に関するさらなる詳細が与えられる。詳細には、図７は、本明細書で提示される少なくともいくつかの実施形態によるハードウェア公開物理的クローン不能機能を使用してメッセージを解読するためのプロセス６００を示す流れ図である。
【００５７】
プロセス６００は、動作６１０で始まり、ハードウェア公開物理的クローン不能機能を備えるハードウェア暗号ユニット１１０が製造されることが可能である。動作６２０に進むと、ハードウェア暗号ユニット１１０に関する一意の特性がパラメータ化されることが可能である。動作６３０に進むと、動作６２０でパラメータ化された一意の特性が、送信元コンピュータ４１０に送信されることが可能である。
【００５８】
動作６４０に進むと、宛先コンピュータ４２０が、送信元コンピュータ４１０から、シミュレートされた出力を受信することが可能である。動作６５０に進むと、暗号文、つまり、暗号化されたメッセージが、宛先コンピュータ４２０によって送信元コンピュータ４１０から受信される。動作６６０に進むと、入力値のプール４０５からのすべての値が、ハードウェア暗号ユニット１１０に通されて、動作６４０で送信元コンピュータ４１０から受信された、シミュレートされた出力４３５を生成する特定の入力値が見出されることが可能である。受信された、シミュレートされた出力４３５を生成するランダムに選択された入力値４２５を入力値のプール４０５から識別することは、それまで送信元コンピュータ４１０だけに知られていたランダムに選択された入力値４２５の値を宛先コンピュータ４２０に供給することが可能である。これで、この値は、送信元コンピュータ４１０と宛先コンピュータ４２０の間の共有される秘密である。
【００５９】
動作６７０に進むと、動作６６０で特定された入力値が、宛先コンピュータ４２０によって、動作６５０で受信された暗号文４４５を解読するのに使用されることが可能である。動作６６０で特定された入力値は、動作６５０で受信された、受信された暗号文４４５とＸＯＲ演算されて、回復された平文４６５がもたらされることが可能である。
【００６０】
図８を参照すると、様々な実施形態を実施するための例示的なコンピューティングシステムが示されている。このコンピューティングシステムは、ホストコンピュータ１２０、送信元コンピュータ４１０、宛先コンピュータ４２０、あるいはハードウェア暗号ユニット１１０の製造および特徴付けの際に使用されるコンピュータのための実施形態をサポートすることができる。コンピューティングシステムは、コンピュータ１０を含む。コンピュータ１０は、プロセッサ１１と、メモリ１２と、１つまたは複数のドライブ１３とを含むことが可能である。ドライブ１３、およびドライブ１３に関連するコンピュータ可読媒体は、コンピュータ可読命令、データ構造、プログラムモジュール２３、ならびにコンピュータ１０のための他のデータのストレージを提供することができる。コンピュータ１０は、従来のコンピュータシステム、組み込まれた制御コンピュータ、ラップトップ、またはサーバコンピュータ、モバイルデバイス、セットトップボックス、キオスク、車両情報システム、モバイル電話機、カスタマイズされたマシン、または他のハードウェアプラットフォームとして実施されることが可能である。プロセッサ１１は、汎用プロセッサ、プロセッサコア、マルチプロセッサ、マルチコアプロセッサ、グラフィックスプロセッサ、ＤＳＰ（デジタル信号処理）プロセッサ、ＡＳＩＣ（特定用途向け集積回路）内に実装されるカスタマイズされたコンピューティングデバイス、ＦＰＧＡ（フィールドプログラマブルゲートアレイ）内に実装されるカスタマイズされたコンピューティングデバイス、任意のタイプのプログラマブルロジック内に実装されるカスタマイズされたコンピューティングデバイス、状態マシン、再構成可能プロセッサ、他の任意の処理ユニット、あるいは以上の任意の組合せまたは多重化されたものであることが可能である。
【００６１】
ドライブ１３、他のストレージデバイス、または関連するコンピュータ可読媒体は、オペレーティングシステム２１、アプリケーションプログラム２２、プログラムモジュール２３、およびデータベース２４を格納することができる。コンピュータ１０は、ユーザがコマンドおよびデータを入力することが可能なユーザ入力デバイス１５を含むことが可能である。入力デバイスは、電子デジタイザ、マイクロフォン、キーボード、ポインティングデバイス、または以上の任意の組合せを含むことが可能である。ポインティングデバイスの例には、マウス、トラックボール、ライトペン、タッチスクリーン、またはタッチパッドが含まれることが可能である。コンピュータ１０に対する他の入力デバイスには、ジョイスティック、ゲームパッド、サテライトディッシュ、スキャナなどが含まれることが可能である。入力デバイスは、システムバスに結合されたユーザ入力インタフェースを介してプロセッサ１１に結合され得る。また、入力デバイスは、パラレルポート、ゲームポート、またはＵＳＢ（ユニバーサルシリアルバス）などの他のインタフェースまたはバス構造によって接続されることも可能である。コンピュータ１０のようなコンピュータは、出力周辺インタフェース１９、または類似したインタフェースを介して接続されることが可能な、スピーカなどの他の周辺出力デバイスを含むことも可能である。
【００６２】
コンピュータ１０は、ネットワークインタフェース１６に接続された遠隔コンピュータなどの、１つまたは複数のコンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。遠隔コンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ，ピアデバイス、または他の一般的なネットワークノードであることが可能である。遠隔コンピュータは、コンピュータ１０に関連して本明細書で説明される要素の多く、またはすべてを含むことが可能である。ネットワーキング環境は、ＷＡＮ（ネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、イントラネット、インターネット、または以上の組合せを含むことが可能である。
【００６３】
ＬＡＮネットワーキング環境、またはＷＬＡＮ（ワイヤレスＬＡＮ）ネットワーキング環境において使用される場合、コンピュータ１０は、ネットワークインタフェース１６またはネットワークアダプタを介してＬＡＮに接続されることが可能である。ＷＡＮネットワーキング環境において使用される場合、コンピュータ１０は、モデム、あるいはＷＡＮを介して通信を確立するための他の機構を含むことが可能である。ＷＡＮは、インターネット、例示されるネットワーク１８、他の様々なネットワーク、または以上の任意の組合せを含むことが可能である。コンピュータの間で通信リンク、リング、メッシュ、バス、クラウド、またはネットワークを確立する他の機構が使用されてもよいことを認識されたい。
【００６４】
１つまたは複数の実施形態によれば、コンピュータ１０は、プロセッサ１１および／またはプログラムモジュール２３が、本明細書で提示される実施形態によるハードウェア公開物理的クローン不能機能を使用して暗号動作を実行することができるように構成されることが可能である。コンピュータ１０は、ドライブ１３、または他のストレージデバイスに関連する１つまたは複数の物理的コンピュータ可読記憶媒体の１つまたは複数のインスタンスを含むことが可能である。システムバスは、プロセッサ１１が、コンピュータ可読記憶媒体に／からコードおよび／またはデータを読み取ることを可能にすることができる。媒体は、半導体、磁気材料、光媒体、電気的ストレージ、電気化学的ストレージ、または他の任意のそのようなストレージ技術を含むが、以上には限定されない任意の適切な技術を使用して実施される記憶要素の形態の装置を表すことが可能である。媒体は、ＲＡＭ技術、ＲＯＭ技術、フラッシュ技術、あるいは他のタイプの揮発性メモリ技術または不揮発性メモリ技術のいずれとして特徴付けられるかにかかわらず、メモリ１２に関連する構成要素を表すことが可能である。また、媒体は、ストレージドライブ１３として実施されるか、別様に実施されるかにかかわらず、二次ストレージを表すことも可能である。ハードドライブ実施形態は、ソリッドステートと特徴付けられることが可能であり、あるいは磁気的に符号化された情報を格納する回転する媒体を含むことが可能である。
【００６５】
記憶媒体は、１つまたは複数のプログラムモジュール２３を含むことが可能である。プログラムモジュール２３は、プロセッサ１１にロードされて、実行されると、汎用コンピューティングシステムを、ハードウェア公開物理的クローン不能機能を使用する暗号動作を円滑にするようにカスタマイズされた特定用コンピューティングシステムに変換するソフトウェア命令を含むことが可能である。この説明の全体で詳述されるとおり、プログラムモジュール２３は、コンピュータ１０が、本明細書で説明される構成要素、論理フロー、および／またはデータ構造を使用して全体的なシステム内、または動作環境内に参加することが可能な様々なツールまたは技術を提供することが可能である。
【００６６】
プロセッサ１１は、任意の数の状態を個々に、または一緒になってとることが可能な任意の数のトランジスタまたは他の回路要素から構築されることが可能である。より具体的には、プロセッサ１１は、状態マシンまたは有限状態マシンとして動作することが可能である。そのようなマシンは、プログラムモジュール２３内に含まれる実行可能命令をロードすることによって、第２のマシン、つまり専用のマシンに変換されることが可能である。これらのコンピュータ実行可能命令は、プロセッサ１２が状態の間でどのように遷移するかを規定して、その結果、プロセッサ１１を構成するトランジスタまたは他の回路要素を、第１のマシンから第２のマシンに変換することによって、プロセッサ１１を変換し、第２のマシンは、ハードウェア公開物理的クローン不能機能を使用する暗号動作をサポートするように特別に構成されることが可能である。いずれのマシンの状態も、１つまたは複数のユーザ入力デバイス１５、ネットワークインタフェース１６、他の周辺装置、他のインタフェース、あるいは１名または複数名のユーザまたは他の主体から入力を受け取ることによって変換されることが可能である。また、いずれのマシンも、プリンタ、スピーカ、ビデオディスプレイなどの様々な出力デバイス、または別様の出力デバイスの状態、または様々な物理的特性を変換することが可能である。
【００６７】
また、プログラムモジュール２３を符号化することが、記憶媒体の物理的構造を変換することも可能である。物理的構造の特定の変換は、この説明の様々な実施形態において、様々な要因に依存することが可能である。そのような要因の例には、一次ストレージとして特徴付けられるか、二次ストレージとして特徴付けられるかなどにかかわらず、記憶媒体を実装するのに使用される技術が含まれることが可能であるが、そのような技術には限定されない。例えば、記憶媒体が半導体ベースのメモリとして実装される場合、プログラムモジュール２３は、ソフトウェアが半導体メモリ１２の中に符号化される場合、メモリ１２の状態を変換することが可能である。例えば、ソフトウェアは、半導体メモリ１２を構成するトランジスタ、キャパシタ、または他のディスクリートの回路要素の状態を変換することが可能である。
【００６８】
別の例として、記憶媒体は、ドライブ１３などの磁気技術または光学技術を使用して実装されることが可能である。そのような実装形態において、プログラムモジュール２３は、ソフトウェアが磁気媒体または光媒体の中に符号化される場合、磁気媒体または光媒体の物理的状態を変換することが可能である。これらの変換は、所与の磁気媒体内の特定のロケーションの磁気特性を変更することを含むことが可能である。また、これらの変換は、所与の光媒体内の特定のロケーションの物理的特徴または物理的特性を変更して、それらのロケーションの光学特性を変えることを含むことも可能である。物理的媒体の他の様々な変換が、この説明の趣旨および範囲を逸脱することなく、可能であることを認識されたい。
【００６９】
本開示は、様々な態様の例示として意図されている、本開示で説明される特定の実施形態に関連して限定されるべきものではない。当業者には明白となるとおり、多くの修正や変形が、本開示の趣旨および範囲を逸脱することなく、行われ得る。本開示で列挙される方法および装置に加えて、本開示の範囲内の機能的に均等な方法および装置が、以上の説明から当業者には明白となろう。そのような修正や変形は、添付の特許請求の範囲に含まれることが意図されている。本開示は、添付の特許請求の範囲、ならびにそのような特許請求の範囲に権利が与えられる均等の全範囲に関連してのみ限定されるものとされる。本開示は、もちろん、異なることが可能である特定の方法、構成要素、要素、装置、またはシステムに限定されないことを理解されたい。また、本明細書で使用される用語は、特定の実施形態を説明することだけを目的とし、限定することは意図していないことも理解されたい。
【００７０】
本明細書における実質的にいずれの複数形および／または単数形の用語に関連しても、当業者は、文脈および／または用途に適切であるように、複数形から単数形に、さらに／または単数形から複数形に変えることができる。様々な単数形／複数形の置換は、簡明のために本明細書で明確に記載されている可能性がある。
【００７１】
一般に、本明細書において、特に添付の特許請求の範囲（例えば、添付の特許請求の範囲の本文）において使用される用語は、「開かれた」用語（例えば、「含み」という用語は、「〜を含み、ただし、〜には限定されず」と解釈されるべきであり、「有する」という用語は、「少なくとも〜を有する」と解釈されるべきであり、「含む」という用語は、「〜を含むが、〜には限定されない」と解釈されるべきであるといった具合に）であることが一般に意図されていることが当業者には理解されよう。
【００７２】
述べられるクレーム記載要素の特定の数が意図される場合、そのような意図は、クレームに明示的に記載され、そのような記載がない場合、そのような意図は全く存在しないことが当業者にはさらに理解されよう。例えば、理解の助けとして、添付の特許請求の範囲は、クレーム記載要素を導入する「少なくとも１つの」および「１つまたは複数の」という導入の句の使用を含む可能性がある。しかし、そのような句の使用は、「１つまたは複数の」または「少なくとも１つの」という導入の句、および「或る」などの不定冠詞を同一のクレームが含む場合でも、「或る」という不定冠詞によるクレーム記載要素の導入が、導入されるそのようなクレーム記載要素を含む任意の特定のクレームを、１つだけのそのような記載要素を含む実施形態に限定することを暗示すると解釈されるべきではなく（例えば、「或る」は、「少なくとも１つの」または「１つまたは複数の」を意味すると解釈されるべきである）、同じことが、クレーム記載要素を導入するのに使用される定冠詞の使用についても当てはまる。さらに、導入されるクレーム記載要素の特定の数が明示的に記載される場合でも、そのような記載は、少なくとも記載される数を意味するものと解釈されるべきであることが当業者には認識されよう（例えば、他の修飾なしの「２つの記載要素」というだけの記載は、少なくとも２つの記載要素、または２つ以上の記載要素を意味する）。
【００７３】
「Ａ、Ｂ、およびＣなどのうち少なくとも１つ」に類する慣用表現が使用される事例において、一般に、そのような構文は、当業者がその慣用表現を理解する意味で意図されている（例えば、「Ａ、Ｂ、およびＣのうち少なくとも１つを有するシステム」は、Ａだけ有するシステム、Ｂだけ有するシステム、Ｃだけを有するシステム、ＡとＢをともに有するシステム、ＡとＣをともに有するシステム、ＢとＣをともに有するシステム、および／またはＡとＢとＣをともに有するシステムなどを含むが、以上には限定されない）。「Ａ、Ｂ、またはＣなどのうち少なくとも１つ」に類する慣用表現が使用される事例において、一般に、そのような構文は、当業者がその慣用表現を理解する意味で意図されている（例えば、「Ａ、Ｂ、またはＣのうち少なくとも１つを有するシステム」は、Ａだけ有するシステム、Ｂだけ有するシステム、Ｃだけを有するシステム、ＡとＢをともに有するシステム、ＡとＣをともに有するシステム、ＢとＣをともに有するシステム、および／またはＡとＢとＣをともに有するシステムなどを含むが、以上には限定されない）。この説明においてであれ、特許請求の範囲においてであれ、または図面においてであれ、２つ以上の代替の項目を提示する実質的にいずれの選言的な語および／または句も、それらの項目のうち１つ、それらの項目のいずれか、または両方の項目を含む可能性を企図するものと理解されるべきことが、当業者にはさらに理解されよう。例えば、「ＡまたはＢ」という句は、「Ａ」の可能性、または「Ｂ」の可能性、あるいは「ＡとＢ」の可能性を含むものと理解される。
【００７４】
さらに、本開示の特徴または態様が、マーカッシュグループの用語で説明される場合、本開示は、その結果、そのマーカッシュグループの任意の個別のメンバ、またはメンバのサブグループの点においても説明されることが当業者には認識されよう。
【００７５】
当業者には理解されるとおり、書面の説明を提供することに関してなどの、あらゆる目的で、本明細書で開示されるすべての範囲は、それらの範囲のあらゆる可能な部分範囲、および部分範囲の組合せも包含する。いずれのリストアップされる範囲も、少なくとも等しい１／２部分範囲、１／３部分範囲、１／４部分範囲、１／５部分範囲、１／１０部分範囲などに細分された同一の範囲を十分に説明し、可能にするものと容易に認識され得る。非限定的な例として、本明細書で説明される各範囲は、下１／３、中１／３、および上１／３などに容易に細分され得る。やはり、当業者には理解されるとおり、「〜まで」、「少なくとも〜」、「〜より大きい」、「〜未満」などのすべての言葉は、記載される数を含み、さらに、前述したとおり、部分範囲にその後、細分され得る範囲を指す。最後に、当業者には理解されるとおり、範囲は、各個別のメンバを含む。このため、例えば、１〜３のセルを有するグループは、１つのセルを有するグループ、２つのセルを有するグループ、または３つのセルを有するグループを指す。同様に、１〜５のセルを有するグループは、１つのセルを有するグループ、２つのセルを有するグループ、３つのセルを有するグループ、４つのセルを有するグループ、または５つのセルを有するグループを指すといった具合である。
【図１】
2012529867.tif 000003
【図２】
2012529867.tif 000004
【図３】
2012529867.tif 000005
【図４】
2012529867.tif 000006
【図５】
2012529867.tif 000007
【図６】
2012529867.tif 000008
【図７】
2012529867.tif 000009
【図８】
2012529867.tif 000010
【国際調査報告】
2012529867.tif 000011
2012529867.tif 000012
2012529867.tif 000013