(57)【要約】  偽造等によるデータの不正利用を防止するため、半導体メモリチップ１００は、予め定められたデータの記憶領域である特殊領域を含むメモリ１１０と、外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部、特殊領域に書き込む書込データをコントローラー２００から受信し、第２鍵を用いて書込データを変換した変換データを生成する変換部、および、変換データを特殊領域に書き込む書込部を含むデータ変換部１４０とを備える。
2011064883.tif 000002
【特許請求の範囲】
【請求項１】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である特殊領域を含むメモリと、
前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、
前記特殊領域に書き込む書込データを前記コントローラーから受信し、前記第２鍵を用いて前記書込データを変換した変換データを生成する変換部と、
前記変換データを前記特殊領域に書き込む書込部と、
を備えることを特徴とするメモリチップ。
【請求項２】
前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた前記変換データを暗号化した暗号化データを生成する暗号化部と、
前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
を特徴とする請求項１に記載のメモリチップ。
【請求項３】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記変換部は、前記書込データのエラー訂正符号が前記第１鍵によって変換された変換符号と、前記第１鍵によって変換された前記書込データとを前記コントローラーから受信し、前記変換符号を前記第２鍵を用いて前記エラー訂正符号に変換し、変換された前記書込データを前記第２鍵を用いて前記書込データに復号した前記変換データを生成し、
前記書込部は、さらに、復号された前記エラー訂正符号を前記符号記憶部に記憶すること、
を特徴とする請求項１に記載のメモリチップ。
【請求項４】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記変換部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、前記第２鍵を用いて前記書込データを前記変換データに変換し、
前記書込部は、さらに、受信された前記エラー訂正符号を前記符号記憶部に記憶すること、
を特徴とする請求項１に記載のメモリチップ。
【請求項５】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である特殊領域を含むメモリと、
前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、
前記特殊領域に書き込む書込データを前記コントローラーから受信し、受信した前記書込データを前記特殊領域に書き込む書込部と、
前記特殊領域に書き込まれた前記書込データを、前記第２鍵を用いて変換した変換データを生成する変換部と、
を備えることを特徴とするメモリチップ。
【請求項６】
前記コントローラーと共有する暗号鍵を用いて、前記変換データを暗号化した暗号化データを生成する暗号化部と、
前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
を特徴とする請求項５に記載のメモリチップ。
【請求項７】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記書込部は、前記書込データのエラー訂正符号が前記第１鍵によって変換された変換符号と、前記書込データとを前記コントローラーから受信し、受信した前記変換符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込み、
前記変換部は、前記特殊領域に書き込まれた前記変換符号を前記第２鍵を用いて前記エラー訂正符号に復号し、前記特殊領域に書き込まれた前記書込データを前記第２鍵を用いて前記書込データに復号すること、
を特徴とする請求項５に記載のメモリチップ。
【請求項８】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記書込部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、受信した前記エラー訂正符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込むこと、
を特徴とする請求項５に記載のメモリチップ。
【請求項９】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である特殊領域を含むメモリと、
前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた書込データを暗号化した暗号化データを生成する暗号化部と、
前記暗号化データを前記コントローラーに送出する送出部と、
を備えることを特徴とするメモリチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリチップに関する。
【背景技術】
【０００２】
半導体ダイ上に形成された半導体メモリチップは、通常単体で使用されることは無く、外部のコントローラーと電気的に接続されて使用される。外部装置（書き込み装置や読み出し・再生装置など）から半導体メモリチップ上のメモリ内のデータへのアクセスはコントローラーを介して行われる。コントローラーと半導体メモリチップを組み合わせてメモリ製品として販売されることもある。例えば、ＳＤメモリカードのような商品が、その一例である（非特許文献１参照）。また、半導体メモリチップとコントローラーとを樹脂で接着したものをＳＩＰ（System  In  Package）として提供する場合もある。また、オーディオ・プレーヤーなどで音楽データの格納用に半導体メモリチップが使用される場合、コントローラーが半導体メモリチップとは別の半導体の一部に組み込まれていることもある。いずれの場合も、半導体メモリチップとコントローラーとが直接接続されており、半導体メモリチップのメモリ内のデータへのアクセスは必ずコントローラーを介して行われる。【０００３】
コントローラーは、半導体メモリチップのデータへのアクセスを仲介するだけではなく、セキュリティ機能を提供する場合がある。例えば、ＳＤメモリカードの場合、コントローラーに著作権保護機能が導入されている。コントローラーは、プレーヤーや書き込み装置などのホスト機器を認証し、認証に成功した場合に限って、半導体メモリチップに格納されているデータをホスト機器に転送する。また、コントローラーは、認証に成功した場合に限って、書き込み装置から受信したデータを半導体メモリチップに記録する。これにより、例えば、認証されない不正なプレーヤーはメモリカード内のデータにアクセスすることができない。従って、メモリカード内のデータが不正なプレーヤーによって盗まれることから保護される。【０００４】
メモリカードのコントローラーによって著作権保護機能が実装されている場合にも、更なる攻撃が存在する。例えば、メモリカードの中にビデオデータが格納されているものとする。メモリカードのコントローラーが有する著作権保護機能によって、当該メモリカードが格納するビデオデータは不正なプレーヤーによる読み出しから保護される。従って、不正なプレーヤーを用いた当該ビデオデータの不正コピーから守られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】4C  Entity,  LLC.  "Content  Protection  for  Recordable  Media  Specification,  SD  Memory  Card  Book,  Common  Part",  Revision  0.961,  May.  3,  2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、攻撃者がメモリカードのパッケージを開け、半導体メモリチップの中から全てのビデオデータを読み出すことは可能である。そして、このビデオデータを別の半導体メモリチップにコピーし、別途購入したコントローラーと組み合わせることによって、ビデオデータの入った偽造メモリカードの複製を幾らでも作ることができる。しかも、これら偽造メモリカードのビデオデータは、正規のメモリカードのビデオデータと同様に正規なプレーヤーで再生可能である。【０００７】
本発明は、上記に鑑みてなされたものであって、メモリカードの偽造等によるデータの不正利用を防止することができるメモリチップを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、前記特殊領域に書き込む書込データを前記コントローラーから受信し、前記第２鍵を用いて前記書込データを変換した変換データを生成する変換部と、前記変換データを前記特殊領域に書き込む書込部と、を備えることを特徴とする。【０００９】
また、本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、前記特殊領域に書き込む書込データを前記コントローラーから受信し、受信した前記書込データを前記特殊領域に書き込む書込部と、前記特殊領域に書き込まれた前記書込データを、前記第２鍵を用いて変換した変換データを生成する変換部と、を備えることを特徴とする。【００１０】
また、本発明は、外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である特殊領域を含むメモリと、前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた書込データを暗号化した暗号化データを生成する暗号化部と、前記暗号化データを前記コントローラーに送出する送出部と、を備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、メモリカードの偽造等によるデータの不正利用を防止することができるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１】トラスト・チェインの一例を示す図。
【図２】第１の実施の形態の半導体メモリチップとコントローラーのブロック図。
【図３】暗号鍵共有部の構成例を示す図。
【図４】第１の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャート。
【図５】送出制御部と読出制御部の構成例を示す図。
【図６】第１の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図７】暗号鍵共有部の変形例を示す図。
【図８】第１の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャート。
【図９】送出制御部と読出制御部の変形例を示す図。
【図１０】第１の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図１１】送出制御部と読出制御部の別の変形例を示す図。
【図１２】第１の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図１３】書き込み特殊領域に書き込みを行う様子を示す図。
【図１４】書込制御部およびデータ変換部の構成例を示す図。
【図１５】第１の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図１６】最小限のデータのみ暗号化および復号する構成でのデータの変化を表す図。
【図１７】書込制御部およびデータ変換部の変形例を示す図。
【図１８】鍵記憶部のデータ構造の一例を示す図。
【図１９】変形例における書き込み処理の全体の流れを示すフローチャート。
【図２０】バージョン情報の変形例を示す図。
【図２１】第２の実施の形態の半導体メモリチップのブロック図。
【図２２】第２の実施の形態の受信制御部および書き込み装置の構成例を示す図。
【図２３】第２の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図２４】第２の実施の形態のデータ変換部の構成例を示す図。
【図２５】第２の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図２６】第３の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図２７】第３の実施の形態における再生処理の全体の流れを示すフローチャート。
【図２８】第４の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図２９】第４の実施の形態における再生処理の全体の流れを示すフローチャート。
【図３０】第５の実施の形態の次世代電力網の一構成例を示す図。
【図３１】スマートメーターの構成例を示すブロック図。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるメモリチップの好適な実施の形態を詳細に説明する。
【００１４】
（第１の実施の形態）
第１の実施の形態にかかるメモリチップ（半導体メモリチップ）は、半導体メモリチップにセキュリティ機能を持たせ、半導体メモリチップ自体をトラスト・チェインの中に組み込む。これにより、半導体メモリチップを不正なコントローラーと組み合わせて使用することを防止する。半導体メモリチップは高度な部品であり、不正なＩＤを有するコントローラーのように、容易に製造・販売することができない。
【００１５】
ここで、トラスト・チェインについて図１を用いて説明する。図１は、半導体メモリチップ１００をトラスト・チェインに組み込んだシステムの一例を示す図である。図１中の矢印の方向は認証の方向を示す。即ち、半導体メモリチップ１００がコントローラー２００を認証し、コントローラー２００が書き込み装置３００を認証し、書き込み装置３００が半導体メモリチップ１００を認証する。なお、破線はオプションである。書き込み装置３００がトラスト・チェインの出発点であり、半導体メモリチップ１００を経由してコントローラー２００を認証することが図１のトラスト・チェインを構築する目的である。書き込み装置３００と半導体メモリチップ１００との間のデータの流れは常にコントローラー２００を介して行われるため、書き込み装置３００による半導体メモリチップ１００の認証は間接的なものになる。
【００１６】
本実施の形態では、半導体メモリチップ１００をトラスト・チェインに組み込むために、半導体メモリチップ１００自体にセキュリティ機能を持たせる。具体的には、半導体メモリチップ１００のメモリに特殊領域を構成する。特殊領域は、読み出し特殊領域および書き込み特殊領域を含む。読み出し特殊領域とは、メモリ内の記憶領域（メモリ領域）のうち、半導体メモリチップ１００により認証されたコントローラー２００のみが、格納された値を正しく読み出すことができる予め定められたメモリ領域である。書き込み特殊領域とは、メモリ領域のうち、データ書き込みの際、データ変換部（後述）による復号を受けたデータを書き込む予め定められたメモリ領域である。
【００１７】
また、本実施の形態では、半導体メモリチップ１００をトラスト・チェインに組み込むために、読み出し特殊領域と書き込み特殊領域に共通領域を設ける。そして、当該共通領域に、データ利用に不可欠な情報を記録する。共通領域にデータ利用に不可欠な情報が正しく記録できることは、即ち、半導体メモリチップ１００が書き込み装置３００によって認証されたことに他ならない。そして、共通領域に記録されているデータ利用に不可欠な情報が、コントローラー２００によって正しく読み出されることは、即ち、当該コントローラー２００が半導体メモリチップ１００によって認証されていることに他ならない。かくして、図１のトラスト・チェインが完成する。
【００１８】
図２は、第１の実施の形態の半導体メモリチップ１００とコントローラー２００の構成の一例を示すブロック図である。まず、半導体メモリチップ１００の機能の概要について説明する。図２に示すように、半導体メモリチップ１００は、メモリ１１０と、暗号鍵共有部１２０と、送出制御部１３０と、データ変換部１４０と、を備えている。
【００１９】
メモリ１１０は、各種データを記憶する記憶部である。メモリ１１０は、例えば、ＮＡＮＤ型フラッシュメモリなどにより構成できる。なお、メモリ１１０はこれに限られず、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体メモリを適用することができる。
【００２０】
メモリ１１０は、符号記憶部１１１と、読み出し特殊領域１１２と、書き込み特殊領域１１３と、共通領域１１４と、一般領域１１５とを備えている。
【００２１】
符号記憶部１１１は、書き込み装置３００から書き込みが要求されたデータのエラー訂正符号（ＥＣＣ：エラーコレクションコード）を記憶する。なお、符号記憶部１１１は、メモリ１１０の外部にメモリ１１０と独立の記憶部として備えてもよい。
【００２２】
図２では、読み出し特殊領域１１２および書き込み特殊領域１１３のそれぞれに、共通領域１１４以外の領域が含まれる例が示されているが、少なくとも共通領域１１４が存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域１１２と書き込み特殊領域１１３とが一致（すなわち読み出し特殊領域１１２と書き込み特殊領域１１３とがいずれかも共通領域１１４と一致）するように構成してもよい。
【００２３】
一般領域１１５とは、送出制御部１３０およびデータ変換部１４０を介さずに、コントローラー２００から直接書き込みおよび読み取りが可能な領域を表す。
【００２４】
暗号鍵共有部１２０は、コントローラー２００との間で共有する暗号鍵を保持または生成する。送出制御部１３０は、メモリ１１０から読み出したデータをコントローラー２００に送出する処理を制御する。データ変換部１４０は、コントローラー２００を介して書き込み装置３００から書き込みが要求されたデータを変換した変換データを生成する。暗号鍵共有部１２０、送出制御部１３０、およびデータ変換部１４０は、メモリ１１０と同一のダイ上に構成される。これにより、半導体メモリチップ１００内にセキュリティ機能を持たせ、メモリカードの偽造等によるデータの不正利用を防止することができる。暗号鍵共有部１２０、送出制御部１３０、およびデータ変換部１４０の機能の詳細については後述する。
【００２５】
次に、コントローラー２００の機能の概要について説明する。コントローラー２００は、暗号鍵共有部２１０と、読出制御部２２０と、書込制御部２３０と、一般領域読出部２４０と、一般領域書込部２５０と、を備えている。
【００２６】
暗号鍵共有部２１０は、半導体メモリチップ１００との間で共有する暗号鍵を保持または生成する。読出制御部２２０は、読み出し装置および再生装置などの外部装置（図示せず）からの要求に応じて、半導体メモリチップ１００の共通領域１１４からデータを読み出す処理を制御する。書込制御部２３０は、書き込み装置３００などの外部装置からの要求に応じて、半導体メモリチップ１００の共通領域１１４にデータを書き込む処理を制御する。
【００２７】
一般領域読出部２４０は、一般領域１１５からのデータの読み出しを制御する。すなわち、一般領域１１５からデータを読み出す場合、読み出し装置は、コントローラー２００の一般領域読出部２４０に対して、読み出し対象となるページの指定を入力する。
【００２８】
一般領域読出部２４０は、指定されたページのデータを読み出すと共に、符号記憶部１１１から指定されたページに対応するＥＣＣを読み出す。また、一般領域読出部２４０は、ＥＣＣを用いて読み出したページのエラーをチェックする。エラーが無ければ、一般領域読出部２４０は読み出したページのデータを出力する。エラーが存在して修復可能である場合は、一般領域読出部２４０は、読み出したページのデータを修復して出力する。それ以外の場合は、一般領域読出部２４０はエラーコードを出力する。
【００２９】
一般領域書込部２５０は、一般領域１１５へのデータ書き込みを制御する。すなわち、一般領域１１５へデータを書き込む場合、書き込み装置３００は、コントローラー２００の一般領域書込部２５０に対してデータを入力する。この際、書き込み装置３００は、書き込み先のページ（メモリ内の領域）の指定も一般領域書込部２５０に入力する。
【００３０】
一般領域書込部２５０は、入力されたデータのＥＣＣを生成し、一般領域１１５のうち、指定されたページにデータを書き込むと共に、生成したＥＣＣを指定されたページに対するＥＣＣとして符号記憶部１１１に記録する。
【００３１】
次に、半導体メモリチップ１００の暗号鍵共有部１２０とコントローラー２００の暗号鍵共有部２１０の構成例について図３を用いて説明する。図３に示すように、暗号鍵共有部１２０は、メディア鍵を表すＫＭ１２１（以下、メディア鍵ＫＭという）と、ＭＫＢ（Media  Key  Block）１２２とを保持している。ＭＫＢ１２２については、例えば非特許文献１に記載されている。また、暗号鍵共有部２１０は、デバイス鍵を表すＫＤ２１２を保持している。また、暗号鍵共有部２１０は、ＭＫＢ読み取り部２１１と、ＭＫＢ処理部２１３と、を備えている。
【００３２】
ＭＫＢ読み取り部２１１は、半導体メモリチップ１００の暗号鍵共有部１２０からＭＫＢ１２２を読み出す。ＭＫＢ処理部２１３は、読み出されたＭＫＢをデバイス鍵ＫＤ２１２を用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。
【００３３】
なお、図３の例では、半導体メモリチップ１００の暗号鍵共有部１２０がコントローラー２００の暗号鍵共有部２１０を認証している。
【００３４】
次に、図３のように構成された暗号鍵共有部１２０と暗号鍵共有部２１０との間で暗号鍵を共有する暗号鍵共有処理について図４を用いて説明する。図４は、第１の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャートである。
【００３５】
コントローラー２００が半導体メモリチップ１００の読み出し特殊領域１１２からデータを読み出す際、まず、コントローラー２００の暗号鍵共有部２１０のＭＫＢ読み取り部２１１が、半導体メモリチップ１００のＭＫＢ１２２を読み出す（ステップＳ１０１）。ＭＫＢ１２２は、コントローラー２００から常に自由に読み出しが可能である。ＭＫＢ読み取り部２１１は、読み出したＭＫＢ１２２をＭＫＢ処理部２１３に送る（ステップＳ１０２）。
【００３６】
ＭＫＢ処理部２１３は、コントローラー２００の暗号鍵共有部２１０が保持しているデバイス鍵ＫＤ２１２を読み込み、ＭＫＢ処理を行う（ステップＳ１０３）。次に、ＭＫＢ処理部２１３は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否かを判断する（ステップＳ１０４）。デバイス鍵ＫＤ２１２がＭＫＢ１２２によって無効化されている場合、ＭＫＢ処理によって正しくメディア鍵ＫＭを得ることができない。この場合、ＭＫＢ処理部２１３は、メディア鍵ＫＭが得られなかったと判断し（ステップＳ１０４：Ｎｏ）、コントローラー２００にエラーを通知する（ステップＳ１０５）。コントローラー２００は、エラーの通知を受けると、読み出し動作を中止する。
【００３７】
一方、デバイス鍵ＫＤ２１２がＭＫＢ１２２によって無効化されていない場合、ＭＫＢ処理によって正しいメディア鍵ＫＭが得られる。この場合、ＭＫＢ処理部２１３は、メディア鍵ＫＭが得られたと判断し（ステップＳ１０４：Ｙｅｓ）、得られたメディア鍵ＫＭをコントローラー２００の読出制御部２２０に送る（ステップＳ１０６）。半導体メモリチップ１００側では、暗号鍵共有部１２０が格納しているメディア鍵ＫＭが送出制御部１３０に送られる（ステップＳ１０７）。
【００３８】
次に、半導体メモリチップ１００の送出制御部１３０とコントローラー２００の読出制御部２２０の構成例について図５を用いて説明する。図５に示すように、送出制御部１３０は、乱数発生部１３１と、読出部１３２と、暗号化部１３３と、送出部１３４とを備えている。
【００３９】
乱数発生部１３１は、暗号化部１３３の要求に応じて乱数を発生する。読出部１３２は、指定された読み出し対象ページのデータと、当該データのＥＣＣとをメモリ１１０から読み出す。暗号化部１３３は、読み出されたデータをメディア鍵ＫＭを用いて暗号化する。送出部１３４は、暗号化されたデータ（暗号化データ）とＥＣＣとをコントローラー２００のデータ受信部２２１に送出する。
【００４０】
また、図５に示すように、読出制御部２２０は、データ受信部２２１と、復号部２２２と、エラー修復部２２３とを備えている。データ受信部２２１は、半導体メモリチップ１００の送出部１３４から暗号化データとＥＣＣとを受信する。復号部２２２は、受信された暗号化データをメディア鍵ＫＭを用いて復号する。エラー修復部２２３は、受信されたＥＣＣを用いて、復号されたデータのエラー有無のチェックおよびエラー修復を行う。
【００４１】
次に、図５のように構成された送出制御部１３０と読出制御部２２０との間で読み出したデータを送受信するデータ読出処理について図６を用いて説明する。図６は、第１の実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
【００４２】
読出制御部２２０は、暗号鍵共有部２１０からメディア鍵ＫＭを受け取ると（ステップＳ２０１）、復号部２２２に受け取ったメディア鍵ＫＭを入力する（ステップＳ２０２）。次に、読出制御部２２０は、送出制御部１３０にデータ送出要求を送る。この際、読み出し対象ページの指定も併せて送られる（ステップＳ２０３）。送出制御部１３０の読出部１３２は、指定されたページのデータを読み出し、暗号化部１３３に入力する（ステップＳ２０４）。また、読出部１３２は、読み出し対象ページに対応するＥＣＣを符号記憶部１１１から読み出し、送出部１３４に入力する（ステップＳ２０５）。
【００４３】
次に、暗号化部１３３が、乱数発生部１３１に乱数発生要求を送る（ステップＳ２０６）。乱数発生部１３１は、乱数を発生して暗号化部１３３に送る（ステップＳ２０７）。暗号化部１３３は、暗号鍵共有部１２０からメディア鍵ＫＭを取得する（ステップＳ２０８）。暗号化部１３３は、指定されたページのデータと乱数とを連結し、連結して得られたデータをメディア鍵ＫＭで暗号化した暗号化データＤ’を生成する（ステップＳ２０９）。そして、暗号化部１３３は、暗号化データＤ’を送出部１３４に送る（ステップＳ２１０）。送出部１３４は、入力された暗号化データＤ’と入力されたＥＣＣとをコントローラー２００のデータ受信部２２１に送出する（ステップＳ２１１）。
【００４４】
なお、読み出し対象ページの中で重要なデータはページの一部かもしれない。このような場合、暗号化部１３３が、重要なデータが含まれるページの一部のみを暗号化するように構成してもよい。例えば、ページの先頭４８バイトのみが重要なデータである場合、暗号化部１３３がページの先頭４８バイトと１６バイトの乱数を連結した６４バイトのみ暗号化するようにしても良い。これにより、暗号化による処理負荷の増加を最小限に抑制することができる。
【００４５】
次に、読出制御部２２０のデータ受信部２２１は、暗号化データとＥＣＣとを受信する（ステップＳ２１２）。そして、データ受信部２２１は、受信したＥＣＣをエラー修復部２２３に送る（ステップＳ２１３）。エラー修復部２２３は、受け取ったＥＣＣを保持する。また、データ受信部２２１は、受信した暗号化データＤ’を復号部２２２に送る（ステップＳ２１４）。復号部２２２は、コントローラー２００の暗号鍵共有部２１０から受け取ったメディア鍵ＫＭを用いて、暗号化データＤ’を復号する（ステップＳ２１５）。
【００４６】
この復号の結果、平文の読み出しデータＤと乱数とが得られる。復号部２２２は、予め定められたフォーマットにしたがい、復号したデータから、読み出しデータＤと乱数とを区別することができる。例えば、暗号化部１３３が６４バイトのみを暗号化する上述の例では、復号したデータのうち、先頭の４８バイトが読み出しデータＤであり、続く１６バイトが乱数である。
【００４７】
復号部２２２は、読み出しデータＤのみをエラー修復部２２３に転送する（ステップＳ２１６）。エラー修復部２２３は、保持しているＥＣＣを用いて読み出しデータＤのエラーをチェックする（ステップＳ２１７）。そして、エラー修復部２２３は、エラーがあるか否かを判断する（ステップＳ２１８）。エラーが無い場合（ステップＳ２１８：Ｎｏ）、コントローラー２００は、読み出しデータＤの読み出しを要求した外部装置に、読み出しデータＤを出力する（ステップＳ２１９）。
【００４８】
エラーがある場合（ステップＳ２１８：Ｙｅｓ）、エラー修復部２２３は、さらにエラーが修復可能か否かを判断する（ステップＳ２２０）。エラーが修復可能な場合（ステップＳ２２０：Ｙｅｓ）、エラー修復部２２３は、保持しているＥＣＣを用いて読み出しデータＤのエラーを修復する（ステップＳ２２１）。そして、コントローラー２００は、修復後の読み出しデータＤを出力する（ステップＳ２１９）。
【００４９】
エラーが修復不可能な場合（ステップＳ２２０：Ｎｏ）、エラー修復部２２３は、コントローラー２００にエラーを通知する（ステップＳ２２２）。この場合、コントローラー２００は、例えばエラーが発生したことを読み出しを要求した外部装置に送信する。
【００５０】
図４で説明した処理により、有効なデバイス鍵ＫＤ２１２を有する正規のコントローラー２００のみが、半導体メモリチップ１００と共通の暗号鍵であるメディア鍵ＫＭを得ることができる。また、図６で説明した処理により、正規のコントローラー２００のみが、共通のメディア鍵ＫＭにより正常に復号されたデータを得ることができる。即ち、半導体メモリチップ１００によるコントローラー２００の認証が実現できる。
【００５１】
このように、半導体メモリチップ１００の暗号鍵共有部１２０と送出制御部１３０との組み合わせが、コントローラー２００を認証する認証手段とみなすことができる。この認証手段により読み出されるデータを記憶する半導体メモリチップ１００上のメモリ１１０内の領域が、読み出し特殊領域に相当する。
【００５２】
なお、暗号鍵共有部１２０および暗号鍵共有部２１０の構成は図３に示すものに限られるものではない。半導体メモリチップ１００とコントローラー２００との間で暗号鍵を共有できるものであればあらゆる構成を適用できる。
【００５３】
図７は、暗号鍵共有部１２０の変形例（暗号鍵共有部１２０−２）と暗号鍵共有部２１０の変形例（暗号鍵共有部２１０−２）を示すブロック図である。図７に示すように、暗号鍵共有部１２０−２は、メディア鍵ＫＭおよびＭＫＢ１２２を保持する他に、乱数生成部１２３と、乱数送信部１２４と、一時鍵生成部１２５とを備えている。また、暗号鍵共有部２１０−２は、デバイス鍵ＫＤ２１２、ＭＫＢ読み取り部２１１、およびＭＫＢ処理部２１３の他に、乱数受信部２１４と、一時鍵生成部２１５とを備えている。
【００５４】
乱数生成部１２３は、乱数送信部１２４からの要求に応じて乱数を発生する。乱数送信部１２４は、発生された乱数を、コントローラー２００の乱数受信部２１４、および、半導体メモリチップ１００の一時鍵生成部１２５に送信する。一時鍵生成部１２５は、メディア鍵ＫＭおよび受信した乱数を用いて一時鍵Ｋを生成する。例えば、一時鍵生成部１２５は、ＡＥＳ−Ｇなどの一方向性関数を用いて、メディア鍵ＫＭと乱数とから一時鍵Ｋを生成する。
【００５５】
乱数受信部２１４は、乱数送信部１２４から乱数を受信する。一時鍵生成部２１５は、半導体メモリチップ１００の一時鍵生成部１２５と同様の手法により、ＭＫＢ処理部２１３から受け取ったメディア鍵ＫＭと、乱数受信部２１４により受信された乱数とから一時鍵Ｋを生成する。
【００５６】
図７の例でも、半導体メモリチップ１００の暗号鍵共有部１２０−２がコントローラー２００の暗号鍵共有部２１０−２を認証している。
【００５７】
次に、図７のように構成された暗号鍵共有部１２０−２と暗号鍵共有部２１０−２との間で暗号鍵を共有する暗号鍵共有処理について図８を用いて説明する。図８は、第１の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャートである。
【００５８】
ステップＳ３０１〜ステップＳ３０５は、図４のステップＳ１０１〜ステップＳ１０５と同様の処理なので説明を省略する。
【００５９】
ステップＳ３０４で、正しいメディア鍵ＫＭが得られたと判断された場合（ステップＳ３０４：Ｙｅｓ）、ＭＫＢ処理部２１３は、得られたメディア鍵ＫＭを一時鍵生成部２１５に送る（ステップＳ３０６）。次に、コントローラー２００の暗号鍵共有部２１０の乱数受信部２１４が、半導体メモリチップ１００の乱数送信部１２４に対して乱数送信要求を送る（ステップＳ３０７）。乱数送信部１２４は、乱数生成部１２３に乱数発生要求を送る（ステップＳ３０８）。乱数生成部１２３は、乱数Ｒを生成する（ステップＳ３０９）。乱数送信部１２４は、生成された乱数Ｒを受け取り、乱数Ｒをコントローラー２００の乱数受信部２１４に送信する（ステップＳ３１０）。コントローラー２００の乱数受信部２１４は、受信した乱数Ｒをコントローラー２００の一時鍵生成部２１５に転送する（ステップＳ３１１）。一時鍵生成部２１５は、ＭＫＢ処理部２１３から受け取ったメディア鍵ＫＭと乱数Ｒとから一時鍵Ｋを生成する（ステップＳ３１２）。また、一時鍵生成部２１５は、生成した一時鍵Ｋをコントローラー２００の読出制御部２２０に送る（ステップＳ３１３）。
【００６０】
一方、乱数送信部１２４は、半導体メモリチップ１００の一時鍵生成部１２５にも乱数Ｒを送る（ステップＳ３１４）。乱数Ｒを受信した一時鍵生成部１２５は、半導体メモリチップ１００の暗号鍵共有部１２０が予め格納しているメディア鍵ＫＭを読み取る（ステップＳ３１５）。そして、一時鍵生成部１２５は、メディア鍵ＫＭと乱数Ｒと組み合わせて一時鍵Ｋを生成する（ステップＳ３１６）。また、一時鍵生成部１２５は、生成した一時鍵Ｋを半導体メモリチップ１００の送出制御部１３０に送る（ステップＳ３１７）。
【００６１】
コントローラー２００のＭＫＢ処理が正しく行われ、正しいメディア鍵ＫＭが生成されたならば、半導体メモリチップ１００とコントローラー２００とが、それぞれ独立に生成する一時鍵Ｋは同一になる。
【００６２】
次に、図７のように構成された暗号鍵共有部１２０−２および暗号鍵共有部２１０−２に対応する送出制御部１３０の変形例（送出制御部１３０−２）と読出制御部２２０の変形例（読出制御部２２０−２）について図９を用いて説明する。図９に示すように、送出制御部１３０−２は、読出部１３２と、暗号化部１３３−２と、送出部１３４とを備えている。本変形例では、乱数発生部１３１が削除されたこと、および、暗号化部１３３−２の機能が、図５の送出制御部１３０と異なっている。暗号化部１３３−２は、主にメディア鍵ＫＭの代わりに一時鍵Ｋを用いてデータを暗号化する点が、図５の暗号化部１３３と異なっている。
【００６３】
また、図９に示すように、読出制御部２２０−２は、データ受信部２２１と、復号部２２２−２と、エラー修復部２２３とを備えている。本変形例では、復号部２２２−２の機能が、図５の読出制御部２２０と異なっている。復号部２２２−２は、主にメディア鍵ＫＭの代わりに一時鍵Ｋを用いてデータを復号する点が、図５の復号部２２２と異なっている。
【００６４】
次に、図９のように構成された送出制御部１３０−２と読出制御部２２０−２との間で読み出したデータを送受信するデータ読出処理について図１０を用いて説明する。図１０は、第１の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャートである。
【００６５】
読出制御部２２０−２の復号部２２２−２が暗号鍵共有部２１０−２から一時鍵Ｋを受け取ると（ステップＳ４０１）、復号部２２２−２は受け取った一時鍵Ｋを保持する。また、データ受信部２２１が、半導体メモリチップ１００の送出制御部１３０−２に対して、読み出し対象ページの指定と共にデータ送出要求を送る（ステップＳ４０２）。送出制御部１３０は、読出部１３２に読み出し対象ページの指定とデータ読み出し指示を送る（ステップＳ４０３）。読出部１３２は、メモリ１１０の読み出し対象ページからデータＤを読み出す（ステップＳ４０４）。
【００６６】
一方、暗号化部１３３−２は、暗号鍵共有部１２０−２から一時鍵Ｋを受け取る（ステップＳ４０５）。次に、暗号化部１３３−２は、一時鍵Ｋを用いてデータＤを暗号化し、暗号化データＤ’＝Ｅｎｃ（Ｋ，Ｄ）を生成する（ステップＳ４０６）。なお、Ｅｎｃ（Ｋ，Ｄ）とは、一時鍵Ｋを用いてデータＤを暗号化することを意味する。暗号化部１３３−２は、生成した暗号化データＤ’を送出部１３４に送る（ステップＳ４０７）。
【００６７】
読出部１３２は、データＤのＥＣＣをメモリ１１０の符号記憶部１１１から読み出す（ステップＳ４０８）。送出部１３４は読み出されたＥＣＣを保持する。送出部１３４は、暗号化データＤ’と保持しているＥＣＣとを、読出制御部２２０−２のデータ受信部２２１に送る（ステップＳ４０９）。
【００６８】
データ受信部２２１は、送出部１３４から暗号化データＤ’とＥＣＣとを受け取ると、暗号化データＤ’を復号部２２２−２に送り（ステップＳ４１０）、ＥＣＣをエラー修復部２２３に送る（ステップＳ４１１）。エラー修復部２２３は、受け取ったＥＣＣを保持する。復号部２２２−２は、暗号化データＤ’を受け取ると、保持している一時鍵Ｋを用いて暗号化データＤ’を復号し、データＤを得る（ステップＳ４１２）。次に、復号部２２２−２は、復号したデータＤをエラー修復部２２３に送る（ステップＳ４１３）。
【００６９】
ステップＳ４１４〜ステップＳ４１９は、図６のステップＳ２１７〜ステップＳ２２２と同様の処理なので説明を省略する。
【００７０】
次に、図７のように構成された暗号鍵共有部１２０−２および暗号鍵共有部２１０−２に対応する送出制御部１３０および読出制御部２２０の別の変形例（送出制御部１３０−３および読出制御部２２０−３）について図１１を用いて説明する。図１１に示すように、送出制御部１３０−３は、読出部１３２−３と、暗号化部１３３−３と、送出部１３４−３とを備えている。
【００７１】
読出部１３２−３は、読み出したＥＣＣを送出部１３４−３ではなく、暗号化部１３３−３に送信する。暗号化部１３３−３は、データＤとＥＣＣとを連結したデータを暗号化する。送出部１３４−３は、このようにして暗号化されたデータを読出制御部２２０−３に送出する。
【００７２】
一方、図１１に示すように、読出制御部２２０−３は、データ受信部２２１−３と、復号部２２２−３と、エラー修復部２２３−３とを備えている。
【００７３】
データ受信部２２１−３は、データＤとＥＣＣとを暗号化した暗号化データを受信し、受信した暗号化データを復号部２２２−３に送信する。復号部２２２−３は、暗号化データを復元してデータＤとＥＣＣとを求め、エラー修復部２２３−３に送信する。エラー修復部２２３−３は、このようにして復号部２２２−３から受信したデータＤとＥＣＣとを用いて、エラーのチェックおよびエラー修復を実行する。
【００７４】
次に、図１１のように構成された送出制御部１３０−３と読出制御部２２０−３との間で読み出したデータを送受信するデータ読出処理について図１２を用いて説明する。図１２は、第１の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャートである。
【００７５】
読出制御部２２０の復号部２２２−３が暗号鍵共有部２１０−２から一時鍵Ｋを受け取ると（ステップＳ５０１）、復号部２２２−３は、受け取った一時鍵Ｋを保持する。また、データ受信部２２１−３は、半導体メモリチップ１００の送出制御部１３０−３に、読み出し対象ページの指定と共にデータ送出要求を送る（ステップＳ５０２）。送出制御部１３０−３は、読出部１３２−３に読み出し指定ページとデータ読み出し指示とを送る（ステップＳ５０３）。読出部１３２−３は、メモリの指定された読み出し対象ページのデータＤを読み出す（ステップＳ５０４）。また、読出部１３２−３は、読み出したデータＤのＥＣＣをメモリ１１０の符号記憶部１１１から読み出す（ステップＳ５０５）。次に、暗号化部１３３−３が、暗号鍵共有部１２０−２から一時鍵Ｋを受け取る（ステップＳ５０６）。暗号化部１３３−３は、受け取った一時鍵Ｋを用いてデータＤとＥＣＣとを連結（ｃｏｎｃａｔｅｎａｔｅ）したデータＤ｜｜ＥＣＣを暗号化した暗号化データＤ’＝Ｅｎｃ（Ｋ，Ｄ｜｜ＥＣＣ）を生成する（ステップＳ５０７）。そして、暗号化部１３３−３は、暗号化データＤ’を送出部１３４に送る（ステップＳ５０８）。送出部１３４は、暗号化データＤ’を読出制御部２２０のデータ受信部２２１に送る（ステップＳ５０９）。
【００７６】
データ受信部２２１は、送出部１３４から暗号化データＤ’を受け取ると、当該暗号化データＤ’を復号部２２２−３に送る（ステップＳ５１０）。復号部２２２−３は、暗号化データＤ’を受け取ると、保持している一時鍵Ｋを用いて暗号化データＤ’を復号し、データＤとＥＣＣとを得る（ステップＳ５１１）。復号部２２２−３は、データＤとＥＣＣとをエラー修復部２２３−３に送る（ステップＳ５１２）。
【００７７】
ステップＳ５１３〜ステップＳ５１８は、図６のステップＳ２１７〜ステップＳ２２２（図１０のステップＳ４１４〜ステップＳ４１９）と同様の処理なので説明を省略する。
【００７８】
図７の暗号鍵共有部１２０−２と、図９の送出制御部１３０−２または図１１の送出制御部１３０−３のいずれか一方との組み合わせが、コントローラー２００を認証する認証手段とみなすことができる。これらの認証手段により読み出されるデータを記憶する半導体メモリチップ１００上のメモリ１１０内の領域が、読み出し特殊領域に相当する。
【００７９】
このように、読み出し特殊領域を用いてコントローラー２００を認証する認証手段を備えることにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
【００８０】
次に、書き込み特殊領域１１３を用いて書き込み装置３００による半導体メモリチップ１００の認証を実現する構成について以下に説明する。この構成によっても、メモリカードの偽造等によるデータの不正利用を防止することができる。また、読み出し特殊領域１１２（共通領域）からの読み出し機能、および、書き込み特殊領域１１３（共通領域）への書き込み機能の両方を備えるように構成すれば、上述のように半導体メモリチップ１００をトラスト・チェインに組み込むことが可能となり、セキュリティ機能をさらに向上させることができる。
【００８１】
図１３は、コントローラー２００に書き込み装置３００が接続されて、半導体メモリチップ１００の書き込み特殊領域１１３に書き込みを行う様子を示す図である。ただし、図１３では、書き込み処理に関わる部分のみが図示されている。
【００８２】
まず、書き込み装置３００が、書き込みが要求されたデータ（書込データ）を暗号化した暗号化データ、書込先ページの指定、および書込データに対するＥＣＣをコントローラー２００に送信する。コントローラー２００の書込制御部２３０は、暗号化データとＥＣＣとを半導体メモリチップ１００のデータ変換部１４０に送出する。データ変換部１４０は、暗号化データを変換（復号）し、得られた変換データ（書込データ）を書き込み特殊領域１１３に書き込むとともに、ＥＣＣを符号記憶部１１１に書き込む。
【００８３】
次に、図１３の書き込み装置３００、コントローラー２００の書込制御部２３０、および、半導体メモリチップ１００のデータ変換部１４０の構成例について図１４を用いて説明する。図１４に示すように、書き込み装置３００は、ＥＣＣ生成部３１０と、鍵記憶部３２０と、暗号化部３３０と、データ送信部３４０とを備えている。
【００８４】
ＥＣＣ生成部３１０は、書き込むべきデータとして入力された書込データのＥＣＣを生成する。鍵記憶部３２０は、書込データの変換に用いるデータ変換鍵（第１鍵）を記憶する。本実施の形態では、鍵記憶部３２０は、公開鍵方式の公開鍵Ｋｐをデータ変換鍵として記憶している。この公開鍵Ｋｐは、半導体メモリチップ１００の鍵記憶部１４１（後述）が記憶するデータ変換鍵（第２鍵）である秘密鍵Ｋｓに対応する公開鍵である。
【００８５】
なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では、書き込み装置３００がデータ変換鍵（公開鍵Ｋｐ）を用いて書込データを暗号化し、半導体メモリチップ１００が対応するデータ変換鍵（秘密鍵Ｋｓ）で書込データを復号してメモリ１１０に記憶する場合を例に説明する。書き込み装置３００がデータ変換鍵（第１鍵）を用いてデータを変換し、半導体メモリチップ１００が、第１鍵に対応するデータ変換鍵（第２鍵）を用いて変換後のデータを変換するものであれば、これ以外の変換方法を適用してもよい。例えば、書き込み装置３００が第１鍵を用いて復号に相当する変換処理を実行し、半導体メモリチップ１００が、第１鍵に対応する第２鍵を用いて暗号化に相当する変換処理を実行するように構成してもよい。
【００８６】
暗号化部３３０は、公開鍵Ｋｐを用いて書込データを暗号化する。また、暗号化部３３０は、公開鍵Ｋｐを用いてＥＣＣを暗号化した符号（変換符号）を生成する。なお、以下では、暗号化された書込データを暗号化データといい、ＥＣＣを暗号化した変換符号を暗号化ＥＣＣという場合がある。データ送信部３４０は、暗号化データと、暗号化ＥＣＣと、書込先ページの指定とをコントローラー２００の書込制御部２３０に送信する。
【００８７】
次に、コントローラー２００の書込制御部２３０の構成例について説明する。図１４に示すように、書込制御部２３０は、データ転送部２３１を備えている。データ転送部２３１は、暗号化データと、暗号化ＥＣＣと、書込先ページ指定とを受信し、これらの情報を半導体メモリチップ１００のデータ変換部１４０に送信する。
【００８８】
次に、データ変換部１４０の構成例について説明する。図１４に示すように、データ変換部１４０は、鍵記憶部１４１と、復号部１４２と、書込部１４３とを備えている。
【００８９】
鍵記憶部１４１は、公開鍵方式の秘密鍵Ｋｓを記憶する。復号部１４２は、鍵記憶部１４１の秘密鍵Ｋｓを用いて暗号化データと暗号化ＥＣＣとを復号する。なお、暗号化データから復号された書込データが、変換データに相当する。書込部１４３は、復号された書込データをメモリ１１０上の書き込み特殊領域１１３の指定されたページに記録する。また、書込部１４３は、復号されたＥＣＣをメモリ１１０の符号記憶部１１１に格納する。
【００９０】
次に、図１４のように構成された書き込み装置３００、書込制御部２３０、および、データ変換部１４０による書込データの書き込み処理について図１５を用いて説明する。図１５は、第１の実施の形態における書き込み処理の全体の流れを示すフローチャートである。
【００９１】
書き込み装置３００は、書込データ（データＤ）と書込先ページの指定とを入力する（ステップＳ６０１）。次に、ＥＣＣ生成部３１０が、データＤのＥＣＣを生成し、生成したＥＣＣとデータＤとを暗号化部３３０に転送する（ステップＳ６０２）。暗号化部３３０は、鍵記憶部３２０から公開鍵Ｋｐを取得する（ステップＳ６０３）。次に、暗号化部３３０は、公開鍵Ｋｐによって、データＤとＥＣＣとを暗号化し、暗号化データＤ’と暗号化ＥＣＣとを得る（ステップＳ６０４）。暗号化部３３０は、暗号化データＤ’と暗号化ＥＣＣとをデータ送信部３４０に送る（ステップＳ６０５）。データ送信部３４０は、暗号化データＤ’、書込先ページの指定、および、暗号化ＥＣＣをコントローラー２００の書込制御部２３０に送信する（ステップＳ６０６）。
【００９２】
書込制御部２３０のデータ転送部２３１は、暗号化データＤ’、書込先ページ指定、および、暗号化ＥＣＣを受信し、それらを半導体メモリチップ１００のデータ変換部１４０に送信する（ステップＳ６０７）。
【００９３】
データ変換部１４０が受信した暗号化データＤ’および暗号化ＥＣＣは、復号部１４２に入力される。復号部１４２は、鍵記憶部１４１から秘密鍵Ｋｓを取得する（ステップＳ６０８）。次に、復号部１４２は、秘密鍵Ｋｓを用いて暗号化データＤ’および暗号化ＥＣＣを復号し、データＤおよびＥＣＣを得る（ステップＳ６０９）。次に、書込部１４３は、復号されたデータＤを、書込先ページ指定によって指定されたメモリ１１０上のページに記録する。また、書込部１４３は、復号されたＥＣＣを、指定されたページに対応するＥＣＣとして、メモリ１１０の符号記憶部１１１に格納する（ステップＳ６１０）。
【００９４】
なお、一般に公開鍵による暗号化および復号は大きな計算量を要する。ページのサイズは例えば約２ＫＢ程度であるが、実際に書き込むデータは暗号鍵などの小さなデータ（例えば１６Ｂ程度）である。従って、特に半導体メモリチップ１００での復号の負荷を避けるため、例えば、次のような工夫を行っても良い。すなわち、最小限のデータのみ暗号化および復号するように構成してもよい。図１６は、このように構成した場合のデータの変化の様子を表す図である。
【００９５】
まず、一例として、ページサイズを２０４８Ｂ、書込データのサイズを１６Ｂ、ＥＣＣのサイズを３Ｂとする。ＥＣＣ生成部３１０には、先頭の１６Ｂの鍵データ＋残り２０３２Ｂの０からなる１ページ分のデータを入力する（１６０１）。暗号化部３３０は、１ページ分のデータの１７Ｂ目から３ＢのＥＣＣを記録した後、先頭２０Ｂのみ暗号化を行う（１６０２）。復号部１４２は、先頭２０Ｂのみ復号した後（１６０３）、１ページ分のデータの１７Ｂ目から３ＢをＥＣＣとして符号記憶部１１１に格納する（１６０４）。次に、１７Ｂ目から３Ｂを０で上書き後、メモリ１１０の書き込み特殊領域１１３に１ページ分のデータを記録する（１６０５）。
【００９６】
書き込み特殊領域１１３へのデータ書き込みは、必ず半導体メモリチップ１００のデータ変換部１４０を経由して行われる。本実施の形態では、書き込み装置３００にデータＤが入力された場合、データＤとデータＤに対するＥＣＣであるＥＣＣ（Ｄ）は、書き込み装置３００が保持する公開鍵Ｋｐで暗号化される。そして、半導体メモリチップ１００のデータ変換部１４０には、暗号化データＤ’＝Ｅｎｃ（Ｋｐ，Ｄ）と暗号化ＥＣＣ＝Ｅｎｃ（Ｋｐ，ＥＣＣ（Ｄ））とが入力される。
【００９７】
書き込み特殊領域１１３にデータＤが正しく記録され、かつ、符号記憶部１１１にＥＣＣ（Ｄ）が正しく記録されるためには、半導体メモリチップ１００が秘密鍵Ｋｓを保持している必要がある。即ち、書き込み装置３００が半導体メモリチップ１００を認証している。上述のデータ変換部１４０経由で書き込まれるメモリ領域が書き込み特殊領域１１３に相当する。
【００９８】
次に、図１４のデータ変換部１４０、書込制御部２３０、および、書き込み装置３００の変形例について図１７を用いて説明する。図１７は、本変形例にかかる書き込み装置３００−２、書込制御部２３０−２、および、データ変換部１４０−２の構成の一例を示すブロック図である。
【００９９】
図１７に示すように、書き込み装置３００−２は、ＥＣＣ生成部３１０−２と、鍵記憶部３２０−２と、暗号化部３３０−２と、データ送信部３４０と、鍵選択部３５０と、を備えている。データ送信部３４０の機能は、図１４と同様であるため、同一の符号を付し説明は省略する。
【０１００】
ＥＣＣ生成部３１０−２は、生成したＥＣＣを暗号化部３３０−２ではなく、データ送信部３４０に送信する点が、図１４のＥＣＣ生成部３１０と異なっている。
【０１０１】
鍵記憶部３２０−２は、対称鍵方式のデータ変換鍵である暗号鍵Ｋを記憶する。本変形例では、鍵記憶部３２０−２は、半導体メモリチップ１００のバージョンごとに複数の暗号鍵Ｋを記憶する。図１８は、鍵記憶部３２０−２に記憶されるデータのデータ構造の一例を示す図である。図１８に示すように、鍵記憶部３２０−２は、半導体メモリチップ１００のバージョンと、暗号鍵とを対応づけたデータを記憶している。
【０１０２】
図１７に戻り、鍵選択部３５０は、半導体メモリチップ１００のバージョンに適合する暗号鍵Ｋを鍵記憶部３２０−２から選択する。暗号化部３３０−２は、選択された暗号鍵Ｋを用いて書込データとＥＣＣとを暗号化する。
【０１０３】
次に、書込制御部２３０−２の構成例について説明する。図１７に示すように、書込制御部２３０−２は、データ転送部２３１−２を備えている。データ転送部２３１−２は、鍵選択部３５０からの要求に応じて半導体メモリチップ１００から読み出されたバージョン情報を転送する機能が追加された点が、図１４のデータ転送部２３１と異なっている。
【０１０４】
次に、データ変換部１４０−２の構成例について説明する。図１７に示すように、データ変換部１４０は、鍵記憶部１４１−２と、復号部１４２と、書込部１４３と、バージョン情報記憶部１４４とを備えている。データ変換部１４０、復号部１４２、および、書込部１４３の機能は、図１４と同様であるため、同一の符号を付し説明は省略する。
【０１０５】
バージョン情報記憶部１４４は、半導体メモリチップ１００のバージョン情報を記憶する。鍵記憶部１４１−２は、対称鍵方式の暗号鍵Ｋを記憶する。この暗号鍵Ｋは、半導体メモリチップ１００のバージョン情報記憶部１４４が格納するバージョン情報に対応する暗号鍵である。
【０１０６】
次に、図１７のように構成された書き込み装置３００−２、書込制御部２３０−２、および、データ変換部１４０−２による書込データの書き込み処理について図１９を用いて説明する。図１９は、本変形例における書き込み処理の全体の流れを示すフローチャートである。
【０１０７】
書き込み装置３００−２は、書込データ（データＤ）と書込先ページの指定とを入力する（ステップＳ７０１）。ＥＣＣ生成部３１０−２は、データＤのＥＣＣを生成し、生成したＥＣＣをデータ送信部３４０に転送する（ステップＳ７０２）。また、ＥＣＣ生成部３１０−２は、データＤを暗号化部３３０に転送する（ステップＳ７０３）。次に、暗号化部３３０−２が、鍵選択部３５０に暗号鍵取得要求を送る（ステップＳ７０４）。
【０１０８】
本実施の形態では、暗号鍵は半導体メモリチップ１００のバージョンに対応している。バージョンが異なれば暗号鍵も異なる。書き込み装置３００の鍵記憶部３２０−２は、半導体メモリチップ１００の各バージョンに対応する暗号鍵を格納しているが、半導体メモリチップ１００のバージョンが分からないと対応する暗号鍵が得られない。
【０１０９】
そこで、鍵選択部３５０は、暗号化部３３０−２から暗号鍵取得要求を受け付けると、コントローラー２００にバージョン取得要求を送る（ステップＳ７０５）。コントローラー２００は、半導体メモリチップ１００のデータ変換部１４０のバージョン情報記憶部１４４から、半導体メモリチップ１００のバージョン情報を読み出し、データ転送部２３１に入力する（ステップＳ７０６）。データ転送部２３１は、バージョン情報を書き込み装置３００の鍵選択部３５０に送信する（ステップＳ７０７）。鍵選択部３５０は、受信したバージョン情報に対応する暗号鍵Ｋを鍵記憶部３２０−２から選択する（ステップＳ７０８）。そして、鍵選択部３５０は、選択した暗号鍵Ｋを暗号化部３３０−２に送信する（ステップＳ７０９）。
【０１１０】
暗号化部３３０−２は、送信された暗号鍵Ｋを用いて、書き込むべきデータ（データＤ）を暗号化し、暗号化データＤ’を得る（ステップＳ７１０）。暗号化部３３０−２は、暗号化データＤ’をデータ送信部３４０に送る（ステップＳ７１１）。データ送信部３４０は、暗号化データＤ’、書込先ページの指定、および、ＥＣＣを、コントローラー２００の書込制御部２３０−２に送信する（ステップＳ７１２）。書込制御部２３０−２のデータ転送部２３１−２は、暗号化データＤ’、書込先ページ指定、およびＥＣＣを受信し（ステップＳ７１３）、それらを半導体メモリチップ１００のデータ変換部１４０−２に送信する（ステップＳ７１４）。
【０１１１】
データ変換部１４０−２は、受信した暗号化データＤ’を復号部１４２に入力する（ステップＳ７１５）。復号部１４２は、鍵記憶部１４１−２から暗号鍵Ｋを取得する（ステップＳ７１６）。復号部１４２は、暗号鍵Ｋを用いて、暗号化データＤ’をデータＤに復号する（ステップＳ７１７）。書込部１４３は、復号されたデータＤを、書込先ページ指定によって指定されたメモリ１１０上のページに記録する（ステップＳ７１８）。また、書込部１４３は、受信されたＥＣＣを、指定されたページに対応するＥＣＣとして符号記憶部１１１に格納する（ステップＳ７１９）。
【０１１２】
図１７のデータ変換部１４０−２を経由して記録されるメモリ領域へのデータ記録は、必ずデータ変換部１４０−２による変換を受ける。データ変換部１４０−２を経由してデータが記録される領域が書き込み特殊領域１１３に相当する。
【０１１３】
書き込み装置３００にデータＤが入力された場合、データＤは半導体メモリチップ１００のバージョンに対して選択された暗号鍵Ｋで暗号化される。そして、半導体メモリチップ１００のデータ変換部１４０−２には、暗号化データＤ’＝Ｅｎｃ（Ｋ，Ｄ）が入力される。書き込み特殊領域１１３にデータＤが正しく記録されるためには、半導体メモリチップ１００が暗号鍵Ｋを保持している必要がある。即ち、この場合も、書き込み装置３００が半導体メモリチップ１００を認証している。
【０１１４】
読み出し特殊領域は、半導体メモリチップ１００がコントローラー２００を認証するために利用される。一方、書き込み特殊領域は、書き込み装置３００が半導体メモリチップ１００を認証するために利用される。ここで図１のトラスト・チェインを思い起こそう。書き込み装置３００から、半導体メモリチップ１００、コントローラー２００というトラスト・チェインを構成するためには、読み出し特殊領域と書き込み特殊領域が交わりを持つ必要がある。即ち、この交わりの領域（共通領域）に記録されたデータが正しく（書き込み装置３００の意図した通りに）コントローラー２００によって読み出されることによって、トラスト・チェインが完成することになる。以降、読み出し特殊領域と書き込み特殊領域の交わりの領域（共通領域）を単に特殊領域と呼ぶことがある。
【０１１５】
なお、図１８の例では、バージョン情報は単なる数値としていたが、バージョン情報はこれに限られるものではない。また、バージョン情報およびバージョン情報以外の１以上の情報に応じて、複数の暗号鍵から対応する暗号鍵を選択するように構成してもよい。例えば、半導体メモリチップ１００が製造された時期、または、製造時のロット番号を元にバージョン情報を定めても良い。
【０１１６】
また、バージョン情報は数値に限定されるものではない。例えば、文字列、または、数値や文字列などの順列からなる配列であっても良い。図２０は、このように構成したバージョン情報の変形例を示す図である。図２０では、半導体メモリチップ１００の製造工場名、当該製造工場で管理しているロット番号、および、顧客番号の順列をバージョン情報とした例が示されている。ここで、顧客番号とは、例えば半導体メモリチップ１００の製造者が、大口の需要家に対して割り振った番号である。大口需要家向けでない製品については、この数値を固定の値（例えば０）とする。図２０のような対応表が、書き込み装置３００の鍵記憶部３２０−２に記憶される。
【０１１７】
このように、第１の実施の形態にかかる半導体メモリチップは、メモリと同一ダイ上に構成され、コントローラーを認証する認証手段として機能する暗号鍵共有部および送出制御部を備えている。そして、認証されたコントローラーのみが、メモリに格納されたデータを正しく読み出すことができる。また、メモリと同一ダイ上に構成され、所定の暗号鍵を記憶する鍵記憶部と当該暗号鍵によりデータを復号してメモリに記憶するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければデータを正しく記録できない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
【０１１８】
（第２の実施の形態）
第１の実施の形態では、書き込み特殊領域に書き込む前に書込データを復号していた。これに対し、第２の実施の形態にかかる半導体メモリチップは、書き込み特殊領域から読み出したデータ（暗号化された書込データ）を復号する。この場合も、書き込み特殊領域から読み出したデータが正しく復号するためには、書き込み装置が暗号化に用いた暗号鍵に対応する暗号鍵を半導体メモリチップが保持している必要がある。即ち、この場合も、書き込み装置が半導体メモリチップを認証している。
【０１１９】
図２１は、第２の実施の形態の半導体メモリチップ２１００の構成の一例を示すブロック図である。なお、コントローラー２００は、第１の実施の形態と同様の構成である。図２１に示すように、半導体メモリチップ２１００は、メモリ２１１０と、暗号鍵共有部１２０と、送出制御部２１３０と、データ変換部２１４０と、受信制御部２１５０と、読出部２１６０とを備えている。
【０１２０】
第１の実施の形態との相違点の１つは、データ変換部１４０の位置である。図２に示すように、第１の実施の形態では、データ変換（復号）は書き込みの際に行われるが、第２の実施の形態では読み出しの際に行われる。この他、第２の実施の形態では、メモリ２１１０および送出制御部２１３０の構成と、受信制御部２１５０および読出部２１６０を追加したことが、第１の実施の形態と異なっている。その他の構成および機能は、第１の実施の形態にかかる半導体メモリチップ１００の構成を表すブロック図である図２と同様であるので、同一符号を付し、ここでの説明は省略する。
【０１２１】
送出制御部２１３０は、読出部１３２が削除されたことが図５の送出制御部１３０と異なっている。なお、送出制御部２１３０は、読出部１３２が読出したデータを入力する代わりに、読出部２１６０により読み出され、データ変換部１４０により変換されたデータを入力する。
【０１２２】
メモリ２１１０は、符号記憶部１１１と、共通領域２１１４と、一般領域１１５とを備えている。なお、第２の実施の形態では、書き込み特殊領域とは、メモリ領域のうち、データ読み出しの際、データ変換部２１４０による復号を受けるデータが書き込まれる予め定められたメモリ領域である。第２の実施の形態では、データ読み出しの際に、データ変換部２１４０により復号されたデータが送出制御部２１３０に入力され、コントローラー２００の認証が行われる。したがって、データ変換部２１４０による復号を受けるデータが書き込まれる書き込み特殊領域と、認証されたコントローラー２００のみがデータを正しく読み出すことができる読み出し特殊領域とが一致する。このため、図２１では、メモリ２１１０に共通領域２１１４のみを図示している。
【０１２３】
受信制御部２１５０は、書込データが暗号化された暗号化データを受信して復号せずに共通領域２１１４に書き込む処理を制御する。
【０１２４】
読出部２１６０は、読み出しが指定されたページのデータを読み出し特殊領域（共通領域２１１４）から読み出し、データ変換部２１４０に送信する。また、読出部２１６０は、指定されたページのデータに対応するＥＣＣを符号記憶部１１１から読み出し、送出制御部２１３０に送信する。
【０１２５】
次に、図２１の受信制御部２１５０の構成例および第２の実施の形態の書き込み装置２３００の構成例について図２２を用いて説明する。なお、図２２では、書き込み処理に関わる部分のみが図示されている。
【０１２６】
まず、書き込み装置２３００の構成について説明する。図２２に示すように、書き込み装置２３００は、ＥＣＣ生成部２３１０と、鍵記憶部３２０と、暗号化部２３３０と、データ送信部２３４０とを備えている。鍵記憶部３２０は、図１４の鍵記憶部３２０と同様の構成のため同一の符号を付し、説明を省略する。
【０１２７】
ＥＣＣ生成部２３１０は、書き込むべきデータとして入力された書込データのＥＣＣを生成する。暗号化部２３３０は、公開鍵Ｋｐを用いて書込データを暗号化する。データ送信部２３４０は、暗号化データと、ＥＣＣと、書込先ページの指定とをコントローラー２００の書込制御部２３０に送信する。
【０１２８】
次に、受信制御部２１５０の構成について説明する。図２２に示すように、受信制御部２１５０は、書込部２１４３を備えている。書込部２１４３は、暗号化データを共通領域２１１４の指定されたページに記録する。また、書込部２１４３は、ＥＣＣを符号記憶部１１１に格納する。
【０１２９】
次に、図２２のように構成された書き込み装置２３００、書込制御部２３０、および、受信制御部２１５０による書込データの書き込み処理について図２３を用いて説明する。図２３は、第２の実施の形態における書き込み処理の全体の流れを示すフローチャートである。
【０１３０】
書き込み装置２３００は、書込データ（データＤ）と書込先ページの指定とを入力する（ステップＳ８０１）。書き込み装置２３００は、入力されたデータＤをＥＣＣ生成部２３１０に入力する（ステップＳ８０２）。次に、ＥＣＣ生成部２３１０が、データＤのＥＣＣを生成し、生成したＥＣＣをデータ送信部２３４０に転送する（ステップＳ８０３）。また、ＥＣＣ生成部２３１０は、データＤを暗号化部２３３０に転送する（ステップＳ８０４）。
【０１３１】
暗号化部２３３０は、鍵記憶部３２０から公開鍵Ｋｐを取得する（ステップＳ８０５）。また、暗号化部２３３０は、取得した公開鍵ＫｐによってデータＤを暗号化し、暗号化データＤ’を得る（ステップＳ８０６）。次に、暗号化部２３３０は、暗号化データＤ’をデータ送信部２３４０に送る（ステップＳ８０７）。データ送信部３４０は、暗号化データＤ’、書込先ページの指定、および、ＥＣＣを、コントローラー２００の書込制御部２３０に送信する（ステップＳ８０８）。
【０１３２】
書込制御部２３０のデータ転送部２３１が、暗号化データＤ’、書込先ページ指定、および、ＥＣＣを受信し（ステップＳ８０９）、それらを半導体メモリチップ１００の受信制御部２１５０に送信する（ステップＳ８１０）。
【０１３３】
受信制御部２１５０は、書込部２１４３に暗号化データＤ’と書込先ページ指定とを入力する（ステップＳ８１１）。書込部２１４３は、入力された暗号化データＤ’を、書込先ページ指定によって指定されたメモリ１１０上のページに記録する（ステップＳ８１２）。また、受信制御部２１５０は、ＥＣＣを、指定されたページに対応するＥＣＣとして、符号記憶部１１１に格納する（ステップＳ８１３）。
【０１３４】
このように、本実施の形態では、書き込み装置２３００にデータＤが入力された場合、データＤは、書き込み装置２３００が保持する公開鍵Ｋｐで暗号化される。そして、半導体メモリチップ１００の受信制御部２１５０には、暗号化データＤ’＝Ｅｎｃ（Ｋｐ，Ｄ）と、データＤに関するＥＣＣ（Ｄ）とが入力される。その結果、書き込み特殊領域（共通領域２１１４）にデータＥｎｃ（Ｋｐ，Ｄ）が記録され、符号記憶部１１１にＥＣＣ（Ｄ）が記録される。
【０１３５】
次に、図２１のデータ変換部２１４０の構成例について図２４を用いて説明する。図２４に示すように、データ変換部２１４０は、鍵記憶部１４１と、復号部２１４２とを備えている。鍵記憶部１４１の構成および機能は、図１４と同様であるため同一の符号を付し、説明を省略する。復号部２１４２は、読出部２１６０により読み出されたデータを、鍵記憶部１４１に記憶された秘密鍵Ｋｓを用いて復号する。
【０１３６】
次に、図２４のように構成されたデータ変換部２１４０により実行されるデータ読出処理について図２５を用いて説明する。図２５は、第２の実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
【０１３７】
まず、コントローラー２００が、読み出し対象となるページの指定を再生装置などの外部装置から入力する（ステップＳ９０１）。コントローラー２００の読出制御部２２０は、半導体メモリチップ１００に対して、メモリ１１０内の読み出し指定ページのデータの読み出し指示を送る（ステップＳ９０２）。半導体メモリチップ１００の読出部２１６０は、読み出し指定ページのデータを読み出し、データ変換部２１４０に入力する（ステップＳ９０３）。また、読出部２１６０は、読み出し指定ページに対応するＥＣＣを符号記憶部１１１から読み出して送出制御部２１３０に送る（ステップＳ９０４）。
【０１３８】
上述のように本実施の形態では、暗号化データを復号せずに共通領域２１１４に書き込むため、読み出したデータは暗号化されている。以下、読み出したデータをデータＤ’と表す。
【０１３９】
データ変換部２１４０は、入力されたデータＤ’を復号部２１４２に入力する（ステップＳ９０５）。復号部２１４２は、鍵記憶部１４１から秘密鍵Ｋｓを取得する（ステップＳ９０６）。復号部２１４２は、取得した秘密鍵Ｋｓを用いて入力されたデータＤ’を復号し、データＤを得る（ステップＳ９０７）。そして、復号部２１４２は、復号したデータＤを送出制御部２１３０に送る（ステップＳ９０８）。
【０１４０】
送出制御部２１３０は、データ変換部２１４０から受信した復号されたデータＤと符号記憶部１１１から読み出されたＥＣＣとをコントローラー２００の読出制御部２２０に送出する（ステップＳ９０９）。この後の処理は、図６のステップＳ２１２以降と同様であるため、図２５では記載を省略している。
【０１４１】
本実施の形態の場合、書き込み特殊領域（共通領域２１１４）からのデータ読み出しは、必ず半導体メモリチップ１００のデータ変換部２１４０を経由して行われる。上述の書き込みによって、書き込み特殊領域（共通領域２１１４）の読み出し対象ページのデータがＥｎｃ（Ｋｐ，Ｄ）であり、当該ページのＥＣＣとして、ＥＣＣ（Ｄ）が符号記憶部１１１に記録されているとする。この場合、半導体メモリチップ１００のデータ変換部２１４０から送出制御部２１３０に送られるデータはＤｅｃ（Ｋｓ，Ｅｎｃ（Ｋｐ，Ｄ））＝Ｄである。そして、コントローラー２００は、データＤとＥＣＣ（Ｄ）とを受け取ることになる。ここで、Ｄｅｃ（Ａ，Ｂ）とは、復号に用いる鍵ＡによってデータＢを復号することを表す。
【０１４２】
このように、書き込み装置３００がＥｎｃ（Ｋｐ，Ｄ）とＥＣＣ（Ｄ）を書き込んだ場合に、コントローラー２００が所期のデータＤと対応するＥＣＣ（Ｄ）とを正しく受け取るためには、半導体メモリチップ１００が秘密鍵Ｋｓを格納している必要がある。即ち、この場合も、書き込み装置３００が半導体メモリチップ１００を認証している。上述のデータ変換部２１４０を経由して読み出されるメモリ領域が、本実施の形態の書き込み特殊領域に相当する。
【０１４３】
このように、第２の実施の形態にかかるメモリチップでは、メモリと同一ダイ上に構成され、所定の暗号鍵を記憶する鍵記憶部とメモリから読み出したデータを当該暗号鍵により復号するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければ書き込まれたデータを正しく復元できない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができる。
【０１４４】
（第３の実施の形態）
第１および第２の実施の形態で述べたように、書き込み装置によって特殊領域（＝共通領域）にデータを書き込み、特殊領域からコントローラーがデータを読み出すことにより、トラスト・チェインが構築される。書き込み装置によって特殊領域に書き込まれたデータがコントローラーによって正しく読み出されたか否かは、実際には、コンテンツの再生などのデータ利用が正常にできるか否かによって判断される。
【０１４５】
第３の実施の形態では、上記実施の形態の半導体メモリチップ内のデータを利用する装置（プレーヤー等）を含めた具体的なデータ利用の実施の形態を説明する。
【０１４６】
図２６は、第３の実施の形態でデータを利用する装置であるプレーヤー４００およびプレーヤー４００がデータを読み出すメモリカード２５０１の構成の一例を示すブロック図である。
【０１４７】
図２６に示すように、メモリカード２５０１は、半導体メモリチップ１００とコントローラー２００とを含む。半導体メモリチップ１００およびコントローラー２００は、第１の実施の形態または第２の実施の形態で述べた構成を備える。例えば、図２６のコントローラー２００は、例えば、図３の暗号鍵共有部２１０と図５の読出制御部２２０と具備している。メモリカード２５０１は、例えばＳＤメモリカードなどにより構成することができる。
【０１４８】
第３の実施の形態では、暗号化ビデオデータ２５４１、暗号化ビデオデータ２５４１を復号するために用いられる復号鍵Ｋｃが暗号化された暗号化復号鍵２５３１、および、ＭＫＢ２５２１（以下、単にＭＫＢという）が、半導体メモリチップ１００のメモリ１１０内の一般領域１１５に記録されている。また、メディア鍵変換鍵２５１１（以下、メディア鍵変換鍵ＫＴという）がメモリ１１０内の特殊領域（共通領域１１４）に格納されている。
【０１４９】
復号鍵Ｋｃは暗号化された暗号化復号鍵２５３１として記録される。この暗号化に用いられる鍵は、ＭＫＢが正しく処理された場合に導出されるメディア鍵ＫＭを、メディア鍵変換鍵ＫＴを用いて変換したものである。例えば、暗号化復号鍵２５３１＝ＡＥＳ−Ｅ（ＡＥＳ−Ｇ（ＫＴ，ＫＭ），Ｋｃ）。この例では、変換に一方向性関数であるＡＥＳ−Ｇを用い、暗号化にＡＥＳ−Ｅを用いている。
【０１５０】
プレーヤー４００は、デバイス鍵を表すＫＤ４１０（以下、デバイス鍵ＫＤという）を保持するとともに、ＭＫＢ処理部４２０と、メディア鍵変換部４３０と、鍵復号部４４０と、ビデオ復号部４５０と、再生部４６０とを備えている。
【０１５１】
ＭＫＢ処理部４２０は、一般領域１１５から読み出されたＭＫＢをデバイス鍵ＫＤを用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。メディア鍵変換部４３０は、導出されたメディア鍵ＫＭを、特殊領域から読み出されたメディア鍵変換鍵ＫＴを用いて変換した鍵Ｋｗを生成する。鍵復号部４４０は、一般領域１１５から読み出された暗号化復号鍵２５３１を鍵Ｋｗで復号することにより復号鍵Ｋｃを生成する。ビデオ復号部４５０は、復号鍵Ｋｃを用いて暗号化ビデオデータを復号する。再生部４６０は、復号されたビデオデータを再生する。
【０１５２】
次に、図２６のように構成されたプレーヤー４００によるメモリカード２５０１内のデータの再生処理について図２７を用いて説明する。図２７は、第３の実施の形態における再生処理の全体の流れを示すフローチャートである。
【０１５３】
プレーヤー４００は、メモリカード２５０１内のコントローラー２００に対して、一般領域１１５に含まれているＭＫＢの読み出しを指示する（ステップＳ１００１）。例えば、プレーヤー４００は、コントローラー２００に対して当該ＭＫＢの先頭アドレスとサイズとを指定する。
【０１５４】
コントローラー２００は、指定された領域を含むページを半導体メモリチップ１００から読み出し、指定された領域のデータ（即ちＭＫＢの値）をプレーヤー４００に送る。プレーヤー４００は、受信したＭＫＢをＭＫＢ処理部４２０に入力する（ステップＳ１００２）。ＭＫＢ処理部４２０は、プレーヤー４００が保持しているデバイス鍵ＫＤを読み出し、入力されたＭＫＢをデバイス鍵ＫＤを用いてＭＫＢ処理し、メディア鍵ＫＭを導出して出力する（ステップＳ１００３）。
【０１５５】
次に、ＭＫＢ処理部４２０は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否かを判断する（ステップＳ１００４）。デバイス鍵ＫＤがＭＫＢによって無効化されていた場合、ＭＫＢ処理部４２０は正しいメディア鍵ＫＭを導出することができない。この場合、ＭＫＢ処理部４２０は、メディア鍵ＫＭが得られなかったと判断し（ステップＳ１００４：Ｎｏ）、エラーを出力する。なお、ＭＫＢ処理部４２０からエラーが出力された場合、プレーヤー４００は警告メッセージを表示して動作を停止する。
【０１５６】
メディア鍵ＫＭが得られた場合（ステップＳ１００４：Ｙｅｓ）、プレーヤー４００は、メディア鍵ＫＭをメディア鍵変換部４３０に送る（ステップＳ１００５）。次に、プレーヤー４００は、特殊領域（共通領域１１４）に含まれているメディア鍵変換鍵ＫＴの読み出しを指示する（ステップＳ１００６）。例えば、プレーヤー４００は、コントローラー２００にメディア鍵変換鍵ＫＴの先頭アドレスとサイズとを指定する。
【０１５７】
コントローラー２００は、指定された領域を含むページを半導体メモリチップ１００から読み出し、指定された領域のデータ（即ちメディア鍵変換鍵ＫＴの値）をプレーヤー４００に送る。プレーヤー４００は、コントローラー２００から受信したメディア鍵変換鍵ＫＴの値をメディア鍵変換部４３０に入力する。
【０１５８】
メディア鍵変換部４３０は、入力されたメディア鍵変換鍵ＫＴでメディア鍵ＫＭを変換して鍵Ｋｗ＝ＡＥＳ−Ｇ（ＫＴ，ＫＭ）を得る（ステップＳ１００７）。プレーヤー４００は、鍵Ｋｗの値を鍵復号部４４０に送る。
【０１５９】
次に、プレーヤー４００は、コントローラー２００を介して、半導体メモリチップ１００の一般領域１１５から暗号化復号鍵２５３１を読み取る（ステップＳ１００８）。例えば、プレーヤー４００は、コントローラー２００に暗号化復号鍵２５３１の先頭アドレスとサイズを指定する。
【０１６０】
コントローラー２００は、一般領域１１５から指定された領域を含むページを読み出し、指定された領域のデータ（即ち暗号化復号鍵２５３１の値）をプレーヤー４００に送る。プレーヤー４００は、コントローラー２００から受信した暗号化復号鍵２５３１の値を鍵復号部４４０に入力する。
【０１６１】
鍵復号部４４０は、入力された暗号化復号鍵２５３１を鍵Ｋｗで復号する（ステップＳ１００９）。これにより、復号鍵Ｋｃの値が得られる。復号鍵Ｋｃを得る式は以下の（１）式のように表される。
Ｄｅｃ（Ｋｗ，暗号化復号鍵）
＝Ｄｅｃ（Ｋｗ，Ｅｎｃ（ＡＥＳ−Ｇ（ＫＴ，ＫＭ），Ｋｃ））
＝Ｄｅｃ（Ｋｗ，Ｅｎｃ（Ｋｗ，Ｋｃ））
＝Ｋｃ  ・・・（１）
【０１６２】
鍵復号部４４０は、復号鍵Ｋｃの値をビデオ復号部４５０に送る（ステップＳ１０１０）。ビデオ復号部４５０は、受信した復号鍵Ｋｃの値を保持する。
【０１６３】
次に、プレーヤー４００は、コントローラー２００を介して、一般領域１１５から順次暗号化ビデオデータを読み取り、ビデオ復号部４５０に順次入力する（ステップＳ１０１１）。ビデオ復号部４５０は、復号鍵Ｋｃを用いて暗号化ビデオデータを順次復号し（ステップＳ１０１２）、再生部４６０に送る（ステップＳ１０１３）。再生部４６０は、受信したビデオデータを順次再生（表示）する（ステップＳ１０１４）。
【０１６４】
メディア鍵変換鍵ＫＴは、正しいコンテンツ復号鍵（復号鍵Ｋｃ）を得る為に必要なデータである。この値は、例えば、半導体メモリチップ１００毎に異なっていても良い。または、メモリカード２５０１毎に異なっていても良い。更には、メモリカード２５０１毎に統計的に異なっていても良い。統計的に異なるとは、厳密に異なる値とならない場合があるが、統計的には異なるとみなせることを意味する。例えば桁数が極めて大きい乱数を発生させ、この乱数の値を用いる場合が該当する。
【０１６５】
特殊領域に記録されるメディア鍵変換鍵ＫＴがメモリカード２５０１毎に（少なくとも統計的に）異なっている場合、メディア鍵変換鍵ＫＴは、メモリカード２５０１のＩＤの一種とみなすことができる。なお、暗号化されたコンテンツデータ（ビデオデータなど）を復号されるために必要なデータとして、メディア鍵変換鍵ＫＴの代わりにＭＫＢを保存するように構成してもよい。
【０１６６】
メディア鍵変換鍵ＫＴを半導体メモリチップ１００の書き込み特殊領域に正しく記録するには、半導体メモリチップ１００が書き込み装置３００によって認証されなければならない。プレーヤー４００が、読み出し特殊領域に記録されたメディア鍵変換鍵ＫＴを、コントローラー２００を経由して正しく読み出すことができる為には、コントローラー２００が半導体メモリチップ１００によって認証されていなければならない。結局、書き込み装置３００が半導体メモリチップ１００を経由してコントローラー２００を認証するトラスト・チェインが確立されていなければ、プレーヤー４００はメディア鍵変換鍵ＫＴを正しく読み出すことはできない。即ち、プレーヤー４００によるビデオの再生をもって、トラスト・チェイン確立の証として良い。
【０１６７】
なお、第３の実施の形態におけるＭＫＢは、ビデオの供給者がビデオ毎に供給するようにしても良い。一般に、ＭＫＢは対称鍵暗号を用いて構成されるが、その場合は、公開鍵暗号を用いて構成するようにすると良い。その理由を以下に説明する。
【０１６８】
対称鍵暗号を用いて構成されたＭＫＢの場合、一般にＭＫＢを生成する為には、全てのデバイス鍵ＫＤの値を知っている必要がある。ビデオ供給者にＭＫＢの生成を行わせる為には、全てのデバイス鍵ＫＤの値を当該ビデオ供給者に提供する必要がある。もし、このデバイス鍵ＫＤの値が悪意のプレーヤー製造者に漏えいした場合、ＭＫＢによるプレーヤーの無効化が実質無意味になる。悪質なまたは粗悪なプレーヤーをＭＫＢを用いて無効化しても、悪意のプレーヤー製造者は、無効化されていないデバイス鍵ＫＤを用いて、幾らでも悪質なまたは粗悪なプレーヤーを製造し続けることが可能であるからである。
【０１６９】
そこに、公開鍵暗号を用いてＭＫＢを構成するメリットがある。公開鍵暗号を用いる場合、デバイス鍵ＫＤは秘密鍵を用いて構成される。プレーヤー製造者は、当該プレーヤー製造者に割り当てられたデバイス鍵ＫＤの値しか知らない。一方、ビデオ供給者には、ＭＫＢ生成用に公開鍵を配布する。ビデオ供給者は、当該公開鍵を用いて自由にＭＫＢを生成することが可能である。一方、仮にＭＫＢ生成用の公開鍵が悪意のプレーヤー製造者に漏えいしても、公開鍵暗号の基本的な性質から、秘密鍵で構成されているデバイス鍵ＫＤの値を知ることはできない。このように、図２６におけるＭＫＢは公開鍵暗号に基づいて構成されたＭＫＢであっても良い。
【０１７０】
このように、第３の実施の形態では、一般領域に暗号化データを記憶し、特殊領域に暗号化データを復号するために必要なデータを記憶し、特殊領域のデータを用いて暗号化データを復号して利用できる。これにより、コンテンツ供給者による再生デバイスのリボークが実現可能となる。
【０１７１】
（第４の実施の形態）
第４の実施の形態では、コンテンツに付随するＭＫＢによるコントローラーの無効化と、暗号化ビデオデータのメモリカード毎の個別化とを組み合わせた実施の形態を説明する。
【０１７２】
図２８は、第４の実施の形態のプレーヤー４００−２およびメモリカード２６０１の構成の一例を示すブロック図である。
【０１７３】
図２８に示すように、メモリカード２６０１は、半導体メモリチップ１００とコントローラー２００−２とを含む。半導体メモリチップ１００は、第１の実施の形態または第２の実施の形態で述べた構成を備える。
【０１７４】
第４の実施の形態では、暗号化ビデオデータ２５４１、暗号化されたＭＫＢ２５２１−２（以下、ＭＫＢ’という）およびＭＫＢ２５２２（以下、ＭＫＢ２という）が一般領域１１５に記録されている。また、ＭＫＢ’からＭＫＢを復号するためのＭＫＢ復号鍵２５１３（以下、ＭＫＢ復号鍵ＫＴという）およびメディア鍵変換鍵２５１２（以下、メディア鍵変換鍵ＫＴ２という）が特殊領域（共通領域１１４）に格納されている。このように、本実施の形態では、メディア鍵変換鍵２５１１（メディア鍵変換鍵ＫＴ）の代わりに、ＭＫＢの復号に用いられるＭＫＢ復号鍵ＫＴを備えている。
【０１７５】
次に、コントローラー２００−２の構成例について説明する。本実施の形態のコントローラー２００−２は、第１または第２の実施の形態のコントローラー２００の構成に加えて、デバイス鍵ＫＤ２６１０（以下、デバイス鍵ＫＤ２という）と、ＭＫＢ処理部２６２０と、メディア鍵変換部２６３０と、ビデオ復号部２６４０とを備えている。なお、図２８では、第１または第２の実施の形態で説明した構成部は図示を省略しているが、コントローラー２００−２は、例えば、図７の暗号鍵共有部２１０−２と図１１の読出制御部２２０−３とを具備している。そして、読み出し特殊領域に格納されている、ＭＫＢ復号鍵ＫＴおよびメディア鍵変換鍵ＫＴ２の読み出しは、暗号鍵共有部２１０−２と読出制御部２２０−３とを用いて行われる。
【０１７６】
ＭＫＢ処理部２６２０は、一般領域１１５から読み出されたＭＫＢ２をデバイス鍵ＫＤ２を用いて処理することによりメディア鍵ＫＭ２を導出するＭＫＢ処理を実行する。メディア鍵変換部２６３０は、導出されたメディア鍵ＫＭ２を、特殊領域から読み出されたメディア鍵変換鍵ＫＴ２を用いて変換した復号鍵Ｋｃ２を生成する。ビデオ復号部２６４０は、復号鍵Ｋｃ２を用いて暗号化ビデオデータを復号する。
【０１７７】
次に、プレーヤー４００−２の構成例について説明する。プレーヤー４００−２は、デバイス鍵４１０（以下、デバイス鍵ＫＤという）を保持するとともに、ＭＫＢ処理部４２０−２と、ビデオ復号部４５０と、再生部４６０と、ＭＫＢ復号部４７０と、を備えている。
【０１７８】
第４の実施の形態では、ＭＫＢ復号部４７０が追加されたこと、ＭＫＢ処理部４２０−２の機能、および、鍵復号部４４０とメディア鍵変換部４３０が削除されたことが、第３の実施の形態のプレーヤー４００と異なっている。
【０１７９】
ＭＫＢ復号部４７０は、一般領域１１５から読み出されたＭＫＢ’をＭＫＢ復号鍵ＫＴで復号してＭＫＢを生成する。ＭＫＢ処理部４２０−２は、生成されたＭＫＢをデバイス鍵ＫＤを用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。
【０１８０】
上述のように、本実施の形態では、一般領域１１５に２つのＭＫＢ（ＭＫＢを暗号化したＭＫＢ’およびＭＫＢ２）が記録されている。ＭＫＢ’を復号したＭＫＢは、第３の実施の形態と同様にプレーヤー４００−２の認証および無効化に用いられる。一方、ＭＫＢ２は、コントローラー２００の認証および無効化に用いられる。
【０１８１】
また、本実施の形態では、特殊領域（共通領域１１４）はＭＫＢ復号鍵ＫＴおよびメディア鍵変換鍵ＫＴ２を格納している。ＭＫＢ復号鍵ＫＴは、プレーヤー４００−２用のＭＫＢ復号鍵である。メディア鍵変換鍵ＫＴ２は、コントローラー２００用のメディア鍵変換鍵である。これらの鍵は、メモリカード２６０１毎に異なっていて良い。鍵とデータとの間の関係は次のようになっている。
【０１８２】
（１）ＭＫＢを無効化されていないデバイス鍵ＫＤで処理するとメディア鍵ＫＭが得られる。また、ＭＫＢ２を無効化されていないデバイス鍵ＫＤ２で処理するとメディア鍵ＫＭ２が得られる。
（２）（平文の）ビデオデータをＣ、暗号化ビデオデータをＣ’とすると、ビデオデータＣはメディア鍵ＫＭと復号鍵Ｋｃ２で二重に暗号化されている：Ｃ’＝ＡＥＳ−Ｅ（Ｋｃ２，ＡＥＳ−Ｅ（ＫＭ，Ｃ））。
（３）ＭＫＢはＭＫＢ’をＭＫＢ復号鍵ＫＴで復号して得られる：ＭＫＢ＝ＡＥＳ−Ｄ（ＫＴ，ＭＫＢ’）。
（４）復号鍵Ｋｃ２はメディア鍵ＫＭ２をメディア鍵変換鍵ＫＴ２で変換して得られる：Ｋｃ２＝ＡＥＳ−Ｇ（ＫＴ２，ＫＭ２）。
（５）暗号化ビデオデータＣ’の復号過程は次の通り：
ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｄ（Ｋｃ２，Ｃ’））
＝ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｄ（Ｋｃ２，ＡＥＳ−Ｅ（Ｋｃ２，ＡＥＳ−Ｅ（ＫＭ，Ｃ））））
＝ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｅ（ＫＭ，Ｃ））
＝Ｃ。
【０１８３】
次に、図２８のように構成されたプレーヤー４００−２によるメモリカード２６０１内のデータの再生処理について図２９を用いて説明する。図２９は、第４の実施の形態における再生処理の全体の流れを示すフローチャートである。
【０１８４】
プレーヤー４００−２は、メモリカード２６０１内のコントローラー２００−２に対して、一般領域１１５に含まれているＭＫＢ２の読み出しを指示する（ステップＳ１１０１）。例えば、プレーヤー４００−２は、コントローラー２００−２に対して当該ＭＫＢ２の先頭アドレスとサイズとを指定する。
【０１８５】
コントローラー２００−２は、指定された領域を含むページを半導体メモリチップ１００から読み出し、指定された領域のデータ（即ちＭＫＢ２の値）をＭＫＢ処理部２６２０に入力する（ステップＳ１１０２）。ＭＫＢ処理部２６２０は、コントローラー２００−２が保持しているデバイス鍵ＫＤ２を読み出し、入力されたＭＫＢ２をデバイス鍵ＫＤ２を用いてＭＫＢ処理し、メディア鍵ＫＭ２を導出して出力する（ステップＳ１１０３）。
【０１８６】
次に、ＭＫＢ処理部２６２０は、ＭＫＢ処理によりメディア鍵ＫＭ２が得られたか否かを判断する（ステップＳ１１０４）。デバイス鍵ＫＤがＭＫＢ２によって無効化されていた場合、ＭＫＢ処理部２６２０は正しいメディア鍵ＫＭ２を導出することができない。この場合、ＭＫＢ処理部２６２０は、メディア鍵ＫＭ２が得られなかったと判断し（ステップＳ１１０４：Ｎｏ）、エラーを出力する。
【０１８７】
メディア鍵ＫＭ２が得られた場合（ステップＳ１１０４：Ｙｅｓ）、ＭＫＢ処理部２６２０は、メディア鍵ＫＭ２をメディア鍵変換部２６３０に送る（ステップＳ１１０５）。メディア鍵変換部２６３０は、特殊領域（共通領域１１４）に含まれているメディア鍵変換鍵ＫＴ２を読み出す（ステップＳ１１０６）。そして、メディア鍵変換部２６３０は、読み出したメディア鍵変換鍵ＫＴ２でメディア鍵ＫＭ２を変換した復号鍵Ｋｃ２を生成する（ステップＳ１１０７）。メディア鍵変換部２６３０は、生成した復号鍵Ｋｃ２をビデオ復号部２６４０に送信する（ステップＳ１１０８）。ビデオ復号部２６４０は、受信した復号鍵Ｋｃの値を保持する。
【０１８８】
次に、プレーヤー４００−２は、コントローラー２００−２を介して半導体メモリチップ１００の一般領域１１５からＭＫＢ’を読み出し、ＭＫＢ復号部４７０に入力する（ステップＳ１１０９）。ＭＫＢ復号部４７０は、コントローラー２００−２を介して半導体メモリチップ１００の特殊領域（共通領域１１４）からＭＫＢ復号鍵ＫＴを読み出す（ステップＳ１１１０）。次に、ＭＫＢ復号部４７０は、読み出したＭＫＢ復号鍵ＫＴを用いて、入力されたＭＫＢ’を復号し、平文のＭＫＢを得る（ステップＳ１１１１）。ＭＫＢ復号部４７０は、平文のＭＫＢをＭＫＢ処理部４２０−２に送る（ステップＳ１１１２）。
【０１８９】
ＭＫＢ処理部４２０−２は、プレーヤー４００−２が保持しているデバイス鍵ＫＤを読み出し、入力されたＭＫＢをデバイス鍵ＫＤを用いてＭＫＢ処理し、メディア鍵ＫＭを導出する（ステップＳ１１１３）。
次に、ＭＫＢ処理部４２０−２は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否かを判断する（ステップＳ１１１４）。デバイス鍵ＫＤがＭＫＢによって無効化されていた場合、ＭＫＢ処理部４２０−２は正しいメディア鍵ＫＭを導出することができない。この場合、ＭＫＢ処理部４２０−２は、メディア鍵ＫＭが得られなかったと判断し（ステップＳ１１１４：Ｎｏ）、エラーを出力する。メディア鍵ＫＭが得られた場合（ステップＳ１１１４：Ｙｅｓ）、ＭＫＢ処理部４２０−２は、メディア鍵ＫＭをビデオ復号部４５０に送る（ステップＳ１１１５）。
【０１９０】
次に、コントローラー２００−２のビデオ復号部２６４０は、一般領域１１５から順次暗号化ビデオデータ２５４１を読み出す（ステップＳ１１１６）。ビデオ復号部２６４０は、保持している復号鍵Ｋｃ２を用いて、読み出した暗号化ビデオデータを復号する（ステップＳ１１１７）。ビデオ復号部２６４０は、復号したビデオデータをプレーヤー４００−２のビデオ復号部４５０に送る（ステップＳ１１１８）。
【０１９１】
ビデオ復号部４５０は、復号鍵Ｋｃを用いてビデオデータを順次復号し（ステップＳ１１１９）、再生部４６０に送る（ステップＳ１１２０）。再生部４６０は、受信したビデオデータを順次再生（表示）する（ステップＳ１１２１）。
【０１９２】
メディア鍵変換鍵ＫＴ２がメモリカード２６０１毎に異なっていれば、復号鍵Ｋｃ２もメモリカード２６０１毎に異なる。従って、メディア鍵ＫＭまたはメディア鍵変換鍵ＫＴ２がメモリカード２６０１毎に異なっていれば、暗号化ビデオデータ自体がメモリカード２６０１毎に異なる。即ち、暗号化ビデオデータがメモリカード２６０１毎に個別化されることになる。
【０１９３】
このように、第４の実施の形態にかかるメモリチップでは、コンテンツに付随するＭＫＢによるコントローラーの無効化（コンテンツ供給者による再生デバイスのリボーク）と、暗号化ビデオデータのメモリカード毎の個別化（コンテンツ供給者によるコントローラーのリボーク）との組み合わせ（二重暗号化）が可能となる。
【０１９４】
（第５の実施の形態）
これまでは、本発明をコンテンツ保護に適用する実施の形態を述べたが、他の産業分野へ適用することもできる。第５の実施の形態では、スマートグリッドに適用した実施の形態を説明する。スマートグリッドとは、原子力や火力など従来の発電に加えて、太陽光や風力などの再生可能エネルギーを併用する際の電力品質の安定化を図るために構築されている次世代電力網である。
【０１９５】
図３０は、第５の実施の形態の次世代電力網の一構成例を示す図である。次世代電力網では、電力使用量を集計するスマートメーター３０１０ａと、家電機器を管理するホームサーバであるＨＥＭＳ（Home  Energy  Management  System）３０２０が各家庭に設置される。また、商業ビルを対象として、ビル内の電気機器を管理するサーバであるＢＥＭＳ（Building  Energy  Management  System）３０３０がビル毎に設置される。商業ビルには、スマートメーター３０１０ａと同様のスマートメーター３０１０ｂが設置される。以下では、スマートメーター３０１０ａおよび３０１０ｂを単にスマートメーター３０１０という。
【０１９６】
スマートメーター３０１０は、コンセントレータとよばれる中継器（コンセントレータ３０４０）によって数台ごとにまとめられ、通信網を介してメーターデータ管理システムであるＭＤＭＳ（Meter  Data  Management  System）３０５０と通信する。ＭＤＭＳ３０５０は、各家庭のスマートメーター３０１０から一定の間隔で電力使用量を受信して記憶する。エネルギー管理システムであるＥＭＳ（Energy  Management  System）３０６０は、ＭＤＭＳ３０５０に集まった複数の家庭の電力使用量、或いは、電力系統に設置されたセンサからの情報に基づいて、各家庭のスマートメーター３０１０やＨＥＭＳ３０２０に対して電力使用を抑制するよう要求するなどの電力制御を行う。また、ＥＭＳ３０６０は、遠隔端末ユニットであるＲＴＵ（Remote  Terminal  Unit）３０７１に接続された太陽光発電や風力発電などの分散電源３０８０、同じくＲＴＵ３０７２に接続された蓄電装置３０９０、および、ＲＴＵ３０７３に接続された発電側との間を制御する送配電制御装置３１００を制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
【０１９７】
図３１は、スマートメーター３０１０の構成例を示すブロック図である。スマートメーター３０１０は、ＭＤＭＳ３０５０と暗号通信を行う。通信経路上にコンセントレータ３０４０が存在するが、コンセントレータ３０４０は暗号通信を中継するのみである。ＭＤＭＳ３０５０とスマートメーター３０１０とは共有鍵Ｋを保持しており、当該共有鍵Ｋを用いて暗号通信を行う。
【０１９８】
例えば、計測部３０１１に接続する通信部３０１２が、共有鍵Ｋを用いて計測値を暗号化してＭＤＭＳ３０５０に送る。ＭＤＭＳ３０５０は、保持する共有鍵Ｋを用いて暗号化された計測値を復号する。これにより、通信路上で通信が傍受されたとしても、傍受者は計測値を知ることができない。或いは、ＭＤＭＳ３０５０から計測部３０１１に制御用コマンドが送られる場合がある。例えば、計測の中止や開始、計測データの送付指示などの制御コマンドである。ＭＤＭＳ３０５０は、共有鍵Ｋを用いて、制御コマンドを暗号化し、暗号化した制御コマンドをスマートメーター３０１０の通信部３０１２に送信する。通信部３０１２は、共有鍵Ｋを用いて暗号化制御コマンドを復号し、制御コマンドを計測部３０１１に送る。或いは、半導体メモリチップ１００のメモリ１１０の一般領域に電力使用量データが格納されており、通信部３０１２は、共有鍵Ｋを用いて当該電力使用量データを暗号化し、暗号化電力使用量データをＭＤＭＳ３０５０に送信する。ＭＤＭＳ３０５０は、共有鍵Ｋを用いて当該暗号化電力使用量データを復号する。
【０１９９】
スマートメーター３０１０において、共有鍵Ｋは半導体メモリチップのメモリの特殊領域に格納される。共有鍵Ｋは、定期的に或いは随時更新されることが望ましい。更新用の共有鍵をＫ’とする。ＭＤＭＳ３０５０は、更新用の共有鍵Ｋ’を半導体メモリチップ１００のメモリ１１０の書き込み特殊領域に書き込む。その為には既に述べたように、半導体メモリチップ１００がＭＤＭＳ３０５０によって認証される必要がある。また、スマートメーター３０１０の通信部３０１２がコントローラー２００を介して（更新された）共有鍵Ｋ’を読み出すには、コントローラー２００が半導体メモリチップ１００によって認証される必要がある。共有鍵の更新と、更新された共有鍵の利用を通じて、結果的に、半導体メモリチップ１００を使用するスマートメーター３０１０全体が、ＭＤＭＳ３０５０によって認証されることとなる。
【０２００】
ＭＤＭＳ３０５０は、例えば、図１４の書き込み装置３００として、半導体メモリチップ１００の書き込み特殊領域に更新用の共有鍵Ｋ’を書き込む。また、スマートメーター３０１０のコントローラー２００は、例えば、図７の暗号鍵共有部２１０−２と図９の読出制御部２２０−２とを具備している。
【０２０１】
このように、第５の実施の形態では、コンテンツ保護と異なる分野である次世代電力網で用いられるデータに対して、データの不正利用を防止することができる。
【０２０２】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い。
【符号の説明】
【０２０３】
１００  半導体メモリチップ
１１０  メモリ
１１１  符号記憶部
１１２  読み出し特殊領域
１１３  書き込み特殊領域
１１４  共通領域
１１５  一般領域
１２０  暗号鍵共有部
１３０  送出制御部
１４０  データ変換部
２００  コントローラー
２２０  読出制御部
２３０  書込制御部
２４０  一般領域読出部
２５０  一般領域書込部
３００  書き込み装置
３１０  ＥＣＣ生成部
３２０  鍵記憶部
３３０  暗号化部
３４０  データ送信部
【図１】
2011064883.tif 000003
【図２】
2011064883.tif 000004
【図３】
2011064883.tif 000005
【図４】
2011064883.tif 000006
【図５】
2011064883.tif 000007
【図６】
2011064883.tif 000008
【図７】
2011064883.tif 000009
【図８】
2011064883.tif 000010
【図９】
2011064883.tif 000011
【図１０】
2011064883.tif 000012
【図１１】
2011064883.tif 000013
【図１２】
2011064883.tif 000014
【図１３】
2011064883.tif 000015
【図１４】
2011064883.tif 000016
【図１５】
2011064883.tif 000017
【図１６】
2011064883.tif 000018
【図１７】
2011064883.tif 000019
【図１８】
2011064883.tif 000020
【図１９】
2011064883.tif 000021
【図２０】
2011064883.tif 000022
【図２１】
2011064883.tif 000023
【図２２】
2011064883.tif 000024
【図２３】
2011064883.tif 000025
【図２４】
2011064883.tif 000026
【図２５】
2011064883.tif 000027
【図２６】
2011064883.tif 000028
【図２７】
2011064883.tif 000029
【図２８】
2011064883.tif 000030
【図２９】
2011064883.tif 000031
【図３０】
2011064883.tif 000032
【図３１】
2011064883.tif 000033
【手続補正書】
【提出日】平成24年11月27日(2012.11.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である特殊領域を含むメモリと、
前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、
前記特殊領域に書き込む書込データを前記コントローラーから受信し、前記第２鍵を用いて前記書込データを変換した変換データを生成する変換部と、
前記変換データを前記特殊領域に書き込む書込部と、
を備えることを特徴とするメモリチップ。
【請求項２】
前記コントローラーと共有する暗号鍵を用いて、前記特殊領域に書き込まれた前記変換データを暗号化した暗号化データを生成する暗号化部と、
前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
を特徴とする請求項１に記載のメモリチップ。
【請求項３】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記変換部は、前記書込データのエラー訂正符号が前記第１鍵によって変換された変換符号と、前記第１鍵によって変換された前記書込データとを前記コントローラーから受信し、前記変換符号を前記第２鍵を用いて前記エラー訂正符号に変換し、変換された前記書込データを前記第２鍵を用いて前記書込データに復号した前記変換データを生成し、
前記書込部は、さらに、復号された前記エラー訂正符号を前記符号記憶部に記憶すること、
を特徴とする請求項１に記載のメモリチップ。
【請求項４】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記変換部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、前記第２鍵を用いて前記書込データを前記変換データに変換し、
前記書込部は、さらに、受信された前記エラー訂正符号を前記符号記憶部に記憶すること、
を特徴とする請求項１に記載のメモリチップ。
【請求項５】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である特殊領域を含むメモリと、
前記外部装置がデータの変換に用いる第１鍵に対応する第２鍵を記憶する鍵記憶部と、
前記特殊領域に書き込む書込データを前記コントローラーから受信し、受信した前記書込データを前記特殊領域に書き込む書込部と、
前記特殊領域に書き込まれた前記書込データを、前記第２鍵を用いて変換した変換データを生成する変換部と、
を備えることを特徴とするメモリチップ。
【請求項６】
前記コントローラーと共有する暗号鍵を用いて、前記変換データを暗号化した暗号化データを生成する暗号化部と、
前記暗号化データを前記コントローラーに送出する送出部と、をさらに備えること、
を特徴とする請求項５に記載のメモリチップ。
【請求項７】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記書込部は、前記書込データのエラー訂正符号が前記第１鍵によって変換された変換符号と、前記書込データとを前記コントローラーから受信し、受信した前記変換符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込み、
前記変換部は、前記特殊領域に書き込まれた前記変換符号を前記第２鍵を用いて前記エラー訂正符号に復号し、前記特殊領域に書き込まれた前記書込データを前記第２鍵を用いて前記書込データに復号すること、
を特徴とする請求項５に記載のメモリチップ。
【請求項８】
前記書込データのエラー訂正符号を記憶する符号記憶部をさらに備え、
前記書込部は、前記書込データのエラー訂正符号と、前記書込データとを前記コントローラーから受信し、受信した前記エラー訂正符号を前記符号記憶部に書き込むとともに、受信した前記書込データを前記特殊領域に書き込むこと、
を特徴とする請求項５に記載のメモリチップ。
【国際調査報告】
2011064883.tif 000034
2011064883.tif 000035
2011064883.tif 000036
2011064883.tif 000037