(57)【特許請求の範囲】
【請求項１】
電源遮断時にもデータを保持するとともに、テスト端子から入力されるテスト信号に従ってテスト処理を実行するメモリ装置であって、
秘匿データを格納するメモリに対して、データの読み出し指示を発行する発行手段と、
上記発行手段の発行処理に応答して読み出されるデータから、上記メモリに秘匿データが格納されているのか否かを解読する解読手段と、
上記解読手段の解読結果を揮発性の形態で保持する保持手段と、
上記保持手段が秘匿データの格納を示す情報を保持するときに、テスト端子から入力されるテスト信号を遮断する遮断手段とを備えることを、
特徴とするメモリ装置。
【請求項２】
請求項１記載のメモリ装置において、
上記発行手段は、秘匿データを格納するメモリに対して、秘匿データの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項３】
請求項１記載のメモリ装置において、
上記発行手段は、秘匿データを格納するメモリに対して、それが格納する作業用データを除く全てのデータの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項４】
請求項１記載のメモリ装置において、
上記発行手段は、秘匿データを格納するメモリに対して、秘匿データの格納に用いられない領域に格納される秘匿データの格納の有無を示すデータの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項５】
請求項１〜４に記載されるいずれかのメモリ装置において、
上記発行手段は、電源投入時に、データの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項６】
請求項１〜５に記載されるいずれかのメモリ装置において、
上記発行手段は、リセット時に、データの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項７】
請求項１〜５に記載されるいずれかのメモリ装置において、
上記発行手段は、秘匿データを操作するコマンドの発行時に、データの読み出し指示を発行することを、
特徴とするメモリ装置。
【請求項８】
電源遮断時にもデータを保持するとともに、テスト端子から入力されるテスト信号に従ってテスト処理を実行するメモリ装置であって、
ホスト装置が秘匿データを格納するメモリに対してのアクセス要求を発行するときに、そのアクセス要求のあるデータを読み出す読出手段と、
上記読出手段の読み出したデータを収集し、その収集データから該メモリに秘匿データが格納されているのか否かを解読する解読手段と、
上記解読手段の解読結果を揮発性の形態で保持する保持手段と、
上記保持手段が秘匿データの格納を示す情報を保持するときに、テスト端子から入力されるテスト信号を遮断する遮断手段とを備えることを、
特徴とするメモリ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、電源遮断時にもデータを保持するメモリ装置に関し、特に、高いセキュリティを実現しつつ、テスト端子から入力されるテスト信号に従ってテスト処理を実行できるようにするメモリ装置に関する。
【０００２】
メモリ装置に格納されるデータのセキュリティを確保することは非常に重要なことである。一方、メモリ装置の品質を向上させることも非常に重要なことである。
【０００３】
メモリ装置の品質を向上させるには、製造されたメモリ装置をテストして故障のあるものを検出していく必要がある。しかるに、このようなテストを可能にすべくテスト用の端子を設けると、不正使用者がこのテスト機能を利用することで、メモリ装置に格納される暗号キーなどの秘匿データを取得できる可能性がでてくる。
【０００４】
これから、高いセキュリティを実現しつつ、製造されたメモリ装置をテストできるようにする技術を構築していく必要がある。
【０００５】
【従来の技術】
例えば、メモリステックなどのような不揮発性メモリに、暗号化された音楽などの著作物を記録することが行われている。
【０００６】
このような場合に、暗号キーがハックされると、その著作物が無断でコピーされてしまうという不都合が起こる。
【０００７】
また、不揮発性メモリとその不揮発性メモリを利用するホスト装置との間で、共通鍵の暗号キーを使って暗号文をやり取りすることで、認証処理を実行するということが行われている。
【０００８】
このような場合にも、暗号キーがハックされると、不正使用者の操作するホスト装置が不揮発性メモリのデータを参照できることになるという不都合が起こる。
【０００９】
そこで、従来では、不正使用者がテスト機能を使って暗号キーなどの秘匿データを盗めないようにするために、メモリステックなどのような不揮発性メモリにはテスト用端子を設けないようにする構成を採っている。
【００１０】
【発明が解決しようとする課題】
確かに、従来技術のように、不揮発性メモリにテスト用端子を設けないようにすれば高いセキュリティを確保できるようになる。
【００１１】
しかしながら、それでは、不揮発性メモリの製造メーカは、製造された不揮発性メモリを十分にテストすることができず、その品質を保証することができない。
【００１２】
これから、従来技術に従っていると、メモリステックなどのような不揮発性メモリの品質を向上させることができないという問題点があった。
【００１３】
本発明はかかる事情に鑑みてなされたものであって、電源遮断時にもデータを保持する構成を採るときにあって、高いセキュリティを実現しつつ、テスト端子から入力されるテスト信号に従ってテスト処理を実行できるようにする新たなメモリ装置の提供を目的とする。
【００１４】
【課題を解決するための手段】
図１に本発明の原理構成を図示する。
【００１５】
図中、１は本発明を具備するメモリ装置であって、電源遮断時にもデータを保持するとともに、テスト端子から入力されるテスト信号に従ってテスト処理を実行するものである。
【００１６】
本発明のメモリ装置１は、秘匿データメモリ手段１０と、回路手段１１−ｉ（ｉ＝１〜ｎ）と、テスト入力用インタフェース手段１２と、遮断手段１３と、発行手段１４と、解読手段１５と、保持手段１６とを備える。
【００１７】
この秘匿データメモリ手段１０は、暗号キーなどの秘匿データを格納し、秘匿データを格納しないときには、秘匿データとは異なる初期データを格納し、秘匿データを格納するときにあって、秘匿データを格納する領域以外の領域があるときには、その領域に、秘匿データの格納の有無を示すデータを格納することがある。
【００１８】
回路手段１１−ｉ（ｉ＝１〜ｎ）は、秘匿データメモリ手段１０から秘匿データを読み出し、それを使って規定の処理を実行する。テスト入力用インタフェース手段１２は、テスト端子から、回路手段１１−ｉ（ｉ＝１〜ｎ）のテストに用いるテスト用信号を入力する。遮断手段１３は、テスト入力インタフェース手段１２の入力するテスト信号を遮断する。
【００１９】
発行手段１４は、秘匿データメモリ手段１０に対してデータの読み出し指示を発行する。解読手段１５は、秘匿データメモリ手段１０から読み出されるデータを解読することで、秘匿データメモリ手段１０に秘匿データが格納されているのか否かを解読する。保持手段１６は、解読手段１５の解読結果を揮発性の形態で保持する。
【００２０】
このように構成される本発明のメモリ装置１では、発行手段１４は、電源投入時に、秘匿データメモリ手段１０に対してデータの読み出し指示を発行したり、リセット時に、秘匿データメモリ手段１０に対してデータの読み出し指示を発行したり、秘匿データを操作するコマンドの発行時に、秘匿データメモリ手段１０に対してデータの読み出し指示を発行する。
【００２１】
このとき、発行手段１４は、秘匿データメモリ手段１０に対して、秘匿データの読み出し指示を発行したり、作業用データを除く全てのデータの読み出し指示を発行したり、秘匿データの格納に用いられない領域に格納される秘匿データの格納の有無を示すデータの読み出し指示を発行する。
【００２２】
この発行手段１４の発行処理を受けて、秘匿データメモリ手段１０は、秘匿データを格納するときには、秘匿データや秘匿データの格納を示すデータを出力し、秘匿データを格納しないときには、秘匿データとは異なる初期データや秘匿データの未格納を示すデータを出力し、これを受けて、解読手段１５は、秘匿データメモリ手段１０に秘匿データが格納されているのか否かを解読する。
【００２３】
この解読手段１５の解読結果を受けて、保持手段１６は、秘匿データメモリ手段１０に秘匿データが格納されているのか否かを示す情報を保持し、これを受けて、遮断手段１３は、保持手段１６が秘匿データの格納を示す情報を保持するときには、テスト入力用インタフェース手段１２から入力されるテスト信号を遮断する。
【００２４】
このようにして、本発明のメモリ装置１では、秘匿データメモリ手段１０に秘匿データが格納されているときには、テスト信号の入力を受け付けないことでテストできないようにする構成を採ることから、実質的にテスト端子を持たないメモリ装置と同等のセキュリティを実現しつつ、品質向上のためのテストを実行できるようになる。
【００２５】
一方、このように構成される本発明のメモリ装置１では、ホスト装置から秘匿データメモリ手段１０に対してアクセス要求が発行されると、図１では省略した読出手段が秘匿データメモリ手段１０からアクセス要求のあるデータを読み出すので、解読手段１５は、その読み出されるデータを収集して、その収集データから秘匿データメモリ手段１０に秘匿データが格納されているのか否かを解読する。
【００２６】
この解読手段１５の解読結果を受けて、保持手段１６は、秘匿データメモリ手段１０に秘匿データが格納されているのか否かを示す情報を保持し、これを受けて、遮断手段１３は、保持手段１６が秘匿データの格納を示す情報を保持するときには、テスト入力用インタフェース手段１２から入力されるテスト信号を遮断する。
【００２８】
このようにして、本発明のメモリ装置１では、秘匿データメモリ手段１０に格納される秘匿データに対するアクセス要求の発行を検出すると、それ以降、テスト信号の入力を受け付けないようにする構成を採ることから、実質的にテスト端子を持たないメモリ装置と同等のセキュリティを実現しつつ、品質向上のためのテストを実行できるようになる。
【００２９】
【発明の実施の形態】
以下、実施の形態に従って本発明を詳細に説明する。
【００３０】
図２に、本発明の一実施例を図示する。
【００３１】
図中、２０は本発明を具備するメモリスティック、３０はメモリスティック２０を利用するホスト装置である。
【００３２】
本発明のメモリスティック２０は、フラッシュメモリ４０と、フラッシュメモリ４０をコントロールするＭＳコントローラ５０とで構成されており、ホスト装置３０から、シリアルプロトコルバスステート信号（ＢＳ）とシリアルプロトコルクロック信号（ＳＣＬＫ）とを入力し、ホスト装置３０との間で、シリアルプロトコルデータ信号（ＤＩＯ）をやり取りする。
【００３３】
このＭＳコントローラ５０は、ホスト装置３０との間のインタフェース処理を司るホストインタフェース５１と、フラッシュメモリ４０との間のインタフェース処理を司るフラッシュインタフェース５２と、レジスタ５３と、ページバッファ５４と、ＲＯＭ５５と、コントローラ用メモリ５６と、暗号復号機構５７と、セキュリティ機構５８とを備える。
【００３４】
図３に示すように、暗号復号機構５７は、暗号復号回路５７０と乱数発生回路５７１とを備え、コントローラ用メモリ５６は、例えば５１２バイトで構成されて、例えば１６バイトで構成される複数の暗号キーを格納する暗号キーメモリ域と、乱数発生回路５７１の発生する乱数などを格納するために用意される作業用メモリ域とを備える。
【００３５】
ここで、暗号キーが格納されてない場合には、このコントローラ用メモリ５６の暗号キーメモリ域には、暗号キーとして用いられることのないオール０などのような規定の初期データが格納されることになる。
【００３６】
このように構成される暗号復号機構５７では、ホスト装置３０との間でデータをやり取りする必要が生じると、乱数発生回路５７１が乱数を発生して、これを暗号復号回路５７０に通知するとともに、コントローラ用メモリ５６の作業用メモリ域に格納する。
【００３７】
この乱数発生回路５７１から通知される乱数を受けて、暗号復号回路５７０は、コントローラ用メモリ５６の暗号キーメモリ域から、その乱数の指定する暗号キーを読み出し、通知された乱数をキーにして、その読み出した暗号キーを暗号化してホスト装置３０に送信する。
【００３８】
このＭＳコントローラ５０からの暗号文を受け取ると、ホスト装置３０は、暗号文を解読することで、暗号復号回路５７０の読み出した暗号キーを知ることができるので、その暗号キーを使って必要なデータを暗号化してＭＳコントローラ５０に返信する。
【００３９】
そして、このホスト装置３０からの暗号文を受け取ると、暗号復号回路５７０は、自分の用いた暗号キーを使ってこの暗号文を復号することで、ホスト装置３０の返信してきたデータを解読する。
【００４０】
このようにして、ＭＳコントローラ５０は、共通鍵となる暗号キーを用いて、ホスト装置３０との間で暗号文のやり取りを行っていくが、認証処理などのような場合には、安全性を高めるために、複数の暗号キーを使って暗号文をやり取りする必要が生ずる。このような場合には、乱数発生回路５７１は、コントローラ用メモリ５６の作業用メモリ域に格納した前回の発生乱数を読み出して、それを基にして次の乱数を発生していくことで、発生する乱数のランダム性を確保していくように処理している。
【００４１】
このような処理を行うＭＳコントローラ５０を持つメモリスティック２０の品質を保証するためには、ＭＳコントローラ５０が設計通りに製造されているのか否かをテストしていく必要がある。しかるに、このようなテスト機能を持つと、それを利用して、不正使用者が暗号キーを盗み取る可能性がででくる。
【００４２】
そこで、ＭＳコントローラ５０は、このような可能性を排除するために、図２に示したようにセキュリティ機構５８を備える構成を採っている。
【００４３】
図４に、このセキュリティ機構５８の一実施例を図示する。ここで、図中の５６は図２に示したコントローラ用メモリ、５７０は図３に示した暗号復号回路、５７１は図３に示した乱数発生回路５７１である。
【００４４】
この図に示すように、セキュリティ機構５８は、シーケンサ５８０と、テスト入力インタフェース５８１と、テストセレクト部５８２と、内部信号セレクト出力部５８３と、レジスタ５８４と、デコーダ５８５と、制御フラグラッチ回路５８６とを備える。
【００４５】
このシーケンサ５８０は、電源投入を契機として起動されて、全体の制御処理を実行する。テスト入力インタフェース５８１は、テスト端子から入力されてくるテスト信号を入力し、それをデコードすることで対応するテスト機能を呼び出す。
【００４６】
テストセレクト部５８２は、制御フラグラッチ回路５８６にラッチされる制御フラグに従って、テスト入力インタフェース５８１の出力するテスト信号を遮断するのか否かを制御する。内部信号セレクト出力部５８３は、テスト出力をテスト端子に出力する。
【００４７】
レジスタ５８４は、コントローラ用メモリ５６から読み出されるデータ（暗号キーが格納されている場合には暗号キー、暗号キーが格納されていない場合には初期データ）を保持する。
【００４８】
デコーダ５８５は、レジスタ５８４の保持するデータをデコードすることで、レジスタ５８４の保持するデータが暗号キーであるのかそれ以外の初期データであるのかをデコードする。制御フラグラッチ回路５８６は、デコーダ５８５のデコード結果をラッチしてテストセレクト部５８２を制御する。
【００４９】
図５に、セキュリティ機構５８の備えるシーケンサ５８０の一実施例を図示する。
【００５０】
この図に示すように、シーケンサ５８０は、シーケンサ動作フラグＯＮ部５８００と、シーケンサ・カウンタ５８０１と、シーケンサ動作終了信号生成部５８０２と、メモリアドレス生成部５８０３と、読出信号生成部５８０４と、レジスタ格納信号生成部５８０５とを備える。
【００５１】
このシーケンサ動作フラグＯＮ部５８００は、電源が投入されるときに、動作フラグをＯＮする。シーケンサ・カウンタ５８０１は、動作フラグがＯＮしている間、計数値をカウントアップして、その計数値が規定値に到達するときに、メモリアドレス生成部５８０３／読出信号生成部５８０４／レジスタ格納信号生成部５８０５を起動する。シーケンサ動作終了信号生成部５８０２は、シーケンサ・カウンタ５８０１の計数値が最大値に到達するときに、動作フラグをＯＦＦさせる動作終了信号を生成する。
【００５２】
メモリアドレス生成部５８０３は、暗号キーの格納先となっているコントローラ用メモリ５６のメモリアドレスを生成する。読出信号生成部５８０４は、コントローラ用メモリ５６からのデータの読み出しを指示する読出信号を生成する。レジスタ格納信号生成部５８０５は、レジスタ５８４の格納タイミング信号となるレジスタ格納信号を生成する。
【００５３】
このように構成されるセキュリティ機構５８は、次に説明する動作を実行することで、不正使用者による暗号キーのハックを防止する。
【００５４】
すなわち、セキュリティ機構５８の備えるシーケンサ５８０は、電源が投入されると、シーケンサ・カウンタ５８０１によるシーケンス動作に入って、先ず最初に、メモリアドレス生成部５８０３を起動することで、暗号キーの格納先となっているコントローラ用メモリ５６のメモリアドレスを生成し、続いて、読出信号生成部５８０４を起動することで、コントローラ用メモリ５６からのデータの読み出しを指示する読出信号を生成する。
【００５５】
このメモリアドレス及び読出信号の生成を受けて、コントローラ用メモリ５６は、そのメモリアドレスの指定する例えば１６バイトのデータを読み出していく。すなわち、暗号キーが格納されているときには暗号キー、暗号キーが格納されていないときには初期データを読み出していくのである。
【００５６】
続いて、シーケンサ５８０は、レジスタ格納信号生成部５８０５を起動することで、レジスタ５８４の格納タイミング信号となるレジスタ格納信号を生成する。
【００５７】
このレジスタ格納信号を受けて、レジスタ５８４は、コントローラ用メモリ５６から読み出されたデータを保持する。
【００５８】
このようにして、レジスタ５８４に、コントローラ用メモリ５６から読み出されたデータが保持されると、デコーダ５８５は、そのデータをデコードすることで、そのデータが暗号キーであるのかそれ以外の初期データであるのかをデコードし、これを受けて、制御フラグラッチ回路５８６は、レジスタ５８４に保持されるデータが暗号キーであるときには例えば１をラッチし、レジスタ５８４に保持されるデータが初期データであるときには例えば０をラッチする。
【００５９】
この制御フラグラッチ回路５８６のラッチする制御フラグを受けて、テストセレクト部５８２は、レジスタ５８４に保持されるデータが暗号キーであるときには、テスト入力インタフェース５８１の出力するテスト信号を遮断することでテスト機能の実行を阻止し、レジスタ５８４に保持されるデータが初期データであるときには、テスト入力インタフェース５８１の出力するテスト信号を遮断しないことでテスト機能の実行を阻止しないように処理する。
【００６０】
このようにして、セキュリティ機構５８は、電源投入時にコントローラ用メモリ５６に暗号キーが格納されているときには、それ以降、テストモードに入れないようにすることで、テスト機能を利用する暗号キーのハックを確実に防止するように処理するのである。
【００６１】
そして、セキュリティ機構５８は、電源投入時にコントローラ用メモリ５６に暗号キーが格納されていないときには、それ以降、テストモードに入れるようにすることで、ＭＳコントローラ５０が設計通りに製造されているのか否かをテストできるようにしている。
【００６２】
すなわち、メモリスティック２０の製造メーカは、ＭＳコントローラ５０をテストする場合には、ホスト装置３０を使って、コントローラ用メモリ５６に格納される暗号キーを消去した後、電源を一度切断してから再投入すれば、テストモードに入れるようになる。
【００６３】
この構成を採るときに、セキュリティ機構５８は、電源投入後に暗号キーが消去されることがあることを考慮して、リセットが発行されるときに上述した処理を実行することで、リセット発行時に暗号キーが消去されているときには、テスト入力インタフェース５８１の出力するテスト信号を遮断しないことでテスト機能の実行を阻止しないように処理する。
【００６４】
メモリスティック２０のユーザとなるメーカ（ユーザメーカ）から、コントローラ用メモリ５６のどのメモリアドレス位置に暗号キーを格納するのかが知らされる場合には、メモリスティック２０の製造メーカは、メモリアドレス生成部５８０３がそのメモリアドレスを生成するように設計する。
【００６５】
しかしながら、ユーザメーカから、そのようなメモリアドレスが知らされない場合には、製造メーカは、メモリアドレス生成部５８０３がコントローラ用メモリ５６から作業用データを除く全てのデータを読み出すことになるメモリアドレスを生成するように設計する。
【００６６】
このときには、レジスタ５８４に、コントローラ用メモリ５６から読み出されていくデータが順番に保持されていくことになるので、制御フラグラッチ回路５８６が暗号キーが読み出されたことを示す制御フラグをラッチするときに、レジスタ５８４に対して、それから以降のデータの保持を禁止させる処理を行う回路機構を用意することになる。
【００６７】
上述したように、コントローラ用メモリ５６の暗号キーメモリ域には、暗号キーが格納されていない場合には、暗号キーとして用いられることのないオール０などのような規定の初期データが格納されることになる。
【００６８】
これにより、暗号キーが格納されているのか格納されていないのかが判別できるようになるのであるが、メモリスティック２０のユーザメーカによっては、メモリスティック２０の製造メーカの想定した初期データを暗号キーとして使用する可能性もある。
【００６９】
これから、ユーザメーカから、暗号キーとして使用することのないデータが知らされる場合には、製造メーカは、そのデータを初期データとして用いるように設計していくことになる。
【００７０】
一方、ユーザメーカから、そのような初期データが知らされない場合には、製造メーカは、ユーザメーカに対して、コントローラ用メモリ５６の作業用メモリ域の特定領域に、暗号キーの書き込みと同期させて、暗号キーの格納を示す特定のデータを書き込ませるように要求する。そして、その特定のデータを読み出して、デコーダ５８５によりデコードしていくことで、暗号キーが格納されているのか否かを判別するように設計していくようにする。
【００７１】
図４の実施例では、電源が投入されるときに、コントローラ用メモリ５６に暗号キーが格納されているのか否かを判断して、その判断結果を制御フラグラッチ回路５８６にラッチさせていくという構成を採った。そして、これに加えて、リセットが発行されるときに、コントローラ用メモリ５６に暗号キーが格納されているのか否かを判断して、その判断結果を制御フラグラッチ回路５８６にラッチさせていくという構成を採ったが、その他のタイミング時に、この処理を行う構成を加えることも可能である。
【００７２】
例えば、図６に示すように、セキュリティ機構５８に発行コマンドを解釈するコマンド解釈部５８７を備える構成を採って、このコマンド解釈部５８７が暗号キーを操作するコマンドの発行を検出するときに、コントローラ用メモリ５６に暗号キーが格納されているのか否かを判断して、その判断結果を制御フラグラッチ回路５８６にラッチさせていくという構成を加えることも可能である。
【００７３】
図７に、本発明を実現するためのセキュリティ機構５８の他の実施例を図示する。
【００７４】
図４の実施例では、電源投入時にコントローラ用メモリ５６に暗号キーが格納されているときには、テストモードに入れないようにすることで、暗号キーのハックを防止する構成を採ったが、この実施例では、ホスト装置３０からのメモリアクセス要求に応答して暗号復号回路５７０がコントローラ用メモリ５６に対してメモリアクセス要求を発行することで暗号キーを読み出すときに、テストセレクト部５８２がテスト入力インタフェース５８１の出力するテスト信号を遮断するように動作させることで、テストモードに入っているときにはその継続を禁止させ、通常モードにあるときにはテストモードへの移行を禁止させていくという構成を採っている。
【００７５】
暗号復号回路５７０が暗号キーを読み出すと、テスト機能を使って、その暗号キーをハックできる可能性が出てくるので、この構成に従って、そのような可能性を排除するのである。
【００７６】
この実施例に従う場合、シーケンサ５８０は、図８に示すように、レジスタ格納信号生成部５８０５のみを備える構成を採って、このレジスタ格納信号生成部５８０５を使って、暗号復号回路５７０がコントローラ用メモリ５６に格納される暗号キーのメモリアクセス信号を発行するときに（ホスト装置３０からのメモリアクセス要求に応答して発行することになる）、レジスタ５８４の格納タイミング信号となるレジスタ格納信号を生成するように処理する。
【００７７】
このように構成される図７の実施例では、暗号復号回路５７０がコントローラ用メモリ５６に対してメモリアクセス信号を発行すると、シーケンサ５８０は、レジスタ格納信号生成部５８０５を起動することで、レジスタ５８４の格納タイミング信号となるレジスタ格納信号を生成する。
【００７８】
このレジスタ格納信号を受けて、レジスタ５８４は、暗号復号回路５７０の読み出す暗号キーをサンプリングして保持する。
【００７９】
このようにして、レジスタ５８４に暗号キーが保持されると、デコーダ５８５は、レジスタ５８４の保持するデータが暗号キーであることをデコードし、これを受けて、制御フラグラッチ回路５８６は、レジスタ５８４に保持されるデータが暗号キーであることを示す例えば１をラッチする。
【００８０】
この制御フラグラッチ回路５８６のラッチする制御フラグを受けて、テストセレクト部５８２は、テスト入力インタフェース５８１の出力するテスト信号を遮断することでテスト機能の実行を阻止するように処理する。
【００８１】
このようにして、この実施例に従う場合、セキュリティ機構５８は、暗号復号回路５７０が暗号キーを読み出すと、それまでテストモードにあるときには、それ以降テストモードを継続させていかないように処理するとともに、それまで通常モードにあるときには、それ以降テストモードに入れないように処理することで、テスト機能を利用する暗号キーのハックを確実に防止するように処理するのである。
【００８２】
図７の実施例では、暗号復号回路５７０の読み出す暗号キーをレジスタ５８４に保持させていくことで、制御フラグラッチ回路５８６に対して、テスト信号を遮断させるための制御フラグをラッチさせていくという構成を採ったが、本発明に関連する技術として、図９に示すように、暗号復号回路５７０の発行するメモリアクセス信号を受けて、シーケンサ５８０が直接制御フラグラッチ回路５８６に対して、テスト信号を遮断させるための制御フラグをラッチさせていくという構成を採ることも可能である。
【００８３】
このようにして、図４の実施例に従う場合には、ＭＳコントローラ５０は、電源投入時に、図１０（ａ）の処理フローに示すように、コントローラ用メモリ５６の暗号キーメモリ域からデータを読み出し、その読み出したデータが消去状態でない場合、すなわち、その読み出したデータが暗号キーである場合には、テスト信号の入力を遮断することで、テスト処理に入ることを禁止し、その読み出したデータが消去状態である場合には、テスト信号の入力を許可することで、テスト処理に入ることを許可していく構成を採るのである。
【００８４】
この構成に従って、コントローラ用メモリ５６に暗号キーが格納されている場合には、テストモードに入れないようにすることで、テスト機能を利用する暗号キーのハックを確実に防止できるようになる。
【００８５】
一方、図７の実施例に従う場合には、ＭＳコントローラ５０は、暗号復号回路５７０が暗号キーのアクセス要求を発行するときに、図１０（ｂ）の処理フローに示すように、テスト信号の入力を遮断することで、テスト処理に入ることを禁止したり、テスト処理に入っているときは、その継続を禁止していく構成を採るのである。
【００８６】
この構成に従って、コントローラ用メモリ５６から暗号キーが読み出された場合には、テストモードに入れないようにしたり、テストモードから強制的に抜けさせるようにすることで、テスト機能を利用する暗号キーのハックを確実に防止できるようになる。
【００８７】
図示実施例に従って本発明を説明したが、本発明はこれに限定されるものではない。例えば、暗号キーを具体例にして本発明を説明したが、本発明はその適用が暗号キーに限られるものではない。
【００８８】
【発明の効果】
以上説明したように、本発明のメモリ装置では、秘匿データが格納されているときには、テスト信号の入力を受け付けないことでテストできないようにする構成を採ることから、実質的にテスト端子を持たないメモリ装置と同等のセキュリティを実現しつつ、品質向上のためのテストを実行できるようになる。
【００８９】
そして、本発明のメモリ装置では、秘匿データに対するアクセス要求の発行を検出すると、それ以降、テスト信号の入力を受け付けないようにする構成を採ることから、実質的にテスト端子を持たないメモリ装置と同等のセキュリティを実現しつつ、品質向上のためのテストを実行できるようになる。
【図面の簡単な説明】
【図１】本発明の原理構成図である。
【図２】本発明の一実施例である。
【図３】ホスト装置とのやり取りの説明図である。
【図４】本発明の一実施例である。
【図５】シーケンサの一実施例である。
【図６】本発明の他の実施例である。
【図７】本発明の他の実施例である。
【図８】シーケンサの一実施例である。
【図９】本発明に関連する技術の説明図である。
【図１０】本発明の説明図である。
【符号の説明】
１    メモリ装置
１０  秘匿データメモリ手段
１１  回路手段
１２  テスト入力用インタフェース手段
１３  遮断手段
１４  発行手段
１５  解読手段
１６  保持手段
【図１】
0003602984.tif 000002
【図２】
0003602984.tif 000003
【図３】
0003602984.tif 000004
【図４】
0003602984.tif 000005
【図５】
0003602984.tif 000006
【図６】
0003602984.tif 000007
【図７】
0003602984.tif 000008
【図８】
0003602984.tif 000009
【図９】
0003602984.tif 000010
【図１０】
0003602984.tif 000011