JPWO2018147456A1 - 認証ネットワーク - Google Patents

認証ネットワーク Download PDF

Info

Publication number
JPWO2018147456A1
JPWO2018147456A1 JP2018567538A JP2018567538A JPWO2018147456A1 JP WO2018147456 A1 JPWO2018147456 A1 JP WO2018147456A1 JP 2018567538 A JP2018567538 A JP 2018567538A JP 2018567538 A JP2018567538 A JP 2018567538A JP WO2018147456 A1 JPWO2018147456 A1 JP WO2018147456A1
Authority
JP
Japan
Prior art keywords
code
authentication
information
physical
node
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2018567538A
Other languages
English (en)
Other versions
JP6592621B2 (ja
Inventor
渡辺 浩志
浩志 渡辺
武史 濱本
武史 濱本
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
ZENTEL JAPAN CORPORATION
Original Assignee
ZENTEL JAPAN CORPORATION
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ZENTEL JAPAN CORPORATION filed Critical ZENTEL JAPAN CORPORATION
Publication of JPWO2018147456A1 publication Critical patent/JPWO2018147456A1/ja
Application granted granted Critical
Publication of JP6592621B2 publication Critical patent/JP6592621B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0861Network architectures or network communication protocols for network security for authentication of entities using biometrical features, e.g. fingerprint, retina-scan
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/034Test or assess a computer or a system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computing Systems (AREA)
  • Storage Device Security (AREA)

Abstract

真に物理的実態を持つ物理ノードを構成要素とする物理ネットワークと、物理的実態を持たない論理ノードを構成要素とする論理ネットワークを、互いに一意連結し、論理ネットワークでP2P型通信をセキュアにする公開台帳技術を物理ネットワークに拡張する技術を提供する。公開鍵と一対に結び付けられた秘密鍵を、物理的実態を伴う認証コアに含まれる認証装置および鍵生成装置で生成し、前記認証コアの物理アドレスとし、前記認証コアの中に閉じ込め、前記公開鍵を論理ノードの論理アドレスとして公開し、前記論理ノードと前記物理ノードを、前記公開鍵と前記秘密鍵で一意に連結することによって、ネットワーク全体のセキュリティを効率的に向上させる。

Description

本発明は、クライアント・サーバー(CS)型やピア・トゥ・ピア(P2P)型のネットワーク上に存在する装置を認証する技術に関する。
進化し続けるインターネットに接続する装置の数は年とともに増大し、そのネットワーク構造も複雑化・多様化してきている。しかしながら、基本的には、特別な機能を有するサーバーを中心的なノード(基幹ノード)に据えたクライアント・サーバー(CS)型と、このような基幹ノードが存在せずすべてのノードが基本的に対等な形で接続するピアトゥア(P2P)型に大別することができる。しかしながら、いずれの型に属するネットワークであっても、ネットワークには図1に示すような最小単位が存在する。
このように、ネットワークは一般に結節点(ノード)と通信線(リンク)からなる。図1では、第一のノード2001と第二のノード2002が、通信線である信号伝達路1000によってリンクしている。たとえば、第一のノード2001と第二のノード2002は、信号伝達路1000を介してプロトコル・データ・ユニットを交換している。この第一のノード2001と第二のノード2002は、それぞれ一定の整合性を持つプロトコルに従ってプロトコル・データ・ユニットを扱う。
プロトコル・データ・ユニットの仲間でよく使われる言葉にフレーム、パケット、セグメント等がある。名称の違いは通信階層(通信レイヤー、あるいは、レイヤー)に対応して使い分けられ、ネットワークシステム全体の概念によって決定される。たとえば、図2のように、下の階層から順に、物理層(レイヤー1)、データリンク層(レイヤー2)、ネットワーク層(レイヤー3)、トランスポート層(レイヤー4)、上位層(レイヤー5)となる。ただし、この階層構造はほんの一例に過ぎず、異なる概念の元では、たとえば、トランスポート層を更に3分割して7階層にする。いずれにしろ、データリンク層(レイヤー2)ではプロトコル・データ・ユニットをフレームと呼び、ネットワーク層(レイヤー3)ではパケットと呼び、トランスポート層(レイヤー4)ではセグメントと呼ぶのが一般的である。
〈通信階層〉
一般に、インターネットを用いた情報通信は、適当な大きさに切り分けられたデジタルデータの一片をネットワーク上の情報端末であるノード同士で交換することである。このデータの一片にネットワーク上での管理に必要な制御情報を付与した塊をプロトコル・データ・ユニットと呼ぶ。データの一片と制御情報の並べ方をフォーマットと呼び、フォーマットおよびその活用は、プロトコルと呼ばれる一種の手続きによって規定されている。互いに情報通信する任意の2つのノードは、それぞれ一定の整合性を持つプロトコルに従わなければならない。
以下、図2の5階層を前提にして説明を続ける。
まず、伝送される元の情報は適当な大きさのデータの集まりに分割される。こうして得られるデータが存在する通信階層は、図2で説明した上位層(レイヤー5)である。
このデータにTCPヘッダーを添付する。TCPはトランスミッション・コントロール・プロトコルの略であり、プロトコルの一種である。こうして、データにTCPヘッダーを添付したものをセグメントと呼ぶ。セグメントを扱う通信階層がトランスポート層(レイヤー4)である。
セグメントにインターネット・プロトコル・ヘッダー(IPヘッダー)を添付すると、プロトコル・データ・ユニットはパケットと呼ばれるようになる。パケットを扱う通信階層がネットワーク層(レイヤー3)であり、プロトコルはIPである。バージョンによってIPv4やIPv6などがある。
パケットにイーサネット(登録商標)・プロトコル・ヘッダー(イーサネット(登録商標)ヘッダー)を添付すると、プロトコル・データ・ユニットはフレームと呼ばれるようになる。フレームを扱う通信階層がデータリンク層(レイヤー2)であり、プロトコルはイーサネット(登録商標)である。
イーサネット(登録商標)規格では、最下層(レイヤー1)の物理層への変換、すなわち、光信号への変換や電気信号への変換も定義されることがある。変換後のフレームは10BASE-Tなどの回線に渡される。
通信階層はそれぞれ入れ子の状態になっており、各階層(あるいは、各レイヤー)はそれぞれ独立しているとみなせる。具体的には、図2に示したとおり、レイヤー4(トランスポート層)のセグメント(データにTCPヘッダーのみを添付したもの)のフォーマットは、レイヤー5(上位層)のフォーマット(データのみ)を変換せずに含んでいる。このように、TCPヘッダーと元のデータは不可逆的に掛け合わされていない。同様に、レイヤー3(ネットワーク層)のパケットのフォーマット(セグメントにIPヘッダーのみを添付したもの)は、レイヤー4(トランスポート層)のフォーマット(セグメント)を変換せずに含んでいる。このように、IPヘッダーとセグメントは不可逆的に掛け合わされていない。さらに、レイヤー2(データリンク層)のフレームのフォーマット(パケットにイーサネット(登録商標)ヘッダーおよびFCSを添付したもの)は、レイヤー3(ネットワーク層)のフォーマット(パケット)を変換せずに含んでいる。このように、イーサネット(登録商標)ヘッダーおよびFCSとパケットは不可逆的に掛け合わされていない。ここで、FCSはフレーム・チェック・シークエンスの略であり、パケットが正しく届いたかどうかを確認するために利用される。
このような構造のため、下位の通信階層でプロトコルやフォーマットを変更しても、上位の通信階層にはまったく影響しない。
たとえば、図2において、レイヤー4(トランスポート層)でTCPヘッダーを何か別のヘッダーに置き換えても、元のデータにはまったく影響がない。つまり、レイヤー4(トランスポート層)で何か変更を加えてもレイヤー5(上位層)には影響がない。
同様に、レイヤー3(ネットワーク層)のIPヘッダーをIPv4からIPv6に変更してもセグメントには何も影響しない。つまり、レイヤー3(ネットワーク層)で何か変更を加えてもレイヤー4(トランスポート層)には何も影響がない。レイヤー4(トランスポート層)に影響がなければレイヤー5(上位層)にも影響がない。
更に、レイヤー2(データリンク層)でイーサネット(登録商標)ヘッダーを何か別のものに置き換えてもパケットには何も影響しない。たとえば、プロトコルをイーサネット(登録商標)からポイント・トー・ポイント・プロトコル(PPP)に変更してもパケットには何も変化がない。したがって、レイヤー2(データリンク層)で何か変更を加えても、レイヤー3(ネットワーク層)には何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。
更に、レイヤー1(物理層)で何か変更を加えてもレイヤー2(データリンク層)には何も影響がない。たとえば、信号伝達路を光ファイバーから無線LANに変更する。この場合でも伝達される情報の内容(フレーム)は、光ファイバーで伝達されても無線LANで伝達されても同じでなければならない。レイヤー2(データリンク層)に何も変更がなければレイヤー3(ネットワーク層)にも何も影響がない。レイヤー3(ネットワーク層)に何も影響がなければレイヤー4(トランスポート層)にも何も影響がない。レイヤー4(トランスポート層)に何も影響がなければレイヤー5(上位層)にも何も影響がない。
こうして、下位のどの通信階層で何か変更を施しても上位のどの通信階層にも何も影響がないことが判る。これは、後の技術革新の妨げとならないような設計である。
一方、本発明は最下層の物理層とデータリンク層に関するものである。このような事情により、本発明によって論理層(レイヤー3より上の層)で伝送されるデータに影響を及ぼすことはない。
ネットワークを物理的実態として構成するには、ネットワークの結節点(ノード)となる情報機器と、ノード同士を接続する信号伝達路が必要である。信号伝達路は有線であっても無線であっても構わない。また、信号の種類も複数の可能性がある。大雑把に分類すると、たとえば、電気信号と光信号である。すなわち、有線・無線の電気信号伝達路または光信号伝達路が、ネットワーク上でノード同士を物理的に接続する。このような物理的な接続・伝送方式を規定するレイヤーが物理層(レイヤー1)である。
同じ階層で採用されるプロトコルは一定の整合性を持っていなければならないが、階層が異なればその必要はない。すなわち、階層を設計するということは、複数のプロトコルの関係性を設計することである。上記では、物理層とデータリンク層をそれぞれ別の階層(レイヤー1とレイヤー2)としたが、別の階層概念によれば、同じイーサネット(登録商標)・プロトコルに従わせて一つの階層とみなすことも可能である。この場合レイヤー数は一つ減って4階層となる。また、トランスポート層(レイヤー4)とネットワーク層(レイヤー3)のフォーマットを合わせてTCP/IP形式と呼ぶこともある。あるいは、逆に細分化する階層の設計概念もありうる。たとえば、OSI基本参照モデルでは、上位層を更に3つに分割し、下位からセッション層(レイヤー5)、プレゼンテーション層(レイヤー6)、アプリケーション層(レイヤー7)とする。
一般に、ネットワークの接続構造は複雑であるが、信号伝達路の両端はそれぞれ一つのノードで終端していなければならない。図1はそのもっとも簡単な一例を示す図面である。まず、何らかのソースから第一のノード2001に入力された情報は、所定のフォーマットに従ってプロトコル・データ・ユニットに変換(コード)され、信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、第一のノードが従うフォーマットと一定の整合性のある所定のフォーマットに従って、受信したプロトコル・データ・ユニットを逆変換(デコード)し、第一のノード2001に入力される前の元の情報を再生する。こうして、プロトコル・データ・ユニットに変換(コード)されたデータの一片がネットワーク上で送受信される。これがデータ伝送の基本的な仕組みである。
上述したように、図1において、一つの信号伝達路1000の両端を終端する二つのノード(第一のノード2001と第二のノード2002)は、それぞれ一定の整合性のあるプロトコルに従わなければならない。もし、それぞれが従うプロトコルに一定の整合性がなかった場合、この信号伝達路1000は、第一のノード2001と第二のノード2002を接続していないと看做すことがある。
図1に対応する通信がトランスポート層(レイヤー4)における通信である場合、プロトコル・データ・ユニットはセグメントであり、変換プロトコルはTCPである。たとえば第一のノード2001がデータを受信すると、TCP形式のフォーマットに従ってTCPヘッダーをデータに添付し、セグメントを構成する。このセグメントは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このセグメントを受信し、TCP形式のフォーマットに従って逆変換(デコード)し、元のデータを再生する。具体的には、TCPヘッダーを取り除く。
図1に対応する通信がネットワーク層(レイヤー3)における通信である場合、プロトコル・データ・ユニットはパケットであり、変換プロトコルはIPv4やIPv6などである。たとえば第一のノード2001がデータ(この場合、セグメント)を受信すると、IPv4形式あるいはIPv6形式などのフォーマットに従ってIPヘッダーをセグメントに添付し、パケットを構成する。このパケットは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このパケットを受信し、IPv4形式あるいはIPv6形式等のフォーマットに従って逆変換(デコード)し、元のセグメントを再生する。具体的には、IPヘッダーを取り除く。あるいは、TCPヘッダーも取り除いてデータを復元することができる。
図1に対応する通信がデータリンク層(レイヤー2)における通信である場合、プロトコル・データ・ユニットはフレームである。たとえば第一のノード2001がデータ(この場合、パケット)を受信すると、イーサネット(登録商標)形式に従ってイーサネット(登録商標)ヘッダーをパケットに添付し、フレームを構成する。イーサネット(登録商標)形式では、更に、パケットが正しく届いたかどうかを確認するためフレーム・チェック・シークエンス(FCS)を添付する。こうして生成されたフレームは信号伝達路1000を通して第二のノード2002に伝送される。第二のノード2002は、このフレームを受信し、イーサネット(登録商標)形式に従って逆変換(デコード)し、元のパケットを再生する。具体的には、FCSをチェックしてパケットが正しく伝送されたかどうかを確認する。必要に応じて修復や再送依頼などの処置を施す。正しく伝送されたことが確認されたらイーサネット(登録商標)ヘッダーとFCSを取り除く。
上述したデータの伝送は、第一のノード2001から第二のノード2002への一方向のみを説明したが、伝送の向きが逆になってもプロトコルの利用方法になんら変更はない。その場合、まず、第二のノード2002に入力された情報は所定のフォーマットに従ってプロトコル・データ・ユニットに変換(コード)され、信号伝達路1000を通して第一のノード2001に伝送される。第一のノード2001は、受信したプロトコル・データ・ユニットを逆変換(デコード)し、第二のノード2002に入力される前の元データを再生する。
また、第一のノード2001が、任意の第三のノードから第二のノード2002への中継器である場合、第一のノード2001は、第三のノードから受信したプロトコル・データ・ユニットをデコードせず、そのまま信号伝達路1000を介して第二のノード2002に転送することが可能である。あるいは、受信したプロトコル・データ・ユニットの一部(例えば、ヘッダー)を編集してから信号伝達路1000を介して第二のノード2002に伝送することが可能である。この編集の結果として、意図的か非意図的かに関わらず、第一のノード2001を経由したことを示すコードがプロトコル・データ・ユニットに追加されることがある。第二のノード2002では、所定のフォーマットに従って受信したプロトコル・データ・ユニットを逆変換(デコード)し、任意の第三のノードに入力される前のデータを再生する
より具体的には、当該レイヤーに対応するヘッダーを適当に編集してから転送する。たとえば、中継器である第一のノード2001がデータリンク層(レイヤー2)に存在する場合、フレームのイーサネット(登録商標)ヘッダーを編集して転送することが可能である。より具体的には、少なくとも中継器である第一のノード2001の所定の認証をイーサネット(登録商標)ヘッダーに追加する。その経由地は、物理的実態を伴うアドレス(物理アドレス)として認識される。
あるいは、中継器である第一のノード2001がネットワーク層(レイヤー3)に存在する場合、パケットのTCP/IPヘッダーを編集して転送することが可能である。たとえば、少なくとも中継器である第一のノード2001のシステムに対応する所定の認証を追加する。こうして、第二のノード2002がプロトコル・データ・ユニットを受信する際このプロトコル・データ・ユニットがどこをどう経由して来たかということが追跡できるようになる。その経由地は物理的実態を伴わないアドレス(論理アドレス)として認識される。この論理アドレスのことを特にIPアドレスと呼ぶ。IPアドレスは、たとえば、オペレーティングシステムに割り当てられた固有のアドレスである。レイヤー3(ネットワーク層)以上の上位レイヤーのアドレスは、すべて論理アドレスであり、物理的実態とは無関係である。
すなわち、TCP/IP形式のネットワーク(ネットワーク層以上)では、ノードも信号伝達路も論理的に定義された仮想的存在であり、物理的実態とは関連性がない。これに対し、イーサネット(登録商標)形式のネットワーク(データリンク層)では、ノードも信号伝達路も物理的実態を持っている。たとえば、このノードはどの端末に対応しているのか?この信号伝達路はどのLANケーブルに対応しているのか?と言った問いに答えられるものである。
たとえば、ネットワーク層(レイヤー3)上の任意の第三のノードから中継器である第一のノード2001にパケットが入力される場合、このパケットはイーサネット(登録商標)形式に従ってフレームに変換され、信号伝達路1000を介して第二のノード2002に送信される。このとき、第一のノード2001、第二のノード2002、および信号伝達路1000は、どれも物理的実態を持つ。したがって、中継器である第一のノードの物理的所在を示す物理アドレスがフレームに添付される。
あるいは、トランスポート層(レイヤー4)上の任意の第三のノードからセグメントが中継器である第一のノード2001に入力される場合、このセグメントはIP形式に従ってパケットに変換され、ネットワーク層上の信号伝達路1000を通して第二のノード2002に送信される。このとき、第一のノード2001、第二のノード2002、信号伝達路1000は、いずれも論理的存在であり物理的実態とは関係がない。従って、中継器である第一のノードの論理的所在を示す論理アドレスがパケットに添付される。
物理アドレスと論理アドレスの違いは次の説明で自明である。たとえば、中継器である第一のノード2001を構成する電子機器を入れ替えることを考える。その場合、入れ替え前の中継器ノードを構成する電子機器(旧電子機器)のオペレーティングシステムを、入れ替え後の中継器ノードを構成する電子機器(新電子機器)へ再インストールしなければならない。このとき、物理的実態である電子機器固有の認証である物理アドレスは変更することになる。一方、オペレーティングシステムに固有の論理アドレスは入れ替え後も第三のノードのIPアドレスとして引き継がれる。これが論理ネットワーク(TCP/IPネットワーク)を採用する理由の一つである。
図3は、物理ネットワークと論理ネットワークの関係を通信階層上で説明する図である。LANケーブルや光・ADSL線あるいはWiFiなどから構成される最下層の物理層の下に、そこでお互い接続する物理ノードが配置している。物理アドレスは、物理層でお互いを認識し、接続するために使われる。物理層のすぐ上にはデータリンク層があり、更にその上には論理層1がある。論理層1は、たとえば、TCP/IPプロトコルに従う。データリンク層より上が論理ネットワークを構成する部分で、論理層1の上には論理ノードが配置してある。論理アドレス(IPアドレス等)は、論理ノード同士がお互いを認識し、種々選択して接続するのに使われる。
このように、データリンク層は論理ネットワークと物理ネットワークの間にあり、両ネットワークはデータリンク層を介して関連づけられている。しかしながら、これは論理ノードと物理ノードの関連づけを意味している訳ではない。なぜなら、物理アドレスと論理アドレスは全く独立だからである。
悪質なハッカーが攻撃するのは、主に論理層である。論理層はすべてが論理空間で管理されているため、攻撃も論理空間のみで完結させられる。したがって、ネットワークにつながっている限り、常時地球の裏側からでも攻撃を仕掛けられる。物理層に関しては、物理アドレスを奪い機器を乗っ取ることも可能である。
論理層1の脆弱性が発覚しセキュリティが破られると、図4のように、その脆弱性を改善した論理層2が開発され、使用されるようになる。この例では、HTTP/SSLを取り上げているが、ここで説明していることはHTTP/SSLに限った話ではない。重要なことは、論理層2は論理層1の上に積み上げられ、論理アドレスは論理層2の中で扱われるようになることである。論理ノードは、論理層2上でお互いを認識し、種々選択して接続する。
論理層2の脆弱性が発覚しセキュリティが破られると、図5のように、その脆弱性を改善した論理層3が開発され、使用されるようになる。この例では、OAuthやDKIMを取り上げているが、ここで説明していることはそれらに限った話ではない。重要なことは、論理層3は論理層2の上に積み上げられ、論理アドレスは論理層3の中で扱われるようになることである。論理ノードは、論理層3上でお互いを認識し、種々選択して接続する。
このように、ハッカーの攻撃と論理層の積み上げには際限がない。更に、どんなに論理層を改善し積み上げても、論理アドレスと物理アドレスは関連付けられない。これは、論理層上にどのようなセキュリティ技術を構築しても、ハッカーは物理層を攻撃できることを意味している。物理層への攻撃が意味を持つのは、物理的実態を持つ物同士が広大なネットワークを構築する物のインターネット(Internet-of-Things、IoT)である。
IoT以前のネットワークでは論理層の防御で十分であったが、IoTの時代に入るとネットワーク化された機器(産業機器、産業ロボット、家電製品、インフラ設備、自動運転車などなど)をどのように安全に扱えるようにするかが大きな問題になってくる。
一方、論理層のセキュリティ技術にも昨今重大な革新があった。それがブロックチェーンと呼ばれるものである。ブロックチェーンは、ビットコインと呼ばれる暗号通貨の送金データを改竄不能にするために考案された公開台帳システムである。詳細は後で述べるが、簡単に言えば、ある論理層上でつながっている不特定多数の論理ノード同士がお互いの通信を見張り合い、不正な改竄や送金をできないようにするシステムである。ブロックチェーンのお蔭で、銀行を介さずに国の内外を問わず安全に送金できるようになる。すなわち、銀行を介さないので送金手数料が限りなくゼロに近づく。更に、政府や税務当局が一切の取引を監視することができる。その上誰も改竄できない。
ブロックチェーンは論理層上で完結する金融サービスの大幅なコストダウンと時間短縮を実現可能とし、情報発信の大幅なコストダウンと時間短縮を実現するインターネット以来の大革新である。このブロックチェーンを通信階層の中に組み込んだ概念図が図6である。ブロックチェーン層の上には論理層3があり、更にその上に各論理ノードが配置されている。これらの論理ノード間の通信は、ブロックチェーンによる公開台帳システムで改竄不可能な形で衆人監視される。その中には各国の税務当局や情報当局その他公的期間も含まれるだろう。
〈ブロックチェーン〉
ここでブロックチェーンについて簡単に説明する。
ブロックチェーンは、ピア・トゥ・ピア(P2P)型ネットワークにおける公開台帳システムである。P2P型ネットワーク構造では、中核を担うサーバーの存在を仮定せず、ネットワークに結節するすべてのノード(結節点)が非中核的であり、対等であり、互いを監視し合うことによってセキュリティを担保することが必要である。すなわち、中核(コア)となるサーバーの存在を仮定したクライアント・サーバー型ネットワークでは実現不可能なアプリケーションを提供できる。
その最も重要なものがビットコインと呼ばれる暗号通貨による送金システムである。ビットコインでは、まず過去の処理履歴と処理する主体となるアカウント名を合成して暗号化する。それを電子署名として転送し新たな処理とするものである。したがって、処理手段を金融機関にゆだねない。更新され転送された処理履歴は、ネットワーク上の他の多くの非中核的ノードによって監視され、多数決に似た手法で公認される。
処理履歴の転送は通貨の転送と同義であり、公認された処理履歴が通貨のように扱われる。こうして、銀行のように特定の中核的存在を介さずに処理が進行してゆく。
ネットワーク上を流れる電子署名に利用される暗号は、アリスとボブの喩で有名な公開鍵暗号と呼ばれる一般的なものである。図7に示すように、アリスは予めボブに自分の公開鍵を送っておく。この公開鍵はネット上で誰かに盗み取られても構わない。ボブは、アリスから貰った公開鍵で手紙を暗号化し、アリスに送る。この暗号化された手紙を解読するには、アリスの公開鍵と対になっている秘密鍵が必要である。したがって、暗号が解読されない限り、ネットワーク上で誰かに盗まれても手紙の中身を読まれることはない。その秘密鍵を持っているのはアリスだけだからである。アリスは、自分で持っている秘密鍵でボブの手紙の暗号を解き、それを読むことができる。
このように、公開鍵はネットワーク上に晒して構わない。したがって、アリスが公開鍵を送るのはボブだけではない。ただし、その公開鍵で暗号化された暗号を解いて手紙を読めるのは、暗号が解読されない限り秘密鍵を所有しているアリスだけである。公開鍵と秘密鍵は必ず一組で生成されるが、公開鍵から秘密鍵を再生することは現実的に不可能であるようにしなければならない。また、秘密鍵で暗号化した手紙は公開鍵で解号できる。公開鍵と秘密鍵の区別は、基本的に公開するか秘密にするかのみである。
公開鍵のもう一つの重要な役割は、アリスへ手紙を送るための宛先、すなわち、アリスのネットワーク上のアドレスになることである。ボブが暗号化した手紙をネットワークに流すとき、ネットワークに接続している任意の受信者の手に渡ることになる。このとき解号できなければ読めない。どのようにしても読めないということは、受信しなかったことと同意である。したがって、アリスのみが解号できるということは、アリスのみに届いたということと等価である。こうして、公開鍵のもう一つの役割がネットワーク上のアドレスになることが明らかになる。したがって、ビットコインで使用される公開鍵は、ビットコインアドレスとも呼ばれる。
図8は、電子マネー等を納める財布の基本概念の一例を説明するための図面である。ビットコインなどの暗号通貨には共通の構図である。財布にはネットワーク上のアドレスが予め付与され、財布の中身には、何らかの貨幣価値のあるもの(通貨やそれと等価なコインなど)が納められる。更に、何らかの暗号技術を用い、アドレスと財布の中身を電子署名として財布に取り付けられるようになっている。
図9に示すように、このような財布は、たとえば、専用アプリをパーソナルコンピューター、タブレット、スマートフォン、スマートカード等のハードウェアにインストールして使うことができる。そのとき、財布の中身は、専用アプリをインストールしたハードウェアのストレージにデジタルデータとして保存される。このデジタルデータの管理は、たとえば、P2Pを前提とした電子処理では、ハードウェアの管理者・所有者が自ら責任を持って行う必要がある。この点がクライアント・サーバー型と異なる点である。クライアント・サーバー型では、金融機関などが責任を持って行うことになる。P2Pでの電子処理は、このように中核的機能を有する金融機関のような存在を必要としない。
図10は、処理(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)の中身は、たとえば、どこかから振り込まれた1000円だったとしよう。この1000円の振り込み元を財布(N-2)とし、更にこの1000円には電子署名(N-2)が添付されているとする。ただし、1000円というのは一例に過ぎず、他の貨幣価値と等価または可換なデジタル情報であれば何でも良い。財布(N-1)は、財布の中身である1000円と、次の電子署名作成のために用いる秘密鍵(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)へ1000円を送金する処理が完了する。
ハッシュ値(N-1)には、この1000円が財布(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)を正規に所有している者が不正を働く可能性を否定できないからである。たとえば、所有者による秘密鍵の乱用が考えられる。P2Pを前提にしたビットコインでは、それを「仕事による証明」(PoW)によって防ごうとしている。これは、概ね上手く行っていると考えられている。「仕事による証明」(PoW)について下で述べる。
一般に、クライアント・サーバー型のネットワークでは、処理の確認には信頼すべき第三者の介在が必要である。それは、例えば信頼のおける金融機関などであり、信頼のネットワーク上では中核的ノード(サーバー)となる。すなわち、財布(N-1)の所有者は、ある金融機関を介して財布(N)の所有者に送金することができる。しかしながら、このような中核的ノードの信頼性を完全に証明する方法はなく、送金処理の度に送金元に確認依頼が寄せられることになる。複数の金融機関を跨いだ送金などもあり、確認依頼は膨大な数になる。また、一つの確認作業には一定以上のコストが必要である。そのため送金処理の手数料には一定の下限が設けられることになる。たとえば、この下限を500円とすると、500円以下の送金をする度でも500円余計に支払わなければならなくなる。こうして、クライアント・サーバー型は無数の少額の処理を前提としたビジネスには向かないことが判る。
図10では、続いて公開鍵(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)として記録されていることが判る。こうして、任意の財布の中身は、過去のすべての処理履歴を連鎖的に含んでいることが判る。すなわち、過去の最新のハッシュ値が、過去のすべての履歴を代表している。
一方、一つの財布に送金する財布は、図10の例のように一つとは限らない。実際には複数の財布から一つの財布に送金する場合は少なくないだろう。また、一つの財布から複数の財布に送金される場合も少なくないだろう。こうして、送金の処理履歴はより複雑になり、その作業を一つ一つ確認が必要なクライアント・サーバー型で行うには膨大なコストがかかることが判る。
また、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+1)からの送金であったことが判る。このときM+1はN−1であることが判る。続いてハッシュ値(N-3)を含む財布(N-2)の公開鍵(N-2)も同様の方法で検索できる。この作業を繰り返すことによって処理履歴を遡ることが可能である。ここでMおよびNは任意の自然数とする。
こうして、論理的には過去の処理履歴を遡ってゆくことができるわけであるが、このようにハッシュ値を使って過去の履歴をひとつずつ遡ることは実は必ずしも必要ない。むしろ、数百から千個程度の処理を一塊に集め、これらの処理が現実に存在したことを何らかの方法でまとめて承認してしまえば良い。具体的には、メルクルの根以外のハッシュ値をすべて削除し、最新のハッシュ値(たとえば、ABCD)を符号として用いれば良い。一つの符号で代表される処理の集まりをブロックと呼ぶ。こうして財布の専用アプリをインストールしたハードウェアのストレージを節約することが可能である。
このようにメルクルの根(上の例ではハッシュ値(ABCD))に代表される過去の処理の集まりが確かに存在していたことを、タイムスタンプを付けることで承認する。こうして承認されたブロックがネットワーク上に公開される。この公開は、公証役場に書類を持ち込み、日付を付けて封書してもらう日付認証に似た作業(ワーク)である。ビットコインでは、新たなブロックの公開を記帳と呼び、記帳した者には認証作業の対価として一定の報酬が与えられる。最初の210,000番目までの記帳では、一回あたりの報酬は50BTCである(BTCはビットコインの単位)。210,001番目から420,000番目までは25BTCである。すなわち、210,000番目ごとに半減して行き、6,929,999番目のブロックが記帳されるときゼロになる仕組みである。2016年6月時点の報酬は、記帳一回で25BTCである。
P2Pでは公証役場(中核的ノードの一例)がないので、公証人に代わって処理の集まりを承認し、タイムスタンプを付けるのはP2Pに参加している不特定多数のビットコインの利用者である。しかしながら一度にタイムスタンプを添付して新しいブロックを公開(記帳)できるのは一人である。したがって、記帳して与えられる報酬を求め、複数の利用者が先を争って承認作業を行う。
一例として図11を用い、この承認作業を簡単に説明する。まず承認済みの過去のブロックに関する何らかのハッシュ値を獲得する。次にネットワーク上に存在する未承認処理の集まりを発見し、その集まりのメルクルの根(ハッシュ値)を獲得する。この二つのハッシュ値に可変のノンス値というものを追加し、更にハッシュ化してブロックハッシュを作る。このとき、ビットコインではハッシュ関数としてSHA-256を利用する。もちろん、他のハッシュ関数を利用してブロックハッシュを生成することも可能である。
ノンス値は、一般に、32ビットの任意の値である。このノンス値を含めて生成されたハッシュ値(ここではブロックハッシュ)は256ビットの値である。2の256乗は10の77乗より大きく、ブロックハッシュは膨大な自由度を持っていることが判る。前記ノンス値を調整すると、ブロックハッシュの最初の数ビットをゼロにすることができる。一例として、新たに生成したブロックハッシュの最初の16ビットがすべてゼロになる確率は2の16乗分の1、すなわち65,536分の1である。すなわち、偶然にはほとんど起こりえないことであり、このようなノンス値を掘り当てるには相応の仕事(ワーク)が必要である。
ただし、ハッシュ関数は非可逆的である。したがって、最初の数ビット(この例では16ビット)がゼロとなるハッシュ値(ここではブロックハッシュ)を生成するようなナンス値を、逆変換で求めることは不可能である。つまり、ナンス値を変えながらハッシュ化を繰り返し、その都度生成したハッシュ値の最初の数ビットがすべてゼロになるまでそれを繰り返さなければならない。こうして、ブロックを生成するためのナンス値の決定には、一定以上の計算機の活用が不可欠であることが判る。その対価として、ブロックを生成すると報酬(一定のビットコイン)が与えられる。金を採掘するのに似ているので、この仕事をマイニングと言う。この報酬を狙ってマイニングする(ビットコインの)利用者をマイナーと言う。
P2Pネットワークでは、マイニングを行うのは特定の中核的機能を持つノードではない。一定以上の計算機リソースを活用できれば誰でもマイニング可能である。マイナーは、より正確には、そのマイナーが活用するP2P上のノードは、ナンス値を変更しながらネットワーク上で総当たり探索を行い、最初の数桁がすべてゼロとなるような未承認処理の集まりを見つけ出せばよい。つまり、ナンス値を変更しながらネットワーク上を採掘(マイニング)して回っているのである。このように、必ずしも特定の未承認処理の集まりに対してナンス値を調整する必要はない。
こうして最初の数ビット(この例では16ビット)がゼロのブロックハッシュが掘り出されると、このブロックハッシュに対応する未承認処理の集まりは、新たに承認されたブロックとして前出の承認済みの過去のブロックに連結することが許される。すなわち、最初の所定のビット数をすべてゼロにすることがブロック連結の条件である。そして、最初にこの条件を満たすブロックハッシュを掘り当てたマイナーが記帳することを許される。この作業(マイニング)を繰り返すことによって複数のブロックが連結され、ブロックチェーンが形成される。
上述したことから判るように、ビットコインでは通貨の信頼性は過去の処理履歴の信頼性である。公正認証に代わりその信頼性を保証しているのがブロックチェーンである。ブロックチェーンが長く伸びるほど改竄が難しくなる。たとえば、一部のブロックのデータを書き換えると、前後につながったブロックとの連結条件(ブロックハッシュの最初の数ビットがすべてゼロ)を満たさなくなる。そこで前後のブロックのナンス値を修正してこの条件が満たされるようにしなければならない。上述したように、ハッシュ関数は非可逆なのでそれには相応の計算が必要とされる。しかしながら、前後のブロックのナンス値を調整すると、更にその先のブロックのナンス値も調整しなければならない。結局、一部のデータを改竄するだけでブロックチェーンに連結されているすべてのブロックのナンス値を調整しなければならなくなる。これは、更に膨大な計算機能力を必要とする。こうして、ブロックチェーンが長く伸びるほど幾何級数的に改竄が難しくなるとされている。
それでもブロックチェーンにも弱点はある。まず暗号が破られ秘密鍵が盗用されることである。財布のアドレスである公開鍵がネット上に公開されており、暗号を破り公開鍵から秘密鍵を再生すれば他人のアカウントで自由に電子署名を偽造できるようになる。これは電子署名を無意味化するのですべての処理が信頼できなくなる。
暗号の最大の脅威は量子コンピュータである。ブロックの生成が10分間で一つと仮定すると、最後のビットコインが採掘されるのは2140年頃と試算されている。それまでに量子コンピュータが普及している可能性は低くないと考えられる。そうなると、現代の暗号を使った電子署名は成り立たなくなるので、最後のビットコインが採掘される前にブロックチェーンは使われなくなるだろう。しかしながら、それまでにはまだ大分時間があると考えられる。いずれにしろ、理論的根拠はないが今後10年から数十年の間ブロックチェーンは世界中で広く使用されると期待される。
一方、通貨の偽造とは過去の処理履歴の改竄や不正コピーである。処理の検証が成功した証として電子署名を処理履歴に添付するのであるから、通貨の偽造とは電子署名の偽造である。電子署名を作成できるのは、暗号が破られない限り、唯一電子署名に必要な秘密鍵を所有する前の財布の所有者のみである。逆に言えば、暗号が破られなかったとしても、秘密鍵の正規の利用者は過去の処理履歴を改竄しようと思えば可能である。しかしながら、上記のように一度ブロックチェーンをくみ上げてしまうと、たとえ秘密鍵の正規の利用者であっても、ブロックチェーンを連結させるナンス値すべてを改竄することは難しい。ブロックチェーンが長く伸びるほどその難易度は劇的に上昇する。すなわち、一度ブロックチェーンを長くしてしまえば過去に遡って改竄、あるいは、編集することはほぼ不可能になる。これが「仕事による証明」(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)を含むブロックから派生するブロックの生成速度が正規のブロックの生成速度を凌駕しない限り、長いブロックが正規のブロックである。ブロックチェーンでは、チェーンの長さで真贋を判定している。
しかしながら、不正を働く側の計算能力が全世界の他のマイナーに分配されている計算能力を凌駕するとき、不正チェーンが正規のチェーンより長くなる可能性がある。これを「51%攻撃」という。
51%攻撃は、費用対効果の関係で現実的ではないという議論がある。しかしながら、ある集団の財政基盤を脆弱にするためサイバー攻撃として行われる場合はこの限りではない。たとえば、ある大国でブロックチェーンを基盤としたフィンテック2.0が広く普及していたとしよう。ある小国がこの大国の金融システムを麻痺させるためマイニングに国防費用を投入することがあるかも知れない。この場合核兵器の開発よりコストを抑えることが可能となるだろう。また、クラウドマイニングの発達により一部の業者が一時的に51%攻撃の能力を獲得することはありえる。
この場合、攻撃されるであろう大国もブロックチェーンに参加する必要が出てくる。複数の国家が参加し、どの国家も51%攻撃を実施できないような状態にしておけば問題はなくなる。このようにブロックチェーンはP2Pであるが、国際的な情報通信インフラという側面を併せ持つようになるだろう。
このように、P2Pネットワーク上で処理の履歴を共有しマイナーに承認作業を任せ信頼性を担保するという公開台帳システムの考え方は、情報通信インフラとしてビットコイン以外にも幅広い応用が期待されている。これは、最低コストで過去の処理の改竄を現実的に不可能にできるという理由による。現実的に改竄不可能なデータベースの需要は、たとえば、日々増大する蓄積された医療データを利用したヘルスケアや、日々増大する蓄積された処理データを利用した証券取引や、その他日々増大する蓄積されたビッグデータを活用するありとあらゆる情報サービスが考えられる。そして、フィンテック2.0と呼ばれる世界的な金融技術革新の波を引き起こしている。
51%攻撃を抑制するにはもう一つポイントがある。まず、攻撃するノードの数を無限大にしないことである。ノードに割り当てるアドレスがIPアドレスのような論理アドレスであると、攻撃者は無限の数の攻撃用ノードを獲得することが可能となる。したがって、P2Pに結節するノードは、すべてCPUなどとリンクした物理アドレスを割り当てるべきである。この考え方をOne-CPU-One-Vote(一台一票)と呼ぶ。たとえば、投票用紙一人一枚というのは、多数決のようなシステムでは不可欠な条件である。
こうして、秘密鍵と物理的実態を持つ個別認証とを関連付けることが必要であることが判る。しかしながら、秘密鍵はソフトウェアによる産物であり物理的実態とは縁がない。そもそもソフトウェアは、同じ規格で設計・製造されたどの情報機器にインストールしても同じく機能するように作られたものである。それゆえ物理的実態とは成り立ちから言って無縁である。にも拘わらず、ネットワークを構成するのは、無数の情報機器とそれらを連結し電子データを交換する有線無線の信号伝達路の集合である。情報機器ばかりでなく、信号伝達路も物理的実態であることは自明である。ここに秘密鍵と物理的実態とを関連付けるヒントがある。
具体的には、公開鍵と物理アドレスを改竄されない何らかのの方法でリンクさせることである。
ここで図6に戻ろう。いまだに物理アドレスは論理アドレスと分離されたままである。51%攻撃を防ぐのみならず、ブロックチェーンのメリットが物理的実態を持つノード同士のネットワーク、すなわち、IoTには及ばないことを意味している。しかしながら、もしこの問題を解決できれば、51%攻撃を防ぎつつ公開台帳システムをIoTに持ち込むことが可能となる。
〈物理アドレス〉
図12は、現在物理アドレスとしてもっとも広く使われているメディア・アクセス・コントローラー(MAC)アドレスの活用事例を簡便にまとめたものである。
MACアドレスは、情報機器に搭載されているイーサネット(登録商標)カードに固有の管理番号として割り当てられている。典型的なイーサネット(登録商標)カード3000は、たとえばMAC用演算処理チップ3020と、MACアドレスを記録する不揮発性メモリチップ3010を含む。
電気電子技術者学会(IEEE)によって標準化され、図13に一例を示すように、長さ48ビット(6バイト)、したがって、情報量およそ280兆もの0と1の数列の集合である。上位の24ビット(図13の例で左半分)はベンダーコード3071と呼ばれ、ベンダーごとに割り当てられる。下位の24ビット(図13の例で右半分)は、シリアル番号3072と呼ばれ、各ベンダーが重複しないよう割り当てている。ベンダーコード3071の最後の2ビットは、ULビットとIGビットである。MACアドレスを表記するには、このULビットとIGビットを含む48ビットの数列を8ビットごとに区切ってそれぞれ16進数で表す。
MACアドレスがグローバルアドレスの場合、ULビットは1である。そうでない場合0である。すなわち、グローバルアドレス(ULビット=1)の場合では、全世界で重複を起こさないよう、MACアドレスを割り当てられなければならない。ベンダーコードの24ビットの内、別の1ビットはIGビットと呼ばれるものに割り当てられる。IGビットが0の場合、ユニキャスト通信を意味し、1の場合はマルチキャスト通信を意味する。ユニキャスト通信とは、情報機器のネットワークの中において単一の送信先を指定してデータ(フレーム)を送信することである。これに対しマルチキャスト通信とは、情報機器のネットワークの中において、複数の送信先を指定してデータ(フレーム)を送信することである。こうして、48ビットの内、ULビットとIGビットの2ビットを除いた46ビットが実際に割り当てられるMACアドレスの自由度ということになる。数にしておよそ70兆ほどである。
ここで注意すべきことは、現在現役で使用されている情報機器だけでなく、すでに廃棄されたり紛失したりして使用されなくなった情報機器にまで渡って全世界で重複しないよう、MACアドレスを割り当てられなければならないことである。現在、MACアドレスはまだ枯渇していない。しかしながら来るIoTの時代には、現役でネットワークに接続する物理ノードの数は10兆個を超えると考えられている。しかしながら、MACアドレスは編集可能となっているため、何らかの理由で使われなくなったMACアドレスを再利用することができる。こうして枯渇の問題を回避できるように見えるが、MACアドレスの編集はMACアドレスの偽造や乗っ取りを容易にしているのも事実である(特許文献4参照)。
このように、MACアドレスは図13のフォーマットに従ってイーサネット(登録商標)カード3000に割り当てられ不揮発性メモリ3010に書き込まれたコードであり、書き換えも可能である。したがって、一台一票を保証できない。
〈書き換え不能の物理アドレス〉
このように、MACアドレスに代わり少なくとも(書き換え不能の物理アドレス)が必要なことは明白である。それを実現する何等かの認証装置が存在し、チップに搭載されているものとする。
図14は、情報機器である第一のノード2001が信号伝達路1000を介して通信相手である第二のノード2002と接続する場合を図示したものである。ここで、第一のノードは第一のチップ110をマウントしている。さらに第一のチップは認証装置60を搭載している。認証装置60は、何らかの方法で(書き換え不能の物理アドレス)を実現する半導体チップに集積化できる装置である。こうして、第一のチップ110は第一のノードあるいは情報機器の認証コアとなる。第一のチップ110は、外部入出力50を通して通信伝達路1000に接続している。
認証装置60は外部入出力50から受け取るコール(入力コード)に応じて都度出力コードを発生するものである。ここで発生された出力コードは、認証装置60を搭載するチップに固有の物理的乱雑さを利用して生成されるものである。したがって、入力コードを変えると出力コードも変わるという特徴を有している。この点で、イーサネット(登録商標)カードの不揮発性メモリに保存されたデータであるMACアドレスとは根本的に異なる。すなわち、MACアドレスは入力コードによって出力を変更するような機能を持つものではない。
〈共通パスコード〉
図15のように、少なくとも一つの共通パスコードが第二のノード2002に保存され、それと接続するそのほかのノードを認識する際に各ノードに送られる。たとえば、第二のノード2002は第一の共通パスコード1410を、第一のノード2001、第三のノード430、第四のノード440に送る。これらのノードは、第二のノード2002を「第一の共通パスコード1410を送ってくるもの」として認識する。
図16に示すように、第一のノード2001、第三のノード430、第四のノード440は、この第一の共通パスコード1410の入力に対応し、それぞれ、第一の認証4101、第二の認証4201、第三の認証4301を、第二のノード2002に返す。第二のノード2002は、第一のノード2001、第三のノード430、第四のノード440を、「第一の共通パスコード1410に対して、それぞれ第一の認証4101、第二の認証4201、第三の認証4301を返すもの」と認識する。ここで、第一の認証4101、第二の認証4201、第三の認証4301のうちどの二つの認証も同じではない。また、第二のノード2002が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。このように、発信側ノードが使用する共通パスコードはそれぞれ複数であることが望ましい。
ここでは、入力が同じであっても認証装置が異なれば必ず異なる出力を返す(出力の独立性)を満たすことを前提としている。〈出力の独立性〉については、以下で詳述する。
次に、上記認証装置を有するノード(たとえば図14および図15の例では、第一のノード2001、第三のノード430および第四のノード440)と通信するノード(たとえば図14および図15の例では第二のノード2002)が満たすべき条件について考えよう。
通信側のノード(たとえば図14および図15の例では第二のノード2002)には、少なくとも送信する共通パスコードを発信する発信装置か、あるいは保存しておく内部メモリが必要である。更に、受信する認証コード(たとえば図16の例では、第一の認証4101、第二の認証4201、および第三の認証4301)を処理する処理系が必要である。
この処理系は、一例として、図17のように入力コード402と登録コード403を保存する内部メモリ401を含む。前述のように複数のパスコードを併用する場合、図18のように、入力コードは複数存在し、それぞれの入力コードに対応して複数の登録コードが登録されている。
上記認証装置を有するノード(たとえば図14および図15の例では第一のノード2001、第三のノード430、および第四のノード440)には、すべて異なる認証装置が搭載される。図15及び図16に示すように、通信側のノード2002は、少なくとも一つの固有の共通パスコード1410を保有する。図17に示すように、第二のノード2002が出力する共通パスコードは、第二のノード2002の内部メモリ401に入力コード402として厳重に保管される。
図15において共通パスコード1410を入力されたノード(2001、430、440)は、この共通パスコード1410に対しておのおの固有の認証コード(4101、4201、4301)を第二のノード2002に返信する。ここで返信される認証コードは、どの二つをとってもお互いに異なることが必要である。そのため前記認証装置は、後述する(出力の独立性)を満たさなければならない。図18に示すように、第二のノード2002は、各入力コードに対応して返信されてきた認証コードを、内部メモリ401に厳重に保管する登録コード403と便宜比較する。
内部メモリに入力コードや登録コードを保存する第二のノード2002のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を駆使して厳重に保守することが望ましい。このように、第二のノード2002はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。これを基幹ノードと呼ぶ。これに対し、基幹ノードに接続し、セキュリティ管理者による中央管理化にないノードを周辺ノードとする。すなわち、図17は、3つの周辺ノード(第一のノード2001、第三のノード430、第四のノード440)が、基幹ノードである第二のノード2002に接続する例である。
基幹ノードは、入力コードと登録コードのリストを内部メモリに保存する。一方周辺ノードは、登録コードも入力コードも保存せず、それぞれ相違なる認証装置を搭載するチップを内蔵しているものとする。また、基幹ノードの内部メモリに保存された登録コードのリストの中の一つの要素と入力コードの組み合わせが、それぞれ周辺ノードとの通信に対応する。基幹ノードは、この組み合わせを図18のリストのような形で内部メモリに保存している。
基幹ノードを厳重な中央管理下におくことによって基幹ノードへの遠隔攻撃は防がれるものとしても、ネットワークに接続する周辺ノードの数が数兆個に上る場合、すべての周辺ノードを厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を示している。そこで遠隔攻撃者は、基幹ノードに接続する中央管理の行き届かない周辺ノード、図17の例では、第一のノード2001、第三のノード430、第四のード440、…のうち少なくともどれか一つを遠隔攻撃によって乗っ取ろうとする。
たとえば、遠隔攻撃者が適当に選んだ信号(X,Y,Z)を第一のノード2001に入力し、(X1,Y1,Z1)の返信を得るものとする。一方、第一のノード2001は認証装置を搭載しており、第二のノード2002(基幹ノード)は第一のノード2001に入力コード402(P,S,T,…)を送信し、返信として認証(P1,S1,T1,…)を受信する。第二のノード2002は、更にこの認証と同じコードを登録コード(P1,S1,T1,…)として予め内部メモリ401に記録しているものとする。
この入力コード402(P,S,T)と信号(X,Y,Z)が異なる場合、遠隔攻撃者が受け取る返信(X1,Y1,Z1)は登録コード402の(P1,S1,T1)と異なる。これは、周辺ノードに搭載される認証装置が、異なる入力に対して必ず異なる出力を出す性質(〈出力の独立性〉)を持つことを前提にしている。こうして、認証装置が〈出力の独立性〉を持つ限り遠隔攻撃は失敗に終わるのである。ここで、周辺ノードと基幹ノードが、もしイーサネット(登録商標)形式による相互認証を採用していたらどうなるだろうか?遠隔攻撃者は、周辺ノードに搭載されているイーサネット(登録商標)カードの内部メモリ(たとえば、図13の例では、不揮発性メモリチップ3010)からMACアドレスを容易に盗み出すことができる。これは、ネットワークに接続している機器の制御を乗っ取ることと同じである。たとえば、地球の裏側にいるハッカーが運転中の車を乗っ取ることが可能になる。
ここで残る問題は、遠隔攻撃者が適当に選んだ信号セット(X,Y,Z)が、たまたま基幹ノードの内部メモリ401に保存した入力コード402(P,S,T)に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に基幹ノードの管理者以外には非公開とすることである。そして、この情報は基幹ノードの管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、基幹ノードに接続する周辺ノードの再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。これらの条件を満しつつ、入力コードはパスコードとして振舞う。
すなわち、この認証装置を用いる相互認証形式は、イーサネット(登録商標)形式と同様に物理的実態のあるノード同士の相互認証をつかさどるものである。一方、ネットワークを形成するノードを、相互認証に関わる情報を保存し中央管理下に置かれるノード(基幹ノード)と、それ以外のノード(周辺ノード)に分割する。周辺ノードは、相互認証に関わる情報を保存しない代わりに認証装置を搭載し、所定の入力に対して出力を返す。入力が異なれば必ず異なる出力を返す〈出力の独立性〉を満たすものである。〈出力の独立性〉については、以下で詳述する。
ここで、入力コードはさまざまな周辺ノードへ入力され、出力として得られる認証コードを検査するために共通して使うことが望ましい。このような事情から、“共通パスコード”とみなすことができる。こうして、基幹ノードは少なくとも一つの共通パスコードを所有することが望ましい。
上記基幹ノードが計算機(パソコン等)の場合、これに接続する周辺ノードは、たとえば、マウス、キーボード、マイクロホン、などパソコンに接続して使用されるデバイスである。上述したとおり、基幹ノードである計算機本体は、最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。認証装置の役割は、計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺ノード(マウス、キーボード、マイクロホン等)を遠隔攻撃から守ることである。
上記基幹ノードがネットワークサービスの中心的機能を担うサーバーの場合、これに接続する周辺ノードはこのネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。認証装置の役割は、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれないエンドユーザーの端末(スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等)を遠隔攻撃から守ることである。
上記基幹ノードがクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する周辺ノードは、たとえば、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、世界中の広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹ノードは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。これに対し認証装置の役割は、ネットワーク上に無数に存在し、十分に訓練を受けた専門家が最新のセキュリティ技術を駆使しても守りきれないセンサーを遠隔攻撃から守ることができる。
このように、上述した例では、ネットワークを構成するノードは、入力コード(共通パスコード)や登録コードを保存する基幹ノードと保存しない周辺ノードに分けられる。基幹ノードは中央管理下におき、周辺ノードには認証装置を搭載する。これは、典型的な金融サービスにみられるクライアント・サーバー型のネットワークの構造である。
たとえば、図17の第一のノード2001を第一のクライアント5510に対応させ、第三のノード430を第二のクライアント5520に対応させ、第四のノード440を第三のクライアント5530に対応させ、第二のノードをサーバー5000に対応させ、内部メモリ401をストレージ5010に対応させ、入力コード402を暗証コード5020に対応させ、登録コード403を決済後状態5030に対応させれば、図17は図19と等価であるのが判る。
図19は、口座名義人(クライアント)が金融機関のサーバー5000にアクセスする様子を示しており、第一のクライアント5510、第二のクライアント5520、第三のクライアント5530等が、サーバー5000に接続している。第一のクライアント5510は、暗証コード(P,S,T,…)をサーバー5000に送り、第二のクライアント5520は、暗証コード(R,O,A,…)をサーバー5000に送り、第三のクライアント5530は、暗証コード(X,A,U,…)をサーバー5000に送る。サーバー5000は保存してある暗証コード情報5020と照合し、正規のクライアントであることを確認した後、第一のクライアント5510、第二のクライント5520、第三のクライアント5530等に所定のサービスを提供する。そのサービスに応じて発生した処理情報を、それぞれのアカウントに応じて処理後状態として保存する。たとえば図19の例では、第一のクライアント5510の処理ご状態は(P1,S1,T1,…)、第二のクライアント5520の処理ご状態は(R2,O2,A2,…)、第三のクライアント5530の処理ご状態は(X3,A3,U3,…)である。
このとき、サーバー5000は処理後状態の一部あるいは全部を所定の方法で各クライアントに通知する。ここで、クライアント毎の暗証コード5020と処理後状態5030の組み合わせを当該クライアントのアカウント情報とよぶ。たとえば、第一のクライアント5510のアカウント情報は(P,S,T,…;P1,S1,T1,…)となる。第二のクライアント5520のアカウント情報は(R,O,A,…;R1,O1,A1,…)となる。第三のクライアント5530のアカウント情報は(X,A,U,…;X1,A1,U1,…)となる。こうして、アカウント情報のリストが金融機関の管理運営するサーバーのストレージ5010に保存される。
実際の金融サービスでは、一つの金融機関にアカウント(口座)を持つエンドユーザー(口座名義人)の数に制限はなく、一つの金融機関が管理するアカウント情報(口座情報)の量も論理的に制限がない。つまり、周辺ノードの数は理論的に無制限である。反対に、金融サービスを提供する金融機関の数にも制限がないので、ネットワークに接続するサーバー(基幹ノード)の数にも制限がない。
たとえば、図20に示すように、一つの周辺ノード(たとえば第一のノード2001)が複数の基幹ノード(たとえば、第一の基幹ノード1400、第二の基幹ノード2400、第三の基幹ノード3400)とのアクセスする場合を考えよう。第一の基幹ノード1400は、第一の共通パスコード1410を有し、第二の基幹ノード2400は、第二の共通パスコード2410を有し、第三の基幹ノード3400は、第三の共通パスコード3410を有するものとする。すなわち、この周辺ノードは第一の基幹ノード1400を「第一の共通パスコード1410を入力してくるもの」と認識し、第二の基幹ノード2400を「第二の共通パスコード2410を入力してくるもの」と認識し、第三の基幹ノード3400を「第三の共通パスコード3410を入力してくるもの」と認識する。これらの入力に対し、第一の基幹ノード1400は、この周辺ノードを「第一の認証11を返すもの」と認識し、第二の基幹ノード2400は、この周辺ノードを「第二の認証12を返すもの」と認識し、第三の基幹ノード3400は、この周辺ノードを「第三の認証13を返すもの」と認識する。
第一の基幹ノード1400は、図17のように、その内部メモリに少なくとも共通パスコード1410と第一の認証11の組み合わせとしてそれぞれ入力コード402および登録コード403を記録している。第二の基幹ノード2400は、図17のように、その内部メモリに少なくとも共通パスコード2410と第一の認証12の組み合わせとしてそれぞれ入力コード402および登録コード403を記録している。第三の基幹ノード3400は、図17のように、その内部メモリに少なくとも共通パスコード3410と第三の認証13の組み合わせとしてそれぞれ入力コード402および登録コード403を記録している。一方、周辺ノードである第一のノード2001は、図14で説明したように、認証装置60を内蔵している。
このようなネットワーク構造(クライアント・サーバー型)において、あるクライアントが別のクライアントに送金するには、必ずサーバーを介して処理する必要がある。他の金融機関にアカウントを持つ別のクライアントに送金するには銀行間処理、すなわち、サーバー同士での処理が安全に行われることが前提となる。たとえば、国内ならATMによるオンライン提携やマルチペイメントネットワーク(MPN)などがある。一方、他国にある金融機関のアカウントに送金するには国際間銀行通信協会(SWIFT)が提供するサービスが必要となる。現在あらゆる国際処理がSWIFTの提供する処理システム(以後、SWIFTと言う。)を用いて行われている。
このように(書き換え不能の物理アドレス)を実現する認証装置を用いれば、物理アドレスの改竄という物理層への攻撃は防ぐことが可能になり、さまざまな応用ビジネスが考えられる。しかしながら、それは論理層への攻撃を防ぐこととは異なる(図3−5参照)。論理層への攻撃、すなわち、論理層に保存された記録の改竄を防ぐのはブロックチェーンである(図6参照)。
次に、認証装置が満たすべき条件についてまとめておこう。
〈入力の独立性〉
同一の認証装置に異なる入力コードを入力するとそれぞれ相異なる出力コードを出力する。たとえば図21に示すように、認証装置600に入力コードCを入力すると出力コードAを出力する。同じ認証装置600に入力コードDを入力すると出力コードBを出力する。ここで、出力コードAと出力コードBは、入力コードCと入力コードDが異なる限り、それぞれ相異なる出力コードである。これは、図20の活用方法を実現するために満たすべき条件である。また、複数のユーザーがそれぞれ異なるパスコードを用いる限り同一の認証装置を搭載する一つの端末を複数のユーザーで共有できることを示している。
〈出力の独立性〉
二つの異なる認証装置に同じ入力コードを入力したときの動作を特定する。図22に示すように、二つの異なる第一の認証装置21と第二の認証装置22に対して、同じ入力コードQを入力する。このとき、第一の認証装置21は出力コードAを出力する。第二の認証装置22は出力コードBを出力する。ただし、出力コードAと出力コードBとは異なる。このように、入力コードが同一であっても認証装置が異なる場合出力コードはそれぞれ異なる。これは、図15および図16の活用方法を満たすために満たすべき条件である。
〈出力の予測不可能性〉
図23に示すように、n個の入力コード(Q1,Q2,…Qn)を同一の認証装置600に与えたとき、それぞれの入力コードに対し出力コード(R1,R2,…Rn)が得られることを知っているものとする。このとき、入力コードQn+1を同一の認証装置600に与えずに、(Q1,R1)、(Q2,R2)、…(Qn,Rn)のセットからこれを与えたときに得られるはずの出力コードRn+1を予測することは不可能である。ただし、入力コードQn+1は、他のn個の入力コード(Q1,Q2,…Qn)のいずれとも異なる。またnは2以上の整数とする。これは、信号伝達路のどこかで入力と出力の組み合わせを盗まれても未知の入力に対する出力は予測不可能であることと同一である。
認証装置600が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、入力コードに対する出力コードの作成は、必ずある種のアルゴリズムを用いて行われることになる。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも〈出力の予測不可能性〉を満たすことができない。これは、プログラムにより完全な乱数を生成することが不可能であることと同じ事情である。こうして、認証装置600は物理的乱雑さを活用したものでなければならないことが判る。言い換えると、〈出力の予測不可能性〉とは「物理的乱雑さの要請」でもある。
〈入出力の信頼性〉
図24に示すように、入力コードQを制御する回路に関わる制御不能のノイズなどにより、入力コードQには入力コード誤差31(ΔQ)が混入する。これに対し、入力コード誤差31(ΔQ)及び出力コードを制御する回路に関わる制御不能のノイズなどにより、出力コードRには出力コード誤差32(ΔR)が混入する。このとき、二つの異なる入力コード(たとえば、Q1およびQ2)の差の絶対値は入力コード誤差31(ΔQ)の絶対値の最大値より大きいものとする。このとき入力コードQ1に対する出力コードR1と、入力コードQ2に対する出力コードR2との間の差の絶対値は、出力コード誤差32(ΔR)の絶対値より常に大きくなければならない。これは、入力と出力の関係が安定していて信頼できることと同一である。
〈出力の現実的無限性〉
来るIoTの時代には、現役でネットワークに接続する物理ノードの数は10兆個を超えると考えられている。一方、物理アドレスは紛失したり壊れたり、あるいは、別の何らかの理由でネット接続されなくなった物理ノードにも割り振られることになる。したがって、個別認証できる個体数(物理実態を持つノードの数)も非常に大きくなければならない。このように数十兆を超える膨大な数の物理ノードから構成されるネットワークに対応するため、認証装置に課すべき五番目の条件は、一つの入力に対する出力のパターンが現実的に無限大と見なせるほど大きな数となること、である。少なくとも100兆個程度必要と考えられる。
〈物理的書き換え不可能性〉
入力コードと出力コードの関係を改竄することが物理的に不可能である。
認証装置は、上述した〈入力の独立性〉、〈出力の独立性〉、〈出力の予測不可能性〉、〈入出力の信頼性〉、〈出力の現実的無限性〉、および〈物理的書き換え不可能性〉の6つの内、目的に応じて一つまたはいくつかを同時に満たしていなければならない。
〈物理的にクローン不可能な機能〉
似たような機能を持つ技術が近年注目を集めている。物理的にクローン不可能な機能(PUF)と呼ばれるものである(特許文献1〜4参照)。これは、指紋や網膜などの生体情報を用いて人の個人認証を行うのと同様に、半導体のチップにおいても一つ一つ異なる物理的特性を用いてチップの固体認証行うものである。しかもその特性が、物理的にクローン不可能であるという特徴を持っている。そのほかPUFに要求される主な特徴は、(1)同一のPUFに異なる入力をすれば常に異なる出力をすること。(2)同一の入力をした異なるPUFは常に異なる出力をすること。(3)入力と出力の組み合わせを盗まれても、未知の入力に対する出力は予測不可能であること、(4)入力と出力の関係が安定していて信頼できること、などである。
このように、上記(1)〜(4)は、〈入力の独立性〉、〈出力の独立性〉、〈出力の予測不可能性〉、〈入出力の信頼性〉と同等である。更に、IoTに応用するのであれば〈出力の現実的無限性〉も満たさなければならない。
しかしながら、「物理的にクローン不可能である」ことと「物理的に書き換え不可能である」こととは微妙に違う概念である。たとえば、前者は、物理的に同一の乱雑さを有するチップを複製することができないことを意味している。これに対し後者は、同一チップの物理的乱雑さを改変することが不可能であることを意味している。どちらも物理的チップ認証のためには必要なものであるが、本発明に関する認証装置は〈物理的に書き換え不可能性〉を実現するものである。本発明では、後述するように、システムによって物理的に同一の乱雑さをクローンすることができないようにする。
ICチップ製品(半導体チップ製品)の場合、パッケージ剤の化学光学的性質を用いたPUFを利用するもの(コーティングPUF、特許文献1参照)と、チップそのものに依存したPUFを利用するもの(チップPUF)がある。特に近年では、チップ内に保存された暗号鍵の盗難や偽造チップ問題が注目されていることもあり、後者のチップPUFをチップ内に搭載する技術への注目度が高い。
チップPUFは、回路のばらつきを利用した回路PUFと、回路以外の微細構造のばらつきを応用したもの(製造PUF、特許文献2参照)に大別できる。回路PUFは、更に、回路の配線遅延を利用するもの(遅延PUF、特許文献3参照)と、回路のメタスタビリティを利用するもの(メタスタビリティPUF、特許文献4参照)に分かれる。遅延PUFとは、IC内で同様の設計仕様で集積化された複数の回路の動作時間に関する制御不能のばらつきを利用するものである。利用される回路の代表例は、アービター回路、グリッチ回路、リング発信回路などである。メタスタビリティPUFで使用される回路は、主にスタティックランダムアクセスメモリ(以下SRAM)とラッチ回路(バタフライPUF)である。
回路PUFの弱点は、まず個体差が小さいことである。そして出力が不安定であり(入出力の信頼性)を満たすのに不利である。更に温度変化などの外部環境に影響されやすく、フォールト攻撃に弱い。そのため、増幅回路や温度センサー回路などを追加する必要がある。こうして、回路設計への負荷が高くなり、結果的に出力コードのデータ長への制限となって現れる。すなわち、〈出力の現実的無限性〉を満たすことが難しくなる。出力コードのデータ長が短ければ、たとえ出力がランダムであっても、認証付けられるチップの数が現実的に制限される。
製造PUFでは、意図的に集積化された層間バイアの製造ばらつきに起因するランダムな断線などが利用される。回路PUFの弱点の多くを解消できる可能性があるが、従来の半導体製品に含まれない特殊な構造を集積化する必要があり、一般的に製造工程への負荷が大きくなる。やはり全般的に普及するにはハードルが高いと言える。
そのほか、デバイスの信頼性を利用するもの(特許文献5参照)も提案されているが、信頼性そのものが低く〈入出力の信頼性〉を満たさない。また、電源オン時のダイナミックランダムアクセスメモリ(以下、DRAMと言う。)のキャパシタのばらつきを利用するもの(非特許文献5参照)も報告されているが、原理的にラッチ回路PUFと共通の問題を抱えている。すなわち、個体差が小さく、環境要因の変化を利用したフォールト攻撃に弱い。
上述のように、様々な種類が提案されているPUFには個々に解決すべき問題がある。一方、物理アドレスを置き換えるための解をPUFに限定する必要はない。本発明では、〈物理的にクローン不可能な機能〉ではなく、〈物理的書き換え不可能性〉を有する認証装置をPUFに代わり物理アドレスとする方法を提案する。
特開2009−519473号公報 特開2015−201884号公報 国際公開第WO2011118548A1号明細書 特開2013−131868号公報 特開2015−139010号公報
Fatemeh Tehranipoor, Nima Karimian, Kan Xiao, John Chandy, "DRAM based Intrinsic Physical Unclonable Functions for System Level Security", in GLSVLSI'15 Proceedings of the 25th edition on Great Lakes Symposium on VLSI, pp. 15-20, 2015.
本発明は上記事情を鑑みて成されたものであり、「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を秘密鍵として提供し、公開台帳システムのための電子署名技術をハードウェアのネットワーク管理に利用する方法を提供することを目的とする。
上記課題を解決するため、本発明による認証ネットワークは、複数の論理ノードからなる論理ネットワークと、複数の物理ノードからなる物理ネットワークとからなる。前記複数の物理ノードはそれぞれ少なくとも一つの認証コアからなり、前記複数の論理ノードはそれぞれ前記認証コアに接続し、前記認証コアは固有の物理的乱雑さを有する半導体チップからなり、前記半導体チップはメモリセルアレイおよび周辺領域からなり、前記メモリセルアレイは所定のアドレス形式に従って配列された複数のメモリセルからなる。前記物理的乱雑さは、或る物理的過程によって前記メモリセルアレイ内で生成する不良ビットのアドレスの組み合わせとして生成され、所定の方法で読み出され、前記半導体チップの周辺領域に含まれる特殊内部メモリ内に電子情報として記録され、また、前記半導体チップにおいて、物理乱数コードが、前記特殊内部メモリに記録された電子情報に応じて生成される前記物理的乱雑さを反映する。前記認証コアは前記物乱数コードに基づいて秘密鍵を生成し、前記秘密鍵に基づいて鍵生成装置が生成する公開鍵を出力する。前記公開鍵は前記認証コアにリンクした前記論理ノードの論理アドレスとなり、前記秘密鍵は前記物理ノードの物理アドレスとなる。前記論理ノードおよび前記物理ノードは前記秘密鍵および前記公開鍵によって一対一にリンクされ、前記秘密鍵は前記認証コア内部に閉じ込められている。
前記不良ビットのアドレスの組み合わせは、特殊モード取得コードによって取得する。
前記特殊モード取得コードは、前記不良ビットのアドレス、前記メモリセルアレイ内の前記複数のメモリセルのそれぞれにアクセスする方法を選択するアクセスモード、および、書込み、消去、読み出しの動作を選択する動作モードからなる。
前記複数のメモリセルは、前記所定のアドレス形式に従いアドレス上に分布し、前記アドレスは、半導体表面上の前記メモリセルアレイ内でそれぞれX軸およびY軸に平行する、行および列の交差点にしたがって分布し、前記アドレスの集合は、前記Y軸方向に沿って第一および第二の行群に分割される。
前記アクセスモードは、第一のテストモード、第二のテストモード、および第三のテストモードからなる。前記第一のテストモードは、前記X軸上で任意に選ばれた列に対して、前記第一および第二の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第二のテストモードは、前記X軸上で任意に選ばれた前記列に対して、前記第一の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは、前記第二の行群内の、前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスする。
まず、前記第一のテストモードでアクセスするすべてのメモリセルに第一の値を書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが、前記メモリセルアレイ内の前記不良ビットの分布から生成される。
前記アクセスモードは、第二および第三のテストモードよりなり、前記第二のテストモードは、前記X軸上で任意に選ばれた列に対して、前記第一の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは、前記第二の行群内の、前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスする。
まず、前記第三のテストモードでアクセスするすべてのメモリセルに第一の値に書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが、前記メモリセルアレイ内の前記不良ビットの分布から生成される。
前記認証コアは、前記物理乱数コード、および、外部からの入力コードを元に、秘密鍵を生成し、前記認証コアは、前記秘密鍵、および、前記入力コードを元に、鍵生成装置が生成する公開鍵を出力する。
前記入力コードは、前記認証コアを含む電子装置の正規ユーザーが任意に設定できる個別入力である。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要なデジタルコード情報からなり、前記デジタルコード情報は、少なくとも、パスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなる。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な生物学的情報からなり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなる。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な個人情報からなり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求されるデジタルコード情報からなり、前記デジタルコード情報は、少なくとも、パスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなる。
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される生物学的情報であり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなる。
前記個別入力は、前記正規ユーザーが、必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される個人情報であり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要なデジタル情報であり、前記デジタルコード情報は、少なくとも、パスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなる。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な生物学的情報であり、前記生物学的情報は、少なくとも、正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなる。
前記個別入力は、前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な個人情報であり、前記個人情報は、少なくとも、前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなる。
本発明によれば、真に物理的実態を持つネットワークノードに対して一意に割り当てられ、書き換え不可能な物理アドレスを秘密鍵として提供し、ブロックチェーンの技術をIoTにまで拡張することが可能となる。
ネットワークシステムの最小ユニットを説明する図。 通信階層の仕組みを説明する図。 論理ネットワークと物理ネットワークの関係を説明する図。 論理ネットワークと物理ネットワークの関係を説明する図。 論理ネットワークと物理ネットワークの関係を説明する図。 論理ネットワークと物理ネットワークの関係を説明する図。 公開鍵暗号の仕組みを説明する図。 暗号通貨の仕組みを説明する図。 暗号通貨の仕組みを説明する図。 暗号通貨の送金の仕組みを説明する図。 ブロックチェーンの仕組みを説明する図。 MACアドレスを使用する仕組みを説明する図。 MACアドレスの仕組みを説明する図。 認証装置の仕組みを説明する図。 認証装置を用いた通信方法の一例を示す図。 認証装置を用いた通信方法の一例を示す図。 認証装置を用いた通信方法の仕組みを示す図。 入力コードと登録コードの一例を示す図。 クライアント・サーバー型ネットワークの仕組みを示す図。 認証装置を用いた通信方法の一例を示す図。 認証装置の性能の一例を示す図。 認証装置の性能の一例を示す図。 認証装置の性能の一例を示す図。 認証装置の性能の一例を示す図。 認証装置の使用方法の一例を示す図。 認証装置とブロックチェーンを併用したネットワークの概念を説明する図。 認証層とブロックチェーンを併用したネットワークの通信階層の一例を示す図。 認証装置を使用したビットコイン型送金処理の概念を説明する図。 認証装置を搭載するチップ(認証コア)を構成要素とする情報機器の一例を示す図。 認証装置を搭載するチップの構成要素の一例を示す図。 乱数発生装置及びコード生成装置からなる認証装置を使った通信手段の一例を示す図。 認証装置への入力である入力コード(チャレンジ)と出力である出力コード(レスポンス)の関係の一例を示す図。 認証コアの構成要素の一例を示す図。 スクランブル装置の構成要素の一例を示す図。 認証装置への入力である入力コード(チャレンジ)と中間出力である中間コードの関係の一例を示す図。 認証装置からの中間出力である中間コードと出力コードの関係の一例を示す図。 認証コアの構成要素の一例を示す図。 認証コアの構成要素の一例を示す図。 認証コアの構成要素の一例を示す図。 認証素子のセルアレイの一例を示す図。 バーコード型乱数コードの一例を示す図。 認証装置セルアレイとスクランブル装置セルアレイの配置の一例を示す図。 認証素子が抵抗である例を説明する図。 認証素子がキャパシタである例を説明する図。 認証素子がPN接合である例を説明する図。 認証素子がショットキー接合である例を説明する図。 認証素子がトランジスタである例を説明する図。 認証素子がDRAMセルである例を説明する図。 認証素子がトランジスタと抵抗変化(Re)RAMあるいは相変化(PC)RAMである例を説明する図。 認証素子が磁気抵抗RAMである例を説明する図。 認証素子が浮遊ゲートトランジスタである例(NORフラッシュ)を説明する図。 認証素子が浮遊ゲートトランジスタであるNAND型配列の例(NANDフラッシュ)を説明する図。 認証素子がトランジスタであるNAND型配列の例(NAND−MROM)を説明する図。 DRAM混載型認証装置とCPUを組み合わせた認証コアの一例を示す図。 DRAM混載型認証装置とCPUを組み合わせた認証コアの一例を示す図。 DRAM混載型認証装置とCPUを組み合わせた認証コアの一例を示す図。 認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。 認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。 認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。 認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。 認証装置と鍵生成装置を併用した認証コアの構成の一例を示す図。 冗長ビット線群と正規ビット線群の配置の一例を示す図。 冗長ビット線群と正規ビット線群の配置の一例を示す図。 不良ビットを含むビット線を冗長ビット線と置き換える方法の一例を示す図。 不良ビットを含むビット線を置き換える冗長ビット線にも不良ビットが発生している一例を示す図。 行群Aおよび行群Bの二つに分けられた認証素子アレイの一例を示す図。 冗長コードの概念を説明する図。 冗長コードの一使用例を説明する図。 通常アクセスモードのアクセス方法の一例を説明する図。 第一のテストモード1のアクセス方法の一例を説明する図。 第二のテストモード2のアクセス方法の一例を説明する図。 第一のテストモード1でアクセスしたセルを全て0書き込みした一例を示す図。 第二のテストモード2でアクセスしたセルを全て1書き込みした一例を示す図。 通常アクセスモードでアクセスしたセルを読み出した一例を示す図。 通常アクセスモードでアクセスしたセルを読み出し生成したデータを出力コードとする方法の一例を示す図。 行群Aおよび行群BをY軸方向にサーチするいくつかの手順を示す図。 不良ビットを含む行群B内の行を、行群A内のある行と置き換える方法の一例を説明する図。 不良ビットを含む行群B内の行を置き換える、行群A内の行にもたまたま不良ビットが発生する一例を説明する図。 行群Aおよび行群BをY軸方向にサーチする手順を変更しながら、行群A内の不良ビットを含む行との置き換えを避ける方法の一例を示す図。 行群Aから出力コードの一部を生成する方法の一例を示す図。 行群Aおよび行群Bから出力コードを生成する方法の一例を示す図。 周辺回路に含まれる特殊内部メモリに記録された冗長データ(Fi,Ri)から生成するコードを乱数発生装置の出力として通信認証に利用する一例を示す図。 周辺回路に含まれる特殊内部メモリに記録された冗長データ(Fi,Ri)をスクランブル装置に利用する一例を示す図。 周辺回路に鍵生成装置を含めた一例を示す図。 本発明の認証コアをブロックチェーンと併用し、論理ネットワークと物理ネットワークを一意に接続する方法の概念を説明する図。
以下、本発明を実施するための最良の形態について、具体的に説明する。
上述してきたように、物理的実態である半導体チップの内部にさまざまな工夫を駆使することにより、本発明による認証装置はチップに固有の形態として(書き換え不能の物理アドレス)を実現できる。この認証装置からの出力は一種の物理乱数であり、ブロックチェーンの電子署名で用いられる秘密鍵を生成するために使用することが可能である。
これらの特徴を利用するための構成を精緻に設計することにより、論理ノードのネットワーク(論理ネットワーク)で威力を発揮するブロックチェーンの優れた性能を物理ノードのネットワーク(物理ネットワーク)に適用することが可能となる。以下図面を用いて具体的に説明してゆく。
図25では、このような条件を満たす二つの異なる認証装置(第一の認証装置と第二の認証装置)が、それぞれ第一のノード2001と第二のノード2002に搭載されている。第一のノード2001および第二のノード2002は、信号伝達路1000で接続され、所定のフォーマットに従ってプロトコル・データ・ユニットを交換できる。第一および第二の認証装置を追加した以外、図1と等価である。
図26は、本発明に関連する認証装置を搭載したハードウェアが参加する物理ネットワークとブロックチェーンを活用する論理ネットワークの関係を説明する図面である。前記ハードウェアは物理的実態を持ち、物理ネットワークを構成するノードとなるので物理ノードである。認証装置が生成する(書き換え不可能な物理アドレス)を秘密鍵とする。公開鍵暗号によってこの秘密鍵と対をなす公開鍵を論理アドレスとする論理ノードが、この認証装置を搭載するハードウェアと対をなす。こうして、(書き換え不可能な物理アドレス)と論理アドレスが、P2P型ネットワークにおいて連結される。これは、ソフトウェアとハードウェアを改竄不可能な状態で連結したことに他ならない。
図27は、本発明に関連する認証装置が論理アドレスと物理アドレスが連結された状態を示している。まず、認証装置はデータリンク層と物理層の間に認証層を形成し、公開鍵暗号で対をなす論理アドレスと物理アドレスは、認証層で認証アドレスに合成される。こうして論理層の上に配置される論理ノードと物理層の下に配置される物理ノードが改竄不可能な状態で連結される。
図28は、処理(N-2,N-1)を財布(N-2)から財布(N-1)に対して行い、処理(N-1,N)を財布(N-1)から財布(N)に対して行い、処理(N,N+1)を財布(N)から財布(N+1)に対して行う場合の一例である。ただし、Nは、何らかの方法でネットワークに接続する物理ノードに割り付けられた任意の自然数であり、財布(N)は第Nのノードのことである。下段には公開鍵、ハッシュ値、電子署名を囲った矩形20000が3つ並んでいる。これに対し、上段には、鍵生成装置と、認証装置および秘密鍵(書き換え不可能な物理アドレス)を含む矩形が3つ並んで存在する。
この認証装置は、図29に示すように、第一のチップ110(認証コア)に含まれる認証装置600に対応する。IPアドレスや公開鍵をアドレスとする論理ノードと異なり、情報機器は物理的実態を持つものである。そこで、情報機器と論理ネットワークを関連付けるため、第一のチップ110は認証装置600を搭載している。この意味で、第一のチップ110を情報機器140の認証コアと見なすことができる。第一のチップ110は、複数の他の(たとえばN−1個の)半導体チップ(第二のチップ120、…第Nのチップ130)と共に情報機器140を構成する。すなわち、図28の上段に並んだ3つの矩形は、それぞれ情報機器に搭載される認証コア10000である。
一方、図8のビットコインの財布に相当するものは下段の矩形であり、本発明では上段に認証コアが追加されている。さらに図10と異なり、本発明では秘密鍵が認証コアに含まれており、物理的実態(半導体チップ)の中に閉じ込めることが可能である。
具体的に働き方を見るため、下段中央の財布(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)の生成方法と同様なので、説明を省略する。
このように、秘密鍵が認証コア10000に含まれていること以外、図10のビットコインの場合の説明とまったく同様である。したがって、本発明は従来のブロックチェーンと完全な整合性がある。
したがって、図10との決定的な違いは認証コア10000にある。下段の矩形20000の中に納まっている公開鍵は、ビットコインのように財布のアドレスとして論理的に与えられたものではなく、実は、上段の矩形、すなわち、認証コア10000によって所定の物理的生成プロセスを用いて生成されたものである。
上段の矩形、すなわち、認証コア10000は、ネットワーク上の物理ノードを構成する半導体チップ(あるいは単にチップ)の一つである。一般に、半導チップは物理的実態であり、その存在をソフトウェアによって論理的に生成するものではない。
上段の矩形、すなわち、認証コア10000は、すくなくとも認証装置、認証装置への入力となる何らかのコード情報(個別入力)、認証装置を使って生成する秘密鍵の3つを構成要素とする。
一例として、個別入力とはネットワーク上で動作する何らかのアプリを起動するためのパスコード、PINコード、バーコード、QRコード(登録商標)などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。
別の一例として、個別入力とはネットワーク上で動作する何らかのアプリが必要に応じてユーザーに要求するパスコード、PINコード、バーコード、QRコード(登録商標)などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。
更に別の一例として、個別入力とはネットワーク上で動作する何らかのアプリがインストールされている情報端末を起動するためのパスコード、PINコード、バーコード、QRコード(登録商標)などのデジタルコード情報、指紋情報、静脈情報、網膜情報、DNA情報、その他前記アプリの正規ユーザーを特定する何らかの生体情報、正規ユーザーの音声や画像などから抽出した個人を特徴できる音声・画像情報、正規ユーザーの身体的特徴などから抽出した個人を特徴できる身体情報、その他正規ユーザーを特徴できる個人情報などである。
あるいは、更に別の一例として、個別入力とは何等かの物理的プロセスにより認証装置を構成する半導体チップに固有な状態で生成される物理乱数を取得するための特殊モード取得コードなどである。ここで特殊モード取得コードは、少なくともチップ内部のデータに対するアクセスモード、アドレス、動作モードを指定するコードである。
あるいは、個別入力とは、上記複数の個別入力の組み合わせにより構成されるものであても良い。いずれにしろ、こうして物理的実態である認証装置から生成した秘密鍵と、ネットワーク上の論理アドレスである公開鍵を具体的に結びつけることが可能となる。すなわち、本発明の認証コアによって、物理的実態である半導体チップ(ハードウェア)と論理ネットワーク(ソフトウェア)を有機能的に連結することが可能となる。
一方、ブロックチェーンの数少ない弱点の一つは51%攻撃である。これは、秘密鍵の正規の利用者が二重処理を行うことによって発生する偽のブロックチェーンと、正規のブロックチェーンをどのように見分けるか、という問題である。上述したように、正規のブロックチェーンが不正の行われる以前から存在しているとすれば長いブロックチェーンを正規と認めることで解決することになっている。しかしながら、不正を働く攻撃側がブロックチェーンに参加する全世界の計算能力の51%以上を支配した場合、後から発生したブロックチェーンを長くすることも不可能ではない。
本発明に関する上段の矩形、すなわち認証コア10000に搭載される認証装置を用いれば、たとえ財布の正規の所有者あるいは利用者であっても認証コアを構成するチップから秘密鍵を取り出せないようにすることが可能である。
図28を見ながら具体的に説明する。たとえば、秘密鍵(N)を用いて電子署名(N)を生成する方法から始める。まず財布(N)は、財布(N)の中身であるハッシュ値(N-1)と公開鍵(N)と電子署名(N-1)をまとめてハッシュ化し、ハッシュ値(N)を生成する。これは、財布(N)の内部に一時的に保存できる。次に、処理の転送先である財布(N+1)のネットワーク上の論理アドレスである公開鍵(N+1)を取得する。続いて、財布(N)にリンクする認証コア10000のチップ内部に閉じ込めた秘密鍵(N)を用い、認証コア内部の鍵生成装置でハッシュ値(N)および公開鍵(N+1)をまとめて暗号化する。こうして電子署名(N)を生成する。最後に、生成した電子署名(N)とハッシュ値(N)を共に財布(N+1)に送付する。
このように処理(N,N+1)に必要な作業はすべて財布(N)の側で完結するので、秘密鍵を認証コアの外に出す必要がないことが判る。よって秘密鍵の乱用を防ぐことが可能となり、51%攻撃を危惧する必要はなくなる。
図29の例では、第一のチップ110が本発明に関する認証コアを構成している。このチップは、たとえば図30のように、少なくとも認証装置600と入出力制御モジュール800を搭載している。この入出力制御装置800は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含み、外部入出力50を通じて外部とデータを交換することが可能である。
このように、電子装置を構成するチップは一つとは限らない。ネットワークを構成する物理ノードは、どれも少なくとも一つ以上のチップから構成されていると考えられる。一例として、図29では、物理ノードとなる情報機器140が、第一のチップ110、第二のチップ120、…、第Nのチップ130から構成されている。このうち、必ずしもすべてのチップが本発明の認証装置を搭載している必要はない。図29の例では、第一のチップ110のみが認証装置600を搭載し、認証コアとなっている。
このような認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、あるいは認証装置の機能のみを持つチップとして単独で製造しても良い。また、認証装置は、入力コードを受け取る度に物理的乱雑さに基づいて出力コードを発生することが望ましい。電子装置が複数のチップで構成される場合、少なくとも一つのチップが本発明に関する認証装置を搭載することが必要である。
図31は、図29の認証装置600の構成と使用方法の一例を示す概念図である。認証装置は少なくとも乱数発生装置601とコード生成装置602を含む。すなわち、乱数発生装置601でバーコード状の物理乱数コード{d(i)}を発生し、この乱数コードを、通信相手400から受け取った入力コード{a(i)}と共にコード生成装置602に入力し、出力コード{c(i)}を生成する。ただし、iは1からNまでの整数である。
一例として、通信相手400は、図14あるいは図25の第二のノード2002に対応する。一方、認証装置600を搭載する物理ノードは、図14あるいは図25の第一のノード2001に対応する。第二のノード2002が物理ノードであれば、図31は物理ノード同士の通信の概念図に相当する。
別の一例では、入力コード{a(i)}を図28の個別入力とすることも可能である。この場合、通信相手400は財布の利用者あるいは使用者のことである。
〈コード生成装置〉
いずれにしろ、通信相手400が入力する入力コード(P,S,T,…)をバイナリ表示して0と1の数列に変換したものが{a(i)}である。さらに、乱数発生装置601が生成する物理乱数コード{d(i)}は0と1のランダムな集合である。続いて、入力コード{a(i)}及び物理乱数コード{d(i)}から、何らかの方法を用いて出力コード{c(i)}を生成する。これがコード生成装置の役割である。この出力コード{c(i)}を通信相手400に返す。こうして、通信相手400と認証装置の間で入力コード{a(i)}及び出力コード{c(i)}が交換されることになる。
一例として式1のように、出力コード{c(i)}を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はxをyで割った余りである。図32は、入力コード{a(i)}及び物理乱数コード{d(i)}と、式1に基づいて出力される出力コード{c(i)}との関係を一覧表にしたものである。

