KR100716039B1 - 통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치 - Google Patents

통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치 Download PDF

Info

Publication number
KR100716039B1
KR100716039B1 KR1020037000875A KR20037000875A KR100716039B1 KR 100716039 B1 KR100716039 B1 KR 100716039B1 KR 1020037000875 A KR1020037000875 A KR 1020037000875A KR 20037000875 A KR20037000875 A KR 20037000875A KR 100716039 B1 KR100716039 B1 KR 100716039B1
Authority
KR
South Korea
Prior art keywords
program
additional data
communication
data
processor
Prior art date
Application number
KR1020037000875A
Other languages
English (en)
Other versions
KR20030043913A (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 KR20030043913A publication Critical patent/KR20030043913A/ko
Application granted granted Critical
Publication of KR100716039B1 publication Critical patent/KR100716039B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • 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
    • 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
    • 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/0806Details of the card
    • G07F7/0813Specific details related to card security
    • G07F7/082Features insuring the integrity of the data on or in the card
    • 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/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Business, Economics & Management (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Maintenance And Management Of Digital Transmission (AREA)
  • Polymerisation Methods In General (AREA)
  • Electrical Discharge Machining, Electrochemical Machining, And Combined Machining (AREA)
  • Non-Silver Salt Photosensitive Materials And Non-Silver Salt Photography (AREA)
  • Small-Scale Networks (AREA)

Abstract

예를 들면, 전력 인터럽션으로 인한 장치의 고장으로부터 보호함으로써, 장치들간 통신의 신뢰성을 증가시키는 통신 방법 및 통신 시스템. 부가 데이터는 통신하는 장치들 간에 전송되는 통신 프리미티브들에 포함된다. 부가 데이터는 그 부가 데이터를 생성한 장치의 상태 데이터에 관련된다. 부가 데이터는 상태 데이터를 확인하는데 이용된다. 상태 데이터는 다른 장치로부터 부가 데이터를 수신하자마자 그 부가 데이터로부터 유도될 수도 있다.

Description

통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한 장치{Method and system of communicating devices, and devices therefor, with protected data transfer}
본 발명은 제1 장치와 제2 장치간의 통신 방법에 관한 것이다. 본 발명은 명확하게는 단말기와 통신하는 스마트 카드 분야에 적용 가능하다.
스마트 카드와 단말기의 통신을 실행함에 있어, 스마트 카드에 의해 제공되는 서비스에 필요한 복수개의 보안 프로토콜 중 하나가 대개 실행되곤 한다.
특히, 비접촉 스마트 카드를 사용함에 있어, 강력한 전자기장으로 스마트 카드가 이동하면, 단말기로부터 스마트 카드로의 공급 전류가 불규칙적으로 변동하는 문제점이 발생할 수 있다. 전력 변동은 매우 강하고 빨라서, 스마트 카드는 프로토콜에 요구되는 모든 통신 과정을 실행하기 전에, 공급 전력을 소실할 수 있다. 전력의 전체 또는 부분 손실 후에도 프로토콜을 연속시키고, 일반적으로 프로토콜을 실행하는데 필요한 스마트 카드 데이터의 순결성을 보장하기 위한 메커니즘이 필요하다. 전력 변동의 리스크로 인하여, 일반적으로 비접촉 스마트 카드의 프로토콜에 요청되는 모든 통신 단계는 150msec 이내에서 수행될 필요가 있다. 통신 실패에 관한 더 이상의 리스크없이 프로토콜에 할당가능한 시간 주기를 증가시킬 필요가 있다.
WO-A-89/02140(Eglise e.a.)은 트랜잭션이 완성되기 전에 같은 단말기로부터 획득한 카드 또는 토큰과 같은 데이터 운반 장치에 관한 메커니즘을 개시한다. 데이터 운반 장치는 서비스 기간 중에 장치의 제어하에 감소하는 신용값을 저장한다. 이러한 서비스는 전화 요청, 전기 공급일 수 있다. 선행 자료에 의해 해결되는 문제점은 데이터 운반 장치의 사용자가 트랜잭션의 완성 전에 단말기로부터 장치를 인출하더라도, 사용자가 중요한 신용 데이터의 손실없이 언제라도 단말기로부터 장치를 제거하도록 허락하는 것이다. 전원이 일시적으로 손실되면, 관련 신용 데이터와 비슷한 손실이 발생할 수 있다.
이러한 문제점을 해결하기 위해, Eglise e,a에 따른 데이터 운반 장치는 매번 장치와의 데이터 전송 단계가 실행될 때마다, 관련된 데이터 통신 단계에 대한 지표인 부가 정보를 저장한다. 이러한 목적을 위하여, Eglise e,a는 두 개의 플래그와 세 개의 파라미터를 사용할 것을 제안한다. 플래그의 값은 실행되는 스텝의 따라 변하며, 파라미터 값은 저장된 신용 정보 및 일련된 동작 중에 신용 정보의 갱신에 따라 변한다. 데이터 운반 장치가 너무 일찍 장치로부터 제거되거나 전력이 손실될 때마나, 데이터 운반 장치의 비 휘발성 메모리에 저장된 플래그 및 파라미터의 값은 마지막 실행된 통신 단계를 나타내는 고유한 지표이다. 따라서, 장치와 데이터 운반 장치와의 통신이 다시 시작할 때, 그 이전 트랜잭션은 여전히 성공적 으로 완료될 수 있다.
US-A-4,877,945(Fusisaki)는 잘못된 기록을 배제하는 기능이 구비된 IC 카드를 개시한다. IC 카드는 단말기와 통신하도록 설정된다. 통신 시작시에, 단말기는 스마트 카드에 시작 명령을 송신하고, 통신 종료시에 단말기는 IC 카드에 종료 명령을 보낸다. 시작 명령을 받자마자, IC 카드는 EEPROM 메모리의 테이블에 저장된 유효성 플래그가 밸리드 상태 또는 인밸리드 상태 중 어느 것을 나타내는지 여부를 체크한다. 인밸리드 상태는 IC 카드와 단말기 간의 마지막 통신 절차가 정확히 완료되지 않았다는 것을 나타내며, 반면 밸리드 상태는 마지막 통신 절차가 정확히 완료되었다는 것을 나타낸다.
시작 명령을 수신하자마자, IC 카드는 유효성 플래그가 밸리드 상태인지를 판단하고, 유효성 플래그의 상태를 인밸리드 상태로 전환한 후에, 단말기와의 통신 절차를 시작한다. 데이터 운반 장치는 단말기와 통신 절차를 수행하고, 단말기로부터 종료 명령을 수신하면, 유효성 플래그를 밸리드로 전환한다. 그러나, 통신 절차가 종료전에 인터럽트되면, 유효성 플래그는 여전히 데이터 내용이 인밸리드임을 나타내는 인밸리드 상태로 존재한다.
시작 명령을 수신하며, IC 카드는 그것의 유효성 플래그가 인밸리드임을 감지하여 단말기에 알리며, 어떠한 통신도 실행되지 않을 것이다. 따라서, 인밸리드 데이터를 가진 IC 카드와는 어떠한 통신 절차도 실행되지 않을 수 있다.
인밸리드 데이터를 가진 IC 카드를 재사용하기 위하여 Fujisaki는 IC 카드의 유효성 플래그를 밸리드로 전환하는 종료 명령을 송신하는 과정을 포함하는 정정 메커니즘을 개시한다.
US-A-5,636,695(Feiken)는 IC 카드와 단말기사이의 통신에 대한 인터럽트에 대하여 유사한 메커니즘을 개시한다. Feiken은 또한 트랜잭션이 카드상에서 성공적으로 완료되었는지를 나타내는 유효성 플래그를 사용한다. 더욱이, Feiken은 유효성 플래그가 그것의 밸리드 상태로 리셋될뿐만 아니라, 카드의 데이터 내용이 정확한 값을 가지도록 한 후에, 완성되지 않은 밸런스 절차를 정확히 완료하기 위한 메커니즘을 개시한다.
본 발명의 목적은 예를 들면, 전력 인터럽션으로 인한 두 통신 장치 중 하나 또는 그 이상의 고장으로부터 보호함으로써, 두 통신 장치간의 통신의 신뢰성을 증가시키는 것이다. 이러한 통신 장치는 스마트 카드 그리고 단말기일 수 있으나, 네트워크를 통하여 서로간에 통신을 실행할 수 있는 예를 들면 컴퓨터와 같은 알려진 형태 중에서 택일가능하다.
이러한 목적을 달성하기 위하여, 본 발명의 제1 실시예는 적어도 제1 장치와 제2 장치간의 통신 방법을 청구한다;
제1 프로세서, 제1 메모리 수단, 제1 입/출력 수단을 포함하며, 상기 제1 메모리 수단 및 제1 입/출력 수단은 상기 제1 프로세서에 결합되어 있는 상기 제1 장치;
제2 프로세서, 제2 메모리 수단, 제2 입/출력 수단을 포함하며, 상기 제2 메 모리 수단 및 제2 입/출력 수단은 상기 제2 프로세서에 결합되어 있는 상기 제2 장치;
상기 제1 프로세서에 의해 적어도 다음 단계를 실행하는 방법을 포함하고:
a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제1 상태 데이터를 설정하는 단계;
c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
상기 제2 프로세서에 의하여 다음 단계가 후행하며:
d. 상기 제1 통신 프리미티브를 수신하는 단계;
e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단에 상기 제1 부가 데이터를 저장하는 단계;
f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계;
g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
h. 상기 제2 프로그램에 따라, 상기 제1 장치로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계
상기 제1 프로세서에 의해 실행되는 다음 단계가 후행한다:
i. 상기 제2 통신 프리미티브를 수신하는 단계;
j. 상기 제2 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계;
k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나, 상기 복구 프로세스를 시작하고, 가지면, 계속되는 단계;
l. 상기 제1 프로그램에 따라, 제3 프로그램 단계를 실행하는 단계.
따라서, 보호되는 장치에 필수적으로 프라이비트한 부가 데이터를 구비한 장치간의 통상적인 통신을 강화함으로써, 예를 들면 전력 손실과 같은 장치의 고장에 대한 보호가 이루어진다. 보호되는 장치는 자체 내부 상태와 관련된 부가 데이터를 송신함으로써, 다른 장치를 거쳐 자기 자신과 통신한다.
장치의 상태는 다른 장치로부터 응답을 수신한 후에, 프로그램에서 단계 (l) 다음의 프로그램이 계속될 수 있도록, 상기 장치에서 실행되는 프로그램에 필요한 모든 데이터를 포함한다. 상태 데이터 중 일부는 "지속 상태 데이터", 즉 예를 들면 EEPROM과 같은 비 휘발성 메모리를 사용함으로써, 프로토콜의 종료 후 가능한 연장되는 기간까지 장치에 의해 저장되는 데이터로 칭해질 수 있다. 더욱이, 장치에서 실행되는 프로그램에서 선택적 다음 프로그램 단계에 관계된 "휘발성 상태 데이터"가 있다. 어떤 선택이 이루어지는가는 다른 장치로부터 수신한 명령에 의해 결정된다. 프로그램은 다른 장치로부터 명령을 수신한 후, 적정한 시점에서 프로그램을 계속하기 위하여 이러한 상태 데이터를 저장할 필요가 있다. 일반적으로 이러한 상태 데이터는 휘발성 메모리에 저장된다. 따라서, 이러한 상태 데이터는 전력 인터럽션이후에는 손실될 수 있다. 정전은 비접촉 카드가 사용될 때, 특히 발생될 수 있다.
제2 장치는 제1 장치의 통신 프리미티브를 수신한 후, 통신 프리미티브로부터 제1 부가 데이터를 추출하고, 자기 자신의 메모리에 그것을 저장한다. 자기 자신의 메모리에서 다음 프로그램 단계를 수행한 후, 제2 장치는 제1 장치로 송신할 통신 프리미티브에 제2 부가 데이터를 추가한다. 이러한 제2 부가 데이터는 제1 부가 데이터와 미리 설정된 관련성을 가진다. 제1 장치는 다음 메시지에서 제2 장치에 의해 송신되는 제2 부가 데이터를 수신할 것이다.
제2 및 제1 부가 데이터간의 관련성은 단순할 수 있다: 그들은 서로 동일할 수 있다. 그리고, 제1 장치는 제2 장치로부터 변하지 않은 제1 부가 데이터를 수신한다. 그러나, 통신 대역폭의 효율적인 사용을 위해, 제1 부가 데이터 또는 그것의 일부가 다른 실시예에 의할 때, 제2 장치에 의해서 단계 f에서 상술한 처리 단계의 입력으로 부가적으로 사용될 수 있다. 더욱이, 제2 장치는 제1 부가 데이터를 저장하는 것에 더하여, 제2 통신 프리미티브에서 제1 장치로 송신되고 있는 처리된 제2 부가 데이터에서 이러한 처리 결과가 제공된다면, 예를 들면, 먼저 부가 데이터에 대하여 제2 장치에서 수행된 프로세싱을 반대로 수행함으로써, 제1 장치가 제1 상태 데이터의 제1 관련성을 확인할 수 있으므로, 제1 부가 데이터 자체를 처리할 수도 있다. 제1 부가 데이터로의 수정은 이 방식에서, 제2 장치로부터 제1 장치로 여분의 정보를 전달할 수 있으며, 가능하게는 또한 통신 대역폭의 더 많은 효율적 사용으로 귀결된다.
부가 데이터는 제1 장치가 제1 장치에서 실행되는 프로그램이 적절한 단계에 서 대기하고 있는지 여부를 판단하는데 사용된다. 이것은 수신된 부가 데이터가 상태 데이터와 미리 설정된 관련성을 가지는지 여부를 체크함으로써 이루어진다. 상태 데이터는 제1 장치의 메모리 중 비 휘발성 메모리에 자체로 저장되며, 심지어 정전후에도 계속 남아있을 것이다. 택일적으로, 메모리 중 비 휘발성 메모리는 유도될 수 있는 이러한 상태 데이터로부터 데이터를 저장할 수 있으며, 이하, 상세히 설명될 것이다.
바람직하게는, 상기 제1 실시예는 상기 단계 l 다음에 다음 단계가 후행하도록 구성된다:
m. 상기 제3 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
n. 상기 제1 프로그램에 따라, 상기 제2 장치로 상기 제1 및 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계.
후자의 실시예에서, 제3 통신 프리미티브는 제2 상태 데이터와 미리 설정된 관성을 가지는 부가 데이터뿐만 아니라, 제1 상태 데이터를 포함한다. 보호되는 장치의 프로그램에서 모든 선행 프로그램의 모든 선행 상태 데이터와 미리 설정된 관련성을 가지는 임의의 부가 데이터를 제공함으로써, 장치는 정전후에 전체 프로그램을 복구할 수 있을 것이다.
같은 종류의 보호가 제2 장치에서도 획득될 수 있다. 따라서, 제2 실시예에 따른 본 발명은 적어도 제1 장치와 제2 장치간의 통신 방법에 관한 것이다;
제1 프로세서, 제1 메모리 수단, 제1 입/출력 수단을 포함하며, 상기 제1 메모리 수단 및 제1 입/출력 수단은 상기 제1 프로세서에 결합되어 있는 상기 제1 장치;
제2 프로세서, 제2 메모리 수단, 제2 입/출력 수단을 포함하며, 상기 제2 메모리 수단 및 제2 입/출력 수단은 상기 제2 프로세서에 결합되어 있는 상기 제2 장치;
상기 제1 프로세서에서 적어도 다음 단계를 실행하는 방법을 포함하고:
a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계
b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제1 상태 데이터를 설정하는 단계;
c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
상기 제2 프로세서에 의하여 다음 단계가 후행하며:
d. 상기 제1 통신 프리미티브를 수신하는 단계;
e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단에 상기 제1 부가 데이터를 저장하는 단계;
f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하고, 상기 제2 프로그램 단계를 실행한 후, 상기 제2 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
h. 상기 제2 프로그램에 따라, 상기 제1 장치로 상기 제1 부가 데이터와 미 리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브 및 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계;
상기 제1 프로세서에 의해 실행되는 다음 단계가 후행하며:
i. 상기 제2 통신 프리미티브를 수신하는 단계;
j. 상기 제2 및 제3 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 메모리 수단에 상기 제3 부가 데이터를 저장하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계
k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지시키거나, 상기 복구 프로세스를 시작하고, 가지면, 계속되는 단계;
l. 상기 제1 프로그램에 따라 제3 프로그램 단계를 실행하고, 상기 제3 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제3 상태 데이터를 설정하는 단계;
m. 상기 제1 메모리 수단으로부터 상기 제3 부가 데이터를 판독하는 단계;
상기 제1 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제3 부가 데이터와 미리 설정된 제4 관련성을 가진 제4 부가 데이터와 상기 제3 상태 데이터와 미리 설정된 제5 관련성을 가지는 제5 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계;
상기 제2 프로세서(16;30)에 의해 다음 단계가 후행하며:
o. 상기 제3 통신 프리미티브를 수신하는 단계;
p. 상기 제3 통신 프리미티브에서 상기 제4 및 제5 부가 데이터를 추출하고, 상기 제2 메모리 수단에 상기 제5 부가 데이터를 저장하고, 상기 제4 부가 데이터에서 상기 제3 부가 데이터를 유도하는 단계;
q. 상기 유도된 제3 부가 데이터가 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나, 상기 복구 프로세스를 시작하고, 가지면, 계속되는 단계;
r. 상기 제2 프로그램에 따라, 제4 프로그램 단계를 실행하는 단계.
본 발명은 또한 두 장치간의 통신에 국한되지 않는 사상에서 분산 절차에 관한 것이다. 본 발명은 또한 하나의 프로세서가 통신 프리미티브를 이러한 통신 프리미티브를 저장하는 공유 데이터 저장 장치 또는 데이터 전송 수단에 송신하는 상태에 관한 것이다. 복수의 다른 장치 중 하나는 중앙 메모리로부터 이러한 통신 프리미티브를 판독할 수 있다. 물론 중앙 메모리로부터 통신 프리미티브를 판독한 후, 통신 프리미티브가 판독되고 처리되었다는 것을 다른 장치로 알리는 메커니즘이 있어야 한다. 이러한 메커니즘은 판독 후에 중앙 메모리로부터 통신 프리미티브를 제거함으로써 이루어질 수 있다. 그러나, 택일적으로 통신 프리미티브는 중앙 메모리에 저장된 채로 존재할 수 있다. 그리고, 지표는 다른 장치에 통신 프리미티브는 하나의 장치에 의해 판독되었으며, 다른 장치에 의해 처리될 필요가 없음을 알리기 위하여, 통신 프리미티브에 부가될 수 있다.
부가 데이터와 상태 데이터의 관련성은 암호화 방법을 적용하는 방법, 암호 해쉬 함수를 적용하는 방법, 일회용 패드 함수를 가진 암호화를 적용하는 방법 중에서 단독 또는 조합하여 사용하는 하나 또는 그 이상의 방법에 근거할 수 있다.
본 발명은 또한 본 발명의 제1 실시예에 따른 방법을 수행할 수 있는 종속항 제10항에 청구된 시스템에 관한 것이다.
본 발명은 또한 본 발명의 제2 실시예에 따른 방법을 수행할 수 있는 종속항 제11항에 청구된 시스템에 관한 것이다.
본 발명은 또한, 본 발명에 따른 방법을 수행하기 위하여 서로간의 통신하도록 설정된 장치에 관한 것이다. 따라서, 본 발명은 프로세서, 메모리 수단, 입/출력 수단을 포함하며, 상기 메모리 수단 및 입/출력 수단은 상기 프로세서에 결합되어 있는 상기 장치에 관한 것이다;
상기 프로세서에 의하여 다음 단계가 실행되도록 설정되며:
프로세서(6)에 의하여 다음 단계가 실행되도록 설정되며:
a. 미리 설정된 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
b. 상기 제1 프로그램 단계를 실행한 후, 상기 프로그램에 관련된 제1 상태 데이터를 설정하는 단계;
c. 상기 프로그램에 따라, 상기 제1 상태 데이터와 미리 설정된 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
d. 다른 장치로부터 제2 통신 프리미티브를 수신하는 단계;
e. 상기 제2 통신 프리미티브로부터 상기 제2 부가 데이터를 추출하고, 상기 제2 부가 데이터로부터 상기 제1 부가 데이터를 유도하는 단계;
f. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나, 상기 복구 프로세스를 시작하고, 가지면, 계속되는 단계;
g. 상기 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계.
상기 장치는 스마트 카드일 수 있다.
바람직하게는, 프로세서 전력의 인터럽션 및 복구 후, 상기 프로세서에 의하여 다음 단계가 실행되도록 설정된다:
상기 제1 프로그램에 의해 실행된 마지막 프로그램 단계에 따라 설정된 마지막 상태 데이터와 미리 설정된 관련성을 가지는 적어도 하나의 통신 프리미티브를 다른 장치 또는 중앙 메모리로부터 수신하는 단계;
상기 마지막 프로그램 단계 다음에 오는 다른 프로그램 단계를 가진 상기 제1 프로그램의 실행을 재개하는 단계.
본 발명은 또한 스마트 카드와 통신하도록 설정된 단말기일 수 있는 장치에 관한 것이며, 프로세서, 메모리 수단, 입/출력 수단을 포함하며, 상기 메모리 수단 및 입/출력 수단은 상기 프로세서에 결합되어 있는 상기 장치에 관한 것이다;
상기 프로세서에 의하여 다음 단계가 수행되도록 설정되며:
a. 다른 장치로부터 제1 통신 프리미티브를 수신하는 단계;
b. 상기 다른 장치에서 실행되는 제1 프로그램에 관련된 상태 데이터와 미리 설정된 제1 관련성을 가진 제1 부가 데이터를 구성하도록, 제1 통신 프리미티브를 인식하는 단계;
c. 상기 제1 통신 프리미티브로부터 상기 부가 데이터를 추출하고, 상기 메모리 수단에 상기 부가 데이터를 저장하는 단계;
d. 프로그램에 따라 프로그램 단계를 실행하는 단계;
e. 상기 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
f. 상기 제2 프로그램에 따라, 상기 다른 장치로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함한 제2 통신 프리미티브를 송신하는 단계.
본 발명은 단지 설명의 목적으로 의도되어진 몇 개의 도면을 참조하여 설명될 것이다. 본 발명은 오직 첨부되어진 청구항에 의해서만 그 범위가 제한되어진다.
도 1은 종래 기술에 따른 상호간에 통신할 수 있도록 배열되어진 비접촉 스마트 카드와 단말기(terminal)의 구성도이다.
도 2는 본 발명의 다른 실시예를 설명하기 위하여 통신망을 통해 상호간에 통신할 수 있는 세 개의 장치들을 나타낸다.
도 3a와 도 3b는 일 실시예에 따른 발명의 방법에 대한 순서도이다.
도 4는 상태 데이터를 생성하기 위한 메카니즘을 나타낸다.
도 1은 메모리(4)와 코일(8)에 결합되어진 마이크로프로세서(6)를 포함하는 스마트 카드(2)를 나타낸다.
코일(8)은 당업자에게 일반적으로 알려져 있는 바와 같이 단말기(10)와 같은 다른 장치와의 전자기 에너지(electromagnetic energy)를 통한 비접촉 통신을 위한 것이다. 바람직하게는, 마이크로프로세서(6)를 동작시키기 위한 전력도 예를 들어 단말기(10)와 같은 다른 장치로부터 코일(8)을 통해 제공되어진다. 어떻게 이러한 것이 수행될 수 있는지는 당업자에게 또한 알려져 있으며, 이에 대해 여기서는 더 이상 설명의 필요가 없을 것이다. 물론, 코일(8)은 다른 종류의 인터페이스 수단 또는 당해 기술분야에서 알려져 있는 입/출력 수단으로 대체될 수 있을 것이다. 코일(8)은 예를 들어 전기적 접촉이 단말기(10)에 의해 만들어질 수 있는 수단에 의해 전기적 전도 패드(electrically conducting pads)에 의해 대체되어질 수 있다.
메모리(4)는 하나의 블록 형태로 도시되어있다. 그러나, 메모리(4)는 일반적으로 RAM(Random Access Memory), ROM(Read Only Memory), EEPROM(Electrically Erasable Programmable Read Only Memory)을 포함할 것이다. 이러한 형태의 메모리들이 당업자들에게 알려져 있다. 만일 필요하다면, 다른 메모리 유형들이 스마트 카드(2)에 부가되어질 수도 있다. EEPROM은 카드(2) 자체의 정보를 비휘발성(non-volatile)의 형태(즉, 정전 이후의 경우조차 EEPROM내에 그 정보가 남아있는 형태)로 저장하기 위하여 마이크로프로세서에 의해 사용되어질 것이다.
단말기(10)는 코일(14)을 포함한다. 코일(14)은 스마트 카드(2)의 dc 코일(8)을 통해 스마트 카드(2)와 통신하기 위해 단말기(10)에 의해 사용되어진다. 당업자가 알고 있는 바와 같이, 전원과 데이터 모두 코일(14)로부터 스마트 카드(2)로 전송되어질 것이다. 물론, 스마트 카드(2)가 코일(8)이 아닌 다른 형태의 입/출력 수단을 가지고 있다면, 단말기(10)는 다른 적합한 형태의 입/출력 수단을 구비하여야 할 필요가 있을 것이다. 그러므로, 코일(14)은 그 기술을 통해 알려진 다른 형태의 입/출력 수단에 의해 대체되어질 수 있으며, 전기적 전도 접촉을 생성하기 위한 커넥터를 예로 들 수 있다.
단말기(10)의 프로세서(16)는 또한 메모리(18), 디스플레이(22) 및 키보드(20)와 연결된다. 디스플레이(22)는 당해 기술분야에서 알려진 어떤 형태의 것일 수 있으며, 모니터 또는 액정 화면(LCD display)를 예로 들 수 있다. 키보드(20)는 터치 스크린 또는 당해 기술분야에서 알려진 어떤 형태의 입력 수단처럼 적절한 데이터의 입력 가능성을 사용자에게 제공하기 위한 다른 어떤 형태의 입력 수단으로 대체될 수 있다. 키보드(20) 또는 이와 상응하는 수단, 및 디스플레이(22)는 존재하지 않을 수도 있다.
바람직하게는, 프로세서(16)는 통신선(17)을 통해 다른 원격지 프로세서들(도시되지 않음)과 결합되어질 수 있다. 이 경우, 원격지 프로세서(들)는 스마트 카드(2)와 통신 프로토콜의 일부를 수행할 수 있다. 예를 들어, 이는 단말기(10)와 스마트 카드(2)간의 트랜잭션이 원격지의 장치에 의해 유지되어지는 계정에 관한 직불 또는 신용 트랜잭션(debiting or crediting transaction)과 관계되는 경우에 필요하다.
메모리(18)는 하나의 블록으로 도시되었다. 그러나, 실질적으로 메모리(18) 는 가능한 하나 이상의 RAM, ROM, EEPROM 및 하드디스크의 메모리 유형을 포함하는 여러 유형의 메모리를 포함할 것이다. 스마트 카드(2)에서, 비활성 메모리 유형은 실행 프로그램들과 장치의 의도된 기능을 위해 요청되는 다른 데이터들을 저장한다. 일반적으로, 적어도 작업 메모리와 비활성 메모리 영역은 프로그램들을 실행하는 동안 장치에 의한 독점적 사용을 위한 것이다.
일반적으로, 단말기(10)와 스마트 카드(2)간의 통신은 영구적이거나 고정된 것이 아니며, 임의의 편리한 시점에서 (재)초기화되어질 수 있다. 그러한 경우가 스마트 카드들과 단말기들간의 통신을 위해서는 일반적인 것이다. 그러나, 그런 통신은 인터넷 같은 데이터 네트워크를 통해 컴퓨터들 상호간의 통신인 클라이언트-서버 관계에서도 발생된다. 그러므로, 본 발명은 스마트 카드를 이용하여 통신하는 스마트 카드와 단말기에 제한되는 것이 아니라 상호간에 통신하기 위해 준비되어진 다른 장치에서도 적용되어질 수 있다. 장치들간의 데이터 통신은 "패키지(packages)", "메시지(message)", 또는 "통신 프리미티브(communication primitives)"라고 불리워지는 데이터 단위의 교환으로 일어나는 것이 일반적이다. 그러므로, 본 발명의 문맥 내에서 통신 프리미티브(communication primitives)는 예를 들어 명령(instruction), 명령문(statement) 및/또는 데이터를 포함하는 어떤 형태의 메시지이다. 이러한 통신 프리미티브는 당업자에게 알려진 바와 같이 헤더(header), 페이로드(payload)를 포함한다.
본 발명은 통신망을 통해 상호간에 통신하기 위해 구비된 셋 또는 그 이상의 장치들에게 또한 적용할 수 있다. 도 2는 이러한 경우를 개략적으로 나타낸다. 장 치(2)와 장치(10)는 도 1에서 언급한 유형의 장치일 수 있다.
장치(26)는 다른 장치와 통신하기 위한 것으로, 적어도 인터페이스(28) 및 메모리(32)와 결합된 프로세서(30)를 포함한다. 인터페이스(28)는 프로세서(30)와 통신망(24)간에 입/출력 수단으로 기능한다. 통신망(24)은 예를 들어, PSTN(Public Switched Telephone Network) 또는 다른 형태의 통신망이거나, WAN(Wide Area Network), LAN(Local Area Network) 또는 다른 형태의 통신망일 수 있다. 통신망(24)은 또한 인터넷일 수도 있다. 인터페이스(28)는 당업자에게 알려진 어떤 형태의 것일 수 있다.
메모리(32)는 하나의 블록인 것처럼 도시되어있다. 그러나, 실질적으로 메모리(32)는 당업자에게 알려진 바와 같이 단일 형태 또는 조합 형태로 RAM, ROM, EEPROM, 또는 다른 형태의 메모리를 포함할 것이다. 메모리들은 하나 이상의 물리적 유니트(physical unit)속에서 구현될 것이다.
이하에서 설명되어지는 바와 같이, 본 발명의 하나의 특별한 실시예를 설명하기 위해 데이터를 저장하거나 추출하기 위해 통신망(24)을 통해 장치(2), 장치(10), 장치(26) 중 어느 것에 의해 접속되어질 수 있는 중앙 메모리(34)가 구비될 수 있다. 중앙 메모리(34)는 당업자에게 알려진 바와 같이 저장, 판독 및 삭제 행위를 수행하기 위한 약간의 지능(도시되지 않음)을 구비될 수 있다. 그러므로, 중앙 메모리(34)는 공유 데이터 저장 또는 데이터 전송 수단의 부분일 수 있다.
장치들(2, 10, 26)을 연결한 통신망(24)은 많은 장치가 동시에 통신망을 사 용할 수 있다는 개념에서 의사 프라이비트 방식(in a pseudo private fashion)으로 통신을 수행하기 위한 주지의 통신망-할당 절차를 이용함으로써 공공연한 접근이 가능할 수 있다.
통신망을 공유하는 것은 통신망을 통해 접속된 어떠한 다른 장치에 의한 데이터 통신의 공유를 가능하게 한다. 그러므로, 공유된 통신망을 사용할 때 송수신된 데이터와 통신 패턴(pattern of communication)의 프라이버시(privacy)는 사실상 존재하지 않는다. 그러므로, 만약 필요하다면 장치 사용자의 프라이버시는 주로 암호문(cryptography)을 포함하는 다른 수단에 의해 제공되어져야 한다. 또 한편으로는, 공유된 통신망에 접속된 특정 장치에 의해 통신된 데이터의 공유는 단일 논리 장치로서 개별적 통신 협력의 목적으로 다수의 물리적으로 독립된 장치에 의해 실행되어지기 위한 미디어(media)에 접속된 장치간의 통신을 가능하게 한다.
장치 또는 동등한 협력 장치의 집합은 통신 과정에서 일반적으로 "클라이언트"라 불리워지는 개시자(initiator) 또는 일반적으로 "서버"라 불리워지는 응답자(respondent)의 역할을 수행한다. 결과적으로 메시지들의 특정 순서는 서버에 의해 클라이언트로 전달되어지는 "서비스(service)"를 제공하기 위하여 클라이언트와 서버간에 교환되어질 것이다. 도 1에 도시된 구성에서 스마트 카드(2)가 서버인 반면에 단말기(10)는 클라이언트이다.
통신 장치의 시스템은 공유 메모리를 통해 통신하는 하나의 컴퓨터상에서 식별 가능한 프로세스 또는 제어 쓰레드들(threads of control)로서 구현된 장치들을 또한 포함할 수 있다.
임의의 유형 또는 구조를 가지는 이러한 장치들간에 데이터 통신은 클라이턴트로부터 전송되는 초기 메시지를 가지고 시작되고, 장치들간에 교환되는 메시지들의 순서를 가지는 규칙적인 방법으로 일반적으로 수행된다. 통신의 목적을 위해, 메시지나 통신 프리미티브는 메시지들의 규칙화된 순서내에서 적절함으로써 수신단(receiving party)에 의해 식별 가능하다.
수신된 각 메시지나 통신 프리미티브는 통신 순서의 목적을 향해 한 단계 앞으로 진행하기 위해 수신 장치에 의해 요청되어진 정보를 운반한다. 그 목적 때문에 수신 장치는 순서상 적합한 것으로서 수신된 통신 프리미티브를 인식하기 위하여, 또한 만일 적절하다면 통신 프리미티브속에서 데이터를 번역해 내기 위하여 일반적으로 "상태 엔진(state engine)"이라고 알려져 있는 약간의 형식 기능들을 포함한다.
일반적으로 상태 엔진은 장치의 메모리내에 저장된 실행 가능한 코드들과 설명 데이터들을 포함하며, 그 조합은 다음과 같은 사항을 설명한다.
(1) 어떤 메시지가 예상되어지는가;
(2) 메시지내에 포함되어진 임의의 데이터를 처리하기 위한 방법; 및
(3) 어떤 메시지가 응답으로서 보내질 필요가 있는가.
특히 수신 장치의 작업 메모리는 설명 데이터를 포함할 수 있으며, 설명 데이터는 메시지의 규칙적인 순서내에서 만들어진 경과를 반영하기 위해 임의의 메시지 전체가 다른 장치로 전송되기 전에 즉시 갱신되어질 수 있다. 수신 장치의 작업 메모리는 수신된 메시지 데이터를 처리한 결과(예를 들어, 메시지 내에 수신된 특 정 데이터의 수정 또는 저장)도 포함할 수 있다. 작업 메모리 내의 이러한 설명 데이터는 일반적으로 "상태 데이터(state data)" 또는 간략하게 "상태(state)"라고 불리어진다.
규칙적으로 통신 프리미티브를 고환함으로써 본 발명에 따른 모든 논리 장치들(2, 10, 26) 각각은 통신 상태를 정의하는 데이터를 메모리(4, 18, 32)에 유지한다.
상태 데이터는 일반적으로 휘발성 메모리(volatile memory)내에 저장될 것이다. 따라서, 정전(power failure)이 발생한 후에는 휘발성 메모리내의 그 상태 데이터가 여전히 유효할 것인지 여부는 명확하지 않다. 이는 상태 데이터가 부분적으로 또는 전체적으로 소실될 수 있다는 것이다. 그 장치가 다른 장치의 다음번 통신 프리미티브를 수신한 후에도 여전히 작업 메모리내의 상태 데이터가 유효할 것을 명확하게 하기 위하여, 본 발명은 이하에서 설명되어질 특별한 방법을 제안한다. 또한, 그 방법이 정전 이외의 다른 원인에 의한 상태 데이터의 부분적 또는 전체적 손실을 막을 수 있음을 이해할 수 있을 것이다.
본 발명에 따르면, 상술한 시스템 및 방법에서 적어도 하나의 통신 장치는 다른 장치로 전송되는 적어도 하나의 통신 프리미티브내에 부가 데이터가 포함되도록 한다. 이 부가 데이터는 작업 메모리에 저장된 데이터에 의해 일반적으로 설명되어지는 내부 상태의 표시이다. 이것은 도 3a 및 도 3b를 참조하여 상세히 설명하기로 한다. 도 3a와 도 3b에서 본 발명에 따른 통신 방법은 두 개의 장치들, 예를 들어, 장치 A(서버, 예를 들어, 스마트 카드(2)) 및 장치 B(클라이언트, 예를 들 어, 단말기(10)) 사이에서 설명되어진다.
장치 A는 일반적으로 수신된 메시지 및 당해 메시지에 포함된 데이터와 관련된 상태 데이터를 유지해야 하는 서버이다. 보다 명확히 말하면, 통신 프리미티브의 계속적인 교환 과정에서 클라이언트에 의해 획득된 인증 또는 확정된 임시 암호키 같은 안전 상태가 서버 상태 데이터의 일부분일 수 있다.
장치 B는 일반적으로 클라이언트이고, 부가 데이터를 포함하는 통신 프리미티브를 제어하기 위한 특별한 처리 명령을 일반적으로 포함한다. 특히, 수신된 통신 프리미티브를 처리하는 수단으로서, 클라이언트는 이하에서 설명될 통신 프리미티브로부터 부가 데이터를 추출할 것이다.
통신 절차(communication process)는 장치 A와 미리 지정된 프로토콜을 실행하기 위하여 장치 A로 통신 요청을 전송하는 장치 B로부터 개시된다(단계 200).
단계 100에서, 장치 A는 장치 B로부터 통신 요청을 수신하고, 통신을 시작한다.
다음 단계, 단계 102,는 장치 B로부터 수신한 통신 요청에 대한 응답으로 미리 지정된 프로그램에 따른 첫 번째 프로그램 단계를 실행하기 위한 것이다.
첫 번째 프로그램 단계가 수행된 후에, 장치 A는 자체 작업 메모리에 프로그램내에서 프로그램이 장치 B의 추가 데이터 및/또는 명령을 기다려야 하는 지점과 관련된 상태 데이터 또는 상태 데이터가 유도되어질 수 있는 데이터를 저장한다(단계 104).
단계 106에서, 장치 B로부터 적절한 입력을 수신하기 위해, 장치 A는 그 자 신의 상태 데이터와 미리 지정된 관련성을 가지는 부가 데이터를 포함하는 통신 프리미티브를 장치 B로 전송한다.
단계 202에서 장치 B는 장치 A로부터 메시지를 수신한다.
단계 204에서 장치 B는 수신된 메시지가 절차 명령들(process instructions)의 종결자(end)를 포함하고 있는지 여부를 검사한다. 만일 당해 메시지가 절차 명령들의 종결자를 포함하고 있다면, 장치 B는 자체 프로그램의 종결을 진행한다(단계 218), 그러나, 만약 그렇지 않다면 장치 B는 수신한 메시지로부터 장치 A의 상태 데이터와 관련된 부가 데이터를 추출하는 단계 206을 계속 진행한다.
단계 208에서 장치 B는 자체 메모리(18)에 추출된 부가 데이터를 저장하며, 이러한 부가 데이터는 별도의 절차(process)없이 저장함이 바람직하다.
단계 210에서 장치 B는 자체 프로그램에 따른 다음 프로그램 단계를 실행한다.
단계 212에서 장치 B는 자체 메모리(18)에 자체 절차와 관련된 상태 데이터를 저장한다.
단계 214에서 장치 B는 단계 208에서 메모리(18)에 저장되었던 장치 A의 상태 데이터와 관련된 부가 데이터를 메모리(18)로부터 판독한다.
단계 216에서 장치 B는 적어도 마지막의 부가 데이터를 포함하는 통신 프리미티브를 장치 A로 전송한다. 이러한 통신 프리미티브는 장치 A에 의해 수행되어질 명령들(instructions)을 더 포함할 수 있다.
단계 217에서 장치 B는 절차가 마지막에 이르렀는지 여부를 검사한다. 만일 절차의 마지막에 이르렀다면 단계 218로 진행(절차의 종료)한다. 그러나, 그렇지 않은 경우에는 장치 A의 추가 메시지를 기다린다.
단계 108에서, 장치 A는 장치 B로부터 통신 프리미티브를 수신한다.
단계 110에서 장치 A는 수신한 통신 프리미티브로부터 장치 A의 상태 데이터와 관련된 부가 데이터를 추출한다.
단계 112에서, 장치 A는 추출된 부가 데이터가 옳은 것인지 여부를 검사한다. 이것은 여러 가지 방법에 의해 수행될 수 있으며, 예를 들어, 장치 A가 메모리에 최종 유효 상태 데이터(the last valid state data)를 저장했을 때, 저장된 데이터를 이용하여 추출된 부가 데이터와 동일한지 여부를 검사하는 방법으로 쉽게 비교할 수 있다. 선택적으로, 장치 A는 최종 유효 상태 데이터가 유일하게 추출될 수 있도록 하는 데이터를 저장할 수 있다. 하나의 실시예가 도 4를 참조하여 이하에서 설명되어질 것이다. 그리고, 장치 A는 저장된 데이터로부터 최종 유효 상태 데이터를 유도한 후, 추출된 부가 데이터를 이용한 비교가 수행될 수 있다.
만일 당해 검사가 긍정적이라는 결과를 가진다면, 장치 A는 실행중인 프로그램이 계속 실행되도록 할 수 있다. 그리고, 단계 114를 경유하여 단계 120이 계속된다. 그러나, 만일 단계 112의 검사 결과가 긍정적인 결과를 제공하지 않는 것으로 확정된다면, 어딘가에 에러가 발생한다. 이러한 에러는 다른 환경이 원인이 되어질 수 있다. 예를 들어, 장치 A의 정전이 메모리(8)에 저장된 상태 데이터의 부분적 또는 전체적인 손실의 결과를 야기할 수 있다. 수신된 부가 데이터가 우연히 또는 고의로 변경되어진 것이 또 다른 원인이 될 수 있다. 그 원인이 무엇이던간에 검사 절차가 부정적인 결과를 가지는 경우에는 장치 A의 프로그램은 정상적으로 그 실행을 계속할 수 없다. 이제, 두 가지 다른 단계가 마련된다. 에러가 발생했다는 경고 메시지를 통해 장치 B에 알려진 후에(단계 116), 장치 A는 복구 절차(recovery process)를 시작(단계 118)하거나 또는 프로그램의 종료로 진행(도 3b에는 도시되지 않음)한다
복구 절차(단계 118)는 장치 B로부터 추가적인 입력을 기다리기 전에 생성된 최종 프로그램 단계 시점에서 자체 프로그램을 계속 실행시키기 위해 모든 필요한 상태 데이터를 유도할 수 있도록 장치 A를 위한 충분하고 믿을 수 있는 정보를 장치 B로부터 수신된 부가 데이터가 포함하고 있으면 가능하다. 올바른 복구 절차 후에(이는 단계 119에서 검사되어짐), 프로그램은 단계 120을 계속한다. 만일 복구절차가 성공적이지 않은 경우에는, 그 목적에 부합하는 메시지가 생성될 수 있고, 당해 메시지는 장치 B로 전송된다(단계 121). 그리고 프로그램은 종료한다(단계 126).
단계 120에서, 장치 A는 자체 프로그램에 따른 다음의 프로그램 단계를 수행한다.
단계 122에서, 다시 한번, 다음의 프로그램 단계를 수행한 후, 장치 A는 메모리(8)에 그 시간까지의 상태 데이터는 유효한 것으로 저장하거나, 상태 데이터로부터 유도될 수 있는 데이터를 저장한다.
단계 124에 표시된 바와 같이, 만일 프로그램이 종료될 수 있는 것으로 확정되면 단계 126으로 진행한다. 그러나, 그렇지 않은 경우에는 본 발명에 따른 새로 운 주기(cycle)를 시작하기 위하여 단계 106에서 계속된다. 단계 126이 수행된 후, 프로그램은 단계 100에서 계속될 수도 있다.
단계 118의 복구 단계 동안, 장치 A는 장치 B로부터 수신된 부가 데이터가 만약 어떠한 에러도 발생하지 않았다면 있었을 자체 프로그램상의 특정 시점의 상태와 관련되어질 수 있는지 여부를 검사한다. 대부분의 경우, 이것은 만일 장치 A가 자체 비휘발성 메모리 내에 약간의 관련 데이터를 저장하고 있는 경우라면 가능할 수 있으며, 이러한 경우에는 어떠한 정전 이후라도 당해 데이터가 여전히 유지될 것이다. 비휘발성 메모리 내의 이러한 관련 데이터는 거대할 필요는 없다. 데이터의 대부분은 메모리(8)의 휘발성 메모리에 저장되어질 것이며, 다음번 통신 프리미티브(예를 들어, 부가 데이터내에 포함되어진 통신 프리미티브)내에서 장치 B로부터 돌려받을 수 있다.
복구 절차는 장치 A가 언제라도 부가 데이터를 생성할 때 용이하게 실행되어질 수 있으며, 부가 데이터는 실행중인 프로그램에서 최종 상태 데이터뿐 아니라 모든 종전의 상태 데이터와 관련성을 가진다. 그때, 장치 A는 어떤 프로그램의 단계가 벌써 실행되었는지, 따라서 어떤 상태들이 벌써 과거에 유도되었는지 용이하게 확정할 수 있다.
본 발명은 장치 A만에 있어 상태 데이터와 미리 지정된 관련성을 가지는 부가 데이터의 생성에 제한되는 것은 아니다. 이는 또한 장치 B에 대해서도 적용할 수 있는 것이다. 게다가 장치 B는 장치 B에서 실행중인 프로그램의 상태 정보와 관련된 부가 정보를 생성하기 위한 선택 항목을 제공받을 수 있다. 장치 B에 의해 생 성된 부가 데이터는 다음번 통신 프리미티브와 함께 장치 A로 전송될 것이며, 장치 A에 의해 특정 통신 프리미티브로부터 추출되어질 것이다. 이러한 명령을 수행한 후에, 장치 A는 장치 B로부터 수신한 부가 데이터와 미리 지정된 관련성을 가지는(예를 들어, 동등하다고 인정되는) 추가적인 부가 데이터를 장치 B로부터 전송되어지는 다음번 통신 프리미티브내에 삽입할 것이다. 그 후, 장치 B는 장치 A와 동일한 보호 등급(protection level)을 가지게 된다.
장치 A와 장치 B 모두를 위해, 생성된 부가 데이터는 장치 A 및 장치 B 각각이 가지는 모든 종전의 상태 데이터와 미리 지정된 관련성을 가질 수 있다.
앞에서 주어진도 3a와 3b에 대한 설명에서, 장치 B에 의해 수신되고 이후에 장치 A로 재전송된 부가 데이터 사이의 간단한 관련성이 가정되었다. 부가 데이터들은 서로 동일할 수 있다. 그래서, 장치 A는 장치 B에 의해 변경되지 않는 부가 데이터를 수신한다. 그러나, 통신 대역의 효율적인 이용에 유익하기 위해, 부가 데이터, 또는 그 일부는, 다른 실시예에서, 장치 B에 의해 단계 210에서 설명한 처리 단계에 입력으로 부가적으로 이용될 수 있다. 더욱이, 만일, 처리된 새로운 부가 데이터가 장치 A로 전송되어, 예를 들면 장치 B에서 부가 데이터에 대해 수행된 프로세싱을 반대로 수행함으로써, 장치 A가 장치 A의 상태 데이터에 대한 관련성을 확인할 수 있다면, 장치 B는 수신된 부가 데이터를 저장하는 것에 더하여 수신된 부가 데이터 자체를 처리할 수 있다 부가 데이터의 변경은 이렇게 추가 정보를 제2 장치에서 제1 장치로 전달할 수 있으며, 될 수 있는 한 통신 대역의 좀 더 효율적인 사용을 초래할 것이다.
본 발명은 도 2에 도시된 분산 환경에도 또한 적용이 가능하다. 즉, 장치 A는 예를 들어 스마트 카드(2)일 수 있다. 그러나, 모든 통신 프리미티브(communication primitive)들을 하나의 장치 B에 직접 통신하는 대신, 장치 A는 실제로 통신 프리미티브들을 중앙 메모리(34)로 전송할 수 있다. 둘 또는 이상의 장치들(10, 26)은 중앙 메모리(34)를 가능한 실행 시간마다 확인하여 중앙 메모리(34)가 처리할 통신 프리미티브를 포함하고 있는지 여부를 확인하도록 설정된다. 하나의 선택은 그러한 장치(10, 26)가 현재 통신 프리미티브를 중앙 메모리(34)로부터 읽어온 후 그 통신 프리미티브를 중앙 메모리(34)에서 제거하는 것이다. 그러므로, 그 통신 프리미티브를 처리하기 위해 다른 장치가 그 통신 프리미티브를 중앙 메모리(34)에서 판독하는 것을 방지할 수 있다.
다른 선택은 중앙 메모리(34)내에서 있는 통신 프리미티브를 판독한 장치가 식별자를, 예를 들면 플래그를 중앙 메모리(34)상의 그 통신 프리미티브에 부가하여 그 통신 프리미티브가 장치들(10, 26) 중 어느 하나에 의해 이미 읽혀졌으며 다른 장치에 의해 더 이상 처리될 필요가 없다는 것을 표시한다. 이후, 중앙 메모리(34)는 모든 통신 프리미티브들을 한 프로토콜 동안 수집할 것이다. 이러한 통신 프리미티브들이 장치 2에서 실행되는 프로그램의 단일 상태 데이터(single state data)에 모두 관련되어 있으면, 정전 또는 다른 오류 후, 중단된 프로세스를 복구하기 위해 장치(2)는 모든 통신 프리미티브들을 중앙 메모리(34)로부터 수집할 수 있다. 물론, 각 통신 프리미티브가 장치(2)의 프로세스의 모든 선행 상태 데이터로부터 모든 관련 데이터를 포함하는 실시예에서, 모든 연속적인 통신 프리미티 브들을 저장할 필요는 없으며 다만 저장된 마지막 통신 프리미티브를 유지할 필요가 있다.
때때로, 전원 중단과 회복 후, 장치(2)는 장치(10)에게 마지막 통신 프리미티브를 전송하라고 단순히 요청할 수 있으며, 장치(2)는 프로그램 구동을 재개할 수 있다.
바람직하게, 통신 프리미티브는 통신 프리미티브들이 장치들(2, 10, 26) 중 어느 하나의 상태 데이터에 관련된 부가 데이터를 포함하고 있음을 식별하기 위한 식별 데이터를 포함한다.
이하에서 설명되겠지만, 부가 데이터와 상태 데이터간의 관련성은 암호화 기술, 암호 해쉬 함수들(일회용 함수들) 및 일방 패드(one-way pad)에 의한 암호화를 이용하는 것에 기초할 수 있다.
부가 데이터와 상태 데이터간의 가장 단순한 관련성은 일대일 관련성으로, 즉, 부가 데이터가 프로그램에 의해 실행된 마지막 프로그램 단계 이후에 유효한 상태 데이터와 동일하다. 그러나, 대부분의 경우, 상태 데이터는 기밀(confidential)이고 관계된 장치만이 알 수 있도록 허용된다. 그러므로, 부가 데이터는 외부에 상태 데이터가 공개되도록 허용되지 않으며, 이 상태 데이터의 개시(discovery)에 대한 보호가 제공되어야 할 필요가 있다.
상태 데이터를 보호하는 하나의 선택은 그 상태 데이터에 관련된 장치에게만 알려진 암호화 키를 이용해 상태 데이터를 암호화하는 것이다. 암호화된 상태 데이터는 이후 통신 프리미티브의 부가 데이터로서 다른 장치(또는 중앙 메모리(34))로 보내진다. 장치는 상태 데이터(또는 그것으로부터 상태 데이터를 직접 유도해낼 수 있는 다른 데이터)를 작업 메모리에 저장한다. 다른 장치의 다음 통신 프리미티브를 수신한 후, 장치는 다른 장치로부터 수신된 부가 데이터가 상태 데이터의 암호화된 형태인지 여부를 확인한다. 이 때문에, 장치는 수신된 부가 데이터를 복호하고 복호된 부가 데이터를 저장된 상태 데이터와 비교한다. 택일적으로, 장치는 저장된 상태 데이터를 암호화하고 결과를 수신된 부가 데이터와 비교할 수 있다.
부가 데이터가 상태 데이터 자체를 포함하는 경우들과 암호화된 상태 데이터를 포함하는 경우들 모두에 있어서, 암호화 해쉬(일회용 함수)를 이용하는 것은 보안성을 더욱 강화시킨다. 그러한 암호화 해쉬는 바람직하게는 암호화 키를 이용하여, 바람직하게는 오직 그 장치에만 알려진 당업자에게 알려진 방법으로 상태 데이터와 관련된 그 장치에 의해 생성된다. 그 해쉬는 부가 데이터가 더해지며, 이를 변경하지 않는다. 그러나, 해쉬는 부가 데이터의 내용에 대해 미리 지정된 관계성을 갖는다. 그러므로, 부가 데이터의 내용이 우연히 또는 고의로 변경되면, 이는 해쉬와 변경된 부가 데이터간의 관련성을 직접 체크함으로써 확인될 수 있다. 그러한 해쉬를 이용함으로써, 장치는, 해쉬와 함께 되돌아온 부가 데이터(returned additional data with hash)를 수신한 즉시, 되돌아온 부가 데이터의 유효성을 체크할 뿐 아니라 만일 자체의 상태 데이터를 부분적 또는 전체적으로 상실하였으면 부가 데이터로부터 상태 데이터를 유도하기 위해 부가 데이터를 이용할 수도 있다. 그렇게 유도된 상태 데이터는 예를 들어, 정전으로 중단된 프로그램을 재개하는데 이용될 수 있다.
편리하게, 암호화 키 또는 해슁 키로 이용되는 암호화 키(cryptographic key)는 예를 들어, 장치가 그것의 최초 통신 프리미티브를 수신한 때 생성된 랜덤(random) 값 또는 의사 랜덤(pseudo random) 값으로부터 유도된다. (의사) 랜덤 값은 수신된 통신 프리미티브의 내용과 관련성을 가질 수도 있다. 장치는 다른 장치로 응답 통신 프리미티브를 전송하기에 앞서 이 (의사) 랜덤 값을 비휘발성 메모리부에 저장한다.
(의사) 랜덤 값은 상태 데이터를 유도하는 값으로 이용될 수 있다. 택일적으로, 그것은 암호화 작업 또는 해슁 작업 또는 양쪽 작업을 위한 암호화 키로 사용될 수 있다. 더욱이, 다른 실시예에서, 암호화 키는 암호화 또는 해슁 프로세스가 이용될 때마다 변경되며, 이는 보안성을 더욱 향상시킨다. 물론, 그 때, 암호화 키가 사용될 때마다 그 값은 메모리의 비휘발성 부분에 저장될 필요가 있다. 연속적인 암호화 키를 생성하는 어떠한 방법도 이용될 수 있다. 예를 들어, 새로운 키가 현재 키와 수신된 통신 프리미티브간의 조합에 의해 또는 특정 방법으로 두 선행 키들을 결합함으로써 생성될 수 있다. 그러나, 일방 (해쉬) 함수들을 이용하는 것이 유용함은 이하에서 도 4를 참조하여 설명될 것이다.
도 4는 리턴 메시지가 수신된 후 상태 데이터에서 유도하는데 사용되는 (의사) 랜덤 숫자를 이용하는 흐름도이다. 시작 후(단계 300), 단계 302에서, 관련된 장치는 비휘발성 메모리에 저장될 수 있는 (의사) 랜덤 숫자를 생성한다. 이 단계는 당업자에게 알려진 어떠한 방법으로도 실행될 수 있다. 단계 304(1) 내지 단계 304(n)에서, 장치는 일방 함수를 이 랜덤 숫자에 n 번 적용하되, n은 0보다 크도록 미리 결정된 값이다. 예를 들어, 시작시 n=10 이다. 일방 함수를 이용하는 것은 종래 기술이므로 여기서 설명하지는 않는다.
단계 306에서, 단계 304(n)의 결과는 다음 메시지상의 부가 데이터로서 장치에 의해 다른 장치(또는 메모리(34))로 전송된다. 단계 308에서, 장치는 리턴 메시지를 기다린다.
리턴 메시지를 수신한 후, 단계 310에서, 장치는 부가 데이터를 리턴 메시지에서 추출한다. 단계 312 내지 단계 320에서, 얻어진 결과가 추출된 부가 데이터와 동일해질 때까지 수회에 걸쳐 장치는 일방 함수를 비휘발성 메모리에 저장된 랜덤 숫자에 적용한다. 만일 에러가 발생하지 않으면, 처음이 n 번이 될 수 있다. 그러므로, 단계 324에서, 프로그램은 실행되던 마지막 프로그램 단계가 첫 번째 가능한 상태에 관련되어 있다는 것을 알며, 프로그램은 상태 숫자 1로 유지한다. 단계 322에서, 만일, 일반 함수를 랜덤 숫자에 n번 적용한 후에도 여전히 일치하지 않으면 에러가 발생하며, 프로그램은 에러 루틴으로 유지한다.
그러므로, 다음 스텝을 준비하기 위해, 단계 326에서, n으로부터 1이 감산되며, 프로세스는 단계 304(1)로 유지된다. 그러나, 바람직한 실시예에서, 이 단계의 결과는 단계 318에서 반복을 수행하는 동안 필요한 값을 캐싱함으로써 얻어질 수 있으며, 이는 당업자에게 알려져 있다. 그러므로, 프로그램의 어떠한 다음 단계에 대해서도, 일방 함수를 랜덤 숫자에 적용하는 것은 선행 단계에서 보다 1이 적다. 일방 함수가 이용되기 때문에, 이는 다른 장치는 다음 상태에 관련된 다음 부가 데이터를 절대 유도할 수 없는 것을 보장한다. 만일 다른 장치가 암호화 일방 함수들 의 중요한 특성에 의해 단계 302에서 생성된 (수도) 랜덤 숫자를 알지 못한다면, 장치에 의해 수행된 계산을 역으로 수행하는 것이 불가능하며, 이로 인해 다음 상태에 대한 데이터를 예측할 수 없다.
도 4는 저장된 랜덤 숫자와 일방 함수가 프로그램에서 과거 획득한 상태의 정확한 숫자에서 추출하는데 사용되는 상황과 관련이 있다. 그러나, 유사하거나 또는 동일한 구성이 암호화 프로세스 및/또는 해슁 프로세스에 이용되는 키를 생성하는데 적용될 수 있다.
해슁 프로세스에서, 예를 들면, 단계 304(n)의 결과는 다음 메시지에서 부가 데이터로서 직접 전달되지 않으며 다만 이 결과는 다음 메시지에서 전송될 모든 상태 데이터에 대한 증명 해쉬를 산출하는 키로 사용될 수 있다. 상태 데이터가 관련된 상태의 숫자보다 그 이상의 정보를 포함할 때 이는 유익하다. 그러므로, 다음 리턴 메시지를 수신하고 수신된 리턴 메시지에서 부가 데이터를 추출한 후 해쉬는 되돌아온 상태 데이터의 정확성을 확인하는데 이용된다. 확인된 상태는 프로그램을 유지하는데 이용된다. 다시, 해슁 함수에서 이용되는 키에 도달하기 일방 함수를 저장된 랜덤 숫자에 적용하는 회수는 전송될 다음 단계에 대해 1씩 감소될 수 있다. 어떠한 전송 단계에서 이용되는 키는 메모리의 비휘발성 부분에 저장될 수 있으나, 키를 저장하는 것이 반드시 필요한 것은 아닌데 이는 저장된 랜덤 숫자와 사용된 일방 함수로부터 유도될 수 있기 때문이다.
암호화 프로세스에서, 단계 304(n)의 결과는 다음 메시지에서 부가 데이터로 직접 전송되지는 않으며 다만 이 결과는 다음 메시지에서 전송될 모든 상태 데이터 를 암호화하는 키로서 이용된다. 상태 데이터가 외부 장치에 드러내도록 허용되지 않은 때 이는 유익하다. 그러므로, 다음 리턴 메시지를 수신하고 다음 리던 메시지에서 부가 데이터를 추출한 후, 부가 데이터는 상태 데이터를 얻기 위해 복호된다. 이 암호화된 상태 데이터는 프로그램을 유지하기 위해 이용된다. 다시, 암호화 단계에서 이용되는 키에 도달하기 위해 일방 함수를 저장된 랜덤 숫자에 적용하는 회수는 전송될 다음 상태에 대해 1씩 감소될 수 있다. 전송 단계에서 이용되는 키는 메모리의 비휘발성 부분에 저장될 수 있으나, 반드시 키를 저장할 필요는 없는데, 이는 저장된 랜덤 숫자와 이용된 일방 함수로부터, 바람직하게는 부가 데이터에 포함될 수 있는 현재 상태를 식별하는 현재 n 값으로부터 유도될 수 있기 때문이다.
도 4를 참조하여 설명한 방법에서 생성된 키들은 해슁 및 암호화가 이용되는 프로세스에도 이용될 수 있다.

Claims (23)

  1. 적어도 제1 장치(2)와 제2 장치(10;26)간의 통신 방법에 있어서,
    제1 프로세서(6), 제1 메모리 수단(4), 제1 입/출력 수단(8)을 포함하며, 상기 제1 메모리 수단(4) 및 제1 입/출력 수단(8)은 상기 제1 프로세서(6)에 결합되어 있는 상기 제1 장치(2);
    제2 프로세서(16;30), 제2 메모리 수단(18;32), 제2 입/출력 수단(14;28)을 포함하며, 상기 제2 메모리 수단(18;32) 및 제2 입/출력 수단(14;28)은 상기 제2 프로세서(16;30)에 결합되어 있는 상기 제2 장치(10;26);
    상기 방법은 상기 제1 프로세서(6)에서 의해 실행되는 적어도 다음 단계들을 포함하고:
    a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련되고 상기 제1 메모리 수단(4)에 저장되며 상기 제2 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    상기 제2 프로세서(16;30)에 의하여 다음 단계가 후행하며:
    d. 상기 제1 통신 프리미티브를 수신하는 단계;
    e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제1 부가 데이터를 저장하는 단계;
    f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계;
    g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    h. 상기 제2 프로그램에 따라, 상기 제1 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계;
    상기 제1 프로세서(6)에 의해 실행되는 다음 단계가 후행하며:
    i. 상기 제2 통신 프리미티브를 수신하는 단계;
    j. 상기 제2 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계;
    k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    l. 상기 제1 프로그램에 따라, 제3 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 통신 방법.
  2. 제1항에 있어서,
    상기 단계 l 다음에 다음 단계가 후행하며:
    m. 상기 제3 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
    n. 상기 제1 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제1 및 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계
    를 포함하는 것을 특징으로 하는 통신 방법.
  3. 적어도 제1 장치(2)와 제2 장치(10;26)간의 통신 방법에 있어서,
    제1 프로세서(6), 제1 메모리 수단(4), 제1 입/출력 수단(8)을 포함하며, 상기 제1 메모리 수단(4) 및 제1 입/출력 수단(8)은 상기 제1 프로세서(6)에 결합되어 있는 상기 제1 장치(2);
    제2 프로세서(16;30), 제2 메모리 수단(18;32), 제2 입/출력 수단(14;28)을 포함하며, 상기 제2 메모리 수단(18;32) 및 제2 입/출력 수단(14;28)은 상기 제2 프로세서(16;30)에 결합되어 있는 상기 제2 장치(10;26);
    상기 방법은 상기 제1 프로세서(6)에서 의해 실행되는 적어도 다음 단계들을 포함하고:
    a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련되고 상기 제1 메모리 수단(4)에 저장되며 상기 제2 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    상기 제2 프로세서(16;30)에 의하여 다음 단계가 후행하며:
    d. 상기 제1 통신 프리미티브를 수신하는 단계;
    e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제1 부가 데이터를 저장하는 단계;
    f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하고, 상기 제2 프로그램 단계를 실행한 후, 상기 제2 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
    g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    h. 상기 제2 프로그램에 따라, 상기 제1 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브 및 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계;
    상기 제1 프로세서(6)에 의해 실행되는 다음 단계가 후행하며:
    i. 상기 제2 통신 프리미티브를 수신하는 단계;
    j. 상기 제2 및 제3 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 메모리 수단(4)에 상기 제3 부가 데이터를 저장하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계
    k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지시키거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    l. 상기 제1 프로그램에 따라 제3 프로그램 단계를 실행하고, 상기 제3 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제3 상태 데이터를 설정하는 단계;
    m. 상기 제1 메모리 수단(4)으로부터 상기 제3 부가 데이터를 판독하는 단계;
    n. 상기 제1 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제3 상태 데이터와 미리 설정된 제3 및 제5 관련성을 가진 제4 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계;
    o. 상기 제3 통신 프리미티브를 수신하는 단계;
    p. 상기 제3 통신 프리미티브에서 상기 제4 및 제5 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제5 부가 데이터를 저장하고, 상기 제4 부가 데이터에서 상기 제3 부가 데이터를 유도하는 단계;
    q. 상기 유도된 제3 부가 데이터가 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    r. 상기 제2 프로그램에 따라, 제4 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 통신 방법.
  4. 제3항에 있어서,
    상기 단계 n은
    상기 제1 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제1 및 제3 상태 데이터와 미리 설정된 제5 관련성을 가진 제4 및 제5 부가 데이터를 포함하는 제3 통신 프리미티브를 송신하는 단계인 것을 특징으로 하는 통신 방법.
  5. 제1항 또는 제3항 중 어느 한 항에 있어서,
    상기 c 단계는 다음 부단계를 포함하고:
    c1. 중앙 메모리(34)의 제1 프로그램에 따른 제1 상태 데이터와 미리 설정된 제1 관련성을 가진 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    c2. 상기 중앙 메모리(34)에 상기 제1 통신 프리미티브를 저장하는 단계
    상기 d 단계는 다음 부단계를 포함하고:
    d1. 상기 중앙 메모리(34)가 상기 제1 통신 프리미티브를 가지는 여부를 체크하고, 가지지 않으면, d1 단계를 반복하고, 가지면 d2 단계로 계속되는 단계;
    d2. 상기 중앙 메모리(34)로부터 상기 제1 통신 프리미티브를 판독하는 단계;
    d3. 상기 중앙 메모리(34)로부터 상기 제1 통신 프리미티브를 제거하는 단계
    를 포함하는 것을 특징으로 하는 통신 방법.
  6. 제1항 또는 제3항 중 어느 한 항에 있어서,
    상기 c 단계는 다음 부단계를 포함하고:
    c1. 중앙 메모리(34)의 제1 프로그램에 따른 제1 상태 데이터와 미리 설정된 제1 관련성을 가진 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    c2. 상기 중앙 메모리(34)에 상기 제1 통신 프리미티브를 저장하는 단계
    상기 d 단계는 다음 부단계를 포함하고:
    d1. 상기 중앙 메모리(34)가 상기 제1 통신 프리미티브를 가지는 여부를 체크하고, 가지지 않으면, d1 단계를 반복하고, 가지면 d2 단계로 계속되는 단계;
    d2. 상기 중앙 메모리(34)로부터 상기 제1 통신 프리미티브를 판독하는 단계;
    d3. 상기 제1 통신 프리미티브가 상기 제2 장치에 의하여 판독되도록, 상기 중앙 메모리(34)의 상기 제1 통신 프리미티브에 지표를 부가하는 단계;
    를 포함하는 것을 특징으로 하는 통신 방법.
  7. 제1항 또는 제3항 중 어느 한 항에 있어서,
    적어도 상기 제1 및 제2 통신 프리미티브는
    상기 제1 부가 데이터를 구성하기 위하여 상기 제1 및 제2 통신 프리미티브를 식별하기 위한 식별 데이터를 포함하는 것을 특징으로 하는 통신 방법.
  8. 제1항 또는 제3항 중 어느 한 항에 있어서,
    상기 제1 관련성은 제1 암호화 방법을 적용하는 방법, 제1 암호 해쉬 함수를 적용하는 방법, 일회용 패드 함수를 가진 제1 암호화를 적용하는 방법 중에서 단독 또는 조합하여 사용하는 하나 또는 그 이상의 방법에 근거한 것을 특징으로 하는 통신 방법.
  9. 제1항 또는 제3항 중 어느 한 항에 있어서,
    상기 제1 관련성은 제2 암호화 방법을 적용하는 방법, 제2 암호 해쉬 함수를 적용하는 방법, 일회용 패드 함수를 가진 제2 암호화를 적용하는 방법 중에서 단독 또는 조합하여 사용하는 하나 또는 그 이상의 방법에 근거한 것을 특징으로 하는 통신 방법.
  10. 적어도 제1 장치(2)와 제2 장치(10;26)를 포함하는 통신 시스템에 있어서,
    제1 프로세서(6), 제1 메모리 수단(4), 제1 입/출력 수단(8)을 포함하며, 상기 제1 메모리 수단(4) 및 제1 입/출력 수단(8)은 상기 제1 프로세서(6)에 결합되어 있는 상기 제1 장치(2);
    제2 프로세서(16;30), 제2 메모리 수단(18;32), 제2 입/출력 수단(14;28)을 포함하며, 상기 제2 메모리 수단(18;32) 및 제2 입/출력 수단(14;28)은 상기 제2 프로세서(16;30)에 결합되어 있는 상기 제2 장치(10;26);
    상기 제1 프로세서(6)는 적어도 다음 단계를 실행하도록 설정되고:
    a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련되고 상기 제1 메모리 수단(4)에 저장되며 상기 제2 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    상기 프로세서(6)에 의해 단계 a 내지 c가 수행된 후, 상기 제2 프로세서(16;30)에 의하여 다음 단계가 실행하도록 설정되며:
    d. 상기 제1 통신 프리미티브를 수신하는 단계;
    e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제1 부가 데이터를 저장하는 단계;
    f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계;
    g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    h. 상기 제2 프로그램에 따라, 상기 제1 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계;
    상기 제2 프로세서(16;30)에 의해 단계 d 내지 h가 수행된 후, 상기 제1 프로세서(6)에 의하여 다음 단계가 실행하도록 설정되며:
    i. 상기 제2 통신 프리미티브를 수신하는 단계;
    j. 상기 제2 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계;
    k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    l. 상기 제1 프로그램에 따라, 제3 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 통신 시스템.
  11. 적어도 제1 장치(2)와 제2 장치(10;26)를 포함하는 통신 시스템에 있어서,
    제1 프로세서(6), 제1 메모리 수단(4), 제1 입/출력 수단(8)을 포함하며, 상기 제1 메모리 수단(4) 및 제1 입/출력 수단(8)은 상기 제1 프로세서(6)에 결합되어 있는 상기 제1 장치(2);
    제2 프로세서(16;30), 제2 메모리 수단(18;32), 제2 입/출력 수단(14;28)을 포함하며, 상기 제2 메모리 수단(18;32) 및 제2 입/출력 수단(14;28)은 상기 제2 프로세서(16;30)에 결합되어 있는 상기 제2 장치(10;26);
    상기 제1 프로세서(6)는 적어도 다음 단계를 실행하도록 설정되고:
    a. 미리 설정된 제1 프로그램에 따라 제1 프로그램 단계를 실행하는 단계
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련되고 상기 제1 메모리 수단(4)에 저장되며 상기 제2 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 제1 프로그램에 따라 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    상기 프로세서(6)에 의해 단계 a 내지 c가 수행된 후, 상기 제2 프로세서(16;30)에 의하여 다음 단계가 실행하도록 설정되며:
    d. 상기 제1 통신 프리미티브를 수신하는 단계;
    e. 상기 제1 통신 프리미티브로부터 상기 제1 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제1 부가 데이터를 저장하는 단계;
    f. 제2 프로그램에 따라, 제2 프로그램 단계를 실행하고, 상기 제2 프로그램 단계를 실행한 후, 상기 제2 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
    g. 상기 제2 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    h. 상기 제2 프로그램에 따라, 상기 제1 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함하는 제2 통신 프리미티브 및 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함하는 제2 통신 프리미티브를 송신하는 단계;
    상기 제2 프로세서(16;30)에 의해 단계 d 내지 h가 수행된 후, 상기 프로세서(6)에 의하여 다음 단계가 실행하도록 설정되며:
    i. 상기 제2 통신 프리미티브를 수신하는 단계;
    j. 상기 제2 및 제3 부가 데이터를 상기 제2 통신 프리미티브에서 추출하고, 상기 제1 메모리 수단(4)에 상기 제3 부가 데이터를 저장하고, 상기 제1 부가 데이터를 상기 제2 부가 데이터로부터 유도하는 단계;
    k. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지시키거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    l. 상기 제1 프로그램에 따라 제3 프로그램 단계를 실행하고, 상기 제3 프로그램 단계를 실행한 후, 상기 제1 프로그램에 관련된 제3 상태 데이터를 설정하는 단계;
    m. 상기 제1 메모리 수단(4)으로부터 상기 제3 부가 데이터를 판독하는 단계;
    n. 상기 제1 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제3 부가 데이터와 미리 설정된 제4 관련성을 가진 제4 부가 데이터와 상기 제3 상태 데이터와 미리 설정된 제5 관련성을 가지는 제5 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계;
    상기 제2 프로세서(16;30)에 의해 다음 단계가 후행하며:
    o. 상기 제3 통신 프리미티브를 수신하는 단계;
    p. 상기 제3 통신 프리미티브에서 상기 제4 및 제5 부가 데이터를 추출하고, 상기 제2 메모리 수단(18;32)에 상기 제5 부가 데이터를 저장하고, 상기 제4 부가 데이터에서 상기 제3 부가 데이터를 유도하는 단계;
    q. 상기 유도된 제3 부가 데이터가 상기 제2 상태 데이터와 미리 설정된 제3 관련성을 가지는지 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    r. 상기 제2 프로그램에 따라, 제4 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 통신 시스템.
  12. 프로세서(6), 메모리 수단(4), 입/출력 수단(8)을 포함하며, 상기 메모리 수단(4) 및 입/출력 수단(8)은 상기 프로세서(6)에 결합되어 있는 통신 장치에 있어서,
    상기 프로세서(6)에 의하여 다음 단계가 실행되도록 설정되며:
    a. 미리 설정된 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 프로그램에 관련되고 상기 메모리 수단(4)에 저장되며 다른 장치로부터 명령이 수신된 후 상기 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 프로그램에 따라, 상기 제1 상태 데이터와 미리 설정된 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    d. 상기 다른 장치로부터 제2 통신 프리미티브를 수신하는 단계;
    e. 상기 제2 통신 프리미티브로부터 상기 제2 부가 데이터를 추출하고, 상기 제2 부가 데이터로부터 상기 제1 부가 데이터를 유도하는 단계;
    f. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    g. 상기 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 통신 장치.
  13. 제12항에 있어서,
    상기 프로세서(6)는 g 단계 다음에 다음 단계가 수행되도록 설정되며:
    h. 상기 제2 프로그램 단계를 실행한 후, 상기 프로그램에 관련된 제2 상태 데이터를 설정하는 단계;
    i. 상기 프로그램에 따라, 상기 제2 장치(10;26)로 상기 제1 및 제2 상태 데이터와 미리 설정된 제3 관련성을 가진 제3 부가 데이터를 포함한 제3 통신 프리미티브를 송신하는 단계
    가 더 포함되는 것을 특징으로 하는 통신 장치.
  14. 제12항에 있어서,
    상기 장치는 스마트 카드인 것을 특징으로 하는 통신 장치.
  15. 제12항에 있어서,
    프로세서(6) 전력의 인터럽션 및 복구 후, 상기 프로세서(6)에 의하여 다음 단계가 실행되도록 설정되며:
    상기 제1 프로그램에 의해 실행된 마지막 프로그램 단계에 따라 설정된 마지막 상태 데이터와 미리 설정된 관련성을 가지는 적어도 하나의 통신 프리미티브를 다른 장치 또는 중앙 메모리(34)로부터 수신하는 단계;
    상기 마지막 프로그램 단계 다음에 오는 다른 프로그램 단계를 가진 상기 제1 프로그램의 실행을 재개하는 단계;
    를 포함하는 것을 특징으로 하는 통신 장치.
  16. 컴퓨터 장치에 의하여 실행되는 컴퓨터로 실행 가능한 명령어를 포함하는 컴퓨터 프로그램 제품이 구비된 컴퓨터 판독 매체에 있어서,
    상기 컴퓨터 장치는 프로세서(6), 메모리 수단(4), 입/출력 수단(8)을 포함하며, 상기 메모리 수단(4) 및 입/출력 수단(8)은 상기 프로세서(6)에 결합되며, 상기 컴퓨터 프로그램 제품은 상기 프로세서(6)가 적어도 다음 단계를 실행하는 것을 허용하며:
    프로세서(6)에 의하여 다음 단계가 실행되도록 설정되며:
    a. 미리 설정된 프로그램에 따라 제1 프로그램 단계를 실행하는 단계;
    b. 상기 제1 프로그램 단계를 실행한 후, 상기 프로그램에 관련되고 상기 메모리 수단(4)에 저장되며 다른 장치로부터 명령이 수신된 후 상기 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 제1 상태 데이터를 설정하는 단계;
    c. 상기 프로그램에 따라, 상기 제1 상태 데이터와 미리 설정된 관련성을 가지는 제1 부가 데이터를 포함하는 제1 통신 프리미티브를 송신하는 단계;
    d. 상기 다른 장치로부터 제2 통신 프리미티브를 수신하는 단계;
    e. 상기 제2 통신 프리미티브로부터 상기 제2 부가 데이터를 추출하고, 상기 제2 부가 데이터로부터 상기 제1 부가 데이터를 유도하는 단계;
    f. 상기 유도된 제1 부가 데이터가 상기 제1 상태 데이터와 미리 설정된 제1 관련성을 가지는 여부를 판단하여, 가지지 않으면, 상기 제1 프로그램을 중지하거나 상기 복구 프로세스를 시작하고, 가지면, 후행하는 단계를 연속하여 수행하는 단계;
    g. 상기 프로그램에 따라, 제2 프로그램 단계를 실행하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품이 구비된 컴퓨터 판독 매체.
  17. 프로세서(16;30), 메모리 수단(18;32), 입/출력 수단(14;28)을 포함하며, 상기 메모리 수단(18;32) 및 입/출력 수단(14;28)은 상기 프로세서(16;30)에 결합되어 있는 통신 장치에 있어서,
    상기 프로세서(6)에 의하여 다음 단계가 수행되도록 설정되며:
    a. 다른 장치(2)로부터 제1 통신 프리미티브를 수신하는 단계;
    b. 상기 다른 장치(2)에서 실행되는 제1 프로그램에 관련되고 상기 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 상태 데이터와 미리 설정된 제1 관련성을 가진 제1 부가 데이터를 구성하도록, 제1 통신 프리미티브를 인식하는 단계;
    c. 상기 제1 통신 프리미티브로부터 상기 부가 데이터를 추출하고, 상기 메모리 수단(18;32)에 상기 부가 데이터를 저장하는 단계;
    d. 제2 프로그램에 따라 프로그램 단계를 실행하는 단계;
    e. 상기 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    f. 상기 제2 프로그램에 따라, 상기 다른 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함한 제2 통신 프리미티브를 송신하는 단계
    를 포함하는 것을 특징으로 하는 통신 장치.
  18. 제17항에 있어서,
    상기 장치는 스마트 카드와 통신하도록 설정된 단말기인 것을 특징으로 하는 통신 장치.
  19. 제17항 또는 제18항 중 어느 한 항에 있어서,
    상기 프로세서(16;30)는 단계 a에 다음과 같은 부단계가 실행되도록 설정되며:
    a1. 중앙 메모리(34)가 상기 제1 통신 프리미티브를 가지는 여부를 체크하고, 가지지 않으면, a1 단계를 반복하고, 가지면 a2 단계로 계속되는 단계;
    a2. 상기 중앙 메모리(34)로부터 상기 제1 통신 프리미티브를 판독하는 단계;
    a3. 상기 중앙 메모리(34)로부터 상기 제1 통신 프리미티브를 제거하는 단계
    를 포함하는 것을 특징으로 하는 통신 장치.
  20. 제17항 또는 제18항 중 어느 한 항에 있어서,
    상기 프로세서(16;30)는 단계 a에 다음과 같은 부단계가 실행되도록 설정되며:
    a1. 중앙 메모리(34)가 상기 제1 통신 프리미티브를 저장하고 있는지는 판단하며, 없으면 a1 단계를 반복하고, 있으면 a2 단계로 진행하는 단계;
    a2. 상기 중앙 메모리(34)에 상기 제1 통신 프리미티브를 판독하는 단계;
    a3. 상기 제1 통신 프리미티브가 상기 장치(10;26)에 의하여 판독되도록, 상기 중앙 메모리(34)의 상기 제1 통신 프리미티브에 지표를 부가하는 단계
    를 포함하는 것을 특징으로 하는 통신 장치.
  21. 컴퓨터 장치(10;26)에 의하여 실행되는 컴퓨터로 실행 가능한 명령어를 포함하는 컴퓨터 프로그램 제품이 구비된 컴퓨터 판독 매체에 있어서,
    상기 컴퓨터 장치(10;26)는 프로세서(16;30), 메모리 수단(18;32), 입/출력 수단(14;28)을 포함하며, 상기 메모리 수단(18;32) 및 입/출력 수단(14;28)은 프로세서(16;30)에 결합되며, 상기 컴퓨터 프로그램 제품은 상기 프로세서(6)가 적어도 다음 단계를 실행하는 것을 허용하며:
    a. 다른 장치(2)로부터 제1 통신 프리미티브를 수신하는 단계;
    b. 상기 다른 장치(2)에서 실행되는 제1 프로그램에 관련되고 상기 프로세서(16;30)로부터 명령이 수신된 후 상기 제1 프로그램이 연속하여 수행되기 위해 필요한 모든 모든 데이터를 포함하는 상태 데이터와 미리 설정된 제1 관련성을 가진 제1 부가 데이터를 구성하도록, 제1 통신 프리미티브를 인식하는 단계;
    c. 상기 제1 통신 프리미티브로부터 상기 부가 데이터를 추출하고, 상기 메모리 수단(18;32)에 상기 부가 데이터를 저장하는 단계;
    d. 프로그램에 따라 프로그램 단계를 실행하는 단계;
    e. 상기 메모리로부터 상기 제1 부가 데이터를 판독하는 단계;
    f. 상기 프로그램에 따라, 상기 다른 장치(2)로 상기 제1 부가 데이터와 미리 설정된 제2 관련성을 가진 제2 부가 데이터를 포함한 제2 통신 프리미티브를 송신하는 단계
    를 포함하는 것을 특징으로 하는 컴퓨터 프로그램 제품이 구비된 컴퓨터 판독 매체.
  22. 삭제
  23. 삭제
KR1020037000875A 2000-07-20 2000-07-20 통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치 KR100716039B1 (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/NL2000/000510 WO2002009046A1 (en) 2000-07-20 2000-07-20 Method and system of communicating devices, and devices therefor, with protected data transfer

Publications (2)

Publication Number Publication Date
KR20030043913A KR20030043913A (ko) 2003-06-02
KR100716039B1 true KR100716039B1 (ko) 2007-05-08

Family

ID=19760701

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020037000875A KR100716039B1 (ko) 2000-07-20 2000-07-20 통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치

Country Status (10)

Country Link
US (1) US7828218B1 (ko)
EP (1) EP1301909B1 (ko)
JP (1) JP2004505354A (ko)
KR (1) KR100716039B1 (ko)
CN (1) CN1191556C (ko)
AT (1) ATE380376T1 (ko)
AU (2) AU6189800A (ko)
CA (1) CA2416844A1 (ko)
DE (1) DE60037342T2 (ko)
WO (1) WO2002009046A1 (ko)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7043493B2 (en) 2001-09-17 2006-05-09 Fujitsu Limited Hierarchical file system and anti-tearing algorithm for a limited-resource computer such as a smart card
US9137212B2 (en) 2006-12-04 2015-09-15 Oracle America, Inc. Communication method and apparatus using changing destination and return destination ID's
KR20090074393A (ko) 2008-01-02 2009-07-07 삼성전자주식회사 데이터 수신 방법 및 장치
KR101383573B1 (ko) * 2008-08-01 2014-04-09 삼성전자주식회사 화상형성장치 및 그의 웹 정보 제공방법
EP2270758B1 (en) * 2009-06-30 2013-11-27 Kabushiki Kaisha Toshiba Portable electronic apparatus, processing apparatus for portable electronic apparatus, and data processing method in portable electronic apparatus
US8321481B2 (en) 2010-05-13 2012-11-27 Assa Abloy Ab Method for incremental anti-tear garbage collection
TW201237630A (en) * 2011-03-01 2012-09-16 Wistron Corp Method and computer system for processing data in a memory
CN104657303B (zh) * 2014-10-13 2018-01-09 江苏瑞微电子有限公司 单总线数据通信方法
US10838739B2 (en) 2018-04-19 2020-11-17 Circle Media Labs Inc. Network-connected computing devices and methods for executing operating programs in RAM memory

Family Cites Families (111)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SE425704B (sv) 1981-03-18 1982-10-25 Loefberg Bo Databerare
US4425642A (en) 1982-01-08 1984-01-10 Applied Spectrum Technologies, Inc. Simultaneous transmission of two information signals within a band-limited communications channel
JPS61177585A (ja) 1985-02-04 1986-08-09 Toshiba Corp 携帯用電子装置密封体
CN85100700A (zh) 1985-04-01 1987-01-31 陆伯祥 计算机莫尔条纹证件及其识别系统
US4694396A (en) 1985-05-06 1987-09-15 Computer X, Inc. Method of inter-process communication in a distributed data processing system
US4757495A (en) 1986-03-05 1988-07-12 Telebit Corporation Speech and data multiplexor optimized for use over impaired and bandwidth restricted analog channels
US4874935A (en) 1986-03-10 1989-10-17 Data Card Coprporation Smart card apparatus and method of programming same
FR2600441B1 (fr) 1986-06-18 1990-09-21 France Etat Unite de gestion de memoire
JPH087720B2 (ja) 1986-09-16 1996-01-29 富士通株式会社 複数サービス用icカードの領域アクセス方法
JPS63120391A (ja) 1986-11-10 1988-05-24 Hitachi Ltd Icカ−ド
JP2514954B2 (ja) 1987-03-13 1996-07-10 三菱電機株式会社 Icカ−ド
GB8720332D0 (en) 1987-08-28 1987-10-07 Mars Inc Data carrying devices
US4953160A (en) 1988-02-24 1990-08-28 Integrated Network Corporation Digital data over voice communication
US5283885A (en) 1988-09-09 1994-02-01 Werner Hollerbauer Storage module including a refresh device for storing start and stop refresh addresses
US5057997A (en) 1989-02-13 1991-10-15 International Business Machines Corp. Interruption systems for externally changing a context of program execution of a programmed processor
JPH0390977A (ja) 1989-09-01 1991-04-16 Toyo Ink Mfg Co Ltd 情報識別方法
JPH04141886A (ja) 1990-10-01 1992-05-15 Nec Corp マイクロコンピュータ
US5204663A (en) 1990-05-21 1993-04-20 Applied Systems Institute, Inc. Smart card access control system
ATE100229T1 (de) 1990-07-20 1994-01-15 Siemens Nixdorf Inf Syst Verfahren zur verhinderung unzulaessiger abweichungen vom ablaufprotokoll einer anwendung bei einem datenaustauschsystem.
US5365576A (en) 1991-02-27 1994-11-15 Ricos Co., Ltd. Data and speech transmission device
US5148546A (en) 1991-04-22 1992-09-15 Blodgett Greg A Method and system for minimizing power demands on portable computers and the like by refreshing selected dram cells
US5204897A (en) 1991-06-28 1993-04-20 Digital Equipment Corporation Management interface for license management system
DE4126213C2 (de) 1991-08-08 2000-06-15 Deutsche Telekom Ag Chipkarte für mehrere Diensteanbieter
FR2683357A1 (fr) 1991-10-30 1993-05-07 Philips Composants Microcircuit pour carte a puce a memoire programmable protegee.
US5177768A (en) 1991-11-22 1993-01-05 Bell Communications Research, Inc. Spread-time code division multiple access technique with arbitrary spectral shaping
US5721788A (en) 1992-07-31 1998-02-24 Corbis Corporation Method and system for digital image signatures
JPH06119393A (ja) 1992-08-20 1994-04-28 Ricoh Co Ltd 電子ファイル装置
DE4242247C2 (de) 1992-12-15 1998-05-14 Orga Kartensysteme Gmbh Ausweiskarte mit optischem Datenträger
FR2703800B1 (fr) 1993-04-06 1995-05-24 Bull Cp8 Procédé de signature d'un fichier informatique, et dispositif pour la mise en Óoeuvre.
US5446901A (en) 1993-06-30 1995-08-29 Digital Equipment Corporation Fault tolerant distributed garbage collection system and method for collecting network objects
US5469559A (en) 1993-07-06 1995-11-21 Dell Usa, L.P. Method and apparatus for refreshing a selected portion of a dynamic random access memory
US5534372A (en) 1993-07-28 1996-07-09 Konica Corporation IC card having image information
US5649118A (en) 1993-08-27 1997-07-15 Lucent Technologies Inc. Smart card with multiple charge accounts and product item tables designating the account to debit
US5544246A (en) 1993-09-17 1996-08-06 At&T Corp. Smartcard adapted for a plurality of service providers and for remote installation of same
US5517645A (en) 1993-11-05 1996-05-14 Microsoft Corporation Method and system for interfacing components via aggregate components formed by aggregating the components each with an instance of a component manager
US5832119C1 (en) 1993-11-18 2002-03-05 Digimarc Corp Methods for controlling systems using control signals embedded in empirical data
US6345104B1 (en) 1994-03-17 2002-02-05 Digimarc Corporation Digital watermarks and methods for security documents
US6546112B1 (en) 1993-11-18 2003-04-08 Digimarc Corporation Security document with steganographically-encoded authentication data
US5481715A (en) 1993-12-15 1996-01-02 Sun Microsystems, Inc. Method and apparatus for delegated communications in a computer system using trusted deputies
ATE152539T1 (de) 1994-02-08 1997-05-15 Belle Gate Invest Bv Datenauswechselsystem mit tragbaren datenverarbeitungseinheiten
FR2717931B1 (fr) 1994-03-23 1996-05-31 Gemplus Card Int Système de vérification d'identité.
US5450490A (en) 1994-03-31 1995-09-12 The Arbitron Company Apparatus and methods for including codes in audio signals and decoding
US5404377A (en) 1994-04-08 1995-04-04 Moses; Donald W. Simultaneous transmission of data and audio signals by means of perceptual coding
JPH07336460A (ja) 1994-06-03 1995-12-22 Hitachi Ltd データ通信装置
US5568641A (en) 1995-01-18 1996-10-22 Hewlett-Packard Company Powerfail durable flash EEPROM upgrade
US5930363A (en) 1995-03-17 1999-07-27 Transmo Limited Card charging systems
US5636695A (en) 1995-03-22 1997-06-10 Watson, Jr.; Curtis G. Gripping device for a horseshoe
US5594227A (en) 1995-03-28 1997-01-14 Microsoft Corporation System and method for protecting unauthorized access to data contents
EP0819274B1 (en) 1995-04-07 2002-11-06 DreamTechnologies Co., Ltd. Method and system for executing an application program
CA2173695A1 (en) 1995-04-14 1996-10-15 Panagiotis Kougiouris Method and system for providing interoperability among processes written to execute on different operating systems
SG73579A1 (en) 1995-05-12 2000-06-20 Macrovision Corp Video media security and tracking system
US5805899A (en) 1995-07-06 1998-09-08 Sun Microsystems, Inc. Method and apparatus for internal versioning of objects using a mapfile
US6385645B1 (en) 1995-08-04 2002-05-07 Belle Gate Investments B.V. Data exchange system comprising portable data processing units
DK0757336T3 (da) 1995-08-04 2001-03-19 Belle Gate Invest B V Data-Udvekslings-System omfattende bærbare databehandlingsenheder
US5768385A (en) 1995-08-29 1998-06-16 Microsoft Corporation Untraceable electronic cash
US5721781A (en) 1995-09-13 1998-02-24 Microsoft Corporation Authentication system and method for smart card transactions
DE19536169A1 (de) 1995-09-29 1997-04-03 Ibm Multifunktionale Chipkarte
DE19542910B4 (de) 1995-11-17 2005-01-05 Deutsche Telekom Ag Verfahren und Vorrichtung zum Schutz gespeicherter Daten
DE19600081C2 (de) 1996-01-03 1999-11-18 Ibm Sicherung der Datenintegrität bei Datenträgerkarten
FR2743910B1 (fr) 1996-01-19 1998-02-27 Solaic Sa Procede de mise en oeuvre d'un programme securise dans une carte a microprocesseur et carte a microprocesseur comportant un programme securise
JP4084428B2 (ja) 1996-02-02 2008-04-30 富士通株式会社 半導体記憶装置
US5905819A (en) 1996-02-05 1999-05-18 Eastman Kodak Company Method and apparatus for hiding one image or pattern within another
US5742756A (en) 1996-02-12 1998-04-21 Microsoft Corporation System and method of using smart cards to perform security-critical operations requiring user authorization
JP3866376B2 (ja) 1996-05-02 2007-01-10 テキサス インスツルメンツ インコーポレイテツド 著作権付き資料のみをディジタルメディアシステム内で再生及び使用可能とする方法
KR100186412B1 (ko) 1996-05-07 1999-04-15 구자홍 메모리를 내장한 광 디스크
US5896393A (en) 1996-05-23 1999-04-20 Advanced Micro Devices, Inc. Simplified file management scheme for flash memory
US5781723A (en) 1996-06-03 1998-07-14 Microsoft Corporation System and method for self-identifying a portable information device to a computing unit
US5889868A (en) 1996-07-02 1999-03-30 The Dice Company Optimization methods for the insertion, protection, and detection of digital watermarks in digitized data
US5915027A (en) 1996-11-05 1999-06-22 Nec Research Institute Digital watermarking
US5884316A (en) 1996-11-19 1999-03-16 Microsoft Corporation Implicit session context system with object state cache
JP3145047B2 (ja) 1996-12-17 2001-03-12 松下電送システム株式会社 V.34ファクシミリ端末・制御チャネル・速度選択方法
EP0849734B1 (en) 1996-12-20 2003-04-16 Texas Instruments Incorporated Improvements in or relating to security systems
FR2757661B1 (fr) * 1996-12-24 1999-01-22 Gemplus Card Int Procede de transfert securise de donnees par un reseau de communication
US5790489A (en) 1997-01-21 1998-08-04 Dell Usa, L.P. Smart compact disk including a processor and a transmission element
US5862117A (en) 1997-03-12 1999-01-19 Em Microelectronic-Marin Sa Device, in particular a compact disc, comprising a data storage medium and an integrated circuit
EP0864996A3 (en) 1997-03-13 1999-09-15 Hitachi, Ltd. Portable electronic device and method for personal identification
US6220510B1 (en) 1997-05-15 2001-04-24 Mondex International Limited Multi-application IC card with delegation feature
US6005940A (en) 1997-05-16 1999-12-21 Software Security, Inc. System for securely storing and reading encrypted data on a data medium using a transponder
JP4246812B2 (ja) 1997-06-12 2009-04-02 パナソニック株式会社 半導体回路及びその制御方法
KR19990012099A (ko) 1997-07-26 1999-02-25 윤종용 전자주민카드를 이용한 사용자 확인 방법
TW389900B (en) 1997-10-09 2000-05-11 Victor Company Of Japan Optical disces, producing methods and production apparatus of the optical discs
US5984186A (en) 1997-10-29 1999-11-16 Psc Inc. CCD-base bar code scanner
US6484946B2 (en) 1997-12-22 2002-11-26 Hitachi, Ltd. IC card information display device and IC card for use therewith
US6545981B1 (en) * 1998-01-07 2003-04-08 Compaq Computer Corporation System and method for implementing error detection and recovery in a system area network
US6104812A (en) 1998-01-12 2000-08-15 Juratrade, Limited Anti-counterfeiting method and apparatus using digital screening
US6311186B1 (en) 1998-02-20 2001-10-30 Priority Call Management, Inc. Telecommunications switching system utilizing a channelized database access mechanism
FR2776153B1 (fr) 1998-03-10 2000-07-28 Ordicam Rech Et Dev Procede pour l'identification securitaire d'une personne et dispositif portatif pour la mise en oeuvre du procede
US6241153B1 (en) 1998-03-17 2001-06-05 Cardxx, Inc. Method for making tamper-preventing, contact-type, smart cards
EP0944256A1 (en) 1998-03-19 1999-09-22 Hitachi Europe Limited Copy protection apparatus and method
US6128627A (en) 1998-04-15 2000-10-03 Inktomi Corporation Consistent data storage in an object cache
US6608911B2 (en) 2000-12-21 2003-08-19 Digimarc Corporation Digitally watermaking holograms for use with smart cards
US6282700B1 (en) 1998-05-21 2001-08-28 Hewlett Packard Company Mechanism for maintaining revisions of objects in flash memory
US6212633B1 (en) 1998-06-26 2001-04-03 Vlsi Technology, Inc. Secure data communication over a memory-mapped serial communications interface utilizing a distributed firewall
US6374355B1 (en) 1998-07-31 2002-04-16 Lucent Technologies Inc. Method for securing over-the-air communication in a wireless system
JP2000094874A (ja) 1998-09-22 2000-04-04 Canon Inc 電子部品内蔵カードとその製造方法
US6742712B1 (en) 1998-09-29 2004-06-01 Asa Systems, Inc. Information card and information card system
US6257486B1 (en) 1998-11-23 2001-07-10 Cardis Research & Development Ltd. Smart card pin system, card, and reader
US6321981B1 (en) 1998-12-22 2001-11-27 Eastman Kodak Company Method and apparatus for transaction card security utilizing embedded image data
US6480831B1 (en) 1998-12-24 2002-11-12 Pitney Bowes Inc. Method and apparatus for securely transmitting keys from a postage metering apparatus to a remote data center
US6480935B1 (en) 1999-01-15 2002-11-12 Todd Carper Smart card memory management system and method
US6311280B1 (en) 1999-02-22 2001-10-30 Nband Communications Low-power memory system with incorporated vector processing
US6349336B1 (en) 1999-04-26 2002-02-19 Hewlett-Packard Company Agent/proxy connection control across a firewall
US6535997B1 (en) 1999-05-19 2003-03-18 International Business Machines Corporation Data integrity in smartcard transactions
JP2001052143A (ja) 1999-08-09 2001-02-23 Mega Chips Corp 認証用記録媒体および認証システム
US6292874B1 (en) 1999-10-19 2001-09-18 Advanced Technology Materials, Inc. Memory management method and apparatus for partitioning homogeneous memory and restricting access of installed applications to predetermined memory ranges
JP2001126046A (ja) 1999-10-29 2001-05-11 Kyodo Printing Co Ltd Icカード、icカード認証システム、及びその認証方法
US6325285B1 (en) 1999-11-12 2001-12-04 At&T Corp. Smart card with integrated fingerprint reader
US6572025B1 (en) 2000-05-10 2003-06-03 Japan Gain The Summit Co., Ltd. Information code product, manufacturing device and method for manufacturing the same, information code reading device, authentication system, authentication terminal, authentication server, and authentication method
US6808118B2 (en) 2001-12-31 2004-10-26 Zebra Atlantek, Inc. Security code verification for identification cards
US7114032B2 (en) 2003-07-18 2006-09-26 International Business Machines Corporation Method and system for efficient fragment caching
US20050129334A1 (en) 2003-12-12 2005-06-16 Wilder Daniel V. Event photo retrieval system and method

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
8902140
9935791

Also Published As

Publication number Publication date
WO2002009046A1 (en) 2002-01-31
US7828218B1 (en) 2010-11-09
CN1191556C (zh) 2005-03-02
AU6189800A (en) 2002-02-05
EP1301909B1 (en) 2007-12-05
JP2004505354A (ja) 2004-02-19
DE60037342D1 (de) 2008-01-17
EP1301909A1 (en) 2003-04-16
AU2000261898B2 (en) 2006-12-14
CN1454372A (zh) 2003-11-05
DE60037342T2 (de) 2008-11-27
KR20030043913A (ko) 2003-06-02
CA2416844A1 (en) 2002-01-31
ATE380376T1 (de) 2007-12-15

Similar Documents

Publication Publication Date Title
RU2182726C2 (ru) Восстановление операции в системе переноса денежных средств
JP4251667B2 (ja) アプリケーション履歴リストを有する集積回路カード
EP0186981B1 (en) Security module for an electronic funds transfer system
JP3900536B2 (ja) スマートicカードシステム
JP4216475B2 (ja) 漏洩抵抗力を有する暗号索引付き鍵の更新方法及びデバイス
JP4906168B2 (ja) Icカードのための鍵配送ユニット
CN109191131B (zh) 一种基于可信环境和双安全芯片的安全人脸识别装置
CN104038924B (zh) 实现资源交换信息处理的方法和系统
CN104217327A (zh) 一种金融ic卡互联网终端及其交易方法
JP3617054B2 (ja) 価値転送方法
JP2005521332A (ja) 近接装置を使用してトランザクションを実行する方法およびシステム
CN103714633A (zh) 一种安全生成传输密钥的方法及pos终端
TW201413491A (zh) 更新用於安全元件之操作系統
CN105593884A (zh) 电子认证系统
KR100716039B1 (ko) 통신 장치의 방법 및 시스템과 보호된 데이터 전송을 위한장치
EP1082710A1 (en) Preloaded ic-card and method for authenticating the same
CN102014015A (zh) 智能密钥设备的自检方法
JP2001515621A (ja) ネットワーク援用チップカードトランザクション処理方法
CN205091758U (zh) 一种读卡器及cpu卡交易系统
CN108334927A (zh) 一种nfc收单标签及其支付方法
AU2000261898A1 (en) Method and system of communicating devices, and devices therefor, with protected data transfer
JP2002210248A (ja) ネットワーク対戦ゲーム管理方法及び管理プログラム並びにicカード
CN115549940A (zh) 密码调用方法、装置、电子设备以及存储介质
CN113572717B (zh) 通信连接的建立方法、洗护设备及服务器
RU2681372C1 (ru) Система управления pos-терминальной сети

Legal Events

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

Payment date: 20130419

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140422

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150416

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20160419

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20170420

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20180417

Year of fee payment: 12

FPAY Annual fee payment

Payment date: 20190417

Year of fee payment: 13