(57)【特許請求の範囲】
【請求項１】
集積回路であって、
一連のチャレンジ（ｓｊ）を生成するように構成されているシーケンス生成器（１３４，１３６；２３４，２３６）と、
一連の隠蔽出力（１１１；２１１）を生成するように構成されている隠蔽出力生成器（１０４；２０４）であって、隠蔽出力それぞれが前記一連のチャレンジにおける対応するチャレンジの関数である、前記隠蔽出力生成器と、
複数の応答部分を含んでいる応答シーケンス（１２８）を生成するように構成されているビット削減回路（１２６；２５８）であって、応答部分それぞれが、対応する複数の隠蔽出力の関数である、前記ビット削減回路と、
を備えている、集積回路。
【請求項２】
前記一連の隠蔽出力、または前記一連の隠蔽出力に基づいて導かれるパラメータ、のうちの少なくとも一方に対応する暗号化されたデータ（Ｅ（Ｄ））、を格納するように構成されている不揮発性メモリ（１２４）、
をさらに備えている、請求項１に記載の集積回路。
【請求項３】
前記シーケンス生成器が、前記集積回路に入力される第１のシードに基づいて前記一連のチャレンジを生成するように構成されている、
請求項１に記載の集積回路。
【請求項４】
前記シーケンス生成器が、前記集積回路によって生成される第２のシードに基づいて前記一連のチャレンジを生成するように構成されている、
請求項３に記載の集積回路。
【請求項５】
前記シーケンス生成器が、
一連の生成器値を生成するように構成されている第１の生成器（１３４；２３４）と、
生成器値それぞれのビットのサブセットを選択するように構成されているインデックスレジスタ（１３６；２３６）であって、サブセットそれぞれが前記一連のチャレンジにおけるチャレンジを形成する、前記インデックスレジスタと、
を備えている、
請求項１に記載の集積回路。
【請求項６】
前記第１の生成器が線形フィードバックシフトレジスタを含んでいる、
請求項５に記載の集積回路。
【請求項７】
前記応答シーケンスにおける応答部分それぞれが、前記対応する複数の隠蔽出力の非線形関数である、
請求項１に記載の集積回路。
【請求項８】
前記応答シーケンスにおける応答部分それぞれが、前記対応する複数の隠蔽出力における、値１を有するビットの数に基づいて求められる、
請求項７に記載の集積回路。
【請求項９】
前記ビット削減回路が、
前記応答シーケンスにおける応答部分それぞれについて、前記対応する複数の隠蔽出力の第１の部分における、値１を有するビットの第１の数と、前記対応する複数の隠蔽出力の第２の部分における、値１を有するビットの第２の数と、を数えるように構成されている計数回路と、
ビットの前記第１の数とビットの前記第２の数とを比較するように構成されている比較回路と、
を備えており、
前記比較の結果が、前記応答シーケンスにおける前記対応する応答部分を形成する、
請求項７に記載の集積回路。
【請求項１０】
前記隠蔽出力生成器が、物理的複製不可能関数（ＰＵＦ）回路を含んでいる、
請求項１に記載の集積回路。
【請求項１１】
前記ＰＵＦ回路が、遅延ベースのＰＵＦ回路を備えている、
請求項１０に記載の集積回路。
【請求項１２】
前記隠蔽出力生成器が、展開ロジックをさらに備えており、前記展開ロジックが、各チャレンジに複数の置換関数を適用して対応する複数の内部チャレンジを生成するように構成されており、
隠蔽出力生成器が、前記一連のチャレンジにおけるチャレンジそれぞれに対応する一連の隠蔽出力のサブセット（ｈｊｉ）を生成するように構成されており、前記一連の隠蔽出力のサブセットにおける隠蔽出力それぞれが、前記内部チャレンジの１つを前記ＰＵＦ回路に適用することによって生成される、
請求項１０に記載の集積回路。
【請求項１３】
前記一連の隠蔽出力のサブセットにおける前記隠蔽出力（ｈｊｉ）を比較するように構成されている比較回路（２４２）、
をさらに備えている、請求項１２に記載の集積回路。
【請求項１４】
前記隠蔽出力生成器（２０４）が、
それぞれが前記一連のチャレンジにおける第１のチャレンジに基づいてＰＵＦ出力を生成するように構成されている第１のＰＵＦ回路（２１０ａ）および第２のＰＵＦ回路（２１０ｂ）と、
前記第１のＰＵＦ回路によって生成される前記ＰＵＦ出力（Ｈ１（ｓｊ））と、前記第２のＰＵＦ回路によって生成される前記ＰＵＦ出力（Ｈ２（ｓｊ））とを比較するように構成されている比較回路（１４２）であって、前記比較の結果が前記第１のチャレンジに対応する前記隠蔽出力（ｈｊ）を形成する、前記比較回路と、
を備えている、
請求項１０に記載の集積回路。
【請求項１５】
前記ＰＵＦ回路（４１０）が、前記一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力（Ｈ１（ｓｊ））を生成し、前記一連のチャレンジにおける第２のチャレンジに基づいて第２のＰＵＦ出力（Ｈ１（ＬＦＳＲ（ｓｊ）））を生成するように、構成されており、
前記隠蔽出力生成器（４０４）が、前記第１のＰＵＦ出力と前記第２のＰＵＦ出力とを比較するように構成されている比較回路（１４２）、をさらに備えており、前記比較の結果が、前記第１のチャレンジに対応する前記隠蔽出力（ｈｊ）を形成する、
請求項１０に記載の集積回路。
【請求項１６】
前記隠蔽出力生成器（１０４）が、前記一連のチャレンジにおける第１のチャレンジ（ｓｊ）に基づいて内部チャレンジ（１０８）を生成するように構成されているビット拡張回路（１０６）、をさらに備えており、前記内部チャレンジが前記第１のチャレンジよりも長く、
前記ＰＵＦ回路（１１０）が、前記内部チャレンジに基づいてＰＵＦ出力（１１１）を生成するように構成されている、
請求項１０に記載の集積回路。
【請求項１７】
各ＰＵＦ出力（Ｈ（ｓｊ））を対応する極性ビット（ｔｊ）と比較するように構成されている比較回路（１４２）であって、各比較の結果が隠蔽出力を形成する、前記比較回路、
をさらに備えている、請求項１６に記載の集積回路。
【請求項１８】
前記集積回路（１１２）に入力される値を受け取り、受け取った前記値に基づいて、前記一連の隠蔽出力を前記集積回路から出力できるようにする、ように構成されているアクセス制御回路（１３８）、
をさらに備えている、請求項１に記載の集積回路。
【請求項１９】
前記アクセス制御回路（１３８）が、
受け取った前記値に一方向性関数を適用するように構成されている一方向性回路（１１４）と、
前記一方向性関数の結果を、前記集積回路に格納されている、デバイスに固有な値と比較するように構成されている比較回路と、
前記比較の結果を受け取り、受け取った前記結果に基づいて、前記一連の隠蔽出力を前記集積回路から出力できるようにする、ように構成されているイネーブラ回路（１４０）と、
を備えている、
請求項１８に記載の集積回路。
【請求項２０】
前記一方向性回路の少なくとも一部が、前記シーケンス生成器の回路の一部を形成している、
請求項１９に記載の集積回路。
【請求項２１】
隠蔽出力それぞれが、前記隠蔽出力生成器の特性の関数であり、前記特性が、複数の類似する集積回路の間で、製造特性に起因して異なる、
請求項１に記載の集積回路。
【請求項２２】
認証局を使用して集積回路を認証する方法であって、
前記集積回路において、
一連のチャレンジ（ｓｊ）を生成するチャレンジ生成ステップと、
一連の隠蔽出力（ｈｊ；ｈｊｉ）を生成する隠蔽出力生成ステップであって、隠蔽出力それぞれが、前記一連のチャレンジにおける対応するチャレンジの関数である、前記隠蔽出力生成ステップと、
複数の応答部分を含んでいる応答シーケンス（１２８；２２８）を生成する応答シーケンス生成ステップであって、応答部分それぞれが、対応する複数の隠蔽出力の関数である、前記応答シーケンス生成ステップと、
を実行する手順、
を含んでいる、方法。
【請求項２３】
前記応答シーケンス（１２８）を前記認証局に提供するステップ、
をさらに含んでいる、請求項２２に記載の方法。
【請求項２４】
前記認証局において、
前記集積回路から前記一連の隠蔽出力（Ｄ）を受信するステップと、
前記集積回路から前記応答シーケンス（１２８）を受信するステップと、
前記一連の隠蔽出力を使用して、シミュレートされた応答シーケンスを求めるステップと、
受信された前記応答シーケンス（１２８）が、シミュレートされた前記応答シーケンスに実質的に等しいかを判定するステップと、
を実行する手順、
をさらに含んでいる、請求項２３に記載の方法。
【請求項２５】
前記集積回路を登録する集積回路登録ステップ、
をさらに含んでいる、請求項２２に記載の方法。
【請求項２６】
前記集積回路を登録する前記集積回路登録ステップが、
前記一連の隠蔽出力（Ｄ）、または前記一連の隠蔽出力に基づいて導かれるパラメータ、のうちの少なくとも一方を、前記認証局に提供するステップと、
前記一連の隠蔽出力、または前記一連の隠蔽出力に基づいて導かれる前記パラメータ、に対応する暗号化されたデータ（Ｅ（Ｄ））を、前記認証局から受信するステップと、
暗号化された前記データを前記集積回路上の不揮発性メモリ（１２４）に格納するステップと、
を含んでいる、
請求項２５に記載の方法。
【請求項２７】
前記一連の隠蔽出力に基づいて導かれる前記パラメータが、前記一連の隠蔽出力のパラメータ化された形式を備えている、
請求項２６に記載の方法。
【請求項２８】
前記一連の隠蔽出力（ｈｊ）が、前記認証局から受信されるパスワード（ｘ  １１２）に基づいて前記認証局に提供される、
請求項２６に記載の方法。
【請求項２９】
前記集積回路を登録する前記集積回路登録ステップが、
前記認証局から前記パスワード（ｘ  １１２）を受信するステップと、
前記パスワードに対して一方向性関数（１１４）を実行するステップと、
前記一方向性関数の結果（Ｆ（ｘ））を、前記集積回路上に（１１６に）格納されている値（Ｆ（Ｙ））と比較するステップと、
前記比較の結果に基づいて、前記一連の隠蔽出力（Ｄ）を前記認証局に提供するステップと、
を含んでいる、
請求項２８に記載の方法。
【請求項３０】
前記一連のチャレンジを生成する前記チャレンジ生成ステップが、
前記認証局によって生成される第１のシードに基づいて前記一連のチャレンジを生成するステップ、
を含んでいる、
請求項２２に記載の方法。
【請求項３１】
前記一連のチャレンジを生成する前記チャレンジ生成ステップが、
前記集積回路によって生成される第２のシードに基づいて前記一連のチャレンジを生成するステップ、
をさらに含んでいる、
請求項３０に記載の方法。
【請求項３２】
前記一連のチャレンジを生成する前記チャレンジ生成ステップが、
一連の生成器値を生成するステップと、
生成器値それぞれのビットのサブセットを選択するステップであって、選択されるサブセットそれぞれが前記一連のチャレンジにおけるチャレンジを形成する、前記ステップと、
を含んでいる、
請求項２２に記載の方法。
【請求項３３】
前記応答シーケンスを生成する前記応答シーケンス生成ステップが、
前記応答シーケンスにおける応答部分それぞれについて、前記対応する複数の隠蔽出力に対して非線形関数を適用するステップ、
を含んでいる、
請求項２２に記載の方法。
【請求項３４】
前記一連の隠蔽出力を生成する前記隠蔽出力生成ステップが、
物理的複製不可能関数（ＰＵＦ）回路を使用して前記一連の隠蔽出力を生成するステップ、
を含んでいる、
請求項２２に記載の方法。
【請求項３５】
ＰＵＦ回路の使用が、遅延ベースのＰＵＦ回路の使用を含んでいる、
請求項３４に記載の方法。
【請求項３６】
前記一連の隠蔽出力を生成する前記隠蔽出力生成ステップが、
前記一連のチャレンジにおけるチャレンジそれぞれに対応する一連の隠蔽出力のサブセット（ｈｊｉ）、を生成するステップ、
を含んでいる、
請求項２２に記載の方法。
【請求項３７】
前記一連の隠蔽出力を生成する前記隠蔽出力生成ステップが、
第１のチャレンジ（ｓｊ）に複数の置換関数を適用して、対応する複数の内部チャレンジ（２０８）を生成するステップと、
内部チャレンジそれぞれをＰＵＦ回路に適用して、前記第１のチャレンジに対応する前記一連の隠蔽出力のサブセット、における対応する隠蔽出力（ｈｊｉ）、を生成するステップと、
前記第１のチャレンジに対応する前記一連の隠蔽出力のサブセット、における前記隠蔽出力を比較するステップと、
を含んでいる、
請求項３６に記載の方法。
【請求項３８】
前記一連の隠蔽ビット出力を生成する前記隠蔽ビット出力生成ステップが、
第１のＰＵＦ回路を使用して、前記一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力（Ｈ１（ｓｊ））を生成するステップと、
第２のＰＵＦ回路を使用して、前記第１のチャレンジに基づいて第２のＰＵＦ出力（Ｈ２（ｓｊ））を生成するステップと、
前記第１のＰＵＦ出力と前記第２のＰＵＦ出力とを比較するステップであって、前記比較の結果が、前記第１のチャレンジに対応する前記隠蔽出力（ｈｊ）を形成する、前記ステップと、
を含んでいる、
請求項３４に記載の方法。
【請求項３９】
前記一連の隠蔽出力を生成する前記隠蔽出力生成ステップが、
前記一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力（Ｈ１（ｓｊ））を生成するステップと、
前記一連のチャレンジにおける第２のチャレンジに基づいて第２のＰＵＦ出力（Ｈ１（ＬＦＳＲ（ｓｊ）））を生成するステップと、
前記第１のＰＵＦ出力と前記第２のＰＵＦ出力とを比較するステップであって、前記比較の結果が、前記第１のチャレンジに対応する前記隠蔽出力（ｈｊ）を形成する、前記ステップと、
を含んでいる、
請求項３４に記載の方法。
【請求項４０】
前記一連の隠蔽出力を生成する前記隠蔽出力生成ステップが、
前記一連のチャレンジにおける第１のチャレンジ（ｓｊ）に基づいて内部チャレンジ（１０８）を生成するステップであって、前記内部チャレンジが前記第１のチャレンジよりも長い、前記ステップと、
前記ＰＵＦ回路（１１０）を使用して、前記内部チャレンジに基づいて前記隠蔽出力（Ｈ（ｓｊ））を生成するステップと、
を含んでいる、
請求項３４に記載の方法。
【発明の詳細な説明】
【関連出願】
【０００１】
本出願は、米国仮特許出願第６１／１１６，７００号「Non-Networked RFID-PUF Authentication（非ネットワークＲＦＩＤ−ＰＵＦ認証）」（出願日：２００８年１１月２１日）、米国仮特許出願第６１／１６１，２１８号「Non-Networked RFID Authentication（非ネットワークＲＦＩＤ−ＰＵＦ認証）」（出願日：２００９年３月１８日）、および米国仮特許出願第６１／２４７，１９５号「Non-Networked RFID Authentication（非ネットワークＲＦＩＤ−ＰＵＦ認証）」（出願日：２００９年９月３０日）の優先権を主張し、これらの文書の内容は参照によって本出願に組み込まれている。
【０００２】
本出願は、米国特許出願公開第２００９／００８３８３３号「Authentication with Physical Unclonable Functions（ＰＵＦ（物理的複製不可能関数）による認証）」（出願日：２００８年９月１９日）に関連しており、この特許出願は、米国仮特許出願第６０／９７３，５０５号「Authentication Systems Involving Physically Unclonable Functions（ＰＵＦ（物理的複製不可能関数）を使用する認証システム）」および米国仮特許出願第６１／０１８，６１８号「Secure RFID（セキュアＲＦＩＤ）」の優先権を主張している。さらに、本出願は、米国特許第７，５６４，３４５号「Volatile Device Keys and Applications Thereof（不揮発性デバイス鍵およびその応用）」（発行日：２００９年７月２１日、出願日：２００５年１１月１４日）に関連しており、この特許出願は、米国仮特許出願第６０／６２７，６０５号（出願日：２００４年１１月１２日）、米国仮特許出願第６０／６２９，９５３号（出願日：２００４年１１月２２日）、および米国仮特許出願第６０／６４７，５７５号（出願日：２００５年１月２７日）の優先権を主張している。これらの出願の内容は参照によって本出願に組み込まれている。
【技術分野】
【０００３】
本発明は、非ネットワークＲＦＩＤ認証に関する。
【背景技術】
【０００４】
長い距離にわたって複数の場所を移動し、複数の異なる人または組織（会社または個人）の管理下に置かれる製品は、そのサプライチェーンの数多くのポイントにおいて不正が行われる可能性がある。高価な製品（例えば贅沢品、スポーツ関連製品、薬剤）の箱・容器には、サプライチェーンのさまざまなポイントにおいてアクセスすることができ、正常なサプライチェーン活動に最小限の混乱を生じさせるだけで、偽造品や不良な（開封されたりキズのある）製品にすり替えられることがある。
【０００５】
最近、高価な製品の製造業者は、製品がサプライチェーンを移動中に製品を追跡して安全性を確保する目的で、無線周波数認識装置（ＲＦＩＤ）技術を採用している。ＲＦＩＤタグは、一般には、「シリコンチップアンテナ」ユニットが組み込まれた粘着性ラベルの形をとる。これらのラベルは、個々の製品に粘着させる（または貼り付ける）ことができ、または複数の製品を保持する容器をラベルを使用して密封することができる。各ＲＦＩＤタグは、ＲＦＩＤトランシーバからの無線周波数信号を受信して応答するように動作する。タグの電子メモリには、離れた位置から読み取りまたは書き込みを行うことができるため、製品または容器の所在を追跡するのに、それらとの直接的な見通し線は必要ない。製品は、製造業者から複数の仲介者（例えば流通業者および小売業者）を経て最終目的地に到着するまで追跡され、タグまたは製品が指定の経路から何らかの形ではずれた場合、タグリーダに知らされる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】米国特許出願公開第２００６／０２２１６８６号「Integrated Circuit That Uses A Dynamic Characteristic of the Circuit（回路の動的特性を利用する集積回路）」（出願日：２００６年６月１日）
【特許文献２】米国特許出願公開第２００３／０２０４７４３号明細書
【特許文献３】米国特許第７，５６４，３４５号「Volatile Device Keys and Applications Thereof（揮発性のデバイス鍵およびその応用）」（発行日：２００９年７月２１日）
【発明の概要】
【課題を解決するための手段】
【０００７】
一般的な態様においては、集積回路は、一連のチャレンジを生成するように構成されているシーケンス生成器と、一連の隠蔽出力を生成するように構成されている隠蔽出力生成器であって、隠蔽出力それぞれが一連のチャレンジにおける対応するチャレンジの関数である、隠蔽出力生成器と、複数の応答部分を含んでいる応答シーケンスを生成するように構成されているビット削減回路であって、応答部分それぞれが、対応する複数の隠蔽出力の関数である、ビット削減回路と、を備えている。
【０００８】
実施形態は、以下の１つまたは複数の要素を含んでいることができる。本集積回路は、一連の隠蔽出力、または一連の隠蔽出力に基づいて導かれるパラメータ、のうちの少なくとも一方に対応する暗号化されたデータ、を格納するように構成されている不揮発性メモリ、を含んでいる。
【０００９】
シーケンス生成器は、集積回路に入力される第１のシードに基づいて一連のチャレンジを生成するように構成されている。シーケンス生成器は、さらに、集積回路によって生成される第２のシードに基づいて一連のチャレンジを生成するように構成されている。シーケンス生成器は、一連の生成器値を生成するように構成されている第１の生成器と、生成器値それぞれのビットのサブセットを選択するように構成されているインデックスレジスタであって、サブセットそれぞれが一連のチャレンジにおけるチャレンジを形成する、インデックスレジスタと、を含んでいる。第１の生成器は、線形フィードバックシフトレジスタを含んでいる。
【００１０】
応答シーケンスにおける応答部分それぞれは、対応する複数の隠蔽出力の非線形関数である。応答シーケンスにおける応答部分それぞれは、対応する複数の隠蔽出力における、値１を有するビットの数に基づいて求められる。ビット削減回路は、応答シーケンスにおける応答部分それぞれについて、対応する複数の隠蔽出力の第１の部分における、値１を有するビットの第１の数と、対応する複数の隠蔽出力の第２の部分における、値１を有するビットの第２の数とを数えるように構成されている計数回路と、ビットの第１の数とビットの第２の数とを比較するように構成されている比較回路と、を含んでいる。比較の結果は、応答シーケンスにおける対応する応答部分を形成する。
【００１１】
隠蔽出力生成器は、ＰＵＦ（物理的複製不可能関数）回路を含んでいる。このＰＵＦ回路は、遅延ベースのＰＵＦ回路を備えている。隠蔽出力それぞれは、隠蔽出力生成器の特性の関数であり、この特性は、複数の類似する集積回路の間で、製造特性（fabrication characteristics）に起因して異なる。
【００１２】
隠蔽出力生成器は、さらに展開ロジック（involution logic）を備えており、展開ロジックは、各チャレンジに複数の置換関数を適用して対応する複数の内部チャレンジを生成するように構成されている。隠蔽出力生成器は、一連のチャレンジにおけるチャレンジそれぞれに対応する一連の隠蔽出力のサブセットを生成するように構成されており、一連の隠蔽出力のサブセットにおける隠蔽出力それぞれが、内部チャレンジの１つをＰＵＦ回路に適用することによって生成される。集積回路は、さらに、一連の隠蔽出力のサブセットにおける隠蔽出力を比較するように構成されている比較回路を含んでいる。
【００１３】
隠蔽出力生成器は、それぞれが一連のチャレンジにおける第１のチャレンジに基づいてＰＵＦ出力を生成するように構成されている第１のＰＵＦ回路および第２のＰＵＦ回路と、第１のＰＵＦ回路によって生成されるＰＵＦ出力と、第２のＰＵＦ回路によって生成されるＰＵＦ出力とを比較するように構成されている比較回路と、を含んでおり、比較の結果が第１のチャレンジに対応する隠蔽出力を形成する。
【００１４】
ＰＵＦ回路は、一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力を生成し、一連のチャレンジにおける第２のチャレンジに基づいて第２のＰＵＦ出力を生成するように、構成されている。隠蔽出力生成器は、第１のＰＵＦ出力と第２のＰＵＦ出力とを比較するように構成されている比較回路を含んでおり、比較の結果が第１のチャレンジに対応する隠蔽出力を形成する。
【００１５】
隠蔽出力生成器は、一連のチャレンジにおける第１のチャレンジに基づいて内部チャレンジを生成するように構成されているビット拡張回路を含んでおり、内部チャレンジは第１のチャレンジよりも長い。ＰＵＦ回路は、内部チャレンジに基づいてＰＵＦ出力を生成するように構成されている。集積回路は、各ＰＵＦ出力を対応する極性ビットと比較するように構成されている比較回路であって、各比較の結果が隠蔽出力を形成する、比較回路、を含んでいる。
【００１６】
集積回路はアクセス制御回路を含んでおり、このアクセス制御回路は、集積回路に入力される値を受け取り、受け取った値に基づいて、一連の隠蔽出力を集積回路から出力できるようにするように構成されている。このアクセス制御回路は、受け取った値に一方向性関数を適用するように構成されている一方向性回路と、一方向性関数の結果を、集積回路に格納されている、デバイスに固有な値と比較するように構成されている比較回路と、比較の結果を受け取り、受け取った結果に基づいて、一連の隠蔽出力を集積回路から出力できるようにするように構成されているイネーブラ回路と、を含んでいる。一方向性回路の少なくとも一部分は、シーケンス生成器の回路の一部を形成している。
【００１７】
別の一般的な態様においては、認証局（authentication station）を使用して集積回路を認証する方法は、集積回路において、以下のステップ、すなわち、一連のチャレンジを生成するステップと、一連の隠蔽出力を生成するステップであって、隠蔽出力それぞれが、一連のチャレンジにおける対応するチャレンジの関数である、ステップと、複数の応答部分を含んでいる応答シーケンスを生成するステップであって、応答部分それぞれが、対応する複数の隠蔽出力の関数である、ステップと、を実行する手順、を含んでいる。
【００１８】
実施形態は、以下の１つまたは複数のステップを含んでいることができる。本方法は、認証局に応答シーケンスを提供するステップを含んでいる。本方法は、認証局において、以下のステップ、すなわち、集積回路から一連の隠蔽出力を受信するステップと、集積回路から応答シーケンスを受信するステップと、一連の隠蔽出力を使用して、シミュレートされた応答シーケンスを求めるステップと、受信された応答シーケンスが、シミュレートされた応答シーケンスに実質的に等しいかを判定するステップと、を実行する手順、を含んでいる。
【００１９】
本方法は、集積回路を登録するステップを含んでいる。集積回路を登録するステップは、一連の隠蔽出力、または一連の隠蔽出力に基づいて導かれるパラメータ、のうちの少なくとも一方を、認証局に提供するステップと、一連の隠蔽出力、または一連の隠蔽出力に基づいて導かれるパラメータ、に対応する暗号化されたデータを、認証局から受信するステップと、暗号化されたデータを集積回路上の不揮発性メモリに格納するステップと、を含んでいる。一連の隠蔽出力に基づいて導かれるパラメータは、一連の隠蔽出力のパラメータ化された形式を備えている。一連の隠蔽出力は、認証局から受信されるパスワードに基づいて認証局に提供される。集積回路を登録するステップは、認証局からパスワードを受信するステップと、パスワードに対して一方向性関数を実行するステップと、一方向性関数の結果を、集積回路に格納されている値と比較するステップと、比較の結果に基づいて、一連の隠蔽出力を認証局に提供するステップと、を含んでいる。
【００２０】
一連のチャレンジを生成するステップは、認証局によって生成される第１のシードに基づいて一連のチャレンジを生成するステップを含んでいる。一連のチャレンジを生成するステップは、集積回路によって生成される第２のシードに基づいて一連のチャレンジを生成するステップを含んでいる。一連のチャレンジを生成するステップは、一連の生成器値を生成するステップと、生成器値それぞれのビットのサブセットを選択するステップであって、選択されるサブセットそれぞれが一連のチャレンジにおけるチャレンジを形成する、ステップと、を含んでいる。
【００２１】
応答シーケンスを生成するステップは、応答シーケンスにおける応答部分それぞれについて、対応する複数の隠蔽出力に対して非線形関数を適用するステップを含んでいる。一連の隠蔽出力を生成するステップは、物理的複製不可能関数（ＰＵＦ）回路を使用して一連の隠蔽出力を生成するステップを含んでいる。ＰＵＦ回路の使用は、遅延ベースのＰＵＦ回路の使用を含んでいる。
【００２２】
一連の隠蔽出力を生成するステップは、一連のチャレンジにおけるチャレンジそれぞれに対応する、一連の隠蔽出力のサブセットを生成するステップを含んでいる。一連の隠蔽出力を生成するステップは、第１のチャレンジに複数の置換関数を適用して、対応する複数の内部チャレンジを生成するステップと、内部チャレンジそれぞれをＰＵＦ回路に適用して、第１のチャレンジに対応する一連の隠蔽出力のサブセット、における対応する隠蔽出力を生成するステップと、第１のチャレンジに対応する一連の隠蔽出力のサブセットにおける隠蔽出力を比較するステップと、を含んでいる。
【００２３】
一連の隠蔽ビット出力を生成するステップは、第１のＰＵＦ回路を使用して、一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力を生成するステップと、第２のＰＵＦ回路を使用して、第１のチャレンジに基づいて第２のＰＵＦ出力を生成するステップと、第１のＰＵＦ出力と第２のＰＵＦ出力とを比較するステップであって、比較の結果が、第１のチャレンジに対応する隠蔽出力を形成する、ステップと、を含んでいる。
【００２４】
一連の隠蔽出力を生成するステップは、一連のチャレンジにおける第１のチャレンジに基づいて第１のＰＵＦ出力を生成するステップと、一連のチャレンジにおける第２のチャレンジに基づいて第２のＰＵＦ出力を生成するステップと、第１のＰＵＦ出力と第２のＰＵＦ出力とを比較するステップであって、比較の結果が、第１のチャレンジに対応する隠蔽出力を形成する、ステップと、を含んでいる。
【００２５】
一連の隠蔽出力を生成するステップは、一連のチャレンジにおける第１のチャレンジに基づいて内部チャレンジを生成するステップであって、内部チャレンジが第１のチャレンジよりも長い、ステップと、ＰＵＦ回路を使用して、内部チャレンジに基づいて隠蔽出力を生成するステップと、を含んでいる。
【００２６】
さらなる利点として、特に、本文書に記載されている装置および方法は、製品のサプライチェーンの整合性を保持する目的で品目レベルの認証方法に適用することができる。本文書に記載したＲＦＩＤタグを使用することによって、タグの「複製」が防止される、または少なくとも、計算負荷が極めて大きく複製が実質的に阻止される。
【００２７】
本文書に記載したタイプのＲＦＩＤタグは、非ネットワーク環境または制限されたネットワーク環境（例えば倉庫や発送施設）、あるいはネットワーク環境（ＰＵＦデータベースが個々の各タグ内ではなくネットワーク上の中央のサーバに格納されている）において、認証することができる。本文書に記載した認証方式は、従来の暗号化技術よりも低いコストで信頼性の高い認証セキュリティを提供する。
【図面の簡単な説明】
【００２８】
【図１】改良されたＰＵＦベースの（ｅＰＵＦ）ＲＦＩＤタグのブロック図である。
【図２】ｅＰＵＦ  ＲＦＩＤタグの第２の実施形態のブロック図である。
【図３】隠蔽出力生成器のブロック図である。
【図４】隠蔽出力生成器の別の実施形態のブロック図である。
【図５】プロビジョニングプロセスの流れ図である。
【図６】インデックス生成プロセスの流れ図である。
【図７】応答生成プロセスの流れ図である。
【図８】シフトレジスタのブロック図である。
【図９】ＲＦＩＤリーダのブロック図である。
【発明を実施するための形態】
【００２９】
一般的に、電子回路における物理的複製不可能関数（ＰＵＦ）は、例えば、共通の設計（すなわち共通のマスク）に従って製造される複数の異なるチップがある程度異なる特性を有する原因となる製造ばらつき（fabrication variations）に基づいて、集積回路（「チップ」）を互いに区別する方法を提供する。ＰＵＦを使用して１つのチップを他のチップと区別する能力は、集積回路を認証するための有用な方法となりうる。以下に説明するいくつかの方法は、検知デバイス（proximity device）（例えば無線周波数認識（ＲＦＩＤ）タグ）における使用に適している特定のＰＵＦの実施形態に関連する。
【００３０】
いくつかの例においては、ＲＦＩＤタグの製造業者は、ＲＦＩＤタグをロット単位で製造する。ロットのＲＦＩＤタグ（本明細書では改良されたＰＵＦベースのＲＦＩＤタグ、または簡単に「ｅＰＵＦタグ」と称する）それぞれは、隠蔽出力生成関数およびパブリックな（public）ビット削減関数を備えて実施されており、複数のメモリ要素（いくつかは読み取り専用であり、他は書き込み可能または読み取り／書き込み可能である）を含んでいる。
【００３１】
図１を参照し、例示的なｅＰＵＦタグ１００は、ＲＦＩＤ通信インタフェース１５０とセキュリティ回路１５２とを含んでいる。ｅＰＵＦタグ１００の第１の読み取り専用メモリ要素であるタグ識別子メモリ１０２は、一意のタグ識別子（例えば、１２８ビット長の電子製品コード（ＥＰＣ））を格納している。タグ識別子の構造は、タグ識別子の符号化方式に応じて、タグ１００が関連付けられているロットを識別するフィールド、発送容器コード、宛先コード、または製品コードを含んでいることができる。これ以外の情報をタグ識別子に含めることもできる。
【００３２】
１  応答の生成
ｅＰＵＦタグ１００上に実施されている隠蔽出力生成関数は、予測不可能な入力−出力特性を有し、この特性は、ｅＰＵＦタグを調べることによって求めることができない、または求めるのに少なくとも多大な労力が要求される。したがって、隠蔽出力生成関数の特性は、攻撃者によって取得され得ないと考えることができる。隠蔽出力生成関数は、隠蔽出力生成器によってｅＰＵＦタグ１００上に実施されており、隠蔽出力生成器は、入力としてｎビットのインデックスｓｊ（例えば９ビットまたは１２ビットのインデックス）を受け取り、隠蔽出力ｈｊを生成する。いくつかの実施形態においては、隠蔽出力ｈｊは１ビットであり、別の実施形態においては、隠蔽出力ｈｊは複数のビットを含んでいる。
【００３３】
図１を参照し、一実施形態においては、隠蔽出力生成器１０４は、ビット拡張ロジック１０６とＰＵＦ回路１１０のカスケードとして実施されている。ビット拡張ロジック１０６は、９ビットのインデックスｓｊを受け取って６４ビットの内部チャレンジ１０８を生成し、ＰＵＦ回路１１０は、内部チャレンジ１０８に応えてＰＵＦ出力Ｈ（ｓｊ）を生成する。ＰＵＦ回路は、例えば、特許文献１に記載されているように、遅延ベースのＰＵＦとして実施することができ、この文書の内容は参照によって本出願に組み込まれている。この例においては、内部チャレンジ１０８によって一連の遅延経路が設定され、隠蔽出力Ｈ（ｓｊ）は、設定された経路の相対的な遅延に基づく。
【００３４】
いくつかの場合においては、ビット拡張ロジック１０６は、ｅＰＵＦタグ１００の第２の読み取り専用メモリ要素（図示していない）を使用して実施されており、この第２の読み取り専用メモリ要素は、９ビットまたは１２ビットのインデックス値と、変換後の６４ビットのチャレンジとの一対一のマッピングを提供するチャレンジテーブルを定義している。いくつかの場合においては、ロットの各ｅＰＵＦタグ１００すべてが、同じチャレンジテーブルを有する。別の場合においては、ロットのｅＰＵＦタグのサブセット（例えば、出荷容器コード、宛先コード、製品コードなどによってグループ分けされる）が、それぞれ異なるチャレンジテーブルを有する。別の場合においては、ビット拡張ロジック１０６は、組合せ回路によって実施されており、この回路は、例えば、インデックスｓｊのビットの対に対してＸＯＲ演算を行うことによってｎ（ｎ−１）／２個のビットを生成し、インデックスのビットの対に対してＸＮＯＲ演算を行うことによって別のｎ（ｎ−１）／２個のビットを生成する。この回路では、与えられたインデックスｓｊに対して、ビット拡張ロジックによって生成されるチャレンジがつねに同じである。
【００３５】
ＰＵＦ出力Ｈ（ｓｊ）それぞれは、反転回路１４２によって、インデックスｓｊに対応する極性ビットｔｊ（後述する）の値に従って（すなわち（ｔｊ値との）ＸＯＲ演算によって）、選択的に反転される。ＸＯＲ関数からの出力のシーケンス（すなわち、ｈｊ＝ｔｊ  ＸＯＲ  Ｈ（ｓｊ））は、ｅＰＵＦタグ１００の外側には暴露されない隠蔽出力シーケンス１３０を形成する。隠蔽出力シーケンス１３０は、パブリックなビット削減器１２６（後から詳しく説明する）によって実施されるパブリックなビット削減関数Ｒ（）を使用して、より短い応答シーケンスＲ’１２８に減じられる。応答シーケンスＲ’１２８の各応答部分ｒ（例えば各ビットまたは各ビットグループ）は、隠蔽出力シーケンス１３０のサブシーケンスにビット削減関数を適用することによって求められる。応答シーケンスＲ’は、認証段階時にｅＰＵＦタグ１００からＲＦＩＤインタフェース１５０を介して出力される。
【００３６】
いくつかの代替実施形態においては、隠蔽出力生成器はビット拡張ロジックを含んでおらず、インデックスｓｊがチャレンジとしてＰＵＦ回路に直接提供される。ビット拡張ロジックが存在しない場合、ＰＵＦ回路の設計によっては、攻撃者がＰＵＦ回路の挙動を比較的容易にモデル化することができ、したがって、ｅＰＵＦタグのセキュリティが損なわれる。このようなモデル化による攻撃を回避するため、ＰＵＦ回路の出力は、別のチャレンジに基づく同じＰＵＦ回路の別の１つまたは複数の出力を使用して、または別のＰＵＦ回路の出力を使用して、選択的に反転（すなわちＸＯＲ演算）される。以下では、いくつかのこのような実施形態について説明する。
【００３７】
図３を参照し、隠蔽出力生成器３０４は、第１のＰＵＦ回路３１０ａと第２のＰＵＦ回路３１０ｂとを含んでいる。ＰＵＦ回路３１０ａ，３１０ｂそれぞれは、チャレンジｓｊを受け取って、ＰＵＦ出力Ｈ１（ｓｊ）およびＨ２（ｓｊ）を生成する。ＰＵＦ出力Ｈ１（ｓｊ）およびＨ２（ｓｊ）は、ＸＯＲ回路１４２によってＸＯＲ演算される。結果は、隠蔽出力シーケンス３３０のｊ番目の成分（すなわちｈｊ＝Ｈ１（ｓｊ）  ＸＯＲ  Ｈ２（ｓｊ））を形成し、この成分に対して、上述したようにパブリックなビット削減器１２６が適用される。いくつかの実施形態においては、隠蔽出力生成器３０４は、３個以上のＰＵＦ回路を含んでおり、ＰＵＦ回路それぞれがチャレンジｓｊを受け取ってＰＵＦ出力Ｈｉ（ｓｊ）を戻す。ｎ個のＰＵＦ回路からの結果としてのＰＵＦ出力に対して、ｎ個の要素によるＸＯＲ演算が行われ（n-way XORed）、隠蔽出力シーケンスの対応する成分ｈｊが生成される。例えば、４個のＰＵＦ回路を有する隠蔽出力生成器の場合、結果としての４個の出力に対して４要素ＸＯＲ演算を行う。８個のＰＵＦ回路を有する隠蔽出力生成器の場合、結果としての８個の出力に対して８要素ＸＯＲ演算を行う。ＰＵＦ回路の数が多いと、攻撃者が隠蔽出力生成器３０４の挙動をモデル化するのが難しくなり、したがってｅＰＵＦタグのセキュリティが向上する。しかしながら、多数のＰＵＦ回路は、セキュリティ回路１５２のレイアウト内の大きな空間を占有する。
【００３８】
図４を参照し、隠蔽出力生成器４０４の別の実施形態は、１個のＰＵＦ回路４１０を使用して実施されている。ＰＵＦ回路４１０は、第１のチャレンジ入力ｓｊを受け取り、それに応えて第１の出力Ｈ１（ｓｊ）を生成する。次いで、ＰＵＦ回路４１０は、第２のチャレンジ入力ＬＦＳＲ（ｓｊ）を受け取り、第２のＰＵＦ出力Ｈ１（ＬＦＳＲ（ｓｊ））を生成する。第２のチャレンジは、第１のチャレンジｓｊに対して線形フィードバックシフトレジスタ（ＬＦＳＲ）（ＬＦＳＲの実施については後の説明を参照）を適用することによって、ｅＰＵＦタグの中で生成される。一般には、第１のチャレンジｓｊはＬＦＳＲへのシード値の役割を果たし、第２のチャレンジＬＦＳＲ（ｓｊ）は、最初の状態ｓｊから１クロック後のＬＦＳＲの出力状態を表す。２個のＰＵＦ出力Ｈ１（ｓｊ）およびＨ１（ＬＦＳＲ（ｓｊ））と、対応する極性ビットｔｊとに対して、ＸＯＲ回路１４２によって３要素ＸＯＲ演算を行う。結果は、隠蔽出力シーケンス４３０の１つの成分（すなわち、ｈｊ＝ｔｊ  ＸＯＲ  Ｈ１（ｓｊ）  ＸＯＲ  Ｈ１（ＬＦＳＲ（ｓｊ）））を形成し、この成分に対して、上述したようにパブリックなビット削減器１２６が適用される。
【００３９】
隠蔽出力生成器４０４を採用するｅＰＵＦタグは、２つのＰＵＦ出力に対して動作するＸＯＲを「取り除く」ことができる連鎖攻撃（chaining attack）を受けることがある。タグの攻撃者は、ＰＵＦ回路４１０に送られる値Ｃを制御することができる。ＬＦＳＲ（Ｃ）はｅＰＵＦタグ上の回路によって求められるが、攻撃者は、ＬＦＳＲ（Ｃ）＝Ｄであることを知る。したがって、攻撃者はＤを適用して、Ｈ１（Ｄ）  ＸＯＲ  Ｈ１（ＬＦＳＲ（Ｄ））を得ることができる。ＬＦＳＲ（Ｄ）＝Ｅであれば、攻撃者はさらにＨ１（Ｅ）  ＸＯＲ  Ｈ１（ＬＦＳＲ（Ｅ））を得ることができ、以下同様である。したがって、Ｃを正しく推測すれば、隠蔽出力生成器４０４によって実行されるＸＯＲ演算の結果を知ることにより、攻撃者は、他のＰＵＦ出力の値（例えば、Ｈ１（Ｄ）、Ｈ１（Ｅ）など）を求めることができる。このような連鎖攻撃の脅威を回避するため、ｅＰＵＦタグ２００の代替実施形態について、後から図２を参照しながら説明する。
【００４０】
２  プロビジョニング
登録局（ｅＰＵＦタグの信頼性、もしくはタグが貼り付けられている製品の信頼性、またはその両方を確立する最初の当事者は、ｅＰＵＦタグ１００を配備する前に、ｅＰＵＦタグのプロビジョニングを行う（すなわち登録する）。プロビジョニング時、登録局は、後からタグの認証に使用される情報をセキュアに取得して暗号化する。いくつかの実施形態においては、登録局は、タグの製造業者と同一である。
【００４１】
図１および図５を参照し、特定のタグのプロビジョニング時、最初の当事者は、そのタグ上の隠蔽出力生成器１０４の入力−出力特性を求める。権限のない他の当事者がこの特性を同様に求めることを防止するため、ｅＰＵＦタグ１００のプロビジョニングを行う登録局は、ｅＰＵＦタグ上のアクセス回路１３８に、正しいパスワードｘ  １１２を例えばＲＦＩＤインタフェース１５０を通じて適用しなければならない（ステップ５００）。パスワード１１２は、例えば、２５６ビット値または５１２ビット値である。パスワード１１２によって、ｅＰＵＦタグ１００のシリコンに組み込まれている一方向性関数１１４などの状態機械が、状態Ｆ（ｘ）になる（ステップ５０２）。アクセス回路１３８は、値Ｆ（Ｙ）を格納するレジスタ１１６を含んでおり、値Ｆ（Ｙ）は、タグ１００の製造マスクに従って以前に決定されているか、またはより早いプロビジョニング段階において設定される。計算されたＦ（ｘ）の値がＦ（Ｙ）の値と同じである場合（ステップ５０４）、問い合わせ側は、ｅＰＵＦタグ１００のプロビジョニングが許可される正当なエンティティとして確立される。この場合、アクセスイネーブラ１４０によってロジック信号がイネーブルされ、問い合わせ側は、隠蔽出力生成器１０４の入力−出力特性Ｄ  １２０にアクセスすることが許可される（ステップ５０８）。Ｆ（ｘ）の値とＦ（Ｙ）の値が一致しない場合、問い合わせ側は、ｅＰＵＦタグのプロビジョニングを許可されない（ステップ５１０）。なお、値Ｙが秘密のままである場合、マスクのコピーはｅＰＵＦタグ１００に対する攻撃として無効である。例えば、たとえ攻撃者がＦ（Ｙ）を発見した場合でも、Ｆ（Ｘ）＝Ｆ（Ｙ）であるようなＸを見つけることは、関数Ｆ（）によって実質的に不可能になっている。
【００４２】
いくつかの実施形態においては、一方向性関数１１４は、有限状態機械（ＦＳＭ）の到達可能性判定問題の困難さを利用することによって、比較的安価な計算（例えば、計算量が少ない、回路レイアウト面積が少ない、または要求される電力が小さい）を実施する。一方向性関数１１４の要件は、いくつかの他の用途において使用される一方向性ハッシュ関数の要件ほど厳しくない。具体的には、一方向性関数１１４は、１つのＦ（Ｙ）が与えられたときにＹを求めることが困難である関数Ｆ（ｘ）を実施する。すなわち、たとえ値Ｆ（Ｙ）が認識されても、アクセス回路１３８のセキュリティは維持される。なお、関数Ｆ（Ｚ）は、Ｚの別の値に対して反転させることは必ずしも困難ではなく、一方向性関数１１４の他の出力Ｆ（Ｚ）を容易に反転させてＺを求めることができる。さらには、ハッシュ関数１１４は、１つの値（Ｙ）に対して、または関数の定義域におけるとりうる値のうち比較的小さい部分に対して演算を行うのみであるため、一方向性関数１１４において関数の定義域内の衝突の回避は要求されない。
【００４３】
図８を参照し、一実施形態においては、一方向性関数１１４にパスワードｘ  １１２が適用される。パスワードｘ  １１２の各ビットは、ＦＳＭレジスタ８０２（例えば１２８ビットまたは２５６ビットのレジスタ）の状態を遷移させるために使用される。ＦＳＭレジスタ８０２は、値Ａ［ｉ］の２ビットの対に対して動作する。ＦＳＭレジスタ８０２からの出力は組合せ論理モジュール８０４に送られ、このモジュール８０４は、選択されたＡ［ｋ］に対する非線形論理演算（例えば、Ａ［ｋ］のビットのビット単位ＸＯＲ、またはＡ［ｋ］の２個のビットの交換）を実行する。組合せ論理モジュール８０４の出力はＦＳＭレジスタ８０２の中にシフトされ、ＦＳＭレジスタ８０２は、最終的にハッシュ関数１１４の結果Ｆ（ｘ）を出力する。いくつかの実施形態においては、ｅＰＵＦタグ１００上のスペースを節約する目的で、一方向性関数１１４は、チャレンジ生成器１３４の線形フィードバックシフトレジスタ（ＬＦＳＲ）と回路を共有する。例えば、大きな回路面積を占めるＦＳＭレジスタ８０２を使用して、チャレンジ生成器１３４におけるＬＦＳＲも実施する。なお、上述した一方向性関数の実施は、暗号化技術を使用するよりも（例えば、デバイスに格納されている公開鍵に対応する秘密鍵を提供するように当事者に要求するよりも）、大幅に高い効果を有し得る。
【００４４】
プロビジョニングプロセスは登録段階を含んでおり、登録段階では、登録局が（例えばＲＦＩＤインタフェース１５０を通じて）刺激（stimuli）１１８をｅＰＵＦタグ１００の入力に適用し、これによりインデックス入力の包括的なセットが隠蔽出力生成器１０４に提供される（ステップ５１２）。隠蔽出力生成器によって、インデックス入力のセットに対応するＰＵＦ出力Ｈ（ｓｊ）が生成され、プロビジョニングを行う登録局にデータＤとして提供される（ステップ５１４）。入力の「包括的な」セットとは、任意の可能な入力に対する隠蔽出力生成器１０４の出力を登録局が予測できるように十分なデータＤが登録局に提供されることである。例えば、隠蔽出力生成器１０４のビット拡張ロジック１０６がチャレンジテーブルに基づいている実施形態においては、登録段階においてチャレンジテーブルにおけるチャレンジすべてがＰＵＦ回路１１０に提供される。チャレンジが提供される順序は重要ではない。いくつかの例においては、隠蔽出力生成器１０４の入力−出力特性は、インデックス入力０〜２ｎ−１に対するＰＵＦ出力に等しい値を有するベクトル（すなわち、Ｄ＝（Ｈ（０），．．．，Ｈ（２ｎ−１）））として提供される。例えば、隠蔽出力生成器が各チャレンジとして９ビットの入力を受け取って１ビットのＰＵＦ出力を生成する場合、Ｄ  １２０は、５１２ビットのベクトル（Ｄ＝（Ｈ（０），．．．，Ｈ（２９−１）））として表される。別の実施形態においては、Ｄ  １２０は、１２８ビットのＰＵＦ出力を含んでいる。
【００４５】
なお、一方向性関数Ｆ（Ｘ）を使用することで、反転不能にロックする技術（例えば、物理リンクの切断（例：ヒューズ））を必要とすることなく、権限のない当事者にＰＵＦ特性が暴露されることが防止される。さらには、レジスタ値を物理的に（例えば、光信号、磁気信号、または無線周波数信号によって）消去する攻撃が、一方向性関数方式に対しては無効である点において、一方向性関数方式は、ライトワンスレジスタ（write-once register）（ＰＵＦ特性が読み出された後にセットされる）を使用するよりも安全である。さらには、パスワード（Ｘ）を知っている当事者は、ＰＵＦ特性を読み取る権限を別の当事者に委ねることができ、権限を与えられた当事者は、同じデバイスに対して登録機能を複数回実行することができる。
【００４６】
登録局は、ｅＰＵＦタグ１００からデータＤ  １２０を受信し、従来のさまざまな暗号化技術のいずれかを使用して、データ  １２０から、暗号化されたデータＥ（Ｄ）１２２を生成する（ステップ５１６）。データＤ  １２０を暗号化するために使用する暗号化鍵は、タグ識別子メモリ１０２に格納されている、ｅＰＵＦタグ１００に関連付けられている情報を使用して、登録局が選択的に識別する。次いで、登録局は、暗号化されたデータＥ（Ｄ）１２２をｅＰＵＦタグ１００に送信し、このデータはＰＵＦデータベース１２４に格納される（ステップ５１８）。ＰＵＦデータベース１２４は、一般的に、５１２ビットまたは１０２４ビットの暗号化されたデータを格納することができる。Ｅ（Ｄ）１２２がＰＵＦデータベース１２４に格納された時点で、登録段階が終了する。
【００４７】
隠蔽出力生成器が２個以上のＰＵＦ回路を含んでいる実施形態においては、上記のプロビジョニング手順がＰＵＦ回路それぞれに適用される。例えば、２個のＰＵＦ回路の場合、第１のＰＵＦ回路からの十分なデータＤ１と、第２のＰＵＦ回路からの十分なデータＤ２とが登録局に提供されるように、入力の包括的なセットがＰＵＦ回路それぞれに適用される。これにより、登録局は、任意の可能な入力に対するＰＵＦ出力を予測することができる。登録局は、データＤ１およびＤ２を上述したように暗号化してＰＵＦデータベース１２４に格納する。
【００４８】
いくつかの実施形態においては、プロビジョニング手順は一度のみ有効である。正しいパスワード１１２を適用することによってセキュリティ回路がひとたび「ロック解除」されると、任意の数のチャレンジを入力することができる。ｅＰＵＦタグからデータを抽出する前にチャレンジをｅＰＵＦタグに入力するステップは省くことができるが、その場合、データ抽出手順が一定のシードに限定される。いくつかの実施形態においては、ｅＰＵＦタグのプロビジョニング機能を外部から無効にすることができる。
【００４９】
いくつかの場合においては、プロビジョニングを行う登録局は、刺激１１８の提供もしくはデータＤ  １２０の受信またはその両方を、ＲＦＩＤインタフェース１５０を介して行う。別の場合においては、プロビジョニングをより迅速に行うことができるように、プロビジョニングを行う登録局は、ＲＦＩＤインタフェース１５０を介さずに、代わりに、刺激１１８の提供もしくはデータＤ  １２０の受信を、それぞれ、入力電気パッド１６６および出力電気パッド１６２における直接的な電気接続を介して行う。
【００５０】
ｅＰＵＦタグ１００は、ＲＦＩＤインタフェース１５０を介して電力を受け取る電力モジュール１６８によって給電される。いくつかの例においては、電気パッド入力／出力を使用する場合であっても、プロビジョニング時、ｅＰＵＦは、電気パッドを通じた電力供給ではなくＲＦ信号によって給電される。このようなＲＦ給電は、電力を供給するための追加の回路や電気パッドが要求されないため、好ましい。１回のＲＦ励起で格納されるエネルギは比較的少量であり、プロビジョニング時には比較的多量のデータを読み出す必要があるため、いくつかの実施形態においては、１個のｅＰＵＦをプロビジョニングするとき、ＲＦ励起を複数回繰り返す必要があり、プロビジョニング出力の異なる部分が各励起において提供される。複数回のＲＦ励起の使用は、ｅＰＵＦからのプロビジョニング出力をＲＦ出力を使用して転送する場合に特に有用であり、なぜなら、ＲＦ出力では、一般的に、電気パッドを通じて出力を提供するよりも多くの時間もしくは電力またはその両方が要求されるためである。
【００５１】
３  認証
上述したようにｅＰＵＦタグ１００が登録され、登録局またはその他の信頼される当事者の管理下からタグが出た後、いずれかの時点での認証段階において、ｅＰＵＦタグ１００は認証局（例えば携帯型のＲＦＩＤリーダ）によって認証される。ｅＰＵＦタグ１００は、ＲＦＩＤリーダからの無線周波数信号に対して、自身の識別子（タグ識別子メモリ１０２に格納されている）と、暗号化されたデータＥ（Ｄ）１２２（ＰＵＦデータベース１２４に格納されている）とを、リーダに提供することによって、応答する。ＲＦＩＤリーダは、タグ識別子に含まれている情報を使用して復号化鍵を選択的に識別し、その鍵によってＥ（Ｄ）を復号化する。復号化されたデータＤは、ＲＦＩＤリーダがアクセスできるメモリに、認証段階の終了時まで格納されており、その後、安全に破棄される。このデータＤと、認証時にタグによって生成される応答とを比較することによって、ｅＰＵＦタグが認証される。
【００５２】
３．１  インデックスの生成
図１に示した実施形態を再び参照し、ｅＰＵＦタグ１００の認証では、インデックス値ｓｊのシーケンスに従っての隠蔽出力生成器１０４の反復演算を利用し、上述したように、シーケンスにおけるインデックス値それぞれに対して１個の隠蔽出力ｈｊが生成される。インデックス値は、ｅＰＵＦタグ１００のセキュリティ回路１５２が、ＲＦＩＤリーダから受信される、ランダムに生成された第１のノンスＳと、ｅＰＵＦタグ自身によってランダムに生成される第２のノンスＱとに基づいて、生成する。すなわち、タグおよびリーダのいずれも、単独では、隠蔽出力生成器に適用されるインデックスシーケンスの選択を制約することができない。
【００５３】
図１および図６を参照し、ＲＦＩＤリーダは、データＥ（Ｄ）を復号化してデータＤを得ると、ランダムに生成された６４ビットのノンスＳ  １３２をタグに送る（ステップ６００）。タグ側では、ノンスＳを受信することによってチャレンジ生成器１３４がトリガーされ、チャレンジ生成器１３４は、線形フィードバックシフトレジスタＡ（ＬＦＳＲ＿Ａ）および線形フィードバックシフトレジスタＢ（ＬＦＳＲ＿Ｂ）が関与する複数のアクションを実行する。ＬＦＳＲ＿Ａは、デュアル多項式ＬＦＳＲ（すなわち、ＬＦＳＲ＿Ａ０およびＬＦＳＲ＿Ａ１）であり、特徴的な２つの定義域内の、次数の異なる２つの６４項原始多項式に対応するように実施されている。
【００５４】
共有されるＬＦＳＲ＿Ａ（乱数生成モードで動作する）は、最初に、６４ビットの非決定論的乱数Ｑ  １３３を生成する（ステップ６０２）。一実施形態においては、Ｑは以下のように決定される。
ａ．ＬＦＳＲ＿Ａに初期状態０（６４ビット）をロードする。
ｂ．ＬＦＳＲ＿Ａを、乱数生成モードで動作するように設定する。
ｃ．乱数生成段階の最初のクランク（crank）時、ＬＦＳＲ＿Ａが自身の６４ビットの状態をＰＵＦ回路１１０に直接送る。
ｄ．ＰＵＦ回路１１０の出力が多項式選択器信号として機能し、ＬＦＳＲ＿Ａが５１２回繰り返しクランクされる（cranked）ときに、ＬＦＳＲ＿Ａの状態を、ＬＦＳＲ＿Ａ０によって表される値とＬＦＳＲ＿Ａ１によって表される値の間で切り替える。
ｅ．５１２回目のクランクの後のＬＦＳＲ＿Ａの状態が、６４ビットの非決定論的乱数Ｑを定義する。
【００５５】
ＳおよびＱがＬＦＳＲ＿ＡおよびＬＦＳＲ＿ＢにＱにロードされた状態で、ＬＦＳＲ＿ＡおよびＬＦＳＲ＿Ｂが、１２８ビット循環シフトレジスタとして６４回回転する。６４回回転した後のＬＦＳＲ＿Ｂの状態は、タグによって生成される６４ビットのＱを定義し、タグのメモリに格納される。ＬＦＳＲ＿ＡおよびＬＦＳＲ＿Ｂは、１２８ビットのシフトレジスタとしてさらに３２回回転し、したがって、Ｓの半分およびＱの半分が各ＬＦＳＲにロードされる。例えば、ＬＦＳＲ＿ＡにはＳ［６１：３１］，Ｑ［６３：３２］がロードされ、ＬＦＳＲ＿ＢにはＳ［３０：０］，Ｑ［３１：０］がロードされる。
【００５６】
Ｑの値がＲＦＩＤリーダに返され（ステップ６０４）、したがって、リーダおよびｅＰＵＦタグ１００の両方が、ＬＦＳＲ＿ＡおよびＳ、ＬＦＳＲ＿Ｂの初期状態を認識している。リーダは、シフトレジスタの生成器多項式を認識しているならば、シフトレジスタのこれらの初期状態を使用することで、ｅＰＵＦタグ１００上のＬＦＳＲによって生成される状態のシーケンスと同じ状態のシーケンスを生成することができる。
【００５７】
ｅＰＵＦタグ１００は、２個のＬＦＳＲに、ＳおよびＱに基づくそれぞれの初期状態がロードされた状態で、隠蔽出力生成器１０４に適用されるチャレンジｓｊのシーケンスを生成する（ステップ６０６）。具体的には、ＬＦＳＲの各クロックにおいて１６ビットインデックスレジスタ値が生成される。インデックスレジスタ１３６は、隠蔽出力生成器１０４に入力ｓｊとして提供される外部チャレンジとして、各インデックスレジスタ値のｎビット（例えば９ビット）を指定する。さらに、インデックスレジスタ１３６は、隠蔽出力生成器１０４の出力Ｈ（ｓｊ）と組み合わされる極性ビットｔｊとして、インデックスレジスタ値の１ビット（例えば最下位ビット）を指定し、これらの演算については後から詳しく説明する。
【００５８】
いくつかの場合においては、攻撃者は、シーケンスｓ１，ｓ２，．．．，ｓｍ，ｓｍ＋１，．．．，ｓ２ｍ，．．．を生成するように構成されたＬＦＳＲを備えたｅＰＵＦタグを攻撃することができる。すなわち、ＬＦＳＲの状態ｘｉにおいて（ｓｉ＝ｓ（ｘｉ））、ＬＦＳＲは、ｓｉ＋１＝ＬＦＳＲ（ｓｉ）であるように構成されている。このような場合、ＬＦＳＲによって生成されるシーケンスのサブセット（例：ｓ１，．．．，ｓｍ）が、隠蔽出力生成器に入力されるｎビットのインデックスｓｊとして使用される。この場合、隠蔽出力生成器によって、隠蔽出力Ｈ（ｓ１，．．．，ｓｍ），Ｈ（ｓｍ＋１，．．．，ｓ２ｍ），．．．が生成される。攻撃時、攻撃者は、シード値Ｓ’およびＱ’を適用し、ＬＦＳＲに出力シーケンスｓ１’，ｓ２’，．．．（ｓ１’＝ｓ２、ｓ２’＝ｓ３，．．．）を生成させる。次いで、攻撃者は、このシフトされたチャレンジのシーケンスを使用し、隠蔽出力生成器にＰＵＦ出力Ｈ（ｓ２，．．．，ｓｍ＋１），Ｈ（ｓｍ＋２，．．．，ｓ２ｍ＋１），．．．を生成させることによって、隠蔽出力生成器のＨ（）関数を暴露することができる。
【００５９】
このタイプの攻撃を回避するため、例えば、ｘ（ｉ＋１）ｍ＝ＬＦＳＲ＿Ａ（ｘｉｍ）かつｘｊ＋１＝ＬＦＳＲ＿Ｂ（ｘｊｍ）（ｊ＝（ｉ＋１）ｍ，．．．，（ｉ＋１）ｍ＋ｍ−１，．．．）であるように、長さｍのサブシーケンスを生成するようにＬＦＳＲを構成することができる。このように構成すると、攻撃者は、シフトされたシーケンスをＬＦＳＲに生成させることができず、したがって、隠蔽出力生成器のＨ（）関数を暴露することができない。攻撃者は、最大でも、長さｍの１つのサブシーケンスに関連する、隠蔽出力生成器の関数を認識できるにすぎない。
【００６０】
３．２  ビットの削減および応答の生成
隠蔽出力生成器１０４は、ｎビットのチャレンジｓｊのシーケンスを受け取り、各チャレンジに対して、上述したように隠蔽出力ｈｊを生成する。結果としての隠蔽出力シーケンス１３０に対してパブリックなビット削減器１２６が動作し、応答シーケンスＲ’１２８が生成される。この応答シーケンスＲ’は、認証段階時にＲＦＩＤインタフェース１５０を介してｅＰＵＦタグから出力される。上述した隠蔽出力生成器の他の実施形態にも、上記の説明は等しく適用される。
【００６１】
一般的には、Ｎ個の部分からなる応答シーケンスＲ’１２８の応答部分それぞれは、隠蔽出力シーケンス１３０におけるＭ＝４ｍ＋２個の隠蔽出力に基づいている（ｍは正の整数）。したがって、Ｎ個の部分からなる応答Ｒ’を生成するため、隠蔽出力生成器１０４は、Ｎ＊Ｍ個の隠蔽出力ｈｊを生成する。例えば、ｍ＝２、Ｍ＝１０である場合、応答部分それぞれに対する隠蔽出力、すなわち１２８０個の隠蔽出力が生成され、Ｎ＝１２８個の部分からなる応答シーケンスＲ’が求められる。別の例では、隠蔽出力生成器１０４に６４０個のインデックス値ｓｊを適用することによって、６４ビットの応答シーケンスが求められ、この場合、隠蔽出力シーケンス１３０における１０個の連続する隠蔽ビットのシーケンスそれぞれを、ビット削減関数への入力として使用して６４ビットの応答の１ビットを得る。
【００６２】
いくつかの実施形態においては、Ｍ個の隠蔽出力のグループとして、互いに隣接するグループを使用して、各応答部分を生成する。別の実施形態においては、Ｍ個の隠蔽出力のグループとして、互いに隣接しないグループを使用して、各応答部分を生成する。例えば、パブリックなビット削減器１２６は、応答シーケンスの第１の応答部分を生成するために使用される、Ｍ個の隠蔽出力の第１のグループと、第２の応答部分を生成するために使用される、Ｍ個の隠蔽出力の第２のグループとの間に、ランダムなオフセットを導入することができる。
【００６３】
0005319783.tif 000002
【００６４】
パブリックなビット削減関数Ｒ（）は、一般的には、隠蔽出力シーケンスの非線形関数である。非線形とは、本文書においては、定義域において線形である関数を除くことを意味する（例えばｍｏｄｕｌｏ  ２（ＸＯＲ関数など））。例えば、パブリックなビット削減関数は、インデックス関数（例：隠蔽出力Ｈ（ｓｊ）が多値であるときの最も大きいＨｉのインデックス）、投票関数（voting function）、計数関数、または隠蔽出力生成器によって生成される隠蔽出力ｈｊまたはＰＵＦ出力Ｈ（ｓｊ）の別の非線形の組合せ、とすることができる。
【００６５】
例えば、いくつかの実施形態においては、パブリックなビット削減関数Ｒ（）は、多数決ロジック（majority voting logic）を使用して実施される。パブリックなビット削減器１２６における投票ロジックは、２ｍ＋１回の反復ごとに、前に生成された２ｍ＋１個の隠蔽出力に対して多数決ロジックを適用し、２ｍ＋１個の隠蔽出力のうち１の数がｍ個またはそれ以下であるならば０、それ以外の場合には１を生成する。パブリックなビット削減器１２６は、４ｍ＋２回の反復ごとに、多数決ロジックの前の２個の出力をＸＯＲ演算し、応答シーケンスＲ’１２８の１個の応答部分を生成する。したがって、応答部分は、前に生成された４ｍ＋２個の隠蔽出力の値に基づいている。多数決プロセスは、（２ｍ＋２）＊Ｎ回の反復に対して繰り返し実行され、応答部分を順に並べたシーケンスによって定義される、Ｎ個の部分からなる応答Ｒ’が生成される。
【００６６】
別の実施形態においては、パブリックなビット削減関数は、１を数える回路を使用して実施される。この場合、４ｍ＋２個の隠蔽出力のセットそれぞれに対して、応答シーケンスＲ’１２８の１つの応答部分が生成される。ビット削減関数は、４ｍ＋２個の隠蔽出力における「１」の数を求める。１の数がしきい値よりも大きい場合（例えば、２ｍ＋１個より多くの１が存在する場合）、ビット削減関数は１を生成し、そうでない場合には０を生成する。
【００６７】
ｅＰＵＦタグ１００では、ＰＵＦ関数Ｈ（ｓｊ）の秘匿性が維持される。たとえ攻撃者がタプル｛ｒ，（ｓ０，ｓ１，．．．，ｓＭ−１），（ｔ０，ｔ１，．．．，ｔＭ−１）｝を多数発見した場合でも、ビット削減関数Ｒ（）を適切に選択することによって、Ｈ（）の発見が阻止される。隠蔽出力関数に入力される可能なインデックスｓｊは比較的少ないが、インデックスｓｊの長さＭのシーケンスが多数存在する。例えば、５１２個の異なるインデックス値ｓｊが存在し、Ｍ＝１０であるならば、存在し得る異なるシーケンスは５１２１０個である。一般的には、特定のタグに対して特定のインデックスシーケンスが繰り返されることは考えられない。
【００６８】
３．３  認証
認証のたびに、隠蔽出力生成器に適用されるインデックスｓｊのシーケンスとして、ランダムに選択されるシーケンスが利用される。上述したように、リーダによるノンスＳの選択と、ｅＰＵＦタグ自身によるノンスＱの選択によって、タグおよびリーダのいずれも、単独では、認証時に隠蔽出力生成器に適用されるインデックスシーケンスを制約することができない。
【００６９】
ＲＦＩＤリーダは、自身が認識している６４ビットのノンスＳと、タグによって戻される６４ビットのノンスＱとを用いて、物理的な隠蔽出力生成器ではなく、復号化された応答データＤ  １２０を使用して、ｅＰＵＦタグ１００の動作をシミュレートし、予測される応答Ｒを得る。受信された応答Ｒ’（上述したようにｅＰＵＦタグ１００によって生成される）を、予測された応答Ｒと比較し、受信された応答が、Ｄに対応する入力−出力特性を有する隠蔽出力生成器を備えたｅＰＵＦタグによって生成されたかを確認する。Ｒ’とＲが一致する場合、ｅＰＵＦタグ１００は認証される。
【００７０】
より具体的には、図９を参照し、ＲＦＩＤリーダ９００は、ノンスＳ  １３２を生成し、ｅＰＵＦタグからノンスＱ  １３３を受信する。値Ｓおよび値Ｑは、ＬＦＳＲ  ９０４のセットを含んでいるチャレンジ生成器９３４へのシード値として使用される。ＬＦＳＲ  ９０４は、ｅＰＵＦタグ１００上のチャレンジ生成器１３４のＬＦＳＲ（図１を参照）と挙動が同じであるように構成されている。インデックスレジスタ９３６は、チャレンジ生成器９３４の出力を受け取り、外部チャレンジを生成する。ＲＦＩＤリーダ９００は、この外部チャレンジに基づいて、ｅＰＵＦタグによって生成されるものと同じインデックスシーケンスｓ０，．．．，ｓＮＭ−１および同じ極性ビットシーケンスｔ０，．．．，ｔＮＭ−１を生成する。
【００７１】
ＲＦＩＤリーダ９００は、暗号化された応答データＥ（Ｄ）をｅＰＵＦタグから取得し、復号化モジュール９０６においてデータを復号化して応答データＤ  １２０を得る。上述したように、応答データＤ  １２０は、任意の可能な入力に対するｅＰＵＦタグの隠蔽出力生成器の出力をリーダ９００がシミュレートすることができるように、包括的なデータのセットを含んでいる。例えば、Ｄは、インデックス入力０〜２ｎ−１に対するＰＵＦ出力に等しい値それぞれを有するビットベクトル（すなわち、Ｄ＝（Ｈ（０），．．．，Ｈ（２ｎ−１）））として提供することができる。
【００７２】
0005319783.tif 000003
【００７３】
モデルに基づく方法では、リーダは、チャレンジと応答の一連の対（ｓｉ，Ｈ（ｓｉ））をｅＰＵＦから受信する。いくつかの実施形態においては、一連のチャレンジはデバイス上で求められ、例えば、リーダから提供されるシードに基づいてｅＰＵＦ上のＬＦＳＲを使用して生成される。いくつかの実施形態においては、望ましいチャレンジがリーダから提供され、別の実施形態においては、チャレンジは、例えばランダムな選択に基づいて完全にｅＰＵＦ上で生成される。次いで、認証を行うエンティティ（例えばリーダとして実施されている）は、受信したチャレンジ−応答の対に最良に一致するモデルパラメータＤを推定する。さまざまな推定手順を使用することができ、例えば、パラメータの最尤推定法および反復最適化法が挙げられる。
【００７４】
特許文献２（この文書は参照によって本出願に組み込まれている）に記載されているように、ｅＰＵＦ上のＰＵＦが、遅延ラインおよび選択可能なセクションを使用して実施されている実施形態においては、モデルパラメータは、対応するチャレンジビットが０であるか１であるかに応じて、遅延ＰＵＦの各段（stage）の出力の間に導入される相対的な遅延を表す。これらの相対的な遅延パラメータを推定する一方法として、ランダムな量によってパラメータを初期化し、次いで、受信したチャレンジ−応答の一連の対を反復処理し、モデル化された応答が受信した応答に一致するときには相対的な遅延の評価を上げ、モデル化された応答が一致しないときには相対的な遅延の評価を下げる。
【００７５】
認証時、リーダはＥ（Ｄ）を受信し、ｅＰＵＦ上のＰＵＦに内部的に隠蔽して適用されるチャレンジ値に対するＰＵＦ出力を、モデルパラメータを使用して予測する（すなわちデバイス上の隠蔽ＰＵＦの動作をシミュレートする）。なお、生のＰＵＦ出力がｅＰＵＦ上で組み合わされる前にアクセスされない限りは、攻撃者は、ｅＰＵＦから出力される情報からモデルパラメータＤを有効に推定することはできない。
【００７６】
0005319783.tif 000004
【００７７】
ＲとＲ’は正確に一致することが理想であるが、所定のしきい値までのビット誤りについては許容される。応答Ｒ’とＲとが、しきい値より少ないビット誤りを除いて一致する場合、これらは十分に類似しておりｅＰＵＦタグ１００が認証されるものとみなす。Ｒ’がＲに十分に類似していない場合、そのｅＰＵＦタグを拒否することができ、追加のチャレンジを発行する、または別の確認手順を起動することができる。いくつかの実施形態においては、無効な応答（例えば、１２８ビットの応答のうち６４個程度が誤りビット）と有効な応答（例えば、１２８ビットの応答における１２〜１６個程度が誤りビット）の間には明確な違いが存在する。誤検出認証（偽のデバイスを本物と識別する）の確率と検出漏れ認証（有効なデバイスを拒否する）の確率は、認証コード距離のしきい値（authentication code distance threshold）を適切に設定することによってバランスをとることができる。十分な類似性を判定する別の方法（例えば、異なるビット誤りに異なる加重を適用する）も可能である。
【００７８】
ｅＰＵＦタグ１００のセキュリティをさらに強化するため、いくつかの例においては、応答部分または応答シーケンスが生成されるたびにインクリメントされるカウンタを、タグそれぞれが含んでいる。所定の最大数だけ応答部分が生成された後には、それ以上の応答をｅＰＵＦタグから送信することが許可されない。カウンタの上限は、攻撃者が何回も認証を繰り返すことで隠蔽出力関数の近似的な推定を得るだけの十分なデータを提供することが阻止される一方で、適正な回数だけタグを認証できるような十分高い値に設定することができる。
【００７９】
いくつかの場合においては、ＰＵＦデータベース１２４の最後の５１２ビットがカウンタとして使用される。これらの５１２ビットは、プロビジョニング段階において最初に０にセットされる。チップが使用されるたびに、ビットの１つが１にセットされる。５１２ビットすべてが１にセットされた時点で、そのタグはそれ以上応答しない。プロビジョニング時に５１２ビットのうちのいくつかを１にセットすることによって、５１２回未満の使用に制限されるようにｅＰＵＦタグを構成することができる。あるいは、使用カウンタを無視して無制限に使用できるようにタグを構成することもできる。
【００８０】
４  代替実施形態
図２を参照し、代替実施形態においては、ｅＰＵＦタグ２００は、１個のＬＦＳＲを含んだチャレンジ生成器２３４を含んでいる。ＲＦＩＤリーダから受信されるシードＳ  ２３２によって、ＬＦＳＲの初期状態が確立される。ＬＦＳＲの各クロックにおいて１６ビットのインデックスレジスタ値が生成される。インデックスレジスタ２３６は、隠蔽出力生成器２０４に入力ｓｊとして提供される外部チャレンジとして、各インデックスレジスタ値のｎ個のビット（例えば９ビット）を指定する。さらに、インデックスレジスタ２３６は、インデックスレジスタ値の１個のビット（例えば最下位ビット）を極性ビットｔｊとして指定する。
【００８１】
隠蔽出力生成器２０４は展開ロジック２０６を含んでおり、展開ロジック２０６は、ｎビットのインデックスｓｊを受け取って内部チャレンジ２０８（ｓｉ，π１（ｓｉ），π２（ｓｉ），．．．，πＭ−１（ｓｉ））のタプルを生成する。サブシーケンサ２５４は、内部チャレンジ２０８を受け取り、ＰＵＦ回路２１０のセットに入力される内部チャレンジの組合せを選択する。例えば、Ｍ＝８の内部チャレンジのセットが生成され、これらの内部チャレンジ２０８は、ひと続きの４回を単位とする組合せとして２個のＰＵＦ回路２１０それぞれに適用され、２個のＰＵＦ回路２１０は、これに応えて一連の隠蔽出力｛ｈｊ１，ｈｊ２，．．．，ｈｊＭ｝を生成する。一般的には、各インデックスに対して各ＰＵＦが複数回使用され、対応する複数の隠蔽出力が生成される。関数πｍ（ｓ）は、繰り返し適用されると元の値に戻る（πｍ（πｍ（ｓ））＝ｓ）ように選択する。このような関数の例は、ビット位置の対の値を交換する置換である。このようなビット拡張方法では、各ＰＵＦは、内部チャレンジのセット（いずれもインデックスの置換である）を受け取る。この場合の置換の１つの特性として、各インデックスが置換の有限個のセット（すなわち、置換πｍ（）によって生成される置換群）のメンバーであり、そのセットのうちのどのメンバーがビット拡張ロジックへのインデックスとして入力されるかにかかわらず、内部チャレンジのすべてが、その同じセットのメンバーである。別の実施形態においては、関数πｍ（）は、インデックスのビットの置換でなくてもよく、インデックス空間が比較的小さな部分に分割されるような定義であって、１つの部分における任意のインデックスに関数を適用したとき、結果としての値の変形がその部分の中におさまるような定義とすることもできる。
【００８２】
ＸＯＲ回路２４２およびレジスタ２５６を含んでいるビット削減モジュール２５８は、隠蔽出力｛ｈｊ１，ｈｊ２，．．．，ｈｊｍ｝を受け取る。ＸＯＲ回路２４２は、隠蔽ビット生成器２０４に入力されるチャレンジｓｊに対応するｍ個の隠蔽出力および極性ビットｔｊに対して、（ｍ＋１）個の要素によるＸＯＲ演算を行う。レジスタ２５６は、（ｍ＋１）個の要素によるＸＯＲ演算を可能にするための適切な値をＸＯＲ回路に戻す（すなわちレジスタ２５６は、ｈｊ２との次のＸＯＲ演算のための部分的な結果ｔｊ  ＸＯＲ  ｈｊ１を戻す）。ビット削減モジュール２５８の出力（ｔｊ  ＸＯＲ  ｈｊ１  ＸＯＲ  ｈｊ２  ＸＯＲ  ．．．  ｈｊｍ）は、応答シーケンスＲ’２２８の１つの応答ビットｒｊを形成し、応答シーケンスＲ’２２８は、認証時にＲＦＩＤインタフェース１５０を介して提供される。
【００８３】
ｅＰＵＦタグ２００のプロビジョニング時、プロビジョニングを行う登録局（例えばＲＦＩＤリーダ）は、シードＳ  ２３２をチャレンジ生成器２３４に提供する。チャレンジ生成器２３４がトリガーされ、ｅＰＵＦタグの登録に使用される一連のインデックス値ｓｊが生成される。プロビジョニングを行う登録局が、図１に関連して上述したように、正しいパスワードｘ  １１２をアクセス回路１３８に提供すると、隠蔽ビット生成器２０４からの隠蔽出力｛ｈｊ１，ｈｊ２，．．．，ｈｊｍ｝が、ｅＰＵＦタグ２００によってデータＤ  １２０として提供される。プロビジョニングを行う登録局は、データＤ  １２０を受信し、従来の数多くの暗号化技術のいずれかを使用して、データＤ  １２０から、暗号化されたデータＥ（Ｄ）１２２を生成する。データＤ  １２０を暗号化するために使用する暗号化鍵は、タグ識別子メモリ１０２に格納されている、ｅＰＵＦタグ２００に関連付けられる情報を使用して、登録局が選択的に識別する。暗号化鍵は、プロビジョニングを行う登録局は認識しているが、ｅＰＵＦタグ２００には知らされない。次に、登録局は、暗号化されたデータＥ（Ｄ）１２２をｅＰＵＦタグ２００に送信し、Ｅ（Ｄ）１２２がＰＵＦデータベース１２４に格納される。ＰＵＦデータベース１２４は、一般的に、５１２ビットまたは１０２４ビットの暗号化されたデータを格納することができる。Ｅ（Ｄ）１２２がＰＵＦデータベース１２４に格納された時点で、プロビジョニング段階が終了する。
【００８４】
いくつかの場合においては、プロビジョニングを行う登録局は、シードＳ  ２３２の提供およびデータＤ  １２０の受信をＲＦＩＤインタフェース１５０を介して行う。別の場合においては、より迅速なプロビジョニングを可能にするため、プロビジョニングを行う登録局は、ＲＦＩＤインタフェース１５０を介さずに、代わりに、シードＳ  ２３２の提供もしくはデータＤ  １２０の受信またはその両方を、それぞれ、入力電気パッド２６４および出力電気パッド２６２における直接的な電気接続を介して行う。
【００８５】
ｅＰＵＦタグ１００は、ＲＦＩＤインタフェース１５０を介して電力を受け取る電力モジュール１６８によって給電される。いくつかの場合には、ｅＰＵＦタグ１００に適用される刺激１１８、もしくは、ｅＰＵＦタグ１００から受信されるデータＤ  １２０、またはその両方が多量であり、タグのプロビジョニング時、複数回の電力サイクルを使用する。
【００８６】
展開ロジック２０６は、連鎖攻撃（例えば、図４に関連して上述した攻撃）の脅威に対して、ｅＰＵＦタグ２００を堅牢にする役割を果たす。展開ロジック２０６によって実施される展開方式によって、隠蔽ビット生成器２０４からの出力の連鎖の形成が防止される。攻撃者は、最大でも長さ２のループを形成できるにすぎない。すなわち、たとえ攻撃者がＰＵＦ回路２１０にπ（ｃ）を適用した場合でも、隠蔽ビット生成器２０４から得ることのできる情報は、最大でπ（π（ｃ））、またはｃ自体である。
【００８７】
いくつかの例においては、ｅＰＵＦタグ２００によって実施される展開方式は、一般的に、１個のＰＵＦ回路から４要素ＸＯＲ処理または８要素ＸＯＲ処理が得られるように実施されている。別の例では、２個のＰＵＦ回路を使用して、８要素ＸＯＲ処理または１６要素ＸＯＲ処理を得る。すなわち、１個の認証出力あたり２つ、４つ、または８つのチャレンジが（１個または複数の）ＰＵＦ回路に入力される。一般的には、ＸＯＲ演算されるビットの数が多いほど、攻撃に対してｅＰＵＦタグが堅牢である。
【００８８】
５  他の実施形態
上述した技術は、特許文献３に記載されているシステムと組み合わせて使用することができ、この文書の内容は参照によって本出願に組み込まれている。例えば、これらの技術を使用して、検知デバイス以外のデバイスを認証することができる。これらの技術は、ＲＦＩＤおよびＲＦＩＤリーダに関連して説明したが、それ以外のデバイス（検知デバイスおよびリーダを含む）においても、これらの技術を利用することができ、これは有利である。例として、ＰＵＦ回路を使用して接続を確認するＢｌｕｅｔｏｏｔｈ対応のデバイス、（例えばデバイスにメディアをダウンロードするときに）ＰＵＦ回路を使用してデバイスを確認するする携帯型のメディアデバイス、ネットワークへの接続時にＰＵＦ回路を使用して電話を確認するする携帯電話が挙げられる。さらには、ＲＦＩＤはさまざまな状況において使用されており、例えば、商品の偽造品を防止する（例：薬剤、電子機器、デザイナーブランドのバッグ）や個人情報を保持する（例：セキュリティバッジ、公共交通機関パス、パスポート）ための使用が挙げられる。ＲＦＩＤが一般化するにつれて、ＲＦＩＤリーダも普及している。例えば、携帯電話にＲＦＩＤリーダを組み込むことにより、中央の認証局と通信することで携帯電話を使用してＲＦＩＤを認証することができる。さまざまな環境において、それに適する技術を使用することができる。
【００８９】
別の実施形態においては、異なるビット削減関数を使用することができる。いくつかの例として、隠蔽出力を３つ以上のグループに分割し、グループそれぞれに投票関数を適用する手順が挙げられる。いくつかの例においては、投票関数を適用する隠蔽出力のグループそれぞれが同じである必要はない。いくつかの例においては、ビット削減関数を、ルックアップテーブルとして、またはルックアップテーブルを使用して実施する。いくつかの例においては、隠蔽出力シーケンスの分割されたセクションそれぞれがビット削減関数に独立して渡される必要はない。しかしながら、このような例のいくつかでは、隠蔽出力シーケンス全体から応答シーケンスへの削減は、（例えば、正確な隠蔽出力関数が反復されない結果として）隠蔽出力シーケンスにおける少数の出力が変化する結果として、応答シーケンスの限られた数の部分が変化するように行う。Ｍ個の隠蔽出力のセクションにおいて投票関数を使用する上の例では、１個の隠蔽出力が変化すると、応答における１つの応答部分が影響されるのみである。別の例では、１個の隠蔽出力が変化すると複数の応答部分が変化するが、認証が依然として可能であるように、プロビジョニング時と認証時との間での隠蔽出力関数の変化の割合が大きくなく、全体的な影響が限られるようにする。
【００９０】
いくつかの例においては、暗号化されたデータＤは、必ずしもタグ自体に格納されなくてもよい。そのような方式は、プロビジョニングを行う登録局から、別の経路によって（例えばネットワークを介して、データベースのルックアップを使用して、あるいは安全な送信を介して（例：タグの出荷に伴う記録媒体上で））、データＤがリーダに提供される場合に適用することができる。
【００９１】
いくつかの例においては、ワンタイムプログラマブル（ＯＴＰ）メモリを使用して隠蔽出力生成器を実施することができ、プロビジョニングを行う登録局に既知である秘密の数（Ｄ）がＯＴＰメモリに書き込まれ、この数をタグから読み出すことはできない。プロビジョニングを行う登録局は、暗号化された数Ｅ（Ｄ）をタグ上の読み出し可能なメモリに書き込む。タグは、数Ｄのビットのルックアップとして、隠蔽出力関数を実施する。いくつかの例においては、タグ上で生成される乱数がＯＴＰメモリに書き込まれ、認証局にその数が提供される。
【００９２】
隠蔽出力関数が、製造ばらつきを利用する回路を使用して実施される例においては、さまざまなタイプの回路を使用することができる。例えば、隠蔽出力関数にインデックスを適用してデバイスまたは回路を選択することができ、出力は、そのデバイスまたは回路の特性に対応する。例えば、インデックスがトランジスタを選択し、出力はそのトランジスタのしきい値レベルに対応する。別の例では、インデックスが一組の発振器を選択し、出力がそのオシレータの振動周波数の比較に対応する。別の例では、インデックスが遅延経路の対を選択し、出力が、その２つの経路における信号遅延の比較に対応する。
【００９３】
上に例として説明した方法は、ハードウェア、ソフトウェア、またはソフトウェアのハードウェアの組合せとして実施することができる。例えば、特定用途向け集積回路を使用してｅＰＵＦタグを実施することができ、リーダの機能は、リーダの中の汎用プロセッサ上で実行されるソフトウェアとして実施される。ハードウェアは、カスタム集積回路、または構成可能な回路（例えばフィールドプログラマブルゲートアレイ（ＦＰＧＡ））を含んでいることができる。ハードウェアによる実施は、コンピュータ可読媒体に格納される回路仕様命令（circuit specification instructions）に従って、例えば、ＦＰＧＡにおけるコンフィギュレーションデータの形で、またはハードウェア記述言語（ＨＤＬ）（例：Verilog）の形で、指定することができる。ソフトウェアによる実施は、汎用または特定用途向けのコントローラまたはプロセッサの実行を制御するための命令（コンピュータ可読媒体に格納される）を含んでいることができる。例えば、認証局は、格納されているプログラムによって制御される汎用プロセッサを含んでいることができ、検知デバイスは、デバイスに格納されている命令によって制御される特定用途向け制御プロセッサを含んでいることができる。
【００９４】
ここまでの説明は、本発明の説明を目的としており、本発明の範囲（添付の請求項の範囲によって定義される）を制限するものではないことを理解されたい。例えば、上述した技術は、ＲＦＩＤベースの用途に関連して説明してあるが、これらの技術は、別のタイプの集積回路の認証にも適用することができる。
【図１】
0005319783.tif 000005
【図２】
0005319783.tif 000006
【図３】
0005319783.tif 000007
【図４】
0005319783.tif 000008
【図５】
0005319783.tif 000009
【図６】
0005319783.tif 000010
【図７】
0005319783.tif 000011
【図８】
0005319783.tif 000012
【図９】
0005319783.tif 000013