JP2007316865A - Memory card - Google Patents

Memory card Download PDF

Info

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
Application number
JP2006144548A
Other languages
Japanese (ja)
Inventor
Takafumi Kikuchi
隆文 菊地
Yoshihiko Takagi
佳彦 高木
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co Ltd
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2006144548A priority Critical patent/JP2007316865A/en
Publication of JP2007316865A publication Critical patent/JP2007316865A/en
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To access a security protected region at a high speed, without deteriorating the strength of security. <P>SOLUTION: A session key encrypting/decrypting part 220 encrypts/decrypts data to be transmitted and received with host equipment 110 via a Host IF210 by using a session key Kss. A storage key encrypting/decrypting part 230 encrypts/decrypts data to be written in a flash memory 400 via an Flash IF240 or data to be read from the flash memory 400 by using a storage key Kst. An access management information encrypting part 330 encrypts the session key Kss and the storage key Kst, acquired from a key storage part 310 by an encryption key Ks generated by a key generation part 320, and transmits it to an SDC 200. An access management information decoding part 260 decrypts the received session key Kss and storage key Kst, by using the encryption Ks generated by a key generation part 250, and sets them in the session key encrypting/decrypting part 220 and the storage key encrypting/decrypting part 230. <P>COPYRIGHT: (C)2008,JPO&INPIT

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 Patent Document 1 as a technique for writing and reading data by accessing a Flash memory.

特許文献1には、フラッシュメモリチップと、スマートカードチップと、ホスト機器からの要求に応じてフラッシュメモリチップおよびスマートカードチップへのデータの読み書きを制御するコントローラチップとを備えるメモリカードが開示されている。このフラッシュメモリチップは、ノーマルデータエリアおよびセキュアデータエリアを有する。ノーマルデータエリアは、ホスト機器からのデータを記憶するための領域である。また、セキュアデータエリアは、スマートカードチップが拡張メモリとして利用するためのものであり、セキュリティ保護領域である。   Patent Document 1 discloses a memory card that includes a flash memory chip, a smart card chip, and a controller chip that controls reading and writing of data to and from the flash memory chip and the smart card chip in response to a request from the host device. Yes. This flash memory chip has a normal data area and a secure data area. The normal data area is an area for storing data from the host device. The secure data area is used by the smart card chip as an expansion memory and is a security protection area.

また、特許文献2には、ホスト機器からのコマンドにセキュリティ処理に関する情報が含まれている場合に、スマートカードチップがホスト機器からのデータを暗復号化してセキュリティ保護領域に格納する記憶装置が開示されている。   Patent Document 2 discloses a storage device in which a smart card chip encrypts / decrypts data from a host device and stores it in a security protection area when the command from the host device includes information on security processing. Has been.

特許文献1および特許文献2記載のメモリカードまたは記憶装置においては、セキュリティ保護領域へのアクセスは、例えば、図12に示すようなステップを経ることにより行われる。   In the memory card or the storage device described in Patent Document 1 and Patent Document 2, access to the security protection area is performed through steps as shown in FIG. 12, for example.

まず、ホスト機器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)。
特開2004−295160号公報 特開2003−22216号公報
First, the host device 10 transmits a secure write command including a memory access to the security protection area 21 of the flash memory 20 to the controller chip 30 (step A). Next, the controller chip 30 converts this secure write command into an APDU (Application Protocol Data Unit) format and transfers it to the smart card chip 40 (step B). Next, after interpreting the APDU command, the application on the smart card chip 40 transmits a write / read transfer command, which is an access request to the security protection area 21 in the APDU format, to the controller chip 30 (step C). Next, the controller chip 30 accesses the security protection area 21 of the flash memory 20 according to the write / read transfer command, and performs a write / read process (step D). Next, the controller chip 30 returns a write / read response indicating the write / read processing result to the smart card chip 40 (step E). Next, the application on the smart card chip 40 assembles the write / read processing result indicated by the write / read response as a response APDU and sends it back to the controller chip 30 (step F). Then, the controller chip 30 returns a response APDU to the host device 10 when receiving the secure read command (step G).
JP 2004-295160 A JP 2003-22216 A

しかしながら、従来のメモリカードまたは記憶装置においては、セキュリティ強度を確保するため、コントローラチップとスマートカードチップとがデータのやりとりを行う必要があり、このデータのやりとりが多すぎる結果、フラッシュメモリへのアクセス速度が低くなってしまうという問題がある。   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 host device 110. The memory card 100 for writing predetermined data will be described.

具体的には、本実施の形態では、SDC200はホスト機器110との間で伝送されるデータの暗復号処理を行う、SDC200に設けられたセッション鍵暗復号部220と、フラッシュメモリ400との間で伝送されるデータの暗復号処理を行う、SDC200に設けられた格納鍵暗復号部230と、により構成されている。   Specifically, in the present embodiment, the SDC 200 performs encryption / decryption processing of data transmitted between the host device 110 and the session key encryption / decryption unit 220 provided in the SDC 200 and the flash memory 400. And a storage key encryption / decryption unit 230 provided in the SDC 200 for performing encryption / decryption processing of data transmitted by the SDC 200.

また、SCC300に設けられた鍵記憶部310は、セッション鍵暗復号部220が暗復号処理に用いるセッション鍵Kssと、格納鍵暗復号部230が暗復号処理に用いる格納鍵Kstと、を保持するように構成されている。   The key storage unit 310 provided in the SCC 300 holds a session key Kss that the session key encryption / decryption unit 220 uses for encryption / decryption processing, and a storage key Kst that the storage key encryption / decryption unit 230 uses for encryption / decryption processing. It is configured as follows.

また、SDC200に設けられた鍵生成部250およびSCC300に設けられた鍵生成部320は、お互いを認証し合った上で、SDC200とSCC300との間の通信路を伝送されるデータを暗復号処理するための暗号鍵Ksを生成するように構成されている。ここで、SDC200とSCC300との間の通信路を伝送されるデータには、例えば、鍵記憶部310が保持するセッション鍵Kssおよび格納鍵Kstが含まれる。   In addition, the key generation unit 250 provided in the SDC 200 and the key generation unit 320 provided in the SCC 300 authenticate each other and then perform encryption / decryption processing on data transmitted through the communication channel between the SDC 200 and the SCC 300 It is configured to generate an encryption key Ks for this purpose. Here, the data transmitted through the communication path between the SDC 200 and the SCC 300 includes, for example, a session key Kss and a storage key Kst held by the key storage unit 310.

上記メモリカード100について、以下で詳述する。   The memory card 100 will be described in detail below.

図1は、本発明の実施の形態1に係るメモリカード100の構成を示すブロック図である。   FIG. 1 is a block diagram showing a configuration of a memory card 100 according to Embodiment 1 of the present invention.

図1において、メモリカード100は、SD(Secure Digital)コントローラチップ(以下「SDC」と略記する)200、スマートカードチップ(以下「SCC」と略記する)300、およびフラッシュメモリ400を備える。   1, the memory card 100 includes an SD (Secure Digital) controller chip (hereinafter abbreviated as “SDC”) 200, a smart card chip (hereinafter abbreviated as “SCC”) 300, and a flash memory 400.

メモリカード100は、携帯電話機やPDA(Personal Digital Assistant)、PC(Personal Computer)などのホスト機器110の端子に挿入されることができる。また、メモリカード100は、接続されたホスト機器110との間で各種のデータを送受信する機能を有する。   The memory card 100 can be inserted into a terminal of a host device 110 such as a mobile phone, a PDA (Personal Digital Assistant), or a PC (Personal Computer). The memory card 100 also has a function of transmitting / receiving various data to / from the connected host device 110.

SDC200は、SCC300およびフラッシュメモリ400と接続されており、フラッシュメモリ400へのデータの書き込みおよびフラッシュメモリ400からのデータの読み出し、特にセキュリティ処理が必要なデータの書き込みおよび読み出しを制御する。   The SDC 200 is connected to the SCC 300 and the flash memory 400, and controls the writing of data into the flash memory 400 and the reading of data from the flash memory 400, particularly the writing and reading of data requiring security processing.

SDC200は、ホストインターフェース(以下「Host IF」という)210、セッション鍵暗復号部220、格納鍵暗復号部230、フラッシュインターフェース(以下「Flash IF」という)240、鍵生成部250、アクセス管理情報復号部260、およびSCCインターフェース(以下「SCC IF」という)270を備える。   The SDC 200 includes a host interface (hereinafter referred to as “Host IF”) 210, a session key encryption / decryption unit 220, a storage key encryption / decryption unit 230, a flash interface (hereinafter referred to as “Flash IF”) 240, a key generation unit 250, and an access management information decryption. Section 260 and an SCC interface (hereinafter referred to as “SCC IF”) 270.

Host IF210は、ホスト機器110との間で各種のデータを送受信する。Host IF210は、ホスト機器110からフラッシュメモリ400にアクセスする旨のコマンドを受信すると、そのコマンドをSCC IF270に出力する。フラッシュメモリ400にアクセスする旨のコマンドには、例えばフラッシュメモリ400のうちどの領域にアクセスするかを示すアクセス領域指定コマンド、およびアクセスする領域に書き込むべきデータを含むデータ転送コマンドまたはアクセスする領域から読み出すべきデータを含むデータ取得コマンドが含まれる。また、アクセス領域指定コマンドには、アクセスすべき領域を特定するための領域ナンバ、ブロックアドレス、およびブロック長などの情報が含まれる。   The Host IF 210 transmits / receives various data to / from the host device 110. When Host IF 210 receives a command to access flash memory 400 from host device 110, Host IF 210 outputs the command to SCC IF 270. The command for accessing the flash memory 400 includes, for example, an access area designation command indicating which area in the flash memory 400 is accessed, and a data transfer command including data to be written in the accessed area or an area to be accessed. A data acquisition command including power data is included. The access area designation command includes information such as an area number, a block address, and a block length for specifying an area to be accessed.

Host IF210は、ホスト機器110からのコマンドがフラッシュメモリ400へのデータの書き込みを示す場合(データ転送コマンド)、フラッシュメモリ400に書き込むべきデータおよびデータ転送コマンドをセッション鍵暗復号部220に出力する。また、Host IF210は、ホスト機器110からのコマンドがフラッシュメモリ400からのデータの読み出しを示す場合(データ取得コマンド)、データ取得コマンドをFlash IF240に出力し、フラッシュメモリ400から読み出されたデータをホスト機器110に送信する。   When the command from the host device 110 indicates writing data to the flash memory 400 (data transfer command), the Host IF 210 outputs the data to be written to the flash memory 400 and the data transfer command to the session key encryption / decryption unit 220. Further, when the command from the host device 110 indicates reading of data from the flash memory 400 (data acquisition command), the Host IF 210 outputs the data acquisition command to the Flash IF 240, and the data read from the flash memory 400 is output. Transmit to the host device 110.

また、Host IF210は、ホスト機器110からリセット要求コマンドを受信すると、このリセット要求コマンドを鍵生成部250およびSCC IF270に出力する。   In addition, when receiving a reset request command from the host device 110, the Host IF 210 outputs the reset request command to the key generation unit 250 and the SCC IF 270.

ここで、「リセット要求コマンド」とは、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 SDC 200 and the SCC 300. The reset request command will be described in detail later in the operation description.

第1の暗復号部としてのセッション鍵暗復号部220は、Host IF210を介してホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。このセッション鍵Kssは、SCC300の鍵記憶部310が保持するアクセス管理情報に、アクセス領域指定コマンドにより指定される領域と対応付けられて格納されている。したがって、セッション鍵Kssは、フラッシュメモリ400のアクセス領域指定コマンドにより指定される領域により異なりうる。アクセス管理情報に格納されるセッション鍵Kssについては、後で詳細に説明する。   The session key encryption / decryption unit 220 serving as the first encryption / decryption unit encrypts / decrypts data transmitted / received to / from the host device 110 via the Host IF 210 using the session key Kss. The session key Kss is stored in the access management information held by the key storage unit 310 of the SCC 300 in association with the area designated by the access area designation command. Therefore, the session key Kss may differ depending on the area specified by the access area specifying command of the flash memory 400. The session key Kss stored in the access management information will be described in detail later.

セッション鍵暗復号部220は、データの書き込み時には、Host IF210を介してホスト機器110から送信された、フラッシュメモリ400に書き込むべきデータをセッション鍵Kssにより復号化する。また、セッション鍵暗復号部220は、セッション鍵Kssにより復号化されたデータを格納鍵暗復号部230に出力する。   When writing data, the session key encryption / decryption unit 220 decrypts data to be written to the flash memory 400 transmitted from the host device 110 via the Host IF 210 with the session key Kss. Further, the session key encryption / decryption unit 220 outputs the data decrypted with the session key Kss to the storage key encryption / decryption unit 230.

