IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ エスティーシー. ユーエヌエムの特許一覧

特許7003059プライバシー保護相互PUFベース認証プロトコル
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-01-05
(45)【発行日】2022-01-20
(54)【発明の名称】プライバシー保護相互PUFベース認証プロトコル
(51)【国際特許分類】
   H04L 9/32 20060101AFI20220113BHJP
   H04L 9/10 20060101ALI20220113BHJP
【FI】
H04L9/32 200
H04L9/10 Z
【請求項の数】 12
(21)【出願番号】P 2018554663
(86)(22)【出願日】2017-01-11
(65)【公表番号】
(43)【公表日】2019-01-17
(86)【国際出願番号】 US2017013013
(87)【国際公開番号】W WO2017123631
(87)【国際公開日】2017-07-20
【審査請求日】2020-01-08
(31)【優先権主張番号】62/277,276
(32)【優先日】2016-01-11
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/296,490
(32)【優先日】2016-02-17
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/344,754
(32)【優先日】2016-06-02
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/417,611
(32)【優先日】2016-11-04
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】503128320
【氏名又は名称】ユーエヌエム レインフォレスト イノベーションズ
【氏名又は名称原語表記】UNM Rainforest Innovations
【住所又は居所原語表記】Lobo Rainforest Building, 101 Broadway Blvd. NE, Suite 1100, Albuquerque, NM 87102 USA
(74)【代理人】
【識別番号】100140109
【弁理士】
【氏名又は名称】小野 新次郎
(74)【代理人】
【識別番号】100118902
【弁理士】
【氏名又は名称】山本 修
(74)【代理人】
【識別番号】100106208
【弁理士】
【氏名又は名称】宮前 徹
(74)【代理人】
【識別番号】100120112
【氏名又は名称】中西 基晴
(74)【代理人】
【識別番号】100173565
【弁理士】
【氏名又は名称】末松 亮太
(72)【発明者】
【氏名】プラスクエリック,ジェームス
(72)【発明者】
【氏名】チェ,ウェンジ
(72)【発明者】
【氏名】イスマリ,ディラン
【審査官】中里 裕正
(56)【参考文献】
【文献】特開2010-266417(JP,A)
【文献】国際公開第2015/031683(WO,A1)
【文献】CHE, W., SAQIB,F. and PLUSQUELLIC, J.,PUF-Based Authentication,2015 IEEE/ACM International Conference on Computer-Aided Design (ICCAD),2015年11月,pp.337-344
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
H04L 9/10
JSTPlus/JMEDPlus/JST7580(JDreamIII)
IEEE Xplore
(57)【特許請求の範囲】
【請求項1】
集積回路のクローニングおよび無断使用を防止するために、サーバによってトークンを認証するための物理的複製困難関数(PUF)の方法であって、プライバシーおよび相互認証の双方を前記サーバおよび前記トークンの間で提供し、当該方法は、
前記PUFによって、該PUFの1つ以上のパス遅延に生じる自然なばらつきを測定するステップと、
前記1つ以上の測定されたパス遅延をディジタル化するステップと、
前記ディジタル化された1つ以上の測定されたパス遅延を、前記サーバのデータベースに格納するステップと、
複数のビットストリングを、前記ディジタル化された1つ以上の測定されたパス遅延から生成するステップと、
前記複数のビットストリングのうちの前記ビットストリングを、前記トークンのビットストリングと比較するステップと、
前記比較するステップにより1つ以上が一致する結果のときに、前記トークンを認証するステップと、
を含む、方法。
【請求項2】
請求項1に記載の方法において、前記複数のビットストリングがオンザフライで生成される、方法。
【請求項3】
請求項1に記載の方法であって、更に、
前記トークンによって、トークン・ヘルパー・データ・ビットストリングおよびトークン・ビットストリングの双方を生成するステップを含む、方法。
【請求項4】
請求項3に記載の方法であって、更に、
前記サーバによって、サーバ・ヘルパー・データ・ビットストリングおよびサーバ・ビットストリングの双方を生成するステップを含む、方法。
【請求項5】
請求項4に記載の方法であって、更に、
前記トークン・ビットストリングから1つ以上のビットを排除することによって、前記トークン・ビットストリングを変更するステップと、
前記サーバ・ビットストリングから1つ以上のビットを排除することによって、前記サーバ・ビットストリングを変更するステップと、
を含む、方法。
【請求項6】
請求項5に記載の方法において、前記トークンを認証するために、前記変更されたサーバ・ビットストリングが、前記変更されたトークン・ビットストリングと比較される、方法。
【請求項7】
請求項5に記載の方法であって、更に、
前記サーバ・ビットストリングを変更するために前記サーバ・ヘルパー・データ・ビットストリングを使用し、前記トークン・ビットストリングを変更するために前記トークン・ヘルパー・データ・ビットストリングを使用するステップを含む、方法。
【請求項8】
請求項5に記載の方法であって、更に、
前記トークンから前記トークン・ヘルパー・データ・ビットストリングのビット毎のAND演算を実行して、ANDを取ったトークン・ヘルパー・データ・ビットストリングを得るステップと、
前記サーバ・ヘルパー・データ・ビットストリングのビット毎のAND演算を実行して、ANDを取ったサーバ・ヘルパー・データ・ビットストリングを得るステップと、
を含む、方法。
【請求項9】
請求項8に記載の方法において、前記トークン・ビットストリングから排除された前記1つ以上のビットが、前記ビット毎のAND演算のためにロジック0となる、前記ANDを取ったトークン・ヘルパー・データ・ビットストリングのビットに対応したビットであり、
前記サーバ・ビットストリングから排除された前記1つ以上のビットが、前記ビット毎のAND演算のためにロジック0となる、前記ANDを取ったサーバ・ヘルパー・データ・ビットストリングのビットに対応したビットである、方法。
【請求項10】
請求項1に記載の方法において、前記PUFが、暗号プリミティブのハードウェア実装において提供される、方法。
【請求項11】
請求項10に記載の方法において、前記暗号プリミティブが高度暗号規格(「AES」)アルゴリズムである、方法。
【請求項12】
請求項10に記載の方法において、前記暗号プリミティブがセキュア・ハッシュ・アルゴリズム3(「SHA-3」)アルゴリズムである、方法。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願に対する相互引用
本願は、2016年1月11日に出願された米国仮特許出願第62/277,276号、2016年2月17日に出願された米国仮特許出願第62/296,490号、2016年6月2日に出願された米国仮特許出願第62/344,754号、および2016年11月4日に出願された米国仮特許出願第62/417,611号の権利を主張する。これらの出願をここで引用したことにより、各々、その内容が本願にも含まれるものとする。
【0002】
連邦支援研究または開発に関する言明
本発明は、全米科学財団によって授与された契約第271368号の下で、政府支援によって行われた。政府は、本発明において一定の権利を保有する。
【0003】
発明の分野
本発明は、2014年8月28日に出願された国際特許出願PCT/US14/053276、および2015年12月15日に出願された国際特許出願PCT/US15/065909に開示されたような、ハードウェア埋め込み遅延PUF(「HELP」)を含む、物理的複製困難関数(「PUF」:Physically Unclonable Function)の認証プロトコルに関する。これらの国際特許出願をここで引用したことにより、各々、その内容が本願にも含まれるものとする。具体的には、本発明はプライバシーおよび相互識別に対応する(provide)認証プロトコルに関する。
【従来技術】
【0004】
集積回路(「IC」)は、チップまたはマイクロチップとしても知られ、コンピュータ、電話機、およびディジタル・アプリケーション(digital application)のような電子機器に使用される微細電子回路である。ICは、通例、シリコンおよびゲルマニウムのような半導体デバイス、更にはキャパシタ、抵抗器、およびダイオードのような受動コンポーネントによって形成される。大抵の場合、ICは半導体材料の薄い基板上に製造される。近年、ICのトランジスタ毎の製造におけるコストは低下している。しかしながら、低コスト下によって製造の可能性(availability)は高まるが、クローニングやコピーのような脅威からICを保護しなければならないだけでなく、不正流用(misappropriation)や無断使用に対しても保護されなければならない。脅威は、暗号化データへの無断アクセス、知的所有権(「IP」)の無断使用、およびハードウェアの盗用(piracy)またはICの違法製造を含む、IC設計の複製を許してしまうおそれがある。クローニング、不正流用、およびセキュリティ鍵の無断使用の脅威は、特に、認証プロトコルにセキュリティ鍵を使用するコンピュータ・アプリケーションにおいては問題である。
【0005】
多くのコンピュータ・ベースのハードウェア・セキュリティ方式が、ICをクローニングおよび無断使用から保護するために存在する。これらのセキュリティ方式は、各ICから導き出される、一意のクローニングができない識別子のようなセキュリティ鍵または署名へのアクセス可能性に依存する。セキュリティ鍵は、データ通信チャネルの暗号化を実行するメカニズム、またはフィールド・プログラマブル・ゲート・アレイ(「FPGA」)を含むコンピュータ・ベースのロジック・デバイスにおいてIP窃盗(theft)保護を行うメカニズムのような、ハードウェア・セキュリティの高レベルにおいて実装されるコンピュータ・ベースのハードウェア・セキュリティ・メカニズムの基準を定める。
【0006】
従来のセキュリティ鍵は、例えば、IC上のフラッシュ・メモリまたはリード・オンリ・メモリ(「ROM」)に格納されているディジタル・データを使用して定められる。セキュリティの観点からは、セキュリティ鍵へのアクセスは、IC上に形成されているハードウェア回路に制限することが望ましい。生憎、これらの従来の技術を使用して格納されたセキュリティ鍵は、侵害的物理攻撃を受け、敵対者がセキュリティ鍵を学習することを可能にするおそれがある(can)。セキュリティ鍵が敵対者によって学習されると、クローンICが作成されるおそれがあり、更にセキュリティ・プロトコルが脅威に晒されるおそれがある。
【0007】
ランダム・ビットストリングが、暗号化、識別、認証、およびハードウェア・セキュリティにおける機能の有効化(feature activation)の基準を形成することができる。現在の技術では、暗号化のために鍵を形成する材料(keying material)は、FPGAまたは特定用途集積回路(「ASIC」)上の不揮発性メモリにディジタル・ビットストリングとして格納されている場合がある。しかしながら、このように格納されている秘密は、探査攻撃(probing attack)を使用して秘密を盗むことができる、決意を持った敵対者(determined adversary)に対して安全ではないおそれがある。物理的複製困難関数(「PUF」)は、不揮発性メモリにディジタル・ビットストリングを格納する代案として使用することができる。PUFとは、ビットストリングを生成するために製造ばらつきによって混入されたエントロピを利用するICハードウェア・プリミティブであり、対応するばらつきを測定しディジタル化するためのオンチップ・インフラストラクチャを組み込むことができる。PUFは、パス遅延、漏れ電流、またはスタティック・ランダム・アクセス・メモリ(「SRAM」)起動パターンに生ずる自然なばらつきを測定およびディジタル化し、ランダム・ビットストリングを生成することができる。
【0008】
PUFの実装(implementation)を使用してICを保護するために、種々の技法が提案されている。チャレンジ・ベース(challenge-based)IC認証はその一例である。チャレンジ・ベースのIC認証では、秘密鍵をIC内に埋め込み、ICがチャレンジに対して一意のレスポンスを生成することを可能にし、このレスポンスはそのチャレンジのみに有効である。つまり、鍵は秘密のままであり、認証を行うメカニズムはなりすましに対して耐性がある。遠隔有効化方式(remote activation scheme)は別の例である。遠隔有効化方式は、IC設計者が各ICを起動時にロックし、次いで離れてそれをイネーブルすることを可能にして、知的所有権保護およびハードウェア・メータリング(hardware metering)に対応する(provide)。設計の有限状態機械(「FSM」)に状態を追加し、秘密鍵の関数である制御信号を追加する。したがって、特定の有効化コードの受信まで、ハードウェアは施錠される(lock up)。PUF実施の他の例には、遅延線の不一致、SRAMの電源投入時のパターン、金属酸化物半導体(「MOS」)デバイスの不一致、および入力依存漏れパターンが含まれる。しかしながら、これらの技法は各々、ICのセキュリティ鍵の不正流用、クローニング、または無断使用に関係する脆弱性を有する。
【0009】
PUFは、ディジタル秘密(ビットストリーム)を生成する手段として、ICの物理的および電気的プロパティにおける各ICに一意のばらつきから、エントロピ(乱雑さ)を抽出する。ビットストリングは、認証用途のためにハードウェア・トークンを一意に識別する役割を果たすことができる。ビットストリングは動作中に生成され、これによって、それらのディジタル・コピーを不揮発性メモリ(「NVM」)に格納する必要性を解消し、これらのビットストリングは(理想的には)ある範囲の環境変動の下で再現可能である。秘密ビットストリングの正確な生成時刻、および侵害的探査攻撃(それを無効化するように作用する)に対するPUFエントロピ・ソースの感度を制御できることは、リソースが制限されたハードウェア・トークンを含む埋め込み型ハードウェアにおける認証にとって、これらを魅力的にする更に別の属性である。
【0010】
PUFは、「強いPUF」または「弱いPUF」に分類することができる。「強いPUF」は、暗号プリミティブおよび処理の数ならびに種類を減らすことによって、エリアおよびエネルギのオーバーヘッドを低減することができる。例えば、強いPUFは、デバイス毎に大きな一意の1組のビットを生成することができ、機械学習攻撃、プロトコル攻撃、およびデバイス・リソース上の制約に関係する追加のチャレンジを有する。対照的に、エリア・オーバーヘッドは、「弱いPUF」においてエントロピ・ソースの物理的サイズを制限する。
【0011】
提案された「弱いPUF」アーキテクチャの殆どは、エントロピ・ソースとして役割を果たすための専用の同一設計検査構造のアレイの挿入を必要とするが、エリア・オーバーヘッドのために、エントロピ・ソースの物理的サイズが制約を受ける。「弱いPUF」は認証に使用することができるが、これらは、これらの限られた量のエントロピを、秘密を機械学習するように設計された敵のインターフェース攻撃に対して保護するために、例えば、暗号ハッシュ(cryptographic hash)、暗号化(encryption)、およびXOR機能のような、難読化機能の挿入を必要とする。
【0012】
一方、殆どの「強いPUF」は、既存のオンチップ・リソースにおいて利用可能なエントロピを利用することにより、特殊検査構造内における限られた量のエントロピを巧みに回避する(circumvent)。「強いPUF」は、認証処理のために非常に多数のチャレンジ-レスポンス対(「CRP」)を生成することができる。
【0013】
「アービタPUF」(arbiter PUF)として知られているものが、従前より最初の強いPUFであると見なされている。何故なら、これは2通りのレスポンスを生成するように構成することができるからである。しかしながら、アービタPUFは、少数のゲートだけでパスを定めるので、モデル構築攻撃を受け易い。具体的には、アービタPUFは、通例、256個だけの論理ゲートで構成するので、機械学習(「ML」)攻撃の影響を受け易い。
【0014】
PUFベースの認証プロトコルの最も単純な形態が、2つのフェーズ、即ち、エンロールメント(enrollment)および認証において実行される。実際に行われる認証処理のためにハードウェア・トークンを準備するプロセスをエンロールメントと呼ぶ。エンロールメントの間、セキュア・サーバは、対応する1組のレスポンスを生成するために、PUFに適用されるチャレンジから小さな部分集合をランダムに選択する。次いで、トークン毎のCRPをサーバによってセキュア・データベースに記録し、実際に使用されたトークン(fielded token)を認証するために後で使用される。トークン毎に格納されるCRPの数は少なくすることができる。何故なら、広大なCPR空間が、選択された部分集合の秘密性と合わせて、敵対者がトークンを偽装するためにクローンを構築するのを非常に難しくするからである。認証とは、証明する側(prover)、例えば、ハードウェア・トークンまたはスマート・カードと、検証する側(verifier)、セキュア・サーバまたはバンク(bank)との間において、一方または双方の補強証拠を使用して同一性を確認するプロセスである。電子機器、ソフトウェア、センサ、およびネットワーク接続サービス(connectivity)が埋め込まれ、データの収集および交換を可能にする、物理的物体のネットワーク(もののインターネット(「IoT」)と呼ぶ)では、ハードウェア・トークンがリソースの制約を受け、したがって、コストが低く、エネルギが少なく、エリア・オーバーヘッドが少ない新規な認証技法が求められている用途の数が増えつつある。
【発明の概要】
【発明が解決しようとする課題】
【0015】
しかしながら、この単純な形態のPUFベース認証プロトコルには、様々な欠点がある。第1に、これは認証トークンのプライバシー保護に対応せず、したがって、敵対者は連続する認証にわたって、実際に使用されたトークンを追跡することができる。トークンは、検証する側が適正な1組のCRPを選択することを可能にするために、最初に何らかの型式のトークン-IDを使用して、検証する側に自証しなければならないので、これは正しい。トークン-IDが要求されるのは、エンロールメント中にトークン毎に、小さく、開示されていない、CRPの部分集合だけしか検証する側には記録されていないからである。また、トークン-IDは、例えば、フューズを使用して焼き入れ(burn in)して、トークン上に永続的に格納されなければならず、そして平文で送られなければならないからである。これを回避するために、CRP連鎖および暗号化方式が提案されているが、これらは連鎖コンポーネントを実装するために読み取り-書き込み可能なNVMを必要とするので、追加のオーバーヘッドが発生する。
【0016】
第2に、PUFベース認証プロトコルのこの単純な形態は、サービス拒否(「DOS」:denial-of-service)攻撃の影響を受け易く、敵対者はこれを狙って(whereby)繰り返し認証を試みることによって、トークンのための検証する側のCRPを枯渇させる。第3に、DOS攻撃が仕掛けられなくても、格納されているCRPは一連の有効な認証の間に使い尽くされる可能性がある。何故なら、検証する側は一旦使用したCRPを削除しなければならず(再生攻撃を回避するため)、検証する側はトークン毎に固定数のCRPしか格納していないからである。
【0017】
認証のために、機能ユニットにおける遅延ばらつきを使用するプロトコルが提案されている。しかしながら、これらのプロトコルはタイミング値を直接利用し、パス長バイアス効果を考慮していない。既存のプロトコルにおける弱点は、PUFのエントロピ・ソースにおける弱点に関係する。プライバシー保護および相互認証をサポートする、最近提案されたプロトコルのように、他のプロトコルは軽量でなく、弱いSRAM PUFを利用し、トークン上にNVMおよび様々な暗号機能を実装する必要がある。広いエリアが必要な暗号プリミティブおよび不揮発性メモリ(「NVM」)を使用する従来の認証方法は、埋め込みアプリケーションを発展させるには、魅力に乏しい。
【0018】
大きな暗号プロパティを有する真に強いPUFを提供するために、信頼性および安全性を高める技法が求められている。本発明は、この要望を満足させる。
【課題を解決するための手段】
【0019】
本発明は、暗号プロパティによる真に強いPUFを提供する、PUFベース、端末相互間プライバシー保護、相互PUFベース認証プロトコルを対象とする。
【0020】
本発明は、PUFベース、相互、プライバシー保護認証プロトコルを提供する。このプロトコルについて、ハードウェア埋め込み遅延PUF(「HELP」)を使用して説明し実施するが、任意の物理的複製困難関数(「PUF」)も想定している。有利なこととして、プロトコルは不揮発性メモリも、トークン上の暗号プリミティブも必要としない。更に、パス遅延情報は、レスポンス・ビットストリングの代わりに、エンロール中にベリファイア(verifier)に格納される。
【0021】
ハードウェア埋め込み遅延PUF([HELP」)は、機能ユニットにおいてパス遅延ばらつきを利用する強いPUFである。具体的には、HELPは、既存の機能ユニット内に存在する遅延のばらつきからビットストリングを生成し、多数のCRPを供給する。更に、機能ユニットによって定められるパスは、複合相互接続構造を有し、これらを検査するために必要とされる検査シーケンスを決定するためには、長い実行時間の精巧な自動検査パターン生成(ATPG:automatic test pattern generation)ソフトウェアを必要とする。HELPに対してチャレンジを生成することの困難が、モデル構築攻撃を実行することの困難に新たな次元を追加する。何故なら、敵対者は、有効なモデル構築戦略を可能にするチャレンジを決定するために、最初に多大な手間をかけなければならないからである。尚、この手間は所与の実施(implementation)に対して一回だけかければよいが、検査生成戦略およびネットリスト特性に応じて、正当な時間量で要求される検査を計算することは実現不可能な場合もあると言うことができる。尚、この特性は敵対者にとってのみ欠点となることは注記してしかるべきである。信頼された機関(trusted authority)は、検査生成を狙うパスを選りすぐることができ(セキュア・データベースには制限された数のCRPしか格納されていない)、したがって、検査生成時間を短く抑えることができる。
【0022】
HELPは、2-ベクトル・シーケンスをチャレンジとして受け入れ、指数入力チャレンジ空間をサポートする。即ち、n個の入力では、チャレンジの数は22nにおいて上限に達する。これが示すのは、2n個の入力ベクトルの内任意のものが後に、他の2n個の入力ベクトルの内任意のものが続くことができるということである。HELPの信頼性を高めるために、2-ベクトル・シーケンスは、パスに沿って上昇遷移(rising transitions)または下降遷移(falling transitions)のいずれかを生成するが、双方は生成しないように制約を受ける。これによって、チャレンジ空間は22nから2×(3-2)に縮小するが、それでもなお強いPUFによって必要とされるような指数である。しかしながら、一意のパスの数は通例もっと小さい指数2となり、これが示すのは、2-ベクトル・シーケンスはこれらのパスを平均で約2×(3-2)/2回再検査するということである。レスポンス空間が2mと定義されるとすると、強いPUFの条件を満たすためには、mは約64以上である必要がある。この条件を満たすために組み合わせ論理回路を組み立てることができるが、結果的に生ずるサイズはリソース制約デバイスにとっては大きすぎる。
【0023】
本発明によれば、サーバ上の強いレスポンス・ビットストリングの代わりに、パス・タイミング情報、例えば、測定されたパス遅延のディジタル化表現を、(セキュア)サーバ上のデータベースに格納し、プライバシーおよび相互認証に対応する効率的な認証プロトコルを可能にする。1組の処理パラメータとの組み合わせにより、パス遅延の格納は、複数のレスポンス・ビットストリングを同じ1組のパス遅延から生成することを可能にすることによって、レスポンス・ビットストリームに対して格別の利点をもたらす。具体的には、ベリファイアにおいて固定された1組の格納パス遅延を使用して、非常の大きな指数的な1組の(very large, exponential set)レスポンス・ビットストリングを生成することができる。
【0024】
具体的には、本発明は、1組の構成パラメータを定めることによって、HELPのレスポンス空間を拡張する。2-ベクトル・シーケンスとこれらのパラメータとの組み合わせにより、CRP空間を大きな指数に増大させる。例えば、構成パラメータの1つをパス-選択-マスク(Path-Select-Mask)と呼ぶ。これは、ベリファイアが、適用された2-ベクトル・シーケンスによって検査されたパスから、特定のパスの部分集合を選択し、ビットストリング生成プロセスにおいて使用することを可能にする。パス-選択-マスクは、それ自体によって、n個からk個を選択する場合に可能な組み合わせの数(n-choose-k number of possibilities)をレスポンス空間のサイズに追加する。nおよびkの値は、通例、それぞれ5000から2048の範囲であり、これは3e1467よりも大きい値に対応する。
【0025】
本発明の一実施形態によれば、このプロトコルは、暗号プリミティブのハードウェア実現において、具体的には、高度暗号規格(「AES」)アルゴリズムにおいて提供される。しかしながら、任意の暗号ハッシュ関数、例えば、セキュア・ハッシュ・アルゴリズム3(「SHA-3」)も考えられる。
【0026】
一実施形態によれば、本発明は、エントロピのソースとして、sbox-mixedcolと呼ばれるAESデータ・パス・コンポーネントを使用する。具体的には、sbox-mixedcolは、SBOXの4つのコピーとMIXEDCOLの1つのコピーとを含む、32ビット・コラムAESの機能ユニットである。しかしながら、本発明によるプロトコルは、これよりも軽量の機能ユニット、例えば、1つのAES SBOXコンポーネントから成るものを使用しても、実証および実現することができる。更に一般的には、本発明は、ハードウェア暗号化エンジン、および他の種類のデータ・パス・コンポーネントにも拡張することができる。
【0027】
例示の目的で、本発明は、PUFベース認証プロトコルにおいて使用するための高統計品質(high statistical quality)のビットストリングを生成することができ、データは、Xilinx Zynq 7020FPGAの45個のコピー上におけるsbox-mixedcol機能ユニットから収集される。しかし、任意の数のコピーおよびASICのような任意のハードウェアが考えられる。
【0028】
また、本発明は、小さな1組の測定されたパス遅延を使用して、指数的に大きなCRP空間を創り出す、1組の構成パラメータ、Mod、μref、Rngref、5、マージン、パス-選択-マスクを提供する。また、本発明は、信頼性を高めるために、二重ヘルパー・データ(「DHD」:Dual Helper Data)アルゴリズムも提供する。
【0029】
本発明ならびにその属性および利点は、以下の1つの想定される実施形態の詳細な説明を、添付図面と関連付けて検討することによって、更に理解され、認められよう。
【0030】
添付図面は、本明細書に組み込まれ、その一部を構成するが、本発明の実施態様を例示し、説明と共に、本発明の利点および原理を説明する役割を果たす。
【図面の簡単な説明】
【0031】
図1図1は、本発明の実施形態にしたがって、パス遅延を測定するクロック・ストロービング方法を含む機能ユニット(「FU」)のブロック図である。
図2図2は、本発明の実施形態にしたがって、TV補償された上昇および下降PUFNum差(PNDc)およびモジュラスを適用したPNDc(「modPNDc」)のランダムな対形成(pairing)を示すグラフである。
図3図3は、本発明の実施形態による、PNDcおよび温度-電圧(「TV」)コーナーの温度-電圧補償(「TVCOMP」)を示すグラフである。
図4図4は、本発明の実施形態によるマージンおよび二重ヘルパー・データ(「DHD」)アルゴリズムのブロック図を示す。
図5A図5Aは、本発明の実施形態による認証プロトコルのエンロール処理の流れ図を示す。
図5B図5Bは、本発明の実施形態による認証プロトコルの認証処理の流れ図を示す。
図6A図6Aは、本発明の実施形態にしたがって、平均スケール係数(Mean scaling factor)を使用した実際のチップ間ハンマリング距離(inter-chip hammering distance)の結果のグラフを示す。
図6B図6Bは、本発明の実施形態にしたがって、最大スケール係数を使用した実際のチップ間ハンマリング距離の結果のグラフを示す。
図7A図7Aは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、2のマージンに対するアメリカ国立標準技術研究所(NIST)統計検査結果のグラフを示す。
図7B図7Bは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、3のマージンに対するNIST統計検査結果のグラフを示す。
図8A図8Aは、本発明の実施形態にしたがって、平均スケール係数を使用したときの、真のチップ間ハンマリング距離の結果のグラフを示す。
図8B図8Bは、本発明の実施形態にしたがって、最大スケール係数を使用したときの、真のチップ間ハンマリング距離の結果のグラフを示す。
図9A図9Aは、本発明の実施形態にしたがって、平均スケール係数を使用したときのエントロピの結果のグラフである。
図9B図9Bは、本発明の実施形態にしたがって、最大スケール係数を使用したときのエントロピの結果のグラフである。
図10A図10Aは、本発明の実施形態にしたがって、平均スケール係数を使用したときの失敗結果(failure results)の確率のグラフである。
図10B図10Bは、本発明の実施形態にしたがって、最大スケール係数を使用したときの失敗結果(failure results)の確率のグラフである。
図11A図11Aは、本発明の実施形態にしたがって、平均スケール係数を使用したときの最小ビットストリング・サイズの結果のグラフを示す。
図11B図11Bは、本発明の実施形態にしたがって、最大スケール係数を使用したときの最小ビットストリング・サイズのグラフを示す。
図12図12は、HELP認証プロトコル・エリアおよびランタイム・オーバーヘッドの表を示す。
【発明を実施するための形態】
【0032】
ハードウェア埋め込み遅延PUF(「HELP」)は、2014年8月28日に出願された国際特許出願PCT/US14/053276、および2015年12月15日に出願された国際特許出願PCT/US15/065909記載されているような、機能ユニットにおけるパス遅延のばらつきを利用する、強力なPUFである。これらの特許出願をここで引用したことにより、その内容が本願にも含まれるものとする。具体的には、HELPは、既存の機能ユニット内に存在する遅延のばらつきからビットストリングを生成し、多数のCRPを提供する。
【0033】
HELPのためのエントロピ(乱雑さ)のソースは、機能ユニットを定めるパスの遅延に生ずる製造ばらつきである。HELPは、図1に示すようなクロック・ストロービング方法を使用して、パス遅延を測定する。エントロピのソースは機能ユニットによって表される。この機能ユニットは、例えば、認証プロトコルのコンポーネント、即ち、整数除算器または暗号ハッシュ関数を実装する既存のオンチップ・マクロである。
【0034】
先に示したように、HELPに対するチャレンジは、2-ベクトル・シーケンスおよびパス-選択-マスクから成る。また、「発射ローFF」(Launch Row FF)および「捕獲ローFF」(Capture Row FF)も機能ユニットのコンポーネントである。HELPを機能ユニットに統合するために必要な変更は、Clkと命名され、捕獲ローFFを駆動する第2クロックの使用、および主出力PO[x]上のXORゲートの追加だけで済む。
【0035】
図1における「発射ローFF」は、2-ベクトル・シーケンスを機能ユニットの主入力PI[x]に適用するために使用され、一方「捕獲ローFF」は主出力PO[x]におけるパス遅延を測定するために使用される。パス遅延は、図1の左側に示すように、ClkおよびClkを使用して、一連の発射-捕獲クロッキング・イベント(クロック・ストロービングと呼ぶ)を適用することによって測定される。このシーケンスの最初のベクトルは初期化ベクトルを表す。第2ベクトルの適用により、クロック・ストロービング技法によってタイミングを合わされた1組の遷移を生成する。クロック・ストロービング技法は、2-ベクトル・シーケンスの反復適用を必要とする。この2-ベクトル検査シーケンスの反復適用毎に、ClkおよびClk間の位相ずれが、小さな固定Δtだけ増大する。
【0036】
2つのクロック間における位相ずれの値をディジタル的に制御し、この位相ずれの値を発射-捕獲間隔(「LCI」)と呼ぶ。発射FFから開始するパスに沿った伝搬エッジを捕獲FFにおいて捕獲させる最も小さなLCIは、出力上のXORゲートが0になるときに発生し、 パスに対するディジタル化タイミング値として使用される。多数のパスに対するディジタル・タイミング値は、複数の2-ベクトル検査シーケンスに対するクロック・ストロービング動作を繰り返すことによって得ることができる。以下の説明では、LCIパス・タイミング値を「PUFNum」または「PN」と呼ぶ。
【0037】
2つのランダムに選択されたPNの符号付きの差を「PNDiff」または「PND」と呼ぶ。HELPは、2つの線形フィードバック・シフト・レジスタ(「LFSR」)を使用して、上昇PNの各々を下降PNと対にすることによって、PNDを組み立てる。LFSRは、「LFSRシード」と呼ばれる1対の構成パラメータによって初期化される。
【0038】
本発明による認証プロトコルは、HELPがPNに加えてノンスを生成することを必要とする。PNタイミング・エンジンを実装することを役割とするVHDLモジュールは、検査されるパスの部分集合内に存在するメタ-安定特性(meta-stability characteristics )を利用することによって、PN生成と並列にノンスを生成する。メタ-安定は、パスに対して、それを繰り返し測定し、次いで計算した平均の断片成分におけるばらつきを分析することによって判定される。周波数がほぼ等しい2つの連続PN値を生成するこれらのパスは、真の乱数(「TRNG」)のソースとして使用される。尚、このように生成されるノンスに伴うランダムな統計的プロパティは、アメリカ国立標準技術研究所(「NIST」)統計検査の統計検査(statistical test statistical tests)の全てに合格することは注記してしかるべきである。
【0039】
尚、Clk信号の細かい位相ずれを動的に制御する能力は、FPGAにおけるオンチップ・ディジタル・クロック・マネージャ(「DCM」)の一般的な機能(feature)である。例えば、Xilinxは、この位相ずれ能力を、それらの最も低価格のFPGAにでさえも含む。DCMを含まない低コスト・コンポーネントについては、この位相ずれ能力は、マルチ・タップ遅延チェーン(multi-tapped delay chain)を使用すれば、小さなエリア・オーバーヘッドで実装することができる。
【0040】
PUFの信頼性とは、ビットストリングが再生されるときに発生するビット反転エラーの数を指す。理想的なのは、ビットストリングは、再生(regeneration)の間、正確に再現(reproduce)されることであるが、これはPUFでは殆ど不可能である。PUFにビット反転エラーを生じさせる原因となる「ノイズ」の最も大きなソースは、温度および/または供給電圧の変化(TVノイズ)である。パス遅延のサンプル平均化は、測定ノイズ低減には有効であるが、この戦略はTVノイズには有効でなく、代わりに、TV補償(「TVCOMP」)方法が必要となる。TVCOMPプロセスは、以下の式(1)および(2)によって記述される。
【0041】
【数1】

【0042】
ここで、zvalは、平均μtokenを減算し、範囲Rngtokenで除算した後における、標準化されたPNDを表し、μtokenおよびRngtokenは、TVコーナーと呼ばれる、潜在的に悪い環境条件の下における再生中に得られる全てのPNDの分布から導き出される。次いで、2つの追加の構成パラメータμrefおよびRngref(refは基準を意味する)を使用して、個々のzvalを1組のPNDc(「c」が付くのは、補償されたためである)に変換する。この線形変換は、TVノイズを低減するのに非常に有効である。PNDcに残る環境変動からのノイズを「未補償TVノイズ」または「UC-TVノイズ」と呼ぶ。
【0043】
ビットストリング生成プロセスは、この符号付きPNDを、モデル構築に対して(against)アルゴリズムを硬化させる(hardening)手段、およびPUFレスポンスにおいて多様性を高める手段として使用する。「mod-PNDc」は、モジュラスをPNDcに適用することによって定められる。本発明の一実施形態によれば、モジュラスは、HELPアルゴリズムに対する第5の構成パラメータである(μref、Ringref、およびLFSRシード・パラメータに追加する)。
【0044】
モジュラスが必要なのは、機能ユニットにおけるパスの長さがばらつき、このパス長バイアスがPNDc内に捕獲されるからである。モジュラスは、チップ内遅延ばらつき、即ち、最も重要なランダム性のソースを完全に保存しつつ、このバイアスを低減する。
【0045】
図2は、チップCから測定したPNの擬似ランダム対から計算した1組のPNDc(18)の見本を示す。各PNDcは、異なるTV条件の下で16回測定した。1つの曲線が、エンロールメント条件(25°C、1.00V)の下で得られたデータ点を接続し、一方残りの曲線は、1組の再生TVコーナーの下における、例えば、温度-40°C、0°C、25°C、85°C、100°Cと、電源電圧0.95V、1.00V、および1.05Vの全ての組み合わせの下におけるデータ点を接続する。図2の最上位には、20のモジュラスを適用した後におけるmodPNDc値を示す。modPNDcは、以下で説明するHELPビットストリング生成プロセスにおいて使用される。
【0046】
本発明によれば、特にモジュラスがチップ内ばらつきの大きさよりも大きいときに、バイアス効果を更に低減するために、「オフセット」技法を使用することができる。図3は、概念を例示するために、1組で45個のチップから得られたPNDcのグラフを示す。各曲線において線で接続された点は、同じチップによって生成され、TVCOMPされた後における16回のTVコーナー実験において測定されたPNDcの値を表す。先に引用したUC-TVNoiseは、TVCOMPの後も残っており、最も下の曲線に注釈が付けられている。対照的に、チップ内ばらつき(「WID」)は、個々の曲線の垂直方向の延長によって表されており、これも図3において注釈が付けられている。このPNDcに対するWIDの大きさは、約11LCIである。20のモジュラスを使用する場合、-131と-120との間に示されているこの曲線群の位置は、最悪のシナリオを表す。何故なら、ビットストリングにおいて生成されるビットは、殆ど全てのチップに対して同じであるからである(以下で論ずる)。この問題の元となる(create)バイアスは、図3の右側に示すように全ての曲線における点に6の定数を加算することによって、解消することができる。これによって、PNDc分布を-120を「中心に広げ」、生成されたビットストリングにおいて「1」を生成するチップ数を、「0」を生成するチップの数とほぼ等しくすることによって、このPNDcに含まれるエントロピを最大化する。適切なオフセットは、ベリファイアによって、格納されているエンロールメント・データを使用して計算され、トークンに送られた1組のパス-選択-マスクにおいてエンコードされる。
【0047】
信頼性を高めるために、マージン技法を使用する。マージン技法は、ビット反転エラーを混入させる確率が最も高いmodPNDcを識別する。図2の最上位に沿って示されるmodPNDcデータは、図4において「(a)」によって示されるように、複製および拡大される。モジュラスによって定められた領域は、2つの半分に分割され、下半分は「0」領域として使用され(図4の「(a)」における0および9の間)、上半分は「1」領域として使用される。
【0048】
マージニング(margining)を行わないと、modPNDcインデックス4、6、7、8、10、および14においてビット反転が起こる。何故なら、16回のTVコーナー実験からのPNDcデータ点のグループにおける値の一部は、9-10および19-0において、0-1ラインと交差する(cross over)からである。マージン技法は、modPNDcに関連するビットに弱いクラスおよび強いクラスを作ることによって、これらのビット反転エラーを回避する。modPNDcに関連するビットは、modPNDcが0-1境界付近にあるマージン以内に入る場合、弱いとして分類され、そうでない場合強いビットとして分類される。マージンは、最良の結果に対して最悪のUC-TVNoiseレベルに設定されるのが理想的であるが、以下で更に論ずる認証プロトコルにおいて特定の失敗確率を達成するためにチューニングすることができる。
【0049】
デュアル・ヘルパー・データ(「DHD」)アルゴリズムを、ビット反転エラーを更に低減する手段として提案する。ハードウェア・トークンに対するヘルパー・データ(「HelpD」)およびレスポンス・ビットストリング(「RespBS」)が、図4において「(b)」によって示され、一方図4における「(c)」は、ベリファイアに対するHelpDおよびRespBSを示す。値は、図4における「(a)」に示すmodPNDcからのトークンおよびベリファイア強調データを使用して、導き出される。
【0050】
実際に行われる認証では、エンロールメントにおける早期にベリファイア・データベースに格納されたデータを利用する。トークンおよびベリファイアStrongBSを生成するために、以下の動作を実行する。最初に、トークンが、トークンStrongBSを生成するために、マージニング技法を使用してヘルパー・データ(「トークンHelpD」)を生成する。双方共ベリファイアに送信される。ベリファイア・データベースに格納されているトークン毎に、ベリファイアはヘルパー・データ(「ベリファイアHelpD」)を計算し、次いでそれと受け取ったトークンHelpDとのビット毎のANDを取る。ベリファイアは、ANDを取ったHelpDを使用して、ベリファイアStorongBSを組み立てつつ、同時に、トークンのStrongBSから、AND演算の間に「1」から「0」に変化したトークンHelpDビットに対応する強いビットを排除する(この例では、図4における「(c)」の一番下に沿って示すように、3ビットを排除する)。最後に、2つのStrongBSを比較する。認証が成功するには、トークンおよびベリファイアStrongBS間の正確な一致、またはビットの全てではないが殆どが一致する場合に照合は成功したとする「ファジイ一致」のいずれかを必要とする。トークンおよびベリファイアのHelpDビットストリングのANDを取ることにより、個々のHelpDビットストリングがそれら自体によって使用されるときに必要とされるマージンよりも、約半分に減らすことが可能になる。ビット反転エラーが起こり得るのは、図4の「(a)」におけるキャプションおよび図によって示されるように、UC-TVNoiseがmodPNDcに双方のマージンを超えて逆側の強ビット領域内まで移動させる場合であるので、これは正しい。modPNDcが移動するが「1」または「0」の弱いビット領域のいずれかに留まる場合、AND演算はこれを排除する。DHD方式と共に使用するマージンを少なくすることによって、モジュラスを減らすことができ、したがって、チップ内ばらつきへのアクセスをし易くすることができる。
【0051】
これより、プライバシー保護、相互認証プロトコルについて詳しく論ずる。パス遅延情報、PNは、レスポンス・ビットストリングの代わりに、ベリファイア上に格納される。一例として、PNは、各々、15ビット値として表すことができる(これによって、4ビットの固定小数点精度で、±1024の範囲が得られる)。
【0052】
このプロトコルは、複数のレスポンス・ビットストリングを固定した1組のPNから生成することを可能にするために、様々なパラメータを採用し、モジュラス(Modとも呼ぶ)、式(1)および(2)からのμrefおよびRngref、1対のLFSRシード(S)、マージン、およびパス-選択-マスクを含む。ベリファイアは、パス-選択-マスクにおいて1組のパスを指定し、前述のように、エントロピを改良するために、未使用ビットにオフセットをエンコードする。
【0053】
チャレンジは、2-ベクトル・シーケンスおよびパス-選択-マスクとして定められる。エンロールメントの間、トークンがPNをベリファイアに転送することを可能にするために、ワンタイム・インターフェース(onetime interface)を使用する(FPGA上に特殊プログラミング・ビットストリングとして実装される)。このプロトコルは、プライバシー保護コンポーネントをサポートするために、トークン識別(IDフェーズ)を認証(Authenフェーズ)から分離する。このプロトコルは、トークン上において暗号プリミティブも不揮発性メモリ(NVM)も全く必要としない。
【0054】
エンロール処理を図5Aにおいて図表を用いて示す。製造の前に、自動検査パターン生成(「ATPG」)を使用して、IDフェーズにおいて全てのトークンに対する共通の1組のチャレンジとして使用される、1組の検査ベクトル・シーケンス{ck}を選択する。ベクトルの数は、プライバシーに関するセキュリティ要件によって異なる。
【0055】
共通のチャレンジは、安全な環境においてエンロールの間にトークンに送信され、機能ユニットPIに適用される。トークン生成PNは、ベリファイアに送信され、図5(a)において{PN}として注釈が付けられる。ベリファイアは、VerifierGenID()を使用して、トークン毎に内部ベリファイアIDを生成し、IDの下の集合{PN}をセキュア・データベースに格納する。
【0056】
エンロールメントのAuthenフェーズの間に、トークン毎にSelectATPG(ID)を使用して全く異なる1組のATPG-生成チャレンジを選択することを除いて、同様のプロセスを実行する。典型的な機能ユニットにおいてハザードがなく検査可能なパス(hazard-free testable path)の数は非常に大きくなることができるので、トークン毎に最小限に重複する集合を作成することが可能になる(以下で論ずるように、プライバシーの理由からいくらかの重複は望ましい)。尚、全てのパスに対して2-ベクトル・シーケンスを生成するタスクは、普通サイズの機能ユニットであっても、計算的に実現不可能となる可能性が高いことを注記しておく。しかしながら、ATPGを使用してエンロールメント要件に合わせてパスのランダムな部分集合を絞り込む方が、実現可能でありしかも実用的である。Authenフェーズにおいて生成された1組のPN、{PN}も、使用されるチャレンジ・ベクトルと共に、IDの下でセキュア・データベースに格納される。
【0057】
実際に使用されたトークン(fielded token)は、3-フェーズ・プロセスを使用して認証する。フェーズ1はトークン識別(「IDフェーズ」)であり、フェーズ2はベリファイア認証(「相互フェーズ」)であり、フェーズ3はトークン認証(「Authenフェーズ」)である。IDフェーズにおいて実行される処理を、図5Bにおいて図表を用いて示す。他の2つのフェーズは、以下で記す相違があるだけで、ほぼ同一である。
【0058】
トークンは、「req. to authen」信号をベリファイアに送信することによって、このプロセスを開始する。ベリファイアは、ノンスn2を生成し、これを、トークンに対する選択された1組のチャレンジ{ck}と共にトークンに送信する。尚、送信されるチャレンジは、通例、エンロールメントの間に使用されたものの部分集合であることは、注記してしかるべきである。トークンは、ノンスn1を生成し、それをベリファイアに送信する。これによって、敵対者が系統的攻撃(systematic attack)を実行する手段としてn2を組み立てることを防止する。
【0059】
トークンおよびベリファイアは、m=(n1XORn2)を計算し、mをSelParam関数への入力パラメータとして使用する。SelParamは、パラメータMod、S、μref、Rngref、およびマージンを、mからのビット・フィールドを使用して組み立てる。2つのLFSRシード・パラメータSは、mにおけるビット・フィールドから直接導き出すことができる。残りのパラメータは、テーブル参照処理を、これらを特定の範囲に制約する手段として使用して、導き出される。例えば、Modはマージンによって下限が定められ(lower bounded)、30未満の偶数に制約される。同様に、μrefおよびRngrefパラメータも、固定小数点の値の範囲に制約される。SelParamは、ベリファイア上において同様に実行される。
【0060】
一旦パラメータを選択したなら、ビットストリング処理プロセスを実行する。最初に、図5Aにおいて参考としてPUF({ck})を引用すると、チャレンジ{ck}を適用して集合{PN’}を生成する。次いで、AppParam手順を、パラメータS、μref、Rngref、およびModパラメータと共に使用して、以上で説明したPNDiff、TVCOMP、およびモジュラス処理を1組のPNに適用し、集合{modPNDc’i}を生成する。次に、トークン上で、以上で説明し図4における「(b)」によって図表を用いて示したマージニング・プロセスを使用して、ビットストリング生成(BitGenS)を実行する。BitGenSは、マージンの制約の下で強いビットのみで構成されるビットストリングbss’と、ヘルパー・データ・ストリングh’の双方を戻す。bss’およびh’の双方はベリファイアに送信される。
【0061】
ベリファイアは、それに格納されているトークンiデータ集合{PNの各々を、同じパラメータを使用して処理することによって、検索プロセスを実行する。しかしながら、図5BにおいてBitGenDで示される、DHD方式が代わりに使用される。BitGnDは、トークンのヘルパー・データh’とデータ集合毎に導き出されたヘルパー・データ(図示せず)とのANDをビット毎に取り、それを使用してトークンのビットストリングbss’をbss”に変更して、必要に応じてビットを排除し(図4における「(c)」の一番下を参照)、ベリファイアのStrogBS bssを生成する。最後に、ベリファイアはbss’をbss”と比較し、一致が見られた場合、IDフェーズは成功して完了する。
【0062】
AppParamおよびBitGenDはデータベースに格納されている各{PN毎に適用されなければならないので、これは大きなデータベースにとっては計算集約処理であるが、必要であれば、動作の独立性が与えられれば、検索処理を複数のCPUにおいて並列で実行することができる。
【0063】
以上で示したように、検索が終了するのは、一致が見られたとき、またはデータベースが使い果たされたときである。後者の場合、認証は、IDフェーズの終了時に、失敗して終わる。したがって、IDフェーズは、敵対者がサービス拒否攻撃においてベリファイアについてのトークンの認証情報を枯渇させるのを防止するゲートウェイとしても機能する。前者の場合、一致するベリファイア(matching verifier)のIDがフェーズ2のベリファイア認証(「相互フェーズ」)およびフェーズ3のトークン認証(「Authenフェーズ」)に渡される。相互フェーズでは、トークンとベリファイアの役割が逆転し、検索プロセスが省略されることを除いて、同じプロセスを実行する。また、IDフェーズにおいて使用されたチャレンジを再使用し、2つの新たなノンス(n3XORn4)を使用してSelParamだけを実行することも考えられる。Authenフェーズは、トークンが再度ベリファイアに対して認証することが、IDフェーズと同様であるが、「トークン特定」の1組のチャレンジ{cx}を使用する。相互フェーズと同様、検索プロセスを省略する。また、セキュリティ要件が低いアプリケーション、例えば、RFIDおよびホーム自動化アプリケーションでは、Authenフェーズを省略できることも考えられる。
【0064】
尚、Mod、S、μref、Rngref、マージンによって与えられるパラメータ空間の多様性を仮定すると、プロトコルの実行毎に、送信される情報bss’およびh’は高い確率で異なるので、トークンのプライバシーはIDフェーズでは保護されることを注記しておく。この多様性は、先に論じたように、パス-選択-マスクの使用によって、指数的に増大する。更に、トークン認証フェーズにおいて異なるトークンによって使用されるチャレンジに重複(overlap)を作ることによって、このフェーズでも同様に追跡が妨げられる。
【0065】
尚、HELPはエラー回避方式を使用し、したがって、以前に提案した逆ファジイ抽出方式、例えば、トークン上におけるエラー補正に伴う計算負担を低減するための動機付け因子は、HELPには存在しないことは注記してしかるべきである。その結果、HELPでは、認証方式の複数のフェーズにおいて提案したように、効率的なヘルパー・データ方式をいずれの方向にも実現することが可能である。
【0066】
Mod、S、μref、Rngref、マージンは、集合的に、1組の測定されたPNから全く異なるビットストリングを作成するために、限度内で変化することができるパラメータを表す。提案した認証方式のこの特徴は、ベリファイア上に多ビットPNを格納することに伴うオーバーヘッド増大を、レスポンス・ビットストリングの代替として、相殺する。しかしながら、この方式は、生成されたStrongBS間の高い統計的品質に大きく依存する。この章では、チップ内ハミング距離(「HDintra」)、チップ間ハミング距離(「HDinter」)、およびNIST統計検査ツールを含む標準的なメトリックを、それぞれ、ビットストリングの再現性、一意性、およびランダム性の尺度として使用して、StrogBSの統計的品質を調査する。
【0067】
本発明の一実施形態によれば、このプロトコルは、sbox-mixedcolと呼ばれるAESデータ・パス・コンポーネントをエントロピのソースとして使用して、高度暗号化規格(「AES」)アルゴリズムのハードウェア実装において提供される。具体的には、sbox-mixedcolは、SBOXの4つのコピーおよびMIXEDCOLの1つのコピーを含む32ビット・コラムAESの機能ユニットである。
【0068】
データは、Xilinx Zynq7020FPGAの45個のコピー上において、sbox-mixedcol機能ユニットから収集されるが、任意の数のコピーおよびASICのような任意のハードウェアも考えられる。sbox-mixedcolの実装には、Xilinx Zynq7020FPGA上において約3000個のLUTを必要とし、約8百万本のパスが得られる(provide)。しかしながら、約600個のLUTを所有する1つのAES SBOXコンポーネントから成る、もっと軽量の機能ユニットを使用して、全体的な実装サイズ(HELP+機能ユニット)を約6000個のLUTから3000個未満のLUTに削減したプロトコルも実証されている。
【0069】
具体的には、16のTVコーナーの各々において45個のチップから、1組で4096個のPNを収集する。ベリファイア・データベースに格納されるエンロールメント・データは、25°C、1.00V(通常条件)で収集し、一方再生データは、部品に対する拡張工業グレード(extended industrial-grade)の温度-電圧仕様限度、-40°C、0°C、25°C、85°C、100°C、ならびに電圧0.95V、1.00V、および1.05Vの全ての組み合わせで収集する。約600個の上昇および600個の下降2-ベクトル検査シーケンスから、パス-選択-マスクを使用して、ノイズが少なく、チップ内ばらつきが大きい1組のパスを選択する。
【0070】
検査データは、1組約1200個のチャレンジを適用することによって、上昇遷移がある2048本のパスおよび下降遷移のある2048本のパスを検査することによって生成する。2048個の上昇エッジPNおよび2048個の下降エッジPNのLFSR選択対(LFSR-selected pairing)を使用して、PNDを作成する。2048個の上昇エッジPNの各々を、2048個の下降エッジPNの内いずれかと対を形成し、4,194,304通りの可能な組み合わせを発生する(yield)ことができる。しかしながら、以下の結果は、これらの対の組み合わせの内256個の部分集合に絞った(directed)ものである。
【0071】
エントロピを改善するために、先に論じたような2ビット・オフセット方式をPNDcに適用する。ベリファイアは、格納されているエンロールメント・データを使用して、オフセットを計算し、それを使用して個々のPNDcを上方向に、適用したモジュラスによって与えられた範囲の0、1/8、1/4、または3/8だけシフトして、分布を0-1ラインの中心に近づける。
【0072】
刻みがサイズ2、ならびにマージンがサイズ2および3である、10および30間の1組のモジュラスについても調査する。図4における「(a)」によって示されるように、4つの弱い領域が要求され、2つの強いビット領域は少なくともサイズ1でなければならないので、モジュラスの最小値は4×マージン+2によって与えられる。例えば、サイズ3のマージンに対する最も小さいモジュラスは14であり、したがって10および12のモジュラスに対するヒストグラムにおけるエレメントは0になる。
【0073】
この分析から、これらのパラメータの20通りの組み合わせの内、17個が有用であることが明らかになった。使用することができない組み合わせは、マージン2に対する10のモジュラス、ならびにマージン3に対する14および16のモジュラスだけである。以上で示したように、ビットストリングのサイズは、これらのマージンおよびモジュラスの組み合わせには小さすぎる。
【0074】
また、この分析は、μrefおよびRngrefパラメータによって与えられたスケール係数の組み合わせの内2つについても調査し(式(1)および(2)参照)、具体的には、45個のチップの個々の分布から導かれた平均および最大推奨値について調査した。μrefおよびRngrefは、これらの平均値および最大値の間の10個の異なる値に独立して設定できることが、控えめに推定される。
【0075】
構成パラメータにこれらの境界を仮定すると、同じ1組のパス(PN)を使用して、合計で4,194,304×17×10×10≒70億通りの異なるビットストリングを生成することができる。先に論じたように、ベリファイアはパス-選択-マスクを2ベクトル・シーケンスの各々にも適用し、これによって可能なビットストリングの数が指数的に増大する。
【0076】
チップ間ハミング距離は、2つの方法、即ち、実際(Actual)および真(True)で報告される。この章では、先に説明したDHD方法の適用後に生成されたStrongBBを使用して、HDinterを計算する。
【0077】
以下のようにヘルパー・データ・ビットストリングの対のANDを取ることによって、1組のStrogBSを作成する。最初に、エンロールメントmodPNDcを使用して、45個のチップの各々に対して、1組で45通りのヘルパー・データ・ビットストリングを作成する。第2に、これら45個のチップの各再生コーナーの下で収集されたmodPNDcを使用して、ヘルパー・データを計算する。チップ毎に、エンロールメント・ヘルパー・データ・ビットストリングと、対応する再生ヘルパー・データ・ビットストリングとのANDを取る。
45×15個のANDを取ったデュアル・ヘルパー・データ・ビットストリングを使用して、図4の「(b)」および「(c)」に示した方法を使用して、対応する1組のStrongBSを作成する。尚、DHD方法は可変サイズのビットストリングを作成することは注記してしかるべきである。HDinterA分析におけるチップの1つによって生成された最も小さいビットストリングを使用する。最も小さいビットストリングのサイズについて以下に分析し説明する(discuss)。
【0078】
以下の式を使用して、HDinterAを計算する。
【数2】
【0079】
BおよびNCは、それぞれ、「チップ数」(45)、再生TVコーナーの数」、「ビット数」(最も小さいビットストリングのサイズ)、および「チップの組み合わせの数」(45×44/2=990)を表す。式(3)は、単に、チップStrogBSの可能な対の各々の間におけるビット毎の距離の全てを合計し、次いで試験されたビットの総数で除算することによって、この総和をパーセンテージに変換する。256個のシードの各々についてHDinterAをこのように計算し、平均を取る。
【0080】
μrefおよびRngrefに対する平均および最大スケール係数を使用したときの、モジュラスおよびマージンの組み合わせの各々について、HDinterA図6Aおよび図6Bに示す。棒グラフの高さは全て、理想である50%に非常に近い。素晴らしい結果であるが、チップ間HDを計算するこの手法は、従前からの手法とは異なる。何故なら、ビットストリングにおける対応する位置が異なるmodPNDcから生成されるからである。従前からの手法を使用した結果、即ち、modPNDcの位置がビットストリングにおいて保存される場所について、以下で論ずる。
【0081】
先に引用したStrogBSは、NIST統計検査一式(suite)への入力として使用される。平均スケーリングおよび256個のLFSRシード対の内1つだけを使用した結果を、2および3のマージンについて、それぞれ、図7Aおよび図7Bに示す(他の構成パラメータについての結果は、非常に似ている)。NIST検査の判断基準では、45個のチップの内少なくとも42個が検査を通った場合、検査カテゴリを合格に分類する。図は、全ての棒グラフが42の閾値ラインの上にあり、したがって、全ての検査カテゴリが通ったことを示す。NIST検査1、2、および3に対する高さ0の棒グラフは、これらの検査に対するNIST要件に満たないサイズのビットストリングを生成したモジュラスを識別する。調査したパラメータの全ての組み合わせから生成されたビットストリングにNIST検査を適用したときの合格率は、約98.8%である。
【0082】
図8Aおよび図8Bは、各々、本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの、真のチップ間ハミング距離の結果のグラフを示す。平均スケール係数および最大スケール係数を使用したときのエントロピの結果を図9Aおよび図9Bに示す。図10Aおよび図10Bは、各々、本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの失敗結果の確率のグラフを示す。本発明にしたがって、平均スケール係数および最大スケール係数を使用したときの、最も小さいビットストリング・サイズの結果を、図11Aおよび図11Bに示す。
【0083】
HDinterAと同様、HDinterTもビットストリングの990通りの対(pairing)およびLFSRシードの256通りの異なる対(pair)に渡る平均パーセントとして計算する。しかしながら、長さ2048の最大長ビットストリングを使用し、ビットストリングの対(pairing)毎に、双方のビットストリングにおいて強いと分類されたビットだけを使用して、ハミング距離を計算する。平均スケール係数の下では、HDinterTは30%から50%まで変動し、図8Aによって示されるように、30.2%がマージン3およびモジュラス30に対する最小値である。最大スケーリングでは、HDinterTの値の殆どが、40%および50%の間にあり、図8Bによって示されるように、最小値は38.7%である。これらの結果も非常に優れており、この範囲のモジュラスでは2ビットのオフセットを有効に使用できることを示す。
【0084】
同様に、長さ2048のエンロールメントで生成された各ビットストリングからの強いビット、および以下の式を使用して、エントロピを計算する。
【数3】
【0085】
「1」の頻度pは、45個のチップの内ビットが強いと識別されたチップだけを使用して、各ビット位置における「1」の端数として計算する。エントロピ値は、約1240から1900以上までの範囲にわたって変動する。この分析では理想的な値は2048であるので、これらの結果は、各ビットがエントロピの0.60および0.93ビットの間で寄与することを示す。
【0086】
失敗の確率は、10-xからの指数xとして報告され、-6の値は百万回に1回の公算(chance)を示す。HDintraは、DHD方式の下でチップ毎のエンロールメントStrogBSと15個の再生StrongBSの各々との対をなし、次いで15通りのDHD-生成されたビットストリングの全ての組み合わせにわたって相違(difference)(ビット反転)を数えることによって計算する。全てのチップについてのビット反転の数を合計し、調査するビットの総数で除算する。次いで、このプロセスを1組で256個のLFSRシード対全てに使用して、平均HDintraを計算し、次いで、失敗の確率を表す指数に変換する。この結果は、失敗の確率が10-2および10-4の間で変化し、最も大きい(最悪)の値は10-2.4であることを示す。したがって、いずれの認証に対しても、最悪の環境条件の下でトークンとベリファイアとの間において異なるビットは、1%未満である。
【0087】
最小のStrongBBのサイズを図11Aおよび図11Bに示す。事実上の軽量セキュリティ規格を満たすために少なくとも80ビットが必要とされるという条件を使用して、この判断基準を満たすことができないパラメータの組み合わせは、先に記したものだけ、即ち、2のマージンに対する10のモジュラス、ならびに3のマージンに対する14および16のモジュラスだけである。
【0088】
図12は、本プロトコルのIDフェーズおよび相互フェーズに関連するリソース利用およびランタイム・オーバーヘッドを示す。図12に示す表は、認証プロトコルにおいてリソースが使用される順にリソースを列挙し、「-」は、既に列挙されたリソースの繰り返し使用を示す。一番下にある合計は、エリア・オーバーヘッドが6038個のLUTおよび1724個のFFであり、一方ランタイムは約1.25秒であることを示す。1つのAES SBOXコンポーネントのみを使用する代りの軽量実施態様では、2909個のLUTおよび952個のFFのエリア・オーバーヘッド、ならびに約2.2秒のランタイムが発生する(yield)。
【0089】
また、HELPの実装には、18ビット乗算器と、サイズが7.5KバイトのオンチップBRAMメモリとを必要とする。実装に使用されるXilinxIPブロックは、Zynq7020FPGAのプロセッサとプログラマブル・ロジック・コンポーネントとの間で通信を実現するために、MMCMと、デュアル・チャネル(64ビット)AXI-GPIOを含む。8-コアの3.4GHz、Inteli7デスクトップ・コンピュータをベリファイアとして使用して、ランタイムを測定する。1.25秒の認証時間は、トークンとベリファイアとの間のネットワーク送信を含む。ベリファイア上で実行される網羅的な検索は、データベースにおけるエントリ毎に約300マイクロ秒を要する。報告されたランタイムは、エントリが1つだけのデータベースを使用する。したがって、比較的少数のトークン(10K以下)を組み込むアプリケーションでは、平均して約1.5秒の検索時間を必要とし、約2.75秒の総認証時間を必要とする。
【0090】
これより、モデル構築に対する耐性(resistance)、およびCRP空間のサイズに関係するHELPのセキュリティ・プロパティについて論ずる。レスポンス空間とは、各トークンが、前述の6つのユーザ定義パラメータを使用して生成することができるビットストリングの数を指す。セキュリティ分析は、エンロールメントの間に収集されたトークンのタイミング情報をベリファイアが安全に格納することを仮定しており、必要であればそれを暗号化することも仮定する。
【0091】
既に述べたように、チャレンジ空間のサイズは、2×(3-2)個の2ベクトル・シーケンスであり、レスポンス・ビットストリングの数は、パス-選択-マスクによって導入される多様性を除いて、約70億である。本プロトコルで使用する(n1XORn2)演算は、これらの構成パラメータに対する直接制御を許さない。パス-選択-マスクは、ビットストリング生成プロセスにおいて使用する1組のPNを変化させることによって、可能なレスポンス・ビットストリングの数を指数的に増大させる。HELPおよび本プロトコルのこれらの特性は、一体となって、モデル構築攻撃に対して著しい回復力を付加する。
【0092】
2つの追加の要因が、更にHELPのモデル構築に対する耐性を高める。第1の要因を「分布効果」(distribution effect)と呼ぶ。パス-選択-マスクによって選択されたPNは、PND分布の特性を変化させ、次いで、TVCOMPプロセスによって各PNDがどのように変換されるかに影響を及ぼす(TVCOMPプロセスについては、先に式(1)および式(2)を参照して説明した。具体的には、式1は、測定されたPND分布のμtokenおよびRngtokenを使用して、式(2)によって示される逆変換を適用する前に、PNDを標準化する。最初の変換により、最終的なPNDc値が、PND分布の他のコンポーネントに依存することになる。したがって、「PUFを破壊する」(break the PUF)メカニズムとして相対的パス遅延を学習するように設計された機械学習技法は、この「分布効果」を考慮に入れる必要がある。
【0093】
HELPの物理モデルが、アービタPUFのために開発されたモデルよりも複雑になると、機械学習(ML)アルゴリズムが十分な予測能力を達成するためには、たとえ可能であるとしても、遙かに多い訓練集合(training set)を必要とする可能性が高い。これは、様々な理由で正しい。第1に、敵対者は、ML攻撃の訓練フェーズにおいて使用されるベクトル対を生成するために、自動検査パターン生成(ATPG)を実行する必要がある。これは一時的なコストであるが、ATPGは長いランタイムを必要とし、一般に、ハザードがなくロバストにパスを検査するベクトル対を発見することに失敗する。このベクトル対の発見には、訓練フェーズの間にどのパスが実際に検査されているかについての不確実性を排除する必要がある。第2に、あるレベルの不確実性は常に残る。何故なら、全てのパスが、ハザードがなくロバストに検査可能ではないからである。具体的には、パスが再収束しほぼ等しい基準遅延(nominal delay)を有する場合にタイミングを支配するパスは、チップ毎に異なる。第3に、アービタPUFに対して有効であった、確率的に大体正しい(「PAC」:Probably Approximately Correct)のようなMLアルゴリズムが成功を保証するのは、モデルのサイズが多項式である(polynomial in size)ときだけである。
【0094】
以上で説明した実施形態は、あらゆる観点において、限定ではなく例示に過ぎないと解釈されるべきであり、本発明の範囲は以上の説明には限定されない。それでもなお、当業者には、本発明の範囲(scope)および本発明の範囲(range)内に該当し得る変更、交換、適応、ならびにその他の修正も認めることができよう。
図1
図2
図3
図4
図5A
図5B
図6A
図6B
図7A
図7B
図8A
図8B
図9A
図9B
図10A
図10B
図11A
図11B
図12