(57)【要約】      （修正有）【課題】物理的チップ認証装置を電子装置ネットワークに活用し、周辺装置の乗っ取りによるネットワークへの攻撃を未然に防ぐ技術を提供すること。【解決手段】ネットワークを構成する電子装置を、周辺装置と、周辺装置の登録情報を管理する基幹サーバーの2種類に分け、基幹サーバーはソフトウェアによって中央管理するものとし、周辺装置には物理的チップ認証装置を搭載し、チップレベルで管理することによって、ネットワーク全体のセキュリティを効率的に向上させることを特徴としている。【選択図】図６３
2017028354.tif 000002
【特許請求の範囲】
【請求項１】
複数のネットワークユニットに分割され、前記ネットワークユニットが、一つの基幹サーバーと、前記基幹サーバーにのみ接続する複数の周辺装置から構成され、前記ネットワークユニット内において、前記基幹サーバーは、少なくとも一つのパスコードと、前記基幹サーバーと接続する個々の周辺装置に対応する少なくとも一つの登録コードからなる登録コードのリストを保持し、前記基幹サーバーは、ネットワークを介して前記パスコートを前記周辺装置の各々に送信し、前記周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、前記周辺装置内で、所定の方法で、入力コードに変換され、前記入力コードは、前記ワード線および前記ビット線に所定の方法で割り当てられる電子的信号のデータの集合体であり、前記チップ上に割り当てられるアドレスは、それぞれ異なる番号を割り当てられたワード線郡と、それぞれ異なる番号を割り当てられたビット線郡と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされるワード線およびビット線の一方の番号で定義され、前記アドレスの列番号は、前記ワード線および前記ビット線の他方の番号で定義され、前記チップ認証装置は、前記ビット線郡および前記ワード線郡が構成する素子領域に配置される認証素子から構成され、前記素子領域において、第一の行郡、および、第一の列郡が定義するアドレスに配置される前記認証素子からなる、第一の乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされるワード線及びビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記第一の乱数発生装置は、前記認証素子が電子的に出力する電子データの集合体として、第一の乱数コードを発生し、前記出力コードは、前記入力コードと前記第一の乱数コードとを、所定の方法で合成して出力するで電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する、ことを特徴とする電子装置のネットワーク。
【請求項２】
前記パスコードを２進法で展開した要素を、それぞれ第一の入力配列と第二の入力配列に分割し、前記第一の入力配列の各要素を前記第一の乱数発生装置の対応する行にそれぞれ割り当て、前記第二の入力配列の各要素を前記第一の乱数発生装置の対応する列にそれぞれ割り当て、前記第一の乱数発生装置の行数と列数の和は、前記第一の入力配列の要素数と前記第二の入力配列の要素数の和と、等しいか、あるいは、それ以上である、ことを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項３】
前記チップ認証装置は、第二の乱数発生装置を含み、前記第二の乱数発生装置は、前記チップ上に割り当てられる第二の行郡および第一の列郡が定義するアドレスに配置される認証素子から構成されることを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項４】
前記第二の乱数発生装置において、任意に選択された列番号に対応して、電子的に出力される認証素子のデータを、列方向に加算して２で割って得た余りと、前記第一の入力配列と前記第二の入力配列のそれぞれ対応する番号の要素を更に加算して２で割った余りを、前記列番号に応じて配列し、中間出力として出力するスクランブル装置を、更に含むことを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項５】
前記周辺装置は、更に、中間コード用バッファーモジュールを含み、前記中間コード用バッファーモジュールは、前記中間出力を、前記周辺装置の認証作業中に、一時的に、格納することを特徴とする請求項１記載の電子装置のネットワーク。
【請求項６】
前記周辺装置は、更に、第一のコード生成装置を含み、前記第一のコード生成装置は、前記第一の入力配列の要素と、前記第二の入力配列要素、もしくは、前記中間出力の要素と、前記第一の乱数コードの要素とを、選択されたビット線および選択されたワード線で指定されるアドレス毎に加算して２で割った余りを、前記アドレス毎に出力し、前記出力コードを生成することを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項７】
前記認証素子は、少なくとも二つの端子を有し、前記二つの端子の間に少なくとも一回以上パルス電圧を印加することにより、前記認証素子を確率的に破壊し、前記二つの端子の間に所定の読み出し電圧を入力し、前記二つの端子の間を流れる電流の絶対値が、第一の閾電流値より高いとき、前記第一の値を出力したとみなし、第二の閾電流値より低いとき、前記第二の値を出力したとみなし、前記第一の閾電流値は、前記第二の閾電流値より高く、前記電流値が第二の閾電流値より高く、第一の閾電流値より低い場合、第三の値を出力したとみなし、前記第一および前記第二の値を出力する認証素子から、前記チップ認証装置を構成することを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項８】
前記第一の値を出力する第一の状態に属する認証素子の割合が、前記第二の値を出力する第二の状態に属する認証素子の割合より、小さければ、一部あるいは全ての前記第二の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項９】
前記第一の状態に属する認証素子の割合が、前記第二の状態に属する認証素子の割合より、大きければ、一部あるいは全ての前記第一の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１０】
前記認証素子は、前記チップの製造工程によって一括して製造されるキャパシタであり、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、第一の端子は前記ワード線に接続し、第二の端子は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１１】
前記認証素子は、前記チップの製造工程によって一括して製造されるダイオード接合であり、前記ダイオード接合の一端は、前記ワード線に接続し、他方の端は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線に印加することによって、前記ダイオードを、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１２】
前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタであり、前記MOS型トランジスタは、少なくとも、第一の端子、第二の端子、第三の端子を有し、前記第一の端が前記ワード線に接続し、前記第二の端子が前記ビット線に接続し、前記第三の端子が接地され、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一の端子は、前記第一導電型半導体基板、もしくは、前記第一導電型ウェル上のゲート絶縁膜の表面上に存在し、前記パルス電圧を前記ワード線に印加することによって、前記ゲート絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１３】
前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタとキャパシタから構成され、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、前記第二の端子は接地され、前記MOS型トランジスタは、少なくとも、第三の端子、第四の端子、第五の端子を有し、前記第三の端が前記ワード線に接続し、前記第四の端子が前記ビット線に接続し、前記第五の端子が前記第一の端子に接続され、前記第四の端子と前記第五の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第三の端子は、前記第一導電型半導体基板上のゲート絶縁膜の表面上に存在し、前記ワード線と前記ビット線の間に前記MOSトランジスタをオン状態にする転送電圧を印加している間に、前記パルス電圧を前記ビット線に印加することによって、前記キャパシタの絶縁膜を、確率的に破壊し、前記転送電圧を印加している間に、前記読み出し電圧を、前記ビット線に印加することによって、前記ビッ線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１４】
前記認証素子は、前記チップの製造工程によって一括して製造される不揮発性メモリの制御トランジスタであり、前記選択トランジスタは、少なくとも第一の端子、第二の端子、第三の端子、を有し、前記第一の端子が前記ワード線に接続し、前記第二の端子が前記ビット線に接続し、前記第三の端子が接地され、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一導電型半導体基板、若しくは、前記第一導電型ウェル上には、トンネル膜、電荷蓄積層、層間導電層、制御ゲートが順に積層され、前記第一の端子は、前記制御ゲートに接続し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１５】
前記認証素子は、前記チップの製造工程によって一括して製造される、複数の不揮発性メモリの選択トランジスタを半導体基板上で直列したものであり、少なくとも、複数のゲート端子、および、一つのビット線端子を有し、前記ゲート端子は、それぞれ前記ワード線に接続され、前記ビット線端子は、前記ビット線に接続され、前記選択トランジスタは、前記半導体基板上に、トンネル膜、電荷蓄積層、層間導電層、制御ゲートが順に積層され、前記制御ゲート上に前記ゲート端子が存在し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１６】
前記認証素子は、前記チップの製造工程によって一括して製造されるヒューズ抵抗であり、前記ヒューズ抵抗は、抵抗材を第一の端子と第二の端子で挟んだものであり、第一の端子は前記ワード線に接続し、第二の端子は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記抵抗材を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１７】
前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域に挟まれた絶縁膜と、前記第一の導電体領域から、前記絶縁膜を貫通して前記第二の導電体領域に達する空間的な穴を開ける、開口部形成工程と、前記開口部に導電性物質を埋め込む、導電材埋め込み工程と、によって製造される導電体結線孔と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義するワード線及びビット線に接続し、前記導電体結線孔の長さの製造狙い値が、前記第一及び第二の導電体領域の間の距離に等しく、前記開口部形成工程および導電材埋め込み工程を経て製造された複数の導電体結線孔の長さが、確率的に、前記第一及び第二の導電体領域の間の距離より長く、あるいは、短く、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１８】
前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域を架橋する導電性細線と、前記第一及び第二の導電体領域に挟まれ、前記導電性細線を包む絶縁膜と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義するワード線及びビット線に接続し、前記導電性細線の製造工程、あるいは、前記導電性細線を包む絶縁膜の製造工程における、製造工程上のばらつきによって、前記導電性細線が確率的に断線し、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項７記載の電子装置のネットワーク。
【請求項１９】
前記周辺装置に接続する少なくとも一つの基幹サーバーは、前記周辺装置が任意の媒体から受信する入力信号をモニターし、前記周辺装置と該媒体のアクセスを管理することを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項２０】
前記基幹サーバーは、前記基幹サーバーに接続する周辺装置の内部メモリーを個々に読み出し、前記基幹サーバーに保存されているパスコードと比較し、一致するコードが含まれているかどうかを判定し、含まれていない場合、更に前記基幹サーバーに保存されている登録コードの中に一致するものがあるかどうか判定し、含まれていない場合、前記周辺装置を公正と認可し、前記検査工程を、前記基幹サーバーに接続する全ての周辺装置に対して行うことを特徴とする、請求項１記載の電子装置のネットワーク。
【請求項２１】
半導体製造工程で大量生産されるチップと、前記チップを製造する、第一のチップメーカーと、前記チップの表面のラベルにメーカー名が記載された、第二のチップメーカーと、前記チップを用いて製品を組み立てるチップユーザーと、から構成され、前記チップは、それぞれ固有のチップ認証装置を含み、前記第一のチップメーカーが公開する、第一の公開パスコードの入力に対応して、第一の出力コードを出力し、前記第二のチップメーカーが公開する、第二の公開パスコードの入力に対応して、第二の出力コードを出力し、前記チップ認証装置は、前記チップ上にレイアウトされる、ビット線郡およびワード線郡が構成する素子領域に配置される認証素子から構成され、前記素子領域において、前記ワード線及び前記ビット線が定義するアドレスに配置される前記認証素子からなる、物理的乱数発生装置を含み、前記認証素子は、前記半導体製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされるワード線及びビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記物理的乱数発生装置は、前記認証素子が、電子的入力に対応して電子的に出力する電子データの集合体として、乱数コードを発生し、前記第一の出力コードは、前記第一の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であり、前記第二の出力コードは、前記第二の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であり、前記第一のチップメーカーは、前記第一の公開パスコードと、前記第一の出力コードからなるリストを管理し、前記第二のチップメーカーは、前記第二の公開パスコードと、前記第二の出力コードからなるリストを管理し、前記チップユーザーは、前記第一の公開パスコードを、前記チップに入力し、出力される電子信号の集合を読み取り、読み取りコードとし、前記第一のチップメーカーに、前記読み取りコードを送信し、前記第一の出力コードと前記読み取りコードの比較を依頼し、前記第一の出力コードと前記読み取りコードが一致した場合、前記チップを偽造品と判定することを特徴とする、チップ認証装置の利用方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置間通信およびネットワークに用いる物理的チップ認証方式に関する。
【背景技術】
【０００２】
２１世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス（Internet of Things, IoT）は既存のどの市場にも属さず、IoTの更に先を行くインターネット・オブ・エブリシング（Internet of Everything, IoE）にいたっては社会基盤そのものを変革する可能性を秘めている。
【０００３】
技術的には、ネットに接続する最小単位（ノード）である半導体チップと半導体チップの間の通信技術として捕らえることができるが、その数が数兆個から数十兆個にまで上る（Trillion Nodes）点でこれまでのネットワーク技術と異なる。世界人口を70億人とすると、一人当たり数百から約千個程度のチップに囲まれている計算になる。これらのチップは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。すべての個人がこれらすべてを常時きめ細かく管理することは現実的に不可能である。また、訓練を受けた専門家が中央管理するにしても数兆個ものノードを同時に管理するための計算機リソースは地球上に存在しない。仮に将来開発されたとしても、誰が責任を持ってその管理システムを扱うべきかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人口知能に任せることも現状では良いとは言えないし、現実的でもない。
【０００４】
管理できないとしたら何が問題になるか？大容量のLiイオン電池を搭載した自動運転車がハッキングされたらどうなるかを考えると理解しやすい。遠隔操作された多数の自動運転車が攻撃対象（ショッピングセンター、大規模な地下駐車場、ターミナル駅、…）まで無人で移動する。大量のLiイオン電池が一箇所にあつまり、パワーシステムが乗っ取られている。パワー制御システムに何らかの破壊的誤動作を意図的に加え、Liイオン電池を大爆発させることが可能となるかもしれない。ある日突然ショッピングセンターの駐車場が大爆発を起こしたり、あるいは、列車運行制御システムを乗っ取り新幹線を正面衝突させたり、原子炉や航空管制システムを乗っ取られる危険と背中合わせになる。
【０００５】
このような重要施設のネットワークは通常のインターネットからは非常に強力なファイアウォールで隔離されている（或いは物理的に隔離されている）から大丈夫だと考えるのは早計である。現実にイランの核施設はStuxnetと呼ばれるマルウェアによる攻撃を受け、深刻な被害を被った。（たとえば、非特許文献１参照。）。
【非特許文献１】http://www.nikkei.com/article/DGXNASFK2602G_W2A221C1000000/
【０００６】
Stuxnetの感染経路は諸説あるが、もっとも有力なのはモバイル端末かUSBメモリだと言われている。Stuxnetは一度インターネットに解き放たれると何ヶ月もかけてターゲットのシステムに侵入するチャンスを伺う。途中強力なファイアウォールがあってもUSBメモリやモバイル端末に侵入してファイアウォール内で接続されるまで待つ。接続された後はバックゲートを開き、遠心分離器のPLC（programmable logic controller）を乗っ取り、遠隔操作を開始する。こうして、イランの核施設の１０００台もの遠心分離器が急激な加速と減速を繰り返し破壊された。物理的に孤立したシステム内ならStuxnet自身が遠心分離器を破壊させる。
【０００７】
イランの核施設で破壊された遠心分離器は通常のネットワークからは遮断されていたが、メンテナンスのため機器の製造装置メーカーが持ち込むモバイル端末と定期的に接続する必要があった。もし通常のネットワークとつながっていればこのような作業は必要ないが、遮断されているために返って必要な手順となる。また、Stuxnetはターゲット以外に感染しても潜んでいるだけで何もしない。したがって、ウィルス対策ソフトで検知することは難しい。
【０００８】
Stuxnetによる攻撃は、イランの核開発を遅らせイスラエルによるイランへの空爆を防ぐために行われたとも考えられている。一度手口が判明すれば対策は可能と思われるかも知れない。しかしながら、恐ろしいことはStuxnetのソースコードがハッカーによって盗まれ、既に流出していることである。２０１４年に入り、Stuxnetに良く似た性質を持つ新種のウィルスが報告されている。
【非特許文献１】http://www.nikkei.com/article/DGXMZO79858560Y4A111C1000000/
【０００９】
BadUSBと呼ばれるこのウィルスは、産業機器の制御プログラムであるPLCの代わりにUSB機器を制御するファームウェアを乗っ取る。USB機器は何かに接続して使用するものであり、そのための認証を内包している。この認証はファームウェアに含まれる。ファームウェアはUSB機器の制御チップに保存されておりチップを制御するためのプログラムである。BadUSBはこの認証を盗み、このUSB機器が接続しているものには何もしない。たとえば、パソコンには感染しないが、パソコンを操作するために接続しているマウスやキーボードを乗っ取ることができる。このようにして地球の裏側にいるハッカーが他人のコンピューターを遠隔操作することができる。このとき、コンピュータには感染していないので、コンピュータのウィルス対策ソフトはほとんど何も検知できない。
【００１０】
IoT/IoEでは通信の最小単位（ノード）は機器の制御チップである。制御チップには制御プログラム（ファームウェア）が保存される。このファームウェアはそれぞれのチップを認識するために認証コードを内包する。上述した自動運転車を遠隔操作する新たな攻撃は、この認証コードを盗み自動運転車を遠隔操作する点でBadUSBやStuxnetと類似している。
【００１１】
今後９・１１のような同時多発テロは遠隔操作により少数のハッカーグループによって引き起こされる可能性がある。このような新たな脅威は、従来のテロ対策やサイバーセキュリティ技術では防げない。
【発明の開示】
【発明が解決しようとする課題】
【００１２】
サイバーセキュリティ技術はソフトウェアによる中央管理が主流である。セキュリティ技術に関する理解は人によりばらつきが多く、すべてのエンドユーザーに専門的な運用管理を正しく行わせることはほとんど不可能だろう。９９９人が適正に運用していてもたった一人が適正に運用していなければセキュリティは脆弱になる。こうして、ネットワークを介したシステムのセキュリティは、十分訓練された管理者が十分信頼性の高いソフトウェアを使い中央管理することが望ましいとされている。中央管理はつまるところ、ネットワークを介したソフトウェアによる管理である。
【００１３】
しかしながら、上述したように、IoT/IoEのビジネスモデルではノード数は数兆個にもなり、そもそも中央管理が難しい。その上、ネットワークに接続したノードのうちたった一つでも認証コードを乗っ取られればシステム全体（たとえば、自動運転車、航空管制システムなど）が脆弱になる。認証コードを使うのは、ネットワークが主にソフトウェアで制御されているからである。これが中央管理によるセキュリティの本質的限界である。
【００１４】
本発明は上記事情を鑑みて成されたものであり、ソフトウェアによらない、ノードの局所的認証管理を提供することを目的とする。
【課題を解決するための手段】
【００１５】
本発明は、上記課題を解決するため、以下の手段を採用する。本発明に関わるチップ認証方式を用いるチップ認証装置は、複数のネットワークユニットに分割され、前記ネットワークユニットが、一つの基幹サーバーと、前記基幹サーバーにのみ接続する複数の周辺装置から構成され、前記ネットワークユニット内において、前記基幹サーバーは、少なくとも一つのパスコードと、前記基幹サーバーと接続する個々の周辺装置に対応する複数の登録コードからなる登録コードのリストを保持し、前記複数の周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、所定の方法で入力コードに変換され、前記チップ認証装置は、前記チップ上にレイアウトされるワード線郡およびビット線郡が定義するアドレスに配置される認証素子の集合から構成される乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記ワード線及び前記ビット線に関連して印加される電気的入力に対して、少なくとも、第一の値と、及び、第二の値とを、電気的に出力し、前記入力コードは、前記ワード線および前記ビット線に所定の方法で割り当てられる電気的信号のデータの集合体であり、前記乱数発生装置は、前記入力コードに応じて、前記認証素子が電気的に出力したデータの集合体として、物理乱数コードを発生し、前記登録コードは、前記出力コードを事前登録によって前記基幹サーバーに保存したものであることを特徴とする。
【００１６】
また、本発明に関わる乱数発生装置は、前記認証素子が電子的に出力する電子データの集合体として乱数コードを発生し、前記出力コードは、前記入力コードと前記乱数コードとを、所定の方法で合成して出力するで電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価することを特徴とする。
【発明の効果】
【００１７】
本発明によれば、新しいチップ認証方式を提供し、認証コードを盗むことによる制御チップ乗っ取りの危険性を低減することが可能となる。
【００１８】
図１は、従来の典型的なチップ制御システムを説明する図面である。チップの機能を具現化する認証制御デバイス３は、ファームウェア２に含まれる認証コード（ID）４を必要に応じて読み出せるようになっている。たとえば、チップ１は、外部I/O（５）に応じて認証制御デバイス３が認証コード４を参照し、チップ１が正しい外部装置であることを主張する。ただし、これは主張するだけであって正しいことを証明するものではない。上述したように、この方法では、認証コード（ID）４を盗めば他のチップがチップ１になりかわることが可能だからである。
【００１９】
本発明では、図２に示すように、認証コード（ID）４と認証制御デバイス３からなる認証システム６を、本願のチップ認証装置６０に置き換える。チップ認証装置６０は外部入出力５０から受け取るコール（入力信号）に応じて都度出力を発生するものであり、発生された出力信号は物理的乱雑さを利用して生成されるものである。また、入力信号を変えると出力信号も変わるという特徴を有している。
【００２０】
図３のように、このチップ認証装置６０を有するチップ１０を搭載する第一の装置７１が、外部I/O（５０）を通して、第二の装置７２とデータを交換（交信）する場合を考えよう。
【００２１】
図４のように、第二の装置７２は、何らかの形式で接続された第一の装置７１を認識するために信号A、信号B、信号C、…を入力コードとして外部I/O（５０）を介して第一の装置に搭載されるチップ認証装置６０に与える。チップ認証装置６０は、それぞれ信号A1、信号B1、信号C1、…を出力コードとして外部I/O（５０）を介して第二の装置に返す。ここで、第二の装置は、チップ１０を搭載する第一の装置を、「信号Aの入力に対して信号A1の出力を返し、信号Bの入力に対して信号B1の出力を返し、信号Cの入力に対して信号C1の出力を返し、…」という装置であると認識する。交信シリーズは、この場合、（A、B、C、…：A1、B1、C1、…）であらわされる。あるいは、別の場合では、第二の装置７２は第一の装置７１を「信号Fの入力に対して信号F１の出力を返し、信号Aの入力に対して信号A１の出力を返し、信号Kの入力に対して信号K１の出力を返し、…」と認識する。この場合の交信シリーズは、（F、A、K、…：F１、A１、K１、…）であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン（入力コード）は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第二の装置にネット接続しうる装置の数を無制限にすることに有用である。すなわち、第一の装置を第二の装置に最初に接続する際、第二の装置は第一の装置を登録することになる。この登録は、第二の装置の正規の使用者か、或いは、第二の装置の正規の使用者から正規に権限を委譲された者が行うことが望ましい。たとえば、図５のように、登録時に任意に選ばれた入力コード１０２（R、L、A）と、第一の装置から返ってきた出力信号のパターン（R１、L１、A１）を第二の装置の内部メモリ３０２に保存する。このとき、登録に関わる交信シリーズは（R、L、A：R１、L１、A１）となる。更に具体的には、第二の装置に接続しうる装置は無数にあるので入力コード１０２はあらかじめ固定することが望ましい。その場合、第一の装置が登録された交信シリーズ（R、L、A：R１、L１、A１）の替わりに（R１、L1、A1）を登録コード２０２とする。図５の例では、第一の装置７１、第四の装置７４、第五の装置７５、…が、第二の装置に登録されている場合を説明している。たとえば、第四の装置は、入力コード（R、L、A）に対して、出力コード（R４、L４、A４）を第二の装置に返す。第五の装置は、入力コード（R、L、A）に対して、出力コード（R５、L５、A５）を第二の装置に返す。
【００２２】
図６の例では、第二の装置の正規の使用者９２が、自ら所有する第一の装置を使って第二の装置７２を操作する例を説明している。第一の装置と第二の装置は交信シリーズ８０を用いて交信（接続）し、連携して第二の装置７２の正規の使用者９２の目的とする仕事を行う。ここで、第二の装置７２の正規の使用者９２は、交信シリーズ８０にいかなるコミットメントもしない。もしコミットメントをする場合、第二の装置７２の管理・使用方法が煩雑になり、IoT/IoEの利便性が大きく損なわれることになる。具体的には、第二の装置が何らかの外部装置とネット接続するとき、まず第二の装置は入力コード１０２（R、L、A）をこの外部装置に送り、この外部装置から返って来た信号が登録コード２０２のどれか、（R１、L１、A１）、（R4、L4、A4）、（R5、L5、A5）…に一致するかどうかを確認すればよい。
【００２３】
図７のように、遠隔攻撃者９３が、第一の装置７１を遠隔攻撃者９３が所有する第三の装置７３に不正に置き換える場合を考えよう。第三の装置７３は、第一の装置７１に内蔵されるチップ認証装置６０を使用せずにこの交信シリーズ８０を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一の装置７１を第三の装置７３と不正に置き換えようとする者（遠隔攻撃者９３）は、実際に第一の装置７１を手に取ることができないとする。これは、IoT/IoEにおいては自然な条件である。すなわち、IoT/IoEにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者９３の目的は、自分が手元に所有する第三の装置７３を使って第二の装置７２を遠隔操作することである。第一の装置を手元に奪取するためには、第二の装置に正規に接続する第一の装置７１が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二の装置の使用者に気づかれずに遠隔操作をすることができないのと同義である。第三の装置７３と第二の装置７２がネット接続されると、第二の装置はネット接続を介して第三の装置７３を認識するために入力信号（R、L、A、…）をネット接続を介して第三の装置７３に与える。第三の装置が出力信号（R３、L３、A３、…）をネット接続を介して第二の装置に返したとする。こうして、偽交信シリーズ８３（R、L、A、…：R３、L３、A３、…）が作成される。すなわち、遠隔攻撃者９３は、偽交信シリーズ８３を正規の交信シリーズ８０、この例の場合、（R、L、A：R１、L１、A１）に完全に一致させなければならない。ここで、入力コード１０２（R、L、A）と、この入力に対する返信（R３、L３、A３）からなる交信シリーズ（R、L、A：R３、L３、A３）は、偽交信シリーズ８３の一例である。（R３、L３、A３）が（R１、L１、A１）と一致すれば、遠隔攻撃者９３は第三の装置を第一の装置に置き換えて遠隔攻撃を成功できる。図５の例に従えば、遠隔攻撃者９３は、（R３、L３、A３）を、第二の装置７２の内部メモリ３０２に保存されている登録コード２０２のうちどれか一つと一致させれば良い。
【００２４】
こうして、遠隔攻撃には基本的に二つの方法があることがわかる。第一の方法は、第二の装置の内部メモリ３０２に保存されている情報から、入力コード１０２と、少なくとも登録コード２０２のうちのどれか一つと、を盗み取ることである。たとえば、遠隔攻撃者９３が登録コード２０２のうち、（R４、L４、A４）と、入力コード１０２（R、L、A）とを盗み取ることに成功したとする。このとき、遠隔攻撃者９３は、所有する第三の装置７３を第四の装置７４に置き換えて第二の装置を不正に遠隔操作することができる。同様に、遠隔攻撃者９３が登録コード２０２のうち、（R１、L１、A１）と、入力コード１０２（R、L、A）を盗み取ることに成功したとする。このとき、遠隔攻撃者９３は、所有する第三の装置７３を第一の装置７１に置き換えて第二の装置を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二の装置７２の内部メモリ３０２を厳重に防御しなければならない。このため、内部メモリに入力コードや登録コードを保存する第二の装置７２のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を用いて厳重に保守することが望ましい。このように、第二の装置７２はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。こうして、遠隔攻撃の第一の方法はほぼ防がれる。しかしながら、ネットワークに接続する装置が数兆個に上る場合、すべての装置を第二の装置７２のように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者９３は、第二の装置７２に接続する中央管理の行き届かない装置、図５の例では、第一の装置７１、第四の装置７４、第五の装置７５…を遠隔攻撃することになる。これが遠隔攻撃の第二の方法である。しかしながら、第一の装置７１は、入力コード１０２と登録コード２０２のペア（交信シリーズ８０）を、図１の従来例のように、認証コード４として内部メモリに保存しない。第四の装置７４、第五の装置７５等の、第二の装置に何らかの形式で接続して使用することを目的とするほかの外部装置も同様である。これら外部装置（たとえば、図5の例では、第一の装置７１、第四の装置７４、第五の装置７５、…）は、それぞれ相異なるチップ認証装置を搭載するチップを内蔵している。
【００２５】
ここで、図８のように、遠隔攻撃者９３が第一の装置７１を遠隔攻撃する場合を考えよう。まず、遠隔攻撃者９３は、第一の装置７１の内部メモリーに不正にアクセスし、登録コード及び入力コードに関する情報（交信シリーズ８０）を盗み取ろうとする。しかしながら、第一の装置はそもそもそのような情報を内部メモリーに保存していないので、この攻撃は必ず失敗に終わる。次に、遠隔攻撃者９３は、適当に選んだ信号（X、Y、Z）を第一の装置７１に入力し、（X１、Y１、Z１）の返信を得る。（X、Y、Z）が、第二の装置７２が用いる入力コード１０２（R、L、A）と異なる場合、返信（X１、Y１、Z１）は登録コード２０２の（R１、L１、A１）とは異なる。こうして、第二の遠隔攻撃も失敗に終わる。ここで問題なのは、遠隔攻撃者９３が適当に選んだ信号セット（X、Y、Z）が、たまたま第二の装置７２の内部メモリ３０２に保存した入力コード１０２（R、L、A）に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に第二の装置７２の管理者以外には非公開とすることである。この情報は、第二の装置７２の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、第二の装置７２に接続する装置の再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。このように、入力コードは、パスコードとして振舞う。
【００２６】
この入力コードは、さまざまな周辺装置への認証IDを検査するために共通して使うことが望ましい。この場合、おのおのの周辺装置へのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹サーバーは少なくとも一つの共通パスコードを所有する。
【００２７】
上記第二の装置７２が計算機（パソコン等）の場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５は、計算機に接続して用いられる周辺装置となる。たとえば、マウス、キーボード、マイクロホン、などである。上述したとおり、計算機本体は最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺装置（マウス、キーボード、マイクロホン等）の不正な置き換えから計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺装置を遠隔攻撃から守ることができる。
【００２８】
上記第二の装置７２がネットワークサービスの中心的機能を担う基幹サーバーの場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５などを、基幹サーバーに対して周辺装置とみなすことができる。図９は、一つの基幹サーバー４００に、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０がネット接続する例を示している。たとえば、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、このネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、エンドユーザーの端末（スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等）の置き換え（乗っ取り）から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
【００２９】
上記第二の装置７２がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５は、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、このようなセンサーの置き換え（乗っ取り）から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
【００３０】
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺装置（たとえば、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０）は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ（たとえは、共通パスコード）を保存する“基幹サーバー”と保存しない“周辺装置”に分けることが特徴となる。同時に、認証通信のために必要なデータ（たとえは、共通パスコード）を保存する“基幹サーバー”は中央管理し、認証通信のために必要なデータ（たとえは、共通パスコードなど）を保存しない“周辺装置”には本発明のチップ認証装置を搭載することを特徴とする。
【００３１】
図１０のように、上記共通パスコードは、第一の基幹サーバー１４００に少なくとも一つ保存され、周辺装置を認識する際に周辺装置に送られる。たとえば、第一の基幹サーバー１４００は第一の共通パスコード１４１０を、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０に送る。これらの周辺装置は、第一の基幹サーバーを「第一の共通パスコード１４１０を送ってくるもの」として認識する。図１１に示すように、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、この第一の共通パスコード１４１０の入力に対応し、それぞれ、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を、第一の基幹サーバー１４００に返す。第一の基幹サーバー１４００は、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０を、「第一の共通パスコード１４１０に対して、それぞれ第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を返すもの」と認識する。同様に、図１２のように、第二の基幹サーバー２４００は、第二の共通パスコード２４１０を、第一の周辺回路４１０、第二の周辺装置４２０、第三の周辺装置４３０に送る。これらの周辺装置は、第二の基幹サーバーを「第二の共通パスコード２４１０を送ってくるもの」として認識する。図１３に示すように、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、この第二のパスコード２４１０の入力に対応し、それぞれ、第四の認証４１０２、第五の認証４２０２、第六の認証４３０２を、第二の基幹サーバー２４００に返す。第二の基幹サーバー２４００は、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０を、「第二の共通パスコード２４１０に対して、それぞれ第四の認証４１０２、第五の認証４２０２、第六の認証４３０２を返すもの」と認識する。言うまでも無く、第一の共通パスコード１４１０と第二の共通パスコード２４１０は異なる。第一の認証４１０１、第二の認証４２０１、第三の認証４３０１、第四の認証４１０２、第五の認証４２０２、第六の認証４３０２のうちどの二つの認証も同じではない。また、第一の基幹サーバー１４００が別の共通パスコード１４１１を使用することも可能である。これは、より高度な管理のために便利なことがある。
【００３２】
実際のネットワークでは、周辺装置は無数にあり、しかも基幹サーバーは一つに限らない。たとえば、図１４では、二つの基幹サーバー（第一の基幹サーバー１４００、第二の基幹サーバー２４００）と五つの周辺装置（第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０、第四の周辺装置４４０、第五の周辺装置４５０）からなるネットワークの一例を示している。第一の基幹サーバー１４００を中心に、第四の周辺装置４４０と第五の周辺装置４５０とで一つのネットワークユニットを構成し、第二の基幹サーバー２４００と、第一の周辺装置４１０、第二の周辺装置４２０、及び第三の周辺装置４３０と、でもう一方のネットワークユニットを構成する。これらのネットワークユニットは、互いに、第一の基幹サーバー１４００と第二の基幹サーバー２４００とのみで接続している。さらに、第四の周辺装置４４０および第五の周辺装置４５０は、第一の基幹サーバー１４００とのみ接続し、第一の周辺装置４１０、第二の周辺装置４２０、及び第三の周辺装置４３０は、第二の基幹サーバー２４００とのみ接続している。ここで、接続とは、上述した認証作業によって電子装置同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、電子装置のネットワークを考える際、得に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での（認証）接続は、一つのパッケージ化されたシステム内の装置（モジュール、あるいは、チップ）同士の接続をも含む。本発明の特徴のひとつとして、このような複数の基幹サーバーと複数の周辺装置からなるネットワークにおいて、基幹サーバー同士は直接接続が可能であるが、周辺装置同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺装置では、共通パスコードのような入力データを保存しないためである。その代わりに、周辺装置同士は、基幹サーバーを介して間接的に接続する。たとえば、第一の周辺装置４１０と第二の周辺装置４２０は、第二の基幹サーバー２４００を介して間接的に接続可能である。第四の周辺装置４４０と第五の周辺装置４５０は、第一の基幹サーバー１４００を介して、間接的に接続可能である。第三の周辺装置４３０と第四の周辺装置４４０は、互いに接続している第一の基幹サーバー１４００と第二の基幹サーバー２４００とを介して、間接的に接続可能である。こうして、本発明によれは、中央管理のためのリソースを基幹サーバーにのみ集中させることが可能となる。図１４の具体的な例としては、たとえば、自動運転車とスマートハウスが上げられる。たとえば、第一の基幹サーバー１４００、第四の周辺装置４４０、および第五の周辺装置４５０からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹サーバー２４００、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０からなるネットワークユニットは、一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、たとえば、スマートハウスのバッテリーの状況を把握するためのセンサー（たとえば、第四の周辺装置４４０）が自動運転車に搭載されている。このように、第四の周辺装置４４０は、第一の基幹サーバー１４００と第二の基幹サーバー２４００のどちらとも接続することになる。
【００３３】
図１５に示すように、本発明を用いたネットワークでは、一つの周辺装置（たとえば第一の周辺装置４１０）が複数の基幹サーバー（たとえば、第一の基幹サーバー１４００、第二の基幹サーバー２４００、第三の基幹サーバー３４００）と接続することも認められる。その中で、たとえば、第一の基幹サーバー１４００と第二の基幹サーバー２４００は直接接続しているが、第一の基幹サーバー１４００も第二の基幹サーバー２４００も、第三の基幹サーバー３４００とは直接接続していないものとする。ここで、第三の基幹サーバー３４００が遠隔攻撃者でないという証明はない。このため、第一の周辺装置４１０に接続認証に関するデータ（共通パスコード）を保存しないということは重要である。たとえば、最初に第一の周辺装置４１０が第一の基幹サーバー１４００に登録される際、第一の基幹サーバー１４００は、第一の周辺装置４１０が第一の基幹サーバー１４００の後に他の基幹サーバーと接続することを制限することが可能となる。なぜなら、第一の周辺装置４１０の外部入出力制御装置（たとえば、図８０の外部入出力制御回路９８０）は、受信する全ての信号を第一の基幹サーバー１４００に転送し、第一の基幹サーバー１４００は、第一の周辺装置４１０への全ての入力をモニターすることが可能だからである。ここで、もし第一の共通パスコード１４１０と同等のコードが発見されたら、緊急処置を施すことができる。たとえば、第一の基幹サーバー１４００は、第一の周辺装置４１０を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺装置４１０を利用する。第一の基幹サーバー１４００の次に、第二の基幹サーバー２４００が第一の周辺装置４１０を登録する場合、第二の基幹サーバーは、あらかじめ第一の基幹サーバー１４００に、第一の周辺装置４１０を登録する許可を申請する。これには、第二の基幹サーバーと第一の基幹サーバーが直接接続していることが必要である。第一の基幹サーバーが、第二の基幹サーバーに対し、第一の周辺装置４１０への接続を許可すれば、第一の周辺装置４１０は、第二の共通パスコード２４１０を受け付け、第二の基幹サーバー２４００に第二の認証１２を返信し、第二の基幹サーバー２４００は、第一の周辺装置４１０を登録する。以後、第二の基幹サーバー２４００と第一の周辺装置４１０は、第一の基幹サーバー１４００の許可を経ずに、接続可能となる。次に、第三の基幹サーバー３４００が、第一の周辺装置４１０と接続するには、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００及び第二の基幹サーバー２４００が、第一の周辺装置４１０に対し、あらかじめ、第三の共通パスコード３４１０の受付を許可しておく必要がある。こうして、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００及び第二の基幹サーバー２４００は、第三の基幹サーバー３４００と第一の周辺装置４１０の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺装置４１０に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００および第二の基幹サーバー２４００の正規の管理者によって行われるものとする。
【００３４】
第一の基幹サーバー１４００は、第一の共通パスコード１４１０を有し、第二の基幹サーバー２４００は、第二の共通パスコード２４１０を有し、第三の基幹サーバー３４００は、第三の共通パスコード３４１０を有するものとする。すなわち、第一の周辺装置４１０は、「第一の基幹サーバー１４００を第一の共通パスコード１４１０を入力してくるもの」と認識し、「第二の基幹サーバー２４００を第一の共通パスコード２４１０を入力してくるもの」と認識し、「第三の基幹サーバー３４００を第三の共通パスコード３４１０を入力してくるもの」と認識する。これらの入力に対し、「第一の基幹サーバー１４００は、第一の周辺装置４１０を第一の認証１１を返すもの」と認識し、「第二の基幹サーバー２４００は、第一の周辺装置４１０を、第二の認証１２を返すもの」と認識し、「第三の基幹サーバー３４００は、第一の周辺装置４１０を、第三の認証１３を返すもの」と認識する。ここで、通信認証に関するデータ（共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等）は、基幹サーバーに保存され、周辺装置には保存しない。周辺装置には、本発明のチップ認証装置を搭載する。
【００３５】
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。
（出力の独立性）
【００３６】
まず、二つのチップ認証装置に同じ入力信号を入力したときの動作を特定する。図16に示すように、二つの異なる第一のチップ認証装置２１と第二のチップ認証装置２２に対して、同じ入力信号（入力信号Q）を入力する。このとき、第一のチップ認証装置２１は出力信号Aを出力する。第二のチップ認証装置２２は出力信号Bを出力する。このとき、出力信号Aと出力信号Bとは異なる。このように、入力信号が同一であってもチップ認証装置が異なる場合出力信号はそれぞれ異なる。この性質は、共通パスコードを使う例（図１０、図１１、図１２、図１３）に必要な条件である。すなわち、同じパスコードをそれぞれ異なるチップ認証装置を搭載する周辺装置に入力信号として入力しても、それぞれの周辺装置から返って来る出力信号は周辺装置毎に相異なる。たとえば、図１０のように、第一の共通パスコード１４１０を、それぞれ異なるチップ認証装置を内蔵する第一の周辺装置４１０、第二の周辺装置４２０、第三の認証装置４３０に与えたとき、これらの周辺装置から返って来る出力信号は、図１１に示すように、それぞれ第一の認証４１０１、第二の認証４２０１、第三の認証４３０１となる。ここで、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１の内どの二つも相異なる。図１２、及び、図１３の例も同様に説明できる。
（入力の独立性）
【００３７】
反対に、同一のチップ認証装置に異なる入力信号を入力すると、それぞれ相異なる出力信号を出力する。たとえば、図１７に示すように、チップ認証装置６０に入力信号Cを入力すると出力信号Aを出力する。同じチップ認証装置６０に入力信号Dを入力すると出力信号Bを出力する。ここで、出力信号Aと出力信号Bは、入力信号Cと入力信号Dが異なる限り、それぞれ相異なる出力信号である。この性質は、図１５のように、異なる基幹サーバーからそれぞれ異なるパスコードを入力信号として同一の周辺装置に入力し、それぞれ基幹サーバーが相異なる認証を該周辺装置から出力信号として受け取る場合に必要な条件である。具体的には、第一の基幹サーバー１４００が第一の共通パスコード１４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第一の認証１１を第一の基幹サーバー１４００に出力し、第二の基幹サーバー２４００が第二の共通パスコード２４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第二の認証１２を第二の基幹サーバー２４００に出力し、第三の基幹サーバー３４００が第三の共通パスコード３４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第三の認証１３を第三の基幹サーバー３４００に出力する、ような場合である。ここで、言うまでも無く、上記認証１１、１２、１３は、お互いどの二つをとっても相異なる。
【００３８】
すなわち、図１４は（入力の独立性）の条件と（出力の独立性）の条件を同時に利用するネットワーク構造の一例となっている。ほとんどの場合、実際には、基幹サーバーの数は２より大きく、周辺装置の数は５より大きい。図１４は、もっとも簡単な一例に過ぎない。
（出力の予測不可能性）
【００３９】
図１８に示すように、ｎ個の入力信号Q1−Qｎを同一のチップ認証装置６０に与えたとき、それぞれの入力信号に対し出力信号R1−Rnが得られることを知っているものとする。このとき、ｎ個のQ1-Qnのいずれとも異なる入力信号Qn+1を同一のチップ認証装置６０に与えずに、これを与えたときに得られるはずの出力信号Rn+1を、（Q1、R1）、（Q2、R2）、…（Qn、Rｎ）のセットから予測することは不可能である。ただし、ｎは２以上の整数とする。チップ認証装置６０が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置６０は物理的乱雑さを利用して出力信号を生成しなければならない。
（入出力の信頼性）
【００４０】
図19に示すように、実際には、入力信号Qを制御する回路に関わる制御不能のノイズなどにより、入力信号Qには入力信号誤差３１（ΔQ）が混入する。これに対し、入力信号誤差３１（ΔQ）及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Rには出力信号誤差３２（ΔR）が混入する。このとき、二つの異なる入力信号（たとえば、Q１およびQ2）の差の絶対値は、入力信号誤差３１（ΔQ）の絶対値の最大値より大きいものとする。ここで、入力信号Q1に対する出力信号R1と、入力信号Q2に対する出力信号R2との間の差の絶対値は、出力信号誤差３２（ΔR）の絶対値より常に大きくなければならない。
【００４１】
本発明に関わるチップ認証方式は、上述した（出力の独立性）、（入力の独立性）、（出力の予測不可能性）、及び、（入出力の信頼性）の、４つすべてを同時に満たしていなければならない。
（検査）
【００４２】
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹サーバーに接続している周辺装置を、本発明によるチップ認証装置を搭載したチップで構成された周辺装置に置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺装置が一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹サーバーの保守点検の一部として随時行うことが可能である。また、周辺装置の登録時にも行うことが望ましい。
【００４３】
この検査のためにもっとも有効な方法は、中央管理下にある基幹サーバーを使って検査対象となる周辺装置を実際に遠隔攻撃することである。検査対象となる周辺装置を構成するチップは、本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード４２と登録コード４３の対応表（図２０参照）を保存していなければならない。本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図２０のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹サーバーだけである。図９にある、入力コード４０２と登録コード４０３の組あわせがそれである。図９の入力コード４０２が図２０の入力コード４２に対応し、図９の登録コード４０３が図２０の登録コード４３に対応している。
【００４４】
具体的な検査作業の流れを図２１を用いて説明する。まず、検査する周辺装置を見つけたところから始める。次に、検査対象の周辺装置の内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹サーバーに保存されている入力コードの中に一致するものがあるかどうかを調べる。不一致の場合、さらに、基幹サーバーに保存されている登録コードと比較する。そこで一致しなかった場合、検査した周辺装置を公正なものとして承認する。次に検査する周辺装置があるかどうか探す。なければ終了する。あれば、その検査対象となる周辺装置の内部メモリを読み出す。以下同様。
【００４５】
こうして、本実施形態に関わるチップ認証方式を用いるネットワークを構成するすべての装置は、たとえば、図１４のように、訓練を受けたセキュリティ専門家が保守・管理する基幹サーバー（たとえば、１４００、２４００）のグループと、前記セキュリティ専門家が管理できない周辺装置（たとえば、４１０、４２０、４３０、４４０，４５０）のグループに分けられる。ここで、周辺装置同士はお互いに直接に接続せず、基幹サーバーとのみ接続可能とする。こうして、一つの基幹サーバーとそれに直接接続する複数の周辺装置からなるネットワークユニットを構成する。基幹サーバーは、基幹サーバー同士と任意に接続可能であり、周辺装置同士は、基幹サーバーを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図１４は、二つのネットワークユニットが互いの基幹サーバー同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹サーバー、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の電子装置同士の接続は、上述した認証作業によって電子装置同士が互いを認証する、認証接続のことを意味している。
【００４６】
各周辺装置には、すべて異なるチップ認証装置が搭載されている。図１０及び図１２に示すように、基幹サーバー（１４００、２４００）は、それぞれ固有の共通パスコード（１４１０、２４１０）を少なくとも一つずつ保有する。図９に示すように、それぞれの基幹サーバーが出力する共通パスコードは、基幹サーバーの内蔵メモリに入力コード（たとえば、４０２）として厳重に保管される。図１１及び図１３に示すように、共通パスコード（１４１０、２４１０）を入力された周辺装置（４１０、４２０、４３０）は、それぞれの共通パスコードに対しておのおの固有の認証（４１０１、４２０１、４３０１）、及び、（４１０２、４２０２、４３０２）を基幹サーバー（１４００、２４００）にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図１６に示すように、（出力の独立性）を満たさなければならない。図９に示すように、基幹サーバーは、周辺装置から返信されてきた出力信号を、入力コード（たとえば、４０２）のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード（たとえば、４０３）と便宜比較する。
【００４７】
図１５に示すように、一つの周辺装置が複数の基幹サーバーと接続することが許される。この場合、一つの周辺装置（たとえば、４１０）は、複数の共通パスコード（たとえば、１４１０、２４１０、３４１０）を入力され、それぞれ異なる入力に対して、それぞれ異なる認証（たとえば、１１、１２、１３）を出力しなければならない。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図１７に示すように、（入力の独立性）を満たさなければならない。
【００４８】
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者（たとえば、９３）がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、たとえば図２０のように、登録コードを偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺装置の一部を乗っ取り、基幹サーバーに不正アクセスすることが可能となる。このような不正行為防ぐため、本発明のチップ認証装置は、図１８に示すように、（入出力の予測不可能性）を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも（入出力の予測不可能性）を満たすことができない。これは、プログラムにより完全な乱数を発生することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
【００４９】
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード（共通パスコード）を受け取る度に、物理的乱雑さに基づいて出力信号（認証コード）を発生することが望ましい。共通パスコードは周辺装置のメモリに保存してはならない。電子装置が複数のチップで構成される場合、図１１４に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺装置及び基幹サーバーが、少なくとも一つのチップから構成される電子装置のネットワークである。
【００５０】
本発明に関するチップ認証装置は、半導体装置の素子アレイ上に構成することが可能である。まず、何らかの方法で“１”と“０”の物理的にランダムな組み合わせを生成する。ここで、“１”を黒、“０”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図２２のような白と黒がランダムに配置した市松模様ができる。このように、乱数がデジタルで発生すると、図１９に説明した（入出力の信頼性）を満たすことができる。
【００５１】
このように、本発明に関するチップ認証装置は、半導体デバイス及び半導体デバイス製造工程における制御不能の不確定さを用いて、上記必要とされる物理的乱雑さを生成するものである。
【００５２】
以下、発明を実施するための最良の形態について、具体的に説明する。
【発明を実施するための最良の形態】
【００５３】
図２３は、図２２を実現するための素子の配列の一例である。行方向にL本のワード線５０３が並んでいる。それと直行するように、ビット線９０２が列方向にM本並んでいる。L本のワード線５０３とM本のビット線が交差するところにチップ認証装置のエレメントである認証素子９７７が配列する。この例では、不揮発性メモリのセルアレイと異なり選択ゲートは無いが、L本目のワード線（L-1）とビット線コンタクト５０４の間、及び、反対側の端であるワード線（０）とビット線コンタクトの間に選択ゲートを採用しても、本発明の本質に変化はない。
【００５４】
図２４は、図２３の認証素子用アレイ９６０の中からN本のワード線５０３とN本のビット線９０２を抜き出したものである。Nは、一般に、上記のLやMより小さいか同じ自然数である。
【００５５】
入力コード（P、S、T、…）の例として、(a(1),b(1),a(2),b(2),…,a(N),b(N))を考えよう。この入力コードを配列aと配列bに分割し、図２５のように、(a(1),a(2),…a(N))を第一行から順に対応させる。(b(1),b(2),…,b(N))を第一列から順に対応させる。このとき、i行j列の認証素子９７７のデータを要素d(i,j)とする。 (i,j)は認証素子９７７のアドレスに対応する。図２５の例では、要素d(5,N-2)が図示されている。ここで、要素d(i,j)の集まり{d(i,j)}は、０と１のランダムな集合体で構成される乱数コードである。このように、入力コードを２つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列aと配列bを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列aと配列bを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列aと配列bの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ９６０の行数と列数の和は、少なくとも２Nより大きいものとする。ここで、上記入力コードを{a(i),b(j)}と表記することにする。ただし、i、および、jは、それぞれ独立の自然数とする。こうして、数列{a(i)}、数列{b(j)}、及び乱数コード{d(i,j)}から、何らかの方法を用いて出力コード{c(i,j)}を作成する。入力コード{a(i),b(j)}及び出力コード{c(i,j)}の組み合わせが、図６の交信シリーズ８０に対応している。この乱数コード{d(i,j)}の一例として、物理乱数を用いればよい。
【００５６】
本発明に係る実施形態について、主に、第一の入力数列{a(i)}、第二の入力数列{b(j)}、及び物理乱数{d(i,j)}から、出力コード{c(i,j)}を作成する方法について、以下図面を参照して説明する。
（第一の実施形態）
【００５７】
一例として、出力コード{c(i,j)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。
2017028354.tif 000003
図２６は、数列{a(i)}、数列{b(j)}、及び物理乱数{d(i,j)}と、式１に基づいて出力される出力コード{c(i,j)}との関係を一覧表にしたものである。この方法を用いると、０と１の数の割合に変化がないことが容易に想像される。これは、交信シリーズ８０によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式１の右辺に入力される情報量と、式１の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式１で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。
【００５８】
図２７は、式１で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置６０１で物理乱数{d(i,j)}を発生し、基幹サーバー４００から、共通パスコードとして、入力コード{a(i),b(j)}が入力され、コード発生装置６０２で出力コード{c(i,j)}を生成する。この例では、乱数発生装置６０１とコード発生装置６０２が、共にチップ認証装置６００の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置６０２をチップ認証装置６００の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置６０１をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置６０１の一例として、図２２で概念的に説明した方法を用いる。コード発生装置６０２は、式１で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数{d(i,j)}で物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置６０１の行数と列数の和は、少なくとも、{a(i)}の要素数と {b(j)}の要素数の和と同じか、それより大きいものとする。
（第二の実施形態）
【００５９】
図２８は、第二の実施形態の概念を示す図である。すなわち、基幹サーバー４００から入力コード（P、S、T、…）がスクランブル装置６０４に送られる。こうして、入力コード（P、S、T、…）は（P’、S’、T’、…）に変換される。このコードは、周辺装置にモジュールされているチップ認証装置６００への入力コード（P’、S’、T’、…）として入力される。ここで、特に図示しないが、基幹サーバー４００に接続する周辺装置は、少なくともチップ認証装置６００を搭載するチップをマウントしている。チップ認証装置６００は、認証（P1、S1、T1、…）を返す。次に、（１）この認証（P1、S1、T1、…）を基幹サーバーへ出力する。あるいは、（２）この認証（P1、S1、T1、…）をスクランブル装置に返して、このスクランブルされた認証（P1’、S1’、T1’、…）を基幹サーバー４００に返す。あるいは、自明なので特に図示しないが、（３）二つ目の別のスクランブル装置を使って認証（P1、S1、T1、…）を認証（P1’’、S1’’、T1’’、…）に変換してから基幹サーバー４００に返す。（３）の方法では、少なくとも二つの独立のスクランブル装置が必要である。
【００６０】
いずれにしろ、コスト面から、スクランブル装置はチップ認証装置６００を搭載するチップに混載することが望ましい。図２９は、スクランブル装置６０４の基本構成の一例を示す図である。この例では、スクランブル装置６０４は、乱数発生装置６０５及びコード発生装置６０６から構成されり、チップ認証装置６００とほぼ同じである。スクランブル装置６０４を構成する乱数発生装置６０５およびコード発生装置６０６の詳しい説明は、図２７で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置６０６は、スクランブル装置の外に置くことも可能である。
（第三の実施形態）
【００６１】
図３０は、図２３の認証素子９７７のアレイの一部を示すものである。行数はN+Kで、列数はNである。上部K行N列の領域をスクランブル装置セルアレイ６１４とし、下部N行N列を、チップ認証装置セルアレイ６１１としている。
【００６２】
図３１は、スクランブル装置６０４を構成する乱数発生装置６０５を実現する方法の一例を説明する図である。まず、{a(i)＋b(i)}を列毎に入力する。次に、物理乱数の要素d(i,j)を行方向に足し上げたものを２で割ったあまりにa(i)とb(i)を加える。その和を更に２で割ったあまりを中間出力{f(j)}とする。こうして、図３２のように、スクランブル装置６０４を構成するコード発生装置６０６の機能は、次の数式で表される。
2017028354.tif 000004
この{f(j)}が、図２８、図２９、図３２および図３４のスクランブル装置６０４の出力となる。ただし、jは１からNの自然数である。
【００６３】
図３３は、図２７のチップ認証装置６００を構成する乱数発生装置６０１を実現するチップ認証セルアレイ６１１の一例を示す図である。図２５および式１において、配列{b(j)}を配列{f(j)}に置き換えたものと同等なので、詳細の説明は省略する。ここで、式３で表される{c(i,j)}がコード発生装置６０２の出力となる。
2017028354.tif 000005
ただし、i、および、jは、それぞれ独立の自然数である。
【００６４】
図３４は、図２８のスクランブル装置６０４とチップ認証装置６００の入出力関係をまとめて説明する図である。入力コード{a(i),b(j)}はスクランブル装置６０４で物理的乱数を取り込んで中間コード{a(i),f(j)}に変換される。この{a(i),f(j)}を次の入力コードとしてチップ認証装置６００に入力し、出力コード{c(i,j)}を出力する。
【００６５】
ここで、スクランブル装置６０４の行数Kとチップ認証装置の行数Nの選び方は、必ずしも基幹サーバー側で管理する必要はない。たとえば、周辺装置を基幹サーバーに登録する際、周辺装置の所有者、あるいは、周辺装置の正規の管理者が、任意に決定できる。決定された（N、K）は周辺装置内部の不揮発性メモリ等に保存する。
【００６６】
この時点では（N、K）は基幹サーバー側が知らなくても良い情報であるが、基幹サーバーが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹サーバー側で検査し必要に応じて改定することが可能である。その際、改定された（N、K）で周辺装置を再登録する必要がある。（N、K）を改定すると、たとえ同じ入力コード{a(i),b(j)}を入力しても、スクランブル装置６０４が生成する中間コード{a(i),f(j)}が異なる。したがって、チップ認証装置６００が生成する出力コード{c(i,j)}も異なる。
【００６７】
基幹サーバーは前回のメンテナンス時に改定した（N、K）を記録しておく。次のメンテナンス時、チップの内部メモリに保存されている（N、K）を読み出し、前回記録しておいてた（N、K）と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこのチップを切り離すか、管理者に警報することができる。こうして、（N、K）をセキュリティバッファとして有効活用することも可能である。なお、式１−３に基づくコード生成では、物理乱数{d(i,j)}を用いているので、セキュリティバッファ（N、K）自体が流出してもかまわない。
【００６８】
上記式１−３にしたがってコード生成するのにCPUを使用する場合、スクランブル装置とチップ認証装置の間に生成される中間出力{f(j)}はCPU外には出力しない場合、CPU内のレジスタに一部あるいは全部を格納しなければならないが、{f(j)}全体を周辺装置の内部メモリに保存する必要はない。あるいは、上記式１−３にしたがってコード生成するのに同一チップ内の周辺回路を用いる場合、スクランブルとチップ認証の間に生成される中間出力{f(j)}はチップ外には出力されない。つまり、中間コード{a(i),f(j)}も、チップ外に出力されることはない。いずれにしろ、出力コード{c(i,j)}の生成が終われば中間出力{f(j)}は自動的に上書き消去される。また、遠隔操作によってコード生成中のレジスタからチップ内あるいはCPU内に閉じ込められた中間出力{f(j)}をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。たとえば、通常のパソコンでは３２ビット、多くとも６４ビットしかない。一方、中間出力{f(j)}をすべて記録するのに必要な容量はNビットである。したがって、Nが十分大きければ、コード生成するには、中間コード{f(j)}をいくつかのパケットに分割してレジスターに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をRとすると、図３４において、たとえば、第１列から第R列までをパケット１、第R＋１列から第２R列までをパケット２、第２R＋１列から第３R列までをパケット３、…とし、式２に基づいてパケット毎に中間出力{f(j)}の一部を生成しレジスタに格納する。すなわち、Nが十分大きければ、中間出力{f(j)}を格納したレジスタ領域はパケットを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力{f(j)}の全体を一度に盗まれることはない。また、本願では、入力コード{a(i),b(j)}から中間コード{f(j)}を生成するのに物理乱数{d(i,j)}（i=1,…K）を利用しているので、入力コード{a(i),b(j)}から中間出力{f(j)}を予測することは不可能である。更に、中間入力コード{a(i),f(j)}から出力コード{c(i,j)}を生成するのに前者とは独立の物理乱数{d(i,j)}（i=K+1,…K+N）を利用しているので、出力コード{c(i,j)}を予測することは不可能である。仮に中間コード{f(j)}が盗まれてたとしても、物理乱数{d(i,j)}（j=K+1,…K+N）からなる物理的乱雑さによって出力コード{c(i,j)}を予測するのは不可能である。その上、セキュリティバッファ（N、K）を随時更新することができるので、同じ入力コード{a(i),b(j)}に対して生成される中間コードは随時更新される。したがって、たとえば、Nを６４より大きくしておけばセキュリティは、更に大きく向上する。
【００６９】
図３５は、スクランブル装置アレイ６１４とチップ認証装置セルアレイ６１１を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線５０３を共有している。図３６は、スクランブル装置アレイ６１４とチップ認証セルアレイ６１１を含むメモリチップの他一例を示す図である。これら３つの領域がビット線方向に配列し、ビット線９０２を共有している。
（第四の実施形態）
【００７０】
図３７は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところにキャパシタ９８２を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すことがある。ワード線５０３とビット線９０２の間に電圧を印加することで、選択された交差点のキャパシタ９８２に電圧を印加することが可能である。
【００７１】
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は直流でも電流を流しやすくなり、たとえばメモリでは“１”に相当する。図２２では黒に相当する。反対に、破壊しなかった認証素子は印加電界に対して電流を流し難く、たとえばメモリでは“０”に相当する。図２２では白に相当する。印加電界やキャパシタの詳細な条件（物性、構造、サイズ等）を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ５０％程度にすると、図２２のような白黒のランダムな市松模様が得られる。
【００７２】
図３８は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのためにキャパシタ９８２に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてキャパシタ９８２を通して流れる電流の絶対値である。破壊された素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧９３２における破壊判定電流値９３３と非破壊判定電流値９３４を設定する。すなわち、絶対値が破壊判定電圧９３２に一致する読み出し電圧をキャパシタ９８２に印加したときにキャパシタ９８２を流れる電流の絶対値が、破壊判定電流値９３３より高ければ、破壊していると判定し、非破壊判定電流値９３４より低ければ破壊していないと判定する。ここで、読み出し電圧は直流電圧である。
【００７３】
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図３８で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、認証素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
【００７４】
図３８の判定方法には、破壊判定電流値９３３と非破壊判定電流値９３４の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊したとも非破壊であるとも判定されない。このような素子は、メモリに相当すると“０”でも“１”でもないため、“X”と表記することにする。このとき、２進表記した素子のセルアレイ上のアドレスと、対応する素子のデータの一例を示したのが図３９である。一例として、左から、“１”、“１”、“０”、“１”、“X”、“０”、“０”、“１”…となっている。このように、左から五番目の認証素子のデータが“X”になっている。
【００７５】
次に、図３９のような“０”と“１”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図２２の白黒のパターンになると予想される。ここで、“０”は白に変換され、“１”は黒に変換されるものとする。しかしながら、“０”でも“１”でもない“X”が存在すると、図２２のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“X”に対応する素子をプロットから排除しなければならない。
【００７６】
たとえば、 “X”に対応する素子のアドレス（たとえば、２進法表記で１００）をバッファに保存する。各アドレスに対応する素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、“X”に対応する素子のデータは取りのぞかれ、“０”と“１”のみからなるデータとアドレスの組み合わせが生成される。こうして、図２２のように、白黒の市松状のパターンが得られる。
【００７７】
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊の時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったりハード破壊モードに遷移することもあり状態が不安定であるが、一度ハード破壊モードに陥ると、非破壊状態に戻ることもなければソフト破壊モードに遷移することもない。本発明においては、図３８および図３９で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“１”とみなし、ソフト破壊モードを“X”としている。破壊判定電流値と非破壊判定電流値の間のギャップは、ソフト破壊モードに“X”をラベルするためのものである。こうして、上述した方法によって、“X”のソフト破壊した素子のデータを取り除くことによって、図２２の市松状の白黒パターンは、繰り返し読み出し電圧を印加しても変化しずらくなり、パターンの再現性を獲得する。
【００７８】
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。したがって、電気的ストレスを繰り返すうちに“X”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図３８で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図３８の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図３８の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。ただし、素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
【００７９】
物理的乱雑さを最大限にするには、“０”と“１”の割合がおおよそ５０％ずつになることが望ましい。“X”とラベルされた素子はソフト破壊モードであり、パルス電圧印加を繰り返すうちに確率的に“１”（ハード破壊モード）に遷移すので、図４０のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“０”の数が多くても複数回パルス印加するうちに“１”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ（“X”）の割合をできる限り低減しつつ、“０”と“１”の割合を５０％ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“０”と“１”のデータからなる良品のみを製品として出荷することができる。
【００８０】
また別の一例では、素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。たとえば、図４１のように、第一導電体１０５３、第二導電体１０５２、絶縁膜９１０、導電体先端部１０５１からなる素子構造を考えよう。第一導電体１０５３には第一電極１０５５が接続しており、第二導電体１０５２には第二電極１０５４が接続している。第一電極１０５５は、ワード線５０２あるいはビット線９０２のどちらか一方に接続し、第二電極１０５４は他方に接続する。導電体先端部１０５１周辺の絶縁膜の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部１０５１の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部１０５１の深さには製造ばらつきがあるので、導電体先端部１０５１と第二導電体１０５２の間の絶縁膜１０５０の破壊発生確率も素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって、“０”と“１”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。
（第五の実施形態）
【００８１】
それぞれワード線５０３とビット線９０２とに接続する導電体がダイオードからなる認証素子９７７を用いる場合、ダイオード要素がPN接合９８６（図４２）、あるいは、ショットキー接合９８７（図５９）ならば、ダイオードに強い電圧ストレスを印加することによって、ダイオードは確率的に破壊される。破壊されたかどうかは、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、たとえばメモリの“１”に相当する。破壊されなかった素子では、逆方向の読み出し電圧を印加しても電流が流れずらく、たとえばメモリの“０”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線５０３及びビット線９０２の間に印加する。
【００８２】
上述のように、それぞれワード線５０３とビット線９０２とに接続する認証素子９７７を構成する要素がPN接合９８６やショットキー接合９８７のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線５０３とビット線９０２とに接続する認証素子９７７を構成する要素がキャパシタ９８２の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図３８と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、PN接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。
（第六の実施形態）
【００８３】
図４３は、認証素子９７７がMetal-Oxide-Semiconductor（MOS）型電界効果トランジスタ（MOSFET）９８３の場合を示す図である。一般に、MOSFETは、半導体基板表面の二つの近接する拡散層とMOSキャパシタから構成されている。MOSキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この例では、二つの拡散層の内一方をビット線９０２に接続し、他方を設置している。ゲート電極には、ワード線５０３を接続する。すなわち、本実施形態では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、ビット線９０２を接地している間にワード線５０３に電圧ストレスを印加する。この電圧ストレスは、一例として、図４０のようなパルスでも良い。読み出しは、ビット線９０２とワード線５０３の間に破壊判定電圧９３２を印加し、ビット線９０２とワード線５０３の間を流れる電流を読めば良い。
（第七の実施形態）
【００８４】
図４４は、認証素子９７７が、トランジスタ９８３とキャパシタ９８２から構成されるDRAMセルの場合である。キャパシタ９８２が電圧降下を起すため、トランジスタ９８３のゲート絶縁膜を破壊するのは現実的ではない。したがって、この例ではキャパシタ９８２の破壊を利用することになる。具体的には、ワード線５０３にトランジスタ９８３をオン状態にするための転送電圧をワード線とビット線の間に印加する。その間にビット線に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図４０のようなパルスである。読み出しは、ワード線５０３に転送電圧を印加している間に、ビット線９０２を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ９８３をオン状態にするのに必要な電圧である。
【００８５】
ここで重要なことは、認証素子９７７は、通常のDRAMセルをそのまま用いることができる点である。すなわち、DRAMチップに本願のチップ認証装置を追加する場合、認証装置領域（セルアレイ）を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、DRAMに限らず一般的なメモリ容量に比べて非常に少なくて済む。
【００８６】
たとえば、図３０の例で、スクランブル装置（行数K）も含めてチップ認証装置（行数N）の追加容量を概算すると次のようになる。列数をNとすると、入力コードの場合の数は、２のN乗と２の（N＋K）乗の和である。スクランブル装置の物理乱数{d(i,j)}の場合の数は、２のNK乗である。チップ認証装置の物理乱数{d(i,j)}の場合の数は、２のN２乗である。出力コード{c(i,j)}の場合の数は、２のN２乗である。
【００８７】
次に、（N、K）を決定するために必要な要件を考える。まず、上述したような絶縁膜破壊やダイオードの接合破壊は物理的に乱雑なものであり、如何なるアルゴリズムにも依存しない。しかしながら、本願では（入出力の信頼性）を確保するために、図２２のような白黒（０/１）の市松模様を作りだすことによって物理的乱雑さをデジタル化している。これによって情報量の縮小が行われる。０/１の市松模様はチップ上に分布するので、分布する素子の数が少ないとパターン数が少なくなり、偶発的に同じ市松模様を出力する可能性が高まるように思われる。このような不具合を取り除くためには、デジタル化した物理乱数{d(i,j)}の場合の数が現実的にほぼ無限大とみなせるほどNおよびKを大きく設定しなければならない。一方、一般的なデジタル暗号回線で用いられる入力コードは、現在１２８ビットから２５６ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから１０年程度の間は２５６ビットからせいぜい５１２ビットの間で推移するであろう。そこで、一例としてN＝K＝５１２の場合で見積もる。このとき、入力コードの場合の数は、２の５１２乗と２の１，０２４乗の和である。これは、既に通常のコンピュータが扱える整数の桁数をはるかに上回る情報量である。実際に関数電卓で計算すると無限大が出てくる。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i＋N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は更に大きく、すべて同様に２の５１２２乗である。もちろん、現実的な無限大である。ここで、５１２２＝２６２，１４４なので、スクランブル装置を含めても２６２Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量（４Gｂ）に比べて４桁小さく、およそ１万分の１以下とはるかに小さい。
【００８８】
N＝K＝１２８の場合では、入力コードの場合の数は、２の１２８乗と２の２５６乗の和であり、およそ１０の７７乗となる。IoT/IoEが本格的に普及すれば、通信ノードの数は全世界で一兆個（１０の１２乗）に登るといわれている。１０の７７乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、１０のマイナス６５乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i＋N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は、すべて同様に２の１２８２乗となり、もちろん、現実的な無限大である。ここで、１２８２＝１６、３８４なので、スクランブル装置を含めても１６Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量（４Gｂ）に比べて５桁小さく、およそ１０万分の１以下とはるかに小さい。
【００８９】
DRAMの価格は、現在、４Gｂ品で２．５USドルから３USドルの間で推移している。DRAMセルをそのまま認証素子９７７として使用することができるので、物理乱数の情報量を十分維持しながら（入出力の信頼性）を確保しても、スクランブル装置を含めたチップ認証装置の値段は、１チップ辺り最大でも０．０３USセントである。
（第八の実施形態）
【００９０】
図４５は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところに不揮発性メモリの制御に用いる選択トランジスタ９８４を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、積層構造である。前記選択トランジスタ９８４は、メモリ素子の層間絶縁膜の一部もしくは全てを層間導電層に置き換えるられている。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線５０３に高電圧を印加することで、選択された交差点の選択トランジスタ９８４のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ９８３のゲート絶縁膜の破壊と同様になる。すなわち、（第六の実施形態）のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。
（第九の実施形態）
【００９１】
図４６は、ビット線方向に隣り合った選択トランジスタ９８４同士の拡散層を接続した場合の例である。これは、NAND型と言われるもので、動作方法が複雑になるので、更に図面を用いて詳細に説明する。
【００９２】
図４７は、本実施形態に関するチップ認証用素子アレイ９６０の一例である。ページバッファ７９０は、NAND型不揮発性メモリセルアレイのページバッファを兼ねる。ページバッファ７９０にはビット線９０２との接続をオン/オフさせるためのビット線接続ゲート７９１が設けられている。ページバッファ７９０は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
【００９３】
本実施形態では、混載するメモリセルはNANDセルであるが、DRAM等の揮発性メモリ、あるいは、NORフラッシュ及び磁気抵抗メモリ、相変化型メモリ、抵抗変化型メモリ等の不揮発性メモリであっても良い。すなわち、本発明に関するチップ認証素子アレイ６１１と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
【００９４】
認証素子９７７のに電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線側の選択トランジスタをオン状態にする。同様に破壊したいワード線とビット線側の選択トランジスタの間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各不揮発性メモリトランジスタをオン状態とする。ここで、破壊パルスを印加したいビット線の電位を０Vにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、たとえば、図４０で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図４０を試してパルス回数を決定し、それをチップ内のメモリ領域（あるいはバッファー）に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
【００９５】
図４８は、本実施形態に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出すキャパシタに関する1本のワード線を選択し、０Vより高い所定の電位を与える。選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線は０Vないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図３８の破壊判定電圧９３２程度である。同時に、ドレイン側の選択ゲートには正の電位を与え、ドレイン選択トランジスタ（SGD）９８１１をオン状態にする。次にビット線接続ゲート７９１を０Vに下げる。このとき、ビット線接続トランジスタ７９１０はオフとなり、ビット線はページバッファ７９０内の検知回路から切り離される。もし選択した認証素子９７７が導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート７９１に正の電位を与え、ビット線接続トランジスタ７９１０をオンにする。続いて、ページバッファ７９０内でビット線の電位変化を検知する。認証素子９７７の導通・非導通状態に因るビット線電位差をページバッファ７９０内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位（たとえば、破壊判定電圧値９３３０）以上であれば選択した認証素子９７７は破壊されてると見なし、ビット線電位が所定の電位（たとえば、非破壊判定電圧値９３４０）以下であれば選択した認証素子９７７は破壊されていないと見なす。ここで、破壊判定電圧値９３３０及び非破壊判定電圧値９３４０は、それぞれ、図３８の破壊判定電流値９３３と非破壊判定電流値９３４に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
【００９６】
図４９に本実施例に関する破壊検査時の電圧パルス波形の別の一例を示す図面を示す。まず、読み出すキャパシタに関する1本のワード線を選択し、０Vを与える。同じく選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図３８の破壊判定電圧９３２程度である。同時に、ドレイン側の選択ゲートには正の電位を与え、ドレイン選択トランジスタ（SGD）９８１１をオン状態にする。次に、ビット線接続ゲート７９１を０Vに下げる。このとき、ビット線接続ゲートトランジスタ７９１０はオフとなり、ビット線はページバッファ７９０内の検知回路から切り離される。もし選択した認証素子９７７が導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート７９１に正電位を与えビット線接続ゲートトランジスタ７９１０をオンにする。続いて、ページバッファ７９０内でビット線の電位変化を検知する。認証素子９７７の導電・非導電状態に因るビット線電位差をページバッファ７９０内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位（たとえば、破壊判定電圧値９３３１）より低ければ、選択した認証素子９７７は破壊されていると見なし、ビット線電位が所定の電位（たとえば、非破壊判定電圧値９３４１）より高ければ、選択した認証素子９７７は破壊されていないと見なす。ここで、破壊判定電圧値９３３１及び非破壊判定電圧値９３４１は、それぞれ、図３８の破壊判定電流値９３３と非破壊判定電流値９３４に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
【００９７】
不揮発性メモリの複数のブロックの隣に１ブロック分の領域（をチップ認証装置に割り当てることが可能である。たとえば、図３５や図３６のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線９０２、あるいは、ワード線５０３を共有することでチップ面積を節約することが可能である。
（第十の実施形態）
【００９８】
図５０は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところにヒューズ抵抗９８５を配置している。ワード線５０３とビット線９０２の間に高電圧を印加することで、選択された交差点のヒューズ抵抗９８５に電界ストレスを加えることが可能である。
【００９９】
一般に、ビューズ抵抗は、高抵抗導電材を二つの端子で挟んだものであり、ヒューズに高電界を印加すれば、確率的にショートして、ワード線５０３とビット線９０２の交点は非導電状態になる。ショートしなかった場合（非ショート）、ワード線５０３とビット線９０２の交点は導電状態にである。どのアドレスのヒューズがショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図２２のようなランダムな市松パターンを作ることができる。
【０１００】
ビューズが破壊されたかどうかは、ヒューズ抵抗９８５に読み出し電圧を印加して判定する。ショートした素子では、読み出し電圧を印加しても電流が流れずらく、たとえばメモリの“０”に相当する。ショートしなかった素子では、読み出し電圧が低くても電流が流れやすく、たとえばメモリの“１”に相当する。このようなヒューズのショートは、導電体の破壊と同じであり、たとえば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“０”に相当し、発生しなかった素子はメモリの“１”に相当する。
【０１０１】
図５１は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのためにヒューズ抵抗９８５に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてヒューズ抵抗９８５を通して流れる電流の絶対値である。ショートしなかった素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧７４２における非ショート判定電流値７４３とショート判定電流値７４４を設定する。すなわち、絶対値がショート判定電圧７４２に一致する読み出し電圧をヒューズ抵抗９８５に印加したときにヒューズ抵抗９８５を通して流れる電流の絶対値が、非ショート判定電流値７４３より高ければ、ショートしていないと判定し、ショート判定電流値７４４より低ければショートしていると判定する。
【０１０２】
図５１の判定方法には、非ショート定電流値７４３とショート判定電流値７４４の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は、ショートが発生したとも発生しなかったとも判定されない。このような素子は、メモリに相当すると“０”でも“１”でもないため、“X”と表記することにする。このとき、素子のセルアレイ上のアドレス（番地）と、対応する素子のデータの一例を示すと、認証素子９７７がキャパシタ９８２の場合と同様に、図３９のようになる。一例として、左から、“１”、“１”、“０”、“１”、“X”、“０”、“０”、“１”、…、“０”となっている。このように、五番目の素子のデータが“X”になっている。ここで、“X”を取り除き、図２２のような白黒のみの市松模様を得る方法は、キャパシタ９８２の場合と同様なので、ここでの説明は省略する。
【０１０３】
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図５１で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、図２３に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
【０１０４】
図５２は、ヒューズ抵抗９８５の一例を示す図である。第一導電体１０５３、第二導電体１０５２、絶縁膜９１０、導電体接合部９７０からなる素子構造である。第一導電体１０５３には第一電極１０５５が接続しており、第二導電体１０５２には第二電極１０５４が接続している。第一電極１０５５は、ワード線５０３あるいはビット線９０２のどちらか一方に接続し、他方は第二電極１０５４に接続する。導電体接合部９７０の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ５０％になるように調整することが望ましい。
【０１０５】
一般に、電気的ストレスによって導電体接合部９７０の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部９７０は断線する。更に高温のため酸化が進み、断線箇所には酸化膜の一部が入り込む。こうして、非ショート状態からショート状態に遷移する。
【０１０６】
更に電気的ストレスを印加し続けると、断線箇所の酸化膜が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。
【０１０７】
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。その中間状態が“X”である。したがって、電気的ストレスを繰り返すうちに“X”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図５１で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図５１の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図５１の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
【０１０８】
一方、物理的乱雑さを最大限に利用するには、“０”と“１”の割合がおおよそ５０％ずつになることが望ましい。“X”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“０”に遷移すので、図４０のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“１”の数が多くても複数回パルス印加するうちに“０”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ（“X”）の割合をできる限り低減しつつ、“０”と“１”の割合をほぼ５０％ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“０”と“１”のデータからなる良品のみを製品として出荷することができる。
（第十一の実施形態）
【０１０９】
図５３は、図５０に採用されるヒューズ抵抗９８５の別の一例である。これは、配線パターン作成時に一緒に作成する。したがって、導電体９３０は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図５３のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。ワード線コンタクト５０４はワード線５０３に接続し、ビット線コンタクト５０５はビット線９０２に接続する。図５４は、このような認証素子９７７を用いたレイアウトの一例である。
【０１１０】
また、図５３の矩形に曲がった部分は通常のメタル配線より細いことが望ましい。たとえば、図５５に示すように、矩形部分以外のところをレジストでマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。図５６は、一例として、その結果を示したものである。
（第十二の実施形態）
【０１１１】
導電体９３０は、複数回矩形に曲げることも可能である。図５７は、その一例であり、９箇所矩形に曲がっている。図５８は、このようなパターンをレイアウトした一例である。こうして、ショートの確率を配線パターニングで調節することが可能である。
（第十三の実施形態）
【０１１２】
図５２の構造は、たとえば、第一導電体１０５３の側から絶縁膜９１０を通してビアを開け、そこに導電体材料を埋め込んで作成できる。ここで一例として、ビア深さの狙い値を第一導電体１０５３と第二導電体１０５２の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図６０の中央の素子のように、ビアが第一の導電体１０５３と第二の導電体１０５２の間にぴたりと収まる。
【０１１３】
しかしながら、一般には、図６１に示すように、ビアのアスペクト比や穴径には製造上のばらつきがあり、ビア深さもばらつく。こうして、ある素子では断線（ショート）し、またある素子は接続する。たとえば、この図６０の例では、左から非ショート、接続、接続である。
【０１１４】
ワード線５０３とビット線９０２で選択した認証素子９７７のビアがショートしていれば電流は流れず、たとえばメモリセルに対応させると“０”状態となる。反対に、ショートしていなければ電流が流れ、たとえばメモリセルに対応させると“１”状態となる。 “０”を白、“１”を黒とみなすと、図２２のようなランダムな白黒のパターンが生成される。
【０１１５】
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図２２のような白黒のランダムな市松パターンを得ることができる。
【０１１６】
しかしながら、メタルビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。たとえば、ショートしている場合（たとえば、図６０の左端のセル）、電気的ストレスを繰り返すうちビア底と第二導電体１０５２の間の絶縁膜（９１０の一部）が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合（たとえば、図６０の中央）、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
【０１１７】
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“１”が優勢の場合、“１”の素子のみ選択してストレスを印加し、反対に、データ“０”が優勢の場合、“０”の素子のみ選択してストレスを印加する。こうして、“１”と“０”の割合を検査しながら、所望の割合に近づくまで、このようなストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子郡に繰り返し印加するストレスパルスは、たとえば、図４０のようなものを使うことができる。
【０１１８】
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図５１で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、図２３に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
（第十四の実施形態）
【０１１９】
本発明に関するチップ認証装置は、たとえば、図６２のように、少なくともチップ認証モジュール６０および入出力制御モジュール８００を、チップ１０に搭載することができる。この入出力制御モジュール８００は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。
（第十五の実施形態）
【０１２０】
本発明に関するチップ認証装置は、たとえば、図６３のように、少なくともチップ認証モジュール６００と、認証装置用制御モジュール８８０と、入出力制御モジュール８１０と、スクランブル装置モジュール８９０と、及び中間コード用バッファーモジュール９００とを、チップ４００に搭載することができる。この入出力制御モジュール８１０は、入出力制御回路およびデータ入出力バッファーを含むことができるが、（第十四の実施形態）の入出力制御回路８００とは異なり、ワード線制御回路及びビット線制御回を含まない。スクランブル装置モジュール８９０は、図２８のスクランブル装置６０４を含み、スクランブル装置６０４が生成する中間コードは、入出力制御モジュール８１０とは独立した中間コード用バッファーモジュール９００に格納され、外部からの要請があってもデータをチップ４００の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御モジュール８８０は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
【０１２１】
外部入出力５０から入力コード{a(i),b(j)}が入力されると、入出力制御モジュール８１０が、入力コード{a(i),b(j)}をスクランブル装置モジュール８９０に渡す。ここで、式２に基づいて生成された中間コード{a(i),f(j)}、あるいは、中間出力{f(j)}は、中間コード用バッファーモジュール９００に一時格納され、認証装置用制御モジュール８８０に引き渡される。認証装置用制御モジュール８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーを駆使して、チップ認証モジュール６００から、中間コード{a(i),f(j)}に応じ、式３に基づいて出力コード{c(i,j)}を読み出し、内部のデータバッファーに一時格納する。認証装置用制御モジュール８８０は、内部のデータバッファーから出力コード{c(i,j)}を呼び出し入出力モジュール８１０に引き渡す。入出力モジュール８１０は、外部入出力５０を通じて出力コード{c(i,j)}をチップ４００の外に出力する。こうして、中間出力{f(j)}をチップ内に閉じ込めることが可能となる。
（第十六の実施形態）
【０１２２】
一般に、電子装置を構成するチップは一つとは限らない。図１４のネットワークの一例を構成する第一、第二、…、第五の周辺装置も、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図６４では、周辺装置１４０が、第一のチップ１１０、第二のチップ１２０、…、第Nのチップ１３０から構成される。このうち、必ずしもすべてのチップがチップ認証装置を搭載している必要はない。図６４の例では、第一のチップ１１０のみがチップ認証装置６０、および、図６２と図６３で説明したチップ認証のための関連モジュールを搭載している。
（第十七の実施形態）
【０１２３】
上述したように、チップ認証装置の“０”と“１”の割合は、ほぼ５０％とすることが望ましい。これは、シャノンのエントロピーの考え方にしたがって、物理的乱雑さのエントロピーを可能な限り最大に近づけるためである。
【０１２４】
“０”と“１”の割合の調整は、上述したように、電気的ストレスの印加の仕方によってある程度調整できる。目標値５０％に対して、たとえば、ずれを１０％程度とするのが望ましいが、ずれを１０％以内にできなくても、本発明を利用することは可能である。その場合、物理的乱雑さのエントロピーを増大させるため、要素数、すなわち、チップ認証装置を構成する認証素子の数を増やせば良い。目標値５０％（誤差±１０％）は、チップ認証装置の占めるチップ面積を節約するための要請に過ぎず、不可欠な条件ではない。上述したように、N=K=128でも十分であろう。
【０１２５】
上述した方法によって、この物理的乱雑さのエントロピーは、シリコンダイ単位で最大に近づけるすることも可能であるし、ウェハー単位で最大に近づけることも可能であるし、Lot単位で最大に近づけることも可能であるし、ライン単位で最大に近づけることも可能であるし、工場単位で最大に近づけることも可能である。
【０１２６】
シリコンダイ単位でエントロピーを最大に近づける場合、チップ認証装置内の複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１２７】
ウェハー単位でエントロピーを最大に近づける場合、ウェハー内の複数のチップにまたがって複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１２８】
Lot単位でエントロピーを最大に近づける場合、Lot内の複数のウェハーおよび複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１２９】
ライン単位でエントロピーを最大に近づける場合、ライン内の複数のLot、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３０】
工場単位でエントロピーを最大に近づける場合、工場内の複数のライン、複数のLot、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３１】
上述のように、認証素子をサンプリングする実体は、チップ、ウェハー、Lot、ライン、工場と、生産管理の都合上便宜拡大することが可能である。拡大の仕方は、特定のラインの製造期間を区切って行ってもよく、特定の工場の製造期間を区切って行ってもよい。ここでは、必ずしも、全認証素子を検索する必要はない。
（第十八の実施形態）
【０１３２】
物理的乱雑さの発生源は複数あって構わない。ただし、一つの認証素子内に存在する発生源は互いに直列の関係にあり、複数の認証素子にまたがって存在する発生源はお互い並列の関係にある。
【０１３３】
したがって、一つの認証素子内に２つの発生源がある場合、どちらか一方が非導電状態にある場合、認証素子そのものが非導電状態となる。それ以外（どちらも導電状態）の場合のみ、認証素子は導電状態である。すなわち、論理回路で言えば、一つの認証素子に含まれる発生源は否定論理和（NOR）の関係を満たす。
（第十九の実施形態）
【０１３４】
図３４の例では、入力コードの桁数がNであるのに対し、出力コードの桁数がNの２乗となっている。入力コードと出力コードの桁数をそろえるのは簡単である。たとえば、次の式４を用いて、図３４での出力{c(i,j)}を更に新しい出力{c’(j)}に変化する。
2017028354.tif 000006
ただし、jは１からNまでの自然数である。図６５では、式４で変換された新しい出力{c’(j)}を出力する様子を示している。入力コードと出力コードの桁数をそろえなくて良い場合には省略できる。
（第二十の実施形態）
【０１３５】
図５３、図５４、図５６、及び、図５７の導電体細線は、製造および加工条件により、電気的パルスで破壊する以前から断線、もしくは、異常に抵抗の高いことがある。この断線もしくは異常高抵抗の状態は、たとえばメモリの“０”状態に相当し、製造および加工条件により確率的に発生し、物理的乱雑さを反映していると考えられる。この場合、電気的パルスを印加する必要はない。また、図５３は、本実施形態の一例に過ぎず、導電体９３０は、矩形に曲がっている必要もない。
【０１３６】
上記一連の実施形態では、認証素子９７７のアドレスの指定の仕方は、認証素子の二つの端子に、それぞれワード線５０３とビット線９０２を接続するものである。認証素子９７７に印加する電圧は、それぞれ選択するワード線５０３及びビット線９０２の間に印加する。認証素子９７７を流れる電流は、それぞれ選択するワード線５０３及びビット線９０２の間を流れる。
（第二十一の実施形態）
【０１３７】
アドレスの別の一例として、図６６に図示するように、認証素子９７７は、少なくとも第一の端子９９４および第二の端子９９３を有する。第一の端子９９４は、ビット線９０２に接続する第二の制御ゲート９９７、及び、ワード線５０３に接続する第一の制御ゲート９９６を通して、制御電極９９０に接続する。アドレスの指定は、ビット線９０２とワード線５０３で行う。第二の端子９９３は、接地している。読み出し電圧や素子破壊のためのストレス電圧は、制御電極９９０に印加される。こうして、選択されたアドレスの素子にのみ、読み出し電圧および破壊のためのストレス電圧が印加される。ストレス電圧の一例は、図４０の通りである。導通状態であれば、電流は、ワード線５０３およびビット線９０２で選択された制御電極９９０を流れる。
（第二十二の実施形態）
【０１３８】
近年、廃棄家電の不法投棄が世界的な問題になっている。（たとえば、非特許文献２参照。）。
【非特許文献２】http://www6.nhk.or.jp/wdoc/backnumber/detail/?pid=150624 報道によれば、リサイクル制度が施行されている欧州でも３分の２が不正ルートを経由し、アジアやアフリカで違法に処理されている。特に中国では、ボードから強引に引きちぎったICチップのパッケージ上のラベルを張替え、格安の新品として市場で売りさばかれている。不正廃棄した先進国にも輸出され還流されていると考えられる。ボードから引きちぎるとき、物理的・熱的に損傷を受けたICチップは、正常に機能せず、多くの家電製品の故障や不具合の原因になる。一部のICチップの用途は、家電製品のみに留まらない。特に、DRAMやフラッシュメモリなど、汎用メモリIC製品は用途が広く、偽造チップが高速列車や航空機の制御系などに部品として使われた場合、大惨事を招く恐れがあるため注意が必要である。
【０１３９】
図６７は、チップ偽造の手口を簡単に示すものである。たとえば、廃棄家電のボードに、A社の汎用メモリチップが採用されている。このチップを強引に剥ぎ取り、B社のラベルを張り、B社の新品チップとして格安で販売、輸出する。もちろん、これは偽造品である。残念ながら、不法リサイクルそのものを直ぐに解決する方法はない。有効な対策は、仕入れたICチップ製品が偽造品でないかどうか、工場の組み立て現場ですばやく判定する方法である。幸い、本願のチップ認証装置は、チップ内のIC回路そのものに認証をつけることが可能である。
【０１４０】
偽造検査方法を図６８を使って説明する。ここでは、チップメーカー毎に偽造判定用パスコードを公開する。組立工場の仕入れ担当では、各社の公開パスコードを、仕入れたチップに入力し、それぞれ出力コードを読み取る。その出力コードが各チップメーカーに正しいかどうか問い合わせる。説明を簡単にするため、ここでは、全てのチップメーカーから返答があると仮定する。図６７で偽造されたチップであれば、A社とB社から自社の製品であると返事が来る。このように２社以上から自社の製品であると回答された場合、偽造チップと判定する。また、A社から自社のチップであると返答された場合も、B社のラベルが付いているので偽造品と判定される。C社から自社製品であると返答された場合、やはり、B社のラベルが付いているので偽造されたものと判定される。いずれの場合も、B社は偽造品を販売するメーカーとして、組立工場の仕入れ担当に知られることになる。B社のみから自社製品であると返答された場合は、図６７で偽造されたものではなく、B社の製品である。
【０１４１】
ラベルには、メーカー名以外にも、製品番号、Lot番号等の製品情報が示されている。ラベルが示すメーカー名と、出力コードによって判明するメーカー名が一致しても、ラベルの製品番号やLot番号に示された情報が異なることがある。これは、メーカー内部の不正による偽造か、当該メーカーの製品管理がずさんであることを示す。
【０１４２】
以上により、偽造判定の条件をまとめる。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が異なる場合、偽造と判定する。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が等しい場合、更に、ラベルに示されるその他の情報（たとえば、製品番号、Lot番号、製造年月日等）を、当該出力コードに対応して照会する。ここで一致したとき初めて偽造ではないと判定する。一致しなかった場合、メーカー内部での偽造か、当該メーカーの製品管理がずさんであると判断される。
【０１４３】
上述した実施形態において、説明のために用いら入れたMOSFETは、MOS型トランジスタのことである。一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型の拡散層と、第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極に接続するゲート端子と、一方の第二導電型拡散層に接続するソース端子と、他方の第二導電型拡散層に接続するドレイン端子と、から構成される。また、前記第一導電型半導体基板、前記ゲート絶縁膜、および、前記ゲート電極は、MOSキャパシタを構成している。
【０１４４】
上述した実施形態において、説明のために用いら入れた不揮発性メモリトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。NOR型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、NAND型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、NAND型配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
【０１４５】
上述した実施形態において、説明のために用いら入れたPN接合は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、MOS型トランジスタや不揮発性メモリトランジスタにも自動的に形成されている。
【０１４６】
上述した実施形態において、説明のために用いら入れたショットキー接合は、半導体と導電体を接触させたものである。PN接合も、ショットキー接合も、ダイオード接合の一種である。
【０１４７】
上記において、MOS型トランジスタ、不揮発性メモリトランジスタ、及びPN接合の構造を説明するために用いた、第一導電型半導体基板は、第一および第二導電型半導体基板の広い領域に作成された、第一導電型拡散層（通常ウェル）で置き換えることも可能である。
【０１４８】
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
【０１４９】
この発明によれば、電子装置のネットワークを、周辺装置と、周辺装置の登録状況を管理する基幹サーバーとに分割し、基幹サーバーは中央管理とし、中央管理の手が行き届かない周辺装置には、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、システム全体のセキュリティを向上し、周辺装置への遠隔攻撃を効率よく未然に防ぐことが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置間のものであり、特定のシステムの内か外かに関わらない。また、偽造チップ問題に対する対策も、同じ認証素子によるチップ認証装置で実現できる。
【０１５０】
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のSIMカードのようなものがIoT/IoE用の周辺装置に用いられるようなビジネスモデルに有効である。
【産業上の利用可能性】
【０１５１】
中央管理の行き届かない周辺装置を無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
【図面の簡単な説明】
【０１５２】
【図１】従来の認証システムを搭載したチップの一例を示す図。
【図２】本発明のチップ認証装置を搭載したチップの一例を示す図。
【図３】本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。
【図４】外部I/Oを介して信号をやり取りする交信の一例を示す図。
【図５】本発明のチップ認証装置を搭載したチップを含む装置を、本発明のチップ認証装置と接続する装置に登録する方法の一例を示す図。
【図６】正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。
【図７】遠隔攻撃者が、不正にネットワークに接続する方法の一例を示す図。
【図８】遠隔攻撃者が、正規の装置の装置を攻撃する方法の一例を示す図。
【図９】本発明のチップ認証装置を搭載したチップを含む周辺装置を、基幹サーバーに接続する方法の一例を示す図。
【図１０】基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。
【図１１】本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。
【図１２】基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。
【図１３】本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。
【図１４】複数の基幹サーバーと、本発明のチップ認証装置を搭載したチップを含む複数の周辺装置からなるネットワークの一例を示す図。
【図１５】複数の基幹サーバーが一つの周辺装置に接続する一例を示す図。
【図１６】本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。
【図１７】本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。
【図１８】本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。
【図１９】本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。
【図２０】入力コードと登録コードの対応表の一例を示す図。
【図２１】周辺装置の正当性を検査するための作業工程の一例を示す図。
【図２２】市松状に割り振られたデータの一例を示す図。
【図２３】認証素子のレイアウトの一例を示図。
【図２４】N行N列の市松状に並べられた認証素子のレイアウトの一例を示す図。
【図２５】N行N列の市松状に並べられた認証素子に入力コードを入力する方法の一例を示す図。
【図２６】入力コード、物理乱数配列、出力コードの関係の一例を示す図。
【図２７】チップ認証装置の利用法の一例を示すための基本構成を示した概念図。
【図２８】スクランブル装置を加えた実施形態の概念を示す図。
【図２９】スクランブル装置の基本構成を示す図。
【図３０】スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。
【図３１】スクランブル装置の動作原理を説明する図。
【図３２】スクランブル装置の動作原理を説明する図。
【図３３】チップ認証装置の動作原理を説明する図。
【図３４】スクランブル装置およびチップ認証装置の動作原理を説明する図。
【図３５】スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。
【図３６】スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。
【図３７】認証素子の一例を示す図。
【図３８】認証素子の読み出し方法の一例を説明するための図。
【図３９】認証素子のエラー補正方法の一例を説明する図。
【図４０】認証素子を破壊する方法の一例を説明する図。
【図４１】認証素子の構造の一例を示す図。
【図４２】認証素子の一例を示す図。
【図４３】認証素子の一例を示す図。
【図４４】認証素子の一例を示す図。
【図４５】認証素子の一例を示す図。
【図４６】認証素子の一例を示す図。
【図４７】周辺回路の一部を含む認証装置の素子配列を示す図。
【図４８】認証素子のデータ読み出し方法の一例を説明する図。
【図４９】認証素子のデータ読み出し方法の一例を説明する図。
【図５０】認証素子の一例を示す図。
【図５１】認証素子の読み出し方法の一例を説明するための図。
【図５２】認証素子の構造の一例を示す図。
【図５３】認証素子の構造の一例を示す図。
【図５４】認証素子の配列構造の一例を示す図。
【図５５】認証素子の製造方法の一例を示す図。
【図５６】認証素子の製造方法の一例を示す図。
【図５７】認証素子の構造の一例を示す図。
【図５８】認証素子の配列構造の一例を示す図。
【図５９】認証素子の一例を示す図。
【図６０】物理的乱雑さの起源の一例を示す図。
【図６１】物理的乱雑さの起源の一例を示す図。
【図６２】チップ認証装置を含む半導体チップの一例を示す図。
【図６３】スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。
【図６４】チップ認証装置を含むチップを搭載した周辺装置の一例を示す図。
【図６５】出力コードの加工をする一例を示す図。
【図６６】認証素子のアドレスを指定する配線の一例を示す図。
【図６７】偽造チップ作成方法の概念を示す図。
【図６８】偽造チップ防止方法の概念を示す図。
【符号の説明】
【０１５３】
１、１０、１００、４００  チップ
２  ファームウェア
３  認証制御デバイス
４  認証コード（ID）
５、５０  外部入出力装置（I/O）
６  認証システム（従来例の一例）
１１  第一の認証
１２  第二の認証
１３  第三の認証
２１  第一のチップ認証装置
２２  第二のチップ認証装置
３１  入力信号誤差
３２  出力信号誤差
４２、１０２、４０２  入力コード
４３  登録コード
６０、６００  チップ認証装置
６１  チップ認証装置搭載チップ
７１  第一の装置
７２  第二の装置
７３  第三の装置
７４  第四の装置
７５  第五の装置
８０  交信シリーズ
８３  偽交信シリーズ
９２  第二の装置の正規使用者
９３  遠隔攻撃者
１１０  第一のチップ
１２０  第二のチップ
１３０  第Nのチップ
１４０  周辺装置
２０２、４０３  登録コード
３０２、４０１  内部メモリ
４００  基幹サーバー
４１０  第一の周辺装置
４２０  第二の周辺装置
４３０  第三の周辺装置
４４０  第四の周辺装置
４５０  第五の周辺装置
５０３  ワード線
５０４  ワード線コンタクト
５０５  ビット線コンタクト
５３０  導電体ビア
６０１、６０５  乱数発生装置
６０２、６０６  コード発生装置
６０４  スクランブル装置
６１１  チップ認証用セルアレイ（素子領域）
６１４  スクランブル装置セルアレイ
７４２  ショート判定電圧
７４３  非ショート判定電流値
７４４  ショート判定電流値
７９０  ページバッファ回路
７９１  ビット線接続ゲート
７９１０  ビット線接続トランジスタ
８００、８１０  入出力制御モジュール
８８０  認証装置用制御モジュール
８９０  スクランブル装置モジュール
９００  中間コード用バッファーモジュール
９０２  ビット線
９１０  絶縁膜
９３０  導電体
９３１  レジスト
９３２  破壊判定電圧
９３３  破壊判定電流値
９３４  非破壊判定電流値
９６０  チップ認証用素子アレイの等価回路
９７０  導電体接合部
９７１  入出力ピン
９７２  行デコーダー
９７３  列デコーダー
９７７  認証素子
９８０  外部入出力制御回路
９８２  キャパシタ
９８３  トランジスタ
９８４  不揮発性メモリトランジスタ
９８５  ヒューズ抵抗
９８６  PN接合（ダイオード）
９８７  ショットキー接合（ダイオード）
９９０  制御電極
９９３  第二の端子
９９４  第一の端子
９９６  第一の制御ゲート
９９７  第二の制御ゲート
１０５１  導電体先端部
１０５２  第二導電体
１０５３  第一導電体
１０５４  第二電極
１０５５  第一電極
１４００  第一の基幹サーバー
１４１０  第一の共通パスコード
１４１１  別の共通パスコード（図示せず）
２４００  第二の基幹サーバー
２４１０  第二の共通パスコード
３４００  第三の基幹サーバー
３４１０  第三の共通パスコード
４１０１  第一の認証
４２０１  第二の認証
４３０１  第三の認証
４３０２  第四の認証
４４０２  第五の認証
４５０２  第六の認証
９３３０、９３３１  破壊判定電圧値
９３４０、９３４１  非破壊判定電圧値
９８１１  ドレイン選択トランジスタ（SGD）
９８１２  ソース選択トランジスタ（SGS）
【図１】
2017028354.tif 000007
【図２】
2017028354.tif 000008
【図３】
2017028354.tif 000009
【図４】
2017028354.tif 000010
【図５】
2017028354.tif 000011
【図６】
2017028354.tif 000012
【図７】
2017028354.tif 000013
【図８】
2017028354.tif 000014
【図９】
2017028354.tif 000015
【図１０】
2017028354.tif 000016
【図１１】
2017028354.tif 000017
【図１２】
2017028354.tif 000018
【図１３】
2017028354.tif 000019
【図１４】
2017028354.tif 000020
【図１５】
2017028354.tif 000021
【図１６】
2017028354.tif 000022
【図１７】
2017028354.tif 000023
【図１８】
2017028354.tif 000024
【図１９】
2017028354.tif 000025
【図２０】
2017028354.tif 000026
【図２１】
2017028354.tif 000027
【図２２】
2017028354.tif 000028
【図２３】
2017028354.tif 000029
【図２４】
2017028354.tif 000030
【図２５】
2017028354.tif 000031
【図２６】
2017028354.tif 000032
【図２７】
2017028354.tif 000033
【図２８】
2017028354.tif 000034
【図２９】
2017028354.tif 000035
【図３０】
2017028354.tif 000036
【図３１】
2017028354.tif 000037
【図３２】
2017028354.tif 000038
【図３３】
2017028354.tif 000039
【図３４】
2017028354.tif 000040
【図３５】
2017028354.tif 000041
【図３６】
2017028354.tif 000042
【図３７】
2017028354.tif 000043
【図３８】
2017028354.tif 000044
【図３９】
2017028354.tif 000045
【図４０】
2017028354.tif 000046
【図４１】
2017028354.tif 000047
【図４２】
2017028354.tif 000048
【図４３】
2017028354.tif 000049
【図４４】
2017028354.tif 000050
【図４５】
2017028354.tif 000051
【図４６】
2017028354.tif 000052
【図４７】
2017028354.tif 000053
【図４８】
2017028354.tif 000054
【図４９】
2017028354.tif 000055
【図５０】
2017028354.tif 000056
【図５１】
2017028354.tif 000057
【図５２】
2017028354.tif 000058
【図５３】
2017028354.tif 000059
【図５４】
2017028354.tif 000060
【図５５】
2017028354.tif 000061
【図５６】
2017028354.tif 000062
【図５７】
2017028354.tif 000063
【図５８】
2017028354.tif 000064
【図５９】
2017028354.tif 000065
【図６０】
2017028354.tif 000066
【図６１】
2017028354.tif 000067
【図６２】
2017028354.tif 000068
【図６３】
2017028354.tif 000069
【図６４】
2017028354.tif 000070
【図６５】
2017028354.tif 000071
【図６６】
2017028354.tif 000072
【図６７】
2017028354.tif 000073
【図６８】
2017028354.tif 000074
【手続補正書】
【提出日】平成28年7月14日(2016.7.14)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストは、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記複数の周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群、および、第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個の前記ワード線群及び一つ又は数個の前記ビット線群に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する、ことを特徴とする電子装置のネットワークユニット。
【請求項２】
一つの第一ネットワークユニットと複数の第二ネットワークユニットを含む複数の電子装置のネットワークユニットを含み、前記第一ネットワークユニットはトポロジーにより少なくとも一つの第二ネットワークユニットに接続し、前記複数のネットワークユニットが、それぞれ一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、第一ネットワークユニットにおいて、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストの要素は、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、第一ネットワークユニットにおいて、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、第一ネットワークユニットにおいて、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、第一ネットワークユニットにおいて、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、第一ネットワークユニットにおいて、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、第一ネットワークユニットにおいて、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群および第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、第一ネットワークユニットにおいて、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、第一ネットワークユニットにおいて、前記チップ上にレイアウトされる一つ又は数個の前記ワード線群及び一つ又は数個の前記ビット線群に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、第一ネットワークユニットにおいて、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、第一ネットワークユニットにおいて、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、第一ネットワークユニットにおいて、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、第一ネットワークユニットにおいて、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する、ことを特徴とする電子装置のネットワーク。
【請求項３】
前記トポロジーは前記第一ネットワークユニットの基幹サーバーを含み、前記第一ネットワークユニットの基幹サーバーは前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続することを特徴とする、請求項２記載の電子装置のネットワーク。
【請求項４】
前記トポロジーは前記第一ネットワークユニットの複数の周辺装置の中の少なくとも一つを含み、前記少なくとも一つの周辺装置はそれぞれ前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続することを特徴とする、請求項２記載の電子装置のネットワーク。
【請求項５】
前記トポロジーは前記第一ネットワークユニットの基幹サーバー及び複数の周辺装置の中の少なくとも一つを含み、前記第一ネットワークユニットの基幹サーバーは前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続し、前記少なくとも一つの周辺装置はそれぞれ前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続することを特徴とする、請求項２記載の電子装置のネットワーク。
【請求項６】
前記周辺装置に接続する少なくとも一つの基幹サーバーは、前記周辺装置が任意の媒体から受信する入力信号をモニターし、前記周辺装置と該媒体のアクセスを管理することを特徴とする、請求項２記載の電子装置のネットワーク。
【請求項７】
請求項１または２記載の電子装置のネットワークの基幹サーバーにそれぞれ行う検査工程であって、
前記基幹サーバーに接続する複数の周辺装置の内部メモリーを個々に読み出す段階と、前記基幹サーバーに保存されている少なくとも一つのパスコードと比較し、一致するコードが含まれているかどうかを判定する段階とを含み、含まれていない場合、更に読み出すデータ及び前記基幹サーバーに保存されている少なくとも一つのパスコードに対応する少なくとも一つの登録コードの中に一致するものがあるかどうか判定し、含まれていない場合、前記周辺装置を公正と認可し、公正と認定されなかった場合にネットワークから削除することを特徴とする、検査工程。
【請求項８】
前記パスコードを２進法で展開した要素を、それぞれ第一の入力配列と第二の入力配列に分割し、前記第一の入力配列の各要素を前記第一の乱数発生装置の対応する行にそれぞれ割り当て、前記第二の入力配列の各要素を前記第一の乱数発生装置の対応する列にそれぞれ割り当て、前記第一の乱数発生装置の行数と列数の和は、前記第一の入力配列の要素数と前記第二の入力配列の要素数の和と、等しいか、あるいは、それ以上である、ことを特徴とする、請求項１または２記載の電子装置のネットワーク。
【請求項９】
前記チップ認証装置は、第二の乱数発生装置を含み、前記第二の乱数発生装置は、第二の乱数コードを発生し、前記第二の乱数コードは第二の行群および第二の列群が定義するアドレスに配置される複数の認証素子が電子的に出力する電子データの集合体であることを特徴とする、請求項１または２記載の電子装置のネットワーク。
【請求項１０】
前記第二の乱数発生装置において、任意に選択された列番号に対応して、電子的に出力される認証素子のデータを、行方向に加算して２で割って得た余りと、前記第一の入力配列と前記第二の入力配列の、それぞれ前記列番号に対応する番号の要素を更に加算して２で割った余りを、前記列番号に応じて配列し、中間出力として出力するスクランブル装置を、更に含むことを特徴とする、請求項９記載の電子装置のネットワーク。
【請求項１１】
前記周辺装置は、更に、中間コード用バッファーモジュールを含み、前記中間コード用バッファーモジュールは、前記中間出力を、前記周辺装置の認証作業中に、一時的に、格納することを特徴とする請求項１０記載の電子装置のネットワーク。
【請求項１２】
前記周辺装置は、更に、第一のコード生成装置を含み、前記第一のコード生成装置は、前記第一の入力配列の要素と、前記第二の入力配列の要素、もしくは、前記中間出力の要素と、前記第一の乱数コードの要素とを、選択されたビット線および選択されたワード線で指定されるアドレス毎に加算して２で割った余りを、前記アドレス毎に出力し、前記出力コードを生成することを特徴とする、請求項１０記載の電子装置のネットワーク。
【請求項１３】
前記認証素子は、少なくとも二つの端子を有し、前記二つの端子の間に少なくとも一回以上パルス電圧を印加することにより、前記認証素子を確率的に破壊し、前記二つの端子の間に所定の読み出し電圧を入力し、前記二つの端子の間を流れる電流の絶対値が、第一の閾電流値より高いとき、前記第一の値を出力したとみなし、第二の閾電流値より低いとき、前記第二の値を出力したとみなし、前記第一の閾電流値は、前記第二の閾電流値より高く、前記電流値が前記第二の閾電流値より高く、前記第一の閾電流値より低い場合、第三の値を出力したとみなし、前記第一および前記第二の値を出力する認証素子から、前記チップ認証装置を構成することを特徴とする、請求項１または２記載の電子装置のネットワーク。
【請求項１４】
前記第一の値を出力する第一の状態に属する認証素子の割合が、前記第二の値を出力する第二の状態に属する認証素子の割合より、小さければ、一部あるいは全ての前記第二の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項１５】
前記第一の状態に属する認証素子の割合が、前記第二の状態に属する認証素子の割合より、大きければ、一部あるいは全ての前記第一の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項１６】
前記認証素子は、前記チップの製造工程によって一括して製造されるキャパシタであり、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、第一の端子は一つ又は数個の前記ワード線群の中の一つのワード線に接続し、第二の端子は、一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項１７】
前記認証素子は、前記チップの製造工程によって一括して製造されるダイオード接合であり、前記ダイオード接合の一端は、一つ又は数個の前記ワード線群の中の一つのワード線に接続し、他方の端は、一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線に印加することによって、前記ダイオードを、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項１８】
前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタであり、前記ＭＯＳ型トランジスタは、少なくとも、第一の端子、第二の端子、第三の端子を有し、前記第一の端子が一つ又は数個の前記ワード線群の中の一つのワード線に接続し、前記第二の端子が一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一の端子は、前記第一導電型半導体基板、もしくは、前記第一導電型ウェル上のゲート絶縁膜の表面上に存在し、前記パルス電圧を前記ワード線に印加することによって、前記ゲート絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項１９】
前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタとキャパシタから構成され、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、前記ＭＯＳ型トランジスタは、少なくとも、第三の端子、第四の端子、第五の端子を有し、前記第三の端子が一つ又は数個の前記ワード線群の中の一つのワード線に接続し、前記第四の端子が一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記第五の端子が前記第一の端子に接続され、前記第四の端子と前記第五の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第三の端子は、前記第一導電型半導体基板上、もしくは、前記第一導電型ウェル上のゲート絶縁膜の表面上に存在し、前記ワード線と前記ビット線の間に前記ＭＯＳトランジスタをオン状態にする転送電圧を印加している間に、前記パルス電圧を前記ビット線に印加することによって、前記キャパシタの絶縁膜を、確率的に破壊し、前記転送電圧を印加している間に、前記読み出し電圧を、前記ビット線に印加することによって、前記ビット線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２０】
前記認証素子は、前記チップの製造工程によって一括して製造される不揮発性メモリの選択トランジスタであり、前記選択トランジスタは、少なくとも第一の端子、第二の端子、第三の端子、を有し、前記第一の端子が一つ又は数個の前記ワード線群の中の一つのワード線に接続し、前記第二の端子が一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一導電型半導体基板、若しくは、前記第一導電型ウェル上には、トンネル膜、電荷蓄積層、層間絶縁膜の一部あるいは全てを導電体に置き換えた層間導電層、制御ゲートが順に積層され、前記第一の端子は、前記制御ゲートに接続し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２１】
前記認証素子は、複数の選択トランジスタを含み、前記複数の選択トランジスタは、複数の不揮発性メモリを有するチップに設置され、且つ、前記複数の選択トランジスタは前記チップの製造工程によって一括して製造され、前記複数の選択トランジスタを半導体基板上で直列したものであり、少なくとも、複数のゲート端子、および、一つのビット線端子を有し、前記ゲート端子は、それぞれ前記ワード線に接続され、前記ビット線端子は、前記ビット線に接続され、前記選択トランジスタは、前記半導体基板上に、トンネル膜、電荷蓄積層、層間絶縁膜の一部あるいは全てを導電体に置き換えた層間導電層、制御ゲートが順に積層され、前記制御ゲート上に前記ゲート端子が存在し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２２】
前記認証素子は、前記チップの製造工程によって一括して製造されるヒューズ抵抗であり、前記ヒューズ抵抗は、抵抗材を第一の端子と第二の端子で挟んだものであり、第一の端子は一つ又は数個の前記ワード線群の中の一つのワード線に接続し、第二の端子は、一つ又は数個の前記ビット線群の中の一つのビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記抵抗材を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２３】
前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域に挟まれた絶縁膜と、前記第一の導電体領域から、前記絶縁膜を貫通して前記第二の導電体領域に達する空間的な穴を開ける、開口部形成工程と、前記開口部に導電性物質を埋め込む、導電材埋め込み工程と、によって製造される導電体結線孔と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義する一つ又は数個のワード線群の中の一つのワード線及び一つ又は数個のビット線群の中の一つのビット線に接続し、前記導電体結線孔の長さの製造狙い値が、前記第一及び第二の導電体領域の間の距離に等しく、前記開口部形成工程および導電材埋め込み工程を経て製造された複数の導電体結線孔の長さが、確率的に、前記第一及び第二の導電体領域の間の距離より長く、あるいは、短く、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２４】
前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域を架橋する導電性細線と、前記第一及び第二の導電体領域に挟まれ、前記導電性細線を包む絶縁膜と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義する一つ又は数個のワード線群の中の一つのワード線及び一つ又は数個のビット線群の中の一つのビット線に接続し、前記導電性細線の製造工程、あるいは、前記導電性細線を包む絶縁膜の製造工程における、製造工程上のばらつきによって、前記導電性細線が確率的に断線し、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項１３記載の電子装置のネットワーク。
【請求項２５】
半導体製造工程で大量生産されるチップと、前記チップを製造する、第一のチップメーカーと、前記チップを用いて製品を組み立てるチップユーザーとが、共同に執行するチップ認証装置の利用方法であって、前記チップに、前記第一のチップメーカーが公開する第一の公開パスコードを入力し、第一の出力コードを出力として獲得し、前記第一のチップメーカーが第一のリストを管理し、前記第一のリストは第一の公開パスコード及び第一の公開パスコードに対応する前記第一の出力コードを記録する段階と、前記チップの表面のラベルにメーカー名が記載された前記第二のチップメーカーが公開する第二の公開パスコードを、前記チップに入力し、第二の出力コードを出力として獲得し、前記第二のチップメーカーが第二のリストを管理し、前記第二のリストは第二の公開パスコード及び第二の公開パスコードに対応する第二の出力コードを記録する段階とを含み、前記チップユーザーが前記チップに第一の公開パスコードを入力し、電子的に出力する電子データの集合を読み取り、前記電子データの集合は読み取りコードとして前記チップユーザーが入力する前記第一の公開パスコードに対応し、前記第一のチップメーカーに、前記読み取りコードを送信し、前記第一の出力コードと前記読み取りコードの比較を依頼し、前記第一の出力コードと前記読み取りコードが一致した場合、前記チップを偽造品と判定し、前記チップは、それぞれ固有のチップ認証装置を含み、前記チップ認証装置は、前記チップ上にレイアウトされる、複数のビット線の中の一つ又は数個のビット線群および複数のワード線の中の一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、前記一つ又は数個のワード線群及び前記一つ又は数個のビット線群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子を含む物理的乱数発生装置を含み、前記認証素子は、前記半導体製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個のワード線群及び一つ又は数個のビット線群に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記物理的乱数発生装置は、前記認証素子が、電子的入力に対応して電子的に出力する電子データの集合体として、乱数コードを発生し、前記第一の出力コードは、前記第一の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合あることを特徴とする、チップ認証装置の利用方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子装置間通信およびネットワークに用いる物理的チップ認証方式に関する。
【背景技術】
【０００２】
２１世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス（Internet of Things, ＩｏＴ）は既存のどの市場にも属さず、ＩｏＴの更に先を行くインターネット・オブ・エブリシング（Internet of Everything, ＩｏＥ）にいたっては社会基盤そのものを変革する可能性を秘めている。
【０００３】
技術的には、ネットに接続する最小単位（ノード）である半導体チップと半導体チップの間の通信技術として捕らえることができるが、その数が数兆個から数十兆個にまで上る点（Trillion Nodes）でこれまでのネットワーク技術と異なる。世界人口を７０億人とすると、一人当たり数百から約千個程度のチップに囲まれている計算になる。これらのチップは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。すべての個人がこれらすべてを常時きめ細かく管理することは現実的に不可能である。また、訓練を受けた専門家が中央管理するにしても数兆個ものノードを同時に管理するための計算機リソースは地球上に存在しない。仮に将来開発されたとしても、誰が責任を持ってその管理システムを扱うべきかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人工知能に任せることも現状では良いとは言えないし、現実的でもない。
【０００４】
管理できないとしたら何が問題になるか？大容量のＬｉイオン電池を搭載した自動運転車がハッキングされたらどうなるかを考えると理解しやすい。遠隔操作された多数の自動運転車が攻撃対象（ショッピングセンター、大規模な地下駐車場、ターミナル駅、…）まで無人で移動する。大量のＬｉイオン電池が一箇所にあつまり、パワーシステムが乗っ取られている。パワー制御システムに何らかの破壊的誤動作を意図的に加え、Ｌｉイオン電池を大爆発させることが可能となるかもしれない。ある日突然ショッピングセンターの駐車場が大爆発を起こしたり、あるいは、列車運行制御システムを乗っ取り新幹線を正面衝突させたり、原子炉や航空管制システムを乗っ取られる危険と背中合わせになる。
【０００５】
このような重要施設のネットワークは通常のインターネットからは非常に強力なファイアウォールで隔離されている（或いは物理的に隔離されている）から大丈夫だと考えるのは早計である。現実にイランの核施設はStuxnetと呼ばれるマルウェアによる攻撃を受け、深刻な被害を被った（例えば、非特許文献１参照）。
【０００６】
Stuxnetの感染経路は諸説あるが、もっとも有力なのはモバイル端末かＵＳＢメモリだと言われている。Stuxnetは一度インターネットに解き放たれると何ヶ月もかけてターゲットのシステムに侵入するチャンスを伺う。途中強力なファイアウォールがあってもＵＳＢメモリやモバイル端末に侵入してファイアウォール内で接続されるまで待つ。接続された後はバックドアを開き、遠心分離器のＰＬＣ（programmable logic controller）を乗っ取り、遠隔操作を開始する。こうして、イランの核施設の１０００台もの遠心分離器が急激な加速と減速を繰り返し破壊された。物理的に孤立したシステム内ならStuxnet自身が遠心分離器を破壊させる。
【０００７】
イランの核施設で破壊された遠心分離器は通常のネットワークからは遮断されていたが、メンテナンスのため機器の製造装置メーカーが持ち込むモバイル端末と定期的に接続する必要があった。もし通常のネットワークとつながっていればこのような作業は必要ないが、遮断されているために返って必要な手順となる。また、Stuxnetはターゲット以外に感染しても潜んでいるだけで何もしない。したがって、ウィルス対策ソフトで検知することは難しい。
【０００８】
Stuxnetによる攻撃は、イランの核開発を遅らせイスラエルによるイランへの空爆を防ぐために行われたとも考えられている。一度手口が判明すれば対策は可能と思われるかも知れない。しかしながら、恐ろしいことはStuxnetのソースコードがハッカーによって盗まれ、既に流出していることである。２０１４年に入り、Stuxnetに良く似た性質を持つ新種のウィルスが報告されている（例えば、非特許文献２参照）。
【０００９】
BadUSBと呼ばれるこのウィルスは、産業機器の制御プログラムであるＰＬＣの代わりにＵＳＢ機器を制御するファームウェアを乗っ取る。ＵＳＢ機器は何かに接続して使用するものであり、そのための認証を内包している。この認証はファームウェアに含まれる。ファームウェアはＵＳＢ機器の制御チップに保存されておりチップを制御するためのプログラムである。BadUSBはこの認証を盗み、このＵＳＢ機器が接続しているものには何もしない。例えば、パソコンには感染しないが、パソコンを操作するために接続しているマウスやキーボードを乗っ取ることができる。このようにして地球の裏側にいるハッカーが他人のコンピューターを遠隔操作することができる。このとき、コンピュータには感染していないので、コンピュータのウィルス対策ソフトはほとんど何も検知できない。
【００１０】
IoT/IoEでは通信の最小単位（ノード）は機器の制御チップである。制御チップには制御プログラム（ファームウェア）が保存される。このファームウェアはそれぞれのチップを認識するために認証コードを内包する。上述した自動運転車を遠隔操作する新たな攻撃は、この認証コードを盗み自動運転車を遠隔操作する点でBadUSBやStuxnetと類似している。
【００１１】
今後９・１１のような同時多発テロは遠隔操作により少数のハッカーグループによって引き起こされる可能性がある。このような新たな脅威は、従来のテロ対策やサイバーセキュリティ技術では防げない。
【先行技術文献】
【非特許文献】
【００１２】
【非特許文献１】http://www.nikkei.com/article/DGXNASFK2602G_W2A221C1000000/
【非特許文献２】http://www.nikkei.com/article/DGXMZO79858560Y4A111C1000000/
【非特許文献３】http://www6.nhk.or.jp/wdoc/backnumber/detail/?pID=150624
【発明の概要】
【発明が解決しようとする課題】
【００１３】
サイバーセキュリティ技術はソフトウェアによる中央管理が主流である。セキュリティ技術に関する理解は人によりばらつきが多く、すべてのエンドユーザーに専門的な運用管理を正しく行わせることはほとんど不可能だろう。９９９人が適正に運用していてもたった一人が適正に運用していなければセキュリティは脆弱になる。こうして、ネットワークを介したシステムのセキュリティは、十分訓練された管理者が十分信頼性の高いソフトウェアを使い中央管理することが望ましいとされている。中央管理はつまるところ、ネットワークを介したソフトウェアによる管理である。
【００１４】
しかしながら、上述したように、IoT/IoEのビジネスモデルではノード数は数兆個にもなり、そもそも中央管理が難しい。その上、ネットワークに接続したノードのうちたった一つでも認証コードを乗っ取られればシステム全体（例えば、自動運転車、航空管制システムなど）が脆弱になる。認証コードを使うのは、ネットワークが主にソフトウェアで制御されているからである。これが中央管理によるセキュリティの本質的限界である。
【課題を解決するための手段】
【００１５】
本発明は上記事情を鑑みて成されたものであり、ソフトウェアによらない、ノードの局所的認証管理を提供することを目的とする。本発明は、上記課題を解決するため、以下の手段を採用する。本発明に関わるチップ認証方式を用いる電子装置のネットワークユニットは、一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストの要素は、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記複数の周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群および第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個の前記ワード線及び一つ又は数個の前記ビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する。
【００１６】
本発明に関わるチップ認証方式を用いる電子装置のネットワークは、一つの第一ネットワークユニットと複数の第二ネットワークユニットを含む複数の電子装置のネットワークユニットを含み、前記第一ネットワークユニットはトポロジーにより少なくとも一つの第二ネットワークユニットに接続し、前記複数のネットワークユニットが、それぞれ一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、第一ネットワークユニットにおいて、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストの要素は、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、第一ネットワークユニットにおいて、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、第一ネットワークユニットにおいて、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、第一ネットワークユニットにおいて、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、第一ネットワークユニットにおいて、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、第一ネットワークユニットにおいて、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群および第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、第一ネットワークユニットにおいて、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、第一ネットワークユニットにおいて、前記チップ上にレイアウトされる一つ又は数個の前記ワード線及び一つ又は数個の前記ビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、第一ネットワークユニットにおいて、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、第一ネットワークユニットにおいて、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、第一ネットワークユニットにおいて、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、第一ネットワークユニットにおいて、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価することを特徴とする。
【００１７】
本発明に関わるチップ認証方式を用いるチップ認証装置の利用方法は、半導体製造工程で大量生産されるチップと、前記チップを製造する、第一のチップメーカーと、前記チップを用いて製品を組み立てるチップユーザーとが、共同に執行するチップ認証装置の利用方法であって、前記チップに、前記第一のチップメーカーが公開する第一の公開パスコードを入力し、第一の出力コードを出力として獲得し、前記第一のチップメーカーが第一のリストを管理し、前記第一のリストは第一の公開パスコード及び第一の公開パスコードに対応する前記第一の出力コードを記録する段階と、前記チップの表面のラベルにメーカー名が記載された第二のチップメーカーが公開する第二の公開パスコードを前記チップに入力し、第二の出力コードを出力として獲得し、前記第二のチップメーカーが第二のリストを管理し、前記第二のリストは第二の公開パスコード及び第二の公開パスコードに対応する第二の出力コードを記録する段階とを含み、前記チップユーザーが前記チップに第一の公開パスコードを入力し、電子的に出力する電子データの集合を読み取り、前記電子データの集合は読み取りコードとして前記チップユーザーが入力する前記第一の公開パスコードに対応し、前記第一のチップメーカーに、前記読み取りコードを送信し、前記第一の出力コードと前記読み取りコードの比較を依頼し、前記第一の出力コードと前記読み取りコードが一致した場合、前記チップを偽造品と判定し、前記チップは、それぞれ固有のチップ認証装置を含み、前記チップ認証装置は、前記チップ上にレイアウトされる、複数のビット線の中の一つ又は数個のビット線群および複数のワード線の中の一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、前記一つ又は数個のワード線群及び前記一つ又は数個のビット線群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子を含む物理的乱数発生装置を含み、前記認証素子は、前記半導体製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個のワード線群及び一つ又は数個のビット線群に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記物理的乱数発生装置は、前記認証素子が、電子的入力に対応して電子的に出力する電子データの集合体として、乱数コードを発生し、前記第一の出力コードは、前記第一の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であることを特徴とする。
【発明の効果】
【００１８】
本発明によれば、新しいチップ認証方式を提供し、認証コードを盗むことによる制御チップ乗っ取りの危険性を低減することが可能となる。
【図面の簡単な説明】
【００１９】
【図１】図１は、従来の認証システムを搭載したチップの一例を示す図。
【図２】図２は、本発明のチップ認証装置を搭載したチップの一例を示す図。
【図３】図３は、本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。
【図４】図４は、外部Ｉ／Ｏを介して信号をやり取りする交信の一例を示す図。
【図５】図５は、本発明のチップ認証装置を搭載したチップを含む装置を、本発明のチップ認証装置と接続する装置に登録する方法の一例を示す図。
【図６】図６は、正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。
【図７】図７は、遠隔攻撃者が、不正にネットワークに接続する方法の一例を示す図。
【図８】図８は、遠隔攻撃者が、正規の装置を攻撃する方法の一例を示す図。
【図９】図９は、本発明のチップ認証装置を搭載したチップを含む周辺装置を、基幹サーバーに接続する方法の一例を示す図。
【図１０】図１０は、基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。
【図１１】図１１は、本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。
【図１２】図１２は、基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。
【図１３】図１３は、本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。
【図１４】図１４は、第一ネットワークユニットと第二ネットワークユニットに分割される複数の基幹サーバーと、本発明のチップ認証装置を搭載したチップを含む複数の周辺装置からなるネットワークの一例を示す図。前記第一ネットワークユニットはトポロジーにより第二ネットワークユニットに接続し、前記トポロジーは前記第一ネットワークユニットの基幹サーバーと第二ネットワークユニットの基幹サーバーとを含み、前記第一ネットワークユニットの基幹サーバーは前記複数の第二ネットワークユニットの基幹サーバーの中の一つに接続する。
【図１５】図１５は、トポロジーの一例を示す図。前記トポロジーは前記第一ネットワークユニットの複数の周辺装置の中の少なくとも一つを含み、前記少なくとも一つの周辺装置はそれぞれ前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続する。
【図１６】図１６は、本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。
【図１７】図１７は、本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。
【図１８】図１８は、本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。
【図１９】図１９は、本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。
【図２０】図２０は、入力コードと登録コードの対応表の一例を示す図。
【図２１】図２１は、周辺装置の正当性を検査するための作業工程の一例を示す図。
【図２２】図２２は、市松状に割り振られたデータの一例を示す図。
【図２３】図２３は、認証素子のレイアウトの一例を示図。
【図２４】図２４は、Ｎ行Ｎ列の市松状に並べられた認証素子のレイアウトの一例を示す図。
【図２５】図２５は、Ｎ行Ｎ列の市松状に並べられた認証素子に入力コードを入力する方法の一例を示す図。
【図２６】図２６は、入力コード、物理乱数配列、出力コードの関係の一例を示す図。
【図２７】図２７は、チップ認証装置の利用法の一例を示すための基本構成を示した概念図。
【図２８】図２８は、スクランブル装置を加えた実施形態の概念を示す図。
【図２９】図２９は、スクランブル装置の基本構成を示す図。
【図３０】図３０は、スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。
【図３１】図３１は、スクランブル装置の動作原理を説明する図。
【図３２】図３２は、スクランブル装置の動作原理を説明する図。
【図３３】図３３は、チップ認証装置の動作原理を説明する図。
【図３４】図３４は、スクランブル装置およびチップ認証装置の動作原理を説明する図。
【図３５】図３５は、スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。
【図３６】図３６は、スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。
【図３７】図３７は、認証素子の一例を示す図。
【図３８】図３８は、認証素子の読み出し方法の一例を説明するための図。
【図３９】図３９は、認証素子のエラー補正方法の一例を説明する図。
【図４０】図４０は、認証素子を破壊する方法の一例を説明する図。
【図４１】図４１は、認証素子の構造の一例を示す図。
【図４２】図４２は、認証素子の一例を示す図。
【図４３】図４３は、認証素子の一例を示す図。
【図４４】図４４は、認証素子の一例を示す図。
【図４５】図４５は、認証素子の一例を示す図。
【図４６】図４６は、認証素子の一例を示す図。
【図４７】図４７は、周辺回路の一部を含む認証装置の素子配列を示す図。
【図４８】図４８は、認証素子のデータ読み出し方法の一例を説明する図。
【図４９】図４９は、認証素子のデータ読み出し方法の一例を説明する図。
【図５０】図５０は、認証素子の一例を示す図。
【図５１】図５１は、認証素子の読み出し方法の一例を説明するための図。
【図５２】図５２は、認証素子の構造の一例を示す図。
【図５３】図５３は、認証素子の構造の一例を示す図。
【図５４】図５４は、認証素子の配列構造の一例を示す図。
【図５５】図５５は、認証素子の製造方法の一例を示す図。
【図５６】図５６は、認証素子の製造方法の一例を示す図。
【図５７】図５７は、認証素子の構造の一例を示す図。
【図５８】図５８は、認証素子の配列構造の一例を示す図。
【図５９】図５９は、認証素子の一例を示す図。
【図６０】図６０は、物理的乱雑さの起源の一例を示す図。
【図６１】図６１は、物理的乱雑さの起源の一例を示す図。
【図６２】図６２は、チップ認証装置を含む半導体チップの一例を示す図。
【図６３】図６３は、スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。
【図６４】図６４は、チップ認証装置を含むチップを搭載した周辺装置の一例を示す図。
【図６５】図６５は、出力コードの加工をする一例を示す図。
【図６６】図６６は、認証素子のアドレスを指定する配線の一例を示す図。
【図６７】図６７は、偽造チップ作成方法の概念を示す図。
【図６８】図６８は、偽造チップ防止方法の概念を示す図。
【図６９】図６９は、認証素子の一例を示す図。
【図７０】図７０は、認証素子の一例を示す図。
【図７１】図７１は、認証素子の一例を示す図。
【発明を実施するための形態】
【００２０】
図１は、従来の典型的なチップ制御システムを説明する図面である。チップの機能を具現化する認証制御デバイス３は、ファームウェア２に含まれる認証コード（ＩＤ）４を必要に応じて読み出せるようになっている。例えば、チップ１は、外部Ｉ／Ｏ（５）に応じて認証制御デバイス３が認証コード４を参照し、チップ１が正しい外部装置であることを主張する。ただし、これは主張するだけであって正しいことを証明するものではない。上述したように、この方法では、認証コード（ＩＤ）４を盗めば他のチップがチップ１になりかわることが可能だからである。
【００２１】
本発明では、図２に示すように、認証コード（ＩＤ）４と認証制御デバイス３からなる認証システム６を、本願のチップ認証装置６０に置き換える。チップ認証装置６０は外部入出力装置５０から受け取るコール（入力信号）に応じて都度出力を発生するものであり、発生された出力信号は物理的乱雑さを利用して生成されるものである。また、入力信号を変えると出力信号も変わるという特徴を有している。
【００２２】
図３のように、このチップ認証装置６０を有するチップ１０を搭載する第一の装置７１が、外部Ｉ／Ｏ（５０）を通して、第二の装置７２とデータを交換（交信）する場合を考えよう。
【００２３】
図４のように、第二の装置７２は、何らかの形式で接続された第一の装置７１を認識するために信号Ａ、信号Ｂ、信号Ｃ、…を入力コードとして外部Ｉ／Ｏ（５０）を介して第一の装置に搭載されるチップ認証装置６０に与える。チップ認証装置６０は、それぞれ信号Ａ１、信号Ｂ１、信号Ｃ１、…を出力コードとして外部Ｉ／Ｏ（５０）を介して第二の装置に返す。ここで、第二の装置は、チップ１０を搭載する第一の装置を、「信号Ａの入力に対して信号Ａ１の出力を返し、信号Ｂの入力に対して信号Ｂ１の出力を返し、信号Ｃの入力に対して信号Ｃ１の出力を返し、…」という装置であると認識する。交信シリーズは、この場合、（Ａ、Ｂ、Ｃ、…：Ａ１、Ｂ１、Ｃ１、…）であらわされる。あるいは、別の場合では、第二の装置７２は第一の装置７１を「信号Ｆの入力に対して信号Ｆ１の出力を返し、信号Ａの入力に対して信号Ａ１の出力を返し、信号Ｋの入力に対して信号Ｋ１の出力を返し、…」と認識する。この場合の交信シリーズは、（Ｆ、Ａ、Ｋ、…：Ｆ１、Ａ１、Ｋ１、…）であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン（入力コード）は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第二の装置にネット接続しうる装置の数を無制限にすることに有用である。すなわち、第一の装置を第二の装置に最初に接続する際、第二の装置は第一の装置を登録することになる。この登録は、第二の装置の正規の使用者か、或いは、第二の装置の正規の使用者から正規に権限を委譲された者が行うことが望ましい。例えば、図５のように、登録時に任意に選ばれた入力コード１０２（Ｒ、Ｌ、Ａ）と、第一の装置から返ってきた出力信号のパターン（Ｒ１、Ｌ１、Ａ１）を第二の装置の内部メモリ３０２に保存する。このとき、登録に関わる交信シリーズは（Ｒ、Ｌ、Ａ：Ｒ１、Ｌ１、Ａ１）となる。更に具体的には、第二の装置に接続しうる装置は無数にあるので入力コード１０２はあらかじめ固定することが望ましい。その場合、第一の装置が登録された交信シリーズ（Ｒ、Ｌ、Ａ：Ｒ１、Ｌ１、Ａ１）の替わりに（Ｒ１、Ｌ１、Ａ１）を登録コード２０２とする。図５の例では、第一の装置７１、第四の装置７４、第五の装置７５、…が、第二の装置に登録されている場合を説明している。例えば、第四の装置は、入力コード（Ｒ、Ｌ、Ａ）に対して、出力コード（Ｒ４、Ｌ４、Ａ４）を第二の装置に返す。第五の装置は、入力コード（Ｒ、Ｌ、Ａ）に対して、出力コード（Ｒ５、Ｌ５、Ａ５）を第二の装置に返す。
【００２４】
図６の例では、第二の装置の正規の使用者９２が、自ら所有する第一の装置を使って第二の装置７２を操作する例を説明している。第一の装置と第二の装置は交信シリーズ８０を用いて交信（接続）し、連携して第二の装置７２の正規の使用者９２の目的とする仕事を行う。ここで、第二の装置７２の正規の使用者９２は、交信シリーズ８０にいかなるコミットメントもしない。もしコミットメントをする場合、第二の装置７２の管理・使用方法が煩雑になり、IoT/IoEの利便性が大きく損なわれることになる。具体的には、第二の装置が何らかの外部装置とネット接続するとき、まず第二の装置は入力コード１０２（Ｒ、Ｌ、Ａ）をこの外部装置に送り、この外部装置から返って来た信号が登録コード２０２のどれか、（Ｒ１、Ｌ１、Ａ１）、（Ｒ４、Ｌ４、Ａ４）、（Ｒ５、Ｌ５、Ａ５）…に一致するかどうかを確認すればよい。
【００２５】
図７のように、遠隔攻撃者９３が、第一の装置７１を遠隔攻撃者９３が所有する第三の装置７３に不正に置き換える場合を考えよう。第三の装置７３は、第一の装置７１に内蔵されるチップ認証装置６０を使用せずにこの交信シリーズ８０を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一の装置７１を第三の装置７３と不正に置き換えようとする者（遠隔攻撃者９３）は、実際に第一の装置７１を手に取ることができないとする。これは、IoT/IoEにおいては自然な条件である。すなわち、IoT/IoEにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者９３の目的は、自分が手元に所有する第三の装置７３を使って第二の装置７２を遠隔操作することである。第一の装置を手元に奪取するためには、第二の装置に正規に接続する第一の装置７１が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二の装置の使用者に気づかれずに遠隔操作をすることができないのと同義である。第三の装置７３と第二の装置７２がネット接続されると、第二の装置はネット接続を介して第三の装置７３を認識するために入力信号（Ｒ、Ｌ、Ａ、…）をネット接続を介して第三の装置７３に与える。第三の装置が出力信号（Ｒ３、Ｌ３、Ａ３、…）をネット接続を介して第二の装置に返したとする。こうして、偽交信シリーズ８３（Ｒ、Ｌ、Ａ、…：Ｒ３、Ｌ３、Ａ３、…）が作成される。すなわち、遠隔攻撃者９３は、偽交信シリーズ８３を正規の交信シリーズ８０、この例の場合、（Ｒ、Ｌ、Ａ：Ｒ１、Ｌ１、Ａ１）に完全に一致させなければならない。ここで、入力コード１０２（Ｒ、Ｌ、Ａ）と、この入力に対する返信（Ｒ３、Ｌ３、Ａ３）からなる交信シリーズ（Ｒ、Ｌ、Ａ：Ｒ３、Ｌ３、Ａ３）は、偽交信シリーズ８３の一例である。（Ｒ３、Ｌ３、Ａ３）が（Ｒ１、Ｌ１、Ａ１）と一致すれば、遠隔攻撃者９３は第三の装置を第一の装置に置き換えて遠隔攻撃を成功できる。図５の例に従えば、遠隔攻撃者９３は、（Ｒ３、Ｌ３、Ａ３）を、第二の装置７２の内部メモリ３０２に保存されている登録コード２０２のうちどれか一つと一致させれば良い。
【００２６】
こうして、遠隔攻撃には基本的に二つの方法があることがわかる。第一の方法は、第二の装置の内部メモリ３０２に保存されている情報から、入力コード１０２と、少なくとも登録コード２０２のうちのどれか一つと、を盗み取ることである。例えば、遠隔攻撃者９３が登録コード２０２のうち、（Ｒ４、Ｌ４、Ａ４）と、入力コード１０２（Ｒ、Ｌ、Ａ）とを盗み取ることに成功したとする。このとき、遠隔攻撃者９３は、所有する第三の装置７３を第四の装置７４に置き換えて第二の装置を不正に遠隔操作することができる。同様に、遠隔攻撃者９３が登録コード２０２のうち、（Ｒ１、Ｌ１、Ａ１）と、入力コード１０２（Ｒ、Ｌ、Ａ）を盗み取ることに成功したとする。このとき、遠隔攻撃者９３は、所有する第三の装置７３を第一の装置７１に置き換えて第二の装置を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二の装置７２の内部メモリ３０２を厳重に防御しなければならない。このため、内部メモリに入力コードや登録コードを保存する第二の装置７２のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を用いて厳重に保守することが望ましい。このように、第二の装置７２はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。こうして、遠隔攻撃の第一の方法はほぼ防がれる。しかしながら、ネットワークに接続する装置が数兆個に上る場合、すべての装置を第二の装置７２のように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者９３は、第二の装置７２に接続する中央管理の行き届かない装置、図５の例では、第一の装置７１、第四の装置７４、第五の装置７５…を遠隔攻撃することになる。これが遠隔攻撃の第二の方法である。しかしながら、第一の装置７１は、入力コード１０２と登録コード２０２のペア（交信シリーズ８０）を、図１の従来例のように、認証コード４として内部メモリに保存しない。第四の装置７４、第五の装置７５等の、第二の装置に何らかの形式で接続して使用することを目的とするほかの外部装置も同様である。これら外部装置（例えば、図5の例では、第一の装置７１、第四の装置７４、第五の装置７５、…）は、それぞれ相異なるチップ認証装置を搭載するチップを内蔵している。
【００２７】
ここで、図８のように、遠隔攻撃者９３が第一の装置７１を遠隔攻撃する場合を考えよう。まず、遠隔攻撃者９３は、第一の装置７１の内部メモリーに不正にアクセスし、登録コード及び入力コードに関する情報（交信シリーズ８０）を盗み取ろうとする。しかしながら、第一の装置はそもそもそのような情報を内部メモリーに保存していないので、この攻撃は必ず失敗に終わる。次に、遠隔攻撃者９３は、適当に選んだ信号（Ｘ、Ｙ、Ｚ）を第一の装置７１に入力し、（Ｘ１、Ｙ１、Ｚ１）の返信を得る。（Ｘ、Ｙ、Ｚ）が、第二の装置７２が用いる入力コード１０２（Ｒ、Ｌ、Ａ）と異なる場合、返信（Ｘ１、Ｙ１、Ｚ１）は登録コード２０２の（Ｒ１、Ｌ１、Ａ１）とは異なる。こうして、第二の遠隔攻撃も失敗に終わる。ここで問題なのは、遠隔攻撃者９３が適当に選んだ信号セット（Ｘ、Ｙ、Ｚ）が、たまたま第二の装置７２の内部メモリ３０２に保存した入力コード１０２（Ｒ、Ｌ、Ａ）に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に第二の装置７２の管理者以外には非公開とすることである。この情報は、第二の装置７２の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、第二の装置７２に接続する装置の再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。このように、入力コードは、パスコードとして振舞う。
【００２８】
この入力コードは、さまざまな周辺装置への認証ＩＤを検査するために共通して使うことが望ましい。この場合、おのおのの周辺装置へのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹サーバーは少なくとも一つの共通パスコードを所有する。
【００２９】
上記第二の装置７２が計算機（パソコン等）の場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５は、計算機に接続して用いられる周辺装置となる。例えば、マウス、キーボード、マイクロホン、などである。上述したとおり、計算機本体は最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺装置（マウス、キーボード、マイクロホン等）の不正な置き換え（乗っ取り）から計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺装置を遠隔攻撃から守ることができる。
【００３０】
上記第二の装置７２がネットワークサービスの中心的機能を担う基幹サーバーの場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５などを、基幹サーバーに対して周辺装置とみなすことができる。図９は、一つの基幹サーバー４００に、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０がネット接続する例を示している。例えば、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、このネットワークサービスを利用するエンドユーザーの端末である。例えば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、エンドユーザーの端末（スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等）の置き換え（乗っ取り）から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
【００３１】
上記第二の装置７２がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の装置７１、第四の装置７４、第五の装置７５は、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、ＧＰＳ、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、データセンターは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、このようなセンサーの置き換え（乗っ取り）からデータセンターへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
【００３２】
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺装置（例えば、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０）は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ（たとえは、共通パスコード）を保存する“基幹サーバー”と保存しない“周辺装置”に分けることが特徴となる。同時に、認証通信のために必要なデータ（たとえは、共通パスコード）を保存する“基幹サーバー”は中央管理し、認証通信のために必要なデータ（たとえは、共通パスコードなど）を保存しない“周辺装置”には本発明のチップ認証装置を搭載することを特徴とする。
【００３３】
図１０のように、上記共通パスコードは、第一の基幹サーバー１４００に少なくとも一つ保存され、周辺装置を認識する際に周辺装置に送られる。例えば、第一の基幹サーバー１４００は第一の共通パスコード１４１０を、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０に送る。これらの周辺装置は、第一の基幹サーバーを「第一の共通パスコード１４１０を送ってくるもの」として認識する。図１１に示すように、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、この第一の共通パスコード１４１０の入力に対応し、それぞれ、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を、第一の基幹サーバー１４００に返す。第一の基幹サーバー１４００は、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０を、「第一の共通パスコード１４１０に対して、それぞれ第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を返すもの」と認識する。同様に、図１２のように、第二の基幹サーバー２４００は、第二の共通パスコード２４１０を、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０に送る。これらの周辺装置は、第二の基幹サーバーを「第二の共通パスコード２４１０を送ってくるもの」として認識する。図１３に示すように、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０は、この第二のパスコード２４１０の入力に対応し、それぞれ、第四の認証４１０２、第五の認証４２０２、第六の認証４３０２を、第二の基幹サーバー２４００に返す。第二の基幹サーバー２４００は、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０を、「第二の共通パスコード２４１０に対して、それぞれ第四の認証４１０２、第五の認証４２０２、第六の認証４３０２を返すもの」と認識する。言うまでも無く、第一の共通パスコード１４１０と第二の共通パスコード２４１０は異なる。第一の認証４１０１、第二の認証４２０１、第三の認証４３０１、第四の認証４１０２、第五の認証４２０２、第六の認証４３０２のうちどの二つの認証も同じではない。また、第一の基幹サーバー１４００が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。
【００３４】
実際のネットワークでは、周辺装置は無数にあり、しかも基幹サーバーは一つに限らない。例えば、図１４では、二つの基幹サーバー（第一の基幹サーバー１４００、第二の基幹サーバー２４００）と五つの周辺装置（第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０、第四の周辺装置４４０、第五の周辺装置４５０）からなるネットワークの一例を示している。第一の基幹サーバー１４００を中心に、第四の周辺装置４４０と第五の周辺装置４５０とで一つのネットワークユニットを構成し、第二の基幹サーバー２４００と、第一の周辺装置４１０、第二の周辺装置４２０、及び第三の周辺装置４３０と、でもう一方のネットワークユニットを構成する。これらのネットワークユニットは、互いに、第一の基幹サーバー１４００と第二の基幹サーバー２４００とのみで接続している。さらに、第四の周辺装置４４０および第五の周辺装置４５０は、第一の基幹サーバー１４００とのみ接続し、第一の周辺装置４１０、第二の周辺装置４２０、及び第三の周辺装置４３０は、第二の基幹サーバー２４００とのみ接続している。ここで、接続とは、上述した認証作業によって電子装置同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、電子装置のネットワークを考える際、特に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での（認証）接続は、一つのパッケージ化されたシステム内の装置（モジュール、あるいは、チップ）同士の接続をも含む。本発明の特徴のひとつとして、このような複数の基幹サーバーと複数の周辺装置からなるネットワークにおいて、基幹サーバー同士は直接接続が可能であるが、周辺装置同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺装置では、共通パスコードのような入力データを保存しないためである。その代わりに、周辺装置同士は、基幹サーバーを介して間接的に接続する。例えば、第一の周辺装置４１０と第二の周辺装置４２０は、第二の基幹サーバー２４００を介して間接的に接続可能である。第四の周辺装置４４０と第五の周辺装置４５０は、第一の基幹サーバー１４００を介して、間接的に接続可能である。第三の周辺装置４３０と第四の周辺装置４４０は、互いに接続している第一の基幹サーバー１４００と第二の基幹サーバー２４００とを介して、間接的に接続可能である。こうして、本発明によれは、中央管理のためのリソースを基幹サーバーにのみ集中させることが可能となる。図１４の具体的な例としては、例えば、自動運転車とスマートハウスが上げられる。例えば、第一の基幹サーバー１４００、第四の周辺装置４４０、および第五の周辺装置４５０からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹サーバー２４００、第一の周辺装置４１０、第二の周辺装置４２０、第三の周辺装置４３０からなるネットワークユニットは、一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、例えば、スマートハウスのバッテリーの状況を把握するためのセンサー（例えば、第四の周辺装置４４０）が自動運転車に搭載されている。このように、第四の周辺装置４４０は、第一の基幹サーバー１４００と第二の基幹サーバー２４００のどちらとも接続することになる。
【００３５】
図１５に示すように、本発明を用いたネットワークでは、一つの周辺装置（例えば第一の周辺装置４１０）が複数の基幹サーバー（例えば、第一の基幹サーバー１４００、第二の基幹サーバー２４００、第三の基幹サーバー３４００）と接続することも認められる。その中で、例えば、第一の基幹サーバー１４００と第二の基幹サーバー２４００は直接接続しているが、第一の基幹サーバー１４００も第二の基幹サーバー２４００も、第三の基幹サーバー３４００とは直接接続していないものとする。ここで、第三の基幹サーバー３４００が遠隔攻撃者でないという証明はない。このため、第一の周辺装置４１０に接続認証に関するデータ（共通パスコード）を保存しないということは重要である。例えば、最初に第一の周辺装置４１０が第一の基幹サーバー１４００に登録される際、第一の基幹サーバー１４００は、第一の周辺装置４１０が第一の基幹サーバー１４００の後に他の基幹サーバーと接続することを制限することが可能となる。なぜなら、第一の周辺装置４１０の外部入出力制御装置（例えば、図８０の外部入出力制御回路９８０）は、受信する全ての信号を第一の基幹サーバー１４００に転送し、第一の基幹サーバー１４００は、第一の周辺装置４１０への全ての入力をモニターすることが可能だからである。ここで、もし第一の共通パスコード１４１０と同等のコードが発見されたら、緊急処置を施すことができる。例えば、第一の基幹サーバー１４００は、第一の周辺装置４１０を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺装置４１０を利用する。第一の基幹サーバー１４００の次に、第二の基幹サーバー２４００が第一の周辺装置４１０を登録する場合、第二の基幹サーバーは、あらかじめ第一の基幹サーバー１４００に、第一の周辺装置４１０を登録する許可を申請する。これには、第二の基幹サーバーと第一の基幹サーバーが直接接続していることが必要である。第一の基幹サーバーが、第二の基幹サーバーに対し、第一の周辺装置４１０への接続を許可すれば、第一の周辺装置４１０は、第二の共通パスコード２４１０を受け付け、第二の基幹サーバー２４００に第二の認証１２を返信し、第二の基幹サーバー２４００は、第一の周辺装置４１０を登録する。以後、第二の基幹サーバー２４００と第一の周辺装置４１０は、第一の基幹サーバー１４００の許可を経ずに、接続可能となる。次に、第三の基幹サーバー３４００が、第一の周辺装置４１０と接続するには、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００及び第二の基幹サーバー２４００が、第一の周辺装置４１０に対し、あらかじめ、第三の共通パスコード３４１０の受付を許可しておく必要がある。こうして、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００及び第二の基幹サーバー２４００は、第三の基幹サーバー３４００と第一の周辺装置４１０の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺装置４１０に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹サーバー１４００、あるいは、第一の基幹サーバー１４００および第二の基幹サーバー２４００の正規の管理者によって行われるものとする。
【００３６】
第一の基幹サーバー１４００は、第一の共通パスコード１４１０を有し、第二の基幹サーバー２４００は、第二の共通パスコード２４１０を有し、第三の基幹サーバー３４００は、第三の共通パスコード３４１０を有するものとする。すなわち、第一の周辺装置４１０は、「第一の基幹サーバー１４００を第一の共通パスコード１４１０を入力してくるもの」と認識し、「第二の基幹サーバー２４００を第一の共通パスコード２４１０を入力してくるもの」と認識し、「第三の基幹サーバー３４００を第三の共通パスコード３４１０を入力してくるもの」と認識する。これらの入力に対し、「第一の基幹サーバー１４００は、第一の周辺装置４１０を第一の認証１１を返すもの」と認識し、「第二の基幹サーバー２４００は、第一の周辺装置４１０を、第二の認証１２を返すもの」と認識し、「第三の基幹サーバー３４００は、第一の周辺装置４１０を、第三の認証１３を返すもの」と認識する。ここで、通信認証に関するデータ（共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等）は、基幹サーバーに保存され、周辺装置には保存しない。周辺装置には、本発明のチップ認証装置を搭載する。
【００３７】
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。
【００３８】
〈出力の独立性〉
まず、二つのチップ認証装置に同じ入力信号を入力したときの動作を特定する。図１６に示すように、二つの異なる第一のチップ認証装置２１と第二のチップ認証装置２２に対して、同じ入力信号（入力信号Ｑ）を入力する。このとき、第一のチップ認証装置２１は出力信号Ａを出力する。第二のチップ認証装置２２は出力信号Ｂを出力する。このとき、出力信号Ａと出力信号Ｂとは異なる。このように、入力信号が同一であってもチップ認証装置が異なる場合、出力信号はそれぞれ異なる。この性質は、共通パスコードを使う例（図１０、図１１、図１２、図１３）に必要な条件である。すなわち、同じパスコードをそれぞれ異なるチップ認証装置を搭載する周辺装置に入力信号として入力しても、それぞれの周辺装置から返って来る出力信号は周辺装置毎に相異なる。例えば、図１０のように、第一の共通パスコード１４１０を、それぞれ異なるチップ認証装置を内蔵する第一の周辺装置４１０、第二の周辺装置４２０、第三の認証装置４３０に与えたとき、これらの周辺装置から返って来る出力信号は、図１１に示すように、それぞれ第一の認証４１０１、第二の認証４２０１、第三の認証４３０１となる。ここで、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１の内どの二つも相異なる。図１２、及び、図１３の例も同様に説明できる。
【００３９】
〈入力の独立性〉
反対に、同一のチップ認証装置に異なる入力信号を入力すると、それぞれ相異なる出力信号を出力する。例えば、図１７に示すように、チップ認証装置６０に入力信号Ｃを入力すると出力信号Ａを出力する。同じチップ認証装置６０に入力信号Ｄを入力すると出力信号Ｂを出力する。ここで、出力信号Ａと出力信号Ｂは、入力信号Ｃと入力信号Ｄが異なる限り、それぞれ相異なる出力信号である。この性質は、図１５のように、異なる基幹サーバーからそれぞれ異なるパスコードを入力信号として同一の周辺装置に入力し、それぞれ基幹サーバーが相異なる認証を該周辺装置から出力信号として受け取る場合に必要な条件である。具体的には、第一の基幹サーバー１４００が第一の共通パスコード１４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第一の認証１１を第一の基幹サーバー１４００に出力し、第二の基幹サーバー２４００が第二の共通パスコード２４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第二の認証１２を第二の基幹サーバー２４００に出力し、第三の基幹サーバー３４００が第三の共通パスコード３４１０を第一の周辺装置４１０に入力し、第一の周辺装置４１０が第三の認証１３を第三の基幹サーバー３４００に出力する、ような場合である。ここで、言うまでも無く、上記認証１１、１２、１３は、お互いどの二つをとっても相異なる。
【００４０】
すなわち、図１４は〈入力の独立性〉の条件と〈出力の独立性〉の条件を同時に利用するネットワーク構造の一例となっている。ほとんどの場合、実際には、基幹サーバーの数は２より大きく、周辺装置の数は５より大きい。図１４は、もっとも簡単な一例に過ぎない。
【００４１】
〈出力の予測不可能性〉
図１８に示すように、ｎ個の入力信号Ｑ１−Ｑｎを同一のチップ認証装置６０に与えたとき、それぞれの入力信号に対し出力信号Ｒ１−Ｒｎが得られることを知っているものとする。このとき、ｎ個のＱ１−Ｑｎのいずれとも異なる入力信号Ｑｎ＋１を同一のチップ認証装置６０に与えずに、これを与えたときに得られるはずの出力信号Ｒｎ＋１を、（Ｑ１、Ｒ１）、（Ｑ２、Ｒ２）、…（Ｑｎ、Ｒｎ）のセットから予測することは不可能である。ただし、ｎは２以上の整数とする。チップ認証装置６０が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置６０は物理的乱雑さを利用して出力信号を生成しなければならない。
【００４２】
〈入出力の信頼性〉
図１９に示すように、実際には、入力信号Ｑを制御する回路に関わる制御不能のノイズなどにより、入力信号Ｑには入力信号誤差３１（ΔＱ）が混入する。これに対し、入力信号誤差３１（ΔＱ）及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Ｒには出力信号誤差３２（ΔＲ）が混入する。このとき、二つの異なる入力信号（例えば、Ｑ１およびＱ２）の差の絶対値は、入力信号誤差３１（ΔＱ）の絶対値の最大値より大きいものとする。ここで、入力信号Ｑ１に対する出力信号Ｒ１と、入力信号Ｑ２に対する出力信号Ｒ２との間の差の絶対値は、出力信号誤差３２（ΔＲ）の絶対値より常に大きくなければならない。
【００４３】
本発明に関わるチップ認証方式は、上述した〈出力の独立性〉、〈入力の独立性〉、〈出力の予測不可能性〉、及び〈入出力の信頼性〉の、４つすべてを同時に満たしていなければならない。
【００４４】
〈検査〉
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹サーバーに接続している周辺装置を、本発明によるチップ認証装置を搭載したチップで構成された周辺装置に置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺装置が一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹サーバーの保守点検の一部として随時行うことが可能である。また、周辺装置の登録時にも行うことが望ましい。
【００４５】
この検査のためにもっとも有効な方法は、中央管理下にある基幹サーバーを使って検査対象となる周辺装置を実際に遠隔攻撃することである。検査対象となる周辺装置を構成するチップは、本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード４２と登録コード４３の対応表（図２０参照）を保存していなければならない。本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図２０のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹サーバーだけである。図９にある、入力コード４０２と登録コード４０３の組あわせがそれである。図９の入力コード４０２が図２０の入力コード４２に対応し、図９の登録コード４０３が図２０の登録コード４３に対応している。
【００４６】
具体的な検査作業の流れを図２１を用いて説明する。まず、検査する周辺装置を見つけたところから始める。次に、検査対象の周辺装置の内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹サーバーに保存されている入力コードの中に一致するものがあるかどうかを調べる。不一致の場合、さらに、基幹サーバーに保存されている登録コードと比較する。そこで一致しなかった場合、検査した周辺装置を公正なものとして承認する。次に検査する周辺装置があるかどうか探す。なければ終了する。あれば、その検査対象となる周辺装置の内部メモリを読み出し、以下同様に行われる。
【００４７】
こうして、本実施形態に関わるチップ認証方式を用いるネットワークを構成するすべての装置は、例えば、図１４のように、訓練を受けたセキュリティ専門家が保守・管理する基幹サーバー（例えば、１４００、２４００）のグループと、前記セキュリティ専門家が管理できない周辺装置（例えば、４１０、４２０、４３０、４４０，４５０）のグループに分けられる。ここで、周辺装置同士はお互いに直接に接続せず、基幹サーバーとのみ接続可能とする。こうして、一つの基幹サーバーとそれに直接接続する複数の周辺装置からなるネットワークユニットを構成する。基幹サーバーは、基幹サーバー同士と任意に接続可能であり、周辺装置同士は、基幹サーバーを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図１４は、二つのネットワークユニットが互いの基幹サーバー同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹サーバー、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の電子装置同士の接続は、上述した認証作業によって電子装置同士が互いを認証する、認証接続のことを意味している。
【００４８】
各周辺装置には、すべて異なるチップ認証装置が搭載されている。図１０及び図１２に示すように、基幹サーバー（１４００、２４００）は、それぞれ固有の共通パスコード（１４１０、２４１０）を少なくとも一つずつ保有する。図９に示すように、それぞれの基幹サーバーが出力する共通パスコードは、基幹サーバーの内蔵メモリに入力コード（例えば、４０２）として厳重に保管される。図１１及び図１３に示すように、共通パスコード（１４１０、２４１０）を入力された周辺装置（４１０、４２０、４３０）は、それぞれの共通パスコードに対しておのおの固有の認証（４１０１、４２０１、４３０１）、及び、（４１０２、４２０２、４３０２）を基幹サーバー（１４００、２４００）にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図１６に示すように、〈出力の独立性〉を満たさなければならない。図９に示すように、基幹サーバーは、周辺装置から返信されてきた出力信号を、入力コード（例えば、４０２）のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード（例えば、４０３）と便宜比較する。
【００４９】
図１５に示すように、一つの周辺装置が複数の基幹サーバーと接続することが許される。この場合、一つの周辺装置（例えば、４１０）は、複数の共通パスコード（例えば、１４１０、２４１０、３４１０）を入力され、それぞれ異なる入力に対して、それぞれ異なる認証（例えば、１１、１２、１３）を出力しなければならない。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図１７に示すように、〈入力の独立性〉を満たさなければならない。
【００５０】
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者（例えば、９３）がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、例えば図２０のように、登録コードを偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺装置の一部を乗っ取り、基幹サーバーに不正アクセスすることが可能となる。このような不正行為を防ぐため、本発明のチップ認証装置は、図１８に示すように、〈出力の予測不可能性〉を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも〈出力の予測不可能性〉を満たすことができない。これは、プログラムにより完全な乱数を発生することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
【００５１】
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード（共通パスコード）を受け取る度に、物理的乱雑さに基づいて出力信号（認証コード）を発生することが望ましい。共通パスコードは周辺装置のメモリに保存してはならない。電子装置が複数のチップで構成される場合、図６４に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺装置及び基幹サーバーが、少なくとも一つのチップから構成される電子装置のネットワークである。
【００５２】
本発明に関するチップ認証装置は、半導体装置の素子アレイ上に構成することが可能である。まず、何らかの方法で“１”と“０”の物理的にランダムな組み合わせを生成する。ここで、“１”を黒、“０”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図２２のような白と黒がランダムに配置された市松模様ができる。このように、乱数がデジタルで発生すると、図１９に説明した〈入出力の信頼性〉を満たすことができる。
【００５３】
このように、本発明に関するチップ認証装置は、半導体デバイス及び半導体デバイス製造工程における制御不能の不確定さを用いて、上記必要とされる物理的乱雑さを生成するものである。
【００５４】
以下、本発明を実施するための最良の形態について、具体的に説明する。
【００５５】
図２３は、図２２を実現するための素子の配列の一例である。行方向にＬ本のワード線５０３が並んでいる。それと直交するように、ビット線９０２が列方向にＭ本並んでいる。Ｌ本のワード線５０３とＭ本のビット線が交差するところにチップ認証装置のエレメントである認証素子９７７が配列する。この例では、不揮発性メモリのセルアレイと異なり選択ゲートは無いが、Ｌ本目のワード線（Ｌ−１）とビット線コンタクト５０５の間、及び、反対側の端であるワード線（０）とビット線コンタクトの間に選択ゲートを採用しても、本発明の本質に変化はない。
【００５６】
図２４は、図２３の認証素子用アレイ９６０の中からＮ本のワード線５０３とＮ本のビット線９０２を抜き出したものである。Ｎは、一般に、上記のＬやＭより小さいか同じ自然数である。
【００５７】
入力コード（Ｐ、Ｓ、Ｔ、…）の例として、（ａ(1),ｂ(1),ａ(2),ｂ(2),…,ａ(N),ｂ(N)）を考えよう。この入力コードを配列ａと配列ｂに分割し、図２５のように、（ａ(1),ａ(2),…,ａ(N)）を第一行から順に対応させる。（ｂ(1),ｂ(2),…,ｂ(N)）を第一列から順に対応させる。このとき、ｉ行ｊ列の認証素子９７７のデータを要素ｄ(i,j) とする。 （i,j）は認証素子９７７のアドレスに対応する。図２５の例では、要素ｄ(5,N-2) が図示されている。ここで、要素ｄ(i,j) の集まり｛ｄ(i,j)｝は、０と１のランダムな集合体で構成される乱数コードである。このように、入力コードを２つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列ａと配列ｂを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列ａと配列ｂを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列ａと配列ｂの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ９６０の行数と列数の和は、少なくとも２Ｎより大きいものとする。ここで、上記入力コードを｛ａ(i),ｂ(j)｝と表記することにする。ただし、ｉ、および、ｊは、それぞれ独立の自然数とする。こうして、数列｛ａ(i)｝、数列｛ｂ(j)｝、及び乱数コード｛ｄ(i,j)｝から、何らかの方法を用いて出力コード｛ｃ(i,j)｝を作成する。入力コード｛ａ(i),ｂ(j)｝及び出力コード｛ｃ(i,j)｝の組み合わせが、図６の交信シリーズ８０に対応している。この乱数コード｛ｄ(i,j)｝の一例として、物理乱数を用いればよい。
【００５８】
本発明に係る実施形態について、主に、第一の入力数列｛ａ(i)｝、第二の入力数列｛ｂ(j)｝、及び物理乱数｛ｄ(i,j)｝から、出力コード｛ｃ(i,j)｝を作成する方法について、以下図面を参照して説明する。
【００５９】
〈第一の実施形態〉
一例として、出力コード｛ｃ(i,j)｝を生成するために、剰余演算mod(x,y）を用いることにする。これは、ｘをｙで割ったあまりである。
【数１】
2017028354.tif 000075
図２６は、数列｛ａ(i)｝、数列｛ｂ(j)｝、及び物理乱数｛ｄ(i,j)｝と、式１に基づいて出力される出力コード｛ｃ(i,j)｝との関係を一覧表にしたものである。この方法を用いると、０と１の数の割合に変化がないことが容易に想像される。これは、交信シリーズ８０によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式１の右辺に入力される情報量と、式１の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式１で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。
【００６０】
図２７は、式１で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置６０１で物理乱数｛ｄ(i,j)｝を発生し、基幹サーバー４００から、共通パスコードとして、入力コード｛ａ(i),ｂ(j)｝が入力され、コード発生装置６０２で出力コード｛ｃ(i,j)｝を生成する。この例では、乱数発生装置６０１とコード発生装置６０２が、共にチップ認証装置６００の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置６０２をチップ認証装置６００の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置６０１をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置６０１の一例として、図２２で概念的に説明した方法を用いる。コード発生装置６０２は、式１で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数｛ｄ(i,j)｝で物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置６０１の行数と列数の和は、少なくとも、｛ａ(i)｝の要素数と｛ｂ(j)｝の要素数の和と同じか、それより大きいものとする。
【００６１】
〈第二の実施形態〉
図２８は、第二の実施形態の概念を示す図である。すなわち、基幹サーバー４００から入力コード（Ｐ、Ｓ、Ｔ、…）がスクランブル装置６０４に送られる。こうして、入力コード（Ｐ、Ｓ、Ｔ、…）は（Ｐ’、Ｓ’、Ｔ’、…）に変換される。このコードは、周辺装置にモジュールされているチップ認証装置６００への入力コード（Ｐ’、Ｓ’、Ｔ’、…）として入力される。ここで、特に図示しないが、基幹サーバー４００に接続する周辺装置は、少なくともチップ認証装置６００を搭載するチップをマウントしている。チップ認証装置６００は、認証（Ｐ１、Ｓ１、Ｔ１、…）を返す。次に、（１）この認証（Ｐ１、Ｓ１、Ｔ１、…）を基幹サーバーへ出力する。あるいは、（２）この認証（Ｐ１、Ｓ１、Ｔ１、…）をスクランブル装置に返して、このスクランブルされた認証（Ｐ１’、Ｓ１’、Ｔ１’、…）を基幹サーバー４００に返す。あるいは、自明なので特に図示しないが、（３）二つ目の別のスクランブル装置を使って認証（Ｐ１、Ｓ１、Ｔ１、…）を認証（Ｐ１’’、Ｓ１’’、Ｔ１’’、…）に変換してから基幹サーバー４００に返す。（３）の方法では、少なくとも二つの独立のスクランブル装置が必要である。
【００６２】
いずれにしろ、コスト面から、スクランブル装置はチップ認証装置６００を搭載するチップに混載することが望ましい。図２９は、スクランブル装置６０４の基本構成の一例を示す図である。この例では、スクランブル装置６０４は、乱数発生装置６０５及びコード発生装置６０６から構成されり、チップ認証装置６００とほぼ同じである。スクランブル装置６０４を構成する乱数発生装置６０５およびコード発生装置６０６の詳しい説明は、図２７で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置６０６は、スクランブル装置の外に置くことも可能である。
【００６３】
〈第三の実施形態〉
図３０は、図２３の認証素子９７７のアレイの一部を示すものである。行数はＮ＋Ｋで、列数はＮである。上部Ｋ行Ｎ列の領域をスクランブル装置セルアレイ６１４とし、下部Ｎ行Ｎ列を、チップ認証装置セルアレイ６１１としている。
【００６４】
図３１は、スクランブル装置６０４を構成する乱数発生装置６０５を実現する方法の一例を説明する図である。まず、｛ａ(j)＋ｂ(j)｝を列毎に入力する。次に、列（j）ごとに、物理乱数の要素ｄ(i,j) を行方向（i）に足し上げ２で割ってあまりを獲得し、前記あまりはそれぞれ列方向（j）にａ(j) とｂ(j) を加える。その和を更に２で割ったあまりを中間出力{f(j)}とする。こうして、図３２のように、スクランブル装置６０４を構成するコード発生装置６０６の機能は、次の数式で表される。
【数２】
2017028354.tif 000076
この｛ｆ(j)｝が、図２８、図２９、図３２および図３４のスクランブル装置６０４の出力となる。ただし、ｊは１からＮの自然数である。
【００６５】
図３３は、図２７のチップ認証装置６００を構成する乱数発生装置６０１を実現するチップ認証装置セルアレイ６１１の一例を示す図である。図２５および式１において、配列｛ｂ(j)｝を配列｛ｆ(j)｝に置き換えたものと同等なので、詳細の説明は省略する。ここで、式３で表される｛ｃ(i,j)｝がコード発生装置６０２の出力となる。
【数３】
2017028354.tif 000077
ただし、ｉ、および、ｊは、それぞれ独立の自然数である。
【００６６】
図３４は、図２８のスクランブル装置６０４とチップ認証装置６００の入出力関係をまとめて説明する図である。入力コード｛ａ(i),ｂ(j)｝はスクランブル装置６０４で物理的乱数を取り込んで中間コード｛ａ(i),ｆ(j)｝に変換される。この｛ａ(i),ｆ(j)｝を次の入力コードとしてチップ認証装置６００に入力し、出力コード｛ｃ(i,j)｝を出力する。
【００６７】
ここで、スクランブル装置６０４の行数Ｋとチップ認証装置の行数Ｎの選び方は、必ずしも基幹サーバー側で管理する必要はない。例えば、周辺装置を基幹サーバーに登録する際、周辺装置の所有者、あるいは、周辺装置の正規の管理者が、任意に決定できる。決定された（Ｎ、Ｋ）は周辺装置内部の不揮発性メモリ等に保存する。
【００６８】
この時点では（Ｎ、Ｋ）は基幹サーバー側が知らなくても良い情報であるが、基幹サーバーが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹サーバー側で検査し必要に応じて改定することが可能である。その際、改定された（Ｎ、Ｋ）で周辺装置を再登録する必要がある。（Ｎ、Ｋ）を改定すると、たとえ同じ入力コード｛ａ(i),ｂ(j)｝を入力しても、スクランブル装置６０４が生成する中間コード｛ａ(i),ｆ(j)｝が異なる。したがって、チップ認証装置６００が生成する出力コード｛ｃ(i,j)｝も異なる。
【００６９】
基幹サーバーは前回のメンテナンス時に改定した（Ｎ、Ｋ）を記録しておく。次のメンテナンス時、チップの内部メモリに保存されている（Ｎ、Ｋ）を読み出し、前回記録しておいてた（Ｎ、Ｋ）と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこのチップを切り離すか、管理者に警報することができる。こうして、（Ｎ、Ｋ）をセキュリティバッファとして有効活用することも可能である。なお、式１−３に基づくコード生成では、物理乱数｛ｄ(i,j)｝を用いているので、セキュリティバッファ（Ｎ、Ｋ）自体が流出してもかまわない。
【００７０】
上記式１−３にしたがってコード生成するのにＣＰＵを使用する場合、スクランブル装置とチップ認証装置の間に生成される中間出力｛ｆ(j)｝はＣＰＵ外には出力しない場合、ＣＰＵ内のレジスタに一部あるいは全部を格納しなければならないが、｛ｆ(j)｝全体を周辺装置の内部メモリに保存する必要はない。あるいは、上記式１−３にしたがってコード生成するのに同一チップ内の周辺回路を用いる場合、スクランブルとチップ認証の間に生成される中間出力｛ｆ(j)｝はチップ外には出力されない。つまり、中間コード｛ａ(i),ｆ(j)｝も、チップ外に出力されることはない。いずれにしろ、出力コード｛ｃ(i,j)｝の生成が終われば中間出力｛ｆ(j)｝は自動的に上書き消去される。また、遠隔操作によってコード生成中のレジスタからチップ内あるいはＣＰＵ内に閉じ込められた中間出力｛ｆ(j)｝をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。例えば、通常のパソコンでは３２ビット、多くとも６４ビットしかない。一方、中間出力｛ｆ(j)｝をすべて記録するのに必要な容量はＮビットである。したがって、Ｎが十分大きければ、コード生成するには、中間コード｛ｆ(j)｝をいくつかのパケットに分割してレジスターに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をＲとすると、図３４において、例えば、第１列から第Ｒ列までをパケット１、第Ｒ＋１列から第２Ｒ列までをパケット２、第２Ｒ＋１列から第３Ｒ列までをパケット３、…とし、式２に基づいてパケット毎に中間出力｛ｆ(j)｝の一部を生成しレジスタに格納する。すなわち、Ｎが十分大きければ、中間出力｛ｆ(j)｝を格納したレジスタ領域はパケットを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力｛ｆ(j)｝の全体を一度に盗まれることはない。また、本願では、入力コード｛ａ(i),ｂ(j)｝から中間コード｛ｆ(j)｝を生成するのに物理乱数｛ｄ(i,j)｝（ｉ=１，…Ｋ）を利用しているので、入力コード｛ａ(i),ｂ(j)｝から中間出力｛ｆ(j)｝を予測することは不可能である。更に、中間入力コード｛ａ(i),ｆ(j)｝から出力コード｛ｃ(i,j)｝を生成するのに前者とは独立の物理乱数｛ｄ(i,j)｝（ｉ=Ｋ+１，…Ｋ+Ｎ）を利用しているので、出力コード｛ｃ(i,j)｝を予測することは不可能である。仮に中間コード｛ｆ(j)｝が盗まれてたとしても、物理乱数｛ｄ(i,j)｝（ｊ=Ｋ+１，…Ｋ+Ｎ）からなる物理的乱雑さによって出力コード｛ｃ(i,j)｝を予測するのは不可能である。その上、セキュリティバッファ（Ｎ、Ｋ）を随時更新することができるので、同じ入力コード｛ａ(i),ｂ(j)｝に対して生成される中間コードは随時更新される。したがって、例えば、Ｎを６４より大きくしておけばセキュリティは、更に大きく向上する。
【００７１】
図３５は、スクランブル装置セルアレイ６１４とチップ認証装置セルアレイ６１１を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線５０３を共有している。図３６は、スクランブル装置セルアレイ６１４とチップ認証装置セルアレイ６１１を含むメモリチップの他一例を示す図である。これら３つの領域がビット線方向に配列し、ビット線９０２を共有している。
【００７２】
〈第四の実施形態〉
図３７は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところにキャパシタ９８２を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すことがある。ワード線５０３とビット線９０２の間に電圧を印加することで、選択された交差点のキャパシタ９８２に電圧を印加することが可能である。
【００７３】
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は直流でも電流を流しやすくなり、例えばメモリでは“１”に相当する。図２２では黒に相当する。反対に、破壊しなかった認証素子は印加電界に対して電流を流し難く、例えばメモリでは“０”に相当する。図２２では白に相当する。印加電界やキャパシタの詳細な条件（物性、構造、サイズ等）を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ５０％程度にすると、図２２のような白黒のランダムな市松模様が得られる。
【００７４】
図３８は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのためにキャパシタ９８２に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてキャパシタ９８２を通して流れる電流の絶対値である。破壊された素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧９３２における破壊判定電流値９３３と非破壊判定電流値９３４を設定する。すなわち、絶対値が破壊判定電圧９３２に一致する読み出し電圧をキャパシタ９８２に印加したときにキャパシタ９８２を流れる電流の絶対値が、破壊判定電流値９３３より高ければ、破壊していると判定し、非破壊判定電流値９３４より低ければ破壊していないと判定する。ここで、読み出し電圧は直流電圧である。
【００７５】
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。行デコーダ９７２および列デコーダ９７３は、更に、入出力Ｐｉｎ９７１に接続している。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図３８で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、認証素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
【００７６】
図３８の判定方法には、破壊判定電流値９３３と非破壊判定電流値９３４の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊したとも非破壊であるとも判定されない。このような素子は、メモリに相当すると“０”でも“１”でもないため、“Ｘ”と表記することにする。このとき、２進表記した素子のセルアレイ上のアドレスと、対応する素子のデータの一例を示したのが図３９である。一例として、左から、“１”、“１”、“０”、“１”、“Ｘ”、“０”、“０”、“１”…となっている。このように、左から五番目の認証素子のデータが“Ｘ”になっている。
【００７７】
次に、図３９のような“０”と“１”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図２２の白黒のパターンになると予想される。ここで、“０”は白に変換され、“１”は黒に変換されるものとする。しかしながら、“０”でも“１”でもない“Ｘ”が存在すると、図２２のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“Ｘ”に対応する素子をプロットから排除しなければならない。
【００７８】
例えば、 “Ｘ”に対応する素子のアドレス（例えば、２進法表記で１００）をバッファに保存する。各アドレスに対応する素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、“Ｘ”に対応する素子のデータは取りのぞかれ、“０”と“１”のみからなるデータとアドレスの組み合わせが生成される。こうして、図２２のように、白黒の市松状のパターンが得られる。
【００７９】
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊の時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったりハード破壊モードに遷移することもあり状態が不安定であるが、一度ハード破壊モードに陥ると、非破壊状態に戻ることもなければソフト破壊モードに遷移することもない。本発明においては、図３８および図３９で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“１”とみなし、ソフト破壊モードを“Ｘ”としている。破壊判定電流値と非破壊判定電流値の間のギャップは、ソフト破壊モードに“Ｘ”をラベルするためのものである。こうして、上述した方法によって、“Ｘ”のソフト破壊した素子のデータを取り除くことによって、図２２の市松状の白黒パターンは、繰り返し読み出し電圧を印加しても変化しずらくなり、パターンの再現性を獲得する。
【００８０】
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。したがって、電気的ストレスを繰り返すうちに“Ｘ”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図３８で説明した方法で破壊検査を実施する。このとき、“Ｘ”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図３８の方法で破壊検査を行う。まだ“Ｘ”の割合が多ければ、第三パルス電圧を印加し、図３８の方法で破壊検査を行う。この作業を、“Ｘ”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“Ｘ”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“Ｘ”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。ただし、素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“Ｘ”の割合を検査するこの作業は省くことができる。
【００８１】
物理的乱雑さを最大限にするには、“０”と“１”の割合がおおよそ５０％ずつになることが望ましい。“Ｘ”とラベルされた素子はソフト破壊モードであり、パルス電圧印加を繰り返すうちに確率的に“１”（ハード破壊モード）に遷移すので、図４０のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ１回目のパルスを与えた際は“０”の数が多くても複数回パルス印加するうちに“１”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ（“Ｘ”）の割合をできる限り低減しつつ、“０”と“１”の割合を５０％ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“０”と“１”のデータからなる良品のみを製品として出荷することができる。
【００８２】
また別の一例では、素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。例えば、図４１のように、第一導電体１０５３、第二導電体１０５２、絶縁膜９１０、導電体先端部１０５１からなる素子構造を考えよう。第一導電体１０５３には第一電極１０５５が接続しており、第二導電体１０５２には第二電極１０５４が接続している。第一電極１０５５は、ワード線５０３あるいはビット線９０２のどちらか一方に接続し、第二電極１０５４は他方に接続する。導電体先端部１０５１周辺の絶縁膜の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部１０５１の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部１０５１の深さには製造ばらつきがあるので、導電体先端部１０５１と第二導電体１０５２の間の絶縁膜９１０の破壊発生確率も素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって、“０”と“１”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。
【００８３】
〈第五の実施形態〉
それぞれワード線５０３とビット線９０２とに接続する導電体がダイオードからなる認証素子９７７を用いる場合、ダイオード要素がＰＮ接合９８６（図４２）、あるいは、ショットキー接合９８７（図５９）ならば、ダイオードに強い電圧ストレスを印加することによって、ダイオードは確率的に破壊される。破壊されたかどうかは、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、例えばメモリの“１”に相当する。破壊されなかった素子では、逆方向の読み出し電圧を印加しても電流が流れずらく、例えばメモリの“０”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線５０３及びビット線９０２の間に印加する。
【００８４】
上述のように、それぞれワード線５０３とビット線９０２とに接続する認証素子９７７を構成する要素がＰＮ接合９８６やショットキー接合９８７のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線５０３とビット線９０２とに接続する認証素子９７７を構成する要素がキャパシタ９８２の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図３８と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、ＰＮ接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。
【００８５】
〈第六の実施形態〉
図４３は、認証素子９７７がMetal-Oxide-Semiconductor（ＭＯＳ）型電界効果トランジスタ（ＭＯＳＦＥＴ）９８３の場合を示す図である。一般に、ＭＯＳＦＥＴは、半導体基板表面の二つの近接する拡散層とＭＯＳキャパシタから構成されている。ＭＯＳキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この図の例では、二つの拡散層の内一方をビット線９０２に接続し、他方を接地している。ゲート電極には、ワード線５０３を接続する。すなわち、本実施形態では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、ビット線９０２を接地している間にワード線５０３に電圧ストレスを印加する。この電圧ストレスは、一例として、図４０のようなパルスでも良い。読み出しは、ビット線９０２とワード線５０３の間に破壊判定電圧９３２を印加し、ビット線９０２とワード線５０３の間を流れる電流を読めば良い。また、別の一例では、図６９のように、二つの拡散層の内一方をビット線９０２に接続し、他方を別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、絶縁破壊を起すことが可能である。あるいは、フローティングのままにしておいても、ビット線側のみで絶縁破壊を起すことが可能である。
【００８６】
〈第七の実施形態〉
図４４は、認証素子９７７が、トランジスタ９８３とキャパシタ９８２から構成されるＤＲＡＭセルの場合である。キャパシタ９８２が電圧降下を起すため、トランジスタ９８３のゲート絶縁膜を破壊するのは現実的ではない。したがって、この例ではキャパシタ９８２の破壊を利用することになる。具体的には、ワード線５０３にトランジスタ９８３をオン状態にするための転送電圧をワード線とビット線の間に印加する。その間にビット線に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図４０のようなパルスである。読み出しは、ワード線５０３に転送電圧を印加している間に、ビット線９０２を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ９８３をオン状態にするのに必要な電圧である。図４４では、一例として、キャパシタ９８２の一方の電極はトランジスタ９８３に接続し、他方は接地している。また、別の一例では、図７０のように、キャパシタ９８２の一方の電極はトランジスタ９８３に接続し、他方を別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、絶縁破壊を起すことが可能である。
【００８７】
ここで重要なことは、認証素子９７７は、通常のＤＲＡＭセルをそのまま用いることができる点である。すなわち、ＤＲＡＭチップに本願のチップ認証装置を追加する場合、認証装置領域（セルアレイ）を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、ＤＲＡＭに限らず一般的なメモリ容量に比べて非常に少なくて済む。
【００８８】
例えば、図３０の例で、スクランブル装置（行数Ｋ）も含めてチップ認証装置（行数Ｎ）の追加容量を概算すると次のようになる。列数をＮとすると、入力コードの場合の数は、２のＮ乗と２の（Ｎ＋Ｋ）乗の和である。スクランブル装置の物理乱数｛ｄ(i,j)｝の場合の数は、２のＮＫ乗である。チップ認証装置の物理乱数｛ｄ(i,j)｝の場合の数は、２のＮ2乗である。出力コード｛ｃ(i,j)｝の場合の数は、２のＮ2乗である。
【００８９】
次に、（Ｎ、Ｋ）を決定するために必要な要件を考える。まず、上述したような絶縁膜破壊やダイオードの接合破壊は物理的に乱雑なものであり、如何なるアルゴリズムにも依存しない。しかしながら、本願では（入出力の信頼性）を確保するために、図２２のような白黒（０/１）の市松模様を作りだすことによって物理的乱雑さをデジタル化している。これによって情報量の縮小が行われる。０/１の市松模様はチップ上に分布するので、分布する素子の数が少ないとパターン数が少なくなり、偶発的に同じ市松模様を出力する可能性が高まるように思われる。このような不具合を取り除くためには、デジタル化した物理乱数｛ｄ(i,j)｝の場合の数が現実的にほぼ無限大とみなせるほどＮおよびＫを大きく設定しなければならない。一方、一般的なデジタル暗号回線で用いられる入力コードは、現在１２８ビットから２５６ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから１０年程度の間は２５６ビットからせいぜい５１２ビットの間で推移するであろう。そこで、一例としてＮ＝Ｋ＝５１２の場合で見積もる。このとき、入力コードの場合の数は、２の５１２乗と２の１，０２４乗の和である。これは、既に通常のコンピュータが扱える整数の桁数をはるかに上回る情報量である。実際に関数電卓で計算すると無限大が出てくる。スクランブル装置の物理乱数｛ｄ(i,j)｝の場合の数、チップ認証装置の物理乱数｛ｄ(i+N,j)｝の場合の数、および出力コード数｛ｃ(i,j)｝の場合の数は更に大きく、すべて同様に２の５１２2乗である。もちろん、現実的な無限大である。ここで、５１２2＝２６２，１４４なので、スクランブル装置を含めても２６２Ｋｂもあればチップ認証装置としては十分な容量である。この容量は、通常のＤＲＡＭ製品のシリコンダイ辺りの容量（４Ｇｂ）に比べて４桁小さく、およそ１万分の１以下とはるかに小さい。
【００９０】
Ｎ＝Ｋ＝１２８の場合では、入力コードの場合の数は、２の１２８乗と２の２５６乗の和であり、およそ１０の７７乗となる。IoT/IoEが本格的に普及すれば、通信ノードの数は全世界で一兆個（１０の１２乗）に登るといわれている。１０の７７乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、１０のマイナス６５乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数｛ｄ(i,j)｝の場合の数、チップ認証装置の物理乱数｛ｄ(i+N,j)｝の場合の数、および出力コード数｛ｃ(i,j)｝の場合の数は、すべて同様に２の１２８2乗となり、もちろん、現実的な無限大である。ここで、１２８2＝１６、３８４なので、スクランブル装置を含めても１６Ｋｂもあればチップ認証装置としては十分な容量である。この容量は、通常のＤＲＡＭ製品のシリコンダイ辺りの容量（４Ｇｂ）に比べて５桁小さく、およそ１０万分の１以下とはるかに小さい。
【００９１】
ＤＲＡＭの価格は、現在、４Ｇｂ品で２．５ＵＳドルから３ＵＳドルの間で推移している。ＤＲＡＭセルをそのまま認証素子９７７として使用することができるので、物理乱数の情報量を十分維持しながら（入出力の信頼性）を確保しても、スクランブル装置を含めたチップ認証装置の値段は、１チップ辺り最大でも０．０３ＵＳセントである。
【００９２】
〈第八の実施形態〉
図４５は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところに不揮発性メモリの制御に用いる選択トランジスタ９８４を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、積層構造である。前記選択トランジスタ９８４は、メモリ素子の層間絶縁膜の一部もしくは全てを導電体に置き換えた層間導電層に置き換えるられている。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線５０３に高電圧を印加することで、選択された交差点の選択トランジスタ９８４のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ９８３のゲート絶縁膜の破壊と同様になる。すなわち、（第六の実施形態）のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。図４５では、一例として、選択トランジスタ９８４の一方の拡散層はビット線９０２に接続し、他方の拡散層は接地している。また、別の一例では、図７１のように、選択トランジスタ９８４の一方の拡散層はビット線９０２に接続し、他方は別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、トンネル膜破壊を起すことが可能である。あるいは、フローティングのままにしておいても、ビット線側のみでトンネル膜破壊を起すことが可能である。
【００９３】
〈第九の実施形態〉
図４６は、ビット線方向に隣り合った選択トランジスタ９８４同士の拡散層を接続した場合の例である。これは、ＮＡＮＤ型配列と言われるもので、動作方法が複雑になるので、更に図面を用いて詳細に説明する。
【００９４】
図４７は、本実施形態に関するチップ認証用素子アレイ９６０の一例である。ページバッファ７９０は、混載するＮＡＮＤ型不揮発性メモリセルアレイのページバッファを兼ねる。ページバッファ７９０にはビット線９０２との接続をオン/オフさせるためのビット線接続ゲート７９１が設けられている。ページバッファ７９０は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
【００９５】
本実施形態では、混載するメモリセルはＮＡＮＤ型やＮＯＲ型の不揮発性メモリ、ＤＲＡＭ等の揮発性メモリ、あるいは、磁気抵抗メモリ、相変化型メモリ、抵抗変化型メモリ等の新機能型メモリの内のどれであっても良い。すなわち、本発明に関するチップ認証装置セルアレイ６１１と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
【００９６】
認証素子９７７のに電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線側の選択トランジスタをオン状態にする。同様に破壊したいワード線とビット線側の選択トランジスタの間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各不揮発性メモリトランジスタをオン状態とする。ここで、破壊パルスを印加したいビット線の電位を０Ｖにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、例えば、図４０で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図４０を試してパルス回数を決定し、それをチップ内のメモリ領域（あるいはバッファー）に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
【００９７】
図４８は、本実施形態に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出すキャパシタに関する１本のワード線を選択し、０Ｖより高い所定の電位を与える。選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線は０Ｖないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、例えば、図３８の破壊判定電圧９３２程度である。同時に、ビット線側の選択ゲート９８１１には正の電位を与え、ビット線側選択ゲート９８１１に対応するビット線側選択トランジスタ（ＳＧＤ）をオン状態にする。次にビット線接続ゲート７９１を０Ｖに下げる。このとき、ビット線接続トランジスタ７９１０はオフとなり、ビット線はページバッファ７９０内の検知回路から切り離される。もし選択した認証素子９７７が導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート７９１に正の電位を与え、ビット線接続トランジスタ７９１０をオンにする。続いて、ページバッファ７９０内でビット線の電位変化を検知する。認証素子９７７の導通・非導通状態に因るビット線電位差をページバッファ７９０内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位（例えば、破壊判定電圧値９３３０）以上であれば選択した認証素子９７７は破壊されてると見なし、ビット線電位が所定の電位（例えば、非破壊判定電圧値９３４０）以下であれば選択した認証素子９７７は破壊されていないと見なす。ここで、破壊判定電圧値９３３０及び非破壊判定電圧値９３４０は、それぞれ、図３８の破壊判定電流値９３３と非破壊判定電流値９３４に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
【００９８】
図４９に本実施例に関する破壊検査時の電圧パルス波形の別の一例を示す図面を示す。まず、読み出すキャパシタに関する１本のワード線を選択し、０Ｖを与える。同じく選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、例えば、図３８の破壊判定電圧９３２程度である。同時に、ビット線側の選択ゲート９８１１には正の電位を与え、ビット線側選択トランジスタ（ＳＧＤ）をオン状態にする。次に、ビット線接続ゲート７９１を０Ｖに下げる。このとき、ビット線接続ゲートトランジスタ７９１０はオフとなり、ビット線はページバッファ７９０内の検知回路から切り離される。もし選択した認証素子９７７が導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート７９１に正電位を与えビット線接続ゲートトランジスタ７９１０をオンにする。続いて、ページバッファ７９０内でビット線の電位変化を検知する。認証素子９７７の導電・非導電状態に因るビット線電位差をページバッファ７９０内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位（例えば、破壊判定電圧値９３３１）より低ければ、選択した認証素子９７７は破壊されていると見なし、ビット線電位が所定の電位（例えば、非破壊判定電圧値９３４１）より高ければ、選択した認証素子９７７は破壊されていないと見なす。ここで、破壊判定電圧値９３３１及び非破壊判定電圧値９３４１は、それぞれ、図３８の破壊判定電流値９３３と非破壊判定電流値９３４に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
【００９９】
不揮発性メモリの複数のブロックの隣に１ブロック分の領域（をチップ認証装置に割り当てることが可能である。例えば、図３５や図３６のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線９０２、あるいは、ワード線５０３を共有することでチップ面積を節約することが可能である。
【０１００】
〈第十の実施形態〉
図５０は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところにヒューズ抵抗９８５を配置している。ワード線５０３とビット線９０２の間に高電圧を印加することで、選択された交差点のヒューズ抵抗９８５に電界ストレスを加えることが可能である。
【０１０１】
一般に、ビューズ抵抗は、高抵抗導電材を二つの端子で挟んだものであり、ヒューズに高電界を印加すれば、確率的にショートして、ワード線５０３とビット線９０２の交点は非導電状態になる。ショートしなかった場合（非ショート）、ワード線５０３とビット線９０２の交点は導電状態にである。どのアドレスのヒューズがショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図２２のようなランダムな市松パターンを作ることができる。
【０１０２】
ビューズが破壊されたかどうかは、ヒューズ抵抗９８５に読み出し電圧を印加して判定する。ショートした素子では、読み出し電圧を印加しても電流が流れずらく、例えばメモリの“０”に相当する。ショートしなかった素子では、読み出し電圧が低くても電流が流れやすく、例えばメモリの“１”に相当する。このようなヒューズのショートは、導電体の破壊と同じであり、例えば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“０”に相当し、発生しなかった素子はメモリの“１”に相当する。
【０１０３】
図５１は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのためにヒューズ抵抗９８５に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてヒューズ抵抗９８５を通して流れる電流の絶対値である。ショートしなかった素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧７４２における非ショート判定電流値７４３とショート判定電流値７４４を設定する。すなわち、絶対値がショート判定電圧７４２に一致する読み出し電圧をヒューズ抵抗９８５に印加したときにヒューズ抵抗９８５を通して流れる電流の絶対値が、非ショート判定電流値７４３より高ければ、ショートしていないと判定し、ショート判定電流値７４４より低ければショートしていると判定する。
【０１０４】
図５１の判定方法には、非ショート判定電流値７４３とショート判定電流値７４４の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は、ショートが発生したとも発生しなかったとも判定されない。このような素子は、メモリに相当すると“０”でも“１”でもないため、“Ｘ”と表記することにする。このとき、素子のセルアレイ上のアドレス（番地）と、対応する素子のデータの一例を示すと、認証素子９７７がキャパシタ９８２の場合と同様に、図３９のようになる。一例として、左から、“１”、“１”、“０”、“１”、“Ｘ”、“０”、“０”、“１”、…、“０”となっている。このように、五番目の素子のデータが“Ｘ”になっている。ここで、“Ｘ”を取り除き、図２２のような白黒のみの市松模様を得る方法は、キャパシタ９８２の場合と同様なので、ここでの説明は省略する。
【０１０５】
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。行デコーダ９７２および列デコーダ９７３は、更に、入出力Ｐｉｎ９７１に接続している。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図５１で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、図２３に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
【０１０６】
図５２は、ヒューズ抵抗９８５の一例を示す図である。第一導電体１０５３、第二導電体１０５２、絶縁膜９１０、導電体接合部９７０からなる素子構造である。第一導電体１０５３には第一電極１０５５が接続しており、第二導電体１０５２には第二電極１０５４が接続している。第一電極１０５５は、ワード線５０３あるいはビット線９０２のどちらか一方に接続し、他方は第二電極１０５４に接続する。導電体接合部９７０の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ５０％になるように調整することが望ましい。
【０１０７】
一般に、電気的ストレスによって導電体接合部９７０の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部９７０は断線する。更に高温のため酸化が進み、断線箇所には絶縁膜９１０の一部が入り込み、図５２は図４１にように変化する。こうして、非ショート状態からショート状態に遷移する。
【０１０８】
更に電気的ストレスを印加し続けると、断線箇所の絶縁膜９１０（図４１参照）が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。このとき、図４１から図５２に回復する。
【０１０９】
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。その中間状態が“Ｘ”である。したがって、電気的ストレスを繰り返すうちに“Ｘ”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図５１で説明した方法で破壊検査を実施する。このとき、“Ｘ”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図５１の方法で破壊検査を行う。まだ“Ｘ”の割合が多ければ、第三パルス電圧を印加し、図５１の方法で破壊検査を行う。この作業を、“Ｘ”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“Ｘ”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“Ｘ”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“Ｘ”の割合を検査するこの作業は省くことができる。
【０１１０】
一方、物理的乱雑さを最大限に利用するには、“０”と“１”の割合がおおよそ５０％ずつになることが望ましい。“Ｘ”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“０”に遷移すので、図４０のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ１回目のパルスを与えた際は“１”の数が多くても複数回パルス印加するうちに“０”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ（“Ｘ”）の割合をできる限り低減しつつ、“０”と“１”の割合をほぼ５０％ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“０”と“１”のデータからなる良品のみを製品として出荷することができる。
【０１１１】
〈第十一の実施形態〉
図５３は、図５０に採用されるヒューズ抵抗９８５の別の一例である。これは、配線パターン作成時に一緒に作成する。したがって、導電体９３０は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図５３のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。ワード線コンタクト５０４はワード線５０３に接続し、ビット線コンタクト５０５はビット線９０２に接続する。図５４は、このような認証素子９７７を用いたレイアウトの一例である。
【０１１２】
また、図５３の矩形に曲がった部分は通常のメタル配線より細いことが望ましい。例えば、図５５に示すように、矩形部分以外のところをレジスト９３１でマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。図５６は、一例として、その結果を示したものである。
【０１１３】
〈第十二の実施形態〉
導電体９３０は、複数回矩形に曲げることも可能である。図５７は、その一例であり、９箇所矩形に曲がっている。図５８は、このようなパターンをレイアウトした一例である。こうして、ショートの確率を配線パターニングで調節することが可能である。
【０１１４】
〈第十三の実施形態〉
図５２の構造は、例えば、第一導電体１０５３の側から絶縁膜９１０を通してビアを開け、そこに導電体材料を埋め込んで作成できる。ここで一例として、ビア深さの狙い値を第一導電体１０５３と第二導電体１０５２の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図６０の中央の素子のように、ビアが第一の導電体１０５３と第二の導電体１０５２の間にぴたりと収まる。
【０１１５】
しかしながら、一般には、図６１に示すように、ビアのアスペクト比や穴径には製造上のばらつきがあり、ビア深さもばらつく。こうして、ある素子では断線（ショート）し、またある素子は接続する。例えば、この図６０の例では、左からショート、接続、接続である。
【０１１６】
ワード線５０３とビット線９０２で選択した認証素子９７７のビアがショートしていれば電流は流れず、例えばメモリセルに対応させると“０”状態となる。反対に、ショートしていなければ電流が流れ、例えばメモリセルに対応させると“１”状態となる。 “０”を白、“１”を黒とみなすと、図２２のようなランダムな白黒のパターンが生成される。
【０１１７】
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図２２のような白黒のランダムな市松パターンを得ることができる。
【０１１８】
しかしながら、メタルビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。例えば、ショートしている場合（例えば、図６０の左端のセル）、電気的ストレスを繰り返すうちビア底と第二導電体１０５２の間の絶縁膜（９１０の一部）が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合（例えば、図６０の中央）、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
【０１１９】
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“１”が優勢の場合、“１”の素子のみ選択してストレスを印加し、反対に、データ“０”が優勢の場合、“０”の素子のみ選択してストレスを印加する。こうして、“１”と“０”の割合を検査しながら、所望の割合に近づくまで、このようなストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子群に繰り返し印加するストレスパルスは、例えば、図４０のようなものを使うことができる。
【０１２０】
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図２３に示すように、行デコーダー９７２で素子行を選択し、列デコーダー９７３で素子列を選択する。行デコーダ９７２および列デコーダ９７３は、更に、入出力Ｐｉｎ９７１に接続している。この素子行と素子列の組み合わせがアドレスである。図３９の例では、このアドレスを２進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線５０３とビット線９０２の間に、図５１で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ（“１”あるいは“０”）を読み出す。読み出し後、選択する素子のアドレスを変更し、図２３に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
【０１２１】
〈第十四の実施形態〉
本発明に関するチップ認証装置は、例えば、図６２のように、少なくともチップ認証モジュール６０および入出力制御モジュール８００を、チップ１０に搭載することができる。この入出力制御モジュール８００は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。
【０１２２】
〈第十五の実施形態〉
本発明に関するチップ認証装置は、例えば、図６３のように、少なくともチップ認証モジュール６００と、認証装置用制御モジュール８８０と、入出力制御モジュール８１０と、スクランブル装置モジュール８９０と、及び中間コード用バッファーモジュール９００とを、チップ１００に搭載することができる。この入出力制御モジュール８１０は、入出力制御回路およびデータ入出力バッファーを含むことができるが、（第十四の実施形態）の入出力制御モジュール８００とは異なり、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置モジュール８９０は、図２８のスクランブル装置６０４を含み、スクランブル装置６０４が生成する中間コードは、入出力制御モジュール８１０とは独立した中間コード用バッファーモジュール９００に格納され、外部からの要請があってもデータをチップ１００の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御モジュール８８０は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
【０１２３】
外部入出力５０から入力コード｛ａ(i),ｂ(j)｝が入力されると、入出力制御モジュール８１０が、入力コード｛ａ(i),ｂ(j)｝をスクランブル装置モジュール８９０に渡す。ここで、式２に基づいて生成された中間コード｛ａ(i),ｆ(j)｝、あるいは、中間出力｛ｆ(j)｝は、中間コード用バッファーモジュール９００に一時格納され、認証装置用制御モジュール８８０に引き渡される。認証装置用制御モジュール８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーを駆使して、チップ認証モジュール６００から、中間コード｛ａ(i),ｆ(j)｝に応じ、式３に基づいて出力コード｛ｃ(i,j)｝を読み出し、内部のデータバッファーに一時格納する。認証装置用制御モジュール８８０は、内部のデータバッファーから出力コード｛ｃ(i,j)｝を呼び出し入出力制御モジュール８１０に引き渡す。入出力制御モジュール８１０は、外部入出力５０を通じて出力コード｛ｃ(i,j)｝をチップ４００の外に出力する。こうして、中間出力｛ｆ(j)｝をチップ内に閉じ込めることが可能となる。
【０１２４】
〈第十六の実施形態〉
一般に、電子装置を構成するチップは一つとは限らない。図１４のネットワークの一例を構成する第一、第二、…、第五の周辺装置も、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図６４では、周辺装置１４０が、第一のチップ１１０、第二のチップ１２０、…、第Ｎのチップ１３０から構成される。このうち、必ずしもすべてのチップがチップ認証装置を搭載している必要はない。図６４の例では、第一のチップ１１０のみがチップ認証装置６０、および、図６２と図６３で説明したチップ認証のための関連モジュールを搭載している。
【０１２５】
〈第十七の実施形態〉
上述したように、チップ認証装置の“０”と“１”の割合は、ほぼ５０％とすることが望ましい。これは、シャノンのエントロピーの考え方にしたがって、物理的乱雑さのエントロピーを可能な限り最大に近づけるためである。
【０１２６】
“０”と“１”の割合の調整は、上述したように、電気的ストレスの印加の仕方によってある程度調整できる。目標値５０％に対して、例えば、ずれを１０％程度とするのが望ましいが、ずれを１０％以内にできなくても、本発明を利用することは可能である。その場合、物理的乱雑さのエントロピーを増大させるため、要素数、すなわち、チップ認証装置を構成する認証素子の数を増やせば良い。目標値５０％（誤差±１０％）は、チップ認証装置の占めるチップ面積を節約するための要請に過ぎず、不可欠な条件ではない。上述したように、Ｎ=Ｋ=１２８でも十分であろう。
【０１２７】
上述した方法によって、この物理的乱雑さのエントロピーは、シリコンダイ単位で最大に近づけるすることも可能であるし、ウェハー単位で最大に近づけることも可能であるし、ロット単位で最大に近づけることも可能であるし、ライン単位で最大に近づけることも可能であるし、工場単位で最大に近づけることも可能である。
【０１２８】
シリコンダイ単位でエントロピーを最大に近づける場合、チップ認証装置内の複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１２９】
ウェハー単位でエントロピーを最大に近づける場合、ウェハー内の複数のチップにまたがって複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３０】
ロット単位でエントロピーを最大に近づける場合、ロット内の複数のウェハーおよび複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３１】
ライン単位でエントロピーを最大に近づける場合、ライン内の複数のロット、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３２】
工場単位でエントロピーを最大に近づける場合、工場内の複数のライン、複数のロット、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“０”と“１”の割合を５０％ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３３】
上述のように、認証素子をサンプリングする実体は、チップ、ウェハー、ロット、ライン、工場と、生産管理の都合上便宜拡大することが可能である。拡大の仕方は、特定のラインの製造期間を区切って行ってもよく、特定の工場の製造期間を区切って行ってもよい。ここでは、必ずしも、全認証素子を検索する必要はない。
【０１３４】
〈第十八の実施形態〉
物理的乱雑さの発生源は複数あって構わない。ただし、一つの認証素子内に存在する発生源は互いに直列の関係にあり、複数の認証素子にまたがって存在する発生源はお互い並列の関係にある。
【０１３５】
したがって、一つの認証素子内に２つの発生源がある場合、どちらか一方が非導電状態にある場合、認証素子そのものが非導電状態となる。それ以外（どちらも導電状態）の場合のみ、認証素子は導電状態である。すなわち、論理回路で言えば、一つの認証素子に含まれる発生源は否定論理和（ＮＯＲ）の関係を満たす。
【０１３６】
〈第十九の実施形態〉
図３４の例では、入力コードの桁数がＮであるのに対し、出力コードの桁数がＮの２乗となっている。入力コードと出力コードの桁数をそろえるのは簡単である。例えば、次の式４を用いて、図３４での出力｛ｃ(i,j)｝を更に新しい出力｛ｃ’ (j)｝に変化する。
【数４】
2017028354.tif 000078
ただし、ｊは１からＮまでの自然数である。図６５では、式４で変換された新しい出力｛ｃ’ (j)｝を出力する様子を示している。入力コードと出力コードの桁数をそろえなくて良い場合には省略できる。
【０１３７】
〈第二十の実施形態〉
図５３、図５４、図５６、及び、図５７の導電体細線は、製造および加工条件により、電気的パルスで破壊する以前から断線、もしくは、異常に抵抗の高いことがある。この断線もしくは異常高抵抗の状態は、例えばメモリの“０”状態に相当し、製造および加工条件により確率的に発生し、物理的乱雑さを反映していると考えられる。この場合、電気的パルスを印加する必要はない。また、図５３は、本実施形態の一例に過ぎず、導電体９３０は、矩形に曲がっている必要もない。
【０１３８】
上記一連の実施形態では、認証素子９７７のアドレスの指定の仕方は、認証素子の二つの端子に、それぞれワード線５０３とビット線９０２を接続するものである。認証素子９７７に印加する電圧は、それぞれ選択するワード線５０３及びビット線９０２の間に印加する。認証素子９７７を流れる電流は、それぞれ選択するワード線５０３及びビット線９０２の間を流れる。
【０１３９】
〈第二十一の実施形態〉
アドレスの別の一例として、図６６に図示するように、認証素子９７７は、少なくとも第一の端子９９４および第二の端子９９３を有する。第一の端子９９４は、ビット線９０２に接続する第二の制御ゲート９９７、及び、ワード線５０３に接続する第一の制御ゲート９９６を通して、制御電極９９０に接続する。アドレスの指定は、ビット線９０２とワード線５０３で行う。第二の端子９９３は、接地している。読み出し電圧や素子破壊のためのストレス電圧は、制御電極９９０に印加される。こうして、選択されたアドレスの素子にのみ、読み出し電圧および破壊のためのストレス電圧が印加される。ストレス電圧の一例は、図４０の通りである。導通状態であれば、電流は、ワード線５０３およびビット線９０２で選択された制御電極９９０を流れる。
【０１４０】
〈第二十二の実施形態〉
近年、廃棄家電の不法投棄が世界的な問題になっている（例えば、非特許文献３参照）。報道によれば、リサイクル制度が施行されている欧州でも３分の２が不正ルートを経由し、アジアやアフリカで違法に処理されている。特に中国では、ボードから強引に引きちぎったＩＣチップのパッケージ上のラベルを張替え、格安の新品として市場で売りさばかれている。不正廃棄した先進国にも輸出され還流されていると考えられる。ボードから引きちぎるとき、物理的・熱的に損傷を受けたＩＣチップは、正常に機能せず、多くの家電製品の故障や不具合の原因になる。一部のＩＣチップの用途は、家電製品のみに留まらない。特に、ＤＲＡＭやフラッシュメモリなど、汎用メモリＩＣ製品は用途が広く、偽造チップが高速列車や航空機の制御系などに部品として使われた場合、大惨事を招く恐れがあるため注意が必要である。
【０１４１】
図６７は、チップ偽造の手口を簡単に示すものである。例えば、廃棄家電のボードに、Ａ社の汎用メモリチップが採用されている。このチップを強引に剥ぎ取り、Ｂ社のラベルを張り、Ｂ社の新品チップとして格安で販売、輸出する。もちろん、これは偽造品である。残念ながら、不法リサイクルそのものを直ぐに解決する方法はない。有効な対策は、仕入れたＩＣチップ製品が偽造品でないかどうか、工場の組み立て現場ですばやく判定する方法である。幸い、本願のチップ認証装置は、チップ内のＩＣ回路そのものに認証をつけることが可能である。
【０１４２】
偽造検査方法を図６８を使って説明する。ここでは、チップメーカー毎に偽造判定用パスコードを公開する。組立工場の仕入れ担当では、各社の公開パスコードを、仕入れたチップに入力し、それぞれ出力コードを読み取る。その出力コードが各チップメーカーに正しいかどうか問い合わせる。説明を簡単にするため、ここでは、全てのチップメーカーから返答があると仮定する。図６７で偽造されたチップであれば、Ａ社とＢ社から自社の製品であると返事が来る。このように２社以上から自社の製品であると回答された場合、偽造チップと判定する。また、Ａ社から自社のチップであると返答された場合も、Ｂ社のラベルが付いているので偽造品と判定される。Ｃ社から自社製品であると返答された場合、やはり、Ｂ社のラベルが付いているので偽造されたものと判定される。いずれの場合も、Ｂ社は偽造品を販売するメーカーとして、組立工場の仕入れ担当に知られることになる。Ｂ社のみから自社製品であると返答された場合は、図６７で偽造されたものではなく、Ｂ社の製品である。
【０１４３】
ラベルには、メーカー名以外にも、製品番号、ロット番号等の製品情報が示されている。ラベルが示すメーカー名と、出力コードによって判明するメーカー名が一致しても、ラベルの製品番号やロット番号に示された情報が異なることがある。これは、メーカー内部の不正による偽造か、当該メーカーの製品管理がずさんであることを示す。
【０１４４】
以上により、偽造判定の条件をまとめる。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が異なる場合、偽造と判定する。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が等しい場合、更に、ラベルに示されるその他の情報（例えば、製品番号、ロット番号、製造年月日等）を、当該出力コードに対応して照会する。ここで一致したとき初めて偽造ではないと判定する。一致しなかった場合、メーカー内部での偽造か、当該メーカーの製品管理がずさんであると判断される。
【０１４５】
上述した実施形態において、説明のために用いら入れたＭＯＳＦＥＴは、ＭＯＳ型トランジスタのことである。一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型の拡散層と、第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極に接続するゲート端子と、一方の第二導電型拡散層に接続するソース端子と、他方の第二導電型拡散層に接続するドレイン端子と、から構成される。また、前記第一導電型半導体基板、前記ゲート絶縁膜、および、前記ゲート電極は、ＭＯＳキャパシタを構成している。
【０１４６】
上述した実施形態において、説明のために用いら入れた不揮発性メモリトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。ＮＯＲ型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、ＮＡＮＤ型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、ＮＡＮＤ型配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
【０１４７】
上述した実施形態において、説明のために用いら入れたＰＮ接合は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、ＭＯＳ型トランジスタや不揮発性メモリトランジスタにも自動的に形成されている。
【０１４８】
上述した実施形態において、説明のために用いら入れたショットキー接合は、半導体と導電体を接触させたものである。ＰＮ接合も、ショットキー接合も、ダイオード接合の一種である。
【０１４９】
上記において、ＭＯＳ型トランジスタ、不揮発性メモリトランジスタ、及びＰＮ接合の構造を説明するために用いた、第一導電型半導体基板は、第一および第二導電型半導体基板の広い領域に作成された、第一導電型拡散層（通常ウェル）で置き換えることも可能である。
【０１５０】
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
【０１５１】
この発明によれば、電子装置のネットワークを、周辺装置と、周辺装置の登録状況を管理する基幹サーバーとに分割し、基幹サーバーは中央管理とし、中央管理の手が行き届かない周辺装置には、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、システム全体のセキュリティを向上し、周辺装置への遠隔攻撃を効率よく未然に防ぐことが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置間のものであり、特定のシステムの内か外かに関わらない。また、偽造チップ問題に対する対策も、同じ認証素子によるチップ認証装置で実現できる。
【０１５２】
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のＳＩＭカードのようなものがIoT/IoE用の周辺装置に用いられるようなビジネスモデルに有効である。
【産業上の利用可能性】
【０１５３】
中央管理の行き届かない周辺装置を無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
【符号の説明】
【０１５４】
１、１０、１００チップ
２  ファームウェア
３  認証制御デバイス
４  認証コード（ＩＤ）
５、５０  外部入出力装置（Ｉ／Ｏ）
６  認証システム（従来例の一例）
１１  第一の認証
１２  第二の認証
１３  第三の認証
２１  第一のチップ認証装置
２２  第二のチップ認証装置
３１  入力信号誤差
３２  出力信号誤差
４２、１０２、４０２  入力コード
４３  登録コード
６０、６００  チップ認証装置／モジュール
６１  チップ認証装置搭載チップ
７１  第一の装置
７２  第二の装置
７３  第三の装置
７４  第四の装置
７５  第五の装置
８０  交信シリーズ
８３  偽交信シリーズ
９２  第二の装置の正規使用者
９３  遠隔攻撃者
１１０  第一のチップ
１２０  第二のチップ
１３０  第Ｎのチップ
１４０  周辺装置
２０２、４０３  登録コード
３０２、４０１  内部メモリ
４００  基幹サーバー
４１０  第一の周辺装置
４２０  第二の周辺装置
４３０  第三の周辺装置
４４０  第四の周辺装置
４５０  第五の周辺装置
５０３  ワード線
５０４  ワード線コンタクト
５０５  ビット線コンタクト
５３０  導電体ビア
６０１、６０５  乱数発生装置
６０２、６０６  コード発生装置
６０４  スクランブル装置
６１１  チップ認証装置セルアレイ
６１４  スクランブル装置セルアレイ
７４２  ショート判定電圧
７４３  非ショート判定電流値
７４４  ショート判定電流値
７９０  ページバッファ回路
７９１  ビット線接続ゲート
７９１０  ビット線接続トランジスタ
８００、８１０  入出力制御モジュール
８８０  認証装置用制御モジュール
８９０  スクランブル装置モジュール
９００  中間コード用バッファーモジュール
９０２  ビット線
９１０  絶縁膜
９３０  導電体
９３１  レジスト
９３２  破壊判定電圧
９３３  破壊判定電流値
９３４  非破壊判定電流値
９６０  チップ認証用素子アレイの等価回路
９７０  導電体接合部
９７１  入出力ピン
９７２  行デコーダー
９７３  列デコーダー
９７７  認証素子
９８０  外部入出力制御回路
９８２  キャパシタ
９８３  トランジスタ
９８４  不揮発性メモリトランジスタ
９８５  ヒューズ抵抗
９８６  ＰＮ接合（ダイオード）
９８７  ショットキー接合（ダイオード）
９９０  制御電極
９９３  第二の端子
９９４  第一の端子
９９６  第一の制御ゲート
９９７  第二の制御ゲート
１０５１  導電体先端部
１０５２  第二導電体
１０５３  第一導電体
１０５４  第二電極
１０５５  第一電極
１４００  第一の基幹サーバー
１４１０  第一の共通パスコード
２４００  第二の基幹サーバー
２４１０  第二の共通パスコード
３４００  第三の基幹サーバー
３４１０  第三の共通パスコード
４１０１  第一の認証
４２０１  第二の認証
４３０１  第三の認証
４３０２  第四の認証
４４０２  第五の認証
４５０２  第六の認証
９３３０、９３３１  破壊判定電圧値
９３４０、９３４１  非破壊判定電圧値
９８１１  ビット線側選択ゲート
【手続補正３】
【補正対象書類名】図面
【補正対象項目名】図１４
【補正方法】変更
【補正の内容】
【図１４】
2017028354.tif 000079
【手続補正４】
【補正対象書類名】図面
【補正対象項目名】図３９
【補正方法】変更
【補正の内容】
【図３９】
2017028354.tif 000080
【手続補正５】
【補正対象書類名】図面
【補正対象項目名】図４７
【補正方法】変更
【補正の内容】
【図４７】
2017028354.tif 000081
【手続補正６】
【補正対象書類名】図面
【補正対象項目名】図５５
【補正方法】変更
【補正の内容】
【図５５】
2017028354.tif 000082
【手続補正７】
【補正対象書類名】図面
【補正対象項目名】図６３
【補正方法】変更
【補正の内容】
【図６３】
2017028354.tif 000083
【手続補正８】
【補正対象書類名】図面
【補正対象項目名】図６９
【補正方法】追加
【補正の内容】
【図６９】
2017028354.tif 000084
【手続補正９】
【補正対象書類名】図面
【補正対象項目名】図７０
【補正方法】追加
【補正の内容】
【図７０】
2017028354.tif 000085
【手続補正１０】
【補正対象書類名】図面
【補正対象項目名】図７１
【補正方法】追加
【補正の内容】
【図７１】
2017028354.tif 000086