(57)【特許請求の範囲】
【請求項１】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと
接続されるメモリチップであって、
予め定められたデータの記憶領域である第１領域を含むメモリと、
前記外部装置がデータの変換に用いる秘密鍵に対応する公開鍵を記憶する鍵記憶部と、
前記秘密鍵で変換されたデータである暗号化データを前記コントローラーから受信し、
前記公開鍵を用いて前記暗号化データを変換した変換データを生成する変換部と、
前記変換データを前記第１領域に書き込む書込部と、
を備えることを特徴とするメモリチップ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メモリチップに関する。
【背景技術】
【０００２】
半導体ダイ上に形成された半導体メモリチップは、通常単体で使用されることは無く
、外部のコントローラーと電気的に接続されて使用される。外部装置（書き込み装置や読
み出し・再生装置など）から半導体メモリチップ上のメモリ内のデータへのアクセスはコ
ントローラーを介して行われる。コントローラーと半導体メモリチップを組み合わせてメ
モリ製品として販売されることもある。例えば、ＳＤメモリカードのような商品が、その
一例である（非特許文献１参照）。また、半導体メモリチップとコントローラーとを樹脂
で接着したものをＳＩＰ（System  In  Package）として提供する場合もある。また、オ
ーディオ・プレーヤーなどで音楽データの格納用に半導体メモリチップが使用される場合
、コントローラーが半導体メモリチップとは別の半導体の一部に組み込まれていることも
ある。いずれの場合も、半導体メモリチップとコントローラーとが直接接続されており、
半導体メモリチップのメモリ内のデータへのアクセスは必ずコントローラーを介して行わ
れる。
【０００３】
コントローラーは、半導体メモリチップのデータへのアクセスを仲介するだけではな
く、セキュリティ機能を提供する場合がある。例えば、ＳＤメモリカードの場合、コント
ローラーに著作権保護機能が導入されている。コントローラーは、プレーヤーや書き込み
装置などのホスト機器を認証し、認証に成功した場合に限って、半導体メモリチップに格
納されているデータをホスト機器に転送する。また、コントローラーは、認証に成功した
場合に限って、書き込み装置から受信したデータを半導体メモリチップに記録する。これ
により、例えば、認証されない不正なプレーヤーはメモリカード内のデータにアクセスす
ることができない。従って、メモリカード内のデータが不正なプレーヤーによって盗まれ
ることから保護される。
【０００４】
メモリカードのコントローラーによって著作権保護機能が実装されている場合にも、
更なる攻撃が存在する。例えば、メモリカードの中にビデオデータが格納されているもの
とする。メモリカードのコントローラーが有する著作権保護機能によって、当該メモリカ
ードが格納するビデオデータは不正なプレーヤーによる読み出しから保護される。従って
、不正なプレーヤーを用いた当該ビデオデータの不正コピーから守られている。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】4C Entity, LLC. "Content Protection for Recordable Media Specification, SD Memory Card Book, Common Part", Revision 0.961, May. 3, 2007.
【発明の概要】
【発明が解決しようとする課題】
【０００６】
書き込み対象のデータは、半導体メモリチップに格納（書き込み）され、読み出し装
置によって読み出される。
【０００７】
この書き込み対象のデータを読み出し装置で読み出して利用する為には、このデータ
の正統性が保証されている事が望ましい。
【０００８】
本発明は、悪意のある書き込み装置からのデータ書き込みを防止することを目的とす
る。
【課題を解決するための手段】
【０００９】
上述した課題を解決するために、本発明の一態様にかかるメモリチップは、データを
書き込む書き込み装置とデータを読み出す読み出し装置と接続されるメモリチップであっ
て、予め定められたデータの記憶領域である第１領域を含むメモリと、読み出し装置に記
憶される第２鍵情報を受け付け、第３鍵を生成する第２の暗号鍵生成部と、メモリに記憶
されたデータを第３鍵で暗号化した第２の暗号化データを読み出し装置に送信する送出部
とを有し、第２の暗号化データは、読み出し装置が受け付け、読み出し装置が有する第３
鍵に対応する第４鍵で復号されることを特徴とするメモリチップ。
【００１０】
また、本発明の別の態様にかかるメモリチップは、外部装置の要求に応じてデータの
読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である第１領域を含むメモリと、外部装置がデータの
変換に用いる秘密鍵に対応する公開鍵を記憶する鍵記憶部と、特殊領域に書き込む書込デ
ータをコントローラーから受信し、公開鍵を用いて書込データを変換した変換データを生
成する変換部と、変換データを特殊領域に書き込む書込部とを備えることを特徴とする。
【発明の効果】
【００１１】
本発明によれば、悪意のある書き込み装置からのデータ書き込みを防止することがで
きるという効果を奏する。
【図面の簡単な説明】
【００１２】
【図１ＡＡ】トラスト・チェインの一例を示す図。
【図１ＡＢ】トラスト・チェインのデータの流れを示す図。
【図１Ｂ】第１の実施の形態の半導体メモリチップ、コントローラー、書き込み装置のブロック図。
【図１Ｃ】第１の実施の形態の詳細化したブロック図。
【図１Ｄ】第１の実施の形態の書き込みの流れを示すフローチャート。
【図１ＥＡ】具体的な利用形態のデータの流れを示す図。
【図１ＥＢ】具体的な利用形態のトラスト・チェインの一例を示す図。
【図１Ｆ】具体的な利用形態の詳細化したブロック図。
【図１Ｇ】暗号鍵共有部の構成例を示す図。
【図１Ｈ】暗号鍵共有部の動作を示すフローチャート。
【図１Ｊ】送出制御部と読出制御部の構成を示すブロック図。
【図１Ｋ】送出制御部と読出制御部の動作を示すフローチャート。
【図１Ｌ】ゲームプログラム実行時の動作を示すフローチャート。
【図１Ｍ】ＭＫＢを利用する形態の構成を示すブロック図。
【図１Ｎ】ＭＫＢを利用する形態の暗号鍵共有部の構成を示すブロック図。
【図１Ｐ】ＭＫＢを利用する形態のデータ送信部とデータ変換部のブロック図。
【図１Ｑ】ＭＫＢを利用する形態の動作を示すフローチャート。
【図１Ｒ】半導体メモリチップのデータ変換部の構成の一例を示すブロック図。
【図１Ｓ】データ変換部の一例の動作を示すフローチャート。
【図１ＴＡ】電子書籍データの構造を示す図。
【図１ＴＢ】半導体メモリパッケージと書き込み装置の構成例を示すブロック図。
【図１ＴＣ】書き込み対象ページの一例の構成を示す図。
【図１ＴＤ】暗号鍵共有部の構成例を示す図。
【図１ＴＥ】第２データ変換部の構成例を示す図。
【図１ＴＦ】メモリチップ・インターフェースに送信されるデータ構成例を示す図。
【図１ＴＧ】第１変換部に送信されるデータの構成例を示す図。
【図１ＴＨ】第１データ変換部の構成例を示す図。
【図１ＴＪ】データ送出部の構成例を示す図。
【図１ＴＫ】メモリチップ・インターフェースに送信されるデータの作成を示す図。
【図１ＴＬ】書き込み動作を示すフローチャート。
【図１ＴＭ】鍵を共有する手続き例を示すフローチャート。
【図１ＵＡ】スマートグリッドに適用した場合のトラスト・チェインの例を示す図。
【図１ＵＢ】スマートグリッドに利用した場合のデータの流れの例を示す図。
【図１ＵＣ】スマートグリッドに利用した場合のデータの流れの例を示す図。
【図１Ｖ】半導体メモリチップ、ＭＤＭＳ、メーターの構成例を示す図。
【図１ＷＡ】暗号鍵共有部の構成例を示す図。
【図１ＷＢ】送出制御部と読出制御部の構成例を示す図。
【図１ＸＡ】半導体メモリチップとメーターの暗号鍵共有部の構成例を示す図。
【図１ＸＢ】データ変換部とデータ送信部の構成例を示す図である。
【図１ＹＡ】ＭＤＭＳの読み出し手順の例を示す図。
【図１ＹＢ】ＭＤＭＳの読み出し手順の例を示す図。
【図２Ａ】トラスト・チェインの一例を示す図。
【図２Ｂ】第２の実施の形態の半導体メモリチップとコントローラーのブロック図。
【図３Ａ】暗号鍵共有部の構成例を示す図。
【図３Ｂ】メディア鍵を更新する仕組みの一例を示す図。
【図４Ａ】第２の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャート。
【図４Ｂ】メディア鍵を更新する動作例を示す図。
【図５】送出制御部と読出制御部の構成例を示す図。
【図６】第２の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図７】暗号鍵共有部の変形例を示す図。
【図８】第２の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャート。
【図９】送出制御部と読出制御部の変形例を示す図。
【図１０】第２の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図１１Ａ】送出制御部と読出制御部の別の変形例を示す図。
【図１１Ｂ】第２の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図１２Ａ】公開鍵で認証する場合の半導体メモリチップの暗号鍵共有部の構成例を示す図。
【図１２Ｂ】公開鍵で認証する場合のコントローラーの暗号鍵共有部の構成例を示す図。
【図１２Ｃ】暗号鍵共有部の動作例を示すフローチャート。
【図１２Ｄ】半導体メモリチップの送出制御部の構成例を示す図。
【図１２Ｅ】コントローラーの送出制御部の構成例を示す図。
【図１２Ｆ】コントローラーに送信するデータ形式例を示す図。
【図１２Ｇ】半導体メモリチップとコントローラーの送出制御部の動作例を示す図。
【図１２Ｈ】半導体メモリチップとコントローラーの送出制御部の動作例を示す図。
【図１２Ｊ】利用装置が半導体メモリチップに認証される場合の構成例を示す図。
【図１２Ｋ】利用装置が半導体メモリチップに認証される場合のトラスト・チェインを示す図。
【図１３】書き込み特殊領域に書き込みを行う様子を示す図。
【図１４】書込制御部およびデータ変換部の構成例を示す図。
【図１５】第２の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図１６】最小限のデータのみ暗号化および復号する構成でのデータの変化を表す図。
【図１７Ａ】書込制御部およびデータ変換部の変形例を示す図。
【図１７Ｂ】書き込み装置がコントローラーを介して書き込む構成例を示す図。
【図１７Ｃ】データを書き込む動作例を示すフローチャート。
【図１７Ｄ】データを書き込む動作例を示すフローチャート。
【図１８】鍵記憶部のデータ構造の一例を示す図。
【図１９】変形例における書き込み処理の全体の流れを示すフローチャート。
【図２０】バージョン情報の変形例を示す図。
【図２１】第３の実施の形態の半導体メモリチップのブロック図。
【図２２】第３の実施の形態の受信制御部および書き込み装置の構成例を示す図。
【図２３】第３の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図２４】第３の実施の形態のデータ変換部の構成例を示す図。
【図２５】第３の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図２６】第４の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図２７】第４の実施の形態における再生処理の全体の流れを示すフローチャート。
【図２８】第５の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図２９】第５の実施の形態における再生処理の全体の流れを示すフローチャート。
【図３０】第６の実施の形態の次世代電力網の一構成例を示す図。
【図３１】メーターの構成例を示すブロック図。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、この発明にかかるメモリチップの好適な実施の形態を詳
細に説明する。
【００１４】
（第１の実施の形態）
第１の実施の形態にかかるメモリチップ（半導体メモリチップ）は、図１ＡＡのように
読出し装置が半導体メモリチップを認証し、かつ、半導体メモリチップが書き込み装置を
認証する。
【００１５】
データの流れは図１ＡＢに示すように、認証の方向と逆向きである事に注意する。つま
り、認証された書き込み装置は認証した半導体メモリチップにデータを書き込む。読み出
し装置は半導体メモリチップに記憶されたデータを読み出す。このように、本実施の形態
の半導体メモリチップは、図１ＡＡのトラスト・チェインを構築する目的とする。
【００１６】
図１Ｂは、書き込み装置３０が、コントローラー２０を介して、半導体メモリチップ
１０の書き込み認証領域１１−３に書き込みを行う場合のブロック図である。
【００１７】
書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メモリチッ
プから認証された書き込み装置のみが正しいデータを記録する事ができるメモリ領域であ
る。或いは、書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メ
モリチップから認証された書き込み装置が書き込んだデータのみが正しく読み出し得るよ
うなメモリ領域である。
【００１８】
図１Ｂは、コントローラー２０に書き込み装置３０が接続されて、半導体メモリチッ
プ１０の書き込み認証領域１１−３に書き込みを行う様子を示す図である。ただし、図１
Ｂでは、書き込み処理に関わる部分のみが図示されている。
【００１９】
まず、書き込み装置３０が、書き込みが要求されたデータ（書込データ）を暗号化し
た暗号化データ、書込先ページの指定、および書込データに対するＥＣＣをコントローラ
ー２０に送信する。コントローラー２０の書込制御部２３は、暗号化データとＥＣＣとを
半導体メモリチップ１０のデータ変換部１４に送出する。データ変換部１４は、暗号化デ
ータを変換（復号）し、得られた変換データ（書込データ）を書き込み特殊領域１１−３
に書き込むとともに、ＥＣＣを符号記憶部１１−１に書き込む。
【００２０】
図１Ｃは、書き込み装置３０とデータ変換部１４の構成をより詳細に示した図である
。書き込み装置３０、コントローラー２０の書込制御部２３、および、半導体メモリチッ
プ１０のデータ変換部１４の構成例について図１Ｃを用いて説明する。図１Ｃに示すよう
に、書き込み装置３０は、ＥＣＣ生成部３１と、鍵記憶部３２と、暗号化部３３と、デー
タ送信部３４とを備えている。
【００２１】
ＥＣＣ生成部３１は、書き込むべきデータとして入力された書込データのＥＣＣを生
成する。鍵記憶部３２は、書込データの変換に用いるデータ変換鍵（第１鍵）を記憶する
。本実施の形態では、鍵記憶部３２は、公開鍵方式の秘密鍵Ｋｓをデータ変換鍵として記
憶している。この秘密鍵Ｋｓは、半導体メモリチップ１０の鍵記憶部１４１（後述）が記
憶するデータ変換鍵（第２鍵）である公開鍵Ｋｐに対応する秘密鍵である。
【００２２】
なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では
、書き込み装置３０がデータ変換鍵（秘密鍵Ｋｓ）を用いて書込データを暗号化し、半導
体メモリチップ１０が対応するデータ変換鍵（公開鍵Ｋｐ）で書込データを復号してメモ
リ１１０に記憶する場合を例に説明する。書き込み装置３０がデータ変換鍵（第１鍵）を
用いてデータを変換し、半導体メモリチップ１０が、第１鍵に対応するデータ変換鍵（第
２鍵）を用いて変換後のデータを変換するものであれば、これ以外の変換方法を適用して
もよい。例えば、書き込み装置３０が第１鍵を用いて復号に相当する変換処理を実行し、
半導体メモリチップ１０が、第１鍵に対応する第２鍵を用いて暗号化に相当する変換処理
を実行するように構成してもよい。
【００２３】
暗号化部３３は、秘密鍵Ｋｓを用いて書込データを暗号化する。また、暗号化部３３
は、秘密鍵Ｋｓを用いてＥＣＣを暗号化した符号（変換符号）を生成する。なお、以下で
は、暗号化された書込データを暗号化データといい、ＥＣＣを暗号化した変換符号を暗号
化ＥＣＣという場合がある。データ送信部３４は、暗号化データと、暗号化ＥＣＣと、書
込先ページの指定とをコントローラー２０の書込制御部２３に送信する。
【００２４】
次に、コントローラー２０の書込制御部２３の構成例について説明する。図１Ｃに示
すように、書込制御部２３は、データ転送部２３−１を備えている。データ転送部２３−
１は、暗号化データと、暗号化ＥＣＣと、書込先ページ指定とを受信し、これらの情報を
半導体メモリチップ１０のデータ変換部１４に送信する。
【００２５】
次に、データ変換部１４の構成例について説明する。図１Ｃに示すように、データ変
換部１４は、鍵記憶部１４−１と、復号部１４−２と、書込部１４−３とを備えている。
【００２６】
鍵記憶部１４−１は、公開鍵方式の公開鍵Ｋｐを記憶する。復号部１４−２は、鍵記
憶部１４−１の公開鍵Ｋｐを用いて暗号化データと暗号化ＥＣＣとを復号する。なお、暗
号化データから復号された書込データが、変換データに相当する。書込部１４−３は、復
号された書込データをメモリ１１上の書き込み認証領域１１−３の指定されたページに記
録する。また、書込部１４−３は、復号されたＥＣＣをメモリ１１の符号記憶部１１−１
に格納する。
【００２７】
図１Ｄに書き込み時の動作を示す。まず、データDと書き込み先ページの指定が、書
き込み装置３０に入力される（ステップＳ４６０１）。データDはECC生成部３１を通過し
、そこでECCが生成される。データDと当該データDのECCは暗号化部３３に送られる（ステ
ップＳ４６０２）。暗号化部３３は鍵格納部３２から秘密鍵Ksを取得する（ステップＳ４
６０３）。暗号化部３３は、前記秘密鍵Ksを用いて、データDとECCとを、それぞれ暗号化
し、暗号化データD’と暗号化ECCとを得る（ステップＳ４６０４）。暗号化部３３は、前
記暗号化データD’と暗号化ECCとをデータ送信部３４に送る（ステップＳ４６０５）。デ
ータ送信部３４は、コントローラーの書き込み制御部２３に、暗号化データD’と書き込
み先ページ指定、および、暗号化ECCを送信する（ステップＳ４６０６）。書き込み制御
部２３のデータ転送部２３−１が、暗号化データD’と書き込み先ページ指定、および、
暗号化ECCを、データ変換部１４に転送する（ステップＳ４６０７）。データ変換部１４
の復号部１４−２が、前記暗号化データD’と書き込み先ページ指定、および、暗号化ECC
を受信する。復号部４１４２は、鍵記憶部１４−１から公開鍵Kpを取得する（ステップＳ
４６０８）。当該公開鍵Kpは、前記鍵記憶部３２が格納している秘密鍵Ksに対応するもの
である。復号部１４−２は、前記公開鍵Kpを用いて、暗号化データD’と暗号化ECCとをそ
れぞれ復号し、データDとECCとを得る（ステップS４６０９）。復号部１４−２は書込部
１４−３に、書込先ページ指定とデータD、ECCを送る。書込部１４−３が、半導体メモリ
チップの（書き込み認証領域に含まれる）指定された書込先ページにデータDを記録する
と共に、ECCを符号記憶部の然るべき場所（前記指定された書き込み先ページに対応する
場所）に記録する（ステップS４６１０）。
【００２８】
本実施形態の発明のゲーム機器における利用について述べる。図１ＥＡに、本発明の
半導体メモリチップの一応用例を示す。本発明の半導体メモリチップ１０Ｅはゲームカセ
ット１に搭載されている。書き込み装置３０Ｅは、当該ゲームカセット１Ｅの製造段階で
当該ゲームカセット１Ｅにゲームデータ（プログラムや動画などゲーム実行に必要なデー
タ）を記録する。ゲームカセット１Ｅと書き込み装置はインターネットなどを経由して接
続されていても良い。また、ゲームカセット１Ｅの利用時には、ゲームカセット１Ｅは書
き込み装置と切り離されて、ゲーム機に接続される。ゲーム機２ＥはCPUなどを含むSoC（
System on Chip）５０Ｅを搭載している。ここではSoC５０Ｅとしたが、一般にCPUを含む
チップセットとして良い。SoC５０Ｅは、半導体メモリチップ１０Ｅに記録されているゲ
ームデータを読み出し、プログラムを実行する。図１ＥＡにおける矢印は、データの流れ
を示している。一方、図１ＥＢには、図１ＥＡにおける認証の方向を示す。図１ＥＡと図
１ＥＢにおいて、コントローラー２０Ｅは、電気的にデータを中継する働きを果たしてい
る。コントローラー２０Ｅが、データを論理的に加工する事はなく、認証の対象になる事
もない。
【００２９】
上記のような書き込み装置と半導体メモリチップ１０Ｅの認証を実現する為に、半導
体メモリチップ１０上Ｅに、新たに書き込み認証領域１１−３Ｅという領域を儲ける。書
き込み認証領域１１−３Ｅとは、予め定められたメモリ領域であって、当該半導体メモリ
チップ１０Ｅから認証された書き込み装置３０Ｅのみが正しいデータを記録する事ができ
るメモリ領域である。或いは、書き込み認証領域１１−３Ｅとは、予め定められたメモリ
領域であって、当該半導体メモリチップ１０Ｅから認証された書き込み装置３０Ｅが書き
込んだデータのみが正しく読み出し得るようなメモリ領域である。以下に、書き込み認証
領域１１−３Ｅの具体的な構成方法を述べる。
【００３０】
書き込み認証領域１１−３Ｅに正しく書き込む為には、書き込み装置３０が、半導体
メモリチップ１０Ｅが保持している公開鍵に対応する秘密鍵を保持している必要がある。
即ち、半導体メモリチップ１０Ｅから認証された書き込み装置３０Ｅのみが、書き込み認
証領域１１−３Ｅに正しいデータを書き込む事ができる。この事により、書き込み装置３
０Ｅから半導体メモリチップ１０Ｅへのデータの流れ（図１ＥＡ参照）に伴って、半導体
メモリチップ１０Ｅから書き込み装置３０Ｅへの認証（図１ＥＢ参照）を確立する事がで
きる。
【００３１】
図１Ｆは、本発明の一利用例を示すブロック図である。まず、半導体メモリチップ１
１Ｅの機能の概要について説明する。図１Ｆに示すように、半導体メモリチップ１１Ｅは
、メモリ１１−２Ｅと、暗号鍵共有部１２Ｅと、送出制御部１３Ｅと、を備えている。
【００３２】
メモリ１１Ｅは、各種データを記憶する記憶部である。メモリ１１Ｅは、例えば、Ｎ
ＡＮＤ型フラッシュメモリなどにより構成できる。なお、メモリ１Ｅ１はこれに限られず
、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体
メモリを適用することができる。メモリ１１Ｅは、符号記憶部１１−１Ｅと、読み出し特
殊領域１１−２Ｅと、書き込み認証領域１１−３Ｅと、共通領域１１−４Ｅと、一般領域
１１−５Ｅとを備えている。符号記憶部１１−１Ｅは、書き込み装置３０Ｅから書き込み
が要求されたデータのエラー訂正符号（ＥＣＣ：エラーコレクションコード）を記憶する
。なお、符号記憶部１１−１Ｅは、メモリ１１Ｅの外部にメモリ１１Ｅと独立の記憶部と
して備えてもよい。
【００３３】
図１Ｆでは、読み出し特殊領域１１−２Ｅおよび書き込み認証領域１１−３Ｅのそれ
ぞれに、共通領域１１−４Ｅ以外の領域が含まれる例が示されているが、少なくとも共通
領域１１−４Ｅが存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域１
１−２Ｅと書き込み認証領域１１−３Ｅとが一致（すなわち読み出し特殊領域１１−２Ｅ
と書き込み認証領域１１−３Ｅとがいずれかも共通領域１１−４Ｅと一致）するように構
成してもよい。一般領域１１−５Ｅとは、送出制御部１３Ｅを介さずに、コントローラー
２０から直接書き込みおよび読み取りが可能な領域を表す。暗号鍵共有部１２Ｅは、ゲー
ム機２Ｅとの間で共有する暗号鍵を保持または生成する。送出制御部１３Ｅは、メモリ１
１から読み出したデータをゲーム機２Ｅに送出する処理を制御する。次に、コントローラ
ー２０Ｅの機能の概要について説明する。コントローラー２０Ｅは、一般領域読出部２４
Ｅを備えている。一般領域読出部２４Ｅは、一般領域１１−５Ｅからのデータの読み出し
を制御する。すなわち、一般領域１１−５Ｅからデータを読み出す場合、読み出し装置は
、コントローラー２０Ｅの一般領域読出部２４Ｅに対して、読み出し対象となるページの
指定を入力する。次に、ゲーム機２Ｅの機能の概要について説明する。ゲーム機２Ｅは、
暗号鍵共有部５１Ｅ、読出制御部５２Ｅ、プログラム復号部５３Ｅ、プログラム実行部５
４Ｅを有している。暗号鍵共有部５１Ｅは、半導体メモリチップ１０Ｅとの間で共有する
暗号鍵を保持または生成する。読出制御部５２Ｅは、読み出し装置および再生装置などの
外部装置（図示せず）からの要求に応じて、半導体メモリチップ１０Ｅの共通領域１１−
４Ｅからデータを読み出す処理を制御する。プログラム復号部５３Ｅは、読出し制御部５
２Ｅからプログラム暗号鍵を取得し、半導体メモリチップから一般領域読出部２４Ｅが読
み出したゲームプログラムの一部とデータの一部を復号する。プログラム復号部５３Ｅは
、ゲームプログラムとデータとをプログラム実行部５４Ｅに送る。プログラム実行部５４
Ｅは、プログラム復号部５３Ｅが復号したプログラムを実行する。
【００３４】
図１Ｇは、図１Ｆの半導体メモリチップとSoCそれぞれの暗号鍵共有部の構成を示す
ブロック図である。図１Ｇに示すように、暗号鍵共有部１２Ｅは、メディア鍵を表すＫＭ
１２−１Ｅ（以下、メディア鍵ＫＭという）と、ＭＫＢ（Media  Key  Block）１２−２
Ｅとを保持している。ＭＫＢ１２−２Ｅについては、例えば非特許文献１に記載されてい
る。また、暗号鍵共有部５１Ｅは、デバイス鍵を表すＫＤ５１−２Ｅを保持している。ま
た、暗号鍵共有部５１Ｅは、ＭＫＢ読み取り部５１−１Ｅと、ＭＫＢ処理部５１−３Ｅと
、を備えている。ＭＫＢ読み取り部５１−１Ｅは、半導体メモリチップ１０Ｅの暗号鍵共
有部１２ＥからＭＫＢ１２−２Ｅを読み出す。ＭＫＢ処理部５１−３Ｅは、読み出された
ＭＫＢをデバイス鍵ＫＤ５１−２Ｅを用いて処理することによりメディア鍵ＫＭを導出す
るＭＫＢ処理を実行する。
【００３５】
図１Ｈに、図１Ｇの暗号鍵共有部の動作を示す。SoCの暗号鍵共有部５１ＥのMKB読み
取り部５１−１Ｅが、半導体メモリチップ１０Ｅの暗号鍵共有部１２Ｅが保持するMKB１
２−２Ｅを読み出す（ステップＳ４１０１）。MKB読み取り部５１−１Ｅが、読み取ったM
KBをMKB処理部５１−３Ｅに送る（ステップＳ４１０２）。MKB処理部５１−３Ｅは、デバ
イス鍵KD５１−２Ｅを読み、MKB処理を行う（ステップＳ４１０３）。このMKB処理により
正しいメディア鍵KMが得られなかった場合、MKB処理部５１−３ＥはSoC５０Ｅにエラーを
通知する（ステップＳ４１０５）。エラーを受け取ったSoC５０Ｅは以後の読み取り処理
を中止する。一方、正しいメディア鍵KMが得られた場合、MKB処理部５１−３Ｅは、読出
し制御部５２Ｅにメディア鍵KMを送る（ステップＳ４１０６）。また、半導体メモリチッ
プの暗号鍵共有部１２がメディア鍵KM１２−１Ｅを半導体メモリチップの送出制御部１３
Ｅに送る（ステップＳ４１０７）。
【００３６】
図１Ｊは、図１Ｆの送出制御部１３Ｅと読出制御部５２Ｅの構成を示すブロック図で
ある。半導体メモリチップ１０Ｅの送出制御部１３ＥとSoC５０Ｅの読出制御部２２Ｅの
構成例について図１Ｊを用いて説明する。図１Ｊに示すように、送出制御部１３Ｅは、乱
数発生部１３−１Ｅと、読出部１３−２Ｅと、暗号化部１３−３Ｅと、送出部１３−４Ｅ
とを備えている。乱数発生部１３−１Ｅは、暗号化部１３−３Ｅの要求に応じて乱数を発
生する。読出部１３−２Ｅは、指定された読み出し対象ページのデータと、当該データの
ＥＣＣとをメモリ１１Ｅから読み出す。暗号化部１３−３Ｅは、読み出されたデータをメ
ディア鍵ＫＭを用いて暗号化する。送出部１３−４Ｅは、暗号化されたデータ（暗号化デ
ータ）とＥＣＣとをSoC５０Ｅのデータ受信部５２−１Ｅに送出する。また、図１Ｊに示
すように、読出制御部５２Ｅは、データ受信部５２−１Ｅと、復号部５２−２Ｅと、エラ
ー修復部５２−３Ｅとを備えている。データ受信部５２−１Ｅは、半導体メモリチップ１
０Ｅの送出部１３−４Ｅから暗号化データとＥＣＣとを受信する。復号部５２−２Ｅは、
受信された暗号化データをメディア鍵ＫＭを用いて復号する。エラー修復部５２−３Ｅは
、受信されたＥＣＣを用いて、復号されたデータのエラー有無のチェックおよびエラー修
復を行う。
【００３７】
図１Ｋは、送出制御部１３Ｅと読出制御部５２Ｅの動作を示すフローである。読出制
御部５２Ｅは、暗号鍵共有部５１Ｅからメディア鍵KMを受信する（ステップＳ４２０１）
。読出制御部５２Ｅは、当該メディア鍵KMを復号部５２−２Ｅに入力する（ステップＳ４
２０２）。読出制御部５２Ｅは、送出制御部１３Ｅに、読出し対象ページの指定を送る（
ステップＳ４２０３）。読出部１３−２Ｅが指定されたページのデータDを読み出し、暗
号化部１３−３Ｅに入力する（ステップＳ４２０４）。読出部は更に、指定されたページ
に対応するECCを符号記憶部から読出し、暗号化部１３−３Ｅに入力（ステップＳ４２０
５）。暗号化部１３−３Ｅは乱数発生部１３−１Ｅから乱数Rを受け取る（ステップＳ４
２０７）。暗号化部１３−３Ｅは暗号鍵共有部１２Ｅからメディア鍵KMを受け取る（ステ
ップＳ４２０８）。暗号化部１３−３ＥはデータDと前記乱数Rとを連結し、メディア鍵KM
で暗号化。暗号化データD’を得る（ステップＳ４２０９）。送出部１３−４Ｅが、暗号
化データD’とECCとをSoC５０Ｅに送る（ステップＳ５１−１）。
【００３８】
SoC５０Ｅの側では、読出し制御部５２Ｅのデータ受信部５２−１Ｅが、前記暗号化
データD’とECCとを受け取る（ステップＳ５１−２）。この通信はコントローラーを介し
て行われるが、コントローラーは通信の信号を中継するのみである。次いで、データ受信
部５２−１ＥはECCをエラー修復部５２−３Ｅに送る（ステップＳ５１−３）。データ受
信部は暗号化データD’を復号部５２−２Ｅに送る（ステップＳ４２１４）。復号部５２
−２Ｅはメディア鍵KMを用いて暗号化データD’を復号し、平文のデータDを得る（ステッ
プＳ４２１５）。復号部５２−２ＥはデータDをエラー修復部５２−３Ｅに送る（ステッ
プＳ４２１６）。エラー修復部５２−３ＥがECCを用いてデータDのエラーをチェックする
（ステップＳ４２１７）。データDにエラーが無い場合、エラー修復部５２−３Ｅはデー
タDを出力する（ステップＳ４２１９）。データDにエラーが有り修復可能である場合、エ
ラー修復部５２−３ＥはデータDのエラーを修復後、データDを出力する（ステップ４２１
９）。さもなければ、エラー修復部はSoC５０Ｅにエラーの発生を通知して（ステップＳ
５２−２）終了する。
【００３９】
さて、図１Ｆのシステムは、ゲームプログラム実行時に次のように動作する。図１Ｌ
を用いて説明する。ゲームプログラムの一部と、当該ゲームプログラムが利用するデータ
の一部は暗号化されており、当該暗号化の鍵（複数存在して良い。これをプログラム暗号
鍵と称する。）は、書き込み装置によって書き込み認証領域と読み出し特殊領域の交わり
の領域に書き込まれている。ゲームプログラムと当該ゲームプログラムが利用するデータ
自体は、半導体メモリチップ１０Ｅの一般領域に記録されている。ゲーム機２Ｅはゲーム
プログラムを実行する為に、ゲームプログラムをSoC５０Ｅに読み込む。SoC５０Ｅはまず
半導体メモリチップ１０ＥのMKBを読出し、上述の手続きによって、半導体メモリチップ
１０Ｅとメディア鍵KMを共有する（ステップＳ３０）。次いで上述の手続きによって、前
記プログラム暗号鍵を読出し特殊領域から送出制御部１３Ｅを経由して読み出す（ステッ
プＳ４３０５）。前記プログラム暗号鍵は、送出制御部１３Ｅにおいて暗号化され（ステ
ップＳ４３０４）、読出制御部５２Ｅにおいて復号される（ステップＳ４３０５）ことに
なる。ゲーム機２Ｅはゲームカセット１Ｅからゲームプログラムと当該ゲームプログラム
が利用するデータを読み出す。読み出されたゲームプログラムとデータはSoC５０Ｅのプ
ログラム復号部５３Ｅに送られる（ステップＳ４３０８）。プログラム復号部５３Ｅは、
読出制御部５２Ｅからプログラム暗号鍵を取得し、ゲームプログラムの一部とデータの一
部を復号する（ステップＳ４３０９）。プログラム復号部５３Ｅは、ゲームプログラムと
データとをプログラム実行部５４Ｅに送る（ステップＳ４３１０）。プログラム実行部５
４Ｅが当該ゲームプログラムを実行する（ステップＳ４３１１）。
【００４０】
上述の実施例においては、書き込み認証領域を構成する手段として、半導体メモリチ
ップ上の公開鍵を利用した。半導体メモリチップから書き込み装置を認証する為に、書き
込み認証領域を構成する手段としてMKBを用いても良い。その一例を図１Ｍに示す。MKB1
は利用装置のリボーク用であり、MKB2は書き込み装置のリボーク用である。共有鍵の処理
や利用装置の読み出し制御はゲーム機２Ｅの場合と同様である。
【００４１】
書き込み装置と半導体メモリチップの暗号鍵共有手段の構成は図１Ｎに示す通りであ
る。また、書き込み装置のデータ書き込み手段と、半導体メモリチップのデータ変換手段
とを、図１Ｐに示す。
【００４２】
各モジュールは以下のように動作する。図１Ｑを用いて説明する。書き込み装置４Ｍ
の暗号鍵共有部４１Ｍが書き込み認証領域にあるMKB2を読み出す（ステップS4008001）。
暗号鍵共有部４１Ｍは、格納しているデバイス鍵KDを用いて、MKB処理部４１Ｍ２におい
てMKB2を処理し（ステップS40080021）、メディア鍵KMを得る（ステップS40080022）。MK
B2によってデバイス鍵KDがリボークされていた場合は、ここで、暗号鍵共有部４１Ｍは書
き込み装置４Ｍにエラーを通知して動作を終了する（ステップS4008003）。暗号鍵共有部
４１Ｍがメディア鍵KMを得た後、当該メディア鍵KMはデータ送信部４２Ｍに送られる（ス
テップS4008003）。データ送信部４２Ｍは、乱数発生部４２Ｍ１において乱数Rを発生さ
せ、コンテンツ鍵と前記乱数Rとを暗号化部４２Ｍ２に入力する。暗号化部４２Ｍ２は、
前記メディア鍵KMを用いて、コンテンツ鍵と乱数Rとを連結したデータを暗号化する（ス
テップS4008004）。暗号化されたコンテンツ鍵（と乱数）はデータ送出部４２Ｍ３に送ら
れる。データ送出部４２Ｍ３は、コンテンツ鍵のECCを読み込み、暗号化コンテンツ鍵とE
CCとを半導体メモリチップに送出する（ステップS4008005）。当該暗号化コンテンツ鍵と
ECCとを、半導体メモリチップのデータ変換部１４Ｍのデータ受信部１４Ｍ１が受信する
（ステップS4008006）。データ受信部１４Ｍ１は、暗号化コンテンツ鍵を復号部１４Ｍ２
に送り（ステップS4008007）、ECCをECC格納部１５Ｍに記録する（ステップS4008008）。
復号部１４Ｍ２は半導体メモリチップの暗号鍵共有部１３Ｍからメディア鍵KMを読み取り
（ステップS4008009）、当該メディア鍵KMを用いて暗号化コンテンツ鍵を復号する（ステ
ップS4008010）。復号された暗号化コンテンツ鍵は乱数Rと連結されている。復号部１４
Ｍ２は、乱数Rを捨てて、暗号化コンテンツ鍵のみを、半導体メモリの書き込み認証領域
１６Ｍに記録する（ステップS4008011）。
【００４３】
書き込み特殊領域や書き込み認証領域に、鍵共有などの認証手続きを行う事無く、書
き込み装置が書き込みを事が有り得る。この場合、大きく二つの動作が考えられる。一つ
は、認証手続きを経ていないものとして、書き込みを受け付けないという動作である。こ
の場合、半導体メモリチップは書き込み装置に対してエラーを通知しても良い。もう一つ
は、書き込みを受け付け、実際に書き込みを行うという動作である。ただし、認証や鍵の
共有が行われていないので、半導体メモリチップ側は、乱数を発生し、この乱数を暗号鍵
共有部によって共有された鍵として、この乱数で書き込み装置から受信したデータを暗号
化（復号）してメモリに記録する。半導体メモリチップのデータ変換部の構成の一例を図
１Ｒに示す。その動作を図１Ｓに示す。データ受信部１４Ｍ１が、書き込み装置のデータ
送信部から暗号化コンテンツ鍵とECCとを受信する（ステップS4009001）。データ受信部
１４Ｍ１は、ECCをECC格納部１５Ｍに記録。データ受信部１４Ｍ１は、暗号化コンテンツ
鍵を復号部１４Ｍ２に送る。復号部１４Ｍ２は暗号鍵共有部から認証によって得られた共
有鍵Kを取得する。暗号鍵共有部で共有鍵Kが得られた場合は、当該共有鍵Kで暗号化コン
テンツ鍵Kを復号し、書き込み認証領域１６Ｍに記録する（ステップS4009002）。暗号鍵
共有部から共有鍵Kが得られなかった場合、乱数発生部１４Ｍ３で乱数Rを発生し復号部１
４Ｍ２に送る（ステップS4009003）。復号部１４Ｍ２はコンテンツ鍵を前記乱数Rで復号
し、書き込み認証領域１６Ｍに記録する（ステップS4009004）。無論、乱数Rは正しい共
有鍵ではないから、コンテンツ復号鍵は正しく復号できない。即ち、正当な認証を経る事
無く書き込み認証領域に記録を行えば、データは正しく記録されない。
【００４４】
利用装置毎に、半導体メモリチップから読み出したコンテンツデータが区別されるよ
うにする実施形態について以下に説明する。図１Ｔに電子書籍データの構造を図示する。
このデータのサイズは８ＭＢであり、８つの部分に等分されている。便宜上、各部分をD0
0、D01、…、D31までの記号で表現する。電子書籍の文字データとしては、D00とD01、D10
とD11、D20とD21、D30とD31は同一である。しかし、背景の画像に入っている電子透かし
が、D00とD01、D10とD11、D20とD21、D30とD31で異なっている。D00〜D31の各部分は、そ
れぞれ異なるコンテンツ鍵で暗号化されている。それらのコンテンツ鍵を、それぞれK00
、K01、…、K31とする。例えば、データの部分D21はコンテンツ鍵K21で暗号化される。D2
1’ = Enc( K21, D21 )。
【００４５】
電子書籍のリーダーは４つのデバイス鍵KD0、KD1、KD2、KD3を保持している。また、
各リーダーにはリーダーIDが割り当てられている。リーダーIDは８桁の十進数である。各
リーダーはリーダーIDを保持している。本実施例では、半導体メモリチップは８個の読出
し特殊領域を具備している。これら８個の読出し特殊領域をA00, A01, A10, A11, A20, A
21, A30, A31とする。各読出し特殊領域には予め順に、コンテンツ鍵K00, K01, K10, K11
, K20, K21, K30, K31が記録されている。更に、半導体メモリチップには割り当て規則が
記録されている。例えば、割り当て規則として数値０が記録されている。この規則は電子
書籍リーダーによって次のように解釈される。８桁のリーダーIDを２桁づつ区切り、４つ
の数値n0, n1, n2, n3を得る。n0が偶数であれば、A00からコンテンツ鍵K00を読み、デー
タ部分D00’を復号する。n0が奇数であれば、A01からコンテンツ鍵K01を読み、データ部
分D01を復号する。同様に、n1が偶数であれば、A10からコンテンツ鍵K10を読み、データ
部分D10’を復号する。n1が奇数であれば、A11からコンテンツ鍵K11を読み、データ部分D
11’を復号する。以下同様。ポイントは、n1が偶数であるような電子書籍リーダーが、当
該リーダーが保持するデバイス鍵KD0で半導体メモリチップのMKBを処理した時、読出し特
殊領域A00から正しくデータを読み出す事ができる共有鍵を導出可能であるという点であ
る。MKBが、そのように設計されている訳である。
【００４６】
以上のように、電子書籍リーダーは、当該リーダーが保持するリーダーIDに応じて、
A00またはA01、A10またはA11、A20またはA21、A30またはA31から、コンテンツ鍵K00また
はK01、K10またはK11、K20またはK21、K30またはK31を読出し、データ部分D00’またはD0
1’、D10’またはD11’、D20’またはD21’、D30’またはD31’を復号し、表示する。あ
る電子書籍リーダーソフトが不正にクラッキングされ、書籍データが流出したと仮定する
。流出データを見れば、流出した電子書籍リーダーのIDに関する情報を得る事ができる。
例えば、( D00, D11, D20, D31 )の組み合わせで流出していれば、リーダーIDについて、
n0が偶数、n1は奇数、n2は偶数、n3は奇数である事が分かる。
【００４７】
なお、割り当て規則は、MKBと共に与える事も可能である。この場合、デバイスIDは
使用する必要はなく、デバイス鍵KD0、…、KD3の組み合わせ、そのものによって、読出し
特殊領域が指定される。より具体的には、デバイス鍵KD0によってMKBを復号した時、メデ
ィア鍵KM0の他に0または1の値が出てくるようにMKBを設計する事が可能である。
【００４８】
半導体メモリチップは通常インタフェースを処理するメモリチップ・インタフェース
と共にパッケージに封入されて販売されている。メモリチップ・インタフェースのI/Oの
単位が半導体メモリチップのI/Oの単位（ページ）と異なっている場合がある。ここでは
、書き込み装置が暗号化したデータを、メモリチップ・インタフェースに書き込み特殊領
域内のデータを平文で与える事無く、半導体メモリチップに正しいデータを書き込む為の
構成と手順とを開示する。メモリチップ・インタフェースは暗号化されたデータを中継す
るのみであるから、半導体メモリチップに書き込まれる正しいデータを知らない。従って
、ECCの処理を行う事ができない。ECCは書き込み装置が、書き込みデータに付与する必要
がある。
【００４９】
図１ＴＢにシステム構成を示す。半導体メモリチップ１２Ｔはメモリチップ・インタ
フェース１３Ｔと共に半導体メモリパッケージ１１Ｔに封入されている。通常、半導体メ
モリチップは、このような半導体メモリパッケージの形で市販されている。半導体メモリ
チップには一つの暗号鍵共有部と二つのデータ変換部を具備している。第１暗号鍵共有部
１７Ｔと第１データ変換部１８Ｔ、及び、第２データ変換部２０Ｔである。
【００５０】
第１暗号鍵共有部１７Ｔと第１データ変換部１８Ｔは、半導体メモリチップが書き込
み装置２５Ｔから認証を受ける為の仕組みである。第２データ変換部２０Ｔはメモリチッ
プ・インタフェース１３Ｔに与えるデータを秘匿する為の手段である。半導体メモリチッ
プ１２Ｔの第２データ変換部２０Ｔは入出力を持つ。前記入出力でやり取りされるデータ
のサイズは固定であり、それは例えば（２ＫＢ＋３２Ｂ）である。
【００５１】
メモリチップ・インタフェース１３Ｔはデータ送受信部２２Ｔとデータ転送部２９Ｔ
を具備している。メモリチップ・インタフェース１３Ｔと書き込み装置２５Ｔとの間で一
度にやり取りされるデータの単位は、メモリチップ・インタフェース１３Ｔと半導体メモ
リチップ１２Ｔとの間でやり取りされるデータの単位である（２ＫＢ＋３２Ｂ）とは異な
っている。前者の値は５１２Ｂである。メモリチップ・インタフェースは、データサイズ
の違いを吸収する為のバッファ２３Ｔを具備している。当該バッファのサイズは（２ＫＢ
＋３２Ｂ）以上である。
【００５２】
書き込み装置２５Ｔは、第２暗号鍵共有部２６Ｔとデータ送信部２７Ｔを具備してい
る。これらは半導体メモリチップ１２Ｔを認証してデータを書き込む為の仕組みである。
書き込み装置２５Ｔがメモリチップ・インタフェースに一度に書き込むデータのサイズは
５１２Ｂである。メモリチップ・インタフェース１３Ｔのデータ転送部２９Ｔが前記書き
込みデータを受信し、バッファ２３Ｔの一部である５１２Ｂを書き換える。
【００５３】
半導体メモリチップの特殊領域の書き込み対象ページは図１ＴＣのようなデータ構成
になっている。領域１〜４は、それぞれ異なるアプリケーションに対応している。即ち、
半導体メモリチップが保持する異なるデバイス鍵に対応している。即ち、領域１〜４に記
録する際に、半導体メモリチップが使用するデバイス鍵は、それぞれKD1、…、KD4である
。これらのデバイス鍵は第１暗号鍵共有部１７Ｔに格納されている。Extra２１Ｔには領
域１〜４に関する制御用のデータが記録される。
【００５４】
図１ＴＢの書き込み装置２５Ｔは領域２を使用するアプリケーションの書き込み装置
である。書き込み装置２５ＴはMKBを保持しており、当該MKBは書き込みの際に、第１暗号
鍵共有部１７Ｔにおいて、デバイス鍵KD2を用いて処理される。前記処理の結果（デバイ
ス鍵KD2が前記MKBによって無効化されていない場合）メディア鍵KM2が得られる。同様に
デバイス鍵KD1、KD3、KD4による処理によって、メディア鍵KM1、KM3、KM4が得られるが、
KM1、…、KM4は互いに異なっていて良い。
【００５５】
図１ＴＤに図１ＴＢの第１暗号鍵共有部１８Ｔと第２暗号鍵共有部２６Ｔの構成を示
す。書き込み装置２５Ｔの第２暗号鍵共有部２６Ｔは、半導体メモリチップ認証用のMKB
を格納している。一方、半導体メモリチップ１２Ｔの第１暗号鍵共有部１８Ｔはデバイス
鍵KD2を格納している。書き込み装置２５Ｔは領域２を使用するアプリケーションの書き
込み装置であり、従って、当該領域に対応しているデバイス鍵KD2を認証する必要がある
。
【００５６】
図１ＴＥに第２データ変換部２０Ｔの構成を示す。第２データ変換部２０Ｔは二方向
にデータを転送する。一つは読出しであり、半導体メモリチップの書き込み特殊領域内の
書き込み対象ページを読出し、暗号化してメモリチップ・インタフェースに送る。この暗
号化には、暗号鍵生成部１９Ｔが生成した一時鍵KT’が用いられる。暗号化部５０２Ｔの
動作には大きな特徴がある。暗号化部５０２Ｔは、書き込み対象ページを先頭から読出し
、一時鍵KT’で暗号化しながら、メモリチップ・インタフェースに送るのであるが、領域
２に相当する部分のデータはメモリチップ・インタフェースに転送しない。その代わりに
、例えばFFを送る。その結果、第２データ変換部からメモリチップ・インタフェースに送
信されるデータは図１ＴＦのようになる。Extraの部分は暗号化されず、そのままメモリ
チップ・インタフェースに送られる。
【００５７】
もう一つのデータの流れは書き込みである。第２データ変換部２０Ｔの復号部５０３
Ｔは、メモリチップ・インタフェースから受け取った（２ＫＢ＋３２Ｂ）のデータを、暗
号鍵生成部１９Ｔから受け取った一時鍵KT’によって復号して、第１データ変換部１８Ｔ
に送る。この復号の際に用いられる一時鍵KT’は、読出しの際の暗号化で用いられた一時
鍵KT’と同一のものである。復号部５０３Ｔの動作も特徴的である。復号部５０３Ｔは、
メモリチップ・インタフェースから受信するデータを、一時鍵KT’を用いて先頭から順次
復号しながら、第１データ変換部１８Ｔに送るのであるが、領域２に相当する部分のデー
タは（復号せず）そのまま転送する。その結果、第２データ変換部２０Ｔから第１データ
変換部１８Ｔに送信されるデータは図１ＴＧのようになる。Extraの部分も復号されず、
そのままメモリチップ・インタフェースに送られる。領域２に相当する部分（オフセット
512-1023）は、データ転送部２９Ｔが書き込んだ５１２Ｂのデータそのままである。後述
のように、このデータは、書き込み装置２５Ｔが送信した、ECCを含む暗号化データに一
致する。
【００５８】
図１ＴＨは第１データ変換部１８Ｔの構成を示すブロック図である。第１データ変換
部１８Ｔは、第２データ変換部２０Ｔから書き込み用に送られて来たデータを書き込み対
象ページに書き込むが、その際、領域２に相当する部分を復号する。領域２のデータは書
き込み装置２５Ｔによって暗号化されているからである。前記復号に用いられる一時鍵KT
は、第１暗号鍵共有部１７Ｔが第２暗号鍵共有部２６Ｔによって認証される際に生成され
る。第１データ変換部１８Ｔは、領域２以外のデータは、そのまま書き込み対象ページに
書き込む。領域２のデータは、一時鍵KTによって書き込み装置２５Ｔが暗号化する前のデ
ータに等しい。これは後述のように、データDとECCとを含むデータである。
【００５９】
書き込み装置２５Ｔのデータ送出部２７Ｔの構成を図１ＴＪに示す。暗号化部９０１
Ｔは５１２Ｂ−１６Ｂ＝４９６ＢのデータDを受け取る。暗号化部９０１Ｔは前記データD
の後に１６Ｂの0を付加して５１２Ｂのデータを作り、それをECC生成部９０２Ｔに送る。
ECC生成部９０２Ｔは前記５１２Ｂのデータに関するECCを生成して、暗号化部９０１Ｔに
返す。暗号化部９０１Ｔは、前記５１２Ｂのデータの最後の３Ｂを、ECC生成部９０２Ｔ
から受信したECCで上書きする。更に、暗号化部９０１Ｔは、一時鍵KTによってデータDと
ECCとを含む５１２Ｂのデータを暗号化する。一時鍵KTは、書き込み装置２５Ｔが半導体
メモリチップ１２Ｔを認証する際に生成される鍵であり、半導体メモリチップ１２Ｔの第
１暗号鍵共有部と共有されている鍵である。暗号化部９０１Ｔは４９６ＢのデータDとECC
とを暗号化したものをメモリチップ・インタフェースに送る。メモリチップ・インタフェ
ースに送られるデータが作られる様子を図１ＴＫに示す。図１ＴＫにおいて、表の第一行
の数値はバイトのオフセットを示す。ここでのポイントは、書き込み装置２５Ｔだけが、
半導体メモリチップ１２Ｔに記録されるデータDのECCを生成できるという事である。暗号
化されたデータを中継するだけのメモリチップ・インタフェースはECCの値を生成する事
はできない。従って、書き込み装置がECCを付加する必要がある。
【００６０】
書き込み装置２５Ｔが半導体メモリチップ１２Ｔに書き込みを行う動作を図１ＴＬに
示す。第１暗号鍵共有部１７Ｔと第２暗号鍵共有部２６Ｔが一時鍵KTを共有する手続きは
、本明細書の他の場所で述べたものと同様である（図１ＴＭ参照）。即ち、書き込み装置
２６ＴがMKB読み取り部３０１ＴにMKBを送る（ステップS701201）。MKB読み取り部３０１
Ｔは前記MKBをMKB処理部３０２Ｔに送る（ステップS701202）。MKB処理部３０２Ｔは暗号
鍵共有部が格納しているデバイス鍵KD2を読み込み、前記MKBを処理する（ステップS70120
3）。デバイス鍵KD2が前記MKBによって無効化されていない場合、メディア鍵KM2が得られ
る。MKB処理部３０２Ｔはメディア鍵KM2を一時鍵生成部３０４Ｔに送る（ステップS70120
4）。一時鍵生成部３０４Ｔは乱数受信部３０３Ｔに乱数を要求する（ステップS701205）
。乱数受信部３０３Ｔは、書き込み装置の乱数送信部３０６Ｔに乱数を要求する（ステッ
プS701206）。乱数送信部３０６Ｔは乱数生成部３０５Ｔに乱数生成を要求する（ステッ
プS701207）。乱数生成部３０５Ｔは乱数Rを生成し、当該乱数Rを乱数送信部３０６Ｔに
送る（ステップS701208）。乱数送信部３０６Ｔは乱数受信部３０３Ｔに前記乱数Rを送出
する（ステップS701209）。乱数受信部３０３Ｔは前記乱数Rを受信すると、前記乱数Rを
一時鍵生成部３０４Ｔに送る（ステップS701210）。一時鍵生成部３０４Ｔはメディア鍵K
M2と前記乱数Rとを用いて一時鍵KTを生成する（ステップS701211）。一方、乱数送信部３
０３Ｔは、前記乱数Rを一時鍵生成部３０７Ｔに送る（ステップS701212）。一時鍵生成部
３０７Ｔは第２暗号鍵共有部が格納しているメディア鍵KM2を読み込み、一時鍵生成手段
３０４Ｔと同一の手続きにより一時鍵KTを生成する（ステップS701213）。
【００６１】
図１ＴＬに戻る。第１暗号鍵共有部１７Ｔと第２暗号鍵共有部２６Ｔとが一時鍵KTを
共有（ステップS701102）した後、データ送信部２７Ｔは送信用のデータD’を作り（ステ
ップS701104）、メモリチップ・インタフェース１３Ｔに送出する（ステップS701105）。
暗号化データD’の作り方は上述した通りである。メモリチップ・インタフェースが前記
暗号化データD’を受け取ると、第２データ変換部が書き込み対象ページを読み込む（ス
テップS701107）。暗号鍵生成部１９Ｔが一時鍵KT’を生成する（ステップS701108）。こ
れは例えば乱数である。第２データ変換部２０Ｔは一時鍵KT’を読み込み、読み込んだ書
き込み対象ページを部分的に暗号化する（ステップS701109）。ここでの特徴ある暗号化
の方法については上述した通りである。次いで、第２データ変換部２０Ｔが暗号化した書
き込み対象ページのデータはバッファ２３Ｔに記録される（ステップS701111）。データ
転送部２９Ｔがバッファ２３Ｔの領域２に相当する部分を、書き込み装置２５Ｔから受信
した５１２Ｂのデータで上書きする（ステップS701112）。前記データの構成は上述した
通りである。その後、バッファのデータ（先頭から２ＫＢ＋３２Ｂ分）は第２データ変換
部２０Ｔに再び送られる。第２データ変換部２０Ｔは、このデータを部分的に復号する（
ステップS701114）。ここでの特徴的な復号の方法については上述した通りである。第２
データ変換部２０Ｔは復号したデータを第１データ変換部１８Ｔに送る（ステップS70111
5）。第１データ変換部は受け取ったデータの領域２に相当する部分のみを一時鍵KTによ
って復号する（ステップS701116）。その結果、領域２に相当する部分は、データDとECC
とから構成される平文となる。即ち、図１ＴＫの中段に示すデータが得られる。データ変
換部は、前記部分的に復号したバッファのデータを書き込み対象ページに記録する。
【００６２】
以上のような構成と動作によって、書き込み装置２５Ｔが意図した通りのデータが、
半導体メモリチップの書き込み対象ページに記録される。上記では、領域２を利用するア
プリケーションの書き込み動作を述べたが、他の領域を利用するアプリケーションについ
ても同様である。なお、本実施例のように書き込まれるデータについては、メモリチップ
・インタフェースはECC処理を行う事ができない。アプリケーションの利用装置がECCをチ
ェックする必要がある。半導体メモリチップが二つのデータ変換部を具備しており、一つ
は書き込み装置との認証用であり、もう一つはメモリチップ・インタフェースに対するデ
ータの秘匿を担っている事が、本実施例の特徴となっている。
【００６３】
本実施形態の発明のスマートグリッドにおける利用について述べる。図１ＵＡは、本
実施の形態の次世代電力網の一構成例を示す図である。次世代電力網では、電力使用量を
集計するメーター１Ｕａと、家電機器を管理するホームサーバであるＨＥＭＳ（Home Ene
rgy Management System）５Ｕが各家庭に設置される。また、商業ビルを対象として、ビ
ル内の電気機器を管理するサーバであるＢＥＭＳ（Building Energy Management System
）３Ｕがビル毎に設置される。商業ビルには、メーター１Ｕａと同様のメーター１Ｕｂが
設置される。以下では、メーター１Ｕａおよび１Ｕｂを単にメーター１Ｕという。
【００６４】
メーター１Ｕは、コンセントレータとよばれる中継器（コンセントレータ４Ｕ）によ
って数台ごとにまとめられ、通信網を介してメーターデータ管理システムであるＭＤＭＳ
（Meter Data Management System）２Ｕと通信する。ＭＤＭＳ２Ｕは、各家庭のメーター
１Ｕから一定の間隔で電力使用量を受信して記憶する。エネルギー管理システムであるＥ
ＭＳ（Energy Management System）６Ｕは、ＭＤＭＳ２Ｕに集まった複数の家庭の電力使
用量、或いは、電力系統に設置されたセンサからの情報に基づいて、各家庭のメーター１
ＵやＨＥＭＳ５Ｕに対して電力使用を抑制するよう要求するなどの電力制御を行う。また
、ＥＭＳ６Ｕは、遠隔端末ユニットであるＲＴＵ（Remote Terminal Unit）７１Ｕに接続
された太陽光発電や風力発電などの分散電源８０Ｕ、同じくＲＴＵ７２Ｕに接続された蓄
電装置９０Ｕ、および、ＲＴＵ７３Ｕに接続された発電側との間を制御する送配電制御装
置１００Ｕを制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
【００６５】
図１ＵＢは、スマートグリッドシステムの一例を示す図である。スマートグリッドシ
ステムは、メーター１ＵとＭＤＭＳ（Meter Data Management System）４０Ｕとを有する
。メーター１Ｕは、半導体メモリチップ１０Ｕと電力計測部３０Ｕを有する。メーター１
Ｕは、コンセントレータとよばれる中継器（図示せず）によって数台ごとにまとめられ、
通信網を介してメーターデータ管理システムであるＭＤＭＳ４０Ｕと通信する。ＭＤＭＳ
４０Ｕは、各家庭のメーター１Ｕから一定の間隔で電力使用量を受信して記憶する。なお
、メーター１Ｕは特にスマートメーターと呼ばれることもある。なお、スマートメーター
とは、電力等のエネルギー使用量を計測し、計測値を記録する。その計測値をメーター管
理システムにデータを送信またはメーター管理システムからの読み出しを受け付けるメー
ターであり、さらに系統制御側からのデマンドレスポンス信号等の制御命令を記録し、宅
内のエネルギー利用制御を行うまたは支援する高機能メーターをいう。
【００６６】
メーター１Ｕの電力計測部３０Ｕなどで計測されたデータは、当該メーター１Ｕの半
導体メモリチップ１０Ｕに格納され、随時ＭＤＭＳに送信される。この計測データをＭＤ
ＭＳ２Ｕで電力供給の制御に利用する為には、このデータの正統性が保証されている事が
望ましい。これを保証する為の一つの手段は、図１ＵＢのトラスト・チェインを構築する
事である。即ち、読出し装置であるＭＤＭＳ４０Ｕがメーター１Ｕの半導体メモリチップ
１０Ｕを認証し、かつ、半導体メモリチップ１０Ｕが当該メーター１Ｕの電力計測部３０
Ｕを認証する。データの流れが認証の方向と逆向きである事に注意する（図１ＵＣ参照）
。本発明の半導体メモリチップは、図１ＵＢのトラスト・チェインを構築する目的に利用
可能である。
【００６７】
半導体メモリチップ１０Ｕは、図１ＵＢのようにＭＤＭＳ４０Ｕ（読出し装置）が半
導体メモリチップ１０Ｕを認証し、かつ、半導体メモリチップ１０Ｕが電力計測部３０Ｕ
（書き込み装置）を認証する。データの流れは図１ＵＣに示すように、認証の方向と逆向
きである事に注意する。つまり、認証された電力計測部３０Ｕ（書き込み装置）は認証し
た半導体メモリチップ１０Ｕにデータを書き込む。ＭＤＭＳ４０Ｕ（読み出し装置）は半
導体メモリチップ１０Ｕに記憶されたデータを読み出す。このように、本実施の形態の半
導体メモリチップ１０Ｕは、図１ＵＢのトラスト・チェインを構築する目的とする。
【００６８】
図１ＵＢのメーター１Ｕを含むシステムにおいて、トラストチェーンを構成する為に
は、上記他の実施形態の書き込み認証領域の他に、読出し認証領域を構成する必要がある
。読出し認証領域とは、半導体メモリチップ１０Ｕ上のメモリ領域であって、半導体メモ
リチップ１０ＵがＭＤＭＳ（読出し装置）４０Ｕから認証を受けた時に限ってデータを読
み出す事ができるメモリ領域の事である。即ち、当該領域から読み出されたデータは、正
統な半導体メモリチップ１０Ｕが格納していたデータである。図１Ｖにシステムの一例を
示す。
【００６９】
図１Ｖのシステムは、半導体メモリチップ１Ｖ、ＭＤＭＳ２Ｖ、メーター４Ｖを有す
る。半導体メモリチップ１Ｖは、メモリ１０Ｖ、暗号鍵共有部１１Ｖ、送出制御部１２Ｖ
、ＥＣＣ格納部１３Ｖ、暗号鍵共有部１５Ｖ、データ変換部１６Ｖを有する。メモリ１０
Ｖは、ＥＣＣ格納部１３Ｖと、読み出し認証領域１１２Ｖと、書き込み認証領域１１３Ｖ
と、共通領域１１４Ｖと、一般領域１１５Ｖとを備えている。メモリ１０Ｖは、読み出し
認証領域１１２Ｖ、書き込み認証領域１１３Ｖを有する。読み出し認証領域１１２Ｖと書
き込み認証領域１１３Ｖに共通領域１１４Ｖを設ける。そして、当該共通領域１１４Ｖに
、データ利用に不可欠な情報を記録する。読み出し認証領域１１２Ｖおよび書き込み認証
領域１１３Ｖのそれぞれに、共通領域１１４Ｖ以外の領域が含まれる例が示されているが
、少なくとも共通領域１１４Ｖが存在すれば、各領域の構成は任意である。例えば、読み
出し認証領域１１２Ｖと書き込み認証領域１１３Ｖとが一致（すなわち読み出し認証領域
１１２Ｖと書き込み認証領域１１３Ｖとがいずれかも共通領域１１４Ｖと一致）するよう
に構成してもよい。
【００７０】
書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メモリチッ
プから認証された書き込み装置のみが正しいデータを記録する事ができるメモリ領域であ
る。或いは、書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メ
モリチップから認証された書き込み装置が書き込んだデータのみが正しく読み出し得るよ
うなメモリ領域である。
【００７１】
暗号鍵共有部１１Ｖは、ＭＤＭＳ２Ｖが送出したＭＫＢ１を受け付ける。ＭＫＢ１に
基づいてＭＫＢ処理を行う。ＭＫＢ処理により生成された共有鍵（メディア鍵ＫＭ）を送
出制御部１２Ｖに送る。具体的には、正しいメディア鍵KMが得られた場合、暗号鍵共有部
は当該メディア鍵KMを送出制御部２２Ｖに送る。
【００７２】
更に詳細には、暗号鍵共有部１１Ｖは、ＭＫＢ読み取り部１１−１Ｖ、ＭＫＢ処理部
１１−２Ｖを有する。ＭＫＢ読み取り部１１−１Ｖは、ＭＤＭＳからＭＫＢ１を受け取り
、ＭＫＢ処理部１１−２Ｖに送る。ＭＫＢ処理部１１−２Ｖは、ＭＫＢ１とデバイス鍵Ｋ
Ｄから共有鍵（メディア鍵ＫＭ）を生成し、送出制御部１２Ｖに送る。前記デバイス鍵Ｋ
Ｄがリボーク（無効化）されていない場合、このＭＫＢ処理によりメディア鍵ＫＭが得ら
れる。一方、前記デバイス鍵ＫＤが前記ＭＫＢ１により無効化されている場合、メディア
鍵ＫＭは得られず、暗号鍵共有部１１Ｖはエラーを通知して処理を停止する。送出制御部
１２Ｖは、共有鍵（メディア鍵ＫＭ）をＭＤＭＳ２Ｖの読出制御部２２Ｖに送付する。更
に詳細には、送出制御部１２Ｖは、暗号化部１２−１Ｖ、乱数発生部１２−２Ｖ、データ
送出部１２−３Ｖを有する。暗号化部１２−１Ｖは、メディア鍵KMを受け取る。暗号化部
１２−１Ｖは、読出し認証領域１４Ｖからデータ（例えば電力測定値）を読出し、乱数発
生部１２−２Ｖから乱数Rを受け取る。暗号化部１２−１Ｖは、データ（例えば電力測定
値）と乱数Rとを連結し、メディア鍵KMで暗号化する。暗号化部１２−１Ｖは、暗号化し
たデータ（例えば電力測定値）を、データ送出部１２−３Ｖに送る。乱数発生部１２−２
Ｖは、乱数Ｒを発生する。データ送出部１２−３Ｖは、ECC格納部１３Ｖからデータ（例
えば電力測定値）に対応するECCを読出し、暗号化したデータ（例えば電力測定値）とと
もにＭＤＭＳに送出する。
【００７３】
ＭＤＭＳ２Ｖは、暗号鍵共有部２１Ｖ、読出制御部２２Ｖを有する。暗号鍵共有部２
１Ｖは、共有鍵（メディア鍵ＫＭ）を有する。読出制御部２２Ｖは共有鍵（メディア鍵Ｋ
Ｍ）を用いて暗号化したデータ（例えば電力測定値）を復号する。更に詳細には、読出制
御部２２Ｖは、データ受信部２２−１Ｖ、復号部２２−２Ｖ、エラー修復部２２−３Ｖを
有する。データ受信部２２−１ＶはECCをエラー修復部２２−３Ｖに送る。データ受信部
２２−１Ｖは暗号化された電力測定値を復号部２２−２Ｖに送る。復号部２２−２Ｖは、
暗号鍵共有部２１Ｖからメディア鍵KMを読み出し、当該メディア鍵KMを用いて暗号化され
た電力測定値を復号する。復号部２２−２Ｖは、復号結果から乱数を捨てて、電力測定値
をエラー修復部２２−３Ｖに送る。エラー修復部２２−３Ｖは、ECCを用いて電力測定値
のエラーチェックを行う。エラーが無いか、又は、修復可能であれば、エラー修復部２２
−３Ｖは電力測定値を出力する。さもなければ、エラーを通知して停止する。ＥＣＣ格納
部１３Ｖは、ＥＣＣを格納する。
【００７４】
図１ＸＡは、半導体メモリチップとメーターの暗号鍵共有部（１５Ｖ、４１Ｖ）の構
成例を示す。暗号鍵共有部１５Ｖは、共有鍵（メディア鍵ＫＭ）を有し、データ変換部１
６Ｖに共有鍵（メディア鍵ＫＭ）を送る。暗号鍵共有部４１Ｖは、ＭＫＢ読み取り部４１
−１Ｖ、ＭＫＢ処理部４１−２Ｖを有する。暗号鍵共有部４１Ｖは、半導体メモリチップ
１６ＶからＭＫＢ２（ＭＫＢデータ）を受け付け、ＭＫＢ２（ＭＫＢデータ）に基づいて
共有鍵（メディア鍵ＫＭ）を生成する。生成した共有鍵（メディア鍵ＫＭ）をデータ送信
部４２Ｖへ送信する。詳細には、ＭＫＢ読み取り部４１−１Ｖは、半導体メモリチップ１
６ＶからＭＫＢ２を読み取る。読み取ったＭＫＢ２をＭＫＢ処理部４１−２Ｖに送る。Ｍ
ＫＢ処理部４１−２Ｖは、ＭＫＢ２とデバイス鍵ＫＤを用いて共有鍵（メディア鍵）ＫＭ
を生成する。生成した共有鍵（メディア鍵ＫＭ）をデータ送信部４２Ｖを送信する。
【００７５】
図１ＸＢは、半導体メモリチップのデータ変換部１６Ｖとメーターのデータ送信部４
２Ｖの構成例を示す図である。データ送信部４２Ｖは、暗号鍵共有部４１Ｖから受け付け
た共有鍵（メディア鍵ＫＭ）を用いて計測部４３Ｖの計測値を暗号化する。暗号化した計
測値をデータ変換部１６Ｖに送信する。更に、詳細には、データ送信部４２Ｖは、ＥＣＣ
生成部４２−１Ｖ、暗号化部４２−２Ｖ、データ送出部４２−３Ｖを有する。ＥＣＣ生成
部４２−１Ｖは、計測部４３Ｖの計測値を読み出し、ＥＣＣを生成する。生成したＥＣＣ
を暗号化部４２−２Ｖに送る。暗号化部４２−２Ｖは、計測値とＥＣＣ生成部４２−１Ｖ
で生成されたＥＣＣを暗号化して、データ送出部に送る。データ送出部４２−３Ｖは、暗
号化された計測値とＥＣＣをデータ変換部１６Ｖに送信する。
【００７６】
データ変換部１６Ｖは、受け付けた暗号化された計測値とＥＣＣを復号する。復号さ
れた計測値はメモリ１０Ｖの書き込み領域１１３Ｖに書き込む。復号されたＥＣＣはＥＣ
Ｃ格納部１３Ｖに書き込む。更に詳細には、データ変換部１６Ｖは、データ受信部１６−
１Ｖ、復号部１６−２Ｖ、書込部１６−３Ｖを有する。データ受信部１６−１Ｖは、デー
タ送出部４２−３Ｖから暗号化された計測値とＥＣＣを受信する。暗号化された計測値と
ＥＣＣを復号部１６−２Ｖに送る。復号部１６−２Ｖは、暗号鍵共有部１５Ｖから共有鍵
（メディア鍵ＫＭ）を受け付ける。暗号化された計測値とＥＣＣを受け付けた共有鍵（メ
ディア鍵ＫＭ）を用いて復号する。復号された計測値とＥＣＣを書込部１６−３Ｖに送る
。書込部１６−３Ｖは、復号された計測値はメモリ１０Ｖの書き込み領域１１３Ｖに書き
込む。復号されたＥＣＣはＥＣＣ格納部１３Ｖに書き込む。
【００７７】
図１Ｗに半導体メモリチップ１Ｖの暗号鍵共有部１１ＶとＭＤＭＳ２Ｖの暗号鍵共有
部２１Ｖの構成を示す。また、図１Ｘに送出制御部１２Ｖと読出制御部２２Ｖの構成を示
す。電力計測値は読出し認証領域に記録されている。これをＭＤＭＳは以下の手順で読み
出す。その手順を図１ＹＡ、１ＹＢを用いて説明する。ＭＤＭＳが半導体メモリチップの
暗号鍵共有部１１ＶにMKB1を送る（ステップS5000001）。暗号鍵共有部１１ＶのMKB処理
部１１−２Ｖが暗号鍵共有部が格納するデバイス鍵KDを用いてMKBを処理する。前記デバ
イス鍵KDがリボーク（無効化）されていない場合、このMKB処理によりメディア鍵KMが得
られる。一方、前記デバイス鍵KDが前記MKB1により無効化されている場合、メディア鍵KM
は得られず、暗号鍵共有部１１Ｖはエラーを通知して処理を停止する（ステップS5000002
）。正しいメディア鍵KMが得られた場合、暗号鍵共有部は当該メディア鍵KMを送出制御部
２２Ｖに送る（ステップS5000003）。暗号化部１２−１Ｖがメディア鍵KMを受け取る。暗
号化部１２−１Ｖは、読出し認証領域１４Ｖから電力測定値を読出し、乱数発生部１２−
２Ｖから乱数Rを受け取る。暗号化部１２−１Ｖは、電力測定値と乱数Rとを連結し、メデ
ィア鍵KMで暗号化する（ステップS5000004）。暗号化部１２−１Ｖは、暗号化した電力測
定値を、データ送出部１２−３Ｖに送る。データ送出部１２−３Ｖは、ECC格納部１３Ｖ
から電力測定値に対応するECCを読出し、暗号化した電力測定値とともにＭＤＭＳに送出
する（ステップS5000005）。暗号化された電力測定値とECCは、ＭＤＭＳのデータ受信部
２２−１Ｖに入力される（ステップS5000006）。データ受信部２２−１ＶはECCをエラー
修復部２２−３Ｖに送る。また、データ受信部２２−１Ｖは暗号化された電力測定値を復
号部２２−２Ｖに送る（ステップS5000007）。復号部２２−２Ｖは、暗号鍵共有部２１Ｖ
からメディア鍵KMを読み出し（ステップS5000008）、当該メディア鍵KMを用いて暗号化さ
れた電力測定値を復号する（ステップS5000009）。復号部２２−２Ｖは、復号結果から乱
数を捨てて、電力測定値をエラー修復部２２−３Ｖに送る（ステップS5000010）。エラー
修復部２２−３Ｖは、ECCを用いて電力測定値のエラーチェックを行う。エラーが無いか
、又は、修復可能であれば、エラー修復部２２−３Ｖは電力測定値を出力する（ステップ
S5000011）。さもなければ、エラーを通知して停止する（ステップS5000012）。
【００７８】
特許請求の範囲に記載の「第１領域」は、書込み認証領域（１１−３または１１−３
Ｅまたは１１３Ｍまたは１４Ｔまたは１１３Ｖ）などが対応する。「第１鍵情報」は、Ｍ
ＫＢ２などが対応する。「第１の暗号鍵生成部」は、暗号鍵共有部（４１Ｍまたは２６Ｔ
または４１Ｖ）などが対応する。「第１鍵」は、暗号鍵共有部（４１Ｍまたは２６Ｔまた
は４１Ｖ）などが生成する共有鍵が対応する。「第２鍵」は、暗号鍵共有部（４１Ｍまた
は２６Ｔまたは４１Ｖ）と対応する暗号鍵共有部（１３Ｍまたは１７Ｔまたは１５Ｖ）な
どが有する共有鍵が対応する。「第２領域」は、書き込みの領域と読み出しの領域が共通
する領域（１１−４または１１−４Ｅまたは１１４Ｍまたは１６Ｔまたは１１４Ｖ）など
が対応する。「第２鍵情報」は、ＭＫＢ１２−２ＥまたはＭＫＢ１などが対応する。「第
２の暗号鍵生成部」は、暗号鍵共有部（５１Ｅまたは２１Ｍまたは１１Ｖ）などが対応す
る。「第３鍵」は、暗号鍵共有部（５１Ｅまたは２１Ｍまたは１１Ｖ）などが生成するＫ
Ｍが対応する。「第４鍵」は、暗号鍵共有部（５１Ｅまたは２１Ｍまたは１１Ｖ）と対応
する暗号鍵共有部（１２Ｅまたは１１Ｍまたは２１Ｖ）などが有するＫＭが対応する。
【００７９】
本実施の形態の発明は、悪意のある書き込み装置からのデータ書き込みを防止するこ
とができる。
【００８０】
（第２の実施の形態）
第２の実施の形態にかかるメモリチップ（半導体メモリチップ）は、半導体メモリチッ
プにセキュリティ機能を持たせ、半導体メモリチップ自体をトラスト・チェインの中に組
み込む。これにより、半導体メモリチップを不正なコントローラーと組み合わせて使用す
ることを防止する。半導体メモリチップは高度な部品であり、不正なＩＤを有するコント
ローラーのように、容易に製造・販売することができない。
【００８１】
ここで、トラスト・チェインについて図２Ａを用いて説明する。図２Ａは、半導体メ
モリチップ１００をトラスト・チェインに組み込んだシステムの一例を示す図である。図
２Ａ中の矢印の方向は認証の方向を示す。即ち、半導体メモリチップ１００がコントロー
ラー２００を認証し、コントローラー２００が書き込み装置３００を認証し、書き込み装
置３００が半導体メモリチップ１００を認証する。なお、破線はオプションである。書き
込み装置３００がトラスト・チェインの出発点であり、半導体メモリチップ１００を経由
してコントローラー２００を認証することが図２Ａのトラスト・チェインを構築する目的
である。書き込み装置３００と半導体メモリチップ１００との間のデータの流れは常にコ
ントローラー２００を介して行われるため、書き込み装置３００による半導体メモリチッ
プ１００の認証は間接的なものになる。
【００８２】
本実施の形態では、半導体メモリチップ１００をトラスト・チェインに組み込むため
に、半導体メモリチップ１００自体にセキュリティ機能を持たせる。具体的には、半導体
メモリチップ１００のメモリに特殊領域を構成する。特殊領域は、読み出し特殊領域およ
び書き込み特殊領域を含む。読み出し特殊領域とは、メモリ内の記憶領域（メモリ領域）
のうち、半導体メモリチップ１００により認証されたコントローラー２００のみが、格納
された値を正しく読み出すことができる予め定められたメモリ領域である。書き込み特殊
領域とは、メモリ領域のうち、データ書き込みの際、データ変換部（後述）による復号を
受けたデータを書き込む予め定められたメモリ領域である。
【００８３】
また、本実施の形態では、半導体メモリチップ１００をトラスト・チェインに組み込
むために、読み出し特殊領域と書き込み特殊領域に共通領域を設ける。そして、当該共通
領域に、データ利用に不可欠な情報を記録する。共通領域にデータ利用に不可欠な情報が
正しく記録できることは、即ち、半導体メモリチップ１００が書き込み装置３００によっ
て認証されたことに他ならない。そして、共通領域に記録されているデータ利用に不可欠
な情報が、コントローラー２００によって正しく読み出されることは、即ち、当該コント
ローラー２００が半導体メモリチップ１００によって認証されていることに他ならない。
かくして、図２Ａのトラスト・チェインが完成する。
【００８４】
図２Ｂは、第２の実施の形態の半導体メモリチップ１００とコントローラー２００の
構成の一例を示すブロック図である。まず、半導体メモリチップ１００の機能の概要につ
いて説明する。図２Ｂに示すように、半導体メモリチップ１００は、メモリ１１０と、暗
号鍵共有部１２０と、送出制御部１３０と、データ変換部１４０と、を備えている。
【００８５】
メモリ１１０は、各種データを記憶する記憶部である。メモリ１１０は、例えば、Ｎ
ＡＮＤ型フラッシュメモリなどにより構成できる。なお、メモリ１１０はこれに限られず
、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体
メモリを適用することができる。
【００８６】
メモリ１１０は、符号記憶部１１１と、読み出し特殊領域１１２と、書き込み特殊領
域１１３と、共通領域１１４と、一般領域１１５とを備えている。
【００８７】
符号記憶部１１１は、書き込み装置３００から書き込みが要求されたデータのエラー
訂正符号（ＥＣＣ：エラーコレクションコード）を記憶する。なお、符号記憶部１１１は
、メモリ１１０の外部にメモリ１１０と独立の記憶部として備えてもよい。
【００８８】
図２Ｂでは、読み出し特殊領域１１２および書き込み特殊領域１１３のそれぞれに、
共通領域１１４以外の領域が含まれる例が示されているが、少なくとも共通領域１１４が
存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域１１２と書き込み特
殊領域１１３とが一致（すなわち読み出し特殊領域１１２と書き込み特殊領域１１３とが
いずれかも共通領域１１４と一致）するように構成してもよい。
【００８９】
一般領域１１５とは、送出制御部１３０およびデータ変換部１４０を介さずに、コン
トローラー２００から直接書き込みおよび読み取りが可能な領域を表す。
【００９０】
暗号鍵共有部１２０は、コントローラー２００との間で共有する暗号鍵を保持または
生成する。送出制御部１３０は、メモリ１１０から読み出したデータをコントローラー２
００に送出する処理を制御する。データ変換部１４０は、コントローラー２００を介して
書き込み装置３００から書き込みが要求されたデータを変換した変換データを生成する。
暗号鍵共有部１２０、送出制御部１３０、およびデータ変換部１４０は、メモリ１１０と
同一のダイ上に構成される。これにより、半導体メモリチップ１００内にセキュリティ機
能を持たせ、メモリカードの偽造等によるデータの不正利用を防止することができる。暗
号鍵共有部１２０、送出制御部１３０、およびデータ変換部１４０の機能の詳細について
は後述する。
【００９１】
次に、コントローラー２００の機能の概要について説明する。コントローラー２００
は、暗号鍵共有部２１０と、読出制御部２２０と、書込制御部２３０と、一般領域読出部
２４０と、一般領域書込部２５０と、を備えている。
【００９２】
暗号鍵共有部２１０は、半導体メモリチップ１００との間で共有する暗号鍵を保持ま
たは生成する。読出制御部２２０は、読み出し装置および再生装置などの外部装置（図示
せず）からの要求に応じて、半導体メモリチップ１００の共通領域１１４からデータを読
み出す処理を制御する。書込制御部２３０は、書き込み装置３００などの外部装置からの
要求に応じて、半導体メモリチップ１００の共通領域１１４にデータを書き込む処理を制
御する。
【００９３】
一般領域読出部２４０は、一般領域１１５からのデータの読み出しを制御する。すな
わち、一般領域１１５からデータを読み出す場合、読み出し装置は、コントローラー２０
０の一般領域読出部２４０に対して、読み出し対象となるページの指定を入力する。
【００９４】
一般領域読出部２４０は、指定されたページのデータを読み出すと共に、符号記憶部
１１１から指定されたページに対応するＥＣＣを読み出す。また、一般領域読出部２４０
は、ＥＣＣを用いて読み出したページのエラーをチェックする。エラーが無ければ、一般
領域読出部２４０は読み出したページのデータを出力する。エラーが存在して修復可能で
ある場合は、一般領域読出部２４０は、読み出したページのデータを修復して出力する。
それ以外の場合は、一般領域読出部２４０はエラーコードを出力する。
【００９５】
一般領域書込部２５０は、一般領域１１５へのデータ書き込みを制御する。すなわち
、一般領域１１５へデータを書き込む場合、書き込み装置３００は、コントローラー２０
０の一般領域書込部２５０に対してデータを入力する。この際、書き込み装置３００は、
書き込み先のページ（メモリ内の領域）の指定も一般領域書込部２５０に入力する。
【００９６】
一般領域書込部２５０は、入力されたデータのＥＣＣを生成し、一般領域１１５のう
ち、指定されたページにデータを書き込むと共に、生成したＥＣＣを指定されたページに
対するＥＣＣとして符号記憶部１１１に記録する。
【００９７】
次に、半導体メモリチップ１００の暗号鍵共有部１２０とコントローラー２００の暗
号鍵共有部２１０の構成例について図３Ａを用いて説明する。図３Ａに示すように、暗号
鍵共有部１２０は、メディア鍵を表すＫＭ１２１（以下、メディア鍵ＫＭという）と、Ｍ
ＫＢ（Media  Key  Block）１２２とを保持している。ＭＫＢ１２２については、例えば
非特許文献１に記載されている。また、暗号鍵共有部２１０は、デバイス鍵を表すＫＤ２
１２を保持している。また、暗号鍵共有部２１０は、ＭＫＢ読み取り部２１１と、ＭＫＢ
処理部２１３と、を備えている。
【００９８】
ＭＫＢ読み取り部２１１は、半導体メモリチップ１００の暗号鍵共有部１２０からＭ
ＫＢ１２２を読み出す。ＭＫＢ処理部２１３は、読み出されたＭＫＢをデバイス鍵ＫＤ２
１２を用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。
【００９９】
なお、図３Ａの例では、半導体メモリチップ１００の暗号鍵共有部１２０がコントロ
ーラー２００の暗号鍵共有部２１０を認証している。
【０１００】
次に、図３Ａのように構成された暗号鍵共有部１２０と暗号鍵共有部２１０との間で
暗号鍵を共有する暗号鍵共有処理について図４Ａを用いて説明する。図４Ａは、第２の実
施の形態における暗号鍵共有処理の全体の流れを示すフローチャートである。
【０１０１】
コントローラー２００が半導体メモリチップ１００の読み出し特殊領域１１２からデ
ータを読み出す際、まず、コントローラー２００の暗号鍵共有部２１０のＭＫＢ読み取り
部２１１が、半導体メモリチップ１００のＭＫＢ１２２を読み出す（ステップＳ１０１）
。ＭＫＢ１２２は、コントローラー２００から常に自由に読み出しが可能である。ＭＫＢ
読み取り部２１１は、読み出したＭＫＢ１２２をＭＫＢ処理部２１３に送る（ステップＳ
１０２）。
【０１０２】
ＭＫＢ処理部２１３は、コントローラー２００の暗号鍵共有部２１０が保持している
デバイス鍵ＫＤ２１２を読み込み、ＭＫＢ処理を行う（ステップＳ１０３）。次に、ＭＫ
Ｂ処理部２１３は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否かを判断する（ステ
ップＳ１０４）。デバイス鍵ＫＤ２１２がＭＫＢ１２２によって無効化されている場合、
ＭＫＢ処理によって正しくメディア鍵ＫＭを得ることができない。この場合、ＭＫＢ処理
部２１３は、メディア鍵ＫＭが得られなかったと判断し（ステップＳ１０４：Ｎｏ）、コ
ントローラー２００にエラーを通知する（ステップＳ１０５）。コントローラー２００は
、エラーの通知を受けると、読み出し動作を中止する。
【０１０３】
一方、デバイス鍵ＫＤ２１２がＭＫＢ１２２によって無効化されていない場合、ＭＫ
Ｂ処理によって正しいメディア鍵ＫＭが得られる。この場合、ＭＫＢ処理部２１３は、メ
ディア鍵ＫＭが得られたと判断し（ステップＳ１０４：Ｙｅｓ）、得られたメディア鍵Ｋ
Ｍをコントローラー２００の読出制御部２２０に送る（ステップＳ１０６）。半導体メモ
リチップ１００側では、暗号鍵共有部１２０が格納しているメディア鍵ＫＭが送出制御部
１３０に送られる（ステップＳ１０７）。
【０１０４】
次に、半導体メモリチップ１００の送出制御部１３０とコントローラー２００の読出
制御部２２０の構成例について図５を用いて説明する。図５に示すように、送出制御部１
３０は、乱数発生部１３１と、読出部１３２と、暗号化部１３３と、送出部１３４とを備
えている。
【０１０５】
乱数発生部１３１は、暗号化部１３３の要求に応じて乱数を発生する。読出部１３２
は、指定された読み出し対象ページのデータと、当該データのＥＣＣとをメモリ１１０か
ら読み出す。暗号化部１３３は、読み出されたデータをメディア鍵ＫＭを用いて暗号化す
る。送出部１３４は、暗号化されたデータ（暗号化データ）とＥＣＣとをコントローラー
２００のデータ受信部２２１に送出する。
【０１０６】
また、図５に示すように、読出制御部２２０は、データ受信部２２１と、復号部２２
２と、エラー修復部２２３とを備えている。データ受信部２２１は、半導体メモリチップ
１００の送出部１３４から暗号化データとＥＣＣとを受信する。復号部２２２は、受信さ
れた暗号化データをメディア鍵ＫＭを用いて復号する。エラー修復部２２３は、受信され
たＥＣＣを用いて、復号されたデータのエラー有無のチェックおよびエラー修復を行う。
【０１０７】
次に、図５のように構成された送出制御部１３０と読出制御部２２０との間で読み出
したデータを送受信するデータ読出処理について図６を用いて説明する。図６は、第２の
実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
【０１０８】
読出制御部２２０は、暗号鍵共有部２１０からメディア鍵ＫＭを受け取ると（ステッ
プＳ２０１）、復号部２２２に受け取ったメディア鍵ＫＭを入力する（ステップＳ２０２
）。次に、読出制御部２２０は、送出制御部１３０にデータ送出要求を送る。この際、読
み出し対象ページの指定も併せて送られる（ステップＳ２０３）。送出制御部１３０の読
出部１３２は、指定されたページのデータを読み出し、暗号化部１３３に入力する（ステ
ップＳ２０４）。また、読出部１３２は、読み出し対象ページに対応するＥＣＣを符号記
憶部１１１から読み出し、送出部１３４に入力する（ステップＳ２０５）。
【０１０９】
次に、暗号化部１３３が、乱数発生部１３１に乱数発生要求を送る（ステップＳ２０
６）。乱数発生部１３１は、乱数を発生して暗号化部１３３に送る（ステップＳ２０７）
。暗号化部１３３は、暗号鍵共有部１２０からメディア鍵ＫＭを取得する（ステップＳ２
０８）。暗号化部１３３は、指定されたページのデータと乱数とを連結し、連結して得ら
れたデータをメディア鍵ＫＭで暗号化した暗号化データＤ’を生成する（ステップＳ２０
９）。そして、暗号化部１３３は、暗号化データＤ’を送出部１３４に送る（ステップＳ
２１０）。送出部１３４は、入力された暗号化データＤ’と入力されたＥＣＣとをコント
ローラー２００のデータ受信部２２１に送出する（ステップＳ２１１）。
【０１１０】
なお、読み出し対象ページの中で重要なデータはページの一部かもしれない。このよ
うな場合、暗号化部１３３が、重要なデータが含まれるページの一部のみを暗号化するよ
うに構成してもよい。例えば、ページの先頭４８バイトのみが重要なデータである場合、
暗号化部１３３がページの先頭４８バイトと１６バイトの乱数を連結した６４バイトのみ
暗号化するようにしても良い。これにより、暗号化による処理負荷の増加を最小限に抑制
することができる。
【０１１１】
次に、読出制御部２２０のデータ受信部２２１は、暗号化データとＥＣＣとを受信す
る（ステップＳ２１２）。そして、データ受信部２２１は、受信したＥＣＣをエラー修復
部２２３に送る（ステップＳ２１３）。エラー修復部２２３は、受け取ったＥＣＣを保持
する。また、データ受信部２２１は、受信した暗号化データＤ’を復号部２２２に送る（
ステップＳ２１４）。復号部２２２は、コントローラー２００の暗号鍵共有部２１０から
受け取ったメディア鍵ＫＭを用いて、暗号化データＤ’を復号する（ステップＳ２１５）
。
【０１１２】
この復号の結果、平文の読み出しデータＤと乱数とが得られる。復号部２２２は、予
め定められたフォーマットにしたがい、復号したデータから、読み出しデータＤと乱数と
を区別することができる。例えば、暗号化部１３３が６４バイトのみを暗号化する上述の
例では、復号したデータのうち、先頭の４８バイトが読み出しデータＤであり、続く１６
バイトが乱数である。
【０１１３】
復号部２２２は、読み出しデータＤのみをエラー修復部２２３に転送する（ステップ
Ｓ２１６）。エラー修復部２２３は、保持しているＥＣＣを用いて読み出しデータＤのエ
ラーをチェックする（ステップＳ２１７）。そして、エラー修復部２２３は、エラーがあ
るか否かを判断する（ステップＳ２１８）。エラーが無い場合（ステップＳ２１８：Ｎｏ
）、コントローラー２００は、読み出しデータＤの読み出しを要求した外部装置に、読み
出しデータＤを出力する（ステップＳ２１９）。
【０１１４】
エラーがある場合（ステップＳ２１８：Ｙｅｓ）、エラー修復部２２３は、さらにエ
ラーが修復可能か否かを判断する（ステップＳ２２０）。エラーが修復可能な場合（ステ
ップＳ２２０：Ｙｅｓ）、エラー修復部２２３は、保持しているＥＣＣを用いて読み出し
データＤのエラーを修復する（ステップＳ２２１）。そして、コントローラー２００は、
修復後の読み出しデータＤを出力する（ステップＳ２１９）。
【０１１５】
エラーが修復不可能な場合（ステップＳ２２０：Ｎｏ）、エラー修復部２２３は、コ
ントローラー２００にエラーを通知する（ステップＳ２２２）。この場合、コントローラ
ー２００は、例えばエラーが発生したことを読み出しを要求した外部装置に送信する。
【０１１６】
図４Ａで説明した処理により、有効なデバイス鍵ＫＤ２１２を有する正規のコントロ
ーラー２００のみが、半導体メモリチップ１００と共通の暗号鍵であるメディア鍵ＫＭを
得ることができる。また、図６で説明した処理により、正規のコントローラー２００のみ
が、共通のメディア鍵ＫＭにより正常に復号されたデータを得ることができる。即ち、半
導体メモリチップ１００によるコントローラー２００の認証が実現できる。
【０１１７】
このように、半導体メモリチップ１００の暗号鍵共有部１２０と送出制御部１３０と
の組み合わせが、コントローラー２００を認証する認証手段とみなすことができる。この
認証手段により読み出されるデータを記憶する半導体メモリチップ１００上のメモリ１１
０内の領域が、読み出し特殊領域に相当する。
【０１１８】
なお、暗号鍵共有部１２０および暗号鍵共有部２１０の構成は図３Ａに示すものに限
られるものではない。半導体メモリチップ１００とコントローラー２００との間で暗号鍵
を共有できるものであればあらゆる構成を適用できる。
【０１１９】
上述のように、半導体メモリチップがコントローラーを認証する為にＭＫＢを用いる
事ができる。このＭＫＢは通常、半導体メモリチップ製造時に半導体メモリチップの書き
込み特殊領域または一般領域に記録される。本発明の半導体メモリチップとコントローラ
ーとを具備する機器がネットワーク経由で書き込み装置に接続される事がある。或いは、
本発明の半導体メモリチップとコントローラーとを用いて構成されたメモリカードが店舗
の書き込み装置に接続される事がある。本発明の半導体メモリチップがコントローラーを
介して書き込み装置に接続される、このような機会は、半導体メモリチップ上のＭＫＢを
更新する良い機会である。ＭＫＢには、コントローラーが保持するデバイス鍵を無効化す
る為の情報が含まれている。従って、ＭＫＢは最新の状態に保つ事が望ましい。書き込み
装置による更新の方法は単純である。例えば、書き込み装置がコントローラーを介して書
き込み認証領域（後述）または一般領域のＭＫＢを上書きすれば良い。
【０１２０】
ＭＫＢの更新頻度を高める為には、半導体メモリチップが内蔵するメディア鍵を半導
体メモリチップ自身で更新できるような仕組みを持たせておく事が望ましい。これを、図
３Ｂに図示する。これは暗号鍵共有部が保持するメディア鍵KMを更新する仕組みである。
新しいMKBが書き込み認証領域２００２０２の予め定められたアドレスに書き込まれる（
ステップＳ２００２０１）。これをトリガーとして、暗号鍵共有部２００２０１が当該MK
Bを読み込み、MKB処理部２００２０１２に送る。MKB処理部２００２０１２は暗号鍵共有
部が保持するデバイス鍵KDを読み込み、MKB処理を行う（ステップＳ２００２０２）。デ
バイス鍵KDが前記MKBによってリボークされていない場合、メディア鍵KMが得られる。暗
号鍵共有部は当該メディア鍵KMを格納・保持する（ステップＳ２００２０３）。デバイス
鍵KDが前記MKBによってリボークされていた場合、暗号鍵共有部はエラーを通知して停止
する（ステップＳ２００２０４）。上記の動作については図４Ｂを参照の事。
【０１２１】
図７は、暗号鍵共有部１２０の変形例（暗号鍵共有部１２０−２）と暗号鍵共有部２
１０の変形例（暗号鍵共有部２１０−２）を示すブロック図である。図７に示すように、
暗号鍵共有部１２０−２は、メディア鍵ＫＭおよびＭＫＢ１２２を保持する他に、乱数生
成部１２３と、乱数送信部１２４と、一時鍵生成部１２５とを備えている。また、暗号鍵
共有部２１０−２は、デバイス鍵ＫＤ２１２、ＭＫＢ読み取り部２１１、およびＭＫＢ処
理部２１３の他に、乱数受信部２１４と、一時鍵生成部２１５とを備えている。
【０１２２】
乱数生成部１２３は、乱数送信部１２４からの要求に応じて乱数を発生する。乱数送
信部１２４は、発生された乱数を、コントローラー２００の乱数受信部２１４、および、
半導体メモリチップ１００の一時鍵生成部１２５に送信する。一時鍵生成部１２５は、メ
ディア鍵ＫＭおよび受信した乱数を用いて一時鍵Ｋを生成する。例えば、一時鍵生成部１
２５は、ＡＥＳ−Ｇなどの一方向性関数を用いて、メディア鍵ＫＭと乱数とから一時鍵Ｋ
を生成する。
【０１２３】
乱数受信部２１４は、乱数送信部１２４から乱数を受信する。一時鍵生成部２１５は
、半導体メモリチップ１００の一時鍵生成部１２５と同様の手法により、ＭＫＢ処理部２
１３から受け取ったメディア鍵ＫＭと、乱数受信部２１４により受信された乱数とから一
時鍵Ｋを生成する。
【０１２４】
図７の例でも、半導体メモリチップ１００の暗号鍵共有部１２０−２がコントローラ
ー２００の暗号鍵共有部２１０−２を認証している。
【０１２５】
次に、図７のように構成された暗号鍵共有部１２０−２と暗号鍵共有部２１０−２と
の間で暗号鍵を共有する暗号鍵共有処理について図８を用いて説明する。図８は、第２の
実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャートである。
【０１２６】
ステップＳ３０１〜ステップＳ３０５は、図４ＡのステップＳ１０１〜ステップＳ１
０５と同様の処理なので説明を省略する。
【０１２７】
ステップＳ３０４で、正しいメディア鍵ＫＭが得られたと判断された場合（ステップ
Ｓ３０４：Ｙｅｓ）、ＭＫＢ処理部２１３は、得られたメディア鍵ＫＭを一時鍵生成部２
１５に送る（ステップＳ３０６）。次に、コントローラー２００の暗号鍵共有部２１０の
乱数受信部２１４が、半導体メモリチップ１００の乱数送信部１２４に対して乱数送信要
求を送る（ステップＳ３０７）。乱数送信部１２４は、乱数生成部１２３に乱数発生要求
を送る（ステップＳ３０８）。乱数生成部１２３は、乱数Ｒを生成する（ステップＳ３０
９）。乱数送信部１２４は、生成された乱数Ｒを受け取り、乱数Ｒをコントローラー２０
０の乱数受信部２１４に送信する（ステップＳ３１０）。コントローラー２００の乱数受
信部２１４は、受信した乱数Ｒをコントローラー２００の一時鍵生成部２１５に転送する
（ステップＳ３１１）。一時鍵生成部２１５は、ＭＫＢ処理部２１３から受け取ったメデ
ィア鍵ＫＭと乱数Ｒとから一時鍵Ｋを生成する（ステップＳ３１２）。また、一時鍵生成
部２１５は、生成した一時鍵Ｋをコントローラー２００の読出制御部２２０に送る（ステ
ップＳ３１３）。
【０１２８】
一方、乱数送信部１２４は、半導体メモリチップ１００の一時鍵生成部１２５にも乱
数Ｒを送る（ステップＳ３１４）。乱数Ｒを受信した一時鍵生成部１２５は、半導体メモ
リチップ１００の暗号鍵共有部１２０が予め格納しているメディア鍵ＫＭを読み取る（ス
テップＳ３１５）。そして、一時鍵生成部１２５は、メディア鍵ＫＭと乱数Ｒと組み合わ
せて一時鍵Ｋを生成する（ステップＳ３１６）。また、一時鍵生成部１２５は、生成した
一時鍵Ｋを半導体メモリチップ１００の送出制御部１３０に送る（ステップＳ３１７）。
【０１２９】
コントローラー２００のＭＫＢ処理が正しく行われ、正しいメディア鍵ＫＭが生成さ
れたならば、半導体メモリチップ１００とコントローラー２００とが、それぞれ独立に生
成する一時鍵Ｋは同一になる。
【０１３０】
次に、図７のように構成された暗号鍵共有部１２０−２および暗号鍵共有部２１０−
２に対応する送出制御部１３０の変形例（送出制御部１３０−２）と読出制御部２２０の
変形例（読出制御部２２０−２）について図９を用いて説明する。図９に示すように、送
出制御部１３０−２は、読出部１３２と、暗号化部１３３−２と、送出部１３４とを備え
ている。本変形例では、乱数発生部１３１が削除されたこと、および、暗号化部１３３−
２の機能が、図５の送出制御部１３０と異なっている。暗号化部１３３−２は、主にメデ
ィア鍵ＫＭの代わりに一時鍵Ｋを用いてデータを暗号化する点が、図５の暗号化部１３３
と異なっている。
【０１３１】
また、図９に示すように、読出制御部２２０−２は、データ受信部２２１と、復号部
２２２−２と、エラー修復部２２３とを備えている。本変形例では、復号部２２２−２の
機能が、図５の読出制御部２２０と異なっている。復号部２２２−２は、主にメディア鍵
ＫＭの代わりに一時鍵Ｋを用いてデータを復号する点が、図５の復号部２２２と異なって
いる。
【０１３２】
次に、図９のように構成された送出制御部１３０−２と読出制御部２２０−２との間
で読み出したデータを送受信するデータ読出処理について図１０を用いて説明する。図１
０は、第２の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャ
ートである。
【０１３３】
読出制御部２２０−２の復号部２２２−２が暗号鍵共有部２１０−２から一時鍵Ｋを
受け取ると（ステップＳ４０１）、復号部２２２−２は受け取った一時鍵Ｋを保持する。
また、データ受信部２２１が、半導体メモリチップ１００の送出制御部１３０−２に対し
て、読み出し対象ページの指定と共にデータ送出要求を送る（ステップＳ４０２）。送出
制御部１３０は、読出部１３２に読み出し対象ページの指定とデータ読み出し指示を送る
（ステップＳ４０３）。読出部１３２は、メモリ１１０の読み出し対象ページからデータ
Ｄを読み出す（ステップＳ４０４）。
【０１３４】
一方、暗号化部１３３−２は、暗号鍵共有部１２０−２から一時鍵Ｋを受け取る（ス
テップＳ４０５）。次に、暗号化部１３３−２は、一時鍵Ｋを用いてデータＤを暗号化し
、暗号化データＤ’＝Ｅｎｃ（Ｋ，Ｄ）を生成する（ステップＳ４０６）。なお、Ｅｎｃ
（Ｋ，Ｄ）とは、一時鍵Ｋを用いてデータＤを暗号化することを意味する。暗号化部１３
３−２は、生成した暗号化データＤ’を送出部１３４に送る（ステップＳ４０７）。
【０１３５】
読出部１３２は、データＤのＥＣＣをメモリ１１０の符号記憶部１１１から読み出す
（ステップＳ４０８）。送出部１３４は読み出されたＥＣＣを保持する。送出部１３４は
、暗号化データＤ’と保持しているＥＣＣとを、読出制御部２２０−２のデータ受信部２
２１に送る（ステップＳ４０９）。
【０１３６】
データ受信部２２１は、送出部１３４から暗号化データＤ’とＥＣＣとを受け取ると
、暗号化データＤ’を復号部２２２−２に送り（ステップＳ４１０）、ＥＣＣをエラー修
復部２２３に送る（ステップＳ４１１）。エラー修復部２２３は、受け取ったＥＣＣを保
持する。復号部２２２−２は、暗号化データＤ’を受け取ると、保持している一時鍵Ｋを
用いて暗号化データＤ’を復号し、データＤを得る（ステップＳ４１２）。次に、復号部
２２２−２は、復号したデータＤをエラー修復部２２３に送る（ステップＳ４１３）。
【０１３７】
ステップＳ４１４〜ステップＳ４１９は、図６のステップＳ２１７〜ステップＳ２２
２と同様の処理なので説明を省略する。
【０１３８】
次に、図７のように構成された暗号鍵共有部１２０−２および暗号鍵共有部２１０−
２に対応する送出制御部１３０および読出制御部２２０の別の変形例（送出制御部１３０
−３および読出制御部２２０−３）について図１１Ａを用いて説明する。図１１Ａに示す
ように、送出制御部１３０−３は、読出部１３２−３と、暗号化部１３３−３と、送出部
１３４−３とを備えている。
【０１３９】
読出部１３２−３は、読み出したＥＣＣを送出部１３４−３ではなく、暗号化部１３
３−３に送信する。暗号化部１３３−３は、データＤとＥＣＣとを連結したデータを暗号
化する。送出部１３４−３は、このようにして暗号化されたデータを読出制御部２２０−
３に送出する。
【０１４０】
一方、図１１Ａに示すように、読出制御部２２０−３は、データ受信部２２１−３と
、復号部２２２−３と、エラー修復部２２３−３とを備えている。
【０１４１】
データ受信部２２１−３は、データＤとＥＣＣとを暗号化した暗号化データを受信し
、受信した暗号化データを復号部２２２−３に送信する。復号部２２２−３は、暗号化デ
ータを復元してデータＤとＥＣＣとを求め、エラー修復部２２３−３に送信する。エラー
修復部２２３−３は、このようにして復号部２２２−３から受信したデータＤとＥＣＣと
を用いて、エラーのチェックおよびエラー修復を実行する。
【０１４２】
次に、図１１Ａのように構成された送出制御部１３０−３と読出制御部２２０−３と
の間で読み出したデータを送受信するデータ読出処理について図１１Ｂを用いて説明する
。図１１Ｂは、第２の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示
すフローチャートである。
【０１４３】
読出制御部２２０の復号部２２２−３が暗号鍵共有部２１０−２から一時鍵Ｋを受け
取ると（ステップＳ５０１）、復号部２２２−３は、受け取った一時鍵Ｋを保持する。ま
た、データ受信部２２１−３は、半導体メモリチップ１００の送出制御部１３０−３に、
読み出し対象ページの指定と共にデータ送出要求を送る（ステップＳ５０２）。送出制御
部１３０−３は、読出部１３２−３に読み出し指定ページとデータ読み出し指示とを送る
（ステップＳ５０３）。読出部１３２−３は、メモリの指定された読み出し対象ページの
データＤを読み出す（ステップＳ５０４）。また、読出部１３２−３は、読み出したデー
タＤのＥＣＣをメモリ１１０の符号記憶部１１１から読み出す（ステップＳ５０５）。次
に、暗号化部１３３−３が、暗号鍵共有部１２０−２から一時鍵Ｋを受け取る（ステップ
Ｓ５０６）。暗号化部１３３−３は、受け取った一時鍵Ｋを用いてデータＤとＥＣＣとを
連結（ｃｏｎｃａｔｅｎａｔｅ）したデータＤ｜｜ＥＣＣを暗号化した暗号化データＤ’
＝Ｅｎｃ（Ｋ，Ｄ｜｜ＥＣＣ）を生成する（ステップＳ５０７）。そして、暗号化部１３
３−３は、暗号化データＤ’を送出部１３４に送る（ステップＳ５０８）。送出部１３４
は、暗号化データＤ’を読出制御部２２０のデータ受信部２２１に送る（ステップＳ５０
９）。
【０１４４】
データ受信部２２１は、送出部１３４から暗号化データＤ’を受け取ると、当該暗号
化データＤ’を復号部２２２−３に送る（ステップＳ５１０）。復号部２２２−３は、暗
号化データＤ’を受け取ると、保持している一時鍵Ｋを用いて暗号化データＤ’を復号し
、データＤとＥＣＣとを得る（ステップＳ５１１）。復号部２２２−３は、データＤとＥ
ＣＣとをエラー修復部２２３−３に送る（ステップＳ５１２）。
【０１４５】
ステップＳ５１３〜ステップＳ５１８は、図６のステップＳ２１７〜ステップＳ２２
２（図１０のステップＳ４１４〜ステップＳ４１９）と同様の処理なので説明を省略する
。
【０１４６】
図７の暗号鍵共有部１２０−２と、図９の送出制御部１３０−２または図１１Ａの送
出制御部１３０−３のいずれか一方との組み合わせが、コントローラー２００を認証する
認証手段とみなすことができる。これらの認証手段により読み出されるデータを記憶する
半導体メモリチップ１００上のメモリ１１０内の領域が、読み出し特殊領域に相当する。
【０１４７】
公開鍵を用いて半導体メモリチップからコントローラーを認証する実施例を次に述べ
る。図１２Ａは本実施例の半導体メモリチップとコントローラーの構成を示すブロック図
である。本実施例の半導体メモリチップとコントローラーの暗号鍵共有部の構成を、それ
ぞれ図１２Ａと図１２Ｂのブロック図に示す。半導体メモリチップ１００Ａの暗号鍵共有
部１２０Ａは、コントローラー２００Ａのバージョン情報を受け取るバージョン情報取得
部１２０１Ａを具備する。また、前記暗号鍵共有部１２０Ａは、一つ以上の公開鍵を格納
する公開鍵リスト格納部を具備する。本実施例では、コントローラー２００Ａが保持する
秘密鍵にバージョン情報が対応している。即ち、コントローラー２００Ａのバージョン情
報を知れば、当該コントローラー２００Ａが保持する秘密鍵に対応する公開鍵が定まる。
半導体メモリチップ１００Ａの暗号鍵共有部１２０Ａの乱数発生部は、転送するページの
データを暗号化する為の暗号鍵を生成する。コントローラー２００Ａの暗号鍵共有部２１
０Ａは、秘密鍵を格納する秘密鍵格納部２１０１Ａと、前記秘密鍵に対応するバージョン
情報を格納するバージョン情報格納部２１０２Ａとを具備している。なお、バージョン情
報は、例えば、数値や文字列である。
【０１４８】
図１２Ｃに半導体メモリチップ１００Ａとコントローラー２００Ａの暗号鍵共有部（
１２０Ａ、２１０Ａ）の動作を示す。コントローラー２００Ａに（読出し特殊領域の）読
出し対象ページの指定が入力される（ステップＳ３０００）。コントローラー２００Ａは
当該コントローラーの暗号鍵共有部２１０Ａのバージョン情報格納部２１０２Ａに格納さ
れているバージョン情報を半導体メモリチップ１００Ａに送る（ステップＳ３００１）。
半導体メモリチップ１００Ａの暗号鍵共有部１２０Ａのバージョン情報取得部１２０１Ａ
が、前記バージョン情報を受信する（ステップＳ３００２）。前記バージョン情報格納部
１２０１Ａが受信したバージョン情報を公開鍵選択部１２０３Ａに送る（ステップＳ３０
０３）。公開鍵選択部１２０３Ａは、バージョン情報に対応する公開鍵を検索する（ステ
ップＳ３００４）。バージョン情報に対応する公開鍵が見つからなかった場合、暗号鍵共
有部１２０Ａは動作を中止し以後の処理を行わない。さもなければ、公開鍵選択部１２０
３Ａは見つかった公開鍵KPを暗号化部１２０５Ａに送る（Ｓ３００６）。乱数発生部１２
０４Ａがデータ暗号鍵Kを発生し、Kを暗号化部１２０５Ａに送る（ステップＳ３００７）
。暗号化部１２０５Ａは公開鍵KPによってデータ暗号鍵Kを暗号化する。その結果をK’と
する（ステップＳ３００８）。即ち、K’= Enc( KP, K )である。暗号化部１２０５Ａは
、データ暗号鍵Kと暗号化データ暗号鍵K’とを、半導体メモリチップ１００Ａの送出制御
部１３０Ａに送る（ステップＳ３００９）。
【０１４９】
図１２Ｄは本実施例の半導体メモリチップ１００Ａの送出制御部１３０Ａの構成を
示すブロック図である。また、図１２Ｅは本実施例のコントローラー２００Ａの読出制御
部２２０Ａの構成を示すブロック図である。図１２Ｇおよび図１２Ｈに本実施例の動作の
一部を示す。これは、図１２Ｃに示す動作の続きである。図１２ＣのステップＳ３００９
で、半導体メモリチップ１００Ａの送出制御部１３０Ａはデータ暗号鍵Kと暗号化データ
暗号鍵K’とを受け取るが、送出制御部１３０Ａの暗号化部１３０１Ａが暗号鍵Kを受け取
り（ステップＳ３０１０）、送出制御部１３０Ａのデータ転送部１３０２Ａが暗号化デー
タ暗号鍵K’を受け取る（ステップＳ３０１１）。次いで、半導体メモリチップ１００Ａ
の送出制御部１３０Ａは、コントローラー２００Ａの読出制御部２２０Ａに読出し準備完
了を通知する（ステップＳ３０１２）。それを受け、コントローラー２００Ａの読出制御
部２２０Ａは、半導体メモリチップ１００Ａの送出制御部１３０Ａに対して、読出し対象
ページの指定を送る（ステップＳ３０１３）。送出制御部１３０Ａは、（メモリの読出し
特殊領域に含まれる）読出し対象ページのデータDを読出し、暗号化部１３０１Ａに入力
する（ステップＳ３０１４）。暗号化部１３０１Ａは前記データDをデータ暗号鍵Kで暗号
化しEnc( K, D )を得て（ステップＳ３０１５）、当該暗号化データEnc( K, D )をデータ
転送部１３０２Ａに送る（ステップＳ３０１６）。データ転送部１３０２Ａは、読出し対
象ページのECCを符号記憶部から読出す（ステップＳ３０１７）。データ転送部１３０２
Ａは、暗号化データ暗号鍵K’と前記ECC、及び、暗号化データEnc( K, D )を、コントロ
ーラー２００Ａの読出制御部２２０Ａに送る（ステップＳ３０１８）。
【０１５０】
データ転送部１３０２Ａがコントローラーに送るデータの形式を図１２Ｆに示す。暗
号化データ暗号鍵は20バイトのサイズを持つ。データ暗号鍵そのものは16バイトであるが
、本実施例では公開鍵暗号方式として160ビットの楕円曲線暗号を採用している為、暗号
化データ暗号鍵のサイズは20バイトとなる。メモリの一ページの大きさは2Kバイト＝2048
バイトであり、一ページのデータに対するECCのサイズは3バイトである。図１２Ｆでは、
20バイトの暗号化データ暗号鍵、ECC、暗号化データの順にデータが並んでいる。
【０１５１】
次いで、図１２Ｈに示すように、コントローラーの読出制御部のデータ転送部が前記
データ形式の暗号化データ鍵K’とECC、2Kバイトの暗号化データを受信する（ステップＳ
３０１９）。データ転送部は暗号鍵共有部の秘密鍵格納部から秘密鍵KSを読み出す（ステ
ップＳ５Ｕ）。データ転送部は秘密鍵KSを用いて暗号化データ暗号鍵K’を復号。データ
暗号鍵Kを得る（ステップＳ３０２１）。データ転送部は、データ暗号鍵KとECC、暗号化
データEnc( K, D )を復号部に送る（ステップＳ３０２２）。復号部は、データ暗号鍵Kで
暗号化データEnc( K, D )を復号しデータDを得る（ステップＳ３０２３）。復号部はデー
タDとECCとを読み出しデータとして出力する（ステップＳ３０２４）。利用装置が、必要
に応じて、ECCを用いてデータDのエラー修正を行う。
【０１５２】
このように、読み出し特殊領域を用いてコントローラー２００を認証する認証手段を
備えることにより、メモリカードの偽造等によるデータの不正利用を防止することができ
る。
【０１５３】
なお、上述の実施例において、半導体メモリチップからコントローラーが認証されて
いるが、再生装置などの利用装置を半導体メモリチップが認証するようにしても良い。そ
の場合は、利用装置が半導体メモリチップからMKBを読み出して処理を行うなど、コント
ローラーと同様の動作を行い、半導体メモリチップの読み出し特殊領域からデータを読み
出して利用する。利用装置が認証される場合の構成を図１２Ｊのブロック図に示す。暗号
鍵共有部と読出制御部が利用装置に含まれている事が、図２Ｂと異なる図１２Ｊの特徴で
ある。各部の動作は図２Ｂの場合と同様である。読み出し特殊領域からのデータ読み出し
動作において、コントローラーは単にデータの中継のみを行う。図１２Ｊのような構成に
より、図１２Ｋに示すトラスト・チェインが構築される。書き込み装置が半導体メモリを
認証し、かつ、半導体メモリが利用装置を認証する。
【０１５４】
次に、書き込み特殊領域１１３Ｂを用いて書き込み装置３００Ｂによる半導体メモリ
チップ１００Ｂの認証を実現する構成について以下に説明する。この構成によっても、メ
モリカードの偽造等によるデータの不正利用を防止することができる。また、読み出し特
殊領域１１２Ｂ（共通領域）からの読み出し機能、および、書き込み特殊領域１１３Ｂ（
共通領域）への書き込み機能の両方を備えるように構成すれば、上述のように半導体メモ
リチップ１００Ｂをトラスト・チェインに組み込むことが可能となり、セキュリティ機能
をさらに向上させることができる。
【０１５５】
図１３は、コントローラー２００に書き込み装置３００が接続されて、半導体メモリ
チップ１００の書き込み特殊領域１１３に書き込みを行う様子を示す図である。ただし、
図１３では、書き込み処理に関わる部分のみが図示されている。
【０１５６】
まず、書き込み装置３００が、書き込みが要求されたデータ（書込データ）を暗号化
した暗号化データ、書込先ページの指定、および書込データに対するＥＣＣをコントロー
ラー２００に送信する。コントローラー２００の書込制御部２３０は、暗号化データとＥ
ＣＣとを半導体メモリチップ１００のデータ変換部１４０に送出する。データ変換部１４
０は、暗号化データを変換（復号）し、得られた変換データ（書込データ）を書き込み特
殊領域１１３に書き込むとともに、ＥＣＣを符号記憶部１１１に書き込む。
【０１５７】
次に、図１３の書き込み装置３００、コントローラー２００の書込制御部２３０、お
よび、半導体メモリチップ１００のデータ変換部１４０の構成例について図１４を用いて
説明する。図１４に示すように、書き込み装置３００は、ＥＣＣ生成部３１０と、鍵記憶
部３２０と、暗号化部３３０と、データ送信部３４０とを備えている。
【０１５８】
ＥＣＣ生成部３１０は、書き込むべきデータとして入力された書込データのＥＣＣを
生成する。鍵記憶部３２０は、書込データの変換に用いるデータ変換鍵（第１鍵）を記憶
する。本実施の形態では、鍵記憶部３２０は、公開鍵方式の公開鍵Ｋｐをデータ変換鍵と
して記憶している。この公開鍵Ｋｐは、半導体メモリチップ１００の鍵記憶部１４１（後
述）が記憶するデータ変換鍵（第２鍵）である秘密鍵Ｋｓに対応する公開鍵である。
【０１５９】
なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では
、書き込み装置３００がデータ変換鍵（公開鍵Ｋｐ）を用いて書込データを暗号化し、半
導体メモリチップ１００が対応するデータ変換鍵（秘密鍵Ｋｓ）で書込データを復号して
メモリ１１０に記憶する場合を例に説明する。書き込み装置３００がデータ変換鍵（第１
鍵）を用いてデータを変換し、半導体メモリチップ１００が、第１鍵に対応するデータ変
換鍵（第２鍵）を用いて変換後のデータを変換するものであれば、これ以外の変換方法を
適用してもよい。例えば、書き込み装置３００が第１鍵を用いて復号に相当する変換処理
を実行し、半導体メモリチップ１００が、第１鍵に対応する第２鍵を用いて暗号化に相当
する変換処理を実行するように構成してもよい。
【０１６０】
暗号化部３３０は、公開鍵Ｋｐを用いて書込データを暗号化する。また、暗号化部３
３０は、公開鍵Ｋｐを用いてＥＣＣを暗号化した符号（変換符号）を生成する。なお、以
下では、暗号化された書込データを暗号化データといい、ＥＣＣを暗号化した変換符号を
暗号化ＥＣＣという場合がある。データ送信部３４０は、暗号化データと、暗号化ＥＣＣ
と、書込先ページの指定とをコントローラー２００の書込制御部２３０に送信する。
【０１６１】
次に、コントローラー２００の書込制御部２３０の構成例について説明する。図１４
に示すように、書込制御部２３０は、データ転送部２３１を備えている。データ転送部２
３１は、暗号化データと、暗号化ＥＣＣと、書込先ページ指定とを受信し、これらの情報
を半導体メモリチップ１００のデータ変換部１４０に送信する。
【０１６２】
次に、データ変換部１４０の構成例について説明する。図１４に示すように、データ
変換部１４０は、鍵記憶部１４１と、復号部１４２と、書込部１４３とを備えている。
【０１６３】
鍵記憶部１４１は、公開鍵方式の秘密鍵Ｋｓを記憶する。復号部１４２は、鍵記憶部
１４１の秘密鍵Ｋｓを用いて暗号化データと暗号化ＥＣＣとを復号する。なお、暗号化デ
ータから復号された書込データが、変換データに相当する。書込部１４３は、復号された
書込データをメモリ１１０上の書き込み特殊領域１１３の指定されたページに記録する。
また、書込部１４３は、復号されたＥＣＣをメモリ１１０の符号記憶部１１１に格納する
。
【０１６４】
次に、図１４のように構成された書き込み装置３００、書込制御部２３０、および、
データ変換部１４０による書込データの書き込み処理について図１５を用いて説明する。
図１５は、第２の実施の形態における書き込み処理の全体の流れを示すフローチャートで
ある。
【０１６５】
書き込み装置３００は、書込データ（データＤ）と書込先ページの指定とを入力する
（ステップＳ６０１）。次に、ＥＣＣ生成部３１０が、データＤのＥＣＣを生成し、生成
したＥＣＣとデータＤとを暗号化部３３０に転送する（ステップＳ６０２）。暗号化部３
３０は、鍵記憶部３２０から公開鍵Ｋｐを取得する（ステップＳ６０３）。次に、暗号化
部３３０は、公開鍵Ｋｐによって、データＤとＥＣＣとを暗号化し、暗号化データＤ’と
暗号化ＥＣＣとを得る（ステップＳ６０４）。暗号化部３３０は、暗号化データＤ’と暗
号化ＥＣＣとをデータ送信部３４０に送る（ステップＳ６０５）。データ送信部３４０は
、暗号化データＤ’、書込先ページの指定、および、暗号化ＥＣＣをコントローラー２０
０の書込制御部２３０に送信する（ステップＳ６０６）。
【０１６６】
書込制御部２３０のデータ転送部２３１は、暗号化データＤ’、書込先ページ指定、
および、暗号化ＥＣＣを受信し、それらを半導体メモリチップ１００のデータ変換部１４
０に送信する（ステップＳ６０７）。
【０１６７】
データ変換部１４０が受信した暗号化データＤ’および暗号化ＥＣＣは、復号部１４
２に入力される。復号部１４２は、鍵記憶部１４１から秘密鍵Ｋｓを取得する（ステップ
Ｓ６０８）。次に、復号部１４２は、秘密鍵Ｋｓを用いて暗号化データＤ’および暗号化
ＥＣＣを復号し、データＤおよびＥＣＣを得る（ステップＳ６０９）。次に、書込部１４
３は、復号されたデータＤを、書込先ページ指定によって指定されたメモリ１１０上のペ
ージに記録する。また、書込部１４３は、復号されたＥＣＣを、指定されたページに対応
するＥＣＣとして、メモリ１１０の符号記憶部１１１に格納する（ステップＳ６１０）。
【０１６８】
なお、一般に公開鍵による暗号化および復号は大きな計算量を要する。ページのサイ
ズは例えば約２ＫＢ程度であるが、実際に書き込むデータは暗号鍵などの小さなデータ（
例えば１６Ｂ程度）である。従って、特に半導体メモリチップ１００での復号の負荷を避
けるため、例えば、次のような工夫を行っても良い。すなわち、最小限のデータのみ暗号
化および復号するように構成してもよい。図１６は、このように構成した場合のデータの
変化の様子を表す図である。
【０１６９】
まず、一例として、ページサイズを２０４８Ｂ、書込データのサイズを１６Ｂ、ＥＣ
Ｃのサイズを３Ｂとする。ＥＣＣ生成部３１０には、先頭の１６Ｂの鍵データ＋残り２０
３２Ｂの０からなる１ページ分のデータを入力する（１６０１）。暗号化部３３０は、１
ページ分のデータの１７Ｂ目から３ＢのＥＣＣを記録した後、先頭２０Ｂのみ暗号化を行
う（１６０２）。復号部１４２は、先頭２０Ｂのみ復号した後（１６０３）、１ページ分
のデータの１７Ｂ目から３ＢをＥＣＣとして符号記憶部１１１に格納する（１６０４）。
次に、１７Ｂ目から３Ｂを０で上書き後、メモリ１１０の書き込み特殊領域１１３に１ペ
ージ分のデータを記録する（１６０５）。
【０１７０】
書き込み特殊領域１１３へのデータ書き込みは、必ず半導体メモリチップ１００のデ
ータ変換部１４０を経由して行われる。本実施の形態では、書き込み装置３００にデータ
Ｄが入力された場合、データＤとデータＤに対するＥＣＣであるＥＣＣ（Ｄ）は、書き込
み装置３００が保持する公開鍵Ｋｐで暗号化される。そして、半導体メモリチップ１００
のデータ変換部１４０には、暗号化データＤ’＝Ｅｎｃ（Ｋｐ，Ｄ）と暗号化ＥＣＣ＝Ｅ
ｎｃ（Ｋｐ，ＥＣＣ（Ｄ））とが入力される。
【０１７１】
書き込み特殊領域１１３にデータＤが正しく記録され、かつ、符号記憶部１１１にＥ
ＣＣ（Ｄ）が正しく記録されるためには、半導体メモリチップ１００が秘密鍵Ｋｓを保持
している必要がある。即ち、書き込み装置３００が半導体メモリチップ１００を認証して
いる。上述のデータ変換部１４０経由で書き込まれるメモリ領域が書き込み特殊領域１１
３に相当する。
【０１７２】
次に、図１４のデータ変換部１４０、書込制御部２３０、および、書き込み装置３０
０の変形例について図１７Ａを用いて説明する。図１７Ａは、本変形例にかかる書き込み
装置３００−２、書込制御部２３０−２、および、データ変換部１４０−２の構成の一例
を示すブロック図である。
【０１７３】
図１７Ａに示すように、書き込み装置３００−２は、ＥＣＣ生成部３１０−２と、鍵
記憶部３２０−２と、暗号化部３３０−２と、データ送信部３４０と、鍵選択部３５０と
、を備えている。データ送信部３４０の機能は、図１４と同様であるため、同一の符号を
付し説明は省略する。
【０１７４】
ＥＣＣ生成部３１０−２は、生成したＥＣＣを暗号化部３３０−２ではなく、データ
送信部３４０に送信する点が、図１４のＥＣＣ生成部３１０と異なっている。
【０１７５】
鍵記憶部３２０−２は、対称鍵方式のデータ変換鍵である暗号鍵Ｋを記憶する。本変
形例では、鍵記憶部３２０−２は、半導体メモリチップ１００のバージョンごとに複数の
暗号鍵Ｋを記憶する。図１８は、鍵記憶部３２０−２に記憶されるデータのデータ構造の
一例を示す図である。図１８に示すように、鍵記憶部３２０−２は、半導体メモリチップ
１００のバージョンと、暗号鍵とを対応づけたデータを記憶している。
【０１７６】
図１７Ａに戻り、鍵選択部３５０は、半導体メモリチップ１００のバージョンに適合
する暗号鍵Ｋを鍵記憶部３２０−２から選択する。暗号化部３３０−２は、選択された暗
号鍵Ｋを用いて書込データとＥＣＣとを暗号化する。
【０１７７】
次に、書込制御部２３０−２の構成例について説明する。図１７Ａに示すように、書
込制御部２３０−２は、データ転送部２３１−２を備えている。データ転送部２３１−２
は、鍵選択部３５０からの要求に応じて半導体メモリチップ１００から読み出されたバー
ジョン情報を転送する機能が追加された点が、図１４のデータ転送部２３１と異なってい
る。
【０１７８】
次に、データ変換部１４０−２の構成例について説明する。図１７Ａに示すように、
データ変換部１４０は、鍵記憶部１４１−２と、復号部１４２と、書込部１４３と、バー
ジョン情報記憶部１４４とを備えている。データ変換部１４０、復号部１４２、および、
書込部１４３の機能は、図１４と同様であるため、同一の符号を付し説明は省略する。
【０１７９】
バージョン情報記憶部１４４は、半導体メモリチップ１００のバージョン情報を記憶
する。鍵記憶部１４１−２は、対称鍵方式の暗号鍵Ｋを記憶する。この暗号鍵Ｋは、半導
体メモリチップ１００のバージョン情報記憶部１４４が格納するバージョン情報に対応す
る暗号鍵である。
【０１８０】
次に、図１７Ａのように構成された書き込み装置３００−２、書込制御部２３０−２
、および、データ変換部１４０−２による書込データの書き込み処理について図１９を用
いて説明する。図１９は、本変形例における書き込み処理の全体の流れを示すフローチャ
ートである。
【０１８１】
書き込み装置３００−２は、書込データ（データＤ）と書込先ページの指定とを入力
する（ステップＳ７０１）。ＥＣＣ生成部３１０−２は、データＤのＥＣＣを生成し、生
成したＥＣＣをデータ送信部３４０に転送する（ステップＳ７０２）。また、ＥＣＣ生成
部３１０−２は、データＤを暗号化部３３０に転送する（ステップＳ７０３）。次に、暗
号化部３３０−２が、鍵選択部３５０に暗号鍵取得要求を送る（ステップＳ７０４）。
【０１８２】
本実施の形態では、暗号鍵は半導体メモリチップ１００のバージョンに対応している
。バージョンが異なれば暗号鍵も異なる。書き込み装置３００の鍵記憶部３２０−２は、
半導体メモリチップ１００の各バージョンに対応する暗号鍵を格納しているが、半導体メ
モリチップ１００のバージョンが分からないと対応する暗号鍵が得られない。
【０１８３】
そこで、鍵選択部３５０は、暗号化部３３０−２から暗号鍵取得要求を受け付けると
、コントローラー２００にバージョン取得要求を送る（ステップＳ７０５）。コントロー
ラー２００は、半導体メモリチップ１００のデータ変換部１４０のバージョン情報記憶部
１４４から、半導体メモリチップ１００のバージョン情報を読み出し、データ転送部２３
１に入力する（ステップＳ７０６）。データ転送部２３１は、バージョン情報を書き込み
装置３００の鍵選択部３５０に送信する（ステップＳ７０７）。鍵選択部３５０は、受信
したバージョン情報に対応する暗号鍵Ｋを鍵記憶部３２０−２から選択する（ステップＳ
７０８）。そして、鍵選択部３５０は、選択した暗号鍵Ｋを暗号化部３３０−２に送信す
る（ステップＳ７０９）。
【０１８４】
暗号化部３３０−２は、送信された暗号鍵Ｋを用いて、書き込むべきデータ（データ
Ｄ）を暗号化し、暗号化データＤ’を得る（ステップＳ７１０）。暗号化部３３０−２は
、暗号化データＤ’をデータ送信部３４０に送る（ステップＳ７１１）。データ送信部３
４０は、暗号化データＤ’、書込先ページの指定、および、ＥＣＣを、コントローラー２
００の書込制御部２３０−２に送信する（ステップＳ７１２）。書込制御部２３０−２の
データ転送部２３１−２は、暗号化データＤ’、書込先ページ指定、およびＥＣＣを受信
し（ステップＳ７１３）、それらを半導体メモリチップ１００のデータ変換部１４０−２
に送信する（ステップＳ７１４）。
【０１８５】
データ変換部１４０−２は、受信した暗号化データＤ’を復号部１４２に入力する（
ステップＳ７１５）。復号部１４２は、鍵記憶部１４１−２から暗号鍵Ｋを取得する（ス
テップＳ７１６）。復号部１４２は、暗号鍵Ｋを用いて、暗号化データＤ’をデータＤに
復号する（ステップＳ７１７）。書込部１４３は、復号されたデータＤを、書込先ページ
指定によって指定されたメモリ１１０上のページに記録する（ステップＳ７１８）。また
、書込部１４３は、受信されたＥＣＣを、指定されたページに対応するＥＣＣとして符号
記憶部１１１に格納する（ステップＳ７１９）。
【０１８６】
図１７Ａのデータ変換部１４０−２を経由して記録されるメモリ領域へのデータ記録
は、必ずデータ変換部１４０−２による変換を受ける。データ変換部１４０−２を経由し
てデータが記録される領域が書き込み特殊領域１１３に相当する。
【０１８７】
書き込み装置３００にデータＤが入力された場合、データＤは半導体メモリチップ１
００のバージョンに対して選択された暗号鍵Ｋで暗号化される。そして、半導体メモリチ
ップ１００のデータ変換部１４０−２には、暗号化データＤ’＝Ｅｎｃ（Ｋ，Ｄ）が入力
される。書き込み特殊領域１１３にデータＤが正しく記録されるためには、半導体メモリ
チップ１００が暗号鍵Ｋを保持している必要がある。即ち、この場合も、書き込み装置３
００が半導体メモリチップ１００を認証している。
【０１８８】
以下、書き込み特殊領域への別の書き込み方法を述べる。これはMKBを用いるもので
ある。図１７Ｂに、本発明の半導体メモリチップの書き込み特殊領域１に対して、書き込
み装置がコントローラーを介して書き込みを行う構成を示す。
【０１８９】
書き込み装置のメディア鍵格納手段は、当該書き込み装置が保持するMKBのメディア
鍵KMを格納している。また、半導体メモリチップのデータ変換手段は、デバイス鍵KDを保
持している。図１７Ｂの書き込み装置が、図１７Ｂのコントローラーを介して、図１７Ｂ
の半導体メモリチップの書き込み特殊領域にデータを書き込む際の動作例を図１７Ｃに示
す。データDと書き込み先アドレスの指定が書き込み装置に入力されると（ステップＳ２
００１）、当該データDは書き込み装置のECC生成手段に入力される。ECC生成手段は前記
データDのECCであるECC( D )を生成し、データと共に暗号化手段に送る（ステップＳ２０
０２）。暗号化手段は、メディア鍵格納手段からメディア鍵KMを取得し（ステップＳ２０
０３）、前記メディア鍵KMでデータDとECC( D )とを暗号化して、それぞれD’とECC’と
を得る（ステップＳ２００４）。次いで、暗号化手段は、暗号化データD’と暗号化ECC（
即ち、ECC’）とをデータ送信手段に送る（ステップＳ２００５）。
【０１９０】
データ送信手段はMKBを取得し（ステップＳ２００６）、当該MKBをコントローラーに
送る（ステップＳ２００７）。当該MKBはコントローラーのデータ書き込み手段のデータ
転送部に入力される。データ転送部は当該MKBを半導体メモリチップのデータ変換手段に
送る（ステップＳ２００８）。データ変換手段は、受信したMKBをMKB処理部に入力する（
ステップＳ２００９）。MKB処理部は、当該データ変換手段が格納するデバイス鍵KDを取
得し（ステップＳ２０１０）、当該デバイス鍵KDを用いて前記MKBを処理する（ステップ
Ｓ２０１１）。前記デバイス鍵KDが前記MKBによって無効化されていない時、及び、その
時に限って、MKB処理部はメディア鍵KMを出力する。さもなければ、MKB処理部はエラーを
出力する。処理結果（即ち、正しく得られたメディア鍵KMまたはエラー）は、MKB処理部
から復号部に送られる（ステップＳ２０１２）。復号部は前記処理結果がメディア鍵KMか
否かを判定する（ステップＳ２０１３）。エラーが送られて来た場合、復号部はコントロ
ーラーのデータ書き込み手段にエラー通知を送る（ステップＳ２０１４）。データ書き込
み手段はエラー通知を書き込み装置に転送する（ステップＳ２０１５）。書き込み装置は
エラー通知を受け取ると、データ書き込み動作を停止する（ステップＳ２０１６）。
【０１９１】
一方、MKB処理部からメディア鍵KMが送られて来た場合、復号部は当該メディア鍵KM
を保持する（ステップＳ２０１７）と共に、復号部はコントローラーのデータ書き込み手
段にデータ送信要求を送る（ステップＳ２０１８）。データ転送部はデータ送信要求を書
き込み装置に転送する（ステップＳ２０１９）。書き込み装置がデータ送信要求を受け取
ると、書き込み装置のデータ送信手段は、暗号化されたデータD（即ち、暗号化データD’
）と暗号化されたECC（即ち、ECC’）とを送出し、コントローラーに送る（ステップＳ２
０２０）。前記暗号化データD’と暗号化ECC（ECC’）とは、コントローラーのデータ書
き込み手段を介して、半導体メモリチップのデータ変換手段に送られる。前記暗号化デー
タD’と暗号化ECC（ECC’）とはデータ変換手段の復号部に送られる（ステップＳ２０２
１）。復号部は保持しているメディア鍵KMで前記暗号化データD’と暗号化ECC（ECC’）
とを復号し、データDとECCとを得る（ステップＳ２０２２）。復号部はデータDを書き込
み特殊領域に書き込み、ECCをECC格納部に書き込む（ステップＳ２０２３）。
【０１９２】
読み出し特殊領域は、半導体メモリチップ１００がコントローラー２００を認証する
ために利用される。一方、書き込み特殊領域は、書き込み装置３００が半導体メモリチッ
プ１００を認証するために利用される。ここで図１のトラスト・チェインを思い起こそう
。書き込み装置３００から、半導体メモリチップ１００、コントローラー２００というト
ラスト・チェインを構成するためには、読み出し特殊領域と書き込み特殊領域が交わりを
持つ必要がある。即ち、この交わりの領域（共通領域）に記録されたデータが正しく（書
き込み装置３００の意図した通りに）コントローラー２００によって読み出されることに
よって、トラスト・チェインが完成することになる。以降、読み出し特殊領域と書き込み
特殊領域の交わりの領域（共通領域）を単に特殊領域と呼ぶことがある。
【０１９３】
なお、図１８の例では、バージョン情報は単なる数値としていたが、バージョン情報
はこれに限られるものではない。また、バージョン情報およびバージョン情報以外の１以
上の情報に応じて、複数の暗号鍵から対応する暗号鍵を選択するように構成してもよい。
例えば、半導体メモリチップ１００が製造された時期、または、製造時のロット番号を元
にバージョン情報を定めても良い。
【０１９４】
また、バージョン情報は数値に限定されるものではない。例えば、文字列、または、
数値や文字列などの順列からなる配列であっても良い。図２０は、このように構成したバ
ージョン情報の変形例を示す図である。図２０では、半導体メモリチップ１００の製造工
場名、当該製造工場で管理しているロット番号、および、顧客番号の順列をバージョン情
報とした例が示されている。ここで、顧客番号とは、例えば半導体メモリチップ１００の
製造者が、大口の需要家に対して割り振った番号である。大口需要家向けでない製品につ
いては、この数値を固定の値（例えば０）とする。図２０のような対応表が、書き込み装
置３００の鍵記憶部３２０−２に記憶される。
【０１９５】
このように、第２の実施の形態にかかる半導体メモリチップは、メモリと同一ダイ上
に構成され、コントローラーを認証する認証手段として機能する暗号鍵共有部および送出
制御部を備えている。そして、認証されたコントローラーのみが、メモリに格納されたデ
ータを正しく読み出すことができる。また、メモリと同一ダイ上に構成され、所定の暗号
鍵を記憶する鍵記憶部と当該暗号鍵によりデータを復号してメモリに記憶するデータ変換
部とを備えている。そして、正しい暗号鍵を保持していなければデータを正しく記録でき
ない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができ
る。
【０１９６】
（第３の実施の形態）
第２の実施の形態では、書き込み特殊領域に書き込む前に書込データを復号していた。
これに対し、第３の実施の形態にかかる半導体メモリチップは、書き込み特殊領域から読
み出したデータ（暗号化された書込データ）を復号する。この場合も、書き込み特殊領域
から読み出したデータが正しく復号するためには、書き込み装置が暗号化に用いた暗号鍵
に対応する暗号鍵を半導体メモリチップが保持している必要がある。即ち、この場合も、
書き込み装置が半導体メモリチップを認証している。
【０１９７】
図２１は、第３の実施の形態の半導体メモリチップ２１００の構成の一例を示すブロ
ック図である。なお、コントローラー２００は、第２の実施の形態と同様の構成である。
図２１に示すように、半導体メモリチップ２１００は、メモリ２１１０と、暗号鍵共有部
１２０と、送出制御部２１３０と、データ変換部２１４０と、受信制御部２１５０と、読
出部２１６０とを備えている。
【０１９８】
第２の実施の形態との相違点の１つは、データ変換部１４０の位置である。図２に示
すように、第２の実施の形態では、データ変換（復号）は書き込みの際に行われるが、第
３の実施の形態では読み出しの際に行われる。この他、第３の実施の形態では、メモリ２
１１０および送出制御部２１３０の構成と、受信制御部２１５０および読出部２１６０を
追加したことが、第２の実施の形態と異なっている。その他の構成および機能は、第２の
実施の形態にかかる半導体メモリチップ１００の構成を表すブロック図である図２と同様
であるので、同一符号を付し、ここでの説明は省略する。
【０１９９】
送出制御部２１３０は、読出部１３２が削除されたことが図５の送出制御部１３０と
異なっている。なお、送出制御部２１３０は、読出部１３２が読出したデータを入力する
代わりに、読出部２１６０により読み出され、データ変換部１４０により変換されたデー
タを入力する。
【０２００】
メモリ２１１０は、符号記憶部１１１と、共通領域２１１４と、一般領域１１５とを
備えている。なお、第３の実施の形態では、書き込み特殊領域とは、メモリ領域のうち、
データ読み出しの際、データ変換部２１４０による復号を受けるデータが書き込まれる予
め定められたメモリ領域である。第３の実施の形態では、データ読み出しの際に、データ
変換部２１４０により復号されたデータが送出制御部２１３０に入力され、コントローラ
ー２００の認証が行われる。したがって、データ変換部２１４０による復号を受けるデー
タが書き込まれる書き込み特殊領域と、認証されたコントローラー２００のみがデータを
正しく読み出すことができる読み出し特殊領域とが一致する。このため、図２１では、メ
モリ２１１０に共通領域２１１４のみを図示している。
【０２０１】
受信制御部２１５０は、書込データが暗号化された暗号化データを受信して復号せず
に共通領域２１１４に書き込む処理を制御する。
【０２０２】
読出部２１６０は、読み出しが指定されたページのデータを読み出し特殊領域（共通
領域２１１４）から読み出し、データ変換部２１４０に送信する。また、読出部２１６０
は、指定されたページのデータに対応するＥＣＣを符号記憶部１１１から読み出し、送出
制御部２１３０に送信する。
【０２０３】
次に、図２１の受信制御部２１５０の構成例および第３の実施の形態の書き込み装置
２３００の構成例について図２２を用いて説明する。なお、図２２では、書き込み処理に
関わる部分のみが図示されている。
【０２０４】
まず、書き込み装置２３００の構成について説明する。図２２に示すように、書き込
み装置２３００は、ＥＣＣ生成部２３１０と、鍵記憶部３２０と、暗号化部２３３０と、
データ送信部２３４０とを備えている。鍵記憶部３２０は、図１４の鍵記憶部３２０と同
様の構成のため同一の符号を付し、説明を省略する。
【０２０５】
ＥＣＣ生成部２３１０は、書き込むべきデータとして入力された書込データのＥＣＣ
を生成する。暗号化部２３３０は、公開鍵Ｋｐを用いて書込データを暗号化する。データ
送信部２３４０は、暗号化データと、ＥＣＣと、書込先ページの指定とをコントローラー
２００の書込制御部２３０に送信する。
【０２０６】
次に、受信制御部２１５０の構成について説明する。図２２に示すように、受信制御
部２１５０は、書込部２１４３を備えている。書込部２１４３は、暗号化データを共通領
域２１１４の指定されたページに記録する。また、書込部２１４３は、ＥＣＣを符号記憶
部１１１に格納する。
【０２０７】
次に、図２２のように構成された書き込み装置２３００、書込制御部２３０、および
、受信制御部２１５０による書込データの書き込み処理について図２３を用いて説明する
。図２３は、第３の実施の形態における書き込み処理の全体の流れを示すフローチャート
である。
【０２０８】
書き込み装置２３００は、書込データ（データＤ）と書込先ページの指定とを入力す
る（ステップＳ８０１）。書き込み装置２３００は、入力されたデータＤをＥＣＣ生成部
２３１０に入力する（ステップＳ８０２）。次に、ＥＣＣ生成部２３１０が、データＤの
ＥＣＣを生成し、生成したＥＣＣをデータ送信部２３４０に転送する（ステップＳ８０３
）。また、ＥＣＣ生成部２３１０は、データＤを暗号化部２３３０に転送する（ステップ
Ｓ８０４）。
【０２０９】
暗号化部２３３０は、鍵記憶部３２０から公開鍵Ｋｐを取得する（ステップＳ８０５
）。また、暗号化部２３３０は、取得した公開鍵ＫｐによってデータＤを暗号化し、暗号
化データＤ’を得る（ステップＳ８０６）。次に、暗号化部２３３０は、暗号化データＤ
’をデータ送信部２３４０に送る（ステップＳ８０７）。データ送信部３４０は、暗号化
データＤ’、書込先ページの指定、および、ＥＣＣを、コントローラー２００の書込制御
部２３０に送信する（ステップＳ８０８）。
【０２１０】
書込制御部２３０のデータ転送部２３１が、暗号化データＤ’、書込先ページ指定、
および、ＥＣＣを受信し（ステップＳ８０９）、それらを半導体メモリチップ１００の受
信制御部２１５０に送信する（ステップＳ８１０）。
【０２１１】
受信制御部２１５０は、書込部２１４３に暗号化データＤ’と書込先ページ指定とを
入力する（ステップＳ８１１）。書込部２１４３は、入力された暗号化データＤ’を、書
込先ページ指定によって指定されたメモリ１１０上のページに記録する（ステップＳ８１
２）。また、受信制御部２１５０は、ＥＣＣを、指定されたページに対応するＥＣＣとし
て、符号記憶部１１１に格納する（ステップＳ８１３）。
【０２１２】
このように、本実施の形態では、書き込み装置２３００にデータＤが入力された場合
、データＤは、書き込み装置２３００が保持する公開鍵Ｋｐで暗号化される。そして、半
導体メモリチップ１００の受信制御部２１５０には、暗号化データＤ’＝Ｅｎｃ（Ｋｐ，
Ｄ）と、データＤに関するＥＣＣ（Ｄ）とが入力される。その結果、書き込み特殊領域（
共通領域２１１４）にデータＥｎｃ（Ｋｐ，Ｄ）が記録され、符号記憶部１１１にＥＣＣ
（Ｄ）が記録される。
【０２１３】
次に、図２１のデータ変換部２１４０の構成例について図２４を用いて説明する。図
２４に示すように、データ変換部２１４０は、鍵記憶部１４１と、復号部２１４２とを備
えている。鍵記憶部１４１の構成および機能は、図１４と同様であるため同一の符号を付
し、説明を省略する。復号部２１４２は、読出部２１６０により読み出されたデータを、
鍵記憶部１４１に記憶された秘密鍵Ｋｓを用いて復号する。
【０２１４】
次に、図２４のように構成されたデータ変換部２１４０により実行されるデータ読出
処理について図２５を用いて説明する。図２５は、第３の実施の形態におけるデータ読出
処理の全体の流れを示すフローチャートである。
【０２１５】
まず、コントローラー２００が、読み出し対象となるページの指定を再生装置などの
外部装置から入力する（ステップＳ９０１）。コントローラー２００の読出制御部２２０
は、半導体メモリチップ１００に対して、メモリ１１０内の読み出し指定ページのデータ
の読み出し指示を送る（ステップＳ９０２）。半導体メモリチップ１００の読出部２１６
０は、読み出し指定ページのデータを読み出し、データ変換部２１４０に入力する（ステ
ップＳ９０３）。また、読出部２１６０は、読み出し指定ページに対応するＥＣＣを符号
記憶部１１１から読み出して送出制御部２１３０に送る（ステップＳ９０４）。
【０２１６】
上述のように本実施の形態では、暗号化データを復号せずに共通領域２１１４に書き
込むため、読み出したデータは暗号化されている。以下、読み出したデータをデータＤ’
と表す。
【０２１７】
データ変換部２１４０は、入力されたデータＤ’を復号部２１４２に入力する（ステ
ップＳ９０５）。復号部２１４２は、鍵記憶部１４１から秘密鍵Ｋｓを取得する（ステッ
プＳ９０６）。復号部２１４２は、取得した秘密鍵Ｋｓを用いて入力されたデータＤ’を
復号し、データＤを得る（ステップＳ９０７）。そして、復号部２１４２は、復号したデ
ータＤを送出制御部２１３０に送る（ステップＳ９０８）。
【０２１８】
送出制御部２１３０は、データ変換部２１４０から受信した復号されたデータＤと符
号記憶部１１１から読み出されたＥＣＣとをコントローラー２００の読出制御部２２０に
送出する（ステップＳ９０９）。この後の処理は、図６のステップＳ２１２以降と同様で
あるため、図２５では記載を省略している。
【０２１９】
本実施の形態の場合、書き込み特殊領域（共通領域２１１４）からのデータ読み出し
は、必ず半導体メモリチップ１００のデータ変換部２１４０を経由して行われる。上述の
書き込みによって、書き込み特殊領域（共通領域２１１４）の読み出し対象ページのデー
タがＥｎｃ（Ｋｐ，Ｄ）であり、当該ページのＥＣＣとして、ＥＣＣ（Ｄ）が符号記憶部
１１１に記録されているとする。この場合、半導体メモリチップ１００のデータ変換部２
１４０から送出制御部２１３０に送られるデータはＤｅｃ（Ｋｓ，Ｅｎｃ（Ｋｐ，Ｄ））
＝Ｄである。そして、コントローラー２００は、データＤとＥＣＣ（Ｄ）とを受け取るこ
とになる。ここで、Ｄｅｃ（Ａ，Ｂ）とは、復号に用いる鍵ＡによってデータＢを復号す
ることを表す。
【０２２０】
このように、書き込み装置３００がＥｎｃ（Ｋｐ，Ｄ）とＥＣＣ（Ｄ）を書き込んだ
場合に、コントローラー２００が所期のデータＤと対応するＥＣＣ（Ｄ）とを正しく受け
取るためには、半導体メモリチップ１００が秘密鍵Ｋｓを格納している必要がある。即ち
、この場合も、書き込み装置３００が半導体メモリチップ１００を認証している。上述の
データ変換部２１４０を経由して読み出されるメモリ領域が、本実施の形態の書き込み特
殊領域に相当する。
【０２２１】
このように、第３の実施の形態にかかるメモリチップでは、メモリと同一ダイ上に構
成され、所定の暗号鍵を記憶する鍵記憶部とメモリから読み出したデータを当該暗号鍵に
より復号するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければ
書き込まれたデータを正しく復元できない。これにより、メモリカードの偽造等によるデ
ータの不正利用を防止することができる。
【０２２２】
（第４の実施の形態）
第２および第３の実施の形態で述べたように、書き込み装置によって特殊領域（＝共通
領域）にデータを書き込み、特殊領域からコントローラーがデータを読み出すことにより
、トラスト・チェインが構築される。書き込み装置によって特殊領域に書き込まれたデー
タがコントローラーによって正しく読み出されたか否かは、実際には、コンテンツの再生
などのデータ利用が正常にできるか否かによって判断される。
【０２２３】
第４の実施の形態では、上記実施の形態の半導体メモリチップ内のデータを利用する
装置（プレーヤー等）を含めた具体的なデータ利用の実施の形態を説明する。
【０２２４】
図２６は、第４の実施の形態でデータを利用する装置であるプレーヤー４００および
プレーヤー４００がデータを読み出すメモリカード２５０１の構成の一例を示すブロック
図である。
【０２２５】
図２６に示すように、メモリカード２５０１は、半導体メモリチップ１００とコント
ローラー２００とを含む。半導体メモリチップ１００およびコントローラー２００は、第
２の実施の形態または第３の実施の形態で述べた構成を備える。例えば、図２６のコント
ローラー２００は、例えば、図３Ａの暗号鍵共有部２１０と図５の読出制御部２２０と具
備している。メモリカード２５０１は、例えばＳＤメモリカードなどにより構成すること
ができる。
【０２２６】
第４の実施の形態では、暗号化ビデオデータ２５４１、暗号化ビデオデータ２５４１
を復号するために用いられる復号鍵Ｋｃが暗号化された暗号化復号鍵２５３１、および、
ＭＫＢ２５２１（以下、単にＭＫＢという）が、半導体メモリチップ１００のメモリ１１
０内の一般領域１１５に記録されている。また、メディア鍵変換鍵２５１１（以下、メデ
ィア鍵変換鍵ＫＴという）がメモリ１１０内の特殊領域（共通領域１１４）に格納されて
いる。
【０２２７】
復号鍵Ｋｃは暗号化された暗号化復号鍵２５３１として記録される。この暗号化に用
いられる鍵は、ＭＫＢが正しく処理された場合に導出されるメディア鍵ＫＭを、メディア
鍵変換鍵ＫＴを用いて変換したものである。例えば、暗号化復号鍵２５３１＝ＡＥＳ−Ｅ
（ＡＥＳ−Ｇ（ＫＴ，ＫＭ），Ｋｃ）。この例では、変換に一方向性関数であるＡＥＳ−
Ｇを用い、暗号化にＡＥＳ−Ｅを用いている。
【０２２８】
プレーヤー４００は、デバイス鍵を表すＫＤ４１０（以下、デバイス鍵ＫＤという）
を保持するとともに、ＭＫＢ処理部４２０と、メディア鍵変換部４３０と、鍵復号部４４
０と、ビデオ復号部４５０と、再生部４６０とを備えている。
【０２２９】
ＭＫＢ処理部４２０は、一般領域１１５から読み出されたＭＫＢをデバイス鍵ＫＤを
用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。メディア鍵
変換部４３０は、導出されたメディア鍵ＫＭを、特殊領域から読み出されたメディア鍵変
換鍵ＫＴを用いて変換した鍵Ｋｗを生成する。鍵復号部４４０は、一般領域１１５から読
み出された暗号化復号鍵２５３１を鍵Ｋｗで復号することにより復号鍵Ｋｃを生成する。
ビデオ復号部４５０は、復号鍵Ｋｃを用いて暗号化ビデオデータを復号する。再生部４６
０は、復号されたビデオデータを再生する。
【０２３０】
次に、図２６のように構成されたプレーヤー４００によるメモリカード２５０１内の
データの再生処理について図２７を用いて説明する。図２７は、第４の実施の形態におけ
る再生処理の全体の流れを示すフローチャートである。
【０２３１】
プレーヤー４００は、メモリカード２５０１内のコントローラー２００に対して、一
般領域１１５に含まれているＭＫＢの読み出しを指示する（ステップＳ１００１）。例え
ば、プレーヤー４００は、コントローラー２００に対して当該ＭＫＢの先頭アドレスとサ
イズとを指定する。
【０２３２】
コントローラー２００は、指定された領域を含むページを半導体メモリチップ１００
から読み出し、指定された領域のデータ（即ちＭＫＢの値）をプレーヤー４００に送る。
プレーヤー４００は、受信したＭＫＢをＭＫＢ処理部４２０に入力する（ステップＳ１０
０２）。ＭＫＢ処理部４２０は、プレーヤー４００が保持しているデバイス鍵ＫＤを読み
出し、入力されたＭＫＢをデバイス鍵ＫＤを用いてＭＫＢ処理し、メディア鍵ＫＭを導出
して出力する（ステップＳ１００３）。
【０２３３】
次に、ＭＫＢ処理部４２０は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否かを
判断する（ステップＳ１００４）。デバイス鍵ＫＤがＭＫＢによって無効化されていた場
合、ＭＫＢ処理部４２０は正しいメディア鍵ＫＭを導出することができない。この場合、
ＭＫＢ処理部４２０は、メディア鍵ＫＭが得られなかったと判断し（ステップＳ１００４
：Ｎｏ）、エラーを出力する。なお、ＭＫＢ処理部４２０からエラーが出力された場合、
プレーヤー４００は警告メッセージを表示して動作を停止する。
【０２３４】
メディア鍵ＫＭが得られた場合（ステップＳ１００４：Ｙｅｓ）、プレーヤー４００
は、メディア鍵ＫＭをメディア鍵変換部４３０に送る（ステップＳ１００５）。次に、プ
レーヤー４００は、特殊領域（共通領域１１４）に含まれているメディア鍵変換鍵ＫＴの
読み出しを指示する（ステップＳ１００６）。例えば、プレーヤー４００は、コントロー
ラー２００にメディア鍵変換鍵ＫＴの先頭アドレスとサイズとを指定する。
【０２３５】
コントローラー２００は、指定された領域を含むページを半導体メモリチップ１００
から読み出し、指定された領域のデータ（即ちメディア鍵変換鍵ＫＴの値）をプレーヤー
４００に送る。プレーヤー４００は、コントローラー２００から受信したメディア鍵変換
鍵ＫＴの値をメディア鍵変換部４３０に入力する。
【０２３６】
メディア鍵変換部４３０は、入力されたメディア鍵変換鍵ＫＴでメディア鍵ＫＭを変
換して鍵Ｋｗ＝ＡＥＳ−Ｇ（ＫＴ，ＫＭ）を得る（ステップＳ１００７）。プレーヤー４
００は、鍵Ｋｗの値を鍵復号部４４０に送る。
【０２３７】
次に、プレーヤー４００は、コントローラー２００を介して、半導体メモリチップ１
００の一般領域１１５から暗号化復号鍵２５３１を読み取る（ステップＳ１００８）。例
えば、プレーヤー４００は、コントローラー２００に暗号化復号鍵２５３１の先頭アドレ
スとサイズを指定する。
【０２３８】
コントローラー２００は、一般領域１１５から指定された領域を含むページを読み出
し、指定された領域のデータ（即ち暗号化復号鍵２５３１の値）をプレーヤー４００に送
る。プレーヤー４００は、コントローラー２００から受信した暗号化復号鍵２５３１の値
を鍵復号部４４０に入力する。
【０２３９】
鍵復号部４４０は、入力された暗号化復号鍵２５３１を鍵Ｋｗで復号する（ステップ
Ｓ１００９）。これにより、復号鍵Ｋｃの値が得られる。復号鍵Ｋｃを得る式は以下の（
１）式のように表される。
【０２４０】
Ｄｅｃ（Ｋｗ，暗号化復号鍵）
＝Ｄｅｃ（Ｋｗ，Ｅｎｃ（ＡＥＳ−Ｇ（ＫＴ，ＫＭ），Ｋｃ））
＝Ｄｅｃ（Ｋｗ，Ｅｎｃ（Ｋｗ，Ｋｃ））
＝Ｋｃ  ・・・（１）
鍵復号部４４０は、復号鍵Ｋｃの値をビデオ復号部４５０に送る（ステップＳ１０１０
）。ビデオ復号部４５０は、受信した復号鍵Ｋｃの値を保持する。
【０２４１】
次に、プレーヤー４００は、コントローラー２００を介して、一般領域１１５から順
次暗号化ビデオデータを読み取り、ビデオ復号部４５０に順次入力する（ステップＳ１０
１１）。ビデオ復号部４５０は、復号鍵Ｋｃを用いて暗号化ビデオデータを順次復号し（
ステップＳ１０１２）、再生部４６０に送る（ステップＳ１０１３）。再生部４６０は、
受信したビデオデータを順次再生（表示）する（ステップＳ１０１４）。
【０２４２】
メディア鍵変換鍵ＫＴは、正しいコンテンツ復号鍵（復号鍵Ｋｃ）を得る為に必要な
データである。この値は、例えば、半導体メモリチップ１００毎に異なっていても良い。
または、メモリカード２５０１毎に異なっていても良い。更には、メモリカード２５０１
毎に統計的に異なっていても良い。統計的に異なるとは、厳密に異なる値とならない場合
があるが、統計的には異なるとみなせることを意味する。例えば桁数が極めて大きい乱数
を発生させ、この乱数の値を用いる場合が該当する。
【０２４３】
特殊領域に記録されるメディア鍵変換鍵ＫＴがメモリカード２５０１毎に（少なくと
も統計的に）異なっている場合、メディア鍵変換鍵ＫＴは、メモリカード２５０１のＩＤ
の一種とみなすことができる。なお、暗号化されたコンテンツデータ（ビデオデータなど
）を復号されるために必要なデータとして、メディア鍵変換鍵ＫＴの代わりにＭＫＢを保
存するように構成してもよい。
【０２４４】
メディア鍵変換鍵ＫＴを半導体メモリチップ１００の書き込み特殊領域に正しく記録
するには、半導体メモリチップ１００が書き込み装置３００によって認証されなければな
らない。プレーヤー４００が、読み出し特殊領域に記録されたメディア鍵変換鍵ＫＴを、
コントローラー２００を経由して正しく読み出すことができる為には、コントローラー２
００が半導体メモリチップ１００によって認証されていなければならない。結局、書き込
み装置３００が半導体メモリチップ１００を経由してコントローラー２００を認証するト
ラスト・チェインが確立されていなければ、プレーヤー４００はメディア鍵変換鍵ＫＴを
正しく読み出すことはできない。即ち、プレーヤー４００によるビデオの再生をもって、
トラスト・チェイン確立の証として良い。
【０２４５】
なお、第４の実施の形態におけるＭＫＢは、ビデオの供給者がビデオ毎に供給するよ
うにしても良い。一般に、ＭＫＢは対称鍵暗号を用いて構成されるが、その場合は、公開
鍵暗号を用いて構成するようにすると良い。その理由を以下に説明する。
【０２４６】
対称鍵暗号を用いて構成されたＭＫＢの場合、一般にＭＫＢを生成する為には、全て
のデバイス鍵ＫＤの値を知っている必要がある。ビデオ供給者にＭＫＢの生成を行わせる
為には、全てのデバイス鍵ＫＤの値を当該ビデオ供給者に提供する必要がある。もし、こ
のデバイス鍵ＫＤの値が悪意のプレーヤー製造者に漏えいした場合、ＭＫＢによるプレー
ヤーの無効化が実質無意味になる。悪質なまたは粗悪なプレーヤーをＭＫＢを用いて無効
化しても、悪意のプレーヤー製造者は、無効化されていないデバイス鍵ＫＤを用いて、幾
らでも悪質なまたは粗悪なプレーヤーを製造し続けることが可能であるからである。
【０２４７】
そこに、公開鍵暗号を用いてＭＫＢを構成するメリットがある。公開鍵暗号を用いる
場合、デバイス鍵ＫＤは秘密鍵を用いて構成される。プレーヤー製造者は、当該プレーヤ
ー製造者に割り当てられたデバイス鍵ＫＤの値しか知らない。一方、ビデオ供給者には、
ＭＫＢ生成用に公開鍵を配布する。ビデオ供給者は、当該公開鍵を用いて自由にＭＫＢを
生成することが可能である。一方、仮にＭＫＢ生成用の公開鍵が悪意のプレーヤー製造者
に漏えいしても、公開鍵暗号の基本的な性質から、秘密鍵で構成されているデバイス鍵Ｋ
Ｄの値を知ることはできない。このように、図２６におけるＭＫＢは公開鍵暗号に基づい
て構成されたＭＫＢであっても良い。
【０２４８】
このように、第４の実施の形態では、一般領域に暗号化データを記憶し、特殊領域に
暗号化データを復号するために必要なデータを記憶し、特殊領域のデータを用いて暗号化
データを復号して利用できる。これにより、コンテンツ供給者による再生デバイスのリボ
ークが実現可能となる。
【０２４９】
（第５の実施の形態）
第５の実施の形態では、コンテンツに付随するＭＫＢによるコントローラーの無効化と
、暗号化ビデオデータのメモリカード毎の個別化とを組み合わせた実施の形態を説明する
。
【０２５０】
図２８は、第５の実施の形態のプレーヤー４００−２およびメモリカード２６０１の
構成の一例を示すブロック図である。
【０２５１】
図２８に示すように、メモリカード２６０１は、半導体メモリチップ１００とコント
ローラー２００−２とを含む。半導体メモリチップ１００は、第２の実施の形態または第
３の実施の形態で述べた構成を備える。
【０２５２】
第５の実施の形態では、暗号化ビデオデータ２５４１、暗号化されたＭＫＢ２５２１
−２（以下、ＭＫＢ’という）およびＭＫＢ２５２２（以下、ＭＫＢ２という）が一般領
域１１５に記録されている。また、ＭＫＢ’からＭＫＢを復号するためのＭＫＢ復号鍵２
５１３（以下、ＭＫＢ復号鍵ＫＴという）およびメディア鍵変換鍵２５１２（以下、メデ
ィア鍵変換鍵ＫＴ２という）が特殊領域（共通領域１１４）に格納されている。このよう
に、本実施の形態では、メディア鍵変換鍵２５１１（メディア鍵変換鍵ＫＴ）の代わりに
、ＭＫＢの復号に用いられるＭＫＢ復号鍵ＫＴを備えている。
【０２５３】
次に、コントローラー２００−２の構成例について説明する。本実施の形態のコント
ローラー２００−２は、第２または第３の実施の形態のコントローラー２００の構成に加
えて、デバイス鍵ＫＤ２６１０（以下、デバイス鍵ＫＤ２という）と、ＭＫＢ処理部２６
２０と、メディア鍵変換部２６３０と、ビデオ復号部２６４０とを備えている。なお、図
２８では、第２または第３の実施の形態で説明した構成部は図示を省略しているが、コン
トローラー２００−２は、例えば、図７の暗号鍵共有部２１０−２と図１１Ａの読出制御
部２２０−３とを具備している。そして、読み出し特殊領域に格納されている、ＭＫＢ復
号鍵ＫＴおよびメディア鍵変換鍵ＫＴ２の読み出しは、暗号鍵共有部２１０−２と読出制
御部２２０−３とを用いて行われる。
【０２５４】
ＭＫＢ処理部２６２０は、一般領域１１５から読み出されたＭＫＢ２をデバイス鍵Ｋ
Ｄ２を用いて処理することによりメディア鍵ＫＭ２を導出するＭＫＢ処理を実行する。メ
ディア鍵変換部２６３０は、導出されたメディア鍵ＫＭ２を、特殊領域から読み出された
メディア鍵変換鍵ＫＴ２を用いて変換した復号鍵Ｋｃ２を生成する。ビデオ復号部２６４
０は、復号鍵Ｋｃ２を用いて暗号化ビデオデータを復号する。
【０２５５】
次に、プレーヤー４００−２の構成例について説明する。プレーヤー４００−２は、
デバイス鍵４１０（以下、デバイス鍵ＫＤという）を保持するとともに、ＭＫＢ処理部４
２０−２と、ビデオ復号部４５０と、再生部４６０と、ＭＫＢ復号部４７０と、を備えて
いる。
【０２５６】
第５の実施の形態では、ＭＫＢ復号部４７０が追加されたこと、ＭＫＢ処理部４２０
−２の機能、および、鍵復号部４４０とメディア鍵変換部４３０が削除されたことが、第
４の実施の形態のプレーヤー４００と異なっている。
【０２５７】
ＭＫＢ復号部４７０は、一般領域１１５から読み出されたＭＫＢ’をＭＫＢ復号鍵Ｋ
Ｔで復号してＭＫＢを生成する。ＭＫＢ処理部４２０−２は、生成されたＭＫＢをデバイ
ス鍵ＫＤを用いて処理することによりメディア鍵ＫＭを導出するＭＫＢ処理を実行する。
【０２５８】
上述のように、本実施の形態では、一般領域１１５に２つのＭＫＢ（ＭＫＢを暗号化
したＭＫＢ’およびＭＫＢ２）が記録されている。ＭＫＢ’を復号したＭＫＢは、第４の
実施の形態と同様にプレーヤー４００−２の認証および無効化に用いられる。一方、ＭＫ
Ｂ２は、コントローラー２００の認証および無効化に用いられる。
【０２５９】
また、本実施の形態では、特殊領域（共通領域１１４）はＭＫＢ復号鍵ＫＴおよびメ
ディア鍵変換鍵ＫＴ２を格納している。ＭＫＢ復号鍵ＫＴは、プレーヤー４００−２用の
ＭＫＢ復号鍵である。メディア鍵変換鍵ＫＴ２は、コントローラー２００用のメディア鍵
変換鍵である。これらの鍵は、メモリカード２６０１毎に異なっていて良い。鍵とデータ
との間の関係は次のようになっている。
【０２６０】
（１）ＭＫＢを無効化されていないデバイス鍵ＫＤで処理するとメディア鍵ＫＭが得
られる。また、ＭＫＢ２を無効化されていないデバイス鍵ＫＤ２で処理するとメディア鍵
ＫＭ２が得られる。
【０２６１】
（２）（平文の）ビデオデータをＣ、暗号化ビデオデータをＣ’とすると、ビデオデー
タＣはメディア鍵ＫＭと復号鍵Ｋｃ２で二重に暗号化されている：Ｃ’＝ＡＥＳ−Ｅ（Ｋ
ｃ２，ＡＥＳ−Ｅ（ＫＭ，Ｃ））。
【０２６２】
（３）ＭＫＢはＭＫＢ’をＭＫＢ復号鍵ＫＴで復号して得られる：ＭＫＢ＝ＡＥＳ−Ｄ
（ＫＴ，ＭＫＢ’）。
【０２６３】
（４）復号鍵Ｋｃ２はメディア鍵ＫＭ２をメディア鍵変換鍵ＫＴ２で変換して得られる
：Ｋｃ２＝ＡＥＳ−Ｇ（ＫＴ２，ＫＭ２）。
【０２６４】
（５）暗号化ビデオデータＣ’の復号過程は次の通り：
ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｄ（Ｋｃ２，Ｃ’））
＝ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｄ（Ｋｃ２，ＡＥＳ−Ｅ（Ｋｃ２，ＡＥＳ−Ｅ（ＫＭ，Ｃ
））））
＝ＡＥＳ−Ｄ（ＫＭ，ＡＥＳ−Ｅ（ＫＭ，Ｃ））
＝Ｃ。
【０２６５】
次に、図２８のように構成されたプレーヤー４００−２によるメモリカード２６０１
内のデータの再生処理について図２９を用いて説明する。図２９は、第５の実施の形態に
おける再生処理の全体の流れを示すフローチャートである。
【０２６６】
プレーヤー４００−２は、メモリカード２６０１内のコントローラー２００−２に対
して、一般領域１１５に含まれているＭＫＢ２の読み出しを指示する（ステップＳ１１０
１）。例えば、プレーヤー４００−２は、コントローラー２００−２に対して当該ＭＫＢ
２の先頭アドレスとサイズとを指定する。
【０２６７】
コントローラー２００−２は、指定された領域を含むページを半導体メモリチップ１
００から読み出し、指定された領域のデータ（即ちＭＫＢ２の値）をＭＫＢ処理部２６２
０に入力する（ステップＳ１１０２）。ＭＫＢ処理部２６２０は、コントローラー２００
−２が保持しているデバイス鍵ＫＤ２を読み出し、入力されたＭＫＢ２をデバイス鍵ＫＤ
２を用いてＭＫＢ処理し、メディア鍵ＫＭ２を導出して出力する（ステップＳ１１０３）
。
【０２６８】
次に、ＭＫＢ処理部２６２０は、ＭＫＢ処理によりメディア鍵ＫＭ２が得られたか否
かを判断する（ステップＳ１１０４）。デバイス鍵ＫＤがＭＫＢ２によって無効化されて
いた場合、ＭＫＢ処理部２６２０は正しいメディア鍵ＫＭ２を導出することができない。
この場合、ＭＫＢ処理部２６２０は、メディア鍵ＫＭ２が得られなかったと判断し（ステ
ップＳ１１０４：Ｎｏ）、エラーを出力する。
【０２６９】
メディア鍵ＫＭ２が得られた場合（ステップＳ１１０４：Ｙｅｓ）、ＭＫＢ処理部２
６２０は、メディア鍵ＫＭ２をメディア鍵変換部２６３０に送る（ステップＳ１１０５）
。メディア鍵変換部２６３０は、特殊領域（共通領域１１４）に含まれているメディア鍵
変換鍵ＫＴ２を読み出す（ステップＳ１１０６）。そして、メディア鍵変換部２６３０は
、読み出したメディア鍵変換鍵ＫＴ２でメディア鍵ＫＭ２を変換した復号鍵Ｋｃ２を生成
する（ステップＳ１１０７）。メディア鍵変換部２６３０は、生成した復号鍵Ｋｃ２をビ
デオ復号部２６４０に送信する（ステップＳ１１０８）。ビデオ復号部２６４０は、受信
した復号鍵Ｋｃの値を保持する。
【０２７０】
次に、プレーヤー４００−２は、コントローラー２００−２を介して半導体メモリチ
ップ１００の一般領域１１５からＭＫＢ’を読み出し、ＭＫＢ復号部４７０に入力する（
ステップＳ１１０９）。ＭＫＢ復号部４７０は、コントローラー２００−２を介して半導
体メモリチップ１００の特殊領域（共通領域１１４）からＭＫＢ復号鍵ＫＴを読み出す（
ステップＳ１１１０）。次に、ＭＫＢ復号部４７０は、読み出したＭＫＢ復号鍵ＫＴを用
いて、入力されたＭＫＢ’を復号し、平文のＭＫＢを得る（ステップＳ１１１１）。ＭＫ
Ｂ復号部４７０は、平文のＭＫＢをＭＫＢ処理部４２０−２に送る（ステップＳ１１１２
）。
【０２７１】
ＭＫＢ処理部４２０−２は、プレーヤー４００−２が保持しているデバイス鍵ＫＤを
読み出し、入力されたＭＫＢをデバイス鍵ＫＤを用いてＭＫＢ処理し、メディア鍵ＫＭを
導出する（ステップＳ１１１３）。
【０２７２】
次に、ＭＫＢ処理部４２０−２は、ＭＫＢ処理によりメディア鍵ＫＭが得られたか否か
を判断する（ステップＳ１１１４）。デバイス鍵ＫＤがＭＫＢによって無効化されていた
場合、ＭＫＢ処理部４２０−２は正しいメディア鍵ＫＭを導出することができない。この
場合、ＭＫＢ処理部４２０−２は、メディア鍵ＫＭが得られなかったと判断し（ステップ
Ｓ１１１４：Ｎｏ）、エラーを出力する。メディア鍵ＫＭが得られた場合（ステップＳ１
１１４：Ｙｅｓ）、ＭＫＢ処理部４２０−２は、メディア鍵ＫＭをビデオ復号部４５０に
送る（ステップＳ１１１５）。
【０２７３】
次に、コントローラー２００−２のビデオ復号部２６４０は、一般領域１１５から順
次暗号化ビデオデータ２５４１を読み出す（ステップＳ１１１６）。ビデオ復号部２６４
０は、保持している復号鍵Ｋｃ２を用いて、読み出した暗号化ビデオデータを復号する（
ステップＳ１１１７）。ビデオ復号部２６４０は、復号したビデオデータをプレーヤー４
００−２のビデオ復号部４５０に送る（ステップＳ１１１８）。
【０２７４】
ビデオ復号部４５０は、復号鍵Ｋｃを用いてビデオデータを順次復号し（ステップＳ
１１１９）、再生部４６０に送る（ステップＳ１１２０）。再生部４６０は、受信したビ
デオデータを順次再生（表示）する（ステップＳ１１２１）。
【０２７５】
メディア鍵変換鍵ＫＴ２がメモリカード２６０１毎に異なっていれば、復号鍵Ｋｃ２
もメモリカード２６０１毎に異なる。従って、メディア鍵ＫＭまたはメディア鍵変換鍵Ｋ
Ｔ２がメモリカード２６０１毎に異なっていれば、暗号化ビデオデータ自体がメモリカー
ド２６０１毎に異なる。即ち、暗号化ビデオデータがメモリカード２６０１毎に個別化さ
れることになる。
【０２７６】
このように、第５の実施の形態にかかるメモリチップでは、コンテンツに付随するＭ
ＫＢによるコントローラーの無効化（コンテンツ供給者による再生デバイスのリボーク）
と、暗号化ビデオデータのメモリカード毎の個別化（コンテンツ供給者によるコントロー
ラーのリボーク）との組み合わせ（二重暗号化）が可能となる。
【０２７７】
（第６の実施の形態）
これまでは、本発明をコンテンツ保護に適用する実施の形態を述べたが、他の産業分野
へ適用することもできる。第６の実施の形態では、スマートグリッドに適用した実施の形
態を説明する。スマートグリッドとは、原子力や火力など従来の発電に加えて、太陽光や
風力などの再生可能エネルギーを併用する際の電力品質の安定化を図るために構築されて
いる次世代電力網である。
【０２７８】
図３０は、第６の実施の形態の次世代電力網の一構成例を示す図である。次世代電力
網では、電力使用量を集計するメーター３０１０ａと、家電機器を管理するホームサーバ
であるＨＥＭＳ（Home Energy Management System）３０２０が各家庭に設置される。ま
た、商業ビルを対象として、ビル内の電気機器を管理するサーバであるＢＥＭＳ（Buildi
ng Energy Management System）３０３０がビル毎に設置される。商業ビルには、メータ
ー３０１０ａと同様のメーター３０１０ｂが設置される。以下では、メーター３０１０ａ
および３０１０ｂを単にメーター３０１０という。
【０２７９】
メーター３０１０は、コンセントレータとよばれる中継器（コンセントレータ３０４
０）によって数台ごとにまとめられ、通信網を介してメーターデータ管理システムである
ＭＤＭＳ（Meter Data Management System）３０５０と通信する。ＭＤＭＳ３０５０は、
各家庭のメーター３０１０から一定の間隔で電力使用量を受信して記憶する。エネルギー
管理システムであるＥＭＳ（Energy Management System）３０６０は、ＭＤＭＳ３０５０
に集まった複数の家庭の電力使用量、或いは、電力系統に設置されたセンサからの情報に
基づいて、各家庭のメーター３０１０やＨＥＭＳ３０２０に対して電力使用を抑制するよ
う要求するなどの電力制御を行う。また、ＥＭＳ３０６０は、遠隔端末ユニットであるＲ
ＴＵ（Remote Terminal Unit）３０７１に接続された太陽光発電や風力発電などの分散電
源３０８０、同じくＲＴＵ３０７２に接続された蓄電装置３０９０、および、ＲＴＵ３０
７３に接続された発電側との間を制御する送配電制御装置３１００を制御し、グリッド全
体の電圧および周波数を安定化するための制御を行う。
【０２８０】
図３１は、メーター３０１０の構成例を示すブロック図である。メーター３０１０は
、ＭＤＭＳ３０５０と暗号通信を行う。通信経路上にコンセントレータ３０４０が存在す
るが、コンセントレータ３０４０は暗号通信を中継するのみである。ＭＤＭＳ３０５０と
メーター３０１０とは共有鍵Ｋを保持しており、当該共有鍵Ｋを用いて暗号通信を行う。
【０２８１】
例えば、計測部３０１１に接続する通信部３０１２が、共有鍵Ｋを用いて計測値を暗
号化してＭＤＭＳ３０５０に送る。ＭＤＭＳ３０５０は、保持する共有鍵Ｋを用いて暗号
化された計測値を復号する。これにより、通信路上で通信が傍受されたとしても、傍受者
は計測値を知ることができない。或いは、ＭＤＭＳ３０５０から計測部３０１１に制御用
コマンドが送られる場合がある。例えば、計測の中止や開始、計測データの送付指示など
の制御コマンドである。ＭＤＭＳ３０５０は、共有鍵Ｋを用いて、制御コマンドを暗号化
し、暗号化した制御コマンドをメーター３０１０の通信部３０１２に送信する。通信部３
０１２は、共有鍵Ｋを用いて暗号化制御コマンドを復号し、制御コマンドを計測部３０１
１に送る。或いは、半導体メモリチップ１００のメモリ１１０の一般領域に電力使用量デ
ータが格納されており、通信部３０１２は、共有鍵Ｋを用いて当該電力使用量データを暗
号化し、暗号化電力使用量データをＭＤＭＳ３０５０に送信する。ＭＤＭＳ３０５０は、
共有鍵Ｋを用いて当該暗号化電力使用量データを復号する。
【０２８２】
メーター３０１０において、共有鍵Ｋは半導体メモリチップのメモリの特殊領域に格
納される。共有鍵Ｋは、定期的に或いは随時更新されることが望ましい。更新用の共有鍵
をＫ’とする。ＭＤＭＳ３０５０は、更新用の共有鍵Ｋ’を半導体メモリチップ１００の
メモリ１１０の書き込み特殊領域に書き込む。その為には既に述べたように、半導体メモ
リチップ１００がＭＤＭＳ３０５０によって認証される必要がある。また、メーター３０
１０の通信部３０１２がコントローラー２００を介して（更新された）共有鍵Ｋ’を読み
出すには、コントローラー２００が半導体メモリチップ１００によって認証される必要が
ある。共有鍵の更新と、更新された共有鍵の利用を通じて、結果的に、半導体メモリチッ
プ１００を使用するメーター３０１０全体が、ＭＤＭＳ３０５０によって認証されること
となる。
【０２８３】
ＭＤＭＳ３０５０は、例えば、図１４の書き込み装置３００として、半導体メモリチ
ップ１００の書き込み特殊領域に更新用の共有鍵Ｋ’を書き込む。また、メーター３０１
０のコントローラー２００は、例えば、図７の暗号鍵共有部２１０−２と図９の読出制御
部２２０−２とを具備している。
【０２８４】
このように、第６の実施の形態では、コンテンツ保護と異なる分野である次世代電力
網で用いられるデータに対して、データの不正利用を防止することができる。
【０２８５】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階では
その要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実
施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成
することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を
削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い
。
【符号の説明】
【０２８６】
１Ｍ  半導体メモリチップ、２Ｍ  利用装置、４Ｍ  書き込み装置、１１Ｍ  暗号鍵
共有部、１２Ｍ  送出制御部、１３Ｍ  暗号鍵共有部、１４Ｍ  データ変換部、１５Ｍ  
ＥＣＣ格納部、２１Ｍ  暗号鍵共有部、２２Ｍ  読出制御部、２３Ｍ  再生手段、４１Ｍ
暗号鍵共有部、４２Ｍ  データ送信部、１１２Ｍ  読み出し特殊領域、１１３Ｍ  書き
込み認証領域、１１４Ｍ  共通領域
【図１ＡＡ】
0005395937.tif 000002
【図１ＡＢ】
0005395937.tif 000003
【図１Ｂ】
0005395937.tif 000004
【図１Ｃ】
0005395937.tif 000005
【図１Ｄ】
0005395937.tif 000006
【図１ＥＡ】
0005395937.tif 000007
【図１ＥＢ】
0005395937.tif 000008
【図１Ｆ】
0005395937.tif 000009
【図１Ｇ】
0005395937.tif 000010
【図１Ｈ】
0005395937.tif 000011
【図１Ｊ】
0005395937.tif 000012
【図１Ｋ】
0005395937.tif 000013
【図１Ｌ】
0005395937.tif 000014
【図１Ｍ】
0005395937.tif 000015
【図１Ｎ】
0005395937.tif 000016
【図１Ｐ】
0005395937.tif 000017
【図１Ｑ】
0005395937.tif 000018
【図１Ｒ】
0005395937.tif 000019
【図１Ｓ】
0005395937.tif 000020
【図１ＴＡ】
0005395937.tif 000021
【図１ＴＢ】
0005395937.tif 000022
【図１ＴＣ】
0005395937.tif 000023
【図１ＴＤ】
0005395937.tif 000024
【図１ＴＥ】
0005395937.tif 000025
【図１ＴＦ】
0005395937.tif 000026
【図１ＴＧ】
0005395937.tif 000027
【図１ＴＨ】
0005395937.tif 000028
【図１ＴＪ】
0005395937.tif 000029
【図１ＴＫ】
0005395937.tif 000030
【図１ＴＬ】
0005395937.tif 000031
【図１ＴＭ】
0005395937.tif 000032
【図１ＵＡ】
0005395937.tif 000033
【図１ＵＢ】
0005395937.tif 000034
【図１ＵＣ】
0005395937.tif 000035
【図１Ｖ】
0005395937.tif 000036
【図１ＷＡ】
0005395937.tif 000037
【図１ＷＢ】
0005395937.tif 000038
【図１ＸＡ】
0005395937.tif 000039
【図１ＸＢ】
0005395937.tif 000040
【図１ＹＡ】
0005395937.tif 000041
【図１ＹＢ】
0005395937.tif 000042
【図２Ａ】
0005395937.tif 000043
【図２Ｂ】
0005395937.tif 000044
【図３Ａ】
0005395937.tif 000045
【図３Ｂ】
0005395937.tif 000046
【図４Ａ】
0005395937.tif 000047
【図４Ｂ】
0005395937.tif 000048
【図５】
0005395937.tif 000049
【図６】
0005395937.tif 000050
【図７】
0005395937.tif 000051
【図８】
0005395937.tif 000052
【図９】
0005395937.tif 000053
【図１０】
0005395937.tif 000054
【図１１Ａ】
0005395937.tif 000055
【図１１Ｂ】
0005395937.tif 000056
【図１２Ａ】
0005395937.tif 000057
【図１２Ｂ】
0005395937.tif 000058
【図１２Ｃ】
0005395937.tif 000059
【図１２Ｄ】
0005395937.tif 000060
【図１２Ｅ】
0005395937.tif 000061
【図１２Ｆ】
0005395937.tif 000062
【図１２Ｇ】
0005395937.tif 000063
【図１２Ｈ】
0005395937.tif 000064
【図１２Ｊ】
0005395937.tif 000065
【図１２Ｋ】
0005395937.tif 000066
【図１３】
0005395937.tif 000067
【図１４】
0005395937.tif 000068
【図１５】
0005395937.tif 000069
【図１６】
0005395937.tif 000070
【図１７Ａ】
0005395937.tif 000071
【図１７Ｂ】
0005395937.tif 000072
【図１７Ｃ】
0005395937.tif 000073
【図１７Ｄ】
0005395937.tif 000074
【図１８】
0005395937.tif 000075
【図１９】
0005395937.tif 000076
【図２０】
0005395937.tif 000077
【図２１】
0005395937.tif 000078
【図２２】
0005395937.tif 000079
【図２３】
0005395937.tif 000080
【図２４】
0005395937.tif 000081
【図２５】
0005395937.tif 000082
【図２６】
0005395937.tif 000083
【図２７】
0005395937.tif 000084
【図２８】
0005395937.tif 000085
【図２９】
0005395937.tif 000086
【図３０】
0005395937.tif 000087
【図３１】
0005395937.tif 000088