JP2015012409A - 半導体集積回路及びシステム - Google Patents

半導体集積回路及びシステム Download PDF

Info

Publication number
JP2015012409A
JP2015012409A JP2013135754A JP2013135754A JP2015012409A JP 2015012409 A JP2015012409 A JP 2015012409A JP 2013135754 A JP2013135754 A JP 2013135754A JP 2013135754 A JP2013135754 A JP 2013135754A JP 2015012409 A JP2015012409 A JP 2015012409A
Authority
JP
Japan
Prior art keywords
integrated circuit
semiconductor integrated
encryption key
correction parameter
unique code
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013135754A
Other languages
English (en)
Other versions
JP6182371B2 (ja
Inventor
大介 押田
Daisuke Oshida
大介 押田
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 JP2013135754A priority Critical patent/JP6182371B2/ja
Priority to TW103119876A priority patent/TWI629614B/zh
Priority to US14/315,486 priority patent/US9846788B2/en
Priority to CN201410299766.4A priority patent/CN104252881B/zh
Publication of JP2015012409A publication Critical patent/JP2015012409A/ja
Application granted granted Critical
Publication of JP6182371B2 publication Critical patent/JP6182371B2/ja
Priority to US15/809,626 priority patent/US10216964B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/00086Circuits for prevention of unauthorised reproduction or copying, e.g. piracy

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Semiconductor Integrated Circuits (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】所定の暗号鍵を用いて暗号化された値(プログラム及び/またはデータ)が格納されるROMを内蔵するICまたはそのようなROMが外付けされるICにおいて、ROMに格納された、暗号化された値の秘匿性を高める。
【解決手段】ICは、暗号化された値(プログラム及び/またはデータ)が格納される前記ROMと、ユニークコード生成部と、暗号復号部とを含んで構成される。ユニークコード生成部は、製造ばらつきによって固有に定まるユニークコードを生成する。暗号復号部は、生成されたユニークコードと訂正パラメータとに基づいて暗号鍵を算出し、算出した暗号鍵を用いて、ROMから読み出された暗号化された値を復号する。訂正パラメータは、このICの製造直後にユニークコード生成部から生成された初期ユニークコードと、ROMに格納する値の暗号化に使われる、前記所定の暗号鍵に基づいて、このICの外部で予め算出される。
【選択図】図1

Description

本発明は、CPU(Central Processing Unit)を内蔵し、不揮発性メモリが外付けされまたは内蔵される半導体集積回路及びそれを用いたシステムに関し、特に不揮発性メモリに格納されるプログラムやデータなどのコンテンツを暗号化して保護する半導体集積回路及びそれを用いたシステムに好適に利用できるものである。
フラッシュメモリ(登録商標)などの不揮発性メモリとCPUを単一チップに搭載する、マイコンやシステムLSI(Large Scale Integrated circuit)などの半導体集積回路(IC: Integrated Circuit)では、不揮発性メモリにプログラムやデータが記憶されており、CPUによってそのプログラムが実行され、そのデータが利用される。プログラムやデータが記憶される不揮発性メモリが外付けされる場合も同様である。そのような半導体デバイスへの攻撃として、メモリの読出しがある。通信を行うプロトコルは暗号化する事により秘匿されるが、半導体デバイスの不揮発性メモリに格納されるプログラムやデータは、通信する情報を暗号化する事では、メモリをダイレクトに読み出すこの攻撃方法からは防ぐ事ができない。
暗号化する事により通信を行うプロトコルを秘匿する技術は、例えば、特許文献1と特許文献2に開示されており、マイクロコントローラに内蔵されるメモリ上のプログラムを暗号化によって保護する技術は、例えば特許文献3に開示されている。
特許文献1には、本体と付属品の間で認証を行うシステムにおいて、認証側の被認証側のそれぞれにマイクロコントローラを備え、双方で同じ乱数に対して同じ暗号鍵を使って暗号化を行い、照合することにより、真正の付属品であるか否かの認証を行うシステムが開示されている。乱数を暗号化するための上記暗号鍵を、別の暗号鍵と識別情報に基づいて暗号化するように構成することにより、プログラムを不正に取得して作られた模造品では、動作が正常に行われないようにすることができ、単純なプログラムメモリのコピーによる模造品を排除することができる。
特許文献2には、外部装置に接続される半導体装置において、データ書き込み時のセキュリティが十分に確保される半導体装置が開示されている。半導体装置は、そのデバイスに固有な値(ユニークコード)を生成することができるユニークコード生成部を備え、そのユニークコードを外部装置に伝送する。ユニークコードは、例えば製造ばらつきによってそのデバイスのその個体に固有の値であり、設計情報を完全に複製したとしても、個体ごとに異なる値である。例えば物理的に複製不可能な関数(PUF: Physically Unclonable Function)を使って生成することができる。外部装置は、半導体装置がデータ書き込み時に使うための暗号鍵を、受信したユニークコードを使って別の暗号化処理を施した上で、半導体装置に対して伝送する。半導体装置は、受信した暗号化された暗号鍵を、自己のユニークコードを使って復号することによって、暗号鍵を得る。この暗号鍵を使って、秘匿すべきデータを暗号化して、データ書き込みを行う。データ書き込みのための暗号鍵が、複製不能なユニークデータによって暗号化されるので、外部装置と半導体装置との間でセキュリティの高い通信が可能となる。
特許文献3には、暗号化されたプログラムを格納するメモリと、プログラムを復号する復号ブロックと、復号されたプログラムを実行するCPUから成るマイクロコントローラが開示されている。暗号化されたプログラムを復号するための復号情報は、前記復号ブロック内のレジスタに、CPUから物理的に読み出し不可能に保持される。
特開2007−184735号公報 特開2013−003431号公報 特開2008−217579号公報
特許文献1、2及び3について本発明者が検討した結果、以下のような新たな課題があることがわかった。
オンチップまたは別チップでCPUに接続される不揮発性メモリに、秘匿されるべきプログラムやデータが格納されている場合、特許文献1に示される技術ではプログラムの実行に先立って認証を行うことによって、秘匿されるべきプログラムのコピーを防ぐので、認証する側がセキュアであることが前提である。特許文献2に示される技術では、半導体装置内で秘匿されるべきプログラムは暗号化されており、これを復号するための暗号鍵が外部装置から与えられるので、その半導体装置自身で暗号鍵を保持する必要はないが、その反面、その外部装置がセキュアであることが必須である。
一方、特許文献3に示される技術は、セキュアな通信相手を期待することができない、スタンドアローンのマイクロコントローラに適用することができる。しかし、そのためには、暗号化されたプログラムを復号するための暗号鍵などの復号情報を、CPUからさえも読み出すことができないように、ハードウェアを工夫する必要がある。ところが、そのような設計的な工夫でさえも、その設計情報をそっくりそのままコピーするような模倣品においては、秘匿されるべきプログラムやデータを十分安全に秘匿することができるとは言えない。
このような課題を解決するための手段を以下に説明するが、その他の課題と新規な特徴は、本明細書の記述及び添付図面から明らかになるであろう。
一実施の形態によれば、下記の通りである。
すなわち、所定の暗号鍵を用いて暗号化された値(プログラム及び/またはデータ)が格納される不揮発性メモリと、ユニークコード生成部と、暗号復号部とを含んで構成される、半導体集積回路またはシステムであって、以下のように構成される。ユニークコード生成部は、製造ばらつきによって固有に定まるユニークコードを生成する。暗号復号部は、生成されたユニークコードと訂正パラメータとに基づいて暗号鍵を算出し、算出した暗号鍵を用いて、不揮発性メモリから読み出された暗号化された値を復号する。訂正パラメータは、この半導体集積回路の製造後にユニークコード生成部から生成された初期ユニークコードと、不揮発性メモリに格納する値の暗号化に使われる、前記所定の暗号鍵とに基づいて、この半導体集積回路またはシステムの外部で予め算出される。
前記一実施の形態によって得られる効果を簡単に説明すれば下記のとおりである。
すなわち、当該半導体集積回路またはシステムのセキュリティを向上することができる。半導体集積回路に搭載され、またはシステムに含まれる不揮発性メモリに暗号化されて格納された値(プログラムコードやデータなど)は、メモリに格納されているデータを読み出す攻撃によって読み出されても、暗号鍵を知られることがないので暗号を復号することができず秘匿性が保たれる。また、半導体集積回路及びシステムの設計がそっくりコピーされた模倣品では、ユニークコード生成部から生成されるユニークコードが真正品と異なるので、暗号鍵が正しく算出されないので暗号を復号することができず、不揮発性メモリに暗号化されて格納された値の秘匿性が保たれる。
図1は、実施形態1に係るROMコンテンツ保護システムの構成を示すブロック図である。 図2は、ROMを内蔵する半導体集積回路(ICa)を含んで構成された、実施形態1に係るROMコンテンツ保護システムを示すブロック図である。 図3は、実施の形態に係る半導体集積回路の構成例(ROM内蔵マイクロコントローラ)を示すブロック図である。 図4は、ROMが外付けされた半導体集積回路(ICa)を含んで構成された、実施形態1に係るROMコンテンツ保護システムを示すブロック図である。 図5は、実施の形態に係る半導体集積回路の構成例(RAM版マイクロコントローラ)を示すブロック図である。 図6は、実施形態2に係る半導体集積回路の構成を示すブロック図(ROM内蔵版)である。 図7は、実施形態2に係る半導体集積回路の構成を示すブロック図(RAM版)である。 図8は、実施形態3に係る半導体集積回路(ROM内蔵版)及びシステムの構成を示すブロック図である。 図9は、実施形態3に係る半導体集積回路(RAM版)及びシステムの構成を示すブロック図である。 図10は、実施形態4に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図である。 図11は、実施形態4に係る鍵データベースの構成例を示す説明図である。 図12は、実施形態5に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図である。 図13は、実施形態6に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図である。 図14は、実施形態7に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図である。 図15は、実施形態8に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図である。 図16は、実施形態8に係る鍵データベースの構成例を示す説明図である。
1.実施の形態の概要
先ず、本願において開示される代表的な実施の形態について概要を説明する。代表的な実施の形態についての概要説明で括弧を付して参照する図面中の参照符号はそれが付された構成要素の概念に含まれるものを例示するに過ぎない。
〔1〕<ユニークコードと訂正パラメータから復元された暗号鍵による復号>
本願において開示される代表的な実施の形態に係る半導体集積回路(ICa,1)は、所定の暗号鍵(CK(1))を用いて暗号化された値(D(CK(1)))を格納可能な不揮発性メモリ(ROM: Read Only Memory,4)と、ユニークコード生成部(2)と、暗号処理部(3)とを含み、以下のように構成される。
前記ユニークコード生成部は、前記半導体集積回路の製造ばらつきによって固有に定まる複数ビットのディジタル値である、ユニークコード(UC(a))を生成可能である。
前記暗号処理部は、訂正パラメータ(CD(1,a))と前記ユニークコードとに基づいて前記暗号鍵(CK(1))を算出し、算出した前記暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値(D(CK(1)))を復号可能に構成される。
前記訂正パラメータは、前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコード(UC(a)_init)と前記所定の暗号鍵(CK(1))に基づいて、前記半導体集積回路の外部(20)で予め算出される。
これにより、当該半導体集積回路(ICa,1)のセキュリティを向上することができる。半導体集積回路に搭載される不揮発性メモリ(ROM,4)に暗号化されて格納された値(プログラムコードやデータなど)(D(CK(1)))は、メモリに格納されているデータを読み出す攻撃によって読み出されても、暗号鍵(CK(1))を知られることがないので暗号を復号することができず秘匿性が保たれる。また、半導体集積回路(ICa,1)の設計がそっくりコピーされた模倣品では、コピーされたユニークコード生成部(2_x)から生成されるユニークコード(UC(x))が真正品のユニークコード(UC(a))と異なるので、暗号鍵が正しく算出されない。そのため、不揮発性メモリ(ROM,4)に暗号化されて格納された値(プログラムコードやデータなど)(D(CK(1)))の暗号を復号することができず、秘匿性が保たれる。さらに、例え訂正パラメータ(CD(1,a))が、外部(20)から当該半導体集積回路(ICa,1)への通信経路で読み出されるなどして、攻撃者に知られたとしても、同様に不揮発性メモリ(ROM,4)に暗号化されて格納された値(プログラムコードやデータなどのROMコンテンツ)(D(CK(1)))の秘匿性は保たれる。真正品のユニークコード(UC(a))が生成されない限り、暗号鍵(CK(1))が正しく算出されないからである。
〔2〕<エラーを含むユニークコード>
項1において、前記ユニークコード生成部から生成される前記ユニークコード(UC(a))が、前記初期ユニークコード(UC(a)_init)に対してエラーを含んでいても、前記暗号処理部は、前記訂正パラメータ(CD(1,a))と前記ユニークコード(UC(a))とに基づいて前記暗号鍵(CK(1))を算出可能に構成される。
これにより、ユニークコード生成部から生成されるユニークコード(UC(a))に、初期ユニークコード(UC(a)_init)に対するエラーが含まれている場合であっても、暗号処理部(3)はそのエラーを訂正して正しい暗号鍵(CK(1))を算出することができ、半導体集積回路(ICa,1)は正常な機能を保つことができる。
〔3〕<訂正パラメータを同一チップ内に保持>
項1または項2において、前記訂正パラメータ(CD(1,a))を同一チップ内に保持する。
これにより、前記訂正パラメータを伝送するためのデータ通信を不要とすることができる。
〔4〕<訂正パラメータをネットワーク経由で取得>
項1または項2において、前記半導体集積回路はネットワークインターフェース(12)をさらに備え、前記訂正パラメータ(CD(1,a))は前記ネットワークインターフェースを介して受信可能に構成される。
これにより、ネットワーク(11)を経由しても、セキュリティを担保した状態で、暗号鍵に相当する情報(CD(1,a))を配信することができる。
〔5〕<1つのユニークコードから複数の暗号鍵を生成>
項1または項2において、前記訂正パラメータを第1訂正パラメータ(CD(1,a))とし、前記暗号鍵を第1暗号鍵(CK(1))とし、前記暗号処理部は、前記第1訂正パラメータとは異なる第2訂正パラメータ(CD(2,a))と前記ユニークコードとに基づいて、前記第1暗号鍵とは異なる第2暗号鍵(CK(2))を算出可能に構成される。
これにより、複数の暗号鍵を用途によって使い分けることができ、当該半導体集積回路のセキュリティをさらに向上することができる。
〔6〕<CPU(Central Processing Unit)>
項1から項5のうちのいずれか1項において、前記半導体集積回路はCPU(13)をさらに備え、前記不揮発性メモリ(4)は、前記CPUで実行可能なプログラムのプログラムコードが前記所定の暗号鍵を用いて暗号化された値を格納可能に構成され、前記CPUは、前記暗号処理部によって復号されたプログラムを実行可能に構成される。
これにより、不揮発性メモリに格納される、プログラムが秘匿される。
〔7〕<CPUからの暗号化されたデータの読み出し>
項6において、前記不揮発性メモリ(4)は、前記CPU(13)からアクセス可能なデータが前記所定の暗号鍵を用いて暗号化された値を格納可能に構成され、前記CPUは、前記暗号処理部によって復号された前記データを読み出し可能に構成される。
これにより、不揮発性メモリに格納され秘匿されているデータを、CPUが利用することができる。
〔8〕<CPUから不揮発性メモリへのデータの書き込み>
項6において、前記暗号処理部は、前記CPUから出力されるデータを、前記算出された暗号鍵を使って暗号化する機能をさらに備え、前記CPUは前記不揮発性メモリに書き込むデータを、前記暗号処理部によって暗号化した後に、前記不揮発性メモリに書き込み可能に構成される。
これにより、当該半導体集積回路の使用中に、前記不揮発性メモリに追記または変更すべきデータがある場合にも、そのデータを秘匿することができる。
〔9〕<ROMコンテンツ保護システム>
本願において開示される代表的な実施の形態に係るシステム(ROMコンテンツ保護システム10)は、ユニークコード生成部(2)と暗号処理部(3)とを含む半導体集積回路(ICa,1)と、所定の暗号鍵(CK(1))を用いて暗号化された値(D(CK(1)))を格納可能な不揮発性メモリ(ROM,4)とを含み、以下のように構成される。
前記ユニークコード生成部は、前記半導体集積回路の製造ばらつきによって固有に定まる複数ビットのディジタル値である、ユニークコード(UC(a))を生成可能である。
前記暗号処理部は、訂正パラメータ(CD(1,a))と前記ユニークコードとに基づいて前記暗号鍵(CK(1))を算出し、算出した前記暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値(D(CK(1)))を復号可能に構成される。
前記訂正パラメータは、前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコード(UC(a)_init)と前記所定の暗号鍵(CK(1))に基づいて、前記システムの外部(20)で予め算出される。
これにより、当該半導体集積回路(ICa,1)を含んで構成されるシステム(ROMコンテンツ保護システム10)のセキュリティを向上することができる。半導体集積回路(ICa,1)に内蔵されるか、又は外付けされる不揮発性メモリ(4)に暗号化されて格納された値(プログラムコードやデータなどのROMコンテンツ)(D(CK(1)))は、メモリに格納されているデータを読み出す攻撃によって読み出されても、暗号鍵(CK(1))を知られることがないので暗号を復号することができず、秘匿性が保たれる。また、半導体集積回路(ICa,1)の設計がそっくりコピーされた模倣品では、ユニークコード生成部(2_x)から生成されるユニークコード(UC(x))が真正品と異なるので、暗号鍵(CK(1))が正しく算出されないので暗号を復号することができず、不揮発性メモリ(4)に暗号化されて格納された値の秘匿性が保たれる。
〔10〕<エラーを含むユニークコード>
項9において、前記ユニークコード生成部から生成される前記ユニークコード(UC(a))が、前記初期ユニークコード(UC(a)_init)に対してエラーを含んでいても、前記暗号処理部は、前記訂正パラメータ(CD(1,a))と前記ユニークコードとに基づいて前記暗号鍵を算出可能に構成される。
これにより、ユニークコード生成部(2)から生成されるユニークコード(UC(a))にエラーが含まれている場合であっても、暗号処理部はそれを訂正して正しい暗号鍵(CK(1))を算出することができ、ROMコンテンツ保護システム(10)において、半導体集積回路(ICa,1)は正常な機能を保つことができる。さらに、半導体集積回路(ICa,1)を含む、ROMコンテンツ保護システム(10)全体のセキュリティも向上することができる。
〔11〕<鍵データベース>
項9または項10において、前記半導体集積回路と対応付けて前記訂正パラメータ(CD(1,a))を保持し、前記訂正パラメータを前記半導体集積回路に供給するデータベース(9)をさらに備える。
これにより、暗号化された値(D(CK(1)))を格納する不揮発性メモリ(4)と、その暗号鍵を生成するための訂正パラメータ(CD(1,a))が別チップで管理され、セキュリティを向上することができる。
〔12〕<複数の半導体集積回路と鍵データベース>
項9または項10において、前記システムは、複数の前記半導体集積回路とデータベース(9)を含んで構成される。
前記複数の半導体集積回路(1_a、1_b)のそれぞれは、前記不揮発性メモリ(4_a、4_b)と、前記ユニークコード生成部と、前記暗号処理部とを含んで構成される。
前記不揮発性メモリには、前記複数の半導体集積回路のそれぞれに対応する暗号鍵(CK(1,a),CK(1,b))を用いて暗号化された値(D(CK(1、a)),D(CK(1、b)))が格納される。
前記データベースは、前記複数の半導体集積回路のそれぞれと対応付けて、複数の前記訂正パラメータを保持し、前記訂正パラメータを対応する前記半導体集積回路に供給する。
前記訂正パラメータ(CD(1,a))は、対応する前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコード(UC(a)_init)と、前記対応する前記半導体集積回路の前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵に基づいて、前記システムの外部で予め算出され、前記データベース(9)に格納される。
前記不揮発性メモリ(4_a、4_b)は、前記複数の半導体集積回路(1_a、1_b)のそれぞれに内蔵される代わりに、外付けされてもよい。その場合、前記複数の半導体集積回路(1_a、1_b)のそれぞれは揮発性メモリ(14)を備え、前記不揮発性メモリ(4_a、4_b)に格納された、暗号化された値(D(CK(1、a)),D(CK(1、b)))が前記不揮発性メモリ(4_a、4_b)から転送されることができるように構成される。
これにより、セキュリティが向上された半導体集積回路を複数(1_a、1_b)搭載したROMコンテンツ保護システム(10)を構築することができる。当該システムは、同じ半導体集積回路を複数個搭載して構成しても、異なる種類の半導体集積回路を含んで構成しても良く、さらに複数個の同じ半導体集積回路と異なる種類の半導体集積回路を含んで構成しても良い。
〔13〕<外付けROM+RAM版LSI>
項9または項10において、前記半導体集積回路はさらに揮発性メモリ(RAM,14)を備え、前記所定の暗号鍵を用いて暗号化された前記値(D(CK(1)))は、前記不揮発性メモリから前記揮発性メモリに転送可能に構成される。また、前記暗号処理部は、前記揮発性メモリから読み出された暗号化された前記値を復号可能に構成される。
これにより、当該半導体集積回路(ICa,1)が不揮発性メモリを内蔵していない所謂RAM版であっても、不揮発性メモリ(4)から当該半導体集積回路(ICa,1)に内蔵された揮発性メモリ(RAM,14)に転送された、暗号化されて格納された値(ROMコンテンツ)の秘匿性が保たれる。
〔14〕<外付けROM+RAM版LSIのデータベース>
項13において、前記半導体集積回路と対応付けて前記訂正パラメータ(CD(1,a))を保持し、前記訂正パラメータを前記半導体集積回路に供給するデータベース(9)と前記不揮発性メモリ(4)を含んで構成される制御半導体集積回路(ICs,8)をさらに備える。
これにより、当該半導体集積回路(ICa,1)が不揮発性メモリを内蔵していない所謂RAM版の場合に、ROMコンテンツ保護システム(10)を構成する部品数の増加を抑えることができる。
〔15〕<訂正パラメータをネットワーク経由で取得>
項11または項12において、前記半導体集積回路と前記データベースとは、ネットワーク(11)を介して接続され、前記訂正パラメータ(CD(1,a))は前記ネットワークを介して前記半導体集積回路に受信可能に構成される。
これにより、ネットワーク(11)を経由しても、セキュリティを担保した状態で、暗号鍵に相当する情報(CD(1,a))を配信することができる。
〔16〕<1つのユニークコードから複数の暗号鍵を生成>
項11または項12において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵(CK(1))とし、前記データベースは、前記半導体集積回路と対応付けて複数の前記訂正パラメータ(CD(1,a),CD(2,a))を保持し、前記複数の訂正パラメータを前記半導体集積回路に供給する。
前記暗号処理部は、供給された前記複数の訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵(CK(1))と別の暗号鍵(CK(2))とを算出し、算出した前記第1暗号鍵(CK(1))を用いて、前記不揮発性メモリから読み出された暗号化された値を復号可能に構成される。
これにより、複数の暗号鍵(CK(1),CK(2))を用途によって使い分けることができ、当該半導体集積回路のセキュリティをさらに向上し、ROMコンテンツ保護システム(10)全体のセキュリティも向上することができる。
〔17〕<1つのユニークコードから認証用と復号用の暗号鍵を生成>
項11または項12において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵(CK(1))とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータ(CD(1,a))とし、前記システムは、前記データベースと認証部(18)とを備える、管理集積回路(8)を備える。
前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータと第2訂正パラメータ(CD(2,a))を保持する。前記管理集積回路は、さらに、前記認証部にチャレンジデータ(Chr)と第2訂正パラメータに対応する第2暗号鍵(CK(2))で前記チャレンジデータを暗号化したチャレンジデータ期待値(Exp)とを保持し、前記第2訂正パラメータと前記チャレンジデータを前記半導体集積回路に供給する。
前記半導体集積回路において、前記暗号処理部は、供給された前記第2訂正パラメータと前記ユニークコードとに基づいて、前記第2暗号鍵(CK(2))を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化し(Chr(CK(2)))、前記管理集積回路に返信する。
前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータ(Chr(CK(2)))を、前記認証部に保持される前記チャレンジデータ期待値(Exp)と比較し、一致した場合に、前記第1訂正パラメータ(CD(1,a))を前記半導体集積回路に供給する。
前記半導体集積回路は、供給された前記第1訂正パラメータ(CD(1,a))と前記ユニークコード(UC(a))とに基づいて、前記第1暗号鍵(CK(1))を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値(D(CK(1)))を復号する。
これにより、複数の暗号鍵のうちの1つ(CK(2))を認証に用いることができ、当該半導体集積回路のセキュリティをさらに向上し、ROMコンテンツ保護システム(10)全体のセキュリティも向上することができる。
〔18〕<1つのユニークコードから認証用と復号用の暗号鍵を生成(訂正パラメータを同一チップ内に保持)>
項11または項12において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵(CK(1))とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータ(CD(1,a))とし、前記システムは、前記データベースと認証部(18)とを備える、管理集積回路(8)を備える。
前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータ(CD(1,a))と第2訂正パラメータ(CD(2,a))を保持する。前記管理集積回路は、さらに、前記認証部にチャレンジデータ(Chr)と前記第2訂正パラメータに対応する第2暗号鍵(CK(2))で前記チャレンジデータを暗号化したチャレンジデータ期待値(Exp)とを保持し、前記チャレンジデータを前記半導体集積回路に供給する。
前記半導体集積回路は、前記第2訂正パラメータ(CD(2,a))を保持し、前記暗号処理部は前記第2訂正パラメータと前記ユニークコードとに基づいて前記第2暗号鍵(CK(2))を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化し(Chr(CK(2)))、前記管理集積回路に返信する。
前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータ(Chr(CK(2)))を、前記認証部に保持される前記チャレンジデータ期待値(Exp)と比較し、一致した場合に、前記第1訂正パラメータ(CD(1,a))とを前記半導体集積回路に供給する。
前記半導体集積回路は、供給された前記第1訂正パラメータ(CD(1,a))と前記ユニークコード(UC(a))とに基づいて、前記第1暗号鍵(CK(1))を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値(D(CK(1)))を復号する。
これにより、複数の暗号鍵のうちの1つを認証に用いることができ、当該半導体集積回路のセキュリティをさらに向上し、ROMコンテンツ保護システム(10)全体のセキュリティも向上することができる。
〔19〕<1つのユニークコードから認証用と復号用の暗号鍵を生成(公開鍵認証方式)>
項11または項12において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵(CK(1))とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータ(CD(1,a))とし、前記システムは、前記データベースと認証部(18)とを備える、管理集積回路(8)を備える。
前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータと第2訂正パラメータ(CD(2,a))とチャレンジデータ(Chr)と公開鍵(PK(1))とを保持し、前記第2訂正パラメータと前記チャレンジデータとを前記半導体集積回路に供給する。
前記半導体集積回路は、前記暗号処理部は前記第2訂正パラメータと前記ユニークコードとに基づいて前記第2暗号鍵(CK(2))を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化して、前記管理集積回路に返信する。
前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータ(Chr(CK(2))を、前記公開鍵を使って復号し、復号された値と前記チャレンジデータとを比較し、一致した場合に、前記第1訂正パラメータを前記半導体集積回路に供給する。
前記半導体集積回路は、供給された前記第1訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号する。
これにより、複数の暗号鍵のうちの1つ(CK(2))を認証に用いることができ、当該半導体集積回路のセキュリティをさらに向上し、ROMコンテンツ保護システム(10)全体のセキュリティも向上することができる。
〔20〕<半導体集積回路(ICa,1)で秘密鍵を再生>
項19において、前記第2暗号鍵は、前記公開鍵に対応する、前記半導体集積回路の秘密鍵(SK(1))である。
これにより、公開鍵認証システムに適用することができる。
2.実施の形態の詳細
実施の形態について更に詳述する。
〔実施形態1〕<訂正パラメータとユニークコードから暗号鍵を生成するIC>
本願において開示される代表的な実施の形態に係るROMコンテンツ保護システムについて説明する。本実施形態1の説明は、以下の他の実施形態にも共通して妥当する。
図1は、実施形態1に係るROMコンテンツ保護システム10の構成を示すブロック図である。ROMコンテンツ保護システム10は、ユニークコード生成部2と、暗号処理部3とを含んで構成される半導体集積回路(ICa,1)と、不揮発性メモリ(ROM)4とを備える。ROM4は、フラッシュメモリ(登録商標)などの、電気的に書き換え可能な不揮発性メモリであっても、マスクROMなどのように書き換え不能なメモリであってよい。ROM4には、所定の暗号鍵CK(1)を用いて暗号化されたプログラム及び/またはデータが格納される。プログラムかデータかに関わらず、暗号化された値D(CK(1))と呼ぶ。暗号鍵CK(1)は例えば共通鍵であり、ROM4に格納されたときに秘匿されるべき内容22であるプログラム及び/またはデータは、オフライン処理20において、共通鍵CK(1)を用いた暗号化処理ステップ23を経て暗号化され、ROM4に書き込まれる。
ユニークコード生成部2は、ICa1の製造ばらつきによって固有に定まる複数ビットのディジタル値である、ユニークコードUC(a)を生成可能である。特に制限されないが、ユニークコード生成部2は、物理的に複製不可能な関数(PUF)を使って、ユニークコードUC(a)を生成することができる。例えば、SRAM(Static Random Access Memory)において、電源投入時のメモリセルの状態は、設計パラメータや製造パラメータが全く同じであっても、製品の個体別に製造ばらつきによって固有に定まるディジタル値であり、ユニークコードUC(a)として利用することができる。これは、SRAM−PUFと呼ばれている。この他、論理ゲート回路の信号伝搬遅延を利用するもの、アナログ的な素子値を利用するものなどがある。ユニークコード生成部2には、どのような種類のPUFを利用しても良い。
暗号処理部3は、例えば共通鍵生成部5と復号部6を含んで構成される。共通鍵生成部5と復号部6が個別のハードウェアブロックとして構成されている必要はなく、一連のソフトウェア処理における共通鍵生成ステップと復号ステップによって実現されても、ハードウェアとソフトウェアが協調動作して実行される処理として実現されてもよい。暗号処理部3は、ユニークコードUC(a)と後述の訂正パラメータCD(1,a)とに基づいて共通鍵CK(1)を算出し、算出した共通鍵CK(1)を用いて、ROM4から読み出された、暗号化された値D(CK(1))を復号することができる。
訂正パラメータCD(1,a)は、外部のオフライン処理20の訂正パラメータ算出ステップ21において、ICa1の製造直後にユニークコード生成部2から生成される初期ユニークコードUC(a)_initと、共通鍵CK(1)とに基づいて、予め算出される。共通鍵CK(1)は、ROM4に格納されたときに秘匿されるべき内容22を暗号化するため暗号化ステップ23で用いた共通鍵CK(1)と同じ値である。訂正パラメータ算出ステップ21のアルゴリズムと共通鍵生成部5のアルゴリズムは、訂正パラメータCD(1,a)とユニークコードUC(a)を参照して、共通鍵CK(1)を一意に決定することができるアルゴリズムであればよい。ここでオフライン処理20とは、ICaとの接続を前提としないセキュアな装置で実行される処理であり、暗号鍵CK(1)や暗号化ステップ23、及び、訂正パラメータ算出ステップ21の内容とその入出力データ、中間データなどは安全に秘匿される。
ROM4は、半導体集積回路(ICa)1に内蔵されていても、外付けされてもよい。
図2は、ROM4を内蔵する半導体集積回路(ICa)1を含んで構成された、実施形態1に係るROMコンテンツ保護システム10を示すブロック図である。ROM4が内蔵される場合には、ROM4から読み出された値(プログラムコードやデータなどのROMコンテンツ)D(CK(1))は、直接または例えばバスブリッジなどの転送回路を経て、復号部6に供給され復号される。図2における他の構成は、図1と同様であるので、説明を省略する。
図3は、実施の形態に係る半導体集積回路(ICa)1の構成例(ROM内蔵マイクロコントローラ)を示すブロック図である。CPU13を含むマイクロコントローラとして実装された例である。詳細は後述する。CPU13によって実行されるプログラムや、そのプログラムで使用されるデータが格納される不揮発性メモリROM4が内蔵されている。RAM14は揮発性メモリであり、プログラムの中間データなどが一時的に保持される。
図4は、ROMが外付けされた半導体集積回路(ICa)を含んで構成された、実施形態1に係るROMコンテンツ保護システムを示すブロック図である。ROM4が外付けされる場合には、ROM4から読み出された値(プログラムコードやデータなどのROMコンテンツ)D(CK(1))は、一旦、半導体集積回路(ICa)1に内蔵されるRAM14に転送される。この転送は、例えば、電源投入時のブートアップシーケンスなどで実行される。その後、RAM14がアクセスされたときに、RAM14から読み出された値(プログラムコードやデータなどのROMコンテンツ)D(CK(1))が、復号部6に供給され復号される。図4における他の構成は、図1と同様であるので、説明を省略する。
このとき、半導体集積回路(ICa)1としては、ROM4をオンチップに内蔵しない、所謂RAM版のマイクロコントローラを使用することができる。図5は、実施の形態に係る半導体集積回路の構成例(RAM版マイクロコントローラ)を示すブロック図である。詳細は後述するが、図3に示したマイクロコントローラとの違いは、ROM4がオンチップに内蔵されていない点である。プログラムなどは、電源投入時のブートアップシーケンスなどによって、外付けのROM4か読み出され、オンチップのRAM14に転送された後に実行される。
以上述べたように、当該半導体集積回路(ICa)1のセキュリティを向上することができる。ICa1に内蔵されるか、または外付けされるROM4に暗号化されて格納された値(プログラムコードやデータなど)D(CK(1))は、メモリに格納されているデータを読み出す攻撃によって読み出されても、共通鍵CK(1)を知られることがないので暗号を復号することができず秘匿性が保たれる。また、設計がそっくりコピーされた模倣品でも、不揮発性メモリに暗号化されて格納された値の秘匿性が保たれる。ICa1の設計がそっくりコピーされた模倣品のICでは、その模倣ICのユニークコード生成部2_xから生成されるユニークコードUC(x)が、真正品のユニークコードUC(a)とは異なる。ユニークコードUCは、製造ばらつきによって固有に定まる複数ビットのディジタル値であるから、模倣ICが真正のICと全く同一の設計であっても、製造ばらつきが異なるので生成されるユニークコードは同一にはならないからである。PUFの「物理的に複製不可能な」という性質そのものである。模倣ICでは、ROM4には複製元のICと同様に真正の共通鍵CK(1)を用いて暗号化された値D(CK(1))が格納されている。ユニークコード生成部2_xから生成されるユニークコードUC(x)が真正品とは異なる。このため共通鍵生成部5_xから生成される共通鍵も真正の共通鍵CK(1)とは異なることとなるため、D(CK(1))を復号することができない。以上のように、半導体集積回路(ICa)1のセキュリティを向上することができる。
<ユニークコードがエラーを含む場合>
実施形態1においてICa1のセキュリティを向上させる原理は、暗号の共通鍵CK(1)が外部から読み出されないことと、共通鍵CK(1)の生成のためにユニークコードUC(a)を使うことによりICの複製では同じ値が生成されないことを利用している。一方、秘匿されるべき値D(CK(1))が正しく復号されるためには、オフラインの暗号化で使用した共通鍵CK(1)と、同じ共通鍵CK(1)が生成されることが必要である。
しかし、ユニークコード生成部2から生成されるユニークコードUC(a)は、ICa1の電源電圧や温度、経年変化などにより、変動する場合がある。ユニークコード生成部2がPUFを利用するとき、PUFは物理的なパラメータを利用するので、動作環境に依存するからである。そのため、ユニークコード生成部2から生成されるユニークコードUC(a)は、製造直後の初期ユニークコードUC(a)_initと、常に全く同一となるとは限らず、初期ユニークコードUC(a)_initに対するエラーを含むことがある。
そこで、ユニークコード生成部2から生成されるユニークコードUC(a)が、初期ユニークコードUC(a)_initに対してエラーを含んでいても、暗号処理部3は、訂正パラメータCD(1,a)とユニークコードUC(a)とに基づいて共通鍵CK(1)を算出することができるように構成されるとよい。
これにより、ユニークコード生成部2から生成されるユニークコードUC(a)に、初期ユニークコードUC(a)_initに対するエラーが含まれている場合であっても、暗号処理部3はそのエラーを訂正して正しい共通鍵CK(1)を算出することができ、半導体集積回路(ICa)1は正常な機能を保つことができる。
訂正パラメータ算出ステップ21のアルゴリズムと共通鍵生成部5のアルゴリズムは、訂正パラメータCD(1,a)とユニークコードUC(a)を参照して、共通鍵CK(1)を一意に決定することができるアルゴリズムであればよい。ここで、ユニークコードUC(a)が初期ユニークコードUC(a)_initに対してエラーを含んでいても、同じ共通鍵CK(1)が生成されるためには、特に制限されないが、例えば、誤り訂正符号を利用することができる。ここで、誤り訂正符号とは、例えばハミング符号やBCH符号などで、nビットのデータとmビットの冗長ビットを結合したn+mビットの符号を、kビット以内の誤りを訂正することができるように構成することができる。nビットのデータをユニークコードUC(a)とし、mビットの冗長ビットを訂正パラメータCD(1,a)とすれば、両者を結合したn+mビットの符号に含まれるkビット以内の誤りが訂正可能である。誤りの訂正されたnビットを共通鍵CK(1)としても良いし、n+mビットの符号全体を共通鍵CK(1)としてもよく、n+mビットの符号から何らかの規則に基づいて、適当なビット数のデータを生成して共通鍵CK(1)としてもよい。
誤り訂正能力に相当するビット数kは、採用する誤り訂正符号の訂正アルゴリズムに基づいて、元データのビット数nと、結合する冗長ビットのビット数mとによって調整することができる。ユニークコードUC(a)に含まれるエラーのビット数の実態に応じて、決めればよい。ユニークコードUC(a)と訂正パラメータCD(1,a)のそれぞれのビット数は、上記誤り訂正符号のデータnビットと冗長ビットmビットと対応付ける必要はない。
<半導体集積回路(ICa)1の実装形態>
半導体集積回路(ICa)1は、他にCPUを含む、例えば、マイクロコントローラとして実現することができる。
図3と図5は、実施の形態に係る半導体集積回路(ICa)1の構成例を示すブロック図である。図3は、ROM4をオンチップに内蔵する、所謂ROM内蔵マイクロコントローラであり、図5は、ROM4をオンチップに内蔵しない、所謂RAM版のマイクロコントローラである。
図3に示されるROM内蔵マイクロコントローラは、CPU13と、RAM14と、I/O15と、ユニークコード生成部2と、暗号IP16と、ROM4とを備え、それらが互いにバス17を介して接続される。特に制限されないが、ICa1は、例えば、公知のCMOS(Complementary Metal-Oxide-Semiconductor field effect transistor)LSIの製造技術を用いて、シリコンなどの単一半導体基板上に形成される。
ユニークコード生成部2は、前述のようにデバイスの固有のディジタル値を生成する装置である。このユニークコード生成装置は、他の構成要素と分けて構成される必要は無い。たとえば、前述のSRAM−PUFの場合は、RAM14の一部を用いて構成する事も可能である。
ROM4には、CPU13からアクセス可能なプログラムやデータが、前記所定の暗号鍵である共通鍵CK(1)を用いて暗号化された値で格納される。暗号IP16は、ユニークコード生成部2から供給されるユニークコードUC(a)と、訂正パラメータCD(1,a)から共通鍵CK(1)を生成し、ROM4から読み出された値D(CK(1))を復号してCPU13に供給する。ROM4から読み出された値D(CK(1))がプログラムであれば、CPU13は復号されたプログラムコードをフェッチして実行し、データであれば演算処理等に利用する。
図5に示されるRAM版のマイクロコントローラも、CPU13と、RAM14と、I/O15と、ユニークコード生成部2と、暗号IP16とを備え、それらが互いにバス17を介して接続されるが、ROM4は内蔵されていない。特に制限されないが、RAM版のマイクロコントローラも、例えば、公知のCMOSLSIの製造技術を用いて、シリコンなどの単一半導体基板上に形成されることができるが、不揮発性メモリを形成する工程を含む必要がないため、製造コストはROM内蔵版よりも低く、単位チップ面積当たりの欠陥密度が低い分、歩留まりが向上するので、製造原価を低く抑えることができる。
一般にRAM版のマイクロコントローラでは、実行すべきプログラムのプログラムコードやプログラムで利用されるデータは、外付けのROMに格納しておき、電源投入直後のブートアップシーケンスによって、オンチップのRAM14に転送した後に、CPU13がRAM14にアクセスして実行する。CPU13が外付けのメモリにアクセスするには、オンチップのメモリよりも多くのアクセスサイクルが必要であるため、動作速度が制限されるためである。
本実施形態においては、外付けのROMには、CPU13からアクセス可能なプログラムやデータが、前記所定の暗号鍵である共通鍵CK(1)を用いて暗号化された値で格納される。上記ブートアップシーケンス等を使って、外付けのROMから暗号化された値D(CK(1))をRAM14に予め転送する。暗号IP16は、上記と同様に、ユニークコード生成部2から供給されるユニークコードUC(a)と、訂正パラメータCD(1,a)から共通鍵CK(1)を生成する。CPU13がRAM14をアクセスすることによって読み出された値D(CK(1))は、暗号IP16によって、生成された共通鍵CK(1)を用いて復号され、CPU13に供給される。読み出された値D(CK(1))がプログラムであれば、CPU13は復号されたプログラムコードをフェッチして実行し、データであれば演算処理等に利用する。
以上述べてきたように、不揮発性メモリ(ROM4)に格納され秘匿されているデータを、CPU13が利用することができる。
<CPUから不揮発性メモリへのデータの書き込み>
ICa1は、暗号IP16にさらに暗号化部を備えることもできる。暗号IP16に含まれる暗号処理部3は、CPU13から出力されるデータを、生成された共通鍵CK(1)を使って暗号化する機能をさらに備えることができる。CPU13はROM4に書き込むデータを、暗号処理部3によって暗号化した後に、ROM4に書き込むことができる構成となる。このとき、ROM4は電気的に書き換え可能なメモリである。
これにより、ICa1の使用中に、ROM4に追記または変更すべきデータがある場合にも、そのデータを秘匿することができる。
以上述べた実施の形態では、暗号処理部3の機能が暗号IP16によって実行される例を示したが、暗号処理部3の機能は、CPU13のソフトウェアによって実行されてもよい。その場合、暗号IP16を備えない構成を採ることもできるし、一部の暗号演算処理を加速するためのアクセラレータとして構成することもできる。また、訂正パラメータCD(1,a)は、どのような方法で、共通鍵生成部5に供給しても良い。例えば、ICa1の同一チップ内に保持して供給しても良いし、ICa1の外部から供給しても良い。
〔実施形態2〕<鍵データベースをオンチップに含むIC>
図6は、実施形態2に係る半導体集積回路(ICa)1の構成を示すブロック図(ROM内蔵版)である。図2に示した実施形態1との違いは、ICa1が鍵データベース9を含んで構成される点である。オフライン処理20で算出された訂正パラメータCD(1,a)は予め鍵データベース9に格納され、訂正パラメータCD(1,a)が同一チップ内に保持される。図2と同様の部分の構成についての説明は省略する。
鍵データベース9は、例えば、ROM4内の所定の領域とし、その領域に訂正パラメータCD(1,a)を格納しておき、電源投入処理やブート処理、リセット処理などの初期シーケンスで共通鍵生成部5に読み込むことができる。また、ROM4以外の不揮発性メモリを備えて、訂正パラメータCD(1,a)をそれに保持してもよい。
また、ICa1がROM4を内蔵せず、ICa1にROM4を外付けして、ROMコンテンツ保護システムを構成してもよい。図7は、実施形態2に係る半導体集積回路の構成を示すブロック図(RAM版)である。図4に示した実施形態1との違いは、ICa1が鍵データベース9を含んで構成される点である。オフライン処理20で算出された訂正パラメータCD(1,a)は予め、外付けされたROM4の鍵データベース9に格納される。ブートアップシーケンスなどにより、鍵データベース9はオンチップのRAM14に転送され、訂正パラメータCD(1,a)が同一チップ内に保持される。その他、図2、図4と同様の部分の構成についての説明は省略する。
これにより、訂正パラメータCD(1,a)をチップの外から伝送するためのデータ通信を不要とすることができる。チップまたはシステムの外から伝送しないので、攻撃者に伝送中の値を観測され、または繰り返しの試行により探索されるなどにより、訂正パラメータCD(1,a)の値が知られる恐れを低減することができ、当該半導体集積回路(ICa)1及び当該ROMコンテンツ保護システムのセキュリティを向上することができる。
〔実施形態3〕<鍵データベースを含む管理IC(ICs)を外付け>
図8は、実施形態3に係る半導体集積回路(ICa)1及びICaを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図(ROM内蔵版)である。図3に示した実施形態2との違いは、ICa1が鍵データベース9をオンチップに含まず、代わりに鍵データベース9を持つ管理IC(ICs)8が外付けされ、ICa1に訂正パラメータCD(1,a)を供給する点である。オフライン処理20(図示を省略)で算出された訂正パラメータCD(1,a)は予めICs8の鍵データベース9に格納され保持される。図1、図2、図6と同様の部分の構成についての説明は省略する。
図9は、実施形態3に係る半導体集積回路(RAM版)及びシステムの構成を示すブロック図である。ICa1は、図4、図5に示したような、ROM4を内蔵しない半導体集積回路である。外付けされる管理IC(ICs)8が、ROM4を内蔵する。ROM4には、暗号化された値D(CK(1))が格納されており、例えばブートアップシーケンスを使って、電源投入直後にICa1内のRAM14に、転送される。上述の図8の場合と同様に、オフライン処理20(図示を省略)で算出された訂正パラメータCD(1,a)は予めICs8の鍵データベース9に格納され保持され、管理IC(ICs)8からICa1に供給される。その他、図1、図4、図7と同様の部分の構成についての説明は省略する。ROM4が管理IC(ICs)8に内蔵される場合について説明したが、ROM4はICs8とは別に外付けされてもよい。
以上のように、ROM4に格納される暗号化された値D(CK(1))と、その暗号を復号するための暗号鍵である共通鍵CK(1)を生成するための訂正パラメータCD(1,a)が、別チップで管理されるので、セキュリティを向上することができる。
また、管理IC(ICs)8は、オフライン処理20とは分離して、暗号鍵CK(1)や暗号化ステップ23、及び、訂正パラメータ算出ステップ21の内容とその入出力データ、中間データなどは内部に保持せず、その結果である鍵データベース9のみを保持するように構成することができる。これにより、管理IC(ICs)8がセキュアではない環境で使用される場合であっても、ROMコンテンツ保護システム10全体としてのセキュリティを向上することができる。
〔実施形態4〕<複数の保護対象IC(ICa、ICb)と1個の管理IC(ICs)>
図10は、実施形態4に係る半導体集積回路(ICa、ICb)1_a、1_b及びICaとICbを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図である。図8に示した実施形態3との違いは、1個の管理IC(ICs)8に対して、図8に示したICa(1_a)以外に、同様に構成されたICb(1_b)が接続されている点である。図10では2個のみの保護対象IC(ICa、ICb)を示したが、接続する保護対象ICの数は、任意に決めることができる。
複数の半導体集積回路(ICa、ICb)1_a、1_bのそれぞれは、不揮発性メモリ(ROM)4_a、4_bと、ユニークコード生成部2_a、2_bと、暗号処理部3_a、3_bとを含んで構成される。
それぞれの不揮発性メモリ(ROM)4_aと4_bには、ICa(1_a)とICb(1_b)のそれぞれに対応する共通鍵CK(1,a)とCK(1,b)を用いて暗号化された値D(CK(1、a))とD(CK(1、b))が格納される。ICa(1_a)とICb(1_b)でそれぞれ異なる共通鍵(CK(1、a)≠CK(1、b))を使って暗号化しても良いし、同じ共通鍵CK(1)(=CK(1、a)=CK(1、b))を使って暗号化しても良い。図5には、同じ共通鍵CK(1)を使って暗号化されている例が示される。個体ごとにROM4に書き込むコードを変える必要がないため、大量生産に適する。一方、個体ごとに暗号鍵を異ならせれば、セキュリティは向上する。
管理IC(ICs)8に含まれる鍵データベース9は、複数の半導体集積回路(ICa、ICb)1_a、1_bのそれぞれと対応付けて、複数の訂正パラメータCD(1,a)とCD(1,b)を保持し、訂正パラメータを対応する半導体集積回路に供給する。訂正パラメータCD(1,a)はICa(1_a)に、給され、共通鍵生成部5_aにより、ユニークコードUC(a)を参照して共通鍵CK(1)を生成する。復号部6_aは、生成された共通鍵CK(1)を用いて、ROM4_aに格納されている暗号化されたデータD(CK(1))を復号する。他方、訂正パラメータCD(1,b)はICb(1_b)に供給され、共通鍵生成部5_bにより、ユニークコードUC(b)を参照して共通鍵CK(1)を生成する。復号部6_bは、生成された共通鍵CK(1)を用いて、ROM4_bに格納されている暗号化されたデータD(CK(1))を復号する。
図11は、実施形態4に係る管理IC(ICs)8に含まれる鍵データベース9の構成例を示す説明図である。鍵データベース9は、複数の半導体集積回路ICa、ICb、…ごとに、複数の共通鍵CK(1)、CK(2)、…に対応する複数の訂正パラメータを格納したデータベースである。
訂正パラメータCD(1,a)は、対応するICaの製造後にユニークコード生成部2_aから生成される初期ユニークコードUC(a)_initと共通鍵CK(1)に基づいて、システムの外部で予め算出された訂正パラメータである。訂正パラメータCD(2,a)は、同じく対応するICaの初期ユニークコードUC(a)_initに基づくが、別の共通鍵CK(2)を生成するための訂正パラメータである。他の半導体集積回路ICbなどについても、同様に、対応する訂正パラメータCD(1,b)、CD(2,b)がシステムの外部で予め算出され、鍵データベース9に格納される。図10に示した例は、ROM4_aとROM4_bには同じ共通鍵CK(1)を使って暗号化した値D(CK(1))が格納される例であるので、CD(2,a)とCD(2,b)は、使用されていない。ROM4_aとROM4_bのプログラムやデータを、それぞれ異なる共通鍵CK(1)とCK(2)を使って暗号化したときは、ICaにはCD(1,a)を供給し、ICbにはCD(2,b)を供給すればよい。
また、訂正パラメータCDの供給方法は任意である。例えば、管理IC(ICs)8に、ICa、ICb、…それぞれに接続される配線を備え、訂正パラメータCD(1,a)、CD(1,b)、…をパラレル通信またはシリアル通信で供給してもよい。または、共通のバスや通信路を設けて、識別コードなどを使った通信により、個別に訂正パラメータを伝送してもよい。
これにより、セキュリティが向上された半導体集積回路を複数(1_a、1_b)搭載したROMコンテンツ保護システム10を構築することができる。当該システムは、同じ半導体集積回路を複数個搭載して構成しても、異なる種類の半導体集積回路を含んで構成しても良く、さらに複数個の同じ半導体集積回路と異なる種類の半導体集積回路を含んで構成しても良い。
図10には、ROM4_a、4_bをそれぞれ内蔵する、半導体集積回路(ICa、ICb)1_a、1_bを示したが、ROM4_a、4_bは必ずしも内蔵される必要はなく、例えば図4、図7などと同様に外付けされてもよい。また、それぞれ別個のROMとして外付けされる必要もなく、例えば全てのコンテンツを格納する1個ROMを、ICs8に内蔵して構成してもよい。その場合は、ブートアップシーケンスなどにより、順次、各半導体集積回路(ICa、ICb)1_a、1_bに、暗号化された値D(CK(1、a))とD(CK(1、b))がそれぞれ転送される。
〔実施形態5〕<訂正パラメータをネットワーク経由で供給>
図12は、実施形態5に係る半導体集積回路(ICa)1及びICaを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図である。図8に示した実施形態3との違いは、ICa1がネットワークインターフェース12を含んで構成され、ネットワーク11を介して管理IC(ICs)8と接続される点である。ICa1は、ICs8の鍵データベース9に格納される訂正パラメータCD(1,a)を、ネットワーク11を介して受信することができる。図8と同様の部分の構成についての説明は省略する。
ネットワーク11は、公衆網からローカルエリアネットワーク(LAN: Local Area Network)、さらには、独自の通信プロトコルを持つような、より単純なネットワークであってもよく、図8に示した1:1、または、図10に示した多:1の通信路で構成されてもよい。
これにより、ネットワーク11を経由しても、セキュリティを担保した状態で、暗号鍵に相当する情報である訂正パラメータCD(1,a)を保護対象のICに配信することができる。ネットワーク11を介して伝送される情報が、共通鍵CK(1)そのものではなく、訂正パラメータCD(1,a)であるため、これが知られても、ユニークコードUC(a)が知られない限り、共通鍵CK(1)を生成することができない。したがって、訂正パラメータCD(1,a)を、ネットワーク11を経由して伝送しても、セキュリティを担保することができる。
図12には、ROM4を内蔵する、半導体集積回路(ICa)1を示したが、ROM4は必ずしも内蔵される必要はなく、例えば図4、図7などと同様に外付けされてもよい。その場合は、暗号化された値D(CK(1、a))は、例えば、電源投入時にブートアップシーケンスなどにより転送される。また、暗号化された値D(CK(1、a))は、ICs8からネットワーク11を介してICa1にダウンロードされてもよい。
〔実施形態6〕<ROM保護用暗号、認証用暗号等ための複数の訂正パラメータ>
図11に示したように、鍵データベース9は、保護対象のICごとに複数の共通鍵を生成するための、複数の訂正パラメータを保持することができる。複数の共通鍵は、用途ごと使い分けることができる。例えば、プログラムの暗号化のために共通鍵CK(1)を用い、データの暗号化のために別の共通鍵CK(2)を用い、通信の暗号化のためにさらに別の共通鍵CK(3)を用いることができる。また、複数の保護対象のICの間で、異なる共通鍵を用いることもできるし、同じ共通鍵を用いて相互間の通信を暗号化することもできる。本実施形態6の他、実施形態7と実施形態8の合計3つの例を取り上げて、より詳細に説明する。
<1つのユニークコードから複数の暗号鍵を生成>
ICa1に搭載される不揮発性メモリ(ROM)4に格納する値の暗号化に使われる暗号鍵を第1共通鍵CK(1)とし、鍵データベース9は、ICa1と対応付けて複数の訂正パラメータCD(1,a)、CD(2,a)、…を保持し、それらをICa1に供給する。ICa1の暗号処理部3は、供給された複数の訂正パラメータCD(1,a)、CD(2,a)、…とユニークコード生成部2から生成されるユニークコードUC(a)とに基づいて、第1共通鍵CK(1)とそれとは別の共通鍵CK(2)とを算出する。暗号処理部3は、復号部6において算出した第1共通鍵CK(1)を用いて、ROM4から読み出された、暗号化された値D(CK(1))を復号することができる。
これにより、複数の暗号鍵(CK(1)、CK(2)、…)に用途によって使い分けることができ、当該半導体集積回路のセキュリティをさらに向上し、システム全体のセキュリティも向上することができる。
<1つのユニークコードから認証用と復号用の暗号鍵を生成>
図13は、実施形態6に係る半導体集積回路(ICa)1_a及びICaを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図である。1つのユニークコードUC(a)から2個の暗号鍵CK(1)とCK(2)を生成し、一方の共通鍵CK(1)をROM4に格納される暗号化された値D(CK(1))を復号するために用い、他方の共通鍵CK(2)を認証に用いる例である。ICa(1_a)は、管理IC(ICs)8と、さらに別の保護対象IC(ICz)1_zと接続され、不揮発性メモリ(ROM)4と、ユニークコード生成部2と、暗号処理部3と、インターフェース部19とを含んで構成される。暗号処理部3には、共通鍵生成部5と復号部6_1と6_2と、暗号化部7_1と7_2とが含まれる。ROM4には、共通鍵CK(1)を用いて暗号化されたプログラム及び/またはデータD(CK(1))が格納される。図13では復号部6_2と暗号化部7_2は1つのブロックで示され、インターフェース部19を介して別の保護対象IC(ICz)1_zと接続されている。管理IC(ICs)8は鍵データベース9の他、さらに認証部18を備える。管理IC(ICs)8の認証部18は、ICa(1_a)の暗号化部7_1と接続される。
ICa(1_a)及びICaを含んで構成されるシステムの動作について説明する。ICs8は、鍵データベース9に、共通鍵CK(1)に対応する訂正パラメータCD(1,a)と、共通鍵CK(2)に対応する訂正パラメータCD(2,a)とを保持する。さらに、認証用のチャレンジデータChrを共通鍵CK(2)を用いて暗号化したChr(CK(2))を、期待値Expとして保持する。チャレンジデータChrは、例えば乱数などの値を用いることができる。複数のチャレンジデータChr_1〜Chr_xとそれぞれに対応する期待値Exp_1〜Exp_xを順次、又はランダムに切替えて使用することもできる。このように、複数の候補を備えて切り替えることにより、安全性を高めることができる。
まず、ICs8は、ICa(1_a)に対して、鍵データベース9から訂正パラメータCD(2,a)と、認証部18からチャレンジデータChrを送信する。ICa(1_a)は、共通鍵生成部5で、ユニークコード生成部2から生成されるユニークコードUC(a)を参照して、受信した訂正パラメータCD(2,a)を使って共通鍵CK(2)を生成し、暗号化部7_1に供給する。暗号化部7_1は、ICs8から受信したチャレンジデータChrを共通鍵CK(2)を使って暗号化し(Chr(CK(2)))、ICs8に返信する。ICs8は、暗号化されて返信されたチャレンジデータChr(CK(2))を、認証部18でチャレンジデータ期待値Expと比較する。一致した場合には、ICaを真正な保護対象ICとして認証する。
ICaを真正な保護対象ICであると認証した後、管理IC(ICs)8は、ICaに対して、訂正パラメータCD(1,a)を供給する。例えば、認証部18は、暗号化されて返信されたチャレンジデータChr(CK(2))とチャレンジデータ期待値Expと比較し、一致した場合に鍵データベース9に対して照合結果matchを出力し、その結果に基づいて、鍵データベース9がICaに対して、訂正パラメータCD(1,a)を供給するように構成される。ICa(1_a)は、共通鍵生成部5で、ユニークコード生成部2から生成されるユニークコードUC(a)を参照して、受信した訂正パラメータCD(1,a)を使って共通鍵CK(1)を生成し、復号部6_1に供給する。復号部6_1は、実施形態1や実施形態4などと同様に、算出された共通鍵CK(1)を用いて、ROM4から読み出された暗号化された値D(CK(1))を復号することができる。
算出された共通鍵CK(1)は、さらに、復号部6_2と暗号化部7_2に供給されてもよい。同じ共通鍵CK(1)を持つ別の保護対象ICであるICz(1_z)との間で、インターフェース部19を介して暗号通信を行うことができる。本実施形態では、ICz(1_z)との間の暗号通信は、ROM4の内容の保護と同じ暗号鍵(共通鍵CK(1))を用いて暗号化する例を示したが、別の暗号鍵(共通鍵CK(3)など)を用いてもよい。
復号部6_1と6_2及び暗号化部7_1と7_2は、1個の暗号モジュールとして実装されてもよい。復号部6_1と6_2及び暗号化部7_1と7_2のための復号と暗号化の演算を時分割で順次実行することにより、並列に設ける場合よりも回路規模を小さく抑えることができる。
これにより、複数の暗号鍵のうちの1つ(CK(2))を認証に用いることができ、当該半導体集積回路(ICa)のセキュリティをさらに向上し、ROMコンテンツ保護システム10全体のセキュリティも向上することができる。
図13には、ROM4をそれぞれ内蔵する、半導体集積回路(ICaとICz)1_aと1_zを示したが、ROM4は必ずしも内蔵される必要はなく、例えば図4、図7などと同様に外付けされてもよい。その場合は、暗号化された値D(CK(1,a))とD(CK1,z)は、例えば、電源投入時にブートアップシーケンスなどにより、ICa(1_a)とICz(1_z)にそれぞれ転送される。ROM4はICa(1_a)とICz(1_z)にそれぞれ外付けされても良いし、両方のコンテンツを含む1個のROM4を外付けして、ICa(1_a)とICz(1_z)にそれぞれのコンテンツが順次転送されるように構成されてもよい。1個のROM4は管理IC(ICs)に内蔵してもよい。
〔実施形態7〕<認証用暗号のための訂正パラメータをオンチップに含むIC>
図14は、実施形態7に係る半導体集積回路(ICa)1_a及びICaを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図である。図13に示した実施形態6との違いは、認証用に用いる共通鍵CK(2)に対応する訂正パラメータCD(2,a)が、ICa(1_a)のROM4に格納され、認証に際して共通鍵生成部5に供給される点である。他の構成は、図13を引用して説明した実施形態6と同様であるので、説明を省略する。
ICa(1_a)及びICaを含んで構成されるシステムの動作について説明する。ICs8は、鍵データベース9に、共通鍵CK(1)に対応する訂正パラメータCD(1,a)と、認証用のチャレンジデータChrを共通鍵CK(2)を用いて暗号化したChr(CK(2))を、期待値Expとして保持する。まず、ICs8は、ICa(1_a)に対して、認証部18からチャレンジデータChrを送信する。ICa(1_a)は、共通鍵生成部5で、ユニークコード生成部2から生成されるユニークコードUC(a)を参照して、ROM4に格納される訂正パラメータCD(2,a)を使って共通鍵CK(2)を生成し、暗号化部7_1に供給する。暗号化部7_1は、ICs8から受信したチャレンジデータChrを共通鍵CK(2)を使って暗号化し(Chr(CK(2)))、ICs8に返信する。これ以降の動作は、図13を引用して説明した実施形態6と同様であるので、説明を省略する。
本実施形態7においても、前述の実施形態6と同様に、複数の暗号鍵のうちの1つ(CK(2))を認証に用いることができ、当該半導体集積回路(ICa)のセキュリティをさらに向上し、ROMコンテンツ保護システム10全体のセキュリティも向上することができる。
図14には、ROM4をそれぞれ内蔵する、半導体集積回路(ICaとICz)1_aと1_zを示したが、ROM4は必ずしも内蔵される必要はなく、例えば図4、図7などと同様に外付けされてもよい。その場合は、暗号化された値D(CK(1,a))とD(CK1,z)は、例えば、電源投入時にブートアップシーケンスなどにより、ICa(1_a)とICz(1_z)にそれぞれ転送される。ROM4はICa(1_a)とICz(1_z)にそれぞれ外付けされても良いし、両方のコンテンツを含む1個のROM4を外付けして、ICa(1_a)とICz(1_z)にそれぞれのコンテンツが順次転送されるように構成されてもよい。1個のROM4は管理IC(ICs)に内蔵してもよい。
〔実施形態8〕<公開鍵認証>
図11に示したように、鍵データベース9は、保護対象のICごとに複数の共通鍵を生成するための、複数の訂正パラメータを保持することができる。前述のように、複数の共通鍵は用途ごと使い分けることができる。本実施形態8は、1つのユニークコードUC(a)から2個の暗号鍵CK(1)とCK(2)を生成し、一方の共通鍵CK(1)をROM4に格納される暗号化された値D(CK(1))を復号するために用い、他方の共通鍵CK(2)を認証に用いる例である。認証に用いる共通鍵CK(2)は、秘密鍵(SK: Secret Key)であって、管理IC(ICs)8が対応する公開鍵(PK: Public Key)を保持する。
図15は、実施形態8に係る半導体集積回路及びROMコンテンツ保護システムの構成を示すブロック図であり、図16は、鍵データベース9の構成例を示す説明図である。
図15は、実施形態8に係る半導体集積回路(ICa)1_a及びICaを含んで構成されるROMコンテンツ保護システム10の構成を示すブロック図である。1つのユニークコードUC(a)から2個の暗号鍵である共通鍵CK(1)と秘密鍵SK(1)を生成し、共通鍵CK(1)をROM4に格納される暗号化された値D(CK(1))を復号するために用い、秘密鍵SK(1)を認証に用いる例である。ICa(1_a)は、管理IC(ICs)8と、さらに別の保護対象IC(ICz)1_zと接続され、不揮発性メモリ(ROM)4と、ユニークコード生成部2と、暗号処理部3と、インターフェース部19とを含んで構成される。暗号処理部3には、共通鍵生成部5と復号部6_1と6_2と、暗号化部7_1と7_2とが含まれる。ROM4には、共通鍵CK(1)を用いて暗号化されたプログラム及び/またはデータD(CK(1))が格納される。図15では復号部6_2と暗号化部7_2は1つのブロックで示され、インターフェース部19を介して別の保護対象IC(ICz)1_zと接続されている。管理IC(ICs)8は鍵データベース9の他、さらに認証部18を備える。管理IC(ICs)8の認証部18は、チャレンジデータChrの生成も実行可能に構成され、ICa(1_a)の暗号化部7_1と接続される。
ICa(1_a)及びICaを含んで構成されるシステムの動作について説明する。ICs8は、鍵データベース9に、共通鍵CK(1)に対応する訂正パラメータCD(1,a)と、秘密鍵SK(1)に対応する訂正パラメータCD(2,a)とを保持する。ICs8は、秘密鍵SK(1)に対応する訂正パラメータCD(2,a)と認証用のチャレンジデータChrを、ICa(1_a)に送る。
ICa(1_a)は、共通鍵生成部5で、ユニークコード生成部2から生成されるユニークコードUC(a)を参照して、受信した訂正パラメータCD(2,a)を使って秘密鍵SK(1)を生成し、暗号化部7_1に供給する。暗号化部7_1は、ICs8から受信したチャレンジデータChrを秘密鍵SK(1)を使って暗号化し(Chr(SK(1))、ICs8に返信する。ICs8は、暗号化されて返信されたチャレンジデータChr(SK(1))を、認証部18で公開鍵PK(1)を使って復号し、送信したチャレンジデータChrと比較する。一致した場合には、ICaを真正な保護対象ICとして認証する。認証部18は、一致した場合には、鍵データベース9に対して照合結果matchを出力し、その結果に基づいて、鍵データベース9がICaに対して、訂正パラメータCD(1,a)を供給するように構成される。
ICaを真正な保護対象ICであると認証した後、管理IC(ICs)8は、ICaに対して、訂正パラメータCD(1,a)を供給する。ICa(1_a)は、共通鍵生成部5で、ユニークコード生成部2から生成されるユニークコードUC(a)を参照して、受信した訂正パラメータCD(1,a)を使って共通鍵CK(1)を生成し、復号部6_1に供給する。復号部6_1は、実施形態1や実施形態4などと同様に、算出された共通鍵CK(1)を用いて、ROM4から読み出された暗号化された値D(CK(1))を復号することができる。
算出された共通鍵CK(1)は、さらに、復号部6_2と暗号化部7_2に供給されてもよい。同じ共通鍵CK(1)を持つ別の保護対象ICであるICz(1_z)との間で、インターフェース部19を介して暗号通信を行うことができる。本実施形態では、ICz(1_z)との間の暗号通信は、ROM4の内容の保護と同じ暗号鍵(共通鍵CK(1))を用いて暗号化する例を示したが、別の暗号鍵(共通鍵CK(3)など)を用いてもよい。
復号部6_1と6_2及び暗号化部7_1と7_2は、1個の暗号モジュールとして実装されてもよい。復号部6_1と6_2及び暗号化部7_1と7_2のための復号と暗号化の演算を時分割で順次実行することにより、並列に設ける場合よりも回路規模を小さく抑えることができる。
これにより、複数の暗号鍵のうちの1つ(CK(2))を公開鍵認証システムにおける秘密鍵SK(1)として認証に用いることができ、当該半導体集積回路(ICa)のセキュリティをさらに向上し、ROMコンテンツ保護システム10全体のセキュリティも向上することができる。
図15には、ROM4をそれぞれ内蔵する、半導体集積回路(ICaとICz)1_aと1_zを示したが、ROM4は必ずしも内蔵される必要はなく、例えば図4、図7などと同様に外付けされてもよい。その場合は、暗号化された値D(CK(1,a))とD(CK1,z)は、例えば、電源投入時にブートアップシーケンスなどにより、ICa(1_a)とICz(1_z)にそれぞれ転送される。ROM4はICa(1_a)とICz(1_z)にそれぞれ外付けされても良いし、両方のコンテンツを含む1個のROM4を外付けして、ICa(1_a)とICz(1_z)にそれぞれのコンテンツが順次転送されるように構成されてもよい。1個のROM4は管理IC(ICs)に内蔵してもよい。
以上本発明者によってなされた発明を実施形態に基づいて具体的に説明したが、本発明はそれに限定されるものではなく、その要旨を逸脱しない範囲において種々変更可能であることは言うまでもない。
1 保護対象IC
2 ユニークコード生成部
3 暗号処理部
4 不揮発性メモリ
5 共通鍵生成部
6 復号部
7 暗号化部
8 管理IC
9 鍵データベース
10 ROMコンテンツ保護システム
11 ネットワーク
12 ネットワークインターフェース
13 CPU
14 RAM
15 I/O
16 暗号IP
17 バス
18 認証部
19 インターフェース(I/F)部
20 オフライン処理
21 訂正パラメータ算出ステップ
22 ROMコンテンツ(プログラム及び/又はデータ)
23 暗号化ステップ
UC(a)、UC(b) ユニークコード
UC(a)_init 初期ユニークコード
CK(1)、CK(2) 暗号鍵(共通鍵)
SK(1) 秘密鍵
PK(1) 公開鍵
CD(1,a)、CD(1,b)、CD(2,a)、CD(2,b) 訂正パラメータ
Chr チャレンジデータ
Chr(CK(2)) 共通鍵CK(2)を用いて暗号化されたチャレンジデータ
Chr(SK(1)) 秘密鍵SK(1)を用いて暗号化されたチャレンジデータ
D(CK(1)) 共通鍵CK(1)を用いて暗号化されたROMコンテンツ(プログラム及び/又はデータ)
Exp 期待値
match 照合結果

Claims (20)

  1. 所定の暗号鍵を用いて暗号化された値を格納可能な不揮発性メモリと、ユニークコード生成部と、暗号処理部とを含んで構成される、半導体集積回路であって、
    前記ユニークコード生成部は、前記半導体集積回路の製造ばらつきによって固有に定まる複数ビットのディジタル値である、ユニークコードを生成可能であり、
    前記暗号処理部は、訂正パラメータと前記ユニークコードとに基づいて前記暗号鍵を算出し、算出した前記暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号可能に構成され、
    前記訂正パラメータは、前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコードと前記所定の暗号鍵に基づいて、前記半導体集積回路の外部で予め算出される、半導体集積回路。
  2. 請求項1において、前記ユニークコード生成部から生成される前記ユニークコードが、前記初期ユニークコードに対してエラーを含んでいても、前記暗号処理部は、前記訂正パラメータと前記ユニークコードとに基づいて前記暗号鍵を算出可能に構成される、半導体集積回路。
  3. 請求項1において、前記訂正パラメータを同一チップ内に保持する、半導体集積回路。
  4. 請求項1において、前記半導体集積回路はネットワークインターフェースをさらに備え、前記訂正パラメータは前記ネットワークインターフェースを介して受信可能に構成される、半導体集積回路。
  5. 請求項1において、前記訂正パラメータを第1訂正パラメータとし、前記暗号鍵を第1暗号鍵とし、
    前記暗号処理部は、前記第1訂正パラメータとは異なる第2訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵とは異なる第2暗号鍵を算出可能に構成される、半導体集積回路。
  6. 請求項1において、前記半導体集積回路はCPUをさらに備え、
    前記不揮発性メモリは、前記CPUで実行可能なプログラムのプログラムコードが前記所定の暗号鍵を用いて暗号化された値を格納可能に構成され、前記CPUは、前記暗号処理部によって復号されたプログラムを実行可能に構成される、半導体集積回路。
  7. 請求項6において、前記不揮発性メモリは、前記CPUからアクセス可能なデータが前記所定の暗号鍵を用いて暗号化された値を格納可能に構成され、前記CPUは、前記暗号処理部によって復号された前記データを読み出し可能に構成される、半導体集積回路。
  8. 請求項6において、前記暗号処理部は、前記CPUから出力されるデータを、前記算出された暗号鍵を使って暗号化する機能をさらに備え、前記CPUは前記不揮発性メモリに書き込むデータを、前記暗号処理部によって暗号化した後に、前記不揮発性メモリに書き込み可能に構成される、半導体集積回路。
  9. ユニークコード生成部と暗号処理部とを含んで構成される、半導体集積回路と、所定の暗号鍵を用いて暗号化された値を格納可能な不揮発性メモリとを含んで構成されるシステムであって、
    前記ユニークコード生成部は、前記半導体集積回路の製造ばらつきによって固有に定まる複数ビットのディジタル値である、ユニークコードを生成可能であり、
    前記暗号処理部は、訂正パラメータと前記ユニークコードとに基づいて前記暗号鍵を算出し、算出した前記暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号可能に構成され、
    前記訂正パラメータは、前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコードと前記所定の暗号鍵に基づいて、前記システムの外部で予め算出される、システム。
  10. 請求項9において、前記ユニークコード生成部から生成される前記ユニークコードが、前記初期ユニークコードに対してエラーを含んでいても、前記暗号処理部は、前記訂正パラメータと前記ユニークコードとに基づいて前記暗号鍵を算出可能に構成される、システム。
  11. 請求項9において、前記半導体集積回路と対応付けて前記訂正パラメータを保持し、前記訂正パラメータを前記半導体集積回路に供給するデータベースをさらに備える、システム。
  12. 請求項9において、複数の前記半導体集積回路とデータベースを含んで構成され、
    前記複数の半導体集積回路のそれぞれは、前記不揮発性メモリと、前記ユニークコード生成部と、前記暗号処理部とを含んで構成され、
    前記不揮発性メモリには、前記複数の半導体集積回路のそれぞれに対応する暗号鍵を用いて暗号化された値が格納され、
    前記データベースは、前記複数の半導体集積回路のそれぞれと対応付けて、複数の前記訂正パラメータを保持し、前記訂正パラメータを対応する前記半導体集積回路に供給し、
    前記訂正パラメータは、対応する前記半導体集積回路の製造後に前記ユニークコード生成部から生成される初期ユニークコードと、前記対応する前記半導体集積回路の前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵に基づいて、前記システムの外部で予め算出され、前記データベースに格納される、システム。
  13. 請求項9において、前記半導体集積回路はさらに揮発性メモリを備え、前記所定の暗号鍵を用いて暗号化された前記値は、前記不揮発性メモリから前記揮発性メモリに転送可能に構成され、
    前記暗号処理部は、前記揮発性メモリから読み出された暗号化された前記値を復号可能に構成される、システム。
  14. 請求項13において、前記半導体集積回路と対応付けて前記訂正パラメータを保持し、前記訂正パラメータを前記半導体集積回路に供給するデータベースと前記不揮発性メモリを含んで構成される制御半導体集積回路をさらに備え、る、システム。
  15. 請求項11において、前記半導体集積回路と前記データベースとは、ネットワークを介して接続され、前記訂正パラメータは前記ネットワークを介して前記半導体集積回路に受信可能に構成される、システム。
  16. 請求項11において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵とし、
    前記データベースは、前記半導体集積回路と対応付けて複数の前記訂正パラメータを保持し、前記複数の訂正パラメータを前記半導体集積回路に供給し、
    前記暗号処理部は、供給された前記複数の訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵と別の暗号鍵とを算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号可能に構成される、システム。
  17. 請求項11において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータとし、
    前記システムは、前記データベースと認証部とを備える、管理集積回路を備え、
    前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータと第2訂正パラメータを保持し、前記認証部にチャレンジデータと第2訂正パラメータに対応する第2暗号鍵で前記チャレンジデータを暗号化したチャレンジデータ期待値とを保持し、前記第2訂正パラメータと前記チャレンジデータを前記半導体集積回路に供給し、
    前記半導体集積回路において、前記暗号処理部は、供給された前記第2訂正パラメータと前記ユニークコードとに基づいて、前記第2暗号鍵を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化し、前記管理集積回路に返信し、
    前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータを、前記認証部に保持される前記チャレンジデータ期待値と比較し、一致した場合に、前記第1訂正パラメータを前記半導体集積回路に供給し、
    前記半導体集積回路は、供給された前記第1訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号する、システム。
  18. 請求項11において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータとし、
    前記システムは、前記データベースと認証部とを備える、管理集積回路を備え、
    前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータと第2訂正パラメータを保持し、前記認証部にチャレンジデータと前記第2訂正パラメータに対応する第2暗号鍵で前記チャレンジデータを暗号化したチャレンジデータ期待値とを保持し、前記チャレンジデータを前記半導体集積回路に供給し、
    前記半導体集積回路は、前記第2訂正パラメータを保持し、前記暗号処理部は前記第2訂正パラメータと前記ユニークコードとに基づいて前記第2暗号鍵を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化し、前記管理集積回路に返信し、
    前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータを、前記認証部に保持される前記チャレンジデータ期待値と比較し、一致した場合に、前記第1訂正パラメータを前記半導体集積回路に供給し、
    前記半導体集積回路は、供給された前記第1訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号する、システム。
  19. 請求項11において、前記不揮発性メモリに格納する値の暗号化に使われた前記暗号鍵を第1暗号鍵とし、前記第1暗号鍵に対応する訂正パラメータを第1訂正パラメータとし、
    前記システムは、前記データベースと認証部とを備える、管理集積回路を備え、
    前記管理集積回路は、前記データベースに、前記半導体集積回路と対応付けられる前記第1訂正パラメータと第2訂正パラメータとチャレンジデータと公開鍵とを保持し、前記第2訂正パラメータと前記チャレンジデータとを前記半導体集積回路に供給し、
    前記半導体集積回路は、前記暗号処理部は前記第2訂正パラメータと前記ユニークコードとに基づいて前記第2暗号鍵を生成し、供給された前記チャレンジデータを前記第2暗号鍵を用いて暗号化し、前記管理集積回路に返信し、
    前記管理集積回路は、前記暗号化されて返信された前記チャレンジデータを、前記公開鍵を使って復号し、復号された値と前記チャレンジデータとを比較し、一致した場合に、前記第1訂正パラメータを前記半導体集積回路に供給し、
    前記半導体集積回路は、供給された前記第1訂正パラメータと前記ユニークコードとに基づいて、前記第1暗号鍵を算出し、算出した前記第1暗号鍵を用いて、前記不揮発性メモリから読み出された暗号化された値を復号する、システム。
  20. 請求項19において、前記第2暗号鍵は、前記公開鍵に対応する、前記半導体集積回路の秘密鍵である、システム。
JP2013135754A 2013-06-28 2013-06-28 半導体集積回路を含むシステム Active JP6182371B2 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
JP2013135754A JP6182371B2 (ja) 2013-06-28 2013-06-28 半導体集積回路を含むシステム
TW103119876A TWI629614B (zh) 2013-06-28 2014-06-09 半導體積體電路及系統
US14/315,486 US9846788B2 (en) 2013-06-28 2014-06-26 Semiconductor integrated circuit and system
CN201410299766.4A CN104252881B (zh) 2013-06-28 2014-06-27 半导体集成电路及系统
US15/809,626 US10216964B2 (en) 2013-06-28 2017-11-10 Semiconductor integrated circuit and system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2013135754A JP6182371B2 (ja) 2013-06-28 2013-06-28 半導体集積回路を含むシステム

Publications (2)

Publication Number Publication Date
JP2015012409A true JP2015012409A (ja) 2015-01-19
JP6182371B2 JP6182371B2 (ja) 2017-08-16

Family

ID=52116884

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013135754A Active JP6182371B2 (ja) 2013-06-28 2013-06-28 半導体集積回路を含むシステム

Country Status (4)

Country Link
US (2) US9846788B2 (ja)
JP (1) JP6182371B2 (ja)
CN (1) CN104252881B (ja)
TW (1) TWI629614B (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016144174A (ja) * 2015-02-05 2016-08-08 株式会社メガチップス 半導体記憶装置
JP2017108293A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびデータ処理装置
JP2018510592A (ja) * 2015-09-29 2018-04-12 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 動的な暗号化方法、端末、およびサーバ
JP2021034029A (ja) * 2019-08-16 2021-03-01 ▲しゃーん▼碼科技股▲ふん▼有限公司 データセキュリティを提供するメモリデバイス

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1876549A1 (de) * 2006-07-07 2008-01-09 Swisscom Mobile AG Verfahren und System zur verschlüsselten Datenübertragung
JP6288262B2 (ja) * 2014-05-29 2018-03-07 新日鐵住金株式会社 レールおよびその製造方法
CN105097003A (zh) * 2015-09-18 2015-11-25 芯佰微电子(北京)有限公司 一种用于安全芯片的内建密钥只读存储器保护电路
JP2019507538A (ja) * 2016-01-20 2019-03-14 ルネサス・エレクトロニクス・ヨーロッパ・ゲゼルシャフト・ミット・ベシュレンクテル・ハフツングRenesas Electronics Europe Gmbh 偽造防止機能を備えた集積回路
US10476680B2 (en) * 2016-02-03 2019-11-12 Ememory Technology Inc. Electronic device with self-protection and anti-cloning capabilities and related method
CN105871367B (zh) * 2016-03-25 2018-09-21 宁波大学 一种电桥失衡型puf单元电路及多位puf电路
US10395231B2 (en) * 2016-06-27 2019-08-27 Altria Client Services Llc Methods, systems, apparatuses, and non-transitory computer readable media for validating encoded information
US11550927B2 (en) * 2017-09-26 2023-01-10 C-Sky Microsystems Co., Ltd. Storage data encryption/decryption apparatus and method
EP3483772A1 (en) * 2017-11-14 2019-05-15 Nagravision S.A. Integrated circuit personalisation with data encrypted with the output of a physically unclonable function
IT201800006911A1 (it) * 2018-07-04 2020-01-04 Metodo di codifica e decodifica di informazioni digitali
SG11201908931TA (en) 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Cryptographic key management based on identity information
CN110999254B (zh) 2019-03-29 2023-02-28 创新先进技术有限公司 安全地执行加密操作
EP3616360B1 (en) 2019-03-29 2021-07-07 Advanced New Technologies Co., Ltd. Managing cryptographic keys based on identity information
SG11201908938PA (en) * 2019-03-29 2019-10-30 Alibaba Group Holding Ltd Cryptography chip with identity verification
US11429751B2 (en) 2019-07-01 2022-08-30 Rajant Corporation Method and apparatus for encrypting and decrypting data on an integrated circuit
US11768611B2 (en) 2020-04-02 2023-09-26 Axiado Corporation Secure boot of a processing chip

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198528A (ja) * 2001-11-30 2003-07-11 Stmicroelectronics Sa 単一の集積回路識別子の多様化
WO2008056612A1 (fr) * 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
JP2012519987A (ja) * 2009-03-06 2012-08-30 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
JP2012174195A (ja) * 2011-02-24 2012-09-10 Renesas Electronics Corp 認証システム
JP2013003431A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置及び半導体装置へのデータ書き込み方法
JP2013005314A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置
US8386990B1 (en) * 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
JP2013101442A (ja) * 2011-11-08 2013-05-23 Renesas Electronics Corp マイクロコンピュータおよびデータ処理装置
JP2013126221A (ja) * 2011-12-16 2013-06-24 Toshiba Corp 暗号化鍵生成装置およびプログラム

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200535583A (en) * 2003-12-26 2005-11-01 Renesas Tech Corp Mass-production transfer support system and semiconductor manufacturing system
JP4485528B2 (ja) * 2004-08-20 2010-06-23 三菱電機株式会社 メモリカード、データ交換システム及びデータ交換方法
WO2006071380A2 (en) * 2004-11-12 2006-07-06 Pufco, Inc. Securely field configurable device
JP4969106B2 (ja) 2006-01-05 2012-07-04 ルネサスエレクトロニクス株式会社 マイクロコントローラ
JP2008217579A (ja) 2007-03-06 2008-09-18 Kawasaki Microelectronics Kk マイクロコントローラ
CN101286338B (zh) * 2007-04-12 2010-06-02 鸿富锦精密工业(深圳)有限公司 电子设备及其数据加密方法与数据解密方法
US20090285390A1 (en) * 2008-05-16 2009-11-19 Ati Technologies Ulc Integrated circuit with secured software image and method therefor
JP5423088B2 (ja) * 2009-03-25 2014-02-19 ソニー株式会社 集積回路、暗号通信装置、暗号通信システム、情報処理方法、及び暗号通信方法
KR101663158B1 (ko) * 2010-01-29 2016-10-06 삼성전자 주식회사 반도체 메모리 시스템
JP2013031151A (ja) * 2011-06-20 2013-02-07 Renesas Electronics Corp 暗号通信システムおよび暗号通信方法
US20140281587A1 (en) * 2013-03-14 2014-09-18 Ologn Technologies Ag Systems, methods and apparatuses for using a secure non-volatile storage with a computer processor

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003198528A (ja) * 2001-11-30 2003-07-11 Stmicroelectronics Sa 単一の集積回路識別子の多様化
WO2008056612A1 (fr) * 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
JP2012519987A (ja) * 2009-03-06 2012-08-30 イントリンシツク・イー・デー・ベー・ベー 物理的システムに依存する暗号鍵を確立するためのシステム
US8386990B1 (en) * 2010-12-07 2013-02-26 Xilinx, Inc. Unique identifier derived from an intrinsic characteristic of an integrated circuit
JP2012174195A (ja) * 2011-02-24 2012-09-10 Renesas Electronics Corp 認証システム
JP2013003431A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置及び半導体装置へのデータ書き込み方法
JP2013005314A (ja) * 2011-06-20 2013-01-07 Renesas Electronics Corp 半導体装置
JP2013101442A (ja) * 2011-11-08 2013-05-23 Renesas Electronics Corp マイクロコンピュータおよびデータ処理装置
JP2013126221A (ja) * 2011-12-16 2013-06-24 Toshiba Corp 暗号化鍵生成装置およびプログラム

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016144174A (ja) * 2015-02-05 2016-08-08 株式会社メガチップス 半導体記憶装置
JP2018510592A (ja) * 2015-09-29 2018-04-12 ▲騰▼▲訊▼科技(深▲セン▼)有限公司 動的な暗号化方法、端末、およびサーバ
US10742620B2 (en) 2015-09-29 2020-08-11 Tencent Technology (Shenzhen) Company Limited Method for dynamic encryption and signing, terminal and server
US11329965B2 (en) 2015-09-29 2022-05-10 Tencent Technology (Shenzhen) Company Limited Method for dynamic encryption and signing, terminal, and server
JP2017108293A (ja) * 2015-12-10 2017-06-15 ルネサスエレクトロニクス株式会社 半導体集積回路装置およびデータ処理装置
JP2021034029A (ja) * 2019-08-16 2021-03-01 ▲しゃーん▼碼科技股▲ふん▼有限公司 データセキュリティを提供するメモリデバイス
JP6991493B2 (ja) 2019-08-16 2022-01-12 ▲しゃーん▼碼科技股▲ふん▼有限公司 データセキュリティを提供するメモリデバイス

Also Published As

Publication number Publication date
CN104252881B (zh) 2020-03-27
TWI629614B (zh) 2018-07-11
US20150006914A1 (en) 2015-01-01
JP6182371B2 (ja) 2017-08-16
US20180096169A1 (en) 2018-04-05
TW201514750A (zh) 2015-04-16
CN104252881A (zh) 2014-12-31
US9846788B2 (en) 2017-12-19
US10216964B2 (en) 2019-02-26

Similar Documents

Publication Publication Date Title
JP6182371B2 (ja) 半導体集積回路を含むシステム
US8700916B2 (en) Utilizing physically unclonable functions to derive device specific keying material for protection of information
US9323950B2 (en) Generating signatures using a secure device
US10110380B2 (en) Secure dynamic on chip key programming
US11232718B2 (en) Methods and devices for protecting data
KR101691891B1 (ko) 집적 회로 제조 동안 비밀 키들의 준비를 보안 처리하기 위한 퓨즈 증명
US8843764B2 (en) Secure software and hardware association technique
US20170126414A1 (en) Database-less authentication with physically unclonable functions
US9703945B2 (en) Secured computing system with asynchronous authentication
US11151290B2 (en) Tamper-resistant component networks
TWI631462B (zh) 確保機板上匯流排交易安全的計算系統和計算設備實現的方法以及非暫時性的電腦可讀取媒體
KR20140063863A (ko) 호스트 디바이스, 반도체 메모리 디바이스, 및 인증 방법
US20140270177A1 (en) Hardening inter-device secure communication using physically unclonable functions
US9729319B2 (en) Key management for on-the-fly hardware decryption within integrated circuits
CN110659506A (zh) 基于密钥刷新对存储器进行重放保护
US11874928B2 (en) Security device, electronic device, secure boot management system, method for generating boot image, and method for executing boot chain
WO2022259012A1 (en) Storage device authenticating host credential and utilizing physically unclonable function (puf) for data encryption/decryption
KR101656092B1 (ko) 비동기적인 인증을 갖는 보안 컴퓨팅 시스템
Unterstein et al. SCA secure and updatable crypto engines for FPGA soc bitstream decryption
Unterstein et al. SCA secure and updatable crypto engines for FPGA SoC bitstream decryption: extended version
EP4352644A1 (en) Storage device being authenticated to host by utilizing physically unclonable function (puf) for data encryption/decryption
WO2024013554A1 (en) Hardware-entangled key generation

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160216

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20170330

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170509

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170703

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: 20170718

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20170724

R150 Certificate of patent or registration of utility model

Ref document number: 6182371

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150