JP2007316865A - Memory card - Google Patents
Memory card Download PDFInfo
- Publication number
- JP2007316865A JP2007316865A JP2006144548A JP2006144548A JP2007316865A JP 2007316865 A JP2007316865 A JP 2007316865A JP 2006144548 A JP2006144548 A JP 2006144548A JP 2006144548 A JP2006144548 A JP 2006144548A JP 2007316865 A JP2007316865 A JP 2007316865A
- Authority
- JP
- Japan
- Prior art keywords
- encryption
- key
- data
- decryption
- unit
- 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.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
Description
本発明は、セキュリティ処理を行うメモリカードに関する。 The present invention relates to a memory card that performs security processing.
セキュリティ機能を有する従来のメモリカードにおいて、Flashメモリにアクセスしてデータの書き込みおよび読み出しを行う技術として、例えば、特許文献1に記載されているものがある。
In a conventional memory card having a security function, for example, there is a technique described in
特許文献1には、フラッシュメモリチップと、スマートカードチップと、ホスト機器からの要求に応じてフラッシュメモリチップおよびスマートカードチップへのデータの読み書きを制御するコントローラチップとを備えるメモリカードが開示されている。このフラッシュメモリチップは、ノーマルデータエリアおよびセキュアデータエリアを有する。ノーマルデータエリアは、ホスト機器からのデータを記憶するための領域である。また、セキュアデータエリアは、スマートカードチップが拡張メモリとして利用するためのものであり、セキュリティ保護領域である。
また、特許文献2には、ホスト機器からのコマンドにセキュリティ処理に関する情報が含まれている場合に、スマートカードチップがホスト機器からのデータを暗復号化してセキュリティ保護領域に格納する記憶装置が開示されている。
特許文献1および特許文献2記載のメモリカードまたは記憶装置においては、セキュリティ保護領域へのアクセスは、例えば、図12に示すようなステップを経ることにより行われる。
In the memory card or the storage device described in
まず、ホスト機器10は、フラッシュメモリ20のセキュリティ保護領域21へのメモリアクセスの旨を含むセキュアライトコマンドをコントローラチップ30に送信する(ステップA)。次いで、コントローラチップ30は、このセキュアライトコマンドをAPDU(Application Protocol Data Unit)形式に変換してスマートカードチップ40に転送する(ステップB)。次いで、スマートカードチップ40上のアプリケーションは、APDUコマンドを解釈した後、APDU形式によるセキュリティ保護領域21へのアクセス要求であるライト・リード転送コマンドをコントローラチップ30に送信する(ステップC)。次いで、コントローラチップ30は、ライト・リード転送コマンドに従って、フラッシュメモリ20のセキュリティ保護領域21にアクセスしてライト・リード処理を行う(ステップD)。次いで、コントローラチップ30は、ライト・リードの処理結果を示すライト・リードレスポンスをスマートカードチップ40に返信する(ステップE)。次いで、スマートカードチップ40上のアプリケーションは、ライト・リードレスポンスが示すライト・リードの処理結果をレスポンスAPDUとして組み立ててコントローラチップ30に返信する(ステップF)。そして、コントローラチップ30は、セキュアリードコマンドの受信時に、レスポンスAPDUをホスト機器10に返信する(ステップG)。
しかしながら、従来のメモリカードまたは記憶装置においては、セキュリティ強度を確保するため、コントローラチップとスマートカードチップとがデータのやりとりを行う必要があり、このデータのやりとりが多すぎる結果、フラッシュメモリへのアクセス速度が低くなってしまうという問題がある。 However, in the conventional memory card or storage device, it is necessary to exchange data between the controller chip and the smart card chip in order to ensure the strength of security. As a result of the excessive exchange of data, access to the flash memory is required. There is a problem that the speed becomes low.
特に、セキュリティ保護領域へのアクセス時に、コントローラチップとスマートカードチップとの間の通信回数および送受信されるデータの量が多く、十分なアクセス速度を出すことができないという問題がある。また、セキュリティ保護領域に格納されるデータの暗復号化を行う場合、その暗復号化はスマートカードチップで行われるので、暗復号化されたデータがコントローラチップとスマートカードチップとの間でやり取りされることになり、この点においてもセキュリティ保護領域へのアクセス速度には一定の限界がある。 In particular, when accessing the security protection area, there is a problem that the number of communication between the controller chip and the smart card chip and the amount of data transmitted and received are large, and a sufficient access speed cannot be obtained. When data stored in the security protection area is encrypted / decrypted, the encryption / decryption is performed by the smart card chip, so that the encrypted / decrypted data is exchanged between the controller chip and the smart card chip. In this respect, the access speed to the security protection area has a certain limit.
本発明は、かかる点に鑑みてなされたものであり、セキュリティ強度を落とすことなく、高速にセキュリティ保護領域へアクセスすることができるメモリカードを提供することを目的とする。 The present invention has been made in view of this point, and an object of the present invention is to provide a memory card that can access a security protection area at high speed without reducing security strength.
本発明のメモリカードは、メモリチップへのデータの書き込みまたはメモリチップからのデータの読み出しを実行するスマートカードチップと、前記スマートカードチップにより実行されるデータの書き込みまたは読み出しを制御するコントローラチップとが設けられたメモリカードにおいて、前記メモリカードと外部機器との間で伝送されるデータを暗復号処理する第1の暗復号部と、前記メモリチップと前記スマートカードチップとの間で伝送されるデータを暗復号処理する第2の暗復号部と、を備え、前記第1の暗復号部および前記第2の暗復号部の少なくとも一方は、前記コントローラチップに設けられている、構成を採る。 The memory card of the present invention includes a smart card chip that executes data writing to the memory chip or data reading from the memory chip, and a controller chip that controls data writing or reading executed by the smart card chip. In the provided memory card, data transmitted between the memory chip and the smart card chip, and a first encryption / decryption unit that performs encryption / decryption processing on data transmitted between the memory card and an external device And a second encryption / decryption unit that performs encryption / decryption processing, and at least one of the first encryption / decryption unit and the second encryption / decryption unit is provided in the controller chip.
本発明のメモリカードのメモリチップへのアクセス方法は、スマートカードチップで、メモリチップへのデータの書き込みまたはメモリチップからのデータの読み出しを実行するデータ伝送ステップと、コントローラチップで、前記データ伝送ステップにより実行されるデータの書き込みまたは読み出しを制御する制御ステップと、を備えるメモリカードのメモリチップへのアクセス方法であって、前記メモリカードと外部機器との間で伝送されるデータを暗復号処理する第1の暗復号ステップと、前記メモリチップと前記スマートカードチップとの間で伝送されるデータを暗復号処理する第2の暗復号ステップと、を備え、前記第1の暗復号ステップおよび前記第2の暗復号ステップの少なくとも一方は、前記コントローラチップで実行されるようにした。 The method of accessing the memory chip of the memory card according to the present invention includes a data transmission step of executing data writing to the memory chip or data reading from the memory chip with the smart card chip, and the data transmission step with the controller chip. And a step of accessing the memory chip of the memory card, wherein the data is transmitted / received between the memory card and an external device. A first encryption / decryption step; and a second encryption / decryption step for performing encryption / decryption processing on data transmitted between the memory chip and the smart card chip. At least one of the two encryption / decryption steps is executed by the controller chip. Was to so that.
本発明によれば、セキュリティ処理におけるコントローラチップとスマートカードチップとの間の通信回数および送受信されるデータの量を削減することができる。これにより、セキュリティ保護領域へのアクセスを高速化することができる。 According to the present invention, it is possible to reduce the number of times of communication between the controller chip and the smart card chip and the amount of data transmitted and received in the security processing. As a result, access to the security protection area can be speeded up.
また、コントローラチップのなりすましや盗聴による、セキュリティ処理に用いられるセッション鍵Kssおよび格納鍵Kstの不正傍受を防止することができ、ひいてはセキュリティ強度を落とすことなく、セキュリティ保護領域にアクセスすることができる。 In addition, it is possible to prevent unauthorized interception of the session key Kss and the storage key Kst used for security processing due to spoofing or wiretapping of the controller chip, and thus it is possible to access the security protection area without reducing the security strength.
以下、本発明の実施の形態について、図面を参照して詳細に説明する。 Hereinafter, embodiments of the present invention will be described in detail with reference to the drawings.
(実施の形態1)
本実施の形態では、図1で示されるように、SDC(SD controller chip)200と、SCC(smart card chip)300とのデータのやり取りにより、フラッシュメモリ(Flash)400に、ホスト機器110からの所定データを書き込むメモリカード100について説明する。
(Embodiment 1)
In the present embodiment, as shown in FIG. 1, data is exchanged between the SDC (SD controller chip) 200 and the SCC (smart card chip) 300 to the flash memory (Flash) 400 from the
具体的には、本実施の形態では、SDC200はホスト機器110との間で伝送されるデータの暗復号処理を行う、SDC200に設けられたセッション鍵暗復号部220と、フラッシュメモリ400との間で伝送されるデータの暗復号処理を行う、SDC200に設けられた格納鍵暗復号部230と、により構成されている。
Specifically, in the present embodiment, the
また、SCC300に設けられた鍵記憶部310は、セッション鍵暗復号部220が暗復号処理に用いるセッション鍵Kssと、格納鍵暗復号部230が暗復号処理に用いる格納鍵Kstと、を保持するように構成されている。
The
また、SDC200に設けられた鍵生成部250およびSCC300に設けられた鍵生成部320は、お互いを認証し合った上で、SDC200とSCC300との間の通信路を伝送されるデータを暗復号処理するための暗号鍵Ksを生成するように構成されている。ここで、SDC200とSCC300との間の通信路を伝送されるデータには、例えば、鍵記憶部310が保持するセッション鍵Kssおよび格納鍵Kstが含まれる。
In addition, the
上記メモリカード100について、以下で詳述する。
The
図1は、本発明の実施の形態1に係るメモリカード100の構成を示すブロック図である。
FIG. 1 is a block diagram showing a configuration of a
図1において、メモリカード100は、SD(Secure Digital)コントローラチップ(以下「SDC」と略記する)200、スマートカードチップ(以下「SCC」と略記する)300、およびフラッシュメモリ400を備える。
1, the
メモリカード100は、携帯電話機やPDA(Personal Digital Assistant)、PC(Personal Computer)などのホスト機器110の端子に挿入されることができる。また、メモリカード100は、接続されたホスト機器110との間で各種のデータを送受信する機能を有する。
The
SDC200は、SCC300およびフラッシュメモリ400と接続されており、フラッシュメモリ400へのデータの書き込みおよびフラッシュメモリ400からのデータの読み出し、特にセキュリティ処理が必要なデータの書き込みおよび読み出しを制御する。
The SDC 200 is connected to the SCC 300 and the
SDC200は、ホストインターフェース(以下「Host IF」という)210、セッション鍵暗復号部220、格納鍵暗復号部230、フラッシュインターフェース(以下「Flash IF」という)240、鍵生成部250、アクセス管理情報復号部260、およびSCCインターフェース(以下「SCC IF」という)270を備える。
The
Host IF210は、ホスト機器110との間で各種のデータを送受信する。Host IF210は、ホスト機器110からフラッシュメモリ400にアクセスする旨のコマンドを受信すると、そのコマンドをSCC IF270に出力する。フラッシュメモリ400にアクセスする旨のコマンドには、例えばフラッシュメモリ400のうちどの領域にアクセスするかを示すアクセス領域指定コマンド、およびアクセスする領域に書き込むべきデータを含むデータ転送コマンドまたはアクセスする領域から読み出すべきデータを含むデータ取得コマンドが含まれる。また、アクセス領域指定コマンドには、アクセスすべき領域を特定するための領域ナンバ、ブロックアドレス、およびブロック長などの情報が含まれる。
The Host IF 210 transmits / receives various data to / from the
Host IF210は、ホスト機器110からのコマンドがフラッシュメモリ400へのデータの書き込みを示す場合(データ転送コマンド)、フラッシュメモリ400に書き込むべきデータおよびデータ転送コマンドをセッション鍵暗復号部220に出力する。また、Host IF210は、ホスト機器110からのコマンドがフラッシュメモリ400からのデータの読み出しを示す場合(データ取得コマンド)、データ取得コマンドをFlash IF240に出力し、フラッシュメモリ400から読み出されたデータをホスト機器110に送信する。
When the command from the
また、Host IF210は、ホスト機器110からリセット要求コマンドを受信すると、このリセット要求コマンドを鍵生成部250およびSCC IF270に出力する。
In addition, when receiving a reset request command from the
ここで、「リセット要求コマンド」とは、SDC200とSCC300との間の通信路を伝送されるデータを暗復号化するための鍵を生成する旨の要求を含むコマンドである。リセット要求コマンドについては、後の動作説明で詳細に説明する。
Here, the “reset request command” is a command including a request for generating a key for encrypting / decrypting data transmitted through the communication path between the
第1の暗復号部としてのセッション鍵暗復号部220は、Host IF210を介してホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。このセッション鍵Kssは、SCC300の鍵記憶部310が保持するアクセス管理情報に、アクセス領域指定コマンドにより指定される領域と対応付けられて格納されている。したがって、セッション鍵Kssは、フラッシュメモリ400のアクセス領域指定コマンドにより指定される領域により異なりうる。アクセス管理情報に格納されるセッション鍵Kssについては、後で詳細に説明する。
The session key encryption /
セッション鍵暗復号部220は、データの書き込み時には、Host IF210を介してホスト機器110から送信された、フラッシュメモリ400に書き込むべきデータをセッション鍵Kssにより復号化する。また、セッション鍵暗復号部220は、セッション鍵Kssにより復号化されたデータを格納鍵暗復号部230に出力する。
When writing data, the session key encryption /
セッション鍵暗復号部220は、データの読み出し時には、フラッシュメモリ400から読み出されたデータをセッション鍵Kssにより暗号化する。また、セッション鍵暗復号部220は、セッション鍵Kssにより暗号化されたデータをHost IF210を介してホスト機器110に送信する。
The session key encryption /
第2の暗復号部としての格納鍵暗復号部230は、Flash IF240を介してフラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。この格納鍵Kstは、SCC300の鍵記憶部310が保持するアクセス管理情報に、アクセス領域指定コマンドにより指定される領域と対応付けられて格納されている。したがって、格納鍵Kstは、フラッシュメモリ400のアクセス領域指定コマンドにより指定される領域により異なりうる。アクセス管理情報に格納される格納鍵Kstについては、後に詳細に説明する。
The storage key encryption /
格納鍵暗復号部230は、データの書き込み時には、セッション鍵暗復号部220から入力された、フラッシュメモリ400への書き込みデータを格納鍵Kstにより暗号化する。また、格納鍵暗復号部230は、格納鍵Kstにより暗号化された書き込みデータを、Flash IF240を介して、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。
When writing data, the storage key encryption /
格納鍵暗復号部230は、データの読み出し時には、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出され、Flash IF240を介して入力されたデータを、格納鍵Kstにより復号化する。また、格納鍵暗復号部230は、格納鍵Kstにより復号化された読み出しデータをセッション鍵暗復号部220に出力する。
When reading data, the storage key encryption /
Flash IF240は、フラッシュメモリ400との間で各種のデータを送受信する。具体的には、Flash IF240は、格納鍵暗復号部230から入力された、フラッシュメモリ400に書き込むべきデータを、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。また、Flash IF240は、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを受信して、受信データを格納鍵暗復号部230に出力する。
The Flash IF 240 transmits / receives various data to / from the
復号化セキュリティ鍵生成部としての鍵生成部250は、SDC200とSCC300との間で送受信されるデータを暗復号化するための暗号鍵Ksを生成する。具体的には、鍵生成部250は、鍵生成部250内のメモリ(図示せず)に格納された暗号鍵Kpsを用いて、リセット処理時にSCC300から送信されるATR(Answer to Reset)データに設定された乱数Rnを暗号化することにより、暗号鍵Ksを生成する。鍵生成部250は、生成された暗号鍵Ksをアクセス管理情報復号部260に設定する。
The
鍵生成部250は、暗号鍵Ksを生成する際に、鍵生成部250内のメモリ(図示せず)に格納された認証鍵Kmを用いて、リセット処理時にSCC300から送信されるATRデータに設定された乱数Rnから認証子(MAC1)を生成する。また、鍵生成部250は、生成された認証子(MAC1)およびこの認証子(MAC1)の検証命令を、SCC IF270を介してSCC300に送信する。なお、暗号鍵Kpsおよび認証鍵Kmは、SDC200内の図示しないROM(Read Only Memory)にプログラムコードとして格納されていてもよい。
When generating the encryption key Ks, the
セキュリティ鍵復号部としてのアクセス管理情報復号部260は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を復号化する。
The access management
アクセス管理情報復号部260は、暗号鍵Ksを用いて、SCC IF270を介してSCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、セッション鍵Kssとその暗号アルゴリズムを示す情報、および格納鍵Kstとその暗号アルゴリズムを示す情報が含まれる。
The access management
アクセス管理情報復号部260は、復号化されたセッション鍵Kssを、セッション鍵暗復号部220に設定する。また、アクセス管理情報復号部260は、復号化された格納鍵Kstを、格納鍵暗復号部230に設定する。また、アクセス管理情報復号部260は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF240に設定する。
The access management
SCC IF270は、SCC300との間で各種のデータを送受信する。具体的には、SCC IF270は、ホスト機器110からHost IF210を介して入力されたアクセス領域指定コマンドやリセット要求コマンドなどの各種のコマンドをSCC300に送信する。また、SCC IF270は、SCC300のSDC IF340から送信されたATRデータや暗号化アクセス管理情報などを受信する。また、SCC IF270は、受信されたATRデータを鍵生成部250に出力し、受信された暗号化アクセス管理情報をアクセス管理情報復号部260に出力する。
The SCC IF 270 transmits / receives various data to / from the
なお、SCC IF270としては、ISO/IEC7816規格に準拠したインターフェースを用いることができる。
As the
SCC300は、ICカードやスマートカードで用いられるマイコンチップであり、スマートカードアプリケーションを実行するためのCPU(Central Processing Unit)およびEEPROM(Electrically Erasable Programmable Read Only Memory)やFeRAM(Ferroelectric Random Access Memory)などの不揮発性メモリを有する。また、SCC300は、セキュリティ処理に必要な暗号機能等を持つ。
The
SCC300は、鍵記憶部310、鍵生成部320、アクセス管理情報暗号部330、およびSDC IF340を備える。
The
鍵記憶部310は、アクセス管理情報を保持する。アクセス管理情報には、フラッシュメモリ400のアクセスすべき領域を特定するための情報、セッション鍵Kssとその暗号アルゴリズムとからなるセッション暗号情報、および格納鍵Kstとその暗号アルゴリズムとからなる格納暗号情報が、それぞれ対応付けられて格納されている。
The
ここで、鍵記憶部310が保持するアクセス管理情報について、図2を用いて具体的に説明する。図2は、アクセス管理情報の一例を示す図である。
Here, the access management information held by the
図2において、アクセス管理情報500は、アクセスすべき領域のエリア番号を示すエリア番号510と、アクセスすべき領域の物理アドレスを示す物理アドレス520と、アクセスすべき領域を所有するアプリケーションのIDを示すアプリケーションID530と、アクセスすべき領域に対して使用されるセッション暗号情報を示すセッション暗号情報540と、アクセスすべき領域に対して使用される格納暗号情報を示す格納暗号情報550とを含む。また、セッション暗号情報540は、セッション暗号に使用されるセッション鍵541とその暗号アルゴリズム542を含み、格納暗号情報550は、格納暗号に使用される格納鍵551とその暗号アルゴリズム552を含む。
In FIG. 2,
例えば、“エリア1”は、物理アドレス“0x00000000”に存在し、アプリケーションID“AP1”により所有されている。また、“エリア1”にアクセスする場合に使用されるセッション鍵は“Kss1”であり、その暗号アルゴリズムは“T−DES CBC”である。また、“エリア1”にデータを格納する場合に使用される格納鍵は“Kst1”であり、その暗号アルゴリズムは“AES”である。
For example, “
また、“エリア2”は、物理アドレス“0x00002000”に存在し、アプリケーションID“AP1”により所有されている。また、“エリア2”にアクセスする場合に使用されるセッション鍵は“Kss2”であり、その暗号アルゴリズムは“T−DES CBC”である。また、“エリア2”にデータを格納する場合に使用される格納鍵は“Kst1”であり、その暗号アルゴリズムは“AES”である。
“
また、“エリア3”は、物理アドレス“0x00004000”に存在し、アプリケーションID“AP2”により所有されている。また、“エリア3”にアクセスする場合には、セッション鍵は使用されない。また、“エリア3”にデータを格納する場合に使用される格納鍵は“Kst2”であり、その暗号アルゴリズムは“AES”である。
“
このように、アクセス管理情報500には、セッション暗号情報および格納暗号情報が、フラッシュメモリ400の各エリア番号に対応付けられて格納されている。
Thus, in the
暗号化セキュリティ鍵生成部としての鍵生成部320は、SDC200から送信されたリセット要求コマンドをSDC IF340を介して受信すると、乱数Rnを生成し、この乱数Rnが設定されたATRデータを生成する。また、鍵生成部320は、生成されたATRデータを、SDC IF340を介してSDC200に送信する。ここで、鍵生成部320は、生成された乱数Rnを、例えばATRデータの15バイトの“Historical Character”に設定することができる。
When receiving the reset request command transmitted from the
鍵生成部320は、上記ATRデータを生成および送信するとともに、鍵生成部320内のメモリ(図示せず)に格納された認証鍵Kmを用いて、リセット要求コマンドの受信時に生成された乱数Rnから認証子(MAC2)を生成する。
The
鍵生成部320は、SDC200の鍵生成部250で生成された認証子(MAC1)と認証子(MAC2)とを比較して、これらの認証子が正しい場合には、SCC300とSDC200との間で送受信されるデータを暗復号化するための暗号鍵Ksを生成する。具体的には、鍵生成部320は、鍵生成部320内のメモリ(図示せず)に格納された暗号鍵Kpsを用いて、リセット要求コマンドの受信時に生成された乱数Rnを暗号化することにより、暗号鍵Ksを生成する。また、鍵生成部320は、生成した暗号鍵Ksをアクセス管理情報暗号部330に設定する。なお、暗号鍵Kpsおよび認証鍵Kmは、例えばSCC300の製造時に鍵記憶部310に設定されている。
The
ここで、上述のSDC200の鍵生成部250内のメモリに格納された暗号鍵Kpsおよび認証鍵Kmは、SCC300の鍵生成部320内のメモリに格納された暗号鍵Kpsおよび認証鍵Kmと同一である。したがって、認証子(MAC1)と認証子(MAC2)とが正しい認証子である場合、SDC200の鍵生成部250で生成される暗号鍵KsとSCC300の鍵生成部320で生成される暗号鍵Ksとは同一となる。これにより、SDC200およびSCC300の間で暗号鍵Ksの共有が可能となり、SDC200およびSCC300の間のデータの送受信の安全性および信頼性を向上させることができる。
Here, the encryption key Kps and the authentication key Km stored in the memory in the
セキュリティ鍵暗号部としてのアクセス管理情報暗号部330は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。具体的には、まず、アクセス管理情報暗号部330は、アクセス領域指定コマンドに基づいて、アクセスすべき領域のエリア番号またはアクセスすべき領域の物理アドレスを特定する。そして、アクセス管理情報暗号部330は、特定されたエリア番号または物理アドレス、ならびにこれらに対応するセッション暗号情報および格納暗号情報などを、アクセス管理情報として取得する。
When the access management
アクセス管理情報暗号部330は、鍵生成部320で生成された暗号鍵Ksを用いて、取得されたアクセス管理情報を暗号化する。また、アクセス管理情報暗号部330は、暗号化されたアクセス管理情報を、SDC IF340を介してSDC200に送信する。
The access management
SDC IF340は、SDC200との間で各種のデータを送受信する。具体的には、SDC IF340は、鍵生成部320で生成されたATRデータやアクセス管理情報暗号部330で暗号化されたアクセス管理情報などをSDC200に送信する。また、SDC IF340は、SCC200のSCC IF270から送信されたアクセス領域指定コマンドやリセット要求コマンドなどの各種のコマンドを受信する。また、SDC IF340は、受信されたアクセス領域指定コマンドをアクセス管理情報暗号部330に出力し、受信されたリセット要求コマンドを鍵生成部320に出力する。
The SDC IF 340 transmits / receives various data to / from the
なお、SDC IF340としては、ISO/IEC7816規格に準拠したインターフェースを用いることができる。これにより、標準的なスマートカードチップを、本発明のSCC300として適用することができる。
As the
フラッシュメモリ400は、不揮発性の半導体メモリを記憶媒体とするメモリチップである。フラッシュメモリ400は、データ転送コマンドやデータ取得コマンドなどのフラッシュメモリコマンドにより、データの書き込みおよび読み出しが可能となっている。
The
フラッシュメモリ400は、通常領域410とセキュリティ保護領域420とを有する。また、セキュリティ保護領域420は、複数のエリアブロック421,422,423,424で区切られている。
The
通常領域410は、セキュリティ処理の必要がない標準データの書き込みおよび読み出しを行うための領域である。ホスト機器110からのアクセス領域指定コマンドにより通常領域410が指定された場合、ホスト機器110からのデータが通常領域410に書き込まれ、または通常領域410に格納されたデータが読み出されてホスト機器110に送信される。なお、通常領域410へのデータの書き込み、および通常領域410からのデータの読み出しを行う場合、セッション鍵Kssおよび格納鍵Kstによる暗復号化を行うか否かは任意である。
The
セキュリティ保護領域420は、例えば個人情報や機密情報などの秘匿性の高い情報の書き込みおよび読み出しを行うための拡張メモリ領域である。セキュリティ保護領域420を構成する各エリアブロックは、アクセス領域指定コマンドにより指定可能な最小の領域単位である。また、セキュリティ保護領域420を構成する各エリアブロックは、例えばSCC300のアプリケーションごとに割り当てることができる。なお、ここではセキュリティ保護領域420が4つのエリアブロック421,422,423,424で区切られているが、セキュリティ保護領域420を構成するエリアブロックの数は特に限定されず、任意に設定することができる。
The
セキュリティ保護領域420に書き込まれるデータおよびセキュリティ保護領域420から読み出されるデータは、各エリアブロックに対応付けられたセッション鍵Kssにより暗号化された状態で、メモリカード100とホスト機器110との間を送受信される。また、セキュリティ保護領域420に格納されるデータは、各エリアブロックに対応付けられた格納鍵Kstにより暗号化された状態で各エリアブロックに格納される。なお、アプリケーションとホスト機器110との間の用途に応じた取り決めによりセッション鍵Kssによるデータの暗号を行わないモードが設定されている場合、セッション鍵Kssによる暗号化は行われない。
Data written to the
以上、メモリカード100のSDC200、SCC300、およびフラッシュメモリ400の構成について説明した。
The configuration of the
次に、上述のように構成されたメモリカード100の動作について、図3乃至図5を用いて詳細に説明する。
Next, the operation of the
まず、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みについて、図3を用いて説明する。
First, the mechanism of authentication and sharing of the encryption key Ks between the
図3は、リセット処理により暗号鍵Ksを生成する場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、ホスト機器110から送信されたリセット要求コマンドによりリセット処理が行われる場合について説明する。
FIG. 3 is a sequence diagram illustrating an example of operations of the
まず、ホスト機器110は、リセット要求コマンドを生成して、生成したリセット要求コマンドをメモリカード100のSDC200に対して送信する(S1)。SDC200のHost IF210で受信されたこのリセット要求コマンドは、鍵生成部250およびSCC IF270に出力される。また、SCC IF270は、入力されたリセット要求コマンドを、さらにSCC300に送信する(S2)。SCC300のSDC IF340で受信されたリセット要求コマンドは、鍵生成部320に出力される。
First, the
鍵生成部320は、リセット要求コマンドを受信してリセット処理を行うことを決定すると、乱数Rnを生成する(S3)。また、鍵生成部320は、ISO/IEC7816規格に従い、ステップS3で生成した乱数Rnが設定されたATRデータを生成し、生成したATRデータを、SDC IF340を介してSDC200に送信する(S4)。このとき、鍵生成部320は、乱数Rnを、例えばATRデータの15バイトの“Historical Character”に設定する。また、SDC200のSCC IF270で受信されたATRデータは、鍵生成部250に出力される。
When the
鍵生成部250は、鍵生成部250内部のメモリ(図示せず)に格納された認証鍵Kmを用いて、ATRに設定された乱数Rnから認証子(MAC1)を生成する(S5)。また、鍵生成部250は、生成した認証子(MAC1)を含む検証命令を生成し、この検証命令をSCC300に送信する(S6)。
The
また、鍵生成部250は、上記ステップS5およびステップS6の処理を行うとともに、鍵生成部250内部のメモリ(図示せず)に格納された暗号鍵Kpsを用いてATRデータに設定された乱数Rnを暗号化することにより、暗号鍵Ksを生成する(S7)。
In addition, the
SCC300の鍵生成部320は、SDC200からの認証子(MAC1)を含む検証命令を受信すると、鍵生成部320内部のメモリ(図示せず)に格納された認証鍵Kmを用いて、ステップS3で生成した乱数Rnから認証子(MAC2)を生成する(S8)。また、鍵生成部320は、認証子(MAC1)と認証子(MAC2)とを比較して、これらの認証子の正当性を確認する(S9)。そして、鍵生成部320は、認証子(MAC1)および認証子(MAC2)が正しい場合、鍵生成部320内部のメモリ(図示せず)に格納された暗号鍵Kpsを用いてステップS3で生成した乱数Rnを暗号化することにより、暗号鍵Ksを生成する(S10)。
When the
ここで、鍵生成部320は、リセット処理のたびに乱数Rnを生成するので、乱数Rnを用いて生成される暗号鍵Ksは、リセット処理のたびに異なりうる。したがって、SDC200およびSCC300は、リセット処理のたびに異なる暗号鍵Ksを生成し、生成した暗号鍵Ksを用いて、セキュリティ処理に関する情報、例えばセキュリティ保護領域420の各エリアブロックのアクセス管理情報を暗復号化して送受信することになる。これにより、SDC200のなりすましや盗聴による、SDC200とSCC300との間で送受信されるセキュリティ処理に関する情報の不正傍受を防止することができる。すなわち、セキュリティ保護領域420への不正アクセスの危険性を低減させることができる。
Here, since the
なお、図3の例ではホスト機器110から送信されたリセット要求コマンドによりリセット処理が行われる場合について説明したが、本発明はこれに限定されない。例えば、リセット処理は、例えば、メモリカード100が電源の投入を検知したタイミングやメモリカード100がホスト機器110の接続を検知したタイミングなどに、自動的に行われるようにしてもよい。また、予め設定された所定の時間ごとにリセット処理が行われるようにしてもよい。
In the example of FIG. 3, the case where the reset process is performed by the reset request command transmitted from the
また、図3の例では、リセット処理における暗号鍵Ksの共有の仕組みについて説明したが、本発明はこれに限定されない。例えば、SDC200とSCC300との間で暗号鍵Ksを共有する旨のコマンドを定義しておき、このコマンドを受けたSCC300がレスポンスとして乱数Rnを返信し、上述の認証処理および暗号鍵Ksの生成処理を行うようにしてもよい。
In the example of FIG. 3, the mechanism of sharing the encryption key Ks in the reset process has been described, but the present invention is not limited to this. For example, a command for sharing the encryption key Ks between the
以上、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みについて説明した。
The mechanism of authentication and sharing of the encryption key Ks between the
次に、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について、図4を用いて説明する。
Next, a data write operation to the
図4は、メモリカード100のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック421にデータを書き込む場合について説明する。また、簡単のため、エリアブロック421は、図2に示すアクセス管理情報の“エリア1”に対応すると仮定する。
FIG. 4 is a sequence diagram illustrating an example of operations of the
図4において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS11〜ステップS16)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS17〜ステップS21)との2段階の処理により行われる。
In FIG. 4, data is written to the
[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[Access area specification command processing]
First, access area designation command processing will be described.
まず、ホスト機器110は、アクセスすべき領域を特定するための領域ナンバ、ブロックアドレス、およびブロック長が記述されたアクセス領域指定コマンドを、SDC200に対して送信する(S11)。SDC200のHost IF210で受信されたアクセス領域指定コマンドは、SCC IF270に出力される。また、SCC IF270は、入力されたアクセス領域指定コマンドを、さらにSCC300に送信する(S12)。SCC300のSDC IF340で受信されたアクセス領域指定コマンドは、アクセス管理情報暗号部330に出力される。
First, the
アクセス管理情報暗号部330は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S13)。この例では、アクセス管理情報暗号部330は、エリアブロック421(エリア1)に対応する物理アドレス0x00000000、アクセス長、セッション鍵Kss1、および格納鍵Kst1を、アクセス管理情報として取得する。
When the access management
アクセス管理情報暗号部330は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS13で取得したアクセス管理情報、つまりエリアブロック421に対応する物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを暗号化する。また、アクセス管理情報暗号部330は、暗号化されたアクセス管理情報をSDC200に送信する(S14)。SDC200のSCC IF270で受信された暗号化アクセス管理情報は、アクセス管理情報復号部260に出力される。
The access management
SDC200のアクセス管理情報復号部260は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報復号部260は、アクセス先、つまりエリアブロック421に対応する物理アドレス0x00000000、アクセス長、セッション鍵Kss1、および格納鍵Kst1を取得する(S15)。
The access management
そして、アクセス管理情報復号部260は、ステップS15で取得したセッション鍵Kss1を、セッション鍵暗復号部220に設定し、ステップS15で取得した格納鍵Kst1を、格納鍵暗復号部230に設定する。また、アクセス管理情報復号部260は、ステップS15で取得した物理アドレスおよびアクセス長を、Flash IF240に設定する(S16)。
Then, the access management
[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.
まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss1を用いて、エリアブロック421に書き込むデータを暗号化する(S17)。ここで、ホスト機器110は、予め、メモリカード100との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。
First, the
また、ホスト機器110は、セッション鍵Kss1により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S18)。SDC200のHost IF210で受信された書き込みデータは、セッション鍵暗復号部220に出力される。
In addition, the
セッション鍵暗復号部220は、ステップS16で設定されたセッション鍵Kss1を用いて、ホスト機器110からの暗号化された書き込みデータを復号化する(S19)。次に、格納鍵暗復号部230は、ステップS16で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S20)。そして、格納鍵Kst1により暗号化された書き込みデータは、Flash IF240を介して、ステップS16でFlash IF240に設定された物理アドレスにより示される領域、例えばエリアブロック421に書き込まれる。
The session key encryption /
以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。
The data write operation to the
次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図5を用いて説明する。
Next, a data read operation from the
図5は、メモリカード100のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック421に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック421は、図2に示すアクセス管理情報の“エリア1”に対応すると仮定する。
FIG. 5 is a sequence diagram illustrating an example of operations of the
図5において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS11〜ステップS16)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS31〜ステップS36)との2段階の処理により行われる。なお、図5のアクセス領域指定コマンド処理は、前述した図4のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。
In FIG. 5, data is read from the
[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S31)。SDC200のHost IF210で受信されたデータ取得コマンドは、Flash IF240に出力される。
[Data acquisition command processing]
First, the
Flash IF240は、ステップS16で設定された物理アドレスにより示される領域、例えばエリアブロック421に格納されたデータを読み出す(S32)。この読み出しデータは、格納鍵暗復号部230に出力される。
The Flash IF 240 reads the data stored in the area indicated by the physical address set in step S16, for example, the area block 421 (S32). This read data is output to the storage key encryption /
格納鍵暗復号部230は、ステップS16で設定された格納鍵Kst1を用いて、エリアブロック421から読み出されたデータを復号化する(S33)。次に、セッション鍵暗復号部220は、ステップS16で設定されたセッション鍵Kss1を用いて、復号化された読み出しデータを暗号化する(S34)。そして、セッション鍵Kss1により暗号化された読み出しデータは、Host IF210を介してホスト機器110に送信される(S35)。
The storage key encryption /
ホスト機器110は、セッション鍵Kss1を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S36)。
The
以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。
The operation for reading data from the
このように、本実施の形態によれば、セキュリティ保護領域420へのアクセスデータのセッション鍵Kssによる暗復号化および格納鍵Kstによる暗復号化をSDC200で行うので、セキュリティ処理におけるSDC200とSCC300との間の通信回数および送受信されるデータの量を削減することができる。これにより、セキュリティ保護領域420へのアクセスを高速化することができる。
As described above, according to the present embodiment, the encryption / decryption of the access data to the
また、セッション鍵Kssおよび格納鍵KstはSCC300に格納されており、セキュリティ処理を行う旨のコマンド、例えばアクセス領域指定コマンドを受信した場合に、SDC200とSCC300との間で共有される暗号鍵Ksで暗号化されてSDC200に送信されるので、SDC200のなりすましや盗聴によるセッション鍵Kssおよび格納鍵Kstの不正傍受を防止することができる。これにより、セキュリティ保護領域420への不正アクセスの危険性を低減させることができる。
In addition, the session key Kss and the storage key Kst are stored in the
さらに、SDC200およびSCC300は、適宜リセット処理を行うことで、お互いを認証し合い、共有される暗号鍵Ksを生成し直すので、暗号鍵Ksの安全性および信頼性を向上させることができる。
Furthermore, since the
(実施の形態2)
本実施の形態では、外部機器110との間で伝送されるデータの暗復号処理をSDC200に設けられたセッション鍵暗復号部610が行い、フラッシュメモリ400との間で伝送されるデータの暗復号処理をSCC300に設けられた格納鍵暗復号部660が行うように構成されているメモリカード600について説明する。
(Embodiment 2)
In the present embodiment, the session key encryption /
図6は、本発明の実施の形態2に係るメモリカード600の構成を示すブロック図である。図1と同一の構成部分には同一の符号を付して重複箇所の説明を省略する。また、図1の構成部分に付加的な機能を有する構成部分については、その付加的な機能についてのみ説明するものとする。
FIG. 6 is a block diagram showing the configuration of the
図6において、メモリカード600のSDC200は、セッション鍵暗復号部610、アクセス管理情報暗復号部620、Flash IF630およびSCC IF640を備える。
6, the
セッション鍵暗復号部610は、Host IF210を介してホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。
The session key encryption /
セッション鍵暗復号部610は、データの書き込み時には、ホスト機器110から送信されたフラッシュメモリ400への書き込みデータを、セッション鍵Kssにより復号化する。また、セッション鍵暗復号部610は、復号化された書き込みデータを、アクセス管理情報暗復号部620に出力する。
When writing data, the session key encryption /
セッション鍵暗復号部610は、データの読み出し時には、アクセス管理情報暗復号部620から入力されたフラッシュメモリ400からの読み出しデータを、セッション鍵Kssにより暗号化する。また、セッション鍵暗復号部610は、暗号化された読み出しデータを、Host IF210を介してホスト機器110に送信する。
When reading data, the session key encryption /
アクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。
The access management information encryption /
アクセス管理情報暗復号部620は、データの書き込み時には、暗号鍵Ksを用いて、セッション鍵暗復号部610から入力された書き込みデータを暗号化する。また、アクセス管理情報暗復号部620は、暗号鍵Ksで暗号化された書き込みデータを、SCC IF640を介してSCC300に送信する。
When data is written, the access management information encryption /
アクセス管理情報暗復号部620は、データの読み出し時には、暗号鍵Ksを用いて、SCC300から入力された読み出しデータを復号化する。また、アクセス管理情報暗復号部620は、復号化された読み出しデータを、セッション鍵暗復号部610に出力する。
The access management information encryption /
アクセス管理情報暗復号部620は、暗号鍵Ksを用いて、SCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、およびセッション鍵Kssとその暗号アルゴリズムを示す情報が含まれる。
The access management information encryption /
アクセス管理情報暗復号部620は、復号化されたセッション鍵Kssを、セッション鍵暗復号部610に設定する。また、アクセス管理情報暗復号部620は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF630に設定する。
The access management information encryption /
Flash IF630は、フラッシュメモリ400との間で各種のデータを送受信する。具体的には、Flash IF630は、SCC IF640から入力されたフラッシュメモリ400への書き込みデータを、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。また、Flash IF630は、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを受信する。Flash IF630は、この読み出しデータをSCC IF640を介してSCC300に送信する。
The Flash IF 630 transmits / receives various data to / from the
SCC IF640は、SCC300との間で各種のデータを送受信する。具体的には、SCC IF640は、アクセス管理情報暗復号部620から入力された暗号鍵Ksで暗号化された書き込みデータ、およびFlash IF630から入力された格納鍵Kstで暗号化された読み出しデータを、SCC300に送信する。また、SCC IF640は、SCC300のSDC IF670から送信された格納鍵Kstで暗号化された書き込みデータ、およびSCC300のSDC IF670から送信された暗号鍵Ksで暗号化された読み出しデータを受信する。また、SCC IF640は、受信された書き込みデータをFlash IF630に出力し、受信された読み出しデータをアクセス管理情報暗復号部620に出力する。
The SCC IF 640 transmits / receives various data to / from the
メモリカード600のSCC300は、アクセス管理情報暗復号部650、格納鍵暗復号部660およびSDC IF670を備える。
The
アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。
The access management information encryption /
アクセス管理情報暗復号部650は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。また、アクセス管理情報暗復号部650は、取得されたアクセス管理情報に含まれる格納鍵Kstを、格納鍵暗復号部660に設定する。
When the access management information encryption /
アクセス管理情報暗復号部650は、暗号鍵Ksを用いて、格納鍵Kstを除いたアクセス管理情報を暗号化する。また、アクセス管理情報暗復号部650は、暗号化されたアクセス管理情報を、SDC IF670を介してSDC200に送信する。
The access management information encryption /
アクセス管理情報暗復号部650は、データの書き込み時には、暗号鍵Ksを用いて、SDC200から送信された、暗号鍵Ksで暗号化された書き込みデータを復号化する。また、アクセス管理情報暗復号部650は、復号化された書き込みデータを、格納鍵暗復号部660に出力する。
When writing data, the access management information encryption /
アクセス管理情報暗復号部650は、データの読み出し時には、暗号鍵Ksを用いて、格納鍵暗復号部660から入力された読み出しデータを暗号化する。また、アクセス管理情報暗復号部650は、暗号鍵Ksで暗号化された読み出しデータを、SDC IF670を介してSDC200に送信する。
The access management information encryption /
格納鍵暗復号部660は、フラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。
The storage key encryption /
格納鍵暗復号部660は、データの書き込み時には、格納鍵Kstを用いて、アクセス管理情報暗復号部650から入力された書き込みデータを暗号化する。また、格納鍵暗復号部660は、格納鍵Kstにより暗号化された書き込みデータをSDC IF670を介してSDC200に送信する。
The storage key encryption /
格納鍵暗復号部660は、データの読み出し時には、格納鍵Kstを用いて、SDC200からの読み出しデータを復号化する。また、格納鍵暗復号部660は、格納鍵により復号化された読み出しデータを、アクセス管理情報暗復号部650に出力する。
When reading data, the storage key encryption /
SDC IF670は、SDC200との間で各種のデータを送受信する。具体的には、SDC IF670は、格納鍵暗復号部660から入力された格納鍵Kstで暗号化された書き込みデータ、およびアクセス管理情報暗復号部650から入力された暗号鍵Ksで暗号化された読み出しデータを、SDC200に送信する。また、SDC IF670は、SDC200のSCC IF640から送信された暗号鍵Ksで暗号化された書き込みデータおよび格納鍵Kstで暗号化された読み出しデータを受信する。また、SDC IF670は、受信された書き込みデータをアクセス管理情報暗復号部650に出力し、受信された読み出しデータを格納鍵暗復号部660に出力する。
The SDC IF 670 transmits / receives various data to / from the
次に、上述のように構成されたメモリカード600の動作について、図7および図8を用いて詳細に説明する。なお、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みは実施の形態1と同一であるため、その説明を省略し、セキュリティ保護領域420へのデータの書き込み動作およびセキュリティ保護領域420からのデータの読み出し動作について説明する。
Next, the operation of the
図7は、メモリカード600のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422にデータを書き込む場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。
FIG. 7 is a sequence diagram illustrating an example of operations of the
図7において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS41〜ステップS47)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS48〜ステップS54)との2段階の処理により行われる。
In FIG. 7, data is written into the
[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[Access area specification command processing]
First, access area designation command processing will be described.
まず、ホスト機器110は、アクセスすべき領域を指定するための領域ナンバ、ブロックアドレス、およびブロック長が記述されたアクセス領域指定コマンドを、SDC200に対して送信する(S41)。SDC200のHost IF210で受信されたアクセス領域指定コマンドは、SCC IF640に出力される。また、SCC IF640は、入力されたアクセス領域指定コマンドを、さらにSCC300に送信する(S42)。SCC300のSDC IF670で受信されたアクセス領域指定コマンドは、アクセス管理情報暗復号部650に出力される。
First, the
アクセス管理情報暗復号部650は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S43)。この例では、アクセス管理情報暗復号部650は、エリアブロック422(エリア2)に対応する物理アドレス0x00002000、アクセス長、セッション鍵Kss2、および格納鍵Kst1を、アクセス管理情報として取得する。
When the access management information encryption /
アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS43で取得したアクセス管理情報、つまりエリアブロック422に対応する物理アドレス、アクセス長、およびセッション鍵Kssを暗号化する。また、アクセス管理情報暗復号部650は、暗号化されたアクセス管理情報をSDC200に送信する(S44)。SDC200のSCC IF640で受信された暗号化アクセス管理情報は、アクセス管理情報暗復号部620に出力される。
The access management information encryption /
また、アクセス管理情報暗復号部650は、ステップS43で取得した格納鍵Kst、例えばKst1を、格納鍵暗復号部660に設定する(S45)。
Further, the access management information encryption /
SDC200のアクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報暗復号部620は、アクセス先、つまりエリアブロック422に対応する物理アドレス0x00002000、アクセス長、およびセッション鍵Kss2を取得する(S46)。
The access management information encryption /
そして、アクセス管理情報暗復号部620は、ステップS46で取得したセッション鍵Kss2を、セッション鍵暗復号部610に設定する。また、アクセス管理情報暗復号部620は、ステップS46で取得した物理アドレスおよびアクセス長を、Flash IF630に設定する(S47)。
Then, the access management information encryption /
[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.
まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss2を用いて、エリアブロック422に書き込むデータを暗号化する(S48)。ここで、ホスト機器110は、予め、メモリカード600との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。
First, the
また、ホスト機器110は、セッション鍵Kss2により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S49)。SDC200のHost IF210で受信されたこの書き込みデータは、セッション鍵暗復号部610に出力される。
The
セッション鍵暗復号部610は、ステップS47で設定されたセッション鍵Kss2を用いて、ホスト機器110からの書き込みデータを復号化する(S50)。アクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、復号化された書き込みデータを暗号化する(S51)。また、アクセス管理情報暗復号部620は、暗号鍵Ksで暗号化された書き込みデータを、SCC IF640を介してSCC300に送信する。
The session key encryption /
SCC300のアクセス管理情報暗復号部650は、SDC200からの暗号鍵Ksで暗号化された書き込みデータを受信すると、鍵生成部320で生成された暗号鍵Ksを用いて、この書き込みデータを復号化する(S52)。また、アクセス管理情報暗復号部650は、復号化された書き込みデータを、格納鍵暗復号部660に出力する。
Upon receiving the write data encrypted with the encryption key Ks from the
格納鍵暗復号部660は、ステップS45で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S53)。また、格納鍵暗復号部660は、格納鍵Kst1で暗号化された書き込みデータを、SDC IF670を介してSDC200に送信する。そして、Flash IF630は、格納鍵Kst1で暗号化された書き込みデータを、ステップS47で設定された物理アドレスにより示される領域、例えばエリアブロック422に書き込む(S54)。
The storage key encryption /
以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。
The data write operation to the
次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図8を用いて説明する。
Next, a data read operation from the
図8は、メモリカード600のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。
FIG. 8 is a sequence diagram illustrating an example of operations of the
図8において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS41〜ステップS47)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS61〜ステップS68)との2段階の処理により行われる。なお、図8のアクセス領域指定コマンド処理は、前述した図7のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。
In FIG. 8, data is read from the
[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S61)。SDC200のHost IF210で受信されたデータ取得コマンドは、Flash IF630に出力される。
[Data acquisition command processing]
First, the
Flash IF630は、ステップS47で設定された物理アドレスにより示される領域、例えばエリアブロック422に格納されたデータを読み出す(S62)。この読み出しデータは、SCC IF640を介してSCC300に送信され、さらに格納鍵暗復号部660に出力される。
The Flash IF 630 reads the data stored in the area indicated by the physical address set in step S47, for example, the area block 422 (S62). The read data is transmitted to the
格納鍵暗復号部660は、ステップS45で設定された格納鍵Kst、例えば格納鍵Kst1を用いて、エリアブロック422から読み出されたデータを復号化する(S63)。復号化された読み出しデータは、アクセス管理情報暗復号部650に出力される。アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、復号化された読み出しデータを暗号化する(S64)。アクセス管理情報暗復号部650は、暗号鍵Ksで暗号化された読み出しデータを、SDC IF670を介してSDC200に送信する。
The storage key encryption /
SDC200のアクセス管理情報暗復号部620は、SCC300からの暗号鍵Ksで暗号化された読み出しデータを受信すると、鍵生成部250で生成された暗号鍵Ksを用いて、この読み出しデータを復号化する(S65)。アクセス管理情報暗復号部620は、復号化された読み出しデータを、セッション鍵暗復号部610に出力する。
When receiving the read data encrypted with the encryption key Ks from the
セッション鍵暗復号部610は、ステップS47で設定されたセッション鍵Kss2を用いて、復号化された読み出しデータを暗号化する(S66)。そして、セッション鍵暗復号部610は、セッション鍵Kss2により暗号化された読み出しデータを、Host IF210を介してホスト機器110に送信する(S67)。
The session key encryption /
ホスト機器110は、セッション鍵Kss2を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S68)。
The
以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。
The operation for reading data from the
このように、本実施の形態によれば、セキュリティ保護領域420へのアクセスデータの格納鍵Kstによる暗復号化をSCC300で行うので、格納鍵Kstによる暗復号化の安全性および信頼性を向上させることができる。
Thus, according to the present embodiment, since the
また、SDC200およびSCC300は、送受信する書き込みデータまたは読み出しデータを、SDC200とSCC300との間で共有される暗号鍵Ksで暗号化するので、SDC200とSCC300との間の通信路の秘匿性を向上させることができる。
In addition, since the
(実施の形態3)
本実施の形態では、ホスト機器110との間で伝送されるデータの暗復号処理をSCC300に設けられたセッション鍵暗復号部770が行い、フラッシュメモリ400との間で伝送されるデータの暗復号処理をSDC200に設けられた格納鍵暗復号部720が行うように構成されているメモリカード700について説明する。
(Embodiment 3)
In the present embodiment, encryption / decryption processing of data transmitted to / from the
図9は、本発明の実施の形態3に係るメモリカード700の構成を示すブロック図である。図1と同一の構成部分には同一の符号を付して重複箇所の説明を省略する。また、図1の構成部分に付加的な機能を有する構成部分については、その付加的な機能についてのみ説明するものとする。
FIG. 9 is a block diagram showing a configuration of a
図9において、メモリカード700のSDC200は、Host IF710、格納鍵暗復号部720、アクセス管理情報暗復号部730、Flash IF740およびSCC IF750を備える。
9, the
Host IF710は、ホスト機器110との間で各種のデータを送受信する。具体的には、Host IF710は、ホスト機器110から送信された、セッション鍵Kssで暗号化された書き込みデータを受信して、SCC IF750を介してSCC300に送信する。また、Host IF710は、SCC IF750から入力されたセッション鍵Kssで暗号化された読み出しデータを、ホスト機器110に送信する。
The Host IF 710 transmits / receives various data to / from the
格納鍵暗復号部720は、フラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。
The storage key encryption /
格納鍵暗復号部720は、データの書き込み時には、格納鍵Kstを用いて、アクセス管理情報暗復号部730から入力された書き込みデータを暗号化する。また、格納鍵暗復号部720は、格納鍵Kstにより暗号化された書き込みデータを、Flash IF740を介して、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。
The storage key encryption /
格納鍵暗復号部720は、データの読み出し時には、格納鍵Kstを用いて、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを復号化する。また、格納鍵暗復号部720は、格納鍵Kstにより復号化された読み出しデータをアクセス管理情報暗復号部730に出力する。
When reading data, the storage key encryption /
アクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。
The access management information encryption /
アクセス管理情報暗復号部730は、データの書き込み時には、暗号鍵Ksを用いて、SCC300から送信された書き込みデータを復号化する。また、アクセス管理情報暗復号部730は、復号化された書き込みデータを、格納鍵暗復号部720に出力する。
The access management information encryption /
アクセス管理情報暗復号部730は、データの読み出し時には、暗号鍵Ksを用いて、格納鍵暗復号部720から入力された読み出しデータを暗号化する。また、アクセス管理情報暗復号部730は、暗号化された読み出しデータを、SCC IF750を介してSCC300に送信する。
The access management information encryption /
アクセス管理情報暗復号部730は、暗号鍵Ksを用いて、SCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、および格納鍵Kstとその暗号アルゴリズムを示す情報が含まれる。
The access management information encryption /
アクセス管理情報暗復号部730は、復号化された格納鍵Kstを、格納鍵暗復号部720に設定する。また、アクセス管理情報暗復号部730は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF740に設定する。
The access management information encryption /
Flash IF740は、フラッシュメモリ400との間で各種のデータを送受信する。具体的には、Flash IF740は、格納鍵暗復号部720から入力されたフラッシュメモリ400への書き込みデータを、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。また、Flash IF740は、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを受信する。Flash IF740は、この読み出しデータを格納鍵暗復号部720に出力する。
The Flash IF 740 transmits / receives various data to / from the
SCC IF750は、SCC300との間で各種のデータを送受信する。具体的には、SCC IF750は、ホスト機器110からHost IF710を介して受信されたセッション鍵Kssで暗号化された書き込みデータ、およびアクセス管理情報暗復号部730から入力された暗号鍵Ksで暗号化された読み出しデータを、SCC300に送信する。また、SCC IF750は、SCC300のSDC IF780から送信された暗号鍵Ksで暗号化された書き込みデータおよびセッション鍵Kssで暗号化された読み出しデータを受信する。また、SCC IF740は、受信された書き込みデータをアクセス管理情報暗復号部730に出力し、受信された読み出しデータを、Host IF710を介してホスト機器110に送信する。
The SCC IF 750 transmits / receives various data to / from the
メモリカード700のSCC300は、アクセス管理情報暗復号部760、セッション鍵暗復号部770およびSDC IF780を備える。
The
アクセス管理情報暗復号部760は、鍵生成部320で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。
The access management information encryption /
アクセス管理情報暗復号部760は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。また、アクセス管理情報暗復号部760は、取得されたアクセス管理情報に含まれるセッション鍵Kssを、セッション鍵暗復号部770に設定する。
When receiving the access area designation command transmitted from the
アクセス管理情報暗復号部760は、暗号鍵Ksを用いて、セッション鍵Kssを除いたアクセス管理情報を暗号化する。また、アクセス管理情報暗復号部760は、暗号化されたアクセス管理情報を、SDC IF780を介してSDC200に送信する。
The access management information encryption /
アクセス管理情報暗復号部760は、データの書き込み時には、暗号鍵Ksを用いて、セッション鍵暗復号部770から入力された書き込みデータを暗号化する。また、アクセス管理情報暗復号部760は、暗号化された書き込みデータを、SDC IF780を介してSDC200に送信する。
When data is written, the access management information encryption /
アクセス管理情報暗復号部760は、データの読み出し時には、暗号鍵Ksを用いて、SDC200から送信された読み出しデータを復号化する。また、アクセス管理情報暗復号部760は、復号化された読み出しデータを、セッション鍵暗復号部770に出力する。
The access management information encryption /
セッション鍵暗復号部770は、ホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。
The session key encryption / decryption unit 770 encrypts / decrypts data transmitted / received to / from the
セッション鍵暗復号部770は、データの書き込み時には、SDC200から送信されたフラッシュメモリ400への書き込みデータを、セッション鍵Kssにより復号化する。また、セッション鍵暗復号部770は、復号化された書き込みデータを、アクセス管理情報暗復号部760に出力する。
When writing data, session key encryption / decryption unit 770 decrypts the write data to
セッション鍵暗復号部770は、データの読み出し時には、アクセス管理情報暗復号部760から入力されたフラッシュメモリ400からの読み出しデータを、セッション鍵Kssにより暗号化する。また、セッション鍵暗復号部770は、暗号化された読み出しデータを、SDC IF780を介してSDC200に送信する。
When reading data, the session key encryption / decryption unit 770 encrypts the read data from the
SDC IF780は、SDC200との間で各種のデータを送受信する。具体的には、SDC IF780は、アクセス管理情報暗復号部760から入力された暗号鍵Ksで暗号化された書き込みデータ、およびセッション鍵暗復号部770から入力されたセッション鍵Kssで暗号化された読み出しデータを、SDC200に送信する。また、SDC IF780は、SDC200のSCC IF750から送信されたセッション鍵Kssで暗号化された書き込みデータおよび暗号鍵Ksで暗号化された読み出しデータを受信する。また、SDC IF780は、受信された書き込みデータをセッション鍵暗復号部770に出力し、受信された読み出しデータをアクセス管理情報暗復号部760に出力する。
The SDC IF 780 transmits / receives various data to / from the
次に、上述のように構成されたメモリカード700の動作について、図10および図11を用いて詳細に説明する。なお、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みは実施の形態1と同一であるため、その説明を省略し、セキュリティ保護領域420へのデータの書き込み動作およびセキュリティ保護領域420からのデータの読み出し動作について説明する。
Next, the operation of the
図10は、メモリカード700のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422にデータを書き込む場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。
FIG. 10 is a sequence diagram illustrating an example of operations of the
図10において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS71〜ステップS77)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS78〜ステップS84)との2段階の処理により行われる。
In FIG. 10, data is written to the
[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[Access area specification command processing]
First, access area designation command processing will be described.
まず、ホスト機器110は、アクセスすべき領域を指定するための領域ナンバ、ブロックアドレス、およびブロック長が記述されたアクセス領域指定コマンドを、SDC200に対して送信する(S71)。SDC200のHost IF710で受信されたアクセス領域指定コマンドは、SCC IF750に出力される。また、SCC IF750は、入力されたアクセス領域指定コマンドを、さらにSCC300に送信する(S72)。SCC300のSDC IF780で受信されたアクセス領域指定コマンドは、アクセス管理情報暗復号部760に出力される。
First, the
アクセス管理情報暗復号部760は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S73)。この例では、アクセス管理情報暗復号部760は、エリアブロック422(エリア2)に対応する物理アドレス0x00002000、アクセス長、セッション鍵Kss2、および格納鍵Kst1を、アクセス管理情報として取得する。
When the access management information encryption /
アクセス管理情報暗復号部760は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS73で取得したアクセス管理情報、つまりエリアブロック422に対応する物理アドレス、アクセス長、および格納鍵Kstを暗号化する。また、アクセス管理情報暗復号部760は、暗号化されたアクセス管理情報をSDC200に送信する(S74)。SDC200のSCC IF750で受信された暗号化アクセス管理情報は、アクセス管理情報暗復号部730に出力される。
The access management information encryption /
また、アクセス管理情報暗復号部760は、ステップS73で取得したセッション鍵Kss、例えばKss2を、セッション鍵暗復号部770に設定する(S75)。
Further, the access management information encryption /
SDC200のアクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報暗復号部730は、アクセス先、つまりエリアブロック422に対応する物理アドレス0x00002000、アクセス長、および格納鍵Kst1を取得する(S76)。
The access management information encryption /
そして、アクセス管理情報暗復号部730は、ステップS76で取得した格納鍵Kst1を、格納鍵暗復号部720に設定する。また、アクセス管理情報暗復号部730は、ステップS76で取得した物理アドレスおよびアクセス長を、Flash IF740に設定する(S77)。
Then, the access management information encryption /
[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.
まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss2を用いて、エリアブロック422に書き込むデータを暗号化する(S78)。ここで、ホスト機器110は、予め、メモリカード700との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。
First, the
また、ホスト機器110は、セッション鍵Kss2により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S79)。SDC200のHost IF710で受信されたこの書き込みデータは、SCC IF750を介してSCC300に送信される。また、SCC300のSDC IF780で受信された書き込みデータは、セッション鍵暗復号部770に出力される。
In addition, the
セッション鍵暗復号部770は、ステップS75で設定されたセッション鍵Kss2を用いて、SDC200からの書き込みデータを復号化する(S80)。アクセス管理情報暗復号部760は、鍵生成部320で生成された暗号鍵Ksを用いて、復号化された書き込みデータを暗号化する(S81)。また、アクセス管理情報暗復号部760は、暗号鍵Ksで暗号化された書き込みデータを、SDC IF780を介してSDC200に送信する。
The session key encryption / decryption unit 770 decrypts the write data from the
SDC200のアクセス管理情報暗復号部730は、SCC300からの暗号鍵Ksで暗号化された書き込みデータを受信すると、鍵生成部250で生成された暗号鍵Ksを用いて、この書き込みデータを復号化する(S82)。また、アクセス管理情報暗復号部730は、復号化された書き込みデータを、格納鍵暗復号部720に出力する。
Upon receiving the write data encrypted with the encryption key Ks from the
格納鍵暗復号部720は、ステップS77で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S83)。また、格納鍵暗復号部720は、格納鍵Kst1で暗号化された書き込みデータを、Flash IF740に出力する。そして、Flash IF740は、格納鍵Kst1で暗号化された書き込みデータを、ステップS77で設定された物理アドレスにより示される領域、例えばエリアブロック422に書き込む(S84)。
The storage key encryption /
以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。
The data write operation to the
次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図11を用いて説明する。
Next, a data read operation from the
図11は、メモリカード700のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。
FIG. 11 is a sequence diagram illustrating an example of operations of the
図11において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS71〜ステップS77)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS91〜ステップS98)との2段階の処理により行われる。なお、図11のアクセス領域指定コマンド処理は、前述した図10のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。
In FIG. 11, data is read from the
[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S91)。SDC200のHost IF710で受信されたデータ取得コマンドは、Flash IF740に出力される。
[Data acquisition command processing]
First, the
Flash IF740は、ステップS77で設定された物理アドレスにより示される領域、例えばエリアブロック422に格納されたデータを読み出す(S92)。また、Flash IF740は、この読み出しデータを、格納鍵暗復号部720に出力する。
The Flash IF 740 reads the data stored in the area indicated by the physical address set in step S77, for example, the area block 422 (S92). Further, the
格納鍵暗復号部720は、ステップS77で設定された格納鍵Kst、例えば格納鍵Kst1を用いて、エリアブロック422から読み出されたデータを復号化する(S93)。復号化された読み出しデータは、アクセス管理情報暗復号部730に出力される。アクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、復号化された読み出しデータを暗号化する(S94)。また、アクセス管理情報暗復号部730は、暗号鍵Ksで暗号化された読み出しデータを、SCC IF750を介してSCC300に送信する。
The storage key encryption /
SCC300のアクセス管理情報暗復号部760は、SDC200からの暗号鍵Ksで暗号化された読み出しデータを受信すると、鍵生成320で生成された暗号鍵Ksを用いて、この読み出しデータを復号化する(S95)。また、アクセス管理情報暗復号部760は、復号化された読み出しデータを、セッション鍵暗復号部770に出力する。
When receiving the read data encrypted with the encryption key Ks from the
セッション鍵暗復号部770は、ステップS75で設定されたセッション鍵Kss2を用いて、復号化された読み出しデータを暗号化する(S96)。また、セッション鍵暗復号部770は、セッション鍵Kss2により暗号化された読み出しデータを、SDC IF780を介してSDC200に送信する。そして、SCC IF750は、この読み出しデータを受信し、Host IF710を介してホスト機器110に送信する(S97)。
The session key encryption / decryption unit 770 encrypts the decrypted read data using the session key Kss2 set in step S75 (S96). In addition, the session key encryption / decryption unit 770 transmits the read data encrypted with the session key Kss2 to the
ホスト機器110は、セッション鍵Kss2を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S98)。
The
以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。
The operation for reading data from the
このように、本実施の形態によれば、ホスト機器110との間で送受信するデータのセッション鍵Kssによる暗復号化をSCC300で行うので、セッション鍵Kssによる暗復号化の安全性および信頼性を向上させることができる。
As described above, according to the present embodiment, since the
本発明に係るメモリカードは、セキュリティ強度を落とすことなく、高速にセキュリティ保護領域へアクセスすることができる効果を有し、個人認証や機密情報の保護などのセキュリティ処理を行うメモリカードとして有用である。 The memory card according to the present invention has the effect of being able to access the security protection area at high speed without reducing the security strength, and is useful as a memory card for performing security processing such as personal authentication and protection of confidential information. .
100、600、700 メモリカード
110 ホスト機器
200 SDコントローラチップ
210、710 Host IF
220、610、770 セッション鍵暗復号部
230、660、720 格納鍵暗復号部
240、630、740 Flash IF
250、320 鍵生成部
260 アクセス管理情報復号部
270、640、750 SCC IF
300 スマートカードチップ
310 鍵記憶部
330 アクセス管理情報暗号部
340、670、780 SDC IF
400 フラッシュメモリ
410 通常領域
420 セキュリティ保護領域
500 アクセス管理情報
620、650、730、760 アクセス管理情報暗復号部
100, 600, 700
220, 610, 770 Session key encryption /
250, 320
300
400
Claims (11)
前記メモリカードと外部機器との間で伝送されるデータを暗復号処理する第1の暗復号部と、
前記メモリチップと前記スマートカードチップとの間で伝送されるデータを暗復号処理する第2の暗復号部と、を備え、
前記第1の暗復号部および前記第2の暗復号部の少なくとも一方は、前記コントローラチップに設けられている、
ことを特徴とするメモリカード。 In a memory card provided with a smart card chip that executes writing of data to the memory chip or reading of data from the memory chip, and a controller chip that controls writing or reading of data executed by the smart card chip,
A first encryption / decryption unit for performing encryption / decryption processing on data transmitted between the memory card and an external device;
A second encryption / decryption unit for performing encryption / decryption processing on data transmitted between the memory chip and the smart card chip,
At least one of the first encryption / decryption unit and the second encryption / decryption unit is provided in the controller chip,
A memory card characterized by that.
ことを特徴とする請求項1記載のメモリカード。 The first encryption / decryption unit and the second encryption / decryption unit are provided in the controller chip,
The memory card according to claim 1.
前記鍵記憶部は、前記スマートカードチップに設けられている、
ことを特徴とする請求項2記載のメモリカード。 A key storage unit that holds a session key used by the first encryption / decryption unit for encryption / decryption processing and a storage key used by the second encryption / decryption unit for encryption / decryption processing;
The key storage unit is provided in the smart card chip.
The memory card according to claim 2.
前記セキュリティ鍵暗号部で暗号化された前記セッション鍵および前記格納鍵を復号化するセキュリティ鍵復号部とをさらに備え、
前記セキュリティ鍵暗号部は、前記スマートカードチップに設けられ、
前記セキュリティ鍵復号部は、前記コントローラチップに設けられている、
ことを特徴とする請求項3記載のメモリカード。 A security key encryption unit that encrypts the session key and the storage key held by the key storage unit;
A security key decryption unit for decrypting the session key and the storage key encrypted by the security key encryption unit,
The security key encryption unit is provided in the smart card chip,
The security key decryption unit is provided in the controller chip;
The memory card according to claim 3.
前記セキュリティ鍵復号部が復号化に用いるセキュリティ鍵を生成する復号化セキュリティ鍵生成部とをさらに備え、
前記暗号化セキュリティ鍵生成部は、前記スマートカードチップに設けられ、
前記復号化セキュリティ鍵生成部は、前記コントローラチップに設けられている、
ことを特徴とする請求項4記載のメモリカード。 An encrypted security key generation unit for generating a security key used for encryption by the security key encryption unit;
The security key decryption unit further comprises a decryption security key generation unit that generates a security key used for decryption,
The encrypted security key generation unit is provided in the smart card chip,
The decryption security key generation unit is provided in the controller chip.
The memory card according to claim 4.
前記外部機器からのリセット命令を受けると、前記セキュリティ鍵暗号部および前記セキュリティ鍵復号部が暗復号処理に用いるセキュリティ鍵を新たに生成する、
ことを特徴とする請求項5記載のメモリカード。 The encryption security key generation unit and the decryption security key generation unit are:
Upon receiving a reset command from the external device, the security key encryption unit and the security key decryption unit newly generate a security key used for encryption / decryption processing,
6. The memory card according to claim 5, wherein:
ことを特徴とする請求項3記載のメモリカード。 The memory chip is provided with a security protection area for storing security information divided into a plurality of logical areas.
The memory card according to claim 3.
前記セッション鍵および前記格納鍵を、前記セキュリティ保護領域の前記分割された領域ごとに対応付けて保持する、
ことを特徴とする請求項7記載のメモリカード。 The key storage unit
Holding the session key and the storage key in association with each of the divided areas of the security protection area;
The memory card according to claim 7.
前記第2の暗復号部は、前記スマートカードチップに設けられている、
ことを特徴とする請求項1記載のメモリカード。 The first encryption / decryption unit is provided in the controller chip,
The second encryption / decryption unit is provided in the smart card chip.
The memory card according to claim 1.
前記第2の暗復号部は、前記コントローラチップに設けられている、
ことを特徴とする請求項1記載のメモリカード。 The first encryption / decryption unit is provided in the smart card chip,
The second encryption / decryption unit is provided in the controller chip.
The memory card according to claim 1.
前記メモリカードと外部機器との間で伝送されるデータを暗復号処理する第1の暗復号ステップと、
前記メモリチップと前記スマートカードチップとの間で伝送されるデータを暗復号処理する第2の暗復号ステップと、を備え、
前記第1の暗復号ステップおよび前記第2の暗復号ステップの少なくとも一方は、前記コントローラチップで実行される、
ことを特徴とするメモリカードのメモリチップへのアクセス方法。 A data transmission step for executing writing of data to the memory chip or reading of data from the memory chip by the smart card chip, and a control step for controlling writing or reading of the data executed by the data transmission step by the controller chip A method of accessing a memory chip of a memory card comprising:
A first encryption / decryption step of encrypting / decrypting data transmitted between the memory card and an external device;
A second encryption / decryption step for performing encryption / decryption processing on data transmitted between the memory chip and the smart card chip,
At least one of the first encryption / decryption step and the second encryption / decryption step is executed by the controller chip;
A method for accessing a memory chip of a memory card.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006144548A JP2007316865A (en) | 2006-05-24 | 2006-05-24 | Memory card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2006144548A JP2007316865A (en) | 2006-05-24 | 2006-05-24 | Memory card |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2007316865A true JP2007316865A (en) | 2007-12-06 |
Family
ID=38850678
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2006144548A Pending JP2007316865A (en) | 2006-05-24 | 2006-05-24 | Memory card |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2007316865A (en) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103903042B (en) * | 2014-03-25 | 2017-02-01 | 杭州晟元数据安全技术股份有限公司 | Data flow encryption SD card |
JP6810490B1 (en) * | 2020-04-06 | 2021-01-06 | 玲於奈 日置 | Loan support system, loan support method, and loan support program |
-
2006
- 2006-05-24 JP JP2006144548A patent/JP2007316865A/en active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103903042B (en) * | 2014-03-25 | 2017-02-01 | 杭州晟元数据安全技术股份有限公司 | Data flow encryption SD card |
JP6810490B1 (en) * | 2020-04-06 | 2021-01-06 | 玲於奈 日置 | Loan support system, loan support method, and loan support program |
JP2021165903A (en) * | 2020-04-06 | 2021-10-14 | 玲於奈 日置 | Loan support system, loan support method, and loan support program |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4763368B2 (en) | COMMUNICATION CARD, CONFIDENTIAL INFORMATION PROCESSING SYSTEM, CONFIDENTIAL INFORMATION TRANSFER METHOD, AND PROGRAM | |
CN106464498B (en) | Method for authenticating a first electronic entity by a second electronic entity and electronic entity | |
US7415729B2 (en) | Storage device | |
US8019997B2 (en) | Information processing apparatus and method, recording medium, and program | |
JP4624732B2 (en) | how to access | |
EP1752937A1 (en) | System and method for encrypted smart card PIN entry | |
US20060225126A1 (en) | Securely using a display to exchange information | |
US8607333B2 (en) | Radio frequency identification (RFID) security apparatus having security function and method thereof | |
EP1662697A1 (en) | Method and apparatus for security over multiple interfaces | |
US9143323B2 (en) | Securing a link between two devices | |
TW200928997A (en) | Critical security parameter generation and exchange system and method for smart-card memory modules | |
JP2009100394A (en) | Information processing apparatus and method, recording medium, program, and information processing system | |
EP1710656B1 (en) | Securely Using a Display to Exchange Information | |
US11405202B2 (en) | Key processing method and apparatus | |
CN113408017B (en) | Method, device, equipment and storage medium for protecting data in OTP (one time programmable) memory | |
KR20050108355A (en) | Authentication processing device and security processing method | |
KR20240026922A (en) | Cryptographic authentication to control access to storage devices | |
JPS63278438A (en) | Cryptographic system by secret cryptograph procedure | |
JP2021175184A (en) | Contactless card with multiple rotating security keys | |
JP2007316865A (en) | Memory card | |
JP6246516B2 (en) | Information processing system | |
CN107967432B (en) | Safe storage device, system and method | |
CN103699853A (en) | Smart SD (secure digital memory card) and control system and control method thereof | |
JP3963938B2 (en) | Access method, memory device, and information device | |
JP2006227679A (en) | Usb memory key |