KR100760275B1 - 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜 - Google Patents

가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜 Download PDF

Info

Publication number
KR100760275B1
KR100760275B1 KR1019997011847A KR19997011847A KR100760275B1 KR 100760275 B1 KR100760275 B1 KR 100760275B1 KR 1019997011847 A KR1019997011847 A KR 1019997011847A KR 19997011847 A KR19997011847 A KR 19997011847A KR 100760275 B1 KR100760275 B1 KR 100760275B1
Authority
KR
South Korea
Prior art keywords
specific data
application
storage means
chip card
card
Prior art date
Application number
KR1019997011847A
Other languages
English (en)
Other versions
KR20010013827A (ko
Inventor
나쏘르아자드
Original Assignee
쎄뻬8 테크날러지스 에스에이
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 쎄뻬8 테크날러지스 에스에이 filed Critical 쎄뻬8 테크날러지스 에스에이
Publication of KR20010013827A publication Critical patent/KR20010013827A/ko
Application granted granted Critical
Publication of KR100760275B1 publication Critical patent/KR100760275B1/ko

Links

Images

Classifications

    • 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
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44594Unloading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/04Methods or arrangements for sensing record carriers, e.g. for reading patterns by mechanical means, e.g. by pins operating electric contacts
    • G06K7/042Methods or arrangements for sensing record carriers, e.g. for reading patterns by mechanical means, e.g. by pins operating electric contacts controlling electric circuits
    • 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/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/409Device specific authentication in transaction processing
    • G06Q20/4093Monitoring of device authentication
    • 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

Abstract

본 발명은 정보처리수단과 주 정보기억수단(10,14)을 구비하는 칩 카드에 관한 것으로, 상기 처리 수단은, 칩카드의 동작동안, 상기 주 정보처리수단(10,14)이 다량의 정보를 포함하여 동작의 실행이 불가능한 것을 검출하기 위한 수단; 상기 주기억수단에 있어서, 언로딩될 한 세트의 정보를 선택하는 수단으로, 그의 언로딩이 상기 동작의 실행을 허용하도록 상기 주 기억수단에 충분한 공간을 해제할 수 있는, 수단; 및 상기 부 기억수단이 상기 언로딩될 세트의 정보를 포함하지 않는 경우에, 상기 언로딩될 세트의 정보를 부 기억수단(23-25, 42,53)으로 언로딩하기 수단을 포함한다.
본 발명은 또한, 상기와 연관된 방법 및 통신 프로토콜에 관한 것이다.

Description

가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드, 그와 관련된 통신 방법 및 프로토콜{CHIP CARD COMPRISING MEANS FOR MANAGING A VIRTUAL MEMORY, ASSOCIATED COMMUNICATION METHOD AND PROTOCOL}
본 발명은 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드에 관한 것이다.
약 20년 동안 칩 카드는 일상 생활에서 중요한 역할을 해왔다. 은행업 분야는 마이크로회로 카드에 주로 관심을 가져왔다: 그 주 잇점은 사기 행위를 감소시키는 것이다. 유료 TV와 무선전화 회사는 마이크로회로 카드를 전송을 암호화하고 암호화된 전송을 복호화하는 데 사용되는 키를 발생시키는 수단으로 사용한다. 확실한 보안을 위하여, 새로운 집적 회로 아키텍처를 생성할 필요가 있다. 전자 지갑형태의 카드는 전자 화폐의 합계를 포함한다: 그렇지 않으면, 소위 자유 사용자 카드(frequent-customer cards)는 그 소지자에게 경제적 보상을 제공한다.
최근, 마이크로회로 카드에 관한 장치, 특히 마이크로프로세서 카드는 그 애플리케이션(applications)이 매우 증가하고 있다. 우선, 카드의 동작 시스템, 즉, ROM내에 위치한 프로그램은 하나의 애플리케이션만을 다룰 수 있다. 동작 시스템은 마이크로회로의 제작동안 기입된다. 프로그램 메모리(ROM)와 비휘발성 프로그램 가능 메모리(EPROM과 EEPROM 및 최근의 FeRAM)의 용량을 증가시킴으로써, 동작 시스템은 더욱 많은 기능을 실행할 수 있다. 그러나, 이러한 기능의 수는 ROM의 용량에 의해 여전히 제한된다. 게다가, 또 다른 기능을 ROM에 부가하는 것은 새로운 마스크를 제작할 필요성을 유발시킨다; 이러한 제조는 매우 고가이며 많은 양의 카드가 제작될 때에만 경제성이 있다.
ROM 메모리에 영향없이 이러한 기능의 수를 증가시키는 한 방법은 실행가능한 프로그램과 프로그램이 실행되도록 하는 데이터를 프로그램 가능 메모리로 기입하는 단계로 구성된다. 따라서, 한 세트의 기능만을 처음에 갖는 동작 시스템에 부가적인 기능을 더하는 것이 가능하다. 특허출원 제FR-A-2,748,134호는 프로그램을 프로그램 가능 메모리로 로딩하는 수단을 기술한다. 그러나, 프로그램 가능 메모리는 한정된 크기를 갖는다; 일단 프로그램으로 가득차면, 기능을 부가하는 것은 불가능하다. 게다가, 이러한 프로그램의 기억은 프로그램 가능 메모리내의 데이터용으로 의도된 메모리 공간을 감소시킨다. 종래의 방법은 ROM 내에 위치한 프로그램의 소정 결함을 정정하거나 다른 일부 기능을 부가하는데 사용된다. 카드가 매우 큰 크기의 프로그램을 운영해야만 한다면, 그러한 방법이 불충분하다는 것을 입증할 수 있다.
본 발명의 목적은 카드에 의해 구성되는 정보처리장치에서 프로그램 및/또는 애플리케이션 데이터에 대한 필요에 따라 프로그램 가능 메모리를 로딩하고 언로딩하는 방법을 제안함으로써 상술한 문제를 해결하는 것이다. 따라서, 카드가 전자 지갑, 은행업무 애플리케이션, 현재 프랑스에서 테스트되고 있는 GSM 전화통신 또는 건강 관리 애플리케이션과 같이 매우 다양한 애플리케이션을 실행하는 것이 가능하다. 본 발명의 도움으로, 상기 애플리케이션은 가상적으로 카드의 내부에 있다. 카드의 소유자는 미리 그러한 애플리케이션을 로딩시킨다; 따라서, 상기 카드는 그 특정 필요성에 따라 구성된다.
본 발명은 다른 문제를 해결하는 것이 가능하다. 사용자는 동시에 동일한 애플리케이션을 두번 오픈할 필요가 있다. 카드와 같은 정보처리장치에 이러한 애플리케이션의 실행은 소정 시간을 지속한다. 이러한 과정을 신속하게 하기 위해, 제1 실행의 종결 이전에 애플리케이션의 제2 실행을 시작할 수 있는 것이 매우 유용하다. 따라서, 동일한 프로그램은 동시에 두번 실행된다.
이러한 목적은 카드가 다음의 적어도 3개의 기능을 포함하는 동작 시스템을 구비하는 점에 의해 달성된다:
- 애플리케이션 정보의 로딩;
- 애플리케이션 정보의 언로딩;
- 애플리케이션 정보의 실행.
새로운 애플리케이션을 얻기 위하여, 카드는 그 프로그램 가능 메모리에서 애플리케이션 정보를 수신하고 그 데이터를 체크한다.
애플리케이션을 실행하기 위한 명령(command)이 카드와 상호동작하는 판독기에 의해 수신되면, 카드의 동작 시스템은 그 메모리의 내용을 분석하고 그 메모리의 일부를 언로딩하도록 네트워크를 사용하고 및/또는 이전에 언로딩된 애플리케이션 정보를 재로딩할 필요가 있다.
애플리케이션 정보의 재로딩 동안, 카드의 동작 시스템은 로딩된 정보가 과거에 타당했던 것인지를 검증한다. 이러한 정보는 그후 처리된다.
네트워크는 카드의 프로그램 가능 메모리의 연장으로 고려될 수 있다. 상기 카드는 네트워크로 그 메모리내에 유지할 수 없는 것을 전송한다. 재로딩동안, 카드는 네트워크로부터 수신한 정보가 실제로 이전에 전송된 것인지를 확인한다. 카드의 ROM은 한정되지 않은 수의 애플리케이션을 로딩하고 실행하도록 하는 프로그램 가능 메모리를 운영하는 메카니즘을 가져야 한다. 그 때로부터, 카드의 프로그램 가능 메모리와 ROM 들의 크기는 더 이상 실행가능한 애플리케이션의 수에 대한 제한요인이 되지 않으며, 애플리케이션이 부가된 때 새로운 마스크를 제공할 필요가 없다.
요약하면, 본 발명은 정보처리수단과 주 정보기억수단을 포함하는 칩 카드에 관한 것이며, 상기 정보처리수단은,
- 카드의 동작 동안, 주 기억수단이 다량의 정보를 포함하여 동작의 실행이 가능하지 않은 지를 검출하는 수단;
- 주 기억수단에서 언로딩된 정보의 세트를 선택하는 수단으로, 상기 언로딩은 상기 동작의 실행이 가능하도록 하는 상기 주 기억수단내의 충분한 공간을 해제할 수 있는 수단;
- 상기 제2 기억 수단이 언로딩된 정보 세트를 포함하지 않는 경우에 언로딩된 정보 세트를 제2 기억 수단으로 언로딩하는 수단;
을 포함한다.
본 발명은 또한 칩 카드와 관련된 방법에 관한 것이다. 마지막으로, 본 발명은 칩 카드와 칩 카드 판독기 사이의 통신을 위한 프로토콜에 관한 것으로, 상기 카드는 정보처리수단, 및 주 정보기억수단을 포함하며, 상기 방법은 다음과 같은 단계를 포함하는 것을 특징으로 한다:
- 판독기가 카드로 동작을 실행시키는 순서를 전송하는 단계;
- 카드는 그러한 동작을 실행하기 위하여 주 기억수단내에 충분한 공간을 갖는지 여부를 알아보기 위해 탐색하는 단계;
- 충분한 공간이 있다면, 카드는 그러한 동작을 수행하여, 상기 판독기에 실행 보고를 하는 단계;
- 충분한 공간이 없다면, 카드는 주 기억수단내에서 언로딩될 정보 세트를 선택하는 단계로, 상기 언로딩은 주 기억수단내의 충분한 공간을 해제하여 상기 동작의 실행을 가능하게 하며, 카드는 그러한 제2 기억수단이 언로딩된 정보세트를 포함하지 않는 경우, 언로딩 명령을 상기 판독기로 전송하여 상기 제2 기억수단으로 언로딩될 정보를 언로딩하여, 상기 동작을 실행하고 결국 실행 보고를 상기 판독기로 전송하는 단계.
본 발명의 다른 이점과 상세한 사항은 첨부도면을 참조하여 몇몇 바람직한 실시예에 관한 이하의 설명에서 기술되지만, 본 발명이 그에 한정되는 것은 아니다.
도 1은 본 발명에 의해 사용되는 정보처리네트워크를 나타내는 도면.
도 2는 도 1에서 사용되며, 칩 카드와 상호동작하는 정보처리장치를 나타내는 도면.
도 3은 도 2의 변형예로서, 정보처리장치가 칩 카드의 기능을 집적하는 것을 나타내는 도면.
도 4는 도 2의 변형예로서, 정보처리장치가 광학 스트라이프를 판독하는 장치를 구비한 것을 나타내는 도면.
도 5는 도 3의 변형예를 도시한 도면.
도 1에서, 칩 카드를 판독할 수 있는 터미널(20) 또는 칩 카드 기능을 집적하는 터미널(22)은 원격 데이터뱅크(23-25)를 통해 상호동작하며 데이터통신 네트워크 (26)를 통해 그로 링크된다. 데이터 통신 네트워크(26)는 전화 네트워크, 인터넷 네트워크, 또는 다른 데이터 통신 네트워크일 수 있다. 각 데이터뱅크는 메모리를 운영하는 중앙 데이터처리장치를 포함한다. 본 발명에 따르면, 상술한 바와 같이, 카드(21) 또는 터미널(22)은 새로운 애플리케이션의 로딩이 메모리 공간의 부족때문에 불가능한 것을 검출하였을 때, 데이터뱅크(23-25)중 하나로 다른 애플리케이션을 언로딩할 것을 결정할 수 있다. 이러한 언로딩은 새로운 애플리케이션을 수신할 수 있는 충분한 메모리 공간을 확보하게 한다. 카드(21) 또는 터미널(22)이 연속적으로 언로딩된 애플리케이션을 필요로 하면, 필요하다면 애플리케이션을 언로딩함으로써 다시 해제된 메모리 공간을 구비한 후에, 대응하는 데이터뱅크로 애플리케이션을 재로딩하는 명령을 보낼 수 있다.
터미널(20)과 카드(21)의 구성은 도 2에서 나타난다. 터미널은 고유의 공지된 방식으로, ROM(3)과 RAM(4)에 접속된 마이크로프로세서(2), 칩 카드(21)와 물리적 접촉을 갖고 또는 물리적 접촉없이 상호동작하는 수단(5), 터미널이 도 1의 데이터통신 네트워크(26)와 통신하도록 하는 전송 인터페이스(7)를 포함한다. 터미널(20)은 제거될 수 있거나 제거될 수 없는 디스켓 또는 디스크와 같은 기억 수단, 입력 수단(예를 들면, 키보드 및/또는 마우스타입의 지시형 장치) 및 표시 수단을 구비할 수 있으며, 도 2에 이러한 다양한 수단이 도시되어 있지는 않다.
터미널은 사적인 장소 또는 공공 장소에 인스톨되고 다양한 상품 또는 서비스를 전달하거나 정보를 운영하는 수단을 제공할 수 있는 데이터처리장치에 의해 구성될 수 있으며, 이러한 정보처리장치는 영구히 인스톨되거나 휴대가능하다. 또한, 상기 장치는 원격통신 전용장치일 수 있다.
또한, 카드(21)는 정보처리수단(9), 비휘발성 메모리(10), 휘발성 동작 메모리 RAM(14), 및 상기 터미널(20)과 상호동작하는 수단(13)을 포함하는 칩을 구비하고 있다. 이러한 칩은 메모리(10)내에서 정보가 일단 리코드되면 칩의 외부로부터 액세스 불가능하며 처리 수단(9)으로만 액세스할 수 있는 비밀 영역(11)과 정보의 기입 및/또는 판독을 위해 마이크로프로세서(9)에 의해 칩의 외부로부터 액세스 가능하도록 된 액세스가능 영역(12)을 정의하도록 설계된다. 비휘발성 메모리(10)의 각 영역은 변경불가능한 ROM의 부분 및 EPROM, EEPROM 또는 "플래시"타입의 RAM 또는 FRAM(강자성 RAM임)에 의해 구성된 변경가능한 부분을 포함할 수 있는데, 즉, 종래의 RAM의 액세스 시간과 동일한 액세스 시간을 갖는 EEPROM의 특성을 갖는다.
칩에 대하여, 비휘발성 메모리를 갖는 자기(self) 프로그램 가능 마이크로프로세서를 사용하는 것이 가능한 데, 이는 본 발명의 출원인의 미국 특허 제4,382,279호에 개시되어 있다. 상기 특허의 칼럼 1, 제13행 내지 제25행에 기재된 바와 같이, 칩의 셀프 프로그램 가능 특징은 프로그램 가능 메모리에 위치한 다른 프로그램 fj를 프로그램 gj로 변경하는 ROM내에 위치한 프로그램 fi에 대한 가능성에 대응한다. 그 변형예에서, 칩의 마이크로프로세서는 반도체 칩내에 장착된 로직 회로로 교체되거나 적어도 보충된다. 실제로,그러한 회로는 마이크로프로그램되었다기 보다는 배선에 의한 로직(hardwired logic)이기 때문에 인증 및 시그너처 계산을 포함한 계산을 수행할 수 있다. 그러한 회로는 ASIC(응용 주문형 집적회로: "Application Specific Integrated Circuit") 타입일 수 있다. ASIC의 한 예로서, 제품번호 SLE 4436으로 시판되는 지멘스사(SIEMENS) 부품과 제품번호 ST 1335로 시판되는 에스지에스-톰슨사(SGS-THOMSON) 부품을 들 수 있다. 바람직하게, 칩은 모노리식 형태로 설계될 것이다.
도 2의 변형예는 도 3에 도시되어 있으며, 도 1의 터미널(22)은 터미널(20)의 구성요소에 더하여 모듈(15)내에 배치된 카드(21)의 구성요소 및 동일한 도면부호를 갖는 도 2 및 3과 공통적인 구성요소를 포함한다. 그러나, 도 2의 상호동작수단(5, 13)은 마이크로프로세서(2)와 마이크로프로세서(9)간의 영구 링크에 의해 교체된다.
도 3의 변형예는 도 5에 도시되어 있다. 이 경우에, 터미널(50)은 RAM(52)과 비휘발성 메모리(53)에 접속된 하나의 마이크로프로세서(51) 또는 그 균등물만을 포함한다. 비휘발성 메모리(53)는 마이크로프로세서(51)에 의해 터미널 외부로부터 액세스가능한 영역(54)과 마이크로프로세서(51)로만 액세스가능한 비밀 영역(55)을 포함한다. 마이크로프로세서(51)는 도 2와 관련하여 기술된 마이크로프로세서의 자기 프로그램 가능 특성을 가진다. 결국, 터미널(50)은 도 1의 데이터통신 네트워크와 통신하도록 하는 전송 인터페이스(56)를 가진다.
다음 설명은 한정되지 않는 방식으로, 도 2의 실시예를 나타내며, 터미널(20)은 카드(21)를 판독하는 기능 때문에 "판독기"로 불리운다.
카드의 메모리는 다음과 같은 방식으로 구성된다: ROM 타입 메모리, RAM 타입의 동작 메모리 및 EEPROM 또는 FLASH 타입의 프로그램 가능 비휘발성 메모리. 표 1에 나타난 바와 같이, ROM은 입력/출력 및 메모리 기입/판독 루틴과 같은 최소 서브 프로그램 또는 루틴을 포함하는 기본 동작 시스템 영역과 가상 메모리의 동작 시스템을 위한 영역을 포함한다. 상기 가상 메모리는 데이터뱅크(23-25)의 메모리에 의해 구성된다. 기본 동작 시스템과 가상 메모리의 동작 시스템은 이후에 "카드의 동작 시스템"이라 한다.
가상 메모리의 동작 시스템은 보다 바람직하게 적어도 9개의 명령을 다룰 수 있다. 다음의 적어도 4개의 명령은 판독기에 의해 상기 카드로 보내진다.
- 카드로 애플리케이션의 로딩;
- 카드로 이전에 로딩된 애플리케이션의 실행;
- 카드에서 애플리케이션의 소거;
- 카드내의 애플리케이션의 존재여부 체크.
다음의 5개의 다른 명령은 카드에 의해 상기 판독기로 보내진다.
- 네트워크로 애플리케이션의 언로딩;
- 네트워크로부터 애플리케이션의 재로딩;
- 로딩 프로세스의 정지;
- 로딩 프로세스의 회복;
- 네트워크내의 애플리케이션의 소거.
하나의 특정 실시예에서, 가상 메모리의 동작 시스템은 프로그램 가능 메모리내에 로딩된 애플리케이션의 프로그램으로 이 프로그램에 의해 처리되어야만 하는 외부로부터 수신된 모든 명령을 필터링하고 상기 프로그램으로 전송한다.
본 명세서에서, "정보"라는 용어는 일반적으로 실행가능한 프로그램 또는 실행불가능한 데이터를 지칭한다. 용어 "애플리케이션"은 서비스 또는 제품, 및 관련 애플리케이션 데이터를 제공한 제공자의 애플리케이션을 수행하기 위한 특정 프로그램을 지칭한다.
다시 표 1을 참조하면, 프로그램 가능 메모리는 다음의 적어도 3개의 영역을 포함한다:
- 카드를 식별하는 코드 "C"를 포함하는 소위 제1 "시스템 데이터" 영역;
- 애플리케이션의 운영 데이터를 포함하는 소위 제2 "운영 데이터" 영역으로, 상기 운영 데이터는 각 카드에 특정된 "SWAP"으로 불리는 시그너처(signature) 키, 필요에 따라 애플리케이션 제공자 또는 특정 애플리케이션에 링크된 하나 이상의 암호화키 및 "TAB-APPLI"라 불리는 표인 영역; 및,
- 애플리케이션의 정보를 수신하는데 사용되는 소위 제3 "로딩" 영역으로, 상기 정보는 실행가능한 프로그램 정보 및/또는 이러한 프로그램의 실행에 필요한 데이터인 영역.
초기에, 카드는 비어 있는 테이블 TAB-APPLI 및 로딩 영역을 갖는 소지자에게 주어진다. 적어도 키 SWAP은 카드의 비휘발성 메모리(10)의 비밀 영역(11)내에 위치한다.
애플리케이션 정보 로딩 영역
운영 데이터 영역(SWAP, TAB_APPLI 등)
시스템 데이터 영역(코드 C 등)
가상 메모리의 동작 시스템 영역 (ROM)
기본 동작 시스템 영역 (ROM)
표 1
상기 표 TAB-APPLI는 카드내에 유용한 애플리케이션에 대응하는 정보로서, 이러한 애플리케이션이 물리적으로 카드내에 포함되어 있는 지 여부, 또는 카드에 가상적으로 포함되어 있는지 여부에 관련되고, 네트워크에 언로딩된 정보를 포함한다. 상기 표는 다음과 같은 구조를 가진다:
애플리케이션의 코드 기억 어드레스 바이트 수 정보의 시그너처 로딩/언로딩
I ADR-I l SGN-I 로딩
J ADR-J m SGN-J 언로딩
K ADR-K n SGN-K 로딩
표 2: TAB_APPLI
표 TAB_APPLI는 카드에 의해 유용한 애플리케이션이 있는 만큼의 행을 포함하며, 각 행에 대해, 5개의 열을 포함한다. 제1 열은 이 애플리케이션의 식별 코드 I, J, K를 정의한다. 제2 열은 애플리케이션이 카드내에 기억되는 지점에서 시작되는 기억 어드레스 ADR-I, ADR-J 및 ADR-K를 정의한다. 제3 열은 애플리케이션의 정보의 양을 나타내는 바이트 수를 정의한다. 제4 열은 애플리케이션의 모든 바이트에 적용되고, 비밀 키로서 카드의 SWAP키와 알고리즘을 사용하여 계산된 시그너처를 정의한다. 사용된 상기 알고리즘은 D.E.S(데이터 암호 표준:Data Encryption Standard)와 같은 대칭 알고리즘, 또는 R.S.A(리베스트, 샤미르 및 아델만에 의한)와 같은 비대칭 알고리즘일 수 있다. 그러나, 바람직하게 MD5 또는 SHA와 같은 해시 함수등의 단순한 함수 또는 "exclusive OR"과 같은 함수를 사용해도 충분한 데, 이는 본 발명에서는 시그너처가 카드에 남겨지지 않으므로 보호될 수 있기 때문이다. 결국, 제5 열은 문제의 애플리케이션의 상태가 카드로 "로딩"되는지 또는 데이터뱅크로 "언로딩"되는 지 여부를 정의한다.
우선, 카드 소지자 또는 애플리케이션 제공자는 카드로 식별 코드 "K"를 갖는 제1 애플리케이션을 로딩하고 싶어 한다. 로딩 명령의 실행은 카드 소지자 또는 애플리케이션 제공자의 성공적인 인증에 의해 가능하다. 인증 메카니즘은 그 자체가 공지된 것인데, 카드 소지자 또는 애플리케이션 제공자에 대해 인증된 대화자(interlocutor)와 대화를 하는 것을 보장하는 정보를 카드에 제공하는 단계로 구성된다.
로딩 명령은 로딩 순서, 카드의 코드 C, 애플리케이션의 코드 K 및 상기 애플리케이션에 대응하는 정보의 바이트 수 n을 포함하며, 다음과 같은 명령어 형식을 갖게 된다.
로딩 순서 카드 C 애플리케이션 K 수 n
상기 명령이 일단 카드에 의해 수신되면, 카드의 동작 시스템은 전송된 코드 C가 시스템 데이터 영역내에 기입된 것과 실제로 동일한 것인지 여부를 확인한다. 동일하지 않다면, 카드는 에러 메시지를 네트워크로 리턴한다. 동일하다면, 그러한 애플리케이션의 정보는 실제로 이러한 카드에 대해 의도된 것이다; 카드의 동작 시스템은 표 TAB_APPLI를 운영 데이터 영역에서 판독하여 초기 로딩인지 여부를 결정한다. 초기에, TAB_APPLI는 애플리케이션 K의 정보를 포함하지 않는다: 애플리케이션 K의 정보를 포함한다면, 카드는 "애플리케이션이 이미 로딩됨"이라는 메시지로 판독기에 응답한다: 애플리케이션 K의 정보를 포함하지 않는 경우라면, 초기 로딩이 된다. 카드의 동작 시스템은 n 바이트가 그 메모리내에 수용될 수 있을 지 여부를 결정한다: 수용될 수 있다면, 로딩 영역에서 이용가능한 n 바이트의 제1 블록의 시작 어드레스 "ADR-K"를 계산한다. 수용될 수 없다면, 메시지 "불충분한 메모리"를 리턴한다. 결국, 카드는 판독기로 애플리케이션의 n 바이트를 전송할 수 있는 것을 응답 "OK_Load"를 사용하여 나타낸다. 그 후, 판독기는 애플리케이션의 n 바이트를 전송한다.
애플리케이션의 정보가 일단 프로그램 가능 메모리내에 기억되면, 카드의 동작 시스템은 그러한 정보의 시그너처 "SGN-K"를 계산한다. 곧 애플리케이션 코드 K의 표 TAB_APPLI로 애플리케이션 코드 K, 기억 어드레스 ADR-K, 바이트 수 n, 시그너처 SGN-K를 재입력한다. 이러한 동작이 일단 수행되면, "로딩/언로딩" 지시자는 "로딩"을 설정한다. 이러한 표 TAB_APPLI의 업데이트가 종료되면, 카드의 동작 시스템은 판독기를 통하여 카드 소지자 또는 애플리케이션 제공자로 애플리케이션의 로딩이 정확하게 수행된 것을 나타내는 보고(report)를 전송한다. 표 TAB_APPLI는 다음과 같은 구조를 가진다.
애플리케이션 코드 기억 어드레스 바이트 수 정보의 시그너처 로딩/언로딩,
K ADR-K n SGN-K 로딩
표 3: TAB_APPLI
제1 변형예에 따르면, 로딩 직후에, 카드의 동작 시스템은 애플리케이션 정보, 즉, 애플리케이션 정보내에 포함된 실행가능한 프로그램을 시작한다. 이로써 응용 정보를 초기화할 수 있다. 예컨대, 전자 화폐 애플리케이션의 경우에, 상기 프로그램의 제 1 실행에 의해 메모리에 기입된 화폐의 대차대조를 0 프랑으로 설정할 수 있다. 제 2 변형에 따르면, 판독기에 의해 카드에 제 1 명령이 전송될 때 상기 실행가능한 프로그램이 개시된다. 간단하게, 상기 애플리케이션의 실행 개시 어드레스는 "ADR-K"이지만, 간접 어드레싱을 이용할 수도 있고, 마이크로프로세서 분야에서 공지된 방식대로, 나타나는 어드레스는 실행 어드레스를 포함하는 메모리 [ADR-K]의 내용이다.
삭제
판독기는 애플리케이션의 타입을 특정하는 카드 명령을 전송하며; 예컨대 이 타입은 ISO 7816-3 표준에 따라 명령의 5 바이트중 첫 번째로 코드될 수 있으며, 이 표준에서, 상기 바이트를 "CLA"라 한다. 상기 카드의 가상 메모리의 동작 시스템은 판독기가 전송하는 명령을 체크하여 그 명령에 대응하는 애플리케이션의 코드를 결정한다. 그후, 그 코드가 기입될 것인지를 표 TAB-APPLI에서 판독하여, 기입되는 경우라면, 상기 카드가 애플리케이션 K를 실행한다. 기입되지 않는 경우라면, 상기 카드는 애플리케이션 K를 실행할 수 없고, 에러 메시지를 전송함에 의해 응답한다. 상기 코드 K가 TAB-APPLI에 기입되면, "로딩/언로딩" 표시자의 값이 테스트된다. 만일 "로딩"로 설정되면, 응용 정보가 카드의 프로그램가능한 메모리에 실제로 존재하는 것이다. 이 경우에, 카드의 동작 시스템은 어드레스 ADR-K 또는 [ADR-K]에 위치한 애플리케이션의 프로그램에 대한 제어부를 통과한다. 상기 카드의 프로그램가능한 메모리가, 이미 언로딩된 상태이므로, 응용 정보를 포함하지 않는 경우에 어떤 일이 발생될 것인가를 우리가 알 수 있게 된다.
이제 카드 소유자 또는 애플리케이션 제공자가 그의 카드에, 예컨대 "J"가 표시된 제 2 애플리케이션 정보가 포함되기를 원하는 것으로 가정한다. 이는 애플리케이션 정보 "J"를 카드의 프로그램가능한 메모리에 로딩함에 의해 가능하다. 방금 전에, 카드 소유자 또는 애플리케이션 제공자는 응용 정보 로딩을 위한 명령에 뒤이어 시크릿을 제공하도록 인증되어 있다 :
로딩 순서 카드 C 애플리케이션 J 넘버 m
이는 애플리케이션 K의 로딩에 관련된 선행 명령과 유사하다. 이 경우, 애플리케이션 바이트의 넘버는 m이다.
상기 카드의 동작 시스템은 코드 C를 조회하여 프로그램가능한 메모리에서 사용가능한 m 바이트의 제 1 블록에 대해 탐색한다. 상기 프로그램가능한 메모리는 애플리케이션 K 및 애플리케이션 J에 의해 구성된 응용 정보의 2개의 블록을 동시에 포함할 수 없지만, 애플리케이션 K의 전부 또는 일부를 언로딩하면 애플리케이션 J를 포함할 수 있는 것으로 가정한다. 상기 카드는 판독기가 그 판독기에 전송된 특정 명령에 의해 애플리케이션 J를 로딩하는 프로세스를 일시 중단하고 있는 것을 감지하고 상기 카드의 가상 메모리로 간주될 수 있는, 애플리케이션 K를 데이터 뱅크로 언로딩하도록 결정한다. 이 언로딩에 의해 애플리케이션 J를 로딩하기 위한 메모리 공간이 해제된다.
상기 언로딩은 현재 카드에 대해 특정된 네트워크의 데이터 뱅크(23-25)중 하나로 상기 카드에 특정된 응용 정보를 전송하도록 구성된다. 로딩중에 실행되는 시그너처 계산 때문에, 상기 카드는 계속되는 재로딩중에 자신의 정보의 인증 및 보전을 제어할 수 있게 보증된다. 또한, 초기 로딩중에 이미 시그너처 계산이 실행된 사실에 의해 로딩 명령의 실행 시간이 최적화된다. 상기 카드는 카드 판독기에 다음 명령을 전송한다 :
네트워크로의 언로딩 순서 카드 C 애플리케이션 K 넘버 n n 바이트의 정보
로딩 명령으로서의 상기 명령은 카드의 코드 C, 언로딩될 애플리케이션의 코드 K, 및 애플리케이션의 정보의 바이트 넘버 n를 포함하며, 또한 언로딩 순서로서 동일 시간에 판독기로 전송될, 동일한 n 바이트의 정보의 내용을 포함한다. 애플리케이션의 언로딩이 이미 부분적으로 실행된 때 발생하는 경우에, 실행 중단 지점에서의 애플리케이션의 실행을 다시 계속할 수 있게 하는 컨텍스트(context) 정보가 카드의 프로그램가능한 메모리에 기억되거나, 또는 애플리케이션의 정보의 n 바이트에 추가됨과 동시에 상기 정보로서 네트워크에 언로딩된다.
목적지 식별을 네트워크 어드레스 형태로 나타낼 수 있다. 유리하게도, 상기 네트워크는 특별히 원하는 데이터 뱅크의 어드레스를 갖는 각 카드와 관련된 매핑 테이블을 가진다. 이로써 상기 카드가 상기 어드레스 또는 식별자를 기억하여, 동일 카드에서 언로딩된 모든 정보를 동일 데이터 뱅크로 모으는 것을 방지할 수 있다.
상기 판독기는 명령을 수신하여, 그 명령이 네트워크에 대한 것임을 인식한 다음, 어드레스될 데이터 뱅크로 전송한다. 네트워크가 여러개의 데이터 뱅크를 갖는 경우, 상기 카드의 코드 C의 함수로서 선택이 행해질 수 있다. 상기 데이터 뱅크는 n 바이트의 응용 정보를 수신하여 판독기를 통해 실제 기억되었음을 나타내는 성공적인 수신 사실을 카드로 되돌려 보낸다. 그후, 상기 카드는 로딩/언로딩 표시자를 "언로딩"로 설정함에 의해 표 TAB-APPLI를 변경한다. 애플리케이션 K의 응용 정보에 의해 그 시간까지 차지된 메모리 공간이 사용가능하게 된다. 그후, 애플리케이션 J의 로딩을 위한 동작이 다시 계속되고 상기 카드는 판독기에 다시 로딩 프로세스를 계속하라는 명령을 전송하며, 애플리케이션 K와 동일한 방식으로 로딩 동작이 행해진다. 카드의 동작 시스템은 애플리케이션 J의 m 바이트의 기억 어드레스 ADR-J를 결정하여 m 바이트의 응용 정보를 전송할 수 있는 "OK-LOAD" 메시지를 통해 판독기에 지시한다.
판독기는 어드레스 "ADR-J"에서 시작되는 기입된 m 바이트의 응용 정보를 전송한다. 일단 애플리케이션 J의 정보가 프로그램가능한 메모리에 기억되면, 카드의 동작 시스템은 키 SWAP를 이용하는 크립토그라픽 동작을 실행함에 의해 그에 대한 시그너처를 계산한다. 마지막으로, 동작 시스템은 코드 J, 값 ADR-J, m 및 SGN-J를 기입함에 의해 표 TAB-APPLI를 업데이트하며, "로딩/언로딩" 표시자를 업데이트하여, "로딩됨"으로 세팅한다. 그후, 상기 동작 시스템은 로딩이 바르게 실행되었음을 나타내는 보고를 판독기에 전송한다.
표 TAB APPLI는 다음 값들을 가진다 :
애플리케이션의 코드 기억 어드레스 바이트 넘버 데이터의 시그너처 로딩/언로딩
K ADR-K n SGN-K 언로딩
J ADR-J m SGN-J 로딩
표 4 : TAB-APPLI
상기 표 TAB-APPLI의 업데이트가 완료되면, 카드의 동작 시스템은 애플리케이션 K를 개시할때와 동일한 방식으로 애플리케이션 J를 시작하며 상기 카드는 판독기에 의해 전송된 실행 명령을 실행한다.
카드 소유자 또는 애플리케이션 제공자가 그의 카드를 판독기에 접속하여 애플리케이션 K를 다시 실행하기를 원하는 경우에는, 카드의 동작 시스템이 표 TAB- APPLI의 내용을 분석하여 상기 애플리케이션이 그 카드로 액세스가능한 지를 결정한다. 이 경우에, 애플리케이션 K는 TAB-APPLI에 기록되지만, 네트워크에 언로딩되어 있다. 다른 애플리케이션은, 즉 J는 메모리에서 m 바이트를 차지한다. 그후, 동작 시스템은 메모리에서 n 바이트를 차지하고 있는 애플리케이션 K가 나머지의 사용가능한 메모리에 로딩될 수 있는 지를 알도록 테스트한다. 상기 가정한 바와 같이, 이 테스트에 대한 응답은 네가티브(negative)이다. 동작 시스템은 현재의 애플리케이션 J를 언로딩하도록 결정하여 애플리케이션 K를 재로딩할 수 있게 한다.
J를 네트워크에 언로딩하라는, 카드에 의해 전송된 명령은 :
네트워크로의 언로딩 순서 카드 C 애플리케이션 J 넘버 m m 바이트의 정보
상기 동작이 실행되면, TAB-APPLI로의 애플리케이션 J의 로딩 표시자는 "언로딩" 위치로 설정된다. 이제 상기 메모리 공간은 사용가능하고, 동작 시스템은 네트워크로부터 애플리케이션 K를 재로딩하라는 명령을 판독기에 전송한다. 이 명령은 다음의 포맷을 가진다 :
네트워크로부터의 재로딩 순서 카드 C 애플리케이션 K 넘버 n
상기 판독기는 상기 명령을 수신하여 카드 C와 관련된 데이터 뱅크로 전송한다. 카드 C의 정보를 가진 데이터 뱅크는 상기 명령을 수신하여 애플리케이션 K에 대한 n 바이트의 응용 정보에 대해 상기 카드의 파일을 검색한다. 상기 데이터 뱅크는 카드의 최종 명령에 응답하여 다음 메시지를 발생시킨다. 이 응답은 판독기를 통해 카드로 전송된다 :
카드 C 애플리케이션 K 넘버 n n바이트의 데이터

카드의 동작 시스템은 코드 C, K 및 수신된 값 n이 실제로 전에 전송된 언로딩 명령과 동일한 것인 지를 확인한다. 만일 그들이 일치한다면, 상기 명령은 어드레스 ADR-K에서 시작되어 로딩 영역으로 기입되는, n 바이트의 데이터의 수신을 계속하게 하며, 이 어드레스는 표 TAB-APPLI의 동작 시스템에 의해 상기 목적으로 독출되거나 또는 재로딩된 컨텍스트의 정보로부터 검색된다. 동시에, 상기 동작 시스템은 키 SWAP의 값을 이용한 크립토그라픽 계산을 통해 기입된 n 바이트의 시그너처를 계산한다. 다시 계산된 시그너처는 표 TAB-APPLI에 기입된 값과 비교된다. 네트워크에서 수신된 데이터가 종전에 언로딩된 것과 동일하지 않으면, 2개의 시그너처 값이 동일하지 않다. 따라서, 수신된 정보의 인증 및 보전에 대한 의심이 생긴다. 이 경우 로딩된 정보를 처리할 수 없다. 카드는 최종 로딩 동작중에 정보의 잘못된 수신을 나타내는 에러 메시지, 및 애플리케이션 K의 실행 불가를 판독기에 전송하며, 동작 시스템은 로딩 표시자를 "로딩" 위치로 설정하지 않고, 필요한 경우, 애플리케이션 K의 내용을 소거한다.
한편, 2개의 시그너처 값이 동일하면, 수신된 정보는 종전에 카드로 로딩된 애플리케이션 K의 값에 대응하게 된다. 이러한 체크가 행해지면, 카드의 동작 시스템은 애플리케이션 K의 로딩 표시자를 "로딩된" 위치로 설정함에 의해 표 TAB APPLI를 업데이트한다.
그후 표 TAB_APPLI는 다음 값을 갖는다 :
애플리케이션의 코드 기억 어드레스 바이트 넘버 데이터의 시그너처 로딩/언로딩
K ADR_K n SGN-K 로딩
J ADR_J m SGN-J 언로딩
표 5 : TAB_APPLI
표 TAB_APPLI의 업데이트가 완료되면, 동작 시스템은 전과 동일하게 애플리케이션 K를 시작하며, 카드는 판독기에 의해 전송된 최종 애플리케이션 타입의 명령을 실행할 수 있게 된다.
상기한 바와 같이, 카드가 현재 기억되지 않은 애플리케이션을 로딩하라는 명령을 수신할 때, 카드의 동작 시스템은 메모리의 사용가능한 공간을 테스트한다. 충분한 공간이 있다면, 현재 메모리의 애플리케이션을 언로딩하지 않고 로딩을 실행할 수 있다. 그후, 카드에 2개의 애플리케이션이 존재하게 된다. 따라서, 표 TAB_APPLI는 다음 형태를 가진다 :
애플리케이션의 코드 기억 어드레스 바이트의 수 데이터의 시그너처 로딩/언로딩
K ADR-K n SGN-K 로딩
I ADR-I l SGN-I 로딩
J ADR-J m SGN-J 언로딩
표 6 : TAB_APPLI
이 실시예에서, 2개의 애플리케이션이 카드내에 공존하며, 그들은 직접 실행가능하다. 이 카드에 의해 제 3 애플리케이션 J이 액세스가능하지만, 네트워크로부터 반드시 재로딩되어야 한다. 카드의 비휘발성 메모리는 다음 정보를 내장한다 :
ADR-K 애플리케이션 K의 프로그램 애플리케이션 K의 데이터 ADR-I 애플리케이션 I의 프로그램 애플리케이션 I의 데이터 사용 가능
운영 데이터(키 SWAB, TAB-APPLI, 등)
시스템 데이터(코드 C, 등)
가상 메모리의 동작 시스템(ROM)
기본 동작 시스템(ROM)
표 7
이 표는 상기 표 1에 대응하며, 로딩 영역이 다음과 같이 쪼개진다 : 응용 정보를 로딩하는 영역이 3개의 서브영역, 즉 애플리케이션 K의 정보를 수신하는 영역, 애플리케이션 I의 정보를 수신하는 영역, 및 그의 크기가 m보다 작은 나머지 사용가능한 영역을 포함한다.
이 실시예에서, 본 발명의 특징이 더 잘 이해될 수 있다. 카드에는 메모리 공간을 운영하여, 애플리케이션을 로딩 또는 언로딩하고, 네트워크로 언로딩될 응용 정보를 사인하고, 네트워크에서 수신된 언로딩될 응용 정보를 시그너처를 비교함에 의해 확인하며, 메모리에 로딩될 애플리케이션을 개시할 수 있는 최소 동작 시스템이 탑재된다. 상기 시그너처는 데이터 뱅크에 기억된 응용 정보가 이 카드에 전에 로딩되었는 지를 확인할 수 있게 한다. 판독기에는, 카드를 언로딩 및 재로딩하는 명령을 인식하는 프로그램 및 네트워크에 이들 명령을 전송하는 수단이 장착된다. 최후에, 네트워크에는, 데이터 뱅크, 뱅크가 카드의 프로그램 가능 메모리의 연장으로 간주될 수 있는 메모리가 장착된다.
삭제
상술한 바와 같이, ROM의 프로그램의 실행을 변경하기 위해 프로그램 가능 메모리로의 루틴의 독출은 이 프로그램을 아는 사람에 의해서만 실행될 수 있다. 이들 루틴으로의 점프 및 ROM의 프로그램으로의 리턴은 어드레스의 정확한 지식, 이들 루틴의 입력 및 출력 파라미터, 워킹 메모리의 이용율 등을 필요로 한다. 본 발명은, 이 문제를 이들 루틴을 이용하여 피함에 의해 해결하고, 결과적으로, 이들 루틴의 규격을 드러내어 다양한 애플리케이션의 실행을 허용한다. 애플리케이션 프로그램은 ROM의 프로그램을 가능한한 적게 이용하여 실행된다. 이 프로그램의 설계자는 엔트리 지점을 임의의 소위 기본 루틴: 수신 바이트, 전송 바이트, 프로그램 가능 메모리로의 n 바이트 독출, 암호 계산 등에 지시할 수 있다.
본 발명의 제 1 개선은, 애플리케이션을 수신하기 위한 정보처리장치(도 1의 카드(21) 또는 터미널(22) 등)와 네트워크 사이의 다양한 전송동안, 그리고 카드(21) 또는 터미널(22) 외부에서의 기억동안 정보를 보호하기 위해 애플리케이션 정보를 암호화함으로써 구성된다.
제 1 애플리케이션 암호화는 애플리케이션 제공자에 의한 애플리케이션의 초기 로딩에 관한 것이고, 정보처리장치 및 네트워크에 배치된 애플리케이션 제공자에 의해 유지되는 기본 비밀키를 이용한다; 정보처리장치가 카드인 경우, 그 판독기는 기본 키를 인식하지 않는다. 유리하게도, 기본 키 및 애플리케이션의 특정 파라미터, 예컨대, 그의 코드(K) 또는 프로그램 가능 메모리의 그의 기억 어드레스(ADR-K)로 구성된 디버서파이어(diversifier)로부터 얻어진 다양한 특정 키로 각 애플리케이션이 암호화된다. 이 디버서파이어는 표 TAB_APPLI에 기억될 수 있어, 로딩/언로딩 명령중에 동작 시스템이 그를 용이하게 회복시킬 수 있다.
정보처리장치(21,22)로의 애플리케이션 제공자에 의한 애플리케이션의 초기 로딩 동안, 이 제공자는, 이 애플리케이션에 연관된 다양한 키를 계산하고, 네트워크로 그를 전송하기 전에 후자를 이용하여 애플리케이션을 암호화한다; 수신에 따라, 정보처리장치는 이 애플리케이션과 연관된 다양한 키를 계산하고, 프로그램 가능 메모리의 로딩 영역에 그를 기억시키기 전에 이 키로 암호화한다.
애플리케이션의 제 2 암호화는 정보처리장치(21,22)에 의해 실행되는 로딩 및 언로딩에 관한 것이다. 데이터 뱅크에 대해 정보처리장치(21,22)에 의한 애플리케이션의 언로딩 동안, 애플리케이션은 다시 이 장치에 의해 암호화된다. 정보처리장치에 의해 발생되는 키가 적합하지 않더라도, 연속적인 암호화를 실행하는 것은 이 장치뿐이기 때문에, 애플리케이션 제공자와는 다른 임의의 대화자를 갖는 정보처리장치에 의해 암호화 키가 공유되지 않는다.
유리하게도, 암호화된 메시지의 확실성 및 보전을 확보하는 프로세스를 제공하기 위한 목적으로, 문서 US-A-4,907,270에 의해 설명된 방법을 카드가 이용할 수 있다.
상술한 암호화는, 애플리케이션 정보가 핵커에 의해 발견되어 짐을 방지하고, 애플리케이션 프로그램의 부정한 복사를 방지할 수 있다.
상술한 명령에 부가하여, 애플리케이션을 삭제하는 명령 및 카드상의 애플리케이션의 존재를 검사하는 명령의 2개의 부가적인 명령을 제공할 수 있다.
애플리케이션을 삭제하는 명령은, 더이상 이용되지 않는 애플리케이션을 삭제하라는 명령을 카드에 전송하는 카드 소지자 또는 애플리케이션 제공자로 구성된다; 그의 포맷은 이하와 같다:
애플리케이션 삭제 순서 카드 C Appli K 수 n
그것은 애플리케이션 삭제 순서, 문제의 카드의 코드(C), 애플리케이션의 코드(K), 및 애플리케이션의 정보의 바이트의 수(n)를 포함한다. 문제의 애플리케이션이 카드로 로딩되면, 카드의 동작시스템은 애플리케이션(K)에 대해 현재까지 확보된 메모리 공간을 해제한다. 한편, 애플리케이션(K)이 데이터 뱅크로 언로딩되면, 카드는 나중에 상기와 같은 동일한 포맷을 갖는 삭제 순서로 전송한다. 최후에, 삭제 순서가 실행되면, 이 애플리케이션에 관련된 표 TAB_APPLI의 행을 동작시스템이 삭제한다.
카드상의 애플리케이션의 존재를 검사하는 명령은 2개의 다른 형태를 취할 수 있다. 명령의 제 1 형태는, 특정 애플리케이션을 갖는 경우, 카드 소지자 또는 애플리케이션 제공자가 카드를 요청하는 요구를 전송할 수 있도록 한다.
애플리케이션의 존재를 검사하기 위한 순서 카드 C Appli K 수 n
그것은 애플리케이션의 존재를 검사하기 위한 순서, 질의의 카드의 코드(C), 애플리케이션의 코드(K), 및 애플리케이션의 정보의 바이트의 수(n)를 포함한다.
명령의 제 2 형태는, 시그너처에 대한 경로 및 바이트의 수(n) 및 로딩 표시자를 제외하고, 카드 소지자 또는 애플리케이션 제공자가 표 TAB_APPLI의 모든 행에 대한 카드를 요청하는 요구를 전송하도록 한다. 명령의 포맷은 이하와 같다:
애플리케이션의 존재를 검사하기 위한 순서 카드 C
본 발명의 제 2 개선은 필요할 때까지 네트워크에 애플리케이션의 언로딩을 개시하지 않음으로써 이루어진다. 메모리가 해제되는 동시에, 로딩된 애플리케이션이 변경되지 않고 네트워크가 이미 이 애플리케이션과 동일한 응용 정보를 가지면, 이 정보를 언로딩할 필요가 없다. 제 2 개선의 목적은 네트워크에 몇 번 동일한 응용 정보값을 기억시키는 것을 피하는 것이다.
이 개선을 실행하기 위해, 표 TAB_APPLI를 변경할 필요가 있다; 여기서는 현재의 구조이다:
애플리케이션의 코드 기억 어드레스 바이트의 수 정보의 시그너처 로딩/언로딩 변경
K ADR-K n SGN-K 로딩/언로딩 예/아니오
표 8: TAB_APPLI
예 또는 아니오인 2개의 값을 가질 수 있는 "변경(modification)"으로 칭해진 표시자를 포함하는 표에 제 6 열이 첨가되었다. 애플리케이션의 초기 로딩 동안, 표시자는 "예"로 설정된다; 이 값은, 대응 메모리 공간를 해제하기 위해 네트워크에 응용 정보를 언로딩할 필요가 있음을 지시한다. 한편, 네트워크로부터 재로딩하기 위한 명령 후에, 표시자는 "아니오"로 설정된다; 이 값은, 정보처리장치(도 1의 카드(21) 또는 터미널(22))의 프로그램 가능 메모리에 기억된 응용 정보가 네트워크의 데이터 뱅크에 기억된 것과 동일함을 지시한다. 표시자가 "아니오"로 남아 있는 한, 정보처리장치의 동작시스템은 애플리케이션의 언로딩에 대한 명령을 실행하지 않는다; 그것은 로딩 표시자를 "언로딩" 위치에 간단히 설정하여 다른 애플리케이션이 메모리에 공간을 차지할 수 있다. 응용 정보가 변경될 때 표시자는 "예"로 설정된다; 결과적으로, 시그너처값은 더 이상 정확하지 않다; 언로딩 동안 재계산되어야 한다.
이러한 변경은 적어도 2가지 경우에 발생할 수 있다. 제 1 경우는, 보상 기능을 첨가함에 의해 그 실행에 부가하거나 문제를 정정하기 위한 응용 프로그램의 업데이트이다. 정보처리장치(21,22)의 프로그램 가능 메모리에 있어서, 데이터가 애플리케이션 프로그램과 혼합될 때, 제 2 경우가 종종 발생한다. 예컨대, 전자 화폐 애플리케이션은 차변(debits) 및 대변(credits)을 운영하는 소프트웨어와 대차대조와 같은 데이터 모두를 포함한다. 각 이용에 대해, 통상, 이 값은 변화하여, 표시자 "변경"은 항상 "예" 위치에 있다.
후자의 예는 본 발명의 제 3 개선을 도출한다. 응용 정보에 있어서, 실행가능한 프로그램 및 발전가능한 응용 데이터값이 동시에 존재하는 것이 분명하다. 이하에 설명된 제 3 개선에서 설명된 수단은, 정보의 2개의 유형으로의 분리를 가능하게 한다. 정보처리장치는 실제로 변경되는 정보만을 네트워크에 언로딩하도록 선택한다.
제 3 개선을 얻기 위해, 다음 방식으로 도표화될 수 있는 비휘발성 메모리의 조직을 향상시킬 필요가 있다:
애플리케이션의 프로그램 (프로그램 가능 메모리)
애플리케이션의 데이터 변경 데이터, 시퀀스 1 변경 데이터, 시퀀스 2
프로그램 가능 메모리의 운영 데이터(키 SWAP, TAB_APPLI 등)
프로그램 가능 메모리의 시스템형 데이터(코드 C 등)
가상 메모리의 동작 시스템(ROM)
기본 동작 시스템(ROM)
표 9
표 9는 다음과 같이 나타내는 프로그램 가능 메모리의 그 로딩 영역의 구조에 의한 상기 표 1과는 다르다.
- 2개의 정보의 서브 블록을 포함하는 애플리케이션에 관련된 블록:
- "애플리케이션의 프로그램"으로 표시된, 애플리케이션의 실행가능한 프로그램에 관련된 블록;
- "애플리케이션의 데이터"로 표시된, 애플리케이션의 변경(비실행성) 데이터에 관련된 블록;
- 실행가능한 프로그램의 특정 실행에 대응하는 변경(비실행성) 데이터 블록의 임의의 수;
이하에, 이들 실행은 "시퀀스"로 칭해진다. 정의에 의해, 시퀀스의 데이터는 일시적인데, 즉, 상기 데이터는 이전 또는 후속 시퀀스 동안이 아닌, 이 시퀀스 동안에만 사용된다. 이는, 모든 시퀀스 동안 사용되는, 상술한 "애플리케이션의 데이터"로부터 구별되는 것이다. 표 9에서, 시퀀스의 2개의 데이터 블록은 "변경 데이터, 시퀀스 1" 및 "변경 데이터, 시퀀스 2"로 지칭되어 나타내진다. 이들 정보의 다른 블록의 역할을 이하의 예로 설명한다.
제 3 개선을 얻기 위해, 표(TAB_APPLI)가 변경된다; 그것은 다음 구조를 갖는다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P p-cod SGN- cod- P 로딩 ADR- Dat- P/1 p- dat SGN-dat-P/1 로딩
P/2 ADR- Cod- P p-cod SGN- cod- P 로딩 ADR- Dat- P/2 p- dat SGN-dat-P/2 로딩
J/1 ADR- Cod- J j-cod SGN- cod- J 로딩 ADR- Dat- J/1 j- dat SGN-dat-J/1 로딩
J/2 ADR- Cod- J j-cod SGN- cod- J 로딩 ADR- Dat- J/2 j- dat SGN-dat-J/2 언로딩
표 10: TAB_APPLI
상술된 표 TAB_APPLI 2와 비교하여, 이 표는 다음의 차이점을 갖는다. 제 1 열은 애플리케이션 코드, 문제의 시퀀스의 수 "i"에 부가하여 명기된다. 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 그룹, 및 시퀀스의 변경 데이터에 관련된 그룹의 2개의 그룹으로 정보가 처리된다. 각 정보의 그룹에 있어서, 기억 어드레스, 바이트의 수, 시그너처, 로딩 표시자인, 표 TAB_APPLI 2의 4개의 열이 있다. 표의 각 행은, 데이터 시퀀스(P/1,P/2), 애플리케이션(P)에 관련된 것 모두, 또는 시퀀스(J/1,J/2), 다른 애플리케이션(J)에 관련된 것 모두에 대응한다. 표의 다른 셀에서, 주어진 애플리케이션에 관련된 문제의 값, 예컨대:
● ADR-Cod-P: 애플리케이션(P)에 관련된 기억 어드레스
● j-cod: 애플리케이션(J)에 관련된 바이트의 수를 나타내기 위해 애플리케이션의 코드가 설명된다. 또한, "애플리케이션" 유형의 정보(제 1 그룹의 프로그램 또는 데이터)에 관련된 문제의 값을 심볼 "Cod"가 나타내며, "시퀀스" 유형의 정보(제 2 그룹의 데이터)에 관련된 문제의 값, 예컨대:
● SGN-cod-P: 애플리케이션(P)에 관련된 정보(프로그램 또는 데이터)의 시그너처
● SGN-dat-J/2: 애플리케이션(J)의 시퀀스 No. 2에 관련된 데이터의 시그너처를 "Dat"가 나타낸다.
실시예는 본 발명을 이용하여 제기된 문제 및 그의 해결 방법을 더 잘 설명할 것이다.
정보처리장치(이 경우의 카드(21))는 애플리케이션(P): 전자 화폐형의 지불 애플리케이션에 대한 초기 로딩 명령을 수신하였다. 프로그램 가능 메모리에 기억된 응용 정보는 실행가능한 프로그램 및 애플리케이션에 관련된 데이터이다; 시퀀스에 대응하는 임의의 변경 데이터는 아직 존재하지 않는다. 이 정보는, 어드레스(ADR-Cod-P)에서 시작하여 기억된 n-Cod 바이트를 포함한다. 로딩 표시자는 "로딩됨"으로 설정된다. 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보에 부가하여, 시퀀스(i)에 관련된 수 많은 변경 데이터 "p-dat"의 바이트를 명령이 포함하는 동안 정보가 전송된다. 따라서, 표 TAB_APPLI는 다음 값을 갖는다:
애플리케이션 코드 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P p-cod SGN- cod- P 로딩 0 p-dat 0 0
표 11: TAB_APPLI
보안 모듈로 불려지는 전자회로에 의해 거래는, 타당성이 검사된다. 도 1의 카드 독출 터미널(20) 또는, 보안이 최대로 필요하면, 터미널(20)로부터 매우 멀리 배치될 수 있는, 입증된 뱅킹 센터에 이 모듈이 배치될 수 있다. 카드, 터미널와 보안 모듈 사이의 통신을 필요로 하는 몇 단계에서 전자 화폐형 거래가 발생한다. 모듈을 갖는 터미널이 장착된 가게에서 구매가 이루어질 수 있지만, 터미널에 모듈이 장착되지 않은 카드 소지자의 가정에서도 이루어질 수 있다.
거래 초기화 순서에 의해 구매되도록 카드가 이용된다. 카드의 동작 시스템은 응용 유형의 순서를 인식한다; 시스템은 그 표 TAB_APPLI에 질문한다. 표의 질문은, 순서에 대응하는 애플리케이션이 실제로 로딩되었는지와 할당된 시퀀스가 없는 지를 나타낸다. 동작 시스템은, 예컨대, 넘버 "1"로 할당함에 의해 시퀀스를 초기화한다. 그것은, 어드레스(ADR-Dat-P/1)에서 시작하는, "n-dat" 바이트의 메모리 공간에 이 시퀀스를 할당한다. 이 시퀀스에 대응하는 로딩 표시자는 "로딩됨"으로 설정된다. 표 TAB_APPLI는 다음 값을 갖는다:
애플리케이션 코드 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P/1 n-dat 0 로딩
표 TAB_APPLI 12
다음, 카드의 동작 시스템은 어드레스(ADR-Cod-P)로 점프를 실행함에 의해 응용 프로그램을 실행한다; 그것은, 애플리케이션이 시퀀스의 데이터가 기억된 위치를 알도록, 이용되는 일시적 데이터의 어드레스(ADR-Dat-P/1)를 명기한다. 이 데이터는, 거래의 양, 거래의 목적, 매각하는 시설 및 거래의 날짜 등을 포함한다. 한편, 그의 수명이 시퀀스의 데이터를 초과하기 때문에, 전자 화폐의 대차대조 등의 데이터는 일시적 시퀀스 데이터가 아니다; 응용 유형에 있어서, 이 데이터는 애플리케이션의 프로그램에 기억된다.
제 1 생산물의 구매는 진행중이다; 네트워크를 통해 액세스할 수 있는 지불 센터로부터의 거래의 타당성 검사를 얻기 위해, 카드는 판독기(20)에 메시지를 전송한다. 이 통신은 소정 시간동안 지속될 수 있다. 사실상, 통신은 방해받을 수 있고, 전송된 데이터는 입증된 뱅킹 센터에 의해 분석되기 위해 긴 시간을 취할 수 있다. 이에 의해, 거래의 전체적인 기간이 증가된다. 이 시간 동안, 사용자는 제 2 구매를 할 것을 결정한다. 본 발명은, 제 2 거래가 시작되기 전에 제 1 거래의 종결을 기다리는 것을 피할 수 있게 한다.
제 2 구매를 위해, 카드는 새로운 거래 초기화 순서에 의해 2번째 이용된다. 이전과 같이, 카드의 동작 시스템은, 전자 화폐의 실행가능한 프로그램이 프로그램 가능 메모리로 로딩되는 지를 검증한다. 이 검증은 표 TAB_APPLI에 질문함에 의해 실행된다; 따라서, 동작 시스템은 (1) 진행중인 프로그램 및 시퀀스의 존재를 인식한다. 이로 인해, 그것은 제 2 실행을 새로운 시퀀스 넘버에 할당하고, (2) 새로운 행을 첨가함에 의해 표 TAB_APPLI를 초기화한다. 다음, 비실행성 데이터형 정보에 대해 프로그램 가능 메모리에 n-dat 바이트를 할당하기 위해 충분한 공간이 있는지를 검증한다. 충분한 공간이 있다면, 새로운 어드레스(ADR-Dat-P/2)가 결정되고, 제 2 거래가 시작될 수 있다. 표 TAB_APPLI는 다음 값을 갖는다.
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod-P n- cod SGN- cod-P 로딩 ADR- Dat- P/1 n- dat 0 로딩
P/2 ADR- Cod-P n- cod SGN- cod-P 로딩 ADR- Dat- P/2 n- dat 0 로딩
표 TAB_APPLI 13
2개의 거래는, 네트워크를 이용하지 않고 카드에서 병렬로 실행될 것이다. 카드에 전송된 응용 명령에서, 판독기는 상기 명령이 지칭하는 거래를 나타내야 한다.
충분한 공간이 없다면, 카드의 동작 시스템은 제 1 거래(시퀀스 넘버 1)에 대응하는 변경 데이터만을 언로딩하도록 결정한다. 제 1 시퀀스 "SGN-dat-P/1"의 데이터의 시그너처를 계산하고, 표 TAB_APPLI에 기입한다. 따라서, 새로운 비실행성 데이터는 언로딩된 데이터와 동일한 위치, 즉, 시퀀스와 표시된 ADR-Dat-P 모두에 대해 공통인 어드레스에 있을 수 있다. 다음, 카드는 판독기에 다음 명령을 전송한다:
네트워크에 언로딩하기 위한 순서 카드 C Appli P-Data- 시퀀스 넘버 1 넘버 n_dat 데이터의 "n_dat" 바이트
이 명령은, 다음 차이를 가진 상술한 바와 동일한 구조를 갖는다: 제 3 셀은, 애플리케이션의 코드(P)뿐만 아니라, 데이터가 시퀀스 유형(용어 "Data"를 통함), 및 문제의 시퀀스의 넘버 1이라는 사실도 명기하는 파라미터를 포함한다.
이 명령의 결과로서, 표 TAB_APPLI가 다음 값을 갖는다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
p/1 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P n-dat SGN-dat-P1 언로딩
P/2 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P n-dat 0 로딩
표 TAB_APPLI 14
이 동작의 결과로서, 시퀀스 넘버 2를 갖는 제 2 거래는 계속될 수 있다. 또한, 새로운 거래는 지불 센터로부터의 타당성 검사를 필요로 한다; 따라서, 요청은 보안 모듈에 전송된다. 제 1 거래에 대한 타당성 검사 메시지를 카드가 수신한 때를 가정하자. 카드의 동작 시스템은 시퀀스 넘버에 의해, 이 메시지가 현재 것과는 다른 거래에 관련됨을 인식하고, 표 TAB_APPLI를 독출함에 의해, 제 1 거래를 인식한다. 그것을 처리하기 위해, 제 1 거래의 비실행성 데이터를 로딩해야 한다.
데이터 블록 모두에 대해 충분한 메모리 공간이 없다면, 카드의 동작 시스템은 제 2 거래의 데이터를 언로딩해야 한다. 따라서, 이 데이터 "SGN-dat-P/2"의 시그너처를 계산하고, 표 TAB_APPLI에 독출한다. 다음, 카드는 판독기에 다음 명령을 전송한다:
네트워크에 언로딩하기 위한 순서 카드 C appli P - data - 시퀀스 넘버 2 넘버 n_dat 데이터의 "n_dat" 바이트
다음, 표 TAB_APPLI는 다음 값을 갖는다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod-P n- cod SGN- cod-P 로딩 ADR- Dat- P n- dat SGN-dat-P1 언로딩
P/2 ADR- Cod-P n- cod SGN- cod-P 로딩 ADR- Dat- P n- dat SGN-dat-P/2 언로딩
표 TAB_APPLI 15
다음, 카드의 동작 시스템은 판독기에 다음 명령을 전송한다:
네트워크로부터 재로딩하기 위한 명령 카드 C Appli P - Data - 시퀀스 넘버 1 넘버 n-dat
이 명령은, 제 3 셀이 애플리케이션의 코드(P)뿐만 아니라, 그 데이터가 시퀀스 유형(용어 "Data"를 통함), 및 문제의 시퀀스의 넘버 1도 명기하는 파라미터를 포함하는 점에서 이미 기입된 재로딩 명령과는 다르다.
판독기는 명령을 수신하고, 상기 명령을 카드(C)에 특별히 할당된 데이터 뱅크에 전송한다. 데이터 뱅크는, 애플리케이션(P), 시퀀스 넘버 1에 관련된 비실행성 데이터의 n-dat 바이트에 대해 이 카드의 파일에서 탐색한다. 데이터 뱅크는, 카드의 마지막 명령에 응답하는 다음 메시지를 발생한다; 이 응답은 판독기를 통해 카드에 전송된다:
카드 C Appli P - Data - 시퀀스 넘버 1 n-dat 데이터의 n-dat 바이트
이 명령은, 제 2 셀이 애플리케이션의 코드(P)뿐만 아니라, 데이터가 시퀀스 유형(용어 "Data"를 통함), 및 질의의 시퀀스의 넘버 1도 명기하는 파라미터를 포함하는 점에서 이미 기입된 재로딩 명령에 대한 응답과는 다르다.
카드의 동작 시스템은, 코드(C,P), 시퀀스 넘버 및 수신된 값(n-dat)이 실제로 이전에 전송된 명령와 동일한 지를 검증하는 예비 동작을 실행할 수 있다. 매칭된다면, 수신된 n-dat 바이트는 표 TAB_APPLI에 독출된 어드레스(ADR-dat-P)에서 시작하여 기억된다. 마지막 바이트가 기입되면, 키(SWAP)의 값을 이용하는 암호 계산에 의해 동작 시스템은 데이터의 시그너처를 재계산한다. 다음, 재계산된 시그너처는 표 TAB_APPLI에 기입된 값 "SGN-dat-P/1"과 비교된다. 2개의 시그너처값이 동일하지 않으면, 네트워크로부터 수신된 데이터는 이전에 언로딩된 것과 동일하지 않다. 따라서, 수신된 데이터의 확실성 또는 보전이 의심스럽다. 카드는, 마지막 로딩 동작중의 오류 데이터의 수신, 및 계속적인 거래의 불가능을 나타내는 오류 메시지를 판독기에 리턴시킨다.
2개의 값이 동일하면, 수신된 데이터는 카드에 의해 이전에 언로딩된 것과 동일한 것으로 간주된다: 따라서, 제 1 거래가 지속될 수 있다. 다음, "로딩됨"으로 애플리케이션(P/1)의 데이터에 대한 표시자를 설정함에 의해 카드의 동작 시스템은 표 TAB_APPLI를 업데이트한다.
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P n- cod SGN- cod- P 로딩 ADR- Dat- P n- dat SGN-dat-P1 로딩
P/2 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P n- dat SGN-dat-P/2 언로딩
표 TAB_APPLI 16
표 TAB_APPLI의 업데이트가 종료됨으로써, 동작 시스템은 제 1 거래를 지속시키는 애플리케이션(P)을 시작한다.
제 1 거래가 종료됨으로써, 애플리케이션의 프로그램의 실행은 가상 메모리를 운영하는 동작 시스템으로의 리턴에 의해 종결된다. 동작 시스템은, 시퀀스 "1"의 종결을 인식하고, 이 시퀀스의 데이터에 대응하는 메모리 공간을 해제하도록 결정한다. 이를 실행하기 위해, 0의 값으로 설정함에 의해 정보 "기억 어드레스", "시그너처" 및 로딩/언로딩 표시자를 삭제한다.
다음, 표 TAB_APPLI는 다음 값을 갖는다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P n-cod SGN- cod- P 로딩 0 n- dat 0 0
P/2 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P n- dat SGN-dat-P/2 언로딩
표 TAB_APPLI 17
카드가 제 2 거래의 타당성 검사를 수신할 때, 시퀀스 넘버에 의해, 로딩되지 않은 다른 거래에 메시지가 관련되는 것을 카드의 동작 시스템이 인식한다. 제 1 거래가 종료됨으로써, 대응하는 비실행성 데이터는 더 이상 유용하지 않다. 따라서, 언로딩할 필요가 없다. 제 2 거래에 대응하는 비실행성 데이터를 로딩하기에 충분하다. 동작 시스템은 판독기에 다음 명령을 전송한다:
네트워크로부터 재로딩하기 위한 명령 카드 C Appli P - Data - 시퀀스 넘버 2 넘버 n-dat
시퀀스 1의 로딩을 위한 바로써, 판독기는 명령을 수신하고, 데이터 뱅크에 전송한다. 데이터 뱅크는, 애플리케이션(P), 시퀀스 넘버 2에 관련된 비실행성 데이터의 n-dat 바이트에 대해 이 카드의 파일에서 탐색한다. 데이터 뱅크는, 판독기를 통해 카드에 전송되는 다음 메시지를 발생시킨다.
카드 C Appli P - Data - 시퀀스 넘버 2 넘버 n-dat 데이터의 n-dat 바이트
카드의 동작 시스템은, 코드(C,P), 시퀀스 넘버, 수신된 값(n-dat)을 검증하는 예비 동작을 실행할 수 있다. 검증이 포지티브(positive)이면, 바이트는 기입된다. 다음, 동작 시스템은 데이터의 시그너처를 계산하여 검증한다. 2개의 값이 동일하면, 수신된 데이터는 카드에 의해 이전에 언로딩된 것과 동일한 것으로 간주된다; 따라서, 제 2 거래가 지속될 수 있다. "로딩됨"으로 애플리케이션(P/2)의 로딩 표시자를 설정함에 의해 동작 시스템은 표 TAB_APPLI를 업데이트한다.
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P n-cod SGN- cod- P 로딩 0 n-dat 0 0
P/2 ADR- Cod- P n-cod SGN- cod- P 로딩 ADR- Dat- P n-dat SGN-dat-P/2 로딩
표 TAB_APPLI 18
표 TAB_APPLI의 업데이트가 종료됨으로써, 동작 시스템은 제 2 거래를 지속시키는 애플리케이션(P)을 시작한다.
제 2 거래가 종료됨으로써, 애플리케이션의 프로그램은, 가상 메모리를 운영하는 동작 시스템으로의 리턴 지시에 의해 종결된다. 동작 시스템은, 시퀀스 "2"가 종료됨을 이로부터 연역한다; 다음, 메모리 공간은 해제될 수 있다. 이를 실행하기 위해, "기억 어드레스", "시그너처" 및 로딩/언로딩 표시자의 표 TAB_APPLI의 위치는 0으로 설정된다. 표는 다음 값을 취한다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
P/1 ADR- Cod- P n-cod SGN- cod- P 로딩 0 n-dat 0 0
P/2 ADR- Cod- P n-cod SGN- cod- P 로딩 0 n-dat 0 0
표 TAB_APPLI 19
이 단계에서, 카드의 동작 시스템은 표 TAB_APPLI의 한 행을 완전히 삭제할 수 있다. 따라서, 표 TAB_APPLI의 행의 운영은 필요에 따라 동적으로 발생한다.
또한, 표를 운영하는 정적인 방법은 애플리케이션에 대한 실행가능한 시퀀스의 최대 수를 한 번만 결정하는 것이다; "s"를 이 수로 하자. 다음, "s"가 애플리케이션에 대한 초기 로딩 명령중에 전송된다; 동작 시스템은, 이 "s" 시퀀스에 대응하는 공간을 표 TAB_APPLI에 확보해 둔다. 예컨대, S가 2의 값을 갖도록 하자.
애플리케이션(K)을 로딩하는 명령은 다음 값을 갖는다:
로딩 순서 카드 C Appli K 넘버 n s=2
n-cod n-dat
파라미터(s)의 값을 정의하는 제 5 셀을 포함함으로써, 이 명령은 이전에 설명된 것과는 다르다. 이 경우, 애플리케이션에 관련되고 명령에 의해 전송된 바이트의 수(n-cod), 및 각각의 장래 시퀀스에 관련되고 이의 이용을 위해 확보된 바이트의 수(n-dat)를 명령이 명기한다. 변동에 있어서, 바이트의 수(n-dat)는 이 단계에서 전송되지 않을 수 있지만, 카드로 로딩된 애플리케이션에 의해 나중에 카드의 동작 시스템에 제공될 수 있다.
이 명령의 결과로써, 동작 시스템은 표 TAB_APPLI를 다음 값으로 업데이트한다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
K/1 ADR- Cod- K n-cod SGN- cod- K 로딩 0 n-dat 0 0
K/2 ADR- Cod- K n-cod SGN- cod- K 로딩 0 n-dat 0 0
표 TAB_APPLI 20
애플리케이션(K)은 지금 실행될 수 있다: 2개의 시퀀스가 가능하다.
몇 개의 시퀀스가 각각 장착된 몇 개의 완전한 애플리케이션을, 카드가 가상으로 포함할 수 있다. 예컨대, 여기에 표 TAB_APPLI의 하나의 특정 구성이 있다:
애플리케이션 코드/ 시퀀스 넘버 실행가능한 프로그램 및 애플리케이션의 데이터에 관련된 정보 "i"로 표시된 시퀀스의 변경 데이터에 관련된 정보
기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩 기억 어드레스 바이트의 수 시그너처 로딩/ 언로딩
K/1 ADR- Cod- K k-cod SGN- cod- K 언로딩 0 k-dat 0 0
K/2 ADR- Cod- K k-cod SGN- cod- K 언로딩 ADR- Dat- K/2 k-dat SGN-dat-K/2 언로딩
K/1 ADR- Cod- K k-cod SGN- cod- K 언로딩 ADR- Dat- K/3 k/dat SGN-dat-K/3 로딩
J/1 ADR- Cod- J j-cod SGN- cod- J 로딩 ADR- Dat- J/1 j-dat SGN-dat-J/1 로딩
J/2 ADR- Cod- J j-cod SGN- cod- J 로딩 ADR- Dat- J/2 j-dat SGN-dat-J/2 언로딩
표 TAB_APPLI 21
이 예에 대응하여, 카드는 K 및 J로 표시된 2개의 애플리케이션을 가상으로 갖는다. 애플리케이션(K)의 실행가능한 프로그램은 로딩 영역에 존재하지 않는다; 1,2 및 3으로 표시된 애플리케이션의 3개의 시퀀스는, 동시에 실행될 수 있다. 제 1 시퀀스가 종료되며, 다른 2개가 현재 실행중이다. 시퀀스 2는 언로딩된다; 따라서, 종료하기 위해 재로딩할 필요가 있다. 또한, 시퀀스 2 및 3을 종료하기 위해, 실행가능한 프로그램 및 애플리케이션(K)의 데이터를 재로딩할 필요가 있다.
애플리케이션(J)의 실행가능한 프로그램은 로딩영역에 존재한다; 이 애플리케이션은, 현재 실행중인, 1 및 2로 표시된 2개의 시퀀스를 동시에 실행할 수 있다. 시퀀스 2는 언로딩된다; 종료하기 위해 재로딩할 필요가 있다.
이 예는, 이용가능한 메모리 공간을 적당히 운영할 필요성을 설명하였다. 로딩 영역이 가능한 많이 점유됨으로써, 언로딩 및 재로딩 명령을 가능한 피할 수 있다.
분명하게도, 언로딩시의, 그들을 표시함에 부가하여, 데이터의 암호화, 및 로딩/재로딩시의 데이터의 암호화로 구성되는 개선은, 제 3 개선에 적용될 수 있다.
카드로의 애플리케이션을 초기 로딩하는 절차의 개선은, 응용 제공자의 키로부터 계산된 응용 정보의 시그너처를 카드에 입력함으로써 구성된다. 이 시그너처는, 응용 정보의 보전을 확보하고 이 응용 데이터의 소스를 확실하게 함을 가능하게 한다.
개선에 따른 초기 로딩은 애플리케이션 제공자에 카드를 제출함으로써 구성된다. 이 동작이 애플리케이션 제공자의 전제상에서 실행됨이 바람직하다. 애플리케이션 제공자는, 그의 제공자 키, 응용 정보의 시그너처, 및 애플리케이션 코드, 예컨대, K를 카드에 입력한다. 카드 소지자는 애플리케이션(K)을 초기 로딩하도록 요청을 실행한다. 상술한 이 요청은, 가정에서 이루어질 수 있다. 보호된 방식으로 애플리케이션의 초기 로딩을 실행하는 방법은, 문서 FR-A-2,748,134.에 기술되어 있다.
본 발명의 실시예의 변형에 의하면, 카드에 기억된 애플리케이션은 네트워크를 통해 원격 데이터 뱅크로 언로딩되지 않는다; 도 2의 판독기(20)는 이들 애플리케이션을 수신하여 기억한다; 따라서, 이를 위해, 판독기는 애플리케이션이 기억되는 비휘발성 프로그램 가능 메모리를 갖는다. 로딩 및 언로딩 명령은 변경되지 않는다. 이 변형은, 동일한 판독기, 예컨대, 카드 소지자의 가정에 배치된 판독기에 카드가 항상 삽입될 때 이점을 갖는다.
본 발명의 실시예의 다른 변형은 카드 판독기(40) 및 도 4의 칩 카드(41)를 사용하며, 도 2의 공통인 요소는 동일한 참조부호를 갖는다. 카드(41)는, 광학 스트라이프(42), 예컨대, 레이저 빔에 의해 기입 및 독출되는 스트라이프를 갖는, 도 2의 21과는 구별된다. 카드 판독기(40)는, 마이크로프로세서(2) 및 메모리(3,4)에 접속된, 광학 스트라이프(42)상의 정보의 독출 및 기입이 가능한 광학 스트라이프 판독기(43)를 포함하는 20과는 구별된다.
본 발명에 의하면, 도 1의 23 내지 25의 원격 데이터 뱅크들 대신에, 광학 스트라이프(42)가 데이터 뱅크로서 사용된다. 실제로, 카드(41)로부터의 애플리케이션의 언로딩 동안, 카드는 카드 판독기(40)에 언로딩 명령을 전송한다. 스트라이프 판독기(43)는, 애플리케이션의 정보를 수신하고 광학 스트라이프(42)상에 그것을 기입한다. 재로딩 명령 동안, 카드 판독기는 스트라이프 판독기(43)를 활성화하여 광학 스트라이프(42)상에 애플리케이션의 정보를 독출한다; 다음, 카드 판독기는 카드의 마이크로프로세서(9)에 이 정보를 전송하여 나중에 로딩영역에 그들을 기억시킨다. 그럼에도 불구하고, 로딩 및 언로도 명령은 변경되지 않는다.
변경에 있어서, 광학 스트라이프는 다른 대규모 기억 매체, 예컨대, 자성 스트라이프에 의해 대체된다.
이전 실시예의 일예에서, 정보처리장치로부터 이 장치의 외측으로의 애플리케이션의 언로딩이 설명되었다; 도 2의 경우, 카드(21)는, 도 1의 판독기(20) 또는 데이터 뱅크(23-25)에 언로딩을 실행하였다; 도 4의 경우, 정보처리장치는, 광학 스트라이프(42)에 언로딩을 실행시키는 마이크로프로세서(9) 및 그의 메모리(10,14)에 의해 구성되었다. 본 발명의 실시예의 다른 변경에 의하면, 정보처리장치는 이 장치의 몇 개의 메모리 사이에서 언로딩을 실행한다. 예컨대, 상기 정보처리장치는 도 2의 카드(21)로 구성되고, 마이크로프로세서(9)는 그의 RAM(14)으로부터 그의 비휘발성 메모리(10)로의 애플리케이션을 언로딩한다.
예컨대, 애플리케이션(K,J)은 비휘발성 메모리(10)에 기억된다. 먼저, 애플리케이션(K)은 실행된다. 이 때, 애플리케이션(K)에 관련된 작업 정보(Itk)는 RAM에서 처리되며, 애플리케이션(K)의 프로그램은 비휘발성 메모리(10)에 남는다. 특히, 이 작업 정보는:
- 계산에 관여된, 일시적 작업 변수;
- 카드가 애플리케이션의 인터럽트된 실행을 후속하여 재개하도록 하는, 컨텍스트 변수;
- 서브프로그램을 포함한다.
제공된 시기에, 카드는 다른 애플리케이션(J)을 실행해야 하고, 이로 인해, RAM으로 작업 정보(Itj)를 로딩해야 한다. 작업 정보(Itj)를 수신하기 위한 RAM의 이용가능한 공간이 충분하지 않다고 카드가 판단하면, 애플리케이션(K)의 실행을 중단하고 그의 비휘발성 메모리(10)로 애플리케이션(K)의 작업 정보(Itk)를 언로딩하도록 결정한다. 다음, 연관된 작업 정보(Itj)를 RAM에 로딩함에 의해 애플리케이션(J)을 실행시킨다. 애플리케이션(J)의 실행 후, 카드는, 인터럽트된 지점에서, 작업 정보(Itj)를 RAM에 재로딩하는, 애플리케이션(K)의 실행을 다시 시작한다.
본 발명의 마지막 변형에서, 질의의 정보처리장치가 그의 메모리를 로딩 및 언로딩하는 동작을 실행하기 위한 외부 장치를 언급하지 않았기 때문에, 로딩 및 언로딩 명령은 사용되지 않는다. 표 TAB_APPLI를 갖지만, 후자는 상기 표 2와 비교하여 간략화된다; 파라미터 "정보의 시그너처"는 제거된다. 효과적으로, 정보가 정보처리장치에서 없어지지 않기 때문에, 그의 언로딩 동안 변경되는 위험은 없다.
상술한 바에서, 구체적으로, 정보의 다른 세트를 로딩하기 위한 카드에 의해 수신된 명령의 결과로서 정보의 세트를 언로딩하기 위한 카드에 의한 결정을 설명하였다. 그러나, 본 발명은, 카드에 의해 수신된 명령이 정보의 세트의 로딩과는 다른 동작을 실행하는 경우도 포함한다. 예컨대, 카드에 요청된 특정 프로세스는, 카드의 메모리에서 현재 이용가능한 공간보다 더 큰 메모리 공간을 요구할 수 있다; 이는, 다른 것들 사이에서, 암호화 계산일 수 있다. 이 경우, 이 동작을 실행할 수 있도록 정보의 세트를 언로딩하기 위해 카드가 결정할 것이다. 다른 예는, 카드에 의해 수신된 명령이 이전에 카드로부터 언로딩된 애플리케이션(K)을 실행하기 위한 명령인 것이다. 따라서, 카드는 애플리케이션을 실행하기 위해 이 애플리케이션을 재로딩해야 한다; 이 재로딩을 위한 메모리 공간이 충분하지 않으면, 카드는 다른 애플리케이션(J)을 언로딩하도록 결정한 후, 애플리케이션(K)의 재로딩을 실행할 것이다.
본 발명에 의하면, 카드에 의해 구성되는 정보처리장치에서 프로그램 및/또는 애플리케이션 데이터에 대한 필요에 따라 프로그램 가능 메모리를 로딩하고 언로딩하는 방법을 제공한다. 따라서, 카드가 전자 지갑, 은행업무 애플리케이션, 현 재 프랑스에서 테스트되고 있는 GSM 전화통신 또는 건강 관리 애플리케이션과 같이 매우 다양한 애플리케이션을 실행하는 것이 가능하다.

Claims (22)

  1. 정보처리수단(9), 주 기억수단(10, 14) 및 부 기억수단(23-25, 42, 53)을 구비하고, 상기 주 기억수단(10, 14)은 프로그램, 상기 프로그램을 실행하기 위한 일반 데이터, 및 상기 프로그램의 실행의 특별 세션과 관계되는 적어도 한세트의 세션 특정 데이터(session-specific data)를 저장하는 칩카드에 있어서, 상기 처리 수단은,
    - 칩카드의 동작동안, 상기 주 기억수단(10, 14)이 다량의 정보를 포함하여 동작의 실행이 불가능한 것을 검출하기 위한 수단;
    - 상기 주 기억수단에 있어서, 언로딩될 적어도 한세트의 세션 특정 데이터를 선택하기 위한 수단-상기 언로딩은 상기 동작의 실행을 허용하도록 상기 주 기억수단에 충분한 공간을 해제(release)할 수 있는 것임-; 및
    - 상기 부 기억수단(23-25, 42, 53)이 언로딩될 상기 세션 특정 데이터 세트를 포함하지 않는 경우에, 언로딩될 선택된 세션 특정 데이터 세트를 상기 부 기억수단(23-25,42,53)으로 언로딩하기 수단을 포함하는 것을 특징으로 하는 칩카드.
  2. 제1항에 있어서, 상기 주 기억수단에 저장된 로딩 테이블(TAB-APPLI)을 더 구비하고, 상기 적어도 한세트의 세션 특정 데이터가 상기 주 기억수단에 기억되는 지에 무관하게, 적어도 한세트의 세션 특정 데이터를 지시하도록 구성되고 배열된 기억 표시자를 포함하며, 이에 따라, 상기 처리 수단(9)이 상기 세션특정 데이터 세트에 액세스되어야 할 때, 상기 처리 수단(9)은 상기 기억 표시자를 참고하며;
    상기 처리 수단(9)은,
    - 상기 기억 표시자가 세션 특정 데이터 세트가 상기 주 기억수단에 저장된 것을 표시하는 첫번째 경우, 저장된 세션 특정 데이터 세트에 액세스하기 위한 수단; 및
    - 상기 기억 표시자가 세션 특정 데이터 세트가 상기 주 기억 수단에 저장되지 않은 것을 표시하는 두번째 경우, 세션 특정 데이터 세트를 로딩하기 위한 명령을 상기 부 기억수단(23-25, 42, 53)에 전송하기 위한 수단을 포함하는 칩카드.
  3. 제2항에 있어서, 상기 기억 표시자는, 대응하는 세션 특정 데이터 세트가 상기 부 기억수단(23-25, 42,53)으로부터 칩 카드로 로딩되는 것을 나타내는 '로딩' 상태 및 상기 세션 특정 데이터 세트가 상기 부 기억수단으로 상기 칩카드에 의해 언로딩되는 것을 나타내는 '언로딩' 상태를 포함하는 칩카드.
  4. 제1항에 있어서, 상기 주 기억수단(10,14)에 저장된 로딩 테이블(TAB-APPLI)을 더 구비하고, 최초 버전이 칩 카드에서 변경되는 지에 무관하게, 적어도 한세트의 세션 특정 데이터에 대해, 세션 특정 데이터 세트의 최초 버전이 상기 부 기억수단(23-25, 42,53)으로부터 칩 카드로 로딩된 것을 나타내도록 설계 및 배열된 변경 표시자를 포함하며, 이에 따라, 상기 세션 특정 데이터 세트가 상기 부 기억수단에 언로딩되어야 할 때, 상기 최초 버전이 변경되지 않는 한 상기 세션 특정 데이터 세트는 실제로 언로딩되지 않는, 칩 카드.
  5. 제1항에 있어서, 동일한 프로그램과 상기 프로그램을 실행시키기 위한 동일한 일반 데이터(p-cod) 및 각각 다른 세트의 세션 특정 데이터(p-dat)를 삭제하기 위한 수단을 포함하여, 상기 처리 수단이 상기 프로그램과 상기 일반 데이터(p-cod)가 상기 주 기억 수단(10, 14)에 한번만 기억되도록 하고, 상기 처리 수단은 이 프로그램과 이 일반 데이터를 각각의 상기 세션 특정 데이터 세트(p-dat)와 연관시키는 칩카드.
  6. 삭제
  7. 제5항에 있어서, 상기 주 기억수단에 저장된 로딩 테이블(TAB_APPLI)을 더 구비하고, 저장된 각 프로그램에 대해, 상기 주기억수단에 저장될 수 있는 연관된 세션 특정 데이터(p-dat) 세트의 최대수를 포함하는 칩카드.
  8. 제1항에 있어서, 상기 부 기억수단(23-25,42,53)으로 미리 언로딩된 세션 특정 데이터 세트를 상기 주 기억수단(10, 14)으로 재로딩(reloading)하기 위한 수단을 더 포함하는 칩카드.
  9. 제8항에 있어서, 상기 주기억수단(10, 14)에 저장된 로딩 테이블(TAB_APPLI)을 더 구비하고, 상기 장치에 의해 처리된 적어도 한 세트의 세션 특정 데이터에 대해, 상기 주 기억수단에 기억된 시그너처 키(SWAP)와 함께, 상기 적어도 한 세트의 세션 특정 데이터의 가능한 언로딩 전에 상기 처리수단에 의해 계산된 상기 적어도 한 세트의 세션 특정 데이터의 제1시그너처(SGN-K)를 포함하고, 상기 처리수단은 제1시그너처와 제2시그너처를 비교하기 위해, 상기 재로딩된 세션 특정 데이터 세트의 제2시그너처를 계산하도록 설계 및 배열되어, 상기 두 개의 시그너처가 동일한 경우에는 재로딩된 상기 세션 특정 데이터 세트의 재로딩을 정당화하고, 상기 두 개의 시그너처가 상이한 경우에는 재로딩된 상기 세션 특정 데이터 세트의 재로딩을 무효화하는 칩카드.
  10. 정보처리수단(9)과 프로그램, 상기 프로그램을 실행하기 위한 일반 데이터, 및 상기 프로그램의 실행의 특별 세션과 관계되는 적어도 한세트의 세션 특정 데이터를 저장하기 위한 주 기억수단(10,14)를 구비하는 칩 카드에서 메모리를 처리하기 위한 방법으로서,
    - 칩 카드의 동작동안, 상기 주 기억수단(10, 14)이 다량의 정보를 포함하여 동작의 실행이 불가능한 것을 검출하는 단계;
    - 상기 기억수단에 있어서, 언로딩될 적어도 한 세트의 세션 특정 데이터를 선택하는 단계-그 언로딩은 상기 동작의 실행을 허용하도록 상기 주 기억수단(10, 14)에 충분한 공간을 해제하기에 충분한 것임-; 및
    - 부 기억수단이 언로딩될 이 세션 특정 데이터 세트를 포함하지 않는 경우에, 상기 세션 특정 데이터 세트를 부 기억수단(23-25, 42,53)으로 언로딩하기 위한 단계를 포함하는 메모리의 처리 방법.
  11. 제10항에 있어서,
    - 칩 카드의 동작동안, 상기 주 기억수단(10,14)이 다량의 정보를 포함하여 사전에 언로딩된 세션 특정 데이터 세트의 부가적 저장이 가능한 것을 검출하는 단계; 및
    - 상기 언로딩된 세션 특정 데이터 세트를 상기 주 기억수단에 재로딩하는 단계를 더 포함하는 메모리의 처리 방법.
  12. 제10항에 있어서,
    - 칩 카드의 동작동안, 상기 주 기억수단(10,14)이 다수의 정보를 포함하여 사전에 언로딩된 세션 특정 데이터 세트의 부가적 저장이 불가능한 것을 검출하는 단계; 및
    - 상기 주기억 수단에 있어서, 언로딩된 세션 특정 데이터 세트(J)를 선택하는 단계-여기서, 상기 세션 특정 데이터 세트의 언로딩은 상기 사전에 언로딩된 세션 특정 데이터 세트의 저장을 허용하도록 상기 주 기억수단에서 충분한 공간을 해제하는 것임-;
    - 상기 부 기억수단이 언로딩될 상기 세션 특정 데이터 세트를 포함하지 않는 경우에, 언로딩될 상기 세션 특정 데이터 세트(J)를 부 기억 수단(23-25, 42, 53)으로 언로딩하는 단계; 및
    - 상기 사전에 언로딩된 세션 특정 데이터 세트(K)를 상기 주 기억수단으로 재로딩하는 단계를 포함하는 메모리의 처리 방법.
  13. 제10항에 있어서, 상기 부 기억수단은 상기 칩카드로부터 멀리 떨어져 있는 데이터 뱅크(23-25)를 포함하며, 데이터 전송 네트워크(26)에 의해 칩카드와 링크되는 메모리의 처리 방법.
  14. 제10항에 있어서, 상기 부 기억 수단은 상기 칩카드(21)와 협동하는 정보처리장치(20)에 속하는, 메모리의 처리 방법.
  15. 제10항에 있어서, 상기 부 기억수단(42,53)은 상기 칩카드에 속하는, 메모리의 처리 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 제1항 또는 제2항에 있어서, 상기 부 기억수단(23-25, 42, 53)이 이 세션 특정 데이터 세트를 이미 포함하고 있는 경우에는, 상기 주 기억수단(10, 14) 내의 선택된 세션 특정 데이터 세트를 삭제하는 수단을 포함하는 칩카드.
  20. 칩카드(21)와 칩카드 판독기(reader)(20)간의 통신을 위한 방법으로서, 상기 칩카드는 정보처리수단(9)과 주 기억수단(10,14)을 포함하고,
    - 상기 판독기가 동작을 실행하기 위한 명령을 상기 칩카드에 전송하는 단계;
    - 상기 칩카드가 상기 동작을 실행하기 위해 상기 주기억수단에 충분한 공간을 가지고 있는지를 결정하기 위하여 상기 칩카드가 검색하는 단계;
    - 충분한 공간이 있을 경우, 상기 칩카드가 상기 동작을 순차적으로 실행하고, 실행 보고를 판독기에 전송하는 단계;
    - 충분한 공간이 없을 경우, 상기 주 기억수단에서, 칩카드가 언로딩될 세션 특정 데이터 세트를 선택-상기 세션 특정 데이터 세트의 언로딩은 상기 동작의 실행을 허용하도록 상기 주기억수단에 공간을 해제하기에 충분한 것임-하고, 상기 부 기억수단(23-25, 42, 53)이 언로딩될 상기 세션 특정 데이터 세트를 포함하지 않는 경우에, 상기 부 기억수단으로 언로딩될 세션 특정 데이터 세트를 얻로딩하기 위하여 판독기에 언로딩 명령을 전송하는 단계;
    - 상기 동작을 실행하는 단계; 및
    - 상기 판독기에 실행 보고를 전송하는 단계를 포함하는 방법.
  21. 제20항에 있어서, 상기 동작은 저장될 세션 특정 데이터 세트를 로딩하는 단계를 포함하며,
    - 상기 판독기(20)가 상기 저장될 세션 특정 데이터 세트를 로딩하기 위한 명령을 상기 칩카드(21)에 전송하는 단계;
    - 상기 칩카드가 상기 로딩 명령을 실행하기 위해 상기 주 기억수단이 충분한 공간을 가지는지를 결정하기 위해 검색하는 단계;
    - 충분한 공간이 있을 경우, 상기 칩카드가 로딩 명령을 실행하고, 실행 보고를 상기 판독기에 전송하는 단계;
    - 충분한 공간이 없을 경우, 상기 칩카드가,
    로딩을 중지시키기 위한 명령을 상기 판독기(20)에 전송하는 단계;
    상기 주 기억수단에 언로딩될 세션 특정 데이터 세트(K)를 선택-상기 세션 특정 데이터의 언로딩은 상기 언로딩 명령의 실행을 허용하도록 상기 주 기억수단서 충분한 공간을 해제하기에 충분한 것임-하는 단계;
    상기 부 기억수단(23-25, 42, 53)이 언로딩될 상기 세션 특정 데이터 세트를 포함하지 않는 경우에, 언로딩 명령을 상기 판독기에 전송함으로써 언로딩될 상기 선택된 세션 특정 데이터 세트를 상기 부 기억수단으로 언로딩하는 단계;
    상기 로딩 명령을 재개하기 위한 명령을 판독기에 전송하는 단계; 및
    상기 로딩 명령을 실행하고, 실행 보고를 상기 판독기에 전송하는 단계를 포함하는 방법.
  22. 제20항에 있어서, 상기 동작을 실행하기 위한 명령은, 상기 판독기에 의해, 칩카드의 전원 공급을 활성화하는 단계를 포함하는 방법.
KR1019997011847A 1998-04-15 1999-04-14 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜 KR100760275B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR98/04693 1998-04-15
FR9804693A FR2777673B1 (fr) 1998-04-15 1998-04-15 Dispositif de traitement de l'information comprenant des moyens pour gerer une memoire virtuelle, et procede de stockage d'informations associe
PCT/FR1999/000877 WO1999053401A2 (fr) 1998-04-15 1999-04-14 Carte a puce comprenant des moyens pour gerer une memoire virtuelle, procede et protocole de communication associes

Publications (2)

Publication Number Publication Date
KR20010013827A KR20010013827A (ko) 2001-02-26
KR100760275B1 true KR100760275B1 (ko) 2007-09-19

Family

ID=9525264

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019997011847A KR100760275B1 (ko) 1998-04-15 1999-04-14 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜

Country Status (16)

Country Link
US (1) US6687800B1 (ko)
EP (1) EP0990204B1 (ko)
JP (1) JP3575697B2 (ko)
KR (1) KR100760275B1 (ko)
CN (1) CN1130629C (ko)
AR (1) AR016464A1 (ko)
AU (1) AU774140B2 (ko)
BR (1) BR9906355B1 (ko)
CA (1) CA2293297C (ko)
DE (1) DE69938702D1 (ko)
FR (1) FR2777673B1 (ko)
HK (1) HK1032125A1 (ko)
NO (1) NO325907B1 (ko)
TW (1) TW432853B (ko)
WO (1) WO1999053401A2 (ko)
ZA (1) ZA997683B (ko)

Families Citing this family (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2001031442A2 (en) * 1999-10-22 2001-05-03 General Instrument Corporation Management of volatile and non-volatile memory resources in digital communications terminals
DE10015775A1 (de) * 2000-03-30 2001-10-04 Deutsche Telekom Ag Kartenmaterial und Verfahren zum Betreiben eines Kartenterminals
US6629227B1 (en) * 2000-05-04 2003-09-30 Scientific-Atlanta, Inc. System and method for a communication terminal to manage memory and maintain a current application version for multiple applications
JP4568963B2 (ja) 2000-06-08 2010-10-27 ソニー株式会社 情報処理装置、情報通信システム
DE10040974A1 (de) 2000-08-22 2002-03-14 Giesecke & Devrient Gmbh Verfahren zur virtuellen Vergrößerung des Stacks eines tragbaren Datenträgers
FR2816729B1 (fr) * 2000-11-14 2003-02-07 Gemplus Card Int Procede de verification avant activation d'un programme charge dans une carte a puce
FR2817055B1 (fr) * 2000-11-22 2003-02-14 Gemplus Card Int Execution d'une application dans un objet electronique portable a faible capacite de memoire
JP3805211B2 (ja) * 2001-06-11 2006-08-02 株式会社東芝 サービス提供方法及びサービス提供装置
US6941135B2 (en) * 2001-08-13 2005-09-06 Qualcomm Inc. System and method for temporary application component deletion and reload on a wireless device
JP2003108939A (ja) * 2001-09-27 2003-04-11 Dainippon Printing Co Ltd Icカードへのアプリケーション追加システム
FR2832821B1 (fr) * 2001-11-29 2004-04-23 Gemplus Card Int Procede de verification de codes pour microcircuits a ressources limitees
ES2387763T3 (es) * 2002-05-06 2012-10-01 Swisscom Ag Sistema y procedimiento para la administración de recursos de módulos de recursos portátiles
CN1602499A (zh) * 2002-10-04 2005-03-30 索尼株式会社 数据管理系统、数据管理方法、虚拟存储设备、虚拟存储器控制方法、阅读器/写入器装置、 ic模块访问设备、以及ic模块访问控制方法
DE10312774A1 (de) * 2003-03-21 2004-10-14 Deutsche Telekom Ag Verfahren und Kommunikationssystem zur Freigabe einer Datenverarbeitungseinheit
US20040199787A1 (en) * 2003-04-02 2004-10-07 Sun Microsystems, Inc., A Delaware Corporation Card device resource access control
US6996070B2 (en) * 2003-12-05 2006-02-07 Alacritech, Inc. TCP/IP offload device with reduced sequential processing
EP1901207A4 (en) * 2005-06-29 2009-10-28 Panasonic Corp MOBILE END UNIT WITH NON-CONTACT CHIP CARD
US20070197202A1 (en) * 2006-02-17 2007-08-23 Sprigg Stephen A System and method for application auto-disable/restore enhancement
FR2928754B1 (fr) * 2008-03-13 2012-05-18 Sagem Securite Carte a circuit integre ayant un programme d'exploitation modifiable et procede de modification correspondant
DE102009037235A1 (de) 2008-10-14 2010-04-15 Giesecke & Devrient Gmbh Speicherverwaltung in einem portablem Datenträger
US8566481B2 (en) 2009-06-10 2013-10-22 Cisco Technology, Inc. Managing configuration data
WO2012017059A1 (en) * 2010-08-05 2012-02-09 Gemalto Sa System and method for securely using multiple subscriber profiles with a security component and a mobile telecommunications device
JP2012027929A (ja) * 2011-08-31 2012-02-09 Sandisk Il Ltd スマートカード上の内部アプリケーションのローディング
CN103425539B (zh) * 2012-05-14 2016-04-27 联想(北京)有限公司 信息处理方法及装置
EP3093761A1 (en) * 2015-05-13 2016-11-16 Gemalto Sa Integrated circuit card adapted to transfer first data from a first application for use by a second application

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634058A (en) 1992-06-03 1997-05-27 Sun Microsystems, Inc. Dynamically configurable kernel
EP0811911A2 (en) * 1996-06-05 1997-12-10 Sun Microsystems, Inc. Computer system and method for executing network mobile code with reduced run-time memory space requirements

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63228852A (ja) * 1987-03-17 1988-09-22 Omron Tateisi Electronics Co Idシステムの通信制御方式
JP2776929B2 (ja) * 1989-03-29 1998-07-16 株式会社日立製作所 カードデータ処理システム及びカードデータの処理方法
FR2704704B1 (fr) 1993-04-28 1995-09-01 Gemplus Card Int Systeme de communication.
JPH07210395A (ja) * 1994-01-10 1995-08-11 Fujitsu Ltd ファームウェアメンテナンス方式
FR2736735B1 (fr) * 1995-07-11 1997-09-19 Mireille Campana Systeme de chargement du logiciel dans des organes de telephonie et notamment dans des publiphones

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5634058A (en) 1992-06-03 1997-05-27 Sun Microsystems, Inc. Dynamically configurable kernel
EP0811911A2 (en) * 1996-06-05 1997-12-10 Sun Microsystems, Inc. Computer system and method for executing network mobile code with reduced run-time memory space requirements

Also Published As

Publication number Publication date
BR9906355B1 (pt) 2012-01-24
CN1130629C (zh) 2003-12-10
JP2001502099A (ja) 2001-02-13
FR2777673A1 (fr) 1999-10-22
FR2777673B1 (fr) 2001-09-21
AU774140B2 (en) 2004-06-17
HK1032125A1 (en) 2001-07-06
BR9906355A (pt) 2000-09-19
WO1999053401A3 (fr) 1999-12-29
EP0990204A2 (fr) 2000-04-05
NO996177L (no) 2000-02-11
CA2293297C (en) 2005-10-25
DE69938702D1 (de) 2008-06-26
TW432853B (en) 2001-05-01
AU3154199A (en) 1999-11-01
NO325907B1 (no) 2008-08-11
EP0990204B1 (fr) 2008-05-14
NO996177D0 (no) 1999-12-14
CA2293297A1 (en) 1999-10-21
KR20010013827A (ko) 2001-02-26
US6687800B1 (en) 2004-02-03
JP3575697B2 (ja) 2004-10-13
AR016464A1 (es) 2001-07-04
WO1999053401A2 (fr) 1999-10-21
CN1272187A (zh) 2000-11-01
ZA997683B (en) 2001-03-14

Similar Documents

Publication Publication Date Title
KR100760275B1 (ko) 가상 메모리를 운영하기 위한 수단을 포함하는 칩 카드,그와 관련된 통신 방법 및 프로토콜
US5923884A (en) System and method for loading applications onto a smart card
EP0981807B1 (en) Integrated circuit card with application history list
EP0976114B1 (en) Secure multiple application card system and process
US6575372B1 (en) Secure multi-application IC card system having selective loading and deleting capability
WO1999040548A1 (en) Configuration of ic card
WO1999040549A1 (en) System and method for controlling access to computer code in an ic card
KR20000068374A (ko) 메인 파일과 보조 파일간의 링크를 생성하는 수단을 구비하는 보안 모듈
MXPA99011751A (en) Chip card comprising means for managing a virtual memory, associated communication method and protocol
JPH03224080A (ja) 相互認証方式

Legal Events

Date Code Title Description
A201 Request for examination
N231 Notification of change of applicant
E902 Notification of reason for refusal
N231 Notification of change of applicant
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: 20120903

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20130909

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140901

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20180903

Year of fee payment: 12

EXPY Expiration of term