(57)【特許請求の範囲】
【請求項１】
不揮発性の半導体メモリと、前記半導体メモリを制御するコントローラとを具備するメモリデバイスであって、前記コントローラは、
第１鍵を保持する第１メモリと、
第２鍵を保持する第２メモリと、
乱数に基づいて第３鍵を生成する第１生成部と、
前記第１鍵と前記第３鍵を用いて第４鍵を生成する第２生成部と、
前記第４鍵を用いて前記第２鍵を暗号化する暗号化部と
を備え、前記第３鍵と、前記暗号化された第２鍵とは、前記メモリデバイスにアクセス可能なホストデバイスに記憶され、
前記第１メモリは不揮発性メモリであり、
前記第２メモリは揮発性メモリであり、
前記第３鍵と、前記暗号化された第２鍵は、前記メモリデバイスへの電源が切断される際に、前記ホストデバイスに送信される
ことを特徴とするメモリデバイス。
【請求項２】
前記コントローラは、復号化部を更に備え、
前記第２生成部は、前記第１鍵と、前記ホストデバイスから読み出された前記第３鍵とを用いて前記第４鍵を生成し、
前記復号化部は、前記第４鍵を用いて、前記ホストデバイスから読み出された前記暗号化された第２鍵を復号する
ことを特徴とする請求項１記載のメモリデバイス。
【請求項３】
前記メモリデバイスへの電源投入時において、前記復号化部は前記ホストデバイスから読み出された前記暗号化された第２鍵を復号する
ことを特徴とする請求項２記載のメモリデバイス。
【請求項４】
前記第３鍵は、前記半導体メモリに保持される
ことを特徴とする請求項１乃至３いずれか１項記載のメモリデバイス。
【請求項５】
前記メモリデバイスへの電源投入時において、前記ホストデバイスから読み出された第３鍵は、前記半導体メモリから読み出された前記第３鍵と比較される
ことを特徴とする請求項４記載のメモリデバイス。
【請求項６】
前記コントローラは、前記半導体メモリに関するアクセス情報を保持する第３メモリを更に備え、
前記アクセス情報は、前記メモリデバイスへの電源が切断される際に、前記ホストデバイスに送信される
ことを特徴とする請求項１乃至５いずれか１項記載のメモリデバイス。
【請求項７】
前記アクセス情報は、前記暗号化部によって暗号化されて、前記ホストデバイスに記憶される
ことを特徴とする請求項６記載のメモリデバイス。
【請求項８】
前記コントローラは、デジタル署名を生成する第３生成部を更に備え、
前記アクセス情報は、前記デジタル署名が付加されて、前記ホストデバイスに記憶される
ことを特徴とする請求項６記載のメモリデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本実施形態は、メモリデバイスに関する。
【背景技術】
【０００２】
メモリデバイスとホストデバイスとの間で、認証処理を行うシステムが知られている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１４−０１６７３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
動作信頼性を向上できるメモリデバイスを提供する。
【課題を解決するための手段】
【０００５】
実施形態のメモリデバイスは、不揮発性の半導体メモリと、半導体メモリを制御するコントローラとを備える。コントローラは、第１メモリと、第２メモリと、第１生成部と、第２生成部と、暗号化部とを備える。第１メモリは、第１鍵を保持する。第２メモリは、第２鍵を保持する。第１生成部は、乱数に基づいて第３鍵を生成する。第２生成部は、第１鍵と第３鍵を用いて第４鍵を生成する。暗号化部は、第４鍵を用いて第２鍵を暗号化する。そして、第３鍵と、暗号化された第２鍵とは、メモリデバイスにアクセス可能なホストデバイスに記憶され、第１メモリは不揮発性メモリであり、第２メモリは揮発性メモリであり、第３鍵と、暗号化された第２鍵は、メモリデバイスへの電源が切断される際に、ホストデバイスに送信される。
【図面の簡単な説明】
【０００６】
【図１】図１は、第１実施形態に係るメモリシステムのブロック図。
【図２】図２は、第１実施形態に係るコントローラの電源切断時における動作を示すフローチャート。
【図３】図３は、第１実施形態に係るメモリデバイスの電源切断時における動作を示すブロック図。
【図４】図４は、第１実施形態に係るコントローラの電源投入時における動作を示すフローチャート。
【図５】図５は、第１実施形態に係るメモリシステムの電源投入時における動作を示すブロック図。
【図６】図６は、第１実施形態の変形例に係るコントローラの電源投入時における動作を示すフローチャート。
【図７】図７は、第２実施形態に係るメモリデバイスのブロック図。
【図８】図８は、第２実施形態に係るメモリデバイスの電源切断時における動作を示すブロック図。
【図９】図９は、第２実施形態の変形例に係るメモリデバイスのブロック図。
【発明を実施するための形態】
【０００７】
以下、図面を参照して実施形態について説明する。なお、以下の説明において、同一の機能及び構成を有する構成要素については、共通する参照符号を付す。
【０００８】
１．第１実施形態  
第１実施形態に係るメモリデバイスについて説明する。
【０００９】
１．１  メモリシステムの構成について  
まず、本実施形態に係るメモリデバイスが適用されるメモリシステムの構成につき、図１を用いて説明する。図示するようにメモリシステム１は、メモリデバイス１００とホストデバイス２００とを備えている。
【００１０】
ホストデバイス２００は、メモリデバイス１００を使用するデバイスであり、例えばパーソナルコンピュータである。またホストデバイス２００は、スマートフォンなどの携帯情報端末等であっても良い。
【００１１】
メモリデバイス１００は、不揮発性の半導体メモリを保持し、例えばＳＳＤ（Solid State Drive）である。またメモリデバイス１００は、例えばＳＤＴＭカードなどのメモリカードであっても良いし、ｅＭＭＣＴＭなどのマルチメディアカードであっても良く、またはＵＦＳ（Universal Flash Storage）規格に準拠したメモリモジュールであっても良い。
【００１２】
以下、ホストデバイス２００及びメモリデバイス１００の詳細について説明する。
【００１３】
１．１．１  ホストデバイス２００の構成について  
まず、ホストデバイス２００の構成につき、引き続き図１を参照して説明する。図示するようにホストデバイス２００は、例えばプロセッサ２１０、メモリ２２０、及びインターフェース２３０を備えており、これらはバスで接続されて、互いに通信可能とされている。
【００１４】
プロセッサ２１０は例えばＣＰＵなどであり、ファームウェアを実行することで、ホストデバイス２００全体の動作を制御する。そしてプロセッサ２１０は、メモリデバイス１００にアクセスするためのコマンドを発行することにより、メモリデバイス１００からデータを読み出して、このデータを用いて処理を行い、更にデータをメモリデバイス１００に書き込むことが可能である。
【００１５】
メモリ２２０は、例えばＤＲＡＭやＳＲＡＭ等の揮発性メモリであっても良いし、フラッシュメモリ等の不揮発性メモリであっても良いし、これらの組み合わせであっても良い。そしてメモリ２２０は、プロセッサ２２０の作業領域として機能すると共に、メモリデバイス１００で生成された鍵情報を保持する（この点については後述する）。鍵情報を保持する領域に関しては、揮発性メモリであれば、ホストシステムの電源遮断時に失われるので、セキュリティ上はより好ましい。
【００１６】
インターフェース２３０は、メモリデバイス１００との間の通信を制御する。
【００１７】
１．１．２  メモリデバイス１００の構成について  
次に、メモリデバイス１００の構成につき、引き続き図１を参照して説明する。図示するようにメモリデバイス１００は、大まかにはＮＡＮＤ型フラッシュメモリ１１０、コントローラ１２０、電源回路１３０、及びインターフェース１４０を備えている。
【００１８】
ＮＡＮＤ型フラッシュメモリ１１０は、ホストデバイス２００から与えられたユーザデータや、コントローラ１２０が動作するために実行される制御プログラムなどを保持する。なお、本例では一例としてＮＡＮＤ型フラッシュメモリ１１０を挙げているが、ＮＡＮＤ型フラッシュメモリ１１０をその他の不揮発性半導体メモリに置き換えても良い。また半導体メモリに限らず、ハードディスクなどの記憶装置に置き換えても良い。
【００１９】
コントローラ１２０は、フラッシュメモリ１１０内の制御プログラムを実行することにより動作し、メモリデバイス１００全体の動作を制御する。そしてコントローラ１２０は、ホストデバイス２００から受信した命令に従って、フラッシュメモリ１１０からデータを読み出し、またはデータを書き込み、またはデータを消去する。コントローラ１２０の詳細は後述する。
【００２０】
電源回路１３０は、外部から電源を供給され、この電源に基づいて複数の内部電源を生成する。そして電源回路１３０は、生成した内部電源をコントローラ１２０、ＮＡＮＤ型フラッシュメモリ１１０、及びインターフェース１４０に供給する。また電源回路１３０は、外部電源が投入されたことを検知して、その旨を知らせる信号（例えばパワーオンリセット信号：ＰＯＲ信号）をコントローラ１２０に供給する。更に電源回路１３０は、外部電源が切断される際にも、その旨を知らせる信号をコントローラ１２０に供給する。この外部電源は、例えば一例としてホストデバイス２００から与えられ、以下の説明ではこのような場合について説明する。
【００２１】
インターフェース１４０は、ホストデバイス２００との間の通信を制御する。メモリデバイス１００とホストデバイス２００との間の通信インターフェースは、例えばＰＣＩ（Peripheral Component Interconnect）、またはＰＣＩ Express等に準拠することが出来る。
【００２２】
なお、図１では電源回路１３０とインターフェース１４０とを、コントローラ１２０とは異なる構成要素として図示している。しかし、電源回路１３０とインターフェース１４０の少なくともいずれかは、コントローラ１２０の一部であっても良い。
【００２３】
１．１．３  コントローラ１２０の詳細について  
次に、上記コントローラ１２０の構成の詳細について、引き続き図１を参照して説明する。図示するようにコントローラ１２０は、第１メモリ１２１、第２メモリ１２２、ワンタイム鍵生成部１２３、乱数生成部１２４、暗号鍵生成部１２５、暗号化部１２６、復号化部１２７、データ退避部１２８、及び制御部１２９を備えている。これらの構成要素は、プロセッサがソフトウェアを実行することによって実現されても良いし、あるいは物理的な電子回路として実現されても良いし、これらの組み合わせであっても良い。
【００２４】
第１メモリ１２１は不揮発性メモリであり、例えばフラッシュメモリ等の半導体メモリや、ヒューズ素子である。そして第１メモリ１２１は、メモリデバイス１００固有の秘匿鍵Ｋsを保持する。秘匿鍵Ｋsは、例えばメモリデバイス１００の製造時に第１メモリ１２１に書き込まれ、メモリデバイス１００外部からのアクセスを禁止される。
【００２５】
第２メモリ１２２は揮発性メモリであり、例えばＤＲＡＭ等の半導体メモリである。そして第２メモリ１２２は、ユーザデータ暗号鍵Ｋuを保持する。ユーザデータ暗号鍵Ｋuは、ホストデバイス２００から送信されたデータを暗号化する際に用いられ、暗号化されたデータがフラッシュメモリ１１０に書き込まれる。またユーザデータ暗号鍵Ｋuは、フラッシュメモリ１１０から読み出された暗号化データを復号化する際に用いられ、復号されたデータがホストデバイス２００に送信される。
【００２６】
乱数生成部１２４は、乱数を生成する。
【００２７】
ワンタイム鍵生成部１２３は、乱数生成部１２４で生成された乱数に基づいて、ワンタイム鍵Ｋotを生成する。ワンタイム鍵Ｋotは一度限り有効な鍵であり、例えばワンタイムパッド（one time pad）や、ワンタイムパスワード（one time password）とも呼ばれる。ワンタイム鍵生成部１２３は、例えばコントローラ１２０に対する電源が切断される度に、異なるワンタイム鍵Ｋotを生成する
暗号鍵生成部１２５は、第１メモリ１２１内の秘匿鍵Ｋsと、ワンタイム鍵生成部１２３で生成されたワンタイム鍵Ｋotとを用いて、鍵暗号鍵Ｋencを生成する。鍵暗号鍵Ｋencは、ユーザデータ暗号鍵Ｋuの暗号化、及び暗号化されたユーザデータ暗号鍵の復号化のために使用される。
【００２８】
暗号化部１２６は、鍵暗号鍵Ｋencを用いてユーザデータ暗号鍵Ｋuを暗号化する。本明細書において、暗号化されたユーザデータ暗号鍵を、Enc(Ku)と表記する。
【００２９】
復号化部１２７は、鍵暗号鍵Ｋencを用いて、暗号化されたユーザデータ暗号鍵Enc(Ku)を復号化して、平文のユーザデータ暗号鍵Ｋuを得る。
【００３０】
データ退避部１２８は、コントローラ１２０に対する電源が切断される際に、ワンタイム鍵Ｋotと暗号化されたユーザデータ暗号鍵Enc(Ku)とを、ホストデバイス２００に送信し、メモリ２２０に退避させる。またデータ退避部１２８は、コントローラ１２０に電源が投入された際には、メモリ２２０からワンタイム鍵Ｋotと暗号化されたユーザデータ暗号鍵Enc(Ku)とを読み出す。
【００３１】
制御部１２９は、上記各ブロックの動作を制御する。また制御部１２９は、例えば電源回路１３０から信号を受信することにより、コントローラ１２０への電源投入または電源切断を検知することが出来る。あるいは、ホストデバイス２００（の例えばプロセッサ２１０）からの電源切断準備の指示を受けることもできる。以下では、電源切断時には、ホストデバイス２００から電源切断準備の通知を受ける場合を例に説明する。
【００３２】
１．２  メモリシステム１の動作について  
次に、上記構成のメモリシステム１の動作について説明する。
【００３３】
１．２．１  電源切断時の動作について  
まず、コントローラ１２０に対する電源が切断される際の動作について説明する。
【００３４】
コントローラ１２０の電源回路１３０に投入される電源は、前述の通りホストデバイス２００から与えられる。そして、この電源スイッチもホストデバイス２００内にあり、このスイッチは例えばプロセッサ２１０によって制御される。コントローラ１２０に対する電源を切断する際、プロセッサ２１０はその旨の情報をコントローラ１２０の例えば制御部１２９に送信する。この情報を受けて制御部１２９は、各機能ブロックを制御して、ワンタイム鍵Ｋotと暗号化されたユーザデータ暗号鍵Enc(Ku)とをホストデバイス２００に退避させる。
【００３５】
すなわち図２及び図３に示すように、まずワンタイム鍵生成部１２３が、ワンタイム鍵Ｋotを生成する（ステップＳ１０）。次に暗号鍵生成部１２５が、第１メモリ１２１から読み出した秘匿鍵Ｋsと、ステップＳ１０で生成されたワンタイム鍵Ｋotを用いて、鍵暗号鍵Ｋencを生成する（ステップＳ１１）。
【００３６】
引き続き暗号化部１２６が、ステップＳ１１で生成された鍵暗号鍵Ｋencを用いて、第２メモリ１２２から読み出したユーザデータ暗号鍵Ｋuを暗号化して、暗号化されたユーザデータ暗号鍵Enc(Ku)を得る（ステップＳ１２）。
【００３７】
次に、データ退避部１２８が、ステップＳ１０で生成されたワンタイム鍵Ｋotと、ステップＳ１２で生成された暗号化されたユーザデータ暗号鍵Enc(Ku)をホストデバイス２００へ送信する（ステップＳ１３）。これらの鍵Ｋot及びEnc(Ku)は、ホストデバイス２００のメモリ２２０に保持される。
【００３８】
以上のように、必要なデータがホストデバイス２００に退避され、コントローラ１２０側において電源遮断準備が完了すると、制御部１２９はその旨をホストデバイスのプロセッサ２１０に通知する。この通知を受けて、プロセッサ２１０はコントローラ１２０の電源を切断する。その結果、揮発性の第２メモリ内のユーザデータ暗号鍵Ｋuは失われる。秘匿鍵Ｋsは、不揮発性の第１メモリに保持されるため、失われない。
【００３９】
なお、電源遮断準備完了通知の仕組みは、実装によって種々の方法を用いても良い。例えば、ホストデバイス２００が、メモリデバイス１００のインターフェース１４０上のレジスタにあるフラグ（これが準備完了を示す）を監視して、電源遮断準備完了を確認しても良い。また、ホストデバイス２００がコマンドを発行して、コントローラ１２０に電源遮断準備を命令しても良い。この場合には、そのコマンドが正常終了したか否かによって、メモリデバイス１００が電源遮断準備を完了したか否かを判断出来る。
【００４０】
１．２．２  電源投入時の動作について  
次に、コントローラ１２０に電源が投入された際の動作について説明する。
【００４１】
例えばホストデバイス２００からコントローラ１２０に電源が投入されると、電源回路１３０はその旨の情報（ＰＯＲ信号）を制御部１２９に送信する。この情報を受けて制御部１２９は、各機能ブロックを制御して、ワンタイム鍵Ｋotと暗号化されたユーザデータ暗号鍵Enc(Ku)とをホストデバイス２００から読み出し、平文のユーザデータ暗号鍵Ｋuを得る。
【００４２】
すなわち図４及び図５に示すように、まずデータ退避部１２８が、図２及び図３で説明した方法によりホストデバイス２００に退避されていたワンタイム鍵Ｋotと暗号化されたユーザデータ暗号鍵Enc(Ku)を読み出す（ステップＳ２０）。
【００４３】
次に暗号鍵生成部１２５が、第１メモリ１２１から読み出した秘匿鍵Ｋsと、ステップＳ２０で読み出されたワンタイム鍵Ｋotを用いて、鍵暗号鍵Ｋencを生成する（ステップＳ２１）。
【００４４】
引き続き復号化部１２７が、ステップＳ２１で生成された鍵暗号鍵Ｋencを用いて、ステップＳ２０で読み出された暗号化されたユーザデータ暗号鍵Enc(Ku)を復号化して、平文のユーザデータ暗号鍵Ｋuを得る（ステップＳ２２）。
【００４５】
そして、ステップＳ２２で得られたユーザデータ暗号鍵Ｋuは、第２メモリ１２２に記憶される。その後は、このユーザデータ暗号鍵Ｋuを用いてユーザデータが暗号化され、暗号化されたユーザデータが半導体メモリ１１０に記憶される。また、半導体メモリ１１０から読みだされた暗号化データを復号化する際にもユーザデータ暗号鍵Ｋuは用いられる。
【００４６】
１．３  本実施形態に係る効果  
本実施形態によれば、メモリデバイスの動作信頼性を向上出来る。本効果につき、以下説明する。
【００４７】
コンテンツ保護やデータの漏洩防止の目的で、ホストコンピュータと外部記憶装置との間で認証を行うシステムが知られている。このようなシステムでは、ホストコンピュータの動作中に外部記憶装置の電源が切断されると、電源再投入時に再び認証を行う必要がある。この認証動作は、例えばユーザがホストコンピュータから認証鍵を入力することによって行われる。または、ホストコンピュータ上に予め記憶させておいた認証鍵を用いて自動認証を行うことで、ユーザによる入力を不要とすることも出来る。
【００４８】
また、例えばモバイル機器に使用される記憶装置（例えばＳＳＤ）の場合、この記憶装置が実際に使用（アクセス）されている時間的な割合は、例えばせいぜい２％である。従ってモバイル機器では、消費電力削減のために、記憶装置の電源を頻繁に切断することが望ましい。
【００４９】
しかし、認証処理には一定程度の時間を要するため、認証の度に電力を消費する。とりわけユーザが認証鍵を入力する場合には時間がかかる。つまり、消費電力削減の目的で電源を切断しているにも関わらず、それに伴って必要な認証処理が原因で、十分な消費電力低減効果が得られないおそれがある。さらにユーザが、電力削減のため自動的に電源が切断される記憶装置の電源投入毎に、認証鍵の入力をしなければならないのは、非常に煩雑で使い勝手が悪い。
【００５０】
またホストコンピュータに認証鍵を記憶させておくケースでは、ホストコンピュータが攻撃されて認証鍵が漏洩した場合、なりすましを防止出来ない。つまり、記憶装置に対する不正なアクセスの防止が困難である。従って、ホストコンピュータにおいて、認証鍵に対する非常に高度な保護対策が要求される。
【００５１】
この点、本実施形態に係る構成であると、電源再投入時における認証処理を必要としない。すなわち本実施形態では、電源切断時には、図３で説明したように、ユーザデータ暗号鍵Ｋuが暗号化され、この暗号化されたユーザデータ暗号鍵Enc(Ku)と、暗号化に使用されたワンタイム鍵Ｋotがホストデバイス２００に保存される。そして電源投入時には、メモリデバイス１００はホストデバイスから上記鍵Enc(Ku)及びＫotを読み出し、その後はメモリデバイス１００内部においてユーザデータ暗号鍵Ｋuが生成される。
【００５２】
このように、認証処理が不要となるため、頻繁に電源オン／オフが行われる場合であっても、消費電力を効果的に削減出来る。また、認証処理を不要とすることで、電源投入後にメモリデバイス１００は速やかに使用可能な状態となり、メモリシステムの高速な応答性が可能となる。
【００５３】
更に本実施形態によれば、メモリデバイス１００とホストデバイス２００との間の認証処理が不要であるから、ホストデバイス２００は認証鍵を保持しておく必要が無い。従って、ホストデバイス２００においてデータの高度な保護対策は不要となる。
【００５４】
仮に、ホストデバイス２００内の暗号化されたユーザデータ暗号鍵Enc(Ku)が漏洩したとしても、メモリデバイス１００内の秘匿鍵Ｋsが漏洩しなければ、平文のユーザデータ暗号鍵Ｋuを得ることは出来ない。暗号化されたユーザデータ暗号鍵Enc(Ku)に加えてワンタイム鍵Ｋotが漏洩したとしても、やはり秘匿鍵Ｋsが漏洩しなければ、平文のユーザデータ暗号鍵Ｋuを得ることは出来ない。
【００５５】
このように、ホストデバイス側での高度な情報漏洩対策を必要とすることなく、なりすまし等の不正アクセスを抑制出来る。
【００５６】
また本実施形態によれば、暗号化されたユーザデータ暗号鍵Enc(Ku)を、メモリデバイス１００では無く、ホストデバイス２００に記憶している。そして、電源投入時にメモリ２２０から鍵Enc(Ku)を読み出し、これを復号化することによってユーザデータ暗号鍵Ｋuを得ている。つまり、暗号化されたユーザデータ暗号鍵Enc(Ku)を、メモリデバイス１００のコントローラ１２０が保持している必要が無い。従って、コントローラ１２０に必要なメモリ容量を低減出来、ひいてはコントローラ１２０の小型化に寄与する。
【００５７】
なお、ワンタイム鍵Ｋotは、メモリデバイス１００に保存されても良い。この場合、ワンタイム鍵Ｋotは、半導体メモリ１１０に記憶されても良いし、または例えばコントローラ１２０内の不揮発性メモリ内に記憶されても良い。ワンタイム鍵Ｋotがメモリデバイス１００で保存される場合には、電源切断時にワンタイム鍵Ｋotをホストデバイス２００へ必ずしも退避させる必要は無い。
【００５８】
また、ワンタイム鍵生成部１２３によるワンタイム鍵Ｋotの生成は、電源切断時では無く、電源投入時や、あるいは通常動作時に生成されても良い。この場合、生成されたワンタイム鍵Ｋotは、例えば半導体メモリ１１０に記憶されても良い。そして電源切断時において、半導体メモリ１１０から読み出されても良い。
【００５９】
また、ワンタイム鍵Ｋotが半導体メモリ１１０及びホストデバイス２００の両方に保持される場合には、このワンタイム鍵Ｋotを用いてホストデバイス２００の正当性が判断されても良い。このような例を図６に示す。図６は、電源投入時におけるコントローラ１２０の動作を示し、図４で説明したステップＳ２０の後に行われ、且つステップＳ２１〜２３と並行して行われても良いし、ステップＳ２１〜Ｓ２３の前、または後で行われても良い。
【００６０】
図示するように、例えば制御部１２９は、電源切断時に半導体メモリ１１０に記憶されたワンタイム鍵Ｋotを読み出す（ステップＳ３０）。そして制御部１２９は、ステップＳ３１で読み出したワンタイム鍵Ｋotと、図４のステップＳ２０においてホストデバイス２００から読み出したワンタイム鍵Ｋotとを比較する（ステップＳ３１）。
【００６１】
両者が一致すれば（ステップＳ３２、ＹＥＳ）、制御部１２９は、ホストデバイス２００が正当なデバイスであると判断する（ステップＳ３３）。すなわち、その他の必要な処理が完了すれば、ホストデバイス２００は半導体メモリ１１０にアクセス可能となる。  他方で両者が不一致であれば（ステップＳ３２、ＮＯ）、制御部１２９は、ホストデバイス２００は正当で無いと判断する（ステップＳ３４）。従って制御部１２９は、このホストデバイス２００による半導体メモリ１１０へのアクセスを禁止する。
【００６２】
本方法によれば、メモリデバイス１００をより効果的に保護出来る。すなわち、一般的にコントローラ１２０への電源投入後は、コントローラ１２０は、まずホストデバイス２００のデータを読み出し可能な状態となり、次に半導体メモリ１１０を読み出し可能な状態となる。そこで、コントローラ１２０は、まずホストデバイス２００のメモリ２２０上のデータをロードして、その情報（Enc(Ku), Kot, 及びファームウェアなど）に基づいてメモリデバイス１００の動作準備を行う。その後、半導体メモリ１１０にアクセス可能になると、半導体メモリ１１０からワンタイム鍵Ｋotを読み出す。そして、これらが一致すれば、コントローラ１２０は処理を続行し、不一致であれば、不正なホストデバイスからのアクセスであると判断して、動作を中止する。
【００６３】
このような方法によっても、メモリデバイス１００を保護出来る。もちろん、ワンタイム鍵Ｋotをホストデバイス２００及び／または半導体メモリ１１０に保持させる際に、ワンタイム鍵Ｋotを何らかの鍵（例えば秘匿鍵Ｋs）で暗号化しても良い。この場合には、電源投入時に、秘匿鍵Ｋsを用いて、暗号化されたワンタイム鍵Ｋotを復号化すれば良い。
【００６４】
２．第２実施形態  
次に、第２実施形態に係るメモリデバイスについて説明する。本実施形態は、上記第１実施形態において、電源切断時に暗号化ユーザデータEnc(Ku)及びワンタイム鍵Ｋotだけでなく、アクセスコントロール情報ＩＮＦもホストデバイス２００に退避させるものである。以下では、第１実施形態と異なる点についてのみ説明する。
【００６５】
２．１  メモリデバイス１００の構成について  
本実施形態に係るメモリデバイス１００の構成につき、図７を用いて説明する。図示するように本実施形態に係るメモリデバイス１００は、第１実施形態で説明した図１の構成において、コントローラ１２０が、更に第３メモリ３１０を備えるものである。
【００６６】
第３メモリは、例えば揮発性のメモリであり、アクセスコントロール情報ＩＮＦを保持する。アクセスコントロール情報ＩＮＦは、半導体メモリ１１０の全体、または特定の領域に対するアクセスを許可するか否かの情報であり、データの読み出し、書き込み、及び消去のそれぞれにつき、アクセスを許可するか否かの情報であっても良い。また複数のユーザ毎にアクセス制御が行われる場合には、アクセスコントロール情報ＩＮＦは、ユーザ毎にアクセスコントロール情報が用意される。
【００６７】
２．２  メモリシステム１の動作について  
次に、本実施形態に係るメモリシステム１の動作について説明する。
【００６８】
２．２．１  電源切断時の動作について  
まず、コントローラ１２０に対する電源が切断される際の動作について図８を用いて説明する。図８では、アクセスコントロール情報ＩＮＦに対して行われる処理のみを図示しており、ユーザデータ暗号鍵Ｋuに対して行われる処理は第１実施形態と同様である。本実施形態が第１実施形態で説明した図２及び図３と異なる点は、以下の点である。
【００６９】
（１）ステップＳ１１の後に、暗号化部１２６が、ステップＳ１１で生成された鍵暗号鍵Ｋencを用いてアクセスコントロール情報ＩＮＦを暗号化し、暗号化アクセスコントロール情報Enc(INF)を得る。
【００７０】
（２）その後、データ退避部１２８が、暗号化アクセスコントロール情報Enc(INF)を、ホストデバイス２００のメモリ２２０に記憶させる。その後、電源が切断される。
【００７１】
２．２．２  電源投入時の動作について  
次に、コントローラ１２０に電源が投入された際の動作について説明する。本実施形態が第１実施形態で説明した図４及び図５と異なる点は、以下の点である。
【００７２】
（１）図４のステップＳ２０及びＳ２１の処理と並行して、または前後して、データ退避部１２８が、暗号化されたアクセスコントロール情報Enc(INF)を、ホストデバイス２００のメモリ２２０から読み出す。そしてステップＳ２１の後、復号化部１２７が鍵暗号鍵Ｋencを用いてEnc(INF)を復号化して、平文のアクセスコントロール情報ＩＮＦを得る。
【００７３】
（２）その後、第３メモリ３１０にアクセスコントロール情報ＩＮＦが保持される。以後、半導体メモリ１１０に対するアクセスは、このアクセスコントロール情報ＩＮＦに基づき、制御部１２９によって制御される。
【００７４】
２．２．３  本実施形態に係る効果  
本実施形態によれば、半導体メモリ１１０に対するアクセス条件を保持するアクセスコントロール情報ＩＮＦの漏洩を効果的に抑制出来る。従って、半導体メモリ１１０内のデータを、より高度に保護出来る。
【００７５】
なお、アクセスコントロール情報ＩＮＦは、必ずしも暗号化される必要は無く、平文の状態でホストデバイス２００に退避されても良い。この場合、データ退避部１２８が第３メモリ３１０からアクセスコントロール情報ＩＮＦを読み出し、ホストデバイス２００のメモリ２２０に書き込む。
【００７６】
また、アクセスコントロール情報ＩＮＦを暗号化するかしないかに関わらず、アクセスコントロール情報ＩＮＦにデジタル署名を付与しても良い。この場合のメモリデバイス１００の構成を図９に示す。図示するようにコントローラ１２０は、デジタル署名生成部３２０を備えている。電源の切断時、デジタル署名生成部３２０は、第３メモリ３１０からアクセスコントロール情報ＩＮＦを読み出し、デジタル署名を生成して、これをアクセスコントロール情報ＩＮＦに付与する。その後、データ退避部１２８が、デジタル署名の付与されたアクセスコントロール情報ＩＮＦをホストデバイス２００に退避させる。もちろん、更に暗号化部１２６において暗号化しても良い。
【００７７】
３．変形例等  
以上のように、実施形態に係るメモリデバイス１は、不揮発性の半導体メモリ(110 in 図1)と、半導体メモリを制御するコントローラ(120 in 図1)とを備える。そしてコントローラ120は、第１メモリ(121 in 図1)と、第２メモリ(122 in 図1)と、第１生成部(123 in 図1)と、第２生成部(125 in 図1)と、暗号化部(126 in 図1)とを備える。第１メモリ121は、第１鍵(秘匿鍵Ｋs in 図1)を保持する。第２メモリ122は、第２鍵(ユーザデータ暗号鍵Ku in 図1)を保持する。第１生成部123は、乱数に基づいて第３鍵(ワンタイム鍵Kot in 図3)を生成する。第２生成部125は、第１鍵Ｋsと第３鍵Ｋotを用いて第４鍵(鍵暗号鍵Ｋenc in 図3)を生成する。暗号化部126は、第４鍵Ｋencを用いて第２鍵Ｋuを暗号化する。そして、第３鍵Ｋotと、暗号化された第２鍵Enc(Ku)とは、メモリデバイスにアクセス可能なホストデバイスに記憶される。
【００７８】
本構成によれば、電源再投入時における認証処理が不要となる。そのため、ユーザの使い勝手が悪化することを防止しつつ、コントローラの電源のオン／オフが頻繁に繰り返されても、応答が早く、消費電力を抑制出来る。更に、ユーザデータの安全性に関わる情報は、コントローラ側で保護された後に、ホストデバイスのメモリに記憶される。従って、ホストデバイスの安全性が低い場合であっても、それがメモリデバイスの安全性に影響することを抑制出来る。その結果、メモリデバイスの動作信頼性を向上出来る。
【００７９】
なお、実施形態は、上記説明したものに限定されず、種々の変形が可能であるし、また適宜組み合わせたり、独立して実施したりすることも出来る。例えば、第２実施形態は、第１実施形態と独立して実施されても良い。
【００８０】
また、フローチャートで説明した各処理は、可能な限り入れ替えることが出来る。更に、例えば図２等で説明した電源切断時の処理の一部は、電源切断の旨の情報を受信する前に行っても良い。例えば図２におけるステップＳ１０〜Ｓ１２は当該情報を受信する前に行い、当該情報を受信した際にはステップＳ１３の退避処理のみを実行しても良い。このことは、第２３実施形態でも同様である。例えば、アクセスコントロール情報ＩＮＦの暗号化は、電源切断時ではなく、通常動作時に行われても良い。
【００８１】
更に、アクセスコントロール情報ＩＮＦにエラー検出用コード（Error Detecting Code: EDC）を付加しても良い。エラー検出用コードは、エラーを検出するためにデータに付加される冗長なコードである。このエラー検出用コードを付与し、更に暗号化してホストデバイスに退避させても良い。もちろん、デジタル署名を合わせて付与しても良い。
【００８２】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
【符号の説明】
【００８３】
１…メモリシステム、１００…メモリデバイス、１１０…ＮＡＮＤ型フラッシュメモリ、１２０…コントローラ、１２１、１２２、２２０…メモリ、１２３…ワンタイム鍵生成部、１２４…乱数生成部、１２５…暗号鍵生成部、１２６…暗号化部、１２７…復号化部、１２８…データ退避部、１２９…制御部、１３０…電源回路、１４０、２３０…インターフェース、２１０…プロセッサ、３２０…デジタル署名生成部
【図１】
0006293648.tif 000002
【図２】
0006293648.tif 000003
【図３】
0006293648.tif 000004
【図４】
0006293648.tif 000005
【図５】
0006293648.tif 000006
【図６】
0006293648.tif 000007
【図７】
0006293648.tif 000008
【図８】
0006293648.tif 000009
【図９】
0006293648.tif 000010