セッション鍵暗復号部220は、データの読み出し時には、フラッシュメモリ400から読み出されたデータをセッション鍵Kssにより暗号化する。また、セッション鍵暗復号部220は、セッション鍵Kssにより暗号化されたデータをHost IF210を介してホスト機器110に送信する。   The session key encryption / decryption unit 220 encrypts the data read from the flash memory 400 with the session key Kss when reading the data. In addition, the session key encryption / decryption unit 220 transmits data encrypted with the session key Kss to the host device 110 via the Host IF 210.

第2の暗復号部としての格納鍵暗復号部230は、Flash IF240を介してフラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。この格納鍵Kstは、SCC300の鍵記憶部310が保持するアクセス管理情報に、アクセス領域指定コマンドにより指定される領域と対応付けられて格納されている。したがって、格納鍵Kstは、フラッシュメモリ400のアクセス領域指定コマンドにより指定される領域により異なりうる。アクセス管理情報に格納される格納鍵Kstについては、後に詳細に説明する。   The storage key encryption / decryption unit 230 as the second encryption / decryption unit encrypts / decrypts data to be written to the flash memory 400 or data to be read from the flash memory 400 via the Flash IF 240 using the storage key Kst. This storage key Kst is stored in the access management information held by the key storage unit 310 of the SCC 300 in association with the area designated by the access area designation command. Therefore, the storage key Kst may differ depending on the area specified by the access area specifying command of the flash memory 400. The storage key Kst stored in the access management information will be described in detail later.

格納鍵暗復号部230は、データの書き込み時には、セッション鍵暗復号部220から入力された、フラッシュメモリ400への書き込みデータを格納鍵Kstにより暗号化する。また、格納鍵暗復号部230は、格納鍵Kstにより暗号化された書き込みデータを、Flash IF240を介して、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。   When writing data, the storage key encryption / decryption unit 230 encrypts the write data to the flash memory 400 input from the session key encryption / decryption unit 220 with the storage key Kst. The storage key encryption / decryption unit 230 transmits the write data encrypted by the storage key Kst to the area specified by the access area specification command of the flash memory 400 via the Flash IF 240.

格納鍵暗復号部230は、データの読み出し時には、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出され、Flash IF240を介して入力されたデータを、格納鍵Kstにより復号化する。また、格納鍵暗復号部230は、格納鍵Kstにより復号化された読み出しデータをセッション鍵暗復号部220に出力する。   When reading data, the storage key encryption / decryption unit 230 uses the storage key Kst to decrypt data read from the area specified by the access area specification command of the flash memory 400 and input via the Flash IF 240. The storage key encryption / decryption unit 230 outputs the read data decrypted with the storage key Kst to the session key encryption / decryption unit 220.

Flash IF240は、フラッシュメモリ400との間で各種のデータを送受信する。具体的には、Flash IF240は、格納鍵暗復号部230から入力された、フラッシュメモリ400に書き込むべきデータを、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。また、Flash IF240は、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを受信して、受信データを格納鍵暗復号部230に出力する。   The Flash IF 240 transmits / receives various data to / from the flash memory 400. Specifically, the Flash IF 240 transmits data to be written to the flash memory 400 input from the storage key encryption / decryption unit 230 to an area designated by the access area designation command of the flash memory 400. Further, the Flash IF 240 receives data read from the area specified by the access area specifying command of the flash memory 400 and outputs the received data to the storage key encryption / decryption unit 230.

復号化セキュリティ鍵生成部としての鍵生成部250は、SDC200とSCC300との間で送受信されるデータを暗復号化するための暗号鍵Ksを生成する。具体的には、鍵生成部250は、鍵生成部250内のメモリ(図示せず)に格納された暗号鍵Kpsを用いて、リセット処理時にSCC300から送信されるATR(Answer to Reset)データに設定された乱数Rnを暗号化することにより、暗号鍵Ksを生成する。鍵生成部250は、生成された暗号鍵Ksをアクセス管理情報復号部260に設定する。   The key generation unit 250 as a decryption security key generation unit generates an encryption key Ks for encrypting / decrypting data transmitted / received between the SDC 200 and the SCC 300. Specifically, the key generation unit 250 uses the encryption key Kps stored in a memory (not shown) in the key generation unit 250 as ATR (Answer to Reset) data transmitted from the SCC 300 during the reset process. An encryption key Ks is generated by encrypting the set random number Rn. The key generation unit 250 sets the generated encryption key Ks in the access management information decryption unit 260.

鍵生成部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 key generation unit 250 uses the authentication key Km stored in a memory (not shown) in the key generation unit 250 to set the ATR data transmitted from the SCC 300 during the reset process. An authenticator (MAC1) is generated from the random number Rn. In addition, the key generation unit 250 transmits the generated authenticator (MAC1) and a verification command for the authenticator (MAC1) to the SCC 300 via the SCC IF 270. The encryption key Kps and the authentication key Km may be stored as program codes in a ROM (Read Only Memory) (not shown) in the SDC 200.

セキュリティ鍵復号部としてのアクセス管理情報復号部260は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を復号化する。   The access management information decryption unit 260 as a security key decryption unit decrypts various information transmitted and received between the SDC 200 and the SCC 300 using the encryption key Ks generated by the key generation unit 250.

アクセス管理情報復号部260は、暗号鍵Ksを用いて、SCC IF270を介してSCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、セッション鍵Kssとその暗号アルゴリズムを示す情報、および格納鍵Kstとその暗号アルゴリズムを示す情報が含まれる。   The access management information decryption unit 260 decrypts the encrypted access management information corresponding to the area designated by the access area designation command transmitted from the SCC 300 via the SCC IF 270 using the encryption key Ks. The encrypted access management information includes, for example, an area number, a physical address, an access length, information for specifying an area to be accessed in the flash memory 400 such as an ID of an application that owns the area, a session key Kss and its encryption algorithm. Information indicating the storage key Kst and its encryption algorithm.

アクセス管理情報復号部260は、復号化されたセッション鍵Kssを、セッション鍵暗復号部220に設定する。また、アクセス管理情報復号部260は、復号化された格納鍵Kstを、格納鍵暗復号部230に設定する。また、アクセス管理情報復号部260は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF240に設定する。   The access management information decryption unit 260 sets the decrypted session key Kss in the session key encryption / decryption unit 220. Further, the access management information decryption unit 260 sets the decrypted storage key Kst in the storage key encryption / decryption unit 230. Further, the access management information decoding unit 260 sets information for specifying an area to be accessed in the flash memory 400 in the Flash IF 240.

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 300. Specifically, the SCC IF 270 transmits various commands such as an access area designation command and a reset request command input from the host device 110 via the Host IF 210 to the SCC 300. Further, the SCC IF 270 receives ATR data, encrypted access management information, and the like transmitted from the SDC IF 340 of the SCC 300. Further, the SCC IF 270 outputs the received ATR data to the key generation unit 250, and outputs the received encrypted access management information to the access management information decryption unit 260.

なお、SCC IF270としては、ISO/IEC7816規格に準拠したインターフェースを用いることができる。   As the SCC IF 270, an interface conforming to the ISO / IEC 7816 standard can be used.

SCC300は、ICカードやスマートカードで用いられるマイコンチップであり、スマートカードアプリケーションを実行するためのCPU(Central Processing Unit)およびEEPROM(Electrically Erasable Programmable Read Only Memory)やFeRAM(Ferroelectric Random Access Memory)などの不揮発性メモリを有する。また、SCC300は、セキュリティ処理に必要な暗号機能等を持つ。   The SCC 300 is a microcomputer chip used in IC cards and smart cards, such as a CPU (Central Processing Unit) and EEPROM (Electrically Erasable Programmable Read Only Memory) and FeRAM (Ferroelectric Random Access Memory) for executing smart card applications. It has a non-volatile memory. Further, the SCC 300 has an encryption function necessary for security processing.

SCC300は、鍵記憶部310、鍵生成部320、アクセス管理情報暗号部330、およびSDC IF340を備える。   The SCC 300 includes a key storage unit 310, a key generation unit 320, an access management information encryption unit 330, and an SDC IF 340.

鍵記憶部310は、アクセス管理情報を保持する。アクセス管理情報には、フラッシュメモリ400のアクセスすべき領域を特定するための情報、セッション鍵Kssとその暗号アルゴリズムとからなるセッション暗号情報、および格納鍵Kstとその暗号アルゴリズムとからなる格納暗号情報が、それぞれ対応付けられて格納されている。   The key storage unit 310 holds access management information. The access management information includes information for specifying an area to be accessed in the flash memory 400, session encryption information including a session key Kss and its encryption algorithm, and storage encryption information including a storage key Kst and its encryption algorithm. Are stored in association with each other.

ここで、鍵記憶部310が保持するアクセス管理情報について、図2を用いて具体的に説明する。図2は、アクセス管理情報の一例を示す図である。   Here, the access management information held by the key storage unit 310 will be specifically described with reference to FIG. FIG. 2 is a diagram illustrating an example of access management information.

図2において、アクセス管理情報500は、アクセスすべき領域のエリア番号を示すエリア番号510と、アクセスすべき領域の物理アドレスを示す物理アドレス520と、アクセスすべき領域を所有するアプリケーションのIDを示すアプリケーションID530と、アクセスすべき領域に対して使用されるセッション暗号情報を示すセッション暗号情報540と、アクセスすべき領域に対して使用される格納暗号情報を示す格納暗号情報550とを含む。また、セッション暗号情報540は、セッション暗号に使用されるセッション鍵541とその暗号アルゴリズム542を含み、格納暗号情報550は、格納暗号に使用される格納鍵551とその暗号アルゴリズム552を含む。   In FIG. 2, access management information 500 indicates an area number 510 indicating the area number of the area to be accessed, a physical address 520 indicating the physical address of the area to be accessed, and the ID of the application that owns the area to be accessed. It includes an application ID 530, session encryption information 540 indicating session encryption information used for an area to be accessed, and storage encryption information 550 indicating storage encryption information used for an area to be accessed. The session encryption information 540 includes a session key 541 used for session encryption and its encryption algorithm 542, and the storage encryption information 550 includes a storage key 551 used for storage encryption and its encryption algorithm 552.

例えば、“エリア1”は、物理アドレス“0x00000000”に存在し、アプリケーションID“AP1”により所有されている。また、“エリア1”にアクセスする場合に使用されるセッション鍵は“Kss1”であり、その暗号アルゴリズムは“T−DES CBC”である。また、“エリア1”にデータを格納する場合に使用される格納鍵は“Kst1”であり、その暗号アルゴリズムは“AES”である。   For example, “area 1” exists at the physical address “0x00000000” and is owned by the application ID “AP1”. The session key used when accessing “area 1” is “Kss1”, and the encryption algorithm is “T-DES CBC”. Further, the storage key used when storing data in “area 1” is “Kst1”, and the encryption algorithm is “AES”.

また、“エリア2”は、物理アドレス“0x00002000”に存在し、アプリケーションID“AP1”により所有されている。また、“エリア2”にアクセスする場合に使用されるセッション鍵は“Kss2”であり、その暗号アルゴリズムは“T−DES CBC”である。また、“エリア2”にデータを格納する場合に使用される格納鍵は“Kst1”であり、その暗号アルゴリズムは“AES”である。   “Area 2” exists at the physical address “0x00002000” and is owned by the application ID “AP1”. The session key used when accessing “area 2” is “Kss2”, and the encryption algorithm is “T-DES CBC”. Also, the storage key used when storing data in “area 2” is “Kst1”, and the encryption algorithm is “AES”.

また、“エリア3”は、物理アドレス“0x00004000”に存在し、アプリケーションID“AP2”により所有されている。また、“エリア3”にアクセスする場合には、セッション鍵は使用されない。また、“エリア3”にデータを格納する場合に使用される格納鍵は“Kst2”であり、その暗号アルゴリズムは“AES”である。   “Area 3” exists at the physical address “0x00004000” and is owned by the application ID “AP2”. Further, when accessing “area 3”, the session key is not used. The storage key used when storing data in “area 3” is “Kst2”, and the encryption algorithm is “AES”.

このように、アクセス管理情報500には、セッション暗号情報および格納暗号情報が、フラッシュメモリ400の各エリア番号に対応付けられて格納されている。   Thus, in the access management information 500, session encryption information and stored encryption information are stored in association with each area number of the flash memory 400.

暗号化セキュリティ鍵生成部としての鍵生成部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 SDC 200 via the SDC IF 340, the key generation unit 320 as the encryption security key generation unit generates a random number Rn and generates ATR data in which the random number Rn is set. Further, the key generation unit 320 transmits the generated ATR data to the SDC 200 via the SDC IF 340. Here, the key generation unit 320 can set the generated random number Rn to, for example, “Historical Character” of 15 bytes of ATR data.

鍵生成部320は、上記ATRデータを生成および送信するとともに、鍵生成部320内のメモリ(図示せず)に格納された認証鍵Kmを用いて、リセット要求コマンドの受信時に生成された乱数Rnから認証子(MAC2)を生成する。   The key generation unit 320 generates and transmits the ATR data, and uses the authentication key Km stored in a memory (not shown) in the key generation unit 320 to generate a random number Rn generated when the reset request command is received. Generates an authenticator (MAC2).

鍵生成部320は、SDC200の鍵生成部250で生成された認証子(MAC1)と認証子(MAC2)とを比較して、これらの認証子が正しい場合には、SCC300とSDC200との間で送受信されるデータを暗復号化するための暗号鍵Ksを生成する。具体的には、鍵生成部320は、鍵生成部320内のメモリ(図示せず)に格納された暗号鍵Kpsを用いて、リセット要求コマンドの受信時に生成された乱数Rnを暗号化することにより、暗号鍵Ksを生成する。また、鍵生成部320は、生成した暗号鍵Ksをアクセス管理情報暗号部330に設定する。なお、暗号鍵Kpsおよび認証鍵Kmは、例えばSCC300の製造時に鍵記憶部310に設定されている。   The key generation unit 320 compares the authenticator (MAC1) and the authenticator (MAC2) generated by the key generation unit 250 of the SDC 200. If these authenticators are correct, the key generator 320 determines whether the authenticator is correct between the SCC 300 and the SDC 200. An encryption key Ks for encrypting / decrypting transmitted / received data is generated. Specifically, the key generation unit 320 uses the encryption key Kps stored in the memory (not shown) in the key generation unit 320 to encrypt the random number Rn generated when the reset request command is received. Thus, the encryption key Ks is generated. Further, the key generation unit 320 sets the generated encryption key Ks in the access management information encryption unit 330. The encryption key Kps and the authentication key Km are set in the key storage unit 310 when the SCC 300 is manufactured, for example.

ここで、上述の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 key generation unit 250 of the SDC 200 are the same as the encryption key Kps and the authentication key Km stored in the memory in the key generation unit 320 of the SCC 300. is there. Therefore, when the authenticator (MAC1) and the authenticator (MAC2) are correct authenticators, the encryption key Ks generated by the key generation unit 250 of the SDC 200 and the encryption key Ks generated by the key generation unit 320 of the SCC 300 Are the same. Thereby, the encryption key Ks can be shared between the SDC 200 and the SCC 300, and the safety and reliability of data transmission / reception between the SDC 200 and the SCC 300 can be improved.

セキュリティ鍵暗号部としてのアクセス管理情報暗号部330は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。具体的には、まず、アクセス管理情報暗号部330は、アクセス領域指定コマンドに基づいて、アクセスすべき領域のエリア番号またはアクセスすべき領域の物理アドレスを特定する。そして、アクセス管理情報暗号部330は、特定されたエリア番号または物理アドレス、ならびにこれらに対応するセッション暗号情報および格納暗号情報などを、アクセス管理情報として取得する。   When the access management information encryption unit 330 as the security key encryption unit receives the access area designation command transmitted from the SDC 200, the access management information encryption unit 330 obtains the access management information corresponding to the access area designation command from the access management information held by the key storage unit 310. get. Specifically, first, the access management information encryption unit 330 specifies the area number of the area to be accessed or the physical address of the area to be accessed based on the access area designation command. Then, the access management information encryption unit 330 acquires the specified area number or physical address, and session encryption information and stored encryption information corresponding to these as access management information.

アクセス管理情報暗号部330は、鍵生成部320で生成された暗号鍵Ksを用いて、取得されたアクセス管理情報を暗号化する。また、アクセス管理情報暗号部330は、暗号化されたアクセス管理情報を、SDC IF340を介してSDC200に送信する。   The access management information encryption unit 330 encrypts the acquired access management information using the encryption key Ks generated by the key generation unit 320. Further, the access management information encryption unit 330 transmits the encrypted access management information to the SDC 200 via the SDC IF 340.

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 200. Specifically, the SDC IF 340 transmits the ATR data generated by the key generation unit 320, the access management information encrypted by the access management information encryption unit 330, and the like to the SDC 200. The SDC IF 340 receives various commands such as an access area designation command and a reset request command transmitted from the SCC IF 270 of the SCC 200. The SDC IF 340 outputs the received access area designation command to the access management information encryption unit 330 and outputs the received reset request command to the key generation unit 320.

なお、SDC IF340としては、ISO/IEC7816規格に準拠したインターフェースを用いることができる。これにより、標準的なスマートカードチップを、本発明のSCC300として適用することができる。   As the SDC IF 340, an interface conforming to the ISO / IEC7816 standard can be used. Thereby, a standard smart card chip can be applied as the SCC 300 of the present invention.

フラッシュメモリ400は、不揮発性の半導体メモリを記憶媒体とするメモリチップである。フラッシュメモリ400は、データ転送コマンドやデータ取得コマンドなどのフラッシュメモリコマンドにより、データの書き込みおよび読み出しが可能となっている。   The flash memory 400 is a memory chip that uses a nonvolatile semiconductor memory as a storage medium. The flash memory 400 can write and read data by flash memory commands such as a data transfer command and a data acquisition command.

フラッシュメモリ400は、通常領域410とセキュリティ保護領域420とを有する。また、セキュリティ保護領域420は、複数のエリアブロック421,422,423,424で区切られている。   The flash memory 400 has a normal area 410 and a security protection area 420. The security protection area 420 is divided by a plurality of area blocks 421, 422, 423, and 424.

通常領域410は、セキュリティ処理の必要がない標準データの書き込みおよび読み出しを行うための領域である。ホスト機器110からのアクセス領域指定コマンドにより通常領域410が指定された場合、ホスト機器110からのデータが通常領域410に書き込まれ、または通常領域410に格納されたデータが読み出されてホスト機器110に送信される。なお、通常領域410へのデータの書き込み、および通常領域410からのデータの読み出しを行う場合、セッション鍵Kssおよび格納鍵Kstによる暗復号化を行うか否かは任意である。   The normal area 410 is an area for writing and reading standard data that does not require security processing. When the normal area 410 is designated by the access area designation command from the host device 110, the data from the host device 110 is written into the normal area 410, or the data stored in the normal area 410 is read out and the host device 110 is read out. Sent to. Note that when data is written to the normal area 410 and data is read from the normal area 410, whether or not to perform encryption / decryption with the session key Kss and the storage key Kst is arbitrary.

セキュリティ保護領域420は、例えば個人情報や機密情報などの秘匿性の高い情報の書き込みおよび読み出しを行うための拡張メモリ領域である。セキュリティ保護領域420を構成する各エリアブロックは、アクセス領域指定コマンドにより指定可能な最小の領域単位である。また、セキュリティ保護領域420を構成する各エリアブロックは、例えばSCC300のアプリケーションごとに割り当てることができる。なお、ここではセキュリティ保護領域420が4つのエリアブロック421,422,423,424で区切られているが、セキュリティ保護領域420を構成するエリアブロックの数は特に限定されず、任意に設定することができる。   The security protection area 420 is an extended memory area for writing and reading highly confidential information such as personal information and confidential information. Each area block constituting the security protection area 420 is a minimum area unit that can be designated by an access area designation command. Each area block constituting the security protection area 420 can be assigned for each application of the SCC 300, for example. Here, the security protection area 420 is divided into four area blocks 421, 422, 423, and 424. However, the number of area blocks constituting the security protection area 420 is not particularly limited, and can be arbitrarily set. it can.

セキュリティ保護領域420に書き込まれるデータおよびセキュリティ保護領域420から読み出されるデータは、各エリアブロックに対応付けられたセッション鍵Kssにより暗号化された状態で、メモリカード100とホスト機器110との間を送受信される。また、セキュリティ保護領域420に格納されるデータは、各エリアブロックに対応付けられた格納鍵Kstにより暗号化された状態で各エリアブロックに格納される。なお、アプリケーションとホスト機器110との間の用途に応じた取り決めによりセッション鍵Kssによるデータの暗号を行わないモードが設定されている場合、セッション鍵Kssによる暗号化は行われない。   Data written to the security protection area 420 and data read from the security protection area 420 are transmitted and received between the memory card 100 and the host device 110 in a state encrypted with the session key Kss associated with each area block. Is done. The data stored in the security protection area 420 is stored in each area block in an encrypted state with the storage key Kst associated with each area block. Note that when a mode in which data encryption with the session key Kss is not performed is set according to an agreement between the application and the host device 110, encryption with the session key Kss is not performed.

以上、メモリカード100のSDC200、SCC300、およびフラッシュメモリ400の構成について説明した。   The configuration of the SDC 200, the SCC 300, and the flash memory 400 of the memory card 100 has been described above.

次に、上述のように構成されたメモリカード100の動作について、図3乃至図5を用いて詳細に説明する。   Next, the operation of the memory card 100 configured as described above will be described in detail with reference to FIGS.

まず、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みについて、図3を用いて説明する。   First, the mechanism of authentication and sharing of the encryption key Ks between the SDC 200 and the SCC 300 in the reset process will be described with reference to FIG.

図3は、リセット処理により暗号鍵Ksを生成する場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、ホスト機器110から送信されたリセット要求コマンドによりリセット処理が行われる場合について説明する。   FIG. 3 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when the encryption key Ks is generated by the reset process. Here, a case where reset processing is performed by a reset request command transmitted from the host device 110 will be described.

まず、ホスト機器110は、リセット要求コマンドを生成して、生成したリセット要求コマンドをメモリカード100のSDC200に対して送信する(S1)。SDC200のHost IF210で受信されたこのリセット要求コマンドは、鍵生成部250およびSCC IF270に出力される。また、SCC IF270は、入力されたリセット要求コマンドを、さらにSCC300に送信する(S2)。SCC300のSDC IF340で受信されたリセット要求コマンドは、鍵生成部320に出力される。   First, the host device 110 generates a reset request command and transmits the generated reset request command to the SDC 200 of the memory card 100 (S1). The reset request command received by the Host IF 210 of the SDC 200 is output to the key generation unit 250 and the SCC IF 270. Further, the SCC IF 270 further transmits the input reset request command to the SCC 300 (S2). The reset request command received by the SDC IF 340 of the SCC 300 is output to the key generation unit 320.

鍵生成部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 key generation unit 320 receives the reset request command and determines to perform the reset process, the key generation unit 320 generates a random number Rn (S3). Further, the key generation unit 320 generates ATR data in which the random number Rn generated in step S3 is set according to the ISO / IEC 7816 standard, and transmits the generated ATR data to the SDC 200 via the SDC IF 340 (S4). At this time, the key generation unit 320 sets the random number Rn to, for example, “Historical Character” of 15 bytes of ATR data. Further, the ATR data received by the SCC IF 270 of the SDC 200 is output to the key generation unit 250.

鍵生成部250は、鍵生成部250内部のメモリ(図示せず)に格納された認証鍵Kmを用いて、ATRに設定された乱数Rnから認証子(MAC1)を生成する(S5)。また、鍵生成部250は、生成した認証子(MAC1)を含む検証命令を生成し、この検証命令をSCC300に送信する(S6)。   The key generation unit 250 generates an authenticator (MAC1) from the random number Rn set in the ATR using the authentication key Km stored in a memory (not shown) inside the key generation unit 250 (S5). Further, the key generation unit 250 generates a verification command including the generated authenticator (MAC1), and transmits this verification command to the SCC 300 (S6).

また、鍵生成部250は、上記ステップS5およびステップS6の処理を行うとともに、鍵生成部250内部のメモリ(図示せず)に格納された暗号鍵Kpsを用いてATRデータに設定された乱数Rnを暗号化することにより、暗号鍵Ksを生成する(S7)。   In addition, the key generation unit 250 performs the processes of steps S5 and S6, and uses the encryption key Kps stored in the memory (not shown) inside the key generation unit 250 to set the random number Rn set in the ATR data. Is encrypted to generate an encryption key Ks (S7).

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 key generation unit 320 of the SCC 300 receives the verification command including the authenticator (MAC1) from the SDC 200, the key generation unit 320 uses the authentication key Km stored in the memory (not shown) inside the key generation unit 320 in step S3. An authenticator (MAC2) is generated from the generated random number Rn (S8). Further, the key generation unit 320 compares the authenticators (MAC1) and the authenticators (MAC2), and confirms the validity of these authenticators (S9). If the authenticator (MAC1) and authenticator (MAC2) are correct, the key generation unit 320 generates the key generation unit 320 in step S3 using the encryption key Kps stored in the memory (not shown) inside the key generation unit 320. The encryption key Ks is generated by encrypting the random number Rn (S10).

