(57)【特許請求の範囲】
【請求項１】
外部からのアクセス指示に従ってデータの書き込み／読み出しを行う不揮発性記憶装置であって、
データを不揮発で記憶するための記憶領域と、
外部からの書き込みデータを前記記憶領域に書き込む通常書き込み機能と、
前記不揮発性記憶装置に固有のメディアキーと、
前記メディアキーで外部からの書き込みデータを暗号化して前記記憶領域に保護データとして書き込む暗号化書き込み機能と、
前記記憶領域に対するデータの書き込み／読み出し毎に異なるセッションキーを生成するセッションキー生成機能と、
前記記憶領域に書き込まれた前記保護データを読み出し前記セッションキーで暗号化して外部に転送するセッション暗号化読み出し機能と、
外部からの書き込みデータを前記セッションキーで復号化して前記記憶領域に保護データとして書き込む復号化書き込み機能と、
「許可」か「一時許可」か「禁止」の３つのいずれかの状態をとる暗号化アクセス判定部と
を有し、
前記暗号化アクセス判定部の状態が「禁止」の時には前記暗号化書き込み機能を機能させない、
ことを特徴とする不揮発性記憶装置。
【請求項２】
請求項１において、
前記記憶領域には、「許可」か「禁止」の２つのいずれかの状態をとる暗号化アクセス判定情報が記憶されており、
前記不揮発性記憶装置の電源投入に応答して前記暗号化アクセス判定情報を前記記憶領域から読み出し、当該読み出した情報を前記暗号化アクセス判定部に反映させる、
ことを特徴とする不揮発性記憶装置。
【請求項３】
請求項２において、
前記暗号化書き込み機能もしくは前記復号化書き込み機能が機能したときに、前記暗号化アクセス判定部の状態を「一時許可」にし、前記暗号化アクセス判定情報の状態を「禁止」にする、
ことを特徴とする不揮発性記憶装置。
【請求項４】
請求項３において、
外部からのフォーマット指示に応答して、前記暗号化アクセス判定情報の状態を「許可」にする、
ことを特徴とする不揮発性記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は保護されたデータを不揮発性記憶装置へ書き込む技術に関する。
【背景技術】
【０００２】
近年、不揮発性メモリを搭載したメモリカードはデジタルカメラや携帯電話の記憶媒体としてその市場を拡大している。そしてメモリカードに使用されている不揮発性メモリは半導体プロセスの微細化に伴いその容量を増加させるとともに、ビット単価を低下させて安価で入手できるようになっている。また別の一面として、従来ＣＤやテープや書籍等の様々な形でパッケージされた著作物が全て電子データ化されて提供される環境が整ってきている。このような背景を受けて著作物を電子データ化して、メモリカードに記憶してＣＤやテープや書籍に代わって販売される流通形態も徐々に広がっている。
【０００３】
しかしながら電子データには従来のパッケージとは異なり、容易に劣化無しにコピー可能であるという一面を持つために、メモリカードに著作権を保護してデータを格納する必要があり、様々な方法が提案されている。その一例を簡単に説明する。
【０００４】
図１７は従来のメモリカードである不揮発性記憶装置のブロック図である。
【０００５】
１７０１はメモリカードで、１７０２のコントローラと１７０３の不揮発性メモリからなる。コントローラ１７０２内部においてコントローラ１７０２全体を制御するのが制御部１７０４である。メモリカード１７０１外部からの書き込みデータはホストＩ／Ｆ(インタフェース)１７０５とバッファ１７０６とメモリＩ／Ｆ１７０７を経由して不揮発性メモリ１７０３へ書き込まれる。
【０００６】
メモリカード１７０１と外部とで暗号化されたデータをやり取りするためにセッション暗復号部１７０８がある。セッション暗復号部１７０８は、メディアキー１７０９と、乱数発生部１７１０から発生される乱数と、メモリカード１７０１外部のホストからの乱数を基にして生成されるセッションキーを使用して、バッファ１７０６にあるホストからの書き込みデータを復号化する。復号化されたデータは不揮発性メモリ１７０３に格納される。ここでメディアキー１７０９は個々のメモリカード１７０１に固有の値をとり、同じメディアキー１７０９の値を有するメモリカード１７０１は存在しない。
【０００７】
図１８は従来の保護コンテンツ書き込みの仕組みを示した図である。左側がホスト側で行われる処理で右側がメモリカード側で行われる処理である。
【０００８】
最初にホストはメモリカードのシステム情報からキーテーブルとメディアＩＤを取得する(１８０１)。そして、ホスト側にあるデバイス番号とあわせてメディアキーを得る(１８０２)。この演算が正しく行われたら、ホストはメモリカードからは決して読み出すことのできない秘匿情報であるメディアキーを演算で得ることができる。次に、ホストとメモリカード間で互いに乱数情報をやり取りする(１８０３)。ホストもメモリカードもセッションキーに互いにやり取りした乱数を演算させてセッションキーを得る(１８０４)。
【０００９】
ホストは保護したいコンテンツをホスト自身が決定したコンテンツキーで暗号化する(１８０５)。そしてホストはコンテンツキーで暗号化されたコンテンツをメモリカードに転送する(１８０６)。メモリカード内部では転送されたデータをユーザ領域に書き込む(１８０６)。このユーザ領域へ書き込むデータは、ホストが決定したコンテンツキーで暗号化されるだけなの、コンテンツデータとコンテンツキーが同じであればどのメモリカードにも同じデータを転送して書き込むことができる。
【００１０】
ホストはコンテンツキーをメディアキーで暗号化する(１８０７)。次にメディアキーで暗号化されたコンテンツキーをセッションキーで暗号化する(１８０８)。そしてメディアキーとセッションキーで暗号化されたコンテンツキーをメモリカードに転送する(１８０９)。メモリカードの保護領機にデータを書き込む時には必ずセッションキーで暗号化を行うルールである。
【００１１】
メモリカード内部では転送されたデータをセッションキーで復号化する(１８１０)。そして復号化したデータを保護領域に書き込む(１８１１)。復号化されたデータはメディアキーで暗号化されたコンテンツキーである。
【００１２】
図１９はホストからメモリカードへの通常のデータ書き込みを説明するシーケンス図である。まずステップ１９０１でホストはメモリカードへ通常書き込みコマンドを発行する。次にステップ１９０２でホストはメモリカードに対して書き込みデータの転送をする。処理１９０３でメモリカードはホストからの書き込みデータをメモリカード内部の不揮発性メモリに書き込む。書き込みの期間中はメモリカードはホストにビジー信号を出力することで書き込み中であることを通知する。最後にステップ１９０４でメモリカードはホストへのビジーの出力を終えることでホストは書き込みの終了を認識する。この通常の書き込みにおいてホストとメモリカード間でやり取りされるデータはなんら暗号化されていない。
【００１３】
次に図２０は従来のホストからメモリカードへの保護データの書き込みを説明するシーケンス図である。
【００１４】
最初はメモリカードは保護領域への書き込みが行えない状態である。
【００１５】
まずはステップ２００１でホストはメモリカードに対してシステム情報の取得コマンドを発行する。次にステップ２００２でメモリカードはホストにカードシステム情報を伝える。次に処理２００３でホストはカードシステム情報とホスト内部のデバイス番号を演算してメディアキーを算出する。
【００１６】
ホストは算出したメディアキーからセッションキーを生成するためにステップ２００４でホストが生成した乱数をメモリカードに転送する。メモリカードはステップ２００５でメモリカードが生成した乱数をホストに転送する。ステップ２００６でメモリカードは保護領域へのデータ書き込みが可能な状態へ遷移する。
【００１７】
ホストはステップ２００７で保護領域への書き込みコマンドを発行し、ステップ２００８でセッションキーで暗号化済みのデータをメモリカードに転送する。処理２００９でメモリカードはホストからの書き込みデータをセッションキーで復号化してメモリカード内部の不揮発性メモリに書き込む。書き込みの期間中はメモリカードはホストにビジー信号を出力することで書き込み中であることを通知する。そして、メモリカードは保護領域への書き込みが行えない状態へと戻る。これは保護領域へのデータの書き込み毎にステップ２００４，２００５のセッションキーの生成手順が必要である。つまり保護領域へのデータの書き込み毎に暗号化のキーを乱数によって変化させることで、保護領域へのデータ書き込みの安全性をより高めるものとなっている。
【００１８】
最後にステップ２０１０でメモリカードはホストへのビジーの出力を終えることでホストは書き込みの終了を認識する。
【００１９】
この保護領域へのデータ書き込みにおいてホストとメモリカード間でやり取りされるデータは書き込みデータ毎に異なるキーで暗号化されている。
【００２０】
図２１はメモリカードが保護領域への書き込みを行えない状態であるにもかかわらず、ホストから保護領域への書き込みコマンドが発行された場合のシーケンス図である。
【００２１】
メモリカードが保護領域への書き込みが不可能な状態で、ステップ２１０１でホストが保護領域への書き込みコマンドを発行しても、メモリカードはステップ２１０２で不正コマンドであることをレスポンスでホストに返す。ホストは保護領域へのデータ書き込みを行うことはできない。
【００２２】
図２２は従来の保護領域からのコンテンツ読み出しの仕組みを示した図である。左側がホスト側で行われる処理で右側がメモリカード側で行われる処理である。
【００２３】
最初にホストはメモリカードのシステム情報からキーテーブルとメディアＩＤを取得する(２２０１)。そして、ホスト側にあるデバイス番号とあわせてメディアキーを得る(２２０２)。この演算が正しく行われたら、ホストはメモリカードからは決して読み出すことの出来ない秘匿情報であるメディアキーを演算で得ることができる。次に、ホストとメモリカード間で互いに乱数情報をやり取りする(２２０３)。ホストもメモリカードもセッションキーに互いにやり取りした乱数を演算させてセッションキーを得る(２２０４)。
【００２４】
ホストからの保護領域の読み出し要求に対して、メモリカードは保護領域に書き込まれているメディアキーで暗号化されたコンテンツキーを読み出し(２２０５)、セッションキーで暗号化する(２２０６)。そのデータをホストへ読み出し転送する(２２０７)。
【００２５】
ホストはメモリカードから読み出したデータをまずセッションキーで復号化し(２２０８)、次にメディアキーで復号化する(２２０９)ことでメモリカードからコンテンツキーを得る。
【００２６】
ホストはさらにメモリカードのユーザ領域からコンテンツキーで暗号化されたコンテンツを読み出し(２２１０)、コンテンツキーで復号化する(２２１１)ことでコンテンツデータを得る。
【００２７】
以上のように、メモリカード１７０１の保護領域に書き込まれているコンテンツキーは各メモリカードに固有の秘匿情報であるメディアキーで暗号化されている。またさらにメモリカード１７０１外部とのやり取りでは、各メモリカードに固有の秘匿情報であるメディアキーに乱数演算を施したものを、書き込み毎に異なる乱数により異なるキーを生成して行われる。
【特許文献１】特開2002-26898号公報
【発明の開示】
【発明が解決しようとする課題】
【００２８】
しかしながら、上記方法によるとメモリカードにコンテンツデータを書き込むためにいくつかの面倒な手順が必要となる。ひとつは各メモリカードからメモリカード固有のメディアキーを演算により算出する必要があるということ、もうひとつはメディアキーにさらに乱数を演算したセッションキーで書き込み毎に暗号化を施す必要があることである。
【００２９】
つまり、メモリカード毎に異なるキーで暗号化してデータを書き込む必要があるということと、１枚のメモリカードに対してさえ、書き込み毎に異なるキーで暗号化してデータを書き込む必要がある。
【００３０】
その結果、従来の不揮発性記憶装置のデータ書き込みシステムにおいては、複数枚のメモリカードに対して同じコンテンツデータを書き込む際においても、同じデータをメモリカードに転送できないために、コンテンツ書き込み済みのパッケージメディアを生産する工場、即ち多数のメモリカードに対して映画やミュージックビデオや音楽データ等の同一のコンテンツを書き込む必要がある場合に、コンテンツデータの書き込みのためのシステムが複雑になるとともに、ＴＡＴが低下するという課題を有している。
【課題を解決するための手段】
【００３１】
本発明による不揮発性記憶装置は、外部からのアクセス指示に従ってデータの書き込み／読み出しを行う不揮発性記憶装置であって、データを不揮発で記憶するための記憶領域と、外部からの書き込みデータを前記記憶領域に書き込む通常書き込み機能と、前記不揮発性記憶装置に固有のメディアキーと、前記メディアキーで外部からの書き込みデータを暗号化して前記記憶領域に保護データとして書き込む暗号化書き込み機能と、前記記憶領域に対するデータの書き込み／読み出し毎に異なるセッションキーを生成するセッションキー生成機能と、前記記憶領域に書き込まれた前記保護データを読み出し前記セッションキーで暗号化して外部に転送するセッション暗号化読み出し機能とを有する、ことを特徴とする。
【００３２】
また、上記不揮発性記憶装置において、外部からの書き込みデータを前記セッションキーで復号化して前記記憶領域に保護データとして書き込む復号化書き込み機能をさらに有する、ことを特徴とする。
【００３３】
また、上記不揮発性記憶装置において、前記メディアキーで外部からの書き込みデータの一部を暗号化して前記記憶領域に保護データとして書き込む部分暗号化書き込み機能をさらに有する、ことを特徴とする。
【００３４】
また、上記不揮発性記憶装置において、「許可」か「一時許可」か「禁止」の３つのいずれかの状態をとる暗号化アクセス判定部をさらに備え、前記暗号化アクセス判定部の状態が「禁止」の時には前記暗号化書き込み機能を機能させない、ことを特徴とする。
【００３５】
また、上記不揮発性記憶装置において、前記記憶領域には、「許可」か「禁止」の２つのいずれかの状態をとる暗号化アクセス判定情報が記憶されており、前記不揮発性記憶装置の電源投入に応答して前記暗号化アクセス判定情報を前記記憶領域から読み出し、当該読み出した情報を前記暗号化アクセス判定部に反映させる、ことを特徴とする。
【００３６】
また、上記不揮発性記憶装置において、前記暗号化書き込み機能もしくは前記復号化書き込み機能が機能したときに、前記暗号化アクセス判定部の状態を「一時許可」にし、前記暗号化アクセス判定情報の状態を「禁止」にする、ことを特徴とする。
【００３７】
また、上記不揮発性記憶装置において、外部からのフォーマット指示に応答して、前記暗号化アクセス判定情報の状態を「許可」にする、ことを特徴とする。
【００３８】
本発明による不揮発性記憶装置へのデータ書き込みシステムは、不揮発性記憶装置と、前記不揮発性記憶装置に対してデータの書き込みを行うホスト機器とを備え、前記不揮発性記憶装置は、データを不揮発で記憶するための記憶領域と、前記ホストからの書き込みデータを前記記憶領域に書き込む通常書き込み機能と、前記不揮発性記憶装置に固有のメディアキーと、前記メディアキーで前記ホストからの書き込みデータを暗号化して前記記憶領域に保護データとして書き込む暗号化書き込み機能とを有し、前記ホスト機器は、前記通常書き込み機能を使用するように前記不揮発性記憶装置に書き込み指示を行う通常書き込み指示機能と、前記暗号化書き込み機能を使用するように前記不揮発性記憶装置に書き込み指示を行う暗号化書き込み指示機能とを有する、ことを特徴とする。
【００３９】
また、上記不揮発性記憶装置へのデータ書き込みシステムにおいて、前記不揮発性記憶装置と前記ホスト機器はさらに、前記不揮発性記憶装置と前記ホスト機器に共通で、データの書き込み毎に異なるセッションキーを生成するセッションキー生成機能を互いに備える、ことを特徴とする。
【００４０】
また、上記不揮発性記憶装置へのデータ書き込みシステムにおいて、前記不揮発性記憶装置はさらに、前記メディアキーで外部からの書き込みデータの一部を暗号化して前記記憶領域に保護データとして書き込む部分暗号化書き込み機能を備え、前記ホスト機器はさらに、前記部分暗号化書き込み機能を使用するように前記不揮発性記憶装置に書き込み指示を行う部分暗号化書き込み指示機能を備える、ことを特徴とする。
【発明の効果】
【００４１】
本発明によれば、保護データの書き込みにおいて不揮発性記憶装置に固有のメディアキーによる暗号化や、書き込み毎に異なるセッションキーによる暗号化を必要としないので、不揮発性記憶装置に固有の鍵で暗号化されたコンテンツデータの書き込みを容易に行うことができる。これにより、コンテンツ書き込み済みのパッケージメディアを生産する工場におけるコンテンツデータ書き込みのためのシステムを簡易化するとともにＴＡＴを向上させることができる。
【発明を実施するための最良の形態】
【００４２】
本発明の不揮発性記憶装置へのデータ書き込みシステムおよび不揮発性記憶装置について説明する。
【００４３】
［１．システムの概要］
図１は本発明の不揮発性記憶装置へ保護データを書き込むシステムの構成例を示した模式図である。
【００４４】
１０１は保護データを書き込むための制御を行うＰＣ(パソコン)である。１０２はパソコン１０１の制御によって複数のメモリカードに保護データを書き込むための並列書き込み装置であり、複数のメモリカードを装着するための装着口１０３を複数備えている。
【００４５】
図２は本発明の不揮発性記憶装置へのデータ書き込みシステムと不揮発性記憶装置の詳細を示したブロック図である。このシステムは、ホスト２０１とメモリカード２０２とを備える。ホスト２０１は、図１のパソコン１０１と並列書き込み装置１０２に相当する。メモリカード２０２はコントローラ２０３と不揮発性メモリ２０４とを備える。
【００４６】
コントローラ２０３内部においてコントローラ２０３全体の動作を制御するのが制御部２０５である。ホスト２０１からメモリカード２０２への書き込みデータはホストＩ／Ｆ２０６とバッファ２０７とメモリＩ／Ｆ２０８を経由して不揮発性メモリ２０４へ書き込まれる。
【００４７】
メモリカード２０２とホスト２０１とで暗号化されたデータをやり取りするためにセッション暗復号部２０９がある。セッション暗復号部２０９は、メディアキー２１０と、乱数発生部２１１から発生される乱数と、ホスト２０１からの乱数を基にして生成されるセッションキーを使用して、バッファ２０７にあるホスト２０１からの書き込みデータを復号化する。復号化されたデータは不揮発性メモリ２０４に格納される。
【００４８】
コントローラ２０３はさらに、暗号化を行わない保護領域への書き込みを許可するかどうかを判定する暗号化アクセス判定部２１２と、メディアキーでデータを暗号化するためのメディア暗号部２１３とを備える。不揮発性メモリ２０４は、内部に暗号化判定情報２１４を持つ。ここでメディアキー２１０は従来と同様に個々のメモリカード２０２に固有の値をとり、同じメディアキー２１０の値を有するメモリカード２０２は存在しない。
【００４９】
図３はコントローラ２０３内部の暗号化アクセス判定部２１２に記憶される情報の構成を示した表である。暗号化アクセス判定部２１２に記憶される情報は暗号化アクセス判定情報と暗号化手順とセッションキーの３つである。暗号化アクセス判定情報は「許可」と「一時許可」と「禁止」の３つの状態を取りうる。また暗号化手順は「実施済み」と「未実施」の２つの状態をとる。セッションキーはホスト２０１とメモリカード２０２間での保護されたデータをやり取りする際に使用するセッションキーを記憶する。
【００５０】
図４は不揮発性メモリ２０４内部の暗号化判定情報２１４に記憶される情報の構成を示した表である。暗号化判定情報２１４としてとりうる値は「許可」と「禁止」の２つの状態である。
【００５１】
図５はメモリカード２０２の初期化シーケンスである。
【００５２】
ホスト２０１はまずステップ５０１で装着されているメモリカード２０２に対して電圧を印加する。電圧印加を受けてメモリカード２０２は処理５０２でメモリカード２０２内部の初期化を行う。メモリカード２０２はこの初期化の中で不揮発性メモリ２０４から暗号化判定情報２１４を読み出して暗号化アクセス判定部２１２に記憶させる。ここで、暗号化判定情報２１４に記録されていた情報が「許可」であった場合には、メモリカード２０２は従来行っていたセッションキーの生成を含む手順を行わなくても保護領域へのデータ書き込みが可能な状態にある。
【００５３】
ホスト２０１はメモリカード２０２に電圧印加後にメモリカード２０２内部の初期化が終了したかどうかを確認するために、ステップ５０３で初期化完了問い合わせのコマンドをレスポンスが返ってくるまで複数回行う。メモリカード２０２は内部の初期化処理が終了していればステップ５０４で初期化が終了したことをレスポンスする。
【００５４】
メモリカード２０２の初期化終了を認識したホスト２０１はステップ５０５でメモリカード２０２のＩＤや動作速度、動作電圧・電流等のカード情報を取得するコマンドを発行し、メモリカード２０２はステップ５０６でホスト２０１から問い合わせがあった情報をレスポンスで返す。
【００５５】
メモリカード２０２の情報を得たホスト２０１は、ステップ５０７でメモリカード２０２に対してデータの読み出しコマンドを発行する。メモリカード２０２はステップ５０８でデータをホスト２０１に返す。
【００５６】
［２．セッションキーを用いない書き込み］
図６はメモリカード２０２への保護データの書き込みシーケンスである。図５の処理で暗号化アクセス判定部２１２に「許可」(もしくは「一時許可」)が記録された状態である場合について示している。
【００５７】
ホスト２０１はまずステップ６０１で保護領域への書き込みのコマンドを発行する。従来はセッションキーの生成を行わずに保護領域への書き込みコマンドを発行した場合にはメモリカード２０２は不正コマンドのレスポンスを返していたが、本発明のメモリカード２０２においては暗号化アクセス判定部２１２の暗号化アクセス判定情報に「許可」(もしくは「一時許可」)が記録されているため不正なレスポンスは返さない。
【００５８】
続けてホスト２０１はステップ６０２で、セッションキーで暗号化されていない非暗号化書き込みデータをメモリカード２０２に転送する。メモリカード２０２は保護領域への書き込みでは本来セッションキーでの復号化を行った後に不揮発性メモリ２０４の保護領域にデータを書き込むが、セッションキーの生成を行わずに保護領域へデータの書き込みが行われる場合には、処理６０３でセッションキーによる復号化を行わずに不揮発性メモリ２０４の保護領域にデータを書き込む。
【００５９】
最後にステップ６０４でメモリカード２０２はホスト２０１へのビジーの出力を終えることでホスト２０１は書き込みの終了を認識する。
【００６０】
この保護領域へのデータの書き込みにおいてホスト２０１とメモリカード２０２間でやり取りされるデータはセッションキーで暗号化されない。
【００６１】
図７は図６の書き込み処理６０３における制御部２０５の処理のフローチャートである。
【００６２】
最初に状態７０１では制御部２０５はコマンド待ちの状態にある。次に判定７０２では保護領域への書き込みコマンドが発行されたかどうかの判定を行い、保護領域への書き込みコマンドが発行されたと判定したら判定７０３へと遷移する。判定７０３では暗号化アクセス判定部２１２の暗号化手順が「実施済み」であるかどうかを判定する。これは従来行っているセッションキーの生成シーケンスが行われているかどうかの判定である。既に実施済みと判定した場合には判定７０４へと遷移する。判定７０４では暗号化アクセス判定部２１２の暗号化アクセス判定情報の状態を判定する。暗号化アクセス判定部２１２の暗号化アクセス判定情報が「許可」の場合には状態７０５へと遷移し、「禁止」または「一時許可」の場合には状態７０７へと遷移する。
【００６３】
状態７０５では不揮発性メモリ２０４の暗号化判定情報２１４に「禁止」を書き込む。このとき暗号化アクセス判定部２１２に対してはなにも変更はしない。続いて状態７０６に遷移して、暗号化アクセス判定部２１２の暗号化アクセス判定情報に「禁止」を記録する。
【００６４】
以降は状態７０７で、ホスト２０１からの書き込みデータに対してセッションキーの復号化を行った後に、復号化したデータを不揮発性メモリ２０４の保護領域に書き込み、状態７０８で暗号化アクセス判定部２１２の暗号化手順を「未実施」の状態にして、状態７０１へと戻る。この７０３〜７０８の処理は従来の図２０のシーケンス図のステップ２００７以降のシーケンスに相当する。ただし、状態７０４〜７０６での処理は本発明で新たに追加されている処理である。
【００６５】
判定７０３で暗号化アクセス判定部２１２の暗号化手順が「未実施」であると判定した場合には判定７０９へと遷移する。判定７０９では暗号化アクセス判定部２１２の暗号化アクセス判定情報の状態を判定する。暗号化アクセス判定部２１２の暗号化アクセス判定情報が「禁止」の場合には状態７１０へと遷移し、書き込みエラーをホスト２０１に通知する。この７０９から７１０のフローは従来の図２１のシーケンス図の処理に相当する。
【００６６】
判定７０９で暗号化アクセス判定部２１２の暗号化アクセス判定情報が「許可」の場合には７１１へと遷移する。状態７１１では不揮発性メモリ２０４の暗号化判定情報２１４に「禁止」を書き込む。続いて状態７１２に遷移して、暗号化アクセス判定部２１２の暗号化アクセス判定情報に「一時許可」を記録する。そして状態７１３ではセッションキーの復号化を行わずに不揮発性メモリ２０４の保護領域にホスト２０１から転送された書き込みデータを書き込む。判定７０９から状態７１１、７１２、７１３の処理は本発明の図６のシーケンス図に相当する。セッションキーの暗復号を行わずにホスト２０１からメモリカード２０２にデータを書き込むときの処理である。
【００６７】
判定７０９で暗号化アクセス判定部２１２の暗号化アクセス判定情報が「一時許可」であると判定した場合、これは状態７１２の処理を一度行っていることを示しているが、この場合には状態７１１や７１２の処理は既に実行済みであり、改めて行う必要がないので状態７１３へと遷移する。
【００６８】
以上のように本発明では暗号化アクセス判定部２１２の暗号化アクセス判定情報が「許可」の状態であればセッションキーの暗復号化を行わずにホスト２０１からメモリカード２０２へとデータを書き込む手段を提供している。ただし、保護領域に対して保護データを書き込んだ(処理７０８または処理７１３)場合には、かならず不揮発性メモリ２０４の暗号化判定情報２１４に対して「禁止」を記録する(処理７０５または処理７１１)ために、再度メモリカード２０２の初期化が行われると図５の処理５０２で説明したように暗号化アクセス判定部２１２の暗号化アクセス判定情報には不揮発性メモリ２０４の暗号化判定情報２１４に記憶された「禁止」が反映されるために、以降は図７におけるセッションキーの復号化を行わない書き込み(状態７１３)になることはない。また、ホスト２０１が従来と同じ様にセッションキー生成の手順を実行してアクセスしてきても、従来と同様にセッションキーによって暗号化されたデータを復号化してメモリカード２０２に書き込むことができる。
【００６９】
図８はセッションキーの生成のフローチャートである。最初に状態８０１では制御部２０５はコマンド待ちの状態にある。次に判定８０２ではセッションキー生成手順のコマンドが発行されたかどうかの判定を行い、セッションキー生成手順のコマンドが発行されたと判定したら状態８０３へと遷移する。状態８０３ではセッションキーの生成処理を行い、状態８０４へと遷移する。状態８０４では暗号化アクセス判定部２１２の暗号化手順を「実施済み」にする。この状態８０４で暗号化アクセス判定部２１２の暗号化手順を「実施済み」にしている場合には図７のフローチャートの判定７０３で暗号化手順「実施済み」と判定される。
【００７０】
図９は図６の書き込みシーケンスで保護データを書き込む時の仕組みを示した図である。左側がホスト側で行われる処理で右側がメモリカード側で行われる処理である。図１８の従来の保護領域へのデータ書き込みとは異なり、不揮発性メモリ２０４の保護領域に書き込まれる保護データがホスト２０１とメモリカード２０２間で暗号化無しに転送されることがわかる。これは保護領域へのデータ書き込みにおいてメモリカード２０２に対してユニークなセッションキーを変更するという必要がなく、全てのメモリカード２０２に対して同じデータを転送して保護領域へデータを書き込むことができることを示している。
【００７１】
図１０にメモリカード２０２の製造における出荷前検査での暗号化判定情報２１４の設定のフローチャートである。
【００７２】
状態１００１で不揮発性メモリ２０４の暗号化判定情報２１４に対して「許可」を書き込んでおく。そうすることで、メモリカード２０２にはセッションキーの暗復号化を行わずに保護領域へデータの書き込みができる。
【００７３】
ただし、このように暗号化判定情報２１４に対して「許可」を書き込んでおくのは、メモリカード２０２の出荷時において保護すべきコンテンツが保護領域には全く記録されていない状態に限られる。それは本発明の考え方が、保護すべきデータが存在しないときのみ、保護領域に対するアクセスを通常のアクセスと同等の容易さで行うことができるようにしているからである。
【００７４】
以上のように本発明の不揮発性記憶装置へのデータ書き込みシステムおよび不揮発性記憶装置では、メモリカード２０２の保護領域に保護すべきデータが書き込まれていない状態、例えばメモリカード２０２の検査直後の状態において、メモリカード２０２に対してユニークかつ書き込みデータ毎に乱数で与えられるセッションキーを使用することなく、どのメモリカード２０２に対しても同じ書き込みデータを転送して保護領域に書き込むことを可能にする。
【００７５】
［３．書き込みデータのメディアキーでの暗号化］
ただし、ここまでの説明では図９で示されるように保護領域に書き込むデータは従来行われていたメディアキーによる暗号化は行われていない。ホスト２０１からはどのメモリカード２０２に対しても同じデータを転送しつつ、メモリカード２０２の保護領域にはメディアキーによる暗号化がされたデータを書き込む方法を以降説明する。
【００７６】
図１１はメモリカード２０２に対して暗号化指定を行って保護領域へデータ書き込みを行うシーケンスである。図５の処理で暗号化アクセス判定部２１２に「許可」(もしくは「一時許可」)が記録された状態である場合について示している。
【００７７】
ホスト２０１はまずステップ１１０１で、暗号化指定で保護領域への書き込みコマンドを発行する。
【００７８】
続けてホスト２０１はステップ１１０２でセッションキーでもメディアキーでも暗号化されていない非暗号化書き込みデータをメモリカード２０２に転送する。ここでメモリカード２０２は暗号化指定の保護領域への書き込みであるので、ホスト２０１からの書き込みデータがバッファ２０７に格納されているときにメディア暗号部２１３がメディアキー２１０による暗号化を行い、その暗号化されたデータを不揮発性メモリ２０４の保護領域に書き込む(１１０３)。
【００７９】
最後にステップ１１０４でメモリカード２０２はホスト２０１へのビジーの出力を終えることでホスト２０１は書き込みの終了を認識する。
【００８０】
この保護領域へのデータ書き込みにおいてホスト２０１とメモリカード２０２間でやり取りされるデータはセッションキーでもメディアキーでも暗号化されないが、不揮発性メモリ２０４に書き込まれるデータはメディアキーで暗号化されたデータになる。
【００８１】
図１２は図１１の書き込み処理６０３における制御部２０５の処理のフローチャートである。
【００８２】
まず最初に状態１２０１では制御部２０５はコマンド待ちの状態にある。次に判定１２０２では保護領域への書き込みコマンドが発行されたかどうかの判定を行い、保護領域への書き込みコマンドが発行されたと判定したら判定１２０３へと遷移する。判定１２０３では暗号化アクセス判定部２１２の暗号化手順が「実施済み」であるかどうかを判定する。これは従来行っているセッションキーの生成シーケンスが行われているかどうかの判定である。既に実施済みと判定した場合には判定１２０４へと遷移する。判定１２０４では暗号化アクセス判定部２１２の暗号化アクセス判定情報の状態を判定する。暗号化アクセス判定部２１２の暗号化アクセス判定情報が「許可」の場合には状態１２０５へと遷移し、「禁止」または「一時許可」の場合には状態１２０７へと遷移する。
【００８３】
状態１２０５では不揮発性メモリ２０４の暗号化判定情報２１４に「禁止」を書き込む。このとき暗号化アクセス判定部２１２に対してはなにも変更はしない。続いて状態１２０６に遷移して、暗号化アクセス判定部２１２の暗号化アクセス判定情報に「禁止」を記録する。
【００８４】
以降は状態１２０７で、ホスト２０１からの書き込みデータに対してセッションキーの復号化を行った後に、復号化したデータを不揮発性メモリ２０４の保護領域に書き込み、状態１２０８で暗号化アクセス判定部２１２の暗号化手順を「未実施」の状態にして、状態１２０１へと戻る。この１２０３〜１２０８の処理は従来の図２０のシーケンス図のステップ２００７以降のシーケンスに相当する。ただし、状態１２０４〜１２０６での処理は本発明で新たに追加されている処理である。
【００８５】
判定１２０３で暗号化アクセス判定部２１２の暗号化手順が「未実施」であると判定した場合には判定１２０９へと遷移する。判定１２０９では暗号化アクセス判定部２１２の暗号化アクセス判定情報の状態を判定する。暗号化アクセス判定部２１２の暗号化アクセス判定情報が「禁止」の場合には状態１２１０へと遷移し、書き込みエラーをホスト２０１に通知する。この１２０９から１２１０のフローは従来の図２１のシーケンス図の処理に相当する。
【００８６】
判定１２０９で暗号化アクセス判定部２１２の暗号化アクセス判定情報が「許可」の場合には１２１１へと遷移する。状態１２１１では不揮発性メモリ２０４の暗号化判定情報２１４に「禁止」を書き込む。続いて状態１２１２に遷移して、暗号化アクセス判定部２１２の暗号化アクセス判定情報に「一時許可」を記録する。そして状態１２１３ではセッションキーの復号化を行わず、メディアキーによる暗号化を行い不揮発性メモリ２０４の保護領域にホスト２０１から転送された書き込みデータを書き込む。判定１２０９から状態１２１１、１２１２、１２１３の処理は本発明の図１１のシーケンス図に相当する。セッションキーの暗復号を行わずにホスト２０１からメモリカード２０２にデータを書き込むときの処理である。
【００８７】
判定１２０９で暗号化アクセス判定部２１２の暗号化アクセス判定情報が「一時許可」であると判定した場合、これは状態１２１２の処理を一度行っていることを示しているが、この場合には状態１２１１や１２１２の処理は既に実行済みであり、改めて行う必要がないので状態１２１３へと遷移する。
【００８８】
以上のように本発明では暗号化アクセス判定２１２の暗号化アクセス判定情報が「許可」の状態であればメディアキーによる暗号化をメモリカード２０２内部で行ってホスト２０１からメモリカード２０２へとデータを書き込む手段を提供している。
【００８９】
図１３は図１１の書き込みシーケンスで保護領域にデータを書き込む時の仕組みを示した図である。左側がホスト側で行われる処理で右側がメモリカード側で行われる処理である。
【００９０】
図９の保護データの書き込みとは異なり、ホスト２０１からメモリカード２０２に対して暗号化指定での保護領域への書き込みに伴い送られる書き込みデータであるコンテンツキーは、セッションキーでもメディアキーでも暗号化されない(１３０１)。メモリカード２０２では送られたコンテンツキーを秘匿情報であるメディアキーで暗号化する(１３０２)。そしてその後暗号化されたデータを不揮発性メモリ２０４の保護領域に書き込む。
【００９１】
こうすることで不揮発性メモリ２０４に書き込まれるデータは各メモリカードに固有の暗号化が行われた状態にすることができる。
【００９２】
以上、セッションキーによる暗号化を行うこと無しに、ホスト２０１からメモリカード２０２へとデータを転送して、メモリカード２０２の保護領域に書き込む方法、そして、セッションキーによる暗号化を行うこと無しに、ホスト２０１からメモリカード２０２へとデータを転送して、そのデータをメモリカード２０２のメディアキーで暗号化してメモリカード２０２の保護領域に書き込む方法を説明してきた。
【００９３】
ここではさらに発展したコマンドを発行することによって、メモリカード２０２に転送するデータの一部分をメディアキーで暗号化する手法について説明する。
【００９４】
図１４はメモリカード２０２に対して暗号化アドレス指定を行って保護領域にデータ書き込みを行うシーケンスである。図５の処理で暗号化アクセス判定部２１２に「許可」(もしくは「一時許可」)が記録された状態である場合について示している。
【００９５】
ホスト２０１はまずステップ１４０１で暗号化アドレス指定で保護領域への書き込みコマンドを発行する。
【００９６】
続けてホスト２０１はステップ１４０２でセッションキーでもメディアキーでも暗号化されていない非暗号化書き込みデータをメモリカード２０２に転送する。ここでメモリカード２０２は暗号化アドレス指定での保護領域への書き込みであるので、ホスト２０１からの書き込みデータがバッファ２０７に格納されているときにメディアキー２１０を使用してメディア暗号部２１３がホスト２０１からステップ１４０１で指定されたアドレス部分にのみメディアキーによる暗号化を行い、その暗号化されたデータを不揮発性メモリ２０４の保護領域に書き込む。
【００９７】
最後にステップ１４０４でメモリカード２０２はホスト２０１へのビジーの出力を終えることでホスト２０１は書き込みの終了を認識する。
【００９８】
この保護領域へのデータ書き込みにおいてホスト２０１とメモリカード２０２間でやり取りされるデータはセッションキーでもメディアキーでも暗号化されないが、不揮発性メモリ２０４に書き込まれるデータはホスト２０１から指定されたアドレス部分のみがメディアキーで暗号化されたデータになる。
【００９９】
［４．保護データの有無の判定］
ここまでは不揮発性メモリ２０４の暗号化判定情報２１４に「許可」が書き込まれるのは図１０で説明したメモリカードの出荷検査のときのみであった。それはメモリカードの出荷時には保護すべきコンテンツはまだ何も書き込まれていないことが保証されるからである。以下では、不揮発性メモリ２０４の暗号化判定情報２１４に「許可」が書き込まれる別のケースについて説明する。
【０１００】
図１５はメモリカード２０２に対してホスト２０１がフォーマットコマンドを発行したときのメモリカード２０２内部の処理のフローチャートである。
【０１０１】
まず状態１５０１では制御部２０５はコマンド待ちの状態にある。次に判定１５０２ではフォーマットコマンドが発行されたかどうかの判定を行い、フォーマットコマンドが発行されたと判定したときは状態１５０３へと遷移する。状態１５０３では制御部２０５は不揮発性メモリ２０４に書き込まれているデータを消去した後に、所定のフォーマットデータを書き込む。この処理を行うことで不揮発性メモリ２０４の保護領域は保護すべきコンテンツが消去されて存在しない状態になる。次に状態１５０４へ遷移し、暗号化判定情報２１４に対して「許可」を書き込む。最後に状態１５０１へと戻る。この処理によってメモリカード２０２は保護すべきコンテンツが存在せず、かつ暗号化手順なしに保護領域へデータの書き込みが行える状態になる。
【０１０２】
図１６はメモリカード２０２の保護領域に対してホスト２０１が消去コマンドを発行したときのメモリカード２０２内部の処理のフローチャートである。
【０１０３】
まず状態１６０１では制御部２０５はコマンド待ちの状態にある。次に判定１６０２では保護領域の消去コマンドが発行されたかどうかの判定を行い、保護領域の消去コマンドが発行されたと判定したときは状態１６０３へと遷移する。状態１６０３では制御部２０５は不揮発性メモリ２０４の保護領域の消去を行うことで不揮発性メモリ２０４の保護領域は保護すべきコンテンツが存在しない状態になる。次に状態１６０４へ遷移し、暗号化判定情報２１４に対して「許可」を書き込む。最後に状態１６０１へと戻る。この処理によってメモリカード２０２は保護すべきコンテンツが存在せず、かつ暗号化手順なしに保護領域へデータの書き込みが行える状態になる。
【０１０４】
なお、保護すべきデータが存在しない場合には保護領域に対して暗号化手順の必要性はない。従って、同様の保護すべきデータの有無の判断ができるのであれば、上記条件に限らず暗号化手順を必要としない保護領域へのデータ書き込みを許可しても構わない。
【０１０５】
［５．まとめ］
以上、メモリカード２０２に保護すべきコンテンツデータが書き込まれていないことが保証される時、例えば出荷検査時等に暗号化判定情報２１４に対して「許可」を書き込んでおくことで、まだ保護すべきコンテンツが書き込まれていない状態である期間には、任意のメモリカード２０２に対して同じデータを転送して保護領域に保護データを書き込むことができる。またその書き込む保護データの任意のアドレス部分をメモリカード２０２固有のメディアキーで暗号化して書き込むことができる。そして保護データが書き込まれた後は、従来と同様にセッションキーの生成を必要とする暗号化されたインタフェースでしか保護データを読み出すことはできない。
【０１０６】
つまり従来と同程度にデータを保護することが可能でかつ、保護すべきデータがまだ書き込まれていないときには、従来に比べて格段に容易な方法で保護データを書き込むことができる不揮発性記憶装置へのデータ書き込みシステムおよび不揮発性記憶装置を提供するものである。
【産業上の利用可能性】
【０１０７】
本発明は不揮発性記憶装置へ保護されたデータを書き込む技術に適用でき、特に保護すべきデータを多数の不揮発性記憶装置に対して書き込む際のＴＡＴの短縮や処理の容易化に有用である。
【図面の簡単な説明】
【０１０８】
【図１】本発明の不揮発性記憶装置へ保護データを書き込むシステムの構成例
【図２】本発明の不揮発性記憶装置へのデータ書き込みシステムと不揮発性記憶装置の詳細を示したブロック図
【図３】暗号化アクセス判定部に記憶される情報の構成表
【図４】暗号化判定情報に記憶される情報の構成表
【図５】メモリカードの初期化シーケンス図
【図６】保護領域へのデータ書き込みのシーケンス図
【図７】保護領域へのデータ書き込み処理のフローチャート
【図８】セッションキー生成のフローチャート
【図９】保護領域へのデータ書き込みの仕組みを示す図
【図１０】メモリカードの検査のフローチャート
【図１１】暗号化を行う保護領域へのデータ書き込みのシーケンス図
【図１２】暗号化を行う保護領域へのデータ書き込み処理のフローチャート
【図１３】暗号化を行う保護領域へのデータ書き込みの仕組みを示す図
【図１４】アドレス指定で暗号化を行う保護領域へのデータ書き込みのシーケンス図
【図１５】フォーマットコマンドのフローチャート
【図１６】保護領域消去のフローチャート
【図１７】従来の不揮発性記憶装置のブロック図
【図１８】従来の保護領域へのデータ書き込みの仕組みを示す図
【図１９】従来の通常のデータ書き込みのシーケンス図
【図２０】従来の保護領域へのデータ書き込みのシーケンス図
【図２１】従来の保護領域へのデータ書き込みエラーのシーケンス図
【図２２】従来の保護領域からのデータ読み出しの仕組みを示す図
【符号の説明】
【０１０９】
１０１  パソコン
１０２  並列書き込み装置
２０１  ホスト
２０２  メモリカード
２０３  コントローラ
２０４  不揮発性メモリ
２０５  制御部
２０６  ホストＩ／Ｆ
２０７  バッファ
２０８  メモリＩ／Ｆ
２０９  セッション暗復号部
２１０  メディアキー
２１１  乱数生成部
２１２  暗号化アクセス判定部
２１３  メディア暗号部
２１４  暗号化判定情報
１７０１  メモリカード
１７０２  コントローラ
１７０３  不揮発性メモリ
１７０４  制御部
１７０５  ホストＩ／Ｆ
１７０６  バッファ
１７０７  メモリＩ／Ｆ
１７０８  セッション暗復号部
１７０９  メディアキー
１７１０  乱数生成部
【図１】
0005005477.tif 000002
【図２】
0005005477.tif 000003
【図３】
0005005477.tif 000004
【図４】
0005005477.tif 000005
【図５】
0005005477.tif 000006
【図６】
0005005477.tif 000007
【図７】
0005005477.tif 000008
【図８】
0005005477.tif 000009
【図９】
0005005477.tif 000010
【図１０】
0005005477.tif 000011
【図１１】
0005005477.tif 000012
【図１２】
0005005477.tif 000013
【図１３】
0005005477.tif 000014
【図１４】
0005005477.tif 000015
【図１５】
0005005477.tif 000016
【図１６】
0005005477.tif 000017
【図１７】
0005005477.tif 000018
【図１８】
0005005477.tif 000019
【図１９】
0005005477.tif 000020
【図２０】
0005005477.tif 000021
【図２１】
0005005477.tif 000022
【図２２】
0005005477.tif 000023