KR20040074212A - 메모리 카드 - Google Patents

메모리 카드 Download PDF

Info

Publication number
KR20040074212A
KR20040074212A KR1020030099827A KR20030099827A KR20040074212A KR 20040074212 A KR20040074212 A KR 20040074212A KR 1020030099827 A KR1020030099827 A KR 1020030099827A KR 20030099827 A KR20030099827 A KR 20030099827A KR 20040074212 A KR20040074212 A KR 20040074212A
Authority
KR
South Korea
Prior art keywords
card
memory
command
application program
controller
Prior art date
Application number
KR1020030099827A
Other languages
English (en)
Other versions
KR100575509B1 (ko
Inventor
미즈시마나가마사
쯔노다모또야스
가따야마구니히로
Original Assignee
가부시끼가이샤 르네사스 테크놀로지
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 가부시끼가이샤 르네사스 테크놀로지 filed Critical 가부시끼가이샤 르네사스 테크놀로지
Publication of KR20040074212A publication Critical patent/KR20040074212A/ko
Application granted granted Critical
Publication of KR100575509B1 publication Critical patent/KR100575509B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1458Protection against unauthorised use of memory or access to memory by checking the subject access rights
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/77Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은, 플래시 메모리칩(130)과, IC 카드칩(150)과, 호스트로부터의 요구에 따라 플래시 메모리칩 및 IC 카드칩으로의 데이터의 기입 및 판독을 제어하는 컨트롤러칩(120)을 포함하며, 플래시 메모리칩은 호스트 기기로부터의 데이터를 기억하기 위한 노멀 데이터 에어리어(131)와 IC 카드칩으로부터의 데이터를 기억하기 위한 시큐어 데이터 에어리어(133)를 가지며, 또한 시큐어 데이터 에어리어(133)는 어플리케이션 프로그램(153, 154)마다 할당된 시큐어 데이터 블록(133a, 133b, 133c, 133d)으로 분할된다.

Description

메모리 카드{MEMORY CARD}
본 발명은, 시큐러티 기능을 탑재한 기억 장치 및 그 기억 장치가 삽입 가능한 호스트 기기 및 그 기억 장치를 포함한 호스트 기기에 관한 것으로, 플래시 메모리칩과 컨트롤러칩과 IC 카드칩을 갖는 메모리 카드 등에 관한 것이다.
JP-A-10-198776에는 IC 모듈과 대용량의 플래시 메모리를 탑재하는 메모리 카드가 기재되어 있다.
JP-A-2000-66882에는 어플리케이션 프로그램마다의 실행 필수 조건을 IC 카드에 기억시켜 두고, 처리 요구가 있었을 때에 실행 필수 조건을 충족하고 있으면 실행 가능한 것으로 하고, 충족하고 있지 않으면 실효 불능한 것으로 하는 것이 기재되어 있다.
JP-A-6-222980에는 IC 카드 내의 메모리 영역 중, 은행를 위해 영역 A가, 병원를 위해 영역 B가, 각각 할당되고 있는 것이 기재되어 있다.
그러나, 어떠한 종래 기술에도 IC 카드의 어플리케이션 프로그램마다 분할된 기억 에어리어를 할당하는 것까지는 기재되어 있지 않다. 따라서, 종래 기술에서는 각 어플리케이션 프로그램이 서로의 메모리 내의 데이터를 부정하게 침해할 수있다는 것이 우려된다.
본 발명의 목적은, 특정한 어플리케이션 프로그램에 따른 처리를 실행하는 경우에, 특정한 어플리케이션 프로그램에 관계되는 데이터를 메모리 장치 내부에서 처리함으로써, 특정한 어플리케이션 프로그램에 따른 처리의 안전성을 향상하는 메모리 장치를 제공하는 것이다.
본 발명의 목적은, IC 카드칩의 어플리케이션 프로그램 간의 데이터 간섭 즉, 임의의 어플리케이션 프로그램에 할당된 메모리가 다른 어플리케이션 프로그램에도 액세스되어 데이터가 침해되는 것을 억제할 수 있는 기억 매체를 제공하는 것이다.
도 1은 본 발명을 적용한 메모리 카드의 내부 구성을 도시하는 도면.
도 2는 본 발명을 적용한 메모리 카드의 동작을 개념적으로 나타내는 흐름도.
도 3a 내지 도 3c는 컨트롤러칩과 IC 카드칩 간의 IC 카드 커맨드 및 IC 카드 응답의 구조를 도시하는 도면.
도 4는 IC 카드칩으로부터의 요구에 따라 플래시 메모리칩 상의 시큐어 데이터 에어리어에 대한 데이터의 기입 및 판독을 실행하는 흐름도.
도 5는 IC 카드칩으로부터의 요구에 따라 플래시 메모리칩 상의 관리 에어리어에 대한 어플리케이션 프로그램의 등록 및 그 해제, 또한 등록 정보의 록 및 언록을 실행하는 흐름도.
도 6은 시큐어 라이트 데이터와 시큐어 리드 데이터의 구성도.
〈도면의 주요 부분에 대한 부호의 설명〉
110 : 메모리 카드
160 : 호스트 기기
120 : 컨트롤러칩
130 : 플래시 메모리칩
151 : CPU
152 : EEPROM
본 발명은, 컨트롤러가 호스트 기기로부터 인터페이스에 의해 수신된 특정 커맨드에 응답하여, IC 카드칩과 불휘발성 메모리(예를 들면, 플래시 메모리) 간의 어플리케이션 프로그램에 관계된 관계 데이터(예를 들면, 어플리케이션 프로그램에 의해 처리되어야 할 데이터)의 전송을 실행하여, 인터페이스를 통한 호스트 기기로의 관계 데이터의 전송을 금지한다.
또한, 본 발명은, 메모리를 복수의 블록으로 분할하여, 블록의 사용권을 IC 카드칩의 어플리케이션 프로그램마다 할당하였다. 즉, 메모리가 호스트 기기로부터의 데이터를 기억하기 위한 제1 기억 에어리어(예를 들면, 노멀 데이터 에어리어)와 IC 카드칩으로부터의 데이터를 기억하기 위한 제2 기억 에어리어(예를 들면, 시큐어 데이터 에어리어)를 가지며, 또한 제2 기억 에어리어가 복수의 블록으로 분할되고, 또한 각 블록이 어플리케이션 프로그램마다 할당된다.
또한, 본 발명은. 호스트 기기로부터 커맨드에 의해 블록의 사용권의 할당, 할당 해제, 할당 및 해제의 금지, 할당 및 해제의 금지의 해제를 행하도록 하였다. 즉, 본 발명은. 호스트 기기로부터의 제1 커맨드(예를 들면, 어플리케이션 프로그램 등록 커맨드)에 응답하여 메모리 블록의 이용권을 어플리케이션 프로그램마다 할당하여, 호스트 기기로부터의 제2 커맨드(예를 들면, 관리 테이블 록 커맨드)에 응답하여 언록 상태로부터 록 상태로 천이한다. 또한, 호스트 기기로부터의 제3 커맨드(예를 들면, 관리 테이블 언록 커맨드)에 응답하여 록 상태로부터 언록 상태로 천이하며, 호스트 기기로부터의 제4 커맨드(예를 들면, 어플리케이션 프로그램 등록 해제 커맨드)에 응답하여 어플리케이션 프로그램을 위해 할당된 블록의 이용권을 해제한다.
본 발명에 따르면, 특정한 어플리케이션 프로그램에 따른 처리를 실행하는 경우에, 특정한 어플리케이션 프로그램에 관계되는 데이터를 메모리 장치 내부에서 처리함으로써, 특정한 어플리케이션 프로그램에 따른 처리의 안전성을 향상할 수 있다.
본 발명에 따르면, 메모리 장치가 실행해야 할 어플리케이션 프로그램마다 메모리 장치내의 메모리의 상이한 블록에 할당함으로써, 어플리케이션 프로그램 간의 데이터 간섭 즉, 임의의 어플리케이션 프로그램에 할당된 메모리가 다른 어플리케이션 프로그램에도 액세스되어 데이터가 침해되는 것을 억제할 수 있다.
이하, 본 발명의 일 실시예에 대하여 설명한다.
도 1은 본 발명을 적용한 메모리 카드의 내부 구성도를 간단히 나타낸 것이다. 메모리 카드(110)는 외부에 접속된 호스트 기기(160)가 MultiMediaCard의 프로토콜 사양에 준거한 메모리 카드 커맨드를 발행함으로써, 파일 데이터를 기입 및 판독할 수 있는 스토리지 기능이나, 기밀 데이터 보호나 개인 인증 등에 필요한 암호 연산을 행할 수 있는 시큐러티 처리 기능을 갖는다. 호스트 기기(160)는 예를 들면, 휴대 전화, 휴대 정보 단말기(PDA), 퍼스널 컴퓨터, 음악 재생(및 녹음) 장치, 카메라, 비디오 카메라, 자동 예금 입출금기, 가각 단말기, 결제 단말기 등이 해당된다. 메모리 카드(110)는 외부 단자(140), 컨트롤러칩(120), 플래시 메모리칩(130), IC 카드칩(150)을 갖는다. 플래시 메모리칩(130)은 불휘발성의 반도체 메모리를 기억 매체로 하는 대용량(예를 들면, 64 메가바이트)의 메모리칩이며, 플래시 메모리 커맨드에 의해 데이터의 기입 및 판독이 가능하다. 외부 단자(140)는 7개의 단자로 구성되며, 외부의 호스트 기기(160)와 정보 교환하기 위해, 전원 공급 단자, 클럭 입력 단자, 커맨드 입출력 단자, 데이터 입출력 단자, 접지 단자를 포함한다. 컨트롤러칩(120)은 메모리 카드(110) 내부의 다른 구성 요소(외부 단자(140), 플래시 메모리칩(130), IC 카드칩(150))와 접속되어 있으며, 이들을 제어하는 마이크로 컴퓨터 칩이다. IC 카드칩(150)은 IC 카드의 플라스틱 기판 내에 매립하기 위한 마이크로 컴퓨터 칩이며, 그 외부 단자, 전기 신호 프로토콜, 커맨드는 ISO/IEC7816 규격에 준거하고 있다. IC 카드칩(150)의 외부 단자에는 전원 공급 단자, 클럭 입력 단자, 리세트 입력 단자, I/O 입출력 단자, 접지 단자가 있다. IC 카드칩(150)의 외부 단자는 접지 단자를 제외하고, 전원 공급 단자, 클럭입력 단자, 리세트 입력 단자, I/O 입출력 단자가 컨트롤러칩(120)에 접속되어 있다. 컨트롤러칩(120)은 IC 카드칩(150)의 외부 단자로부터 IC 카드칩(150)에 IC 카드 커맨드를 발행함으로써, 외부의 호스트 기기(160)로부터 요구된 시큐러티 처리에 필요한 연산을 행한다. IC 카드칩(150)은 연산 처리를 행하기 위한 CPU(151)와, EEPROM(Electrically Erasable Programmable Read Only Memory)(152)를 포함한다. 한편, 플래시 메모리칩(130)에는 기억 소자를 포함하지만, 마이크로 컴퓨터는 존재하지 않는다.
시큐러티 처리는 예를 들면, IC 카드칩(150) 내의 EEPROM(152)에 데이터가 기입될 때, 또는 EEPROM(152)으로부터 데이터가 판독될 때에 CPU(151)에 의해 실행된다. 시큐러티 처리의 상세한 내용은 EEPROM(152) 내에 저장된 프로그램 코드에 의해 기술되어 있다. 다양한 시큐러티 처리에 적용할 수 있도록, 그 프로그램 코드는 기능적으로 상이한 복수의 모듈로서 구성되어 있다. CPU(151)는 필요에 따라 시큐러티 처리에 사용할 모듈을 전환할 수 있다. 예를 들면, EEPROM(152)은 어플리케이션 프로그램 A(153)와 어플리케이션 프로그램 B(154)를 저장한다. IC 카드 내의 각 어플리케이션 프로그램은 각각, 자신의 어플리케이션 식별자(이하, AID(Application IDentifier)라 함)를 소유한다. 도 1에서, 어플리케이션 프로그램 A(153)의 AID는 155로서, 어플리케이션 프로그램 B(154)의 AID는 156으로서 나타나 있다. 이들 AID는 IC 카드의 어플리케이션 프로그램을 식별하기 위해, 국제적으로 고유하게 할당된 값인 것이 바람직하다. 국제적으로 유통된 AID의 번호 부여 방법은 국제 규격으로서 ISO/IEC7816-5로 규정되어 있다. EEPROM(152)의 기억용량은 예를 들면 64 킬로바이트이고, 플래시 메모리칩(130)의 기억 용량보다 작다. 단, 본 발명을 실시하는 데 있어서, EEPROM(152)의 기억 용량은 플래시 메모리칩(130)의 기억 용량과 동일하거나, 커도 된다.
IC 카드칩(150)에는 시큐러티 평가 기준의 국제 표준인 ISO/IEC15408의 평가 ·인증 기관에 의해 인증된 제품을 이용한다. 일반적으로, 시큐러티 처리를 행하는 기능을 갖는 IC 카드를 실제 전자 결제 서비스 등에 의해 이용하는 경우, 그 IC 카드는 ISO/IEC15408의 평가 ·인증 기관에 의한 평가와 인정을 받을 필요가 있다. 메모리 카드(110)에 시큐러티 처리를 행하는 기능을 추가함으로써 메모리 카드(110)를 실현하여, 그것을 실제 전자 결제 서비스 등에 의해 이용하는 경우, 메모리 카드(110)도 마찬가지로 ISO/IEC15408의 평가 ·인증 기관에 의한 평가와 인정을 받을 필요가 있다. 메모리 카드(110)는 평가 ·인증 기관에 의해 인증 완료한 IC 카드칩(150)을 내장하며, 그 IC 카드칩(150)을 이용하여 시큐러티 처리를 행하는 구조를 가짐으로써, 시큐러티 처리 기능을 얻는다. 따라서, 메모리 카드(110)는 IS0/IEC15408에 기초하는 시큐러티 평가 기준을 용이하게 만족할 수 있어서, 메모리 카드(110)에 시큐러티 처리 기능을 추가하기 위한 개발 기간을 단축할 수 있다.
메모리 카드(110)는 MultiMediaCard 사양에 준거한 외부 인터페이스를 갖는 것이 바람직하다. 메모리 카드(110)는 한 종류의 외부 인터페이스를 통하여, MultiMediaCard 사양에 준거한 표준 메모리 카드 커맨드 이외에, 시큐러티 처리를 실행하는 커맨드(이하, 시큐어 라이트 커맨드라 함)를 접수한다. 시큐어 라이트커맨드는 입력 데이터를 수반한다. 컨트롤러칩(120)은 메모리 카드(110)가 수신한 커맨드가 표준 메모리 카드 커맨드인지, 시큐어 라이트 커맨드인지에 따라, 액세스해야 할 칩을 선택하여, 커맨드 처리를 분배하는 기능을 갖는다. 표준 메모리 카드 커맨드를 수신하였으면, 플래시 메모리칩(130)을 선택하여, 이것에 플래시 메모리 커맨드를 발행하고 호스트 데이터를 기입 및 판독할 수 있다. 또한, 시큐어 라이트 커맨드를 수신하였으면, IC 카드칩(150)을 선택하여, 이것에 IC 카드 커맨드를 발행하여 시큐러티 처리를 실행할 수 있다. 여기서 발행되는 IC 카드 커맨드는 시큐어 라이트 커맨드에 의해 입력되는 데이터(이하, 시큐어 라이트 데이터라 함) 내에 저장되어 있다. IC 카드칩(150)은 이 커맨드에 따라 IC 카드 응답을 돌려 주지만, 컨트롤러칩(120)은 그것을 캐쉬한다. 또한, 메모리 카드(110)는 한 종류의 외부 인터페이스를 통하여, 시큐러티 처리의 결과를 판독하는 커맨드(이하, 시큐어 리드 커맨드라 함)도 접수한다. 시큐어 리드 커맨드는 출력 데이터를 수반한다. 시큐어 리드 커맨드를 수신하였으면, 캐쉬하여 둔 IC 카드 응답을 포함하는 데이터(이하, 시큐어 리드 데이터라 함)를 출력한다.
도 2는 본 발명을 적용한 메모리 카드(110)의 동작을 개념적으로 나타내는 흐름도이다. 이하, 도 2를 참조하면서 그 동작을 설명한다. 호스트 기기(160)는 메모리 카드(110)에 시큐어 라이트 커맨드를 송신하면(201), 컨트롤러칩(120)은 IC 카드칩(150)에 IC 카드 커맨드를 송신한다(202). IC 카드칩(150)은 IC 카드 커맨드를 수신하면(203), 그 때 선택되어 있는 어플리케이션 프로그램의 AID를 포함하는 IC 카드 응답을 컨트롤러칩(120)에 회신한다(204). 컨트롤러칩(120)이 그 IC카드 응답을 수신하였으면 플래시 메모리칩(130)에 리드 커맨드를 송신한다(205). 이것에 의해, 플래시 메모리칩(130)은 AID의 리스트(사전에 기입해 두는 것으로 함)를 판독하여(206), 컨트롤러칩(120)에 출력한다. 컨트롤러칩(120)은 그 리스트로부터, IC 카드칩(150)으로부터의 AID에 일치하는 것이 있는지 검색한다(207). 일치하는 AID를 검출할 수 없으면, 호스트 기기(160)로부터 시큐어 리드 커맨드를 받아 IC 카드 응답을 시큐어 리드 데이터로서 송신하며(219), 호스트 기기(160)가 그것을 수신한다(220). 한편, 단계 207에서, AID를 검출하였으면, IC 카드 응답을 호스트 기기(160)에 출력하는 것을 금지하여, IC 카드칩(150)에 IC 카드 커맨드를 송신한다(208). IC 카드칩(150)이 이 IC 카드 커맨드를 수신하면(209), 선택되어 있는 어플리케이션 프로그램은 IC 카드칩(150)과 플래시 메모리칩(130) 간에서 데이터를 전송하기 위해, 데이터 전송 방향에 따른 IC 카드 응답을 작성한다. IC 카드로부터 플래시 메모리로 전송하고자 하면, 플래시 메모리에 라이트하는 데이터와 그 어드레스를 포함한 IC 카드 응답을 작성하여 회신한다(211). 플래시 메모리로부터 IC 카드로 전송하고자 하면, 플래시 메모리로부터 리드하고자 하는 어드레스를 포함한 IC 카드 응답을 작성하여 회신한다(214). 단계 211 이후, 컨트롤러칩(120)은 플래시 메모리칩(130)에 라이트 커맨드를 송신한다(212). 이것에 대하여, 플래시 메모리칩(130)은 지정된 어드레스에 데이터를 기입한다(213). 이것에 의해, IC 카드로부터 플래시 메모리로의 데이터 전송이 완료된다. 한편, 단계 214 이후, 컨트롤러칩(120)은 플래시 메모리칩(130)에 리드 커맨드를 송신한다(215). 이것에 대하여, 플래시 메모리칩(130)는 지정된 어드레스로부터 데이터를 판독하여(216), 컨트롤러칩(120)으로 출력한다. 컨트롤러칩(120)은, 그 리드 데이터를 IC 카드 커맨드에 의해 IC 카드칩(150)으로 송신하며(217), IC 카드칩(150)이 이것을 수신한다(218). 이것에 의해, 플래시 메모리로부터 IC 카드로의 데이터 전송이 완료된다. 도 6은 시큐어 라이트 데이터 및 시큐어 리드 데이터의 포맷의 일례를 나타낸 것이다. 이 포맷은 실행할 시큐러티 처리 내용을 하나의 IC 카드 커맨드로 표현할 수 있고, 시큐러티 처리의 결과를 1개의 IC 카드 응답으로 표현할 수 있는 경우에 적용하는 것이 바람직하다. 상술한 바와 같이, IC 카드칩(150)에 송신하는 IC 카드 커맨드, IC 카드칩(150)으로부터 수신하는 IC 카드 응답은 모두 ISO/IEC7816-4 규격에 따른다. 본 규격에 따르면, IC 카드 커맨드의 구성은 4 바이트의 헤더(클래스 바이트 CLA, 명령 바이트 INS, 파라미터 바이트 P1과 P2)가 필수이며, 필요에 따라 입력 데이터 길이 지시 바이트 Lc, 입력 데이터 필드 DataIn, 출력 데이터 길이 지시 바이트 Le가 후에 계속 이어진다. 또한, IC 카드 응답의 구성은 2 바이트의 스테이터스 SW1과 SW2가 필수이며, 필요에 따라 출력 데이터 필드 DataOut이 그 앞에 위치한다. 본 포맷에서의 시큐어 라이트 데이터(601)는 IC 카드 커맨드(602) 앞에 IC 카드 커맨드 길이 Lca(604)를 붙이며, 또한 IC 카드 커맨드(602) 후에 더미 데이터(605)를 패딩한 것이다. Lca(604)의 값은 IC 카드 커맨드(602)의 각 구성 요소의 길이를 합계한 값이다. 한편, 시큐어 리드 데이터(611)는 IC 카드 응답(612)의 앞에 IC 카드 응답 길이 Lra(614)를 붙이며, 또한 IC 카드 응답(612) 후에 더미 데이터(615)를 패딩한 것이다. Lra(614)의 값은 IC 카드 응답(612)의 각 구성 요소의 길이를 합계한 값이다. 또, 이 도면에서는 IC 카드 커맨드에 Lc, DataIn, Le가 포함되며, IC 카드 응답에 DataOut이 포함되는 경우의 포맷 예를 나타내고 있다. 메모리 카드(110)에 대한 표준 메모리 카드 커맨드에 포함되는 데이터 리드/라이트 커맨드의 사양에서는 리드/라이트 액세스하는 데이터를 고정 길이의 블록 단위로 처리하는 것이 기본으로 되어있다. 따라서, 시큐어 라이트 데이터(601)나 시큐어 리드 데이터(611)의 사이즈도, 메모리 카드(110)의 표준 메모리 카드 커맨드의 사양에 준거한 블록 사이즈에 일치시키는 것이 바람직하다. 더미 데이터(605, 615)는 시큐어 라이트 데이터(601)나 시큐어 리드 데이터(611)의 사이즈를 블록 사이즈에 일치시키기 위해 적용된다. 블록 사이즈로서 채용하는 값은 일반 소형 메모리 카드가 논리 파일 시스템에 채용하고 있는 FAT 방식에서의 섹터 사이즈(512 바이트)가 바람직하다. 패딩하는 더미 데이터(605, 615)는 모두 제로이어도 되며, 난수이어도 되고, 컨트롤러칩(120)이나 호스트 기기(160)가 데이터 에러를 검출하거나 정정하기 위한 체크 섬이어도 된다. Lca(604)의 값은 컨트롤러칩(120)이 시큐어 라이트 데이터(601)로부터 더미 데이터(605)를 제거하여 IC 카드 커맨드(602)를 추출하기 위해 사용하며, Lra(614)의 값은 호스트 기기(160)가 시큐어 리드 데이터(611)로부터 더미 데이터(615)를 제거하여 IC 카드 응답(612)을 추출하기 위해 사용한다.
컨트롤러칩(120)은 전원 공급 단자, 클럭 입력 단자를 통해, IC 카드칩(150)으로의 전원 공급, 클럭 공급을 제어한다. 호스트 기기(160)로부터 시큐러티 처리를 요구받지 않을 때에는 IC 카드칩(150)으로의 전원 공급이나 클럭 공급을 정지시킬 수 있어서, 메모리 카드(110)의 전력 소비를 줄일 수 있다.
전원 공급되어 있지 않은 IC 카드칩(150)을, IC 카드 커맨드를 수신할 수 있는 상태로 하기 위해서는 먼저, IC 카드칩(150)에 전원 공급을 개시하여, 리세트 처리를 실시하는 것이 필요하다. 컨트롤러칩(120)은 메모리 카드(110)가 호스트 기기(160)로부터 시큐어 라이트 커맨드를 수신한 것을 계기로, 전원 공급 단자를 통해 IC 카드칩(150)으로의 전원 공급을 개시하는 기능을 갖는다. 또한, 컨트롤러칩(120)은 메모리 카드(110)가 호스트 기기(160)로부터 시큐어 라이트 커맨드를 수신한 것을 계기로, 리세트 입력 단자를 통해 IC 카드칩(150)의 리세트 처리를 행하는 기능을 갖는다. 컨트롤러칩(120)은 시큐어 라이트 커맨드를 수신할 때까지 IC 카드칩(150)으로의 전원 공급을 정지시켜 둘 수 있다. 따라서, 메모리 카드(110)의 전력 소비를 삭감할 수 있다.
컨트롤러칩(120)은 IC 카드칩(150)의 클럭 입력 단자를 통해 IC 카드칩(150)에 공급하는 클럭 신호를 메모리 카드(110) 내부에서 발생하여, 그 주파수, 공급 개시 타이밍, 공급 정지 타이밍을 제어하는 기능을 갖는다. 외부 단자(140)의 클럭 입력 단자의 클럭 신호와 무관하게 할 수 있기 때문에, 호스트 기기(160)에 의한 타이밍 해석, 전력 차분 해석, 고장 이용 해석이라 불리는 공격법에 대하여 시큐러티가 향상된다.
플래시 메모리칩(130)은 노멀 데이터 에어리어(131)와 관리 에어리어(132)와 시큐어 데이터 에어리어(133)를 포함한다.
노멀 데이터 에어리어(131)는 섹터 단위로 논리 어드레스가 맵핑되어 있는 영역이며, 호스트 기기(160)가 표준 메모리 카드 커맨드를 사용함으로써 지정한 논리 어드레스에 데이터를 기입 및 판독할 수 있는 영역이다.
시큐어 데이터 에어리어(133)는 IC 카드칩(150) 내의 EEPROM(152)에 저장된 어플리케이션 프로그램(예를 들면, 어플리케이션 프로그램 A(153)가 어플리케이션 프로그램 B(154))를 CPU(151)가 실행할 때에(즉, 시큐러티 처리를 실행할 때에), 취급하는 데이터를 저장할 수 있는 영역이다. 시큐어 데이터 에어리어(133)는 복수의 블록으로 분할되어 있다. 이것을 시큐어 데이터 블록이라 한다. 예를 들면, 시큐어 데이터 에어리어(133)는 4개의 시큐어 데이터 블록(133a, 133b, 133c, 133d)으로 구성된다. 시큐어 데이터 블록은 컨트롤러칩(120)이 어플리케이션 프로그램마다 그 이용권을 할당할 수 있는 단위이다. 예를 들면, 어플리케이션 프로그램 A(153)는 시큐어 데이터 블록c(133c)의 이용권을 가지며, 어플리케이션 프로그램 B(154)는 시큐어 데이터 블록a(133a)의 이용권을 갖는다. 또한, 각 시큐어 데이터 블록은 복수의 고정 길이 데이터 레코드로 분할되어 있다. 예를 들면, 1 레코드의 사이즈는 128 바이트이며, 1개의 시큐어 데이터 블록 당 8192개의 레코드로 구성된다. 이 때, 1개의 시큐어 데이터 블록의 사이즈가 1 메가바이트로 되어, 시큐어 데이터 에어리어(133)의 용량은 4 메가바이트로 된다. 따라서, EEPROM(152)에 저장된 어플리케이션 프로그램은 시큐어 데이터 에어리어(133)에 저장된 데이터에 액세스함으로써, EEPROM(152)의 용량 이상의 불휘발 데이터를 이용할 수 있다. 예를 들면, IC 카드칩(150) 내의 어플리케이션 프로그램 A(153)가 전자 결제에 관한 시큐러티 처리를 위한 프로그램인 경우, 결제 로그(지불 금액이나 일시 등)를 시큐어 데이터 에어리어(133)에 저장함으로써, EEPROM(152)만을 이용하는 것보다도많은 결제 로그를 보존할 수 있어서, 사용자의 편리성이 높아진다. IC 카드칩(150)으로부터 시큐어 데이터 에어리어(133)로의 액세스(라이트나 리드)는 IC 카드칩(150)으로부터의 요구에 기초하여 컨트롤러칩(120)이 실행하지만, 그 요구의 발생 조건은 IC 카드의 어플리케이션 프로그램의 임의이다. 예를 들면, EEPROM(152)의 용량이 어떠한 임계값 이하가 된 것(따라서, 카드 외부에 기록하지 않을 수 없음), IC 카드칩 내의 데이터가 어떠한 보호 기준에 만족하지 않는 것(따라서, 카드 외부에 기록하여도 문제 없음), EEPROM(152) 내에 원하는 데이터가 발견되지 않는 것(따라서, 카드 외부로부터 판독함) 등을 들 수 있다. IC 카드칩(150)으로부터 시큐어 데이터 에어리어(133)로의 액세스의 상세한 수순에 대해서는 후술한다.
한편, 관리 에어리어(132)는 컨트롤러칩(120)이 시큐어 데이터 에어리어(133)를 관리하기 위한 정보를 저장하는 영역이다. 컨트롤러칩(120)은 메모리 카드(110)가 호스트 기기(160)로부터 시큐어 라이트 커맨드를 수신한 것을 계기로, 이 영역에 정보를 저장하거나, 삭제하기도 한다. 그 커맨드에 대해서는 후술한다. 관리 에어리어(132)는 록 플래그(134)와 패스워드 에어리어(135)와 관리 테이블(136)을 포함한다.
관리 테이블(136)은 시큐어 데이터 에어리어(133)를 구성하고 있는 각 시큐어 데이터 블록의 이용권을 갖는 어플리케이션 프로그램을 등록하기 위한 영역이다. 어플리케이션 프로그램을 식별하기 위해, 이 영역에 AID를 저장함으로써 어플리케이션 프로그램을 등록하는 것이 바람직하다. AID를 이용함으로써, 시큐어 데이터 에어리어(133)를 사용하는 어플리케이션 프로그램을 확실하게 식별할 수 있다. 컨트롤러칩(120)은 AID(137)에 동일한 AID를 복수 저장하는 것을 금지한다. 관리 테이블(136)의 블록 란은 시큐어 데이터 블록을 식별하기 위한 블록 식별자로서 블록의 선두 어드레스값을 등록한다. 단, 선두 어드레스값 대신 메모리 카드(110) 내에서 고유한 번호를 블록 식별자로서 등록하여도 된다. 또한, 관리 테이블(136) 대신, 각 시큐어 데이터 블록 내에 직접 AID를 등록하여도 된다.
관리 테이블(136)에는 AID(137)뿐만 아니라, 어플리케이션 프로그램마다 전송 커맨드 코드(138)를 저장할 수 있다. 이 전송 커맨드 코드(138)는 컨트롤러칩(120)이 시큐어 데이터 블록의 이용권을, 어플리케이션 프로그램을 위해 할당할 때, 컨트롤러칩(120)에 의해 생성되는 것은 바람직하다. 전송 커맨드 코드란, "라이트 전송 커맨드" 및 "리드 전송 커맨드" 각각의 커맨드 APDU(Application Protocol Data Unit)의 CLA 바이트와 INS 바이트에 설정하는 2 바이트 ×2개의 값이다. 여기서, "라이트 전송 커맨드" 및 "리드 전송 커맨드"란, 시큐어 데이터 에어리어(133)에 레코드 데이터를 라이트하기 전, 혹은 거기에서 레코드 데이터를 리드한 후에, 컨트롤러칩(120)과 IC 카드칩(150) 간에서 그 레코드 데이터를 전송하기 위해, 컨트롤러칩(120)이 IC 카드칩(150)에 대하여 발행하는 IC 카드 커맨드 형식의 커맨드이다. 특히, 컨트롤러칩(120)로 레코드 데이터를 송출하기 위한 커맨드를 라이트 전송 커맨드라 하며, IC 카드칩(150)으로 레코드 데이터를 전송하기 위한 커맨드를 리드 전송 커맨드라 한다. 이들의 커맨드의 상세한 설명은 후술한다. 시큐어 데이터 에어리어(133)의 이용권을 갖는 어플리케이션 프로그램 A(153)이나 어플리케이션 프로그램 B(154)에는 라이트/리드 전송 커맨드를 수신했을 때에 레코드 데이터를 취급하는 처리 프로그램이 기술되어 있다. 전송 커맨드 코드(138)는 어플리케이션 프로그램마다 개별적으로 정해지도록 되어 있다. 만일, 전송 커맨드 코드가 모든 어플리케이션 프로그램에 공통의 고정값이면, 호스트 기기(160)로부터의 시큐어 라이트 데이터에 포함되는 어플리케이션 프로그램에 특유의 커맨드와 라이트/리드 전송 커맨드와의 사이에서 코딩 경합이 발생할 가능성이 있다. 본 발명에 따르면, 이러한 코딩 경합을 방지할 수 있다. 또, 전송 커맨드 코드(138) 중 INS 코드에 관해서는 전송 프로토콜의 형편상 ISO/IEC7816-3에 준거하지 않으면 안된다.
록 플래그(134)는 관리 테이블(136)에 저장된 등록 정보의 변경의 가부를 나타내는 1 바이트의 데이터를 저장하는 영역이다. 이 영역에 FFh를 설정함으로써 관리 테이블(136)의 정보의 변경이 금지 상태(록 상태)인 것을 나타낸다. 또한, 00h를 설정함으로써 관리 테이블(136)의 정보의 변경이 허가 상태(언록 상태)인 것을 나타낸다.
패스워드 에어리어(135)는 관리 테이블(136)의 정보를 언록 상태로 하기 위한 255 바이트의 패스워드의 참조값을 저장해 두는 영역이다. 관리 테이블(136)의 정보를 록할 때에는 반드시, 호스트 기기(160)로부터 시큐어 라이트 커맨드에 의해, 255 바이트의 패스워드 참조를 이 영역에 설정한다. 관리 테이블(136)의 정보를 언록 상태로 하는 경우에는 호스트 기기(160)로부터 시큐어 라이트 커맨드에 의해 록 시에 설정한 패스워드 참조와 동일한 패스워드를 입력할 필요가 있다. 입력한 패스워드와 패스워드 참조와의 일치에 의해, 관리 테이블(136)의 정보의 변경을 언록할 수 있다.
관리 에어리어(132)는 호스트 기기(160)가 부정하게 액세스하여 시큐러티 처리를 해석할 수 없도록, 컨트롤러칩(120)에 의해 물리적으로 액세스 제한이 가해지고 있다. 즉, 관리 에어리어(132)는 컨트롤러칩(120)에 의한 논리 어드레스가 할당되어 있지 않기 때문에, 호스트 기기(160)가 직접 데이터를 기입 및 판독할 수 없다. 따라서, 메모리 카드(110)의 시큐러티 처리의 신뢰성이나 안전성이 향상된다.
이하, 도 3을 참조하면서, 시큐어 데이터 에어리어(133)에 대한 레코드 데이터의 라이트/리드 액세스에서 이용되는 라이트/리드 전송 커맨드의 커맨드 APDU와 응답 APDU에 대하여 상세히 설명한다.
도 2a는 IC 카드칩(150)이 출력하는 응답 APDU를 나타내고 있다. 이 응답 APDU(300)에 포함되는 DataOut(304)의 선두 2 바이트(이하, 선두부터 순서대로 제1 제어 바이트(301), 제2 제어 바이트(302)라 함), 및 SW1 바이트(305)와 SW2 바이트(306)에 특별한 값을 설정함으로써, IC 카드칩(150)은 컨트롤러칩(120)에 시큐어 데이터 에어리어(133)에 대한 액세스 요구를 통지할 수 있다. 또, 후속 출력 데이터(303)(DataOut(304) 중 제1 제어 바이트(301)와 제2 제어 바이트(302)를 제외한 부분)는 액세스 요구에 필요한 정보를 송신하기 위해 사용된다.
IC 카드칩(150)은 컨트롤러칩(120)에 대하여 시큐어 데이터 에어리어(133)로 액세스할 것을 요구하기 위해 SW1 바이트(305)와 SW2 바이트(306)에 90FFh라는 전용 스테이터스값을 설정해야 한다. 컨트롤러칩(120)은 IC 카드칩(150)이 출력하는 응답 APDU를 항상 감시하여, SW1 바이트(305)와 SW2 바이트(306)의 값이 90FFh인 것을 검출하면, 그 전방에 있는 DataOut(304)의 제1 제어 바이트(301), 제2 제어 바이트(302)를 조사하여, 요구된 액세스의 내용 등을 인지한다. 한편, 90FFh가 아닌 경우에는 이 응답 APDU를 포함하는 시큐어 리드 데이터를 호스트 기기(160)에 출력한다. 단, SW1 바이트(305)와 SW2 바이트(306)의 값이 90FFh이어도, 조건에 따라 그대로 호스트 기기(160)에 출력되는 경우가 있다. 그 상세는 후술한다.
컨트롤러칩(120)은 시큐어 데이터 에어리어(133)로의 액세스를 개시할 때, IC 카드칩(150) 상에서 선택되어 있는 어플리케이션 프로그램이 어떤 것인지에 따라 참조 부호133a∼133d 중에서 액티브로 할 시큐어 데이터 블록을 선택한다. 액세스해야야 할 시큐어 데이터 블록의 선택은 IC 카드칩(150)으로부터 액세스 개시 요구가 발생한 직후에 행한다. 액세스 개시 요구를 위해 DataOut(304)에 설정하는 데이터의 사양을 이하에 나타낸다. 제1 제어 바이트(301)의 상위 4 비트에는 0001을 설정한다. 제1 제어 바이트(301)의 하위 4 비트에는 액세스 모드를 나타내는 코드를 설정한다. 여기서, 지정 가능한 액세스 모드에는 레코드 데이터의 라이트, 레코드 데이터의 리드의 2종류가 있다. 0001이라는 코드는 레코드 데이터의 라이트이, 0010이라는 코드는 레코드 데이터의 리드이다. 그 밖의 코드는 무효하다. 또한, 후속 출력 데이터(303)에는 IC 카드칩(150) 상에서 선택되어 있는 어플리케이션 프로그램의 AID를 설정한다. 예를 들면, 어플리케이션 프로그램 A(153)가 선택되어 있으면 AID(155)를, 어플리케이션 프로그램 B(154)가 선택되어 있으면AID(156)를 설정한다. 제2 제어 바이트(302)에는 그 AID의 길이를 설정한다.
컨트롤러칩(120)은 제1 제어 바이트의 상위 4 비트가 0001이면, 후속 출력 데이터(303)에 포함되는 AID에 의해 관리 테이블(136) 내의 모든 AID(137)를 검색하여, 액티브로 해야 할 시큐어 데이터 블록을 결정한다. 일치하는 AID가 발견되지 않은 경우에는 이 응답 APDU를 포함하는 시큐어 리드 데이터를 호스트 기기(160)로 출력한다. AID를 검출하여, 그것에 대응하는 시큐어 데이터 블록이 판명된 후, 컨트롤러칩(120)은 제1 제어 바이트의 하위 4 비트가 0001이면 라이트의 액세스, 0010이면 리드의 액세스를 개시한다고 인식한다. 제1 제어 바이트의 하위 4 비트가 그것 이외의 경우에는 이 응답 APDU를 포함하는 시큐어 리드 데이터를 호스트 기기(160)로 출력한다.
컨트롤러칩(120)이 액세스 모드(라이트 또는 리드)를 인지한 후, 그 모드에 따라 라이트/리드 전송 커맨드를 발행함으로써, 액티브한 시큐어 데이터 블록에 대하여 라이트해야 할 레코드 데이터, 또는 리드한 레코드 데이터를 IC 카드칩(150)과 컨트롤러칩(120) 간에서 전송할 수 있다. 도 3b와 도 3c는 라이트/리드 전송 커맨드의 커맨드 APDU를 나타낸 것이다. 도 3b는 컨트롤러칩(120)으로부터 IC 카드칩(150)으로의 전송 데이터가 없는 경우, 도 3c는 전송 데이터가 있는 경우를 나타내고 있다. 상술한 바와 같이, 라이트/리드 전송 커맨드의 커맨드 APDU(310)(또는, 320)의 CLA 바이트(314)(또는, 326)와 INS 코드315(또는, 327)에는 미리 어플리케이션 프로그램마다 등록된 것을 설정한다. 그 때문에, 관리 테이블(136)로부터 2 바이트 ×2개의 전송 커맨드 코드(138)를 판독한다.
라이트/리드 전송 커맨드의 커맨드 APDU(310)(또는, 320)에서는 직전의 액세스 결과를 IC 카드칩(150)에 통지하기 위해, P1 바이트(316)(또는, 328)와 P2 바이트(317)(또는, 329)에 특수한 값을 설정한다. 0000h는 직전의 액세스에 에러가 없는 것을 의미한다. 80XXh는 직전의 액세스에 에러가 발생한 것을 의미한다. 또, XX는 에러 내용을 나타내는 16진 코드이다. 에러의 경우, 액티브한 시큐어 데이터 블록으로의 데이터 액세스는 실행되지 않는다. 따라서, 시큐어 데이터 블록의 레코드 데이터의 내용도 변화하지 않는다.
IC 카드칩(150)은 라이트/리드 전송 커맨드의 응답 APDU(300)에서의 후속 출력 데이터(303)를 이용하여, 라이트하고자 하는 레코드 번호와 레코드 데이터, 또는 리드하고자 하는 레코드 번호를 컨트롤러칩(120)으로 송신한다. 라이트 모드에서는, 지정 레코드 번호(4 바이트)와 라이트 데이터(128 바이트)의 연결 데이터를 설정하며, 리드 모드에서는, 지정 레코드 번호(4 바이트)를 설정한다. 이와 같이 후속 출력 데이터(303)의 길이는 액세스 모드에 따라 변하기 때문에, 라이트/리드 전송 커맨드의 커맨드 APDU의 Le 바이트(313)(또는, 325)에는 액세스 모드에 따른 값을 설정할 필요가 있다. 라이트 모드에서는 후속 출력 데이터(303)의 길이가 84h로 되기 때문에 DataOut(304)의 길이는 86h로 된다. 따라서, Le 바이트(313)(또는, 325)에는 86h를 설정한다. 리드 모드에서는 후속 출력 데이터(303)의 길이가 04h로 되기 때문에 DataOut(304)의 길이는 06h로 된다. 따라서, Le 바이트(313)(또는, 325)에는 06h를 설정한다.
액세스 개시 직후의(즉, 최초로 발행됨) 라이트/리드 전송 커맨드의 커맨드APDU는 도 3b의 형식으로 된다. 그 때, P1 바이트(316)와 P2 바이트(317)에는 0000h를 설정한다. Le 바이트(313)에는 라이트 모드의 경우 86h를 설정하며, 리드 모드인 경우 06h를 설정한다.
라이트/리드 전송 커맨드의 응답 APDU는 도 3a의 형식을 취한다. IC 카드칩(150) 상에서 선택되어 있는 어플리케이션 프로그램은 응답 APDU(300)를 이용하여 액티브한 시큐어 데이터 블록에 대한 액세스(라이트/리드)를 컨트롤러칩(120)에 요구할 수 있다. 이하, 이것을 액세스 실행 요구라 한다. 제1 제어 바이트(301)와 제2 제어 바이트(302)에 설정하는 데이터의 사양을 이하에 나타낸다. 제1 제어 바이트(301)의 상위 4 비트에는 0010을 설정한다. 제1 제어 바이트(301)의 하위 4 비트에는 요구하는 액세스를 나타내는 코드를 설정한다. 0001이라는 코드는 레코드 데이터의 라이트이며, 0010이라는 코드는 레코드 데이터의 리드이다. 그 밖의 코드는 무효하다. 이 코드가 나타내는 액세스 모드는 컨트롤러칩(120)이 인식하는 액세스 모드에 일치해야만 한다. 또한, 그 제2 제어 바이트(302)에 의해 다음회의 액세스 모드(라이트/리드)의 요구를 행할 수 있다. 컨트롤러칩(120)은 이것을 참조하여, 자신이 인식하는 액세스 모드를 스위치한다.
컨트롤러칩(120)은 제1 제어 바이트(301)의 상위 4 비트가 0010이면, 액티브한 시큐어 데이터 블록에 대하여, 지정된 레코드 번호의 데이터를 라이트/리드한다. 라이트/리드 처리가 정상 종료한 경우(액세스 결과(312)(또는, 322)의 값이 0000h), 제2 제어 바이트(302)가 01h이면 자신이 인식하는 액세스 모드를 라이트 모드로 스위치하며, 02h이면 리드 모드로 스위치한다. 라이트/리드 처리에 어떠한에러가 있었던 경우(액세스 결과(312)(또는, 322)의 값이 80XXh), 자신이 인식하는 액세스 모드를 스위치하지 않고 에러가 일어난 시점의 것을 유지한다.
컨트롤러칩(120)이 2회째 이후에 발행하는 라이트/리드 전송 커맨드의 커맨드 APDU는 직전의 액세스 결과나 액세스 모드의 상태 천이에 따라 도 3b의 형식이 되거나, 도 3c의 형식이 되기도 한다. 또한, Le(313)(또는, 325)의 값도 변한다. 그 상세를 이하에 나타낸다.
직전의 라이트 액세스가 정상이고 다음회도 라이트 모드일 때, 도 3b의 형식이고, 액세스 결과(312)의 값이 0000h에서, Le(313)의 값은 86h이다.
직전의 라이트 액세스가 정상이며 다음회가 리드 모드일 때, 도 3b의 형식이며, 액세스 결과(312)의 값이 0000h이며, Le(313)의 값은 06h이다.
직전의 라이트 액세스가 정상이며 다음회도 리드 모드일 때, 도 3c의 형식이며, 액세스 결과(322)의 값이 0000h이고, Lc(323)의 값은 80h이며, DataIn(324)에는 리드한 레코드 데이터가 설정되고, Le(325)의 값은 06h이다.
직전의 리드 액세스가 정상이며 다음회가 라이트 모드일 때, 도 3c의 형식이며, 액세스 결과(322)의 값이 0000h이고, Lc(323)의 값은 80h이며, DataIn(324)에는 리드한 레코드 데이터가 설정되고, Le(325)의 값은 86h이다.
직전의 라이트 액세스가 에러일 때, 도 3b의 형식이며, 액세스 결과(312)의 값이 80XXh이고, Le(313)의 값은 86h이다.
직전의 리드 액세스가 에러일 때, 도 3b의 형식이며, 액세스 결과(312)의 값이 80XXh이고, Le(313)의 값은 06h이다.
액세스 에러 시에 액세스 결과(312)(또는, 322)에 설정하는 80XXh에서, 에러 내용을 나타내는 코드 XX의 예를 이하에 나타낸다.
XX = 01은 지정된 레코드 번호가 액세스 가능한 범위 이외인 에러를 의미한다.
XX = 02는 플래시 메모리칩(130)이 고장 등에 의해 이용할 수 없는 에러를 의미한다.
XX = 03은 제1 제어 바이트(301)의 하위 4 비트가 현재의 액세스 모드에 합치하지 않는 에러를 의미한다.
XX = 04는 제2 제어 바이트(302)로 요구된 다음회의 액세스 모드가 부정한 에러를 의미한다.
도 4를 참조하면서, IC 카드칩(150) 내의 어플리케이션 프로그램이 시큐어 데이터 에어리어(133)에 액세스를 개시할 때의 처리의 흐름, 및 라이트/리드 전송 커맨드에 의해 거기에 대한 액세스를 실행할 때의 처리의 흐름을 설명한다.
호스트 기기(160)는 메모리 카드(110)에 시큐어 라이트 커맨드를 발행하여(401), 시큐어 라이트 데이터(601)를 입력한다(402). 컨트롤러칩(120)은 시큐어 라이트 데이터(601)로부터 IC 카드 커맨드의 커맨드 APDU(602)를 추출하며(403), 그것을 이용하여 IC 카드칩(150)에 IC 카드 커맨드를 발행한다(404).
IC 카드칩(150)은 그 IC 카드 커맨드를 수신하고(405), 시큐어 데이터 에어리어(133)로의 액세스를 요구하는 IC 카드 응답(300)을 작성하며, 그것을회신한다(406). 컨트롤러칩(120)은 이 응답을 수신하여, 그 SW1 바이트(305)와 SW2 바이트(306)가 90FFh인지를 조사한다(407). 90FFh가 아니면 단계 408로 이행한다. 90FFh이면, 제1 제어 바이트(301)의 상위 4 비트가 0001(액세스 개시 요구)인지를 조사한다(412). 0001이 아니면 단계 420으로 이행한다. 0001이면, 관리 테이블(136)이 록되어 있는지 조사한다(413). 언록되어 있으면 단계 408로 이행한다. 록되어 있으면, 후속 출력 데이터(303)에 포함되는 AID에 의해 관리 테이블(136) 상의 AID(137)를 검색한다(414). 일치하는 AID를 검출했으면(415), 컨트롤러칩(120)은 액세스 개시 요구를 승인하여, 단계 416으로 이행한다. 검출하지 않으면 액세스 개시 요구를 각하하여, 단계 408로 이행한다. 단계 416에서는 검출한 AID(137)에 대응하는 시큐어 데이터 블록을 선택하여, 그것을 액티브로 한다. 또한, 대응하는 전송 커맨드 코드(138)를 취득한다(417). 그리고, 제1 제어 바이트(301)의 하위 4 비트를 조사하여, 개시하는 액세스 모드를 취득하며(418), 그 액세스 모드에 따라 도 3b에 도시한 바와 같은 라이트/리드 전송 커맨드를 작성한다(419). 그 후, 단계 404로 되돌아가 IC 카드칩(150)으로 라이트/리드 전송 커맨드를 발행한다.
단계 420에서는 제1 제어 바이트(301)의 상위 4 비트가 0010(액세스 실행 요구)인지를 조사한다. 0010이 아니면 단계 408로 이행한다. 0010이면, 액티브한 시큐어 데이터 블록이 존재하는지, 또는 제1 제어 바이트(301)의 하위 4 비트가 컨트롤러칩(120)이 인지하는 액세스 모드에 합치하는지를 조사한다(421). 어느 하나가 일치하지 않으면 단계 408로 이행한다. 둘 다 모두 합치하면, 액세스 실행을승인하여, 후속 출력 데이터(303)에 포함되는 레코드 번호를 취득한다(422). 그리고, 그 레코드 번호가 지시하는 데이터에 대하여 라이트/리드를 실행한다(423). 이 때, 라이트 모드인 경우에는 후속 출력 데이터(303)에 포함되는 128 바이트의 데이터를 라이트한다. 다음으로, 그 액세스 결과를 나타내는 코드를 312 또는 322로 설정한다(424). 그리고, 제1 제어 바이트(301)의 하위 4 비트를 조사하여, 다음회의 액세스 모드를 취득하고(418), 그 액세스 모드에 따라 도 3b 또는 도 3c에 도시한 바와 같은 라이트/리드 전송 커맨드를 작성한다(419). 그 후, 단계 404로 되돌아가서, IC 카드칩(150)으로 라이트/리드 전송 커맨드를 발행한다.
단계 408에서는 IC 카드칩(150)이 회신한 응답 APDU(612)로부터 시큐어 리드 데이터(611)를 작성한다. 단계 408에 도달함으로써, 시큐어 데이터 에어리어(133)로의 액세스는 종료한다. 이 후, 호스트 기기(160)는 시큐어 리드 커맨드를 발행하며(409), 컨트롤러칩(120)은 시큐어 리드 데이터(611)를 출력한다(410). 그리고, 호스트 기기(160)는 시큐어 리드 데이터(611)를 수신한다(411).
이상으로부터, 호스트 기기(160)로부터 1조의 시큐어 라이트/시큐어 리드 커맨드를 메모리 카드(110)에 처리시키는 동안, IC 카드칩(150) 내의 어플리케이션 프로그램은 임의의 횟수, 시큐어 데이터 에어리어(133)로 액세스할 수 있다.
이하, 관리 에어리어(132)에 관한 액세스에 대하여 설명한다.
호스트 기기(160)가 관리 에어리어(132)의 정보에 액세스할 수 있도록, 메모리 카드(110)는 이하의 4개의 관리 커맨드에 따를 수 있다. 즉, (1) 어플리케이션 프로그램 등록 커맨드, (2) 어플리케이션 프로그램 등록 해제 커맨드, (3) 관리 테이블 록 커맨드, (4) 관리 테이블 언록 커맨드의 4개이다. (1)은 관리 테이블(136)에 시큐어 데이터 에어리어(133)를 이용하는 어플리케이션 프로그램을 등록하여, 어플리케이션 프로그램이 이용하는 시큐어 데이터 블록을 할당하는 커맨드, (2)는 관리 테이블(136)로부터 어플리케이션 프로그램의 등록 정보를 삭제하여, 시큐어 데이터 블록의 할당을 해제하는 커맨드, (3)은 관리 테이블(136) 상의 등록 정보의 변경을 금지하는 커맨드, (4)는 관리 테이블(136) 상의 등록 정보의 변경을 허가하는 커맨드이다. 이들의 커맨드는 일반 시큐러티 처리와 동일하게 시큐어 라이트 커맨드와 시큐어 리드 커맨드의 프로토콜에 의해 실시되며, 컨트롤러칩(120)에 의해 처리된다. 또한, 그 때에 입출력되는 시큐어 라이트 데이터와 시큐어 리드 데이터에 포함되는 APDU(도 6에서의 참조 부호 602나 612)를 이용하여 각 처리(등록, 등록 해제, 록, 언록)에 필요한 정보를 교환한다.
어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드에서는 DataIn(606)에 AID를 설정한다. 이 AID에 의해 등록하고자 하는 어플리케이션 프로그램을 지정한다. AID와 시큐어 데이터 블록을 어떻게 대응시킬지는 컨트롤러칩(120)이 결정한다. 호스트 기기(160)는 시큐어 데이터 블록을 직접 지정할 수 없다.
관리 테이블 록 커맨드에서는 DataIn(606)에 255 바이트의 패스워드를 설정한다. 그 패스워드는 패스워드 에어리어(135)에 설정되며, 록 플래그(134)가 FFh(록 상태)가 된다. 이것에 의해, 어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드가 무효로 된다. 이미 록 상태인 경우에는 그 패스워드는 패스워드 에어리어(135)에 설정되지 않고, 어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드는 유효한 상태 그대로 된다.
관리 테이블 언록 커맨드에서는 DataIn에 255 바이트의 패스워드를 설정한다. 그 패스워드는 패스워드 에어리어(135)에 설정된 값과 일치하는지 비교되어, 일치하였으면 록 플래그(134)가 00h(언록 상태)가 된다. 이것에 의해, 어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드가 유효해진다. 이미 언록 상태인 경우에는 어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드는 무효인 상태 그대로 된다.
어플리케이션 프로그램 등록 커맨드와 어플리케이션 프로그램 등록 해제 커맨드가 유효한 상태(언록 상태)에서는, 패스워드를 모르는 호스트 기기(160)에 의해 관리 테이블(136)의 정보가 부정하게 변경되어, 임의의 어플리케이션 프로그램이 그것 자체가 액세스 가능한 시큐어 데이터 블록 이외의 시큐어 데이터 블록을 라이트/리드한다는 부정 액세스가 발생할 수 있다. 따라서, 컨트롤러칩(120)은 록 플래그(134)의 값이 00h(언록 상태)에서는 IC 카드칩(150) 내에서 선택되어 있는 어플리케이션 프로그램이 시큐러티 데이터 에어리어로 액세스하는 것을 허가하지 않는다. 호스트 기기(160)는 관리 테이블(136)의 등록 정보의 설정/변경 후에는 관리 테이블 록 커맨드에 의해 반드시 록 플래그(134)를 FFh로 설정해야 한다.
도 5를 참조하면서, 상기 4개의 관리 커맨드의 처리의 흐름을 설명한다.
호스트 기기(160)는 메모리 카드(110)에 시큐어 라이트 커맨드를 발행하여(501), 시큐어 라이트 데이터(601)를 입력한다(502). 컨트롤러칩(120)은시큐어 라이트 데이터(601)로부터 IC 카드 커맨드의 커맨드 APDU(602)를 추출하여(503), 그것이 관리 커맨드인지를 조사한다(504). 관리 커맨드이면 단계 507로 이행한다. 한편, 관리 커맨드가 아니면, 그 커맨드 APDU(602)를 이용하여 IC 카드칩(150)으로 IC 카드 커맨드를 발행하며(505), IC 카드칩(150)으로부터 그 응답을 수신하여(506), 단계 527로 이행한다.
단계 507에서는 컨트롤러칩(120)은 커맨드 APDU(602)가 어플리케이션 프로그램 등록 커맨드를 나타내는 것인지를 조사한다. 어플리케이션 프로그램 등록 커맨드이면 단계 511로 이행한다. 또한, 그것이 어플리케이션 프로그램 등록 해제 커맨드를 나타내는 것인지를 조사한다(508). 어플리케이션 프로그램 등록 해제 커맨드이면 단계 512로 이행한다. 그렇지 않으면, 그것이 관리 테이블 록 커맨드를 나타내는 것인지를 조사한다(509). 관리 테이블 록 커맨드이면 단계 513으로 이행한다. 그렇지 않으면, 그것이 관리 테이블 언록 커맨드를 나타내는 것인지를 조사한다(510). 관리 테이블 언록 커맨드이면 단계 514로 이행한다. 그렇지 않으면, 단계 525로 이행한다.
단계 511에서는 록 플래그(134)를 볼 때, 관리 테이블(136)이 언록 상태인지를 조사한다. 록 상태이면 단계 525로 이행한다. 언록 상태이면, DataIn(606) 내의 AID와 동일한 것이 이미 등록되어 있는 AID(137) 내에 존재하는지 조사한다(515). 존재하고 있으면 단계 525로 이행한다. 존재하지 않으면, 관리 테이블(136) 상에 빈 부분이 있는지(즉, 아직 할당되어 있지 않은 시큐어 데이터 블록이 존재하는지)를 조사한다(516). 빈 부분이 없으면 단계 525로 이행한다.빈 부분이 있으면, 그 시큐어 데이터 블록에 대응하는 AID(137)와 전송 커맨드 코드(138)에, DataIn(606)에 포함되는 AID와 전송 커맨드 코드를 설정한다(517). 이것에 의해, AID로 나타낸 어플리케이션 프로그램이 그 시큐어 데이터 블록의 이용권을 획득한다. 그리고, 단계 526으로 이행한다.
단계 512에서는 록 플래그(134)를 보고, 관리 테이블(136)이 언록 상태인지를 조사한다. 록 상태이면 단계 525로 이행한다. 언록 상태이면, DataIn(606) 내의 AID에 의해, 등록되어 있는 모든 AID(137) 내를 검색한다(518). 일치하는 AID를 검출하였으면(519), 관리 테이블(136) 상으로부터 그 AID(137)와 그것에 대응하는 전송 커맨드 코드(138)를 삭제한다(520). 일치하는 AID를 검출하지 않으면 단계 525로 이행한다. 이것에 의해, AID로 나타낸 어플리케이션 프로그램이 그 시큐어 데이터 블록의 이용권을 잃는다. 그리고, 단계 526으로 이행한다.
단계 513에서는 록 플래그(134)를 보고, 관리 테이블(136)이 언록 상태인지를 조사한다. 록 상태이면 단계 525로 이행한다. 언록 상태이면, 록 플래그(134)에 FFh를 설정하며(521), 관리 테이블(136)을 록 상태로 한다. DataIn(606) 내의 패스워드를 패스워드 에어리어(135)에 설정한다(522). 그리고, 단계 526으로 이행한다.
단계 514에서는 록 플래그(134)를 보고, 관리 테이블(136)이 언록 상태인지를 조사한다. 언록 상태이면 단계 525로 이행한다. 록 상태이면, DataIn(606) 내의 패스워드가 패스워드 에어리어(135)에 설정한 것과 일치하는지를 조사한다(523). 일치하지 않으면, 단계 525로 이행한다. 일치하면, 록플래그(134)에 00h를 설정하며(524), 관리 테이블(136)을 언록 상태로 한다. 그리고, 단계 526으로 이행한다.
단계 525에서는 관리 커맨드의 처리에서 에러가 발생한 것을 호스트 기기(160)에 나타내기 위해, 에러 내용을 나타내는 스테이터스 코드를 포함하는 응답 APDU(612)을 작성하고, 단계 527로 이행한다. 단계 526에서는 관리 커맨드의 처리가 정상적으로 종료한 것을 호스트 기기(160)에 나타내기 위해, 정상 종료(예를 들면, 9000h)이라는 스테이터스 코드를 포함하는 응답 APDU(612)을 작성하고, 단계 527로 이행한다.
단계 527에서는 응답 APDU(612)으로부터 시큐어 리드 데이터(611)를 작성한다. 이 후, 호스트 기기(160)는 시큐어 리드 커맨드를 발행하며(528), 컨트롤러칩(120)은 시큐어 리드 데이터(611)를 출력한다(529). 그리고, 호스트 기기(160)는 시큐어 리드 데이터(611)를 수신한다(530).
또한, 본 발명의 적용 시에는 IC 카드칩(150)이 컨트롤러칩(120)에 시큐어 데이터 에어리어(133)로의 액세스를 요구하는 수단으로서, SW1 바이트(305)와 SW2 바이트(306)에 90FFh라는 전용 스테이터스값을 설정하는 것을 나타내었지만, 어디까지나 이것은 일례이며, 이것 이외의 수단으로 액세스를 요구하여도 된다. 예를 들면, 90FFh 이외의 스테이터스 코드이어도 되며, DataOut(304) 내에 전용의 패스워드 등을 포함하게 하여도 된다.
또한, 본 발명의 적용 시에는 메모리 카드(110)가 새로운 (혹은 상기) 관리 커맨드에 따라, 시큐어 데이터 에어리어(133)의 사이즈를 변화시킬 수 있는 기능을가져도 된다. 또한, 새로운 (혹은 상기) 관리 커맨드에 따라, 시큐어 데이터 블록의 분할수(상술한 바로는 분할수 = 4)를 변화시킬 수 있는 기능을 가져도 된다. 또한, 새로운 (혹은 상기) 관리 커맨드에 따라, 각 시큐어 데이터 블록의 사이즈를 개별적으로 변화시킬 수 있는 기능을 가져도 된다.
또한, 본 발명의 적용 시에는 상술한 패스워드의 길이는 255 바이트가 아니어도 된다. 단, 안전 상, 이 패스워드는 긴 쪽이 바람직하다.
또한, 본 발명의 적용 시에는 어플리케이션 프로그램 등록 해제 커맨드에 의해 개방된 시큐어 데이터 블록에, 그때까지 이 블록을 이용하고 있었던 어플리케이션 프로그램에 관한 기밀 데이터가 잔류하여, 다음에 그 블록의 사용권을 얻은 다른 어플리케이션 프로그램이 그 기밀 데이터를 취득하는 위험성이 있다. 따라서, 안전상, 등록 해제 후에 잔류한 데이터를 소거하는 것이 바람직하다. 그 소거의 실시는 상술한 어플리케이션 프로그램 등록 해제 커맨드의 처리 중에 행하여도 되고, 메모리 카드(110)가 호스트 기기(160)로부터의 새로운 관리 커맨드에 따라 행하여도 된다.
또한, 본 발명은 카드 형식 이외의 기억 장치에도 적용 가능하다.
본 발명에 따르면, 특정 어플리케이션 프로그램에 따른 처리를 실행하는 경우에, 특정 어플리케이션 프로그램에 관련되는 데이터를 메모리 장치 내부에서 처리함으로써, 특정 어플리케이션 프로그램에 따른 처리의 안전성을 향상시킬 수 있다는 효과를 발휘한다.
본 발명에 따르면, 메모리 장치가 실행해야 할 어플리케이션 프로그램마다 메모리 장치내의 메모리의 상이한 블록에 할당함으로써, 어플리케이션 프로그램 간의 데이터 간섭 즉, 임의의 어플리케이션 프로그램에 할당된 메모리가 다른 어플리케이션 프로그램에도 액세스되어 데이터가 할당되는 것을 억제할 수 있다는 효과를 발휘한다.

Claims (21)

  1. 복수의 어플리케이션 프로그램을 저장할 수 있는 메모리 카드에 있어서,
    외부의 호스트 기기와 접속하기 위한 인터페이스;
    상기 어플리케이션 프로그램을 저장하며, 상기 어플리케이션 프로그램을 실행하기 위한 IC 카드칩;
    상기 어플리케이션 프로그램에 관계된 관계 데이터를 저장하기 위한 불휘발성 메모리; 및
    상기 인터페이스와 상기 IC 카드칩과 상기 불휘발성 메모리에 접속된 컨트롤러
    를 포함하고,
    상기 컨트롤러는 상기 호스트 기기로부터 상기 인터페이스에 의해 수신된 특정 커맨드에 응답하여, 상기 IC 카드칩과 상기 불휘발성 메모리 간의 상기 관계 데이터의 전송을 실행하고, 상기 인터페이스를 통한 상기 호스트 기기로의 상기 관계 데이터의 전송을 금지하는 메모리 카드.
  2. 제1항에 있어서,
    상기 IC 카드칩은 상기 복수의 어플리케이션 프로그램을 저장할 수 있고 또한 실행할 수 있으며,
    상기 불휘발성 메모리는 복수의 블록으로 분할되고,
    상기 복수의 블록 중 각 블록은 각 어플리케이션 프로그램에 할당되며, 각 관계 데이터를 저장할 수 있는 메모리 카드.
  3. 제2항에 있어서,
    상기 불휘발성 메모리는, 상기 어플리케이션 프로그램을 식별하기 위한 어플리케이션 ID와, 상기 불휘발성 메모리로부터 상기 IC 카드칩으로의 상기 관계 데이터의 전송을 위한 오퍼레이션 코드와의 대응 관계를 저장하기 위한 관리 영역을 갖는 메모리 카드.
  4. 제3항에 있어서,
    상기 IC 카드칩에 적어도 하나의 어플리케이션 프로그램을 저장한 경우에, 상기 IC 카드칩에 저장된 어플리케이션 프로그램에 대응하는 상기 불휘발성 메모리 내의 상기 어플리케이션 ID의 변경 또는 추가 또는 삭제를 금지하는 록 기능과 상기 록 기능을 해제하는 언록 기능을 갖는 메모리 카드.
  5. 제3항 또는 제4항에 있어서,
    상기 컨트롤러는, 상기 IC 카드로부터의 어플리케이션 ID와 상기 불휘발성 메모리로부터의 어플리케이션 ID를 비교하여, 양자가 일치한 경우에, 상기 IC 카드칩과 상기 불휘발성 메모리 간의 상기 관계 데이터의 전송을 허가하는 메모리 카드.
  6. 제1항에 있어서,
    상기 관계 데이터는 상기 메모리 카드의 최초의 사용 시에 이미 상기 불휘발성 메모리에 저장되는 메모리 카드.
  7. 제6항에 있어서,
    상기 관계 데이터는 상기 IC 카드칩 내의 메모리에 저장되지 않고, 상기 메모리 카드의 최초의 사용 시에 이미 상기 불휘발성 메모리에 저장되는 메모리 카드.
  8. 제1항에 있어서,
    상기 특정 커맨드에 응답한 상기 관계 데이터의 전송의 실행 및 금지는 상기 불휘발성 메모리로부터 상기 IC 카드칩으로의 상기 어플리케이션 프로그램에 대응하는 제어 커맨드에 의해 제어되는 메모리 카드.
  9. 메모리 카드에 있어서,
    복수의 블록으로 분할된 메모리;
    IC 카드칩; 및
    상기 메모리 및 상기 IC 카드칩으로의 액세스를 제어하는 컨트롤러
    를 포함하고,
    상기 메모리의 각 블록은, 상기 IC 카드칩에 의해 실행되는 어플리케이션 프로그램을 위해 상기 어플리케이션 프로그램마다 할당되며,
    상기 메모리는 상기 IC 카드칩으로부터 상기 컨트롤러에 지시하는 처리 내용을 상기 컨트롤러로부터 상기 IC 카드칩에 조회하기 위한 커맨드를 기억할 수 있고,
    상기 IC 카드칩은 상기 IC 카드칩이 실행해야 할 어플리케이션 프로그램의 어플리케이션 ID를 상기 컨트롤러에 송출하며,
    상기 컨트롤러는 상기 메모리 내의 특정 커맨드 중 상기 IC 카드칩으로부터의 상기 어플리케이션 프로그램 ID에 대응하는 상기 커맨드를 특정하고, 특정된 상기 커맨드를 상기 IC 카드칩으로 송출하며,
    상기 IC 카드칩은 상기 컨트롤러로부터의 상기 커맨드에 응답하여 상기 처리 내용을 상기 컨트롤러에 지시하고,
    상기 컨트롤러는 상기 IC 카드칩으로부터의 지시에 응답하여 상기 처리를 실행하는 메모리 카드.
  10. 제9항에 있어서,
    상기 커맨드는, 상기 메모리의 블록에 기입해야 할 데이터를 상기 IC 카드칩으로부터 상기 컨트롤러로 전송하기 위한 제1 전송 커맨드와, 상기 메모리의 블록으로부터 판독된 데이터를 상기 컨트롤러로부터 상기 IC 카드칩으로 전송하기 위한 제2 전송 커맨드를 포함하는 메모리 카드.
  11. 제10항에 있어서,
    상기 커맨드는 외부의 호스트 기기로부터의 커맨드와 상이한 메모리 카드.
  12. 메모리 카드에 있어서,
    복수의 블록으로 분할된 메모리;
    IC 카드칩; 및
    상기 메모리 및 상기 IC 카드칩으로의 액세스를 제어하는 컨트롤러
    를 포함하고,
    상기 컨트롤러는 외부의 호스트 기기로부터의 제1 커맨드에 응답하여 상기 메모리의 블록의 이용권을, 상기 IC 카드칩에 의해 실행되어야 할 어플리케이션 프로그램을 위해 상기 어플리케이션 프로그램마다 할당하며,
    상기 컨트롤러는 상기 호스트 기기로부터의 제2 커맨드에 응답하여 상기 제1 커맨드에 응답한 처리를 실행할 수 있는 언록 상태로부터 상기 제1 커맨드에 응답한 처리를 거부하는 록 상태로 천이하는 메모리 카드.
  13. 제12항에 있어서,
    상기 메모리는 상기 블록의 식별자와 상기 블록의 이용권이 할당된 어플리케이션 프로그램의 식별자와의 대응을 관리하기 위한 관리 정보를 기억할 수 있고,
    상기 컨트롤러는 상기 언록 상태인 경우에 상기 관리 정보의 내용의 변경을허가하며,
    상기 컨트롤러는 상기 록 상태인 경우에 상기 관리 정보의 내용의 변경을 금지하는 메모리 카드.
  14. 제12항에 있어서,
    상기 메모리는 상기 블록의 식별자와 상기 블록의 이용권이 할당된 어플리케이션 프로그램의 식별자와의 대응을 관리하기 위한 관리 정보를 기억할 수 있고,
    상기 컨트롤러는 상기 블록의 이용권을 상기 어플리케이션 프로그램을 위해 할당하는 경우에 상기 블록의 식별자에 대응하는 상기 어플리케이션 프로그램의 식별자를 상기 관리 정보에 추가하는 메모리 카드.
  15. 제12항에 있어서,
    상기 메모리는 상기 제1 커맨드에 응답한 처리를 실행할 수 있는지의 여부를 식별하기 위한 플래그를 기억할 수 있고,
    상기 컨트롤러는 상기 언록 상태로부터 상기 록 상태로 천이하는 경우에 상기 플래그의 값을 변경하는 메모리 카드.
  16. 제12항에 있어서,
    상기 컨트롤러는 상기 호스트 기기로부터의 제3 커맨드에 응답하여 상기 록 상태로부터 상기 언록 상태로 천이하는 메모리 카드.
  17. 제16항에 있어서,
    상기 메모리는 상기 제3 커맨드에 응답한 처리를 허가하기 위한 참조 패스워드를 기억할 수 있고,
    상기 컨트롤러는 상기 호스트 기기로부터 수취한 패스워드와 상기 메모리 내의 상기 참조 패스워드가 일치한 경우에 상기 제3 커맨드에 응답하여 상기 록 상태로부터 상기 언록 상태로 천이하는 메모리 카드.
  18. 제12항에 있어서,
    상기 컨트롤러는 상기 호스트 기기로부터의 제4 커맨드에 응답하여 상기 어플리케이션 프로그램을 위해 할당된 상기 블록의 이용권을 해제하는 메모리 카드.
  19. 제18항에 있어서,
    상기 메모리는 상기 블록의 식별자와 상기 블록의 이용권이 할당된 어플리케이션 프로그램의 식별자와의 대응을 관리하기 위한 관리 정보를 기억할 수 있고,
    상기 컨트롤러는 상기 어플리케이션 프로그램을 위해 할당된 상기 블록의 이용권을 해제하는 경우에 상기 블록의 식별자에 대응하는 상기 어플리케이션 프로그램의 식별자를 상기 관리 정보로부터 삭제하는 메모리 카드.
  20. 제12항에 있어서,
    상기 메모리는, 상기 호스트 기기로부터 수취한 데이터를 기억하기 위한 제1 에어리어와, 상기 어플리케이션 프로그램을 위해 상기 블록의 이용권이 할당된 제2 에어리어를 갖는 메모리 카드.
  21. 제20항에 있어서,
    상기 컨트롤러는 상기 메모리의 상기 제2 에어리어에 기입해야 할 데이터를 상기 IC 카드칩으로부터 수신하거나 또는 상기 제2 에어리어로부터 판독된 데이터를 상기 IC 카드칩으로 송신하기 위한 전송 커맨드를 상기 어플리케이션 프로그램마다 생성하는 메모리 카드.
KR1020030099827A 2003-02-06 2003-12-30 메모리 카드 KR100575509B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003028998 2003-02-06
JPJP-P-2003-00028998 2003-02-06
JPJP-P-2003-00050243 2003-02-27
JP2003050243A JP4322021B2 (ja) 2003-02-06 2003-02-27 メモリカード

Publications (2)

Publication Number Publication Date
KR20040074212A true KR20040074212A (ko) 2004-08-23
KR100575509B1 KR100575509B1 (ko) 2006-05-03

Family

ID=32852675

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020030099827A KR100575509B1 (ko) 2003-02-06 2003-12-30 메모리 카드

Country Status (3)

Country Link
US (1) US7281101B2 (ko)
JP (1) JP4322021B2 (ko)
KR (1) KR100575509B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873753B2 (en) 2007-02-22 2011-01-18 Samsung Electronics Co., Ltd. Memory subsystem capable of accessing a plurality of memory bank identifications and method thereof
KR20120029521A (ko) * 2010-09-17 2012-03-27 주식회사 에스엠이네트웍스 보안 메모리 카드

Families Citing this family (48)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7197583B2 (en) * 2003-01-21 2007-03-27 Zentek Technology Japan, Inc. SDIO controller
JP4624732B2 (ja) * 2003-07-16 2011-02-02 パナソニック株式会社 アクセス方法
WO2005081891A2 (en) * 2004-02-23 2005-09-09 Lexar Media, Inc. Secure compact flash
JP4706220B2 (ja) * 2004-09-29 2011-06-22 ソニー株式会社 情報処理装置および方法、記録媒体、並びにプログラム
FR2878677B1 (fr) * 2004-11-30 2007-02-02 Gemplus Sa Communication de service d'application depuis une carte a microcontroleur vers un terminal
US20060129856A1 (en) * 2004-12-10 2006-06-15 Main Kevin K System and method for expansion card power limiting
US7428992B2 (en) * 2005-01-11 2008-09-30 Matsushita Electric Industrial Co., Ltd. Secure device and system for issuing IC cards
US7581678B2 (en) 2005-02-22 2009-09-01 Tyfone, Inc. Electronic transaction card
JP4400515B2 (ja) * 2005-06-13 2010-01-20 日本電気株式会社 ストレージシステム、ストレージ装置、論理ディスク接続関係変更方法及びプログラム
JP2007004522A (ja) 2005-06-24 2007-01-11 Renesas Technology Corp 記憶装置
US8074288B2 (en) * 2005-07-15 2011-12-06 Microsoft Corporation Isolation of application-specific data within a user account
JP2007102559A (ja) * 2005-10-05 2007-04-19 Toshiba Corp 携帯可能電子装置
JP4634924B2 (ja) * 2005-12-16 2011-02-16 株式会社日立情報制御ソリューションズ 認証方法、認証プログラム、認証システムおよびメモリカード
US20070218837A1 (en) * 2006-03-14 2007-09-20 Sony Ericsson Mobile Communications Ab Data communication in an electronic device
EP2024894A4 (en) * 2006-05-12 2016-09-21 Samsung Electronics Co Ltd APPARATUS AND METHOD FOR MANAGING SECURITY DATA
US20080022415A1 (en) * 2006-06-20 2008-01-24 Yu-Chiun Kuo Authority limit management method
US7775442B2 (en) * 2006-07-12 2010-08-17 Nokia Corporation Method for accessing after-operation information of secure element applications
JP2008112285A (ja) * 2006-10-30 2008-05-15 Toshiba Corp 不揮発性メモリシステム
US7762553B2 (en) * 2006-11-25 2010-07-27 Harris Curtis J Form-fitting electronic game controller cover
JP4943866B2 (ja) * 2007-01-18 2012-05-30 パナソニック株式会社 ネットワークカメラシステム
KR100843238B1 (ko) * 2007-02-16 2008-07-03 삼성전자주식회사 메모리 카드
JP4264958B2 (ja) * 2007-03-23 2009-05-20 フェリカネットワークス株式会社 携帯情報端末
FR2914459B1 (fr) * 2007-03-30 2009-07-03 Oberthur Card Syst Sa Carte a microprocesseurs
US20110271044A1 (en) * 2007-03-30 2011-11-03 Tyfone, Inc. Memory card having one or more secure elements accessed with hidden commands
JP4483891B2 (ja) * 2007-04-02 2010-06-16 フェリカネットワークス株式会社 情報処理端末、データ移動方法、およびプログラム
JP2009053970A (ja) * 2007-08-28 2009-03-12 Toshiba Corp 半導体装置
JP2010020513A (ja) * 2008-07-10 2010-01-28 Panasonic Corp Simカード、携帯端末及びリーダライタ装置
US8341083B1 (en) * 2007-09-12 2012-12-25 Devicefidelity, Inc. Wirelessly executing financial transactions
US9201790B2 (en) * 2007-10-09 2015-12-01 Seagate Technology Llc System and method of matching data rates
US8307131B2 (en) * 2007-11-12 2012-11-06 Gemalto Sa System and method for drive resizing and partition size exchange between a flash memory controller and a smart card
US9741027B2 (en) 2007-12-14 2017-08-22 Tyfone, Inc. Memory card based contactless devices
US7961101B2 (en) 2008-08-08 2011-06-14 Tyfone, Inc. Small RFID card with integrated inductive element
US8451122B2 (en) 2008-08-08 2013-05-28 Tyfone, Inc. Smartcard performance enhancement circuits and systems
US20100033310A1 (en) * 2008-08-08 2010-02-11 Narendra Siva G Power negotation for small rfid card
TWI380219B (en) * 2009-01-20 2012-12-21 Phison Electronics Corp Card reader with near field communication functions and near field communication device thereof
US8231061B2 (en) 2009-02-24 2012-07-31 Tyfone, Inc Contactless device with miniaturized antenna
US9037824B2 (en) * 2009-03-26 2015-05-19 Micron Technology, Inc. Password accessible microelectronic memory
JP5454933B2 (ja) * 2009-09-11 2014-03-26 株式会社東芝 携帯可能電子装置、icカード、および携帯可能電子装置の制御方法
KR101626084B1 (ko) * 2009-11-25 2016-06-01 삼성전자주식회사 멀티 칩 메모리 시스템 및 그것의 데이터 전송 방법
JP5565040B2 (ja) * 2010-03-30 2014-08-06 富士通株式会社 記憶装置、データ処理装置、登録方法、及びコンピュータプログラム
US20110300526A1 (en) * 2010-06-07 2011-12-08 Georgia State University Research Foundation Systems And Methods For Facilitating Classroom Interaction
JP2012064048A (ja) 2010-09-16 2012-03-29 Toshiba Corp 携帯可能電子装置、非接触icカード、および携帯可能電子装置のコマンド処理方法
US9311229B2 (en) * 2011-03-29 2016-04-12 Blackberry Limited System and method for managing flash memory
WO2013039451A1 (en) * 2011-09-13 2013-03-21 T-Data Systems (S) Pte Ltd A method for restricting access to data stored on a memory card and a memory card
CN105592033B (zh) * 2014-12-30 2018-12-25 中国银联股份有限公司 可信服务管理系统和方法
US10324656B1 (en) * 2016-07-29 2019-06-18 EMC IP Holding Company LLC Application-aware control for data services
FR3062501B1 (fr) * 2017-02-02 2019-03-15 Idemia France Procede pour la securite d'une operation electronique
US11194738B2 (en) * 2019-07-29 2021-12-07 International Business Machines Corporation Implementing management commands utilizing an in-band interface

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3536149B2 (ja) 1993-01-27 2004-06-07 大日本印刷株式会社 メモリ領域の管理方法
JPH10198776A (ja) 1997-01-14 1998-07-31 Dainippon Printing Co Ltd 携帯可能情報記録媒体およびこれに対する情報書込/読出方法
JPH11120300A (ja) * 1997-10-09 1999-04-30 Fujitsu Ltd 可搬型カード媒体,可搬型カード媒体のメモリ空間管理方法,可搬型カード媒体の発行方法および可搬型カード媒体のプログラムデータ書込方法並びにメモリ空間管理プログラムが記録されたコンピュータ読取可能な記録媒体
JP2000066882A (ja) 1998-08-19 2000-03-03 Hitachi Ltd Icカードおよびicカードのプログラム管理方法
JP2000172808A (ja) * 1998-12-01 2000-06-23 Toshiba Corp Icカードとアプリケーション管理方法
FR2790324B1 (fr) * 1999-02-25 2001-12-28 St Microelectronics Sa Dispositif d'acces securise a des applications d'une carte a puce
JP2002312221A (ja) * 2001-04-17 2002-10-25 Matsushita Electric Ind Co Ltd アクセス制御機能付き記憶装置、及びファイル・アクセス制御プログラム
JP4222509B2 (ja) * 2001-06-04 2009-02-12 株式会社ルネサステクノロジ 記憶装置
US6745944B2 (en) * 2001-06-20 2004-06-08 Capital One Financial Corporation System and method for identifying applications loaded in a smart card
JP2003030596A (ja) * 2001-07-13 2003-01-31 Hitachi Ltd 論理チャネル管理機能付き記憶装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7873753B2 (en) 2007-02-22 2011-01-18 Samsung Electronics Co., Ltd. Memory subsystem capable of accessing a plurality of memory bank identifications and method thereof
KR20120029521A (ko) * 2010-09-17 2012-03-27 주식회사 에스엠이네트웍스 보안 메모리 카드

Also Published As

Publication number Publication date
JP2004295160A (ja) 2004-10-21
KR100575509B1 (ko) 2006-05-03
US20040162932A1 (en) 2004-08-19
JP4322021B2 (ja) 2009-08-26
US7281101B2 (en) 2007-10-09

Similar Documents

Publication Publication Date Title
KR100575509B1 (ko) 메모리 카드
US7185145B2 (en) Memory card
US7469837B2 (en) Storage device
US7653796B2 (en) Information recording medium and region management method for a plurality of recording regions each managed by independent file system
US4901276A (en) Portable electronic apparatus having a function of checking for empty areas in which to write data
KR100371124B1 (ko) 스마트 카드에 데이터 객체를 저장하는 방법 및 그 애플리케이션 인터페이스
EP1304665A2 (en) Apparatus and method for controlling a card device
US20100070707A1 (en) Portable electronic device and data processing method in portable electronic device
US4839792A (en) Portable electronic apparatus with a device for determining data validity
US20060236026A1 (en) Method and system for allocating, accessing and de-allocating storage space of a memory card
US6804730B1 (en) Access control device, access control method, recording medium, and computer data signal for controlling allowance of access to storage area using certification data
KR20080089586A (ko) 명령 패스 스로우 메커니즘을 가지는 미디어 카드
KR940007350B1 (ko) 휴대가능 전자장치
US20070022222A1 (en) Memory device and associated method
WO2007107829A2 (en) A personal security token for at least two security environments and different access conditions thereupon
JP4443699B2 (ja) 携帯可能電子装置および携帯可能電子装置の制御方法
JP4057858B2 (ja) ファイル管理方法ならびにそれを用いたメモリカードおよび端末装置
JP2011060136A (ja) 携帯可能電子装置、および、携帯可能電子装置におけるデータ管理方法
JP2009129402A (ja) Icカード用半導体装置、icカード、及びicカード用端末装置
US20090083273A1 (en) Portable electronic apparatus and control method for portable electronic apparatus
JPH1074243A (ja) Icカード
JP2004038286A (ja) 携帯可能電子媒体及び携帯可能電子媒体の発行システム
JPH11282992A (ja) Icカード
JP2005011171A (ja) Icカード及びicカードプログラム
JP2014063310A (ja) Icカード、携帯可能電子装置、及びicカード処理装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20130404

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140401

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20190411

Year of fee payment: 14