(57)【特許請求の範囲】
【請求項１】
暗号化・復号関数を構成する論理回路を利用して、認証に必要な処理を実行する暗号化・復号処理部と、
外部からの選択信号に応じて、前記論理回路の複数の中間ノードからの信号のうち、特定の本数分の信号を選択する選択器と、
前記選択器により選択された前記特定の本数分の信号により発生するグリッジを検出する機能を有するとともに、前記選択器に対して前記外部信号を与えることで前記特定の本数分の信号を切り替え選択し、切り替え選択した前記特定の本数分の信号に応じて検出した前記グリッジに基づいて、物理的特性によってデバイス識別子を生成する機能と、物理乱数を発生する機能の両機能を実現する信号処理部と
を備える統合セキュリティ装置。
【請求項２】
請求項１に記載の統合セキュリティ装置において、
前記暗号化・復号関数は、副関数の繰り返し処理で構成され、
前記信号処理部は、前記選択器に対して前記外部信号を与えることで、前記繰り返し処理により更新される信号の中から前記特定の本数分の信号を選択することで、前記デバイス識別を生成する機能に必要な入力情報を取得する
統合セキュリティ装置。
【請求項３】
請求項１または２に記載の統合セキュリティ装置において、
前記信号処理部により生成された前記デバイス識別子により認証に必要な鍵を保護し、発生した前記物理乱数により認証に必要なチャレンジデータを生成する鍵生成部をさらに備え、
前記暗号化・復号処理部は、前記鍵生成部から前記鍵および前記チャレンジデータを取得し、認証に必要な暗号化・復号処理を行うことで認証プロトコルを処理する
統合セキュリティ装置。
【請求項４】
請求項１から３のいずれか１項に記載の統合セキュリティ装置において、
前記暗号化・復号処理部は、前記暗号化・復号関数を構成するある１つの副関数として、Ｎ分割（Ｎは、２以上の整数）された単位で処理を実行する分割副関数を有し、
前記選択器は、前記外部信号に応じて、前記分割副関数のｎ分割目（ｎは、１以上Ｎ−１以下の整数）の出力をｎ＋１分割目の入力にフィードバックする切り替え回路を有し、
前記信号処理部は、前記物理乱数を発生する機能を実現する際には、前記フィードバックする切り替え回路が形成されるように前記外部信号を出力し、前記物理的特性によってデバイス識別子を生成する機能を実現する際には、前記フィードバックする切り替え回路が形成されないように前記外部信号を出力する
統合セキュリティ装置。
【請求項５】
請求項１から４のいずれか１項に記載の統合セキュリティ装置において、
前記信号処理部は、前記選択器を介して、所定のビット遷移確率を有する信号を所定回数繰り返して読み込んだ際の遷移状態に基づいて、前記物理乱数を発生する処理を行う
統合セキュリティ装置。
【請求項６】
請求項１から５のいずれか１項に記載の統合セキュリティ装置において、
前記暗号化・復号関数は、少なくとも１段目の論理回路を構成する第１の副関数、および２段目の論理回路を構成する第２の副関数を含み、複数の論理段数により構成されており、
前記信号処理部は、前記物理的特性によってデバイス識別子を生成する機能を実現する際には、前記第１の副関数からの出力信号を選択するように前記選択器に対して前記外部信号を与え、前記物理乱数を発生する機能を実現する際には、前記第２の副関数からの出力信号を選択するように前記選択器に対して前記外部信号を与える
統合セキュリティ装置。
【請求項７】
暗号化・復号関数を構成する論理回路を利用して、認証に必要な処理を実行する暗号化・復号処理ステップと、
外部からの選択信号に応じて選択器を切り替えることで、前記論理回路の複数の中間ノードからの信号のうち、特定の本数分の信号を選択する選択ステップと、
前記選択ステップにより選択された前記特定の本数分の信号により発生するグリッジを検出する機能を実行するとともに、前記選択器に対して前記外部信号を与えることで前記特定の本数分の信号を切り替え選択し、切り替え選択した前記特定の本数分の信号に応じて検出した前記グリッジに基づいて、物理的特性によってデバイス識別子を生成する機能と、物理乱数を発生する機能の両機能を実行する信号処理ステップと
を備える統合セキュリティ装置に用いられる信号処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証処理や暗号化処理などのセキュリティ機能を実行する論理回路に関するものであり、暗号処理で用いる秘密情報あるいは装置を認証するために必要なチップ固有のＩＤ生成、物理乱数、および暗号化・復号機能を小規模な論理回路にて提供するための統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法に関するものである。
【背景技術】
【０００２】
近年、携帯電話に代表される組み込み機器のネットワーク化に伴い、組み込み機器で扱うデータの秘匿や完全性の保持、および組み込み機器そのものを認証するために、組み込み機器が情報セキュリティに関わる処理を行う必要性が高まっている。このような情報セキュリティに関わる処理は、暗号化アルゴリズムあるいは認証アルゴリズムによって実現される。【０００３】
ここで、２つのＬＳＩが認証を行い、接続された機器が正当な機器であることを確かめ合うシステムを考える。この具体例としては、携帯電話本体に搭載されたＬＳＩが、そのバッテリに搭載されたＬＳＩを認証し、接続を許されたバッテリであることを確かめる、といったケースが挙げられる。【０００４】
このような機能は、一般に、次の認証プロトコルで実現される。
（１）あらかじめ、携帯電話本体に搭載されたＬＳＩ、およびバッテリに搭載されたＬＳＩに、それぞれ秘密情報Ｋを格納する。
（２）認証時、携帯電話本体は、乱数Ｃをバッテリ側に送る。同時に、暗号化関数Ｅｎｃ（Ｃ、Ｋ）＝Ｒを実行し、Ｒｍとして保持する。
（３）バッテリ側は、送られてきた乱数Ｃに対して本体側と同様に、暗号化関数Ｅｎｃ（Ｃ、Ｋ）＝Ｒを実行し、実行結果をＲｓとして本体側に送信する。
（４）本体側は、バッテリ側から受信したＲｓと自身が計算したＲｍとが等しくなるか否かをチェックし、等しくなれば認証をＯＫとし、異なっていれば認証をＮＧとする。【０００５】
このプロトコルでは、携帯電話本体、バッテリが、それぞれ同じ秘密情報Ｋを持っていれば、認証をパスすることできる点がポイントとなる。【０００６】
このプロトコルを実行する上で大前提となるのは、各機器が秘密情報Ｋを「安全に」保持していることである。この「安全に」の意味は、その機器を正当に利用可能な者以外が、秘密情報の読み取りあるいは改竄が困難であることを指す。【０００７】
秘密情報を安全に保持する方法として、ＰＵＦ（Ｐｈｙｓｉｃａｌ  Ｕｎｃｌｏｎａｂｌｅ  Ｆｕｎｃｔｉｏｎ）と呼ばれる技術がある。ＰＵＦの大きな特徴は、秘密情報Ｋを機器内に不揮発的なデジタルデータとして保持しない点にある。そして、このようなＰＵＦの実施形態は、いくつか存在する（例えば、特許文献１、２参照）。【０００８】
ここで、上述した（１）から（４）で構成されるプロトコルを、より細かい機能に分けた場合、少なくとも、以下の３つの機能が必要になることがわかる。
＜機能１＞秘密情報Ｋを安全に機器内でそれぞれ保持する機能。
＜機能２＞乱数Ｃを生成する機能。
＜機能３＞暗号化関数Ｅｎｃを処理する機能。【０００９】
＜機能１＞は、上述したＰＵＦによって達成可能な機能である。また、＜機能２＞は、再現性のない乱数生成が必要であるため、物理乱数生成器である必要がある。さらに、＜機能３＞は、ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ：米国標準暗号）などのブロック暗号アルゴリズムの処理が代表的な例として挙げられる。
【先行技術文献】
【特許文献】
【００１０】
【特許文献１】特表２００９−５２４９９８号公報
【特許文献２】特表２００９−５３３７４１号公報
【非特許文献】
【００１１】
【非特許文献１】Daisuke Suzuki and Koichi Shimizu. The glitch puf: a new delay-puf architecture exploiting glitch shapes. In Proceedings of the 12th international conference on Cryptographic hardware and embedded systems, CHES'10, pages 366-382, Berlin, Heidelberg, 2010. Springer-Verlag.
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、従来技術には、以下のような課題がある。
上述した認証プロトコルを実現するためには、それぞれＰＵＦ回路、物理乱数発生回路、暗号化回路の３つの回路をＬＳＩにそれぞれ個別に実装し、制御回路やＣＰＵなどによって、それらの機能を統合するのが一般的である。【００１３】
この場合、３つの異なる回路を個別に実装する必要があるため、回路規模が大きく、異なる回路に対して、それぞれ個別のテストが必要であるという問題があった。【００１４】
本発明は、前記のような課題を解決するためになされたものであり、３つの異なる回路を同一の回路に統合し、回路規模を縮小し、かつテストを容易化することのできる統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法を得ることを目的とする。
【課題を解決するための手段】
【００１５】
本発明に係る統合セキュリティ装置は、暗号化・復号関数を構成する論理回路を利用して、認証に必要な処理を実行する暗号化・復号処理部と、外部からの選択信号に応じて、論理回路の複数の中間ノードからの信号のうち、特定の本数分の信号を選択する選択器と、選択器により選択された特定の本数分の信号により発生するグリッジを検出する機能を有するとともに、選択器に対して外部信号を与えることで特定の本数分の信号を切り替え選択し、切り替え選択した特定の本数分の信号に応じて検出したグリッジに基づいて、物理的特性によってデバイス識別子を生成する機能と、物理乱数を発生する機能の両機能を実現する信号処理部とを備えるものである。【００１６】
また、本発明に係る統合セキュリティ装置に用いられる信号処理方法は、暗号化・復号関数を構成する論理回路を利用して、認証に必要な処理を実行する暗号化・復号処理ステップと、外部からの選択信号に応じて選択器を切り替えることで、論理回路の複数の中間ノードからの信号のうち、特定の本数分の信号を選択する選択ステップと、選択ステップにより選択された特定の本数分の信号により発生するグリッジを検出する機能を実行するとともに、選択器に対して外部信号を与えることで特定の本数分の信号を切り替え選択し、切り替え選択した特定の本数分の信号に応じて検出したグリッジに基づいて、物理的特性によってデバイス識別子を生成する機能と、物理乱数を発生する機能の両機能を実行する信号処理ステップとを備えるものである。
【発明の効果】
【００１７】
本発明によれば、ＰＵＦとして動作する場合のランダムロジックと、物理乱数発生器として動作する場合のランダムロジックを、それぞれ暗号化関数の処理としてもともと実装されている回路を使用して実現することにより、３つの異なる回路を同一の回路に統合し、回路規模を縮小し、かつテストを容易化することのできる統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法を得ることができる。
【図面の簡単な説明】
【００１８】
【図１】本発明の実施の形態１に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【図２】本発明の実施の形態２に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【図３】本発明の実施の形態３に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【図４】本発明の実施の形態３における２元対象通信路のモデルである。
【図５】本発明の実施の形態４に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【図６】本発明の実施の形態５に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【図７】本発明の実施の形態５における図６に、Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒの機能を追加し、ＰＵＦを用いた鍵生成機能を付加した構成を示すブロック図である。
【図８】本発明の実施の形態５による認証機能を実現するためのハードウェアアーキテクチャである。
【図９】Ｇｌｉｔｃｈ  ＰＵＦの原理を説明するための論理回路の一例である。
【図１０】ＧＰＵＦ回路の構成図の一例である。
【発明を実施するための形態】
【００１９】
以下、本発明の統合セキュリティ装置および統合セキュリティ装置に用いられる信号処理方法の好適な実施の形態につき図面を用いて説明する。
【００２０】
まず、本発明の実施の形態を説明する前に、前提となる技術であるＦｕｚｚｙ  Ｅｘｔｒａｃｔｏｒと、Ｇｌｉｔｃｈ  ＰＵＦについて説明する。
【００２１】
＜Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒの説明＞
一般に、ＰＵＦの応答をそのまま暗号に使用する鍵として用いることは難しい。なぜならば、ＰＵＦの応答が毎回誤りを含まず、かつその応答が一様分布であることを保証することが難しいためである。そこで、通常は、Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒ（以下、ＦＥと称す）を用いて、鍵生成を行う。ＦＥの構成法は、いくつかのバージョンが存在するが、本願では、コードオフセットによる構成について説明する。
【００２２】
アルゴリズム１およびアルゴリズム２として、コードオフセットによるＦＥの処理を、それぞれ下表１、下表２にまとめて示す。
【００２３】
【表１】
0005863994.tif 000002
【表２】
0005863994.tif 000003
【００２４】
アルゴリズム１は、ＦＥにおける初期鍵に当たる鍵生成処理であり、アルゴリズム２は、初期鍵と同一のビット列を生成するための鍵再現処理である。
【００２５】
アルゴリズム１およびアルゴリズム２におけるＥｎｃｏｄｅC、ＤｅｃｏｄｅCは、それぞれ誤り訂正符号Ｃにおける符号化処理と訂正処理を表す。生成鍵と再現鍵の一致は、アルゴリズム１およびアルゴリズム２におけるＰＵＦ応答のハミング距離について、下式（１）で保証される。
【００２６】
【数１】
0005863994.tif 000004
【００２７】
また、ｋビットのＰＵＦ出力が持つチップ間での情報量をｋ’とすれば、下式（２）が適切なデザインパラメータとなる。
【００２８】
【数２】
0005863994.tif 000005
【００２９】
＜Ｇｌｉｔｃｈ  ＰＵＦの説明＞
Ｇｌｉｔｃｈ  ＰＵＦ（以下、ＧＰＵＦと称す）は、論理回路を構成する各ゲートの入出力信号間の遅延関係によって発生するグリッチと呼ばれる現象を利用したＰＵＦの一構成法である。
【００３０】
図９は、Ｇｌｉｔｃｈ  ＰＵＦの原理を説明するための論理回路の一例であり、ＡＮＤ回路９１およびＸＯＲ回路９２で構成されている場合を例示している。以下、この図９に示す簡単な論理回路で、その原理を説明する。図９のような、複数の入力信号に対して、ＡＮＤ回路９１やＸＯＲ回路９２などの論理演算を行う回路においては、一般に、各信号の遅延差によって、グリッチと呼ばれる信号の過渡遷移が発生する。
【００３１】
図９では、入力信号（ｘ１、ｘ２、ｘ３）が全て０から１に変化する場合、ｘ１、ｘ２の信号変化の時間差によって、まずＸＯＲ回路９２の出力に凸状のグリッチが発生する。そして、次に、ｘ３の変化が、このグリッチよりも早くＡＮＤ回路９１に到達すれば、このグリッチは、ＡＮＤ回路９１の出力に伝播する（図９における左側に示した波形参照）。逆に、ｘ３の変化が、このグリッチよりも遅くＡＮＤ回路９１に到達すれば、このグリッチはＡＮＤ回路９１の出力には伝播しない（図９における右側に示した波形参照）。
【００３２】
さらに、もし、ｘ３の方が早い場合であっても、ＡＮＤ回路９１のトランジスタ特性に依存して、幅の短いグリッチが出力に伝播しないといったことが起こる。ただし、十分に幅の長いグリッチに限定すれば、そのグリッチ形状は、Ａｒｂｉｔｅｒ−ＰＵＦなどのＤｅｌａｙ−ＰＵＦと同様に、遅延の相対関係によって確定し、その形状は、動作環境が変化しても維持されることが期待できる。
【００３３】
ＧＰＵＦの構成法は、非特許文献１で示される。ここで、アルゴリズム３およびアルゴリズム４として、ＧＰＵＦの動作を擬似コード化した記述を、下表３、下表４として示す。
【００３４】
【表３】
0005863994.tif 000006
【表４】
0005863994.tif 000007
【００３５】
アルゴリズム３は、鍵生成処理時におけるＧＰＵＦの動作を表す。鍵生成処理時には、ＰＵＦ応答のエラーレートを下げるために、同一の入力状態遷移に対してエッジの偶奇判定を複数回行い、その出力が安定的か否かを検査する処理を行う。具体的には、繰り返し回数ｃｎｔreで規定される回数分、繰り返し処理を行う。
【００３６】
その後、出力ビット毎に安定性判定閾値ｔｈerrを基準として、ビットの安定性に関する検査を行い、基準を満たさないビットは、そのビットに対応する補助データＳmaskのビット値を０とすることで、鍵生成時および鍵再現時に０として扱う処理を行う。
【００３７】
これに対して、アルゴリズム４に示す鍵再現処理時におけるＧｌｉｔｃｈ  ＰＵＦの動作では、繰り返し処理は、生成時と同様に実施されるが、最終的な応答は、多数決判定とＳmaskによるマスク処理で決める。
【００３８】
図１０は、ＧＰＵＦ回路の構成図の一例である。図１０中の“Ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”１０１は、アルゴリズム３、４におけるｘ’i、ｘiを格納するレジスタである。また、図１０中の“Ｒａｎｄｏｍ  ｌｏｇｉｃ  ｆ”１０２は、アルゴリズム３、４におけるランダムロジックｆを処理する組み合わせ回路である。
【００３９】
また、図１０中の“Ｇｌｉｔｃｈ  ｃｏｕｎｔ  ｒｅｇｉｓｔｅｒ”１０３は、立ち上がりエッジの偶奇数を判定する信号をクロックとするフリップ・フロップ（ＦＦ）である。このＦＦは、判定処理を行う直前に、図１０中の“ｃｌｅａｒ”信号によってリセットされる。
【００４０】
また、図１０中の“Ｏｕｔｐｕｔ  ｒｅｇｉｓｔｅｒ”１０４は、“Ｇｌｉｔｃｈ  ｃｏｕｎｔ  ｒｅｇｉｓｔｅｒ”１０３に格納された立ち上がりエッジの偶奇数の判定結果ｂｉを再格納するレジスタである。
【００４１】
さらに、図１０中の“Ｃｏｕｎｔｅｒ  ＆  Ｃｏｍｐａｒａｔｏｒ”１０５は、判定結果ｂｉに基づき、ビット毎にその０、１の出現回数を管理するレジスタ１０５ａを有し、出現関数に応じてＰＵＦ応答ｗiiおよび補助データｓmiiの計算を行う。
【００４２】
以下、理解を助けるために、具体的な例を挙げて図１０の動作を説明する。
図１０中の“Ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”１０１を８ｂｉｔのレジスタとし、０ｘ００を保持した状態から０ｘ５５に変化させるとする。この動作がアルゴリズム３、４におけるｘ’i→ｘiに相当する。
【００４３】
このとき、組み合わせ回路である“Ｒａｎｄｏｍ  ｌｏｇｉｃ  ｆ”１０２の入力が変化するため、その出力も変化する。出力には“Ｒａｎｄｏｍ  ｌｏｇｉｃ  ｆ”１０２の回路遅延のばらつきによって、ＬＳＩ毎に、先の図９に示したような、パルスの有無が異なる挙動をする。
【００４４】
ここで、ｃｎｔre＝７、ｔｈerr＝０であるとすれば、０ｘ００→０ｘ５５の入力変化を７回実行する。アルゴリズム３では、７回の入力変化０ｘ００→０ｘ５５に応じて発生するパルスの偶奇がすべて一致した場合、ｓii←１となる。一方、１回でもパルスの偶奇が異なればｓii←０となる。また、７回とも偶数であれば、ｗii←０、奇数であればｗii←１となる。
【００４５】
上述した判定は、図１０の“Ｃｏｕｎｔｅｒ  ＆  Ｃｏｍｐａｒａｔｏｒ”１０５で処理される。例えば、アルゴリズム３においては、７回とも１であれば、“Ｃｏｕｎｔｅｒ  ＆  Ｃｏｍｐａｒａｔｏｒ”１０５の３ビットのカウンタには、１、１、１が格納される。よって、そのビット毎のＡＮＤ結果は、１となり、ｓii←１となる。
【００４６】
また、７回とも０であれば、３ビットのカウンタには０、０、０が格納される。よってそのＮＡＮＤ結果は、１となり、ｓii←１となる。１回でも偶奇が異なれば、３ビットのレジスタはすべて同じ値とならないため、ｓii←０となる。
【００４７】
また、アルゴリズム４においては、７回の同じ入力変化に対応する応答が、４回以上１であればｗii←１となり、４回以上０であればｗii←０となる。いずれも、カウンタのＭＳＢを出力することで、判定機能を実現できる。
【００４８】
以上より、アルゴリズム３では、７回とも応答が一致する安定した出力を返す入力変化であればｓii←１となり、そうでなれければｓii←０となる。また、アルゴリズム４では、アルゴリズム３で安定した応答を返すと判定された入力変化に対して、その応答に対して多数決判定を行い、応答を決定する。
【００４９】
ＧＰＵＦの応答の安定性、すなわち、応答ビットの誤り確率は、“Ｒａｎｄｏｍ  ｌｏｇｉｃ  ｆ”１０２の回路構成に依存する。このビット誤り率は、論理段数が深くなるほど上昇する傾向がある。例えば、ある論理段数で１％の誤り確率となるが、論理段数が増加すれば誤り確率が１０％になるといった依存性がある。
【００５０】
前提となる技術であるＦｕｚｚｙ  Ｅｘｔｒａｃｔｏｒと、Ｇｌｉｔｃｈ  ＰＵＦに関する以上の説明を踏まえた上で、以下、本発明の実施の形態について図面を参照しながら説明する。
【００５１】
実施の形態１．
図１は、本発明の実施の形態１に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。暗号化・復号器１１は、通常の暗号化・復号処理を行う回路ブロックである。そして、暗号化・復号器１１を構成する論理回路の複数の中間ノードの信号が、回路ブロックの外部へ出力される。
【００５２】
選択器１２は、暗号化・復号器１１から出力された複数の中間ノードの信号の中から、特定の本数分の信号を選択する。さらに、グリッチ検出器１３は、選択器１２で選定された信号に対してグリッチ検出を行い、検出結果を出力する。
【００５３】
なお、暗号化・復号器１１に入力されるパス変更信号は、暗号化・復号器１１で処理されるデータが通過する回路を切り替えるための信号である。また、選択器１２に入力される中間ノード選択信号の値によって、選択器１２によって選択される中間ノードが切り替わる。
【００５４】
このように、中間ノード選択信号を用いることで、ＰＵＦとして動作する際にグリッチ検出を行う中間ノードの信号と、物理乱数として動作する際にグリッチ検出を行う中間ノードの信号を切り替えることができ、同一のグリッジ検出器１３を用いることが可能となる。
【００５５】
実施の形態２．
本実施の形態２では、先の実施の形態１における図１の構成をより具体化した態様について説明する。図２は、本発明の実施の形態２に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。
【００５６】
カウンタ２１は、上述したように、グリッジ検出器１３によるグリッチ検出結果の安定性を判定する。このときの安定性の判断に当たっては、カウンタ２１の上位ビットが用いられる。例えば、多数決判定であれば、ＭＳＢにより、０、１の頻度を判定できる。また、本実施の形態２においては、カウンタ２１の下位ビットを乱数として用いる。
【００５７】
ＰＵＦの応答は、アルゴリズム１、２に従う鍵生成器２２の入力となる。第１の選択器２３は、外部からの鍵選択信号に応じて、鍵生成器２２の出力として複数読み込んだ信号の中から１つを選択し、暗号化・復号器１１へ出力する。このようにして、第１の選択器２３は、物理的特性によって生成されたデバイス識別子を、暗号化・復号器１１へ与えることができる。
【００５８】
一方、カウンタ２１の下位ビットの出力に相当する乱数出力は、第２の選択器２４に読み込まれる。そして、第２の選択器２４は、外部からの平文選択信号に応じて、外部からの平文／暗号文入力のいずれかを選択し、カウンタ２１から読み取った乱数出力とともに、暗号化・復号器１１へ出力する。
【００５９】
この結果、暗号化・復号器１１は、物理的特性によって生成されたデバイス識別子と乱数に基づいて、暗号化関数を処理することができる。
【００６０】
実施の形態３．
図３は、本発明の実施の形態３に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。まず、暗号化関数Ｅｎｃについて説明する。なお、ここでは、説明の簡易化のために、暗号化関数で用いる秘密情報Ｋを省略する。
【００６１】
一般的な暗号化関数は、副関数の繰り返しで構成される。例えば、図３の例では、副関数ｆ３２および副関数ｇ３３の繰り返し処理により暗号化関数Ｅｎｃの処理が定義される。すなわち、繰り返し回数をｎとすれば、図３中の“ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”３１に格納された平文Ｐに対して
Ｈ1＝ｇ（ｆ（Ｐ））；
の処理が行われ“ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”３１の値がＨ1に更新される。
【００６２】
同様に、
Ｈ2＝ｇ（ｆ（Ｈ1））；
の処理を行い、このような処理をｎ回繰り返した後に“ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”３１に格納される
Ｃ＝Ｈn＝ｇ（ｆ（Ｈn-1））；
を暗号文Ｃとして、暗号化関数の処理を終了する。
【００６３】
このとき、本実施の形態３では、前記の暗号化関数Ｅｎｃの処理を行う回路パスから、副関数ｆ３２および副関数ｇ３３の信号線を引き出し、各信号線を選択可能とするセレクタ３４を設けている。このとき、ＰＵＦの機能を動作させる場合には、副関数ｆ３２の出力を選択し、一方、物理乱数発生器の機能を動作させる場合には、副関数ｇ３３の信号線を選択する。
【００６４】
すなわち、論理段数が副関数ｆ３２のみで決まる信号線を、ＰＵＦのランダムロジックとして扱い、それよりも論理段数の多い、合成関数ｇ・ｆを、物理乱数発生器で用いるランダムロジックとして扱う。
【００６５】
図３がＰＵＦとして動作する場合は、暗号化処理において平文や中間値Ｈiを格納する“ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”３１が、先の図１０の“ｉｎｐｕｔ  ｒｅｇｉｓｔｅｒ”１０１と同じ機能を担う。また、図３の副関数ｆ３２が、先の図１０の“Ｒａｎｄｏｍ  ｌｏｇｉｃ  ｆ”１０２と同じ機能を担う。
【００６６】
それ以降では、図１０と図３の実施方法は、一致する。すなわち、図３における“ＰＵＦ／ＲＮＧ  ｌｏｇｉｃ”３５は、先の図１０に示した“Ｇｌｉｔｃｈ  ｃｏｕｎｔ  ｒｅｇｉｓｔｅｒ”１０３、“Ｏｕｔｐｕｔ  ｒｅｇｉｓｔｅｒ”１０４、および“Ｃｏｕｎｔｅｒ  ＆  Ｃｏｍｐａｒａｔｏｒ”１０５で構成されることとなる。
【００６７】
アルゴリズム３および４における各入力Ｘ＝（ｘ1、ｘ2、・・・、ｘl）は、平文Ｐと鍵Ｋによって暗号化された暗号文Ｃ、あるいはその中間値Ｈiを、次の入力とすることで更新する。
【００６８】
図３における物理乱数発生器としての動作を、アルゴリズム５として、下表５に示す。
【００６９】
【表５】
0005863994.tif 000008
【００７０】
アルゴリズム５は、要約すれば、アルゴリズム３あるいはアルゴリズム４における入力信号の状態遷移を限定し、ＧＰＵＦの動作を行い、その後の応答としては、多数決判定ではなく、カウンタのＬＳＢを出力する処理を行っている。従って、アルゴリズム５は、アルゴリズム３およびアルゴリズム４の処理を行う回路に、出力信号を追加するだけで実現できる。
【００７１】
また、図４は、本発明の実施の形態３における２元対象通信路のモデルである。アルゴリズム５でのビット反転確率は、この図４の２元対象通信路をモデル（すなわち、０から１あるいは１から０に遷移する確率がｐ、０から０あるいは１から１に遷移する確率が１−ｐとして表されるモデル）とすれば、下式（３）で表される。
【００７２】
【数３】
0005863994.tif 000009
【００７３】
ｃｎｔreが大きい場合には、小さいｐでも上式（３）は０．５に収束する。例えば、ｃｎｔre＝２５５であれば、ｐ＝０．０３で上記計算結果は、０．４９９９９９９２９７６１９１となり、十分な乱数性を得ることができる。
【００７４】
図３のポイントは、ＰＵＦとして動作する場合のランダムロジックと、物理乱数発生器として動作する場合のランダムロジックを、それぞれ暗号化関数Ｅｎｃの処理でもともと実装する回路（副関数ｆ、ｇに相当）を使用して実現することであり、かつ、それぞれの論理段数の深さに応じて切り替えることにある。さらに、ＰＵＦの入力更新を暗号化関数でスケジューリングすることにある。
【００７５】
実施の形態４．
先の実施の形態３では、暗号化関数Ｅｎｃの副関数ｆおよび副関数ｇを、ＰＵＦおよび物理乱数発生器のランダムロジックとしてそのまま利用する構成であった。しかしながら、副関数ｆおよび副関数ｇの論理段数が少ない場合には、十分なビット誤り率が得られず、ＰＵＦとして機能しても、乱数性が不十分になる可能性がある。
【００７６】
そこで、本実施の形態４では、暗号化関数Ｅｎｃがもつ回路構成にわずかな回路を追加することで、適切な乱数性を得る動作を行うことを狙った構成について説明する。
【００７７】
図５は、本発明の実施の形態４に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。この図５の構成においては、暗号化関数Ｅｎｃの副関数ｆが、ある分割された単位で行う処理であることを想定する。例えば、ブロック暗号であれば、Ｓ−ｂｏｘなどの置換処理などがこれに当たる。
【００７８】
このとき、図５に示すように、ＡＮＤとＸＯＲゲートを用いてある副関数ｆ５２の出力を、異なる副関数ｆ５２の入力へフィードバックするパスを設ける。この場合、ＡＮＤゲートの入力信号を０とすれば、図５は、暗号化関数Ｅｎｃに必要な演算と等価となる。一方、ＡＮＤゲートの入力信号を１とすれば、図５は、物理乱数発生に必要な演算と等価となり、副関数ｆの２段分の論理段数を持つ回路パスが構成される。
【００７９】
これにより、もともとの暗号化関数Ｅｎｃが持つ論理段数が少ない場合であっても、本来の暗号化関数の機能を保ちながら、論理段数を増加させることが可能となる。
【００８０】
実施の形態５．
本実施の形態５では、先の実施の形態４をより具体化した構成について説明する。図６は、本発明の実施の形態５に係るＰＵＦの機能、乱数生成の機能、および暗号化機能を統合したセキュリティ装置のブロック図である。本実施の形態５においては、暗号化関数Ｅｎｃとして、米国標準暗号ＡＥＳを想定した構成を採用している。
【００８１】
図６中、左側の点線で囲まれた部分が、元々ＡＥＳの機能を実現するために必要な回路である“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１であり、一方、右側の１点鎖線で囲まれた部分が、ＰＵＦおよび乱数発生のために追加する回路である“Ａｄｄｉｔｉｏｎａｌ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＰＵＦ  ＆  ＲＮＧ”６２である。基本動作は、先の図２と同様であり、図６中の“ｃｈａｉｎ  ｌｏｇｉｃ”と表記される論理のＡＮＤゲート入力の０、１を切り替えることで、ＡＥＳおよびＰＵＦの動作と、乱数発生の機能を切り替えることができる構成となっている。
【００８２】
図７は、本発明の実施の形態５における図６の構成に対して、Ｆｕｚｚｙ  Ｅｘｔｒａｃｔｏｒの機能を追加し、ＰＵＦを用いた鍵生成機能を付加した構成を示すブロック図である。図７に示す構成により、認証プロトコルに必要な、以下の３つの機能がすべて実現される。
＜機能１＞秘密情報Ｋを安全に機器内でそれぞれ保持する。
＜機能２＞乱数Ｃを生成する。
＜機能３＞暗号化関数Ｅｎｃを処理する。
【００８３】
なお、この図７の動作は、アルゴリズム１、２に従う。
【００８４】
次に、本モジュールを用いた認証プロトコルの動作を説明する。
（動作１）アルゴリズム４に従い、本モジュールは、ＰＵＦとして動作を行い、“Ａｄｄｉｔｉｏｎａｌ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＰＵＦ  ＆  ＲＮＧ”６２は、ＰＵＦの応答Ｗを生成する。
（動作２）アルゴリズム２に従い、ＰＵＦの応答Ｗと補助データＳ、Ｓmaskから、“Ｅｎｃｏｄｅｒ／Ｄｅｃｏｄｅｒ”７１および“Ｈａｓｈ”７２は、鍵ＫPUFを生成し、本モジュールのＡＥＳ回路である“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１へロードされる。
【００８５】
（動作３）“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１は、非セキュア領域に格納されている認証鍵Ｋを鍵ＫPUFで暗号化したデータＤ＝Ｅｎｃ（Ｋ、ＫPUF）を暗号文として、本モジュールにロードし、Ｋ＝Ｄｅｃ（Ｄ、ＫPUF）で認証鍵Ｋに復号する。
（動作４）“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１は、非セキュア領域に格納されている認証鍵Ｋを鍵ＫPUFで暗号化したデータＤ＝Ｅｎｃ（Ｋ、ＫPUF）を暗号文として、本モジュールにロードし、Ｋ＝Ｄｅｃ（Ｄ、ＫPUF）で認証鍵Ｋに復号し、本モジュールに鍵としてロードする。
【００８６】
（動作５）“Ａｄｄｉｔｉｏｎａｌ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＰＵＦ  ＆  ＲＮＧ”６２は、本モジュールで乱数生成を行ない、生成した乱数Ｒを認証先へ送信するために外部出力する。
（動作６）“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１は、乱数Ｒに対して暗号化Ｃ＝Ｅｎｃ（Ｒ、Ｋ）を行う。
（動作７）“Ｂａｓｉｃ  ｍｏｄｕｌｅｓ  ｆｏｒ  ＡＥＳ”６１は、認証先から受信したデータＣ’とＣを比較し、一致すれば認証ＯＫ、不一致であれば認証ＮＧを判定する。
【００８７】
図８は、本発明の実施の形態１〜５による認証機能を実現するためのハードウェアアーキテクチャである。図８に示したように、本発明に係るセキュリティ装置８０１は、各実施の形態で説明したいずれかの統合セキュリティ装置を統合モジュール８０８として使用している。そして、この統合モジュール８０８は、ローカルバス８０７を介して、ＣＰＵ８０２、メモリ８０３、８０４、Ｉ／Ｏ８０５と接続されている。さらに、この統合モジュール８０８は、ＦＥＣ８０９を介してＨＦ８０１に接続されている。このような図８のハードウェア構成として、本発明に係る統合セキュリティ装置を具現化することができる。
【００８８】
なお、本発明は、上述した実施の形態１〜５に限定されるものではない。すなわち、実施段階では、その要旨を逸脱しない範囲で、構成要素を変形して実施できる。また、上述した実施の形態１〜５に開示されている複数の構成要素の適宜な組合せにより、種々の発明を形成できる。加えて、実施の形態１〜５に示される全構成要素から幾つかの構成要素を削除してもよい。さらに、異なる実施の形態に亘る構成要素を適宜組合せてもよい。
【図１】
0005863994.tif 000010
【図２】
0005863994.tif 000011
【図３】
0005863994.tif 000012
【図４】
0005863994.tif 000013
【図５】
0005863994.tif 000014
【図６】
0005863994.tif 000015
【図７】
0005863994.tif 000016
【図８】
0005863994.tif 000017
【図９】
0005863994.tif 000018
【図１０】
0005863994.tif 000019