[go: up one dir, main page]

JP2017028354A - 電子装置ネットワーク及びチップ認証方式 - Google Patents

電子装置ネットワーク及びチップ認証方式 Download PDF

Info

Publication number
JP2017028354A
JP2017028354A JP2015141721A JP2015141721A JP2017028354A JP 2017028354 A JP2017028354 A JP 2017028354A JP 2015141721 A JP2015141721 A JP 2015141721A JP 2015141721 A JP2015141721 A JP 2015141721A JP 2017028354 A JP2017028354 A JP 2017028354A
Authority
JP
Japan
Prior art keywords
authentication
chip
code
bit line
word line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015141721A
Other languages
English (en)
Inventor
渡辺 浩志
Hiroshi Watanabe
浩志 渡辺
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to JP2015141721A priority Critical patent/JP2017028354A/ja
Priority to US15/210,928 priority patent/US10176127B2/en
Priority to TW105122507A priority patent/TWI590091B/zh
Priority to EP16179645.3A priority patent/EP3118770B8/en
Priority to CN201610563063.7A priority patent/CN106685909B/zh
Publication of JP2017028354A publication Critical patent/JP2017028354A/ja
Priority to US16/218,600 priority patent/US10387342B2/en
Pending legal-status Critical Current

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
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/73Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
    • 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/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/3271Cryptographic 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 challenge-response
    • H04L9/3278Cryptographic 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 challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10BELECTRONIC MEMORY DEVICES
    • H10B20/00Read-only memory [ROM] devices
    • H10B20/60Peripheral circuit regions
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D1/00Resistors, capacitors or inductors
    • H10D1/60Capacitors
    • H10D1/68Capacitors having no potential barriers
    • H10D1/692Electrodes
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D30/00Field-effect transistors [FET]
    • H10D30/60Insulated-gate field-effect transistors [IGFET]
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D30/00Field-effect transistors [FET]
    • H10D30/60Insulated-gate field-effect transistors [IGFET]
    • H10D30/68Floating-gate IGFETs
    • H10D30/681Floating-gate IGFETs having only two programming levels
    • H10D30/683Floating-gate IGFETs having only two programming levels programmed by tunnelling of carriers, e.g. Fowler-Nordheim tunnelling
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D8/00Diodes
    • HELECTRICITY
    • H10SEMICONDUCTOR DEVICES; ELECTRIC SOLID-STATE DEVICES NOT OTHERWISE PROVIDED FOR
    • H10DINORGANIC ELECTRIC SEMICONDUCTOR DEVICES
    • H10D84/00Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers
    • H10D84/80Integrated devices formed in or on semiconductor substrates that comprise only semiconducting layers, e.g. on Si wafers or on GaAs-on-Si wafers characterised by the integration of at least one component covered by groups H10D12/00 or H10D30/00, e.g. integration of IGFETs
    • H10D84/811Combinations of field-effect devices and one or more diodes, capacitors or resistors
    • H10W20/42
    • H10W20/43
    • H10W20/493

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Power Engineering (AREA)
  • Condensed Matter Physics & Semiconductors (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Geometry (AREA)
  • Storage Device Security (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】物理的チップ認証装置を電子装置ネットワークに活用し、周辺装置の乗っ取りによるネットワークへの攻撃を未然に防ぐ技術を提供すること。
【解決手段】ネットワークを構成する電子装置を、周辺装置と、周辺装置の登録情報を管理する基幹サーバーの2種類に分け、基幹サーバーはソフトウェアによって中央管理するものとし、周辺装置には物理的チップ認証装置を搭載し、チップレベルで管理することによって、ネットワーク全体のセキュリティを効率的に向上させることを特徴としている。
【選択図】図63

Description

本発明は、電子装置間通信およびネットワークに用いる物理的チップ認証方式に関する。
21世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス(Internet of Things, IoT)は既存のどの市場にも属さず、IoTの更に先を行くインターネット・オブ・エブリシング(Internet of Everything, IoE)にいたっては社会基盤そのものを変革する可能性を秘めている。
技術的には、ネットに接続する最小単位(ノード)である半導体チップと半導体チップの間の通信技術として捕らえることができるが、その数が数兆個から数十兆個にまで上る(Trillion Nodes)点でこれまでのネットワーク技術と異なる。世界人口を70億人とすると、一人当たり数百から約千個程度のチップに囲まれている計算になる。これらのチップは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。すべての個人がこれらすべてを常時きめ細かく管理することは現実的に不可能である。また、訓練を受けた専門家が中央管理するにしても数兆個ものノードを同時に管理するための計算機リソースは地球上に存在しない。仮に将来開発されたとしても、誰が責任を持ってその管理システムを扱うべきかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人口知能に任せることも現状では良いとは言えないし、現実的でもない。
管理できないとしたら何が問題になるか?大容量のLiイオン電池を搭載した自動運転車がハッキングされたらどうなるかを考えると理解しやすい。遠隔操作された多数の自動運転車が攻撃対象(ショッピングセンター、大規模な地下駐車場、ターミナル駅、…)まで無人で移動する。大量のLiイオン電池が一箇所にあつまり、パワーシステムが乗っ取られている。パワー制御システムに何らかの破壊的誤動作を意図的に加え、Liイオン電池を大爆発させることが可能となるかもしれない。ある日突然ショッピングセンターの駐車場が大爆発を起こしたり、あるいは、列車運行制御システムを乗っ取り新幹線を正面衝突させたり、原子炉や航空管制システムを乗っ取られる危険と背中合わせになる。
このような重要施設のネットワークは通常のインターネットからは非常に強力なファイアウォールで隔離されている(或いは物理的に隔離されている)から大丈夫だと考えるのは早計である。現実にイランの核施設はStuxnetと呼ばれるマルウェアによる攻撃を受け、深刻な被害を被った。(たとえば、非特許文献1参照。)。
http://www.nikkei.com/article/DGXNASFK2602G_W2A221C1000000/
Stuxnetの感染経路は諸説あるが、もっとも有力なのはモバイル端末かUSBメモリだと言われている。Stuxnetは一度インターネットに解き放たれると何ヶ月もかけてターゲットのシステムに侵入するチャンスを伺う。途中強力なファイアウォールがあってもUSBメモリやモバイル端末に侵入してファイアウォール内で接続されるまで待つ。接続された後はバックゲートを開き、遠心分離器のPLC(programmable logic controller)を乗っ取り、遠隔操作を開始する。こうして、イランの核施設の1000台もの遠心分離器が急激な加速と減速を繰り返し破壊された。物理的に孤立したシステム内ならStuxnet自身が遠心分離器を破壊させる。
イランの核施設で破壊された遠心分離器は通常のネットワークからは遮断されていたが、メンテナンスのため機器の製造装置メーカーが持ち込むモバイル端末と定期的に接続する必要があった。もし通常のネットワークとつながっていればこのような作業は必要ないが、遮断されているために返って必要な手順となる。また、Stuxnetはターゲット以外に感染しても潜んでいるだけで何もしない。したがって、ウィルス対策ソフトで検知することは難しい。
Stuxnetによる攻撃は、イランの核開発を遅らせイスラエルによるイランへの空爆を防ぐために行われたとも考えられている。一度手口が判明すれば対策は可能と思われるかも知れない。しかしながら、恐ろしいことはStuxnetのソースコードがハッカーによって盗まれ、既に流出していることである。2014年に入り、Stuxnetに良く似た性質を持つ新種のウィルスが報告されている。
http://www.nikkei.com/article/DGXMZO79858560Y4A111C1000000/
BadUSBと呼ばれるこのウィルスは、産業機器の制御プログラムであるPLCの代わりにUSB機器を制御するファームウェアを乗っ取る。USB機器は何かに接続して使用するものであり、そのための認証を内包している。この認証はファームウェアに含まれる。ファームウェアはUSB機器の制御チップに保存されておりチップを制御するためのプログラムである。BadUSBはこの認証を盗み、このUSB機器が接続しているものには何もしない。たとえば、パソコンには感染しないが、パソコンを操作するために接続しているマウスやキーボードを乗っ取ることができる。このようにして地球の裏側にいるハッカーが他人のコンピューターを遠隔操作することができる。このとき、コンピュータには感染していないので、コンピュータのウィルス対策ソフトはほとんど何も検知できない。
IoT/IoEでは通信の最小単位(ノード)は機器の制御チップである。制御チップには制御プログラム(ファームウェア)が保存される。このファームウェアはそれぞれのチップを認識するために認証コードを内包する。上述した自動運転車を遠隔操作する新たな攻撃は、この認証コードを盗み自動運転車を遠隔操作する点でBadUSBやStuxnetと類似している。
今後9・11のような同時多発テロは遠隔操作により少数のハッカーグループによって引き起こされる可能性がある。このような新たな脅威は、従来のテロ対策やサイバーセキュリティ技術では防げない。
サイバーセキュリティ技術はソフトウェアによる中央管理が主流である。セキュリティ技術に関する理解は人によりばらつきが多く、すべてのエンドユーザーに専門的な運用管理を正しく行わせることはほとんど不可能だろう。999人が適正に運用していてもたった一人が適正に運用していなければセキュリティは脆弱になる。こうして、ネットワークを介したシステムのセキュリティは、十分訓練された管理者が十分信頼性の高いソフトウェアを使い中央管理することが望ましいとされている。中央管理はつまるところ、ネットワークを介したソフトウェアによる管理である。
しかしながら、上述したように、IoT/IoEのビジネスモデルではノード数は数兆個にもなり、そもそも中央管理が難しい。その上、ネットワークに接続したノードのうちたった一つでも認証コードを乗っ取られればシステム全体(たとえば、自動運転車、航空管制システムなど)が脆弱になる。認証コードを使うのは、ネットワークが主にソフトウェアで制御されているからである。これが中央管理によるセキュリティの本質的限界である。
本発明は上記事情を鑑みて成されたものであり、ソフトウェアによらない、ノードの局所的認証管理を提供することを目的とする。
本発明は、上記課題を解決するため、以下の手段を採用する。本発明に関わるチップ認証方式を用いるチップ認証装置は、複数のネットワークユニットに分割され、前記ネットワークユニットが、一つの基幹サーバーと、前記基幹サーバーにのみ接続する複数の周辺装置から構成され、前記ネットワークユニット内において、前記基幹サーバーは、少なくとも一つのパスコードと、前記基幹サーバーと接続する個々の周辺装置に対応する複数の登録コードからなる登録コードのリストを保持し、前記複数の周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、所定の方法で入力コードに変換され、前記チップ認証装置は、前記チップ上にレイアウトされるワード線郡およびビット線郡が定義するアドレスに配置される認証素子の集合から構成される乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記ワード線及び前記ビット線に関連して印加される電気的入力に対して、少なくとも、第一の値と、及び、第二の値とを、電気的に出力し、前記入力コードは、前記ワード線および前記ビット線に所定の方法で割り当てられる電気的信号のデータの集合体であり、前記乱数発生装置は、前記入力コードに応じて、前記認証素子が電気的に出力したデータの集合体として、物理乱数コードを発生し、前記登録コードは、前記出力コードを事前登録によって前記基幹サーバーに保存したものであることを特徴とする。
また、本発明に関わる乱数発生装置は、前記認証素子が電子的に出力する電子データの集合体として乱数コードを発生し、前記出力コードは、前記入力コードと前記乱数コードとを、所定の方法で合成して出力するで電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価することを特徴とする。
本発明によれば、新しいチップ認証方式を提供し、認証コードを盗むことによる制御チップ乗っ取りの危険性を低減することが可能となる。
図1は、従来の典型的なチップ制御システムを説明する図面である。チップの機能を具現化する認証制御デバイス3は、ファームウェア2に含まれる認証コード(ID)4を必要に応じて読み出せるようになっている。たとえば、チップ1は、外部I/O(5)に応じて認証制御デバイス3が認証コード4を参照し、チップ1が正しい外部装置であることを主張する。ただし、これは主張するだけであって正しいことを証明するものではない。上述したように、この方法では、認証コード(ID)4を盗めば他のチップがチップ1になりかわることが可能だからである。
本発明では、図2に示すように、認証コード(ID)4と認証制御デバイス3からなる認証システム6を、本願のチップ認証装置60に置き換える。チップ認証装置60は外部入出力50から受け取るコール(入力信号)に応じて都度出力を発生するものであり、発生された出力信号は物理的乱雑さを利用して生成されるものである。また、入力信号を変えると出力信号も変わるという特徴を有している。
図3のように、このチップ認証装置60を有するチップ10を搭載する第一の装置71が、外部I/O(50)を通して、第二の装置72とデータを交換(交信)する場合を考えよう。
図4のように、第二の装置72は、何らかの形式で接続された第一の装置71を認識するために信号A、信号B、信号C、…を入力コードとして外部I/O(50)を介して第一の装置に搭載されるチップ認証装置60に与える。チップ認証装置60は、それぞれ信号A1、信号B1、信号C1、…を出力コードとして外部I/O(50)を介して第二の装置に返す。ここで、第二の装置は、チップ10を搭載する第一の装置を、「信号Aの入力に対して信号A1の出力を返し、信号Bの入力に対して信号B1の出力を返し、信号Cの入力に対して信号C1の出力を返し、…」という装置であると認識する。交信シリーズは、この場合、(A、B、C、…:A1、B1、C1、…)であらわされる。あるいは、別の場合では、第二の装置72は第一の装置71を「信号Fの入力に対して信号F1の出力を返し、信号Aの入力に対して信号A1の出力を返し、信号Kの入力に対して信号K1の出力を返し、…」と認識する。この場合の交信シリーズは、(F、A、K、…:F1、A1、K1、…)であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン(入力コード)は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第二の装置にネット接続しうる装置の数を無制限にすることに有用である。すなわち、第一の装置を第二の装置に最初に接続する際、第二の装置は第一の装置を登録することになる。この登録は、第二の装置の正規の使用者か、或いは、第二の装置の正規の使用者から正規に権限を委譲された者が行うことが望ましい。たとえば、図5のように、登録時に任意に選ばれた入力コード102(R、L、A)と、第一の装置から返ってきた出力信号のパターン(R1、L1、A1)を第二の装置の内部メモリ302に保存する。このとき、登録に関わる交信シリーズは(R、L、A:R1、L1、A1)となる。更に具体的には、第二の装置に接続しうる装置は無数にあるので入力コード102はあらかじめ固定することが望ましい。その場合、第一の装置が登録された交信シリーズ(R、L、A:R1、L1、A1)の替わりに(R1、L1、A1)を登録コード202とする。図5の例では、第一の装置71、第四の装置74、第五の装置75、…が、第二の装置に登録されている場合を説明している。たとえば、第四の装置は、入力コード(R、L、A)に対して、出力コード(R4、L4、A4)を第二の装置に返す。第五の装置は、入力コード(R、L、A)に対して、出力コード(R5、L5、A5)を第二の装置に返す。
図6の例では、第二の装置の正規の使用者92が、自ら所有する第一の装置を使って第二の装置72を操作する例を説明している。第一の装置と第二の装置は交信シリーズ80を用いて交信(接続)し、連携して第二の装置72の正規の使用者92の目的とする仕事を行う。ここで、第二の装置72の正規の使用者92は、交信シリーズ80にいかなるコミットメントもしない。もしコミットメントをする場合、第二の装置72の管理・使用方法が煩雑になり、IoT/IoEの利便性が大きく損なわれることになる。具体的には、第二の装置が何らかの外部装置とネット接続するとき、まず第二の装置は入力コード102(R、L、A)をこの外部装置に送り、この外部装置から返って来た信号が登録コード202のどれか、(R1、L1、A1)、(R4、L4、A4)、(R5、L5、A5)…に一致するかどうかを確認すればよい。
図7のように、遠隔攻撃者93が、第一の装置71を遠隔攻撃者93が所有する第三の装置73に不正に置き換える場合を考えよう。第三の装置73は、第一の装置71に内蔵されるチップ認証装置60を使用せずにこの交信シリーズ80を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一の装置71を第三の装置73と不正に置き換えようとする者(遠隔攻撃者93)は、実際に第一の装置71を手に取ることができないとする。これは、IoT/IoEにおいては自然な条件である。すなわち、IoT/IoEにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者93の目的は、自分が手元に所有する第三の装置73を使って第二の装置72を遠隔操作することである。第一の装置を手元に奪取するためには、第二の装置に正規に接続する第一の装置71が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二の装置の使用者に気づかれずに遠隔操作をすることができないのと同義である。第三の装置73と第二の装置72がネット接続されると、第二の装置はネット接続を介して第三の装置73を認識するために入力信号(R、L、A、…)をネット接続を介して第三の装置73に与える。第三の装置が出力信号(R3、L3、A3、…)をネット接続を介して第二の装置に返したとする。こうして、偽交信シリーズ83(R、L、A、…:R3、L3、A3、…)が作成される。すなわち、遠隔攻撃者93は、偽交信シリーズ83を正規の交信シリーズ80、この例の場合、(R、L、A:R1、L1、A1)に完全に一致させなければならない。ここで、入力コード102(R、L、A)と、この入力に対する返信(R3、L3、A3)からなる交信シリーズ(R、L、A:R3、L3、A3)は、偽交信シリーズ83の一例である。(R3、L3、A3)が(R1、L1、A1)と一致すれば、遠隔攻撃者93は第三の装置を第一の装置に置き換えて遠隔攻撃を成功できる。図5の例に従えば、遠隔攻撃者93は、(R3、L3、A3)を、第二の装置72の内部メモリ302に保存されている登録コード202のうちどれか一つと一致させれば良い。
こうして、遠隔攻撃には基本的に二つの方法があることがわかる。第一の方法は、第二の装置の内部メモリ302に保存されている情報から、入力コード102と、少なくとも登録コード202のうちのどれか一つと、を盗み取ることである。たとえば、遠隔攻撃者93が登録コード202のうち、(R4、L4、A4)と、入力コード102(R、L、A)とを盗み取ることに成功したとする。このとき、遠隔攻撃者93は、所有する第三の装置73を第四の装置74に置き換えて第二の装置を不正に遠隔操作することができる。同様に、遠隔攻撃者93が登録コード202のうち、(R1、L1、A1)と、入力コード102(R、L、A)を盗み取ることに成功したとする。このとき、遠隔攻撃者93は、所有する第三の装置73を第一の装置71に置き換えて第二の装置を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二の装置72の内部メモリ302を厳重に防御しなければならない。このため、内部メモリに入力コードや登録コードを保存する第二の装置72のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を用いて厳重に保守することが望ましい。このように、第二の装置72はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。こうして、遠隔攻撃の第一の方法はほぼ防がれる。しかしながら、ネットワークに接続する装置が数兆個に上る場合、すべての装置を第二の装置72のように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者93は、第二の装置72に接続する中央管理の行き届かない装置、図5の例では、第一の装置71、第四の装置74、第五の装置75…を遠隔攻撃することになる。これが遠隔攻撃の第二の方法である。しかしながら、第一の装置71は、入力コード102と登録コード202のペア(交信シリーズ80)を、図1の従来例のように、認証コード4として内部メモリに保存しない。第四の装置74、第五の装置75等の、第二の装置に何らかの形式で接続して使用することを目的とするほかの外部装置も同様である。これら外部装置(たとえば、図5の例では、第一の装置71、第四の装置74、第五の装置75、…)は、それぞれ相異なるチップ認証装置を搭載するチップを内蔵している。
ここで、図8のように、遠隔攻撃者93が第一の装置71を遠隔攻撃する場合を考えよう。まず、遠隔攻撃者93は、第一の装置71の内部メモリーに不正にアクセスし、登録コード及び入力コードに関する情報(交信シリーズ80)を盗み取ろうとする。しかしながら、第一の装置はそもそもそのような情報を内部メモリーに保存していないので、この攻撃は必ず失敗に終わる。次に、遠隔攻撃者93は、適当に選んだ信号(X、Y、Z)を第一の装置71に入力し、(X1、Y1、Z1)の返信を得る。(X、Y、Z)が、第二の装置72が用いる入力コード102(R、L、A)と異なる場合、返信(X1、Y1、Z1)は登録コード202の(R1、L1、A1)とは異なる。こうして、第二の遠隔攻撃も失敗に終わる。ここで問題なのは、遠隔攻撃者93が適当に選んだ信号セット(X、Y、Z)が、たまたま第二の装置72の内部メモリ302に保存した入力コード102(R、L、A)に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に第二の装置72の管理者以外には非公開とすることである。この情報は、第二の装置72の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、第二の装置72に接続する装置の再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。このように、入力コードは、パスコードとして振舞う。
この入力コードは、さまざまな周辺装置への認証IDを検査するために共通して使うことが望ましい。この場合、おのおのの周辺装置へのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹サーバーは少なくとも一つの共通パスコードを所有する。
上記第二の装置72が計算機(パソコン等)の場合、これに接続する第一の装置71、第四の装置74、第五の装置75は、計算機に接続して用いられる周辺装置となる。たとえば、マウス、キーボード、マイクロホン、などである。上述したとおり、計算機本体は最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺装置(マウス、キーボード、マイクロホン等)の不正な置き換えから計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺装置を遠隔攻撃から守ることができる。
上記第二の装置72がネットワークサービスの中心的機能を担う基幹サーバーの場合、これに接続する第一の装置71、第四の装置74、第五の装置75などを、基幹サーバーに対して周辺装置とみなすことができる。図9は、一つの基幹サーバー400に、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430がネット接続する例を示している。たとえば、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、このネットワークサービスを利用するエンドユーザーの端末である。たとえば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、エンドユーザーの端末(スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等)の置き換え(乗っ取り)から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
上記第二の装置72がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の装置71、第四の装置74、第五の装置75は、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイセンサー、各種スマートメーターなど無数にある。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、このようなセンサーの置き換え(乗っ取り)から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺装置(たとえば、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430)は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ(たとえは、共通パスコード)を保存する“基幹サーバー”と保存しない“周辺装置”に分けることが特徴となる。同時に、認証通信のために必要なデータ(たとえは、共通パスコード)を保存する“基幹サーバー”は中央管理し、認証通信のために必要なデータ(たとえは、共通パスコードなど)を保存しない“周辺装置”には本発明のチップ認証装置を搭載することを特徴とする。
図10のように、上記共通パスコードは、第一の基幹サーバー1400に少なくとも一つ保存され、周辺装置を認識する際に周辺装置に送られる。たとえば、第一の基幹サーバー1400は第一の共通パスコード1410を、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430に送る。これらの周辺装置は、第一の基幹サーバーを「第一の共通パスコード1410を送ってくるもの」として認識する。図11に示すように、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、この第一の共通パスコード1410の入力に対応し、それぞれ、第一の認証4101、第二の認証4201、第三の認証4301を、第一の基幹サーバー1400に返す。第一の基幹サーバー1400は、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430を、「第一の共通パスコード1410に対して、それぞれ第一の認証4101、第二の認証4201、第三の認証4301を返すもの」と認識する。同様に、図12のように、第二の基幹サーバー2400は、第二の共通パスコード2410を、第一の周辺回路410、第二の周辺装置420、第三の周辺装置430に送る。これらの周辺装置は、第二の基幹サーバーを「第二の共通パスコード2410を送ってくるもの」として認識する。図13に示すように、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、この第二のパスコード2410の入力に対応し、それぞれ、第四の認証4102、第五の認証4202、第六の認証4302を、第二の基幹サーバー2400に返す。第二の基幹サーバー2400は、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430を、「第二の共通パスコード2410に対して、それぞれ第四の認証4102、第五の認証4202、第六の認証4302を返すもの」と認識する。言うまでも無く、第一の共通パスコード1410と第二の共通パスコード2410は異なる。第一の認証4101、第二の認証4201、第三の認証4301、第四の認証4102、第五の認証4202、第六の認証4302のうちどの二つの認証も同じではない。また、第一の基幹サーバー1400が別の共通パスコード1411を使用することも可能である。これは、より高度な管理のために便利なことがある。
実際のネットワークでは、周辺装置は無数にあり、しかも基幹サーバーは一つに限らない。たとえば、図14では、二つの基幹サーバー(第一の基幹サーバー1400、第二の基幹サーバー2400)と五つの周辺装置(第一の周辺装置410、第二の周辺装置420、第三の周辺装置430、第四の周辺装置440、第五の周辺装置450)からなるネットワークの一例を示している。第一の基幹サーバー1400を中心に、第四の周辺装置440と第五の周辺装置450とで一つのネットワークユニットを構成し、第二の基幹サーバー2400と、第一の周辺装置410、第二の周辺装置420、及び第三の周辺装置430と、でもう一方のネットワークユニットを構成する。これらのネットワークユニットは、互いに、第一の基幹サーバー1400と第二の基幹サーバー2400とのみで接続している。さらに、第四の周辺装置440および第五の周辺装置450は、第一の基幹サーバー1400とのみ接続し、第一の周辺装置410、第二の周辺装置420、及び第三の周辺装置430は、第二の基幹サーバー2400とのみ接続している。ここで、接続とは、上述した認証作業によって電子装置同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、電子装置のネットワークを考える際、得に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での(認証)接続は、一つのパッケージ化されたシステム内の装置(モジュール、あるいは、チップ)同士の接続をも含む。本発明の特徴のひとつとして、このような複数の基幹サーバーと複数の周辺装置からなるネットワークにおいて、基幹サーバー同士は直接接続が可能であるが、周辺装置同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺装置では、共通パスコードのような入力データを保存しないためである。その代わりに、周辺装置同士は、基幹サーバーを介して間接的に接続する。たとえば、第一の周辺装置410と第二の周辺装置420は、第二の基幹サーバー2400を介して間接的に接続可能である。第四の周辺装置440と第五の周辺装置450は、第一の基幹サーバー1400を介して、間接的に接続可能である。第三の周辺装置430と第四の周辺装置440は、互いに接続している第一の基幹サーバー1400と第二の基幹サーバー2400とを介して、間接的に接続可能である。こうして、本発明によれは、中央管理のためのリソースを基幹サーバーにのみ集中させることが可能となる。図14の具体的な例としては、たとえば、自動運転車とスマートハウスが上げられる。たとえば、第一の基幹サーバー1400、第四の周辺装置440、および第五の周辺装置450からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹サーバー2400、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430からなるネットワークユニットは、一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、たとえば、スマートハウスのバッテリーの状況を把握するためのセンサー(たとえば、第四の周辺装置440)が自動運転車に搭載されている。このように、第四の周辺装置440は、第一の基幹サーバー1400と第二の基幹サーバー2400のどちらとも接続することになる。
図15に示すように、本発明を用いたネットワークでは、一つの周辺装置(たとえば第一の周辺装置410)が複数の基幹サーバー(たとえば、第一の基幹サーバー1400、第二の基幹サーバー2400、第三の基幹サーバー3400)と接続することも認められる。その中で、たとえば、第一の基幹サーバー1400と第二の基幹サーバー2400は直接接続しているが、第一の基幹サーバー1400も第二の基幹サーバー2400も、第三の基幹サーバー3400とは直接接続していないものとする。ここで、第三の基幹サーバー3400が遠隔攻撃者でないという証明はない。このため、第一の周辺装置410に接続認証に関するデータ(共通パスコード)を保存しないということは重要である。たとえば、最初に第一の周辺装置410が第一の基幹サーバー1400に登録される際、第一の基幹サーバー1400は、第一の周辺装置410が第一の基幹サーバー1400の後に他の基幹サーバーと接続することを制限することが可能となる。なぜなら、第一の周辺装置410の外部入出力制御装置(たとえば、図80の外部入出力制御回路980)は、受信する全ての信号を第一の基幹サーバー1400に転送し、第一の基幹サーバー1400は、第一の周辺装置410への全ての入力をモニターすることが可能だからである。ここで、もし第一の共通パスコード1410と同等のコードが発見されたら、緊急処置を施すことができる。たとえば、第一の基幹サーバー1400は、第一の周辺装置410を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺装置410を利用する。第一の基幹サーバー1400の次に、第二の基幹サーバー2400が第一の周辺装置410を登録する場合、第二の基幹サーバーは、あらかじめ第一の基幹サーバー1400に、第一の周辺装置410を登録する許可を申請する。これには、第二の基幹サーバーと第一の基幹サーバーが直接接続していることが必要である。第一の基幹サーバーが、第二の基幹サーバーに対し、第一の周辺装置410への接続を許可すれば、第一の周辺装置410は、第二の共通パスコード2410を受け付け、第二の基幹サーバー2400に第二の認証12を返信し、第二の基幹サーバー2400は、第一の周辺装置410を登録する。以後、第二の基幹サーバー2400と第一の周辺装置410は、第一の基幹サーバー1400の許可を経ずに、接続可能となる。次に、第三の基幹サーバー3400が、第一の周辺装置410と接続するには、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400及び第二の基幹サーバー2400が、第一の周辺装置410に対し、あらかじめ、第三の共通パスコード3410の受付を許可しておく必要がある。こうして、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400及び第二の基幹サーバー2400は、第三の基幹サーバー3400と第一の周辺装置410の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺装置410に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400および第二の基幹サーバー2400の正規の管理者によって行われるものとする。
第一の基幹サーバー1400は、第一の共通パスコード1410を有し、第二の基幹サーバー2400は、第二の共通パスコード2410を有し、第三の基幹サーバー3400は、第三の共通パスコード3410を有するものとする。すなわち、第一の周辺装置410は、「第一の基幹サーバー1400を第一の共通パスコード1410を入力してくるもの」と認識し、「第二の基幹サーバー2400を第一の共通パスコード2410を入力してくるもの」と認識し、「第三の基幹サーバー3400を第三の共通パスコード3410を入力してくるもの」と認識する。これらの入力に対し、「第一の基幹サーバー1400は、第一の周辺装置410を第一の認証11を返すもの」と認識し、「第二の基幹サーバー2400は、第一の周辺装置410を、第二の認証12を返すもの」と認識し、「第三の基幹サーバー3400は、第一の周辺装置410を、第三の認証13を返すもの」と認識する。ここで、通信認証に関するデータ(共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等)は、基幹サーバーに保存され、周辺装置には保存しない。周辺装置には、本発明のチップ認証装置を搭載する。
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。

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

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

(出力の予測不可能性)
図18に示すように、n個の入力信号Q1−Qnを同一のチップ認証装置60に与えたとき、それぞれの入力信号に対し出力信号R1−Rnが得られることを知っているものとする。このとき、n個のQ1-Qnのいずれとも異なる入力信号Qn+1を同一のチップ認証装置60に与えずに、これを与えたときに得られるはずの出力信号Rn+1を、(Q1、R1)、(Q2、R2)、…(Qn、Rn)のセットから予測することは不可能である。ただし、nは2以上の整数とする。チップ認証装置60が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置60は物理的乱雑さを利用して出力信号を生成しなければならない。

(入出力の信頼性)
図19に示すように、実際には、入力信号Qを制御する回路に関わる制御不能のノイズなどにより、入力信号Qには入力信号誤差31(ΔQ)が混入する。これに対し、入力信号誤差31(ΔQ)及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Rには出力信号誤差32(ΔR)が混入する。このとき、二つの異なる入力信号(たとえば、Q1およびQ2)の差の絶対値は、入力信号誤差31(ΔQ)の絶対値の最大値より大きいものとする。ここで、入力信号Q1に対する出力信号R1と、入力信号Q2に対する出力信号R2との間の差の絶対値は、出力信号誤差32(ΔR)の絶対値より常に大きくなければならない。
本発明に関わるチップ認証方式は、上述した(出力の独立性)、(入力の独立性)、(出力の予測不可能性)、及び、(入出力の信頼性)の、4つすべてを同時に満たしていなければならない。
(検査)
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹サーバーに接続している周辺装置を、本発明によるチップ認証装置を搭載したチップで構成された周辺装置に置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺装置が一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹サーバーの保守点検の一部として随時行うことが可能である。また、周辺装置の登録時にも行うことが望ましい。
この検査のためにもっとも有効な方法は、中央管理下にある基幹サーバーを使って検査対象となる周辺装置を実際に遠隔攻撃することである。検査対象となる周辺装置を構成するチップは、本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード42と登録コード43の対応表(図20参照)を保存していなければならない。本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図20のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹サーバーだけである。図9にある、入力コード402と登録コード403の組あわせがそれである。図9の入力コード402が図20の入力コード42に対応し、図9の登録コード403が図20の登録コード43に対応している。
具体的な検査作業の流れを図21を用いて説明する。まず、検査する周辺装置を見つけたところから始める。次に、検査対象の周辺装置の内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹サーバーに保存されている入力コードの中に一致するものがあるかどうかを調べる。不一致の場合、さらに、基幹サーバーに保存されている登録コードと比較する。そこで一致しなかった場合、検査した周辺装置を公正なものとして承認する。次に検査する周辺装置があるかどうか探す。なければ終了する。あれば、その検査対象となる周辺装置の内部メモリを読み出す。以下同様。
こうして、本実施形態に関わるチップ認証方式を用いるネットワークを構成するすべての装置は、たとえば、図14のように、訓練を受けたセキュリティ専門家が保守・管理する基幹サーバー(たとえば、1400、2400)のグループと、前記セキュリティ専門家が管理できない周辺装置(たとえば、410、420、430、440,450)のグループに分けられる。ここで、周辺装置同士はお互いに直接に接続せず、基幹サーバーとのみ接続可能とする。こうして、一つの基幹サーバーとそれに直接接続する複数の周辺装置からなるネットワークユニットを構成する。基幹サーバーは、基幹サーバー同士と任意に接続可能であり、周辺装置同士は、基幹サーバーを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図14は、二つのネットワークユニットが互いの基幹サーバー同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹サーバー、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の電子装置同士の接続は、上述した認証作業によって電子装置同士が互いを認証する、認証接続のことを意味している。
各周辺装置には、すべて異なるチップ認証装置が搭載されている。図10及び図12に示すように、基幹サーバー(1400、2400)は、それぞれ固有の共通パスコード(1410、2410)を少なくとも一つずつ保有する。図9に示すように、それぞれの基幹サーバーが出力する共通パスコードは、基幹サーバーの内蔵メモリに入力コード(たとえば、402)として厳重に保管される。図11及び図13に示すように、共通パスコード(1410、2410)を入力された周辺装置(410、420、430)は、それぞれの共通パスコードに対しておのおの固有の認証(4101、4201、4301)、及び、(4102、4202、4302)を基幹サーバー(1400、2400)にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図16に示すように、(出力の独立性)を満たさなければならない。図9に示すように、基幹サーバーは、周辺装置から返信されてきた出力信号を、入力コード(たとえば、402)のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード(たとえば、403)と便宜比較する。
図15に示すように、一つの周辺装置が複数の基幹サーバーと接続することが許される。この場合、一つの周辺装置(たとえば、410)は、複数の共通パスコード(たとえば、1410、2410、3410)を入力され、それぞれ異なる入力に対して、それぞれ異なる認証(たとえば、11、12、13)を出力しなければならない。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図17に示すように、(入力の独立性)を満たさなければならない。
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者(たとえば、93)がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、たとえば図20のように、登録コードを偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺装置の一部を乗っ取り、基幹サーバーに不正アクセスすることが可能となる。このような不正行為防ぐため、本発明のチップ認証装置は、図18に示すように、(入出力の予測不可能性)を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも(入出力の予測不可能性)を満たすことができない。これは、プログラムにより完全な乱数を発生することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード(共通パスコード)を受け取る度に、物理的乱雑さに基づいて出力信号(認証コード)を発生することが望ましい。共通パスコードは周辺装置のメモリに保存してはならない。電子装置が複数のチップで構成される場合、図114に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺装置及び基幹サーバーが、少なくとも一つのチップから構成される電子装置のネットワークである。
本発明に関するチップ認証装置は、半導体装置の素子アレイ上に構成することが可能である。まず、何らかの方法で“1”と“0”の物理的にランダムな組み合わせを生成する。ここで、“1”を黒、“0”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図22のような白と黒がランダムに配置した市松模様ができる。このように、乱数がデジタルで発生すると、図19に説明した(入出力の信頼性)を満たすことができる。
このように、本発明に関するチップ認証装置は、半導体デバイス及び半導体デバイス製造工程における制御不能の不確定さを用いて、上記必要とされる物理的乱雑さを生成するものである。
以下、発明を実施するための最良の形態について、具体的に説明する。
図23は、図22を実現するための素子の配列の一例である。行方向にL本のワード線503が並んでいる。それと直行するように、ビット線902が列方向にM本並んでいる。L本のワード線503とM本のビット線が交差するところにチップ認証装置のエレメントである認証素子977が配列する。この例では、不揮発性メモリのセルアレイと異なり選択ゲートは無いが、L本目のワード線(L-1)とビット線コンタクト504の間、及び、反対側の端であるワード線(0)とビット線コンタクトの間に選択ゲートを採用しても、本発明の本質に変化はない。
図24は、図23の認証素子用アレイ960の中からN本のワード線503とN本のビット線902を抜き出したものである。Nは、一般に、上記のLやMより小さいか同じ自然数である。
入力コード(P、S、T、…)の例として、(a(1),b(1),a(2),b(2),…,a(N),b(N))を考えよう。この入力コードを配列aと配列bに分割し、図25のように、(a(1),a(2),…a(N))を第一行から順に対応させる。(b(1),b(2),…,b(N))を第一列から順に対応させる。このとき、i行j列の認証素子977のデータを要素d(i,j)とする。 (i,j)は認証素子977のアドレスに対応する。図25の例では、要素d(5,N-2)が図示されている。ここで、要素d(i,j)の集まり{d(i,j)}は、0と1のランダムな集合体で構成される乱数コードである。このように、入力コードを2つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列aと配列bを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列aと配列bを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列aと配列bの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ960の行数と列数の和は、少なくとも2Nより大きいものとする。ここで、上記入力コードを{a(i),b(j)}と表記することにする。ただし、i、および、jは、それぞれ独立の自然数とする。こうして、数列{a(i)}、数列{b(j)}、及び乱数コード{d(i,j)}から、何らかの方法を用いて出力コード{c(i,j)}を作成する。入力コード{a(i),b(j)}及び出力コード{c(i,j)}の組み合わせが、図6の交信シリーズ80に対応している。この乱数コード{d(i,j)}の一例として、物理乱数を用いればよい。
本発明に係る実施形態について、主に、第一の入力数列{a(i)}、第二の入力数列{b(j)}、及び物理乱数{d(i,j)}から、出力コード{c(i,j)}を作成する方法について、以下図面を参照して説明する。

(第一の実施形態)
一例として、出力コード{c(i,j)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。
Figure 2017028354
図26は、数列{a(i)}、数列{b(j)}、及び物理乱数{d(i,j)}と、式1に基づいて出力される出力コード{c(i,j)}との関係を一覧表にしたものである。この方法を用いると、0と1の数の割合に変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式1の右辺に入力される情報量と、式1の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式1で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。
図27は、式1で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i,j)}を発生し、基幹サーバー400から、共通パスコードとして、入力コード{a(i),b(j)}が入力され、コード発生装置602で出力コード{c(i,j)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共にチップ認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図22で概念的に説明した方法を用いる。コード発生装置602は、式1で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数{d(i,j)}で物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置601の行数と列数の和は、少なくとも、{a(i)}の要素数と {b(j)}の要素数の和と同じか、それより大きいものとする。

(第二の実施形態)
図28は、第二の実施形態の概念を示す図である。すなわち、基幹サーバー400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺装置にモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、特に図示しないが、基幹サーバー400に接続する周辺装置は、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹サーバーへ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置に返して、このスクランブルされた認証(P1’、S1’、T1’、…)を基幹サーバー400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1、S1、T1、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹サーバー400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
いずれにしろ、コスト面から、スクランブル装置はチップ認証装置600を搭載するチップに混載することが望ましい。図29は、スクランブル装置604の基本構成の一例を示す図である。この例では、スクランブル装置604は、乱数発生装置605及びコード発生装置606から構成されり、チップ認証装置600とほぼ同じである。スクランブル装置604を構成する乱数発生装置605およびコード発生装置606の詳しい説明は、図27で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置606は、スクランブル装置の外に置くことも可能である。

(第三の実施形態)
図30は、図23の認証素子977のアレイの一部を示すものである。行数はN+Kで、列数はNである。上部K行N列の領域をスクランブル装置セルアレイ614とし、下部N行N列を、チップ認証装置セルアレイ611としている。
図31は、スクランブル装置604を構成する乱数発生装置605を実現する方法の一例を説明する図である。まず、{a(i)+b(i)}を列毎に入力する。次に、物理乱数の要素d(i,j)を行方向に足し上げたものを2で割ったあまりにa(i)とb(i)を加える。その和を更に2で割ったあまりを中間出力{f(j)}とする。こうして、図32のように、スクランブル装置604を構成するコード発生装置606の機能は、次の数式で表される。
Figure 2017028354
この{f(j)}が、図28、図29、図32および図34のスクランブル装置604の出力となる。ただし、jは1からNの自然数である。
図33は、図27のチップ認証装置600を構成する乱数発生装置601を実現するチップ認証セルアレイ611の一例を示す図である。図25および式1において、配列{b(j)}を配列{f(j)}に置き換えたものと同等なので、詳細の説明は省略する。ここで、式3で表される{c(i,j)}がコード発生装置602の出力となる。
Figure 2017028354
ただし、i、および、jは、それぞれ独立の自然数である。
図34は、図28のスクランブル装置604とチップ認証装置600の入出力関係をまとめて説明する図である。入力コード{a(i),b(j)}はスクランブル装置604で物理的乱数を取り込んで中間コード{a(i),f(j)}に変換される。この{a(i),f(j)}を次の入力コードとしてチップ認証装置600に入力し、出力コード{c(i,j)}を出力する。
ここで、スクランブル装置604の行数Kとチップ認証装置の行数Nの選び方は、必ずしも基幹サーバー側で管理する必要はない。たとえば、周辺装置を基幹サーバーに登録する際、周辺装置の所有者、あるいは、周辺装置の正規の管理者が、任意に決定できる。決定された(N、K)は周辺装置内部の不揮発性メモリ等に保存する。
この時点では(N、K)は基幹サーバー側が知らなくても良い情報であるが、基幹サーバーが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹サーバー側で検査し必要に応じて改定することが可能である。その際、改定された(N、K)で周辺装置を再登録する必要がある。(N、K)を改定すると、たとえ同じ入力コード{a(i),b(j)}を入力しても、スクランブル装置604が生成する中間コード{a(i),f(j)}が異なる。したがって、チップ認証装置600が生成する出力コード{c(i,j)}も異なる。
基幹サーバーは前回のメンテナンス時に改定した(N、K)を記録しておく。次のメンテナンス時、チップの内部メモリに保存されている(N、K)を読み出し、前回記録しておいてた(N、K)と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこのチップを切り離すか、管理者に警報することができる。こうして、(N、K)をセキュリティバッファとして有効活用することも可能である。なお、式1−3に基づくコード生成では、物理乱数{d(i,j)}を用いているので、セキュリティバッファ(N、K)自体が流出してもかまわない。
上記式1−3にしたがってコード生成するのにCPUを使用する場合、スクランブル装置とチップ認証装置の間に生成される中間出力{f(j)}はCPU外には出力しない場合、CPU内のレジスタに一部あるいは全部を格納しなければならないが、{f(j)}全体を周辺装置の内部メモリに保存する必要はない。あるいは、上記式1−3にしたがってコード生成するのに同一チップ内の周辺回路を用いる場合、スクランブルとチップ認証の間に生成される中間出力{f(j)}はチップ外には出力されない。つまり、中間コード{a(i),f(j)}も、チップ外に出力されることはない。いずれにしろ、出力コード{c(i,j)}の生成が終われば中間出力{f(j)}は自動的に上書き消去される。また、遠隔操作によってコード生成中のレジスタからチップ内あるいはCPU内に閉じ込められた中間出力{f(j)}をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。たとえば、通常のパソコンでは32ビット、多くとも64ビットしかない。一方、中間出力{f(j)}をすべて記録するのに必要な容量はNビットである。したがって、Nが十分大きければ、コード生成するには、中間コード{f(j)}をいくつかのパケットに分割してレジスターに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をRとすると、図34において、たとえば、第1列から第R列までをパケット1、第R+1列から第2R列までをパケット2、第2R+1列から第3R列までをパケット3、…とし、式2に基づいてパケット毎に中間出力{f(j)}の一部を生成しレジスタに格納する。すなわち、Nが十分大きければ、中間出力{f(j)}を格納したレジスタ領域はパケットを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力{f(j)}の全体を一度に盗まれることはない。また、本願では、入力コード{a(i),b(j)}から中間コード{f(j)}を生成するのに物理乱数{d(i,j)}(i=1,…K)を利用しているので、入力コード{a(i),b(j)}から中間出力{f(j)}を予測することは不可能である。更に、中間入力コード{a(i),f(j)}から出力コード{c(i,j)}を生成するのに前者とは独立の物理乱数{d(i,j)}(i=K+1,…K+N)を利用しているので、出力コード{c(i,j)}を予測することは不可能である。仮に中間コード{f(j)}が盗まれてたとしても、物理乱数{d(i,j)}(j=K+1,…K+N)からなる物理的乱雑さによって出力コード{c(i,j)}を予測するのは不可能である。その上、セキュリティバッファ(N、K)を随時更新することができるので、同じ入力コード{a(i),b(j)}に対して生成される中間コードは随時更新される。したがって、たとえば、Nを64より大きくしておけばセキュリティは、更に大きく向上する。
図35は、スクランブル装置アレイ614とチップ認証装置セルアレイ611を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線503を共有している。図36は、スクランブル装置アレイ614とチップ認証セルアレイ611を含むメモリチップの他一例を示す図である。これら3つの領域がビット線方向に配列し、ビット線902を共有している。

(第四の実施形態)
図37は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにキャパシタ982を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すことがある。ワード線503とビット線902の間に電圧を印加することで、選択された交差点のキャパシタ982に電圧を印加することが可能である。
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は直流でも電流を流しやすくなり、たとえばメモリでは“1”に相当する。図22では黒に相当する。反対に、破壊しなかった認証素子は印加電界に対して電流を流し難く、たとえばメモリでは“0”に相当する。図22では白に相当する。印加電界やキャパシタの詳細な条件(物性、構造、サイズ等)を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ50%程度にすると、図22のような白黒のランダムな市松模様が得られる。
図38は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのためにキャパシタ982に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてキャパシタ982を通して流れる電流の絶対値である。破壊された素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧932における破壊判定電流値933と非破壊判定電流値934を設定する。すなわち、絶対値が破壊判定電圧932に一致する読み出し電圧をキャパシタ982に印加したときにキャパシタ982を流れる電流の絶対値が、破壊判定電流値933より高ければ、破壊していると判定し、非破壊判定電流値934より低ければ破壊していないと判定する。ここで、読み出し電圧は直流電圧である。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図38で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、認証素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図38の判定方法には、破壊判定電流値933と非破壊判定電流値934の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊したとも非破壊であるとも判定されない。このような素子は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、2進表記した素子のセルアレイ上のアドレスと、対応する素子のデータの一例を示したのが図39である。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”…となっている。このように、左から五番目の認証素子のデータが“X”になっている。
次に、図39のような“0”と“1”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図22の白黒のパターンになると予想される。ここで、“0”は白に変換され、“1”は黒に変換されるものとする。しかしながら、“0”でも“1”でもない“X”が存在すると、図22のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“X”に対応する素子をプロットから排除しなければならない。
たとえば、 “X”に対応する素子のアドレス(たとえば、2進法表記で100)をバッファに保存する。各アドレスに対応する素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、“X”に対応する素子のデータは取りのぞかれ、“0”と“1”のみからなるデータとアドレスの組み合わせが生成される。こうして、図22のように、白黒の市松状のパターンが得られる。
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊の時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったりハード破壊モードに遷移することもあり状態が不安定であるが、一度ハード破壊モードに陥ると、非破壊状態に戻ることもなければソフト破壊モードに遷移することもない。本発明においては、図38および図39で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“1”とみなし、ソフト破壊モードを“X”としている。破壊判定電流値と非破壊判定電流値の間のギャップは、ソフト破壊モードに“X”をラベルするためのものである。こうして、上述した方法によって、“X”のソフト破壊した素子のデータを取り除くことによって、図22の市松状の白黒パターンは、繰り返し読み出し電圧を印加しても変化しずらくなり、パターンの再現性を獲得する。
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。したがって、電気的ストレスを繰り返すうちに“X”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図38で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図38の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図38の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。ただし、素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
物理的乱雑さを最大限にするには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。“X”とラベルされた素子はソフト破壊モードであり、パルス電圧印加を繰り返すうちに確率的に“1”(ハード破壊モード)に遷移すので、図40のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“0”の数が多くても複数回パルス印加するうちに“1”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合を50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
また別の一例では、素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。たとえば、図41のように、第一導電体1053、第二導電体1052、絶縁膜910、導電体先端部1051からなる素子構造を考えよう。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線502あるいはビット線902のどちらか一方に接続し、第二電極1054は他方に接続する。導電体先端部1051周辺の絶縁膜の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部1051の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部1051の深さには製造ばらつきがあるので、導電体先端部1051と第二導電体1052の間の絶縁膜1050の破壊発生確率も素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって、“0”と“1”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。

(第五の実施形態)
それぞれワード線503とビット線902とに接続する導電体がダイオードからなる認証素子977を用いる場合、ダイオード要素がPN接合986(図42)、あるいは、ショットキー接合987(図59)ならば、ダイオードに強い電圧ストレスを印加することによって、ダイオードは確率的に破壊される。破壊されたかどうかは、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、たとえばメモリの“1”に相当する。破壊されなかった素子では、逆方向の読み出し電圧を印加しても電流が流れずらく、たとえばメモリの“0”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。
上述のように、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がPN接合986やショットキー接合987のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がキャパシタ982の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図38と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、PN接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。

(第六の実施形態)
図43は、認証素子977がMetal-Oxide-Semiconductor(MOS)型電界効果トランジスタ(MOSFET)983の場合を示す図である。一般に、MOSFETは、半導体基板表面の二つの近接する拡散層とMOSキャパシタから構成されている。MOSキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この例では、二つの拡散層の内一方をビット線902に接続し、他方を設置している。ゲート電極には、ワード線503を接続する。すなわち、本実施形態では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、ビット線902を接地している間にワード線503に電圧ストレスを印加する。この電圧ストレスは、一例として、図40のようなパルスでも良い。読み出しは、ビット線902とワード線503の間に破壊判定電圧932を印加し、ビット線902とワード線503の間を流れる電流を読めば良い。

(第七の実施形態)
図44は、認証素子977が、トランジスタ983とキャパシタ982から構成されるDRAMセルの場合である。キャパシタ982が電圧降下を起すため、トランジスタ983のゲート絶縁膜を破壊するのは現実的ではない。したがって、この例ではキャパシタ982の破壊を利用することになる。具体的には、ワード線503にトランジスタ983をオン状態にするための転送電圧をワード線とビット線の間に印加する。その間にビット線に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図40のようなパルスである。読み出しは、ワード線503に転送電圧を印加している間に、ビット線902を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ983をオン状態にするのに必要な電圧である。
ここで重要なことは、認証素子977は、通常のDRAMセルをそのまま用いることができる点である。すなわち、DRAMチップに本願のチップ認証装置を追加する場合、認証装置領域(セルアレイ)を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、DRAMに限らず一般的なメモリ容量に比べて非常に少なくて済む。
たとえば、図30の例で、スクランブル装置(行数K)も含めてチップ認証装置(行数N)の追加容量を概算すると次のようになる。列数をNとすると、入力コードの場合の数は、2のN乗と2の(N+K)乗の和である。スクランブル装置の物理乱数{d(i,j)}の場合の数は、2のNK乗である。チップ認証装置の物理乱数{d(i,j)}の場合の数は、2のN乗である。出力コード{c(i,j)}の場合の数は、2のN乗である。
次に、(N、K)を決定するために必要な要件を考える。まず、上述したような絶縁膜破壊やダイオードの接合破壊は物理的に乱雑なものであり、如何なるアルゴリズムにも依存しない。しかしながら、本願では(入出力の信頼性)を確保するために、図22のような白黒(0/1)の市松模様を作りだすことによって物理的乱雑さをデジタル化している。これによって情報量の縮小が行われる。0/1の市松模様はチップ上に分布するので、分布する素子の数が少ないとパターン数が少なくなり、偶発的に同じ市松模様を出力する可能性が高まるように思われる。このような不具合を取り除くためには、デジタル化した物理乱数{d(i,j)}の場合の数が現実的にほぼ無限大とみなせるほどNおよびKを大きく設定しなければならない。一方、一般的なデジタル暗号回線で用いられる入力コードは、現在128ビットから256ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから10年程度の間は256ビットからせいぜい512ビットの間で推移するであろう。そこで、一例としてN=K=512の場合で見積もる。このとき、入力コードの場合の数は、2の512乗と2の1,024乗の和である。これは、既に通常のコンピュータが扱える整数の桁数をはるかに上回る情報量である。実際に関数電卓で計算すると無限大が出てくる。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は更に大きく、すべて同様に2の512乗である。もちろん、現実的な無限大である。ここで、512=262,144なので、スクランブル装置を含めても262Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4Gb)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。
N=K=128の場合では、入力コードの場合の数は、2の128乗と2の256乗の和であり、およそ10の77乗となる。IoT/IoEが本格的に普及すれば、通信ノードの数は全世界で一兆個(10の12乗)に登るといわれている。10の77乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、10のマイナス65乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は、すべて同様に2の128乗となり、もちろん、現実的な無限大である。ここで、128=16、384なので、スクランブル装置を含めても16Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4Gb)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
DRAMの価格は、現在、4Gb品で2.5USドルから3USドルの間で推移している。DRAMセルをそのまま認証素子977として使用することができるので、物理乱数の情報量を十分維持しながら(入出力の信頼性)を確保しても、スクランブル装置を含めたチップ認証装置の値段は、1チップ辺り最大でも0.03USセントである。