ここで、鍵生成部320は、リセット処理のたびに乱数Rnを生成するので、乱数Rnを用いて生成される暗号鍵Ksは、リセット処理のたびに異なりうる。したがって、SDC200およびSCC300は、リセット処理のたびに異なる暗号鍵Ksを生成し、生成した暗号鍵Ksを用いて、セキュリティ処理に関する情報、例えばセキュリティ保護領域420の各エリアブロックのアクセス管理情報を暗復号化して送受信することになる。これにより、SDC200のなりすましや盗聴による、SDC200とSCC300との間で送受信されるセキュリティ処理に関する情報の不正傍受を防止することができる。すなわち、セキュリティ保護領域420への不正アクセスの危険性を低減させることができる。   Here, since the key generation unit 320 generates the random number Rn every time the reset process is performed, the encryption key Ks generated using the random number Rn may be different every time the reset process is performed. Therefore, the SDC 200 and the SCC 300 generate a different encryption key Ks each time reset processing is performed, and the generated encryption key Ks is used to encrypt / decrypt information related to security processing, for example, access management information for each area block in the security protection area 420. Will be sent and received. As a result, it is possible to prevent unauthorized interception of information related to security processing transmitted / received between the SDC 200 and the SCC 300 due to spoofing or wiretapping of the SDC 200. That is, the risk of unauthorized access to the security protection area 420 can be reduced.

なお、図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 host device 110 has been described, but the present invention is not limited to this. For example, the reset processing may be automatically performed, for example, at a timing when the memory card 100 detects power-on or when the memory card 100 detects connection of the host device 110. Further, the reset process may be performed every predetermined time set in advance.

また、図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 SDC 200 and the SCC 300 is defined, and the SCC 300 that has received this command returns a random number Rn as a response, and the above-described authentication process and encryption key Ks generation process May be performed.

以上、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みについて説明した。   The mechanism of authentication and sharing of the encryption key Ks between the SDC 200 and the SCC 300 in the reset process has been described above.

次に、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について、図4を用いて説明する。   Next, a data write operation to the security protection area 420 of the flash memory 400 will be described with reference to FIG.

図4は、メモリカード100のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック421にデータを書き込む場合について説明する。また、簡単のため、エリアブロック421は、図2に示すアクセス管理情報の“エリア1”に対応すると仮定する。   FIG. 4 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when data is written to the security protection area 420 of the memory card 100. Here, a case where data is written to the area block 421 of the security protection area 420 will be described. For simplicity, it is assumed that the area block 421 corresponds to “area 1” of the access management information shown in FIG.

図4において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS11〜ステップS16)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS17〜ステップS21)との2段階の処理により行われる。   In FIG. 4, data is written to the security protection area 420 in order to set various information corresponding to the area in which data is written, access area designation command processing (steps S11 to S16), and to actually write data. The data transfer command process (steps S17 to S21) is performed in two steps.

[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[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 host device 110 transmits an access area designation command in which an area number, a block address, and a block length for specifying an area to be accessed are described to the SDC 200 (S11). The access area designation command received by the Host IF 210 of the SDC 200 is output to the SCC IF 270. Further, the SCC IF 270 further transmits the input access area designation command to the SCC 300 (S12). The access area designation command received by the SDC IF 340 of the SCC 300 is output to the access management information encryption unit 330.

アクセス管理情報暗号部330は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S13)。この例では、アクセス管理情報暗号部330は、エリアブロック421(エリア1)に対応する物理アドレス0x00000000、アクセス長、セッション鍵Kss1、および格納鍵Kst1を、アクセス管理情報として取得する。   When the access management information encryption unit 330 receives the access area designation command, the access management information corresponding to the access area designation command, for example, the physical address of the area to be accessed, the access length, from the access management information held by the key storage unit 310 The session key Kss and the storage key Kst are acquired (S13). In this example, the access management information encryption unit 330 acquires the physical address 0x00000000, access length, session key Kss1, and storage key Kst1 corresponding to the area block 421 (area 1) as access management information.

アクセス管理情報暗号部330は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS13で取得したアクセス管理情報、つまりエリアブロック421に対応する物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを暗号化する。また、アクセス管理情報暗号部330は、暗号化されたアクセス管理情報をSDC200に送信する(S14)。SDC200のSCC IF270で受信された暗号化アクセス管理情報は、アクセス管理情報復号部260に出力される。   The access management information encryption unit 330 uses the encryption key Ks generated by the key generation unit 320 to obtain the access management information acquired in step S13, that is, the physical address corresponding to the area block 421, the access length, the session key Kss, and The storage key Kst is encrypted. The access management information encryption unit 330 transmits the encrypted access management information to the SDC 200 (S14). The encrypted access management information received by the SCC IF 270 of the SDC 200 is output to the access management information decryption unit 260.

SDC200のアクセス管理情報復号部260は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報復号部260は、アクセス先、つまりエリアブロック421に対応する物理アドレス0x00000000、アクセス長、セッション鍵Kss1、および格納鍵Kst1を取得する(S15)。   The access management information decryption unit 260 of the SDC 200 decrypts the encrypted access management information from the SCC 300 using the encryption key Ks generated by the key generation unit 250. As a result, the access management information decryption unit 260 acquires the physical address 0x00000000, access length, session key Kss1, and storage key Kst1 corresponding to the access destination, that is, the area block 421 (S15).

そして、アクセス管理情報復号部260は、ステップS15で取得したセッション鍵Kss1を、セッション鍵暗復号部220に設定し、ステップS15で取得した格納鍵Kst1を、格納鍵暗復号部230に設定する。また、アクセス管理情報復号部260は、ステップS15で取得した物理アドレスおよびアクセス長を、Flash IF240に設定する(S16)。   Then, the access management information decryption unit 260 sets the session key Kss1 acquired in step S15 in the session key encryption / decryption unit 220, and sets the storage key Kst1 acquired in step S15 in the storage key encryption / decryption unit 230. Further, the access management information decoding unit 260 sets the physical address and access length acquired in step S15 in the Flash IF 240 (S16).

[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.

まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss1を用いて、エリアブロック421に書き込むデータを暗号化する(S17)。ここで、ホスト機器110は、予め、メモリカード100との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。   First, the host device 110 encrypts data to be written in the area block 421 using the session key Kss, for example, the session key Kss1 (S17). Here, the host device 110 shares the session key Kss with the memory card 100 in advance. Further, for example, it is possible to share a session key by using a key exchange process such as Diffe-Helman.

また、ホスト機器110は、セッション鍵Kss1により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S18)。SDC200のHost IF210で受信された書き込みデータは、セッション鍵暗復号部220に出力される。   In addition, the host device 110 transmits to the SDC 200 a data transfer command instructing data writing together with the write data encrypted by the session key Kss1 (S18). The write data received by the Host IF 210 of the SDC 200 is output to the session key encryption / decryption unit 220.

セッション鍵暗復号部220は、ステップS16で設定されたセッション鍵Kss1を用いて、ホスト機器110からの暗号化された書き込みデータを復号化する(S19)。次に、格納鍵暗復号部230は、ステップS16で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S20)。そして、格納鍵Kst1により暗号化された書き込みデータは、Flash IF240を介して、ステップS16でFlash IF240に設定された物理アドレスにより示される領域、例えばエリアブロック421に書き込まれる。   The session key encryption / decryption unit 220 decrypts the encrypted write data from the host device 110 using the session key Kss1 set in step S16 (S19). Next, the storage key encryption / decryption unit 230 encrypts the decrypted write data using the storage key Kst1 set in step S16 (S20). Then, the write data encrypted with the storage key Kst1 is written to the area indicated by the physical address set in the Flash IF 240 in step S16, for example, the area block 421 via the Flash IF 240.

以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。   The data write operation to the security protection area 420 of the flash memory 400 has been described above.

次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図5を用いて説明する。   Next, a data read operation from the security protection area 420 of the flash memory 400 will be described with reference to FIG.

図5は、メモリカード100のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック421に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック421は、図2に示すアクセス管理情報の“エリア1”に対応すると仮定する。   FIG. 5 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when data is read from the security protection area 420 of the memory card 100. Here, a case where data stored in the area block 421 of the security protection area 420 is read will be described. For simplicity, it is assumed that the area block 421 corresponds to “area 1” of the access management information shown in FIG.

図5において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS11〜ステップS16)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS31〜ステップS36)との2段階の処理により行われる。なお、図5のアクセス領域指定コマンド処理は、前述した図4のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。   In FIG. 5, data is read from the security protection area 420 in order to set various information corresponding to the data reading area (steps S11 to S16) and to actually read the data. The data acquisition command process (steps S31 to S36) is performed in two steps. The access area designation command process in FIG. 5 is the same as the access area designation command process in FIG. 4 described above, so that the description thereof will be omitted and only the data acquisition command process will be explained.

[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S31)。SDC200のHost IF210で受信されたデータ取得コマンドは、Flash IF240に出力される。
[Data acquisition command processing]
First, the host device 110 transmits a data acquisition command for instructing data reading to the SDC 200 (S31). The data acquisition command received by the Host IF 210 of the SDC 200 is output to the Flash IF 240.

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 / decryption unit 230.

格納鍵暗復号部230は、ステップS16で設定された格納鍵Kst1を用いて、エリアブロック421から読み出されたデータを復号化する(S33)。次に、セッション鍵暗復号部220は、ステップS16で設定されたセッション鍵Kss1を用いて、復号化された読み出しデータを暗号化する(S34)。そして、セッション鍵Kss1により暗号化された読み出しデータは、Host IF210を介してホスト機器110に送信される(S35)。   The storage key encryption / decryption unit 230 decrypts the data read from the area block 421 using the storage key Kst1 set in step S16 (S33). Next, the session key encryption / decryption unit 220 encrypts the decrypted read data using the session key Kss1 set in step S16 (S34). Then, the read data encrypted with the session key Kss1 is transmitted to the host device 110 via the Host IF 210 (S35).

ホスト機器110は、セッション鍵Kss1を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S36)。   The host device 110 acquires plaintext read data by decrypting the encrypted read data from the SDC 200 using the session key Kss1 (S36).

以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。   The operation for reading data from the security protection area 420 of the flash memory 400 has been described above.

このように、本実施の形態によれば、セキュリティ保護領域420へのアクセスデータのセッション鍵Kssによる暗復号化および格納鍵Kstによる暗復号化をSDC200で行うので、セキュリティ処理におけるSDC200とSCC300との間の通信回数および送受信されるデータの量を削減することができる。これにより、セキュリティ保護領域420へのアクセスを高速化することができる。   As described above, according to the present embodiment, the encryption / decryption of the access data to the security protection area 420 by the session key Kss and the encryption / decryption by the storage key Kst are performed by the SDC 200, so the SDC 200 and the SCC 300 in the security process It is possible to reduce the number of communications between them and the amount of data transmitted and received. Thereby, the access to the security protection area 420 can be speeded up.

また、セッション鍵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 SCC 300, and the encryption key Ks shared between the SDC 200 and the SCC 300 when a command for performing security processing, for example, an access area designation command is received. Since it is encrypted and transmitted to the SDC 200, unauthorized interception of the session key Kss and the storage key Kst due to spoofing or wiretapping of the SDC 200 can be prevented. Thereby, the risk of unauthorized access to the security protection area 420 can be reduced.

さらに、SDC200およびSCC300は、適宜リセット処理を行うことで、お互いを認証し合い、共有される暗号鍵Ksを生成し直すので、暗号鍵Ksの安全性および信頼性を向上させることができる。   Furthermore, since the SDC 200 and the SCC 300 appropriately perform reset processing to mutually authenticate each other and regenerate the shared encryption key Ks, the safety and reliability of the encryption key Ks can be improved.

(実施の形態2)
本実施の形態では、外部機器110との間で伝送されるデータの暗復号処理をSDC200に設けられたセッション鍵暗復号部610が行い、フラッシュメモリ400との間で伝送されるデータの暗復号処理をSCC300に設けられた格納鍵暗復号部660が行うように構成されているメモリカード600について説明する。
(Embodiment 2)
In the present embodiment, the session key encryption / decryption unit 610 provided in the SDC 200 performs encryption / decryption processing of data transmitted to / from the external device 110, and encryption / decryption of data transmitted to / from the flash memory 400 is performed. The memory card 600 configured so that the storage key encryption / decryption unit 660 provided in the SCC 300 performs the process will be described.

図6は、本発明の実施の形態2に係るメモリカード600の構成を示すブロック図である。図1と同一の構成部分には同一の符号を付して重複箇所の説明を省略する。また、図1の構成部分に付加的な機能を有する構成部分については、その付加的な機能についてのみ説明するものとする。   FIG. 6 is a block diagram showing the configuration of the memory card 600 according to Embodiment 2 of the present invention. The same components as those in FIG. 1 are denoted by the same reference numerals, and description of overlapping portions is omitted. Further, only the additional functions of the components having additional functions in the components of FIG. 1 will be described.

