(57)【要約】      （修正有）【課題】必要とされる物理的クローン不能関数（ＰＵＦ）セルの数を低減し、最大のエントロピーを維持することができる、遅延ベースのＰＵＦデバイスを提供する。【解決手段】ＰＵＦベースの暗号法デバイス１００は、プロセスに関連する変動のみを有する２つの同一に設計された回路（ＰＵＦセル）を含む。ＰＵＦデバイスは、複数のＰＵＦセルを比較または競合化（ｒａｃｉｎｇ）させることによって、エントロピーの出力ビットを生成するための回路を含む。また、勝利または敗北の同じ履歴を有するＰＵＦセルが１つの競合において比較されている場合、敵対者は先の競合結果に基づいて現在の競合の結果を予測することができない。従って、先行するラウンドの競合に基づいて複数ラウンドの競合を生成するときに、最大のエントロピーが抽出される間に、１つのＰＵＦセルを複数のペア毎の比較で使用することができる。【選択図】図１
2019097167.tif 000002
【特許請求の範囲】
【請求項１】
物理的クローン不能関数（ＰＵＦ）符号化においてエントロピーを生成する方法であって、
第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを少なくとも１つのプロセッサによって割り当てることと、
前記第１のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成し、前記第１のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む前記第１のラウンドの結果を決定することと、
前記第１のラウンドの後に続く第２のラウンドにおいて、前記第１のラウンドの前記結果に基づいて、前記複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当てることと、
前記第２のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、前記第２のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む前記第２のラウンドの結果を決定することと、
前記第１のラウンドの前記結果および前記第２のラウンドの前記結果に基づいて、ＰＵＦ出力を生成することと、を含む、方法。
【請求項２】
前記ＰＵＦ出力を使用して秘密を難読化することをさらに含む、請求項１に記載の方法。
【請求項３】
前記複数のＰＵＦセルの各々のＰＵＦセルが、製造プロセスの変動に起因する差異を有する複数の同一に設計された回路のうちの１つを含む、請求項１に記載の方法。
【請求項４】
前記第１のラウンドの後に続く第２のラウンドにおいて、前記第１のラウンドの前記結果に基づいて前記複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当てることが、
前記第１のペアリングにおけるＰＵＦセルの各々のペアのそれぞれの勝者のペアリングを割り当てることと、
前記第１のペアリングにおいて勝者ではなかった残りのＰＵＦセルのペアリングを割り当てることと、を含む、請求項１に記載の方法。
【請求項５】
前記第２のラウンドに続く第３のラウンドにおいて、前記第１のラウンドおよび前記第２のラウンドの前記結果に基づいて、前記複数のＰＵＦセルのそれぞれものの第３のペアリングを割り当てることであって、前記複数のＰＵＦセルの各々のＰＵＦセルが、等しい数のラウンドの前記勝者であった前記複数のＰＵＦセルのうちの１つのＰＵＦセルとペアリングされる、割り当てることと、
前記第３のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第３の出力を生成し、前記第３のペアリングにおけるＰＵＦセルの各々のペアの勝者を決定することと、をさらに含む、請求項１に記載の方法。
【請求項６】
先のラウンドにおける第１のペアの第１の勝者が、前記先のラウンドにおける第２のペアの第２の勝者とペアリングされる、請求項１に記載の方法。
【請求項７】
先のラウンドの前記結果に基づいて、追加のラウンドのＰＵＦセルペアリングを、
先のラウンドにおいてペアリングされるＰＵＦセルを、複数のグループにグループ化することと、
第１のグループ内の各々のＰＵＦセルを、第２のグループ内のそれぞれのＰＵＦセルとペアリングするここと、によって割り当てることをさらに含む、請求項１に記載の方法。
【請求項８】
各々のラウンドにおけるＰＵＦセルの各々のペアの前記勝者を表すビットを生成することをさらに含み、ＰＵＦセルのペアの勝者が、前記ペア内の各々のＰＵＦセルのそれぞれの出力のバイナリ比較の出力と関連付けられ、さらに前記第１のラウンドおよび前記第２のラウンドのペアリングが、ＰＵＦセルの数に等しいエントロピーのビット数を生成する、請求項１に記載の方法。
【請求項９】
先のラウンドの前記結果に基づいて追加のラウンドのペアリングを割り当てることをさらに含み、ラウンドの総数が、前記複数のＰＵＦセル内のＰＵＦセルの数の２進対数を超えないように前記少なくとも１つのプロセッサによって制限される、請求項１に記載の方法。
【請求項１０】
前記方法が、
前記少なくとも１つのプロセッサによって、前記第２のラウンドの前に、前記複数のＰＵＦセルの各々からの前記それぞれの第１の出力にエラー訂正符号を適用することをさらに含む、請求項１に記載の方法。
【請求項１１】
物理的クローン不能関数（ＰＵＦ）符号化においてエントロピーを生成するシステムであって、
複数のＰＵＦセルと、
少なくとも１つのプロセッサであって、
第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを割り当て、
前記第１のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成し、前記第１のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む前記第１のラウンドの結果を決定し、
前記第１のラウンドの後に続く第２のラウンドにおいて、前記第１のラウンドの前記結果に基づいて前記複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当て、
前記第２のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、前記第２のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む前記第２のラウンドの結果を決定し、
前記第１のラウンドの前記結果と前記第２のラウンドの前記結果に基づいてＰＵＦ出力を生成する、ように構成されている、少なくとも１つのプロセッサと、を備える、システム。
【請求項１２】
前記少なくとも１つのプロセッサが、前記ＰＵＦ出力を使用して秘密を難読化するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１３】
前記複数のＰＵＦセルの各々のＰＵＦセルが、製造プロセスの変動に起因する差異を有する複数の同一に設計された回路のうちの１つを含む、請求項１１に記載のシステム。
【請求項１４】
前記第１のラウンドに続く第２のラウンドにおいて、前記第１のラウンドの前記結果に基づいて前記複数のＰＵＦセルのそれぞれものの第２のペアリングを割り当てることが、
前記第１のペアリングにおけるＰＵＦセルの各々のペアのそれぞれの勝者のペアリングを割り当てることと、
前記第１のペアリングで勝者ではなかった残りのＰＵＦセルのペアリングを割り当てることと、を含む、請求項１１記載のシステム。
【請求項１５】
前記少なくとも１つのプロセッサが、
前記第２のラウンドに続く第３のラウンドにおいて、前記第１のラウンドおよび前記第２のラウンドの前記結果に基づいて前記複数のＰＵＦセルのそれぞれものの第３のペアリングを割り当て、前記複数のＰＵＦセルの各々のＰＵＦセルが、等しい数のラウンドの前記勝者であった前記複数のＰＵＦセルのうちの１つのＰＵＦセルとペアリングされており、
前記第３のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第３の出力を生成し、前記第３のペアリングにおけるＰＵＦセルの各々のペアについて勝者を決定する、ようにさらに構成されている、請求項１１に記載のシステム。
【請求項１６】
先のラウンドにおける第１のペアの第１の勝者が、前記先のラウンドにおける第２のペアの第２の勝者とペアリングされており、さらに、前記少なくとも１つのプロセッサが、現在のラウンドの前に、前記複数のＰＵＦセルの各々からのそれぞれの出力にエラー訂正符号を適用するようにさらに構成されている、請求項１１に記載のシステム。
【請求項１７】
前記少なくとも１つのプロセッサが、先のラウンドの前記結果に基づいてＰＵＦセルペアリングの追加のラウンドを、
先のラウンドにおいてペアリングされているＰＵＦセルを、複数のグループにグループ化することと、
第１のグループ内の各々のＰＵＦセルを、第２のグループ内のそれぞれのＰＵＦセルとペアリングするここと、によって割り当てるようにさら構成されている、請求項１１に記載のシステム。
【請求項１８】
バイナリコンパレータをさらに備え、前記少なくとも１つのプロセッサが、各々のラウンドにおけるＰＵＦセルの各々のペアの前記勝者を表すビットを生成するようにさらに構成され、ＰＵＦセルのペアの勝者が、前記ペア内の各々のＰＵＦセルのそれぞれの出力を比較した前記バイナリコンパレータの出力に関連付けられ、さらに、前記第１のラウンドと前記第２のラウンドのペアリングが、前記ＰＵＦセルの数に等しいエントロピーのビット数を生成する、請求項１１に記載のシステム。
【請求項１９】
前記少なくとも１つのプロセッサが、先のラウンドの前記結果に基づいて追加のラウンドのペアリングを割り当てるようにさらに構成され、前記ラウンドの総数が、前記少なくとも１つのプロセッサによって、前記複数のＰＵＦセル内のＰＵＦセルの数の２進対数を超えないように制限される、請求項１１に記載のシステム。
【請求項２０】
プロセッサ実行可能命令を格納した少なくとも１つの非一時的コンピュータ可読媒体であって、前記命令は、実行されたときに、少なくとも１つのプロセッサに、
第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを割り当てることと、
前記第１のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成し、前記第１のペアリングにおけるＰＵＦセルの各々のペアについて勝者を含む前記第１のラウンドの結果を決定することと、
前記第１のラウンドの後に続く第２のラウンドにおいて、前記第１のラウンドの前記結果に基づいて、前記複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当てることと、
前記第２のラウンドにおいて、前記複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、前記第２のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む前記第２のラウンドの結果を決定することと、
前記第１のラウンドの前記結果および前記第２のラウンドの前記結果に基づいてＰＵＦ出力を生成することと、を含む、方法を実施させる、少なくとも１つの非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、物理的クローン不能関数（「ＰＵＦ」）符号化システムおよび方法に関する。
【背景技術】
【０００２】
ＰＵＦは、デバイスの固有の物理的特性に依存する出力を生成するデバイスまたは回路を含むことができる。例えば、製造プロセスおよび部品の変動は、最小の変動（例えば、プロセス依存の遅延の変動）さえもが一意性を提供するため、固有のハードウェア特性を有する電気回路を含むチップを作製する。
【発明の概要】
【課題を解決するための手段】
【０００３】
様々な態様によれば、遅延ベースの物理的クローン不能関数（ＰＵＦ）デバイスが提供される。一実施形態によれば、ＰＵＦデバイスは、複数のＰＵＦセルを比較または「競合化（ｒａｃｉｎｇ）」させることによって、エントロピーの出力ビットを生成するための回路を含む。例えば、２つの同一に設計されたリング発振器（ＲＯ）またはアービタの２つの経路の周波数を比較することによって競合を実行することができる。ＰＵＦセルは、ＰＵＦデバイスの構成要素である。例えば、ＰＵＦデバイスは、プロセスに関連する変動のみを有する２つの同一に設計された回路を含むことができ、各々の回路は、ＰＵＦセルであり得る。一例では、ＰＵＦセルは、ＲＯ  ＰＵＦ内のＲＯ、アービタＰＵＦの遅延経路、他の遅延ベースのＰＵＦの他の構成要素、または好適なＰＵＦの出力を生成する任意の回路とすることができる。別の態様によれば、勝利または敗北の同じ履歴を有するＰＵＦセルが１つの競合において比較されている場合、敵対者は先の競合結果に基づいて現在の競合の結果を予測することができない。したがって、本明細書では、先のラウンドの競合に基づいて複数ラウンドの競合を生成するシステムおよび方法を記載する。いくつかの実施形態では、各々のラウンドにおいて、先のラウンドの勝者が、互いに競合化され、敗者は、敗者に対して競合化される。したがって、最大のエントロピーが抽出される間に、１つのＰＵＦセルを複数のペア毎の比較で使用することができる。様々な実施形態は、従来のアプローチと比較した場合にＰＵＦセルの必要数を減らしながら、値を符号化するための完全なエントロピーを保存する。
【０００４】
本出願の一態様によれば、物理的クローン不能関数（ＰＵＦ）においてエントロピーを生成する方法が提供される。この方法は、第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを少なくとも１つのプロセッサによって割り当てることと、第１のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成し、第１のペアリングにおけるＰＵＦセルの各々のペアについて勝者を含む第１のラウンドの結果を決定することと、第１のラウンドに続く第２のラウンドにおいて、第１のラウンドの結果に基づいて、複数のＰＵＦセルのうちのそれぞれものの第２のペアリングを割り当てることと、第２のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、第２のペアリングにおけるＰＵＦセルの各々のペアについての勝者を含む第２のラウンドの結果を決定することと、第１のラウンドの結果および第２のラウンドの結果に基づいてＰＵＦ出力を生成することと、を含む。
【０００５】
一実施形態によれば、本方法は、ＰＵＦ出力を使用して秘密を難読化することをさらに含む。一実施形態によれば、複数のＰＵＦセルの各々のＰＵＦセルは、製造プロセスの変動に起因する差異を有する複数の同一に設計された回路の１つを含む。一実施形態によれば、本方法は、各々のラウンドにおけるＰＵＦセルの各々のペアの勝者を表すビットを生成することをさらに含み、ペアのＰＵＦセルの勝者が、ペア内の各々のＰＵＦセルのそれぞれの出力のバイナリ比較の出力と関連付けられ、さらに第１のラウンドと第２のラウンドのペアリングが、ＰＵＦセルの数に等しいエントロピーのビット数を生成する。一実施形態によれば、本方法は、少なくとも１つのプロセッサによって、第２のラウンドの前に、複数のＰＵＦセルの各々からのそれぞれの第１の出力にエラー訂正符号を適用することをさらに含む。
【０００６】
一実施形態によれば、第の１ラウンドに続く第２のラウンドにおいて、第１のラウンドの結果に基づいて複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当てることは、第１のペアリングにおけるＰＵＦセルの各々のペアのそれぞれの勝者のペアリングを割り当てることと、第１のペアリングにおける勝者ではなかった残りのＰＵＦセルのペアリングを割り当てることと、を含む。一実施形態によれば、本方法は、第２のラウンドに続く第３のラウンドにおいて、第１のラウンドおよび第２のラウンドの結果に基づいて、複数のＰＵＦセルのそれぞれものの第３のペアリングを割り当てることと、複数のＰＵＦセルの各々のＰＵＦセルが、等しい数のラウンド（またはペアリング）の勝者であった複数のＰＵＦセルのうちの１つのＰＵＦセルとペアリングしており、第３のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第３の出力を生成し、第３のペアリングにおけるＰＵＦセルの各々のペアについて勝者を決定することと、をさらに含む。一実施形態によれば、先のラウンドにおける第１のペアの第１の勝者は、先のラウンドにおける第２のペアの第２の勝者とペアリングされる。一実施形態によれば、この方法は、先のラウンドの結果に基づいて追加のラウンドのペアリングを割り当てることをさらに含み、ラウンドの総数が、複数のＰＵＦセルのＰＵＦセルの数の２進対数を超えないように少なくとも１つのプロセッサによって制限される。
【０００７】
一実施形態によれば、本方法は、先のラウンドの結果に基づいて、先のラウンドでペアリングされているＰＵＦセルを複数のグループにグループ化することと、第１のグループ内の各々のＰＵＦセルを第２のグループ内のそれぞれのＰＵＦセルとペアリングすることと、によって、追加のラウンドのＰＵＦセルペアリングを割り当てることをさらに含む。
【０００８】
本出願の一態様によれば、物理的クローン不能関数（ＰＵＦ）においてエントロピーを生成するためのシステムが提供される。このシステムは、複数のＰＵＦセルと、少なくとも１つのプロセッサであって、第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを割り当て、第１のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成し、第１のペアリングにおけるＰＵＦセルの各々のペアについて勝者を含む第１のラウンドの結果を決定し、第１のラウンドに続く第２のラウンドにおいて、第１のラウンドの結果に基づいて、複数のＰＵＦセルのうちのそれぞれものの第２のペアリングを割り当て、第２のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、第２のペアリングにおけるＰＵＦセルの各々のペアについての勝者を含む第２のラウンドの結果を決定し、第１のラウンドの結果および第２のラウンドの結果に基づいてＰＵＦ出力を生成する、ように構成された、少なくとも１つのプロセッサと、を備える。
【０００９】
一実施形態によれば、少なくとも１つのプロセッサは、ＰＵＦ出力を使用して秘密を難読化するようにさらに構成されている。一実施形態によれば、複数のＰＵＦセルの各々のＰＵＦセルは、製造プロセスの変動に起因する差異を有する複数の同一に設計された回路の１つを含む。一実施形態によれば、システムは、バイナリコンパレータをさらに備え、少なくとも１つのプロセッサが、各々のラウンドにおけるＰＵＦセルの各々のペアの勝者を表すビットを生成するようにさらに構成され、ペアのＰＵＦセルの勝者が、ペア内の各々のＰＵＦセルのそれぞれの出力を比較したバイナリコンパレータの出力に関連付けられ、さらに、第１のラウンドと第２のラウンドのペアリングが、ＰＵＦセルの数に等しいエントロピーのビット数を生成する。一実施形態によれば、先のラウンドにおける第１のペアの第１の勝者が、前記先のラウンドにおける第２のペアの第２の勝者とペアリングされており、さらに、少なくとも１つのプロセッサが、現在のラウンドの前に、複数のＰＵＦセルの各々からのそれぞれの出力に対するエラー訂正符号を適用するようにさらに構成されている。
【００１０】
一実施形態によれば、第の１ラウンドに続く第２のラウンドにおいて、第１のラウンドの結果に基づいて複数のＰＵＦセルのそれぞれのものの第２のペアリングを割り当てることは、第１のペアリングにおけるＰＵＦセルの各々のペアのそれぞれの勝者のペアリングを割り当てることと、第１のペアリングにおける勝者ではなかった残りのＰＵＦセルのペアリングを割り当てることと、を含む。一実施形態によれば、少なくとも１つのプロセッサは、第２のラウンドに続く第３のラウンドにおいて、第１のラウンドおよび第２のラウンドの結果に基づいて、複数のＰＵＦセルのそれぞれものの第３のペアリングを割り当て、複数のＰＵＦセルの各々のＰＵＦセルが、等しい数のラウンド（またはペアリング）の勝者であった複数のＰＵＦセルのうちの１つのＰＵＦセルとペアリングされており、第３のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第３の出力を生成し、第３のペアリングにおけるＰＵＦセルの各々のペアについて勝者を決定するようにさらに構成されている。一実施形態によれば、少なくとも１つのプロセッサは、先のラウンドの結果に基づいて追加のラウンドのペアリングを割り当てるようにさらに構成され、ラウンドの総数が、少なくとも１つのプロセッサによって、複数のＰＵＦセル内のＰＵＦセルの数の２進対数を超えないように制限される。
【００１１】
一実施形態によれば、なくとも１つのプロセッサは、先のラウンドの結果に基づいて、先のラウンドでペアリングされているＰＵＦセルを複数のグループにグループ化することと、第１のグループ内の各々のＰＵＦセルを第２のグループ内のそれぞれのＰＵＦセルとペアリングすることと、によって、追加のラウンドのＰＵＦセルペアリングを割り当てるようにさらに構成される。
【００１２】
本出願の一態様によれば、プロセッサ実行可能命令を格納する少なくとも１つの非一時的コンピュータ可読媒体が提供される。プロセッサ実行可能命令は、実行されたときに、少なくとも１つのプロセッサに、第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを割り当てることと、第１のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第１の出力を生成することと、第１のペアリングにおけるＰＵＦセルの各々のペアについて勝者を含む第１のラウンドの結果を決定することと、第１のラウンドに続く第２のラウンドにおいて、第１のラウンドの結果に基づいて、複数のＰＵＦセルのうちのそれぞれものの第２のペアリングを割り当てることと、第２のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第２の出力を生成し、第２のペアリングにおけるＰＵＦセルの各々のペアについての勝者を含む第２のラウンドの結果を決定することと、第１のラウンドの結果および第２のラウンドの結果に基づいてＰＵＦ出力を生成することと、を含む方法を実施させる。
【００１３】
本開示の様々な態様および実施形態を、以下の図面を参照して説明する。これらの図は必ずしも縮尺通りに描かれていないことを理解されたい。複数の図に出現する項目は、それらが出現する全ての図において同じ参照番号によって示されている。
【図面の簡単な説明】
【００１４】
【図１】いくつかの実施形態による、本明細書に記載の技術の一部が動作することができるＰＵＦベースの暗号法デバイスの例示的なブロック図を示す。
【図２Ａ】いくつかの実施形態による、ＰＵＦ出力を生成するために使用されるＰＵＦセルの例示的なブロック図を示す。
【図２Ｂ】いくつかの実施形態による、ＰＵＦ出力を生成するために使用されるＰＵＦセルの例示的なブロック図を示す。
【図３】いくつかの実施形態による、ＰＵＦ出力を生成するためのＰＵＦコアの例示的なブロック図を示す。
【図４Ａ】いくつかの実施形態による、ＰＵＦセルの競合順序付けの例示的なラウンドを示す。
【図４Ｂ】いくつかの実施形態による、ＰＵＦセルの競合順序付けの例示的なラウンドを示す。
【図４Ｃ】いくつかの実施形態による、ＰＵＦセルの競合順序付けの例示的なラウンドを示す。
【図５Ａ】いくつかの実施形態による、ＰＵＦセルを競合化し、エラー訂正結果を生成するための例示的なタイミング図を示す。
【図５Ｂ】いくつかの実施形態による、ＰＵＦセルを競合化し、エラー訂正結果を生成するための例示的なタイミング図を示す。
【図６】いくつかの実施形態による、ＰＵＦを使用して秘密を符号化するためのコミットメントフェーズのための例示的なプロセスフローを示す。
【図７】いくつかの実施形態による、ＰＵＦを使用して秘密を復号化するための復元フェーズのための例示的なプロセスフローを示す。
【図８】いくつかの実施形態による、ＰＵＦ出力を生成するためにＰＵＦセルのラウンドを競合化するための例示的なプロセスフローを示す。
【図９】いくつかの実施形態による、ＰＵＦ符号化においてエントロピーを生成する方法のための例示的なプロセスフローを示す。
【発明を実施するための形態】
【００１５】
様々な態様によれば、出力ビットを生成するためにＰＵＦセルを競合化するための従来技術が改良される。例えば、様々な実施形態は、エントロピーを低減させることなく必要とされるＰＵＦセルの数の低減を可能にする。遅延ベースのＰＵＦを使用する従来の技術は、各々のリング発振器が１回だけ比較または「競合化」するように、リング発振器（ＲＯ）の隣接するペアの周波数を比較する（「競合化」としても知られる）。このような従来の手法では、２つのリング発振器を使用して１ビットの出力を生成する必要がある。第２の技術は、各々のリング発振器が２回競合化されるように、隣接するリング発振器を競合化する。この第２の技術は、出力の各々のビットに対して１つのリング発振器しか必要としない。しかしながら、第２の技術によって生成した出力は、競合結果の確率が独立していないので完全なエントロピーを生成しない。第３の技術は、入力課題に基づいて競合順序を決定する。この第３の技術は、各々の競合の結果が必ずしも独立しているわけではないので、各々の競合が完全なエントロピーを作製させることを保証しない。さらに、この第３の技術は、機械学習攻撃またはリング発振器の真の順序付けを決定する他の推論に対して脆弱である可能性がある。このような状況下では、敵対者はあらゆる入力課題の結果を予測できる。
【００１６】
広範に言えば、効率的な物理的クローン不能関数の実装形態は、最大のエントロピーを抽出する安全な方法で複数のラウンドについてリング発振器などの所与の数のＰＵＦセルを競合化する最適な競合化戦略を利用することができる。様々な態様によれば、最適な競合化戦略は、従来のアプローチよりも必要とされるＰＵＦセルの数を低減し、最大のエントロピーを維持する。一態様によれば、本明細書に記載のシステムおよび方法は、従来の固定競合化戦略と比較して、必要とされるＰＵＦセルの数を低減しながら、最小の費用を利用することができる。いくつかの実施形態は、リング発振器ＰＵＦに関して説明されているが、他の実装形態は、例えば、アービタＰＵＦを含む、任意の好適な遅延ベースのＰＵＦ実装形態を使用して実践されてもよい。
【００１７】
各々の競合の出力における最大のエントロピーを維持するために、先のラウンドの競合に基づいて複数のラウンドの競合を生成するシステムおよび方法が本明細書で説明される。いくつかの実施形態では、各々のラウンドにおいて、先のラウンドの勝者が、互いに競合化され、敗者は、敗者に対して競合化される。上述したように、勝利または敗北の同じ履歴を有するＰＵＦセルが比較されている場合、先の競合結果に基づいて現在の競合の結果を予測することができない。したがって、１つのリング発振器を複数のペア毎の比較で使用することができる。様々な実施形態によれば、最適な競合化戦略は、完全なエントロピー結果をもたらす競合のラウンド数に制限を課す。そのような閾値を超えて実行される競合は、先の結果に基づいてリスクの予測可能性がある。一実施形態によれば、システムは、エラー伝搬に関する問題を回避するために、複数の競合化ラウンドと共にエラー訂正を実行する。例えば、ＰＵＦ出力は、ノイズが多いことが知られているので、一貫した出力を達成するために、エラー訂正を用いることができる。一実施形態では、システムは、各々の競合化ラウンドから結果を生成し、エラー訂正するように構成される。少なくとも１回の競合化ラウンドの終了中にエラー訂正を実行することに基づいて、訂正された結果は、エラーをその後のラウンドに伝播させない（例えば、勝者または敗者を誤って識別する）。他の例では、その後のラウンドのペアリングを割り当てる前に、各々のラウンドの競合化をエラー訂正することができ、その後のラウンドを介してエラーの伝播を防ぐことができる。
【００１８】
本明細書で説明される技術のいくつかの実施形態は、ＰＵＦを生成するための従来技術の上記欠点のいくつかに対処する。しかしながら、全ての実施形態が、これらの欠点または上記の改善の全てに対処する必要はなく、いくつかの実施形態は、いずれの欠点にも対処できない可能性がある。このように、本明細書で説明される技術の態様は、従来のＰＵＦシステムの上述の欠点の全てまたはいずれかに対処することに限定されないことを理解されたい。
【００１９】
図１は、いくつかの実施形態による、本明細書に記載の技術の一部が動作することができるＰＵＦベースの暗号法デバイス１００の例示的なブロック図を示す。図１は、秘密１０１（例えば、プライベート暗号化キー、秘密、他のデータ値の中の乱数）、ＰＵＦ出力（例えば、ＰＵＦ出力を決定した結果のビット数）１０７、ヘルパーデータ１１１、ヘルパーデータ１１３、ＰＵＦ出力１１５、およびエラー訂正符号（「ＥＣＣ」）エンコーダ１０３、ＰＵＦコア（例えば、複数のＰＵＦセルを含む回路）１０５、演算器１０９、演算器１１７、ＥＣＣデコーダ１１９、および制御回路１２３によって生成、処理、および／または制御される、復元された秘密１２１（例えば、ヘルパーデータに基づく秘密の再生）を示す。暗号法デバイス１００は、任意の好適な入力値を暗号化、符号化、難読化、解読化、再生および／または復元するか、または本明細書に記載のシステムおよび方法に従って任意のデータ上でそのような暗号動作を実施するように動作可能および／または構成され得る。
【００２０】
図示された実施形態では、デバイス１００を使用して、秘密１０１を暗号化および解読化することができる。秘密は、デバイス１００への入力に好適な任意のビット列であってもよい。秘密１０１は、後述するコミットメントフェーズ中にデバイス１００への入力として提供され、いくつかの実施形態では、複数の秘密は、デバイス１００を使用して一意に符号化および／または復号化され得る。秘密１０１は、プライベート暗号化キー、乱数、シリアル番号、秘密、機密情報、または例えば秘密またはキーの共有を含む秘密にプライベートに保持されるべき他の任意のデータであってもよい。いくつかの実施形態では、秘密１０１は、ＰＵＦの出力であってもよい。さらなる実施形態では、ＰＵＦ出力１０７を秘密１０１の代わりに使用することができる。
【００２１】
ＥＣＣエンコーダ１０３は、秘密１０１を受信し、秘密１０１および復元された秘密１２１のエラーを訂正するためのＥＣＣデータを計算するためのエラー訂正符号を適用する。一例では、復元された秘密は、符号化された秘密の再生を提供し、特に秘密をデバイスに保存する必要はない。むしろ、ヘルパー値を伴うＰＵＦ出力を秘密にマッピングすることは、後に安全な再生を提供する。ＥＣＣエンコーダは、任意の好適なＥＣＣコードを使用してＥＣＣデータを計算し、秘密を正常に復元するための任意の好適な数のビットエラーを訂正するように構成することができる。いくつかの実施形態では、ＥＣＣエンコーダは、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号化を実施する。ＥＣＣデコーダ１１９は、ＥＣＣエンコーダ１０３によって実装されるＥＣＣを使用してエラーを復号化し、検出／訂正するように構成された任意のＥＣＣデコーダまたは処理回路であってもよい。ＥＣＣエンコーダ１０３およびＥＣＣデコーダ１１９は、ＰＵＦ出力が決定されると、ＰＵＦコア１０５内のエラーを訂正するように構成されてもよい。一例では、ＥＣＣエンコーダ１０３は、秘密に応答してＰＵＦをマッピングするヘルパーデータを生成するために使用される。さらなる実施形態では、ＥＣＣエンコーダ１０３およびＥＣＣデコーダ１１９は、秘密を符号化および再生するために使用されるＰＵＦ出力１０７および１１５の差異から生じるビットエラーを検出して訂正するように構成されてもよい。例えば、復号化に使用されるＰＵＦ出力がノイズである場合でも、ＥＣＣデコーダ１１９は、ＰＵＦ出力が、ヘルパーデータによって提供される符号化された値からの訂正可能なビットエラー数（例えば、ＥＣＣ符号化パラメータによって決定される）の範囲内にある限り、秘密を確実に再生成することができる。
【００２２】
ＰＵＦコア１０５は、秘密１０１を暗号化および解読化するためのＰＵＦ出力を生成するために使用されてもよい。ＰＵＦコア１０５は、ＰＵＦコア１０５内の１つ以上のＰＵＦセルの固有の物理的特性に依存する出力を生成する回路を含むことができる。例えば、製造プロセスおよび部品の変動は、固有のハードウェア特性を有する電気回路を含むチップを作製し得る。ＰＵＦコア１０５は、１つ以上の電気回路に特有の固有のハードウェア特性に基づいて出力を生成する１つ以上の電気回路を含むことができる。ＰＵＦコアタイプの例には、アービタＰＵＦ、ＲＯ  ＰＵＦ、バタフライＰＵＦ、他の遅延ベースのＰＵＦ、または同一に設計された回路からの値を比較する任意のＰＵＦ実装が含まれる。いくつかの実施形態では、ＰＵＦコア１０５は、例えば制御回路１２３によって、ＰＵＦ出力（例えば１０７または１１５）を生成するように指示され、ＰＵＦコア１０５への任意の入力値に基づいていないＰＵＦ出力を作製する。例えば、ＰＵＦコア１０５は、特定のチャレンジ要求なしにＰＵＦセルの競合化ペアに基づいて応答値を返すことができる。
【００２３】
いくつかの実施形態では、ＰＵＦコア１０５は、ＰＵＦ出力を計算するために初期ＰＵＦセルのペアリングを指定するために使用されるチャレンジ入力を受信するように構成することができる。いくつかの例では、制御回路１２３は、ペアリングの第１のラウンドを指定してもよく、またはペアリングの初期セットを予め定義してもよい。さらなる実施形態では、チャレンジ入力は、限定された数の有効な入力から、暗号化デバイスに対して秘密であるままの第１のラウンドのペアリングにマッピングすることによって、第１のラウンドのペアリングを間接的に指定する。
【００２４】
ＰＵＦ出力１０７および１１５は、ＰＵＦコアおよび／またはＰＵＦセル（例えば、秘密１０１を難読化するのに好適なビット列）から得られる応答である。いくつかの実施形態では、各々のＰＵＦ出力は、ＰＵＦセルの競合化ペアによって得られるエントロピーのビット数（例３２、６４、１２８、または２５６ビット）を含む。いくつかの実施形態では、ＰＵＦ出力の各々のビットは、エントロピーのフルビットを表す。ＰＵＦ出力１０７および１１５は、ＰＵＦ出力の生成中にエラーがない場合には同一であってもよい。ＰＵＦ出力１０７および１１５は、例えばＰＵＦがノイズがある可能性があるため異なる場合があるが、ＰＵＦ出力１０７および１１５がＥＣＣによって訂正され得る最大ビット数以上ではなく異なる場合に秘密１０１を首尾よく復元することができる（例えば、ＥＣＣエンコーダ１０３およびＥＣＣデコーダ１１９により実装されるＥＣＣ）。いくつかの実施形態では、ＰＵＦ出力１０７は、コミットメントフェーズ中に、秘密１０１に付加されたエラー訂正符号データと共に使用され、復元フェーズ中にＰＵＦ出力１１５を用いて秘密値を後で再生するヘルパーデータ１１１を作製する。いくつかの実施形態では、ＥＣＣデコーダ１１９は、ＰＵＦ出力１１５の一部、例えば、競合化ラウンドから得られた出力の訂正、を使用して復元された復元された秘密１２１の一部を復号化するために使用する。さらなる実施形態では、検出されたおよび／または訂正されたエラーは、ＰＵＦ出力１１５のさらなる部分を生成するためにＰＵＦコア１０５に伝達され、複数の訂正された部分が秘密再生のために組み合わされ得る。ＰＵＦ出力のエラー訂正は、図５Ａ〜Ｂを参照して論じられる。
【００２５】
いくつかの実施形態では、ＰＵＦ出力（例えば、１０７および１１５）を秘密として使用することができる。例えば、ＰＵＦ出力は、固有のデバイス識別子として、暗号化キーとして、第２のＰＵＦ出力を使用して暗号化または難読化される秘密として、または他の適切な目的のために使用され得る。いくつかの実施形態では、ＰＵＦ出力１０７は、秘密１０１の代わりに使用され、ＥＣＣエンコーダ１０３に入力されてもよい。さらなる実施形態では、ＰＵＦ出力（例１０７）に基づいて生成したＥＣＣデータは、秘密ＰＵＦ出力を復元するためのヘルパーデータ１１１として格納されてもよい。
【００２６】
いくつかの実施形態では、ＰＵＦコア１０５の各々の出力はラウンド内で生成される。いくつかの実施形態では、ＰＵＦ出力の生成は、制御回路１２３またはプロセッサ（例えば、ＣＰＵ、ＦＰＧＡなど）によって制御される。いくつかの実施形態では、制御回路（例、１２３）またはプロセッサを、ＰＵＦコア１０５に含めることができる。
【００２７】
いくつかの実施形態では、第１のラウンドにおいて、それぞれのペアリングが、ＰＵＦコア１０５内の複数のＰＵＦセルに割り当てられる。いくつかの実施形態では、第１のペアリングは、ＰＵＦ出力を再生するために再生され得るペアの任意の好適なマッピングであり得る。例えば、ＰＵＦ出力１０７を生成するために使用されるペアのマッピングが、ＰＵＦ出力１１５を生成するための第１のペアリングに使用される場合、結果として得られるＰＵＦ出力１０７および１１５は一致する（例えば、エラーについて訂正されるように）。ペアの第１のラウンドマッピングが変更された場合、出力は一致しない可能性がある。
【００２８】
一例では、ペアリングの第１のラウンドは、隣接するＰＵＦセルをペアリングすることができる。いくつかの実施形態では、ＰＵＦセルは、順序付けされおよび／または１〜Ｎの番号付けされる。第１のラウンドにおいて、奇数番号のＰＵＦセルは、隣接する偶数番号のＰＵＦセル、例えば、ＰＵＦセル１および２、ＰＵＦセル３および４、ＰＵＦセル５および６、…、およびＰＵＦセルＮ−１およびＮのペアリングとペアリングすることができる。さらなる実施形態では、ＰＵＦセルは、Ｎ／２個のスペースまたは別の好適な距離だけ分離された利用可能なＰＵＦセルとペアリングされる。他の実施形態では、第１のラウンドのＰＵＦセルペアリングは、ＰＵＦセルの任意のペア毎のマッピングを表す。
【００２９】
第１のペアリングにおけるＰＵＦセルの各々のペアは、ペア内の各々のＰＵＦセルに出力を生成すること、および／または出力を生成することを可能にすることによって競合化されることができる。いくつかの実施形態では、出力のバイナリ比較に基づいて、各々のペアの１つのＰＵＦセルが勝者であると決定し、各々のペアの１つのＰＵＦセルが敗者であると決定する。例えば、ＰＵＦセルがリング発振器を含む場合、各々の発振器の出力遷移を、より多くのカウントを作製し、勝者と決定されるより高い周波数の発振器によって一定期間カウントして比較することができる。いくつかの実施形態では、アービタベースのＰＵＦは、アービタ出力を２つの遅延経路の各々に関連付けることができる。他の遅延ベースのＰＵＦの構成要素が、好適なＰＵＦセルとして使用されてもよいことを理解されたい。
【００３０】
先に互いにペアリングされていないＰＵＦセルおよび／または共通の相手を競合化する場合、競合の結果を予測するために使用することができる事前情報がないので、エントロピーのフルビットは、競合の結果によって生成することがある。いくつかの実施形態では、Ｎ個のＰＵＦセルは、１ラウンド当たりＮ／２個のペアで競合化される。したがって、ＰＵＦセルが共通の相手を伴わずにペアリングされる各々のラウンドにおいて、Ｎ／２ビットのエントロピーが生成することがある。２回のラウンドにおいて、Ｎ個のＰＵＦセルが、Ｎビットのエントロピーを生成することができる。４回のラウンドにおいて、Ｎ個のＰＵＦセルが２＊Ｎビットのエントロピーを生成することができる（例えば、６４個のＰＵＦセルは４回のラウンドにおいて１２８ビットのエントロピーを生成することができる）。いくつかの実施形態によれば、各々の競合がエントロピーのフルビットを作製することを保証するために、ペアリングのラウンド数は、ＰＵＦセルの数Ｎの２進対数に制限されてもよい。一例では、この点後、ＰＵＦセルの競合順序付けは、主に決定され、将来の競合は各々エントロピーのフルビットよりも少なく生ずる。ＰＵＦセル出力の差を決定するプロセス差異に基づいて、所与のラウンド数の後に競合順序が決定される程度は、変化し得、各々のデバイスに固有であってもよいことを理解されたい。いくつかの実施形態では、競合のラウンドは、エントロピーの潜在的損失を伴うＰＵＦセルの数の２進対数の後に進むことができる。
【００３１】
ＰＵＦセルのペアリングは、ＰＵＦコア１０５および／または制御回路１２３によって選択されて、ペアリングされたＰＵＦセルが過去の共通の相手を持たないようにすることができる。いくつかの実施形態では、選択は、例えば、各々のＰＵＦセルが直面する相手のセットを追跡し、相手のセットがヌル交差を有するペアを選択することによって、能動的に実施される。さらなる実施形態では、競合順序付けは、過去の共通の相手を防ぐためにＰＵＦセルをグループ化する。
【００３２】
いくつかの実施形態では、競合順序付けを使用して、完全なエントロピーが各々のペアリングおよび／または競合によって生成する条件を作成する。第１のラウンドでは、競合が実施されていないため、ＰＵＦセルは、共通の相手を持つことはできない。第１のラウンドの各々の勝者は、第１のラウンドの別の勝者とペアリングされ得、各々の敗者は、別の敗者とペアリングされる。この方法で割り当てられた第２のラウンドでは、各々の勝者（敗者）が先に正確に１人のそれぞれの敗者（勝者）と競合化されていたので、ＰＵＦセルペアは、相手の交差履歴を有することができない。いくつかの実施形態では、先のラウンドの勝者（敗者）が先の勝者（敗者）とペアリングされるように、第３のラウンドのペアリングが割り当てられる。いくつかの実施形態では、同じレコードを有し、同じ順序で競合を勝利および／または敗北したＰＵＦセルが、ペアリングされる。いくつかの実施形態では、ＰＵＦセルは、ラウンドあたり、ほとんどまたは正確に１回競合化される。各々ＰＵＦセルを最大で１ラウンドごとに一度競合化することにより、各々競合がエントロピーのフルビットを作製することが保証される。
【００３３】
ＰＵＦベースの符号化のためのシステムおよび方法の様々な実施形態を、図３、図４Ａ〜Ｃ、図５Ａ〜Ｂ、図８および図９を参照してさらに説明する。
【００３４】
いくつかの実施形態では、ＰＵＦコア１０５の出力はノイズが多い可能性がある。例えば、いくつかのＰＵＦセル間の差異は、セルが弱いとみなされ、ＰＵＦ出力生成中にエラーを起こしやすいほど十分に小さいことがある。いくつかの実施形態では、ＰＵＦコア１０５内のＰＵＦセルは、温度に敏感な出力を有することができる。例えば、リング発振器ＰＵＦセルの周波数は、温度の関数として異なる速度で変化し、弱いセルは、ある温度でそれらの周波数が交差する可能性がある。さらなる実施形態では、構成信号がＰＵＦコア１０５に供給され、より信頼性の高い堅牢なＰＵＦセルを作製する。構成信号は、例えば製造時に、ＰＵＦセルの出力を動作温度で十分に分離したままにするように構成するために使用することができる。いくつかの実施形態では、ＰＵＦセルは、第１のラウンドペアリングに基づいて構成され、より信頼できる競合結果を提供する。図２Ａを参照して、ＰＵＦセルの構成信号および構成の例を説明する。
【００３５】
一実施形態によれば、ＰＵＦコア１０５の出力は、演算器１０９によって受信される。演算器１０９は、正確なＰＵＦ出力がなければ、ヘルパーデータ１１１を秘密１０１の決定に使用することができないように、ＰＵＦ１０７を使用して秘密１０１を難読化するための任意の好適な演算器（例えば、他の回路の中で、ビット毎のＸＯＲゲートまたは算術論ユニット）であってもよい。演算器１０９は、ヘルパーデータ１１１およびＰＵＦ出力からの秘密１０１の復元を可能にする任意の可逆的動作であってもよい。いくつかの実施形態では、演算器１０９はビット毎のＸＯＲ動作であり、それ自体の逆であってもよい。いくつかの実施形態では、演算器１０９および１１７の両方がビット毎のＸＯＲ動作であってもよい。いくつかの実施形態では、演算器１０９は、ＰＵＦ出力１０７に基づいて秘密１０１内のビットに対応する出力ビットを変更するマスキング動作である。さらなる実施形態では、演算器１０９は、暗号エンコーダであり、演算器１１７は、対応するデコーダである。演算器１１７は、演算器１０９によって実施される秘密１０１の難読化を取り消して、秘密１０１を復元するために使用される。
【００３６】
復元された秘密１２１は、ヘルパーデータ１１３から復元することができる。復元された秘密１２１は、ヘルパーデータ１１３がヘルパーデータ１１１と一致する場合、秘密１０１と一致する。いくつかの実施形態では、ヘルパーデータ１１３がヘルパーデータ１１１と一致することが予想されるが、デバイスエラーまたは敵対者によってヘルパーデータ１１３がヘルパーデータ１１１と異なる場合があることを理解されたい。この場合、秘密は復元されない。さらなる実施形態では、デバイスは、各々の秘密がコミットされ、それぞれのヘルパーデータにマッピングされて、２つ以上の秘密を符号化してもよく、各々の秘密は、正確なそれぞれのヘルパーデータを使用してのみ再生されてもよい。復元された秘密１２１を生成するために（例えば、秘密１０１を解読化するために）、ＰＵＦコア１０５は、第２のＰＵＦ出力１１５を生成する。いくつかの実施形態では、ＰＵＦコア１０５は、ＰＵＦセル間の比較ベース（例えば、制御回路１２３によって割り当てられたペアリングに基づく）で動作し、ＰＵＦコア１０５の各々の出力の値は、ＰＵＦコア１０５への任意の入力に依存しない場合がある。ＰＵＦ出力１０７および１１５は、エラー訂正符号を用いて復号化された後に等しいと期待することができる。復元された秘密１２１は、任意のＰＵＦ出力を明らかにすることなく生成することができる。
【００３７】
制御回路１２３は、マイクロプロセッサ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、またはＰＵＦ出力の生成する、タイミング、およびペアリングを制御するための任意の他の好適な回路などの任意の好適な処理回路であってよい。いくつかの実施形態では、制御回路は、デバイス１００が特定の構成モードにあるかどうかを制御するために使用される。一例では、構成モードは、秘密をそれぞれのヘルパーデータに符号化またはバインドするためのコミットメントフェーズ、またはバインドされた秘密を再生するための復元フェーズを含む。
【００３８】
いくつかの実施形態では、暗号化デバイスは、コミットメントフェーズ中に秘密１０１からヘルパーデータを生成する。いくつかの例では、符号化されたヘルパーデータ１１１を、安全に公開することができる。他の例では、ヘルパーデータ１１１は、ＰＵＦベースの符号化動作に関与する演算器またはデバイスに提供することができる。いくつかの実施形態では、デバイス１００は、制御回路１２３によってコミットメントフェーズにあるように構成される。いくつかの実施形態では、制御回路１２３は、コミットメントフェーズを開始するために外部信号を受信する。
【００３９】
コミットメントフェーズ中に、秘密１０１は、ＰＵＦを使用して暗号化され、符号化され、および／または難読化される。暗号化デバイスは、任意の好適な入力を使用して秘密１０１を取得する。ＥＣＣエンコーダ１０３は、秘密１０１にＥＣＣを適用して、さらなる処理のために秘密１０１に付加されるＥＣＣデータを作製する。ＰＵＦコア１０５は、ＰＵＦ出力１０７を生成する。ＰＵＦ出力１０７は、将来のＰＵＦ出力生成ためのエラー訂正データを提供するためにＥＣＣエンコーダ（例えば、１０３）に入力されてもよい。演算器１０９、例えばＸＯＲは、ＰＵＦ出力および秘密１０１に付加されたＥＣＣデータによって供給され、ヘルパーデータ１１１を生成する。
【００４０】
復元フェーズの間、復元された秘密１２１はヘルパーデータから生成する。暗号化デバイスは、任意の好適な入力を使用してヘルパーデータ１１３を取得する。ＰＵＦコア１０５は、ＰＵＦ出力１１５を生成する。いくつかの実施形態では、エラー訂正符号は、ＰＵＦ出力１１５がコミットメントフェーズで使用されるＰＵＦ出力１０７と一致することを保証する。演算器１１７は、コミットメントフェーズ中に秘密１０１を隠すために使用された演算器１０９の逆を実施して、秘密１０１の推定値を生成する。ＥＣＣデコーダ１１９は、コミットメントフェーズ中に付加された推定秘密およびＥＣＣデータを復号化して、復元された秘密１２１を作製する。一例によれば、ヘルパーデータ１１３がヘルパーデータ１１１と一致すれば、復元された秘密１２１は、秘密１０１と一致する。
【００４１】
図２Ａは、いくつかの実施形態による、ＰＵＦ出力を生成するために使用されるＰＵＦセル２３０の例示的なブロック図を示す。図２Ａは、ＡＮＤゲート２３１、インバータ２３３ａ〜ｆ、スイッチ２３５ａ〜ｃ、および構成入力２３７ａ〜ｃを含むリング発振器を示す。例示的な実施形態では、ＰＵＦセル２３０は、論理１とゼロとの間で発振する出力を生成するリング発振器回路である。プロセス変動のため、同じ周波数で動作するように設計されたリング発振器の振動の観測周波数の間には、差異が生じることがある。
【００４２】
ＡＮＤゲート２３１は、リング発振器の出力を入力信号と組み合わせる。入力信号は、制御回路によって提供されてもよい（例えば、１２３）。例示的な実施形態では、ＡＮＤゲート２３１の出力は、ゼロに保持され、発振しないため，ゼロの入力は、リング発振器をディスエーブルにする。例示的な実施形態では、例えば発振器を競合化するために、１の入力を使用してリング発振器をイネーブルすることができる。いくつかの実施形態では、複数のＰＵＦセルを実質的に同時にイネーブルすることができる（例えば、共有信号線を使用して）。
【００４３】
インバータ２３５ａ〜ｆは、受信された入力を論理反転し、スイッチ２３５ａ〜ｃの構成に基づいて論理ループを形成する。いくつかの実施形態では、ＰＵＦセル２３０は、（例えば図２Ｂのように）構成可能な経路なしに奇数個のインバータを使用するリング発振器であってもよい。
【００４４】
スイッチ２３５ａ〜ｃは、リング発振器のための信号経路を確立することによってＰＵＦセル２３０を構成するために使用されてもよい。いくつかの実施形態では、スイッチ２３５ａ〜ｃは、１つ以上のマルチプレクサまたは任意の好適なスイッチ要素であってもよい。
【００４５】
いくつかの実施形態では、入力２３７ａ〜ｃに構成信号を適用することによって、ＰＵＦセルを構成することができる。いくつかの実施形態では、入力２３７ａ〜ｃを使用して、リング発振器の信号経路を選択することができる。図２Ａの例示的な実施形態では、スイッチ２３５ａ〜ｃおよび入力２３７ａ〜ｃを使用して、インバータ２３３ａ〜ｆを介して８つの可能な経路の１つを選択することができる。例えば、リング発振器は、インバータ２３３ａ〜ｂのうちの１つ、インバータ２３３ｃ〜ｄのうちの１つ、およびインバータ２３３ｅ〜ｆのうちの１つを利用することができる。いくつかの実施形態では、各々のＰＵＦセルは、例えば製造プロセス中に一度構成される。いくつかの実施形態では、弱いＰＵＦセルの信頼性を高め、より信頼できる競合結果を作製するように構成が選択される。
【００４６】
図２Ｂは、いくつかの実施形態による、ＰＵＦ出力を生成するために使用されるＰＵＦセル２３８の例示的なブロック図を示す。図２Ｂは、ＡＮＤゲート２３９およびインバータ２３３ｇ〜ｉを含むリング発振器を示す。図２Ｂの例示的な実施形態では、ＰＵＦセル２３８は、論理１とゼロとの間で発振する出力を生成するリング発振器回路である。プロセス変動のため、同じ周波数で動作するように設計されたリング発振器の振動の観測周波数の間には、差異が生じることがある。
【００４７】
ＡＮＤゲート２３９は、リング発振器の出力を入力信号と組み合わせる。入力信号は、制御回路によって提供されてもよい（例えば、１２３）。例示的な実施形態では、ＡＮＤゲート２３９の出力は、ゼロに保持され、発振しないため，ゼロの入力は、リング発振器をディスエーブルにする。例示的な実施形態では、例えば発振器を競合化するために、１の入力を使用してリング発振器をイネーブルすることができる。いくつかの実施形態では、複数のＰＵＦセルを実質的に同時にイネーブルすることができる（例えば、共有信号線を使用して）。
【００４８】
インバータ２３５ａ〜ｆは、受信した入力を論理反転する。インバータ２３３ｉの出力は、ＡＮＤゲート２３９にフィードバックされ、継続的な発振を作成する。いくつかの実施形態では、インバータ２３３ｉの出力は、任意の好適な形態でバッファされてもよい。いくつかの実施形態では、インバータ２３３ｉの出力は、ＰＵＦセル（例えば、２３０および２３８）出力を比較するためのマルチプレクサ、カウンタ、コンパレータ、および／または他の好適な回路要素に提供される。
【００４９】
図３は、いくつかの実施形態による、ＰＵＦ出力を生成するためのＰＵＦコア３０５の例示的なブロック図を示す。図３は、制御回路３４１、ＰＵＦセル３３０ａ〜ｄ、出力バッファ３４２ａ〜ｄ、マルチプレクサ３４３ａ〜ｂ、カウンタ３４５ａ〜ｂ、およびコンパレータ３４７を示す。いくつかの実施形態では、ＰＵＦコア３０５は、ＰＵＦセル３３０ａ〜ｄの全てをペアリングし、各々のペアを並行して競合するのに十分な多数のマルチプレクサ、カウンタ、およびコンパレータを含むことができる。例えば、各々のラウンドで競合化される各々のＰＵＦセル３３０ａ〜ｄのための１つのマルチプレクサを含めることによる。
【００５０】
いくつかの実施形態では、ＰＵＦコア３０５は、例えばＰＵＦコア３０５の電力消費を低減するために、ＰＵＦセルの１つ以上のペアを繰り返し競合化するように構成される。いくつかの実施形態では、ＰＵＦセル３３０ａ〜ｄは、並列に競合化を開始するように構成される。さらなる実施形態では、各々のＰＵＦセルの出力は、その後の比較のためにラッチされ、および／または一時的に格納される。
【００５１】
制御回路３４１は、各々のＰＵＦセルからの出力の生成を可能にする。いくつかの実施形態では、各々のＰＵＦセルは、制御回路３４１からの信号に応答して出力を生成するだけである。いくつかの実施形態では、制御回路は、ＰＵＦセル入力を制御することによってＰＵＦセルのペアリングを割り当てる。いくつかの実施形態では、ＰＵＦセルの出力はマルチプレクサに接続され、制御回路３４１はマルチプレクサ３４３ａ〜ｂを使用してどのＰＵＦセルが競合化されているかを制御する。
【００５２】
ＰＵＦセル３３０ａ〜ｄは、各々のＰＵＦセル回路に特有の固有のハードウェア特性に基づいて出力を生成する。ＰＵＦセルの例には、ＲＯ  ＰＵＦ、アービタＰＵＦ、他の遅延ベースのＰＵＦ、または出力値を比較するために使用可能な任意のＰＵＦ実装が含まれる。決定論的に測定され、事前に予測されることなく比較され得るデバイス固有の任意の特性は、ＰＵＦ出力を生成するために使用され得ることを理解されたい。
【００５３】
各々のＰＵＦセル３３０ａ〜ｄの出力は、出力バッファ３４２ａ〜ｄのそれぞれのものによってバッファされる。出力バッファ３４２ａ〜ｄは、ＰＵＦセル３３０ａ〜ｄの各々の出力をバッファリングするための任意の好適な回路であってもよい。マルチプレクサ３４３ａ〜ｂの各々は、ＰＵＦセル３３０ａ〜ｄのうちの１つの出力を選択してＰＵＦセルの１つのペアを形成するために使用される。制御回路３４１は、ＰＵＦセルペアリングを割り当て、各々のマルチプレクサ３４３ａ〜ｂの入力を構成してＰＵＦセルのペアを競合化する。いくつかの実施形態では、マルチプレクサ３４３ａ〜ｂの各々は、ＰＵＦセル３３０ａ〜ｄの全て、サブセット、または任意の好適な組み合わせに接続される。
【００５４】
カウンタ３４５ａ〜ｂは、競合化されているＰＵＦセルの出力を受け取り、比較可能な出力を測定する。いくつかの実施形態では、ＰＵＦセルは、リング発振器であり、カウンタは、ＰＵＦセル出力の遷移をカウントして周波数の測定値を決定する。いくつかの実施形態では、カウンタは、アナログ−デジタル変換器、または比較に好適な出力を生成するための別の好適な回路要素であってもよい。いくつかの実施形態では、カウンタ３４５ａ〜ｂは、その後の比較のためにＰＵＦセル出力をラッチすることができる。
【００５５】
コンパレータ３４７は、カウンタ２４５ａ〜ｂの出力を受け取り、比較する。いくつかの実施形態では、コンパレータは、ＰＵＦセルの各々ペアの勝者および敗者を決定するためのアービタまたは他の好適なバイナリコンパレータである。いくつかの実施形態では、コンパレータは、出力ビットを生成する。出力ビットは、図１のＰＵＦセルペアリングを参照して論じたように、エントロピーのフルビットを表すことができる。好適なエントロピービット数、例えば、３２、６３、１２８、または２５６ビットの完全エントロピー、を生成するために、ＰＵＦコア３０５は、先のラウンドの結果に依存し得るペアリングを使用してＰＵＦセルを複数のラウンドでペアリングおよび競合化することができる。
【００５６】
図４Ａ〜Ｃは、いくつかの実施形態による、ＰＵＦセル４３０ａ〜ｈについての競合順序付けの例示的なラウンドを示す。図４Ａは、ペアリング３５１ａ〜ｄの例示的な第１のラウンドを表す。図４Ｂは、ペアリング３５３ａ〜ｂおよび３５５ａ〜ｂの例示的な第２のラウンドを示す。図４Ｃは、ペアリング３５７ａ〜ｂおよび３５９ａ〜ｂの例示的な第３のラウンドを表す。図４Ａ〜Ｃの例示的な実施形態では、８つのＰＵＦセル４３０ａ〜ｈが競合化され、図４Ａ〜Ｃの３ラウンドのＰＵＦセルの数の２進対数にラウンドの数を制限することにより、エントロピーのフルビットが、各々の競合によって生成することを可能にする。付加的に、一実施形態によれば、ＰＵＦセルは、ラウンド毎に１回競合化される。ラウンドごとにＰＵＦセルを１回競合化させることにより、各々の競合がエントロピーのフルビットを作製することが保証される。図４Ａ〜Ｃの例では、ＰＵＦセル４３０ａ〜ｈの速度は、アルファベット順に減少し、例えば、ＰＵＦセル４３０ａは、ＰＵＦセル４３０ｂに対して勝利し、ＰＵＦセル４３０ｃに対して勝利し、ＰＵＦセル４３０ｄに対して勝利するなど、いかなるラウンドにも勝利しない最も遅いＰＵＦセル４３０ｈに続く。ＰＵＦセルの速度の順序付けは、任意の競合前のＰＵＦコアには知られておらず、説明のためにのみ提供されている。ＰＵＦセル４３０ａ〜ｈは、各々のＰＵＦデバイスの速度の任意の順序付けを示すことができ、各々の順序付けはデバイス固有のものであってもよい。
【００５７】
図４Ａは、ペアリングおよび競合の例示的な第１のラウンドを示す。第１のラウンドにおいて、各々のＰＵＦセルは、隣接するＰＵＦセルとペアリングされる。ＰＵＦセル４３０ａは、ＰＵＦセル４３０ｂとペアリングされる。ペア内の各々のＰＵＦセルは、出力を生成し、ＰＵＦセル４３０ａは、競合３５１ａの勝者であると決定される。ＰＵＦセル４３０ｃは、ＰＵＦセル４３０ｄとペアリングされており、ＰＵＦセル４３０ｃは、競合３５１ｂの勝者である。ＰＵＦセル４３０ｅは、ＰＵＦセル４３０ｆとペアリングされており、ＰＵＦセル４３０ｅは、競合３５１ｃの勝者である。ＰＵＦセル４３０ｇは、ＰＵＦセル４３０ｈとペアリングされており、ＰＵＦセル４３０ｇは、競合３５１ｄの勝者である。競合３５１ａ〜ｄは各々、エントロピーのフルビットを生成する。その後ラウンドのペアリングは、図４Ａに示す第１のラウンドの結果に基づいて決定される。
【００５８】
図４Ｂは、ペアリングおよび競合の例示的な第２のラウンドを示す。図４Ｂの例では、競合３５３ａ〜ｂは、ＰＵＦセル間にあり、１回の勝利は図４Ｂの右側に示されている。競合３５５ａ〜ｂは、１つの敗北を有するＰＵＦセルの間にあり、図４Ｂの左側に示されている。
【００５９】
図４Ａ〜Ｂの例では、競合３５３ａ〜ｂおよび３５５ａ〜ｂのペアは、第１のラウンドから２ペア（例えば、競合３５１ａおよび３５１ｂ）を選択し、各々選択されたペアの勝者と各々選択されたペアの敗者をペアリングすることによって決定される。いくつかの実施形態では、ペアは、順次順序付けされ、第２のラウンドの順序付けは、ペアｉの競合勝者（敗者）とペアｉ＋１の勝者（敗者）をペアリングにすることによって決定される。
【００６０】
図４Ｂの例では、ＰＵＦセル４３０ａおよび４３０ｃは、各々が、それぞれ競合３５１ａおよび３５１ｂを勝利したのでペアリングされる。それに対応して、ＰＵＦセル４３０ｂおよび４３０ｄは、競合３５１ａおよび３５１ｂの敗者であり、第２のラウンドにおいてペアリングされる。付加的に、ＰＵＦセル４３０ｅおよび４３０ｇは、各々が、それぞれ競合３５１ｃおよび３５１ｄを勝利したためペアリングされる。ＰＵＦセル４３０ｆおよび４３０ｈは、競合３５１ｃおよび３５１ｄの敗者であり、第２のラウンドにおいてペアリングされる。
【００６１】
図４Ｃは、ペアリングおよび競合の例示的な第３のラウンドを示す。第３のウンドでは、いくつかの実施形態では、先の勝者（敗者）は、先のラウンドの勝者（敗者）とペアリングされ得る。いくつかの実施形態では、ＰＵＦセルは、各々のセルが２ラウンド前に勝利したかまたは敗北したＰＵＦセル間でそれぞれの競合を勝利したか敗北したかに基づいてペアリングされる。例えば、ＰＵＦセル４３０ｂ各々の４３０ｆは、図４Ｂの敗者側に勝利した後に競合化される。
【００６２】
いくつかの実施形態では、同一のレコードを有するＰＵＦセルがペアリングされる。さらなる実施形態では、第３のラウンドで競合化されたＰＵＦセルは、第１のラウンドまたは第２のラウンドのいずれにおいても同じＰＵＦセルのいずれとも競合化しなかった。いくつかの実施形態では、ＰＵＦセルは、ペア内のＰＵＦセルが同じ順序でそれぞれの競合を勝利し、敗北するようにペアリングされる。例えば、ＰＵＦセル４３０ｂおよび４３０ｆは、ラウンド１で敗北し、ラウンド２で勝利した後、ラウンド３でペアリングされる。
【００６３】
いくつかの実施形態では、ＰＵＦセル４３０ａ〜ｈは、ＰＵＦセルのペアを組み合わせることによってグループ化される。ＰＵＦセルのグループ化は、競合制御信号の任意の好適なデータ構造または順序付けを使用して仮想的に行われてもよい。いくつかの実施形態では、ＰＵＦセルのグループは、ＰＵＦセルの順序付けられたリストの継続部分および／または連続部分であり得る。例えば、いくつかの実施形態では、新しいグループは、連続ＰＵＦセルの数（２ｒ、ｒはラウンドの数）の２のべき乗の数を含有すると見なすことができる。さらなる実施形態では、ＰＵＦセルのグループは、１つ以上のハッシュテーブル、メモリアレイ、またはルックアップテーブルを使用して追跡される。
【００６４】
ＰＵＦセルは、先のラウンドでペアリングされているＰＵＦセルが一緒にグループ化されるようにグループ化することができる。いくつかの実施形態では、ＰＵＦセルの２つのグループを選択し、第１のグループ内の各々のＰＵＦセルを第２のグループ内のそれぞれのＰＵＦセルとペアリングすることによって、その後のラウンドのペアリングが割り当てられる。図４Ａの例では、各々の競合３５１ａ〜ｄ内のＰＵＦセルは、各々２つのＰＵＦセルを有するグループを形成することができる。図４Ｂの例では、ＰＵＦセル４３０ａ〜ｂを有するグループおよびＰＵＦセル４３０ｃ〜ｄを有するグループが組み合わされて、ＰＵＦセル４３０ａ〜ｄを有するグループを形成する。第２のグループは、ＰＵＦセルの残りの半分であるＰＵＦセル４３０ｅ〜ｈを含むように形成することができる。ＰＵＦセルの半分を含有するグループは、第３のラウンドのペアリングを割り当てるために使用される。２つのグループのうちの１つに各々１つのＰＵＦセルを有するペアを選択することによって、ＰＵＦセルの先の競合相手は、同じグループ内にあるので、いずれかのＰＵＦセルの先の競合相手に交差は存在しない。したがって、ＰＵＦコアは、競合の結果に関する事前情報を持たず、エントロピーのフルビットが生成する。
【００６５】
いくつかの実施形態では、ＰＵＦセルをグループ化して特定のペアリングを割り当てることができる。例えば、同じ数のペアリングを勝利したＰＵＦセルをペアリングにすることに加えて、同じ順序でペアリングを勝利したまたは敗北したＰＵＦセルをペアリングすることが望ましい場合がある。第２のグループ内の各々ＰＵＦセルと第１のグループ内の各々のＰＵＦセルとのペアリングの例では、ラウンド２におけるペアで始めると、ペア内の各々のＰＵＦセルが同じレコードを有し、１つのＰＵＦセルが勝利し、１つのＰＵＦセルが敗北するので、各々のＰＵＦセルは、少なくとも１つラウンドにおけるグループ内の各々の他のＰＵＦセルの勝利および敗北とは異なる一連の勝利および敗北を有する。したがって、グループ内の各々のＰＵＦセルは、固有の一連の勝利および敗北を有する。さらに、各々のグループ内のＰＵＦセルの数は、勝利および敗北の可能な順序付けの数、つまりラウンド数の２のべき乗に等しいので、各々のグループは、可能な固有の一連の勝利および敗北ごとに１つのＰＵＦセルを有する。したがって、例示的な形態でペアリングされたグループは同一のサイズであるので、ＰＵＦセルを同一のレコードと一致させることによって、その後のラウンドのためのペアリングを行うことができる。ＰＵＦセルのグループは、任意の好適な形態で組み合わせるか、またはペアリングされ得る。いくつかの実施形態では、ルックアップテーブル、アレイ、ビットマップ、または任意の好適なデータ構造を使用して一連の勝利および敗北を追跡することができる。
【００６６】
上述したように、ラウンド数がＰＵＦセルの数の２進対数（ｌｏｇ２（Ｎ）、ここでＮはＰＵＦセルの数）を超えた後、各々のペアリングのエントロピーはフルビットよりも小さくなり得る。いくつかの実施形態では、ＰＵＦコアは、追加のラウンドを進めて、ＰＵＦセルの競合順序をさらに決定することができる。例えば、ＰＵＦコアは、２つのペアが先にペアリングされていない場合、先のラウンドの勝者（敗者）であったＰＵＦセルと、前回のラウンドの別の勝者（敗者）とを競合化することができる。場合によっては、ＰＵＦセルのトポロジーに依存して、これらの追加の競合がゼロの情報を生ずることがある。例えば、ＰＵＦセルがそれぞれ同じ相手に勝利し、敗北した場合、１つのＰＵＦセルがペアリングされたＰＵＦセルに対して勝利するという推移的特性から明らかであり得る。
【００６７】
図５Ａは、いくつかの実施形態による、ＰＵＦセルを競合化し、エラー訂正された結果を生成するための例示的なタイミング図を示す。図５Ａは、複数のＰＵＦセルを使用して、例えばＰＵＦコア（例えば、１０５）によって実行され得るプロセスフロー５００を示す。
【００６８】
プロセスフロー５００は、作用５０１で開始し、いくつかの実施形態では、Ｎ個のＰＵＦセルがＮ／２個のペア内で競合化される。いくつかの実施形態では、作用５０１の競合は反復的に実行されてもよく、復号化は、一定回数の反復の後に実施されてもよい。図１、図３、図５、図８、および図９を参照して説明したように、Ｎ／２のペアのＰＵＦセルを競合化され得る。
【００６９】
作用５０３において、Ｎ／２の競合の結果、Ｎ／２ビットは、任意の好適なエラー訂正符号（例、ＥＣＣデコーダ１１９）を使用して復号化される。いくつかの実施形態では、任意のＰＵＦセルの出力は，ノイズが多い可能性がある。いくつかの実施形態では、ＰＵＦセルは、堅牢な比較、例えば各々のＰＵＦセルの応答温度によって影響されない競合を作製するように構成されてもよいが、依然として弱いＰＵＦセルまたは接近したノイズの多い競合を有する可能性があり得る。いくつかの実施形態では、エラー訂正は、暗号法デバイス（例えば１００）の異なる部分と共有されるＥＣＣデコーダ（例えば１１９）を使用して実施することができる。いくつかの実施形態では、ＥＣＣデータは、暗号化／コミットメントフェーズ中に競合結果の各々のラウンドごとに作成される。
【００７０】
作用５０５では、第１のラウンドの結果に基づいてペアリングを使用して、第２のラウンドの競合が実施される。図５Ａの例示的な実施形態では、作用５０５における各々のペアリングは、作用５０３においてペアリングを決定するために必要な結果が復号化されるまで決定されない。いくつかの実施形態では、全ての第１のラウンドの結果が、同じエラー訂正プロセスにおいて同時に復号化される。いくつかの実施形態では、第２のラウンドペアの割り当ては、第１のラウンド結果の全てが復号化されるまで開始しない。いくつかの実施形態では、競合の一部（例えば、８、１６、３２、または６４競合）競合が、復号化され、第２のラウンドのペアリングが、第１のラウンドの結果の復号化された部分に基づいて選ばれ得る。いくつかの実施形態では、作用５０１の競合が完了すると、第２のラウンドの競合が推測的に進行する。作用５０３でエラーが検出されない場合、推論的競合の結果は、有効な結果として確認され得る。エラーが検出された場合、推論的競合の結果は破棄および／または無効化され、少なくともエラーの影響を受けた競合が繰り返される可能性がある。
【００７１】
プロセスフロー５００は、第２のラウンドの競合の結果が、作用５０３と同様にエラー訂正符号を使用して復号化されるとき、作用５０７で終了する。いくつかの実施形態では、復号化された結果は、出力、ＰＵＦ出力として提供され、Ｎ個の競合およびＮ個のＰＵＦセルからのＮビットのエントロピーで十分である。いくつかの実施形態では、ＰＵＦセルの数Ｎは、エントロピーの所望のビット数より小さくてもよく、プロセスフローは、同様のシリアル化された形態で追加のラウンドを続ける。
【００７２】
図５Ｂは、いくつかの実施形態による、ＰＵＦセルを競合化し、エラー訂正された結果を生成するための例示的なタイミング図を示す。図５Ｂは、複数のＰＵＦセルを使用して、例えばＰＵＦコア（例えば、１０５）によって実行され得るプロセスフロー５１０を示す。
【００７３】
プロセスフロー５１０は、作用５１１で開始し、いくつかの実施形態では、Ｎ個のＰＵＦセルがＮ／２ペア内で競合化される。例えば、作用５０１および図１、３、５、８および９を参照して説明したように、Ｎ／２ペアのＰＵＦセルを競合化され得る。
【００７４】
作用５１３において、Ｎ／２の競合の結果、Ｎ／２ビットは、任意の好適なエラー訂正符号（例、ＥＣＣデコーダ１１９）を使用して復号化される。いくつかの実施形態では、任意のＰＵＦセルの出力は，ノイズが多い可能性がある。いくつかの実施形態では、ＰＵＦセルは、堅牢な比較、例えば各々のＰＵＦセルの応答温度によって影響されない競合を作製するように構成されてもよいが、依然として弱いＰＵＦセルまたは接近したノイズの多い競合を有する可能性があり得る。いくつかの実施形態では、エラー訂正は、暗号法デバイス（例えば１００）の異なる部分と共有されるＥＣＣデコーダ（例えば１１９）を使用して実施することができる。
【００７５】
いくつかの実施形態では、復号化された結果は、最終的なＰＵＦ出力値で使用されるが、プロセスフロー５１０の残りの動作には必要ではなく、任意の好適な時間に復号化されてもよい。いくつかの実施形態では、作用５１３および５１７における復号化は、実質的に同時に実施されてもよい。
【００７６】
作用５１５では、第２のラウンドの競合が、第１のラウンドの結果に基づくペアリングを使用して実施される。図５Ｂの例示的な実施形態では、作用５１５における各々のペアは、作用５１１における競合のエラー訂正結果なしに決定される。ペアは先のラウンドの結果に基づいて割り当てられるので、出力内のビットエラーは、第２のラウンドにおいて、２つの誤ったペアリングをもたらし、したがって第２のラウンドの結果において、２つのエラーをもたらす可能性がある。いくつかの実施形態では、ビットエラーの数が各々のラウンドの２倍になるように、エラーが伝播することがある。このエラー伝播を訂正するには、シリアル化されたプロセスフロー５００のために必要とされるよりもかなり複雑なエラー訂正符号が必要になることがある。例えば、プロセス５１０のエラー訂正が、全ての結果に対して同時に動作し、および／または２倍以上のエラーを検出／訂正することが必要な場合がある。
【００７７】
プロセスフロー５１０は、第２のラウンドの競合の結果が、作用５１３と同様にエラー訂正符号を使用して復号化されるとき、作用５１７で終了する。いくつかの実施形態では、復号化された結果は、出力、ＰＵＦ出力として提供され、Ｎ個の競合およびＮ個のＰＵＦセルからのＮビットのエントロピーで十分である。いくつかの実施形態では、ＰＵＦセルの数Ｎは、エントロピーの所望のビット数よりも小さくてもよく、プロセスフローは追加のラウンドで継続する。
【００７８】
図６は、いくつかの実施形態による、ＰＵＦを使用して秘密を符号化するためのコミットメントフェーズのための例示的なプロセスフロー６００を示す。図６に示すプロセスは、ＰＵＦ出力（例えば、１０７および１１５）を生成するように構成されている暗号法デバイス（例えば、１００）によって実行することができる。いくつかの実施形態では、プロセス６００は、ＰＵＦを使用して生成したヘルパーデータに秘密をバインドまたはマッピングする。
【００７９】
例示的なプロセスフロー６００は、ステップ６０１で開始し、ここで暗号化デバイスは秘密Ｋを得る。秘密は、デバイスのユーザが秘密、例えば秘密暗号キー、であるままにしたい暗号化デバイスへの入力に好適な任意の一連のビットであってもよい。秘密は、デバイスへの入力として提供され、いくつかの実施形態では、複数の秘密が、デバイスを使用して一意的に暗号化され、解読化され得る。
【００８０】
作用６０３で、暗号化デバイスは、ＥＣＣエンコーダ（例えば、１０３）を使用してＥＣＣデータを作製するために秘密ＫにＥＣＣを適用する。作用６０５で、ＥＣＣエンコーダによって生成したＥＣＣデータが秘密Ｋに付加される。ＥＣＣデータはまた、任意の好適な記憶媒体に格納されてもよく、直接付加されることなく秘密に関連付けられてもよい。ＥＣＣエンコーダは、任意の好適なＥＣＣコードを使用してＥＣＣデータを計算し、秘密を正常に復元するための任意の好適な数のビットエラーを訂正するように構成することができる。いくつかの実施形態では、ＥＣＣエンコーダは、ＢＣＨ（Ｂｏｓｅ−Ｃｈａｕｄｈｕｒｉ−Ｈｏｃｑｕｅｎｇｈｅｍ）符号化を実施する。
【００８１】
作用６０７において、暗号化デバイスは、ＰＵＦコア（例えば、ＰＵＦコア１０５）を使用してＰＵＦ（例えば、ＰＵＦ１０７）を生成する。ＰＵＦコアは、ＰＵＦを生成するための任意の好適な回路またはシステムとすることができる。いくつかの実施形態では、ＰＵＦコアは、ＰＵＦコアに含まれ得る１つ以上のＰＵＦセルの固有の物理的特性に依存する出力を生成する回路を含むことができる。例えば、製造プロセスおよび部品の変動は、固有のハードウェア特性を有する電気回路を含むチップを作製し得る。ＰＵＦセルの例には、リング発振器、アービタＰＵＦ、他の遅延ベースのＰＵＦ、または同一に設計された回路からの出力値を比較する任意のＰＵＦ実装が含まれる。いくつかの実施形態では、ＰＵＦコアは、例えば制御回路１２３によってＰＵＦ（例１０７または１１５）を生成するように指示され、ＰＵＦコアへの任意の入力に基づいていないＰＵＦを作製する。
【００８２】
いくつかの実施形態では、ＰＵＦは、秘密１０１を難読化するのに好適な一連のビットである。いくつかの実施形態では、各々のＰＵＦは、各々の競合の結果がＰＵＦ内のそれぞれのビット位置に対応するＰＵＦセルの競合化ペアによって生成されたエントロピーのビット数（例３２、６４、１２８または２５６ビット）を含む。いくつかの実施形態では、ＰＵＦ内の各々のビットは、エントロピーのフルビットを表す。いくつかの実施形態では、将来のＰＵＦ結果を復号化するためのＥＣＣデータがコミットメントフェーズおよび作用６０７中に生成する。例えば、ＰＵＦセルの最適な競合化戦略を使用したＰＵＦを生成するためのシステムおよび方法は、本開示にわたって説明される。
【００８３】
作用６０９において、暗号化デバイスは、出力語Ｗ（例えば、ヘルパーデータ１１１）を作製するために、ＰＵＦデータを使用して秘密Ｋおよび付加されたＥＣＣデータを難読化する動作（たとえば、演算器１０９を使用して）を実施する。この動作は、ヘルパーデータＷを正確なＰＵＦなしで秘密Ｋを決定するために使用することができないように、秘密Ｋを難読化するためにＰＵＦを使用するための任意の好適な動作であり得る。この動作は、ヘルパーデータＷから秘密Ｋの復元を可能にする任意の可逆動作または一連の動作であってもよい。いくつかの実施形態では、動作は、それ自身の逆であってもよいビット毎のＸＯＲ動作である。いくつかの実施形態では、動作は、ＰＵＦに基づいて秘密Ｋのビットに対応する出力ビットを変更することによって、秘密Ｋをマスクする。
【００８４】
図７は、いくつかの実施形態による、ＰＵＦを使用して秘密を復号化するための復元フェーズのための例示的なプロセスフロー７００を示す。図７に示すプロセスは、ＰＵＦ出力（例えば、１０７および１１５）を生成するように構成されている暗号法デバイス（例えば、１００）によって実行することができる。いくつかの実施形態では、プロセス７００は、コミットメントフェーズ中に生成したヘルパーデータを使用して符号化された秘密を再生する。
【００８５】
例示的なプロセスフロー７００は、ステップ７０１で開始し、そこで暗号化デバイスは、入力語を取得する（例えば、１１３）。入力語は、暗号化デバイスへの入力に好適な任意の一連のビットであってもよい。入力ヘルパーデータが暗号化プロセスからの出力ヘルパーデータと一致する場合、入力語を使用して秘密を解読化することができる。
【００８６】
作用７０３で、暗号化デバイスは、ＰＵＦコア（例えば、ＰＵＦコア１０５）を使用してＰＵＦ出力（例えば、１１５）を生成する。ＰＵＦ出力は、図３、図４Ａ〜Ｃ、および図５Ａ〜Ｂを参照して説明したように生成することができる。いくつかの実施形態では、ＰＵＦコアの出力は、先のラウンドの結果に依存する第１のラウンドの後に割り当てられたペアリングによってラウンドにおいて生成する。いくつかの実施形態では、ＰＵＦ出力の生成は、制御回路（例えば、１２３）またはＰＵＦコア内のプロセッサまたは制御回路によって制御される。
【００８７】
作用７０５で、暗号化デバイスは、秘密を推定するためにコミットメントフェーズの間に秘密Ｋおよび付加されたＥＣＣデータを難読化するために使用される（たとえば演算器１０９を使用して）動作の逆（例えば、演算器１１７を使用して）を実施する。動作は、暗号化中に秘密を難読化し、入力ヘルパーデータから秘密を推定するために使用される動作（複数可）を反転するための任意の好適な動作または一連の動作であってもよい。いくつかの実施形態では、動作は、ＸＯＲまたはマスキング動作であってもよい。
【００８８】
作用７０７で、暗号化デバイスは、ＥＣＣを使用して（例えば、ＥＣＣデコーダ１１９を使用して）復号化して秘密の推定値を復号化して復元された秘密Ｋを作製する。元の暗号化された秘密は、入力ヘルパーデータ１１３から復元され、暗号化出力ヘルパーデータが解読入力ヘルパーデータと一致する場合は秘密と一致する。いくつかの実施形態では、暗号化出力ヘルパーデータは、メモリに格納されるか、またはユーザに送信される。いくつかの実施形態では、ＰＵＦコアの出力は、暗号化デバイスの外部に格納されず、または送信されない。
【００８９】
図８は、いくつかの実施形態による、ＰＵＦ出力を生成するためにＰＵＦセルのラウンドを競合化するための例示的なプロセスフローを示す。図８に示すプロセスは、ＰＵＦ出力（例えば、１０７および１１５）を生成するように構成された暗号法デバイス（例えば、１００）または本明細書で論じられる、例えば、図１、図３、図４Ａ〜Ｃおよび図５Ａを参照して論じられる、システムおよび方法のいずれかによって実行されてもよい。
【００９０】
プロセス８００は、作用８０１で開始し、ここで、暗号化デバイスは、ＰＵＦセルの第１のラウンドペアリングを割り当てる。いくつかの実施形態では、第１のペアリングは、ＰＵＦ出力を再生するために再生可能なペアの任意の好適なマッピングであってもよい。例えば、ペアリングの第１のラウンドは、隣接するＰＵＦセルをペアリングすることができる。いくつかの実施形態では、ＰＵＦセルは、１〜Ｎまで順序付けられ、および／または番号が付けられる。第１のラウンドでは、奇数番号のＰＵＦセルは、隣り合う偶数番号のＰＵＦセルとペアリングされ得、例えば、ＰＵＦセル１および２、ＰＵＦセル３および４、ＰＵＦセル５および６、…、およびＰＵＦセルＮ−１およびＮをペアリングする。いくつかの実施形態では、ＰＵＦセルは、Ｎ／２個の空間または別の好適な距離によって分離された利用可能なＰＵＦセルとペアリングされる。いくつかの実施形態では、第１のラウンドのＰＵＦセルペアリングは、ＰＵＦセルの任意のペア毎のマッピングを表す。
【００９１】
作用８０３では、作用８０１でペアリングされるＰＵＦセルは、競合化され、ラウンドの各々のペアの勝者と敗者を決定する。いくつかの実施形態では、第１のペアリングにおけるＰＵＦセルの各々のペアは、ペア内の各々のＰＵＦセルに出力を生成すること、および／またはイネーブルすることによって競合化される。いくつかの実施形態では、出力のバイナリ比較に基づいて、各々のペアの１つのＰＵＦセルが勝者であると決定し、各々のペアの１つのＰＵＦセルが敗者であると決定する。例えば、ＰＵＦセルがリング発振器を含む場合、各々の発振器の出力遷移を、より多くのカウントを作製し、勝者と決定するより高い周波数の発振器によって一定期間カウントして比較することができる。いくつかの実施形態では、アービタベースのＰＵＦは、アービタ出力を２つの遅延経路の各々に関連付けることができる。好適なＰＵＦセルとして他の遅延ベースのＰＵＦを使用してもよいことを理解されたい。
【００９２】
作用８０５では、作用８０３で行なわれた競合のラウンドの結果が、エラー訂正符号を使用して復号化される。結果は、例えば、図５Ａを参照して説明したように、復号化されてもよい。競合の結果は、任意の好適なエラー訂正符号（例えば、ＥＣＣデコーダ１１９）を使用して復号化される。いくつかの実施形態では、任意のＰＵＦセルの出力は，ノイズが多い可能性がある。いくつかの実施形態では、エラー訂正は、暗号法デバイス（例えば１００）の異なる部分と共有されるＥＣＣデコーダ（例えば１１９）を使用して実施することができる。いくつかの実施形態では、ＥＣＣデータは、暗号化／コミットメントフェーズ中に競合結果の各々のラウンドごとに作成される。いくつかの実施形態では、競合結果のラウンドを復号化するために使用されるＥＣＣデータは、符号化されている秘密の一部（例えば、ラウンドにおける競合数に等しいビット数）に基づいて作成されてもよい。さらなる実施形態では、ラウンドの結果は、競合のラウンドの結果から生成した復元された秘密の一部（例えば、ラウンドにおける競合数に等しいビット数）および秘密を符号化するために使用されたヘルパーデータを使用して復号化され得る。
【００９３】
作用８０７で、暗号化デバイスは、ラウンド数の限界に達したかどうかをチェックする。前述の議論から、各々の競合がエントロピーのフルビットを作製することを保証するために、ペアリングのラウンドの数は、ＰＵＦセルの数Ｎの２進対数に制限されてもよいことが理解されるべきである。この後、ＰＵＦセルの競合順序付けは主に決定され、将来の競合は完全なエントロピーよりも少なくなる可能性がある。Ｎ−１ラウンド後、各々の可能性のあるＰＵＦセルのペアリングが競合化されている可能性がある。
【００９４】
ラウンド制限に達していない場合、プロセスは、作用８０９で先のラウンドの結果に基づいてＰＵＦセルに追加ラウンドのペアリングを割り当てることによって反復する。
【００９５】
上述したように、先にペアリングされていないＰＵＦセルまたは共通の相手が競合化された場合、競合の結果を予測するために使用することができる事前情報がないため、エントロピーのフルビットが競合の結果によって生成され得る。いくつかの実施形態では、先のラウンドの勝者（敗者）に対する勝者（敗者）を競合化することは、類似のレコードおよび／または勝利および敗北の同一のレコードを有するＰＵＦセルをペアリングし、エントロピーのフルビットを生成し得る。いくつかの実施形態では、Ｎ個のＰＵＦセルは、１ラウンド当たりＮ／２個のペアで競合化される。したがって、各々のラウンドでは、Ｎ／２個のＰＵＦセルが共通の相手を伴わずにペアングされるので、Ｎ／２ビットのエントロピーが生成することがある。２回のラウンドにおいて、Ｎ個のＰＵＦセルが、Ｎビットのエントロピーを生成することができる。
【００９６】
いくつかの実施形態では、ＰＵＦセルのペアリングは、ＰＵＦコア１０５および／または制御回路１２３によって選択され、ペアリングされたＰＵＦセルが共通の過去の相手を持たないように保証する。いくつかの実施形態では、選択は、例えば、各々のＰＵＦセルが直面する相手のセットを追跡し、相手のセットがヌル交差を有するペアを選択することによって、能動的に実施される。いくつかの実施形態では、競合順序付けは、過去の共通の相手を防ぐためにＰＵＦセルをグループ化する。
【００９７】
いくつかの実施形態では、競合順序付けを使用して、完全なエントロピーが各々のペアリングおよび／または競合によって生成する条件を作成する。第１のラウンドでは、競合が実施されていないため、ＰＵＦセルは、共通の相手を持つことはできない。いくつかの実施形態では、第１のラウンドの各々の勝者は、第１のラウンドの別の勝者とペアリングされ、各々の敗者は、別の敗者とペアリングされる。この方法で割り当てられた第２のラウンドでは、各々の勝者（敗者）が先に正確に１人のそれぞれの敗者（勝者）と競合化されていたので、ＰＵＦセルペアは、相手の交差履歴を有することができない。いくつかの実施形態では、先のラウンドの勝者（敗者）が先の勝者（敗者）とペアリングされるように、第３のラウンドのペアリングが割り当てられる。いくつかの実施形態では、同じレコードを有し、同じ順序で競合を勝利および／または敗北したＰＵＦセルが、ペアリングされる。
【００９８】
ラウンド制限に達すると、作用８１１で、競合の結果が出力される。いくつかの実施形態では、各々のＰＵＦセル競合のバイナリ結果は、出力内のそれぞれの位置を占める。例えば、第１のラウンドの競合は、第１の６４ビットの出力を提供し、第２のラウンドの競合は第２の６４ビットの出力を提供することができる。いくつかの実施形態では、各々の競合の出力は、任意の好適な決定論的マッピングに従ってＰＵＦ出力の位置にマッピングされる。
【００９９】
図９は、いくつかの実施形態による、ＰＵＦ符号化においてエントロピーを生成する方法のための例示的なプロセスフローを示す。図９に示されるプロセスは、本明細書、例えば、図１、図３、図４Ａ〜Ｃ、図５Ａ〜Ｂおよび図８を参照して論じられる、システムおよび方法のいずれかのＰＵＦ出力（例えば、１０７および１１５）を生成するように構成された任意の好適なプロセッサまたは制御回路（例えば、１０５または１２３）によって実行され得る。
【０１００】
プロセス９００は、少なくとも１つのプロセッサが、第１のラウンドにおいて、複数のＰＵＦセルのそれぞれのものの第１のペアリングを割り当てるとき、作用９０１で開始する。いくつかの実施形態では、各々のＰＵＦセルは、それぞれのリング発振器回路を含む。いくつかの実施形態では、各々のＰＵＦセルは、それぞれが同一に設計された回路を含み、製造プロセスの変動に起因するそれぞれの同一に設計された回路間の差異を有する。ペアリングは、例えば、図１、図４Ａ、および図８のいずれかを参照して説明したように割り当てられてもよい。
【０１０１】
作用９０３では、第１のラウンドにおいて、複数のＰＵＦセルの各々からのそれぞれの第１の出力が生成する。第１の出力は、第１のペアリングにおけるＰＵＦセルの各々のペアの勝者を含む、第１のラウンドの結果を決定するために使用される。いくつかの実施形態では、処理回路は、例えば図３を参照して説明したように、競合化で使用されるＰＵＦセルをイネーブルし選択することができる。いくつかの実施形態では、カウンタおよびコンパレータを使用して、勝利および敗北のリング発振器を決定する。いくつかの実施形態では、アービタは勝ち残り遅延パスを決定する。いくつかの実施形態では、ＰＵＦセルの各々のペアの勝者は、ペア内の各々のＰＵＦセルのそれぞれの出力のバイナリ比較の出力に関連付けられる。
【０１０２】
いくつかの実施形態では、処理回路は、第２のラウンドおよび作用９０５に先立って複数のＰＵＦセルの各々からのそれぞれの第１の出力にエラー訂正符号を適用する。競合結果は、例えば、図５Ａを参照して論じたように、復号化されてもよい。いくつかの実施形態では、秘密が暗号化されているコミットメントフェーズ中に競合結果についてＥＣＣヘルパーデータが計算される。
【０１０３】
作用９０５では、第１のラウンドに続く第２のラウンドにおいて、複数のＰＵＦセルのそれぞれものの第２のペアリングが、第１のラウンドの結果に基づいて割り当てられる。いくつかの実施形態では、ペアリングの第２のラウンドは、図１、図３、図５Ｂ、および図８を参照して説明したように割り当てられる。いくつかの実施形態では、第１のペアリングにおけるＰＵＦセルの各々のペアのそれぞれの勝者が別の勝者とペアリングされ、敗北したＰＵＦセルが敗北したＰＵＦセルとペアリングされるようにペアリングが割り当てられる。いくつかの実施形態では、先のラウンドの第１のペアの第１の勝者は、先のラウンドの第２のペアの第２の勝者とペアリングされる。いくつかの実施形態では、第１のラウンドにおける第１のペア内のＰＵＦセルは、第１のラウンドにおける第２のペア内のＰＵＦセルとペアリングされる。いくつかの実施形態では、同じ順序で競合を勝利したかまたは敗北したＰＵＦセルがペアリングされる。いくつかの実施形態では、競合化したＰＵＦセルが同じグループにあるようにＰＵＦセルをグループ化し、第１のグループの各々のＰＵＦセルを第２のグループのそれぞれのＰＵＦセルとペアリングすることによってペアを割り当てることができる。
【０１０４】
作用９０７では、第２のラウンドにおいて、複数のＰＵＦセルのそれぞれからのそれぞれの第２出力が生成し、第２ペアのＰＵＦセルの各々のペアの勝者を含む第２のラウンドの結果が決定される。いくつかの実施形態では、各々のラウンドにおける各々の競合の勝者を表すビットが生成する。いくつかの実施形態では、第１のラウンドと第２のラウンドのペアリングは、ＰＵＦセルの数に等しい数のエントロピーのフルビットを生成する。
【０１０５】
作用９０９では、第１のラウンドの結果および第２のラウンドの結果に基づいてＰＵＦ出力が生成する。ＰＵＦ出力は、任意の好適な数のビット（例えば、３２、６４。１２８、または２５６ビット）を含むことができる。ＰＵＦ出力は、秘密を難読化するために使用することができる（例えば、難読化の結果を秘密を明らかにすることなく公開することができるように秘密の部分を隠す、符号化する、および／または暗号化する）。ＰＵＦ出力はまた、秘密の難読化の間に作成されたヘルパーデータに基づいて秘密を再生成するために使用されてもよい。
【０１０６】
さらなる実施形態では、プロセスは、３ラウンド以上継続することができる。いくつかの実施形態では、１つ以上のプロセッサまたは制御回路が、第２のラウンドの後の第３のラウンドにおいて、第１のラウンドおよび第２のラウンドの結果に基づいて、複数のＰＵＦセルのそれぞれのものの第３のペアリングを割り当て、複数のＰＵＦセルの各々のＰＵＦセルは、等しい数のラウンド（またはペアリング）の勝者であった複数のＰＵＦセルうちの１つのＰＵＦセルとペアリングされる。第３のラウンドでは、複数のＰＵＦセルの各々からのそれぞれの第３の出力を生成して、第３のペアリングにおけるＰＵＦセルの各々のペアに対する勝者を決定することができる。いくつかの実施形態では、先のラウンドの結果に基づいて、追加のラウンドのペアリング（例えば、６４ＰＵＦセル実装の第４ラウンドまたは第５ラウンド）を割り当てることができる。いくつかの実施形態では、ラウンドの総数は、複数のＰＵＦセル内のＰＵＦセルの数の２進対数を超えないように、少なくとも１つのプロセッサによって制限される。さらなる実施形態では、ＰＵＦ出力は、ＰＵＦセルの数を超える多数のエントロピーのフルビットを含むことができる。
【０１０７】
いくつかの例では、本明細書で開示される構成要素は、構成要素によって実施される機能に影響を与えるパラメータまたは命令を読み取ることができる。これらのパラメータまたは命令は、揮発性メモリ（ＲＡＭなど）または不揮発性メモリ（磁気ハードドライブなど）を含む任意の形式の好適なメモリに物理的に格納することができる。さらに、パラメータまたは命令は、好適なデータ構造（ユーザスペースアプリケーションによって定義されるデータベースまたはファイルなど）または共通に共有されたデータ構造（オペレーティングシステムによって定義されるアプリケーションレジストリ）内に論理的に格納することができる。さらに、いくつかの例は、外部エンティティがパラメータおよび命令を修正し、それによって構成要素の挙動を構成できるようにするシステムおよびユーザインタフェースの両方を提供する。
【０１０８】
前述の開示に基づいて、本明細書に開示された実施形態は、特定のコンピュータシステムプラットフォーム、プロセッサ、オペレーティングシステム、ネットワーク、または通信プロトコルに限定されないことは、当業者には明らかである。また、ここに開示された実施形態は、特定のアーキテクチャに限定されないことは明らかである。
【０１０９】
本明細書で論じられる方法および装置の実施形態は、適用において、以下の説明に記載されるかまたは添付の図面に示される構成の詳細および構成要素の配置に限定されないことを理解されたい。この方法および装置は、他の実施形態で実施することができ、様々な方法で実践または遂行することができる。特定の実装形態の例は、説明目的のためにのみ本明細書に提供され、限定することを意図するものではない。特に、任意の１つ以上の実施形態に関連して説明された作用、要素、および特徴は、他の実施形態における同様の役割から除外されることを意図しない。
【０１１０】
また、本明細書で使用される表現および用語は、説明のためのものであり、限定的であると見なされるべきではない。単数形で言及される本明細書のシステムおよび方法の実施形態または要素または作用に対する任意の参照はまた、複数のこれらの要素を含む実施形態を包含し得、任意の実施形態または要素または作用に対する複数の任意の参照は、単一要素のみを含む実施形態を包含し得る。単数形または複数形の参照は、現在開示されているシステムまたは方法、それらの構成要素、作用または要素を限定することを意図するものではない。本明細書で使用される「含む（ｉｎｃｌｕｄｉｎｇ）」、「備える（ｃｏｍｐｒｉｓｉｎｇ）」、「有する（ｈａｖｉｎｇ）」、「含有する（ｃｏｎｔａｉｎｉｎｇ）」、「伴う」（ｉｎｖｏｌｖｉｎｇ）」、およびそれらの変形は、それ以降に列挙された項目およびその等価物ならびに追加の項目を包含することを意味する。「または（ｏｒ）」は、「または（ｏｒ）」を使用して記載された任意の用語が、記載された用語の単一の、複数の、および全てのうちのいずれかを示すように包括的であると解釈されてもよい。少なくとも１つの要素および要素のリスト（例えば、Ａ、Ｂ、Ｃ）の使用は、Ａ、Ｂ、Ｃ（例えば、Ａ）、Ａ、Ｂ、Ｃの２つの選択肢（例えば、ＡおよびＢ）、任意の３つの選択肢（例えば、Ａ、Ｂ、Ｃ）、および各々の選択の任意の倍数からのいずれかの選択をカバーすることを意図している。
【０１１１】
このように、本発明の少なくとも１つの実施形態のいくつかの態様を説明したので、当業者には様々な変更、修正、改良が容易に思い付くであろうことが理解されるべきである。そのような変更、修正、および改良は、本開示の一部であることが意図されており、本発明の趣旨および範囲内にあることが意図される。したがって、前述の説明および図面は単なる例である。
【符号の説明】
【０１１２】
１００  ＰＵＦベースの暗号法デバイス
１０１  秘密
１０３  エラー訂正符号（ＥＣＣ）エンコーダ
１０５  ＰＵＦコア
１０７，１１５  ＰＵＦ出力
１０９，１１７  演算器
１１１，１１３  ヘルパーデータ
１１９  ＥＣＣデコーダ
１２１  復元された秘密
１２３  制御回路
【図１】
2019097167.tif 000003
【図２Ａ】
2019097167.tif 000004
【図２Ｂ】
2019097167.tif 000005
【図３】
2019097167.tif 000006
【図４Ａ】
2019097167.tif 000007
【図４Ｂ】
2019097167.tif 000008
【図４Ｃ】
2019097167.tif 000009
【図５Ａ】
2019097167.tif 000010
【図５Ｂ】
2019097167.tif 000011
【図６】
2019097167.tif 000012
【図７】
2019097167.tif 000013
【図８】
2019097167.tif 000014
【図９】
2019097167.tif 000015
【外国語明細書】
2019097167000001.pdf