(第八の実施形態)
図45は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところに不揮発性メモリの制御に用いる選択トランジスタ984を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、積層構造である。前記選択トランジスタ984は、メモリ素子の層間絶縁膜の一部もしくは全てを層間導電層に置き換えるられている。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線503に高電圧を印加することで、選択された交差点の選択トランジスタ984のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ983のゲート絶縁膜の破壊と同様になる。すなわち、(第六の実施形態)のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。

(第九の実施形態)
図46は、ビット線方向に隣り合った選択トランジスタ984同士の拡散層を接続した場合の例である。これは、NAND型と言われるもので、動作方法が複雑になるので、更に図面を用いて詳細に説明する。
図47は、本実施形態に関するチップ認証用素子アレイ960の一例である。ページバッファ790は、NAND型不揮発性メモリセルアレイのページバッファを兼ねる。ページバッファ790にはビット線902との接続をオン/オフさせるためのビット線接続ゲート791が設けられている。ページバッファ790は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
本実施形態では、混載するメモリセルはNANDセルであるが、DRAM等の揮発性メモリ、あるいは、NORフラッシュ及び磁気抵抗メモリ、相変化型メモリ、抵抗変化型メモリ等の不揮発性メモリであっても良い。すなわち、本発明に関するチップ認証素子アレイ611と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
認証素子977のに電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線側の選択トランジスタをオン状態にする。同様に破壊したいワード線とビット線側の選択トランジスタの間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各不揮発性メモリトランジスタをオン状態とする。ここで、破壊パルスを印加したいビット線の電位を0Vにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、たとえば、図40で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図40を試してパルス回数を決定し、それをチップ内のメモリ領域(あるいはバッファー)に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
図48は、本実施形態に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出すキャパシタに関する1本のワード線を選択し、0Vより高い所定の電位を与える。選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線は0Vないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図38の破壊判定電圧932程度である。同時に、ドレイン側の選択ゲートには正の電位を与え、ドレイン選択トランジスタ(SGD)9811をオン状態にする。次にビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977が導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正の電位を与え、ビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の導通・非導通状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位(たとえば、破壊判定電圧値9330)以上であれば選択した認証素子977は破壊されてると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9340)以下であれば選択した認証素子977は破壊されていないと見なす。ここで、破壊判定電圧値9330及び非破壊判定電圧値9340は、それぞれ、図38の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
図49に本実施例に関する破壊検査時の電圧パルス波形の別の一例を示す図面を示す。まず、読み出すキャパシタに関する1本のワード線を選択し、0Vを与える。同じく選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、たとえば、図38の破壊判定電圧932程度である。同時に、ドレイン側の選択ゲートには正の電位を与え、ドレイン選択トランジスタ(SGD)9811をオン状態にする。次に、ビット線接続ゲート791を0Vに下げる。このとき、ビット線接続ゲートトランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977が導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正電位を与えビット線接続ゲートトランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の導電・非導電状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位(たとえば、破壊判定電圧値9331)より低ければ、選択した認証素子977は破壊されていると見なし、ビット線電位が所定の電位(たとえば、非破壊判定電圧値9341)より高ければ、選択した認証素子977は破壊されていないと見なす。ここで、破壊判定電圧値9331及び非破壊判定電圧値9341は、それぞれ、図38の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
不揮発性メモリの複数のブロックの隣に1ブロック分の領域(をチップ認証装置に割り当てることが可能である。たとえば、図35や図36のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線902、あるいは、ワード線503を共有することでチップ面積を節約することが可能である。

(第十の実施形態)
図50は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにヒューズ抵抗985を配置している。ワード線503とビット線902の間に高電圧を印加することで、選択された交差点のヒューズ抵抗985に電界ストレスを加えることが可能である。
一般に、ビューズ抵抗は、高抵抗導電材を二つの端子で挟んだものであり、ヒューズに高電界を印加すれば、確率的にショートして、ワード線503とビット線902の交点は非導電状態になる。ショートしなかった場合(非ショート)、ワード線503とビット線902の交点は導電状態にである。どのアドレスのヒューズがショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図22のようなランダムな市松パターンを作ることができる。
ビューズが破壊されたかどうかは、ヒューズ抵抗985に読み出し電圧を印加して判定する。ショートした素子では、読み出し電圧を印加しても電流が流れずらく、たとえばメモリの“0”に相当する。ショートしなかった素子では、読み出し電圧が低くても電流が流れやすく、たとえばメモリの“1”に相当する。このようなヒューズのショートは、導電体の破壊と同じであり、たとえば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“0”に相当し、発生しなかった素子はメモリの“1”に相当する。
図51は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのためにヒューズ抵抗985に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてヒューズ抵抗985を通して流れる電流の絶対値である。ショートしなかった素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧742における非ショート判定電流値743とショート判定電流値744を設定する。すなわち、絶対値がショート判定電圧742に一致する読み出し電圧をヒューズ抵抗985に印加したときにヒューズ抵抗985を通して流れる電流の絶対値が、非ショート判定電流値743より高ければ、ショートしていないと判定し、ショート判定電流値744より低ければショートしていると判定する。
図51の判定方法には、非ショート定電流値743とショート判定電流値744の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は、ショートが発生したとも発生しなかったとも判定されない。このような素子は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、素子のセルアレイ上のアドレス(番地)と、対応する素子のデータの一例を示すと、認証素子977がキャパシタ982の場合と同様に、図39のようになる。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”、…、“0”となっている。このように、五番目の素子のデータが“X”になっている。ここで、“X”を取り除き、図22のような白黒のみの市松模様を得る方法は、キャパシタ982の場合と同様なので、ここでの説明は省略する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図51で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、図23に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図52は、ヒューズ抵抗985の一例を示す図である。第一導電体1053、第二導電体1052、絶縁膜910、導電体接合部970からなる素子構造である。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線503あるいはビット線902のどちらか一方に接続し、他方は第二電極1054に接続する。導電体接合部970の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ50%になるように調整することが望ましい。
一般に、電気的ストレスによって導電体接合部970の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部970は断線する。更に高温のため酸化が進み、断線箇所には酸化膜の一部が入り込む。こうして、非ショート状態からショート状態に遷移する。
更に電気的ストレスを印加し続けると、断線箇所の酸化膜が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。その中間状態が“X”である。したがって、電気的ストレスを繰り返すうちに“X”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図51で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図51の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図51の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
一方、物理的乱雑さを最大限に利用するには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。“X”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“0”に遷移すので、図40のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“1”の数が多くても複数回パルス印加するうちに“0”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合をほぼ50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。

(第十一の実施形態)
図53は、図50に採用されるヒューズ抵抗985の別の一例である。これは、配線パターン作成時に一緒に作成する。したがって、導電体930は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図53のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。ワード線コンタクト504はワード線503に接続し、ビット線コンタクト505はビット線902に接続する。図54は、このような認証素子977を用いたレイアウトの一例である。
また、図53の矩形に曲がった部分は通常のメタル配線より細いことが望ましい。たとえば、図55に示すように、矩形部分以外のところをレジストでマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。図56は、一例として、その結果を示したものである。

(第十二の実施形態)
導電体930は、複数回矩形に曲げることも可能である。図57は、その一例であり、9箇所矩形に曲がっている。図58は、このようなパターンをレイアウトした一例である。こうして、ショートの確率を配線パターニングで調節することが可能である。

(第十三の実施形態)
図52の構造は、たとえば、第一導電体1053の側から絶縁膜910を通してビアを開け、そこに導電体材料を埋め込んで作成できる。ここで一例として、ビア深さの狙い値を第一導電体1053と第二導電体1052の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図60の中央の素子のように、ビアが第一の導電体1053と第二の導電体1052の間にぴたりと収まる。
しかしながら、一般には、図61に示すように、ビアのアスペクト比や穴径には製造上のばらつきがあり、ビア深さもばらつく。こうして、ある素子では断線(ショート)し、またある素子は接続する。たとえば、この図60の例では、左から非ショート、接続、接続である。
ワード線503とビット線902で選択した認証素子977のビアがショートしていれば電流は流れず、たとえばメモリセルに対応させると“0”状態となる。反対に、ショートしていなければ電流が流れ、たとえばメモリセルに対応させると“1”状態となる。 “0”を白、“1”を黒とみなすと、図22のようなランダムな白黒のパターンが生成される。
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図22のような白黒のランダムな市松パターンを得ることができる。
しかしながら、メタルビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。たとえば、ショートしている場合(たとえば、図60の左端のセル)、電気的ストレスを繰り返すうちビア底と第二導電体1052の間の絶縁膜(910の一部)が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合(たとえば、図60の中央)、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“1”が優勢の場合、“1”の素子のみ選択してストレスを印加し、反対に、データ“0”が優勢の場合、“0”の素子のみ選択してストレスを印加する。こうして、“1”と“0”の割合を検査しながら、所望の割合に近づくまで、このようなストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子郡に繰り返し印加するストレスパルスは、たとえば、図40のようなものを使うことができる。
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図51で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、図23に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。

(第十四の実施形態)
本発明に関するチップ認証装置は、たとえば、図62のように、少なくともチップ認証モジュール60および入出力制御モジュール800を、チップ10に搭載することができる。この入出力制御モジュール800は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。

(第十五の実施形態)
本発明に関するチップ認証装置は、たとえば、図63のように、少なくともチップ認証モジュール600と、認証装置用制御モジュール880と、入出力制御モジュール810と、スクランブル装置モジュール890と、及び中間コード用バッファーモジュール900とを、チップ400に搭載することができる。この入出力制御モジュール810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、(第十四の実施形態)の入出力制御回路800とは異なり、ワード線制御回路及びビット線制御回を含まない。スクランブル装置モジュール890は、図28のスクランブル装置604を含み、スクランブル装置604が生成する中間コードは、入出力制御モジュール810とは独立した中間コード用バッファーモジュール900に格納され、外部からの要請があってもデータをチップ400の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御モジュール880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
外部入出力50から入力コード{a(i),b(j)}が入力されると、入出力制御モジュール810が、入力コード{a(i),b(j)}をスクランブル装置モジュール890に渡す。ここで、式2に基づいて生成された中間コード{a(i),f(j)}、あるいは、中間出力{f(j)}は、中間コード用バッファーモジュール900に一時格納され、認証装置用制御モジュール880に引き渡される。認証装置用制御モジュール880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーを駆使して、チップ認証モジュール600から、中間コード{a(i),f(j)}に応じ、式3に基づいて出力コード{c(i,j)}を読み出し、内部のデータバッファーに一時格納する。認証装置用制御モジュール880は、内部のデータバッファーから出力コード{c(i,j)}を呼び出し入出力モジュール810に引き渡す。入出力モジュール810は、外部入出力50を通じて出力コード{c(i,j)}をチップ400の外に出力する。こうして、中間出力{f(j)}をチップ内に閉じ込めることが可能となる。

(第十六の実施形態)
一般に、電子装置を構成するチップは一つとは限らない。図14のネットワークの一例を構成する第一、第二、…、第五の周辺装置も、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図64では、周辺装置140が、第一のチップ110、第二のチップ120、…、第Nのチップ130から構成される。このうち、必ずしもすべてのチップがチップ認証装置を搭載している必要はない。図64の例では、第一のチップ110のみがチップ認証装置60、および、図62と図63で説明したチップ認証のための関連モジュールを搭載している。

(第十七の実施形態)
上述したように、チップ認証装置の“0”と“1”の割合は、ほぼ50%とすることが望ましい。これは、シャノンのエントロピーの考え方にしたがって、物理的乱雑さのエントロピーを可能な限り最大に近づけるためである。
“0”と“1”の割合の調整は、上述したように、電気的ストレスの印加の仕方によってある程度調整できる。目標値50%に対して、たとえば、ずれを10%程度とするのが望ましいが、ずれを10%以内にできなくても、本発明を利用することは可能である。その場合、物理的乱雑さのエントロピーを増大させるため、要素数、すなわち、チップ認証装置を構成する認証素子の数を増やせば良い。目標値50%(誤差±10%)は、チップ認証装置の占めるチップ面積を節約するための要請に過ぎず、不可欠な条件ではない。上述したように、N=K=128でも十分であろう。
上述した方法によって、この物理的乱雑さのエントロピーは、シリコンダイ単位で最大に近づけるすることも可能であるし、ウェハー単位で最大に近づけることも可能であるし、Lot単位で最大に近づけることも可能であるし、ライン単位で最大に近づけることも可能であるし、工場単位で最大に近づけることも可能である。
シリコンダイ単位でエントロピーを最大に近づける場合、チップ認証装置内の複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
ウェハー単位でエントロピーを最大に近づける場合、ウェハー内の複数のチップにまたがって複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
Lot単位でエントロピーを最大に近づける場合、Lot内の複数のウェハーおよび複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
ライン単位でエントロピーを最大に近づける場合、ライン内の複数のLot、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
工場単位でエントロピーを最大に近づける場合、工場内の複数のライン、複数のLot、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
上述のように、認証素子をサンプリングする実体は、チップ、ウェハー、Lot、ライン、工場と、生産管理の都合上便宜拡大することが可能である。拡大の仕方は、特定のラインの製造期間を区切って行ってもよく、特定の工場の製造期間を区切って行ってもよい。ここでは、必ずしも、全認証素子を検索する必要はない。

(第十八の実施形態)
物理的乱雑さの発生源は複数あって構わない。ただし、一つの認証素子内に存在する発生源は互いに直列の関係にあり、複数の認証素子にまたがって存在する発生源はお互い並列の関係にある。
したがって、一つの認証素子内に2つの発生源がある場合、どちらか一方が非導電状態にある場合、認証素子そのものが非導電状態となる。それ以外(どちらも導電状態)の場合のみ、認証素子は導電状態である。すなわち、論理回路で言えば、一つの認証素子に含まれる発生源は否定論理和(NOR)の関係を満たす。

(第十九の実施形態)
図34の例では、入力コードの桁数がNであるのに対し、出力コードの桁数がNの2乗となっている。入力コードと出力コードの桁数をそろえるのは簡単である。たとえば、次の式4を用いて、図34での出力{c(i,j)}を更に新しい出力{c’(j)}に変化する。
Figure 2017028354
ただし、jは1からNまでの自然数である。図65では、式4で変換された新しい出力{c’(j)}を出力する様子を示している。入力コードと出力コードの桁数をそろえなくて良い場合には省略できる。

(第二十の実施形態)
図53、図54、図56、及び、図57の導電体細線は、製造および加工条件により、電気的パルスで破壊する以前から断線、もしくは、異常に抵抗の高いことがある。この断線もしくは異常高抵抗の状態は、たとえばメモリの“0”状態に相当し、製造および加工条件により確率的に発生し、物理的乱雑さを反映していると考えられる。この場合、電気的パルスを印加する必要はない。また、図53は、本実施形態の一例に過ぎず、導電体930は、矩形に曲がっている必要もない。
上記一連の実施形態では、認証素子977のアドレスの指定の仕方は、認証素子の二つの端子に、それぞれワード線503とビット線902を接続するものである。認証素子977に印加する電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。認証素子977を流れる電流は、それぞれ選択するワード線503及びビット線902の間を流れる。

(第二十一の実施形態)
アドレスの別の一例として、図66に図示するように、認証素子977は、少なくとも第一の端子994および第二の端子993を有する。第一の端子994は、ビット線902に接続する第二の制御ゲート997、及び、ワード線503に接続する第一の制御ゲート996を通して、制御電極990に接続する。アドレスの指定は、ビット線902とワード線503で行う。第二の端子993は、接地している。読み出し電圧や素子破壊のためのストレス電圧は、制御電極990に印加される。こうして、選択されたアドレスの素子にのみ、読み出し電圧および破壊のためのストレス電圧が印加される。ストレス電圧の一例は、図40の通りである。導通状態であれば、電流は、ワード線503およびビット線902で選択された制御電極990を流れる。

(第二十二の実施形態)
近年、廃棄家電の不法投棄が世界的な問題になっている。(たとえば、非特許文献2参照。)。
http://www6.nhk.or.jp/wdoc/backnumber/detail/?pid=150624 報道によれば、リサイクル制度が施行されている欧州でも3分の2が不正ルートを経由し、アジアやアフリカで違法に処理されている。特に中国では、ボードから強引に引きちぎったICチップのパッケージ上のラベルを張替え、格安の新品として市場で売りさばかれている。不正廃棄した先進国にも輸出され還流されていると考えられる。ボードから引きちぎるとき、物理的・熱的に損傷を受けたICチップは、正常に機能せず、多くの家電製品の故障や不具合の原因になる。一部のICチップの用途は、家電製品のみに留まらない。特に、DRAMやフラッシュメモリなど、汎用メモリIC製品は用途が広く、偽造チップが高速列車や航空機の制御系などに部品として使われた場合、大惨事を招く恐れがあるため注意が必要である。
図67は、チップ偽造の手口を簡単に示すものである。たとえば、廃棄家電のボードに、A社の汎用メモリチップが採用されている。このチップを強引に剥ぎ取り、B社のラベルを張り、B社の新品チップとして格安で販売、輸出する。もちろん、これは偽造品である。残念ながら、不法リサイクルそのものを直ぐに解決する方法はない。有効な対策は、仕入れたICチップ製品が偽造品でないかどうか、工場の組み立て現場ですばやく判定する方法である。幸い、本願のチップ認証装置は、チップ内のIC回路そのものに認証をつけることが可能である。
偽造検査方法を図68を使って説明する。ここでは、チップメーカー毎に偽造判定用パスコードを公開する。組立工場の仕入れ担当では、各社の公開パスコードを、仕入れたチップに入力し、それぞれ出力コードを読み取る。その出力コードが各チップメーカーに正しいかどうか問い合わせる。説明を簡単にするため、ここでは、全てのチップメーカーから返答があると仮定する。図67で偽造されたチップであれば、A社とB社から自社の製品であると返事が来る。このように2社以上から自社の製品であると回答された場合、偽造チップと判定する。また、A社から自社のチップであると返答された場合も、B社のラベルが付いているので偽造品と判定される。C社から自社製品であると返答された場合、やはり、B社のラベルが付いているので偽造されたものと判定される。いずれの場合も、B社は偽造品を販売するメーカーとして、組立工場の仕入れ担当に知られることになる。B社のみから自社製品であると返答された場合は、図67で偽造されたものではなく、B社の製品である。
ラベルには、メーカー名以外にも、製品番号、Lot番号等の製品情報が示されている。ラベルが示すメーカー名と、出力コードによって判明するメーカー名が一致しても、ラベルの製品番号やLot番号に示された情報が異なることがある。これは、メーカー内部の不正による偽造か、当該メーカーの製品管理がずさんであることを示す。
以上により、偽造判定の条件をまとめる。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が異なる場合、偽造と判定する。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が等しい場合、更に、ラベルに示されるその他の情報(たとえば、製品番号、Lot番号、製造年月日等)を、当該出力コードに対応して照会する。ここで一致したとき初めて偽造ではないと判定する。一致しなかった場合、メーカー内部での偽造か、当該メーカーの製品管理がずさんであると判断される。
上述した実施形態において、説明のために用いら入れたMOSFETは、MOS型トランジスタのことである。一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型の拡散層と、第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極に接続するゲート端子と、一方の第二導電型拡散層に接続するソース端子と、他方の第二導電型拡散層に接続するドレイン端子と、から構成される。また、前記第一導電型半導体基板、前記ゲート絶縁膜、および、前記ゲート電極は、MOSキャパシタを構成している。
上述した実施形態において、説明のために用いら入れた不揮発性メモリトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。NOR型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、NAND型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、NAND型配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
上述した実施形態において、説明のために用いら入れたPN接合は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、MOS型トランジスタや不揮発性メモリトランジスタにも自動的に形成されている。
上述した実施形態において、説明のために用いら入れたショットキー接合は、半導体と導電体を接触させたものである。PN接合も、ショットキー接合も、ダイオード接合の一種である。
上記において、MOS型トランジスタ、不揮発性メモリトランジスタ、及びPN接合の構造を説明するために用いた、第一導電型半導体基板は、第一および第二導電型半導体基板の広い領域に作成された、第一導電型拡散層(通常ウェル)で置き換えることも可能である。
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
この発明によれば、電子装置のネットワークを、周辺装置と、周辺装置の登録状況を管理する基幹サーバーとに分割し、基幹サーバーは中央管理とし、中央管理の手が行き届かない周辺装置には、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、システム全体のセキュリティを向上し、周辺装置への遠隔攻撃を効率よく未然に防ぐことが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置間のものであり、特定のシステムの内か外かに関わらない。また、偽造チップ問題に対する対策も、同じ認証素子によるチップ認証装置で実現できる。
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のSIMカードのようなものがIoT/IoE用の周辺装置に用いられるようなビジネスモデルに有効である。
中央管理の行き届かない周辺装置を無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
従来の認証システムを搭載したチップの一例を示す図。 本発明のチップ認証装置を搭載したチップの一例を示す図。 本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。 外部I/Oを介して信号をやり取りする交信の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む装置を、本発明のチップ認証装置と接続する装置に登録する方法の一例を示す図。 正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。 遠隔攻撃者が、不正にネットワークに接続する方法の一例を示す図。 遠隔攻撃者が、正規の装置の装置を攻撃する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺装置を、基幹サーバーに接続する方法の一例を示す図。 基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。 基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。 本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。 複数の基幹サーバーと、本発明のチップ認証装置を搭載したチップを含む複数の周辺装置からなるネットワークの一例を示す図。 複数の基幹サーバーが一つの周辺装置に接続する一例を示す図。 本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。 本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。 本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。 入力コードと登録コードの対応表の一例を示す図。 周辺装置の正当性を検査するための作業工程の一例を示す図。 市松状に割り振られたデータの一例を示す図。 認証素子のレイアウトの一例を示図。 N行N列の市松状に並べられた認証素子のレイアウトの一例を示す図。 N行N列の市松状に並べられた認証素子に入力コードを入力する方法の一例を示す図。 入力コード、物理乱数配列、出力コードの関係の一例を示す図。 チップ認証装置の利用法の一例を示すための基本構成を示した概念図。 スクランブル装置を加えた実施形態の概念を示す図。 スクランブル装置の基本構成を示す図。 スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 スクランブル装置の動作原理を説明する図。 スクランブル装置の動作原理を説明する図。 チップ認証装置の動作原理を説明する図。 スクランブル装置およびチップ認証装置の動作原理を説明する図。 スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。 スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。 認証素子の一例を示す図。 認証素子の読み出し方法の一例を説明するための図。 認証素子のエラー補正方法の一例を説明する図。 認証素子を破壊する方法の一例を説明する図。 認証素子の構造の一例を示す図。 認証素子の一例を示す図。 認証素子の一例を示す図。 認証素子の一例を示す図。 認証素子の一例を示す図。 認証素子の一例を示す図。 周辺回路の一部を含む認証装置の素子配列を示す図。 認証素子のデータ読み出し方法の一例を説明する図。 認証素子のデータ読み出し方法の一例を説明する図。 認証素子の一例を示す図。 認証素子の読み出し方法の一例を説明するための図。 認証素子の構造の一例を示す図。 認証素子の構造の一例を示す図。 認証素子の配列構造の一例を示す図。 認証素子の製造方法の一例を示す図。 認証素子の製造方法の一例を示す図。 認証素子の構造の一例を示す図。 認証素子の配列構造の一例を示す図。 認証素子の一例を示す図。 物理的乱雑さの起源の一例を示す図。 物理的乱雑さの起源の一例を示す図。 チップ認証装置を含む半導体チップの一例を示す図。 スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。 チップ認証装置を含むチップを搭載した周辺装置の一例を示す図。 出力コードの加工をする一例を示す図。 認証素子のアドレスを指定する配線の一例を示す図。 偽造チップ作成方法の概念を示す図。 偽造チップ防止方法の概念を示す図。
1、10、100、400 チップ
2 ファームウェア
3 認証制御デバイス
4 認証コード(ID)
5、50 外部入出力装置(I/O)
6 認証システム(従来例の一例)
11 第一の認証
12 第二の認証
13 第三の認証
21 第一のチップ認証装置
22 第二のチップ認証装置
31 入力信号誤差
32 出力信号誤差
42、102、402 入力コード
43 登録コード
60、600 チップ認証装置
61 チップ認証装置搭載チップ
71 第一の装置
72 第二の装置
73 第三の装置
74 第四の装置
75 第五の装置
80 交信シリーズ
83 偽交信シリーズ
92 第二の装置の正規使用者
93 遠隔攻撃者
110 第一のチップ
120 第二のチップ
130 第Nのチップ
140 周辺装置
202、403 登録コード
302、401 内部メモリ
400 基幹サーバー
410 第一の周辺装置
420 第二の周辺装置
430 第三の周辺装置
440 第四の周辺装置
450 第五の周辺装置
503 ワード線
504 ワード線コンタクト
505 ビット線コンタクト
530 導電体ビア
601、605 乱数発生装置
602、606 コード発生装置
604 スクランブル装置
611 チップ認証用セルアレイ(素子領域)
614 スクランブル装置セルアレイ
742 ショート判定電圧
743 非ショート判定電流値
744 ショート判定電流値
790 ページバッファ回路
791 ビット線接続ゲート
7910 ビット線接続トランジスタ
800、810 入出力制御モジュール
880 認証装置用制御モジュール
890 スクランブル装置モジュール
900 中間コード用バッファーモジュール
902 ビット線
910 絶縁膜
930 導電体
931 レジスト
932 破壊判定電圧
933 破壊判定電流値
934 非破壊判定電流値
960 チップ認証用素子アレイの等価回路
970 導電体接合部
971 入出力ピン
972 行デコーダー
973 列デコーダー
977 認証素子
980 外部入出力制御回路
982 キャパシタ
983 トランジスタ
984 不揮発性メモリトランジスタ
985 ヒューズ抵抗
986 PN接合(ダイオード)
987 ショットキー接合(ダイオード)
990 制御電極
993 第二の端子
994 第一の端子
996 第一の制御ゲート
997 第二の制御ゲート
1051 導電体先端部
1052 第二導電体
1053 第一導電体
1054 第二電極
1055 第一電極
1400 第一の基幹サーバー
1410 第一の共通パスコード
1411 別の共通パスコード(図示せず)
2400 第二の基幹サーバー
2410 第二の共通パスコード
3400 第三の基幹サーバー
3410 第三の共通パスコード
4101 第一の認証
4201 第二の認証
4301 第三の認証
4302 第四の認証
4402 第五の認証
4502 第六の認証
9330、9331 破壊判定電圧値
9340、9341 非破壊判定電圧値
9811 ドレイン選択トランジスタ(SGD)
9812 ソース選択トランジスタ(SGS)

本発明は、電子装置間通信およびネットワークに用いる物理的チップ認証方式に関する。
21世紀に入り情報通信産業は飛躍的な進歩を遂げ、近年は更なる巨大マーケットを創出しつつある。情報端末のみならず、家電、家、車などすべてのモノがネットワークに接続するインターネット・オブ・シングス(Internet of Things, IoT)は既存のどの市場にも属さず、IoTの更に先を行くインターネット・オブ・エブリシング(Internet of Everything, IoE)にいたっては社会基盤そのものを変革する可能性を秘めている。
技術的には、ネットに接続する最小単位(ノード)である半導体チップと半導体チップの間の通信技術として捕らえることができるが、その数が数兆個から数十兆個にまで上る点(Trillion Nodes)でこれまでのネットワーク技術と異なる。世界人口を70億人とすると、一人当たり数百から約千個程度のチップに囲まれている計算になる。これらのチップは個人情報のみならず、個人の周辺にある機器の動作を制御するシステムも含んでいる。すべての個人がこれらすべてを常時きめ細かく管理することは現実的に不可能である。また、訓練を受けた専門家が中央管理するにしても数兆個ものノードを同時に管理するための計算機リソースは地球上に存在しない。仮に将来開発されたとしても、誰が責任を持ってその管理システムを扱うべきかは難しい問題となる。一民間企業が勝手に行なうのは好ましくない。人間の能力を超える人工知能に任せることも現状では良いとは言えないし、現実的でもない。
管理できないとしたら何が問題になるか?大容量のLiイオン電池を搭載した自動運転車がハッキングされたらどうなるかを考えると理解しやすい。遠隔操作された多数の自動運転車が攻撃対象(ショッピングセンター、大規模な地下駐車場、ターミナル駅、…)まで無人で移動する。大量のLiイオン電池が一箇所にあつまり、パワーシステムが乗っ取られている。パワー制御システムに何らかの破壊的誤動作を意図的に加え、Liイオン電池を大爆発させることが可能となるかもしれない。ある日突然ショッピングセンターの駐車場が大爆発を起こしたり、あるいは、列車運行制御システムを乗っ取り新幹線を正面衝突させたり、原子炉や航空管制システムを乗っ取られる危険と背中合わせになる。
このような重要施設のネットワークは通常のインターネットからは非常に強力なファイアウォールで隔離されている(或いは物理的に隔離されている)から大丈夫だと考えるのは早計である。現実にイランの核施設はStuxnetと呼ばれるマルウェアによる攻撃を受け、深刻な被害を被った(例えば、非特許文献1参照)。
Stuxnetの感染経路は諸説あるが、もっとも有力なのはモバイル端末かUSBメモリだと言われている。Stuxnetは一度インターネットに解き放たれると何ヶ月もかけてターゲットのシステムに侵入するチャンスを伺う。途中強力なファイアウォールがあってもUSBメモリやモバイル端末に侵入してファイアウォール内で接続されるまで待つ。接続された後はバックドアを開き、遠心分離器のPLC(programmable logic controller)を乗っ取り、遠隔操作を開始する。こうして、イランの核施設の1000台もの遠心分離器が急激な加速と減速を繰り返し破壊された。物理的に孤立したシステム内ならStuxnet自身が遠心分離器を破壊させる。
イランの核施設で破壊された遠心分離器は通常のネットワークからは遮断されていたが、メンテナンスのため機器の製造装置メーカーが持ち込むモバイル端末と定期的に接続する必要があった。もし通常のネットワークとつながっていればこのような作業は必要ないが、遮断されているために返って必要な手順となる。また、Stuxnetはターゲット以外に感染しても潜んでいるだけで何もしない。したがって、ウィルス対策ソフトで検知することは難しい。
Stuxnetによる攻撃は、イランの核開発を遅らせイスラエルによるイランへの空爆を防ぐために行われたとも考えられている。一度手口が判明すれば対策は可能と思われるかも知れない。しかしながら、恐ろしいことはStuxnetのソースコードがハッカーによって盗まれ、既に流出していることである。2014年に入り、Stuxnetに良く似た性質を持つ新種のウィルスが報告されている(例えば、非特許文献2参照)。
BadUSBと呼ばれるこのウィルスは、産業機器の制御プログラムであるPLCの代わりにUSB機器を制御するファームウェアを乗っ取る。USB機器は何かに接続して使用するものであり、そのための認証を内包している。この認証はファームウェアに含まれる。ファームウェアはUSB機器の制御チップに保存されておりチップを制御するためのプログラムである。BadUSBはこの認証を盗み、このUSB機器が接続しているものには何もしない。例えば、パソコンには感染しないが、パソコンを操作するために接続しているマウスやキーボードを乗っ取ることができる。このようにして地球の裏側にいるハッカーが他人のコンピューターを遠隔操作することができる。このとき、コンピュータには感染していないので、コンピュータのウィルス対策ソフトはほとんど何も検知できない。
IoT/IoEでは通信の最小単位(ノード)は機器の制御チップである。制御チップには制御プログラム(ファームウェア)が保存される。このファームウェアはそれぞれのチップを認識するために認証コードを内包する。上述した自動運転車を遠隔操作する新たな攻撃は、この認証コードを盗み自動運転車を遠隔操作する点でBadUSBやStuxnetと類似している。
今後9・11のような同時多発テロは遠隔操作により少数のハッカーグループによって引き起こされる可能性がある。このような新たな脅威は、従来のテロ対策やサイバーセキュリティ技術では防げない。
http://www.nikkei.com/article/DGXNASFK2602G_W2A221C1000000/ http://www.nikkei.com/article/DGXMZO79858560Y4A111C1000000/ http://www6.nhk.or.jp/wdoc/backnumber/detail/?pID=150624
サイバーセキュリティ技術はソフトウェアによる中央管理が主流である。セキュリティ技術に関する理解は人によりばらつきが多く、すべてのエンドユーザーに専門的な運用管理を正しく行わせることはほとんど不可能だろう。999人が適正に運用していてもたった一人が適正に運用していなければセキュリティは脆弱になる。こうして、ネットワークを介したシステムのセキュリティは、十分訓練された管理者が十分信頼性の高いソフトウェアを使い中央管理することが望ましいとされている。中央管理はつまるところ、ネットワークを介したソフトウェアによる管理である。
しかしながら、上述したように、IoT/IoEのビジネスモデルではノード数は数兆個にもなり、そもそも中央管理が難しい。その上、ネットワークに接続したノードのうちたった一つでも認証コードを乗っ取られればシステム全体(例えば、自動運転車、航空管制システムなど)が脆弱になる。認証コードを使うのは、ネットワークが主にソフトウェアで制御されているからである。これが中央管理によるセキュリティの本質的限界である。
本発明は上記事情を鑑みて成されたものであり、ソフトウェアによらない、ノードの局所的認証管理を提供することを目的とする。本発明は、上記課題を解決するため、以下の手段を採用する。本発明に関わるチップ認証方式を用いる電子装置のネットワークユニットは、一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストの要素は、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記複数の周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群および第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個の前記ワード線及び一つ又は数個の前記ビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する。
本発明に関わるチップ認証方式を用いる電子装置のネットワークは、一つの第一ネットワークユニットと複数の第二ネットワークユニットを含む複数の電子装置のネットワークユニットを含み、前記第一ネットワークユニットはトポロジーにより少なくとも一つの第二ネットワークユニットに接続し、前記複数のネットワークユニットが、それぞれ一つの基幹サーバーと、前記基幹サーバーに接続する複数の周辺装置を含み、第一ネットワークユニットにおいて、前記基幹サーバーは、少なくとも一つのパスコードと、前記少なくとも一つのパスコードそれぞれに対応する登録コードのリストを保持し、前記登録コードのリストの要素は、それぞれ前記基幹サーバーに接続する個々の周辺装置に対応し、前記基幹サーバーは、ネットワークを介して前記パスコードを前記周辺装置の各々に送信し、第一ネットワークユニットにおいて、前記複数の周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、第一ネットワークユニットにおいて、前記パスコードは、各前記複数の周辺装置内で入力コードに変換され、第一ネットワークユニットにおいて、前記入力コードは、前記チップ認証装置を搭載するチップ内で、複数のワード線および複数のビット線に割り当てられる電子的信号のデータの集合体であり、第一ネットワークユニットにおいて、前記チップ上に割り当てられるアドレスは、複数のワード線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のワード線群と、複数のビット線におけるそれぞれ異なる番号を割り当てられた一つ又は数個のビット線群と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の中の一方の番号で定義され、前記アドレスの列番号は、前記チップ上にレイアウトされる前記一つ又は数個のワード線群および前記一つ又は数個のビット線群の他方の番号で定義され、第一ネットワークユニットにおいて、前記チップ認証装置は、前記一つ又は数個のビット線群および前記一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、第一の行群および第一の列群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子からなる第一の乱数発生装置を含み、第一ネットワークユニットにおいて、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、第一ネットワークユニットにおいて、前記チップ上にレイアウトされる一つ又は数個の前記ワード線及び一つ又は数個の前記ビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、第一ネットワークユニットにおいて、前記第一の乱数発生装置は第一の乱数コードを発生し、前記第一の乱数コードは、第一の行群および第一の列群が定義するアドレスに配置される前記認証素子が電子的に出力する電子データの集合体であり、第一ネットワークユニットにおいて、前記出力コードは、前記入力コードと前記第一の乱数コードとを所定の方法で合成して出力する電子信号の集合であり、第一ネットワークユニットにおいて、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、第一ネットワークユニットにおいて、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価することを特徴とする。
本発明に関わるチップ認証方式を用いるチップ認証装置の利用方法は、半導体製造工程で大量生産されるチップと、前記チップを製造する、第一のチップメーカーと、前記チップを用いて製品を組み立てるチップユーザーとが、共同に執行するチップ認証装置の利用方法であって、前記チップに、前記第一のチップメーカーが公開する第一の公開パスコードを入力し、第一の出力コードを出力として獲得し、前記第一のチップメーカーが第一のリストを管理し、前記第一のリストは第一の公開パスコード及び第一の公開パスコードに対応する前記第一の出力コードを記録する段階と、前記チップの表面のラベルにメーカー名が記載された第二のチップメーカーが公開する第二の公開パスコードを前記チップに入力し、第二の出力コードを出力として獲得し、前記第二のチップメーカーが第二のリストを管理し、前記第二のリストは第二の公開パスコード及び第二の公開パスコードに対応する第二の出力コードを記録する段階とを含み、前記チップユーザーが前記チップに第一の公開パスコードを入力し、電子的に出力する電子データの集合を読み取り、前記電子データの集合は読み取りコードとして前記チップユーザーが入力する前記第一の公開パスコードに対応し、前記第一のチップメーカーに、前記読み取りコードを送信し、前記第一の出力コードと前記読み取りコードの比較を依頼し、前記第一の出力コードと前記読み取りコードが一致した場合、前記チップを偽造品と判定し、前記チップは、それぞれ固有のチップ認証装置を含み、前記チップ認証装置は、前記チップ上にレイアウトされる、複数のビット線の中の一つ又は数個のビット線群および複数のワード線の中の一つ又は数個のワード線群が構成する素子領域に配置される複数の認証素子を含み、前記素子領域において、前記一つ又は数個のワード線群及び前記一つ又は数個のビット線群が定義するアドレスに配置される前記複数の認証素子の中の一部の認証素子を含む物理的乱数発生装置を含み、前記認証素子は、前記半導体製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされる一つ又は数個のワード線群及び一つ又は数個のビット線群に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記物理的乱数発生装置は、前記認証素子が、電子的入力に対応して電子的に出力する電子データの集合体として、乱数コードを発生し、前記第一の出力コードは、前記第一の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であることを特徴とする。
本発明によれば、新しいチップ認証方式を提供し、認証コードを盗むことによる制御チップ乗っ取りの危険性を低減することが可能となる。
図1は、従来の認証システムを搭載したチップの一例を示す図。 図2は、本発明のチップ認証装置を搭載したチップの一例を示す図。 図3は、本発明のチップ認証装置を搭載したチップを含む装置の接続方法の一例を示す図。 図4は、外部I/Oを介して信号をやり取りする交信の一例を示す図。 図5は、本発明のチップ認証装置を搭載したチップを含む装置を、本発明のチップ認証装置と接続する装置に登録する方法の一例を示す図。 図6は、正規の使用者が、本発明のチップ認証装置を搭載したチップを含む装置を、ネットワーク上で使用する方法の一例を示す図。 図7は、遠隔攻撃者が、不正にネットワークに接続する方法の一例を示す図。 図8は、遠隔攻撃者が、正規の装置を攻撃する方法の一例を示す図。 図9は、本発明のチップ認証装置を搭載したチップを含む周辺装置を、基幹サーバーに接続する方法の一例を示す図。 図10は、基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。 図11は、本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。 図12は、基幹サーバーから、本発明のチップ認証装置を搭載したチップを含む周辺装置に共通パスコードを送信する方法の一例を示す図。 図13は、本発明のチップ認証装置を搭載したチップを含む周辺装置から、認証コードを、基幹サーバーに送信する方法の一例を示す図。 図14は、第一ネットワークユニットと第二ネットワークユニットに分割される複数の基幹サーバーと、本発明のチップ認証装置を搭載したチップを含む複数の周辺装置からなるネットワークの一例を示す図。前記第一ネットワークユニットはトポロジーにより第二ネットワークユニットに接続し、前記トポロジーは前記第一ネットワークユニットの基幹サーバーと第二ネットワークユニットの基幹サーバーとを含み、前記第一ネットワークユニットの基幹サーバーは前記複数の第二ネットワークユニットの基幹サーバーの中の一つに接続する 図15は、トポロジーの一例を示す図。前記トポロジーは前記第一ネットワークユニットの複数の周辺装置の中の少なくとも一つを含み、前記少なくとも一つの周辺装置はそれぞれ前記複数の第二ネットワークユニットの基幹サーバーの中の一つ又は数個に接続する。 図16は、本発明のチップ認証装置が満たすべき、出力の独立性の一例を示す図。 図17は、本発明のチップ認証装置が満たすべき、入力の独立性の一例を示す図。 図18は、本発明のチップ認証装置が満たすべき、出力信号の予測不可能性の一例を示す図。 図19は、本発明のチップ認証装置が満たすべき、入出力信号の信頼性の一例を示す図。 図20は、入力コードと登録コードの対応表の一例を示す図。 図21は、周辺装置の正当性を検査するための作業工程の一例を示す図。 図22は、市松状に割り振られたデータの一例を示す図。 図23は、認証素子のレイアウトの一例を示図。 図24は、N行N列の市松状に並べられた認証素子のレイアウトの一例を示す図。 図25は、N行N列の市松状に並べられた認証素子に入力コードを入力する方法の一例を示す図。 図26は、入力コード、物理乱数配列、出力コードの関係の一例を示す図。 図27は、チップ認証装置の利用法の一例を示すための基本構成を示した概念図。 図28は、スクランブル装置を加えた実施形態の概念を示す図。 図29は、スクランブル装置の基本構成を示す図。 図30は、スクランブル装置とチップ認証装置の両方を有する素子配列の一例を示す図。 図31は、スクランブル装置の動作原理を説明する図。 図32は、スクランブル装置の動作原理を説明する図。 図33は、チップ認証装置の動作原理を説明する図。 図34は、スクランブル装置およびチップ認証装置の動作原理を説明する図。 図35は、スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。 図36は、スクランブル装置及びチップ認証装置を混載するメモリチップの一例を示す図。 図37は、認証素子の一例を示す図。 図38は、認証素子の読み出し方法の一例を説明するための図。 図39は、認証素子のエラー補正方法の一例を説明する図。 図40は、認証素子を破壊する方法の一例を説明する図。 図41は、認証素子の構造の一例を示す図。 図42は、認証素子の一例を示す図。 図43は、認証素子の一例を示す図。 図44は、認証素子の一例を示す図。 図45は、認証素子の一例を示す図。 図46は、認証素子の一例を示す図。 図47は、周辺回路の一部を含む認証装置の素子配列を示す図。 図48は、認証素子のデータ読み出し方法の一例を説明する図。 図49は、認証素子のデータ読み出し方法の一例を説明する図。 図50は、認証素子の一例を示す図。 図51は、認証素子の読み出し方法の一例を説明するための図。 図52は、認証素子の構造の一例を示す図。 図53は、認証素子の構造の一例を示す図。 図54は、認証素子の配列構造の一例を示す図。 図55は、認証素子の製造方法の一例を示す図。 図56は、認証素子の製造方法の一例を示す図。 図57は、認証素子の構造の一例を示す図。 図58は、認証素子の配列構造の一例を示す図。 図59は、認証素子の一例を示す図。 図60は、物理的乱雑さの起源の一例を示す図。 図61は、物理的乱雑さの起源の一例を示す図。 図62は、チップ認証装置を含む半導体チップの一例を示す図。 図63は、スクランブル装置およびチップ認証装置を含む半導体チップの一例を示す図。 図64は、チップ認証装置を含むチップを搭載した周辺装置の一例を示す図。 図65は、出力コードの加工をする一例を示す図。 図66は、認証素子のアドレスを指定する配線の一例を示す図。 図67は、偽造チップ作成方法の概念を示す図。 図68は、偽造チップ防止方法の概念を示す図。 図69は、認証素子の一例を示す図。 図70は、認証素子の一例を示す図。 図71は、認証素子の一例を示す図。
図1は、従来の典型的なチップ制御システムを説明する図面である。チップの機能を具現化する認証制御デバイス3は、ファームウェア2に含まれる認証コード(ID)4を必要に応じて読み出せるようになっている。例えば、チップ1は、外部I/O(5)に応じて認証制御デバイス3が認証コード4を参照し、チップ1が正しい外部装置であることを主張する。ただし、これは主張するだけであって正しいことを証明するものではない。上述したように、この方法では、認証コード(ID)4を盗めば他のチップがチップ1になりかわることが可能だからである。
本発明では、図2に示すように、認証コード(ID)4と認証制御デバイス3からなる認証システム6を、本願のチップ認証装置60に置き換える。チップ認証装置60は外部入出力装置50から受け取るコール(入力信号)に応じて都度出力を発生するものであり、発生された出力信号は物理的乱雑さを利用して生成されるものである。また、入力信号を変えると出力信号も変わるという特徴を有している。
図3のように、このチップ認証装置60を有するチップ10を搭載する第一の装置71が、外部I/O(50)を通して、第二の装置72とデータを交換(交信)する場合を考えよう。
図4のように、第二の装置72は、何らかの形式で接続された第一の装置71を認識するために信号A、信号B、信号C、…を入力コードとして外部I/O(50)を介して第一の装置に搭載されるチップ認証装置60に与える。チップ認証装置60は、それぞれ信号A1、信号B1、信号C1、…を出力コードとして外部I/O(50)を介して第二の装置に返す。ここで、第二の装置は、チップ10を搭載する第一の装置を、「信号Aの入力に対して信号A1の出力を返し、信号Bの入力に対して信号B1の出力を返し、信号Cの入力に対して信号C1の出力を返し、…」という装置であると認識する。交信シリーズは、この場合、(A、B、C、…:A1、B1、C1、…)であらわされる。あるいは、別の場合では、第二の装置72は第一の装置71を「信号Fの入力に対して信号F1の出力を返し、信号Aの入力に対して信号A1の出力を返し、信号Kの入力に対して信号K1の出力を返し、…」と認識する。この場合の交信シリーズは、(F、A、K、…:F1、A1、K1、…)であらわされる。しかしながら、このような交信はすべての可能な入力信号に対して行わなくても良い。入力信号のパターン(入力コード)は無限にあり、特定の装置に対してそのすべてを行うことは不毛である。むしろ入力信号のパターン数が無限にあることは、第二の装置にネット接続しうる装置の数を無制限にすることに有用である。すなわち、第一の装置を第二の装置に最初に接続する際、第二の装置は第一の装置を登録することになる。この登録は、第二の装置の正規の使用者か、或いは、第二の装置の正規の使用者から正規に権限を委譲された者が行うことが望ましい。例えば、図5のように、登録時に任意に選ばれた入力コード102(R、L、A)と、第一の装置から返ってきた出力信号のパターン(R1、L1、A1)を第二の装置の内部メモリ302に保存する。このとき、登録に関わる交信シリーズは(R、L、A:R1、L1、A1)となる。更に具体的には、第二の装置に接続しうる装置は無数にあるので入力コード102はあらかじめ固定することが望ましい。その場合、第一の装置が登録された交信シリーズ(R、L、A:R1、L1、A1)の替わりに(R1、L1、A1)を登録コード202とする。図5の例では、第一の装置71、第四の装置74、第五の装置75、…が、第二の装置に登録されている場合を説明している。例えば、第四の装置は、入力コード(R、L、A)に対して、出力コード(R4、L4、A4)を第二の装置に返す。第五の装置は、入力コード(R、L、A)に対して、出力コード(R5、L5、A5)を第二の装置に返す。
図6の例では、第二の装置の正規の使用者92が、自ら所有する第一の装置を使って第二の装置72を操作する例を説明している。第一の装置と第二の装置は交信シリーズ80を用いて交信(接続)し、連携して第二の装置72の正規の使用者92の目的とする仕事を行う。ここで、第二の装置72の正規の使用者92は、交信シリーズ80にいかなるコミットメントもしない。もしコミットメントをする場合、第二の装置72の管理・使用方法が煩雑になり、IoT/IoEの利便性が大きく損なわれることになる。具体的には、第二の装置が何らかの外部装置とネット接続するとき、まず第二の装置は入力コード102(R、L、A)をこの外部装置に送り、この外部装置から返って来た信号が登録コード202のどれか、(R1、L1、A1)、(R4、L4、A4)、(R5、L5、A5)…に一致するかどうかを確認すればよい。
図7のように、遠隔攻撃者93が、第一の装置71を遠隔攻撃者93が所有する第三の装置73に不正に置き換える場合を考えよう。第三の装置73は、第一の装置71に内蔵されるチップ認証装置60を使用せずにこの交信シリーズ80を完全に模倣しなければならない。これが可能かどうかを見極めればよい。不可能であれば、本発明のチップ認証方式によって、装置の乗っ取りを防ぐことができると判明する。そのための前提条件として、第一の装置71を第三の装置73と不正に置き換えようとする者(遠隔攻撃者93)は、実際に第一の装置71を手に取ることができないとする。これは、IoT/IoEにおいては自然な条件である。すなわち、IoT/IoEにおける乗っ取りは遠隔操作を前提にしているからである。遠隔攻撃者93の目的は、自分が手元に所有する第三の装置73を使って第二の装置72を遠隔操作することである。第一の装置を手元に奪取するためには、第二の装置に正規に接続する第一の装置71が存在する場所に赴き、秘密裏に奪取しなければならない。これは、攻撃をネット上で完結することができないことを意味する。すなわち、第二の装置の使用者に気づかれずに遠隔操作をすることができないのと同義である。第三の装置73と第二の装置72がネット接続されると、第二の装置はネット接続を介して第三の装置73を認識するために入力信号(R、L、A、…)をネット接続を介して第三の装置73に与える。第三の装置が出力信号(R3、L3、A3、…)をネット接続を介して第二の装置に返したとする。こうして、偽交信シリーズ83(R、L、A、…:R3、L3、A3、…)が作成される。すなわち、遠隔攻撃者93は、偽交信シリーズ83を正規の交信シリーズ80、この例の場合、(R、L、A:R1、L1、A1)に完全に一致させなければならない。ここで、入力コード102(R、L、A)と、この入力に対する返信(R3、L3、A3)からなる交信シリーズ(R、L、A:R3、L3、A3)は、偽交信シリーズ83の一例である。(R3、L3、A3)が(R1、L1、A1)と一致すれば、遠隔攻撃者93は第三の装置を第一の装置に置き換えて遠隔攻撃を成功できる。図5の例に従えば、遠隔攻撃者93は、(R3、L3、A3)を、第二の装置72の内部メモリ302に保存されている登録コード202のうちどれか一つと一致させれば良い。
こうして、遠隔攻撃には基本的に二つの方法があることがわかる。第一の方法は、第二の装置の内部メモリ302に保存されている情報から、入力コード102と、少なくとも登録コード202のうちのどれか一つと、を盗み取ることである。例えば、遠隔攻撃者93が登録コード202のうち、(R4、L4、A4)と、入力コード102(R、L、A)とを盗み取ることに成功したとする。このとき、遠隔攻撃者93は、所有する第三の装置73を第四の装置74に置き換えて第二の装置を不正に遠隔操作することができる。同様に、遠隔攻撃者93が登録コード202のうち、(R1、L1、A1)と、入力コード102(R、L、A)を盗み取ることに成功したとする。このとき、遠隔攻撃者93は、所有する第三の装置73を第一の装置71に置き換えて第二の装置を不正に遠隔操作することができる。このような遠隔攻撃からシステムを守るため、システム管理者は第二の装置72の内部メモリ302を厳重に防御しなければならない。このため、内部メモリに入力コードや登録コードを保存する第二の装置72のような装置は、訓練を受けた専門家が常に最新のセキュリティ技術を用いて厳重に保守することが望ましい。このように、第二の装置72はネットワークの中央に置かれ、基幹的な役割を担い、セキュリティ管理者による中央管理下にあると仮定する。こうして、遠隔攻撃の第一の方法はほぼ防がれる。しかしながら、ネットワークに接続する装置が数兆個に上る場合、すべての装置を第二の装置72のように厳重に防御・保守することは現実的に不可能である。これは中央管理の限界を意味している。そこで、遠隔攻撃者93は、第二の装置72に接続する中央管理の行き届かない装置、図5の例では、第一の装置71、第四の装置74、第五の装置75…を遠隔攻撃することになる。これが遠隔攻撃の第二の方法である。しかしながら、第一の装置71は、入力コード102と登録コード202のペア(交信シリーズ80)を、図1の従来例のように、認証コード4として内部メモリに保存しない。第四の装置74、第五の装置75等の、第二の装置に何らかの形式で接続して使用することを目的とするほかの外部装置も同様である。これら外部装置(例えば、図5の例では、第一の装置71、第四の装置74、第五の装置75、…)は、それぞれ相異なるチップ認証装置を搭載するチップを内蔵している。
ここで、図8のように、遠隔攻撃者93が第一の装置71を遠隔攻撃する場合を考えよう。まず、遠隔攻撃者93は、第一の装置71の内部メモリーに不正にアクセスし、登録コード及び入力コードに関する情報(交信シリーズ80)を盗み取ろうとする。しかしながら、第一の装置はそもそもそのような情報を内部メモリーに保存していないので、この攻撃は必ず失敗に終わる。次に、遠隔攻撃者93は、適当に選んだ信号(X、Y、Z)を第一の装置71に入力し、(X1、Y1、Z1)の返信を得る。(X、Y、Z)が、第二の装置72が用いる入力コード102(R、L、A)と異なる場合、返信(X1、Y1、Z1)は登録コード202の(R1、L1、A1)とは異なる。こうして、第二の遠隔攻撃も失敗に終わる。ここで問題なのは、遠隔攻撃者93が適当に選んだ信号セット(X、Y、Z)が、たまたま第二の装置72の内部メモリ302に保存した入力コード102(R、L、A)に一致することである。このような偶然を防ぐため、入力コードの要素数を十分多くし、更に第二の装置72の管理者以外には非公開とすることである。この情報は、第二の装置72の管理者によって厳重に守られるべきである。また、時より変更することが望ましい。この変更を行った場合、第二の装置72に接続する装置の再登録を行うことが必要になる。このような再登録を行う頻度を減らすために、入力コードの要素数は可能な限り多くするように管理することが必要である。このように、入力コードは、パスコードとして振舞う。
この入力コードは、さまざまな周辺装置への認証IDを検査するために共通して使うことが望ましい。この場合、おのおのの周辺装置へのアクセスに個別に必要なものではない。このような事情から、本発明で説明する入力コードを以下“共通パスコード”と呼ぶことにする。こうして、前記基幹サーバーは少なくとも一つの共通パスコードを所有する。
上記第二の装置72が計算機(パソコン等)の場合、これに接続する第一の装置71、第四の装置74、第五の装置75は、計算機に接続して用いられる周辺装置となる。例えば、マウス、キーボード、マイクロホン、などである。上述したとおり、計算機本体は最新のウィルス対策ソフトを使用して管理者が責任を持って管理することが前提となる。本件に関わる発明は、周辺装置(マウス、キーボード、マイクロホン等)の不正な置き換え(乗っ取り)から計算機本体を守ることが目的となる。これによって計算機本体を守ることを目的とするウィルス対策ソフトが守りきれない周辺装置を遠隔攻撃から守ることができる。
上記第二の装置72がネットワークサービスの中心的機能を担う基幹サーバーの場合、これに接続する第一の装置71、第四の装置74、第五の装置75などを、基幹サーバーに対して周辺装置とみなすことができる。図9は、一つの基幹サーバー400に、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430がネット接続する例を示している。例えば、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、このネットワークサービスを利用するエンドユーザーの端末である。例えば、スマートフォン、タブレット、計算機端末、スマート家電のリモコン、自動運転車の操作パネル、あるいはその他ウェアラブル端末等である。上述したとおり、基幹サーバーは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、エンドユーザーの端末(スマートフォン、タブレット、計算機端末、その他ウェアラブル端末等)の置き換え(乗っ取り)から基幹サーバーへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、ネットワーク上に無数に存在する情報端末を作った遠隔攻撃からシステム全体を守ることができる。
上記第二の装置72がクラウドセンシングサービスの中心的機能を担うデータセンターの場合、これに接続する第一の装置71、第四の装置74、第五の装置75は、このデータセンターが必要とするデータを取得するセンサーである。センサーの数は無数であり、広い範囲に設置される。したがって、その一つ一つを中央管理で遠隔攻撃から守ることは現実的に不可能である。このようなセンサーの例は、GPS、ウィルスモニター、温度計、地震計、ソケット型可視光通信デバイス、バイオセンサー、各種スマートメーターなど無数にある。上述したとおり、データセンターは、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使して責任を持って管理することが前提となる。本件に関わる発明は、このようなセンサーの置き換え(乗っ取り)からデータセンターへの不正アクセスを防ぐことが目的となる。これによって、十分に訓練を受けた専門家が最新のセキュリティソフトウェアを駆使しても守りきれない、クラウドセンシングのためのネットワーク上に無数に存在するセンサーを遠隔攻撃から守ることができる。
ここで、本発明の特徴の一つとして、中央管理の行き届かない周辺装置(例えば、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430)は、前記共通パスコードのような入力データや登録コードを保存しないことがあげられる。このように、認証通信のために必要なデータ(たとえは、共通パスコード)を保存する“基幹サーバー”と保存しない“周辺装置”に分けることが特徴となる。同時に、認証通信のために必要なデータ(たとえは、共通パスコード)を保存する“基幹サーバー”は中央管理し、認証通信のために必要なデータ(たとえは、共通パスコードなど)を保存しない“周辺装置”には本発明のチップ認証装置を搭載することを特徴とする。
図10のように、上記共通パスコードは、第一の基幹サーバー1400に少なくとも一つ保存され、周辺装置を認識する際に周辺装置に送られる。例えば、第一の基幹サーバー1400は第一の共通パスコード1410を、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430に送る。これらの周辺装置は、第一の基幹サーバーを「第一の共通パスコード1410を送ってくるもの」として認識する。図11に示すように、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、この第一の共通パスコード1410の入力に対応し、それぞれ、第一の認証4101、第二の認証4201、第三の認証4301を、第一の基幹サーバー1400に返す。第一の基幹サーバー1400は、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430を、「第一の共通パスコード1410に対して、それぞれ第一の認証4101、第二の認証4201、第三の認証4301を返すもの」と認識する。同様に、図12のように、第二の基幹サーバー2400は、第二の共通パスコード2410を、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430に送る。これらの周辺装置は、第二の基幹サーバーを「第二の共通パスコード2410を送ってくるもの」として認識する。図13に示すように、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430は、この第二のパスコード2410の入力に対応し、それぞれ、第四の認証4102、第五の認証4202、第六の認証4302を、第二の基幹サーバー2400に返す。第二の基幹サーバー2400は、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430を、「第二の共通パスコード2410に対して、それぞれ第四の認証4102、第五の認証4202、第六の認証4302を返すもの」と認識する。言うまでも無く、第一の共通パスコード1410と第二の共通パスコード2410は異なる。第一の認証4101、第二の認証4201、第三の認証4301、第四の認証4102、第五の認証4202、第六の認証4302のうちどの二つの認証も同じではない。また、第一の基幹サーバー1400が別の共通パスコードを使用することも可能である。これは、より高度な管理のために便利なことがある。
実際のネットワークでは、周辺装置は無数にあり、しかも基幹サーバーは一つに限らない。例えば、図14では、二つの基幹サーバー(第一の基幹サーバー1400、第二の基幹サーバー2400)と五つの周辺装置(第一の周辺装置410、第二の周辺装置420、第三の周辺装置430、第四の周辺装置440、第五の周辺装置450)からなるネットワークの一例を示している。第一の基幹サーバー1400を中心に、第四の周辺装置440と第五の周辺装置450とで一つのネットワークユニットを構成し、第二の基幹サーバー2400と、第一の周辺装置410、第二の周辺装置420、及び第三の周辺装置430と、でもう一方のネットワークユニットを構成する。これらのネットワークユニットは、互いに、第一の基幹サーバー1400と第二の基幹サーバー2400とのみで接続している。さらに、第四の周辺装置440および第五の周辺装置450は、第一の基幹サーバー1400とのみ接続し、第一の周辺装置410、第二の周辺装置420、及び第三の周辺装置430は、第二の基幹サーバー2400とのみ接続している。ここで、接続とは、上述した認証作業によって電子装置同士が互いを認証する認証接続のことを意味しており、単純な連結とは異なる。以下、電子装置のネットワークを考える際、特に断りのない限り、認証接続の意味で接続という言葉を用いる。更に、この意味での(認証)接続は、一つのパッケージ化されたシステム内の装置(モジュール、あるいは、チップ)同士の接続をも含む。本発明の特徴のひとつとして、このような複数の基幹サーバーと複数の周辺装置からなるネットワークにおいて、基幹サーバー同士は直接接続が可能であるが、周辺装置同士は直接接続をしないことが上げられる。これは、中央管理の行き届かない周辺装置では、共通パスコードのような入力データを保存しないためである。その代わりに、周辺装置同士は、基幹サーバーを介して間接的に接続する。例えば、第一の周辺装置410と第二の周辺装置420は、第二の基幹サーバー2400を介して間接的に接続可能である。第四の周辺装置440と第五の周辺装置450は、第一の基幹サーバー1400を介して、間接的に接続可能である。第三の周辺装置430と第四の周辺装置440は、互いに接続している第一の基幹サーバー1400と第二の基幹サーバー2400とを介して、間接的に接続可能である。こうして、本発明によれは、中央管理のためのリソースを基幹サーバーにのみ集中させることが可能となる。図14の具体的な例としては、例えば、自動運転車とスマートハウスが上げられる。例えば、第一の基幹サーバー1400、第四の周辺装置440、および第五の周辺装置450からなるネットワークユニットは、共に一つの自動運転車を構成する部品であるとする。同時に、第二の基幹サーバー2400、第一の周辺装置410、第二の周辺装置420、第三の周辺装置430からなるネットワークユニットは、一つのスマートハウスの部品であるとする。災害時自動運転車のバッテリーがスマートハウスのバッテリーを補完するような場合、例えば、スマートハウスのバッテリーの状況を把握するためのセンサー(例えば、第四の周辺装置440)が自動運転車に搭載されている。このように、第四の周辺装置440は、第一の基幹サーバー1400と第二の基幹サーバー2400のどちらとも接続することになる。
図15に示すように、本発明を用いたネットワークでは、一つの周辺装置(例えば第一の周辺装置410)が複数の基幹サーバー(例えば、第一の基幹サーバー1400、第二の基幹サーバー2400、第三の基幹サーバー3400)と接続することも認められる。その中で、例えば、第一の基幹サーバー1400と第二の基幹サーバー2400は直接接続しているが、第一の基幹サーバー1400も第二の基幹サーバー2400も、第三の基幹サーバー3400とは直接接続していないものとする。ここで、第三の基幹サーバー3400が遠隔攻撃者でないという証明はない。このため、第一の周辺装置410に接続認証に関するデータ(共通パスコード)を保存しないということは重要である。例えば、最初に第一の周辺装置410が第一の基幹サーバー1400に登録される際、第一の基幹サーバー1400は、第一の周辺装置410が第一の基幹サーバー1400の後に他の基幹サーバーと接続することを制限することが可能となる。なぜなら、第一の周辺装置410の外部入出力制御装置(例えば、図80の外部入出力制御回路980)は、受信する全ての信号を第一の基幹サーバー1400に転送し、第一の基幹サーバー1400は、第一の周辺装置410への全ての入力をモニターすることが可能だからである。ここで、もし第一の共通パスコード1410と同等のコードが発見されたら、緊急処置を施すことができる。例えば、第一の基幹サーバー1400は、第一の周辺装置410を切り離す。あるいは、遠隔攻撃者の動きをモニターするためだけに第一の周辺装置410を利用する。第一の基幹サーバー1400の次に、第二の基幹サーバー2400が第一の周辺装置410を登録する場合、第二の基幹サーバーは、あらかじめ第一の基幹サーバー1400に、第一の周辺装置410を登録する許可を申請する。これには、第二の基幹サーバーと第一の基幹サーバーが直接接続していることが必要である。第一の基幹サーバーが、第二の基幹サーバーに対し、第一の周辺装置410への接続を許可すれば、第一の周辺装置410は、第二の共通パスコード2410を受け付け、第二の基幹サーバー2400に第二の認証12を返信し、第二の基幹サーバー2400は、第一の周辺装置410を登録する。以後、第二の基幹サーバー2400と第一の周辺装置410は、第一の基幹サーバー1400の許可を経ずに、接続可能となる。次に、第三の基幹サーバー3400が、第一の周辺装置410と接続するには、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400及び第二の基幹サーバー2400が、第一の周辺装置410に対し、あらかじめ、第三の共通パスコード3410の受付を許可しておく必要がある。こうして、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400及び第二の基幹サーバー2400は、第三の基幹サーバー3400と第一の周辺装置410の接続を制限する権限を得ることになる。すなわち、許可の無い入力コードが第一の周辺装置410に入力された場合、接続を拒絶、あるいは、制限する。この権限の行使は、第一の基幹サーバー1400、あるいは、第一の基幹サーバー1400および第二の基幹サーバー2400の正規の管理者によって行われるものとする。
第一の基幹サーバー1400は、第一の共通パスコード1410を有し、第二の基幹サーバー2400は、第二の共通パスコード2410を有し、第三の基幹サーバー3400は、第三の共通パスコード3410を有するものとする。すなわち、第一の周辺装置410は、「第一の基幹サーバー1400を第一の共通パスコード1410を入力してくるもの」と認識し、「第二の基幹サーバー2400を第一の共通パスコード2410を入力してくるもの」と認識し、「第三の基幹サーバー3400を第三の共通パスコード3410を入力してくるもの」と認識する。これらの入力に対し、「第一の基幹サーバー1400は、第一の周辺装置410を第一の認証11を返すもの」と認識し、「第二の基幹サーバー2400は、第一の周辺装置410を、第二の認証12を返すもの」と認識し、「第三の基幹サーバー3400は、第一の周辺装置410を、第三の認証13を返すもの」と認識する。ここで、通信認証に関するデータ(共通パスコード、あるいは、共通パスコードに対応して返信する認証データ等)は、基幹サーバーに保存され、周辺装置には保存しない。周辺装置には、本発明のチップ認証装置を搭載する。
次に、本発明で提案するチップ認証方式が満たすべき条件について述べておこう。
〈出力の独立性〉
まず、二つのチップ認証装置に同じ入力信号を入力したときの動作を特定する。図16に示すように、二つの異なる第一のチップ認証装置21と第二のチップ認証装置22に対して、同じ入力信号(入力信号Q)を入力する。このとき、第一のチップ認証装置21は出力信号Aを出力する。第二のチップ認証装置22は出力信号Bを出力する。このとき、出力信号Aと出力信号Bとは異なる。このように、入力信号が同一であってもチップ認証装置が異なる場合、出力信号はそれぞれ異なる。この性質は、共通パスコードを使う例(図10、図11、図12、図13)に必要な条件である。すなわち、同じパスコードをそれぞれ異なるチップ認証装置を搭載する周辺装置に入力信号として入力しても、それぞれの周辺装置から返って来る出力信号は周辺装置毎に相異なる。例えば、図10のように、第一の共通パスコード1410を、それぞれ異なるチップ認証装置を内蔵する第一の周辺装置410、第二の周辺装置420、第三の認証装置430に与えたとき、これらの周辺装置から返って来る出力信号は、図11に示すように、それぞれ第一の認証4101、第二の認証4201、第三の認証4301となる。ここで、第一の認証4101、第二の認証4201、第三の認証4301の内どの二つも相異なる。図12、及び、図13の例も同様に説明できる。
〈入力の独立性〉
反対に、同一のチップ認証装置に異なる入力信号を入力すると、それぞれ相異なる出力信号を出力する。例えば、図17に示すように、チップ認証装置60に入力信号Cを入力すると出力信号Aを出力する。同じチップ認証装置60に入力信号Dを入力すると出力信号Bを出力する。ここで、出力信号Aと出力信号Bは、入力信号Cと入力信号Dが異なる限り、それぞれ相異なる出力信号である。この性質は、図15のように、異なる基幹サーバーからそれぞれ異なるパスコードを入力信号として同一の周辺装置に入力し、それぞれ基幹サーバーが相異なる認証を該周辺装置から出力信号として受け取る場合に必要な条件である。具体的には、第一の基幹サーバー1400が第一の共通パスコード1410を第一の周辺装置410に入力し、第一の周辺装置410が第一の認証11を第一の基幹サーバー1400に出力し、第二の基幹サーバー2400が第二の共通パスコード2410を第一の周辺装置410に入力し、第一の周辺装置410が第二の認証12を第二の基幹サーバー2400に出力し、第三の基幹サーバー3400が第三の共通パスコード3410を第一の周辺装置410に入力し、第一の周辺装置410が第三の認証13を第三の基幹サーバー3400に出力する、ような場合である。ここで、言うまでも無く、上記認証11、12、13は、お互いどの二つをとっても相異なる。
すなわち、図14は〈入力の独立性〉の条件と〈出力の独立性〉の条件を同時に利用するネットワーク構造の一例となっている。ほとんどの場合、実際には、基幹サーバーの数は2より大きく、周辺装置の数は5より大きい。図14は、もっとも簡単な一例に過ぎない。
〈出力の予測不可能性〉
図18に示すように、n個の入力信号Q1−Qnを同一のチップ認証装置60に与えたとき、それぞれの入力信号に対し出力信号R1−Rnが得られることを知っているものとする。このとき、n個のQ1−Qnのいずれとも異なる入力信号Qn+1を同一のチップ認証装置60に与えずに、これを与えたときに得られるはずの出力信号Rn+1を、(Q1、R1)、(Q2、R2)、…(Qn、Rn)のセットから予測することは不可能である。ただし、nは2以上の整数とする。チップ認証装置60が、何らかのアルゴリズムによって出力を生成している場合、すなわち、ソフトウェアによって認証を返す場合、ほぼ必ずこの条件は破られる。したがって、チップ認証装置60は物理的乱雑さを利用して出力信号を生成しなければならない。
〈入出力の信頼性〉
図19に示すように、実際には、入力信号Qを制御する回路に関わる制御不能のノイズなどにより、入力信号Qには入力信号誤差31(ΔQ)が混入する。これに対し、入力信号誤差31(ΔQ)及び出力信号を制御する回路に関わる制御不能のノイズなどにより、出力信号Rには出力信号誤差32(ΔR)が混入する。このとき、二つの異なる入力信号(例えば、Q1およびQ2)の差の絶対値は、入力信号誤差31(ΔQ)の絶対値の最大値より大きいものとする。ここで、入力信号Q1に対する出力信号R1と、入力信号Q2に対する出力信号R2との間の差の絶対値は、出力信号誤差32(ΔR)の絶対値より常に大きくなければならない。
本発明に関わるチップ認証方式は、上述した〈出力の独立性〉、〈入力の独立性〉、〈出力の予測不可能性〉、及び〈入出力の信頼性〉の、4つすべてを同時に満たしていなければならない。
〈検査〉
本発明が実施される以前から稼動しているネットワークを本発明の要件を満たすように発展させる場合には、既に基幹サーバーに接続している周辺装置を、本発明によるチップ認証装置を搭載したチップで構成された周辺装置に置き換えて行かねばならない。ここで、この置き換えが確実に行われたかどうか検査することが必要になる。あるいは、本発明のチップ認証装置を搭載していないチップを採用した周辺装置が一部でも不正に使用されていないかどうか検査することが必要である。ここで説明する検査は、基幹サーバーの保守点検の一部として随時行うことが可能である。また、周辺装置の登録時にも行うことが望ましい。
この検査のためにもっとも有効な方法は、中央管理下にある基幹サーバーを使って検査対象となる周辺装置を実際に遠隔攻撃することである。検査対象となる周辺装置を構成するチップは、本発明のチップ認証装置を用いていない場合、内蔵メモリに入力コード42と登録コード43の対応表(図20参照)を保存していなければならない。本発明のチップ認証装置を搭載したチップの内蔵メモリには、このようなコードは保存されていない。図20のようなコード対応表を正規に保存しているのは、本発明に関するネットワークでは、基幹サーバーだけである。図9にある、入力コード402と登録コード403の組あわせがそれである。図9の入力コード402が図20の入力コード42に対応し、図9の登録コード403が図20の登録コード43に対応している。
具体的な検査作業の流れを図21を用いて説明する。まず、検査する周辺装置を見つけたところから始める。次に、検査対象の周辺装置の内蔵メモリを読み出す。ここで読み出されたコードの中に、基幹サーバーに保存されている入力コードの中に一致するものがあるかどうかを調べる。不一致の場合、さらに、基幹サーバーに保存されている登録コードと比較する。そこで一致しなかった場合、検査した周辺装置を公正なものとして承認する。次に検査する周辺装置があるかどうか探す。なければ終了する。あれば、その検査対象となる周辺装置の内部メモリを読み出し、以下同様に行われる。
こうして、本実施形態に関わるチップ認証方式を用いるネットワークを構成するすべての装置は、例えば、図14のように、訓練を受けたセキュリティ専門家が保守・管理する基幹サーバー(例えば、1400、2400)のグループと、前記セキュリティ専門家が管理できない周辺装置(例えば、410、420、430、440,450)のグループに分けられる。ここで、周辺装置同士はお互いに直接に接続せず、基幹サーバーとのみ接続可能とする。こうして、一つの基幹サーバーとそれに直接接続する複数の周辺装置からなるネットワークユニットを構成する。基幹サーバーは、基幹サーバー同士と任意に接続可能であり、周辺装置同士は、基幹サーバーを介して間接的に接続可能である。こうして、各ネットワークユニット同士も接続可能である。図14は、二つのネットワークユニットが互いの基幹サーバー同士の接続によって連携したネットワークの一例である。実際には、もっと多数の基幹サーバー、すなわち、もっと多数のネットワークユニットから構成されるネットワークも実現可能である。また、ネットワーク上の電子装置同士の接続は、上述した認証作業によって電子装置同士が互いを認証する、認証接続のことを意味している。
各周辺装置には、すべて異なるチップ認証装置が搭載されている。図10及び図12に示すように、基幹サーバー(1400、2400)は、それぞれ固有の共通パスコード(1410、2410)を少なくとも一つずつ保有する。図9に示すように、それぞれの基幹サーバーが出力する共通パスコードは、基幹サーバーの内蔵メモリに入力コード(例えば、402)として厳重に保管される。図11及び図13に示すように、共通パスコード(1410、2410)を入力された周辺装置(410、420、430)は、それぞれの共通パスコードに対しておのおの固有の認証(4101、4201、4301)、及び、(4102、4202、4302)を基幹サーバー(1400、2400)にそれぞれ返信する。ここで返信される認証は、どの二つをとってもお互いに異なることが必要である。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図16に示すように、〈出力の独立性〉を満たさなければならない。図9に示すように、基幹サーバーは、周辺装置から返信されてきた出力信号を、入力コード(例えば、402)のそれぞれに対応する形で内蔵メモリに厳重に保管する登録コード(例えば、403)と便宜比較する。
図15に示すように、一つの周辺装置が複数の基幹サーバーと接続することが許される。この場合、一つの周辺装置(例えば、410)は、複数の共通パスコード(例えば、1410、2410、3410)を入力され、それぞれ異なる入力に対して、それぞれ異なる認証(例えば、11、12、13)を出力しなければならない。そのため、周辺装置に搭載される、本発明のチップ認証装置は、図17に示すように、〈入力の独立性〉を満たさなければならない。
続いて、本発明に関するチップ認証装置に関する条件を考える。まず、チップ認証装置をソフトウェアで構成する場合、入力信号に対する出力信号の作成は、かならずある種のアルゴリズムを用いて行われることになる。したがって、遠隔攻撃者(例えば、93)がこのアルゴリズムを解読した場合、入力コードさえ判っていれば、例えば図20のように、登録コードを偽造することが可能となる。こうして、この遠隔攻撃者は、少なくとも周辺装置の一部を乗っ取り、基幹サーバーに不正アクセスすることが可能となる。このような不正行為を防ぐため、本発明のチップ認証装置は、図18に示すように、〈出力の予測不可能性〉を満たさなければならない。しかしながら、プログラムがアルゴリズムで設計されている限り、どのようなプログラムも〈出力の予測不可能性〉を満たすことができない。これは、プログラムにより完全な乱数を発生することが不可能であることと同じ事情である。このように、チップ認証装置は、物理的乱雑さを活用したものでなければならない。
前記のようなチップ認証装置は、チップ内に他の機能を持つモジュールと一緒に混載してもよいし、または、チップ認証機能のみを持つチップとして単独で製造しても良い。また、チップ認証装置は、入力コード(共通パスコード)を受け取る度に、物理的乱雑さに基づいて出力信号(認証コード)を発生することが望ましい。共通パスコードは周辺装置のメモリに保存してはならない。電子装置が複数のチップで構成される場合、図64に示すように、少なくとも一つのチップが本発明のチップ認証装置を搭載することが必要である。また、チップ認証装置そのものがチップで実現される電子装置であっても良い。こうして、前記ネットワークは、構成要素である周辺装置及び基幹サーバーが、少なくとも一つのチップから構成される電子装置のネットワークである。
本発明に関するチップ認証装置は、半導体装置の素子アレイ上に構成することが可能である。まず、何らかの方法で“1”と“0”の物理的にランダムな組み合わせを生成する。ここで、“1”を黒、“0”を白として、前記素子アレイ上のアドレスにしたがってプロットすると、図22のような白と黒がランダムに配置された市松模様ができる。このように、乱数がデジタルで発生すると、図19に説明した〈入出力の信頼性〉を満たすことができる。
このように、本発明に関するチップ認証装置は、半導体デバイス及び半導体デバイス製造工程における制御不能の不確定さを用いて、上記必要とされる物理的乱雑さを生成するものである。
以下、本発明を実施するための最良の形態について、具体的に説明する。
図23は、図22を実現するための素子の配列の一例である。行方向にL本のワード線503が並んでいる。それと直交するように、ビット線902が列方向にM本並んでいる。L本のワード線503とM本のビット線が交差するところにチップ認証装置のエレメントである認証素子977が配列する。この例では、不揮発性メモリのセルアレイと異なり選択ゲートは無いが、L本目のワード線(L−1)とビット線コンタクト505の間、及び、反対側の端であるワード線(0)とビット線コンタクトの間に選択ゲートを採用しても、本発明の本質に変化はない。
図24は、図23の認証素子用アレイ960の中からN本のワード線503とN本のビット線902を抜き出したものである。Nは、一般に、上記のLやMより小さいか同じ自然数である。
入力コード(P、S、T、…)の例として、(a(1),b(1),a(2),b(2),…,a(N),b(N))を考えよう。この入力コードを配列aと配列bに分割し、図25のように、(a(1),a(2),…,a(N))を第一行から順に対応させる。(b(1),b(2),…,b(N))を第一列から順に対応させる。このとき、i行j列の認証素子977のデータを要素d(i,j) とする。 (i,j)は認証素子977のアドレスに対応する。図25の例では、要素d(5,N-2) が図示されている。ここで、要素d(i,j) の集まり{d(i,j)}は、0と1のランダムな集合体で構成される乱数コードである。このように、入力コードを2つに分割し、行と列に対応させることで、入力コードと認証素子のアドレスを対応させることが可能である。入力コードの分割の仕方は、あらかじめ決められた書式に則り実行すれば良い。もちろん、配列aと配列bを交換するのも一例であることは自明である。方法は無数に存在し、ここで例示したように配列aと配列bを入力コードから交互に抜き出す方法はそのうちの一例に過ぎない。また、配列aと配列bの要素数は必ずしも等しくなくても良い。ただし、入力コードの全要素を入力できるよう、認証素子用アレイ960の行数と列数の和は、少なくとも2Nより大きいものとする。ここで、上記入力コードを{a(i),b(j)}と表記することにする。ただし、i、および、jは、それぞれ独立の自然数とする。こうして、数列{a(i)}、数列{b(j)}、及び乱数コード{d(i,j)}から、何らかの方法を用いて出力コード{c(i,j)}を作成する。入力コード{a(i),b(j)}及び出力コード{c(i,j)}の組み合わせが、図6の交信シリーズ80に対応している。この乱数コード{d(i,j)}の一例として、物理乱数を用いればよい。
本発明に係る実施形態について、主に、第一の入力数列{a(i)}、第二の入力数列{b(j)}、及び物理乱数{d(i,j)}から、出力コード{c(i,j)}を作成する方法について、以下図面を参照して説明する。
〈第一の実施形態〉
一例として、出力コード{c(i,j)}を生成するために、剰余演算mod(x,y)を用いることにする。これは、xをyで割ったあまりである。
Figure 2017028354
図26は、数列{a(i)}、数列{b(j)}、及び物理乱数{d(i,j)}と、式1に基づいて出力される出力コード{c(i,j)}との関係を一覧表にしたものである。この方法を用いると、0と1の数の割合に変化がないことが容易に想像される。これは、交信シリーズ80によって扱われるデータ量を安定化させるために必要な条件である。すなわち、式1の右辺に入力される情報量と、式1の左辺から出力されるデータ量がほぼ同等であることが求められる。すなわち、入力情報量と出力情報量が大きく異なる場合、式1で定義される系の情報量は、少ない方に合わせられ、結果として、少なくともその差分だけ情報を失うことになるからである。
図27は、式1で示したメカニズムを実現するための基本構成の一例を示した概念図である。すなわち、乱数発生装置601で物理乱数{d(i,j)}を発生し、基幹サーバー400から、共通パスコードとして、入力コード{a(i),b(j)}が入力され、コード発生装置602で出力コード{c(i,j)}を生成する。この例では、乱数発生装置601とコード発生装置602が、共にチップ認証装置600の構成要素となっている。一方、自明なので特に図示しないが、他の例ではコード生成装置602をチップ認証装置600の外に置くことも可能である。いずれにしろ、少なくとも乱数発生装置601をできる限り安価にチップ内に搭載しなければならない。本願では、乱数発生装置601の一例として、図22で概念的に説明した方法を用いる。コード発生装置602は、式1で概念的に説明されるように、プログラムで構成することが可能である。ここで、コード発生に一種のアルゴリズムを使用しているが、物理乱数{d(i,j)}で物理的乱雑さを取り込むことが本願の特徴である。ただし、入力コードの全要素を入力できるよう、乱数発生装置601の行数と列数の和は、少なくとも、{a(i)}の要素数と{b(j)}の要素数の和と同じか、それより大きいものとする。
〈第二の実施形態〉
図28は、第二の実施形態の概念を示す図である。すなわち、基幹サーバー400から入力コード(P、S、T、…)がスクランブル装置604に送られる。こうして、入力コード(P、S、T、…)は(P’、S’、T’、…)に変換される。このコードは、周辺装置にモジュールされているチップ認証装置600への入力コード(P’、S’、T’、…)として入力される。ここで、特に図示しないが、基幹サーバー400に接続する周辺装置は、少なくともチップ認証装置600を搭載するチップをマウントしている。チップ認証装置600は、認証(P1、S1、T1、…)を返す。次に、(1)この認証(P1、S1、T1、…)を基幹サーバーへ出力する。あるいは、(2)この認証(P1、S1、T1、…)をスクランブル装置に返して、このスクランブルされた認証(P1’、S1’、T1’、…)を基幹サーバー400に返す。あるいは、自明なので特に図示しないが、(3)二つ目の別のスクランブル装置を使って認証(P1、S1、T1、…)を認証(P1’’、S1’’、T1’’、…)に変換してから基幹サーバー400に返す。(3)の方法では、少なくとも二つの独立のスクランブル装置が必要である。
いずれにしろ、コスト面から、スクランブル装置はチップ認証装置600を搭載するチップに混載することが望ましい。図29は、スクランブル装置604の基本構成の一例を示す図である。この例では、スクランブル装置604は、乱数発生装置605及びコード発生装置606から構成されり、チップ認証装置600とほぼ同じである。スクランブル装置604を構成する乱数発生装置605およびコード発生装置606の詳しい説明は、図27で説明したのと同様なので、ここでは説明を省略する。なお、自明なので特に図示しないが、コード発生装置606は、スクランブル装置の外に置くことも可能である。
〈第三の実施形態〉
図30は、図23の認証素子977のアレイの一部を示すものである。行数はN+Kで、列数はNである。上部K行N列の領域をスクランブル装置セルアレイ614とし、下部N行N列を、チップ認証装置セルアレイ611としている。
図31は、スクランブル装置604を構成する乱数発生装置605を実現する方法の一例を説明する図である。まず、{a(j)+b(j)}を列毎に入力する。次に、列(j)ごとに、物理乱数の要素d(i,j) を行方向(i)足し上げ2で割ってあまりを獲得し、前記あまりはそれぞれ列方向(j)にa(j) とb(j) を加える。その和を更に2で割ったあまりを中間出力{f(j)}とする。こうして、図32のように、スクランブル装置604を構成するコード発生装置606の機能は、次の数式で表される。
Figure 2017028354
この{f(j)}が、図28、図29、図32および図34のスクランブル装置604の出力となる。ただし、jは1からNの自然数である。
図33は、図27のチップ認証装置600を構成する乱数発生装置601を実現するチップ認証装置セルアレイ611の一例を示す図である。図25および式1において、配列{b(j)}を配列{f(j)}に置き換えたものと同等なので、詳細の説明は省略する。ここで、式3で表される{c(i,j)}がコード発生装置602の出力となる。
Figure 2017028354
ただし、i、および、jは、それぞれ独立の自然数である。
図34は、図28のスクランブル装置604とチップ認証装置600の入出力関係をまとめて説明する図である。入力コード{a(i),b(j)}はスクランブル装置604で物理的乱数を取り込んで中間コード{a(i),f(j)}に変換される。この{a(i),f(j)}を次の入力コードとしてチップ認証装置600に入力し、出力コード{c(i,j)}を出力する。
ここで、スクランブル装置604の行数Kとチップ認証装置の行数Nの選び方は、必ずしも基幹サーバー側で管理する必要はない。例えば、周辺装置を基幹サーバーに登録する際、周辺装置の所有者、あるいは、周辺装置の正規の管理者が、任意に決定できる。決定された(N、K)は周辺装置内部の不揮発性メモリ等に保存する。
この時点では(N、K)は基幹サーバー側が知らなくても良い情報であるが、基幹サーバーが中央管理するネットワークに登録し、接続された後は、ネットワークメンテナンスの時などに基幹サーバー側で検査し必要に応じて改定することが可能である。その際、改定された(N、K)で周辺装置を再登録する必要がある。(N、K)を改定すると、たとえ同じ入力コード{a(i),b(j)}を入力しても、スクランブル装置604が生成する中間コード{a(i),f(j)}が異なる。したがって、チップ認証装置600が生成する出力コード{c(i,j)}も異なる。
基幹サーバーは前回のメンテナンス時に改定した(N、K)を記録しておく。次のメンテナンス時、チップの内部メモリに保存されている(N、K)を読み出し、前回記録しておいてた(N、K)と比較する。もし一致していないようなら、チップが不正アクセスを受けたとして、ネットワークからこのチップを切り離すか、管理者に警報することができる。こうして、(N、K)をセキュリティバッファとして有効活用することも可能である。なお、式1−3に基づくコード生成では、物理乱数{d(i,j)}を用いているので、セキュリティバッファ(N、K)自体が流出してもかまわない。
上記式1−3にしたがってコード生成するのにCPUを使用する場合、スクランブル装置とチップ認証装置の間に生成される中間出力{f(j)}はCPU外には出力しない場合、CPU内のレジスタに一部あるいは全部を格納しなければならないが、{f(j)}全体を周辺装置の内部メモリに保存する必要はない。あるいは、上記式1−3にしたがってコード生成するのに同一チップ内の周辺回路を用いる場合、スクランブルとチップ認証の間に生成される中間出力{f(j)}はチップ外には出力されない。つまり、中間コード{a(i),f(j)}も、チップ外に出力されることはない。いずれにしろ、出力コード{c(i,j)}の生成が終われば中間出力{f(j)}は自動的に上書き消去される。また、遠隔操作によってコード生成中のレジスタからチップ内あるいはCPU内に閉じ込められた中間出力{f(j)}をリバースエンジニアリングで取り出すのは至難の業である。これは、レジスタが非常に小さな動的メモリであることによる。例えば、通常のパソコンでは32ビット、多くとも64ビットしかない。一方、中間出力{f(j)}をすべて記録するのに必要な容量はNビットである。したがって、Nが十分大きければ、コード生成するには、中間コード{f(j)}をいくつかのパケットに分割してレジスターに都度格納しなければならない。ここで、コード生成のために一度に使えるレジスタのビット数をRとすると、図34において、例えば、第1列から第R列までをパケット1、第R+1列から第2R列までをパケット2、第2R+1列から第3R列までをパケット3、…とし、式2に基づいてパケット毎に中間出力{f(j)}の一部を生成しレジスタに格納する。すなわち、Nが十分大きければ、中間出力{f(j)}を格納したレジスタ領域はパケットを更新するごとに上書きされる。したがって、コード生成途中であっても、遠隔操作によって中間出力{f(j)}の全体を一度に盗まれることはない。また、本願では、入力コード{a(i),b(j)}から中間コード{f(j)}を生成するのに物理乱数{d(i,j)}(i=1,…K)を利用しているので、入力コード{a(i),b(j)}から中間出力{f(j)}を予測することは不可能である。更に、中間入力コード{a(i),f(j)}から出力コード{c(i,j)}を生成するのに前者とは独立の物理乱数{d(i,j)}(i=K+1,…K+N)を利用しているので、出力コード{c(i,j)}を予測することは不可能である。仮に中間コード{f(j)}が盗まれてたとしても、物理乱数{d(i,j)}(j=K+1,…K+N)からなる物理的乱雑さによって出力コード{c(i,j)}を予測するのは不可能である。その上、セキュリティバッファ(N、K)を随時更新することができるので、同じ入力コード{a(i),b(j)}に対して生成される中間コードは随時更新される。したがって、例えば、Nを64より大きくしておけばセキュリティは、更に大きく向上する。
図35は、スクランブル装置セルアレイ614とチップ認証装置セルアレイ611を含むメモリチップの一例を示す図である。これらの領域が、メモリ領域と共に、ワード線方向に配列し、ワード線503を共有している。図36は、スクランブル装置セルアレイ614とチップ認証装置セルアレイ611を含むメモリチップの他一例を示す図である。これら3つの領域がビット線方向に配列し、ビット線902を共有している。
〈第四の実施形態〉
図37は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにキャパシタ982を配置している。一般に、キャパシタは絶縁膜を二つの導電体で挟んだ構造をしており、二つの導電体の間に電界を印加することで電荷を蓄えるものである。ここで、印加電界が直流であれば電流を流さない。しかしながら、印加電界が高すぎると絶縁膜が破壊され、こうして破壊されたキャパシタは、直流でも電流を流すことがある。ワード線503とビット線902の間に電圧を印加することで、選択された交差点のキャパシタ982に電圧を印加することが可能である。
この破壊の発生は確率的であり、物理的乱雑さを伴うものと考えられる。破壊した認証素子は直流でも電流を流しやすくなり、例えばメモリでは“1”に相当する。図22では黒に相当する。反対に、破壊しなかった認証素子は印加電界に対して電流を流し難く、例えばメモリでは“0”に相当する。図22では白に相当する。印加電界やキャパシタの詳細な条件(物性、構造、サイズ等)を調整することによって、この確率を大雑把に調整することが可能となる。この確率をおよそ50%程度にすると、図22のような白黒のランダムな市松模様が得られる。
図38は、破壊判定のために用いる電流電圧特性である。横軸は、読み出しのためにキャパシタ982に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてキャパシタ982を通して流れる電流の絶対値である。破壊された素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、破壊されなかった素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、破壊判定電圧932における破壊判定電流値933と非破壊判定電流値934を設定する。すなわち、絶対値が破壊判定電圧932に一致する読み出し電圧をキャパシタ982に印加したときにキャパシタ982を流れる電流の絶対値が、破壊判定電流値933より高ければ、破壊していると判定し、非破壊判定電流値934より低ければ破壊していないと判定する。ここで、読み出し電圧は直流電圧である。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。行デコーダ972および列デコーダ973は、更に、入出力Pin971に接続している。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図38で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、認証素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図38の判定方法には、破壊判定電流値933と非破壊判定電流値934の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は破壊したとも非破壊であるとも判定されない。このような素子は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、2進表記した素子のセルアレイ上のアドレスと、対応する素子のデータの一例を示したのが図39である。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”…となっている。このように、左から五番目の認証素子のデータが“X”になっている。
次に、図39のような“0”と“1”の列とそれぞれに対応するアドレスの組み合わせを市松状にプロットしたものが図22の白黒のパターンになると予想される。ここで、“0”は白に変換され、“1”は黒に変換されるものとする。しかしながら、“0”でも“1”でもない“X”が存在すると、図22のような白黒の市松状のパターンを生成することはできない。そこで、市松状にプロットする前に“X”に対応する素子をプロットから排除しなければならない。
例えば、 “X”に対応する素子のアドレス(例えば、2進法表記で100)をバッファに保存する。各アドレスに対応する素子のデータをバッファーの記録と比較し、対応するアドレスがバッファー内に存在したら読まないというような作業を行う。この作業によって、“X”に対応する素子のデータは取りのぞかれ、“0”と“1”のみからなるデータとアドレスの組み合わせが生成される。こうして、図22のように、白黒の市松状のパターンが得られる。
ところで、上述した絶縁膜の破壊現象には、一般に、ソフト破壊とハード破壊の二つのモードがある。ソフト破壊モードは、しばしばハード破壊の前段階として現れ、読み出し電圧に対する電流がハード破壊時より低く、非破壊の時より高い。また、ソフト破壊モードでは、電圧を繰り返し印加する間に非破壊状態に戻ったりハード破壊モードに遷移することもあり状態が不安定であるが、一度ハード破壊モードに陥ると、非破壊状態に戻ることもなければソフト破壊モードに遷移することもない。本発明においては、図38および図39で説明した方法により、より安定した破壊モードであるハード破壊モードをメモリの“1”とみなし、ソフト破壊モードを“X”としている。破壊判定電流値と非破壊判定電流値の間のギャップは、ソフト破壊モードに“X”をラベルするためのものである。こうして、上述した方法によって、“X”のソフト破壊した素子のデータを取り除くことによって、図22の市松状の白黒パターンは、繰り返し読み出し電圧を印加しても変化しずらくなり、パターンの再現性を獲得する。
一般に、電気的ストレスによってソフト破壊状態からハード破壊状態に遷移する場合と、非破壊状態からソフト破壊状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。したがって、電気的ストレスを繰り返すうちに“X”とラベルされたソフト破壊状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、ソフト破壊状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図38で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図38の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図38の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。検査に合格しなかった場合、そのチップは不良品とされ、廃棄される。ただし、素子の数が十分多ければ、多少ソフト破壊の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
物理的乱雑さを最大限にするには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。“X”とラベルされた素子はソフト破壊モードであり、パルス電圧印加を繰り返すうちに確率的に“1”(ハード破壊モード)に遷移すので、図40のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“0”の数が多くても複数回パルス印加するうちに“1”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合を50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
また別の一例では、素子構造によってソフト破壊よりハード破壊を優勢にすることが可能である。例えば、図41のように、第一導電体1053、第二導電体1052、絶縁膜910、導電体先端部1051からなる素子構造を考えよう。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線503あるいはビット線902のどちらか一方に接続し、第二電極1054は他方に接続する。導電体先端部1051周辺の絶縁膜の分子構造は、力学的ストレスにより安定しておらず、破壊しやすくなる。さらに、破壊パルスを印加したときに導電体先端部1051の周辺に電界が集中しやすい。すなわち、よりハード破壊しやすくなる。しかしながら、導電体先端部1051の深さには製造ばらつきがあるので、導電体先端部1051と第二導電体1052の間の絶縁膜910の破壊発生確率も素子ごとにばらつく。ここで、更に上述した破壊パルスの印加の仕方を工夫することによって、“0”と“1”の物理的乱雑さをなるべく大きくするよう、調整することが可能となる。
〈第五の実施形態〉
それぞれワード線503とビット線902とに接続する導電体がダイオードからなる認証素子977を用いる場合、ダイオード要素がPN接合986(図42)、あるいは、ショットキー接合987(図59)ならば、ダイオードに強い電圧ストレスを印加することによって、ダイオードは確率的に破壊される。破壊されたかどうかは、ダイオードに逆方向の読み出し電圧を印加して判定する。破壊された素子では、ダイオードに逆方向の読み出し電圧を印加すると電流が流れやすくなり、例えばメモリの“1”に相当する。破壊されなかった素子では、逆方向の読み出し電圧を印加しても電流が流れずらく、例えばメモリの“0”に相当する。ストレスも読み出しも、電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。
上述のように、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がPN接合986やショットキー接合987のようなダイオードである場合、読み出し電圧は逆方向である。一方、それぞれワード線503とビット線902とに接続する認証素子977を構成する要素がキャパシタ982の場合、読み出し電圧の方向は正方向逆方向を区別しなくてよい。この点に留意すると、ダイオードの破壊判定方法は、図38と同様に説明できる。ここで、ダイオードを挟む二つの電極に印加する読み出し電圧は絶対値であり、読み出し電圧を印加したときにダイオード要素を流れる電流も絶対値である。すなわち、PN接合やショットキー接合の場合、これらの絶対値は、逆方向電圧および逆方向電流のことを意味する。その他、詳細の説明は、キャパシタの場合と同様なので省略する。
〈第六の実施形態〉
図43は、認証素子977がMetal-Oxide-Semiconductor(MOS)型電界効果トランジスタ(MOSFET)983の場合を示す図である。一般に、MOSFETは、半導体基板表面の二つの近接する拡散層とMOSキャパシタから構成されている。MOSキャパシタは、半導体基板上に、ゲート絶縁膜、及び、ゲート電極を積層したものである。この図の例では、二つの拡散層の内一方をビット線902に接続し、他方を接地している。ゲート電極には、ワード線503を接続する。すなわち、本実施形態では、ゲート絶縁膜の破壊という物理的ばらつき要因を採用することが可能である。絶縁破壊を用いる場合、ビット線902を接地している間にワード線503に電圧ストレスを印加する。この電圧ストレスは、一例として、図40のようなパルスでも良い。読み出しは、ビット線902とワード線503の間に破壊判定電圧932を印加し、ビット線902とワード線503の間を流れる電流を読めば良い。また、別の一例では、図69のように、二つの拡散層の内一方をビット線902に接続し、他方を別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、絶縁破壊を起すことが可能である。あるいは、フローティングのままにしておいても、ビット線側のみで絶縁破壊を起すことが可能である。
〈第七の実施形態〉
図44は、認証素子977が、トランジスタ983とキャパシタ982から構成されるDRAMセルの場合である。キャパシタ982が電圧降下を起すため、トランジスタ983のゲート絶縁膜を破壊するのは現実的ではない。したがって、この例ではキャパシタ982の破壊を利用することになる。具体的には、ワード線503にトランジスタ983をオン状態にするための転送電圧をワード線とビット線の間に印加する。その間にビット線に高電圧ストレスを印加する。この高電圧ストレスは、一例として、図40のようなパルスである。読み出しは、ワード線503に転送電圧を印加している間に、ビット線902を流れる電流を読めば良い。転送電圧の絶対値は、ビット線に印加する電圧の絶対値より大きく、その電圧差はトランジスタ983をオン状態にするのに必要な電圧である。図44では、一例として、キャパシタ982の一方の電極はトランジスタ983に接続し、他方は接地している。また、別の一例では、図70のように、キャパシタ982の一方の電極はトランジスタ983に接続し、他方を別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、絶縁破壊を起すことが可能である。
ここで重要なことは、認証素子977は、通常のDRAMセルをそのまま用いることができる点である。すなわち、DRAMチップに本願のチップ認証装置を追加する場合、認証装置領域(セルアレイ)を確保するだけで製造のための追加コストは必要ない。認証装置領域のために必要なビット容量は、DRAMに限らず一般的なメモリ容量に比べて非常に少なくて済む。
例えば、図30の例で、スクランブル装置(行数K)も含めてチップ認証装置(行数N)の追加容量を概算すると次のようになる。列数をNとすると、入力コードの場合の数は、2のN乗と2の(N+K)乗の和である。スクランブル装置の物理乱数{d(i,j)}の場合の数は、2のNK乗である。チップ認証装置の物理乱数{d(i,j)}の場合の数は、2のN2乗である。出力コード{c(i,j)}の場合の数は、2のN2乗である。
次に、(N、K)を決定するために必要な要件を考える。まず、上述したような絶縁膜破壊やダイオードの接合破壊は物理的に乱雑なものであり、如何なるアルゴリズムにも依存しない。しかしながら、本願では(入出力の信頼性)を確保するために、図22のような白黒(0/1)の市松模様を作りだすことによって物理的乱雑さをデジタル化している。これによって情報量の縮小が行われる。0/1の市松模様はチップ上に分布するので、分布する素子の数が少ないとパターン数が少なくなり、偶発的に同じ市松模様を出力する可能性が高まるように思われる。このような不具合を取り除くためには、デジタル化した物理乱数{d(i,j)}の場合の数が現実的にほぼ無限大とみなせるほどNおよびKを大きく設定しなければならない。一方、一般的なデジタル暗号回線で用いられる入力コードは、現在128ビットから256ビットである。このビット数は、暗号セキュリティの都合から年々少しずつ増加しているが、それでもこれから10年程度の間は256ビットからせいぜい512ビットの間で推移するであろう。そこで、一例としてN=K=512の場合で見積もる。このとき、入力コードの場合の数は、2の512乗と2の1,024乗の和である。これは、既に通常のコンピュータが扱える整数の桁数をはるかに上回る情報量である。実際に関数電卓で計算すると無限大が出てくる。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は更に大きく、すべて同様に2の5122乗である。もちろん、現実的な無限大である。ここで、5122=262,144なので、スクランブル装置を含めても262Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4Gb)に比べて4桁小さく、およそ1万分の1以下とはるかに小さい。
N=K=128の場合では、入力コードの場合の数は、2の128乗と2の256乗の和であり、およそ10の77乗となる。IoT/IoEが本格的に普及すれば、通信ノードの数は全世界で一兆個(10の12乗)に登るといわれている。10の77乗は無限大ではないが、全世界のノード数よりはるかに大きく、たまたま入力コードが同じになるという可能性は、10のマイナス65乗と極めて小さくなり、現実的なゼロである。スクランブル装置の物理乱数{d(i,j)}の場合の数、チップ認証装置の物理乱数{d(i+N,j)}の場合の数、および出力コード数{c(i,j)}の場合の数は、すべて同様に2の1282乗となり、もちろん、現実的な無限大である。ここで、1282=16、384なので、スクランブル装置を含めても16Kbもあればチップ認証装置としては十分な容量である。この容量は、通常のDRAM製品のシリコンダイ辺りの容量(4Gb)に比べて5桁小さく、およそ10万分の1以下とはるかに小さい。
DRAMの価格は、現在、4Gb品で2.5USドルから3USドルの間で推移している。DRAMセルをそのまま認証素子977として使用することができるので、物理乱数の情報量を十分維持しながら(入出力の信頼性)を確保しても、スクランブル装置を含めたチップ認証装置の値段は、1チップ辺り最大でも0.03USセントである。
〈第八の実施形態〉
図45は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところに不揮発性メモリの制御に用いる選択トランジスタ984を配置している。不揮発性メモリのメモリ素子は、第一導電型の半導体基板もしくは第一導電型のウェル上の二つの拡散層の間に積層された、シリコン、トンネル膜、電荷蓄積層、層間絶縁膜、制御ゲートからなる、積層構造である。前記選択トランジスタ984は、メモリ素子の層間絶縁膜の一部もしくは全てを導電体に置き換えた層間導電層に置き換えるられている。あるいは、層間絶縁膜を突き抜けるように開けた縦穴に導電材を埋め込んだ導電体ビアなどを用いても良い。いずれにしろ、制御ゲートに接続したワード線503に高電圧を印加することで、選択された交差点の選択トランジスタ984のトンネル膜に高電界ストレスを加えることが可能である。ここで、トンネル膜の破壊および読み出しは、トランジスタ983のゲート絶縁膜の破壊と同様になる。すなわち、(第六の実施形態)のゲート絶縁膜をトンネル膜に置き換えれば説明は全て同じなので、ここでの説明は以下省略する。図45では、一例として、選択トランジスタ984の一方の拡散層はビット線902に接続し、他方の拡散層は接地している。また、別の一例では、図71のように、選択トランジスタ984の一方の拡散層はビット線902に接続し、他方は別の電極に接続することが可能である。この電極は、ソース線やチップ内のその他の配線に接続される。この電極の電位をゼロにしておけば、上述した方法と同様に、トンネル膜破壊を起すことが可能である。あるいは、フローティングのままにしておいても、ビット線側のみでトンネル膜破壊を起すことが可能である。
〈第九の実施形態〉
図46は、ビット線方向に隣り合った選択トランジスタ984同士の拡散層を接続した場合の例である。これは、NAND型配列と言われるもので、動作方法が複雑になるので、更に図面を用いて詳細に説明する。
図47は、本実施形態に関するチップ認証用素子アレイ960の一例である。ページバッファ790は、混載するNAND型不揮発性メモリセルアレイのページバッファを兼ねる。ページバッファ790にはビット線902との接続をオン/オフさせるためのビット線接続ゲート791が設けられている。ページバッファ790は、内部にセンスアンプやラッチアップなどをつかさどる回路を設けている。
本実施形態では、混載するメモリセルはNAND型やNOR型の不揮発性メモリ、DRAM等の揮発性メモリ、あるいは、磁気抵抗メモリ、相変化型メモリ、抵抗変化型メモリ等の新機能型メモリの内のどれであっても良い。すなわち、本発明に関するチップ認証装置セルアレイ611と混載するメモリは、必要に応じアドレスのためのビット線またはワード線の少なくとも一方を共有するだけであり、メモリの種類にはかかわりがない。
認証素子977のに電圧パルスを印加するには、一例として、以下に示すような方法で行う。まず、ビット線側の選択ゲートに正の電位を与え、ビット線側の選択トランジスタをオン状態にする。同様に破壊したいワード線とビット線側の選択トランジスタの間にワード線が存在する場合は、そのワード線にも正の電位を与え、対応する各不揮発性メモリトランジスタをオン状態とする。ここで、破壊パルスを印加したいビット線の電位を0Vにする。次に、破壊パルスを印加するワード線を選択し、破壊パルス電圧を印加する。破壊パルスを印加する方法の一例は、例えば、図40で説明した方法で行う。また、複数のチップ認証コードを持つ際は、それぞれの認証コードに対してそれぞれチップ認証ブロックが必要である。このような場合、一つのチップ認証装置に図40を試してパルス回数を決定し、それをチップ内のメモリ領域(あるいはバッファー)に記憶させ、別のチップ認証領域に、ここで記憶したのと同じ回数の破壊パルスを印加することも出来る。その際はパルスとパルスの間の破壊率検査は省略可能である。
図48は、本実施形態に関する破壊検査時の電圧パルス波形の一例を示す図面である。まず、読み出すキャパシタに関する1本のワード線を選択し、0Vより高い所定の電位を与える。選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線は0Vないし、選択ワード線よりは低い所定の正の電位を与える。この選択ワード線とビット線の電位差は、例えば、図38の破壊判定電圧932程度である。同時に、ビット線側の選択ゲート9811には正の電位を与え、ビット線側選択ゲート9811に対応するビット線側選択トランジスタ(SGD)をオン状態にする。次にビット線接続ゲート791を0Vに下げる。このとき、ビット線接続トランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977が導電状態であれば、ビット線の電位は上昇する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正の電位を与え、ビット線接続トランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の導通・非導通状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまり、ビット線電位が所定の電位(例えば、破壊判定電圧値9330)以上であれば選択した認証素子977は破壊されてると見なし、ビット線電位が所定の電位(例えば、非破壊判定電圧値9340)以下であれば選択した認証素子977は破壊されていないと見なす。ここで、破壊判定電圧値9330及び非破壊判定電圧値9340は、それぞれ、図38の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。この例では、破壊が導通状態であり、非破壊が非導通状態である。
図49に本実施例に関する破壊検査時の電圧パルス波形の別の一例を示す図面を示す。まず、読み出すキャパシタに関する1本のワード線を選択し、0Vを与える。同じく選択ワード線とビット線側の選択ゲート間に他のワード線が存在する場合は、そのワード線に正の電位を与えオン状態とする。ビット線には所定の正の電位を与える。この選択ワード線とビット線の電位差は、例えば、図38の破壊判定電圧932程度である。同時に、ビット線側の選択ゲート9811には正の電位を与え、ビット線側選択トランジスタ(SGD)をオン状態にする。次に、ビット線接続ゲート791を0Vに下げる。このとき、ビット線接続ゲートトランジスタ7910はオフとなり、ビット線はページバッファ790内の検知回路から切り離される。もし選択した認証素子977が導通状態であれば、ビット線の電位は下降する。反対に、導電状態でなければビット線の電位は変化しない。次に、再度ビット線接続ゲート791に正電位を与えビット線接続ゲートトランジスタ7910をオンにする。続いて、ページバッファ790内でビット線の電位変化を検知する。認証素子977の導電・非導電状態に因るビット線電位差をページバッファ790内で拡大し、ラッチ回路にhigh/low データとして格納する。つまりビット線電位が所定の電位(例えば、破壊判定電圧値9331)より低ければ、選択した認証素子977は破壊されていると見なし、ビット線電位が所定の電位(例えば、非破壊判定電圧値9341)より高ければ、選択した認証素子977は破壊されていないと見なす。ここで、破壊判定電圧値9331及び非破壊判定電圧値9341は、それぞれ、図38の破壊判定電流値933と非破壊判定電流値934に対応する電圧値である。ここで、破壊は導電状態であり、非破壊は非導電状態である。
不揮発性メモリの複数のブロックの隣に1ブロック分の領域(をチップ認証装置に割り当てることが可能である。例えば、図35や図36のようにレイアウト可能である。このように、チップ認証装置と不揮発性メモリ装置とは異なるものであるが、ビット線902、あるいは、ワード線503を共有することでチップ面積を節約することが可能である。
〈第十の実施形態〉
図50は、認証素子977の一例を示す図である。ワード線503とビット線902の交差するところにヒューズ抵抗985を配置している。ワード線503とビット線902の間に高電圧を印加することで、選択された交差点のヒューズ抵抗985に電界ストレスを加えることが可能である。
一般に、ビューズ抵抗は、高抵抗導電材を二つの端子で挟んだものであり、ヒューズに高電界を印加すれば、確率的にショートして、ワード線503とビット線902の交点は非導電状態になる。ショートしなかった場合(非ショート)、ワード線503とビット線902の交点は導電状態にである。どのアドレスのヒューズがショートするか、あるいは、非ショートのままかはあくまで物理的乱雑さによって決まるので、図22のようなランダムな市松パターンを作ることができる。
ビューズが破壊されたかどうかは、ヒューズ抵抗985に読み出し電圧を印加して判定する。ショートした素子では、読み出し電圧を印加しても電流が流れずらく、例えばメモリの“0”に相当する。ショートしなかった素子では、読み出し電圧が低くても電流が流れやすく、例えばメモリの“1”に相当する。このようなヒューズのショートは、導電体の破壊と同じであり、例えば、エレクトロマイグレーションなどによって引き起こされる。すなわち、エレクトロマイグレーションは確率的に発生し、発生した素子はメモリの“0”に相当し、発生しなかった素子はメモリの“1”に相当する。
図51は、ショート判定のために用いる電流電圧特性である。横軸は、読み出しのためにヒューズ抵抗985に印加される読み出し電圧の絶対値であり、縦軸は、その読み出し電圧に応じてヒューズ抵抗985を通して流れる電流の絶対値である。ショートしなかった素子では、低い電圧にもかかわらず非常に大きな電流が流れる。一方、ショートした素子では、高い電圧においてもほとんど電流が流れない。この差を見極める方法として、ショート判定電圧742における非ショート判定電流値743とショート判定電流値744を設定する。すなわち、絶対値がショート判定電圧742に一致する読み出し電圧をヒューズ抵抗985に印加したときにヒューズ抵抗985を通して流れる電流の絶対値が、非ショート判定電流値743より高ければ、ショートしていないと判定し、ショート判定電流値744より低ければショートしていると判定する。
図51の判定方法には、非ショート判定電流値743とショート判定電流値744の間に一定のギャップがある。このため、読み出し電流の絶対値がこのギャップ内にある素子は、ショートが発生したとも発生しなかったとも判定されない。このような素子は、メモリに相当すると“0”でも“1”でもないため、“X”と表記することにする。このとき、素子のセルアレイ上のアドレス(番地)と、対応する素子のデータの一例を示すと、認証素子977がキャパシタ982の場合と同様に、図39のようになる。一例として、左から、“1”、“1”、“0”、“1”、“X”、“0”、“0”、“1”、…、“0”となっている。このように、五番目の素子のデータが“X”になっている。ここで、“X”を取り除き、図22のような白黒のみの市松模様を得る方法は、キャパシタ982の場合と同様なので、ここでの説明は省略する。
実際に読み出す際は、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。行デコーダ972および列デコーダ973は、更に、入出力Pin971に接続している。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図51で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、図23に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
図52は、ヒューズ抵抗985の一例を示す図である。第一導電体1053、第二導電体1052、絶縁膜910、導電体接合部970からなる素子構造である。第一導電体1053には第一電極1055が接続しており、第二導電体1052には第二電極1054が接続している。第一電極1055は、ワード線503あるいはビット線902のどちらか一方に接続し、他方は第二電極1054に接続する。導電体接合部970の太さには製造上のばらつきがある。そのため、抵抗値にばらつきがあり、ショートする確率にもばらつきがある。したがって、電圧ストレスを繰り返し印加してショートと非ショートの確率がほぼ50%になるように調整することが望ましい。
一般に、電気的ストレスによって導電体接合部970の高抵抗部位には熱が発生し、エレクトロマイグレーションを起し易くなる。エレクトロマイグレーションを起すと、その箇所で導電体接合部970は断線する。更に高温のため酸化が進み、断線箇所には絶縁膜910の一部が入り込み、図52は図41にように変化する。こうして、非ショート状態からショート状態に遷移する。
更に電気的ストレスを印加し続けると、断線箇所の絶縁膜910(図41参照)が絶縁破壊を起し、今度はショート状態から非ショート状態に遷移する。このとき、図41から図52に回復する。
非ショート状態からショート状態に遷移する場合と、ショート状態から非ショート状態に遷移する場合と、どちらかを人為的に優勢にするような制御は難しい。その中間状態が“X”である。したがって、電気的ストレスを繰り返すうちに“X”とラベルされた中間状態の割合が所定の値以下になることもあれば、それ以上になることもある。しかしながら、中間状態の素子の数が一定以上に多いと、データ数の減少によりパターンの乱雑さが不足する。そこで、素子に電気的ストレスを印加するための電圧パルスを繰り返す方法が必要になる。一例として、第一破壊パルス電圧を印加した後、図51で説明した方法で破壊検査を実施する。このとき、“X”の割合が一定値より高ければ、続いて、第二破壊パルス電圧を印加し、再び図51の方法で破壊検査を行う。まだ“X”の割合が多ければ、第三パルス電圧を印加し、図51の方法で破壊検査を行う。この作業を、“X”の割合が所定の値以下になるまで繰り返す。この作業の繰り返し回数の上限値もあらかじめ設定する必要がある。作業の繰り返し上限に到達しても“X”の割合が所定の値以下にならない場合、そのチップ認証装置は検査不合格となる。検査に合格した場合、上述したように“X”とラベルされた素子のアドレスをバッファに記録し、対応する素子のデータを取り除く。不合格の場合廃棄する。ただし、素子の数が十分多ければ、多少中間状態の割合が多くとも、十分に大きな物理的乱雑さを確保することが可能である。この場合、“X”の割合を検査するこの作業は省くことができる。
一方、物理的乱雑さを最大限に利用するには、“0”と“1”の割合がおおよそ50%ずつになることが望ましい。“X”とラベルされた素子は、パルス電圧印加を繰り返すうちに確率的に“0”に遷移すので、図40のように、パルス印加時間を一定にしつつパルスの波高をパルス電圧を印加する毎に一定電圧ずつ上昇させることが好ましい。こうして、たとえ1回目のパルスを与えた際は“1”の数が多くても複数回パルス印加するうちに“0”の割合が増えていく。このように、パルス印加回数、パルス印加時間、及び、パルス波高の上昇方法を最適化することにより、取り除かれるデータ(“X”)の割合をできる限り低減しつつ、“0”と“1”の割合をほぼ50%ずつに近づけることが可能となる。失敗した場合、上述したように、検査不合格とみなし不良品として廃棄する。こうして、十分な物理的乱雑さを有し、安定した“0”と“1”のデータからなる良品のみを製品として出荷することができる。
〈第十一の実施形態〉
図53は、図50に採用されるヒューズ抵抗985の別の一例である。これは、配線パターン作成時に一緒に作成する。したがって、導電体930は通常のメタル配線と同じ材料であることが望ましく、パターン形状は、図53のように、少なくとも一部は矩形に曲がっていることが望ましい。この曲がった部分に熱が溜まり易くなり、エレクトロマイグレーションを起して断線し易くなる。ワード線コンタクト504はワード線503に接続し、ビット線コンタクト505はビット線902に接続する。図54は、このような認証素子977を用いたレイアウトの一例である。
また、図53の矩形に曲がった部分は通常のメタル配線より細いことが望ましい。例えば、図55に示すように、矩形部分以外のところをレジスト931でマスクし、酸化工程を経てスリミングすることでこのような構造が作成できる。図56は、一例として、その結果を示したものである。
〈第十二の実施形態〉
導電体930は、複数回矩形に曲げることも可能である。図57は、その一例であり、9箇所矩形に曲がっている。図58は、このようなパターンをレイアウトした一例である。こうして、ショートの確率を配線パターニングで調節することが可能である。
〈第十三の実施形態〉
図52の構造は、例えば、第一導電体1053の側から絶縁膜910を通してビアを開け、そこに導電体材料を埋め込んで作成できる。ここで一例として、ビア深さの狙い値を第一導電体1053と第二導電体1052の間の距離に等しくなるようビア製造工程を調整した場合を考える。たまたま狙い値どおりに作成されると、図60の中央の素子のように、ビアが第一の導電体1053と第二の導電体1052の間にぴたりと収まる。
しかしながら、一般には、図61に示すように、ビアのアスペクト比や穴径には製造上のばらつきがあり、ビア深さもばらつく。こうして、ある素子では断線(ショート)し、またある素子は接続する。例えば、この図60の例では、左からショート、接続、接続である。
ワード線503とビット線902で選択した認証素子977のビアがショートしていれば電流は流れず、例えばメモリセルに対応させると“0”状態となる。反対に、ショートしていなければ電流が流れ、例えばメモリセルに対応させると“1”状態となる。 “0”を白、“1”を黒とみなすと、図22のようなランダムな白黒のパターンが生成される。
ここで、ビア深さのばらつきは大量生産プロセスにおける製造上のばらつきなので、どのようなアルゴリズムとも関係が無い。したがって、物理的ばらつきとみなすことができる。また、必ずしも電気的なストレスを印加することなく、図22のような白黒のランダムな市松パターンを得ることができる。
しかしながら、メタルビア製造後に、ショートと非ショートの割合を測定し、所望の値からのずれが大きければ電気的ストレスを印加して回復を期待することが可能である。例えば、ショートしている場合(例えば、図60の左端のセル)、電気的ストレスを繰り返すうちビア底と第二導電体1052の間の絶縁膜(910の一部)が絶縁破壊し、ショート状態から非ショート状態に転移することがある。反対に、非ショートの場合(例えば、図60の中央)、電気的ストレスを繰り返すうちエレクトロマイグレーションを起こして非ショート状態からショート状態に転移することがある。
しかしながら、絶縁破壊とエレクトロマイグレーションのどちらを優勢にするかを人為的に制御するのは難しい。そこで、データ“1”が優勢の場合、“1”の素子のみ選択してストレスを印加し、反対に、データ“0”が優勢の場合、“0”の素子のみ選択してストレスを印加する。こうして、“1”と“0”の割合を検査しながら、所望の割合に近づくまで、このようなストレスの印加を繰り返すことが望ましい。このとき、各々選択された素子に繰り返し印加するストレスパルスは、例えば、図40のようなものを使うことができる。
実際に読み出す際には、まず、読み出す素子のアドレスを選択しなければならない。アドレスを選択するには、図23に示すように、行デコーダー972で素子行を選択し、列デコーダー973で素子列を選択する。行デコーダ972および列デコーダ973は、更に、入出力Pin971に接続している。この素子行と素子列の組み合わせがアドレスである。図39の例では、このアドレスを2進法で表記している。こうして選択されたアドレスに対応する素子が接続するワード線503とビット線902の間に、図51で説明したような方法で読み出し電圧を印加し、対応するアドレスのデータ(“1”あるいは“0”)を読み出す。読み出し後、選択する素子のアドレスを変更し、図23に示す素子アレイ中の全ての素子のデータが読み出されるまでこの作業を繰り返す。
〈第十四の実施形態〉
本発明に関するチップ認証装置は、例えば、図62のように、少なくともチップ認証モジュール60および入出力制御モジュール800を、チップ10に搭載することができる。この入出力制御モジュール800は、入出力制御回路、ワード線制御回路、ビット線制御回路、データ入出力バッファー等を含むことができる。
〈第十五の実施形態〉
本発明に関するチップ認証装置は、例えば、図63のように、少なくともチップ認証モジュール600と、認証装置用制御モジュール880と、入出力制御モジュール810と、スクランブル装置モジュール890と、及び中間コード用バッファーモジュール900とを、チップ100に搭載することができる。この入出力制御モジュール810は、入出力制御回路およびデータ入出力バッファーを含むことができるが、(第十四の実施形態)の入出力制御モジュール800とは異なり、ワード線制御回路及びビット線制御回路を含まない。スクランブル装置モジュール890は、図28のスクランブル装置604を含み、スクランブル装置604が生成する中間コードは、入出力制御モジュール810とは独立した中間コード用バッファーモジュール900に格納され、外部からの要請があってもデータをチップ100の外部に出力しない。これは、中間コードをチップ内に閉じ込めるためである。認証装置用制御モジュール880は、ワード線制御回路、ビット線制御回路、データバッファーを含むことができる。
外部入出力50から入力コード{a(i),b(j)}が入力されると、入出力制御モジュール810が、入力コード{a(i),b(j)}をスクランブル装置モジュール890に渡す。ここで、式2に基づいて生成された中間コード{a(i),f(j)}、あるいは、中間出力{f(j)}は、中間コード用バッファーモジュール900に一時格納され、認証装置用制御モジュール880に引き渡される。認証装置用制御モジュール880は、内部のワード線制御回路、ビット線制御回路、及びデータバッファーを駆使して、チップ認証モジュール600から、中間コード{a(i),f(j)}に応じ、式3に基づいて出力コード{c(i,j)}を読み出し、内部のデータバッファーに一時格納する。認証装置用制御モジュール880は、内部のデータバッファーから出力コード{c(i,j)}を呼び出し入出力制御モジュール810に引き渡す。入出力制御モジュール810は、外部入出力50を通じて出力コード{c(i,j)}をチップ400の外に出力する。こうして、中間出力{f(j)}をチップ内に閉じ込めることが可能となる。
〈第十六の実施形態〉
一般に、電子装置を構成するチップは一つとは限らない。図14のネットワークの一例を構成する第一、第二、…、第五の周辺装置も、少なくとも一つ以上のチップから構成されていると考えられる。一例として、図64では、周辺装置140が、第一のチップ110、第二のチップ120、…、第Nのチップ130から構成される。このうち、必ずしもすべてのチップがチップ認証装置を搭載している必要はない。図64の例では、第一のチップ110のみがチップ認証装置60、および、図62と図63で説明したチップ認証のための関連モジュールを搭載している。
〈第十七の実施形態〉
上述したように、チップ認証装置の“0”と“1”の割合は、ほぼ50%とすることが望ましい。これは、シャノンのエントロピーの考え方にしたがって、物理的乱雑さのエントロピーを可能な限り最大に近づけるためである。
“0”と“1”の割合の調整は、上述したように、電気的ストレスの印加の仕方によってある程度調整できる。目標値50%に対して、例えば、ずれを10%程度とするのが望ましいが、ずれを10%以内にできなくても、本発明を利用することは可能である。その場合、物理的乱雑さのエントロピーを増大させるため、要素数、すなわち、チップ認証装置を構成する認証素子の数を増やせば良い。目標値50%(誤差±10%)は、チップ認証装置の占めるチップ面積を節約するための要請に過ぎず、不可欠な条件ではない。上述したように、N=K=128でも十分であろう。
上述した方法によって、この物理的乱雑さのエントロピーは、シリコンダイ単位で最大に近づけるすることも可能であるし、ウェハー単位で最大に近づけることも可能であるし、ロット単位で最大に近づけることも可能であるし、ライン単位で最大に近づけることも可能であるし、工場単位で最大に近づけることも可能である。
シリコンダイ単位でエントロピーを最大に近づける場合、チップ認証装置内の複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
ウェハー単位でエントロピーを最大に近づける場合、ウェハー内の複数のチップにまたがって複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
ロット単位でエントロピーを最大に近づける場合、ロット内の複数のウェハーおよび複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
ライン単位でエントロピーを最大に近づける場合、ライン内の複数のロット、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
工場単位でエントロピーを最大に近づける場合、工場内の複数のライン、複数のロット、複数のウェハー、および、複数のチップにまたがって、複数の認証素子のデータを読み出し、上述した電気的ストレスの印加の仕方によって“0”と“1”の割合を50%ずつに近づけることが可能である。ここでは、必ずしも、全認証素子を検索する必要はない。
上述のように、認証素子をサンプリングする実体は、チップ、ウェハー、ロット、ライン、工場と、生産管理の都合上便宜拡大することが可能である。拡大の仕方は、特定のラインの製造期間を区切って行ってもよく、特定の工場の製造期間を区切って行ってもよい。ここでは、必ずしも、全認証素子を検索する必要はない。
〈第十八の実施形態〉
物理的乱雑さの発生源は複数あって構わない。ただし、一つの認証素子内に存在する発生源は互いに直列の関係にあり、複数の認証素子にまたがって存在する発生源はお互い並列の関係にある。
したがって、一つの認証素子内に2つの発生源がある場合、どちらか一方が非導電状態にある場合、認証素子そのものが非導電状態となる。それ以外(どちらも導電状態)の場合のみ、認証素子は導電状態である。すなわち、論理回路で言えば、一つの認証素子に含まれる発生源は否定論理和(NOR)の関係を満たす。
〈第十九の実施形態〉
図34の例では、入力コードの桁数がNであるのに対し、出力コードの桁数がNの2乗となっている。入力コードと出力コードの桁数をそろえるのは簡単である。例えば、次の式4を用いて、図34での出力{c(i,j)}を更に新しい出力{c’ (j)}に変化する。
Figure 2017028354
ただし、jは1からNまでの自然数である。図65では、式4で変換された新しい出力{c’ (j)}を出力する様子を示している。入力コードと出力コードの桁数をそろえなくて良い場合には省略できる。
〈第二十の実施形態〉
図53、図54、図56、及び、図57の導電体細線は、製造および加工条件により、電気的パルスで破壊する以前から断線、もしくは、異常に抵抗の高いことがある。この断線もしくは異常高抵抗の状態は、例えばメモリの“0”状態に相当し、製造および加工条件により確率的に発生し、物理的乱雑さを反映していると考えられる。この場合、電気的パルスを印加する必要はない。また、図53は、本実施形態の一例に過ぎず、導電体930は、矩形に曲がっている必要もない。
上記一連の実施形態では、認証素子977のアドレスの指定の仕方は、認証素子の二つの端子に、それぞれワード線503とビット線902を接続するものである。認証素子977に印加する電圧は、それぞれ選択するワード線503及びビット線902の間に印加する。認証素子977を流れる電流は、それぞれ選択するワード線503及びビット線902の間を流れる。
〈第二十一の実施形態〉
アドレスの別の一例として、図66に図示するように、認証素子977は、少なくとも第一の端子994および第二の端子993を有する。第一の端子994は、ビット線902に接続する第二の制御ゲート997、及び、ワード線503に接続する第一の制御ゲート996を通して、制御電極990に接続する。アドレスの指定は、ビット線902とワード線503で行う。第二の端子993は、接地している。読み出し電圧や素子破壊のためのストレス電圧は、制御電極990に印加される。こうして、選択されたアドレスの素子にのみ、読み出し電圧および破壊のためのストレス電圧が印加される。ストレス電圧の一例は、図40の通りである。導通状態であれば、電流は、ワード線503およびビット線902で選択された制御電極990を流れる。
〈第二十二の実施形態〉
近年、廃棄家電の不法投棄が世界的な問題になっている(例えば、非特許文献3参照)。報道によれば、リサイクル制度が施行されている欧州でも3分の2が不正ルートを経由し、アジアやアフリカで違法に処理されている。特に中国では、ボードから強引に引きちぎったICチップのパッケージ上のラベルを張替え、格安の新品として市場で売りさばかれている。不正廃棄した先進国にも輸出され還流されていると考えられる。ボードから引きちぎるとき、物理的・熱的に損傷を受けたICチップは、正常に機能せず、多くの家電製品の故障や不具合の原因になる。一部のICチップの用途は、家電製品のみに留まらない。特に、DRAMやフラッシュメモリなど、汎用メモリIC製品は用途が広く、偽造チップが高速列車や航空機の制御系などに部品として使われた場合、大惨事を招く恐れがあるため注意が必要である。
図67は、チップ偽造の手口を簡単に示すものである。例えば、廃棄家電のボードに、A社の汎用メモリチップが採用されている。このチップを強引に剥ぎ取り、B社のラベルを張り、B社の新品チップとして格安で販売、輸出する。もちろん、これは偽造品である。残念ながら、不法リサイクルそのものを直ぐに解決する方法はない。有効な対策は、仕入れたICチップ製品が偽造品でないかどうか、工場の組み立て現場ですばやく判定する方法である。幸い、本願のチップ認証装置は、チップ内のIC回路そのものに認証をつけることが可能である。
偽造検査方法を図68を使って説明する。ここでは、チップメーカー毎に偽造判定用パスコードを公開する。組立工場の仕入れ担当では、各社の公開パスコードを、仕入れたチップに入力し、それぞれ出力コードを読み取る。その出力コードが各チップメーカーに正しいかどうか問い合わせる。説明を簡単にするため、ここでは、全てのチップメーカーから返答があると仮定する。図67で偽造されたチップであれば、A社とB社から自社の製品であると返事が来る。このように2社以上から自社の製品であると回答された場合、偽造チップと判定する。また、A社から自社のチップであると返答された場合も、B社のラベルが付いているので偽造品と判定される。C社から自社製品であると返答された場合、やはり、B社のラベルが付いているので偽造されたものと判定される。いずれの場合も、B社は偽造品を販売するメーカーとして、組立工場の仕入れ担当に知られることになる。B社のみから自社製品であると返答された場合は、図67で偽造されたものではなく、B社の製品である。
ラベルには、メーカー名以外にも、製品番号、ロット番号等の製品情報が示されている。ラベルが示すメーカー名と、出力コードによって判明するメーカー名が一致しても、ラベルの製品番号やロット番号に示された情報が異なることがある。これは、メーカー内部の不正による偽造か、当該メーカーの製品管理がずさんであることを示す。
以上により、偽造判定の条件をまとめる。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が異なる場合、偽造と判定する。ラベルが示すメーカー名と、出力コードによって判別するメーカー名が等しい場合、更に、ラベルに示されるその他の情報(例えば、製品番号、ロット番号、製造年月日等)を、当該出力コードに対応して照会する。ここで一致したとき初めて偽造ではないと判定する。一致しなかった場合、メーカー内部での偽造か、当該メーカーの製品管理がずさんであると判断される。
上述した実施形態において、説明のために用いら入れたMOSFETは、MOS型トランジスタのことである。一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型の拡散層と、第一導電型半導体基板上のゲート絶縁膜と、ゲート絶縁膜上のゲート電極に接続するゲート端子と、一方の第二導電型拡散層に接続するソース端子と、他方の第二導電型拡散層に接続するドレイン端子と、から構成される。また、前記第一導電型半導体基板、前記ゲート絶縁膜、および、前記ゲート電極は、MOSキャパシタを構成している。
上述した実施形態において、説明のために用いら入れた不揮発性メモリトランジスタは、一例として、第一導電型半導体基板上に作成した、二つの空間的に乖離した第二導電型拡散層と、第一導電型半導体基板上のトンネル膜と、トンネル膜上の電荷蓄積層と、電荷蓄積層上の層間絶縁膜と、層間絶縁膜上の制御ゲート電極と、から構成される。NOR型の素子配列では、前記二つの第二導電型拡散層のどちらか一方は、素子ごとにビット線に接続する。一方、NAND型の素子配列では、前記二つの第二導電型拡散層は、それぞれ隣の素子と共有し、基板上で直列構造となる。直列した複数の素子の更に両端に余った拡散層の一方は、ドレイン側選択ゲートを挟んでビット線に接続し、他方は、ソース側選択ゲートを挟んでソース線に接続する。また、NAND型配列では、素子間に配置する第二導電型拡散層を、薄い第一導電型拡散層に置き換えたり、省略したりすることが可能である。
上述した実施形態において、説明のために用いら入れたPN接合は、第一導電型の半導体と、第二導電型の半導体を接触させたものである。一例として、第一導電型の半導体基板表面に第二導電型拡散層を作成すると、両者の界面に自動的に形成される。したがって、MOS型トランジスタや不揮発性メモリトランジスタにも自動的に形成されている。
上述した実施形態において、説明のために用いら入れたショットキー接合は、半導体と導電体を接触させたものである。PN接合も、ショットキー接合も、ダイオード接合の一種である。
上記において、MOS型トランジスタ、不揮発性メモリトランジスタ、及びPN接合の構造を説明するために用いた、第一導電型半導体基板は、第一および第二導電型半導体基板の広い領域に作成された、第一導電型拡散層(通常ウェル)で置き換えることも可能である。
前記認証素子は、半導体製造の前工程で大量生産されるチップに作りこまれる半導体素子である。
この発明によれば、電子装置のネットワークを、周辺装置と、周辺装置の登録状況を管理する基幹サーバーとに分割し、基幹サーバーは中央管理とし、中央管理の手が行き届かない周辺装置には、半導体製造の前工程でチップ内に作り込まれる物理的チップ認証装置を含む半導体チップを搭載し、システム全体のセキュリティを向上し、周辺装置への遠隔攻撃を効率よく未然に防ぐことが可能となる。ここで、ネットワークとは、上述した認証通信により接続されるあらゆる電子装置間のものであり、特定のシステムの内か外かに関わらない。また、偽造チップ問題に対する対策も、同じ認証素子によるチップ認証装置で実現できる。
なお、本発明の技術範囲は上記実施の形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲において種々の変更を加えることが可能である。特に、携帯電話のSIMカードのようなものがIoT/IoE用の周辺装置に用いられるようなビジネスモデルに有効である。
中央管理の行き届かない周辺装置を無数に抱えるネットワークの装置間認証を、物理的乱雑さに基づいて発生したチップ認証を用いることによって、チップレベルで安全に実現することが可能となる。
1、10、100チップ
2 ファームウェア
3 認証制御デバイス
4 認証コード(ID)
5、50 外部入出力装置(I/O)
6 認証システム(従来例の一例)
11 第一の認証
12 第二の認証
13 第三の認証
21 第一のチップ認証装置
22 第二のチップ認証装置
31 入力信号誤差
32 出力信号誤差
42、102、402 入力コード
43 登録コード
60、600 チップ認証装置/モジュール
61 チップ認証装置搭載チップ
71 第一の装置
72 第二の装置
73 第三の装置
74 第四の装置
75 第五の装置
80 交信シリーズ
83 偽交信シリーズ
92 第二の装置の正規使用者
93 遠隔攻撃者
110 第一のチップ
120 第二のチップ
130 第Nのチップ
140 周辺装置
202、403 登録コード
302、401 内部メモリ
400 基幹サーバー
410 第一の周辺装置
420 第二の周辺装置
430 第三の周辺装置
440 第四の周辺装置
450 第五の周辺装置
503 ワード線
504 ワード線コンタクト
505 ビット線コンタクト
530 導電体ビア
601、605 乱数発生装置
602、606 コード発生装置
604 スクランブル装置
611 チップ認証装置セルアレイ
614 スクランブル装置セルアレイ
742 ショート判定電圧
743 非ショート判定電流値
744 ショート判定電流値
790 ページバッファ回路
791 ビット線接続ゲート
7910 ビット線接続トランジスタ
800、810 入出力制御モジュール
880 認証装置用制御モジュール
890 スクランブル装置モジュール
900 中間コード用バッファーモジュール
902 ビット線
910 絶縁膜
930 導電体
931 レジスト
932 破壊判定電圧
933 破壊判定電流値
934 非破壊判定電流値
960 チップ認証用素子アレイの等価回路
970 導電体接合部
971 入出力ピン
972 行デコーダー
973 列デコーダー
977 認証素子
980 外部入出力制御回路
982 キャパシタ
983 トランジスタ
984 不揮発性メモリトランジスタ
985 ヒューズ抵抗
986 PN接合(ダイオード)
987 ショットキー接合(ダイオード)
990 制御電極
993 第二の端子
994 第一の端子
996 第一の制御ゲート
997 第二の制御ゲート
1051 導電体先端部
1052 第二導電体
1053 第一導電体
1054 第二電極
1055 第一電極
1400 第一の基幹サーバー
1410 第一の共通パスコード
2400 第二の基幹サーバー
2410 第二の共通パスコード
3400 第三の基幹サーバー
3410 第三の共通パスコード
4101 第一の認証
4201 第二の認証
4301 第三の認証
4302 第四の認証
4402 第五の認証
4502 第六の認証
9330、9331 破壊判定電圧値
9340、9341 非破壊判定電圧値
9811 ビット線側選択ゲート

Claims (21)

  1. 複数のネットワークユニットに分割され、前記ネットワークユニットが、一つの基幹サーバーと、前記基幹サーバーにのみ接続する複数の周辺装置から構成され、前記ネットワークユニット内において、前記基幹サーバーは、少なくとも一つのパスコードと、前記基幹サーバーと接続する個々の周辺装置に対応する少なくとも一つの登録コードからなる登録コードのリストを保持し、前記基幹サーバーは、ネットワークを介して前記パスコートを前記周辺装置の各々に送信し、前記周辺装置は、前記基幹サーバーから受信したパスコードに対応して、それぞれ固有の出力コードを前記基幹サーバーに送信し、前記周辺装置は、それぞれ異なるチップ認証装置を搭載した、少なくとも一つのチップを構成部品として含み、前記パスコードは、前記周辺装置内で、所定の方法で、入力コードに変換され、前記入力コードは、前記ワード線および前記ビット線に所定の方法で割り当てられる電子的信号のデータの集合体であり、前記チップ上に割り当てられるアドレスは、それぞれ異なる番号を割り当てられたワード線郡と、それぞれ異なる番号を割り当てられたビット線郡と、から定義され、前記アドレスの行番号は、前記チップ上にレイアウトされるワード線およびビット線の一方の番号で定義され、前記アドレスの列番号は、前記ワード線および前記ビット線の他方の番号で定義され、前記チップ認証装置は、前記ビット線郡および前記ワード線郡が構成する素子領域に配置される認証素子から構成され、前記素子領域において、第一の行郡、および、第一の列郡が定義するアドレスに配置される前記認証素子からなる、第一の乱数発生装置を含み、前記認証素子は、前記チップの製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされるワード線及びビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記第一の乱数発生装置は、前記認証素子が電子的に出力する電子データの集合体として、第一の乱数コードを発生し、前記出力コードは、前記入力コードと前記第一の乱数コードとを、所定の方法で合成して出力するで電子信号の集合であり、前記登録コードは、前記出力コードを、事前登録によって前記基幹サーバーに保存した電子データであり、前記基幹サーバーは、前記出力コードを、前記登録コードのリストと個々に比較し、対応する個々の周辺装置の正当性を評価する、ことを特徴とする電子装置のネットワーク。
  2. 前記パスコードを2進法で展開した要素を、それぞれ第一の入力配列と第二の入力配列に分割し、前記第一の入力配列の各要素を前記第一の乱数発生装置の対応する行にそれぞれ割り当て、前記第二の入力配列の各要素を前記第一の乱数発生装置の対応する列にそれぞれ割り当て、前記第一の乱数発生装置の行数と列数の和は、前記第一の入力配列の要素数と前記第二の入力配列の要素数の和と、等しいか、あるいは、それ以上である、ことを特徴とする、請求項1記載の電子装置のネットワーク。
  3. 前記チップ認証装置は、第二の乱数発生装置を含み、前記第二の乱数発生装置は、前記チップ上に割り当てられる第二の行郡および第一の列郡が定義するアドレスに配置される認証素子から構成されることを特徴とする、請求項1記載の電子装置のネットワーク。
  4. 前記第二の乱数発生装置において、任意に選択された列番号に対応して、電子的に出力される認証素子のデータを、列方向に加算して2で割って得た余りと、前記第一の入力配列と前記第二の入力配列のそれぞれ対応する番号の要素を更に加算して2で割った余りを、前記列番号に応じて配列し、中間出力として出力するスクランブル装置を、更に含むことを特徴とする、請求項1記載の電子装置のネットワーク。
  5. 前記周辺装置は、更に、中間コード用バッファーモジュールを含み、前記中間コード用バッファーモジュールは、前記中間出力を、前記周辺装置の認証作業中に、一時的に、格納することを特徴とする請求項1記載の電子装置のネットワーク。
  6. 前記周辺装置は、更に、第一のコード生成装置を含み、前記第一のコード生成装置は、前記第一の入力配列の要素と、前記第二の入力配列要素、もしくは、前記中間出力の要素と、前記第一の乱数コードの要素とを、選択されたビット線および選択されたワード線で指定されるアドレス毎に加算して2で割った余りを、前記アドレス毎に出力し、前記出力コードを生成することを特徴とする、請求項1記載の電子装置のネットワーク。
  7. 前記認証素子は、少なくとも二つの端子を有し、前記二つの端子の間に少なくとも一回以上パルス電圧を印加することにより、前記認証素子を確率的に破壊し、前記二つの端子の間に所定の読み出し電圧を入力し、前記二つの端子の間を流れる電流の絶対値が、第一の閾電流値より高いとき、前記第一の値を出力したとみなし、第二の閾電流値より低いとき、前記第二の値を出力したとみなし、前記第一の閾電流値は、前記第二の閾電流値より高く、前記電流値が第二の閾電流値より高く、第一の閾電流値より低い場合、第三の値を出力したとみなし、前記第一および前記第二の値を出力する認証素子から、前記チップ認証装置を構成することを特徴とする、請求項1記載の電子装置のネットワーク。
  8. 前記第一の値を出力する第一の状態に属する認証素子の割合が、前記第二の値を出力する第二の状態に属する認証素子の割合より、小さければ、一部あるいは全ての前記第二の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項7記載の電子装置のネットワーク。
  9. 前記第一の状態に属する認証素子の割合が、前記第二の状態に属する認証素子の割合より、大きければ、一部あるいは全ての前記第一の状態に属する認証素子を選択し、更に、電気的ストレスを印加することを特徴とする、請求項7記載の電子装置のネットワーク。
  10. 前記認証素子は、前記チップの製造工程によって一括して製造されるキャパシタであり、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、第一の端子は前記ワード線に接続し、第二の端子は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  11. 前記認証素子は、前記チップの製造工程によって一括して製造されるダイオード接合であり、前記ダイオード接合の一端は、前記ワード線に接続し、他方の端は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線に印加することによって、前記ダイオードを、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  12. 前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタであり、前記MOS型トランジスタは、少なくとも、第一の端子、第二の端子、第三の端子を有し、前記第一の端が前記ワード線に接続し、前記第二の端子が前記ビット線に接続し、前記第三の端子が接地され、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一の端子は、前記第一導電型半導体基板、もしくは、前記第一導電型ウェル上のゲート絶縁膜の表面上に存在し、前記パルス電圧を前記ワード線に印加することによって、前記ゲート絶縁膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  13. 前記認証素子は、前記チップの製造工程によって一括して製造されるMOS型トランジスタとキャパシタから構成され、前記キャパシタは、絶縁膜を第一の端子と第二の端子で挟んだものであり、前記第二の端子は接地され、前記MOS型トランジスタは、少なくとも、第三の端子、第四の端子、第五の端子を有し、前記第三の端が前記ワード線に接続し、前記第四の端子が前記ビット線に接続し、前記第五の端子が前記第一の端子に接続され、前記第四の端子と前記第五の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第三の端子は、前記第一導電型半導体基板上のゲート絶縁膜の表面上に存在し、前記ワード線と前記ビット線の間に前記MOSトランジスタをオン状態にする転送電圧を印加している間に、前記パルス電圧を前記ビット線に印加することによって、前記キャパシタの絶縁膜を、確率的に破壊し、前記転送電圧を印加している間に、前記読み出し電圧を、前記ビット線に印加することによって、前記ビッ線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  14. 前記認証素子は、前記チップの製造工程によって一括して製造される不揮発性メモリの制御トランジスタであり、前記選択トランジスタは、少なくとも第一の端子、第二の端子、第三の端子、を有し、前記第一の端子が前記ワード線に接続し、前記第二の端子が前記ビット線に接続し、前記第三の端子が接地され、前記第二の端子と前記第三の端子は、第一導電型半導体基板、もしくは、第一導電型ウェルの表面に作成した、空間的に分離した二つの第二導電型拡散層にそれぞれ接続し、前記第一導電型半導体基板、若しくは、前記第一導電型ウェル上には、トンネル膜、電荷蓄積層、層間導電層、制御ゲートが順に積層され、前記第一の端子は、前記制御ゲートに接続し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  15. 前記認証素子は、前記チップの製造工程によって一括して製造される、複数の不揮発性メモリの選択トランジスタを半導体基板上で直列したものであり、少なくとも、複数のゲート端子、および、一つのビット線端子を有し、前記ゲート端子は、それぞれ前記ワード線に接続され、前記ビット線端子は、前記ビット線に接続され、前記選択トランジスタは、前記半導体基板上に、トンネル膜、電荷蓄積層、層間導電層、制御ゲートが順に積層され、前記制御ゲート上に前記ゲート端子が存在し、前記パルス電圧を前記ワード線に印加することによって、前記トンネル膜を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  16. 前記認証素子は、前記チップの製造工程によって一括して製造されるヒューズ抵抗であり、前記ヒューズ抵抗は、抵抗材を第一の端子と第二の端子で挟んだものであり、第一の端子は前記ワード線に接続し、第二の端子は、前記ビット線に接続し、前記パルス電圧を、前記ワード線及び前記ビット線の間に印加することによって、前記抵抗材を、確率的に破壊し、更に、前記読み出し電圧を、前記ワード線及び前記ビット線の間に印加することによって前記ビット線もしくは前記ワード線に流れる電流を、前記第一の閾電流値および前記第二の閾電流値と比較することを特徴とする、請求項7記載の電子装置のネットワーク。
  17. 前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域に挟まれた絶縁膜と、前記第一の導電体領域から、前記絶縁膜を貫通して前記第二の導電体領域に達する空間的な穴を開ける、開口部形成工程と、前記開口部に導電性物質を埋め込む、導電材埋め込み工程と、によって製造される導電体結線孔と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義するワード線及びビット線に接続し、前記導電体結線孔の長さの製造狙い値が、前記第一及び第二の導電体領域の間の距離に等しく、前記開口部形成工程および導電材埋め込み工程を経て製造された複数の導電体結線孔の長さが、確率的に、前記第一及び第二の導電体領域の間の距離より長く、あるいは、短く、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項7記載の電子装置のネットワーク。
  18. 前記認証素子は、第一の導電体領域と、第二の導電体領域と、前記第一及び第二の導電体領域を架橋する導電性細線と、前記第一及び第二の導電体領域に挟まれ、前記導電性細線を包む絶縁膜と、から構成され、前記第一及び第二の導電体領域の少なくとも一方が前記認証素子のアドレスを定義するワード線及びビット線に接続し、前記導電性細線の製造工程、あるいは、前記導電性細線を包む絶縁膜の製造工程における、製造工程上のばらつきによって、前記導電性細線が確率的に断線し、前記チップ認証装置を構成する複数の認証素子の電気的特性を物理的に乱雑にすることを特徴とする、請求項7記載の電子装置のネットワーク。
  19. 前記周辺装置に接続する少なくとも一つの基幹サーバーは、前記周辺装置が任意の媒体から受信する入力信号をモニターし、前記周辺装置と該媒体のアクセスを管理することを特徴とする、請求項1記載の電子装置のネットワーク。
  20. 前記基幹サーバーは、前記基幹サーバーに接続する周辺装置の内部メモリーを個々に読み出し、前記基幹サーバーに保存されているパスコードと比較し、一致するコードが含まれているかどうかを判定し、含まれていない場合、更に前記基幹サーバーに保存されている登録コードの中に一致するものがあるかどうか判定し、含まれていない場合、前記周辺装置を公正と認可し、前記検査工程を、前記基幹サーバーに接続する全ての周辺装置に対して行うことを特徴とする、請求項1記載の電子装置のネットワーク。
  21. 半導体製造工程で大量生産されるチップと、前記チップを製造する、第一のチップメーカーと、前記チップの表面のラベルにメーカー名が記載された、第二のチップメーカーと、前記チップを用いて製品を組み立てるチップユーザーと、から構成され、前記チップは、それぞれ固有のチップ認証装置を含み、前記第一のチップメーカーが公開する、第一の公開パスコードの入力に対応して、第一の出力コードを出力し、前記第二のチップメーカーが公開する、第二の公開パスコードの入力に対応して、第二の出力コードを出力し、前記チップ認証装置は、前記チップ上にレイアウトされる、ビット線郡およびワード線郡が構成する素子領域に配置される認証素子から構成され、前記素子領域において、前記ワード線及び前記ビット線が定義するアドレスに配置される前記認証素子からなる、物理的乱数発生装置を含み、前記認証素子は、前記半導体製造工程によって一括して製造される半導体素子であり、前記チップ上にレイアウトされるワード線及びビット線に関連して印加される電子的入力に対して、少なくとも、第一の値と、第二の値とを、電子的に出力し、前記物理的乱数発生装置は、前記認証素子が、電子的入力に対応して電子的に出力する電子データの集合体として、乱数コードを発生し、前記第一の出力コードは、前記第一の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であり、前記第二の出力コードは、前記第二の公開パスコードの入力に応じて、前記物理的乱数発生装置が出力する電子信号の集合であり、前記第一のチップメーカーは、前記第一の公開パスコードと、前記第一の出力コードからなるリストを管理し、前記第二のチップメーカーは、前記第二の公開パスコードと、前記第二の出力コードからなるリストを管理し、前記チップユーザーは、前記第一の公開パスコードを、前記チップに入力し、出力される電子信号の集合を読み取り、読み取りコードとし、前記第一のチップメーカーに、前記読み取りコードを送信し、前記第一の出力コードと前記読み取りコードの比較を依頼し、前記第一の出力コードと前記読み取りコードが一致した場合、前記チップを偽造品と判定することを特徴とする、チップ認証装置の利用方法。

JP2015141721A 2015-07-16 2015-07-16 電子装置ネットワーク及びチップ認証方式 Pending JP2017028354A (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP2015141721A JP2017028354A (ja) 2015-07-16 2015-07-16 電子装置ネットワーク及びチップ認証方式
US15/210,928 US10176127B2 (en) 2015-07-16 2016-07-15 Network unit of electronic appliances, network of electronic appliances, and method of using chip identification device
TW105122507A TWI590091B (zh) 2015-07-16 2016-07-15 電子裝置的網路單元、電子裝置的網路系統、檢查方法及晶片認證裝置的利用方法
EP16179645.3A EP3118770B8 (en) 2015-07-16 2016-07-15 Network of electronic appliances
CN201610563063.7A CN106685909B (zh) 2015-07-16 2016-07-18 电子装置的网络单元、电子装置的网络及芯片认证装置的利用方法
US16/218,600 US10387342B2 (en) 2015-07-16 2018-12-13 Method of using a chip identification device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015141721A JP2017028354A (ja) 2015-07-16 2015-07-16 電子装置ネットワーク及びチップ認証方式

Publications (1)

Publication Number Publication Date
JP2017028354A true JP2017028354A (ja) 2017-02-02

Family

ID=56617993

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015141721A Pending JP2017028354A (ja) 2015-07-16 2015-07-16 電子装置ネットワーク及びチップ認証方式

Country Status (5)

Country Link
US (2) US10176127B2 (ja)
EP (1) EP3118770B8 (ja)
JP (1) JP2017028354A (ja)
CN (1) CN106685909B (ja)
TW (1) TWI590091B (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2017169049A (ja) * 2016-03-16 2017-09-21 株式会社東芝 データ生成装置、電子デバイスおよび認証システム
JP2018125825A (ja) * 2016-02-03 2018-08-09 力旺電子股▲ふん▼有限公司eMemory Technology Inc. 自己保護及び反複製能力を備えた電子装置及び関連する方法
WO2021241590A1 (ja) * 2020-05-26 2021-12-02 渡辺浩志 電子装置のネットワーク及び電子装置
JP2021190980A (ja) * 2020-05-26 2021-12-13 浩志 渡辺 電子装置のネットワーク及び電子装置
JP2022035606A (ja) * 2020-08-21 2022-03-04 株式会社東海理化電機製作所 システムおよび制御装置

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5796725B2 (ja) * 2013-03-22 2015-10-21 カシオ計算機株式会社 認証処理装置、認証処理方法及びプログラム
US20170132434A1 (en) * 2015-11-06 2017-05-11 Mentor Graphics Corporation Measure variation tolerant physical unclonable function device
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
EP3682471B1 (en) * 2017-09-15 2023-11-08 Cryptography Research, Inc. Packaging techniques for backside mesh connectivity
WO2019180743A2 (en) * 2018-03-21 2019-09-26 Indian Institute Of Technology Bombay System and method for generating random bit string in an integrated circuit
US10878930B1 (en) * 2019-07-12 2020-12-29 Taiwan Semiconductor Manufacturing Company Ltd. Layout structure of memory array
US11294693B2 (en) 2020-04-14 2022-04-05 Ncr Corporation Virtualized transaction terminal platform
US11293956B2 (en) 2020-05-28 2022-04-05 Nanning Fugui Precision Industrial Co., Ltd. Real-time power monitoring method, electronic device and computer program product
CN113010470B (zh) * 2021-03-30 2023-06-20 上海西井信息科技有限公司 边缘节点远程控制系统、方法、设备及存储介质
TWI848388B (zh) * 2022-10-03 2024-07-11 力晶積成電子製造股份有限公司 物理不可複製功能產生器結構及其操作方法
US12354641B2 (en) * 2023-11-20 2025-07-08 Nanya Technology Corporation Memory devices selecting and protecting a possible attacked word line based on the previous refreshed word lines and the relevant methods

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090165086A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Random number generation through use of memory cell activity
JP2009545908A (ja) * 2006-07-31 2009-12-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビット・ストリングを生成する装置および方法
EP2230794A2 (en) * 2009-03-16 2010-09-22 Technische Universität München Towards Electrical, Integrated Implementations of SIMPL Systems
JP2011526113A (ja) * 2008-06-27 2011-09-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アイテムの真正性、完全性、及び/又は物理的状態を検証するための装置、システム、及び方法
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
US20140165141A1 (en) * 2012-12-07 2014-06-12 International Business Machines Corporation Self-authenticating chip
JP2014528195A (ja) * 2011-08-16 2014-10-23 アイシーティーケー カンパニー リミテッド 事物知能通信でpufに基づいた装置間セキュリティ認証装置及び方法
JP2014229968A (ja) * 2013-05-20 2014-12-08 日本電気株式会社 端末認証システムおよび端末認証方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7697920B1 (en) * 2006-05-05 2010-04-13 Boojum Mobile System and method for providing authentication and authorization utilizing a personal wireless communication device
CA2591968C (en) * 2004-12-21 2014-02-25 Emue Holding Pty Ltd Authentication device and/or method
US8683210B2 (en) * 2008-11-21 2014-03-25 Verayo, Inc. Non-networked RFID-PUF authentication
CN103440451A (zh) * 2013-07-23 2013-12-11 福州福大海矽集成电路有限公司 一种基于des的电子系统认证芯片
US20150071432A1 (en) * 2013-09-09 2015-03-12 Qualcomm Incorporated Physically unclonable function based on resistivity of magnetoresistive random-access memory magnetic tunnel junctions
US9489504B2 (en) * 2013-10-03 2016-11-08 Qualcomm Incorporated Physically unclonable function pattern matching for device identification
US9219722B2 (en) * 2013-12-11 2015-12-22 Globalfoundries Inc. Unclonable ID based chip-to-chip communication

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009545908A (ja) * 2006-07-31 2009-12-24 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ ビット・ストリングを生成する装置および方法
US20090165086A1 (en) * 2007-12-21 2009-06-25 Spansion Llc Random number generation through use of memory cell activity
JP2011526113A (ja) * 2008-06-27 2011-09-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アイテムの真正性、完全性、及び/又は物理的状態を検証するための装置、システム、及び方法
EP2230794A2 (en) * 2009-03-16 2010-09-22 Technische Universität München Towards Electrical, Integrated Implementations of SIMPL Systems
JP2012043517A (ja) * 2010-08-23 2012-03-01 Renesas Electronics Corp 半導体装置
JP2014528195A (ja) * 2011-08-16 2014-10-23 アイシーティーケー カンパニー リミテッド 事物知能通信でpufに基づいた装置間セキュリティ認証装置及び方法
US20140165141A1 (en) * 2012-12-07 2014-06-12 International Business Machines Corporation Self-authenticating chip
JP2014229968A (ja) * 2013-05-20 2014-12-08 日本電気株式会社 端末認証システムおよび端末認証方法

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2018125825A (ja) * 2016-02-03 2018-08-09 力旺電子股▲ふん▼有限公司eMemory Technology Inc. 自己保護及び反複製能力を備えた電子装置及び関連する方法
US10476680B2 (en) 2016-02-03 2019-11-12 Ememory Technology Inc. Electronic device with self-protection and anti-cloning capabilities and related method
JP2017169049A (ja) * 2016-03-16 2017-09-21 株式会社東芝 データ生成装置、電子デバイスおよび認証システム
WO2021241590A1 (ja) * 2020-05-26 2021-12-02 渡辺浩志 電子装置のネットワーク及び電子装置
JP2021190980A (ja) * 2020-05-26 2021-12-13 浩志 渡辺 電子装置のネットワーク及び電子装置
US12328301B2 (en) 2020-05-26 2025-06-10 Yukiko Watanabe Electronic apparatus and network of electronic apparatus
JP7692555B2 (ja) 2020-05-26 2025-06-16 浩志 渡辺 電子装置のネットワーク及び電子装置
JP2022035606A (ja) * 2020-08-21 2022-03-04 株式会社東海理化電機製作所 システムおよび制御装置
JP7487046B2 (ja) 2020-08-21 2024-05-20 株式会社東海理化電機製作所 システムおよび制御装置

Also Published As

Publication number Publication date
TW201705030A (zh) 2017-02-01
US20170024339A1 (en) 2017-01-26
EP3118770A2 (en) 2017-01-18
TWI590091B (zh) 2017-07-01
EP3118770A3 (en) 2017-04-12
CN106685909B (zh) 2020-07-14
EP3118770B8 (en) 2020-03-11
EP3118770B1 (en) 2019-10-30
US10176127B2 (en) 2019-01-08
US20190114273A1 (en) 2019-04-18
CN106685909A (zh) 2017-05-17
US10387342B2 (en) 2019-08-20

Similar Documents

Publication Publication Date Title
JP2017028354A (ja) 電子装置ネットワーク及びチップ認証方式
JP6393376B2 (ja) 電子装置のネットワーク、電子装置及びその検査工程
JP6329510B2 (ja) 電子装置、電子装置ネットワークユニット、電子装置ネットワーク及びチップ認証方式
CN107819583A (zh) 密钥的防滥用技术
US12328301B2 (en) Electronic apparatus and network of electronic apparatus
JP7692555B2 (ja) 電子装置のネットワーク及び電子装置
EP3070875B1 (en) Method of physical chip identification for networks of electronic appliance
JP7683858B2 (ja) 自動認証icチップ
Skorobogatov Is Hardware Security prepared for unexpected discoveries?
KR20240153889A (ko) 보안 장치 및 이를 포함하는 기판

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170630

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180731

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180904

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20181026

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190326