説明

メモリチップ

【課題】悪意のある書き込み装置からのデータ書き込みを防止することを目的とする。
【解決手段】外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコント
ローラーと接続されるメモリチップであって、予め定められたデータの記憶領域である第
1領域を含むメモリと、外部装置がデータの変換に用いる秘密鍵に対応する公開鍵を記憶
する鍵記憶部と、秘密鍵で変換されたデータである暗号化データをコントローラーから受
信し、公開鍵を用いて暗号化データを変換した変換データを生成する変換部と、変換デー
タを第1領域に書き込む書込部と を備えることを特徴とするメモリチップ。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、メモリチップに関する。
【背景技術】
【0002】
半導体ダイ上に形成された半導体メモリチップは、通常単体で使用されることは無く
、外部のコントローラーと電気的に接続されて使用される。外部装置(書き込み装置や読
み出し・再生装置など)から半導体メモリチップ上のメモリ内のデータへのアクセスはコ
ントローラーを介して行われる。コントローラーと半導体メモリチップを組み合わせてメ
モリ製品として販売されることもある。例えば、SDメモリカードのような商品が、その
一例である(非特許文献1参照)。また、半導体メモリチップとコントローラーとを樹脂
で接着したものをSIP(System In Package)として提供する場合もある。また、オ
ーディオ・プレーヤーなどで音楽データの格納用に半導体メモリチップが使用される場合
、コントローラーが半導体メモリチップとは別の半導体の一部に組み込まれていることも
ある。いずれの場合も、半導体メモリチップとコントローラーとが直接接続されており、
半導体メモリチップのメモリ内のデータへのアクセスは必ずコントローラーを介して行わ
れる。
【0003】
コントローラーは、半導体メモリチップのデータへのアクセスを仲介するだけではな
く、セキュリティ機能を提供する場合がある。例えば、SDメモリカードの場合、コント
ローラーに著作権保護機能が導入されている。コントローラーは、プレーヤーや書き込み
装置などのホスト機器を認証し、認証に成功した場合に限って、半導体メモリチップに格
納されているデータをホスト機器に転送する。また、コントローラーは、認証に成功した
場合に限って、書き込み装置から受信したデータを半導体メモリチップに記録する。これ
により、例えば、認証されない不正なプレーヤーはメモリカード内のデータにアクセスす
ることができない。従って、メモリカード内のデータが不正なプレーヤーによって盗まれ
ることから保護される。
【0004】
メモリカードのコントローラーによって著作権保護機能が実装されている場合にも、
更なる攻撃が存在する。例えば、メモリカードの中にビデオデータが格納されているもの
とする。メモリカードのコントローラーが有する著作権保護機能によって、当該メモリカ
ードが格納するビデオデータは不正なプレーヤーによる読み出しから保護される。従って
、不正なプレーヤーを用いた当該ビデオデータの不正コピーから守られている。
【先行技術文献】
【非特許文献】
【0005】
【非特許文献1】4C Entity, LLC. "Content Protection for Recordable Media Specification, SD Memory Card Book, Common Part", Revision 0.961, May. 3, 2007.
【発明の概要】
【発明が解決しようとする課題】
【0006】
書き込み対象のデータは、半導体メモリチップに格納(書き込み)され、読み出し装
置によって読み出される。
【0007】
この書き込み対象のデータを読み出し装置で読み出して利用する為には、このデータ
の正統性が保証されている事が望ましい。
【0008】
本発明は、悪意のある書き込み装置からのデータ書き込みを防止することを目的とす
る。
【課題を解決するための手段】
【0009】
上述した課題を解決するために、本発明の一態様にかかるメモリチップは、データを
書き込む書き込み装置とデータを読み出す読み出し装置と接続されるメモリチップであっ
て、予め定められたデータの記憶領域である第1領域を含むメモリと、読み出し装置に記
憶される第2鍵情報を受け付け、第3鍵を生成する第2の暗号鍵生成部と、メモリに記憶
されたデータを第3鍵で暗号化した第2の暗号化データを読み出し装置に送信する送出部
とを有し、第2の暗号化データは、読み出し装置が受け付け、読み出し装置が有する第3
鍵に対応する第4鍵で復号されることを特徴とするメモリチップ。
【0010】
また、本発明の別の態様にかかるメモリチップは、外部装置の要求に応じてデータの
読み出しおよび書き込みを制御するコントローラーと接続されるメモリチップであって、
予め定められたデータの記憶領域である第1領域を含むメモリと、外部装置がデータの
変換に用いる秘密鍵に対応する公開鍵を記憶する鍵記憶部と、特殊領域に書き込む書込デ
ータをコントローラーから受信し、公開鍵を用いて書込データを変換した変換データを生
成する変換部と、変換データを特殊領域に書き込む書込部とを備えることを特徴とする。
【発明の効果】
【0011】
本発明によれば、悪意のある書き込み装置からのデータ書き込みを防止することがで
きるという効果を奏する。
【図面の簡単な説明】
【0012】
【図1AA】トラスト・チェインの一例を示す図。
【図1AB】トラスト・チェインのデータの流れを示す図。
【図1B】第1の実施の形態の半導体メモリチップ、コントローラー、書き込み装置のブロック図。
【図1C】第1の実施の形態の詳細化したブロック図。
【図1D】第1の実施の形態の書き込みの流れを示すフローチャート。
【図1EA】具体的な利用形態のデータの流れを示す図。
【図1EB】具体的な利用形態のトラスト・チェインの一例を示す図。
【図1F】具体的な利用形態の詳細化したブロック図。
【図1G】暗号鍵共有部の構成例を示す図。
【図1H】暗号鍵共有部の動作を示すフローチャート。
【図1J】送出制御部と読出制御部の構成を示すブロック図。
【図1K】送出制御部と読出制御部の動作を示すフローチャート。
【図1L】ゲームプログラム実行時の動作を示すフローチャート。
【図1M】MKBを利用する形態の構成を示すブロック図。
【図1N】MKBを利用する形態の暗号鍵共有部の構成を示すブロック図。
【図1P】MKBを利用する形態のデータ送信部とデータ変換部のブロック図。
【図1Q】MKBを利用する形態の動作を示すフローチャート。
【図1R】半導体メモリチップのデータ変換部の構成の一例を示すブロック図。
【図1S】データ変換部の一例の動作を示すフローチャート。
【図1TA】電子書籍データの構造を示す図。
【図1TB】半導体メモリパッケージと書き込み装置の構成例を示すブロック図。
【図1TC】書き込み対象ページの一例の構成を示す図。
【図1TD】暗号鍵共有部の構成例を示す図。
【図1TE】第2データ変換部の構成例を示す図。
【図1TF】メモリチップ・インターフェースに送信されるデータ構成例を示す図。
【図1TG】第1変換部に送信されるデータの構成例を示す図。
【図1TH】第1データ変換部の構成例を示す図。
【図1TJ】データ送出部の構成例を示す図。
【図1TK】メモリチップ・インターフェースに送信されるデータの作成を示す図。
【図1TL】書き込み動作を示すフローチャート。
【図1TM】鍵を共有する手続き例を示すフローチャート。
【図1UA】スマートグリッドに適用した場合のトラスト・チェインの例を示す図。
【図1UB】スマートグリッドに利用した場合のデータの流れの例を示す図。
【図1UC】スマートグリッドに利用した場合のデータの流れの例を示す図。
【図1V】半導体メモリチップ、MDMS、メーターの構成例を示す図。
【図1WA】暗号鍵共有部の構成例を示す図。
【図1WB】送出制御部と読出制御部の構成例を示す図。
【図1XA】半導体メモリチップとメーターの暗号鍵共有部の構成例を示す図。
【図1XB】データ変換部とデータ送信部の構成例を示す図である。
【図1YA】MDMSの読み出し手順の例を示す図。
【図1YB】MDMSの読み出し手順の例を示す図。
【図2A】トラスト・チェインの一例を示す図。
【図2B】第2の実施の形態の半導体メモリチップとコントローラーのブロック図。
【図3A】暗号鍵共有部の構成例を示す図。
【図3B】メディア鍵を更新する仕組みの一例を示す図。
【図4A】第2の実施の形態における暗号鍵共有処理の全体の流れを示すフローチャート。
【図4B】メディア鍵を更新する動作例を示す図。
【図5】送出制御部と読出制御部の構成例を示す図。
【図6】第2の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図7】暗号鍵共有部の変形例を示す図。
【図8】第2の実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャート。
【図9】送出制御部と読出制御部の変形例を示す図。
【図10】第2の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図11A】送出制御部と読出制御部の別の変形例を示す図。
【図11B】第2の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示すフローチャート。
【図12A】公開鍵で認証する場合の半導体メモリチップの暗号鍵共有部の構成例を示す図。
【図12B】公開鍵で認証する場合のコントローラーの暗号鍵共有部の構成例を示す図。
【図12C】暗号鍵共有部の動作例を示すフローチャート。
【図12D】半導体メモリチップの送出制御部の構成例を示す図。
【図12E】コントローラーの送出制御部の構成例を示す図。
【図12F】コントローラーに送信するデータ形式例を示す図。
【図12G】半導体メモリチップとコントローラーの送出制御部の動作例を示す図。
【図12H】半導体メモリチップとコントローラーの送出制御部の動作例を示す図。
【図12J】利用装置が半導体メモリチップに認証される場合の構成例を示す図。
【図12K】利用装置が半導体メモリチップに認証される場合のトラスト・チェインを示す図。
【図13】書き込み特殊領域に書き込みを行う様子を示す図。
【図14】書込制御部およびデータ変換部の構成例を示す図。
【図15】第2の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図16】最小限のデータのみ暗号化および復号する構成でのデータの変化を表す図。
【図17A】書込制御部およびデータ変換部の変形例を示す図。
【図17B】書き込み装置がコントローラーを介して書き込む構成例を示す図。
【図17C】データを書き込む動作例を示すフローチャート。
【図17D】データを書き込む動作例を示すフローチャート。
【図18】鍵記憶部のデータ構造の一例を示す図。
【図19】変形例における書き込み処理の全体の流れを示すフローチャート。
【図20】バージョン情報の変形例を示す図。
【図21】第3の実施の形態の半導体メモリチップのブロック図。
【図22】第3の実施の形態の受信制御部および書き込み装置の構成例を示す図。
【図23】第3の実施の形態における書き込み処理の全体の流れを示すフローチャート。
【図24】第3の実施の形態のデータ変換部の構成例を示す図。
【図25】第3の実施の形態におけるデータ読出処理の全体の流れを示すフローチャート。
【図26】第4の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図27】第4の実施の形態における再生処理の全体の流れを示すフローチャート。
【図28】第5の実施の形態のプレーヤーおよびメモリカードのブロック図。
【図29】第5の実施の形態における再生処理の全体の流れを示すフローチャート。
【図30】第6の実施の形態の次世代電力網の一構成例を示す図。
【図31】メーターの構成例を示すブロック図。
【発明を実施するための形態】
【0013】
以下に添付図面を参照して、この発明にかかるメモリチップの好適な実施の形態を詳
細に説明する。
【0014】
(第1の実施の形態)
第1の実施の形態にかかるメモリチップ(半導体メモリチップ)は、図1AAのように
読出し装置が半導体メモリチップを認証し、かつ、半導体メモリチップが書き込み装置を
認証する。
【0015】
データの流れは図1ABに示すように、認証の方向と逆向きである事に注意する。つま
り、認証された書き込み装置は認証した半導体メモリチップにデータを書き込む。読み出
し装置は半導体メモリチップに記憶されたデータを読み出す。このように、本実施の形態
の半導体メモリチップは、図1AAのトラスト・チェインを構築する目的とする。
【0016】
図1Bは、書き込み装置30が、コントローラー20を介して、半導体メモリチップ
10の書き込み認証領域11−3に書き込みを行う場合のブロック図である。
【0017】
書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メモリチッ
プから認証された書き込み装置のみが正しいデータを記録する事ができるメモリ領域であ
る。或いは、書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メ
モリチップから認証された書き込み装置が書き込んだデータのみが正しく読み出し得るよ
うなメモリ領域である。
【0018】
図1Bは、コントローラー20に書き込み装置30が接続されて、半導体メモリチッ
プ10の書き込み認証領域11−3に書き込みを行う様子を示す図である。ただし、図1
Bでは、書き込み処理に関わる部分のみが図示されている。
【0019】
まず、書き込み装置30が、書き込みが要求されたデータ(書込データ)を暗号化し
た暗号化データ、書込先ページの指定、および書込データに対するECCをコントローラ
ー20に送信する。コントローラー20の書込制御部23は、暗号化データとECCとを
半導体メモリチップ10のデータ変換部14に送出する。データ変換部14は、暗号化デ
ータを変換(復号)し、得られた変換データ(書込データ)を書き込み特殊領域11−3
に書き込むとともに、ECCを符号記憶部11−1に書き込む。
【0020】
図1Cは、書き込み装置30とデータ変換部14の構成をより詳細に示した図である
。書き込み装置30、コントローラー20の書込制御部23、および、半導体メモリチッ
プ10のデータ変換部14の構成例について図1Cを用いて説明する。図1Cに示すよう
に、書き込み装置30は、ECC生成部31と、鍵記憶部32と、暗号化部33と、デー
タ送信部34とを備えている。
【0021】
ECC生成部31は、書き込むべきデータとして入力された書込データのECCを生
成する。鍵記憶部32は、書込データの変換に用いるデータ変換鍵(第1鍵)を記憶する
。本実施の形態では、鍵記憶部32は、公開鍵方式の秘密鍵Ksをデータ変換鍵として記
憶している。この秘密鍵Ksは、半導体メモリチップ10の鍵記憶部141(後述)が記
憶するデータ変換鍵(第2鍵)である公開鍵Kpに対応する秘密鍵である。
【0022】
なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では
、書き込み装置30がデータ変換鍵(秘密鍵Ks)を用いて書込データを暗号化し、半導
体メモリチップ10が対応するデータ変換鍵(公開鍵Kp)で書込データを復号してメモ
リ110に記憶する場合を例に説明する。書き込み装置30がデータ変換鍵(第1鍵)を
用いてデータを変換し、半導体メモリチップ10が、第1鍵に対応するデータ変換鍵(第
2鍵)を用いて変換後のデータを変換するものであれば、これ以外の変換方法を適用して
もよい。例えば、書き込み装置30が第1鍵を用いて復号に相当する変換処理を実行し、
半導体メモリチップ10が、第1鍵に対応する第2鍵を用いて暗号化に相当する変換処理
を実行するように構成してもよい。
【0023】
暗号化部33は、秘密鍵Ksを用いて書込データを暗号化する。また、暗号化部33
は、秘密鍵Ksを用いてECCを暗号化した符号(変換符号)を生成する。なお、以下で
は、暗号化された書込データを暗号化データといい、ECCを暗号化した変換符号を暗号
化ECCという場合がある。データ送信部34は、暗号化データと、暗号化ECCと、書
込先ページの指定とをコントローラー20の書込制御部23に送信する。
【0024】
次に、コントローラー20の書込制御部23の構成例について説明する。図1Cに示
すように、書込制御部23は、データ転送部23−1を備えている。データ転送部23−
1は、暗号化データと、暗号化ECCと、書込先ページ指定とを受信し、これらの情報を
半導体メモリチップ10のデータ変換部14に送信する。
【0025】
次に、データ変換部14の構成例について説明する。図1Cに示すように、データ変
換部14は、鍵記憶部14−1と、復号部14−2と、書込部14−3とを備えている。
【0026】
鍵記憶部14−1は、公開鍵方式の公開鍵Kpを記憶する。復号部14−2は、鍵記
憶部14−1の公開鍵Kpを用いて暗号化データと暗号化ECCとを復号する。なお、暗
号化データから復号された書込データが、変換データに相当する。書込部14−3は、復
号された書込データをメモリ11上の書き込み認証領域11−3の指定されたページに記
録する。また、書込部14−3は、復号されたECCをメモリ11の符号記憶部11−1
に格納する。
【0027】
図1Dに書き込み時の動作を示す。まず、データDと書き込み先ページの指定が、書
き込み装置30に入力される(ステップS4601)。データDはECC生成部31を通過し
、そこでECCが生成される。データDと当該データDのECCは暗号化部33に送られる(ステ
ップS4602)。暗号化部33は鍵格納部32から秘密鍵Ksを取得する(ステップS4
603)。暗号化部33は、前記秘密鍵Ksを用いて、データDとECCとを、それぞれ暗号化
し、暗号化データD’と暗号化ECCとを得る(ステップS4604)。暗号化部33は、前
記暗号化データD’と暗号化ECCとをデータ送信部34に送る(ステップS4605)。デ
ータ送信部34は、コントローラーの書き込み制御部23に、暗号化データD’と書き込
み先ページ指定、および、暗号化ECCを送信する(ステップS4606)。書き込み制御
部23のデータ転送部23−1が、暗号化データD’と書き込み先ページ指定、および、
暗号化ECCを、データ変換部14に転送する(ステップS4607)。データ変換部14
の復号部14−2が、前記暗号化データD’と書き込み先ページ指定、および、暗号化ECC
を受信する。復号部4142は、鍵記憶部14−1から公開鍵Kpを取得する(ステップS
4608)。当該公開鍵Kpは、前記鍵記憶部32が格納している秘密鍵Ksに対応するもの
である。復号部14−2は、前記公開鍵Kpを用いて、暗号化データD’と暗号化ECCとをそ
れぞれ復号し、データDとECCとを得る(ステップS4609)。復号部14−2は書込部
14−3に、書込先ページ指定とデータD、ECCを送る。書込部14−3が、半導体メモリ
チップの(書き込み認証領域に含まれる)指定された書込先ページにデータDを記録する
と共に、ECCを符号記憶部の然るべき場所(前記指定された書き込み先ページに対応する
場所)に記録する(ステップS4610)。
【0028】
本実施形態の発明のゲーム機器における利用について述べる。図1EAに、本発明の
半導体メモリチップの一応用例を示す。本発明の半導体メモリチップ10Eはゲームカセ
ット1に搭載されている。書き込み装置30Eは、当該ゲームカセット1Eの製造段階で
当該ゲームカセット1Eにゲームデータ(プログラムや動画などゲーム実行に必要なデー
タ)を記録する。ゲームカセット1Eと書き込み装置はインターネットなどを経由して接
続されていても良い。また、ゲームカセット1Eの利用時には、ゲームカセット1Eは書
き込み装置と切り離されて、ゲーム機に接続される。ゲーム機2EはCPUなどを含むSoC(
System on Chip)50Eを搭載している。ここではSoC50Eとしたが、一般にCPUを含む
チップセットとして良い。SoC50Eは、半導体メモリチップ10Eに記録されているゲ
ームデータを読み出し、プログラムを実行する。図1EAにおける矢印は、データの流れ
を示している。一方、図1EBには、図1EAにおける認証の方向を示す。図1EAと図
1EBにおいて、コントローラー20Eは、電気的にデータを中継する働きを果たしてい
る。コントローラー20Eが、データを論理的に加工する事はなく、認証の対象になる事
もない。
【0029】
上記のような書き込み装置と半導体メモリチップ10Eの認証を実現する為に、半導
体メモリチップ10上Eに、新たに書き込み認証領域11−3Eという領域を儲ける。書
き込み認証領域11−3Eとは、予め定められたメモリ領域であって、当該半導体メモリ
チップ10Eから認証された書き込み装置30Eのみが正しいデータを記録する事ができ
るメモリ領域である。或いは、書き込み認証領域11−3Eとは、予め定められたメモリ
領域であって、当該半導体メモリチップ10Eから認証された書き込み装置30Eが書き
込んだデータのみが正しく読み出し得るようなメモリ領域である。以下に、書き込み認証
領域11−3Eの具体的な構成方法を述べる。
【0030】
書き込み認証領域11−3Eに正しく書き込む為には、書き込み装置30が、半導体
メモリチップ10Eが保持している公開鍵に対応する秘密鍵を保持している必要がある。
即ち、半導体メモリチップ10Eから認証された書き込み装置30Eのみが、書き込み認
証領域11−3Eに正しいデータを書き込む事ができる。この事により、書き込み装置3
0Eから半導体メモリチップ10Eへのデータの流れ(図1EA参照)に伴って、半導体
メモリチップ10Eから書き込み装置30Eへの認証(図1EB参照)を確立する事がで
きる。
【0031】
図1Fは、本発明の一利用例を示すブロック図である。まず、半導体メモリチップ1
1Eの機能の概要について説明する。図1Fに示すように、半導体メモリチップ11Eは
、メモリ11−2Eと、暗号鍵共有部12Eと、送出制御部13Eと、を備えている。
【0032】
メモリ11Eは、各種データを記憶する記憶部である。メモリ11Eは、例えば、N
AND型フラッシュメモリなどにより構成できる。なお、メモリ1E1はこれに限られず
、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体
メモリを適用することができる。メモリ11Eは、符号記憶部11−1Eと、読み出し特
殊領域11−2Eと、書き込み認証領域11−3Eと、共通領域11−4Eと、一般領域
11−5Eとを備えている。符号記憶部11−1Eは、書き込み装置30Eから書き込み
が要求されたデータのエラー訂正符号(ECC:エラーコレクションコード)を記憶する
。なお、符号記憶部11−1Eは、メモリ11Eの外部にメモリ11Eと独立の記憶部と
して備えてもよい。
【0033】
図1Fでは、読み出し特殊領域11−2Eおよび書き込み認証領域11−3Eのそれ
ぞれに、共通領域11−4E以外の領域が含まれる例が示されているが、少なくとも共通
領域11−4Eが存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域1
1−2Eと書き込み認証領域11−3Eとが一致(すなわち読み出し特殊領域11−2E
と書き込み認証領域11−3Eとがいずれかも共通領域11−4Eと一致)するように構
成してもよい。一般領域11−5Eとは、送出制御部13Eを介さずに、コントローラー
20から直接書き込みおよび読み取りが可能な領域を表す。暗号鍵共有部12Eは、ゲー
ム機2Eとの間で共有する暗号鍵を保持または生成する。送出制御部13Eは、メモリ1
1から読み出したデータをゲーム機2Eに送出する処理を制御する。次に、コントローラ
ー20Eの機能の概要について説明する。コントローラー20Eは、一般領域読出部24
Eを備えている。一般領域読出部24Eは、一般領域11−5Eからのデータの読み出し
を制御する。すなわち、一般領域11−5Eからデータを読み出す場合、読み出し装置は
、コントローラー20Eの一般領域読出部24Eに対して、読み出し対象となるページの
指定を入力する。次に、ゲーム機2Eの機能の概要について説明する。ゲーム機2Eは、
暗号鍵共有部51E、読出制御部52E、プログラム復号部53E、プログラム実行部5
4Eを有している。暗号鍵共有部51Eは、半導体メモリチップ10Eとの間で共有する
暗号鍵を保持または生成する。読出制御部52Eは、読み出し装置および再生装置などの
外部装置(図示せず)からの要求に応じて、半導体メモリチップ10Eの共通領域11−
4Eからデータを読み出す処理を制御する。プログラム復号部53Eは、読出し制御部5
2Eからプログラム暗号鍵を取得し、半導体メモリチップから一般領域読出部24Eが読
み出したゲームプログラムの一部とデータの一部を復号する。プログラム復号部53Eは
、ゲームプログラムとデータとをプログラム実行部54Eに送る。プログラム実行部54
Eは、プログラム復号部53Eが復号したプログラムを実行する。
【0034】
図1Gは、図1Fの半導体メモリチップとSoCそれぞれの暗号鍵共有部の構成を示す
ブロック図である。図1Gに示すように、暗号鍵共有部12Eは、メディア鍵を表すKM
12−1E(以下、メディア鍵KMという)と、MKB(Media Key Block)12−2
Eとを保持している。MKB12−2Eについては、例えば非特許文献1に記載されてい
る。また、暗号鍵共有部51Eは、デバイス鍵を表すKD51−2Eを保持している。ま
た、暗号鍵共有部51Eは、MKB読み取り部51−1Eと、MKB処理部51−3Eと
、を備えている。MKB読み取り部51−1Eは、半導体メモリチップ10Eの暗号鍵共
有部12EからMKB12−2Eを読み出す。MKB処理部51−3Eは、読み出された
MKBをデバイス鍵KD51−2Eを用いて処理することによりメディア鍵KMを導出す
るMKB処理を実行する。
【0035】
図1Hに、図1Gの暗号鍵共有部の動作を示す。SoCの暗号鍵共有部51EのMKB読み
取り部51−1Eが、半導体メモリチップ10Eの暗号鍵共有部12Eが保持するMKB1
2−2Eを読み出す(ステップS4101)。MKB読み取り部51−1Eが、読み取ったM
KBをMKB処理部51−3Eに送る(ステップS4102)。MKB処理部51−3Eは、デバ
イス鍵KD51−2Eを読み、MKB処理を行う(ステップS4103)。このMKB処理により
正しいメディア鍵KMが得られなかった場合、MKB処理部51−3EはSoC50Eにエラーを
通知する(ステップS4105)。エラーを受け取ったSoC50Eは以後の読み取り処理
を中止する。一方、正しいメディア鍵KMが得られた場合、MKB処理部51−3Eは、読出
し制御部52Eにメディア鍵KMを送る(ステップS4106)。また、半導体メモリチッ
プの暗号鍵共有部12がメディア鍵KM12−1Eを半導体メモリチップの送出制御部13
Eに送る(ステップS4107)。
【0036】
図1Jは、図1Fの送出制御部13Eと読出制御部52Eの構成を示すブロック図で
ある。半導体メモリチップ10Eの送出制御部13EとSoC50Eの読出制御部22Eの
構成例について図1Jを用いて説明する。図1Jに示すように、送出制御部13Eは、乱
数発生部13−1Eと、読出部13−2Eと、暗号化部13−3Eと、送出部13−4E
とを備えている。乱数発生部13−1Eは、暗号化部13−3Eの要求に応じて乱数を発
生する。読出部13−2Eは、指定された読み出し対象ページのデータと、当該データの
ECCとをメモリ11Eから読み出す。暗号化部13−3Eは、読み出されたデータをメ
ディア鍵KMを用いて暗号化する。送出部13−4Eは、暗号化されたデータ(暗号化デ
ータ)とECCとをSoC50Eのデータ受信部52−1Eに送出する。また、図1Jに示
すように、読出制御部52Eは、データ受信部52−1Eと、復号部52−2Eと、エラ
ー修復部52−3Eとを備えている。データ受信部52−1Eは、半導体メモリチップ1
0Eの送出部13−4Eから暗号化データとECCとを受信する。復号部52−2Eは、
受信された暗号化データをメディア鍵KMを用いて復号する。エラー修復部52−3Eは
、受信されたECCを用いて、復号されたデータのエラー有無のチェックおよびエラー修
復を行う。
【0037】
図1Kは、送出制御部13Eと読出制御部52Eの動作を示すフローである。読出制
御部52Eは、暗号鍵共有部51Eからメディア鍵KMを受信する(ステップS4201)
。読出制御部52Eは、当該メディア鍵KMを復号部52−2Eに入力する(ステップS4
202)。読出制御部52Eは、送出制御部13Eに、読出し対象ページの指定を送る(
ステップS4203)。読出部13−2Eが指定されたページのデータDを読み出し、暗
号化部13−3Eに入力する(ステップS4204)。読出部は更に、指定されたページ
に対応するECCを符号記憶部から読出し、暗号化部13−3Eに入力(ステップS420
5)。暗号化部13−3Eは乱数発生部13−1Eから乱数Rを受け取る(ステップS4
207)。暗号化部13−3Eは暗号鍵共有部12Eからメディア鍵KMを受け取る(ステ
ップS4208)。暗号化部13−3EはデータDと前記乱数Rとを連結し、メディア鍵KM
で暗号化。暗号化データD’を得る(ステップS4209)。送出部13−4Eが、暗号
化データD’とECCとをSoC50Eに送る(ステップS51−1)。
【0038】
SoC50Eの側では、読出し制御部52Eのデータ受信部52−1Eが、前記暗号化
データD’とECCとを受け取る(ステップS51−2)。この通信はコントローラーを介し
て行われるが、コントローラーは通信の信号を中継するのみである。次いで、データ受信
部52−1EはECCをエラー修復部52−3Eに送る(ステップS51−3)。データ受
信部は暗号化データD’を復号部52−2Eに送る(ステップS4214)。復号部52
−2Eはメディア鍵KMを用いて暗号化データD’を復号し、平文のデータDを得る(ステッ
プS4215)。復号部52−2EはデータDをエラー修復部52−3Eに送る(ステッ
プS4216)。エラー修復部52−3EがECCを用いてデータDのエラーをチェックする
(ステップS4217)。データDにエラーが無い場合、エラー修復部52−3Eはデー
タDを出力する(ステップS4219)。データDにエラーが有り修復可能である場合、エ
ラー修復部52−3EはデータDのエラーを修復後、データDを出力する(ステップ421
9)。さもなければ、エラー修復部はSoC50Eにエラーの発生を通知して(ステップS
52−2)終了する。
【0039】
さて、図1Fのシステムは、ゲームプログラム実行時に次のように動作する。図1L
を用いて説明する。ゲームプログラムの一部と、当該ゲームプログラムが利用するデータ
の一部は暗号化されており、当該暗号化の鍵(複数存在して良い。これをプログラム暗号
鍵と称する。)は、書き込み装置によって書き込み認証領域と読み出し特殊領域の交わり
の領域に書き込まれている。ゲームプログラムと当該ゲームプログラムが利用するデータ
自体は、半導体メモリチップ10Eの一般領域に記録されている。ゲーム機2Eはゲーム
プログラムを実行する為に、ゲームプログラムをSoC50Eに読み込む。SoC50Eはまず
半導体メモリチップ10EのMKBを読出し、上述の手続きによって、半導体メモリチップ
10Eとメディア鍵KMを共有する(ステップS30)。次いで上述の手続きによって、前
記プログラム暗号鍵を読出し特殊領域から送出制御部13Eを経由して読み出す(ステッ
プS4305)。前記プログラム暗号鍵は、送出制御部13Eにおいて暗号化され(ステ
ップS4304)、読出制御部52Eにおいて復号される(ステップS4305)ことに
なる。ゲーム機2Eはゲームカセット1Eからゲームプログラムと当該ゲームプログラム
が利用するデータを読み出す。読み出されたゲームプログラムとデータはSoC50Eのプ
ログラム復号部53Eに送られる(ステップS4308)。プログラム復号部53Eは、
読出制御部52Eからプログラム暗号鍵を取得し、ゲームプログラムの一部とデータの一
部を復号する(ステップS4309)。プログラム復号部53Eは、ゲームプログラムと
データとをプログラム実行部54Eに送る(ステップS4310)。プログラム実行部5
4Eが当該ゲームプログラムを実行する(ステップS4311)。
【0040】
上述の実施例においては、書き込み認証領域を構成する手段として、半導体メモリチ
ップ上の公開鍵を利用した。半導体メモリチップから書き込み装置を認証する為に、書き
込み認証領域を構成する手段としてMKBを用いても良い。その一例を図1Mに示す。MKB1
は利用装置のリボーク用であり、MKB2は書き込み装置のリボーク用である。共有鍵の処理
や利用装置の読み出し制御はゲーム機2Eの場合と同様である。
【0041】
書き込み装置と半導体メモリチップの暗号鍵共有手段の構成は図1Nに示す通りであ
る。また、書き込み装置のデータ書き込み手段と、半導体メモリチップのデータ変換手段
とを、図1Pに示す。
【0042】
各モジュールは以下のように動作する。図1Qを用いて説明する。書き込み装置4M
の暗号鍵共有部41Mが書き込み認証領域にあるMKB2を読み出す(ステップS4008001)。
暗号鍵共有部41Mは、格納しているデバイス鍵KDを用いて、MKB処理部41M2におい
てMKB2を処理し(ステップS40080021)、メディア鍵KMを得る(ステップS40080022)。MK
B2によってデバイス鍵KDがリボークされていた場合は、ここで、暗号鍵共有部41Mは書
き込み装置4Mにエラーを通知して動作を終了する(ステップS4008003)。暗号鍵共有部
41Mがメディア鍵KMを得た後、当該メディア鍵KMはデータ送信部42Mに送られる(ス
テップS4008003)。データ送信部42Mは、乱数発生部42M1において乱数Rを発生さ
せ、コンテンツ鍵と前記乱数Rとを暗号化部42M2に入力する。暗号化部42M2は、
前記メディア鍵KMを用いて、コンテンツ鍵と乱数Rとを連結したデータを暗号化する(ス
テップS4008004)。暗号化されたコンテンツ鍵(と乱数)はデータ送出部42M3に送ら
れる。データ送出部42M3は、コンテンツ鍵のECCを読み込み、暗号化コンテンツ鍵とE
CCとを半導体メモリチップに送出する(ステップS4008005)。当該暗号化コンテンツ鍵と
ECCとを、半導体メモリチップのデータ変換部14Mのデータ受信部14M1が受信する
(ステップS4008006)。データ受信部14M1は、暗号化コンテンツ鍵を復号部14M2
に送り(ステップS4008007)、ECCをECC格納部15Mに記録する(ステップS4008008)。
復号部14M2は半導体メモリチップの暗号鍵共有部13Mからメディア鍵KMを読み取り
(ステップS4008009)、当該メディア鍵KMを用いて暗号化コンテンツ鍵を復号する(ステ
ップS4008010)。復号された暗号化コンテンツ鍵は乱数Rと連結されている。復号部14
M2は、乱数Rを捨てて、暗号化コンテンツ鍵のみを、半導体メモリの書き込み認証領域
16Mに記録する(ステップS4008011)。
【0043】
書き込み特殊領域や書き込み認証領域に、鍵共有などの認証手続きを行う事無く、書
き込み装置が書き込みを事が有り得る。この場合、大きく二つの動作が考えられる。一つ
は、認証手続きを経ていないものとして、書き込みを受け付けないという動作である。こ
の場合、半導体メモリチップは書き込み装置に対してエラーを通知しても良い。もう一つ
は、書き込みを受け付け、実際に書き込みを行うという動作である。ただし、認証や鍵の
共有が行われていないので、半導体メモリチップ側は、乱数を発生し、この乱数を暗号鍵
共有部によって共有された鍵として、この乱数で書き込み装置から受信したデータを暗号
化(復号)してメモリに記録する。半導体メモリチップのデータ変換部の構成の一例を図
1Rに示す。その動作を図1Sに示す。データ受信部14M1が、書き込み装置のデータ
送信部から暗号化コンテンツ鍵とECCとを受信する(ステップS4009001)。データ受信部
14M1は、ECCをECC格納部15Mに記録。データ受信部14M1は、暗号化コンテンツ
鍵を復号部14M2に送る。復号部14M2は暗号鍵共有部から認証によって得られた共
有鍵Kを取得する。暗号鍵共有部で共有鍵Kが得られた場合は、当該共有鍵Kで暗号化コン
テンツ鍵Kを復号し、書き込み認証領域16Mに記録する(ステップS4009002)。暗号鍵
共有部から共有鍵Kが得られなかった場合、乱数発生部14M3で乱数Rを発生し復号部1
4M2に送る(ステップS4009003)。復号部14M2はコンテンツ鍵を前記乱数Rで復号
し、書き込み認証領域16Mに記録する(ステップS4009004)。無論、乱数Rは正しい共
有鍵ではないから、コンテンツ復号鍵は正しく復号できない。即ち、正当な認証を経る事
無く書き込み認証領域に記録を行えば、データは正しく記録されない。
【0044】
利用装置毎に、半導体メモリチップから読み出したコンテンツデータが区別されるよ
うにする実施形態について以下に説明する。図1Tに電子書籍データの構造を図示する。
このデータのサイズは8MBであり、8つの部分に等分されている。便宜上、各部分を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 )。
【0045】
電子書籍のリーダーは4つのデバイス鍵KD0、KD1、KD2、KD3を保持している。また、
各リーダーにはリーダーIDが割り当てられている。リーダーIDは8桁の十進数である。各
リーダーはリーダーIDを保持している。本実施例では、半導体メモリチップは8個の読出
し特殊領域を具備している。これら8個の読出し特殊領域をA00, A01, A10, A11, A20, A
21, A30, A31とする。各読出し特殊領域には予め順に、コンテンツ鍵K00, K01, K10, K11
, K20, K21, K30, K31が記録されている。更に、半導体メモリチップには割り当て規則が
記録されている。例えば、割り当て規則として数値0が記録されている。この規則は電子
書籍リーダーによって次のように解釈される。8桁のリーダーIDを2桁づつ区切り、4つ
の数値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が、そのように設計されている訳である。
【0046】
以上のように、電子書籍リーダーは、当該リーダーが保持するリーダー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は奇数である事が分かる。
【0047】
なお、割り当て規則は、MKBと共に与える事も可能である。この場合、デバイスIDは
使用する必要はなく、デバイス鍵KD0、…、KD3の組み合わせ、そのものによって、読出し
特殊領域が指定される。より具体的には、デバイス鍵KD0によってMKBを復号した時、メデ
ィア鍵KM0の他に0または1の値が出てくるようにMKBを設計する事が可能である。
【0048】
半導体メモリチップは通常インタフェースを処理するメモリチップ・インタフェース
と共にパッケージに封入されて販売されている。メモリチップ・インタフェースのI/Oの
単位が半導体メモリチップのI/Oの単位(ページ)と異なっている場合がある。ここでは
、書き込み装置が暗号化したデータを、メモリチップ・インタフェースに書き込み特殊領
域内のデータを平文で与える事無く、半導体メモリチップに正しいデータを書き込む為の
構成と手順とを開示する。メモリチップ・インタフェースは暗号化されたデータを中継す
るのみであるから、半導体メモリチップに書き込まれる正しいデータを知らない。従って
、ECCの処理を行う事ができない。ECCは書き込み装置が、書き込みデータに付与する必要
がある。
【0049】
図1TBにシステム構成を示す。半導体メモリチップ12Tはメモリチップ・インタ
フェース13Tと共に半導体メモリパッケージ11Tに封入されている。通常、半導体メ
モリチップは、このような半導体メモリパッケージの形で市販されている。半導体メモリ
チップには一つの暗号鍵共有部と二つのデータ変換部を具備している。第1暗号鍵共有部
17Tと第1データ変換部18T、及び、第2データ変換部20Tである。
【0050】
第1暗号鍵共有部17Tと第1データ変換部18Tは、半導体メモリチップが書き込
み装置25Tから認証を受ける為の仕組みである。第2データ変換部20Tはメモリチッ
プ・インタフェース13Tに与えるデータを秘匿する為の手段である。半導体メモリチッ
プ12Tの第2データ変換部20Tは入出力を持つ。前記入出力でやり取りされるデータ
のサイズは固定であり、それは例えば(2KB+32B)である。
【0051】
メモリチップ・インタフェース13Tはデータ送受信部22Tとデータ転送部29T
を具備している。メモリチップ・インタフェース13Tと書き込み装置25Tとの間で一
度にやり取りされるデータの単位は、メモリチップ・インタフェース13Tと半導体メモ
リチップ12Tとの間でやり取りされるデータの単位である(2KB+32B)とは異な
っている。前者の値は512Bである。メモリチップ・インタフェースは、データサイズ
の違いを吸収する為のバッファ23Tを具備している。当該バッファのサイズは(2KB
+32B)以上である。
【0052】
書き込み装置25Tは、第2暗号鍵共有部26Tとデータ送信部27Tを具備してい
る。これらは半導体メモリチップ12Tを認証してデータを書き込む為の仕組みである。
書き込み装置25Tがメモリチップ・インタフェースに一度に書き込むデータのサイズは
512Bである。メモリチップ・インタフェース13Tのデータ転送部29Tが前記書き
込みデータを受信し、バッファ23Tの一部である512Bを書き換える。
【0053】
半導体メモリチップの特殊領域の書き込み対象ページは図1TCのようなデータ構成
になっている。領域1〜4は、それぞれ異なるアプリケーションに対応している。即ち、
半導体メモリチップが保持する異なるデバイス鍵に対応している。即ち、領域1〜4に記
録する際に、半導体メモリチップが使用するデバイス鍵は、それぞれKD1、…、KD4である
。これらのデバイス鍵は第1暗号鍵共有部17Tに格納されている。Extra21Tには領
域1〜4に関する制御用のデータが記録される。
【0054】
図1TBの書き込み装置25Tは領域2を使用するアプリケーションの書き込み装置
である。書き込み装置25TはMKBを保持しており、当該MKBは書き込みの際に、第1暗号
鍵共有部17Tにおいて、デバイス鍵KD2を用いて処理される。前記処理の結果(デバイ
ス鍵KD2が前記MKBによって無効化されていない場合)メディア鍵KM2が得られる。同様に
デバイス鍵KD1、KD3、KD4による処理によって、メディア鍵KM1、KM3、KM4が得られるが、
KM1、…、KM4は互いに異なっていて良い。
【0055】
図1TDに図1TBの第1暗号鍵共有部18Tと第2暗号鍵共有部26Tの構成を示
す。書き込み装置25Tの第2暗号鍵共有部26Tは、半導体メモリチップ認証用のMKB
を格納している。一方、半導体メモリチップ12Tの第1暗号鍵共有部18Tはデバイス
鍵KD2を格納している。書き込み装置25Tは領域2を使用するアプリケーションの書き
込み装置であり、従って、当該領域に対応しているデバイス鍵KD2を認証する必要がある

【0056】
図1TEに第2データ変換部20Tの構成を示す。第2データ変換部20Tは二方向
にデータを転送する。一つは読出しであり、半導体メモリチップの書き込み特殊領域内の
書き込み対象ページを読出し、暗号化してメモリチップ・インタフェースに送る。この暗
号化には、暗号鍵生成部19Tが生成した一時鍵KT’が用いられる。暗号化部502Tの
動作には大きな特徴がある。暗号化部502Tは、書き込み対象ページを先頭から読出し
、一時鍵KT’で暗号化しながら、メモリチップ・インタフェースに送るのであるが、領域
2に相当する部分のデータはメモリチップ・インタフェースに転送しない。その代わりに
、例えばFFを送る。その結果、第2データ変換部からメモリチップ・インタフェースに送
信されるデータは図1TFのようになる。Extraの部分は暗号化されず、そのままメモリ
チップ・インタフェースに送られる。
【0057】
もう一つのデータの流れは書き込みである。第2データ変換部20Tの復号部503
Tは、メモリチップ・インタフェースから受け取った(2KB+32B)のデータを、暗
号鍵生成部19Tから受け取った一時鍵KT’によって復号して、第1データ変換部18T
に送る。この復号の際に用いられる一時鍵KT’は、読出しの際の暗号化で用いられた一時
鍵KT’と同一のものである。復号部503Tの動作も特徴的である。復号部503Tは、
メモリチップ・インタフェースから受信するデータを、一時鍵KT’を用いて先頭から順次
復号しながら、第1データ変換部18Tに送るのであるが、領域2に相当する部分のデー
タは(復号せず)そのまま転送する。その結果、第2データ変換部20Tから第1データ
変換部18Tに送信されるデータは図1TGのようになる。Extraの部分も復号されず、
そのままメモリチップ・インタフェースに送られる。領域2に相当する部分(オフセット
512-1023)は、データ転送部29Tが書き込んだ512Bのデータそのままである。後述
のように、このデータは、書き込み装置25Tが送信した、ECCを含む暗号化データに一
致する。
【0058】
図1THは第1データ変換部18Tの構成を示すブロック図である。第1データ変換
部18Tは、第2データ変換部20Tから書き込み用に送られて来たデータを書き込み対
象ページに書き込むが、その際、領域2に相当する部分を復号する。領域2のデータは書
き込み装置25Tによって暗号化されているからである。前記復号に用いられる一時鍵KT
は、第1暗号鍵共有部17Tが第2暗号鍵共有部26Tによって認証される際に生成され
る。第1データ変換部18Tは、領域2以外のデータは、そのまま書き込み対象ページに
書き込む。領域2のデータは、一時鍵KTによって書き込み装置25Tが暗号化する前のデ
ータに等しい。これは後述のように、データDとECCとを含むデータである。
【0059】
書き込み装置25Tのデータ送出部27Tの構成を図1TJに示す。暗号化部901
Tは512B−16B=496BのデータDを受け取る。暗号化部901Tは前記データD
の後に16Bの0を付加して512Bのデータを作り、それをECC生成部902Tに送る。
ECC生成部902Tは前記512Bのデータに関するECCを生成して、暗号化部901Tに
返す。暗号化部901Tは、前記512Bのデータの最後の3Bを、ECC生成部902T
から受信したECCで上書きする。更に、暗号化部901Tは、一時鍵KTによってデータDと
ECCとを含む512Bのデータを暗号化する。一時鍵KTは、書き込み装置25Tが半導体
メモリチップ12Tを認証する際に生成される鍵であり、半導体メモリチップ12Tの第
1暗号鍵共有部と共有されている鍵である。暗号化部901Tは496BのデータDとECC
とを暗号化したものをメモリチップ・インタフェースに送る。メモリチップ・インタフェ
ースに送られるデータが作られる様子を図1TKに示す。図1TKにおいて、表の第一行
の数値はバイトのオフセットを示す。ここでのポイントは、書き込み装置25Tだけが、
半導体メモリチップ12Tに記録されるデータDのECCを生成できるという事である。暗号
化されたデータを中継するだけのメモリチップ・インタフェースはECCの値を生成する事
はできない。従って、書き込み装置がECCを付加する必要がある。
【0060】
書き込み装置25Tが半導体メモリチップ12Tに書き込みを行う動作を図1TLに
示す。第1暗号鍵共有部17Tと第2暗号鍵共有部26Tが一時鍵KTを共有する手続きは
、本明細書の他の場所で述べたものと同様である(図1TM参照)。即ち、書き込み装置
26TがMKB読み取り部301TにMKBを送る(ステップS701201)。MKB読み取り部301
Tは前記MKBをMKB処理部302Tに送る(ステップS701202)。MKB処理部302Tは暗号
鍵共有部が格納しているデバイス鍵KD2を読み込み、前記MKBを処理する(ステップS70120
3)。デバイス鍵KD2が前記MKBによって無効化されていない場合、メディア鍵KM2が得られ
る。MKB処理部302Tはメディア鍵KM2を一時鍵生成部304Tに送る(ステップS70120
4)。一時鍵生成部304Tは乱数受信部303Tに乱数を要求する(ステップS701205)
。乱数受信部303Tは、書き込み装置の乱数送信部306Tに乱数を要求する(ステッ
プS701206)。乱数送信部306Tは乱数生成部305Tに乱数生成を要求する(ステッ
プS701207)。乱数生成部305Tは乱数Rを生成し、当該乱数Rを乱数送信部306Tに
送る(ステップS701208)。乱数送信部306Tは乱数受信部303Tに前記乱数Rを送出
する(ステップS701209)。乱数受信部303Tは前記乱数Rを受信すると、前記乱数Rを
一時鍵生成部304Tに送る(ステップS701210)。一時鍵生成部304Tはメディア鍵K
M2と前記乱数Rとを用いて一時鍵KTを生成する(ステップS701211)。一方、乱数送信部3
03Tは、前記乱数Rを一時鍵生成部307Tに送る(ステップS701212)。一時鍵生成部
307Tは第2暗号鍵共有部が格納しているメディア鍵KM2を読み込み、一時鍵生成手段
304Tと同一の手続きにより一時鍵KTを生成する(ステップS701213)。
【0061】
図1TLに戻る。第1暗号鍵共有部17Tと第2暗号鍵共有部26Tとが一時鍵KTを
共有(ステップS701102)した後、データ送信部27Tは送信用のデータD’を作り(ステ
ップS701104)、メモリチップ・インタフェース13Tに送出する(ステップS701105)。
暗号化データD’の作り方は上述した通りである。メモリチップ・インタフェースが前記
暗号化データD’を受け取ると、第2データ変換部が書き込み対象ページを読み込む(ス
テップS701107)。暗号鍵生成部19Tが一時鍵KT’を生成する(ステップS701108)。こ
れは例えば乱数である。第2データ変換部20Tは一時鍵KT’を読み込み、読み込んだ書
き込み対象ページを部分的に暗号化する(ステップS701109)。ここでの特徴ある暗号化
の方法については上述した通りである。次いで、第2データ変換部20Tが暗号化した書
き込み対象ページのデータはバッファ23Tに記録される(ステップS701111)。データ
転送部29Tがバッファ23Tの領域2に相当する部分を、書き込み装置25Tから受信
した512Bのデータで上書きする(ステップS701112)。前記データの構成は上述した
通りである。その後、バッファのデータ(先頭から2KB+32B分)は第2データ変換
部20Tに再び送られる。第2データ変換部20Tは、このデータを部分的に復号する(
ステップS701114)。ここでの特徴的な復号の方法については上述した通りである。第2
データ変換部20Tは復号したデータを第1データ変換部18Tに送る(ステップS70111
5)。第1データ変換部は受け取ったデータの領域2に相当する部分のみを一時鍵KTによ
って復号する(ステップS701116)。その結果、領域2に相当する部分は、データDとECC
とから構成される平文となる。即ち、図1TKの中段に示すデータが得られる。データ変
換部は、前記部分的に復号したバッファのデータを書き込み対象ページに記録する。
【0062】
以上のような構成と動作によって、書き込み装置25Tが意図した通りのデータが、
半導体メモリチップの書き込み対象ページに記録される。上記では、領域2を利用するア
プリケーションの書き込み動作を述べたが、他の領域を利用するアプリケーションについ
ても同様である。なお、本実施例のように書き込まれるデータについては、メモリチップ
・インタフェースはECC処理を行う事ができない。アプリケーションの利用装置がECCをチ
ェックする必要がある。半導体メモリチップが二つのデータ変換部を具備しており、一つ
は書き込み装置との認証用であり、もう一つはメモリチップ・インタフェースに対するデ
ータの秘匿を担っている事が、本実施例の特徴となっている。
【0063】
本実施形態の発明のスマートグリッドにおける利用について述べる。図1UAは、本
実施の形態の次世代電力網の一構成例を示す図である。次世代電力網では、電力使用量を
集計するメーター1Uaと、家電機器を管理するホームサーバであるHEMS(Home Ene
rgy Management System)5Uが各家庭に設置される。また、商業ビルを対象として、ビ
ル内の電気機器を管理するサーバであるBEMS(Building Energy Management System
)3Uがビル毎に設置される。商業ビルには、メーター1Uaと同様のメーター1Ubが
設置される。以下では、メーター1Uaおよび1Ubを単にメーター1Uという。
【0064】
メーター1Uは、コンセントレータとよばれる中継器(コンセントレータ4U)によ
って数台ごとにまとめられ、通信網を介してメーターデータ管理システムであるMDMS
(Meter Data Management System)2Uと通信する。MDMS2Uは、各家庭のメーター
1Uから一定の間隔で電力使用量を受信して記憶する。エネルギー管理システムであるE
MS(Energy Management System)6Uは、MDMS2Uに集まった複数の家庭の電力使
用量、或いは、電力系統に設置されたセンサからの情報に基づいて、各家庭のメーター1
UやHEMS5Uに対して電力使用を抑制するよう要求するなどの電力制御を行う。また
、EMS6Uは、遠隔端末ユニットであるRTU(Remote Terminal Unit)71Uに接続
された太陽光発電や風力発電などの分散電源80U、同じくRTU72Uに接続された蓄
電装置90U、および、RTU73Uに接続された発電側との間を制御する送配電制御装
置100Uを制御し、グリッド全体の電圧および周波数を安定化するための制御を行う。
【0065】
図1UBは、スマートグリッドシステムの一例を示す図である。スマートグリッドシ
ステムは、メーター1UとMDMS(Meter Data Management System)40Uとを有する
。メーター1Uは、半導体メモリチップ10Uと電力計測部30Uを有する。メーター1
Uは、コンセントレータとよばれる中継器(図示せず)によって数台ごとにまとめられ、
通信網を介してメーターデータ管理システムであるMDMS40Uと通信する。MDMS
40Uは、各家庭のメーター1Uから一定の間隔で電力使用量を受信して記憶する。なお
、メーター1Uは特にスマートメーターと呼ばれることもある。なお、スマートメーター
とは、電力等のエネルギー使用量を計測し、計測値を記録する。その計測値をメーター管
理システムにデータを送信またはメーター管理システムからの読み出しを受け付けるメー
ターであり、さらに系統制御側からのデマンドレスポンス信号等の制御命令を記録し、宅
内のエネルギー利用制御を行うまたは支援する高機能メーターをいう。
【0066】
メーター1Uの電力計測部30Uなどで計測されたデータは、当該メーター1Uの半
導体メモリチップ10Uに格納され、随時MDMSに送信される。この計測データをMD
MS2Uで電力供給の制御に利用する為には、このデータの正統性が保証されている事が
望ましい。これを保証する為の一つの手段は、図1UBのトラスト・チェインを構築する
事である。即ち、読出し装置であるMDMS40Uがメーター1Uの半導体メモリチップ
10Uを認証し、かつ、半導体メモリチップ10Uが当該メーター1Uの電力計測部30
Uを認証する。データの流れが認証の方向と逆向きである事に注意する(図1UC参照)
。本発明の半導体メモリチップは、図1UBのトラスト・チェインを構築する目的に利用
可能である。
【0067】
半導体メモリチップ10Uは、図1UBのようにMDMS40U(読出し装置)が半
導体メモリチップ10Uを認証し、かつ、半導体メモリチップ10Uが電力計測部30U
(書き込み装置)を認証する。データの流れは図1UCに示すように、認証の方向と逆向
きである事に注意する。つまり、認証された電力計測部30U(書き込み装置)は認証し
た半導体メモリチップ10Uにデータを書き込む。MDMS40U(読み出し装置)は半
導体メモリチップ10Uに記憶されたデータを読み出す。このように、本実施の形態の半
導体メモリチップ10Uは、図1UBのトラスト・チェインを構築する目的とする。
【0068】
図1UBのメーター1Uを含むシステムにおいて、トラストチェーンを構成する為に
は、上記他の実施形態の書き込み認証領域の他に、読出し認証領域を構成する必要がある
。読出し認証領域とは、半導体メモリチップ10U上のメモリ領域であって、半導体メモ
リチップ10UがMDMS(読出し装置)40Uから認証を受けた時に限ってデータを読
み出す事ができるメモリ領域の事である。即ち、当該領域から読み出されたデータは、正
統な半導体メモリチップ10Uが格納していたデータである。図1Vにシステムの一例を
示す。
【0069】
図1Vのシステムは、半導体メモリチップ1V、MDMS2V、メーター4Vを有す
る。半導体メモリチップ1Vは、メモリ10V、暗号鍵共有部11V、送出制御部12V
、ECC格納部13V、暗号鍵共有部15V、データ変換部16Vを有する。メモリ10
Vは、ECC格納部13Vと、読み出し認証領域112Vと、書き込み認証領域113V
と、共通領域114Vと、一般領域115Vとを備えている。メモリ10Vは、読み出し
認証領域112V、書き込み認証領域113Vを有する。読み出し認証領域112Vと書
き込み認証領域113Vに共通領域114Vを設ける。そして、当該共通領域114Vに
、データ利用に不可欠な情報を記録する。読み出し認証領域112Vおよび書き込み認証
領域113Vのそれぞれに、共通領域114V以外の領域が含まれる例が示されているが
、少なくとも共通領域114Vが存在すれば、各領域の構成は任意である。例えば、読み
出し認証領域112Vと書き込み認証領域113Vとが一致(すなわち読み出し認証領域
112Vと書き込み認証領域113Vとがいずれかも共通領域114Vと一致)するよう
に構成してもよい。
【0070】
書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メモリチッ
プから認証された書き込み装置のみが正しいデータを記録する事ができるメモリ領域であ
る。或いは、書き込み認証領域とは、予め定められたメモリ領域であって、当該半導体メ
モリチップから認証された書き込み装置が書き込んだデータのみが正しく読み出し得るよ
うなメモリ領域である。
【0071】
暗号鍵共有部11Vは、MDMS2Vが送出したMKB1を受け付ける。MKB1に
基づいてMKB処理を行う。MKB処理により生成された共有鍵(メディア鍵KM)を送
出制御部12Vに送る。具体的には、正しいメディア鍵KMが得られた場合、暗号鍵共有部
は当該メディア鍵KMを送出制御部22Vに送る。
【0072】
更に詳細には、暗号鍵共有部11Vは、MKB読み取り部11−1V、MKB処理部
11−2Vを有する。MKB読み取り部11−1Vは、MDMSからMKB1を受け取り
、MKB処理部11−2Vに送る。MKB処理部11−2Vは、MKB1とデバイス鍵K
Dから共有鍵(メディア鍵KM)を生成し、送出制御部12Vに送る。前記デバイス鍵K
Dがリボーク(無効化)されていない場合、このMKB処理によりメディア鍵KMが得ら
れる。一方、前記デバイス鍵KDが前記MKB1により無効化されている場合、メディア
鍵KMは得られず、暗号鍵共有部11Vはエラーを通知して処理を停止する。送出制御部
12Vは、共有鍵(メディア鍵KM)をMDMS2Vの読出制御部22Vに送付する。更
に詳細には、送出制御部12Vは、暗号化部12−1V、乱数発生部12−2V、データ
送出部12−3Vを有する。暗号化部12−1Vは、メディア鍵KMを受け取る。暗号化部
12−1Vは、読出し認証領域14Vからデータ(例えば電力測定値)を読出し、乱数発
生部12−2Vから乱数Rを受け取る。暗号化部12−1Vは、データ(例えば電力測定
値)と乱数Rとを連結し、メディア鍵KMで暗号化する。暗号化部12−1Vは、暗号化し
たデータ(例えば電力測定値)を、データ送出部12−3Vに送る。乱数発生部12−2
Vは、乱数Rを発生する。データ送出部12−3Vは、ECC格納部13Vからデータ(例
えば電力測定値)に対応するECCを読出し、暗号化したデータ(例えば電力測定値)とと
もにMDMSに送出する。
【0073】
MDMS2Vは、暗号鍵共有部21V、読出制御部22Vを有する。暗号鍵共有部2
1Vは、共有鍵(メディア鍵KM)を有する。読出制御部22Vは共有鍵(メディア鍵K
M)を用いて暗号化したデータ(例えば電力測定値)を復号する。更に詳細には、読出制
御部22Vは、データ受信部22−1V、復号部22−2V、エラー修復部22−3Vを
有する。データ受信部22−1VはECCをエラー修復部22−3Vに送る。データ受信部
22−1Vは暗号化された電力測定値を復号部22−2Vに送る。復号部22−2Vは、
暗号鍵共有部21Vからメディア鍵KMを読み出し、当該メディア鍵KMを用いて暗号化され
た電力測定値を復号する。復号部22−2Vは、復号結果から乱数を捨てて、電力測定値
をエラー修復部22−3Vに送る。エラー修復部22−3Vは、ECCを用いて電力測定値
のエラーチェックを行う。エラーが無いか、又は、修復可能であれば、エラー修復部22
−3Vは電力測定値を出力する。さもなければ、エラーを通知して停止する。ECC格納
部13Vは、ECCを格納する。
【0074】
図1XAは、半導体メモリチップとメーターの暗号鍵共有部(15V、41V)の構
成例を示す。暗号鍵共有部15Vは、共有鍵(メディア鍵KM)を有し、データ変換部1
6Vに共有鍵(メディア鍵KM)を送る。暗号鍵共有部41Vは、MKB読み取り部41
−1V、MKB処理部41−2Vを有する。暗号鍵共有部41Vは、半導体メモリチップ
16VからMKB2(MKBデータ)を受け付け、MKB2(MKBデータ)に基づいて
共有鍵(メディア鍵KM)を生成する。生成した共有鍵(メディア鍵KM)をデータ送信
部42Vへ送信する。詳細には、MKB読み取り部41−1Vは、半導体メモリチップ1
6VからMKB2を読み取る。読み取ったMKB2をMKB処理部41−2Vに送る。M
KB処理部41−2Vは、MKB2とデバイス鍵KDを用いて共有鍵(メディア鍵)KM
を生成する。生成した共有鍵(メディア鍵KM)をデータ送信部42Vを送信する。
【0075】
図1XBは、半導体メモリチップのデータ変換部16Vとメーターのデータ送信部4
2Vの構成例を示す図である。データ送信部42Vは、暗号鍵共有部41Vから受け付け
た共有鍵(メディア鍵KM)を用いて計測部43Vの計測値を暗号化する。暗号化した計
測値をデータ変換部16Vに送信する。更に、詳細には、データ送信部42Vは、ECC
生成部42−1V、暗号化部42−2V、データ送出部42−3Vを有する。ECC生成
部42−1Vは、計測部43Vの計測値を読み出し、ECCを生成する。生成したECC
を暗号化部42−2Vに送る。暗号化部42−2Vは、計測値とECC生成部42−1V
で生成されたECCを暗号化して、データ送出部に送る。データ送出部42−3Vは、暗
号化された計測値とECCをデータ変換部16Vに送信する。
【0076】
データ変換部16Vは、受け付けた暗号化された計測値とECCを復号する。復号さ
れた計測値はメモリ10Vの書き込み領域113Vに書き込む。復号されたECCはEC
C格納部13Vに書き込む。更に詳細には、データ変換部16Vは、データ受信部16−
1V、復号部16−2V、書込部16−3Vを有する。データ受信部16−1Vは、デー
タ送出部42−3Vから暗号化された計測値とECCを受信する。暗号化された計測値と
ECCを復号部16−2Vに送る。復号部16−2Vは、暗号鍵共有部15Vから共有鍵
(メディア鍵KM)を受け付ける。暗号化された計測値とECCを受け付けた共有鍵(メ
ディア鍵KM)を用いて復号する。復号された計測値とECCを書込部16−3Vに送る
。書込部16−3Vは、復号された計測値はメモリ10Vの書き込み領域113Vに書き
込む。復号されたECCはECC格納部13Vに書き込む。
【0077】
図1Wに半導体メモリチップ1Vの暗号鍵共有部11VとMDMS2Vの暗号鍵共有
部21Vの構成を示す。また、図1Xに送出制御部12Vと読出制御部22Vの構成を示
す。電力計測値は読出し認証領域に記録されている。これをMDMSは以下の手順で読み
出す。その手順を図1YA、1YBを用いて説明する。MDMSが半導体メモリチップの
暗号鍵共有部11VにMKB1を送る(ステップS5000001)。暗号鍵共有部11VのMKB処理
部11−2Vが暗号鍵共有部が格納するデバイス鍵KDを用いてMKBを処理する。前記デバ
イス鍵KDがリボーク(無効化)されていない場合、このMKB処理によりメディア鍵KMが得
られる。一方、前記デバイス鍵KDが前記MKB1により無効化されている場合、メディア鍵KM
は得られず、暗号鍵共有部11Vはエラーを通知して処理を停止する(ステップS5000002
)。正しいメディア鍵KMが得られた場合、暗号鍵共有部は当該メディア鍵KMを送出制御部
22Vに送る(ステップS5000003)。暗号化部12−1Vがメディア鍵KMを受け取る。暗
号化部12−1Vは、読出し認証領域14Vから電力測定値を読出し、乱数発生部12−
2Vから乱数Rを受け取る。暗号化部12−1Vは、電力測定値と乱数Rとを連結し、メデ
ィア鍵KMで暗号化する(ステップS5000004)。暗号化部12−1Vは、暗号化した電力測
定値を、データ送出部12−3Vに送る。データ送出部12−3Vは、ECC格納部13V
から電力測定値に対応するECCを読出し、暗号化した電力測定値とともにMDMSに送出
する(ステップS5000005)。暗号化された電力測定値とECCは、MDMSのデータ受信部
22−1Vに入力される(ステップS5000006)。データ受信部22−1VはECCをエラー
修復部22−3Vに送る。また、データ受信部22−1Vは暗号化された電力測定値を復
号部22−2Vに送る(ステップS5000007)。復号部22−2Vは、暗号鍵共有部21V
からメディア鍵KMを読み出し(ステップS5000008)、当該メディア鍵KMを用いて暗号化さ
れた電力測定値を復号する(ステップS5000009)。復号部22−2Vは、復号結果から乱
数を捨てて、電力測定値をエラー修復部22−3Vに送る(ステップS5000010)。エラー
修復部22−3Vは、ECCを用いて電力測定値のエラーチェックを行う。エラーが無いか
、又は、修復可能であれば、エラー修復部22−3Vは電力測定値を出力する(ステップ
S5000011)。さもなければ、エラーを通知して停止する(ステップS5000012)。
【0078】
特許請求の範囲に記載の「第1領域」は、書込み認証領域(11−3または11−3
Eまたは113Mまたは14Tまたは113V)などが対応する。「第1鍵情報」は、M
KB2などが対応する。「第1の暗号鍵生成部」は、暗号鍵共有部(41Mまたは26T
または41V)などが対応する。「第1鍵」は、暗号鍵共有部(41Mまたは26Tまた
は41V)などが生成する共有鍵が対応する。「第2鍵」は、暗号鍵共有部(41Mまた
は26Tまたは41V)と対応する暗号鍵共有部(13Mまたは17Tまたは15V)な
どが有する共有鍵が対応する。「第2領域」は、書き込みの領域と読み出しの領域が共通
する領域(11−4または11−4Eまたは114Mまたは16Tまたは114V)など
が対応する。「第2鍵情報」は、MKB12−2EまたはMKB1などが対応する。「第
2の暗号鍵生成部」は、暗号鍵共有部(51Eまたは21Mまたは11V)などが対応す
る。「第3鍵」は、暗号鍵共有部(51Eまたは21Mまたは11V)などが生成するK
Mが対応する。「第4鍵」は、暗号鍵共有部(51Eまたは21Mまたは11V)と対応
する暗号鍵共有部(12Eまたは11Mまたは21V)などが有するKMが対応する。
【0079】
本実施の形態の発明は、悪意のある書き込み装置からのデータ書き込みを防止するこ
とができる。
【0080】
(第2の実施の形態)
第2の実施の形態にかかるメモリチップ(半導体メモリチップ)は、半導体メモリチッ
プにセキュリティ機能を持たせ、半導体メモリチップ自体をトラスト・チェインの中に組
み込む。これにより、半導体メモリチップを不正なコントローラーと組み合わせて使用す
ることを防止する。半導体メモリチップは高度な部品であり、不正なIDを有するコント
ローラーのように、容易に製造・販売することができない。
【0081】
ここで、トラスト・チェインについて図2Aを用いて説明する。図2Aは、半導体メ
モリチップ100をトラスト・チェインに組み込んだシステムの一例を示す図である。図
2A中の矢印の方向は認証の方向を示す。即ち、半導体メモリチップ100がコントロー
ラー200を認証し、コントローラー200が書き込み装置300を認証し、書き込み装
置300が半導体メモリチップ100を認証する。なお、破線はオプションである。書き
込み装置300がトラスト・チェインの出発点であり、半導体メモリチップ100を経由
してコントローラー200を認証することが図2Aのトラスト・チェインを構築する目的
である。書き込み装置300と半導体メモリチップ100との間のデータの流れは常にコ
ントローラー200を介して行われるため、書き込み装置300による半導体メモリチッ
プ100の認証は間接的なものになる。
【0082】
本実施の形態では、半導体メモリチップ100をトラスト・チェインに組み込むため
に、半導体メモリチップ100自体にセキュリティ機能を持たせる。具体的には、半導体
メモリチップ100のメモリに特殊領域を構成する。特殊領域は、読み出し特殊領域およ
び書き込み特殊領域を含む。読み出し特殊領域とは、メモリ内の記憶領域(メモリ領域)
のうち、半導体メモリチップ100により認証されたコントローラー200のみが、格納
された値を正しく読み出すことができる予め定められたメモリ領域である。書き込み特殊
領域とは、メモリ領域のうち、データ書き込みの際、データ変換部(後述)による復号を
受けたデータを書き込む予め定められたメモリ領域である。
【0083】
また、本実施の形態では、半導体メモリチップ100をトラスト・チェインに組み込
むために、読み出し特殊領域と書き込み特殊領域に共通領域を設ける。そして、当該共通
領域に、データ利用に不可欠な情報を記録する。共通領域にデータ利用に不可欠な情報が
正しく記録できることは、即ち、半導体メモリチップ100が書き込み装置300によっ
て認証されたことに他ならない。そして、共通領域に記録されているデータ利用に不可欠
な情報が、コントローラー200によって正しく読み出されることは、即ち、当該コント
ローラー200が半導体メモリチップ100によって認証されていることに他ならない。
かくして、図2Aのトラスト・チェインが完成する。
【0084】
図2Bは、第2の実施の形態の半導体メモリチップ100とコントローラー200の
構成の一例を示すブロック図である。まず、半導体メモリチップ100の機能の概要につ
いて説明する。図2Bに示すように、半導体メモリチップ100は、メモリ110と、暗
号鍵共有部120と、送出制御部130と、データ変換部140と、を備えている。
【0085】
メモリ110は、各種データを記憶する記憶部である。メモリ110は、例えば、N
AND型フラッシュメモリなどにより構成できる。なお、メモリ110はこれに限られず
、他の型式のフラッシュメモリなどを含む、半導体素子によって構成される任意の半導体
メモリを適用することができる。
【0086】
メモリ110は、符号記憶部111と、読み出し特殊領域112と、書き込み特殊領
域113と、共通領域114と、一般領域115とを備えている。
【0087】
符号記憶部111は、書き込み装置300から書き込みが要求されたデータのエラー
訂正符号(ECC:エラーコレクションコード)を記憶する。なお、符号記憶部111は
、メモリ110の外部にメモリ110と独立の記憶部として備えてもよい。
【0088】
図2Bでは、読み出し特殊領域112および書き込み特殊領域113のそれぞれに、
共通領域114以外の領域が含まれる例が示されているが、少なくとも共通領域114が
存在すれば、各領域の構成は任意である。例えば、読み出し特殊領域112と書き込み特
殊領域113とが一致(すなわち読み出し特殊領域112と書き込み特殊領域113とが
いずれかも共通領域114と一致)するように構成してもよい。
【0089】
一般領域115とは、送出制御部130およびデータ変換部140を介さずに、コン
トローラー200から直接書き込みおよび読み取りが可能な領域を表す。
【0090】
暗号鍵共有部120は、コントローラー200との間で共有する暗号鍵を保持または
生成する。送出制御部130は、メモリ110から読み出したデータをコントローラー2
00に送出する処理を制御する。データ変換部140は、コントローラー200を介して
書き込み装置300から書き込みが要求されたデータを変換した変換データを生成する。
暗号鍵共有部120、送出制御部130、およびデータ変換部140は、メモリ110と
同一のダイ上に構成される。これにより、半導体メモリチップ100内にセキュリティ機
能を持たせ、メモリカードの偽造等によるデータの不正利用を防止することができる。暗
号鍵共有部120、送出制御部130、およびデータ変換部140の機能の詳細について
は後述する。
【0091】
次に、コントローラー200の機能の概要について説明する。コントローラー200
は、暗号鍵共有部210と、読出制御部220と、書込制御部230と、一般領域読出部
240と、一般領域書込部250と、を備えている。
【0092】
暗号鍵共有部210は、半導体メモリチップ100との間で共有する暗号鍵を保持ま
たは生成する。読出制御部220は、読み出し装置および再生装置などの外部装置(図示
せず)からの要求に応じて、半導体メモリチップ100の共通領域114からデータを読
み出す処理を制御する。書込制御部230は、書き込み装置300などの外部装置からの
要求に応じて、半導体メモリチップ100の共通領域114にデータを書き込む処理を制
御する。
【0093】
一般領域読出部240は、一般領域115からのデータの読み出しを制御する。すな
わち、一般領域115からデータを読み出す場合、読み出し装置は、コントローラー20
0の一般領域読出部240に対して、読み出し対象となるページの指定を入力する。
【0094】
一般領域読出部240は、指定されたページのデータを読み出すと共に、符号記憶部
111から指定されたページに対応するECCを読み出す。また、一般領域読出部240
は、ECCを用いて読み出したページのエラーをチェックする。エラーが無ければ、一般
領域読出部240は読み出したページのデータを出力する。エラーが存在して修復可能で
ある場合は、一般領域読出部240は、読み出したページのデータを修復して出力する。
それ以外の場合は、一般領域読出部240はエラーコードを出力する。
【0095】
一般領域書込部250は、一般領域115へのデータ書き込みを制御する。すなわち
、一般領域115へデータを書き込む場合、書き込み装置300は、コントローラー20
0の一般領域書込部250に対してデータを入力する。この際、書き込み装置300は、
書き込み先のページ(メモリ内の領域)の指定も一般領域書込部250に入力する。
【0096】
一般領域書込部250は、入力されたデータのECCを生成し、一般領域115のう
ち、指定されたページにデータを書き込むと共に、生成したECCを指定されたページに
対するECCとして符号記憶部111に記録する。
【0097】
次に、半導体メモリチップ100の暗号鍵共有部120とコントローラー200の暗
号鍵共有部210の構成例について図3Aを用いて説明する。図3Aに示すように、暗号
鍵共有部120は、メディア鍵を表すKM121(以下、メディア鍵KMという)と、M
KB(Media Key Block)122とを保持している。MKB122については、例えば
非特許文献1に記載されている。また、暗号鍵共有部210は、デバイス鍵を表すKD2
12を保持している。また、暗号鍵共有部210は、MKB読み取り部211と、MKB
処理部213と、を備えている。
【0098】
MKB読み取り部211は、半導体メモリチップ100の暗号鍵共有部120からM
KB122を読み出す。MKB処理部213は、読み出されたMKBをデバイス鍵KD2
12を用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。
【0099】
なお、図3Aの例では、半導体メモリチップ100の暗号鍵共有部120がコントロ
ーラー200の暗号鍵共有部210を認証している。
【0100】
次に、図3Aのように構成された暗号鍵共有部120と暗号鍵共有部210との間で
暗号鍵を共有する暗号鍵共有処理について図4Aを用いて説明する。図4Aは、第2の実
施の形態における暗号鍵共有処理の全体の流れを示すフローチャートである。
【0101】
コントローラー200が半導体メモリチップ100の読み出し特殊領域112からデ
ータを読み出す際、まず、コントローラー200の暗号鍵共有部210のMKB読み取り
部211が、半導体メモリチップ100のMKB122を読み出す(ステップS101)
。MKB122は、コントローラー200から常に自由に読み出しが可能である。MKB
読み取り部211は、読み出したMKB122をMKB処理部213に送る(ステップS
102)。
【0102】
MKB処理部213は、コントローラー200の暗号鍵共有部210が保持している
デバイス鍵KD212を読み込み、MKB処理を行う(ステップS103)。次に、MK
B処理部213は、MKB処理によりメディア鍵KMが得られたか否かを判断する(ステ
ップS104)。デバイス鍵KD212がMKB122によって無効化されている場合、
MKB処理によって正しくメディア鍵KMを得ることができない。この場合、MKB処理
部213は、メディア鍵KMが得られなかったと判断し(ステップS104:No)、コ
ントローラー200にエラーを通知する(ステップS105)。コントローラー200は
、エラーの通知を受けると、読み出し動作を中止する。
【0103】
一方、デバイス鍵KD212がMKB122によって無効化されていない場合、MK
B処理によって正しいメディア鍵KMが得られる。この場合、MKB処理部213は、メ
ディア鍵KMが得られたと判断し(ステップS104:Yes)、得られたメディア鍵K
Mをコントローラー200の読出制御部220に送る(ステップS106)。半導体メモ
リチップ100側では、暗号鍵共有部120が格納しているメディア鍵KMが送出制御部
130に送られる(ステップS107)。
【0104】
次に、半導体メモリチップ100の送出制御部130とコントローラー200の読出
制御部220の構成例について図5を用いて説明する。図5に示すように、送出制御部1
30は、乱数発生部131と、読出部132と、暗号化部133と、送出部134とを備
えている。
【0105】
乱数発生部131は、暗号化部133の要求に応じて乱数を発生する。読出部132
は、指定された読み出し対象ページのデータと、当該データのECCとをメモリ110か
ら読み出す。暗号化部133は、読み出されたデータをメディア鍵KMを用いて暗号化す
る。送出部134は、暗号化されたデータ(暗号化データ)とECCとをコントローラー
200のデータ受信部221に送出する。
【0106】
また、図5に示すように、読出制御部220は、データ受信部221と、復号部22
2と、エラー修復部223とを備えている。データ受信部221は、半導体メモリチップ
100の送出部134から暗号化データとECCとを受信する。復号部222は、受信さ
れた暗号化データをメディア鍵KMを用いて復号する。エラー修復部223は、受信され
たECCを用いて、復号されたデータのエラー有無のチェックおよびエラー修復を行う。
【0107】
次に、図5のように構成された送出制御部130と読出制御部220との間で読み出
したデータを送受信するデータ読出処理について図6を用いて説明する。図6は、第2の
実施の形態におけるデータ読出処理の全体の流れを示すフローチャートである。
【0108】
読出制御部220は、暗号鍵共有部210からメディア鍵KMを受け取ると(ステッ
プS201)、復号部222に受け取ったメディア鍵KMを入力する(ステップS202
)。次に、読出制御部220は、送出制御部130にデータ送出要求を送る。この際、読
み出し対象ページの指定も併せて送られる(ステップS203)。送出制御部130の読
出部132は、指定されたページのデータを読み出し、暗号化部133に入力する(ステ
ップS204)。また、読出部132は、読み出し対象ページに対応するECCを符号記
憶部111から読み出し、送出部134に入力する(ステップS205)。
【0109】
次に、暗号化部133が、乱数発生部131に乱数発生要求を送る(ステップS20
6)。乱数発生部131は、乱数を発生して暗号化部133に送る(ステップS207)
。暗号化部133は、暗号鍵共有部120からメディア鍵KMを取得する(ステップS2
08)。暗号化部133は、指定されたページのデータと乱数とを連結し、連結して得ら
れたデータをメディア鍵KMで暗号化した暗号化データD’を生成する(ステップS20
9)。そして、暗号化部133は、暗号化データD’を送出部134に送る(ステップS
210)。送出部134は、入力された暗号化データD’と入力されたECCとをコント
ローラー200のデータ受信部221に送出する(ステップS211)。
【0110】
なお、読み出し対象ページの中で重要なデータはページの一部かもしれない。このよ
うな場合、暗号化部133が、重要なデータが含まれるページの一部のみを暗号化するよ
うに構成してもよい。例えば、ページの先頭48バイトのみが重要なデータである場合、
暗号化部133がページの先頭48バイトと16バイトの乱数を連結した64バイトのみ
暗号化するようにしても良い。これにより、暗号化による処理負荷の増加を最小限に抑制
することができる。
【0111】
次に、読出制御部220のデータ受信部221は、暗号化データとECCとを受信す
る(ステップS212)。そして、データ受信部221は、受信したECCをエラー修復
部223に送る(ステップS213)。エラー修復部223は、受け取ったECCを保持
する。また、データ受信部221は、受信した暗号化データD’を復号部222に送る(
ステップS214)。復号部222は、コントローラー200の暗号鍵共有部210から
受け取ったメディア鍵KMを用いて、暗号化データD’を復号する(ステップS215)

【0112】
この復号の結果、平文の読み出しデータDと乱数とが得られる。復号部222は、予
め定められたフォーマットにしたがい、復号したデータから、読み出しデータDと乱数と
を区別することができる。例えば、暗号化部133が64バイトのみを暗号化する上述の
例では、復号したデータのうち、先頭の48バイトが読み出しデータDであり、続く16
バイトが乱数である。
【0113】
復号部222は、読み出しデータDのみをエラー修復部223に転送する(ステップ
S216)。エラー修復部223は、保持しているECCを用いて読み出しデータDのエ
ラーをチェックする(ステップS217)。そして、エラー修復部223は、エラーがあ
るか否かを判断する(ステップS218)。エラーが無い場合(ステップS218:No
)、コントローラー200は、読み出しデータDの読み出しを要求した外部装置に、読み
出しデータDを出力する(ステップS219)。
【0114】
エラーがある場合(ステップS218:Yes)、エラー修復部223は、さらにエ
ラーが修復可能か否かを判断する(ステップS220)。エラーが修復可能な場合(ステ
ップS220:Yes)、エラー修復部223は、保持しているECCを用いて読み出し
データDのエラーを修復する(ステップS221)。そして、コントローラー200は、
修復後の読み出しデータDを出力する(ステップS219)。
【0115】
エラーが修復不可能な場合(ステップS220:No)、エラー修復部223は、コ
ントローラー200にエラーを通知する(ステップS222)。この場合、コントローラ
ー200は、例えばエラーが発生したことを読み出しを要求した外部装置に送信する。
【0116】
図4Aで説明した処理により、有効なデバイス鍵KD212を有する正規のコントロ
ーラー200のみが、半導体メモリチップ100と共通の暗号鍵であるメディア鍵KMを
得ることができる。また、図6で説明した処理により、正規のコントローラー200のみ
が、共通のメディア鍵KMにより正常に復号されたデータを得ることができる。即ち、半
導体メモリチップ100によるコントローラー200の認証が実現できる。
【0117】
このように、半導体メモリチップ100の暗号鍵共有部120と送出制御部130と
の組み合わせが、コントローラー200を認証する認証手段とみなすことができる。この
認証手段により読み出されるデータを記憶する半導体メモリチップ100上のメモリ11
0内の領域が、読み出し特殊領域に相当する。
【0118】
なお、暗号鍵共有部120および暗号鍵共有部210の構成は図3Aに示すものに限
られるものではない。半導体メモリチップ100とコントローラー200との間で暗号鍵
を共有できるものであればあらゆる構成を適用できる。
【0119】
上述のように、半導体メモリチップがコントローラーを認証する為にMKBを用いる
事ができる。このMKBは通常、半導体メモリチップ製造時に半導体メモリチップの書き
込み特殊領域または一般領域に記録される。本発明の半導体メモリチップとコントローラ
ーとを具備する機器がネットワーク経由で書き込み装置に接続される事がある。或いは、
本発明の半導体メモリチップとコントローラーとを用いて構成されたメモリカードが店舗
の書き込み装置に接続される事がある。本発明の半導体メモリチップがコントローラーを
介して書き込み装置に接続される、このような機会は、半導体メモリチップ上のMKBを
更新する良い機会である。MKBには、コントローラーが保持するデバイス鍵を無効化す
る為の情報が含まれている。従って、MKBは最新の状態に保つ事が望ましい。書き込み
装置による更新の方法は単純である。例えば、書き込み装置がコントローラーを介して書
き込み認証領域(後述)または一般領域のMKBを上書きすれば良い。
【0120】
MKBの更新頻度を高める為には、半導体メモリチップが内蔵するメディア鍵を半導
体メモリチップ自身で更新できるような仕組みを持たせておく事が望ましい。これを、図
3Bに図示する。これは暗号鍵共有部が保持するメディア鍵KMを更新する仕組みである。
新しいMKBが書き込み認証領域200202の予め定められたアドレスに書き込まれる(
ステップS200201)。これをトリガーとして、暗号鍵共有部200201が当該MK
Bを読み込み、MKB処理部2002012に送る。MKB処理部2002012は暗号鍵共有
部が保持するデバイス鍵KDを読み込み、MKB処理を行う(ステップS200202)。デ
バイス鍵KDが前記MKBによってリボークされていない場合、メディア鍵KMが得られる。暗
号鍵共有部は当該メディア鍵KMを格納・保持する(ステップS200203)。デバイス
鍵KDが前記MKBによってリボークされていた場合、暗号鍵共有部はエラーを通知して停止
する(ステップS200204)。上記の動作については図4Bを参照の事。
【0121】
図7は、暗号鍵共有部120の変形例(暗号鍵共有部120−2)と暗号鍵共有部2
10の変形例(暗号鍵共有部210−2)を示すブロック図である。図7に示すように、
暗号鍵共有部120−2は、メディア鍵KMおよびMKB122を保持する他に、乱数生
成部123と、乱数送信部124と、一時鍵生成部125とを備えている。また、暗号鍵
共有部210−2は、デバイス鍵KD212、MKB読み取り部211、およびMKB処
理部213の他に、乱数受信部214と、一時鍵生成部215とを備えている。
【0122】
乱数生成部123は、乱数送信部124からの要求に応じて乱数を発生する。乱数送
信部124は、発生された乱数を、コントローラー200の乱数受信部214、および、
半導体メモリチップ100の一時鍵生成部125に送信する。一時鍵生成部125は、メ
ディア鍵KMおよび受信した乱数を用いて一時鍵Kを生成する。例えば、一時鍵生成部1
25は、AES−Gなどの一方向性関数を用いて、メディア鍵KMと乱数とから一時鍵K
を生成する。
【0123】
乱数受信部214は、乱数送信部124から乱数を受信する。一時鍵生成部215は
、半導体メモリチップ100の一時鍵生成部125と同様の手法により、MKB処理部2
13から受け取ったメディア鍵KMと、乱数受信部214により受信された乱数とから一
時鍵Kを生成する。
【0124】
図7の例でも、半導体メモリチップ100の暗号鍵共有部120−2がコントローラ
ー200の暗号鍵共有部210−2を認証している。
【0125】
次に、図7のように構成された暗号鍵共有部120−2と暗号鍵共有部210−2と
の間で暗号鍵を共有する暗号鍵共有処理について図8を用いて説明する。図8は、第2の
実施の形態の変形例における暗号鍵共有処理の全体の流れを示すフローチャートである。
【0126】
ステップS301〜ステップS305は、図4AのステップS101〜ステップS1
05と同様の処理なので説明を省略する。
【0127】
ステップS304で、正しいメディア鍵KMが得られたと判断された場合(ステップ
S304:Yes)、MKB処理部213は、得られたメディア鍵KMを一時鍵生成部2
15に送る(ステップS306)。次に、コントローラー200の暗号鍵共有部210の
乱数受信部214が、半導体メモリチップ100の乱数送信部124に対して乱数送信要
求を送る(ステップS307)。乱数送信部124は、乱数生成部123に乱数発生要求
を送る(ステップS308)。乱数生成部123は、乱数Rを生成する(ステップS30
9)。乱数送信部124は、生成された乱数Rを受け取り、乱数Rをコントローラー20
0の乱数受信部214に送信する(ステップS310)。コントローラー200の乱数受
信部214は、受信した乱数Rをコントローラー200の一時鍵生成部215に転送する
(ステップS311)。一時鍵生成部215は、MKB処理部213から受け取ったメデ
ィア鍵KMと乱数Rとから一時鍵Kを生成する(ステップS312)。また、一時鍵生成
部215は、生成した一時鍵Kをコントローラー200の読出制御部220に送る(ステ
ップS313)。
【0128】
一方、乱数送信部124は、半導体メモリチップ100の一時鍵生成部125にも乱
数Rを送る(ステップS314)。乱数Rを受信した一時鍵生成部125は、半導体メモ
リチップ100の暗号鍵共有部120が予め格納しているメディア鍵KMを読み取る(ス
テップS315)。そして、一時鍵生成部125は、メディア鍵KMと乱数Rと組み合わ
せて一時鍵Kを生成する(ステップS316)。また、一時鍵生成部125は、生成した
一時鍵Kを半導体メモリチップ100の送出制御部130に送る(ステップS317)。
【0129】
コントローラー200のMKB処理が正しく行われ、正しいメディア鍵KMが生成さ
れたならば、半導体メモリチップ100とコントローラー200とが、それぞれ独立に生
成する一時鍵Kは同一になる。
【0130】
次に、図7のように構成された暗号鍵共有部120−2および暗号鍵共有部210−
2に対応する送出制御部130の変形例(送出制御部130−2)と読出制御部220の
変形例(読出制御部220−2)について図9を用いて説明する。図9に示すように、送
出制御部130−2は、読出部132と、暗号化部133−2と、送出部134とを備え
ている。本変形例では、乱数発生部131が削除されたこと、および、暗号化部133−
2の機能が、図5の送出制御部130と異なっている。暗号化部133−2は、主にメデ
ィア鍵KMの代わりに一時鍵Kを用いてデータを暗号化する点が、図5の暗号化部133
と異なっている。
【0131】
また、図9に示すように、読出制御部220−2は、データ受信部221と、復号部
222−2と、エラー修復部223とを備えている。本変形例では、復号部222−2の
機能が、図5の読出制御部220と異なっている。復号部222−2は、主にメディア鍵
KMの代わりに一時鍵Kを用いてデータを復号する点が、図5の復号部222と異なって
いる。
【0132】
次に、図9のように構成された送出制御部130−2と読出制御部220−2との間
で読み出したデータを送受信するデータ読出処理について図10を用いて説明する。図1
0は、第2の実施の形態の変形例におけるデータ読出処理の全体の流れを示すフローチャ
ートである。
【0133】
読出制御部220−2の復号部222−2が暗号鍵共有部210−2から一時鍵Kを
受け取ると(ステップS401)、復号部222−2は受け取った一時鍵Kを保持する。
また、データ受信部221が、半導体メモリチップ100の送出制御部130−2に対し
て、読み出し対象ページの指定と共にデータ送出要求を送る(ステップS402)。送出
制御部130は、読出部132に読み出し対象ページの指定とデータ読み出し指示を送る
(ステップS403)。読出部132は、メモリ110の読み出し対象ページからデータ
Dを読み出す(ステップS404)。
【0134】
一方、暗号化部133−2は、暗号鍵共有部120−2から一時鍵Kを受け取る(ス
テップS405)。次に、暗号化部133−2は、一時鍵Kを用いてデータDを暗号化し
、暗号化データD’=Enc(K,D)を生成する(ステップS406)。なお、Enc
(K,D)とは、一時鍵Kを用いてデータDを暗号化することを意味する。暗号化部13
3−2は、生成した暗号化データD’を送出部134に送る(ステップS407)。
【0135】
読出部132は、データDのECCをメモリ110の符号記憶部111から読み出す
(ステップS408)。送出部134は読み出されたECCを保持する。送出部134は
、暗号化データD’と保持しているECCとを、読出制御部220−2のデータ受信部2
21に送る(ステップS409)。
【0136】
データ受信部221は、送出部134から暗号化データD’とECCとを受け取ると
、暗号化データD’を復号部222−2に送り(ステップS410)、ECCをエラー修
復部223に送る(ステップS411)。エラー修復部223は、受け取ったECCを保
持する。復号部222−2は、暗号化データD’を受け取ると、保持している一時鍵Kを
用いて暗号化データD’を復号し、データDを得る(ステップS412)。次に、復号部
222−2は、復号したデータDをエラー修復部223に送る(ステップS413)。
【0137】
ステップS414〜ステップS419は、図6のステップS217〜ステップS22
2と同様の処理なので説明を省略する。
【0138】
次に、図7のように構成された暗号鍵共有部120−2および暗号鍵共有部210−
2に対応する送出制御部130および読出制御部220の別の変形例(送出制御部130
−3および読出制御部220−3)について図11Aを用いて説明する。図11Aに示す
ように、送出制御部130−3は、読出部132−3と、暗号化部133−3と、送出部
134−3とを備えている。
【0139】
読出部132−3は、読み出したECCを送出部134−3ではなく、暗号化部13
3−3に送信する。暗号化部133−3は、データDとECCとを連結したデータを暗号
化する。送出部134−3は、このようにして暗号化されたデータを読出制御部220−
3に送出する。
【0140】
一方、図11Aに示すように、読出制御部220−3は、データ受信部221−3と
、復号部222−3と、エラー修復部223−3とを備えている。
【0141】
データ受信部221−3は、データDとECCとを暗号化した暗号化データを受信し
、受信した暗号化データを復号部222−3に送信する。復号部222−3は、暗号化デ
ータを復元してデータDとECCとを求め、エラー修復部223−3に送信する。エラー
修復部223−3は、このようにして復号部222−3から受信したデータDとECCと
を用いて、エラーのチェックおよびエラー修復を実行する。
【0142】
次に、図11Aのように構成された送出制御部130−3と読出制御部220−3と
の間で読み出したデータを送受信するデータ読出処理について図11Bを用いて説明する
。図11Bは、第2の実施の形態の別の変形例におけるデータ読出処理の全体の流れを示
すフローチャートである。
【0143】
読出制御部220の復号部222−3が暗号鍵共有部210−2から一時鍵Kを受け
取ると(ステップS501)、復号部222−3は、受け取った一時鍵Kを保持する。ま
た、データ受信部221−3は、半導体メモリチップ100の送出制御部130−3に、
読み出し対象ページの指定と共にデータ送出要求を送る(ステップS502)。送出制御
部130−3は、読出部132−3に読み出し指定ページとデータ読み出し指示とを送る
(ステップS503)。読出部132−3は、メモリの指定された読み出し対象ページの
データDを読み出す(ステップS504)。また、読出部132−3は、読み出したデー
タDのECCをメモリ110の符号記憶部111から読み出す(ステップS505)。次
に、暗号化部133−3が、暗号鍵共有部120−2から一時鍵Kを受け取る(ステップ
S506)。暗号化部133−3は、受け取った一時鍵Kを用いてデータDとECCとを
連結(concatenate)したデータD||ECCを暗号化した暗号化データD’
=Enc(K,D||ECC)を生成する(ステップS507)。そして、暗号化部13
3−3は、暗号化データD’を送出部134に送る(ステップS508)。送出部134
は、暗号化データD’を読出制御部220のデータ受信部221に送る(ステップS50
9)。
【0144】
データ受信部221は、送出部134から暗号化データD’を受け取ると、当該暗号
化データD’を復号部222−3に送る(ステップS510)。復号部222−3は、暗
号化データD’を受け取ると、保持している一時鍵Kを用いて暗号化データD’を復号し
、データDとECCとを得る(ステップS511)。復号部222−3は、データDとE
CCとをエラー修復部223−3に送る(ステップS512)。
【0145】
ステップS513〜ステップS518は、図6のステップS217〜ステップS22
2(図10のステップS414〜ステップS419)と同様の処理なので説明を省略する

【0146】
図7の暗号鍵共有部120−2と、図9の送出制御部130−2または図11Aの送
出制御部130−3のいずれか一方との組み合わせが、コントローラー200を認証する
認証手段とみなすことができる。これらの認証手段により読み出されるデータを記憶する
半導体メモリチップ100上のメモリ110内の領域が、読み出し特殊領域に相当する。
【0147】
公開鍵を用いて半導体メモリチップからコントローラーを認証する実施例を次に述べ
る。図12Aは本実施例の半導体メモリチップとコントローラーの構成を示すブロック図
である。本実施例の半導体メモリチップとコントローラーの暗号鍵共有部の構成を、それ
ぞれ図12Aと図12Bのブロック図に示す。半導体メモリチップ100Aの暗号鍵共有
部120Aは、コントローラー200Aのバージョン情報を受け取るバージョン情報取得
部1201Aを具備する。また、前記暗号鍵共有部120Aは、一つ以上の公開鍵を格納
する公開鍵リスト格納部を具備する。本実施例では、コントローラー200Aが保持する
秘密鍵にバージョン情報が対応している。即ち、コントローラー200Aのバージョン情
報を知れば、当該コントローラー200Aが保持する秘密鍵に対応する公開鍵が定まる。
半導体メモリチップ100Aの暗号鍵共有部120Aの乱数発生部は、転送するページの
データを暗号化する為の暗号鍵を生成する。コントローラー200Aの暗号鍵共有部21
0Aは、秘密鍵を格納する秘密鍵格納部2101Aと、前記秘密鍵に対応するバージョン
情報を格納するバージョン情報格納部2102Aとを具備している。なお、バージョン情
報は、例えば、数値や文字列である。
【0148】
図12Cに半導体メモリチップ100Aとコントローラー200Aの暗号鍵共有部(
120A、210A)の動作を示す。コントローラー200Aに(読出し特殊領域の)読
出し対象ページの指定が入力される(ステップS3000)。コントローラー200Aは
当該コントローラーの暗号鍵共有部210Aのバージョン情報格納部2102Aに格納さ
れているバージョン情報を半導体メモリチップ100Aに送る(ステップS3001)。
半導体メモリチップ100Aの暗号鍵共有部120Aのバージョン情報取得部1201A
が、前記バージョン情報を受信する(ステップS3002)。前記バージョン情報格納部
1201Aが受信したバージョン情報を公開鍵選択部1203Aに送る(ステップS30
03)。公開鍵選択部1203Aは、バージョン情報に対応する公開鍵を検索する(ステ
ップS3004)。バージョン情報に対応する公開鍵が見つからなかった場合、暗号鍵共
有部120Aは動作を中止し以後の処理を行わない。さもなければ、公開鍵選択部120
3Aは見つかった公開鍵KPを暗号化部1205Aに送る(S3006)。乱数発生部12
04Aがデータ暗号鍵Kを発生し、Kを暗号化部1205Aに送る(ステップS3007)
。暗号化部1205Aは公開鍵KPによってデータ暗号鍵Kを暗号化する。その結果をK’と
する(ステップS3008)。即ち、K’= Enc( KP, K )である。暗号化部1205Aは
、データ暗号鍵Kと暗号化データ暗号鍵K’とを、半導体メモリチップ100Aの送出制御
部130Aに送る(ステップS3009)。
【0149】
図12Dは本実施例の半導体メモリチップ100Aの送出制御部130Aの構成を
示すブロック図である。また、図12Eは本実施例のコントローラー200Aの読出制御
部220Aの構成を示すブロック図である。図12Gおよび図12Hに本実施例の動作の
一部を示す。これは、図12Cに示す動作の続きである。図12CのステップS3009
で、半導体メモリチップ100Aの送出制御部130Aはデータ暗号鍵Kと暗号化データ
暗号鍵K’とを受け取るが、送出制御部130Aの暗号化部1301Aが暗号鍵Kを受け取
り(ステップS3010)、送出制御部130Aのデータ転送部1302Aが暗号化デー
タ暗号鍵K’を受け取る(ステップS3011)。次いで、半導体メモリチップ100A
の送出制御部130Aは、コントローラー200Aの読出制御部220Aに読出し準備完
了を通知する(ステップS3012)。それを受け、コントローラー200Aの読出制御
部220Aは、半導体メモリチップ100Aの送出制御部130Aに対して、読出し対象
ページの指定を送る(ステップS3013)。送出制御部130Aは、(メモリの読出し
特殊領域に含まれる)読出し対象ページのデータDを読出し、暗号化部1301Aに入力
する(ステップS3014)。暗号化部1301Aは前記データDをデータ暗号鍵Kで暗号
化しEnc( K, D )を得て(ステップS3015)、当該暗号化データEnc( K, D )をデータ
転送部1302Aに送る(ステップS3016)。データ転送部1302Aは、読出し対
象ページのECCを符号記憶部から読出す(ステップS3017)。データ転送部1302
Aは、暗号化データ暗号鍵K’と前記ECC、及び、暗号化データEnc( K, D )を、コントロ
ーラー200Aの読出制御部220Aに送る(ステップS3018)。
【0150】
データ転送部1302Aがコントローラーに送るデータの形式を図12Fに示す。暗
号化データ暗号鍵は20バイトのサイズを持つ。データ暗号鍵そのものは16バイトであるが
、本実施例では公開鍵暗号方式として160ビットの楕円曲線暗号を採用している為、暗号
化データ暗号鍵のサイズは20バイトとなる。メモリの一ページの大きさは2Kバイト=2048
バイトであり、一ページのデータに対するECCのサイズは3バイトである。図12Fでは、
20バイトの暗号化データ暗号鍵、ECC、暗号化データの順にデータが並んでいる。
【0151】
次いで、図12Hに示すように、コントローラーの読出制御部のデータ転送部が前記
データ形式の暗号化データ鍵K’とECC、2Kバイトの暗号化データを受信する(ステップS
3019)。データ転送部は暗号鍵共有部の秘密鍵格納部から秘密鍵KSを読み出す(ステ
ップS5U)。データ転送部は秘密鍵KSを用いて暗号化データ暗号鍵K’を復号。データ
暗号鍵Kを得る(ステップS3021)。データ転送部は、データ暗号鍵KとECC、暗号化
データEnc( K, D )を復号部に送る(ステップS3022)。復号部は、データ暗号鍵Kで
暗号化データEnc( K, D )を復号しデータDを得る(ステップS3023)。復号部はデー
タDとECCとを読み出しデータとして出力する(ステップS3024)。利用装置が、必要
に応じて、ECCを用いてデータDのエラー修正を行う。
【0152】
このように、読み出し特殊領域を用いてコントローラー200を認証する認証手段を
備えることにより、メモリカードの偽造等によるデータの不正利用を防止することができ
る。
【0153】
なお、上述の実施例において、半導体メモリチップからコントローラーが認証されて
いるが、再生装置などの利用装置を半導体メモリチップが認証するようにしても良い。そ
の場合は、利用装置が半導体メモリチップからMKBを読み出して処理を行うなど、コント
ローラーと同様の動作を行い、半導体メモリチップの読み出し特殊領域からデータを読み
出して利用する。利用装置が認証される場合の構成を図12Jのブロック図に示す。暗号
鍵共有部と読出制御部が利用装置に含まれている事が、図2Bと異なる図12Jの特徴で
ある。各部の動作は図2Bの場合と同様である。読み出し特殊領域からのデータ読み出し
動作において、コントローラーは単にデータの中継のみを行う。図12Jのような構成に
より、図12Kに示すトラスト・チェインが構築される。書き込み装置が半導体メモリを
認証し、かつ、半導体メモリが利用装置を認証する。
【0154】
次に、書き込み特殊領域113Bを用いて書き込み装置300Bによる半導体メモリ
チップ100Bの認証を実現する構成について以下に説明する。この構成によっても、メ
モリカードの偽造等によるデータの不正利用を防止することができる。また、読み出し特
殊領域112B(共通領域)からの読み出し機能、および、書き込み特殊領域113B(
共通領域)への書き込み機能の両方を備えるように構成すれば、上述のように半導体メモ
リチップ100Bをトラスト・チェインに組み込むことが可能となり、セキュリティ機能
をさらに向上させることができる。
【0155】
図13は、コントローラー200に書き込み装置300が接続されて、半導体メモリ
チップ100の書き込み特殊領域113に書き込みを行う様子を示す図である。ただし、
図13では、書き込み処理に関わる部分のみが図示されている。
【0156】
まず、書き込み装置300が、書き込みが要求されたデータ(書込データ)を暗号化
した暗号化データ、書込先ページの指定、および書込データに対するECCをコントロー
ラー200に送信する。コントローラー200の書込制御部230は、暗号化データとE
CCとを半導体メモリチップ100のデータ変換部140に送出する。データ変換部14
0は、暗号化データを変換(復号)し、得られた変換データ(書込データ)を書き込み特
殊領域113に書き込むとともに、ECCを符号記憶部111に書き込む。
【0157】
次に、図13の書き込み装置300、コントローラー200の書込制御部230、お
よび、半導体メモリチップ100のデータ変換部140の構成例について図14を用いて
説明する。図14に示すように、書き込み装置300は、ECC生成部310と、鍵記憶
部320と、暗号化部330と、データ送信部340とを備えている。
【0158】
ECC生成部310は、書き込むべきデータとして入力された書込データのECCを
生成する。鍵記憶部320は、書込データの変換に用いるデータ変換鍵(第1鍵)を記憶
する。本実施の形態では、鍵記憶部320は、公開鍵方式の公開鍵Kpをデータ変換鍵と
して記憶している。この公開鍵Kpは、半導体メモリチップ100の鍵記憶部141(後
述)が記憶するデータ変換鍵(第2鍵)である秘密鍵Ksに対応する公開鍵である。
【0159】
なお、適用可能な暗号化方式は公開鍵方式に限られるものではない。また、以下では
、書き込み装置300がデータ変換鍵(公開鍵Kp)を用いて書込データを暗号化し、半
導体メモリチップ100が対応するデータ変換鍵(秘密鍵Ks)で書込データを復号して
メモリ110に記憶する場合を例に説明する。書き込み装置300がデータ変換鍵(第1
鍵)を用いてデータを変換し、半導体メモリチップ100が、第1鍵に対応するデータ変
換鍵(第2鍵)を用いて変換後のデータを変換するものであれば、これ以外の変換方法を
適用してもよい。例えば、書き込み装置300が第1鍵を用いて復号に相当する変換処理
を実行し、半導体メモリチップ100が、第1鍵に対応する第2鍵を用いて暗号化に相当
する変換処理を実行するように構成してもよい。
【0160】
暗号化部330は、公開鍵Kpを用いて書込データを暗号化する。また、暗号化部3
30は、公開鍵Kpを用いてECCを暗号化した符号(変換符号)を生成する。なお、以
下では、暗号化された書込データを暗号化データといい、ECCを暗号化した変換符号を
暗号化ECCという場合がある。データ送信部340は、暗号化データと、暗号化ECC
と、書込先ページの指定とをコントローラー200の書込制御部230に送信する。
【0161】
次に、コントローラー200の書込制御部230の構成例について説明する。図14
に示すように、書込制御部230は、データ転送部231を備えている。データ転送部2
31は、暗号化データと、暗号化ECCと、書込先ページ指定とを受信し、これらの情報
を半導体メモリチップ100のデータ変換部140に送信する。
【0162】
次に、データ変換部140の構成例について説明する。図14に示すように、データ
変換部140は、鍵記憶部141と、復号部142と、書込部143とを備えている。
【0163】
鍵記憶部141は、公開鍵方式の秘密鍵Ksを記憶する。復号部142は、鍵記憶部
141の秘密鍵Ksを用いて暗号化データと暗号化ECCとを復号する。なお、暗号化デ
ータから復号された書込データが、変換データに相当する。書込部143は、復号された
書込データをメモリ110上の書き込み特殊領域113の指定されたページに記録する。
また、書込部143は、復号されたECCをメモリ110の符号記憶部111に格納する

【0164】
次に、図14のように構成された書き込み装置300、書込制御部230、および、
データ変換部140による書込データの書き込み処理について図15を用いて説明する。
図15は、第2の実施の形態における書き込み処理の全体の流れを示すフローチャートで
ある。
【0165】
書き込み装置300は、書込データ(データD)と書込先ページの指定とを入力する
(ステップS601)。次に、ECC生成部310が、データDのECCを生成し、生成
したECCとデータDとを暗号化部330に転送する(ステップS602)。暗号化部3
30は、鍵記憶部320から公開鍵Kpを取得する(ステップS603)。次に、暗号化
部330は、公開鍵Kpによって、データDとECCとを暗号化し、暗号化データD’と
暗号化ECCとを得る(ステップS604)。暗号化部330は、暗号化データD’と暗
号化ECCとをデータ送信部340に送る(ステップS605)。データ送信部340は
、暗号化データD’、書込先ページの指定、および、暗号化ECCをコントローラー20
0の書込制御部230に送信する(ステップS606)。
【0166】
書込制御部230のデータ転送部231は、暗号化データD’、書込先ページ指定、
および、暗号化ECCを受信し、それらを半導体メモリチップ100のデータ変換部14
0に送信する(ステップS607)。
【0167】
データ変換部140が受信した暗号化データD’および暗号化ECCは、復号部14
2に入力される。復号部142は、鍵記憶部141から秘密鍵Ksを取得する(ステップ
S608)。次に、復号部142は、秘密鍵Ksを用いて暗号化データD’および暗号化
ECCを復号し、データDおよびECCを得る(ステップS609)。次に、書込部14
3は、復号されたデータDを、書込先ページ指定によって指定されたメモリ110上のペ
ージに記録する。また、書込部143は、復号されたECCを、指定されたページに対応
するECCとして、メモリ110の符号記憶部111に格納する(ステップS610)。
【0168】
なお、一般に公開鍵による暗号化および復号は大きな計算量を要する。ページのサイ
ズは例えば約2KB程度であるが、実際に書き込むデータは暗号鍵などの小さなデータ(
例えば16B程度)である。従って、特に半導体メモリチップ100での復号の負荷を避
けるため、例えば、次のような工夫を行っても良い。すなわち、最小限のデータのみ暗号
化および復号するように構成してもよい。図16は、このように構成した場合のデータの
変化の様子を表す図である。
【0169】
まず、一例として、ページサイズを2048B、書込データのサイズを16B、EC
Cのサイズを3Bとする。ECC生成部310には、先頭の16Bの鍵データ+残り20
32Bの0からなる1ページ分のデータを入力する(1601)。暗号化部330は、1
ページ分のデータの17B目から3BのECCを記録した後、先頭20Bのみ暗号化を行
う(1602)。復号部142は、先頭20Bのみ復号した後(1603)、1ページ分
のデータの17B目から3BをECCとして符号記憶部111に格納する(1604)。
次に、17B目から3Bを0で上書き後、メモリ110の書き込み特殊領域113に1ペ
ージ分のデータを記録する(1605)。
【0170】
書き込み特殊領域113へのデータ書き込みは、必ず半導体メモリチップ100のデ
ータ変換部140を経由して行われる。本実施の形態では、書き込み装置300にデータ
Dが入力された場合、データDとデータDに対するECCであるECC(D)は、書き込
み装置300が保持する公開鍵Kpで暗号化される。そして、半導体メモリチップ100
のデータ変換部140には、暗号化データD’=Enc(Kp,D)と暗号化ECC=E
nc(Kp,ECC(D))とが入力される。
【0171】
書き込み特殊領域113にデータDが正しく記録され、かつ、符号記憶部111にE
CC(D)が正しく記録されるためには、半導体メモリチップ100が秘密鍵Ksを保持
している必要がある。即ち、書き込み装置300が半導体メモリチップ100を認証して
いる。上述のデータ変換部140経由で書き込まれるメモリ領域が書き込み特殊領域11
3に相当する。
【0172】
次に、図14のデータ変換部140、書込制御部230、および、書き込み装置30
0の変形例について図17Aを用いて説明する。図17Aは、本変形例にかかる書き込み
装置300−2、書込制御部230−2、および、データ変換部140−2の構成の一例
を示すブロック図である。
【0173】
図17Aに示すように、書き込み装置300−2は、ECC生成部310−2と、鍵
記憶部320−2と、暗号化部330−2と、データ送信部340と、鍵選択部350と
、を備えている。データ送信部340の機能は、図14と同様であるため、同一の符号を
付し説明は省略する。
【0174】
ECC生成部310−2は、生成したECCを暗号化部330−2ではなく、データ
送信部340に送信する点が、図14のECC生成部310と異なっている。
【0175】
鍵記憶部320−2は、対称鍵方式のデータ変換鍵である暗号鍵Kを記憶する。本変
形例では、鍵記憶部320−2は、半導体メモリチップ100のバージョンごとに複数の
暗号鍵Kを記憶する。図18は、鍵記憶部320−2に記憶されるデータのデータ構造の
一例を示す図である。図18に示すように、鍵記憶部320−2は、半導体メモリチップ
100のバージョンと、暗号鍵とを対応づけたデータを記憶している。
【0176】
図17Aに戻り、鍵選択部350は、半導体メモリチップ100のバージョンに適合
する暗号鍵Kを鍵記憶部320−2から選択する。暗号化部330−2は、選択された暗
号鍵Kを用いて書込データとECCとを暗号化する。
【0177】
次に、書込制御部230−2の構成例について説明する。図17Aに示すように、書
込制御部230−2は、データ転送部231−2を備えている。データ転送部231−2
は、鍵選択部350からの要求に応じて半導体メモリチップ100から読み出されたバー
ジョン情報を転送する機能が追加された点が、図14のデータ転送部231と異なってい
る。
【0178】
次に、データ変換部140−2の構成例について説明する。図17Aに示すように、
データ変換部140は、鍵記憶部141−2と、復号部142と、書込部143と、バー
ジョン情報記憶部144とを備えている。データ変換部140、復号部142、および、
書込部143の機能は、図14と同様であるため、同一の符号を付し説明は省略する。
【0179】
バージョン情報記憶部144は、半導体メモリチップ100のバージョン情報を記憶
する。鍵記憶部141−2は、対称鍵方式の暗号鍵Kを記憶する。この暗号鍵Kは、半導
体メモリチップ100のバージョン情報記憶部144が格納するバージョン情報に対応す
る暗号鍵である。
【0180】
次に、図17Aのように構成された書き込み装置300−2、書込制御部230−2
、および、データ変換部140−2による書込データの書き込み処理について図19を用
いて説明する。図19は、本変形例における書き込み処理の全体の流れを示すフローチャ
ートである。
【0181】
書き込み装置300−2は、書込データ(データD)と書込先ページの指定とを入力
する(ステップS701)。ECC生成部310−2は、データDのECCを生成し、生
成したECCをデータ送信部340に転送する(ステップS702)。また、ECC生成
部310−2は、データDを暗号化部330に転送する(ステップS703)。次に、暗
号化部330−2が、鍵選択部350に暗号鍵取得要求を送る(ステップS704)。
【0182】
本実施の形態では、暗号鍵は半導体メモリチップ100のバージョンに対応している
。バージョンが異なれば暗号鍵も異なる。書き込み装置300の鍵記憶部320−2は、
半導体メモリチップ100の各バージョンに対応する暗号鍵を格納しているが、半導体メ
モリチップ100のバージョンが分からないと対応する暗号鍵が得られない。
【0183】
そこで、鍵選択部350は、暗号化部330−2から暗号鍵取得要求を受け付けると
、コントローラー200にバージョン取得要求を送る(ステップS705)。コントロー
ラー200は、半導体メモリチップ100のデータ変換部140のバージョン情報記憶部
144から、半導体メモリチップ100のバージョン情報を読み出し、データ転送部23
1に入力する(ステップS706)。データ転送部231は、バージョン情報を書き込み
装置300の鍵選択部350に送信する(ステップS707)。鍵選択部350は、受信
したバージョン情報に対応する暗号鍵Kを鍵記憶部320−2から選択する(ステップS
708)。そして、鍵選択部350は、選択した暗号鍵Kを暗号化部330−2に送信す
る(ステップS709)。
【0184】
暗号化部330−2は、送信された暗号鍵Kを用いて、書き込むべきデータ(データ
D)を暗号化し、暗号化データD’を得る(ステップS710)。暗号化部330−2は
、暗号化データD’をデータ送信部340に送る(ステップS711)。データ送信部3
40は、暗号化データD’、書込先ページの指定、および、ECCを、コントローラー2
00の書込制御部230−2に送信する(ステップS712)。書込制御部230−2の
データ転送部231−2は、暗号化データD’、書込先ページ指定、およびECCを受信
し(ステップS713)、それらを半導体メモリチップ100のデータ変換部140−2
に送信する(ステップS714)。
【0185】
データ変換部140−2は、受信した暗号化データD’を復号部142に入力する(
ステップS715)。復号部142は、鍵記憶部141−2から暗号鍵Kを取得する(ス
テップS716)。復号部142は、暗号鍵Kを用いて、暗号化データD’をデータDに
復号する(ステップS717)。書込部143は、復号されたデータDを、書込先ページ
指定によって指定されたメモリ110上のページに記録する(ステップS718)。また
、書込部143は、受信されたECCを、指定されたページに対応するECCとして符号
記憶部111に格納する(ステップS719)。
【0186】
図17Aのデータ変換部140−2を経由して記録されるメモリ領域へのデータ記録
は、必ずデータ変換部140−2による変換を受ける。データ変換部140−2を経由し
てデータが記録される領域が書き込み特殊領域113に相当する。
【0187】
書き込み装置300にデータDが入力された場合、データDは半導体メモリチップ1
00のバージョンに対して選択された暗号鍵Kで暗号化される。そして、半導体メモリチ
ップ100のデータ変換部140−2には、暗号化データD’=Enc(K,D)が入力
される。書き込み特殊領域113にデータDが正しく記録されるためには、半導体メモリ
チップ100が暗号鍵Kを保持している必要がある。即ち、この場合も、書き込み装置3
00が半導体メモリチップ100を認証している。
【0188】
以下、書き込み特殊領域への別の書き込み方法を述べる。これはMKBを用いるもので
ある。図17Bに、本発明の半導体メモリチップの書き込み特殊領域1に対して、書き込
み装置がコントローラーを介して書き込みを行う構成を示す。
【0189】
書き込み装置のメディア鍵格納手段は、当該書き込み装置が保持するMKBのメディア
鍵KMを格納している。また、半導体メモリチップのデータ変換手段は、デバイス鍵KDを保
持している。図17Bの書き込み装置が、図17Bのコントローラーを介して、図17B
の半導体メモリチップの書き込み特殊領域にデータを書き込む際の動作例を図17Cに示
す。データDと書き込み先アドレスの指定が書き込み装置に入力されると(ステップS2
001)、当該データDは書き込み装置のECC生成手段に入力される。ECC生成手段は前記
データDのECCであるECC( D )を生成し、データと共に暗号化手段に送る(ステップS20
02)。暗号化手段は、メディア鍵格納手段からメディア鍵KMを取得し(ステップS20
03)、前記メディア鍵KMでデータDとECC( D )とを暗号化して、それぞれD’とECC’と
を得る(ステップS2004)。次いで、暗号化手段は、暗号化データD’と暗号化ECC(
即ち、ECC’)とをデータ送信手段に送る(ステップS2005)。
【0190】
データ送信手段はMKBを取得し(ステップS2006)、当該MKBをコントローラーに
送る(ステップS2007)。当該MKBはコントローラーのデータ書き込み手段のデータ
転送部に入力される。データ転送部は当該MKBを半導体メモリチップのデータ変換手段に
送る(ステップS2008)。データ変換手段は、受信したMKBをMKB処理部に入力する(
ステップS2009)。MKB処理部は、当該データ変換手段が格納するデバイス鍵KDを取
得し(ステップS2010)、当該デバイス鍵KDを用いて前記MKBを処理する(ステップ
S2011)。前記デバイス鍵KDが前記MKBによって無効化されていない時、及び、その
時に限って、MKB処理部はメディア鍵KMを出力する。さもなければ、MKB処理部はエラーを
出力する。処理結果(即ち、正しく得られたメディア鍵KMまたはエラー)は、MKB処理部
から復号部に送られる(ステップS2012)。復号部は前記処理結果がメディア鍵KMか
否かを判定する(ステップS2013)。エラーが送られて来た場合、復号部はコントロ
ーラーのデータ書き込み手段にエラー通知を送る(ステップS2014)。データ書き込
み手段はエラー通知を書き込み装置に転送する(ステップS2015)。書き込み装置は
エラー通知を受け取ると、データ書き込み動作を停止する(ステップS2016)。
【0191】
一方、MKB処理部からメディア鍵KMが送られて来た場合、復号部は当該メディア鍵KM
を保持する(ステップS2017)と共に、復号部はコントローラーのデータ書き込み手
段にデータ送信要求を送る(ステップS2018)。データ転送部はデータ送信要求を書
き込み装置に転送する(ステップS2019)。書き込み装置がデータ送信要求を受け取
ると、書き込み装置のデータ送信手段は、暗号化されたデータD(即ち、暗号化データD’
)と暗号化されたECC(即ち、ECC’)とを送出し、コントローラーに送る(ステップS2
020)。前記暗号化データD’と暗号化ECC(ECC’)とは、コントローラーのデータ書
き込み手段を介して、半導体メモリチップのデータ変換手段に送られる。前記暗号化デー
タD’と暗号化ECC(ECC’)とはデータ変換手段の復号部に送られる(ステップS202
1)。復号部は保持しているメディア鍵KMで前記暗号化データD’と暗号化ECC(ECC’)
とを復号し、データDとECCとを得る(ステップS2022)。復号部はデータDを書き込
み特殊領域に書き込み、ECCをECC格納部に書き込む(ステップS2023)。
【0192】
読み出し特殊領域は、半導体メモリチップ100がコントローラー200を認証する
ために利用される。一方、書き込み特殊領域は、書き込み装置300が半導体メモリチッ
プ100を認証するために利用される。ここで図1のトラスト・チェインを思い起こそう
。書き込み装置300から、半導体メモリチップ100、コントローラー200というト
ラスト・チェインを構成するためには、読み出し特殊領域と書き込み特殊領域が交わりを
持つ必要がある。即ち、この交わりの領域(共通領域)に記録されたデータが正しく(書
き込み装置300の意図した通りに)コントローラー200によって読み出されることに
よって、トラスト・チェインが完成することになる。以降、読み出し特殊領域と書き込み
特殊領域の交わりの領域(共通領域)を単に特殊領域と呼ぶことがある。
【0193】
なお、図18の例では、バージョン情報は単なる数値としていたが、バージョン情報
はこれに限られるものではない。また、バージョン情報およびバージョン情報以外の1以
上の情報に応じて、複数の暗号鍵から対応する暗号鍵を選択するように構成してもよい。
例えば、半導体メモリチップ100が製造された時期、または、製造時のロット番号を元
にバージョン情報を定めても良い。
【0194】
また、バージョン情報は数値に限定されるものではない。例えば、文字列、または、
数値や文字列などの順列からなる配列であっても良い。図20は、このように構成したバ
ージョン情報の変形例を示す図である。図20では、半導体メモリチップ100の製造工
場名、当該製造工場で管理しているロット番号、および、顧客番号の順列をバージョン情
報とした例が示されている。ここで、顧客番号とは、例えば半導体メモリチップ100の
製造者が、大口の需要家に対して割り振った番号である。大口需要家向けでない製品につ
いては、この数値を固定の値(例えば0)とする。図20のような対応表が、書き込み装
置300の鍵記憶部320−2に記憶される。
【0195】
このように、第2の実施の形態にかかる半導体メモリチップは、メモリと同一ダイ上
に構成され、コントローラーを認証する認証手段として機能する暗号鍵共有部および送出
制御部を備えている。そして、認証されたコントローラーのみが、メモリに格納されたデ
ータを正しく読み出すことができる。また、メモリと同一ダイ上に構成され、所定の暗号
鍵を記憶する鍵記憶部と当該暗号鍵によりデータを復号してメモリに記憶するデータ変換
部とを備えている。そして、正しい暗号鍵を保持していなければデータを正しく記録でき
ない。これにより、メモリカードの偽造等によるデータの不正利用を防止することができ
る。
【0196】
(第3の実施の形態)
第2の実施の形態では、書き込み特殊領域に書き込む前に書込データを復号していた。
これに対し、第3の実施の形態にかかる半導体メモリチップは、書き込み特殊領域から読
み出したデータ(暗号化された書込データ)を復号する。この場合も、書き込み特殊領域
から読み出したデータが正しく復号するためには、書き込み装置が暗号化に用いた暗号鍵
に対応する暗号鍵を半導体メモリチップが保持している必要がある。即ち、この場合も、
書き込み装置が半導体メモリチップを認証している。
【0197】
図21は、第3の実施の形態の半導体メモリチップ2100の構成の一例を示すブロ
ック図である。なお、コントローラー200は、第2の実施の形態と同様の構成である。
図21に示すように、半導体メモリチップ2100は、メモリ2110と、暗号鍵共有部
120と、送出制御部2130と、データ変換部2140と、受信制御部2150と、読
出部2160とを備えている。
【0198】
第2の実施の形態との相違点の1つは、データ変換部140の位置である。図2に示
すように、第2の実施の形態では、データ変換(復号)は書き込みの際に行われるが、第
3の実施の形態では読み出しの際に行われる。この他、第3の実施の形態では、メモリ2
110および送出制御部2130の構成と、受信制御部2150および読出部2160を
追加したことが、第2の実施の形態と異なっている。その他の構成および機能は、第2の
実施の形態にかかる半導体メモリチップ100の構成を表すブロック図である図2と同様
であるので、同一符号を付し、ここでの説明は省略する。
【0199】
送出制御部2130は、読出部132が削除されたことが図5の送出制御部130と
異なっている。なお、送出制御部2130は、読出部132が読出したデータを入力する
代わりに、読出部2160により読み出され、データ変換部140により変換されたデー
タを入力する。
【0200】
メモリ2110は、符号記憶部111と、共通領域2114と、一般領域115とを
備えている。なお、第3の実施の形態では、書き込み特殊領域とは、メモリ領域のうち、
データ読み出しの際、データ変換部2140による復号を受けるデータが書き込まれる予
め定められたメモリ領域である。第3の実施の形態では、データ読み出しの際に、データ
変換部2140により復号されたデータが送出制御部2130に入力され、コントローラ
ー200の認証が行われる。したがって、データ変換部2140による復号を受けるデー
タが書き込まれる書き込み特殊領域と、認証されたコントローラー200のみがデータを
正しく読み出すことができる読み出し特殊領域とが一致する。このため、図21では、メ
モリ2110に共通領域2114のみを図示している。
【0201】
受信制御部2150は、書込データが暗号化された暗号化データを受信して復号せず
に共通領域2114に書き込む処理を制御する。
【0202】
読出部2160は、読み出しが指定されたページのデータを読み出し特殊領域(共通
領域2114)から読み出し、データ変換部2140に送信する。また、読出部2160
は、指定されたページのデータに対応するECCを符号記憶部111から読み出し、送出
制御部2130に送信する。
【0203】
次に、図21の受信制御部2150の構成例および第3の実施の形態の書き込み装置
2300の構成例について図22を用いて説明する。なお、図22では、書き込み処理に
関わる部分のみが図示されている。
【0204】
まず、書き込み装置2300の構成について説明する。図22に示すように、書き込
み装置2300は、ECC生成部2310と、鍵記憶部320と、暗号化部2330と、
データ送信部2340とを備えている。鍵記憶部320は、図14の鍵記憶部320と同
様の構成のため同一の符号を付し、説明を省略する。
【0205】
ECC生成部2310は、書き込むべきデータとして入力された書込データのECC
を生成する。暗号化部2330は、公開鍵Kpを用いて書込データを暗号化する。データ
送信部2340は、暗号化データと、ECCと、書込先ページの指定とをコントローラー
200の書込制御部230に送信する。
【0206】
次に、受信制御部2150の構成について説明する。図22に示すように、受信制御
部2150は、書込部2143を備えている。書込部2143は、暗号化データを共通領
域2114の指定されたページに記録する。また、書込部2143は、ECCを符号記憶
部111に格納する。
【0207】
次に、図22のように構成された書き込み装置2300、書込制御部230、および
、受信制御部2150による書込データの書き込み処理について図23を用いて説明する
。図23は、第3の実施の形態における書き込み処理の全体の流れを示すフローチャート
である。
【0208】
書き込み装置2300は、書込データ(データD)と書込先ページの指定とを入力す
る(ステップS801)。書き込み装置2300は、入力されたデータDをECC生成部
2310に入力する(ステップS802)。次に、ECC生成部2310が、データDの
ECCを生成し、生成したECCをデータ送信部2340に転送する(ステップS803
)。また、ECC生成部2310は、データDを暗号化部2330に転送する(ステップ
S804)。
【0209】
暗号化部2330は、鍵記憶部320から公開鍵Kpを取得する(ステップS805
)。また、暗号化部2330は、取得した公開鍵KpによってデータDを暗号化し、暗号
化データD’を得る(ステップS806)。次に、暗号化部2330は、暗号化データD
’をデータ送信部2340に送る(ステップS807)。データ送信部340は、暗号化
データD’、書込先ページの指定、および、ECCを、コントローラー200の書込制御
部230に送信する(ステップS808)。
【0210】
書込制御部230のデータ転送部231が、暗号化データD’、書込先ページ指定、
および、ECCを受信し(ステップS809)、それらを半導体メモリチップ100の受
信制御部2150に送信する(ステップS810)。
【0211】
受信制御部2150は、書込部2143に暗号化データD’と書込先ページ指定とを
入力する(ステップS811)。書込部2143は、入力された暗号化データD’を、書
込先ページ指定によって指定されたメモリ110上のページに記録する(ステップS81
2)。また、受信制御部2150は、ECCを、指定されたページに対応するECCとし
て、符号記憶部111に格納する(ステップS813)。
【0212】
このように、本実施の形態では、書き込み装置2300にデータDが入力された場合
、データDは、書き込み装置2300が保持する公開鍵Kpで暗号化される。そして、半
導体メモリチップ100の受信制御部2150には、暗号化データD’=Enc(Kp,
D)と、データDに関するECC(D)とが入力される。その結果、書き込み特殊領域(
共通領域2114)にデータEnc(Kp,D)が記録され、符号記憶部111にECC
(D)が記録される。
【0213】
次に、図21のデータ変換部2140の構成例について図24を用いて説明する。図
24に示すように、データ変換部2140は、鍵記憶部141と、復号部2142とを備
えている。鍵記憶部141の構成および機能は、図14と同様であるため同一の符号を付
し、説明を省略する。復号部2142は、読出部2160により読み出されたデータを、
鍵記憶部141に記憶された秘密鍵Ksを用いて復号する。
【0214】
次に、図24のように構成されたデータ変換部2140により実行されるデータ読出
処理について図25を用いて説明する。図25は、第3の実施の形態におけるデータ読出
処理の全体の流れを示すフローチャートである。
【0215】
まず、コントローラー200が、読み出し対象となるページの指定を再生装置などの
外部装置から入力する(ステップS901)。コントローラー200の読出制御部220
は、半導体メモリチップ100に対して、メモリ110内の読み出し指定ページのデータ
の読み出し指示を送る(ステップS902)。半導体メモリチップ100の読出部216
0は、読み出し指定ページのデータを読み出し、データ変換部2140に入力する(ステ
ップS903)。また、読出部2160は、読み出し指定ページに対応するECCを符号
記憶部111から読み出して送出制御部2130に送る(ステップS904)。
【0216】
上述のように本実施の形態では、暗号化データを復号せずに共通領域2114に書き
込むため、読み出したデータは暗号化されている。以下、読み出したデータをデータD’
と表す。
【0217】
データ変換部2140は、入力されたデータD’を復号部2142に入力する(ステ
ップS905)。復号部2142は、鍵記憶部141から秘密鍵Ksを取得する(ステッ
プS906)。復号部2142は、取得した秘密鍵Ksを用いて入力されたデータD’を
復号し、データDを得る(ステップS907)。そして、復号部2142は、復号したデ
ータDを送出制御部2130に送る(ステップS908)。
【0218】
送出制御部2130は、データ変換部2140から受信した復号されたデータDと符
号記憶部111から読み出されたECCとをコントローラー200の読出制御部220に
送出する(ステップS909)。この後の処理は、図6のステップS212以降と同様で
あるため、図25では記載を省略している。
【0219】
本実施の形態の場合、書き込み特殊領域(共通領域2114)からのデータ読み出し
は、必ず半導体メモリチップ100のデータ変換部2140を経由して行われる。上述の
書き込みによって、書き込み特殊領域(共通領域2114)の読み出し対象ページのデー
タがEnc(Kp,D)であり、当該ページのECCとして、ECC(D)が符号記憶部
111に記録されているとする。この場合、半導体メモリチップ100のデータ変換部2
140から送出制御部2130に送られるデータはDec(Ks,Enc(Kp,D))
=Dである。そして、コントローラー200は、データDとECC(D)とを受け取るこ
とになる。ここで、Dec(A,B)とは、復号に用いる鍵AによってデータBを復号す
ることを表す。
【0220】
このように、書き込み装置300がEnc(Kp,D)とECC(D)を書き込んだ
場合に、コントローラー200が所期のデータDと対応するECC(D)とを正しく受け
取るためには、半導体メモリチップ100が秘密鍵Ksを格納している必要がある。即ち
、この場合も、書き込み装置300が半導体メモリチップ100を認証している。上述の
データ変換部2140を経由して読み出されるメモリ領域が、本実施の形態の書き込み特
殊領域に相当する。
【0221】
このように、第3の実施の形態にかかるメモリチップでは、メモリと同一ダイ上に構
成され、所定の暗号鍵を記憶する鍵記憶部とメモリから読み出したデータを当該暗号鍵に
より復号するデータ変換部とを備えている。そして、正しい暗号鍵を保持していなければ
書き込まれたデータを正しく復元できない。これにより、メモリカードの偽造等によるデ
ータの不正利用を防止することができる。
【0222】
(第4の実施の形態)
第2および第3の実施の形態で述べたように、書き込み装置によって特殊領域(=共通
領域)にデータを書き込み、特殊領域からコントローラーがデータを読み出すことにより
、トラスト・チェインが構築される。書き込み装置によって特殊領域に書き込まれたデー
タがコントローラーによって正しく読み出されたか否かは、実際には、コンテンツの再生
などのデータ利用が正常にできるか否かによって判断される。
【0223】
第4の実施の形態では、上記実施の形態の半導体メモリチップ内のデータを利用する
装置(プレーヤー等)を含めた具体的なデータ利用の実施の形態を説明する。
【0224】
図26は、第4の実施の形態でデータを利用する装置であるプレーヤー400および
プレーヤー400がデータを読み出すメモリカード2501の構成の一例を示すブロック
図である。
【0225】
図26に示すように、メモリカード2501は、半導体メモリチップ100とコント
ローラー200とを含む。半導体メモリチップ100およびコントローラー200は、第
2の実施の形態または第3の実施の形態で述べた構成を備える。例えば、図26のコント
ローラー200は、例えば、図3Aの暗号鍵共有部210と図5の読出制御部220と具
備している。メモリカード2501は、例えばSDメモリカードなどにより構成すること
ができる。
【0226】
第4の実施の形態では、暗号化ビデオデータ2541、暗号化ビデオデータ2541
を復号するために用いられる復号鍵Kcが暗号化された暗号化復号鍵2531、および、
MKB2521(以下、単にMKBという)が、半導体メモリチップ100のメモリ11
0内の一般領域115に記録されている。また、メディア鍵変換鍵2511(以下、メデ
ィア鍵変換鍵KTという)がメモリ110内の特殊領域(共通領域114)に格納されて
いる。
【0227】
復号鍵Kcは暗号化された暗号化復号鍵2531として記録される。この暗号化に用
いられる鍵は、MKBが正しく処理された場合に導出されるメディア鍵KMを、メディア
鍵変換鍵KTを用いて変換したものである。例えば、暗号化復号鍵2531=AES−E
(AES−G(KT,KM),Kc)。この例では、変換に一方向性関数であるAES−
Gを用い、暗号化にAES−Eを用いている。
【0228】
プレーヤー400は、デバイス鍵を表すKD410(以下、デバイス鍵KDという)
を保持するとともに、MKB処理部420と、メディア鍵変換部430と、鍵復号部44
0と、ビデオ復号部450と、再生部460とを備えている。
【0229】
MKB処理部420は、一般領域115から読み出されたMKBをデバイス鍵KDを
用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。メディア鍵
変換部430は、導出されたメディア鍵KMを、特殊領域から読み出されたメディア鍵変
換鍵KTを用いて変換した鍵Kwを生成する。鍵復号部440は、一般領域115から読
み出された暗号化復号鍵2531を鍵Kwで復号することにより復号鍵Kcを生成する。
ビデオ復号部450は、復号鍵Kcを用いて暗号化ビデオデータを復号する。再生部46
0は、復号されたビデオデータを再生する。
【0230】
次に、図26のように構成されたプレーヤー400によるメモリカード2501内の
データの再生処理について図27を用いて説明する。図27は、第4の実施の形態におけ
る再生処理の全体の流れを示すフローチャートである。
【0231】
プレーヤー400は、メモリカード2501内のコントローラー200に対して、一
般領域115に含まれているMKBの読み出しを指示する(ステップS1001)。例え
ば、プレーヤー400は、コントローラー200に対して当該MKBの先頭アドレスとサ
イズとを指定する。
【0232】
コントローラー200は、指定された領域を含むページを半導体メモリチップ100
から読み出し、指定された領域のデータ(即ちMKBの値)をプレーヤー400に送る。
プレーヤー400は、受信したMKBをMKB処理部420に入力する(ステップS10
02)。MKB処理部420は、プレーヤー400が保持しているデバイス鍵KDを読み
出し、入力されたMKBをデバイス鍵KDを用いてMKB処理し、メディア鍵KMを導出
して出力する(ステップS1003)。
【0233】
次に、MKB処理部420は、MKB処理によりメディア鍵KMが得られたか否かを
判断する(ステップS1004)。デバイス鍵KDがMKBによって無効化されていた場
合、MKB処理部420は正しいメディア鍵KMを導出することができない。この場合、
MKB処理部420は、メディア鍵KMが得られなかったと判断し(ステップS1004
:No)、エラーを出力する。なお、MKB処理部420からエラーが出力された場合、
プレーヤー400は警告メッセージを表示して動作を停止する。
【0234】
メディア鍵KMが得られた場合(ステップS1004:Yes)、プレーヤー400
は、メディア鍵KMをメディア鍵変換部430に送る(ステップS1005)。次に、プ
レーヤー400は、特殊領域(共通領域114)に含まれているメディア鍵変換鍵KTの
読み出しを指示する(ステップS1006)。例えば、プレーヤー400は、コントロー
ラー200にメディア鍵変換鍵KTの先頭アドレスとサイズとを指定する。
【0235】
コントローラー200は、指定された領域を含むページを半導体メモリチップ100
から読み出し、指定された領域のデータ(即ちメディア鍵変換鍵KTの値)をプレーヤー
400に送る。プレーヤー400は、コントローラー200から受信したメディア鍵変換
鍵KTの値をメディア鍵変換部430に入力する。
【0236】
メディア鍵変換部430は、入力されたメディア鍵変換鍵KTでメディア鍵KMを変
換して鍵Kw=AES−G(KT,KM)を得る(ステップS1007)。プレーヤー4
00は、鍵Kwの値を鍵復号部440に送る。
【0237】
次に、プレーヤー400は、コントローラー200を介して、半導体メモリチップ1
00の一般領域115から暗号化復号鍵2531を読み取る(ステップS1008)。例
えば、プレーヤー400は、コントローラー200に暗号化復号鍵2531の先頭アドレ
スとサイズを指定する。
【0238】
コントローラー200は、一般領域115から指定された領域を含むページを読み出
し、指定された領域のデータ(即ち暗号化復号鍵2531の値)をプレーヤー400に送
る。プレーヤー400は、コントローラー200から受信した暗号化復号鍵2531の値
を鍵復号部440に入力する。
【0239】
鍵復号部440は、入力された暗号化復号鍵2531を鍵Kwで復号する(ステップ
S1009)。これにより、復号鍵Kcの値が得られる。復号鍵Kcを得る式は以下の(
1)式のように表される。
【0240】
Dec(Kw,暗号化復号鍵)
=Dec(Kw,Enc(AES−G(KT,KM),Kc))
=Dec(Kw,Enc(Kw,Kc))
=Kc ・・・(1)
鍵復号部440は、復号鍵Kcの値をビデオ復号部450に送る(ステップS1010
)。ビデオ復号部450は、受信した復号鍵Kcの値を保持する。
【0241】
次に、プレーヤー400は、コントローラー200を介して、一般領域115から順
次暗号化ビデオデータを読み取り、ビデオ復号部450に順次入力する(ステップS10
11)。ビデオ復号部450は、復号鍵Kcを用いて暗号化ビデオデータを順次復号し(
ステップS1012)、再生部460に送る(ステップS1013)。再生部460は、
受信したビデオデータを順次再生(表示)する(ステップS1014)。
【0242】
メディア鍵変換鍵KTは、正しいコンテンツ復号鍵(復号鍵Kc)を得る為に必要な
データである。この値は、例えば、半導体メモリチップ100毎に異なっていても良い。
または、メモリカード2501毎に異なっていても良い。更には、メモリカード2501
毎に統計的に異なっていても良い。統計的に異なるとは、厳密に異なる値とならない場合
があるが、統計的には異なるとみなせることを意味する。例えば桁数が極めて大きい乱数
を発生させ、この乱数の値を用いる場合が該当する。
【0243】
特殊領域に記録されるメディア鍵変換鍵KTがメモリカード2501毎に(少なくと
も統計的に)異なっている場合、メディア鍵変換鍵KTは、メモリカード2501のID
の一種とみなすことができる。なお、暗号化されたコンテンツデータ(ビデオデータなど
)を復号されるために必要なデータとして、メディア鍵変換鍵KTの代わりにMKBを保
存するように構成してもよい。
【0244】
メディア鍵変換鍵KTを半導体メモリチップ100の書き込み特殊領域に正しく記録
するには、半導体メモリチップ100が書き込み装置300によって認証されなければな
らない。プレーヤー400が、読み出し特殊領域に記録されたメディア鍵変換鍵KTを、
コントローラー200を経由して正しく読み出すことができる為には、コントローラー2
00が半導体メモリチップ100によって認証されていなければならない。結局、書き込
み装置300が半導体メモリチップ100を経由してコントローラー200を認証するト
ラスト・チェインが確立されていなければ、プレーヤー400はメディア鍵変換鍵KTを
正しく読み出すことはできない。即ち、プレーヤー400によるビデオの再生をもって、
トラスト・チェイン確立の証として良い。
【0245】
なお、第4の実施の形態におけるMKBは、ビデオの供給者がビデオ毎に供給するよ
うにしても良い。一般に、MKBは対称鍵暗号を用いて構成されるが、その場合は、公開
鍵暗号を用いて構成するようにすると良い。その理由を以下に説明する。
【0246】
対称鍵暗号を用いて構成されたMKBの場合、一般にMKBを生成する為には、全て
のデバイス鍵KDの値を知っている必要がある。ビデオ供給者にMKBの生成を行わせる
為には、全てのデバイス鍵KDの値を当該ビデオ供給者に提供する必要がある。もし、こ
のデバイス鍵KDの値が悪意のプレーヤー製造者に漏えいした場合、MKBによるプレー
ヤーの無効化が実質無意味になる。悪質なまたは粗悪なプレーヤーをMKBを用いて無効
化しても、悪意のプレーヤー製造者は、無効化されていないデバイス鍵KDを用いて、幾
らでも悪質なまたは粗悪なプレーヤーを製造し続けることが可能であるからである。
【0247】
そこに、公開鍵暗号を用いてMKBを構成するメリットがある。公開鍵暗号を用いる
場合、デバイス鍵KDは秘密鍵を用いて構成される。プレーヤー製造者は、当該プレーヤ
ー製造者に割り当てられたデバイス鍵KDの値しか知らない。一方、ビデオ供給者には、
MKB生成用に公開鍵を配布する。ビデオ供給者は、当該公開鍵を用いて自由にMKBを
生成することが可能である。一方、仮にMKB生成用の公開鍵が悪意のプレーヤー製造者
に漏えいしても、公開鍵暗号の基本的な性質から、秘密鍵で構成されているデバイス鍵K
Dの値を知ることはできない。このように、図26におけるMKBは公開鍵暗号に基づい
て構成されたMKBであっても良い。
【0248】
このように、第4の実施の形態では、一般領域に暗号化データを記憶し、特殊領域に
暗号化データを復号するために必要なデータを記憶し、特殊領域のデータを用いて暗号化
データを復号して利用できる。これにより、コンテンツ供給者による再生デバイスのリボ
ークが実現可能となる。
【0249】
(第5の実施の形態)
第5の実施の形態では、コンテンツに付随するMKBによるコントローラーの無効化と
、暗号化ビデオデータのメモリカード毎の個別化とを組み合わせた実施の形態を説明する

【0250】
図28は、第5の実施の形態のプレーヤー400−2およびメモリカード2601の
構成の一例を示すブロック図である。
【0251】
図28に示すように、メモリカード2601は、半導体メモリチップ100とコント
ローラー200−2とを含む。半導体メモリチップ100は、第2の実施の形態または第
3の実施の形態で述べた構成を備える。
【0252】
第5の実施の形態では、暗号化ビデオデータ2541、暗号化されたMKB2521
−2(以下、MKB’という)およびMKB2522(以下、MKB2という)が一般領
域115に記録されている。また、MKB’からMKBを復号するためのMKB復号鍵2
513(以下、MKB復号鍵KTという)およびメディア鍵変換鍵2512(以下、メデ
ィア鍵変換鍵KT2という)が特殊領域(共通領域114)に格納されている。このよう
に、本実施の形態では、メディア鍵変換鍵2511(メディア鍵変換鍵KT)の代わりに
、MKBの復号に用いられるMKB復号鍵KTを備えている。
【0253】
次に、コントローラー200−2の構成例について説明する。本実施の形態のコント
ローラー200−2は、第2または第3の実施の形態のコントローラー200の構成に加
えて、デバイス鍵KD2610(以下、デバイス鍵KD2という)と、MKB処理部26
20と、メディア鍵変換部2630と、ビデオ復号部2640とを備えている。なお、図
28では、第2または第3の実施の形態で説明した構成部は図示を省略しているが、コン
トローラー200−2は、例えば、図7の暗号鍵共有部210−2と図11Aの読出制御
部220−3とを具備している。そして、読み出し特殊領域に格納されている、MKB復
号鍵KTおよびメディア鍵変換鍵KT2の読み出しは、暗号鍵共有部210−2と読出制
御部220−3とを用いて行われる。
【0254】
MKB処理部2620は、一般領域115から読み出されたMKB2をデバイス鍵K
D2を用いて処理することによりメディア鍵KM2を導出するMKB処理を実行する。メ
ディア鍵変換部2630は、導出されたメディア鍵KM2を、特殊領域から読み出された
メディア鍵変換鍵KT2を用いて変換した復号鍵Kc2を生成する。ビデオ復号部264
0は、復号鍵Kc2を用いて暗号化ビデオデータを復号する。
【0255】
次に、プレーヤー400−2の構成例について説明する。プレーヤー400−2は、
デバイス鍵410(以下、デバイス鍵KDという)を保持するとともに、MKB処理部4
20−2と、ビデオ復号部450と、再生部460と、MKB復号部470と、を備えて
いる。
【0256】
第5の実施の形態では、MKB復号部470が追加されたこと、MKB処理部420
−2の機能、および、鍵復号部440とメディア鍵変換部430が削除されたことが、第
4の実施の形態のプレーヤー400と異なっている。
【0257】
MKB復号部470は、一般領域115から読み出されたMKB’をMKB復号鍵K
Tで復号してMKBを生成する。MKB処理部420−2は、生成されたMKBをデバイ
ス鍵KDを用いて処理することによりメディア鍵KMを導出するMKB処理を実行する。
【0258】
上述のように、本実施の形態では、一般領域115に2つのMKB(MKBを暗号化
したMKB’およびMKB2)が記録されている。MKB’を復号したMKBは、第4の
実施の形態と同様にプレーヤー400−2の認証および無効化に用いられる。一方、MK
B2は、コントローラー200の認証および無効化に用いられる。
【0259】
また、本実施の形態では、特殊領域(共通領域114)はMKB復号鍵KTおよびメ
ディア鍵変換鍵KT2を格納している。MKB復号鍵KTは、プレーヤー400−2用の
MKB復号鍵である。メディア鍵変換鍵KT2は、コントローラー200用のメディア鍵
変換鍵である。これらの鍵は、メモリカード2601毎に異なっていて良い。鍵とデータ
との間の関係は次のようになっている。
【0260】
(1)MKBを無効化されていないデバイス鍵KDで処理するとメディア鍵KMが得
られる。また、MKB2を無効化されていないデバイス鍵KD2で処理するとメディア鍵
KM2が得られる。
【0261】
(2)(平文の)ビデオデータをC、暗号化ビデオデータをC’とすると、ビデオデー
タCはメディア鍵KMと復号鍵Kc2で二重に暗号化されている:C’=AES−E(K
c2,AES−E(KM,C))。
【0262】
(3)MKBはMKB’をMKB復号鍵KTで復号して得られる:MKB=AES−D
(KT,MKB’)。
【0263】
(4)復号鍵Kc2はメディア鍵KM2をメディア鍵変換鍵KT2で変換して得られる
:Kc2=AES−G(KT2,KM2)。
【0264】
(5)暗号化ビデオデータC’の復号過程は次の通り:
AES−D(KM,AES−D(Kc2,C’))
=AES−D(KM,AES−D(Kc2,AES−E(Kc2,AES−E(KM,C
))))
=AES−D(KM,AES−E(KM,C))
=C。
【0265】
次に、図28のように構成されたプレーヤー400−2によるメモリカード2601
内のデータの再生処理について図29を用いて説明する。図29は、第5の実施の形態に
おける再生処理の全体の流れを示すフローチャートである。
【0266】
プレーヤー400−2は、メモリカード2601内のコントローラー200−2に対
して、一般領域115に含まれているMKB2の読み出しを指示する(ステップS110
1)。例えば、プレーヤー400−2は、コントローラー200−2に対して当該MKB
2の先頭アドレスとサイズとを指定する。
【0267】
コントローラー200−2は、指定された領域を含むページを半導体メモリチップ1
00から読み出し、指定された領域のデータ(即ちMKB2の値)をMKB処理部262
0に入力する(ステップS1102)。MKB処理部2620は、コントローラー200
−2が保持しているデバイス鍵KD2を読み出し、入力されたMKB2をデバイス鍵KD
2を用いてMKB処理し、メディア鍵KM2を導出して出力する(ステップS1103)

【0268】
次に、MKB処理部2620は、MKB処理によりメディア鍵KM2が得られたか否
かを判断する(ステップS1104)。デバイス鍵KDがMKB2によって無効化されて
いた場合、MKB処理部2620は正しいメディア鍵KM2を導出することができない。
この場合、MKB処理部2620は、メディア鍵KM2が得られなかったと判断し(ステ
ップS1104:No)、エラーを出力する。
【0269】
メディア鍵KM2が得られた場合(ステップS1104:Yes)、MKB処理部2
620は、メディア鍵KM2をメディア鍵変換部2630に送る(ステップS1105)
。メディア鍵変換部2630は、特殊領域(共通領域114)に含まれているメディア鍵
変換鍵KT2を読み出す(ステップS1106)。そして、メディア鍵変換部2630は
、読み出したメディア鍵変換鍵KT2でメディア鍵KM2を変換した復号鍵Kc2を生成
する(ステップS1107)。メディア鍵変換部2630は、生成した復号鍵Kc2をビ
デオ復号部2640に送信する(ステップS1108)。ビデオ復号部2640は、受信
した復号鍵Kcの値を保持する。
【0270】
次に、プレーヤー400−2は、コントローラー200−2を介して半導体メモリチ
ップ100の一般領域115からMKB’を読み出し、MKB復号部470に入力する(
ステップS1109)。MKB復号部470は、コントローラー200−2を介して半導
体メモリチップ100の特殊領域(共通領域114)からMKB復号鍵KTを読み出す(
ステップS1110)。次に、MKB復号部470は、読み出したMKB復号鍵KTを用
いて、入力されたMKB’を復号し、平文のMKBを得る(ステップS1111)。MK
B復号部470は、平文のMKBをMKB処理部420−2に送る(ステップS1112
)。
【0271】
MKB処理部420−2は、プレーヤー400−2が保持しているデバイス鍵KDを
読み出し、入力されたMKBをデバイス鍵KDを用いてMKB処理し、メディア鍵KMを
導出する(ステップS1113)。
【0272】
次に、MKB処理部420−2は、MKB処理によりメディア鍵KMが得られたか否か
を判断する(ステップS1114)。デバイス鍵KDがMKBによって無効化されていた
場合、MKB処理部420−2は正しいメディア鍵KMを導出することができない。この
場合、MKB処理部420−2は、メディア鍵KMが得られなかったと判断し(ステップ
S1114:No)、エラーを出力する。メディア鍵KMが得られた場合(ステップS1
114:Yes)、MKB処理部420−2は、メディア鍵KMをビデオ復号部450に
送る(ステップS1115)。
【0273】
次に、コントローラー200−2のビデオ復号部2640は、一般領域115から順
次暗号化ビデオデータ2541を読み出す(ステップS1116)。ビデオ復号部264
0は、保持している復号鍵Kc2を用いて、読み出した暗号化ビデオデータを復号する(
ステップS1117)。ビデオ復号部2640は、復号したビデオデータをプレーヤー4
00−2のビデオ復号部450に送る(ステップS1118)。
【0274】
ビデオ復号部450は、復号鍵Kcを用いてビデオデータを順次復号し(ステップS
1119)、再生部460に送る(ステップS1120)。再生部460は、受信したビ
デオデータを順次再生(表示)する(ステップS1121)。
【0275】
メディア鍵変換鍵KT2がメモリカード2601毎に異なっていれば、復号鍵Kc2
もメモリカード2601毎に異なる。従って、メディア鍵KMまたはメディア鍵変換鍵K
T2がメモリカード2601毎に異なっていれば、暗号化ビデオデータ自体がメモリカー
ド2601毎に異なる。即ち、暗号化ビデオデータがメモリカード2601毎に個別化さ
れることになる。
【0276】
このように、第5の実施の形態にかかるメモリチップでは、コンテンツに付随するM
KBによるコントローラーの無効化(コンテンツ供給者による再生デバイスのリボーク)
と、暗号化ビデオデータのメモリカード毎の個別化(コンテンツ供給者によるコントロー
ラーのリボーク)との組み合わせ(二重暗号化)が可能となる。
【0277】
(第6の実施の形態)
これまでは、本発明をコンテンツ保護に適用する実施の形態を述べたが、他の産業分野
へ適用することもできる。第6の実施の形態では、スマートグリッドに適用した実施の形
態を説明する。スマートグリッドとは、原子力や火力など従来の発電に加えて、太陽光や
風力などの再生可能エネルギーを併用する際の電力品質の安定化を図るために構築されて
いる次世代電力網である。
【0278】
図30は、第6の実施の形態の次世代電力網の一構成例を示す図である。次世代電力
網では、電力使用量を集計するメーター3010aと、家電機器を管理するホームサーバ
であるHEMS(Home Energy Management System)3020が各家庭に設置される。ま
た、商業ビルを対象として、ビル内の電気機器を管理するサーバであるBEMS(Buildi
ng Energy Management System)3030がビル毎に設置される。商業ビルには、メータ
ー3010aと同様のメーター3010bが設置される。以下では、メーター3010a
および3010bを単にメーター3010という。
【0279】
メーター3010は、コンセントレータとよばれる中継器(コンセントレータ304
0)によって数台ごとにまとめられ、通信網を介してメーターデータ管理システムである
MDMS(Meter Data Management System)3050と通信する。MDMS3050は、
各家庭のメーター3010から一定の間隔で電力使用量を受信して記憶する。エネルギー
管理システムであるEMS(Energy Management System)3060は、MDMS3050
に集まった複数の家庭の電力使用量、或いは、電力系統に設置されたセンサからの情報に
基づいて、各家庭のメーター3010やHEMS3020に対して電力使用を抑制するよ
う要求するなどの電力制御を行う。また、EMS3060は、遠隔端末ユニットであるR
TU(Remote Terminal Unit)3071に接続された太陽光発電や風力発電などの分散電
源3080、同じくRTU3072に接続された蓄電装置3090、および、RTU30
73に接続された発電側との間を制御する送配電制御装置3100を制御し、グリッド全
体の電圧および周波数を安定化するための制御を行う。
【0280】
図31は、メーター3010の構成例を示すブロック図である。メーター3010は
、MDMS3050と暗号通信を行う。通信経路上にコンセントレータ3040が存在す
るが、コンセントレータ3040は暗号通信を中継するのみである。MDMS3050と
メーター3010とは共有鍵Kを保持しており、当該共有鍵Kを用いて暗号通信を行う。
【0281】
例えば、計測部3011に接続する通信部3012が、共有鍵Kを用いて計測値を暗
号化してMDMS3050に送る。MDMS3050は、保持する共有鍵Kを用いて暗号
化された計測値を復号する。これにより、通信路上で通信が傍受されたとしても、傍受者
は計測値を知ることができない。或いは、MDMS3050から計測部3011に制御用
コマンドが送られる場合がある。例えば、計測の中止や開始、計測データの送付指示など
の制御コマンドである。MDMS3050は、共有鍵Kを用いて、制御コマンドを暗号化
し、暗号化した制御コマンドをメーター3010の通信部3012に送信する。通信部3
012は、共有鍵Kを用いて暗号化制御コマンドを復号し、制御コマンドを計測部301
1に送る。或いは、半導体メモリチップ100のメモリ110の一般領域に電力使用量デ
ータが格納されており、通信部3012は、共有鍵Kを用いて当該電力使用量データを暗
号化し、暗号化電力使用量データをMDMS3050に送信する。MDMS3050は、
共有鍵Kを用いて当該暗号化電力使用量データを復号する。
【0282】
メーター3010において、共有鍵Kは半導体メモリチップのメモリの特殊領域に格
納される。共有鍵Kは、定期的に或いは随時更新されることが望ましい。更新用の共有鍵
をK’とする。MDMS3050は、更新用の共有鍵K’を半導体メモリチップ100の
メモリ110の書き込み特殊領域に書き込む。その為には既に述べたように、半導体メモ
リチップ100がMDMS3050によって認証される必要がある。また、メーター30
10の通信部3012がコントローラー200を介して(更新された)共有鍵K’を読み
出すには、コントローラー200が半導体メモリチップ100によって認証される必要が
ある。共有鍵の更新と、更新された共有鍵の利用を通じて、結果的に、半導体メモリチッ
プ100を使用するメーター3010全体が、MDMS3050によって認証されること
となる。
【0283】
MDMS3050は、例えば、図14の書き込み装置300として、半導体メモリチ
ップ100の書き込み特殊領域に更新用の共有鍵K’を書き込む。また、メーター301
0のコントローラー200は、例えば、図7の暗号鍵共有部210−2と図9の読出制御
部220−2とを具備している。
【0284】
このように、第6の実施の形態では、コンテンツ保護と異なる分野である次世代電力
網で用いられるデータに対して、データの不正利用を防止することができる。
【0285】
なお、本発明は、上記実施の形態そのままに限定されるものではなく、実施段階では
その要旨を逸脱しない範囲で構成要素を変形して具体化することができる。また、上記実
施の形態に開示されている複数の構成要素の適宜な組み合わせにより、種々の発明を形成
することができる。例えば、実施の形態に示される全構成要素からいくつかの構成要素を
削除してもよい。さらに、異なる実施の形態にわたる構成要素を適宜組み合わせても良い

【符号の説明】
【0286】
1M 半導体メモリチップ、2M 利用装置、4M 書き込み装置、11M 暗号鍵
共有部、12M 送出制御部、13M 暗号鍵共有部、14M データ変換部、15M
ECC格納部、21M 暗号鍵共有部、22M 読出制御部、23M 再生手段、41M
暗号鍵共有部、42M データ送信部、112M 読み出し特殊領域、113M 書き
込み認証領域、114M 共通領域

【特許請求の範囲】
【請求項1】
外部装置の要求に応じてデータの読み出しおよび書き込みを制御するコントローラーと
接続されるメモリチップであって、
予め定められたデータの記憶領域である第1領域を含むメモリと、
前記外部装置がデータの変換に用いる秘密鍵に対応する公開鍵を記憶する鍵記憶部と、
前記秘密鍵で変換されたデータである暗号化データを前記コントローラーから受信し、
前記公開鍵を用いて前記暗号化データを変換した変換データを生成する変換部と、
前記変換データを前記第1領域に書き込む書込部と、
を備えることを特徴とするメモリチップ。

【図1AA】
image rotate

【図1AB】
image rotate

【図1B】
image rotate

【図1C】
image rotate

【図1D】
image rotate

【図1EA】
image rotate

【図1EB】
image rotate

【図1F】
image rotate

【図1G】
image rotate

【図1H】
image rotate

【図1J】
image rotate

【図1K】
image rotate

【図1L】
image rotate

【図1M】
image rotate

【図1N】
image rotate

【図1P】
image rotate

【図1Q】
image rotate

【図1R】
image rotate

【図1S】
image rotate

【図1TA】
image rotate

【図1TB】
image rotate

【図1TC】
image rotate

【図1TD】
image rotate

【図1TE】
image rotate

【図1TF】
image rotate

【図1TG】
image rotate

【図1TH】
image rotate

【図1TJ】
image rotate

【図1TK】
image rotate

【図1TL】
image rotate

【図1TM】
image rotate

【図1UA】
image rotate

【図1UB】
image rotate

【図1UC】
image rotate

【図1V】
image rotate

【図1WA】
image rotate

【図1WB】
image rotate

【図1XA】
image rotate

【図1XB】
image rotate

【図1YA】
image rotate

【図1YB】
image rotate

【図2A】
image rotate

【図2B】
image rotate

【図3A】
image rotate

【図3B】
image rotate

【図4A】
image rotate

【図4B】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11A】
image rotate

【図11B】
image rotate

【図12A】
image rotate

【図12B】
image rotate

【図12C】
image rotate

【図12D】
image rotate

【図12E】
image rotate

【図12F】
image rotate

【図12G】
image rotate

【図12H】
image rotate

【図12J】
image rotate

【図12K】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17A】
image rotate

【図17B】
image rotate

【図17C】
image rotate

【図17D】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate


【公開番号】特開2013−9426(P2013−9426A)
【公開日】平成25年1月10日(2013.1.10)
【国際特許分類】
【出願番号】特願2012−209150(P2012−209150)
【出願日】平成24年9月24日(2012.9.24)
【分割の表示】特願2010−84335(P2010−84335)の分割
【原出願日】平成22年3月31日(2010.3.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】