(57)【要約】  半導体装置【課題】本発明は、情報を半導体装置内の記憶領域に格納し、その情報が外部に漏れないようにするための耐タンパー性の高い半導体装置を提供する。【解決手段】本発明の半導体装置は、データを記憶する不揮発性の記憶手段２と、前記記憶手段２に記憶されたデータと、外部から入力手段５を介して入力されたデータとを用いて演算を行う演算手段３と、前記演算手段２による演算結果を出力する出力手段４とを一つの機能ブロック６として備え、前記記憶手段２の出力線は演算手段３にのみに接続される。【選択図】  図１
2006072843.tif 000002
【特許請求の範囲】
【請求項１】
半導体装置であって、
データを記憶する不揮発性の記憶手段と、
前記記憶手段に記憶されたデータと外部から入力されたデータとを用いて演算を行う演算手段と、
前記演算手段による演算結果を出力する出力手段とを一つの機能ブロックとして備え、
前記記憶手段の出力線は前記演算手段にのみに接続される
ことを特徴とする半導体装置。
【請求項２】
請求項１記載の半導体装置であって、
前記演算手段は前記記憶手段の直近に配置される
ことを特徴とする半導体装置。
【請求項３】
請求項１記載の半導体装置であって、
１つの前記記憶手段と１つの前記演算手段とをペアとし、複数のペアを備え、
前記出力手段は複数の演算手段の演算結果に基づいた出力信号を出力する
ことを特徴とする半導体装置。
【請求項４】
請求項３記載の半導体装置であって、
前記演算手段は前記記憶手段の直近に配置される
ことを特徴とする半導体装置。
【請求項５】
請求項３記載の半導体装置であって、
前記複数のペアは、機能ブロック内においてランダムに配置される
ことを特徴とする半導体装置。
【請求項６】
請求項１から５の何れかに記載の半導体装置であって、
前記記憶手段は、データを記憶する不揮発性記憶素子と、そのデータを保持するフリップフロップ回路とを有することを特徴とする半導体装置。
【請求項７】
請求項１から５の何れかに記載の半導体装置であって、
前記演算手段は、組み合わせ回路であることを特徴とする半導体装置。
【請求項８】
請求項１から５の何れかに記載の半導体装置であって、
前記演算手段は、順序回路であることを特徴とする半導体装置。
【請求項９】
請求項１から５の何れかに記載の半導体装置であって、
前記演算手段は、論理積回路、論理和回路、排他的論理和回路、否定回路の何れか１つまたは２つ以上の組み合わせであることを特徴とする半導体装置。
【請求項１０】
請求項３から５の何れかに記載の半導体装置において、
前記複数のペアに属する複数の記憶手段は、鍵情報を記憶し
前記複数のペアに属する複数の演算手段は、暗号化または復号化回路を形成する
ことを特徴とする半導体装置。
【請求項１１】
請求項３から５の何れかに記載の半導体装置において、
前記複数のペアに属する複数の記憶手段は、認証情報を記憶し、
前記複数のペアに属する複数の演算手段は、認証回路を形成する
ことを特徴とする半導体装置。
【請求項１２】
請求項３から５の何れかに記載の半導体装置において、
前記複数のペアに属する複数の演算手段は、比較回路を形成し、
前記複数のペアに属する複数の記憶手段は、比較の基準となる基準情報を記憶し、
前記出力手段は、比較回路による比較結果を出力する
ことを特徴とする半導体装置。
【請求項１３】
請求項１から１２の何れかに記載の半導体装置において、
前記記憶手段は、強誘電体キャパシタを含む
ことを特徴とする半導体装置。
【請求項１４】
請求項１から１２の何れかに記載の半導体装置において、
前記記憶手段は、磁気変調型メモリ、相変化型メモリ、抵抗変化メモリおよびフローティング・ゲート電極を用いた電気的に書き換え可能なメモリの何れかである
ことを特徴とする半導体装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、不揮発性記憶素子を有するロジック回路を備える半導体装置に関する。
【背景技術】
【０００２】
近年、大規模な論理回路やマイコンなどと不揮発性のメモリコアを同一チップ上にレイアウトしたシステムＬＳＩが数多く開発されている。低コストで多機能を実現するためにはひとつのチップの中に様々な機能ブロックを搭載することで、チップの個数を減らし組み立てコストを削減する方法が有効である。
【０００３】
また、近年ＬＳＩ内部にプログラムやコードを格納する必要性や、パスワードなどの極秘情報を格納する必要性が多い。例えば、図８（ａ）に示すように、不揮発性記憶素子１を有する記憶部２と入出力部４とをＬＳＩ内部に備え、不揮発性記憶素子１に極秘情報を保持させている。これらのデータを単体のフラッシュメモリ等の不揮発性メモリに格納したのでは、商品を分解することで容易にそのデータを解読することができてしまう。このようなデータの漏洩を防ぐためにも不揮発性メモリをマイコンなどと混載する、あるいは、複数のチップをひとつのパッケージに収めるマルチ・チップ・パッケージという手法を用いて、不揮発性メモリと論理回路を一体化する方法がとられている。
【０００４】
最近ではこのように不揮発性メモリを単独で露出させないことで、データを解読されにくくしている。さらに不揮発性メモリのデータの入出力に規制を設けて、アクセス権限がない場合には、データの読み出しや書き込みができないように制限することによりデータの耐タンパー性を高めている。
【０００５】
このようなメモリへのアクセス制限を施すＬＳＩの例としては特許文献１等に開示されたものがあげられる。特許文献１に開示された半導体装置を図８（ｂ）に示す。同図（ｂ）では、フラッシュメモリ６から読み出されたコードと、外部から入力されたコードとが一致した場合にのみ、トライステートバッファ４ｇを通してフラッシュメモリ６の読み出しが可能になるように構成されている。ここでは、不揮発性メモリのデータを読み出すためにアクセス権による認証機能を持たせている。
【０００６】
このように、従来のシステムＬＳＩの内蔵するメモリを読み出すには特殊なコマンドや、特殊な操作を必要とし、権利を有さないものが不正に読み出しを行うことは非常に困難であった。
【特許文献１】特開２０００−２１５１０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、近年、半導体装置の故障解析等に用いるプローブなどを用いれば、データバス線をモニタリングすることが可能であり、ここから得られた情報を元にメモリのデータを解読することが可能となりつつある。今後このような解析装置、解析技術の発展に伴い、それを悪用した犯罪行為も起こり得る。特に近年ＩＣカード等には電子マネーの機能が搭載され、パスワードなどの情報が漏洩すると大きな問題となりうる。今後、外部からのこのような不正なデータ解析に対する耐タンパー性の高い情報保護機能が必要とされている。
【０００８】
本発明は、情報を半導体装置内の記憶領域に格納し、その情報が外部に漏れないようにするための耐タンパー性の高い半導体装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するため本発明の半導体装置は、データを記憶する不揮発性の記憶手段と、記憶手段に記憶されたデータと外部から入力されたデータとを用いて演算を行う演算手段と、前記演算手段による演算結果を出力する出力手段とを一つの機能ブロックとして備え、記憶手段の出力線は演算手段にのみに接続される。
【００１０】
この構成によれば、記憶手段に記憶された情報は演算手段にのみ出力され、記憶手段２に記憶された情報は外部に出力される経路がなく、演算手段の演算結果が外部へ出力される。不揮発記憶素子に記憶された情報がそのまま外部へ出ることを避けることができる。また、記憶手段に記憶された情報は、演算手段にのみに接続されるので、プローブを用いて不正にデータを解読しようとしても、データバス線をモニタリングするように簡単には読み出すことができないので、耐タンパー性が高い。
【００１１】
ここで、前記演算手段は前記記憶手段の直近に配置されるようにしてもよい。
この構成によれば、記憶手段から出力されるデータの配線距離が短く（例えば設計最小寸法の１００倍以内）なるので、プローブを当てることを困難にする。
【００１２】
ここで、前記半導体装置は、１つの前記記憶手段と１つの前記演算手段とをペアとし、複数のペアを備え、前記出力手段は複数の演算手段の演算結果に基づいた出力信号を出力するようにしてもよい。また、前記複数のペアは、機能ブロック内においてランダムに配置されるようにしてもよい。
【００１３】
この構成によれば、分散配置によって、鍵情報などの機密情報を、ランダムに配置された記憶手段に記憶させることにより、情報の記憶場所やその並び方が分からないようにすることができる。
【００１４】
ここで、前記記憶手段は、データを記憶する不揮発性記憶素子と、そのデータを保持するフリップフロップ回路とを有するようにしてもよい。
前記不揮発記憶素子を前記フリップフロップ回路のデータ保持部に接続することにより、フリップフロップ回路のデータを不揮発性記憶素子に記憶することも可能となる。  ここで、前記演算手段は、組み合わせ回路であってもよい。また、前記演算手段は、論理積回路、論理和回路、排他的論理和回路、否定回路の何れか１つまたは２つ以上の組み合わせであってもよい。
【００１５】
この構成によれば、入力状態に応じて出力の変化する組み合せ回路で構成され、その一部の情報を不揮発性記憶素子に記憶することにより、組み合せ回路の出力を保持したり、記憶された情報を用いて演算したりすることが可能となる。
【００１６】
ここで、前記演算手段は、順序回路であってもよい。
この構成によれば、順序回路の一部の情報を不揮発性記憶素子に記憶することにより、ある時点の回路状態を保持することが可能となる。
【００１７】
ここで、前記複数のペアに属する複数の記憶手段は、鍵情報を記憶し、前記複数のペアに属する複数の演算手段は、暗号化または復号化回路を形成するようにしてもよい。  この構成によれば、暗号処理に用いる鍵情報をランダムに配置された不揮発性記憶素子に記憶させ、入力されたデータに対して処理結果のみを出力することにより、鍵情報を秘匿することができる。この場合、鍵情報はあらかじめ分散された記憶手段に記憶されているため、外部から入力する必要がなく、また、鍵情報自体は外部へ出力されないので、出力手段には鍵情報は現れない。このため出力手段をモニターして鍵情報を盗聴する手法から情報を守ることが可能となる。
【００１８】
ここで、前記複数のペアに属する複数の記憶手段は、認証情報を記憶し、前記複数のペアに属する複数の演算手段は、認証回路を形成してもよい。
この構成によれば、分散された記憶手段に認証情報を秘匿することができる。
【００１９】
ここで、前記複数のペアに属する複数の演算手段は、比較回路を形成し、前記複数のペアに属する複数の記憶手段は、比較の基準となる基準情報を記憶し、前記出力手段は、比較回路による比較結果を出力するようにしてもよい。
【００２０】
この構成によれば、分散された記憶手段に認証情報を秘匿することができる。
ここで、前記記憶手段は、強誘電体キャパシタを含むようにしてもよい。
この構成によれば、不揮発性記憶素子のセルサイズを小さくすることができ、ランダムに配置することをより容易にすることができる。
【００２１】
ここで、前記記憶手段は、磁気変調型メモリ、相変化型メモリ、抵抗変化メモリおよびフローティング・ゲート電極を用いた電気的に書き換え可能なメモリの何れかであってもよい。
【発明の効果】
【００２２】
以上のように本発明の半導体装置によれば、特に重要なデータについて半導体装置にに混載した不揮発の記憶手段に格納することで、非常に安全性の高いデータの保管が可能となるなどの大きな効果を得ることができる。
【発明を実施するための最良の形態】
【００２３】
図１は、本発明の実施の形態における半導体装置における論理ブロックの構成を示すブロック図である。
本発明の実施の形態における半導体装置における論理ブロック６は、データを記憶する不揮発性の記憶手段２と、記憶手段２に記憶されたデータと入力手段５を介して外部から入力されたデータとを用いて演算を行う演算手段３と、演算手段３による演算結果を出力する出力手段４とを一つの機能ブロックとして備えており、記憶手段２の出力線は演算手段３にのみに接続されている。
この構成によれば、記憶手段２に記憶された情報は演算手段３にのみ出力され、記憶手段２に記憶された情報は外部に出力される経路がなく、演算手段３の演算結果が外部へ出力される。不揮発記憶素子１に記憶された情報がそのまま外部へ出ることを避けることができる。また、記憶手段２に記憶された情報は、演算手段３にのみに接続されるので、プローブを用いて不正にデータを解読しようとしても、データバス線をモニタリングするように簡単には読み出すことができないので、耐タンパー性が高い。
特に、演算手段３を記憶手段２の直近に配置することにより、記憶手段２から出力されるデータの配線距離を短くでき、プローブを当てることをより困難にすることができる。例えば、データの配線距離を設計最小寸法の１００倍以内とするとよい。
【００２４】
図２は、本発明の別の実施の形態における半導体装置内に形成される論理回路ブロックの構成例を示すブロック図である。同図は図１に示した記憶手段２と記憶手段３をペアとして、複数のペアを備える構成を示している。この論理回路ブロック６は、記憶部２ａ、２ｂ、・・・、２ｎと、演算部３ａ、３ｂ、・・・、３ｎと、出力部４、入力部５と、書き込み制御部７とを備える。
【００２５】
記憶部２ａと演算部３ａはペアである。記憶部２ａは、書き込み制御部７によって１ビットのデータが書き込まれる不揮発性素子を内部に有し、保持しているデータを演算部３ａに出力する。記憶部２ａの出力線は演算部３ａにのみに接続されている。これにより記憶部２ａのデータがそのまま外部へ出ることがない。
【００２６】
演算部３ａは、記憶部２ａの直近に配置され、記憶部２ａからのデータと入力部５からのデータとを用いて演算を行う。この演算は、例えば論理回路ブロックが認証処理用である場合、入力部５から各演算部に１ビットずつ被認証データが入力され、各演算部は、例えば排他的論理和をとることにより被認証データと認証情報が一致するか判定することになる。
【００２７】
記憶部２ｂと演算部３ｂ、・・・、記憶部２ｎと演算部３ｎもペアであり、同様である。
出力部４は、各演算部の演算結果に基づいて出力信号を生成し出力する。この出力信号は、例えば論理回路ブロックが上記の認証処理用である場合、全ての演算部の演算結果の論理和となる。つまり全ての演算部の演算結果が０（一致）である場合に、０（一致）する旨を出力する。
【００２８】
書き込み制御部７は、各記憶部内の不揮発性記憶素子にデータを書き込む制御を行う。
図３は、上記複数のペアが分散配置された一例を示す図である。同図は、半導体装置内の論理回路ブロックの物理的なレイアウトを模式的に示している。同図のように、各ペアは、ランダムな位置に分散配置される。これにより、データの記憶場所やその並び方を隠蔽している。
【００２９】
図４Ａは、記憶部の構成例を示すブロック図である。同図の記憶部２は、不揮発性記憶素子１とフリップフロップ（以下、ＦＦと略す。）１ａとからなる。ＦＦ１ａは、不揮発性記憶素子１からのデータを保持することにより、信号レベルを向上させる。また、書き込み制御部７の制御によって、ＦＦ１ａに保持されたデータを不揮発性記憶素子１に書き込むことも可能である。
【００３０】
図４Ｂは、記憶部２（記憶手段２）の回路構成の一例を示す。同図の記憶部２は、インバータ１００１ａ、１００１ｂ、トランジスタ１００２ａ、１００２ｂ、１００３ａ、１００３ｂ、強誘電体キャパシタ１００４ａ、１００４ｂとから構成される。２つのインバータ１００１ａ、１００１ｂからなるラッチ回路はＦＦを構成し、制御信号ＳＡＥにより出力が制御される。このＦＦの一端とビット線ＢＬ１とが接続され、ＦＦの他端と反転ビット線ＢＬ２とが接続される。トランジスタ１００２ａ、１００２ｂは、クロック信号ＣＬ１、クロック信号ＣＬＫによりそれぞれオンオフされる。トランジスタ１００３ａ、１００３ｂは、制御信号ＳＳによってそれぞれオンオフされる。強誘電体キャパシタ１００４ａ、１００４ｂは不揮発性記憶素子１を構成する。強誘電体キャパシタ１００４ａ、１００４ｂの一端はトランジスタ１００２ａ、１００２ｂにそれぞれ接続され、他端は制御信号線ＣＰと接続される。
【００３１】
図４Ｃは、図４Ｂに示した記憶部２の動作タイムチャート図である。同図ではアクセスされていない通常動作（Normal）、強誘電体キャパシタ１００４ａ、１００４ｂにデータを書き込み動作（Write）、電源オフ時（Power Off）、読み出し動作(Read)に分けてある。  通常動作（Normal）では、ＳＳ信号がローレベルであることにより、トランジスタ１００３ａ、１００３ｂはオフになり、ＦＦは通常のＤ−フリップフロップとして動作する。つまり、ＦＦは、クロック信号ＣＬＫに同期してＤ入力端子のデータをラッチし、クロック信号ＣＬ１に同期してＱバー（Ｑの反転出力）出力端子から出力する。
【００３２】
書き込動作（Write）は、書き込み制御部７の制御によって、クロック信号ＣＬＫをローレベル、クロック信号ＣＬ１をハイレベルにすることによりトランジスタ１００２ｂをオフ、トランジスタ１００２ａをオンにする。このときＦＦは、書き込み制御部７からＱバー端子に入力されるデータ、あるいは既に保持しているデータを保持し、トランジスタ１００３ａ、１００３ｂ（ＳＳ信号によりオン）を介してＦＦの両端の電圧が、強誘電体キャパシタ１００４ａ、１００４ｂに印加され、さらにＣＰ信号がローレベルになることにより、強誘電体キャパシタ１００４ａ、１００４ｂにデータが書き込まれる。
【００３３】
電源オフ時（Power Off）には、強誘電体キャパシタ１００４ａ、１００４ｂは書き込まれたデータを保持する。
読み出し動作(Read)では、クロック信号ＣＬＫおよびクロック信号ＣＬ１を共にローレベル、ＳＳ信号、ＣＰ信号をハイレベルにすることにより、強誘電体キャパシタ１００４ａ、１００４ｂに保持されたデータ（分極による電位差）がＦＦの両端に入力され、ＦＦにデータが保持される。クロック信号ＣＬ１がハイレベルになったとき、ＦＦのデータ（ＢＬ２）がＱバーから出力される。
【００３４】
図５は、記憶部の他の回路構成例を示すブロック図である。同図の記憶部は、図４Ｂと比べて、Ｄ３、Ｄ４端子に接続された２つの強誘電体キャパシタが追加されている点と、Ｄｏｕｔ端子にインバータ回路が接続されている点が主に異なっている。異なる点を中心に説明する。Ｄ３、Ｄ４端子に接続された２つの強誘電体キャパシタは、Ｄ１、Ｄ２端子に接続された２つの強誘電体キャパシタと並列に不揮発性記憶素子として備えるのではなく、Ｄ１、Ｄ２端子に接続された２つの強誘電体キャパシタに対する負荷容量として機能する。この負荷容量としての強誘電体キャパシタの分極は、読み出し前後で反転しない方向とする。つまり読み出し後の２つの負荷容量の分極が異なる方向を向くことはない。これにより、Ｄ１、Ｄ２端子に接続された２つの強誘電体キャパシタがインプリント（分極の焼き付き）により分極ヒステリシスの歪みが生じても、負荷容量の分極ヒステリシスの歪みは一様となり、安定した読み出しが可能となる。
【００３５】
また、Ｄｏｕｔ端子に接続されているインバータ回路は、データ出力を負論理ではなく正論理で出力するためである。
以上のように構成された本発明の実施の形態における半導体装置について、具体的な適用例を説明する。
【００３６】
図６は、論理回路ブロックを暗号処理に適用した場合のブロック図である。同図の暗号処理回路ブロック６ａにおいて、複数の記憶部２ａ〜２ｎは、鍵情報を分散して記憶する。図中の鍵１〜鍵ｎは、ｎビットの鍵情報の各ビットを表す。複数の演算部３ａ〜３ｎは、暗号化または復号化回路を形成する。図中の演算１〜演算ｎは、暗号処理中のビット演算を分散したものである。入出力部４ａは、入力部５から入力される平文または暗号文のビット入れ替えや、各演算部からの演算結果のビット入れ替えなどを行うことにより暗号文または平文を生成して出力する。
【００３７】
このように鍵情報は、ランダムに分散して配置された複数の記憶部に分散して記憶され、入出力部４ａは、入力されたデータに対して処理結果のみを出力することにより、鍵情報を秘匿することになる。この場合、鍵情報はあらかじめ暗号処理回路ブロックの中に記憶されているため、外部から入力する必要がなく、また、鍵情報自体は外部へ出力されないので、暗号処理回路の入出力部には鍵情報は現れない。このため入出力部をモニターして鍵情報を盗聴する手法から情報を守ることが可能となる。
【００３８】
図７は、論理回路ブロックを認証処理に適用した場合のブロック図である。同図の認証処理回路ブロック６ｂにおいて、複数の記憶部２ａ〜２ｎは、認証情報を分散して記憶する。図中の認１〜認ｎは、ｎビットの認証情報の各ビットを表す。複数の演算部３ａ〜３ｎは、認証回路を形成する。図中の演算１〜演算ｎは、認証処理中のビット比較を分散したものであり、例えば排他的論理和である。入出力部４ａは、入力部５から入力される被認証データを各演算部に分散して出力し、各演算部の比較結果が全て一致であれば、被認証データが正当であると認証した旨を出力する。各演算部の比較結果が１つでも不一致であれば、被認証データが不当であると旨を出力する。
【００３９】
このように認証情報も上記の鍵情報と同様に、外部へ出力されないので、入出力部には認証情報は現れない。このため入出力部をモニターして認証情報を盗聴する手法から情報を守ることが可能となる。
【００４０】
（その他の変形例）
なお、本発明を上記の実施の形態に基づいて説明してきたが、本発明は上記の実施の形態に限定されないのはもちろんである。
【００４１】
以下のような場合も本発明に含まれる。
（１）不揮発性記憶素子の例として強誘電体を用いた強誘電体メモリについて説明してきたが、電気的に消去可能なプログラマブルメモリ（ＥＥＰＲＯＭ：electrically erasable programmable ROM）や磁気抵抗メモリ（ＭＲＡＭ：magneto-resistive random-access memory）、相変化メモリ（ＯＵＭ：Ovonic Unified Memory ）、抵抗変化メモリ（ＲＲＡＭ：resisitance RAM）など、その他の不揮発性メモリであってもよい
（２）半導体装置として特定の処理を行う論理回路について説明してきたがマイコンやFPGAのように処理内容をソフトウェアで変更できる回路であってもよい。
【産業上の利用可能性】
【００４２】
本発明は、データの不正な解読を困難にし、耐タンパー性の高い半導体集積回路、その再構成方法およびプログラミング方法に適している。
【図面の簡単な説明】
【００４３】
【図１】本発明の半導体装置における論理回路ブロックの構成を示すブロック図である。
【図２】実施の形態における論理回路の構成一例を示すブロック図である。
【図３】記憶部および演算部の分散配置の一例を示す図である。
【図４Ａ】記憶部の構成例を示すブロック図である。
【図４Ｂ】不揮発性記憶素子の構成例を示すブロック図である。
【図４Ｃ】不揮発性記憶素子の動作タイムチャート図である。
【図５】不揮発性記憶素子の他の構成例を示すブロック図である。
【図６】論理回路ブロックを暗号処理に適用した場合のブロック図である。
【図７】論理回路ブロックを認証処理に適用した場合のブロック図である。
【図８】（ａ）（ｂ）従来の半導体装置の構成を示すブロック図である。
【符号の説明】
【００４４】
２  記憶手段２
３  記憶手段
２ａ、２ｂ、・・・、２ｎ  記憶部
３ａ、３ｂ、・・・、３ｎ  演算部
４  出力部
５  入力部
６  論理回路ブロック
７  書き込み制御部
１００１ａ  インバータ１００１ａ
１００１ｂ  インバータ１００１ｂ
１００２ａ  スイッチトランジスタ１００２ａ
１００２ｂ  スイッチトランジスタ１００２ｂ
１００３ａ  スイッチトランジスタ１００３ａ
１００３ｂ  スイッチトランジスタ１００３ｂ
１００３ａ  強誘電体１００３ａ
１００３ｂ  強誘電体１００３ｂ
【図１】
2006072843.tif 000003
【図２】
2006072843.tif 000004
【図３】
2006072843.tif 000005
【図４Ａ】
2006072843.tif 000006
【図４Ｂ】
2006072843.tif 000007
【図４Ｃ】
2006072843.tif 000008
【図５】
2006072843.tif 000009
【図６】
2006072843.tif 000010
【図７】
2006072843.tif 000011
【図８】
2006072843.tif 000012