図6において、メモリカード600のSDC200は、セッション鍵暗復号部610、アクセス管理情報暗復号部620、Flash IF630およびSCC IF640を備える。   6, the SDC 200 of the memory card 600 includes a session key encryption / decryption unit 610, an access management information encryption / decryption unit 620, a Flash IF 630, and an SCC IF 640.

セッション鍵暗復号部610は、Host IF210を介してホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。   The session key encryption / decryption unit 610 encrypts / decrypts data transmitted / received to / from the host device 110 via the Host IF 210 using the session key Kss.

セッション鍵暗復号部610は、データの書き込み時には、ホスト機器110から送信されたフラッシュメモリ400への書き込みデータを、セッション鍵Kssにより復号化する。また、セッション鍵暗復号部610は、復号化された書き込みデータを、アクセス管理情報暗復号部620に出力する。   When writing data, the session key encryption / decryption unit 610 decrypts the write data to the flash memory 400 transmitted from the host device 110 with the session key Kss. In addition, session key encryption / decryption unit 610 outputs the decrypted write data to access management information encryption / decryption unit 620.

セッション鍵暗復号部610は、データの読み出し時には、アクセス管理情報暗復号部620から入力されたフラッシュメモリ400からの読み出しデータを、セッション鍵Kssにより暗号化する。また、セッション鍵暗復号部610は、暗号化された読み出しデータを、Host IF210を介してホスト機器110に送信する。   When reading data, the session key encryption / decryption unit 610 encrypts the read data from the flash memory 400 input from the access management information encryption / decryption unit 620 with the session key Kss. In addition, the session key encryption / decryption unit 610 transmits the encrypted read data to the host device 110 via the Host IF 210.

アクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。   The access management information encryption / decryption unit 620 encrypts / decrypts various types of information transmitted / received between the SDC 200 and the SCC 300 using the encryption key Ks generated by the key generation unit 250.

アクセス管理情報暗復号部620は、データの書き込み時には、暗号鍵Ksを用いて、セッション鍵暗復号部610から入力された書き込みデータを暗号化する。また、アクセス管理情報暗復号部620は、暗号鍵Ksで暗号化された書き込みデータを、SCC IF640を介してSCC300に送信する。   When data is written, the access management information encryption / decryption unit 620 encrypts the write data input from the session key encryption / decryption unit 610 using the encryption key Ks. Further, the access management information encryption / decryption unit 620 transmits the write data encrypted with the encryption key Ks to the SCC 300 via the SCC IF 640.

アクセス管理情報暗復号部620は、データの読み出し時には、暗号鍵Ksを用いて、SCC300から入力された読み出しデータを復号化する。また、アクセス管理情報暗復号部620は、復号化された読み出しデータを、セッション鍵暗復号部610に出力する。   The access management information encryption / decryption unit 620 decrypts the read data input from the SCC 300 using the encryption key Ks when reading the data. Also, the access management information encryption / decryption unit 620 outputs the decrypted read data to the session key encryption / decryption unit 610.

アクセス管理情報暗復号部620は、暗号鍵Ksを用いて、SCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、およびセッション鍵Kssとその暗号アルゴリズムを示す情報が含まれる。   The access management information encryption / decryption unit 620 decrypts the encrypted access management information corresponding to the area designated by the access area designation command transmitted from the SCC 300, using the encryption key Ks. The encrypted access management information includes information for specifying an area to be accessed in the flash memory 400 such as an area number, a physical address, an access length, an ID of an application that owns the area, and a session key Kss and its encryption algorithm. Is included.

アクセス管理情報暗復号部620は、復号化されたセッション鍵Kssを、セッション鍵暗復号部610に設定する。また、アクセス管理情報暗復号部620は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF630に設定する。   The access management information encryption / decryption unit 620 sets the decrypted session key Kss in the session key encryption / decryption unit 610. Further, the access management information encryption / decryption unit 620 sets information for specifying an area to be accessed in the flash memory 400 in the Flash IF 630.

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 flash memory 400. Specifically, the Flash IF 630 transmits write data to the flash memory 400 input from the SCC IF 640 to an area designated by the access area designation command of the flash memory 400. Further, the Flash IF 630 receives data read from the area specified by the access area specifying command of the flash memory 400. The Flash IF 630 transmits this read data to the SCC 300 via the SCC IF 640.

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 SCC 300. Specifically, the SCC IF 640 receives write data encrypted with the encryption key Ks input from the access management information encryption / decryption unit 620 and read data encrypted with the storage key Kst input from the Flash IF 630. It transmits to SCC300. The SCC IF 640 receives the write data encrypted with the storage key Kst transmitted from the SDC IF 670 of the SCC 300 and the read data encrypted with the encryption key Ks transmitted from the SDC IF 670 of the SCC 300. Also, the SCC IF 640 outputs the received write data to the Flash IF 630 and outputs the received read data to the access management information encryption / decryption unit 620.

メモリカード600のSCC300は、アクセス管理情報暗復号部650、格納鍵暗復号部660およびSDC IF670を備える。   The SCC 300 of the memory card 600 includes an access management information encryption / decryption unit 650, a storage key encryption / decryption unit 660, and an SDC IF 670.

アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。   The access management information encryption / decryption unit 650 encrypts / decrypts various types of information transmitted / received between the SDC 200 and the SCC 300 using the encryption key Ks generated by the key generation unit 320.

アクセス管理情報暗復号部650は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。また、アクセス管理情報暗復号部650は、取得されたアクセス管理情報に含まれる格納鍵Kstを、格納鍵暗復号部660に設定する。   When the access management information encryption / decryption unit 650 receives the access area designation command transmitted from the SDC 200, the access management information encryption / decryption section 650 acquires access management information corresponding to the access area designation command from the access management information held by the key storage unit 310. Also, the access management information encryption / decryption unit 650 sets the storage key Kst included in the acquired access management information in the storage key encryption / decryption unit 660.

アクセス管理情報暗復号部650は、暗号鍵Ksを用いて、格納鍵Kstを除いたアクセス管理情報を暗号化する。また、アクセス管理情報暗復号部650は、暗号化されたアクセス管理情報を、SDC IF670を介してSDC200に送信する。   The access management information encryption / decryption unit 650 encrypts the access management information excluding the storage key Kst using the encryption key Ks. Further, the access management information encryption / decryption unit 650 transmits the encrypted access management information to the SDC 200 via the SDC IF 670.

アクセス管理情報暗復号部650は、データの書き込み時には、暗号鍵Ksを用いて、SDC200から送信された、暗号鍵Ksで暗号化された書き込みデータを復号化する。また、アクセス管理情報暗復号部650は、復号化された書き込みデータを、格納鍵暗復号部660に出力する。   When writing data, the access management information encryption / decryption unit 650 uses the encryption key Ks to decrypt the write data encrypted from the SDC 200 and encrypted with the encryption key Ks. Also, the access management information encryption / decryption unit 650 outputs the decrypted write data to the storage key encryption / decryption unit 660.

アクセス管理情報暗復号部650は、データの読み出し時には、暗号鍵Ksを用いて、格納鍵暗復号部660から入力された読み出しデータを暗号化する。また、アクセス管理情報暗復号部650は、暗号鍵Ksで暗号化された読み出しデータを、SDC IF670を介してSDC200に送信する。   The access management information encryption / decryption unit 650 encrypts the read data input from the storage key encryption / decryption unit 660 using the encryption key Ks when reading the data. Further, the access management information encryption / decryption unit 650 transmits the read data encrypted with the encryption key Ks to the SDC 200 via the SDC IF 670.

格納鍵暗復号部660は、フラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。   The storage key encryption / decryption unit 660 encrypts / decrypts data to be written to the flash memory 400 or data to be read from the flash memory 400 using the storage key Kst.

格納鍵暗復号部660は、データの書き込み時には、格納鍵Kstを用いて、アクセス管理情報暗復号部650から入力された書き込みデータを暗号化する。また、格納鍵暗復号部660は、格納鍵Kstにより暗号化された書き込みデータをSDC IF670を介してSDC200に送信する。   The storage key encryption / decryption unit 660 encrypts the write data input from the access management information encryption / decryption unit 650 using the storage key Kst when writing data. In addition, the storage key encryption / decryption unit 660 transmits the write data encrypted with the storage key Kst to the SDC 200 via the SDC IF 670.

格納鍵暗復号部660は、データの読み出し時には、格納鍵Kstを用いて、SDC200からの読み出しデータを復号化する。また、格納鍵暗復号部660は、格納鍵により復号化された読み出しデータを、アクセス管理情報暗復号部650に出力する。   When reading data, the storage key encryption / decryption unit 660 uses the storage key Kst to decrypt the read data from the SDC 200. Further, the storage key encryption / decryption unit 660 outputs the read data decrypted with the storage key to the access management information encryption / decryption unit 650.

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 SDC 200. Specifically, the SDC IF 670 is encrypted with the write data encrypted with the storage key Kst input from the storage key encryption / decryption unit 660 and the encryption key Ks input from the access management information encryption / decryption unit 650. Read data is transmitted to the SDC 200. The SDC IF 670 receives the write data encrypted with the encryption key Ks and the read data encrypted with the storage key Kst transmitted from the SCC IF 640 of the SDC 200. Also, the SDC IF 670 outputs the received write data to the access management information encryption / decryption unit 650 and outputs the received read data to the storage key encryption / decryption unit 660.

次に、上述のように構成されたメモリカード600の動作について、図7および図8を用いて詳細に説明する。なお、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みは実施の形態1と同一であるため、その説明を省略し、セキュリティ保護領域420へのデータの書き込み動作およびセキュリティ保護領域420からのデータの読み出し動作について説明する。   Next, the operation of the memory card 600 configured as described above will be described in detail with reference to FIGS. Note that the mechanism of authentication and sharing of the encryption key Ks between the SDC 200 and the SCC 300 in the reset process is the same as that in the first embodiment, so that the description thereof is omitted, and the data write operation and security in the security protection area 420 are omitted. A data read operation from the protection area 420 will be described.

図7は、メモリカード600のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422にデータを書き込む場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。   FIG. 7 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when data is written to the security protection area 420 of the memory card 600. Here, a case where data is written to the area block 422 of the security protection area 420 will be described. For simplicity, it is assumed that the area block 422 corresponds to “area 2” of the access management information shown in FIG.

図7において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS41〜ステップS47)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS48〜ステップS54)との2段階の処理により行われる。   In FIG. 7, data is written into the security protection area 420 in order to write various data corresponding to the area in which data is written, access area designation command processing (steps S41 to S47), and to actually write data. The data transfer command process (steps S48 to S54) is performed in two steps.

[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[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 host device 110 transmits an access area designation command in which an area number, a block address, and a block length for designating an area to be accessed are described to the SDC 200 (S41). The access area designation command received by the Host IF 210 of the SDC 200 is output to the SCC IF 640. Further, the SCC IF 640 further transmits the input access area designation command to the SCC 300 (S42). The access area designation command received by the SDC IF 670 of the SCC 300 is output to the access management information encryption / decryption unit 650.

アクセス管理情報暗復号部650は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S43)。この例では、アクセス管理情報暗復号部650は、エリアブロック422(エリア2)に対応する物理アドレス0x00002000、アクセス長、セッション鍵Kss2、および格納鍵Kst1を、アクセス管理情報として取得する。   When the access management information encryption / decryption unit 650 receives the access area designation command, the access management information corresponding to the access area designation command, for example, the physical address of the area to be accessed, the access, from the access management information held by the key storage unit 310 The length, the session key Kss, and the storage key Kst are acquired (S43). In this example, the access management information encryption / decryption unit 650 acquires the physical address 0x00002000, access length, session key Kss2, and storage key Kst1 corresponding to the area block 422 (area 2) as access management information.

アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS43で取得したアクセス管理情報、つまりエリアブロック422に対応する物理アドレス、アクセス長、およびセッション鍵Kssを暗号化する。また、アクセス管理情報暗復号部650は、暗号化されたアクセス管理情報をSDC200に送信する(S44)。SDC200のSCC IF640で受信された暗号化アクセス管理情報は、アクセス管理情報暗復号部620に出力される。   The access management information encryption / decryption unit 650 uses the encryption key Ks generated by the key generation unit 320 to obtain the access management information acquired in step S43, that is, the physical address, access length, and session key Kss corresponding to the area block 422. Is encrypted. Further, the access management information encryption / decryption unit 650 transmits the encrypted access management information to the SDC 200 (S44). The encrypted access management information received by the SCC IF 640 of the SDC 200 is output to the access management information encryption / decryption unit 620.

また、アクセス管理情報暗復号部650は、ステップS43で取得した格納鍵Kst、例えばKst1を、格納鍵暗復号部660に設定する(S45)。   Further, the access management information encryption / decryption unit 650 sets the storage key Kst acquired in step S43, for example, Kst1, in the storage key encryption / decryption unit 660 (S45).

SDC200のアクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報暗復号部620は、アクセス先、つまりエリアブロック422に対応する物理アドレス0x00002000、アクセス長、およびセッション鍵Kss2を取得する(S46)。   The access management information encryption / decryption unit 620 of the SDC 200 decrypts the encrypted access management information from the SCC 300 using the encryption key Ks generated by the key generation unit 250. As a result, the access management information encryption / decryption unit 620 obtains the physical address 0x00002000, the access length, and the session key Kss2 corresponding to the access destination, that is, the area block 422 (S46).

そして、アクセス管理情報暗復号部620は、ステップS46で取得したセッション鍵Kss2を、セッション鍵暗復号部610に設定する。また、アクセス管理情報暗復号部620は、ステップS46で取得した物理アドレスおよびアクセス長を、Flash IF630に設定する(S47)。   Then, the access management information encryption / decryption unit 620 sets the session key Kss2 acquired in step S46 in the session key encryption / decryption unit 610. Further, the access management information encryption / decryption unit 620 sets the physical address and access length acquired in step S46 in the Flash IF 630 (S47).

[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.

まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss2を用いて、エリアブロック422に書き込むデータを暗号化する(S48)。ここで、ホスト機器110は、予め、メモリカード600との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。   First, the host device 110 encrypts data to be written in the area block 422 using the session key Kss, for example, the session key Kss2 (S48). Here, the host device 110 shares the session key Kss with the memory card 600 in advance. Further, for example, it is possible to share a session key by using a key exchange process such as Diffe-Helman.

また、ホスト機器110は、セッション鍵Kss2により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S49)。SDC200のHost IF210で受信されたこの書き込みデータは、セッション鍵暗復号部610に出力される。   The host device 110 transmits a data transfer command for instructing data writing to the SDC 200 together with the write data encrypted with the session key Kss2 (S49). This write data received by the Host IF 210 of the SDC 200 is output to the session key encryption / decryption unit 610.

セッション鍵暗復号部610は、ステップS47で設定されたセッション鍵Kss2を用いて、ホスト機器110からの書き込みデータを復号化する(S50)。アクセス管理情報暗復号部620は、鍵生成部250で生成された暗号鍵Ksを用いて、復号化された書き込みデータを暗号化する(S51)。また、アクセス管理情報暗復号部620は、暗号鍵Ksで暗号化された書き込みデータを、SCC IF640を介してSCC300に送信する。   The session key encryption / decryption unit 610 decrypts the write data from the host device 110 using the session key Kss2 set in step S47 (S50). The access management information encryption / decryption unit 620 encrypts the decrypted write data using the encryption key Ks generated by the key generation unit 250 (S51). Further, the access management information encryption / decryption unit 620 transmits the write data encrypted with the encryption key Ks to the SCC 300 via the SCC IF 640.

SCC300のアクセス管理情報暗復号部650は、SDC200からの暗号鍵Ksで暗号化された書き込みデータを受信すると、鍵生成部320で生成された暗号鍵Ksを用いて、この書き込みデータを復号化する(S52)。また、アクセス管理情報暗復号部650は、復号化された書き込みデータを、格納鍵暗復号部660に出力する。   Upon receiving the write data encrypted with the encryption key Ks from the SDC 200, the access management information encryption / decryption unit 650 of the SCC 300 decrypts the write data using the encryption key Ks generated by the key generation unit 320. (S52). Also, the access management information encryption / decryption unit 650 outputs the decrypted write data to the storage key encryption / decryption unit 660.

格納鍵暗復号部660は、ステップS45で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S53)。また、格納鍵暗復号部660は、格納鍵Kst1で暗号化された書き込みデータを、SDC IF670を介してSDC200に送信する。そして、Flash IF630は、格納鍵Kst1で暗号化された書き込みデータを、ステップS47で設定された物理アドレスにより示される領域、例えばエリアブロック422に書き込む(S54)。   The storage key encryption / decryption unit 660 encrypts the decrypted write data using the storage key Kst1 set in step S45 (S53). The storage key encryption / decryption unit 660 transmits the write data encrypted with the storage key Kst1 to the SDC 200 via the SDC IF 670. Then, the Flash IF 630 writes the write data encrypted with the storage key Kst1 in the area indicated by the physical address set in step S47, for example, the area block 422 (S54).

以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。   The data write operation to the security protection area 420 of the flash memory 400 has been described above.

次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図8を用いて説明する。   Next, a data read operation from the security protection area 420 of the flash memory 400 will be described with reference to FIG.

図8は、メモリカード600のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。   FIG. 8 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when data is read from the security protection area 420 of the memory card 600. Here, a case where data stored in the area block 422 of the security protection area 420 is read will be described. For simplicity, it is assumed that the area block 422 corresponds to “area 2” of the access management information shown in FIG.

図8において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS41〜ステップS47)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS61〜ステップS68)との2段階の処理により行われる。なお、図8のアクセス領域指定コマンド処理は、前述した図7のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。   In FIG. 8, data is read from the security protection area 420 in order to set the various information corresponding to the data reading area (step S41 to step S47) and to actually read the data. The data acquisition command process (steps S61 to S68) is performed in two steps. The access area designation command process in FIG. 8 is the same as the above-mentioned access area designation command process in FIG.

[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S61)。SDC200のHost IF210で受信されたデータ取得コマンドは、Flash IF630に出力される。
[Data acquisition command processing]
First, the host device 110 transmits a data acquisition command for instructing data reading to the SDC 200 (S61). The data acquisition command received by the Host IF 210 of the SDC 200 is output to the Flash IF 630.

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 SCC 300 via the SCC IF 640 and further output to the stored key encryption / decryption unit 660.

格納鍵暗復号部660は、ステップS45で設定された格納鍵Kst、例えば格納鍵Kst1を用いて、エリアブロック422から読み出されたデータを復号化する(S63)。復号化された読み出しデータは、アクセス管理情報暗復号部650に出力される。アクセス管理情報暗復号部650は、鍵生成部320で生成された暗号鍵Ksを用いて、復号化された読み出しデータを暗号化する(S64)。アクセス管理情報暗復号部650は、暗号鍵Ksで暗号化された読み出しデータを、SDC IF670を介してSDC200に送信する。   The storage key encryption / decryption unit 660 decrypts the data read from the area block 422 using the storage key Kst set in step S45, for example, the storage key Kst1 (S63). The decrypted read data is output to the access management information encryption / decryption unit 650. The access management information encryption / decryption unit 650 encrypts the decrypted read data using the encryption key Ks generated by the key generation unit 320 (S64). The access management information encryption / decryption unit 650 transmits the read data encrypted with the encryption key Ks to the SDC 200 via the SDC IF 670.

SDC200のアクセス管理情報暗復号部620は、SCC300からの暗号鍵Ksで暗号化された読み出しデータを受信すると、鍵生成部250で生成された暗号鍵Ksを用いて、この読み出しデータを復号化する(S65)。アクセス管理情報暗復号部620は、復号化された読み出しデータを、セッション鍵暗復号部610に出力する。   When receiving the read data encrypted with the encryption key Ks from the SCC 300, the access management information encryption / decryption unit 620 of the SDC 200 decrypts the read data using the encryption key Ks generated by the key generation unit 250. (S65). The access management information encryption / decryption unit 620 outputs the decrypted read data to the session key encryption / decryption unit 610.

セッション鍵暗復号部610は、ステップS47で設定されたセッション鍵Kss2を用いて、復号化された読み出しデータを暗号化する(S66)。そして、セッション鍵暗復号部610は、セッション鍵Kss2により暗号化された読み出しデータを、Host IF210を介してホスト機器110に送信する(S67)。   The session key encryption / decryption unit 610 encrypts the decrypted read data using the session key Kss2 set in step S47 (S66). Then, the session key encryption / decryption unit 610 transmits the read data encrypted with the session key Kss2 to the host device 110 via the Host IF 210 (S67).

ホスト機器110は、セッション鍵Kss2を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S68)。   The host device 110 acquires plaintext read data by decrypting the encrypted read data from the SDC 200 using the session key Kss2 (S68).

以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。   The operation for reading data from the security protection area 420 of the flash memory 400 has been described above.

このように、本実施の形態によれば、セキュリティ保護領域420へのアクセスデータの格納鍵Kstによる暗復号化をSCC300で行うので、格納鍵Kstによる暗復号化の安全性および信頼性を向上させることができる。   Thus, according to the present embodiment, since the SCC 300 performs encryption / decryption of the access data to the security protection area 420 using the storage key Kst, the security and reliability of encryption / decryption using the storage key Kst are improved. be able to.

また、SDC200およびSCC300は、送受信する書き込みデータまたは読み出しデータを、SDC200とSCC300との間で共有される暗号鍵Ksで暗号化するので、SDC200とSCC300との間の通信路の秘匿性を向上させることができる。   In addition, since the SDC 200 and the SCC 300 encrypt the write data or read data to be transmitted / received with the encryption key Ks shared between the SDC 200 and the SCC 300, the confidentiality of the communication path between the SDC 200 and the SCC 300 is improved. be able to.

(実施の形態3)
本実施の形態では、ホスト機器110との間で伝送されるデータの暗復号処理をSCC300に設けられたセッション鍵暗復号部770が行い、フラッシュメモリ400との間で伝送されるデータの暗復号処理をSDC200に設けられた格納鍵暗復号部720が行うように構成されているメモリカード700について説明する。
(Embodiment 3)
In the present embodiment, encryption / decryption processing of data transmitted to / from the host device 110 is performed by the session key encryption / decryption unit 770 provided in the SCC 300 and encryption / decryption of data transmitted to / from the flash memory 400 is performed. A memory card 700 configured so that the storage key encryption / decryption unit 720 provided in the SDC 200 performs processing will be described.

図9は、本発明の実施の形態3に係るメモリカード700の構成を示すブロック図である。図1と同一の構成部分には同一の符号を付して重複箇所の説明を省略する。また、図1の構成部分に付加的な機能を有する構成部分については、その付加的な機能についてのみ説明するものとする。   FIG. 9 is a block diagram showing a configuration of a memory card 700 according to Embodiment 3 of the present invention. The same components as those in FIG. 1 are denoted by the same reference numerals, and description of overlapping portions is omitted. Further, only the additional functions of the components having additional functions in the components of FIG. 1 will be described.

図9において、メモリカード700のSDC200は、Host IF710、格納鍵暗復号部720、アクセス管理情報暗復号部730、Flash IF740およびSCC IF750を備える。   9, the SDC 200 of the memory card 700 includes a Host IF 710, a storage key encryption / decryption unit 720, an access management information encryption / decryption unit 730, a Flash IF 740, and an SCC IF 750.

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 host device 110. Specifically, the Host IF 710 receives the write data encrypted with the session key Kss transmitted from the host device 110, and transmits it to the SCC 300 via the SCC IF 750. Further, the Host IF 710 transmits read data encrypted with the session key Kss input from the SCC IF 750 to the host device 110.

格納鍵暗復号部720は、フラッシュメモリ400に書き込むべきデータまたはフラッシュメモリ400から読み出すべきデータを格納鍵Kstにより暗復号化する。   The storage key encryption / decryption unit 720 encrypts / decrypts data to be written to the flash memory 400 or data to be read from the flash memory 400 using the storage key Kst.

格納鍵暗復号部720は、データの書き込み時には、格納鍵Kstを用いて、アクセス管理情報暗復号部730から入力された書き込みデータを暗号化する。また、格納鍵暗復号部720は、格納鍵Kstにより暗号化された書き込みデータを、Flash IF740を介して、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域に送信する。   The storage key encryption / decryption unit 720 encrypts the write data input from the access management information encryption / decryption unit 730 using the storage key Kst when writing data. In addition, the storage key encryption / decryption unit 720 transmits the write data encrypted by the storage key Kst to the area specified by the access area specification command of the flash memory 400 via the Flash IF 740.

格納鍵暗復号部720は、データの読み出し時には、格納鍵Kstを用いて、フラッシュメモリ400のアクセス領域指定コマンドにより指定された領域から読み出されたデータを復号化する。また、格納鍵暗復号部720は、格納鍵Kstにより復号化された読み出しデータをアクセス管理情報暗復号部730に出力する。   When reading data, the storage key encryption / decryption unit 720 uses the storage key Kst to decrypt data read from the area specified by the access area specification command of the flash memory 400. Also, the storage key encryption / decryption unit 720 outputs the read data decrypted with the storage key Kst to the access management information encryption / decryption unit 730.

アクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。   The access management information encryption / decryption unit 730 uses the encryption key Ks generated by the key generation unit 250 to encrypt / decrypt various information transmitted / received between the SDC 200 and the SCC 300.

アクセス管理情報暗復号部730は、データの書き込み時には、暗号鍵Ksを用いて、SCC300から送信された書き込みデータを復号化する。また、アクセス管理情報暗復号部730は、復号化された書き込みデータを、格納鍵暗復号部720に出力する。   The access management information encryption / decryption unit 730 decrypts the write data transmitted from the SCC 300 using the encryption key Ks when writing data. Further, the access management information encryption / decryption unit 730 outputs the decrypted write data to the storage key encryption / decryption unit 720.

アクセス管理情報暗復号部730は、データの読み出し時には、暗号鍵Ksを用いて、格納鍵暗復号部720から入力された読み出しデータを暗号化する。また、アクセス管理情報暗復号部730は、暗号化された読み出しデータを、SCC IF750を介してSCC300に送信する。   The access management information encryption / decryption unit 730 encrypts the read data input from the storage key encryption / decryption unit 720 using the encryption key Ks when reading the data. Further, the access management information encryption / decryption unit 730 transmits the encrypted read data to the SCC 300 via the SCC IF 750.

アクセス管理情報暗復号部730は、暗号鍵Ksを用いて、SCC300から送信された、アクセス領域指定コマンドにより指定された領域に対応する暗号化アクセス管理情報を復号化する。暗号化アクセス管理情報には、例えばエリア番号や物理アドレス、アクセス長、エリアを所有するアプリケーションのIDなどのフラッシュメモリ400のアクセスすべき領域を特定するための情報、および格納鍵Kstとその暗号アルゴリズムを示す情報が含まれる。   The access management information encryption / decryption unit 730 uses the encryption key Ks to decrypt the encrypted access management information corresponding to the area designated by the access area designation command transmitted from the SCC 300. The encrypted access management information includes information for specifying an area to be accessed in the flash memory 400 such as an area number, a physical address, an access length, an ID of an application that owns the area, and a storage key Kst and its encryption algorithm. Is included.

アクセス管理情報暗復号部730は、復号化された格納鍵Kstを、格納鍵暗復号部720に設定する。また、アクセス管理情報暗復号部730は、フラッシュメモリ400のアクセスすべき領域を特定するための情報を、Flash IF740に設定する。   The access management information encryption / decryption unit 730 sets the decrypted storage key Kst in the storage key encryption / decryption unit 720. Further, the access management information encryption / decryption unit 730 sets information for specifying an area to be accessed in the flash memory 400 in the Flash IF 740.

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 flash memory 400. Specifically, the Flash IF 740 transmits the write data to the flash memory 400 input from the storage key encryption / decryption unit 720 to the area designated by the access area designation command of the flash memory 400. In addition, the Flash IF 740 receives data read from the area specified by the access area specifying command of the flash memory 400. The Flash IF 740 outputs the read data to the stored key encryption / decryption unit 720.

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 SCC 300. Specifically, the SCC IF 750 encrypts the write data encrypted with the session key Kss received from the host device 110 via the Host IF 710 and the encryption key Ks input from the access management information encryption / decryption unit 730. The read data that has been read is transmitted to the SCC 300. Further, the SCC IF 750 receives the write data encrypted with the encryption key Ks transmitted from the SDC IF 780 of the SCC 300 and the read data encrypted with the session key Kss. In addition, the SCC IF 740 outputs the received write data to the access management information encryption / decryption unit 730 and transmits the received read data to the host device 110 via the Host IF 710.

メモリカード700のSCC300は、アクセス管理情報暗復号部760、セッション鍵暗復号部770およびSDC IF780を備える。   The SCC 300 of the memory card 700 includes an access management information encryption / decryption unit 760, a session key encryption / decryption unit 770, and an SDC IF 780.

アクセス管理情報暗復号部760は、鍵生成部320で生成された暗号鍵Ksを用いて、SDC200とSCC300との間で送受信される各種の情報を暗復号化する。   The access management information encryption / decryption unit 760 uses the encryption key Ks generated by the key generation unit 320 to encrypt / decrypt various information transmitted / received between the SDC 200 and the SCC 300.

アクセス管理情報暗復号部760は、SDC200から送信されたアクセス領域指定コマンドを受信すると、アクセス領域指定コマンドに対応するアクセス管理情報を、鍵記憶部310が保持するアクセス管理情報から取得する。また、アクセス管理情報暗復号部760は、取得されたアクセス管理情報に含まれるセッション鍵Kssを、セッション鍵暗復号部770に設定する。   When receiving the access area designation command transmitted from the SDC 200, the access management information encryption / decryption section 760 acquires access management information corresponding to the access area designation command from the access management information held by the key storage section 310. Further, the access management information encryption / decryption unit 760 sets the session key Kss included in the acquired access management information in the session key encryption / decryption unit 770.

アクセス管理情報暗復号部760は、暗号鍵Ksを用いて、セッション鍵Kssを除いたアクセス管理情報を暗号化する。また、アクセス管理情報暗復号部760は、暗号化されたアクセス管理情報を、SDC IF780を介してSDC200に送信する。   The access management information encryption / decryption unit 760 encrypts the access management information excluding the session key Kss using the encryption key Ks. Further, the access management information encryption / decryption unit 760 transmits the encrypted access management information to the SDC 200 via the SDC IF 780.

アクセス管理情報暗復号部760は、データの書き込み時には、暗号鍵Ksを用いて、セッション鍵暗復号部770から入力された書き込みデータを暗号化する。また、アクセス管理情報暗復号部760は、暗号化された書き込みデータを、SDC IF780を介してSDC200に送信する。   When data is written, the access management information encryption / decryption unit 760 encrypts the write data input from the session key encryption / decryption unit 770 using the encryption key Ks. Further, the access management information encryption / decryption unit 760 transmits the encrypted write data to the SDC 200 via the SDC IF 780.

アクセス管理情報暗復号部760は、データの読み出し時には、暗号鍵Ksを用いて、SDC200から送信された読み出しデータを復号化する。また、アクセス管理情報暗復号部760は、復号化された読み出しデータを、セッション鍵暗復号部770に出力する。   The access management information encryption / decryption unit 760 decrypts the read data transmitted from the SDC 200 by using the encryption key Ks when reading the data. Also, the access management information encryption / decryption unit 760 outputs the decrypted read data to the session key encryption / decryption unit 770.

セッション鍵暗復号部770は、ホスト機器110との間で送受信するデータをセッション鍵Kssにより暗復号化する。   The session key encryption / decryption unit 770 encrypts / decrypts data transmitted / received to / from the host device 110 using the session key Kss.

セッション鍵暗復号部770は、データの書き込み時には、SDC200から送信されたフラッシュメモリ400への書き込みデータを、セッション鍵Kssにより復号化する。また、セッション鍵暗復号部770は、復号化された書き込みデータを、アクセス管理情報暗復号部760に出力する。   When writing data, session key encryption / decryption unit 770 decrypts the write data to flash memory 400 transmitted from SDC 200 with session key Kss. The session key encryption / decryption unit 770 outputs the decrypted write data to the access management information encryption / decryption unit 760.

セッション鍵暗復号部770は、データの読み出し時には、アクセス管理情報暗復号部760から入力されたフラッシュメモリ400からの読み出しデータを、セッション鍵Kssにより暗号化する。また、セッション鍵暗復号部770は、暗号化された読み出しデータを、SDC IF780を介してSDC200に送信する。   When reading data, the session key encryption / decryption unit 770 encrypts the read data from the flash memory 400 input from the access management information encryption / decryption unit 760 with the session key Kss. The session key encryption / decryption unit 770 transmits the encrypted read data to the SDC 200 via the SDC IF 780.

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 SDC 200. Specifically, the SDC IF 780 is encrypted with the write data encrypted with the encryption key Ks input from the access management information encryption / decryption unit 760 and the session key Kss input from the session key encryption / decryption unit 770. Read data is transmitted to the SDC 200. Further, the SDC IF 780 receives the write data encrypted with the session key Kss and the read data encrypted with the encryption key Ks transmitted from the SCC IF 750 of the SDC 200. Also, the SDC IF 780 outputs the received write data to the session key encryption / decryption unit 770 and outputs the received read data to the access management information encryption / decryption unit 760.

次に、上述のように構成されたメモリカード700の動作について、図10および図11を用いて詳細に説明する。なお、リセット処理におけるSDC200とSCC300との間の認証および暗号鍵Ksの共有の仕組みは実施の形態1と同一であるため、その説明を省略し、セキュリティ保護領域420へのデータの書き込み動作およびセキュリティ保護領域420からのデータの読み出し動作について説明する。   Next, the operation of the memory card 700 configured as described above will be described in detail with reference to FIGS. Note that the mechanism of authentication and sharing of the encryption key Ks between the SDC 200 and the SCC 300 in the reset process is the same as that in the first embodiment, so that the description thereof is omitted, and the data write operation and security in the security protection area 420 are omitted. A data read operation from the protection area 420 will be described.

図10は、メモリカード700のセキュリティ保護領域420にデータを書き込む場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422にデータを書き込む場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。   FIG. 10 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when data is written to the security protection area 420 of the memory card 700. Here, a case where data is written to the area block 422 of the security protection area 420 will be described. For simplicity, it is assumed that the area block 422 corresponds to “area 2” of the access management information shown in FIG.

図10において、セキュリティ保護領域420へのデータの書き込みは、データを書き込む領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS71〜ステップS77)と、実際にデータを書き込むためのデータ転送コマンド処理(ステップS78〜ステップS84)との2段階の処理により行われる。   In FIG. 10, data is written to the security protection area 420 in order to write various data corresponding to the data writing area (steps S71 to S77) and to actually write the data. The data transfer command process (steps S78 to S84) is performed in two steps.

