KR102020674B1 - Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법 - Google Patents

Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법 Download PDF

Info

Publication number
KR102020674B1
KR102020674B1 KR1020130078350A KR20130078350A KR102020674B1 KR 102020674 B1 KR102020674 B1 KR 102020674B1 KR 1020130078350 A KR1020130078350 A KR 1020130078350A KR 20130078350 A KR20130078350 A KR 20130078350A KR 102020674 B1 KR102020674 B1 KR 102020674B1
Authority
KR
South Korea
Prior art keywords
data
card
terminal
command
data block
Prior art date
Application number
KR1020130078350A
Other languages
English (en)
Other versions
KR20150005754A (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 한국조폐공사
Priority to KR1020130078350A priority Critical patent/KR102020674B1/ko
Publication of KR20150005754A publication Critical patent/KR20150005754A/ko
Application granted granted Critical
Publication of KR102020674B1 publication Critical patent/KR102020674B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/16Handling requests for interconnection or transfer for access to memory bus
    • G06F13/1668Details of memory controller
    • G06F13/1673Details of memory controller using buffers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0659Command handling arrangements, e.g. command buffers, queues, command scheduling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/08Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers from or to individual record carriers, e.g. punched card, memory card, integrated circuit [IC] card or smart card
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • G06K17/0003Automatic card files incorporating selecting, conveying and possibly reading and/or writing operations
    • G06K17/0009Automatic card files incorporating selecting, conveying and possibly reading and/or writing operations with sequential access selection of a record carrier from the card-file, e.g. relative movement between selecting device and card-file

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

IC 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법이 개시된다. 본 발명의 일 실시 예에 따른 데이터 발급방법은 단말이 IC 카드에 명령하여, IC 카드로부터 메모리 시작주소 및 페이지 버퍼의 크기정보를 수신하고, 수신한 정보를 이용하여 IC 카드에 발급하고자 하는 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하는 단계와, 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 데이터 블록까지 순차적으로 각 발급 명령을 통해 IC 카드에 전송하는 단계와, 최종 데이터 블록을 포함하는 발급 명령에 대한 카드 응답을 IC 카드로부터 수신하는 단계를 포함한다.

Description

IC 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법 {Issuing method and storing method of user data based on specific personalization command for IC card}
본 발명은 단말과 IC 카드 간의 통신을 통한 IC 카드 발급 및 저장기술에 관한 것이다.
IC 카드(Integrated Circuit Card)는 마이크로프로세서(microprocessor)와 메모리(memory)가 내장된 카드로, 카드 내에서 정보의 저장과 처리가 가능해 다양한 서비스를 제공할 수 있다. IC 카드의 예로는, 전자화폐·신용·선불·직불카드·교통카드·멤버십 카드 등일 수 있다. 나아가, IC 카드는 신분증, 운전면허증 등의 전자신분증(e-ID 카드)과 같이 개인정보까지도 저장하여 보다 진보된 다기능 카드로 사용이 가능하므로 스마트 카드(Smart Card)라고도 불린다. 특히, 전자신분증의 경우 사용자의 사진이나 지문 등의 대용량의 사용자 데이터를 저장할 수 있다.
IC 카드 발급은 사용자가 소지하고 있는 IC 카드에 발급하고자 하는 데이터를 전송하고, IC 카드에 전송된 데이터를 기록하는 일련의 프로세스를 포함한다. 단말의 IC 카드용 데이터 발급과정은 명령어(예, UPDATE Binary command)를 통해 IC 카드에 데이터를 전송하여 이루어질 수 있다. 이때, 단말이 명령어를 통해 데이터를 IC 카드에 전송한 후 IC 카드로부터 명령어에 따른 성공적인 수신 여부에 대하여 응답을 기다린다. 그러나 명령어를 통해 IC 카드에 전송하는 데이터가 사진이나 지문 등과 같이 대용량이 되어감에 따라 명령어를 여러 번 분할하여 IC 카드에 전송해야 하고, 단말은 매 명령어마다 IC 카드로부터 그 응답을 기다려야 한다.
이러한 명령-응답 방식은 단말로부터 데이터를 전부 전송받을 때까지 데이터에 대한 응답 메시지를 단말에 계속 전송해야 하기 때문에 데이터의 용량이 큰 경우에는 단말과 IC 카드의 불필요한 다수의 커뮤니케이션이 요구되며, 처리 시간이 지연되게 된다. 특히, PC 환경에 비해 상대적으로 하드웨어 제약성을 가진 IC 카드 환경에서 사용자 데이터의 발급 속도를 저하시키는 주요한 원인이 된다.
일 실시 예에 따라, 데이터 발급 속도를 단축하고 데이터 발급 신뢰성을 향상시킬 수 있는, IC 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법을 제안한다.
일 실시 예에 따른 단말이 명령어를 이용하여 IC 카드에 데이터를 발급하는 방법은, 단말이 IC 카드에 명령하여, IC 카드로부터 메모리 시작주소 및 페이지 버퍼의 크기정보를 수신하고, 수신한 정보를 이용하여 IC 카드에 발급하고자 하는 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하는 단계와, 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 데이터 블록까지 순차적으로 각 발급 명령을 통해 IC 카드에 전송하는 단계와, 최종 데이터 블록을 포함하는 발급 명령에 대한 카드 응답을 IC 카드로부터 수신하는 단계를 포함한다.
다른 실시 예에 따른 IC 카드가 단말의 명령어를 이용하여 데이터를 저장하는 방법은, 단말의 명령에 의해, 단말이 발급하고자 하는 데이터가 저장될 IC 카드의 메모리 시작주소 및 페이지 버퍼의 크기정보를 단말에 전송하는 단계와, 단말이 메모리 시작주소 및 페이지 버퍼의 크기정보를 이용하여 IC 카드에 발급할 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하면, 단말로부터 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 블록까지를 순차적으로 각 발급 명령을 통해 수신하고 수신된 각 발급 명령에 포함된 데이터 블록을 메모리에 저장하는 단계와, 단말로부터 최종 데이터 블록을 포함한 발급 명령을 수신하면, 이에 대한 카드 응답을 단말에 전송하는 단계를 포함한다.
일 실시 예에 따르면, UPDATE Binary 명령을 통한 명령-응답 방식이 아닌, 사용자 데이터의 최종 데이터 블록을 실은 UPDATE Binary 명령에 대한 카드 응답만을 IC 카드에 전송하는 방법과, 단말로부터 전달된 사용자 데이터를 EEPROM에 저장하는 과정 동안 IC 카드가 새로운 데이터 블록을 단말로부터 수신하는 방법을 통해 대용량 사용자 데이터의 발급 속도를 단축할 수 있다.
나아가, 단말의 UPDATE Binary 명령에 의해 IC 카드의 데이터 쓰기 동작 동안에 발생한 RF 파워 소비량의 간격과 Self_Write 명령에 의해 획득된 데이터 기록시간 비교를 통해 데이터 기록 오류 여부를 판단함에 따라 데이터 발급 신뢰성을 향상시킬 수 있다.
나아가, 단말의 UPDATE Binary 명령에 포함된 데이터 블록을 IC 카드가 EEPROM에 저장한 후 정상적으로 저장이 이루어졌는지 여부를 검증하고 검증 결과 정상적으로 저장되었으면 수신모드로 전환하여 새로운 데이터 블록을 포함한 UPDATE Binary 명령을 단말로부터 수신함에 따라 데이터 발급 신뢰성을 향상시킬 수 있다.
도 1은 IC 카드용 애플리케이션 프로토콜 데이터 단위(Application Protocol Data Unit: APDU) 명령어의 구조도,
도 2는 본 발명의 일 실시 예에 따른 UPDATE Binary 명령을 이용한 데이터 발급방법을 도시한 흐름도,
도 3은 본 발명의 일 실시 예에 따른 UPDATE Binary 명령에 의하여 IC 카드가 사용자 데이터를 저장하는 내부 프로세스를 도시한 흐름도,
도 4는 본 발명의 일 실시 예에 따른 단말과 IC 카드의 구성도,
도 5는 본 발명의 일 실시 예에 따른 도 4의 카드 메모리의 세부 구성도이다.
이하에서는 첨부한 도면을 참조하여 본 발명의 실시 예들을 상세히 설명한다. 본 발명을 설명함에 있어 관련된 공지 기능 또는 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명을 생략할 것이다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례 등에 따라 달라질 수 있다. 그러므로 그 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 IC 카드용 애플리케이션 프로토콜 데이터 단위(Application Protocol Data Unit: 이하 APDU라 칭함) 명령어의 구조도이다.
본 발명은 단말이 IC 카드에 사용자 데이터를 고속으로 발급하기 위한 기술이다. IC 카드의 예로는, 전자화폐·신용·선불·직불카드·교통카드·멤버십 카드 등일 수 있는데, 특히 IC 카드는 신분증, 운전면허증 등과 같은 전자신분증(e-ID 카드)일 수 있다. 이때 단말은 전자신분증 발급기관의 장치일 수 있다. 전자신분증에 발급하는 데이터는 사진이나 지문 등 대용량의 사용자 데이터일 수 있다.
도 1을 참조하면, 단말과 IC 카드 간 통신 프로토콜은 APDU 명령어를 이용한다. APDU 명령어는 단말에서 IC 카드로 전송되는 Command-APDU 명령과, Command-APDU 명령에 대한 응답으로 IC 카드에서 단말로 전송되는 Response-APDU 명령으로 구성된다.
IC 카드로의 데이터 발급은 단말이 IC 카드에 Command-APDU 명령을 전달함에 따라 이루어진다. Command-APDU 명령을 수신한 IC 카드는 Command-APDU 명령에 따라 주어진 일을 처리한다. Command-APDU 명령은 CLA(Class byte), INS(Instruction Code), P1(Instruction Parameter 1), P2(Instruction Parameter 2), Lc(Length of Command data), Data, Le(Length of Expected data) 필드로 구성된다. 이때, CLA는 명령 클래스이고, INS는 명령 클래스를 포함한 명령 코드이다. 또한, P1과 P2는 명령에 대한 파라미터 값을, Lc는 명령어 데이터 필드 내에 존재하는 데이터의 길이를, Data는 명령어로 전송하는 데이터를, Le는 응답 데이터 필드에서 예상되는 최대 데이터의 길이를 각각 의미한다.
Command-APDU 명령에 따라 주어진 일을 처리한 IC 카드가 단말에 전송하는 Response-APDU 명령은 SW1(Status Word 1), SW2(Status Word 2) 및 Data 필드로 구성된다. SW1과 SW2는 명령어의 처리상태를 의미하고, Data는 IC 카드로부터의 응답 데이터를 의미한다.
단말이 IC 카드에 데이터를 발급하기 위해 사용되는 APDU 명령은 UPDATE Binary 명령이다. 이때, 단말은 대용량 데이터를 IC 카드에 발급하기 위해 데이터를 다수의 데이터 블록으로 분할하고 이를 UPDATE Binary 명령어의 데이터 필드에 실어 IC 카드에 전송한다.
도 2는 본 발명의 일 실시 예에 따른 UPDATE Binary 명령을 이용한 데이터 발급방법을 도시한 흐름도이다.
도 2를 참조하면, 단말(1)과 IC 카드(2) 간의 통신은 일반적인 UPDATE Binary 명령의 동작 방식인 명령-응답 형태로 동작하지 않는다. 일 실시 예에 따르면, 단말(1)은 사용자 데이터를 각 UPDATE Binary 명령을 통해 최초 데이터 블록부터 최종 데이터 블록까지 순차적으로 IC 카드(2)에 전송한다. 그리고, IC 카드(2)는 모든 UPDATE Binary 명령에 대해 응답하는 것이 아니라, 최종 데이터 블록을 실은 UPDATE Binary 명령에 대해서만 카드 응답을 단말(1)에 전송하여 사용자 데이터가 정상적으로 저장되었음을 단말(1)에 알린다. 전술한 방식은, 명령-응답 방식이 아닌 사용자 데이터의 최종 데이터 블록에 대한 응답만을 전송하는 방법으로서, 이러한 방식을 통해 IC 카드(2)의 대용량 사용자 데이터에 대한 발급 속도를 향상시킬 수 있다.
일 실시 예에 따른 IC 카드(2)는 단말(1)이 발급한 사용자 데이터를 비휘발성 메모리에 저장한다. 비휘발성 메모리로는 예를 들어, EEPROM(Electrically Erasable Programmable Read Only Memory), 플래시(flash) 메모리 등일 수 있는데, 이하 EEPROM에 데이터를 저장하는 예를 중심으로 후술한다.
휘발성 메모리인 RAM이 하나의 셀(cell) 단위로 쓰기(write) 작업이 이루어지는데 비하여, EEPROM이나 플래시와 같은 비휘발성 메모리는 페이지(page) 단위로 블록 쓰기 작업이 이루어진다. 따라서, 1 바이트를 쓰기 위해서도 어쩔 수 없이 페이지 단위의 쓰기 작업이 이루어져야 한다. 다시 말하면, 페이지 단위 기록의 특성은 페이지 내의 주소에 대해서는 1 바이트를 쓰거나 페이지 전체, 예를 들면 128 바이트 또는 256 바이트를 쓰더라도 동일한 시간이 소요된다. 이때, 페이지의 바이트 수는 이에 한정되지 않고 회사마다 다를 수 있다.
전술한 비휘발성 메모리의 특성을 이용하여, 단말(1)은 발급 전용 명령어인 UPDATE_Binary 명령을 전송하기 이전에, Self_Write 명령을 IC 카드(2)에 전송(100)하고, IC 카드(2)는 Self_Write 명령에 따라 하나의 페이지에 대하여 EEPROM에 데이터를 기록(200)하고, 단말(1)은 IC 카드(2)의 카드 응답(110)을 통해 데이터를 기록하는데 소요되는 시간을 계산한다.
일 실시 예에 따르면, 단말(1)은 Self_Write 명령을 통해 IC 카드(2)에 1 바이트에 대한 기록만을 수행하도록 명령한다. 전술한 비휘발성 메모리의 특성으로 인해 1 바이트 쓰기이지만, IC 카드(2) 내부적으로는 페이지 버퍼를 이용하여 1 페이지(128 바이트 또는 256 바이트)에 대한 기록을 수행한다. 이러한 Self_Write 명령어를 통해 단말(1)은 1 페이지에 1 바이트의 데이터를 EEPROM에 저장하는데 소요되는 시간을 계산할 수 있다. 계산된 데이터 기록시간은 추후 단말(1)이 IC 카드(2)에 전용 발급 명령어를 사용하여 데이터를 발급하는 동안 발급이 정상적으로 이루어지는지 여부를 검증하기 위해 사용되며, 이에 대해서는 검증 프로세스에서 후술한다.
이어서, 단말(1)은 Self_Align 명령을 IC 카드(2)에 전송(120)하고, IC 카드(2)는 수신한 Self_Align 명령에 의해 데이터가 저장될 EEPROM의 시작주소와 IC 칩의 페이지 크기를 계산(210)한 후, EEPROM의 시작주소와 IC 칩의 페이지 크기 정보를 단말(1)에 전송한다(130).
이어서, 단말(1)은 IC 카드(2)로부터 전달받은 EEPROM 시작 주소와 IC 칩의 페이지 버퍼 크기 정보를 이용하여 IC 카드(2)에 발급하고자 하는 데이터를 페이지 단위로 분할한다(135). 예를 들어, 데이터가 저장될 EEPROM의 시작주소가 0x500110이고 페이지 버퍼의 크기가 256 바이트라고 가정한다면, 단말(1)이 제1 UPDATE Binary 명령을 사용하여 IC 카드(2)에 전송할 첫 번째 데이터 블록의 길이는 0x500110에서 0x5001FF까지이므로, 첫 번째 데이터 블록의 크기는 0xF0이며, 단말(1)은 0xF0 크기만큼 첫 번째 데이터 블록을 IC 카드(2)에 전송한다(140).
제1 UPDATE Binary 명령을 수신한 IC 카드(2)는 제1 UPDATE Binary 명령에 포함된 첫 번째 데이터 블록을 EEPROM의 시작주소부터 저장한다(220). 이후부터는, 단말(1)은 EEPROM 쓰기 기본 단위인 페이지 버퍼 크기(예를 들어 128 바이트 또는 256 바이트)에 따라 연속적으로 제2 ~ 제n UPDATE Binary 명령을 통해 각 데이터 블록들을 IC 카드(2)로 전송(150)하며, 연속된 제2 ~ 제n UPDATE Binary 명령을 수신한 IC 카드(2)는 각 UPDATE Binary 명령을 수신할 때마다 해당되는 데이터 블록을 EEPROM에 저장한다(230, 240). 이때, 단말(1)이 IC 카드(2)에 전송하는 데이터 블록의 크기는 IC 카드(2)의 페이지 버퍼의 크기에 따라 결정된다. IC 카드(2)는 UPDATE Binary 명령을 통해 단말(1)로부터 전달된 사용자 데이터를 EEPROM에 저장하는 과정 동안 새로운 데이터 블록을 단말(1)로부터 수신할 수 있다.
IC 카드(2)는 단말(1)로부터 마지막에 해당하는 제n UPDATE Binary 명령을 수신하면, 제n UPDATE Binary 명령에 포함된 데이터 블록을 EEPROM에 저장하고 나서, 비로소 단말(1)에 카드 응답을 전송한다(160). 전술한 방식은, 명령-응답 방식이 아닌 사용자 데이터의 최종 데이터 블록에 대한 응답만을 전송하는 방법으로서, 해당 방식을 통해 IC 카드(2)의 대용량 사용자 데이터에 대한 발급 속도를 향상시킬 수 있다.
한편, IC 카드(2)의 EEPROM에 1 페이지 크기의 데이터를 저장하는 시간은 APDU 명령을 송수신하는 데 소요되는 시간에 비해 상대적으로 매우 많은 시간이 소요된다. 전술한 특징을 이용하여 단말(1)은 UPDATE Binary 명령을 통해 IC 카드(2)에 전달된 데이터가 EEPROM에 정상적으로 저장이 되었는지는 여부를 판단할 수 있다. 일 실시 예에 따른 단말(1)은 IC 카드(2)가 EEPROM에 데이터를 기록할 때 고전압(High Voltage) 동작에 의해 발생하는 RF 파워 소비량을 모니터링하여 데이터가 정상적으로 저장되었는지 여부를 검증한다.
EPROM의 기록 동작을 위해서는 고전압이 필요한데, IC 카드(2)는 이러한 고전압을 외부 전압원 또는 내부에 형성된 고전압 생성회로를 통해 공급받을 수 있는데, 이러한 동작을 High Voltage 동작이라 한다. IC 카드(2)가 High Voltage 동작에 의해 고전압을 공급받아 EEPROM에 데이터를 기록할 때 RF 파워 소비가 발생하며, 단말(1)은 IC 카드(2)로부터 발생하는 RF 파워 소비량 변화를 모니터링하여 IC 카드(2)에 정상적으로 데이터가 발급되었는지 여부를 검증할 수 있다.
일 실시 예에 따르면, 단말(1)은 RF 소비량의 간격과, Self_Write 명령을 통해 계산된 데이터 기록시간 값을 비교하여, 데이터가 정상적으로 EEPROM에 기록되었는지 여부를 검증한다. 예를 들어, 비교 결과에 따라, RF 소비량의 간격이 Self_Write 명령을 통해 계산된 데이터 기록시간 값보다 적으면 단말(1)은 데이터가 정상적으로 EEPROM에 기록되지 않은 것으로 판단하여, IC 카드(2)에 데이터 발급을 중단할 수 있다.
다른 실시 예에 따르면, High Voltage 동작을 통한 EEPROM에 데이터의 기록이 정상적으로 이루어졌는지를 검증하는 프로세스는, IC 카드(2)가 하나의 데이터 블록에 대한 쓰기 동작을 수행한 후 페이지 버퍼 내의 데이터와 High Voltage를 통해 EEPROM에 기록된 데이터를 비교함으로써 이루어질 수 있다. 예를 들어, IC 카드(2)는 페이지 버퍼 내의 데이터와 EERPOM에 기록된 데이터가 동일한 경우 데이터 기록이 정상적으로 이루어졌다고 판단한다. 이러한 검증 과정이 정상적으로 수행된 후, IC 카드(2)는 단말(1)로부터 다음 데이터 블록을 수신하기 위해 수신 모드로 전환될 수 있다.
전술한 바에 따르면, UPDATE Binary 명령을 통해 단말(1)로부터 전달된 사용자 데이터를 EEPROM에 저장하는 과정 동안 IC 카드(2)가 새로운 데이터 블록을 단말(1)로부터 수신하는 방법과, 명령-응답 방식이 아닌 사용자 데이터의 최종 데이터 블록에 대한 응답만을 전송하는 방법을 통해 IC 카드(2)에 대용량 사용자 데이터 발급 속도를 향상시킬 수 있다.
도 3은 본 발명의 일 실시 예에 따른 UPDATE Binary 명령에 의하여 IC 카드(2)가 사용자 데이터를 저장하는 내부 프로세스를 도시한 흐름도이다.
도 3을 참조하면, 단말(1)은 제1 UPDATE Binary 명령을 통해 제1 사용자 데이터 블록을 IC 카드(2)에 전송한다(310). 제1 UPDATE Binary 명령을 수신(311)한 IC 카드(2)는 제1 UPDATE Binary 명령에 실린 제1 사용자 데이터 블록을 IC 카드(2)의 통신 버퍼에 저장한 후 EEPROM에 기록하기 위해 페이지 버퍼에 로딩한다(312). 그리고, 페이지 버퍼에 로딩된 데이터 블록을 High Voltage 동작을 통해 EEPROM에 기록한다(313).
High Voltage 동작을 통해 EEPROM에 제1 사용자 데이터 블록을 기록하는 동안 IC 카드(2)는 APDU 수신 모드로 전환되어 단말(1)로부터 제2 UPDATE Binary 명령을 통해 전송되는 제2 데이터 블록을 수신한다(320, 321). 이어서, IC 카드(2)는 통신 버퍼에 제2 데이터 블록을 저장한 후 페이지 버퍼 로딩(322) 및 EEPROM 기록(323)을 수행한다. 전술한 동작 프로세스는 최종 UPDATE Binary 명령을 통해 최종 데이터 블록을 수신할 때까지 반복 수행된다(340, 341, 342, 343). 이어서, 최종 데이터 블록의 기록이 성공적으로 수행되면, IC 카드(2)는 기록이 성공적으로 이루어졌음을 알리는 응답 SW(0x9000)를 포함한 카드 응답을 단말(350)로 전송하고, 단말(1)은 이를 수신한다(351).
도 4는 본 발명의 일 실시 예에 따른 단말(1)과 IC 카드(2)의 구성도이다.
도 2 및 도 4를 참조하면, 단말(1)은 단말 통신부(10), 단말 제어부(12) 및 단말 메모리(14)를 포함하고, IC 카드(2)는 카드 통신부(20), 카드 제어부(22) 및 카드 메모리(24)를 포함한다.
단말 통신부(10)는 Self_Write 명령, Self_Align 명령, Update Binary 명령을 IC 카드(2)에 전송하고, IC 카드(2)가 해당 명령을 처리하면, 카드 응답을 IC 카드(2)로부터 수신한다.
일 실시 예에 따른 단말 통신부(10)는 IC 카드(2)에 Self_Align 명령을 전송한다. 그리고, Self_Align 명령에 의해 IC 카드(2)로부터 메모리 시작주소 및 페이지 버퍼의 크기정보를 수신한다.
일 실시 예에 따른 단말 통신부(10)는 IC 카드(2)로의 데이터 전송을 위해, 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 데이터 블록까지 순차적으로 각 Update Binary 명령을 통해 IC 카드(2)에 전송한다. 그리고, 최종 데이터 블록을 포함하는 Update Binary 명령에 대한 카드 응답을 IC 카드(2)로부터 수신한다.
일 실시 예에 따른 단말 제어부(12)는 단말 통신부(10)를 통해 IC 카드(2)로부터 수신된 메모리 시작주소 및 페이지 버퍼의 크기정보를 이용하여 IC 카드(2)에 발급하고자 하는 데이터를 페이지 단위로 다수의 데이터 블록으로 분할한다. 이때, 단말 제어부(12)는 데이터를 다수의 데이터 블록으로 분할할 때, 첫 번째 데이터 블록에 한해서 데이터 블록이 저장될 메모리의 시작주소 및 페이지 버퍼의 크기를 이용하여 첫 번째 데이터 블록의 크기를 계산하고, 다음 데이터 블록부터는 페이지 버퍼의 크기에 따라 데이터 블록의 크기를 계산할 수 있다.
일 실시 예에 따른 단말 제어부(12)는 단말(1)의 발급 명령에 의해 IC 카드가 전압을 공급받아 데이터 쓰기를 수행할 때 발생하는 RF 파워 소비량의 간격 정보를 단말 통신부(10)를 통해 IC 카드(2)로부터 수신하고, 수신한 RF 파워 소비량의 간격 정보를 이용하여 데이터 기록 오류를 판단한다.
데이터 기록 오류 판단을 위해, 단말 제어부(12)는 단말(1)의 UPDATE Binary 명령 전송 이전에, 단말 통신부(10)를 통해 IC 카드(2)에 메모리의 단일 페이지에 데이터를 기록하도록 요청하는 Self_Write 명령을 전송하고, IC 카드(2)로부터 카드 응답을 수신한다. 이때, 단말 제어부(12)는 Self_Write 명령에 따라 데이터를 기록한 IC 카드(2)의 데이터 기록시간을 계산한다. 단말 제어부(12)는 단말(1)의 UPDATE Binary 명령에 의해 IC 카드(2)의 데이터 쓰기 동작 동안에 발생한 RF 파워 소비량의 간격이 Self_Write 명령에 의해 계산된 데이터 기록시간보다 적으면 데이터 기록 오류로 판단하여 IC 카드(2)에 데이터 발급을 중단할 수 있다.
일 실시 예에 따른 단말 제어부(12)는 Self_Write 명령에 따른 데이터 기록시간 계산 시에, IC 카드(2)의 단일 페이지에 대한 데이터 기록시간을 계산하기 위해 1 바이트의 쓰기만을 수행하도록 단말 통신부(10)를 통해 IC 카드(2)에 요청하여 다중 페이지 쓰기를 차단할 수 있다. 단말 메모리(14)는 단말 통신부(10) 및 단말 제어부(12)의 기능 수행에 필요한 각종 데이터와, 단말 통신부(10)의 송수신에 따라 획득된 데이터를 저장한다.
한편, IC 카드(2)는 카드 통신부(20), 카드 제어부(22) 및 카드 메모리(24)를 포함한다. 카드 통신부(20)는 단말(1)로부터 Self_Write 명령, Self_Align 명령, Update Binary 명령을 수신하고, 각 명령에 따른 카드 응답을 단말(1)에 전송한다.
일 실시 예에 따른 카드 통신부(20)는 단말(1)로부터 Self_Align 명령을 수신하고, Self_Align 명령에 따라 단말(1)이 발급하고자 하는 데이터가 저장될 IC 카드(2)의 메모리 시작주소 및 페이지 버퍼의 크기정보를 단말(1)에 전송한다.
일 실시 예에 따른 카드 통신부(20)는 단말(1)이 메모리 시작주소 및 페이지 버퍼의 크기정보를 이용하여 IC 카드(2)에 발급할 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하면, 단말(1)로부터 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 블록까지를 순차적으로 각 UPDATE_Binary 명령을 통해 수신한다. 이때, 카드 제어부(22)는 수신된 각 UPDATE_Binary 명령에 포함된 데이터 블록을 카드 메모리(24)에 저장하고, 카드 통신부(20)는 단말(1)로부터 최종 데이터 블록을 포함한 UPDATE_Binary 명령을 수신하면, 이에 대한 카드 응답을 단말(1)에 전송한다.
일 실시 예에 따른 카드 제어부(22)는 카드 통신부(20)를 통해 단말(1)로부터 UPDATE_Binary 명령을 통해 수신된 데이터 블록을 카드 메모리(24)에 저장하는 동안에 카드 통신부(20)를 수신모드로 전환시켜, 새로운 데이터 블록을 포함한 UPDATE_binary 명령을 단말(1)로부터 수신하도록 한다.
카드 메모리(24)는 통신 버퍼와 페이지 버퍼와 같은 버퍼 메모리와, EEPROM과 같은 비휘발성 메모리를 포함한다. 일 실시 예에 따른 카드 제어부(22)는 카드 통신부(20)를 통해 단말(1)로부터 UPDATE_Binary 명령을 수신하면 수신된 UPDATE_Binary 명령에 포함된 데이터 블록을 통신 버퍼에 저장하고, 통신 버퍼에서 페이지 버퍼로 데이터 블록을 로딩하며, 페이지 버퍼에 로딩된 데이터 블록을 EEPROM에 기록한다. 전술한 프로세스는, IC 카드(2)가 처음 데이터 블록부터 최종 데이터 블록까지를 모두 수신할 때까지 반복 수행된다.
일 실시 예에 따른 카드 제어부(22)는 UPDATE_Binary 명령에 포함된 데이터 블록을 EEPROM에 저장한 후 정상적으로 저장이 이루어졌는지 여부를 검증한다. 예를 들어, 페이지 버퍼에 저장된 원본 데이터와 EEPROM에 저장된 목적지 데이터의 비교 연산을 통해 동일한 경우 정상적으로 기록이 이루어진 것으로 판단한다. 검증 결과 정상적으로 저장되었으면 카드 제어부(22)는 카드 통신부(20)를 수신모드로 전환시켜 새로운 데이터 블록을 포함한 UPDATE_Binary 명령을 단말(1)로부터 수신하도록 한다.
도 5는 본 발명의 일 실시 예에 따른 도 4의 카드 메모리(24)의 세부 구성도이다.
도 4 및 도 5를 참조하면, 카드 메모리(24)는 통신 버퍼(240), 페이지 버퍼(242) 및 EEPROM(244)을 포함한다. IC 카드(2)는 단말(1)로부터 UPDATE_Binary 명령을 수신하면, 수신된 UPDATE_Binary 명령에 포함된 데이터 블록을 통신 버퍼(240)에 저장하고, 통신 버퍼(240)에서 페이지 버퍼(242)로 데이터 블록을 로딩하며, 페이지 버퍼(242)에 로딩된 데이터 블록을 EEPROM(244)에 기록한다. 전술한 프로세스는, IC 카드(2)가 처음 데이터 블록부터 최종 데이터 블록까지를 모두 수신할 때까지 반복 수행된다.
이제까지 본 발명에 대하여 그 실시 예들을 중심으로 살펴보았다. 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시 예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 특허청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
1: 단말 10: 단말 통신부
12: 단말 제어부 14: 단말 메모리
2: IC 카드 20: 카드 통신부
22: 카드 제어부 24: 카드 메모리

Claims (10)

  1. 단말이 명령어를 이용하여 IC 카드에 데이터를 발급하는 방법에 있어서,
    단말이 IC 카드에 명령하여, IC 카드로부터 메모리 시작주소 및 페이지 버퍼의 크기정보를 수신하고, 수신한 정보를 이용하여 IC 카드에 발급하고자 하는 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하는 단계;
    다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 데이터 블록까지 순차적으로 각 발급 명령을 통해 IC 카드에 전송하는 단계;
    최종 데이터 블록을 포함하는 발급 명령에 대한 카드 응답을 IC 카드로부터 수신하는 단계; 및
    단말의 발급 명령에 의해 IC 카드가 전압을 공급받아 데이터 쓰기를 수행할 때 발생하는 RF 파워 소비량의 간격을 모니터링하고 모니터링 결과를 이용하여 IC 카드의 데이터 기록 오류를 판단하는 단계;
    를 포함하는 것을 특징으로 하는 단말의 데이터 발급방법.
  2. 제 1 항에 있어서, 상기 다수의 데이터 블록으로 분할하는 단계는,
    첫 번째 데이터 블록에 한해서 데이터 블록이 저장될 메모리의 시작주소 및 페이지 버퍼의 크기를 이용하여 첫 번째 데이터 블록의 크기를 계산하고, 다음 데이터 블록부터는 페이지 버퍼의 크기에 따라 데이터 블록의 크기를 계산하는 것을 특징으로 하는 단말의 데이터 발급방법.
  3. 삭제
  4. 제 1 항에 있어서, 상기 단말의 데이터 발급방법은,
    단말의 데이터 발급 이전에, 단말이 IC 카드에 메모리의 단일 페이지에 데이터를 기록하도록 요청하는 쓰기 명령을 전송하여, 쓰기 명령에 따라 데이터를 기록한 IC 카드의 데이터 기록시간을 계산하는 단계; 를 더 포함하며,
    상기 IC 카드의 데이터 기록 오류를 판단하는 단계는,
    단말의 발급 명령에 의해 IC 카드의 데이터 쓰기 동작 동안에 발생한 RF 파워 소비량의 간격이 쓰기 명령에 의해 계산된 데이터 기록시간보다 적으면 데이터 기록 오류로 판단하여 IC 카드에 데이터 발급을 중단하는 것을 특징으로 하는 단말의 데이터 발급방법.
  5. 제 4 항에 있어서, 상기 데이터 기록시간을 계산하는 단계는,
    IC 카드의 단일 페이지에 대한 데이터 기록시간을 계산하기 위해 1 바이트의 쓰기만을 수행하도록 IC 카드에 요청하여 다중 페이지 쓰기를 차단하는 것을 특징으로 하는 단말의 데이터 발급방법.
  6. IC 카드가 단말의 명령어를 이용하여 데이터를 저장하는 방법에 있어서,
    단말의 명령에 의해, 단말이 발급하고자 하는 데이터가 저장될 IC 카드의 메모리 시작주소 및 페이지 버퍼의 크기정보를 단말에 전송하는 단계;
    단말이 메모리 시작주소 및 페이지 버퍼의 크기정보를 이용하여 IC 카드에 발급할 데이터를 페이지 단위로 다수의 데이터 블록으로 분할하면, 단말로부터 다수의 데이터 블록으로 분할된 데이터의 첫 번째 데이터 블록부터 최종 블록까지를 순차적으로 각 발급 명령을 통해 수신하고 수신된 각 발급 명령에 포함된 데이터 블록을 메모리에 저장하는 단계;
    단말로부터 최종 데이터 블록을 포함한 발급 명령을 수신하면, 이에 대한 카드 응답을 단말에 전송하는 단계;
    발급 명령에 포함된 데이터 블록을 메모리에 저장한 후 정상적으로 저장이 이루어졌는지 여부를 검증하는 단계; 및
    검증 결과 정상적으로 저장되었으면 수신모드로 전환하여 새로운 데이터 블록을 포함한 발급 명령을 단말로부터 수신하는 단계;
    를 포함하는 것을 특징으로 하는 IC 카드의 데이터 저장방법.
  7. 제 6 항에 있어서, 상기 데이터 블록을 메모리에 저장하는 단계는,
    단말로부터 발급 명령을 통해 수신된 데이터 블록을 EEPROM에 저장하는 동안에 수신모드로 전환하여 새로운 데이터 블록을 포함한 발급 명령을 단말로부터 수신하는 것을 특징으로 하는 IC 카드의 데이터 저장방법.
  8. 제 6 항에 있어서, 상기 데이터 블록을 메모리에 저장하는 단계는,
    단말로부터 발급 명령을 수신하면 수신된 발급 명령에 포함된 데이터 블록을 통신 버퍼에 저장하는 단계;
    통신 버퍼에서 페이지 버퍼로 데이터 블록을 로딩하는 단계; 및
    페이지 버퍼에 로딩된 데이터 블록을 EEPROM에 저장하는 단계; 를 포함하며,
    처음 데이터 블록부터 최종 데이터 블록까지를 모두 수신할 때까지 통신 버퍼 저장 단계, 페이지 버퍼 로딩 단계 및 EEPROM 저장 단계를 반복 수행하는 것을 특징으로 하는 IC 카드의 데이터 저장방법.
  9. 삭제
  10. 제 6 항에 있어서, 상기 검증하는 단계는,
    페이지 버퍼에 저장된 원본 데이터와 EEPROM에 저장된 목적지 데이터의 비교 연산을 통해 동일한 경우 정상적으로 기록이 이루어진 것으로 판단하는 것을 특징으로 하는 IC 카드의 데이터 저장방법.
KR1020130078350A 2013-07-04 2013-07-04 Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법 KR102020674B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020130078350A KR102020674B1 (ko) 2013-07-04 2013-07-04 Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020130078350A KR102020674B1 (ko) 2013-07-04 2013-07-04 Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법

Publications (2)

Publication Number Publication Date
KR20150005754A KR20150005754A (ko) 2015-01-15
KR102020674B1 true KR102020674B1 (ko) 2019-09-11

Family

ID=52477335

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020130078350A KR102020674B1 (ko) 2013-07-04 2013-07-04 Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법

Country Status (1)

Country Link
KR (1) KR102020674B1 (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101012151B1 (ko) * 2009-10-27 2011-02-07 한국조폐공사 명령어 확장을 통한 스마트카드 업데이트 방법 및 시스템

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004036440A1 (ja) * 2002-10-16 2004-04-29 Matsushita Electric Industrial Co., Ltd. Icカード、データ転送装置、データ転送方法及びデータ転送方法のプログラム

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101012151B1 (ko) * 2009-10-27 2011-02-07 한국조폐공사 명령어 확장을 통한 스마트카드 업데이트 방법 및 시스템

Also Published As

Publication number Publication date
KR20150005754A (ko) 2015-01-15

Similar Documents

Publication Publication Date Title
EP1769331B1 (en) Storage device and host apparatus
KR100877610B1 (ko) 페이지 데이터 저장 방법과 저장 장치
US20160306594A1 (en) Host for controlling non-volatile memory card, system including the same, and methods operating the host and the system
US11507272B2 (en) Controller for performing garbage collection operation based on performance ratio and memory system including the same
CN108958642B (zh) 存储器系统及其操作方法
CN110059032A (zh) 存储器接口及具有存储器接口的存储器控制器
US20070226401A1 (en) Data accessing structure and method for flash memory
US7831755B2 (en) Method and system for interfacing a plurality of memory devices using an MMC/SD protocol
KR20190102778A (ko) 전자 장치 및 그것의 동작 방법
CN104699622A (zh) 数据储存装置以及其数据抹除方法
US20110022746A1 (en) Method of dispatching and transmitting data streams, memory controller and memory storage apparatus
US20090307427A1 (en) Memory card and method of writing data
KR20170141298A (ko) 데이터 저장 장치 및 그것의 동작 방법
US8595420B2 (en) Method for dispatching and transmitting data streams between host system and memory storage apparatus having non-volatile memory and smart card chip, memory controller, and memory storage apparatus
KR20190106005A (ko) 메모리 시스템, 그것의 동작 방법 및 전자 장치
US10762009B2 (en) Data processing system including memory systems coupled through internal channel
US20070162699A1 (en) Apparatus for expanding storage capacity of memory card and operating method of memory card with the same
CN113467709A (zh) 存储器系统及其操作方法
US20080162479A1 (en) Memory card system and method for transmitting background information thereof
KR20210060867A (ko) 데이터 저장 장치 및 그것의 동작 방법
KR102020674B1 (ko) Ic 카드 전용 발급 명령어를 이용한 데이터 발급 및 저장방법
KR20170139730A (ko) 데이터 저장 장치 및 그것의 동작 방법
US10282328B2 (en) Apparatus having direct memory access controller and method for accessing data in memory
US9666290B2 (en) Flash memory counter
CN111352856B (zh) 存储器系统及其操作方法

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