(57)【特許請求の範囲】
【請求項１】
登録段階および後の使用段階のために構成されている電子暗号デバイス（１００）であって、
登録段階の間に第１のノイズの多いビット列を生成するように構成されている物理的複製不可能関数（ＰＵＦ）（１１０）と、
登録段階の間に第１のランダムビット列を選択するように構成されている乱数生成器（１２０）と、
第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から、第１のヘルパーデータを計算するように構成されているヘルパーデータ生成器（１３０）であって、第１のヘルパーデータは、後に、物理的複製不可能関数によって生成される第２のノイズの多いビット列の少なくとも一部分を、第１のランダムビット列にマッピングするように構成されている、ヘルパーデータ生成器（１３０）と、
登録段階の間に第１のＰＵＦデータを生成するように構成されている登録ユニット（１４２）であって、第１のＰＵＦデータは、物理的複製不可能関数を一意に識別し、第１のＰＵＦデータは第１のヘルパーデータを含む、登録ユニット（１４２）と、
登録段階の間に第１のＰＵＦデータを、第１のヘルパーデータをデータベースに格納するように構成されている電子サーバに送信するように構成されている通信ユニット（１５０）と
を備え、
物理的複製不可能関数（ＰＵＦ）は、使用段階の間に第２のノイズの多いビット列を生成するように構成されており、
暗号デバイスは、使用段階の間に第２のＰＵＦデータを生成するように構成されている使用段階ユニット（１４４）を備え、第２のＰＵＦデータは、第２のノイズの多いビット列から導き出され、物理的複製不可能関数を一意に識別し、
通信ユニットは、使用段階の間に第２のＰＵＦデータをサーバに送信し、第２のＰＵＦデータの前記送信に応答してサーバから第１のヘルパーデータを受信し、第２のＰＵＦデータが、サーバが第１のＰＵＦデータを認識できるようにし、それによって複数の暗号デバイスの中から暗号デバイスの物理的複製不可能関数を識別し、第１のヘルパーデータをデータベースから取り出すように構成されており、
暗号デバイスは、使用段階の間に第２のノイズの多いビット列の少なくとも一部分および受信されている第１のヘルパーデータから第１のランダムビット列を決定するように構成されている誤り訂正器（１６０）を備える、電子暗号デバイス（１００）。
【請求項２】
登録段階の間に第１のランダムビット列から公開鍵を生成するように構成されている鍵生成器（１７０）を備え、公開鍵は秘密鍵に対応し、
通信ユニットが、登録段階の間に第１のＰＵＦデータを公開鍵とともに電子サーバに送信するように構成されており、
鍵生成器が、使用段階の間に第１のランダムビット列から公開鍵に対応する秘密鍵を構築するように構成されている、請求項１に記載の暗号デバイス。
【請求項３】
第１のノイズの多いビット列および第２のノイズの多いビット列が各々、第１の部分および第１の部分と重なり合わない第２の部分を備え、第１のノイズの多いビット列の第２の部分および第２のノイズの多いビット列の第２の部分が各々、物理的複製不可能関数を一意に識別し、
ヘルパーデータ生成器が、第１のノイズの多いビット列の第１の部分および第１のランダムビット列から、第１のヘルパーデータを計算するように構成されており、ヘルパーデータが、後に、物理的複製不可能関数によって生成される第２のノイズの多いビット列の第１の部分を、第１のランダムビット列にマッピングするように構成されており、
第１のＰＵＦデータが、第１のヘルパーデータおよび第１のノイズの多いビット列の第２の部分を含み、第２のＰＵＦデータが、第２のノイズの多いビット列の第２の部分を含み、
誤り訂正器が、使用段階の間に第２のノイズの多いビット列の第１の部分および受信されている第１のヘルパーデータから第１のランダムビット列を決定するように構成されている、請求項１または２に記載の暗号デバイス。
【請求項４】
乱数生成器が、使用段階の間に第２のランダムビット列を選択するように構成されており、
ヘルパーデータ生成器が、第２のノイズの多いビット列および第２のランダムビット列から、第２のヘルパーデータを計算するように構成されており、第２のヘルパーデータが、後に、物理的複製不可能関数によって生成されるノイズの多いビット列を、第２のランダムビット列にマッピングすることが可能であり、
第２のＰＵＦデータが第２のヘルパーデータを含み、第２のヘルパーデータが、物理的複製不可能関数をサーバに対して一意に識別する、請求項１または２に記載の暗号デバイス。
【請求項５】
乱数生成器（１２０）が、物理的複製不可能関数（１１０）から取得されるノイズの多いビット列に基づいて乱数を生成するように構成されている、請求項１から４のいずれか一項に記載の暗号デバイス。
【請求項６】
暗号デバイスが、暗号デバイスの群を一意に識別する群識別子を備え、第１のＰＵＦデータおよび第２のＰＵＦデータが群識別子を含む、請求項１から５のいずれか一項に記載の暗号デバイス。
【請求項７】
暗号デバイスが、登録段階の間に暗号デバイスを一意に識別し得る暗号データをデバイス内に含まれているいかなる不揮発性メモリにも書き込まないように構成されており、かつ／または、
暗号デバイスが、暗号デバイスを一意に識別し得る暗号データを記憶するように構成されている複数のマイクロヒューズを備えておらず、かつ／または、
暗号デバイスが、暗号デバイスを一意に識別し得る暗号データのための不揮発性書き換え可能メモリを備えておらず、かつ／または、
暗号デバイスが、暗号デバイスを一意に識別するための、固有で、固定の、予め決定された識別子を備えていない、請求項１から６のいずれか一項に記載の暗号デバイス。
【請求項８】
前記暗号デバイスが、複数の暗号デバイスのうちの１つであり、デバイス上に格納されているすべての情報は、存在する場合、登録段階の間、複数の暗号デバイスのすべてについて同一である、請求項１から７のいずれか一項に記載の暗号デバイス。
【請求項９】
ヘルパーデータ生成器が、第１のランダムビット列から、誤り訂正符号からの１つまたは複数の第１の符号語を取得するように構成されており、第１のヘルパーデータが、第１の１つまたは複数の符号語と、第１のノイズの多いビット列の少なくとも一部分との間の差であり、任意選択的に、
ヘルパーデータ生成器が、たとえば、乱数生成器（１２０）によって生成される第２のランダムビット列から、誤り訂正符号からの１つまたは複数の第２の符号語を取得するように構成されており、第２のヘルパーデータが、第２の１つまたは複数の符号語と、第２のノイズの多いビット列の少なくとも一部分との間の差である、請求項１から８のいずれか一項に記載の暗号デバイス。
【請求項１０】
暗号デバイスが、署名権限の公開鍵を備え、暗号デバイスが、署名権限の公開鍵を使用して、受信されている第１のヘルパーデータの署名を検証するように構成されており、誤り訂正器が、検証に失敗した場合は、受信されている第１のヘルパーデータを使用しないように構成されている、請求項１から９のいずれか一項に記載の暗号デバイス。
【請求項１１】
電子サーバであって、
通信ユニットであり、
暗号デバイスの登録段階の間に電子暗号デバイスから第１のＰＵＦデータを受信することであって、第１のＰＵＦデータは、暗号デバイスの物理的複製不可能関数によって生成された第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から計算された第１のヘルパーデータを含み、物理的複製不可能関数を一意に識別する、ことと、
暗号デバイスの使用段階の間に暗号デバイスから第２のＰＵＦデータを受信することであって、第２のＰＵＦデータは、物理的複製不可能関数によって生成された第２のノイズの多いビット列の少なくとも一部分から計算され、物理的複製不可能関数を一意に識別する、ことと
を行うように構成されている、通信ユニットと、
第１のＰＵＦデータの受信に応答して第１のヘルパーデータを格納するように構成されている電子データベースと、
応答ユニットであり、
第２のＰＵＦデータから第１のＰＵＦデータを認識し、それによって複数の暗号デバイスの中から物理的複製不可能関数を識別することと、
物理的複製不可能関数の識別に基づいて、データベースから第１のヘルパーデータを取り出すことと
を行うように構成されている、応答ユニットと
を備え、
通信ユニットが、第１のヘルパーデータを暗号デバイスに送信するように構成されている、電子サーバ。
【請求項１２】
電子データベースが、
暗号デバイスの物理的複製不可能関数の第１のノイズの多いビット列の第２の部分に関連付けられた第１のヘルパーデータを格納するように構成されており、
応答ユニットが、第２のＰＵＦデータ内に含まれている第２のノイズの多いビット列の第２の部分と、データベース内に格納されている第１のノイズの多いビット列の第２の部分との間の差を決定することによって、物理的複製不可能関数を識別するように構成されている、請求項３に記載の暗号デバイスとともに使用するための、請求項１１に記載の電子サーバ。
【請求項１３】
応答ユニットが、第２のヘルパーデータと第１のヘルパーデータとの間の差を決定し、差と１つまたは複数の符号語との間の距離を決定することによって、物理的複製不可能関数を識別するように構成されている、請求項４に記載の暗号デバイスとともに使用するための、請求項１１に記載の電子サーバ。
【請求項１４】
請求項１１から１３のいずれか一項に記載の電子サーバと、請求項１から８のいずれか一項に記載の１つまたは複数の暗号デバイスとを備える、システム。
【請求項１５】
登録段階および後の使用段階を有する電子暗号方法であって、登録段階は、
物理的複製不可能関数（ＰＵＦ）を使用して第１のノイズの多いビット列を生成するステップと、
第１のランダムビット列を選択するステップと、
第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から、第１のヘルパーデータを計算するステップであって、第１のヘルパーデータは、後に、物理的複製不可能関数によって生成される第２のノイズの多いビット列の少なくとも一部分を、第１のランダムビット列にマッピングするように構成されている、第１のヘルパーデータを計算するステップと、
第１のＰＵＦデータを生成するステップであって、第１のＰＵＦデータは、物理的複製不可能関数を一意に識別し、第１のＰＵＦデータは第１のヘルパーデータを含む、第１のＰＵＦデータを生成するステップと、
第１のＰＵＦデータを、第１のヘルパーデータをデータベースに格納するように構成されている電子サーバに送信するステップと
を含み、
使用段階は、
物理的複製不可能関数（ＰＵＦ）を使用して第２のノイズの多いビット列を生成するステップと、
第２のＰＵＦデータを生成するステップであって、第２のＰＵＦデータは、第２のノイズの多いビット列から導き出され、物理的複製不可能関数を一意に識別する、第２のＰＵＦデータを生成するステップと、
第２のＰＵＦデータをサーバに送信し、第２のＰＵＦデータの前記送信に応答してサーバから第１のヘルパーデータを受信し、前記サーバが第２のＰＵＦデータから複数の暗号デバイスの中から暗号デバイスの物理的複製不可能関数を識別し、第１のヘルパーデータをデータベースから取り出すステップと、
第２のノイズの多いビット列の少なくとも一部分および受信されている第１のヘルパーデータから第１のランダムビット列を決定するステップと
を含む、電子暗号方法。
【請求項１６】
電子サーバ方法であって、
電子暗号デバイスの登録段階の間に暗号デバイスから第１のＰＵＦデータを受信するステップであって、第１のＰＵＦデータは、暗号デバイスの物理的複製不可能関数によって生成された第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から計算された第１のヘルパーデータを含み、物理的複製不可能関数を一意に識別する、ステップと、
第１のＰＵＦデータの受信に応答して第１のヘルパーデータを格納するステップと、
暗号デバイスの使用段階の間に暗号デバイスから第２のＰＵＦデータを受信するステップであって、第２のＰＵＦデータは、物理的複製不可能関数によって生成された第２のノイズの多いビット列の少なくとも一部分から計算され、物理的複製不可能関数を一意に識別する、ステップと、
第１のＰＵＦデータを第２のＰＵＦデータから認識し、それによって複数の暗号デバイスの中から物理的複製不可能関数を識別するステップと、
物理的複製不可能関数の識別に基づいて、第１のヘルパーデータを取り出すステップと、
第１のヘルパーデータを暗号デバイスに送信するステップと
を含む、電子サーバ方法。
【請求項１７】
コンピュータプログラムであって、コンピュータプログラムがプログラム可能装置上で実行されたときに、請求項１５または１６に記載の方法を実行するように構成されているコンピュータプログラム命令を備える、コンピュータプログラム。
【請求項１８】
コンピュータ可読媒体上に具現化されている、請求項１７に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子暗号デバイス、電子サーバ、システム、電子暗号方法、電子サーバ方法、コンピュータプログラム、コンピュータ可読媒体に関する。
【背景技術】
【０００２】
デバイスを配備の前またはさらには後に認証することは、通常、デバイス内に組み込まれているワンタイムプログラマブル（ＯＴＰ）および／または不揮発性メモリ（ＮＶＭ）の中に鍵をプログラムすることを伴う。鍵がプログラムされると、デバイス認証および安全な接続を確立することができる。これらの安全な接続を使用すると、無線更新を使用して機能をロック解除／プロビジョニングすることができる。鍵プログラミング自体は、費用はかかるがプロセスにおいて必要なステップであり、通常はＯＥＭまたはチップ製造業者によって実施される。
【０００３】
このプロセスを補完するために、物理的複製不可能関数（ＰＵＦ）が提案されている。ＰＵＦの主要な用途の１つが、プログラム可能論理（たとえば、ＦＰＧＡ、ＰＬＤ、およびＤＳＰ）および集積回路（ＩＣ）のようなデバイスに対する暗号鍵を導き出すことである。何らかの不揮発性メモリ内に鍵を記憶する代わりに、必要とされるときにのみデバイスによって鍵が生成され、その後消去される。これによって、攻撃者が、物理的攻撃を使用して鍵を見出すことが困難になる。
【０００４】
物理的複製不可能関数は、デジタル識別子を導き出すために、製造時のばらつきを利用する。したがって、デジタル識別子は、物理媒体に結び付けられる。物理的複製不可能関数はランダムなプロセス変動に依存するため、ＰＵＦを作成することは容易であるが、特定の予め決定された識別子をもたらすＰＵＦを作成することは、完全に不可能であるとは言わないまでも、困難である。製造時のばらつきは、メモリ要素の異なる物理特性をもたらす。たとえば、物理特性は、ドーピング濃度、酸化物厚さ、チャネル長、構造的な幅（たとえば、金属層の）、寄生（たとえば、抵抗、容量）を含み得る。デジタル回路設計が複数回製造されるとき、これらの物理特性はわずかに変動するとともに、それらにより、ＩＣ要素、たとえば、メモリ要素の挙動が、状況によって別様に振る舞うようになる。たとえば、始動挙動は、物理特性における製造時のばらつきによって決定される。
【０００５】
ＰＵＦのこの特性が、それらを一定範囲の用途に適したものにする。たとえば、ＰＵＦを使用して、偽造に対抗することができる。特定のデバイスまたは他の製造品を不正に複製することは可能であり得るが、オリジナルと同じデジタル識別子をもたらすような十分な精度で内部に組み込まれ得るＰＵＦを複製することは可能ではない。さらなる例として、ＰＵＦは、暗号鍵を作成するために使用される。ＰＵＦを使用すると、鍵を記憶するための安全なメモリの必要性が回避される。ＰＵＦはさらに、リバースエンジニアリングを通じて暗号鍵を取得しようとする違法な試みに対する自然な保護を可能にする。これは、その試みの間にＰＵＦに与えられ得る損傷が、デジタル識別子を変化させるためである。デジタル識別子は、物理的複製不可能関数が組み込まれている電子デバイスに対して固有であることが好ましい。ＰＵＦは、電子デバイスに好都合に適用されている。ＩＣの製造中に不可避である、わずかな製造時のばらつきでさえ、ＩＣの異なる特性をもたらす。これらの異なる特性は通常、同じように動作するＩＣの群を取得するために抑制される。しかしながら、ＰＵＦを作成するためには、ＩＣの群における個々のＩＣの間の差が利用される。
【０００６】
たとえば、いくつかのメモリ要素の始動挙動は、ＰＵＦのような挙動を明らかに示すことが観測されている。そのようなメモリが電源投入されるとき、メモリは、内容、すなわち、メモリを構成する構成要素、たとえば、ゲートまたはトランジスタの、少なくとも部分的にランダムな物理特性、たとえば、それらの互いに対する物理的配置に依存する、一連のデータ値を含む傾向にある。メモリが複数回電源投入される場合、メモリは、大きな割合まで、同じ内容を含むことになる。不都合なことに、ＰＵＦ挙動は小さな変動に依存するため、一定の割合の誤りは不可避である。誤り訂正手順を使用してこれらの変動を訂正し、ＰＵＦが使用される度毎に同一のデジタル識別子が導き出されることを保証することができる。時としてファジー抽出と称される誤り訂正手順は、いわゆるヘルパーデータを使用する。
【０００７】
ＰＵＦは、鍵を用いてデバイスをプロビジョニングしている間の不揮発性メモリの必要性に取って代わることができるが、そのようなタイプのメモリが必要であることに変わりはない。たとえば、デバイスがＰＵＦのノイズの多い出力を訂正することができるように、ヘルパーデータがデバイス上に格納される必要がある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】国際公開第２００９／０２４９１３号
【特許文献２】米国特許出願公開第２００３／０２０４７４３号明細書
【特許文献３】国際公開第２０１１／０１８４１４号
【特許文献４】国際公開第２０１２／０６９５４５号
【非特許文献】
【０００９】
【非特許文献１】Ｃ．Ｂｏｅｓｃｈ他「Ｅｆｆｉｃｉｅｎｔ  Ｈｅｌｐｅｒ  Ｄａｔａ  Ｋｅｙ  Ｅｘｔｒａｃｔｏｒ  ｏｎ  ＦＰＧＡｓ」（ＣＨＥＳ  ２００８）
【非特許文献２】Ｐ．Ｔｕｙｌｓ他「Ｓｅｃｕｒｅ  Ｋｅｙ  Ｓｔｏｒａｇｅ  ｗｉｔｈ  ＰＵＦｓ」（「Ｓｅｃｕｒｉｔｙ  ｗｉｔｈ  Ｎｏｉｓｙ  Ｄａｔａ」と題するＳｐｒｉｎｇｅｒの書籍の１６章）
【非特許文献３】Ｙ．Ｄｏｄｉｓ、Ｍ．ＲｅｙｚｉｎおよびＡ．Ｓｍｉｔｈ「Ｆｕｚｚｙ  ｅｘｔｒａｃｔｏｒｓ：  Ｈｏｗ  ｔｏ  ｇｅｎｅｒａｔｅ  ｓｔｒｏｎｇ  ｋｅｙｓ  ｆｒｏｍ  ｂｉｏｍｅｔｒｉｃｓ  ａｎｄ  ｏｔｈｅｒ  ｎｏｉｓｙ  ｄａｔａ」（Ｃ．ＣａｃｈｉｎおよびＪ．Ｃａｍｅｎｉｓｃｈ編、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  ｜−  ＥＵＲＯＣＲＹＰＴ  ２００４、ＬＮＣＳの３０２７巻、５２３−５４０頁、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２００４）
【発明の概要】
【課題を解決するための手段】
【００１０】
特許請求の範囲において定義されているように、登録段階および後の使用段階のために構成されている電子暗号デバイスが提供される。暗号デバイスは、登録段階の間に、物理的複製不可能関数の第１のノイズの多いビット列から導き出される第１のＰＵＦデータを生成する。第１のＰＵＦデータは、物理的複製不可能関数を一意に識別するとともに、後にＰＵＦのノイズの多い出力におけるノイズを訂正するために使用することができる第１のヘルパーデータを含む。一実施形態において、第１のＰＵＦデータは、第１のノイズの多いビット列の一部分を含む。一実施形態において、第１のヘルパーデータ自体がＰＵＦを識別するために使用され、ＰＵＦを識別するいかなる他の情報も含む必要はない。第１のＰＵＦデータは、後に使用段階においてヘルパーデータが必要とされるときに、第２のＰＵＦデータを送信することによってサーバに要求されるように、サーバに送信される。第２のＰＵＦデータは、ＰＵＦによって生成される第２のノイズの多いビット列から導き出される。第２のＰＵＦデータは、ＰＵＦを識別するために第２のノイズの多いビット列の一部分を含むことができる。興味深いことに、第２のＰＵＦも、ヘルパーデータを含むことができる。驚くべきことに、サーバは、２つのヘルパーデータが同じＰＵＦに対して生成されているか否かを認識することができる。この後者のオプションは、ノイズの多いビット列をより効率的に利用し、したがって、より小さいＰＵＦを使用することができ、他方では、サーバ側においてより多くの処理を必要とする。
【００１１】
本発明の一態様は、特許請求の範囲において定義されているような電子サーバに関する。サーバは、暗号デバイスから第１のＰＵＦデータを受信する。第１のＰＵＦデータは、第１のヘルパーデータを含む。第２のＰＵＦデータを受信した後、サーバは、第２のＰＵＦデータを送信した暗号デバイス内のＰＵＦに対応する正確な第１のヘルパーデータを認識することができる。一実施形態において、第２のＰＵＦデータは、暗号デバイスのＰＵＦによって生成されるノイズの多いビット列の一部分を含む。同じＰＵＦによって生成されるノイズの多いビット列は互いに近く、たとえば、短いハミング距離を有するか、または、他の様態で高い相関を有するため、これを使用してＰＵＦを識別することができる。一実施形態において、第２のＰＵＦデータは、ヘルパーデータを含む。第２のＰＵＦ内のヘルパーデータを使用して、サーバは、同じＰＵＦに対応する、第１のＰＵＦデータにおいて受信されているヘルパーデータを識別することができる。
【００１２】
暗号デバイスおよびサーバは、電子デバイスである。暗号デバイスは、携帯電話などのモバイル電子デバイス、集積回路、たとえばＳＩＭカードであってもよい。暗号デバイスは、大量に生産される低コストデバイスに特に適している。たとえば、暗号デバイスは、センサであってもよい。
【００１３】
本発明による方法は、コンピュータ実装方法としてコンピュータ上で実装されてもよく、または、専用ハードウェア内で実装されてもよく、または、その両方の組み合わせであってもよい。本発明による方法の実行可能コードを、コンピュータプログラム製品上に格納することができる。コンピュータプログラム製品の例は、メモリデバイス、光学記憶デバイス、集積回路、サーバ、オンラインソフトウェアなどを含む。コンピュータプログラム製品は、前記プログラム製品がコンピュータ上で実行されるときに、本発明による方法を実行するための、コンピュータ可読媒体上に格納されている非一時的プログラムコード手段を含むことが好ましい。
【００１４】
好ましい実施形態において、コンピュータプログラムは、コンピュータプログラムがコンピュータ上で実行されたときに、本発明による方法のすべてのステップを実行するように構成されたコンピュータプログラムコード手段を含む。コンピュータプログラムはコンピュータ可読媒体上に具現化されることが好ましい。
【００１５】
例示のみを目的として、添付の図面を参照して本発明のさらなる詳細、態様および実施形態を説明する。図面内の要素は単純かつ明瞭にするために示されており、必ずしも原寸に比例して描かれているとは限らない。図面において、すでに記載されている要素に対応する要素は、同じ参照符号を有する場合がある。
【図面の簡単な説明】
【００１６】
【図１ａ】電子暗号デバイスの一実施形態の一例を概略的に示す図である。
【図１ｂ】ヘルパーデータ生成器の一実施形態の一例を概略的に示す図である。
【図２】電子サーバの一実施形態の一例を概略的に示す図である。
【図３ａ】登録段階の間の電子暗号デバイスの一実施形態におけるデータの第１の例を概略的に示す図である。
【図３ｂ】使用段階の間の電子暗号デバイスの一実施形態におけるデータの第１の例を概略的に示す図である。
【図４ａ】登録段階の間の電子暗号デバイスの一実施形態におけるデータの第２の例を概略的に示す図である。
【図４ｂ】使用段階の間の電子暗号デバイスの一実施形態におけるデータの第２の例を概略的に示す図である。
【図５】電子暗号方法の一例を概略的に示す図である。
【図６】電子サーバ方法の一例を概略的に示す図である。
【図７ａ】一実施形態によるコンピュータプログラムを含む書き込み可能部分を有するコンピュータ可読媒体を示す図である。
【図７ｂ】一実施形態によるプロセッサシステムの概略図である。
【発明を実施するための形態】
【００１７】
本発明は多くの異なる形態の実施形態を受け入れる余地があるが、本開示は本発明の原理の例示として考えられるべきであり、本発明を図示および記載されている特定の実施形態に限定するようには意図されていないという理解の下、１つまたは複数の特定の実施形態が図面に示され、本発明において詳細に説明される。
【００１８】
以下において、理解しやすくするために、動作中の実施形態の要素が説明される。しかしながら、それぞれの要素は、それらによって実施されるものとして記載されている機能を実施するように構成されていることは諒解されよう。
【００１９】
図１ａは、電子暗号デバイス１００の一実施形態の一例を概略的に示す図である。
【００２０】
暗号デバイス１００は、登録段階および後の使用段階のために構成されている。登録段階の間、暗号デバイス１００は、データをサーバに送信する。後に、使用段階の間、暗号デバイス１００は、逆にサーバから情報を受信する。これによって、暗号デバイス１００が、たとえ鍵またはさらにはデバイスを識別するための識別子を記憶するために記憶装置が必要とされない場合であっても、秘密鍵によって動作することが可能である。これによって、これらのデバイスを製造する間の費用のかかるパーソナライズステップが低減するかまたはさらにはなくなり、デバイス１００上での不揮発性書き換え可能メモリの必要性が低減するかまたはなくなる。
【００２１】
図１ａおよび図１ｂを参照して、デバイス１００の可能なアーキテクチャが開示される。
【００２２】
暗号デバイス１００は、通常はＰＵＦと称される、いわゆる物理的複製不可能関数１１０を含む。ＰＵＦ１１０は、レスポンスとも称される、ノイズの多いビット列を生成するように構成されている。たとえば、ＰＵＦ１１０は、ノイズの多いビット列を生成するために、通常「チャレンジされる」と称される、問い合わせを受け得る。ＰＵＦ１１０が複数回チャレンジされるとき、ＰＵＦ１１０はノイズの多いビット列を複数回生成する。ノイズの多いビット列は一般的に、複数回生成されるとき同一にならない。後者は、ヘルパーデータによって解決することができる。後に生成されるノイズの多いビット列の間の変化の量は、異なるタイプのＰＵＦの間で異なり、変化の量に応じて、この量の誤りを訂正するために誤り訂正符号が選択され得る。ノイズの多いビット列は、ＰＵＦデバイスを一意に識別するのに十分に安定しており、十分に長い。ＰＵＦのノイズの多いビット列の長さは、暗号デバイスが一意に識別可能である暗号デバイスのグループ、たとえば、サーバ２００によってサービスされる暗号デバイスのグループ、および／または、ＰＵＦの誤り率に対して選択することができる。
【００２３】
ＰＵＦ１１０は、ノイズの多いビット列を再び生成するために、電力サイクル、たとえば、電源投入後の電源停止を必要とし得る。デバイス１００において、ＰＵＦ１１０はノイズの多いビット列を少なくとも２回生成する。登録段階に入ると、ＰＵＦ１１０は第１のノイズの多いビット列を生成する。後に使用段階の間、ＰＵＦ１１０は第２のノイズの多いビット列を生成する。第１のノイズの多いビット列および第２のノイズの多いビット列は互いに十分に近く、たとえば、それらの差のハミング重みが閾値未満である。
【００２４】
ＰＵＦは、物理デバイスを使用してＰＵＦを実際に評価することなく関数の出力を予測することが計算的に実行不可能であるように、物理デバイスに束縛されるランダム関数である。さらに、ＰＵＦは物理システムによって実現されるため、複製することが困難である。完全に制御されない（すなわち、何らかのランダム性を含む）製造工程によって製造される物理システムは、ＰＵＦの良好な候補になる。用途に応じて、複数回の異なる電源投入にわたって電源投入値が十分に持続性である限り、一定量のランダム性は許容することができる。
【００２５】
ＰＵＦ１１０、および、したがって暗号デバイス１００は、ＰＵＦ１１０によって与えられるレスポンスに基づいて一意に識別することができる。
【００２６】
ＰＵＦの物理システムは、当該システムが刺激と複雑に相互作用し、固有の、ただし予測不可能なレスポンスをもたらすように設計される。ＰＵＦの刺激はチャレンジと称される。ＰＵＦによっては、より大きい範囲の異なるチャレンジを許容し、種々のレスポンスを生成する。ＰＵＦチャレンジおよび対応するレスポンスは、ともにチャレンジ−レスポンス対と呼ばれる。しかしながら、ＰＵＦはまた、単一のチャレンジを受けてもよい。ＰＵＦ１１０は、単一チャレンジＰＵＦであってもよい。ＰＵＦ１１０はまた、マルチチャレンジＰＵＦであってもよい。後者の事例において、ＰＵＦ１１０は、ノイズの多いビット列、特に第１のノイズの多いビット列および第２のノイズの多いビット列を生成するときに、同じチャレンジまたはチャレンジのセットによってチャレンジされる。
【００２７】
ＰＵＦの適切なソースは、電源投入されると、メモリの識別に有用な電源投入値のレスポンスパターン、すなわち、メモリ要素の物理特性に応じたレスポンスパターンを含む電子揮発性メモリによって形成される。
【００２８】
デバイスを一意に識別するために使用されるＰＵＦの１つの知られている例は、いわゆるＳＲＡＭ  ＰＵＦであり、これは、ＳＲＡＭセルが始動されると、当該ＰＵＦが、トランジスタの閾値電圧の変動に起因して、ひいてはドーピング変動に起因してランダムな状態で始動するという事実に基づくものである。これが複数回行われるとき、各セルはほとんどの場合に同じ状態で始動する。これらのＰＵＦは、ＳＲＡＭメモリを基板上に有する任意のデバイス上に実現することができる。
【００２９】
メモリを識別するのに十分に安定しているランダムな始動挙動を示す任意のメモリは、チャレンジ可能メモリと呼ばれる。始動挙動がランダムであるとき、２つの異なるメモリの始動メモリパターンには大きな差があり、始動挙動が安定しているとき、同じメモリの２つの始動メモリパターンの差は小さい。そのようなメモリの例は、言及されているようなＳＲＡＭメモリセルであるが、交差結合インバータまたはラッチに基づく他のメモリセル、たとえば、ＥＰ０７１１４７３２．６に記載されているようなバタフライＰＵＦ、および、フリップフロップのようなメモリ要素でもある。実際、複数のフィードバックループを備える任意のタイプの揮発性メモリが使用されてもよい。
【００３０】
第２の種類のＳＲＡＭベースのＰＵＦは、デュアルポートＲＡＭによって構築することができる。異なる情報を両方のポートに同時に書き込むことによって、メモリセルは未定義状態にされ、ＰＵＦのような挙動を示す。この種類のＰＵＦは、ＷＯ２００９０２４９１３により詳細に記載されている。他のいわゆる固有ＰＵＦは、遅延現象、および、ＦＰＧＡ上でのＳＲＡＭメモリセルのシミュレーションに基づく。詳細は、ＵＳ２００３０２０４７４３（遅延ＰＵＦ）およびＷＯ２０１１０１８４１４（バタフライＰＵＦ）に見出すことができる。ＰＵＦ１１０は、たとえば、ＷＯ２０１２０６９５４５に記載されているような、複数のバスキーパを備える物理的複製不可能関数であってもよい。
【００３１】
暗号デバイス１００は、登録段階の間に第１のランダムビット列を選択するように構成されている乱数生成器１２０を備える。ＰＵＦ１１０と乱数生成器１２０の両方は、登録段階の間にビット列を生成する。しかしながら、ノイズの多いビット列がＰＵＦ１１０によって複数回生成されるとき、それらのビット列は互いに近くなり、乱数生成器１２０がランダムビット列を複数回生成するとき、それらのビット列は一般的に無関係になる。たとえば、それらのビット列は５０％近くまで異なり得る。乱数生成器は、真乱数生成器であってもよく、または、疑似乱数生成器であってもよい。
【００３２】
一実施形態において、乱数生成器は、ノイズの多いビット列から、たとえば、登録ビット列から、たとえば、ＳＨＡ２５６のような暗号ハッシュをそれに適用することによって、真乱数種を生成する。この事例において、ノイズの多いビット列は誤りを訂正されていない。乱数生成器は、種を使用してランダムビット列を生成する。
【００３３】
暗号デバイス１００は、第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から、第１のヘルパーデータを計算するように構成されているヘルパーデータ生成器１３０を備える。ヘルパーデータは、ＰＵＦ１１０によって生成されるノイズの多いビット列が、同じＰＵＦ１１０によって生成される、先行するビット列と同一になるように訂正するための冗長性を備える。この事例において、第１のヘルパーデータは、後に、物理的複製不可能関数によって生成される第２のノイズの多いビット列の少なくとも一部分を、第１のランダムビット列にマッピングするように構成されている。一実施形態において、ヘルパーデータは、第１のノイズの多いビット列の、ノイズの多いビット列全体よりも厳密に小さい部分について生成される。一実施形態において、ヘルパーデータは、第１のノイズの多いビット列全体について生成される。両方の選択肢が異なる利点を有し、これは下記により十分に説明する。
【００３４】
ＰＵＦのヘルパーデータの生成は、それ自体知られている。たとえば、Ｃ．Ｂｏｅｓｃｈ他「Ｅｆｆｉｃｉｅｎｔ  Ｈｅｌｐｅｒ  Ｄａｔａ  Ｋｅｙ  Ｅｘｔｒａｃｔｏｒ  ｏｎ  ＦＰＧＡｓ」（ＣＨＥＳ  ２００８）、Ｐ．Ｔｕｙｌｓ他「Ｓｅｃｕｒｅ  Ｋｅｙ  Ｓｔｏｒａｇｅ  ｗｉｔｈ  ＰＵＦｓ」（「Ｓｅｃｕｒｉｔｙ  ｗｉｔｈ  Ｎｏｉｓｙ  Ｄａｔａ」と題するＳｐｒｉｎｇｅｒの書籍の１６章）、Ｙ．Ｄｏｄｉｓ、Ｍ．ＲｅｙｚｉｎおよびＡ．Ｓｍｉｔｈ「Ｆｕｚｚｙ  ｅｘｔｒａｃｔｏｒｓ：  Ｈｏｗ  ｔｏ  ｇｅｎｅｒａｔｅ  ｓｔｒｏｎｇ  ｋｅｙｓ  ｆｒｏｍ  ｂｉｏｍｅｔｒｉｃｓ  ａｎｄ  ｏｔｈｅｒ  ｎｏｉｓｙ  ｄａｔａ」（Ｃ．ＣａｃｈｉｎおよびＪ．Ｃａｍｅｎｉｓｃｈ編、Ａｄｖａｎｃｅｓ  ｉｎ  Ｃｒｙｐｔｏｌｏｇｙ  ｜−  ＥＵＲＯＣＲＹＰＴ  ２００４、ＬＮＣＳの３０２７巻、５２３−５４０頁、Ｓｐｒｉｎｇｅｒ−Ｖｅｒｌａｇ、２００４）を参照されたい。
【００３５】
ヘルパーデータを生成する１つの可能性のあるアーキテクチャは、図１ｂを参照して開示される。この実施態様において、ヘルパーデータ生成器１３０は、符号語生成器１３１および差分ユニット１３２を備える。符号語生成器１３１は、乱数生成器１２０からランダムビット列、たとえば、第１のランダムビット列を受信し、誤り訂正符号から選択される１つまたは複数の符号語から成るシーケンスを生成する。誤り訂正符号は、セットの任意の２つの符号語が少なくとも最小距離（ｄ）の距離を有するような、符号語のセットである。この距離は通常、２つの符号語の間のＸＯＲ差のハミング重みとして計算される。最小距離は少なくとも３であるが、一般的に、ＰＵＦ１１０の誤り率に応じてより高い。たとえば、符号語生成器１３１は、１つまたは複数の符号語から成るシーケンスとして、ランダムビット列を符号化することができる。後者は、符号化、たとえば、元のビット列の符号化ビット列への変換として知られている。
【００３６】
差分ユニット１３２は、ノイズの多いビット列、たとえば、登録ビット列と、符号語生成器１３１によって決定される符号語のシーケンスとの間の差を計算する。差は一般的にＸＯＲ演算であるが、これは必須ではなく、差はまた、算術減算などであってもよい。この差はまた、ヘルパーデータとしても知られている。ヘルパーデータ生成器１３０はまた、ファジー抽出器とも称される場合がある。誤り訂正符号は、線形、たとえば、リード−ソロモン符号、アダマール符号、ＢＣＨ符号などであることが好ましい。誤り訂正符号はまた、異なる複数の符号を組み合わせること、たとえば、符号連結によって取得されてもよい。ヘルパーデータ生成器１３０は、出力１３３、たとえば、ノイズの多いビット列の少なくとも一部分およびランダムビット列について生成されるヘルパーデータを有する。ヘルパーデータは、ヘルパーデータを生成するのに使用されているノイズの多いビット列に十分に近いノイズの多いビット列を与えられて、ランダムビット列を回復することを可能にする。
【００３７】
ヘルパーデータ生成器１３０は、一般的に、後に第１のランダムビット列を再生成することができるヘルパーデータを生成するために、登録段階の間にのみ適用される。しかしながら、一実施形態において、ヘルパーデータ生成器１３０はより頻繁に、たとえば、デバイス１００が電源投入される度毎に使用される。
【００３８】
一実施形態において、デバイス１００は、登録段階の間に第１のランダムビット列から公開鍵を生成するように構成されている鍵生成器１７０を備え、公開鍵は、秘密鍵に対応する。たとえば、鍵生成器１７０は、非対称暗号に使用するための公開−秘密鍵対を生成することができる。秘密鍵はデバイス１００にとって秘密であり、一実施形態においてはデバイス１００を決して離れない。しかしながら、公開鍵は、他のデバイスと共有され得る。秘密鍵は、デバイス１００が、公開鍵によって暗号化されているメッセージを復号すること、および／または、たとえば、暗号ユニットを使用して、公開鍵によって検証することができるように、メッセージに署名することを可能にする。当該技術分野において、多くの公開−秘密鍵システム、たとえば、ＲＳＡ、楕円曲線暗号、ＥＣＤＳＡ、ＥＣＩＥＳ、Ｅｌ  Ｇａｍａｌ、ＤＳＡなど、が存在する。たとえば、第１のランダムビット列は、素数を生成するための、たとえば、ＲＳＡのための、または、楕円曲線上のランダムな点を選択するなどのための種として使用することができる。鍵生成器は、一般的に、第１のランダムビット列から公開鍵と秘密鍵の両方を生成するが、登録段階の間は公開鍵のみが必要とされ、一方、使用段階の間は秘密鍵のみが必要とされる。
【００３９】
たとえば、暗号デバイスは、センサであってもよい。暗号デバイス１００によって測定されたセンサデータは、デバイス１００によって、秘密鍵を使用して署名され得る。
【００４０】
図１ａに戻って参照する。暗号デバイス１００は、登録ユニット１４２を備える。登録ユニット１４２は、登録段階の間に第１のノイズの多いビット列から第１のＰＵＦデータを生成するように構成されている。第１のＰＵＦデータ、たとえば、登録データは、デバイス１００の外部にあるサーバ２００に送信される。第１のＰＵＦデータは、物理的複製不可能関数を一意に識別する。第１のＰＵＦデータは、少なくとも第１のヘルパーデータを含む。暗号デバイス１００は、登録段階の間に第１のＰＵＦデータを電子サーバ２００に送信するように構成されている通信ユニット１５０をさらに備える。一実施形態において、通信ユニット１５０は、登録段階の間に、第１のＰＵＦデータを公開鍵とともに電子サーバ２００に送信するように構成されている。第１のＰＵＦデータが送信された後、第１のヘルパーデータ、公開鍵、秘密鍵、第１のランダムビット列、および第１のノイズの多いビット列はすべてデバイス１００から廃棄、たとえば、消去され得る。
【００４１】
通信ユニット１５０は、たとえば、ＬＡＮ／ＷＡＮネットワークを介した、または、インターネットを介したコンピュータネットワーク接続であってもよい。接続は、たとえば、Ｗｉ−ＦｉまたはＥｔｈｅｒｎｅｔのような、無線または有線接続であってもよい。
【００４２】
第１のＰＵＦデータを送信することによって、登録段階は完了する。登録段階の間、暗号デバイス１００は、ヘルパーデータ、鍵を含め、不揮発性メモリ内にいかなるデータを記憶することも必要としていないことに留意されたい。
【００４３】
登録段階の間に、暗号デバイスは、第１のＰＵＦデータをサーバ２００に送信している。使用段階において、暗号デバイスは、第１のランダムビット列を再構築する。
【００４４】
暗号デバイス１００は、使用段階の間に第２のＰＵＦデータを選択するように構成されている使用段階ユニット１４４を備える。第２のＰＵＦデータは、ＰＵＦ１１０によって生成される第２のノイズの多いビット列から導き出される。第２のＰＵＦデータもまた、物理的複製不可能関数を一意に識別する。通信ユニット１５０は、使用段階の間に第２のＰＵＦデータをサーバ２００に送信し、それに応答してサーバから第１のヘルパーデータを受信するように構成されている。サーバ２００は、複数の暗号デバイスの中から暗号デバイス１００を識別し、デバイスの登録段階の間に暗号デバイス１００から先行して受信している第１のヘルパーデータを送信する。
【００４５】
使用段階において、ＰＵＦ１１０は、第２のノイズの多いビット列を生成するように構成されている。暗号デバイス１００は、使用段階の間に第２のノイズの多いビット列の少なくとも一部分および受信されている第１のヘルパーデータから第１のランダムビット列を決定するように構成されている誤り訂正器１６０を備える。たとえば、図１ｂに与えられている例に従うと、誤り訂正器１６０は、受信されている第１のヘルパーデータを、第２のノイズの多いビット列の少なくとも一部分に追加するように構成することができる。結果として、一般的に、近似した符号語のシーケンス、すなわち、符号語のシーケンスに、第１のビット列と比較して、第２のノイズの多いビット列の中に存在するのと同じ量のノイズが加わったものが取得される。誤り訂正器１６０は、たとえば、誤り訂正符号と関連付けられる誤り訂正アルゴリズムを使用して、近似した符号語のシーケンスを訂正して符号語のシーケンスに戻す。最後に、誤り訂正器１６０は、第１のランダムビット列を取得するために、符号語のシーケンスを復号することができる。たとえば、鍵生成器は、第１のランダムビット列から公開鍵に対応する秘密鍵を構築するように構成することができる。
【００４６】
使用段階のこの時点において、暗号デバイス１００は、たとえば、暗号化、署名などのために、秘密鍵を使用することができる。それにもかかわらず、暗号デバイス１００は、秘密鍵を取得するために不揮発性メモリを必要としていない。
【００４７】
登録ユニット１４２および使用段階ユニット１４４は、別個のユニットとして実装されてもよい。登録ユニット１４２および使用段階ユニット１４４は、組み合わせて、２つの動作モード、すなわち、登録モードおよび使用段階モードを有する結合登録／使用段階ユニットにされてもよい。モードに応じて、それぞれ結合ユニットの登録ユニット部分または使用段階部分が使用される。
【００４８】
図１ａは、破線で示されているように、サーバ２００と通信接触しているデバイス１００を示している。一実施形態において、サーバ２００は、デバイス１００のような複数の暗号デバイスと通信する。暗号デバイス１００に加えて、図１ａは、複数の暗号デバイスのうちの暗号デバイス１００’および１００’’をも示している。複数の暗号デバイスのうちの暗号デバイスは、それらのＰＵＦの誤りを訂正するための第１のヘルパーデータをサーバ２００に格納し、サーバ２００に対して、それ自体を識別するためにその同じＰＵＦを使用する。これによって、複数の暗号デバイスのうちのデバイスが、かなりの程度同一であることが可能になる。たとえば、一実施形態において、デバイス上に格納されているすべての情報は、存在する場合、登録段階の間、複数の暗号デバイスのすべてについて同一である。これによって、デバイスをプロビジョニングするための時間、および、デバイスの不揮発性メモリの量が低減する。
【００４９】
一実施形態において、暗号デバイス１００は、登録段階の間にデバイス内に含まれているいかなる不揮発性メモリにも書き込まないように構成されている。いくつかの実施形態は、たとえば、フラッシュメモリにファームウェアを書き込むために、登録段階が終了する前に何らかの書き込みを実施することができるが、他の実施形態において、不揮発性記憶装置は必要とされない。事実、一実施形態において、暗号デバイスは、不揮発性書き換え可能メモリを備えない。デバイスは、ソフトウェアを記憶するＲＯＭを備えることができる。
【００５０】
一実施形態において、暗号デバイスは、暗号データを記憶するように構成されている複数のマイクロヒューズを備えない。マイクロヒューズは多くの場合、鍵、または、デバイスを識別する識別子を記憶するために使用される。マイクロヒューズは、高価であるとともに書き込みに時間がかかり、したがって、それらを回避することが有利である。事実、一実施形態において、暗号デバイスは、暗号デバイスを一意に識別するための、固有で、固定の、予め決定された識別子を備えない。ＰＵＦ１１０によって生成されるノイズの多いビット列は、予め決定することができない。そうではなく、ノイズの多いビット列は、ＰＵＦ１１０の材料のランダムな変動によって決定される。
【００５１】
一実施形態において、暗号デバイスは、署名権限の公開鍵を備え、暗号デバイスは、署名権限の公開鍵を使用して、受信される第１のヘルパーデータの署名を検証するように構成されており、誤り訂正器は、検証に失敗した場合は、受信されている第１のヘルパーデータを使用しないように構成されている。たとえば、公開鍵は、デバイス１００の不揮発性メモリ内に記憶することができる。公開鍵は、複数の暗号デバイスのすべての暗号デバイスについて同じであり得る。たとえば、デバイス１００は、受信される第１のヘルパーデータの署名を検証するための暗号ユニット１８０を備えることができる。
【００５２】
一実施形態において、電子暗号デバイス１００は、暗号デバイス１００を作動させるアプリケーションに関連する目的のための何らかの不揮発性メモリを含むことができる。電子暗号デバイス１００はまた（または代わりに）、デバイスを攻撃に対して保護するための何らかの不揮発性メモリを含むことができる。たとえば、不揮発性メモリは、ロールバック攻撃を防止するためのカウンタを記憶するために使用することができる。ロールバック攻撃において、デバイスは、全体的に以前の状態に戻され、その間に行われているすべての変更は取り消される。ロールバック攻撃は、ロールバックされるデータに関係付けられる低減しないカウンタを記憶することによって防止することができる。たとえば、カウンタは、ファームウェアのバージョン番号を示すことができる。新たなファームウェアのバージョン番号がカウンタ内で示されるバージョンを下回る場合、ファームウェアは拒絶される。それにもかかわらず、たとえ何らかの不揮発性メモリが使用される場合であっても、不揮発性メモリの総量、および、パーソナライズに必要とされる時間は低減される。すべての実施態様がロールバック保護を必要とするとは限らず、これは、用途および／または攻撃モデルに依存する。
【００５３】
第１のＰＵＦデータおよび／または第２のＰＵＦデータを構築するための２つの異なる方法を、図３ａ−図４ｂを参照して説明する。
【００５４】
図２は、電子サーバ２００の一実施形態の一例を概略的に示す。図２は、複数１０１の暗号デバイスとともに、サーバ２００を示す。複数の暗号デバイスのうちの３つのデバイス、すなわち、暗号デバイス１００、１００’および１００’’が示されている。複数の暗号デバイスは、３つよりも多くのデバイス、たとえば、１０００超、１００００超などのデバイスを含んでもよい。
【００５５】
サーバ２００は、暗号デバイス１００の登録段階の間に暗号デバイス１００から第１のＰＵＦデータを受信するように構成されている通信ユニット２１０を備える。第１のＰＵＦデータは、暗号デバイス１００の物理的複製不可能関数を一意に識別し、第１のヘルパーデータを含む。通信ユニット２１０はまた、暗号デバイス１００の使用段階の間に暗号デバイス１００から第２のＰＵＦデータをも受信する。第２のＰＵＦデータもまた、物理的複製不可能関数１１０を一意に識別する。同様に、通信ユニット２１０は、複数１０１の暗号デバイスのうちの他のデバイスから第１のＰＵＦデータおよび第２のＰＵＦデータを受信することができる。
【００５６】
サーバ２００は、第１のＰＵＦデータの受信に応答して少なくとも第１のヘルパーデータを格納するように構成されている電子データベースを備える。
【００５７】
サーバ２００は、第２のＰＵＦデータから物理的複製不可能関数を識別し、データベースから第１のヘルパーデータを取り出し、通信ユニット２１０を使用して第１のヘルパーデータを識別されている暗号デバイスへと送信するように構成されている応答ユニット２３０を備える。
【００５８】
図３ａは、登録段階の間の電子暗号デバイスの一実施形態におけるデータの第１の例を概略的に示す。
【００５９】
たとえば、ＰＵＦ１１０によって生成される、第１のノイズの多いビット列３１０が示されている。第１のノイズの多いビット列３１０は、第１の部分３１４と、重なり合わない第２の部分３１２とを含む。第２の部分３１２は、ＰＵＦ１１０を識別し、それとともに、デバイス１００を識別する。たとえば、乱数生成器１２０によって生成される、第１のビット列３４０も示されている。第１の部分３１４および第１のランダムビット列３４０からヘルパーデータ３３０が計算され、したがって、ヘルパーデータ３３０および第２のノイズの多いビット列を与えられて、第１のランダムビット列３４０を再構築することができる。第１のＰＵＦデータ３５０は、第１のヘルパーデータ３３０と、第１のノイズの多いビット列の第２の部分３１２とを含む。サーバ２００は、後に、第１のＰＵＦデータ３５０において受信される第２の部分３１２からＰＵＦ１１０を識別することができる。第１のランダムビット列３４０から、公開鍵３４４が生成され、場合によって秘密鍵３４２が生成される。公開鍵３４４は、第１のＰＵＦデータ３５０とともにサーバ２００に送信することができる。
【００６０】
データベース２２０は、暗号デバイス１００の物理的複製不可能関数３１０の第１のノイズの多いビット列３１０の第２の部分３１２と関連付けられる第１のヘルパーデータ３３０を格納するように構成されている。たとえば、第１のヘルパーデータ３３０および第２の部分３１２は、同じレコード内に格納することができる。
【００６１】
図３ｂは、使用段階の間の電子暗号デバイスの一実施形態におけるデータの第１の例を概略的に示す。
【００６２】
たとえば、ＰＵＦ１１０によって生成される、第２のノイズの多いビット列３２０が示されている。第２のノイズの多いビット列３２０は、第１の部分３２４と、重なり合わない第２の部分３２２とを含む。第２のノイズの多いビット列３２０の２つの部分への分割は、第１のノイズの多いビット列３１０の分割と同じであり、それによって、第１のノイズの多いビット列３１０の第１の部分および第２の部分はそれぞれ、第２のノイズの多いビット列３２０の第１の部分および第２の部分に近い。第２のＰＵＦデータ３５２は、第２のノイズの多いビット列３２０の第２の部分３２２を含む。第２の部分３２２に基づいて、サーバ２００は、ＰＵＦを識別し、第１のＰＵＦデータ３５０において以前に受信されているヘルパーデータ３３０を取り出す。これに基づいて、サーバ２００は、ヘルパーデータ３３０を暗号デバイス１００に返す。
【００６３】
応答ユニット２３０は、第２のＰＵＦデータ３５２において受信されている第２のノイズの多いビット列の第２の部分３２２と、データベース２２０内に格納されている第１のノイズの多いビット３１０列の第２の部分３１２との間の差を決定することによって、物理的複製不可能関数を識別するように構成されている。たとえば、物理的複製不可能関数は、差が第１の識別閾値未満である場合に識別される。第１の識別閾値は、複数１０１の暗号デバイスのサイズ、第１の複数の暗号デバイスのＰＵＦの誤り率、および、ノイズの多いビット列のサイズから決定することができる。代替的に、物理的複製不可能関数は、データベース２２０内のすべての第２の部分にわたって差が最も小さい、データベース２２０内に格納されている第１のノイズの多いビット３１０列の第２の部分３１２として識別することができる。
【００６４】
第１の部分３２４およびヘルパーデータ３３０から、第１のランダムビット列３４０が再構築され、たとえば、誤り訂正器は、第２のノイズの多いビット列の第１の部分および受信されている第１のヘルパーデータから、第１のランダムビット列を決定するように構成することができる。第１のランダムビット列３４０から、秘密鍵３４２が生成され、場合によって公開鍵３４４が生成される。秘密鍵３４２は一般的に、暗号デバイス１００には必要とされない。
【００６５】
一実施形態において、暗号ユニット１８０は、秘密鍵３４２を使用して、メッセージに署名し、たとえば、通信ユニット１５０を使用して、このメッセージを、たとえば、サーバ２００に送信することができる。サーバ２００は、第１のＰＵＦデータ３５０とともに受信される公開鍵を使用して、署名を検証することができる。一実施形態において、サーバ２００は、第１のＰＵＦデータ３５０とともに受信される公開鍵を使用して、メッセージを暗号化し、このメッセージをデバイス１００に送信する。暗号ユニット１８０は、秘密鍵３４２を使用して、メッセージを復号することができる。
【００６６】
ノイズの多いビット列の第２の部分は、デバイスを識別するために使用される。ノイズの多いビット列の第１の部分は、鍵を導き出すために使用することができる。一般的に、第２の部分は、第１の部分よりもはるかに小さいものであり得る。識別に使用される第２の部分の長さは、たとえば、その中からデバイスが識別されなければならないデバイスの数に応じて決まる。第１の部分の長さは、そこから導き出されるビット列を与えられて、使用状況に応じて決まる。たとえば、暗号鍵は、たとえば、８０ビット、１２８ビット、またはさらには２５６ビットなどの最小長を有することを必要とされ得る。一実施形態において、第２の部分は、第１の部分よりも小さいビット長を有する。一実施形態において、第１の部分は、第２の部分の少なくとも２倍の長さである。
【００６７】
図４ａは、登録段階の間の電子暗号デバイスの一実施形態におけるデータの第２の例を概略的に示す。
【００６８】
たとえば、ＰＵＦ１１０によって生成される、第１のノイズの多いビット列３１０が示されている。たとえば、乱数生成器１２０によって生成される、第１のビット列３４０も示されている。第１のノイズの多いビット列３１０および第１のランダムビット列３４０からヘルパーデータ３３０が計算され、したがって、ヘルパーデータ３３０および第２のノイズの多いビット列を与えられて、第１のランダムビット列３４０を再構築することができる。第１のランダムビット列３４０から、公開鍵３４４が生成され、場合によって秘密鍵３４２が生成される。公開鍵３４４は、第１のＰＵＦデータ３５１とともにサーバ２００に送信することができる。興味深いことに、この実施形態において、第１のＰＵＦデータは、第１のノイズの多いビット列１１０のいかなる部分も直接的に含む必要はない。たとえ第１のＰＵＦデータ３５１がランダムビット列３４０に基づくとしても、サーバ２００は依然として、それを用いてデバイス２００を識別することが可能である。
【００６９】
図４ｂは、使用段階の間の電子暗号デバイスの一実施形態におけるデータの第２の例を概略的に示す。
【００７０】
たとえば、ＰＵＦ１１０によって生成される、第２のノイズの多いビット列３２０が示されている。たとえば、乱数生成器１２０によって生成される、第２のビット列３４１も示されている。第２のヘルパーデータ３３２は、第２のノイズの多いビット列３２０および第２のランダムビット列３４１から計算される。第２のＰＵＦデータ３５３は、第２のヘルパーデータ３３２を含む。
【００７１】
第２のヘルパーデータは、サーバ２００によって、ＰＵＦ１１０を識別するために第１のヘルパーデータ１００と比較される。一般的に、第２のヘルパーデータは、ＰＵＦ１１０のノイズの多いビット列を実際に訂正するためには決して使用されることはない。しかしながら、第２のヘルパーデータは十分に機能的であり、第２のヘルパーデータは、後に、物理的複製不可能関数によって生成されるノイズの多いビット列を第２のランダムビット列にマッピングするために使用することができる。
【００７２】
第２のヘルパーデータ３３２に基づいて、サーバ２００は、ＰＵＦを識別し、第１のＰＵＦデータ３５１において以前に受信されているヘルパーデータ３３０を取り出す。これに基づいて、サーバ２００は、ヘルパーデータ３３０を暗号デバイス１００に返す。ノイズの多いビット列３２０およびヘルパーデータ３３０から、第１のランダムビット列３４０が再構築され、たとえば、誤り訂正器は、第２のノイズの多いビット列３２０および受信されている第１のヘルパーデータから、第１のランダムビット列を決定するように構成することができる。第１のランダムビット列３４０から、秘密鍵３４２が生成され、場合によって公開鍵３４４が生成される。秘密鍵３４２は一般的に、暗号デバイス１００には必要とされない。
【００７３】
たとえば、応答ユニット２３０は、第２のヘルパーデータ３３２と第１のヘルパーデータ３３０との間の差を決定することによって、ＰＵＦ１１０を識別するように構成することができる。たとえば、第２のヘルパーデータ３３２および第１のヘルパーデータ３３０は、ともにＸＯＲ演算することができる。次に、その差と、最も近い１つまたは複数の符号語との間の距離が決定される。物理的複製不可能関数は、この距離が第２の識別閾値未満である場合に識別される。代替的に、距離を最小化する第１のヘルパーデータ３３０が選択されてもよい。
【００７４】
この実施形態は、例を使用してさらに例示される。
【００７５】
たとえば、ＰＵＦ１１０の第１のノイズの多いビット列をＸ１として示し、第２のノイズの多いビット列をＹ１として示す。異なるデバイス、たとえば、デバイス１００’のＰＵＦの第１のノイズの多いビット列および第２のノイズの多いビット列をそれぞれ、Ｘ２およびＹ２として示す。デバイス１００のヘルパーデータ生成器によって決定される符号語のシーケンスは、
【数１】
0006789222.tif 000002
であり、デバイス１００’のものは
【数２】
0006789222.tif 000003
である。第１のヘルパーデータは、デバイス１００および１００’について、それらのそれぞれの登録段階において、それぞれ
【数３】
0006789222.tif 000004
および
【数４】
0006789222.tif 000005
として計算することができる。サーバ２００は、
【数５】
0006789222.tif 000006
と
【数６】
0006789222.tif 000007
の両方をデータベース２２０内に格納する。使用段階において、デバイス１００は、第２のヘルパーデータを、
【数７】
0006789222.tif 000008
として計算することができる。Ｃは符号語を示す。加算と減算の両方を、ＸＯＲとして実施することができる。
【００７６】
デバイス１００から第２のヘルパーデータ
【数８】
0006789222.tif 000009
を受信した後、サーバ２００は、データベース２２０内に格納されているいずれの第１のヘルパーデータがデバイス１００に返信されるべきかを選択する必要がある。サーバ２００は、受信されている第２のヘルパーデータと格納されている第１のヘルパーデータとの間の差を計算することによって進行することができる。
【数９】
0006789222.tif 000010
【００７７】
これらの式の中の第２の項は、符号語の間の差である。誤り訂正符号が線形である場合、これらはそれ自体が、１つまたは複数の符号語から成るシーケンスである。第１の項は、ＰＵＦからのノイズの多いビット列の間の差である。式１の場合、すなわち、格納されている第１のヘルパーデータと受信されている第２のヘルパーデータとの間の正確な一致について、この項のハミング重みは小さく、ＰＵＦの誤り率によって決定される。式２の場合、すなわち、格納されている第１のヘルパーデータと受信されている第２のヘルパーデータとの間の不正確な一致について、この項のハミング重みは大きく、この項は基本的にランダムである。符号語のシーケンスに加えられるランダムビット列はそれ自体が、ランダムビット列である。サーバ２００は、この時点において、誤り訂正符号と関連付けられる誤り訂正アルゴリズムを適用する誤り訂正器によって、
【数１０】
0006789222.tif 000011
と
【数１１】
0006789222.tif 000012
の両方の差を実行することができる。その結果は、各差についての符号語のシーケンス、たとえば、Ｃ１およびＣ２である。見出された符号語シーケンスが差から減算される：
【数１２】
0006789222.tif 000013
および
【数１３】
0006789222.tif 000014
。
【００７８】
差（１）の場合、誤り率は小さく、そのため、符号語は多くの場合または常に、
【数１４】
0006789222.tif 000015
に等しい。したがって、
【数１５】
0006789222.tif 000016
は（Ｘ１−Ｙ１）に近くなるか、または、等しくすらなる。同じＰＵＦからとられるノイズの多いビット列は互いに近いため、この値のハミング重みは小さい。差（２）の場合、誤り率は大きく、そのため、符号語はほぼ常に異なる。したがって、
【数１６】
0006789222.tif 000017
はより大きいハミング重みを有すると予測される。
【００７９】
サーバ２００は、これを使用して、正確な第１のヘルパーデータを識別することができる。各格納されている第１のヘルパーデータについて、格納されている第１のヘルパーデータと受信されている第２のヘルパーデータとの間の差が、たとえばＸＯＲを使用して決定される。誤り訂正器がこの差に適用されて、結果として、差に最も近い符号語のシーケンスがもたらされる。その差と、符号語のシーケンスとの間のさらなる差が決定される。このさらなる差から、ハミング重みが取得される。すべての第１のヘルパーデータにわたって、ハミング重みが最も小さくなるものが選択され得る。代替的に、第２の差分閾値を下回るハミング重みをもたらす第１のヘルパーデータが使用されてもよい。
【００８０】
図４ａおよび図４ｂの第１のＰＵＦデータおよび第２のＰＵＦデータには、必要とされるＰＵＦデータがより少ないという利点がある。サーバ２００に対する識別と、そこからの鍵の導出の両方のために、より小さいＰＵＦを使用することができる。ＳＲＡＭ  ＰＵＦが使用される場合でも、メモリは経時変化に対抗するための他の目的に再使用されないことが好ましい。ヘルパーデータを使用してサーバ２００に対して識別することによって、必要とされるＰＵＦの量を低減することが可能である。他方、図３ａおよび図３ｂの第１のＰＵＦデータおよび第２のＰＵＦデータは、相当により単純であり、特にサーバ２００側で必要とされる処理がより少ない。
【００８１】
一実施形態において、乱数生成器１２０は、物理的複製不可能関数１１０から取得されるノイズの多いビット列に基づいて乱数を生成するように構成されている。たとえば、乱数生成器１２０は、第１のノイズの多いビット列を使用して、第１のランダムビット列を導き出すことができる。第２のランダムビット列が使用される場合、乱数生成器１２０は、第２のノイズの多いビット列を使用して、第２のランダムビット列を導き出すことができる。第１のノイズの多いビット列および第２のノイズの多いビット列の代わりに、別個のノイズの多いビット列がＰＵＦ１１０から取得されてもよく、これには、より大きいＰＵＦが必要になるという欠点がある。たとえば、乱数生成器１２０は、ノイズの多いビット列をハッシュしてハッシュ化されたノイズの多いビット列を取得することができ、乱数生成器１２０は、種から乱数を生成するための疑似乱数生成器として構成されており、種は、ハッシュ化されたノイズの多いビット列を含む。ハッシュは、暗号ハッシュ、たとえば、ＳＨＡ−１、ＳＨＡ−２５６などであってもよい。ノイズの多いビット列中のノイズはランダムビット列を、少なくとも部分的に真にランダムにする。
【００８２】
一実施形態において、デバイス１１０は、暗号デバイスの群を一意に識別する群識別子を備え、第１のＰＵＦデータおよび第２のＰＵＦデータは群識別子を含む。デバイス１１０は、群識別子によって識別される群の一部分である。群識別子は、第２のＰＵＦデータと第１のＰＵＦデータのデータベースとの間に一致が見出されなければならないときに、サーバ側で必要とされる計算労力を大幅に低減することができる。群識別子を使用すると、探索空間を大幅に低減することができる。群識別子は、図３ａ−図３ｂを参照して与えられている例、および、図４ａ−図４ｂを参照して与えられている例において使用することができる。
【００８３】
たとえば、サーバ２００の応答ユニットは、第２のＰＵＦデータおよび群識別子から物理的複製不可能関数を識別するように構成することができる。たとえば、電子データベースは、両方とも第１のＰＵＦデータから取得される、第１のヘルパーデータおよび群識別子を格納するように構成することができ、場合によっては、この第１のＰＵＦデータの第１のノイズの多いビット列の第２の部分も含めて使用される。応答ユニットは、最初に、第２のＰＵＦデータにおいて受信される群識別子を、データベース内に格納されている１つまたは複数の群識別子と比較することによって、第２のＰＵＦデータから物理的複製不可能関数を識別するように構成することができる。受信される群識別子と格納されている群識別子とが等しいとき、応答ユニットは、第２のＰＵＦデータにおいて受信される第２の部分および／またはヘルパーデータを、比較される群識別子とともに格納されている第２のＰＵＦデータおよび／またはヘルパーデータと比較することによって、物理的複製不可能関数をさらに識別するように構成することができる。
【００８４】
群識別子は、暗号デバイスの群を識別する。群は、複数の、たとえば、少なくとも２つ、の暗号デバイスを含む。複数のデバイス１０１は、複数の群を含み得る。一例として、複数のデバイス１０１は、各々が１００個のデバイスから成る１０個の群の、１０００個のデバイスを含むものとする。たとえば、第１のＰＵＦデータを送信することによって、たとえすべてのデバイスが登録されている場合であっても、識別には、１０００個ではなく１００個のデバイスを比較しさえすればよい。群識別子は、群ではなくデバイスを一意に識別する識別子よりもはるかに小さいものであり得る。
【００８５】
群識別子は、デバイス１１０のＲＯＭに組み込むことができ、それによって、異なる群識別子を有する新たな群を製造することは、ＲＯＭマスクを変更することのみを含む。代替的に、群識別子は、たとえば、製造または登録の間に、デバイス上に格納されてもよい。
【００８６】
一般的に、暗号デバイス１００（および１００’、１００’’）ならびにサーバ２００は各々、デバイス１００およびサーバ２００に格納されている適切なソフトウェアを実行するマイクロプロセッサ（図示せず）を備え、たとえば、そのソフトウェアは、対応するメモリ、たとえば、ＲＡＭのような揮発性メモリ、または、フラッシュのような不揮発性メモリ（図示せず）内にダウンロードおよび／または記憶されているものであり得る。代替的に、デバイス１００およびサーバ２００は、全体的にまたは部分的に、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のようなプログラム可能論理において実装されてもよい。デバイス１００および２００は、全体的にまたは部分的に、いわゆる特定用途向け集積回路（ＡＳＩＣ）、すなわち、それらの特定の用途のためにカスタマイズされている集積回路（ＩＣ）として実装されてもよい。
【００８７】
一実施形態において、電子暗号デバイスは、各々がそれらのそれぞれの機能のために構成されている、乱数生成器回路、ヘルパーデータ生成器回路、登録ユニット回路、通信ユニット回路、使用段階ユニット回路を備える。一実施形態において、サーブは通信ユニット回路、電子データベース回路、および応答ユニット回路を備える。回路は、プロセッサ回路およびストレージ回路であってもよく、プロセッサ回路は、ストレージ回路内で電子的に表現される命令を実行する。回路はまた、ＦＰＧＡ、ＡＳＩＣなどであってもよい。システムは、追加の回路、たとえば、鍵生成回路、暗号ユニット回路などを備えてもよく、これらの回路は、本明細書において記載されている対応するユニットを実装する。
【００８８】
図５は、電子暗号方法５００の一例を概略的に示す。方法５００は、登録段階５１０および後の使用段階５２０を有する。
【００８９】
登録段階５１０は、
物理的複製不可能関数（ＰＵＦ）を使用して第１のノイズの多いビット列を生成するステップ５１１と、
第１のランダムビット列を選択するステップ５１２と、
第１のノイズの多いビット列の少なくとも一部分および第１のランダムビット列から第１のヘルパーデータを計算するステップ５１３と、
第１のＰＵＦデータを生成するステップ５１４であって、第１のＰＵＦデータは第１のノイズの多いビット列から導き出され、第１のＰＵＦデータは、物理的複製不可能関数を一意に識別し、第１のＰＵＦデータは第１のヘルパーデータを含む、第１のＰＵＦデータを生成するステップ５１４と、
第１のＰＵＦデータを電子サーバに送信するステップ５１５と
を含む。
【００９０】
使用段階５２０は、
物理的複製不可能関数（ＰＵＦ）を使用して第２のノイズの多いビット列を生成するステップ５２１と、
第２のＰＵＦデータを生成するステップ５２２であって、第２のＰＵＦデータは、第２のノイズの多いビット列から導き出され、物理的複製不可能関数を一意に識別する、第２のＰＵＦデータを生成するステップ５２２と、
第２のＰＵＦデータをサーバ２００に送信し、それに応答してサーバから第１のヘルパーデータを受信するステップ５２３と、
第２のノイズの多いビット列の少なくとも一部分および受信されている第１のヘルパーデータから第１のランダムビット列を決定するステップ５２４と
を含む。
【００９１】
図６は、電子サーバ方法６００の一例を概略的に示す。
【００９２】
方法６００は、
電子暗号デバイスの登録段階の間に暗号デバイスから第１のＰＵＦデータを受信するステップ６１０であって、第１のＰＵＦデータは、暗号デバイスの物理的複製不可能関数を一意に識別し、第１のＰＵＦデータは第１のヘルパーデータを含む、第１のＰＵＦデータを受信するステップ６１０と、
第１のＰＵＦデータの受信に応答して第１のヘルパーデータを格納するステップ６２０と、
暗号デバイスの使用段階の間に暗号デバイスから第２のＰＵＦデータを受信するステップ６３０であって、第２のＰＵＦデータは、物理的複製不可能関数を一意に識別する、第２のＰＵＦデータを受信するステップ６３０と、
第２のＰＵＦデータから物理的複製不可能関数を識別するステップ６４０と、
第１のヘルパーデータを取り出すステップ６５０と、
第１のヘルパーデータを暗号デバイスに送信するステップ６６０と
を含む。
【００９３】
当業者には明らかであるように、方法を実行する多くの異なる方法の可能性がある。たとえば、ステップの順序は変更することができ、または、いくつかのステップは並行して実行されてもよい。そのうえ、ステップの間に、他の方法ステップが挿入されてもよい。挿入されるステップは、本明細書において記載されているような方法の改良を表してもよく、または、方法と無関係であってもよい。たとえば、ステップ５１１および５１２は少なくとも部分的に、並行して実行されてもよい。そのうえ、所与のステップは、次のステップが開始される前に完全に完了しなくてもよい。
【００９４】
本発明による方法は、プロセッサシステムに、方法５００または６００を実施させるための命令を含むソフトウェアを使用して実行されてもよい。ソフトウェアは、システムの特定のサブエンティティによって行われるステップのみを含んでもよい。ソフトウェアは、ハードディスク、フロッピー、メモリなどのような適切な記憶媒体内に記憶することができる。ソフトウェアは、ワイヤに沿って、または無線で、または、データネットワーク、たとえば、インターネット、を用いて、信号として送信することができる。ソフトウェアは、ダウンロード、および／または、サーバ上での遠隔使用のために利用可能とすることができる。本発明による方法は、プログラム可能論理、たとえば、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）を、本方法を実行するように構築するように構成されているビットストリームを使用して実行することができる。
【００９５】
本発明はまた、コンピュータプログラム、特に、本発明を実践するようになされている、キャリア上または内のコンピュータプログラムにも及ぶことが諒解されよう。プログラムは、ソースコード、オブジェクトコード、コード中間ソース、および、部分的にコンパイルされた形態のようなオブジェクトコードの形態であってもよく、または、本発明による方法を実施するのに使用するのに適した任意の他の形態であってもよい。コンピュータプログラム製品に関する実施形態は、記載されている方法のうちの少なくとも１つの処理ステップの各々に対応するコンピュータ実行可能命令を含む。これらの命令は、サブルーチンに細分化することができ、かつ／または、静的にまたは動的にリンクすることができる１つまたは複数のファイル内に格納することができる。コンピュータプログラム製品に関する別の実施形態は、記載されているシステムおよび／または製品のうちの少なくとも１つの手段の各々に対応するコンピュータ実行可能命令を含む。
【００９６】
図７ａは、コンピュータプログラム１０２０を含む書き込み可能部分１０１０を有するコンピュータ可読媒体１０００を示しており、コンピュータプログラム１０２０は、プロセッサシステムに、一実施形態に従って、暗号方法、たとえば、方法５００、または、サーバ方法、たとえば、方法６００を実施させるための命令を含む。コンピュータプログラム１０２０は、コンピュータ可読媒体１０００上で、物理マークとして、または、コンピュータ可読媒体１０００の磁化によって具現化することができる。しかしながら、任意の他の適切な実施形態もまた考えられる。さらに、コンピュータ可読媒体１０００はここでは光ディスクとして示されているが、コンピュータ可読媒体１０００は、ハードディスク、ソリッドステートメモリ、フラッシュメモリなどのような任意の適切なコンピュータ可読媒体であってもよく、記録不可能または記録可能であってもよいことが諒解されよう。コンピュータプログラム１０２０は、プロセッサシステムに、上記方法を実行させるための命令を含む。
【００９７】
図７ｂは、一実施形態によるプロセッサシステム１１００の概略図を示す。プロセッサシステムは、１つまたは複数の集積回路１１１０を含む。１つまたは複数の集積回路１１１０のアーキテクチャが、図７ｂに概略的に示されている。回路１１１０は、一実施形態による方法を実行し、かつ／または、そのモジュールもしくはユニットを実装するためにコンピュータプログラム構成要素を作動させるための処理ユニット１１２０、たとえば、ＣＰＵ、を備える。回路１１１０は、プログラミングコード、データなどを記憶するためのメモリ１１２２を備える。メモリ１１２２の一部分は、読み出し専用であってもよい。回路１１１０は、通信要素１１２６、たとえば、アンテナ、コネクタまたはそれらの両方などを備えることができる。回路１１１０は、方法において定義されている処理の一部分またはすべてを実施するための専用集積回路１１２４を備えることができる。プロセッサ１１２０、メモリ１１２２、専用ＩＣ  １１２４および通信要素１１２６は、相互接続部１１３０、たとえば、バス、を介して互いに接続することができる。プロセッサシステム１１１０は、それぞれアンテナおよび／またはコネクタを使用して、接触および／または非接触通信するように構成することができる。
【００９８】
上述した実施形態は、本発明を限定しているのではなく例示していること、および、当業者は多くの代替的な実施形態を設計することが可能であることが留意されるべきである。
【００９９】
特許請求の範囲において、括弧内に配置されている任意の参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。動詞「備える（ｃｏｍｐｒｉｓｅ）」およびその活用形が使用されている場合、これは、特許請求の範囲内に記述されているもの以外の要素またはステップが存在することを除外するものではない。要素に冠詞「ａ」または「ａｎ」が先行している場合、これは、そのような要素が複数存在することを除外するものではない。本発明は、いくつかの個別の要素を備えるハードウェアによって、および、適切にプログラムされているコンピュータによって実装することができる。いくつかの手段を列挙している装置請求項において、これらの手段のうちのいくつかは、まったく同一のハードウェア物品によって具現化されてもよい。特定の方策が相互に異なる従属請求項に記載されているというだけのことは、これらの方策の組み合わせを好都合に使用することができないということを示すものではない。
【０１００】
特許請求の範囲において、括弧内の参照符号は、実施形態の図面または実施形態の式の中の参照符号を参照し、したがって、特許請求の範囲の理解度を増大させる。これらの参照符号は、特許請求の範囲を限定するものとして解釈されるべきではない。
【符号の説明】
【０１０１】
１００、１００’、１００’’  電子暗号デバイス
１０１  複数の暗号デバイス
１１０  物理的複製不可能関数（ＰＵＦ）
１２０  乱数生成器
１３０  ヘルパーデータ生成器
１３１  符号語生成器
１３２  差分ユニット
１３３  ヘルパーデータ生成器出力
１４２  登録ユニット
１４４  使用段階ユニット
１５０  通信ユニット
１６０  誤り訂正ユニット
１７０  鍵生成器
１８０  暗号ユニット
２００  電子サーバ
２１０  通信ユニット
２２０  電子データベース
２３０  応答ユニット
３１０  第１のノイズの多いビット列
３１２  第１のノイズの多いビット列の第２の部分
３１４  第１のノイズの多いビット列の第１の部分
３２０  第２のノイズの多いビット列
３２２  第２のノイズの多いビット列の第２の部分
３２４  第２のノイズの多いビット列の第１の部分
３３０  第１のヘルパーデータ
３３２  第２のヘルパーデータ
３４０  第１のランダムビット列
３４１  第２のランダムビット列
３４２  秘密鍵
３４４  公開鍵
３５０、３５１  第１のＰＵＦデータ
３５２、３５３  第２のＰＵＦデータ
【図１ａ】
0006789222.tif 000018
【図１ｂ】
0006789222.tif 000019
【図２】
0006789222.tif 000020
【図３ａ】
0006789222.tif 000021
【図３ｂ】
0006789222.tif 000022
【図４ａ】
0006789222.tif 000023
【図４ｂ】
0006789222.tif 000024
【図５】
0006789222.tif 000025
【図６】
0006789222.tif 000026
【図７ａ】
0006789222.tif 000027
【図７ｂ】
0006789222.tif 000028