[アクセス領域指定コマンド処理]
まず、アクセス領域指定コマンド処理について説明する。
[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 host device 110 transmits an access area designation command in which an area number, a block address, and a block length for designating an area to be accessed are described to the SDC 200 (S71). The access area designation command received by the Host IF 710 of the SDC 200 is output to the SCC IF 750. Further, the SCC IF 750 further transmits the input access area designation command to the SCC 300 (S72). The access area designation command received by the SDC IF 780 of the SCC 300 is output to the access management information encryption / decryption unit 760.

アクセス管理情報暗復号部760は、アクセス領域指定コマンドを受信すると、鍵記憶部310が保持するアクセス管理情報から、アクセス領域指定コマンドに対応するアクセス管理情報、例えばアクセスすべき領域の物理アドレス、アクセス長、セッション鍵Kss、および格納鍵Kstを取得する(S73)。この例では、アクセス管理情報暗復号部760は、エリアブロック422(エリア2)に対応する物理アドレス0x00002000、アクセス長、セッション鍵Kss2、および格納鍵Kst1を、アクセス管理情報として取得する。   When the access management information encryption / decryption unit 760 receives the access area designation command, the access management information corresponding to the access area designation command, for example, the physical address of the area to be accessed, the access, from the access management information held by the key storage unit 310 The length, the session key Kss, and the storage key Kst are acquired (S73). In this example, the access management information encryption / decryption unit 760 acquires the physical address 0x00002000, access length, session key Kss2, and storage key Kst1 corresponding to the area block 422 (area 2) as access management information.

アクセス管理情報暗復号部760は、鍵生成部320で生成された暗号鍵Ksを用いて、ステップS73で取得したアクセス管理情報、つまりエリアブロック422に対応する物理アドレス、アクセス長、および格納鍵Kstを暗号化する。また、アクセス管理情報暗復号部760は、暗号化されたアクセス管理情報をSDC200に送信する(S74)。SDC200のSCC IF750で受信された暗号化アクセス管理情報は、アクセス管理情報暗復号部730に出力される。   The access management information encryption / decryption unit 760 uses the encryption key Ks generated by the key generation unit 320 to access the access management information acquired in step S73, that is, the physical address corresponding to the area block 422, the access length, and the storage key Kst. Is encrypted. Further, the access management information encryption / decryption unit 760 transmits the encrypted access management information to the SDC 200 (S74). The encrypted access management information received by the SCC IF 750 of the SDC 200 is output to the access management information encryption / decryption unit 730.

また、アクセス管理情報暗復号部760は、ステップS73で取得したセッション鍵Kss、例えばKss2を、セッション鍵暗復号部770に設定する(S75)。   Further, the access management information encryption / decryption unit 760 sets the session key Kss, for example, Kss2, acquired in step S73, in the session key encryption / decryption unit 770 (S75).

SDC200のアクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、SCC300からの暗号化アクセス管理情報を復号化する。これにより、アクセス管理情報暗復号部730は、アクセス先、つまりエリアブロック422に対応する物理アドレス0x00002000、アクセス長、および格納鍵Kst1を取得する(S76)。   The access management information encryption / decryption unit 730 of the SDC 200 decrypts the encrypted access management information from the SCC 300 using the encryption key Ks generated by the key generation unit 250. As a result, the access management information encryption / decryption unit 730 acquires the physical address 0x00002000, the access length, and the storage key Kst1 corresponding to the access destination, that is, the area block 422 (S76).

そして、アクセス管理情報暗復号部730は、ステップS76で取得した格納鍵Kst1を、格納鍵暗復号部720に設定する。また、アクセス管理情報暗復号部730は、ステップS76で取得した物理アドレスおよびアクセス長を、Flash IF740に設定する(S77)。   Then, the access management information encryption / decryption unit 730 sets the storage key Kst1 acquired in step S76 in the storage key encryption / decryption unit 720. Further, the access management information encryption / decryption unit 730 sets the physical address and access length acquired in step S76 in the Flash IF 740 (S77).

[データ転送コマンド処理]
次いで、データ転送コマンド処理について説明する。
[Data transfer command processing]
Next, data transfer command processing will be described.

まず、ホスト機器110は、セッション鍵Kss、例えばセッション鍵Kss2を用いて、エリアブロック422に書き込むデータを暗号化する(S78)。ここで、ホスト機器110は、予め、メモリカード700との間でセッション鍵Kssを共有している。また、例えば、Diffe-Helmanなどの鍵交換処理を使用して、セッション鍵を共有することも可能である。   First, the host device 110 encrypts data to be written in the area block 422 using the session key Kss, for example, the session key Kss2 (S78). Here, the host device 110 shares the session key Kss with the memory card 700 in advance. Further, for example, it is possible to share a session key by using a key exchange process such as Diffe-Helman.

また、ホスト機器110は、セッション鍵Kss2により暗号化された書き込みデータとともに、データの書き込みを指示するデータ転送コマンドをSDC200に送信する(S79)。SDC200のHost IF710で受信されたこの書き込みデータは、SCC IF750を介してSCC300に送信される。また、SCC300のSDC IF780で受信された書き込みデータは、セッション鍵暗復号部770に出力される。   In addition, the host device 110 transmits to the SDC 200 a data transfer command instructing data writing together with the write data encrypted by the session key Kss2 (S79). This write data received by the Host IF 710 of the SDC 200 is transmitted to the SCC 300 via the SCC IF 750. Further, the write data received by the SDC IF 780 of the SCC 300 is output to the session key encryption / decryption unit 770.

セッション鍵暗復号部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 SDC 200 using the session key Kss2 set in step S75 (S80). The access management information encryption / decryption unit 760 encrypts the decrypted write data using the encryption key Ks generated by the key generation unit 320 (S81). Also, the access management information encryption / decryption unit 760 transmits the write data encrypted with the encryption key Ks to the SDC 200 via the SDC IF 780.

SDC200のアクセス管理情報暗復号部730は、SCC300からの暗号鍵Ksで暗号化された書き込みデータを受信すると、鍵生成部250で生成された暗号鍵Ksを用いて、この書き込みデータを復号化する(S82)。また、アクセス管理情報暗復号部730は、復号化された書き込みデータを、格納鍵暗復号部720に出力する。   Upon receiving the write data encrypted with the encryption key Ks from the SCC 300, the access management information encryption / decryption unit 730 of the SDC 200 decrypts the write data using the encryption key Ks generated by the key generation unit 250. (S82). Further, the access management information encryption / decryption unit 730 outputs the decrypted write data to the storage key encryption / decryption unit 720.

格納鍵暗復号部720は、ステップS77で設定された格納鍵Kst1を用いて、復号化された書き込みデータを暗号化する(S83)。また、格納鍵暗復号部720は、格納鍵Kst1で暗号化された書き込みデータを、Flash IF740に出力する。そして、Flash IF740は、格納鍵Kst1で暗号化された書き込みデータを、ステップS77で設定された物理アドレスにより示される領域、例えばエリアブロック422に書き込む(S84)。   The storage key encryption / decryption unit 720 encrypts the decrypted write data using the storage key Kst1 set in step S77 (S83). In addition, the storage key encryption / decryption unit 720 outputs the write data encrypted with the storage key Kst1 to the Flash IF 740. Then, the Flash IF 740 writes the write data encrypted with the storage key Kst1 in the area indicated by the physical address set in step S77, for example, the area block 422 (S84).

以上、フラッシュメモリ400のセキュリティ保護領域420へのデータの書き込み動作について説明した。   The data write operation to the security protection area 420 of the flash memory 400 has been described above.

次に、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について、図11を用いて説明する。   Next, a data read operation from the security protection area 420 of the flash memory 400 will be described with reference to FIG.

図11は、メモリカード700のセキュリティ保護領域420からデータを読み出す場合におけるホスト機器110、SDC200およびSCC300の動作の一例を示すシーケンス図である。ここでは、セキュリティ保護領域420のエリアブロック422に格納されたデータを読み出す場合について説明する。また、簡単のため、エリアブロック422は、図2に示すアクセス管理情報の“エリア2”に対応すると仮定する。   FIG. 11 is a sequence diagram illustrating an example of operations of the host device 110, the SDC 200, and the SCC 300 when reading data from the security protection area 420 of the memory card 700. Here, a case where data stored in the area block 422 of the security protection area 420 is read will be described. For simplicity, it is assumed that the area block 422 corresponds to “area 2” of the access management information shown in FIG.

図11において、セキュリティ保護領域420からのデータの読み出しは、データを読み出す領域に対応する各種の情報を設定するためのアクセス領域指定コマンド処理(ステップS71〜ステップS77)と、実際にデータを読み出すためのデータ取得コマンド処理(ステップS91〜ステップS98)との2段階の処理により行われる。なお、図11のアクセス領域指定コマンド処理は、前述した図10のアクセス領域指定コマンド処理と同一であるためその説明を省略し、データ取得コマンド処理についてのみ説明する。   In FIG. 11, data is read from the security protection area 420 in order to set various information corresponding to the data reading area (steps S71 to S77) and to actually read the data. The data acquisition command processing (steps S91 to S98) is performed in two steps. The access area designation command process in FIG. 11 is the same as the above-described access area designation command process in FIG.

[データ取得コマンド処理]
まず、ホスト機器110は、データの読み出しを指示するデータ取得コマンドをSDC200に送信する(S91)。SDC200のHost IF710で受信されたデータ取得コマンドは、Flash IF740に出力される。
[Data acquisition command processing]
First, the host device 110 transmits a data acquisition command for instructing data reading to the SDC 200 (S91). The data acquisition command received by the Host IF 710 of the SDC 200 is output to the Flash IF 740.

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 Flash IF 740 outputs the read data to the storage key encryption / decryption unit 720.

格納鍵暗復号部720は、ステップS77で設定された格納鍵Kst、例えば格納鍵Kst1を用いて、エリアブロック422から読み出されたデータを復号化する(S93)。復号化された読み出しデータは、アクセス管理情報暗復号部730に出力される。アクセス管理情報暗復号部730は、鍵生成部250で生成された暗号鍵Ksを用いて、復号化された読み出しデータを暗号化する(S94)。また、アクセス管理情報暗復号部730は、暗号鍵Ksで暗号化された読み出しデータを、SCC IF750を介してSCC300に送信する。   The storage key encryption / decryption unit 720 decrypts the data read from the area block 422 using the storage key Kst set in step S77, for example, the storage key Kst1 (S93). The decrypted read data is output to the access management information encryption / decryption unit 730. The access management information encryption / decryption unit 730 encrypts the decrypted read data using the encryption key Ks generated by the key generation unit 250 (S94). Further, the access management information encryption / decryption unit 730 transmits the read data encrypted with the encryption key Ks to the SCC 300 via the SCC IF 750.

SCC300のアクセス管理情報暗復号部760は、SDC200からの暗号鍵Ksで暗号化された読み出しデータを受信すると、鍵生成320で生成された暗号鍵Ksを用いて、この読み出しデータを復号化する(S95)。また、アクセス管理情報暗復号部760は、復号化された読み出しデータを、セッション鍵暗復号部770に出力する。   When receiving the read data encrypted with the encryption key Ks from the SDC 200, the access management information encryption / decryption unit 760 of the SCC 300 decrypts the read data using the encryption key Ks generated by the key generation 320 ( S95). Also, the access management information encryption / decryption unit 760 outputs the decrypted read data to the session key encryption / decryption unit 770.

セッション鍵暗復号部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 SDC 200 via the SDC IF 780. Then, the SCC IF 750 receives this read data and transmits it to the host device 110 via the Host IF 710 (S97).

ホスト機器110は、セッション鍵Kss2を用いてSDC200からの暗号化された読み出しデータを復号化することにより、平文の読み出しデータを取得する(S98)。   The host device 110 acquires plaintext read data by decrypting the encrypted read data from the SDC 200 using the session key Kss2 (S98).

以上、フラッシュメモリ400のセキュリティ保護領域420からのデータの読み出し動作について説明した。   The operation for reading data from the security protection area 420 of the flash memory 400 has been described above.

このように、本実施の形態によれば、ホスト機器110との間で送受信するデータのセッション鍵Kssによる暗復号化をSCC300で行うので、セッション鍵Kssによる暗復号化の安全性および信頼性を向上させることができる。   As described above, according to the present embodiment, since the SCC 300 performs encryption / decryption with the session key Kss of the data transmitted / received to / from the host device 110, the encryption / decryption with the session key Kss can be performed safely and reliably. Can be improved.

本発明に係るメモリカードは、セキュリティ強度を落とすことなく、高速にセキュリティ保護領域へアクセスすることができる効果を有し、個人認証や機密情報の保護などのセキュリティ処理を行うメモリカードとして有用である。   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. .

本発明の実施の形態1に係るメモリカードの構成を示すブロック図The block diagram which shows the structure of the memory card based on Embodiment 1 of this invention. アクセス管理情報の一例を示す図The figure which shows an example of access management information リセット処理により暗号鍵Ksを生成する場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図The sequence diagram which shows an example of operation | movement of a host apparatus, SDC, and SCC in the case of producing | generating encryption key Ks by reset processing 図1のメモリカードのセキュリティ保護領域にデータを書き込む場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図The sequence diagram which shows an example of operation | movement of a host apparatus, SDC, and SCC in the case of writing data in the security protection area | region of the memory card of FIG. 図1のメモリカードのセキュリティ保護領域からデータを読み出す場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図The sequence diagram which shows an example of operation | movement of a host apparatus, SDC, and SCC in the case of reading data from the security protection area | region of the memory card of FIG. 本発明の実施の形態2に係るメモリカードの構成を示すブロック図The block diagram which shows the structure of the memory card based on Embodiment 2 of this invention. 図6のメモリカードのセキュリティ保護領域にデータを書き込む場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図FIG. 6 is a sequence diagram showing an example of operations of the host device, SDC, and SCC when data is written to the security protection area of the memory card of FIG. 図6のメモリカードのセキュリティ保護領域からデータを読み出す場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図FIG. 6 is a sequence diagram showing an example of operations of the host device, SDC, and SCC when data is read from the security protection area of the memory card of FIG. 本発明の実施の形態3に係るメモリカードの構成を示すブロック図The block diagram which shows the structure of the memory card based on Embodiment 3 of this invention. 図9のメモリカードのセキュリティ保護領域にデータを書き込む場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図FIG. 9 is a sequence diagram showing an example of operations of the host device, SDC, and SCC when data is written to the security protection area of the memory card of FIG. 図9のメモリカードのセキュリティ保護領域からデータを読み出す場合におけるホスト機器、SDCおよびSCCの動作の一例を示すシーケンス図FIG. 9 is a sequence diagram showing an example of operations of the host device, SDC, and SCC when data is read from the security protection area of the memory card of FIG. 従来のメモリカードにおけるセキュリティ保護領域にアクセスするための手順を示す図The figure which shows the procedure for accessing the security protection area in the conventional memory card

符号の説明Explanation of symbols

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 Memory card 110 Host device 200 SD controller chip 210, 710 Host IF
220, 610, 770 Session key encryption / decryption unit 230, 660, 720 Storage key encryption / decryption unit 240, 630, 740 Flash IF
250, 320 Key generation unit 260 Access management information decryption unit 270, 640, 750 SCC IF
300 Smart card chip 310 Key storage unit 330 Access management information encryption unit 340, 670, 780 SDC IF
400 Flash memory 410 Normal area 420 Security protection area 500 Access management information 620, 650, 730, 760 Access management information encryption / decryption unit

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の暗復号部および前記第2の暗復号部は、前記コントローラチップに設けられている、
ことを特徴とする請求項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.
前記第1の暗復号部が暗復号処理に用いるセッション鍵と、前記第2の暗復号部が暗復号処理に用いる格納鍵と、を保持する鍵記憶部をさらに備え、
前記鍵記憶部は、前記スマートカードチップに設けられている、
ことを特徴とする請求項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.
前記第1の暗復号部は、前記コントローラチップに設けられ、
前記第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.
前記第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.
JP2006144548A 2006-05-24 2006-05-24 Memory card Pending JP2007316865A (en)

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)

* Cited by examiner, † Cited by third party
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

Cited By (3)

* Cited by examiner, † Cited by third party
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