(57)【特許請求の範囲】
【請求項１】
複数の論理ノードからなる論理ネットワークと、複数の物理ノードからなる物理ネットワークとからなり、
前記複数の物理ノードはそれぞれ少なくとも一つの認証コアからなり、前記複数の論理ノードはそれぞれ前記認証コアに接続し、前記認証コアは固有の物理的乱雑さを有する半導体チップからなり、前記半導体チップはメモリセルアレイおよび周辺領域からなり、前記メモリセルアレイは所定のアドレス形式に従い配列した複数のメモリセルからなり、
前記物理的乱雑さは、或る物理的過程によって前記メモリセルアレイ内で生成する不良ビットのアドレスの組み合わせとして生成され、所定の方法で読み出され、前記半導体チップの周辺領域に含まれる特殊内部メモリ内に電子情報として記録され、前記不良ビットのアドレスの組み合わせは特殊モード取得コードによって取得し、
前記特殊モード取得コードは前記不良ビットのアドレス、前記メモリセルアレイ内の前記複数のメモリセルのそれぞれにアクセスする方法を選択するアクセスモード、および、書込み、消去、読み出しの動作を選択する動作モードからなり、
前記複数のメモリセルは前記所定のアドレス形式に従いアドレス上に分布し、前記アドレスは半導体表面上の前記メモリセルアレイ内でそれぞれＸ軸およびＹ軸に平行する、行および列の交差点にしたがって分布し、
前記アドレスの集合は前記Ｙ軸方向に沿って第一および第二の行群に分割され、また、前記半導体チップにおいて、物理乱数コードが、前記特殊内部メモリに記録された電子情報に応じて生成される前記物理的乱雑さを反映し、前記認証コアは、前記物乱数コードに基づいて秘密鍵を生成し、前記秘密鍵に基づいて鍵生成装置が生成する公開鍵を出力し、前記公開鍵は前記認証コアにリンクした前記論理ノードの論理アドレスとなり、前記秘密鍵は前記物理ノードの物理アドレスとなり、前記論理ノードおよび前記物理ノードは前記秘密鍵および前記公開鍵によって一対一にリンクされ、前記秘密鍵は前記認証コア内部に閉じ込められていることを特徴とする認証ネットワーク。
【請求項５】
前記アクセスモードは第一のテストモード、第二のテストモードおよび第三のテストモードからなり、前記第一のテストモードは前記Ｘ軸上で任意に選ばれた列に対して前記第一および第二の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第二のテストモードは前記Ｘ軸上で任意に選ばれた前記列に対して前記第一の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは前記第二の行群内の前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスすることを特徴とする請求項１記載の認証ネットワーク。
【請求項６】
まず、前記第一のテストモードでアクセスするすべてのメモリセルに第一の値を書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが前記メモリセルアレイ内の前記不良ビットの分布から生成されることを特徴とする請求項５記載の認証ネットワーク。
【請求項７】
前記アクセスモードは第二および第三のテストモードよりなり、前記第二のテストモードは前記Ｘ軸上で任意に選ばれた列に対して前記第一の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは前記第二の行群内の前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスすることを特徴とする請求項１記載の認証ネットワーク。
【請求項８】
まず、前記第三のテストモードでアクセスするすべてのメモリセルに第一の値に書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが前記メモリセルアレイ内の前記不良ビットの分布から生成されることを特徴とする請求項７記載の認証ネットワーク。
【請求項９】
前記認証コアは、前記物理乱数コードおよび外部からの入力コードを元に、秘密鍵を生成し、前記認証コアは、前記秘密鍵および前記入力コードを元に、鍵生成装置が生成する公開鍵を出力することを特徴とする請求項１記載の認証ネットワーク。
【請求項１０】
前記入力コードは前記認証コアを含む電子装置の正規ユーザーが任意に設定できる個別入力であることを特徴とする請求項９記載の認証ネットワーク。
【請求項１１】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要なデジタルコード情報からなり、前記デジタルコード情報は少なくともパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１２】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な生物学的情報からなり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなることを特徴とする、請求項１０記載の認証ネットワーク。
【請求項１３】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な個人情報からなり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１４】
前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求されるデジタルコード情報からなり、前記デジタルコード情報は少なくともパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１５】
前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される生物学的情報であり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１６】
前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される個人情報であり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１７】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要なデジタル情報であり、前記デジタルコード情報は少なくともパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１８】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な生物学的情報であり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【請求項１９】
前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な個人情報であり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項１０記載の認証ネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント・サーバー（CS）型やピア・トゥ・ピア（P2P）型のネットワーク上に存在する装置を認証する技術に関する。
【背景技術】
【０００２】
進化し続けるインターネットに接続する装置の数は年とともに増大し、そのネットワーク構造も複雑化・多様化してきている。しかしながら、基本的には、特別な機能を有するサーバーを中心的なノード（基幹ノード）に据えたクライアント・サーバー（CS）型と、このような基幹ノードが存在せずすべてのノードが基本的に対等な形で接続するピアトゥア（P2P）型に大別することができる。しかしながら、いずれの型に属するネットワークであっても、ネットワークには図１に示すような最小単位が存在する。【０００３】
このように、ネットワークは一般に結節点（ノード）と通信線（リンク）からなる。図１では、第一のノード２００１と第二のノード２００２が、通信線である信号伝達路１０００によってリンクしている。たとえば、第一のノード２００１と第二のノード２００２は、信号伝達路１０００を介してプロトコル・データ・ユニットを交換している。この第一のノード２００１と第二のノード２００２は、それぞれ一定の整合性を持つプロトコルに従ってプロトコル・データ・ユニットを扱う。【０００４】
プロトコル・データ・ユニットの仲間でよく使われる言葉にフレーム、パケット、セグメント等がある。名称の違いは通信階層（通信レイヤー、あるいは、レイヤー）に対応して使い分けられ、ネットワークシステム全体の概念によって決定される。たとえば、図２のように、下の階層から順に、物理層（レイヤー１）、データリンク層（レイヤー２）、ネットワーク層（レイヤー３）、トランスポート層（レイヤー４）、上位層（レイヤー５）となる。ただし、この階層構造はほんの一例に過ぎず、異なる概念の元では、たとえば、トランスポート層を更に３分割して７階層にする。いずれにしろ、データリンク層（レイヤー２）ではプロトコル・データ・ユニットをフレームと呼び、ネットワーク層（レイヤー３）ではパケットと呼び、トランスポート層（レイヤー４）ではセグメントと呼ぶのが一般的である。【０００５】
〈通信階層〉
一般に、インターネットを用いた情報通信は、適当な大きさに切り分けられたデジタルデータの一片をネットワーク上の情報端末であるノード同士で交換することである。このデータの一片にネットワーク上での管理に必要な制御情報を付与した塊をプロトコル・データ・ユニットと呼ぶ。データの一片と制御情報の並べ方をフォーマットと呼び、フォーマットおよびその活用は、プロトコルと呼ばれる一種の手続きによって規定されている。互いに情報通信する任意の２つのノードは、それぞれ一定の整合性を持つプロトコルに従わなければならない。  【０００６】
以下、図２の５階層を前提にして説明を続ける。【０００７】
まず、伝送される元の情報は適当な大きさのデータの集まりに分割される。こうして得られるデータが存在する通信階層は、図２で説明した上位層（レイヤー５）である。【０００８】
このデータにＴＣＰヘッダーを添付する。ＴＣＰはトランスミッション・コントロール・プロトコルの略であり、プロトコルの一種である。こうして、データにＴＣＰヘッダーを添付したものをセグメントと呼ぶ。セグメントを扱う通信階層がトランスポート層（レイヤー４）である。【０００９】
セグメントにインターネット・プロトコル・ヘッダー（ＩＰヘッダー）を添付すると、プロトコル・データ・ユニットはパケットと呼ばれるようになる。パケットを扱う通信階層がネットワーク層（レイヤー３）であり、プロトコルはＩＰである。バージョンによってＩＰv4やＩＰv6などがある。【００１０】
パケットにイーサネット（登録商標）・プロトコル・ヘッダー（イーサネット（登録商標）ヘッダー）を添付すると、プロトコル・データ・ユニットはフレームと呼ばれるようになる。フレームを扱う通信階層がデータリンク層（レイヤー２）であり、プロトコルはイーサネット（登録商標）である。【００１１】
イーサネット（登録商標）規格では、最下層（レイヤー１）の物理層への変換、すなわち、光信号への変換や電気信号への変換も定義されることがある。変換後のフレームは１０BASE-Tなどの回線に渡される。【００１２】
通信階層はそれぞれ入れ子の状態になっており、各階層（あるいは、各レイヤー）はそれぞれ独立しているとみなせる。具体的には、図２に示したとおり、レイヤー４（トランスポート層）のセグメント（データにＴＣＰヘッダーのみを添付したもの）のフォーマットは、レイヤー５（上位層）のフォーマット（データのみ）を変換せずに含んでいる。このように、ＴＣＰヘッダーと元のデータは不可逆的に掛け合わされていない。同様に、レイヤー３（ネットワーク層）のパケットのフォーマット（セグメントにＩＰヘッダーのみを添付したもの）は、レイヤー４（トランスポート層）のフォーマット（セグメント）を変換せずに含んでいる。このように、ＩＰヘッダーとセグメントは不可逆的に掛け合わされていない。さらに、レイヤー２（データリンク層）のフレームのフォーマット（パケットにイーサネット（登録商標）ヘッダーおよびＦＣＳを添付したもの）は、レイヤー３（ネットワーク層）のフォーマット（パケット）を変換せずに含んでいる。このように、イーサネット（登録商標）ヘッダーおよびＦＣＳとパケットは不可逆的に掛け合わされていない。ここで、ＦＣＳはフレーム・チェック・シークエンスの略であり、パケットが正しく届いたかどうかを確認するために利用される。【００１３】
このような構造のため、下位の通信階層でプロトコルやフォーマットを変更しても、上位の通信階層にはまったく影響しない。【００１４】
たとえば、図２において、レイヤー４（トランスポート層）でＴＣＰヘッダーを何か別のヘッダーに置き換えても、元のデータにはまったく影響がない。つまり、レイヤー４（トランスポート層）で何か変更を加えてもレイヤー５（上位層）には影響がない。【００１５】
同様に、レイヤー３（ネットワーク層）のＩＰヘッダーをＩＰv4からＩＰv6に変更してもセグメントには何も影響しない。つまり、レイヤー３（ネットワーク層）で何か変更を加えてもレイヤー４（トランスポート層）には何も影響がない。レイヤー４（トランスポート層）に影響がなければレイヤー５（上位層）にも影響がない。【００１６】
更に、レイヤー２（データリンク層）でイーサネット（登録商標）ヘッダーを何か別のものに置き換えてもパケットには何も影響しない。たとえば、プロトコルをイーサネット（登録商標）からポイント・トー・ポイント・プロトコル（PPP）に変更してもパケットには何も変化がない。したがって、レイヤー２（データリンク層）で何か変更を加えても、レイヤー３（ネットワーク層）には何も影響がない。レイヤー３（ネットワーク層）に何も影響がなければレイヤー４（トランスポート層）にも何も影響がない。レイヤー４（トランスポート層）に何も影響がなければレイヤー５（上位層）にも何も影響がない。【００１７】
更に、レイヤー１（物理層）で何か変更を加えてもレイヤー２（データリンク層）には何も影響がない。たとえば、信号伝達路を光ファイバーから無線ＬＡＮに変更する。この場合でも伝達される情報の内容（フレーム）は、光ファイバーで伝達されても無線ＬＡＮで伝達されても同じでなければならない。レイヤー２（データリンク層）に何も変更がなければレイヤー３（ネットワーク層）にも何も影響がない。レイヤー３（ネットワーク層）に何も影響がなければレイヤー４（トランスポート層）にも何も影響がない。レイヤー４（トランスポート層）に何も影響がなければレイヤー５（上位層）にも何も影響がない。【００１８】
こうして、下位のどの通信階層で何か変更を施しても上位のどの通信階層にも何も影響がないことが判る。これは、後の技術革新の妨げとならないような設計である。【００１９】
一方、本発明は最下層の物理層とデータリンク層に関するものである。このような事情により、本発明によって論理層（レイヤー３より上の層）で伝送されるデータに影響を及ぼすことはない。【００２０】
ネットワークを物理的実態として構成するには、ネットワークの結節点（ノード）となる情報機器と、ノード同士を接続する信号伝達路が必要である。信号伝達路は有線であっても無線であっても構わない。また、信号の種類も複数の可能性がある。大雑把に分類すると、たとえば、電気信号と光信号である。すなわち、有線・無線の電気信号伝達路または光信号伝達路が、ネットワーク上でノード同士を物理的に接続する。このような物理的な接続・伝送方式を規定するレイヤーが物理層（レイヤー１）である。【００２１】
同じ階層で採用されるプロトコルは一定の整合性を持っていなければならないが、階層が異なればその必要はない。すなわち、階層を設計するということは、複数のプロトコルの関係性を設計することである。上記では、物理層とデータリンク層をそれぞれ別の階層（レイヤー１とレイヤー２）としたが、別の階層概念によれば、同じイーサネット（登録商標）・プロトコルに従わせて一つの階層とみなすことも可能である。この場合レイヤー数は一つ減って４階層となる。また、トランスポート層（レイヤー４）とネットワーク層（レイヤー３）のフォーマットを合わせてＴＣＰ／ＩＰ形式と呼ぶこともある。あるいは、逆に細分化する階層の設計概念もありうる。たとえば、ＯＳＩ基本参照モデルでは、上位層を更に３つに分割し、下位からセッション層（レイヤー５）、プレゼンテーション層（レイヤー６）、アプリケーション層（レイヤー７）とする。【００２２】
一般に、ネットワークの接続構造は複雑であるが、信号伝達路の両端はそれぞれ一つのノードで終端していなければならない。図１はそのもっとも簡単な一例を示す図面である。まず、何らかのソースから第一のノード２００１に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換（コード）され、信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、第一のノードが従うフォーマットと一定の整合性のある所定のフォーマットに従って、受信したプロトコル・データ・ユニットを逆変換（デコード）し、第一のノード２００１に入力される前の元の情報を再生する。こうして、プロトコル・データ・ユニットに変換（コード）されたデータの一片がネットワーク上で送受信される。これがデータ伝送の基本的な仕組みである。【００２３】
上述したように、図１において、一つの信号伝達路１０００の両端を終端する二つのノード（第一のノード２００１と第二のノード２００２）は、それぞれ一定の整合性のあるプロトコルに従わなければならない。もし、それぞれが従うプロトコルに一定の整合性がなかった場合、この信号伝達路１０００は、第一のノード２００１と第二のノード２００２を接続していないと看做すことがある。【００２４】
図１に対応する通信がトランスポート層（レイヤー４）における通信である場合、プロトコル・データ・ユニットはセグメントであり、変換プロトコルはＴＣＰである。たとえば第一のノード２００１がデータを受信すると、ＴＣＰ形式のフォーマットに従ってＴＣＰヘッダーをデータに添付し、セグメントを構成する。このセグメントは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このセグメントを受信し、ＴＣＰ形式のフォーマットに従って逆変換（デコード）し、元のデータを再生する。具体的には、ＴＣＰヘッダーを取り除く。【００２５】
図１に対応する通信がネットワーク層（レイヤー３）における通信である場合、プロトコル・データ・ユニットはパケットであり、変換プロトコルはＩＰv4やＩＰv6などである。たとえば第一のノード２００１がデータ（この場合、セグメント）を受信すると、ＩＰv4形式あるいはＩＰv6形式などのフォーマットに従ってＩＰヘッダーをセグメントに添付し、パケットを構成する。このパケットは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このパケットを受信し、ＩＰv4形式あるいはＩＰv6形式等のフォーマットに従って逆変換（デコード）し、元のセグメントを再生する。具体的には、ＩＰヘッダーを取り除く。あるいは、ＴＣＰヘッダーも取り除いてデータを復元することができる。【００２６】
図１に対応する通信がデータリンク層（レイヤー２）における通信である場合、プロトコル・データ・ユニットはフレームである。たとえば第一のノード２００１がデータ（この場合、パケット）を受信すると、イーサネット（登録商標）形式に従ってイーサネット（登録商標）ヘッダーをパケットに添付し、フレームを構成する。イーサネット（登録商標）形式では、更に、パケットが正しく届いたかどうかを確認するためフレーム・チェック・シークエンス（FCS）を添付する。こうして生成されたフレームは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このフレームを受信し、イーサネット（登録商標）形式に従って逆変換（デコード）し、元のパケットを再生する。具体的には、ＦＣＳをチェックしてパケットが正しく伝送されたかどうかを確認する。必要に応じて修復や再送依頼などの処置を施す。正しく伝送されたことが確認されたらイーサネット（登録商標）ヘッダーとＦＣＳを取り除く。【００２７】
上述したデータの伝送は、第一のノード２００１から第二のノード２００２への一方向のみを説明したが、伝送の向きが逆になってもプロトコルの利用方法になんら変更はない。その場合、まず、第二のノード２００２に入力された情報は所定のフォーマットに従ってプロトコル・データ・ユニットに変換（コード）され、信号伝達路１０００を通して第一のノード２００１に伝送される。第一のノード２００１は、受信したプロトコル・データ・ユニットを逆変換（デコード）し、第二のノード２００２に入力される前の元データを再生する。【００２８】
また、第一のノード２００１が、任意の第三のノードから第二のノード２００２への中継器である場合、第一のノード２００１は、第三のノードから受信したプロトコル・データ・ユニットをデコードせず、そのまま信号伝達路１０００を介して第二のノード２００２に転送することが可能である。あるいは、受信したプロトコル・データ・ユニットの一部（例えば、ヘッダー）を編集してから信号伝達路１０００を介して第二のノード２００２に伝送することが可能である。この編集の結果として、意図的か非意図的かに関わらず、第一のノード２００１を経由したことを示すコードがプロトコル・データ・ユニットに追加されることがある。第二のノード２００２では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換（デコード）し、任意の第三のノードに入力される前のデータを再生する【００２９】
より具体的には、当該レイヤーに対応するヘッダーを適当に編集してから転送する。たとえば、中継器である第一のノード２００１がデータリンク層（レイヤー２）に存在する場合、フレームのイーサネット（登録商標）ヘッダーを編集して転送することが可能である。より具体的には、少なくとも中継器である第一のノード２００１の所定の認証をイーサネット（登録商標）ヘッダーに追加する。その経由地は、物理的実態を伴うアドレス（物理アドレス）として認識される。【００３０】
あるいは、中継器である第一のノード２００１がネットワーク層（レイヤー３）に存在する場合、パケットのＴＣＰ／ＩＰヘッダーを編集して転送することが可能である。たとえば、少なくとも中継器である第一のノード２００１のシステムに対応する所定の認証を追加する。こうして、第二のノード２００２がプロトコル・データ・ユニットを受信する際このプロトコル・データ・ユニットがどこをどう経由して来たかということが追跡できるようになる。その経由地は物理的実態を伴わないアドレス（論理アドレス）として認識される。この論理アドレスのことを特にＩＰアドレスと呼ぶ。ＩＰアドレスは、たとえば、オペレーティングシステムに割り当てられた固有のアドレスである。レイヤー３（ネットワーク層）以上の上位レイヤーのアドレスは、すべて論理アドレスであり、物理的実態とは無関係である。【００３１】
すなわち、ＴＣＰ／ＩＰ形式のネットワーク（ネットワーク層以上）では、ノードも信号伝達路も論理的に定義された仮想的存在であり、物理的実態とは関連性がない。これに対し、イーサネット（登録商標）形式のネットワーク（データリンク層）では、ノードも信号伝達路も物理的実態を持っている。たとえば、このノードはどの端末に対応しているのか？この信号伝達路はどのＬＡＮケーブルに対応しているのか？と言った問いに答えられるものである。【００３２】
たとえば、ネットワーク層（レイヤー３）上の任意の第三のノードから中継器である第一のノード２００１にパケットが入力される場合、このパケットはイーサネット（登録商標）形式に従ってフレームに変換され、信号伝達路１０００を介して第二のノード２００２に送信される。このとき、第一のノード２００１、第二のノード２００２、および信号伝達路１０００は、どれも物理的実態を持つ。したがって、中継器である第一のノードの物理的所在を示す物理アドレスがフレームに添付される。【００３３】
あるいは、トランスポート層（レイヤー４）上の任意の第三のノードからセグメントが中継器である第一のノード２００１に入力される場合、このセグメントはＩＰ形式に従ってパケットに変換され、ネットワーク層上の信号伝達路１０００を通して第二のノード２００２に送信される。このとき、第一のノード２００１、第二のノード２００２、信号伝達路１０００は、いずれも論理的存在であり物理的実態とは関係がない。従って、中継器である第一のノードの論理的所在を示す論理アドレスがパケットに添付される。【００３４】
物理アドレスと論理アドレスの違いは次の説明で自明である。たとえば、中継器である第一のノード２００１を構成する電子機器を入れ替えることを考える。その場合、入れ替え前の中継器ノードを構成する電子機器（旧電子機器）のオペレーティングシステムを、入れ替え後の中継器ノードを構成する電子機器（新電子機器）へ再インストールしなければならない。このとき、物理的実態である電子機器固有の認証である物理アドレスは変更することになる。一方、オペレーティングシステムに固有の論理アドレスは入れ替え後も第三のノードのＩＰアドレスとして引き継がれる。これが論理ネットワーク（ＴＣＰ／ＩＰネットワーク）を採用する理由の一つである。【００３５】
図３は、物理ネットワークと論理ネットワークの関係を通信階層上で説明する図である。ＬＡＮケーブルや光・ＡＤＳＬ線あるいはＷｉＦｉなどから構成される最下層の物理層の下に、そこでお互い接続する物理ノードが配置している。物理アドレスは、物理層でお互いを認識し、接続するために使われる。物理層のすぐ上にはデータリンク層があり、更にその上には論理層１がある。論理層１は、たとえば、ＴＣＰ／ＩＰプロトコルに従う。データリンク層より上が論理ネットワークを構成する部分で、論理層１の上には論理ノードが配置してある。論理アドレス（ＩＰアドレス等）は、論理ノード同士がお互いを認識し、種々選択して接続するのに使われる。【００３６】
このように、データリンク層は論理ネットワークと物理ネットワークの間にあり、両ネットワークはデータリンク層を介して関連づけられている。しかしながら、これは論理ノードと物理ノードの関連づけを意味している訳ではない。なぜなら、物理アドレスと論理アドレスは全く独立だからである。【００３７】
悪質なハッカーが攻撃するのは、主に論理層である。論理層はすべてが論理空間で管理されているため、攻撃も論理空間のみで完結させられる。したがって、ネットワークにつながっている限り、常時地球の裏側からでも攻撃を仕掛けられる。物理層に関しては、物理アドレスを奪い機器を乗っ取ることも可能である。【００３８】
論理層１の脆弱性が発覚しセキュリティが破られると、図４のように、その脆弱性を改善した論理層２が開発され、使用されるようになる。この例では、ＨＴＴＰ／ＳＳＬを取り上げているが、ここで説明していることはＨＴＴＰ／ＳＳＬに限った話ではない。重要なことは、論理層２は論理層１の上に積み上げられ、論理アドレスは論理層２の中で扱われるようになることである。論理ノードは、論理層２上でお互いを認識し、種々選択して接続する。【００３９】
論理層２の脆弱性が発覚しセキュリティが破られると、図５のように、その脆弱性を改善した論理層３が開発され、使用されるようになる。この例では、ＯＡｕｔｈやＤＫＩＭを取り上げているが、ここで説明していることはそれらに限った話ではない。重要なことは、論理層３は論理層２の上に積み上げられ、論理アドレスは論理層３の中で扱われるようになることである。論理ノードは、論理層３上でお互いを認識し、種々選択して接続する。【００４０】
このように、ハッカーの攻撃と論理層の積み上げには際限がない。更に、どんなに論理層を改善し積み上げても、論理アドレスと物理アドレスは関連付けられない。これは、論理層上にどのようなセキュリティ技術を構築しても、ハッカーは物理層を攻撃できることを意味している。物理層への攻撃が意味を持つのは、物理的実態を持つ物同士が広大なネットワークを構築する物のインターネット（Internet-of-Things、IoT）である。【００４１】
ＩｏＴ以前のネットワークでは論理層の防御で十分であったが、ＩｏＴの時代に入るとネットワーク化された機器（産業機器、産業ロボット、家電製品、インフラ設備、自動運転車などなど）をどのように安全に扱えるようにするかが大きな問題になってくる。【００４２】
一方、論理層のセキュリティ技術にも昨今重大な革新があった。それがブロックチェーンと呼ばれるものである。ブロックチェーンは、ビットコインと呼ばれる暗号通貨の送金データを改竄不能にするために考案された公開台帳システムである。詳細は後で述べるが、簡単に言えば、ある論理層上でつながっている不特定多数の論理ノード同士がお互いの通信を見張り合い、不正な改竄や送金をできないようにするシステムである。ブロックチェーンのお蔭で、銀行を介さずに国の内外を問わず安全に送金できるようになる。すなわち、銀行を介さないので送金手数料が限りなくゼロに近づく。更に、政府や税務当局が一切の取引を監視することができる。その上誰も改竄できない。【００４３】
ブロックチェーンは論理層上で完結する金融サービスの大幅なコストダウンと時間短縮を実現可能とし、情報発信の大幅なコストダウンと時間短縮を実現するインターネット以来の大革新である。このブロックチェーンを通信階層の中に組み込んだ概念図が図６である。ブロックチェーン層の上には論理層３があり、更にその上に各論理ノードが配置されている。これらの論理ノード間の通信は、ブロックチェーンによる公開台帳システムで改竄不可能な形で衆人監視される。その中には各国の税務当局や情報当局その他公的期間も含まれるだろう。【００４４】
〈ブロックチェーン〉
ここでブロックチェーンについて簡単に説明する。【００４５】
ブロックチェーンは、ピア・トゥ・ピア（P2P）型ネットワークにおける公開台帳システムである。Ｐ２Ｐ型ネットワーク構造では、中核を担うサーバーの存在を仮定せず、ネットワークに結節するすべてのノード（結節点）が非中核的であり、対等であり、互いを監視し合うことによってセキュリティを担保することが必要である。すなわち、中核（コア）となるサーバーの存在を仮定したクライアント・サーバー型ネットワークでは実現不可能なアプリケーションを提供できる。【００４６】
その最も重要なものがビットコインと呼ばれる暗号通貨による送金システムである。ビットコインでは、まず過去の処理履歴と処理する主体となるアカウント名を合成して暗号化する。それを電子署名として転送し新たな処理とするものである。したがって、処理手段を金融機関にゆだねない。更新され転送された処理履歴は、ネットワーク上の他の多くの非中核的ノードによって監視され、多数決に似た手法で公認される。【００４７】
処理履歴の転送は通貨の転送と同義であり、公認された処理履歴が通貨のように扱われる。こうして、銀行のように特定の中核的存在を介さずに処理が進行してゆく。【００４８】
ネットワーク上を流れる電子署名に利用される暗号は、アリスとボブの喩で有名な公開鍵暗号と呼ばれる一般的なものである。図７に示すように、アリスは予めボブに自分の公開鍵を送っておく。この公開鍵はネット上で誰かに盗み取られても構わない。ボブは、アリスから貰った公開鍵で手紙を暗号化し、アリスに送る。この暗号化された手紙を解読するには、アリスの公開鍵と対になっている秘密鍵が必要である。したがって、暗号が解読されない限り、ネットワーク上で誰かに盗まれても手紙の中身を読まれることはない。その秘密鍵を持っているのはアリスだけだからである。アリスは、自分で持っている秘密鍵でボブの手紙の暗号を解き、それを読むことができる。【００４９】
このように、公開鍵はネットワーク上に晒して構わない。したがって、アリスが公開鍵を送るのはボブだけではない。ただし、その公開鍵で暗号化された暗号を解いて手紙を読めるのは、暗号が解読されない限り秘密鍵を所有しているアリスだけである。公開鍵と秘密鍵は必ず一組で生成されるが、公開鍵から秘密鍵を再生することは現実的に不可能であるようにしなければならない。また、秘密鍵で暗号化した手紙は公開鍵で解号できる。公開鍵と秘密鍵の区別は、基本的に公開するか秘密にするかのみである。【００５０】
公開鍵のもう一つの重要な役割は、アリスへ手紙を送るための宛先、すなわち、アリスのネットワーク上のアドレスになることである。ボブが暗号化した手紙をネットワークに流すとき、ネットワークに接続している任意の受信者の手に渡ることになる。このとき解号できなければ読めない。どのようにしても読めないということは、受信しなかったことと同意である。したがって、アリスのみが解号できるということは、アリスのみに届いたということと等価である。こうして、公開鍵のもう一つの役割がネットワーク上のアドレスになることが明らかになる。したがって、ビットコインで使用される公開鍵は、ビットコインアドレスとも呼ばれる。【００５１】
図８は、電子マネー等を納める財布の基本概念の一例を説明するための図面である。ビットコインなどの暗号通貨には共通の構図である。財布にはネットワーク上のアドレスが予め付与され、財布の中身には、何らかの貨幣価値のあるもの（通貨やそれと等価なコインなど）が納められる。更に、何らかの暗号技術を用い、アドレスと財布の中身を電子署名として財布に取り付けられるようになっている。【００５２】
図９に示すように、このような財布は、たとえば、専用アプリをパーソナルコンピューター、タブレット、スマートフォン、スマートカード等のハードウェアにインストールして使うことができる。そのとき、財布の中身は、専用アプリをインストールしたハードウェアのストレージにデジタルデータとして保存される。このデジタルデータの管理は、たとえば、Ｐ２Ｐを前提とした電子処理では、ハードウェアの管理者・所有者が自ら責任を持って行う必要がある。この点がクライアント・サーバー型と異なる点である。クライアント・サーバー型では、金融機関などが責任を持って行うことになる。Ｐ２Ｐでの電子処理は、このように中核的機能を有する金融機関のような存在を必要としない。【００５３】
図１０は、処理（N-2，N-1）、処理（N-1，N）、処理（N，N+1）、…の鎖を示す図面である。処理（N-2，N-1）は財布（N-2）から財布（N-1）への何らかの処理であり、処理（N-1，N）は財布（N-1）から財布（N）への何らかの処理であり、処理（N，N+1）は財布（N）から財布（N+1）への何らかの処理である。ただし、Nは任意の自然数。【００５４】
財布（N-1）の中身は、たとえば、どこかから振り込まれた１０００円だったとしよう。この１０００円の振り込み元を財布（N-2）とし、更にこの１０００円には電子署名（N-2）が添付されているとする。ただし、１０００円というのは一例に過ぎず、他の貨幣価値と等価または可換なデジタル情報であれば何でも良い。財布（N-1）は、財布の中身である１０００円と、次の電子署名作成のために用いる秘密鍵（N-1）と、それと一組をなす固有の公開鍵（N-1）からなる。上述したように、公開鍵（N-1）は、財布（N-1）のネットワーク上のアドレスである。一例として、ビットコインアドレスが上げられる。【００５５】
次に、公開鍵（N-1）、財布（N-1）の中身、および電子署名（N-2）から、ハッシュ関数（一例としてSHA-256）を用いて、ハッシュ値（N-1）を作成する。このハッシュ値（N-1）を財布（N）に送付し、財布（N）ではそれを財布（N）の中身として保存する。一方、転送元の秘密鍵（N-1）を用いて、財布（N）のアドレスである公開鍵（N）と中身であるハッシュ値（N-1）を暗号化して電子署名（N-1）を生成し、ハッシュ値（N-1）と共に財布（N）に転送する。【００５６】
こうして財布（N）は、ハッシュ値（N-1）と、電子署名（N-1）と、さらに一組の固有の公開鍵（N）及び秘密鍵（N）から構成されることになる。こうして、財布（N-1）から財布（N）へ１０００円を送金する処理が完了する。【００５７】
ハッシュ値（N-1）には、この１０００円が財布（N-1）から来たという情報が含まれているはずである。しかしながら、ハッシュは暗号と異なり逆変換不能なので、ハッシュ値（N-1）を逆変換（解号）してそれを読むことができない。そのため、電子署名（N-1）が添付されている。この電子署名（N-1）は、秘密鍵（N-1）を使い、公開鍵（N）およびハッシュ値（N-1）をまとめて暗号化したものである。したがって、この電子署名が本当に財布（N-1）のから来たものであるかどうか確かめるには、この電子署名（N-1）を公開鍵（N-1）で解号したものと、財布（N）に納められている公開鍵（N）およびハッシュ値（N-1）と比較すれば良い。暗号が破られていない限り、一致していれば確かに秘密鍵（N-1）で電子署名したことに偽りはない。一致していなければその電子署名は偽りである。あるいは別の公開鍵、例えば公開鍵（Q）で解号した結果と一致すれば、公開鍵（Q）をアドレスとして所有する財布（Q）が不正処理したことが判る。【００５８】
ただし、過去の履歴に不正処理がないことを証明するには別の方法が必要である。なぜなら、電子署名だけでは、秘密鍵（N-1）を正規に所有している者が不正を働く可能性を否定できないからである。たとえば、所有者による秘密鍵の乱用が考えられる。Ｐ２Ｐを前提にしたビットコインでは、それを「仕事による証明」（PoW）によって防ごうとしている。これは、概ね上手く行っていると考えられている。「仕事による証明」（PoW）について下で述べる。【００５９】
一般に、クライアント・サーバー型のネットワークでは、処理の確認には信頼すべき第三者の介在が必要である。それは、例えば信頼のおける金融機関などであり、信頼のネットワーク上では中核的ノード（サーバー）となる。すなわち、財布（N-1）の所有者は、ある金融機関を介して財布（N）の所有者に送金することができる。しかしながら、このような中核的ノードの信頼性を完全に証明する方法はなく、送金処理の度に送金元に確認依頼が寄せられることになる。複数の金融機関を跨いだ送金などもあり、確認依頼は膨大な数になる。また、一つの確認作業には一定以上のコストが必要である。そのため送金処理の手数料には一定の下限が設けられることになる。たとえば、この下限を５００円とすると、５００円以下の送金をする度でも５００円余計に支払わなければならなくなる。こうして、クライアント・サーバー型は無数の少額の処理を前提としたビジネスには向かないことが判る。【００６０】
図１０では、続いて公開鍵（N）、財布（N）の中身（この場合ハッシュ値（N-1））、および電子署名（N-1）から、ハッシュ関数（一例として、SHA-256）を用いて、ハッシュ値（N）を作成する。財布（N）はこのハッシュ値（N）を財布（N+1）に送信し、財布（N＋1）はそれを財布（N+1）の中身として納める。一方、財布（N）は、秘密鍵（N）を用いて、財布（N+1）のアドレスである公開鍵（N+1）とこのハッシュ値（N）を暗号化し、電子署名（N）を生成する。続いて、ハッシュ値（N）と共にこの電子署名（N）を財布（N+1）に送付する。【００６１】
以上から、財布（N）の中身には、財布（N-1）から財布（N）への処理（N-1，N）がハッシュ値（N-1）として記録されていることが判る。同様に、財布（N+1）の中身には、財布（N）から財布（N+1）への処理（N，N+1）がハッシュ値（N）として記録されていることが判る。こうして、任意の財布の中身は、過去のすべての処理履歴を連鎖的に含んでいることが判る。すなわち、過去の最新のハッシュ値が、過去のすべての履歴を代表している。【００６２】
一方、一つの財布に送金する財布は、図１０の例のように一つとは限らない。実際には複数の財布から一つの財布に送金する場合は少なくないだろう。また、一つの財布から複数の財布に送金される場合も少なくないだろう。こうして、送金の処理履歴はより複雑になり、その作業を一つ一つ確認が必要なクライアント・サーバー型で行うには膨大なコストがかかることが判る。【００６３】
また、Ｐ２Ｐで過去の送金処理をすべて記録しておくということは、一つのノードが過去に遡って全世界のノードのすべての処理履歴を保存しておかなければならないということである。これは、財布の専用アプリをインストールしたハードウェアのストレージを飽和させてしまう可能性がある。しかしながら、最新の履歴を含むハッシュ値は必ずたった一つである。それをメルクルの根という。したがって、メルクルの根から過去を遡ることができる。それは、メルクルの根から枝分かれした樹形図のようになる。これをメルクル樹形図という。たとえば、メルクルの根であるハッシュ値（ABCD）は、ハッシュ値（AB）およびハッシュ値（CD）に対応する履歴に繋がっている。ハッシュ値（AB）は、更にハッシュ値（A）およびハッシュ値（B）に対応する過去の履歴、すなわち、処理（A）および処理（B）にそれぞれ繋がっている。ハッシュ値（CD）は、更にハッシュ値（C）およびハッシュ値（D）に対応する過去の履歴、すなわち、処理（C）および処理（D）にそれぞれに繋がっている。【００６４】
しかしながら、そもそもハッシュ値は逆変換不可能なのでハッシュ値を解読することによって送金処理の履歴を辿ることは不可能である。たとえば財布（N）の中身（ハッシュ値（N-1））の過去の処理履歴を実際に辿る一つの方法は、任意の他の財布（M）を選び、その公開鍵（M）を使って電子署名（N）を解号し、その結果を公開鍵（N）およびハッシュ値（N-1）と比較する。一致しなければ別の財布（M+1）を選び、公開鍵（M+1）を使って解号し同じ作業をする。一致すればその処理は財布（M+1）からの送金であったことが判る。このときＭ＋１はＮ−１であることが判る。続いてハッシュ値（N-3）を含む財布（N-2）の公開鍵（N-2）も同様の方法で検索できる。この作業を繰り返すことによって処理履歴を遡ることが可能である。ここでＭおよびＮは任意の自然数とする。【００６５】
こうして、論理的には過去の処理履歴を遡ってゆくことができるわけであるが、このようにハッシュ値を使って過去の履歴をひとつずつ遡ることは実は必ずしも必要ない。むしろ、数百から千個程度の処理を一塊に集め、これらの処理が現実に存在したことを何らかの方法でまとめて承認してしまえば良い。具体的には、メルクルの根以外のハッシュ値をすべて削除し、最新のハッシュ値（たとえば、ABCD）を符号として用いれば良い。一つの符号で代表される処理の集まりをブロックと呼ぶ。こうして財布の専用アプリをインストールしたハードウェアのストレージを節約することが可能である。【００６６】
このようにメルクルの根（上の例ではハッシュ値（ABCD））に代表される過去の処理の集まりが確かに存在していたことを、タイムスタンプを付けることで承認する。こうして承認されたブロックがネットワーク上に公開される。この公開は、公証役場に書類を持ち込み、日付を付けて封書してもらう日付認証に似た作業（ワーク）である。ビットコインでは、新たなブロックの公開を記帳と呼び、記帳した者には認証作業の対価として一定の報酬が与えられる。最初の２１０，０００番目までの記帳では、一回あたりの報酬は５０ＢＴＣである（ＢＴＣはビットコインの単位）。２１０，００１番目から４２０，０００番目までは２５ＢＴＣである。すなわち、２１０，０００番目ごとに半減して行き、６，９２９，９９９番目のブロックが記帳されるときゼロになる仕組みである。２０１６年６月時点の報酬は、記帳一回で２５ＢＴＣである。【００６７】
Ｐ２Ｐでは公証役場（中核的ノードの一例）がないので、公証人に代わって処理の集まりを承認し、タイムスタンプを付けるのはＰ２Ｐに参加している不特定多数のビットコインの利用者である。しかしながら一度にタイムスタンプを添付して新しいブロックを公開（記帳）できるのは一人である。したがって、記帳して与えられる報酬を求め、複数の利用者が先を争って承認作業を行う。【００６８】
一例として図１１を用い、この承認作業を簡単に説明する。まず承認済みの過去のブロックに関する何らかのハッシュ値を獲得する。次にネットワーク上に存在する未承認処理の集まりを発見し、その集まりのメルクルの根（ハッシュ値）を獲得する。この二つのハッシュ値に可変のノンス値というものを追加し、更にハッシュ化してブロックハッシュを作る。このとき、ビットコインではハッシュ関数としてSHA-256を利用する。もちろん、他のハッシュ関数を利用してブロックハッシュを生成することも可能である。【００６９】
ノンス値は、一般に、３２ビットの任意の値である。このノンス値を含めて生成されたハッシュ値（ここではブロックハッシュ）は２５６ビットの値である。２の２５６乗は１０の７７乗より大きく、ブロックハッシュは膨大な自由度を持っていることが判る。前記ノンス値を調整すると、ブロックハッシュの最初の数ビットをゼロにすることができる。一例として、新たに生成したブロックハッシュの最初の１６ビットがすべてゼロになる確率は２の１６乗分の１、すなわち６５，５３６分の１である。すなわち、偶然にはほとんど起こりえないことであり、このようなノンス値を掘り当てるには相応の仕事（ワーク）が必要である。【００７０】
ただし、ハッシュ関数は非可逆的である。したがって、最初の数ビット（この例では１６ビット）がゼロとなるハッシュ値（ここではブロックハッシュ）を生成するようなナンス値を、逆変換で求めることは不可能である。つまり、ナンス値を変えながらハッシュ化を繰り返し、その都度生成したハッシュ値の最初の数ビットがすべてゼロになるまでそれを繰り返さなければならない。こうして、ブロックを生成するためのナンス値の決定には、一定以上の計算機の活用が不可欠であることが判る。その対価として、ブロックを生成すると報酬（一定のビットコイン）が与えられる。金を採掘するのに似ているので、この仕事をマイニングと言う。この報酬を狙ってマイニングする（ビットコインの）利用者をマイナーと言う。【００７１】
Ｐ２Ｐネットワークでは、マイニングを行うのは特定の中核的機能を持つノードではない。一定以上の計算機リソースを活用できれば誰でもマイニング可能である。マイナーは、より正確には、そのマイナーが活用するＰ２Ｐ上のノードは、ナンス値を変更しながらネットワーク上で総当たり探索を行い、最初の数桁がすべてゼロとなるような未承認処理の集まりを見つけ出せばよい。つまり、ナンス値を変更しながらネットワーク上を採掘（マイニング）して回っているのである。このように、必ずしも特定の未承認処理の集まりに対してナンス値を調整する必要はない。【００７２】
こうして最初の数ビット（この例では１６ビット）がゼロのブロックハッシュが掘り出されると、このブロックハッシュに対応する未承認処理の集まりは、新たに承認されたブロックとして前出の承認済みの過去のブロックに連結することが許される。すなわち、最初の所定のビット数をすべてゼロにすることがブロック連結の条件である。そして、最初にこの条件を満たすブロックハッシュを掘り当てたマイナーが記帳することを許される。この作業（マイニング）を繰り返すことによって複数のブロックが連結され、ブロックチェーンが形成される。【００７３】
上述したことから判るように、ビットコインでは通貨の信頼性は過去の処理履歴の信頼性である。公正認証に代わりその信頼性を保証しているのがブロックチェーンである。ブロックチェーンが長く伸びるほど改竄が難しくなる。たとえば、一部のブロックのデータを書き換えると、前後につながったブロックとの連結条件（ブロックハッシュの最初の数ビットがすべてゼロ）を満たさなくなる。そこで前後のブロックのナンス値を修正してこの条件が満たされるようにしなければならない。上述したように、ハッシュ関数は非可逆なのでそれには相応の計算が必要とされる。しかしながら、前後のブロックのナンス値を調整すると、更にその先のブロックのナンス値も調整しなければならない。結局、一部のデータを改竄するだけでブロックチェーンに連結されているすべてのブロックのナンス値を調整しなければならなくなる。これは、更に膨大な計算機能力を必要とする。こうして、ブロックチェーンが長く伸びるほど幾何級数的に改竄が難しくなるとされている。【００７４】
それでもブロックチェーンにも弱点はある。まず暗号が破られ秘密鍵が盗用されることである。財布のアドレスである公開鍵がネット上に公開されており、暗号を破り公開鍵から秘密鍵を再生すれば他人のアカウントで自由に電子署名を偽造できるようになる。これは電子署名を無意味化するのですべての処理が信頼できなくなる。【００７５】
暗号の最大の脅威は量子コンピュータである。ブロックの生成が１０分間で一つと仮定すると、最後のビットコインが採掘されるのは２１４０年頃と試算されている。それまでに量子コンピュータが普及している可能性は低くないと考えられる。そうなると、現代の暗号を使った電子署名は成り立たなくなるので、最後のビットコインが採掘される前にブロックチェーンは使われなくなるだろう。しかしながら、それまでにはまだ大分時間があると考えられる。いずれにしろ、理論的根拠はないが今後１０年から数十年の間ブロックチェーンは世界中で広く使用されると期待される。【００７６】
一方、通貨の偽造とは過去の処理履歴の改竄や不正コピーである。処理の検証が成功した証として電子署名を処理履歴に添付するのであるから、通貨の偽造とは電子署名の偽造である。電子署名を作成できるのは、暗号が破られない限り、唯一電子署名に必要な秘密鍵を所有する前の財布の所有者のみである。逆に言えば、暗号が破られなかったとしても、秘密鍵の正規の利用者は過去の処理履歴を改竄しようと思えば可能である。しかしながら、上記のように一度ブロックチェーンをくみ上げてしまうと、たとえ秘密鍵の正規の利用者であっても、ブロックチェーンを連結させるナンス値すべてを改竄することは難しい。ブロックチェーンが長く伸びるほどその難易度は劇的に上昇する。すなわち、一度ブロックチェーンを長くしてしまえば過去に遡って改竄、あるいは、編集することはほぼ不可能になる。これが「仕事による証明」（PoW）の仕組みである。【００７７】
しかしながら、新たな処理をする場合には秘密鍵の正規の利用者が不正処理を行える方法がある。たとえば、財布（N）から財布（N+1）に正規の処理（N，N+1）が行われる一方、財布（N）の所有者は、秘密鍵（N）を悪用して電子署名（N’）を生成し、不正が発覚する前にそれを添付して財布（M）に送金する。すなわち、貨幣を不正に発行したのと同じことになる。これを二重処理問題という。【００７８】
このように処理（N，M）は不正処理である。財布（M）の所有者は、電子署名（N’）を信じて次の処理を行い、財布（M+1）に送金する。財布（N+1）の所有者も電子署名（N）を信じて次の処理を行い、財布（N+2）に送金する。不正処理は唯一処理（N，M）のみであるが、その後処理（M+1，M+2）、処理（M+2，M+3）、…と続いて行く。これらをまとめて新たなブロックが生成できる。【００７９】
ここで、不正処理（N，M）を含まない正規のブロックは、財布（N）で二重処理が行われる以前から存在する。したがって、不正処理（N，M）を含むブロックから派生するブロックの生成速度が正規のブロックの生成速度を凌駕しない限り、長いブロックが正規のブロックである。ブロックチェーンでは、チェーンの長さで真贋を判定している。【００８０】
しかしながら、不正を働く側の計算能力が全世界の他のマイナーに分配されている計算能力を凌駕するとき、不正チェーンが正規のチェーンより長くなる可能性がある。これを「５１％攻撃」という。【００８１】
５１％攻撃は、費用対効果の関係で現実的ではないという議論がある。しかしながら、ある集団の財政基盤を脆弱にするためサイバー攻撃として行われる場合はこの限りではない。たとえば、ある大国でブロックチェーンを基盤としたフィンテック２．０が広く普及していたとしよう。ある小国がこの大国の金融システムを麻痺させるためマイニングに国防費用を投入することがあるかも知れない。この場合核兵器の開発よりコストを抑えることが可能となるだろう。また、クラウドマイニングの発達により一部の業者が一時的に５１％攻撃の能力を獲得することはありえる。【００８２】
この場合、攻撃されるであろう大国もブロックチェーンに参加する必要が出てくる。複数の国家が参加し、どの国家も５１％攻撃を実施できないような状態にしておけば問題はなくなる。このようにブロックチェーンはＰ２Ｐであるが、国際的な情報通信インフラという側面を併せ持つようになるだろう。【００８３】
このように、Ｐ２Ｐネットワーク上で処理の履歴を共有しマイナーに承認作業を任せ信頼性を担保するという公開台帳システムの考え方は、情報通信インフラとしてビットコイン以外にも幅広い応用が期待されている。これは、最低コストで過去の処理の改竄を現実的に不可能にできるという理由による。現実的に改竄不可能なデータベースの需要は、たとえば、日々増大する蓄積された医療データを利用したヘルスケアや、日々増大する蓄積された処理データを利用した証券取引や、その他日々増大する蓄積されたビッグデータを活用するありとあらゆる情報サービスが考えられる。そして、フィンテック２．０と呼ばれる世界的な金融技術革新の波を引き起こしている。【００８４】
５１％攻撃を抑制するにはもう一つポイントがある。まず、攻撃するノードの数を無限大にしないことである。ノードに割り当てるアドレスがＩＰアドレスのような論理アドレスであると、攻撃者は無限の数の攻撃用ノードを獲得することが可能となる。したがって、Ｐ２Ｐに結節するノードは、すべてＣＰＵなどとリンクした物理アドレスを割り当てるべきである。この考え方をOne-CPU-One-Vote（一台一票）と呼ぶ。たとえば、投票用紙一人一枚というのは、多数決のようなシステムでは不可欠な条件である。【００８５】
こうして、秘密鍵と物理的実態を持つ個別認証とを関連付けることが必要であることが判る。しかしながら、秘密鍵はソフトウェアによる産物であり物理的実態とは縁がない。そもそもソフトウェアは、同じ規格で設計・製造されたどの情報機器にインストールしても同じく機能するように作られたものである。それゆえ物理的実態とは成り立ちから言って無縁である。にも拘わらず、ネットワークを構成するのは、無数の情報機器とそれらを連結し電子データを交換する有線無線の信号伝達路の集合である。情報機器ばかりでなく、信号伝達路も物理的実態であることは自明である。ここに秘密鍵と物理的実態とを関連付けるヒントがある。【００８６】
具体的には、公開鍵と物理アドレスを改竄されない何らかのの方法でリンクさせることである。【００８７】
ここで図６に戻ろう。いまだに物理アドレスは論理アドレスと分離されたままである。５１％攻撃を防ぐのみならず、ブロックチェーンのメリットが物理的実態を持つノード同士のネットワーク、すなわち、ＩｏＴには及ばないことを意味している。しかしながら、もしこの問題を解決できれば、５１％攻撃を防ぎつつ公開台帳システムをＩｏＴに持ち込むことが可能となる。【００８８】
〈物理アドレス〉
図１２は、現在物理アドレスとしてもっとも広く使われているメディア・アクセス・コントローラー（MAC）アドレスの活用事例を簡便にまとめたものである。【００８９】
ＭＡＣアドレスは、情報機器に搭載されているイーサネット（登録商標）カードに固有の管理番号として割り当てられている。典型的なイーサネット（登録商標）カード３０００は、たとえばＭＡＣ用演算処理チップ３０２０と、ＭＡＣアドレスを記録する不揮発性メモリチップ３０１０を含む。【００９０】
電気電子技術者学会（IEEE）によって標準化され、図１３に一例を示すように、長さ４８ビット（６バイト）、したがって、情報量およそ２８０兆もの０と１の数列の集合である。上位の２４ビット（図１３の例で左半分）はベンダーコード３０７１と呼ばれ、ベンダーごとに割り当てられる。下位の２４ビット（図１３の例で右半分）は、シリアル番号３０７２と呼ばれ、各ベンダーが重複しないよう割り当てている。ベンダーコード３０７１の最後の２ビットは、ＵＬビットとＩＧビットである。ＭＡＣアドレスを表記するには、このＵＬビットとＩＧビットを含む４８ビットの数列を８ビットごとに区切ってそれぞれ１６進数で表す。【００９１】
ＭＡＣアドレスがグローバルアドレスの場合、ＵＬビットは１である。そうでない場合０である。すなわち、グローバルアドレス（ＵＬビット＝１）の場合では、全世界で重複を起こさないよう、ＭＡＣアドレスを割り当てられなければならない。ベンダーコードの２４ビットの内、別の１ビットはＩＧビットと呼ばれるものに割り当てられる。ＩＧビットが０の場合、ユニキャスト通信を意味し、１の場合はマルチキャスト通信を意味する。ユニキャスト通信とは、情報機器のネットワークの中において単一の送信先を指定してデータ（フレーム）を送信することである。これに対しマルチキャスト通信とは、情報機器のネットワークの中において、複数の送信先を指定してデータ（フレーム）を送信することである。こうして、４８ビットの内、ＵＬビットとＩＧビットの２ビットを除いた４６ビットが実際に割り当てられるＭＡＣアドレスの自由度ということになる。数にしておよそ７０兆ほどである。【００９２】
ここで注意すべきことは、現在現役で使用されている情報機器だけでなく、すでに廃棄されたり紛失したりして使用されなくなった情報機器にまで渡って全世界で重複しないよう、ＭＡＣアドレスを割り当てられなければならないことである。現在、ＭＡＣアドレスはまだ枯渇していない。しかしながら来るＩｏＴの時代には、現役でネットワークに接続する物理ノードの数は１０兆個を超えると考えられている。しかしながら、ＭＡＣアドレスは編集可能となっているため、何らかの理由で使われなくなったＭＡＣアドレスを再利用することができる。こうして枯渇の問題を回避できるように見えるが、ＭＡＣアドレスの編集はＭＡＣアドレスの偽造や乗っ取りを容易にしているのも事実である（特許文献４参照）。【００９３】
このように、ＭＡＣアドレスは図１３のフォーマットに従ってイーサネット（登録商標）カード３０００に割り当てられ不揮発性メモリ３０１０に書き込まれたコードであり、書き換えも可能である。したがって、一台一票を保証できない。【００９４】
〈書き換え不能の物理アドレス〉
このように、ＭＡＣアドレスに代わり少なくとも（書き換え不能の物理アドレス）が必要なことは明白である。それを実現する何等かの認証装置が存在し、チップに搭載されているものとする。【００９５】
図１４は、情報機器である第一のノード２００１が信号伝達路１０００を介して通信相手である第二のノード２００２と接続する場合を図示したものである。ここで、第一のノードは第一のチップ１１０をマウントしている。さらに第一のチップは認証装置６０を搭載している。認証装置６０は、何らかの方法で（書き換え不能の物理アドレス）を実現する半導体チップに集積化できる装置である。こうして、第一のチップ１１０は第一のノードあるいは情報機器の認証コアとなる。第一のチップ１１０は、外部入出力５０を通して通信伝達路１０００に接続している。【００９６】
認証装置６０は外部入出力５０から受け取るコール（入力コード）に応じて都度出力コードを発生するものである。ここで発生された出力コードは、認証装置６０を搭載するチップに固有の物理的乱雑さを利用して生成されるものである。したがって、入力コードを変えると出力コードも変わるという特徴を有している。この点で、イーサネット（登録商標）カードの不揮発性メモリに保存されたデータであるＭＡＣアドレスとは根本的に異なる。すなわち、ＭＡＣアドレスは入力コードによって出力を変更するような機能を持つものではない。【００９７】
〈共通パスコード〉
図１５のように、少なくとも一つの共通パスコードが第二のノード２００２に保存され、それと接続するそのほかのノードを認識する際に各ノードに送られる。たとえば、第二のノード２００２は第一の共通パスコード１４１０を、第一のノード２００１、第三のノード４３０、第四のノード４４０に送る。これらのノードは、第二のノード２００２を「第一の共通パスコード１４１０を送ってくるもの」として認識する。【００９８】
図１６に示すように、第一のノード２００１、第三のノード４３０、第四のノード４４０は、この第一の共通パスコード１４１０の入力に対応し、それぞれ、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を、第二のノード２００２に返す。第二のノード２００２は、第一のノード２００１、第三のノード４３０、第四のノード４４０を、「第一の共通パスコード１４１０に対して、それぞれ第一の認証４１０１、第二の認証４２０１、第三の認証４３０１を返すもの」と認識する。ここで、第一の認証４１０１、第二の認証４２０１、第三の認証４３０１のうちどの二つの認証も同じではない。また、第二のノード２００２が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。このように、発信側ノードが使用する共通パスコードはそれぞれ複数であることが望ましい。【００９９】
ここでは、入力が同じであっても認証装置が異なれば必ず異なる出力を返す（出力の独立性）を満たすことを前提としている。〈出力の独立性〉については、以下で詳述する。【０１００】
次に、上記認証装置を有するノード（たとえば図１４および図１５の例では、第一のノード２００１、第三のノード４３０および第四のノード４４０）と通信するノード（たとえば図１４および図１５の例では第二のノード２００２）が満たすべき条件について考えよう。【０１０１】
通信側のノード（たとえば図１４および図１５の例では第二のノード２００２）には、少なくとも送信する共通パスコードを発信する発信装置か、あるいは保存しておく内部メモリが必要である。更に、受信する認証コード（たとえば図１６の例では、第一の認証４１０１、第二の認証４２０１、および第三の認証４３０１）を処理する処理系が必要である。【０１０２】
この処理系は、一例として、図１７のように入力コード４０２と登録コード４０３を保存する内部メモリ４０１を含む。前述のように複数のパスコードを併用する場合、図１８のように、入力コードは複数存在し、それぞれの入力コードに対応して複数の登録コードが登録されている。【０１０３】
上記認証装置を有するノード（たとえば図１４および図１５の例では第一のノード２００１、第三のノード４３０、および第四のノード４４０）には、すべて異なる認証装置が搭載される。図１５及び図１６に示すように、通信側のノード２００２は、少なくとも一つの固有の共通パスコード１４１０を保有する。図１７に示すように、第二のノード２００２が出力する共通パスコードは、第二のノード２００２の内部メモリ４０１に入力コード４０２として厳重に保管される。【０１０４】
図１５において共通パスコード１４１０を入力されたノード（２００１、４３０、４４０）は、この共通パスコード１４１０に対しておのおの固有の認証コード（４１０１、４２０１、４３０１）を第二のノード２００２に返信する。ここで返信される認証コードは、どの二つをとってもお互いに異なることが必要である。そのため前記認証装置は、後述する（出力の独立性）を満たさなければならない。図１８に示すように、第二のノード２００２は、各入力コードに対応して返信されてきた認証コードを、内部メモリ４０１に厳重に保管する登録コード４０３と便宜比較する。【０１０５】
内部メモリに入力コードや登録コードを保存する第二のノード２００２のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を駆使して厳重に保守することが望ましい。このように、第二のノード２００２はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。これを基幹ノードと呼ぶ。これに対し、基幹ノードに接続し、セキュリティ管理者による中央管理化にないノードを周辺ノードとする。すなわち、図１７は、３つの周辺ノード（第一のノード２００１、第三のノード４３０、第四のノード４４０）が、基幹ノードである第二のノード２００２に接続する例である。【０１０６】
基幹ノードは、入力コードと登録コードのリストを内部メモリに保存する。一方周辺ノードは、登録コードも入力コードも保存せず、それぞれ相違なる認証装置を搭載するチップを内蔵しているものとする。また、基幹ノードの内部メモリに保存された登録コードのリストの中の一つの要素と入力コードの組み合わせが、それぞれ周辺ノードとの通信に対応する。基幹ノードは、この組み合わせを図１８のリストのような形で内部メモリに保存している。【０１０７】
基幹ノードを厳重な中央管理下におくことによって基幹ノードへの遠隔攻撃は防がれるものとしても、ネットワークに接続する周辺ノードの数が数兆個に上る場合、すべての周辺ノードを厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を示している。そこで遠隔攻撃者は、基幹ノードに接続する中央管理の行き届かない周辺ノード、図１７の例では、第一のノード２００１、第三のノード４３０、第四のード４４０、…のうち少なくともどれか一つを遠隔攻撃によって乗っ取ろうとする。【０１０８】
たとえば、遠隔攻撃者が適当に選んだ信号（X，Y，Z）を第一のノード２００１に入力し、（X1，Y1，Z1）の返信を得るものとする。一方、第一のノード２００１は認証装置を搭載しており、第二のノード２００２（基幹ノード）は第一のノード２００１に入力コード４０２（P，S，T，…）を送信し、返信として認証（P1，S1，T1，…）を受信する。第二のノード２００２は、更にこの認証と同じコードを登録コード（P1，S1，T1，…）として予め内部メモリ４０１に記録しているものとする。【０１０９】
この入力コード４０２（P，S，T）と信号（X，Y，Z）が異なる場合、遠隔攻撃者が受け取る返信（X1，Y1，Z1）は登録コード４０２の（P1，S1，T1）と異なる。これは、周辺ノードに搭載される認証装置が、異なる入力に対して必ず異なる出力を出す性質（〈出力の独立性〉）を持つことを前提にしている。こうして、認証装置が〈出力の独立性〉を持つ限り遠隔攻撃は失敗に終わるのである。ここで、周辺ノードと基幹ノードが、もしイーサネット（登録商標）形式による相互認証を採用していたらどうなるだろうか？遠隔攻撃者は、周辺ノードに搭載されているイーサネット（登録商標）カードの内部メモリ（たとえば、図１３の例では、不揮発性メモリチップ３０１０）からＭＡＣアドレスを容易に盗み出すことができる。これは、ネットワークに接続している機器の制御を乗っ取ることと同じである。たとえば、地球の裏側にいるハッカーが運転中の車を乗っ取ることが可能になる。【０１１０】
ここで残る問題は、遠隔攻撃者が適当に選んだ信号セット（X，Y，Z）が、たまたま基幹ノードの内部メモリ４０１に保存した入力コード４０２（P，S，T）に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に基幹ノードの管理者以外には非公開とすることである。そして、この情報は基幹ノードの管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、基幹ノードに接続する周辺ノードの再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。これらの条件を満しつつ、入力コードはパスコードとして振舞う。【０１１１】
すなわち、この認証装置を用いる相互認証形式は、イーサネット（登録商標）形式と同様に物理的実態のあるノード同士の相互認証をつかさどるものである。一方、ネットワークを形成するノードを、相互認証に関わる情報を保存し中央管理下に置かれるノード（基幹ノード）と、それ以外のノード（周辺ノード）に分割する。周辺ノードは、相互認証に関わる情報を保存しない代わりに認証装置を搭載し、所定の入力に対して出力を返す。入力が異なれば必ず異なる出力を返す〈出力の独立性〉を満たすものである。〈出力の独立性〉については、以下で詳述する。【０１１２】
ここで、入力コードはさまざまな周辺ノードへ入力され、出力として得られる認証コードを検査するために共通して使うことが望ましい。このような事情から、“共通パスコード”とみなすことができる。こうして、基幹ノードは少なくとも一つの共通パスコードを所有することが望ましい。【０１１３】
上記基幹ノードが計算機（パソコン等）の場合、これに接続する周辺ノードは、たとえば、マウス、キーボード、マイクロホン、などパソコンに接続して使用されるデバイスである。上述したとおり、基幹ノードである計算機本体は、最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。認証装置の役割は、計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺ノード（マウス、キーボード、マイクロホン等）を遠隔攻撃から守ることである。【０１１４】
上記基幹ノードがネットワークサービスの中心的機能を担うサーバーの場合、これに接続する周辺ノードはこのネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。認証装置の役割は、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれないエンドユーザーの端末（スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等）を遠隔攻撃から守ることである。【０１１５】
上記基幹ノードがクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する周辺ノードは、たとえば、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、世界中の広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、ＧＰＳ、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。これに対し認証装置の役割は、ネットワーク上に無数に存在し、十分に訓練を受けた専門家が最新のセキュリティ技術を駆使しても守りきれないセンサーを遠隔攻撃から守ることができる。【０１１６】
このように、上述した例では、ネットワークを構成するノードは、入力コード（共通パスコード）や登録コードを保存する基幹ノードと保存しない周辺ノードに分けられる。基幹ノードは中央管理下におき、周辺ノードには認証装置を搭載する。これは、典型的な金融サービスにみられるクライアント・サーバー型のネットワークの構造である。【０１１７】
たとえば、図１７の第一のノード２００１を第一のクライアント５５１０に対応させ、第三のノード４３０を第二のクライアント５５２０に対応させ、第四のノード４４０を第三のクライアント５５３０に対応させ、第二のノードをサーバー５０００に対応させ、内部メモリ４０１をストレージ５０１０に対応させ、入力コード４０２を暗証コード５０２０に対応させ、登録コード４０３を決済後状態５０３０に対応させれば、図１７は図１９と等価であるのが判る。【０１１８】
図１９は、口座名義人（クライアント）が金融機関のサーバー５０００にアクセスする様子を示しており、第一のクライアント５５１０、第二のクライアント５５２０、第三のクライアント５５３０等が、サーバー５０００に接続している。第一のクライアント５５１０は、暗証コード（P，S，T，…）をサーバー５０００に送り、第二のクライアント５５２０は、暗証コード（R，O，A，…）をサーバー５０００に送り、第三のクライアント５５３０は、暗証コード（X，A，U，…）をサーバー５０００に送る。サーバー５０００は保存してある暗証コード情報５０２０と照合し、正規のクライアントであることを確認した後、第一のクライアント５５１０、第二のクライント５５２０、第三のクライアント５５３０等に所定のサービスを提供する。そのサービスに応じて発生した処理情報を、それぞれのアカウントに応じて処理後状態として保存する。たとえば図１９の例では、第一のクライアント５５１０の処理ご状態は（P1，S1，T1，…）、第二のクライアント５５２０の処理ご状態は（R2，O2，A2，…）、第三のクライアント５５３０の処理ご状態は（X3，A3，U3，…）である。【０１１９】
このとき、サーバー５０００は処理後状態の一部あるいは全部を所定の方法で各クライアントに通知する。ここで、クライアント毎の暗証コード５０２０と処理後状態５０３０の組み合わせを当該クライアントのアカウント情報とよぶ。たとえば、第一のクライアント５５１０のアカウント情報は（P，S，T，…；P1，S1，T1，…）となる。第二のクライアント５５２０のアカウント情報は（R，O，A，…；R1，O1，A1，…）となる。第三のクライアント５５３０のアカウント情報は（X，A，U，…；X1，A1，U1，…）となる。こうして、アカウント情報のリストが金融機関の管理運営するサーバーのストレージ５０１０に保存される。【０１２０】
実際の金融サービスでは、一つの金融機関にアカウント（口座）を持つエンドユーザー（口座名義人）の数に制限はなく、一つの金融機関が管理するアカウント情報（口座情報）の量も論理的に制限がない。つまり、周辺ノードの数は理論的に無制限である。反対に、金融サービスを提供する金融機関の数にも制限がないので、ネットワークに接続するサーバー（基幹ノード）の数にも制限がない。【０１２１】
たとえば、図２０に示すように、一つの周辺ノード（たとえば第一のノード２００１）が複数の基幹ノード（たとえば、第一の基幹ノード１４００、第二の基幹ノード２４００、第三の基幹ノード３４００）とのアクセスする場合を考えよう。第一の基幹ノード１４００は、第一の共通パスコード１４１０を有し、第二の基幹ノード２４００は、第二の共通パスコード２４１０を有し、第三の基幹ノード３４００は、第三の共通パスコード３４１０を有するものとする。すなわち、この周辺ノードは第一の基幹ノード１４００を「第一の共通パスコード１４１０を入力してくるもの」と認識し、第二の基幹ノード２４００を「第二の共通パスコード２４１０を入力してくるもの」と認識し、第三の基幹ノード３４００を「第三の共通パスコード３４１０を入力してくるもの」と認識する。これらの入力に対し、第一の基幹ノード１４００は、この周辺ノードを「第一の認証１１を返すもの」と認識し、第二の基幹ノード２４００は、この周辺ノードを「第二の認証１２を返すもの」と認識し、第三の基幹ノード３４００は、この周辺ノードを「第三の認証１３を返すもの」と認識する。【０１２２】
第一の基幹ノード１４００は、図１７のように、その内部メモリに少なくとも共通パスコード１４１０と第一の認証１１の組み合わせとしてそれぞれ入力コード４０２および登録コード４０３を記録している。第二の基幹ノード２４００は、図１７のように、その内部メモリに少なくとも共通パスコード２４１０と第一の認証１２の組み合わせとしてそれぞれ入力コード４０２および登録コード４０３を記録している。第三の基幹ノード３４００は、図１７のように、その内部メモリに少なくとも共通パスコード３４１０と第三の認証１３の組み合わせとしてそれぞれ入力コード４０２および登録コード４０３を記録している。一方、周辺ノードである第一のノード２００１は、図１４で説明したように、認証装置６０を内蔵している。【０１２３】
このようなネットワーク構造（クライアント・サーバー型）において、あるクライアントが別のクライアントに送金するには、必ずサーバーを介して処理する必要がある。他の金融機関にアカウントを持つ別のクライアントに送金するには銀行間処理、すなわち、サーバー同士での処理が安全に行われることが前提となる。たとえば、国内ならＡＴＭによるオンライン提携やマルチペイメントネットワーク（MPN）などがある。一方、他国にある金融機関のアカウントに送金するには国際間銀行通信協会（SWIFT）が提供するサービスが必要となる。現在あらゆる国際処理がＳＷＩＦＴの提供する処理システム（以後、ＳＷＩＦＴと言う。）を用いて行われている。【０１２４】
このように（書き換え不能の物理アドレス）を実現する認証装置を用いれば、物理アドレスの改竄という物理層への攻撃は防ぐことが可能になり、さまざまな応用ビジネスが考えられる。しかしながら、それは論理層への攻撃を防ぐこととは異なる（図３−５参照）。論理層への攻撃、すなわち、論理層に保存された記録の改竄を防ぐのはブロックチェーンである（図６参照）。【０１２５】
次に、認証装置が満たすべき条件についてまとめておこう。【０１２６】
〈入力の独立性〉
同一の認証装置に異なる入力コードを入力するとそれぞれ相異なる出力コードを出力する。たとえば図２１に示すように、認証装置６００に入力コードＣを入力すると出力コードＡを出力する。同じ認証装置６００に入力コードＤを入力すると出力コードＢを出力する。ここで、出力コードＡと出力コードＢは、入力コードＣと入力コードＤが異なる限り、それぞれ相異なる出力コードである。これは、図２０の活用方法を実現するために満たすべき条件である。また、複数のユーザーがそれぞれ異なるパスコードを用いる限り同一の認証装置を搭載する一つの端末を複数のユーザーで共有できることを示している。【０１２７】
〈出力の独立性〉
二つの異なる認証装置に同じ入力コードを入力したときの動作を特定する。図２２に示すように、二つの異なる第一の認証装置２１と第二の認証装置２２に対して、同じ入力コードＱを入力する。このとき、第一の認証装置２１は出力コードＡを出力する。第二の認証装置２２は出力コードＢを出力する。ただし、出力コードＡと出力コードＢとは異なる。このように、入力コードが同一であっても認証装置が異なる場合出力コードはそれぞれ異なる。これは、図１５および図１６の活用方法を満たすために満たすべき条件である。【０１２８】
〈出力の予測不可能性〉
図２３に示すように、ｎ個の入力コード（Q1，Q2，…Qn）を同一の認証装置６００に与えたとき、それぞれの入力コードに対し出力コード（R1，R2，…Rn）が得られることを知っているものとする。このとき、入力コードＱｎ＋１を同一の認証装置６００に与えずに、（Q1，R1）、（Q2，R2）、…（Qn，Rn）のセットからこれを与えたときに得られるはずの出力コードＲｎ＋１を予測することは不可能である。ただし、入力コードＱｎ＋１は、他のｎ個の入力コード（Q1，Q2，…Qn）のいずれとも異なる。またｎは２以上の整数とする。これは、信号伝達路のどこかで入力と出力の組み合わせを盗まれても未知の入力に対する出力は予測不可能であることと同一である。【０１２９】
認証装置６００が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、入力コードに対する出力コードの作成は、必ずある種のアルゴリズムを用いて行われることになる。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも〈出力の予測不可能性〉を満たすことができない。これは、プログラムにより完全な乱数を生成することが不可能であることと同じ事情である。こうして、認証装置６００は物理的乱雑さを活用したものでなければならないことが判る。言い換えると、〈出力の予測不可能性〉とは「物理的乱雑さの要請」でもある。【０１３０】
〈入出力の信頼性〉
図２４に示すように、入力コードＱを制御する回路に関わる制御不能のノイズなどにより、入力コードＱには入力コード誤差３１（ΔQ）が混入する。これに対し、入力コード誤差３１（ΔQ）及び出力コードを制御する回路に関わる制御不能のノイズなどにより、出力コードＲには出力コード誤差３２（ΔR）が混入する。このとき、二つの異なる入力コード（たとえば、Q1およびQ2）の差の絶対値は入力コード誤差３１（ΔQ）の絶対値の最大値より大きいものとする。このとき入力コードＱ１に対する出力コードＲ１と、入力コードＱ２に対する出力コードＲ２との間の差の絶対値は、出力コード誤差３２（ΔR）の絶対値より常に大きくなければならない。これは、入力と出力の関係が安定していて信頼できることと同一である。【０１３１】
〈出力の現実的無限性〉
来るＩｏＴの時代には、現役でネットワークに接続する物理ノードの数は１０兆個を超えると考えられている。一方、物理アドレスは紛失したり壊れたり、あるいは、別の何らかの理由でネット接続されなくなった物理ノードにも割り振られることになる。したがって、個別認証できる個体数（物理実態を持つノードの数）も非常に大きくなければならない。このように数十兆を超える膨大な数の物理ノードから構成されるネットワークに対応するため、認証装置に課すべき五番目の条件は、一つの入力に対する出力のパターンが現実的に無限大と見なせるほど大きな数となること、である。少なくとも１００兆個程度必要と考えられる。【０１３２】
〈物理的書き換え不可能性〉
入力コードと出力コードの関係を改竄することが物理的に不可能である。【０１３３】
認証装置は、上述した〈入力の独立性〉、〈出力の独立性〉、〈出力の予測不可能性〉、〈入出力の信頼性〉、〈出力の現実的無限性〉、および〈物理的書き換え不可能性〉の６つの内、目的に応じて一つまたはいくつかを同時に満たしていなければならない。【０１３４】
〈物理的にクローン不可能な機能〉
似たような機能を持つ技術が近年注目を集めている。物理的にクローン不可能な機能（PUF）と呼ばれるものである（特許文献１〜４参照）。これは、指紋や網膜などの生体情報を用いて人の個人認証を行うのと同様に、半導体のチップにおいても一つ一つ異なる物理的特性を用いてチップの固体認証行うものである。しかもその特性が、物理的にクローン不可能であるという特徴を持っている。そのほかＰＵＦに要求される主な特徴は、（１）同一のＰＵＦに異なる入力をすれば常に異なる出力をすること。（２）同一の入力をした異なるＰＵＦは常に異なる出力をすること。（３）入力と出力の組み合わせを盗まれても、未知の入力に対する出力は予測不可能であること、（４）入力と出力の関係が安定していて信頼できること、などである。【０１３５】
このように、上記（１）〜（４）は、〈入力の独立性〉、〈出力の独立性〉、〈出力の予測不可能性〉、〈入出力の信頼性〉と同等である。更に、ＩｏＴに応用するのであれば〈出力の現実的無限性〉も満たさなければならない。【０１３６】
しかしながら、「物理的にクローン不可能である」ことと「物理的に書き換え不可能である」こととは微妙に違う概念である。たとえば、前者は、物理的に同一の乱雑さを有するチップを複製することができないことを意味している。これに対し後者は、同一チップの物理的乱雑さを改変することが不可能であることを意味している。どちらも物理的チップ認証のためには必要なものであるが、本発明に関する認証装置は〈物理的に書き換え不可能性〉を実現するものである。本発明では、後述するように、システムによって物理的に同一の乱雑さをクローンすることができないようにする。【０１３７】
ＩＣチップ製品（半導体チップ製品）の場合、パッケージ剤の化学光学的性質を用いたＰＵＦを利用するもの（コーティングＰＵＦ、特許文献１参照）と、チップそのものに依存したＰＵＦを利用するもの（チップＰＵＦ）がある。特に近年では、チップ内に保存された暗号鍵の盗難や偽造チップ問題が注目されていることもあり、後者のチップＰＵＦをチップ内に搭載する技術への注目度が高い。【０１３８】
チップＰＵＦは、回路のばらつきを利用した回路ＰＵＦと、回路以外の微細構造のばらつきを応用したもの（製造ＰＵＦ、特許文献２参照）に大別できる。回路ＰＵＦは、更に、回路の配線遅延を利用するもの（遅延ＰＵＦ、特許文献３参照）と、回路のメタスタビリティを利用するもの（メタスタビリティＰＵＦ、特許文献４参照）に分かれる。遅延ＰＵＦとは、ＩＣ内で同様の設計仕様で集積化された複数の回路の動作時間に関する制御不能のばらつきを利用するものである。利用される回路の代表例は、アービター回路、グリッチ回路、リング発信回路などである。メタスタビリティＰＵＦで使用される回路は、主にスタティックランダムアクセスメモリ（以下ＳＲＡＭ）とラッチ回路（バタフライＰＵＦ）である。【０１３９】
回路ＰＵＦの弱点は、まず個体差が小さいことである。そして出力が不安定であり（入出力の信頼性）を満たすのに不利である。更に温度変化などの外部環境に影響されやすく、フォールト攻撃に弱い。そのため、増幅回路や温度センサー回路などを追加する必要がある。こうして、回路設計への負荷が高くなり、結果的に出力コードのデータ長への制限となって現れる。すなわち、〈出力の現実的無限性〉を満たすことが難しくなる。出力コードのデータ長が短ければ、たとえ出力がランダムであっても、認証付けられるチップの数が現実的に制限される。【０１４０】
製造ＰＵＦでは、意図的に集積化された層間バイアの製造ばらつきに起因するランダムな断線などが利用される。回路ＰＵＦの弱点の多くを解消できる可能性があるが、従来の半導体製品に含まれない特殊な構造を集積化する必要があり、一般的に製造工程への負荷が大きくなる。やはり全般的に普及するにはハードルが高いと言える。【０１４１】
そのほか、デバイスの信頼性を利用するもの（特許文献５参照）も提案されているが、信頼性そのものが低く〈入出力の信頼性〉を満たさない。また、電源オン時のダイナミックランダムアクセスメモリ（以下、ＤＲＡＭと言う。）のキャパシタのばらつきを利用するもの（非特許文献５参照）も報告されているが、原理的にラッチ回路ＰＵＦと共通の問題を抱えている。すなわち、個体差が小さく、環境要因の変化を利用したフォールト攻撃に弱い。【０１４２】
上述のように、様々な種類が提案されているＰＵＦには個々に解決すべき問題がある。一方、物理アドレスを置き換えるための解をＰＵＦに限定する必要はない。本発明では、〈物理的にクローン不可能な機能〉ではなく、〈物理的書き換え不可能性〉を有する認証装置をＰＵＦに代わり物理アドレスとする方法を提案する。
【先行技術文献】
【特許文献】
【０１４３】
【特許文献１】特開２００９−５１９４７３号公報
【特許文献２】特開２０１５−２０１８８４号公報
【特許文献３】国際公開第ＷＯ２０１１１１８５４８Ａ１号明細書
【特許文献４】特開２０１３−１３１８６８号公報
【特許文献５】特開２０１５−１３９０１０号公報
【非特許文献】
【０１４４】
【非特許文献１】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.
【発明の概要】
【発明が解決しようとする課題】
【０１４５】
本発明は上記事情を鑑みて成されたものであり、「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を秘密鍵として提供し、公開台帳システムのための電子署名技術をハードウェアのネットワーク管理に利用する方法を提供することを目的とする。
【課題を解決するための手段】
【０１４６】
上記課題を解決するため、本発明による認証ネットワークは、複数の論理ノードからなる論理ネットワークと、複数の物理ノードからなる物理ネットワークとからなる。前記複数の物理ノードはそれぞれ少なくとも一つの認証コアからなり、前記複数の論理ノードはそれぞれ前記認証コアに接続し、前記認証コアは固有の物理的乱雑さを有する半導体チップからなり、前記半導体チップはメモリセルアレイおよび周辺領域からなり、前記メモリセルアレイは所定のアドレス形式に従って配列された複数のメモリセルからなる。前記物理的乱雑さは、或る物理的過程によって前記メモリセルアレイ内で生成する不良ビットのアドレスの組み合わせとして生成され、所定の方法で読み出され、前記半導体チップの周辺領域に含まれる特殊内部メモリ内に電子情報として記録され、また、前記半導体チップにおいて、物理乱数コードが、前記特殊内部メモリに記録された電子情報に応じて生成される前記物理的乱雑さを反映する。前記認証コアは前記物乱数コードに基づいて秘密鍵を生成し、前記秘密鍵に基づいて鍵生成装置が生成する公開鍵を出力する。前記公開鍵は前記認証コアにリンクした前記論理ノードの論理アドレスとなり、前記秘密鍵は前記物理ノードの物理アドレスとなる。前記論理ノードおよび前記物理ノードは前記秘密鍵および前記公開鍵によって一対一にリンクされ、前記秘密鍵は前記認証コア内部に閉じ込められている。【０１４７】
前記不良ビットのアドレスの組み合わせは、特殊モード取得コードによって取得する。【０１４８】
前記特殊モード取得コードは、前記不良ビットのアドレス、前記メモリセルアレイ内の前記複数のメモリセルのそれぞれにアクセスする方法を選択するアクセスモード、および、書込み、消去、読み出しの動作を選択する動作モードからなる。【０１４９】
前記複数のメモリセルは、前記所定のアドレス形式に従いアドレス上に分布し、前記アドレスは、半導体表面上の前記メモリセルアレイ内でそれぞれＸ軸およびＹ軸に平行する、行および列の交差点にしたがって分布し、前記アドレスの集合は、前記Ｙ軸方向に沿って第一および第二の行群に分割される。【０１５０】
前記アクセスモードは、第一のテストモード、第二のテストモード、および第三のテストモードからなる。前記第一のテストモードは、前記Ｘ軸上で任意に選ばれた列に対して、前記第一および第二の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第二のテストモードは、前記Ｘ軸上で任意に選ばれた前記列に対して、前記第一の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは、前記第二の行群内の、前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスする。【０１５１】
まず、前記第一のテストモードでアクセスするすべてのメモリセルに第一の値を書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが、前記メモリセルアレイ内の前記不良ビットの分布から生成される。【０１５２】
前記アクセスモードは、第二および第三のテストモードよりなり、前記第二のテストモードは、前記Ｘ軸上で任意に選ばれた列に対して、前記第一の行群を通して前記Ｙ軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは、前記第二の行群内の、前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスする。【０１５３】
まず、前記第三のテストモードでアクセスするすべてのメモリセルに第一の値に書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが、前記メモリセルアレイ内の前記不良ビットの分布から生成される。【０１５４】
前記認証コアは、前記物理乱数コード、および、外部からの入力コードを元に、秘密鍵を生成し、前記認証コアは、前記秘密鍵、および、前記入力コードを元に、鍵生成装置が生成する公開鍵を出力する。【０１５５】
前記入力コードは、前記認証コアを含む電子装置の正規ユーザーが任意に設定できる個別入力である。【０１５６】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要なデジタルコード情報からなり、前記デジタルコード情報は、少なくとも、パスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなる。【０１５７】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な生物学的情報からなり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなる。【０１５８】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な個人情報からなり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。【０１５９】
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求されるデジタルコード情報からなり、前記デジタルコード情報は、少なくとも、パスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなる。【０１６０】
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される生物学的情報であり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなる。【０１６１】
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される個人情報であり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。【０１６２】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要なデジタル情報であり、前記デジタルコード情報は、少なくとも、パスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などより選ばれる情報からなる。【０１６３】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な生物学的情報であり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、ＤＮＡ情報などより選ばれる情報からなる。【０１６４】
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な個人情報であり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。
【発明の効果】
【０１６５】
本発明によれば、真に物理的実態を持つネットワークノードに対して一意に割り当てられ、書き換え不可能な物理アドレスを秘密鍵として提供し、ブロックチェーンの技術をＩｏＴにまで拡張することが可能となる。
【図面の簡単な説明】
【０１６６】
【図１】ネットワークシステムの最小ユニットを説明する図。
【図２】通信階層の仕組みを説明する図。
【図３】論理ネットワークと物理ネットワークの関係を説明する図。
【図４】論理ネットワークと物理ネットワークの関係を説明する図。
【図５】論理ネットワークと物理ネットワークの関係を説明する図。
【図６】論理ネットワークと物理ネットワークの関係を説明する図。
【図７】公開鍵暗号の仕組みを説明する図。
【図８】暗号通貨の仕組みを説明する図。
【図９】暗号通貨の仕組みを説明する図。
【図１０】暗号通貨の送金の仕組みを説明する図。
【図１１】ブロックチェーンの仕組みを説明する図。
【図１２】ＭＡＣアドレスを使用する仕組みを説明する図。
【図１３】ＭＡＣアドレスの仕組みを説明する図。
【図１４】認証装置の仕組みを説明する図。
【図１５】認証装置を用いた通信方法の一例を示す図。
【図１６】認証装置を用いた通信方法の一例を示す図。
【図１７】認証装置を用いた通信方法の仕組みを示す図。
【図１８】入力コードと登録コードの一例を示す図。
【図１９】クライアント・サーバー型ネットワークの仕組みを示す図。
【図２０】認証装置を用いた通信方法の一例を示す図。
【図２１】認証装置の性能の一例を示す図。
【図２２】認証装置の性能の一例を示す図。
【図２３】認証装置の性能の一例を示す図。
【図２４】認証装置の性能の一例を示す図。
【図２５】認証装置の使用方法の一例を示す図。
【図２６】認証装置とブロックチェーンを併用したネットワークの概念を説明する図。
【図２７】認証層とブロックチェーンを併用したネットワークの通信階層の一例を示す図。
【図２８】認証装置を使用したビットコイン型送金処理の概念を説明する図。
【図２９】認証装置を搭載するチップ（認証コア）を構成要素とする情報機器の一例を示す図。
【図３０】認証装置を搭載するチップの構成要素の一例を示す図。
【図３１】乱数発生装置及びコード生成装置からなる認証装置を使った通信手段の一例を示す図。
【図３２】認証装置への入力である入力コード（チャレンジ）と出力である出力コード（レスポンス）の関係の一例を示す図。
【図３３】認証コアの構成要素の一例を示す図。
【図３４】スクランブル装置の構成要素の一例を示す図。
【図３５】認証装置への入力である入力コード（チャレンジ）と中間出力である中間コードの関係の一例を示す図。
【図３６】認証装置からの中間出力である中間コードと出力コードの関係の一例を示す図。
【図３７】認証コアの構成要素の一例を示す図。
【図３８】認証コアの構成要素の一例を示す図。
【図３９】認証コアの構成要素の一例を示す図。
【図４０】認証素子のセルアレイの一例を示す図。
【図４１】バーコード型乱数コードの一例を示す図。
【図４２】認証装置セルアレイとスクランブル装置セルアレイの配置の一例を示す図。
【図４３】認証素子が抵抗である例を説明する図。
【図４４】認証素子がキャパシタである例を説明する図。
【図４５】認証素子がＰＮ接合である例を説明する図。
【図４６】認証素子がショットキー接合である例を説明する図。
【図４７】認証素子がトランジスタである例を説明する図。
【図４８】認証素子がＤＲＡＭセルである例を説明する図。
【図４９】認証素子がトランジスタと抵抗変化（Re）ＲＡＭあるいは相変化（PC）ＲＡＭである例を説明する図。
【図５０】認証素子が磁気抵抗ＲＡＭである例を説明する図。
【図５１】認証素子が浮遊ゲートトランジスタである例（ＮＯＲフラッシュ）を説明する図。
【図５２】認証素子が浮遊ゲートトランジスタであるＮＡＮＤ型配列の例（ＮＡＮＤフラッシュ）を説明する図。
【図５３】認証素子がトランジスタであるＮＡＮＤ型配列の例（NAND−MROM）を説明する図。
【図５４】ＤＲＡＭ混載型認証装置とＣＰＵを組み合わせた認証コアの一例を示す図。
【図５５】ＤＲＡＭ混載型認証装置とＣＰＵを組み合わせた認証コアの一例を示す図。
【図５６】ＤＲＡＭ混載型認証装置とＣＰＵを組み合わせた認証コアの一例を示す図。
【図５７】認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。
【図５８】認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。
【図５９】認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。
【図６０】認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。
【図６１】認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。
【図６２】冗長ビット線群と正規ビット線群の配置の一例を示す図。
【図６３】冗長ビット線群と正規ビット線群の配置の一例を示す図。
【図６４】不良ビットを含むビット線を冗長ビット線と置き換える方法の一例を示す図。
【図６５】不良ビットを含むビット線を置き換える冗長ビット線にも不良ビットが発生している一例を示す図。
【図６６】行群Ａおよび行群Ｂの二つに分けられた認証素子アレイの一例を示す図。
【図６７】冗長コードの概念を説明する図。
【図６８】冗長コードの一使用例を説明する図。
【図６９】通常アクセスモードのアクセス方法の一例を説明する図。
【図７０】第一のテストモード１のアクセス方法の一例を説明する図。
【図７１】第二のテストモード２のアクセス方法の一例を説明する図。
【図７２】第一のテストモード１でアクセスしたセルを全て０書き込みした一例を示す図。
【図７３】第二のテストモード２でアクセスしたセルを全て１書き込みした一例を示す図。
【図７４】通常アクセスモードでアクセスしたセルを読み出した一例を示す図。
【図７５】通常アクセスモードでアクセスしたセルを読み出し生成したデータを出力コードとする方法の一例を示す図。
【図７６】行群Ａおよび行群ＢをＹ軸方向にサーチするいくつかの手順を示す図。
【図７７】不良ビットを含む行群Ｂ内の行を、行群Ａ内のある行と置き換える方法の一例を説明する図。
【図７８】不良ビットを含む行群Ｂ内の行を置き換える、行群Ａ内の行にもたまたま不良ビットが発生する一例を説明する図。
【図７９】行群Ａおよび行群ＢをＹ軸方向にサーチする手順を変更しながら、行群Ａ内の不良ビットを含む行との置き換えを避ける方法の一例を示す図。
【図８０】行群Ａから出力コードの一部を生成する方法の一例を示す図。
【図８１】行群Ａおよび行群Ｂから出力コードを生成する方法の一例を示す図。
【図８２】周辺回路に含まれる特殊内部メモリに記録された冗長データ（Fi,Ri）から生成するコードを乱数発生装置の出力として通信認証に利用する一例を示す図。
【図８３】周辺回路に含まれる特殊内部メモリに記録された冗長データ（Fi，Ri）をスクランブル装置に利用する一例を示す図。
【図８４】周辺回路に鍵生成装置を含めた一例を示す図。
【図８５】本発明の認証コアをブロックチェーンと併用し、論理ネットワークと物理ネットワークを一意に接続する方法の概念を説明する図。
【発明を実施するための形態】
【０１６７】
以下、本発明を実施するための最良の形態について、具体的に説明する。
【０１６８】
上述してきたように、物理的実態である半導体チップの内部にさまざまな工夫を駆使することにより、本発明による認証装置はチップに固有の形態として（書き換え不能の物理アドレス）を実現できる。この認証装置からの出力は一種の物理乱数であり、ブロックチェーンの電子署名で用いられる秘密鍵を生成するために使用することが可能である。
【０１６９】
これらの特徴を利用するための構成を精緻に設計することにより、論理ノードのネットワーク（論理ネットワーク）で威力を発揮するブロックチェーンの優れた性能を物理ノードのネットワーク（物理ネットワーク）に適用することが可能となる。以下図面を用いて具体的に説明してゆく。
【実施例１】
【０１７０】
図２５では、このような条件を満たす二つの異なる認証装置（第一の認証装置と第二の認証装置）が、それぞれ第一のノード２００１と第二のノード２００２に搭載されている。第一のノード２００１および第二のノード２００２は、信号伝達路１０００で接続され、所定のフォーマットに従ってプロトコル・データ・ユニットを交換できる。第一および第二の認証装置を追加した以外、図１と等価である。【０１７１】
図２６は、本発明に関連する認証装置を搭載したハードウェアが参加する物理ネットワークとブロックチェーンを活用する論理ネットワークの関係を説明する図面である。前記ハードウェアは物理的実態を持ち、物理ネットワークを構成するノードとなるので物理ノードである。認証装置が生成する（書き換え不可能な物理アドレス）を秘密鍵とする。公開鍵暗号によってこの秘密鍵と対をなす公開鍵を論理アドレスとする論理ノードが、この認証装置を搭載するハードウェアと対をなす。こうして、（書き換え不可能な物理アドレス）と論理アドレスが、Ｐ２Ｐ型ネットワークにおいて連結される。これは、ソフトウェアとハードウェアを改竄不可能な状態で連結したことに他ならない。【０１７２】
図２７は、本発明に関連する認証装置が論理アドレスと物理アドレスが連結された状態を示している。まず、認証装置はデータリンク層と物理層の間に認証層を形成し、公開鍵暗号で対をなす論理アドレスと物理アドレスは、認証層で認証アドレスに合成される。こうして論理層の上に配置される論理ノードと物理層の下に配置される物理ノードが改竄不可能な状態で連結される。
【実施例２】
【０１７３】
図２８は、処理（N-2，N-1）を財布（N-2）から財布（N-1）に対して行い、処理（N-1，N）を財布（N-1）から財布（N）に対して行い、処理（N，N+1）を財布（N）から財布（N+1）に対して行う場合の一例である。ただし、Ｎは、何らかの方法でネットワークに接続する物理ノードに割り付けられた任意の自然数であり、財布（N）は第Ｎのノードのことである。下段には公開鍵、ハッシュ値、電子署名を囲った矩形２００００が３つ並んでいる。これに対し、上段には、鍵生成装置と、認証装置および秘密鍵（書き換え不可能な物理アドレス）を含む矩形が３つ並んで存在する。【０１７４】
この認証装置は、図２９に示すように、第一のチップ１１０（認証コア）に含まれる認証装置６００に対応する。ＩＰアドレスや公開鍵をアドレスとする論理ノードと異なり、情報機器は物理的実態を持つものである。そこで、情報機器と論理ネットワークを関連付けるため、第一のチップ１１０は認証装置６００を搭載している。この意味で、第一のチップ１１０を情報機器１４０の認証コアと見なすことができる。第一のチップ１１０は、複数の他の（たとえばＮ−１個の）半導体チップ（第二のチップ１２０、…第Ｎのチップ１３０）と共に情報機器１４０を構成する。すなわち、図２８の上段に並んだ３つの矩形は、それぞれ情報機器に搭載される認証コア１００００である。【０１７５】
一方、図８のビットコインの財布に相当するものは下段の矩形であり、本発明では上段に認証コアが追加されている。さらに図１０と異なり、本発明では秘密鍵が認証コアに含まれており、物理的実態（半導体チップ）の中に閉じ込めることが可能である。【０１７６】
具体的に働き方を見るため、下段中央の財布（N）に着目する。ハッシュ値（N-1）は財布（N）の中身であり、一つ前の財布（N-1）で次の方法により生成する。まず、財布（N-1）のネットワーク上の論理アドレス（ビットコインではビットコインアドレス）である公開鍵（N-1）、財布（N-1）の中身であるハッシュ値（N-2）、および電子署名（N-2）をまとめてハッシュ化する。ハッシュ化にはハッシュ関数を用いればよい。ハッシュ関数は、MD2、MD4、MD5、RIPE-MD160、SHA-256、SHA-384、SHA-512など多数存在し、このうち一例としてビットコインではSHA-256を使用している。【０１７７】
財布（N-1）は、財布（N）のネットワーク上の論理アドレスである公開鍵（N）を取得し、ハッシュ値（N-1）と一緒に秘密鍵（N-1）で暗号化する。それを電子署名（N-1）とし、ハッシュ値（N-1）と共に財布（N）に転送する。財布（N）では、公開鍵（N）、ハッシュ値（N-1）および電子署名（N-1）をまとめてハッシュ化し、ハッシュ値（N）を生成し、電子署名（N）と共に財布（N+1）に転送する。電子署名（N-2）および電子署名（N）の生成方法は、電子署名（N-1）の生成方法と同様なので、説明を省略する。【０１７８】
このように、秘密鍵が認証コア１００００に含まれていること以外、図１０のビットコインの場合の説明とまったく同様である。したがって、本発明は従来のブロックチェーンと完全な整合性がある。【０１７９】
したがって、図１０との決定的な違いは認証コア１００００にある。下段の矩形２００００の中に納まっている公開鍵は、ビットコインのように財布のアドレスとして論理的に与えられたものではなく、実は、上段の矩形、すなわち、認証コア１００００によって所定の物理的生成プロセスを用いて生成されたものである。【０１８０】
上段の矩形、すなわち、認証コア１００００は、ネットワーク上の物理ノードを構成する半導体チップ（あるいは単にチップ）の一つである。一般に、半導チップは物理的実態であり、その存在をソフトウェアによって論理的に生成するものではない。【０１８１】
上段の矩形、すなわち、認証コア１００００は、すくなくとも認証装置、認証装置への入力となる何らかのコード情報（個別入力）、認証装置を使って生成する秘密鍵の３つを構成要素とする。【０１８２】
一例として、個別入力とはネットワーク上で動作する何らかのアプリを起動するためのパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、ＤＮＡ情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。【０１８３】
別の一例として、個別入力とはネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、ＤＮＡ情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。【０１８４】
更に別の一例として、個別入力とはネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、ＰＩＮコード、バーコード、ＱＲコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、ＤＮＡ情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。【０１８５】
あるいは、更に別の一例として、個別入力とは何等かの物理的プロセスにより認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための特殊モード取得コードなどである。ここで特殊モード取得コードは、少なくともチップ内部のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。【０１８６】
あるいは、個別入力とは、上記複数の個別入力の組み合わせにより構成されるものであても良い。いずれにしろ、こうして物理的実態である認証装置から生成した秘密鍵と、ネットワーク上の論理アドレスである公開鍵を具体的に結びつけることが可能となる。すなわち、本発明の認証コアによって、物理的実態である半導体チップ（ハードウェア）と論理ネットワーク（ソフトウェア）を有機能的に連結することが可能となる。【０１８７】
一方、ブロックチェーンの数少ない弱点の一つは５１％攻撃である。これは、秘密鍵の正規の利用者が二重処理を行うことによって発生する偽のブロックチェーンと、正規のブロックチェーンをどのように見分けるか、という問題である。上述したように、正規のブロックチェーンが不正の行われる以前から存在しているとすれば長いブロックチェーンを正規と認めることで解決することになっている。しかしながら、不正を働く攻撃側がブロックチェーンに参加する全世界の計算能力の５１％以上を支配した場合、後から発生したブロックチェーンを長くすることも不可能ではない。【０１８８】
本発明に関する上段の矩形、すなわち認証コア１００００に搭載される認証装置を用いれば、たとえ財布の正規の所有者あるいは利用者であっても認証コアを構成するチップから秘密鍵を取り出せないようにすることが可能である。【０１８９】
図２８を見ながら具体的に説明する。たとえば、秘密鍵（N）を用いて電子署名（N）を生成する方法から始める。まず財布（N）は、財布（N）の中身であるハッシュ値（N-1）と公開鍵（N）と電子署名（N-1）をまとめてハッシュ化し、ハッシュ値（N）を生成する。これは、財布（N）の内部に一時的に保存できる。次に、処理の転送先である財布（N+1）のネットワーク上の論理アドレスである公開鍵（N+1）を取得する。続いて、財布（N）にリンクする認証コア１００００のチップ内部に閉じ込めた秘密鍵（N）を用い、認証コア内部の鍵生成装置でハッシュ値（N）および公開鍵（N+1）をまとめて暗号化する。こうして電子署名（N）を生成する。最後に、生成した電子署名（N）とハッシュ値（N）を共に財布（N+1）に送付する。【０１９０】
このように処理（N，N+1）に必要な作業はすべて財布（N）の側で完結するので、秘密鍵を認証コアの外に出す必要がないことが判る。よって秘密鍵の乱用を防ぐことが可能となり、５１％攻撃を危惧する必要はなくなる。
【実施例３】
【０１９１】
図２９の例では、第一のチップ１１０が本発明に関する認証コアを構成している。このチップは、たとえば図３０のように、少なくとも認証装置６００と入出力制御モジュール８００を搭載している。この入出力制御装置８００は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含み、外部入出力５０を通じて外部とデータを交換することが可能である。【０１９２】
このように、電子装置を構成するチップは一つとは限らない。ネットワークを構成する物理ノードは、どれも少なくとも一つ以上のチップから構成されていると考えられる。一例として、図２９では、物理ノードとなる情報機器１４０が、第一のチップ１１０、第二のチップ１２０、…、第Ｎのチップ１３０から構成されている。このうち、必ずしもすべてのチップが本発明の認証装置を搭載している必要はない。図２９の例では、第一のチップ１１０のみが認証装置６００を搭載し、認証コアとなっている。【０１９３】
このような認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、あるいは認証装置の機能のみを持つチップとして単独で製造しても良い。また、認証装置は、入力コードを受け取る度に物理的乱雑さに基づいて出力コードを発生することが望ましい。電子装置が複数のチップで構成される場合、少なくとも一つのチップが本発明に関する認証装置を搭載することが必要である。【０１９４】
図３１は、図２９の認証装置６００の構成と使用方法の一例を示す概念図である。認証装置は少なくとも乱数発生装置６０１とコード生成装置６０２を含む。すなわち、乱数発生装置６０１でバーコード状の物理乱数コード｛d(i)｝を発生し、この乱数コードを、通信相手４００から受け取った入力コード｛a(i)｝と共にコード生成装置６０２に入力し、出力コード｛c(i)｝を生成する。ただし、ｉは１からＮまでの整数である。【０１９５】
一例として、通信相手４００は、図１４あるいは図２５の第二のノード２００２に対応する。一方、認証装置６００を搭載する物理ノードは、図１４あるいは図２５の第一のノード２００１に対応する。第二のノード２００２が物理ノードであれば、図３１は物理ノード同士の通信の概念図に相当する。【０１９６】
別の一例では、入力コード｛a(i)｝を図２８の個別入力とすることも可能である。この場合、通信相手４００は財布の利用者あるいは使用者のことである。【０１９７】
〈コード生成装置〉
いずれにしろ、通信相手４００が入力する入力コード（P，S，T，…）をバイナリ表示して０と１の数列に変換したものが｛a(i)｝である。さらに、乱数発生装置６０１が生成する物理乱数コード｛d(i)｝は０と１のランダムな集合である。続いて、入力コード｛a(i)｝及び物理乱数コード｛d(i)｝から、何らかの方法を用いて出力コード｛c(i)｝を生成する。これがコード生成装置の役割である。この出力コード｛c(i)｝を通信相手４００に返す。こうして、通信相手４００と認証装置の間で入力コード｛a(i)｝及び出力コード｛c(i)｝が交換されることになる。【０１９８】
一例として式１のように、出力コード｛c(i)｝を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はｘをｙで割った余りである。図３２は、入力コード｛a(i)｝及び物理乱数コード｛d(i)｝と、式１に基づいて出力される出力コード｛c(i)｝との関係を一覧表にしたものである。 
ｃ(ｉ) ＝ ｍｏｄ(ａ(ｉ) ＋ｄ(ｉ),２)            式１
【０１９９】
この方法を用いると変換の前後で０と１の数の割合に変化がないことが容易に想像される。これは、扱われるデータ量を安定化させるために必要な条件である。すなわち、式１の右辺に入力される情報量と、式１の左辺から出力されるデータ量がほぼ同等であることが求められる。なぜなら、入力情報量と出力情報量が大きく異なる場合、式１で定義される系の情報量は少ない方に合わせられ、結果として少なくともその差分だけ情報エントロピー（物理的乱雑さ）を失うことになるからである。情報エントロピーを失うということは、その分（出力の現実的無限性）を失う可能性があるので出来る限り避ける必要がある。【０２００】
〈乱数発生装置〉
乱数発生装置の具体的な構成については後で詳しく述べる。図３１の例では、乱数発生装置６０１とコード生成装置６０２が共に認証装置６００の構成要素となっている。一方、自明なので特に図示しないが、別の一例ではコード生成装置６０２を認証装置６００の外に置くことも可能である。この場合でもコード生成装置６０２が認証コア１００００の中に含まれていれば問題ない。あるいは更に別の一例では、コード生成装置を使用しない実施例も考えられる。この場合物理乱数コード｛d(i)｝が出力コード｛c(i)｝そのものになり、図２８の例では認証コアへの個別入力を省くことが可能となる。【０２０１】
コード生成装置６０２は、式１で概念的に説明されるようにプログラムで構成することが可能である。ここで、コード生成に一種のアルゴリズムを使用することになるが、物理乱数｛d(i)｝で物理的乱雑さを取り込むので問題ない。
【実施例４】
【０２０２】
本発明に関する認証コア１００００は、たとえば図３３のように、少なくとも認証装置６００と、認証制御装置８８０と、入出力制御装置８１０と、スクランブル装置８９０と、及び中間コード用バッファー９００とから構成され、チップに搭載することができる。【０２０３】
この入出力制御モジュール８１０は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置モジュール８９０は中間コードを生成し、この中間コードは入出力制御モジュール８１０とは独立した中間コード用バッファー９００に格納され、外部からの要請があっても中間コードを認証コア１００００の外部に出力されない。これは、中間コードを認証コア内に閉じ込めるためである。認証制御装置８８０は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。【０２０４】
外部入出力５０から入力コード｛a(i)｝が入力されると、入出力制御装置８１０は入力コード｛a(i)｝をスクランブル装置８９０に渡す。ただし、スクランブル装置８９０は、図３４が示すように、少なくとも乱数生成装置６０５およびコード生成装置６０６を構成要素とする。更にワード線制御回路、ビット線制御回路、データバッファーを含むことができる。【０２０５】
式２に基づいてスクランブル装置８９０が生成する中間コード｛f(i)｝は、中間コード用バッファー９００に一時格納され、認証制御装置８８０に引き渡される。ただし、式２の｛d(i+N)｝は、乱数発生装置６０５が生成する乱数コードであり、乱数発生装置６０１が生成する乱数コード｛d(i)｝とは別のものである。また、式２に従って中間コード｛f(i)｝を生成するコード生成装置６０６は、一般に図３１のコード生成装置６０２と同一である必要はない。しかしながら、認証コア１００００が１チップである場合、別の一例として、コード生成装置６０２がコード生成装置６０６を代換えすることも可能である。この場合、コード生成装置６０６の分だけチップ面積を節約することが可能となる。
ｆ(ｉ) ＝ ｍｏｄ(ａ(ｉ) ＋ｄ(ｉ＋Ｎ),２)              式２
【０２０６】
一例として図３５のように、中間コード｛f(i)｝を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はｘをｙで割った余りである。図３５は、入力コード｛a(i)｝及び物理乱数コード｛d(i+N)｝と、式２に基づいて出力される中間コード｛f(i)｝との関係を一覧表にしたものである。【０２０７】
認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置６００から取得した物理乱数コード｛d(i)｝と中間コード用バッファー９００から取得する中間コード｛f(i)｝とに応じ、式３に基づいて出力コード｛c(i)｝を生成する。 
ｃ(ｉ) ＝ ｍｏｄ(ｆ(ｉ) ＋ｄ(ｉ),２)            式３
【０２０８】
一例として図３６のように、出力コード｛c(i)｝を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はｘをｙで割った余りである。図３６は、中間コード｛f(i)｝及び物理乱数コード｛d(i)｝と、式３に基づいて出力される出力コード｛c(i)｝との関係を一覧表にしたものである。【０２０９】
この出力コード｛c(i)｝は、認証制御装置８８０内部のデータバッファーに一時格納する。入出力制御装置８１０は、認証制御装置８８０内部のデータバッファーから出力コード｛c(i)｝を取得し、外部入出力５０を通じてを認証コア１００００の外に出力する。ただし、中間出力｛f(i)｝および物理乱数コード｛d(i)｝および｛d(i+N)｝は認証コア１００００の内部に閉じ込められ、外部に出力されない。【０２１０】
また、自明のため特に図示しないが、本発明では、認証装置６００にスクランブル装置８９０を含ませることも出来る。その場合の詳しい説明は自明であるので省略する。
【実施例５】
【０２１１】
本発明に関する認証コア１００００は、一例として、図３７のように、少なくとも認証装置６００と、認証制御装置８８０と、入出力制御装置８１０と、鍵生成装置８９１と、から構成され、これらをチップに搭載することができる。【０２１２】
この入出力制御装置８１０は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。認証制御装置８８０は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。【０２１３】
外部入出力５０から個別入力として入力コード｛a(i)｝が入力されると、入出力制御装置８１０は入力コード｛a(i)｝を認証制御装置８８０に引き渡す。認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置６００から取得した乱数コード｛d(i)｝と入力コード｛a(i)｝とに応じ、式１に基づいて出力コード｛c(i)｝を生成する。生成した出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。これを鍵生成装置８９１に入力し、公開鍵を生成する。入出力制御装置８１０は、外部入出力５０を通じて公開鍵を認証コア１００００の外部に出力する。一方、秘密鍵をチップ内部に閉じ込めておくことが可能となる。【０２１４】
あるいは、外部入出力５０から個別入力として特殊モード取得コードが入力される場合、入出力制御装置８１０は特殊モード取得コードを認証制御装置８８０に引き渡す。認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードに従って認証装置６００から取得した乱数コード｛d(i)｝を出力コード｛c(i)｝として出力する。この場合式１の変換を必ずしも必要としない。この出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。これを鍵生成装置８９１に入力し、公開鍵を生成する。入出力制御装置８１０は、外部入出力５０を通じて公開鍵を認証コア１００００の外に出力する。一方、秘密鍵をチップ内に閉じ込めておくことが可能となる。【０２１５】
あるいは、外部入出力５０から個別入力として特殊モード取得コードおよび入力コード｛a(i)｝が入力される場合、入出力制御装置８１０は特殊モード取得コードおよび入力コード｛a(i)｝を認証制御装置８８０に引き渡す。認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがって認証装置６００から取得した乱数コード｛d(i)｝と入力コード｛a(i)｝とに応じ、式１に基づいて出力コード｛c(i)｝を生成する。生成した出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。これを鍵生成装置８９１に入力し、公開鍵を生成する。入出力制御装置８１０は、外部入出力５０を通じて公開鍵を認証コア１００００の外に出力する。一方、秘密鍵をチップ内に閉じ込めておくことが可能となる。
【実施例６】
【０２１６】
本発明に関する認証コア１００００は、一例として、図３８のように、少なくとも認証装置６００と、認証制御装置８８０と、入出力制御装置８１０と、スクランブル装置８９０と、中間コード用バッファー９００と、鍵生成装置８９１とから構成され、これらをチップに搭載することができる。【０２１７】
この入出力制御装置８１０は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置８９０が生成する中間コードは、入出力制御モジュール８１０とは独立した中間コード用バッファー９００に格納され、外部からの要請があっても中間コードを認証コア１００００の外部に出力しない。これは、中間コードを認証コア内部に閉じ込めるためである。また、認証制御装置８８０は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。【０２１８】
外部入出力５０から個別入力として入力コード｛a(i)｝が入力されると、入出力制御装置８１０は入力コード｛a(i)｝をスクランブル装置８９０に渡す。ただし、スクランブル装置８９０は、図３４が示すように、少なくとも乱数生成装置６０５およびコード生成装置６０６を構成要素とする。更にワード線制御回路、ビット線制御回路、データバッファーを含むことができる。【０２１９】
式２に基づいてスクランブル装置８９０が生成する中間コード｛f(i)｝は、中間コード用バッファー９００に一時格納され、認証制御装置８８０に引き渡される。ただし、式２の｛d(i+N)｝は、乱数発生装置６０５が生成する乱数コードであり、乱数発生装置６０１が生成する乱数コード｛d(i)｝とは別のものである。また、式２に従って中間コード｛f(i)｝を生成するコード生成装置６０６は、一般に図３１のコード生成装置６０２と同一である必要はない。しかしながら、認証コア１００００が１チップである場合、別の一例として、コード生成装置６０２がコード生成装置６０６を代換えすることも可能である。この場合、コード生成装置６０６の分だけチップ面積を節約することが可能となる。【０２２０】
一例として図３５のように、中間コード｛f(i)｝を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はｘをｙで割った余りである。図３５は、入力コード｛a(i)｝及び物理乱数コード｛d(i+N)｝と、式２に基づいて出力される中間コード｛f(i)｝との関係を一覧表にしたものである。【０２２１】
認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置６００から取得した物理乱数コード｛d(i)｝と中間コード用バッファー９００から取得する中間コード｛f(i)｝とに応じ、式３に基づいて出力コード｛c(i)｝を生成する。【０２２２】
一例として図３６のように、出力コード｛c(i)｝を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はｘをｙで割った余りである。図３６は、中間コード｛f(i)｝及び物理乱数コード｛d(i)｝と、式３に基づいて出力される出力コード｛c(i)｝との関係を一覧表にしたものである。【０２２３】
この出力コード｛c(i)｝は、認証制御装置８８０内部のデータバッファーに一時格納する。中間コード｛f(i)｝および物理乱数コード｛d(i)｝および｛d(i+N)｝は認証コア１００００の内部に閉じ込められ、外部に出力されない。【０２２４】
また、自明のため特に図示しないが、本発明では、認証装置６００にスクランブル装置８９０を含ませることも出来る。その場合の詳しい説明は自明であるので省略する。【０２２５】
このように生成した出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。これを鍵生成装置８９１に入力し、公開鍵を生成する。入出力制御装置８１０は、外部入出力５０を通じて公開鍵を認証コア１００００の外部に出力する。一方、秘密鍵を認証コア内部に閉じ込めておくことが可能となる。【０２２６】
あるいは、外部入出力５０から個別入力として特殊モード取得コードが入力される場合、入出力制御装置８１０は特殊モード取得コードをスクランブル装置８９０に渡す。スクランブル装置８９０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードに従ってスクランブル装置８９０から取得した乱数コード｛d(i+N)｝を中間コード｛f(i)｝として出力する。これを中間コード用バッファー９００に一時格納する。この場合、式２の変換を必ずしも必要としない。【０２２７】
この中間コード｛f(i)｝は、特殊モード取得コードと共に認証制御装置８８０に引き渡される。認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがって認証装置６００から取得した乱数コード｛d(i)｝と中間コード｛f(i)｝とに応じ、式３に基づいて出力コード｛c(i)｝を生成する。生成した出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。【０２２８】
あるいは、外部入出力５０から個別入力として特殊モード取得コードおよび入力コード｛a(i)｝が入力される場合、入出力制御装置８１０は特殊モード取得コードおよび入力コード｛a(i)｝をスクランブル装置８９０に渡す。スクランブル装置８９０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがってスクランブラー８９０から取得した乱数コード｛d(i+N)｝と入力コード｛a(i)｝とに応じ、式２に基づいて中間コード｛f(i)｝を生成する。これを中間コード用バッファー９００に一時格納する。【０２２９】
この中間コード｛f(i)｝は、特殊モード取得コードと共に認証制御装置８８０に引き渡される。認証制御装置８８０は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがい、認証装置６００から取得した乱数コード｛d(i)｝および中間コード｛f(i)｝を用いて式３に基づいて出力コード｛c(i)｝を生成する。生成した出力コード｛c(i)｝は、図２８の例では秘密鍵として機能する。【０２３０】
いずれにしろ、こうして生成した秘密鍵を鍵生成装置８９１に入力し、公開鍵を生成する。【０２３１】
あるいは、図３９に示すように、上記中間コード｛f(i)｝を図２８の秘密鍵とし鍵生成装置８９１に入力して公開鍵を生成する。【０２３２】
入出力制御装置８１０は、このようにして得られた公開鍵を、外部入出力５０を通じて認証コア１００００の外部に出力する。一方、秘密鍵は認証コア１００００の内部に閉じ込めておくことが可能である。
【実施例７】
【０２３３】
図４０は、認証装置を構成する認証装置セルアレイの全部あるいはその一部を切り出したものである。交差点上に認証素子９７７が配置されており、この一例では行数がＮで列数がＭである。一般に、ＮやＭは自然数である。メモリチップの場合、行方向にビット線群を配置し、列方向にワード線群を配置する。あるいは反対に、行方向にワード線群を配置し、列方向にビット線群を配置する。【０２３４】
行方向の同一の線（ビット線あるいはワード線）に連なった認証素子群に関わる何らかの物理的性質に応じ、対応する行番号に白、または黒の水平線を割り当てることにする。このとき、図４１に示すようにバーコード状の模様が得られる。白と黒の割り当てが物理的にランダムに決定される場合、このバーコード状の模様は物理的にランダムになる。ここで行番号を｛i｝（ただしｉは自然数とする）とすると、バーコード状の模様は上記物理乱数コード｛d(i)｝に対応する。この物理乱数コード｛d(i)｝が図３１のバーコードに対応する。【０２３５】
図３８および図３９のようにスクランブル装置８９０を併用する場合、図４０の認証装置セルアレイに加えてスクラブル装置セルアレイも必要になる。図４２は、Ｎ行Ｍ列の認証装置セルアレイ６１１とＫ行Ｍ列のスクラブル装置セルアレイ６１４のレイアウトの一例を示す図面である。ここで、認証素子９７７は、認証装置セルアレイ６１１およびスクランブル装置セルアレイ６１４に渡って市松模様状に配置される。【０２３６】
図４３は、認証素子９７７の一例を示す図である。ワード線５０３とビット線９０２の交差するところに抵抗９８５を配置している。一般に、抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、認証素子としては不良ビットとなる。【０２３７】
図４３の認証素子９７７を、抵抗９８５からキャパシタ９８２に変更すると、図４４のようになる。一般に、キャパシタに高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊は確率的に発生し、認証素子９７７として不良ビットとなる。【０２３８】
図４３の認証素子９７７を、抵抗９８５からＰＮ接合９８６に変更すると、図４５のようになる。一般に、ＰＮ接合に逆方向高電圧を印加すると稀に接合破壊を起こして逆電圧印可時にも電流を流さすようになる。このような接合破壊は確率的に発生し、認証素子９７７として不良ビットとなる。【０２３９】
図４３の認証素子９７７を、抵抗９８５からショットキー接合９８７に変更すると、図４６のようになる。一般に、ショットキー接合に高電圧を印加すると稀に接合破壊を起こし整流作用を示さなくなる。このような接合破壊は確率的に発生し、認証素子９７７としては不良ビットとなる。【０２４０】
図４３の認証素子９７７を、抵抗９８５からトランジスタ９８３に変更すると、図４７のようになる。一般に、トランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でＰＮ接合が接合破壊を起こし、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。いずれにしろ認証素子９７７として不良ビットとなる。【０２４１】
図４３から図４７は、マスク型リードオンリーメモリ（MASK-ROMまたはMROM）のメモリセルでもある。この例のようにメモリセルを市松状に配列している場合その配列をＮＯＲ型という。ＮＯＲ型配列の特徴は、メモリセル毎にビット線コンタクトとワード線コンタクトがあることである。従って、これらはＮＯＲ型ＭＲＯＭ、あるいは、単にＭＲＯＭという。【０２４２】
図４３の認証素子９７７を、抵抗９８５からトランジスタ９８３およびキャパシタ９８２よりなるダイナミック・ランダム・アクセス・メモリ（DRAM）セル９８４に変更すると、図４８のようになる。一般に、トランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でＰＮ接合が接合破壊し、トランジスタをオフにすることが不可能になる。これもトランジスタとしては不良となる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。あるいは、キャパシタに高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊は確率的に発生し、キャパシタとしては不良となる。トランジスタおよびキャパシタのどちらか一方が不良を起こしてもＤＲＡＭセルは正常に動作しなくなり、認証素子９７７として不良ビットとなる。【０２４３】
図４８で認証素子９７７として採用されているＤＲＡＭセル９８４のキャパシタ９８２を可変抵抗９８１に変更すると、図４９の可変抵抗メモリセル９８９になる。この可変抵抗９８１の抵抗値が電圧印可で制御できる場合、この素子は抵抗変化メモリ（ReRAM）である。加熱によって可変抵抗の抵抗値が制御できる場合、この素子は相変化メモリ（PCRAM）である。いずれにしろ、メモリセル内のトランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でＰＮ接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。これもトランジスタとしては不良となる。あるいは、可変抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、可変抵抗素子としては不良となる。いずれにしろ認証素子９７７として不良ビットとなる。【０２４４】
図４８で認証素子９７７として採用されているＤＲＡＭセル９８４のキャパシタ９８２を磁気抵抗９８０に変更すると、図５０の磁気抵抗メモリセル９９０になる。この磁気抵抗が巨大磁気抵抗（GMR）膜である場合、この素子は磁気抵抗メモリ（MRAM）である。この磁気抵抗がスピン注入膜（STT）である場合、この素子はＳＴＴ型磁気抵抗メモリ（STT-MRAM）である。いずれにしろ、メモリセル内のトランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でＰＮ接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。これもトランジスタとしては不良となる。あるいは、磁気抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、磁気抵抗素子としては不良となる。いずれにしろ認証素子９７７として不良ビットとなる。【０２４５】
図４７で認証素子９７７として採用されているトランジスタ９８３を浮遊ゲートトランジスタ９８８に変更すると、図５１のようにＮＯＲフラッシュのメモリセルになる。一般に、浮遊ゲートトランジスタのトンネル膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、浮遊ゲートトランジスタとしては不良となる。あるいは、浮遊ゲートトランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でＰＮ接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これらも不良とみなす。いずれにしろ認証素子９７７として不良ビットとなる。【０２４６】
図４８から図５１の例も、メモリセル内にビット線コンタクトとワード線コンタクトが一つずつあるのでＮＯＲ型配列である。【０２４７】
図５１のワード線５０３とビット線９０２を交換し、ビット線コンタクトを認証素子９７７から取り除くと、図５２のようになる。このようにメモリセルからビット線コンタクトを取り除いた配列をＮＡＮＤ型配列という。これは、浮遊ゲートトランジスタをＮＡＮＤ型配列にしたものであり、ＮＡＮＤフラッシュと呼ばれる。一般に、浮遊ゲートトランジスタのトンネル膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、浮遊ゲートトランジスタとしては不良となる。あるいは、浮遊ゲートトランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその近辺でＰＮ接合が接合破壊し、浮遊ゲートトランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これらも不良とみなす。いずれにしろ認証素子９７７として不良ビットとなる。【０２４８】
図５２で認証素子９７７として採用されている浮遊ゲートトランジスタ９８８をトランジスタ９８３に変更すると、図５３のようになる。これは、トランジスタ９８３をＮＡＮＤ型配列にしたものであり、NAND-MROMと呼ばれる。ＭＲＯＭは、上述したように、マスク型リードオンリーメモリの略であり、メモリセルとしては抵抗、ＰＮ接合、ショットキー接合、トランジスタなどマスクを使って通常の半導体製造プロセスで製造できるものなら何でもＮＡＮＤ型に配列可能である。本例では、たまたまＮＡＮＤ型配列にトランジスタ９８３を使ったまでであり、本実施形態の概念を逸脱しない限り抵抗９８５、キャパシタ９８２、ＰＮ接合９８６、ショットキー接合９８７などトランジスタ９８３などと置き換えてNAND-MROMとすることが可能である。また、高電圧を印加すると、上述の複数の例と同様に、認証素子９７７の一部または全部が稀に破壊される。【０２４９】
あるいは、抵抗素子、キャパシタ、ＰＮ接合、ショットキー接合、トランジスタ、浮遊ゲートトランジスタ、ＤＲＡＭセル、ＲｅＲＡＭセル、ＰＣＲＡＭセル、ＭＲＡＭセル、STT-MRAMセル、あるいは他のどのようなメモリセルを認証素子９７７として採用しようとも、製造段階に不慮の要因により一部の認証素子が不良を起こす場合がある。【０２５０】
いずれにしろ、このように不良を起こした認証素子を含む行を黒とし、それ以外の行を白とすれば、図３１および図４１のようにバーコード状の物理乱数コードが生成できる。この物理乱数コードが図３３、図３７、図３８および図３９の認証装置６００内部の乱数発生装置６０１やスクランブル装置８９０内部の乱数発生装置６０５の出力となる。（
【実施例８】
【０２５１】
認証素子９７７として既に量産されているメモリ製品のメモリセルを用いる場合、認証装置を安価に大量供給することが可能である。図４３から図５３の各種認証素子において、市場で最も受け入れられているのは図４７のＭＲＯＭ、図４８のＤＲＡＭ、図５１のＮＯＲフラッシュ、および図５２のＮＡＮＤフラッシュセルである。中でもＤＲＡＭはＣＰＵを動かすのに不可欠な半導体記憶装置である。したがって、図５４から図５６のように、ＣＰＵと張り合わせて認証コア１００００とすることが可能である。【０２５２】
図５４は、認証装置６００を含むＤＲＡＭチップにその他認証制御モジュール一式３０３０を混載し、そのＤＲＡＭチップとＣＰＵチップを張り合わせるようにマウントして認証コア１００００とする一例を示す鳥瞰図である。【０２５３】
図５５は、認証装置６００を含むＤＲＡＭチップと、その他認証制御モジュール一式３０３０を含むＣＰＵチップとを張り合わせるようにマウントして認証コア１００００とする一例を示す鳥瞰図である。【０２５４】
図５６は、認証装置６００を含むＤＲＡＭチップと、ＣＰＵチップとを張り合わせるようにマウントし、その他認証制御モジュール一式３０３０を含む外部モジュールとリンクさせて認証コア１００００とする一例を示す鳥瞰図である。【０２５５】
図５４から図５６において、その他認証制御モジュール一式３０３０とは、図３０、図３１、図３３、図３４、図３７、図３８図３９などで説明してきた認証装置と共に併用される種々の装置群の総称である。実施態様に応じてその内容は最適化されることが望ましい。【０２５６】
図５４から図５６の例は、まさにOne-CPU-One-Voteを体現するものである。しかしながら、本実施形態に関するほんの一部に過ぎず、図５４から図５６を用いて説明した概念を大きく逸脱しない限り、より多様な組み合わせが可能である。
【実施例９】
【０２５７】
図５７のように、本発明に関わる認証装置６００とスクランブル装置８９０は、同一のチップ（例えば第一のチップ１１０）に集積することが可能である。それ以外の装置、例えば、認証制御装置８８０、中間コード用バッファー９００、入出力制御装置８１０、鍵生成装置８９１などは第一のチップ１１０に搭載することも可能であるが、第一のチップ１１０以外の認証コアを構成する別の電子部品等に搭載することも可能である。【０２５８】
図５８では、入出力制御装置８１０も第一のチップ１１０に搭載した一例である。【０２５９】
図５９は、更に認証制御装置８８０および中間コード用バッファー９００も第一のチップ１１０に搭載した例である。【０２６０】
図６０は、更に鍵生成装置８９１も第一のチップ１１０に搭載した例である。すなわち、これは、１チップ認証コアとなる。【０２６１】
図６１のように、本発明に関わる認証装置６００とスクランブル装置８９０を、それぞれ異なる二つのチップ（第一のチップ１１０および第二のチップ１２０）に集積することが可能である。それ以外の装置、例えば、認証制御装置８８０、中間コード用バッファー９００、入出力制御装置８１０、鍵生成装置８９１などは、第一のチップ１１０あるいは第二のチップ１２０に搭載することも可能であるが、第一のチップ１１０および第二のチップ１２０以外の認証コアを構成する別の電子部品等に搭載することも可能である。
【実施例１０】
【０２６２】
認証素子９７７が量産メモリチップ製品のメモリセルである場合を考える。ただし、ＤＲＡＭ、ＮＯＲフラッシュ、ＮＡＮＤフラッシュ、ＭＲＯＭ等、既に市場に広く出回っているものばかりでなく、ＲｅＲＡＭ、ＰＣＲＡＭ、ＭＲＡＭ、STT-MRAM等、今後市場に広く出回る可能性を秘めたものなども認証素子９７７として採用可能である。あるいは、ＮＡＮＤ型配列、ＮＯＲ型配列に関わらず、今後新たに考案されるメモリセルも採用可能である。【０２６３】
ＮＡＮＤ型配列とＮＯＲ型配列の違いは、上述したように、単にメモリセルにビット線コンタクトが含まれるかどうかの違いのみであり、ビット線９０２とワード線５０３の交点にメモリセルが配置されていることに違いはない。したがって、以下本実施形態で説明する方法は、ＮＡＮＤ型配列とＮＯＲ型配列双方に有効ある。【０２６４】
通常量産メモリチップ製品は、図６２あるいは図６３のように、メモリセルアレイを冗長ビット線群に割り当てられる領域と正規ビット線群に割り当てられる領域とに分割する。メモリチップのビット容量は、正規ビット線群に属するメモリセルの数で決まっている。冗長ビット線群に属するメモリセルは、正規ビット線群に属するメモリセルに不良ビットが見つかったときのバックアップであり、メモリチップのビット容量には加えられない。【０２６５】
図６２は、メモリセルアレイを横断するビット線群を冗長ビット線群と正規ビット線群に分ける一例を説明する図面である。図６３は、メモリセルアレイを横断するビット線群を冗長ビット線群と正規ビット線群に分ける別の一例を説明する図面である。図６２では冗長ビット線群および正規ビット線群はセルアレイ上にそれぞれ一つに束ねられているが、図６３ではセルアレイ上にそれぞれ分割配置されている。【０２６６】
以下、図６２のように、冗長ビット線群と正規ビット線群がそれぞれ一つに束ねられる例を用いて説明を進めるが、図６３の場合であっても実施形態の説明はほぼ同様なので省略する。また、ビット線とワード線を交換しても実施形態の説明はほぼ同様なので省略する。【０２６７】
図６４は、図４０に対応する認証素子のセルアレイを正規ビット線群とし、紙面上方に冗長ビット線群を配置したものである。正規ビット線群の行数はＮで、冗長ビット線群の行数はＬである。いま正規ビット線群の中のｍ本のビット線に不良ビットが存在するものとする。ただし、Ｌ、Ｎ、ｍは自然数であり、ＮはＬより大きく、Ｌはｍより大きいものとする。【０２６８】
量産メモリチップ製品は出荷前に工場でテストを行い、正規ビット線群に含まれるメモリセルに不良ビットがないかどうか検査する。簡単に回復可能な不良は必要に応じて回復し、そうでない不良が見つかった場合はその対応するメモリセルのアドレスを記録に取り、そのメモリセルへのアクセス禁止処置を行う。同時にアクセス禁止されたメモリセルを冗長ビット線群の中の別のメモリセルへ読み替えるようアドレス再割り付け処置をコード化してメモリチップ内の周辺領域に設けられた小容量の不揮発性メモリ（一例としてヒューズメモリなど）に書き込む。その後メモリチップをアセンブリし、メモリチップ製品として出荷する。【０２６９】
より具体的には、図６４のように、正規ビット線群の中で何らかの不良が発生した素子、不良ビット３７７を含むビット線のすべてのメモリセルへのアクセスを禁止し、当該ビット線を冗長ビット線群中の別のビット線へのアクセスに置き換える。つまり、セル毎にアクセス禁止・アドレス再割り付けの処置を行うのではなく、ビット線あるいはワード線毎にアクセス禁止・アドレス再割り付けの処置を施す。【０２７０】
ここで、図６４の読み替えＡ、読み替えＢについて考えよう。冗長ビット線群の中からどのビット線を読み替えＡに選び、どのビット線を読み替えＢに選ぶかは出荷前の検査時に決定される。ここで、Ｌ本の冗長ビット線の中からｍ本再割り付けに使用する数は順列 P(L,m) で与えられる。ただし、Ｎ本の正規ビット線群の中から不良ビットによってアクセス禁止処置を施されるビット線の数をｍとする。この場合の数は組み合わせ C(N,m) で与えられる。【０２７１】
出荷前検査時に発覚する不良ビットは、製造工程で何らかの原因により発生する。あるいは、検査時に意図的に高電界を印加し偶発的に不良を起こしても良い。いずれにしろ、この不良の発生はどのようなアルゴリズムにも依存しないため物理的にランダムなものと考えられる。こうして量産メモリチップ製品から物理乱数コードを生成できることが判る。その自由度は、少なくとも組み合わせ C(N,m) で与えられる。冗長ビット線群の中でどのビット線を再割り付けに使用するかも含めて考えると、C(N,m)×P(L,m) である。【０２７２】
ところで、図６５に示すように、たまたま再割り付けに選んだ冗長ビット線にも不良ビットが発生したメモリセルが存在する可能性もある。このような冗長ビット線の数をｎとすると、上記場合の数は、C(N,m)×P(L-n,m) となる。ただし、ＬがＮよりずっと小さい自然数である限りｎはｍよりずっと小さい自然数であると期待される。特に量産メモリ製品の場合現実にはｎはＬよりずっと小さな数である。したがって、概算ではＬ−ｎをＬと見なすことが許容される。そうでなければ量産品にならない。【０２７３】
上述したような条件を満たすメモリチップ製品の一例としてＤＲＡＭの場合を考えよう。このとき認証素子９７７は、図４８のようにＤＲＡＭセルである。典型的な４ギガビットＤＲＡＭ製品の場合、たとえば、全ビット線数６５５万本に対して冗長ビット線数は１５万３千本程度である。すなわち、何らかの事情によって正規ビット線群内のビット線に不良ビットが発生する行数は、最大１５万３千程度まで量産ＤＲＡＭとして許容できる。このとき冗長ビット線への再割り付けの場合の数は６５５万の内から１５万３千を選ぶ組み合わせに等しい。計算すると約１０の３１５２８９乗になる。【０２７４】
ビット線の代わりにワード線を行方向に配置した場合では、ワード線数４４０万本から３、０４４本を選ぶ組み合わせの数を計算すれば良い。これは、およそ２．９×１０の１０９３８乗となる。前者の場合の数より大分少なくなるが、それでも恐ろしく大きな数である。【０２７５】
上述したようにＭＡＣアドレスの自由度は７０兆である。これは７×１０の１３乗程度である。来るＩｏＴ向けに１００兆個以上の識別ＩＤコードを準備するとしても高々１０の１４乗あれば十分である。したがって、冗長ビット線あるいは冗長ワード線による再割り付けによる場合の数は、現実的にほぼ無限大と考えてよい。【０２７６】
こうして、改めて認証装置６００用の領域を設けなくても量産メモリチップ製品の製品管理のためにあらかじめ設置されているアクセス禁止・再割り付け処置用の特殊コードを記録するメモリ、すなわちメモリチップ内の周辺領域に設けられた小容量の不揮発性メモリ（一例としてヒューズメモリなど）、を用いることによって現実的に無限大の物理的乱雑さを手に入れることが可能である。こうして（出力の現実的無限性）を満たすことが可能であることが判る。【０２７７】
これは、量産メモリチップ製品の製造プロセスになんら新たな工程を追加せず、チップ面積も犠牲にせず、本発明の認証装置６００を提供できることを意味している。【０２７８】
ところで、上述したアクセス禁止・再割り付け処置用の特殊コードを記録するメモリ（以下、特殊内部メモリと言う。）は、アセンブリ後メモリチップ外部に接続するための端子は特に設置されていない。したがって、通常アクセスモードでは特殊内部メモリに記録された情報にアクセスすることは不可能である。【０２７９】
以下、特殊内部メモリに記録された情報から物理乱数コードを取り出す方法の一例について簡単に説明する。【０２８０】
図６６は、行方向（Ｘ軸方向）および列方向（Ｙ軸方向）に認証素子９７７を配置する一例を示したものである。行方向の配線を行あるいは単に行、その群を行群あるいは行線群と呼ぶ。Ｙ線方向の配線をＹ線あるいは列群、その群をＹ線群あるいは列と呼ぶ。Ｘ線がビット線でＹ線がワード線の場合もあれば、反対にＸ線がワード線でＹ線がビット線の場合もある。【０２８１】
図６６のセルアレイは上部ＬＡ行の行からなる行群Ａと下部ＬＢ行の行からなる行群Ｂに分けられる。それぞれＹデコーダＡおよびＹデコーダＢによってアクセス制御される。【０２８２】
図３０、図３３、図３７、図３８、図３９の外部入出力５０を介して外部入力が認証コア１００００に入力される。この外部入力は、一例として図１４の信号伝達路１０００を介して第二のノード２００２から第一のノード２００１に入力される。あるいは別の一例として図２５の信号伝達路１０００を介して第一のノード２００１と第二のノード２００２の間で相互に入力される。あるいは別の一例として、この外部入力は、図１５の共通パスコード１４１０である。あるいは別の一例として、この外部入力は、図２０の共通パスコード１４１０、２４１０および３４１０である。あるいは別の一例として、この外部入力は、図１７の入力（P，S，T，…）である。あるいは別の一例として、この外部入力は、図１８の入力コード４０２である。あるいは別の一例として、この外部入力は、図２１から図２４の入力コードC、D、Q、Q1、Q2、Q3、…Qn、Qn+1である。あるいは別の一例として、この外部入力は、図３１の通信相手４００が入力する入力コード｛a(i)｝である。あるいは図３２および図３５の入力コード｛a(i)｝である。あるいは別の一例として、この外部入力は、図３４の入力である。あるいは別の一例として、この外部入力は、図２８および図３７から図３９の個別入力である。あるいは別の一例として、この外部入力は、後述する図８２の入力コード｛a(i)｝および図８３の入力である。【０２８３】
この外部入力として入力されるコードは、上述した冗長ビット線あるいは冗長ワード線に関する情報（冗長行情報）も含むことができる。それを特に冗長コードと呼ぶ。図６７では、冗長コードの一例としてアクセスモード、アドレス（ｘ、ｙ）および動作モードの組み合わせを考える。アクセスモードとして、第一のテストモード１、第二のテストモード２、第三のテストモード３、…および通常アクセスモードなどが考えられる。【０２８４】
第一のテストモード１はＹデコーダＡおよびＹデコーダＢに直接アクセスするアクセスモードである。第二のテストモード２はＹデコーダＡのみに直接アクセスするアクセスモードである。通常アクセスモードは基本的にＹデコーダＢに直接アクセスするが、特殊内部メモリ６０９に記録された情報（Fi，Ri）に応じてＹデコーダＡにも部分的にアクセスするアクセスモードである。ただし、Ｆｉは正規行群の中で不良ビットを含む行の行番号である。Ｒｉは冗長行群の中でＦｉとの読み替えに使用する行の行番号である。そしてｉは１からｍＢの自然数である。こうしてＹデコーダへのアクセス方法を選択し最終的に指定されたアドレス（ｘ、ｙ）のメモリセルにアクセスする。アクセス後動作モードで指定された動作をする。具体的には、半導体メモリの基本的動作である読み出し、消去、書き込みなどである。【０２８５】
図６８は、一例として行群Ｂに何らかの不良が発生した素子、不良ビット３７７が二つある場合を示している。それぞれ読み換え１および読み換え２によって行群Ａの行と読み換える。ここで行群Ａを冗長ビット線群、行群Ｂを正規ビット線群と見なせば、読み換え１および読み換え２の処置は、図６４および図６５を用いて説明した読み換えＡおよび読み換えＢに同じである。【０２８６】
行群Ａの中で不良ビットの発生した行の数をｍＡ、行群Ｂの中で不良ビットの発生した行の数をｍＢとすると、行群Ｂのみから生成する物理乱数コードの自由度は、組み合わせ C(LB，mB) である。行群Ａの自由度も加味すると、P(LA-mA，mB)×C(LB，mB) である。ただし、ＬＢはＬＡより大きく、ＬＡはｍＡとｍＢの大きい方よりより大きいものとする。【０２８７】
図６９は、図６８の行群のメモリセルを通常アクセスモードでアクセスする方法を説明するための図面である。すなわち、任意に決められたＸ軸上のアドレスに対し、行群Ｂ内の不良ビットの発生しなかった行にアクセスし、行群Ｂ内の不良ビットの発生した行（F1、F2、…）を、所定の方法で行群Ａ内の行（R1、R2、…）に読み換えてアクセスする。【０２８８】
図７０は、第一のテストモード１を説明するための図面である。すなわち、任意に決められたＸ軸上のアドレスに対し、行群Ａおよび行群Ｂに渡ってすべてのＹ軸上のメモリセルにアクセスする。【０２８９】
図７１は、第二のテストモード２を説明するための図面である。すなわち、任意に決められたＸ軸上のアドレスに対し、行群Ａ内すべてのＹ軸上のメモリセルにアクセスする。【０２９０】
さて、第一のテストモード１、第二のテストモード２、および通常アクセスモードを用いて、特殊内部メモリに記録した読み換えに関する情報（Fi、Ri）を取り出す方法について簡潔に説明しよう。【０２９１】
まず、図７２に示すように、第一のテストモード１に入り、任意に決められたＸ軸上のアドレス（選択Ｘ）に連なるＹ軸上のすべてのメモリセルにデータＤ（図の一例としてＤ=０）を書き込む。続いて、図７３に示すように、第二のテストモード２に入り選択Ｘに連なるＹ軸上のすべてのメモリセルに／Ｄ（図の一例として/D=1）を書き込む。ただし、／ＤはアンチＤであり、Ｄの反対の値を意味する。最後に、図７４のように、通常アクセスモードに入り選択Ｘに連なる行群Ｂ内のすべてのメモリセルを読むと、不良の発生したメモリセル（不良ビット３７７）にアクセスしたときのみ／Ｄ（この図の例の場合/D=1）となり、それ以外はＤ（この図の例の場合D=0）となる。ここで、／Ｄであったセルの存在するＹ軸上のアドレスがＦｉとなる。また、自明のため特に図示しないが、上述の例でＤ＝１および／Ｄ＝０にしてもかまわない。あるいはまた、自明のため特に図示しないが、最初に通常アクセスモードに入り選択Ｘに連なるＹ軸上のすべてのメモリセルをＤに書き込む。次に第二のテストモード２に入り、選択Ｘに連なるＹ軸上のすべてのメモリセルに／Ｄを書き込む。続いて通常アクセスモードに戻り、選択Ｘに連なる行群Ｂ内のメモリセルの内、値が／ＤになるセルのＹ軸上のアドレスを検索すればそれがＦｉとなる。いずれにしろ、最後にＤと／Ｄを行番号に従って並べるとバーコード状の物理乱数コード｛dB(i)｝が得られる。一例としてＤ=０の場合、図７５のように、バーコード状の物理乱数コード｛dB(i)｝が得られる。ただし、ｉは１からＬＢである。この｛dB(i)｝の自由度は、組み合わせ C(LB，m) である。【０２９２】
続いて、図６５で指摘したように、冗長ビット線群に不良ビットが存在する場合に対処する方法を説明する。【０２９３】
図７６は、行群Ａおよび行群ＢをそれぞれＹ軸方向にサーチするサーチ順Ａおよびサーチ順Ｂの例をいくつか取り上げたものである。サーチ順（１）は、行群Ａと行群Ｂの境界からトップおよびボトムの行に向かってそれぞれサーチするものである。サーチ順（２）は、それぞれ上方から下方に向かってサーチするものである。サーチ順（３）は、それぞれ下方から上方に向かってサーチするものである。サーチ順（４）は、それぞれトップおよびボトムから境界に向かってサーチするものである。サーチ順（５）は、それぞれ中央から下方に向かってサーチし、続いて中央に戻って上方にサーチするものである。以下図面通りなので説明を省略する。【０２９４】
まず一例として、図７７のように、サーチ順（１）を選択したとする。このとき、サーチＢに従い行群Ｂ内を境界からボトムに向かってサーチする。最初にヒットした不良ビット３７７を含む線の行番号をＦ１とする。続いてサーチＡに従い行群Ａ内を境界からトップに向かってサーチし、境界から１番目の行群Ｂ内の行の行番号Ｒ１をＦ１に対応させ（F1、R1）の組みを生成する。続いて行群Ｂに戻り行番号Ｆ１からサーチを再開する。行番号Ｆ２で再び不良ビット３７７ヒットするとしよう。サーチＡに従って対応する行群Ａ内の行番号Ｒ２をＦ２に対応させ（F2、R2）の組みを生成する。こうして、複数の（Fi、Ri）の組みが生成される。ただし、ｉは１からｍＢの自然数である。【０２９５】
ところが、このサーチ順（１）に従って選択された行群Ａ内の行にも不良ビット３７７が見つかることもある。一例として、図７８のように、行番号Ｒ２の行に不良ビットが発生している場合を考える。このとき、図７９のように、サーチ順を（１）から（２）に変更すると、Ｒ２はトップから最初の行番号に変更される。対応する行に不良ビット３７７が無ければこれをＲ２とする。そうでなければサーチ順をたとえば（５）に変更する。あるいは、（６）、（７）、…など更に他のサーチ順を選択することが可能である。ただし、サーチ順（１）および（２）に含まれるサーチＡと異なるサーチＡを含むようにしなければならない。【０２９６】
最終的に複数の（Fi、Ri）の組みが定まったら、これを特殊コードとして特殊内部メモリ６０９に記録する。ただし、この処置はアセンブリ前の検査段階で行う。【０２９７】
図８０は、行群Ａの中から読み換えに選択された行の行番号の組みを取り出す方法の一例を示す図である。まず、周辺回路の特殊内部メモリに保存される（Fi，Ri）を（Ri，Fi）に変換する。続いて行群Ａと行群Ｂを入れ替える。具体的にはＹデコーダＡとＹデコーダＢのアクセスを入れ替える。以下｛dB(i)｝を取得したのと同じように方法を繰り返す。こうして、行群Ａからも物理乱数コード｛dA(i)｝を取り出すことが可能となる。ただし、ｉは１からＬＡの自然数である。【０２９８】
図８１は、行群Ａおよび行群Ｂの両方から物理乱数コード｛d(i)｝を生成した例を示す図である。場合の数は、C(LA-mA,mB)×C(LB,mB) で計算できる。ただし、ｍＡは行群Ａ内の不良ビットを含む行の数であり、ｉは１からＬＡ＋ＬＢの自然数である。【０２９９】
こうして生成した（Fi，Ri）を量産メモリチップの周辺領域に設置した特殊内部メモリ６０９に保存する。（Fi，Ri）をｉが１からｍＢまで 、あるいは、１からｍＡ＋ｍＢまで保存するのに要するビット容量は大したことはない。たとえば４ギガビットＤＲＡＭの場合、全冗長ビット線数は１５万３千本程度である。量産品である限りｍＢはこの１５万３千よりはるかに少ない数になるはずである。ｍＡの数はｍＢより更にはるかに少ない。こうして特殊内部メモリ６０９はヒューズメモリなどの小容量不揮発性メモリで十分となる。【０３００】
こうして、特殊内部メモリ６０９に保存した（Fi，Ri）から物理乱数コード取り出すことが可能となる。それを式４で次のように書き表すことにする。
ｄ(ｉ) ＝ｆ(Ｆi,Ｒi)                  式４
関数ｆは任意の関数である。たとえば、２バイトを一つのメモリユニットと見なした時、メモリユニットの左半分にＦｉを記し、右半分にＲｉを記す。ただし、各メモリユニットのアドレスをｉとする。ここで、ｉは１からｍＢあるいはｍＡ＋ｍＢの自然数である。あるいは別の一例として、Ｒｉをダミーとし、ｉをメモリユニットの左半分に順に記し、対応するＦｉをメモリユニットの右半分に順に記す。あるいはまた、Ｆｉを順に並べるだけで十分である。ただし、ｉは、サーチ順に応じて決まる不良ビットが発生した素子を含む行番号が見つかる順番に従って振られる。【０３０１】
いずれにしろ、任意の関数ｆを適当に決定しさえすれば、図３１および図４１のバーコード状の物理乱数コードは式４の d(i) からなる数列｛d(i)｝に置き換えられる。こうして、認証装置６００の動作を概念的に説明する図３１は、例えば図８２のようになる。詳細は図３１の説明とほぼ同様なので省略する。一方、スクランブル装置８９０を概念的に説明する図３４は、例えば図８３のようになる。詳細は図３４とほぼ同様なので省略する。【０３０２】
図８４は、本実施形態に関するメモリチップ６０９０の基本構成を説明する図面であり、メモリセルアレイと周辺回路６０９１の配置を示している。メモリセルアレイ上に物理的に乱雑に発生する不良ビットの配列に応じて生成される（Fi，Ri）の組み合わせを特殊内部メモリ６０９に記録する。それを式４に従って物理乱数コード｛d(i)｝として取得する。この物理乱数コード｛d(i)｝を鍵生成装置８９１に入力し、鍵生成装置８９１からのレスポンス（出力）を公開鍵として外部入出力５０を介してメモリチップ６０９０の外部に出力する。【０３０３】
図８４で説明するメモリチップ６０９０を認証コア１００００とし、図２６のハードウェアに置き換えたものが図８５である。メモリチップ６０９０のメモリセルアレイ上に物理的に乱雑に発生する不良ビットの配列に応じて生成される（Fi，Ri）から式４に従って物理乱数コード｛d(i)｝を取得する。それをメモリチップ６０９０に固有の秘密鍵として周辺回路６０９１に内蔵する鍵生成装置８９１に入力し、そのレスポンス（出力）を公開鍵として認証コア１００００の外部に出力する。ここで、秘密鍵と公開鍵は公開鍵暗号によって１対１に対応する。【０３０４】
この秘密鍵は、メモリチップ６０９０を搭載するハードウェアの物理アドレスとなり、メモリチップ６０９０に閉じ込められて外部には決して出力しない。こうして「見えない物理アドレス」となる。【０３０５】
出力された公開鍵は、論理ネットワーク上のアドレス（論理アドレス）となる。こうして、ソフトウェアで構成する論理ネットワークとハードウェアで構成する物理ネットワークが、「見えない物理アドレス」と論理アドレスで結び付けられる。この論理アドレスに繋がった論理ノード同士の処理をブロックチェーンに代表される公開台帳システムで管理すれば物のインターネット（IoT）を安全に構築することが可能となる。【０３０６】
ここで、ブロックチェーンは公開台帳システムの一例に過ぎず、記帳にかかる処理時間が平均１０分かかるというのが欠点である。これを１０分以内にすることにより利便性を高めた新たな公開台帳システムなどに置き換えたとしても本発明の本質に変更を迫るものではない。あるいは別の理由・事情によりブロックチェーンを別の公開台帳システムに置き換えたとしても本発明の本質に変更を迫るものではない。【０３０７】
なぜなら、本発明の本質は、図２７で説明したように、データリンク層と物理層の間に新たに認証層を挿入し、そこで認証装置（認証コア１００００）によって論理アドレスと「見えない物理アドレス」を１対１でリンクさせることだからである。図２の通信階層で見られるように、データリンク層より上にあるブロックチェーンを他の公開台帳システムに変更しても、データリンク層より下に位置する本発明の導入方法になんら影響を与えるものではない。【０３０８】
反対に、本発明の認証装置（認証コア１００００）を導入するために、ブロックチェーンなどの公開台帳システムやそのうえに構築されたアプリケーションの構造には何ら変更を加える必要がない。【０３０９】
なぜなら、本発明の本質は、図２６のハードウェアを本発明の認証コアを搭載するハードウェアに置き換えるだけだからである。より具体的には、情報機器１４０に搭載されているメモリチップを図８４のメモリチップ６０９０に置き換えるだけでよい。図２の通信階層で説明したように、通信階層の下層にどのような変更を与えても上層には何ら変更が加わらない。これは、現行の通信階層の設計理念によりそうなっているのである。【０３１０】
図８４のメモリチップ６０９０は、認証コア１００００の一実施形態に過ぎない。このメモリチップがＤＲＡＭの場合、図５４から図５６のように、中央演算処理装置（CPU）と張り合わせて認証コアとすることが可能である。【０３１１】
ＣＰＵがＤＲＡＭを必要とする限り、ＤＲＡＭを使った認証コア１００００は、One-CPU-One-Voteを体現する最適なソリューションを提供する。【０３１２】
また、ＣＰＵの動作を考えるとき、コード生成中のレジスタから秘密鍵を取り出される心配はない。なぜなら、図８４で示した通り、秘密鍵を生成する物理乱数コード｛d(i)｝の種となるデータ（Fi，Ri）は、特殊内部メモリ６０９に記録されるからである。通常、量産品のメモリチップでは特殊内部メモリ６０９にアクセスするための配線が引かれていない。【０３１３】
図７０から図８１で説明したような方法で、周辺回路６０９１の内部でデータ（Fi，Ri）を取り出すが、その出力は直接鍵生成装置８９１に入力される。鍵生成装置８９１は、公開鍵のみを周辺回路６０９１内部の制御装置に引き渡し、制御装置が外部入出力１０を介して公開鍵のみ外部に出力する。【０３１４】
したがって、メモリチップ６０９０を分解しない限り秘密鍵を盗み出すことも改竄することもできない。このように、本発明に関する認証コア１００００は、チップを分解しない限り「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を提供する。【０３１５】
したがって、ネットワーク上で遠隔操作によってコード生成中のＣＰＵから秘密鍵を盗み出すことは不可能である。【０３１６】
あるいは別の一例として、図５８から図５９のように、鍵生成装置を第一のチップ１１０（本実施形態ではメモリチップ６０９０）の外部に設置する方法がある。この場合でも、遠隔操作によってコード生成中のＣＰＵからリバースエンジニアリングで秘密鍵を盗み出すことは現実的に不可能である。【０３１７】
なぜなら、レジスタが非常に小さな動的メモリだからである。たとえば、通常のパソコンでは３２ビット、多くとも６４ビットしかない。一方、秘密鍵を生成する物理乱数コード｛d(i)｝の種となるデータ（Fi，Ri）のビット容量は、６４ビットよりはるかに大きい。ただし、ｉは１からｍＢまでの自然数である。【０３１８】
ここで、Ｆｉ、Ｒｉにそれぞれ１バイト（８ビット）を消費すると考えよう。一例としてｍＢが１０００であった場合、ゆうに１６キロビット必要になる。これは、６４ビットＣＰＵを使ったとしても２５０のセグメントに分割して逐次レジスタに保存しなければならないことを意味する。メモリチップ６０９０とＣＰＵは、このレジスタに保存された２５０個のセグメントを逐次やり取りしなければならない。レジスタ領域はセグメントを更新するごとに上書き消去されるので、コード生成途中であっても、遠隔操作によって物理乱数コード｛d(i)｝の種となるデータ（Fi，Ri）の全体を盗むことは現実的に不可能である。【０３１９】
ＤＲＡＭなどの量産メモリチップ製品には、製品管理用にあらかじめ冗長ビット線群、あるいは、冗長ワード線群と、特殊内部メモリ６０９としてヒューズメモリが周辺回路に取り付けられている。【０３２０】
このように、本発明に関する「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」は、鍵生成装置８９１をチップ外に配置する限り、量産メモリチップ製品にほとんど何の変更も加えずに提供することが可能である。ただし、図７０から図８１の処置を実施するために必要な第一のテストモード１および第二のテストモード２などを指定するための冗長コードを、図６７のように、外部入力とする必要がある。あるいは別の一例として、周辺回路６０９１の内部に処置方法そのものを記録し、メモリチップ６０９１の内部で完結させるように設計することも可能である。【０３２１】
いずれにしろ、本発明に関わる認証素子９７７は、抵抗、キャパシタ、ショットキー接合、ＰＮ接合、トランジスタ、ＭＲＯＭセル、ＤＲＡＭセル、浮遊ゲートトランジスタ、相変化メモリセル、磁気抵抗メモリセルなど、一般的な半導体製造工程で大量生産可能なデバイスやその部品であれば何でも良い。あるいは、特殊にデザインされた微小構造でも使用可能である。【０３２２】
認証素子９７７を確率的に破壊する場合、高電圧など電気的なストレスを与えればよい。このとき、チップ上の全アドレスを選択することもできれば、必要に応じて一部のアドレスのみを選択して破壊パルス電圧を印可することも可能である。いずれにしろ、物理的にランダムに破壊された認証素子のセルアレイから、「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を生成することが可能である。【０３２３】
あるいは別の一例として、上述したように、製造工程において偶発的に発生する不良ビットを利用して「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を生成することも可能である。【０３２４】
認証装置への入力に個別入力を選んだ場合、次のような利便性が追加される。すなわち、
１） 仲間・家族で一つのノード（ＰＣ、タブレットなどの情報端末）をシェアしても各人がそれぞれ異なる個別入力を独立に使用する限り、実質的に独立の財布を所有できる。
２） 盗難や紛失などによりノード（スマホやタブレットなど携帯型情報端末）が他人の手に渡っても認証装置への入力が異なれば異なる財布になるので、ノードを手に入れた人物が同時に個別入力を手に入れない限り財布の盗難を防ぐことが可能である。【０３２５】
式４の関数ｆは、引数Ｒｉをダミーとし、行群Ｂ内の不良ビットを含む行番号（Fi）を順に並べるだけでも十分である。この場合、ｉは、サーチ順に応じて不良ビットを含む行の行番号が見つかる順番に従って振られる。【０３２６】
このように、本発明によれば物理的実態を持つ半導体チップに固有の認証装置から構成される認証コアと、論理アドレスとを公開鍵暗号によりリンクし、ハードウェアとソフトウェアのネットワークを有機能的に連携させることが可能となる。【０３２７】
半導体チップと論理アドレスとのリンクの仕方は、より具体的には、認証装置を利用して秘密鍵を半導体チップ内に閉じ込め、公開鍵暗号により前記秘密鍵と一対になっている公開鍵を論理ネットワーク上の論理アドレスとすることである。【０３２８】
本発明に関する半導体チップは、量産メモリチップ製品をベースに設計するものであることが望ましい。【０３２９】
更に、電子署名技術と合わせてハードウェアとブロックチェーンに代表される公開台帳システムを有機能的に連携させることが可能となる。結果としてネットワークシステムの安全性や信頼性を強化することに優れている。【０３３０】
なお、自明なので特に図示しないが、本発明に関わる認証装置を制御する認証制御装置は、認証装置の一部または全部が同居するメモリチップのメモリセルアレイの制御装置も兼ねることが可能である。【０３３１】
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【産業上の利用可能性】
【０３３２】
安全かつ利便性の高いネットワークビジネスの情報基盤技術を、より低いコストで提供することが可能となる。
【符号の説明】
【０３３３】
５０  外部入出力装置（I/O）
２１  第一の認証装置
２２  第二の認証装置
３１  入力コード誤差
３２  出力コード誤差
６０、６００  認証装置
１１０  第一のチップ
１２０  第二のチップ
１３０  第Ｎのチップ
１４０  情報機器
４００  通信相手
５０３  ワード線
６０１、６０５  乱数発生装置
６０２、６０６  コード生成装置
６０９  特殊内部メモリ
６１１  認証素子用セルアレイ（素子領域）
６１４  スクランブル装置セルアレイ
８００、８１０  入出力制御装置
８８０  認証制御装置
８９０  スクランブル装置
８９１  鍵生成装置
９００  中間コード用バッファー
９０２  ビット線
９７７  認証素子
９８３  トランジスタ
９８５  抵抗
９８６  ＰＮ接合
９８７  ショットキー接合
１０００  信号伝達路
２００１  第一のノード
２００２  第二のノード
３０００  イーサネット（登録商標）カード
３０１０  不揮発性メモリチップ
３０２０  ＭＡＣ用演算処理チップ
３０３０  認証制御モジュール一式
３０７１  ベンダーコード
３０７２  シリアル番号
６０９１  周辺回路
１００００  認証コア
２００００  矩形
【図１】
0006592621.tif 000002
【図２】
0006592621.tif 000003
【図３】
0006592621.tif 000004
【図４】
0006592621.tif 000005
【図５】
0006592621.tif 000006
【図６】
0006592621.tif 000007
【図７】
0006592621.tif 000008
【図８】
0006592621.tif 000009
【図９】
0006592621.tif 000010
【図１０】
0006592621.tif 000011
【図１１】
0006592621.tif 000012
【図１２】
0006592621.tif 000013
【図１３】
0006592621.tif 000014
【図１４】
0006592621.tif 000015
【図１５】
0006592621.tif 000016
【図１６】
0006592621.tif 000017
【図１７】
0006592621.tif 000018
【図１８】
0006592621.tif 000019
【図１９】
0006592621.tif 000020
【図２０】
0006592621.tif 000021
【図２１】
0006592621.tif 000022
【図２２】
0006592621.tif 000023
【図２３】
0006592621.tif 000024
【図２４】
0006592621.tif 000025
【図２５】
0006592621.tif 000026
【図２６】
0006592621.tif 000027
【図２７】
0006592621.tif 000028
【図２８】
0006592621.tif 000029
【図２９】
0006592621.tif 000030
【図３０】
0006592621.tif 000031
【図３１】
0006592621.tif 000032
【図３２】
0006592621.tif 000033
【図３３】
0006592621.tif 000034
【図３４】
0006592621.tif 000035
【図３５】
0006592621.tif 000036
【図３６】
0006592621.tif 000037
【図３７】
0006592621.tif 000038
【図３８】
0006592621.tif 000039
【図３９】
0006592621.tif 000040
【図４０】
0006592621.tif 000041
【図４１】
0006592621.tif 000042
【図４２】
0006592621.tif 000043
【図４３】
0006592621.tif 000044
【図４４】
0006592621.tif 000045
【図４５】
0006592621.tif 000046
【図４６】
0006592621.tif 000047
【図４７】
0006592621.tif 000048
【図４８】
0006592621.tif 000049
【図４９】
0006592621.tif 000050
【図５０】
0006592621.tif 000051
【図５１】
0006592621.tif 000052
【図５２】
0006592621.tif 000053
【図５３】
0006592621.tif 000054
【図５４】
0006592621.tif 000055
【図５５】
0006592621.tif 000056
【図５６】
0006592621.tif 000057
【図５７】
0006592621.tif 000058
【図５８】
0006592621.tif 000059
【図５９】
0006592621.tif 000060
【図６０】
0006592621.tif 000061
【図６１】
0006592621.tif 000062
【図６２】
0006592621.tif 000063
【図６３】
0006592621.tif 000064
【図６４】
0006592621.tif 000065
【図６５】
0006592621.tif 000066
【図６６】
0006592621.tif 000067
【図６７】
0006592621.tif 000068
【図６８】
0006592621.tif 000069
【図６９】
0006592621.tif 000070
【図７０】
0006592621.tif 000071
【図７１】
0006592621.tif 000072
【図７２】
0006592621.tif 000073
【図７３】
0006592621.tif 000074
【図７４】
0006592621.tif 000075
【図７５】
0006592621.tif 000076
【図７６】
0006592621.tif 000077
【図７７】
0006592621.tif 000078
【図７８】
0006592621.tif 000079
【図７９】
0006592621.tif 000080
【図８０】
0006592621.tif 000081
【図８１】
0006592621.tif 000082
【図８２】
0006592621.tif 000083
【図８３】
0006592621.tif 000084
【図８４】
0006592621.tif 000085
【図８５】
0006592621.tif 000086