JP4065861B2 - 半導体集積回路 - Google Patents

半導体集積回路 Download PDF

Info

Publication number
JP4065861B2
JP4065861B2 JP2004102848A JP2004102848A JP4065861B2 JP 4065861 B2 JP4065861 B2 JP 4065861B2 JP 2004102848 A JP2004102848 A JP 2004102848A JP 2004102848 A JP2004102848 A JP 2004102848A JP 4065861 B2 JP4065861 B2 JP 4065861B2
Authority
JP
Japan
Prior art keywords
device key
integrated circuit
key generation
semiconductor integrated
information
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
JP2004102848A
Other languages
English (en)
Other versions
JP2005292902A (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.)
Toshiba Corp
Original Assignee
Toshiba 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 Toshiba Corp filed Critical Toshiba Corp
Priority to JP2004102848A priority Critical patent/JP4065861B2/ja
Publication of JP2005292902A publication Critical patent/JP2005292902A/ja
Application granted granted Critical
Publication of JP4065861B2 publication Critical patent/JP4065861B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Semiconductor Integrated Circuits (AREA)

Description

本発明は、秘密情報を用いた演算を行う半導体集積回路に関するものである。
従来、秘密情報を内蔵し、当該秘密情報に対する演算処理を行うLSI(Large Scale Integration)が利用されている。代表的なものとしては、ICカードに基づく個人認証やデジタル放送向けの著作権保護向けLSIが知られている。このような秘密情報は、秘密情報が暗号鍵でLSI固有である場合に、LSIデバイスに埋め込まれた暗号鍵との意味で、しばしばデバイス鍵と呼ばれる。以下、LSIに内蔵されるこのような秘密情報を、デバイス鍵と呼ぶこととする。デバイス鍵は基本的には製造者もしくはその関係者のみが知り得る情報である。したがって、LSIの利用者を含む第三者への漏洩を防止する必要がある。
近年では、LSIにおいて処理される情報の価値が大きくなってきている。これに伴って、デバイス鍵の不正な読み出しが問題となってきている。LSIは、ユーザ側に置かれる装置に内蔵されて利用される場合があり、この場合に特に問題となる。
デバイス鍵の不正な読み出し手段としては、LSIにプローブを接触させて動作状態の回路から電気的に情報を読み出す方法が知られている。
例えば、LSIは、秘密情報を利用した演算を行うとする。この場合、LSIが正常に動作しているときに、演算回路の適切な部位にプローブを適用すれば論理値を読み出すことができる。すなわち、攻撃者が秘密情報を取得することができる。
秘密情報が読み出されるのを防止するためには、以上のような読み出しを防止するための機構が要求されている。
プローブの適用を妨げる技術として、LSIチップ上部に特殊なコーティングを行う方法が知られている。LSIにおいては、半導体(シリコン)の上に金属の配線層を形成して回路が構成されている。この配線層は上面に露出している。したがって、チップの封止を開封し、配線層にプローブを適用される可能性がある。チップ上部にコーティングを行うことにより、このような読み出しを防止しようとするものである。
また、読み出し防止の機構を有する装置としては、半導体回路の上面にメモリ素子を積層した装置が知られている(例えば、特許文献1参照)。この装置は、メモリ素子に秘密情報を記憶している。また、パスワードのような認証情報の真偽を判定する認証回路を有している。そして、認証に成功した場合のみ、メモリ素子に記憶された秘密情報を読み出すことができる。これにより、チップに格納された認証情報を攻撃者による読み出しから保護することができる。
特開2001−274355号公報
チップ上部にコーティングを行う方法では、攻撃者がコーティングを取り除いてしまった場合には、回路は動作してしまう。すなわち、秘密情報の読み出しが可能になってしまい、この点が問題となっていた。
また、上述の装置においては、回路が動作するときには、秘密情報は回路に読み込まれ、さらに演算に利用される。このため、動作状態の回路にプローブを適用して秘密情報を読み出すことが可能であり、この点が問題となっていた。
本発明は、上記に鑑みてなされたものであって、上述のようなプローブを適用した情報の読み出しを防止することのできる半導体集積回路を提供することを目的とする。
上述した課題を解決し、目的を達成するために、本発明は、半導体集積回路であって、
外部から隠匿すべきデバイス鍵を利用して、処理対象となる対象データに対して所定の主演算を施す集積回路と、前記集積回路に積層され、前記デバイス鍵を生成するときに利用するデバイス鍵生成情報および予め定められたデバイス鍵暗号化情報により暗号化された暗号化済みデバイス鍵とを記憶している不揮発性記憶素子とを備え、前記集積回路は、前記不揮発性記憶素子から前記デバイス鍵生成情報および暗号化済みデバイス鍵を読み出す読出手段と、前記読出手段から前記デバイス鍵生成情報を取得し、前記デバイス鍵生成情報に一方向性及び拡散性を持つ演算を施し、前記デバイス鍵暗号化情報を生成するローカル鍵生成手段と、前記読出手段から取得した前記暗号化済みデバイス鍵を、前記ローカル鍵生成手段から取得した前記デバイス鍵暗号化情報によって復号化し、前記デバイス鍵を生成するデバイス鍵生成手段と、前記対象データを取得する対象データ取得手段と、前記デバイス鍵生成手段によって生成された前記デバイス鍵を利用して、前記対象データ取得手段が取得した前記対象データに対して前記主演算を施す主演算手段とを備え、前記不揮発性記憶素子は、前記読出手段、前記ローカル鍵生成手段、前記デバイス鍵生成手段、前記対象データ取得手段、前記主演算手段および各手段の間を接続する接続部の上部に積層されていることを特徴とする。
また、本発明は、半導体集積回路であって、外部から隠匿すべきデバイス鍵を利用して、処理対象となる対象データに対して所定の演算を施す集積回路と、前記集積回路に積層され、前記デバイス鍵を生成するときに利用するデバイス鍵生成情報および予め定められたデバイス鍵暗号化情報により暗号化された暗号化済みデバイス鍵とを記憶している不揮発性記憶素子とを備え、前記集積回路は、前記不揮発性記憶素子から前記デバイス鍵生成情報および暗号化済みデバイス鍵を読み出す読出手段と、前記読出手段から前記デバイス鍵生成情報を取得し、前記デバイス鍵生成情報に一方向性演算を施し、前記デバイス鍵暗号化情報を生成するローカル鍵生成手段と、前記読出手段から取得した前記暗号化済みデバイス鍵を、前記ローカル鍵生成手段から取得した前記デバイス鍵暗号化情報によって復号化し、前記デバイス鍵を生成するデバイス鍵生成手段と、前記対象データを取得する対象データ取得手段と、前記デバイス鍵生成手段によって生成された前記デバイス鍵を利用して、前記対象データ取得手段が取得した前記対象データに対して前記主演算を施す主演算手段とを備えたことを特徴とする。
本発明にかかる半導体集積回路は、不揮発性メモリに記憶されているデバイス鍵生成情報から生成されたハッシュ値をデバイス鍵とし、当該デバイス鍵を用いて暗号演算等を行う。当該半導体集積回路から秘密情報を読み出す攻撃が想定されるが、当該攻撃は、不揮発性メモリの破壊を伴う。この破壊に伴い、不揮発性メモリに保持されているデバイス鍵生成情報の一部が欠落する。したがって、一部が欠落したデバイス鍵生成情報から生成されるハッシュ値であるデバイス鍵の値が異なるものとなってしまい、第三者は、正確なデバイス鍵の値を特定することができないという効果を奏する。
本発明は、上記に鑑みてなされたものであって、上述のようなプローブを適用した情報の読み出しを防止することのできる半導体集積回路を提供することを目的とする。
以下に、本発明にかかる半導体集積回路の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
(実施の形態1)
図1は、実施の形態1にかかる半導体集積回路100の外観構成図である。半導体集積回路100は、入力部103からの入力値に対してデバイス鍵を利用して演算を行い結果を出力部104に出力する。デバイス鍵は外部から隠匿すべきものであり、半導体集積回路内部においてはデバイス鍵生成情報として保持されている。そのため、実施の形態1にかかる半導体集積回路100は、デバイス鍵およびデバイス鍵生成情報が攻撃者によって読み出されるのを防止するための構成を有している。以下、半導体集積回路100の構成について説明する。
半導体集積回路100は、半導体回路102と、半導体回路102の上面102aに積層された不揮発性メモリ101とを備えている。デバイス鍵は、半導体回路102に保持されている。また、不揮発性メモリ101は、デバイス鍵の生成元の情報である原デバイス鍵生成情報を保持している。すなわち、デバイス鍵生成情報とはデバイス鍵を生成するときに利用する情報である。
このように、不揮発性メモリ101は、半導体回路の上面102aに積層され、半導体回路102の両端以外の領域を被覆している。半導体回路102の両端には、それぞれ入力部103および出力部104が形成されている。
入力部103および出力部104は、それぞれパッドとパッケージのリード線(図示せず)が接続されている。さらにパッドから半導体回路102の内部に向けて水平方向の配線(図示せず)が設けられている。
また、半導体回路102と不揮発性メモリ101の間には、後述するメモリと半導体回路のセンスアンプ接続のための垂直方向の配線111が多数設けられている。半導体回路102は、配線を介して不揮発性メモリ101に保持されているデバイス鍵生成情報を読み出す。
以下に説明するように不揮発性メモリ101に被覆された部分から内部情報を読み出すことは困難であり、以上の構成から、半導体回路100は、入力部103および出力部104を有する一種のブラックボックスとみなすことができる。
半導体回路102は、演算回路、演算結果を一時的に保持する内部レジスタおよびこれらの要素間の接続線などの回路を有している。各種信号は、これらの回路の間を流れている。このため、侵害者がプローブを適用するにより情報を読み出すおそれがある。
本実施の形態における半導体回路102は、不揮発性メモリ101によって被覆されている。したがって、プローブを適用するためには不揮発性メモリ101を破壊しなければならない。また、仮に不揮発性メモリ101を破壊した場合には、不揮発性メモリ101に保持されている秘密情報の一部が欠落する。
本実施の形態にかかる半導体集積回路100は、デバイス鍵生成情報を利用してデバイス鍵を生成する。したがって、不揮発性メモリ101に保持されているデバイス鍵生成情報の一部が欠落した場合にはデバイス鍵を生成することができない。このため、侵害者は、不揮発性メモリ101を破壊した場合には、デバイス鍵を特定することができない。以下、秘密情報の読み出しを防止するための機能構成について説明する。
図2は、実施の形態1にかかる半導体集積回路100内部の機能構成を示す図である。半導体集積回路100は、不揮発性メモリ101と、半導体回路102と、入力部103と、出力部104とを備えている。さらに、半導体回路102は、センスアンプ120と、ハッシュ演算部141と、デバイス鍵レジスタ142と、暗号演算部160とを有している。
不揮発性メモリ101は、複数のセルを有している。そして、複数のセルにわたってデバイス鍵生成情報を記憶している。センスアンプ120は、不揮発性メモリ101からデバイス鍵生成情報を逐次読み出し、ハッシュ演算部141に送る。すなわち、不揮発性メモリ101に保持されている複数のセルの情報を時分割的に読み出して、処理する。ハッシュ演算部141は、センスアンプ120から取得したデバイス鍵生成情報に対して、拡散性および一方向性を有する演算を行う。具体的には、ハッシュ演算部141は、SHA−256計算機能171を有するハードウェアを有している。そして、当該ハードウェアによりハッシュ値が計算される。そして、演算により得られたハッシュ値、すなわちデバイス鍵をデバイス鍵レジスタ142に保持させる。
以上の処理は、半導体集積回路100の初期化の際に行われる。そして、デバイス鍵レジスタ142は、再度初期化されるまで、ハッシュ演算部141から取得したデバイス鍵を保持する。
暗号演算部160は、入力部103を介して外部から処理対象となる対象データを取得すると、デバイス鍵レジスタ142に保持されているデバイス鍵を利用して、対象データに対して演算を施す。そして、演算結果を出力部104に送る。出力部104は、半導体集積回路100の外部に演算結果を出力する。ここで、実施の形態にかかる暗号演算部160は、特許請求の範囲に記載の主演算手段と対象データ取得手段とを構成する。
なお、以下に述べる攻撃への対策から原秘密値を格納した不揮発性メモリは、上記センスアンプ120と、ハッシュ演算部141と、デバイス鍵レジスタ142と、暗号演算部160およびそれらの間の接続の全てを被覆することが望ましい。
以下、実施の形態1にかかる半導体集積回路100が攻撃者によるデバイス鍵を特定するような攻撃からどのように保護するかを説明する。
攻撃者がデバイス鍵情報を取得する方法として、3つの方法が想定される。1番目の方法は、デバイス鍵レジスタ142に格納されたデバイス鍵値を直接読み出す方法である。2番目の方法は、デバイス鍵を生成するためのデバイス鍵生成情報の読み込み時に、デバイス鍵生成情報をセンスアンプ120から読み出す方法である。この場合、さらに、ハッシュ演算部141のハッシュアルゴリズムが既知であることを利用して間接的にデバイス鍵を特定する。3番目の方法は、センスアンプ120によりデバイス鍵生成情報の一部を特定し、これに基づいてデバイス鍵を特定する方法である。本発明ではセンスアンプ及びハッシュ演算部を全体にわたって被覆する不揮発性メモリ全体にデバイス鍵生成情報を保持することにより、これら3種類の攻撃のいずれをも困難にする効果がある。
まず、本発明の構成が1番目の方法による攻撃を防止できる理由を説明する。デバイス鍵レジスタ142に対して、プローブを適用してデバイス鍵レジスタに格納された値を直接読み出す攻撃が行われた場合を想定する。
このとき、ハッシュ演算部141に入力されるのは、デバイス鍵レジスタ上面を被覆するメモリセルがプローブ適用により破壊された結果の値である。したがって、デバイス鍵レジスタ142から読み出せるのは破壊されたデバイス鍵生成情報に対してハッシュ計算が行われた結果値である。
破壊後のデバイス鍵生成情報は、元来のデバイス鍵生成情報とは異なる情報である。さらに、破壊後のデバイス鍵生成情報に対して施されるハッシュ計算は拡散性を有する演算である。したがって、破壊後のデバイス鍵生成情報のハッシュ計算により得られる結果値は、本来のデバイス鍵生成情報から計算される正しいデバイス鍵の値とは全く違う値となる。従って、この攻撃を行っても攻撃者は本来のデバイス鍵の値に関して有効な情報を得ることができない。このため、攻撃者によってデバイス鍵が特定されるのを防止することができる。デバイス鍵レジスタ142と暗号演算部160との接続にもデバイス鍵値が出力されるが、この接続部分についても不揮発性メモリによって被覆されていれば、デバイス鍵レジスタの場合と同様に攻撃からデバイス鍵値を守ることができる。
また、一般にメモリセルの破壊やプローブの接触は半導体回路の動作に影響を与え、回路が保持する値に誤りを生じさせる。この誤りを回避することは極めて困難である。もし攻撃者がメモリ破壊を行わない状態で本半導体集積回路に電源を投入し、正しいデバイス鍵がデバイス鍵レジスタ142に格納されている状態で、不揮発性メモリを破壊してプローブを適用した場合、デバイス鍵レジスタ142の値に誤りが生じなければ攻撃者はデバイス鍵の値を取得できることになる。だが、前述のように動作状態の回路の近傍に破壊を行ったり、外部からプローブを接触させることは不可避的にデバイス鍵レジスタの値に誤りを生じ、デバイス鍵レジスタ142の値は破壊を受けるため攻撃者は正しいデバイス鍵の値を取得することは著しく困難である。
このように実施の形態1にかかる半導体集積回路100は、不揮発性メモリ101に保持されているデバイス鍵生成情報に一方向性および拡散性を有するハッシュ演算を適用してデバイス鍵を生成するので、デバイス鍵生成情報の一部が欠落すると半導体集積回路において正しいデバイス鍵の値が生成されない。このため、デバイス鍵が特定されるのを防止することができる。
次に、2番目の方法による攻撃が防止できる理由について説明する。ハッシュ演算部のハッシュアルゴリズムが攻撃者にとって既知であるとすれば、攻撃者は直接デバイス鍵レジスタの値が得られなくても、正しいデバイス鍵生成情報を知ることにより、半導体集積回路以外の計算手段を用いてデバイス鍵値を計算することができる。デバイス鍵生成情報は、デバイス鍵の読み込み動作時において、ハッシュ演算部141またはセンスアンプ120にプローブを適用して値を逐次読み出すことができれば取得できる。
ところが、センスアンプ120は上面が不揮発性メモリ101に被覆されている。このため、センスアンプにプローブを適用すると必ずメモリセルの破壊が生じて正しいデバイス鍵生成情報は取得できない。なしにはプローブを適用して値を読み出すことはできず、正しいデバイス鍵生成情報は取得できない。破壊されたデバイス鍵生成情報にハッシュアルゴリズムを適用してデバイス鍵を計算しようとしても、ハッシュ演算の拡散性により、得られる値は正しいデバイス鍵とは全く異なった値となる。よって、本発明で導入された不揮発性メモリによるセンスアンプの被覆とハッシュ演算の拡散性により、2番目の攻撃方法も防止される。
3番目の方法による攻撃を防止する構成について説明する。3番目の方法は、2番目の方法の変形であり、一部が破壊されたデバイス鍵生成情報からハッシュアルゴリズムを利用して間接的にデバイス鍵を特定する方法である。この方法は、デバイス鍵レジスタからデバイス鍵を直接読み出す方法に比べてより強力な攻撃方法である。この攻撃方法と攻撃を防止する構成を詳述する。
一般にメモリは格子状に配線されたワード線、ビット線の交点にメモリセルがおかれ、ワード線で指定された列のメモリセルの内容が、それぞれのビット線に対応するセンスアンプで読み出される構成をとる。ここでは同一のビット線にα個のメモリセルが接続されているものとする。このとき、ビット線に接続されたセンスアンプ 120 にプローブを適用すれば、同一のビット線に接続されたα個のメモリセルの内容を全て観測できることが期待でき、攻撃が効率的である。
このような攻撃を防止する観点において、1個のセンスアンプ120の領域に1個のメモリセルに対応する領域が積層されているのが望ましい。この場合には、1つのセンスアンプ120に対してプローブを適用する場合に1つのメモリセルを破壊しなければならない。すなわち、攻撃者はデバイス鍵生成情報の総てを取得することはできず、多くのデバイス鍵生成情報を得ようとしてプローブを適用するセンスアンプの数を増やすほど、メモリセルの多くが破壊されてしまことになる。
プローブを適用するセンスアンプ1箇所あたり最低1個のメモリセルの破壊が必要であれば、ひとつのセンスアンプから読み取れるビット数は、同一のビット線に接続されたメモリセルのうち破壊した1個を除くα-1個である。センスアンプが16個ある場合には、16個のメモリセルを破壊しなければならない。この場合、失われた情報を補完するには総当りで2^16通りの検索が必要となる。
上述のようにプローブ適用によりメモリセルのデバイス鍵生成情報の一部が欠落する。しかし、デバイス鍵生成情報の一部が欠落していても、欠落部分のデータ量が小さい場合には、総当りにより欠落部分のデータを補完することが可能である。この点が依然として問題となる。
例えば、デバイス鍵生成情報が128ビットであって、α=8の場合、このメモリセル読み出しのためのセンスアンプの個数は16個である。各センスアンプへのプローブ適用により、デバイス鍵生成情報のうち16ビットが欠落して残りの112ビットが取得できる。デバイス鍵生成情報のうち欠落した16ビットの情報については以下の方法で総当り探索することで秘匿情報であるデバイス鍵を特定することができる。
総当り方式による探索例として次の方法がある。まず不揮発性メモリ101を破壊する前に、半導体集積回路100の入力部103に入力する暗号文と、当該暗号文に対する出力部104からの出力値である平文の組を入手しておく。そして、不揮発性メモリ101を破壊後、プローブ適用により読み出した112ビットのデバイス鍵生成情報に、残りの16ビットがとりうる全ての値を組み合わせて列挙したデバイス鍵生成情報候補を生成する。さらにこのデバイス鍵生成情報候補について既知であるハッシュアルゴリズムによりハッシュ値を計算してデバイス鍵候補を生成する。
このデバイス鍵の候補を秘密鍵として、破壊前に入手した暗号文に対して暗号演算を施す。そして、演算結果と先に入手しておいた暗号文に対する平文とを照合する。照合結果が一致するまで全ての候補について総当りすることにより、秘密情報を特定することができる。なおこの過程で、暗号文と平文の組およびデバイス鍵生成情報の収集以外は攻撃対象のチップを使わずに、別システムにおける計算で求めることができる。
上記の攻撃の所要時間は欠落したビット数nについて2^nのオーダーで大きくなる。したがって欠落したビット数を大きくすることができればこの攻撃を実質的に不可能にすることができる。
実施の形態1にかかる半導体集積回路100は、デバイス鍵生成にハッシュを使用している。このため、デバイス鍵生成情報のビット長は、デバイス鍵ビット長とは無関係に任意に大きく設定することができる。α=8の場合において、デバイス鍵生成情報のビット長を1024ビットとすれば、センスアンプの個数は128個となる。すなわち、プローブ適用により128ビットのデバイス鍵生成情報が欠落する。このため、2128通りの総当り検索がひつようとなり、いかに1回あたりのデバイス鍵照合を効率的に行ったとしても、総当りは実質的に不可能である。
このように、実施の形態1に係る半導体集積回路100は、デバイス鍵の生成に拡散性と拡張性を持つハッシュを用いることにより、デバイス鍵生成情報の読み取りによる間接的なデバイス鍵特定の攻撃にも十分な耐性をもつことができる。上述のデバイス鍵に対する直接攻撃に耐性をもつこととあわせて、秘匿対象であるデバイス鍵の値を効果的に保護することができる。
このように、本発明においては前述の3種類の攻撃を防止できるだけでなく、デバイス鍵生成情報のビット長を長くすることにより攻撃をより困難にすることができるため、保護対象であるデバイス鍵を直接不揮発性メモリに格納する構成と比較して、デバイス鍵の解析がきわめて困難で安全な半導体装置を提供できる。
以上、本発明を実施の形態を用いて説明したが、上記実施の形態に多様な変更または改良を加えることができる。
そうした変更例としては、本実施の形態における半導体集積回路100は、暗号演算にかかるデバイス鍵が第三者に特定されるのを避けるための構成であったが、半導体集積回路100は、これ以外の機能に組み込んでもよい。
例えば、演算処理にかえて、署名生成処理を行ってもよい。また、逆に署名検証にかかる処理を行ってもよい。また、検証結果に基づいたエンターテイメントコンテンツやデータベースなど、別データへのアクセス制御にかかる処理をおこなってもよい。
この場合、不揮発性メモリはアクセス制御機能や別データの処理にかかる半導体回路も含めて被覆する。これにより、プローブの適用などを防止することにより、アクセス制御対象の情報を保護する等、第三者による秘密情報の特定を防止することができる。
(実施の形態2)
図3は、実施の形態2にかかる半導体集積回路100の全体構成を示している。実施の形態2に係る半導体集積回路100は、実施の形態1にかかるハッシュ演算部141が有するSHA−256計算機能171に変えて、演算制御部172を有している。ここで、演算制御部172と半導体回路102とは、共通の回路により構成されている。ハッシュ演算は、デバイス鍵レジスタ142にデバイス鍵を保持させた後は行われない。また、暗号演算は、デバイス鍵の設定が完了するまでは行われない。このように、ハッシュ演算と暗号演算とは時間的に排他的である。
そこで、実施の形態2にかかる半導体集積回路100においては、1つの演算回路においてハッシュ計算と暗号演算とを行うこととする。具体的には、演算制御部172は、暗号演算部160にデバイス鍵および入力データを出力する。さらに、演算制御部172は、暗号演算部160から暗号演算の結果を取得する。
なお、既存の暗号アルゴリズムを利用してハッシュ機能を実現する方法としては、共通鍵ブロック暗号やモジュロ演算がある。これらは、それぞれ国際規格ISO/IEC 10118−2および ISO/IEC 10118−4に記述されている。また、その他の暗号アルゴリズムやMACを適用してもよい。
このように、ハッシュ計算と外部入力に対する演算処理は時間的に排他的である。そこで、ハッシュ計算と外部入力に対する演算処理を同一の回路で行うことにより、スループットを低下させることなく、ハードウェア規模を削減することができる。
(実施の形態3)
次に実施の形態3にかかる半導体集積回路100について説明する。実施の形態1および実施の形態2にかかる半導体集積回路100においては、デバイス鍵の値はデバイス鍵生成情報のハッシュ計算結果が用いられていた。この方法では任意に選択した値もしくは外部から与えられた値をデバイス鍵として回路に組み込むことができない。半導体回路製造者が任意に選択した値もしくは外部から与えられた値をデバイス鍵として回路に組み込むには、ハッシュ値であるデバイス鍵値に対応するデバイス鍵生成情報を生成しなくてはならないが、これはハッシュ計算の一方向性により不可能である。これに対して、以下に説明する実施の形態3にかかる半導体集積回路100においては、半導体回路製造者がデバイス鍵の値を任意に選択することができる。
図4は、実施の形態3にかかる半導体集積回路100の全体構成を示している。実施の形態3にかかる半導体集積回路100の不揮発性メモリ101は、デバイス鍵生成情報と暗号化済デバイス鍵を保持している。ここで、暗号化済デバイス鍵は、製造者により決定されたデバイス鍵を暗号化した情報である。
また、半導体回路102は、デバイス鍵復号化部144を備えている。半導体回路102においては、センスアンプ120は、不揮発性メモリ101から秘密情報および暗号化済デバイス鍵を読み出す。
ハッシュ演算部141は、デバイス鍵生成情報に対しハッシュ演算を施してハッシュ値を得る。実施の形態1にかかるセンスアンプ120においては、ハッシュ値はデバイス鍵として利用したが、実施の形態3にかかるセンスアンプ120においては、ハッシュ値は、製造者により決定されたデバイス鍵を暗号化および復号化するためローカル鍵として利用する。
デバイス鍵復号化部144は、センスアンプ120を介して不揮発性メモリ101から暗号化済デバイス鍵を取得する。デバイス鍵復号化部144は、さらにハッシュ演算部141からハッシュ値として得られたローカル鍵を取得する。
ここで、不揮発性メモリ101から取得した暗号化済みデバイス鍵は、ハッシュ演算部141により得られたローカル鍵を利用して、デバイス鍵を暗号化した情報である。デバイス鍵復号化部144は、暗号化済デバイス鍵をハッシュ演算部141から取得したローカル鍵を利用して復号化する。そして、復号化により得られたデバイス鍵をデバイス鍵レジスタ142に保持させる。
不揮発性メモリ101への暗号化済デバイス鍵の設定は、製造時に行われる。具体的には、製造者は半導体回路への情報書き込みの前に当該回路とは別のシステム上で次の準備作業を行う。まずデバイス鍵生成情報を任意に決定し、このデバイス鍵生成情報のハッシュ値を計算してローカル鍵とする。次に所定のデバイス鍵をローカル鍵で暗号化した暗号化済みデバイス鍵を計算する。当該回路とは別のシステム上でデバイス鍵生成情報と暗号化済みデバイス鍵がそれぞれ準備される。これらの情報が揮発性メモリ101に設定される。
このように、実施の形態3にかかる半導体集積回路100においては、回路の動作時に使用されるデバイス鍵値を、製造者が製造時に任意に選択することができる。
実施の形態1および2においては秘匿対象であるデバイス鍵をプローブを適用した読み出しから守るために、デバイス鍵生成情報とハッシュ演算機能が使われていた。実施の形態3においては、秘匿対象であるデバイス鍵をプローブを適用した読み出しから守るために、デバイス鍵生成情報とハッシュ演算機能およびデバイス鍵生成情報から生成されるローカル鍵と復号機能がそれぞれ使われていることが、実施の形態1および2と実施の形態3の間の構成上の相違点である。
実施の形態3におけるデバイス鍵生成情報とローカル鍵は、実施の形態1におけるデバイス鍵生成情報とデバイス鍵の場合と同じメカニズムにより守られている。したがって、プローブ適用による攻撃が行われた場合にもローカル鍵は特定されず安全である。
実施の形態3における秘匿対象であるデバイス鍵は、不揮発性メモリ101上ではローカル鍵による暗号化により守られており、ローカル鍵が安全であるならば、たとえ暗号化済みデバイス鍵の値が読み出されてしまったとしても秘匿される。
実施の形態3においてデバイス鍵レジスタ142に対して直接プローブを適用する攻撃を考えた場合、プローブ適用によって破壊されたメモリセルが格納していた情報は、デバイス鍵生成情報か暗号化済みデバイス鍵のいずれかである。破壊されるメモリセルが格納していた情報がデバイス鍵生成情報である場合には、わずかのビット数の欠落でもローカル鍵レジスタの値は大きく変わる。したがって、デバイス鍵レジスタに格納される値は、この本来の値とは異なるローカル鍵で暗号化済みデバイス鍵を復号して得られた値である、すなわち、真のデバイス鍵の値とは全く異なる値である、このため、読み出されたとしても真のデバイス鍵特定のてがかりを与えず安全である。
また、プローブ適用によって破壊されたメモリセルが格納していた情報が暗号化済みデバイス鍵であった場合、デバイス鍵生成情報は破壊されない。このため、ローカル鍵の値は正しい値が保持される。しかし暗号化済みデバイス鍵のビットが欠落しているので、復号演算の拡散性により、復号の結果デバイス鍵レジスタに格納される値は真のデバイス鍵とは全く異なる値となる。したがって、読み出されたとしても真のデバイス鍵特定のてがかりを与えず安全である。以上のように攻撃者にデバイス鍵が読み取られるのを防止することができる。
実施の形態1にかかる半導体集積回路100においては、デバイス鍵は、不揮発性メモリ101に保持させる秘密情報のハッシュ値であって、かつハッシュ演算は、一方向性の演算であるため、任意のデバイス鍵に対応する秘密情報を不揮発性メモリ101に保持させることができない。
実施の形態3にかかる半導体集積回路100においては、ハッシュ演算の一方向性および暗号演算を利用して攻撃者からの攻撃を困難にしつつ、任意のデバイス鍵を利用した暗号演算を行うことができる。
ICカードなどにおいては、デバイス鍵が半導体集積回路100の製造者以外の団体から発行される場合がある。例えば、クレジットカードや公共団体が使用するカードなどである。この場合には、外部団体が発行したデバイス鍵を製造時に回路に埋め込まなければならない。実施の形態3にかかる半導体集積回路100によれば、このような場合であっても、製造者が任意のデバイス鍵を設定することができる。このように、デバイス鍵の値による制限を受けないので、汎用性を向上させることができる。
(実施の形態4)
不揮発性メモリ101の種類によっては、メモリセルの破壊を電気的に検出することが可能である。実施の形態4にかかる半導体集積回路100は、メモリセルの破壊を電気的に検出することにより攻撃者からの秘密情報の読み出しをより効果的に防止する。
図5は、実施の形態4にかかる半導体集積回路100の全体構成を示す図である。実施の形態4にかかるセンスアンプ120は、短絡検出回路181を有している。たとえば、MRAMと呼ばれるメモリでは、2層の磁性層の間に極めて薄い絶縁層が置かれている。そして、この絶縁層を通して流れるトンネル電流が磁性層に記録された磁気の方向によって変化することで記憶が行われる。
つまり抵抗値を測定することで記録された値が読み出される。このとき、MRAMセルにプローブ適用のため穴をあけるなどの加工を行うと絶縁層は破壊され、セルの抵抗値はきわめて低い値となる。すなわち短絡状態になる。
短絡状態は、メモリセルが機能しているときには起こり得ない。従って、正常状態と区別することができる。すなわち、短絡状態であるか否かを検出することにより、プローブ適用があったことを検出することができる。
短絡検出回路181は、メモリセルの抵抗値が短絡状態にあることを検出すると、演算を禁止する旨を示す信号をデバイス鍵レジスタ142および暗号演算部160に出力する。デバイス鍵レジスタ142および暗号演算部160は、短絡検出回路181から信号を受け取るとデバイス鍵など内部状態を消去し、処理を中断する。
したがって、このとき攻撃者がプローブ適用により読み出すことのできる情報は、メモリセルの破壊により一部が欠落したデバイス鍵生成情報である。具体的には、再度電源が投入され、初期化処理の過程で不揮発性メモリ101から読み出された欠落のあるデバイス鍵生成情報だけである。
このように、メモリセルが破壊された時点で、内部状態を初期化することにより、より確実に攻撃者によるデバイス鍵生成情報の読み出しを防止することができる。
図6は、実施の形態4にかかる半導体集積回路100の処理を示すフローチャートである。初期化処理において、まず、センスアンプ120は、不揮発性メモリ中のセル内容を逐次読み出す(ステップS100)。
このとき、短絡検出回路181は、短絡状態であるか否かを検出している。そして、短絡検出回路181が、短絡状態であることを検出しない間は(ステップS102,No)、ハッシュ演算部141は、センスアンプ120から秘密情報を取得し、ブロック単位でハッシュ演算を行う(ステップS104)。以上の処理をハッシュ演算が完了するまで繰り返す。そして、ハッシュ演算が完了すると(ステップS106,Yes)、ハッシュ値として得られたデバイス鍵をデバイス鍵レジスタ142に格納する(ステップS108)。
そして、外部から処理対象となる対象データを取得すると(ステップS110,Yes)、暗号演算部160は、対象データに対してデイバス鍵を用いた演算を施す(ステップS112)、そして、出力部104が、処理後のデータを外部に出力する(ステップS114)。
一方、ステップS102において、短絡検出回路181が短絡状態であることを検出すると(ステップS102,Yes)、ハッシュ演算部141等は処理を中断する(ステップS120)。そして、これまでに蓄積されたデータが消去される(ステップS122)。以上で、半導体集積回路100の処理が完了する。
以上のように、本発明にかかる半導体集積回路は、秘匿情報を利用した演算に有用であり、特に、外部からの攻撃を防止しつつ、秘匿情報を利用した演算を行うのに適している。
実施の形態1にかかる半導体集積回路100の外観構成図である。 実施の形態1にかかる半導体集積回路100内部の機能構成を示す図である。 実施の形態2にかかる半導体集積回路100の全体構成を示す図である。 実施の形態3にかかる半導体集積回路100の全体構成を示す図である。 実施の形態4にかかる半導体集積回路100の全体構成を示す図である。 実施の形態4にかかる半導体集積回路100の処理を示すフローチャートである。
符号の説明
100 半導体集積回路
101 不揮発性メモリ
102 半導体回路
103 入力部
104 出力部
111 配線
120 センスアンプ
141 ハッシュ演算部
142 デバイス鍵レジスタ
144 デバイス鍵復号化部
160 暗号演算部
171 SHA−256計算機能
172 演算制御部
181 短絡検出回路

