JP5839659B2 - 半導体装置 - Google Patents

半導体装置 Download PDF

Info

Publication number
JP5839659B2
JP5839659B2 JP2011136134A JP2011136134A JP5839659B2 JP 5839659 B2 JP5839659 B2 JP 5839659B2 JP 2011136134 A JP2011136134 A JP 2011136134A JP 2011136134 A JP2011136134 A JP 2011136134A JP 5839659 B2 JP5839659 B2 JP 5839659B2
Authority
JP
Japan
Prior art keywords
unique code
semiconductor device
specific information
information
area
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.)
Expired - Fee Related
Application number
JP2011136134A
Other languages
English (en)
Other versions
JP2013005314A (ja
Inventor
大介 押田
大介 押田
祐之 廣川
祐之 廣川
暁 山崎
暁 山崎
藤森 隆
隆 藤森
茂雅 塩田
茂雅 塩田
茂 古田
茂 古田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics Corp
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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2011136134A priority Critical patent/JP5839659B2/ja
Priority to EP15192813.2A priority patent/EP3002698B1/en
Priority to EP12169346.9A priority patent/EP2544119B1/en
Priority to US13/524,000 priority patent/US8782432B2/en
Priority to KR1020120066241A priority patent/KR20120140223A/ko
Priority to CN201210209584.4A priority patent/CN102842009B/zh
Priority to CN201710109751.0A priority patent/CN106845283A/zh
Publication of JP2013005314A publication Critical patent/JP2013005314A/ja
Priority to US14/294,730 priority patent/US9245153B2/en
Application granted granted Critical
Publication of JP5839659B2 publication Critical patent/JP5839659B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C7/00Arrangements for writing information into, or reading information out from, a digital store
    • G11C7/24Memory cell safety or protection circuits, e.g. arrangements for preventing inadvertent reading or writing; Status cells; Test cells
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/72Protecting 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 in cryptographic circuits
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1408Protection against unauthorised use of memory or access to memory by using cryptography
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • G06F21/79Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data in semiconductor storage media, e.g. directly-addressable memories
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2129Authenticate client device independently of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Description

本発明は半導体装置に関し、特に内蔵メモリ等に保持している情報に対するセキュリティ対策がなされた半導体装置に関する。
近年、半導体装置に対する不正アクセスへの耐性向上、或いは、模造品対策のために暗号化技術を利用したセキュリティ技術が多く提案されている。この暗号化技術では、暗号鍵が用いられる。この暗号鍵を用いたセキュリティ対策の例が特許文献1、2に開示されている。
特許文献1では、記録媒体にデータを書き込む際に、暗号鍵に基づき生成されたダミーアドレスに、ダミーデータを書き込むことで記録媒体に正規のデータとダミーデータとをマージした状態で記録する技術が開示されている。特許文献1では、これによりデータコピー等の不正を防止する。また、特許文献2では、ダイジェストテーブルを用いて、不変情報片に暗号化を施して暗号値を生成し、この暗号値にハッシュ関数を適用してハッシュ値を取得し、これを不変情報片に1対1で対応する記録アドレスとする技術が開示されている。このとき、特許文献2では、ダイジェストテーブル中に複数の暗号鍵を有し、暗号鍵毎に記録アドレスを可変する。これにより、特許文献2では、同一のハッシュ値を生成する不変情報片を用いて攻撃を試みる等の攻撃に対する攻撃耐性を向上させることができる。
特開平11−045508号公報 特開2010−074355号公報
例えば、暗号化通信を行う半導体装置では、通信に用いる暗号鍵等の秘匿対象情報は、半導体装置の製造後にフラッシュメモリ等の不揮発性メモリに書き込まれる。これらの不揮発性メモリはCPU(Central Processing Unit)からアクセスが可能であり、不揮発性メモリに格納されている情報を容易に読み出すことが可能である。そのため、半導体装置を解析された場合、この秘匿対象情報が格納される記憶領域の情報を盗み出される問題がある。この問題に対し、特許文献1に記載の技術では、暗号鍵に基づいて一意に生成されたダミーアドレスにダミーデータを書き込むことでセキュリティレベルを向上させている。しかしながら、デバイスによって同じアドレスにダミーデータが書き込まれるため、不揮発性メモリ領域に格納されているデータを大量に集めることで、ダミーデータが書き込まれているアドレスが解読されやすいという課題がある。また、特許文献2に記載の技術では、ダミーデータを書き込んだアドレスを記憶する装置を半導体装置内部に用意し、ダミーデータを書き込むアドレスが同一になる事を防いでいる。しかしながら、アドレス生成時に書き込んだアドレスの確認を行うシーケンスが発生する事によるレスポンスの低下や、新たにアドレスを記憶する回路が必要となることでコストが増加する課題がある。さらに、秘匿対象情報とダミーデータを順次書き込むため、半導体装置と書き込み機間に不正アクセスする、いわゆるサイドチャネルアタックなどの攻撃により、秘匿対象情報が個別に読み出せてしまうという課題がある。
本発明にかかる代表的な半導体装置は、デバイスに固有なユニークコードを持ち、前記ユニークコードからユニークコード対応情報を生成する。前記半導体装置では、前記ユニークコード対応情報と関連付けられる領域に秘匿対象情報を暗号化した特定情報が格納される記憶領域を持ち、前記ユニークコード対応情報を用いて前記記憶領域から読み出された前記特定情報を復号して前記秘匿対象情報を生成する。
前記半導体装置では、デバイスに固有なユニークコードにより秘匿対象情報を格納する領域が指定される。つまり、本発明にかかる半導体装置では、デバイス毎に秘匿対象情報が格納される領域が変動する。このため、不揮発性メモリ領域のデータを大量に集めた場合でも、秘匿対象情報の格納されている領域の特定は困難である。また、デバイスに固有なユニークコードにより一意的に決定されるアドレス領域を用いるため、ダミーデータの書き込みを行ったアドレスを記憶する装置を必要としない。さらには、秘匿対象情報とダミーデータをマージして一度に半導体装置に書き込むため、サイドチャネルアタックのような攻撃に対しても、秘匿情報を特定することが困難である。これにより、本発明にかかる半導体装置では、解析による秘匿対象情報の盗み出しを難しくし、セキュリティを向上させることができる。
本発明にかかる半導体装置によれば、秘匿対象情報に対するセキュリティレベルを向上させることができる。
実施の形態1にかかる半導体装置及び半導体装置に特定情報を書き込む書き込み機のブロック図である。 実施の形態1にかかる書き込み機の動作手順を示すシーケンス図である。 特定情報を用いた実施の形態1にかかる半導体装置の動作手順を示すシーケンス図である。 実施の形態2にかかる半導体装置及び半導体装置に特定情報を書き込む書き込み機のブロック図である。 実施の形態2にかかる書き込み機の動作を示すフローチャートである。 実施の形態2にかかる書き込み機の動作手順を示すシーケンス図である。 特定情報を用いた実施の形態2にかかる半導体装置の動作手順を示すシーケンス図である。 実施の形態3にかかる半導体装置及び半導体装置に特定情報を書き込む書き込み機のブロック図である。 実施の形態3にかかる書き込み機の動作手順を示すシーケンス図である。 実施の形態4にかかる半導体装置及び半導体装置に特定情報を書き込む書き込み機のブロック図である。 実施の形態4にかかる書き込み機の動作手順を示すシーケンス図である。 特定情報を用いた実施の形態4にかかる半導体装置の動作手順を示すシーケンス図である。 特定情報の記憶領域への格納方法の別の例を示す概略図である。 特定情報の記憶領域への格納方法の別の例を示す概略図である。
実施の形態1
以下、図面を参照して本発明の実施の形態について説明する。実施の形態1にかかる半導体装置1及び半導体装置1に特定情報を書き込む書き込み機2のブロック図を図1に示す。
図1に示すように、半導体装置1は、ユニークコード生成部10、ユニークコード対応情報生成部(例えば、ダイジェスト生成部11)、記憶領域12、メモリコントローラ13、復号部(例えば、ハッシュ関数復号部14)、暗号化部15を有する。
ユニークコード生成部10は、デバイスに固有なユニークコードUCを生成する。例えば、ユニークコード生成部10は、半導体装置1が備えるメモリ素子(例えば、SRAM(Static Random Access Memory))の起動時の初期値を用いてユニークコードUCを生成する。ユニークコードUCは、同じ設計の回路から生成される値であるが、実際に半導体装置として製造される回路は個々にばらつきを有するという性質を利用して生成されるコードである。このような技術は、PUF(Physical Unclonable Function)と呼ばれ、耐タンパチップのような特殊なハードウェアを必要とせず、データの高い秘匿性を実現することができる。また、ユニークコードUCとしては、PUF以外にも、CPUID等の半導体装置に固有の情報を利用することができる。
ダイジェスト生成部11は、ユニークコードからユニークコード対応情報(例えば、ダイジェスト値DI)を生成する。実施の形態1では、ユニークコード対応情報生成部としてダイジェスト生成部11を利用したが、ユニークコード対応情報生成部としては、ユニークコードUCから一意にアドレス値に相当する情報を生成するものであれば良く、ダイジェスト生成部以外のアルゴリズムで動作する回路を利用することも可能である。記憶領域12は、ダイジェスト値DIと関連付けられる領域(例えば、ダイジェスト値DIをアクセス対象のアドレスとした場合、ダイジェスト値DIで示される領域)に秘匿対象情報を暗号化した特定情報が格納される。なお、記憶領域12は、フラッシュメモリ等の不揮発性メモリの一部であっても、不揮発性メモリの全領域であってもよい。この記憶領域12は、秘匿情報を暗号化した特定情報が格納されるメモリ領域であって、電源を遮断しても格納している情報を保持される記憶装置である。
メモリコントローラ13は、ダイジェスト値DIに基づき記憶領域に対するアクセスを行うためのアドレスを生成し、当該アドレスに対応する領域から情報を読み出す。また、メモリコントローラ13は、書き込み機2から書き込み命令があった場合、当該書き込み命令に従って記憶領域12に情報を書き込む。
より具体的には、半導体装置1に格納される特定情報HF2は、書き込み機2で生成される。そして、書き込み機2は、特定情報HF2を書き込む際に、ダミー値Ddと特定情報HF2とをマージして書き込み命令を発行する。このとき、書き込み機2は、特定情報HF2を格納する領域としてユニークコードUCのダイジェスト値DIを特定情報HF2の書き込みアドレスとして指定する。そして、メモリコントローラ13は、半導体装置1のダイジェスト生成部11がユニークコードUCから生成するダイジェスト値DIをリードアドレスとして特定情報HF2を読み出す。
ハッシュ関数復号部14は、メモリコントローラ13がユニークコードUCに関連付けられた領域から読み出した特定情報HF2を受信する。そして、ハッシュ関数復号部14は、特定情報HF2をユニークコードUCで復号して秘匿対象情報(例えば、ハッシュ関数HF1)を復号する。この秘匿対象情報HF1は、暗号化処理に用いられるハッシュ関数(例えば、暗号鍵)である。暗号化部15は、ハッシュ関数HF1を用いて送信対象情報を暗号化して暗号化済み情報を生成する。
また、図1に示すように、書き込み機2は、ダイジェスト生成部21、格納部22、ハッシュ関数暗号化部23、ダミー値発生部24、セレクタ25、バッファ26を有する。
ダイジェスト生成部21は、ダイジェスト生成部11と同じアルゴリズムにより、ユニークコードUCからダイジェスト値DIを生成する。ダイジェスト生成部21に入力されるユニークコードUCは、ダイジェスト生成部11に入力されるものと同じものであり、半導体装置1から送信される。つまり、ダイジェスト生成部21において生成されるダイジェスト値DIは、半導体装置1のダイジェスト生成部11で生成されるダイジェスト値DIと同じ値となる。
格納部22には、半導体装置1で暗号鍵として利用される秘匿対象情報(例えば、ハッシュ関数HF1)が格納される。ハッシュ関数暗号化部23は、格納部22からハッシュ関数HF1を読み出して、ハッシュ関数HF1をユニークコードUCで暗号化した特定情報HF2を生成する。
ダミー値発生部24は、特定情報HF2と共に半導体装置1の記憶領域12に書き込まれるダミー値Ddを生成する。ダミー値Ddは、例えば、乱数発生装置などで与えられる情報や、ハッシュ関数HF1とは異なる値を暗号化した偽の暗号化情報である。
セレクタ25は、バッファ26に書き込む情報を選択する回路である。バッファ26は、ダミー値Ddと特定情報HF2とを一時的に記憶する記憶装置である。バッファ26は、例えば、DRAM(Dynamic Random Access Memory)等の不揮発性メモリである。このバッファ26は、半導体装置1の記憶領域12と同容量の記憶装置であることが好ましい。
より具体的には、セレクタ25は、半導体装置1のメモリコントローラ13がダイジェスト値DIを用いて読み出し動作を行うアルゴリズムと同じアルゴリズムでバッファ26に情報を書き込む。例えば、実施の形態1にかかる書き込み機2では、セレクタ25は、バッファ26の領域のうちダイジェスト値DIで示されるアドレスの領域に特定情報HF2を書き込み、バッファ26の他のアドレスで示される領域にはダミー値Ddを書き込む。そして、書き込み機2は、バッファ26に格納されている情報をマージして半導体装置1に送信する命令を発行する。
続いて、実施の形態1にかかる書き込み機2の動作について詳細に説明する。そこで、図2に書き込み機2の動作手順を示すシーケンス図を示す。
図2に示すように、書き込み機2は、まず、ダイジェスト生成部21においてユニークコードUCを受信する(ステップS1)。そして、ダイジェスト生成部21は、ダイジェスト値DIを生成する(ステップS2)。このダイジェスト値DIは、セレクタ25に送信される(ステップS3)。
続いて、書き込み機2は、ハッシュ関数暗号化部23においてユニークコードUCを受信する(ステップS4)。そして、ハッシュ関数暗号化部23は、ハッシュ関数HF1をユニークコードUCで暗号化して特定情報HF2を生成する(ステップS5)。この特定情報HF2は、セレクタ25に送信される(ステップS6)。
続いて、書き込み機2は、ダミー値発生部24においてダミー値Ddを生成する(ステップS7)。このダミー値Ddは、セレクタ25に送信される(ステップS8)。このダミー値の生成は、特定情報HF2を除いたバッファ領域が埋まるように生成する。この生成に関しては、少ないビットのダミー値を複数回生成することも、一度に生成することも可能である。
セレクタ25は、受信した特定情報HF2をバッファ26においてダイジェスト値DIをアドレスとする領域に書き込むと共に、バッファ26の他の領域にはダミー値Ddを書き込む(ステップS9)。そして、書き込み機2は、バッファ26に格納された特定情報HF2とダミー値Ddとをマージして半導体装置1に送信する(ステップS10)。
これにより、半導体装置1の記憶領域12には、ダイジェスト値DIをアドレスとする領域に特定情報HF2が格納され、他の領域にはダミー値Ddが格納される。
続いて、特定情報HF2を用いた半導体装置1の動作について説明する。そこで、図3に特定情報HF2を用いた実施の形態1にかかる半導体装置の動作手順を示すシーケンス図を示す。
図3に示すように、半導体装置1は、まず、ユニークコード生成部10で生成されたユニークコードUCをダイジェスト生成部11及びハッシュ関数復号部14に送信する(ステップS11、S17)。続いて、ダイジェスト生成部11は、受信したユニークコードUCに基づきダイジェスト値DIを生成する(ステップS12)。このダイジェスト値DIは、メモリコントローラ13に送信される(ステップS13)。
続いて、メモリコントローラ13は、受信したダイジェスト値DIをリードアドレスとしてリード命令RD[DI]を発行する(ステップS14)。そして、記憶領域12は、リード命令RD[DI]に応じてダイジェスト値DIに関連付けられたアドレスに格納されている特定情報HF2をメモリコントローラ13に送信する(ステップS15)。続いて、メモリコントローラ13は、受信した特定情報HF2をハッシュ関数復号部14に送信する(ステップS16)。
ハッシュ関数復号部14は、受信した特定情報HF2を、受信したユニークコードUCにより復号してハッシュ関数HF1を生成する(ステップS18)。このハッシュ関数HF1は、暗号化部15に送信される(ステップS19)。そして、半導体装置1は、ハッシュ関数HF1を利用して暗号化通信を開始する(ステップS20)。
ここで、一般的な半導体装置を解析して不正にデータを取得する方法としては、以下のような方法がある。
(1)半導体装置をFIB(Focused Ion Beam)を用いて加工し、プローブを用いて半導体装置を物理的に解析する方法。
(2)半導体装置にレーザなどの電磁波を照射したり、電源端子にノイズを挿入したりすることでCPUを暴走させて不正にデータを取得するフォルトツリー解析。
(3)半導体装置の消費電流量を観測し、鍵データを解析するリーク解析。
(4)半導体装置の信号端子に直接接続し、信号情報を読み出す方法。
このような不正な解析を回避するために、高いセキュリティレベルが必要な分野では、セキュリティレベルの高いマイコン(以下、セキュアマイコンという)が用いられている。このセキュアマイコンには、配線領域へのシールド、光や信号ノイズを検出する機能、信号に乱数信号を組み合わせて電流をかく乱する機能などが実装されている。
このように、セキュアマイコンを用いることで第三者が不正に半導体装置を解析することを防止することができる。しかしながら、セキュアマイコンを用いた場合は、不正解析を防止できる反面、その耐タンパ性により半導体装置メーカー等が不良解析や故障解析を実施することができなくなるという問題があった。特に、自動車に用いられる車載用のマイコン(ECU等)では、高信頼性が必要であるため、半導体装置の不良解析や故障解析が必要となる。このような理由から、車載用のマイコンにはセキュアマイコンよりもセキュリティレベルが低い汎用のマイコン(以下、汎用マイコンという)が広く用いられてきた。しかし、近年では、車載用マイコンのセキュリティの脆弱性をターゲットとした攻撃例が報告されている。したがって、車載用のマイコンでは、汎用マイコンを使用しつつ、半導体装置のセキュリティレベルを向上させることが可能な暗号通信システムが必要とされていた。
実施の形態1にかかる半導体装置では、暗号化された特定情報HF2を自身のユニークコードUCから生成されたユニークコード対応情報(例えば、ダイジェスト値DI)と関連付けられる領域に格納する。これにより、半導体装置1では、デバイス毎に異なる領域に特定情報HF2で格納されることになるため、攻撃者から特定情報HF2が格納された領域そのものを秘匿することができる。従って、実施の形態1にかかる半導体装置1では、半導体装置1に格納された特定情報HF2のセキュリティを向上させることができる。また、実施の形態1にかかる半導体装置1では、上記のセキュアマイコンを用いることなくセキュリティを向上させることができる。
また、実施の形態1にかかる半導体装置1では、特定情報HF2は、CPU(Central Processing Unit)等からアクセス可能な領域である記憶領域に格納される。しかし、格納する特定情報HF2は、自身のユニークコードUCにより暗号化された情報である。そして、実施の形態1にかかる半導体装置1では、ハッシュ関数HF1を必要に応じてその都度生成する。そのため、メンテナンス等においては、特定情報HF2の元の情報であるハッシュ関数HF1に対応する暗号鍵を有するメンテナンス者がハッシュ関数HF1の不具合を解析することができる。一方、攻撃者が万が一この特定情報HF2を読み出すことができた場合であっても、攻撃者は、特定情報HF2がどのようなアルゴリズムで暗号化されているかを理解することができないため、特定情報HF2からハッシュ関数HF1を復号することができない。つまり、実施の形態1にかかる半導体装置1は、秘匿対象情報であるハッシュ関数HF1に対するメンテナンス性を犠牲にすることなくセキュリティを向上させることができる。
また、実施の形態1にかかる半導体装置1では、自身のユニークコードUCを利用してハッシュ関数HF1を暗号化することで特定情報HF2を生成する。そのため、実施の形態1にかかる半導体装置1では、特定情報HF2を復号する際に、自身のユニークコードUCを利用するのみで良く、サーバー等のデータベースに接続するなどして復号に用いる暗号鍵を取得する必要がない。つまり、実施の形態1にかかる半導体装置1では、サーバー等との接続にかかるセキュリティ対策を必要としない。
さらに、実施の形態1にかかる半導体装置1では、特定情報HF2を格納する記憶領域の容量として書き込み機2のバッファ26の容量以上に確保する必要がない。そのため、実施の形態1にかかる半導体装置1では、半導体装置1に実装されている記憶領域を有効に利用することができる。
また、実施の形態1では、書き込み機2から半導体装置1へは、ダミー値と特定情報HF2とをマージした状態で書き込みを行う。これにより、書き込み機2から半導体装置1への通信経路に体してサイドチャネルアタック等の攻撃があった場合においても、攻撃者はダミー値と特定情報HF2とを区別することができない。また、書き込み機2から半導体装置1にハッシュ関数HF1の情報を送信する際に、ハッシュ関数HF1を暗号化した特定情報HF2として送信する。これにより、万が一、攻撃者が特定情報HF2を判別できたとしても、暗号化アルゴリズムが不明である限りハッシュ関数HF1を攻撃者に取得されることがない。このような観点からも実施の形態1にかかる半導体装置1及び書き込み機2は、秘匿対象情報であるハッシュ関数HF1に対するセキュリティを向上させることができる。
実施の形態2
実施の形態2にかかる半導体装置3及び半導体装置3に特定情報を書き込む書き込み機4のブロック図を図4に示す。図4に示すように、半導体装置3は、実施の形態1にかかる半導体装置1にデバイス固有のユニークコードのエラー訂正に用いるデータ(例えば、ECCコード)が格納される格納部31と、エラー訂正回路(例えば、ECC回路32)を追加したものである。また、書き込み機4は、実施の形態1にかかる書き込み機2にデバイス固有のユニークコードのエラー訂正に用いるデータ(例えば、ECCコード)及びエラー訂正を行ったデバイス固有のユニークコードを比較検証するデータ(例えば、CRCコードテーブル)が格納される格納部41と、エラー訂正回路(例えば、ECC回路42)と、ユニークコードの比較検証を行うCRC回路43と、を追加したものである。
半導体装置3のECC回路32は、ユニークコード生成部10が生成したユニークコードUCに含まれるエラーを訂正して訂正済みユニークコードCUCを生成する。より具体的には、ECC回路32は、格納部31からユニークコードUCに対応したECCコードを読み出して、当該ECCコードに基づきユニークコードUCのエラーを訂正してエラー訂正済みユニークコードCUCを生成する。
半導体装置3では、このエラー訂正済みユニークコードCUCに基づきダイジェスト生成部11がダイジェスト値DIを生成する。また、半導体装置3では、エラー訂正済みユニークコードCUCに基づきハッシュ関数復号部14が復号処理を行う。
書き込み機4のECC回路42は、ユニークコード生成部10が生成したユニークコードUCに含まれるエラーを訂正して訂正済みユニークコードCUCを生成する。より具体的には、ECC回路42は、格納部41からユニークコードUCに対応したECCコードを読み出して、当該ECCコードに基づきユニークコードUCのエラーを訂正してエラー訂正済みユニークコードCUCを生成する。格納部41に格納されるECCコードは、半導体装置3の格納部31に格納されるECCコードとは同じである。このように2つ装置に同一のECCコードを保持した場合、書き込み機4と半導体装置3との正当性の確認を行うことができるためである。
書き込み機4のCRC回路43は、エラー訂正済みユニークコードCUCと、格納部41に格納されているCRCコードテーブルと、を比較して、エラー訂正済みユニークコードCUCの正当性の判断を行う。CRCコードテーブルは、ECCコードと対応付けられた正当なユニークコードを記録したテーブルデータである。そして、CRC回路43が、エラー訂正済みユニークコードCUCが正当なものであると判定した場合は、ダイジェスト生成部21とハッシュ関数暗号化部23にエラー訂正済みユニークコードCUCを与える。一方、CRC回路43が、エラー訂正済みユニークコードCUCが正当なものではないと判定した場合は、書き込み機4は、ハッシュ関数HF1の書き込み処理を停止する。
続いて、実施の形態2にかかる書き込み機4の動作について説明する。そこで、実施の形態2にかかる書き込み機4の動作を示すフローチャートを図5に示す。
まず、書き込み機4は、半導体装置3からエラー訂正前のユニークコードUCを受信する(ステップS21)。続いて、書き込み機4は、ECCコードを格納部41からECC回路42に送信する(ステップS22)。そして、ECC回路42は、エラー訂正前のユニークコードUCのエラーを訂正してエラー訂正済みユニークコードCUCを生成する(ステップS23)。
続いて、書き込み機4は、CRCコードテーブルを格納部41からCRC回路43に送信する(ステップS24)。続いて、書き込み機4は、CRC回路43にてCRCコードテーブルとエラー訂正済みユニークコードCUCとを比較する(ステップS25)。そして、ステップS25の比較において、CRCコードとエラー訂正済みユニークコードCUCとが不一致である場合(ステップS26のNOの枝)、書き込み機4は特定情報HF2の書き込み処理を停止する。一方、CRCコードとエラー訂正済みユニークコードCUCとが一致した場合(ステップS26のYESの枝)、書き込み機4は特定情報HF2の書き込み処理を進める。
書き込み機4は、ステップS26でCRCコードとエラー訂正済みユニークコードCUCとが一致していると判断された場合、エラー訂正済みユニークコードCUCに基づきダイジェスト値DIを生成する(ステップS27)。また、書き込み機4は、ステップS27に続いて、エラー訂正済みユニークコードCUCを用いてハッシュ関数HF1を暗号化して特定情報HF2を生成する(ステップS28)。
続いて、書き込み機4は、特定情報HF2とダミー値Ddとをバッファ26に保存する(ステップS29)。より具体的には、ステップS29では、バッファ26の領域のうちダイジェスト値DIをアドレスとする領域に特定情報HF2を格納し、バッファ26の領域のうちダイジェスト値DIをアドレスとしない領域にダミー値Ddを格納する。続いて、書き込み機4は、特定情報HF2とダミー値Ddとをマージして半導体装置3に送信する(ステップS30)。
図5に示したフローチャートから、書き込み機4は、CRC回路43においてエラー訂正済みユニークコードCUCが正規のものでないと判断された場合には、半導体装置3に特定情報HF2を送信しない。CRCコードとこれにより、半導体装置3が正規のものでない場合などに、特定情報HF2が非正規の半導体装置3に送信されることを防ぐことができる。
続いて、実施の形態2にかかる書き込み機4の動作手順を示すシーケンス図を図6に示す。図6に示すように、書き込み機4は、まず、半導体装置3からエラー訂正前のユニークコードUCを受信する(ステップS31)。続いて、ECC回路42においてECCコードを用いてユニークコードUCのエラーを訂正し、エラー訂正済みユニークコードCUCを生成する(ステップS32)。このエラー訂正済みユニークコードCUCは、CRC回路43に送信される(ステップS33)。
続いて、書き込み機4では、CRC回路43において、CRCコードテーブル41から該当するCRCコードを適応し、エラー訂正済みユニークコードCUCとCRCコードとを比較し、エラー訂正済みユニークコードCUCの正当性を判定する(ステップS34)。このステップS34の判定において、エラー訂正済みユニークコードCUCが不正なものと判定された場合は、処理はここで停止する。一方、ステップS34の判定において、エラー訂正済みユニークコードCUCが正当なものと判定された場合は、処理が進められる。
ステップS34の処理に続いて、特定情報HF2及びダミー値Ddの生成と、特定情報HF2及びダミー値Ddの送信が行われる。具体的には、書き込み機4では、CRC回路43からダイジェスト生成部21及びハッシュ関数暗号化部23にエラー訂正済みユニークコードUCを送信する(ステップS35、S38)。そして、ダイジェスト生成部21は、エラー訂正済みユニークコードCUCに基づきダイジェスト値DIを生成する(ステップS36)。このダイジェスト値DIは、セレクタ25に送信される(ステップS37)。
続いて、書き込み機4は、ハッシュ関数暗号化部23において、ハッシュ関数HF1をエラー訂正済みユニークコードUCで暗号化して特定情報HF2を生成する(ステップS39)。この特定情報HF2は、セレクタ25に送信される(ステップS40)。
続いて、書き込み機4は、ダミー値発生部24においてダミー値Ddを生成する(ステップS41)。このダミー値Ddは、セレクタ25に送信される(ステップS42)。このダミー値の生成は、特定情報HF2を除いたバッファ領域が埋まるように生成する。この生成に関しては、少ないビットのダミー値を複数回生成することも、一度に生成することも可能である。
セレクタ25は、受信した特定情報HF2をバッファ26においてダイジェスト値DIをアドレスとする領域に書き込むと共に、バッファ26の他の領域にはダミー値Ddを書き込む(ステップS43)。そして、書き込み機4は、バッファ26に格納された特定情報HF2とダミー値Ddとをマージして半導体装置3に送信する(ステップS44)。
続いて、特定情報HF2を用いた半導体装置3の動作について説明する。そこで、図7に特定情報HF2を用いた実施の形態3にかかる半導体装置の動作手順を示すシーケンス図を示す。
図7に示すように、半導体装置1は、まず、ユニークコード生成部10で生成されたエラー訂正前のユニークコードUCをECC回路32に送信する(ステップS51)。そして、ECC回路32は、格納部31からECCコードを読み出して、ユニークコードUCのエラーを停止して、エラー訂正済みユニークコードCUCを生成する(ステップS52)。ECC回路32は、このエラー訂正済みユニークコードCUCをダイジェスト生成部11及びハッシュ関数復号部14に送信する(ステップS53、S59)。続いて、ダイジェスト生成部11は、受信したエラー訂正済みユニークコードCUCに基づきダイジェスト値DIを生成する(ステップS54)。このダイジェスト値DIは、メモリコントローラ13に送信される(ステップS55)。
続いて、メモリコントローラ13は、受信したダイジェスト値DIをリードアドレスとしてリード命令RD[DI]を発行する(ステップS56)。そして、記憶領域12は、リード命令RD[DI]に応じてダイジェスト値DIに関連付けられたアドレスに格納されている特定情報HF2をメモリコントローラ13に送信する(ステップS57)。続いて、メモリコントローラ13は、受信した特定情報HF2をハッシュ関数復号部14に送信する(ステップS58)。
ハッシュ関数復号部14は、受信した特定情報HF2を、受信したエラー訂正済みユニークコードCUCにより復号してハッシュ関数HF1を生成する(ステップS60)。このハッシュ関数HF1は、暗号化部15に送信される(ステップS61)。そして、半導体装置1は、ハッシュ関数HF1を利用して暗号化通信を開始する(ステップS62)。
上記説明より、実施の形態2にかかる半導体装置3は、エラー訂正回路(例えば、ECC回路32)を備えることで、ユニークコードUCがその生成原理からランダムなビットにエラーを含むPUF等であっても当該エラーを訂正してエラーのないユニークコードCUCにより実施の形態1にかかる半導体装置1と同様の動作を行うことができる。PUFは、デバイスに固有の値であり、回路が同じであっても同じ値を有するコードを生成できないことから、PUFを利用することでセキュリティを向上させることができる。
また、ユニークコードUCを生成するためのECCコードは、ユニークコード生成時に半導体装置3と書き込み機4で送受信を行う必要が無いため、ECCコードの秘匿性が守られている。このようなことから、半導体装置3の格納部31に格納されるECCコードと同じECCコードを書き込み機4が有することで書き込み機4に対する半導体装置3の正当性、又は、半導体装置3に対する書き込み機4の正当性を判断することができる。書き込み機4と半導体装置3とのいずれか一方が正当なものでない場合、半導体装置3に格納されるECCコードと書き込み機4に格納されるECCコードとが一致しない。これに対して、エラー訂正の対象となるユニークコードUCは、半導体装置3と書き込み機4とにおいて同一である。同一のユニークコードに対して異なるECCコードを適用した場合、正しいエラー訂正は行われない。そのため、本来のエラー訂正とは異なるエラー訂正が行われたエラー訂正済みユニークコードCUCは、CRCコードテーブル中の値と異なる値を示す。つまり、実施の形態2にかかる書き込み機4では、CRC回路43におけるCRC処理により半導体装置3の正当性又は、半導体装置3に対する書き込み機4の正当性を判断することができる。
さらに、実施の形態2にかかる書き込み機4では、半導体装置3と書き込み機4とのいずれか一方の正当性が疑われる場合には、特定情報HF2の生成処理及び送信処理を停止する。これにより、実施の形態2にかかる書き込み機4によれば、不正な半導体装置3(例えば、模造品)に対して特定情報HF2(及びハッシュ関数HF1)が漏洩することを防止することができる。つまり、実施の形態2にかかる書き込み機4によれば、半導体装置3に対するセキュリティを向上させることができる。
また、実施の形態2では、エラー訂正済みユニークコードCUCの正当性を確認するためにCRC回路43を用いたが、エラー訂正済みユニークコードCUCの正当性は、CRCに限られず、パリティなどのエラーを検出してご訂正を防止できる機能を有している回路であれば他の回路を利用することもできる。
また、実施の形態2にかかる半導体装置3では、書き込み機4に送信するユニークコードUCとしてエラー訂正前のコードを送信する。つまり、半導体装置3と書き込み機4との間の通信経路には、エラーを含むユニークコードUCが伝達される。そのため、実施の形態2にかかる半導体装置3では、通信経路に対してサイドチャネルアタック等の攻撃があった場合にも盗聴されるユニークコードUCがエラーを含むため、攻撃者は盗聴した情報からは正当なユニークコードUCを判別することができない。つまり、実施の形態2にかかる半導体装置3を用いることで、通信経路のセキュリティを向上させることができる。
実施の形態3
実施の形態3にかかる半導体装置3及び半導体装置3に特定情報を書き込む書き込み機4aのブロック図を図8に示す。図8に示すように、実施の形態3では、実施の形態2にかかる書き込み機4からCRC回路を除いた書き込み機4aを備える構成について説明する。
図8に示すように、書き込み機4aでは、CRC回路によるCRC処理を経ることなく、エラー訂正済みユニークコードCUCがダイジェスト生成部21及びハッシュ関数暗号化部23に送信される。このように、実施の形態3にかかる半導体装置3及び書き込み機4aでは、実施の形態2にかかる半導体装置3及び書き込み機4との違いは、CRC回路の有無だけであるため、以下では、書き込み機4aの動作についてのみ説明する。
実施の形態2にかかる書き込み機4の動作手順を示すシーケンス図を図9に示す。なお、図9では、書き込み機4aの動作と書き込み機4の動作との対応付けを行うため、書き込み機4の動作と実施的に同じ動作に対しては同じ符号を付した。
図9に示すように、書き込み機4aは、まず、半導体装置3からエラー訂正前のユニークコードUCを受信する(ステップS31)。続いて、ECC回路42においてECCコードを用いてユニークコードUCのエラーを訂正し、エラー訂正済みユニークコードCUCを生成する(ステップS32)。このエラー訂正済みユニークコードCUCは、ダイジェスト生成部21及びハッシュ関数暗号化部23にエラー訂正済みユニークコードUCに送信される(ステップS35、S38)。そして、ダイジェスト生成部21は、エラー訂正済みユニークコードCUCに基づきダイジェスト値DIを生成する(ステップS36)。このダイジェスト値DIは、セレクタ25に送信される(ステップS37)。
続いて、書き込み機4は、ハッシュ関数暗号化部23において、ハッシュ関数HF1をエラー訂正済みユニークコードUCで暗号化して特定情報HF2を生成する(ステップS39)。この特定情報HF2は、セレクタ25に送信される(ステップS40)。
続いて、書き込み機4は、ダミー値発生部24においてダミー値Ddを生成する(ステップS41)。このダミー値Ddは、セレクタ25に送信される(ステップS42)。このダミー値の生成は、特定情報HF2を除いたバッファ領域が埋まるように生成する。この生成に関しては、少ないビットのダミー値を複数回生成することも、一度に生成することも可能である。
セレクタ25は、受信した特定情報HF2をバッファ26においてダイジェスト値DIをアドレスとする領域に書き込むと共に、バッファ26の他の領域にはダミー値Ddを書き込む(ステップS43)。そして、書き込み機4は、バッファ26に格納された特定情報HF2とダミー値Ddとをマージして半導体装置3に送信する(ステップS44)。
上記説明より、実施の形態3にかかる書き込み機4aでは、CRC回路によるCRC処理を行うことなく特定情報HF2の書き込みを行う。このような場合であっても、半導体装置3と書き込み機4aとのいずれか一方が不正なものあった場合、半導体装置3に書き込まれた特定情報HF2は、半導体装置3のエラー訂正済みユニークコードCUCでは読み出せない。これは、書き込み機4aで生成されるダイジェスト値DIと半導体装置3で生成されるダイジェスト値DIとが異なる値となるためである。また、半導体装置3では、例えば、特定情報HF2を記憶領域12から読み出せたとしても、特定情報HF2の生成に用いたエラー訂正済みユニークコードCUCと半導体装置3で生成されるエラー訂正済みユニークコードCUCとが不一致であるため、ハッシュ関数HF1をハッシュ関数復号部14で復号することができない。
このようなことから、実施の形態3にかかる半導体装置3及び書き込み機4aによれば、互いに正規のものである場合のみハッシュ関数HF1の復号を可能とすることができる。また、実施の形態3にかかる半導体装置3及び書き込み機4aによれば、半導体装置3と書き込み機4aのいずれか一方が不正のものであった場合には、ハッシュ関数HF1の復号を防止することができる。つまり、実施の形態3にかかる半導体装置3及び書き込み機4aによれば、CRC回路を用いることなく高いセキュリティを実現することができる。
実施の形態4
実施の形態4にかかる半導体装置5及び書き込み機6のブロック図を図10に示す。図10に示すように、半導体装置5は、実施の形態1にかかる半導体装置1のユニークコード生成部10に代えて、ユニークコード生成部50を有する。また、半導体装置5では、記憶領域12にダミー値Ddは格納されず、特定情報HF21〜HF2n(nは格納される特定情報の個数を示す値である)が格納される。
ユニークコード生成部50は、複数のユニークコードUC1〜UCn(nは生成されるユニークコードの個数を示す値である)を生成し、ユニークコードUC1〜UCnから1つのユニークコードUCx(xは、選択したユニークコードの番号を示す値である)を選択する。そして、ユニークコード生成部50は、選択したユニークコードUCxをダイジェスト生成部11とハッシュ関数復号部14とに与える。
より具体的には、ユニークコード生成部50は、ユニークコードUC1〜UCn、選択回路52を有する。このユニークコードは、例えば、SRAM回路の初期値などのPUFで構成される。選択回路52は、ユニークコードUC1〜UCnのいずれか1つを選択してユニークコードUCxとして出力する。また、選択回路52は、モード信号MDが入力される。そして、選択回路52は、モード信号MDが通常動作モードを示している場合、ユニークコードUC1〜UCnから選択した任意のユニークコードUCxを出力する。このとき、選択回路52は、選択するユニークコードが要求される度にランダムに選択する。一方、選択回路52は、モード信号MDが書き込みモードを示している場合、ユニークコードUC1からユニークコードUCnを順次選択して出力する。
また、書き込み機6は、格納部22、ハッシュ関数暗号化部61、バッファ62を有する。ハッシュ関数暗号化部61は、半導体装置5が順次送信するユニークコードを用いてハッシュ関数HF1を暗号化して、特定情報HF21〜HF2nを順次生成すると共に、特定情報HF21〜HF2nをバッファ62に格納する。つまり、特定情報HF2nは、ユニークコードUCnによりハッシュ関数HF1を暗号化したものである。バッファ62には、特定情報HF21〜HF2nをバッファ62が格納される。そして、書き込み機6は、バッファ62に格納された特定情報HF21〜HF2nをマージして半導体装置5に送信する。
また、半導体装置5では、書き込み機6から送信された特定情報HF21〜HF2nを記憶領域12に格納する。半導体装置5ではユニークコードUC1〜UCnに対応するダイジェスト値DI1〜DInが生成されるが、特定情報HF21〜HF2nは、暗号化処理に用いられたユニークコードに対応するダイジェスト値をアドレスとする領域に格納される。つまり、記憶領域12は、複数のユニークコードを用いてハッシュ関数HF1を暗号化した特定情報HF21〜HF2nを、ユニークコードUC1〜UCnと関連付けられる複数の領域に格納する。なお、図10では、ダイジェスト値DI1〜DInのいずれか1つを示すものとしてダイジェスト値DIxを示した。
続いて、実施の形態4にかかる書き込み機6の動作手順を示すシーケンス図を図11に示し、図11を参照して実施の形態4にかかる書き込み機6の動作手順を説明する。
図11に示すように、書き込み機6は、ハッシュ関数暗号化部61は、ユニークコードUC1〜UCnを受信する(ステップS71)。これに応じて、ハッシュ関数暗号化部61は、ユニークコードUC1〜UCnを利用してハッシュ関数HF1を暗号化し、特定情報HF21〜HF2nを生成する(ステップS71)。この特定情報HF21〜HF2nはバッファ62に送信される(ステップS73)そして、書き込み機6は、バッファ62に格納されている特定情報HF21〜HF2nをマージして半導体装置5に送信する(ステップS74)。そして、半導体装置5では、特定情報HF21〜HF2nを、記憶領域12のユニークコードUC1〜UCnと関連付けられる複数の領域に格納する。
続いて、特定情報HF21〜HF2nを用いた半導体装置5の動作について説明する。そこで、図12に特定情報HF21〜HF2nを用いた実施の形態4にかかる半導体装置5の動作手順を示すシーケンス図を示す。
図12に示すように、半導体装置5は、まず、ユニークコード生成部10で生成されたユニークコードUC1〜UCnのうちからランダムに選択した1つをユニークコードUCxとして出力する(ステップS81)。そして、選択したユニークコードUCxをダイジェスト生成部11及びハッシュ関数復号部14に送信する(ステップS82、S88)。続いて、ダイジェスト生成部11は、受信したユニークコードUCxに基づきダイジェスト値DIxを生成する(ステップS83)。このダイジェスト値DIxは、メモリコントローラ13に送信される(ステップS84)。
続いて、メモリコントローラ13は、受信したダイジェスト値DIxをリードアドレスとしてリード命令RD[DIx]を発行する(ステップS85)。そして、記憶領域12は、リード命令RD[DIx]に応じてダイジェスト値DIxに関連付けられたアドレスに格納されている特定情報HF2xをメモリコントローラ13に送信する(ステップS86)。続いて、メモリコントローラ13は、受信した特定情報HF2xをハッシュ関数復号部14に送信する(ステップS87)。
ハッシュ関数復号部14は、受信した特定情報HF2xを、受信したユニークコードUCxにより復号してハッシュ関数HF1を生成する(ステップS89)。このハッシュ関数HF1は、暗号化部15に送信される(ステップS90)。そして、半導体装置1は、ハッシュ関数HF1を利用して暗号化通信を開始する(ステップS91)。
上記説明より、実施の形態4にかかる半導体装置5では、ユニークコードUC1〜UCnにより暗号化した特定情報HF21〜HF2nにより記憶領域12を満たす。また、半導体装置5は、ユニークコードUC1〜UCnに対応して生成されるダイジェスト値DI1〜DInにより、ユニークコードUC1〜UCnで復号可能な特定情報HF21〜HF2nを読み出してハッシュ関数HF1を復号する。
通常、記憶領域12に格納される特定情報HF2は、1つである。そのため、実施の形態4にかかる半導体装置5を攻撃者が解析したとしてもいずれの領域に格納された特定情報が真の特定情報であるかを判別することができない。つまり、半導体装置5を用いることで秘匿対象情報であるハッシュ関数HF1に対するセキュリティを向上させることができる。
また、記憶領域12に格納される特定情報は、ユニークコードUC1〜UCnのいずれかを用いて暗号化されている。そのため、攻撃者は、記憶領域12に格納されている特定情報を参照しただけでは、暗号化のアルゴリズムを理解することができない。このようなことからも、実施の形態4にかかる半導体装置5を用いることで秘匿対象情報であるハッシュ関数HF1に対するセキュリティを向上させることができる。
実施の形態5
実施の形態5では、特定情報HF2を記憶領域12に格納する際の格納方法の別の形態について説明する。そこで、特定情報HF2の格納方法の別の一形態を示す概念図を図13に示す。図13に示す例では、特定情報HF2を記憶領域12の複数の領域に分割して格納する。図13に示す例では、ダイジェスト値DIを特定情報HF2の分割数を指定する値として利用すると共に、ダイジェスト値DIを格納する領域の先頭アドレスとして利用するものである。
図13に示す例では、ダイジェスト値DIとして4が生成され、特定情報HF2が128ビットで表現される。そして、図13で示す例では、特定情報HF2の最初の32ビットが先頭アドレスであるアドレス4の領域に格納され、33ビット目から64ビット目の特定情報HF2がアドレス5の領域に格納され、65ビット目から96ビット目の特定情報HF2がアドレス6の領域に格納され、97ビット目から128ビット目の特定情報HF2がアドレス7の領域に格納される。また、分割数が1となる場合もあるため、記憶領域12の1つの領域は、分割されていない特定情報HF2を格納するのに十分な大きさを有する。そのため、特定情報HF2を分割して格納した場合、1つの領域に空き領域が存在するが、図13に示すように、この領域にはダミー値を格納することが好ましい。これは、攻撃者から特定情報HF2を秘匿するためである。
このように特定情報HF2が格納された記憶領域12から特定情報HF2を読み出すために、メモリコントローラ13はダイジェスト値DIから特定情報HF2を読み出すためのリード命令を生成する。より具体的には、メモリコントローラ13は、ダイジェスト値DIに基づき記憶領域12の1つの領域に格納される特定情報の分割数を算出すると共に、記憶領域12へのアクセスを行う。また、メモリコントローラ13は、分割数に対応する個数のリードアドレスを生成し、当該リードアドレスを用いて複数の領域から読み出した情報から特定情報HF2を再生し、ハッシュ関数復号部14に再生した特定情報HF2を与える。図13に示す例では、ダイジェスト値DIを特定情報HF2が格納された領域の先頭アドレスに用いるため、メモリコントローラ13は、ダイジェスト値DIから、先頭アドレスと先頭アドレスに続くリードアドレスとを含む分割数に相当する数のリードアドレスを生成する。なお、分割した特定情報の格納場所としてダイジェスト値DIから演算された他のアドレスを指定することも可能である。
また、特定情報HF2の格納方法の別の一形態を示す概念図を図14に示す。図14に示す例では、特定情報HF2を記憶領域12の複数の領域に分割して格納する。図14に示す例では、ダイジェスト値DIを記憶領域12の1つの領域に格納される特定情報HF2のビット数(分割ビット数)を指定する値として利用すると共に、ダイジェスト値DIを格納する領域の先頭アドレスとして利用するものである。
図14に示す例では、ダイジェスト値DIとして4が生成され、特定情報HF2が128ビットで表現される。そして、図14で示す例では、特定情報HF2は、4ビットずつに分割され、分割された特定情報HF2がそれぞれ1つの領域に格納される。また、分割ビット数が128ビットとなる場合もあるため、記憶領域12の1つの領域は、分割されていない特定情報HF2を格納するのに十分な大きさを有する。そのため、特定情報HF2が分割された場合、1つの領域に空き領域が存在するが、図14に示すように、この領域にはダミー値を格納することが好ましい。これは、攻撃者から特定情報HF2を秘匿するためである。特定情報HF2が格納されるアドレス領域1〜nにおいて、特定情報HF2が書きこまれる位置は限定されない。より具体的には、図14のアドレス4に書きこまれているHF2[0:3]は、図14に示されているように、アドレス4の先頭ビットから始まる領域に書きこまれていても、それ以外の領域に書きこまれていても、本発明を実現することが可能である。
このように特定情報HF2が格納された記憶領域12から特定情報HF2を読み出すために、メモリコントローラ13はダイジェスト値DIから特定情報HF2を読み出すためのリード命令を生成する。より具体的には、メモリコントローラ13は、ダイジェスト値DIに基づき記憶領域12の1つの領域に格納される特定情報HF2のビット数を算出すると共に、記憶領域12へのアクセスを行う。また、メモリコントローラ13は、特定情報HF2を分割ビット数で除算した値に対応する個数のリードアドレスを生成し、当該リードアドレスを用いて複数の領域から読み出した情報から特定情報HF2を再生し、ハッシュ関数復号部14に再生した特定情報HF2を与える。図14に示す例では、ダイジェスト値DIを特定情報HF2が格納された領域の先頭アドレスに用いるため、メモリコントローラ13は、ダイジェスト値DIから、先頭アドレスと先頭アドレスに続くリードアドレスとを含む特定情報HF2を分割ビット数で除算した値に相当する数のリードアドレスを生成する。なお、分割した特定情報の格納場所としてダイジェスト値DIから演算された他のアドレスを指定することも可能である。
このように、ダイジェスト値DIに基づき特定情報HF2を分割して記憶領域12に格納することで、デバイス毎に異なる記録長で特定情報HF2が格納される。これにより、攻撃者が記憶領域12を解析しても、デバイス毎に1つに格納されている特定情報HF2の記録長が異なるため、攻撃者がいずれの情報が特定情報HF2であるかを認識することができない。つまり、デバイス毎に異なるユニークコードUCに基づき生成されたダイジェスト値DIに基づき特定情報HF2の記録長を可変することで秘匿対象情報であるハッシュ関数HF1に対するセキュリティを向上させることができる。
また、上記実施の形態における書き込み機では、書き込み対象の半導体装置と同じユニークコードUCを用いて半導体装置と同じダイジェスト値DIを生成するため、書き込み機が上記分割アルゴリズムを実行できるようにすることで、特定情報HF2の書き込み処理は正常に行うことができる。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。複数の実施の形態に関する事項を組み合わせて、1つの装置とすること、例えば、実施の形態4に対して、実施の形態1から実施の形態2への変更内容を適用することは、当業者であれば当然に想到する事項である。
1、3、5 半導体装置
2、4、4a、6 書き込み機
10、50 ユニークコード生成部
11、21 ダイジェスト生成部
12 記憶領域
13 メモリコントローラ
14 ハッシュ関数復号部
15 暗号化部
22、31、41、44 格納部
23、61 ハッシュ関数暗号化部
24 ダミー値発生部
25 セレクタ
26、62 バッファ
32、42 ECC回路
43 CRC回路
52 選択回路
HF1 ハッシュ関数
HF2、HF21〜HF2n 特定情報
MD モード信号
DI ダイジェスト値
Dd ダミーデータ
RD[DI] ダイジェスト値に対応するアドレスへのリード命令
UC、UC1〜UCn ユニークコード
CUC 訂正済みユニークコード

Claims (9)

  1. SRAM(static random access memory)を備え、前記SRAMの起動時の初期値により生成され、かつ、デバイスに固有なユニークコードを生成するユニークコード生成部と、
    前記ユニークコードからユニークコード対応情報を生成するユニークコード対応情報生成部と、
    それぞれが予め定められたアドレスを有する複数の格納領域を備え、前記複数の格納領域のうち前記ユニークコード対応情報により示されるアドレスの一の領域に秘匿対象情報を前記ユニークコードで暗号化した特定情報が格納され、前記複数の格納領域のうち前記ユニークコード対応情報により示されるアドレスの領域以外のアドレスの他の領域には、ダミー値が格納される記憶領域と、
    前記ユニークコード対応情報を用いて前記一の領域から読み出された前記特定情報を前記ユニークコードを用いて復号して前記秘匿対象情報を生成する復号部と、
    を有する半導体装置。
  2. 前記特定情報は、前記ユニークコードを用いて前記秘匿対象情報を暗号化した情報であり、
    前記復号部は、前記ユニークコードを用いて前記特定情報を復号して前記秘匿対象情報を生成する請求項1に記載の半導体装置。
  3. 前記ユニークコード対応情報を用いて前記記憶領域へのアクセス動作を行うメモリコントローラを有し、
    前記メモリコントローラは、前記ユニークコード対応情報に対応するアドレスを生成し、前記記憶領域のうち前記アドレスに対応する領域から前記特定情報を読み出し、前記復号部に読み出した前記特定情報を与える請求項1又は2に記載の半導体装置。
  4. 前記ユニークコード対応情報に基づき前記記憶領域の1つの領域に格納される前記特定情報の分割数を算出すると共に、前記記憶領域へのアクセスを行うメモリコントローラを有し、
    前記記憶領域は、前記分割数に応じた個数の複数の領域に分割し、分割された前記秘匿対象情報とダミー値とを組み合わせて複数の領域に格納し、
    前記メモリコントローラは、前記分割数に対応する個数のリードアドレスを生成し、当該リードアドレスを用いて複数の領域から読み出した情報から前記特定情報を再生し、前記復号部に再生した前記特定情報を与える請求項1又は2に記載の半導体装置。
  5. 前記秘匿対象情報は、暗号化処理で利用される暗号鍵である請求項1乃至4のいずれか1項に記載の半導体装置。
  6. 前記暗号鍵を利用して送信対象情報を暗号化する暗号化回路を有する請求項5に記載の半導体装置。
  7. 前記ユニークコードは、読み出しタイミングによりエラービットの有無が変動する値である請求項1乃至6のいずれか1項に記載の半導体装置。
  8. 前記ユニークコードは、半導体装置の素子の製造ばらつきに起因して不確定になるビットを含むPUF(Physically Unclonable Function)データである請求項1乃至7のいずれか1項に記載の半導体装置。
  9. 前記ユニークコードに含まれるエラーを訂正するエラー訂正回路を有する請求項1乃至8のいずれか1項に記載の半導体装置。
JP2011136134A 2011-06-20 2011-06-20 半導体装置 Expired - Fee Related JP5839659B2 (ja)

Priority Applications (8)

Application Number Priority Date Filing Date Title
JP2011136134A JP5839659B2 (ja) 2011-06-20 2011-06-20 半導体装置
EP15192813.2A EP3002698B1 (en) 2011-06-20 2012-05-24 Semiconductor device
EP12169346.9A EP2544119B1 (en) 2011-06-20 2012-05-24 Semiconductor device
US13/524,000 US8782432B2 (en) 2011-06-20 2012-06-15 Semiconductor device
KR1020120066241A KR20120140223A (ko) 2011-06-20 2012-06-20 반도체 장치
CN201210209584.4A CN102842009B (zh) 2011-06-20 2012-06-20 半导体装置
CN201710109751.0A CN106845283A (zh) 2011-06-20 2012-06-20 半导体装置
US14/294,730 US9245153B2 (en) 2011-06-20 2014-06-03 Semiconductor device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011136134A JP5839659B2 (ja) 2011-06-20 2011-06-20 半導体装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015169060A Division JP5986279B2 (ja) 2015-08-28 2015-08-28 半導体装置

Publications (2)

Publication Number Publication Date
JP2013005314A JP2013005314A (ja) 2013-01-07
JP5839659B2 true JP5839659B2 (ja) 2016-01-06

Family

ID=46298247

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011136134A Expired - Fee Related JP5839659B2 (ja) 2011-06-20 2011-06-20 半導体装置

Country Status (5)

Country Link
US (2) US8782432B2 (ja)
EP (2) EP2544119B1 (ja)
JP (1) JP5839659B2 (ja)
KR (1) KR20120140223A (ja)
CN (2) CN106845283A (ja)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013031151A (ja) 2011-06-20 2013-02-07 Renesas Electronics Corp 暗号通信システムおよび暗号通信方法
JP5770026B2 (ja) * 2011-06-20 2015-08-26 ルネサスエレクトロニクス株式会社 半導体装置
WO2014112999A1 (en) * 2013-01-16 2014-07-24 Intel Corporation Grouping of physically unclonable functions
JP6124698B2 (ja) * 2013-06-13 2017-05-10 富士電機株式会社 認証を行うための方法、装置およびシステム
JP6182371B2 (ja) * 2013-06-28 2017-08-16 ルネサスエレクトロニクス株式会社 半導体集積回路を含むシステム
JP2015065495A (ja) * 2013-09-24 2015-04-09 ルネサスエレクトロニクス株式会社 暗号鍵供給方法、半導体集積回路および暗号鍵管理装置
EP2911086A1 (en) * 2014-02-19 2015-08-26 Renesas Electronics Europe GmbH Integrated circuit with parts activated based on intrinsic features
KR20150143150A (ko) * 2014-06-13 2015-12-23 삼성전자주식회사 메모리 장치, 메모리 시스템 및 메모리 시스템의 동작 방법
JP2016025616A (ja) * 2014-07-24 2016-02-08 レノボ・シンガポール・プライベート・リミテッド ディスク・ドライブが記憶するデータを保護する方法および携帯式コンピュータ
CN105632543B (zh) * 2014-11-21 2018-03-30 松下知识产权经营株式会社 具有防篡改性的非易失性存储装置及集成电路卡
JP6400469B2 (ja) 2014-12-26 2018-10-03 株式会社東芝 情報処理システム及び半導体素子
US10599677B2 (en) * 2015-01-22 2020-03-24 Brian J. Bulkowski Methods and systems of splitting database indexes and digests
CN104836666B (zh) * 2015-04-20 2019-04-12 成都信息工程学院 一种针对sm2解密算法的能量分析攻击的方法
CN104780051B (zh) * 2015-04-24 2019-04-12 成都信息工程学院 针对sm2公钥密码加密算法的侧信道攻击的方法
GB2581652B (en) * 2017-10-31 2022-08-24 Mitsubishi Heavy Ind Mach Systems Ltd Information processing device, method for controlling information processing device, and program
CN107885864A (zh) * 2017-11-22 2018-04-06 山东渔翁信息技术股份有限公司 一种加密数据查询方法、系统、装置及可读存储介质
EP3745403A4 (en) * 2018-01-23 2021-01-13 Panasonic Semiconductor Solutions Co., Ltd. NON-VOLATILE MEMORY AND METHOD OF WRITING IT TO IT
KR20200082982A (ko) 2018-12-31 2020-07-08 삼성전자주식회사 물리적 복제방지 기능의 보안을 위한 집적 회로 및 이를 포함하는 장치
EP3907633B1 (en) * 2020-05-05 2022-12-14 Nxp B.V. System and method for obfuscating opcode commands in a semiconductor device

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10222618A (ja) * 1997-01-31 1998-08-21 Toshiba Corp Icカード及びicカード処理システム
US7120513B1 (en) * 1997-06-06 2006-10-10 Micron Technology, Inc. Method for using data regarding manufacturing procedures integrated circuits (ICS) have undergone, such as repairs, to select procedures the ICS will undergo, such as additional repairs
JP3861392B2 (ja) 1997-07-30 2006-12-20 ソニー株式会社 データ記録装置および方法、データ再生装置および方法、並びに伝送媒体
US5970147A (en) * 1997-09-30 1999-10-19 Intel Corporation System and method for configuring and registering a cryptographic device
JP2000252973A (ja) * 1999-03-04 2000-09-14 Matsushita Electric Ind Co Ltd 鍵の実装方法及び復元方法
DE19922155A1 (de) 1999-05-12 2000-11-23 Giesecke & Devrient Gmbh Speicheranordnung mit Adreßverwürfelung
JP2002026902A (ja) * 2000-07-10 2002-01-25 Matsushita Electric Ind Co Ltd 受信端末装置
TW508494B (en) * 2001-03-28 2002-11-01 Shansun Technology Company Data protection device capable of self-defining address arrangement sequence in protection area of storage device
FR2825873A1 (fr) * 2001-06-11 2002-12-13 St Microelectronics Sa Stockage protege d'une donnee dans un circuit integre
FR2833119A1 (fr) * 2001-11-30 2003-06-06 St Microelectronics Sa Generation de quantites secretes d'identification d'un circuit integre
DE60314782T2 (de) 2002-08-01 2007-10-31 Matsushita Electric Industrial Co., Ltd., Kadoma Vorrichtung zum Generieren eines verschlüsselten Programms
JP4475894B2 (ja) * 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法
JP4309111B2 (ja) * 2002-10-02 2009-08-05 株式会社スズケン 健康管理システム、活動状態測定装置及びデータ処理装置
US7596703B2 (en) * 2003-03-21 2009-09-29 Hitachi, Ltd. Hidden data backup and retrieval for a secure device
US7444581B2 (en) * 2003-11-04 2008-10-28 Texas Instruments Incorporated Error handling of storage device data in real time systems
JP2008516472A (ja) * 2004-10-04 2008-05-15 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 物理トークンのための二側誤り訂正
CN1783777B (zh) * 2004-12-02 2010-11-03 华为技术有限公司 固定通信安全、数据加密方法和系统及固定终端鉴权方法
EP1715404A1 (de) * 2005-04-22 2006-10-25 Siemens Aktiengesellschaft System zur Speicherung und Wiedergewinnung vertraulicher Informationen
JP5113074B2 (ja) * 2006-11-06 2013-01-09 パナソニック株式会社 情報セキュリティ装置
CN101286338B (zh) * 2007-04-12 2010-06-02 鸿富锦精密工业(深圳)有限公司 电子设备及其数据加密方法与数据解密方法
US9767319B2 (en) * 2007-04-17 2017-09-19 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and apparatus of secure authentication for system on chip (SoC)
KR101527711B1 (ko) * 2007-12-20 2015-06-11 코닌클리케 필립스 엔.브이. 템플릿 보호 시스템들에서의 분류 임계치들의 규정
JP5090300B2 (ja) 2008-09-17 2012-12-05 沖電気工業株式会社 パケット通過記録装置及び方法
WO2010035202A1 (en) * 2008-09-26 2010-04-01 Koninklijke Philips Electronics N.V. Authenticating a device and a user
CN101742200A (zh) * 2008-11-17 2010-06-16 恩益禧电子股份有限公司 输入/输出接口、存储器控制器、机顶盒及加解密方法
CN101741562A (zh) * 2008-11-25 2010-06-16 中国联合网络通信集团有限公司 嵌入式设备的软件安装方法、装置和系统
US9252960B2 (en) * 2009-03-06 2016-02-02 Intrinsic Id B.V. System for establishing a cryptographic key depending on a physical system
JP2011043766A (ja) * 2009-08-24 2011-03-03 Seiko Epson Corp 変換回路、表示駆動回路、電気光学装置、及び電子機器
US8300450B2 (en) * 2010-11-03 2012-10-30 International Business Machines Corporation Implementing physically unclonable function (PUF) utilizing EDRAM memory cell capacitance variation

Also Published As

Publication number Publication date
EP3002698A1 (en) 2016-04-06
JP2013005314A (ja) 2013-01-07
US9245153B2 (en) 2016-01-26
CN102842009B (zh) 2017-04-12
US20120324241A1 (en) 2012-12-20
EP2544119B1 (en) 2016-03-02
KR20120140223A (ko) 2012-12-28
US20140289538A1 (en) 2014-09-25
CN102842009A (zh) 2012-12-26
CN106845283A (zh) 2017-06-13
EP2544119A3 (en) 2014-09-10
EP2544119A2 (en) 2013-01-09
EP3002698B1 (en) 2017-09-13
US8782432B2 (en) 2014-07-15

Similar Documents

Publication Publication Date Title
JP5839659B2 (ja) 半導体装置
JP5770026B2 (ja) 半導体装置
KR101506123B1 (ko) 장치 및 그 인증 방법
KR101517337B1 (ko) 반도체 메모리 장치
KR101517336B1 (ko) 반도체 저장 장치
JP4991971B1 (ja) 被認証装置及びその認証方法
US9471413B2 (en) Memory device with secure test mode
KR101553790B1 (ko) 메모리
JP5986279B2 (ja) 半導体装置
EP2945092A1 (en) Memory device with secure test mode

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140217

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141021

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141104

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20141225

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150828

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20150904

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151104

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151109

R150 Certificate of patent or registration of utility model

Ref document number: 5839659

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees