(57)【要約】【課題】再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得る。【解決手段】データ更新部１５Ａは、メモリアレイ１７から読み出した第１の乱数生成用データＸ１を更新することにより、第１の乱数生成用データＸ１に基づいて生成される第１の乱数より後に使用される第２の乱数を生成するための第２の乱数生成用データＸ２を生成する。制御部１３は、第２の乱数生成用データＸ２をメモリアレイ１７に書き込む。【選択図】図２
2014222420.tif 000002
【特許請求の範囲】
【請求項１】
乱数の生成に用いる乱数生成用データが記憶されたメモリアレイと、
乱数生成用データを更新するデータ更新部と、
制御部と、
を備え、
前記データ更新部は、前記メモリアレイから読み出した第１の乱数生成用データを更新することにより、当該第１の乱数生成用データに基づいて生成される第１の乱数より後に使用される第２の乱数を生成するための第２の乱数生成用データを生成し、
前記制御部は、前記第２の乱数生成用データを前記メモリアレイに書き込む、半導体記憶装置。
【請求項２】
前記データ更新部は、前記第１の乱数生成用データとは異なる前記第２の乱数生成用データを生成する、請求項１に記載の半導体記憶装置。
【請求項３】
前記メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する乱数生成部をさらに備える、請求項１又は２に記載の半導体記憶装置。
【請求項４】
前記乱数生成部による乱数の生成処理と、前記データ更新部による乱数生成用データの更新処理及び前記制御部による乱数生成用データの書き込み処理とは、並行して実行される、請求項３に記載の半導体記憶装置。
【請求項５】
前記メモリアレイには、前記乱数生成用データとして乱数が記憶されている、請求項１又は２に記載の半導体記憶装置。
【請求項６】
前記データ更新部は、前記第１の乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の乱数生成用データを生成する乱数生成器を有する、請求項５に記載の半導体記憶装置。
【請求項７】
前記制御部は、前記第２の乱数生成用データが前記メモリアレイに正しく書き込まれるまで、乱数生成用データの書き込み処理を繰り返し実行する、請求項１〜６のいずれか一つに記載の半導体記憶装置。
【請求項８】
前記メモリアレイには、乱数生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている、請求項１〜７のいずれか一つに記載の半導体記憶装置。
【請求項９】
乱数生成用データは、前記メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶される、請求項１〜８のいずれか一つに記載の半導体記憶装置。
【請求項１０】
前記半導体記憶装置の電源が投入されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行される、請求項１〜９のいずれか一つに記載の半導体記憶装置。
【請求項１１】
前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行される、請求項１〜１０のいずれか一つに記載の半導体記憶装置。
【請求項１２】
ホスト装置と、
前記ホスト装置との間で鍵を交換することにより、前記ホスト装置から受信したコマンドを当該鍵を用いて復号し、前記ホスト装置に送信するデータを当該鍵を用いて暗号化する半導体記憶装置と、
を備え、
前記半導体記憶装置は、
前記ホスト装置との間で送受信するデータと、鍵の生成に用いる鍵生成用データとが記憶されたメモリアレイと、
鍵を生成する鍵生成部と、
鍵生成用データを更新するデータ更新部と、
制御部と、
を有し、
前記半導体記憶装置が前記ホスト装置から鍵要求を受けた場合、
前記鍵生成部は、その時点で前記メモリアレイに記憶されている第１の鍵生成用データに基づいて、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成し、
前記制御部は、前記鍵生成部によって生成された鍵を暗号化して前記ホスト装置に送信し、
前記データ更新部は、前記第１の鍵生成用データを更新することにより、今回より後の鍵要求に対応して前記ホスト装置に送信する鍵を生成するための第２の鍵生成用データを生成し、
前記制御部は、前記第２の鍵生成用データを前記メモリアレイに書き込む、データ処理システム。
【請求項１３】
前記データ更新部は、前記第１の鍵生成用データとは異なる前記第２の鍵生成用データを生成する、請求項１２に記載のデータ処理システム。
【請求項１４】
前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成する乱数生成器を有する、請求項１２又は１３に記載のデータ処理システム。
【請求項１５】
前記鍵生成部による鍵の生成処理及び前記制御部による鍵の送信処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行される、請求項１４に記載のデータ処理システム。
【請求項１６】
前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データを、今回の鍵要求に対応して前記ホスト装置に送信する鍵として生成する、請求項１２又は１３に記載のデータ処理システム。
【請求項１７】
前記データ更新部は、前記メモリアレイから読み出した前記第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の鍵生成用データを生成する乱数生成器を有する、請求項１６に記載のデータ処理システム。
【請求項１８】
前記制御部は、前記第２の鍵生成用データが前記メモリアレイに正しく書き込まれるまで、鍵生成用データの書き込み処理を繰り返し実行する、請求項１２〜１７のいずれか一つに記載のデータ処理システム。
【請求項１９】
前記メモリアレイには、鍵生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている、請求項１２〜１８のいずれか一つに記載のデータ処理システム。
【請求項２０】
鍵生成用データは、前記メモリアレイの記憶領域のうち、前記ホスト装置からのアクセスが禁止されている領域に記憶される、請求項１２〜１９のいずれか一つに記載のデータ処理システム。
【請求項２１】
前記半導体記憶装置の電源が投入されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行される、請求項１２〜２０のいずれか一つに記載のデータ処理システム。
【請求項２２】
前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行される、請求項１２〜２１のいずれか一つに記載のデータ処理システム。
【請求項２３】
鍵の生成に用いる鍵生成用データが記憶されたメモリアレイと、
鍵を生成する鍵生成部と、
鍵生成用データを更新するデータ更新部と、
制御部と、
を備え、
前記鍵生成部は、前記メモリアレイに記憶されている第１の鍵生成用データに基づいて第１の鍵を生成し、
前記データ更新部は、前記第１の鍵生成用データを更新することにより、前記第１の鍵より後に使用される第２の鍵を生成するための第２の鍵生成用データを生成し、
前記制御部は、前記第２の鍵生成用データを前記メモリアレイに書き込む、半導体記憶装置。
【請求項２４】
前記データ更新部は、前記第１の鍵生成用データとは異なる前記第２の鍵生成用データを生成する、請求項２３に記載の半導体記憶装置。
【請求項２５】
前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する乱数生成器をさらに備える、請求項２３又は２４に記載の半導体記憶装置。
【請求項２６】
前記鍵生成部による鍵の生成処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行される、請求項２５に記載の半導体記憶装置。
【請求項２７】
前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データを、鍵として生成する、請求項２３又は２４に記載の半導体記憶装置。
【請求項２８】
前記データ更新部は、前記メモリアレイから読み出した前記第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の鍵生成用データを生成する乱数生成器を有する、請求項２７に記載の半導体記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、半導体記憶装置及びデータ処理システムに関する。
【背景技術】
【０００２】
乱数は、暗号アルゴリズムにおける鍵の生成等に用いられる。真性乱数に近い乱数を得るための手法の一つとして、抵抗又はダイオードにおいて発生する雑音を利用して乱数を生成する方式が実用化されている。しかしながら、この方式では、低レベルの雑音をアナログ増幅回路によって増幅する必要があるため、アナログ増幅回路の回路規模が大きくなり、結果として乱数生成回路の回路規模が全体として増大する。また、アナログ回路を用いて乱数生成回路を構成する場合には、回路設計の難易度が高くなる。従って、回路規模の増大及び回路設計の複雑化を回避するためには、計算によって生成可能なディジタル乱数の使用が望まれる。
【０００３】
ディジタル乱数としては、擬似乱数が広く用いられている。擬似乱数は、乱数生成回路において、シードを用いた所定のアルゴリズムによって生成される。
【０００４】
なお、下記特許文献１には、不確定論理回路と、不確定論理回路から出力されるディジタル値における「０」及び「１」の出現頻度を均等にするための一様化回路とを備える乱数生成回路が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特許第３６０４６７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
擬似乱数は計算によって生成されるため、シード及びアルゴリズムが同一であれば、生成される擬似乱数の値も同一となる。そのため、同一のシード及びアルゴリズムを用いて生成した擬似乱数を相互認証等の認証コードとして使用する場合には、第三者にシード及びアルゴリズムを見破られることにより、セキュリティを破られる可能性がある。従って、セキュリティの堅牢性を向上するためには、再現不可能性を有する乱数を簡易に生成することが望まれる。
【０００７】
また、共通鍵暗号方式等を用いた暗号化通信では、第三者による鍵の解読を困難にすべく、通信毎に更新されるセッション鍵が共通鍵（又はその一部）として使用される。そして、セッション鍵としては、擬似乱数生成器によって生成した擬似乱数が使用されることが一般的である。擬似乱数生成器において同一のシード及びアルゴリズムを用いて擬似乱数を生成すると、生成される擬似乱数は周期性を持つことになる。従って、その周期性が利用されて第三者にセッション鍵が解読されることを回避するためには、再現不可能性を有する乱数を用いたセッション鍵を簡易に生成することが望まれる。
【０００８】
本発明はかかる事情に鑑みて成されたものであり、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることを目的とする。また、ホスト装置と半導体記憶装置との間で鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いたセッション鍵を簡易に生成することが可能で、かつセキュリティ強度が向上されたデータ処理システム及び半導体記憶装置を得ることを目的とする。
【課題を解決するための手段】
【０００９】
本発明の第１の態様に係る半導体記憶装置は、乱数の生成に用いる乱数生成用データが記憶されたメモリアレイと、乱数生成用データを更新するデータ更新部と、制御部と、を備え、前記データ更新部は、前記メモリアレイから読み出した第１の乱数生成用データを更新することにより、当該第１の乱数生成用データに基づいて生成される第１の乱数より後に使用される第２の乱数を生成するための第２の乱数生成用データを生成し、前記制御部は、前記第２の乱数生成用データを前記メモリアレイに書き込むことを特徴とするものである。
【００１０】
第１の態様に係る半導体記憶装置によれば、データ更新部は、メモリアレイから読み出した第１の乱数生成用データを更新することにより、第１の乱数より後に使用される第２の乱数を生成するための第２の乱数生成用データを生成し、制御部は、第２の乱数生成用データをメモリアレイに書き込む。従って、メモリアレイに記憶されている乱数生成用データが新たな乱数生成用データに更新されるため、更新される乱数生成用データに基づいて乱数を生成することができる。その結果、再現不可能性を有する乱数を簡易に生成することが可能となる。
【００１１】
本発明の第２の態様に係る半導体記憶装置は、第１の態様に係る半導体記憶装置において特に、前記データ更新部は、前記第１の乱数生成用データとは異なる前記第２の乱数生成用データを生成することを特徴とするものである。
【００１２】
第２の態様に係る半導体記憶装置によれば、データ更新部は、第１の乱数生成用データとは異なる第２の乱数生成用データを生成する。従って、第１の乱数生成用データに基づいて生成される第１の乱数と、第２の乱数生成用データに基づいて生成される第２の乱数とを、互いに異ならせることができるため、再現不可能性を有する乱数を生成することが可能となる。
【００１３】
本発明の第３の態様に係る半導体記憶装置は、第１又は第２の態様に係る半導体記憶装置において特に、前記メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する乱数生成部をさらに備えることを特徴とするものである。
【００１４】
第３の態様に係る半導体記憶装置によれば、乱数生成部は、メモリアレイから読み出した乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する。このように、更新される乱数生成用データをシードとして用いた乱数生成アルゴリズムによって乱数を生成することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイから読み出した乱数生成用データをそのまま乱数として使用するのではなく、当該乱数生成用データを用いた乱数生成アルゴリズムによって乱数を生成するため、メモリアレイに記憶されている乱数生成用データの一部が破損又は欠損している場合等であっても、生成される乱数の真性度を担保することが可能となる。
【００１５】
本発明の第４の態様に係る半導体記憶装置は、第３の態様に係る半導体記憶装置において特に、前記乱数生成部による乱数の生成処理と、前記データ更新部による乱数生成用データの更新処理及び前記制御部による乱数生成用データの書き込み処理とは、並行して実行されることを特徴とするものである。
【００１６】
第４の態様に係る半導体記憶装置によれば、乱数生成部による乱数の生成処理と、データ更新部による乱数生成用データの更新処理及び制御部による乱数生成用データの書き込み処理とは、並行して実行される。従って、乱数の生成処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの書き込み処理が完了した後に乱数の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
【００１７】
本発明の第５の態様に係る半導体記憶装置は、第１又は第２の態様に係る半導体記憶装置において特に、前記メモリアレイには、前記乱数生成用データとして乱数が記憶されていることを特徴とするものである。
【００１８】
第５の態様に係る半導体記憶装置によれば、メモリアレイには、乱数生成用データとして乱数が記憶されている。従って、更新される乱数生成用データを乱数として使用することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイから読み出した乱数生成用データをそのまま乱数として使用することができ、当該乱数生成用データをシードとして用いた乱数生成処理が不要であるため、乱数を生成するための所要時間を短縮することが可能となる。
【００１９】
本発明の第６の態様に係る半導体記憶装置は、第５の態様に係る半導体記憶装置において特に、前記データ更新部は、前記第１の乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の乱数生成用データを生成する乱数生成器を有することを特徴とするものである。
【００２０】
第６の態様に係る半導体記憶装置によれば、乱数生成器は、第１の乱数生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、第２の乱数生成用データを生成する。このように、第１の乱数生成用データをシードとして用いた乱数生成アルゴリズムによって第２の乱数生成用データを生成することにより、乱数として使用される乱数生成用データの真性度を担保することが可能となる。
【００２１】
本発明の第７の態様に係る半導体記憶装置は、第１〜第６のいずれか一つの態様に係る半導体記憶装置において特に、前記制御部は、前記第２の乱数生成用データが前記メモリアレイに正しく書き込まれるまで、乱数生成用データの書き込み処理を繰り返し実行することを特徴とするものである。
【００２２】
第７の態様に係る半導体記憶装置によれば、制御部は、第２の乱数生成用データがメモリアレイに正しく書き込まれるまで、乱数生成用データの書き込み処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの書き込み処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの書き込み処理を再開することにより、第２の乱数生成用データをメモリアレイに正しく書き込むことができる。その結果、次に乱数を生成する場合には乱数生成部は第２の乱数生成用データに基づいて乱数を生成することができるため、乱数の再現不可能性を担保することが可能となる。
【００２３】
本発明の第８の態様に係る半導体記憶装置は、第１〜第７のいずれか一つの態様に係る半導体記憶装置において特に、前記メモリアレイには、乱数生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されていることを特徴とするものである。
【００２４】
第８の態様に係る半導体記憶装置によれば、メモリアレイには、乱数生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている。従って、初回の乱数生成においても、半導体記憶装置毎に異なる乱数を乱数生成部によって生成することが可能となる。
【００２５】
本発明の第９の態様に係る半導体記憶装置は、第１〜第８のいずれか一つの態様に係る半導体記憶装置において特に、乱数生成用データは、前記メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶されることを特徴とするものである。
【００２６】
第９の態様に係る半導体記憶装置によれば、乱数生成用データは、メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶される。従って、攻撃者がホスト装置を介してメモリアレイから乱数生成用データを読み出すことや、メモリアレイに記憶されている乱数生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
【００２７】
本発明の第１０の態様に係る半導体記憶装置は、第１〜第９のいずれか一つの態様に係る半導体記憶装置において特に、前記半導体記憶装置の電源が投入されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
【００２８】
第１０の態様に係る半導体記憶装置によれば、半導体記憶装置の電源が投入されると、データ更新部による乱数生成用データの更新処理と制御部による乱数生成用データの書き込み処理とが自動的に実行される。従って、電源投入後の最初の乱数生成においては、自動更新によって書き込まれた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
【００２９】
本発明の第１１の態様に係る半導体記憶装置は、第１〜第１０のいずれか一つの態様に係る半導体記憶装置において特に、前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による乱数生成用データの更新処理と前記制御部による乱数生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
【００３０】
第１１の態様に係る半導体記憶装置によれば、半導体記憶装置の電源遮断が要求されると、データ更新部による乱数生成用データの更新処理と制御部による乱数生成用データの書き込み処理とが自動的に実行される。従って、半導体記憶装置の電源が再投入された後の最初の乱数生成においては、電源遮断前の自動更新によって書き込まれた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
【００３１】
本発明の第１２の態様に係るデータ処理システムは、ホスト装置と、前記ホスト装置との間で鍵を交換することにより、前記ホスト装置から受信したコマンドを当該鍵を用いて復号し、前記ホスト装置に送信するデータを当該鍵を用いて暗号化する半導体記憶装置と、を備え、前記半導体記憶装置は、前記ホスト装置との間で送受信するデータと、鍵の生成に用いる鍵生成用データとが記憶されたメモリアレイと、鍵を生成する鍵生成部と、鍵生成用データを更新するデータ更新部と、制御部と、を有し、前記半導体記憶装置が前記ホスト装置から鍵要求を受けた場合、前記鍵生成部は、その時点で前記メモリアレイに記憶されている第１の鍵生成用データに基づいて、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成し、前記制御部は、前記鍵生成部によって生成された鍵を暗号化して前記ホスト装置に送信し、前記データ更新部は、前記第１の鍵生成用データを更新することにより、今回より後の鍵要求に対応して前記ホスト装置に送信する鍵を生成するための第２の鍵生成用データを生成し、前記制御部は、前記第２の鍵生成用データを前記メモリアレイに書き込むことを特徴とするものである。
【００３２】
第１２の態様に係るデータ処理システムによれば、半導体記憶装置がホスト装置から鍵要求を受けた場合、データ更新部は、第１の鍵生成用データを更新することにより、今回より後の鍵要求に対応してホスト装置に送信する鍵を生成するための第２の鍵生成用データを生成し、制御部は、データ更新部によって生成された第２の鍵生成用データをメモリアレイに書き込む。従って、半導体記憶装置がホスト装置から鍵要求を受ける度に、メモリアレイに記憶されている鍵生成用データが新たな鍵生成用データに更新され、鍵生成部は、毎回更新される鍵生成用データに基づいて鍵を生成する。その結果、ホスト装置と半導体記憶装置との間で共通鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた共通鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
【００３３】
本発明の第１３の態様に係るデータ処理システムは、第１２の態様に係るデータ処理システムにおいて特に、前記データ更新部は、前記第１の鍵生成用データとは異なる前記第２の鍵生成用データを生成することを特徴とするものである。
【００３４】
第１３の態様に係るデータ処理システムによれば、データ更新部は、第１の鍵生成用データとは異なる第２の鍵生成用データを生成する。従って、第１の鍵生成用データに基づいて生成される第１の鍵と、第２の鍵生成用データに基づいて生成される第２の鍵とを、互いに異ならせることができるため、再現不可能性を有する乱数を用いた共通鍵を生成することが可能となる。
【００３５】
本発明の第１４の態様に係るデータ処理システムは、第１２又は第１３の態様に係るデータ処理システムにおいて特に、前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応して前記ホスト装置に送信する鍵を生成する乱数生成器を有することを特徴とするものである。
【００３６】
第１４の態様に係るデータ処理システムによれば、乱数生成器は、メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応してホスト装置に送信する鍵を生成する。このように、毎回更新される鍵生成用データをシードとして用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま共通鍵として使用するのではなく、当該鍵生成用データを用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用するため、メモリアレイに記憶されている鍵生成用データの一部が破損又は欠損している場合等であっても、生成される共通鍵の真性度を担保することが可能となる。
【００３７】
本発明の第１５の態様に係るデータ処理システムは、第１４の態様に係るデータ処理システムにおいて特に、前記鍵生成部による鍵の生成処理及び前記制御部による鍵の送信処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行されることを特徴とするものである。
【００３８】
第１５の態様に係るデータ処理システムによれば、鍵生成部による鍵の生成処理及び制御部による鍵の送信処理と、データ更新部による鍵生成用データの更新処理及び制御部による鍵生成用データの書き込み処理とは、並行して実行される。従って、鍵の送信処理が完了した後に鍵生成用データの更新処理を開始する場合や、鍵生成用データの書き込み処理が完了した後に鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
【００３９】
本発明の第１６の態様に係るデータ処理システムは、第１２又は第１３の態様に係るデータ処理システムにおいて特に、前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データを、今回の鍵要求に対応して前記ホスト装置に送信する鍵として生成することを特徴とするものである。
【００４０】
第１６の態様に係るデータ処理システムによれば、鍵生成部は、メモリアレイから読み出した鍵生成用データを、今回の鍵要求に対応してホスト装置に送信する鍵として生成する。このように、毎回更新される鍵生成用データを共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま共通鍵として使用することができ、当該鍵生成用データをシードとして用いた乱数生成処理が不要であるため、ホスト装置から鍵要求を受けてからホスト装置に共通鍵を送信するまでの所要時間を短縮することが可能となる。
【００４１】
本発明の第１７の態様に係るデータ処理システムは、第１６の態様に係るデータ処理システムにおいて特に、前記データ更新部は、前記メモリアレイから読み出した前記第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の鍵生成用データを生成する乱数生成器を有することを特徴とするものである。
【００４２】
第１７の態様に係るデータ処理システムによれば、乱数生成器は、メモリアレイから読み出した第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、第２の鍵生成用データを生成する。このように、第１の鍵生成用データをシードとして用いた乱数生成アルゴリズムによって第２の鍵生成用データを生成することにより、共通鍵として使用される鍵生成用データの真性度を担保することが可能となる。
【００４３】
本発明の第１８の態様に係るデータ処理システムは、第１２〜第１７のいずれか一つの態様に係るデータ処理システムにおいて特に、前記制御部は、前記第２の鍵生成用データが前記メモリアレイに正しく書き込まれるまで、鍵生成用データの書き込み処理を繰り返し実行することを特徴とするものである。
【００４４】
第１８の態様に係るデータ処理システムによれば、制御部は、第２の鍵生成用データがメモリアレイに正しく書き込まれるまで、鍵生成用データの書き込み処理を繰り返し実行する。従って、意図しない電源断によって鍵生成用データの書き込み処理が未完了のまま中断した場合等であっても、電源の再投入後に鍵生成用データの書き込み処理を再開することにより、第２の鍵生成用データをメモリアレイに正しく書き込むことができる。その結果、ホスト装置からの次回の鍵要求に対して鍵生成部は第２の鍵生成用データに基づいて鍵を生成することができるため、鍵の再現不可能性を担保することが可能となる。
【００４５】
本発明の第１９の態様に係るデータ処理システムは、第１２〜第１８のいずれか一つの態様に係るデータ処理システムにおいて特に、前記メモリアレイには、鍵生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されていることを特徴とするものである。
【００４６】
第１９の態様に係るデータ処理システムによれば、メモリアレイには、鍵生成用データの初期値として、半導体記憶装置毎に異なる固有値が記憶されている。従って、ホスト装置からの初回の鍵要求に対しても、半導体記憶装置毎に異なる鍵を鍵生成部によって生成することが可能となる。
【００４７】
本発明の第２０の態様に係るデータ処理システムは、第１２〜第１９のいずれか一つの態様に係るデータ処理システムにおいて特に、鍵生成用データは、前記メモリアレイの記憶領域のうち、前記ホスト装置からのアクセスが禁止されている領域に記憶されることを特徴とするものである。
【００４８】
第２０の態様に係るデータ処理システムによれば、鍵生成用データは、メモリアレイの記憶領域のうち、ホスト装置からのアクセスが禁止されている領域に記憶される。従って、攻撃者がホスト装置を介してメモリアレイから鍵生成用データを読み出すことや、メモリアレイに記憶されている鍵生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
【００４９】
本発明の第２１の態様に係るデータ処理システムは、第１２〜第２０のいずれか一つの態様に係るデータ処理システムにおいて特に、前記半導体記憶装置の電源が投入されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
【００５０】
第２１の態様に係るデータ処理システムによれば、半導体記憶装置の電源が投入されると、データ更新部による鍵生成用データの更新処理と制御部による鍵生成用データの書き込み処理とが自動的に実行される。従って、電源投入後の最初の鍵要求に対しては、自動更新によって書き込まれた新たな鍵生成用データに基づいて生成された鍵を、ホスト装置に送信することが可能となる。
【００５１】
本発明の第２２の態様に係るデータ処理システムは、第１２〜第２１のいずれか一つの態様に係るデータ処理システムにおいて特に、前記半導体記憶装置の電源遮断が要求されると、前記データ更新部による鍵生成用データの更新処理と前記制御部による鍵生成用データの書き込み処理とが自動的に実行されることを特徴とするものである。
【００５２】
第２２の態様に係るデータ処理システムによれば、半導体記憶装置の電源遮断が要求されると、データ更新部による鍵生成用データの更新処理と制御部による鍵生成用データの書き込み処理とが自動的に実行される。従って、半導体記憶装置の電源が再投入された後の最初の鍵要求に対しては、電源遮断前の自動更新によって書き込まれた新たな鍵生成用データに基づいて生成された鍵を、ホスト装置に送信することが可能となる。
【００５３】
本発明の第２３の態様に係る半導体記憶装置は、鍵の生成に用いる鍵生成用データが記憶されたメモリアレイと、鍵を生成する鍵生成部と、鍵生成用データを更新するデータ更新部と、制御部と、を備え、前記鍵生成部は、前記メモリアレイに記憶されている第１の鍵生成用データに基づいて第１の鍵を生成し、前記データ更新部は、前記第１の鍵生成用データを更新することにより、前記第１の鍵より後に使用される第２の鍵を生成するための第２の鍵生成用データを生成し、前記制御部は、前記第２の鍵生成用データを前記メモリアレイに書き込むことを特徴とするものである。
【００５４】
第２３の態様に係る半導体記憶装置によれば、データ更新部は、第１の鍵生成用データを更新することにより、第１の鍵より後に使用される第２の鍵を生成するための第２の鍵生成用データを生成し、制御部は、データ更新部によって生成された第２の鍵生成用データをメモリアレイに書き込む。従って、メモリアレイに記憶されている鍵生成用データが新たな鍵生成用データに更新され、次回の鍵生成において鍵生成部は、更新された鍵生成用データに基づいて鍵を生成する。その結果、再現不可能性を有する乱数を用いた鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
【００５５】
本発明の第２４の態様に係る半導体記憶装置は、第２３の態様に係る半導体記憶装置において特に、前記データ更新部は、前記第１の鍵生成用データとは異なる前記第２の鍵生成用データを生成することを特徴とするものである。
【００５６】
第２４の態様に係る半導体記憶装置によれば、データ更新部は、第１の鍵生成用データとは異なる第２の鍵生成用データを生成する。従って、第１の鍵生成用データに基づいて生成される第１の鍵と、第２の鍵生成用データに基づいて生成される第２の鍵とを、互いに異ならせることができるため、再現不可能性を有する乱数を用いた鍵を生成することが可能となる。
【００５７】
本発明の第２５の態様に係る半導体記憶装置は、第２３又は第２４の態様に係る半導体記憶装置において特に、前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する乱数生成器をさらに備えることを特徴とするものである。
【００５８】
第２５の態様に係る半導体記憶装置によれば、乱数生成器は、メモリアレイから読み出した鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、鍵を生成する。このように、更新された鍵生成用データをシードとして用いた乱数生成アルゴリズムによって生成した乱数を鍵として使用することにより、鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま鍵として使用するのではなく、当該鍵生成用データを用いた乱数生成アルゴリズムによって生成した乱数を鍵として使用するため、メモリアレイに記憶されている鍵生成用データの一部が破損又は欠損している場合等であっても、生成される鍵の真性度を担保することが可能となる。
【００５９】
本発明の第２６の態様に係る半導体記憶装置は、第２５の態様に係る半導体記憶装置において特に、前記鍵生成部による鍵の生成処理と、前記データ更新部による鍵生成用データの更新処理及び前記制御部による鍵生成用データの書き込み処理とは、並行して実行されることを特徴とするものである。
【００６０】
第２６の態様に係る半導体記憶装置によれば、鍵生成部による鍵の生成処理と、データ更新部による鍵生成用データの更新処理及び制御部による鍵生成用データの書き込み処理とは、並行して実行される。従って、鍵の送信処理が完了した後に鍵生成用データの更新処理を開始する場合や、鍵生成用データの書き込み処理が完了した後に鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
【００６１】
本発明の第２７の態様に係る半導体記憶装置は、第２３又は第２４の態様に係る半導体記憶装置において特に、前記鍵生成部は、前記メモリアレイから読み出した鍵生成用データを、鍵として生成することを特徴とするものである。
【００６２】
第２７の態様に係る半導体記憶装置によれば、鍵生成部は、メモリアレイから読み出した鍵生成用データを、鍵として生成する。このように、更新された鍵生成用データを鍵として使用することにより、鍵の真性度を担保することが可能となる。しかも、メモリアレイから読み出した鍵生成用データをそのまま鍵として使用することができ、当該鍵生成用データをシードとして用いた乱数生成処理が不要であるため、鍵の生成に要する所要時間を短縮することが可能となる。
【００６３】
本発明の第２８の態様に係る半導体記憶装置は、第２７の態様に係る半導体記憶装置において特に、前記データ更新部は、前記メモリアレイから読み出した前記第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、前記第２の鍵生成用データを生成する乱数生成器を有することを特徴とするものである。
【００６４】
第２８の態様に係る半導体記憶装置によれば、乱数生成器は、メモリアレイから読み出した第１の鍵生成用データをシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、第２の鍵生成用データを生成する。このように、第１の鍵生成用データをシードとして用いた乱数生成アルゴリズムによって第２の鍵生成用データを生成することにより、鍵として使用される鍵生成用データの真性度を担保することが可能となる。
【発明の効果】
【００６５】
本発明によれば、再現不可能性を有する乱数を簡易に生成することが可能な半導体記憶装置を得ることができる。また、ホスト装置と半導体記憶装置との間で鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた鍵を簡易に生成することが可能で、かつセキュリティ強度が向上されたデータ処理システム及び半導体記憶装置を得ることができる。
【図面の簡単な説明】
【００６６】
【図１】本発明の実施の形態に係るデータ処理システムの構成を概略的に示す図である。
【図２】本発明の実施の形態１に係る半導体記憶装置の構成を示す図である。
【図３】乱数生成部の構成を示す図である。
【図４】データ更新部の構成を示す図である。
【図５】本発明の実施の形態２に係る半導体記憶装置の構成を示す図である。
【図６】データ更新部の構成を示す図である。
【発明を実施するための形態】
【００６７】
以下、本発明の実施の形態について、図面を用いて詳細に説明する。なお、異なる図面において同一の符号を付した要素は、同一又は相応する要素を示すものとする。
【００６８】
図１は、本発明の実施の形態に係るデータ処理システム１００の構成を概略的に示す図である。データ処理システム１００は、ホスト装置１と半導体記憶装置２とを備えて構成されている。半導体記憶装置２は、例えば、ホスト装置１に着脱自在に接続可能なメモリカードである。データ処理システム１００は、ホスト装置１と半導体記憶装置２との間でセッション鍵としての共通鍵を交換することにより、両者間で送受信されるコマンドやデータの暗号化及び復号を行うセキュリティ方式（共通鍵暗号方式）を採用する。
【００６９】
＜実施の形態１＞
図２は、本発明の実施の形態１に係る半導体記憶装置２Ａの構成を示す図である。図２の接続関係で示すように、半導体記憶装置２Ａは、ホストインタフェース１１、暗号化・復号部１２、制御部１３、乱数生成部１４Ａ、データ更新部１５Ａ、メモリインタフェース１６、及びメモリアレイ１７を備えて構成されている。本実施の形態１では、乱数生成部１４Ａが鍵生成部として機能する。メモリアレイ１７は、例えばＮＡＮＤ型フラッシュメモリを用いて構成されている。但し、この例に限定されるものではなく、メモリアレイ１７はＮＯＲ型フラッシュメモリ等を用いて構成されていても良い。
【００７０】
メモリアレイ１７は、全記憶領域の一部に、ホスト装置１からのアクセスが禁止されている禁止領域２０を含んでいる。つまり、ホスト装置１は、メモリアレイ１７に対するデータの読み出し及び書き込みを行う際に、データの読み出し先及び書き込み先として禁止領域２０のアドレスを指定することができない。禁止領域２０には、乱数生成用データＸ（本実施の形態１ではシード）が記憶されている。メモリアレイ１７の全記憶領域のうち、禁止領域２０以外の領域には、ホスト装置１と半導体記憶装置２Ａとの間で送受信される任意のデータ（画像、音声、テキスト、コード、管理情報等）が記憶されている。
【００７１】
図３は、乱数生成部１４Ａの構成を示す図である。図３に示すように、乱数生成部１４Ａは乱数生成器２１を有している。乱数生成器２１は、禁止領域２０から読み出された乱数生成用データをシードとして用いて、擬似乱数生成アルゴリズム、ハッシュ関数、共通鍵方式の暗号化アルゴリズム、又は公開鍵方式の暗号化アルゴリズム等の任意の乱数生成アルゴリズム（又はその組合せ）によって、ディジタル乱数であるセッション鍵（共通鍵）を生成する。
【００７２】
図４は、データ更新部１５Ａの構成を示す図である。図４に示すように、データ更新部１５Ａはカウンタ２２を有している。カウンタ２２は、禁止領域２０から読み出された乱数生成用データをインクリメント又はデクリメントすることにより、更新後の乱数生成用データを生成する。図４に示した構成によると、カウンタ２２を用いた簡易な構成によって、乱数生成用データの更新処理を実現することが可能となる。なお、乱数生成部１４Ａと同様の乱数生成器を用いてデータ更新部１５Ａを構成しても良い。またこの場合には、乱数生成部１４Ａとデータ更新部１５Ａとで同一の乱数生成器を共用しても良い。
【００７３】
以下、図２〜４を参照して、本実施の形態１に係る半導体記憶装置２Ａの動作について説明する。
【００７４】
システムの電源が投入されると、まず制御部１３は、予め実装されている鍵Ｋ０を暗号化・復号部１２に設定（初期化）する。また、ホスト装置１においても、半導体記憶装置２Ａと共通の鍵Ｋ０が設定される。禁止領域２０には、システムの電源が前回遮断された際に禁止領域２０に記憶されていた最新の乱数生成用データＸ１が記憶されている。なお、半導体記憶装置２Ａの工場出荷時点では、乱数生成用データＸの初期値として、半導体記憶装置２Ａ毎に異なる固有値が禁止領域２０に記憶されている。
【００７５】
例えばメモリアレイ１７に記憶されているデータをホスト装置１が読み出す前に、ホスト装置１は、共通鍵を更新するために半導体記憶装置２Ａに対して鍵要求を送信する。具体的にホスト装置１は、鍵の更新を要求するための乱数生成コマンドＣ０Ａを生成した後、当該乱数生成コマンドＣ０Ａを鍵Ｋ０を用いて暗号化することにより、暗号化乱数生成コマンドＣ０Ａを生成する。そして、当該暗号化乱数生成コマンドＣ０Ａを、半導体記憶装置２Ａに送信する。
【００７６】
暗号化乱数生成コマンドＣ０Ａは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化乱数生成コマンドＣ０Ａを鍵Ｋ０を用いて復号し、復号後の乱数生成コマンドＣ０Ａを制御部１３に入力する。
【００７７】
次に制御部１３は、乱数生成コマンドＣ０Ａに基づいて、禁止領域２０から乱数生成用データＸ１を読み出すための読み出し要求Ｒ１を生成する。
【００７８】
読み出し要求Ｒ１はメモリインタフェース１６を介してメモリアレイ１７に入力され、その時点で禁止領域２０に記憶されている乱数生成用データＸ１がメモリアレイ１７から読み出される。
【００７９】
乱数生成用データＸ１は、メモリインタフェース１６を介して乱数生成部１４Ａ及びデータ更新部１５Ａに入力される。
【００８０】
次に乱数生成部１４Ａは、乱数生成用データＸ１に基づいて、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ１を生成する。具体的に、乱数生成器２１は、乱数生成用データＸ１をシードとして用いて、上記擬似乱数生成アルゴリズム等の乱数生成アルゴリズムによって乱数を生成することにより、セッション鍵Ｋ１を生成する。乱数生成部１４Ａは、乱数生成用データＸ１に基づいて生成したセッション鍵Ｋ１を、制御部１３に入力する。次に制御部１３は、セッション鍵Ｋ１を暗号化・復号部１２に入力する。次に暗号化・復号部１２は、セッション鍵Ｋ１を鍵Ｋ０を用いて暗号化する。次に制御部１３は、暗号化・復号部１２によって生成された暗号化セッション鍵Ｋ１を、ホストインタフェース１１を介してホスト装置１に送信する。
【００８１】
また、データ更新部１５Ａは、乱数生成用データＸ１を更新することにより、次回（又はそれ以降。以下同様）の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ２を生成するための乱数生成用データＸ２を生成する。具体的に、カウンタ２２は、乱数生成用データＸ１をインクリメント又はデクリメントすることにより、乱数生成用データＸ１とは異なる乱数生成用データＸ２を生成する。データ更新部１５Ａは、更新後の乱数生成用データＸ２を、制御部１３に入力する。次に制御部１３は、禁止領域２０に乱数生成用データＸ２を書き込むための書き込み要求Ｗ２を生成する。書き込み要求Ｗ２はメモリインタフェース１６を介してメモリアレイ１７に入力され、禁止領域２０に記憶されている乱数生成用データＸ１が、更新後の乱数生成用データＸ２によって上書きされる。ここで制御部１３は、禁止領域２０に記憶されている乱数生成用データＸ１が乱数生成用データＸ２によって正しく上書きされるまで、乱数生成用データＸ２の上書き処理を繰り返し実行する。具体的に制御部１３は、上書き処理の完了後に乱数生成用データＸ２を禁止領域２０から読み出し、当該乱数生成用データＸ２の内容が、データ更新部１５Ａから入力された乱数生成用データＸ２の内容と同一であるか否かを判定（ベリファイ）する。そして、両データの内容が同一となるまで乱数生成用データＸ２の上書き処理を繰り返し実行する。なお、データ更新部１５Ａによって更新される乱数生成用データの値としては、過去に使用された値を回避して常に未使用の値を採用するのが望ましいが、カウンタ値に上限がある場合等には過去に使用された値を採用しても良い。また、メモリアレイ１７の同一領域に対するアクセス集中に起因する不良発生を回避すべく、更新後の乱数生成用データを書き込むための領域を禁止領域２０内に複数箇所設けても良い。
【００８２】
なお、乱数生成部１４Ａによるセッション鍵Ｋ１の生成処理及び制御部１３によるホスト装置１へのセッション鍵Ｋ１の送信処理と、データ更新部１５Ａによる乱数生成用データＸ２の更新処理及び制御部１３による乱数生成用データＸ２の上書き処理とは、並行して実行される。つまり、セッション鍵Ｋ１の生成処理及び乱数生成用データＸ２の更新処理は、同時に実行が開始される。従って、例えば乱数生成用データＸ２の上書き処理に伴う書き込みレイテンシ期間が長い場合には、セッション鍵Ｋ１の生成処理及びセッション鍵Ｋ１の送信処理は当該書き込みレイテンシ期間内に実行されることとなる。
【００８３】
次にホスト装置１は、暗号化セッション鍵Ｋ１を鍵Ｋ０を用いて復号することにより、更新後のセッション鍵Ｋ１を取得する。
【００８４】
次にホスト装置１は、セッション鍵Ｋ１の設定（初期化）を要求するための初期化コマンドＣ０Ｂを生成した後、当該初期化コマンドＣ０Ｂを鍵Ｋ０を用いて暗号化することにより、暗号化初期化コマンドＣ０Ｂを生成する。そして、当該暗号化初期化コマンドＣ０Ｂを、半導体記憶装置２Ａに送信する。
【００８５】
暗号化初期化コマンドＣ０Ｂは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化初期化コマンドＣ０Ｂを鍵Ｋ０を用いて復号し、復号後の初期化コマンドＣ０Ｂを制御部１３に入力する。
【００８６】
次に制御部１３は、初期化コマンドＣ０Ｂに基づく設定信号Ｄ１によって、暗号化・復号部１２にセッション鍵Ｋ１を設定する。また、ホスト装置１においても、半導体記憶装置２Ａと共通のセッション鍵Ｋ１が設定される。以上の処理により、ホスト装置１及び半導体記憶装置２Ａの共通鍵が鍵Ｋ０からセッション鍵Ｋ１に更新される。その後、セッション鍵Ｋ１を用いて、ホスト装置１と半導体記憶装置２Ａとの間でコマンド及びデータの暗号化通信が実行される。
【００８７】
その後、セッション鍵を再更新して暗号化通信を行う場合には、ホスト装置１は、共通鍵を更新するために半導体記憶装置２Ａに対して鍵要求を送信する。具体的にホスト装置１は、暗号化乱数生成コマンドＣ１Ａを半導体記憶装置２Ａに送信する。
【００８８】
暗号化乱数生成コマンドＣ１Ａは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化乱数生成コマンドＣ１Ａをセッション鍵Ｋ１を用いて復号し、復号後の乱数生成コマンドＣ１Ａを制御部１３に入力する。
【００８９】
次に制御部１３は、乱数生成コマンドＣ１Ａに基づいて、禁止領域２０から乱数生成用データＸ２を読み出すための読み出し要求Ｒ２を生成する。
【００９０】
読み出し要求Ｒ２はメモリインタフェース１６を介してメモリアレイ１７に入力され、その時点で禁止領域２０に記憶されている乱数生成用データＸ２がメモリアレイ１７から読み出される。
【００９１】
乱数生成用データＸ２は、メモリインタフェース１６を介して乱数生成部１４Ａ及びデータ更新部１５Ａに入力される。
【００９２】
次に乱数生成部１４Ａは、乱数生成用データＸ２に基づいて、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ２を生成する。乱数生成部１４Ａは、乱数生成用データＸ２に基づいて生成したセッション鍵Ｋ２を、制御部１３に入力する。次に制御部１３は、セッション鍵Ｋ２を暗号化・復号部１２に入力する。次に暗号化・復号部１２は、セッション鍵Ｋ２をセッション鍵Ｋ１を用いて暗号化する。次に制御部１３は、暗号化・復号部１２によって生成された暗号化セッション鍵Ｋ２を、ホストインタフェース１１を介してホスト装置１に送信する。
【００９３】
また、データ更新部１５Ａは、乱数生成用データＸ２を更新することにより、次回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ３を生成するための乱数生成用データＸ３を生成する。データ更新部１５Ａは、更新後の乱数生成用データＸ３を、制御部１３に入力する。次に制御部１３は、禁止領域２０に乱数生成用データＸ３を書き込むための書き込み要求Ｗ３を生成する。書き込み要求Ｗ３はメモリインタフェース１６を介してメモリアレイ１７に入力され、禁止領域２０に記憶されている乱数生成用データＸ２が、更新後の乱数生成用データＸ３によって上書きされる。ここで制御部１３は、禁止領域２０に記憶されている乱数生成用データＸ２が乱数生成用データＸ３によって正しく上書きされるまで、乱数生成用データＸ３の上書き処理を繰り返し実行する。
【００９４】
次にホスト装置１は、暗号化セッション鍵Ｋ２をセッション鍵Ｋ１を用いて復号することにより、更新後のセッション鍵Ｋ２を取得する。
【００９５】
次にホスト装置１は、セッション鍵Ｋ２の設定（初期化）を要求するための初期化コマンドＣ１Ｂを生成した後、当該初期化コマンドＣ１Ｂをセッション鍵Ｋ１を用いて暗号化することにより、暗号化初期化コマンドＣ１Ｂを生成する。そして、当該暗号化初期化コマンドＣ１Ｂを、半導体記憶装置２Ａに送信する。
【００９６】
暗号化初期化コマンドＣ１Ｂは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化初期化コマンドＣ１Ｂをセッション鍵Ｋ１を用いて復号し、復号後の初期化コマンドＣ１Ｂを制御部１３に入力する。
【００９７】
次に制御部１３は、初期化コマンドＣ１Ｂに基づく設定信号Ｄ２によって、暗号化・復号部１２にセッション鍵Ｋ２を設定する。また、ホスト装置１においても、半導体記憶装置２Ａと共通のセッション鍵Ｋ２が設定される。以上の処理により、ホスト装置１及び半導体記憶装置２Ａの共通鍵がセッション鍵Ｋ１からセッション鍵Ｋ２に更新される。その後、セッション鍵Ｋ２を用いて、ホスト装置１と半導体記憶装置２Ａとの間でコマンド及びデータの暗号化通信が実行される。
【００９８】
以降は同様に、ホスト装置１から半導体記憶装置２Ａに鍵要求が送信される度に、ホスト装置１及び半導体記憶装置２Ａにおいて共通鍵が更新される。
【００９９】
＜実施の形態２＞
図５は、本発明の実施の形態２に係る半導体記憶装置２Ｂの構成を示す図である。図５の接続関係で示すように、半導体記憶装置２Ｂは、ホストインタフェース１１、暗号化・復号部１２、制御部１３、データ更新部１５Ｂ、メモリインタフェース１６、及びメモリアレイ１７を備えて構成されている。本実施の形態２では、データ更新部１５Ｂが鍵生成部として機能する。メモリアレイ１７の禁止領域２０には、乱数生成用データＹ（本実施の形態２では乱数）が記憶されている。
【０１００】
図６は、データ更新部１５Ｂの構成を示す図である。図６に示すように、データ更新部１５Ｂは乱数生成器２３を有している。乱数生成器２３は、禁止領域２０から読み出された乱数生成用データをシードとして用いて、擬似乱数生成アルゴリズム、ハッシュ関数、共通鍵方式の暗号化アルゴリズム、又は公開鍵方式の暗号化アルゴリズム等の任意の乱数生成アルゴリズム（又はその組合せ）によって、ディジタル乱数である新たな乱数生成用データを生成する。また、データ更新部１５Ｂは、禁止領域２０から読み出された乱数生成用データを、そのままセッション鍵として出力する。
【０１０１】
以下、図５，６を参照して、本実施の形態２に係る半導体記憶装置２Ｂの動作について説明する。
【０１０２】
システムの電源が投入されると、まず制御部１３は、予め実装されている鍵Ｋ０を暗号化・復号部１２に設定（初期化）する。また、ホスト装置１においても、半導体記憶装置２Ｂと共通の鍵Ｋ０が設定される。禁止領域２０には、システムの電源が前回遮断された際に禁止領域２０に記憶されていた最新の乱数生成用データＹ１が記憶されている。なお、半導体記憶装置２Ｂの工場出荷時点では、乱数生成用データＹの初期値として、半導体記憶装置２Ｂ毎に異なる固有値が禁止領域２０に記憶されている。
【０１０３】
例えばメモリアレイ１７に記憶されているデータをホスト装置１が読み出す前に、ホスト装置１は、共通鍵を更新するために半導体記憶装置２Ｂに対して鍵要求を送信する。具体的にホスト装置１は、鍵の更新を要求するための乱数生成コマンドＣ０Ａを生成した後、当該乱数生成コマンドＣ０Ａを鍵Ｋ０を用いて暗号化することにより、暗号化乱数生成コマンドＣ０Ａを生成する。そして、当該暗号化乱数生成コマンドＣ０Ａを、半導体記憶装置２Ｂに送信する。
【０１０４】
暗号化乱数生成コマンドＣ０Ａは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化乱数生成コマンドＣ０Ａを鍵Ｋ０を用いて復号し、復号後の乱数生成コマンドＣ０Ａを制御部１３に入力する。
【０１０５】
次に制御部１３は、乱数生成コマンドＣ０Ａに基づいて、禁止領域２０から乱数生成用データＹ１を読み出すための読み出し要求Ｒ１を生成する。
【０１０６】
読み出し要求Ｒ１はメモリインタフェース１６を介してメモリアレイ１７に入力され、その時点で禁止領域２０に記憶されている乱数生成用データＹ１がメモリアレイ１７から読み出される。
【０１０７】
乱数生成用データＹ１は、メモリインタフェース１６を介してデータ更新部１５Ｂに入力される。
【０１０８】
次にデータ更新部１５Ｂは、乱数生成用データＹ１に基づいて、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ１を生成する。本実施の形態２では乱数生成用データＹ１自身が乱数であるため、データ更新部１５Ｂは、メモリアレイ１７から読み出した乱数生成用データＹ１をそのまま、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ１として出力する。データ更新部１５Ｂは、乱数生成用データＹ１をセッション鍵Ｋ１として、制御部１３に入力する。次に制御部１３は、セッション鍵Ｋ１を暗号化・復号部１２に入力する。次に暗号化・復号部１２は、セッション鍵Ｋ１を鍵Ｋ０を用いて暗号化する。次に制御部１３は、暗号化・復号部１２によって生成された暗号化セッション鍵Ｋ１を、ホストインタフェース１１を介してホスト装置１に送信する。
【０１０９】
また、データ更新部１５Ｂは、乱数生成用データＹ１を更新することにより、次回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ２を生成するための乱数生成用データＹ２を生成する。具体的に、乱数生成器２３は、乱数生成用データＹ１をシードとして用いて、上記擬似乱数生成アルゴリズム等の乱数生成アルゴリズムによって新たな乱数生成用データＹ２を生成する。データ更新部１５Ｂは、更新後の乱数生成用データＹ２を、制御部１３に入力する。次に制御部１３は、禁止領域２０に乱数生成用データＹ２を書き込むための書き込み要求Ｗ２を生成する。書き込み要求Ｗ２はメモリインタフェース１６を介してメモリアレイ１７に入力され、禁止領域２０に記憶されている乱数生成用データＹ１が、更新後の乱数生成用データＹ２によって上書きされる。ここで制御部１３は、禁止領域２０に記憶されている乱数生成用データＹ１が乱数生成用データＹ２によって正しく上書きされるまで、乱数生成用データＹ２の上書き処理を繰り返し実行する。
【０１１０】
次にホスト装置１は、暗号化セッション鍵Ｋ１を鍵Ｋ０を用いて復号することにより、更新後のセッション鍵Ｋ１を取得する。
【０１１１】
次にホスト装置１は、セッション鍵Ｋ１の設定（初期化）を要求するための初期化コマンドＣ０Ｂを生成した後、当該初期化コマンドＣ０Ｂを鍵Ｋ０を用いて暗号化することにより、暗号化初期化コマンドＣ０Ｂを生成する。そして、当該暗号化初期化コマンドＣ０Ｂを、半導体記憶装置２Ｂに送信する。
【０１１２】
暗号化初期化コマンドＣ０Ｂは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化初期化コマンドＣ０Ｂを鍵Ｋ０を用いて復号し、復号後の初期化コマンドＣ０Ｂを制御部１３に入力する。
【０１１３】
次に制御部１３は、初期化コマンドＣ０Ｂに基づく設定信号Ｄ１によって、暗号化・復号部１２にセッション鍵Ｋ１を設定する。また、ホスト装置１においても、半導体記憶装置２Ｂと共通のセッション鍵Ｋ１が設定される。以上の処理により、ホスト装置１及び半導体記憶装置２Ｂの共通鍵が鍵Ｋ０からセッション鍵Ｋ１に更新される。その後、セッション鍵Ｋ１を用いて、ホスト装置１と半導体記憶装置２Ｂとの間でコマンド及びデータの暗号化通信が実行される。
【０１１４】
その後、セッション鍵を再更新して暗号化通信を行う場合には、ホスト装置１は、共通鍵を更新するために半導体記憶装置２Ｂに対して鍵要求を送信する。具体的にホスト装置１は、暗号化乱数生成コマンドＣ１Ａを半導体記憶装置２Ｂに送信する。
【０１１５】
暗号化乱数生成コマンドＣ１Ａは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化乱数生成コマンドＣ１Ａをセッション鍵Ｋ１を用いて復号し、復号後の乱数生成コマンドＣ１Ａを制御部１３に入力する。
【０１１６】
次に制御部１３は、乱数生成コマンドＣ１Ａに基づいて、禁止領域２０から乱数生成用データＹ２を読み出すための読み出し要求Ｒ２を生成する。
【０１１７】
読み出し要求Ｒ２はメモリインタフェース１６を介してメモリアレイ１７に入力され、その時点で禁止領域２０に記憶されている乱数生成用データＹ２がメモリアレイ１７から読み出される。
【０１１８】
乱数生成用データＹ２は、メモリインタフェース１６を介してデータ更新部１５Ｂに入力される。
【０１１９】
次にデータ更新部１５Ｂは、乱数生成用データＹ２に基づいて、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ２を生成する。データ更新部１５Ｂは、乱数生成用データＹ２に基づいて生成したセッション鍵Ｋ２を、制御部１３に入力する。次に制御部１３は、セッション鍵Ｋ２を暗号化・復号部１２に入力する。次に暗号化・復号部１２は、セッション鍵Ｋ２をセッション鍵Ｋ１を用いて暗号化する。次に制御部１３は、暗号化・復号部１２によって生成された暗号化セッション鍵Ｋ２を、ホストインタフェース１１を介してホスト装置１に送信する。
【０１２０】
また、データ更新部１５Ｂは、乱数生成用データＹ２を更新することにより、次回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ３を生成するための乱数生成用データＹ３を生成する。データ更新部１５Ｂは、更新後の乱数生成用データＹ３を、制御部１３に入力する。次に制御部１３は、禁止領域２０に乱数生成用データＹ３を書き込むための書き込み要求Ｗ３を生成する。書き込み要求Ｗ３はメモリインタフェース１６を介してメモリアレイ１７に入力され、禁止領域２０に記憶されている乱数生成用データＹ２が、更新後の乱数生成用データＹ３によって上書きされる。ここで制御部１３は、禁止領域２０に記憶されている乱数生成用データＹ２が乱数生成用データＹ３によって正しく上書きされるまで、乱数生成用データＹ３の上書き処理を繰り返し実行する。
【０１２１】
次にホスト装置１は、暗号化セッション鍵Ｋ２をセッション鍵Ｋ１を用いて復号することにより、更新後のセッション鍵Ｋ２を取得する。
【０１２２】
次にホスト装置１は、セッション鍵Ｋ２の設定（初期化）を要求するための初期化コマンドＣ１Ｂを生成した後、当該初期化コマンドＣ１Ｂをセッション鍵Ｋ１を用いて暗号化することにより、暗号化初期化コマンドＣ１Ｂを生成する。そして、当該暗号化初期化コマンドＣ１Ｂを、半導体記憶装置２Ｂに送信する。
【０１２３】
暗号化初期化コマンドＣ１Ｂは、ホストインタフェース１１を介して暗号化・復号部１２に入力される。次に暗号化・復号部１２は、暗号化初期化コマンドＣ１Ｂをセッション鍵Ｋ１を用いて復号し、復号後の初期化コマンドＣ１Ｂを制御部１３に入力する。
【０１２４】
次に制御部１３は、初期化コマンドＣ１Ｂに基づく設定信号Ｄ２によって、暗号化・復号部１２にセッション鍵Ｋ２を設定する。また、ホスト装置１においても、半導体記憶装置２Ｂと共通のセッション鍵Ｋ２が設定される。以上の処理により、ホスト装置１及び半導体記憶装置２Ｂの共通鍵がセッション鍵Ｋ１からセッション鍵Ｋ２に更新される。その後、セッション鍵Ｋ２を用いて、ホスト装置１と半導体記憶装置２Ｂとの間でコマンド及びデータの暗号化通信が実行される。
【０１２５】
以降は同様に、ホスト装置１から半導体記憶装置２Ｂに鍵要求が送信される度に、ホスト装置１及び半導体記憶装置２Ｂにおいて共通鍵が更新される。
【０１２６】
＜変形例＞
上記実施の形態１，２では、半導体記憶装置２Ａ，２Ｂは、ホスト装置１から鍵要求を受けた時に、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理と制御部１３による乱数生成用データの上書き処理とを実行した。
【０１２７】
これに加えて、システムの電源が投入されると、電源投入の直後に乱数生成用データの更新処理及び上書き処理を自動的に（つまりホスト装置１からの乱数生成コマンドの受信を待つことなく）実行しても良い。
【０１２８】
また、これに加えて、システムの電源遮断が要求されると、電源遮断の直前に乱数生成用データの更新処理及び上書き処理を自動的に実行しても良い。
【０１２９】
＜まとめ＞
上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂによれば、データ更新部１５Ａ，１５Ｂは、メモリアレイ１７から読み出した第１の乱数生成用データＸ１，Ｙ１を更新することにより、第１の乱数（セッション鍵Ｋ１）より後に使用される第２の乱数（セッション鍵Ｋ２）を生成するための第２の乱数生成用データＸ２，Ｙ２を生成する。また、制御部１３は、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１を、第２の乱数生成用データＸ２，Ｙ２によって上書きする。従って、メモリアレイ１７に記憶されている乱数生成用データＸ１，Ｙ１が新たな乱数生成用データＸ２，Ｙ２に更新されるため、更新される乱数生成用データに基づいて乱数を生成することができる。その結果、再現不可能性を有する乱数を簡易に生成することが可能となる。
【０１３０】
同様に上記実施の形態１，２に係るデータ処理システム１００によれば、半導体記憶装置２Ａ，２Ｂがホスト装置１から鍵要求を受けた場合、データ更新部１５Ａ，１５Ｂは、第１の乱数生成用データ（鍵生成用データ）Ｘ１，Ｙ１を更新することにより、今回より後の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ２を生成するための第２の乱数生成用データＸ２，Ｙ２を生成する。また、制御部１３は、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１を、データ更新部１５Ａ，１５Ｂによって生成された第２の乱数生成用データＸ２，Ｙ２によって上書きする。従って、半導体記憶装置２Ａ，２Ｂがホスト装置１から鍵要求を受ける度に、メモリアレイ１７に記憶されている乱数生成用データが新たな乱数生成用データに更新され、乱数生成部（鍵生成部）１４Ａ，１４Ｂは、毎回更新される乱数生成用データに基づいてセッション鍵を生成する。その結果、ホスト装置１と半導体記憶装置２Ａ，２Ｂとの間で共通鍵を交換するセキュリティ方式において、再現不可能性を有する乱数を用いた共通鍵を簡易に生成でき、しかもセキュリティ強度を向上することが可能となる。
【０１３１】
また、上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂ及びデータ処理システム１００によれば、データ更新部１５Ａ，１５Ｂは、第１の乱数生成用データＸ１，Ｙ１とは異なる第２の乱数生成用データＸ２，Ｙ２を生成する。従って、第１の乱数生成用データＸ１，Ｙ１に基づいて生成される第１の乱数と、第２の乱数生成用データＸ２，Ｙ２に基づいて生成される第２の乱数とを、互いに異ならせることができるため、再現不可能性を有する乱数を生成することが可能となる。
【０１３２】
また、上記実施の形態１に係る半導体記憶装置２Ａによれば、乱数生成器２１は、メモリアレイ１７から読み出した乱数生成用データＸ１，Ｘ２をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成する。このように、更新される乱数生成用データＸ１，Ｘ２をシードとして用いた乱数生成アルゴリズムによって乱数を生成することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイ１７から読み出した乱数生成用データＸ１，Ｘ２をそのまま乱数として使用するのではなく、当該乱数生成用データＸ１，Ｘ２を用いた乱数生成アルゴリズムによって乱数を生成するため、メモリアレイ１７に記憶されている乱数生成用データＸ１，Ｘ２の一部が破損又は欠損している場合等であっても、生成される乱数の真性度を担保することが可能となる。
【０１３３】
同様に上記実施の形態１に係るデータ処理システム１００によれば、乱数生成器２１は、メモリアレイ１７から読み出した乱数生成用データＸ１，Ｘ２をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ１，Ｋ２を生成する。このように、毎回更新される乱数生成用データＸ１，Ｘ２をシードとして用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイ１７から読み出した乱数生成用データＸ１，Ｘ２をそのまま共通鍵として使用するのではなく、当該乱数生成用データＸ１，Ｘ２を用いた乱数生成アルゴリズムによって生成した乱数を共通鍵として使用するため、メモリアレイ１７に記憶されている乱数生成用データＸ１，Ｘ２の一部が破損又は欠損している場合等であっても、生成される共通鍵の真性度を担保することが可能となる。
【０１３４】
また、上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂによれば、乱数生成部１４Ａ，１４Ｂによる乱数の生成処理と、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理及び制御部１３による乱数生成用データの上書き処理とは、並行して実行される。従って、乱数の生成処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの上書き処理が完了した後に乱数の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
【０１３５】
同様に上記実施の形態１，２に係るデータ処理システム１００によれば、乱数生成部１４Ａ，１４Ｂによるセッション鍵の生成処理及び制御部１３によるセッション鍵の送信処理と、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理及び制御部１３による乱数生成用データの上書き処理とは、並行して実行される。従って、セッション鍵の送信処理が完了した後に乱数生成用データの更新処理を開始する場合や、乱数生成用データの上書き処理が完了した後にセッション鍵の生成処理を開始する場合と比較すると、処理全体の所要時間を短縮することが可能となる。
【０１３６】
また、上記実施の形態２に係る半導体記憶装置２Ｂによれば、メモリアレイ１７には、乱数生成用データＹ１，Ｙ２として乱数が記憶されている。従って、更新される乱数生成用データＹ１，Ｙ２を乱数として使用することにより、乱数の真性度を担保することが可能となる。しかも、メモリアレイ１７から読み出した乱数生成用データＹ１，Ｙ２をそのまま乱数として使用することができ、当該乱数生成用データＹ１，Ｙ２をシードとして用いた乱数生成処理が不要であるため、乱数を生成するための所要時間を短縮することが可能となる。
【０１３７】
同様に上記実施の形態２に係るデータ処理システム１００によれば、データ更新部１５Ｂ（鍵生成部）は、メモリアレイ１７から読み出した鍵生成用データＹ１，Ｙ２を、今回の鍵要求に対応してホスト装置１に送信するセッション鍵Ｋ１，Ｋ２として生成する。このように、毎回更新される乱数生成用データＹ１，Ｙ２を共通鍵として使用することにより、共通鍵の真性度を担保することが可能となる。しかも、メモリアレイ１７から読み出した乱数生成用データＹ１，Ｙ２をそのまま共通鍵として使用することができ、当該乱数生成用データＹ１，Ｙ２をシードとして用いた乱数生成処理が不要であるため、ホスト装置１から鍵要求を受けてからホスト装置１に共通鍵を送信するまでの所要時間を短縮することが可能となる。
【０１３８】
また、上記実施の形態２に係る半導体記憶装置２Ｂ及びデータ処理システム１００によれば、乱数生成器２３は、メモリアレイ１７から読み出した第１の乱数生成用データＹ１，Ｙ２をシードとして用いて、所定の乱数生成アルゴリズムによって乱数を生成することにより、第２の乱数生成用データＹ２，Ｙ３を生成する。このように、第１の乱数生成用データＹ１，Ｙ２をシードとして用いた乱数生成アルゴリズムによって第２の乱数生成用データＹ２，Ｙ３を生成することにより、乱数及び共通鍵として使用される乱数生成用データの真性度を担保することが可能となる。
【０１３９】
また、上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂによれば、制御部１３は、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１が第２の乱数生成用データＸ２，Ｙ２によって正しく上書きされるまで、乱数生成用データの上書き処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの上書き処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの上書き処理を再開することにより、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１を第２の乱数生成用データＸ２，Ｙ２によって正しく上書きすることができる。その結果、次に乱数を生成する場合には乱数生成部１４Ａ，１４Ｂは第２の乱数生成用データＸ２，Ｙ２に基づいて乱数を生成することができるため、乱数の再現不可能性を担保することが可能となる。
【０１４０】
同様に上記実施の形態１，２に係るデータ処理システム１００によれば、制御部１３は、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１が第２の乱数生成用データＸ２，Ｙ２によって正しく上書きされるまで、乱数生成用データの上書き処理を繰り返し実行する。従って、意図しない電源断によって乱数生成用データの上書き処理が未完了のまま中断した場合等であっても、電源の再投入後に乱数生成用データの上書き処理を再開することにより、メモリアレイ１７に記憶されている第１の乱数生成用データＸ１，Ｙ１を第２の乱数生成用データＸ２，Ｙ２によって正しく上書きすることができる。その結果、ホスト装置１からの次回の鍵要求に対して乱数生成部１４Ａ，１４Ｂは第２の乱数生成用データＸ２，Ｙ２に基づいてセッション鍵Ｋ２を生成することができるため、鍵の再現不可能性を担保することが可能となる。
【０１４１】
また、上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂによれば、メモリアレイ１７には、乱数生成用データの初期値として、半導体記憶装置２Ａ，２Ｂ毎に異なる固有値が記憶されている。従って、初回の乱数生成においても、半導体記憶装置２Ａ，２Ｂ毎に異なる乱数を乱数生成部１４Ａ，１４Ｂによって生成することが可能となる。
【０１４２】
同様に上記実施の形態１，２に係るデータ処理システム１００によれば、メモリアレイ１７には、乱数生成用データの初期値として、半導体記憶装置２Ａ，２Ｂ毎に異なる固有値が記憶されている。従って、ホスト装置１からの初回の鍵要求に対しても、半導体記憶装置２Ａ，２Ｂ毎に異なるセッション鍵を乱数生成部１４Ａ，１４Ｂによって生成することが可能となる。
【０１４３】
また、上記実施の形態１，２に係る半導体記憶装置２Ａ，２Ｂ及びデータ処理システム１００によれば、乱数生成用データは、メモリアレイ１７の記憶領域のうち、ホスト装置１からのアクセスが禁止されている禁止領域２０に記憶される。従って、攻撃者がホスト装置１を介してメモリアレイ１７から乱数生成用データを読み出すことや、メモリアレイ１７に記憶されている乱数生成用データを無効なデータによって上書きすることはできないため、セキュリティ性を向上することが可能となる。
【０１４４】
また、上記変形例に係る半導体記憶装置２Ａ，２Ｂによれば、半導体記憶装置２Ａ，２Ｂの電源が投入されると、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理と制御部１３による乱数生成用データの上書き処理とが自動的に実行される。従って、電源投入後の最初の乱数生成においては、自動更新によって上書きされた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
【０１４５】
同様に上記変形例に係るデータ処理システム１００によれば、半導体記憶装置２Ａ，２Ｂの電源が投入されると、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理と制御部１３による乱数生成用データの上書き処理とが自動的に実行される。従って、電源投入後の最初の鍵要求に対しては、自動更新によって上書きされた新たな乱数生成用データに基づいて生成されたセッション鍵を、ホスト装置１に送信することが可能となる。
【０１４６】
また、上記変形例に係る半導体記憶装置２Ａ，２Ｂによれば、半導体記憶装置２Ａ，２Ｂの電源遮断が要求されると、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理と制御部１３による乱数生成用データの上書き処理とが自動的に実行される。従って、半導体記憶装置２Ａ，２Ｂの電源が再投入された後の最初の乱数生成においては、電源遮断前の自動更新によって上書きされた新たな乱数生成用データに基づいて乱数を生成することが可能となる。
【０１４７】
同様に上記変形例に係るデータ処理システム１００によれば、半導体記憶装置２Ａ，２Ｂの電源遮断が要求されると、データ更新部１５Ａ，１５Ｂによる乱数生成用データの更新処理と制御部１３による乱数生成用データの上書き処理とが自動的に実行される。従って、半導体記憶装置２Ａ，２Ｂの電源が再投入された後の最初の鍵要求に対しては、電源遮断前の自動更新によって上書きされた新たな乱数生成用データに基づいて生成されたセッション鍵を、ホスト装置１に送信することが可能となる。
【符号の説明】
【０１４８】
２，２Ａ，２Ｂ  半導体記憶装置
１３  制御部
１４Ａ  乱数生成部
１５Ａ，１５Ｂ  データ更新部
１７  メモリアレイ
２０  禁止領域
２１，２３  乱数生成器
２２  カウンタ
１００  データ処理システム
【図１】
2014222420.tif 000003
【図２】
2014222420.tif 000004
【図３】
2014222420.tif 000005
【図４】
2014222420.tif 000006
【図５】
2014222420.tif 000007
【図６】
2014222420.tif 000008