JP3882459B2 - MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD - Google Patents

MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD Download PDF

Info

Publication number
JP3882459B2
JP3882459B2 JP2000105006A JP2000105006A JP3882459B2 JP 3882459 B2 JP3882459 B2 JP 3882459B2 JP 2000105006 A JP2000105006 A JP 2000105006A JP 2000105006 A JP2000105006 A JP 2000105006A JP 3882459 B2 JP3882459 B2 JP 3882459B2
Authority
JP
Japan
Prior art keywords
security
command
memory
block
data processing
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Lifetime
Application number
JP2000105006A
Other languages
Japanese (ja)
Other versions
JP2000357217A (en
Inventor
拓己 岡上
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2000105006A priority Critical patent/JP3882459B2/en
Publication of JP2000357217A publication Critical patent/JP2000357217A/en
Application granted granted Critical
Publication of JP3882459B2 publication Critical patent/JP3882459B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Read Only Memory (AREA)
  • Storage Device Security (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、例えばオーディオデータを記録する媒体として、機器に着脱自在のメモリカードを使用するようにしたメモリ装置、データ処理装置データ処理システムおよびデータ処理方法に関する。
【0002】
【従来の技術】
EEPROM(Electrically Erasable Programmable ROM)と呼ばれる電気的に書き換え可能な不揮発性メモリは、1ビットを2個のトランジスタで構成するために、1ビット当たりの占有面積が大きく、集積度を高くするのに限界があった。この問題を解決するために、全ビット一括消去方式により1ビットを1トランジスタで実現することが可能なフラッシュメモリが開発された。フラッシュメモリは、磁気ディスク、光ディスク等の記録媒体に代わりうるものとして期待されている。
【0003】
フラッシュメモリを機器に対して着脱自在に構成したメモリカードも知られている。このメモリカードを使用すれば、従来のCD(コンパクトディスク)、MD(ミニディスク)等のディスク状媒体に代えてメモリカードを使用するディジタルオーディオ記録/再生装置を実現することができる。
【0004】
メモリカードを記録媒体とするオーディオレコーダでは、ディジタル記録/再生を行うので、比較的高品質のデータを復元できる圧縮方式を使用している場合には、記録/再生される曲等の著作権を保護する必要がある。その方法の一つとして、暗号化技術によって、真正なメモリカード以外のメモリカードを使用不可能とする方法がある。すなわち、真正なレコーダと真正なメモリカードの組み合わせによって、暗号化を復号化することを可能とするものである。また、著作権保護に限らず、メモリカードに格納された情報の機密性が必要なために暗号化技術を採用する場合もある。
【0005】
従来のメモリカードは、それ自体に暗号化の機能を持っていなかった。従って、機密性の必要なデータをメモリカードに記録しようとする場合、セット側においてデータを暗号化し、暗号化されたデータをメモリカードに記録することが必要とされる。しかしながら、復号化のキーをメモリカード上に格納する場合には、機密性が保たれない。一方、復号化のキーをセット内にとどめた場合には、暗号化されたデータをそのセット以外に復号化することができず、メモリカードの互換性を保てない問題がある。例えば自分のセットで記録したメモリカードを他人のセットでは、復号できない。この問題を解決するために、セットおよびメモリカードの両者が暗号化の機能を持ち、相互認証を行うことによって、機密性とカードの互換性を確保することが提案されている。
【0006】
実際には、著作権保護が不要なデータをメモリカードに記録/再生することがある。例えば会話を記録するような場合には、オーディオ圧縮方式としては、復元される音声の品質が比較的悪くても、圧縮率が高いものが使用される。この場合には、著作権保護は、不要である。また、電子スチルカメラ、ビデオカメラ等で撮影した画像を記録する媒体としてメモリカードを使用する場合も、著作権保護が不要である。一般的に暗号化の機能を持つ、セキュリティ対応のメモリカードは、それを持たないメモリカード、すなわち、従来型のメモリカードに比してコストが高く、高価なものとなる。従って、著作権保護、機密性の保持の必要性に応じて、セキュリティ対応のメモリカードと、非対応のメモリカードを利用することが予想される。
【0007】
【発明が解決しようとする課題】
セットおよびメモリカードがそれぞれセキュリティ対応と、非対応の2種類存在する場合、セキュリティ対応のセットは、セキュリティ対応のメモリカードのみを使用でき、また、セキュリティ非対応のセットが非対応のメモリカードのみを使用できるのが普通である。しかしながら、互換性の点からセキュリティ対応のメモリカードを非対応のセットで使用できることが望まれる。さらに、かかる互換性を実現する時に、セキュリティ非対応のセットが既に存在している場合には、既存のセットによって使用できることが望まれる。例えば、セキュリティ非対応のハンディームービー(カメラ一体型の記録再生機)が撮影した画像をセキュリティ対応のメモリカードに記録し、メモリカードから再生できることが望まれる。この場合には、暗号化の機能が使用されない。
【0008】
従って、この発明の目的は、セキュリティ対応のメモリカードを既存のセキュリティ非対応のセットで使用することを可能とするメモリ装置、データ処理装置およびデータ処理システムを提供することにある。
【0009】
【課題を解決するための手段】
上述した課題を解決するために、の発明は、暗号化回路を有するセキュリティ対応のデータ処理装置に対して着脱自在のメモリ装置において、
セキュリティ対応のデータ処理装置から送信されるデータを記録するための不揮発性メモリと、
暗号化回路を有するセキュリティブロックと
セキュリティ対応のデータ処理装置から送信されるコマンドが不揮発性メモリ用のメモリ制御コマンドか、セキュリティブロックのために定義されたセキュリティ用のコマンドかを判別し、セキュリティ用のコマンドと判別されたコマンドをセキュリティブロックに供給するコマンド判別分離ブロックとを備え、
メモリ制御コマンドは、セキュリティ対応のデータ処理装置、および暗号化回路を有さないセキュリティ非対応のデータ処理装置に対して共通に定義され、メモリ制御コマンドとして使用されないコードがセキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のデータ処理装置のみならず、セキュリティ非対応のデータ処理装置に対しても装着して使用可能であることを特徴とするメモリ装置である。
【0010】
の発明は、着脱自在で、不揮発性メモリと暗号化回路を有するセキュリティブロックとを含むセキュリティ対応のメモリ装置を記録媒体として使用するデータ処理装置において
暗号化回路を有するセキュリティブロック
メモリ装置セキュリティブロックに供給される暗号化処理に関係するセキュリティ用のコマンドと、
メモリ装置の不揮発性メモリを制御するためのメモリ制御コマンドをメモリ装置に伝送するインタフェース手段とを備え、
メモリ制御コマンドは、セキュリティ対応のメモリ装置、および暗号化回路を有さないセキュリティ非対応のメモリ装置に対して共通に定義され、メモリ制御コマンドとして使用されないコードがセキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のメモリ装置のみならず、セキュリティ非対応のメモリ装置に対してもメモリ制御が可能であることを特徴とするセキュリティ対応のデータ処理装置である。
【0011】
の発明は、データ処理装置と、データ処理装置に対して着脱自在のメモリ装置とで構成されたデータ処理システムにおいて、
データ処理装置は、メモリ装置の認証を行うと共に、コンテンツデータの暗号化および復号化を行うセキュリティブロックを備えるセキュリティ対応のデータ処理装置であり
メモリ装置は、
不揮発性メモリと、
セキュリティ対応のデータ処理装置のセキュリティブロックと連携して相互に認証を行うセキュリティブロックと
セキュリティ対応のデータ処理装置とメモリ装置の間におけるデータ通信用のインタフェース手段と、
セキュリティ対応のデータ処理装置から送信されるコマンドが不揮発性メモリ用のメモリ制御コマンドか、セキュリティブロックのために定義されたセキュリティ用のコマンドかを判別し、セキュリティ用のコマンドと判別されたコマンドをセキュリティブロックに供給するコマンド判別分離ブロックとを備え、
メモリ制御コマンドは、セキュリティ対応のデータ処理装置、および暗号化回路を有さないセキュリティ非対応のデータ処理装置に対して共通に定義され、メモリ制御コマンドとして使用されないコードがセキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のデータ処理装置のみならず、セキュリティ非対応のデータ処理装置に対しても装着して使用可能である
ことを特徴とするデータ処理システムである。
【0012】
この発明では、不揮発性メモリに対する書き込み/読み出しのための第1の制御データとして使用されないコードによって、セキュリティ用の第2の制御データが構成される。従って、セキュリティ対応のデータ処理装置は、第1およびデータ2の制御データをメモリ装置に対して伝送することにより、コンテンツのセキュリティを保護できる。また、セキュリティ非対応のデータ処理装置は、第1の制御データのみをセキュリティ対応のメモリ装置に対して伝送することによって、セキュリティ非対応のメモリ装置と同様に、このメモリ装置を使用することができる。それによって、セキュリティ対応のメモリ装置の互換性を高めることができる。
【0013】
【発明の実施の形態】
以下、この発明の一実施形態について説明する。図1は、この発明の一実施形態の全体の構成を示す。この一実施形態は、記録媒体として、着脱自在のメモリカードを使用するディジタルオーディオ信号のレコーダ(記録および再生機)である。図1において、破線が囲んで示す1がセットとしてのレコーダを示し、40がレコーダに着脱自在のメモリカードを示す。なお、この発明は、ディジタルオーディオ信号以外に動画データ、静止画データ等の記録/再生に対しても適用できる。
【0014】
レコーダ1は、CPU2と、CPU2とバスで接続されたセキュリティブロックと、操作ボタン4と、表示デバイス5とを有している。セキュリティブロック3は、DES(Data Encryption Standard)の暗号化回路を含む。操作ボタン4からのユーザの操作に応じて発生した録音指令、再生指令等のデータがバスを介してCPU2に与えられる。種々の情報、レコーダ1の動作状態等が表示デバイス5によって表示される。さらに、6は、外部入出力と内部のオーディオエンコーダ/デコーダ7との間に設けられたオーディオインターフェースである。
【0015】
後述するように、メモリカード40は、フラッシュメモリ(不揮発性メモリ)42、DESの暗号化回路を含むセキュリティブロック52、通信用インターフェース、レジスタ等が1チップ上にIC化されたものである。メモリカード40は、レコーダ1に対して着脱自在とされている。なお、この一実施形態では、暗号化機能を有しないメモリカード、すなわち、セキュリティブロックを有しないメモリカードをレコーダ1が使用することが可能とされている。
【0016】
オーディオエンコーダ/デコーダ7は、ディジタルオーディオ信号を高能率符号化し、また、高能率符号化データを復号する。高能率符号化方法としては、ミニディスクで採用されているATRAC(Adaptive Transform Acoustic Coding)を改良したもの(ATRAC3と表記する)が使用できる。ATRAC3では、44.1kHzでサンプリングした1サンプル16ビットのオーディオデータを処理する。ATRAC3でオーディオデータを処理する時の最小のデータ単位がサウンドユニットSUである。1SUは、1024サンプル分(1024×16ビット×2チャンネル)を数百バイトに圧縮したものであり、時間にして約2.3m秒である。ATRAC3により約1/10にオーディオデータが圧縮される。ミニディスクにおいてそうであるように、ATRAC3の工夫された信号処理によって、圧縮/伸長処理による音質の劣化は少ない。
【0017】
MD(ミニディスク)の再生出力、チューナの出力、テープ再生出力等のアナログオーディオ信号8がA/D変換器9によりディジタルオーディオ信号へ変換され、ディジタルオーディオ信号がオーディオインターフェース6に供給される。ディジタル入力10は、MDまたはCD(コンパクトディスク)の再生出力、ディジタル放送、ネットワークで配信されたオーディオデータ等である。ディジタル入力10がオーディオインターフェース6に供給される。ディジタル入力10は、例えば光ケーブルを介して伝送される。オーディオインターフェース6では、入力選択の処理がされ、選択された入力ディジタルオーディオ信号がオーディオエンコーダ/デコーダ7に供給される。
【0018】
オーディオエンコーダ/デコーダ7からの符号化データがセキュリティブロック3において暗号化される。セキュリティブロック3は、コンテンツ(ここでは、ディジタルオーディオ信号)の著作権を保護するための備えられている。レコーダ1のセキュリティブロック3は、複数のマスターキーと機器毎にユニークなストレージキーを持つ。さらに、乱数発生回路を持ち、セキュリティブロック52を内蔵するメモリカード40が装着された時に、装着されたものが真正なものであるかを確認する認証を行い、正しく認証できれば、セッションキーを共有することができる。
【0019】
セキュリティブロック3からの暗号化されたオーディオデータがCPU2に供給される。CPU2は、着脱機構(図示しない)に装着されたメモリカード40とメモリインタフェース11を介しての通信を行い、暗号化されたデータをメモリカード40のフラッシュメモリ42に書き込む。メモリインタフェース11によって、CPU2とメモリカード40との間では、シリアル通信がなされる。
【0020】
CPU2およびメモリインタフェース11によってメモリカード40から読み出した暗号化されたオーディオデータは、セキュリティブロック3によって復号化され、オーディオエンコーダ/デコーダ7によって復号化処理を受ける。オーディオエンコーダ/デコーダ7の出力がオーディオインターフェース6を介してD/A変換器12に供給され、アナログオーディオ出力13へ変換される。また、オーディオエンコーダ/デコーダ7からのオーディオデータ、並びにセキュリティブロック3からの復号化データがインターフェース6を介してディジタル出力14および15として出力される。
【0021】
図2は、メモリカード40の構成を示す。メモリカード40は、コントロールブロック41とフラッシュメモリ42が1チップICとして構成されたものである。レコーダ1のCPU2とメモリカード40との間の双方向シリアルインタフェース(メモリインタフェース11)は、10本の線からなる。主要な4本の線は、データ伝送時にクロックを伝送するためのクロック線SCKと、ステータスを伝送するためのステータス線SBSと、データを伝送するデータ線DIO、インターラプト線INTとである。その他に電源供給用線として、2本のGND線および2本のVCC線が設けられる。2本の線Reservは、未定義の線である。
【0022】
クロック線SCKは、データに同期したクロックを伝送するための線である。ステータス線SBSは、メモリカード40のステータスを表す信号を伝送するための線である。データ線DIOは、コマンドおよび暗号化されたオーディオデータを入出力するための線である。インターラプト線INTは、メモリカード40からレコーダ1のCPU2に対しての割り込みを要求するインターラプト信号を伝送する線である。メモリカード40を装着した時にインターラプト信号が発生する。但し、この一実施形態では、かかるインターラプト信号をデータ線DIOを介して伝送するようにしているので、インターラプト線INTを接地し、使用していない。
【0023】
コントロールブロック41のシリアル/パラレル変換・パラレル/シリアル変換・インタフェースブロック(S/P,P/S,IFブロックと略す)43は、上述した複数の線を介して接続されたレコーダ1のメモリインタフェース11とコントロールブロック41とのインタフェースである。S/P,P/S,IFブロック43は、レコーダ1から受け取ったシリアルデータをパラレルデータに変換し、コントロールブロック41に取り込み、コントロールブロック41からのパラレルデータをシリアルデータに変換してレコーダ1に送る。また、S/P,P/S,IFブロック43は、データ線DIOを介して伝送されるコマンドおよびデータを受け取った時に、フラッシュメモリ42に対する通常のアクセスのためのコマンドおよびデータと、暗号化に必要なコマンドおよびデータとを分離する。
【0024】
つまり、データ線DIOを介して伝送されるフォーマットでは、最初にコマンドが伝送され、その後にデータが伝送される。S/P,P/S,IFブロック43は、コマンドのコードを見て、通常のアクセスに必要なコマンドおよびデータか、暗号化に必要なコマンドおよびデータかを判別する。この判別結果に従って、通常のアクセスに必要なコマンドをコマンドレジスタ44に格納し、データをページバッファ45およびライトレジスタ46に格納する。ライトレジスタ46と関連してエラー訂正符号化回路47が設けられている。ページバッファ45に一時的に蓄えられたデータに対して、エラー訂正符号化回路47がエラー訂正符号の冗長コードを生成する。
【0025】
コマンドレジスタ44、ページバッファ45、ライトレジスタ46およびエラー訂正符号化回路47の出力データがフラッシュメモリインタフェースおよびシーケンサ(メモリI/F,シーケンサと略す)51に供給される。メモリIF,シーケンサ51は、コントロールブロック41とフラッシュメモリ42とのインタフェースであり、両者の間のデータのやり取りを制御する。メモリIF,シーケンサ51を介してデータがフラッシュメモリ42に書き込まれる。
【0026】
フラッシュメモリ42から読み出されたデータがメモリIF,シーケンサ51を介してページバッファ45、リードレジスタ48、エラー訂正回路49に供給される。ページバッファ45に記憶されたデータがエラー訂正回路49によってエラー訂正がなされる。エラー訂正がされたページバッファ45の出力およびリードレジスタ48の出力がS/P,P/S,IFブロック43に供給され、上述したシリアルインタフェースを介してレコーダ1のCPU2に供給される。
【0027】
著作権保護のために、レコーダ1のセキュリティIC40とメモリカード40のセキュリティブロック52とによって、フラッシュメモリ42に書き込まれるコンテンツ(ATRAC3により圧縮されたオーディオデータ、以下ATRAC3データと表記する)は、暗号化される。セキュリティブロック52は、バッファメモリ53、DESの暗号化回路54、不揮発性メモリ55等を有する。
【0028】
なお、50は、メモリカード40のバージョン情報、各種の属性情報等が格納されているコンフィグレーションROMである。また、メモリカード40には、ユーザが必要に応じて操作可能な誤消去防止用のスイッチ60が備えられている。このスイッチ60が消去禁止の接続状態にある場合には、フラッシュメモリ42を消去することを指示するコマンドがレコーダ1側から送られてきても、フラッシュメモリ42の消去が禁止される。さらに、61は、メモリカード40の処理のタイミング基準となるクロックを発生する発振器である。
【0029】
メモリカード40のセキュリティブロック52は、複数の認証キーとメモリカード毎にユニークなストレージキーを持つ。不揮発性メモリ55は、暗号化に必要なキーを格納するもので、外部からは見えない。例えばストレージキーが不揮発性メモリ55に格納される。さらに、乱数発生回路を持ち、専用(ある決められたデータフォーマット等の使用が同じシステム内の意味)レコーダ1と正しく認証ができ、セッションキーを共有できる。ATRAC3データを暗号化するためのコンテンツキーは、セッションキーで暗号化されてレコーダ1とメモリカード40との間で伝送される。メモリカード40のセキュリティブロック52と同様に、レコーダ1のセキュリティブロック3もセット固有のストレージキーを有する。暗号化されたコンテンツを移動する時に、ストレージキーを使用してコンテンツキーが掛け直される。
【0030】
図3は、暗号化機能を有しない(すなわち、セキュリティ非対応)メモリカード40’を示す。図2に示し、上述したメモリカード40と比較すると、S/P,P/S,IFブロック43に対して、セキュリティブロック52が接続されていない。その他の構成に関して、メモリカード40と40’とは同一である。また、形状、サイズもメモリカード40と40’とが同一とされている。図1に示すレコーダ1は、セキュリティ対応のものであるので、メモリカードとの相互認証、キーの通信等を行う。若し、セキュリティに対応していない図3に示すメモリカード40’を装着すると、レコーダ1は、メモリカード40’がセキュリティ非対応のもので、メモリカード40’を使用できないものと決定する。
【0031】
レコーダ1がメモリカードの種類を決定する方法としては、幾つかのものを利用できる。一つの方法では、メモリカードを装着した時に、認証を行うために、キーを伝送する時に、メモリカード40’からは、正規の応答を受信できず、レコーダ1においてタイムアウトの決定がされ、その結果、メモリカードがセキュリティ非対応のものと決定できる。他の方法では、メモリカードを装着した時に、最初にレコーダ1に読み込まれるメモリカードの領域(ブート領域)中に、セキュリティ対応/非対応の識別情報を記録しておき、この識別情報に基づいてレコーダ1がメモリカードの種類を決定することができる。
【0032】
また、図1に示すレコーダ1に限らず、セキュリティ非対応のメモリカード40’を使用するようにした機器も存在する。例えばCCDカメラで撮影した画像をメモリカードに記録し、メモリカードから撮影画像を再生する機能を有する、ディジタルハンディムービーは、メモリカード40’を使用できる。かかるディジタルハンディムービーは、セキュリティ対応のメモリカード40を使用できないのが普通である。後述するように、この発明の一実施形態では、メモリカード40の互換性を高めるために、セキュリティ非対応のディジタルハンディムービーのようなセットがメモリカード40を使用した記録および再生ができるように、メモリカード40が構成されている。すなわち、上述したように、S/P,P/S,IFブロック43は、フラッシュメモリ42に対して書き込み/読み出し用のコマンドおよびデータと、セキュリティブロックに必要なコマンドおよびデータとを分離する機能を有している。
【0033】
上述したこの発明の一実施形態についてさらに詳細に説明する。図4は、メモリカードを記憶媒体とするコンピュータシステムのファイルシステム処理階層を示す。ファイルシステム処理階層としては、アプリケーション処理層が最上位であり、その下に、ファイル管理処理層、論理アドレス管理層、物理アドレス管理層、フラッシュメモリアクセスが順次おかれる。この階層構造において、ファイル管理処理層がFATファイルシステムである。物理アドレスは、フラッシュメモリの各ブロックに対して付されたもので、ブロックと物理アドレスの対応関係は、不変である。論理アドレスは、ファイル管理処理層が論理的に扱うアドレスである。
【0034】
図5は、メモリカード40におけるフラッシュメモリ42のデータの物理的構成の一例を示す。フラッシュメモリ42は、セグメントと称されるデータ単位が所定数のブロック(固定長)へ分割され、1ブロックが所定数のページ(固定長)へ分割される。フラッシュメモリ42では、ブロック単位で消去が一括して行われ、書き込みと読み出しは、ページ単位で一括して行われる。各ブロックおよび各ページは、それぞれ同一のサイズとされ、1ブロックがページ0からページmで構成される。1ブロックは、例えば8KB(Kバイト)バイトまたは16KBの容量とされ、1ページが512Bの容量とされる。フラッシュメモリ42全体では、1ブロック=8KBの場合で、4MB(512ブロック)、8MB(1024ブロック)とされ、1ブロック=16KBの場合で、16MB(1024ブロック)、32MB(2048ブロック)、64MB(4096ブロック)の容量とされる。
【0035】
1ページは、512バイトのデータ部と16バイトの冗長部とからなる。冗長部の先頭の3バイトは、データの更新に応じて書き換えられるオーバーライト部分とされる。3バイトの各バイトに、先頭から順にブロックステータス、ページステータス、更新ステータスが記録される。冗長部の残りの13バイトの内容は、原則的にデータ部の内容に応じて固定とされる。13バイトは、管理フラグ(1バイト)、論理アドレス(2バイト)、フォーマットリザーブの領域(5バイト)、分散情報ECC(2バイト)およびデータECC(3バイト)からなる。分散情報ECCは、管理フラグ、論理アドレス、フォーマットリザーブに対する誤り訂正用の冗長データであり、データECCは、512バイトのデータに対する誤り訂正用の冗長データである。
【0036】
管理フラグとして、システムフラグ(その値が1:ユーザブロック、0:ブートブロック)、変換テーブルフラグ(1:無効、0:テーブルブロック)、コピー禁止指定(1:OK、0:NG)、アクセス許可(1:free、0:リードプロテクト)の各フラグが記録される。
【0037】
先頭の二つのブロック0およびブロック1がブートブロックである。ブロック1は、ブロック0と同一のデータが書かれるバックアップ用である。ブートブロックは、カード内の有効なブロックの先頭ブロックであり、メモリカードを機器に装填した時に最初にアクセスされるブロックである。残りのブロックがユーザブロックである。ブートブロックの先頭のページ0にヘッダ、システムエントリ、ブート&アトリビュート情報が格納される。ページ1に使用禁止ブロックデータが格納される。ページ2にCIS(Card Information Structure)/IDI(Identify Drive Information)が格納される。
【0038】
図6は、ブートブロックのフォーマットを示す。ブートブロックのヘッダ(368バイト)には、ブートブロックID、フォーマットバージョン、ブートブロック内の有効なエントリ数が記録される。システムエントリ(48バイト)には、使用禁止ブロックデータの開始位置、そのデータサイズ、データ種別、CIS/IDIのデータ開始位置、そのデータサイズ、データ種別が記録される。
【0039】
図7は、ブート&アトリビュート情報(968バイト)を詳細に示す。ブート&アトリビュート情報には、メモリカードのクラス、タイプ(読み出し専用、リードおよびライト可能、両タイプのハイブリッド等)、ブロックサイズ、ブロック数、総ブロック数、セキュリティ対応か否か、カードの製造に関連したデータ(製造年月日等)等が記録される。セットは、このセキュリティ対応か否かの識別情報(1バイト)によって、装着されたメモリカードがセキュリティ対応か否かを決定できる。図7において、(*1)が付された情報は、セット側が読み出して装着時に確認する項目であり、(*2)が付された情報は、製造および品質管理上の情報を設定する項目である。
【0040】
フラッシュメモリは、データの書き換えを行うことにより絶縁膜の劣化を生じ、書き換え回数が制限される。従って、ある同一の記憶領域(ブロック)に対して繰り返し集中的にアクセスがなされることを防止する必要がある。従って、ある物理アドレスに格納されているある論理アドレスのデータを書き換える場合、フラッシュメモリのファイルシステムでは、同一のブロックに対して更新したデータを再度書き込むことはせずに、未使用のブロックに対して更新したデータを書き込むようになされる。その結果、データ更新前における論理アドレスと物理アドレスの対応関係が更新後では、変化する。このような処理(スワップ処理と称する)を行うことで、同一のブロックに対して繰り返して集中的にアクセスがされることが防止され、フラッシュメモリの寿命を延ばすことが可能となる。
【0041】
論理アドレスは、一旦ブロックに対して書き込まれたデータに付随するので、更新前のデータと更新後のデータの書き込まれるブロックが移動しても、FATからは、同一のアドレスが見えることになり、以降のアクセスを適正に行うことができる。スワップ処理により論理アドレスと物理アドレスとの対応関係が変化するので、両者の対応を示す論理−物理アドレス変換テーブルが必要となる。このテーブルを参照することによって、FATが指定した論理アドレスに対応する物理アドレスが特定され、特定された物理アドレスが示すブロックに対するアクセスが可能となる。
【0042】
論理−物理アドレス変換テーブルは、CPU2によってメモリ上に格納される。若し、RAM容量が少ない時は、フラッシュメモリ中に格納することができる。このテーブルは、概略的には、昇順に並べた論理アドレス(2バイト)に物理アドレス(2バイト)をそれぞれ対応させたテーブルである。フラッシュメモリの最大容量を128MB(8192ブロック)としているので、2バイトによって8192のアドレスを表すことができる。また、論理−物理アドレス変換テーブルは、セグメント毎に管理され、そのサイズは、フラッシュメモリの容量に応じて大きくなる。例えばフラッシュメモリの容量が8MB(2セグメント)の場合では、2個のセグメントのそれぞれに対して2ページが論理−物理アドレス変換テーブル用に使用される。論理−物理アドレス変換テーブルを、フラッシュメモリ中に格納する時には、上述した各ページの冗長部における管理フラグの所定の1ビットによって、当該ブロックが論理−物理アドレス変換テーブルが格納されているブロックか否かが指示される。
【0043】
上述したメモリカードは、ディスク状記録媒体と同様にパーソナルコンピュータのFATファイルシステムによって使用可能なものである。図5には示されてないが、フラッシュメモリ上にIPL領域、FAT領域およびルート・ディレクトリ領域が設けられる。IPL領域には、最初にレコーダのメモリにロードすべきプログラムが書かれているアドレス、並びにメモリの各種情報が書かれている。FAT領域には、ブロック(クラスタ)の関連事項が書かれている。FATには、未使用のブロック、次のブロック番号、不良ブロック、最後のブロックをそれぞれ示す値が規定される。さらに、ルートディレクトリ領域には、ディレクトリエントリ(ファイル属性、更新年月日、開始クラスタ、ファイルサイズ等)が書かれている。
【0044】
さらに、この一実施形態では、上述したメモリカード40のフォーマットで規定されるファイル管理システムとは別個に、音楽用ファイルに対して、ファイル管理情報(トラック情報管理ファイル)を規定している。トラック情報管理ファイルは、メモリカード40のユーザブロックを利用してフラッシュメモリ42上に記録される。それによって、メモリカード40上のFATが壊れても、ファイルの修復を可能とできる。
【0045】
トラック情報管理ファイルは、CPU2により作成される。例えば最初に電源をオンした時に、メモリカード40が装着されているか否かが判定され、メモリカードが装着されている時には、フラッシュメモリ42のブートブロックがCPU2に読み込まれる。ブートブロック中の識別情報によって、装着したメモリカードがセキュリティ対応か、非対応かが決定される。セキュリティ対応であると決定されると、認証動作がなされる。その他のメモリカード40から読み込まれたデータは、CPU2が管理するメモリ(図示せず)に格納される。ユーザが購入して初めて使用するメモリカードでも、出荷時にフラッシュメモリ42には、FATや、ルートディレクトリの書き込みがなされている。トラック情報管理ファイルは、録音がなされると、作成される。認証が成立すると、レコーダ1によって、暗号化されたATRAC3データファイルが記録/再生される。
【0046】
記録時には、操作ボタン4で録音ボタンを押すことによって発生した録音指令がCPU2に与えられる。そして、入力したオーディオデータがエンコーダ/デコーダ7によって圧縮され、エンコーダ/デコーダ7からのATRAC3データがセキュリティブロック3により暗号化される。CPU2が暗号化されたATRAC3データをメモリカード40のフラッシュメモリ42に記録する。この記録後にFATおよびトラック情報管理ファイルが更新される。ファイルの更新の度、具体的には、オーディオデータの記録を開始し、記録を終了する度に、CPU2が制御するメモリ(図示せず)上でFATおよびトラック情報管理ファイルが書き換えられる。そして、メモリカード40を外す時に、またはパワーをオフする時に、メモリからメモリカード40のフラッシュメモリ42上に最終的なFATおよびトラック情報管理ファイルが格納される。この場合、オーディオデータの記録を開始し、記録を終了する度に、フラッシュメモリ42上のFATおよびトラック情報管理ファイルを書き換えても良い。編集を行った場合も、トラック情報管理ファイルの内容が更新される。
【0047】
上述したこの発明の一実施形態におけるセキュリティ保護機能についてさらに説明する。最初に図8を参照してコンテンツにおけるキーの関係について説明する。メモリカード40のフラッシュメモリ42上では、図8Aに示すように、キーエリア101が設けられ、キーエリア101にコンテンツ(暗号化されたオーディオデータのトラック(曲))毎に作成されるコンテンツキーCKがメモリカードに固有のストレージキーKstmで暗号化されて格納されている。暗号化は、DESと表記され、コンテンツキーCKをストレージキーKstmで暗号化した場合には、DES(Kstm,CK)と表記される。この一実施形態では、暗号化した値は、56ビットにエラー検出用のCRC(8ビット)を加えた64ビット長でもって扱われる。
【0048】
コンテンツのトラック内にパーツデータエリア102が規定され、パーツキーPKがパーツ毎に記録される。パーツは、16Kバイトのブロック103の集合であり、各ブロックには、ブロックシードBK SEED、イニシャルベクターINVが記録されている。パーツキーPKは、コンテンツを暗号化するブロックキーBKを作成するために、コンテンツキーCKとペアで使用されるものである。すなわち、BK=DES(CK(+)PK,BK SEED)(56ビット+8ビット)である。(+)は、排他的論理和を表す。イニシャルベクターINVは、ブロックの暗号化、復号化の初期値である。
【0049】
図8Bは、レコーダ1内におけるコンテンツを示す。キーエリア111にコンテンツ毎のコンテンツキーCKが復号化され、レコーダ1に固有のストレージキーKstdで再暗号化されて保持される。すなわち、復号化は、IDES(Kstm,CK)(56ビット+8ビット)と表記され、再暗号化は、DES(Kstd,CK)(56ビット+8ビット)表記される。コンテンツを構成するパーツデータエリア112毎にブロックキーBKを作成するためのパーツキーPKが記録される。パーツを構成するブロック113のそれぞれには、ブロックシードBK SEED、イニシャルベクターINVが記録されている。メモリカード上と同様に、ブロックキーBKは、BK=DES(CK(+)PK,BK SEED)(56ビット+8ビット)である。
【0050】
図9は、録音時の暗号化の処理の流れを説明するために、簡略化したブロック図であり、図1と対応する部分には、同一符号を付して示し、暗号化の説明に特に不要な構成は、省略されている。Sekは、認証成立時にレコーダ1とメモリカード40との間で共有されるセッションキーである。また、ディジタルオーディオ入力10のソースとしてCD10’が示されている。
【0051】
メモリカード40がレコーダ1に装着されると、装着したメモリカードがセキュリティ対応のものかどうかがブート領域中の識別情報によって決定される。セキュリティ対応のものと決定されると、レコーダ1とメモリカード40との間で、相互に正規のものであるかを認証する。
【0052】
図10は、認証時のセット(レコーダ1)およびメモリカード40間の暗号化の処理を示すものである。最初のステップS1において、メモリカード40のセキュリティブロック52内の乱数発生器によって乱数Rmを発生し、メモリカード40のシリアル番号IDと共に送信する。
【0053】
レコーダ1では、ステップS2の処理を行う。すなわち、RmとIDとを受け取り、IKj=MAC(MKj,ID)の関係にしたがって、認証キーIKjを生成する。MKjは、レコーダ1のセキュリティブロック3に記憶されている複数のマスターキーMK0 〜MK31の内で選択された一つのマスターキーである。レコーダ1は、乱数Rdを発生し、認証キーでメッセージ認証子MACA (Message Authentication Code) 、すなわち、MAC(IKj,ID//Rm//Rd)を作成する。ここで、A//Bは、AとBの連結(nビットのAの後ろにmビットのBを結合して(n+m)ビットとしたもの)を示す。そして、レコーダ1が乱数Sdを発生し、Rd//Sd//MACA //jをメモリカード40へ送信する。
【0054】
メモリカード40は、ステップS3において、このデータRd//Sd//MACA //jを受け取り、jからセキュリティブロック52内の認証キーIKjを見つけ、認証キーIKjおよびRd、Rm、IDを用いてMACB を計算する。計算したMACB が受け取ったMACA と同一であれば、メモリカード40は、正しいとしてセット(レコーダ)を認める。そして、ステップS4において、メモリカード40は、MACC =MAC(IKj,Rm//Rd)を作成し、乱数Smを発生する。その後、メモリカード40は、Sm//MACC をレコーダ1に送信する。
【0055】
ステップS5において、レコーダ1は、Sm//MACC を受け取る。レコーダ1は、IKj,Rm,Rdを用いてMACD を計算する。計算したMACD が受け取ったMACC と同一であれば、レコーダ1は、正しいとしてメモリカード40を認める(すなわち、認証する)。この段階では、レコーダ1およびメモリカード40の両者が選択した認証キーIKjおよび乱数Sd、Smを有している。そして、レコーダ1は、ステップS6において、MAC(IKj,Rm//Rd)をセッションキーSekと指定する。メモリカード40側でも、MAC(IKj,Rm//Rd)をセッションキーSekと指定する。このように、正しく相互認証がなされると、セッションキーSekをレコーダ1とメモリカード40とが共有する。セッションキーは、認証が成立する度に生成される。
【0056】
図11は、レコーダ1によりオーディオファイルをメモリカード40のフラッシュメモリ42に記録する時のキーの書き込み処理を示す。なお、書き込み処理を開始するときには、セッションキーSekの生成処理が終了しており、セッションキーSekをレコーダ1とメモリカード40とが共有している。ステップS11において、レコーダ1は、コンテンツのトラックデータ毎に乱数を発生し、乱数に応じてたコンテンツキーCKを作成する。次に、ステップS12において、レコーダ1は、コンテンツキーCKをセッションキーSekで暗号化し、暗号化したDES(Sek,CK)をメモリカード40に送信する。
【0057】
メモリカード40は、ステップS13において、このデータを受け取り、セッションキーでコンテンツキーCKを復号する。すなわち、IDES(Sek,DES(Sek,CK))と復号処理が表記される。次のステップS14において、メモリカード40は、復号したコンテンツキーCKをメモリカード40のストレージキーKstmで再度、暗号化し、再暗号化したコンテンツキーDES(Kstm,CK)がレコーダ1に送信される。
【0058】
レコーダ1は、ステップS15において、再暗号化したコンテンツキーを、パーツデータエリア112を管理するキーエリア111に配置させ、再暗号化されたコンテンツキーCKおよびコンテンツがメモリカード40のフラッシュメモリに記録されるようにフォーマット化の処理を行う。コンテンツの暗号化のために、図9に示されるように、コンテンツキーCKとパーツキーPKとの排他的論理和または論理積がとられる。その結果、テンポラリーキーTMKが得られる。テンポラリーキーTMKは、セキュリティブロック3内にのみ存在し、外部からはアクセス可能ではない。各ブロック113の先頭で乱数を発生し、これをブロックシードBK SEEDとし、各パーツデータエリア112内に格納される。レコーダ1は、テンポラリーキーTMKでブロックシードBK SEEDを暗号化し、ブロックキーBKが得られる。すなわち、BK=(CK(+)PK,BK SEED)の関係が得られる。ブロックキーBKもセキュリティブロック3内にのみ存在し、セキュリティブロック3の外部からはアクセス可能ではない。
【0059】
ステップS16において、レコーダ1は、ブロックキーBKによってパーツデータエリア112内のデータをブロック毎に暗号化し、暗号化されたデータと、キーエリア111内のデータをメモリカード40に送信する。メモリカード40は、レコーダ1から受け取った暗号化されたデータおよびキーエリア111内のデータ(ヘッダデータ)をフラッシュメモリ42に記録する(ステップS17)。
【0060】
図12は、レコーダ1がメモリカード40のフラッシュメモリ42に蓄えられているオーディオトラックを再生する時の処理の流れを説明するために、簡略化したブロック図であり、図1と対応する部分には、同一符号を付して示し、暗号化および復号化の説明に特に不要な構成は、省略されている。図13は、図12と同様に、レコーダ1によりオーディオトラックをメモリカード40のフラッシュメモリ42から再生する時の復号化処理を示す。再生時でも、相互認証が成立することによって、レコーダ1とメモリカード40との間でセッションキーSekが共有される。
【0061】
ステップS21において、レコーダ1は、メモリカード40からデータ読み出すことによって、ストレージキーKstmで暗号化されたコンテンツキーCKすなわち、(DES(Kstm,CK))と、暗号化されたコンテンツ(所望のトラックのパーツデータエリア102)を得る。そして、レコーダ1は、ストレージキーKstmで暗号化されたコンテンツキーCKをメモリカード40に渡す。
【0062】
ステップS22において、メモリカード40は、ストレージキーKstmでコンテンツキーCKを復号する(IDES(Kstm,DES(Kstm,CK))。ステップS23において、メモリカード40は、復号したコンテンツキーをセッションキーSekで暗号化し、DES(Sek,CK)をレコーダ1に送る。
【0063】
レコーダ1は、ステップS24において、セッションキーSekでコンテンツキーを復号する。次のステップS25において、レコーダ1は、復号したコンテンツキーCKと、パーツキーPKと、ブロックシードBK SEEDを使用してブロックキーBKを作成する。ステップS26では、レコーダ1は、ブロック毎にブロックキーBKによって暗号化されたパーツデータエリア102をそれぞれ復号化する。復号化されたオーディオデータがオーディオエンコーダ/デコーダ7によって復号化される。
【0064】
この発明の一実施形態におけるレコーダ1とメモリカード40との間のシリアンインタフェースについてより詳細に説明する。図2に示されるように、レコーダ1とメモリカード40との間を結合する10本の線の内で、信号の送受信にとって主要なものは、クロック線SCK、ステータス線SBSおよびデータ線DIOである。
【0065】
図14は、メモリカード40からデータを読み出す時のタイミングを示す。状態0(初期状態)以外の状態において、クロック線SCKを介して伝送されるデータと同期したクロックが伝送される。レコーダ1とメモリカード40との間で、何等データの送受信がされていない状態では、ステータス線SBSがローレベルとなっている。これが状態0(初期状態)である。そして、タイミングt31において、レコーダ1がステータス線SBSをハイレベルとし、状態1となる。
【0066】
メモリカード40(S/P,P/S,IFブロック43)は、ステータス線SBSがハイレベルに切り替わったことによって、状態0から状態1へ変化したことを検出する。状態1では、データ線DIOを介してレコーダ1からメモリカード40に対して読み出しコマンドが送信され、メモリカード40が読み出しコマンドを受信する。この読み出しコマンドは、シリアルインタフェース用のTPC(Serial Protocol Command) と称されるプロトコルコマンドである。後述するように、プロトコルコマンドによって、通信の内容と後続するデータのデータ長が特定される。
【0067】
コマンドの送信が完了したタイミングt32において、ステータス線SBSがハイレベルからローレベルに切り替えられる。それによって、状態1から状態2へ遷移する。状態2では、メモリカード40が受信したコマンドで指示される処理、具体的には、読み出しコマンドで指定されたアドレスのデータをフラッシュメモリ42から読み出す処理を行う。この処理がなされている間、データ線DIOを介してビジー信号(ハイレベル)がレコーダ1に送信される。
【0068】
そして、フラッシュメモリ42からデータの読み出しが完了したタイミングt33において、ビジー信号の出力が停止され、レコーダ1に対してメモリカード40からデータを送出する準備ができたことを示すレディー信号(ローレベル)の出力が開始される。
【0069】
レコーダ1は、メモリカード40からレディー信号を受信することによって、読み出しコマンドに対応する処理が準備できたことを知り、タイミングt34において、ステータス線SBSをハイレベルに切り替える。すなわち、状態2から状態3へ遷移する。
【0070】
状態3になると、メモリカード40は、状態2においてページバッファ45に読み出したデータをデータ線DIOを介してレコーダ1に対して出力する。読み出しデータの転送が完了したタイミングt35において、レコーダ1は、クロック線SCKを介して伝送されていたクロックの供給を停止すると共に、ステータス線をハイレベルからローレベルへ切り替える。それによって、状態3から初期状態(状態0)に遷移する。
【0071】
なお、メモリカード40の内部状態に変化が生じて何らかの割り込み処理を行う必要が発生すると、メモリカード40は、タイミングt36で示すように、状態0において、割り込みを示すインターラプト信号をデータ線DIOを介してレコーダ1に供給する。レコーダ1は、状態0でメモリカード40からデータ線DIOを介して信号が供給された場合、その信号がインターラプト信号であることを認識できるように設定されている。レコーダ1がインターラプト信号を受け取ると、そのインターラプト信号に基づいて必要な処理を行う。
【0072】
図15は、メモリカード40のフラッシュメモリ42に対してデータを書き込む時のタイミングチャートである。初期状態(状態0)では、クロックSCKの伝送がされない。タイミングt41において、レコーダ1がステータス線SBSをローレベルからハイレベルに切り替える。それによって、データ線DIOを介して書き込みコマンドが伝送される状態1に遷移する。メモリカード40は、状態1において、コマンドを取得するように準備する。タイミングt41からコマンドがデータ線DIOを介してメモリカード40に伝送され、メモリカード40がこの書き込みコマンドを取得する。
【0073】
書き込みコマンドの送信が完了したタイミングt42において、レコーダ1がステータス線SBSをハイレベルからローレベルに切り替える。それによって、状態1から状態2へ遷移する。状態2では、レコーダ1が書き込みデータをデータ線DIOを介してメモリカード40に伝送する。メモリカード40では、受け取った書き込みデータがページバッファ45に蓄えられる。
【0074】
書き込みデータの伝送が終了するタイミングt43において、ステータス線SBSがローレベルからハイレベルへ切り替えられ、状態2から状態3へ遷移する。状態3において、メモリカード40は、書き込みデータをフラッシュメモリ42へ書き込む処理を行う。状態3において、メモリカード40は、データ線SBSを介してビジー信号(ハイレベル)をレコーダ1に対して送信する。レコーダ1は、書き込みコマンドを送信し、且つ現在の状態が状態3であることから、メモリカード40から送信される信号がステータス信号であると判断する。
【0075】
メモリカード40において、書き込みデータの書き込み処理が終了すると、終了したタイミングt44において、ビジー信号の出力を停止し、レディー信号(ローレベル)をレコーダ1に対して送信する。レコーダ1は、レディー信号を受信すると、書き込みコマンドに対応する書き込み処理が完了したものと判断し、クロック信号の送信を止めると共に、タイミングt45においてステータス線SBSをハイレベルからローレベルへ切り替える。それによって、状態3から状態0(初期状態)に戻る。
【0076】
さらに、状態0において、メモリカード40からデータ線DIOを介してハイレベルの信号をレコーダ1が受け取った場合には、レコーダ1がこの信号をインターラプト信号と認識する。そして、レコーダ1は、受信したインターラプト信号に基づいて必要な処理を行う。例えばメモリカード40をレコーダ1から取り外した時に、メモリカード40がインターラプト信号を発生する。
【0077】
上述した読み出し動作、書き込み動作以外においても、状態1において、コマンドが伝送され、その後の状態2において、コマンドに対応するデータが伝送される。レコーダ1とメモリカード40間のシリアルインタフェースは、上述したものに限定されず、種々のものを使用できる。
【0078】
図16は、シリアルインタフェースでデータ線DIOを介して伝送されるプロトコルコマンド(TPCコード)の一例である。プロトコルコマンドは、1バイト長であり、その値の16進表記(hを付加して示す)と、0および1の表記が示されている。また、各コマンドの意味(定義)については、セキュリティ非対応のメモリカード40’(図3参照)に関するものと、セキュリティ対応のメモリカード40(図2参照)に関するものとが示されている。また、コマンドが読み出しに関連するものか、書き込みに関連するものかを区別するために、R/Wが示されている。さらに、上述したように、コマンドの伝送が状態1でなされ、その後の状態2でデータの伝送がなされるので、コマンドに対応するデータ長(バイト数)も示されている。プロトコルコマンドTPCのそれぞれについて以下に説明する。
【0079】
TPC=2Dh:メモリカード40および40’に対して共通のコマンド、すなわち、通常のフラッシュメモリに対するアクセス用のコマンド(以下、単にメモリ制御コマンドと称する)であって、ページデータの読み出しのコマンドであり、このコマンドの後に続くデータ長は、1ページ分のデータ長(512バイト+2バイト(CRC))である。ページデータは、ページバッファ45から読み出される。
【0080】
TPC=D2hは、メモリ制御コマンドであって、ページデータの書き込みのコマンドであり、このコマンドの後に続くデータ長は、1ページ分のデータ長(512バイト+2バイト(CRC))である。ページデータは、ページバッファ45に書き込まれる。
【0081】
TPC=4Bhは、メモリ制御コマンドであって、リードレジスタ48の読み出しコマンドであり、このコマンドの後に続くデータ長は、(31バイト+2バイト(CRC))である。
【0082】
TPC=B4hは、メモリ制御コマンドであって、ライトレジスタ46の書き込みコマンドであり、このコマンドの後に続くデータ長は、(31バイト+2バイト(CRC))である。
【0083】
TPC=78hは、メモリ制御コマンドであって、リードレジスタ48中の1バイトを読み出すためのコマンドであり、このコマンドの後に続くデータ長は、(1バイト+2バイト(CRC))である。
【0084】
TPC=87hは、メモリ制御コマンドであって、コマンドレジスタ44のアクセス範囲を変えるためのコマンドであり、このコマンドの後に続くデータ長は、(4バイト+2バイト(CRC))である。
【0085】
TPC=1Ehは、メモリカード40’において未定義のコードであるのに対して、メモリカード40においては、メモリカード40のセキュリティブロック52内のステータスレジスタのデータの読み出しの命令として規定されているコマンドである。このコマンドの後に続くデータ長は、2バイト+2バイト(CRC)である。このように、セキュリティブロック52にのみ関係するコマンドをセキュリティ用コマンドと称する。
【0086】
TPC=E1hは、メモリ制御コマンドであって、コマンドレジスタ44にコマンドをセットする命令である。このコマンドの後に続くデータは、やはりコマンド(TPCより下位階層のコマンド)であるので、データ長が1バイトにCRCの2バイトを加えた3バイトである。
【0087】
TPC=3Chは、メモリカード40’において未定義のコードであるのに対して、メモリカード40においては、メモリカード40のセキュリティブロック52からセキュリティ関係のデータの読み出しの命令として規定されている、セキュリティ用コマンドである。このコマンドの後に続くデータ長は、24バイト+2バイト(CRC)である。
【0088】
TPC=C3hは、メモリカード40’において未定義のコードであるのに対して、メモリカード40においては、メモリカード40のセキュリティブロック52に対してセキュリティ関係のデータを書き込む命令として規定されている、セキュリティ用コマンドである。このコマンドの後に続くデータ長は、26バイト+2バイト(CRC)である。
【0089】
TPC=E1hの後に伝送されるコマンド(1バイト)についてより具体的に図17および図18を参照して説明する。図17は、セキュリティ非対応のメモリカード40’に対して下記のように定義されているコマンドを示す。
【0090】
E1h=AAh:ブロック読み出し命令
E1h=55h:ブロック書き込み命令
E1h=33h:ブロック読み出しまたは書き込みを途中で停止する命令
E1h=99h:ブロックの消去命令
E1h=CCh:メモリの動作停止命令
E1h=5Ah:省電力モードの命令
E1h=C3h:ページバッファのクリア命令
E1h=3Ch:メモリコントローラに対するリセット命令である。
【0091】
図18は、セキュリティ対応のメモリカード40に対して定義されているコマンドである。図18の上段に示す(AAh〜3Ch)のコマンドの定義は、図17に示されるものと同一であるので、図示が省略されている。すなわち、これらのコマンドは、メモリカード40および40’に対して共通に定義されているメモリ制御用のものである。また、図18において、60hより下側に示すコマンド(60h〜83h)は、暗号化(復号化、認証も含む)にのみ必要とされるコマンドであり、メモリカード40専用のセキュリティ用コマンドである。
【0092】
このように、メモリカード40および40’間で、共通のメモリ制御コマンドTPCと、メモリカード40に専用のセキュリティ用コマンドTPCとが規定され、また、下位階層のコマンドに関しても同様に、共通のメモリ制御コマンドとセキュリティ用コマンドとが規定されている。セキュリティ用コマンドは、メモリカード40’に関しては、未定義(未使用)のコマンドである。この一実施形態では、メモリカード40のS/P,P/S,IFブロック43がレコーダ1からシリアルインタフェースを介してコマンドを受け取った時に、受け取ったコマンドTPCが共通のメモリ制御コマンドか、セキュリティ用コマンドかを判別し、その判別結果に応じて、後に続くデータの供給先を切り替える。また、TPC=E1hのように、後に続くデータがコマンドの場合には、図18に示すコマンドの規定に従ってコマンドの供給先を切り替える。
【0093】
図19は、このようなコマンドに応答して、データの送り先を切り替える構成を概略的に示す。データ線DIOを介してレコーダ1から送信され、メモリカード40で受信されたデータが遅延回路150を介してスイッチ回路152の端子aに供給される。また、受信データが検出回路151の入力端子に供給される。検出回路151は、データ線DIO上のプロトコルコマンド(TPC)がメモリ制御コマンドか、セキュリティ用コマンドかをコマンドのコード値から検出する。この検出結果によってスイッチ回路152が制御される。遅延回路150は、検出回路151の検出に要する時間を補償するために設けられている。これらの構成要素は、S/P,P/S,IFブロック43内にハードウエアおよび/またはソフトウェアにより実現される。一実施形態では、セキュリティ用コマンドに対して、メモリ制御コマンドとしては使用されないコードを割り当てているので、検出回路151は、簡単に2種類のコマンドを識別することができる。
【0094】
検出回路151がプロトコルコマンドがメモリ制御コマンドであることを検出すると、スイッチ回路152の端子aが端子bと接続される。そして、スイッチ回路152の端子a、端子bを介してメモリ制御コマンドがフラッシュメモリ42の制御のために、ページバッファ、レジスタ等に供給される。また、メモリ制御コマンドに続くデータがページバッファ、レジスタ等に供給され、またはページバッファ、レジスタ等からのデータがスイッチ回路152の端子b、端子aを介してレコーダ1に対して伝送される。
【0095】
検出回路151がプロトコルコマンドがセキュリティ用コマンドであることを検出すると、スイッチ回路152の端子aが端子cと接続される。そして、スイッチ回路152の端子a、端子cを介してセキュリティ用コマンドがセキュリティブロック52に供給される。また、セキュリティ用コマンドに続くデータがセキュリティブロック52へ供給され、またはセキュリティブロック52からのデータがスイッチ回路152の端子a、端子cを介してレコーダ1に対して伝送される。
【0096】
さらに、プロトコルコマンド(TPC=E1h)の場合では、後に続くデータもコマンドであり、且つ通常のメモリ制御用のコマンドとセキュリティ用コマンドとの両方がありうる。検出回路151は、TPC=E1hのプロトコルコマンドを受信した場合には、その後のデータ(コマンド)がメモリ制御用コマンドか、セキュリティ用コマンドかを検出し、検出した結果に基づいてスイッチ回路152を制御する。E1h以外のプロトコルコマンドであって、その後のデータ(コマンド)がメモリ制御用コマンドとセキュリティ用コマンドとの2種類存在する場合も同様に、データの切り替えが可能である。
【0097】
上述したメモリカード40は、メモリカード自身にメモリ制御用コマンドとセキュリティ用コマンドとを識別する機能を有しているので、セキュリティに対応していない機器に装着して使用することができる。すなわち、セキュリティに対応していない機器は、セキュリティに関連した通信を行わず、メモリカード40に対して書き込み/読み出しのためのメモリ制御コマンドと、メモリ制御コマンドに関係するデータのみを送信する。メモリカード40は、上述したように、機器から受け取ったコマンドがメモリ制御コマンドであることを識別し、フラッシュメモリ42の書き込み/読み出しのために使用する。それによって、メモリカード40に対してデータを書き込んだり、メモリカード40からデータを読み出すことができる。
【0098】
この発明の一実施形態についてさらに説明する。図20は、メモリカード40に内蔵されているセキュリティブロック52の構成をより詳細に示す。このセキュリティブロック52は、不揮発性メモリ42、S/P,P/S,I/Fブロック43、ページバッファ45等と共に、1チップ上に集積回路化されている。そして、上述したように、S/P,P/S,I/Fブロック43とセキュリティブロック52とが結合される。なお、レコーダ1のセキュリティブロック3も、図20に示すセキュリティブロック52と同様に構成されている。
【0099】
図20において、110がキー保管用メモリ(不揮発性メモリ)を有するDESの暗号化回路である。暗号化回路110と関連して、レジスタ群111および記憶ユニット113が設けられる。暗号化回路110は、レジスタ群111との間でデータの授受が可能とされている。記憶ユニット113には、メモリカード40の固有の識別データID、キーデータ、乱数の発生の元になるデータSEEDが記憶されている。暗号化回路110は、例えばCBCモードで暗号化を行う。また、スイッチ回路112を通じて、ライトレジスタ114の内容がレジスタ群111へ供給され、また、レジスタ群111の内容がリードレジスタ115に格納される。
【0100】
さらに、リードレジスタ115と暗号化回路110で使用されるレジスタ群111とが接続され、暗号化の途中の演算結果がリードレジスタ115にセット可能とされている。ライトレジスタ114へ書かれるデータは、S/P(シリアルからパラレル),P/S(パラレルからシリアル)ブロック116から供給される。リードレジスタ115から読み出されたデータがS/P,P/Sブロック116を介してI/Fブロック43へ供給される。書き込みデータは、上述したシリアルインタフェースを介してレコーダ1から供給され、また、読み出しデータがシリアルインタフェースを介してレコーダ1へ供給される。
【0101】
さらに、117がコマンドレジスタ、118がステータスレジスタである。コマンドレジスタ117には、レコーダ1から送信され、メモリカード40が受信したセキュリティ用コマンド(図18中の60h〜83h)がI/Fブロック43およびS/P,P/Sブロック116を介してセットされる。コマンドレジスタ117から次に実行するコマンドが発生する。コマンドレジスタ117にセットされるコマンドとして、リードレジスタ115の内容を外部へ読み出しても支障がないコマンドがある。例えば図18中のコマンドコード(63h、67h、6Dh)がその種のコマンドである。すなわち、このコマンドによって、暗号化回路110によって作られた暗号文をレジスタ群111からリードレジスタ115にセットされる。このようにその内容が読まれても良いデータをセットするコマンドの場合のみ、リードレジスタ115がリードイネーブルとされる。図20では、スイッチ回路122のオン/オフによって、リードイネーブル/ディセーブルが表されている。
【0102】
また、ステータスレジスタ118からのステータスがS/P,P/Sブロック116およびI/Fブロック43を介してレコーダ1へ送信される。さらに、内部発生したコマンドを保持するコマンドレジスタ119が設けられる。例えばコマンドコードをインクリメントさせるインクリメントブロック120が設けられ、それによってコマンドコードが順に生成される。内部発生されるコマンドは、電源オン等の初期化時に、60hの値とされる。そして、一つのコマンドが実行される度に、コマンドコードの値が+1され、(61h、62h,63h,・・・・71h)とインクリメントされる。メモリカード40を装着した時になされる認証のために必要とされるコマンドのコードの値は、60hから開始して71hまでインクリメントする。72h〜83hのコマンドコードは、認証が成立してから後に使用されるコマンドであって、認証時のコマンドと異なり、所定の順序で発生する必要がなく、任意に繰り返し使用できる。
【0103】
二つのコマンドレジスタ117および119の値が比較回路121において比較され、比較回路121の比較結果がステータスレジスタ118にセットされる。実際にレコーダ1から受け取ったコマンド(コマンドレジスタ117の内容)と、内部発生したコマンド(コマンドレジスタ119の内容)との一致を比較回路121が検出すると、ステータスレジスタ118にセットされるステータスは、エラー無しとされる。このステータスがレコーダ1側へ伝えられ、動作が続行される。若し、比較回路121の比較結果が不一致を示すものであると、ステータスレジスタ118にセットされるステータスは、エラー有りとされる。このステータスがレコーダ1側に伝えられ、動作が停止される。また、その旨のメッセージが表示される。この場合では、リセットによって初期化される。
【0104】
さらに、レジスタ群111からのデータとライトレジスタ114からのデータとの一致を検出する比較回路123が設けられている。比較回路123の比較結果がステータスレジスタ118にセットされる。上述したのと同様に、データ同士の一致を比較回路123が検出すると、ステータスがエラー無しとされ、データ同士の不一致を比較回路123が検出すると、ステータスがエラー有りとされる。このステータスがレコーダ1側に伝えられる。
【0105】
図18に示すセキュリティ用コマンドの中で、認証処理に使用されるコマンド(60h〜71h)を図20と関連して以下により詳細に説明する。
【0106】
60h(LOAD ID CMD):メモリカードのIDをリードレジスタ115にロードする
61h(SET Rms CMD):乱数1の発生準備(適当なキーを使用し、乱数のもとのSEEDをスイッチ回路112を介してレジスタ群111にセットする
62h(MK Rms CMD):乱数1を暗号化回路110で発生し、発生した乱数1をレジスタ群111にセットする
63h(LOAD Rms CMD):発生した乱数1をリードレジスタ115にロードする。
【0107】
上述した60h〜63hの処理の間では、リードレジスタ115の内容が見られても問題がない。次のコマンド(64h)の処理が開始されるまでに、ライトレジスタ114に認証コードが書き込まれている。
【0108】
64h(LOAD AUC1D CMD):ライトレジスタ114のデータを比較回路123で比較される一方のデータとしてロードする
65h(SET AUC1M CMD):認証コード1の生成準備(リードレジスタ115からスイッチ回路112を介して乱数1をレジスタ群111にロードする。認証用キーを暗号化回路110に入れる
66h(MK AUC1M CMD):認証コード1の生成(暗号化回路110が認証コード1を生成する。生成された認証コード1がレジスタ群111に入れられる)
67h(LOAD AUC1M CMD):生成された認証コード1をレジスタ群111から比較回路123で比較される他方のデータとしてロードする
68h(CMP CMD):比較回路123で一方および他方のデータを比較する。
【0109】
コマンド65hおよびコマンド66hでリードレジスタ115に対するアクセスを許すと、コマンド68hの比較処理において、比較結果が一致するような値を外部から入れられる可能性があるので、65hおよび66hのコマンドによる処理がなされる時には、リードレジスタ115が必ずアクセス不可(スイッチ回路122がオフ)とされる。
【0110】
69h(MK AUC2M CMD):認証コード2の生成
6Ah(LOAD AUC2M CMD):生成された認証コード2をリードレジスタ115にロードする
6Bh(SET Sms CMD):乱数2の発生準備
6Ch(MK Sms CMD):乱数2の発生
6Dh(LOAD Sms CMD):発生した乱数2をリードレジスタ115にロードする。この場合では、リードレジスタ115が必ずアクセス可能(スイッチ回路122がオン)とされる必要がある。
6Eh(SET Sek CMD):セッションキーの発生準備
6Fh(MK Sek CMD):セッションキーの発生
70h(LOAD Sek CMD):セッションキーを内部に保存
71h(CLR AUC CMD):認証回路のクリア。
【0111】
この一実施形態では、認証用のコマンドは、所定の順序でのみ実行可能とされている。従って、若し、演算結果の途中結果を不正に見ることを意図して、リードレジスタ115をイネーブルとするコマンドとして、レジスタ115の内容を読み出し可能なコマンド63h,67h,6Dh等を与えたとしても、比較回路121の比較結果が不一致を示すものとなり、動作が停止される。それによって、途中の演算結果を不正に読み取られることを防止することができる。
【0112】
図18に示すセキュリティ用コマンドの中で、キー変換、改ざんチェックに使用されるコマンド(72h〜7Fh)について以下により詳細に説明する。なお、(80h〜83h)のセキュリティ用コマンドは、キーを知っている人がセキュリティブロック52内の不揮発性記憶ユニットに対してキーを書き込むためのコマンドであって、一般ユーザには、それらの意味が公開されていないものであり、本明細書でもそれらについての説明を省略する。
【0113】
72h(SET KREC CMD):記録時のキー変換準備
73h(MK KREC CMD):記録時のキー変換
74h(LOAD KREC CMD):変換後のキーをリードレジスタにロードする
75h(SET KPB CMD):再生時のキー変換準備
76h(MK KPB CMD):再生時のキー変換
77h(LOAD KPB CMD):変換後のキーをリードレジスタにロードする
78h(CLR ICV CMD):改ざんチェックコード生成回路をクリアする
79h(SET ICV CMD):改ざんチェックコードの生成の準備
7Ah(MK ICV CMD):改ざんチェックコードの生成
7Bh(LOAD ICV1 CMD):内部保存しているICV0とICV1を比較回路にロードする
7Ch(LOAD ICV2 CMD):内部保存しているICV1と計算値を比較回路にロードする
7Dh(LOAD ICV3 CMD):計算値をICV0に書き込む
7Eh(LOAD ICV4 CMD):計算値をICV1に書き込む
7Fh(CMP ICV CMD):比較回路の実行。
【0114】
なお、上述した説明では、メモリカード40内のセキュリティブロック52について説明したが、この発明は、レコーダ1内のセキュリティブロック3に対しても同様に適用できる。また、DESを使用した場合を説明したが、セキュリティのための方式としては、DESに限らず、種々の暗号化技術を採用することが可能である。
【0115】
【発明の効果】
この発明に依れば、不揮発性メモリとセキュリティブロックとを備えたメモリカードをセキュリティ対応の電子機器のみならず、セキュリティに対応していない電子機器によって使用することが可能となる。従って、セキュリティ機能を有するメモリカードの互換性を向上することができる。
【0116】
また、この発明では、電子機器とメモリカードとの通信において、使用されていなかったコードをセキュリティ用の制御データに対して割り当てることによって、既存のセキュリティ機能を有しないメモリカードに対して、影響を何等与えることなく、上位互換性を持つことができる。言い換えると、既にセキュリティ機能を有しない電子機器が存在している場合に、この電子機器がこの発明が適用されたセキュリティ機能を有するメモリカードを使用することができる。若し、この発明と異なり、電子機器とメモリカードとの間で通信されるデータに対して、新たな識別子を付加してデータの種類を区別する方法では、識別子を必要とするのみならず、従来の電子機器が対応することができない。この発明は、かかる問題を生じることなく、互換性を確保することができる。
【図面の簡単な説明】
【図1】この発明の一実施形態の全体的構成を示すブロック図である。
【図2】この発明の一実施形態におけるセキュリティ対応のメモリカードの構成を示すブロック図である。
【図3】この発明の一実施形態におけるセキュリティ非対応のメモリカードの構成を示すブロック図である。
【図4】この発明の一実施形態におけるフラッシュメモリのファイルシステム処理階層の構成を示す略線図である。
【図5】この発明の一実施形態におけるフラッシュメモリのデータの物理的構成のフォーマットを示す略線図である。
【図6】フラッシュメモリのブートブロックの構成を示す略線図である。
【図7】フラッシュメモリのブートブロックのブートおよびアトリビュート情報の構成を示す略線図である。
【図8】この発明の一実施形態におけるコンテンツにおけるキーの関係を示す略線図である。
【図9】この発明の一実施形態における録音時の暗号化処理を説明するためのブロック図である。
【図10】この発明の一実施形態における認証処理を説明するための略線図である。
【図11】この発明の一実施形態における録音時の暗号化処理を説明するための略線図である。
【図12】この発明の一実施形態における再生時の暗号化処理を説明するためのブロック図である。
【図13】この発明の一実施形態における再生時の暗号化処理を説明するための略線図である。
【図14】この発明の一実施形態におけるレコーダとメモリカード間のインタフェースを説明するためのタイミングチャートである。
【図15】この発明の一実施形態におけるレコーダとメモリカード間のインタフェースを説明するためのタイミングチャートである。
【図16】この発明の一実施形態におけるプロトコルコマンドの一例を示す略線図である。
【図17】この発明の一実施形態におけるコマンドの一例を示す略線図である。
【図18】この発明の一実施形態におけるコマンドの一例を示す略線図である。
【図19】この発明の一実施形態の概略的ブロック図である。
【図20】この発明の一実施形態におけるセキュリティブロックのブロック図である。
【符号の説明】
1・・・レコーダ、2・・・CPU、3・・・セキュリティブロック、7・・・オーディオエンコーダ/デコーダ、11・・・メモリインタフェース、40・・・セキュリティ対応のメモリカード、40’・・・セキュリティ非対応のメモリカード、43・・・S/P,P/S,IFブロック、42・・・フラッシュメモリ、52・・・セキュリティブロック
[0001]
BACKGROUND OF THE INVENTION
  The present invention relates to a memory device and a data processing device in which a memory card which is detachable from a device is used as a medium for recording audio data, for example.,Data processing systemAnd data processing methodAbout.
[0002]
[Prior art]
An electrically rewritable non-volatile memory called EEPROM (Electrically Erasable Programmable ROM) is composed of two transistors, so it occupies a large area per bit and is limited in increasing the degree of integration. was there. In order to solve this problem, a flash memory capable of realizing one bit with one transistor by the all-bit batch erasing method has been developed. A flash memory is expected to replace a recording medium such as a magnetic disk or an optical disk.
[0003]
There is also known a memory card in which a flash memory is configured to be detachable from a device. By using this memory card, it is possible to realize a digital audio recording / reproducing apparatus that uses a memory card in place of a conventional disc-shaped medium such as a CD (compact disc) or an MD (mini disc).
[0004]
Audio recorders that use memory cards as recording media perform digital recording / playback, so if you are using a compression method that can restore relatively high-quality data, you should be able to protect the copyright of the music that is recorded / played back. It needs to be protected. As one of the methods, there is a method of making a memory card other than a genuine memory card unusable by an encryption technique. That is, encryption can be decrypted by a combination of a genuine recorder and a genuine memory card. Further, not only copyright protection but also encryption technology may be employed because the confidentiality of information stored in a memory card is required.
[0005]
A conventional memory card does not have an encryption function in itself. Therefore, when data that requires confidentiality is to be recorded on the memory card, it is necessary to encrypt the data on the set side and record the encrypted data on the memory card. However, when the decryption key is stored on the memory card, confidentiality cannot be maintained. On the other hand, when the decryption key is kept in the set, the encrypted data cannot be decrypted to other than the set, and there is a problem that the compatibility of the memory card cannot be maintained. For example, a memory card recorded with your own set cannot be decrypted with another person's set. In order to solve this problem, it has been proposed that both the set and the memory card have an encryption function and perform mutual authentication to ensure confidentiality and card compatibility.
[0006]
In practice, data that does not require copyright protection may be recorded / reproduced on a memory card. For example, when recording a conversation, an audio compression method having a high compression rate is used even if the quality of the restored sound is relatively poor. In this case, copyright protection is unnecessary. Also, when a memory card is used as a medium for recording an image taken with an electronic still camera, a video camera, or the like, copyright protection is unnecessary. In general, a security-compatible memory card having an encryption function is more expensive and expensive than a memory card without the security card, that is, a conventional memory card. Therefore, it is expected that a memory card that supports security and a memory card that does not support security will be used depending on the necessity of copyright protection and confidentiality maintenance.
[0007]
[Problems to be solved by the invention]
If there are two types of sets and memory cards that are security-compliant and non-compliant, the security-compliant set can only use security-compliant memory cards, and the non-security-compliant set can only use non-compliant memory cards. It is normal to be able to use it. However, from the viewpoint of compatibility, it is desired that a memory card compatible with security can be used in an incompatible set. Furthermore, when realizing such compatibility, if a security-incompatible set already exists, it is desirable that it can be used by the existing set. For example, it is desirable that an image taken by a handy movie that is not compatible with security (camera-integrated recording / reproducing device) can be recorded on a security-compatible memory card and reproduced from the memory card. In this case, the encryption function is not used.
[0008]
Accordingly, an object of the present invention is to provide a memory device, a data processing device, and a data processing system that allow a security-compatible memory card to be used in an existing non-security-compatible set.
[0009]
[Means for Solving the Problems]
  In order to solve the above-mentioned problems,ThisThe invention ofSecurity-compliant with encryption circuitIn a memory device that is detachable from the data processing device,
  SecurityA non-volatile memory for recording data transmitted from the data processing device;
  A security block having an encryption circuit;,
  SecurityDetermines whether the command sent from the data processor is a memory control command for nonvolatile memory or a security command defined for the security block, and supplies the security command to the security block DoA command discrimination separation block,
  Memory control commands are defined in common for security-compliant data processing devices and non-security-compliant data processing devices that do not have an encryption circuit, and codes that are not used as memory control commands are assigned to security commands. Assigned and usable not only for security-compliant data processing devices but also for non-security-compliant data processing devicesThis is a memory device.
[0010]
  ThisThe invention of the present invention is detachable, and a non-volatile memoryHas encryption circuitSecurityblockAnd includingSecurityIn a data processing apparatus using a memory device as a recording medium,
  Security block with encryption circuitWhen
  Memory deviceofSupplied to security blockRelated to encryption processingSecurityForCommand and
  Memory control commands for controlling the nonvolatile memory of the memory device are stored in the memory device.An interface means for transmitting,
  Memory control commands are defined in common for security-compliant memory devices and non-security-compliant memory devices that do not have an encryption circuit, and codes that are not used as memory control commands are assigned to security commands. Memory control is possible not only for memory devices that support security but also for memory devices that do not support securityIt is characterized bySecurityA data processing device.
[0011]
  ThisThe present invention provides a data processing system including a data processing device and a memory device that is detachable from the data processing device.
  The data processing device includes a security block for authenticating the memory device and for encrypting and decrypting the content data.A data processing device for security,
  Memory device
  Non-volatile memory;
  SecurityA security block that authenticates each other in cooperation with the security block of the data processing device,
  SecurityInterface means for data communication between data processing device and memory deviceWhen,
  Determine whether a command sent from a security-compatible data processing device is a memory control command for nonvolatile memory or a security command defined for a security block. A command discrimination separation block to be supplied to the block,
  Memory control commands are defined in common for security-compliant data processing devices and non-security-compliant data processing devices that do not have an encryption circuit, and codes that are not used as memory control commands are assigned to security commands. Assigned and usable not only for security-compliant data processing devices but also for non-security-compliant data processing devices
This is a data processing system.
[0012]
In the present invention, the second control data for security is constituted by a code that is not used as the first control data for writing / reading to / from the nonvolatile memory. Therefore, the security-compatible data processing device can protect the security of the content by transmitting the first and data 2 control data to the memory device. In addition, the non-security compliant data processing device can use this memory device in the same manner as the non-security compliant memory device by transmitting only the first control data to the security compliant memory device. . Thereby, the compatibility of the security-compatible memory device can be improved.
[0013]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, an embodiment of the present invention will be described. FIG. 1 shows the overall configuration of an embodiment of the present invention. This embodiment is a digital audio signal recorder (recording and reproducing device) that uses a removable memory card as a recording medium. In FIG. 1, reference numeral 1 surrounded by a broken line indicates a recorder as a set, and reference numeral 40 indicates a memory card which can be attached to and detached from the recorder. The present invention can also be applied to recording / reproduction of moving image data, still image data, etc. in addition to digital audio signals.
[0014]
The recorder 1 includes a CPU 2, a security block connected to the CPU 2 via a bus, operation buttons 4, and a display device 5. The security block 3 includes a DES (Data Encryption Standard) encryption circuit. Data such as a recording command and a playback command generated in response to a user operation from the operation button 4 is given to the CPU 2 via the bus. Various information, the operating state of the recorder 1 and the like are displayed on the display device 5. Reference numeral 6 denotes an audio interface provided between the external input / output and the internal audio encoder / decoder 7.
[0015]
As will be described later, the memory card 40 includes a flash memory (nonvolatile memory) 42, a security block 52 including a DES encryption circuit, a communication interface, a register, and the like on a single chip. The memory card 40 is detachable from the recorder 1. In this embodiment, the recorder 1 can use a memory card that does not have an encryption function, that is, a memory card that does not have a security block.
[0016]
The audio encoder / decoder 7 encodes the digital audio signal with high efficiency and decodes the highly efficient encoded data. As a high-efficiency encoding method, an improved ATRAC (Adaptive Transform Acoustic Coding) adopted in a mini-disc (denoted as ATRAC3) can be used. In ATRAC3, 1-sample 16-bit audio data sampled at 44.1 kHz is processed. The minimum data unit when processing audio data with ATRAC3 is a sound unit SU. One SU is 1024 samples (1024 × 16 bits × 2 channels) compressed to several hundred bytes, and is about 2.3 milliseconds in time. Audio data is compressed to about 1/10 by ATRAC3. As is the case with the mini-disc, the sound quality deterioration due to compression / decompression processing is small due to the signal processing of ATRAC3.
[0017]
Analog audio signals 8 such as MD (mini disc) playback output, tuner output, tape playback output, etc. are converted into digital audio signals by an A / D converter 9, and the digital audio signals are supplied to the audio interface 6. The digital input 10 is MD or CD (compact disc) playback output, digital broadcasting, audio data distributed over a network, and the like. A digital input 10 is supplied to the audio interface 6. The digital input 10 is transmitted via an optical cable, for example. In the audio interface 6, input selection processing is performed, and the selected input digital audio signal is supplied to the audio encoder / decoder 7.
[0018]
The encoded data from the audio encoder / decoder 7 is encrypted in the security block 3. The security block 3 is provided for protecting the copyright of the content (here, digital audio signal). The security block 3 of the recorder 1 has a plurality of master keys and a unique storage key for each device. Further, when a memory card 40 having a random number generation circuit and incorporating the security block 52 is attached, authentication is performed to confirm whether the attached one is authentic, and if it can be correctly authenticated, the session key is shared. be able to.
[0019]
The encrypted audio data from the security block 3 is supplied to the CPU 2. The CPU 2 performs communication via the memory interface 11 with the memory card 40 mounted on the attaching / detaching mechanism (not shown), and writes the encrypted data in the flash memory 42 of the memory card 40. Serial communication is performed between the CPU 2 and the memory card 40 by the memory interface 11.
[0020]
The encrypted audio data read from the memory card 40 by the CPU 2 and the memory interface 11 is decrypted by the security block 3 and decrypted by the audio encoder / decoder 7. The output of the audio encoder / decoder 7 is supplied to the D / A converter 12 via the audio interface 6 and converted into the analog audio output 13. Audio data from the audio encoder / decoder 7 and decoded data from the security block 3 are output as digital outputs 14 and 15 through the interface 6.
[0021]
FIG. 2 shows the configuration of the memory card 40. The memory card 40 has a control block 41 and a flash memory 42 configured as a one-chip IC. The bidirectional serial interface (memory interface 11) between the CPU 2 of the recorder 1 and the memory card 40 is composed of 10 lines. The four main lines are a clock line SCK for transmitting a clock during data transmission, a status line SBS for transmitting status, a data line DIO for transmitting data, and an interrupt line INT. In addition, two GND lines and two VCC lines are provided as power supply lines. Two lines Reserv are undefined lines.
[0022]
The clock line SCK is a line for transmitting a clock synchronized with data. The status line SBS is a line for transmitting a signal representing the status of the memory card 40. The data line DIO is a line for inputting and outputting commands and encrypted audio data. The interrupt line INT is a line for transmitting an interrupt signal for requesting an interrupt from the memory card 40 to the CPU 2 of the recorder 1. An interrupt signal is generated when the memory card 40 is inserted. However, in this embodiment, since the interrupt signal is transmitted through the data line DIO, the interrupt line INT is grounded and not used.
[0023]
The serial / parallel conversion / parallel / serial conversion / interface block (abbreviated as S / P, P / S, IF block) 43 of the control block 41 is a memory interface 11 of the recorder 1 connected via the plurality of lines described above. And the control block 41. The S / P, P / S, and IF block 43 converts the serial data received from the recorder 1 into parallel data, fetches it into the control block 41, converts the parallel data from the control block 41 into serial data, and sends it to the recorder 1. send. The S / P, P / S, and IF block 43, when receiving a command and data transmitted via the data line DIO, encrypts the command and data for normal access to the flash memory 42, and encryption. Separate necessary commands and data.
[0024]
That is, in the format transmitted via the data line DIO, the command is transmitted first, and then the data is transmitted. The S / P, P / S, and IF block 43 determines whether the command and data necessary for normal access or the command and data necessary for encryption are viewed from the command code. In accordance with the determination result, a command necessary for normal access is stored in the command register 44 and data is stored in the page buffer 45 and the write register 46. An error correction encoding circuit 47 is provided in association with the write register 46. For the data temporarily stored in the page buffer 45, the error correction encoding circuit 47 generates a redundant code of the error correction code.
[0025]
Output data of the command register 44, page buffer 45, write register 46, and error correction encoding circuit 47 is supplied to a flash memory interface and a sequencer (memory I / F, abbreviated as sequencer) 51. The memory IF / sequencer 51 is an interface between the control block 41 and the flash memory 42 and controls data exchange between the two. Data is written to the flash memory 42 via the memory IF and the sequencer 51.
[0026]
Data read from the flash memory 42 is supplied to the page buffer 45, read register 48, and error correction circuit 49 via the memory IF and sequencer 51. Data stored in the page buffer 45 is error-corrected by the error correction circuit 49. The error-corrected output of the page buffer 45 and the output of the read register 48 are supplied to the S / P, P / S, and IF block 43 and supplied to the CPU 2 of the recorder 1 via the serial interface described above.
[0027]
For copyright protection, content written to the flash memory 42 by the security IC 40 of the recorder 1 and the security block 52 of the memory card 40 (audio data compressed by ATRAC3, hereinafter referred to as ATRAC3 data) is encrypted. Is done. The security block 52 includes a buffer memory 53, a DES encryption circuit 54, a nonvolatile memory 55, and the like.
[0028]
Reference numeral 50 denotes a configuration ROM that stores version information of the memory card 40, various attribute information, and the like. Further, the memory card 40 is provided with an erroneous erasure prevention switch 60 that can be operated by the user as needed. When the switch 60 is in the erase prohibition connection state, even if a command for instructing to erase the flash memory 42 is sent from the recorder 1 side, the erase of the flash memory 42 is prohibited. Further, 61 is an oscillator that generates a clock that is a timing reference for processing of the memory card 40.
[0029]
The security block 52 of the memory card 40 has a plurality of authentication keys and a unique storage key for each memory card. The non-volatile memory 55 stores a key necessary for encryption and is not visible from the outside. For example, the storage key is stored in the nonvolatile memory 55. Further, it has a random number generation circuit, can authenticate correctly with a dedicated recorder (meaning that a certain data format etc. is used in the same system), and can share a session key. The content key for encrypting the ATRAC3 data is encrypted with the session key and transmitted between the recorder 1 and the memory card 40. Similar to the security block 52 of the memory card 40, the security block 3 of the recorder 1 has a set-specific storage key. When moving the encrypted content, the content key is redone using the storage key.
[0030]
FIG. 3 shows a memory card 40 'that does not have an encryption function (ie, does not support security). Compared with the memory card 40 shown in FIG. 2 and described above, the security block 52 is not connected to the S / P, P / S, and IF block 43. Regarding other configurations, the memory cards 40 and 40 'are the same. The shape and size of the memory cards 40 and 40 'are also the same. Since the recorder 1 shown in FIG. 1 is security-compatible, it performs mutual authentication with a memory card, key communication, and the like. If the memory card 40 ′ shown in FIG. 3 that does not support security is inserted, the recorder 1 determines that the memory card 40 ′ is incompatible with security and the memory card 40 ′ cannot be used.
[0031]
Several methods can be used for the recorder 1 to determine the type of the memory card. In one method, when a key is transmitted to authenticate when a memory card is inserted, a normal response cannot be received from the memory card 40 ′, and a time-out is determined in the recorder 1, and as a result. It can be determined that the memory card is not compatible with security. In another method, when a memory card is inserted, identification information corresponding to security / non-correspondence is recorded in a memory card area (boot area) that is first read into the recorder 1, and based on this identification information. The recorder 1 can determine the type of memory card.
[0032]
In addition to the recorder 1 shown in FIG. 1, there is a device that uses a memory card 40 'that does not support security. For example, a memory card 40 'can be used for a digital handy movie having a function of recording an image taken by a CCD camera on a memory card and reproducing the taken image from the memory card. Normally, such a digital handy movie cannot use a memory card 40 that supports security. As will be described later, in one embodiment of the present invention, in order to increase the compatibility of the memory card 40, a set such as a digital handy movie that does not support security can be recorded and reproduced using the memory card 40. A memory card 40 is configured. That is, as described above, the S / P, P / S, and IF block 43 have a function of separating commands and data for writing / reading from the flash memory 42 and commands and data necessary for the security block. Have.
[0033]
The above-described embodiment of the present invention will be described in more detail. FIG. 4 shows a file system processing hierarchy of a computer system using a memory card as a storage medium. As the file system processing hierarchy, the application processing layer is the highest level, and below this, the file management processing layer, logical address management layer, physical address management layer, and flash memory access are sequentially arranged. In this hierarchical structure, the file management processing layer is the FAT file system. The physical address is assigned to each block of the flash memory, and the correspondence between the block and the physical address is unchanged. The logical address is an address logically handled by the file management processing layer.
[0034]
FIG. 5 shows an example of a physical configuration of data in the flash memory 42 in the memory card 40. In the flash memory 42, a data unit called a segment is divided into a predetermined number of blocks (fixed length), and one block is divided into a predetermined number of pages (fixed length). In the flash memory 42, erasing is collectively performed in units of blocks, and writing and reading are performed in units of pages. Each block and each page have the same size, and one block is composed of page 0 to page m. One block has a capacity of, for example, 8 KB (K bytes) bytes or 16 KB, and one page has a capacity of 512 B. The entire flash memory 42 has 4 MB (512 blocks) and 8 MB (1024 blocks) when 1 block = 8 KB, and 16 MB (1024 blocks), 32 MB (2048 blocks), 64 MB (1 block = 16 KB). 4096 blocks).
[0035]
One page consists of a 512-byte data part and a 16-byte redundant part. The first 3 bytes of the redundant portion are an overwrite portion that is rewritten in accordance with the data update. The block status, page status, and update status are recorded in each of the 3 bytes in order from the top. The contents of the remaining 13 bytes of the redundant part are basically fixed according to the contents of the data part. 13 bytes are composed of a management flag (1 byte), a logical address (2 bytes), a format reserve area (5 bytes), distributed information ECC (2 bytes), and data ECC (3 bytes). The distributed information ECC is redundant data for error correction with respect to the management flag, logical address, and format reserve, and the data ECC is redundant data for error correction with respect to 512-byte data.
[0036]
As a management flag, a system flag (its value is 1: user block, 0: boot block), conversion table flag (1: invalid, 0: table block), copy prohibition designation (1: OK, 0: NG), access permission Each flag (1: free, 0: read protect) is recorded.
[0037]
The first two blocks 0 and 1 are boot blocks. Block 1 is for backup in which the same data as block 0 is written. The boot block is a head block of valid blocks in the card, and is a block that is first accessed when a memory card is loaded into the device. The remaining blocks are user blocks. A header, system entry, and boot & attribute information are stored in the first page 0 of the boot block. Page 1 stores use-prohibited block data. Page 2 stores CIS (Card Information Structure) / IDI (Identify Drive Information).
[0038]
FIG. 6 shows the format of the boot block. The boot block header (368 bytes) records the boot block ID, the format version, and the number of valid entries in the boot block. In the system entry (48 bytes), the start position of the prohibited block data, its data size, data type, CIS / IDI data start position, its data size, and data type are recorded.
[0039]
FIG. 7 shows the boot & attribute information (968 bytes) in detail. Boot & attribute information includes memory card class, type (read only, read and write, hybrid of both types, etc.), block size, number of blocks, total number of blocks, security support, and card manufacturing The recorded data (manufacturing date, etc.) is recorded. The set can determine whether or not the attached memory card is security-compatible based on the identification information (1 byte) indicating whether or not the security is compatible. In FIG. 7, information with (* 1) is an item to be read by the set side and checked at the time of mounting, and information with (* 2) is an item for setting information on manufacturing and quality control. is there.
[0040]
In the flash memory, the data is rewritten, the insulating film is deteriorated, and the number of rewrites is limited. Therefore, it is necessary to prevent repeated and concentrated access to a certain storage area (block). Therefore, when rewriting the data of a certain logical address stored at a certain physical address, the flash memory file system does not rewrite the updated data to the same block, but rewrites the unused block. The updated data is written. As a result, the correspondence between the logical address and the physical address before the data update changes after the update. By performing such processing (referred to as swap processing), it is possible to prevent repeated and concentrated access to the same block, and to extend the life of the flash memory.
[0041]
Since the logical address is attached to the data once written to the block, even if the block in which the pre-update data and the post-update data are moved moves, the same address can be seen from the FAT. Subsequent access can be performed appropriately. Since the correspondence relationship between the logical address and the physical address is changed by the swap processing, a logical-physical address conversion table indicating the correspondence between the two is required. By referring to this table, the physical address corresponding to the logical address specified by the FAT is specified, and the block indicated by the specified physical address can be accessed.
[0042]
The logical-physical address conversion table is stored on the memory by the CPU 2. If the RAM capacity is small, it can be stored in the flash memory. This table is generally a table in which physical addresses (2 bytes) are associated with logical addresses (2 bytes) arranged in ascending order. Since the maximum capacity of the flash memory is 128 MB (8192 blocks), 8192 addresses can be represented by 2 bytes. The logical-physical address conversion table is managed for each segment, and its size increases according to the capacity of the flash memory. For example, when the capacity of the flash memory is 8 MB (2 segments), two pages are used for the logical-physical address conversion table for each of the two segments. When the logical-physical address conversion table is stored in the flash memory, whether or not the block is a block in which the logical-physical address conversion table is stored according to a predetermined 1 bit of the management flag in the redundant portion of each page described above. Is instructed.
[0043]
The memory card described above can be used by the FAT file system of a personal computer, as with a disk-shaped recording medium. Although not shown in FIG. 5, an IPL area, a FAT area, and a root directory area are provided on the flash memory. In the IPL area, an address where a program to be loaded into the memory of the recorder first is written and various information of the memory are written. In the FAT area, related items of blocks (clusters) are written. The FAT defines values indicating an unused block, the next block number, a bad block, and the last block. Furthermore, directory entries (file attributes, update date, start cluster, file size, etc.) are written in the root directory area.
[0044]
Further, in this embodiment, file management information (track information management file) is defined for music files, separately from the file management system defined by the format of the memory card 40 described above. The track information management file is recorded on the flash memory 42 using the user block of the memory card 40. Thereby, even if the FAT on the memory card 40 is broken, the file can be repaired.
[0045]
The track information management file is created by the CPU 2. For example, when the power is first turned on, it is determined whether or not the memory card 40 is attached. When the memory card is attached, the boot block of the flash memory 42 is read into the CPU 2. Based on the identification information in the boot block, it is determined whether the inserted memory card is compatible with security or not. If it is determined that security is supported, an authentication operation is performed. Data read from other memory cards 40 is stored in a memory (not shown) managed by the CPU 2. Even for a memory card that the user purchases for the first time, FAT and a root directory are written in the flash memory 42 at the time of shipment. The track information management file is created when recording is performed. When the authentication is established, the recorder 1 records / reproduces the encrypted ATRAC3 data file.
[0046]
At the time of recording, a recording command generated by pressing the recording button with the operation button 4 is given to the CPU 2. The input audio data is compressed by the encoder / decoder 7, and the ATRAC3 data from the encoder / decoder 7 is encrypted by the security block 3. The CPU 2 records the encrypted ATRAC3 data in the flash memory 42 of the memory card 40. After this recording, the FAT and track information management file are updated. Each time a file is updated, specifically, recording of audio data is started and each time recording is completed, the FAT and track information management file are rewritten on a memory (not shown) controlled by the CPU 2. When the memory card 40 is removed or the power is turned off, the final FAT and track information management file is stored from the memory onto the flash memory 42 of the memory card 40. In this case, the FAT and track information management file on the flash memory 42 may be rewritten every time recording of audio data starts and ends. Even when editing is performed, the contents of the track information management file are updated.
[0047]
The security protection function in the above-described embodiment of the present invention will be further described. First, the key relationship in the content will be described with reference to FIG. On the flash memory 42 of the memory card 40, as shown in FIG. 8A, a key area 101 is provided, and a content key CK created for each content (track (song) of encrypted audio data) in the key area 101. Is encrypted with a storage key Kstm unique to the memory card and stored. Encryption is written as DES, and when the content key CK is encrypted with the storage key Kstm, it is written as DES (Kstm, CK). In this embodiment, the encrypted value is handled with a 64-bit length obtained by adding an error detection CRC (8 bits) to 56 bits.
[0048]
A part data area 102 is defined in the content track, and a part key PK is recorded for each part. Each part is a set of 16 Kbyte blocks 103. Each block has a block seed BK. SEED and initial vector INV are recorded. The part key PK is used in pairs with the content key CK in order to create a block key BK for encrypting the content. That is, BK = DES (CK (+) PK, BK SEED) (56 bits + 8 bits). (+) Represents exclusive OR. The initial vector INV is an initial value for block encryption and decryption.
[0049]
FIG. 8B shows content in the recorder 1. The content key CK for each content is decrypted in the key area 111, re-encrypted with the storage key Kstd unique to the recorder 1, and held. That is, decryption is expressed as IDES (Kstm, CK) (56 bits + 8 bits), and re-encryption is expressed as DES (Kstd, CK) (56 bits + 8 bits). A part key PK for creating a block key BK is recorded for each part data area 112 constituting the content. Each of the blocks 113 constituting the part has a block seed BK. SEED and initial vector INV are recorded. As on the memory card, the block key BK is BK = DES (CK (+) PK, BK SEED) (56 bits + 8 bits).
[0050]
FIG. 9 is a simplified block diagram for explaining the flow of encryption processing at the time of recording. The parts corresponding to those in FIG. Unnecessary components are omitted. Sek is a session key shared between the recorder 1 and the memory card 40 when authentication is established. A CD 10 ′ is shown as the source of the digital audio input 10.
[0051]
When the memory card 40 is attached to the recorder 1, whether or not the attached memory card is compatible with security is determined by the identification information in the boot area. If it is determined that it is security-compatible, the recorder 1 and the memory card 40 authenticate whether they are authentic.
[0052]
FIG. 10 shows the encryption processing between the set (recorder 1) and the memory card 40 at the time of authentication. In the first step S 1, a random number Rm is generated by a random number generator in the security block 52 of the memory card 40 and transmitted together with the serial number ID of the memory card 40.
[0053]
In the recorder 1, the process of step S2 is performed. That is, Rm and ID are received, and an authentication key IKj is generated according to the relationship of IKj = MAC (MKj, ID). MKj is a plurality of master keys MK stored in the security block 3 of the recorder 10~ MK31One master key selected from the list. The recorder 1 generates a random number Rd, and a message authenticator MAC with an authentication key.A(Message Authentication Code), that is, MAC (IKj, ID // Rm // Rd) is created. Here, A // B indicates a concatenation of A and B (m bits B are combined with n bits A followed by (n + m) bits). Then, the recorder 1 generates a random number Sd and Rd // Sd // MACA// Send j to the memory card 40.
[0054]
In step S3, the memory card 40 stores the data Rd // Sd // MAC.A// Receive j, find authentication key IKj in security block 52 from j, use authentication key IKj and Rd, Rm, IDBCalculate Calculated MACBReceived byAThe memory card 40 accepts the set (recorder) as correct. In step S4, the memory card 40 stores the MACC= MAC (IKj, Rm // Rd) is generated, and a random number Sm is generated. Thereafter, the memory card 40 stores the Sm // MAC.CIs transmitted to the recorder 1.
[0055]
In step S5, the recorder 1 performs Sm // MACCReceive. Recorder 1 uses IKj, Rm, and Rd for MACDCalculate Calculated MACDReceived byCThe recorder 1 recognizes the memory card 40 as correct (ie, authenticates). At this stage, both the recorder 1 and the memory card 40 have the authentication key IKj and the random numbers Sd and Sm selected. In step S6, the recorder 1 designates MAC (IKj, Rm // Rd) as the session key Sek. Also on the memory card 40 side, MAC (IKj, Rm // Rd) is designated as the session key Sek. As described above, when mutual authentication is correctly performed, the session key Sek is shared by the recorder 1 and the memory card 40. The session key is generated every time authentication is established.
[0056]
FIG. 11 shows a key writing process when the recorder 1 records an audio file in the flash memory 42 of the memory card 40. Note that when the writing process is started, the session key Sek generation process is finished, and the recorder 1 and the memory card 40 share the session key Sek. In step S11, the recorder 1 generates a random number for each piece of content track data, and creates a content key CK corresponding to the random number. Next, in step S <b> 12, the recorder 1 encrypts the content key CK with the session key Sek, and transmits the encrypted DES (Sek, CK) to the memory card 40.
[0057]
In step S13, the memory card 40 receives this data and decrypts the content key CK with the session key. That is, IDES (Sek, DES (Sek, CK)) and decryption processing are written. In the next step S14, the memory card 40 re-encrypts the decrypted content key CK with the storage key Kstm of the memory card 40, and the re-encrypted content key DES (Kstm, CK) is transmitted to the recorder 1.
[0058]
In step S15, the recorder 1 places the re-encrypted content key in the key area 111 that manages the part data area 112, and the re-encrypted content key CK and the content are recorded in the flash memory of the memory card 40. The formatting process is performed as follows. For content encryption, as shown in FIG. 9, the exclusive OR or logical product of the content key CK and the part key PK is taken. As a result, a temporary key TMK is obtained. The temporary key TMK exists only in the security block 3 and is not accessible from the outside. A random number is generated at the head of each block 113, and this is generated as a block seed BK. SEED is stored in each part data area 112. Recorder 1 uses temporary key TMK to block seed BK SEED is encrypted and a block key BK is obtained. That is, BK = (CK (+) PK, BK SEED) relationship is obtained. The block key BK also exists only in the security block 3 and is not accessible from outside the security block 3.
[0059]
In step S <b> 16, the recorder 1 encrypts the data in the part data area 112 for each block using the block key BK, and transmits the encrypted data and the data in the key area 111 to the memory card 40. The memory card 40 records the encrypted data received from the recorder 1 and the data (header data) in the key area 111 in the flash memory 42 (step S17).
[0060]
FIG. 12 is a simplified block diagram for explaining the flow of processing when the recorder 1 reproduces an audio track stored in the flash memory 42 of the memory card 40. In the portion corresponding to FIG. Are denoted by the same reference numerals, and components that are not particularly necessary for explanation of encryption and decryption are omitted. FIG. 13 shows a decoding process when the audio track is reproduced from the flash memory 42 of the memory card 40 by the recorder 1 as in FIG. Even during playback, the mutual authentication is established, so that the session key Sek is shared between the recorder 1 and the memory card 40.
[0061]
In step S21, the recorder 1 reads the data from the memory card 40, thereby encrypting the content key CK encrypted with the storage key Kstm, that is, (DES (Kstm, CK)) and the encrypted content (the desired track). A parts data area 102) is obtained. Then, the recorder 1 passes the content key CK encrypted with the storage key Kstm to the memory card 40.
[0062]
In step S22, the memory card 40 decrypts the content key CK with the storage key Kstm (IDES (Kstm, DES (Kstm, CK)). Encrypt and send DES (Sek, CK) to the recorder 1.
[0063]
In step S24, the recorder 1 decrypts the content key with the session key Sek. In the next step S25, the recorder 1 recognizes the decrypted content key CK, part key PK, and block seed BK. A block key BK is created using SEED. In step S26, the recorder 1 decrypts each part data area 102 encrypted by the block key BK for each block. The decoded audio data is decoded by the audio encoder / decoder 7.
[0064]
The Syrian interface between the recorder 1 and the memory card 40 in one embodiment of the present invention will be described in more detail. As shown in FIG. 2, among the ten lines connecting the recorder 1 and the memory card 40, the main ones for signal transmission / reception are the clock line SCK, the status line SBS, and the data line DIO. .
[0065]
FIG. 14 shows the timing when data is read from the memory card 40. In a state other than the state 0 (initial state), a clock synchronized with the data transmitted through the clock line SCK is transmitted. When no data is transmitted / received between the recorder 1 and the memory card 40, the status line SBS is at a low level. This is state 0 (initial state). At timing t31, the recorder 1 sets the status line SBS to the high level and enters the state 1.
[0066]
The memory card 40 (S / P, P / S, IF block 43) detects the change from the state 0 to the state 1 due to the status line SBS being switched to the high level. In state 1, a read command is transmitted from the recorder 1 to the memory card 40 via the data line DIO, and the memory card 40 receives the read command. This read command is a protocol command called TPC (Serial Protocol Command) for serial interface. As will be described later, the contents of communication and the data length of subsequent data are specified by the protocol command.
[0067]
At the timing t32 when the command transmission is completed, the status line SBS is switched from the high level to the low level. As a result, transition from state 1 to state 2 occurs. In the state 2, the process instructed by the command received by the memory card 40, specifically, the process of reading the data at the address specified by the read command from the flash memory 42 is performed. While this processing is being performed, a busy signal (high level) is transmitted to the recorder 1 via the data line DIO.
[0068]
Then, at timing t33 when reading of data from the flash memory 42 is completed, the output of the busy signal is stopped, and a ready signal (low level) indicating that the recorder 1 is ready to send data from the memory card 40. Starts to output.
[0069]
By receiving the ready signal from the memory card 40, the recorder 1 knows that the process corresponding to the read command is ready, and switches the status line SBS to the high level at timing t34. That is, the state 2 changes to the state 3.
[0070]
In state 3, the memory card 40 outputs the data read to the page buffer 45 in state 2 to the recorder 1 through the data line DIO. At the timing t35 when the transfer of the read data is completed, the recorder 1 stops supplying the clock transmitted via the clock line SCK and switches the status line from the high level to the low level. Thereby, the state 3 is changed to the initial state (state 0).
[0071]
When a change occurs in the internal state of the memory card 40 and it is necessary to perform some kind of interrupt processing, the memory card 40 sends an interrupt signal indicating an interrupt to the data line DIO in the state 0 as shown at timing t36. To the recorder 1. When the signal is supplied from the memory card 40 via the data line DIO in the state 0, the recorder 1 is set so that the signal can be recognized as an interrupt signal. When the recorder 1 receives the interrupt signal, the recorder 1 performs necessary processing based on the interrupt signal.
[0072]
FIG. 15 is a timing chart when data is written to the flash memory 42 of the memory card 40. In the initial state (state 0), the clock SCK is not transmitted. At timing t41, the recorder 1 switches the status line SBS from the low level to the high level. Thereby, the state transits to the state 1 where the write command is transmitted via the data line DIO. In state 1, the memory card 40 prepares to obtain a command. The command is transmitted from the timing t41 to the memory card 40 via the data line DIO, and the memory card 40 acquires this write command.
[0073]
At timing t42 when the transmission of the write command is completed, the recorder 1 switches the status line SBS from the high level to the low level. As a result, transition from state 1 to state 2 occurs. In state 2, the recorder 1 transmits the write data to the memory card 40 via the data line DIO. In the memory card 40, the received write data is stored in the page buffer 45.
[0074]
At the timing t43 when the transmission of the write data is completed, the status line SBS is switched from the low level to the high level, and the state 2 is changed to the state 3. In the state 3, the memory card 40 performs a process of writing write data to the flash memory 42. In the state 3, the memory card 40 transmits a busy signal (high level) to the recorder 1 via the data line SBS. Since the recorder 1 transmits a write command and the current state is state 3, the recorder 1 determines that the signal transmitted from the memory card 40 is a status signal.
[0075]
When the write processing of the write data is completed in the memory card 40, the busy signal output is stopped and the ready signal (low level) is transmitted to the recorder 1 at the end timing t44. When receiving the ready signal, the recorder 1 determines that the writing process corresponding to the writing command is completed, stops transmission of the clock signal, and switches the status line SBS from the high level to the low level at timing t45. Thereby, the state 3 is returned to the state 0 (initial state).
[0076]
Further, in the state 0, when the recorder 1 receives a high level signal from the memory card 40 via the data line DIO, the recorder 1 recognizes this signal as an interrupt signal. Then, the recorder 1 performs necessary processing based on the received interrupt signal. For example, when the memory card 40 is removed from the recorder 1, the memory card 40 generates an interrupt signal.
[0077]
Other than the above-described read operation and write operation, a command is transmitted in state 1, and data corresponding to the command is transmitted in state 2 thereafter. The serial interface between the recorder 1 and the memory card 40 is not limited to that described above, and various types can be used.
[0078]
FIG. 16 shows an example of a protocol command (TPC code) transmitted via the data line DIO through the serial interface. The protocol command has a length of 1 byte, and the hexadecimal notation of the value (shown with h added) and the notation of 0 and 1 are shown. The meaning (definition) of each command is related to a memory card 40 '(see FIG. 3) that does not support security and a memory card 40 (see FIG. 2) that supports security. In addition, R / W is shown to distinguish whether the command is related to reading or writing. Further, as described above, since the command is transmitted in the state 1 and the data is transmitted in the subsequent state 2, the data length (number of bytes) corresponding to the command is also shown. Each of the protocol commands TPC will be described below.
[0079]
TPC = 2Dh: a command common to the memory cards 40 and 40 ′, that is, a command for accessing a normal flash memory (hereinafter simply referred to as a memory control command), and a command for reading page data The data length following this command is the data length for one page (512 bytes + 2 bytes (CRC)). The page data is read from the page buffer 45.
[0080]
TPC = D2h is a memory control command and is a command for writing page data. The data length following this command is the data length for one page (512 bytes + 2 bytes (CRC)). The page data is written into the page buffer 45.
[0081]
TPC = 4Bh is a memory control command, which is a read command of the read register 48, and the data length following this command is (31 bytes + 2 bytes (CRC)).
[0082]
TPC = B4h is a memory control command, which is a write command for the write register 46, and the data length following this command is (31 bytes + 2 bytes (CRC)).
[0083]
TPC = 78h is a memory control command for reading one byte in the read register 48, and the data length following this command is (1 byte + 2 bytes (CRC)).
[0084]
TPC = 87h is a memory control command and is a command for changing the access range of the command register 44. The data length following this command is (4 bytes + 2 bytes (CRC)).
[0085]
TPC = 1Eh is an undefined code in the memory card 40 ′, whereas in the memory card 40, a command defined as an instruction for reading data in the status register in the security block 52 of the memory card 40. It is. The data length following this command is 2 bytes + 2 bytes (CRC). Thus, a command related only to the security block 52 is referred to as a security command.
[0086]
TPC = E1h is a memory control command and is an instruction to set a command in the command register 44. Since the data following this command is also a command (a command in a lower layer than TPC), the data length is 3 bytes, which is 1 byte plus 2 bytes of CRC.
[0087]
TPC = 3Ch is an undefined code in the memory card 40 ′, whereas in the memory card 40, the security card stipulated as a command to read security-related data from the security block 52 of the memory card 40. Command. The data length following this command is 24 bytes + 2 bytes (CRC).
[0088]
TPC = C3h is an undefined code in the memory card 40 ′, whereas the memory card 40 is defined as an instruction to write security-related data to the security block 52 of the memory card 40. This is a security command. The data length following this command is 26 bytes + 2 bytes (CRC).
[0089]
A command (1 byte) transmitted after TPC = E1h will be described more specifically with reference to FIGS. FIG. 17 shows commands defined as follows for a memory card 40 'that does not support security.
[0090]
E1h = AAh: Block read instruction
E1h = 55h: Block write command
E1h = 33h: Instruction to stop block read or write halfway
E1h = 99h: Block erase command
E1h = CCh: Memory operation stop command
E1h = 5Ah: Power saving mode command
E1h = C3h: Page buffer clear instruction
E1h = 3Ch: Reset command for the memory controller.
[0091]
FIG. 18 shows commands defined for the memory card 40 that supports security. The definition of the command (AAh to 3Ch) shown in the upper part of FIG. 18 is the same as that shown in FIG. That is, these commands are for memory control defined in common for the memory cards 40 and 40 '. In FIG. 18, commands (60h to 83h) below 60h are commands that are required only for encryption (including decryption and authentication), and are security commands dedicated to the memory card 40. .
[0092]
As described above, the common memory control command TPC and the dedicated security command TPC for the memory card 40 are defined between the memory cards 40 and 40 ′. Control commands and security commands are defined. The security command is an undefined (unused) command for the memory card 40 '. In this embodiment, when the S / P, P / S, and IF block 43 of the memory card 40 receives a command from the recorder 1 via the serial interface, the received command TPC is a common memory control command or is used for security. It is determined whether it is a command, and the subsequent data supply destination is switched according to the determination result. When the subsequent data is a command such as TPC = E1h, the command supply destination is switched according to the command definition shown in FIG.
[0093]
FIG. 19 schematically shows a configuration for switching the destination of data in response to such a command. Data transmitted from the recorder 1 via the data line DIO and received by the memory card 40 is supplied to the terminal a of the switch circuit 152 via the delay circuit 150. Received data is supplied to the input terminal of the detection circuit 151. The detection circuit 151 detects whether the protocol command (TPC) on the data line DIO is a memory control command or a security command from the command code value. The switch circuit 152 is controlled by the detection result. The delay circuit 150 is provided to compensate for the time required for detection by the detection circuit 151. These components are realized by hardware and / or software in the S / P, P / S, and IF block 43. In one embodiment, since a code that is not used as a memory control command is assigned to the security command, the detection circuit 151 can easily identify two types of commands.
[0094]
When the detection circuit 151 detects that the protocol command is a memory control command, the terminal a of the switch circuit 152 is connected to the terminal b. Then, a memory control command is supplied to a page buffer, a register, and the like for controlling the flash memory 42 via terminals a and b of the switch circuit 152. Further, data following the memory control command is supplied to the page buffer, register, etc., or data from the page buffer, register, etc. is transmitted to the recorder 1 via the terminal b, terminal a of the switch circuit 152.
[0095]
When the detection circuit 151 detects that the protocol command is a security command, the terminal a of the switch circuit 152 is connected to the terminal c. Then, a security command is supplied to the security block 52 via the terminals a and c of the switch circuit 152. Data following the security command is supplied to the security block 52, or data from the security block 52 is transmitted to the recorder 1 via the terminals a and c of the switch circuit 152.
[0096]
Further, in the case of a protocol command (TPC = E1h), the subsequent data is also a command, and there can be both a normal memory control command and a security command. When receiving a protocol command of TPC = E1h, the detection circuit 151 detects whether the subsequent data (command) is a memory control command or a security command, and controls the switch circuit 152 based on the detected result. To do. Similarly, when there are two types of protocol commands other than E1h, and there are two types of subsequent data (commands), ie, a memory control command and a security command, the data can be switched.
[0097]
Since the memory card 40 described above has a function of identifying a memory control command and a security command in the memory card itself, it can be used by being attached to a device that does not support security. That is, a device that does not support security does not perform communication related to security, and transmits only a memory control command for writing / reading and data related to the memory control command to the memory card 40. As described above, the memory card 40 identifies that the command received from the device is a memory control command and uses it for writing / reading the flash memory 42. As a result, data can be written to and read from the memory card 40.
[0098]
An embodiment of the present invention will be further described. FIG. 20 shows the configuration of the security block 52 built in the memory card 40 in more detail. The security block 52 is integrated on a single chip together with the nonvolatile memory 42, S / P, P / S, I / F block 43, page buffer 45, and the like. As described above, the S / P, P / S, I / F block 43 and the security block 52 are combined. The security block 3 of the recorder 1 is configured in the same manner as the security block 52 shown in FIG.
[0099]
In FIG. 20, reference numeral 110 denotes a DES encryption circuit having a key storage memory (nonvolatile memory). In association with the encryption circuit 110, a register group 111 and a storage unit 113 are provided. The encryption circuit 110 can exchange data with the register group 111. The storage unit 113 stores unique identification data ID of the memory card 40, key data, and data SEED from which random numbers are generated. The encryption circuit 110 performs encryption in the CBC mode, for example. Further, the contents of the write register 114 are supplied to the register group 111 through the switch circuit 112, and the contents of the register group 111 are stored in the read register 115.
[0100]
Further, the read register 115 and the register group 111 used in the encryption circuit 110 are connected, and the operation result during the encryption can be set in the read register 115. Data to be written to the write register 114 is supplied from an S / P (serial to parallel), P / S (parallel to serial) block 116. Data read from the read register 115 is supplied to the I / F block 43 via the S / P and P / S blocks 116. Write data is supplied from the recorder 1 via the serial interface described above, and read data is supplied to the recorder 1 via the serial interface.
[0101]
Further, 117 is a command register and 118 is a status register. In the command register 117, security commands (60h to 83h in FIG. 18) transmitted from the recorder 1 and received by the memory card 40 are set via the I / F block 43 and the S / P and P / S blocks 116. Is done. A command to be executed next is generated from the command register 117. As a command set in the command register 117, there is a command that does not interfere with reading the contents of the read register 115 to the outside. For example, command codes (63h, 67h, 6Dh) in FIG. 18 are such commands. That is, the ciphertext created by the encryption circuit 110 is set from the register group 111 to the read register 115 by this command. Thus, only in the case of a command for setting data whose contents may be read, the read register 115 is enabled for reading. In FIG. 20, read enable / disable is represented by ON / OFF of the switch circuit 122.
[0102]
Also, the status from the status register 118 is transmitted to the recorder 1 via the S / P, P / S block 116 and I / F block 43. Further, a command register 119 that holds internally generated commands is provided. For example, an increment block 120 for incrementing the command code is provided, whereby the command code is generated in order. The internally generated command has a value of 60h at initialization such as power-on. Each time one command is executed, the value of the command code is incremented by 1 and incremented to (61h, 62h, 63h,... 71h). The value of the command code required for authentication performed when the memory card 40 is inserted starts from 60h and increments to 71h. The command codes 72h to 83h are commands that are used after the authentication is established, and unlike the commands at the time of authentication, they do not need to be generated in a predetermined order and can be used repeatedly arbitrarily.
[0103]
The values of the two command registers 117 and 119 are compared in the comparison circuit 121, and the comparison result of the comparison circuit 121 is set in the status register 118. When the comparison circuit 121 detects that the command actually received from the recorder 1 (the contents of the command register 117) matches the internally generated command (the contents of the command register 119), the status set in the status register 118 is an error. None. This status is transmitted to the recorder 1 side, and the operation is continued. If the comparison result of the comparison circuit 121 indicates a mismatch, the status set in the status register 118 is determined to have an error. This status is transmitted to the recorder 1 side, and the operation is stopped. In addition, a message to that effect is displayed. In this case, it is initialized by reset.
[0104]
Further, a comparison circuit 123 that detects the coincidence between the data from the register group 111 and the data from the write register 114 is provided. The comparison result of the comparison circuit 123 is set in the status register 118. In the same manner as described above, when the comparison circuit 123 detects a match between data, the status is determined to be no error, and when the comparison circuit 123 detects a mismatch between data, the status is determined to be an error. This status is transmitted to the recorder 1 side.
[0105]
Of the security commands shown in FIG. 18, the commands (60h to 71h) used for the authentication process will be described in more detail below with reference to FIG.
[0106]
60h (LOAD ID CMD): Load the memory card ID into the read register 115
61h (SET Rms CMD): Preparation for generating random number 1 (using an appropriate key, set SEED as the original random number in register group 111 via switch circuit 112)
62h (MK Rms CMD): The random number 1 is generated by the encryption circuit 110, and the generated random number 1 is set in the register group 111.
63h (LOAD Rms CMD): The generated random number 1 is loaded into the read register 115.
[0107]
There is no problem even if the contents of the read register 115 are seen during the processing of 60h to 63h described above. The authentication code is written in the write register 114 until the processing of the next command (64h) is started.
[0108]
64h (LOAD AUC1D CMD): The data of the write register 114 is loaded as one data to be compared by the comparison circuit 123.
65h (SET AUC1M CMD): Preparation for generation of authentication code 1 (Random number 1 is loaded from the read register 115 to the register group 111 via the switch circuit 112. An authentication key is inserted into the encryption circuit 110.
66h (MK AUC1M CMD): Generation of the authentication code 1 (the encryption circuit 110 generates the authentication code 1. The generated authentication code 1 is put in the register group 111).
67h (LOAD AUC1M CMD): The generated authentication code 1 is loaded from the register group 111 as the other data to be compared by the comparison circuit 123.
68h (CMP CMD): The comparison circuit 123 compares one data and the other data.
[0109]
If access to the read register 115 is permitted by the command 65h and the command 66h, a value that matches the comparison result may be input from the outside in the comparison process of the command 68h. Therefore, the process by the command of 65h and 66h is performed. When read, the read register 115 is always inaccessible (the switch circuit 122 is off).
[0110]
69h (MK AUC2M CMD): Generation of authentication code 2
6Ah (LOAD AUC2M CMD): Load the generated authentication code 2 into the read register 115
6Bh (SET Sms CMD): Preparation for generating random number 2
6Ch (MK Sms CMD): Generation of random number 2
6Dh (LOAD Sms CMD): The generated random number 2 is loaded into the read register 115. In this case, the read register 115 must be accessible (the switch circuit 122 is turned on).
6Eh (SET Sek (CMD): Preparation for generation of session key
6Fh (MK Sek CMD): Generation of session key
70h (LOAD Sek (CMD): Save session key internally
71h (CLR AUC (CMD): Clearing the authentication circuit.
[0111]
In this embodiment, the authentication commands can be executed only in a predetermined order. Therefore, even if a command 63h, 67h, 6Dh, or the like that can read out the contents of the register 115 is given as a command for enabling the read register 115 in order to illegally view the intermediate result of the operation result. The comparison result of the comparison circuit 121 indicates a mismatch, and the operation is stopped. As a result, it is possible to prevent an intermediate calculation result from being read illegally.
[0112]
Of the security commands shown in FIG. 18, commands (72h to 7Fh) used for key conversion and falsification check will be described in more detail below. Note that the security commands (80h to 83h) are commands for a person who knows the key to write the key to the nonvolatile storage unit in the security block 52. Are not disclosed, and description thereof will be omitted in this specification.
[0113]
72h (SET KREC CMD): Preparation for key conversion during recording
73h (MK KREC CMD): Key conversion during recording
74h (LOAD KREC CMD): Load the converted key into the read register
75h (SET KPB CMD): Preparation for key conversion during playback
76h (MK KPB CMD): Key conversion during playback
77h (LOAD KPB CMD): Load the converted key into the read register
78h (CLR ICV CMD): Clear the tamper check code generation circuit
79h (SET ICV (CMD): Preparation for generation of tamper check code
7Ah (MK ICV CMD): Tamper check code generation
7Bh (LOAD ICV1 CMD): Load ICV0 and ICV1 stored internally into the comparison circuit
7Ch (LOAD ICV2 CMD): Loads ICV1 and the calculated value stored internally into the comparison circuit
7Dh (LOAD ICV3 (CMD): Write the calculated value to ICV0
7Eh (LOAD ICV4 CMD): Write the calculated value to ICV1
7Fh (CMP ICV (CMD): Execution of the comparison circuit.
[0114]
In the above description, the security block 52 in the memory card 40 has been described. However, the present invention can be similarly applied to the security block 3 in the recorder 1. Further, although the case where DES is used has been described, the method for security is not limited to DES, and various encryption techniques can be employed.
[0115]
【The invention's effect】
According to the present invention, a memory card including a nonvolatile memory and a security block can be used not only by an electronic device that supports security but also by an electronic device that does not support security. Therefore, the compatibility of a memory card having a security function can be improved.
[0116]
Further, according to the present invention, by allocating a code that has not been used for security control data in the communication between the electronic device and the memory card, the memory card having no existing security function is affected. It is possible to have upward compatibility without giving anything. In other words, when an electronic device that does not have a security function already exists, this electronic device can use a memory card having a security function to which the present invention is applied. Unlike the present invention, the method for distinguishing the type of data by adding a new identifier to the data communicated between the electronic device and the memory card not only requires an identifier, Conventional electronic devices cannot cope. The present invention can ensure compatibility without causing such a problem.
[Brief description of the drawings]
FIG. 1 is a block diagram showing an overall configuration of an embodiment of the present invention.
FIG. 2 is a block diagram showing a configuration of a security-compatible memory card according to an embodiment of the present invention.
FIG. 3 is a block diagram showing a configuration of a memory card that does not support security in an embodiment of the present invention.
FIG. 4 is a schematic diagram showing a configuration of a file system processing hierarchy of a flash memory according to an embodiment of the present invention.
FIG. 5 is a schematic diagram illustrating a format of a physical configuration of data in a flash memory according to an embodiment of the present invention.
FIG. 6 is a schematic diagram illustrating a configuration of a boot block of a flash memory.
FIG. 7 is a schematic diagram illustrating a configuration of boot and attribute information of a boot block of a flash memory.
FIG. 8 is a schematic diagram showing key relationships in content according to an embodiment of the present invention.
FIG. 9 is a block diagram for explaining encryption processing at the time of recording in one embodiment of the present invention.
FIG. 10 is a schematic diagram for illustrating authentication processing according to an embodiment of the present invention.
FIG. 11 is a schematic diagram for explaining encryption processing during recording according to an embodiment of the present invention;
FIG. 12 is a block diagram for explaining encryption processing during reproduction according to an embodiment of the present invention.
FIG. 13 is a schematic diagram for explaining encryption processing during reproduction according to an embodiment of the present invention;
FIG. 14 is a timing chart for explaining an interface between the recorder and the memory card according to the embodiment of the present invention.
FIG. 15 is a timing chart for explaining an interface between the recorder and the memory card in the embodiment of the invention.
FIG. 16 is a schematic diagram illustrating an example of a protocol command according to an embodiment of the present invention.
FIG. 17 is a schematic diagram illustrating an example of a command according to an embodiment of the present invention.
FIG. 18 is a schematic diagram illustrating an example of a command according to an embodiment of the present invention.
FIG. 19 is a schematic block diagram of one embodiment of the present invention.
FIG. 20 is a block diagram of a security block according to an embodiment of the present invention.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 1 ... Recorder, 2 ... CPU, 3 ... Security block, 7 ... Audio encoder / decoder, 11 ... Memory interface, 40 ... Memory card corresponding to security, 40 '... Security non-compliant memory card, 43 ... S / P, P / S, IF block, 42 ... Flash memory, 52 ... Security block

Claims (7)

暗号化回路を有するセキュリティ対応のデータ処理装置に対して着脱自在のメモリ装置において、
上記セキュリティ対応のデータ処理装置から送信されるデータを記録するための不揮発性メモリと、
暗号化回路を有するセキュリティブロックと
上記セキュリティ対応のデータ処理装置から送信されるコマンドが上記不揮発性メモリ用のメモリ制御コマンドか、上記セキュリティブロックのために定義されたセキュリティ用のコマンドかを判別し、セキュリティ用のコマンドと判別されたコマンドを上記セキュリティブロックに供給するコマンド判別分離ブロックとを備え、
上記メモリ制御コマンドは、上記セキュリティ対応のデータ処理装置、および暗号化回路を有さないセキュリティ非対応のデータ処理装置に対して共通に定義され、上記メモリ制御コマンドとして使用されないコードが上記セキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のデータ処理装置のみならず、上記セキュリティ非対応のデータ処理装置に対しても装着して使用可能であることを特徴とするメモリ装置。
In a memory device detachable from a security-compatible data processing device having an encryption circuit ,
A non-volatile memory for recording data transmitted from the security-compatible data processing device;
A security block having an encryption circuit ;
It is determined whether the command transmitted from the security-compatible data processing device is a memory control command for the nonvolatile memory or a security command defined for the security block, and is determined to be a security command. A command discrimination separation block for supplying commands to the security block ,
The memory control command is commonly defined for the security-compliant data processing device and the non-security-compliant data processing device having no encryption circuit, and a code not used as the memory control command is used for the security. A memory device allocated to a command and usable not only for a security-compatible data processing device but also for the non-security-compliant data processing device.
上記セキュリティブロックは、データ処理装置から受け取ったセキュリティ用のコマンドをセットする第1のコマンドレジスタと、セキュリティブロック内部で生成したセキュリティ用のコマンドをセットする第2のコマンドレジスタと、上記第1のコマンドレジスタの値と上記第2のコマンドレジスタの値とを比較する比較回路とを有することを特徴とする請求項1記載のメモリ装置。  The security block includes a first command register for setting a security command received from the data processing device, a second command register for setting a security command generated inside the security block, and the first command. 2. The memory device according to claim 1, further comprising a comparison circuit that compares a value of the register with a value of the second command register. 上記セキュリティブロックは、コマンドコードをインクリメントさせるインクリメントブロックを有し、該インクリメントブロックによって、上記第2のコマンドレジスタにセットされるセキュリティ用のコマンドを内部生成することを特徴とする請求項2記載のメモリ装置。  3. The memory according to claim 2, wherein the security block includes an increment block for incrementing a command code, and a security command set in the second command register is internally generated by the increment block. apparatus. 上記セキュリティブロックは、暗号化途中の演算結果がセットされるリードレジスタと、上記セキュリティ用のコマンドの内容によって上記リードレジスタへのアクセスを不可とするスイッチ回路を有することを特徴とする請求項1記載のメモリ装置。  2. The security block according to claim 1, further comprising: a read register in which an operation result in the middle of encryption is set; and a switch circuit that disables access to the read register depending on the contents of the security command. Memory device. 着脱自在で、不揮発性メモリと暗号化回路を有するセキュリティブロックとを含むセキュリティ対応のメモリ装置を記録媒体として使用するデータ処理装置において
暗号化回路を有するセキュリティブロック
上記メモリ装置セキュリティブロックに供給される暗号化処理に関係するセキュリティ用のコマンドと、
上記メモリ装置の不揮発性メモリを制御するためのメモリ制御コマンドを上記メモリ装置に伝送するインタフェース手段とを備え、
上記メモリ制御コマンドは、上記セキュリティ対応のメモリ装置、および暗号化回路を有さないセキュリティ非対応のメモリ装置に対して共通に定義され、上記メモリ制御コマンドとして使用されないコードが上記セキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のメモリ装置のみならず、セキュリティ非対応のメモリ装置に対してもメモリ制御が可能であることを特徴とするセキュリティ対応のデータ処理装置。
In a data processing device that is detachable and uses a security-compatible memory device including a nonvolatile memory and a security block having an encryption circuit as a recording medium ,
And commands for security relating to encryption processing to be supplied to the security block of the security block and the memory device having an encryption circuit,
Interface means for transmitting a memory control command for controlling the nonvolatile memory of the memory device to the memory device ;
The memory control command is defined in common for the security-compliant memory device and the non-security-compliant memory device having no encryption circuit, and a code not used as the memory control command is used as the security command. allocated for, not only the security corresponding memory device, the security corresponding data processing apparatus which is a possible memory control even for non-security memory device.
データ処理装置と、データ処理装置に対して着脱自在のメモリ装置とで構成されたデータ処理システムにおいて、
上記データ処理装置は、メモリ装置の認証を行うと共に、コンテンツデータの暗号化および復号化を行うセキュリティブロックを備えるセキュリティ対応のデータ処理装置であり
上記メモリ装置は、
不揮発性メモリと、
上記セキュリティ対応のデータ処理装置のセキュリティブロックと連携して相互に認証を行うセキュリティブロックと
上記セキュリティ対応のデータ処理装置と上記メモリ装置の間におけるデータ通信用のインタフェース手段と、
上記セキュリティ対応のデータ処理装置から送信されるコマンドが上記不揮発性メモリ用のメモリ制御コマンドか、上記セキュリティブロックのために定義されたセキュリティ用のコマンドかを判別し、セキュリティ用のコマンドと判別されたコマンドを上記セキュリティブロックに供給するコマンド判別分離ブロックとを備え、
上記メモリ制御コマンドは、上記セキュリティ対応のデータ処理装置、および暗号化回路を有さないセキュリティ非対応のデータ処理装置に対して共通に定義され、上記メモリ制御コマンドとして使用されないコードが上記セキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のデータ処理装置のみならず、上記セキュリティ非対応のデータ処理装置に対しても装着して使用可能である
ことを特徴とするデータ処理システム。
In a data processing system comprising a data processing device and a memory device that is detachable from the data processing device,
The data processing device, performs authentication of the memory device, a data processing device security capable of Ru with a security block for encrypting and decrypting the content data,
The memory device is
Non-volatile memory;
A security block that mutually authenticates in cooperation with the security block of the security-compatible data processing device ;
Interface means for data communication between the security-compliant data processing device and the memory device ;
It is determined whether the command transmitted from the security-compatible data processing device is a memory control command for the nonvolatile memory or a security command defined for the security block, and is determined to be a security command. A command discrimination separation block for supplying commands to the security block,
The memory control command is commonly defined for the security-compliant data processing device and the non-security-compliant data processing device having no encryption circuit, and a code not used as the memory control command is used for the security. A data processing system which is assigned to a command and can be used by being mounted not only on a data processing device compatible with security but also on a data processing device not compatible with security .
データ処理装置に対して着脱自在で、不揮発性メモリと暗号化回路を有するセキュリティブロックとを含むセキュリティ対応のメモリ装置に対して情報の書き込みまたは読み出しを行うデータ処理方法において、
暗号化されたコンテンツデータと、上記メモリ装置が備える不揮発性メモリに対する読み出し/書き込み用のメモリ制御コマンドと、上記メモリ装置が備えるセキュリティブロックのために定義された暗号化処理に関係するセキュリティ用のコマンドとを、上記データ処理装置から上記メモリ装置へ送信するステップと、
上記送信されたコマンドが上記不揮発性メモリ用のメモリ制御コマンドか、上記セキュリティブロックのために定義されたセキュリティ用のコマンドかを判別し、セキュリティ用のコマンドと判別されたコマンドを上記セキュリティブロックに供給するステップとからなり、
上記メモリ制御コマンドは、上記セキュリティ対応のメモリ装置、および暗号化回路を有さないセキュリティ非対応のメモリ装置に対して共通に定義され、上記メモリ制御コマンドとして使用されないコードが上記セキュリティ用のコマンドに対して割り当てられ、セキュリティ対応のメモリ装置のみならず、セキュリティ非対応のメモリ装置に対してもメモリ制御が可能であることを特徴とするデータ処理方法。
In a data processing method that is detachable from a data processing device and writes or reads information to or from a security-compatible memory device that includes a nonvolatile memory and a security block having an encryption circuit .
Encrypted content data, read / write memory control commands for the nonvolatile memory provided in the memory device, and security commands related to encryption processing defined for the security block provided in the memory device Transmitting from the data processing device to the memory device;
Determine whether the transmitted command is a memory control command for the non-volatile memory or a security command defined for the security block, and supply the command determined to be a security command to the security block Consists of steps to
The memory control command is defined in common for the security-compliant memory device and the non-security-compliant memory device having no encryption circuit, and a code not used as the memory control command is used as the security command. A data processing method characterized in that memory control is possible not only for memory devices that are assigned to security but also for memory devices that do not support security .
JP2000105006A 1999-04-07 2000-04-06 MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD Expired - Lifetime JP3882459B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000105006A JP3882459B2 (en) 1999-04-07 2000-04-06 MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP9994999 1999-04-07
JP11-99949 1999-04-07
JP2000105006A JP3882459B2 (en) 1999-04-07 2000-04-06 MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD

Publications (2)

Publication Number Publication Date
JP2000357217A JP2000357217A (en) 2000-12-26
JP3882459B2 true JP3882459B2 (en) 2007-02-14

Family

ID=26441041

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000105006A Expired - Lifetime JP3882459B2 (en) 1999-04-07 2000-04-06 MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD

Country Status (1)

Country Link
JP (1) JP3882459B2 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5045229B2 (en) * 2007-05-14 2012-10-10 富士ゼロックス株式会社 Storage system and storage device
IT1399916B1 (en) * 2010-04-30 2013-05-09 Balluchi MEMORY DEVICE FOR LOGGED REGISTER ACCESS
EP3519975B1 (en) * 2016-09-28 2021-09-08 Nanolock Security Inc. Access control for integrated circuit devices

Also Published As

Publication number Publication date
JP2000357217A (en) 2000-12-26

Similar Documents

Publication Publication Date Title
US6618789B1 (en) Security memory card compatible with secure and non-secure data processing systems
KR100710603B1 (en) Security unit for use in memory card
EP1313108B1 (en) Memory and data processing units and data processing methods
JP3389186B2 (en) Semiconductor memory card and reading device
EP2357651A2 (en) System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks or other media
WO2002033880A1 (en) Data reproducing/recording apparatus / method and list updating method
JP2003233795A (en) Semiconductor memory card and reading device
JP2001077805A (en) Security device, memory device, data processor and method
JP3882460B2 (en) MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD
JP2003044361A (en) Data storage/reproduction system, data storage device, data reproducing device, data storage/reproducing method, program and medium
JP4300644B2 (en) Mobile device
JP3882459B2 (en) MEMORY DEVICE, DATA PROCESSING DEVICE, DATA PROCESSING SYSTEM, AND DATA PROCESSING METHOD
JP4300643B2 (en) Copyright-compatible mobile terminals, non-copyright compatible mobile terminals
JP2002218379A (en) Imaging apparatus
EP1585127A2 (en) System, method, and device for playing back recorded audio, video or other content from non-volatile memory cards, compact disks, or other media
JP2001060172A (en) Portable terminal
JP2006079291A (en) Memory card and reproducing device

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20040212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20050927

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20051025

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20051226

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060523

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060719

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060921

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20060926

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20061024

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20061106

R151 Written notification of patent or utility model registration

Ref document number: 3882459

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20091124

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101124

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 5

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111124

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121124

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131124

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term