JP2021190980A - 電子装置のネットワーク及び電子装置 - Google Patents

電子装置のネットワーク及び電子装置 Download PDF

Info

Publication number
JP2021190980A
JP2021190980A JP2020142812A JP2020142812A JP2021190980A JP 2021190980 A JP2021190980 A JP 2021190980A JP 2020142812 A JP2020142812 A JP 2020142812A JP 2020142812 A JP2020142812 A JP 2020142812A JP 2021190980 A JP2021190980 A JP 2021190980A
Authority
JP
Japan
Prior art keywords
chip
authentication
node
physical node
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2020142812A
Other languages
English (en)
Other versions
JP2021190980A5 (ja
Inventor
浩志 渡辺
Hiroshi Watanabe
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to US17/927,386 priority Critical patent/US20230198961A1/en
Priority to PCT/JP2021/019838 priority patent/WO2021241590A1/ja
Publication of JP2021190980A publication Critical patent/JP2021190980A/ja
Publication of JP2021190980A5 publication Critical patent/JP2021190980A5/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

【課題】真に物理的実態に対して一意に割り当てられ、編集不可能で、物のインターネットの時代になってもなりすましの懸念のない物理アドレスを活用し、より安全なIoTネットワークを提供する。【解決手段】チップレベルで電子装置の物理アドレスを中央管理下に置くことによって閉じた物理ネットワークを実現し、その閉じた物理ネットワーク上(物理的ファイヤーウォール内)のチップの認証を記した辞書をブロックチェーン化することによって論理的には分散管理を行う。【効果】物理ノードの中央管理と論理ノードの分散管理を共存させ、閉じた物理ネットワーク全体の管理とセキュリティを効率的に向上させる。【選択図】図104

Description

本発明は、イーサネットにおける電子装置間通信に用いる物理的チップ認証方式に関する。
一般に、インターネットを用いた情報通信は、適当な大きさに切り分けられたデジタルデータの塊(プロトコル・データ・ユニット)をネットワーク上での情報端末(ノード)同士で交換することである。これらの分割されたデータの一片には、ネットワーク上での管理に必要な制御情報が付与されている。このデータの一片と制御情報の並べ方をフォーマットと呼び、フォーマットおよびその活用はプロトコルと呼ばれる一種の手続きによって規定されている。互いに情報通信する任意の2つの情報機器は、それぞれ一定の整合性を持つフォーマットのデータを扱わなければならない。
プロトコル・データ・ユニットの仲間でよく使われる言葉にフレーム、パケット、セグメント等がある。名称の違いは通信階層に対応して使い分けられる。
通信の階層構造(通信階層)は、ネットワークシステム全体の概念によって決定され、次のような構造が一般的であると認識されている。たとえば、下の階層から順に、物理層(レイヤー1)、データリンク層(レイヤー2)、ネットワーク層(レイヤー3)、トランスポート層(レイヤー4)、上位層(レイヤー5)となる。ただし、この階層構造はほんの一例に過ぎず、異なる概念の元では、たとえば、上位層を更に3分割して7階層にする場合も良く知られている。いずれにしろ、データリンク層(レイヤー2)ではプロトコル・データ・ユニットをフレームと呼び、ネットワーク層(レイヤー3)ではパケットと呼び、トランスポート層(レイヤー4)ではセグメントと呼ぶのが一般的である。
以下、上述の5階層を前提にして説明を続ける。
ネットワークを物理的実態として構成するには、ネットワークノードとなる情報機器とノード同士を接続する信号伝達路が必要である。信号伝達路は有線であっても無線であっても構わない。また、信号の種類も複数の可能性がある。大雑把に分類すると、たとえば、電気信号と光信号である。すなわち、有線・無線の電気信号伝達路または光信号伝達路が、ネットワーク上でノード同士を物理的に接続する。このような物理的な接続・伝送方式を規定するレイヤーが物理層(レイヤー1)である。
一般に、ネットワークの接続構造は複雑であるが、信号伝達路の両端はそれぞれ一つのノードで終端していなければならない。プロトコル・データ・ユニットは、この信号伝達路を透過するデータの塊である。従って、一つの信号伝達路の両端を終端する二つのノード(たとえば、第一のノードと第二のノード)は、それぞれ一定の整合性のあるプロトコルに従わなければならない。もし、それぞれが従うプロトコルに一定の整合性がなかった場合、この信号伝達路は、第一のノードと第二のノードを接続していないとみなされることがある。
図1は、プロトコル・データ・ユニットの送信の仕方を示す概念図である。プロトコル・データ・ユニットに変換(コード)される元のデジタルデータは、ネットワークの一部を構成する第一のノード2001に入力される。第一のノード2001とは、一例として、キーボード、マウス、ディスプレイ等のコンソールを備えた計算機端末、タブレット、携帯電話、スマートフォン、カードリーダを備えた端末、スキャナー、ネット接続機能を備えたデジタルカメラ、ありとあらゆるところに分布するセンサーなどである。これらの情報機器すべてがネットワークの外からなんらかの情報を取り込み、その情報をプロトコル・データ・ユニットに変換して信号伝達路1000に送り込む。このように、ネットワークの外部と何らかのつながりを持つノードを周辺ノードとみなせる。図1の場合、第一のノード2001が周辺ノードの一例となる。
周辺ノード(たとえば第一のノード2001)では、ネットワーク外部から入力された情報をデジタル化する。続いて所定のフォーマットに従ってプロトコル・データ・ユニット(フレーム)に変換する。あるいは、あらかじめデジタル化された情報が入力される場合、そのまま所定のフォーマットに従ってプロトコル・データ・ユニットに変化する。いずれにしろ、このプロトコル・データ・ユニットは、信号伝達路1000を介して、この周辺ノード(たとえば第一のノード2001)が従うフォーマットと一定の整合性のあるフォーマットに従うノードに送信される。図1の例では、第二のノード2002が受信側のノードになる。
この信号伝達路1000の反対側のノード(たとえば第二のノード2002)では、上記プロトコル・データ・ユニットを受信し、所定のフォーマットに従って、変換前のデジタルデータに戻す作業(デコード)を行う。
上記第一のノード2001が周辺ノードでない場合、第一のノード2001は、ネットワーク内の他のノード(たとえば、第三のノード2003)からなんらかのデジタル情報を受信する。これは、第三のノード2003がコードしたプロトコル・データ・ユニットである。第一のノード2001は、このプロトコル・データ・ユニットを所定のフォーマットに従って元のデジタルデータにデコードする。ここで第一のノード2001が従う所定のフォーマットとは、第三のノード2003が従うフォーマットと一定の整合性のあるフォーマットである。ただし、この第一のノード2001が後述する中継器として動作する場合、第一のノード2001はプロトコル・データ・ユニットをデコードする代わりに第一のノードに関する情報(たとえば第一のノードを経由したことを示す情報など)を添付し、信号伝達路1000を介して第二のノード2002に伝送する。この場合、第二のノード2002が従う所定のフォーマットとは、第三のノード2003が従うフォーマットと一定の整合性のあるフォーマットである。
まず、ネットワークの外部、あるいは、第三のノード2003から第一のノード2001に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、第一のノードが従うフォーマットと一定の整合性のある所定のフォーマットに従って、受信したプロトコル・データ・ユニットを逆変換(デコード)し、第一のノード2001に入力される前の元の情報を再生する。これが信号データの伝送の基本的な仕組みである。こうして、プロトコル・データ・ユニットに変換(コード)されたデータの塊はネットワーク上で送受信される。
上述したデータの伝送は、第一のノード2001から第二のノード2002への一方向のみを説明したが、伝送の向きが逆になってもプロトコルの利用方法になんら変更はない。たとえば、図1の第一のノード2001と第二のノード2002を交換しても良い。その場合、まず、ネットワークの外部、あるいは、第三のノード2003から第二のノード2002に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、信号伝達路1000を通して第一のノード2001に伝送される。第一のノード2001では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換し、第二のノード2002に入力される前の元データを再生する。図面は図1から自明なので省略する。
図2は、階層構造とデータ構造の関係を示す図面である。伝送される元の情報は、まず適当な大きさのデータの塊に分割される。今後、この分割されたデータの塊を単純にデータと呼ぶ。この時点でデータが存在する通信階層が上位層(レイヤー5)である。
次に、このデータにトランスミッション・コントロール・プロトコル・ヘッダー(TCPヘッダー)を付ける。TCPはトランスミッション・コントロール・プロトコルの略であり、プロトコルの一種である。こうしてTCPヘッダーを付けたデータをセグメントと呼ぶ。このセグメントを扱う通信階層がトランスポート層(レイヤー4)である。
図1に対応する通信がトランスポート層(レイヤー4)における通信である場合、プロトコル・データ・ユニットはセグメントであり、変換プロトコルはTCPである。第一のノード2001がデータを受信すると、TCP形式のフォーマットに従ってTCPヘッダーをデータに添付し、セグメントを構成する。このセグメントは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このセグメントを受信し、TCP形式のフォーマットに従ってデコードし、元のデータを再生する。具体的には、TCPヘッダーを取り除く。
ネットワーク層(レイヤー3)では、セグメントにインターネット・プロトコル・ヘッダー(IPヘッダー)を付与する。この場合、プロトコル・データ・ユニットはパケットと呼ばれる。プロトコルはIPである。バージョンによってIPv4やIPv6などがある。
図1に対応する通信がネットワーク層(レイヤー3)における通信である場合、プロトコル・データ・ユニットはパケットであり、変換プロトコルはIPv4やIPv6などである。第一のノード2001がデータ(この場合セグメント)を受信すると、IPv4形式あるいはIPv6形式などのフォーマットに従ってIPヘッダーをセグメントに添付し、パケットを構成する。このパケットは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このパケットを受信し、IPv4形式あるいはIPv6形式等のフォーマットに従って逆変換(デコード)し、元のセグメントを再生する。具体的には、IPヘッダーを取り除く。あるいは、TCPヘッダーも取り除いてデータを復元することができる。
データリンク層(レイヤー2)では、パケットにイーサネット・プロトコル・ヘッダー(イーサネットヘッダー)を添付する。この場合、プロトコル・データ・ユニットはフレームと呼ばれる。プロトコルはイーサネットである。
図1に対応する通信がデータリンク層(レイヤー2)における通信である場合、プロトコル・データ・ユニットはフレームである。第一のノード2001がデータ(この場合パケット)を受信すると、イーサネット形式に従ってイーサネットヘッダーをパケットに添付し、フレームを構成する。イーサネット形式では、更に、パケットが正しく届いたかどうかを確認するためフレーム・チェック・シークエンス(FCS)を添付する。こうして生成されたフレームは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このフレームを受信し、イーサネット形式に従って逆変換(デコード)し、元のパケットを再生する。具体的には、FCSをチェックしてパケットが正しく伝送されたかどうかを確認する。必要に応じて修復や再送依頼などの処置を施す。正しく伝送されたことが確認されたらイーサネットヘッダーとFCSを取り除く。
イーサネット規格では、最下層(レイヤー1)の物理層での変換、すなわち、光信号への変換や電気信号への変換も定義されることがある。変換後のフレームは10BASE-Tなどの回線に渡される。
これらの通信階層(通信レイヤー、あるいは、レイヤー)は、それぞれ入れ子の状態になっており、各階層(あるいは、各レイヤー)はそれぞれ完全に独立している。具体的には、図2に示したとおり、レイヤー4(トランスポート層)のセグメント(データにTCPヘッダーのみを添付したもの)のフォーマットは、レイヤー5(上位層)のフォーマット(データのみ)を変換せずに含んでいる。これは、セグメントがTCPヘッダーと元のデータをそれぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。同様に、レイヤー3(ネットワーク層)のパケットのフォーマット(セグメントにIPヘッダーのみを添付したもの)は、レイヤー4(トランスポート層)のフォーマット(セグメント)を変換せずに含んでいる。これは、パケットがIPヘッダーとセグメントをそれぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。さらに、レイヤー2(データリンク層)のフレームのフォーマット(パケットにイーサネットヘッダーおよびFCSを添付したもの)は、レイヤー3(ネットワーク層)のフォーマット(パケット)を変換せずに含んでいる。これは、フレームが、イーサネットヘッダーおよびFCSとパケットを、それぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。
すなわち、下位の通信階層でプロトコルやフォーマットを入れ替えても、上位の通信階層にはまったく影響しない。たとえば、図2において、レイヤー3(ネットワーク層)のIPヘッダーをIPv4からIPv6に変更してもTCPヘッダーおよび元のデータ(つまりセグメント)には何の影響もない。つまり、レイヤー3(ネットワーク層)で何か変更を加えてもレイヤー4(トランスポート層)には何も影響がない。レイヤー4(トランスポート層)に影響がなければレイヤー5(上位層)にも影響がない。同様に、レイヤー4(トランスポート層)でTCPヘッダーを何か別のヘッダーに置き換えても、元のデータにはまったく影響がない。つまり、レイヤー4(トランスポート層)で何か変更を加えてもレイヤー5(上位層)には影響がない。更に、イーサネットヘッダーを何か別のものに置き換えても、パケットには何も影響がない。たとえば、プロトコルをイーサネットからポイント・トー・ポイント(PPP)に変更してもパケットには何も変化がない。したがって、レイヤー2(データリンク層)で何か変更を加えても、レイヤー3(ネットワーク層)には何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。更に、レイヤー1(物理層)で何か変更をする。たとえば、信号伝達路を光ファイバーから無線LANに変更する。この場合でも無線LANを介して伝達される情報の内容(この場合フレーム)は、光ファイバーで伝達される情報の内容(フレーム)となんら変わりがない。つまり、レイヤー1(物理層)で何か変更を加えてもレイヤー2(データリンク層)には何も影響がない。レイヤー2(データリンク層)に何も変更がなければレイヤー3(ネットワーク層)にも何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。こうして、下位のどの通信階層で何か変更を施しても上位のどの通信階層にも何も影響がないことが判る。これは、後の技術革新の妨げとならないような設計である。
一方、本願は最下層の物理層とデータリンク層に関するものである。このような事情により、本願が伝送されるデータに影響を及ぼすことはない。
同じ階層で採用されるプロトコルは一定の整合性を持っていなければならないが、階層が異なればその必要はない。すなわち、階層を設計するということは、複数のプロトコルの関係性を設計することである。上記では、物理層とデータリンク層をそれぞれ別の階層(レイヤー1とレイヤー2)としたが、別の階層概念によれば、同じイーサネット・プロトコルに従わせて一つの階層とみなすことも可能である。この場合レイヤー数は一つ減って4階層となる。また、トランスポート層(レイヤー4)とネットワーク層(レイヤー3)のフォーマットを合わせてTCP/IP形式と呼ぶこともある。あるいは、逆に細分化する階層の設計概念もありうる。たとえば、OSI基本参照モデルでは、上位層を更に3つに分割し、下位からセッション層(レイヤー5)、プレゼンテーション層(レイヤー6)、アプリケーション層(レイヤー7)と階層する。
図1の場合おいて、ネットワーク外部から第一のノード2001に情報が入力される場合、元の情報はそれぞれ所定の長さのデータの集まりに分割されている。データはTCP/IP形式にしたがってフォーマットされ、パケットに変換される。パケットは、イーサネット形式に従ってフレームに変換される。物理層(レイヤー1)では、このフレームは信号伝達路1000の物理的実態を通して有線、無線、光、あるいは電子信号として送受信される。ここで、第一のノード2001および第二のノード2002は、物理的実態を持った情報機器である。次に、ネットワーク層(レイヤー3)上の第三のノード2003から第一のノード2001にパケットが入力される場合、このパケットはイーサネット形式に従ってフレームに変換され、信号伝達路1000を介して第二のノード2002に送信される。ここで、第一のノード2001、第二のノード2002、および信号伝達路1000は、どれも物理的実態を持つ。続いて、トランスポート層(レイヤー4)上の第三のノード2003からセグメントが第一のノード2001に入力される場合、このセグメントはIP形式に従ってパケットに変換され、ネットワーク層上の信号伝達路1000を通して第二のノード2002に送信される。ここで、第一のノード2001、第二のノード2002、第三のノード2003は、いずれも論理的存在であり物理的実態とは関係がない。たとえば、オペレーティングシステムに割り当てられた仮想的なノードである。このとき、信号伝達路1000も仮想的な伝達路に過ぎず、物理的実態との関連はない。すなわち、TCP/IP形式のネットワーク(ネットワーク層)では、ノードも信号伝達路も論理的に定義された仮想的存在であり、物理的実態とは関連性がない。これに対し、イーサネット形式のネットワーク(データリンク層)では、ノードも信号伝達路も物理的実態を持っている。たとえば、このノードはどの端末に対応しているか?この信号伝達路はどのLANケーブルに対応しているのか?と言った問いに答えられるものである。
図3では、第一のノード2001と第二のノード2002の間を第四のノード2004が中継している。ネットワーク外部、あるいは、第三のノード2003から何がしかのデータがデジタル信号として第一のノード2001に入力される。第一のノード2001は、第一の信号伝達路1001を介して第四のノード2004と接続している。第四のノード2004は、第二の信号伝達路1002を介して第二のノード2002に接続している。
第一の信号伝達路1001を介した第一のノード2001と第四のノード2004との接続は、基本的に図1を用いて説明した信号伝達路1000を介した第一のノード2001と第二のノード2002の間の信号伝達とほぼ同様であるが、第四のノード2004の働きが一部異なる。すなわち、図3のように、第四のノード2004を他の任意の2つのノードの中継器として使う場合(たとえば、第一のノード2001と第二のノード2002の間の中継器)、第四のノード2004は、第一の信号伝達路1001を介して第一のノード2001から受信したプロトコル・データ・ユニットをデコードせず、そのまま第二の信号伝達路1002を介して第二のノード2002に転送することが可能である。あるいは、何らかの編集を施してから転送することが可能である。
こうして、ネットワークの外部、あるいは、第三のノード2003から第一のノード2001に入力されたデータは、第一のノード2001で所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、第一の信号伝達路1001を通して第四のノード2004に伝送される。第四のノード2004は、受信したプロトコル・データ・ユニットを逆変換(デコード)することなく、第二の信号伝達路1002を介して第二のノード2002に伝送する。あるいは、受信したプロトコル・データ・ユニットの一部(例えばヘッダー)を編集してから第二の信号伝達路1002を介して第二のノード2002に伝送する。第二のノード2002では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換し、第一のノード2001に入力される前のデータを再生する。ここで第二のノード2002が従う所定のフォーマットとは、第一のノード2001が従うフォーマットと一定の整合性のあるフォーマットである。
第四のノード2004において、受信したプロトコル・データ・ユニットを編集してから第二の信号伝達路1002を介して第二のノード2002に転送する場合、より具体的には、当該レイヤーに対応するヘッダーを適当に編集してから転送する。たとえば第四のノード2004がデータリンク層(レイヤー2)に存在する場合、フレームのイーサネットヘッダーを編集して転送することが可能である。更により具体的には、少なくとも、中継器である第四のノード2004の所定の認証を追加する。その経由地は、物理的実態を伴うアドレス(物理アドレス)として認識される。この物理アドレスのことを特にMACアドレスと呼ぶ。MACアドレスはイーサネット機器(たとえばイーサネットカード)に固有のアドレスである。あるいはネットワーク層(レイヤー3)に存在する場合、パケットのTCP/IPヘッダーを編集して転送することが可能である。たとえば、少なくとも、中継器である第四のノード2004のシステムに対応する所定の認証を追加する。いずれにしろこうすることで、第二のノード2002がプロトコル・データ・ユニットを受信する際、このプロトコル・データ・ユニットがどこをどう経由して来たかということを追跡できる。その経由地は物理的実態を伴わないアドレス(論理アドレス)として認識される。この論理アドレスのことを特にIPアドレスと呼ぶ。IPアドレスは、たとえば、オペレーティングシステムに固有のアドレスである。
物理アドレスと論理アドレスの違いは次のような説明で自明である。たとえば、第四のノード2004を構成する電子機器を入れ替えることを考える。その場合、入れ替え前の第四のノード2004を構成する電子機器(旧電子機器)のオペレーティングシステムを、入れ替え後の第四のノード2004を構成する電子機器(新電子機器)へ再インストールしなければならない。このとき、物理的実態である電子機器固有の認証である物理アドレスは変更することになる。一方、オペレーティングシステムに固有の論理アドレスは入れ替え後も第四のノード2004のIPアドレスとして引き継がれる。これが論理ネットワーク(TCP/IPネットワーク)を採用する理由の一つである。
図1および図3の例において、第一のノード2001と第二のノード2002を交換することが可能である。すなわち、ネットワークの外部、あるいは、第三のノード2003から第二のノード2002に入力されたデータは、第二のノード2002で所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、第二の信号伝達路1002を通して第四のノード2004に伝送される。第四のノード2004は、受信したプロトコル・データ・ユニットを逆変換(デコード)することなく、第一の信号伝達路1001を介して第一のノード2001に伝送する。あるいは、受信したプロトコル・データ・ユニットを所定の方法で編集してから第一のノード2001に伝送する。第一のノード2001では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換(デコード)し、第二のノード2002に入力される前のデータを再生する。ここで、第一のノード2001が従う所定のフォーマットとは、第二のノード2002が従うフォーマットと一定の整合性のあるフォーマットである。図面は図3から自明なので省略する。ここで、所定の方法で編集するとは、たとえば、第四のノード2004の物理アドレス、あるいは、論理アドレスを添付すること、などである。
ネットワーク中の各ノードにつながる信号伝達路は一つに限らない。すなわち、すでに図3で見たように、第四のノード2004は2つの信号伝達路(第一の信号伝達路1001と第二の信号伝達路1002)に接続している。図4は、別の一例である。すなわち、第一のノード2001には、4つの信号伝達路(第一の信号伝達路1001、第二の信号伝達路1002、第三の信号伝達路1003、第四の信号伝達路1004)の一端がつながっている。それぞれ反対側の端が、第二のノード2002、第三のノード2003、第四のノード2004、および第五のノード2005に接続している。更に、第四のノード2004が、第五の信号伝達路1005を介して第六のノード2006に接続している。もちろん、図4は複雑なネットワーク構造のほんの一部、あるいは、一例に過ぎない。一般には、複数のノードが別の複数のノードと接続することでより大規模かつ複雑なネットワークが構築可能である。
しかしながら、ネットワーク構造がいかに大規模かつ複雑であろうとも、その要素(エレメント)は2つのノードで終端された信号伝達路である。図5参照。これは、上述したように、ネットワークの構成要素がノードと信号伝達路から構成されることに他ならない。上述したプロトコルは、このエレメントごとに定義できる。したがって、同じか、あるいは、一定の整合性を持ったプロトコルで規定された複数のエレメントの集合体は同じ通信階層に属することになる。同じ通信階層に属する複数のエレメントが互いに接続することによってローカル・エリア・ネットワーク(LAN)を構築することが可能である。最初に発明されたLANがイーサネットによるネットワークであり、データリンク層(レイヤー2)を束ねるものであった。このような歴史的背景から、現在でもLANとイーサネットはほぼ同義語として扱われる。
LANにノードとして接続する情報機器には、イーサネット・プロトコルに従ってそれぞれ固有の管理番号(MACアドレス)が割り当てられている。ここで、MACはメディア・アクセス・コントローラーの略である。すなわち、送信先と送信元それぞれのMACアドレスをイーサネットヘッダー、あるいは、その一部としてパケットに添付し、さらに、FCSを添付してフレームを生成する。このとき、別の言い方をすれば、MACアドレスでつながった(物理的実態を持つ)情報機器のネットワークがデータリンク層のネットワーク、すなわち、LANとみなすことができる。
第一のノード2001と第二のノード2002が、それぞれイーサネットで繋がった情報機器だとする。図5参照。このときプロトコル・データ・ユニットはフレームである。これらの2つの情報機器の間でフレームを伝送する場合、送信先の情報機器(たとえば第二のノード2002)と送信元の情報機器(たとえば第一のノード2001)は、共にイーサネット・プロトコルに従わなければならない。すなわち、第一のノード2001の管理番号が送信元のMACアドレスであり、第二のノード2002の管理番号が送信先のMACアドレスである。図5はネットワークのエレメントであり、実際にはもっと複雑なネットワーク構造の一部である。たとえば、図4のように、第一のノード2001は、第二から第五までの4つのノード(2002、2003、2004、2005)と接続している。ここでは、すべてのノードが同じプロトコルに従っていると仮定する。たとえば、第一のノード2001は、上記フレームを第一から第四の信号伝達路(1001、1002、1003、1004)を介して発信する。伝送するフレームのイーサネットヘッダーに含まれる送信先MACアドレスが、たとえば第二のノード2002のMACアドレスであったとしよう。第三のノード2003は、このフレームの送信先MACアドレスを確認して受信しない。第四のノード2004と第五のノード2005も同様に受信しない。第二のノード2002のみこのフレームを受信する。さらに第二のノード2002は、送信元のMACアドレスによってこのフレームが第一のノード2001から送られてきたものであることを確認できる。
第一のノード2001でパケットをコードしてフレームを形成し、このフレームを第二のノード2002に送付し、第二のノード2002で受信してフレームをデコードして元のパケットを再生する場合を考えよう。たとえば、図1参照。ネットワークの外部、あるいは、第三のノード2003から第一のノード2001にパケットが入力される。第一のノード2001は、このパケットに、送信元である第一のノード2001のMACアドレスと、送信先である第二のノード2002のMACアドレスを添付する。更にFCSを添付してフレームを生成する。こうして生成されたフレームは、プロトコル・データ・ユニットとして信号伝達路1000を介して第二のノード2002に伝送される。このように、MACアドレスに従ってフレームが送信先の情報機器(第二のノード2002)に届いたら、送信先ではイーサネット・プロトコルにしたがってフレームをデコードし、データリンク層に投入する以前の送信元のデジタル情報(パケット)を再現する。ここで、FCSに従って、必要に応じて修復あるいは再送の依頼をすることが可能である。再送依頼を出さない場合、こうして、データリンク層でのパケットの伝送が完了する。データリンク層でデコードするとは、MACアドレスやFCSなどイーサネット・プロトコルに従って元のデジタルデータ(パケット)に添付されていた余分なコードを取り除くことである。送信先(第二のノード2002)では、受信したフレームの送信元の制御情報(MACアドレス等)が確認できるので、受信したときデコードするか、更に伝送するかを判断することが可能である。
再生されたデジタル情報は、TCP/IPフォーマット形式のデータの一片、すなわちパケットである。IPパケットと呼ばれることもある。送信元である第一のノード2001がコードする以前のデジタルデータと同等であるものとする。パケットは、上述したように、ネットワーク層(レイヤー3)での通信データの単位であり、ネットワーク層でのプロトコルがIPプロトコル(IPv4あるいはIPv6等)である。
図1および図5が、データリンク層(レイヤー2)のエレメントを構成する場合、イーサネットヘッダーは封筒のようなものである。送信先MACアドレスは封筒に記載されたあて先住所であり、送信元MACアドレスは同じく封筒に記載された送り主の住所である。FCSは内容証明のようなものとなる。ここで、封筒の中身がパケットである。したがって、イーサネットでコードするということは、あて先と送り主の住所を記載した封筒にパケットを封入することであり、デコードとは開封することを意味する。封筒の中身と封筒に記載された事項には何の関連性もない。これが、上述した階層の独立性に相当する。たとえば、区画整理などによって番地や町名が変更になっても封筒の中身には何の変化もない。
図1および図5が、一つ上の階層(ネットワーク層)のエレメントを構成する場合、封筒はIPヘッダーになる。IPヘッダーには、送信先と送信元のネットワーク層上の住所であるIPアドレスが含まれる。封筒の中身はセグメントであり、IPヘッダーを添付することが封入である。一方、IPヘッダーを取り除くことが開封である。実際には、更に一つ上の階層(トランスポート層)と連携してIPアドレスが割り振られている。この場合封筒の中身は分割された一片のデータそのものである。
MACアドレスは、実際の情報機器(物理的実態のあるノード)にそれぞれ割り振られるので物理アドレスと呼ばれる。したがって、何がしかの物理的実態と関連付けられたデジタルデータの一片には、すべてMACアドレスが添付されている。これに対し、IPアドレスは必ずしも物理的実態とは関連しない。すなわち、オペレーティングシステム等が論理的に存在を仮定したノードに対して割り振ることが可能なので、論理アドレスと呼ばれる。こうして、インターネット上を行き交う途上一度でも物理的実態を伴う情報機器を介したデジタルデータの一片(プロトコル・データ・ユニット)には、IPアドレスだけでなくMACアドレスも所定の形式で付与されることになる。
こうして、インターネット上の住所(例えば、パケットの送信先)であるIPアドレスに対して、情報機器の管理番号であるMACアドレスは通行手形のような使われ方をすることがわかる。すなわち、インターネット上のある一塊のネットワーク内(たとえばLAN)に情報を届けることを考えよう。このネットワーク内の機器、あるいは、このネットワークを管理する基幹ノードやルーターは、事前に登録された情報機器からのみフレームを受け付けるものとする。事前登録された機器から発信されフレームかどうかを見極めるために送信元のMACアドレスを調べることになる。事前登録された送信元であることが確認された場合のみフレームを開封(デコード)し、パケットを受信する。そうでない場合はフレームを開封しない。
MACアドレスは、情報機器に搭載されているイーサネットカードに固有の管理番号として割り当てられている。電気電子技術者学会(IEEE)によって標準化され(MACアドレス標準)、長さ48ビット(6バイト)、したがって情報量およそ280兆もの0と1の数列からなる。このうち1ビットはULビットと呼ばれるものに割り当てられる。MACアドレスがグローバルアドレスの場合、ULビットは1である。そうでない場合0である。すなわち、グローバルアドレス(ULビット=1)の場合では全世界で重複を起こさないよう、MACアドレスを割り当てられなければならない。ここで注意すべきことは、現在現役で使用されている情報機器だけでなく、すでに廃棄されたり紛失したり使用されなくなってしまった情報機器にまで渡って全世界で重複しないよう、MACアドレスを割り当てられなければならないことである。これは、MACアドレスが物理的実態を伴う個々の情報機器に割り当てられるからである。この48ビットの内、別の1ビットはIGビットと呼ばれるものに割り当てられる。IGビットが0の場合、ユニキャスト通信を意味し、1の場合はマルチキャスト通信を意味する。ユニキャスト通信とは、情報機器のネットワークの中において単一の送信先を指定してフレームを送信することである。これに対しマルチキャスト通信とは、情報機器のネットワークの中において、複数の送信先を指定してフレームを送信することである。こうして、48ビットの内ULビットとIGビットの2ビットを除いた46ビットが実際に割り当てられるMACアドレスの自由度ということになる。数にしておよそ70兆ほどである。MACアドレスを表記するには、このULビットとIGビットを含む48ビットの数列を8ビットごとに区切ってそれぞれ16進数で表す。
図6に、イーサネットカードの典型例を図示する。イーサネットカード3000は、主に、MACアドレスを保存した不揮発性メモリチップ3010とメディア・アクセス・コントローラー(MAC)用演算処理チップ3020(MAC制御装置)から構成される。イーサネットカードは、一般に、LANなどを介して情報機器を相互接続するために情報機器に搭載して用いる。そのため、本来はLANボード、あるいは、LANカードと呼ばれる。しかしながら、LANカードやLANボードの規格がほとんどの場合イーサネット規格に準拠しているので、イーサネットカードとLANカードはほぼ同義で呼ばれることが多い。図6は、プリンター、ルーター、あるいは、デスクトップパソコンなどに搭載して使用する場合をイメージした例である。イーサネットカードの背面にはイーサネットコネクタがあり、イーサネットカードを搭載した情報機器の背面にこのイーサネットコネクタがむき出しになる。このイーサネットコネクタにLANケーブルを差し込む。あるいは、アンテナを付けて無線LANに接続する。他の情報機器に搭載する場合も基本構成はこれとさして変わらない。
情報機器をブートする際、あるいは、有線無線に関わらず情報機器をネットワークに接続する際、情報機器のオペレーティングシステムがイーサネットカードに内蔵された不揮発性メモリ3010からMACアドレスを読み出す。情報機器の演算処理装置は、このMACアドレスをイーサネットカードに内蔵のメディア・アクセス・コントローラー(MAC)用演算処理チップに書き込む。この情報機器(送信元)からネットワークに接続した別の情報機器(送信先)にデータを送信するとき、このメディア・アクセス・コントローラー(MAC)用演算処理チップに書き込まれたMACアドレスが、送信元のMACアドレスとしてフレームに添付される。こうしてオペレーティングシステムが情報機器と関りなく勝手にMACアドレスを設定するのではなく、物理的実態である情報機器(実際にはイーサネットカード)に依存したアドレスが割り当てられる。
このようにイーサネットカードとは、情報機器をネットワークに接続するために使用されるネットワークカードの一種である。すなわち、一つの情報機器は少なくとも一つのイーサネットカードを必要とし、各イーサネットカードにそれぞれMACアドレスが割り当てられている。インターネットに接続する情報機器の数が全世界で増大するにつれ、過去に使用された情報機器も含めて割り当てられた(使用済み)MACアドレスの数も増大する。
図80は、典型的なMACアドレスの使用例である。上述したように、イーサネットカード3000は、MACアドレスを記録したメモリチップ(たとえば不揮発性メモリチップ3010)とメディア・アクセス・コントローラー(MAC)用演算処理チップ3020を含み、カード背面にはイーサネットコネクター(LANコネクター)を有する。イーサネットカードは、LANカードとも呼ばれ、主にパーソナルコンピューター等の背面などに搭載される。こうして、イーサネットコネクタにLANケーブルを接続することによって、パーソナルコンピューター等をローカルエリアネットワーク(LAN)に接続することが可能となる。このLANケーブルは、インターネットを構成する信号伝達路1000の一部、あるいは、全部である。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際、オペレーションシステムを稼働するのに必要な情報が主記憶(たとえばDRAM)にロードされる。イーサネットカードがパーソナルコンピューターに搭載されていることを検知した場合、オペレーションシステムが、イーサネットカードに含まれるメモリチップからMACアドレスを読み込む。このMACアドレスはメディア・アクセス・コントローラー(MAC)用演算処理チップ3020に書き込まれる。
イーサネットカードは物理的実態のあるものであり、したがって、イーサネットカードの内部メモリ(たとえば不揮発性メモリチップ3010)に記録されたMACアドレスは、物理的実態を有するイーサネットカードに固有のものとして扱われる。メディア・アクセス・コントローラー(MAC)は、この送信元MACアドレスと、送信先MACアドレスと、フレーム・チェック・シークエンス(FCS)を、パケットに添付してフレームを生成する。そして、このフレームをLANコネクターから信号伝達路で構成されるローカルエリアネットワークを通じて送信先に送信する。別の言い方では、信号伝達路を介してフレームを送受信する。しかしながら、物のインターネットの時代では、MACアドレスは、不正編集、不適切編集、枯渇、あるいは、重複等の問題をはらんでいる。
MACアドレスは、図81に一例を示すように、48ビット相当の二進法の数列である。上位の24ビット(図81の例で左半分)はベンダーコード3071と呼ばれ、ベンダーごとに割り当てられる。ベンダーコード3071の最後の2ビットは、ULビットとIGビットである。下位の24ビット(図81の例で右半分)は、シリアル番号3072と呼ばれ、各ベンダーが重複しないよう割り当てている。
そうした中、21世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。従来の情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス(Internet of Things, IoT)、あるいは、物のインターネットが出現すると期待されている。それは既存のどの市場にも属さず、社会基盤そのものを変革する可能性を秘めている。
このように超巨大な物のインターネットでは、ネットワークに接続する情報機器の数が数兆個から数十兆個にまで上ると考えられ、近くトリリオンノードの時代が来ると期待されている。トリリオンノードの考え方では、ネットワークに接続したセンサーを全世界に数兆個以上張り巡らし、これまでになく詳細で大量のデータを収集し、高度な計算技術で解析することで多くの社会問題の解決に寄与できるとしている。この構想は2013年に開催されたTSensors Summitという学会からから世界に広まった。
現在のイーサネットのシステムに何ら変更を加えず、そのまま物のインターネットに拡張するとどうなるだろうか?従来の情報機器のみならず、身の回りのすべての物にMACアドレスが割り振られることになる。そして、それが全世界に広がる。すなわち、グローバルモード(ULビット=1)で、数兆個ものMACアドレスを全世界同時に重複無しに割り当てなければならない。ただし、この数兆個という数は、現役でネットワークに接続する情報機器の数である。全世界で廃棄されたり、紛失したり、何らかの理由で使用されなくなった過去のすべての情報機器も含めると、物のインターネットが興隆するころまでに消費されるMACアドレスの数は、すぐに十兆かそれより大きくなるだろう。上述したように、MACアドレスの数の上限は、実質的におよそ70兆である。枯渇するのは時間の問題と考えられる。
枯渇の問題を避ける一つの方法は、MACアドレスを変更することである。たとえば、廃棄する際に消去し、あるいは5年以上ネットワークに接続されなかったMACアドレスは廃棄されたと見なし、他の情報機器に割り当てるなどの対処方法が可能である。実際に、MACアドレスは不揮発性メモリチップに保存されるのでその気になれば変更可能である。たとえば、一部のパソコン用オペレーティングシステムなどでは、デバイスマネージャーを使ってMACアドレスを変更することが可能となっている。あるいは、MACアドレスを変更するためのツール(MACアドレスチェンジャー)も出回っている。
しかしながら、グローバルモード(ULビット=1)でのこのような変更は、全世界でMACアドレスが重複しないよう慎重に行わなければならない。なぜなら、MACアドレスが重複するとネットワークの誤動作を引き起こし、あるいはセキュリティが脆弱になるなどの悪影響が懸念されているからである。
物のインターネットのノードは、末端のユーザーである個人がネット接続の手段として用いる情報端末だけでなく、トリリオンノードで用いられるセンサーも含まれる。世界人口を70億人とすると、ノード1兆個の場合単純計算で一人当たりおよそ150個のMACアドレスに囲まれていることになる。その内末端のユーザーである個人がネット接続の手段として用いる情報端末として認識するものは多くとも平均で10個未満であろう。残りの140個については自然放置に近い状態となる。もちろん、トリリオンノードの時代では、ノード数は1兆個より更に多くなると考えられる。先進国では、一人当たりのMACアドレスの数は150より更にずっと多くなるだろう。
これらのノードは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。訓練を受けた専門家が世界中に分布するすべてのノードを中央管理しようとしても数兆個ものノードを同時に管理するのは至難の業である。仮にできたとしても、誰が責任を持ってその管理システムを扱うべきなのかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人口知能に任せることも現状では現実的でない。
すべてのノードを適切に管理することができないとしたら何が問題になるか?たとえば、悪意を持ったハッカーが、きめ細かく管理されていないノードを乗っ取り、他人に成りすまして悪用することが可能である。もしノードの成りすましが横行すれば大きな問題になる。高価な情報端末であれば、高度なセキュリティ技術によって守られるだろう。しかしながら、上述した簡単な推定でも明らかなように、こうした高度なセキュリティ技術が施される情報端末は、一人当たりせいぜい10個である。これに対し、可能な限り安価な普及型センサーには高度なセキュリティ技術は採用できない。ノード数が一兆個の場合そのようなセンサーは、上述のように一人当たりおよそ140個にもなるだろう。つまり、近い将来のネットワーク利用者は、10個の安全な情報端末を利用しつつ、140個もの素性の知れないセンサーに囲まれることになる。
平たく言えば、物のインターネットに接続されるセンサーそのものがハッキングデバイスである。善意では社会問題の解決のために用いられるが、その本質はハッキング技術による社会問題解決のための取り組みである。悪意のあるハッカーが攻撃のために利用する危険性と常に背中合わせである。
また、悪意のあるハッカーがいなかったとしても、MACアドレスの重複はネットワークの誤動作を引き起こす可能性がある。たとえば、二つの異なるセンサーが別々の情報を取得し、サーバーに情報を伝送する場合を考える。この二つの異なるセンサーがたまたま同じMACアドレスを持っていた場合、このサーバーは矛盾する二つの情報が一つのセンサーから送られて来たと誤認することになる。たとえば、第一のセンサーが検査した対象物の色は赤であり、第二のセンサーが検査した対象物の色は青だったとしよう。この第一のセンサーと第二のセンサーのMACアドレスが重複していた場合、このサーバーが受信する情報は、一つの検査対象物の色が青であると同時に赤であるということになる。これが、自動運転のためのシステムであったらどうなるだろう。とある交差点の信号は赤であり同時に青なのである。
このような問題を論理アドレスで補うことは不可能である。なぜなら、論理アドレスはどのような物理的実態とも連携していないからである。すなわち、物のインターネットが物理的実態を持ったノード同士のネットワークである限り、TCP/IP形式のネットワークの運用実績で培った手法だけでは適切に管理できないのである。こうして、物のインターネットの産業応用(例えばインダストリー4.0やインダストリアル・インターネット)を実現するための課題は、これまでの情報テクノロジーの延長とは明らかに異質であることが伺える。
たとえば、工場内には多数の製造装置が製造ライン上に並び、連携して製品を製造する。製品の良品率を上げるため、個々の製造装置の調整をするとともに、これらの製造装置同士の連携を最適化させる必要がある。このような効率を上げるため、すべての製造装置がコンピュータによって管理されるが、そのためにはすべての製造装置をネットワークに接続する必要がある。製造装置は小さいものから大きいものまであり、大きいものは部位ごとに細分化されそれぞれネットワークに接続される。工場が高度化し大規模化するに従い、ネットワークも大きくなる。従来型の情報技術では、作業を行うのはコンピュータープログラムであった。これに対し物のインターネットでは、連携制御をコンピュータープログラムに任せているとはいえ、実際の作業を行うのは物理的実態を持った機械や装置である。
現在こうした物理的実態を持った情報端末にはMACアドレスが割り振られている。上述したような重複によって思わぬ誤動作を起こしたり、悪意のあるハッカーによるハッキングによって工場そのものが機能停止に追い込まれたりする危険性がある。主要産業の工場の全面的機能停止は、国家レベルの安全保障の問題である。被害額は、大規模な自然災害やミサイルなどによる直接攻撃の結果に匹敵するだろう。
一方、従来のインターネット上の情報通信におけるセキュリティとは、たとえば図5の信号伝達路1000を送受信するデータを暗号化して盗難から防ぐことや、アカウントとパスコードの組み合わせなどによって基幹ノードへの不正アクセスを防ぐことに主眼が置かれている。いずれにしろ暗号技術であり、図5の信号伝達路1000の両端がどのような物理的実態なのかを問題にすることは不可能である。これは、事実上インターネットが論理ネットワークだからである。しかしながら、物のインターネットでは、データの送信元と送信先がそれぞれ物理的実態のある物として認識されなければならない。信号伝達路の両端に接続している物理的実態を含めた物理的認証が必要になる。
このように、MACアドレスとは、平たく言えば、物理的実態を持つイーサネットカードの編集可能なデジタル認証である。そこで、これを物のインターネットのデジタル認証として活用する方法が考えられる。しかしながら、これまでに見てきたように、MACアドレスには枯渇の問題があり、編集可能であるということ自体が問題である。これは、図6のように、MACアドレスが元々不揮発性メモリに記録される48ビットのコードだからである。
(なりすまし)
実は、MACアドレスばかりでなく、IPアドレスなどの論理アドレスも不都合な事情は共通している。論理アドレスでも物理アドレスでもネットワーク上の任意のネットワークアドレスは接続する側から認識されることを目的としているので、暗号化などして秘匿にすることが難しい。したがって、通常の場合、ハッカーも攻撃対象のネットワークアドレスを認識することが可能である。ハッカーは攻撃対象のセキュリティシステムを攻撃することなく、攻撃対象のネットワークアドレスを盗むことによって、攻撃対象のノードに成りすますことができる。このような攻撃を「なりすまし」という。
しかしながら、なりすましが成り立つ状況は論理的に定義されたノード間の論理ネットワークのみに意味のある場合にはあまり意味がない。一方IoTの場合、物理的実体のあるノード(物理ノード)間のネットワーク(物理ネットワーク)と、物理的実体と何ら関係なく論理的に定義される論理ノード間のネットワーク(論理ネットワークあるいはIoTネットワーク)が併存する。論理ネットワーク上の論理ノードのアドレスが論理アドレスであり、この論理アドレスと物理ノードを紐づけすると期待されていたのがMACアドレスである。
すなわち、このMACアドレスが読み取り容易でさらに書き換え可能であれば、ハッカーは攻撃対象の物理ノードのMACアドレスを読みとり自分のデバイス(ハッカーの物理ノード)にコピーし、攻撃対象のMACアドレスを適当に書き換えてしまえばよい。こうして中間者攻撃が可能となる。この時ハッカーは論理ネットワーク上に構築された、いかなるソフトウェアセキュリティも破る必要はない。
また仮に書き換え不可能であったとしても、ハッカーは攻撃対象の論理アドレスを読むことができる。攻撃対象にDDOS攻撃などを仕掛け、動作不良に追い込んだ後コピーした論理アドレスを自分の物理ノードにコピーすればやはりなりすまし攻撃が可能となる。この論理アドレスをコピーした物理ノードを偽造ノードと呼ぶことができる。偽造ノードは、ハッカーが物理ネットワークに中間者攻撃を仕掛けるときに中心的役割を担う。
このように、論理ネットワークと物理ネットワークが併存している限り、どんなに強力なソフトウェアセキュリティを用いてもなりすまし攻撃を防ぐことは不可能である。さらに
具合が悪いことは、なりすまされた後ソフトウェアセキュリティはハッカーの通信を暗号化して守ってしまうので、中間者攻撃を発見することは非常に難しい。これは、物のネットワーク(IoT)にソフトウェアセキュリティのみを活用した場合の共通の問題である。
偽造ノードを自動で検索し、正規のネットワークから自動で排除する技術が求められる。
本発明は上記事情を鑑みて成されたものであり、真に物理的実態に対して一意に割り当てられ、編集不可能で、物のインターネットの時代になってもなりすましの懸念のない物理アドレスを活用し、より安全なIoTネットワークを提供することを目的とする。
本発明は、上記課題を解決するため、以下の手段を採用する。
本発明に関わる電子装置のネットワークは、
少なくとも、第一から第六の物理ノードを構成要素とし、

前記第一の物理ノードは、第一の半導体チップ、第一のチップ認証装置、第一のチップ認証抽出装置、及び、第一の内部メモリを、含む、第一の電子装置であり、

前記第一の半導体チップは、第一のセルアレイを含み、
前記第一のセルアレイは、所定の方法で、第一の固有乱数を生成し、
前記第一の内部メモリは、第一の辞書を保存し、
前記第一のチップ認証装置は、第一のハッシュモジュール、および、前記第一のセルアレイを、含み、

前記第二の物理ノードは、第二の半導体チップ、第二のチップ認証装置、第二のチップ認証抽出装置、及び、第二の内部メモリを、含む、第二の電子装置であり、

前記第二の半導体チップは、第二のセルアレイを含み、
前記第二のセルアレイは、所定の方法で、第二の固有乱数を生成し、
前記第二の内部メモリは、第二の辞書を保存し、
前記第二のチップ認証装置は、第二のハッシュモジュール、および、前記第二のセルアレイを、含み、

前記第三の物理ノードは、第三の半導体チップ、第三のチップ認証装置、第三のチップ認証抽出装置、及び、第三の内部メモリを、含む、第三の電子装置であり、

前記第三の半導体チップは、第三のセルアレイを含み、
前記第三のセルアレイは、所定の方法で、第三の固有乱数を生成し、
前記第三の内部メモリは、第三の辞書を保存し、
前記第三のチップ認証装置は、第三のハッシュモジュール、および、前記第三のセルアレイを、含み、

前記第三の物理ノードは、第一のセキュリティパラメータを、前記第一のハッシュモジュールに送付し、
前記第一のハッシュモジュールは、前記第一の固有乱数と前記第一のセキュリティパラメータから、第一のセキュリティ状態を生成し、

前記第二の物理ノードは、前記第一の物理ノードに第二の入力信号を送信し、前記第一の物理ノードは、前記第一のチップ認証装置に前記第二の入力信号を入力し、
前記第一のチップ認証装置は、前記第二の入力信号および前記第一のセキュリティ状態から、第一の出力信号を生成し、
前記第一の物理ノードは、前記第一の出力信号を、前記第二の物理ノードに返信し、

前記第二の物理ノードは、前記第一の出力信号を、前記第二のチップ認証抽出装置に入力し、
前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第一の出力信号から、入力信号と出力信号の組み合わせ、第一の入出力セットを定義し、
前記第二の物理ノードは、前記第一の入出力セットを、前記第二の辞書に記録すし、

前記第二の物理ノードは、前記第四の物理ノードに前記第二の入力信号を送信し、

前記第四の物理ノードは、第四の半導体チップ、第四のチップ認証装置、第四のチップ認証抽出装置、及び、第四の内部メモリを、含む、第四の電子装置であり、

前記第四の半導体チップは、第四のセルアレイを含み、
前記第四のセルアレイは、所定の方法で、第四の固有乱数を生成し、
前記第四の内部メモリは、第四の辞書を保存し、
前記第四のチップ認証装置は、第四のハッシュモジュール、および、前記第四のセルアレイを、含み、

前記第二の物理ノードは、前記第三の物理ノードに、前記第一のセキュリティパラメータを発行し、それを前記第四の物理ノードに送付するよう、要請し、

前記第三の物理ノードは、この要請に従い、前記第一のセキュリティパラメータ値を発行し、それを前記第四のハッシュモジュールに送付し、
前記第四のハッシュモジュールは、前記第四の固有乱数と前記第一のセキュリティパラメータから、第四のセキュリティ状態を生成し、

前記第二の物理ノードは、前記第四の物理ノードに前記第二の入力信号を送信し、前記第四の物理ノードは、前記第四のチップ認証装置に前記第二の入力信号を入力し、
前記第四のチップ認証装置は、前記第二の入力信号および前記第四のセキュリティ状態から、第四の出力信号を生成し、
前記第四の物理ノードは、前記第四の出力信号を、前記第二の物理ノードに返信し、

前記第二の物理ノードは、前記第四の出力信号を、前記第二のチップ認証抽出装置に入力し、
前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第四の出力信号から、入力信号と出力信号の組み合わせ、第四の入出力セットを定義し、
前記第二の物理ノードは、前記第四の入出力セットを、前記第二の辞書に記録されている、前記第一の入出力セットと比較し、

一致している場合、前記第四の物理ノードを、前記第一の物理ノードと認証する、

ことを特徴とする。
あるいは、前記第一の物理ノードは、第一の鍵生成装置を、さらに、含み、

前記第五の物理ノードは、第五の半導体チップ、第五のチップ認証装置、第五のチップ認証抽出装置、及び、第五の内部メモリを、含む、第五の電子装置であり、

前記第五の半導体チップは、第五のセルアレイを含み、
前記第五のセルアレイは、所定の方法で、第五の固有乱数を生成し、
前記第五の内部メモリは、第五の辞書を保存し、
前記第五のチップ認証装置は、第五のハッシュモジュール、および、前記第五のセルアレイを、含み、

前記第五のチップ認証抽出装置は、第51の入力信号を、前記第一の物理ノードに送付し、
前記第一の物理ノードは、前記第51の入力信号および前記第一のセキュリティ状態から、第51の出力信号を生成し、

前記第一の物理ノードは、前記第51の出力信号を、前記第一の鍵生成装置に入力し、
前記第一の鍵生成装置は、第一の秘密鍵および第一の公開鍵を生成し、
前記第一のハッシュモジュールは、前記第一の公開鍵及び前記第一の辞書を、まとめてハッシュ化し、第一のハッシュ値を生成し、

前記第六の物理ノードは、第六の半導体チップ、第六のチップ認証装置、第六のチップ認証抽出装置、第六の内部メモリ、及び、第六の鍵生成装置を、含む、第六の電子装置であり、

前記第六の半導体チップは、第六のセルアレイを含み、
前記第六のセルアレイは、所定の方法で、第六の固有乱数を生成し、
前記第六の内部メモリは、第六の辞書を保存し、
前記第六のチップ認証装置は、第六のハッシュモジュール、および、前記第六のセルアレイを、含み、

前記第三のチップ認証抽出装置は、第六のセキュリティパラメータを、前記第六のハッシュモジュールに送付し、
前記第六のハッシュモジュールは、前記第六の固有乱数と前記第六のセキュリティパラメータから、第六のセキュリティ状態を生成し、

前記第五のチップ認証抽出装置は、第56の入力信号を、前記第六の物理ノードに送付し、
前記第六の物理ノードは、前記第56の入力信号および前記第六のセキュリティ状態から、第六の出力信号を生成し、
前記第六の物理ノードは、前記第六の出力信号を、前記第六の鍵生成装置に入力し、
前記第六の鍵生成装置は、第六の秘密鍵および第六の公開鍵を生成し、

前記第一の物理ノードは、前記第一の秘密鍵を用いて、前記第一のハッシュ値と、前記第六の公開鍵とを、まとめて、暗号化し、第一の電子署名とし、

前記第一の物理ノードは、前記第一のハッシュ値と、前記第一の電子署名を、前記第六の物理ノードに送付する、

ことを特徴とする。
あるいは、本発明に関わる電子装置のネットワークは、
第七の物理ノード、及び、第八の物理ノードを、構成要素とし、

前記第七の物理ノードは、第七の半導体チップ、第七のチップ認証装置、第七のチップ認証抽出装置、及び、第七の内部メモリを、含む、第七の電子装置であり、

前記第七の半導体チップは、第七のセルアレイを含み、
前記第七のセルアレイは、所定の方法で、第七の固有乱数を生成し、
前記第七の内部メモリは、第七の辞書を保存し、
前記第七のチップ認証装置は、第七のハッシュモジュール、および、前記第七のセルアレイを、含み、

前記第七の辞書は、複数の入出力セットの集合からなる第七の管理領域を登録し、
対応する入出力セットが前記第七の管理領域に属する物理ノードは、前記第七の物理ノードの管理下にあり、

前記第八の物理ノードは、第八の半導体チップ、第七のチップ認証装置、第八のチップ認証抽出装置、及び、第八の内部メモリを、含む、第八の電子装置であり、

前記第八の半導体チップは、第八のセルアレイを含み、
前記第八のセルアレイは、所定の方法で、第八の固有乱数を生成し、
前記第八の内部メモリは、第八の辞書を保存し、
前記第八のチップ認証装置は、第八のハッシュモジュール、および、前記第八のセルアレイを、含み、

前記第八の辞書は、複数の入出力セットの集合からなる第八の管理領域を登録し、
対応する入出力セットが前記第八の管理領域に属する物理ノードは、前記第八の物理ノードの管理下にあり、

前記第七の物理ノード、あるいは、前記第八の物理ノードの、どちらかの管理下にある任意の物理ノードは、前記第七および第八の物理ノードが共同で管理する共同管理領域に属し、

前記第七及び第八の物理ノードは、前記第七の辞書あるいは前記第八の辞書に登録されていない任意の物理ノードを、前記共同管理領域から排除し、
前記共同管理領域を、一つの閉じた物理ネットワークとして、共同で管理する、

ことを特徴とする。
本発明によれば、真に物理的実態に対して一意に割り当てられ、編集不可能で、物のインターネットの時代になってもなりすまし攻撃の懸念の少ない物理チップ認証を活用することによって、より安全なIoTネットワークを提供することが可能となる。
図7は、情報機器140の基本構成を概念的に示した図面である。たとえば、複数の(たとえばN個の)半導体チップ(第一のチップ110、第二のチップ120…第Nのチップ130)が搭載されている。図8は、この情報機器140を第一のノード2001とし、信号伝達路1000を介して第二のノード2002と接続する場合を図示したものである。第一のノード2001内の、第一のチップ110は、外部入出力(I/O)50を通して通信伝達路1000に接続している。ここで、第一のチップ110は、チップ認証装置60を搭載している
本願によるチップ認証装置60は外部入出力50から受け取るコール(入力信号)に応じて都度出力信号を発生するものであり、発生された出力信号は物理的乱雑さ(ランダム)を利用して生成されるものである。このコールは、一例として、オペレーティングシステムなどから与えられる。あるいは、別の一例として、このチップ認証装置60をと際する電子装置と通信状態にある別の電子装置から与えられる。また、入力信号を変えると出力信号も変わるという特徴を有している。この点で、図6で説明したMACアドレスと根本的に異なるものである。すなわち、MACアドレスは、不揮発性メモリチップ3010に保存されたデータであり、入力信号によって出力を変更するような機能を持つものではない。

(物理的にクローン不可能な機能)
このような機能として近年注目を集めている技術が、物理的にクローン不可能な機能(PUF)と呼ばれるものである。これは、指紋や網膜などの生体情報を用いて人の個人認証を行うのと同様に、半導体のチップにおいても一つ一つ異なる物理的特性を用いてチップの固体認証行うものである。必要条件として要求される主な特徴は、(1)同一の入力をした異なるPUFは常に異なる出力をすること。(2)同一のPUFに異なる入力をすれば常に異なる出力をすること。(3)入力と出力の組み合わせを盗まれても、未知の入力に対する出力は予測不可能であること、(4)入力と出力の関係が安定していて信頼できること、である。この中で、必要条件(4)は量産品である限り特に自明である。
ICチップ製品(半導体チップ製品)の場合、パッケージ剤の化学光学的性質を用いたPUFを利用するもの(コーティングPUF)
と、チップそのものに依存したPUFを利用するもの(チップPUF)がある。特に近年では、チップ内に保存された暗号鍵の盗難や偽造チップ問題が注目されていることもあり、後者、PUFをチップ内に搭載する技術への注目度が高い。たとえば、暗号鍵と、適当に選んだ入力コードに対応してPUFが出力するPUFデータをアクティブコード生成装置に入力し、生成したアクティブコードを内部メモリに保存する方法がある。アクティブコードの生成はチップの出荷前か事前登録の際に一回のみ行うものとし、その後は必要に応じてチップ内に保存したアクティブコードとPUFデータを鍵生成装置に入力して都度暗号鍵をチップ内で生成する。この方法では、暗号鍵も、暗号鍵を生成するために使用した入力コードも、内部メモリに保存する必要はない。したがって、チップが暗号処理をしている間にハックされない限り暗号鍵を盗まれる心配はない。一方アクティブコードを盗まれる可能性はあるが、アクティブコードのみ盗んでもPUFデータがなければ暗号鍵を複製できない仕組みである。すなわち、PUFデータを取得するために使用した入力コードがわからない限り、上記(2)と(3)の必要条件が暗号鍵の複製を防ぐのに役立つことになる。このように、暗号鍵の複製を非常に困難にするのがPUFを利用するメリットの一つである。 特許公開2009-519473
しかしながら、今最も注目されているPUFの使い方はICチップの固体認証である。これには上記(1)の必要条件が必須である。つまり、PUFは、入力するリード信号(この場合入力コード)に対し、チップに固有の認証(PUFデータ)を出力しなければならない。
さらに、物のインターネットにおいては、ノード数は数兆個を遥かに超えることが予想されるので、PUFが個別認証すべき個体数も桁違いに大きくなる。すなわち、上記PUFの必要条件(1)−(4)に次の必要条件を追加すべきである。すなわち、(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となること、である。こうして、超巨大な物のインターネットでチップの物理的認証を実現するためにPUFを活用することが可能である。
ここで、コーティングPUFが(1)−(5)の必要条件を満たしていたとしよう。コーティングPUFの読み出しは、パッケージに光学的刺激を与えることにより行われる。これは、ネットワークを介して(電子的に)チップの個別認証を読み出すことができないことを意味している。したがって、更に次の必要条件を付加すべきである。すなわち、(6)ネットワーク上のチップ認証はチップに固有の電子信号でなければならない。
上記必要条件(6)を満たすチップPUFは大きく分けて2種類報告されている。一方は回路のばらつきを利用した回路PUFであり、もう一方は回路以外の微細構造のばらつきを応用したもの(製造PUF)
である。回路PUFは、更に、回路の配線遅延を利用するもの(遅延PUF) と、回路のメタスタビリティを利用するもの(メタスタビリティPUF) に分かれる。遅延PUFとは、IC内で同様の設計仕様で集積化された複数の回路の動作時間に関する制御不能のばらつきを利用するものである。利用される回路の代表例は、アービター回路、グリッチ回路、リング発信回路などである。メタスタビリティPUFで使用される回路は、主にスタティックランダムアクセスメモリ(以下SRAM)とラッチ回路(バタフライPUF)である。 特開2015−201884号公報 公告番号 WO2011118548A1 特開2013−131868号公報
回路PUFの弱点は、まず個体差が小さいことである。これは必要条件(5)を満たすのに不利である。そして出力が不安定であり、必要条件(4)を満たすのに不利である。更に温度変化などの外部環境に影響されやすく、フォールト攻撃に弱い。そのため増幅回路や温度センサー回路などを追加する必要がある。こうして設計への負荷が高くなり、PUFデータの長さへの制限が大きくなる。すなわち、上記必要条件(5)を満たすことが非常に難しい。PUFデータそのものが短ければ、たとえ出力がランダムであっても、認証付けられるチップの数が制限される。
製造PUFでは、意図的に集積化された層間バイアの製造ばらつきに起因するランダムな断線などが利用される。回路PUFの弱点の多くを解消できる可能性があるが、従来の半導体製品に含まれない特殊な構造を集積化する必要があり、一般的に製造工程への負荷が大きくなる。やはりIoT全般に向けて普及するにはハードルが高いと言える。
そのほか、デバイスの信頼性を利用するもの
も提案されているが、信頼性そのものが低く必要条件(4)を満たさない。また、電源オン時のダイナミックランダムアクセスメモリ(以下DRAM)のキャパシタのばらつきを利用するもの も報告されている。これは、原理的にラッチ回路PUFと共通の問題を抱えている。すなわち、個体差が小さく、環境要因の変化を利用したフォールト攻撃に弱い。 特開2015−139010号公報 Fatemeh Tehranipoor, Nima Karimian, Kan Xiao, John Chandy,"DRAM based Intrinsic Physical Unclonable Functions for System Level Security", in GLSVLSI'15 Proceedings of the 25th edition on Great Lakes Symposium on VLSI, pp. 15-20, 2015.
上述のように、個々に解決すべき問題はあるものの、PUFの機能そのものは、ネットワークの相互のつながりの中でMACアドレスを利用せずに物理的実態を持つノードの最小単位(半導体チップ)の物理的認証を実現するのに有効であると考えられる。PUFになるためには、上記(1)−(6)の必要条件の他、更に「物理的にコピー不可能である」という十分条件を満たさなければならない。しかしながら、この十分条件は、ネットワーク上の物理認証を定義するためには必ずしも必要ない。本願の目的はPUFではなく、ネットワーク上の物理認証を安全にすることであるしたがって、本願が提案するチップ認証装置は、「物理的にコピー不可能である」というPUFの十分条件を満たす必要はない。
たとえば一例として、図8のように、本願のチップ認証装置60を有する第一のチップ110を搭載する第一のノード2001が、信号伝達路1000を通して、第二のノード2002とデータを交換(交信)する場合を考えよう。
たとえば、第二のノード2002は、何らかの形式で接続された第一のノード2001を認識するために信号A、信号B、信号C、…を入力コードとして、信号伝達路1000を介して第一のノード2001に搭載されるチップ認証装置60に与える。チップ認証装置60は、それぞれ信号A1、信号B1、信号C1、…を出力コードとして信号伝達路1000を介して第二のノード2002に返す。ここで、第二のノード2002は、第一のノード2001を、「信号Aの入力に対して信号A1の出力を返し、信号Bの入力に対して信号B1の出力を返し、信号Cの入力に対して信号C1の出力を返し、…」という装置であると認識する。この場合、(A、B、C、…:A1、B1、C1、…)であらわされる数列を交信シリーズと呼ぶ。あるいは、別の場合では、第二のノード2002は第一のノード2001を「信号Fの入力に対して信号F1の出力を返し、信号Aの入力に対して信号A1の出力を返し、信号Kの入力に対して信号K1の出力を返し、…」と認識する。この場合の交信シリーズは、(F、A、K、…:F1、A1、K1、…)であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン(入力コード)は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第一のノード2001にネット接続しうる装置の数を無制限にすることに有用である。こうして、第一のノード2001を第二のノード2002に最初に接続する際、第二のノード2002は、第一のノード2001を登録することになる。この登録は、第二のノード2002の正規の使用者か、或いは、第二のノード2002の正規の使用者から正規に権限を委譲された者が行うことが望ましい。

(物理層での通信方法)
図9の例では、第二のノード2002の正規の使用者92が、自ら所有する第一のノード2001を使って第二のノード2002を操作する例を説明している。第一のノード2001と第二のノード2002は、信号伝達路1000を介して成立する交信シリーズ80を用いて交信(接続)し、連携して第二のノード2002の正規の使用者92の目的とする仕事を行う。ここで、第二のノード2002の正規の使用者92は、交信シリーズ80にいかなるコミットメントもしない。もしコミットメントをする場合、第二のノード2002の管理・使用方法が煩雑になり、物のインターネットの利便性が大きく損なわれることになる。
もし第一のノード2001がMACアドレスを持ち、第一のノード2001と第二のノード2002がイーサネット形式で接続していればチップ認証装置60は不要のように思える。しかしながら、上述したように、物のインターネットにおいて物理的実態のあるノード同士の相互認証をイーサネット形式に任せることの問題は、改ざん可能で悪意あるハッキングに対して脆弱であること、である。このような状況を鑑み、本願のチップ認証装置の必要性が理解される。
まず、遠隔攻撃者が、図9の第一のノード2001を遠隔攻撃する場合を考える。たとえば、遠隔攻撃者は、第一のノード2001を自ら所有する偽造ノードに不正に置き換える。ここで、偽造ノードは、第一のノード2001に内蔵されるチップ認証装置60を使用せずに、この交信シリーズ80を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一のノード2001を偽造ノードと不正に置き換えようとする者(遠隔攻撃者)は、実際に第一のノード2001を手に取ることができないとする。これは、物のインターネットにおいては自然な条件である。すなわち、物のインターネットにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者の目的は、自分が手元に所有する偽造ノードを使って第二のノード2002を遠隔操作することである。図9の第一のノード2001を手元に奪取するためには、第二のノード2002に正規に接続する第一のノード2001が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二のノードの正規の使用者92に気づかれずに遠隔操作をすることができないのと同義である。偽造ノードと第二のノード2002がネット接続されると、第二のノード2002は、偽造ノードを認識するために、ネットワークを介して入力信号(R、L、A、…)を偽造ノードに入力する。このとき、ネットワークを介して偽造ノードが出力信号(R3、L3、A3、…)を第二のノード2002に返したとする。こうして、偽交信シリーズ(R、L、A、…:R3、L3、A3、…)が生成される。すなわち、遠隔攻撃者は、偽交信シリーズを正規の交信シリーズ80、この例の場合、(R、L、A、…:R1、L1、A1、…)に完全に一致させなければならない。すなわち、(R3、L3、A3、…)が(R1、L1、A1、…)と一致すれば、遠隔攻撃は成功する。例えば、遠隔攻撃者は、(R3、L3、A3、…)を、第二のノード2002の内部メモリに保存されている登録コードと一致させれば良い。
遠隔攻撃には基本的に二つの方法がある。第一の方法は、第二のノード2002の内部メモリに保存されている情報から、入力コードと、少なくとも登録コードを盗み取ることである。たとえば、遠隔攻撃者が登録コード(R1、L1、A1)と入力コード(R、L、A)とを盗み取ることに成功したとする。このとき、遠隔攻撃者は、所有する偽造ノードを第一のノード2001に置き換えて第二のノード2002を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二のノード2002の内部メモリを厳重に防御しなければならない。
内部メモリに入力コードや登録コードを保存する第二のノード2002のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を駆使して厳重に保守することが望ましい。このように、第二のノード2002はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。これを基幹ノードと呼ぶ。これに対し、基幹ノードと接続し、セキュリティ管理者による中央管理下にないノードを周辺ノードとする。図10は、3つの周辺ノード(第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430)が、基幹ノード400に接続する例である。基幹ノード400は、入力コード402と登録コード403のリストを内部メモリ401に保存する。一方周辺ノードは、登録コードも入力コードも保存せず、それぞれ相違なるチップ認証装置を搭載するチップを内蔵しているものとする。たとえば、図7は、周辺ノードの基本構成の一例である。また、基幹ノード400の内部メモリ401に保存された、登録コード403のリストの中の一つの要素と、入力コード402の組み合わせが、各周辺ノードに対応する交信シリーズとなる。
上述のように、交信シリーズに関する情報を保存した基幹ノードを中央管理下におくことによって遠隔攻撃の第一の方法は防がれるが、ネットワークに接続するノード数が数兆個に上る場合、すべての装置を基幹ノードのように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者は、基幹ノードに接続する中央管理の行き届かない装置、図10の例では、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430・・・のうち少なくともどれか一つを乗っ取ろうとする。これが遠隔攻撃の第二の方法である。しかしながら、これらの周辺ノードは、入力コードと登録コードのペア(交信シリーズ80)を内部メモリに保存しないので、遠隔攻撃の第二の方法も成功しない。
たとえば、遠隔攻撃者が適当に選んだ信号(X、Y、Z)を第一の周辺ノード410に入力し、(X1、Y1、Z1)の返信を得る。ここで、第一の周辺ノード410はチップ認証装置を搭載しているものとする。信号(X、Y、Z)が、基幹ノード400が第一の周辺ノード410と交信する際用いる入力コード402(P、S、T)と異なる場合、遠隔攻撃者が受け取る返信(X1、Y1、Z1)は、基幹ノード400に保存される登録コード402の(P1、S1、T1)とは異なる。これは、周辺ノードに搭載されるチップ認証装置が、異なる入力に対して必ず異なる出力を出す性質(入力の独立性)を持つことを前提にしている。こうして、チップ認証装置が(入力の独立性)を持っている限り遠隔攻撃の第二の方法も失敗に終わるのである。ここで、周辺ノードと基幹ノードが、もしイーサネット形式による相互認証を採用していたらどうなるだろうか?遠隔攻撃者は、周辺ノードに搭載されているイーサネットカードの内部メモリ(たとえば、図6の例では、不揮発性メモリチップ3010)からMACアドレスを容易に盗み出すことができる。こうして、本願のチップ認証装置がMACアドレスを置き換える意義が明らかになる。
ここで残る問題は、遠隔攻撃者が適当に選んだ信号セット(X、Y、Z)が、たまたま基幹ノード400の内部メモリ401に保存した入力コード402(P、S、T)に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に基幹ノード400の管理者以外には非公開とすることである。そして、この情報は基幹ノード400の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、基幹ノード400に接続する周辺ノードの再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。これらの必要条件を満しつつ、入力コードはパスコードとして振舞う。
すなわち、本願のチップ認証装置を用いる相互認証形式は、イーサネット形式と同様に物理的実態のあるノード同士の相互認証をつかさどるものであり、一方で、ネットワークを形成するノードを、相互認証に関わる情報を保存し中央管理下に置かれるノード(基幹ノード)と、それ以外のノード(周辺ノード)に分割する。周辺ノードは、相互認証に関わる情報を保存しない代わりに本願のチップ認証装置を搭載し、所定の入力に対して出力を返す。入力が異なれば必ず異なる出力を返す(入力の独立性)を満たすものである。(入力の独立性)については、以下で詳述する。
ここで、入力コードは、さまざまな周辺ノードへの認証IDを検査するために共通して使うことが望ましい。この場合、おのおのの周辺ノードへのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹ノードは少なくとも一つの共通パスコードを所有する。
上記基幹ノード400が計算機(パソコン等)の場合、これに接続する第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、計算機に接続して用いられる周辺機器となる。たとえば、マウス、キーボード、マイクロホン、などである。上述したとおり、基幹ノードである計算機本体は、最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺ノード(マウス、キーボード、マイクロホン等)の不正な置き換えから計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺ノードを遠隔攻撃から守ることができる。
上記基幹ノード400がネットワークサービスの中心的機能を担うサーバーの場合、たとえば、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、このネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明の目的の一つは、エンドユーザーの端末(スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等)の不正な置き換え(乗っ取り)からサーバー(基幹ノード)への不正アクセスを防ぐことである。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
上記基幹ノード400がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、このデータセンターが必要とするデータを取得するセンサーである。上述したように、センサーの数は無数であり、世界中の広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明の目的の一つは、このようなセンサーの置き換え(乗っ取り)から基幹ノードへの不正アクセスを防ぐことである。これによって、十分に訓練を受けた専門家が最新のセキュリティ技術を駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺ノード(たとえば、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430)は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ(たとえは、共通パスコード、あるいは、登録コード)を保存する“基幹ノード”と保存しない“周辺ノード”に分けることが特徴となる。同時に、認証通信のために必要なデータ(たとえは、共通パスコード、あるいは、登録コード)を保存する“基幹ノード”は中央管理し、認証通信のために必要なデータ(たとえは、共通パスコードなど、あるいは、登録コード)を保存しない“周辺ノード”には本発明のチップ認証装置を搭載することを特徴とする。ただし、物理的実態のあるノード同士の相互認証に関するものである点はイーサネット形式と同様である。
図11のように、上記共通パスコードは、第一の基幹ノード1400に少なくとも一つ保存され、周辺ノードを認識する際に周辺ノードに送られる。たとえば、第一の基幹ノード1400は第一の共通パスコード1410を、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430に送る。これらの周辺ノードは、第一の基幹ノード1400を「第一の共通パスコード1410を送ってくるもの」として認識する。
図12に示すように、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、この第一の共通パスコード1410の入力に対応し、それぞれ、第一の認証4101、第二の認証4201、第三の認証4301を、第一の基幹ノード1400に返す。第一の基幹ノード1400は、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430を、「第一の共通パスコード1410に対して、それぞれ第一の認証4101、第二の認証4201、第三の認証4301を返すもの」と認識する。ここで、第一の認証4101、第二の認証4201、第三の認証4301のうちどの二つの認証も同じではない。また、第一の基幹ノード1400が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。このように、各基幹ノードが使用する共通パスコードはそれぞれ複数であることが望ましい。
ここでは、入力が同じであってもチップ認証装置が異なれば必ず異なる出力を返す(出力の独立性)を満たすことを前提としている。(出力の独立性)については、以下で詳述する。
実際のネットワークでは、周辺ノードは無数にあり、しかも基幹ノードは一つに限らない。たとえば、図13では、二つの基幹ノード(第一の基幹ノード1400、第二の基幹ノード2400)と五つの周辺ノード(第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430、第四の周辺ノード440、第五の周辺ノード450)からなるネットワークの一例を示している。第一の基幹ノード1400を中心に、第四の周辺ノード440と第五の周辺ノード450とで一つのネットワークユニットを構成し、第二の基幹ノード2400と、第一の周辺ノード410、第二の周辺ノード420、及び第三の周辺ノード430とでもう一方のネットワークユニットを構成する。ここで、これらのネットワークユニットは、互いに第一の基幹ノード1400と第二の基幹ノード2400とで接続している。さらに、ネットワークユニット内において、第四の周辺ノード440および第五の周辺ノード450は、第一の基幹ノード1400とのみ接続し、第一の周辺ノード410、第二の周辺ノード420、及び第三の周辺ノード430は、第二の基幹ノード2400とのみ接続している。一方、第四の周辺ノード440は、第一の基幹ノード1400と第二の基幹ノード2400と接続している。
すなわち、本願のネットワーク構造において、複数のネットワークユニットを接続するトポロジーは、互いに異なるネットワークユニットに属する基幹ノード同士の接続、および、互いに異なるネットワークユニットに属する基幹ノードと周辺ノードの接続によって定義される。特に、本願のネットワークのトポロジーでは、周辺装置同士は、互いに異なるネットワークユニットに属するかどうかに関らず、互いに直接接続しないことが特徴である。
ここで、接続とは、上述した認証作業によってノード同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、物理的実態のある情報機器あるいは電子装置のネットワークを考える際、得に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での(認証)接続は、一つのパッケージ化されたシステム内の装置(モジュール、あるいは、チップ)同士の接続をも含む。
たとえば、自動車は複数の制御システムを内包している。駆動システム、ブレーキシステム、ナビゲーションシステム、自動運転車なら自動運転システム等、複数の子システムが連携して稼動する総合システムと考えられる。これら子システムのそれぞれが上述のネットワークユニットの一つ一つ、あるいは、いくつかの連携したネットワークユニットに対応している。このとき、自動車一台は、複数のネットワークユニットから構成される一つのネットワークである。更に、各ネットワークユニットを構成する周辺ノードや基幹ノードの最小単位は半導体チップである。周辺ノードは、例えば、エンジンの温度をセンスするセンサーであったり、車体の各部位が感じる加速度センサーであったり、燃料の残量をセンスするセンサーであったり、様々なセンサーが考えられる。これらのセンサーから集まる情報を解析し、利用する演算処理装置が基幹ノードとなる。自動車以外にも航空機、列車、工場、発電所、送電システム等社会インフラに関する施設や装置も一つのパッケージ化されたシステムと見なすことができる。よって、その内部に半導体チップが採用されている限り、本願が対象とするネットワークが存在する。
本発明の特徴のひとつとして、このような複数の基幹ノードと複数の周辺ノードからなるネットワークにおいて、基幹ノード同士は直接接続が可能であるが、周辺ノード同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺ノードでは、共通パスコードのような入力データを保存しないためである。その代わりに、周辺ノード同士は、基幹ノードを介して間接的に接続する。
たとえば、第一の周辺ノード410と第二の周辺ノード420は、第二の基幹ノード2400を介して間接的に接続可能である。第四の周辺ノード440と第五の周辺ノード450は、第一の基幹ノード1400を介して、間接的に接続可能である。第三の周辺ノード430と第四の周辺ノード440は、互いに接続している第一の基幹ノード1400と第二の基幹ノード2400とを介して、間接的に接続可能である。こうして、すべての周辺装置に流れるデータを、複数の基幹ノードでモニターすることが可能となる。こうして、本発明によれは、中央管理のためのリソースを基幹ノードにのみ集中させることが可能となる。
図13の具体的な例としては、たとえば、自動運転車とスマートハウスの組み合わせが上げられる。たとえば、第一の基幹ノード1400、第四の周辺ノード440、および第五の周辺ノード450からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹ノード2400、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430からなるネットワークユニットは、共に一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、たとえば、スマートハウスのバッテリーの状況を把握するためのセンサー(たとえば、第四の周辺ノード440)が自動運転車に搭載されている。このように、第四の周辺ノード440は、第一の基幹ノード1400と第二の基幹ノード2400のどちらとも接続することになる。あるいは、複数の自動車を連携して自動運転するタクシーシステムのような応用も、本願のネットワークの一例となる。
図14に示すように、本発明を用いたネットワークでは、前記トポロジーは、一つの周辺ノード(たとえば第一の周辺ノード410)が複数の基幹ノード(たとえば、第一の基幹ノード1400、第二の基幹ノード2400、第三の基幹ノード3400)との接続を含むことも認められる。第一の基幹ノード1400は、第一の共通パスコード1410を有し、第二の基幹ノード2400は、第二の共通パスコード2410を有し、第三の基幹ノード3400は、第三の共通パスコード3410を有するものとする。すなわち、第一の周辺ノード410は、第一の基幹ノード1400を「第一の共通パスコード1410を入力してくるもの」と認識し、第二の基幹ノード2400を「第二の共通パスコード2410を入力してくるもの」と認識し、第三の基幹ノード3400を「第三の共通パスコード3410を入力してくるもの」と認識する。これらの入力に対し、第一の基幹ノード1400は、第一の周辺ノード410を「第一の認証11を返すもの」と認識し、第二の基幹ノード2400は、第一の周辺ノード410を「第二の認証12を返すもの」と認識し、第三の基幹ノード3400は、第一の周辺ノード410を「第三の認証13を返すもの」と認識する。ここで、通信認証に関するデータ(共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等)は基幹ノードに保存され、周辺ノードには保存しない。周辺ノードには、本発明のチップ認証装置を搭載する。
その中で、たとえば、第一の基幹ノード1400と第二の基幹ノード2400は直接接続しているが、第一の基幹ノード1400も第二の基幹ノード2400も、第三の基幹ノード3400とは直接接続していないものとする。ここで、第三の基幹ノード3400が遠隔攻撃者でないという証明はない。このため、第一の周辺ノード410に接続認証に関するデータ(共通パスコード)を保存しないということは重要である。たとえば、最初に第一の周辺ノード410が第一の基幹ノード1400に登録される際、第一の基幹ノード1400は、第一の周辺ノード410が第一の基幹ノード1400の後に他の基幹ノードと接続することを制限することが可能となる。なぜなら、第一の周辺ノード410の外部入出力制御装置は、受信する全ての信号を第一の基幹ノード1400に転送し、第一の基幹ノード1400は、第一の周辺ノード410への全ての入力をモニターすることが可能だからである。
ここで、もし第一の共通パスコード1410と同等のコードが発見されたら、緊急処置を施すことができる。たとえば、第一の基幹ノード1400は、第一の周辺ノード410を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺ノード410を利用する。第一の基幹ノード1400の次に、第二の基幹ノード2400が第一の周辺ノード410を登録する場合、第二の基幹ノード2400は、あらかじめ第一の基幹ノード1400に、第一の周辺ノード410を登録する許可を申請する。これには、第二の基幹ノード2400と第一の基幹ノード1400が直接接続していることが必要である。第一の基幹ノード1400が、第二の基幹ノード2400に対し、第一の周辺ノード410への接続を許可すれば、第一の周辺ノード410は、第二の共通パスコード2410を受け付け、第二の基幹ノード2400に第二の認証12を返信し、第二の基幹ノード2400は、第一の周辺ノード410を登録する。以後、第二の基幹ノード2400と第一の周辺ノード410は、第一の基幹ノード1400の許可を経ずに、認証接続可能となる。次に、第三の基幹ノード3400が、第一の周辺ノード410と接続するには、第一の基幹ノード1400、あるいは、第一の基幹ノード1400及び第二の基幹ノード2400が、第一の周辺ノード410に対し、あらかじめ、第三の共通パスコード3410の受付を許可しておく必要がある。こうして、第一の基幹ノード1400、あるいは、第一の基幹ノード1400及び第二の基幹ノード2400は、第三の基幹ノード3400と第一の周辺ノード410の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺ノード410に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹ノード1400、あるいは、第一の基幹ノード1400および第二の基幹ノード2400の正規の管理者によって行われるものとする。
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。

(出力の独立性)
まず、図15に示すように、二つの異なる第一のチップ認証装置21と第二のチップ認証装置22に対して、同じ入力信号(入力信号Q)を入力する。このとき、第一のチップ認証装置21は出力信号Aを出力する。第二のチップ認証装置22は出力信号Bを出力する。ただし、出力信号Aと出力信号Bとは異なる。このように、入力信号が同一であってもチップ認証装置が異なる場合出力信号はそれぞれ異なる。この性質は、共通パスコードを使う例(図11、図12)に必要な条件である。すなわち、同じパスコードをそれぞれ異なるチップ認証装置を搭載する周辺ノードに入力信号として入力しても、それぞれの周辺ノードから返って来る出力信号は周辺ノード毎に相異なるものでなければならない。
たとえば、図11のように、第一の基幹ノード1400が、第一の共通パスコード1410をそれぞれ異なるチップ認証装置を内蔵する第一の周辺ノード410、第二の周辺ノード420、第三の認証装置430に与えたとき、これらの周辺ノードから返って来る出力信号は、図12に示すように、それぞれ第一の認証4101、第二の認証4201、第三の認証4301となる。ここで、第一の認証4101、第二の認証4201、第三の認証4301の内どの二つも相異なるものとする。

(入力の独立性)
反対に、同一のチップ認証装置に異なる入力信号を入力すると、それぞれ相異なる出力信号を出力する。たとえば、図16に示すように、チップ認証装置60に入力信号Cを入力すると出力信号Aを出力する。同じチップ認証装置60に入力信号Dを入力すると出力信号Bを出力する。ここで、出力信号Aと出力信号Bは、入力信号Cと入力信号Dが異なる限り、それぞれ相異なる出力信号である。ここで、入力信号CおよびDの発信源は同一であっても別個であっても構わない。別個の場合、この性質は、図14のように、異なる基幹ノードからそれぞれ異なるパスコードを入力信号として同一の周辺ノードに入力し、それぞれ基幹ノードが相異なる認証を該周辺ノードから出力信号として受け取る場合に必要な条件である。具体的には、第一の基幹ノード1400が第一の共通パスコード1410を第一の周辺ノード410に入力し、第一の周辺ノード410が第一の認証11を第一の基幹ノード1400に出力し、第二の基幹ノード2400が第二の共通パスコード2410を第一の周辺ノード410に入力し、第一の周辺ノード410が第二の認証12を第二の基幹ノード2400に出力し、第三の基幹ノード3400が第三の共通パスコード3410を第一の周辺ノード410に入力し、第一の周辺ノード410が第三の認証13を第三の基幹ノード3400に出力する、というような場合である。ここで、言うまでも無く、上記認証11、12、13は、お互いどの二つをとっても相異なるものとする。
すなわち、図13は(入力の独立性)の条件と(出力の独立性)の条件を同時に利用するネットワーク構造の一例となっている。ほとんどの場合、実際には、基幹ノードの数は2より大きく、周辺ノードの数は5より大きい。図13は、もっとも簡単な一例に過ぎない。

(出力の予測不可能性)
図17に示すように、n個の入力信号(Q1、Q2…Qn)を同一のチップ認証装置60に与えたとき、それぞれの入力信号に対し出力信号(R1、R2…Rn)が得られることを知っているものとする。このとき、n個の入力信号(Q1、Q2…Qn)のいずれとも異なる入力信号Qn+1を同一のチップ認証装置60に与えずに、これを与えたときに得られるはずの出力信号Rn+1を、(Q1、R1)、(Q2、R2)、…(Qn、Rn)のセットから予測することは不可能である。ただし、nは2以上の整数とする。チップ認証装置60が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置60は物理的乱雑さ(ランダム)を利用して出力信号を生成しなければならない。
上述したように予測不可能であることをより具体的に説明する。まず、複数の入力信号のからなる第一の入力集合と、これら複数の入力信号をそれぞれチップ認証装置に入力して得られる出力信号の集合からなる第一の出力集合を用意する。更に、前記第一の入力集合に属さない複数の入力信号からなる第二の入力集合を用意する。たとえ前記第一の入力信号と前記の第一の出力信号のどのような組み合わせを知っていたとしても、前記第二の入力集合に属するN個の入力信号を前記チップ認証装置に入力する以前に、前記N個の入力集合に応じて前記チップ認証装置がそれぞれ出力するN個の出力信号を予測することが確率論的に困難であることを意味している。たとえば、N個の入力信号を選んだ場合、N回予測をすることになる。ここで、予測できるということはN回の予測のうち相当回数の予測が成功することである。一方、予測が成功する確率が平均して1/(N+1)以下であれば、予測不可能であるということになる。

(入出力の信頼性)
図18に示すように、実際には、入力信号Qを制御する回路に関わる制御不能のノイズなどにより、入力信号Qには入力信号誤差31(ΔQ)が混入する。これに対し、入力信号誤差31(ΔQ)及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Rには出力信号誤差32(ΔR)が混入する。このとき、二つの異なる入力信号(たとえば、Q1およびQ2)の差の絶対値は、入力信号誤差31(ΔQ)の絶対値の最大値より大きいものとする。ここで、入力信号Q1に対する出力信号R1と、入力信号Q2に対する出力信号R2との間の差の絶対値は、出力信号誤差32(ΔR)の絶対値より常に大きくなければならない。(出力の現実的無限性)
物理的実態を持ちネットワークに接続するノードを物理ノードと呼び、物理的実態を持たずネットワークに接続するノードを論理ノードと呼ぶ。実際にインターネットに接続する物理ノードの数に関する制限について考慮する。
すべての物がインターネットにつながるような場合を想定すると、物理ノードの数にはどのような制限が必要になるだろうか?各物理ノードが少なくとも一つ以上のチップを含み、そのチップが本願のチップ認証装置を含むものとする。このとき、本願のチップ認証装置は、チップに固有の物理的乱雑さ(ランダム)を利用して前記物理ノードの認証を行うものとする。
仮に、本願のチップ認証装置を搭載するチップが(出力の予測不可能性)を満たしていたとしても、二つの異なるチップに固有な物理的乱雑さ(ランダム)が偶然に一致してしまうことはないだろうか?もしこのような偶然な一致が生じた場合、同じ入力に対する二つの異なるチップ認証装置からの出力が一致し、(入力の独立性)を損なうことになる。この問題に対する対策は確率論的に考慮する以外にない。
たとえば、チップに固有な乱雑さ(ランダム)の場合の数をXとし、ネットワークに接続する全物理ノードの数をYとする。このとき、同じ入力に対する二つの異なるチップ認証装置からの出力が偶然一致する確率は、Yが大きくなれば増大し、Xが大きくなれば減少する。したがって、Y/Xに比例すると考えられる。この確率が現実的にほぼゼロになるほどY/Xが小さいことが必要である。すなわち、少なくともXはYより大きい。さらに、品質管理で良く用いられるシックスシグマに沿って考えると、現実的に容認できるエラーは100万分の3.4である。したがって、XはYの100万倍より大きいことが必要である。

(チップ固有性)
本願に関するチップ認証装置の出力は、前記チップ認証装置の構成要素の一つであるチップに固有の電子信号でなければならない。

(物理的書き換え不可能性)
外部から何らかの刺激を与えることによってチップ固有の物理的乱雑さ(ランダム)は書き換えることが不可能でなければならない。言い換えると、外部から何らかの刺激を与えても、チップ固有の物理的乱雑さ(ランダム)は不変である、あるいは、安定である。あるいは、チップ固有の物理的乱雑さ(ランダム)さは、外部からの刺激、あるいは、外部環境の変化に対して耐性がある。その結果として、チップ認証装置からの出力が安定していることが求められる。もし、チップ固有の物理的乱雑さ(ランダム)を別途準備した乱数起因の乱雑さに書き換えることができるとすると、ネットワーク上でそのチップは別のものに置き換えられてしまう。このような改ざんが攻撃者側に有利な状況を創りだすことは自明である。ここで、外部からの何らかの刺激とは、電界、電磁場、加熱、温度変化、湿度変化、打撃、振動などであり、通常の場合、チップのパッケージを破壊しない程度のものである。
本発明に関わるチップ認証装置は、上述した(出力の独立性)、(入力の独立性)、(出力の予測不可能性)、(入出力の信頼性)、(出力の現実的無限性)、(チップ固有性)、(物理的書き換え不可能性)の、7つすべてを同時に満たしていなければならない。

(検査)
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹ノードに接続している周辺ノードを、本発明によるチップ認証装置を搭載したチップで構成された周辺ノードに置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺ノードが一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹ノードの保守点検の一部として随時行うことが可能である。また、周辺ノードの登録時にも行うことが望ましい。
この検査のためにもっとも有効な方法は、中央管理下にある基幹ノードを使って検査対象となる周辺ノードを実際に遠隔攻撃することである。検査対象となる周辺ノードを構成するチップが本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード42と登録コード43の対応表(図19参照)を保存しているはずである。たとえば、一つの入力コードに対して複数の登録コードのリストが対応している。これらの登録コードは、一つの共通パスコードを複数の周辺ノードに入力したときのそれぞれの出力に対応している。一般に、共通パスコードは一つとは限らないので、図19のような対応表になる。もし入力コードが一つだけであれば、対応表は、図19の、たとえば、上半分のみとなるだろう。図10は、入力コード402が一つの場合の一例である。いずれにしろ、本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図19のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹ノードだけである。図10の入力コード402が図19の入力コード42に対応し、図10の登録コード403が図19の登録コード43に対応している。
図20を用いて、具体的な検査作業の流れを説明する。まず、検査する周辺ノードを見つけたところから始める。次に、検査対象の周辺ノードの内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹ノードに保存されている入力コードの中に一致するものがあるかどうかを調べる。たとえば、図19の入力コード42、あるいは、図10の入力コード402などある。不一致の場合、さらに、基幹ノードに保存されている登録コードと比較する。たとえば、図19の登録コード43、あるいは、図10の登録コード403などである。そこで一致しなかった場合、検査した周辺ノードを公正なものとして承認する。公正と承認されなかったものは不正と判定し接続を遮断することができる。こうして、人手によらず自動的に不正周辺ノードを遮断することが可能となる。次に検査する周辺ノードがあるかどうか探す。なければ終了する。あれば、その検査対象となる周辺ノードの内部メモリを読み出す。以下同様。
図21を用いて、別の検査作業の流れを説明する。第一に、検査する周辺ノードを見つけたところから始める。次に、検査する周辺ノードの内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹ノードに入力コードとして保存されている入力コードの中に一致するものがあるかどうかを調べる。たとえば、図19の入力コード42、あるいは、図10の入力コード402などある。不一致の場合、検査した周辺ノードを公正なものとして承認する。一致する場合、更に基幹ノードに登録コードとして保存されている登録コードの中に一致するものがあるかどうか調べる。たとえば、図19の登録コード43、あるいは、図10の登録コード403などである。一致した場合、検査した周辺ノードを不正品として判定する。一致しない場合、公正なものとして承認する。次に検査する周辺ノードがあるかどうか探す。なければ終了する。あれば、その検査対象となる周辺ノードの内部メモリを読み出す。以下同様。
図20および図21の検査方法の違いは、それぞれ検査基準の違いによって生じる。図20および図21は、本願に関連して考えられる検査方法のほんの二例であるに過ぎない。他の検査基準を考案すれば、他の検査方法を考え出すことが可能である。たとえば、図20および図21において、入力コードの比較と登録コードの比較の順序を入れ替えることも可能である。
イーサネット形式では、MACアドレスフィルタリングという検査方法がある。しかしながら、本願の検査方法、たとえば図20および図21の検査方法には、周辺ノードと基幹ノードを分離し、基幹ノードに保存した入力コードと登録コードが周辺ノードに保存されているかどうかを段階的に検査することが基本であり、MACアドレスフィルタリングにはそのような特徴はない。したがって、本願の検査方法は、MACアドレスフィルタリングとは具体的に異なる検査方法である。
こうして、上述のチップ認証方式を用いるネットワークを構成するすべてのノードは、たとえば、図13のように、訓練を受けたセキュリティ専門家が保守・管理する基幹ノード(たとえば、1400、2400)のグループと、前記セキュリティ専門家が管理できない周辺ノード(たとえば、410、420、430、440,450)のグループに分けられる。ここで、周辺ノード同士はお互いに直接に接続せず、基幹ノードとのみ接続可能とする。こうして、一つの基幹ノードとそれに直接接続する複数の周辺ノードからなるネットワークユニットを構成する。基幹ノードは、基幹ノード同士と任意に接続可能であり、周辺ノード同士は、基幹ノードを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図13は、二つのネットワークユニットが互いの基幹ノード同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹ノード、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の物理的実態を持ったノード(たとえば、情報機器や電子装置)同士の接続は、上述した認証作業によって物理的実態を持つノード同士が互いを認証する、認証接続のことを意味している。
各周辺ノードには、すべて異なるチップ認証装置が搭載されている。図11及び図12に示すように、基幹ノード1400は、少なくとも一つの固有の共通パスコード1410を保有する。図10に示すように、基幹ノード1400が出力する共通パスコード1410は、基幹ノードの内蔵メモリに入力コード(たとえば、402)として厳重に保管される。図12に示すように、共通パスコード1410を入力された周辺ノード(410、420、430)は、この共通パスコードに対しておのおの固有の認証(4101、4201、4301)を基幹ノード1400にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺ノードに搭載される、本発明のチップ認証装置は、図15に示すように、(出力の独立性)を満たさなければならない。図10に示すように、基幹ノード1400は、周辺ノードから返信されてきた出力信号を、入力コード(たとえば、402)のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード(たとえば、403)と便宜比較する。
図14に示すように、一つの周辺ノードが複数の基幹ノードと接続することが許される。この場合、一つの周辺ノード(たとえば、410)は、複数の共通パスコード(たとえば、1410、2410、3410)を入力され、それぞれ異なる入力に対して、それぞれ異なる認証(たとえば、11、12、13)を出力しなければならない。そのため、周辺ノードに搭載される、本発明のチップ認証装置は、図16に示すように、(入力の独立性)を満たさなければならない。

(チップ認証方法)
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、たとえば、登録コード43を偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺ノードの一部を乗っ取り、基幹ノードに不正アクセスすることが可能となる。このような不正行為防ぐため、本発明のチップ認証装置は、図17に示すように、(出力の予測不可能性)を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも(出力の予測不可能性)を満たすことができない。これは、プログラムにより完全な乱数を生成することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード(共通パスコード)を受け取る度に、物理的乱雑さに基づいて出力コード(認証コード)を発生することが望ましい。共通パスコードは周辺ノードのメモリに保存してはならない。電子装置が複数のチップで構成される場合、図7に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺ノード及び基幹ノードが、少なくとも一つのチップから構成される電子装置のネットワークである。
ここで、本願のチップ認証装置のための条件は、上述したPUFの必要条件と対応関係がある。たとえば、(出力の独立性)は、(1)同一の入力をした異なる周辺ノードは常に異なる出力をすることと同一である。(入力の独立性)は、(2)同一の周辺ノードに異なる入力をすれば常に異なる出力をすることと同一である(出力の予測不可能性)は、(3)入力と出力の組み合わせを盗まれても未知の入力に対する出力は予測不可能であることと同一である。(入出力の信頼性)は、(4)入力と出力の関係が安定していて信頼できることと同一である。
(出力の現実的無限性)は、(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となることと同一である。(チップ固有性)は、(6)ネットワーク上のチップ認証はチップに固有の電子信号でなければならない、と同一である。チップ認証装置であるかぎり、(6)を満たすことは自明である。本願では、更に、(7)(物理的書き換え不可能性)チップ固有の物理的乱雑さは、外部から書き換え不能とする。従って、本願のチップ認証装置は、以下説明するように、この7つの条件を全て満たすように構成されなければならない。
上記の必要条件を全て満たす、本発明に関するチップ認証装置は、半導体装置の素子アレイ上に配置した複数の認証素子によって構成することが可能である。ここで、この認証素子は、たとえば“1”と“0”のどちらかに対応する信号を出力するものと仮定する。
ただし、おのおのの認証素子が出力する信号が“1”に対応するのか“0”に対応するのかは確率的であり、その確率がどのようなアルゴリズムにもよらない限り物理的にランダムであるとみなされる。すなわち、“1”と“0”の物理的にランダムな組み合わせを生成できるとみなされる。こうして、上記第三の必要条件、すなわち、(出力の予測不可能性)は満たされる。ここで、“1”を黒、“0”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図22のような白と黒がランダムに配置した市松模様ができる。
“1”と“0”のランダムな組み合わせということは、乱数がデジタルで発生することと同等である。デジタルであるということは、第4の必要条件、すなわち、図18で説明した(入出力の信頼性)が満たされることと同等である。
第5の必要条件、すなわち、出力のパターンが現実的に無限と見なせるほど大きな数となること、を満たすためには、素子アレイ上の素子の数を十分に大きくすることが必要である。
第一の必要条件、すなわち(入力の独立性)と、第二の必要条件、すなわち(出力の独立性)は、この市松状の白黒のランダムパターンをどのように活用するかによって満たすことが可能である。第六の必要条件、すなわち、(チップ固有性)は、“1”と“0”のランダムな組み合わせを生成する確率がチップに固有であれば満たされる。第七の必要条件(物理的書き換え不可能性)は、このランダムな組み合わせが通常のチップの利用方法では改ざんできないことを意味する。以下具体的に説明する。
図23は、図22を実現するための素子の配列の一例である。行方向にL本のワード線503が並んでいる。図中は縦方向に相当する。それと直行するように、ビット線902が列方向にM本並んでいる。L本のワード線503とM本のビット線902が交差するところにチップ認証装置のエレメントである認証素子977が配列する。
図24は、図23の認証素子用アレイ960の中からN本のワード線503とN本のビット線902を抜き出したものである。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))を第一列から順に対応させる。このとき、a(i)とb(j)の組み合わせで構成される入力に対して、第i行第j列の認証素子977が出力する信号に関連するデータを要素d(i,j)とする。たとえば、d(i,j)は“1”あるいは“0”である。ただし、iおよびjは1からNまでの自然数である。ここで、自然数の組み合わせ (i,j)は、認証素子977のアドレスに対応する。図24の例では、要素d(5,N-2)が図示されている。ここで、要素d(i,j)の集まり{d(i,j)}は、0と1のランダムな集合体で構成される乱数コードである。d(i,j) の値が1のときを黒、0のときを白とすれば、図22のような、白と黒のランダムな市松模様が得られる。
このように、入力コードを2つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列aと配列bを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列aと配列bを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列aと配列bの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ960の行数と列数の和は、少なくとも入力コードの全要素数より大きいものとする。ここで、上記入力コードを{a(i),b(j)}と表記することにする。ただし、i、および、jは、それぞれ独立の自然数とする。こうして、数列{a(i)}、数列{b(j)}、及び乱数コード{d(i,j)}から、何らかの方法を用いて出力コード{c(i,j)}を作成する。入力コード{a(i),b(j)}及び出力コード{c(i,j)}の組み合わせが、図9の交信シリーズ80に対応している。この乱数コード{d(i,j)}の一例として、物理乱数を用いればよい。
本発明に係る例について、主に、第一の入力数列{a(i)}と、第二の入力数列{b(j)}と、及び物理乱数{d(i,j)}とから、出力コード{c(i,j)}を作成する方法について、以下図面を参照して説明する。
一例として、数列{a(i)}および{b(j)}の要素は0か1であるとし、出力コード{c(i,j)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。
Figure 2021190980
式1

図25は、数列{a(i)}、数列{b(j)}、及び物理乱数{d(i,j)}と、式1に基づいて出力される出力コード{c(i,j)}との関係を一覧表にしたものである。この方法を用いると、0と1の数の割合に平均として変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な必要条件である。すなわち、式1の右辺に入力される情報量と、式1の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式1で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。情報量を失うということは、五番目の必要条件(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となること、を満たす上で障害になる可能性がある。したがって、このような状況は可能な限り避けるべきである。この必要条件(5)を満たすためには、乱数の場合の数が現実的にほぼ無限とみなされるほど大きな数になることが求められる。
図26は、式1で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i,j)}を発生し、基幹ノード400から、共通パスコードとして、入力コード{a(i),b(j)}が入力され、コード発生装置602で出力コード{c(i,j)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共にチップ認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図22で概念的に説明した方法を用いる。コード発生装置602は、式1で判るように、コード発生に一種のアルゴリズム(剰余演算)を使用しているが、同時に物理乱数{d(i,j)}で物理的乱雑さを取り込んでいる。この物理乱数{d(i,j)}は、前記チップに固有な物理的乱雑さである。このため、上の必要条件(3)、すなわち、(出力の予測不可能性)が満たされる。なお、入力コードの全要素を取り込むためには、乱数発生装置601の行数と列数の和は、少なくとも、{a(i)}の要素数と {b(j)}の要素数の和と同じか、それより大きいものとする。
図27は、本願の他の一例を説明する図面である。すなわち、基幹ノード400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺ノードにモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、特に図示しないが、基幹ノード400に接続する周辺ノードは、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、入力コード(P’、S’、T’、…)の入力に対して認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹ノード400へ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置604に返し、スクランブルした認証(P1’、S1’、T1’、…)を基幹ノード400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1’、S1’、T1’、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹ノード400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
いずれにしろ、コスト面から、スクランブル装置604はチップ認証装置600を搭載するチップに混載することが望ましい。図28は、スクランブル装置604の基本構成の一例を示す図である。この例では、スクランブル装置604は、乱数発生装置605及びコード発生装置606から構成される。スクランブル装置604を構成する乱数発生装置605およびコード発生装置606の詳しい説明は、図26で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置606は、スクランブル装置604の外に置くことも可能である。
図29は、図23の認証素子977により構成される、認証素子用アレイ960の一例、もしくは、一部を示すものである。図23とは逆に、行が横方向、列が縦方向になっている。この一例では、行数はN+Kで、列数はNである。上部K行N列の領域を、スクランブル装置604を構成するスクランブル装置セルアレイ614とし、下部N行N列を、チップ認証装置600を構成するチップ認証装置セルアレイ611としている。もちろん、この行と列の役割は逆転させても本願の本質には変更がない。
図30は、スクランブル装置604を構成する乱数発生装置605を実現する方法の別の一例を説明する図である。まず、{a(j)+b(j)}を列毎に入力する。ここで、jは列番号である。次に、式2に従って、物理乱数の要素d(i,j)を行方向に足し上げたものを2で割ったあまりに、列番号(j)に従ってa(j)+b(j)を加える。ここで、iは行番号である。その和を更に2で割ったあまりを中間出力{f(j)}とする。こうして、入力コード{a(j),b(j)}はスクランブル装置604で物理的乱数を取り込んで中間コード{a(i),f(j)}に変換される。この{a(i),f(j)}を次の入力コードとしてチップ認証装置600に入力し、式3に従って、出力コード{c(i,j)}を出力する。なお、自明なので特に説明しないが、{b(j)}はダミーであっても良い。
Figure 2021190980
式2

Figure 2021190980
式3
ここで、スクランブル装置604の行数Kとチップ認証装置600の行数Nの選び方は、必ずしも基幹ノード側で管理する必要はない。たとえば、周辺ノードを基幹ノードに登録する際、周辺ノードの所有者、あるいは、周辺ノードの正規の管理者が、任意に決定してもよい。決定された(N、K)は周辺ノード側の内部メモリ等に保存することが可能である。あるいは、反対に、(N、K)を基幹ノードの内部メモリ等に保存することも可能である。
(N、K)は、必ずしも基幹ノード側が知らなくても良い情報であるが、基幹ノードが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹ノード側で検査し必要に応じて改定することが可能である。その際、改定された(N、K)で周辺ノードを再登録する必要がある。
(N、K)を改定すると、たとえ同じ入力コード{a(i),b(j)}を入力しても、スクランブル装置604が生成する中間コード{a(i),f(j)}が異なる。したがって、チップ認証装置600が生成する出力コード{c(i,j)}も異なる。
たとえば一例では、基幹ノードは前回のメンテナンス時に改定した(N、K)を記録しておく。次のメンテナンス時、周辺ノードの内部メモリに保存されている(N、K)を読み出し、前回基幹ノードに記録しておいた(N、K)と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこの周辺ノードを切り離すか、管理者に警報を出すことができる。こうして、(N、K)をセキュリティバッファーとして有効活用することも可能である。なお、式1−3に基づくコード生成方法では、物理乱数{d(i,j)}を用いているので、仮にセキュリティバッファ(N、K)が流出したとしても問題ない。
上記の式1−3にしたがってコード生成するため、該コード発生装置602を含む周辺ノードに搭載される演算処理装置を使用する場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該演算処理装置の外に出力しないよう、演算処理装置内のレジスタに、中間出力{f(j)}の一部あるいは全部を格納することが望ましい。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該周辺ノードの外部には出力されない。
また、遠隔操作によってコード生成中のレジスタからチップ内あるいは演算処理装置内に閉じ込められた中間出力{f(j)}をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。たとえば、通常のパソコンでは32ビット、多くとも64ビットしかない。一方、中間出力{f(j)}をすべて記録するのに必要な容量はNビットである。したがって、Nが十分大きければ、コード生成するには、中間コード{f(j)}をいくつかのセグメントに分割してレジスタに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をRとすると、図30において、たとえば、第1列から第R列までをセグメント1、第R+1列から第2R列までをセグメント2、第2R+1列から第3R列までをセグメント3、…とし、式2に基づいてセグメント毎に中間出力{f(j)}の一部を生成し、レジスタに格納する。すなわち、Nが十分大きければ、中間出力{f(j)}を格納したレジスタ領域はセグメントを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力{f(j)}の全体を一度に盗まれることはない。
あるいは、上記の式1−3にしたがってコード生成するため、該コード発生装置602を含む周辺ノードに搭載される演算処理装置を使用する場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該周辺ノードの外に出力しないよう、該周辺ノードの内部メモリに、中間出力{f(j)}の一部あるいは全部を格納することが望ましい。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該周辺ノードの外部には出力されない。
あるいは、上記の式1−3にしたがってコード生成するため、同一チップ内の周辺回路を用いる場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該チップの外部には出力されない。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該チップの外部には出力されない。
いずれにしろ、出力コード{c(i,j)}の生成が終われば中間出力{f(j)}は自動的に上書き消去することが望ましい。また、本願では、入力コード{a(i),b(j)}から中間コード{f(j)}を生成するのに物理乱数{d(i,j)}(i=1,…K)を利用しているので、物理乱数{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)を利用しているので、物理乱数{d(i,j)}(i=K+1,…K+N)の要素数が十分大きければ、出力コード{c(i,j)}を予測することは現実的に不可能である。
たとえば、図29の例で考えてみよう。スクランブル装置セルアレイ614(行数K)およびチップ認証装置セルアレイ611(行数N)のビット容量を概算すると次のようになる。まず、入力コードの場合の数は、2の2N乗である。スクランブル装置セルアレイ614の物理乱数{d(i,j)}の場合の数は、2のNK乗である。一方、チップ認証装置セルアレイ611からなる物理乱数{d(i,j)}の場合の数は、2のY乗であり、YはNの2乗である。出力コード{c(i,j)}の場合の数は、2のZ乗であり、ZはNの2乗である。
次に、(N、K)を決定するために必要な要件を考える。一般的なデジタル暗号回線で用いられる入力コードは、現在128ビットから256ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから10年程度の間は256ビットからせいぜい512ビットの間で推移するであろう。そこで、一例としてN=K=512の場合で見積もる。このとき、入力コードの場合の数は、2の512乗である。これは、既に非常に大きな整数の桁数である。実際にほぼ無限と考えて差し支えない。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は更に大きく、もすべて同様に2の512乗の2乗である。もちろん、現実的な無限大である。ここで、512の2乗は262,144なので、スクランブル装置を含めても262キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。また、この物理乱数{d(i+N,j)}も前記チップに固有の物理的乱雑さにである。
N=K=128の場合では、入力コードの場合の数は、2の256乗であり、およそ10の77乗となる。上述したように、物のインターネットでは通信ノードの数は全世界で一兆個(10の12乗)より多くなると考えられる。10の77乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、ノード数一兆個としても10のマイナス65乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は、すべて同様に2の128の更に2乗となり、もちろん、現実的な無限大である。ここで、128の2乗は16、384なので、スクランブル装置を含めても16キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
このように、仮に中間コード{f(j)}が盗まれていたとしても、物理乱数{d(i,j)}(j=K+1,…K+N)からなる物理的乱雑さによって出力コード{c(i,j)}を予測するのは現実的に不可能である。その上、セキュリティバッファ(N、K)を随時更新することができるので、同じ入力コード{a(j),b(j)}に対して生成される中間コードは随時更新される。
図31は、スクランブル装置セルアレイ614とチップ認証装置セルアレイ611を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線503を共有している。図32は、スクランブル装置セルアレイ614とチップ認証セルアレイ611を含むメモリチップの他一例を示す図である。メモリ領域を含むこれら3つの領域がビット線方向に配列し、ビット線902を共有している。このように、ワード線503とビット線902を入れ替えても、本願の発明は、本質的に何も変わりはない。
図33は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにキャパシタ982を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すようになる。ワード線503とビット線902の間に電圧を印加することで、選択された交差点のキャパシタ982に電界を印加することが可能である。なお、ここで破壊のために印加する電圧は交流でも直流でもかまわない。
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は低い電界でも電流を流しやすくなり、たとえばメモリでは“1”に相当する。図22では黒に相当する。反対に、破壊しなかった認証素子は低い印加電界に対して電流を流し難く、たとえばメモリでは“0”に相当する。図22では白に相当する。絶縁破壊のための印加電界やキャパシタの詳細な条件(物性、構造、サイズ等)を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ50%程度にすると、図22のような白黒のランダムな市松模様が得られる。
図34は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのために認証素子977(図33の例ではキャパシタ982)に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じて認証素子977を通して流れる電流の絶対値である。ここで、電圧が高ければ認証素子に印加される電界が高く、電圧が低ければ電界も低くなる。破壊された認証素子(破壊認証素子)では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった認証素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧932における破壊判定電流値933と非破壊判定電流値934を設定する。すなわち、絶対値が破壊判定電圧932に一致する読み出し電圧を認証素子977に印加したときに、認証素子977を流れる電流の絶対値が破壊判定電流値933より高ければ、当該認証素子は破壊していると判定し、非破壊判定電流値934より低ければ破壊していないと判定する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、一行目にこのアドレスを2進法で表記している。こうして選択されたアドレスに対応する認証素子977が接続するワード線503とビット線902の間に、図34で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、次の認証素子のデータを読み出す。認証素子用アレイ960中の全ての認証素子のデータが読み出されるまでこの作業を繰り返す。
図34の判定方法には、破壊判定電流値933と非破壊判定電流値934の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊されたとも非破壊のままであるとも判定されない。このような認証素子は、メモリに相当すると“0”でも“1”でもないため、 “X”と表記することにする。このとき、2進表記した認証素子のセルアレイ上のアドレスと、対応する認証素子のデータの一例を示したのが図35である。その3行目を見ると、一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”…“0”となっている。このように、左から五番目の認証素子のデータが“X”になっている。
次に、図35のような“0”と“1”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図22の白黒のパターンになると予想される。ここで、“0”は白に変換され、“1”は黒に変換されるものとする。しかしながら、“0”でも“1”でもない“X”が存在すると、図22のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“X”に対応する認証素子をプロットから排除しなければならない。
たとえば、 “X”に対応する認証素子のアドレス(たとえば、図35の例では2進法表記で100)をバッファーに保存する。各アドレスに対応する認証素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、図35の4行目のように、“X”に対応する認証素子のデータは取りのぞかれ、“0”と“1”のみからなるデータとアドレスの組み合わせが生成される。こうして、図22のように、白黒の市松状のパターンが得られる。
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったり、ハード破壊モードに遷移したりすることもあり状態が不安定である。しかしながら、一度ハード破壊モードに陥ると、非破壊状態に戻ることはなく、またソフト破壊モードに遷移することもない。本発明においては、図34および図35で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“1”とみなし、ソフト破壊モードを“X”としている。破壊判定電流値933と非破壊判定電流値934の間のギャップは、ソフト破壊モードに“X”をラベルするためのものである。こうして、上述した方法によって、“X”のソフト破壊した素子のデータを取り除くことによって、図22の市松状の白黒パターンは、繰り返し電圧を印加しても変化し難くなり、パターンの再現性を獲得する。これは、上記必要条件(4)入力と出力の関係が安定していて信頼できること、を満たすのに有利である。このように、破壊認証素子は、ハード破壊していることが望ましい。
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするよう制御することは難しい。したがって、電気的ストレスを繰り返すうち“X”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の認証素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さの情報量が不足する。さらに、物理的乱雑さを最大限にするには、情報エントロピーの考え方から“0”と“1”の割合がおおよそ50%ずつになることが望ましい。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返し、ソフト破壊モード“X”を減らしたり、“0”と“1”の割合を所定のレベルに調整したりする方法が必要になる。以下破壊パルスの繰り返し方法を説明する。
一例として、図36の方法を紹介する。第一破壊パルス電圧を印加した後、図34で説明した方法で破壊検査を実施する。“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図34の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図34の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定しておく必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。検査に合格した場合、上述したように“X”とラベルされた認証素子のアドレスをバッファーに記録し、対応する認証素子のデータを取り除く。ただし、認証素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな情報量の物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
ここで、“X”はソフト破壊状態に対応するので、複数回パルスを印加しているうちにハード“1”に遷移するものが出てくる。“0”から“X”に遷移するものの割合が少なくなければ全体として“0”の割合が下がり、“1”の割合が多くなる。すなわち、たとえ1回目のパルスを与えた際は“0”の数が多くても複数回パルス印加するうちに“1”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合を50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な情報量の物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
破壊パルスを繰り返し印加する他の一例として、図37を紹介する。図36の例との違いは、破壊パルスが印加されるたびに高くなっている点である。その他の説明は図36の例と同様なので省略する。
ソフト破壊モード“X”を取り除く別の方法は、“X”の認証素子のみ選択し、ハード壊モード“1”に遷移するまで、繰り返し電圧を印加する方法ものである。このときの破壊電圧の印加の仕方は、たとえば、図36あるいは図37のような方法である。この方法は、 “0”の割合がまだ“1”の割合よりある分だけ高いうちに行うことが望ましい。
また別の一例では、認証素子の素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。たとえば、図38のように、第一導電体1053、第二導電体1052、絶縁膜910、導電体先端部1051からなる素子構造を考えよう。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線502あるいはビット線902のどちらか一方に接続し、第二電極1054は他方に接続する。導電体先端部1051周辺の絶縁膜1050の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部1051の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部1051の深さには製造ばらつきがあるので、導電体先端部1051と第二導電体1052の間の絶縁膜1050の破壊発生確率も認証素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって“0”と“1”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。
図39は、認証素子977の別一例を示す図である。ワード線503とビット線902の交差するところにダイオード要素が配置している。具体的には、一例としてPN接合986(図39)で可能である。あるいは、別の一例として、ショットキー接合987(図40)が可能である。ダイオードに強い電圧ストレスを印加すると、ダイオードは確率的に破壊される。破壊されたかどうかは物理的に乱雑であり、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、たとえばメモリの“1”に相当する。破壊されなかったダイオードでは、逆方向の読み出し電圧を印加しても電流が流れ難く、たとえばメモリの“0”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。
上述のように、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がPN接合986やショットキー接合987のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がキャパシタ982の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図34と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、PN接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。
図41は、認証素子977がトランジスタ983の場合を示す図面である。一般に、トランジスタは、半導体基板表面の二つの近接する拡散層とゲートキャパシタから構成されている。ゲートキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この例では、二つの拡散層の内一方をビット線902に接続している。ゲート電極にはワード線503を接続する。すなわち、この例では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、たとえばビット線902に対してワード線503に電圧ストレスを印加する。この電圧ストレスは、一例として、図36のようなパルスでも良い。また別の一例として、図37のようなパルスでも良い。読み出しは、図34のように、ビット線902とワード線503の間に破壊判定電圧932を印加し、ビット線902とワード線503の間を流れる電流を読めば良い。
図42は、認証素子977が、トランジスタ983とキャパシタ982から構成されるDRAMセルの場合である。ここでは、キャパシタ982の破壊を利用する方法を説明する。具体的には、トランジスタ983をオン状態にするための転送電圧をワード線503とビット線902の間に印加する。その間にビット線902に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図36や図37のようなパルスである。読み出しは、図34のように、ワード線503に転送電圧を印加している間に、ビット線902を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ983をオン状態にするのに必要な電圧である。トランジスタ983のゲート絶縁膜を破壊する場合、図41と同様な方法が可能である。このとき、ビット線902に繋がっている側のゲート絶縁膜が破壊されることになる。いずれにしろ、破壊は確率的であり、物理的乱雑さの起源となる。
ここで重要なことは、認証素子977は、通常のDRAMセルをそのまま用いることができる点である。すなわち、DRAMチップに本願のチップ認証装置を追加する場合、メモリセル領域の一部に認証装置領域(セルアレイ)を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、DRAMに限らず一般的なメモリ容量に比べて非常に少なくて済む。
上述したように、図29のセルアレイを例にとり、N=K=512の場合で見積もると、262キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。N=K=128の場合、16キロビットもあればチップ認証装置としては十分な容量であることがわかる。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
DRAMの価格は、現在、4ギガビット品で2.5米ドルから3米ドルの間で推移している。DRAMセルをそのまま認証素子977として使用することができるので、物理乱数の情報量を十分維持しながら、ソフト破壊モード “X”の分を取り除いて(入出力の信頼性)を確保したとしても、スクランブル装置を含めたチップ認証装置の値段は、1チップ辺り最大でも0.03米セント程度である。
図43は、認証素子977の別の一例を示す図である。ワード線503とビット線902の交差するところに不揮発性メモリの制御に用いる選択トランジスタ984を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、ゲート積層構造である。前記選択トランジスタ984は、このメモリ素子の層間絶縁膜の一部もしくは全てを層間導電層に置き換えたものである。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線503に高電圧を印加することで、選択された交差点の選択トランジスタ984のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ983のゲート絶縁膜の破壊と同様になる。また、トンネル膜の破壊は確率的であり、物理的乱雑さの起源となる。すなわち、トランジスタ983のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。
図44は、認証素子977の別の一例を示す図である。ワード線503とビット線902の交差するところに抵抗985を配置している。ワード線503とビット線902の間に高電圧を印加することで、選択された交差点の抵抗985に電界ストレスを加えることが可能である。
あるいは図92のようにトランジスタ983および可変抵抗981からなる可変抵抗メモリ素子989である。この可変抵抗981が電圧印可で抵抗値を制御できるものである場合、この可変抵抗メモリ素子989はReRAMである。また、この可変抵抗981が加熱によって抵抗値を制御できるものである場合、この可変抵抗メモリ素子989はPCRAMである。あるいは図93のようにトランジスタ983および磁気抵抗980からなる磁気抵抗メモリ素子990である。この磁気抵抗がGMR膜である場合、この磁気抵抗メモリ素子990はMRAMである。また、この磁気抵抗がSTT膜である場合、この磁気抵抗メモリ素子990はSTT-MRAMである。あるいは図94のように電荷蓄積層付き不揮発性メモリ素子988である。ここで、電荷蓄積層は電荷トラッピング層でも浮遊ゲートでも良い。あるいは、図95のように意図的にビット線端子を排除したNAND型配列上に配置した電荷蓄積層付き不揮発性メモリ素子988である。あるいは、図96のようにトランジスタ983および強誘電体キャパシタ991からなる強誘電体メモリである。
一般に、抵抗は高抵抗導電材を二つの端子で挟んだものであり、抵抗に高電界を印加すると確率的に断線し、ワード線503とビット線902の交点は非導通(ショート)状態になる。ショートしなかった場合(非ショート)、ワード線503とビット線902の交点は導通状態である。どのアドレスの抵抗がショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図22のようなランダムな市松パターンを作ることができる。
抵抗が破壊されたかどうかは、抵抗985に読み出し電圧を印加して判定する。ショートした認証素子では、読み出し電圧を印加しても電流が流れづらく、たとえばメモリの“0”に相当する。ショートしなかった認証素子では、読み出し電圧が低くても電流が流れやすく、たとえばメモリの“1”に相当する。このような抵抗のショートは、導電体の破壊と同じであり、たとえば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“0”に相当し、発生しなかった素子はメモリの“1”に相当する。
図45は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのために抵抗985に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じて抵抗985を通して流れる電流の絶対値である。ショートしなかった認証素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした認証素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧742における非ショート判定電流値743とショート判定電流値744を設定する。すなわち、絶対値がショート判定電圧742に一致する読み出し電圧を抵抗985に印加したときに抵抗985を通して流れる電流の絶対値が、非ショート判定電流値743より高ければ、ショートしていないと判定し、ショート判定電流値744より低ければショートしていると判定する。
図45の判定方法には、非ショート定電流値743とショート判定電流値744の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある認証素子977は、ショートが発生したとも発生しなかったとも判定されない。このような認証素子977は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、認証素子977のセルアレイ上のアドレス(番地)と、対応する認証素子977のデータの一例を示すと、認証素子977がキャパシタ982の場合と同様に、図35のようになる。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”、…、“0”となっている。このように、五番目の素子のデータが“X”になっている。ここで、“X”を取り除き、図22のような白黒のみの市松模様を得る方法は、キャパシタ982の場合と同様なので、ここでの説明は省略する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図45で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、次の認証素子のデータを読み出す。図23に示す認証素子用アレイ960中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図46は、抵抗985の一例を示す図である。第一導電体1053、第二導電体1052、絶縁膜910、導電体接合部970からなる素子構造である。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線503あるいはビット線902のどちらか一方に接続し、他方は第二電極1054に接続する。導電体接合部970の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ50%になるように調整することが望ましい。ここで、繰り返しパルス印加の具体的方法は、例えば、図36や図37のような方法が考えられる。
一般に、電気的ストレスによって導電体接合部970の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部970は断線(ショート)する。断線後は、例えば、図38のようになり、導電体接合部970は導電体先端部1051のように変形する。更に高温のため酸化が進み、断線箇所、すなわち導電体先端部1051と第二導電体1052の間には絶縁膜1050が入り込む。こうして、非ショート状態からショート状態に遷移する。
更に電気的ストレスを繰り返し印加し続けると、断線箇所の酸化膜が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらか一方を人為的に優勢にするような制御は難しい。その中間状態が“X”である。したがって、電気的ストレスを繰り返すうちに“X”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図45で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図45の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図45の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファーに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
一方、物理的乱雑さを最大限に利用するには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。 “X”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“0”に遷移するので、たとえ1回目のパルスを与えた際は“1”の数が多くても複数回パルス印加するうちに“0”の割合が増えていく。ここで、繰り返しパルス印加の具体的方法は、例えば、図36や図37のような方法が考えられる。
このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合をほぼ50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
図47は、図44に採用される抵抗985の別の一例である。これは、金属配線パターン作成時に一緒に作成することができる。したがって、導電体930は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図47のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。たとえば、第一電極1055はワード線503に接続し、第二電極1054はビット線902に接続する。
また、図47のように矩形に曲がった部分は通常のメタル配線より細いことが望ましい。たとえば、矩形部分以外のところをレジストでマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。
導電体930は、複数回矩形に曲げることも可能である。図48はその一例であり、9箇所矩形に曲がっている。こうして、ショートする確率を配線パターニングで調節することも可能である。ただし、第一電極1055はワード線503に接続し、第二電極1054はビット線902に接続する。
図49の導電体ビア530は、たとえば、第一導電体1053の側から絶縁膜910を貫通する穴(ビア)を開け、そこに導電材料を埋め込んで作成できる。これは、図46の導電体接合部970の一例である。ここで、ビア深さの狙い値を第一導電体1053と第二導電体1052の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図49の中央の素子のように、ビアが第一導電体1053と第二導電体1052の間にぴたりと収まる。
しかしながら、一般には、図50に示すように、ビアのアスペクト比や穴径には製造上の避けられないばらつきがある。このばらつきは、ビア深さをもばらつかせる。こうして、ある素子では導電体接合部970の長さが足りず、第一導電体1053と第二導電体1052の間が断線(ショート)して図38のようになる。またある素子では接続(非ショート)して図46のようになる。たとえば、この図49の例では、左からショート、接続(非ショート)、接続(非ショート)である。
ワード線503とビット線902で選択した認証素子977の導電体接合部970がショートしていれば電流は流れず、たとえばメモリセルに対応させると“0”状態となる。反対に、ショートしていなければ電流が流れ、たとえばメモリセルに対応させると“1”状態となる。 “0”を白、“1”を黒とみなすと、図22のようなランダムな白黒のパターンが生成される。
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図22のような白黒のランダムな市松パターンを得ることができる。
しかしながら、導電体ビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。たとえば、ショートしている場合(たとえば、図49の左端の認証素子)、電気的ストレスを繰り返すうちビア底と第二導電体1052の間の絶縁膜の一部(たとえば、図38の絶縁膜1050)が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合(たとえば、図49の中央)、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“1”が優勢の場合、データ“1”の素子のみ選択して電気的ストレスを印加し、反対に、データ“0”が優勢の場合、データ“0”の素子のみ選択して電気的ストレスを印加する。こうして、“1”と“0”の割合を検査しながら、所望の割合に近づくまで、このような電気的ストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子郡に繰り返し印加するストレスパルスは、たとえば、図36や図37のようなものを使うことができる。
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図45で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、新たに選択した認証素子のデータを同様な方法で読み出す。こうして図23に示す認証素子アレイ960中の全ての認証素子のデータが読み出されるまでこの作業を繰り返す。
上述の例では、たとえば、図38あるいは図46において、第一電極1055は、ビット線902とワード線503のどちらか一方に接続し、第二電極1054は他方に接続している。しかしながら、本願に関る構成の範囲はこれに留まらず次のような構成も可能である。たとえば、図51のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図52のように、第一電極1055と第二電極1054のどちらか一方が接地され、あるいはソース線に接続され、あるいは別の回路に連なる任意の端子に接続される。他方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図53および図54は、認証素子としてキャパシタ982を用いた場合を示す図面である。たとえば、図53のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図54のように、第一電極1055と第二電極1054のどちらか一方が接地され、あるいはソース線に接続され、あるいは別の回路に連なる任意の端子に接続される。他方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図55および図56は、認証素子としてPN接合986を用いた一例を示す図面である。たとえば、図55のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図56のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図57および図58は、認証素子としてショットキー接合987を用いた一例を示す図面である。たとえば、図57のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図58のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図59および図60は、認証素子として抵抗985を用いた一例を示す図面である。たとえば、図59のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図60のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。また、抵抗985の一例として、図47および図48の導電体930が挙げられる。導電体は、細く、あるいは、矩形状に加工することによって抵抗体あるいはヒューズとして利用できる。あるいは、図46のように、導電体接合部970を導電体930として用いることもできる。
図61および図62は、認証素子としてトランジスタ983を用いた一例を示す図面である。たとえば、図61のように、トランジスタ983のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。トランジスタ983のソースおよびドレインは、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図62のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図63および図64は、認証素子としてトランジスタ983およびキャパシタ982からなるDRAMセルを用いた一例を示す図面である。この図63のように、トランジスタ983のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。トランジスタ983のソースおよびドレインの一方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。トランジスタ983のソースおよびドレインの他方は、キャパシタ982の二つの端子のうちの一方に接続する。キャパシタ982の他方の端子は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図64のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図65および図66は、認証素子として選択トランジスタ984を用いた一例を示す図面である。たとえば、図65のように、選択トランジスタ984のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。選択トランジスタ984のソースおよびドレインは、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図66のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図67は、ビット線方向に隣り合った選択トランジスタ984同士の拡散層を接続した場合の例である。これは、NAND型の配置と言われるもので、素子と素子の間からビット線端子を取り除いた状態になっている。ただし、素子が不揮発性メモリセルではなく、認証素子977なので、いわゆるNANDフラッシュとは異なり、NAND型認証素子アレイである。ここでは、認証素子は選択トランジスタ984であるが、特に、そのトンネル膜から構成されるキャパシタの絶縁破壊を用いる。図68は、NAND型認証素子アレイの別の一例である。この例では、認証素子としてトランジスタ983を採用している。ここでは、特に、そのゲート絶縁膜から構成されるキャパシタの絶縁破壊を用いる。したがって、動作方法は同様であり、以下まとめて説明する。なお、セル間のビット線端子を排除してもビット線を排除した訳ではない。したがって、NAND型配列であっても配線レイアウト上ビット線とワード線が交差するところに認証素子977が配置していることには変わりはない。
図69は、上述の認証用素子アレイ960の一例である。ページバッファ790は、NAND型不揮発性メモリセルアレイのページバッファを兼ねることができる。ページバッファ790は、ビット線902との接続をオン/オフさせるためのビット線接続ゲート791を含んでいる。更に、ページバッファ790は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
上述の例では、NANDフラッシュのメモリセルを混載することができる。しかしながら、DRAMやSRAM等の揮発性メモリ、あるいは、NORフラッシュ、磁気抵抗メモリ(MRAM)、スピントルク型磁気抵抗メモリ(STT-MRAM)、相変化型メモリ(PCRAM)、抵抗変化型メモリ(ReRAM)、強誘電体メモリ等の別種の不揮発性メモリを混載することも可能である。いずれにしろ本願の本質を変更する必要はない。すなわち、本発明に関する認証素子アレイ960と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
認証素子977に電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線電極側にあるドレイン選択トランジスタ(SGD)9811をオン状態にする。同様に、破壊したい素子につながるワード線とビット線電極側のドレイン選択トランジスタ9811の間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各セルトランジスタ(認証素子977)をオン状態とする。ここで、破壊パルスを印加したい素子につながるビット線の電位を0Vにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、たとえば、図36または図37で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図36または図37を試してパルス回数を決定し、それをチップ内のメモリ領域(あるいはバッファー)に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
図70は、本願に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出す認証素子977(セルトランジスタ)に関する1本のワード線を選択し、0Vより高い所定の電位を与える。選択ワード線とドレイン選択トランジスタ(SGD)9811の間に他のワード線が存在する場合は、そのワード線にも正の電位を与え、関連する認証素子(セルトランジスタ)をオン状態とする。ビット線は0Vないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図34の破壊判定電圧932程度である。同時に、ドレイン選択トランジスタ(SGD)9811のゲートには正の電位を与え、ドレイン選択トランジスタ(SGD)9811をオン状態にする。次にビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977の絶縁膜が破壊され導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正の電位を与え、ビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の絶縁膜の導通・非導通状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位(たとえば、破壊判定電圧値9330)以上であれば選択した認証素子977の絶縁膜は破壊されていると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9340)以下であれば選択した認証素子977の絶縁膜は破壊されていないと見なす。ここで、破壊判定電圧値9330及び非破壊判定電圧値9340は、それぞれ、図34の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
図71を用いて、本実施例に関する破壊検査時の電圧パルス波形の別の一例を説明する。まず、読み出す認証素子977(セルトランジスタ)に関する1本のワード線を選択し、0Vを与える。同じく選択ワード線とドレイン選択トランジスタ9811間に他のワード線が存在する場合は、そのワード線にも正の電位を与え、関連する認証素子(セルトランジスタ)をオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図34の破壊判定電圧932程度である。同時に、ドレイン選択トランジスタ9811のゲートには正の電位を与え、ドレイン選択トランジスタ9811をオン状態にする。次に、ビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977の絶縁膜が破壊され導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正電位を与えビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の絶縁膜の導電・非導電状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位(たとえば、破壊判定電圧値9331)より低ければ、選択した認証素子977の絶縁膜は破壊されていると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9341)より高ければ、選択した認証素子977の絶縁膜は破壊されていないと見なす。ここで、破壊判定電圧値9331及び非破壊判定電圧値9341は、それぞれ、図34の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
不揮発性メモリの複数のブロックの隣に1ブロック分の領域をチップ認証装置アレイとして割り当てることが可能である。たとえば、図31や図32のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線902、あるいは、ワード線503を共有することでチップ面積を節約することが可能である。
図22に示したような半導体装置の素子アレイ上に構成できる物理的にランダムな組み合わせの特殊な例は、例えば、行ごとに“1”と“0”を数え、“1”が多ければその行を黒とする。“0”が多ければその行を白とする。あるいは、行ごとに“1”と“0”を2進法で足し上げた結果の1桁目の値が“1”ならその行を黒とする。反対に“0”ならその行を白とする。あるいは、各行に関する何らかの性質に応じて行ごとに“1”か“0”を決定することが可能である。
このように、なんらかの演算によって行ごとの値(“1”か“0”)を決定し、その結果を、図72のように、各行に対応する代換素子979に記録する。たとえば、2進数のビット演算なら何でも可能である。あるいは、“0”および“1”を総和して、最下位の桁のみを代換素子979に記録することが望ましい。あるいは、“0”の数と“1”の数を比較し、多い方の値を代換素子979に記録することも可能である。代換素子979は、メモリ素子やヒューズ等が好ましい。ただし、メモリ素子は不揮発性であっても揮発性であっても良い。たとえば、不揮発性の場合浮遊ゲートを有するものであることが望ましい。あるいは、磁気抵抗の変化を使ったものであったり、層変化を使ったものであったり、抵抗層の抵抗値の変化を使ったものである。揮発性の場合キャパシタや(SRAMなど)特殊な回路に蓄積した電荷量を使ったものでもよい。
いずれにしろ、図22の白と黒のランダムな市松模様は、図73のように、ランダムな水平模様に変換される。これは、2次元コードからバーコードへの変換と似ている。この変換により同じ行数での情報量は減少するが、行数が十分大きく、縞模様における白と黒の割合が一方的でなければ、十分な乱雑さを保持できるはずである。
ここで、図23は、図22を再現するために、各々市松格子状には何らかの認証素子977が配置したものである。これまで述べてきたように、認証素子977は、メモリ素子でも良く、抵抗でも良く、キャパシタでも良く、ダイオードでも良く、スイッチでも良く、ある種のトランジスタでも良く、少なくとも第一と第二の二つの状態を出力できるものであれば何でも良い。ここでは、行数がNで、列数がMである。NもMも、図22が十分な乱雑さを確保できる程度の大きさの整数であることが求められる。
つづいて、入力コード(P、S、T、…)の例として、(a(1),a(2),…,a(N))を考えよう。図74のように、各行の代換素子979に(a(1),a(2),…a(N))を第一行から順に対応させる。このとき、第i行のデータ(1/0)を要素d(i)とする。ここで、要素d(i)の集合{d(i)}は、0と1のランダムな集合体で構成される乱数コードである。同様に、上記入力コードを{a(i)}と表記することにする。ただし、iは1からNまでの整数である。続いて、入力コード{a(i)}及び乱数コード{d(i)}から、何らかの方法を用い出力コード{c(i)}を生成する。入力コード{a(i)}及び出力コード{c(i)}の組み合わせが、図9の交信シリーズ80に対応している。
ただし、上述して来たように、図22が物理的にランダムな白と黒のパターンである限り、{d(i)}が0と1のランダムな集合体で構成される乱数コードであるという必要条件が満たされる。もちろん、上述した例において、行と列を入れ替えても本願の性質は本質的に変わらない。
ここで、一例として、出力コード{c(i)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。図75は、数列{a(i)}及び物理乱数{d(i)}と、式4に基づいて出力される出力コード{c(i)}との関係を一覧表にしたものである。すなわち、この物理乱数{d(i)}が前記チップに固有な物理的乱雑さである。

Figure 2021190980
式4
式2に似ているが、列の要素jがなくなっている点で簡単化されている。また、この方法を用いると、変換の前後で0と1の数の割合に変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式4の右辺に入力される情報量と、式4の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式4で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報エントロピー(物理的乱雑さ)を失うことになるからである。
図76は、式4で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i)}を発生し、基幹ノード400から、共通パスコードとして入力コード{a(i)}が入力され、コード発生装置602で出力コード{c(i)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共に認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図73および図74で概念的に説明した方法を用いる。コード発生装置602は、式4で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数{d(i)}で前記チップに固有の物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置601の行数は、少なくとも、{a(i)}の要素数と同じか、それより大きいものとする。
図27は、式4により動作するスクランブル装置604の使用方法の一例を示す図面である。基幹ノード400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺ノードにモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、図7のように、基幹ノード400に接続する周辺ノードは、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹ノードへ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置に返して、もう一度スクランブルされた認証(P1’、S1’、T1’、…)を基幹ノード400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1’、S1’、T1’、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹ノード400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
図77は、図72の認証素子977と代換素子979からなる素子アレイの一部あるいは全部を示すものである。行数はN+Kである。このN+Kは、チップ内の全ビット線数より少ないか同じ、あるいは、全ワード線数より少ないか同じとすることができる。ここでは、上部K行の領域をスクランブル装置セルアレイ614とし、下部N行をチップ認証装置セルアレイ611としている。この(N,K)の組み合わせは、図29に関連する例と同様に、セキュリティバッファーとして活用することが可能である。
まず、式5のように、{a(i)}と{d(i)}を行ごとに足し合わせたものを2で割り、そのあまりを中間出力{f(i)}とする。
Figure 2021190980
式5
ここで、{f(i)}がスクランブル装置セルアレイ614に関する出力となる。ただし、iは1からKの自然数である。
つづいて、式5において、配列{a(i)}を中間コード{f(j)}に置き換えれば、式6が得られる。ここで、左辺は、コード発生装置602の出力{c(i)}となる。ただし、iは1からNの自然数である。
Figure 2021190980
式6
代換素子979がヒューズの場合、たとえば、図73は、図72の各行にヒューズを設置することによって実現できる。たとえば、切断したヒューズを黒の行とし、切断しない行を白とすると、この白/黒のランダムな水平模様は、列方向に並んだヒューズの非切断/切断のパターンに置き換えられる。また、ヒューズの切断・非切断は、対応する各行に関するなんらかの性質によって決定する。
ヒューズの非切断/切断の決定方法は、各行の白と黒の数を数えるだけではない。何らかの事情により、ある行の中に回復不能のエラーが発生している場合に対応する行のヒューズを切断し、そうでない場合に非切断するということでも良い。この回復不能のエラーの出現が物理的に乱雑に発生する限り有効である。また、この例の場合、切断と非切断の割合は50%程度から大きくずれていても良い。
回復不能のエラーが発生している行はリダンダンシー(冗長)行と呼ばれる別の行に置き換えられ、半導体装置としては使用しない。反対に、それ以外の行は製品の半導体装置の一部として利用する。これは不良品を出荷させないために良く使われる手法であるが、ここでは、リダンダンシー行に置き換えられる行と置き換えられない行の組み合わせが物理的に乱雑であることに注目する。つまり、不良品を出荷させないために置き換えていた部分(リダンダンシー行の領域)を用いることによって、チップ認証装置600用に新たな領域を設けなくても、物理的乱雑さを出力させることが可能となるのである。
ところで、メモリセルアレイの各行にそれぞれヒューズを当てはめるようなことは稀である。ゆえに、何らかの事情によりある行の中に回復不能のエラーが発生している場合、その対応する行の番号(行番号)を別途用意するメモリ領域(リダンダンシーメモリ)に保存する。そして、メモリ素子にアクセスするとき、そのメモリ素子がリダンダンシーメモリに属しているかどうかを調べる。属していない場合アクセスし、属している場合アクセスせず対応する行をリダンダンシー行の一つと置き換える。こうして、何らかの事情によるメモリ素子の回復不能のエラーの発生を物理的乱雑さとして応用する場合、図72等に見られる代換素子979を用いずに、リダンダンシー用のメモリ領域を利用することが可能である。
ただし、この手法で十分な大きさの物理的乱雑さを出力するためには、行数Nが十分大きくなければならない。ここで、リダンダンシーメモリに属する行数をLとすると、Lは1より十分大きく、Nより十分小さな整数である。
上述したような必要条件を満たす半導体製品は、たとえば、ダイナミックランダムアクセスメモリ(DRAM)である。この場合、上述した認証素子977は、DRAMのメモリ素子である。典型的な4ギガビットDRAM製品の場合、たとえば、全ビット線数655万本に対して、何らかの事情により回復不能のエラーが発生する行を置き換えるために準備する行数(リダンダンシーに関するビット線数)は、たとえば、15万3千程度であろう。ここでリダンダンシー用に設けるビット線方向を図72の行方向に当てはめたが、反対に、ワード線を当てはめることも可能である。いずれにしろ、リダンダンシーに関する場合の数は、簡単な見積もりとして、655万の内から15万3千を選ぶ順列に等しい。計算すると約10の1042102乗の5.6倍になる。これは恐ろしく大きい数であり、現実的にほぼ無限大と考えてよい。
次に、ワード線方向を図72の行方向に当てはめると、典型的な4ギガビットDRAM製品の場合、ワード線数440万に対してリダンダンシー行の総数は、たとえば、3,044である。440万から3、044を選ぶ順列の数は、計算するとおよそ10の20222乗のさらに1.6倍となる。ビット線リダンダンシーの場合の数より大分少なくなるが、それでもワード線リダンダンシーの場合の数も恐ろしく大きな数である。いずれにしろ、改めてチップ認証装置600用の領域を設けなくても、汎用DRAMの製品管理のためにあらかじめ設置されているリダンダンシーメモリを用いることによって、現実的に無限大の物理的乱雑さを手に入れることが可能である。
このように、汎用DRAM製品は、製品管理用にあらかじめリダンダンシーメモリとしてヒューズメモリが取り付けられており、しかもビット線数もリダンダンシー行の数も十分大きく、得られる物理的乱雑さも十分である。したがって、認証装置600としてチップ内のすべての領域のリダンダンシーを使うことも可能だが、その一部のみをチップ認証装置600として使用することも可能である。この場合、行数Nはチップ内の全ビット線数、あるいは、全ワード線数より小さくなる。
本発明に関するチップ認証機能を有するチップ10では、たとえば、図78のように、少なくともチップ認証装置600および入出力制御装置800を、搭載することができる。この入出力制御装置800は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。
更に、本発明に関するチップ認証機能付きチップ400は、たとえば、図79のように、少なくともチップ認証装置600と、認証装置用制御装置880と、入出力制御装置810と、スクランブル装置890と、及び中間コード用バッファー900とから構成することができる。この入出力制御装置810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置890は、図27のスクランブル装置604を含み、スクランブル装置604が生成する中間コードは、入出力制御装置810とは独立した中間コード用バッファー900に格納され、外部からの要請があってもデータをチップ400の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御装置880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。また、図35で説明した、モード“X”に対応するアドレスを記録する内部記録部も含むことができる。同様の記録部は、必要に応じて、スクランブル装置890にも含むことができる。
外部入出力50から入力コード{a(i)}と{b(j)}の集合が入力されると、入出力制御装置810は、入力コード{a(i)}と{b(j)}の集合をスクランブル装置890に渡す。ここで、式2に基づいて生成された中間コード{f(i,j)}は、中間コード用バッファー900に一時格納され、認証装置用制御装置880に引き渡される。認証装置用制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、チップ認証装置600から取得した乱数コード{d(i,j)}と、中間コード{f(i,j)}とに応じ、式3に基づいて、出力コード{c(i,j)}を生成し、内部のデータバッファーに一時格納する。入出力制御装置810は、外部入出力50を通じて出力コード{c(i,j)}をチップ400の外に出力する。こうして、中間出力{f(i,j)}をチップ内に閉じ込めておくことが可能となる。
あるいは、外部入出力50から入力コード{a(i)}が入力されると、入出力制御装置810は、入力コード{a(i)}をスクランブル装置890に渡す。ここで、式5に基づいて生成された中間コード{f(i)}は、中間コード用バッファー900に一時格納され、認証装置用制御装置880に引き渡される。認証装置用制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、チップ認証装置600から取得した乱数コード{d(i)}と中間コード{f(i)}とに応じ、式6に基づいて、出力コード{c(i)}を生成し、内部のデータバッファーに一時格納する。入出力制御装置810は、外部入出力50を通じて出力コード{c(i)}をチップ400の外に出力する。こうして、中間出力{f(i)}をチップ内に閉じ込めておくことが可能となる。
認証素子977は、MOS型トランジスタ、DRAMセル、不揮発性メモリセルトランジスタ、相変化メモリセル、抵抗変化メモリセル、磁気変化メモリセル、PN接合、ショットキー接合、キャパシタ、絶縁膜、抵抗など、一般的な半導体製造工程で同時に製造可能なデバイスやその部品であれば何でも良い。あるいは特殊にデザインされた微小構造でも使用可能である。
認証素子977を確率的に破壊する場合、破壊方法は、選択した素子に電気的なストレスを与えればよい。このとき、チップ上の全アドレスを選択することもできれば、必要に応じて一部のアドレスのみを選択して破壊パルスを印可することも可能である。
図22で“1”と“0”の割合がほぼ同じになると、図73の水平模様の乱雑さは増大する傾向がある。そのため、何らかの事情によりチップ認証装置に使える素子領域が制限される場合や、小容量製品のチップ認証装置を作成する場合には、できる限り、図22での“1”と“0”の割合を等しくする必要がある。たとえば、図36あるいは図37に示すように、破壊パルスを段階的に印可して“1”と“0”の割合を調整する方法がある。まず、第一パルス電圧を印可し、続いて検査をする。このとき、非破壊素子の数が多ければ、第二パルス電圧を印可する。検査後まだ非破壊素子の数が多ければ、さらに第三パルス電圧を印可して検査する。こうして、図36あるいは図37のように、破壊パルスを段階的に印可することによって、非破壊素子の数が段階的に減り破壊素子の数が段階的に増大して行く。両者の差が所定の範囲内に収まるところで破壊パルスの印可を中止する。
あるいは、パルス電圧をチップ認証装置の全素子に印可して続いて検査をする。このとき、非破壊素子の数が多ければ、非破壊素子のみ選択して再びパルス電圧を印可する。検査後まだ非破壊素子の数が多ければ、再び非破壊素子のみ選択してパルス電圧を印可する。この場合、破壊パルスの印可を繰り返すのは非破壊素子のみにすることが望ましい。破壊パルスを段階的に増大してもしなくても、非破壊素子は段階的に破壊され、“0”と“1”の割合は近づいてゆく。両者の差が所定の範囲内に収まるところで破壊パルスの印可を中止する。
破壊パルスの印可が終わった後、“0”でも“1”でもないもの“X”が残留している場合がある。このような場合、図35で説明した方法を用いて、“X”を除去すれば良い。
一般に、電子装置を構成するチップは一つとは限らない。図13のネットワークの一例を構成する第一、第二、…、第五の周辺ノードも、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図7では、周辺ノードである情報機器140が、第一のチップ110、第二のチップ120、…、第Nのチップ130から構成される。このうち、必ずしもすべてのチップが本願のチップ認証装置を搭載している必要はない。図7の例では、第一のチップ110のみがチップ認証装置60を搭載している。
以下、発明を実施するための最良の形態について、具体的に説明する。
上述してきたように、本願のチップ認証装置は、さまざまな方法を駆使することによって、物理的実態である半導体チップの固体認識を実現することが可能である。一方、半導体チップは、電子機器や情報機器の心臓部品であり、最小構成単位と考えることができる。したがって、上記(1)−(7)の条件を満たすチップ認証を用いて、電子機器や情報機器の物理的認証を実現できると考えられる。
図89に、チップ認証抽出装置が、チップ認証装置に入力認証コードQを入力し、出力認証コードRを受け取る方法の一例を示す。前記チップ認証装置は、一例として、図10の第一から第三の周辺ノード(410、420、430)に含まれる。前記チップ認証抽出装置は、図10の基幹ノード400に含まれる。
チップ認証装置は、複数の素子(セル)から構成されるセルアレイを含む。例えば、前記セルは、図39、図55および図56のようにPN接合であり、あるいは、図40、図57および図58のようにショットキー接合であり、あるいは、図41―43、図61―66、図92および図93のようにトランジスタであり、あるいは、図42、図63および図64のようにトランジスタとキャパシタからなるDRAMセルであり、あるいは、図43、図65および図66のように選択トランジスタであり、あるいは、図44、図59および図60のように抵抗であり、あるいは、図92のようにトランジスタと可変抵抗からなるReRAMセルあるいはPCRAMセルであり、あるいは、図93のようにトランジスタおよび磁気抵抗からなるMRAMセルあるいはSTT−MRAMセルであり、あるいは、図94、図98および図99のように電荷蓄積層付き不揮発性メモリセルであり、あるいは、図33、図53および図54のようにキャパシタであり、あるいは、図99、図100および図101のように可変抵抗である。
チップ認証装置は、上記セルアレイからデータを読み出すため、複数のビット線からなる全ビット線群と、複数のワード線からなる全ワード線群と、を有する。前記全ビット線群は更に複数のビット線グループに分割される。ただし、このビット線グループの数は全ビット線群内のビット線の数より少ない。前記全ワード線群は更に複数のワード線グループに分割される。ただし、このワード線グループの数は全ワード線群内のワード数より少ない。
一つのビット線グループおよび一つのワード線グループから前記セルアレイ上に一つの小ブロックが形成される。あるいは、一つのビット線グループおよび全ワード線群から一つの小ブロックが形成される。あるいは、一つのワード線グループおよび全ビット線群から一つの小ブロックが形成される。いずれにしろ、こうして前記セルアレイは複数の小ブロックに分割される。ただし、小ブロックの数(A)は、セルアレイを構成する全セル数より小さい。また、小ブロックは、それぞれ所定の数(B)のセルを含み、AとBの積は、前記セルアレイを構成する全セルの数に等しい。
前記複数の小ブロックを、更に第一および第二の小ブロックのグループに分割する。一方を冗長小ブロック群とし、他方を正規小ブロック群とする。前記冗長小ブロック群に属する小ブロックは、すべて冗長小ブロックである。前記正規小ブロック群に属する小ブロックは、すべて正規小ブロックである。こうして、前記セルアレイは、複数の冗長小ブロックおよび複数の正規小ブロックから構成される。また、前記セルアレイは、複数の小ブロックから構成される。
所定の検査によって、一つの正規小ブロックに少なくとも一つの不良ビットが含まれていることが発見された場合、その正規小ブロックを不良小ブロックと呼ぶ。不良小ブロックが発見された場合、その不良小ブロックを一つの冗長小ブロックと置き換えることが出来る。具体的には、一つの不良小ブロックに含まれる第一のセルに関するビット線およびワード線が同時に選択された場合、前記第一のセルに関するビット線を一つの冗長小ブロックに含まれる第二のセルに関するビット線に置き換え、前記第一のセルに関するワード線を前記第二のセルに関するワード線に置き換える。
前記第一のセルを含む不良小ブロックに含まれる第三のセルに関するビット線およびワード線が同時に選択された場合、前記第三のセルに関するビット線を前記第二のセルを含む冗長小ブロックに含まれる第四のセルに関するビット線に置き換え、前記第三のセルに関するワード線を前記第四のセルに関するワード線に置き換える。ただし、前記第一のセルおよび前記第三のセルが互いに異なるセルである場合、前記第四のセルが前記第二のセルとは異なるセルになるよう、前記不良小ブロックを前記冗長小ブロックに置き換えなければならない。
全正規小ブロックのうち、どの正規小ブロックに不良ビットが見つかり、不良小ブロックとして任意の冗長小ブロックに置き換えられるかは、前記セルアレイ上の不良ビットの発生分布による。ここで、不良ビットとは、人為的に発生したか非人為的発生したにかかわらず、所定の特性から一定以上逸脱した特性を示すビットの総称である。発生原因は多種多様であり、前記セルアレイ上のどのセルに発生するかは確率的である。したがって、前記セルアレイ上の不良ビットの分布は、物理的乱雑さ(ランダムさ)とみなすことが出来る。この物理的乱雑さは、物理乱数として前記セルアレイから所定の方法で読み出すことが可能である。読み出された物理乱数は、必要に応じて所定の基準で加工した後、前記セルアレイを含むチップから出力される。こうして、チップに固有の物理乱数をチップから抽出することができる。
前記不良ビットの分布は、チップの置かれた外部環境が変化しても可能な限り安定していることが望ましい。また、前記不良ビットの分布は、時間経過に対して可能な限り不変であることが望ましい。そのためには、前記不良ビットの分布を一度測定し、チップの内部メモリ等に保存すればよい。ただし、この内部メモリが外部環境の変化に対して可能な限り安定しており、時間経過に対して可能な限り不変であることが条件である。このような内部メモリは、一例として、ヒューズメモリなどがある。前記測定はチップの出荷前テストの際に行うことができる。
一方、前記複数の小ブロック、すなわち、前記複数の正規小ブロックおよび前記複数の冗長小ブロックは、それぞれ所定の方法で割り当てられたブロックアドレスにしたがって前記セルアレイ上に分布する。こうして、前記セルアレイはブロックアレイとなる。このブロックアレイ上のブロックアドレスが、前記小ブロックの前記ブロックアレイ上のアドレスに相当する。
前記セルアレイ上の不良ビットの分布が物理的にランダムであるということは、全正規小ブロックの集合から複数の不良小ブロックを選ぶ組み合わせが物理的にランダムであるということである。あるいは、前記セルアレイ上の不良ビットの分布が物理的に乱雑であるということは、全冗長小ブロックの集合から複数の冗長小ブロックを選んで前記複数の不良小ブロックと置き換える組み合わせが物理的に乱雑であるということである。
こうして、全正規小ブロックの集合から複数の不良小ブロックを選ぶ組み合わせが前記セルアレイを含むチップ(あるいは半導体チップ)に固有な物理的乱雑さ、すなわち、チップ(あるいは半導体チップ)に固有な物理乱数(固有乱数)であることがわかる。あるいは、全冗長小ブロックの集合から複数の冗長小ブロックを選んで前記複数の不良小ブロックと置き換える組み合わせが前記セルアレイを含むチップ(あるいは半導体チップ)に固有な物理的乱雑さ、すなわち、チップに固有な物理乱数(固有乱数)であることがわかる。どちらを選ぶかは数え方の違いによるものであって実質的な違いとして区別する必要はない。ここで紹介した数え方以外にも可能な数え方は複数あるが、いずれも実質的な違いとして区別する必要はない。
いずれにしろ、何らかの方法で前記セルアレイを含むチップから、そのチップに固有の物理乱数を取り出すことを抽出と呼ぶ。このようなチップは、前記固有の物理乱数を抽出するための抽出回路を有する。また、このように固有の物理乱数を抽出されるチップが前記チップ認証装置である。すなわち、前記チップ認証装置は前記抽出回路を有する。前記チップ認証装置は、さらに、前記入力認証コードから前記出力認証コードを合成する出力発生回路を有する。前記出力発生回路は、一例として、組み込み回路、あるいは、ファームウェアである。
こうして抽出された物理乱数は、一例として、図26の物理乱数(あるいは固有物理乱数){d(i,j)}である。あるいは、別の一例として、図76の物理乱数{d(i)}である。
前記チップ認証装置は、たとえば、図15の第一のチップ認証装置21あるいは第二のチップ認証装置を含む。あるいは、図16−18のチップ認証装置60を含む。前記チップ認証抽出装置は、たとえば、図10の基幹ノード400、図11―14の基幹ノード1400、図13−14の基幹ノード2400、図14の基幹ノード3400である。
なお、一般に、チップ認証は、チップの置かれた外部環境が変化しても可能な限り安定していることが望ましい。また、前記不良小ブロックの分布は、時間経過に対して可能な限り不変であることが望ましい。前記不良ビットがアセンブリ前に前記セルアレイ上に不可逆的に発生し、さらに、チップのアッセンブリ後は発生しない限り成り立つことは自明である。あるいは、前記不良小ブロックの分布を一度測定し、チップの内部メモリ等に保存すればよい。ただし、この内部メモリが外部環境の変化に対して可能な限り安定しており、時間経過に対して可能な限り不変であることが条件である。このような内部メモリは、一例として、ヒューズメモリなどがある。前記測定はチップの出荷前テストの際に行うことができる。
その他、本願のチップ認証装置が満たすべき条件について、以下図面を用いて更に詳細に説明する。

(第一の実施形態)
図89において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。
前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTおよび入力認証コードQが入力される。前記物理乱数抽出特殊テストコードTは、セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は、前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。
前記抽出回路は前記物理乱数を抽出し、その抽出結果Extを前記出力発生回路へ入力する。ここで、前記抽出結果Extは、前記指定コードに従って前記チップ認証装置に固有の物理乱数を出力するものである。より具体的には、チップ認証装置に含まれる前記セルアレイから前記物理乱数を読み出す。したがって、前記抽出結果Extは、指定付き物理乱数コードである。ただし、前記出力発生回路は、式7の関数GEN1に従い、前記入力認証コードQおよび前記抽出結果Extから出力認証コードRを作成し、前記チップ認証抽出装置へ出力する。このように、チップ認証抽出装置は、前記物理乱数抽出特殊テストコードT、前記指定コード、前記入力認証コードQ、および前記出力認証コードRから前記チップ認証装置の認証を行う。
R = GEN1 ( Q 、 Ext ) 式7
前記出力発生回路は、プログラム変更可能の場合もあるし、プログラム変更できない場合もある。前記出力発生回路がプログラム変更可能な場合、前記関数GEN1は、たとえば、書き換え可能不揮発性メモリに記録されたプログラムである。あるいは、FPGAなどの組み込み回路である。一方、前記出力発生回路がプログラム変更できない場合、前記関数GEN1は、たとえば、ROMなどに記録されたプログラムである。あるいは、ゲート接続変更不可能な組み込み回路である。
前記物理乱数コードがチップ認証装置に固有である限り、任意の2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。また、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードT、前記指定コード、および前記入力コードCを含む。図10の認証は、一例として、前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードT、前記指定コード、および前記入力コードCを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コード、および前記入力コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードT 、前記指定コード、および前記入力コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDがそれぞれ異なる入力コードを含むものとすれば、出力信号AおよびBは相異である。あるいは、異なる指定コードを用いれば出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードTを用いれば、出力信号AおよびBは相異である。したがって、前記(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記入力コードの要素の順序や前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られている。したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品汎用メモリのメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードR、前記入力信号Q、および前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第二の実施形態)
図90において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTが入力される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。この一例では、図89から入力認証コードQが省略されている。したがって、式7で用いられた前記関数GEN1は、式8のGEN2のように変更になる。以下、(第一の実施形態)と共通する説明は省略する。
R = GEN2( Ext ) 式8
前記抽出回路は前記物理乱数を抽出し、その抽出結果Extを出力発生回路へ入力する。ここで、前記抽出結果Extは、前記チップ認証装置に固有の物理乱数を指定コードに従って出力するものである。より具体的には、前記チップ認証装置に含まれるセルアレイから前記物理乱数を読み出す。前記セルアレイは、一例として、図23や図69などに見られるもである。前記セルアレイを構成する認証素子は、図33、図38−44、図46−49、図51−68、図92−101などに見られるものである。したがって、前記抽出結果Extは、指定付き物理乱数コードである。ただし、前記出力発生回路は、式8の関数GEN2に従い、抽出結果Extから出力認証コードRを作成し、前記チップ認証抽出装置へ出力する。このように、チップ認証抽出装置は、物理乱数抽出特殊テストコードT、指定コードおよび出力認証コードRからチップ認証装置の認証を行う。ただし、省略された入力認証コードQの機能の一部またはすべてを、前記指定コードあるいは前記物理乱数抽出特殊テストコードTに含めることが可能である。
前記出力発生回路は、プログラム変更可能の場合もあるし、プログラム変更できない場合もある。前記出力発生回路がプログラム変更可能な場合、前記関数GEN2は、たとえば、書き換え可能不揮発性メモリに記録されたプログラムである。あるいは、FPGAなどの組み込み回路である。一方、前記出力発生回路がプログラム変更できない場合、前記関数GEN2は、たとえば、ROMなどに記録されたプログラムである。あるいは、ゲート接続変更不可能な組み込み回路である。
前記出力認証コードRがチップ認証装置に固有である限り、2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。前記チップ認証装置は、一例として、前記セルアレイ、前記抽出回路、および前記出力発生回路を含む。一例として、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図10の認証は、一例として、前記前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDが異なる前記指定コードを含むものとすれば、出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードTを用いれば、出力信号AおよびBは相異である。したがって、前記(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られており、したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数は、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品の汎用メモリのメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。下記具体的に例を挙げて説明する。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードR、および前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第三の実施形態)
図91において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTが入力される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。この一例では、図90から更に出力発生回路が省略されている。したがって、式7および式8で用いられた前記関数GEN1および前記関数GEN2は省略され、式9のように変更される。これは、実際には何もしないダミー変換である。以下、(第一の実施形態)と共通する説明は省略する。
R = Ext 式9
式9に従い、前記抽出回路は前記物理乱数を抽出し、その抽出結果Extをそのまま出力認証コードRとする。ここで、前記抽出結果Extは、前記指定コードに従って前記チップ認証装置に固有の物理乱数を出力されるものである。より具体的には、前記チップ認証装置に含まれるセルアレイから前記物理乱数を読み出す。したがって、前記抽出結果Extは、指定付き物理乱数コードである。このように、チップ認証抽出装置は、物理乱数抽出特殊テストコードT 、指定コード、および出力認証コードRからチップ認証装置の認証を行う。ただし、省略された入力認証コードQの機能の一部またはすべてを、前記指定コードあるいは前記物理乱数抽出特殊テストコードTに含めることが可能である。
前記出力認証コードRがチップ認証装置に固有である限り、任意の2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。前記チップ認証装置は、一例として、前記セルアレイ、前記抽出回路、および前記出力発生回路を含む。一例として、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードT および前記指定コードを含む。図10の認証は、一例として、前記出力認証コードRである。図10の認証は、一例として、前記前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードT 、前記指定コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードT および前記指定コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDが異なる前記指定コードを用いるものとすれば、出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードT を用いれば、出力信号AおよびBは相異である。したがって、(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られており、したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数は、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品の汎用メモリ製品のメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。下記具体的に例を挙げて説明する。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードRおよび前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第四の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
上述のように、P-CIDを生成するために外部から周辺ノードに入力される入力コードは、一例として、ネットワーク上で動作する何らかのアプリを起動するためのパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
別の一例として、前記入力コードは、ネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
更に別の一例として、前記入力コードは、ネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
あるいは、更に別の一例として、入力コードは、何等かの物理的プロセスによりチップ認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための物理乱数抽出特殊テストコードなどである。ここで物理乱数抽出特殊テストコードは、少なくともチップ内部の前記セルアレイ上のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。
あるいは、前記入力コードとは、前述した複数の入力コードの組み合わせにより構成されるものであっても良い。
一例として、前記入力コードは、図89の入力認証コードQである。あるいは、前記入力コードは、図89の入力認証コードQに含めることが可能である。あるいは、前記入力コードは、図89の物理乱数抽出特殊テストコードTに含めることが可能である。あるいは、前記入力コードは、(第一の実施形態)の指定コードに含めることが可能である。
一例として、前記入力コードは、図90あるいは図91の物理乱数抽出特殊テストコードTに含めることが可能である。あるいは、(第二の実施形態)あるいは(第三の実施形態)指定コードに含めることが可能である。

(第五の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図82では、MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を、CPUなどと共同で働く主記憶装置(DRAMなど)に搭載する。この場合、本願のP-CIDがこのCPUにリンクしたチップの認証となる。こうしてイーサネットカードに記録されたMACアドレスを置き換えることが可能となる。
P-CIDは、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。こうして、イーサネットカードのメディア・アクセス・コントローラー(MAC)用演算処理チップ3020もP-CID制御装置3030に置き換える。
一例として、図83に示すように、P-CID3070は、本願に関するチップ認証装置によって生成され、MACアドレスのうち下位の24ビット(図81のシリアル番号3072)を置きかえることが望ましい。すなわち、ベンダーコード3071は、すでに広く利用されているMACアドレスのベンダーコードをそのまま利用する。こうして、図83のように、P-CIDアドレス3073が生成される。受信ノード側は、後述する指示ビットを調べることで受信したフレームがMACアドレスを採用しているか、あるいは、本願のP-CIDを採用しているかを事前に判定することが可能である。
一般に、P-CID3070のビット数は、チップ認証装置を構成する認証素子977の数によって決まる。たとえば、認証素子用アレイ960が、図23のような構成となる場合、P-CIDのビット数は、素子行数Lと素子列数Mの積で決まる。したがって、P-CIDアドレスのビット数は、LとMの積に24を足し合わせたものになる。あるいは、図29のような構成の場合、P-CIDのビット数は、Nの2乗によって決まる。したがって、P-CIDアドレスのビット数は、Nの2乗に24を足し合わせたものになる。あるいは、図74のような構成の場合、P-CIDのビット数はNである。あるいは、図77のような構成の場合、P-CIDのビット数はNである。あるいは、DRAMのリダンダンシーを用いる場合、P-CIDのビット数は、リダンダンシー用のメモリ領域のビット数によって決まる。すなわち、順列を使って算出した情報量から必要なビット数が直ちに判明する。
しかしながら、上述した図23あるいは図29のような構成の場合、図35のように、ソフト破壊モード“X”の混入によって、P-CIDのビット数は理想的な場合より少なくなることがある。事前の検査、あるいは、他の何らかの方法により、このような破壊モードが混入する確率の上限が事前にわかっている場合、この上限から換算されるビット数にマージン分のビット数を加味し、P-CIDのビット数を再定義することが望ましい。こうして、P-CIDのビット数は、図22の白と黒の市松状のパターンの格子点数で決まることになる。
P-CIDのビット数は、シリアル番号のビット数24ビットより多くとも良いし、少なくとも良い。あるいは、同じでも良い。少ない場合、P-CIDの利用は、閉じた物理的ネットワークに限ることが望ましい。たとえば、工場の製造ラインを管理するためのシリアル番号の替わりに用いることが可能である。このように、P-CIDのビット数は、必ずしも所定のビット数に決められている訳ではない。したがって、プリアンブルの最後に数ビットをP-CIDのビット数を指示するために添付することが望ましい。このP-CIDのビット数を指示するためのビット(指示ビット3074)は、ベンダーコード3071の前(上位)であっても良いし、後ろ(下位)であっても良い。図84は、指示ビット3074がベンダーコード3071の前(上位)に添付された場合の一例を示している。図85は、指示ビット3074がベンダーコード3071の後ろ(下位)に添付された場合の一例である。図84、および、図85は、いずれも指示ビット3074の長さが6ビットとして図示したものであるが、一般に、指示ビット3074の長さは6ビットに限らない。いずれにしろ、指示ビットの有無を確認することにより、フレームがP-CID形式化どうか判明するだろう。
指示ビット3074の導入により、P-CIDアドレスが扱えるアドレスの数は可変となる。したがって、任意の管理者が、閉じた物理的ネットワークを構築する際に短いP-CIDアドレスを使い、その分節約されたビット数をプロトコル・データ・ユニットのデータ領域に割り当てることが可能となる。こうして、一つのプロトコル・データ・ユニットで運べる情報量が多くなる。これは一回のデータ通信で運べるデータ量が多くことを意味する。あるいは、任意のベンダーが限られた数の製品を出荷する場合にも、短いP-CIDアドレスを使い、その分節約されたビット数をプロトコル・データ・ユニットのデータ領域に割り当てることが可能となる。
物のインターネットの場合、グローバルアドレスの数が非常に多くなる。この問題に対応するには、指示ビット3074によってP-CIDアドレスのビット数を増やし、扱えるアドレスの数を増やす必要がある。こうしてP-CIDアドレスのビット数が増えると、その分一つのプロトコル・データ・ユニットで運べる情報量が少なくなる。これは、一回のデータ通信で運べるデータ量が少なくなることを意味する。しかしながら、無数の物理アドレスを必要とする物のインターネットが登場するような将来には、ネットワーク技術の進歩に対応するためプロトコル・データ・ユニットの規格が変更されることになるだろう。このとき、一つのプロトコル・データ・ユニットに割り当てられるビット数が増大する可能性が高い。MACアドレスを使い続けた場合、このような変化に柔軟に対応することは難しいが、本願の指示ビット付きのP-CIDアドレスでは、物理アドレス数の急激な増大に柔軟に対処することが可能である。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされる。ここで、オペレーションシステムが、イーサネットカードあるいはチップ認証装置3040を検知した場合、オペレーションシステムはそのチップ認証装置3040から物理チップ認証(P-CID3070)を読み出し、イーサネットカードに含まれるP-CID制御装置3030に書き込む。P-CID制御装置3030は、図83、図84、図85に示すようなP-CIDアドレスを添付したフレームを、信号伝達路1000を介してデータリンク層で送受信する。

(第六の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図86は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を中央演算処理装置(CPU)に搭載する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。上述したように、中央演算処理装置(CPU)混載方式を採用する場合、本願のチップ認証装置を構成するための認証素子としては、標準CMOSプロセス準拠のものが望ましい。たとえば、図41の電界効果トランジスタ983を認証素子とする方式が望ましい。そのほか、図39のPN接合986、図40のショットキー接合987、あるいは、図47および図48のように配線パターンを応用した例も可能である。上述の例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。P-CIDは、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。こうしてイーサネットカードのメディア・アクセス・コントローラー(MAC)用演算処理チップ3020もP-CID制御装置3030に置き換えられる。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされる。ここで、オペレーションシステムが、イーサネットカードあるいはチップ認証装置3040を検知した場合、オペレーションシステムはそのチップ認証装置3040から物理チップ認証(P-CID3070)を読み出し、イーサネットカードに含まれるP-CID制御装置3030に書き込む。P-CID制御装置3030は、図83、図84、図85に示すようなP-CIDアドレスを添付したフレームを、信号伝達路1000を介してデータリンク層で送受信する。

(第七の実施形態)
上記実施形態では、メディア・アクセス・コントローラー(MAC)用演算処理チップ3020をP-CID制御装置3030に置き換えている。しかしながら、この実施形態では、MACアドレスを使用しないので、イーサネット形式もそれに応じて変更する必要がある。そのようなフォーマットの変更を急激に行えば混乱が予想されるので、物理チップ認証(P-CID)からMACアドレスへの変換装置、すなわち、P-CID/MAC変換装置3050を使用することがネットワーク移行期では必要になる。このような過渡的な需要に対応するため、典型的な例を以下に上げておく。
図87は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を主記憶装置に搭載する。このチップ認証装置3040は、物理チップ認証(P-CID)を生成するものである。さらに、中央演算処理装置(CPU)は、このP-CIDを使って生成したP-CIDアドレス3073からMACアドレスへの変換を司るP-CID/MAC変換装置3050の機能を有する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用い、図22のように2次元コード型の乱数コードを利用する方式が望ましい。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーに使用されるヒューズメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。上述の例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。P-CID3070は、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、外部からの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。しかしながら、この例では、上述したように、P-CIDを使って生成したP-CIDアドレスからMACアドレスへの変換を司るP-CID/MAC変換装置3050の機能を有する。こうして、P-CID制御装置3030に置き換えずに、メディア・アクセス・コントローラー(MAC)用演算処理チップ3020をイーサネットカードに採用できる。また、P-CID/MAC変換装置3050は、必ずしも物理的実態の伴う装置である必要はない。起動時にCPUにロードされて動作するプログラムの一種であってもかまわない。あるいは、同様の動作を実現するファームウェアであってもかまわない。もちろん、モジュールの一部としてCPUに混載することも可能である。
パーソナルコンピューターの電源を入れると、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされ、中央演算処理装置(CPU)がオペレーションシステムを起動する。ここでオペレーションシステムが、イーサネットカードあるいはチップ認証装置3040ことを察知した場合、オペレーションシステムは、そのチップ認証装置3040から物理チップ認証(P-CID)を読み出し、CPUに混載されているP-CID/MAC変換装置3050に転送する。P-CID/MAC変換装置3050は、このP-CIDから生成されるP-CIDアドレスをMACアドレスに変換し、オペレーティングシステムは、この変換によって生成されたMACアドレスをメディア・アクセス・コントローラー(MAC)用演算処理チップ3020に書き込む。こうして、メディア・アクセス・コントローラー(MAC)は、従来のイーサネット形式で、信号伝達路1000を介してフレームを送受信することが可能となる。自明なので特に説明をしないが、P-CID/MAC変換装置3050をCPUに搭載しつつ、図86と同様にチップ認証装置3040をCPUに搭載してもよい。

(第八の実施形態)
図88は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を主記憶装置(CPU)に搭載する。このチップ認証装置3040は、物理チップ認証(P-CID)を生成するものである。さらに中央演算処理装置(CPU)は、このP-CIDからP-CIDアドレスを生成し、 図83、図84、図85などの方法でフレームを構成する機能を司る、P-CID制御装置3060の機能を有する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。さらに、P-CID制御装置3060を有するため,メディア・アクセス・コントローラー(MAC)用演算処理チップ3020も必要なくなる。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。こうして、イーサネットカードを取り除くことが望ましい。主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用い、図22のように2次元コード型の乱数コードを利用する方式が望ましい。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーに使用されるヒューズメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。この例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。また、P-CID制御装置3060は、物理的実態の伴う装置である必要はない。起動時にCPUにロードされて動作するプログラムの一種であってもかまわない。あるいは、同様の動作を実現するファームウェアであってもかまわない。もちろん、モジュールの一部としてCPUに混載することも可能である。
パーソナルコンピューターの電源を入れると、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされ、中央演算処理装置(CPU)がオペレーションシステムを起動する。ここでオペレーションシステムが、チップ認証装置3040を検知した場合、オペレーションシステムは、チップ認証装置3040が生成する物理チップ認証(P-CID)を読み出し、CPUに混載されているP-CID制御装置3060に転送する。P-CID制御装置3060は、このP-CIDを使って上述の方法で生成したフレームを、信号伝達路1000を介して送受信することが可能となる。自明なので特に説明をしないが、P-CID制御装置3060をCPUに搭載しつつ、図86と同様にチップ認証装置3040をCPUに搭載してもよい。
現在、イーサネットカード(あるいは、LANカード)だけではなく、イーサネットカードの機能を備えた通信用チップも出回っている。このような通信用チップは、パーソナルコンピューターより小型の電子機器、あるいは、情報機器に搭載される。あるいは、SIMカードと一体化させることも不可能ではない。本願のチップ認証装置はチップに混載可能であり、物理チップ認証(P-CID)を生成するものである。したがって、イーサネットカード(あるいはLANカード)の代わりに限らず、通信用チップ、あるいは、SIMカードなどに採用することが可能である。

(第九の実施形態)相互認証
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図102は、本願の物理チップ認証(P-CID)を相互認証に応用する方法を示すものである。第一のノード2001および第二のノード2002は、図1、図3、図5、図8、図9と同じものであるとする。あるいは、第一および第二のチップ認証装置は、図89−91の何れかと同等である。あるいは、前記第一および第二のチップ認証装置は、図7および図8の第一のチップ110である。あるいは、前記第一および第二のチップ認証装置は、図78のチップ10あるいは図79のチップ400である。第一および第二のチップ認証抽出装置は、図89−91のチップ認証抽出装置のいずれかである。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図10の基幹ノード400に含むことが出来る。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図14の第一から第三の基幹ノード(1400、2400、3400)に含むことが出来る。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図26および図76の基幹ノード400に含むことが出来る。
図102の入力信号は、少なくとも図89の物理乱数抽出特殊テストコードTおよび入力認証コードQを含む。あるいは、前記入力信号は、少なくとも図90および図91の物理乱数抽出特殊テストコードTを含む。あるいは、前記入力信号は、少なくとも図10および図27の入力(P、S、T…)を含む。あるいは、前記入力信号は、少なくとも図11の共通パスコード1410を含む。あるいは、前記入力信号は、少なくとも図14の第一から第三の共通パスコード(1410、2410、3410)を含む。あるいは、前記入力信号は、少なくとも図15あるいは図18の入力信号Q含む。あるいは、前記入力信号は、少なくとも図16の入力信号Cあるいは入力信号Dを含む。あるいは、前記入力信号は、少なくとも図17の入力信号Q1からQn+1含む。あるいは、前記入力信号は、図19にリストアップされている入力コードの少なくとも一つと同一とみなすことができる。あるいは、前記入力信号は、少なくとも図24―26、図30、図74―77の入力コード{a(i)}を含む。あるいは、前記入力信号は、少なくとも図24―26、図30の入力コード{b(i)}を含む。
図102の出力信号は、少なくとも図89−91の出力認証コードRを含む。あるいは、前記出力信号は、少なくとも図10の認証(P1、S1、T1…)、(P2、S2、T2…)、(P3、S3、T3…)…を含む。あるいは、前記出力信号は、少なくとも図27の認証(P1、S1、T1…)、(P1’、S1’、T1’…)を含む。あるいは、前記出力信号は、少なくとも図12の第一から第三の認証(4101、4201、4301)を含む。あるいは、前記出力信号は、少なくとも図14の第一から第三の認証(11、12、13)を含む。あるいは、前記出力信号は、少なくとも図15および図16の出力信号Aあるいは出力信号B含む。あるいは、前記出力信号は、少なくとも図18の出力信号Rを含む。あるいは、前記出力信号は、図19にリストアップされている登録コードの少なくとも一つと同一とみなすことが出来る。あるいは、前記出力信号は、少なくとも図25、図26、および図30の出力コード{c(i,j)}を含む。あるいは、前記出力信号は、少なくとも図75および図76の出力コード{c(i)}を含む。あるいは、前記出力信号は、少なくとも図24−26、および図30の乱数コード{d(i,j)}を含む。あるいは、前記出力信号は、少なくとも図75および図76の乱数コード{d(i)}を含む。
前記第一のノード2001は、前記第一のチップ認証装置と前記第一のチップ認証抽出装置を含む。前記第二のノード2002は、前記第二のチップ認証装置と前記第二のチップ認証抽出装置を含む。前記第二のチップ認証抽出装置は、第二の入力信号を前記第一のチップ認証装置に入力する。前記第一のチップ認証装置は、前記第二の入力信号に応じて前記第二のチップ認証抽出装置に第一の出力信号を返信する。前記第一のチップ認証抽出装置は、第一の入力信号を前記第二のチップ認証装置に入力する。前記第二のチップ認証装置は、前記第一の入力信号に応じて前記第一のチップ認証抽出装置に第二の出力信号を返信する。
前記第一のチップ認証抽出装置は、前記第一のチップ認証装置と同じ半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記チップは前記第一のノードに含まれる。あるいは、前記第一のチップ認証抽出装置は、前記第一のチップ認証装置とは別の半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記第一のチップ認証装置を含むチップと前記第一のチップ認証抽出装置を含むチップは、ともに前記第一のノードに含まれる。あるいは、前記第一のチップ認証装置は複数の半導体チップ(あるいはチップ)で構成することも可能である。あるいは、前記第一のチップ認証抽出装置は、複数の半導体チップ(あるいはチップ)から構成される一種のチップセットである。前記第二のチップ認証抽出装置は、前記第二のチップ認証装置と同じ半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記チップは前記第二のノードに含まれる。あるいは、前記第二のチップ認証抽出装置は、前記第二のチップ認証装置とは別の半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記第二のチップ認証装置を含むチップと前記第二のチップ認証抽出装置を含むチップは、ともに前記第二のノードに含まれる。あるいは、前記第二のチップ認証装置は複数の半導体チップ(あるいはチップ)で構成することも可能である。あるいは、前記第二のチップ認証抽出装置は、複数の半導体チップ(あるいはチップ)から構成される一種のチップセットである。

(第十の実施形態)相互認証による物理ノードのネットワークトポロジー
図102の第一のチップ認証装置及び第一のチップ認証抽出装置を搭載した第一のノード2001を第一の物理ノード(IoTデバイス)とみなし、第二のチップ認証装置及び第二のチップ認証抽出装置を搭載した第二のノード2002を第二の物理ノード(IoTデバイス)とみなす。前記第一の物理ノードは、更に、第一の内部メモリを搭載している。前記第一のチップ認証抽出装置は、物理ノードのネットワークにつながっている他の物理ノードの認証情報を収集し、前記第一の内部メモリに書き込み、記録し、保存する。これを第一の辞書とする。したがって、前記第一の辞書は、前記第一の物理ノードの認証情報を含む必要はない。前記第二の物理ノードは、更に、第二の内部メモリを搭載している。前記第二のチップ認証抽出装置は、物理ノードのネットワークにつながっている他の物理ノードの認証情報を収集し、前記第二の内部メモリに書き込み、記録し、保存する。これを第二の辞書とする。したがって、前記第一の辞書は、前記第一の物理ノードの認証情報を含む必要はない。このように、チップ認証抽出装置が、収集した認証情報を内部メモリに保存されている辞書に記録することを、辞書への登録と呼ぶ。第二のチップ認証抽出装置は、第一のチップに搭載されている第一のチップ認証装置に適当な入力信号(C2)を送付し、レスポンス(R1)を受け取り、この(C2R1)のセットを、第二の物理ノードが保有する辞書に事前に記録されている入力信号と出力信号の組み合わせ(C2R3)と比較する。(C2R3)と(C2R1)が一致すれば、第一の物理ノードは事前に登録されていた物理ノードとして認証される。一致しなければ、第一の物理ノードを認証されていないものとして、アクセスを拒否するか、必要に応じて、再登録する。
前記実施形態のように、第一および第二の物理ノード間の相互認証を可能にすることにより、物理ノードのネットワークトポロジーをよりフレキシブルにすることが可能である。すなわち、図13のように物理ノード同士の直接の通信を制限する必要はなくなる。一例として、図103のように、7つの物理ノードからなるネットワークを考える。7つの物理ノードは5つの参加ノード(第一から第五の参加ノード411−451)と第一及び第二の管理ノード(1401および2401)に分かれる。周辺ノードを参加ノードに対応させ、基幹サーバーを管理ノードに対応させると、図103のネットワークトポロジーが図13と異なることがわかる。たとえば、図103では第二の参加ノード421及び第四の参加ノード441、あるいは第三の参加ノード431および第五の参加ノード451間の通信が認められている。このフレキシビリティにより、後述するように、IoTデバイス(物理ノード)の中央管理と分散管理の共存が可能となる。これを、部分的中央管理、あるいは、部分的分散管理と呼べる。
本願に関する物理ノードのネットワークトポロジー(IoTトポロジー)の概念を説明するため、参加ノードおよび管理ノードを導入してノードの種別を改める必要がある。ある物理ネットワーク(IoTネットワーク)に接続するすべての正規の物理ノードを、管理ノードと参加ノードに分類する。このIoTトポロジーでは、管理ノードは自分が管理する物理ネットワークに参加する参加ノードを正しく(物理的に)限定する。(例えば、図103の1401および2401を参照。)管理ノードの主な役目は偽造ノードによる参加ノードのなりすましを防ぐことである。すなわち、管理ノードは、自分が管理している物理ネットワークに参加する参加ノードがすべて成りすまされていないことを可能な限り保証する。また、参加ノードは自分が参加すべきネットワークの管理ノードを正しく(物理的に)限定する。これは、不正ノードへの接続に誘導され秘密情報などを盗まれる危険性を抑えるためである。
管理ノードが図102のように周辺ノード間の通信をモニターする場合、管理ノードは物理ネットワークを管理する中心的サーバーである基幹サーバーと同等とみなすことができる。しかしながら、図103では第二の参加ノードと第四の参加ノードの通信を必ずしもモニターしていない。この場合管理ノードは必ずしも基幹サーバーとは同等でなくともよい。
参加ノードは物理ネットワークの全体の管理は行なわずに物理ネットワークに参加するすべての物理ノードであり、必ずしも周辺ノードのことを意味しない。
管理ノードも参加ノードも、どちらも、図102のように本願のチップ認証装置とチップ認証抽出装置の両方を有する物理ノードである。この点で、参加ノードは周辺ノードとは異なる特徴を持つ。すなわち、周辺ノードはチップ認証装置さえ搭載していればよく、必ずしもチップ認証抽出装置を搭載していない。
管理ノードも参加ノードも、どちらも内部メモリ(あるいは内蔵メモリ)を有する。該内部メモリは、図10および19の入力コード(402、42)に対応するチャレンジ(C)、および、図10および19の出力コード(403、43)に対応するレスポンス(R)の組、入出力セット(CR)を定義し、それを内部メモリに保存されている辞書に記録することが可能である。したがって、CRは1セットのみに限らないので、内部メモリには複数のCRの組合せがそれぞれ対応する形で保存されることになる。対応の仕方は、一例として、図19の入力コード42(C)と図19の登録コード43(R)の組み合わせのようになる。さらに具体的に説明すると、RTSDEDDTAG!$&D(()とC(Y6;sHWLnp!L+5P[+@で一つの組み合わせ(CR1)となる。RTSDEDDTAG!$&D(()とwG;x'5@/O(GM";ODS+Kで別の一つの組み合わせ(CR2)となる。0D$zD)X=Fpgd[_&x.*nと_p]Q|9ecbe{2Ieq=!?Eで、更に別の一つの組み合わせ(CR3)となる。もちろん、CR1、CR2、CR3のうち、どの任意の二つをとっても区別されれなければならない。このような(CR)の集合を{CR}で記述し、辞書と呼ぶ。チップ認証抽出装置の重要な役割の一つは、閉じた物理ネットワークから(CR)を収集し、前記内部メモリに記録し、辞書{CR}を作成し、保存し、必要に応じて編集することである。
(参加ノード)
周辺ノードと異なる参加ノードの一つの特徴は、自分以外の物理ノードのチャレンジ(C)およびレスポンス(R)の組(CR)を自分の内部メモリ(あるいはストレージ)に保存できることである。このCRの組み合わせは複数あるので、一定の条件でCRを集めた集合{CR}は物理ネットワークの一種の辞書となる。このように参加ノードが保持する辞書を「局所辞書」と呼ぶ。ただし、局所辞書は自分が参加する物理ネットワーク上のすべての物理ノードを網羅している必要はない。なぜなら、参加ノードは自分が参加する物理ネットワークの全体の管理をすることは要求されていないからである。また、参加ノードは、自分自身に関するCRを保存しない。参加ノードは、自分が参加するネットワーク内に運用基点を有するネットワークサービスを利用し、その運用基点の真偽にのみ興味がある。この参加ノードは、例えば図102の第二のノード2002(あるいは第二の物理ノード2002)であり、この運用基点は、例えば図102の第一のノード2001(あるいは第一の物理ノード2001)である。第二の物理ノードは局所辞書{CR}を内部メモリに保存している。第二の物理ノードに搭載される第二のチップ認証抽出装置は、該内部メモリに保存されている局所辞書{CR}のチャレンジの中から第一の物理ノード(運用基点)に対応する入力(C)を選び、第一の物理ノード(運用基点)に第二の入力信号として入力する。第一の物理ノードに搭載される第一のチップ認証装置は、第二の入力信号(C)を受け取り、第一の物理ノードに搭載されているチップに固有な乱数を用いて出力(R)を生成し、それを第二の物理ノードに搭載される第二のチップ認証抽出装置に第一の出力信号として返送する。第二の物理ノードは、前記第二のチップ認証抽出装置が受け取った出力(R)と前記内部メモリに保存されている局所辞書{CR}のうち対応する前記入力(C)に対応するRを比較し、この二つのRが不一致であれば偽と判定する。一致する場合第二の物理ノードは前記第二のチップ認証抽出装置を用いてさらに別の第二の入力信号を選び同様の検査を複数回行うか、あるいは第一の物理ノードを真と判定する。
参加ノードが自分自身に関するCRの組み合わせを保存しないのは、もし保存しているとチップ認証装置を使わずに入力されたCに対し対応するRを返答することができるようになるからである。逆に言えば不正ノードは、局所辞書に自信のCRを含んでいなければならない。正規のノードは、チップ認証装置を使って入力されたCからRを生成するので、CRを自分の局所辞書に登録しておく必要がない。この特徴を生かして偽造ノードの自動検索が可能となる。たとえば、第一の物理ノードが第二の物理ノード(参加ノード)の局所辞書{CR}を読んだとき、第一の物理ノードが保存している第二の物理ノードに関するCRの組がこの局所辞書{CR}の中に含まれているかどうかを確認すればよい。含まれていれば第二の物理ノードは偽造ノードであると認定される。偽造ノードの自動検索方法の具体例は、例えば図20および図21に示してあるが、必ずしもこれらの例に限らない。
(管理ノード)
自分が管理する物理ネットワークに参加するすべての参加ノードの入力(C)と出力(R)の組み合わせ(CR)を自分の内部メモリに記録する。自分が管理する物理ネットワークに参加するすべての参加ノードのCRの組を集めたもの{CR}を「大域辞書」と呼ぶ。ただし、この管理ノードのCRをこの管理ノードが所有する大域辞書に含める必要はない。
管理ノードのメモリに記録された「大域辞書」にCRが登録されていない参加ノードは、自動検索によって発見され、前記管理ノードが管理する物理ネットワークから自動的に排除される。こうして、大域辞書の記録された物理ノードのみで構成された物理ネットワークを「閉じた物理ネットワーク」と呼ぶ。大域辞書に登録されていない物理ノードはこの閉じた物理ネットワークに参加できないので、管理ノードは自分が管理する物理ネットワークに参加する参加ノードを正しく(物理的に)限定することができる。
閉じた物理ネットワークに参加ノードを登録するには、その参加ノードに関するCRを大域辞書に登録する必要がある。登録される参加ノードに渡されるCは管理ノードが決め、Rは登録される参加ノードに搭載されるチップに固有の乱数と前記Cの組み合わせによって決定される。
(登録方法)
ここで、一般に第二の物理ノードが第一の物理ノードに関するCRの組を第二の物理ノードの内部メモリに保存(登録)し、第二の物理ノードに局所辞書を作成する方法を図102の例を用いて説明しておく。ただし、この登録方法の説明において、第一の物理ノードは管理ノードでも参加ノードでもどちらでもよい。同様に第二の物理ノードは管理ノードでも参加ノードでもどちらでもよい。
まず、第二のノード2002(第二の物理ノード)が第一のノード2001(第一の物理ノード)に入力(C)を渡す。この入力(C)は第二の入力信号に相当する。この入力(C)は第二の物理ノードが任意の方法あるいは所定の方法で決定できる。第一の物理ノードに搭載される第一のチップ認証装置はこの入力(C)を受け取り、この入力(C)及び第一のチップ認証装置を構成するチップに固有な乱数から出力(R)を生成する。すなわち、この出力(R)は第一の出力信号に相当し、所定の方法により、第一の物理ノードに搭載されるチップに固有の乱数と第二の物理ノードが決定する前記入力(C)の組み合わせによって決定される。第一のチップ認証装置はこの出力(R)を第二の物理ノードに搭載される第二のチップ認証抽出装置に返送する。こうして第二の物理ノードは、この入力(C)と出力(R)の組み合わせCRを第二の物理ノードの内部メモリに保存する。この作業は、一つの第一の物理ノードに複数回繰り返すことが可能である。また、この作業は、複数の第一の物理ノードに複数回くりかえすことが可能である。こうして、複数の(CR)の組み合わせ{CR}が第二の物理ノードの内部メモリに保存されることになる。
第二の物理ノードが参加ノードであればそれは局所辞書である。第二の物理ノードが管理ノードであればそれは大域辞書と呼ぶ。大域辞書も局所辞書も第二の物理ノード(その辞書を所有する物理ノード)のCRは含まない。なぜなら、第二の物理ノードに対応する入力(C)を決定するのは、第二の物理ノード以外の物理ノードなので、第二の物理ノードが第二の物理ノードに対応するCRを決定することは不可能である。
前記チップに固有な乱数は、たとえば、前記第一のチップ認証装置に搭載されるメモリセルアレイの中の不良ビットの分布から抽出することができる。または、図22のように、前記第一のチップ認証装置に搭載される認証素子アレイ(例えば図23,24、29、69、72、74、77など)から上述した方法(図34−37、70、71など)を用いて抽出することができる。前記認証素子の例は、図33、38−68、92−101などを用いて説明できる。あるいは、ここで限定されている以外の別の方法を用いて抽出することができる。第一の物理ノードに搭載されるチップに固有の乱数と第二の物理ノードが決定する前記入力(C)の組み合わせから前記出力(R)を決定する、前記所定の方法は、例えば、図24−32、あるいは、図72−79を用いて説明できる。あるいは、ここで限定されている以外の別の方法を用いて決定することができる。
ところで、管理ノードは、一つの閉じた物理ネットワークに一つとは限らない。複数の管理ノードが一つの閉じた物理ネットワークに参加する参加ノードを管理することが可能である。この場合任意の二つの管理ノードが同じ一つの閉じた物理ネットワークを管理し、前記閉じた物理ネットワークに参加するすべての参加ノードがこれら二つの管理ノードの管理下に入る。また、これら二つの管理ノードは、互いに相手を管理することも可能である。さらに、一つの管理ノードが何らかの事由で動作不能になったとしても他方が物理ネットワークの管理を行うことが可能である。
周辺ノードは大域辞書も局所辞書も所有しない。参加ノードおよび管理ノードは、基幹ノードの一種である。図10の入力コード402および登録コード403の組み合わせだけでは大域辞書も局所辞書も定義できない。大域辞書とは、管理ノードが自ら管理する物理ネットワーク(閉じた物理ネットワーク)に参加する前記管理ノード以外のすべての物理ノードのCRの組を集め、前記管理ノードの内部メモリに保存する集合{CR}のことである。局所辞書とは、閉じた物理ネットワークに参加する参加ノードが、同じ閉じた物理ネットワークに参加する他の物理ノードのCRの組み合わせを集め、前記参加ノードの内部メモリに保存する集合{CR}のことである。局所辞書は、前記閉じた物理ネットワーク全体を網羅する必要はない。ただし、大域辞書も局所辞書も、自分以外のCRを含まないようにしなければならない。局所辞書および大域辞書を総称して単に「辞書」と呼ぶことができる。
(内部メモリ)
内部メモリに要求される基本的な性質の一つは外部から読むことが可能なことである。コピーされても問題はない。事実上辞書は、大域辞書も局所辞書も公開されているのと同じである。しかしながら、大域辞書も局所辞書も外部から不正に編集できないようにしておく必要はある。したがって内部メモリは、ワンタイムプログラマブルメモリ(OTP)であることが望ましい。
あるいは、辞書は、大域辞書も局所辞書も別の強固な方法で守っておくことが望ましい。この場合、ある物理ノードの辞書(大域辞書あるいは局所辞書)に関係するハッシュ値および電子署名は、その物理ノードに物理的に紐づけされた秘密鍵を用いなければ更新できない。その物理ノードの辞書の最新状態を含む辞書のブロックハッシュを生成し、複数の独立の物理ノードに共有させ、不正に改ざんするためには辞書のブロックハッシュの最新状態を共有するすべての物理ノードを欺かなければならないようにしておくことが望ましい。これは、従来のブロックチェーンとは異なる、辞書のブロックチェーンを生成する。
この目的のためには、本願のチップ認証装置を活用することが望ましい。例えば、図104で説明するように、第一の物理ノードの管理者(一例として、後述するセキュリティノード)が第三のチップ認証抽出装置などを用いて第三の入力信号を第一のチップ認証装置に送信する。第一のチップ認証装置は、第三の入力信号及び第一の物理ノードに含まれるチップに固有の物理的乱雑さ(固有乱数)から第三の出力信号を生成する。この第三の出力信号は鍵生成装置に渡され、前記鍵生成装置は所定の鍵生成アルゴリズムに応じて秘密鍵及び公開鍵を生成する。前記秘密鍵及び公開鍵は、暗号化を司るセキュリティモジュールに引き渡される。前記セキュリティモジュールおよび前記鍵生成装置は、自明なので特に図示しないが、図111のセキュリティチップに含むことができる。前記セキュリティチップは、こうして、ハッシュ値を生成し、秘密鍵を用いて電子署名を生成し、内部で生成したセキュリティ状態を記憶しておくためのメモリを含むこともできる。このセキュリティチップを用い、第一の物理ノードの内部メモリに保存されている辞書(大域辞書あるいは局所辞書)を読み込み、所定のアルゴリズムに従って前記辞書に関連するハッシュ値及び電子署名を生成する。第一の物理ノードは、前記電子署名、前記ハッシュ値、および前記公開鍵をブロックチェーンが活用されているネットワークに公開すればよい。ここで最も特徴的なことは、第一のチップ認証装置の出力から生成した秘密鍵を用いて辞書の共有に関する電子署名生成するところである。
図105−110は、前記所定のアルゴリズムの一例を示す図である。第0の物理ノードを、前記ブロックハッシュを作るための起点とする。ただし、第0の物ノードは、少なくとも第0のチップ認証装置と、鍵生成装置と、第0の辞書(大域辞書あるいは局所辞書)を保管する内部メモリを有する。その他特に図示しないが、第0のチップ認証抽出装置を有することができる。
まず、何らかの方法でこの第0の物理ノードに入力信号を入力する。第0の物理ノードは、前記入力信号を第0のチップ認証装置で受信し、第0の物理ノードに搭載されるチップに固有の物理的乱雑さ(固有乱数)から第0の出力信号を生成する。この第0の出力信号は鍵生成装置に転送され、該鍵生成装置は、この第0の出力信号を入力として所定のアルゴリズムに従い第0の秘密鍵および第0の公開鍵を生成する。第0の公開鍵と第0の辞書を合成し、適当なハッシュ関数(一例としてSHA−256など)を用いて第0のハッシュ値を生成する。次に、第0の物理ノードは、第0の秘密鍵を用いて第0のハッシュ値と第一の物理ノード(受信側)の公開鍵(第一の公開鍵)をまとめて暗号化し、第0の電子署名を生成する。最後に、第0の物理ノードは、第0のハッシュ値と第0の電子署名を受信側である第1の物理ノードに送付する。第一の物理ノードは、さらに第二の物理ノードに対して同様の処置をすることができる。ただし、第一のハッシュ値を作るとき、第1の公開鍵、第1の辞書、さらに、第0の電子署名とハッシュ値を合成する点のみが異なる。これは、第0の物理ノードが起点であり、受信したハッシュ値および電子署名がないためである。
図106では、第Nの物理ノード(送信側)から第N+1の物理ノード(受信側)への転送の一例を示している。
まず、何らかの方法でこの第Nおよび第N+1の物理ノードにそれぞれ入力信号を入力する。この二つの入力信号は等しくても良いが等しくなくてもどちらでも良い。第Nの物理ノードは、前記入力信号を第Nのチップ認証装置で受信し、第Nの物理ノードに搭載されるチップに固有の物理的乱雑さ(固有乱数)から第Nの出力信号を生成する。この第Nの出力信号は鍵生成装置に転送され、該鍵生成装置は、この第Nの出力信号を入力として所定のアルゴリズムに従い第Nの秘密鍵および第Nの公開鍵を生成する。第Nの公開鍵、第Nの辞書、および、第N−1の電子辞書とハッシュ値と、を合成し、適当なハッシュ関数(一例としてSHA−256など)を用いて第Nのハッシュ値を生成する。次に、第Nの物理ノードは、第Nの秘密鍵を用いて第Nのハッシュ値と第N+1の物理ノード(受信側)の公開鍵(第N+1の公開鍵)をまとめて暗号化し、第Nの電子署名を生成する。最後に、第Nの物理ノードは、第Nのハッシュ値と第Nの電子署名を受信側である第N+1の物理ノードに送付する。第N+1の物理ノードは、さらに第N+2の物理ノードに対して同様の処置をする。ただし、Nは、Lを最大とする自然数であるとする。その他特に図示しないが、第Nの物理ノードは、第Nのチップ認証抽出装置を有することができる。また、第Nのハッシュ値を生成する際、第Nの電子署名と第N−1のハッシュ値のどちらか一方を省くことも可能である。本願の特徴は、第Nのハッシュ値を生成する際第Nの辞書を含めてハッシュ化するところであり、従来のブロックチェーンと異なり、少なくとも第N−1のハッシュ値と第N−1の電子署名のどちらか一方を第Nのハッシュを生成するとき省略することが可能である。これは、本願の目的が、ハッシュ値として公開鍵に紐づけられ暗号通貨の転送ではなく、辞書のブロックチェーンを構成することだからである。図107は、第N−1のハッシュ値を省略して第Nのハッシュ値を生成する例を図示したものである。図108は、第N−1の電子署名を省略して第Nのハッシュ値を生成する例を図示したものである。図109は、第N−1の電子署名および第N−1のハッシュ値を省略して第Nのハッシュ値を生成する例を図示したものである。
上述したハッシュ値および電子署名の生成・転送をいつ行うかはシステム設計による。一例として、第Nの辞書が更新されたとき、第Nの物理ノードが第Nのハッシュ値および第Nの電子署名を生成し、任意に選んだ第N+1のノードに転送することが望ましい。
いずれにしろNが最大値であるLに到達すると、図110のようになる。ここで、第Lの物理ノードとは、このような一連の転送の最終到達点(最新)である。したがって、第Lのハッシュ値は、一連の辞書の最新情報をすべて内包している。この第Lのハッシュ値を一連の転送履歴の代表コードとし、メルクルの根と呼ぶ。あとは通常のブロックチェーンのアルゴリズムに従い、このメルクルの根からブロックハッシュおよびブロックチェーンを生成してゆけばよい。
公開鍵と秘密鍵を生成する所定のアルゴリズムとは、例えば、第Nの出力信号に適当な整数を加算してその和が素数になるかどうか確認する。この操作をその和が素数になるまで繰り返す。次に第Nの出力信号から適当な整数との差を計算しそれが素数になるかどうか確認する。この操作をその差が素数になるまで繰り返す。こうして二つの素数を生成したのちそのかけ合わせる。あとはRSA法に従い秘密鍵と公開鍵を生成すればよい。
図105−110の入力信号は、一例として、管理ノードのチップ認証抽出装置が外部からの入力として与えることが望ましい。あるいは、後述するセキュリティノード(図111参照)が与えるセキュリティパラメータとすることも可能である。いずれにしろ、図111のハッシュモジュールは、図104のセキュリティモジュールに含むことができる。なお、前記セキュリティモジュールは、図105−110のハッシュ値を生成するために使用することも可能である。このように、一つのモジュールに複数の機能に活用することが可能である。これは、セキュリティモジュール搭載による製品価格の増加を下げる上で重要なアドバンテージとなる。あるいは、第四の実施形態で説明したように、P-CID(入出力セット)を生成するために外部から周辺ノードに入力される入力コードを利用してもよい。
(セキュリティ状態)
前記チップ認証装置に入力する入力信号を特にチャレンジ(C)と呼ぶ。このチャレンジ(C)に対応して前記チップ認証装置が生成する出力信号を特にレスポンス(R)と呼ぶ。上述して来たように、CとRの組み合わせ(CR)は、チップ認証装置を構成するチップに固有な乱雑さ(固有乱数)に依存して決まる。このCRは、チップに固有な乱雑さに依存しつつ更にセキュリティ状態に応じて変化する。
固有乱数の例は、例えば、図22および26の市松模様、図25、26、30のd(i、j)、図35のデータの例、図73および76のランダムな水平模様、図75および76のd(i)などである。
ある物理ノードを局所辞書もしくは大域辞書(単に「辞書」)に登録する際、登録される物理ノードのセキュリティ状態|Qj>によって、前記物理ノードに入力されるチャレンジ(C)に対するレスポンス(R)の値は変わる。たとえば、C|Q1> = R1|Q1⟩、C|Q2> = R2|Q2>、… C|Qn> = Rn|Qn>、などのように書ける。ここで、状態|Q>への添え字jは1からnまでの整数とする。
セキュリティ状態は、各物理ノードに渡されるセキュリティパラメータと各物理ノードに搭載されているチップに固有な乱雑さとの組み合わせによって決まる。セキュリティパラメータは管理ノードによって各物理ノードに渡される。セキュリティパラメータを各物理ノードに渡す管理ノードを特にセキュリティノードと呼ぶ。あるいは、セキュリティノードに大域辞書を持たせる必要がないときは別途指定された参加ノードでもよい。セキュリティノードは、一つの閉じたネットワークの中に複数あって構わない。
各物理ノードのセキュリティ状態は、セキュリティノードがセキュリティパラメータを更新し各物理ノードに渡すことによって変更できる。このようなセキュリティ状態の更新は、セキュリティノードが随時任意に行うことができる。一つの閉じたネットワークにおいてセキュリティ状態の更新が行われる度に局所辞書も大域辞書も更新される。
セキュリティパラメータの導入方法の第一の例は、すでに説明してある。例えば、図23および74の認証素子アレイを、図29および77のようにスクランブル装置セルアレイ614とチップ認証装置アレイ611に分割するための二つの整数の組み合わせ(N、K)である。ここでKはスクランブル装置セルアレイ614に割り当てられる行数であり、Nはチップ認証装置セルアレイ611に割り当てられる行数である。
図111は、セキュリティパラメータの導入方法の第二の例の概念を説明する図面であるである。第一の物理ノードは少なくとも一枚のチップを搭載しており、このチップは、認証素子からなる認証素子用セルアレイ(あるいは単にセルアレイ)を少なくとも搭載しており、その認証素子用セルアレイに固有の乱雑さから乱数(固有乱数)を生成する。
認証素子の例は、例えば、図33、38−52、69、72、74、77、92−96、および99の認証素子977、図53および54のキャパシタ982、図55および56のPN接合986、図57および58のショットキー接合、図59および60の抵抗985、図61および62のトランジスタ983、図63および64のトランジスタ983とキャパシタ982の組み合わせ、図65および図66の選択トランジスタ984、図67の選択トランジスタ、図68のトランジスタ983、図97および98の電荷蓄積送付き不揮発性メモリセル988、および図100と101の可変抵抗981などである。
認証素子用セルアレイの例は、例えば、図23、24、69、72、74などの認証素子用アレイ960や、図89−91、109−114のセルアレイである。
第一の物理ノードは、さらにセキュリティチップを搭載している。前記セキュリティチップハッシュモジュールを搭載している。前記チップのセルアレイと前記セキュリティチップのハッシュモジュールから第一のチップ認証装置を構成する。このように、第一のチップ認証装置は、ともに第一の物理ノードに搭載される少なくとも二つのチップによって構成される。
前記セキュリティノードは、前記セキュリティパラメータとしてノンス値(たとえばn)をこのハッシュモジュールに渡す。前記ノンス値を生成するため、前記セキュリティノードはノンス値生成モジュールを搭載することができる。あるいは、前記セキュリティノードに搭載されているチップ認証抽出装置の出力信号をノンス値として送付することも可能である。この場合、図111の第二の物理ノードと第三の物理ノードは、ノンス値とチャレンジを入れ替えれば同様であることが自明である。すなわち、セキュリティノードの役割は、他の参加ノードや管理ノードでも代替えできる。
いずれにしろ、このハッシュモジュールは、前記固有乱数とこのノンス値からハッシュ値を生成しそれをセキュリティ状態(Qn)として出力する。第二の物理ノードに搭載される第二のチップ認証抽出装置からチャレンジ(C)をこの第一の物理ノードに入力すると、前記第一のチップ認証装置は、上述のようにして決定されたセキュリティ状態(Qn)に対してレスポンス(Rn)を出力する。こうして第二のチップ認証抽出装置は、このCとRnの組み合わせ(CRn)を得ることができる。
(セキュリティ状態の変更)
セキュリティノードは、新たなノンス値(m)を第一の物理ノードに渡し、第二の物理ノードにセキュリティパラメータを変更したことを告げる。第二の物理ノードは、第一の物理ノードの認証を検査する。このときに得る(CRm)の組み合わせと自分が保存している辞書(大域辞書あるいは局所辞書)の中の第一の物理ノードに対応する部分(CRn)を比較する。不一致であれば自分が所持する辞書に登録されている他の物理ノードの認証も検索する。こうして認証を検査した複数の物理ノードのCRの組み合わせが不一致であれば、確かにセキュリティパラメータが更新されたものとして辞書に新たなCRの組み合わせ(CRm)をアペンドするか、あるいは、(CRn)に上書きする。上書きとアペンドの選択は当該の閉じた物理ネットワークを設計し保守し管理するシステムエンジニアの判断による。
(セキュリティパラメータ偽造の防御)
ハッカーがセキュリティパラメータを不正に更新できないようにするため、第一の物理ノードは、あらかじめノンス値を送ってくるセキュリティノードのチップ認証を行う必要がある。このため、セキュリティノードは少なくとも第三のチップ認証装置を搭載している。第一の物理ノードに搭載されている第一のチップ認証抽出装置が第三のチップ認証装置を検査する方法は、図102で説明した第一のチップ認証抽出装置が第二のチップ認証装置を検査する方法と同様である。
第二の物理ノードは、セキュリティパラメータが更新されたことを告知してくるセキュリティノードのチップ認証を行う必要がある。このため、第二の物理ノードに搭載されている第二のチップ認証抽出装置は、セキュリティノードに搭載されている第三のチップ認証装置を検査する。第二のチップ認証抽出装置が第三のチップ認証装置を検査する方法は、図102で説明した第二のチップ認証抽出装置が第一のチップ認証装置を検査する方法と同様である。
セキュリティノードは、セキュリティパラメータの更新をハッカーの物理ノードに告知しないよう、第二の物理ノードのチップ認証を行う必要がある。このため、セキュリティノードに搭載されている第三のチップ認証抽出装置は、第二の物理ノードに搭載されている第二のチップ認証装置を検査する。第三のチップ認証抽出装置が第二のチップ認証装置を検査する方法は、図102で説明した第一のチップ認証抽出装置が第二のチップ認証装置を検査する方法と同様である。
セキュリティノードは、ハッカーの物理ノードに更新されたセキュリティパラメータを送付しないよう、第一の物理ノードのチップ認証を行う必要がある。このため、セキュリティノードに搭載されている第三のチップ認証抽出装置は、第一の物理ノードに搭載されている第一のチップ認証装置を検査する。第三のチップ認証抽出装置が第一のチップ認証装置を検査する方法は、図102で説明した第二のチップ認証抽出装置が第一のチップ認証装置を検査する方法と同様である。
ハッカーが閉じた物理ネットワーク内の一部の物理ノードの認証を盗んだとしてもセキュリティパラメータを更新することによって盗んだ認証が無効化されるので、セキュリティノードは随時任意に上述の方法でセキュリティパラメータを更新することが望ましい。また、セキュリティノードは一つの閉じた物理ネットワークに複数存在して構わない。いつどこでだれがセキュリティパラメータを更新するかなるべく予測困難にすることが望ましい。
例えば、一つの閉じた物理ネットワークに二つのセキュリティノードが存在する場合を考えよう。これら二つのセキュリティノードがそれぞれ異なるセキュリティパラメータをこの閉じた物理ネットワーク内に配布すると、管理ノードは二つの異なる大域辞書を持ち、各参加ノードは二つの異なる局所辞書を持つことがある。
このよう場合においてチップ認証の混乱を避けるためには、図105において、例えば、第二のチップ認証抽出装置が第一のチップ認証装置にチャレンジ(C)を送る際次の手続きを事前に行うこととする。1)一つのセキュリティノードを選択する。2)そのセキュリティノードに、第一のチップ認証装置にノンス値を送信するよう要請する。3)第二のチップ認証抽出装置からチャレンジ(C)を第一のチップ認証装置に送信する。あとは通常通りの認証手続きをとればよい。図112は、図110の第二のチップ認証抽出装置が具体的に行うべき処方箋の一例を示した図面である。まず、チップ認証を検査する物理ノードとセキュリティノードを選択する。続いて、選択したセキュリティノードに要請し、選択した物理ノードにセキュリティパラメータを送信させる。次に、選択した物理ノードにチャレンジ(C)を送信する。さらに続いて、選択した物理ノードからレスポンス(R)を受け取り、選択した物理ノードのチップ認証(CR)を得る。そして、このCRと、所有する辞書(大域辞書あるいは局所辞書)の選択した物理ノードに対応する部分とを比較する。一致すれば認証終了である。一致しなければ、検査した物理ノードは辞書に登録された物理ノードとは別のものであると認識し、検査した物理ノードに対してあらかじめ設定した必要な手続きを取る。一例として、ネットワークから排除する、あるいは、必要に応じて検査した物理ノードのネットワークへの登録手続きを取る、などである。
図113は、一枚のチップに第一のチップ認証装置を集積した例を示す図面である。このように固有乱数を生成するためのセルアレイおよびハッシュモジュールを、第一のチップ認証抽出装置とともに一枚のチップに集積することが可能である。ただし、この場合チップの開発費は高くなるので、図111のような構成にも意味はある。
あるいは、自明なので特に図示しないが、与えられたノンス値(n)から前記ハッシュモジュール及びセキュリティ状態(Qn)を生成するのはエミュレータでも構わない。これは、この部分をソフトウェアで代用できることを意味している。ただし、少なくとも前記固有関数はハードウェアであるチップ固有の乱雑さから生成しなければならない。
(偽造ノードの自動検索および自動排除)
上述したように、一つの閉じた物理ネットワークに属するすべての物理ノードは、管理ノードか参加ノードにかかわらず、自分のCR(自己CR)を自分の辞書(大域辞書あるいは局所辞書)に含んではいけない。したがって、管理ノードの数だけ異なる大域辞書が存在しうる。(それぞれ自己CRを含んでいない点で異なる。)管理ノードのうちセキュリティパラメータの更新をつかさどるものを特にセキュリティノードと呼んだ。
これに対し、物理ノードの自動検索を行い、その中に不正ノードが発見されればその不正ノードを自動的に該閉じた物理ネットワークから排除(自動排除)する管理ノードを、特に検索ノードと呼ぶ。検索ノードも一つの物理ネットワーク内に複数存在して構わない。ここで、検査ノードが所持する大域辞書を特に検索辞書と呼ぶ。つまり、検索辞書も複数存在して構わない。
まず、一つの検索ノードと一つの検索辞書が存在する場合を考えよう。図114は、自動検索および自動排除の方法の具体例の一例である。まず、検査する物理ノードを選択する。このとき検索辞書の中から選択された物理ノードに対応するCR(検査CR)を読み出しておく。続いて選択された検査対象の物理ノードの内部メモリを読み出し、その中に検査CRがないか調べる。つまり、検査CRと検査対象が所持する辞書{CR}とを比較する。一致していれば不正判定し、不正判定を受けた検査CRをすべての管理ノードの大域辞書及びすべての参加ノードの局所辞書から削除するよう閉じた物理ネットワーク内のすべての物理ノードに指示する。不正判定でなければ次の検査対象を選択できるかどうか調べる。
不正ノードが検査対象に成りすますためには検査CRが必要である。一方、検査対象が不正でなければチップ認証装置が検査CRを認証の都度に生成するので検査CRを内部メモリに保存しておく必要はない。
不正判定を受けた検査CRをすべての管理ノードの大域辞書及びすべての参加ノードの局所辞書から削除するよう閉じた物理ネットワーク内のすべての物理ノードに指示し、次の検査対象を選択できるかどうか調べる。すべての物理ノードを検索していれば作業終了とする。そうでなければ次の検査対象を選択する。
(管理の共同性)
管理ノードは、時にセキュリティパラメータのメンテナンスを行うセキュリティノードであり、時に前記自動検索・自動排除を行う検索のノードである。またある時には、管理ノードはセキュリティノードかつ検索ノードである。
3つの閉じた物理ネットワークにそれぞれ一つの管理ノード(A、B、C)が存在する場合を考えよう。図115参照。これら3つの管理ノードは時にセキュリティノードであり、時に検索ノードであり、時にセキュリティノード兼検索ノードである。
図115において、領域Aは管理ノードAの管理範囲である。領域Bは管理ノードBの管理範囲である。領域Cは管理ノードCの管理範囲である。管理範囲A,B、Cが同時に重なり合う領域は、ABCの共同管理領域(管理領域ABC)である。AとBの管理範囲が重なり合う部分はAとBの共同管理領域(管理領域AB)である。BとCの管理範囲が重なり合う部分はBとCの共同管理領域(管理領域BC)である。CとAの管理範囲が重なり合う部分はCとAの共同管理領域(管理領域CA)である。
管理領域ABCを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはA、B、C3つの管理ノードが存在する。
管理領域ABを新に一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはAとB2つの管理ノードが存在する。
管理領域BCを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはBとC2つの管理ノードが存在する。
管理領域CAを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはCとA2つの管理ノードが存在する。
Aに管理され、新たにBおよびCに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードAが存在する。
Bに管理され、CおよびAに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードBが存在する。
Cに管理され、AおよびBに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードCが存在する。
領域Aまたは領域Bを新たに一つの閉じた物理ネットワークとみなすとき、物理ノードAおよび物理ノードBはともにこの閉じた物理ネットワークの大域辞書を所有できないので管理ノードではない。しかしながら、物理ノードAの局所辞書と物理ノードBの局所辞書が共同でこの一つの物理ネットワーク全体(領域Aまたわ領域B)を網羅することができれば、参加ノードAおよび参加ノードBによってこの閉じた物理ネットワークを共同で管理することが可能である。このように、実際には管理ノードがなくても参加ノードの連携による管理が可能である。これは、閉じた物理ネットワークにおける、物理ノードの中央管理と分散管理の共存を可能とする。このとき、参加ノードAの局所辞書が領域Aのマップを定義している。参加ノードBの局所辞書が領域Bのマップを定義している。
このように二つの異なる参加ノードで一つの閉じた物理ネットワークを共同管理する場合、セキュリティパラメータの更新・メンテナンスや自動検索・自動排除等は、上述の説明において管理ノードを参加ノードに置き換え、大域辞書を局所辞書に置き換えれば同様である。ただし、これら二つの参加ノードの局所辞書はそれぞれが管理する領域のマップを定義する。そしてこの二つの局所辞書によって定義されるマップが閉じた物理ネットワークの全体を網羅することが必要である。これは、一つの閉じた物理ネットワークを二つに分割した例である。
領域Aまたは領域Bまたは領域Cを新たに一つの閉じた物理ネットワークとみなすとき、物理ノードAおよび物理ノードBおよび物理ノードCはどれもこの閉じた物理ネットワークの大域辞書を所有できないので管理ノードではない。しかしながら、物理ノードAの局所辞書(領域Aのマップ)と物理ノードBの局所辞書(領域Bのマップ)と物理ノードCの局所辞書(領域Cのマップ)が共同でこの一つの物理ネットワーク全体(領域Aまたわ領域Bまたは領域C)を網羅することができれば、参加ノードAおよび参加ノードBおよび参加ノードCによってこの閉じた物理ネットワークを共同で管理することが可能である。このように、実際には管理ノードがなくても参加ノードの連携による管理が可能である。これは、一つの閉じた物理ネットワークを三つに分割した例である。
一つの閉じた物理ネットワークは、上述のように複数の管理領域に分割することが可能である。このように複数の異なる参加ノードで一つの閉じた物理ネットワークを共同管理する場合、セキュリティパラメータの更新・メンテナンスや自動検索・自動排除等は、上述の説明において管理ノードを参加ノードに置き換え、大域辞書を局所辞書に置き換えれば同様である。ただし、これら複数の参加ノードの局所辞書はそれぞれが管理する領域のマップを定義する。そしてこの複数の局所辞書によって定義されるマップが閉じた物理ネットワークの全体を網羅することが必要である。いずれにしろ、管理領域あるいは共同管理領域を定義することによって、閉じた物理ネットワークの領域が定義できる。この領域にアクセスできるかどうかは、本願の方法でチップ認証されるチップを搭載しているかどうかにかかわっている。こうして、本願の閉じたネットワークの概念を用いることによって、物理的ファイヤーウォールを形成することが可能となる。あえて「物理的」としたのは、論理ノードではなく、この管理領域内で管理されるのが物理ノードそのものだからである。また、複数の管理ノードが共存できるので、セキュリティノードと検査ノードを異なる管理ノードで受け持つことが望ましい。これは、管理権限を分散させることを目的としており、民主主義の三権分立の考え方に近い。
こうして、一つまたは複数の管理ノードによる中央管理下に置かれた物理ノードのみから構成される閉じた物理ネットワークを、物理的ファイヤーウォールで囲むことができる。この物理的ファイヤーウォールの内側に存在する物理ノードにリンクする公開鍵(論理アドレス)と辞書を用いて、辞書のブロックチェーンによる論理的分散管理を行うことができる。こうして、中央管理と分散管理を共存させた強固な物理ネットワークが実現できる。
(チップ認証装置の分割設計)
本願のチップ認証装置は複数のチップに分割することができる。図116はその一例である。この図では、チップ認証装置が第一および第二の二つのチップに分割されている。第一のチップには前記固有乱数を生成するために必要なセルアレイ(あるいは認証素子用セルアレイ)が搭載されている。第二のチップには、第21のモジュールおよび第22のモジュールが搭載されている。図111の例に相当する。
図117は、別の一例を示す図面である。この図では、第一のチップに第21のモジュールとセルアレイ(あるいは認証素子用セルアレイ)が搭載されている。第二のチップには第22のモジュールが搭載されている。
図118は、更に別の一例を示す図面である。この図では、チップ認証装置が一枚のチップで構成されている。第21および22のモジュールとセルアレイ8あるいは認証素子用セルアレイ)のすべてが前記一枚のチップに搭載されている。図113の例に相当する。
上記第21および第22のモジュールには、例えば、鍵生成装置(図104−110)、ハッシュモジュール(図111および113)、チップ認証装置(図102等)、抽出回路(図89−91等)、乱数発生装置601(図26及び76等)、のコード発生装置602(図26及び76等)、606(図28等)、乱数発生装置605(図28等)、入出力制御装置800(図78等)、入出力制御装置810(図79等)、スクランブル装置890(図79等)、中間コード用バッファー900(図79等)、認証装置用制御装置880(図79等)、出力発生回路(図89、90等)などの中から設計仕様に応じて選択することができる。ただし、認証装置(図102等)あるいは抽出回路(図89−91等)を含むことが特に望ましい。
図119および図120は、更に別の一例を示す図面である。この図では、チップ認証装置が第一から第三の3枚のチップで構成されている。図119との違いは、第一のチップにセルアレイ(あるいは認証素子用セルアレイ)以外のモジュールの有無である。
上記第41−43のモジュール、あるいは、上記第51および第52のモジュールには、例えば、チップ認証装置(図102等)、抽出回路(図89−91等)、乱数発生装置601(図26及び76等)、のコード発生装置602(図26及び76等)、606(図28等)、乱数発生装置605(図28等)、入出力制御装置800(図78等)、入出力制御装置810(図79等)、スクランブル装置890(図79等)、中間コード用バッファー900(図79等)、認証装置用制御装置880(図79等)、出力発生回路(図89、90等)などの中から設計仕様に応じて選択することができる。ただし、認証装置(図102等)あるいは抽出回路(図89−91等)を含むことが特に望ましい。

(その他)
CPUと共同で働く主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用いることが望ましい。この場合、一例として、図22のように2次元コード型の乱数コードを利用する方式が可能である。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。
上述した実施形態において、説明のために用いられたMOS型トランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、前記第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極と、から構成される。同じく説明のために用いられた不揮発性メモリセルトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、前記第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。同じく説明のために用いられた選択トランジスタは、一例として、前記不揮発性メモリトランジスタの層間絶縁膜の一部もしくは全てを層間導電層に置き換えたものである。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。NOR型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、NAND型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、NAND型の素子配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
上述した実施形態において、説明のために用いられたPN接合986は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、MOS型トランジスタや不揮発性メモリセルトランジスタあるいは選択トランジスタにも自動的に形成されている。
上述した実施形態において、説明のために用いられたショットキー接合987は、半導体と導電体を接触させたものである。PN接合も、ショットキー接合も、ダイオード接合の一種である。
上記において、MOS型トランジスタ、不揮発性メモリセルトランジスタ、選択トランジスタ、PN接合、およびショットキー接合等の構造を説明するために用いた第一導電型半導体基板は、半導体基板の広い領域に作成された第一導電型拡散層(通常ウェル)で置き換えることも可能である。
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
チップ認証装置3040が生成する、物理チップ認証(P-CID)は、通信伝達路1000に転送する前に、一時的にキャッシュメモリなどに保存して利用することが望ましい。また、本願の一例によれば、基幹ノードと周辺ノードが認証接続するには、まず、基幹ノードが所定のパスコードを周辺ノードに送り、その返信である出力(例えばP-CIDアドレスあるいはP-CID)を該基幹ノードに事前登録する必要がある。以後、この基幹ノードは、該周辺ノードと認証接続するために前記所定のパスコードとそれに対応するチップに固有の物理アドレス(あるいはP-CID)の組み合わせを用いることになる。本願ではチップに固有の物理アドレス(あるいはP-CID)を周辺ノードの不揮発性記憶領域に保存する必要はなく、そのため遠隔操作によって周辺ノードのチップに固有の物理アドレス(あるいはP-CID)を不正に取得し、編集することが非常に難しくなる。また、別の一例では、基幹ノードが所有するパスコードの代わりに、周辺ノードのユーザーが所有するPINコードを用いることも可能である。更に、このPINコードは、周辺ノードのオペレーティングシステムと連動させることも可能である。例えば、オペレーティングシステムの起動や待機状態(スリープモード)からの復帰などにも用いることが可能である。
この発明によれば、一例として、電子装置のネットワークを、周辺ノードと、周辺ノードの登録状況を管理する基幹ノードとに分割し、基幹ノードは中央管理とし、中央管理の手が行き届かない周辺ノードには、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、このチップ認証装置が生成する、物理チップ認証を用いて、周辺ノードへの遠隔攻撃を効率よく未然に防ぎ、ネットワークシステム全体のセキュリティを向上し、さらに、物理的実態を伴う、物のインターネット上のノードの物理アドレスをフレキシブルに運用することが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置(ノード)間の通信接続であり、特定のシステムの内か外かに関わらない。
本願のチップ認証装置が生成する物理チップ認証(P-CID)は、物理的実態を伴うチップ認証として利用することが可能であり、サプライチェーンに流通しているチップのトレーサビィリティに活用したり、偽造チップ問題の対策に応用したり、MACアドレスを補完してLANの管理を容易にしたり、あるいは、MACアドレスを置き換える新しい物理アドレスを提供することが可能である。その上、アドレス領域のビット数が可変であるため、将来のネットワーク技術の進歩に柔軟に対応することが可能となる。
あるいは、別の一例として、図89−91のチップ認証装置は、少なくとも、物理乱数を抽出するセルアレイを含むチップおよび抽出回路を含むチップからなるチップセットである。あるいは、図89−91のチップ認証装置は、少なくとも物理乱数を抽出するセルアレイを含むチップ、抽出回路を含むチップ、および出力発生回路を含むチップと、からなるチップセットである。あるいは、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイを含むチップと、抽出回路および出力発生回路を含むチップと、からなるチップセットである。
あるいは、別の一例として、図89−91のチップ認証装置は、少なくとも、物理乱数を抽出するセルアレイを含むメモリチップおよび抽出回路を含むチップからなるチップセットである。あるいは、図89−91のチップ認証装置は、少なくとも物理乱数を抽出するセルアレイを含むメモリチップ、抽出回路を含むチップ、および出力発生回路を含むチップと、からなるチップセットである。あるいは、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイを含むメモリチップと、抽出回路および出力発生回路を含むチップと、からなるチップセットである。
あるいは、別の一例として、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイ、抽出回路、および出力発生回路を含むチップである。
あるいは、別の一例として、基幹ノードは、入力コード402および登録コード403を内部メモリ401に記録し、更にチップ認証抽出装置(たとえば図102の第二のノードの第二のチップ認証抽出装置)を有している。周辺ノードは、チップ認証装置60(たとえば図102の第一のノードの第一のチップ認証装置)を有している。ところで、基幹ノードにチップ認証装置を追加すると、図102の第二のノードのようになる。この第二のノードは、前記内部メモリ401のほかに第二のチップ認証装置および第二のチップ認証抽出装置を有する。一方、周辺ノードにチップ認証抽出装置を追加すると、図102の第一のノードのようになる。この第一のノードは第一のチップ認証装置のほかに第一のチップ認証抽出装置を有する。このように、周辺ノードと基幹ノードは、前記入力コード402および登録コード403を記録した前記内部メモリ401の有無によって区別できる。一方、図102のように、それぞれチップ認証装置およびチップ認証抽出装置を有する2つのノードは、互いに相手を認証することが可能である。これは、基幹ノード同士の相互認証をする際に便利である。また、周辺ノード同士の相互認証するためにも利用できる。
(乱数コードの外部生成)
図121から図125に示すように、チップ外部で別途生成した乱数コードをチップ認証装置のセルアレイに書き込み、保存することも可能である。ただし、前記別途生成した乱数コードは段落0124および0125で説明した(出力の予測不可能性)を満たさなければならない。また、前記別途生成した乱数コードと同じコードを別のチップ認証装置に保存することは避けなければならない。また、偶然に二つのチップのセルアレイに同じ乱数コードが書き込まれることも避けねばらない。さらに、前記別途生成した乱数コードの改ざんを防ぐため、前記別途生成した乱数コードを保存するセルアレイは書き換え不可としなければならない。このような条件を満たすことにより、前記別途生成した乱数コードもチップに固有な固有乱数であるとみなすことが可能であり、本願の概念を満たすすべての実施形態においてチップに固有な固有乱数として使用可能である。
こうしてチップに固有であるとみなされた乱数コードは本願の固有乱数の別の一例となり、本願のチップ認証装置(図8、図15、図16―18、図26−28、図76、図78、図79、図89−91、図102、図104−111、図113、図116−125等)への入力信号あるいは入力コード(チャレンジ)に対応して前記チップ認証装置からの出力信号あるいは出力コード(レスポンス)を生成するために利用することが可能となる。
(出力の予測不可能性)を満たさすため、乱数コードを生成するには物理的ばらつき要因による乱数生成装置が必要となる。このような物理的ばらつきをチップ外部に見つけることは可能である。物理乱数生成装置として複数の手法が応用可能であるが、最も予測不能性が高いのは量子ビットを用いるものである。量子ビットには0と1の両方の情報が同時に存在する。量子力学の観測問題の原理により読み出すとき0と1のどちらかに確率的に決定され、その読み出し結果を事前に予測することは理論的に不可能である。量子ビットから0と1の読み出しを繰りしその結果を一列に並べたものが乱数コードとなる。現在の技術では、多数の量子ビットを半導体チップに混載することは難しい。したがって、本願のチップ認証装置の製造とは別に準備した量子ビットから読み出して得た乱数コードを本願のチップ認証装置のセルアレイに書き込むことになる。もちろん他の物理原理による乱数生成方法を用いても構わない。
チップ外部での乱数コードの生成手法にかかわらず、あるチップ認証装置のセルアレイに保存する乱数コードと同じコードを別のチップ認証装置のセルアレイに保存することは避けなければならない。そのためには、まず、チップ外部で生成した乱数コードをチップ内部のセルアレイに書き込む権限を、チップの製造、配布、使用等に正規に関わる者のみに限らなければならない。
偶然に二つのチップのセルアレイに同じ乱数コードが書き込まれることを避けるには、生成する乱数コードのビット数が十分大きくなければならない。このビット数をQとし、乱数コードを書き込むセルアレイを含むチップ数をUとすると、2のQ乗をUで割ったものが十分大きな数であれば良い。一例としてトリリオンノードにも耐えうる仕様にするため、Uを10兆とすると、Qが40のとき、乱数コードの場合の数がちょうど1兆程度になるので、Qは少なくとも44よりずっと大きな数でなければならない。Qが50であれば、全世界に分配されたチップ認証装置に書き込まれた乱数コードのうち二つが偶然に一致する確率は100万分の1より小さくなる。すなわち、乱数コードの情報量は50ビット以上であることが望ましい。
つまり、一例として、チップ一枚辺り一つ量子ビットから50回読み出しを繰り返し、あるいは二つの量子ビットから25回読み出し、あるいは、M個の量子ビットから50/Mより少なくない回数だけ読み出し、その結果をチップ内のセルアレイに書き込めばよい。
一度正規に書き込まれた乱数コードの改ざんを防ぐため、前記別途生成した乱数コードを保存するセルアレイは書き換え不可としなければならない。このようなセルアレイには、ワンタイムプログラマブル(OTP)メモリを使用することが望ましい。
OTPの例として最も有望なものがマスクROMである。図41は、典型的なマスクROMのビットセル構造の一例でもある。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのMOSFETのPN接合をレーザーなどで焼き切ったり、ビット線に十分長い時間大電流を流すなどしてPN接合を確実に破壊する手法が考えられる。破壊されたPN接合を有するビットセルは整流作用を失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのMOSFETのPN接合は確実に破壊しなければならない。
PN接合を含むすべてのビットセル(図39、図41―43、図55、図56、図61−68、図92−98等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのMOSFETのPN接合をレーザーなどで焼き切ったり、ビット線に十分長い時間大電流を流すなどしてPN接合を確実に破壊する手法が考えられる。破壊されたPN接合を有するビットセルは整流作用を失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのMOSFETのPN接合は確実に破壊しなければならない。
あるいは、キャパシタを含むすべてのビットセル(図33、図38、図41−43、図53、図54、図61−68、図92−98等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのキャパシタに十分長い時間大電流を流すなどしてキャパシタの絶縁膜をハード破壊する手法が考えられる。破壊された絶縁膜を有するビットセルのキャパシタは絶縁性を失い、直流電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのキャパシタの絶縁膜は確実にハード破壊しなければならない。
あるいは、ショットキー接合を含むすべてのビットセル(図40、図57、図58等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのショットキー接合に十分長い時間大電流を流すなどして接合を破壊する手法が考えられる。選択されたビットセルは接合破壊によって整流作用失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのキャパシタの絶縁膜は確実にハード破壊しなければならない。
あるいは、抵抗または抵抗配線を含むすべてのビットセル(図44、図46−48、図59、図60、図92、図93、図99−101等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルの抵抗あるいは抵抗配線に十分長い時間大電流を流すなどして断線(ショート)させる手法が考えられる。選択されたビットセルは断線によって適当な電圧を印加しても電流が流れなくなる。例えば、断線したビットセルをデータ0に、断線されなかったビットセルをデータ1に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスの抵抗あるいは抵抗線はは確実に断線しなければならない。
このように、チップ外で別途生成した乱数コードも、本願の概念を共有するすべてのチップ認証装置あるいは前記チップ認証装置を構成するチップに固有の固有乱数とみなすことが可能である。もちろん、図111あるいは図113の固有乱数にも活用することが可能である。
本願の固有乱数となる乱数コードを書き込むのは、本願の概念を共有するすべてのチップ認証装置の一部を構成するセルアレイ全体でも構わないし、そのセルアレイの一部でも構わない。セルアレイの一部である場合、例えば、図27、図29−32、図77、あるいは図79のような方法も考えられる。
以上から、チップに固有な固有乱数の生成方法は、チップ製造と共に生成する方法とチップの製造とは別に生成する方法と、主に二通りの方法に分割される。前者は製造したチップそのものをチップ認証装置に含め、後者は生成した固有乱数をチップ認証装置に含まれるOTPに書き込む。いずれの生成方法を用いたとしても、固有乱数とチップ認証装置への入力(チャレンジ)とを組み合わせてチップ認証装置からの出力(レスポンス)を得る限り、本願のチップ認証装置およびその活用方法の概念を逸脱しない。したがって、本願のすべての実施形態において、どちらの生成方法も同様に使用できる。
(なりすまし防止策)
図114で説明した(偽造ノードの自動検索および自動排除)には、図20や図21以外にも別のやり方がある。図20、図21、図114の共通点は、検査対象の内部メモリに本来検査対象が保存してはいけない情報が含まれているかどうかを検査するものである。ここでは、検査対象の内部メモリを検査せずになりすましを防ぐ方法を説明する。
図111および図113によれば、セキュリティノード(第三の物理ノード)がセキュリティパラメータ(ノンス値)を変更する前後、検査対象の物理ノード(第一の物理ノード)が含むチップ認証装置(第一のチップ認証装置)にそれぞれ同じチャレンジ(C)を入力すると第一のチップ認証装置からのレスポンス(R)が変化するはずである。すなわち、セキュリティパラメータ変更前にチャレンジ(C)を入力して第一のチップ認証装置から得られるレスポンスをR1とし、セキュリティパラメータ変更後にチャレンジ(C)を入力して第一のチップ認証装置から得られるレスポンスをR2とすると、R1とR2が等しければ検査対象の第一の物理ノードは不正にネットワークに接続しているものとみなされる。図126は、この検査方法の作業工程の一例を図示したものである。
最後に、一つの閉じた物理ネットワークに対して定義できる辞書の数の上限は、最低でもこの閉じた物理ネットワークを構成する物理ノード(電子装置)の数と等しい。これら複数の辞書は、共同して前記一つの物理ネットワークに属する物理ノード(電子装置)とそれ以外の物理ノード(電子装置)を識別する。よって、これら複数の辞書によって、前記一つの閉じた物理的ネットワークを物理的ファイヤーウォールで囲うことができる。ただし、この物理的ファイヤーウォールは、地理上に定義されない点で従来の(論理的)ファイヤーウォールと同質であるが、内部に囲い込むノードが物理ノードである点で従来の論理的ファイヤーウォールと異質である。
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のSIMカードのようなものが物のインターネット用の周辺ノードに用いられるようなビジネスモデルに有効である。
中央管理の行き届かない周辺ノードを無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
プロトコル・データ・ユニットの伝送方法の一例を示す図。 通信階層を説明する図。 プロトコル・データ・ユニットの伝送方法の一例を示す図。 複数の通信ノードと複数の信号伝達路からなるネットワークの一例を示す図。 通信ネットワークの最小ユニット(エレメント)の一例を示す図。 イーサネットカード基本構成の一例を示す図。 チップ認証装置を含むチップを搭載した周辺ノードの一例を示す図。 本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。 正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺ノードを、基幹ノードに接続する方法の一例を示す図。 基幹ノードから、本発明のチップ認証装置を搭載したチップを含む周辺ノードに共通パスコードを送信する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺ノードから、認証コードを、基幹ノードに送信する方法の一例を示す図。 第一ネットワークユニットと第二ネットワークユニットに分割された複数の基幹ノードと、本発明のチップ認証装置を搭載したチップを含む複数の周辺ノードからなるネットワークの一例を示す図であり、そのネットワークは第一ネットワークユニットの基幹サーバーと第二ネットワークユニットの基幹サーバーとの接続を有するトポロジーを含む。 第一ネットワークユニットにおける複数の周辺ノードの少なくとも一つを含むトポロジーを示す図であり、複数の周辺ノードの少なくとも一つはそれぞれ複数の第二ネットワークユニットにおける基幹ノードの少なくとも一つに接続する。 本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。 本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。 入力コードと登録コードの対応表の一例を示す図。 周辺ノードの正当性を検査するための作業工程の一例を示す図。 周辺ノードの正当性を検査するための作業工程の一例を示す図。 市松状に割り振られたデータの一例を示す図。 M行N列の市松状に並べられた認証素子のレイアウトの一例を示す図。 入力コードを入力する方法の一例を示す図。 入力コード、出力コード、乱数の関係の一例を示す図。 チップ認証装置の利用法の一例を示すための基本構成の一例を示した概念図。 スクランブル装置を加えた実施形態の概念の一例を示す図。 スクランブル装置の基本構成の一例を示す図。 スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 スクランブル装置およびチップ認証装置の動作原理の一例を説明する図。 ブロックアレイ構造の一例を示す図。 ブロックアレイ構造の一例を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子からデータを読み出す方法の一例を説明するための図。 認証素子から読み出したデータのエラー補正方法の一例を説明する図。 破壊パルスの印可の仕方の一例を説明する図。 破壊パルスの印可の仕方の一例を説明する図。 認証素子の一例(導電体先端部)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子からデータを読み出す方法の一例を説明するための図。 認証素子の一例(導電体接合部)を示す図。 認証素子の一例(導電体)を示す図。 認証素子の一例(導電体)を示す図。 認証素子の一例(導電体ビア)を示す図。 認証素子の一例(導電体ビア)が物理的に乱雑さを生成するメカニズムを示す図。 認証素子を選択する方法の一例を示す図。 認証素子を選択する方法の一例を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子をNAND型配列した場合のレイアウトの一例を示す図。 認証素子をNAND型配列した場合のレイアウトの一例を示す図。 認証素子を読み出す方法の一例を示す図。 認証素子を読み出す方法の一例を示す図。 代換素子の一例を示す方法。 代換素子によるデータのランダムさを説明する図。 入力コードを入力する方法の一例を示す図。 入力コード、出力コード、乱数の関係の一例を示す図。 チップ認証装置の利用法の一例を示すための基本構成の一例を示した概念図。 スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 チップ認証装置を含む半導体チップの一例を示す図。 スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。 イーサネット形式の通信方法の典型的一例を示す図。 MACアドレスの形式の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 本願に関る認証素子がトランジスタおよび可変抵抗からなる可変抵抗メモリ素子である例を説明する図。 本願に関る認証素子がトランジスタおよび磁気抵抗からなる磁気抵抗メモリ素子である例を説明する図。 本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリ素子である例を説明する図。 本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリ素子であり、NAND型に配列している例を説明する図。 本願に関る認証素子がトランジスタおよび強誘電体キャパシタからなる強誘電体メモリ素子である例を説明する図。 認証素子の一例(電荷蓄積層付き不揮発性メモリセル)を示す図。 認証素子の一例(電荷蓄積層付き不揮発性メモリセル)を示す図。 本願に関る認証素子が可変抵抗からなる可変抵抗メモリ素子である例を説明する図。 認証素子の一例(可変抵抗)を示す図。 認証素子の一例(可変抵抗)を示す図。 本願の物理チップ認証(P-CID)を相互認証に応用する方法を示す図。 本願の物理ネットワークの一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願のセキュリティノードの働きの一例を示す図。 本願のセキュリティノードの活用方法の一例を示す図。 本願のセキュリティノードの働きの一例を示す図。 本願の検査方法の一例を示す図。 本願の物理ネットワーク構成の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のなりすまし防止方法の実現方法の一例を示す図。
1、10 チップ
2 ファームウェア
3 認証制御デバイス
4 認証コード(ID)
50 外部入出力(I/O)
11 第一の認証
12 第二の認証
13 第三の認証
21 第一のチップ認証装置
22 第二のチップ認証装置
31 入力信号誤差
32 出力信号誤差
42、102、402 入力コード
43、202、403 登録コード
60、600 チップ認証装置
80 交信シリーズ
92 第二のノードの正規使用者
110 第一のチップ
120 第二のチップ
130 第Nのチップ
140 情報機器
302、401 内部メモリ
400 基幹ノード
410 第一の周辺ノード
420 第二の周辺ノード
430 第三の周辺ノード
503 ワード線
601、605 乱数発生装置
602、606 コード発生装置
604 スクランブル装置
611 チップ認証装置セルアレイ
614 スクランブル装置セルアレイ
742 ショート判定電圧
743 非ショート判定電流値
744 ショート判定電流値
790 ページバッファ
791 ビット線接続ゲート
800、810 入出力制御装置
880 認証装置用制御装置
890 スクランブル装置
900 中間コード用バッファー
910 絶縁膜
930 導電体
932 破壊判定電圧
933 破壊判定電流値
934 非破壊判定電流値
955 ゲート電極
960 認証用素子アレイ
972 行デコーダー
973 列デコーダー
977 認証素子
979 代換素子
980 磁気抵抗
981 可変抵抗
982 キャパシタ
983 トランジスタ
984 選択トランジスタ
985 抵抗
986 PN接合
987 ショットキー接合
988 電荷蓄積層付き不揮発性メモリ素子
989 可変抵抗メモリ素子
990 磁気抵抗メモリ素子
991 強誘電体キャパシタ
996 第一の制御ゲート
997 第二の制御ゲート
1000 信号伝達路
1001 第一の信号伝達路
1002 第二の信号伝達路
1003 第三の信号伝達路
1004 第四の信号伝達路
1005 第五の信号伝達路
1050 絶縁膜
1051 導電体先端部
1052 第二導電体
1053 第一導電体
1054 第二電極
1055 第一電極
2001 第一のノード
2002 第二のノード
2003 第三のノード
2004 第四のノード
2005 第五のノード
2006 第六のノード
3000 イーサネットカード
3010 不揮発性メモリチップ
3020 メディア・アクセス・コントローラー(MAC)用演算処理チップ
3030、3060 P-CID制御装置
3040 チップ認証装置
3050 P-CID/MAC変換装置
3070 物理チップ認証(P-CID)
3071 ベンダーコード
3072 シリアル番号
3073 P-CIDアドレス
3074 指示ビット
1400 第一の基幹ノード
1410 第一の共通パスコード
2400 第二の基幹ノード
2410 第二の共通パスコード
3400 第三の基幹ノード
3410 第三の共通パスコード
4101 第一の認証
4201 第二の認証
4301 第三の認証
7910 ビット線接続トランジスタ
9330、9331 破壊判定電圧値
9340、9341 非破壊判定電圧値
9811 ドレイン選択トランジスタ(SGD)
本発明は、イーサネットにおける電子装置間通信に用いる物理的チップ認証方式に関する。
一般に、インターネットを用いた情報通信は、適当な大きさに切り分けられたデジタルデータの塊(プロトコル・データ・ユニット)をネットワーク上での情報端末(ノード)同士で交換することである。これらの分割されたデータの一片には、ネットワーク上での管理に必要な制御情報が付与されている。このデータの一片と制御情報の並べ方をフォーマットと呼び、フォーマットおよびその活用はプロトコルと呼ばれる一種の手続きによって規定されている。互いに情報通信する任意の2つの情報機器は、それぞれ一定の整合性を持つフォーマットのデータを扱わなければならない。
プロトコル・データ・ユニットの仲間でよく使われる言葉にフレーム、パケット、セグメント等がある。名称の違いは通信階層に対応して使い分けられる。
通信の階層構造(通信階層)は、ネットワークシステム全体の概念によって決定され、次のような構造が一般的であると認識されている。たとえば、下の階層から順に、物理層(レイヤー1)、データリンク層(レイヤー2)、ネットワーク層(レイヤー3)、トランスポート層(レイヤー4)、上位層(レイヤー5)となる。ただし、この階層構造はほんの一例に過ぎず、異なる概念の元では、たとえば、上位層を更に3分割して7階層にする場合も良く知られている。いずれにしろ、データリンク層(レイヤー2)ではプロトコル・データ・ユニットをフレームと呼び、ネットワーク層(レイヤー3)ではパケットと呼び、トランスポート層(レイヤー4)ではセグメントと呼ぶのが一般的である。
以下、上述の5階層を前提にして説明を続ける。
ネットワークを物理的実態として構成するには、ネットワークノードとなる情報機器とノード同士を接続する信号伝達路が必要である。信号伝達路は有線であっても無線であっても構わない。また、信号の種類も複数の可能性がある。大雑把に分類すると、たとえば、電気信号と光信号である。すなわち、有線・無線の電気信号伝達路または光信号伝達路が、ネットワーク上でノード同士を物理的に接続する。このような物理的な接続・伝送方式を規定するレイヤーが物理層(レイヤー1)である。
一般に、ネットワークの接続構造は複雑であるが、信号伝達路の両端はそれぞれ一つのノードで終端していなければならない。プロトコル・データ・ユニットは、この信号伝達路を透過するデータの塊である。従って、一つの信号伝達路の両端を終端する二つのノード(たとえば、第一のノードと第二のノード)は、それぞれ一定の整合性のあるプロトコルに従わなければならない。もし、それぞれが従うプロトコルに一定の整合性がなかった場合、この信号伝達路は、第一のノードと第二のノードを接続していないとみなされることがある。
図1は、プロトコル・データ・ユニットの送信の仕方を示す概念図である。プロトコル・データ・ユニットに変換(コード)される元のデジタルデータは、ネットワークの一部を構成する第一のノード2001に入力される。第一のノード2001とは、一例として、キーボード、マウス、ディスプレイ等のコンソールを備えた計算機端末、タブレット、携帯電話、スマートフォン、カードリーダを備えた端末、スキャナー、ネット接続機能を備えたデジタルカメラ、ありとあらゆるところに分布するセンサーなどである。これらの情報機器すべてがネットワークの外からなんらかの情報を取り込み、その情報をプロトコル・データ・ユニットに変換して信号伝達路1000に送り込む。このように、ネットワークの外部と何らかのつながりを持つノードを周辺ノードとみなせる。図1の場合、第一のノード2001が周辺ノードの一例となる。
周辺ノード(たとえば第一のノード2001)では、ネットワーク外部から入力された情報をデジタル化する。続いて所定のフォーマットに従ってプロトコル・データ・ユニット(フレーム)に変換する。あるいは、あらかじめデジタル化された情報が入力される場合、そのまま所定のフォーマットに従ってプロトコル・データ・ユニットに変化する。いずれにしろ、このプロトコル・データ・ユニットは、信号伝達路1000を介して、この周辺ノード(たとえば第一のノード2001)が従うフォーマットと一定の整合性のあるフォーマットに従うノードに送信される。図1の例では、第二のノード2002が受信側のノードになる。
この信号伝達路1000の反対側のノード(たとえば第二のノード2002)では、上記プロトコル・データ・ユニットを受信し、所定のフォーマットに従って、変換前のデジタルデータに戻す作業(デコード)を行う。
上記第一のノード2001が周辺ノードでない場合、第一のノード2001は、ネットワーク内の他のノード(たとえば、第三のノード2003)からなんらかのデジタル情報を受信する。これは、第三のノード2003がコードしたプロトコル・データ・ユニットである。第一のノード2001は、このプロトコル・データ・ユニットを所定のフォーマットに従って元のデジタルデータにデコードする。ここで第一のノード2001が従う所定のフォーマットとは、第三のノード2003が従うフォーマットと一定の整合性のあるフォーマットである。ただし、この第一のノード2001が後述する中継器として動作する場合、第一のノード2001はプロトコル・データ・ユニットをデコードする代わりに第一のノードに関する情報(たとえば第一のノードを経由したことを示す情報など)を添付し、信号伝達路1000を介して第二のノード2002に伝送する。この場合、第二のノード2002が従う所定のフォーマットとは、第三のノード2003が従うフォーマットと一定の整合性のあるフォーマットである。
まず、ネットワークの外部、あるいは、第三のノード2003から第一のノード2001に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、第一のノードが従うフォーマットと一定の整合性のある所定のフォーマットに従って、受信したプロトコル・データ・ユニットを逆変換(デコード)し、第一のノード2001に入力される前の元の情報を再生する。これが信号データの伝送の基本的な仕組みである。こうして、プロトコル・データ・ユニットに変換(コード)されたデータの塊はネットワーク上で送受信される。
上述したデータの伝送は、第一のノード2001から第二のノード2002への一方向のみを説明したが、伝送の向きが逆になってもプロトコルの利用方法になんら変更はない。たとえば、図1の第一のノード2001と第二のノード2002を交換しても良い。その場合、まず、ネットワークの外部、あるいは、第三のノード2003から第二のノード2002に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、信号伝達路1000を通して第一のノード2001に伝送される。第一のノード2001では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換し、第二のノード2002に入力される前の元データを再生する。図面は図1から自明なので省略する。
図2は、階層構造とデータ構造の関係を示す図面である。伝送される元の情報は、まず適当な大きさのデータの塊に分割される。今後、この分割されたデータの塊を単純にデータと呼ぶ。この時点でデータが存在する通信階層が上位層(レイヤー5)である。
次に、このデータにトランスミッション・コントロール・プロトコル・ヘッダー(TCPヘッダー)を付ける。TCPはトランスミッション・コントロール・プロトコルの略であり、プロトコルの一種である。こうしてTCPヘッダーを付けたデータをセグメントと呼ぶ。このセグメントを扱う通信階層がトランスポート層(レイヤー4)である。
図1に対応する通信がトランスポート層(レイヤー4)における通信である場合、プロトコル・データ・ユニットはセグメントであり、変換プロトコルはTCPである。第一のノード2001がデータを受信すると、TCP形式のフォーマットに従ってTCPヘッダーをデータに添付し、セグメントを構成する。このセグメントは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このセグメントを受信し、TCP形式のフォーマットに従ってデコードし、元のデータを再生する。具体的には、TCPヘッダーを取り除く。
ネットワーク層(レイヤー3)では、セグメントにインターネット・プロトコル・ヘッダー(IPヘッダー)を付与する。この場合、プロトコル・データ・ユニットはパケットと呼ばれる。プロトコルはIPである。バージョンによってIPv4やIPv6などがある。
図1に対応する通信がネットワーク層(レイヤー3)における通信である場合、プロトコル・データ・ユニットはパケットであり、変換プロトコルはIPv4やIPv6などである。第一のノード2001がデータ(この場合セグメント)を受信すると、IPv4形式あるいはIPv6形式などのフォーマットに従ってIPヘッダーをセグメントに添付し、パケットを構成する。このパケットは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このパケットを受信し、IPv4形式あるいはIPv6形式等のフォーマットに従って逆変換(デコード)し、元のセグメントを再生する。具体的には、IPヘッダーを取り除く。あるいは、TCPヘッダーも取り除いてデータを復元することができる。
データリンク層(レイヤー2)では、パケットにイーサネット・プロトコル・ヘッダー(イーサネットヘッダー)を添付する。この場合、プロトコル・データ・ユニットはフレームと呼ばれる。プロトコルはイーサネットである。
図1に対応する通信がデータリンク層(レイヤー2)における通信である場合、プロトコル・データ・ユニットはフレームである。第一のノード2001がデータ(この場合パケット)を受信すると、イーサネット形式に従ってイーサネットヘッダーをパケットに添付し、フレームを構成する。イーサネット形式では、更に、パケットが正しく届いたかどうかを確認するためフレーム・チェック・シークエンス(FCS)を添付する。こうして生成されたフレームは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このフレームを受信し、イーサネット形式に従って逆変換(デコード)し、元のパケットを再生する。具体的には、FCSをチェックしてパケットが正しく伝送されたかどうかを確認する。必要に応じて修復や再送依頼などの処置を施す。正しく伝送されたことが確認されたらイーサネットヘッダーとFCSを取り除く。
イーサネット規格では、最下層(レイヤー1)の物理層での変換、すなわち、光信号への変換や電気信号への変換も定義されることがある。変換後のフレームは10BASE-Tなどの回線に渡される。
これらの通信階層(通信レイヤー、あるいは、レイヤー)は、それぞれ入れ子の状態になっており、各階層(あるいは、各レイヤー)はそれぞれ完全に独立している。具体的には、図2に示したとおり、レイヤー4(トランスポート層)のセグメント(データにTCPヘッダーのみを添付したもの)のフォーマットは、レイヤー5(上位層)のフォーマット(データのみ)を変換せずに含んでいる。これは、セグメントがTCPヘッダーと元のデータをそれぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。同様に、レイヤー3(ネットワーク層)のパケットのフォーマット(セグメントにIPヘッダーのみを添付したもの)は、レイヤー4(トランスポート層)のフォーマット(セグメント)を変換せずに含んでいる。これは、パケットがIPヘッダーとセグメントをそれぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。さらに、レイヤー2(データリンク層)のフレームのフォーマット(パケットにイーサネットヘッダーおよびFCSを添付したもの)は、レイヤー3(ネットワーク層)のフォーマット(パケット)を変換せずに含んでいる。これは、フレームが、イーサネットヘッダーおよびFCSとパケットを、それぞれ不可逆的に掛け合わせることなく添付しただけの構造だからである。
すなわち、下位の通信階層でプロトコルやフォーマットを入れ替えても、上位の通信階層にはまったく影響しない。たとえば、図2において、レイヤー3(ネットワーク層)のIPヘッダーをIPv4からIPv6に変更してもTCPヘッダーおよび元のデータ(つまりセグメント)には何の影響もない。つまり、レイヤー3(ネットワーク層)で何か変更を加えてもレイヤー4(トランスポート層)には何も影響がない。レイヤー4(トランスポート層)に影響がなければレイヤー5(上位層)にも影響がない。同様に、レイヤー4(トランスポート層)でTCPヘッダーを何か別のヘッダーに置き換えても、元のデータにはまったく影響がない。つまり、レイヤー4(トランスポート層)で何か変更を加えてもレイヤー5(上位層)には影響がない。更に、イーサネットヘッダーを何か別のものに置き換えても、パケットには何も影響がない。たとえば、プロトコルをイーサネットからポイント・トー・ポイント(PPP)に変更してもパケットには何も変化がない。したがって、レイヤー2(データリンク層)で何か変更を加えても、レイヤー3(ネットワーク層)には何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。更に、レイヤー1(物理層)で何か変更をする。たとえば、信号伝達路を光ファイバーから無線LANに変更する。この場合でも無線LANを介して伝達される情報の内容(この場合フレーム)は、光ファイバーで伝達される情報の内容(フレーム)となんら変わりがない。つまり、レイヤー1(物理層)で何か変更を加えてもレイヤー2(データリンク層)には何も影響がない。レイヤー2(データリンク層)に何も変更がなければレイヤー3(ネットワーク層)にも何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。こうして、下位のどの通信階層で何か変更を施しても上位のどの通信階層にも何も影響がないことが判る。これは、後の技術革新の妨げとならないような設計である。
一方、本願は最下層の物理層とデータリンク層に関するものである。このような事情により、本願が伝送されるデータに影響を及ぼすことはない。
同じ階層で採用されるプロトコルは一定の整合性を持っていなければならないが、階層が異なればその必要はない。すなわち、階層を設計するということは、複数のプロトコルの関係性を設計することである。上記では、物理層とデータリンク層をそれぞれ別の階層(レイヤー1とレイヤー2)としたが、別の階層概念によれば、同じイーサネット・プロトコルに従わせて一つの階層とみなすことも可能である。この場合レイヤー数は一つ減って4階層となる。また、トランスポート層(レイヤー4)とネットワーク層(レイヤー3)のフォーマットを合わせてTCP/IP形式と呼ぶこともある。あるいは、逆に細分化する階層の設計概念もありうる。たとえば、OSI基本参照モデルでは、上位層を更に3つに分割し、下位からセッション層(レイヤー5)、プレゼンテーション層(レイヤー6)、アプリケーション層(レイヤー7)と階層する。
図1の場合おいて、ネットワーク外部から第一のノード2001に情報が入力される場合、元の情報はそれぞれ所定の長さのデータの集まりに分割されている。データはTCP/IP形式にしたがってフォーマットされ、パケットに変換される。パケットは、イーサネット形式に従ってフレームに変換される。物理層(レイヤー1)では、このフレームは信号伝達路1000の物理的実態を通して有線、無線、光、あるいは電子信号として送受信される。ここで、第一のノード2001および第二のノード2002は、物理的実態を持った情報機器である。次に、ネットワーク層(レイヤー3)上の第三のノード2003から第一のノード2001にパケットが入力される場合、このパケットはイーサネット形式に従ってフレームに変換され、信号伝達路1000を介して第二のノード2002に送信される。ここで、第一のノード2001、第二のノード2002、および信号伝達路1000は、どれも物理的実態を持つ。続いて、トランスポート層(レイヤー4)上の第三のノード2003からセグメントが第一のノード2001に入力される場合、このセグメントはIP形式に従ってパケットに変換され、ネットワーク層上の信号伝達路1000を通して第二のノード2002に送信される。ここで、第一のノード2001、第二のノード2002、第三のノード2003は、いずれも論理的存在であり物理的実態とは関係がない。たとえば、オペレーティングシステムに割り当てられた仮想的なノードである。このとき、信号伝達路1000も仮想的な伝達路に過ぎず、物理的実態との関連はない。すなわち、TCP/IP形式のネットワーク(ネットワーク層)では、ノードも信号伝達路も論理的に定義された仮想的存在であり、物理的実態とは関連性がない。これに対し、イーサネット形式のネットワーク(データリンク層)では、ノードも信号伝達路も物理的実態を持っている。たとえば、このノードはどの端末に対応しているか?この信号伝達路はどのLANケーブルに対応しているのか?と言った問いに答えられるものである。
図3では、第一のノード2001と第二のノード2002の間を第四のノード2004が中継している。ネットワーク外部、あるいは、第三のノード2003から何がしかのデータがデジタル信号として第一のノード2001に入力される。第一のノード2001は、第一の信号伝達路1001を介して第四のノード2004と接続している。第四のノード2004は、第二の信号伝達路1002を介して第二のノード2002に接続している。
第一の信号伝達路1001を介した第一のノード2001と第四のノード2004との接続は、基本的に図1を用いて説明した信号伝達路1000を介した第一のノード2001と第二のノード2002の間の信号伝達とほぼ同様であるが、第四のノード2004の働きが一部異なる。すなわち、図3のように、第四のノード2004を他の任意の2つのノードの中継器として使う場合(たとえば、第一のノード2001と第二のノード2002の間の中継器)、第四のノード2004は、第一の信号伝達路1001を介して第一のノード2001から受信したプロトコル・データ・ユニットをデコードせず、そのまま第二の信号伝達路1002を介して第二のノード2002に転送することが可能である。あるいは、何らかの編集を施してから転送することが可能である。
こうして、ネットワークの外部、あるいは、第三のノード2003から第一のノード2001に入力されたデータは、第一のノード2001で所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、第一の信号伝達路1001を通して第四のノード2004に伝送される。第四のノード2004は、受信したプロトコル・データ・ユニットを逆変換(デコード)することなく、第二の信号伝達路1002を介して第二のノード2002に伝送する。あるいは、受信したプロトコル・データ・ユニットの一部(例えばヘッダー)を編集してから第二の信号伝達路1002を介して第二のノード2002に伝送する。第二のノード2002では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換し、第一のノード2001に入力される前のデータを再生する。ここで第二のノード2002が従う所定のフォーマットとは、第一のノード2001が従うフォーマットと一定の整合性のあるフォーマットである。
第四のノード2004において、受信したプロトコル・データ・ユニットを編集してから第二の信号伝達路1002を介して第二のノード2002に転送する場合、より具体的には、当該レイヤーに対応するヘッダーを適当に編集してから転送する。たとえば第四のノード2004がデータリンク層(レイヤー2)に存在する場合、フレームのイーサネットヘッダーを編集して転送することが可能である。更により具体的には、少なくとも、中継器である第四のノード2004の所定の認証を追加する。その経由地は、物理的実態を伴うアドレス(物理アドレス)として認識される。この物理アドレスのことを特にMACアドレスと呼ぶ。MACアドレスはイーサネット機器(たとえばイーサネットカード)に固有のアドレスである。あるいはネットワーク層(レイヤー3)に存在する場合、パケットのTCP/IPヘッダーを編集して転送することが可能である。たとえば、少なくとも、中継器である第四のノード2004のシステムに対応する所定の認証を追加する。いずれにしろこうすることで、第二のノード2002がプロトコル・データ・ユニットを受信する際、このプロトコル・データ・ユニットがどこをどう経由して来たかということを追跡できる。その経由地は物理的実態を伴わないアドレス(論理アドレス)として認識される。この論理アドレスのことを特にIPアドレスと呼ぶ。IPアドレスは、たとえば、オペレーティングシステムに固有のアドレスである。
物理アドレスと論理アドレスの違いは次のような説明で自明である。たとえば、第四のノード2004を構成する電子機器を入れ替えることを考える。その場合、入れ替え前の第四のノード2004を構成する電子機器(旧電子機器)のオペレーティングシステムを、入れ替え後の第四のノード2004を構成する電子機器(新電子機器)へ再インストールしなければならない。このとき、物理的実態である電子機器固有の認証である物理アドレスは変更することになる。一方、オペレーティングシステムに固有の論理アドレスは入れ替え後も第四のノード2004のIPアドレスとして引き継がれる。これが論理ネットワーク(TCP/IPネットワーク)を採用する理由の一つである。
図1および図3の例において、第一のノード2001と第二のノード2002を交換することが可能である。すなわち、ネットワークの外部、あるいは、第三のノード2003から第二のノード2002に入力されたデータは、第二のノード2002で所定のフォーマットに従ってプロトコル・データ・ユニットに変換され、第二の信号伝達路1002を通して第四のノード2004に伝送される。第四のノード2004は、受信したプロトコル・データ・ユニットを逆変換(デコード)することなく、第一の信号伝達路1001を介して第一のノード2001に伝送する。あるいは、受信したプロトコル・データ・ユニットを所定の方法で編集してから第一のノード2001に伝送する。第一のノード2001では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換(デコード)し、第二のノード2002に入力される前のデータを再生する。ここで、第一のノード2001が従う所定のフォーマットとは、第二のノード2002が従うフォーマットと一定の整合性のあるフォーマットである。図面は図3から自明なので省略する。ここで、所定の方法で編集するとは、たとえば、第四のノード2004の物理アドレス、あるいは、論理アドレスを添付すること、などである。
ネットワーク中の各ノードにつながる信号伝達路は一つに限らない。すなわち、すでに図3で見たように、第四のノード2004は2つの信号伝達路(第一の信号伝達路1001と第二の信号伝達路1002)に接続している。図4は、別の一例である。すなわち、第一のノード2001には、4つの信号伝達路(第一の信号伝達路1001、第二の信号伝達路1002、第三の信号伝達路1003、第四の信号伝達路1004)の一端がつながっている。それぞれ反対側の端が、第二のノード2002、第三のノード2003、第四のノード2004、および第五のノード2005に接続している。更に、第四のノード2004が、第五の信号伝達路1005を介して第六のノード2006に接続している。もちろん、図4は複雑なネットワーク構造のほんの一部、あるいは、一例に過ぎない。一般には、複数のノードが別の複数のノードと接続することでより大規模かつ複雑なネットワークが構築可能である。
しかしながら、ネットワーク構造がいかに大規模かつ複雑であろうとも、その要素(エレメント)は2つのノードで終端された信号伝達路である。図5参照。これは、上述したように、ネットワークの構成要素がノードと信号伝達路から構成されることに他ならない。上述したプロトコルは、このエレメントごとに定義できる。したがって、同じか、あるいは、一定の整合性を持ったプロトコルで規定された複数のエレメントの集合体は同じ通信階層に属することになる。同じ通信階層に属する複数のエレメントが互いに接続することによってローカル・エリア・ネットワーク(LAN)を構築することが可能である。最初に発明されたLANがイーサネットによるネットワークであり、データリンク層(レイヤー2)を束ねるものであった。このような歴史的背景から、現在でもLANとイーサネットはほぼ同義語として扱われる。
LANにノードとして接続する情報機器には、イーサネット・プロトコルに従ってそれぞれ固有の管理番号(MACアドレス)が割り当てられている。ここで、MACはメディア・アクセス・コントローラーの略である。すなわち、送信先と送信元それぞれのMACアドレスをイーサネットヘッダー、あるいは、その一部としてパケットに添付し、さらに、FCSを添付してフレームを生成する。このとき、別の言い方をすれば、MACアドレスでつながった(物理的実態を持つ)情報機器のネットワークがデータリンク層のネットワーク、すなわち、LANとみなすことができる。
第一のノード2001と第二のノード2002が、それぞれイーサネットで繋がった情報機器だとする。図5参照。このときプロトコル・データ・ユニットはフレームである。これらの2つの情報機器の間でフレームを伝送する場合、送信先の情報機器(たとえば第二のノード2002)と送信元の情報機器(たとえば第一のノード2001)は、共にイーサネット・プロトコルに従わなければならない。すなわち、第一のノード2001の管理番号が送信元のMACアドレスであり、第二のノード2002の管理番号が送信先のMACアドレスである。図5はネットワークのエレメントであり、実際にはもっと複雑なネットワーク構造の一部である。たとえば、図4のように、第一のノード2001は、第二から第五までの4つのノード(2002、2003、2004、2005)と接続している。ここでは、すべてのノードが同じプロトコルに従っていると仮定する。たとえば、第一のノード2001は、上記フレームを第一から第四の信号伝達路(1001、1002、1003、1004)を介して発信する。伝送するフレームのイーサネットヘッダーに含まれる送信先MACアドレスが、たとえば第二のノード2002のMACアドレスであったとしよう。第三のノード2003は、このフレームの送信先MACアドレスを確認して受信しない。第四のノード2004と第五のノード2005も同様に受信しない。第二のノード2002のみこのフレームを受信する。さらに第二のノード2002は、送信元のMACアドレスによってこのフレームが第一のノード2001から送られてきたものであることを確認できる。
第一のノード2001でパケットをコードしてフレームを形成し、このフレームを第二のノード2002に送付し、第二のノード2002で受信してフレームをデコードして元のパケットを再生する場合を考えよう。たとえば、図1参照。ネットワークの外部、あるいは、第三のノード2003から第一のノード2001にパケットが入力される。第一のノード2001は、このパケットに、送信元である第一のノード2001のMACアドレスと、送信先である第二のノード2002のMACアドレスを添付する。更にFCSを添付してフレームを生成する。こうして生成されたフレームは、プロトコル・データ・ユニットとして信号伝達路1000を介して第二のノード2002に伝送される。このように、MACアドレスに従ってフレームが送信先の情報機器(第二のノード2002)に届いたら、送信先ではイーサネット・プロトコルにしたがってフレームをデコードし、データリンク層に投入する以前の送信元のデジタル情報(パケット)を再現する。ここで、FCSに従って、必要に応じて修復あるいは再送の依頼をすることが可能である。再送依頼を出さない場合、こうして、データリンク層でのパケットの伝送が完了する。データリンク層でデコードするとは、MACアドレスやFCSなどイーサネット・プロトコルに従って元のデジタルデータ(パケット)に添付されていた余分なコードを取り除くことである。送信先(第二のノード2002)では、受信したフレームの送信元の制御情報(MACアドレス等)が確認できるので、受信したときデコードするか、更に伝送するかを判断することが可能である。
再生されたデジタル情報は、TCP/IPフォーマット形式のデータの一片、すなわちパケットである。IPパケットと呼ばれることもある。送信元である第一のノード2001がコードする以前のデジタルデータと同等であるものとする。パケットは、上述したように、ネットワーク層(レイヤー3)での通信データの単位であり、ネットワーク層でのプロトコルがIPプロトコル(IPv4あるいはIPv6等)である。
図1および図5が、データリンク層(レイヤー2)のエレメントを構成する場合、イーサネットヘッダーは封筒のようなものである。送信先MACアドレスは封筒に記載されたあて先住所であり、送信元MACアドレスは同じく封筒に記載された送り主の住所である。FCSは内容証明のようなものとなる。ここで、封筒の中身がパケットである。したがって、イーサネットでコードするということは、あて先と送り主の住所を記載した封筒にパケットを封入することであり、デコードとは開封することを意味する。封筒の中身と封筒に記載された事項には何の関連性もない。これが、上述した階層の独立性に相当する。たとえば、区画整理などによって番地や町名が変更になっても封筒の中身には何の変化もない。
図1および図5が、一つ上の階層(ネットワーク層)のエレメントを構成する場合、封筒はIPヘッダーになる。IPヘッダーには、送信先と送信元のネットワーク層上の住所であるIPアドレスが含まれる。封筒の中身はセグメントであり、IPヘッダーを添付することが封入である。一方、IPヘッダーを取り除くことが開封である。実際には、更に一つ上の階層(トランスポート層)と連携してIPアドレスが割り振られている。この場合封筒の中身は分割された一片のデータそのものである。
MACアドレスは、実際の情報機器(物理的実態のあるノード)にそれぞれ割り振られるので物理アドレスと呼ばれる。したがって、何がしかの物理的実態と関連付けられたデジタルデータの一片には、すべてMACアドレスが添付されている。これに対し、IPアドレスは必ずしも物理的実態とは関連しない。すなわち、オペレーティングシステム等が論理的に存在を仮定したノードに対して割り振ることが可能なので、論理アドレスと呼ばれる。こうして、インターネット上を行き交う途上一度でも物理的実態を伴う情報機器を介したデジタルデータの一片(プロトコル・データ・ユニット)には、IPアドレスだけでなくMACアドレスも所定の形式で付与されることになる。
こうして、インターネット上の住所(例えば、パケットの送信先)であるIPアドレスに対して、情報機器の管理番号であるMACアドレスは通行手形のような使われ方をすることがわかる。すなわち、インターネット上のある一塊のネットワーク内(たとえばLAN)に情報を届けることを考えよう。このネットワーク内の機器、あるいは、このネットワークを管理する基幹ノードやルーターは、事前に登録された情報機器からのみフレームを受け付けるものとする。事前登録された機器から発信されフレームかどうかを見極めるために送信元のMACアドレスを調べることになる。事前登録された送信元であることが確認された場合のみフレームを開封(デコード)し、パケットを受信する。そうでない場合はフレームを開封しない。
MACアドレスは、情報機器に搭載されているイーサネットカードに固有の管理番号として割り当てられている。電気電子技術者学会(IEEE)によって標準化され(MACアドレス標準)、長さ48ビット(6バイト)、したがって情報量およそ280兆もの0と1の数列からなる。このうち1ビットはULビットと呼ばれるものに割り当てられる。MACアドレスがグローバルアドレスの場合、ULビットは1である。そうでない場合0である。すなわち、グローバルアドレス(ULビット=1)の場合では全世界で重複を起こさないよう、MACアドレスを割り当てられなければならない。ここで注意すべきことは、現在現役で使用されている情報機器だけでなく、すでに廃棄されたり紛失したり使用されなくなってしまった情報機器にまで渡って全世界で重複しないよう、MACアドレスを割り当てられなければならないことである。これは、MACアドレスが物理的実態を伴う個々の情報機器に割り当てられるからである。この48ビットの内、別の1ビットはIGビットと呼ばれるものに割り当てられる。IGビットが0の場合、ユニキャスト通信を意味し、1の場合はマルチキャスト通信を意味する。ユニキャスト通信とは、情報機器のネットワークの中において単一の送信先を指定してフレームを送信することである。これに対しマルチキャスト通信とは、情報機器のネットワークの中において、複数の送信先を指定してフレームを送信することである。こうして、48ビットの内ULビットとIGビットの2ビットを除いた46ビットが実際に割り当てられるMACアドレスの自由度ということになる。数にしておよそ70兆ほどである。MACアドレスを表記するには、このULビットとIGビットを含む48ビットの数列を8ビットごとに区切ってそれぞれ16進数で表す。
図6に、イーサネットカードの典型例を図示する。イーサネットカード3000は、主に、MACアドレスを保存した不揮発性メモリチップ3010とメディア・アクセス・コントローラー(MAC)用演算処理チップ3020(MAC制御装置)から構成される。イーサネットカードは、一般に、LANなどを介して情報機器を相互接続するために情報機器に搭載して用いる。そのため、本来はLANボード、あるいは、LANカードと呼ばれる。しかしながら、LANカードやLANボードの規格がほとんどの場合イーサネット規格に準拠しているので、イーサネットカードとLANカードはほぼ同義で呼ばれることが多い。図6は、プリンター、ルーター、あるいは、デスクトップパソコンなどに搭載して使用する場合をイメージした例である。イーサネットカードの背面にはイーサネットコネクタがあり、イーサネットカードを搭載した情報機器の背面にこのイーサネットコネクタがむき出しになる。このイーサネットコネクタにLANケーブルを差し込む。あるいは、アンテナを付けて無線LANに接続する。他の情報機器に搭載する場合も基本構成はこれとさして変わらない。
情報機器をブートする際、あるいは、有線無線に関わらず情報機器をネットワークに接続する際、情報機器のオペレーティングシステムがイーサネットカードに内蔵された不揮発性メモリ3010からMACアドレスを読み出す。情報機器の演算処理装置は、このMACアドレスをイーサネットカードに内蔵のメディア・アクセス・コントローラー(MAC)用演算処理チップに書き込む。この情報機器(送信元)からネットワークに接続した別の情報機器(送信先)にデータを送信するとき、このメディア・アクセス・コントローラー(MAC)用演算処理チップに書き込まれたMACアドレスが、送信元のMACアドレスとしてフレームに添付される。こうしてオペレーティングシステムが情報機器と関りなく勝手にMACアドレスを設定するのではなく、物理的実態である情報機器(実際にはイーサネットカード)に依存したアドレスが割り当てられる。
このようにイーサネットカードとは、情報機器をネットワークに接続するために使用されるネットワークカードの一種である。すなわち、一つの情報機器は少なくとも一つのイーサネットカードを必要とし、各イーサネットカードにそれぞれMACアドレスが割り当てられている。インターネットに接続する情報機器の数が全世界で増大するにつれ、過去に使用された情報機器も含めて割り当てられた(使用済み)MACアドレスの数も増大する。
図80は、典型的なMACアドレスの使用例である。上述したように、イーサネットカード3000は、MACアドレスを記録したメモリチップ(たとえば不揮発性メモリチップ3010)とメディア・アクセス・コントローラー(MAC)用演算処理チップ3020を含み、カード背面にはイーサネットコネクター(LANコネクター)を有する。イーサネットカードは、LANカードとも呼ばれ、主にパーソナルコンピューター等の背面などに搭載される。こうして、イーサネットコネクタにLANケーブルを接続することによって、パーソナルコンピューター等をローカルエリアネットワーク(LAN)に接続することが可能となる。このLANケーブルは、インターネットを構成する信号伝達路1000の一部、あるいは、全部である。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際、オペレーションシステムを稼働するのに必要な情報が主記憶(たとえばDRAM)にロードされる。イーサネットカードがパーソナルコンピューターに搭載されていることを検知した場合、オペレーションシステムが、イーサネットカードに含まれるメモリチップからMACアドレスを読み込む。このMACアドレスはメディア・アクセス・コントローラー(MAC)用演算処理チップ3020に書き込まれる。
イーサネットカードは物理的実態のあるものであり、したがって、イーサネットカードの内部メモリ(たとえば不揮発性メモリチップ3010)に記録されたMACアドレスは、物理的実態を有するイーサネットカードに固有のものとして扱われる。メディア・アクセス・コントローラー(MAC)は、この送信元MACアドレスと、送信先MACアドレスと、フレーム・チェック・シークエンス(FCS)を、パケットに添付してフレームを生成する。そして、このフレームをLANコネクターから信号伝達路で構成されるローカルエリアネットワークを通じて送信先に送信する。別の言い方では、信号伝達路を介してフレームを送受信する。しかしながら、物のインターネットの時代では、MACアドレスは、不正編集、不適切編集、枯渇、あるいは、重複等の問題をはらんでいる。
MACアドレスは、図81に一例を示すように、48ビット相当の二進法の数列である。上位の24ビット(図81の例で左半分)はベンダーコード3071と呼ばれ、ベンダーごとに割り当てられる。ベンダーコード3071の最後の2ビットは、ULビットとIGビットである。下位の24ビット(図81の例で右半分)は、シリアル番号3072と呼ばれ、各ベンダーが重複しないよう割り当てている。
そうした中、21世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。従来の情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス(Internet of Things, IoT)、あるいは、物のインターネットが出現すると期待されている。それは既存のどの市場にも属さず、社会基盤そのものを変革する可能性を秘めている。
このように超巨大な物のインターネットでは、ネットワークに接続する情報機器の数が数兆個から数十兆個にまで上ると考えられ、近くトリリオンノードの時代が来ると期待されている。トリリオンノードの考え方では、ネットワークに接続したセンサーを全世界に数兆個以上張り巡らし、これまでになく詳細で大量のデータを収集し、高度な計算技術で解析することで多くの社会問題の解決に寄与できるとしている。この構想は2013年に開催されたTSensors Summitという学会からから世界に広まった。
現在のイーサネットのシステムに何ら変更を加えず、そのまま物のインターネットに拡張するとどうなるだろうか?従来の情報機器のみならず、身の回りのすべての物にMACアドレスが割り振られることになる。そして、それが全世界に広がる。すなわち、グローバルモード(ULビット=1)で、数兆個ものMACアドレスを全世界同時に重複無しに割り当てなければならない。ただし、この数兆個という数は、現役でネットワークに接続する情報機器の数である。全世界で廃棄されたり、紛失したり、何らかの理由で使用されなくなった過去のすべての情報機器も含めると、物のインターネットが興隆するころまでに消費されるMACアドレスの数は、すぐに十兆かそれより大きくなるだろう。上述したように、MACアドレスの数の上限は、実質的におよそ70兆である。枯渇するのは時間の問題と考えられる。
枯渇の問題を避ける一つの方法は、MACアドレスを変更することである。たとえば、廃棄する際に消去し、あるいは5年以上ネットワークに接続されなかったMACアドレスは廃棄されたと見なし、他の情報機器に割り当てるなどの対処方法が可能である。実際に、MACアドレスは不揮発性メモリチップに保存されるのでその気になれば変更可能である。たとえば、一部のパソコン用オペレーティングシステムなどでは、デバイスマネージャーを使ってMACアドレスを変更することが可能となっている。あるいは、MACアドレスを変更するためのツール(MACアドレスチェンジャー)も出回っている。
しかしながら、グローバルモード(ULビット=1)でのこのような変更は、全世界でMACアドレスが重複しないよう慎重に行わなければならない。なぜなら、MACアドレスが重複するとネットワークの誤動作を引き起こし、あるいはセキュリティが脆弱になるなどの悪影響が懸念されているからである。
物のインターネットのノードは、末端のユーザーである個人がネット接続の手段として用いる情報端末だけでなく、トリリオンノードで用いられるセンサーも含まれる。世界人口を70億人とすると、ノード1兆個の場合単純計算で一人当たりおよそ150個のMACアドレスに囲まれていることになる。その内末端のユーザーである個人がネット接続の手段として用いる情報端末として認識するものは多くとも平均で10個未満であろう。残りの140個については自然放置に近い状態となる。もちろん、トリリオンノードの時代では、ノード数は1兆個より更に多くなると考えられる。先進国では、一人当たりのMACアドレスの数は150より更にずっと多くなるだろう。
これらのノードは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。訓練を受けた専門家が世界中に分布するすべてのノードを中央管理しようとしても数兆個ものノードを同時に管理するのは至難の業である。仮にできたとしても、誰が責任を持ってその管理システムを扱うべきなのかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人口知能に任せることも現状では現実的でない。
すべてのノードを適切に管理することができないとしたら何が問題になるか?たとえば、悪意を持ったハッカーが、きめ細かく管理されていないノードを乗っ取り、他人に成りすまして悪用することが可能である。もしノードの成りすましが横行すれば大きな問題になる。高価な情報端末であれば、高度なセキュリティ技術によって守られるだろう。しかしながら、上述した簡単な推定でも明らかなように、こうした高度なセキュリティ技術が施される情報端末は、一人当たりせいぜい10個である。これに対し、可能な限り安価な普及型センサーには高度なセキュリティ技術は採用できない。ノード数が一兆個の場合そのようなセンサーは、上述のように一人当たりおよそ140個にもなるだろう。つまり、近い将来のネットワーク利用者は、10個の安全な情報端末を利用しつつ、140個もの素性の知れないセンサーに囲まれることになる。
平たく言えば、物のインターネットに接続されるセンサーそのものがハッキングデバイスである。善意では社会問題の解決のために用いられるが、その本質はハッキング技術による社会問題解決のための取り組みである。悪意のあるハッカーが攻撃のために利用する危険性と常に背中合わせである。
また、悪意のあるハッカーがいなかったとしても、MACアドレスの重複はネットワークの誤動作を引き起こす可能性がある。たとえば、二つの異なるセンサーが別々の情報を取得し、サーバーに情報を伝送する場合を考える。この二つの異なるセンサーがたまたま同じMACアドレスを持っていた場合、このサーバーは矛盾する二つの情報が一つのセンサーから送られて来たと誤認することになる。たとえば、第一のセンサーが検査した対象物の色は赤であり、第二のセンサーが検査した対象物の色は青だったとしよう。この第一のセンサーと第二のセンサーのMACアドレスが重複していた場合、このサーバーが受信する情報は、一つの検査対象物の色が青であると同時に赤であるということになる。これが、自動運転のためのシステムであったらどうなるだろう。とある交差点の信号は赤であり同時に青なのである。
このような問題を論理アドレスで補うことは不可能である。なぜなら、論理アドレスはどのような物理的実態とも連携していないからである。すなわち、物のインターネットが物理的実態を持ったノード同士のネットワークである限り、TCP/IP形式のネットワークの運用実績で培った手法だけでは適切に管理できないのである。こうして、物のインターネットの産業応用(例えばインダストリー4.0やインダストリアル・インターネット)を実現するための課題は、これまでの情報テクノロジーの延長とは明らかに異質であることが伺える。
たとえば、工場内には多数の製造装置が製造ライン上に並び、連携して製品を製造する。製品の良品率を上げるため、個々の製造装置の調整をするとともに、これらの製造装置同士の連携を最適化させる必要がある。このような効率を上げるため、すべての製造装置がコンピュータによって管理されるが、そのためにはすべての製造装置をネットワークに接続する必要がある。製造装置は小さいものから大きいものまであり、大きいものは部位ごとに細分化されそれぞれネットワークに接続される。工場が高度化し大規模化するに従い、ネットワークも大きくなる。従来型の情報技術では、作業を行うのはコンピュータープログラムであった。これに対し物のインターネットでは、連携制御をコンピュータープログラムに任せているとはいえ、実際の作業を行うのは物理的実態を持った機械や装置である。
現在こうした物理的実態を持った情報端末にはMACアドレスが割り振られている。上述したような重複によって思わぬ誤動作を起こしたり、悪意のあるハッカーによるハッキングによって工場そのものが機能停止に追い込まれたりする危険性がある。主要産業の工場の全面的機能停止は、国家レベルの安全保障の問題である。被害額は、大規模な自然災害やミサイルなどによる直接攻撃の結果に匹敵するだろう。
一方、従来のインターネット上の情報通信におけるセキュリティとは、たとえば図5の信号伝達路1000を送受信するデータを暗号化して盗難から防ぐことや、アカウントとパスコードの組み合わせなどによって基幹ノードへの不正アクセスを防ぐことに主眼が置かれている。いずれにしろ暗号技術であり、図5の信号伝達路1000の両端がどのような物理的実態なのかを問題にすることは不可能である。これは、事実上インターネットが論理ネットワークだからである。しかしながら、物のインターネットでは、データの送信元と送信先がそれぞれ物理的実態のある物として認識されなければならない。信号伝達路の両端に接続している物理的実態を含めた物理的認証が必要になる。
このように、MACアドレスとは、平たく言えば、物理的実態を持つイーサネットカードの編集可能なデジタル認証である。そこで、これを物のインターネットのデジタル認証として活用する方法が考えられる。しかしながら、これまでに見てきたように、MACアドレスには枯渇の問題があり、編集可能であるということ自体が問題である。これは、図6のように、MACアドレスが元々不揮発性メモリに記録される48ビットのコードだからである。
(なりすまし)
実は、MACアドレスばかりでなく、IPアドレスなどの論理アドレスも不都合な事情は共通している。論理アドレスでも物理アドレスでもネットワーク上の任意のネットワークアドレスは接続する側から認識されることを目的としているので、暗号化などして秘匿にすることが難しい。したがって、通常の場合、ハッカーも攻撃対象のネットワークアドレスを認識することが可能である。ハッカーは攻撃対象のセキュリティシステムを攻撃することなく、攻撃対象のネットワークアドレスを盗むことによって、攻撃対象のノードに成りすますことができる。このような攻撃を「なりすまし」という。
しかしながら、なりすましが成り立つ状況は論理的に定義されたノード間の論理ネットワークのみに意味のある場合にはあまり意味がない。一方IoTの場合、物理的実体のあるノード(物理ノード)間のネットワーク(物理ネットワーク)と、物理的実体と何ら関係なく論理的に定義される論理ノード間のネットワーク(論理ネットワークあるいはIoTネットワーク)が併存する。論理ネットワーク上の論理ノードのアドレスが論理アドレスであり、この論理アドレスと物理ノードを紐づけすると期待されていたのがMACアドレスである。
すなわち、このMACアドレスが読み取り容易でさらに書き換え可能であれば、ハッカーは攻撃対象の物理ノードのMACアドレスを読みとり自分のデバイス(ハッカーの物理ノード)にコピーし、攻撃対象のMACアドレスを適当に書き換えてしまえばよい。こうして中間者攻撃が可能となる。この時ハッカーは論理ネットワーク上に構築された、いかなるソフトウェアセキュリティも破る必要はない。
また仮に書き換え不可能であったとしても、ハッカーは攻撃対象の論理アドレスを読むことができる。攻撃対象にDDOS攻撃などを仕掛け、動作不良に追い込んだ後コピーした論理アドレスを自分の物理ノードにコピーすればやはりなりすまし攻撃が可能となる。この論理アドレスをコピーした物理ノードを偽造ノードと呼ぶことができる。偽造ノードは、ハッカーが物理ネットワークに中間者攻撃を仕掛けるときに中心的役割を担う。
このように、論理ネットワークと物理ネットワークが併存している限り、どんなに強力なソフトウェアセキュリティを用いてもなりすまし攻撃を防ぐことは不可能である。さらに
具合が悪いことは、なりすまされた後ソフトウェアセキュリティはハッカーの通信を暗号化して守ってしまうので、中間者攻撃を発見することは非常に難しい。これは、物のネットワーク(IoT)にソフトウェアセキュリティのみを活用した場合の共通の問題である。
偽造ノードを自動で検索し、正規のネットワークから自動で排除する技術が求められる。
本発明は上記事情を鑑みて成されたものであり、真に物理的実態に対して一意に割り当てられ、編集不可能で、物のインターネットの時代になってもなりすましの懸念のない物理アドレスを活用し、より安全なIoTネットワークを提供することを目的とする。
本発明は、上記課題を解決するため、以下の手段を採用する。
本発明に関わる電子装置のネットワークは、
少なくとも、第一から第六の物理ノードを構成要素とし、

前記第一の物理ノードは、第一の半導体チップ、第一のチップ認証装置、第一のチップ認証抽出装置、及び、第一の内部メモリを、含む、第一の電子装置であり、

前記第一の半導体チップは、第一のセルアレイを含み、
前記第一のセルアレイは、所定の方法で、第一の固有乱数を生成し、
前記第一の内部メモリは、第一の辞書を保存し、
前記第一のチップ認証装置は、第一のハッシュモジュール、および、前記第一のセルアレイを、含み、

前記第二の物理ノードは、第二の半導体チップ、第二のチップ認証装置、第二のチップ認証抽出装置、及び、第二の内部メモリを、含む、第二の電子装置であり、

前記第二の半導体チップは、第二のセルアレイを含み、
前記第二のセルアレイは、所定の方法で、第二の固有乱数を生成し、
前記第二の内部メモリは、第二の辞書を保存し、
前記第二のチップ認証装置は、第二のハッシュモジュール、および、前記第二のセルアレイを、含み、

前記第三の物理ノードは、第三の半導体チップ、第三のチップ認証装置、第三のチップ認証抽出装置、及び、第三の内部メモリを、含む、第三の電子装置であり、

前記第三の半導体チップは、第三のセルアレイを含み、
前記第三のセルアレイは、所定の方法で、第三の固有乱数を生成し、
前記第三の内部メモリは、第三の辞書を保存し、
前記第三のチップ認証装置は、第三のハッシュモジュール、および、前記第三のセルアレイを、含み、

前記第三の物理ノードは、第一のセキュリティパラメータを、前記第一のハッシュモジュールに送付し、
前記第一のハッシュモジュールは、前記第一の固有乱数と前記第一のセキュリティパラメータから、第一のセキュリティ状態を生成し、

前記第二の物理ノードは、前記第一の物理ノードに第二の入力信号を送信し、前記第一の物理ノードは、前記第一のチップ認証装置に前記第二の入力信号を入力し、
前記第一のチップ認証装置は、前記第二の入力信号および前記第一のセキュリティ状態から、第一の出力信号を生成し、
前記第一の物理ノードは、前記第一の出力信号を、前記第二の物理ノードに返信し、

前記第二の物理ノードは、前記第一の出力信号を、前記第二のチップ認証抽出装置に入力し、
前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第一の出力信号から、入力信号と出力信号の組み合わせ、第一の入出力セットを定義し、
前記第二の物理ノードは、前記第一の入出力セットを、前記第二の辞書に記録すし、

前記第二の物理ノードは、前記第四の物理ノードに前記第二の入力信号を送信し、

前記第四の物理ノードは、第四の半導体チップ、第四のチップ認証装置、第四のチップ認証抽出装置、及び、第四の内部メモリを、含む、第四の電子装置であり、

前記第四の半導体チップは、第四のセルアレイを含み、
前記第四のセルアレイは、所定の方法で、第四の固有乱数を生成し、
前記第四の内部メモリは、第四の辞書を保存し、
前記第四のチップ認証装置は、第四のハッシュモジュール、および、前記第四のセルアレイを、含み、

前記第二の物理ノードは、前記第三の物理ノードに、前記第一のセキュリティパラメータを発行し、それを前記第四の物理ノードに送付するよう、要請し、

前記第三の物理ノードは、この要請に従い、前記第一のセキュリティパラメータ値を発行し、それを前記第四のハッシュモジュールに送付し、
前記第四のハッシュモジュールは、前記第四の固有乱数と前記第一のセキュリティパラメータから、第四のセキュリティ状態を生成し、

前記第二の物理ノードは、前記第四の物理ノードに前記第二の入力信号を送信し、前記第四の物理ノードは、前記第四のチップ認証装置に前記第二の入力信号を入力し、
前記第四のチップ認証装置は、前記第二の入力信号および前記第四のセキュリティ状態から、第四の出力信号を生成し、
前記第四の物理ノードは、前記第四の出力信号を、前記第二の物理ノードに返信し、

前記第二の物理ノードは、前記第四の出力信号を、前記第二のチップ認証抽出装置に入力し、
前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第四の出力信号から、入力信号と出力信号の組み合わせ、第四の入出力セットを定義し、
前記第二の物理ノードは、前記第四の入出力セットを、前記第二の辞書に記録されている、前記第一の入出力セットと比較し、

一致している場合、前記第四の物理ノードを、前記第一の物理ノードと認証する、

ことを特徴とする。
あるいは、前記第一の物理ノードは、第一の鍵生成装置を、さらに、含み、

前記第五の物理ノードは、第五の半導体チップ、第五のチップ認証装置、第五のチップ認証抽出装置、及び、第五の内部メモリを、含む、第五の電子装置であり、

前記第五の半導体チップは、第五のセルアレイを含み、
前記第五のセルアレイは、所定の方法で、第五の固有乱数を生成し、
前記第五の内部メモリは、第五の辞書を保存し、
前記第五のチップ認証装置は、第五のハッシュモジュール、および、前記第五のセルアレイを、含み、

前記第五のチップ認証抽出装置は、第51の入力信号を、前記第一の物理ノードに送付し、
前記第一の物理ノードは、前記第51の入力信号および前記第一のセキュリティ状態から、第51の出力信号を生成し、

前記第一の物理ノードは、前記第51の出力信号を、前記第一の鍵生成装置に入力し、
前記第一の鍵生成装置は、第一の秘密鍵および第一の公開鍵を生成し、
前記第一のハッシュモジュールは、前記第一の公開鍵及び前記第一の辞書を、まとめてハッシュ化し、第一のハッシュ値を生成し、

前記第六の物理ノードは、第六の半導体チップ、第六のチップ認証装置、第六のチップ認証抽出装置、第六の内部メモリ、及び、第六の鍵生成装置を、含む、第六の電子装置であり、

前記第六の半導体チップは、第六のセルアレイを含み、
前記第六のセルアレイは、所定の方法で、第六の固有乱数を生成し、
前記第六の内部メモリは、第六の辞書を保存し、
前記第六のチップ認証装置は、第六のハッシュモジュール、および、前記第六のセルアレイを、含み、

前記第三のチップ認証抽出装置は、第六のセキュリティパラメータを、前記第六のハッシュモジュールに送付し、
前記第六のハッシュモジュールは、前記第六の固有乱数と前記第六のセキュリティパラメータから、第六のセキュリティ状態を生成し、

前記第五のチップ認証抽出装置は、第56の入力信号を、前記第六の物理ノードに送付し、
前記第六の物理ノードは、前記第56の入力信号および前記第六のセキュリティ状態から、第六の出力信号を生成し、
前記第六の物理ノードは、前記第六の出力信号を、前記第六の鍵生成装置に入力し、
前記第六の鍵生成装置は、第六の秘密鍵および第六の公開鍵を生成し、

前記第一の物理ノードは、前記第一の秘密鍵を用いて、前記第一のハッシュ値と、前記第六の公開鍵とを、まとめて、暗号化し、第一の電子署名とし、

前記第一の物理ノードは、前記第一のハッシュ値と、前記第一の電子署名を、前記第六の物理ノードに送付する、

ことを特徴とする。
あるいは、本発明に関わる電子装置のネットワークは、
第七の物理ノード、及び、第八の物理ノードを、構成要素とし、

前記第七の物理ノードは、第七の半導体チップ、第七のチップ認証装置、第七のチップ認証抽出装置、及び、第七の内部メモリを、含む、第七の電子装置であり、

前記第七の半導体チップは、第七のセルアレイを含み、
前記第七のセルアレイは、所定の方法で、第七の固有乱数を生成し、
前記第七の内部メモリは、第七の辞書を保存し、
前記第七のチップ認証装置は、第七のハッシュモジュール、および、前記第七のセルアレイを、含み、

前記第七の辞書は、複数の入出力セットの集合からなる第七の管理領域を登録し、
対応する入出力セットが前記第七の管理領域に属する物理ノードは、前記第七の物理ノードの管理下にあり、

前記第八の物理ノードは、第八の半導体チップ、第七のチップ認証装置、第八のチップ認証抽出装置、及び、第八の内部メモリを、含む、第八の電子装置であり、

前記第八の半導体チップは、第八のセルアレイを含み、
前記第八のセルアレイは、所定の方法で、第八の固有乱数を生成し、
前記第八の内部メモリは、第八の辞書を保存し、
前記第八のチップ認証装置は、第八のハッシュモジュール、および、前記第八のセルアレイを、含み、

前記第八の辞書は、複数の入出力セットの集合からなる第八の管理領域を登録し、
対応する入出力セットが前記第八の管理領域に属する物理ノードは、前記第八の物理ノードの管理下にあり、

前記第七の物理ノード、あるいは、前記第八の物理ノードの、どちらかの管理下にある任意の物理ノードは、前記第七および第八の物理ノードが共同で管理する共同管理領域に属し、

前記第七及び第八の物理ノードは、前記第七の辞書あるいは前記第八の辞書に登録されていない任意の物理ノードを、前記共同管理領域から排除し、
前記共同管理領域を、一つの閉じた物理ネットワークとして、共同で管理する、

ことを特徴とする。
本発明によれば、真に物理的実態に対して一意に割り当てられ、編集不可能で、物のインターネットの時代になってもなりすまし攻撃の懸念の少ない物理チップ認証を活用することによって、より安全なIoTネットワークを提供することが可能となる。
図7は、情報機器140の基本構成を概念的に示した図面である。たとえば、複数の(たとえばN個の)半導体チップ(第一のチップ110、第二のチップ120…第Nのチップ130)が搭載されている。図8は、この情報機器140を第一のノード2001とし、信号伝達路1000を介して第二のノード2002と接続する場合を図示したものである。第一のノード2001内の、第一のチップ110は、外部入出力(I/O)50を通して通信伝達路1000に接続している。ここで、第一のチップ110は、チップ認証装置60を搭載している
本願によるチップ認証装置60は外部入出力50から受け取るコール(入力信号)に応じて都度出力信号を発生するものであり、発生された出力信号は物理的乱雑さ(ランダム)を利用して生成されるものである。このコールは、一例として、オペレーティングシステムなどから与えられる。あるいは、別の一例として、このチップ認証装置60をと際する電子装置と通信状態にある別の電子装置から与えられる。また、入力信号を変えると出力信号も変わるという特徴を有している。この点で、図6で説明したMACアドレスと根本的に異なるものである。すなわち、MACアドレスは、不揮発性メモリチップ3010に保存されたデータであり、入力信号によって出力を変更するような機能を持つものではない。

(物理的にクローン不可能な機能)
このような機能として近年注目を集めている技術が、物理的にクローン不可能な機能(PUF)と呼ばれるものである。これは、指紋や網膜などの生体情報を用いて人の個人認証を行うのと同様に、半導体のチップにおいても一つ一つ異なる物理的特性を用いてチップの固体認証行うものである。必要条件として要求される主な特徴は、(1)同一の入力をした異なるPUFは常に異なる出力をすること。(2)同一のPUFに異なる入力をすれば常に異なる出力をすること。(3)入力と出力の組み合わせを盗まれても、未知の入力に対する出力は予測不可能であること、(4)入力と出力の関係が安定していて信頼できること、である。この中で、必要条件(4)は量産品である限り特に自明である。
ICチップ製品(半導体チップ製品)の場合、パッケージ剤の化学光学的性質を用いたPUFを利用するもの(コーティングPUF)
と、チップそのものに依存したPUFを利用するもの(チップPUF)がある。特に近年では、チップ内に保存された暗号鍵の盗難や偽造チップ問題が注目されていることもあり、後者、PUFをチップ内に搭載する技術への注目度が高い。たとえば、暗号鍵と、適当に選んだ入力コードに対応してPUFが出力するPUFデータをアクティブコード生成装置に入力し、生成したアクティブコードを内部メモリに保存する方法がある。アクティブコードの生成はチップの出荷前か事前登録の際に一回のみ行うものとし、その後は必要に応じてチップ内に保存したアクティブコードとPUFデータを鍵生成装置に入力して都度暗号鍵をチップ内で生成する。この方法では、暗号鍵も、暗号鍵を生成するために使用した入力コードも、内部メモリに保存する必要はない。したがって、チップが暗号処理をしている間にハックされない限り暗号鍵を盗まれる心配はない。一方アクティブコードを盗まれる可能性はあるが、アクティブコードのみ盗んでもPUFデータがなければ暗号鍵を複製できない仕組みである。すなわち、PUFデータを取得するために使用した入力コードがわからない限り、上記(2)と(3)の必要条件が暗号鍵の複製を防ぐのに役立つことになる。このように、暗号鍵の複製を非常に困難にするのがPUFを利用するメリットの一つである。 特許公開2009-519473
しかしながら、今最も注目されているPUFの使い方はICチップの固体認証である。これには上記(1)の必要条件が必須である。つまり、PUFは、入力するリード信号(この場合入力コード)に対し、チップに固有の認証(PUFデータ)を出力しなければならない。
さらに、物のインターネットにおいては、ノード数は数兆個を遥かに超えることが予想されるので、PUFが個別認証すべき個体数も桁違いに大きくなる。すなわち、上記PUFの必要条件(1)−(4)に次の必要条件を追加すべきである。すなわち、(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となること、である。こうして、超巨大な物のインターネットでチップの物理的認証を実現するためにPUFを活用することが可能である。
ここで、コーティングPUFが(1)−(5)の必要条件を満たしていたとしよう。コーティングPUFの読み出しは、パッケージに光学的刺激を与えることにより行われる。これは、ネットワークを介して(電子的に)チップの個別認証を読み出すことができないことを意味している。したがって、更に次の必要条件を付加すべきである。すなわち、(6)ネットワーク上のチップ認証はチップに固有の電子信号でなければならない。
上記必要条件(6)を満たすチップPUFは大きく分けて2種類報告されている。一方は回路のばらつきを利用した回路PUFであり、もう一方は回路以外の微細構造のばらつきを応用したもの(製造PUF)
である。回路PUFは、更に、回路の配線遅延を利用するもの(遅延PUF) と、回路のメタスタビリティを利用するもの(メタスタビリティPUF) に分かれる。遅延PUFとは、IC内で同様の設計仕様で集積化された複数の回路の動作時間に関する制御不能のばらつきを利用するものである。利用される回路の代表例は、アービター回路、グリッチ回路、リング発信回路などである。メタスタビリティPUFで使用される回路は、主にスタティックランダムアクセスメモリ(以下SRAM)とラッチ回路(バタフライPUF)である。 特開2015−201884号公報 公告番号 WO2011118548A1 特開2013−131868号公報
回路PUFの弱点は、まず個体差が小さいことである。これは必要条件(5)を満たすのに不利である。そして出力が不安定であり、必要条件(4)を満たすのに不利である。更に温度変化などの外部環境に影響されやすく、フォールト攻撃に弱い。そのため増幅回路や温度センサー回路などを追加する必要がある。こうして設計への負荷が高くなり、PUFデータの長さへの制限が大きくなる。すなわち、上記必要条件(5)を満たすことが非常に難しい。PUFデータそのものが短ければ、たとえ出力がランダムであっても、認証付けられるチップの数が制限される。
製造PUFでは、意図的に集積化された層間バイアの製造ばらつきに起因するランダムな断線などが利用される。回路PUFの弱点の多くを解消できる可能性があるが、従来の半導体製品に含まれない特殊な構造を集積化する必要があり、一般的に製造工程への負荷が大きくなる。やはりIoT全般に向けて普及するにはハードルが高いと言える。
そのほか、デバイスの信頼性を利用するもの
も提案されているが、信頼性そのものが低く必要条件(4)を満たさない。また、電源オン時のダイナミックランダムアクセスメモリ(以下DRAM)のキャパシタのばらつきを利用するもの も報告されている。これは、原理的にラッチ回路PUFと共通の問題を抱えている。すなわち、個体差が小さく、環境要因の変化を利用したフォールト攻撃に弱い。 特開2015−139010号公報 Fatemeh Tehranipoor, Nima Karimian, Kan Xiao, John Chandy,"DRAM based Intrinsic Physical Unclonable Functions for System Level Security", in GLSVLSI'15 Proceedings of the 25th edition on Great Lakes Symposium on VLSI, pp. 15-20, 2015.
上述のように、個々に解決すべき問題はあるものの、PUFの機能そのものは、ネットワークの相互のつながりの中でMACアドレスを利用せずに物理的実態を持つノードの最小単位(半導体チップ)の物理的認証を実現するのに有効であると考えられる。PUFになるためには、上記(1)−(6)の必要条件の他、更に「物理的にコピー不可能である」という十分条件を満たさなければならない。しかしながら、この十分条件は、ネットワーク上の物理認証を定義するためには必ずしも必要ない。本願の目的はPUFではなく、ネットワーク上の物理認証を安全にすることであるしたがって、本願が提案するチップ認証装置は、「物理的にコピー不可能である」というPUFの十分条件を満たす必要はない。
たとえば一例として、図8のように、本願のチップ認証装置60を有する第一のチップ110を搭載する第一のノード2001が、信号伝達路1000を通して、第二のノード2002とデータを交換(交信)する場合を考えよう。
たとえば、第二のノード2002は、何らかの形式で接続された第一のノード2001を認識するために信号A、信号B、信号C、…を入力コードとして、信号伝達路1000を介して第一のノード2001に搭載されるチップ認証装置60に与える。チップ認証装置60は、それぞれ信号A1、信号B1、信号C1、…を出力コードとして信号伝達路1000を介して第二のノード2002に返す。ここで、第二のノード2002は、第一のノード2001を、「信号Aの入力に対して信号A1の出力を返し、信号Bの入力に対して信号B1の出力を返し、信号Cの入力に対して信号C1の出力を返し、…」という装置であると認識する。この場合、(A、B、C、…:A1、B1、C1、…)であらわされる数列を交信シリーズと呼ぶ。あるいは、別の場合では、第二のノード2002は第一のノード2001を「信号Fの入力に対して信号F1の出力を返し、信号Aの入力に対して信号A1の出力を返し、信号Kの入力に対して信号K1の出力を返し、…」と認識する。この場合の交信シリーズは、(F、A、K、…:F1、A1、K1、…)であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン(入力コード)は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第一のノード2001にネット接続しうる装置の数を無制限にすることに有用である。こうして、第一のノード2001を第二のノード2002に最初に接続する際、第二のノード2002は、第一のノード2001を登録することになる。この登録は、第二のノード2002の正規の使用者か、或いは、第二のノード2002の正規の使用者から正規に権限を委譲された者が行うことが望ましい。

(物理層での通信方法)
図9の例では、第二のノード2002の正規の使用者92が、自ら所有する第一のノード2001を使って第二のノード2002を操作する例を説明している。第一のノード2001と第二のノード2002は、信号伝達路1000を介して成立する交信シリーズ80を用いて交信(接続)し、連携して第二のノード2002の正規の使用者92の目的とする仕事を行う。ここで、第二のノード2002の正規の使用者92は、交信シリーズ80にいかなるコミットメントもしない。もしコミットメントをする場合、第二のノード2002の管理・使用方法が煩雑になり、物のインターネットの利便性が大きく損なわれることになる。
もし第一のノード2001がMACアドレスを持ち、第一のノード2001と第二のノード2002がイーサネット形式で接続していればチップ認証装置60は不要のように思える。しかしながら、上述したように、物のインターネットにおいて物理的実態のあるノード同士の相互認証をイーサネット形式に任せることの問題は、改ざん可能で悪意あるハッキングに対して脆弱であること、である。このような状況を鑑み、本願のチップ認証装置の必要性が理解される。
まず、遠隔攻撃者が、図9の第一のノード2001を遠隔攻撃する場合を考える。たとえば、遠隔攻撃者は、第一のノード2001を自ら所有する偽造ノードに不正に置き換える。ここで、偽造ノードは、第一のノード2001に内蔵されるチップ認証装置60を使用せずに、この交信シリーズ80を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一のノード2001を偽造ノードと不正に置き換えようとする者(遠隔攻撃者)は、実際に第一のノード2001を手に取ることができないとする。これは、物のインターネットにおいては自然な条件である。すなわち、物のインターネットにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者の目的は、自分が手元に所有する偽造ノードを使って第二のノード2002を遠隔操作することである。図9の第一のノード2001を手元に奪取するためには、第二のノード2002に正規に接続する第一のノード2001が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二のノードの正規の使用者92に気づかれずに遠隔操作をすることができないのと同義である。偽造ノードと第二のノード2002がネット接続されると、第二のノード2002は、偽造ノードを認識するために、ネットワークを介して入力信号(R、L、A、…)を偽造ノードに入力する。このとき、ネットワークを介して偽造ノードが出力信号(R3、L3、A3、…)を第二のノード2002に返したとする。こうして、偽交信シリーズ(R、L、A、…:R3、L3、A3、…)が生成される。すなわち、遠隔攻撃者は、偽交信シリーズを正規の交信シリーズ80、この例の場合、(R、L、A、…:R1、L1、A1、…)に完全に一致させなければならない。すなわち、(R3、L3、A3、…)が(R1、L1、A1、…)と一致すれば、遠隔攻撃は成功する。例えば、遠隔攻撃者は、(R3、L3、A3、…)を、第二のノード2002の内部メモリに保存されている登録コードと一致させれば良い。
遠隔攻撃には基本的に二つの方法がある。第一の方法は、第二のノード2002の内部メモリに保存されている情報から、入力コードと、少なくとも登録コードを盗み取ることである。たとえば、遠隔攻撃者が登録コード(R1、L1、A1)と入力コード(R、L、A)とを盗み取ることに成功したとする。このとき、遠隔攻撃者は、所有する偽造ノードを第一のノード2001に置き換えて第二のノード2002を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二のノード2002の内部メモリを厳重に防御しなければならない。
内部メモリに入力コードや登録コードを保存する第二のノード2002のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を駆使して厳重に保守することが望ましい。このように、第二のノード2002はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。これを基幹ノードと呼ぶ。これに対し、基幹ノードと接続し、セキュリティ管理者による中央管理下にないノードを周辺ノードとする。図10は、3つの周辺ノード(第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430)が、基幹ノード400に接続する例である。基幹ノード400は、入力コード402と登録コード403のリストを内部メモリ401に保存する。一方周辺ノードは、登録コードも入力コードも保存せず、それぞれ相違なるチップ認証装置を搭載するチップを内蔵しているものとする。たとえば、図7は、周辺ノードの基本構成の一例である。また、基幹ノード400の内部メモリ401に保存された、登録コード403のリストの中の一つの要素と、入力コード402の組み合わせが、各周辺ノードに対応する交信シリーズとなる。
上述のように、交信シリーズに関する情報を保存した基幹ノードを中央管理下におくことによって遠隔攻撃の第一の方法は防がれるが、ネットワークに接続するノード数が数兆個に上る場合、すべての装置を基幹ノードのように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者は、基幹ノードに接続する中央管理の行き届かない装置、図10の例では、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430・・・のうち少なくともどれか一つを乗っ取ろうとする。これが遠隔攻撃の第二の方法である。しかしながら、これらの周辺ノードは、入力コードと登録コードのペア(交信シリーズ80)を内部メモリに保存しないので、遠隔攻撃の第二の方法も成功しない。
たとえば、遠隔攻撃者が適当に選んだ信号(X、Y、Z)を第一の周辺ノード410に入力し、(X1、Y1、Z1)の返信を得る。ここで、第一の周辺ノード410はチップ認証装置を搭載しているものとする。信号(X、Y、Z)が、基幹ノード400が第一の周辺ノード410と交信する際用いる入力コード402(P、S、T)と異なる場合、遠隔攻撃者が受け取る返信(X1、Y1、Z1)は、基幹ノード400に保存される登録コード402の(P1、S1、T1)とは異なる。これは、周辺ノードに搭載されるチップ認証装置が、異なる入力に対して必ず異なる出力を出す性質(入力の独立性)を持つことを前提にしている。こうして、チップ認証装置が(入力の独立性)を持っている限り遠隔攻撃の第二の方法も失敗に終わるのである。ここで、周辺ノードと基幹ノードが、もしイーサネット形式による相互認証を採用していたらどうなるだろうか?遠隔攻撃者は、周辺ノードに搭載されているイーサネットカードの内部メモリ(たとえば、図6の例では、不揮発性メモリチップ3010)からMACアドレスを容易に盗み出すことができる。こうして、本願のチップ認証装置がMACアドレスを置き換える意義が明らかになる。
ここで残る問題は、遠隔攻撃者が適当に選んだ信号セット(X、Y、Z)が、たまたま基幹ノード400の内部メモリ401に保存した入力コード402(P、S、T)に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に基幹ノード400の管理者以外には非公開とすることである。そして、この情報は基幹ノード400の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、基幹ノード400に接続する周辺ノードの再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。これらの必要条件を満しつつ、入力コードはパスコードとして振舞う。
すなわち、本願のチップ認証装置を用いる相互認証形式は、イーサネット形式と同様に物理的実態のあるノード同士の相互認証をつかさどるものであり、一方で、ネットワークを形成するノードを、相互認証に関わる情報を保存し中央管理下に置かれるノード(基幹ノード)と、それ以外のノード(周辺ノード)に分割する。周辺ノードは、相互認証に関わる情報を保存しない代わりに本願のチップ認証装置を搭載し、所定の入力に対して出力を返す。入力が異なれば必ず異なる出力を返す(入力の独立性)を満たすものである。(入力の独立性)については、以下で詳述する。
ここで、入力コードは、さまざまな周辺ノードへの認証IDを検査するために共通して使うことが望ましい。この場合、おのおのの周辺ノードへのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹ノードは少なくとも一つの共通パスコードを所有する。
上記基幹ノード400が計算機(パソコン等)の場合、これに接続する第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、計算機に接続して用いられる周辺機器となる。たとえば、マウス、キーボード、マイクロホン、などである。上述したとおり、基幹ノードである計算機本体は、最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺ノード(マウス、キーボード、マイクロホン等)の不正な置き換えから計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺ノードを遠隔攻撃から守ることができる。
上記基幹ノード400がネットワークサービスの中心的機能を担うサーバーの場合、たとえば、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、このネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明の目的の一つは、エンドユーザーの端末(スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等)の不正な置き換え(乗っ取り)からサーバー(基幹ノード)への不正アクセスを防ぐことである。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
上記基幹ノード400がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、このデータセンターが必要とするデータを取得するセンサーである。上述したように、センサーの数は無数であり、世界中の広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明の目的の一つは、このようなセンサーの置き換え(乗っ取り)から基幹ノードへの不正アクセスを防ぐことである。これによって、十分に訓練を受けた専門家が最新のセキュリティ技術を駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺ノード(たとえば、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430)は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ(たとえは、共通パスコード、あるいは、登録コード)を保存する“基幹ノード”と保存しない“周辺ノード”に分けることが特徴となる。同時に、認証通信のために必要なデータ(たとえは、共通パスコード、あるいは、登録コード)を保存する“基幹ノード”は中央管理し、認証通信のために必要なデータ(たとえは、共通パスコードなど、あるいは、登録コード)を保存しない“周辺ノード”には本発明のチップ認証装置を搭載することを特徴とする。ただし、物理的実態のあるノード同士の相互認証に関するものである点はイーサネット形式と同様である。
図11のように、上記共通パスコードは、第一の基幹ノード1400に少なくとも一つ保存され、周辺ノードを認識する際に周辺ノードに送られる。たとえば、第一の基幹ノード1400は第一の共通パスコード1410を、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430に送る。これらの周辺ノードは、第一の基幹ノード1400を「第一の共通パスコード1410を送ってくるもの」として認識する。
図12に示すように、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430は、この第一の共通パスコード1410の入力に対応し、それぞれ、第一の認証4101、第二の認証4201、第三の認証4301を、第一の基幹ノード1400に返す。第一の基幹ノード1400は、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430を、「第一の共通パスコード1410に対して、それぞれ第一の認証4101、第二の認証4201、第三の認証4301を返すもの」と認識する。ここで、第一の認証4101、第二の認証4201、第三の認証4301のうちどの二つの認証も同じではない。また、第一の基幹ノード1400が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。このように、各基幹ノードが使用する共通パスコードはそれぞれ複数であることが望ましい。
ここでは、入力が同じであってもチップ認証装置が異なれば必ず異なる出力を返す(出力の独立性)を満たすことを前提としている。(出力の独立性)については、以下で詳述する。
実際のネットワークでは、周辺ノードは無数にあり、しかも基幹ノードは一つに限らない。たとえば、図13では、二つの基幹ノード(第一の基幹ノード1400、第二の基幹ノード2400)と五つの周辺ノード(第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430、第四の周辺ノード440、第五の周辺ノード450)からなるネットワークの一例を示している。第一の基幹ノード1400を中心に、第四の周辺ノード440と第五の周辺ノード450とで一つのネットワークユニットを構成し、第二の基幹ノード2400と、第一の周辺ノード410、第二の周辺ノード420、及び第三の周辺ノード430とでもう一方のネットワークユニットを構成する。ここで、これらのネットワークユニットは、互いに第一の基幹ノード1400と第二の基幹ノード2400とで接続している。さらに、ネットワークユニット内において、第四の周辺ノード440および第五の周辺ノード450は、第一の基幹ノード1400とのみ接続し、第一の周辺ノード410、第二の周辺ノード420、及び第三の周辺ノード430は、第二の基幹ノード2400とのみ接続している。一方、第四の周辺ノード440は、第一の基幹ノード1400と第二の基幹ノード2400と接続している。
すなわち、本願のネットワーク構造において、複数のネットワークユニットを接続するトポロジーは、互いに異なるネットワークユニットに属する基幹ノード同士の接続、および、互いに異なるネットワークユニットに属する基幹ノードと周辺ノードの接続によって定義される。特に、本願のネットワークのトポロジーでは、周辺装置同士は、互いに異なるネットワークユニットに属するかどうかに関らず、互いに直接接続しないことが特徴である。
ここで、接続とは、上述した認証作業によってノード同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、物理的実態のある情報機器あるいは電子装置のネットワークを考える際、得に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での(認証)接続は、一つのパッケージ化されたシステム内の装置(モジュール、あるいは、チップ)同士の接続をも含む。
たとえば、自動車は複数の制御システムを内包している。駆動システム、ブレーキシステム、ナビゲーションシステム、自動運転車なら自動運転システム等、複数の子システムが連携して稼動する総合システムと考えられる。これら子システムのそれぞれが上述のネットワークユニットの一つ一つ、あるいは、いくつかの連携したネットワークユニットに対応している。このとき、自動車一台は、複数のネットワークユニットから構成される一つのネットワークである。更に、各ネットワークユニットを構成する周辺ノードや基幹ノードの最小単位は半導体チップである。周辺ノードは、例えば、エンジンの温度をセンスするセンサーであったり、車体の各部位が感じる加速度センサーであったり、燃料の残量をセンスするセンサーであったり、様々なセンサーが考えられる。これらのセンサーから集まる情報を解析し、利用する演算処理装置が基幹ノードとなる。自動車以外にも航空機、列車、工場、発電所、送電システム等社会インフラに関する施設や装置も一つのパッケージ化されたシステムと見なすことができる。よって、その内部に半導体チップが採用されている限り、本願が対象とするネットワークが存在する。
本発明の特徴のひとつとして、このような複数の基幹ノードと複数の周辺ノードからなるネットワークにおいて、基幹ノード同士は直接接続が可能であるが、周辺ノード同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺ノードでは、共通パスコードのような入力データを保存しないためである。その代わりに、周辺ノード同士は、基幹ノードを介して間接的に接続する。
たとえば、第一の周辺ノード410と第二の周辺ノード420は、第二の基幹ノード2400を介して間接的に接続可能である。第四の周辺ノード440と第五の周辺ノード450は、第一の基幹ノード1400を介して、間接的に接続可能である。第三の周辺ノード430と第四の周辺ノード440は、互いに接続している第一の基幹ノード1400と第二の基幹ノード2400とを介して、間接的に接続可能である。こうして、すべての周辺装置に流れるデータを、複数の基幹ノードでモニターすることが可能となる。こうして、本発明によれは、中央管理のためのリソースを基幹ノードにのみ集中させることが可能となる。
図13の具体的な例としては、たとえば、自動運転車とスマートハウスの組み合わせが上げられる。たとえば、第一の基幹ノード1400、第四の周辺ノード440、および第五の周辺ノード450からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹ノード2400、第一の周辺ノード410、第二の周辺ノード420、第三の周辺ノード430からなるネットワークユニットは、共に一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、たとえば、スマートハウスのバッテリーの状況を把握するためのセンサー(たとえば、第四の周辺ノード440)が自動運転車に搭載されている。このように、第四の周辺ノード440は、第一の基幹ノード1400と第二の基幹ノード2400のどちらとも接続することになる。あるいは、複数の自動車を連携して自動運転するタクシーシステムのような応用も、本願のネットワークの一例となる。
図14に示すように、本発明を用いたネットワークでは、前記トポロジーは、一つの周辺ノード(たとえば第一の周辺ノード410)が複数の基幹ノード(たとえば、第一の基幹ノード1400、第二の基幹ノード2400、第三の基幹ノード3400)との接続を含むことも認められる。第一の基幹ノード1400は、第一の共通パスコード1410を有し、第二の基幹ノード2400は、第二の共通パスコード2410を有し、第三の基幹ノード3400は、第三の共通パスコード3410を有するものとする。すなわち、第一の周辺ノード410は、第一の基幹ノード1400を「第一の共通パスコード1410を入力してくるもの」と認識し、第二の基幹ノード2400を「第二の共通パスコード2410を入力してくるもの」と認識し、第三の基幹ノード3400を「第三の共通パスコード3410を入力してくるもの」と認識する。これらの入力に対し、第一の基幹ノード1400は、第一の周辺ノード410を「第一の認証11を返すもの」と認識し、第二の基幹ノード2400は、第一の周辺ノード410を「第二の認証12を返すもの」と認識し、第三の基幹ノード3400は、第一の周辺ノード410を「第三の認証13を返すもの」と認識する。ここで、通信認証に関するデータ(共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等)は基幹ノードに保存され、周辺ノードには保存しない。周辺ノードには、本発明のチップ認証装置を搭載する。
その中で、たとえば、第一の基幹ノード1400と第二の基幹ノード2400は直接接続しているが、第一の基幹ノード1400も第二の基幹ノード2400も、第三の基幹ノード3400とは直接接続していないものとする。ここで、第三の基幹ノード3400が遠隔攻撃者でないという証明はない。このため、第一の周辺ノード410に接続認証に関するデータ(共通パスコード)を保存しないということは重要である。たとえば、最初に第一の周辺ノード410が第一の基幹ノード1400に登録される際、第一の基幹ノード1400は、第一の周辺ノード410が第一の基幹ノード1400の後に他の基幹ノードと接続することを制限することが可能となる。なぜなら、第一の周辺ノード410の外部入出力制御装置は、受信する全ての信号を第一の基幹ノード1400に転送し、第一の基幹ノード1400は、第一の周辺ノード410への全ての入力をモニターすることが可能だからである。
ここで、もし第一の共通パスコード1410と同等のコードが発見されたら、緊急処置を施すことができる。たとえば、第一の基幹ノード1400は、第一の周辺ノード410を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺ノード410を利用する。第一の基幹ノード1400の次に、第二の基幹ノード2400が第一の周辺ノード410を登録する場合、第二の基幹ノード2400は、あらかじめ第一の基幹ノード1400に、第一の周辺ノード410を登録する許可を申請する。これには、第二の基幹ノード2400と第一の基幹ノード1400が直接接続していることが必要である。第一の基幹ノード1400が、第二の基幹ノード2400に対し、第一の周辺ノード410への接続を許可すれば、第一の周辺ノード410は、第二の共通パスコード2410を受け付け、第二の基幹ノード2400に第二の認証12を返信し、第二の基幹ノード2400は、第一の周辺ノード410を登録する。以後、第二の基幹ノード2400と第一の周辺ノード410は、第一の基幹ノード1400の許可を経ずに、認証接続可能となる。次に、第三の基幹ノード3400が、第一の周辺ノード410と接続するには、第一の基幹ノード1400、あるいは、第一の基幹ノード1400及び第二の基幹ノード2400が、第一の周辺ノード410に対し、あらかじめ、第三の共通パスコード3410の受付を許可しておく必要がある。こうして、第一の基幹ノード1400、あるいは、第一の基幹ノード1400及び第二の基幹ノード2400は、第三の基幹ノード3400と第一の周辺ノード410の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺ノード410に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹ノード1400、あるいは、第一の基幹ノード1400および第二の基幹ノード2400の正規の管理者によって行われるものとする。
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。

(出力の独立性)
まず、図15に示すように、二つの異なる第一のチップ認証装置21と第二のチップ認証装置22に対して、同じ入力信号(入力信号Q)を入力する。このとき、第一のチップ認証装置21は出力信号Aを出力する。第二のチップ認証装置22は出力信号Bを出力する。ただし、出力信号Aと出力信号Bとは異なる。このように、入力信号が同一であってもチップ認証装置が異なる場合出力信号はそれぞれ異なる。この性質は、共通パスコードを使う例(図11、図12)に必要な条件である。すなわち、同じパスコードをそれぞれ異なるチップ認証装置を搭載する周辺ノードに入力信号として入力しても、それぞれの周辺ノードから返って来る出力信号は周辺ノード毎に相異なるものでなければならない。
たとえば、図11のように、第一の基幹ノード1400が、第一の共通パスコード1410をそれぞれ異なるチップ認証装置を内蔵する第一の周辺ノード410、第二の周辺ノード420、第三の認証装置430に与えたとき、これらの周辺ノードから返って来る出力信号は、図12に示すように、それぞれ第一の認証4101、第二の認証4201、第三の認証4301となる。ここで、第一の認証4101、第二の認証4201、第三の認証4301の内どの二つも相異なるものとする。

(入力の独立性)
反対に、同一のチップ認証装置に異なる入力信号を入力すると、それぞれ相異なる出力信号を出力する。たとえば、図16に示すように、チップ認証装置60に入力信号Cを入力すると出力信号Aを出力する。同じチップ認証装置60に入力信号Dを入力すると出力信号Bを出力する。ここで、出力信号Aと出力信号Bは、入力信号Cと入力信号Dが異なる限り、それぞれ相異なる出力信号である。ここで、入力信号CおよびDの発信源は同一であっても別個であっても構わない。別個の場合、この性質は、図14のように、異なる基幹ノードからそれぞれ異なるパスコードを入力信号として同一の周辺ノードに入力し、それぞれ基幹ノードが相異なる認証を該周辺ノードから出力信号として受け取る場合に必要な条件である。具体的には、第一の基幹ノード1400が第一の共通パスコード1410を第一の周辺ノード410に入力し、第一の周辺ノード410が第一の認証11を第一の基幹ノード1400に出力し、第二の基幹ノード2400が第二の共通パスコード2410を第一の周辺ノード410に入力し、第一の周辺ノード410が第二の認証12を第二の基幹ノード2400に出力し、第三の基幹ノード3400が第三の共通パスコード3410を第一の周辺ノード410に入力し、第一の周辺ノード410が第三の認証13を第三の基幹ノード3400に出力する、というような場合である。ここで、言うまでも無く、上記認証11、12、13は、お互いどの二つをとっても相異なるものとする。
すなわち、図13は(入力の独立性)の条件と(出力の独立性)の条件を同時に利用するネットワーク構造の一例となっている。ほとんどの場合、実際には、基幹ノードの数は2より大きく、周辺ノードの数は5より大きい。図13は、もっとも簡単な一例に過ぎない。

(出力の予測不可能性)
図17に示すように、n個の入力信号(Q1、Q2…Qn)を同一のチップ認証装置60に与えたとき、それぞれの入力信号に対し出力信号(R1、R2…Rn)が得られることを知っているものとする。このとき、n個の入力信号(Q1、Q2…Qn)のいずれとも異なる入力信号Qn+1を同一のチップ認証装置60に与えずに、これを与えたときに得られるはずの出力信号Rn+1を、(Q1、R1)、(Q2、R2)、…(Qn、Rn)のセットから予測することは不可能である。ただし、nは2以上の整数とする。チップ認証装置60が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置60は物理的乱雑さ(ランダム)を利用して出力信号を生成しなければならない。
上述したように予測不可能であることをより具体的に説明する。まず、複数の入力信号のからなる第一の入力集合と、これら複数の入力信号をそれぞれチップ認証装置に入力して得られる出力信号の集合からなる第一の出力集合を用意する。更に、前記第一の入力集合に属さない複数の入力信号からなる第二の入力集合を用意する。たとえ前記第一の入力信号と前記の第一の出力信号のどのような組み合わせを知っていたとしても、前記第二の入力集合に属するN個の入力信号を前記チップ認証装置に入力する以前に、前記N個の入力集合に応じて前記チップ認証装置がそれぞれ出力するN個の出力信号を予測することが確率論的に困難であることを意味している。たとえば、N個の入力信号を選んだ場合、N回予測をすることになる。ここで、予測できるということはN回の予測のうち相当回数の予測が成功することである。一方、予測が成功する確率が平均して1/(N+1)以下であれば、予測不可能であるということになる。

(入出力の信頼性)
図18に示すように、実際には、入力信号Qを制御する回路に関わる制御不能のノイズなどにより、入力信号Qには入力信号誤差31(ΔQ)が混入する。これに対し、入力信号誤差31(ΔQ)及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Rには出力信号誤差32(ΔR)が混入する。このとき、二つの異なる入力信号(たとえば、Q1およびQ2)の差の絶対値は、入力信号誤差31(ΔQ)の絶対値の最大値より大きいものとする。ここで、入力信号Q1に対する出力信号R1と、入力信号Q2に対する出力信号R2との間の差の絶対値は、出力信号誤差32(ΔR)の絶対値より常に大きくなければならない。(出力の現実的無限性)
物理的実態を持ちネットワークに接続するノードを物理ノードと呼び、物理的実態を持たずネットワークに接続するノードを論理ノードと呼ぶ。実際にインターネットに接続する物理ノードの数に関する制限について考慮する。
すべての物がインターネットにつながるような場合を想定すると、物理ノードの数にはどのような制限が必要になるだろうか?各物理ノードが少なくとも一つ以上のチップを含み、そのチップが本願のチップ認証装置を含むものとする。このとき、本願のチップ認証装置は、チップに固有の物理的乱雑さ(ランダム)を利用して前記物理ノードの認証を行うものとする。
仮に、本願のチップ認証装置を搭載するチップが(出力の予測不可能性)を満たしていたとしても、二つの異なるチップに固有な物理的乱雑さ(ランダム)が偶然に一致してしまうことはないだろうか?もしこのような偶然な一致が生じた場合、同じ入力に対する二つの異なるチップ認証装置からの出力が一致し、(入力の独立性)を損なうことになる。この問題に対する対策は確率論的に考慮する以外にない。
たとえば、チップに固有な乱雑さ(ランダム)の場合の数をXとし、ネットワークに接続する全物理ノードの数をYとする。このとき、同じ入力に対する二つの異なるチップ認証装置からの出力が偶然一致する確率は、Yが大きくなれば増大し、Xが大きくなれば減少する。したがって、Y/Xに比例すると考えられる。この確率が現実的にほぼゼロになるほどY/Xが小さいことが必要である。すなわち、少なくともXはYより大きい。さらに、品質管理で良く用いられるシックスシグマに沿って考えると、現実的に容認できるエラーは100万分の3.4である。したがって、XはYの100万倍より大きいことが必要である。

(チップ固有性)
本願に関するチップ認証装置の出力は、前記チップ認証装置の構成要素の一つであるチップに固有の電子信号でなければならない。

(物理的書き換え不可能性)
外部から何らかの刺激を与えることによってチップ固有の物理的乱雑さ(ランダム)は書き換えることが不可能でなければならない。言い換えると、外部から何らかの刺激を与えても、チップ固有の物理的乱雑さ(ランダム)は不変である、あるいは、安定である。あるいは、チップ固有の物理的乱雑さ(ランダム)さは、外部からの刺激、あるいは、外部環境の変化に対して耐性がある。その結果として、チップ認証装置からの出力が安定していることが求められる。もし、チップ固有の物理的乱雑さ(ランダム)を別途準備した乱数起因の乱雑さに書き換えることができるとすると、ネットワーク上でそのチップは別のものに置き換えられてしまう。このような改ざんが攻撃者側に有利な状況を創りだすことは自明である。ここで、外部からの何らかの刺激とは、電界、電磁場、加熱、温度変化、湿度変化、打撃、振動などであり、通常の場合、チップのパッケージを破壊しない程度のものである。
本発明に関わるチップ認証装置は、上述した(出力の独立性)、(入力の独立性)、(出力の予測不可能性)、(入出力の信頼性)、(出力の現実的無限性)、(チップ固有性)、(物理的書き換え不可能性)の、7つすべてを同時に満たしていなければならない。

(検査)
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹ノードに接続している周辺ノードを、本発明によるチップ認証装置を搭載したチップで構成された周辺ノードに置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺ノードが一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹ノードの保守点検の一部として随時行うことが可能である。また、周辺ノードの登録時にも行うことが望ましい。
この検査のためにもっとも有効な方法は、中央管理下にある基幹ノードを使って検査対象となる周辺ノードを実際に遠隔攻撃することである。検査対象となる周辺ノードを構成するチップが本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード42と登録コード43の対応表(図19参照)を保存しているはずである。たとえば、一つの入力コードに対して複数の登録コードのリストが対応している。これらの登録コードは、一つの共通パスコードを複数の周辺ノードに入力したときのそれぞれの出力に対応している。一般に、共通パスコードは一つとは限らないので、図19のような対応表になる。もし入力コードが一つだけであれば、対応表は、図19の、たとえば、上半分のみとなるだろう。図10は、入力コード402が一つの場合の一例である。いずれにしろ、本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図19のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹ノードだけである。図10の入力コード402が図19の入力コード42に対応し、図10の登録コード403が図19の登録コード43に対応している。
図20を用いて、具体的な検査作業の流れを説明する。まず、検査する周辺ノードを見つけたところから始める。次に、検査対象の周辺ノードの内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹ノードに保存されている入力コードの中に一致するものがあるかどうかを調べる。たとえば、図19の入力コード42、あるいは、図10の入力コード402などある。不一致の場合、さらに、基幹ノードに保存されている登録コードと比較する。たとえば、図19の登録コード43、あるいは、図10の登録コード403などである。そこで一致しなかった場合、検査した周辺ノードを公正なものとして承認する。公正と承認されなかったものは不正と判定し接続を遮断することができる。こうして、人手によらず自動的に不正周辺ノードを遮断することが可能となる。次に検査する周辺ノードがあるかどうか探す。なければ終了する。あれば、その検査対象となる周辺ノードの内部メモリを読み出す。以下同様。
図21を用いて、別の検査作業の流れを説明する。第一に、検査する周辺ノードを見つけたところから始める。次に、検査する周辺ノードの内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹ノードに入力コードとして保存されている入力コードの中に一致するものがあるかどうかを調べる。たとえば、図19の入力コード42、あるいは、図10の入力コード402などある。不一致の場合、検査した周辺ノードを公正なものとして承認する。一致する場合、更に基幹ノードに登録コードとして保存されている登録コードの中に一致するものがあるかどうか調べる。たとえば、図19の登録コード43、あるいは、図10の登録コード403などである。一致した場合、検査した周辺ノードを不正品として判定する。一致しない場合、公正なものとして承認する。次に検査する周辺ノードがあるかどうか探す。なければ終了する。あれば、その検査対象となる周辺ノードの内部メモリを読み出す。以下同様。
図20および図21の検査方法の違いは、それぞれ検査基準の違いによって生じる。図20および図21は、本願に関連して考えられる検査方法のほんの二例であるに過ぎない。他の検査基準を考案すれば、他の検査方法を考え出すことが可能である。たとえば、図20および図21において、入力コードの比較と登録コードの比較の順序を入れ替えることも可能である。
イーサネット形式では、MACアドレスフィルタリングという検査方法がある。しかしながら、本願の検査方法、たとえば図20および図21の検査方法には、周辺ノードと基幹ノードを分離し、基幹ノードに保存した入力コードと登録コードが周辺ノードに保存されているかどうかを段階的に検査することが基本であり、MACアドレスフィルタリングにはそのような特徴はない。したがって、本願の検査方法は、MACアドレスフィルタリングとは具体的に異なる検査方法である。
こうして、上述のチップ認証方式を用いるネットワークを構成するすべてのノードは、たとえば、図13のように、訓練を受けたセキュリティ専門家が保守・管理する基幹ノード(たとえば、1400、2400)のグループと、前記セキュリティ専門家が管理できない周辺ノード(たとえば、410、420、430、440,450)のグループに分けられる。ここで、周辺ノード同士はお互いに直接に接続せず、基幹ノードとのみ接続可能とする。こうして、一つの基幹ノードとそれに直接接続する複数の周辺ノードからなるネットワークユニットを構成する。基幹ノードは、基幹ノード同士と任意に接続可能であり、周辺ノード同士は、基幹ノードを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図13は、二つのネットワークユニットが互いの基幹ノード同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹ノード、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の物理的実態を持ったノード(たとえば、情報機器や電子装置)同士の接続は、上述した認証作業によって物理的実態を持つノード同士が互いを認証する、認証接続のことを意味している。
各周辺ノードには、すべて異なるチップ認証装置が搭載されている。図11及び図12に示すように、基幹ノード1400は、少なくとも一つの固有の共通パスコード1410を保有する。図10に示すように、基幹ノード1400が出力する共通パスコード1410は、基幹ノードの内蔵メモリに入力コード(たとえば、402)として厳重に保管される。図12に示すように、共通パスコード1410を入力された周辺ノード(410、420、430)は、この共通パスコードに対しておのおの固有の認証(4101、4201、4301)を基幹ノード1400にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺ノードに搭載される、本発明のチップ認証装置は、図15に示すように、(出力の独立性)を満たさなければならない。図10に示すように、基幹ノード1400は、周辺ノードから返信されてきた出力信号を、入力コード(たとえば、402)のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード(たとえば、403)と便宜比較する。
図14に示すように、一つの周辺ノードが複数の基幹ノードと接続することが許される。この場合、一つの周辺ノード(たとえば、410)は、複数の共通パスコード(たとえば、1410、2410、3410)を入力され、それぞれ異なる入力に対して、それぞれ異なる認証(たとえば、11、12、13)を出力しなければならない。そのため、周辺ノードに搭載される、本発明のチップ認証装置は、図16に示すように、(入力の独立性)を満たさなければならない。

(チップ認証方法)
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、たとえば、登録コード43を偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺ノードの一部を乗っ取り、基幹ノードに不正アクセスすることが可能となる。このような不正行為防ぐため、本発明のチップ認証装置は、図17に示すように、(出力の予測不可能性)を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも(出力の予測不可能性)を満たすことができない。これは、プログラムにより完全な乱数を生成することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード(共通パスコード)を受け取る度に、物理的乱雑さに基づいて出力コード(認証コード)を発生することが望ましい。共通パスコードは周辺ノードのメモリに保存してはならない。電子装置が複数のチップで構成される場合、図7に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺ノード及び基幹ノードが、少なくとも一つのチップから構成される電子装置のネットワークである。
ここで、本願のチップ認証装置のための条件は、上述したPUFの必要条件と対応関係がある。たとえば、(出力の独立性)は、(1)同一の入力をした異なる周辺ノードは常に異なる出力をすることと同一である。(入力の独立性)は、(2)同一の周辺ノードに異なる入力をすれば常に異なる出力をすることと同一である(出力の予測不可能性)は、(3)入力と出力の組み合わせを盗まれても未知の入力に対する出力は予測不可能であることと同一である。(入出力の信頼性)は、(4)入力と出力の関係が安定していて信頼できることと同一である。
(出力の現実的無限性)は、(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となることと同一である。(チップ固有性)は、(6)ネットワーク上のチップ認証はチップに固有の電子信号でなければならない、と同一である。チップ認証装置であるかぎり、(6)を満たすことは自明である。本願では、更に、(7)(物理的書き換え不可能性)チップ固有の物理的乱雑さは、外部から書き換え不能とする。従って、本願のチップ認証装置は、以下説明するように、この7つの条件を全て満たすように構成されなければならない。
上記の必要条件を全て満たす、本発明に関するチップ認証装置は、半導体装置の素子アレイ上に配置した複数の認証素子によって構成することが可能である。ここで、この認証素子は、たとえば“1”と“0”のどちらかに対応する信号を出力するものと仮定する。
ただし、おのおのの認証素子が出力する信号が“1”に対応するのか“0”に対応するのかは確率的であり、その確率がどのようなアルゴリズムにもよらない限り物理的にランダムであるとみなされる。すなわち、“1”と“0”の物理的にランダムな組み合わせを生成できるとみなされる。こうして、上記第三の必要条件、すなわち、(出力の予測不可能性)は満たされる。ここで、“1”を黒、“0”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図22のような白と黒がランダムに配置した市松模様ができる。
“1”と“0”のランダムな組み合わせということは、乱数がデジタルで発生することと同等である。デジタルであるということは、第4の必要条件、すなわち、図18で説明した(入出力の信頼性)が満たされることと同等である。
第5の必要条件、すなわち、出力のパターンが現実的に無限と見なせるほど大きな数となること、を満たすためには、素子アレイ上の素子の数を十分に大きくすることが必要である。
第一の必要条件、すなわち(入力の独立性)と、第二の必要条件、すなわち(出力の独立性)は、この市松状の白黒のランダムパターンをどのように活用するかによって満たすことが可能である。第六の必要条件、すなわち、(チップ固有性)は、“1”と“0”のランダムな組み合わせを生成する確率がチップに固有であれば満たされる。第七の必要条件(物理的書き換え不可能性)は、このランダムな組み合わせが通常のチップの利用方法では改ざんできないことを意味する。以下具体的に説明する。
図23は、図22を実現するための素子の配列の一例である。行方向にL本のワード線503が並んでいる。図中は縦方向に相当する。それと直行するように、ビット線902が列方向にM本並んでいる。L本のワード線503とM本のビット線902が交差するところにチップ認証装置のエレメントである認証素子977が配列する。
図24は、図23の認証素子用アレイ960の中からN本のワード線503とN本のビット線902を抜き出したものである。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))を第一列から順に対応させる。このとき、a(i)とb(j)の組み合わせで構成される入力に対して、第i行第j列の認証素子977が出力する信号に関連するデータを要素d(i,j)とする。たとえば、d(i,j)は“1”あるいは“0”である。ただし、iおよびjは1からNまでの自然数である。ここで、自然数の組み合わせ (i,j)は、認証素子977のアドレスに対応する。図24の例では、要素d(5,N-2)が図示されている。ここで、要素d(i,j)の集まり{d(i,j)}は、0と1のランダムな集合体で構成される乱数コードである。d(i,j) の値が1のときを黒、0のときを白とすれば、図22のような、白と黒のランダムな市松模様が得られる。
このように、入力コードを2つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列aと配列bを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列aと配列bを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列aと配列bの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ960の行数と列数の和は、少なくとも入力コードの全要素数より大きいものとする。ここで、上記入力コードを{a(i),b(j)}と表記することにする。ただし、i、および、jは、それぞれ独立の自然数とする。こうして、数列{a(i)}、数列{b(j)}、及び乱数コード{d(i,j)}から、何らかの方法を用いて出力コード{c(i,j)}を作成する。入力コード{a(i),b(j)}及び出力コード{c(i,j)}の組み合わせが、図9の交信シリーズ80に対応している。この乱数コード{d(i,j)}の一例として、物理乱数を用いればよい。
本発明に係る例について、主に、第一の入力数列{a(i)}と、第二の入力数列{b(j)}と、及び物理乱数{d(i,j)}とから、出力コード{c(i,j)}を作成する方法について、以下図面を参照して説明する。
一例として、数列{a(i)}および{b(j)}の要素は0か1であるとし、出力コード{c(i,j)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。
Figure 2021190980
式1

図25は、数列{a(i)}、数列{b(j)}、及び物理乱数{d(i,j)}と、式1に基づいて出力される出力コード{c(i,j)}との関係を一覧表にしたものである。この方法を用いると、0と1の数の割合に平均として変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な必要条件である。すなわち、式1の右辺に入力される情報量と、式1の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式1で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。情報量を失うということは、五番目の必要条件(5)一つの入力に対する出力のパターンが現実的に無限と見なせるほど大きな数となること、を満たす上で障害になる可能性がある。したがって、このような状況は可能な限り避けるべきである。この必要条件(5)を満たすためには、乱数の場合の数が現実的にほぼ無限とみなされるほど大きな数になることが求められる。
図26は、式1で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i,j)}を発生し、基幹ノード400から、共通パスコードとして、入力コード{a(i),b(j)}が入力され、コード発生装置602で出力コード{c(i,j)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共にチップ認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図22で概念的に説明した方法を用いる。コード発生装置602は、式1で判るように、コード発生に一種のアルゴリズム(剰余演算)を使用しているが、同時に物理乱数{d(i,j)}で物理的乱雑さを取り込んでいる。この物理乱数{d(i,j)}は、前記チップに固有な物理的乱雑さである。このため、上の必要条件(3)、すなわち、(出力の予測不可能性)が満たされる。なお、入力コードの全要素を取り込むためには、乱数発生装置601の行数と列数の和は、少なくとも、{a(i)}の要素数と {b(j)}の要素数の和と同じか、それより大きいものとする。
図27は、本願の他の一例を説明する図面である。すなわち、基幹ノード400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺ノードにモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、特に図示しないが、基幹ノード400に接続する周辺ノードは、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、入力コード(P’、S’、T’、…)の入力に対して認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹ノード400へ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置604に返し、スクランブルした認証(P1’、S1’、T1’、…)を基幹ノード400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1’、S1’、T1’、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹ノード400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
いずれにしろ、コスト面から、スクランブル装置604はチップ認証装置600を搭載するチップに混載することが望ましい。図28は、スクランブル装置604の基本構成の一例を示す図である。この例では、スクランブル装置604は、乱数発生装置605及びコード発生装置606から構成される。スクランブル装置604を構成する乱数発生装置605およびコード発生装置606の詳しい説明は、図26で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置606は、スクランブル装置604の外に置くことも可能である。
図29は、図23の認証素子977により構成される、認証素子用アレイ960の一例、もしくは、一部を示すものである。図23とは逆に、行が横方向、列が縦方向になっている。この一例では、行数はN+Kで、列数はNである。上部K行N列の領域を、スクランブル装置604を構成するスクランブル装置セルアレイ614とし、下部N行N列を、チップ認証装置600を構成するチップ認証装置セルアレイ611としている。もちろん、この行と列の役割は逆転させても本願の本質には変更がない。
図30は、スクランブル装置604を構成する乱数発生装置605を実現する方法の別の一例を説明する図である。まず、{a(j)+b(j)}を列毎に入力する。ここで、jは列番号である。次に、式2に従って、物理乱数の要素d(i,j)を行方向に足し上げたものを2で割ったあまりに、列番号(j)に従ってa(j)+b(j)を加える。ここで、iは行番号である。その和を更に2で割ったあまりを中間出力{f(j)}とする。こうして、入力コード{a(j),b(j)}はスクランブル装置604で物理的乱数を取り込んで中間コード{a(i),f(j)}に変換される。この{a(i),f(j)}を次の入力コードとしてチップ認証装置600に入力し、式3に従って、出力コード{c(i,j)}を出力する。なお、自明なので特に説明しないが、{b(j)}はダミーであっても良い。
Figure 2021190980
式2

Figure 2021190980
式3
ここで、スクランブル装置604の行数Kとチップ認証装置600の行数Nの選び方は、必ずしも基幹ノード側で管理する必要はない。たとえば、周辺ノードを基幹ノードに登録する際、周辺ノードの所有者、あるいは、周辺ノードの正規の管理者が、任意に決定してもよい。決定された(N、K)は周辺ノード側の内部メモリ等に保存することが可能である。あるいは、反対に、(N、K)を基幹ノードの内部メモリ等に保存することも可能である。
(N、K)は、必ずしも基幹ノード側が知らなくても良い情報であるが、基幹ノードが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹ノード側で検査し必要に応じて改定することが可能である。その際、改定された(N、K)で周辺ノードを再登録する必要がある。
(N、K)を改定すると、たとえ同じ入力コード{a(i),b(j)}を入力しても、スクランブル装置604が生成する中間コード{a(i),f(j)}が異なる。したがって、チップ認証装置600が生成する出力コード{c(i,j)}も異なる。
たとえば一例では、基幹ノードは前回のメンテナンス時に改定した(N、K)を記録しておく。次のメンテナンス時、周辺ノードの内部メモリに保存されている(N、K)を読み出し、前回基幹ノードに記録しておいた(N、K)と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこの周辺ノードを切り離すか、管理者に警報を出すことができる。こうして、(N、K)をセキュリティバッファーとして有効活用することも可能である。なお、式1−3に基づくコード生成方法では、物理乱数{d(i,j)}を用いているので、仮にセキュリティバッファ(N、K)が流出したとしても問題ない。
上記の式1−3にしたがってコード生成するため、該コード発生装置602を含む周辺ノードに搭載される演算処理装置を使用する場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該演算処理装置の外に出力しないよう、演算処理装置内のレジスタに、中間出力{f(j)}の一部あるいは全部を格納することが望ましい。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該周辺ノードの外部には出力されない。
また、遠隔操作によってコード生成中のレジスタからチップ内あるいは演算処理装置内に閉じ込められた中間出力{f(j)}をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。たとえば、通常のパソコンでは32ビット、多くとも64ビットしかない。一方、中間出力{f(j)}をすべて記録するのに必要な容量はNビットである。したがって、Nが十分大きければ、コード生成するには、中間コード{f(j)}をいくつかのセグメントに分割してレジスタに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をRとすると、図30において、たとえば、第1列から第R列までをセグメント1、第R+1列から第2R列までをセグメント2、第2R+1列から第3R列までをセグメント3、…とし、式2に基づいてセグメント毎に中間出力{f(j)}の一部を生成し、レジスタに格納する。すなわち、Nが十分大きければ、中間出力{f(j)}を格納したレジスタ領域はセグメントを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力{f(j)}の全体を一度に盗まれることはない。
あるいは、上記の式1−3にしたがってコード生成するため、該コード発生装置602を含む周辺ノードに搭載される演算処理装置を使用する場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該周辺ノードの外に出力しないよう、該周辺ノードの内部メモリに、中間出力{f(j)}の一部あるいは全部を格納することが望ましい。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該周辺ノードの外部には出力されない。
あるいは、上記の式1−3にしたがってコード生成するため、同一チップ内の周辺回路を用いる場合、スクランブル装置604とチップ認証装置600の間に生成される中間出力{f(j)}は、該チップの外部には出力されない。つまり、入力コードの一部である{a(i)}と中間出力{f(j)}から構成される中間コード{a(i),f(j)}は、該チップの外部には出力されない。
いずれにしろ、出力コード{c(i,j)}の生成が終われば中間出力{f(j)}は自動的に上書き消去することが望ましい。また、本願では、入力コード{a(i),b(j)}から中間コード{f(j)}を生成するのに物理乱数{d(i,j)}(i=1,…K)を利用しているので、物理乱数{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)を利用しているので、物理乱数{d(i,j)}(i=K+1,…K+N)の要素数が十分大きければ、出力コード{c(i,j)}を予測することは現実的に不可能である。
たとえば、図29の例で考えてみよう。スクランブル装置セルアレイ614(行数K)およびチップ認証装置セルアレイ611(行数N)のビット容量を概算すると次のようになる。まず、入力コードの場合の数は、2の2N乗である。スクランブル装置セルアレイ614の物理乱数{d(i,j)}の場合の数は、2のNK乗である。一方、チップ認証装置セルアレイ611からなる物理乱数{d(i,j)}の場合の数は、2のY乗であり、YはNの2乗である。出力コード{c(i,j)}の場合の数は、2のZ乗であり、ZはNの2乗である。
次に、(N、K)を決定するために必要な要件を考える。一般的なデジタル暗号回線で用いられる入力コードは、現在128ビットから256ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから10年程度の間は256ビットからせいぜい512ビットの間で推移するであろう。そこで、一例としてN=K=512の場合で見積もる。このとき、入力コードの場合の数は、2の512乗である。これは、既に非常に大きな整数の桁数である。実際にほぼ無限と考えて差し支えない。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は更に大きく、もすべて同様に2の512乗の2乗である。もちろん、現実的な無限大である。ここで、512の2乗は262,144なので、スクランブル装置を含めても262キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。また、この物理乱数{d(i+N,j)}も前記チップに固有の物理的乱雑さにである。
N=K=128の場合では、入力コードの場合の数は、2の256乗であり、およそ10の77乗となる。上述したように、物のインターネットでは通信ノードの数は全世界で一兆個(10の12乗)より多くなると考えられる。10の77乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、ノード数一兆個としても10のマイナス65乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は、すべて同様に2の128の更に2乗となり、もちろん、現実的な無限大である。ここで、128の2乗は16、384なので、スクランブル装置を含めても16キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
このように、仮に中間コード{f(j)}が盗まれていたとしても、物理乱数{d(i,j)}(j=K+1,…K+N)からなる物理的乱雑さによって出力コード{c(i,j)}を予測するのは現実的に不可能である。その上、セキュリティバッファ(N、K)を随時更新することができるので、同じ入力コード{a(j),b(j)}に対して生成される中間コードは随時更新される。
図31は、スクランブル装置セルアレイ614とチップ認証装置セルアレイ611を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線503を共有している。図32は、スクランブル装置セルアレイ614とチップ認証セルアレイ611を含むメモリチップの他一例を示す図である。メモリ領域を含むこれら3つの領域がビット線方向に配列し、ビット線902を共有している。このように、ワード線503とビット線902を入れ替えても、本願の発明は、本質的に何も変わりはない。
図33は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにキャパシタ982を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すようになる。ワード線503とビット線902の間に電圧を印加することで、選択された交差点のキャパシタ982に電界を印加することが可能である。なお、ここで破壊のために印加する電圧は交流でも直流でもかまわない。
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は低い電界でも電流を流しやすくなり、たとえばメモリでは“1”に相当する。図22では黒に相当する。反対に、破壊しなかった認証素子は低い印加電界に対して電流を流し難く、たとえばメモリでは“0”に相当する。図22では白に相当する。絶縁破壊のための印加電界やキャパシタの詳細な条件(物性、構造、サイズ等)を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ50%程度にすると、図22のような白黒のランダムな市松模様が得られる。
図34は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのために認証素子977(図33の例ではキャパシタ982)に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じて認証素子977を通して流れる電流の絶対値である。ここで、電圧が高ければ認証素子に印加される電界が高く、電圧が低ければ電界も低くなる。破壊された認証素子(破壊認証素子)では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった認証素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧932における破壊判定電流値933と非破壊判定電流値934を設定する。すなわち、絶対値が破壊判定電圧932に一致する読み出し電圧を認証素子977に印加したときに、認証素子977を流れる電流の絶対値が破壊判定電流値933より高ければ、当該認証素子は破壊していると判定し、非破壊判定電流値934より低ければ破壊していないと判定する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、一行目にこのアドレスを2進法で表記している。こうして選択されたアドレスに対応する認証素子977が接続するワード線503とビット線902の間に、図34で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、次の認証素子のデータを読み出す。認証素子用アレイ960中の全ての認証素子のデータが読み出されるまでこの作業を繰り返す。
図34の判定方法には、破壊判定電流値933と非破壊判定電流値934の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊されたとも非破壊のままであるとも判定されない。このような認証素子は、メモリに相当すると“0”でも“1”でもないため、 “X”と表記することにする。このとき、2進表記した認証素子のセルアレイ上のアドレスと、対応する認証素子のデータの一例を示したのが図35である。その3行目を見ると、一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”…“0”となっている。このように、左から五番目の認証素子のデータが“X”になっている。
次に、図35のような“0”と“1”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図22の白黒のパターンになると予想される。ここで、“0”は白に変換され、“1”は黒に変換されるものとする。しかしながら、“0”でも“1”でもない“X”が存在すると、図22のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“X”に対応する認証素子をプロットから排除しなければならない。
たとえば、 “X”に対応する認証素子のアドレス(たとえば、図35の例では2進法表記で100)をバッファーに保存する。各アドレスに対応する認証素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、図35の4行目のように、“X”に対応する認証素子のデータは取りのぞかれ、“0”と“1”のみからなるデータとアドレスの組み合わせが生成される。こうして、図22のように、白黒の市松状のパターンが得られる。
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったり、ハード破壊モードに遷移したりすることもあり状態が不安定である。しかしながら、一度ハード破壊モードに陥ると、非破壊状態に戻ることはなく、またソフト破壊モードに遷移することもない。本発明においては、図34および図35で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“1”とみなし、ソフト破壊モードを“X”としている。破壊判定電流値933と非破壊判定電流値934の間のギャップは、ソフト破壊モードに“X”をラベルするためのものである。こうして、上述した方法によって、“X”のソフト破壊した素子のデータを取り除くことによって、図22の市松状の白黒パターンは、繰り返し電圧を印加しても変化し難くなり、パターンの再現性を獲得する。これは、上記必要条件(4)入力と出力の関係が安定していて信頼できること、を満たすのに有利である。このように、破壊認証素子は、ハード破壊していることが望ましい。
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするよう制御することは難しい。したがって、電気的ストレスを繰り返すうち“X”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の認証素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さの情報量が不足する。さらに、物理的乱雑さを最大限にするには、情報エントロピーの考え方から“0”と“1”の割合がおおよそ50%ずつになることが望ましい。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返し、ソフト破壊モード“X”を減らしたり、“0”と“1”の割合を所定のレベルに調整したりする方法が必要になる。以下破壊パルスの繰り返し方法を説明する。
一例として、図36の方法を紹介する。第一破壊パルス電圧を印加した後、図34で説明した方法で破壊検査を実施する。“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図34の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図34の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定しておく必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。検査に合格した場合、上述したように“X”とラベルされた認証素子のアドレスをバッファーに記録し、対応する認証素子のデータを取り除く。ただし、認証素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな情報量の物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
ここで、“X”はソフト破壊状態に対応するので、複数回パルスを印加しているうちにハード“1”に遷移するものが出てくる。“0”から“X”に遷移するものの割合が少なくなければ全体として“0”の割合が下がり、“1”の割合が多くなる。すなわち、たとえ1回目のパルスを与えた際は“0”の数が多くても複数回パルス印加するうちに“1”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合を50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な情報量の物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
破壊パルスを繰り返し印加する他の一例として、図37を紹介する。図36の例との違いは、破壊パルスが印加されるたびに高くなっている点である。その他の説明は図36の例と同様なので省略する。
ソフト破壊モード“X”を取り除く別の方法は、“X”の認証素子のみ選択し、ハード壊モード“1”に遷移するまで、繰り返し電圧を印加する方法ものである。このときの破壊電圧の印加の仕方は、たとえば、図36あるいは図37のような方法である。この方法は、 “0”の割合がまだ“1”の割合よりある分だけ高いうちに行うことが望ましい。
また別の一例では、認証素子の素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。たとえば、図38のように、第一導電体1053、第二導電体1052、絶縁膜910、導電体先端部1051からなる素子構造を考えよう。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線502あるいはビット線902のどちらか一方に接続し、第二電極1054は他方に接続する。導電体先端部1051周辺の絶縁膜1050の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部1051の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部1051の深さには製造ばらつきがあるので、導電体先端部1051と第二導電体1052の間の絶縁膜1050の破壊発生確率も認証素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって“0”と“1”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。
図39は、認証素子977の別一例を示す図である。ワード線503とビット線902の交差するところにダイオード要素が配置している。具体的には、一例としてPN接合986(図39)で可能である。あるいは、別の一例として、ショットキー接合987(図40)が可能である。ダイオードに強い電圧ストレスを印加すると、ダイオードは確率的に破壊される。破壊されたかどうかは物理的に乱雑であり、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、たとえばメモリの“1”に相当する。破壊されなかったダイオードでは、逆方向の読み出し電圧を印加しても電流が流れ難く、たとえばメモリの“0”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。
上述のように、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がPN接合986やショットキー接合987のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がキャパシタ982の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図34と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、PN接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。
図41は、認証素子977がトランジスタ983の場合を示す図面である。一般に、トランジスタは、半導体基板表面の二つの近接する拡散層とゲートキャパシタから構成されている。ゲートキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この例では、二つの拡散層の内一方をビット線902に接続している。ゲート電極にはワード線503を接続する。すなわち、この例では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、たとえばビット線902に対してワード線503に電圧ストレスを印加する。この電圧ストレスは、一例として、図36のようなパルスでも良い。また別の一例として、図37のようなパルスでも良い。読み出しは、図34のように、ビット線902とワード線503の間に破壊判定電圧932を印加し、ビット線902とワード線503の間を流れる電流を読めば良い。
図42は、認証素子977が、トランジスタ983とキャパシタ982から構成されるDRAMセルの場合である。ここでは、キャパシタ982の破壊を利用する方法を説明する。具体的には、トランジスタ983をオン状態にするための転送電圧をワード線503とビット線902の間に印加する。その間にビット線902に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図36や図37のようなパルスである。読み出しは、図34のように、ワード線503に転送電圧を印加している間に、ビット線902を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ983をオン状態にするのに必要な電圧である。トランジスタ983のゲート絶縁膜を破壊する場合、図41と同様な方法が可能である。このとき、ビット線902に繋がっている側のゲート絶縁膜が破壊されることになる。いずれにしろ、破壊は確率的であり、物理的乱雑さの起源となる。
ここで重要なことは、認証素子977は、通常のDRAMセルをそのまま用いることができる点である。すなわち、DRAMチップに本願のチップ認証装置を追加する場合、メモリセル領域の一部に認証装置領域(セルアレイ)を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、DRAMに限らず一般的なメモリ容量に比べて非常に少なくて済む。
上述したように、図29のセルアレイを例にとり、N=K=512の場合で見積もると、262キロビットもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。N=K=128の場合、16キロビットもあればチップ認証装置としては十分な容量であることがわかる。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4ギガビット)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
DRAMの価格は、現在、4ギガビット品で2.5米ドルから3米ドルの間で推移している。DRAMセルをそのまま認証素子977として使用することができるので、物理乱数の情報量を十分維持しながら、ソフト破壊モード “X”の分を取り除いて(入出力の信頼性)を確保したとしても、スクランブル装置を含めたチップ認証装置の値段は、1チップ辺り最大でも0.03米セント程度である。
図43は、認証素子977の別の一例を示す図である。ワード線503とビット線902の交差するところに不揮発性メモリの制御に用いる選択トランジスタ984を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、ゲート積層構造である。前記選択トランジスタ984は、このメモリ素子の層間絶縁膜の一部もしくは全てを層間導電層に置き換えたものである。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線503に高電圧を印加することで、選択された交差点の選択トランジスタ984のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ983のゲート絶縁膜の破壊と同様になる。また、トンネル膜の破壊は確率的であり、物理的乱雑さの起源となる。すなわち、トランジスタ983のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。
図44は、認証素子977の別の一例を示す図である。ワード線503とビット線902の交差するところに抵抗985を配置している。ワード線503とビット線902の間に高電圧を印加することで、選択された交差点の抵抗985に電界ストレスを加えることが可能である。
あるいは図92のようにトランジスタ983および可変抵抗981からなる可変抵抗メモリ素子989である。この可変抵抗981が電圧印可で抵抗値を制御できるものである場合、この可変抵抗メモリ素子989はReRAMである。また、この可変抵抗981が加熱によって抵抗値を制御できるものである場合、この可変抵抗メモリ素子989はPCRAMである。あるいは図93のようにトランジスタ983および磁気抵抗980からなる磁気抵抗メモリ素子990である。この磁気抵抗がGMR膜である場合、この磁気抵抗メモリ素子990はMRAMである。また、この磁気抵抗がSTT膜である場合、この磁気抵抗メモリ素子990はSTT-MRAMである。あるいは図94のように電荷蓄積層付き不揮発性メモリ素子988である。ここで、電荷蓄積層は電荷トラッピング層でも浮遊ゲートでも良い。あるいは、図95のように意図的にビット線端子を排除したNAND型配列上に配置した電荷蓄積層付き不揮発性メモリ素子988である。あるいは、図96のようにトランジスタ983および強誘電体キャパシタ991からなる強誘電体メモリである。
一般に、抵抗は高抵抗導電材を二つの端子で挟んだものであり、抵抗に高電界を印加すると確率的に断線し、ワード線503とビット線902の交点は非導通(ショート)状態になる。ショートしなかった場合(非ショート)、ワード線503とビット線902の交点は導通状態である。どのアドレスの抵抗がショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図22のようなランダムな市松パターンを作ることができる。
抵抗が破壊されたかどうかは、抵抗985に読み出し電圧を印加して判定する。ショートした認証素子では、読み出し電圧を印加しても電流が流れづらく、たとえばメモリの“0”に相当する。ショートしなかった認証素子では、読み出し電圧が低くても電流が流れやすく、たとえばメモリの“1”に相当する。このような抵抗のショートは、導電体の破壊と同じであり、たとえば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“0”に相当し、発生しなかった素子はメモリの“1”に相当する。
図45は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのために抵抗985に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じて抵抗985を通して流れる電流の絶対値である。ショートしなかった認証素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした認証素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧742における非ショート判定電流値743とショート判定電流値744を設定する。すなわち、絶対値がショート判定電圧742に一致する読み出し電圧を抵抗985に印加したときに抵抗985を通して流れる電流の絶対値が、非ショート判定電流値743より高ければ、ショートしていないと判定し、ショート判定電流値744より低ければショートしていると判定する。
図45の判定方法には、非ショート定電流値743とショート判定電流値744の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある認証素子977は、ショートが発生したとも発生しなかったとも判定されない。このような認証素子977は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、認証素子977のセルアレイ上のアドレス(番地)と、対応する認証素子977のデータの一例を示すと、認証素子977がキャパシタ982の場合と同様に、図35のようになる。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”、…、“0”となっている。このように、五番目の素子のデータが“X”になっている。ここで、“X”を取り除き、図22のような白黒のみの市松模様を得る方法は、キャパシタ982の場合と同様なので、ここでの説明は省略する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図45で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、次の認証素子のデータを読み出す。図23に示す認証素子用アレイ960中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図46は、抵抗985の一例を示す図である。第一導電体1053、第二導電体1052、絶縁膜910、導電体接合部970からなる素子構造である。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線503あるいはビット線902のどちらか一方に接続し、他方は第二電極1054に接続する。導電体接合部970の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ50%になるように調整することが望ましい。ここで、繰り返しパルス印加の具体的方法は、例えば、図36や図37のような方法が考えられる。
一般に、電気的ストレスによって導電体接合部970の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部970は断線(ショート)する。断線後は、例えば、図38のようになり、導電体接合部970は導電体先端部1051のように変形する。更に高温のため酸化が進み、断線箇所、すなわち導電体先端部1051と第二導電体1052の間には絶縁膜1050が入り込む。こうして、非ショート状態からショート状態に遷移する。
更に電気的ストレスを繰り返し印加し続けると、断線箇所の酸化膜が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらか一方を人為的に優勢にするような制御は難しい。その中間状態が“X”である。したがって、電気的ストレスを繰り返すうちに“X”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図45で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図45の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図45の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファーに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
一方、物理的乱雑さを最大限に利用するには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。 “X”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“0”に遷移するので、たとえ1回目のパルスを与えた際は“1”の数が多くても複数回パルス印加するうちに“0”の割合が増えていく。ここで、繰り返しパルス印加の具体的方法は、例えば、図36や図37のような方法が考えられる。
このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合をほぼ50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
図47は、図44に採用される抵抗985の別の一例である。これは、金属配線パターン作成時に一緒に作成することができる。したがって、導電体930は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図47のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。たとえば、第一電極1055はワード線503に接続し、第二電極1054はビット線902に接続する。
また、図47のように矩形に曲がった部分は通常のメタル配線より細いことが望ましい。たとえば、矩形部分以外のところをレジストでマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。
導電体930は、複数回矩形に曲げることも可能である。図48はその一例であり、9箇所矩形に曲がっている。こうして、ショートする確率を配線パターニングで調節することも可能である。ただし、第一電極1055はワード線503に接続し、第二電極1054はビット線902に接続する。
図49の導電体ビア530は、たとえば、第一導電体1053の側から絶縁膜910を貫通する穴(ビア)を開け、そこに導電材料を埋め込んで作成できる。これは、図46の導電体接合部970の一例である。ここで、ビア深さの狙い値を第一導電体1053と第二導電体1052の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図49の中央の素子のように、ビアが第一導電体1053と第二導電体1052の間にぴたりと収まる。
しかしながら、一般には、図50に示すように、ビアのアスペクト比や穴径には製造上の避けられないばらつきがある。このばらつきは、ビア深さをもばらつかせる。こうして、ある素子では導電体接合部970の長さが足りず、第一導電体1053と第二導電体1052の間が断線(ショート)して図38のようになる。またある素子では接続(非ショート)して図46のようになる。たとえば、この図49の例では、左からショート、接続(非ショート)、接続(非ショート)である。
ワード線503とビット線902で選択した認証素子977の導電体接合部970がショートしていれば電流は流れず、たとえばメモリセルに対応させると“0”状態となる。反対に、ショートしていなければ電流が流れ、たとえばメモリセルに対応させると“1”状態となる。 “0”を白、“1”を黒とみなすと、図22のようなランダムな白黒のパターンが生成される。
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図22のような白黒のランダムな市松パターンを得ることができる。
しかしながら、導電体ビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。たとえば、ショートしている場合(たとえば、図49の左端の認証素子)、電気的ストレスを繰り返すうちビア底と第二導電体1052の間の絶縁膜の一部(たとえば、図38の絶縁膜1050)が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合(たとえば、図49の中央)、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“1”が優勢の場合、データ“1”の素子のみ選択して電気的ストレスを印加し、反対に、データ“0”が優勢の場合、データ“0”の素子のみ選択して電気的ストレスを印加する。こうして、“1”と“0”の割合を検査しながら、所望の割合に近づくまで、このような電気的ストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子郡に繰り返し印加するストレスパルスは、たとえば、図36や図37のようなものを使うことができる。
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図35の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図45で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する認証素子のアドレスを変更し、新たに選択した認証素子のデータを同様な方法で読み出す。こうして図23に示す認証素子アレイ960中の全ての認証素子のデータが読み出されるまでこの作業を繰り返す。
上述の例では、たとえば、図38あるいは図46において、第一電極1055は、ビット線902とワード線503のどちらか一方に接続し、第二電極1054は他方に接続している。しかしながら、本願に関る構成の範囲はこれに留まらず次のような構成も可能である。たとえば、図51のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図52のように、第一電極1055と第二電極1054のどちらか一方が接地され、あるいはソース線に接続され、あるいは別の回路に連なる任意の端子に接続される。他方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図53および図54は、認証素子としてキャパシタ982を用いた場合を示す図面である。たとえば、図53のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図54のように、第一電極1055と第二電極1054のどちらか一方が接地され、あるいはソース線に接続され、あるいは別の回路に連なる任意の端子に接続される。他方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図55および図56は、認証素子としてPN接合986を用いた一例を示す図面である。たとえば、図55のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図56のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図57および図58は、認証素子としてショットキー接合987を用いた一例を示す図面である。たとえば、図57のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図58のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図59および図60は、認証素子として抵抗985を用いた一例を示す図面である。たとえば、図59のように、第一電極1055と第二電極1054のどちらか一方が2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。第一電極1055と第二電極1054の他方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図60のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。また、抵抗985の一例として、図47および図48の導電体930が挙げられる。導電体は、細く、あるいは、矩形状に加工することによって抵抗体あるいはヒューズとして利用できる。あるいは、図46のように、導電体接合部970を導電体930として用いることもできる。
図61および図62は、認証素子としてトランジスタ983を用いた一例を示す図面である。たとえば、図61のように、トランジスタ983のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。トランジスタ983のソースおよびドレインは、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図62のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図63および図64は、認証素子としてトランジスタ983およびキャパシタ982からなるDRAMセルを用いた一例を示す図面である。この図63のように、トランジスタ983のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。トランジスタ983のソースおよびドレインの一方は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。トランジスタ983のソースおよびドレインの他方は、キャパシタ982の二つの端子のうちの一方に接続する。キャパシタ982の他方の端子は、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図64のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図65および図66は、認証素子として選択トランジスタ984を用いた一例を示す図面である。たとえば、図65のように、選択トランジスタ984のゲートが、2つの制御ゲート(第一の制御ゲート996および第二の制御ゲート997)を挟んでゲート電極955と接続する。選択トランジスタ984のソースおよびドレインは、接地してもよいし、ソース線に接続しても良いし、あるいは別の回路に連なる任意の端子に接続しても良い。ここで、ビット線902は第二の制御ゲート997に接続し、ワード線503は第一の制御ゲート996に接続する。あるいは、図66のように、ビット線902は第一の制御ゲート996に接続し、ワード線503は第二の制御ゲート997に接続する。
図67は、ビット線方向に隣り合った選択トランジスタ984同士の拡散層を接続した場合の例である。これは、NAND型の配置と言われるもので、素子と素子の間からビット線端子を取り除いた状態になっている。ただし、素子が不揮発性メモリセルではなく、認証素子977なので、いわゆるNANDフラッシュとは異なり、NAND型認証素子アレイである。ここでは、認証素子は選択トランジスタ984であるが、特に、そのトンネル膜から構成されるキャパシタの絶縁破壊を用いる。図68は、NAND型認証素子アレイの別の一例である。この例では、認証素子としてトランジスタ983を採用している。ここでは、特に、そのゲート絶縁膜から構成されるキャパシタの絶縁破壊を用いる。したがって、動作方法は同様であり、以下まとめて説明する。なお、セル間のビット線端子を排除してもビット線を排除した訳ではない。したがって、NAND型配列であっても配線レイアウト上ビット線とワード線が交差するところに認証素子977が配置していることには変わりはない。
図69は、上述の認証用素子アレイ960の一例である。ページバッファ790は、NAND型不揮発性メモリセルアレイのページバッファを兼ねることができる。ページバッファ790は、ビット線902との接続をオン/オフさせるためのビット線接続ゲート791を含んでいる。更に、ページバッファ790は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
上述の例では、NANDフラッシュのメモリセルを混載することができる。しかしながら、DRAMやSRAM等の揮発性メモリ、あるいは、NORフラッシュ、磁気抵抗メモリ(MRAM)、スピントルク型磁気抵抗メモリ(STT-MRAM)、相変化型メモリ(PCRAM)、抵抗変化型メモリ(ReRAM)、強誘電体メモリ等の別種の不揮発性メモリを混載することも可能である。いずれにしろ本願の本質を変更する必要はない。すなわち、本発明に関する認証素子アレイ960と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
認証素子977に電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線電極側にあるドレイン選択トランジスタ(SGD)9811をオン状態にする。同様に、破壊したい素子につながるワード線とビット線電極側のドレイン選択トランジスタ9811の間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各セルトランジスタ(認証素子977)をオン状態とする。ここで、破壊パルスを印加したい素子につながるビット線の電位を0Vにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、たとえば、図36または図37で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図36または図37を試してパルス回数を決定し、それをチップ内のメモリ領域(あるいはバッファー)に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
図70は、本願に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出す認証素子977(セルトランジスタ)に関する1本のワード線を選択し、0Vより高い所定の電位を与える。選択ワード線とドレイン選択トランジスタ(SGD)9811の間に他のワード線が存在する場合は、そのワード線にも正の電位を与え、関連する認証素子(セルトランジスタ)をオン状態とする。ビット線は0Vないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図34の破壊判定電圧932程度である。同時に、ドレイン選択トランジスタ(SGD)9811のゲートには正の電位を与え、ドレイン選択トランジスタ(SGD)9811をオン状態にする。次にビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977の絶縁膜が破壊され導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正の電位を与え、ビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の絶縁膜の導通・非導通状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位(たとえば、破壊判定電圧値9330)以上であれば選択した認証素子977の絶縁膜は破壊されていると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9340)以下であれば選択した認証素子977の絶縁膜は破壊されていないと見なす。ここで、破壊判定電圧値9330及び非破壊判定電圧値9340は、それぞれ、図34の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
図71を用いて、本実施例に関する破壊検査時の電圧パルス波形の別の一例を説明する。まず、読み出す認証素子977(セルトランジスタ)に関する1本のワード線を選択し、0Vを与える。同じく選択ワード線とドレイン選択トランジスタ9811間に他のワード線が存在する場合は、そのワード線にも正の電位を与え、関連する認証素子(セルトランジスタ)をオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図34の破壊判定電圧932程度である。同時に、ドレイン選択トランジスタ9811のゲートには正の電位を与え、ドレイン選択トランジスタ9811をオン状態にする。次に、ビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977の絶縁膜が破壊され導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正電位を与えビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の絶縁膜の導電・非導電状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位(たとえば、破壊判定電圧値9331)より低ければ、選択した認証素子977の絶縁膜は破壊されていると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9341)より高ければ、選択した認証素子977の絶縁膜は破壊されていないと見なす。ここで、破壊判定電圧値9331及び非破壊判定電圧値9341は、それぞれ、図34の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
不揮発性メモリの複数のブロックの隣に1ブロック分の領域をチップ認証装置アレイとして割り当てることが可能である。たとえば、図31や図32のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線902、あるいは、ワード線503を共有することでチップ面積を節約することが可能である。
図22に示したような半導体装置の素子アレイ上に構成できる物理的にランダムな組み合わせの特殊な例は、例えば、行ごとに“1”と“0”を数え、“1”が多ければその行を黒とする。“0”が多ければその行を白とする。あるいは、行ごとに“1”と“0”を2進法で足し上げた結果の1桁目の値が“1”ならその行を黒とする。反対に“0”ならその行を白とする。あるいは、各行に関する何らかの性質に応じて行ごとに“1”か“0”を決定することが可能である。
このように、なんらかの演算によって行ごとの値(“1”か“0”)を決定し、その結果を、図72のように、各行に対応する代換素子979に記録する。たとえば、2進数のビット演算なら何でも可能である。あるいは、“0”および“1”を総和して、最下位の桁のみを代換素子979に記録することが望ましい。あるいは、“0”の数と“1”の数を比較し、多い方の値を代換素子979に記録することも可能である。代換素子979は、メモリ素子やヒューズ等が好ましい。ただし、メモリ素子は不揮発性であっても揮発性であっても良い。たとえば、不揮発性の場合浮遊ゲートを有するものであることが望ましい。あるいは、磁気抵抗の変化を使ったものであったり、層変化を使ったものであったり、抵抗層の抵抗値の変化を使ったものである。揮発性の場合キャパシタや(SRAMなど)特殊な回路に蓄積した電荷量を使ったものでもよい。
いずれにしろ、図22の白と黒のランダムな市松模様は、図73のように、ランダムな水平模様に変換される。これは、2次元コードからバーコードへの変換と似ている。この変換により同じ行数での情報量は減少するが、行数が十分大きく、縞模様における白と黒の割合が一方的でなければ、十分な乱雑さを保持できるはずである。
ここで、図23は、図22を再現するために、各々市松格子状には何らかの認証素子977が配置したものである。これまで述べてきたように、認証素子977は、メモリ素子でも良く、抵抗でも良く、キャパシタでも良く、ダイオードでも良く、スイッチでも良く、ある種のトランジスタでも良く、少なくとも第一と第二の二つの状態を出力できるものであれば何でも良い。ここでは、行数がNで、列数がMである。NもMも、図22が十分な乱雑さを確保できる程度の大きさの整数であることが求められる。
つづいて、入力コード(P、S、T、…)の例として、(a(1),a(2),…,a(N))を考えよう。図74のように、各行の代換素子979に(a(1),a(2),…a(N))を第一行から順に対応させる。このとき、第i行のデータ(1/0)を要素d(i)とする。ここで、要素d(i)の集合{d(i)}は、0と1のランダムな集合体で構成される乱数コードである。同様に、上記入力コードを{a(i)}と表記することにする。ただし、iは1からNまでの整数である。続いて、入力コード{a(i)}及び乱数コード{d(i)}から、何らかの方法を用い出力コード{c(i)}を生成する。入力コード{a(i)}及び出力コード{c(i)}の組み合わせが、図9の交信シリーズ80に対応している。
ただし、上述して来たように、図22が物理的にランダムな白と黒のパターンである限り、{d(i)}が0と1のランダムな集合体で構成される乱数コードであるという必要条件が満たされる。もちろん、上述した例において、行と列を入れ替えても本願の性質は本質的に変わらない。
ここで、一例として、出力コード{c(i)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。図75は、数列{a(i)}及び物理乱数{d(i)}と、式4に基づいて出力される出力コード{c(i)}との関係を一覧表にしたものである。すなわち、この物理乱数{d(i)}が前記チップに固有な物理的乱雑さである。

Figure 2021190980
式4
式2に似ているが、列の要素jがなくなっている点で簡単化されている。また、この方法を用いると、変換の前後で0と1の数の割合に変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式4の右辺に入力される情報量と、式4の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式4で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報エントロピー(物理的乱雑さ)を失うことになるからである。
図76は、式4で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i)}を発生し、基幹ノード400から、共通パスコードとして入力コード{a(i)}が入力され、コード発生装置602で出力コード{c(i)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共に認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図73および図74で概念的に説明した方法を用いる。コード発生装置602は、式4で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数{d(i)}で前記チップに固有の物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置601の行数は、少なくとも、{a(i)}の要素数と同じか、それより大きいものとする。
図27は、式4により動作するスクランブル装置604の使用方法の一例を示す図面である。基幹ノード400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺ノードにモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、図7のように、基幹ノード400に接続する周辺ノードは、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹ノードへ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置に返して、もう一度スクランブルされた認証(P1’、S1’、T1’、…)を基幹ノード400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1’、S1’、T1’、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹ノード400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
図77は、図72の認証素子977と代換素子979からなる素子アレイの一部あるいは全部を示すものである。行数はN+Kである。このN+Kは、チップ内の全ビット線数より少ないか同じ、あるいは、全ワード線数より少ないか同じとすることができる。ここでは、上部K行の領域をスクランブル装置セルアレイ614とし、下部N行をチップ認証装置セルアレイ611としている。この(N,K)の組み合わせは、図29に関連する例と同様に、セキュリティバッファーとして活用することが可能である。
まず、式5のように、{a(i)}と{d(i)}を行ごとに足し合わせたものを2で割り、そのあまりを中間出力{f(i)}とする。
Figure 2021190980
式5
ここで、{f(i)}がスクランブル装置セルアレイ614に関する出力となる。ただし、iは1からKの自然数である。
つづいて、式5において、配列{a(i)}を中間コード{f(j)}に置き換えれば、式6が得られる。ここで、左辺は、コード発生装置602の出力{c(i)}となる。ただし、iは1からNの自然数である。
Figure 2021190980
式6
代換素子979がヒューズの場合、たとえば、図73は、図72の各行にヒューズを設置することによって実現できる。たとえば、切断したヒューズを黒の行とし、切断しない行を白とすると、この白/黒のランダムな水平模様は、列方向に並んだヒューズの非切断/切断のパターンに置き換えられる。また、ヒューズの切断・非切断は、対応する各行に関するなんらかの性質によって決定する。
ヒューズの非切断/切断の決定方法は、各行の白と黒の数を数えるだけではない。何らかの事情により、ある行の中に回復不能のエラーが発生している場合に対応する行のヒューズを切断し、そうでない場合に非切断するということでも良い。この回復不能のエラーの出現が物理的に乱雑に発生する限り有効である。また、この例の場合、切断と非切断の割合は50%程度から大きくずれていても良い。
回復不能のエラーが発生している行はリダンダンシー(冗長)行と呼ばれる別の行に置き換えられ、半導体装置としては使用しない。反対に、それ以外の行は製品の半導体装置の一部として利用する。これは不良品を出荷させないために良く使われる手法であるが、ここでは、リダンダンシー行に置き換えられる行と置き換えられない行の組み合わせが物理的に乱雑であることに注目する。つまり、不良品を出荷させないために置き換えていた部分(リダンダンシー行の領域)を用いることによって、チップ認証装置600用に新たな領域を設けなくても、物理的乱雑さを出力させることが可能となるのである。
ところで、メモリセルアレイの各行にそれぞれヒューズを当てはめるようなことは稀である。ゆえに、何らかの事情によりある行の中に回復不能のエラーが発生している場合、その対応する行の番号(行番号)を別途用意するメモリ領域(リダンダンシーメモリ)に保存する。そして、メモリ素子にアクセスするとき、そのメモリ素子がリダンダンシーメモリに属しているかどうかを調べる。属していない場合アクセスし、属している場合アクセスせず対応する行をリダンダンシー行の一つと置き換える。こうして、何らかの事情によるメモリ素子の回復不能のエラーの発生を物理的乱雑さとして応用する場合、図72等に見られる代換素子979を用いずに、リダンダンシー用のメモリ領域を利用することが可能である。
ただし、この手法で十分な大きさの物理的乱雑さを出力するためには、行数Nが十分大きくなければならない。ここで、リダンダンシーメモリに属する行数をLとすると、Lは1より十分大きく、Nより十分小さな整数である。
上述したような必要条件を満たす半導体製品は、たとえば、ダイナミックランダムアクセスメモリ(DRAM)である。この場合、上述した認証素子977は、DRAMのメモリ素子である。典型的な4ギガビットDRAM製品の場合、たとえば、全ビット線数655万本に対して、何らかの事情により回復不能のエラーが発生する行を置き換えるために準備する行数(リダンダンシーに関するビット線数)は、たとえば、15万3千程度であろう。ここでリダンダンシー用に設けるビット線方向を図72の行方向に当てはめたが、反対に、ワード線を当てはめることも可能である。いずれにしろ、リダンダンシーに関する場合の数は、簡単な見積もりとして、655万の内から15万3千を選ぶ順列に等しい。計算すると約10の1042102乗の5.6倍になる。これは恐ろしく大きい数であり、現実的にほぼ無限大と考えてよい。
次に、ワード線方向を図72の行方向に当てはめると、典型的な4ギガビットDRAM製品の場合、ワード線数440万に対してリダンダンシー行の総数は、たとえば、3,044である。440万から3、044を選ぶ順列の数は、計算するとおよそ10の20222乗のさらに1.6倍となる。ビット線リダンダンシーの場合の数より大分少なくなるが、それでもワード線リダンダンシーの場合の数も恐ろしく大きな数である。いずれにしろ、改めてチップ認証装置600用の領域を設けなくても、汎用DRAMの製品管理のためにあらかじめ設置されているリダンダンシーメモリを用いることによって、現実的に無限大の物理的乱雑さを手に入れることが可能である。
このように、汎用DRAM製品は、製品管理用にあらかじめリダンダンシーメモリとしてヒューズメモリが取り付けられており、しかもビット線数もリダンダンシー行の数も十分大きく、得られる物理的乱雑さも十分である。したがって、認証装置600としてチップ内のすべての領域のリダンダンシーを使うことも可能だが、その一部のみをチップ認証装置600として使用することも可能である。この場合、行数Nはチップ内の全ビット線数、あるいは、全ワード線数より小さくなる。
本発明に関するチップ認証機能を有するチップ10では、たとえば、図78のように、少なくともチップ認証装置600および入出力制御装置800を、搭載することができる。この入出力制御装置800は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。
更に、本発明に関するチップ認証機能付きチップ400は、たとえば、図79のように、少なくともチップ認証装置600と、認証装置用制御装置880と、入出力制御装置810と、スクランブル装置890と、及び中間コード用バッファー900とから構成することができる。この入出力制御装置810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置890は、図27のスクランブル装置604を含み、スクランブル装置604が生成する中間コードは、入出力制御装置810とは独立した中間コード用バッファー900に格納され、外部からの要請があってもデータをチップ400の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御装置880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。また、図35で説明した、モード“X”に対応するアドレスを記録する内部記録部も含むことができる。同様の記録部は、必要に応じて、スクランブル装置890にも含むことができる。
外部入出力50から入力コード{a(i)}と{b(j)}の集合が入力されると、入出力制御装置810は、入力コード{a(i)}と{b(j)}の集合をスクランブル装置890に渡す。ここで、式2に基づいて生成された中間コード{f(i,j)}は、中間コード用バッファー900に一時格納され、認証装置用制御装置880に引き渡される。認証装置用制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、チップ認証装置600から取得した乱数コード{d(i,j)}と、中間コード{f(i,j)}とに応じ、式3に基づいて、出力コード{c(i,j)}を生成し、内部のデータバッファーに一時格納する。入出力制御装置810は、外部入出力50を通じて出力コード{c(i,j)}をチップ400の外に出力する。こうして、中間出力{f(i,j)}をチップ内に閉じ込めておくことが可能となる。
あるいは、外部入出力50から入力コード{a(i)}が入力されると、入出力制御装置810は、入力コード{a(i)}をスクランブル装置890に渡す。ここで、式5に基づいて生成された中間コード{f(i)}は、中間コード用バッファー900に一時格納され、認証装置用制御装置880に引き渡される。認証装置用制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、チップ認証装置600から取得した乱数コード{d(i)}と中間コード{f(i)}とに応じ、式6に基づいて、出力コード{c(i)}を生成し、内部のデータバッファーに一時格納する。入出力制御装置810は、外部入出力50を通じて出力コード{c(i)}をチップ400の外に出力する。こうして、中間出力{f(i)}をチップ内に閉じ込めておくことが可能となる。
認証素子977は、MOS型トランジスタ、DRAMセル、不揮発性メモリセルトランジスタ、相変化メモリセル、抵抗変化メモリセル、磁気変化メモリセル、PN接合、ショットキー接合、キャパシタ、絶縁膜、抵抗など、一般的な半導体製造工程で同時に製造可能なデバイスやその部品であれば何でも良い。あるいは特殊にデザインされた微小構造でも使用可能である。
認証素子977を確率的に破壊する場合、破壊方法は、選択した素子に電気的なストレスを与えればよい。このとき、チップ上の全アドレスを選択することもできれば、必要に応じて一部のアドレスのみを選択して破壊パルスを印可することも可能である。
図22で“1”と“0”の割合がほぼ同じになると、図73の水平模様の乱雑さは増大する傾向がある。そのため、何らかの事情によりチップ認証装置に使える素子領域が制限される場合や、小容量製品のチップ認証装置を作成する場合には、できる限り、図22での“1”と“0”の割合を等しくする必要がある。たとえば、図36あるいは図37に示すように、破壊パルスを段階的に印可して“1”と“0”の割合を調整する方法がある。まず、第一パルス電圧を印可し、続いて検査をする。このとき、非破壊素子の数が多ければ、第二パルス電圧を印可する。検査後まだ非破壊素子の数が多ければ、さらに第三パルス電圧を印可して検査する。こうして、図36あるいは図37のように、破壊パルスを段階的に印可することによって、非破壊素子の数が段階的に減り破壊素子の数が段階的に増大して行く。両者の差が所定の範囲内に収まるところで破壊パルスの印可を中止する。
あるいは、パルス電圧をチップ認証装置の全素子に印可して続いて検査をする。このとき、非破壊素子の数が多ければ、非破壊素子のみ選択して再びパルス電圧を印可する。検査後まだ非破壊素子の数が多ければ、再び非破壊素子のみ選択してパルス電圧を印可する。この場合、破壊パルスの印可を繰り返すのは非破壊素子のみにすることが望ましい。破壊パルスを段階的に増大してもしなくても、非破壊素子は段階的に破壊され、“0”と“1”の割合は近づいてゆく。両者の差が所定の範囲内に収まるところで破壊パルスの印可を中止する。
破壊パルスの印可が終わった後、“0”でも“1”でもないもの“X”が残留している場合がある。このような場合、図35で説明した方法を用いて、“X”を除去すれば良い。
一般に、電子装置を構成するチップは一つとは限らない。図13のネットワークの一例を構成する第一、第二、…、第五の周辺ノードも、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図7では、周辺ノードである情報機器140が、第一のチップ110、第二のチップ120、…、第Nのチップ130から構成される。このうち、必ずしもすべてのチップが本願のチップ認証装置を搭載している必要はない。図7の例では、第一のチップ110のみがチップ認証装置60を搭載している。
以下、発明を実施するための最良の形態について、具体的に説明する。
上述してきたように、本願のチップ認証装置は、さまざまな方法を駆使することによって、物理的実態である半導体チップの固体認識を実現することが可能である。一方、半導体チップは、電子機器や情報機器の心臓部品であり、最小構成単位と考えることができる。したがって、上記(1)−(7)の条件を満たすチップ認証を用いて、電子機器や情報機器の物理的認証を実現できると考えられる。
図89に、チップ認証抽出装置が、チップ認証装置に入力認証コードQを入力し、出力認証コードRを受け取る方法の一例を示す。前記チップ認証装置は、一例として、図10の第一から第三の周辺ノード(410、420、430)に含まれる。前記チップ認証抽出装置は、図10の基幹ノード400に含まれる。
チップ認証装置は、複数の素子(セル)から構成されるセルアレイを含む。例えば、前記セルは、図39、図55および図56のようにPN接合であり、あるいは、図40、図57および図58のようにショットキー接合であり、あるいは、図41―43、図61―66、図92および図93のようにトランジスタであり、あるいは、図42、図63および図64のようにトランジスタとキャパシタからなるDRAMセルであり、あるいは、図43、図65および図66のように選択トランジスタであり、あるいは、図44、図59および図60のように抵抗であり、あるいは、図92のようにトランジスタと可変抵抗からなるReRAMセルあるいはPCRAMセルであり、あるいは、図93のようにトランジスタおよび磁気抵抗からなるMRAMセルあるいはSTT−MRAMセルであり、あるいは、図94、図98および図99のように電荷蓄積層付き不揮発性メモリセルであり、あるいは、図33、図53および図54のようにキャパシタであり、あるいは、図99、図100および図101のように可変抵抗である。
チップ認証装置は、上記セルアレイからデータを読み出すため、複数のビット線からなる全ビット線群と、複数のワード線からなる全ワード線群と、を有する。前記全ビット線群は更に複数のビット線グループに分割される。ただし、このビット線グループの数は全ビット線群内のビット線の数より少ない。前記全ワード線群は更に複数のワード線グループに分割される。ただし、このワード線グループの数は全ワード線群内のワード数より少ない。
一つのビット線グループおよび一つのワード線グループから前記セルアレイ上に一つの小ブロックが形成される。あるいは、一つのビット線グループおよび全ワード線群から一つの小ブロックが形成される。あるいは、一つのワード線グループおよび全ビット線群から一つの小ブロックが形成される。いずれにしろ、こうして前記セルアレイは複数の小ブロックに分割される。ただし、小ブロックの数(A)は、セルアレイを構成する全セル数より小さい。また、小ブロックは、それぞれ所定の数(B)のセルを含み、AとBの積は、前記セルアレイを構成する全セルの数に等しい。
前記複数の小ブロックを、更に第一および第二の小ブロックのグループに分割する。一方を冗長小ブロック群とし、他方を正規小ブロック群とする。前記冗長小ブロック群に属する小ブロックは、すべて冗長小ブロックである。前記正規小ブロック群に属する小ブロックは、すべて正規小ブロックである。こうして、前記セルアレイは、複数の冗長小ブロックおよび複数の正規小ブロックから構成される。また、前記セルアレイは、複数の小ブロックから構成される。
所定の検査によって、一つの正規小ブロックに少なくとも一つの不良ビットが含まれていることが発見された場合、その正規小ブロックを不良小ブロックと呼ぶ。不良小ブロックが発見された場合、その不良小ブロックを一つの冗長小ブロックと置き換えることが出来る。具体的には、一つの不良小ブロックに含まれる第一のセルに関するビット線およびワード線が同時に選択された場合、前記第一のセルに関するビット線を一つの冗長小ブロックに含まれる第二のセルに関するビット線に置き換え、前記第一のセルに関するワード線を前記第二のセルに関するワード線に置き換える。
前記第一のセルを含む不良小ブロックに含まれる第三のセルに関するビット線およびワード線が同時に選択された場合、前記第三のセルに関するビット線を前記第二のセルを含む冗長小ブロックに含まれる第四のセルに関するビット線に置き換え、前記第三のセルに関するワード線を前記第四のセルに関するワード線に置き換える。ただし、前記第一のセルおよび前記第三のセルが互いに異なるセルである場合、前記第四のセルが前記第二のセルとは異なるセルになるよう、前記不良小ブロックを前記冗長小ブロックに置き換えなければならない。
全正規小ブロックのうち、どの正規小ブロックに不良ビットが見つかり、不良小ブロックとして任意の冗長小ブロックに置き換えられるかは、前記セルアレイ上の不良ビットの発生分布による。ここで、不良ビットとは、人為的に発生したか非人為的発生したにかかわらず、所定の特性から一定以上逸脱した特性を示すビットの総称である。発生原因は多種多様であり、前記セルアレイ上のどのセルに発生するかは確率的である。したがって、前記セルアレイ上の不良ビットの分布は、物理的乱雑さ(ランダムさ)とみなすことが出来る。この物理的乱雑さは、物理乱数として前記セルアレイから所定の方法で読み出すことが可能である。読み出された物理乱数は、必要に応じて所定の基準で加工した後、前記セルアレイを含むチップから出力される。こうして、チップに固有の物理乱数をチップから抽出することができる。
前記不良ビットの分布は、チップの置かれた外部環境が変化しても可能な限り安定していることが望ましい。また、前記不良ビットの分布は、時間経過に対して可能な限り不変であることが望ましい。そのためには、前記不良ビットの分布を一度測定し、チップの内部メモリ等に保存すればよい。ただし、この内部メモリが外部環境の変化に対して可能な限り安定しており、時間経過に対して可能な限り不変であることが条件である。このような内部メモリは、一例として、ヒューズメモリなどがある。前記測定はチップの出荷前テストの際に行うことができる。
一方、前記複数の小ブロック、すなわち、前記複数の正規小ブロックおよび前記複数の冗長小ブロックは、それぞれ所定の方法で割り当てられたブロックアドレスにしたがって前記セルアレイ上に分布する。こうして、前記セルアレイはブロックアレイとなる。このブロックアレイ上のブロックアドレスが、前記小ブロックの前記ブロックアレイ上のアドレスに相当する。
前記セルアレイ上の不良ビットの分布が物理的にランダムであるということは、全正規小ブロックの集合から複数の不良小ブロックを選ぶ組み合わせが物理的にランダムであるということである。あるいは、前記セルアレイ上の不良ビットの分布が物理的に乱雑であるということは、全冗長小ブロックの集合から複数の冗長小ブロックを選んで前記複数の不良小ブロックと置き換える組み合わせが物理的に乱雑であるということである。
こうして、全正規小ブロックの集合から複数の不良小ブロックを選ぶ組み合わせが前記セルアレイを含むチップ(あるいは半導体チップ)に固有な物理的乱雑さ、すなわち、チップ(あるいは半導体チップ)に固有な物理乱数(固有乱数)であることがわかる。あるいは、全冗長小ブロックの集合から複数の冗長小ブロックを選んで前記複数の不良小ブロックと置き換える組み合わせが前記セルアレイを含むチップ(あるいは半導体チップ)に固有な物理的乱雑さ、すなわち、チップに固有な物理乱数(固有乱数)であることがわかる。どちらを選ぶかは数え方の違いによるものであって実質的な違いとして区別する必要はない。ここで紹介した数え方以外にも可能な数え方は複数あるが、いずれも実質的な違いとして区別する必要はない。
いずれにしろ、何らかの方法で前記セルアレイを含むチップから、そのチップに固有の物理乱数を取り出すことを抽出と呼ぶ。このようなチップは、前記固有の物理乱数を抽出するための抽出回路を有する。また、このように固有の物理乱数を抽出されるチップが前記チップ認証装置である。すなわち、前記チップ認証装置は前記抽出回路を有する。前記チップ認証装置は、さらに、前記入力認証コードから前記出力認証コードを合成する出力発生回路を有する。前記出力発生回路は、一例として、組み込み回路、あるいは、ファームウェアである。
こうして抽出された物理乱数は、一例として、図26の物理乱数(あるいは固有物理乱数){d(i,j)}である。あるいは、別の一例として、図76の物理乱数{d(i)}である。
前記チップ認証装置は、たとえば、図15の第一のチップ認証装置21あるいは第二のチップ認証装置を含む。あるいは、図16−18のチップ認証装置60を含む。前記チップ認証抽出装置は、たとえば、図10の基幹ノード400、図11―14の基幹ノード1400、図13−14の基幹ノード2400、図14の基幹ノード3400である。
なお、一般に、チップ認証は、チップの置かれた外部環境が変化しても可能な限り安定していることが望ましい。また、前記不良小ブロックの分布は、時間経過に対して可能な限り不変であることが望ましい。前記不良ビットがアセンブリ前に前記セルアレイ上に不可逆的に発生し、さらに、チップのアッセンブリ後は発生しない限り成り立つことは自明である。あるいは、前記不良小ブロックの分布を一度測定し、チップの内部メモリ等に保存すればよい。ただし、この内部メモリが外部環境の変化に対して可能な限り安定しており、時間経過に対して可能な限り不変であることが条件である。このような内部メモリは、一例として、ヒューズメモリなどがある。前記測定はチップの出荷前テストの際に行うことができる。
その他、本願のチップ認証装置が満たすべき条件について、以下図面を用いて更に詳細に説明する。

(第一の実施形態)
図89において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。
前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTおよび入力認証コードQが入力される。前記物理乱数抽出特殊テストコードTは、セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は、前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。
前記抽出回路は前記物理乱数を抽出し、その抽出結果Extを前記出力発生回路へ入力する。ここで、前記抽出結果Extは、前記指定コードに従って前記チップ認証装置に固有の物理乱数を出力するものである。より具体的には、チップ認証装置に含まれる前記セルアレイから前記物理乱数を読み出す。したがって、前記抽出結果Extは、指定付き物理乱数コードである。ただし、前記出力発生回路は、式7の関数GEN1に従い、前記入力認証コードQおよび前記抽出結果Extから出力認証コードRを作成し、前記チップ認証抽出装置へ出力する。このように、チップ認証抽出装置は、前記物理乱数抽出特殊テストコードT、前記指定コード、前記入力認証コードQ、および前記出力認証コードRから前記チップ認証装置の認証を行う。
R = GEN1 ( Q 、 Ext ) 式7
前記出力発生回路は、プログラム変更可能の場合もあるし、プログラム変更できない場合もある。前記出力発生回路がプログラム変更可能な場合、前記関数GEN1は、たとえば、書き換え可能不揮発性メモリに記録されたプログラムである。あるいは、FPGAなどの組み込み回路である。一方、前記出力発生回路がプログラム変更できない場合、前記関数GEN1は、たとえば、ROMなどに記録されたプログラムである。あるいは、ゲート接続変更不可能な組み込み回路である。
前記物理乱数コードがチップ認証装置に固有である限り、任意の2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。また、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードT、前記指定コード、および前記入力コードCを含む。図10の認証は、一例として、前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードT、前記指定コード、および前記入力コードCを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コード、および前記入力コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードT 、前記指定コード、および前記入力コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDがそれぞれ異なる入力コードを含むものとすれば、出力信号AおよびBは相異である。あるいは、異なる指定コードを用いれば出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードTを用いれば、出力信号AおよびBは相異である。したがって、前記(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記入力コードの要素の順序や前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られている。したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品汎用メモリのメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードR、前記入力信号Q、および前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第二の実施形態)
図90において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTが入力される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。この一例では、図89から入力認証コードQが省略されている。したがって、式7で用いられた前記関数GEN1は、式8のGEN2のように変更になる。以下、(第一の実施形態)と共通する説明は省略する。
R = GEN2( Ext ) 式8
前記抽出回路は前記物理乱数を抽出し、その抽出結果Extを出力発生回路へ入力する。ここで、前記抽出結果Extは、前記チップ認証装置に固有の物理乱数を指定コードに従って出力するものである。より具体的には、前記チップ認証装置に含まれるセルアレイから前記物理乱数を読み出す。前記セルアレイは、一例として、図23や図69などに見られるもである。前記セルアレイを構成する認証素子は、図33、図38−44、図46−49、図51−68、図92−101などに見られるものである。したがって、前記抽出結果Extは、指定付き物理乱数コードである。ただし、前記出力発生回路は、式8の関数GEN2に従い、抽出結果Extから出力認証コードRを作成し、前記チップ認証抽出装置へ出力する。このように、チップ認証抽出装置は、物理乱数抽出特殊テストコードT、指定コードおよび出力認証コードRからチップ認証装置の認証を行う。ただし、省略された入力認証コードQの機能の一部またはすべてを、前記指定コードあるいは前記物理乱数抽出特殊テストコードTに含めることが可能である。
前記出力発生回路は、プログラム変更可能の場合もあるし、プログラム変更できない場合もある。前記出力発生回路がプログラム変更可能な場合、前記関数GEN2は、たとえば、書き換え可能不揮発性メモリに記録されたプログラムである。あるいは、FPGAなどの組み込み回路である。一方、前記出力発生回路がプログラム変更できない場合、前記関数GEN2は、たとえば、ROMなどに記録されたプログラムである。あるいは、ゲート接続変更不可能な組み込み回路である。
前記出力認証コードRがチップ認証装置に固有である限り、2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。前記チップ認証装置は、一例として、前記セルアレイ、前記抽出回路、および前記出力発生回路を含む。一例として、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図10の認証は、一例として、前記前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDが異なる前記指定コードを含むものとすれば、出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードTを用いれば、出力信号AおよびBは相異である。したがって、前記(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られており、したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数は、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品の汎用メモリのメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。下記具体的に例を挙げて説明する。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードR、および前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第三の実施形態)
図91において、前記チップ認証装置は、セルアレイ、抽出回路、および出力発生回路を含む。前記セルアレイは、複数の認証素子より構成される。前記認証素子は、たとえば、図33、図38-44、図46−49、図51−68、図92−101などである。前記チップ認証抽出装置から前記チップ認証装置に、物理乱数抽出特殊テストコードTが入力される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上で発生する物理乱数を読み出す(抽出する)ため前記抽出回路に渡される。前記物理乱数抽出特殊テストコードTは、前記セルアレイ上の抽出領域や抽出する際の動作モード等を指定する抽出モードなどを指定コードとして含むことができる。一例として、前記抽出領域は、前記正規小ブロック群である。あるいは、別の一例として、前記抽出領域は前記冗長小ブロック群である。あるいは、別途指定する所定の抽出領域である。この一例では、図90から更に出力発生回路が省略されている。したがって、式7および式8で用いられた前記関数GEN1および前記関数GEN2は省略され、式9のように変更される。これは、実際には何もしないダミー変換である。以下、(第一の実施形態)と共通する説明は省略する。
R = Ext 式9
式9に従い、前記抽出回路は前記物理乱数を抽出し、その抽出結果Extをそのまま出力認証コードRとする。ここで、前記抽出結果Extは、前記指定コードに従って前記チップ認証装置に固有の物理乱数を出力されるものである。より具体的には、前記チップ認証装置に含まれるセルアレイから前記物理乱数を読み出す。したがって、前記抽出結果Extは、指定付き物理乱数コードである。このように、チップ認証抽出装置は、物理乱数抽出特殊テストコードT 、指定コード、および出力認証コードRからチップ認証装置の認証を行う。ただし、省略された入力認証コードQの機能の一部またはすべてを、前記指定コードあるいは前記物理乱数抽出特殊テストコードTに含めることが可能である。
前記出力認証コードRがチップ認証装置に固有である限り、任意の2つのチップ認証装置から出力される出力認証コードRが一致することはない。前記チップ認証装置は、一例として、図15−18のチップ認証装置を含む。前記チップ認証装置は、一例として、前記セルアレイ、前記抽出回路、および前記出力発生回路を含む。一例として、複数の異なるチップ認証装置が、図10−14の周辺ノードにそれぞれ含まれる。
前記チップ認証抽出装置は、一例として、図10の基幹ノード400に含まれる。図10の入力は、一例として、前記物理乱数抽出特殊テストコードT および前記指定コードを含む。図10の認証は、一例として、前記出力認証コードRである。図10の認証は、一例として、前記前記出力認証コードRを含む。図11の共通パスコード1410は、一例として、前記物理乱数抽出特殊テストコードTおよび前記指定コードを含む。図12の第一から第三の認証(4101−4301)は、一例として、前記出力認証コードRをそれぞれ含む。ここで、前記出力認証コードRを合成するときに含まれる前記抽出結果Extはチップに固有なので、それぞれ相異なるチップを含む第一から第三の周辺ノード(410−430)から出力される前記第一から第三の認証(4101−4301)は、それぞれ相異なる。
(1)(出力の独立性)
図15の入力信号Qは、一例として、前記物理乱数抽出特殊テストコードT 、前記指定コードを含む。図15の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記抽出結果Extは、それぞれ相異なる第一および第二のチップ認証装置(21、22)で相異なる。したがって、出力信号AおよびBは相異であり、前記(出力の独立性)を満たしている。
(2)(入力の独立性)
図16の入力信号CおよびDは、一例として、前記物理乱数抽出特殊テストコードT および前記指定コードをそれぞれ含む。図16の出力信号AおよびBは、一例として、前記出力認証コードRである。ここで、前記入力信号CおよびDが異なる前記指定コードを用いるものとすれば、出力信号AおよびBは相異である。あるいは、異なる物理乱数抽出特殊テストコードT を用いれば、出力信号AおよびBは相異である。したがって、(入力の独立性)を満たしていることは自明である。
(3)(出力の予測不可能性)
前記出力認証コードRを合成するときに含まれる前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。したがって、チップに固有で物理的にランダムに生成するので、どのようなアルゴリズムによっても予測することは不可能である。この特徴は、前記指定コードによらない。したがって、前記(出力の予測不可能性)を満たしていることは自明である。
(4)(入出力の信頼性)
上述したように、前記抽出結果Extは、前記セルアレイ上での不良ビットの分布から抽出されるものである。前記不良ビットの分布は、上述した何れかの方法か他の同等の方法によってバイナリ表示することが可能である。その結果は、図22や図73のようなパターンとして認識できる。このように一度デジタル化されたデータは、正常に動作するCMOSインバータ回路からなるデジタル演算処理を繰り返す毎にシャノンの条件を満たすことが知られており、したがって、前記(入出力の信頼性)を満たすことは自明である。
(5)(出力の現実的無限性)
一つの入力に対する出力のパターンの数は、あるいは、物理的乱雑さの場合の数は、前記正規小ブロック群から不良小ブロックが発生する場合の数によって決まる。前記セルアレイとして量産品の汎用メモリ製品のメモリセルアレイを採用する場合、正規小ブロック群に含まれる正規小ブロックの数は十分大きく、不良ビットの発生率がシックスシグマ(発生率3.4E−6以下)を満たしたとしてもそのパターン数は十分に大きい。したがって、前記(出力の現実的無限性)を満たすことは自明である。下記具体的に例を挙げて説明する。
(6)(チップ固有性)
前記出力認証コードRは、前記チップ認証装置に固有の電子信号である。したがって、前記(チップ固有性)を満たすことは自明である。
(7)(物理的書き換え不可能性)
上述の出力認証コードRは、前記物理乱数コードが書き換え不能であれば物理的に書き換え不能である。したがって、前記(物理的書き換え不可能性)を満たすことは自明である。
(P-CID)
こうして、前記(1)−(7)を全て満たすことが自明である。したがって、上述の前記出力認証コードRおよび前記物理乱数抽出特殊テストコードTの組み合わせを、物理チップ認証(P-CID)の一例と見なすことが可能である。

(第四の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
上述のように、P-CIDを生成するために外部から周辺ノードに入力される入力コードは、一例として、ネットワークにつながる情報端末上で動作する何らかのアプリを起動するためのパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
別の一例として、前記入力コードは、ネットワークにつながる情報端末上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
更に別の一例として、前記入力コードは、ネットワークにつながる情報端末上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、から生成できる。
あるいは、更に別の一例として、入力コードは、何等かの物理的プロセスによりチップ認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための物理乱数抽出特殊テストコードなどである。ここで物理乱数抽出特殊テストコードは、少なくともチップ内部の前記セルアレイ上のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。
あるいは、前記入力コードとは、前述した複数の入力コードの組み合わせにより構成されるものであっても良い。
一例として、前記入力コードは、図89の入力認証コードQである。あるいは、前記入力コードは、図89の入力認証コードQに含めることが可能である。あるいは、前記入力コードは、図89の物理乱数抽出特殊テストコードTに含めることが可能である。あるいは、前記入力コードは、(第一の実施形態)の指定コードに含めることが可能である。
一例として、前記入力コードは、図90あるいは図91の物理乱数抽出特殊テストコードTに含めることが可能である。あるいは、(第二の実施形態)あるいは(第三の実施形態)指定コードに含めることが可能である。

(第五の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図82では、MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を、CPUなどと共同で働く主記憶装置(DRAMなど)に搭載する。この場合、本願のP-CIDがこのCPUにリンクしたチップの認証となる。こうしてイーサネットカードに記録されたMACアドレスを置き換えることが可能となる。
P-CIDは、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。こうして、イーサネットカードのメディア・アクセス・コントローラー(MAC)用演算処理チップ3020もP-CID制御装置3030に置き換える。
一例として、図83に示すように、P-CID3070は、本願に関するチップ認証装置によって生成され、MACアドレスのうち下位の24ビット(図81のシリアル番号3072)を置きかえることが望ましい。すなわち、ベンダーコード3071は、すでに広く利用されているMACアドレスのベンダーコードをそのまま利用する。こうして、図83のように、P-CIDアドレス3073が生成される。受信ノード側は、後述する指示ビットを調べることで受信したフレームがMACアドレスを採用しているか、あるいは、本願のP-CIDを採用しているかを事前に判定することが可能である。
一般に、P-CID3070のビット数は、チップ認証装置を構成する認証素子977の数によって決まる。たとえば、認証素子用アレイ960が、図23のような構成となる場合、P-CIDのビット数は、素子行数Lと素子列数Mの積で決まる。したがって、P-CIDアドレスのビット数は、LとMの積に24を足し合わせたものになる。あるいは、図29のような構成の場合、P-CIDのビット数は、Nの2乗によって決まる。したがって、P-CIDアドレスのビット数は、Nの2乗に24を足し合わせたものになる。あるいは、図74のような構成の場合、P-CIDのビット数はNである。あるいは、図77のような構成の場合、P-CIDのビット数はNである。あるいは、DRAMのリダンダンシーを用いる場合、P-CIDのビット数は、リダンダンシー用のメモリ領域のビット数によって決まる。すなわち、順列を使って算出した情報量から必要なビット数が直ちに判明する。
しかしながら、上述した図23あるいは図29のような構成の場合、図35のように、ソフト破壊モード“X”の混入によって、P-CIDのビット数は理想的な場合より少なくなることがある。事前の検査、あるいは、他の何らかの方法により、このような破壊モードが混入する確率の上限が事前にわかっている場合、この上限から換算されるビット数にマージン分のビット数を加味し、P-CIDのビット数を再定義することが望ましい。こうして、P-CIDのビット数は、図22の白と黒の市松状のパターンの格子点数で決まることになる。
P-CIDのビット数は、シリアル番号のビット数24ビットより多くとも良いし、少なくとも良い。あるいは、同じでも良い。少ない場合、P-CIDの利用は、閉じた物理的ネットワークに限ることが望ましい。たとえば、工場の製造ラインを管理するためのシリアル番号の替わりに用いることが可能である。このように、P-CIDのビット数は、必ずしも所定のビット数に決められている訳ではない。したがって、プリアンブルの最後に数ビットをP-CIDのビット数を指示するために添付することが望ましい。このP-CIDのビット数を指示するためのビット(指示ビット3074)は、ベンダーコード3071の前(上位)であっても良いし、後ろ(下位)であっても良い。図84は、指示ビット3074がベンダーコード3071の前(上位)に添付された場合の一例を示している。図85は、指示ビット3074がベンダーコード3071の後ろ(下位)に添付された場合の一例である。図84、および、図85は、いずれも指示ビット3074の長さが6ビットとして図示したものであるが、一般に、指示ビット3074の長さは6ビットに限らない。いずれにしろ、指示ビットの有無を確認することにより、フレームがP-CID形式化どうか判明するだろう。
指示ビット3074の導入により、P-CIDアドレスが扱えるアドレスの数は可変となる。したがって、任意の管理者が、閉じた物理的ネットワークを構築する際に短いP-CIDアドレスを使い、その分節約されたビット数をプロトコル・データ・ユニットのデータ領域に割り当てることが可能となる。こうして、一つのプロトコル・データ・ユニットで運べる情報量が多くなる。これは一回のデータ通信で運べるデータ量が多くことを意味する。あるいは、任意のベンダーが限られた数の製品を出荷する場合にも、短いP-CIDアドレスを使い、その分節約されたビット数をプロトコル・データ・ユニットのデータ領域に割り当てることが可能となる。
物のインターネットの場合、グローバルアドレスの数が非常に多くなる。この問題に対応するには、指示ビット3074によってP-CIDアドレスのビット数を増やし、扱えるアドレスの数を増やす必要がある。こうしてP-CIDアドレスのビット数が増えると、その分一つのプロトコル・データ・ユニットで運べる情報量が少なくなる。これは、一回のデータ通信で運べるデータ量が少なくなることを意味する。しかしながら、無数の物理アドレスを必要とする物のインターネットが登場するような将来には、ネットワーク技術の進歩に対応するためプロトコル・データ・ユニットの規格が変更されることになるだろう。このとき、一つのプロトコル・データ・ユニットに割り当てられるビット数が増大する可能性が高い。MACアドレスを使い続けた場合、このような変化に柔軟に対応することは難しいが、本願の指示ビット付きのP-CIDアドレスでは、物理アドレス数の急激な増大に柔軟に対処することが可能である。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされる。ここで、オペレーションシステムが、イーサネットカードあるいはチップ認証装置3040を検知した場合、オペレーションシステムはそのチップ認証装置3040から物理チップ認証(P-CID3070)を読み出し、イーサネットカードに含まれるP-CID制御装置3030に書き込む。P-CID制御装置3030は、図83、図84、図85に示すようなP-CIDアドレスを添付したフレームを、信号伝達路1000を介してデータリンク層で送受信する。

(第六の実施形態)
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図86は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を中央演算処理装置(CPU)に搭載する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。上述したように、中央演算処理装置(CPU)混載方式を採用する場合、本願のチップ認証装置を構成するための認証素子としては、標準CMOSプロセス準拠のものが望ましい。たとえば、図41の電界効果トランジスタ983を認証素子とする方式が望ましい。そのほか、図39のPN接合986、図40のショットキー接合987、あるいは、図47および図48のように配線パターンを応用した例も可能である。上述の例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。P-CIDは、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。こうしてイーサネットカードのメディア・アクセス・コントローラー(MAC)用演算処理チップ3020もP-CID制御装置3030に置き換えられる。
パーソナルコンピューターの電源を入れると、中央演算処理装置(CPU)がオペレーションシステムを起動する際オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされる。ここで、オペレーションシステムが、イーサネットカードあるいはチップ認証装置3040を検知した場合、オペレーションシステムはそのチップ認証装置3040から物理チップ認証(P-CID3070)を読み出し、イーサネットカードに含まれるP-CID制御装置3030に書き込む。P-CID制御装置3030は、図83、図84、図85に示すようなP-CIDアドレスを添付したフレームを、信号伝達路1000を介してデータリンク層で送受信する。

(第七の実施形態)
上記実施形態では、メディア・アクセス・コントローラー(MAC)用演算処理チップ3020をP-CID制御装置3030に置き換えている。しかしながら、この実施形態では、MACアドレスを使用しないので、イーサネット形式もそれに応じて変更する必要がある。そのようなフォーマットの変更を急激に行えば混乱が予想されるので、物理チップ認証(P-CID)からMACアドレスへの変換装置、すなわち、P-CID/MAC変換装置3050を使用することがネットワーク移行期では必要になる。このような過渡的な需要に対応するため、典型的な例を以下に上げておく。
図87は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を主記憶装置に搭載する。このチップ認証装置3040は、物理チップ認証(P-CID)を生成するものである。さらに、中央演算処理装置(CPU)は、このP-CIDを使って生成したP-CIDアドレス3073からMACアドレスへの変換を司るP-CID/MAC変換装置3050の機能を有する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用い、図22のように2次元コード型の乱数コードを利用する方式が望ましい。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーに使用されるヒューズメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。上述の例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。P-CID3070は、一般に、イーサネット形式の認証とは限らない。たとえば、上述のように周辺ノードが生成するP-CIDは、外部からの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。あるいは、スリープモードからの復帰のためのパスコードやその他PINコードなど、あるいはそれらと関連づけることも可能である。しかしながら、この例では、上述したように、P-CIDを使って生成したP-CIDアドレスからMACアドレスへの変換を司るP-CID/MAC変換装置3050の機能を有する。こうして、P-CID制御装置3030に置き換えずに、メディア・アクセス・コントローラー(MAC)用演算処理チップ3020をイーサネットカードに採用できる。また、P-CID/MAC変換装置3050は、必ずしも物理的実態の伴う装置である必要はない。起動時にCPUにロードされて動作するプログラムの一種であってもかまわない。あるいは、同様の動作を実現するファームウェアであってもかまわない。もちろん、モジュールの一部としてCPUに混載することも可能である。
パーソナルコンピューターの電源を入れると、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされ、中央演算処理装置(CPU)がオペレーションシステムを起動する。ここでオペレーションシステムが、イーサネットカードあるいはチップ認証装置3040ことを察知した場合、オペレーションシステムは、そのチップ認証装置3040から物理チップ認証(P-CID)を読み出し、CPUに混載されているP-CID/MAC変換装置3050に転送する。P-CID/MAC変換装置3050は、このP-CIDから生成されるP-CIDアドレスをMACアドレスに変換し、オペレーティングシステムは、この変換によって生成されたMACアドレスをメディア・アクセス・コントローラー(MAC)用演算処理チップ3020に書き込む。こうして、メディア・アクセス・コントローラー(MAC)は、従来のイーサネット形式で、信号伝達路1000を介してフレームを送受信することが可能となる。自明なので特に説明をしないが、P-CID/MAC変換装置3050をCPUに搭載しつつ、図86と同様にチップ認証装置3040をCPUに搭載してもよい。

(第八の実施形態)
図88は、物理チップ認証(P-CID)として本願のチップ認証装置を採用した実施形態の別の一例である。MACアドレスをイーサネットカードの内蔵メモリに記録する代わりに、本願のチップ認証装置3040(図中P-CIDと表示)を主記憶装置(CPU)に搭載する。このチップ認証装置3040は、物理チップ認証(P-CID)を生成するものである。さらに中央演算処理装置(CPU)は、このP-CIDからP-CIDアドレスを生成し、 図83、図84、図85などの方法でフレームを構成する機能を司る、P-CID制御装置3060の機能を有する。この場合、イーサネットカードにMACアドレスを記録する必要はなくなり、不揮発性メモリチップを取り除ける可能性がある。さらに、P-CID制御装置3060を有するため,メディア・アクセス・コントローラー(MAC)用演算処理チップ3020も必要なくなる。たとえば、上述のように周辺ノードが生成するP-CIDは、基幹ノードからの入力コードに応じて生成されることが望ましい。あるいは、周辺ノードのオペレーティングシステムに予め設定された入力コードに応じて、チップ認証装置がP-CIDを生成することが望ましい。この場合、チップ認証装置に入力される入力コードは、オペレーティングシステムを起動する際に入力するパスコード、あるいは、そのパスコードと関連を持たせることが可能である。こうして、イーサネットカードを取り除くことが望ましい。主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用い、図22のように2次元コード型の乱数コードを利用する方式が望ましい。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーに使用されるヒューズメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。この例では、MACアドレスとの対比から、特にチップ認証装置3040が生成する認証を物理チップ認証(P-CID)と見なす。また、P-CID制御装置3060は、物理的実態の伴う装置である必要はない。起動時にCPUにロードされて動作するプログラムの一種であってもかまわない。あるいは、同様の動作を実現するファームウェアであってもかまわない。もちろん、モジュールの一部としてCPUに混載することも可能である。
パーソナルコンピューターの電源を入れると、オペレーションシステムを起動するのに必要な情報が主記憶(たとえばDRAM)にロードされ、中央演算処理装置(CPU)がオペレーションシステムを起動する。ここでオペレーションシステムが、チップ認証装置3040を検知した場合、オペレーションシステムは、チップ認証装置3040が生成する物理チップ認証(P-CID)を読み出し、CPUに混載されているP-CID制御装置3060に転送する。P-CID制御装置3060は、このP-CIDを使って上述の方法で生成したフレームを、信号伝達路1000を介して送受信することが可能となる。自明なので特に説明をしないが、P-CID制御装置3060をCPUに搭載しつつ、図86と同様にチップ認証装置3040をCPUに搭載してもよい。
現在、イーサネットカード(あるいは、LANカード)だけではなく、イーサネットカードの機能を備えた通信用チップも出回っている。このような通信用チップは、パーソナルコンピューターより小型の電子機器、あるいは、情報機器に搭載される。あるいは、SIMカードと一体化させることも不可能ではない。本願のチップ認証装置はチップに混載可能であり、物理チップ認証(P-CID)を生成するものである。したがって、イーサネットカード(あるいはLANカード)の代わりに限らず、通信用チップ、あるいは、SIMカードなどに採用することが可能である。

(第九の実施形態)相互認証
本願の物理チップ認証(P-CID)は、図7、8、15−18のチップ認証装置60/600が生成する。具体的には、前記チップ認証装置を構成するチップに外部から入力コードを入力し、前記チップ内部のセルアレイから物理乱数を抽出し、前記入力コードと前記物理乱数から前記P-CIDを生成する。このとき、(1)(出力の独立性)、(2)(入力の独立性)、(3)(出力の予測不可能性)、(4)(入出力の信頼性)、(5)(出力の現実的無限性)、(6)(チップ固有性)、(7)(物理的書き換え不可能性)のすべてを満たしている。
図102は、本願の物理チップ認証(P-CID)を相互認証に応用する方法を示すものである。第一のノード2001および第二のノード2002は、図1、図3、図5、図8、図9と同じものであるとする。あるいは、第一および第二のチップ認証装置は、図89−91の何れかと同等である。あるいは、前記第一および第二のチップ認証装置は、図7および図8の第一のチップ110である。あるいは、前記第一および第二のチップ認証装置は、図78のチップ10あるいは図79のチップ400である。第一および第二のチップ認証抽出装置は、図89−91のチップ認証抽出装置のいずれかである。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図10の基幹ノード400に含むことが出来る。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図14の第一から第三の基幹ノード(1400、2400、3400)に含むことが出来る。あるいは、前記第一および第二のチップ認証抽出装置の少なくともどちらか一方は、図26および図76の基幹ノード400に含むことが出来る。
図102の入力信号は、少なくとも図89の物理乱数抽出特殊テストコードTおよび入力認証コードQを含む。あるいは、前記入力信号は、少なくとも図90および図91の物理乱数抽出特殊テストコードTを含む。あるいは、前記入力信号は、少なくとも図10および図27の入力(P、S、T…)を含む。あるいは、前記入力信号は、少なくとも図11の共通パスコード1410を含む。あるいは、前記入力信号は、少なくとも図14の第一から第三の共通パスコード(1410、2410、3410)を含む。あるいは、前記入力信号は、少なくとも図15あるいは図18の入力信号Q含む。あるいは、前記入力信号は、少なくとも図16の入力信号Cあるいは入力信号Dを含む。あるいは、前記入力信号は、少なくとも図17の入力信号Q1からQn+1含む。あるいは、前記入力信号は、図19にリストアップされている入力コードの少なくとも一つと同一とみなすことができる。あるいは、前記入力信号は、少なくとも図24―26、図30、図74―77の入力コード{a(i)}を含む。あるいは、前記入力信号は、少なくとも図24―26、図30の入力コード{b(i)}を含む。
図102の出力信号は、少なくとも図89−91の出力認証コードRを含む。あるいは、前記出力信号は、少なくとも図10の認証(P1、S1、T1…)、(P2、S2、T2…)、(P3、S3、T3…)…を含む。あるいは、前記出力信号は、少なくとも図27の認証(P1、S1、T1…)、(P1’、S1’、T1’…)を含む。あるいは、前記出力信号は、少なくとも図12の第一から第三の認証(4101、4201、4301)を含む。あるいは、前記出力信号は、少なくとも図14の第一から第三の認証(11、12、13)を含む。あるいは、前記出力信号は、少なくとも図15および図16の出力信号Aあるいは出力信号B含む。あるいは、前記出力信号は、少なくとも図18の出力信号Rを含む。あるいは、前記出力信号は、図19にリストアップされている登録コードの少なくとも一つと同一とみなすことが出来る。あるいは、前記出力信号は、少なくとも図25、図26、および図30の出力コード{c(i,j)}を含む。あるいは、前記出力信号は、少なくとも図75および図76の出力コード{c(i)}を含む。あるいは、前記出力信号は、少なくとも図24−26、および図30の乱数コード{d(i,j)}を含む。あるいは、前記出力信号は、少なくとも図75および図76の乱数コード{d(i)}を含む。
前記第一のノード2001は、前記第一のチップ認証装置と前記第一のチップ認証抽出装置を含む。前記第二のノード2002は、前記第二のチップ認証装置と前記第二のチップ認証抽出装置を含む。前記第二のチップ認証抽出装置は、第二の入力信号を前記第一のチップ認証装置に入力する。前記第一のチップ認証装置は、前記第二の入力信号に応じて前記第二のチップ認証抽出装置に第一の出力信号を返信する。前記第一のチップ認証抽出装置は、第一の入力信号を前記第二のチップ認証装置に入力する。前記第二のチップ認証装置は、前記第一の入力信号に応じて前記第一のチップ認証抽出装置に第二の出力信号を返信する。
前記第一のチップ認証抽出装置は、前記第一のチップ認証装置と同じ半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記チップは前記第一のノードに含まれる。あるいは、前記第一のチップ認証抽出装置は、前記第一のチップ認証装置とは別の半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記第一のチップ認証装置を含むチップと前記第一のチップ認証抽出装置を含むチップは、ともに前記第一のノードに含まれる。あるいは、前記第一のチップ認証装置は複数の半導体チップ(あるいはチップ)で構成することも可能である。あるいは、前記第一のチップ認証抽出装置は、複数の半導体チップ(あるいはチップ)から構成される一種のチップセットである。前記第二のチップ認証抽出装置は、前記第二のチップ認証装置と同じ半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記チップは前記第二のノードに含まれる。あるいは、前記第二のチップ認証抽出装置は、前記第二のチップ認証装置とは別の半導体チップ(あるいはチップ)に含むことが出来る。ただし、この場合、前記第二のチップ認証装置を含むチップと前記第二のチップ認証抽出装置を含むチップは、ともに前記第二のノードに含まれる。あるいは、前記第二のチップ認証装置は複数の半導体チップ(あるいはチップ)で構成することも可能である。あるいは、前記第二のチップ認証抽出装置は、複数の半導体チップ(あるいはチップ)から構成される一種のチップセットである。

(第十の実施形態)相互認証による物理ノードのネットワークトポロジー
図102の第一のチップ認証装置及び第一のチップ認証抽出装置を搭載した第一のノード2001を第一の物理ノード(IoTデバイス)とみなし、第二のチップ認証装置及び第二のチップ認証抽出装置を搭載した第二のノード2002を第二の物理ノード(IoTデバイス)とみなす。前記第一の物理ノードは、更に、第一の内部メモリを搭載している。前記第一のチップ認証抽出装置は、物理ノードのネットワークにつながっている他の物理ノードの認証情報を収集し、前記第一の内部メモリに書き込み、記録し、保存する。これを第一の辞書とする。したがって、前記第一の辞書は、前記第一の物理ノードの認証情報を含む必要はない。前記第二の物理ノードは、更に、第二の内部メモリを搭載している。前記第二のチップ認証抽出装置は、物理ノードのネットワークにつながっている他の物理ノードの認証情報を収集し、前記第二の内部メモリに書き込み、記録し、保存する。これを第二の辞書とする。したがって、前記第一の辞書は、前記第一の物理ノードの認証情報を含む必要はない。このように、チップ認証抽出装置が、収集した認証情報を内部メモリに保存されている辞書に記録することを、辞書への登録と呼ぶ。第二のチップ認証抽出装置は、第一のチップに搭載されている第一のチップ認証装置に適当な入力信号(C2)を送付し、レスポンス(R1)を受け取り、この(C2R1)のセットを、第二の物理ノードが保有する辞書に事前に記録されている入力信号と出力信号の組み合わせ(C2R3)と比較する。(C2R3)と(C2R1)が一致すれば、第一の物理ノードは事前に登録されていた物理ノードとして認証される。一致しなければ、第一の物理ノードを認証されていないものとして、アクセスを拒否するか、必要に応じて、再登録する。
前記実施形態のように、第一および第二の物理ノード間の相互認証を可能にすることにより、物理ノードのネットワークトポロジーをよりフレキシブルにすることが可能である。すなわち、図13のように物理ノード同士の直接の通信を制限する必要はなくなる。一例として、図103のように、7つの物理ノードからなるネットワークを考える。7つの物理ノードは5つの参加ノード(第一から第五の参加ノード411−451)と第一及び第二の管理ノード(1401および2401)に分かれる。周辺ノードを参加ノードに対応させ、基幹サーバーを管理ノードに対応させると、図103のネットワークトポロジーが図13と異なることがわかる。たとえば、図103では第二の参加ノード421及び第四の参加ノード441、あるいは第三の参加ノード431および第五の参加ノード451間の通信が認められている。このフレキシビリティにより、後述するように、IoTデバイス(物理ノード)の中央管理と分散管理の共存が可能となる。これを、部分的中央管理、あるいは、部分的分散管理と呼べる。
本願に関する物理ノードのネットワークトポロジー(IoTトポロジー)の概念を説明するため、参加ノードおよび管理ノードを導入してノードの種別を改める必要がある。ある物理ネットワーク(IoTネットワーク)に接続するすべての正規の物理ノードを、管理ノードと参加ノードに分類する。このIoTトポロジーでは、管理ノードは自分が管理する物理ネットワークに参加する参加ノードを正しく(物理的に)限定する。(例えば、図103の1401および2401を参照。)管理ノードの主な役目は偽造ノードによる参加ノードのなりすましを防ぐことである。すなわち、管理ノードは、自分が管理している物理ネットワークに参加する参加ノードがすべて成りすまされていないことを可能な限り保証する。また、参加ノードは自分が参加すべきネットワークの管理ノードを正しく(物理的に)限定する。これは、不正ノードへの接続に誘導され秘密情報などを盗まれる危険性を抑えるためである。
管理ノードが図10のように周辺ノード間の通信をモニターする場合、管理ノードは物理ネットワークを管理する中心的サーバーである基幹サーバーと同等とみなすことができる。しかしながら、図103では第二の参加ノードと第四の参加ノードの通信を必ずしもモニターしていない。この場合管理ノードは必ずしも図13の基幹サーバーとは同等でなくともよい。
参加ノードは物理ネットワークの全体の管理は行なわずに物理ネットワークに参加するすべての物理ノードであり、必ずしも周辺ノードのことを意味しない。
管理ノードも参加ノードも、どちらも、図102のように本願のチップ認証装置とチップ認証抽出装置の両方を有する物理ノードである。この点で、参加ノードは周辺ノードとは異なる特徴を持つ。すなわち、周辺ノードはチップ認証装置さえ搭載していればよく、必ずしもチップ認証抽出装置を搭載していない。
管理ノードも参加ノードも、どちらも内部メモリ(あるいは内蔵メモリ)を有する。該内部メモリは、図10および19の入力コード(402、42)に対応するチャレンジ(C)、および、図10および19の出力コード(403、43)に対応するレスポンス(R)の組、入出力セット(CR)を定義し、それを内部メモリに保存されている辞書に記録することが可能である。したがって、CRは1セットのみに限らないので、内部メモリには複数のCRの組合せがそれぞれ対応する形で保存されることになる。対応の仕方は、一例として、図19の入力コード42(C)と図19の登録コード43(R)の組み合わせのようになる。さらに具体的に説明すると、RTSDEDDTAG!$&D(()とC(Y6;sHWLnp!L+5P[+@で一つの組み合わせ(CR1)となる。RTSDEDDTAG!$&D(()とwG;x'5@/O(GM";ODS+Kで別の一つの組み合わせ(CR2)となる。0D$zD)X=Fpgd[_&x.*nと_p]Q|9ecbe{2Ieq=!?Eで、更に別の一つの組み合わせ(CR3)となる。もちろん、CR1、CR2、CR3のうち、どの任意の二つをとっても区別されれなければならない。このような(CR)の集合を{CR}で記述し、辞書と呼ぶ。チップ認証抽出装置の重要な役割の一つは、閉じた物理ネットワークから(CR)を収集し、前記内部メモリに記録し、辞書{CR}を作成し、保存し、必要に応じて編集することである。
(参加ノード)
周辺ノードと異なる参加ノードの一つの特徴は、自分以外の物理ノードのチャレンジ(C)およびレスポンス(R)の組(CR)を自分の内部メモリ(あるいはストレージ)に保存できることである。このCRの組み合わせは複数あるので、一定の条件でCRを集めた集合{CR}は物理ネットワークの一種の辞書となる。このように参加ノードが保持する辞書を「局所辞書」と呼ぶ。ただし、局所辞書は自分が参加する物理ネットワーク上のすべての物理ノードを網羅している必要はない。なぜなら、参加ノードは自分が参加する物理ネットワークの全体の管理をすることは要求されていないからである。また、参加ノードは、自分自身に関するCRを保存しない。参加ノードは、自分が参加するネットワーク内に運用基点を有するネットワークサービスを利用し、その運用基点の真偽にのみ興味がある。この参加ノードは、例えば図102の第二のノード2002(あるいは第二の物理ノード2002)であり、この運用基点は、例えば図102の第一のノード2001(あるいは第一の物理ノード2001)である。第二の物理ノードは局所辞書{CR}を内部メモリに保存している。第二の物理ノードに搭載される第二のチップ認証抽出装置は、該内部メモリに保存されている局所辞書{CR}のチャレンジの中から第一の物理ノード(運用基点)に対応する入力(C)を選び、第一の物理ノード(運用基点)に第二の入力信号として入力する。第一の物理ノードに搭載される第一のチップ認証装置は、第二の入力信号(C)を受け取り、第一の物理ノードに搭載されているチップに固有な乱数を用いて出力(R)を生成し、それを第二の物理ノードに搭載される第二のチップ認証抽出装置に第一の出力信号として返送する。第二の物理ノードは、前記第二のチップ認証抽出装置が受け取った出力(R)と前記内部メモリに保存されている局所辞書{CR}のうち対応する前記入力(C)に対応するRを比較し、この二つのRが不一致であれば偽と判定する。一致する場合第二の物理ノードは前記第二のチップ認証抽出装置を用いてさらに別の第二の入力信号を選び同様の検査を複数回行うか、あるいは第一の物理ノードを真と判定する。
参加ノードが自分自身に関するCRの組み合わせを保存しないのは、もし保存しているとチップ認証装置を使わずに入力されたCに対し対応するRを返答することができるようになるからである。逆に言えば不正ノードは、局所辞書に自信のCRを含んでいなければならない。正規のノードは、チップ認証装置を使って入力されたCからRを生成するので、CRを自分の局所辞書に登録しておく必要がない。この特徴を生かして偽造ノードの自動検索が可能となる。たとえば、第一の物理ノードが第二の物理ノード(参加ノード)の局所辞書{CR}を読んだとき、第一の物理ノードが保存している第二の物理ノードに関するCRの組がこの局所辞書{CR}の中に含まれているかどうかを確認すればよい。含まれていれば第二の物理ノードは偽造ノードであると認定される。偽造ノードの自動検索方法の具体例は、例えば図20および図21に示してあるが、必ずしもこれらの例に限らない。
(管理ノード)
自分が管理する物理ネットワークに参加するすべての参加ノードの入力(C)と出力(R)の組み合わせ(CR)を自分の内部メモリに記録する。自分が管理する物理ネットワークに参加するすべての参加ノードのCRの組を集めたもの{CR}を「大域辞書」と呼ぶ。ただし、この管理ノードのCRをこの管理ノードが所有する大域辞書に含める必要はない。
管理ノードのメモリに記録された「大域辞書」にCRが登録されていない参加ノードは、自動検索によって発見され、前記管理ノードが管理する物理ネットワークから自動的に排除される。こうして、大域辞書の記録された物理ノードのみで構成された物理ネットワークを「閉じた物理ネットワーク」と呼ぶ。大域辞書に登録されていない物理ノードはこの閉じた物理ネットワークに参加できないので、管理ノードは自分が管理する物理ネットワークに参加する参加ノードを正しく(物理的に)限定することができる。
閉じた物理ネットワークに参加ノードを登録するには、その参加ノードに関するCRを大域辞書に登録する必要がある。登録される参加ノードに渡されるCは管理ノードが決め、Rは登録される参加ノードに搭載されるチップに固有の乱数と前記Cの組み合わせによって決定される。
(登録方法)
ここで、一般に第二の物理ノードが第一の物理ノードに関するCRの組を第二の物理ノードの内部メモリに保存(登録)し、第二の物理ノードに局所辞書を作成する方法を図102の例を用いて説明しておく。ただし、この登録方法の説明において、第一の物理ノードは管理ノードでも参加ノードでもどちらでもよい。同様に第二の物理ノードは管理ノードでも参加ノードでもどちらでもよい。
まず、第二のノード2002(第二の物理ノード)が第一のノード2001(第一の物理ノード)に入力(C)を渡す。この入力(C)は第二の入力信号に相当する。この入力(C)は第二の物理ノードが任意の方法あるいは所定の方法で決定できる。第一の物理ノードに搭載される第一のチップ認証装置はこの入力(C)を受け取り、この入力(C)及び第一のチップ認証装置を構成するチップに固有な乱数から出力(R)を生成する。すなわち、この出力(R)は第一の出力信号に相当し、所定の方法により、第一の物理ノードに搭載されるチップに固有の乱数と第二の物理ノードが決定する前記入力(C)の組み合わせによって決定される。第一のチップ認証装置はこの出力(R)を第二の物理ノードに搭載される第二のチップ認証抽出装置に返送する。こうして第二の物理ノードは、この入力(C)と出力(R)の組み合わせCRを第二の物理ノードの内部メモリに保存する。この作業は、一つの第一の物理ノードに複数回繰り返すことが可能である。また、この作業は、複数の第一の物理ノードに複数回くりかえすことが可能である。こうして、複数の(CR)の組み合わせ{CR}が第二の物理ノードの内部メモリに保存されることになる。
第二の物理ノードが参加ノードであればそれは局所辞書である。第二の物理ノードが管理ノードであればそれは大域辞書と呼ぶ。大域辞書も局所辞書も第二の物理ノード(その辞書を所有する物理ノード)のCRは含まない。なぜなら、第二の物理ノードに対応する入力(C)を決定するのは、第二の物理ノード以外の物理ノードなので、第二の物理ノードが第二の物理ノードに対応するCRを決定することは不可能である。
前記チップに固有な乱数は、たとえば、前記第一のチップ認証装置に搭載されるメモリセルアレイの中の不良ビットの分布から抽出することができる。または、図22のように、前記第一のチップ認証装置に搭載される認証素子アレイ(例えば図23,24、29、69、72、74、77など)から上述した方法(図34−37、70、71など)を用いて抽出することができる。前記認証素子の例は、図33、38−68、92−101などを用いて説明できる。あるいは、ここで限定されている以外の別の方法を用いて抽出することができる。第一の物理ノードに搭載されるチップに固有の乱数と第二の物理ノードが決定する前記入力(C)の組み合わせから前記出力(R)を決定する、前記所定の方法は、例えば、図24−32、あるいは、図72−79を用いて説明できる。あるいは、ここで限定されている以外の別の方法を用いて決定することができる。
ところで、管理ノードは、一つの閉じた物理ネットワークに一つとは限らない。複数の管理ノードが一つの閉じた物理ネットワークに参加する参加ノードを管理することが可能である。この場合任意の二つの管理ノードが同じ一つの閉じた物理ネットワークを管理し、前記閉じた物理ネットワークに参加するすべての参加ノードがこれら二つの管理ノードの管理下に入る。また、これら二つの管理ノードは、互いに相手を管理することも可能である。さらに、一つの管理ノードが何らかの事由で動作不能になったとしても他方が物理ネットワークの管理を行うことが可能である。
周辺ノードは大域辞書も局所辞書も所有しない。参加ノードおよび管理ノードは、基幹ノードの一種である。図10の入力コード402および登録コード403の組み合わせだけでは大域辞書も局所辞書も定義できない。大域辞書とは、管理ノードが自ら管理する物理ネットワーク(閉じた物理ネットワーク)に参加する前記管理ノード以外のすべての物理ノードのCRの組を集め、前記管理ノードの内部メモリに保存する集合{CR}のことである。局所辞書とは、閉じた物理ネットワークに参加する参加ノードが、同じ閉じた物理ネットワークに参加する他の物理ノードのCRの組み合わせを集め、前記参加ノードの内部メモリに保存する集合{CR}のことである。局所辞書は、前記閉じた物理ネットワーク全体を網羅する必要はない。ただし、大域辞書も局所辞書も、自分以外のCRを含まないようにしなければならない。局所辞書および大域辞書を総称して単に「辞書」と呼ぶことができる。
(内部メモリ)
内部メモリに要求される基本的な性質の一つは外部から読むことが可能なことである。コピーされても問題はない。事実上辞書は、大域辞書も局所辞書も公開されているのと同じである。しかしながら、大域辞書も局所辞書も外部から不正に編集できないようにしておく必要はある。したがって内部メモリは、ワンタイムプログラマブルメモリ(OTP)であることが望ましい。
あるいは、辞書は、大域辞書も局所辞書も別の強固な方法で守っておくことが望ましい。この場合、ある物理ノードの辞書(大域辞書あるいは局所辞書)に関係するハッシュ値および電子署名は、その物理ノードに物理的に紐づけされた秘密鍵を用いなければ更新できない。その物理ノードの辞書の最新状態を含む辞書のブロックハッシュを生成し、複数の独立の物理ノードに共有させ、不正に改ざんするためには辞書のブロックハッシュの最新状態を共有するすべての物理ノードを欺かなければならないようにしておくことが望ましい。これは、従来のブロックチェーンとは異なる、辞書のブロックチェーンを生成する。
この目的のためには、本願のチップ認証装置を活用することが望ましい。例えば、図104で説明するように、第一の物理ノードの管理者(一例として、後述するセキュリティノード)が第三のチップ認証抽出装置などを用いて第三の入力信号を第一のチップ認証装置に送信する。第一のチップ認証装置は、第三の入力信号及び第一の物理ノードに含まれるチップに固有の物理的乱雑さ(固有乱数)から第三の出力信号を生成する。この第三の出力信号は鍵生成装置に渡され、前記鍵生成装置は所定の鍵生成アルゴリズムに応じて秘密鍵及び公開鍵を生成する。前記秘密鍵及び公開鍵は、暗号化を司るセキュリティモジュールに引き渡される。前記セキュリティモジュールおよび前記鍵生成装置は、自明なので特に図示しないが、図111のセキュリティチップに含むことができる。前記セキュリティチップは、こうして、ハッシュ値を生成し、秘密鍵を用いて電子署名を生成し、内部で生成したセキュリティ状態を記憶しておくためのメモリを含むこともできる。このセキュリティチップを用い、第一の物理ノードの内部メモリに保存されている辞書(大域辞書あるいは局所辞書)を読み込み、所定のアルゴリズムに従って前記辞書に関連するハッシュ値及び電子署名を生成する。第一の物理ノードは、前記電子署名、前記ハッシュ値、および前記公開鍵をブロックチェーンが活用されているネットワークに使用すればよい。ここで最も特徴的なことは、第一のチップ認証装置の出力から生成した秘密鍵を用いて辞書の共有に関する電子署名生成するところである。
図105−110は、前記所定のアルゴリズムの一例を示す図である。第0の物理ノードを、前記ブロックハッシュを作るための起点とする。ただし、第0の物ノードは、少なくとも第0のチップ認証装置と、鍵生成装置と、第0の辞書(大域辞書あるいは局所辞書)を保管する内部メモリを有する。その他特に図示しないが、第0のチップ認証抽出装置を有することができる。
まず、何らかの方法でこの第0の物理ノードに入力信号を入力する。第0の物理ノードは、前記入力信号を第0のチップ認証装置で受信し、第0の物理ノードに搭載されるチップに固有の物理的乱雑さ(固有乱数)から第0の出力信号を生成する。この第0の出力信号は鍵生成装置に転送され、該鍵生成装置は、この第0の出力信号を入力として所定のアルゴリズムに従い第0の秘密鍵および第0の公開鍵を生成する。第0の公開鍵と第0の辞書を合成し、適当なハッシュ関数(一例としてSHA−256など)を用いて第0のハッシュ値を生成する。次に、第0の物理ノードは、第0の秘密鍵を用いて第0のハッシュ値と第一の物理ノード(受信側)の公開鍵(第一の公開鍵)をまとめて暗号化し、第0の電子署名を生成する。最後に、第0の物理ノードは、第0のハッシュ値と第0の電子署名を受信側である第1の物理ノードに送付する。第一の物理ノードは、さらに第二の物理ノードに対して同様の処置をすることができる。ただし、第一のハッシュ値を作るとき、第1の公開鍵、第1の辞書、さらに、第0の電子署名とハッシュ値を合成する点のみが異なる。これは、第0の物理ノードが起点であり、受信したハッシュ値および電子署名がないためである。
図106では、第Nの物理ノード(送信側)から第N+1の物理ノード(受信側)への転送の一例を示している。
まず、何らかの方法でこの第Nおよび第N+1の物理ノードにそれぞれ入力信号を入力する。この二つの入力信号は等しくても良いが等しくなくてもどちらでも良い。第Nの物理ノードは、前記入力信号を第Nのチップ認証装置で受信し、第Nの物理ノードに搭載されるチップに固有の物理的乱雑さ(固有乱数)から第Nの出力信号を生成する。この第Nの出力信号は鍵生成装置に転送され、該鍵生成装置は、この第Nの出力信号を入力として所定のアルゴリズムに従い第Nの秘密鍵および第Nの公開鍵を生成する。第Nの公開鍵、第Nの辞書、および、第N−1の電子辞書とハッシュ値と、を合成し、適当なハッシュ関数(一例としてSHA−256など)を用いて第Nのハッシュ値を生成する。次に、第Nの物理ノードは、第Nの秘密鍵を用いて第Nのハッシュ値と第N+1の物理ノード(受信側)の公開鍵(第N+1の公開鍵)をまとめて暗号化し、第Nの電子署名を生成する。最後に、第Nの物理ノードは、第Nのハッシュ値と第Nの電子署名を受信側である第N+1の物理ノードに送付する。第N+1の物理ノードは、さらに第N+2の物理ノードに対して同様の処置をする。ただし、Nは、Lを最大とする自然数であるとする。その他特に図示しないが、第Nの物理ノードは、第Nのチップ認証抽出装置を有することができる。また、第Nのハッシュ値を生成する際、第Nの電子署名と第N−1のハッシュ値のどちらか一方を省くことも可能である。本願の特徴は、第Nのハッシュ値を生成する際第Nの辞書を含めてハッシュ化するところであり、従来のブロックチェーンと異なり、少なくとも第N−1のハッシュ値と第N−1の電子署名のどちらか一方を第Nのハッシュを生成するとき省略することが可能である。これは、本願の目的が、ハッシュ値として公開鍵に紐づけられ暗号通貨の転送ではなく、辞書のブロックチェーンを構成することだからである。図107は、第N−1のハッシュ値を省略して第Nのハッシュ値を生成する例を図示したものである。図108は、第N−1の電子署名を省略して第Nのハッシュ値を生成する例を図示したものである。図109は、第N−1の電子署名および第N−1のハッシュ値を省略して第Nのハッシュ値を生成する例を図示したものである。
上述したハッシュ値および電子署名の生成・転送をいつ行うかはシステム設計による。一例として、第Nの辞書が更新されたとき、第Nの物理ノードが第Nのハッシュ値および第Nの電子署名を生成し、任意に選んだ第N+1のノードに転送することが望ましい。
いずれにしろNが最大値であるLに到達すると、図110のようになる。ここで、第Lの物理ノードとは、このような一連の転送の最終到達点(最新)である。したがって、第Lのハッシュ値は、一連の辞書の最新情報をすべて内包している。この第Lのハッシュ値を一連の転送履歴の代表コードとし、メルクルの根と呼ぶ。あとは通常のブロックチェーンのアルゴリズムに従い、このメルクルの根からブロックハッシュおよびブロックチェーンを生成してゆけばよい。
公開鍵と秘密鍵を生成する所定のアルゴリズムとは、例えば、第Nの出力信号に適当な整数を加算してその和が素数になるかどうか確認する。この操作をその和が素数になるまで繰り返す。次に第Nの出力信号から適当な整数との差を計算しそれが素数になるかどうか確認する。この操作をその差が素数になるまで繰り返す。こうして二つの素数を生成したのちそのかけ合わせる。あとはRSA法に従い秘密鍵と公開鍵を生成すればよい。
図105−110の入力信号は、一例として、管理ノードのチップ認証抽出装置が外部からの入力として与えることが望ましい。あるいは、後述するセキュリティノード(図111参照)が与えるセキュリティパラメータとすることも可能である。いずれにしろ、図111のハッシュモジュールは、図104のセキュリティモジュールに含むことができる。なお、前記セキュリティモジュールは、図105−110のハッシュ値を生成するために使用することも可能である。このように、一つのモジュールに複数の機能に活用することが可能である。これは、セキュリティモジュール搭載による製品価格の増加を下げる上で重要なアドバンテージとなる。あるいは、第四の実施形態で説明したように、P-CID(入出力セット)を生成するために外部から周辺ノードに入力される入力コードを利用してもよい。
(セキュリティ状態)
前記チップ認証装置に入力する入力信号を特にチャレンジ(C)と呼ぶ。このチャレンジ(C)に対応して前記チップ認証装置が生成する出力信号を特にレスポンス(R)と呼ぶ。上述して来たように、CとRの組み合わせ(CR)は、チップ認証装置を構成するチップに固有な乱雑さ(固有乱数)に依存して決まる。このCRは、チップに固有な乱雑さに依存しつつ更にセキュリティ状態に応じて変化する。
固有乱数の例は、例えば、図22および26の市松模様、図25、26、30のd(i、j)、図35のデータの例、図73および76のランダムな水平模様、図75および76のd(i)などである。
ある物理ノードを局所辞書もしくは大域辞書(単に「辞書」)に登録する際、登録される物理ノードのセキュリティ状態|Qj>によって、前記物理ノードに入力されるチャレンジ(C)に対するレスポンス(R)の値は変わる。たとえば、C|Q1> = R1|Q1⟩、C|Q2> = R2|Q2>、… C|Qn> = Rn|Qn>、などのように書ける。ここで、状態|Q>への添え字jは1からnまでの整数とする。
セキュリティ状態は、各物理ノードに渡されるセキュリティパラメータと各物理ノードに搭載されているチップに固有な乱雑さとの組み合わせによって決まる。セキュリティパラメータは管理ノードによって各物理ノードに渡される。セキュリティパラメータを各物理ノードに渡す管理ノードを特にセキュリティノードと呼ぶ。あるいは、セキュリティノードに大域辞書を持たせる必要がないときは別途指定された参加ノードでもよい。セキュリティノードは、一つの閉じたネットワークの中に複数あって構わない。
各物理ノードのセキュリティ状態は、セキュリティノードがセキュリティパラメータを更新し各物理ノードに渡すことによって変更できる。このようなセキュリティ状態の更新は、セキュリティノードが随時任意に行うことができる。一つの閉じたネットワークにおいてセキュリティ状態の更新が行われる度に局所辞書も大域辞書も更新される。
セキュリティパラメータの導入方法の第一の例は、すでに説明してある。例えば、図23および74の認証素子アレイを、図29および77のようにスクランブル装置セルアレイ614とチップ認証装置アレイ611に分割するための二つの整数の組み合わせ(N、K)である。ここでKはスクランブル装置セルアレイ614に割り当てられる行数であり、Nはチップ認証装置セルアレイ611に割り当てられる行数である。
図111は、セキュリティパラメータの導入方法の第二の例の概念を説明する図面であるである。第一の物理ノードは少なくとも一枚のチップを搭載しており、このチップは、認証素子からなる認証素子用セルアレイ(あるいは単にセルアレイ)を少なくとも搭載しており、その認証素子用セルアレイに固有の乱雑さから乱数(固有乱数)を生成する。
認証素子の例は、例えば、図33、38−52、69、72、74、77、92−96、および99の認証素子977、図53および54のキャパシタ982、図55および56のPN接合986、図57および58のショットキー接合、図59および60の抵抗985、図61および62のトランジスタ983、図63および64のトランジスタ983とキャパシタ982の組み合わせ、図65および図66の選択トランジスタ984、図67の選択トランジスタ、図68のトランジスタ983、図97および98の電荷蓄積送付き不揮発性メモリセル988、および図100と101の可変抵抗981などである。
認証素子用セルアレイの例は、例えば、図23、24、69、72、74などの認証素子用アレイ960や、図89−91、109−114のセルアレイである。
第一の物理ノードは、さらにセキュリティチップを搭載している。前記セキュリティチップハッシュモジュールを搭載している。前記チップのセルアレイと前記セキュリティチップのハッシュモジュールから第一のチップ認証装置を構成する。このように、第一のチップ認証装置は、ともに第一の物理ノードに搭載される少なくとも二つのチップによって構成される。
前記セキュリティノードは、前記セキュリティパラメータとしてノンス値(たとえばn)をこのハッシュモジュールに渡す。前記ノンス値を生成するため、前記セキュリティノードはノンス値生成モジュールを搭載することができる。あるいは、前記セキュリティノードに搭載されているチップ認証抽出装置の出力信号をノンス値として送付することも可能である。この場合、図111の第二の物理ノードと第三の物理ノードは、ノンス値とチャレンジを入れ替えれば同様であることが自明である。すなわち、セキュリティノードの役割は、他の参加ノードや管理ノードでも代替えできる。
いずれにしろ、このハッシュモジュールは、前記固有乱数とこのノンス値からハッシュ値を生成しそれをセキュリティ状態(Qn)として出力する。第二の物理ノードに搭載される第二のチップ認証抽出装置からチャレンジ(C)をこの第一の物理ノードに入力すると、前記第一のチップ認証装置は、上述のようにして決定されたセキュリティ状態(Qn)に対してレスポンス(Rn)を出力する。こうして第二のチップ認証抽出装置は、このCとRnの組み合わせ(CRn)を得ることができる。
(セキュリティ状態の変更)
セキュリティノードは、新たなノンス値(m)を第一の物理ノードに渡し、第二の物理ノードにセキュリティパラメータを変更したことを告げる。第二の物理ノードは、第一の物理ノードの認証を検査する。このときに得る(CRm)の組み合わせと自分が保存している辞書(大域辞書あるいは局所辞書)の中の第一の物理ノードに対応する部分(CRn)を比較する。不一致であれば自分が所持する辞書に登録されている他の物理ノードの認証も検索する。こうして認証を検査した複数の物理ノードのCRの組み合わせが不一致であれば、確かにセキュリティパラメータが更新されたものとして辞書に新たなCRの組み合わせ(CRm)をアペンドするか、あるいは、(CRn)に上書きする。上書きとアペンドの選択は当該の閉じた物理ネットワークを設計し保守し管理するシステムエンジニアの判断による。
(セキュリティパラメータ偽造の防御)
ハッカーがセキュリティパラメータを不正に更新できないようにするため、第一の物理ノードは、あらかじめノンス値を送ってくるセキュリティノードのチップ認証を行う必要がある。このため、セキュリティノードは少なくとも第三のチップ認証装置を搭載している。第一の物理ノードに搭載されている第一のチップ認証抽出装置が第三のチップ認証装置を検査する方法は、図102で説明した第一のチップ認証抽出装置が第二のチップ認証装置を検査する方法と同様である。
第二の物理ノードは、セキュリティパラメータが更新されたことを告知してくるセキュリティノードのチップ認証を行う必要がある。このため、第二の物理ノードに搭載されている第二のチップ認証抽出装置は、セキュリティノードに搭載されている第三のチップ認証装置を検査する。第二のチップ認証抽出装置が第三のチップ認証装置を検査する方法は、図102で説明した第二のチップ認証抽出装置が第一のチップ認証装置を検査する方法と同様である。
セキュリティノードは、セキュリティパラメータの更新をハッカーの物理ノードに告知しないよう、第二の物理ノードのチップ認証を行う必要がある。このため、セキュリティノードに搭載されている第三のチップ認証抽出装置は、第二の物理ノードに搭載されている第二のチップ認証装置を検査する。第三のチップ認証抽出装置が第二のチップ認証装置を検査する方法は、図102で説明した第一のチップ認証抽出装置が第二のチップ認証装置を検査する方法と同様である。
セキュリティノードは、ハッカーの物理ノードに更新されたセキュリティパラメータを送付しないよう、第一の物理ノードのチップ認証を行う必要がある。このため、セキュリティノードに搭載されている第三のチップ認証抽出装置は、第一の物理ノードに搭載されている第一のチップ認証装置を検査する。第三のチップ認証抽出装置が第一のチップ認証装置を検査する方法は、図102で説明した第二のチップ認証抽出装置が第一のチップ認証装置を検査する方法と同様である。
ハッカーが閉じた物理ネットワーク内の一部の物理ノードの認証を盗んだとしてもセキュリティパラメータを更新することによって盗んだ認証が無効化されるので、セキュリティノードは随時任意に上述の方法でセキュリティパラメータを更新することが望ましい。また、セキュリティノードは一つの閉じた物理ネットワークに複数存在して構わない。いつどこでだれがセキュリティパラメータを更新するかなるべく予測困難にすることが望ましい。
例えば、一つの閉じた物理ネットワークに二つのセキュリティノードが存在する場合を考えよう。これら二つのセキュリティノードがそれぞれ異なるセキュリティパラメータをこの閉じた物理ネットワーク内に配布すると、管理ノードは二つの異なる大域辞書を持ち、各参加ノードは二つの異なる局所辞書を持つことがある。
このよう場合においてチップ認証の混乱を避けるためには、図105において、例えば、第二のチップ認証抽出装置が第一のチップ認証装置にチャレンジ(C)を送る際次の手続きを事前に行うこととする。1)一つのセキュリティノードを選択する。2)そのセキュリティノードに、第一のチップ認証装置にノンス値を送信するよう要請する。3)第二のチップ認証抽出装置からチャレンジ(C)を第一のチップ認証装置に送信する。あとは通常通りの認証手続きをとればよい。図112は、図110の第二のチップ認証抽出装置が具体的に行うべき処方箋の一例を示した図面である。まず、チップ認証を検査する物理ノードとセキュリティノードを選択する。続いて、選択したセキュリティノードに要請し、選択した物理ノードにセキュリティパラメータを送信させる。次に、選択した物理ノードにチャレンジ(C)を送信する。さらに続いて、選択した物理ノードからレスポンス(R)を受け取り、選択した物理ノードのチップ認証(CR)を得る。そして、このCRと、所有する辞書(大域辞書あるいは局所辞書)の選択した物理ノードに対応する部分とを比較する。一致すれば認証終了である。一致しなければ、検査した物理ノードは辞書に登録された物理ノードとは別のものであると認識し、検査した物理ノードに対してあらかじめ設定した必要な手続きを取る。一例として、ネットワークから排除する、あるいは、必要に応じて検査した物理ノードのネットワークへの登録手続きを取る、などである。
図113は、一枚のチップに第一のチップ認証装置を集積した例を示す図面である。このように固有乱数を生成するためのセルアレイおよびハッシュモジュールを、第一のチップ認証抽出装置とともに一枚のチップに集積することが可能である。ただし、この場合チップの開発費は高くなるので、図111のような構成にも意味はある。
あるいは、自明なので特に図示しないが、与えられたノンス値(n)から前記ハッシュモジュール及びセキュリティ状態(Qn)を生成するのはエミュレータでも構わない。これは、この部分をソフトウェアで代用できることを意味している。ただし、少なくとも前記固有関数はハードウェアであるチップ固有の乱雑さから生成しなければならない。
(偽造ノードの自動検索および自動排除)
上述したように、一つの閉じた物理ネットワークに属するすべての物理ノードは、管理ノードか参加ノードにかかわらず、自分のCR(自己CR)を自分の辞書(大域辞書あるいは局所辞書)に含んではいけない。したがって、管理ノードの数だけ異なる大域辞書が存在しうる。(それぞれ自己CRを含んでいない点で異なる。)管理ノードのうちセキュリティパラメータの更新をつかさどるものを特にセキュリティノードと呼んだ。
これに対し、物理ノードの自動検索を行い、その中に不正ノードが発見されればその不正ノードを自動的に該閉じた物理ネットワークから排除(自動排除)する管理ノードを、特に検索ノードと呼ぶ。検索ノードも一つの物理ネットワーク内に複数存在して構わない。ここで、検ノードが所持する大域辞書を特に検索辞書と呼ぶ。つまり、検索辞書も複数存在して構わない。
まず、一つの検索ノードと一つの検索辞書が存在する場合を考えよう。図114は、自動検索および自動排除の方法の具体例の一例である。まず、検査する物理ノードを選択する。このとき検索辞書の中から選択された物理ノードに対応するCR(検査CR)を読み出しておく。続いて選択された検査対象の物理ノードの内部メモリを読み出し、その中に検査CRがないか調べる。つまり、検査CRと検査対象が所持する辞書{CR}とを比較する。一致していれば不正判定し、不正判定を受けた検査CRをすべての管理ノードの大域辞書及びすべての参加ノードの局所辞書から削除するよう閉じた物理ネットワーク内のすべての物理ノードに指示する。不正判定でなければ次の検査対象を選択できるかどうか調べる。
不正ノードが検査対象に成りすますためには検査CRが必要である。一方、検査対象が不正でなければチップ認証装置が検査CRを認証の都度に生成するので検査CRを内部メモリに保存しておく必要はない。
不正判定を受けた検査CRをすべての管理ノードの大域辞書及びすべての参加ノードの局所辞書から削除するよう閉じた物理ネットワーク内のすべての物理ノードに指示し、次の検査対象を選択できるかどうか調べる。すべての物理ノードを検索していれば作業終了とする。そうでなければ次の検査対象を選択する。
(管理の共同性)
管理ノードは、時にセキュリティパラメータのメンテナンスを行うセキュリティノードであり、時に前記自動検索・自動排除を行う検索のノードである。またある時には、管理ノードはセキュリティノードかつ検索ノードである。
3つの閉じた物理ネットワークにそれぞれ一つの管理ノード(A、B、C)が存在する場合を考えよう。図115参照。これら3つの管理ノードは時にセキュリティノードであり、時に検索ノードであり、時にセキュリティノード兼検索ノードである。
図115において、領域Aは管理ノードAの管理範囲である。領域Bは管理ノードBの管理範囲である。領域Cは管理ノードCの管理範囲である。管理範囲A,B、Cが同時に重なり合う領域は、ABCの共同管理領域(管理領域ABC)である。AとBの管理範囲が重なり合う部分はAとBの共同管理領域(管理領域AB)である。BとCの管理範囲が重なり合う部分はBとCの共同管理領域(管理領域BC)である。CとAの管理範囲が重なり合う部分はCとAの共同管理領域(管理領域CA)である。
管理領域ABCを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはA、B、C3つの管理ノードが存在する。
管理領域ABを新に一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはAとB2つの管理ノードが存在する。
管理領域BCを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはBとC2つの管理ノードが存在する。
管理領域CAを新たに一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークにはCとA2つの管理ノードが存在する。
Aに管理され、新たにBおよびCに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードAが存在する。
Bに管理され、CおよびAに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードBが存在する。
Cに管理され、AおよびBに管理されていない管理領域を一つの閉じた物理ネットワークとみなすことができる。このとき、この閉じた物理ネットワークには一つの管理ノードCが存在する。
領域Aまたは領域Bを新たに一つの閉じた物理ネットワークとみなすとき、物理ノードAおよび物理ノードBはともにこの閉じた物理ネットワークの大域辞書を所有できないので管理ノードではない。しかしながら、物理ノードAの局所辞書と物理ノードBの局所辞書が共同でこの一つの物理ネットワーク全体(領域Aまたわ領域B)を網羅することができれば、参加ノードAおよび参加ノードBによってこの閉じた物理ネットワークを共同で管理することが可能である。このように、実際には管理ノードがなくても参加ノードの連携による管理が可能である。これは、閉じた物理ネットワークにおける、物理ノードの中央管理と分散管理の共存を可能とする。このとき、参加ノードAの局所辞書が領域Aのマップを定義している。参加ノードBの局所辞書が領域Bのマップを定義している。
このように二つの異なる参加ノードで一つの閉じた物理ネットワークを共同管理する場合、セキュリティパラメータの更新・メンテナンスや自動検索・自動排除等は、上述の説明において管理ノードを参加ノードに置き換え、大域辞書を局所辞書に置き換えれば同様である。ただし、これら二つの参加ノードの局所辞書はそれぞれが管理する領域のマップを定義する。そしてこの二つの局所辞書によって定義されるマップが閉じた物理ネットワークの全体を網羅することが必要である。これは、一つの閉じた物理ネットワークを二つに分割した例である。
領域Aまたは領域Bまたは領域Cを新たに一つの閉じた物理ネットワークとみなすとき、物理ノードAおよび物理ノードBおよび物理ノードCはどれもこの閉じた物理ネットワークの大域辞書を所有できないので管理ノードではない。しかしながら、物理ノードAの局所辞書(領域Aのマップ)と物理ノードBの局所辞書(領域Bのマップ)と物理ノードCの局所辞書(領域Cのマップ)が共同でこの一つの物理ネットワーク全体(領域Aまたわ領域Bまたは領域C)を網羅することができれば、参加ノードAおよび参加ノードBおよび参加ノードCによってこの閉じた物理ネットワークを共同で管理することが可能である。このように、実際には管理ノードがなくても参加ノードの連携による管理が可能である。これは、一つの閉じた物理ネットワークを三つに分割した例である。
一つの閉じた物理ネットワークは、上述のように複数の管理領域に分割することが可能である。このように複数の異なる参加ノードで一つの閉じた物理ネットワークを共同管理する場合、セキュリティパラメータの更新・メンテナンスや自動検索・自動排除等は、上述の説明において管理ノードを参加ノードに置き換え、大域辞書を局所辞書に置き換えれば同様である。ただし、これら複数の参加ノードの局所辞書はそれぞれが管理する領域のマップを定義する。そしてこの複数の局所辞書によって定義されるマップが閉じた物理ネットワークの全体を網羅することが必要である。いずれにしろ、管理領域あるいは共同管理領域を定義することによって、閉じた物理ネットワークの領域が定義できる。この領域にアクセスできるかどうかは、本願の方法でチップ認証されるチップを搭載しているかどうかにかかわっている。こうして、本願の閉じたネットワークの概念を用いることによって、物理的ファイヤーウォールを形成することが可能となる。あえて「物理的」としたのは、論理ノードではなく、この管理領域内で管理されるのが物理ノードそのものだからである。また、複数の管理ノードが共存できるので、セキュリティノードと検ノードを異なる管理ノードで受け持つことが望ましい。これは、管理権限を分散させることを目的としており、民主主義の三権分立の考え方に近い。
こうして、一つまたは複数の管理ノードによる中央管理下に置かれた物理ノードのみから構成される閉じた物理ネットワークを、物理的ファイヤーウォールで囲むことができる。この物理的ファイヤーウォールの内側に存在する物理ノードにリンクする公開鍵(論理アドレス)と辞書を用いて、辞書のブロックチェーンによる論理的分散管理を行うことができる。こうして、中央管理と分散管理を共存させた強固な物理ネットワークが実現できる。
(チップ認証装置の分割設計)
本願のチップ認証装置は複数のチップに分割することができる。図116はその一例である。この図では、チップ認証装置が第一および第二の二つのチップに分割されている。第一のチップには前記固有乱数を生成するために必要なセルアレイ(あるいは認証素子用セルアレイ)が搭載されている。第二のチップには、第21のモジュールおよび第22のモジュールが搭載されている。図111の例に相当する。
図117は、別の一例を示す図面である。この図では、第一のチップに第21のモジュールとセルアレイ(あるいは認証素子用セルアレイ)が搭載されている。第二のチップには第22のモジュールが搭載されている。
図118は、更に別の一例を示す図面である。この図では、チップ認証装置が一枚のチップで構成されている。第21および22のモジュールとセルアレイ8あるいは認証素子用セルアレイ)のすべてが前記一枚のチップに搭載されている。図113の例に相当する。
上記第21および第22のモジュールには、例えば、鍵生成装置(図104−110)、ハッシュモジュール(図111および113)、チップ認証装置(図102等)、抽出回路(図89−91等)、乱数発生装置601(図26及び76等)、のコード発生装置602(図26及び76等)、606(図28等)、乱数発生装置605(図28等)、入出力制御装置800(図78等)、入出力制御装置810(図79等)、スクランブル装置890(図79等)、中間コード用バッファー900(図79等)、認証装置用制御装置880(図79等)、出力発生回路(図89、90等)などの中から設計仕様に応じて選択することができる。ただし、認証装置(図102等)あるいは抽出回路(図89−91等)を含むことが特に望ましい。
図119および図120は、更に別の一例を示す図面である。この図では、チップ認証装置が第一から第三の3枚のチップで構成されている。図119との違いは、第一のチップにセルアレイ(あるいは認証素子用セルアレイ)以外のモジュールの有無である。
上記第41−43のモジュール、あるいは、上記第51および第52のモジュールには、例えば、チップ認証装置(図102等)、抽出回路(図89−91等)、乱数発生装置601(図26及び76等)、のコード発生装置602(図26及び76等)、606(図28等)、乱数発生装置605(図28等)、入出力制御装置800(図78等)、入出力制御装置810(図79等)、スクランブル装置890(図79等)、中間コード用バッファー900(図79等)、認証装置用制御装置880(図79等)、出力発生回路(図89、90等)などの中から設計仕様に応じて選択することができる。ただし、認証装置(図102等)あるいは抽出回路(図89−91等)を含むことが特に望ましい。

(その他)
CPUと共同で働く主記憶装置がDRAMの場合、たとえば、図42、図63、あるいは、図64などのように認証素子としてDRAMセルを用いることが望ましい。この場合、一例として、図22のように2次元コード型の乱数コードを利用する方式が可能である。あるいは、代替素子979を有する図74の例において、認証素子としてDRAMセルを用い、図73のバーコード型の乱数コードを利用する方式が望ましい。あるいは、DRAMのリダンダンシーメモリなどを利用し、図73のバーコード型の乱数コードを利用する方式が望ましい。
上述した実施形態において、説明のために用いられたMOS型トランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、前記第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極と、から構成される。同じく説明のために用いられた不揮発性メモリセルトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、前記第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。同じく説明のために用いられた選択トランジスタは、一例として、前記不揮発性メモリトランジスタの層間絶縁膜の一部もしくは全てを層間導電層に置き換えたものである。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。NOR型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、NAND型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、NAND型の素子配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
上述した実施形態において、説明のために用いられたPN接合986は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、MOS型トランジスタや不揮発性メモリセルトランジスタあるいは選択トランジスタにも自動的に形成されている。
上述した実施形態において、説明のために用いられたショットキー接合987は、半導体と導電体を接触させたものである。PN接合も、ショットキー接合も、ダイオード接合の一種である。
上記において、MOS型トランジスタ、不揮発性メモリセルトランジスタ、選択トランジスタ、PN接合、およびショットキー接合等の構造を説明するために用いた第一導電型半導体基板は、半導体基板の広い領域に作成された第一導電型拡散層(通常ウェル)で置き換えることも可能である。
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
チップ認証装置3040が生成する、物理チップ認証(P-CID)は、通信伝達路1000に転送する前に、一時的にキャッシュメモリなどに保存して利用することが望ましい。また、本願の一例によれば、基幹ノードと周辺ノードが認証接続するには、まず、基幹ノードが所定のパスコードを周辺ノードに送り、その返信である出力(例えばP-CIDアドレスあるいはP-CID)を該基幹ノードに事前登録する必要がある。以後、この基幹ノードは、該周辺ノードと認証接続するために前記所定のパスコードとそれに対応するチップに固有の物理アドレス(あるいはP-CID)の組み合わせを用いることになる。本願ではチップに固有の物理アドレス(あるいはP-CID)を周辺ノードの不揮発性記憶領域に保存する必要はなく、そのため遠隔操作によって周辺ノードのチップに固有の物理アドレス(あるいはP-CID)を不正に取得し、編集することが非常に難しくなる。また、別の一例では、基幹ノードが所有するパスコードの代わりに、周辺ノードのユーザーが所有するPINコードを用いることも可能である。更に、このPINコードは、周辺ノードのオペレーティングシステムと連動させることも可能である。例えば、オペレーティングシステムの起動や待機状態(スリープモード)からの復帰などにも用いることが可能である。
この発明によれば、一例として、電子装置のネットワークを、周辺ノードと、周辺ノードの登録状況を管理する基幹ノードとに分割し、基幹ノードは中央管理とし、中央管理の手が行き届かない周辺ノードには、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、このチップ認証装置が生成する、物理チップ認証を用いて、周辺ノードへの遠隔攻撃を効率よく未然に防ぎ、ネットワークシステム全体のセキュリティを向上し、さらに、物理的実態を伴う、物のインターネット上のノードの物理アドレスをフレキシブルに運用することが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置(ノード)間の通信接続であり、特定のシステムの内か外かに関わらない。
本願のチップ認証装置が生成する物理チップ認証(P-CID)は、物理的実態を伴うチップ認証として利用することが可能であり、サプライチェーンに流通しているチップのトレーサビィリティに活用したり、偽造チップ問題の対策に応用したり、MACアドレスを補完してLANの管理を容易にしたり、あるいは、MACアドレスを置き換える新しい物理アドレスを提供することが可能である。その上、アドレス領域のビット数が可変であるため、将来のネットワーク技術の進歩に柔軟に対応することが可能となる。
あるいは、別の一例として、図89−91のチップ認証装置は、少なくとも、物理乱数を抽出するセルアレイを含むチップおよび抽出回路を含むチップからなるチップセットである。あるいは、図89−91のチップ認証装置は、少なくとも物理乱数を抽出するセルアレイを含むチップ、抽出回路を含むチップ、および出力発生回路を含むチップと、からなるチップセットである。あるいは、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイを含むチップと、抽出回路および出力発生回路を含むチップと、からなるチップセットである。
あるいは、別の一例として、図89−91のチップ認証装置は、少なくとも、物理乱数を抽出するセルアレイを含むメモリチップおよび抽出回路を含むチップからなるチップセットである。あるいは、図89−91のチップ認証装置は、少なくとも物理乱数を抽出するセルアレイを含むメモリチップ、抽出回路を含むチップ、および出力発生回路を含むチップと、からなるチップセットである。あるいは、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイを含むメモリチップと、抽出回路および出力発生回路を含むチップと、からなるチップセットである。
あるいは、別の一例として、図89−91のチップ認証装置は、物理乱数を抽出するセルアレイ、抽出回路、および出力発生回路を含むチップである。
あるいは、別の一例として、基幹ノードは、入力コード402および登録コード403を内部メモリ401に記録し、更にチップ認証抽出装置(たとえば図102の第二のノードの第二のチップ認証抽出装置)を有している。周辺ノードは、チップ認証装置60(たとえば図102の第一のノードの第一のチップ認証装置)を有している。ところで、基幹ノードにチップ認証装置を追加すると、図102の第二のノードのようになる。この第二のノードは、前記内部メモリ401のほかに第二のチップ認証装置および第二のチップ認証抽出装置を有する。一方、周辺ノードにチップ認証抽出装置を追加すると、図102の第一のノードのようになる。この第一のノードは第一のチップ認証装置のほかに第一のチップ認証抽出装置を有する。このように、周辺ノードと基幹ノードは、前記入力コード402および登録コード403を記録した前記内部メモリ401の有無によって区別できる。一方、図102のように、それぞれチップ認証装置およびチップ認証抽出装置を有する2つのノードは、互いに相手を認証することが可能である。これは、基幹ノード同士の相互認証をする際に便利である。また、周辺ノード同士の相互認証するためにも利用できる。
(乱数コードの外部生成)
図121から図125に示すように、チップ外部で別途生成した乱数コードをチップ認証装置のセルアレイに書き込み、保存することも可能である。ただし、前記別途生成した乱数コードは段落0124および0125で説明した(出力の予測不可能性)を満たさなければならない。また、前記別途生成した乱数コードと同じコードを別のチップ認証装置に保存することは避けなければならない。また、偶然に二つのチップのセルアレイに同じ乱数コードが書き込まれることも避けねばらない。さらに、前記別途生成した乱数コードの改ざんを防ぐため、前記別途生成した乱数コードを保存するセルアレイは書き換え不可としなければならない。このような条件を満たすことにより、前記別途生成した乱数コードもチップに固有な固有乱数であるとみなすことが可能であり、本願の概念を満たすすべての実施形態においてチップに固有な固有乱数として使用可能である。
こうしてチップに固有であるとみなされた乱数コードは本願の固有乱数の別の一例となり、本願のチップ認証装置(図8、図15、図16―18、図26−28、図76、図78、図79、図89−91、図102、図104−111、図113、図116−125等)への入力信号あるいは入力コード(チャレンジ)に対応して前記チップ認証装置からの出力信号あるいは出力コード(レスポンス)を生成するために利用することが可能となる。
(出力の予測不可能性)を満たさすため、乱数コードを生成するには物理的ばらつき要因による乱数生成装置が必要となる。このような物理的ばらつきをチップ外部に見つけることは可能である。物理乱数生成装置として複数の手法が応用可能であるが、最も予測不能性が高いのは量子ビットを用いるものである。量子ビットには0と1の両方の情報が同時に存在する。量子力学の観測問題の原理により読み出すとき0と1のどちらかに確率的に決定され、その読み出し結果を事前に予測することは理論的に不可能である。量子ビットから0と1の読み出しを繰りしその結果を一列に並べたものが乱数コードとなる。現在の技術では、多数の量子ビットを半導体チップに混載することは難しい。したがって、本願のチップ認証装置の製造とは別に準備した量子ビットから読み出して得た乱数コードを本願のチップ認証装置のセルアレイに書き込むことになる。もちろん他の物理原理による乱数生成方法を用いても構わない。
チップ外部での乱数コードの生成手法にかかわらず、あるチップ認証装置のセルアレイに保存する乱数コードと同じコードを別のチップ認証装置のセルアレイに保存することは避けなければならない。そのためには、まず、チップ外部で生成した乱数コードをチップ内部のセルアレイに書き込む権限を、チップの製造、配布、使用等に正規に関わる者のみに限らなければならない。
偶然に二つのチップのセルアレイに同じ乱数コードが書き込まれることを避けるには、生成する乱数コードのビット数が十分大きくなければならない。このビット数をQとし、乱数コードを書き込むセルアレイを含むチップ数をUとすると、2のQ乗をUで割ったものが十分大きな数であれば良い。一例としてトリリオンノードにも耐えうる仕様にするため、Uを10兆とすると、Qが40のとき、乱数コードの場合の数がちょうど1兆程度になるので、Qは少なくとも44よりずっと大きな数でなければならない。Qが50であれば、全世界に分配されたチップ認証装置に書き込まれた乱数コードのうち二つが偶然に一致する確率は100万分の1より小さくなる。すなわち、乱数コードの情報量は50ビット以上であることが望ましい。
つまり、一例として、チップ一枚辺り一つ量子ビットから50回読み出しを繰り返し、あるいは二つの量子ビットから25回読み出し、あるいは、M個の量子ビットから50/Mより少なくない回数だけ読み出し、その結果をチップ内のセルアレイに書き込めばよい。
一度正規に書き込まれた乱数コードの改ざんを防ぐため、前記別途生成した乱数コードを保存するセルアレイは書き換え不可としなければならない。このようなセルアレイには、ワンタイムプログラマブル(OTP)メモリを使用することが望ましい。
OTPの例として最も有望なものがマスクROMである。図41は、典型的なマスクROMのビットセル構造の一例でもある。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのMOSFETのPN接合をレーザーなどで焼き切ったり、ビット線に十分長い時間大電流を流すなどしてPN接合を確実に破壊する手法が考えられる。破壊されたPN接合を有するビットセルは整流作用を失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのMOSFETのPN接合は確実に破壊しなければならない。
PN接合を含むすべてのビットセル(図39、図41―43、図55、図56、図61−68、図92−98等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのMOSFETのPN接合をレーザーなどで焼き切ったり、ビット線に十分長い時間大電流を流すなどしてPN接合を確実に破壊する手法が考えられる。破壊されたPN接合を有するビットセルは整流作用を失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのMOSFETのPN接合は確実に破壊しなければならない。
あるいは、キャパシタを含むすべてのビットセル(図33、図38、図41−43、図53、図54、図61−68、図92−98等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのキャパシタに十分長い時間大電流を流すなどしてキャパシタの絶縁膜をハード破壊する手法が考えられる。破壊された絶縁膜を有するビットセルのキャパシタは絶縁性を失い、直流電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのキャパシタの絶縁膜は確実にハード破壊しなければならない。
あるいは、ショットキー接合を含むすべてのビットセル(図40、図57、図58等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルのショットキー接合に十分長い時間大電流を流すなどして接合を破壊する手法が考えられる。選択されたビットセルは接合破壊によって整流作用失い、逆電圧を印加しても電流が流れるようになる。例えば、破壊されたビットセルをデータ1に、破壊されなかったビットセルをデータ0に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスのキャパシタの絶縁膜は確実にハード破壊しなければならない。
あるいは、抵抗または抵抗配線を含むすべてのビットセル(図44、図46−48、図59、図60、図92、図93、図99−101等)をOTPとして活用することが可能である。まず外部の乱数発生装置により別途生成した乱数コードのビット表現に応じてセルアレイ中のアドレスを選択する。次に、選択されたアドレスに位置するビットセルの抵抗あるいは抵抗配線に十分長い時間大電流を流すなどして断線(ショート)させる手法が考えられる。選択されたビットセルは断線によって適当な電圧を印加しても電流が流れなくなる。例えば、断線したビットセルをデータ0に、断線されなかったビットセルをデータ1に対応させれば図22のような市松模様の乱数コードとなる。いずれにしろ、別途生成した乱数コードを書き込む場合、選択されたアドレスの抵抗あるいは抵抗線はは確実に断線しなければならない。
このように、チップ外で別途生成した乱数コードも、本願の概念を共有するすべてのチップ認証装置あるいは前記チップ認証装置を構成するチップに固有の固有乱数とみなすことが可能である。もちろん、図111あるいは図113の固有乱数にも活用することが可能である。
本願の固有乱数となる乱数コードを書き込むのは、本願の概念を共有するすべてのチップ認証装置の一部を構成するセルアレイ全体でも構わないし、そのセルアレイの一部でも構わない。セルアレイの一部である場合、例えば、図27、図29−32、図77、あるいは図79のような方法も考えられる。
以上から、チップに固有な固有乱数の生成方法は、チップ製造と共に生成する方法とチップの製造とは別に生成する方法と、主に二通りの方法に分割される。前者は製造したチップそのものをチップ認証装置に含め、後者は生成した固有乱数をチップ認証装置に含まれるOTPに書き込む。いずれの生成方法を用いたとしても、固有乱数とチップ認証装置への入力(チャレンジ)とを組み合わせてチップ認証装置からの出力(レスポンス)を得る限り、本願のチップ認証装置およびその活用方法の概念を逸脱しない。したがって、本願のすべての実施形態において、どちらの生成方法も同様に使用できる。
(なりすまし防止策)
図114で説明した(偽造ノードの自動検索および自動排除)には、図20や図21以外にも別のやり方がある。図20、図21、図114の共通点は、検査対象の内部メモリに本来検査対象が保存してはいけない情報が含まれているかどうかを検査するものである。ここでは、検査対象の内部メモリを検査せずになりすましを防ぐ方法を説明する。
図111および図113によれば、セキュリティノード(第三の物理ノード)がセキュリティパラメータ(ノンス値)を変更する前後、検査対象の物理ノード(第一の物理ノード)が含むチップ認証装置(第一のチップ認証装置)にそれぞれ同じチャレンジ(C)を入力すると第一のチップ認証装置からのレスポンス(R)が変化するはずである。すなわち、セキュリティパラメータ変更前にチャレンジ(C)を入力して第一のチップ認証装置から得られるレスポンスをR1とし、セキュリティパラメータ変更後にチャレンジ(C)を入力して第一のチップ認証装置から得られるレスポンスをR2とすると、R1とR2が等しければ検査対象の第一の物理ノードは不正にネットワークに接続しているものとみなされる。図126は、この検査方法の作業工程の一例を図示したものである。
(認証ノード)
図10から14、あるいは、図102、あるいは、図111および113において、あるチップ認証装置に入力信号(C)を入力し、そのレスポンスとして前記チップ認証装置から出力される出力信号(R)と、の組み合わせ(CR)は、本願に関連する物理チップ認証のために用いられる。本願の目的の一つは、こうして物理チップ認証により素性が保証された物理ノード同士を中心に分散システムを構築することである。ただし、本願は、本願の物理チップに認証により素性が保証された物理ノード同士のみで分散システムを構築することに限らない。たとえば、一つまたは複数の管理ノードが管理する管理領域に属する参加ノードと、前記管理領域の外に属する物理ノードあるいは論理ノードとの間の通信を禁止するものではない。ただし、前記参加ノードに対してアラートを出す、あるいはこの通信を管理ノード経由とするなどの条件を付けることが可能である。
一方、図104から110において、鍵生成装置に入力する(転送する)チップ認証装置からの出力(R)を生成するために、チップ認証装置に入力する入力信号は、必ずしも、前記物理チップ認証のために前記チップ認証装置に入力する入力信号と同じである必要はない。たとえば、物理チップ認証のためにチップ認証装置に入力する入力信号を検索Cとする。前記チップ認証装置は、この検索Cに応じて、レスポンスとして出力信号(検索R)を出力する。こうして、前記チップ認証装置を用いた物理ノードの物理チップ認証を入出力の組合わせ(検索C、検索R)によって実施することが可能となる。図102参照。
一方、こうして認証された物理ノードを分散システムに組み込むために、分散システムを管理する管理者(署名ノード)は、前記チップ認証装置に入力信号(署名C)を入力する。署名Cは、図104の第三の出力信号に対応する。このとき、署名Cは必ずしも検索Cと一致している必要はない。むしろシステム全体のセキュリティを向上させるためには、検索Cと署名Cは異なっている方が望ましい。
前記チップ認証装置は、入力信号(署名C)に応じて、レスポンスとして出力信号(署名R)を出力する。ただし、このレスポンスは、署名Cを受信した物理ノードの内部でのみ利用するため、署名Cの送り主(署名ノード)に返信することはしない。この署名Rは、鍵生成装置に入力され、前記鍵生成装置は、秘密鍵(S1)および公開鍵(P1)を生成する。図105から110参照。このとき、(入力の独立性)により、署名Cが検索Cと異なれば署名Rは検索Rと必ず異なる。P1は、前記チップ認証装置を有する物理ノードの、ネットワーク上の論理アドレスとなる。S1は使用後消去し、使用するごとに再生成することが望ましい。あるいは、物理ノード外部に漏らさないような形でS1を保持することが望ましい。いずれにしろ、S1は物理ノード外部から秘密にしておく必要がある。また、前記S1およびP1を生成後、署名Rはすぐに消去するか、外部からアクセスできない領域に格納することが望ましい。
検索Rは、物理ノードを認証するため、一度物理ノード外部に出力される。たとえば、図102において、第二の物理ノードは第二の入力信号(この場合の検索C)を第一の物理ノードに入力し、第一の物理ノードは、この二の入力信号に応じて、第一の出力信号(この場合の検索R)を第二の物理ノードに出力する。このように、物理チップ認証に用いる検索Rは物理ノードの外部に出力される。検索Cと署名Cが等しい場合、署名Rは検索Rと等しいので、署名Rが物理チップ認証のために物理ノード外部にさらされることになる。図104で説明しているように、署名Rは秘密鍵(S1)と公開鍵(P1)を生成するために必要なので、悪意あるハッカーの手に署名Rが渡ると容易にS1を再生することが可能となる。このため、異なる検索Cと署名Cを利用することが望ましい。
検索Cおよび署名Cをチップ認証装置に入力するのは、同一のノードでも良いし、異なる二つのノードであっても構わない。ここで、検索Cをチップ認証装置に供給する物理ノードは管理ノードであり、特に自動検索まで行う場合検索ノードである。一方、署名Cをチップ認証装置に供給する物理ノードを署名ノードと呼ぶことができる。たとえば、図105から110のチップに認証装置に供給される入力信号がこの場合の署名Cであり、この署名Cを供給する物理ノードが署名ノードとなる。ただし、図105から110には特に図示していない。また、検索Cと署名Cが異なってさえいれば、この検索ノードは前記署名ノードと同一であっても良いし、同一でなくても良い。
一般に、署名ノードは管理ノードの一種であり、大域辞書を有する。例えば、図127で示すように、署名ノードは、この大域辞書に登録されている参加ノード(例えば図106の第N+1の物理ノード)のチップ認証装置に前記署名Cを入力する。ただし、前記署名Cは、図106記載の入力信号とは異なる。図127の参加ノードは、図104の第一の物理ノードに対応している。この参加ノードのチップ認証装置は、前記署名Cの入力に対応するレスポンスとして署名Rを出力する。ただし、図104の第一の物理ノードは、前記署名Cの送り主(署名ノード)にこの署名Rを返信することはない。この署名Rは鍵生成装置に渡され、秘密鍵(S1)及び公開鍵(P1)を生成する。このS1およびP1はセキュリティモジュールに引き渡される。さらに内部メモリから辞書に関するデータを引き出し、セキュリティモジュールに渡す。セキュリティモジュールは、S1、P1、及び前記辞書から、所定の方法でハッシュ値、電子署名を生成する。このハッシュ値および電子署名は、この参加ノードを介した署名付きデータ転送に利用可能である。
なお、この参加ノードは、検索ノードにより事前に素性が確認可能である。すなわち、検索ノードのチップ認証装置からチャレンジ(検索C)を参加ノードのチップ認証装置に入力し、前記チップ認証装置は前記検索Cに応じてレスポンス(検索R)を出力し、前記検索ノードのチップ認証抽出装置に返送する。前記検索ノードは、前記検索Cと検索Rの組み合わせを内部メモリ(自明につき図示せず)に保存してある大域辞書と比較し、正規にネットワークへの参加を認められた物理ノードであるかどうかを確認する。
前述したように、この検索Cと署名Cは一致していないことが望ましい。さらに、署名ノードの大域辞書と検索ノードの大域辞書は同一であっても良く、同一でなくても良い。また、参加ノードのチップ認証装置は、図111および113のように、ハッシュモジュールを含み、セキュリティノードからセキュリティパラメータを受け取ることによってセキュリティ状態をアップデートし、検索ノードからチャレンジとして検索Cを受け取り、アップデートしたセキュリティ状態でレスポンス検索Rを生成し、前記検索Rを前記検索ノードに返信する。検索ノードと署名ノードの主な違いは、検索ノードが検索Cのレスポンスとして署名Cを受け取るのに対して、署名ノードは、署名Cの受信者の内部に署名Cを閉じ込めておくため、署名Rを受け取らないところである。
最後に、一つの閉じた物理ネットワークに対して定義できる辞書の数の上限は、最低でもこの閉じた物理ネットワークを構成する物理ノード(電子装置)の数と等しい。これら複数の辞書は、共同して前記一つの物理ネットワークに属する物理ノード(電子装置)とそれ以外の物理ノード(電子装置)を識別する。よって、これら複数の辞書によって、前記一つの閉じた物理的ネットワークを物理的ファイヤーウォールで囲うことができる。ただし、この物理的ファイヤーウォールは、地理上に定義されない点で従来の(論理的)ファイヤーウォールと同質であるが、内部に囲い込むノードが物理ノードである点で従来の論理的ファイヤーウォールと異質である。
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のSIMカードのようなものが物のインターネット用の周辺ノードに用いられるようなビジネスモデルに有効である。
中央管理の行き届かない周辺ノードを無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
プロトコル・データ・ユニットの伝送方法の一例を示す図。 通信階層を説明する図。 プロトコル・データ・ユニットの伝送方法の一例を示す図。 複数の通信ノードと複数の信号伝達路からなるネットワークの一例を示す図。 通信ネットワークの最小ユニット(エレメント)の一例を示す図。 イーサネットカード基本構成の一例を示す図。 チップ認証装置を含むチップを搭載した周辺ノードの一例を示す図。 本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。 正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺ノードを、基幹ノードに接続する方法の一例を示す図。 基幹ノードから、本発明のチップ認証装置を搭載したチップを含む周辺ノードに共通パスコードを送信する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺ノードから、認証コードを、基幹ノードに送信する方法の一例を示す図。 第一ネットワークユニットと第二ネットワークユニットに分割された複数の基幹ノードと、本発明のチップ認証装置を搭載したチップを含む複数の周辺ノードからなるネットワークの一例を示す図であり、そのネットワークは第一ネットワークユニットの基幹サーバーと第二ネットワークユニットの基幹サーバーとの接続を有するトポロジーを含む。 第一ネットワークユニットにおける複数の周辺ノードの少なくとも一つを含むトポロジーを示す図であり、複数の周辺ノードの少なくとも一つはそれぞれ複数の第二ネットワークユニットにおける基幹ノードの少なくとも一つに接続する。 本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。 本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。 入力コードと登録コードの対応表の一例を示す図。 周辺ノードの正当性を検査するための作業工程の一例を示す図。 周辺ノードの正当性を検査するための作業工程の一例を示す図。 市松状に割り振られたデータの一例を示す図。 M行N列の市松状に並べられた認証素子のレイアウトの一例を示す図。 入力コードを入力する方法の一例を示す図。 入力コード、出力コード、乱数の関係の一例を示す図。 チップ認証装置の利用法の一例を示すための基本構成の一例を示した概念図。 スクランブル装置を加えた実施形態の概念の一例を示す図。 スクランブル装置の基本構成の一例を示す図。 スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 スクランブル装置およびチップ認証装置の動作原理の一例を説明する図。 ブロックアレイ構造の一例を示す図。 ブロックアレイ構造の一例を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子からデータを読み出す方法の一例を説明するための図。 認証素子から読み出したデータのエラー補正方法の一例を説明する図。 破壊パルスの印可の仕方の一例を説明する図。 破壊パルスの印可の仕方の一例を説明する図。 認証素子の一例(導電体先端部)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子からデータを読み出す方法の一例を説明するための図。 認証素子の一例(導電体接合部)を示す図。 認証素子の一例(導電体)を示す図。 認証素子の一例(導電体)を示す図。 認証素子の一例(導電体ビア)を示す図。 認証素子の一例(導電体ビア)が物理的に乱雑さを生成するメカニズムを示す図。 認証素子を選択する方法の一例を示す図。 認証素子を選択する方法の一例を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子の一例(キャパシタ)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(PN接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(ショットキー接合)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子の一例(抵抗)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(電界効果トランジスタ)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(DRAM)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子の一例(選択トランジスタ)を示す図。 認証素子をNAND型配列した場合のレイアウトの一例を示す図。 認証素子をNAND型配列した場合のレイアウトの一例を示す図。 認証素子を読み出す方法の一例を示す図。 認証素子を読み出す方法の一例を示す図。 代換素子の一例を示す方法。 代換素子によるデータのランダムさを説明する図。 入力コードを入力する方法の一例を示す図。 入力コード、出力コード、乱数の関係の一例を示す図。 チップ認証装置の利用法の一例を示すための基本構成の一例を示した概念図。 スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 チップ認証装置を含む半導体チップの一例を示す図。 スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。 イーサネット形式の通信方法の典型的一例を示す図。 MACアドレスの形式の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた物理アドレス形式の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 本願のチップ認証(P-CID)を用いた通信方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 チップ認証抽出装置とチップ認証装置に関して、入力認証コードから出力認証コードを生成する方法の一例を示す図。 本願に関る認証素子がトランジスタおよび可変抵抗からなる可変抵抗メモリ素子である例を説明する図。 本願に関る認証素子がトランジスタおよび磁気抵抗からなる磁気抵抗メモリ素子である例を説明する図。 本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリ素子である例を説明する図。 本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリ素子であり、NAND型に配列している例を説明する図。 本願に関る認証素子がトランジスタおよび強誘電体キャパシタからなる強誘電体メモリ素子である例を説明する図。 認証素子の一例(電荷蓄積層付き不揮発性メモリセル)を示す図。 認証素子の一例(電荷蓄積層付き不揮発性メモリセル)を示す図。 本願に関る認証素子が可変抵抗からなる可変抵抗メモリ素子である例を説明する図。 認証素子の一例(可変抵抗)を示す図。 認証素子の一例(可変抵抗)を示す図。 本願の物理チップ認証(P-CID)を相互認証に応用する方法を示す図。 本願の物理ネットワークの一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願の物理ネットワークを実現する方法の一例を示す図。 本願のセキュリティノードの働きの一例を示す図。 本願のセキュリティノードの活用方法の一例を示す図。 本願のセキュリティノードの働きの一例を示す図。 本願の検査方法の一例を示す図。 本願の物理ネットワーク構成の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のチップ認証装置の実現方法の一例を示す図。 本願のなりすまし防止方法の実現方法の一例を示す図。 本願の署名ノードの使用方法の一例を示す図。
1、10 チップ
2 ファームウェア
3 認証制御デバイス
4 認証コード(ID)
50 外部入出力(I/O)
11 第一の認証
12 第二の認証
13 第三の認証
21 第一のチップ認証装置
22 第二のチップ認証装置
31 入力信号誤差
32 出力信号誤差
42、102、402 入力コード
43、202、403 登録コード
60、600 チップ認証装置
80 交信シリーズ
92 第二のノードの正規使用者
110 第一のチップ
120 第二のチップ
130 第Nのチップ
140 情報機器
302、401 内部メモリ
400 基幹ノード
410 第一の周辺ノード
420 第二の周辺ノード
430 第三の周辺ノード
503 ワード線
601、605 乱数発生装置
602、606 コード発生装置
604 スクランブル装置
611 チップ認証装置セルアレイ
614 スクランブル装置セルアレイ
742 ショート判定電圧
743 非ショート判定電流値
744 ショート判定電流値
790 ページバッファ
791 ビット線接続ゲート
800、810 入出力制御装置
880 認証装置用制御装置
890 スクランブル装置
900 中間コード用バッファー
910 絶縁膜
930 導電体
932 破壊判定電圧
933 破壊判定電流値
934 非破壊判定電流値
955 ゲート電極
960 認証用素子アレイ
972 行デコーダー
973 列デコーダー
977 認証素子
979 代換素子
980 磁気抵抗
981 可変抵抗
982 キャパシタ
983 トランジスタ
984 選択トランジスタ
985 抵抗
986 PN接合
987 ショットキー接合
988 電荷蓄積層付き不揮発性メモリ素子
989 可変抵抗メモリ素子
990 磁気抵抗メモリ素子
991 強誘電体キャパシタ
996 第一の制御ゲート
997 第二の制御ゲート
1000 信号伝達路
1001 第一の信号伝達路
1002 第二の信号伝達路
1003 第三の信号伝達路
1004 第四の信号伝達路
1005 第五の信号伝達路
1050 絶縁膜
1051 導電体先端部
1052 第二導電体
1053 第一導電体
1054 第二電極
1055 第一電極
2001 第一のノード
2002 第二のノード
2003 第三のノード
2004 第四のノード
2005 第五のノード
2006 第六のノード
3000 イーサネットカード
3010 不揮発性メモリチップ
3020 メディア・アクセス・コントローラー(MAC)用演算処理チップ
3030、3060 P-CID制御装置
3040 チップ認証装置
3050 P-CID/MAC変換装置
3070 物理チップ認証(P-CID)
3071 ベンダーコード
3072 シリアル番号
3073 P-CIDアドレス
3074 指示ビット
1400 第一の基幹ノード
1410 第一の共通パスコード
2400 第二の基幹ノード
2410 第二の共通パスコード
3400 第三の基幹ノード
3410 第三の共通パスコード
4101 第一の認証
4201 第二の認証
4301 第三の認証
7910 ビット線接続トランジスタ
9330、9331 破壊判定電圧値
9340、9341 非破壊判定電圧値
9811 ドレイン選択トランジスタ(SGD)

Claims (27)

  1. 少なくとも、第一、第二、および第三の物理ノードを構成要素とし、

    前記第一の物理ノードは、第一の半導体チップ、第一のチップ認証装置、第一のチップ認証抽出装置、及び、第一の内部メモリを、含む、第一の電子装置であり、

    前記第一の半導体チップは、第一のセルアレイを含み、
    前記第一のセルアレイは、所定の方法で、第一の固有乱数を生成し、

    前記第一の内部メモリは、第一の辞書を保存し、
    前記第一のチップ認証装置は、第一のハッシュモジュール、および、前記第一のセルアレイを、含み、

    前記第二の物理ノードは、第二の半導体チップ、第二のチップ認証装置、第二のチップ認証抽出装置、及び、第二の内部メモリを、含む、第二の電子装置であり、

    前記第二の半導体チップは、第二のセルアレイを含み、
    前記第二のセルアレイは、所定の方法で、第二の固有乱数を生成し、

    前記第二の内部メモリは、第二の辞書を保存し、
    前記第二のチップ認証装置は、第二のハッシュモジュール、および、前記第二のセルアレイを、含み、

    前記第三の物理ノードは、第三の半導体チップ、第三のチップ認証装置、第三のチップ認証抽出装置、及び、第三の内部メモリを、含む、第三の電子装置であり、

    前記第三の半導体チップは、第三のセルアレイを含み、
    前記第三のセルアレイは、所定の方法で、第三の固有乱数を生成し、

    前記第三の内部メモリは、第三の辞書を保存し、
    前記第三のチップ認証装置は、第三のハッシュモジュール、および、前記第三のセルアレイを、含み、

    前記第三の物理ノードは、第一のセキュリティパラメータを、前記第一のハッシュモジュールに送付し、
    前記第一のハッシュモジュールは、前記第一の固有乱数と前記第一のセキュリティパラメータから、第一のセキュリティ状態を生成し、

    前記第二の物理ノードは、前記第一の物理ノードに第二の入力信号を送信し、前記第一の物理ノードは、前記第一のチップ認証装置に前記第二の入力信号を入力し、
    前記第一のチップ認証装置は、前記第二の入力信号および前記第一のセキュリティ状態から、第一の出力信号を生成し、
    前記第一の物理ノードは、前記第一の出力信号を、前記第二の物理ノードに返信し、

    前記第二の物理ノードは、前記第一の出力信号を、前記第二のチップ認証抽出装置に入力し、
    前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第一の出力信号から、入力信号と出力信号の組み合わせ、第一の入出力セットを定義し、
    前記第二の物理ノードは、前記第一の入出力セットを、前記第二の辞書に記録する、

    ことを特徴とする、
    電子装置のネットワーク。
  2. 前記第二の物理ノードは、第四の物理ノードに前記第二の入力信号を送信し、

    前記第四の物理ノードは、第四の半導体チップ、第四のチップ認証装置、第四のチップ認証抽出装置、及び、第四の内部メモリを、含む、第四の電子装置であり、

    前記第四の半導体チップは、第四のセルアレイを含み、
    前記第四のセルアレイは、所定の方法で、第四の固有乱数を生成し、

    前記第四の内部メモリは、第四の辞書を保存し、
    前記第四のチップ認証装置は、第四のハッシュモジュール、および、前記第四のセルアレイを、含み、

    前記第二の物理ノードは、前記第三の物理ノードに、前記第一のセキュリティパラメータを発行し、それを前記第四の物理ノードに送付するよう、要請し、

    前記第三の物理ノードは、この要請に従い、前記第一のセキュリティパラメータ値を発行し、それを前記第四のハッシュモジュールに送付し、
    前記第四のハッシュモジュールは、前記第四の固有乱数と前記第一のセキュリティパラメータから、第四のセキュリティ状態を生成し、

    前記第二の物理ノードは、前記第四の物理ノードに前記第二の入力信号を送信し、前記第四の物理ノードは、前記第四のチップ認証装置に前記第二の入力信号を入力し、
    前記第四のチップ認証装置は、前記第二の入力信号および前記第四のセキュリティ状態から、第四の出力信号を生成し、
    前記第四の物理ノードは、前記第四の出力信号を、前記第二の物理ノードに返信し、

    前記第二の物理ノードは、前記第四の出力信号を、前記第二のチップ認証抽出装置に入力し、
    前記第二のチップ認証抽出装置は、前記第二の入力信号と、前記第四の出力信号から、入力信号と出力信号の組み合わせ、第四の入出力セットを定義し、
    前記第二の物理ノードは、前記第四の入出力セットを、前記第二の辞書に記録されている、前記第一の入出力セットと比較し、

    一致している場合、前記第四の物理ノードを、前記第一の物理ノードと認証する、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  3. 第五の物理ノードおよび第六の物理ノードを、構成要素とし、

    前記第一の物理ノードは、第一の鍵生成装置を、さらに、含み、

    前記第五の物理ノードは、第五の半導体チップ、第五のチップ認証装置、第五のチップ認証抽出装置、及び、第五の内部メモリを、含む、第五の電子装置であり、

    前記第五の半導体チップは、第五のセルアレイを含み、
    前記第五のセルアレイは、所定の方法で、第五の固有乱数を生成し、

    前記第五の内部メモリは、第五の辞書を保存し、
    前記第五のチップ認証装置は、第五のハッシュモジュール、および、前記第五のセルアレイを、含み、

    前記第五のチップ認証抽出装置は、第51の入力信号を、前記第一の物理ノードに送付し、
    前記第一の物理ノードは、前記第51の入力信号および前記第一のセキュリティ状態から、第51の出力信号を生成し、

    前記第一の物理ノードは、前記第51の出力信号を、前記第一の鍵生成装置に入力し、
    前記第一の鍵生成装置は、第一の秘密鍵および第一の公開鍵を生成し、
    前記第一のハッシュモジュールは、前記第一の公開鍵及び前記第一の辞書を、まとめてハッシュ化し、第一のハッシュ値を生成し、

    前記第六の物理ノードは、第六の半導体チップ、第六のチップ認証装置、第六のチップ認証抽出装置、第六の内部メモリ、及び、第六の鍵生成装置を、含む、第六の電子装置であり、

    前記第六の半導体チップは、第六のセルアレイを含み、
    前記第六のセルアレイは、所定の方法で、第六の固有乱数を生成し、

    前記第六の内部メモリは、第六の辞書を保存し、
    前記第六のチップ認証装置は、第六のハッシュモジュール、および、前記第六のセルアレイを、含み、

    前記第三のチップ認証抽出装置は、第六のセキュリティパラメータを、前記第六のハッシュモジュールに送付し、
    前記第六のハッシュモジュールは、前記第六の固有乱数と前記第六のセキュリティパラメータから、第六のセキュリティ状態を生成し、

    前記第五のチップ認証抽出装置は、第56の入力信号を、前記第六の物理ノードに送付し、
    前記第六の物理ノードは、前記第56の入力信号および前記第六のセキュリティ状態から、第六の出力信号を生成し、
    前記第六の物理ノードは、前記第六の出力信号を、前記第六の鍵生成装置に入力し、
    前記第六の鍵生成装置は、第六の秘密鍵および第六の公開鍵を生成し、

    前記第一の物理ノードは、前記第一の秘密鍵を用いて、前記第一のハッシュ値と、前記第六の公開鍵とを、まとめて、暗号化し、第一の電子署名とし、

    前記第一の物理ノードは、前記第一のハッシュ値と、前記第一の電子署名を、前記第六の物理ノードに送付する、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  4. 第七の物理ノード、及び、第八の物理ノードを、構成要素とし、

    前記第七の物理ノードは、第七の半導体チップ、第七のチップ認証装置、第七のチップ認証抽出装置、及び、第七の内部メモリを、含む、第七の電子装置であり、

    前記第七の半導体チップは、第七のセルアレイを含み、
    前記第七のセルアレイは、所定の方法で、第七の固有乱数を生成し、

    前記第七の内部メモリは、第七の辞書を保存し、
    前記第七のチップ認証装置は、第七のハッシュモジュール、および、前記第七のセルアレイを、含み、

    前記第七の辞書は、複数の入出力セットの集合からなる第七の管理領域を登録し、
    対応する入出力セットが前記第七の管理領域に属する物理ノードは、前記第七の物理ノードの管理下にあり、

    前記第八の物理ノードは、第八の半導体チップ、第七のチップ認証装置、第八のチップ認証抽出装置、及び、第八の内部メモリを、含む、第八の電子装置であり、

    前記第八の半導体チップは、第八のセルアレイを含み、
    前記第八のセルアレイは、所定の方法で、第八の固有乱数を生成し、

    前記第八の内部メモリは、第八の辞書を保存し、
    前記第八のチップ認証装置は、第八のハッシュモジュール、および、前記第八のセルアレイを、含み、

    前記第八の辞書は、複数の入出力セットの集合からなる第八の管理領域を登録し、
    対応する入出力セットが前記第八の管理領域に属する物理ノードは、前記第八の物理ノードの管理下にあり、

    前記第七の物理ノード、あるいは、前記第八の物理ノードの、どちらかの管理下にある任意の物理ノードは、前記第七および第八の物理ノードが共同で管理する共同管理領域に属し、

    前記第七及び第八の物理ノードは、前記第七の辞書あるいは前記第八の辞書に登録されていない任意の物理ノードを、前記共同管理領域から排除し、
    前記共同管理領域を、一つの閉じた物理ネットワークとして、共同で管理する、

    ことを特徴とする、
    請求項1記載の電子装置のネットワーク。
  5. 前記第七の物理ノードは、検査ノードとして、前記第二の物理ノードの役割を担い、
    前記第八の物理ノードは、セキュリティノードとして、前記第三の物理ノードの役割を担う、
    ことを特徴とする、
    請求項4記載の電子装置のネットワーク。
  6. 前記第一のセルアレイは、複数の認証素子からなる認証素子アレイの一種であり、
    複数のビット線と複数のワード線を含み、
    前記複数のビット線と複数のワード線の交点は、前記第一のセルアレイ上のアドレスを定義し、
    前記複数の認証素子は、前記アドレス上に配置し、

    前記複数の認証素子のいくつかは、ハード破壊した破壊認証素子であり、
    前記破壊認証素子は、前記アドレス上に確率的に分配し、物理的に乱雑な分布を形成し、

    前記第一のチップ認証装置は、前記物理的に乱雑な破壊認証素子の分布を、所定の方法でコード化し、前記第一の固有乱数を生成する、
    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  7. 前記第一のセルアレイは、複数の小ブロックから構成され、
    前記複数の小ブロックは、第一の小ブロック群と、第二の小ブロック群に分割され、
    前記第一のセルアレイは、複数の素子から構成され、
    前記複数の素子は、前記複数の小ブロックに分配され、
    前記複数の素子のうち一つは、所定の検査に不合格となる、不良ビットであり、
    前記第一の小ブロック群に属する、小ブロックは、前記不良ビットを含む、不良小ブロックであり、
    前記不良小ブロックは、前記第一の小ブロック群の中に、複数存在し、
    前記第一の小ブロック群を構成する小ブロックの中から、前記複数の不良小ブロックを選択することによって、前記第一の固有乱数を生成する、

    ことを特徴とする、
    請求項1記載の電子装置のネットワーク。
  8. 前記第一のチップ認証装置および前記第二のチップ認証装置が互いに異なるチップ認証装置であり、
    前記第一のチップ認証装置および前記第二のチップ認証装置に、同一の電子信号を、入力信号として入力し、
    前記第一のチップ認証装置が、前記入力信号に対して、出力する電子信号と、
    前記第二のチップ認証装置が、前記入力信号に対して、出力する電子信号と、が異なることを特徴とする、
    請求項1記載の電子装置のネットワーク。
  9. 前記第二のチップ認証抽出装置は、前記第一のチップ認証装置に、前記第二の入力信号を入力し、
    前記第一のチップ認証装置は、前記第一の入力信号に応じて、前記第二のチップ認証抽出装置に前記第一の出力信号を返信し、

    前記第三のチップ認証抽出装置は、前記第一のチップ認証装置に、前記第三の入力信号を入力し、
    前記第一のチップ認証装置は、前記第三の入力信号に応じて、前記第三のチップ認証抽出装置に第31の出力信号を返信し、
    前記第一および第三の入力信号が異なる限り、

    前記第一および第31の出力信号が、互いに異なる、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  10. 前記第二のチップ認証抽出装置は、前記第一のチップ認証装置に、複数の互いに異なる入力信号を入力し、
    前記複数の互いに異なる入力信号の集合を、第一の入力集合とし、

    前記第一のチップ認証装置は、前記第一の入力集合の前記複数の互いに異なる入力信号に応じて、前記第二のチップ認証抽出装置に、それぞれ互いに異なる出力信号を返信し、
    前記複数の互いに異なる出力信号の集合を、第一の出力集合とし、

    前記第一の入力集合に属さない複数の入力信号からなる第二の入力集合の要素数をNとし、

    前記第二の入力集合に属するテスト入力信号を、前記第一のチップ認証装置に入力する以前に、
    前記第一の入力集合および前記第一の出力集合の組み合わせから、前記テスト入力信号に応じて前記第一のチップ認証装置が出力するテスト出力信号を、予測できる確率が、1/(N+1)以下である、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  11. 前記第二のチップ認証抽出装置は、前記第一のチップ認証装置に、異なる二つの入力信号を入力し、
    前記第一のチップ認証装置は、前記異なる二つの入力信号に応じて、前記第二のチップ認証抽出装置にそれぞれ二つの出力信号を返信し、

    前記異なる二つの入力信号の差の絶対値が、入出力制御回路に関わる制御不能のノイズなどにより混入する、入力信号誤差の絶対値より大きい場合、
    前記二つの出力信号の差の絶対値は、入出力制御回路に関わる制御不能のノイズなどにより混入する、出力信号誤差の絶対値より大きい、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  12. 前記第二のチップ認証抽出装置は、前記第一のチップ認証装置に、物理乱数抽出特殊テストコードを入力し、

    前記物理乱数抽出特殊テストコードは、引数として、指定コードを含み、
    前記指定コードは、前記第一のセルアレイ上の抽出領域を指定することが可能であり、あるいは、前記第一の固有乱数を抽出する際の動作モードを指定することが可能であり、

    前記第一のチップ認証装置は、更に、抽出回路を、含み、
    前記抽出回路は、前記物理乱数抽出特殊テストコードを受け取り、前記物理乱数抽出特殊テストコードに従って、前記第一のセルアレイから、前記第一の固有乱数を読み出し、抽出結果として、前記第一のチップ認証装置の外部に出力し、

    前記第二のチップの認証抽出装置は、前記抽出結果を、出力認証コードとして受け取る、

    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  13. 前記第一のチップ認証装置は、更に出力発生装置を含み、
    前記出力発生装置は、前記抽出結果から、前記出力認証コードを生成し、前記第一のチップ認証装置の外部に出力し、
    前記第二のチップの認証抽出装置は、その出力を、前記出力認証コードを受け取る、

    ことを特徴とする、請求項12記載の電子装置のネットワーク。
  14. 前記第二のチップの認証抽出装置は、前記出力発生回路に、入力認証コードを入力し、

    前記出力発生回路は、前記入力認証コードに従い、前記抽出結果から、前記出力認証コードを生成し、前記第一のチップ認証装置の外部に出力し、

    前記第二のチップの認証抽出装置は、その出力を、前記出力認証コードを受け取る、

    ことを特徴とする、請求項12記載の電子装置のネットワーク。
  15. 前記第二の入力信号が、ネットワーク上で動作する何らかのアプリを起動するための、

    パスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、

    から生成できることを特徴とする、
    請求項1記載の電子装置のネットワーク。

  16. 前記第二の入力信号が、ネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求する、

    パスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、

    から生成できることを特徴とする、
    請求項1記載の電子装置のネットワーク。
  17. 前記すくなくとも第一および第二の入力信号のどちらか一方は、ネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するための、

    パスコード、PINコード、バーコード、2次元コードなどのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報など、

    から生成できることを特徴とする、
    請求項1記載の電子装置のネットワーク。
  18. 前記複数の認証素子は、

    PN接合、ショットキー接合、トランジスタ、キャパシタ、可変抵抗、DRAMセル、ReRAMセル、PCRAMセル、MRAMセル、STT−MRAMセル、あるいは、電荷蓄積層付き不揮発性メモリセルである、

    ことを特徴とする、
    請求項6記載の電子装置のネットワーク。
  19. 前記第一の半導体チップは、前記第一の電子装置の動作を制御する、オペレーティングシステムが稼働するために必要な情報をロードしておく主記憶装置であり、

    前記主記憶装置は、メモリチップから構成され、
    前記第一のセルアレイは、前記メモリチップのメモリセルアレイであり、
    前記オペレーティングシステムは、前記第一のチップ認証装置を制御し、
    前記第一のチップ認証装置は、前記第二の入力信号を受信し、前記第一の出力信号を、前記第二の物理ノードに返信し、

    前記オペレーティングシステムは、前記第一のチップ認証抽出装置を制御し、

    前記第一のチップ認証抽出装置は、前記第一の入力信号を前記第二の物理ノードに送信し、
    前記第二の物理ノードは、前記第一の入力信号を、前記第二のチップ認証装置に入力し、
    前記第二のチップ認証装置は、前記第二の出力信号を生成し、それを前記第一のチップ認証抽出装置に返信し、

    前記第一の物理ノードは、前記第一の入力信号と、前記第二の出力信号とを、前記前記第一の辞書と比較する、

    ことを特徴とする、
    請求項1記載の電子装置のネットワーク。
  20. 前記第一の半導体チップは、前記第一の電子装置を制御する、オペレーティングシステムの動作を司る演算処理チップであり、

    前記第一のセルアレイは、前記演算処理チップに混載され、

    前記オペレーティングシステムは、前記第一のチップ認証装置を制御し、
    前記第一のチップ認証装置は、前記第二の入力信号を受信し、前記第一の出力信号を、前記第二の物理ノードに返信し、

    前記オペレーティングシステムは、前記第一のチップ認証抽出装置を制御し、

    前記第一のチップ認証抽出装置は、前記第一の入力信号を前記第二の物理ノードに送信し、
    前記第二の物理ノードは、前記第一の入力信号を、前記第二のチップ認証装置に入力し、
    前記第二のチップ認証装置は、前記第二の出力信号を生成し、それを前記第一のチップ認証抽出装置に返信し、

    前記第一の物理ノードは、前記第一の入力信号と、前記第二の出力信号とを、前記前記第一の辞書と比較する、

    ことを特徴とする、
    請求項1記載の電子装置のネットワーク。
  21. 前記第一のセルアレイは、複数の認証素子からなる認証素子アレイの一種であり、
    複数のビット線と複数のワード線を含み、
    前記複数のビット線と複数のワード線の交点は、前記第一のセルアレイ上のアドレスを定義し、
    前記複数の認証素子は、前記アドレス上に配置し、

    前記複数の認証素子のいくつかは、所定の方法で破壊した破壊認証素子であり、
    前記破壊認証素子は、前記アドレス上に、物理的に乱雑な分布に基づいて分配し、

    前記第一のチップ認証装置は、前記物理的に乱雑な破壊認証素子の分布を、所定の方法でコード化し、前記第一の固有乱数を生成する、
    ことを特徴とする、請求項1記載の電子装置のネットワーク。
  22. 前記複数の認証素子は、

    抵抗、抵抗配線、PN接合、ショットキー接合、トランジスタ、キャパシタ、可変抵抗、DRAMセル、ReRAMセル、PCRAMセル、MRAMセル、STT−MRAMセル、あるいは、電荷蓄積層付き不揮発性メモリセル、などの電子素子である、

    ことを特徴とする、
    請求項21記載の電子装置のネットワーク。
  23. 前記物理的に乱雑な分布は、

    電気的ストレスあるいは力学的ストレスを印加した、前記複数の認証素子が確率的に破壊されることによって生成される、

    ことを特徴とする、
    請求項21記載の電子装置のネットワーク。

  24. 前記物理的に乱雑な分布は、

    別途乱数生成装置が生成する乱数コードに応じて割り当てられたアドレス上の
    認証素子を、選択的に破壊することによって生成される、

    ことを特徴とする、
    請求項21記載の電子装置のネットワーク。
  25. 前記物理的に乱雑な分布は、

    前記第一の半導体チップを製造する際に発生する認証素子の製造上のばらつきに応じて生成される、

    ことを特徴とする、
    請求項21記載の電子装置のネットワーク。
  26. 前記物理的に乱雑な分布は、

    前記第一の半導体チップの出荷前テストの際に発覚する、認証素子の不良ビットの分布に基づいて生成される、

    ことを特徴とする、
    請求項21記載の電子装置のネットワーク。
  27. 前記第二の物理ノードが、検査対象を選択するステップ1と、
    前記第三の物理ノードが、前記第一のセキュリティパラメータを前記第一のハッシュモジュールに送付するステップ2と、
    前記第二の物理ノードが、前記第二の入力信号を前記検査対象に入力して第一のレスポンスを得るステップ3と、
    前記第三の物理ノードが、第二のセキュリティパラメータを前記第一のハッシュモジュールに送付するステップ4と、
    前記第二の物理ノードが、前記第二の入力信号を前記検査対象に入力して第二のレスポンスを得るステップ5と、
    前記第一のレスポンスと前記第二のレスポンスが一致するかどうか評価するステップ6と、
    前記ステップ6で一致すれば、前記検査対象を不正ノードとみなし、前記電子装置のネットワークから追放するステップ7と、
    前記ステップ6で不一致であれば、検査対象を変更するか、または、検査を終了するステップ8と、を含む、

    物理ノードの検査方法が実行可能であり、

    前記検査対象は、前記第一の物理ノードであり、
    前記第三の物理ノードは、前記第一および第二のセキュリティノードを前記第一のハッシュモジュールに送付する、

    ことを特徴とする、

    請求項1記載の電子装置のネットワーク。


JP2020142812A 2020-05-26 2020-08-26 電子装置のネットワーク及び電子装置 Pending JP2021190980A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
US17/927,386 US20230198961A1 (en) 2020-05-26 2021-05-25 Electronic apparatus and network of electronic apparatus
PCT/JP2021/019838 WO2021241590A1 (ja) 2020-05-26 2021-05-25 電子装置のネットワーク及び電子装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020091795 2020-05-26
JP2020091795 2020-05-26

Publications (2)

Publication Number Publication Date
JP2021190980A true JP2021190980A (ja) 2021-12-13
JP2021190980A5 JP2021190980A5 (ja) 2022-04-04

Family

ID=78847674

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2020142812A Pending JP2021190980A (ja) 2020-05-26 2020-08-26 電子装置のネットワーク及び電子装置
JP2020219951A Pending JP2021190989A (ja) 2020-05-26 2020-12-31 電子装置のネットワーク及び電子装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2020219951A Pending JP2021190989A (ja) 2020-05-26 2020-12-31 電子装置のネットワーク及び電子装置

Country Status (1)

Country Link
JP (2) JP2021190980A (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116170161B (zh) * 2023-03-01 2024-04-16 北京大学 基于铁电晶体管阵列的物理不可克隆函数电路及其应用

Also Published As

Publication number Publication date
JP2021190989A (ja) 2021-12-13

Similar Documents

Publication Publication Date Title
CN107819583B (zh) 密钥的防滥用技术
JP6592621B2 (ja) 認証ネットワーク
CN107623675B (zh) 电子装置的网络、电子装置及其检查步骤
TWI590091B (zh) 電子裝置的網路單元、電子裝置的網路系統、檢查方法及晶片認證裝置的利用方法
Yao et al. Security and privacy issues of physical objects in the IoT: Challenges and opportunities
CN104838385B (zh) 使用基于物理不可克隆功能的密钥产生系统的设备认证
CN108632028B (zh) 认证网络
US9787670B2 (en) Apparatus and method for authentication between devices based on PUF over machine-to-machine communications
TWI592827B (zh) 電子裝置、電子裝置的網路單元、電子裝置的網路及晶片認證方法
WO2022065016A1 (ja) 自動認証icチップ
WO2021241590A1 (ja) 電子装置のネットワーク及び電子装置
JP2021190989A (ja) 電子装置のネットワーク及び電子装置
CN106027237A (zh) 一种rfid系统中基于组的密钥矩阵安全认证方法
Fazal et al. A systematic literature review on the security challenges of Internet of Things and their classification
CN115913577A (zh) 一种基于轻量级spongent哈希算法的抗物理克隆设备认证系统及方法
Turksonmez et al. ENHANCING SECURITY OF RFID-ENABLED IOT SUPPLY CHAIN
JP2022051661A (ja) 自動認証icチップ
JP2022121246A (ja) 自動認証icチップ
EP3070875B1 (en) Method of physical chip identification for networks of electronic appliance
Gao et al. Digital Communications and Networks
Maes et al. Process variations for security: Pufs

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201231

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220319

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20241001