KR100614064B1 - 휴대 가능한 전자 장치 - Google Patents

휴대 가능한 전자 장치 Download PDF

Info

Publication number
KR100614064B1
KR100614064B1 KR1020040102096A KR20040102096A KR100614064B1 KR 100614064 B1 KR100614064 B1 KR 100614064B1 KR 1020040102096 A KR1020040102096 A KR 1020040102096A KR 20040102096 A KR20040102096 A KR 20040102096A KR 100614064 B1 KR100614064 B1 KR 100614064B1
Authority
KR
South Korea
Prior art keywords
data
command
logical channel
card
memory
Prior art date
Application number
KR1020040102096A
Other languages
English (en)
Other versions
KR20050056869A (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 KR20050056869A publication Critical patent/KR20050056869A/ko
Application granted granted Critical
Publication of KR100614064B1 publication Critical patent/KR100614064B1/ko

Links

Images

Classifications

    • 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
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • G06F21/445Program or device authentication by mutual authentication, e.g. between devices or programs
    • 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
    • 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
    • G06Q20/35765Access rights to memory zones

Landscapes

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

Abstract

복수의 기록 데이터 영역으로 분할되는 파일에 액세스하기 위한 포인터 정보를 논리 채널마다 유지해 두고, 외부로부터 논리 채널을 지정한 파일 선택 커맨드를 수신하면, 그 파일 선택 커맨드에 의해 지정되는 논리 채널에 대응하는 포인터 정보에 기초하여 그 파일로의 액세스를 제어한다.

Description

휴대 가능한 전자 장치 {PORTABLE ELECTRONIC DEVICE}
도 1은 본 발명의 실시예에 따른 IC 카드의 구성을 개략적으로 도시하는 블럭도.
도 2는 데이터 메모리 내의 파일 구조를 도시하는 개념도.
도 3은 논리 채널 번호마다 기록 포인터의 저장 상태를 도시한 도면.
도 4는 데이터 메모리 내의 EF의 일례를 도시한 도면.
도 5는 논리 채널의 개념을 설명하는 도면.
도 6은 DF1에 대하여 논리 채널 번호 #1을 할당한 상태의 파일 구조를 도시하는 개념도.
도 7은 커맨드의 CLA 바이트의 부호화(coding)에 대해서 설명하는 도면.
도 8은 IC 카드와 외부 장치로서의 단말로 구성되는 IC 카드 시스템의 구성예를 개략적으로 도시한 도면.
도 9는 단말에 의한 IC 카드의 인증 처리를 개략적으로 설명하기 위한 도면.
도 10은 IC 카드에 의한 단말의 인증 처리를 개략적으로 설명하기 위한 도면.
도 11은 "Get Challenge" 커맨드의 포맷을 도시한 도면.
도 12는 난수 데이터의 저장 테이블의 구성예를 도시하는 도면.
도 13은 커맨드에 대한 응답의 구성예를 도시하는 도면.
도 14는 "Get Challenge" 커맨드를 수신한 경우의 IC 카드의 동작을 설명하기 위한 흐름도.
도 15는 "External Authenticate" 커맨드의 포맷을 나타내는 도면.
도 16은 "External Authenticate" 커맨드의 P1 데이터의 예를 나타내는 도면.
도 17은 "External Authenticate" 커맨드의 P2 데이터의 예를 나타내는 도면.
도 18은 "External Authenticate" 커맨드의 P2 데이터의 예에 있어서 키 데이터의 구체예를 나타내는 도면.
도 19는 "External Authenticate" 커맨드를 수신한 경우의 IC 카드의 동작을 설명하기 위한 흐름도.
도 20은 "Internal Authenticate" 커맨드의 포맷을 도시한 도면.
도 21은 "Internal Authenticate" 커맨드를 수신한 경우의 IC 카드의 동작을 설명하기 위한 흐름도.
<도면의 주요 부분에 대한 부호의 설명>
100 : IC 카드
102 : 통신부
103 : IC 칩
104 : 제어 소자(CPU)
105 : 데이터 메모리
106 : 작업 메모리
107 : 프로그램 메모리
300 : 단말(센터)
301 : 제어 장치
302 : 카드 판독기/기록기
본 발명은 예컨대 데이터의 기록 또는 재기록이 가능한 비휘발성 메모리를 포함하고, 외부로부터의 커맨드에 따라서 여러 가지 제어를 행하는 IC 카드라 칭하는 휴대 가능한 전자 장치에 관한 것이다.
일반적으로, 휴대 가능한 전자 장치로서 IC 카드는 국제 표준 사양인 ISO/IEC7816-4에 규정된 규격에 기초하여 동작하도록 되어 있다. 상기 ISO/IEC7816-4에는 선형 EF(Elementary File; 기본 파일) 및 주기성 EF(cyclic EF) 등의 파일에 판독 커맨드 또는 기록 커맨드 등의 커맨드에 따라서 액세스하는 것에 대해 규정되어 있다. 또한, 상기 ISO/IEC7816-4에는 포인터 정보로서의 기록 포인터(Record Pointer) 등에 의해서 각 파일에 액세스하는 것이 기술되어 있다.
또한, 상기 ISO/IEC7816-4에서는 논리 채널(logical channel)에 의해 복수의 커런트 상태를 갖는 것에 대해 규정되어 있다. 그러나, 상기 ISO/IEC7816-4에는 논 리 채널마다 기록 포인터의 동작에 대해서 상세히 규정되어 있지 않다. 이 때문에, 종래의 IC 카드에서는 인증 처리에 사용하는 데이터 등을 논리 채널마다 유지할 수 없고, 인증에 사용하는 데이터 등이 복수의 논리 채널에서 공통으로 되고 있다.
이와 같이, 종래의 IC 카드에서는 각 논리 채널에 공통으로 기록 포인터를 사용하고 있기 때문에, 어떤 논리 채널의 기록 포인터의 상태가 다른 논리 채널에서 변경되어 버린다고 하는 문제점이 있다.
또한, ISO/IEC7816-4에 규정되는 "External Authenticate" 커맨드와 "Get Challenge" 커맨드를 사용하여 인증 처리를 행하는 경우, 종래의 IC 카드에서는 논리 채널 #1에서 실행한 "Get Challenge" 커맨드에 의한 Challenge 데이터(난수 데이터)를 논리 채널 #2에서도 사용할 수 있다. 이것은 논리 채널을 애플리케이션마다 할당한 경우, 애플리케이션 1에서 발생시킨 Challenge 데이터를 애플리케이션 2에서도 사용할 수 있음을 의미한다.
또한, Challenge 데이터를 논리 채널 #1에서 생성한 후에, 논리 채널 #2에서도 Challenge 데이터를 생성한 경우, 종래의 IC 카드에서는 논리 채널 #1에서 생성한 Challenge 데이터가 논리 채널 #2에서 생성한 Challenge 데이터로 변경되어 버리는 경우도 있다.
이와 같이, 종래의 IC 카드에서는 각 논리 채널에 공통으로 기록 포인터를 사용하고 있기 때문에, 어떤 논리 채널에서 생성한 난수 데이터가 다른 논리 채널에서 사용되거나, 다른 논리 채널에서 생성한 난수 데이터로 변경되어 버린다고 하는 문제점이 있다.
본 발명은 논리 채널마다 데이터를 유지할 수 있고, 논리 채널마다 제어가 가능하게 되는 휴대 가능한 전자 장치를 제공하는 것을 목적으로 한다.
본 발명의 휴대 가능한 전자 장치는 데이터를 기억하는 제1 메모리와, 상기 제1 메모리에 기억되어 있는 데이터에 대한 관리 정보를 논리 채널마다 기억하는 제2 메모리와, 상기 제2 메모리에 기억되어 있는 논리 채널마다 관리 정보에 기초하여 상기 제1 메모리에 기억되어 있는 데이터로의 액세스를 제어하는 제어부를 구비한다.
본 발명의 휴대 가능한 전자 장치는 복수의 기록 데이터 영역으로 분할된 파일을 기억하고 있는 제1 메모리와, 상기 제1 메모리에 기억되어 있는 파일 내의 기록 데이터 영역에 대한 포인터 정보를 논리 채널마다 기억하는 제2 메모리와, 상기 제2 메모리에 기억되어 있는 논리 채널마다 포인터 정보에 기초하여 상기 제1 메모리에 기억되어 있는 파일 내의 데이터로의 액세스를 제어하는 제어부를 구비한다.
본 발명의 휴대 가능한 전자 장치는, 외부와의 데이터의 송수신을 행하는 통신부와, 상기 통신부에 의해 논리 채널을 나타내는 정보를 갖는 데이터의 생성을 요구하는 커맨드를 외부로부터 수신한 경우, 수신한 커맨드에 따라서 데이터를 생성하는 제어부와, 상기 제어부에 의해 생성한 데이터를 그 커맨드가 지정하는 논리 채널에 대응하는 데이터로서 기억하는 메모리를 구비한다.
본 발명의 추가적인 목적 및 이점과 관련해서는 이하에서 상세히 설명하고 있고, 또한 본 발명의 실시예에 기초하여 발명의 상세한 설명으로부터 명확히 이해할 수 있을 것이다. 본 발명의 상기한 목적 및 이점들은 이하에서 설명하는 구성 요소들과 이들의 조합에 의하여 실현될 수 있다.
본원 명세서의 일부로서 통합되어 구성하고 있는 첨부한 도면들은 본 발명의 원리를 설명하기 위하여 전술한 상세한 설명 및 이하에서 설명하는 실시예들의 상세한 설명과 함께 본 발명의 실시예들을 예시하고 있다.
이하, 본 발명을 실시하기 위한 최상의 실시예에 관해서 도면을 참조하여 설명한다.
도 1은 이 실시예에 따른 IC 카드(100)의 구성을 개략적으로 도시하는 것이다. 이 IC 카드(100)는 통신부(102) 및 하나 또는 복수의 IC 칩(103)을 갖고 있다. 상기 통신부(102)는 외부 장치(카드 판독기/기록기)와의 사이에서 데이터의 송수신을 행한다.
상기 IC 카드(100)가 무선식 IC 카드인 경우, 상기 통신부(102)는 안테나 및 송수신부 등에 의해 구성된다. 또한, 무선식 IC 카드의 통신부(102)는 무선식 카드 판독기/기록기로부터 송신된 변조파를 비접촉으로 수신하거나, 외부로 변조파를 송신하거나 하도록 되어 있다. 또한, 무선식 IC 카드에서는 상기 통신부(102)에 의해 카드 판독기/기록기로부터 수신한 변조파로부터 내부 회로에 공급하기 위한 전원, 및 동작하기 위한 클록 펄스를 생성하도록 되어 있다.
또한, 상기 IC 카드(100)가 접촉식 IC 카드인 경우, 상기 통신부(102)는 접촉부 등에 의해 구성된다. 접촉식 IC 카드의 통신부(102)는 카드 판독기/기록기에 설치된 IC 카드 접촉 단자부와 접촉함으로써, 데이터의 송수신을 행한다. 또한, 접촉식 IC 카드에서는 상기 통신부(102)에 의해 내부 회로에 공급하기 위한 전원 및 동작하기 위한 클록 펄스를 카드 판독기/기록기로부터 얻도록 되어 있다.
상기 IC 칩(103)은 제어 소자(예컨대, CPU)(104), 데이터 메모리(105), 작업 메모리(106) 및 프로그램 메모리(107)로 구성된다. 상기 IC 칩(103)은 상기 통신부(102)와 접속된 상태에서 IC 카드 본체 내에 매설되어 있다.
상기 제어 소자(104)는 상기 IC 카드(100) 전체의 제어를 담당하는 것으로, 프로그램 메모리(107) 또는 데이터 메모리(105)에 기억되어 있는 제어 프로그램에 기초하여 동작한다.
상기 데이터 메모리(105)는 각종 데이터를 기억하기 위한 재기록 가능한 비휘발성 메모리이다. 상기 데이터 메모리(105)는 예컨대, EEPROM(electrically erasable programmable read-only memory) 등의 재기록 가능한 비휘발성 메모리에 의해 구성된다.
상기 작업 메모리(106)는 상기 제어 소자(104)가 처리를 행할 때의 처리 데이터 등을 일시적으로 유지하기 위한 작업용 메모리이다. 상기 작업 메모리(106)는 예컨대, RAM(random access memory) 등의 휘발성 메모리로 구성된다. 또한, 상기 작업 메모리(106) 내에는 후술하는 테이블(106a) 및 테이블(106b)이 설치된다. 상기 테이블(106a)에는 논리 채널마다 기록 포인터(커런트 기록)를 나타내는 정보(예컨대, 기록 번호)가 기억된다. 또한, 상기 테이블(106b)에는 논리 채널마다 난수 데이터 등이 기억된다.
상기 프로그램 메모리(107)는 상기 IC 카드의 기본 기능을 실현하는 서브루틴을 구비한 제어 프로그램 등을 기억하는 비휘발성의 메모리이다. 상기 프로그램 메모리(107)는 예컨대 마스크 ROM(read only memory) 등의 재기록 불가능한 비휘발성 메모리로 구성되어 있다.
이어서, 상기 데이터 메모리(105)에 기억되는 데이터의 파일 구조에 관해서 설명한다. 도 2는 상기 데이터 메모리(105)에 기억되는 파일 구조의 구성예를 도시하는 도면이다.
도 2에 도시한 바와 같은 파일 구조는 여러 가지 폴더의 종류를 갖는 디렉토리의 트리 구조로 되어 있다. 도 2에 도시한 바와 같은 파일 구조는 상기 ISO/IEC7816-4에 기초한 것이다. 이러한 파일 구조에 의해 상기 데이터 메모리(105)에는 복수의 애플리케이션이 등록 가능하게 되고 있다.
도 2에 도시하는 파일 구조에서는 최상위가 MF(Master File)(201)이다. 이 MF(201)의 하급자에는 데이터를 저장하는 EF(Elementary File; 기본 파일)(202, 203) 및 DF(Dedicated File; 전용 파일)(204, 205)가 마련되어 있다. 또한, DF(204)의 하급자에는 DF(206)가 설치된다. 상기 DF(205)의 하급자에는 DF(207)가 설치된다. 상기 DF(204, 205, 206, 207)의 하급자에는 사용자 데이터의 저장 등에 사용되는 EF(208, 209, 210, 211, 212, 213, 214, 215, 216)가 마련되어 있다. 상기 DF(204, 205)는 각 애플리케이션마다 설정되는 폴더이다.
한편, 이후의 설명에서는, MF(201)를 MF, EF(202)를 EF1, EF(203)를 EF2, DF(204)를 DF1, DF(205)를 DF2, DF(206)를 DF1-1, DF(207)를 DF1-2, EF(208)를 EF1-1, EF(209)를 EF1-2, EF(210)를 EF2-1, EF(211)를 EF2-2, EF(212)를 EF2-3, EF(213)를 EF1-1-1, EF(214)를 EF1-1-2, EF(215)를 EF1-2-1, EF(216)를 EF(1-2-2)라고도 부른다.
이하, 본 발명에 따른 논리 채널마다 기록 포인터의 관리에 관해서 상세히 설명한다.
EF(Elementary File)에는 선형 타입 및 주기성 타입의 2 종류 타입의 파일이 존재한다. 또한, 기록 번호로 액세스하는 경우, 제1 기록(기록 데이터)은 EF 타입에 의해 이하의 2 종류가 된다.
·선형 타입의 경우 : 최초 데이터의 기록
·주기성 타입의 경우 : 최종 데이터의 기록
EF의 기록 데이터의 참조 방법(기록 데이터로의 액세스)은 이하의 (a), (b), (c)의 3 종류의 방법이 있다. 이 실시예에서는 (b), (c)의 참조 방법을 논리 채널마다 가능하게 한 것으로 한다.
(a) 기록 번호의 지정에 의한 액세스
EF 내에 저장된 기록 데이터에는 내부적으로 기록 번호가 부여된다. 이 기록 번호를 지정함으로써, EF 내의 기록 데이터는 선택적으로 독출하거나, 재기록하거나 하는 것이 가능하다.
(b) 기록 포인터에 의한 액세스(다음 모드/이전 모드)
기록 포인터에 의한 액세스는 기록 포인터를 기점으로 한 상대 위치의 기록 데이터의 독출, 재기록을 행하는 것이다. 이 경우, 처리가 성공하면, 기록 포인터 는 처리를 실시한 기록 데이터를 나타낸다. 상기 상대 위치란 커런트 기록의 이전 기록 또는 커런트 기록의 다음 기록이다.
(c) 기록 포인터 지정에 의한 액세스
기록 포인터 지정에 의한 액세스는 기록 포인터가 나타내는 기록 데이터에 액세스하는 것이다.
상기 (a), (b), (c)를 기초로 하여, 기록 포인터의 위치와 참조되는 기록을 이하에 설명한다.
도 3은 논리 채널마다 기록 포인터의 저장 상태를 나타내는 테이블(106a)의 구성예를 도시하는 도면이다.
도 3에 도시한 바와 같이, 기록 포인터는 작업 메모리(106) 내의 테이블(106a)에 상기 IC 카드가 지원하고 있는 논리 채널 번호(#0, #1, #2, #3)마다 저장된다. 또한, 기록 포인터에는 기록 번호가 저장되어 있다. 따라서, 도 3에 도시하는 예에서는 논리 채널 #0의 기록 포인터는 기록 번호「R6」이다. 논리 채널 #2의 기록 포인터는 기록 번호「R10」이다. 논리 채널 #3의 기록 포인터는 기록 번호「 R1」이다.
또한, 기록 번호「0」은 기록 포인터가 설정되어 있지 않다고 가정하자. 도 3에 도시하는 예에서는 논리 채널 #1의 기록 포인터가 기록 번호「0」이다. 이 경우, 논리 채널 #1의 기록 포인터가 설정되어 있지 않은 상태를 나타내고 있다.
이어서, 데이터 메모리(105) 내의 EF의 구성예에 관해서 설명한다.
도 4는 도 3에 도시하는 논리 채널 #0의 기록 포인터에 기초한 EF로의 액세 스의 예를 도시하는 도면이다.
「이전 모드」에 있어서, 도 3에 도시한 바와 같이 논리 채널 #0의 기록 포인터가 기록 번호「R6」인 경우, 액세스 대상이 되는 기록 데이터는 도 4에 도시한 바와 같이 기록 포인터가 나타내는 기록 번호「R6」의 직전에 있는 기록 번호「R5」이다. 또한, 「다음 모드」에 있어서, 액세스 대상이 되는 기록 데이터는 도 4에 도시한 바와 같이, 기록 포인터가 나타내는 기록 번호「R6」의 직후에 있는 기록 번호「R7」이다. 이들과 같은 액세스에 성공하면, 논리 채널 #0의 기록 포인터가 나타내는 기록 번호는 액세스한 기록 번호로 변경된다. 본 실시예에 따르면, 상기와 같은 처리를 논리 채널마다 실시할 수 있다. 한편, 기록 포인터가 나타내는 기록 번호를 커런트 기록이라고 부르기로 한다.
이어서, 커런트 기록의 천이에 관해서 설명한다.
전술한 바와 같이, EF 내의 기록의 참조(커런트 기록의 천이)에는 이하의 3 종류의 방법이 있다.
(1) 기록 번호 지정에 의한 기록 데이터로의 액세스
(2) 다음 모드(Next Mode) 또는 이전 모드(Previous Mode)의 지정에 의한 기록 데이터로의 액세스
(3) 기록 포인터에 의한 기록 데이터로의 액세스
상기 커런트 기록은 상기 EF에 대하여 액세스를 한 경우, 이하의 규칙에 따라서 일시적으로 커런트 상태가 되는 기록을 말한다. 상기 커런트 기록은 도 3에 도시한 바와 같은 테이블(106a)에 의해서 관리되는 논리 채널마다 기록 포인터에 의해 지시된다. 한편, 이하에 설명하는 각 규칙에 있어서, "포인터가 초기화되는" 상태란, 커런트 기록이 존재하지 않는 상태이며, 기록 포인터가 나타내는 기록 번호가 「0」이 되는 상태이다.
규칙 1 : EF가 선택 파일(SELECT FILE) 커맨드에 의해 선택된 경우, 포인터는 초기화된다.
규칙 2 : EF에 대하여 다음 모드 또는 이전 모드를 지정하는 커맨드를 실행하여, 정상적으로 종료한 경우, 기록 포인터는 대상이 된 기록 번호로 이동한다.
규칙 3 : 커맨드가 정상적으로 종료되지 않은 경우, 기록 포인터는 이동하지 않는다.
규칙 4 : EF 내의 기록 번호「R1」에 기록 포인터가 있는 경우, 다음의 이전 처리에서는 에러 상태가 출력된다. 이 경우, 기록 포인터는 이동하지 않는다.
규칙 5 : EF 내의 최종 기록 Rn(최대치)에 기록 포인터가 있는 경우, 다음 처리에서는 에러 상태가 출력된다. 이 경우, 기록 포인터는 이동하지 않는다.
다음에, ISO/IEC7816-4에 규정되어 있는 논리 채널에 관해서 설명한다. 본 실시예에서는 도 3에 도시한 바와 같은 4개의 논리 채널(#0, #1, #2, #3)을 지원하고 있는 것으로 하여 설명한다.
한편, 각 논리 채널은 manage channel 커맨드에 의해 사용 가능한 상태가 된다. 상기 manage channel 커맨드는 ISO/IEC7816-4에서 정의되고 있는 커맨드이다. 또한, 논리 채널 #0은 항상 사용 가능한 것으로 한다. 또한, 논리 채널 #1, #2 또는 #3은 미리 manage channel 커맨드에 의해 사용하는 논리 채널을 사용 가능한 상 태로 할 필요가 있는 것으로 한다.
사용하는 논리 채널을 나타내는 논리 채널 번호는 선택 파일 커맨드에 의해 각 DF에 설정된다. 또한, 각종 커맨드에서는 사용하는 논리 채널을 논리 채널 번호에 의해 지정한다. 각 커맨드에 있어서 논리 채널 번호는 각 커맨드의 CLA 바이트 중에 부호화된다. 이로써, 각 커맨드가 어떤 DF 또는 EF에 대한 액세스 커맨드인지는 CLA 바이트에 의해서 판단할 수 있다.
이어서, 상기와 같은 복수의 논리 채널을 이용한 파일로의 액세스에 관해서 상세히 설명한다.
한편, 본 실시예에서는 논리 채널을 나타내는 논리 채널 번호를 「#*」로 표현하고, EF 또는 DF 등의 파일을 나타내는 EF-ID(EF 식별 번호) 또는 DF-ID(DF 식별 번호)를 「<**>」 또는 「<****>」로 표현하는 것으로 한다.
우선, 특정된 논리 채널에 있어서 파일에 액세스하는 순서에 관해서 설명한다. 도 5는 논리 채널 #0에 있어서 MF 하급자인 EF1의 데이터를 독출하는 순서를 설명하기 위한 도면이다.
상기 IC 카드(100)는 활성화(기동)된 직후, 모든 논리 채널에 있어서 MF가 커런트 상태가 되는 것으로 한다. 여기서는 데이터 메모리(105) 내의 MF가 커런트 상태로 되어 있는 IC 카드에 대하여 EF1의 데이터를 독출하는 경우의 순서에 관해서 설명한다.
카드 판독기/기록기는 논리 채널 #0에 있어서 EF1을 커런트 상태로 하는 커맨드(#0 Select File <01>)를 IC 카드(100)에 공급한다. 상기 커맨드(#0 Select File <01>)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 5에 도시한 바와 같이, 데이터 메모리(105)에 있어서 MF의 하급자 파일 중 EF 식별 번호 <01>로 나타내어지는 EF1을 커런트 상태로 한다.
또한, 상기 카드 판독기/기록기는 논리 채널 #0에 있어서 커런트 상태로 되어 있는 파일(여기서는 EF1)로부터의 데이터의 독출을 요구하는 커맨드(#0 Read Record)를 IC 카드(100)로 공급한다. 상기 커맨드(#0 Read Record)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 데이터 메모리(105)에 있어서 EF1 내의 데이터를 독출한다. 이 때, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 기초하여 논리 채널 #0에 대응하는 기록 포인터가 나타내는 기록 번호의 데이터를 독출한다.
이러한 순서에 따르면, 다른 DF(DF1 및 DF2)는 커런트 상태로 되고 있지 않다. 이 때문에, IC 카드가 기록 데이터의 판독을 요구하는 판독 커맨드 또는 데이터의 기록을 요구하는 기록 커맨드를 수신하더라도, 커런트 상태인 EF1 이외의 파일에는 액세스되지 않는다.
다음에, 복수의 논리 채널에 있어서 파일에 액세스하는 순서에 관해서 설명한다. 도 6은 DF1의 하급자인 EF1에 대하여 논리 채널 #0과 논리 채널 #1에 의해 액세스하는 순서를 설명하기 위한 도면이다.
우선, IC 카드(100)에서는 데이터 메모리(105) 내의 MF가 커런트 상태로 되어 있는 것으로 한다. 이 상태에 있어서, 카드 판독기/기록기는 논리 채널 #0에 있어서 DF1을 커런트 상태로 하는 커맨드(#0 Select File <AAAA>)를 IC 카드(100)에 공급한다. 상기 커맨드(#0 Select File <AAAA>)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 6에 도시한 바와 같이 데이터 메모리(105)에 있어서의 MF의 하급자 파일 중 DF 식별 번호 <AAAA>로 나타내는 DF1을 논리 채널 #0의 커런트 상태로 한다.
또한, 상기 카드 판독기/기록기는 논리 채널 #1에 있어서 DF1을 커런트 상태로 하는 커맨드(#1 Select File <AAAA>)를 IC 카드(100)에 공급한다. 상기 커맨드(#1 Select File <AAAA>)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 6에 도시한 바와 같이 데이터 메모리(105)에 있어서의 DF 식별 번호 <AAAA>로 나타내는 DF1을 논리 채널 #1의 커런트 상태로 한다.
이 상태에 있어서, 상기 IC 카드(100)에서는 데이터 메모리(105) 내의 DF1이 논리 채널 #0과 논리 채널 #1에 있어서 커런트 상태가 된다. 따라서, DF1의 하급자인 EF(EF1-1, EF1-2)는 논리 채널 #0과 논리 채널 #1에 의해 액세스 가능하게 된다.
상기와 같은 상태에 있어서, DF1 하급자인 EF1-1의 데이터를 논리 채널 #0 및 논리 채널 #0으로 독출하는 순서 (1) 내지 (5)에 관해서 설명한다.
(1) EF1-1의 데이터를 논리 채널 #0으로 독출한다. 이것은 이하의 (1-1) 및 (1-2)의 순서에 의해 실시된다.
(1-1) 상기 IC 카드(100)는 카드 판독기/기록기로부터 논리 채널 #0에 있어서 EF1을 커런트 상태로 하는 커맨드(#0 Select File <01>)를 수신한다. 그렇게 하면, 상기 IC 카드(100)의 제어 소자(104)는 도 6에 도시한 바와 같이 데이터 메모 리(105)에 있어서 DF1의 하급자 파일 중 EF 식별 번호 <01>로 나타내는 EF1-1을 논리 채널 #0에 있어서 커런트 상태로 한다.
(1-2) 이 상태에 있어서 상기 카드 판독기/기록기로부터 논리 채널 #0에서 커런트 상태로 되고 있는 파일(여기서는 EF1-1)로부터의 데이터의 독출을 요구하는 커맨드(#0 Read Record)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 EF1-1 내의 데이터를 독출한다. 이 때, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 있어서 논리 채널 #0의 기록 포인터가 나타내는 기록 번호에 기초하여 EF1-1 내의 기록 데이터를 독출한다.
예컨대, 상기 IC 카드(100)가 다음 모드인 경우, 상기 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 의해 나타내는 논리 채널 #0의 기록 포인터가 나타내는 기록 번호의 다음 기록 번호의 데이터를 독출한다. 여기서, 상기 규칙 1에 의해 SELECT FILE 커맨드에 의해 파일(여기서는 EFl-1)이 선택된 경우, 기록 포인터는 초기 상태로서 「0」이 설정되는 것으로 한다. 이 때문에, 상기 IC 카드(100)의 제어 소자(104)는 EF1-1의 기록 번호「R1」의 기록 데이터를 독출하여, 상기 테이블(106a)에 논리 채널 #0의 기록 포인터로서 기록 번호「R1」을 설정한다.
(2) 다음에, EF1-1의 데이터를 논리 채널 #1로 독출한다. 이것은 이하의 (2-1) 및 (2-2)의 순서에 의해 실시된다.
(2-1) 카드 판독기/기록기로부터 커맨드(#1 Select File <01>)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 EF1-1을 논리 채널 #1에 있어서 커런트 상태로 한다.
(2-1) 이 상태에 있어서 카드 판독기/기록기로부터 커맨드(#1 Read Record)를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 EF1-1 내의 데이터를 독출한다. 이 때, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 있어서 논리 채널 #1의 기록 포인터가 나타내는 기록 번호에 기초하여 EF1-1 내의 기록 데이터를 독출한다.
예컨대, 상기 IC 카드(100)가 다음 모드인 경우, 상기 제어 소자(104)는 도 3에 도시한 바와 같은 테이블에 의해 나타내는 논리 채널 #1의 기록 포인터가 나타내는 기록 번호의 다음 기록 번호의 데이터를 독출한다. 또한, 상기 테이블(106a)에는 초기 상태에 있어서 기록 포인터가 「0」으로 설정되는 것으로 한다. 이 때문에, 상기 IC 카드(100)의 제어 소자(104)는 EF1-1의 기록 번호 「R1」의 기록 데이터를 독출하여, 상기 테이블(106a)에 논리 채널 #1의 기록 포인터로서 기록 번호「R1」을 설정한다.
(3) 또한, #0 Read Record를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 있어서 논리 채널 #0의 기록 포인터가 나타내는 기록 번호에 기초하여 EF1-1 내의 기록 데이터를 독출한다. 상기 IC 카드(100)가 다음 모드인 경우, 도 3에 도시한 바와 같은 테이블(106a)에는 상기 (1)에 있어서 논리 채널 #0의 기록 포인터가 「R1」로 설정되고 있다. 이 때문에, IC 카드(100)의 제어 소자(104)는 EF1-1의 기록 번호「R1」의 다음 기록 번호「R2」의 기록 데이터를 독출하여, 테이블(106a)에 논리 채널 #0의 기록 포인터로서 기록 번호「R2」를 설정한다.
(4) 또한, #1 Read Record를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 있어서 논리 채널 #1의 기록 포인터가 나타내는 기록 번호에 기초하여 EF1-1 내의 기록 데이터를 독출한다. 상기 IC 카드(100)가 다음 모드인 경우, 상기 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에는 상기 (2)에 있어서 논리 채널 #1의 기록 포인터가 「R1」로 설정되고 있다. 이 때문에, IC 카드(100)의 제어 소자(104)는 EF1-1의 기록 번호「R1」의 다음 기록 번호「R2」의 기록 데이터를 독출하여, 상기 테이블(106a)에 논리 채널 #1의 기록 포인터로서 기록 번호「R2」를 설정한다.
(5) 또한, #0 Read Record를 수신하면, 상기 IC 카드(100)의 제어 소자(104)는 도 3에 도시한 바와 같은 테이블(106a)에 있어서 논리 채널 #0의 기록 포인터가 나타내는 기록 번호에 기초하여 EF1-1 내의 기록 데이터를 독출한다. 상기 IC 카드(100)가 다음 모드인 경우, 도 3에 도시한 바와 같은 테이블(16a)에는 상기 (3)에 있어서 논리 채널 #0의 기록 포인터가 「R2」로 설정되고 있다. 이 때문에, IC 카드(100)의 제어 소자(104)는 EF1-1의 기록 번호「R2」의 다음 기록 번호「R3」의 기록 데이터를 독출하여, 테이블(106a)에 논리 채널 #0의 기록 포인터로서 기록 번호「R3」을 설정한다.
상기한 바와 같이, 본 IC 카드에서는 논리 채널마다 커런트 기록을 나타내는 테이블을 설정하고, 상기 테이블을 참조하여 각 논리 채널마다 커런트 기록에 기초하여 파일 내의 데이터로의 액세스를 제어하도록 되어 있다. 이에 따라, 논리 채널마다 상이한 파일로의 액세스 제어가 가능하게 된다.
이어서, 상기와 같은 논리 채널을 지정하는 각 커맨드의 구성에 대해서 설명한다.
도 7은 각 커맨드의 구성예를 도시하는 도면이다. 여기서, 각 커맨드가 지정하는 논리 채널의 논리 채널 번호는 ISO/IEC7816-4에 따라서 커맨드의 CLA 바이트(CLA 데이터) 중의 이하의 위치에 부호화되는 것으로 한다.
도 7에 도시하는 예에서는 CLA 바이트는 8 비트로 구성된다. CLA 바이트에 있어서 제1 비트(b1) 및 제2 비트(b2)는 그 커맨드의 논리 채널 번호를 지정하는 것이다. 즉, 도 7에 도시하는 예에서는 CLA 바이트의 제2 비트(b2) 및 제1 비트(b1)에 의해 사용하는 논리 채널 번호를 표시한다. 따라서, 도 7에 도시하는 구성에서는 각 커맨드에 있어서 「00」, 「01」, 「10」, 「11」의 최대 4 개의 논리 채널 번호를 지정하는 것이 가능하다. 예컨대, 「b2, b1」이 「00」, 「01」, 「10」, 「11」인 경우, 논리 채널 번호 「#0」, 「#1」, 「#2」, 「#3」이 지정되는 것으로 한다.
또한, CLA 바이트의 제3 비트(b3) 및 제4 비트(b4)는 안전한 메시징 기능을 지시하는 비트(SM 데이터)이다. 한편, 본 실시예에서는 「b4, b3」이 「00」인 것으로 한다.
또한, CLA 바이트의 제5 비트(b5), 제6 비트(b6), 제7 비트(b7) 및 제8 비트(b8)는 CLA 코드라 칭하며, 그 커맨드의 랭크를 나타내는 데이터이다. 예컨대, CLA 코드가 「0000」인 경우, ISO에 기초하는 커맨드임을 나타내며, 「0000」이 아닌 경우, ISO에 기초하지 않는 커맨드(ISO 이외의 커맨드)임을 나타내고 있다.
한편, 각 논리 채널(논리 채널 번호 #0∼#3)은 ISO/IEC7816-4에서 정의되어 있는 manage channel 커맨드에 의해 사용 가능한 상태가 된다. 예컨대, 논리 채널 #0은 항상 사용 가능하며, 논리 채널 #1∼#3은 미리 manage channel 커맨드에 의해 사용하는 논리 채널 번호를 사용 가능한 상태로 해야 한다.
이어서, 본 IC 카드(100)의 인증 처리에 관해서 설명한다.
이하의 설명에서는 IC 카드(100)와 외부 장치로서의 단말(센터)과의 사이에 있어서 인증 처리에 관해서 설명한다.
도 8은 IC 카드(100)와 외부 장치로서의 단말(센터)(300)로 구성되는 IC 카드 시스템의 구성예를 개략적으로 도시한 도면이다. 도 8에 도시한 바와 같이, IC 카드 시스템은 IC 카드(100)와 단말(300)이 통신 가능하게 되어 있다. 도 8에 도시하는 IC 카드(100)는 예컨대 도 1에 도시한 바와 같은 구성을 갖는다. 또한, 상기 단말(300)은 제어 장치(301) 및 카드 판독기/기록기(302)를 갖고 있다.
상기 단말(300)의 제어 장치(301)는 예컨대, CPU, 여러 가지 메모리 및 여러 가지 인터페이스를 갖는 퍼스널 컴퓨터(PC) 등으로 구성된다. 상기 제어 장치(301)의 CPU는 예컨대 메모리(도시하지 않음)에 기억되어 있는 프로그램에 기초하여 연산 처리 또는 각 부분의 제어 등을 행한다.
상기 카드 판독기/기록기(302)는 상기 IC 카드(100)와의 통신을 실행하는 유닛이다. 상기 카드 판독기/기록기(302)는 도시하지 않는 인터페이스를 통해 상기 제어 장치(301)에 접속되어 있다. 상기 카드 판독기/기록기(302)는 상기 제어 장치(301)의 제어에 기초하여 동작한다.
상기와 같은 구성에 의해 IC 카드 시스템에서는 단말과 IC 카드와의 커맨드의 송수신에 의해 단말(300)에 의한 IC 카드(100)의 인증 처리 또는 IC 카드(100)에 의한 단말(300)의 인증 처리가 이루어진다. 상기 단말(300)에 의한 IC 카드(100)의 인증 처리란 외부 장치가 IC 카드(100)를 인증하는 처리이다. 또한, 상기 IC 카드(100)에 의한 단말(300)의 인증 처리란 IC 카드(100)가 단말(300)을 인증하는 처리이다.
또한, 본 실시예에 있어서 IC 카드(100)와 단말(300) 사이의 인증은 ISO/IEC7816-4에 의해 규정되어 있는 이하의 커맨드를 사용하여 실시하는 것으로 한다.
(a) "Internal Authenticate" 커맨드
(b) "External Authenticate" 커맨드
(c) "Get Challenge" 커맨드
"Internal Authenticate" 커맨드는 단말(300)에 의한 IC 카드(100)의 인증 처리에 이용되는 커맨드이다. 또한, "External Authenticate" 커맨드는 IC 카드(100)에 의한 단말(300)의 인증 처리에 이용되는 커맨드이다. 또한, "Get Challenge" 커맨드는 난수를 요구하는 커맨드이다. "Get Challenge" 커맨드에 대해서는 실행마다 독특한 난수가 출력되도록 되어 있다.
한편, 본 실시예에서는 단말(300)에 의한 IC 카드(100)의 인증 처리는 상기 "Internal Authenticate" 커맨드와 상기 "Get Challenge" 커맨드를 조합하여 실행되는 것으로 하여 설명한다. 또한, IC 카드(100)에 의한 단말(300)의 인증 처리는 상기 "External Authenticate" 커맨드와 상기 "Get Challenge" 커맨드를 조합하여 실행되는 것으로 하여 설명한다.
우선, 단말(300)에 의한 IC 카드(100)의 인증 처리에 관해서 개략적으로 설명한다.
단말(300)에 의한 IC 카드(100)의 인증 처리에서는 단말(300)이 이미 알려져 있는 인증키를 IC 카드(100)가 소유하고 있는지의 여부를 판단한다. IC 카드(100)가 인증키를 소유하고 있는지의 여부는 IC 카드(100)로부터 출력되는 인증용 데이터에 기초하여 단말(300)이 판단한다.
도 9는 단말(300)에 의한 IC 카드(100)의 인증 처리를 개략적으로 설명하기 위한 도면이다.
도 9에 도시하는 단말(300)에 의한 IC 카드(100)의 인증 처리는 이하에 설명하는 단계 S1에서 단계 S10의 순서에 의해서 이루어진다.
단계 S1 : 단말(300)은 "Get Challenge" 커맨드를 IC 카드(100)로 송신한다. 이에 따라, 단말(300)은 IC 카드(100)에 난수(challenge) 데이터의 생성을 요구한다.
단계 S2 : IC 카드(100)는 단말(300)로부터의 "Get Challenge" 커맨드를 수신한다. "Get Challenge" 커맨드를 수신한 IC 카드(100)는 난수 데이터(R2)를 생성한다. 난수 데이터(R2)를 생성하면, IC 카드(100)는 "Get Challenge" 커맨드에 대응하는 응답 데이터로서 난수 데이터(R2)를 단말(300)로 반송한다. 한편, 난수 데이터(R2)는 후술하는 바와 같이 IC 카드(100) 내의 작업 메모리(106)에 논리 채널 마다 유지된다.
단계 S3 : 단말(300)은 IC 카드(100)로부터의 응답 데이터로서의 난수 데이터(R2)를 수신한다. "Get Challenge" 커맨드의 응답 데이터로서의 난수 데이터(R2)를 수신하면, 단말(300)은 IC 카드(100)를 인증하기 위한 난수 데이터(R1)를 생성한다. 한편, 이들 난수 데이터 (R1) 및 (R2)는 단말(300) 내에 유지된다.
단계 S4 : 단말(300)은 난수 데이터(R1)를 생성하면, "Internal Authenticate" 커맨드를 생성한다. "Internal Authenticate" 커맨드는 인증에 필요한 알고리즘(alg), 키 데이터(key-ID) 및 난수 데이터(R1) 등에 기초하여 생성된다. 즉, 인증에 필요한 알고리즘(alg), 키 데이터(key-ID) 및 난수 데이터(R1)는 "Internal Authenticate" 커맨드의 파라메터로서 나타낸다. 이러한 "Internal Authenticate" 커맨드를 생성하면, 단말(300)은 생성된 "Internal Authenticate" 커맨드를 IC 카드(100)로 송신한다.
한편, "Internal Authenticate" 커맨드에 의해 지정하는 알고리즘(alg)은 "Internal Authenticate" 커맨드의 키 데이터(key-ID)에 의해 지정되는 암호화 키를 이용하여 암호화 처리를 행하기 위한 암호 알고리즘을 나타내는 것이다.
단계 S5 : IC 카드(100)는 단말(300)로부터의 "Internal Authenticate" 커맨드를 수신한다. "Internal Authenticate" 커맨드를 수신하면, IC 카드(100)는 자신이 생성한 난수 데이터(R2)와 단말(300)이 생성한 난수 데이터(R1)의 값을 XOR한다. 여기서는 XOR한 값을 D1이라 한다.
단계 S6 : IC 카드(100)는 단말(300)로부터의 "Internal Authenticate" 커맨 드에 의해 지정되고 있는 알고리즘(alg)과 키 데이터(key-ID)를 판단한다. 즉, IC 카드(100)는 단말(300)로부터의 "Internal Authenticate" 커맨드에 기초하여 인증에 필요한 알고리즘(alg)과 키 데이터(key-ID)를 판단한다. 도 9에 도시하는 예에서는 키 데이터는 암호화 키(K2)라고 판단하고 있다. 인증에 필요한 알고리즘과 키 데이터를 판단하면, 상기 IC 카드(100)는 알고리즘에 의해 키 데이터(K2)를 이용하여 상기 단계 5에서 산출한 값(D1)을 암호화한다. 여기서는, D1을 암호화 키(K2)를 이용하여 암호화한 값을 C1이라 한다.
단계 S7 : IC 카드(100)는 상기 단계 6에서 산출한 C1을 "Internal Authenticate" 커맨드의 응답 데이터로서 단말(300)에 송신한다.
단계 S8 : 단말(300)은 IC 카드(100)로부터의 "Internal Authenticate" 커맨드의 응답 데이터로서 C1을 수신한다. C1을 수신하면, 단말(300)은 "Internal Authenticate" 커맨드에 의해 IC 카드(100)에 통지한 키 데이터에 대응하는 복호화 키를 판단한다. 도 9에 도시하는 예에서는, 복호화 키(K1)라고 판단하고 있다. 또한, 복호화 키(K1)는 단말(300)이 유지하고 있는 것으로 한다. 복호화 키(K1)를 판단하면, 단말(300)은 IC 카드(100)로부터 수신한 C1을 복호화 키(K1)에 의해 복호화한다. 여기서는 C1을 복호화 키(K1)를 이용하여 복호화한 값을 D2로 한다.
단계 S9 : 단말(300)은 복호화 키(K1)를 이용하여 복호화한 값(D2)과, IC 카드(100)가 "Get Challenge" 커맨드에 대응하여 생성한 난수 데이터(R2)의 값을 XOR한다. 여기서는, D2의 값과 난수 데이터(R2)를 XOR한 값을 R1'로 한다.
단계 S10 : D2와 난수 데이터(R2)를 XOR한 값(R1')을 산출하면, 단말(300)은 IC 카드(100)에 출력한 난수 데이터(R1)와 R1'를 비교한다. 이 비교에 의해 난수 데이터(R1)와 R1'이 일치한 경우, 단말(300)은 그 IC 카드(100)를 인증한다(그 IC 카드(100)가 정당하다고 판단한다). 또한, 상기 비교에 의해 난수 데이터(R1)와 R1'이 일치하지 않은 경우, 단말(300)은 그 IC 카드(100)를 인증하지 않는다(그 IC 카드(100)가 정당하지 않다고 판단한다).
한편, "Internal Authenticate" 커맨드에 있어서 알고리즘(암호 알고리즘)으로 하여 Triple DES를 지정하는 경우, IC 카드(100)의 암호화 키(K2)와 단말(300) 측의 복호화 키(K1)는 동일한 것으로 된다. 이러한 암호화 방식 및 복호화 방식은 IC 카드(100)의 암호화 키(K2)와 단말(300) 측의 복호화 키(K1)가 함께 비밀 키가 되는 비밀 열쇠 암호 방식이다.
또한, "Internal Authenticate" 커맨드에 있어서 알고리즘(암호 알고리즘)으로서 RSA를 지정하는 경우, IC 카드(100)의 암호화 키(K1)와 단말(300) 측의 복호화 키(K2)는 상이한 것으로 된다. 이러한 암호화 방식 및 복호화 방식은 IC 카드(100)의 암호화 키(K2)가 비밀키가 되고, 단말(300) 측의 복호화 키(K1)가 공개키가 되는 공개 열쇠 암호 방식이다.
또한, IC 카드(100) 또는 단말(300)에 있어서 XOR 연산은 처리의 일례를 나타내는 것으로, XOR 연산 대신에 다른 연산을 행하도록 하더라도 좋다.
이어서, IC 카드(100)에 의한 단말(300)의 인증 처리에 관해서 개략적으로 설명한다.
IC 카드(100)에 의한 단말(300)의 인증 처리에서는 IC 카드(100)가 이미 알 려져 있는 인증키를 단말(300)이 소유하고 있는지의 여부를 판단한다. 단말(300)이 인증키를 소유하고 있는지의 여부는 단말(300)로부터 출력되는 인증용 데이터에 기초하여 IC 카드(100)가 판단한다.
도 10은 IC 카드(100)에 의한 단말(300)의 인증 처리를 개략적으로 설명하기 위한 도면이다.
도 10에 도시하는 IC 카드(100)에 의한 단말(300)의 인증 처리는 이하에 설명하는 단계 S11에서부터 단계 S17의 순서에 의해서 이루어진다.
단계 S11 : 단말(300)은 "Get Challenge" 커맨드를 IC 카드(100)에 송신한다. 이에 따라, 단말(300)은 IC 카드(100)에 난수(Challenge) 데이터의 생성을 요구한다.
단계 S12 : IC 카드(100)는 단말(300)로부터의 "Get Challenge" 커맨드를 수신한다. "Get Challenge" 커맨드를 수신한 IC 카드(100)는 난수 데이터(R2)를 생성한다. 난수 데이터(R2)를 생성하면, IC 카드(100)는 "Get Challenge" 커맨드에 대응하는 응답 데이터로서 난수 데이터(R2)를 단말(300)로 반송한다. 한편, 난수 데이터(R2)는 후술하는 바와 같이 IC 카드(100) 내의 작업 메모리(106)에 논리 채널마다 유지된다.
단계 S13 : 단말(300)은 IC 카드(100)로부터 "Get Challenge" 커맨드의 응답 데이터로서 난수 데이터(R2)를 수신한다. 응답 데이터로서 난수 데이터(R2)를 수신하면, 단말(300)은 인증에 필요한 알고리즘(alg)과 키 데이터(K1)를 결정한다. 여기서, 인증에 필요한 알고리즘이란 암호화를 행하는 암호화 알고리즘이다. 키 데이 터란 암호화 알고리즘에 의해 암호화할 때에 필요한 암호화 데이터이다.
암호화 처리에 이용하는 알고리즘과 키 데이터를 결정하면, 단말(300)은 결정한 알고리즘에 의해 키 데이터(K1)를 이용하여 IC 카드(100)로부터 수신한 난수 데이터(R2)를 암호화한다. 여기서는, 난수 데이터(R2)를 암호화 키(K1)를 이용하여 암호화한 값을 C2로 한다.
단계 S14 : 난수 데이터(R2)를 키 데이터(K1)를 이용하여 암호화하면, 단말(300)은 "External Authenticate" 커맨드를 생성한다. "External Authenticate" 커맨드는 인증에 필요한 알고리즘(alg), 키 데이터(key-ID) 및 암호화 처리의 결과(C2) 등에 기초하여 생성된다. 여기서, "External Authenticate" 커맨드로 나타내는 알고리즘은 IC 카드(100)에 의해 실행하여야 할 복호화 처리의 알고리즘을 지정하는 것이다. 또한, "External Authenticate" 커맨드로 나타내는 키 데이터(key-ID)는 IC 카드(100)에서의 복호화 처리에 이용해야 할 복호화 키를 지정하는 것이다.
즉, 인증에 필요한 알고리즘(alg), 키 데이터(key-ID) 및 암호화 처리의 결과(C1)는 "External Authenticate" 커맨드의 파라메터로서 나타낸다. 이러한 "External Authenticate" 커맨드를 생성하면, 단말(300)은 생성한 "External Authenticate" 커맨드를 IC 카드(100)로 송신한다.
단계 S15 : IC 카드(100)는 단말(300)로부터의 "External Authenticate" 커맨드를 수신한다. "External Authenticate" 커맨드를 수신하면, 상기 IC 카드(100)는 수신한 "External Authenticate" 커맨드에 의해 복호화 처리에 이용하는 알고리 즘 및 복호화 키를 결정한다. 한편, 복호화 키는 "External Authenticate" 커맨드에 포함되는 키 데이터(key-ID)에 기초하여 판단된다. 또한, 복호화 키는 미리 IC 카드(100)가 소유하고 있는 것이다. 예컨대, 복호화 키는 상기 데이터 메모리(105) 등의 비휘발성 메모리에 기억되어 있다.
복호화 처리에 이용하는 알고리즘과 키 데이터를 결정하면, IC 카드(100)는 결정된 알고리즘에 의해 복호화 키(K2)를 이용하여 단말(300)로부터 수신한 값(C2)을 복호화한다. 여기서는 값(C2)을 복호화 키(K2)를 이용하여 복호화한 값을 R2'로 한다.
단계 S16 : 값(C2)을 복호화 키(K2)를 이용하여 복호화한 값(R2')을 산출하면, IC 카드(100)는 상기 R2'와 상기 단계 12에서 생성한 난수 데이터(R2)를 비교한다. 이 비교에 의해 난수 데이터(R2)와 R2'가 일치한 경우, IC 카드(100)는 그 단말(300)을 인증한다(IC 카드(100)는 그 단말(300)이 정당하다고 판단한다). 또한, 상기 비교에 의해 난수 데이터(R2)와 R2'가 일치하지 않는 경우 IC 카드(100)는 그 단말(300)을 인증하지 않는다(IC 카드는 그 단말(300)이 정당하지 않다고 판단한다).
단계 S17 : 상기 IC 카드(100)는 상기 R2와 R2'의 비교 결과(IC 카드(100)에 의한 단말(300) 인증의 가부)를 응답으로서 단말(300)에 통지한다. 또한, 상기 응답에 의해 단말(300)에는 상기 IC 카드(100)에 의해 자신이 인증되었는지의 여부를 판단한다.
한편, 암호 알고리즘으로서 Triple DES를 사용한 경우, IC 카드 측의 복호화 키(K2)와 단말 측의 암호화 키(K1)는 동일한 것이 된다. 이러한 암호화 방식 및 복호화 방식은 IC 카드(100)의 복호화 키(K2)와 단말(300) 측의 암호화 키(K1)가 함께 비밀 키가 되는 비밀 열쇠 암호 방식이다.
또한, 암호 알고리즘으로서 RSA를 사용한 경우, IC 카드 측의 복호화 키(K2)와 단말 측의 암호화 키(K1)는 상이한 키가 된다. 이러한 암호화 방식 및 복호화 방식은 단말(300) 측의 복호화 키(K1)가 비밀 키가 되고, IC 카드(100)의 복호화 키(K2)가 공개 키가 되는 공개 열쇠 암호 방식이다.
이어서, "Get Challenge" 커맨드에 관해서 상세히 설명한다.
도 11은 "Get Challenge" 커맨드의 포맷을 도시한 도면이다.
도 11에 도시한 바와 같이, "Get Challenge" 커맨드는 CLA 데이터, INS 데이터, P1 데이터, P2 데이터, Le 데이터에 의해 구성된다. 한편, 커맨드의 기본적인 포맷은 CLA 데이터, INS 데이터, P1 데이터, P2 데이터 및 Le 데이터에 의해 구성된다.
상기 CLA 데이터는 도 7에 도시한 바와 같은 구성을 갖고 있다. 도 11에 도시하는 "Get Challenge" 커맨드의 예에서는 CLA 데이터 중 b1, b2가 「01」로 되고 있다. 즉, 도 11에 도시하는 "Get Challenge" 커맨드에서는 논리 채널 번호 「#1」이 지정되고 있다.
또한, 상기 INS 데이터는 커맨드의 내용을 나타내는 정보이다. 예컨대, 도 11에 도시하는 예에서는 INS 데이터(「84」)가 "Get Challenge" 커맨드(즉, 난수의 생성을 요구하는 커맨드)임을 나타내고 있다.
또한, 상기 P1 데이터 및 P2 데이터는 상기 커맨드의 파라메터를 나타내는 것이다. 도 11에 도시한 바와 같은 "Get Challenge" 커맨드에서는 P1 데이터 및 P2 데이터가 함께 「00」으로 되고 있다. 또한, Le 데이터는 데이터의 길이를 지정하는 것이다. 도 11의 예에서는 Le 데이터(「08」)가 8 바이트의 난수 데이터의 생성을 요구하고 있다.
따라서, 도 11에 도시하는 "Get Challenge" 커맨드에서는 논리 채널 번호 「#1」에 있어서 8 바이트의 난수 데이터의 생성을 요구하고 있다.
이어서, IC 카드에 있어서의 난수 데이터("Get Challenge" 커맨드에 따라서 생성한 난수 데이터)의 저장예에 관해서 설명한다.
도 12는 작업 메모리(106) 내에 있어서 난수 데이터의 저장 테이블(106b)의 구성예를 도시하는 도면이다.
상기와 같은 "Get Challenge" 커맨드를 수신하면, IC 카드(100)는 "Get Challenge" 커맨드에 의해 지정된 논리 채널 번호에 있어서 지정된 길이의 난수 데이터를 생성한다. 이러한 경우, 본 IC 카드(100)에서는 논리 채널마다 난수 데이터를 유지한다.
도 12에 도시하는 난수 데이터의 저장 테이블(106b)에서는 논리 채널(논리 채널 번호)마다 "Get Challenge" 커맨드가 실행이 끝났는지의 여부를 나타내는 플래그와, 난수 데이터를 저장한다. 예컨대, 논리 채널 번호「#1」에 있어서 난수 데이터를 생성한 경우, 저장 테이블(106b)에는 도 12에 도시한 바와 같이 논리 채널 번호「#1」에 있어서 "Get Challenge" 커맨드가 실행이 끝났음을 나타내는 플래그 를 설정하고, 생성된 난수 데이터를 논리 채널 번호「#1」의 난수 데이터로서 저장한다.
이러한 저장 테이블(106b)에 의해 각 논리 채널마다 난수 데이터를 유지하는 것이 가능하게 된다.
이어서, 커맨드에 대한 응답에 관해서 설명한다.
도 13은 커맨드에 대한 응답의 구성예를 도시하는 도면이다.
상기 단말(300)로부터 커맨드를 수신한 IC 카드(100)는 커맨드에 대응하는 처리를 실행하여, 그 처리 결과 등을 나타내는 응답을 단말(300)에 송신하도록 되어 있다. 응답의 포맷은 도 13에 도시한 바와 같이, 응답 데이터와 상태 워드에 의해 구성된다.
상기 응답 데이터는 커맨드에 대응하는 처리에 의해서 얻어진 데이터이다. 예컨대, "Get Challenge" 커맨드에 대해서는 상기 응답 데이터에는 IC 카드(100)가 생성한 난수 데이터가 저장된다.
또한, 상태 워드는 커맨드에 대응하는 처리 결과를 나타내는 것이다. 예컨대, 커맨드에 대응하는 처리가 정상적으로 이루어진 경우, 상기 상태 워드에는 커맨드에 대응하는 처리가 정상적으로 이루어졌음을 나타내는 상태가 저장된다. 또한, 커맨드에 대응하는 처리가 에러로 된 경우, 상기 상태 워드에는 커맨드에 대응하는 처리가 에러가 되었음을 나타내는 상태가 저장된다.
이어서, "Get Challenge" 커맨드를 수신한 경우의 IC 카드(100)의 동작예에 관해서 설명한다.
도 14는 "Get Challenge" 커맨드를 수신한 경우의 IC 카드(100)의 동작을 설명하기 위한 흐름도이다.
우선, IC 카드(100)의 통신부(102)가 단말(300)로부터의 커맨드를 수신한 것으로 한다(단계 S31). 그렇게 하면, IC 카드(100)의 제어 소자(104)는 수신한 커맨드의 INS 데이터에 의해 커맨드의 내용을 판별한다(단계 S32). 한편, 상기 통신부(102)가 수신한 커맨드가 "Get Challenge" 커맨드 이외의 커맨드라고 판단한 경우(단계 S32, NO), 상기 IC 카드(100)의 제어 소자(104)는 수신한 커맨드에 따른 처리를 행한다(단계 S33).
상기 통신부(102)가 수신한 커맨드가 "Get Challenge" 커맨드라고 판단한 경우(단계 S32, YES), 상기 IC 카드(100)의 제어 소자(104)는 "Get Challenge" 커맨드의 Le 데이터에 의해 생성하는 난수 데이터의 길이를 판단한다. 생성되는 난수 데이터의 길이를 판단하면, 상기 IC 카드(100)의 제어 소자(104)는 지정된 길이의 난수 데이터를 생성한다(단계 S34).
난수 데이터를 생성하면, 상기 IC 카드(100)의 제어 소자(104)는 생성한 난수 데이터를 그 "Get Challenge" 커맨드의 CLA 데이터에 의해 지정되는 논리 채널 번호에 대응시켜 작업 메모리(106)의 저장 테이블(106b)에 저장한다. 또한, 상기 IC 카드(100)의 제어 소자(104)는 상기 논리 채널 번호에 있어서 "Get Challenge" 커맨드(난수 데이터의 생성)가 실행이 끝났음을 나타내는 플래그를 설정한다(단계 S36).
이에 따라, 상기 작업 메모리(106)의 저장 테이블(106b)에는 "Get Challenge" 커맨드에 의해 지정되는 논리 채널 번호마다 난수 데이터와 "Get Challenge" 커맨드(난수 데이터의 생성)가 실행이 끝났음을 나타내는 플래그가 저장된다.
또한, "Get Challenge" 커맨드에 따라서 생성한 난수 데이터를 상기 저장 테이블(106b)에 저장하면, 상기 IC 카드(100)의 제어 소자(104)는 생성한 난수 데이터를 응답 데이터로서 그 "Get Challenge" 커맨드의 송신원인 단말(300)에 응답을 송신한다(단계 S37).
상기와 같은 동작에 의해, "Get Challenge" 커맨드에 따라서 생성한 난수 데이터는 상기 작업 메모리(106)의 저장 테이블(106b)에 논리 채널 번호마다 저장되는 동시에, 응답 데이터로서 그 "Get Challenge" 커맨드의 송신원으로 송신된다.
이어서, IC 카드(100)에 의한 단말(300)의 인증 처리(외부 인증 처리)에 관해서 상세히 설명한다.
외부 인증은 IC 카드(100)가 단말(300)로부터 "External Authenticate" 커맨드를 수신한 경우에 실시된다. 즉, 외부 장치로서의 단말(300)이 "External Authenticate" 커맨드에 의해 IC 카드(100)에 대하여 자신을 인증하도록 요구한다. "External Authenticate" 커맨드에 의한 요구에 따라서 IC 카드(100)가 외부 장치로서 단말(300)을 인증하는 것이다.
우선, "External Authenticate" 커맨드에 관해서 상세히 설명한다.
도 15는 "External Authenticate" 커맨드의 포맷을 도시한 도면이다.
도 15에 도시한 바와 같이, "External Authenticate" 커맨드는 CLA 데이터, INS 데이터, P1 데이터, P2 데이터, Le 데이터 및 데이터부에 의해 구성된다.
상기 CLA 데이터는 도 7에 도시한 바와 같은 구성을 갖고 있다. 도 15에 도시하는 "External Authenticate" 커맨드의 예에서는 CLA 데이터 중 b1, b2가 「01」로 되고 있다. 즉, 도 15에 도시하는 "External Authenticate" 커맨드에서는 논리 채널 번호「#1」이 지정되고 있다. 또한, 도 15에 도시하는 예에서는 INS 데이터(「82」)가 "External Authenticate" 커맨드(즉, 외부 인증을 요구하는 커맨드)임을 나타내고 있다. 또한, 상기 데이터부에는 단말(300)로부터 IC 카드(100)로 공급하는 데이터가 저장된다. 예컨대, 도 10에 도시하는 예에서는 상기 데이터부에는 데이터(C2)가 저장된다.
또한, 도 15에 도시한 바와 같이, 상기 P1 데이터 및 P2 데이터는 상기 "External Authenticate" 커맨드의 파라메터로서 설정된다. 예컨대, 도 16은 "External Authenticate" 커맨드의 P1 데이터의 예를 도시하고 있다. 도 16에 도시한 바와 같이, "External Authenticate" 커맨드에서는 P1 데이터가 인증 처리에 이용하는 인증 알고리즘을 나타내고 있다. 도 16에 도시하는 예에서는 인증 처리에 이용하는 알고리즘으로서, P1 데이터가 「01」인 경우에 싱글 DES, P1 데이터가 「02」인 경우에 트리플 DES를 나타내고 있다.
또한, 도 17은 "External Authenticate" 커맨드의 P2 데이터의 예를 도시하고 있다. 도 17에 도시한 바와 같이, "External Authenticate" 커맨드에서는 P2 데이터가 인증 처리에 이용하는 키 데이터(Key-ID)를 나타내고 있다. 도 17에 도시하는 예에서는 P2 데이터에 있어서 인증 처리에 이용하는 키 데이터를 「01」∼「1F 」로 나타내고 있다. 또한, 도 18은 P2 데이터에 있어서의 키 데이터의 구체적인 예를 도시하고 있다. 도 18에 도시하는 예에서는 P2 데이터에 있어서 「0x01」∼「0x1F」에 의해 31 종류의 키 데이터를 지정할 수 있게 되어 있다.
따라서, 도 15에 도시하는 "External Authenticate" 커맨드에서는, 논리 채널 번호「#1」에 있어서, P1 데이터로 나타내는 알고리즘 및 P2 데이터로 나타내는 키 데이터를 이용하여 외부 인증을 행하는 것을 요구하고 있다.
이어서, "External Authenticate" 커맨드를 수신한 경우의 IC 카드(100)의 동작예에 관해서 설명한다.
도 19는 "External Authenticate" 커맨드를 수신한 경우의 IC 카드(100)의 동작을 설명하기 위한 흐름도이다.
우선, IC 카드(100)의 통신부(102)가 단말(300)로부터의 커맨드를 수신한 것으로 한다(단계 S41). 그렇게 하면, IC 카드(100)의 제어 소자(104)는 수신한 커맨드의 INS 데이터에 의해 커맨드의 내용을 판별한다(단계 S42). 한편, 상기 통신부(102)가 수신한 커맨드가 "External Authenticate" 커맨드 이외의 커맨드라고 판단한 경우(단계 S42, NO), 상기 IC 카드(100)의 제어 소자(104)는 수신한 커맨드에 따른 처리를 행한다(단계 S33).
상기 통신부(102)가 수신한 커맨드가 "External Authenticate" 커맨드라고 판단한 경우(단계 S42, YES), 상기 IC 카드(100)의 제어 소자(104)는 그 "External Authenticate" 커맨드의 CLA 데이터에 의해 지정되는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝났는지의 여부를 판단한다(단계 S44).
즉, 상기 단계 S44에서는 상기 작업 메모리(106)의 저장 테이블(106b)에 있어서 "External Authenticate" 커맨드의 CLA 데이터에 의해 지정되는 논리 채널 번호에 대응하는 플래그("Get Challenge" 커맨드가 실행이 끝났는지의 여부를 플래그)가 설정되어 있는지의 여부를 판단한다. 다시 말해서, 상기 단계 S44에서, 상기 제어 소자(104)는 "External Authenticate" 커맨드가 지정하는 논리 채널 번호에 대응하는 난수 데이터가 상기 저장 테이블(106b)에 저장되어 있는지의 여부를 판단한다.
상기 판단에 의해 상기 "External Authenticate" 커맨드가 지정하는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝나지 않았다고 판단한 경우(단계 S44, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S50). 이 경우, 상태 워드에는 예컨대 그 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행되지 않고 있음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 "External Authenticate" 커맨드가 지정하는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝났다고 판단한 경우(단계 S44, YES), 상기 IC 카드(100)의 제어 소자(104)는 그 "External Authenticate" 커맨드의 P1 데이터에 의해 지정되는 알고리즘을 상기 IC 카드(100)가 지원하고 있는지의 여부를 판단한다(단계 S45).
즉, 상기 단계 S45에 있어서, 상기 제어 소자(104)는 상기 "External Authenticate" 커맨드가 지정하는 알고리즘을 실행 가능한지의 여부를 판단한다.
상기 판단에 의해 상기 "External Authenticate" 커맨드가 지정하는 알고리즘을 상기 IC 카드(100)가 지원하고 있지 않다고 판단한 경우(단계 S45, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S50). 이 경우, 상태 워드에는 예컨대 상기 "External Authenticate" 커맨드가 지정하는 알고리즘에 상기 IC 카드가 대응하고 있지 않음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 상기 "External Authenticate" 커맨드가 지정하는 알고리즘을 상기 IC 카드(100)가 지원하고 있다고 판단한 경우(단계 S45, YES), 상기 IC 카드(100)의 제어 소자(104)는 상기 "External Authenticate" 커맨드의 P2 데이터에 의해 지정되는 키 데이터를 상기 IC 카드(100)가 유지하고 있는지의 여부를 판단한다(단계 S46).
즉, 상기 단계 S46에서 상기 제어 소자(104)는 "External Authenticate" 커맨드가 지정하는 키 데이터를 소유하고 있는지의 여부를 판단한다.
상기 판단에 의해 상기 "External Authenticate" 커맨드가 지정하는 키 데이터를 그 IC 카드(100)가 소유하고 있지 않다고 판단한 경우(단계 S46, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S50). 이 경우, 상태 워드에는 예컨대 상기 "External Authenticate" 커맨드가 지정하는 키 데이터를 상기 IC 카드가 소유하고 있지 않음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 상기 "External Authenticate" 커맨드가 지정하는 키 데이터를 상기 IC 카드(100)가 소유하고 있다고 판단한 경우(단계 S46, YES), 상기 IC 카드(100)의 제어 소자(104)는 상기 "External Authenticate" 커맨드의 P1 데이터에 의해 지정되는 알고리즘과 P2 데이터에 의해 지정되는 키 데이터를 이용하여, 상기 "External Authenticate" 커맨드의 데이터부에 저장되어 있는 데이터를 연산 처리한다(단계 S47).
상기 단계 S47의 연산 처리 결과가 얻어지면, 상기 IC 카드(100)의 제어 소자(104)는 연산 처리의 결과와, 그 "External Authenticate" 커맨드가 지정하는 논리 채널 번호에 대응하는 난수 데이터가 일치하는지의 여부를 판단한다(단계 S48).
이 판단에 의해 연산 처리의 결과와 상기 논리 채널 번호에 대응하는 난수 데이터가 일치했다고 판단한 경우(단계 S48, YES), 상기 IC 카드(100)의 제어 소자(104)는 정상을 의미하는 상태 워드(즉, 외부 장치로서의 단말(300)을 IC 카드(100)가 인증했음을 나타내는 상태 워드)를 설정한 응답을 단말(300)로 송신한다(단계 S49).
또한, 상기 판단에 의해 상기 단계 S47의 연산 결과와 상기 논리 채널 번호에 대응하는 난수 데이터가 일치하지 않는다고 판단한 경우(단계 S48, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S50). 이 경우, 상태 워드에는 예컨대 외부 장치로서의 단말(300)을 IC 카드(100)가 인증할 수 없음을 나타내는 상태 워드가 저장된다.
한편, 도 19에 도시하는 동작예와 도 10에 도시하는 예를 대비하면, 상기 "External Authenticate" 커맨드의 데이터부에 저장되는 데이터는 도 10에 도시하 는 C2이며, 상기 "External Authenticate" 커맨드의 P1 데이터에 의해 나타내는 알고리즘은 도 10에 도시하는 알고리즘(alg)이며, 상기 "External Authenticate" 커맨드의 P2에 의해 나타내는 데이터는 도 10에 도시하는 키 ID(Key-ID)이다.
또한, 상기 단계 S47의 연산 처리는 상기 "External Authenticate" 커맨드의 P1 데이터가 나타내는 알고리즘과 상기 "External Authenticate" 커맨드의 P2 데이터가 나타내는 복호화 키(K2)를 이용한 데이터(C2)에 대한 복호화 처리(D)이다.
상기와 같은 외부 인증 처리에 의하면, 논리 채널 번호마다 난수 데이터를 유지할 수 있고, 논리 채널마다 난수 데이터를 이용한 외부 인증 처리를 실현할 수 있다.
이어서, 단말(300)에 의한 IC 카드(100)의 인증 처리(내부 인증 처리)에 관해서 상세히 설명한다.
내부 인증은 단말(300)이 IC 카드(100)에 "Internal Authenticate" 커맨드를 공급함으로써 실시된다. 즉, 외부 장치로서 단말(300)이 "Internal Authenticate" 커맨드에 대한 IC 카드(100)로부터의 응답 데이터에 기초하여 IC 카드(100)의 인증을 행하는 것이다.
우선, "Internal Authenticate" 커맨드에 관해서 상세히 설명한다.
도 20은 "Internal Authenticate" 커맨드의 포맷을 도시한 도면이다.
도 20에 도시한 바와 같이, "Internal Authenticate" 커맨드는 CLA 데이터, INS 데이터, P1 데이터, P2 데이터, Le 데이터 및 데이터부에 의해 구성된다.
상기 CLA 데이터는 도 7에 도시한 바와 같은 구성을 갖고 있다. 도 20에 도 시하는 "Internal Authenticate" 커맨드의 예에서는 CLA 데이터 중 b1, b2가 「01」로 되고 있다. 즉, 도 20에 도시하는 "Internal Authenticate" 커맨드에서는 논리 채널 번호「#1」이 지정되고 있다. 또한, 도 20에 도시하는 예에서는, INS 데이터(「88」)가 "Internal Authenticate" 커맨드(즉, 내부 인증을 요구하는 커맨드)임을 나타내고 있다. 또한, 상기 데이터부에는 단말(300)로부터 IC 카드(100)에 공급하는 데이터가 저장된다. 예컨대, 도 9에 도시하는 예에서는 상기 데이터부에는 난수 데이터(R1)가 저장된다.
또한, 도 20에 도시한 바와 같이, 상기 P1 데이터 및 P2 데이터는 상기 "Internal Authenticate" 커맨드의 파라메터로서 설정된다. "Internal Authenticate" 커맨드의 P1 데이터는 예컨대 도 16에 도시한 바와 같이 "External Authenticate" 커맨드의 P1 데이터와 마찬가지로 인증 처리에 이용하는 인증 알고리즘을 나타내고 있다.
또한, "Internal Authenticate" 커맨드의 P2 데이터는 예컨대 도 17 및 도 18에 도시한 바와 같이 "External Authenticate" 커맨드의 P2 데이터와 마찬가지로 인증 처리에 이용하는 키 데이터(Key-ID)를 나타내고 있다.
따라서, 도 20에 도시하는 "Internal Authenticate" 커맨드에서는 논리 채널 번호「#1」에 있어서, P1 데이터로 나타내는 알고리즘 및 P2 데이터로 나타내는 키 데이터를 이용하여 데이터부의 데이터의 연산 처리(암호화 처리)를 행할 것을 요구하고 있다.
이어서, "Internal Authenticate" 커맨드를 수신한 경우의 IC 카드(100)의 동작예에 관해서 설명한다.
도 21은 "Internal Authenticate" 커맨드를 수신한 경우의 IC 카드(100)의 동작을 설명하기 위한 흐름도이다.
우선, IC 카드(100)의 통신부(102)가 단말(300)로부터의 커맨드를 수신한 것으로 한다(단계 S61). 그러면, IC 카드(100)의 제어 소자(104)는 수신한 커맨드의 INS 데이터에 의해 커맨드의 내용을 판별한다(단계 S62). 한편, 상기 통신부(102)가 수신한 커맨드가 "Internal Authenticate" 커맨드 이외의 커맨드라고 판단한 경우(단계 S62, NO), 상기 IC 카드(100)의 제어 소자(104)는 수신한 커맨드에 따른 처리를 행한다(단계 S63).
상기 통신부(102)가 수신한 커맨드가 "Internal Authenticate" 커맨드라고 판단한 경우(단계 S62, YES), 상기 IC 카드(100)의 제어 소자(104)는 상기 "Internal Authenticate" 커맨드의 CLA 데이터에 의해 지정되는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝났는지의 여부를 판단한다(단계 S64).
즉, 상기 단계 S64에서는 상기 작업 메모리(106)의 저장 테이블(106b)에 있어서 "Internal Authenticate" 커맨드의 CLA 데이터에 의해 지정되는 논리 채널 번호에 대응하는 플래그("Get Challenge" 커맨드가 실행이 끝났는지의 여부를 플래그)가 설정되어 있는지의 여부를 판단한다.
다시 말해서, 상기 단계 S64에서, 상기 제어 소자(104)는 "Internal Authenticate" 커맨드가 지정하는 논리 채널 번호에 대응하는 난수 데이터가 상기 저장 테이블(106b)에 저장되어 있는지의 여부를 판단한다.
상기 판단에 의해 상기 "Internal Authenticate" 커맨드가 지정하는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝나지 않았다고 판단한 경우(단계 S64, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S70). 이 경우, 상태 워드에는 예컨대 그 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행되지 않고 있음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 "Internal Authenticate" 커맨드가 지정하는 논리 채널 번호에 있어서 "Get Challenge" 커맨드가 실행이 끝났다고 판단한 경우(단계 S64, YES), 상기 IC 카드(100)의 제어 소자(104)는 그 "Internal Authenticate" 커맨드의 P1 데이터에 의해 지정되는 알고리즘을 상기 IC 카드(100)가 지원하고 있는지의 여부를 판단한다(단계 S65). 즉, 상기 단계 S65에 있어서, 상기 제어 소자(104)는 상기 "Internal Authenticate" 커맨드가 지정하는 알고리즘을 실행 가능한지의 여부를 판단한다.
상기 판단에 의해 상기 "Internal Authenticate" 커맨드가 지정하는 알고리즘을 상기 IC 카드(100)가 지원하고 있지 않다고 판단한 경우(단계 S65, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S70). 이 경우, 상태 워드에는 예컨대 상기 "Internal Authenticate" 커맨드가 지정하는 알고리즘에 그 IC 카드가 대응하지 않고 있음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 상기 "Internal Authenticate" 커맨드가 지정하는 알고리즘을 상기 IC 카드(100)가 지원하고 있다고 판단한 경우(단계 S65, YES), 상기 IC 카드(100)의 제어 소자(104)는 그 "Internal Authenticate" 커맨드의 P2 데이터에 의해 지정되는 키 데이터를 그 IC 카드(100)가 유지하고 있는지의 여부를 판단한다(단계 S66). 즉, 상기 단계 S66에 있어서, 상기 제어 소자(104)는 상기 "Internal Authenticate" 커맨드가 지정하는 키 데이터를 소유하고 있는지의 여부를 판단한다.
상기 판단에 의해 상기 "Internal Authenticate" 커맨드가 지정하는 키 데이터를 상기 IC 카드(100)가 소유하지 않고 있다고 판단한 경우(단계 S66, NO), 상기 IC 카드(100)의 제어 소자(104)는 에러를 의미하는 상태 워드를 설정한 응답을 단말(300)로 송신한다(단계 S70). 이 경우, 상태 워드에는 예컨대 상기 "Internal Authenticate" 커맨드가 지정하는 키 데이터를 그 IC 카드가 소유하지 않고 있음을 나타내는 상태가 저장된다.
또한, 상기 판단에 의해 상기 "Internal Authenticate" 커맨드가 지정하는 키 데이터를 상기 IC 카드(100)가 소유하고 있다고 판단한 경우(단계 S66, YES), 상기 IC 카드(100)의 제어 소자(104)는 그 "Internal Authenticate" 커맨드가 지정하는 논리 채널 번호의 난수 데이터와 상기 "Internal Authenticate" 커맨드의 데이터부에 저장되어 있는 데이터와의 연산 처리(예컨대, 도 9에 도시하는 예에서는 XOR 연산 처리)를 행한다(단계 S67).
상기 단계 S67의 연산 처리 결과(상기 단계 S67의 연산 결과를 α라 함)가 얻어지면, 상기 IC 카드(100)의 제어 소자(104)는 상기 "Internal Authenticate" 커맨드의 P1 데이터에 의해 지정되는 알고리즘과 P2 데이터에 의해 지정되는 키 데이터를 이용하여, 연산 결과 α를 연산 처리(예컨대, 암호화 처리)한다(단계 S68).
상기 단계 S68의 연산 처리 결과(상기 단계 S68의 연산 결과를 β라 함)가 얻어지면, 상기 IC 카드(100)의 제어 소자(104)는 연산 결과 β를 응답 데이터로 한 응답을 단말(300)로 송신한다(단계 S69).
한편, 도 20에 도시하는 동작예와 도 9에 도시하는 예를 대비하면, 상기 "Internal Authenticate" 커맨드의 데이터부에 저장되는 데이터는 도 9에 도시하는 R1이며, 상기 "Internal Authenticate" 커맨드의 P1 데이터에 의해 나타내는 알고리즘은 도 9에 도시하는 알고리즘(a1g)이며, 상기 "Internal Authenticate" 커맨드의 P2에 의해 나타내어지는 키 데이터는 도 9에 도시하는 키 ID(Key-ID)이다.
또한, 상기 단계 S67의 연산 처리는 R1과 R2의 XOR 연산 처리이며, 상기 단계 S68의 연산 처리는 상기 "Internal Authenticate" 커맨드의 P1 데이터가 나타내는 알고리즘과 상기 "Internal Authenticate" 커맨드의 P2 데이터가 나타내는 암호화 키(K2)를 이용한 데이터(D2)에 대한 암호화 처리(E)이다.
당업자라면, 본 발명의 추가의 이점 및 변형을 명확히 이해할 수 있을 것이다. 그에 따라, 다양한 실시예로서 예시된 본 발명은 본원 명세서에 도시 및 개시되고 있는 특정의 상세한 설명 및 대표적인 실시예들로 한정하는 것은 아니다. 따라서, 당업자라면, 첨부된 특허 청구의 범위에 의해 정의된 바와 같은 본 발명의 개념의 기술적 사상 및 범주로부터 이탈함이 없이 여러 가지의 변형 및 수정이 가능함을 이해할 수 있을 것이다.
이상, 상기와 같은 본 발명에 의한 내부 인증 처리에 따르면, IC 카드가 논리 채널 번호마다 난수 데이터를 유지할 수 있고, 논리 채널마다 난수 데이터를 이용한 내부 인증 처리를 실현할 수 있다.

Claims (13)

  1. 휴대 가능한 전자 장치로서,
    데이터를 기억하는 제1 메모리와;
    상기 제1 메모리에 기억되어 있는 데이터에 대한 관리 정보를 논리 채널마다 기억하는 제2 메모리와;
    상기 제2 메모리에 기억되어 있는 논리 채널마다 관리 정보에 기초하여 상기 제1 메모리에 기억되어 있는 데이터로의 액세스를 제어하는 제어부
    를 구비하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  2. 제1항에 있어서, 상기 제2 메모리에는 상기 제1 메모리에 기억되어 있는 데이터에 대하여 액세스하는 위치를 나타내는 포인터 정보를 논리 채널마다 관리 정보로서 기억하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  3. 제1항에 있어서, 상기 제2 메모리에는 상기 제1 메모리에 기억된 데이터가 대응하는 논리 채널을 나타내는 정보를 관리 정보로서 기억하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  4. 제1항에 있어서, 외부와의 데이터 송수신을 행하는 통신부를 더 포함하고,
    상기 제어부는 상기 통신부에 의해 수신된 커맨드에 있어서 나타내는 논리 채널과 상기 제2 메모리에 기억되어 있는 커맨드가 지정하는 논리 채널에 대응하는 관리 정보에 기초하여 상기 제1 메모리로의 액세스를 제어하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  5. 휴대 가능한 전자 장치로서,
    복수의 기록 데이터 영역으로 분할된 파일을 기억하고 있는 제1 메모리와;
    상기 제1 메모리에 기억되어 있는 파일 내의 기록 데이터 영역에 대한 포인터 정보를 논리 채널마다 기억하는 제2 메모리와;
    상기 제2 메모리에 기억되어 있는 논리 채널마다 포인터 정보에 기초하여 상기 제1 메모리에 기억되어 있는 파일 내의 데이터로의 액세스를 제어하는 제어부
    를 구비하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  6. 제5항에 있어서, 상기 제2 메모리에는 상기 제1 메모리에 기억되어 있는 파일 내의 기록 데이터 영역의 위치를 나타내는 위치 정보가 포인터 정보로서 기억되는 것을 특징으로 하는 휴대 가능한 전자 장치.
  7. 제5항에 있어서, 상기 제1 메모리에는 상기 파일이 기록 번호마다 분할된 기록 데이터 영역에 기억되어 있고,
    상기 제2 메모리에는 상기 파일 내의 기록 데이터 영역을 식별하기 위한 기록 번호를 나타내는 정보가 포인터 정보로서 기억되는 것을 특징으로 하는 휴대 가 능한 전자 장치.
  8. 제5항에 있어서, 상기 제1 메모리에는 복수의 파일이 기억되어 있고,
    상기 제어부는 액세스 대상이 되는 파일을 변경한 경우에 상기 제2 메모리에 기억하고 있는 논리 채널마다 포인터 정보를 초기화하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  9. 제5항에 있어서, 외부와의 데이터 송수신을 행하는 통신부를 더 포함하고,
    상기 제1 메모리에는 복수의 파일이 기억되어 있고,
    상기 제어부는 상기 통신부에 의해 외부로부터 논리 채널을 나타내는 정보를 포함하는 파일 선택 커맨드를 수신한 경우, 상기 파일 선택 커맨드에 기초하여 상기 제1 메모리에 기억되어 있는 복수의 파일로부터 하나의 파일을 선택하여, 상기 제2 메모리에 기억하고 있는 포인터 정보를 초기화하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  10. 휴대 가능한 전자 장치로서,
    외부와의 데이터의 송수신을 행하는 통신부와;
    상기 통신부에 의해 논리 채널을 나타내는 정보를 갖는 데이터의 생성을 요구하는 커맨드를 외부로부터 수신한 경우, 수신된 커맨드에 따라서 데이터를 생성하는 제어부와;
    상기 제어부에 의해 생성된 데이터를 상기 커맨드가 지정하는 논리 채널에 대응하는 데이터로서 기억하는 메모리
    를 구비하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  11. 제10항에 있어서, 상기 제어부는 상기 통신부에 의해 외부로부터 논리 채널을 나타내는 정보를 갖는 처리를 요구하는 커맨드를 수신한 경우, 상기 메모리에 기억하고 있는 데이터 중 수신된 커맨드가 지정하는 논리 채널에 대응하는 데이터를 이용하여 각 논리 채널마다의 처리로서 상기 커맨드가 요구하는 처리를 행하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  12. 제10항에 있어서, 상기 제어부는 상기 통신부에 의해 논리 채널을 지정하는 정보를 갖는 인증 처리에 사용하는 데이터의 생성을 요구하는 커맨드를 수신한 경우, 상기 커맨드에 따라서 인증 처리에 사용하는 데이터를 생성하고,
    상기 메모리는 상기 제어부에 의해 생성된 데이터를 그 커맨드가 지정하는 논리 채널에 대응하여 인증 처리에 사용하는 데이터로서 기억하는 것을 특징으로 하는 휴대 가능한 전자 장치.
  13. 제10항에 있어서, 상기 제어부는 상기 통신부에 의해 논리 채널을 나타내는 정보를 갖는 난수 데이터의 생성을 요구하는 커맨드를 수신한 경우, 수신된 커맨드에 따라서 난수 데이터를 생성하고,
    상기 메모리는 상기 제어부에 의해 생성된 난수 데이터를 그 커맨드가 지정하는 논리 채널에 대응하는 난수 데이터로서 기억하는 것을 특징으로 하는 휴대 가능한 전자 장치.
KR1020040102096A 2003-12-10 2004-12-07 휴대 가능한 전자 장치 KR100614064B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP2003411400 2003-12-10
JPJP-P-2003-00411400 2003-12-10
JPJP-P-2004-00238602 2004-08-18
JP2004238602A JP4828809B2 (ja) 2003-12-10 2004-08-18 Icカードおよびicカードにおける処理方法

Publications (2)

Publication Number Publication Date
KR20050056869A KR20050056869A (ko) 2005-06-16
KR100614064B1 true KR100614064B1 (ko) 2006-08-22

Family

ID=34525501

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040102096A KR100614064B1 (ko) 2003-12-10 2004-12-07 휴대 가능한 전자 장치

Country Status (6)

Country Link
US (1) US7434066B2 (ko)
EP (2) EP1544809B1 (ko)
JP (1) JP4828809B2 (ko)
KR (1) KR100614064B1 (ko)
DE (1) DE602004021226D1 (ko)
SG (1) SG112997A1 (ko)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7895443B2 (en) * 2002-11-05 2011-02-22 Safenet, Inc. Secure authentication using hardware token and computer fingerprint
JP3944216B2 (ja) * 2005-03-11 2007-07-11 株式会社エヌ・ティ・ティ・ドコモ 認証装置、携帯端末、及び、認証方法
JP4950533B2 (ja) * 2006-03-24 2012-06-13 株式会社東芝 携帯可能電子装置およびicカード
ATE510266T1 (de) 2006-07-19 2011-06-15 Research In Motion Ltd Verfahren, system und chipkartenleser zur verwaltung des zugangs zu einer chipkarte
US7766243B2 (en) 2006-07-19 2010-08-03 Research In Motion Limited Method, system and smart card reader for management of access to a smart card
JP4896837B2 (ja) 2007-08-20 2012-03-14 株式会社東芝 携帯可能電子装置および携帯可能電子装置の制御方法
JP4896842B2 (ja) * 2007-09-20 2012-03-14 株式会社東芝 携帯可能電子装置
JP5238210B2 (ja) * 2007-09-28 2013-07-17 株式会社東芝 情報記憶媒体及びファイル管理方法
JP5038918B2 (ja) * 2008-01-15 2012-10-03 株式会社東芝 携帯可能電子装置および携帯可能電子装置の制御方法
JP5225054B2 (ja) 2008-12-19 2013-07-03 株式会社東芝 Icカード
EP2239712A1 (fr) * 2009-04-09 2010-10-13 Gemalto SA Procédé pour personnaliser un dispositif électronique, procédé de traitement de données et dispositif associés
JP5150672B2 (ja) 2010-03-18 2013-02-20 株式会社東芝 携帯可能電子装置、及び携帯可能電子装置の制御方法
JP5659051B2 (ja) 2011-03-17 2015-01-28 株式会社東芝 通信媒体、icカード、及び通信方法
JP5843674B2 (ja) * 2012-03-21 2016-01-13 株式会社東芝 Icカード、携帯可能電子装置及びicカードの制御方法
US10402816B2 (en) * 2016-12-31 2019-09-03 Square, Inc. Partial data object acquisition and processing
US10621590B2 (en) 2017-02-22 2020-04-14 Square, Inc. Line-based chip card tamper detection

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2544722B2 (ja) * 1986-04-23 1996-10-16 富士通株式会社 情報格納制御方法及びその手段を具備した情報格納装置
JP2502894B2 (ja) * 1992-08-13 1996-05-29 松下電器産業株式会社 Icカ―ド
JP3329496B2 (ja) * 1992-11-04 2002-09-30 富士通株式会社 Icカード
JPH06325059A (ja) * 1993-05-10 1994-11-25 Toppan Moore Co Ltd 発注管理システム及び顧客管理システム
JP3433978B2 (ja) * 1993-07-30 2003-08-04 富士通株式会社 入出力制御装置
US5778071A (en) * 1994-07-12 1998-07-07 Information Resource Engineering, Inc. Pocket encrypting and authenticating communications device
JP4095680B2 (ja) * 1994-08-01 2008-06-04 富士通株式会社 カード型記憶装置用セキュリティ管理方法およびカード型記憶装置
DE19508724C1 (de) * 1995-03-10 1996-10-31 Siemens Ag Chipkarte mit geschütztem Betriebssystem
US6101477A (en) * 1998-01-23 2000-08-08 American Express Travel Related Services Company, Inc. Methods and apparatus for a travel-related multi-function smartcard
FR2793979B1 (fr) * 1999-05-18 2001-06-29 Schlumberger Systems & Service Procede de gestion de donnees par un module de securite
JP2003036425A (ja) * 2001-07-25 2003-02-07 Hitachi Ltd セキュリティカード
JP2003123032A (ja) * 2001-10-12 2003-04-25 Hitachi Ltd Icカード端末および本人認証方法
JP4393733B2 (ja) * 2001-11-27 2010-01-06 大日本印刷株式会社 携帯可能情報記録媒体
KR20030046621A (ko) * 2001-12-16 2003-06-18 한국전자통신연구원 계층화 구조의 프로토콜 스택을 사용하는 스마트 카드와휴대 단말기의 통신 환경 설정 방법

Also Published As

Publication number Publication date
EP1544809B1 (en) 2009-05-27
EP1544809A2 (en) 2005-06-22
DE602004021226D1 (de) 2009-07-09
SG112997A1 (en) 2005-07-28
EP2093719A1 (en) 2009-08-26
JP4828809B2 (ja) 2011-11-30
JP2005196730A (ja) 2005-07-21
US20050132151A1 (en) 2005-06-16
EP1544809A3 (en) 2005-11-02
KR20050056869A (ko) 2005-06-16
US7434066B2 (en) 2008-10-07

Similar Documents

Publication Publication Date Title
KR100614064B1 (ko) 휴대 가능한 전자 장치
JP4435084B2 (ja) 通信システム,リーダライタ,認証方法,およびコンピュータプログラム
KR100506559B1 (ko) 인증시스템및방법과인증장치및방법
JP4624732B2 (ja) アクセス方法
KR20160010605A (ko) 디바이스 및 메모리 시스템
JP5123524B2 (ja) 保護されたメモリ・アクセスを用いたスマートカード
EP0479617A2 (en) Mutual authentication system and method
WO2006120938A1 (ja) メモリカード、アプリケーションプログラム保持方法、及び保持プログラム
US7404523B2 (en) IC card with a cipher key conversion function
CN111488630A (zh) 可配置安全存储区域的存储装置及其操作方法
KR20020016701A (ko) 커널모드에서 파일을 자동으로 암호화, 복호화하는 방법,이를 이용한 파일 포인터 이동방법, 및 이들을프로그램화하여 수록한 컴퓨터로 읽을 수 있는 기록매체
EP2065830B1 (en) System and method of controlling access to a device
JP3178881B2 (ja) 携帯可能電子装置
JP4723187B2 (ja) メモリ内の符号化データの更新管理
JP2008109276A (ja) 携帯可能電子装置
JP2004139242A (ja) Icカード、icカード発行システム及びicカード発行方法
US20080046760A1 (en) Storage device for storing encrypted data and control method thereof
JP3963938B2 (ja) アクセス方法、メモリデバイス、および情報機器
CN113704773A (zh) 继电保护安全芯片操作系统及其通信方法
JP7042461B2 (ja) 記録制御システム、制御装置、記録制御方法および記録媒体
JPH10143441A (ja) 機密保持機能を備えた半導体装置、符号処理方法及びそのソフトウエアを記憶した記憶媒体
US20030051152A1 (en) Method and device for storing and reading digital data on/from a physical medium
JPH1115940A (ja) 情報記録用カード
JP2002024790A (ja) 情報処理システム、携帯可能電子装置、及びキー変更方法
WO2019082526A1 (ja) 携帯可能電子装置、及びicモジュール

Legal Events

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

Payment date: 20120724

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20130723

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20140722

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee