(57)【要約】【課題】スクランブル用のシードデータの管理や書き込みを必要とせずに、チップ毎に異なるスクランブル用のデータを割り当てることができる半導体記憶装置を提供する。【解決手段】使用者から認証キーレジスタ２２に入力された認証キーと、予め判定キーレジスタ２３に設定された判定キーが一致すれば、メモリチップ１０から読み出された読み出しデータＲＤは、そのままセレクタ２５を介してデータＤＴとして出力される。不一致の場合、ヒューズ回路１２から出力される不良メモリセルの位置情報をシードデータＳＤとしてスクランブルされた読み出しデータＲＤ（スクランブルデータＳＲＤ）が、セレクタ２５で選択されてデータＤＴとして出力される。【選択図】図１
2008181375.tif 000002
【特許請求の範囲】
【請求項１】
使用者により入力された認証キーと予め設定された判定キーを比較し、一致したときに半導体メモリに格納されたデータをそのまま出力し、一致しないときには該半導体メモリに格納されたデータをスクランブルして出力する半導体記憶装置において、
前記データをスクランブルするためのスクランブル回路は、スクランブル用のシードデータとしてヒューズ回路に設定された情報を用いるように構成したことを特徴とする半導体記憶装置。
【請求項２】
前記ヒューズ回路は、前記半導体メモリにおける不良メモリセルの位置情報を保持するものであることを特徴とする請求項１記載の半導体記憶装置。
【請求項３】
前記スクランブル回路は、前記半導体メモリに格納されたデータと前記シードデータとのビット毎の排他的論理和を算出して出力することを特徴とする請求項１または２記載の半導体記憶装置。
【請求項４】
前記スクランブル回路は、
前記シードデータを初期値とする第１のレジスタと、
電源投入時の不定値を初期値とする第２のレジスタと、
前記第１のレジスタから出力されるデータのビットの順番を並べ替える第１のビット操作部と、
前記第２のレジスタから出力されるデータのビットの順番を並べ替える第２のビット操作部と、
前記第１のビット操作部から出力されるデータと前記第２のレジスタから出力されるデータをビット毎に排他的論理和演算して出力する第１の排他的論理和ゲートと、
前記第２のビット操作部から出力されるデータと前記第１のレジスタから出力されるデータをビット毎に排他的論理和演算して出力する第２の排他的論理和ゲートと、
アドレス信号に従って前記第１または第２のレジスタから出力されるデータを切り替えて出力するセレクタと、
前記セレクタから出力されるデータと前記半導体メモリにから読み出されたデータをビット毎に排他的論理和演算して出力する第３の排他的論理和ゲートとを備え、
前記アドレス信号の立ち下りのタイミングで前記第１の排他的論理和ゲートの出力を前記第１のレジスタに取り込み、該アドレス信号の立ち上がりのタイミングで前記第２の排他的論理和ゲートの出力を前記第２のレジスタに取り込むように構成したことを特徴とする請求項１または２記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置に格納されている情報が第三者によって不正に読み出されないようにするためのセキュリティ技術に関するものである。
【背景技術】
【０００２】
近年、半導体メモリに格納されるデータのセキュリティ性が重要になってきている。例えば、半導体メモリに格納されたデータをスクランブルして出力することも、データのセキュリティを確保するための１つの方法である。この方法では、スクランブルされたデータの解読を困難にするために、スクランブルの仕方をチップ毎に変えることが望ましい。更に、スクランブル処理を行うに当たっては、チップサイズの増加をできる限り抑え、低コストで実現することが要求される。
【０００３】
下記特許文献１には、読み出し時に入力される読み出しパスワードと、メモリ内に予め記憶されている元パスワードを比較し、比較結果が一致していればページバッファに溜めておいたデータを所定の順序で出力し、不一致の時にはでたらめに入れ替えた順序でスクランブルデータを出力する半導体記憶装置が記載されている。この半導体記憶装置では、スクランブルデータを生成するためのシードデータを専用の書き込み回路を通して設定できるようになっている。従って、設定するシードデータをチップ毎に変更することにより、スクランブルの仕方をチップ毎に変えることができ、データの機密性を高めることができるとされている。
【０００４】
【特許文献１】特開２００３−１１５１９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、前記特許文献１に記載された半導体記憶装置では、スクランブルに用いるシードデータをチップ毎に変更するために、そのシードデータを試験装置や書込装置を用いて書き込む処理が必要である。このため、シードデータをチップ毎に管理したり、書き込んだりするための作業が必要であるという課題があった。
【０００６】
本発明は、スクランブル用のシードデータの管理や書き込みを必要とせずに、チップ毎に異なるスクランブル用のデータを割り当てることができる半導体記憶装置を提供することを目的としている。
【課題を解決するための手段】
【０００７】
本発明は、使用者により入力された認証キーと予め設定された判定キーを比較し、一致したときに半導体メモリに格納されたデータをそのまま出力し、一致しないときには該半導体メモリに格納されたデータをスクランブルして出力する半導体記憶装置において、前記データをスクランブルするためのスクランブル回路を、スクランブル用のシードデータとしてヒューズ回路に設定された情報を用いるように構成したことを特徴としている。
【発明の効果】
【０００８】
本発明では、例えば、半導体メモリにおける不良メモリセルの位置情報を保持するヒューズ回路に設定された情報を、スクランブル用のシードデータとして用いるようにしている。半導体メモリにおける不良メモリセルの位置は、個々の半導体メモリによって異なっているので、ヒューズ回路に設定された情報をシードデータとして用いることにより、スクランブル用のシードデータの管理や書き込みを必要とせずに、チップ毎に異なるスクランブル用のデータを割り当てることができるという効果がある。
【発明を実施するための最良の形態】
【０００９】
この発明の前記並びにその他の目的と新規な特徴は、次の好ましい実施例の説明を添付図面と照らし合わせて読むと、より完全に明らかになるであろう。但し、図面は、もっぱら解説のためのものであって、この発明の範囲を限定するものではない。
【実施例１】
【００１０】
図１は、本発明の実施例１を示す半導体記憶装置の構成図である。
この半導体記憶装置は、例えばＣＰＵ（中央処理装置）に接続されて、ＣＰＵから与えられるアドレス信号ＡＤで指定される記憶領域にデータＤＴを書き込んだり、或いは指定された記憶領域からデータＤＴを読み出したりするもので、データを記憶するための一般的なメモリチップ１０を備えている。
【００１１】
メモリチップ１０は、アドレスデコーダ１１、ヒューズ回路１２、メモリセルアレイ１３、及び読み書き制御回路１４で構成されている。アドレスデコーダ１１は、アドレス信号ＡＤを解読してメモリセルアレイ１３における記憶領域を選択するものである。メモリセルアレイ１３は、マトリクス状に配置された複数のメモリセルを有しており、アドレスデコーダ１１で選択されたメモリセルに対してデータＤＴの書き込みや読み出しを行うものであるが、製造検査時に発見した不良メモリセルに代えて用いるための冗長メモリセルを有している。
【００１２】
ヒューズ回路１２は、メモリセルアレイ１３の行や列単位に設けられたヒューズ群で構成され、製造検査時に発見した不良メモリセルが存在する行や列に対応するヒューズを、例えばレーザビーム等で切断することにより、不良メモリセルの位置情報を出力するものである。ヒューズ回路１２の情報はアドレスデコーダ１１に与えられ、アドレスデコーダ１１では、ＣＰＵから与えられるアドレス信号ＡＤとヒューズ回路１２から与えられる情報に基づいて、メモリセルアレイ１３の不良メモリセルを回避し、正常な記憶領域を選択するようになっている。
【００１３】
読み書き制御回路１４は、アドレスデコーダ１１で選択されたメモリセル１３の記憶領域に対し、ＣＰＵから与えられる読み書き制御信号Ｒ／Ｗに従ってデータＤＴの読み出しと書き込みの制御を行うものである。
【００１４】
更に、この半導体記憶装置は、メモリチップ１０に記憶されたデータのセキュリティを確保するための回路として、認証キー入力回路２１、認証キーレジスタ２２、判定キーレジスタ２３、比較回路（ＣＭＰ）２４、選択回路（ＳＥＬ）２５、及びスクランブル回路２６を備えている。
【００１５】
認証キー入力回路２１は、この半導体記憶装置に電源が投入された当初に、例えばシリアル入力信号ＳＩとして与えられる１６ビットの認証キーを入力するもので、この認証キー入力回路２１の出力側に、入力された１６ビットの認証キーを保持するための認証キーレジスタ２２が接続されている。判定キーレジスタ２３は、例えば１回だけ書き込みが可能な不揮発性の読み出し専用メモリで構成され、製造時にその半導体記憶装置に固有の１６ビットの判定キーが書き込まれたものである。
【００１６】
比較回路２４は、認証キーレジスタ２２に保持された認証キーと、判定キーレジスタ２３に書き込まれている判定キーを比較して、一致したときには論理値“１”の選択信号ＳＬを出力し、不一致の時には論理値“０”の選択信号ＳＬを出力するものである。選択信号ＳＬは、選択回路２５に対する制御信号として与えられている。選択回路２５は、選択信号ＳＬが“１”のときにメモリチップ１０から読み出されたデータＤＴである読み出しデータＲＤを選択し、この選択信号ＳＬが“０”のときにはスクランブル回路２６から出力されるスクランブルデータＳＲＤを選択するものである。
【００１７】
スクランブル回路２６は、ヒューズ回路１２から出力される情報の内の一部を、スクランブル用の１６ビットのシードデータＳＤとして用い、メモリチップ１０から出力される読み出しデータＲＤをこのシードデータＳＤに従ってスクランブルすることにより、スクランブルデータＳＲＤを生成するものである。スクランブル回路２６は、例えば１６個の排他的論理和ゲート（以下、「ＥＸＯＲ」という）で構成され、シードデータＳＤと読み出しデータＲＤの対応するビット毎の排他的論理和を算出し、１６ビットのスクランブルデータＳＲＤとして出力するようになっている。
【００１８】
セレクタ２５の出力側には、読み書き制御信号Ｒ／Ｗによって制御される３ステートバッファ２７が接続されている。そして、読み書き制御信号Ｒ／Ｗで読み出し動作が指定されたとき（例えば“１”のとき）に、セレクタ２５で選択された読み出しデータＲＤまたはスクランブルデータＳＲＤが、データＤＴとして３ステートバッファ２７を通してＣＰＵに出力されるようになっている。
【００１９】
一方、ＣＰＵから与えられるデータＤＴは、読み書き制御信号Ｒ／Ｗによって制御される３ステートバッファ２８を介してメモリチップ１０の読み書き制御回路１４に与えられている。３ステートバッファ２８は、読み書き制御信号Ｒ／Ｗで書き込み動作が指定されたとき（例えば“０”のとき）に、ＣＰＵから与えられるデータＤＴを、書き込みデータＷＤとして読み書き制御回路１４に出力するものである。なお、この半導体記憶装置は、動作許可信号ＣＥによって動作が許可されたときにのみ、データＤＴの書き込みや読み出しの動作が行われるようになっている。
【００２０】
次に動作を説明する。
この半導体記憶装置に電源が投入されて使用が開始された時点で、使用者は例えばＣＰＵを介して、シリアル入力信号ＳＩとして１６ビットの認証キーを入力する。入力された認証キーは、認証キー入力回路２１で１６ビットの認証キーとして受信され、認証キーレジスタ２２に格納される。認証キーレジスタ２２に格納された認証キーは、比較回路２４の一方の入力側に与えられる。
【００２１】
比較回路２４の他方の入力側には、製造時に判定キーレジスタ２３に書き込まれたその半導体記憶装置に固有の１６ビットの判定キーが与えられている。これにより、入力された認証キーが予め書き込まれている判定キーと一致すれば、比較回路２４から出力される選択信号ＳＬは“１”となる。もしも不一致の場合には、選択信号ＳＬは“０”となる。
【００２２】
正しい認証キーを知っている使用者がその正しい認証キーを入力した場合、選択信号ＳＬは“１”となるので、選択回路２５では、メモリチップ１０から出力される読み出しデータＲＤが選択されることになる。
【００２３】
次に、ＣＰＵからアドレス信号ＡＤと共に、読み出し動作を指定する読み書き制御信号Ｒ／Ｗが与えられると、メモリチップ１０では、メモリセルアレイ１３からこのアドレス信号ＡＤで指定される記憶領域のデータＤＴが読み出され、読み書き制御回路１４から読み出しデータＲＤとして選択回路２５に出力される。選択回路２５では、選択信号ＳＬによって読み出しデータＲＤ側が選択されているので、読み出しデータＲＤはこの選択回路２５と３ステートバッファ２７を介して、データＤＴとしてＣＰＵに与えられる。
【００２４】
これに対し、正しい認証キーを知らない第三者がでたらめな認証キーを入力したり、或いは入力を行わなかったりした場合、比較回路２４から出力される選択信号ＳＬは“０”となる。これにより、選択回路２５では、スクランブル回路２６から出力されるスクランブルデータＳＲＤが選択されることになる。
【００２５】
次に、ＣＰＵからアドレス信号ＡＤと共に、読み出し動作を指定する読み書き制御信号Ｒ／Ｗが与えられると、メモリチップ１０では、メモリセルアレイ１３からこのアドレス信号ＡＤで指定される記憶領域のデータＤＴが読み出され、読み書き制御回路１４から読み出しデータＲＤとしてスクランブル回路２６に出力される。スクランブル回路２６では、ヒューズ回路１２から出力される情報の一部であるシードデータＳＤによって読み出しデータＲＤがスクランブルされ、スクランブルデータＳＲＤが生成されて選択回路２５に与えられる。
【００２６】
選択回路２５は、選択信号ＳＬによってスクランブルデータＳＲＤ側が選択されているので、スクランブルデータＳＲＤはこの選択回路２５と３ステートバッファ２７を介して、データＤＴとしてＣＰＵに与えられる。従って、ＣＰＵに与えられるデータＤＴは、正常な読み出しデータＲＤとは異なったものとなる。
【００２７】
なお、この半導体記憶装置では、ＣＰＵからのデータＤＴを書き込む場合、このデータＤＴは、３ステートバッファ２８を介して書き込みデータＷＤとしてメモリチップ１０の読み書き制御回路１４に与えられ、メモリセルアレイ１３に書き込まれる。
【００２８】
以上のように、この実施例１の半導体記憶装置は、次のような利点がある。
（１）  一般的なメモリチップ１０に含まれるヒューズ回路１２から、シードデータＳＤを得るようにしているので、スクランブル用のシードデータの管理や書き込みを必要とせずに、チップ毎に異なるスクランブル用のデータを割り当てることができる。
（２）  一般的なメモリチップ１０に含まれるヒューズ回路１２から、シードデータＳＤを得るようにしているので、スクランブル用のデータを生成するための追加回路が不要となり、チップ面積の増加を抑えることができる。
（３）  不良メモリセルの位置を示すヒューズ回路１２の情報の一部をシードデータＳＤとしてスクランブルを行うようにしているので、読み出しデータＲＤが同一であっても、メモリチップ毎に異なったスクランブルデータＳＲＤが生成される。これにより、解読がより困難になり、たとえ１つの半導体記憶装置のデータが解読されたとしても、他の半導体装置のデータが直ちに解読されるおそれがない。
（４）  認証キーの入力を行わず、或いは誤った認証キーを入力した場合でも、読み出し動作によってスクランブルされたデータＤＴが出力されるので、不正に読み出そうとしている第三者は、正常なデータかどうかの判断が付け難い。
【実施例２】
【００２９】
図２は、本発明の実施例２を示すスクランブル回路の構成図である。
このスクランブル回路３０は、図１中のスクランブル回路２６に代えて設けられるもので、スクランブルの仕方をより複雑にすることにより、解読を困難にするものである。
【００３０】
スクランブル回路３０は、第１入力端子にヒューズ回路１２から１６ビットのシードデータＳＤが与えられ、初期設定時にロード信号ＬＤによってこのシードデータＳＤを選択するセレクタ３１を有している。セレクタ３１の出力側には、１６ビットのレジスタ３２が接続されている。
【００３１】
レジスタ３２は、最下位ビットのアドレス信号ＡＤ０の立ち下りのタイミングで、入力されるデータを保持して出力するもので、このレジスタ３２の出力側がビット操作部３３とＥＸＯＲ３４の第１入力側に接続されている。ビット操作部３３は、レジスタ３２から与えられる１６ビットのデータの並べ替えを行うもので、このビット操作部３３の出力側がＥＸＯＲ３５の第１入力側に接続されている。そして、ＥＸＯＲ３５の出力側が、セレクタ３１の第２入力端子に接続されている。
【００３２】
一方、ＥＸＯＲ３４の出力側は、レジスタ３６に接続されている。レジスタ３６は、アドレス信号ＡＤ０の立ち上がりのタイミングで、入力されるデータを保持して出力するもので、このレジスタ３６の出力側がビット操作部３７とＥＸＯＲ３５の第２入力側に接続されている。ビット操作部３７は、レジスタ３６から与えられる１６ビットのデータの並べ替えを行うもので、このビット操作部３７の出力側がＥＸＯＲ３４の第２入力側に接続されている。なお、ビット操作部３７とビット操作部３３における並べ替えの仕方は同一でも良いが、並べ方を変えることにより、より複雑なスクランブルを行うことができる。
【００３３】
更に、このスクランブル回路３０は、アドレス信号ＡＤ０の値に応じてレジスタ３２，３６のデータを切り換えて出力するセレクタ３８を有している。セレクタ３８の出力側はＥＸＯＲ３９の第１入力側に接続され、このＥＸＯＲ３９の第２入力側には、メモリチップ１０からの読み出しデータＲＤが与えられている。そして、セレクタ３８から出力されるデータによってスクランブルされたスクランブルデータＳＲＤが、ＥＸＯＲ３９から出力されるようになっている。
【００３４】
このスクランブル回路３０では、初期設定時にロード信号ＬＤによってセレクタ３１がシードデータＳＤ側に切り換えられ、レジスタ３２にこのシードデータＳＤがセットされる。一方、レジスタ３６の値は電源投入により不定値となる。その後、セレクタ３１は、ＥＸＯＲ３５側に切り換えられ、レジスタ３２にはこのＥＸＯＲ３５の演算結果が与えられる。
【００３５】
読み出し動作が開始されてアドレス信号ＡＤ０が変化すると、“０”から“１”への立ち上がりのタイミングでＥＸＯＲ３４の演算結果がレジスタ３６に保持され、“１”から“０”への立ち下がりのタイミングでＥＸＯＲ３５の演算結果がレジスタ３２に保持される。レジスタ３６の内容はＥＸＯＲ３５に与えられると共に、ビット操作部３７でビットの並べ替えが行われてＥＸＯＲ３４に与えられる。また、レジスタ３２の内容はＥＸＯＲ３４に与えられると共に、ビット操作部３３でビットの並べ替えが行われてＥＸＯＲ３５に与えられる。
【００３６】
更に、レジスタ３２，３６の内容は、アドレス信号ＡＤ０で制御されるセレクタ３８に与えられ、このアドレス信号ＡＤ０が“０”のときにはレジスタ３２の内容が選択され、“１”のときにはレジスタ３６の内容が選択されて出力される。セレクタ３８の出力はＥＸＯＲ３９に与えられ、このＥＸＯＲ３９によって読み出しデータＲＤがスクランブルされてスクランブルデータＳＲＤが生成される。
【００３７】
以上のように、この実施例２のスクランブル回路３０は、ヒューズ回路１２から出力されるシードデータＳＤを初期値とするレジスタ３２と、電源投入時の不定値を初期値とするレジスタ３６と、これらのレジスタ３２，３６のビットの位置を並べ替えるビット操作部３３，３７と、これらのビット操作部３３，３７で並べ替えられた値とレジスタ３６，３２の値の排他的論理和を算出するＥＸＯＲ３４，３５を有し、これらのＥＸＯＲ３４，３５の演算結果を、アドレス信号ＡＤ０の立ち上がりと立ち下がりのタイミングで、それぞれレジスタ３６，３２に保持するようにしている。更に、このスクランブル回路３０は、アドレス信号ＡＤ０に従ってレジスタ３２，３６の内容を選択してスクランブル用のデータを出力するセレクタ３８と、このセレクタ３８から出力されるスクランブル用のデータに従って読み出しデータＲＤをスクランブルするＥＸＯＲ３９を有している。
【００３８】
これにより、スクランブルデータの生成がより複雑になる。また、レジスタ３２，３６に保持されるデータは、互いのレジスタを参照して更新されるため、読み出しデータＲＤに同じ値が連続した場合でも、ランダム性のあるスクランブルデータＳＲＤを出力することができるという利点がある。更に、レジスタ３２，３６の更新タイミングにアドレス信号ＡＤ０を使用しているため、クロック専用端子を持たない半導体記憶装置にも適用することができるという利点がある。
【００３９】
なお、本発明は、上記実施例に限定されず、種々の変形が可能である。この変形例としては、例えば、次のようなものがある。
（ａ）  認証キーや判定キーのビット数を１６ビットとしたが、サイズは任意である。同様に、データＤＴのビット幅を１６ビットとしたが、このビット幅も任意である。更に、アドレス信号ＡＤのサイズも任意である。また、認証キーの入力方法も任意である。
（ｂ）  判定キーレジスタ２３は、メモリチップ１０とは別の読み出し専用メモリとして説明したが、電源投入時にメモリチップ１０の特定領域の不揮発性のデータを読み出して保持するように構成することも可能である。
（ｃ）  ヒューズ回路１２は、不良メモリセルの位置情報を記憶するものを利用しているが、その他の設定情報を記憶するものを利用することもできる。
（ｄ）  スクランブル回路３０では、レジスタ３２，３６用のクロック信号としてアドレス信号ＡＤの最下位ビット（ＡＤ０）を用いたが、ビット位置はこれに限定されない。
（ｅ）  スクランブル回路２６，３０の回路構成は、例示したものに限定されない。
【図面の簡単な説明】
【００４０】
【図１】本発明の実施例１を示す半導体記憶装置の構成図である。
【図２】本発明の実施例２を示すスクランブル回路の構成図である。
【符号の説明】
【００４１】
１０    メモリチップ
１１    アドレスデコーダ
１２    ヒューズ回路
１３    メモリセルアレイ
１４    読み書き制御回路
２１    認証キー入力回路
２２    認証キーレジスタ
２３    判定キーレジスタ
２４    比較回路
２５    選択回路
２６，３０    スクランブル回路
２７，２８    ３ステートバッファ
３１，３８    セレクタ
３２，３６    レジスタ
３３，３７    ビット操作部
３４，３５，３９    ＥＸＯＲ（排他的論理和ゲート）
【図１】
2008181375.tif 000003
【図２】
2008181375.tif 000004