Claims (7)

  1. 外部から隠匿すべきデバイス鍵を利用して、処理対象となる対象データに対して所定の主演算を施す集積回路と、
    前記集積回路に積層され、前記デバイス鍵を生成するときに利用するデバイス鍵生成情報および予め定められたデバイス鍵暗号化情報により暗号化された暗号化済みデバイス鍵とを記憶している不揮発性記憶素子と
    を備え、
    前記集積回路は、
    前記不揮発性記憶素子から前記デバイス鍵生成情報および暗号化済みデバイス鍵を読み出す読出手段と、
    前記読出手段から前記デバイス鍵生成情報を取得し、前記デバイス鍵生成情報に一方向性及び拡散性を持つ演算を施し、前記デバイス鍵暗号化情報を生成するローカル鍵生成手段と、
    前記読出手段から取得した前記暗号化済みデバイス鍵を、前記ローカル鍵生成手段から取得した前記デバイス鍵暗号化情報によって復号化し、前記デバイス鍵を生成するデバイス鍵生成手段と、
    前記対象データを取得する対象データ取得手段と、
    前記デバイス鍵生成手段によって生成された前記デバイス鍵を利用して、前記対象データ取得手段が取得した前記対象データに対して前記主演算を施す主演算手段とを備え
    前記不揮発性記憶素子は、前記読出手段、前記ローカル鍵生成手段、前記デバイス鍵生成手段、前記対象データ取得手段、前記主演算手段および各手段の間を接続する接続部の上部に積層されている
    ことを特徴とする半導体集積回路。
  2. 前記デバイス鍵生成手段によって生成された前記デバイス鍵を保持するデバイス鍵保持手段をさらに備えたことを特徴とする請求項1に記載の半導体集積回路。
  3. 前記主演算手段は、前記デバイス鍵を用いて前記対象データを暗号化することを特徴とする請求項1又は2に記載の半導体集積回路。
  4. 前記主演算手段は、前記デバイス鍵を用いて前記対象データを復号することを特徴とする請求項1からのいずれか一項に記載の半導体集積回路。
  5. 前記主演算手段は、前記デバイス鍵を用いて前記対象データに対する署名を行うことを特徴とする請求項1からのいずれか一項に記載の半導体集積回路。
  6. 前記デバイス鍵生成手段は、単位演算回路を利用してデバイス鍵を生成し、
    前記主演算手段は、前記デバイス鍵生成手段が前記デバイス鍵の生成を行っていないときに、前記単位演算回路を利用して前記第主演算を施すことを特徴とする請求項1からいずれか一項に記載の半導体集積回路。
  7. 前記不揮発性記憶素子の破壊を検出する記憶素子破壊検出手段と、
    前記破壊検出手段が前記不揮発性記憶素子の破壊を検出した場合に、前記主演算手段による主演算を中止し、当該集積回路に保持されている情報を削除する制御手段と
    をさらに備えたことを特徴とする請求項1からのいずれか一項に記載の半導体集積回路。