c(i) = mod(a(i) +d(i),2) 式1
この方法を用いると変換の前後で0と1の数の割合に変化がないことが容易に想像される。これは、扱われるデータ量を安定化させるために必要な条件である。すなわち、式1の右辺に入力される情報量と、式1の左辺から出力されるデータ量がほぼ同等であることが求められる。なぜなら、入力情報量と出力情報量が大きく異なる場合、式1で定義される系の情報量は少ない方に合わせられ、結果として少なくともその差分だけ情報エントロピー(物理的乱雑さ)を失うことになるからである。情報エントロピーを失うということは、その分(出力の現実的無限性)を失う可能性があるので出来る限り避ける必要がある。
〈乱数発生装置〉
乱数発生装置の具体的な構成については後で詳しく述べる。図31の例では、乱数発生装置601とコード生成装置602が共に認証装置600の構成要素となっている。一方、自明なので特に図示しないが、別の一例ではコード生成装置602を認証装置600の外に置くことも可能である。この場合でもコード生成装置602が認証コア10000の中に含まれていれば問題ない。あるいは更に別の一例では、コード生成装置を使用しない実施例も考えられる。この場合物理乱数コード{d(i)}が出力コード{c(i)}そのものになり、図28の例では認証コアへの個別入力を省くことが可能となる。
コード生成装置602は、式1で概念的に説明されるようにプログラムで構成することが可能である。ここで、コード生成に一種のアルゴリズムを使用することになるが、物理乱数{d(i)}で物理的乱雑さを取り込むので問題ない。
本発明に関する認証コア10000は、たとえば図33のように、少なくとも認証装置600と、認証制御装置880と、入出力制御装置810と、スクランブル装置890と、及び中間コード用バッファー900とから構成され、チップに搭載することができる。
この入出力制御モジュール810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置モジュール890は中間コードを生成し、この中間コードは入出力制御モジュール810とは独立した中間コード用バッファー900に格納され、外部からの要請があっても中間コードを認証コア10000の外部に出力されない。これは、中間コードを認証コア内に閉じ込めるためである。認証制御装置880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
外部入出力50から入力コード{a(i)}が入力されると、入出力制御装置810は入力コード{a(i)}をスクランブル装置890に渡す。ただし、スクランブル装置890は、図34が示すように、少なくとも乱数生成装置605およびコード生成装置606を構成要素とする。更にワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
式2に基づいてスクランブル装置890が生成する中間コード{f(i)}は、中間コード用バッファー900に一時格納され、認証制御装置880に引き渡される。ただし、式2の{d(i+N)}は、乱数発生装置605が生成する乱数コードであり、乱数発生装置601が生成する乱数コード{d(i)}とは別のものである。また、式2に従って中間コード{f(i)}を生成するコード生成装置606は、一般に図31のコード生成装置602と同一である必要はない。しかしながら、認証コア10000が1チップである場合、別の一例として、コード生成装置602がコード生成装置606を代換えすることも可能である。この場合、コード生成装置606の分だけチップ面積を節約することが可能となる。

f(i) = mod(a(i) +d(i+N),2) 式2
一例として図35のように、中間コード{f(i)}を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はxをyで割った余りである。図35は、入力コード{a(i)}及び物理乱数コード{d(i+N)}と、式2に基づいて出力される中間コード{f(i)}との関係を一覧表にしたものである。
認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置600から取得した物理乱数コード{d(i)}と中間コード用バッファー900から取得する中間コード{f(i)}とに応じ、式3に基づいて出力コード{c(i)}を生成する。

c(i) = mod(f(i) +d(i),2) 式3
一例として図36のように、出力コード{c(i)}を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はxをyで割った余りである。図36は、中間コード{f(i)}及び物理乱数コード{d(i)}と、式3に基づいて出力される出力コード{c(i)}との関係を一覧表にしたものである。
この出力コード{c(i)}は、認証制御装置880内部のデータバッファーに一時格納する。入出力制御装置810は、認証制御装置880内部のデータバッファーから出力コード{c(i)}を取得し、外部入出力50を通じてを認証コア10000の外に出力する。ただし、中間出力{f(i)}および物理乱数コード{d(i)}および{d(i+N)}は認証コア10000の内部に閉じ込められ、外部に出力されない。
また、自明のため特に図示しないが、本発明では、認証装置600にスクランブル装置890を含ませることも出来る。その場合の詳しい説明は自明であるので省略する。
本発明に関する認証コア10000は、一例として、図37のように、少なくとも認証装置600と、認証制御装置880と、入出力制御装置810と、鍵生成装置891と、から構成され、これらをチップに搭載することができる。
この入出力制御装置810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。認証制御装置880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
外部入出力50から個別入力として入力コード{a(i)}が入力されると、入出力制御装置810は入力コード{a(i)}を認証制御装置880に引き渡す。認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置600から取得した乱数コード{d(i)}と入力コード{a(i)}とに応じ、式1に基づいて出力コード{c(i)}を生成する。生成した出力コード{c(i)}は、図28の例では秘密鍵として機能する。これを鍵生成装置891に入力し、公開鍵を生成する。入出力制御装置810は、外部入出力50を通じて公開鍵を認証コア10000の外部に出力する。一方、秘密鍵をチップ内部に閉じ込めておくことが可能となる。
あるいは、外部入出力50から個別入力として特殊モード取得コードが入力される場合、入出力制御装置810は特殊モード取得コードを認証制御装置880に引き渡す。認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードに従って認証装置600から取得した乱数コード{d(i)}を出力コード{c(i)}として出力する。この場合式1の変換を必ずしも必要としない。この出力コード{c(i)}は、図28の例では秘密鍵として機能する。これを鍵生成装置891に入力し、公開鍵を生成する。入出力制御装置810は、外部入出力50を通じて公開鍵を認証コア10000の外に出力する。一方、秘密鍵をチップ内に閉じ込めておくことが可能となる。
あるいは、外部入出力50から個別入力として特殊モード取得コードおよび入力コード{a(i)}が入力される場合、入出力制御装置810は特殊モード取得コードおよび入力コード{a(i)}を認証制御装置880に引き渡す。認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがって認証装置600から取得した乱数コード{d(i)}と入力コード{a(i)}とに応じ、式1に基づいて出力コード{c(i)}を生成する。生成した出力コード{c(i)}は、図28の例では秘密鍵として機能する。これを鍵生成装置891に入力し、公開鍵を生成する。入出力制御装置810は、外部入出力50を通じて公開鍵を認証コア10000の外に出力する。一方、秘密鍵をチップ内に閉じ込めておくことが可能となる。
本発明に関する認証コア10000は、一例として、図38のように、少なくとも認証装置600と、認証制御装置880と、入出力制御装置810と、スクランブル装置890と、中間コード用バッファー900と、鍵生成装置891とから構成され、これらをチップに搭載することができる。
この入出力制御装置810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置890が生成する中間コードは、入出力制御モジュール810とは独立した中間コード用バッファー900に格納され、外部からの要請があっても中間コードを認証コア10000の外部に出力しない。これは、中間コードを認証コア内部に閉じ込めるためである。また、認証制御装置880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
外部入出力50から個別入力として入力コード{a(i)}が入力されると、入出力制御装置810は入力コード{a(i)}をスクランブル装置890に渡す。ただし、スクランブル装置890は、図34が示すように、少なくとも乱数生成装置605およびコード生成装置606を構成要素とする。更にワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
式2に基づいてスクランブル装置890が生成する中間コード{f(i)}は、中間コード用バッファー900に一時格納され、認証制御装置880に引き渡される。ただし、式2の{d(i+N)}は、乱数発生装置605が生成する乱数コードであり、乱数発生装置601が生成する乱数コード{d(i)}とは別のものである。また、式2に従って中間コード{f(i)}を生成するコード生成装置606は、一般に図31のコード生成装置602と同一である必要はない。しかしながら、認証コア10000が1チップである場合、別の一例として、コード生成装置602がコード生成装置606を代換えすることも可能である。この場合、コード生成装置606の分だけチップ面積を節約することが可能となる。
一例として図35のように、中間コード{f(i)}を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はxをyで割った余りである。図35は、入力コード{a(i)}及び物理乱数コード{d(i+N)}と、式2に基づいて出力される中間コード{f(i)}との関係を一覧表にしたものである。
認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、認証装置600から取得した物理乱数コード{d(i)}と中間コード用バッファー900から取得する中間コード{f(i)}とに応じ、式3に基づいて出力コード{c(i)}を生成する。
一例として図36のように、出力コード{c(i)}を生成するために剰余演算 mod(x,y) を用いることが可能である。剰余演算はxをyで割った余りである。図36は、中間コード{f(i)}及び物理乱数コード{d(i)}と、式3に基づいて出力される出力コード{c(i)}との関係を一覧表にしたものである。
この出力コード{c(i)}は、認証制御装置880内部のデータバッファーに一時格納する。中間コード{f(i)}および物理乱数コード{d(i)}および{d(i+N)}は認証コア10000の内部に閉じ込められ、外部に出力されない。
また、自明のため特に図示しないが、本発明では、認証装置600にスクランブル装置890を含ませることも出来る。その場合の詳しい説明は自明であるので省略する。
このように生成した出力コード{c(i)}は、図28の例では秘密鍵として機能する。これを鍵生成装置891に入力し、公開鍵を生成する。入出力制御装置810は、外部入出力50を通じて公開鍵を認証コア10000の外部に出力する。一方、秘密鍵を認証コア内部に閉じ込めておくことが可能となる。
あるいは、外部入出力50から個別入力として特殊モード取得コードが入力される場合、入出力制御装置810は特殊モード取得コードをスクランブル装置890に渡す。スクランブル装置890は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードに従ってスクランブル装置890から取得した乱数コード{d(i+N)}を中間コード{f(i)}として出力する。これを中間コード用バッファー900に一時格納する。この場合、式2の変換を必ずしも必要としない。
この中間コード{f(i)}は、特殊モード取得コードと共に認証制御装置880に引き渡される。認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがって認証装置600から取得した乱数コード{d(i)}と中間コード{f(i)}とに応じ、式3に基づいて出力コード{c(i)}を生成する。生成した出力コード{c(i)}は、図28の例では秘密鍵として機能する。
あるいは、外部入出力50から個別入力として特殊モード取得コードおよび入力コード{a(i)}が入力される場合、入出力制御装置810は特殊モード取得コードおよび入力コード{a(i)}をスクランブル装置890に渡す。スクランブル装置890は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがってスクランブラー890から取得した乱数コード{d(i+N)}と入力コード{a(i)}とに応じ、式2に基づいて中間コード{f(i)}を生成する。これを中間コード用バッファー900に一時格納する。
この中間コード{f(i)}は、特殊モード取得コードと共に認証制御装置880に引き渡される。認証制御装置880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーなどを駆使し、特殊モード取得コードにしたがい、認証装置600から取得した乱数コード{d(i)}および中間コード{f(i)}を用いて式3に基づいて出力コード{c(i)}を生成する。生成した出力コード{c(i)}は、図28の例では秘密鍵として機能する。
いずれにしろ、こうして生成した秘密鍵を鍵生成装置891に入力し、公開鍵を生成する。
あるいは、図39に示すように、上記中間コード{f(i)}を図28の秘密鍵とし鍵生成装置891に入力して公開鍵を生成する。
入出力制御装置810は、このようにして得られた公開鍵を、外部入出力50を通じて認証コア10000の外部に出力する。一方、秘密鍵は認証コア10000の内部に閉じ込めておくことが可能である。
図40は、認証装置を構成する認証装置セルアレイの全部あるいはその一部を切り出したものである。交差点上に認証素子977が配置されており、この一例では行数がNで列数がMである。一般に、NやMは自然数である。メモリチップの場合、行方向にビット線群を配置し、列方向にワード線群を配置する。あるいは反対に、行方向にワード線群を配置し、列方向にビット線群を配置する。
行方向の同一の線(ビット線あるいはワード線)に連なった認証素子群に関わる何らかの物理的性質に応じ、対応する行番号に白、または黒の水平線を割り当てることにする。このとき、図41に示すようにバーコード状の模様が得られる。白と黒の割り当てが物理的にランダムに決定される場合、このバーコード状の模様は物理的にランダムになる。ここで行番号を{i}(ただしiは自然数とする)とすると、バーコード状の模様は上記物理乱数コード{d(i)}に対応する。この物理乱数コード{d(i)}が図31のバーコードに対応する。
図38および図39のようにスクランブル装置890を併用する場合、図40の認証装置セルアレイに加えてスクラブル装置セルアレイも必要になる。図42は、N行M列の認証装置セルアレイ611とK行M列のスクラブル装置セルアレイ614のレイアウトの一例を示す図面である。ここで、認証素子977は、認証装置セルアレイ611およびスクランブル装置セルアレイ614に渡って市松模様状に配置される。
図43は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところに抵抗985を配置している。一般に、抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、認証素子としては不良ビットとなる。
図43の認証素子977を、抵抗985からキャパシタ982に変更すると、図44のようになる。一般に、キャパシタに高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊は確率的に発生し、認証素子977として不良ビットとなる。
図43の認証素子977を、抵抗985からPN接合986に変更すると、図45のようになる。一般に、PN接合に逆方向高電圧を印加すると稀に接合破壊を起こして逆電圧印可時にも電流を流さすようになる。このような接合破壊は確率的に発生し、認証素子977として不良ビットとなる。
図43の認証素子977を、抵抗985からショットキー接合987に変更すると、図46のようになる。一般に、ショットキー接合に高電圧を印加すると稀に接合破壊を起こし整流作用を示さなくなる。このような接合破壊は確率的に発生し、認証素子977としては不良ビットとなる。
図43の認証素子977を、抵抗985からトランジスタ983に変更すると、図47のようになる。一般に、トランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でPN接合が接合破壊を起こし、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。いずれにしろ認証素子977として不良ビットとなる。
図43から図47は、マスク型リードオンリーメモリ(MASK-ROMまたはMROM)のメモリセルでもある。この例のようにメモリセルを市松状に配列している場合その配列をNOR型という。NOR型配列の特徴は、メモリセル毎にビット線コンタクトとワード線コンタクトがあることである。従って、これらはNOR型MROM、あるいは、単にMROMという。
図43の認証素子977を、抵抗985からトランジスタ983およびキャパシタ982よりなるダイナミック・ランダム・アクセス・メモリ(DRAM)セル984に変更すると、図48のようになる。一般に、トランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でPN接合が接合破壊し、トランジスタをオフにすることが不可能になる。これもトランジスタとしては不良となる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。あるいは、キャパシタに高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊は確率的に発生し、キャパシタとしては不良となる。トランジスタおよびキャパシタのどちらか一方が不良を起こしてもDRAMセルは正常に動作しなくなり、認証素子977として不良ビットとなる。
図48で認証素子977として採用されているDRAMセル984のキャパシタ982を可変抵抗981に変更すると、図49の可変抵抗メモリセル989になる。この可変抵抗981の抵抗値が電圧印可で制御できる場合、この素子は抵抗変化メモリ(ReRAM)である。加熱によって可変抵抗の抵抗値が制御できる場合、この素子は相変化メモリ(PCRAM)である。いずれにしろ、メモリセル内のトランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でPN接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。これもトランジスタとしては不良となる。あるいは、可変抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、可変抵抗素子としては不良となる。いずれにしろ認証素子977として不良ビットとなる。
図48で認証素子977として採用されているDRAMセル984のキャパシタ982を磁気抵抗980に変更すると、図50の磁気抵抗メモリセル990になる。この磁気抵抗が巨大磁気抵抗(GMR)膜である場合、この素子は磁気抵抗メモリ(MRAM)である。この磁気抵抗がスピン注入膜(STT)である場合、この素子はSTT型磁気抵抗メモリ(STT-MRAM)である。いずれにしろ、メモリセル内のトランジスタのゲート絶縁膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、トランジスタとしては不良となる。あるいは、トランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でPN接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これも不良とみなす。これもトランジスタとしては不良となる。あるいは、磁気抵抗に高電圧を印加すると稀に断線して電流を流さなくなる。このような断線は確率的に発生し、磁気抵抗素子としては不良となる。いずれにしろ認証素子977として不良ビットとなる。
図47で認証素子977として採用されているトランジスタ983を浮遊ゲートトランジスタ988に変更すると、図51のようにNORフラッシュのメモリセルになる。一般に、浮遊ゲートトランジスタのトンネル膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、浮遊ゲートトランジスタとしては不良となる。あるいは、浮遊ゲートトランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその付近でPN接合が接合破壊し、トランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これらも不良とみなす。いずれにしろ認証素子977として不良ビットとなる。
図48から図51の例も、メモリセル内にビット線コンタクトとワード線コンタクトが一つずつあるのでNOR型配列である。
図51のワード線503とビット線902を交換し、ビット線コンタクトを認証素子977から取り除くと、図52のようになる。このようにメモリセルからビット線コンタクトを取り除いた配列をNAND型配列という。これは、浮遊ゲートトランジスタをNAND型配列にしたものであり、NANDフラッシュと呼ばれる。一般に、浮遊ゲートトランジスタのトンネル膜に高電圧を印加すると稀に絶縁破壊を起こして直流電流を流すようになる。このような絶縁破壊破壊は確率的に発生し、浮遊ゲートトランジスタとしては不良となる。あるいは、浮遊ゲートトランジスタのソース端あるいはドレイン端に逆方向高電界を印加するとその近辺でPN接合が接合破壊し、浮遊ゲートトランジスタをオフにすることが不可能になる。あるいは、他の何らかの理由により検査時に閾電圧が規格外になることもある。これらも不良とみなす。いずれにしろ認証素子977として不良ビットとなる。
図52で認証素子977として採用されている浮遊ゲートトランジスタ988をトランジスタ983に変更すると、図53のようになる。これは、トランジスタ983をNAND型配列にしたものであり、NAND-MROMと呼ばれる。MROMは、上述したように、マスク型リードオンリーメモリの略であり、メモリセルとしては抵抗、PN接合、ショットキー接合、トランジスタなどマスクを使って通常の半導体製造プロセスで製造できるものなら何でもNAND型に配列可能である。本例では、たまたまNAND型配列にトランジスタ983を使ったまでであり、本実施形態の概念を逸脱しない限り抵抗985、キャパシタ982、PN接合986、ショットキー接合987などトランジスタ983などと置き換えてNAND-MROMとすることが可能である。また、高電圧を印加すると、上述の複数の例と同様に、認証素子977の一部または全部が稀に破壊される。
あるいは、抵抗素子、キャパシタ、PN接合、ショットキー接合、トランジスタ、浮遊ゲートトランジスタ、DRAMセル、ReRAMセル、PCRAMセル、MRAMセル、STT-MRAMセル、あるいは他のどのようなメモリセルを認証素子977として採用しようとも、製造段階に不慮の要因により一部の認証素子が不良を起こす場合がある。
いずれにしろ、このように不良を起こした認証素子を含む行を黒とし、それ以外の行を白とすれば、図31および図41のようにバーコード状の物理乱数コードが生成できる。この物理乱数コードが図33、図37、図38および図39の認証装置600内部の乱数発生装置601やスクランブル装置890内部の乱数発生装置605の出力となる。(
認証素子977として既に量産されているメモリ製品のメモリセルを用いる場合、認証装置を安価に大量供給することが可能である。図43から図53の各種認証素子において、市場で最も受け入れられているのは図47のMROM、図48のDRAM、図51のNORフラッシュ、および図52のNANDフラッシュセルである。中でもDRAMはCPUを動かすのに不可欠な半導体記憶装置である。したがって、図54から図56のように、CPUと張り合わせて認証コア10000とすることが可能である。
図54は、認証装置600を含むDRAMチップにその他認証制御モジュール一式3030を混載し、そのDRAMチップとCPUチップを張り合わせるようにマウントして認証コア10000とする一例を示す鳥瞰図である。
図55は、認証装置600を含むDRAMチップと、その他認証制御モジュール一式3030を含むCPUチップとを張り合わせるようにマウントして認証コア10000とする一例を示す鳥瞰図である。
図56は、認証装置600を含むDRAMチップと、CPUチップとを張り合わせるようにマウントし、その他認証制御モジュール一式3030を含む外部モジュールとリンクさせて認証コア10000とする一例を示す鳥瞰図である。
図54から図56において、その他認証制御モジュール一式3030とは、図30、図31、図33、図34、図37、図38図39などで説明してきた認証装置と共に併用される種々の装置群の総称である。実施態様に応じてその内容は最適化されることが望ましい。
図54から図56の例は、まさにOne-CPU-One-Voteを体現するものである。しかしながら、本実施形態に関するほんの一部に過ぎず、図54から図56を用いて説明した概念を大きく逸脱しない限り、より多様な組み合わせが可能である。
図57のように、本発明に関わる認証装置600とスクランブル装置890は、同一のチップ(例えば第一のチップ110)に集積することが可能である。それ以外の装置、例えば、認証制御装置880、中間コード用バッファー900、入出力制御装置810、鍵生成装置891などは第一のチップ110に搭載することも可能であるが、第一のチップ110以外の認証コアを構成する別の電子部品等に搭載することも可能である。
図58では、入出力制御装置810も第一のチップ110に搭載した一例である。
図59は、更に認証制御装置880および中間コード用バッファー900も第一のチップ110に搭載した例である。
図60は、更に鍵生成装置891も第一のチップ110に搭載した例である。すなわち、これは、1チップ認証コアとなる。
図61のように、本発明に関わる認証装置600とスクランブル装置890を、それぞれ異なる二つのチップ(第一のチップ110および第二のチップ120)に集積することが可能である。それ以外の装置、例えば、認証制御装置880、中間コード用バッファー900、入出力制御装置810、鍵生成装置891などは、第一のチップ110あるいは第二のチップ120に搭載することも可能であるが、第一のチップ110および第二のチップ120以外の認証コアを構成する別の電子部品等に搭載することも可能である。
認証素子977が量産メモリチップ製品のメモリセルである場合を考える。ただし、DRAM、NORフラッシュ、NANDフラッシュ、MROM等、既に市場に広く出回っているものばかりでなく、ReRAM、PCRAM、MRAM、STT-MRAM等、今後市場に広く出回る可能性を秘めたものなども認証素子977として採用可能である。あるいは、NAND型配列、NOR型配列に関わらず、今後新たに考案されるメモリセルも採用可能である。
NAND型配列とNOR型配列の違いは、上述したように、単にメモリセルにビット線コンタクトが含まれるかどうかの違いのみであり、ビット線902とワード線503の交点にメモリセルが配置されていることに違いはない。したがって、以下本実施形態で説明する方法は、NAND型配列とNOR型配列双方に有効ある。
通常量産メモリチップ製品は、図62あるいは図63のように、メモリセルアレイを冗長ビット線群に割り当てられる領域と正規ビット線群に割り当てられる領域とに分割する。メモリチップのビット容量は、正規ビット線群に属するメモリセルの数で決まっている。冗長ビット線群に属するメモリセルは、正規ビット線群に属するメモリセルに不良ビットが見つかったときのバックアップであり、メモリチップのビット容量には加えられない。
図62は、メモリセルアレイを横断するビット線群を冗長ビット線群と正規ビット線群に分ける一例を説明する図面である。図63は、メモリセルアレイを横断するビット線群を冗長ビット線群と正規ビット線群に分ける別の一例を説明する図面である。図62では冗長ビット線群および正規ビット線群はセルアレイ上にそれぞれ一つに束ねられているが、図63ではセルアレイ上にそれぞれ分割配置されている。
以下、図62のように、冗長ビット線群と正規ビット線群がそれぞれ一つに束ねられる例を用いて説明を進めるが、図63の場合であっても実施形態の説明はほぼ同様なので省略する。また、ビット線とワード線を交換しても実施形態の説明はほぼ同様なので省略する。
図64は、図40に対応する認証素子のセルアレイを正規ビット線群とし、紙面上方に冗長ビット線群を配置したものである。正規ビット線群の行数はNで、冗長ビット線群の行数はLである。いま正規ビット線群の中のm本のビット線に不良ビットが存在するものとする。ただし、L、N、mは自然数であり、NはLより大きく、Lはmより大きいものとする。
量産メモリチップ製品は出荷前に工場でテストを行い、正規ビット線群に含まれるメモリセルに不良ビットがないかどうか検査する。簡単に回復可能な不良は必要に応じて回復し、そうでない不良が見つかった場合はその対応するメモリセルのアドレスを記録に取り、そのメモリセルへのアクセス禁止処置を行う。同時にアクセス禁止されたメモリセルを冗長ビット線群の中の別のメモリセルへ読み替えるようアドレス再割り付け処置をコード化してメモリチップ内の周辺領域に設けられた小容量の不揮発性メモリ(一例としてヒューズメモリなど)に書き込む。その後メモリチップをアセンブリし、メモリチップ製品として出荷する。
より具体的には、図64のように、正規ビット線群の中で何らかの不良が発生した素子、不良ビット377を含むビット線のすべてのメモリセルへのアクセスを禁止し、当該ビット線を冗長ビット線群中の別のビット線へのアクセスに置き換える。つまり、セル毎にアクセス禁止・アドレス再割り付けの処置を行うのではなく、ビット線あるいはワード線毎にアクセス禁止・アドレス再割り付けの処置を施す。
ここで、図64の読み替えA、読み替えBについて考えよう。冗長ビット線群の中からどのビット線を読み替えAに選び、どのビット線を読み替えBに選ぶかは出荷前の検査時に決定される。ここで、L本の冗長ビット線の中からm本再割り付けに使用する数は順列 P(L,m) で与えられる。ただし、N本の正規ビット線群の中から不良ビットによってアクセス禁止処置を施されるビット線の数をmとする。この場合の数は組み合わせ C(N,m) で与えられる。
出荷前検査時に発覚する不良ビットは、製造工程で何らかの原因により発生する。あるいは、検査時に意図的に高電界を印加し偶発的に不良を起こしても良い。いずれにしろ、この不良の発生はどのようなアルゴリズムにも依存しないため物理的にランダムなものと考えられる。こうして量産メモリチップ製品から物理乱数コードを生成できることが判る。その自由度は、少なくとも組み合わせ C(N,m) で与えられる。冗長ビット線群の中でどのビット線を再割り付けに使用するかも含めて考えると、C(N,m)×P(L,m) である。
ところで、図65に示すように、たまたま再割り付けに選んだ冗長ビット線にも不良ビットが発生したメモリセルが存在する可能性もある。このような冗長ビット線の数をnとすると、上記場合の数は、C(N,m)×P(L-n,m) となる。ただし、LがNよりずっと小さい自然数である限りnはmよりずっと小さい自然数であると期待される。特に量産メモリ製品の場合現実にはnはLよりずっと小さな数である。したがって、概算ではL−nをLと見なすことが許容される。そうでなければ量産品にならない。
上述したような条件を満たすメモリチップ製品の一例としてDRAMの場合を考えよう。このとき認証素子977は、図48のようにDRAMセルである。典型的な4ギガビットDRAM製品の場合、たとえば、全ビット線数655万本に対して冗長ビット線数は15万3千本程度である。すなわち、何らかの事情によって正規ビット線群内のビット線に不良ビットが発生する行数は、最大15万3千程度まで量産DRAMとして許容できる。このとき冗長ビット線への再割り付けの場合の数は655万の内から15万3千を選ぶ組み合わせに等しい。計算すると約10の315289乗になる。
ビット線の代わりにワード線を行方向に配置した場合では、ワード線数440万本から3、044本を選ぶ組み合わせの数を計算すれば良い。これは、およそ2.9×10の10938乗となる。前者の場合の数より大分少なくなるが、それでも恐ろしく大きな数である。
上述したようにMACアドレスの自由度は70兆である。これは7×10の13乗程度である。来るIoT向けに100兆個以上の識別IDコードを準備するとしても高々10の14乗あれば十分である。したがって、冗長ビット線あるいは冗長ワード線による再割り付けによる場合の数は、現実的にほぼ無限大と考えてよい。
こうして、改めて認証装置600用の領域を設けなくても量産メモリチップ製品の製品管理のためにあらかじめ設置されているアクセス禁止・再割り付け処置用の特殊コードを記録するメモリ、すなわちメモリチップ内の周辺領域に設けられた小容量の不揮発性メモリ(一例としてヒューズメモリなど)、を用いることによって現実的に無限大の物理的乱雑さを手に入れることが可能である。こうして(出力の現実的無限性)を満たすことが可能であることが判る。
これは、量産メモリチップ製品の製造プロセスになんら新たな工程を追加せず、チップ面積も犠牲にせず、本発明の認証装置600を提供できることを意味している。
ところで、上述したアクセス禁止・再割り付け処置用の特殊コードを記録するメモリ(以下、特殊内部メモリと言う。)は、アセンブリ後メモリチップ外部に接続するための端子は特に設置されていない。したがって、通常アクセスモードでは特殊内部メモリに記録された情報にアクセスすることは不可能である。
以下、特殊内部メモリに記録された情報から物理乱数コードを取り出す方法の一例について簡単に説明する。
図66は、行方向(X軸方向)および列方向(Y軸方向)に認証素子977を配置する一例を示したものである。行方向の配線を行あるいは単に行、その群を行群あるいは行線群と呼ぶ。Y線方向の配線をY線あるいは列群、その群をY線群あるいは列と呼ぶ。X線がビット線でY線がワード線の場合もあれば、反対にX線がワード線でY線がビット線の場合もある。
図66のセルアレイは上部LA行の行からなる行群Aと下部LB行の行からなる行群Bに分けられる。それぞれYデコーダAおよびYデコーダBによってアクセス制御される。
図30、図33、図37、図38、図39の外部入出力50を介して外部入力が認証コア10000に入力される。この外部入力は、一例として図14の信号伝達路1000を介して第二のノード2002から第一のノード2001に入力される。あるいは別の一例として図25の信号伝達路1000を介して第一のノード2001と第二のノード2002の間で相互に入力される。あるいは別の一例として、この外部入力は、図15の共通パスコード1410である。あるいは別の一例として、この外部入力は、図20の共通パスコード1410、2410および3410である。あるいは別の一例として、この外部入力は、図17の入力(P,S,T,…)である。あるいは別の一例として、この外部入力は、図18の入力コード402である。あるいは別の一例として、この外部入力は、図21から図24の入力コードC、D、Q、Q1、Q2、Q3、…Qn、Qn+1である。あるいは別の一例として、この外部入力は、図31の通信相手400が入力する入力コード{a(i)}である。あるいは図32および図35の入力コード{a(i)}である。あるいは別の一例として、この外部入力は、図34の入力である。あるいは別の一例として、この外部入力は、図28および図37から図39の個別入力である。あるいは別の一例として、この外部入力は、後述する図82の入力コード{a(i)}および図83の入力である。
この外部入力として入力されるコードは、上述した冗長ビット線あるいは冗長ワード線に関する情報(冗長行情報)も含むことができる。それを特に冗長コードと呼ぶ。図67では、冗長コードの一例としてアクセスモード、アドレス(x、y)および動作モードの組み合わせを考える。アクセスモードとして、第一のテストモード1、第二のテストモード2、第三のテストモード3、…および通常アクセスモードなどが考えられる。
第一のテストモード1はYデコーダAおよびYデコーダBに直接アクセスするアクセスモードである。第二のテストモード2はYデコーダAのみに直接アクセスするアクセスモードである。通常アクセスモードは基本的にYデコーダBに直接アクセスするが、特殊内部メモリ609に記録された情報(Fi,Ri)に応じてYデコーダAにも部分的にアクセスするアクセスモードである。ただし、Fiは正規行群の中で不良ビットを含む行の行番号である。Riは冗長行群の中でFiとの読み替えに使用する行の行番号である。そしてiは1からmBの自然数である。こうしてYデコーダへのアクセス方法を選択し最終的に指定されたアドレス(x、y)のメモリセルにアクセスする。アクセス後動作モードで指定された動作をする。具体的には、半導体メモリの基本的動作である読み出し、消去、書き込みなどである。
図68は、一例として行群Bに何らかの不良が発生した素子、不良ビット377が二つある場合を示している。それぞれ読み換え1および読み換え2によって行群Aの行と読み換える。ここで行群Aを冗長ビット線群、行群Bを正規ビット線群と見なせば、読み換え1および読み換え2の処置は、図64および図65を用いて説明した読み換えAおよび読み換えBに同じである。
行群Aの中で不良ビットの発生した行の数をmA、行群Bの中で不良ビットの発生した行の数をmBとすると、行群Bのみから生成する物理乱数コードの自由度は、組み合わせ C(LB,mB) である。行群Aの自由度も加味すると、P(LA-mA,mB)×C(LB,mB) である。ただし、LBはLAより大きく、LAはmAとmBの大きい方よりより大きいものとする。
図69は、図68の行群のメモリセルを通常アクセスモードでアクセスする方法を説明するための図面である。すなわち、任意に決められたX軸上のアドレスに対し、行群B内の不良ビットの発生しなかった行にアクセスし、行群B内の不良ビットの発生した行(F1、F2、…)を、所定の方法で行群A内の行(R1、R2、…)に読み換えてアクセスする。
図70は、第一のテストモード1を説明するための図面である。すなわち、任意に決められたX軸上のアドレスに対し、行群Aおよび行群Bに渡ってすべてのY軸上のメモリセルにアクセスする。
図71は、第二のテストモード2を説明するための図面である。すなわち、任意に決められたX軸上のアドレスに対し、行群A内すべてのY軸上のメモリセルにアクセスする。
さて、第一のテストモード1、第二のテストモード2、および通常アクセスモードを用いて、特殊内部メモリに記録した読み換えに関する情報(Fi、Ri)を取り出す方法について簡潔に説明しよう。
まず、図72に示すように、第一のテストモード1に入り、任意に決められたX軸上のアドレス(選択X)に連なるY軸上のすべてのメモリセルにデータD(図の一例としてD=0)を書き込む。続いて、図73に示すように、第二のテストモード2に入り選択Xに連なるY軸上のすべてのメモリセルに/D(図の一例として/D=1)を書き込む。ただし、/DはアンチDであり、Dの反対の値を意味する。最後に、図74のように、通常アクセスモードに入り選択Xに連なる行群B内のすべてのメモリセルを読むと、不良の発生したメモリセル(不良ビット377)にアクセスしたときのみ/D(この図の例の場合/D=1)となり、それ以外はD(この図の例の場合D=0)となる。ここで、/Dであったセルの存在するY軸上のアドレスがFiとなる。また、自明のため特に図示しないが、上述の例でD=1および/D=0にしてもかまわない。あるいはまた、自明のため特に図示しないが、最初に通常アクセスモードに入り選択Xに連なるY軸上のすべてのメモリセルをDに書き込む。次に第二のテストモード2に入り、選択Xに連なるY軸上のすべてのメモリセルに/Dを書き込む。続いて通常アクセスモードに戻り、選択Xに連なる行群B内のメモリセルの内、値が/DになるセルのY軸上のアドレスを検索すればそれがFiとなる。いずれにしろ、最後にDと/Dを行番号に従って並べるとバーコード状の物理乱数コード{dB(i)}が得られる。一例としてD=0の場合、図75のように、バーコード状の物理乱数コード{dB(i)}が得られる。ただし、iは1からLBである。この{dB(i)}の自由度は、組み合わせ C(LB,m) である。
続いて、図65で指摘したように、冗長ビット線群に不良ビットが存在する場合に対処する方法を説明する。
図76は、行群Aおよび行群BをそれぞれY軸方向にサーチするサーチ順Aおよびサーチ順Bの例をいくつか取り上げたものである。サーチ順(1)は、行群Aと行群Bの境界からトップおよびボトムの行に向かってそれぞれサーチするものである。サーチ順(2)は、それぞれ上方から下方に向かってサーチするものである。サーチ順(3)は、それぞれ下方から上方に向かってサーチするものである。サーチ順(4)は、それぞれトップおよびボトムから境界に向かってサーチするものである。サーチ順(5)は、それぞれ中央から下方に向かってサーチし、続いて中央に戻って上方にサーチするものである。以下図面通りなので説明を省略する。
まず一例として、図77のように、サーチ順(1)を選択したとする。このとき、サーチBに従い行群B内を境界からボトムに向かってサーチする。最初にヒットした不良ビット377を含む線の行番号をF1とする。続いてサーチAに従い行群A内を境界からトップに向かってサーチし、境界から1番目の行群B内の行の行番号R1をF1に対応させ(F1、R1)の組みを生成する。続いて行群Bに戻り行番号F1からサーチを再開する。行番号F2で再び不良ビット377ヒットするとしよう。サーチAに従って対応する行群A内の行番号R2をF2に対応させ(F2、R2)の組みを生成する。こうして、複数の(Fi、Ri)の組みが生成される。ただし、iは1からmBの自然数である。
ところが、このサーチ順(1)に従って選択された行群A内の行にも不良ビット377が見つかることもある。一例として、図78のように、行番号R2の行に不良ビットが発生している場合を考える。このとき、図79のように、サーチ順を(1)から(2)に変更すると、R2はトップから最初の行番号に変更される。対応する行に不良ビット377が無ければこれをR2とする。そうでなければサーチ順をたとえば(5)に変更する。あるいは、(6)、(7)、…など更に他のサーチ順を選択することが可能である。ただし、サーチ順(1)および(2)に含まれるサーチAと異なるサーチAを含むようにしなければならない。
最終的に複数の(Fi、Ri)の組みが定まったら、これを特殊コードとして特殊内部メモリ609に記録する。ただし、この処置はアセンブリ前の検査段階で行う。
図80は、行群Aの中から読み換えに選択された行の行番号の組みを取り出す方法の一例を示す図である。まず、周辺回路の特殊内部メモリに保存される(Fi,Ri)を(Ri,Fi)に変換する。続いて行群Aと行群Bを入れ替える。具体的にはYデコーダAとYデコーダBのアクセスを入れ替える。以下{dB(i)}を取得したのと同じように方法を繰り返す。こうして、行群Aからも物理乱数コード{dA(i)}を取り出すことが可能となる。ただし、iは1からLAの自然数である。
図81は、行群Aおよび行群Bの両方から物理乱数コード{d(i)}を生成した例を示す図である。場合の数は、C(LA-mA,mB)×C(LB,mB) で計算できる。ただし、mAは行群A内の不良ビットを含む行の数であり、iは1からLA+LBの自然数である。
こうして生成した(Fi,Ri)を量産メモリチップの周辺領域に設置した特殊内部メモリ609に保存する。(Fi,Ri)をiが1からmBまで 、あるいは、1からmA+mBまで保存するのに要するビット容量は大したことはない。たとえば4ギガビットDRAMの場合、全冗長ビット線数は15万3千本程度である。量産品である限りmBはこの15万3千よりはるかに少ない数になるはずである。mAの数はmBより更にはるかに少ない。こうして特殊内部メモリ609はヒューズメモリなどの小容量不揮発性メモリで十分となる。
こうして、特殊内部メモリ609に保存した(Fi,Ri)から物理乱数コード取り出すことが可能となる。それを式4で次のように書き表すことにする。

d(i) =f(Fi,Ri) 式4

関数fは任意の関数である。たとえば、2バイトを一つのメモリユニットと見なした時、メモリユニットの左半分にFiを記し、右半分にRiを記す。ただし、各メモリユニットのアドレスをiとする。ここで、iは1からmBあるいはmA+mBの自然数である。あるいは別の一例として、Riをダミーとし、iをメモリユニットの左半分に順に記し、対応するFiをメモリユニットの右半分に順に記す。あるいはまた、Fiを順に並べるだけで十分である。ただし、iは、サーチ順に応じて決まる不良ビットが発生した素子を含む行番号が見つかる順番に従って振られる。
いずれにしろ、任意の関数fを適当に決定しさえすれば、図31および図41のバーコード状の物理乱数コードは式4の d(i) からなる数列{d(i)}に置き換えられる。こうして、認証装置600の動作を概念的に説明する図31は、例えば図82のようになる。詳細は図31の説明とほぼ同様なので省略する。一方、スクランブル装置890を概念的に説明する図34は、例えば図83のようになる。詳細は図34とほぼ同様なので省略する。
図84は、本実施形態に関するメモリチップ6090の基本構成を説明する図面であり、メモリセルアレイと周辺回路6091の配置を示している。メモリセルアレイ上に物理的に乱雑に発生する不良ビットの配列に応じて生成される(Fi,Ri)の組み合わせを特殊内部メモリ609に記録する。それを式4に従って物理乱数コード{d(i)}として取得する。この物理乱数コード{d(i)}を鍵生成装置891に入力し、鍵生成装置891からのレスポンス(出力)を公開鍵として外部入出力50を介してメモリチップ6090の外部に出力する。
図84で説明するメモリチップ6090を認証コア10000とし、図26のハードウェアに置き換えたものが図85である。メモリチップ6090のメモリセルアレイ上に物理的に乱雑に発生する不良ビットの配列に応じて生成される(Fi,Ri)から式4に従って物理乱数コード{d(i)}を取得する。それをメモリチップ6090に固有の秘密鍵として周辺回路6091に内蔵する鍵生成装置891に入力し、そのレスポンス(出力)を公開鍵として認証コア10000の外部に出力する。ここで、秘密鍵と公開鍵は公開鍵暗号によって1対1に対応する。
この秘密鍵は、メモリチップ6090を搭載するハードウェアの物理アドレスとなり、メモリチップ6090に閉じ込められて外部には決して出力しない。こうして「見えない物理アドレス」となる。
出力された公開鍵は、論理ネットワーク上のアドレス(論理アドレス)となる。こうして、ソフトウェアで構成する論理ネットワークとハードウェアで構成する物理ネットワークが、「見えない物理アドレス」と論理アドレスで結び付けられる。この論理アドレスに繋がった論理ノード同士の処理をブロックチェーンに代表される公開台帳システムで管理すれば物のインターネット(IoT)を安全に構築することが可能となる。
ここで、ブロックチェーンは公開台帳システムの一例に過ぎず、記帳にかかる処理時間が平均10分かかるというのが欠点である。これを10分以内にすることにより利便性を高めた新たな公開台帳システムなどに置き換えたとしても本発明の本質に変更を迫るものではない。あるいは別の理由・事情によりブロックチェーンを別の公開台帳システムに置き換えたとしても本発明の本質に変更を迫るものではない。
なぜなら、本発明の本質は、図27で説明したように、データリンク層と物理層の間に新たに認証層を挿入し、そこで認証装置(認証コア10000)によって論理アドレスと「見えない物理アドレス」を1対1でリンクさせることだからである。図2の通信階層で見られるように、データリンク層より上にあるブロックチェーンを他の公開台帳システムに変更しても、データリンク層より下に位置する本発明の導入方法になんら影響を与えるものではない。
反対に、本発明の認証装置(認証コア10000)を導入するために、ブロックチェーンなどの公開台帳システムやそのうえに構築されたアプリケーションの構造には何ら変更を加える必要がない。
なぜなら、本発明の本質は、図26のハードウェアを本発明の認証コアを搭載するハードウェアに置き換えるだけだからである。より具体的には、情報機器140に搭載されているメモリチップを図84のメモリチップ6090に置き換えるだけでよい。図2の通信階層で説明したように、通信階層の下層にどのような変更を与えても上層には何ら変更が加わらない。これは、現行の通信階層の設計理念によりそうなっているのである。
図84のメモリチップ6090は、認証コア10000の一実施形態に過ぎない。このメモリチップがDRAMの場合、図54から図56のように、中央演算処理装置(CPU)と張り合わせて認証コアとすることが可能である。
CPUがDRAMを必要とする限り、DRAMを使った認証コア10000は、One-CPU-One-Voteを体現する最適なソリューションを提供する。
また、CPUの動作を考えるとき、コード生成中のレジスタから秘密鍵を取り出される心配はない。なぜなら、図84で示した通り、秘密鍵を生成する物理乱数コード{d(i)}の種となるデータ(Fi,Ri)は、特殊内部メモリ609に記録されるからである。通常、量産品のメモリチップでは特殊内部メモリ609にアクセスするための配線が引かれていない。
図70から図81で説明したような方法で、周辺回路6091の内部でデータ(Fi,Ri)を取り出すが、その出力は直接鍵生成装置891に入力される。鍵生成装置891は、公開鍵のみを周辺回路6091内部の制御装置に引き渡し、制御装置が外部入出力10を介して公開鍵のみ外部に出力する。
したがって、メモリチップ6090を分解しない限り秘密鍵を盗み出すことも改竄することもできない。このように、本発明に関する認証コア10000は、チップを分解しない限り「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を提供する。
したがって、ネットワーク上で遠隔操作によってコード生成中のCPUから秘密鍵を盗み出すことは不可能である。
あるいは別の一例として、図58から図59のように、鍵生成装置を第一のチップ110(本実施形態ではメモリチップ6090)の外部に設置する方法がある。この場合でも、遠隔操作によってコード生成中のCPUからリバースエンジニアリングで秘密鍵を盗み出すことは現実的に不可能である。
なぜなら、レジスタが非常に小さな動的メモリだからである。たとえば、通常のパソコンでは32ビット、多くとも64ビットしかない。一方、秘密鍵を生成する物理乱数コード{d(i)}の種となるデータ(Fi,Ri)のビット容量は、64ビットよりはるかに大きい。ただし、iは1からmBまでの自然数である。
ここで、Fi、Riにそれぞれ1バイト(8ビット)を消費すると考えよう。一例としてmBが1000であった場合、ゆうに16キロビット必要になる。これは、64ビットCPUを使ったとしても250のセグメントに分割して逐次レジスタに保存しなければならないことを意味する。メモリチップ6090とCPUは、このレジスタに保存された250個のセグメントを逐次やり取りしなければならない。レジスタ領域はセグメントを更新するごとに上書き消去されるので、コード生成途中であっても、遠隔操作によって物理乱数コード{d(i)}の種となるデータ(Fi,Ri)の全体を盗むことは現実的に不可能である。
DRAMなどの量産メモリチップ製品には、製品管理用にあらかじめ冗長ビット線群、あるいは、冗長ワード線群と、特殊内部メモリ609としてヒューズメモリが周辺回路に取り付けられている。
このように、本発明に関する「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」は、鍵生成装置891をチップ外に配置する限り、量産メモリチップ製品にほとんど何の変更も加えずに提供することが可能である。ただし、図70から図81の処置を実施するために必要な第一のテストモード1および第二のテストモード2などを指定するための冗長コードを、図67のように、外部入力とする必要がある。あるいは別の一例として、周辺回路6091の内部に処置方法そのものを記録し、メモリチップ6091の内部で完結させるように設計することも可能である。
いずれにしろ、本発明に関わる認証素子977は、抵抗、キャパシタ、ショットキー接合、PN接合、トランジスタ、MROMセル、DRAMセル、浮遊ゲートトランジスタ、相変化メモリセル、磁気抵抗メモリセルなど、一般的な半導体製造工程で大量生産可能なデバイスやその部品であれば何でも良い。あるいは、特殊にデザインされた微小構造でも使用可能である。
認証素子977を確率的に破壊する場合、高電圧など電気的なストレスを与えればよい。このとき、チップ上の全アドレスを選択することもできれば、必要に応じて一部のアドレスのみを選択して破壊パルス電圧を印可することも可能である。いずれにしろ、物理的にランダムに破壊された認証素子のセルアレイから、「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を生成することが可能である。
あるいは別の一例として、上述したように、製造工程において偶発的に発生する不良ビットを利用して「物理的にランダムに発生するチップに固有で書き換え・コピー不可能な物理アドレス」を生成することも可能である。
認証装置への入力に個別入力を選んだ場合、次のような利便性が追加される。すなわち、
1) 仲間・家族で一つのノード(PC、タブレットなどの情報端末)をシェアしても各人がそれぞれ異なる個別入力を独立に使用する限り、実質的に独立の財布を所有できる。
2) 盗難や紛失などによりノード(スマホやタブレットなど携帯型情報端末)が他人の手に渡っても認証装置への入力が異なれば異なる財布になるので、ノードを手に入れた人物が同時に個別入力を手に入れない限り財布の盗難を防ぐことが可能である。
式4の関数fは、引数Riをダミーとし、行群B内の不良ビットを含む行番号(Fi)を順に並べるだけでも十分である。この場合、iは、サーチ順に応じて不良ビットを含む行の行番号が見つかる順番に従って振られる。
このように、本発明によれば物理的実態を持つ半導体チップに固有の認証装置から構成される認証コアと、論理アドレスとを公開鍵暗号によりリンクし、ハードウェアとソフトウェアのネットワークを有機能的に連携させることが可能となる。
半導体チップと論理アドレスとのリンクの仕方は、より具体的には、認証装置を利用して秘密鍵を半導体チップ内に閉じ込め、公開鍵暗号により前記秘密鍵と一対になっている公開鍵を論理ネットワーク上の論理アドレスとすることである。
本発明に関する半導体チップは、量産メモリチップ製品をベースに設計するものであることが望ましい。
更に、電子署名技術と合わせてハードウェアとブロックチェーンに代表される公開台帳システムを有機能的に連携させることが可能となる。結果としてネットワークシステムの安全性や信頼性を強化することに優れている。
なお、自明なので特に図示しないが、本発明に関わる認証装置を制御する認証制御装置は、認証装置の一部または全部が同居するメモリチップのメモリセルアレイの制御装置も兼ねることが可能である。
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。
安全かつ利便性の高いネットワークビジネスの情報基盤技術を、より低いコストで提供することが可能となる。
50 外部入出力装置(I/O)
21 第一の認証装置
22 第二の認証装置
31 入力コード誤差
32 出力コード誤差
60、600 認証装置
110 第一のチップ
120 第二のチップ
130 第Nのチップ
140 情報機器
400 通信相手
503 ワード線
601、605 乱数発生装置
602、606 コード生成装置
609 特殊内部メモリ
611 認証素子用セルアレイ(素子領域)
614 スクランブル装置セルアレイ
800、810 入出力制御装置
880 認証制御装置
890 スクランブル装置
891 鍵生成装置
900 中間コード用バッファー
902 ビット線
977 認証素子
983 トランジスタ
985 抵抗
986 PN接合
987 ショットキー接合
1000 信号伝達路
2001 第一のノード
2002 第二のノード
3000 イーサネット(登録商標)カード
3010 不揮発性メモリチップ
3020 MAC用演算処理チップ
3030 認証制御モジュール一式
3071 ベンダーコード
3072 シリアル番号
6091 周辺回路
10000 認証コア
20000 矩形

Claims (19)

  1. 複数の論理ノードからなる論理ネットワークと、複数の物理ノードからなる物理ネットワークとからなり、
    前記複数の物理ノードはそれぞれ少なくとも一つの認証コアからなり、前記複数の論理ノードはそれぞれ前記認証コアに接続し、前記認証コアは固有の物理的乱雑さを有する半導体チップからなり、前記半導体チップはメモリセルアレイおよび周辺領域からなり、前記メモリセルアレイは所定のアドレス形式に従い配列した複数のメモリセルからなり、前記物理的乱雑さは、或る物理的過程によって前記メモリセルアレイ内で生成する不良ビットのアドレスの組み合わせとして生成され、所定の方法で読み出され、前記半導体チップの周辺領域に含まれる特殊内部メモリ内に電子情報として記録され、また、前記半導体チップにおいて、物理乱数コードが、前記特殊内部メモリに記録された電子情報に応じて生成される前記物理的乱雑さを反映し、前記認証コアは、前記物乱数コードに基づいて秘密鍵を生成し、前記秘密鍵に基づいて鍵生成装置が生成する公開鍵を出力し、前記公開鍵は前記認証コアにリンクした前記論理ノードの論理アドレスとなり、前記秘密鍵は前記物理ノードの物理アドレスとなり、前記論理ノードおよび前記物理ノードは前記秘密鍵および前記公開鍵によって一対一にリンクされ、前記秘密鍵は前記認証コア内部に閉じ込められていることを特徴とする認証ネットワーク。
  2. 前記不良ビットのアドレスの組み合わせは特殊モード取得コードによって取得することを特徴とする請求項1記載の認証ネットワーク。
  3. 前記特殊モード取得コードは前記不良ビットのアドレス、前記メモリセルアレイ内の前記複数のメモリセルのそれぞれにアクセスする方法を選択するアクセスモード、および、書込み、消去、読み出しの動作を選択する動作モードからなることを特徴とする請求項2記載の認証ネットワーク。
  4. 前記複数のメモリセルは前記所定のアドレス形式に従いアドレス上に分布し、前記アドレスは半導体表面上の前記メモリセルアレイ内でそれぞれX軸およびY軸に平行する、行および列の交差点にしたがって分布し、前記アドレスの集合は前記Y軸方向に沿って第一および第二の行群に分割されることを特徴とする請求項3記載の認証ネットワーク。
  5. 前記アクセスモードは第一のテストモード、第二のテストモードおよび第三のテストモードからなり、前記第一のテストモードは前記X軸上で任意に選ばれた列に対して前記第一および第二の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第二のテストモードは前記X軸上で任意に選ばれた前記列に対して前記第一の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは前記第二の行群内の前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスすることを特徴とする請求項4記載の認証ネットワーク。
  6. まず、前記第一のテストモードでアクセスするすべてのメモリセルに第一の値を書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが前記メモリセルアレイ内の前記不良ビットの分布から生成されることを特徴とする請求項5記載の認証ネットワーク。
  7. 前記アクセスモードは第二および第三のテストモードよりなり、前記第二のテストモードは前記X軸上で任意に選ばれた列に対して前記第一の行群を通して前記Y軸上のすべてのメモリセルにアクセスし、前記第三のテストモードは前記第二の行群内の前記不良ビットを含まない行にアクセスし、前記第二の行群内の前記不良ビットを含む行を読み替えた後、前記第一の行群内の行にアクセスすることを特徴とする請求項4記載の認証ネットワーク。
  8. まず、前記第三のテストモードでアクセスするすべてのメモリセルに第一の値に書き込み、次に、前記第二のテストモードでアクセスするすべてのメモリセルに第二の値を書込み、続いて、前記第三のテストモードでアクセスするすべてのメモリセルを読み出し、前記第二の値が読み出される順番に前記メモリセルの行番号を並べて前記特殊内部メモリに記録し、前記物理的乱雑さが前記メモリセルアレイ内の前記不良ビットの分布から生成されることを特徴とする請求項7記載の認証ネットワーク。
  9. 前記認証コアは、前記物理乱数コードおよび外部からの入力コードを元に、秘密鍵を生成し、前記認証コアは、前記秘密鍵および前記入力コードを元に、鍵生成装置が生成する公開鍵を出力することを特徴とする請求項1記載の認証ネットワーク。
  10. 前記入力コードは前記認証コアを含む電子装置の正規ユーザーが任意に設定できる個別入力であることを特徴とする請求項9記載の認証ネットワーク。
  11. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要なデジタルコード情報からなり、前記デジタルコード情報は少なくともパスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  12. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な生物学的情報からなり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなることを特徴とする、請求項10記載の認証ネットワーク。
  13. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトをブートするために必要な個人情報からなり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  14. 前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求されるデジタルコード情報からなり、前記デジタルコード情報は少なくともパスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  15. 前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される生物学的情報であり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  16. 前記個別入力は前記正規ユーザーが必要に応じて前記認証ネットワーク上で動作するアプリケーションソフトに要求される個人情報であり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  17. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要なデジタル情報であり、前記デジタルコード情報は少なくともパスコード、PINコード、バーコード、QRコード(登録商標)などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  18. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な生物学的情報であり、前記生物学的情報は少なくとも正規ユーザーの指紋情報、静脈情報、網膜情報、DNA情報などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
  19. 前記個別入力は前記認証ネットワーク上で動作するアプリケーションソフトがインストールされている情報端末をブートするために必要な個人情報であり、前記個人情報は少なくとも前記正規ユーザーから抽出され、前記正規ユーザーを特定できる音声情報、画像情報および身体情報などより選ばれる情報からなることを特徴とする請求項10記載の認証ネットワーク。
JP2018567538A 2017-02-13 2018-02-13 認証ネットワーク Active JP6592621B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/430,650 US10581841B2 (en) 2017-02-13 2017-02-13 Authenticated network
US15/430,650 2017-02-13
PCT/JP2018/004789 WO2018147456A1 (ja) 2017-02-13 2018-02-13 認証ネットワーク

Publications (2)

Publication Number Publication Date
JPWO2018147456A1 true JPWO2018147456A1 (ja) 2019-06-27
JP6592621B2 JP6592621B2 (ja) 2019-10-16

Family

ID=63105531

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018567538A Active JP6592621B2 (ja) 2017-02-13 2018-02-13 認証ネットワーク

Country Status (3)

Country Link
US (1) US10581841B2 (ja)
JP (1) JP6592621B2 (ja)
WO (1) WO2018147456A1 (ja)

Families Citing this family (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102198499B1 (ko) * 2013-12-31 2021-01-05 주식회사 아이씨티케이 홀딩스 디지털 값 처리 장치 및 방법
WO2017207017A1 (en) * 2016-05-30 2017-12-07 Telecom Italia S.P.A. Protection of privacy in wireless telecommunication networks
US10706177B2 (en) * 2017-02-13 2020-07-07 Hiroshi Watanabe Apparatus and method for chip identification and preventing malicious manipulation of physical addresses by incorporating a physical network with a logical network
US10693636B2 (en) * 2017-03-17 2020-06-23 Guigen Xia Authenticated network
GB201709848D0 (en) * 2017-06-20 2017-08-02 Nchain Holdings Ltd Computer-implemented system and method
WO2019118447A1 (en) * 2017-12-11 2019-06-20 Celo Labs Inc. Decentralized database associating public keys and communications addresses
CN109040279B (zh) * 2018-08-21 2020-06-23 京东数字科技控股有限公司 区块链网络组网方法、装置、设备及可读存储介质
JP7054559B2 (ja) * 2018-09-05 2022-04-14 コネクトフリー株式会社 情報処理方法、情報処理プログラム、情報処理装置及び情報処理システム
CN109361669B (zh) * 2018-10-19 2022-03-18 深圳数粉科技有限公司 通信设备的身份认证方法、装置和设备
US20200127844A1 (en) * 2018-10-23 2020-04-23 Vopy Technology As Apparatus, systems, and methods for stemmed blockchain operation with secured participant identities
US11049106B2 (en) 2018-10-23 2021-06-29 Conax Group Ab (Publ) Apparatus, systems, and methods for authorization of electronic transactions based on secured zones
CN109472600B (zh) * 2018-11-20 2021-01-01 深圳市墨者安全科技有限公司 一种区块链可信验证方法及装置
EP3684004A1 (en) 2019-01-21 2020-07-22 Ngrave bvba Offline interception-free interaction with a cryptocurrency network using a network-disabled device
CN109918874B (zh) * 2019-03-14 2022-09-02 度小满科技(北京)有限公司 一种实物信息存储方法及装置、实物信息查找方法及装置
WO2020213125A1 (ja) * 2019-04-18 2020-10-22 三菱電機株式会社 入退管理システム、入退管理システムの認証装置、入退管理システムの管理装置、入退管理システムの携帯端末、入退管理データのデータ構造、入退管理プログラム、および入退管理システムの構築方法
CN110213264A (zh) * 2019-05-30 2019-09-06 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质
CN110213046A (zh) * 2019-05-30 2019-09-06 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质
CN110198316A (zh) * 2019-05-30 2019-09-03 全链通有限公司 基于联盟区块链的身份验证方法、设备及存储介质
CN110427782A (zh) * 2019-07-23 2019-11-08 杭州云象网络技术有限公司 一种基于区块链的随机数生成方法
US11893404B2 (en) * 2019-08-06 2024-02-06 Nutanix, Inc. Efficient traffic forwarding between virtual machines
WO2021034264A1 (en) * 2019-08-22 2021-02-25 Quantumciel Pte. Ltd. Device, system and method for providing information security
CN110609867B (zh) * 2019-08-29 2022-04-12 北京天云如川科技有限公司 一种基于容量证明的区块链系统构建方法
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
US11665159B2 (en) 2020-04-22 2023-05-30 Kyndryl, Inc. Secure resource access by amalgamated identities and distributed ledger
US20230198961A1 (en) * 2020-05-26 2023-06-22 Yukiko Watanabe Electronic apparatus and network of electronic apparatus
WO2022118358A1 (ja) * 2020-12-01 2022-06-09 Gve株式会社 通貨管理システム及び電子署名装置
CN117118765B (zh) * 2023-10-25 2023-12-22 易讯科技股份有限公司 一种ipv6身份安全认证方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005123883A (ja) * 2003-10-16 2005-05-12 Japan Science & Technology Agency 電子署名システム
WO2010134192A1 (ja) * 2009-05-22 2010-11-25 三菱電機株式会社 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
US20160254235A1 (en) * 2015-02-26 2016-09-01 International Business Machines Corporation Semiconductor device security
JP6147461B1 (ja) * 2017-01-31 2017-06-14 ゼンテルジャパン株式会社 半導体記憶装置

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4509172A (en) * 1982-09-28 1985-04-02 International Business Machines Corporation Double error correction - triple error detection code
US6119233A (en) * 1997-05-15 2000-09-12 Hawkins; Charles C. Secure data communication system
US6704871B1 (en) * 1997-09-16 2004-03-09 Safenet, Inc. Cryptographic co-processor
JP3319433B2 (ja) * 1999-05-12 2002-09-03 日本電気株式会社 メモリlsi不良解析装置及びシステム、方法並びに記録媒体
JP2001014871A (ja) * 1999-06-29 2001-01-19 Toshiba Corp 不揮発性半導体記憶装置
WO2007046037A1 (en) 2005-10-17 2007-04-26 Koninklijke Philips Electronics N.V. Integrated puf
JP2007280221A (ja) * 2006-04-10 2007-10-25 Fujitsu Ltd 認証ネットワークシステム
KR100891005B1 (ko) * 2007-06-28 2009-03-31 삼성전자주식회사 고온 스트레스로 인한 읽기 마진의 감소를 보상하기 위한플래시 메모리 장치 및 그것의 읽기 전압 조정 방법
JP5499358B2 (ja) * 2010-03-24 2014-05-21 独立行政法人産業技術総合研究所 認証処理方法及び装置
US9563501B2 (en) * 2010-11-30 2017-02-07 Micron Technology, Inc. Preserving data integrity in a memory system
KR101139630B1 (ko) * 2010-12-09 2012-05-30 한양대학교 산학협력단 식별키 생성 장치 및 방법
US10268843B2 (en) * 2011-12-06 2019-04-23 AEMEA Inc. Non-deterministic secure active element machine
JP5857726B2 (ja) 2011-12-20 2016-02-10 富士通株式会社 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
US9953725B2 (en) * 2012-02-29 2018-04-24 Samsung Electronics Co., Ltd. Semiconductor memory devices and methods of operating the same
US10073779B2 (en) * 2012-12-28 2018-09-11 Intel Corporation Processors having virtually clustered cores and cache slices
US9640240B2 (en) * 2013-11-26 2017-05-02 Micron Technology, Inc. Partial access mode for dynamic random access memory
JP6354172B2 (ja) 2014-01-20 2018-07-11 富士通株式会社 半導体集積回路及び認証システム
KR102447476B1 (ko) * 2015-08-20 2022-09-27 삼성전자주식회사 암복호 장치, 그것을 포함하는 저장 장치 및 그것의 암복호 방법
US10187376B2 (en) * 2015-08-28 2019-01-22 Texas Instruments Incorporated Authentication of networked devices having low computational capacity
US9626543B1 (en) * 2015-12-14 2017-04-18 Afero, Inc. Apparatus and method for accurate barcode scanning using dynamic timing feedback
US10248499B2 (en) * 2016-06-24 2019-04-02 Sandisk Technologies Llc Non-volatile storage system using two pass programming with bit error control
US10169126B2 (en) * 2016-10-12 2019-01-01 Samsung Electronics Co., Ltd. Memory module, memory controller and systems responsive to memory chip read fail information and related methods of operation
JP2018147543A (ja) * 2017-03-09 2018-09-20 東芝メモリ株式会社 不揮発性半導体記憶装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005123883A (ja) * 2003-10-16 2005-05-12 Japan Science & Technology Agency 電子署名システム
WO2010134192A1 (ja) * 2009-05-22 2010-11-25 三菱電機株式会社 電子機器及び鍵生成プログラム及び記録媒体及び鍵生成方法
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
US20160254235A1 (en) * 2015-02-26 2016-09-01 International Business Machines Corporation Semiconductor device security
JP6147461B1 (ja) * 2017-01-31 2017-06-14 ゼンテルジャパン株式会社 半導体記憶装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANTNOPOULOS, A. M., ビットコインとブロックチェーン 暗号通貨を支える技術, vol. 第1版, JPN6018021536, 21 July 2016 (2016-07-21), JP, pages 67 - 115, ISSN: 0004100178 *
東角 芳樹 ほか: "コンソーシアムチェーンにおける証明書管理に関する一考察", 2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB], vol. 1F2−3, JPN6018016834, 24 January 2017 (2017-01-24), JP, pages 1 - 4, ISSN: 0004100177 *

