(57)【要約】【課題】物理ノード同士の間のデータ転送を改ざんから防ぎ、物理ノード同士のネットワークである、物のネットワークの信頼性を向上させること。【解決手段】物のネットワークの最小構成単位を半導体チップと見なし、半導体チップに固有の物理的乱雑さを物理ノードの物理アドレスと関連付け、この物理アドレスと更に関連する論理アドレスをネットワーク上の論理アドレスと関連付け、公開台帳（ブロックチェーン）技術を用いこのネットワーク上の論理ノード同士の間のデータ転送を改ざんから防ぐことによって、対応する物理ノード同士の間のデータ転送を改ざんから防ぎ、結果として、物のネットワークのセキュリティを効率的に向上させることを特徴としている。【選択図】図１７
2018168723.tif 000002
【特許請求の範囲】
【請求項１】
複数のノードから構成されるネットワークにおいて、
各ノードが、それぞれ処理ユニットおよび認証コアから構成され、
前記認証コアは、それぞれ鍵生成装置を含み、
前記鍵生成装置は、互いに一対の組みをなす秘密鍵および前記公開鍵を生成し、
前記公開鍵は、前記処理ユニットの論理アドレスとなり、
前記秘密鍵は、前記認証コアの外部からアクセス不可能であり、
前記処理ユニットが前記各ノード間の情報通信の処理を司り、前記認証コアが前記各ノードの認証を司る、
ことを特徴とするネットワーク。
【請求項２】
前記処理ユニットは、更にハッシュ値を含み、
前記鍵生成装置は、前記ハッシュ値から前記秘密鍵および公開鍵を生成する、
ことを特徴とする請求項１記載のネットワーク。
【請求項３】
前記認証コアは、更に認証装置を含み、
前記認証装置は、それぞれ固有の物理アドレスを有し、
互いに一対の組みをなす前記秘密鍵および前記公開鍵によって、
前記物理アドレスと前記論理アドレスが、共に認証アドレスとして関連づけられる、
ことを特徴とする請求項１のネットワーク。
【請求項４】
前記認証装置は、更にコード変換装置を有し、
前記コード変換装置は、前記物理アドレスから変数を生成し、前記変数を前記鍵生成装置に入力する、
ことを特徴とする、
請求項３記載のネットワーク。
【請求項５】
前記コード変換装置の動作の少なくとも一部は、前記物理アドレスおよび適当に与えられた数を合成する、合成ステップと、
前記合成して得た数が素数になるかどうかを判定する、判定ステップと、から構成され、
前記合成して得た数が素数になるまで、前記合成ステップおよび前記判定ステップを繰り返す、
ことを特徴とする、
請求項４記載のネットワーク。
【請求項６】
前記認証コア外部から前記認証装置に外部入力を入力し、
前記コード変換装置は、前記外部入力および前記物理アドレスから変数を生成し、前記鍵生成装置に入力する、
ことを特徴とする、
請求項４記載のネットワーク。
【請求項７】
前記認証コア内部の別の一部から前記認証装置に内部入力を入力し、
前記コード変換装置は、前記内部入力および前記物理アドレスから変数を生成し、前記鍵生成装置に入力する、
ことを特徴とする、
請求項４記載のネットワーク。
【請求項８】
前記物理アドレスは、前記各ノードにそれぞれ割与えられたコード情報であり、前記認証コアに付属の不揮発性メモリに記録する、
ことを特徴とする、
請求項３記載のネットワーク。
【請求項９】
前記物理アドレスは、前記認証コアを構成する半導体チップから所定の手続きで生成される、
ことを特徴とする、
請求項３記載のネットワーク。
【請求項１０】
前記半導体チップは、セルアレイを含み、
前記セルアレイは、複数のアドレス上にそれぞれ分布する複数の認証素子から構成され、
前記複数の認証素子の一部は、所定の特性からずれた不良ビットであり、あるいは、所定のストレス印加によって破壊された破壊ビットであり、
前記不良ビットあるいは前記破壊ビットが分布するアドレスの集合から、前記物理アドレスを生成することを特徴とする、
請求項９記載のネットワーク。
【請求項１１】
複数のノードから構成されるネットワークにおいて、
前記ネットワークを構成する第一のノードは、第一の処理ユニットおよび第一の認証コアから構成され、
前記ネットワークを構成する第二のノードは、第二の処理ユニットおよび第二の認証コアから構成され、
前記第一の処理ユニットは、第一の公開鍵、第一のハッシュ値、第一の電子署名から構成され、
前記第二の処理ユニットは、第二の公開鍵、第二のハッシュ値、第二の電子署名から構成され、
前記第一の認証コアは、第一の物理アドレス、第一の秘密鍵、および、第一の鍵生成装置から構成され、
前記第二の認証コアは、第二の物理アドレス、第二の秘密鍵、および、第二の鍵生成装置から構成され、
前記第二のハッシュ値は、前記第一の処理ユニットをハッシュ化したものであり、かつ、前記第一のノードから前記第二のノードに転送された情報の少なくとも一部であり、
前記第二の電子署名は、前記第二のハッシュ値および前記第二の公開鍵を前記第一の秘密鍵で暗号化したものであり、前記第二のハッシュ値と共に前記第一のノードから前記第二のノードに転送された情報の別の一部であり、
前記第一の鍵生成装置は、前記第一の物理アドレスから前記第一の公開鍵と前記第一の秘密鍵とを互いに一対一の組みを成すように生成し、
前記第二の鍵生成装置は、前記第二の物理アドレスから前記第二の公開鍵と前記第二の秘密鍵とを互いに一対一の組みを成すように生成する、
ことを特徴とする、
請求項１記載のネットワーク。
【請求項１２】
複数のノードから構成されるネットワークにおいて、
各ノードが、それぞれ処理ユニットおよび認証コアから構成され、
前記認証コアは、それぞれ鍵生成装置および秘密鍵を含み、
前記鍵生成装置は、前記秘密鍵から公開鍵を生成し、
前記公開鍵は、前記処理ユニットの論理アドレスとなり、
前記秘密鍵および前記公開鍵が互いに一対の組みをなし、
前記処理ユニットが前記各ノード間の情報通信の処理を司り、前記認証コアが前記各ノードの認証を司る、
ことを特徴とするネットワーク。
【請求項１３】
前記認証コアは、更に変換装置を含み、
前記処理ユニットは、更にハッシュ値を含み、
前記変換装置は、前記ハッシュ値から前記秘密鍵を生成する、
ことを特徴とする請求項１２のネットワーク。
【請求項１４】
前記認証コアは、更に認証装置を含み、
前記認証装置は、それぞれ固有の物理アドレス、および、コード変換装置を有し、
前記コード変換装置は、前記物理アドレスから前記秘密鍵を生成し、
前記物理アドレスと前記論理アドレスが、共に認証アドレスとして関連づけられる、
ことを特徴とする請求項１１のネットワーク。
【請求項１５】
前記コード変換装置の動作の少なくとも一部は、前記物理アドレスおよび適当に与えられた数を合成する、合成ステップと、
前記合成して得た数が素数になるかどうかを判定する、判定ステップと、から構成され、
前記合成して得た数が素数になるまで、前記合成ステップおよび前記判定ステップを繰り返す、
ことを特徴とする、
請求項１４記載のネットワーク。
【請求項１６】
前記秘密鍵は、前記素数から１を引いた数を前記物理アドレスで割った余りである、
ことを特徴とする、
請求項１５記載のネットワーク。
【請求項１７】
前記物理アドレスは、前記各ノードにそれぞれ割与えられたコード情報であり、前記認証コアに付属の不揮発性メモリに記録する、
ことを特徴とする、
請求項１４記載のネットワーク。
【請求項１８】
前記認証コア外部から前記認証装置に外部入力を入力し、
前記コード変換装置は、前記外部入力および前記物理アドレスから変数を生成し、前記鍵生成装置に入力する、
ことを特徴とする、
請求項１４記載のネットワーク。
【請求項１９】
前記認証コア内部の別の一部から前記認証装置に内部入力を入力し、
前記コード変換装置は、前記内部入力および前記物理アドレスから変数を生成し、前記鍵生成装置に入力する、
ことを特徴とする、
請求項１４記載のネットワーク。
【請求項２０】
前記物理アドレスは、前記認証コアを構成する半導体チップから所定の手続きで生成される、
ことを特徴とする、
請求項１４記載のネットワーク。
【請求項２１】
前記半導体チップは、セルアレイを含み、
前記セルアレイは、複数のアドレス上にそれぞれ分布する複数の認証素子から構成され、
前記複数の認証素子の一部は、所定の特性からずれた不良ビットであり、あるいは、所定のストレス印加によって破壊された破壊ビットであり、
前記不良ビットあるいは前記破壊ビットが分布するアドレスの集合から、前記物理アドレスを生成することを特徴とする、
請求項２０記載のネットワーク。
【請求項２２】
複数のノードから構成されるネットワークにおいて、
前記ネットワークを構成する第一のノードは、第一の処理ユニットおよび第一の認証コアから構成され、
前記ネットワークを構成する第二のノードは、第二の処理ユニットおよび第二の認証コアから構成され、
前記第一の処理ユニットは、第一の公開鍵、第一のハッシュ値、第一の電子署名から構成され、
前記第二の処理ユニットは、第二の公開鍵、第二のハッシュ値、第二の電子署名から構成され、
前記第一の認証コアは、第一の物理アドレス、第一の秘密鍵、および、第一の鍵生成装置から構成され、
前記第二の認証コアは、第二の物理アドレス、第二の秘密鍵、および、第二の鍵生成装置から構成され、
前記第二のハッシュ値は、前記第一の処理ユニットをハッシュ化したものであり、かつ、前記第一のノードから前記第二のノードに転送された情報の少なくとも一部であり、
前記第二の電子署名は、前記第二のハッシュ値および前記第二の公開鍵を前記第一の秘密鍵で暗号化したものであり、前記第二のハッシュ値と共に前記第一のノードから前記第二のノードに転送された情報の別の一部であり、
前記第一の鍵生成装置は、前記第一の秘密鍵から前記第一の公開鍵を生成し、
前記第二の鍵生成装置は、前記第二の秘密鍵から前記第二の公開鍵を生成し、
前記第一の秘密鍵と前記第一の公開鍵は、互いに一対一の組をなし、
前記第二の秘密鍵と前記第二の公開鍵は、互いに一対一の組をなし、
前記第一の秘密鍵は、前記第一の物理アドレスから生成され、
前記第二の秘密鍵は、前記第二の物理アドレスから生成される
ことを特徴とする、
請求項１２記載のネットワーク。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク上に存在する装置を認証する技術に関する。
【背景技術】
【０００２】
進化し続けるインターネットに接続する装置の数は年とともに増大し、そのネットワーク構造も複雑化・多様化してきている。しかしながら、基本的には、特別な機能を有するサーバーを中心的なノード（基幹ノード）に据えたクライアント・サーバー（CS）型と、このような基幹ノードが存在せずすべてのノードが基本的に対等な形で接続するピアトゥア（P2P）型に大別することができる。ただし、いずれの型に属するネットワークであっても、ネットワークには図1に示すような最小単位が存在する。【０００３】
このように、ネットワークは一般に結節点（ノード）と通信線（リンク）からなる。図１では、第一のノード２００１と第二のノード２００２が、通信線である信号伝達路１０００によってリンクしている。たとえば、第一のノード２００１と第二のノード２００２は、信号伝達路１０００を介してプロトコル・データ・ユニットを交換している。この第一のノード２００１と第二のノード２００２は、それぞれ一定の整合性を持つプロトコルに従ってプロトコル・データ・ユニットを扱う。【０００４】
プロトコル・データ・ユニットの仲間でよく使われる言葉にフレーム、パケット、セグメント等がある。名称の違いは通信階層（通信レイヤー、あるいは、レイヤー）に対応して使い分けられ、ネットワークシステム全体の概念によって決定される。たとえば、図２のように、下の階層から順に、物理層（レイヤー１）、データリンク層（レイヤー２）、ネットワーク層（レイヤー３）、トランスポート層（レイヤー４）、上位層（レイヤー５）となる。ただし、この階層構造はほんの一例に過ぎず、異なる概念の元では、たとえば、トランスポート層を更に３分割して７階層にする。いずれにしろ、データリンク層（レイヤー２）ではプロトコル・データ・ユニットをフレームと呼び、ネットワーク層（レイヤー３）ではパケットと呼び、トランスポート層（レイヤー４）ではセグメントと呼ぶのが一般的である。
（通信階層）【０００５】
一般に、インターネットを用いた情報通信は、適当な大きさに切り分けられたデジタルデータの一片をネットワーク上の情報端末であるノード同士で交換することである。このデータの一片にネットワーク上での管理に必要な制御情報を付与した塊をプロトコル・データ・ユニットと呼ぶ。データの一片と制御情報の並べ方をフォーマットと呼び、フォーマットおよびその活用は、プロトコルと呼ばれる一種の手続きによって規定されている。互いに情報通信する任意の２つのノードは、それぞれ一定の整合性を持つプロトコルに従わなければならない。【０００６】
以下、図２の５階層を前提にして説明を続ける。【０００７】
まず、伝送される元の情報は適当な大きさのデータの集まりに分割される。こうして得られるデータが存在する通信階層は、図２で説明した上位層（レイヤー５）である。【０００８】
このデータにTCPヘッダーを添付する。TCPはトランスミッション・コントロール・プロトコルの略であり、プロトコルの一種である。こうして、データにTCPヘッダーを添付したものをセグメントと呼ぶ。セグメントを扱う通信階層がトランスポート層（レイヤー４）である。【０００９】
セグメントにインターネット・プロトコル・ヘッダー（IPヘッダー）を添付すると、プロトコル・データ・ユニットはパケットと呼ばれるようになる。パケットを扱う通信階層がネットワーク層（レイヤー３）であり、プロトコルはIPである。バージョンによってIPv4やIPｖ６などがある。【００１０】
パケットにイーサネット（登録商標）・プロトコル・ヘッダー（イーサネット（登録商標）ヘッダー）を添付すると、プロトコル・データ・ユニットはフレームと呼ばれるようになる。フレームを扱う通信階層がデータリンク層（レイヤー２）であり、プロトコルはイーサネット（登録商標）である。【００１１】
イーサネット（登録商標）規格では、最下層（レイヤー１）の物理層への変換、すなわち、光信号への変換や電気信号への変換も定義されることがある。変換後のフレームは１０BASE-Tなどの回線に渡される。【００１２】
通信階層はそれぞれ入れ子の状態になっており、各階層（あるいは、各レイヤー）はそれぞれ独立しているとみなせる。具体的には、図２に示したとおり、レイヤー４（トランスポート層）のセグメント（データにTCPヘッダーのみを添付したもの）のフォーマットは、レイヤー５（上位層）のフォーマット（データのみ）を変換せずに含んでいる。このように、TCPヘッダーと元のデータは不可逆的に掛け合わされていない。同様に、レイヤー３（ネットワーク層）のパケットのフォーマット（セグメントにIPヘッダーのみを添付したもの）は、レイヤー４（トランスポート層）のフォーマット（セグメント）を変換せずに含んでいる。このように、IPヘッダーとセグメントは不可逆的に掛け合わされていない。さらに、レイヤー２（データリンク層）のフレームのフォーマット（パケットにイーサネット（登録商標）ヘッダーおよびFCSを添付したもの）は、レイヤー３（ネットワーク層）のフォーマット（パケット）を変換せずに含んでいる。このように、イーサネット（登録商標）ヘッダーおよびFCSとパケットは不可逆的に掛け合わされていない。ここで、FCSはフレーム・チェック・シークエンスの略であり、パケットが正しく届いたかどうかを確認するために利用される。【００１３】
このような構造のため、下位の通信階層でプロトコルやフォーマットを変更しても上位の通信階層にはまったく影響しない。【００１４】
たとえば、図２において、レイヤー４（トランスポート層）でTCPヘッダーを何か別のヘッダーに置き換えても、元のデータにはまったく影響がない。つまり、レイヤー４（トランスポート層）で何か変更を加えてもレイヤー５（上位層）には影響がない。【００１５】
同様に、レイヤー３（ネットワーク層）のIPヘッダーをIPｖ４からIPｖ６に変更してもセグメントには何も影響しない。つまり、レイヤー３（ネットワーク層）で何か変更を加えてもレイヤー４（トランスポート層）には何も影響がない。レイヤー４（トランスポート層）に影響がなければレイヤー５（上位層）にも影響がない。【００１６】
更に、レイヤー２（データリンク層）でイーサネット（登録商標）ヘッダーを何か別のものに置き換えてもパケットには何も影響しない。たとえば、プロトコルをイーサネット（登録商標）からポイント・トー・ポイント・プロトコル（PPP）に変更してもパケットには何も変化がない。したがって、レイヤー２（データリンク層）で何か変更を加えても、レイヤー３（ネットワーク層）には何も影響がない。レイヤー３（ネットワーク層）に何も影響がなければレイヤー４（トランスポート層）にも何も影響がない。レイヤー４（トランスポート層）に何も影響がなければレイヤー５（上位層）にも何も影響がない。【００１７】
更に、レイヤー１（物理層）で何か変更を加えてもレイヤー２（データリンク層）には何も影響がない。たとえば、信号伝達路を光ファイバーから無線LANに変更する。この場合でも伝達される情報の内容（フレーム）は、光ファイバーで伝達されても無線LANで伝達されても同じでなければならない。レイヤー２（データリンク層）に何も変更がなければレイヤー３（ネットワーク層）にも何も影響がない。レイヤー３（ネットワーク層）に何も影響がなければレイヤー４（トランスポート層）にも何も影響がない。レイヤー４（トランスポート層）に何も影響がなければレイヤー５（上位層）にも何も影響がない。【００１８】
こうして、下位のどの通信階層で何か変更を施しても上位のどの通信階層にも何も影響がないことが判る。これは、後の技術革新の妨げとならないような設計である。【００１９】
一方、本願は最下層の物理層とデータリンク層に関するものである。このような事情により、本願によって論理層（レイヤー3より上の層）で伝送されるデータに影響を及ぼすことはない。【００２０】
ネットワークを物理的実態として構成するには、ネットワークの結節点（ノード）となる情報機器（ハードウェア）と、ノード同士を接続する信号伝達路が必要である。信号伝達路は有線であっても無線であっても構わない。また、信号の種類も複数の可能性がある。大雑把に分類すると、たとえば、電気信号と光信号である。すなわち、有線・無線の電気信号伝達路または光信号伝達路が、ネットワーク上でノード同士を物理的に接続する。このような物理的な接続・伝送方式を規定するレイヤーが物理層（レイヤー１）である。【００２１】
同じ階層で採用されるプロトコルは一定の整合性を持っていなければならないが、階層が異なればその必要はない。すなわち、階層を設計するということは、複数のプロトコルの関係性を設計することである。上記では、物理層とデータリンク層をそれぞれ別の階層（レイヤー１とレイヤー2）としたが、別の階層概念によれば、同じイーサネット（登録商標）・プロトコルに従わせて一つの階層とみなすことも可能である。この場合レイヤー数は一つ減って４階層となる。また、トランスポート層（レイヤー４）とネットワーク層（レイヤー３）のフォーマットを合わせてTCP／IP形式と呼ぶこともある。あるいは、逆に細分化する階層の設計概念もありうる。たとえば、OSI基本参照モデルでは、上位層を更に３つに分割し、下位からセッション層（レイヤー５）、プレゼンテーション層（レイヤー６）、アプリケーション層（レイヤー７）とする。【００２２】
一般に、ネットワークの接続構造は複雑であるが、信号伝達路の両端はそれぞれ一つのノードで終端していなければならない。図１はそのもっとも簡単な一例を示す図面である。まず、何らかのソースから第一のノード２００１に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換（コード）され、信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、第一のノードが従うフォーマットと一定の整合性のある所定のフォーマットに従って、受信したプロトコル・データ・ユニットを逆変換（デコード）し、第一のノード２００１に入力される前の元の情報を再生する。こうして、プロトコル・データ・ユニットに変換（コード）されたデータの一片がネットワーク上で送受信される。これがデータ伝送の基本的な仕組みである。【００２３】
上述したように、図１において、一つの信号伝達路１０００の両端を終端する二つのノード（第一のノード２００１と第二のノード２００２）は、それぞれ一定の整合性のあるプロトコルに従わなければならない。もし、それぞれが従うプロトコルに一定の整合性がなかった場合、この信号伝達路１０００は、第一のノード２００１と第二のノード２００２を接続していないとみすことがある。【００２４】
図１に対応する通信がトランスポート層（レイヤー4）における通信である場合、プロトコル・データ・ユニットはセグメントであり、変換プロトコルはTCPである。たとえば第一のノード２００１がデータを受信すると、TCP形式のフォーマットに従ってTCPヘッダーをデータに添付し、セグメントを構成する。このセグメントは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このセグメントを受信し、TCP形式のフォーマットに従って逆変換（デコード）し、元のデータを再生する。具体的には、TCPヘッダーを取り除く。【００２５】
図１に対応する通信がネットワーク層（レイヤー３）における通信である場合、プロトコル・データ・ユニットはパケットであり、変換プロトコルはIPｖ４やIPｖ６などである。たとえば第一のノード２００１がデータ（この場合セグメント）を受信すると、IPｖ４形式あるいはIPｖ６形式などのフォーマットに従ってIPヘッダーをセグメントに添付し、パケットを構成する。このパケットは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このパケットを受信し、IPｖ４形式あるいはIPｖ６形式等のフォーマットに従って逆変換（デコード）し、元のセグメントを再生する。具体的には、IPヘッダーを取り除く。あるいは、TCPヘッダーも取り除いてデータを復元することができる。【００２６】
図１に対応する通信がデータリンク層（レイヤー２）における通信である場合、プロトコル・データ・ユニットはフレームである。たとえば第一のノード２００1がデータ（この場合パケット）を受信すると、イーサネット（登録商標）形式に従ってイーサネット（登録商標）ヘッダーをパケットに添付し、フレームを構成する。イーサネット（登録商標）形式では、更に、パケットが正しく届いたかどうかを確認するためフレーム・チェック・シークエンス（FCS）を添付する。こうして生成されたフレームは信号伝達路１０００を通して第二のノード２００２に伝送される。第二のノード２００２は、このフレームを受信し、イーサネット（登録商標）形式に従って逆変換（デコード）し、元のパケットを再生する。具体的には、FCSをチェックしてパケットが正しく伝送されたかどうかを確認する。必要に応じて修復や再送依頼などの処置を施す。正しく伝送されたことが確認されたらイーサネット（登録商標）ヘッダーとFCSを取り除く。【００２７】
上述したデータの伝送は、第一のノード２００１から第二のノード２００２への一方向のみを説明したが、伝送の向きが逆になってもプロトコルの利用方法になんら変更はない。その場合、まず、第二のノード２００２に入力された情報は所定のフォーマットに従ってプロトコル・データ・ユニットに変換（コード）され、信号伝達路１０００を通して第一のノード２００１に伝送される。第一のノード２００１は、受信したプロトコル・データ・ユニットを逆変換（デコード）し、第二のノード２００２に入力される前の元データを再生する。【００２８】
また、第一のノード２００１が、任意の第三のノードから第二のノード２００２への中継器である場合、第一のノード２００１は、第三のノードから受信したプロトコル・データ・ユニットをデコードせず、そのまま信号伝達路１０００を介して第二のノード２００２に転送することが可能である。あるいは、受信したプロトコル・データ・ユニットの一部（例えばヘッダー）を編集してから信号伝達路１０００を介して第二のノード２００２に伝送することが可能である。この編集の結果として、意図的あるいは非意図的に関らず、第一のノード２００１を経由したことを示すコードがプロトコル・データ・ユニットに追加されることがある。第二のノード２００２では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換（デコード）し、任意の第三のノードに入力される前のデータを再生する【００２９】
より具体的には、当該レイヤーに対応するヘッダーを適当に編集してから転送する。たとえば、中継器である第一のノード２００１がデータリンク層（レイヤー２）に存在する場合、フレームのイーサネット（登録商標）ヘッダーを編集して転送することが可能である。より具体的には、少なくとも中継器である第一のノード２００１の所定の認証をイーサネット（登録商標）ヘッダーに追加する。その経由地は、物理的実態を伴うアドレス（物理アドレス）として認識される。【００３０】
あるいは、中継器である第一のノード２００１がネットワーク層（レイヤー３）に存在する場合、パケットのTCP/IPヘッダーを編集して転送することが可能である。たとえば、少なくとも中継器である第一のノード２００１のシステムに対応する所定の認証を追加する。こうして、第二のノード２００２がプロトコル・データ・ユニットを受信する際このプロトコル・データ・ユニットがどこをどう経由して来たかということが追跡できるようになる。その経由地は物理的実態を伴わないアドレス（論理アドレス）として認識される。この論理アドレスのことを特にIPアドレスと呼ぶ。IPアドレスは、たとえば、オペレーティングシステムに割り当てられた固有のアドレスである。レイヤー３（ネットワーク層）以上の上位レイヤーのアドレスは、すべて論理アドレスであり、物理的実態とは無関係である。【００３１】
すなわち、TCP/IP形式のネットワーク（ネットワーク層以上）では、ノードも信号伝達路も論理的に定義された仮想的存在であり、物理的実態とは関連性がない。これに対し、イーサネット（登録商標）形式のネットワーク（データリンク層）では、ノードも信号伝達路も物理的実態を持っている。たとえば、このノードはどの端末に対応しているか？この信号伝達路はどのLANケーブルに対応しているのか？と言った問いに答えられるものである。【００３２】
たとえば、ネットワーク層（レイヤー３）上の任意の第三のノードから中継器である第一のノード２００１にパケットが入力される場合、このパケットはイーサネット（登録商標）形式に従ってフレームに変換され、信号伝達路１０００を介して第二のノード２００２に送信される。このとき、第一のノード２００１、第二のノード２００２、および信号伝達路１０００は、どれも物理的実態を持つ。したがって、中継器である第一のノードの物理的所在を示す物理アドレスがフレームに添付される。【００３３】
あるいは、トランスポート層（レイヤー４）上の任意の第三のノードからセグメントが中継器である第一のノード２００１に入力される場合、このセグメントはIP形式に従ってパケットに変換され、ネットワーク層上の信号伝達路１０００を通して第二のノード２００２に送信される。このとき、第一のノード２００１、第二のノード２００２、信号伝達路１０００は、いずれも論理的存在であり物理的実態とは関係がない。従って、中継器である第一のノードの論理的所在を示す論理アドレスがパケットに添付される。【００３４】
物理アドレスと論理アドレスの違いは次の説明で自明である。たとえば、中継器である第一のノード２００１を構成する電子機器を入れ替えることを考える。その場合、入れ替え前の中継器ノードを構成する電子機器（旧電子機器）のオペレーティングシステムを、入れ替え後の中継器ノードを構成する電子機器（新電子機器）へ再インストールしなければならない。このとき、物理的実態である電子機器固有の認証である物理アドレスは変更することになる。一方、オペレーティングシステムに固有の論理アドレスは入れ替え後も第三のノードのIPアドレスとして引き継がれる。これが論理ネットワーク（TCP/IPネットワーク）を採用する理由の一つである。【００３５】
図３は、物理ネットワークと論理ネットワークの関係を通信階層上で説明する図である。LANケーブルや光・ADSL線あるいはWiFiなどから構成される最下層の物理層の下に、そこでお互い接続する物理ノードが配置している。物理アドレスは、物理層でお互いを認識し、接続するために使われる。物理層のすぐ上にはデータリンク層があり、更にその上には論理層１がある。論理層１は、たとえば、TCP/IPプロトコルに従う。データリンク層より上が論理ネットワークを構成する部分で、論理層１の上には論理ノードが配置してある。論理アドレス（IPアドレス等）は、論理ノード同士がお互いを認識し、種々選択して接続するのに使われる。【００３６】
このように、データリンク層は論理ネットワークと物理ネットワークの間にあり、両ネットワークはデータリンク層を介して関連づけられている。しかしながら、これは論理ノードと物理ノードの関連づけを意味している訳ではない。なぜなら、物理アドレスと論理アドレスは全く独立だからである。【００３７】
悪質なハッカーが攻撃するのは、主に論理層である。論理層はすべてが論理空間で管理されているため、攻撃も論理空間のみで完結させられる。したがって、ネットワークにつながっている限り、常時地球の裏側からでも攻撃を仕掛けられる。物理層に関しては、物理アドレスを奪い機器を乗っ取ることも可能である。【００３８】
論理層１の脆弱性が発覚しセキュリティが破られると、図４のように、その脆弱性を改善した論理層２が開発され、使用されるようになる。この例では、HTTP/SSLを取り上げているが、ここで説明していることはHTTP/SSLに限った話ではない。重要なことは、論理層２は論理層１の上に積み上げられ、論理アドレスは論理層２の中で扱われるようになることである。論理ノードは、論理層２上でお互いを認識し、種々選択して接続する。【００３９】
論理層２の脆弱性が発覚しセキュリティが破られると、図５のように、その脆弱性を改善した論理層３が開発され、使用されるようになる。この例では、OAuthやDKIMを取り上げているが、ここで説明していることはそれらに限った話ではない。重要なことは、論理層３は論理層２の上に積み上げられ、論理アドレスは論理層３の中で扱われるようになることである。論理ノードは、論理層３上でお互いを認識し、種々選択して接続する。【００４０】
このように、ハッカーの攻撃と論理層の積み上げには際限がない。更に、どんなに論理層を改善し積み上げても、論理アドレスと物理アドレスは関連付けられない。これは、論理層上にどのようなセキュリティ技術を構築しても、ハッカーは物理層を攻撃できることを意味している。物理層への攻撃が意味を持つのは、物理的実態を持つ物同士が広大なネットワークを構築する物のインターネット（Internet-of-Things、IoT）である。【００４１】
IoT以前のネットワークでは論理層の防御で十分であったが、IoTの時代に入るとネットワーク化された機器（産業機器、産業ロボット、家電製品、インフラ設備、自動運転車などなど）をどのように安全に扱えるようにするかが大きな問題になってくる。【００４２】
一方、論理層のセキュリティ技術にも昨今重大な革新があった。それがブロックチェーンと呼ばれるものである。ブロックチェーンは、ビットコインと呼ばれる暗号通貨の送金データを改ざん不能にするために考案された公開台帳システムである。詳細は後で述べるが、簡単に言えば、ある論理層上でつながっている不特定多数の論理ノード同士がお互いの通信を見張り合い、不正な改ざんや送金をできないようにするシステムである。ブロックチェーンのお蔭で、銀行を介さずに国の内外を問わず安全に送金できるようになる。すなわち、銀行を介さないので送金手数料が限りなくゼロに近づく。更に、政府や税務当局が一切の取引を監視することができる。その上誰も改ざんできない。【００４３】
ブロックチェーンは論理層上で完結する金融サービスの大幅なコストダウンと時間短縮を実現可能とし、情報発信の大幅なコストダウンと時間短縮を実現するインターネット以来の大革新である。このブロックチェーンを通信階層の中に組み込んだ概念図が図６である。ブロックチェーン層の上には論理層３があり、更にその上に各論理ノードが配置されている。これらの論理ノード間の通信は、ブロックチェーンによる公開台帳システムで改ざん不可能な形で衆人監視される。その中には各国の税務当局や情報当局そ公的期間も含まれるだろう。
（ブロックチェーン）【００４４】
ここでブロックチェーンについて簡単に説明する。【００４５】
ブロックチェーンは、ピア・トゥ・ピア（P2P）型ネットワークにおける公開台帳システムである。P2P型ネットワーク構造では、中核を担うサーバーの存在を仮定せず、ネットワークに結節するすべてのノード（結節点）が非中核的であり、対等であり、互いを監視し合うことによってセキュリティを担保することが必要である。すなわち、中核（コア）となるクライアント・サーバーの存在を仮定したクライアント・サーバー型ネットワークでは実現不可能なアプリケーションを提供できる。【００４６】
その最も重要なものがビットコインと呼ばれる暗号通貨による送金システムである。ビットコインでは、まず過去の処理履歴と処理する主体となるアカウント名を合成して暗号化する。それを電子署名として転送し新たな処理とするものである。したがって、処理手段を金融機関にゆだねない。更新され転送された処理履歴は、ネットワーク上の他の多くの非中核的ノードによって監視され、多数決に似た手法で公認される。またこのように電子署名を生成するため秘密鍵で暗号化することを署名するという。【００４７】
処理履歴の転送は通貨の転送と同義であり、公認された処理履歴が通貨のように扱われる。こうして、銀行のように特定の中核的存在を介さずに処理が進行してゆく。【００４８】
ネットワーク上を流れる電子署名に利用される暗号は、アリスとボブの喩で有名な公開鍵暗号と呼ばれる一般的なものである。図７に示すように、アリスは予めボブに自分の公開鍵を送っておく。この公開鍵はネット上で誰かに盗み取られても構わない。ボブは、アリスから貰った公開鍵で手紙を暗号化し、アリスに送る。この暗号化された手紙を解読するには、アリスの公開鍵と対になっている秘密鍵が必要である。したがって、暗号が解読されない限り、ネットワーク上で誰かに盗まれても手紙の中身を読まれることはない。その秘密鍵を持っているのはアリスだけだからである。アリスは、自分で持っている秘密鍵でボブの手紙の暗号を解き、それを読むことができる。【００４９】
このように、公開鍵はネットワーク上に晒して構わない。したがって、アリスが公開鍵を送るのはボブだけではない。ただし、その公開鍵で暗号化された暗号を解いて手紙を読めるのは、暗号が解読されない限り秘密鍵を所有しているアリスだけである。公開鍵と秘密鍵は必ず一組で生成されるが、公開鍵から秘密鍵を再生することは現実的に不可能であるようにしなければならない。また、秘密鍵で暗号化した手紙は公開鍵で解号できる。公開鍵と秘密鍵の区別は、基本的に公開するか秘密にするかのみである。【００５０】
公開鍵のもう一つの重要な役割は、アリスへ手紙を送るための宛先、すなわち、アリスのネットワーク上のアドレスになることである。ボブが暗号化した手紙をネットワークに流すとき、ネットワークに接続している任意の受信者の手に渡ることになる。このとき解号できなければ読めない。どのようにしても読めないということは、受信しなかったことと同意である。したがって、アリスのみが解号できるということは、アリスのみに届いたということと等価である。こうして、公開鍵のもう一つの役割がネットワーク上のアドレスになることが明らかになる。したがって、ビットコインで使用される公開鍵は、ビットコインアドレスとも呼ばれる。【００５１】
図８は、電子マネー等を納める財布の基本概念の一例を説明するための図面である。ビットコインなどの暗号通貨には共通の構図である。財布にはネットワーク上のアドレスが予め付与され、財布の中身には、何らかの貨幣価値のあるもの（通貨やそれと等価なコインなど）が納められる。更に、何らかの暗号技術を用い、アドレスと財布の中身を電子署名として財布に取り付けられるようになっている。【００５２】
図９に示すように、このような財布は、たとえば、専用アプリをパーソナルコンピューター、タブレット、スマートフォン、スマートカード等のハードウェアにインストールして使うことができる。そのとき、財布の中身は、専用アプリをインストールしたハードウェアのストレージにデジタルデータとして保存される。このデジタルデータの管理は、たとえば、P2Pを前提とした電子処理では、ハードウェアの管理者・所有者が自ら責任を持って行う必要がある。この点がクライアント・サーバー型と異なる点である。クライアント・サーバー型では、金融機関などが責任を持って行うことになる。P2Pでの電子処理は、このように中核的機能を有する金融機関のような存在を必要としない。【００５３】
図１０は、処理（N-2、N-1）、処理（N-1,N）、処理（N、N＋１）、…の鎖を示す図面である。処理（N-2,N-1）は財布（N-2）から財布（N-1）への何らかの処理であり、処理（N-１,N）は財布（N-１）から財布（N）への何らかの処理であり、処理（N,N＋1）は財布（N）から財布（N＋1）への何らかの処理である。ただし、Nは任意の自然数。【００５４】
財布（N-1）の中身は、たとえば、どこかから振り込まれた１０００円だったとしよう。この１０００円の振り込み元を財布（N-2）とし、更にこの１０００円には電子署名（N-2）が添付されているとする。ただし、１０００円というのは一例に過ぎず、他の貨幣価値と等価または可換なデジタル情報であれば何でも良い。財布（N-１）は、財布の中身である１０００円と、次の電子署名作成のために用いる秘密鍵（N-１）と、それと一組をなす固有の公開鍵（N-１）からなる。上述したように、公開鍵（N-１）は、財布（N-１）のネットワーク上のアドレスである。一例として、ビットコインアドレスが上げられる。【００５５】
次に、公開鍵（N-１）、財布（N-１）の中身、および電子署名（N-2）から、ハッシュ関数（一例としてSHA-256）を用いて、ハッシュ値（N-１）を作成する。このハッシュ値（N-１）を財布（N）に送付し、財布（N）ではそれを財布（N）の中身として保存する。一方、転送元の秘密鍵（N-１）を用いて、財布（N）のアドレスである公開鍵（N）と中身であるハッシュ値（N-１）を暗号化して電子署名（N−１）を生成し、ハッシュ値（N-１）と共に財布（N）に転送する。【００５６】
こうして財布（N）は、ハッシュ値（N-１）と、電子署名（N-１）と、さらに一組の固有の公開鍵（N）及び秘密鍵（N）から構成されることになる。こうして、財布（N-１）から財布（N）へ1000円を送金する処理が完了する。【００５７】
ハッシュ値（N-１）には、この1000円が財布（N-１）から来たという情報が含まれているはずである。しかしながら、ハッシュは暗号と異なり逆変換不能なので、ハッシュ値（N-１）を逆変換（解号）してそれを読むことができない。そのため、電子署名（N-１）が添付されている。この電子署名（N-１）は、秘密鍵（N-１）を使い、公開鍵（N）およびハッシュ値（N-１）をまとめて暗号化したものである。したがって、この電子署名が本当に財布（N-１）のから来たものであるかどうか確かめるには、この電子署名（N-１）を公開鍵（N-１）で解号したものと、財布（N）に納められている公開鍵（N）およびハッシュ値（N-１）と比較すれば良い。暗号が破られていない限り、一致していれば確かに秘密鍵（N-１）で電子署名したことに偽りはない。一致していなければその電子署名は偽りである。あるいは別の公開鍵、例えば公開鍵（Q）で解号した結果と一致すれば、公開鍵（Q）をアドレスとして所有する財布（Q）が不正処理したことが判る。【００５８】
ただし、過去の履歴に不正処理がないことを証明するには別の方法が必要である。なぜなら、電子署名だけでは、秘密鍵（N-１）を正規に所有している者が不正を働く可能性を否定できないからである。たとえば、所有者による秘密鍵の乱用が考えられる。P2Pを前提にしたビットコインでは、それを「仕事による証明」（PoW）によって防ごうとしている。これは、概ね上手く行っていると考えられている。「仕事による証明」（PoW）について下で述べる。【００５９】
一般に、クライアント・サーバー型のネットワークでは、処理の確認には信頼すべき第三者の介在が必要である。それは、例えば信頼のおける金融機関などであり、信頼のネットワーク上では中核的ノード（サーバー）となる。すなわち、財布（N-１）の所有者は、ある金融機関を介して財布（N）の所有者に送金することができる。しかしながら、このような中核的ノードの信頼性を完全に証明する方法はなく、送金処理の度に送金元に確認依頼が寄せられることになる。複数の金融機関を跨いだ送金などもあり、確認依頼は膨大な数になる。また、一つの確認作業には一定以上のコストが必要である。そのため送金処理の手数料には一定の下限が設けられることになる。たとえば、この下限を５００円とすると、５００円以下の送金をする度に５００円余計に支払わなければならなくなる。こうして、クライアント・サーバー型は無数の少額の処理を前提としたビジネスには向かないことが判る。【００６０】
図１０では、続いて公開鍵（N）、財布（N）の中身（この場合ハッシュ値（N-１））、および電子署名（N-１）から、ハッシュ関数（一例としてSHA-256）を用いて、ハッシュ値（N）を作成する。財布（N）はこのハッシュ値（N）を財布（N+1）に送信し、財布（N＋１）はそれを財布（N+1）の中身として納める。一方、財布（N）は、秘密鍵（N）を用いて、財布（N+1）のアドレスである公開鍵（N+1）とこのハッシュ値（N）を暗号化し、電子署名（N）を生成する。続いて、ハッシュ値（N）と共にこの電子署名（N）を財布（N+1）に送付する。【００６１】
以上から、財布（N）の中身には、財布（N-１）から財布（N）への処理（N-１、N）がハッシュ値（N-１）として記録されていることが判る。同様に、財布（N+１）の中身には、財布（N）から財布（N+1）への処理（N、N+1）がハッシュ値（N）として記録されていることが判る。こうして、任意の財布の中身は、過去のすべての処理履歴を連鎖的に含んでいることが判る。すなわち、過去の最新のハッシュ値が、過去のすべての履歴を代表している。【００６２】
一方、一つの財布に送金する財布は、図１０の例のように一つとは限らない。実際には複数の財布から一つの財布に送金する場合は少なくないだろう。また、一つの財布から複数の財布に送金される場合も少なくないだろう。こうして、送金の処理履歴はより複雑になり、その作業を一つ一つ確認が必要なクライアント・サーバー型で行うには膨大なコストがかかることが判る。【００６３】
また、P2Pで過去の送金処理をすべて記録しておくということは、一つのノードが過去に遡って全世界のノードのすべての処理履歴を保存しておかなければならないということである。これは、財布の専用アプリをインストールしたハードウェアのストレージを飽和させてしまう可能性がある。しかしながら、最新の履歴を含むハッシュ値は必ずたった一つである。それをメルクルの根という。したがって、メルクルの根から過去を遡ることができる。それは、図１１のように、メルクルの根から枝分かれした樹形図のようになる。これをメルクル樹形図という。たとえば、メルクルの根であるハッシュ値（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＋１）からの送金であったことが判る。このときM＋１はN−１であることが判る。続いてハッシュ値（N-3）を含む財布（N-2）の公開鍵（N−2）も同様の方法で検索できる。この作業を繰り返すことによって処理履歴を遡ることが可能である。ここでMおよびNは任意の自然数とする。【００６５】
こうして、論理的には過去の処理履歴を遡ってゆくことができるわけであるが、このようにハッシュ値を使って過去の履歴をひとつずつ遡ることは実は必ずしも必要ない。むしろ、数百から千個程度の処理を一塊に集め、これらの処理が現実に存在したことを何らかの方法でまとめて承認してしまえば良い。具体的には、メルクルの根以外のハッシュ値をすべて削除し、最新のハッシュ値（たとえばABCD）を符号として用いれば良い。一つの符号で代表される処理の集まりをブロックと呼ぶ。こうして財布の専用アプリをインストールしたハードウェアのストレージを節約することが可能である。【００６６】
このようにメルクルの根（上の例ではハッシュ値（ABCD））に代表される過去の処理の集まりが確かに存在していたことを、タイムスタンプを付けることで承認する。こうして承認されたブロックがネットワーク上に公開される。この公開は、公証役場に書類を持ち込み、日付を付けて封書してもらう日付認証に似た作業（ワーク）である。ビットコインでは、新たなブロックの公開を記帳と呼び、記帳した者には認証作業の対価として一定の報酬が与えられる。最初の２１０，０００番目までの記帳では、一回あたりの報酬は５０BTCである。BTCはビットコインの単位。２１０，００１番目から４２０，０００番目までは２５BTCである。すなわち、２１０，０００番目ごとに半減して行き、６，９２９，９９９番目のブロックが記帳されるときゼロになる仕組みである。２０１６年６月時点の報酬は、記帳一回で２５BTCである。【００６７】
P2Pでは公証役場（中核的ノードの一例）がないので、公証人に代わって処理の集まりを承認し、タイムスタンプを付けるのはP2Pに参加している不特定多数のビットコインの利用者である。しかしながら一度にタイムスタンプを添付して新しいブロックを公開（記帳）できるのは一人である。したがって、記帳して与えられる報酬を求め、複数の利用者が先を争って承認作業を行う。【００６８】
一例として図１２を用い、この承認作業を簡単に説明する。まず承認済みの過去のブロックに関する何らかのハッシュ値を獲得する。次にネットワーク上に存在する未承認処理の集まりを発見し、その集まりのメルクルの根（ハッシュ値）を獲得する。この二つのハッシュ値に可変のノンス値というものを追加し、更にハッシュ化してブロックハッシュを作る。このとき、ビットコインではハッシュ関数としてSHA-256を利用する。もちろん、他のハッシュ関数を利用してブロックハッシュを生成することも可能である。【００６９】
ノンス値は、一般に、３２ビットの任意の値である。このノンス値を含めて生成されたハッシュ値（ここではブロックハッシュ）は２５６ビットの値である。２の２５６乗は１０の７７乗より大きく、ブロックハッシュは膨大な自由度を持っていることが判る。前記ノンス値を調整すると、ブロックハッシュの最初の数ビットをゼロにすることができる。一例として、新たに生成したブロックハッシュの最初の１６ビットがすべてゼロになる確率は２の１６乗分の１、すなわち65,536分の１である。すなわち、偶然にはほとんど起こりえないことであり、このようなノンス値を掘り当てるには相応の仕事（ワーク）が必要である。【００７０】
ただし、ハッシュ関数は非可逆的である。したがって、最初の数ビット（この例では１６ビット）がゼロとなるハッシュ値（ここではブロックハッシュ）を生成するようなナンス値を、逆変換で求めることは一般に不可能である。つまり、ナンス値を変えながらハッシュ化を繰り返し、その都度生成したハッシュ値の最初の数ビットがすべてゼロになるまでそれを繰り返さなければならない。こうして、ブロックを生成するためのナンス値の決定には、一定以上の計算機の活用が不可欠であることが判る。その対価として、ブロックを生成すると報酬（一定のビットコイン）が与えられる。金を採掘するのに似ているので、この仕事をマイニングと言う。この報酬を狙ってマイニングする（ビットコインの）利用者をマイナーと言う。【００７１】
P2Pネットワークでは、マイニングを行うのは特定の中核的機能を持つノードではない。一定以上の計算機リソースを活用できれば誰でもマイニング可能である。マイナーは、より正確には、そのマイナーが活用するP2P上のノードは、ナンス値を変更しながらネットワーク上で総当たり探索を行い、最初の数桁がすべてゼロとなるような未承認処理の集まりを見つけ出せばよい。つまり、ナンス値を変更しながらネットワーク上を採掘（マイニング）して回っているのである。このように、必ずしも特定の未承認処理の集まりに対してナンス値を調整する必要はない。【００７２】
こうして最初の数ビット（この例では１６ビット）がゼロのブロックハッシュが掘り出されると、このブロックハッシュに対応する未承認処理の集まりは、新たに承認されたブロックとして前出の承認済みの過去のブロックに連結することが許される。すなわち、最初の所定のビット数をすべてゼロにすることがブロック連結の条件である。そして、最初にこの条件を満たすブロックハッシュを掘り当てたマイナーが記帳することを許される。この作業（マイニング）を繰り返すことによって複数のブロックが連結され、ブロックチェーンが形成される。【００７３】
上述したことから判るように、ビットコインでは通貨の信頼性は過去の処理履歴の信頼性である。公正認証に代わりその信頼性を保証しているのがブロックチェーンである。ブロックチェーンが長く伸びるほど改ざんが難しくなる。たとえば、一部のブロックのデータを書き換えると、前後につながったブロックとの連結条件（ブロックハッシュの最初の数ビットがすべてゼロ）を満たさなくなる。そこで前後のブロックのナンス値を修正してこの条件が満たされるようにしなければならない。上述したように、ハッシュ関数は非可逆なのでそれには相応の計算が必要とされる。しかしながら、前後のブロックのナンス値を調整すると、更にその先のブロックのナンス値も調整しなければならない。結局、一部のデータを改ざんするだけでブロックチェーンに連結されているすべてのブロックのナンス値を調整しなければならなくなる。これは、更に膨大な計算機能力を必要とする。こうして、ブロックチェーンが長く伸びるほど幾何級数的に改ざんが難しくなるとされている。【００７４】
それでもブロックチェーンにも弱点はある。まず暗号が破られ秘密鍵が盗用されることである。財布のアドレスである公開鍵がネット上に公開されており、暗号を破り公開鍵から秘密鍵を再生すれば他人のアカウントで自由に電子署名を偽造できるようになる。これは電子署名を無意味化するのですべての処理が信頼できなくなる。【００７５】
暗号の最大の脅威は量子コンピュータである。ブロックの生成が１０分間で一つと仮定すると、最後のビットコインが採掘されるのは２１４０年頃と試算されている。それまでに量子コンピュータが普及している可能性は低くないと考えられる。そうなると、現代の暗号を使った電子署名は成り立たなくなるので、最後のビットコインが採掘される前にブロックチェーンは使われなくなるだろう。しかしながら、それまでにはまだ大分時間があると考えられる。いずれにしろ、理論的根拠はないが今後１０年から数十年の間ブロックチェーンは世界中で広く使用されると期待される。【００７６】
一方、通貨の偽造とは過去の処理履歴の改ざんや不正コピーである。処理の検証が成功した証として電子署名を処理履歴に添付するのであるから、通貨の偽造とは電子署名の偽造である。電子署名を作成できるのは、暗号が破られない限り、唯一電子署名に必要な秘密鍵を所有する前の財布の所有者のみである。逆に言えば、暗号が破られなかったとしても、秘密鍵の正規の利用者は過去の処理履歴を改ざんしようと思えば可能である。しかしながら、上記のように一度ブロックチェーンをくみ上げてしまうと、たとえ秘密鍵の正規の利用者であっても、ブロックチェーンを連結させるナンス値すべてを改ざんすることは難しい。ブロックチェーンが長く伸びるほどその難易度は劇的に上昇する。すなわち、一度ブロックチェーンを長くしてしまえば過去に遡って改ざん、あるいは、編集することはほぼ不可能になる。これが「仕事による証明」（PoW）の仕組みである。【００７７】
しかしながら、新たな処理をする場合には秘密鍵の正規の利用者が不正処理を行える方法がある。たとえば、財布（N）から財布（N+1）に正規の処理（N,N+1）が行われる一方、財布（N）の所有者は、秘密鍵（N）を悪用して電子署名（N’）を生成し、不正が発覚する前にそれを添付して財布（M）に送金する。すなわち、貨幣を不正に発行したのと同じことになる。これを二重処理問題という。【００７８】
このように処理（N,M）は不正処理である。財布（M）の所有者は、電子署名（N’）を信じて次の処理を行い、財布（M+1）に送金する。財布（N+1）の所有者も電子署名（N）を信じて次の処理を行い、財布（N+２）に送金する。不正処理は唯一処理（N,M）のみであるが、その後処理（M+１、M+2）、処理（M+2、M+３）…と続いて行く。これらをまとめて新たなブロックが生成できる。【００７９】
ここで、不正処理（N,M）を含まない正規のブロックは、財布（N）で二重処理が行われる以前から存在する。したがって、不正処理（N,M）を含むブロックから派生するブロックの生成速度が正規のブロックの生成速度を凌駕しない限り、長いブロックが正規のブロックである。ブロックチェーンでは、チェーンの長さで真贋を判定している。【００８０】
しかしながら、不正を働く側の計算能力が全世界の他のマイナーに分配されている計算能力を凌駕するとき、不正チェーンが正規のチェーンより長くなる可能性がある。これを「５１％攻撃」という。【００８１】
５１％攻撃は、費用対効果の関係で現実的ではないという議論がある。しかしながら、ある集団の財政基盤を脆弱にするためサイバー攻撃として行われる場合はこの限りではない。たとえば、ある大国でブロックチェーンを基盤としたフィンテック２．０が広く普及していたとしよう。ある小国がこの大国の金融システムを麻痺させるためマイニングに国防費用を投入することがあるかも知れない。この場合核兵器の開発よりコストを抑えることが可能となるだろう。また、クラウドマイニングの発達により一部の業者が一時的に５１％攻撃の能力を獲得することはありえる。【００８２】
この場合攻撃されるであろう大国もブロックチェーンに参加する必要が出てくる。複数の国家が参加し、どの国家も５１％攻撃を実施できないような状態にしておけば問題はなくなる。このようにブロックチェーンはP2Pであるが、国際的な情報通信インフラという側面を併せ持つようになるだろう。【００８３】
このように、P2Pネットワーク上で処理の履歴を共有しマイナーに承認作業を任せ信頼性を担保するという公開台帳システムの考え方は、情報通信インフラとしてビットコイン以外にも幅広い応用が期待されている。これは、最低コストで過去の処理の改ざんを現実的に不可能にできるという理由による。現実的に改ざん不可能なデータベースの需要は、たとえば、日々増大する蓄積された医療データを利用したヘルスケアや、日々増大する蓄積された処理データを利用した証券取引や、その他日々増大する蓄積されたビッグデータを活用するありとあらゆる情報サービスが考えられる。そして、フィンテック２．０と呼ばれる世界的な金融技術革新の波を引き起こしている。【００８４】
５１％攻撃を抑制するにはもう一つポイントがある。まず、攻撃するノードの数を無限大にしないことである。ノードに割り当てるアドレスがIPアドレスのような論理アドレスであると、攻撃者は無限の数の攻撃用ノードを獲得することが可能となる。したがって、P2Pに結節するノードは、すべてCPUなどとリンクした物理アドレスを割り当てるべきである。この考え方をOne-CPU-One-Vote（一台一票）と呼ぶ。たとえば、投票用紙一人一枚というのは、多数決のようなシステムでは不可欠な条件である。【００８５】
こうして、秘密鍵と物理的実態を持つ個別認証とを関連付けることが必要であることが判る。しかしながら、秘密鍵はソフトウェアによる産物であり物理的実態とは縁がない。そもそもソフトウェアは、同じ規格で設計・製造されたどの情報機器にインストールしても同じく機能するように作られたものである。それゆえ物理的実態とは成り立ちから言って無縁である。にも拘わらず、ネットワークを構成するのは、無数の情報機器とそれらを連結し電子データを交換する有線無線の信号伝達路の集合である。情報機器ばかりでなく、信号伝達路も物理的実態であることは自明である。ここに秘密鍵と物理的実態とを関連付けるヒントがある。【００８６】
具体的には、公開鍵と物理アドレスを改ざんされない何らかのの方法でリンクさせることである。【００８７】
ここで図６に戻ろう。いまだに物理アドレスは論理アドレスと分離されたままである。５１％攻撃を防ぐのみならず、ブロックチェーンのメリットが物理的実態を持つノード同士のネットワーク、すなわち、IoTには及ばないことを意味している。しかしながら、もしこの問題を解決できれば、５１％攻撃を防ぎつつ公開台帳システムをIoTに持ち込むことが可能となる。
(物理アドレス)【００８８】
図１３は、現在物理アドレスとしてもっとも広く使われているメディアアクセスコントローラー（MAC）アドレスの活用事例を簡便にまとめたものである。【００８９】
MACアドレスは、情報機器に搭載されているイーサネット（登録商標）カードに固有の管理番号として割り当てられているコード情報の一種である。典型的なイーサネット（登録商標）カード３０００は、たとえばMAC用演算処理チップ３０２０と、MACアドレスを記録する不揮発性メモリチップ３０１０を含む。【００９０】
電気電子技術者学会（IEEE）によって標準化され、図１４に一例を示すように、長さ４８ビット（６バイト）、したがって情報量およそ２８０兆もの０と１の数列の集合である。上位の２４ビット（図１４の例で左半分）はベンダーコード３０７１と呼ばれ、ベンダーごとに割り当てられる。下位の２４ビット（図１４の例で右半分）は、シリアル番号３０７２と呼ばれ、各ベンダーが重複しないよう割り当てている。ベンダーコード３０７１の最後の２ビットは、ULビットとIGビットである。MACアドレスを表記するには、このULビットとIGビットを含む４８ビットの数列を8ビットごとに区切ってそれぞれ１６進数で表す。【００９１】
MACアドレスがグローバルアドレスの場合、ULビットは１である。そうでない場合０である。すなわち、グローバルアドレス（ULビット＝１）の場合では全世界で重複を起こさないよう、MACアドレスを割り当てられなければならない。ベンダーコードの２４ビットの内、別の１ビットはIGビットと呼ばれるものに割り当てられる。IGビットが０の場合ユニキャスト通信を意味し、１の場合はマルチキャスト通信を意味する。ユニキャスト通信とは、情報機器のネットワークの中において単一の送信先を指定してデータ（フレーム）を送信することである。これに対しマルチキャスト通信とは、情報機器のネットワークの中において、複数の送信先を指定してデータ（フレーム）を送信することである。こうして、４８ビットの内ULビットとIGビットの２ビットを除いた４６ビットが実際に割り当てられるMACアドレスの自由度ということになる。数にしておよそ７０兆ほどである。【００９２】
ここで注意すべきことは、現在現役で使用されている情報機器だけでなく、すでに廃棄されたり紛失したりして使用されなくなった情報機器にまで渡って全世界で重複しないよう、MACアドレスを割り当てられなければならないことである。現在、MACアドレスはまだ枯渇していない。しかしながら来るIoTの時代には、現役でネットワークに接続する物理ノードの数は１０兆個を超えると考えられている。しかしながら、MACアドレスは編集可能となっているため、何らかの理由で使われなくなったMACアドレスを再利用することができる。こうして枯渇の問題を回避できるように見えるが、MACアドレスの編集はMACアドレスの偽造や乗っ取りを容易にしているのも事実である。（
【非特許文献１】参照。）
【非特許文献１】http://pc.mogeringo.com/archives/1826
【００９３】
このように、MACアドレスは図１４のフォーマットに従ってイーサネット（登録商標）ボード３０００に割り当てられ不揮発性メモリ３０１０に書き込まれたコードであり、書き換えも可能である。したがって、一台一票を保証できない。
（書き換え不能の物理アドレス）  【００９４】
このように、MACアドレスに代わり少なくとも（書き換え不能の物理アドレス）が必要なことは明白である。それを実現する方法は、ソフトウェアでも、ネットワークでも、ハードウェアでも何でもよい。いずれにしろ、ソフトウェア技術、ネットワーク技術、ハードウェア技術、あるいは、それら技術の何等かの組み合わせによって実現する認証装置が存在し、物理的実態を有するチップに搭載することが可能であれば十分である。
（物理的にクローン不可能な機能）【００９５】
このような状況において、ネットワーク上のデバイスの認証として近年期待されているものに、物理的にクローン不可能な機能（PUF）がある。（
【特許文献１−４】参照。）これは、指紋や網膜などの生体情報を用いて人の個人認証を行うのと同様に、半導体のチップにおいても一つ一つ異なる物理的特性を用いてチップの固体認証行うものである。しかもその特性が、物理的にクローン不可能であるという特徴を持っている。PUFに要求される主な特徴は、（１）同一のPUFに異なる入力をすれば常に異なる出力をすること。（２）同一の入力をした異なるPUFは常に異なる出力をすること。（３）入力と出力の組み合わせを盗まれても、未知の入力に対する出力は予測不可能であること、（４）入力と出力の関係が安定していて信頼できること、などである。
【００９６】
【特許文献１】特許公開２００９-５１９４７３
【特許文献２】特開２０１５−２０１８８４号公報
【特許文献３】公告番号  ＷＯ２０１１１１８５４８Ａ１
【特許文献４】特開２０１３−１３１８６８号公報
【００９７】
ＩＣチップ製品（半導体チップ製品）の場合、パッケージ剤の化学光学的性質を用いたＰＵＦを利用するもの（コーティングＰＵＦ）
【特許文献１】と、チップそのものに依存したＰＵＦを利用するもの（チップＰＵＦ）がある。特に近年では、チップ内に保存された暗号鍵の盗難や偽造チップ問題が注目されていることもあり、後者のチップPUFをチップ内に搭載する技術への注目度が高い。
【００９８】
チップPUFは、回路のばらつきを利用した回路ＰＵＦと、回路以外の微細構造のばらつきを応用したもの（製造ＰＵＦ）
【特許文献２】に大別できる。回路ＰＵＦは、更に、回路の配線遅延を利用するもの（遅延ＰＵＦ）
【特許文献３】と、回路のメタスタビリティを利用するもの（メタスタビリティＰＵＦ）
【特許文献４】に分かれる。遅延ＰＵＦとは、ＩＣ内で同様の設計仕様で集積化された複数の回路の動作時間に関する制御不能のばらつきを利用するものである。利用される回路の代表例は、アービター回路、グリッチ回路、リング発信回路などである。メタスタビリティＰＵＦで使用される回路は、主にスタティックランダムアクセスメモリ（以下ＳＲＡＭ）とラッチ回路（バタフライＰＵＦ）である。
【００９９】
しかしながら回路ＰＵＦには致命的な弱点がある。個体差が小さく出力が不安定であり、（入出力の信頼性）を満たすのに不利である。更に温度変化などの外部環境に影響されやすく、フォールト攻撃に弱い。そのため増幅回路や温度センサー回路などを追加する必要がある。こうして回路設計への負荷が高くなり、チップに搭載する際の認証装置のコストを増大させてしまう。程度にもよるがコスト増は量産チップ製品ではできる限り避けなければならない。チップには暗号装置と連携させるためPUF以外にも付属部品が必要である。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.
【０１０２】
上述のように、様々な種類が提案されているPUFには個々に解決すべき問題がある。
【発明の開示】
【発明が解決しようとする課題】
【０１０３】
本発明は上記事情を鑑みて成されたものであり、論理ネットワークと巧妙に連携することによって物理アドレスの改ざんを防ぐ技術を提供し、ハードウェアのネットワーク管理をより安全にする方法を提供することを目的とする。
【課題を解決するための手段】
【０１０４】
本発明は、上記課題を解決するため、以下の手段を採用する。【０１０５】
複数のノードから構成されるネットワークにおいて、各ノードが、それぞれ処理ユニットおよび認証コアから構成され、
前記認証コアは、それぞれ認証装置と鍵生成装置を有し、
前記認証装置は、それぞれ固有の物理アドレスを有し、
前記鍵生成装置は、前記物理アドレスから互いに一対の組みをなす秘密鍵および公開鍵を生成し、
前記公開鍵は、前記処理ユニットの論理アドレスとなり、
前記秘密鍵は、前記認証コアに閉じ込められ、
互いに一対の組みをなす前記秘密鍵および前記公開鍵によって、前記物理アドレスと前記論理アドレスが共に認証アドレスとして関連づけられ、
前記処理ユニットが前記各ノード間の情報通信の処理を司り、前記認証コアが前記各ノードの認証を司る、
ことを特徴とする。【０１０６】
複数のノードから構成されるネットワークにおいて、
前記ネットワークを構成する第一のノードは、第一の処理ユニットおよび第一の認証コアから構成され、
前記ネットワークを構成する第二のノードは、第二の処理ユニットおよび第二の認証コアから構成され、
前記第一の処理ユニットは、第一の公開鍵、第一のハッシュ値、第一の電子署名から構成され、
前記第二の処理ユニットは、第二の公開鍵、第二のハッシュ値、第二の電子署名から構成され、
前記第一の認証コアは、第一の物理アドレス、第一の秘密鍵、および、第一の鍵生成装置から構成され、
前記第二の認証コアは、第二の物理アドレス、第二の秘密鍵、および、第二の鍵生成装置から構成され、
前記第二のハッシュ値は、前記第一の処理ユニットをハッシュ化したものであり、かつ、前記第一のノードから前記第二のノードに転送された情報の少なくとも一部であり、
前記第二の電子署名は、前記第二のハッシュ値および前記第二の公開鍵を前記第一の秘密鍵で暗号化したものであり、前記第二のハッシュ値と共に前記第一のノードから前記第二のノードに転送された情報の別の一部であり、
前記第一の鍵生成装置は、前記第一の物理アドレスから前記第一の公開鍵と前記第一の秘密鍵とを互いに一対一の組みを成すように生成し、
前記第二の鍵生成装置は、前記第二の物理アドレスから前記第二の公開鍵と前記第二の秘密鍵とを互いに一対一の組みを成すように生成する、
ことを特徴とする、
ネットワークに関する。【０１０７】
複数のノードから構成されるネットワークにおいて、
各ノードが、それぞれ処理ユニットおよび認証コアから構成され、
前記認証コアは、それぞれ認証装置と鍵生成装置を有し、
前記認証装置は、それぞれ固有の物理アドレス、および、コード変換装置を有し、
前記コード変換装置は、前記物理アドレスから秘密鍵を生成し、
前記鍵生成装置は、前記秘密鍵から公開鍵を生成し、
前記公開鍵は、前記処理ユニットの論理アドレスとなり、
前記秘密鍵は、前記認証コアに閉じ込められ、
前記秘密鍵および前記公開鍵が互いに一対の組みをなし、前記物理アドレスと前記論理アドレスが共に認証アドレスとして関連づけられ、
前記処理ユニットが前記各ノード間の処理を司り、前記認証コアが前記各ノードの認証を司る、
ことを特徴とする、
ネットワークに関する。【０１０８】
複数のノードから構成されるネットワークにおいて、
前記ネットワークを構成する第一のノードは、第一の処理ユニットおよび第一の認証コアから構成され、
前記ネットワークを構成する第二のノードは、第二の処理ユニットおよび第二の認証コアから構成され、
前記第一の処理ユニットは、第一の公開鍵、第一のハッシュ値、第一の電子署名から構成され、
前記第二の処理ユニットは、第二の公開鍵、第二のハッシュ値、第二の電子署名から構成され、
前記第一の認証コアは、第一の物理アドレス、第一の秘密鍵、および、第一の鍵生成装置から構成され、
前記第二の認証コアは、第二の物理アドレス、第二の秘密鍵、および、第二の鍵生成装置から構成され、
前記第二のハッシュ値は、前記第一の処理ユニットをハッシュ化したものであり、かつ、前記第一のノードから前記第二のノードに転送された情報の少なくとも一部であり、
前記第二の電子署名は、前記第二のハッシュ値および前記第二の公開鍵を前記第一の秘密鍵で暗号化したものであり、前記第二のハッシュ値と共に前記第一のノードから前記第二のノードに転送された情報の別の一部であり、
前記第一の鍵生成装置は、前記第一の秘密鍵から前記第一の公開鍵を生成し、
前記第二の鍵生成装置は、前記第二の秘密鍵から前記第二の公開鍵を生成し、
前記第一の秘密鍵と前記第一の公開鍵は、互いに一対一の組をなし、
前記第二の秘密鍵と前記第二の公開鍵は、互いに一対一の組をなし、
前記第一の秘密鍵は、前記第一の物理アドレスから生成され、
前記第二の秘密鍵は、前記第二の物理アドレスから生成される
ことを特徴とする、
ネットワークに関する。
【発明の効果】
【０１０９】
本発明によれば、真に物理的実態を持つネットワークノードに対して一意に割り当てられ、公開台帳によって物理アドレスの改ざんを防ぐ技術を提供し、IoTに接続するハードウェア間の情報通信を安全にすることが可能となる。【０１１０】
以下、発明を実施するための最良の形態について、具体的に説明する。
【発明を実施するための最良の形態】
【０１１１】
上述してきたように、ネットワーク技術、ソフトウェア技術、ハードウェア技術、あるいは、これらの技術の意図的な組み合わせによって（書き換え不能の物理アドレス）を実現する認証装置を提案する。【０１１２】
これらの特徴を利用するための構成を精緻に設計することにより、論理ノードのネットワーク（論理ネットワーク）で威力を発揮する公開台帳の優れた性能を物理ノードのネットワーク（物理ネットワーク）に適用することが可能となる。以下図面を用いて具体的に説明してゆく。
（第一の実施形態）【０１１３】
図１５は、本願に関連する認証装置を搭載したハードウェアが参加する物理ネットワークと公開台帳を活用する論理ネットワークの関係を説明する図面である。前記ハードウェアは物理的実態を持ち、物理ネットワークを構成するノードとなるので物理ノードである。予め設定した物理アドレスを何らかの方法で秘密鍵と一対一にリンクする。公開鍵暗号によってこの秘密鍵と対をなす公開鍵を論理アドレスとする論理ノードが、この物理ノード、あるいはそれに対応するハードウェアと対をなす。このように論理アドレスと物理アドレスが対をなす通信層を認証層と呼ぶことにする。図２には見られない概念である。【０１１４】
図１０のように、前記物理アドレスとリンクした公開鍵を論理アドレスとする論理ノード間で情報が転送される。財布（N）の中身であるハッシュ値（N-1）は、財布（N-1）の中身であるハッシュ値（N-2）、その論理アドレスである公開鍵（N-1）および電子署名（N-2）をまとめてハッシュ化したものである。ここで、財布（N−１）、財布（N）、財布（N+1）…は、それぞれ論理ノード（N-1）、論理ノード（N）、論理ノード（N+1）…に対応する。【０１１５】
ここで論理ノード（N-1）と対をなす物理ノードのアドレス、すなわち物理アドレス（N-1）を改ざんしたとしよう。この物理アドレス（N-1）と一対一にリンクする秘密鍵（N-1）は、論理ノード（N-1）の論理アドレスである公開鍵（N-1）とも一対一にリンクしている。したがって、物理アドレス（N-1）を改ざんするということは、公開鍵（N-1）の改ざんを同時に行うことを意味する。【０１１６】
図１０で説明したように、公開鍵（N-1）は、ハッシュ値（N-2）および電子署名（N-2）と共にハッシュ値（N-1）にハッシュ化される。したがって、ハッシュ値（N-1）の改ざんである。一般に、ハッシュ値（N-1）は最新のハッシュ値、すなわちメルクルの根とは限らない。しかしながら、メルクル樹形の一部でも改ざんすれば、それはメルクルの根を改ざんしたことと同意である。【０１１７】
図１２で示したように、ブロック（N）の中身を構成するブロックハッシュ（N-1）は、ブロック（N-1）すべてをまとめてハッシュ化したものである。ブロック（N-1）はメルクルの根を含んでいる。このメルクルの根が上述したように改ざんされているとすると、ブロック（N-1）とブロック（N）の間の連結条件を破壊する。したがって、連結条件を回復するよう、ブロック（N−１）のノンス値を再調節する必要がある。たとえば、ブロックハッシュ（N-1）の最初の１６ビットが再びすべてゼロになるようブロック（N-1）のノンス値を再計算しなければならない。ここで、ハッシュ関数は非可逆なのでこの計算には一定以上の計算能力が必要である。【０１１８】
このようにノンス値を再調整して（一例として）最初の１６ビットを全てゼロにすることに成功したとしても、メルクルの根が改ざんされている限り第１７ビット以降のデータは改ざんされる。結局ブロックハッシュ（N-1）の改ざんされ、ブロック（N）とブロック（N+1）の連結条件を破壊する。上述したのと同様にこの連結条件を回復するためには一定以上の計算能力の消費が必要であり、更にブロック（N+1）とブロック（N+2）の連結条件を破壊する。このようにブロックが長く連なっている限り、延々とブロック連結条件の回復のために計算を続けなければならなくなる。【０１１９】
このように十分長いブロックチェーンが構成されている限りたとえ一部であっても物理アドレスの改ざんは現実的に不可能になる。こうして、秘密鍵とリンクした物理アドレスを用いることによってブロックチェーンなどの公開台帳技術で（書き換え不可能な物理アドレス）を実現することが可能となる。【０１２０】
図１６は、論理アドレスと物理アドレスが連結された状態を示している。まず、概念的にデータリンク層と物理層の間に認証層を形成する。公開議暗号で論理アドレス（公開鍵）と秘密鍵が対をなす。更にこの秘密鍵と物理アドレスが互いに一対一の関係をなす。こうして認証層で論理アドレスと物理アドレスが認証アドレスとして関連付けられる。図１５の例では、秘密鍵が認証アドレスに対応する。こうして論理層の上に配置される論理ノードと物理層の下に配置される物理ノードが改ざん不可能な状態で連結される。
（第二の実施形態）【０１２１】
図１７は、処理（N-2、N-1）を財布（N-2）から財布（N-1）に対して行い、処理（N-１、N）を財布（N-１）から財布（N）に対して行い、処理（N、N＋1）を財布（N）から財布（N＋1）に対して行う場合の一例である。ただし、Nは、何らかの方法でネットワークに接続する物理ノードに割り付けられた任意の自然数であり、財布（N）は第Nの論理ノードのことである。各論理ノードは公開鍵、ハッシュ値、電子署名からなり、処理ユニット２００００を構成する。これに対し、上段には、鍵生成装置、認証装置、および秘密鍵（書き換え不可能な物理アドレス）を含む認証コア１００００が３つ並んで存在する。【０１２２】
具体的に働き方を見るため、下段中央の財布（N）に着目する。ハッシュ値（N-1）は財布（N）の中身であり、一つ前の財布（N-1）で次の方法により生成する。まず、財布（N-1）のネットワーク上の論理アドレス（ビットコインではビットコインアドレス）である公開鍵（N-1）、財布（N-1）の中身であるハッシュ値（N-２）、および電子署名（N-2）をまとめてハッシュ化する。ハッシュ化にはハッシュ関数を用いればよい。ハッシュ関数は、MD２、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）の生成方法と同様なので、説明を省略する。【０１２４】
このように、秘密鍵が認証コア１００００に含まれていること以外、図１０のビットコインの説明とまったく同様である。したがって、本発明は従来のブロックチェーンと完全な整合性がある。【０１２５】
したがって、図１０との決定的な違いは認証コア１００００にある。下段の処理ユニット２００００の中に納まっている公開鍵は、上段の認証コア１００００によって所定の物理的生成プロセスを用いて生成されたものである。さらに、認証コア１００００は、すくなくと物理アドレスを有している。【０１２６】
次に、本実施形態での認証コア１００００の働きについて説明する。【０１２７】
認証コア１００００では、認証装置からの出力を鍵生成装置に入力し、互いに一対の組みをなす秘密鍵と公開鍵を生成する。また、少なくとも公開鍵から秘密鍵を再生することは非常に困難である。このような鍵生成アルゴリズムは複数存在している。その一例をリベスト・シャミア・エーデルマン（RSA）法（
【非特許文献３】参照）で下記のように説明することができる。このように鍵生成装置から互いに一対の組みを成す秘密鍵と公開鍵を生成する方法を以後RSA型とする。
【非特許文献３】Rivest, Ronald L.Shamir, Adi. Adelman, Len M. (1977-07-04), “A Method for Obtaining Digital Signature and Public-key Cryptsystems”, MIT-LCS-TM-082 (MIT Laboratory for Computer Science).
【０１２８】
RSA法では、まず適当な正の自然数ｅを準備する。通常２の１６乗に１を足したものを採用するがそれ以外の正の自然数を採用することも出来る。次に大きな二つの素数の組み｛ｐ、ｑ｝を何らかの方法で生成し、それらの積ｎ（＝ｐｑ）を計算する。このとき｛ｅ、ｎ｝が公開鍵となる。続いて、（ｐ−１）および（ｑ−１）の積で割った余りが１となる正の整数を更にｅで割ったものを秘密鍵ｄとする。ただし、｛ｅ、ｎ｝以外に｛ｐ、ｑ｝も既知になれば計算によってｄを獲得することが可能になるので｛ｐ、ｑ｝は破棄するか認証コア１００００の外部に漏れないようにしなければならない。素数の組み｛ｐ、ｑ｝を外部に漏れないよう保存しているのであれば組み｛ｄ、ｐ、ｑ｝が秘密鍵であるという見方もできる。秘密鍵は認証コア１００００内に閉じ込めて置き、公開鍵のみ処理ユニットに引き渡す。【０１２９】
図１８に図示するように、本実施形態では認証装置のコード変換装置を使って物理アドレスをコード変換し、鍵生成装置に入力する変数を生成する。一例としてRSA法で用いられる前述した素数｛ｐ、ｑ｝を生成する。その際適当な正の整数ｅは認証装置の外部から外部入力として入力することも可能であるが、コード変換装置や認証装置の内部の別の一部から内部入力として入力することも可能である。たとえば、図１７に内部入力を追加したものが図２０であり、外部入力を追加したものが図２１である。両方を追加したものが図２２である。あるいは、物理アドレスの一部から抽出しても良い。たとえば、コード化した物理アドレスから最初の数ビットを切り出し、１を加算して前記ｅとすることも可能である。このとき切り出さなかった残りのコードを改めて物理アドレスとしてコード変換装置に入力すればよい。あるいは、物理アドレスに１を加えて正の整数ｅを生成しても構わない。【０１３０】
物理アドレスから前記素数｛ｐ、ｑ｝を生成する方法は、一例として、物理アドレスから１を引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に１を引き算して素数かどうかを確かめる。これを繰り返し、素数ｐを決める。素数ｐを決めたのち同じ手続きを繰り返し、素数ｑを決める。こうして前記素数｛ｐ、ｑ｝を求めることができる。【０１３１】
素数ｑの決め方の別の一例は、物理アドレスから２を引き算して素数かどうかを確かめる。素数であればその素数をｑとする。素数でなければ更に２を引き算して素数かどうかを確かめる。これを繰り返して素数ｑを決める。【０１３２】
素数ｐまたはｑを求めるために物理アドレスから引き算する数は１や２のみではなく、任意の整数（たとえばｋ）を採用することが可能である。このとき前記ｋをセキュリティパラメータとすることができる。たとえば、物理乱数発あるいは疑似乱数などを用いて一定の範囲内の整数からランダムに選択し、それをセキュリティパラメータｋとすることが可能である。あるいは、物理アドレスとｋを何らかの方法で合成したものが素数になるまで合成を繰り返すことが可能である。いずれにしろ、物理アドレスが数値として十分大きい限りｐもｑも十分大きな素数となり、セキュリティパラメータｋの選択もより多様になる。【０１３３】
物理乱数を発生する物理乱数発生装置は、認証装置の中に含めることも出来るし、あるいは、外部に設置したものを採用することも可能である。後者の場合認証装置には外部から入力として乱数が与えられる。ソフトウェアで疑似乱数を発生する場合も同様である。ここで、物理アドレスとｋの合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。いずれにしろ、物理アドレス（Ｎ）あるいは外部入力が数値として十分大きい限りｐも十分大きな素数となる。【０１３４】
いずれにしろ、物理アドレスから素数ｐまたはｑを求める方法は、一例として、物理アドレスと適当に与えられた変数を合成する合成ステップと、合成された数が素数であるかどうかを判定する判定ステップとから構成され、実際に素数が得られるまで前記合成ステップおよび前記判定ステップを繰り返すことである。図１９参照。
（第三の実施形態）【０１３５】
図２１のように前記実施形態の認証装置に外部入力を入力し、生成される秘密鍵と公開鍵を変更することが可能である。本実施形態は、同じ端末を家族や仲間で共有するときに便利である。すなわち、外部入力が異なれば端末が同じでも異なる認証アドレスとなる。また端末が異なれば、同じ外部入力を入力しても異なる認証アドレスとすることが可能である。【０１３６】
一例として、外部入力とはネットワーク上で動作する何らかのアプリを起動するためのパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。【０１３７】
別の一例として、外部入力とはネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。【０１３８】
更に別の一例として、外部入力とはネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、PINコード、バーコード、QRコード（登録商標）などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。  【０１３９】
あるいは、更に別の一例として、外部入力とは何等かの物理的プロセスにより認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための特殊モード取得コードなどである。ここで特殊モード取得コードは、少なくともチップ内部のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。【０１４０】
あるいは、外部入力とは、上記複数の外部入力の組み合わせにより構成されるものであても良い。ただし、上記説明においてＮはノードの番号を示す任意の整数である。また、図２２のように、外部入力と内部入力両方を利用する方法もある。この内部入力は図２０と同様なので説明を省略する。【０１４１】
図２３は、認証装置に上記外部入力あるいは上記内部入力を入力する例を示す図面である。【０１４２】
一例として、物理アドレスと外部入力を何らかの方法で合成する。この合成方法は、加減乗除あるいはそれらの組み合わせ、あるいは可能な限りあらゆるビット演算が可能である。この整数から１を引き算あるいは足し算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に１を引き算あるいは足し算して素数かどうかを確かめる。これを繰り返し、素数ｐを決める。素数ｐを決めたのち同じ手続きを繰り返し、素数ｑを決める。こうして前記素数｛ｐ、ｑ｝を求めることができる。【０１４３】
素数ｑの決め方の別の一例は、物理アドレスと外部入力を上述したように何らかの方法で合成する。この整数から２を引き算あるいは足し算し、素数かどうかを確かめる。素数であればその素数をｑとする。素数でなければ更に２を引き算あるいは足し算して素数かどうかを確かめる。これを繰り返し、素数ｑを決める。ただし、素数ｐまたはｑを求めるために物理アドレスと外部入力を何らかの方法で合成したもの（ｉ）から引き算あるいは足し算する数は１や２のみではなく、任意の整数ｊを採用することが可能である。あるいは、ｉをｊとを何らかの方法で合成したものが素数になるまでｉとｊの合成を繰り返すことが可能である。【０１４４】
この合成方法は、加減乗除などすべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。いずれにしろ、物理アドレスあるいは外部入力が数値として十分大きい限りｐもｑも十分大きな素数となる。いずれにしろ、物理アドレスから素数ｐまたはｑを求める方法は、一例として、物理アドレスと適当に与えられた変数を合成する合成ステップと、合成された数が素数であるかどうかを判定する判定ステップとから構成され、実際に素数が得られるまで前記合成ステップおよび前記判定ステップを繰り返すことである。図１９参照。【０１４５】
図２１と図１７、および、図２２と図２０を比べて一目瞭然のように、外部入力が無ければ（第二の実施形態）と同じである。したがって、外部入力に関わらない他の説明はすべて（第二の実施形態）と同様なのでここでは省略する。【０１４６】
以上秘密鍵および公開鍵の生成方法としてＲＳＡ法を仮定し、（第二の実施形態）および（第三の実施形態）を説明して来た。ただし、これはあくまで一例に過ぎず、鍵生成装置が認証装置から何らかの入力を受け入れて秘密鍵と公開鍵を生成する限り他のどのようなアルゴリズムによる鍵生成方法を採用しても構わない。
（第四の実施形態）【０１４７】
図２４は認証コア１００００の別の一例を説明する図面である。【０１４８】
本実施形態の認証コア１００００においては、認証装置が出力した秘密鍵を鍵生成装置に入力し公開鍵を生成する。このとき秘密鍵と公開鍵は互いに一対の組みをなす関係にある。このような鍵生成アルゴリズムは複数存在している。また、公開鍵から秘密鍵を再生することは現実的に不可能である。その中で本実施形態に当てはまる最も有名な一例としてエルガマル法（
【非特許文献４】参照。）があげられる。このように鍵生成装置が秘密鍵から公開鍵を生成する方法を以後エルガマル型とする。
【非特許文献４】A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms, Taher Elgamal, IEEE Transactions on Information Theory, v. IT-31, n. 4, 1985, pp. 469-472.
【０１４９】
エルガマル法では、まず大きな素数ｐとその原始根ｇを決める。素数ｐおよび原始根ｇは設計仕様に応じて選択し、鍵生成装置あるいは認証コア１００００内の別のモジュールに保存しておくことができる。その他の動作は（第二の実施形態）とほぼ同様である。簡単のため同様の説明は省く。次に、ｐ−１より小さい非負整数ｘをランダムに選び秘密鍵とする。本実施形態では、一例として、認証装置の物理アドレスから適当なコード変換を施し秘密鍵を得ることができる。こうして物理アドレスと秘密鍵をリンクすることが可能となる。続いて、前記原始根ｇのｘ乗をｐで割った余りを公開鍵（N）とする。秘密鍵は認証コア１００００内に閉じ込めて置き、公開鍵のみ処理ユニットに引き渡す。【０１５０】
図１８は認証装置の一例を示す図面である。認証装置はコード変換装置を使って物理アドレスをコード変換し、秘密鍵を生成する。本実施形態では、一例として、認証装置の物理アドレスをｐ−１で割った余りを秘密鍵とすることができる。これを鍵生成装置に入力して公開鍵を生成する。【０１５１】
図２５のように、認証装置に内部入力を加えても良い。すなわち、認証装置の物理アドレスと前記内部入力を何らかの演算で合成したものをｐ−１で割った余りを秘密鍵とすることができる。これを鍵生成装置に入力して公開鍵を生成する。【０１５２】
前記合成方法は各種多様である。たとえば、足し算、引き算、掛け算、割り算、これら算術演算の組み合わせ、論理演算、その他可能な限りのあらゆるビット演算を活用することが可能である。【０１５３】
図２３では、認証装置の物理アドレスと内部入力とを何らかの演算で合成したものをｐ−１で割った余りを秘密鍵とすることも可能である。これを鍵生成装置に入力して上述の方法で公開鍵を生成する。【０１５４】
前記合成方法は各種多様である。たとえば、足し算、引き算、掛け算、割り算、これら算術演算の組み合わせ、論理演算、その他可能な限りのあらゆるビット演算を活用することが可能である。
（第五の実施形態）【０１５５】
図２６のように前記実施形態の認証装置に外部入力を入力し、生成される秘密鍵と公開鍵を変更することが可能である。本実施形態は（第四の実施形態）の変形であり、同じ端末を家族や仲間で共有するときに便利である。すなわち、外部入力が異なれば端末が同じでも異なる認証アドレスとなる。また端末が異なれば、同じ外部入力を入力しても異なる認証アドレスとすることが可能である。【０１５６】
この外部入力は（第三の実施形態）のものと同様なので、詳細な説明を省略する。ただし、下記のように本実施形態ではこの外部入力から前記素数ｐおよび原始根ｇを生成することが可能である。また、図２７のように認証装置への内部入力を併用することも可能である。【０１５７】
図２３では、認証装置の物理アドレスと外部入力あるいは内部入力とを何らかの演算で合成したものをｐ−１で割った余りを秘密鍵とすることも可能である。これを鍵生成装置に入力して上述の方法で公開鍵を生成する。【０１５８】
一例として、まず物理アドレスと外部入力あるいは内部入力を何らかの方法で合成する。この合成方法は、加減乗除あるいはそれらの組み合わせ、あるいは可能な限りあらゆるビット演算が可能である。この整数から１を引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に１を引き算して素数かどうかを確かめる。これを繰り返して素数ｐを決める。【０１５９】
素数ｐの決め方の別の一例は、まず物理アドレスと外部入力あるいは内部入力を上述したように何らかの方法で合成する。この整数から２を引き算し、素数かどうかを確かめる。素数であればその素数をｐとする。素数でなければ更に２を引き算して素数かどうかを確かめる。これを繰り返して素数ｐを決める。【０１６０】
素数ｐを求めるために物理アドレスと外部入力あるいは内部入力を上述したように何らかの方法で合成したもの（ｉ）から引き算する数は１や２のみではなく、任意の整数（ｊ）を採用することが可能である。あるいは、ｉをｊとを何らかの方法で合成したものが素数になるまでｉとｊの合成を繰り返すことが可能である。【０１６１】
この合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。いずれにしろ、物理アドレス（Ｎ）、外部入力、あるいは内部入力が数値として十分大きい限りｐも十分大きな素数となる。【０１６２】
上記いずれの方法によっても、あるいは、更に別な方法により十分に大きな素数ｐを得ることが可能である。【０１６３】
更に、一例として外部入力をを原始根ｇとすることができる。あるいは別の一例として、外部入力と内部入力を何らかの方法で合成したものを原始根ｇとすることが可能である。この合成方法は、加減乗除すべての算術演算およびその組み合わせ、あるいは、可能な限りあらゆるビット演算が可能である。【０１６４】
以上秘密鍵および公開鍵の生成方法としてエルガマル法を仮定し、（第四の実施形態）および（第五の実施形態）を説明して来た。ただし、これはあくまで一例に過ぎず、図２４、図２５、図２６および図２７に示すように、秘密鍵を鍵生成装置に入力して公開鍵を生成する限り他のどのようなアルゴリズムによる鍵生成方法を採用しても構わない。【０１６５】
図２６と図２４、図２７と図２５、および、図２３と図１８を比べて一目瞭然のように、外部入力が無ければ（第四の実施形態）と同じである。したがって、外部入力に関わらない他の説明はすべて（第四の実施形態）と同様なのでここでは省略する。
（第六の実施形態）【０１６６】
前記物理アドレス（一例として図１８および図２３の物理アドレス）は、編集の可能不可能にかかわらず何らかの方法で情報機器に設定された情報機器の個別認証のためのコードである。一例として、ＭＡＣアドレスがあげられる。
（第七の実施形態）【０１６７】
前記物理アドレス（一例として図１８および図２３の物理アドレス）は、物理的実態を有する半導体チップ内のセルアレイから抽出した何らかの物理的乱雑さより合成できる。このようなチップを認証チップと呼ぶ。【０１６８】
図２８は、ワード線５０３およびビット線９０２からなるセルアレイの一例である。ワード線５０３およびビット線９０２が交差したところに認証素子９７７が配置している。この例では、行数（ワード線数）はＮであり、列数（ビット線数）はＭである。ただし、行と列はいつでも入れ替え可能である。【０１６９】
一例として、認証素子はそれぞれ少なくとも二つの端子（第一の端子および第二の端子）を持ち、ワード線５０３およびビット線９０２の一方が前記第一の端子に接続し、他方が前記第二の端子に接続する。【０１７０】
認証素子９７７は、図２９のように抵抗９８５である。あるいは図３０のようにキャパシタ９８２である。あるいは図３１のようにＰＮ接合９８６である。あるいは図３２のようにショットキー接合９８７である。あるいは図３３のようにトランジスタ９８３である。あるいは図３４のようにトランジスタ９８３およびキャパシタ９８２からなるＤＲＡＭセル９８４である。あるいは図３５のようにトランジスタ９８３および可変抵抗９８１からなる可変抵抗メモリセル９８９である。あるいは図３６のようにトランジスタ９８３および磁気抵抗９８０からなる磁気抵抗メモリセル９９０である。あるいは図３７のように電荷蓄積層付き不揮発性メモリセル９８８である。電荷蓄積層は電荷トラッピング層でも浮遊ゲートでも良い。【０１７１】
あるいは、図３８のように意図的にビット線端子を排除したＮＡＮＤ型配列上に配置した電荷蓄積層付き不揮発性メモリセル９８８である。あるいは、図３９のように意図的にビット線端子を排除したＮＡＮＤ型配列上に配置したトランジスタ９８３である。【０１７２】
図４０および図４１は、ビット線９０２およびワード線５０３を使って認証素子９７７にアクセスする別の一例である。この例における認証素子９７７の具体例は上述したものと同様であり、詳細な説明を省略する【０１７３】
いずれにしろ、このようにワード線５０３およびビット線９０２と認証素子９７７により形成されるセルアレイからチップに固有で物理的にランダムな認証を取得することができる。【０１７４】
以下その方法の一例を具体的に説明する。【０１７５】
まずワード線デコーダを使ってワード線を選択し、ビット線デコーダを使ってビット線を選択し、それぞれ選択されたワード線とビット線に関連する認証素子を選択セルとする。【０１７６】
ここで、認証素子は大きく分けて２種類ある。第一の種類は、図４２のように、破壊されると読み出し電圧を印加した際電流を流しやすく、破壊されていないと電流を流しにくい。したがって破壊されているからどうかを判定するには、破壊判定電圧９３２を印加したときの電流の絶対値が破壊判定電流値９３３より高いか非破壊判定電流値９３４より低いかを調べれば良い。【０１７７】
第二の種類は、図４３のように、破壊されると読み出し電圧を印加した際電流を流しにくく、破壊されていないと電流を流しやすい。したがって破壊されているからどうかを判定するには、破壊判定電圧９３２を印加したときの電流の絶対値が非破壊判定電流値９３４より高いか破壊判定電流値９３３より低いかを調べれば良い。【０１７８】
ここで、破壊判定された認証素子からなるビットセル（破壊ビット）のアドレスはワード線番号およびビット線番号からなる配列である。セルアレイ上の認証素子の集団から複数のセルを選択し、図４２あるいは図４３の方法で読み出すと一般に複数の破壊ビットが見つかる。これら複数の破壊ビットのアドレスを並べてコード表現すれば破壊ビットの分布に応じたコード（認証コード）が得られる。破壊ビットの発生が物理的にランダムである限りチップに固有で物理的にランダムな認証コードを取得することができる。【０１７９】
破壊ビットの数をＱとし、選択セルの数をＲとする。ただし、ＱはＲより小さな数である。このとき認証コードの場合の数はＲからＱを選ぶ場合の数に等しい。すなわち、Ｒが十分大きく破壊ビットの存在確率が無視できるほど小さくなければ認証コードの場合の数は非常にに大きな数になる。【０１８０】
Ｑを１ギガ（１０億）とし、Ｒを１キロ（１０００）とすると、認証コードの場合の数はおよび１０の６４３２乗に２．５を掛けた程度になる。すなわち、トリリオンノードに必要な１兆個（１０の１２乗）の認証チップを生産したとき偶然に二つの認証チップの認証コードが同じになる確率が１０の６４２０乗に２．５を掛けた数の逆数（４Ｅ−６４２１）になることを意味している。認証チップを１００兆個供給したとしても偶然に二つの認証チップの認証コードが同じになる確率は１０の−６４１９乗の４倍（４Ｅ−６４１９）になる。これは現実的にほぼゼロである。【０１８１】
また、Ｑが１ギガでＲが１キロというのは不良率１００万分の１に相当する。すなわち、認証チップがシックスシグマ（１００万分の３．４以下）を達成するほど不良率が低いと仮定しても、偶然に二つの認証チップの認証コードが同じになる確率はほぼゼロであると言える。【０１８２】
また、シックスシグマ（１００万分の３．４以下）に沿って考えると、１ギガビットのチップ製品において１００万分の１以下に相当する１キロビットを他の目的に使用することは何ら問題にならない。したがって、１キロビットを認証素子用のセルアレイに割り当て、認証セル用のセルアレイに何らかのストレスを印加してちょうど半分を破壊することにする。このとき、認証コードの場合の数は１０の２９９乗の２．７倍程度になる。すなわち、認証チップを１００兆個供給したとしても偶然に二つの認証チップの認証コードが同じになる確率は１０の−２８５乗の２．７倍（３．７Ｅ−２８６）になる。すなわち、現実的にほぼゼロである。【０１８３】
前記ストレスは、電気的ストレス、光学的ストレス、機械的ストレス、電磁場的ストレスなど多種多様である。【０１８４】
電気的ストレスの一例は、まず認証セル用のセルアレイのすべてのセルを同時に選択し、全選択セルに高電圧パルスを印加する。各セルを読み出し、非破壊ビットの数が破壊ビットの数より少なかった場合非破壊ビットのみ選択して２回目の高電圧パルスを印加する。非破壊ビットの数が破壊ビットの数とほぼ同数になるまでこの作業を繰り返す。【０１８５】
光学的ストレスの一例は、アセンブリする前に認証素子用のセルアレイにＸ線や紫外線などを一定量照射する。照射量は、非破壊ビットと破壊ビットの数がほぼ同数になる程度に調整する。【０１８６】
機械的ストレスの一例は、認証チップを湾曲させることである。ただし、認証素子用のセルアレイ以外にも同様にストレスが印可されるので、全チップを認証素子用のセルアレイとするときにのみ有効な方法である。【０１８７】
電磁場的ストレスの一例は、認証チップを強い電磁場に晒すことである。ただし、認証素子用のセルアレイ以外にも同様にストレスが印可されるので、全チップを認証素子用のセルアレイとするときにのみ有効な方法である。【０１８８】
いずれにしろ、認証セルの破壊が確率的に発生する限り認証コードは物理的にランダムに生成される。また、偶然に二つの認証チップの認証コードが同じになる確率が現実的にほぼゼロである限り、認証コードは物理アドレスとして十分通用する。この物理アドレスを図１８および図２１のように認証装置に採用する。これには認証装置を認証チップで構成すればよい。【０１８９】
このように、意図的にランダムに破壊することで認証コードを生成することが可能である。
（第八の実施形態）【０１９０】
一部のメモリ製品ではメモリセルの中に予め一定の割合以下で不良ビットが発生することを考慮に入れ、不良ビットが発生したビット線をビット線ごと入れ替えるための冗長ビット線を備えている。このような不良の発生原因は多種多様であり、製造段階における製造ばらつきや部材の物理的な形成過程において自然発生するばらつきに依存する。冗長ビット線は通常メモリ製品のビット容量には含まれない。一例として図４４参照。【０１９１】
図４４では、行方向に配列したビット線群を二つのグループに分ける。一方を複数の冗長ビット線からなる冗長ビット線群とし、他方を正規ビット線からなる正規ビット線群とする。正規ビット線群の行数をＮとし、冗長ビット線群の行数をＬとする。ＮもＬも非負整数であり、ＮはＬより大きい。メモリ製品のビット容量は、この正規ビット線群に含まれるセル数に相当する。【０１９２】
出荷前検査で正規ビット線群の中に一定の条件を満たす不良ビット３７７が発生していることが判明すると、その不良ビットを含む正規ビット線のアドレスを冗長ビット線群の中の一つの冗長ビット線に割り当てる。このような読み換え（図中読み換えＡ、読み替えＢ…）を、不良ビットを含む正規ビット線それぞれに対して行い、不良ビットを実質的に取り除くことが可能となる。【０１９３】
より具体的には、出荷前検査で不良が見つかったビット線のビット線番号とそのビット線を読み換える冗長ビット線のビット線番号を周辺領域に混載している周辺メモリ（一例としてフューズメモリなど）に記録する。本実施形態では、この周辺メモリに記録された情報が（第七の実施形態）の認証コードと同じ役割を果たす。あるいは、（第一の実施形態）から（第六の実施形態）の物理アドレスに対応する。この物理アドレスを図１８および図２１のように認証装置に採用する。これには認証装置をメモリチップで構成すればよい。【０１９４】
このような条件を満たすメモリチップの一例としてＤＲＡＭがあげられる。そのほかフラッシュメモリ、相変化メモリ、抵抗変化メモリ、磁気抵抗変化メモリ（ＭＲＡＭ）、スピントルク型ＭＲＡＭ等が考えられる。【０１９５】
出荷前検査で発覚する回復不能の不良ビットの数をｍとすると、その場合の数はＮの中からｍを選ぶ組み合わせである。すなわち、Ｃ（Ｎ，ｍ）である。それぞれをどの冗長ビット線に読み換えるかを考慮に入れると、場合の数は更にｍの階上とＬの中からｍを選んで並べる順列の数を掛け合わせなければならない。すなわち、Ｃ（Ｎ，ｍ）Ｐ（Ｌ，ｍ）である。つまり、過小評価しても場合の数はＣ（Ｎ，ｍ）程度ある。【０１９６】
典型的な４ギガビットDRAM製品の場合、たとえば、全ビット線数６５５万本に対して冗長ビット線数は１５万３千本程度である。すなわち、何らかの事情によって正規ビット群内のビット線に不良ビットが発生する行数は、最大１５万３千程度まで量産DRAMとして許容できる。このとき冗長ビット線への再割り付けの場合の数は６５５万の内から１５万３千を選ぶ組み合わせに等しい。計算すると約１０の３１５、２８９乗になる。すなわち、認証チップを１００兆個供給したとしても偶然に二つの認証チップの認証コードが同じになる確率は１０の−３１５、２７５乗（１Ｅ−３１５、２７５）になる。現実的にほぼゼロである。【０１９７】
なお、本実施形態ではビット線とワード線を入れ替えることも可能である。すなわち、ビット線の代わりにワード線を行方向に配置した場合では、ワード線数４４０万本から３、０４４本を選ぶ組み合わせの数を計算すれば良い。これは、およそ２．９×１０の１０、９３８乗となる。前者の場合の数より大分少なくなるが、それでも恐ろしく大きな数である。すなわち、認証チップを１００兆個供給したとしても偶然に二つの認証チップの認証コードが同じになる確率は１０の−１０、９２４乗（１Ｅ−１０、９２４）になる。現実的にほぼゼロである。【０１９８】
こうして、非常に大きな情報エントロピーを有する認証コードを生成することが可能となる。ここで着目すべきことは、本実施形態では認証コードを生成するために１ビットも余計に割いていないことである。すなわち、冗長ビット線（あるいは冗長ワード線）は既に製品メモリチップに搭載されているものであり、読み替え情報を記録する周辺メモリも同様である。【０１９９】
図１７、図２０、図２１、図２２、図２４、図２５、図２６および図２７のハッシュ値は、論理ノードである財布の間を転送される署名付き処理情報である。それが貨幣価値のあるものであればビットコインなどのような暗号通貨となるが、それは特殊な一例に過ぎない。また図１７、図２０、図２１、図２２、図２４、図２５、図２６および図２７のいずれの方法であっても、処理（N,N+1）に必要な作業はすべて財布（N）側で完結する。したがって、秘密鍵を認証コア１００００の外に出す必要がない。【０２００】
図１７、図２０、図２１、図２２、図２４、図２５、図２６および図２７を見ながら具体的に説明する。たとえば、秘密鍵（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）に送付する。【０２０１】
図１８および図２３のコード変換装置は、物理アドレスを鍵生成装置に入力するのに適した形に成形するためのものである。自明なので特に図示しないが、そのような成形が必要とされない場合何も変換をしないダミーの装置とすることも可能である。このとき、認証装置は物理アドレスを直接鍵生成装置に入力する。
（第九の実施形態）【０２０２】
図４５では、RSA型の鍵生成装置を使用した別の一例を示す図面である。各論理ノードは、認証コア１００００および処理ユニット２００００からなる。前記認証コアはRSA型鍵生成装置を含む。前記鍵生成装置は、処理ユニットに含まれるハッシュ値から互いに一対の組をなす秘密鍵および公開鍵を生成し、前記公開鍵を処理ユニット２００００に渡し、前記秘密鍵は、認証コア１００００のに閉じ込める。すなわち、認証コア１００００外部から秘密鍵へのアクセスは不能である。前記公開鍵は、それぞれ対応する論理ノードの論理アドレスとなる。処理ユニット２００００では、前記ハッシュ値および前記公開鍵を、前記ハッシュ値を送付してきた論理ノードの秘密鍵を用いて電子署名が生成される。こうして処理ユニット２００００は、前記ハッシュ値、前記公開鍵、前記秘密鍵、および前記電子署名から構成される。【０２０３】
図４６では、エルガマル型の鍵生成装置を使用した別の一例を示す図面である。各論理ノードは、認証コア１００００および処理ユニット２００００からなる。認証コア２００００は、エルガマル型鍵生成装置および変換装置を含む。前記変換装置は、処理ユニット２００００に含まれるハッシュ値から秘密鍵を生成し、認証コア１００００に閉じ込める。すなわち、認証コア１００００外部から秘密鍵へのアクセスは不能である。前記鍵生成装置は、前記秘密鍵から公開鍵を生成し、処理ユニット２００００に渡す。前記公開鍵は、それぞれ対応する論理ノードの論理アドレスとなる。処理ユニット２００００では、前記ハッシュ値および前記公開鍵を、前記ハッシュ値を送付してきた論理ノードの秘密鍵を用いて電子署名が生成される。こうして処理ユニット２００００は、前記ハッシュ値、前記公開鍵、前記秘密鍵、および前記電子署名から構成される。【０２０４】
本実施形態では、物理アドレスを予め準備する必要がない。その代わり論理ノードをネットワークに初期登録もしくは再登録する際、その次点でのハッシュ値を用いて秘密鍵と公開鍵を生成する。以後論理ノード間の情報のやり取りに応じてハッシュ値は変更してゆくが、上記のように一対の組をなす秘密鍵および公開鍵を一度生成してしまえばそれでかまわない。また、再登録によってネットワークの構成を随時変更することが出来る。これは、必要に応じて閉じたネットワークを作りたいときに便利である。すなわち、登録された論理ノードのみがブロックチェーンでお互いを監視することによって、必要に応じて随時閉じたネットワークを構築することが出来る。【０２０５】
こうして、何らかの方法でチップに割り当てられる物理アドレスあるいはハッシュ値などから一対の秘密鍵と公開鍵が生成される。公開鍵はネットワーク上の論理アドレスとして利用され、秘密鍵は認証コア１００００に閉じ込めることが望ましい。すなわち、認証コア１００００外部から秘密鍵へのアクセスは不能である。こうして、本願の認証コア１００００によって物理的実態である半導体チップ（ハードウェア）と論理ネットワーク（ソフトウェア）を有機能的に連結することが可能となる。【０２０６】
更に、電子署名技術と合わせてハードウェアとブロックチェーンに代表される公開台帳システムを有機能的に連携させることが可能となる。結果としてネットワークシステムの安全性や信頼性を強化することに優れている。【０２０７】
RSA型の鍵生成方法もエルガマル型鍵生成方法も、具体的なアルゴリズムは複数存在する。この中で現在電子署名に良く使われているのはDSA法というものとその改良版であるECDSA法である。他にもシュノール法、ランダムオラクル法、クラマーショウプ法など多種多様あるが、これらの共通点は公開鍵から秘密鍵を生成することが現実的に難しいことである。（数学的に不可能であることを証明できないが、実際に実施することは困難であると言える。）また、秘密鍵でハッシュ値等を暗号化して電子署名を生成することも共通点として挙げられる。異なる点は、秘密鍵から公開鍵を生成するか、あるいは、別の変数から公開鍵と秘密鍵を生成するか、などである。あるいは、変数変換に用いる代数上の問題の違いもある。たとえば、素因数分解、離散対数問題、ランダムオラクル仮定、楕円曲線問題などなどである。【０２０８】
なお、特に図示しないが、本願に関わる認証装置を制御する認証制御装置は、認証装置の一部または全部として活用するメモリチップのメモリセルアレイの制御装置も兼ねることが可能である。【０２０９】
秘密鍵は、秘密鍵を必要とする任意の作業を行うとき、任意の方法でチップあるいは認証コアの内部で生成すればよい。チップあるいは認証コアの内部に秘密鍵を閉じ込める、という意味は、通常の利用方法では、チップあるいは認証コアの外部から秘密鍵へのアクセスが不可能である、ということである。また、特に断りのない限り、秘密鍵を必要とする作業をチップあるいは認証コアの内部で行うとき以外は、秘密鍵を消去しておくことが可能である。たしかに、通常の利用方法において、チップあるいは認証コアの外部から消去された秘密鍵にアクセスすることは困難である。このように、自明なので詳細の説明は省くが、秘密鍵をチップあるいは認証コアに閉じ込める、と言う意味は、秘密鍵を必要とする任意の作業をチップあるいは認証コアの内部で行うとき以外は秘密鍵を消去しておくことも含む。さらに、本願の認証コアが秘密鍵を含む、という意味は、認証コアが秘密鍵を必要とする任意の作業をする際あるいはその事前に、認証コア内部で秘密鍵を生成することを含む。秘密鍵を必要とする任意の作業とは、一例として、電子署名や公開鍵の生成などである。秘密鍵を生成する方法の例は、すでにいくつか説明した通りであるが、ここで説明した方法を用いなくても本願の概念を逸脱するものではない。【０２１０】
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
【産業上の利用可能性】
【０２１１】
安全かつ利便性の高いネットワークビジネスの情報基盤技術を、より低いコストで提供することが可能となる
【図面の簡単な説明】
【０２１２】
【図１】ネットワークシステムの最小ユニットを説明する図。
【図２】通信階層の仕組みを説明する図。
【図３】論理ネットワークと物理ネットワークの関係を説明する図。
【図４】論理ネットワークと物理ネットワークの関係を説明する図。
【図５】論理ネットワークと物理ネットワークの関係を説明する図。
【図６】論理ネットワークと物理ネットワークの関係を説明する図。
【図７】公開鍵暗号の仕組みを説明する図。
【図８】暗号通貨の仕組みを説明する図。
【図９】暗号通貨の仕組みを説明する図。
【図１０】暗号通貨の送金の仕組みを説明する図。
【図１１】メルクルの樹形図を説明する図。
【図１２】ブロックチェーンの仕組みを説明する図。
【図１３】MACアドレスを使用する仕組みを説明する図。
【図１４】MACアドレスの形式を説明する図。
【図１５】物理ネットワークと論理ネットワークを関連付ける概念の一例を説明する図。
【図１６】本願に関する認証層を通信階層に挿入した様子を説明する図。
【図１７】本願に関する認証コアの導入方法の一例を説明する図。
【図１８】本願に関する認証装置の仕組みの一例を説明する図。
【図１９】本願に関する素数を生成する方法の一例を説明する図。
【図２０】本願に関する認証コアの導入方法の一例を説明する図。
【図２１】本願に関する認証コアの導入方法の一例を説明する図。
【図２２】本願に関する認証コアの導入方法の一例を説明する図。
【図２３】本願に関する認証装置の仕組みの一例を説明する図。
【図２４】本願に関する認証コアの導入方法の一例を説明する図。
【図２５】本願に関する認証コアの導入方法の一例を説明する図。
【図２６】本願に関する認証コアの導入方法の一例を説明する図。
【図２７】本願に関する認証コアの導入方法の一例を説明する図。
【図２８】本願に関る認証素子のセルアレイの一例を説明する図。
【図２９】本願に関る認証素子が抵抗である例を説明する図。
【図３０】本願に関る認証素子がキャパシタである例を説明する図。
【図３１】本願に関る認証素子がPN接合である例を説明する図。
【図３２】本願に関る認証素子がショットキー接合である例を説明する図。
【図３３】本願に関る認証素子がトランジスタである例を説明する図。
【図３４】本願に関る認証素子がトランジスタおよびキャパシタからなるDRAMメモリセルである例を説明する図。
【図３５】本願に関る認証素子がトランジスタおよび可変抵抗からなる可変抵抗メモリメモリセルである例を説明する図。
【図３６】本願に関る認証素子がトランジスタおよび磁気抵抗からなる磁気抵抗メモリメモリセルである例を説明する図。
【図３７】本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリメモリセルである例を説明する図。
【図３８】本願に関る認証素子が電荷蓄積層付きトランジスタからなる不揮発性メモリセルであり、NAND型に配列している例を説明する図。
【図３９】本願に関る認証素子がトランジスタであり、NAND型に配列している例を説明する図。
【図４０】本願に関る認証素子へのアクセス方法の一例を示す図。
【図４１】本願に関る認証素子へのアクセス方法の一例を示す図。
【図４２】認証素子の破壊非破壊を判定する方法の一例を示す図。
【図４３】認証素子の破壊非破壊を判定する方法の一例を示す図。
【図４４】メモリセルの不良ビットを利用する方法の一例を示す図。
【図４５】本願に関する鍵生成装置の使い方の一例を説明する図。
【図４６】本願に関する鍵生成装置の使い方の一例を説明する図。
【符号の説明】
【０２１３】
３７７  不良ビット
５０３  ワード線
９０２  ビット線
９３２  破壊判定電圧
９３３  破壊判定電流値
９３４  非破壊判定電流値
９７７  認証素子
９８５  抵抗
９８２  キャパシタ
９８６  PN接合
９８７  ショットキー接合
９８３  トランジスタ
９８４  DRAMセル
９８１  可変抵抗
９８９  可変抵抗メモリセル
９８０  磁気抵抗
９８８  電荷蓄積層付き不揮発性メモリセル
９９０  磁気抵抗メモリ
１０００  信号伝達路
２００１  第一のノード
２００２  第二のノード
３０００  イーサネット（登録商標）カード
３０１０  不揮発性メモリチップ
３０２０  メディア・アクセス・コントローラー（MAC）用演算処理チップ
３０７１  ベンダーコード
３０７２  シリアル番号
１００００  認証コア
２００００  処理ユニット
【図１】
2018168723.tif 000003
【図２】
2018168723.tif 000004
【図３】
2018168723.tif 000005
【図４】
2018168723.tif 000006
【図５】
2018168723.tif 000007
【図６】
2018168723.tif 000008
【図７】
2018168723.tif 000009
【図８】
2018168723.tif 000010
【図９】
2018168723.tif 000011
【図１０】
2018168723.tif 000012
【図１１】
2018168723.tif 000013
【図１２】
2018168723.tif 000014
【図１３】
2018168723.tif 000015
【図１４】
2018168723.tif 000016
【図１５】
2018168723.tif 000017
【図１６】
2018168723.tif 000018
【図１７】
2018168723.tif 000019
【図１８】
2018168723.tif 000020
【図１９】
2018168723.tif 000021
【図２０】
2018168723.tif 000022
【図２１】
2018168723.tif 000023
【図２２】
2018168723.tif 000024
【図２３】
2018168723.tif 000025
【図２４】
2018168723.tif 000026
【図２５】
2018168723.tif 000027
【図２６】
2018168723.tif 000028
【図２７】
2018168723.tif 000029
【図２８】
2018168723.tif 000030
【図２９】
2018168723.tif 000031
【図３０】
2018168723.tif 000032
【図３１】
2018168723.tif 000033
【図３２】
2018168723.tif 000034
【図３３】
2018168723.tif 000035
【図３４】
2018168723.tif 000036
【図３５】
2018168723.tif 000037
【図３６】
2018168723.tif 000038
【図３７】
2018168723.tif 000039
【図３８】
2018168723.tif 000040
【図３９】
2018168723.tif 000041
【図４０】
2018168723.tif 000042
【図４１】
2018168723.tif 000043
【図４２】
2018168723.tif 000044
【図４３】
2018168723.tif 000045
【図４４】
2018168723.tif 000046
【図４５】
2018168723.tif 000047
【図４６】
2018168723.tif 000048
【国際調査報告】
2018168723.tif 000049
2018168723.tif 000050
2018168723.tif 000051
2018168723.tif 000052