JP2004102848A 2004-03-31 2004-03-31 半導体集積回路 Expired - Fee Related JP4065861B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004102848A JP4065861B2 (ja) 2004-03-31 2004-03-31 半導体集積回路

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004102848A JP4065861B2 (ja) 2004-03-31 2004-03-31 半導体集積回路

Publications (2)

Publication Number Publication Date
JP2005292902A JP2005292902A (ja) 2005-10-20
JP4065861B2 true JP4065861B2 (ja) 2008-03-26

Family

ID=35325807

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004102848A Expired - Fee Related JP4065861B2 (ja) 2004-03-31 2004-03-31 半導体集積回路

Country Status (1)

Country Link
JP (1) JP4065861B2 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4680779B2 (ja) * 2006-01-13 2011-05-11 三菱電機株式会社 通信装置及び認証方法
US20070239605A1 (en) * 2006-04-06 2007-10-11 Peter Munguia Supporting multiple key ladders using a common private key set
US8533492B2 (en) 2009-05-22 2013-09-10 Mitsubishi Electric Corporation Electronic device, key generation program, recording medium, and key generation method
WO2012164721A1 (ja) 2011-06-02 2012-12-06 三菱電機株式会社 鍵情報生成装置及び鍵情報生成方法

Also Published As

Publication number Publication date
JP2005292902A (ja) 2005-10-20