Also Published As

Publication number Publication date
US10581841B2 (en) 2020-03-03
JP6592621B2 (ja) 2019-10-16
WO2018147456A1 (ja) 2018-08-16
US20180234413A1 (en) 2018-08-16

Similar Documents

Publication Publication Date Title
JP6592621B2 (ja) 認証ネットワーク
CN107819583B (zh) 密钥的防滥用技术
WO2018168723A1 (ja) ネットワーク上の装置認証技術
Gao et al. Physical unclonable functions
US9940463B2 (en) System and method for secure authentication
KR100969740B1 (ko) 디지털 서명 및 인증을 위한 시스템 및 방법
JP5423088B2 (ja) 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法
JP6393375B2 (ja) 電子装置のネットワーク、電子装置及びその検査工程
CN102138300A (zh) 消息认证码预计算在安全存储器中的应用
WO2018174112A1 (ja) ネットワーク上の装置認証技術
CA3184856A1 (en) Method, participatant unit, transaction register, and payment system for managing transaction data sets
CN107070896A (zh) 一种安全高效的区块链客户化登录方法及安全加固系统
US10706177B2 (en) Apparatus and method for chip identification and preventing malicious manipulation of physical addresses by incorporating a physical network with a logical network
Jain et al. Noise injection techniques in cryptographic keys to enhance security of autonomous systems
CN106027237A (zh) 一种rfid系统中基于组的密钥矩阵安全认证方法
Halak et al. Hardware-based security applications of physically unclonable functions
Maleki et al. New clone-detection approach for RFID-based supply chains
WO2021241590A1 (ja) 電子装置のネットワーク及び電子装置
JP2021190989A (ja) 電子装置のネットワーク及び電子装置
KR101525888B1 (ko) Puf를 이용한 otp 발생 기기 및 방법
Harshey et al. A State-of-the-Art Study on Physical Unclonable Functions for Hardware Intrinsic Security
Felicetti et al. Security of IoT devices with PUF-based ID tags: preventing hardware substitution by combining SRAM cells pattern signature and ML techniques
Verma et al. Enhancing Security In Blockchain Technology: A Comprehensive Study
Rezaeepoor Designing a blockchain platform for IoT forensics evidence preservation
AVCI ANALYSIS OF DATA SECURITY AND CYBER-ATTACK METHODS IN DIGITAL CURRENCY.

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181010

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190827

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190920

R150 Certificate of patent or registration of utility model

Ref document number: 6592621

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250