Similar Documents

Publication Publication Date Title
US6357004B1 (en) System and method for ensuring integrity throughout post-processing
US6282650B1 (en) Secure public digital watermark
JP5984625B2 (ja) 半導体装置及び暗号鍵書き込み方法
US7165180B1 (en) Monolithic semiconductor device for preventing external access to an encryption key
US8965036B2 (en) Method and system for supporting watermark embedding in multimedia system-on-chips
US20070297606A1 (en) Multiple key security and method for electronic devices
US6996547B1 (en) Method for purchasing items over a non-secure communication channel
US7103782B1 (en) Secure memory and processing system having laser-scribed encryption key
JP4093610B2 (ja) 半導体チップ用セキュリティーデバイス
KR20110051181A (ko) 데이터 보안 시스템, 방법 및 컴퓨터 판독가능 매체
JP2001513929A (ja) 電子的なデータ処理装置およびシステム
JP2010509662A (ja) 外部不揮発性メモリに記憶された情報の暗号化のための方法およびシステム
JP2003536154A (ja) 電子チップ搭載システム、特にチップカードのメモリ内での敏感データの安全化保存方法と、その方法を実施する搭載システム
JPH076096A (ja) データ記憶装置
US7752407B1 (en) Security RAM block
JP2005157930A (ja) 機密情報処理システムおよびlsi
JP2008033512A (ja) セキュリティチップ及びプラットフォーム
JP4475386B2 (ja) チップカードの初期化
US20020116625A1 (en) Method that causes program analysis of device driver to become difficult
JP4065861B2 (ja) 半導体集積回路
US20080104396A1 (en) Authentication Method
US20070180250A1 (en) Apparatus and Method for Improving Security Level In Card Authentication System
US20030103625A1 (en) Method for Calculating Cryptographic Key Check Data
JP2005045760A (ja) 暗号処理方法及び装置
JP7170999B2 (ja) 機密データを保護することが可能な電子機器

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20071003

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20071009

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071122

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080107

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110111

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120111

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130111

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140111

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees