KR100494178B1 - 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치 - Google Patents

복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치 Download PDF

Info

Publication number
KR100494178B1
KR100494178B1 KR1020040060906A KR20040060906A KR100494178B1 KR 100494178 B1 KR100494178 B1 KR 100494178B1 KR 1020040060906 A KR1020040060906 A KR 1020040060906A KR 20040060906 A KR20040060906 A KR 20040060906A KR 100494178 B1 KR100494178 B1 KR 100494178B1
Authority
KR
South Korea
Prior art keywords
authentication
card
value
key
index
Prior art date
Application number
KR1020040060906A
Other languages
English (en)
Inventor
김광호
권범준
박주철
Original Assignee
주식회사 하이스마텍
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 하이스마텍 filed Critical 주식회사 하이스마텍
Priority to KR1020040060906A priority Critical patent/KR100494178B1/ko
Application granted granted Critical
Publication of KR100494178B1 publication Critical patent/KR100494178B1/ko

Links

Classifications

    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Accounting & Taxation (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • Signal Processing (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Finance (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 복수의 IC 카드로부터의 인증 요청에 대한 인증 방법 및 그 장치를 개시한다.
본 발명에 의하면, 복수의 IC 카드로부터의 인증 요청을 수신하여, 각 인증 요청에 대해 인덱스 값을 설정하고, 인덱스 값이 설정된 인증 요청에 대해 제1랜덤값을 생성하여 인증을 위해 사용할 키를 가리키는 키 테이블, 인덱스 값과 함께 해당 IC 카드에게 전송하고, 전송받은 IC 카드에서 생성한 제2랜덤값, 제1랜덤값 및 키 테이블로 나타내지는 키를 사용하여 IC 카드에서 암호화한 결과인 제1암호값, 제2랜덤값 및 IC 카드의 인덱스 값을 IC 카드로부터 수신하여, 수신한 인덱스 값으로부터 해당되는 IC 카드를 확인하고, 제2랜덤값, 키 및 제1랜덤값을 사용해서 제2세션키를 생성하며, 제2랜덤값과 제2세션키를 사용하여 제2암호값을 생성하여, 제1암호값과 제2암호값을 비교 검증하여 인증하고, IC 카드에 대한 키와 제2세션키를 사용하여 암호화한 제3암호값을 생성하여, IC 카드로 제3암호값, 키 테이블 및 인덱스 값을 전송하고, 키와 제1세션키를 사용하여 제4암호값을 생성하고 제3암호값과 비교하여 인증이 확인된 것을 IC 카드로부터 수신하여 인증을 종료하여, 인증을 요청하는 IC카드마다 인덱스를 부여하여 처리한 결과 하나의 인증 절차 중에도 다른 인증 절차를 처리할 수 있으며, 종래의 인증에 비해 효율을 높일 수 있다.

Description

복수의 IC 카드로부터의 인증 요청에 대한 인증 방법 및 그 장치{Method for authentication corresponding to authentication request from plural IC cards and apparatus thereof}
본 발명은 인증에 관한 것으로서, IC를 내장한 카드에 대한 인증 방법 및 그 장치에 관한 것이다.
IC를 내장한 카드, 예를 들면 스마트카드와 같은 IC를 내장한 신용카드를 이용해서 상품, 용역 혹은 서비스 등을 구매할 때에 결제 승인 혹은 인증을 요청하는 경우 인증 시스템에 포함된 보안 모듈(Secure Application Module; 이하 SAM이라고 함) 카드 즉 SAM 카드를 사용하여 결제 승인에 사용되는 신용카드가 정당한 카드인가를 확인하여 인증을 한다.
이와 같은 IC를 내장한 카드에 대한 인증 시에 동시에 여러 개의 카드에서 인증을 요청하는 경우 SAM 카드가 한 카드에 대해 인증을 할 때에 다른 카드로부터의 인증 요청은 대기하고 있다가 한 카드에 대한 인증이 끝나면 다른 카드에 대한인증을 처리하며 이 경우에도 다른 카드로부터의 인증 요청은 계속 대기하고 있어야 한다. 즉, 종래에는 여러 개의 카드로부터의 인증이 동시에 요청되는 경우 SAM 카드가 다른 카드에 대한 인증을 완료할 때까지는 다른 카드로부터의 인증들은 대기하여야 하는 문제가 있다.
이와 같은 문제를 해결하기 위한 시도는 공개특허 2004-0003666(2004.01.13. 공개)에 개시되어 있다. 개시된 내용은 인증 시스템에 다수의 SAM 카드를 포함시켜 복수 개의 인증 요청이 있는 경우 하나의 SAM 카드가 인증을 하는 중에도 다른 SAM 카드를 이용해서 다른 인증 요청에 대한 처리를 하여 동시에 여러 개의 카드로부터의 인증 요청을 처리할 수 있는 기술이다.
그런데 이와 같은 경우 상당한 고가의 SAM 카드를 다수 개 사용하여 비용의 면에서 문제가 있으며, SAM 카드의 수보다 많은 인증 요청들이 있는 경우에는 역시 이전의 인증 요청들에 대한 처리가 끝날 때까지 기다려야 한다는 문제는 계속된다.
이는 종래의 SAM 카드의 인증 처리가 SAM 카드와 IC 내장 카드간의 1:1 형태의 인증만이 가능하기 때문에 발생하는 문제라고 할 수 있다.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 다수개의 인증 요청이 동시에 발생하는 경우에도 이를 수용하여 복수의 IC 카드로부터의 복수의 인증 요청을 다중 작업으로 처리할 수 있는 인증 방법과 그 장치를 제공하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 복수의 IC 카드로부터의 인증 요청에 대한 인증을 하는 방법은, (a) 상기 IC 카드로부터의 인증 요청을 수신하는 단계; (b) 각 인증 요청에 대해 그 IC 카드에 대한 인덱스 값을 설정 가능한가를 확인하여 IC 카드마다 인덱스 값을 설정하는 단계; (c) 인덱스 값이 설정된 인증 요청에 대해 암호화를 위한 제1랜덤(random)값을 생성하여 인증을 위해 사용할 키를 가리키는 키 테이블, 상기 설정된 인덱스 값과 함께 해당 IC 카드에게 전송하는 단계; (d) 상기 (c) 단계에서 전송받은 IC 카드에서 생성한 암호화를 위한 제2랜덤값, 상기 제1랜덤값 및 상기 키 테이블로 나타내지는 키를 사용하여 상기 IC 카드에서 소정의 방법을 통해 암호화한 결과인 제1암호값, 상기 제2랜덤값 및 상기 IC 카드에 대응하는 인덱스 값을 상기 IC 카드로부터 수신하는 단계; (e) 수신한 인덱스 값으로부터 해당되는 IC 카드를 확인하고, 그 IC 카드에 대한 인증을 위해 상기 수신한 제2랜덤값과 상기 키 테이블로 나타내지는 키 및 제1랜덤값을 사용해서 제2세션키를 생성하며, 상기 제2랜덤값과 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제2암호값을 생성하는 단계; (f) 상기 제1암호값과 제2암호값을 소정의 방법에 따라 비교 검증하여 인증하는 단계; (g) 상기 인덱스 값이 설정된 IC 카드에 대한 키 테이블로 나타내지는 키와 상기 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제3암호값을 생성하는 단계; (h) 상기 (b) 단계에서 인덱스 값이 설정되었으며 상기 (f) 단계에서 인증된 IC 카드로 상기 제3암호값, IC 카드에 설정된 키 테이블 및 상기 (b) 단계에서 설정된 IC 카드에 대응하는 인덱스 값을 전송하는 단계; 및 (i) 상기 (g) 단계에서 전송받은 키 테이블로 나타내지는 키와 제1세션키를 사용하여 소정의 방법을 통해 암호화하여 제4암호값을 생성하고 이를 상기 제3암호값과 소정의 방법에 따라 비교하여 인증이 확인된 것을 상기 인증된 IC 카드로부터 인덱스 값과 함께 수신하여 해당 인증을 종료하는 단계;를 포함하며, 하나의 IC 카드로부터의 인증 요청에 대해 상기 (a) 내지 (i) 단계를 진행하는 중에 다른 IC 카드로부터의 인증 요청이 수신되면 상기 (b) 단계에서 현재 진행되고 있는 인증을 요청한 IC 카드와는 다른 인덱스 값을 설정하여 현재 진행되는 인증 절차의 단계 중에 혹은 인증이 종료된 후에 상기 다른 인덱스 값에 대응하는 인증 절차를 진행하여 복수의 IC 카드로부터의 인증 요청에 대해 시분할 방식으로 처리하는 것을 특징으로 한다.
이 때에 상기 (b) 단계에서 인덱스 값을 설정할 수 없는 경우 현재 인증 처리할 수 없음을 인증을 요청한 IC 카드에게 알리는 것이 바람직하다.
상기 다른 기술적 과제를 해결하기 위한 본 발명에 의한, 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치는, 상기 IC카드로부터의 인증 요청과 인증 과정에서의 응답을 수신하고 인증을 요청한 각 IC 카드에게 인증 과정을 위한 소정의 데이터를 전송하며 상기 인증 요청한 IC 카드 각각과 대응하는 복수의 인증송수신부; 복수의 인증 요청들에 대한 각 인증 처리를 구분하는 값인 인덱스 값을 설정하는 인덱스설정부; 각 IC 카드로부터의 각 인증 요청에 대해 각 IC 카드별로 암호화를 위한 랜덤값을 생성하고, 인증을 위해 사용할 키를 가리키는 키 테이블을 보유하는 키값생성부; 인증을 요청한 IC 카드로부터 전송된 랜덤값, 상기 IC 카드에 대응하여 상기 키값생성부에서 생성된 랜덤값, 키 테이블로 나타내지는 키를 이용하여 소정의 방법에 따라 상기 인증 요청에 대한 인증을 위한 암호값과 IC 카드 전송용 암호값을 생성하는 암호부; 상기 IC 카드에서 전송되는 암호값과 그 IC 카드에서 전송된 랜덤값, 상기 IC 카드에 대응하여 상기 키값생성부에서 생성한 랜덤값 및 키 테이블로 나타내지는 키를 이용하여 상기 암호부에서 생성한 인증을 위한 암호값을 소정의 방법에 따라 비교하여 상기 카드로부터의 인증 요청에 대해 인증하는 인증부; 및 상기 복수의 인증송수신부의 어느 하나를 통해 인증송수신부와 대응하는 IC 카드로부터 인증 요청이 수신되면 이를 상기 인덱스설정부에 전달하여 각 인증 요청에 대한 인덱스 값을 설정하게 하고, 그 인증 요청에 대한 랜덤값과 키 테이블을 상기 수신한 인증송수신부를 통해 대응하는 IC 카드에 전송하게 하며, 그 응답으로 IC 카드로부터 그 IC 카드에 대응하는 인증송수신부를 통해 랜덤값과 암호값이 수신되면 이를 상기 암호부와 인증부에 전달하여 그 IC 카드로부터의 인증 요청에 대한 인증을 하게 하며, 인증된 IC 카드로 대응되는 인증송수신부를 통해 상기 IC 카드에 대응하여 상기 암호부에서 생성한 IC 카드 전송용 암호값, IC 카드에 대응하는 키 테이블을 전송하게 하며, 그 응답으로 IC 카드로부터 인증송수신부를 통해 인증 확인이 수신되면 그 IC 카드에 대한 인증을 종료하게 하는 제어부;를 포함하며, 하나의 IC 카드로부터의 인증 요청을 처리하는 중에 다른 IC 카드로부터의 인증 요청이 수신되면 현재 진행되고 있는 인증을 요청한 IC 카드와는 다른 인덱스 값을 설정하여 현재 진행되는 인증 절차의 단계 중에 혹은 인증이 종료된 후에 상기 다른 인덱스 값에 대응하는 인증 절차를 진행하여 복수의 IC 카드로부터의 인증 요청에 대해 시분할 방식으로 처리하는 것을 특징으로 한다.
상기 제어부는 복수의 IC 카드로부터의 인증 요청에 대해서 상기 인덱스설정부를 통해 각 인증 요청마다 별도의 인덱스 값을 설정하게 하고, 상기 키값생성부, 암호부 및 인증부에 대해 각 인덱스 값별로 결과를 출력하게 하는 것이 바람직하며, 복수의 IC 카드로부터 복수개의 인증 요청이 있으면 상기 제어부는 먼저 인증 요청을 한 IC 카드로부터의 인증 요청에 더 높은 우선 순위를 부가하여 인증처리 하는 것이 바람직하다.
이 경우 상기 인덱스설정부, 키값생성부, 암호부 및 인증부에서 출력되는 값들을 저장할 수 있는 메모리부;를 더 포함하며, 상기 제어부는 상기 메모리부에 각 인증요청에 대해 상기 인덱스설정부에서 설정한 인덱스 값을 기준으로 상기 키값생성부, 암호부 및 인증부에서 출력되는 값들을 저장하며, 상기 인덱스설정부는 각 인증 요청에 대해 소정 범위의 인덱스 값을 차례로 설정하고, 만일 상기 소정 범위의 인덱스 값이 모두 설정되어 인증하는 중에 다른 인증 요청이 수신되면 상기 제어부는 다른 인증을 요청한 IC 카드로 인증 처리할 수 없음을 알리며, 소정 범위의 인덱스 값이 모두 설정되어 각 인덱스 값별로 인증하는 중에 다른 인증 요청이 수신된 후 어느 하나의 인증이 종료되면 상기 제어부는 그 종료된 인증 절차에 설정된 인덱스 값을 상기 수신된 다른 인증 요청에 설정되도록 상기 인덱스설정부에 전달하는 것이 바람직하다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
종래의 SAM 카드의 인증 처리 방법에 대해서는 본 발명이 속한 분야의 통상의 지식을 가진 당업자가 용이하게 취득할 수 있도록 공개되어 있는 문서를 참조할 수 있다. 따라서 이하의 설명에서는 필요한 경우 외에는 종래의 IC 내장 카드로부터의 인증 요청에 대해 SAM 카드가 그에 연동하여 인증을 처리 방법에 대해서는 별도의 설명을 하지 않을 것이다.
도 1은 복수의 IC 카드로부터의 인증 요청에 대해 본 발명에 따라 인증하는 방법의 흐름을 도시한 것이다.
IC 카드로부터의 인증 요청을 수신하여(100 단계), 각 인증 요청에 대해 그 IC 카드에 대한 인덱스 값을 설정 가능한가를 확인하여 IC 카드마다 인덱스 값을 설정하고(110 단계), 인덱스 값이 설정된 인증 요청에 대해 암호화를 위한 제1랜덤(random)값을 생성하여 인증을 위해 사용할 키를 가리키는 키 테이블, 110 단계에서 설정된 인덱스 값과 함께 인증 요청한 해당되는 IC 카드에게 전송한다(120 단계).
그리고 120 단계에서 전송받은 IC 카드에서 생성한 암호화를 위한 제2랜덤값, 상기 제1랜덤값 및 상기 키 테이블로 나타내지는 키를 사용하여 상기 IC 카드에서 소정의 방법을 통해 암호화한 결과인 제1암호값, 상기 제2랜덤값 및 상기 IC 카드에 대응하는 인덱스 값을 상기 IC 카드로부터 수신한다(130 단계).
수신한 인덱스 값으로부터 해당되는 IC 카드를 확인하고, 그 IC 카드에 대한 인증을 위해 130 단계에서 수신한 제2랜덤값과 상기 키 테이블로 나타내지는 키 및 제1랜덤값을 사용해서 제2세션키를 생성하며, 상기 제2랜덤값과 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제2암호값을 생성하고(140 단계), 제1암호값과 제2암호값을 소정의 방법에 따라 비교 검증하여 정당한 IC 카드로부터의 인증 요청인가를 확인한다(150 단계).
그리고 인덱스 값이 설정된 IC 카드에 대한 키 테이블로 나타내지는 키와 상기 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제3암호값을 생성하고(160 단계), 110 단계에서 인덱스 값이 설정되었으며 150 단계에서 인증된 IC 카드로 160 단계에서 생성된 제3암호값, IC 카드에 설정된 키 테이블 및 상기 110 단계에서 설정된 IC 카드에 대응하는 인덱스 값을 전송한다(170 단계).
170 단계에서 전송받은 키 테이블로 나타내지는 키와 제1세션키를 사용하여 소정의 방법을 통해 암호화하여 제4암호값을 생성하고 이를 상기 제3암호값과 소정의 방법에 따라 비교하여 인증이 확인된 것을 상기 인증된 IC 카드로부터 인덱스 값과 함께 수신하여 해당 인증을 종료한다(180 단계).
도 2는 복수의 IC 카드로부터의 인증 요청에 대해 본 발명에 따라 인증하는 장치의 구성을 블록으로 도시한 것이다.
복수의 IC 카드로부터의 인증 요청에 대한 인증을 하는 이 장치는, 상기 IC카드로부터의 인증 요청과 인증 과정에서의 응답을 수신하고 인증을 요청한 각 IC 카드에게 인증 과정을 위한 소정의 데이터를 전송하며 상기 인증 요청한 IC 카드 각각과 대응하는 복수의 인증송수신부(200-1, 200-2, ...), 인증 요청들에 대한 각 인증 처리를 구분하는 값인 인덱스 값을 설정하는 인덱스설정부(210), 각 IC 카드로부터의 각 인증 요청에 대해 각 IC 카드별로 암호화를 위한 값인 랜덤값을 생성하고, 인증을 위해 사용할 키를 가리키는 키 테이블을 보유하는 키값생성부(220), 인증을 요청한 IC 카드로부터 전송된 랜덤값, 상기 IC 카드에 대응하여 키값생성부(220)에서 생성된 랜덤값, 키 테이블로 나타내지는 키를 이용하여 소정의 방법에 따라 상기 인증 요청에 대한 인증을 위한 암호값과 IC 카드 전송용 암호값을 생성하는 암호부(230), 상기 IC 카드에서 전송되는 암호값과 그 IC 카드에서 전송된 랜덤값, 상기 IC 카드에 대응하여 키값생성부(220)에서 생성한 랜덤값 및 키 테이블로 나타내지는 키를 이용하여 암호부(230)에서 생성한 인증을 위한 암호값을 소정의 방법에 따라 비교하여 상기 카드로부터의 인증 요청에 대해 인증하는 인증부(240) 및 복수의 인증송수신부(200-1, 200-2, ...)의 어느 하나를 통해 인증송수신부와 대응하는 IC 카드로부터 인증 요청이 수신되면 이를 인덱스설정부(210)에 전달하여 각 인증 요청에 대한 인덱스 값을 설정하게 하고, 그 인증 요청에 대한 랜덤값과 키 테이블을 상기 수신한 인증송수신부를 통해 대응하는 IC 카드에 전송하게 하며, 그 응답으로 IC 카드로부터 그 IC 카드에 대응하는 인증송수신부를 통해 랜덤값과 암호값이 수신되면 이를 암호부(230)와 인증부(240)에 전달하여 그 IC 카드로부터의 인증 요청에 대한 인증을 하게 하며, 인증된 IC 카드로 대응되는 인증송수신부를 통해 상기 IC 카드에 대응하여 암호부(230)에서 생성한 IC 카드 전송용 암호값, IC 카드에 대응하는 키 테이블을 전송하게 하며, 그 응답으로 IC 카드로부터 인증송수신부를 통해 인증 확인이 수신되면 그 IC 카드에 대한 인증을 종료하게 하는 제어부(250)를 포함한다.
그리고 인덱스설정부(210), 키값생성부(220), 암호부(230) 및 인증부(240)에서 출력되는 값들을 저장할 수 있는 메모리부(260)를 더 포함하며, 제어부(250)는 메모리부(260)에 각 인증요청에 대해 인덱스설정부(210)에서 설정한 인덱스 값을 기준으로 키값생성부(220), 암호부(230) 및 인증부(240)에서 출력되는 값들을 저장한다.
도 3은 도 1의 흐름을 더 상세하게 도시한 일 예의 흐름을 도시한 것이다. 도 3은 도 1의 흐름에 대한 상세한 예를 포함하고 있으며, 도 1은 도 3에 대한 설명을 통해 전부 설명될 것이므로 이하에서는 도 1에 대한 별도의 설명은 하지 않을 것이다.
그리고 IC 카드는 메모리 소자만을 포함하고 있는 경우도 있으나 본 발명에서 언급되는 IC 카드인 SAM 카드는 메모리 소자는 물론이며 프로세서 및 그 프로세서를 위한 프로그램 코드가 저장된 별도의 메모리 소자를 포함하는 것이다.
IC 카드를 사용하여 결제할 때에 접촉식 혹은 비접촉식으로 혹은 유선, 무선의 다양한 통신망을 통해 IC 카드로부터의 인증 요청이 전송된다(300 단계).
도 4는 본 발명이 사용되는 환경의 일 예를 도시한 것이다.
IC 카드는 사용자의 개인 정보와 인증용 키를 저장하고 있으며, 인증용 서명값을 생성하여 암호화하는 알고리즘을 실행하는 프로그램을 포함하고 있다. 이 IC 카드는 다양한 단말기들(400 내지 430)에 장착될 수 있다.
각 단말기들(400 내지 430)은 장착된 IC 카드에 저장된 정보를 읽어내어 유무선의 네트워크(440)를 통해 인증서버(450)로 전송하고, 인증서버(450)로부터의 정보를 수신한다. 인증서버(450)는 본 발명에 따른 도 2의 구성을 모두 포함하고 있으며, 상기에 설명된 SAM 카드의 기능을 포함하고 있다. 도 2의 구성은 전부 혹은 일부의 구성이 본 발명에 따라 기능이 개선된 SAM 카드에 장착되어 인증서버(450)에 포함될 수 있다.
IC 카드는 선불식 충전카드, 직불카드, 신용카드, 교통카드 등의 기능을 수행하도록 할 수 있다. IC 카드는 자체에 내장된 마이크로프로세서가 IC 카드에 대한 접근 암호, 카드 처리 장비의 ID 등 암호화된 조건에 따라 데이터를 처리하기 때문에 고도의 보안성을 유지할 수 있어서 종래의 마그네틱 스트라이프 카드에 비해 높은 안정성을 유지할 수 있다. IC 카드를 사용하여 인증서버와 IC 카드 간에는 암호화된 서명값을 이용하여 상호 정당성 검증을 실시한다.
단말기들(400 내지 430)은 IC 카드의 착탈이 가능하고 데이터의 송수신이 가능하다면 어떤 형태이던 무방하다. 예를 들어 GSM 또는 CDMA 방식의 셀룰러 폰, PCS 폰, PDA, 핸드헬드 PC를 포함하는 PC 등 모든 종류의 무선 단말기, 유선 단말기 및 컴퓨터 등과 같은 장치를 포함한다.
참조번호 410의 탁상용 컴퓨터와 같은 단말기의 경우 IC 카드가 직접 장착되기 어려울 수 있으므로 IC 카드 리더기와 같은 장치를 부착하여 IC 카드를 탈착할 수 있고, 참조번호 430과 같은 노트북 컴퓨터의 경우 IC 카드를 직접 장착할 수 있는 확장 슬롯이 구비된 경우가 많으므로 별도의 장비없이 바로 IC 카드와 연결될 수 있다.
참조번호 400의 이동통신용 단말기와 420의 PDA와 같은 단말기의 경우에는 단말기의 크기의 문제 때문에 신용카드 크기의 IC 카드보다는 작은 크기의 IC 카드 전용의 장착부에 IC 카드를 장착하여 본 발명에 따른 서비스를 이용할 수 있다.
IC 카드로부터의 인증 요청이 인증서버(450)에 포함된 본 발명에 따른 인증 장치의 인증송수신부(200-1, 200-2, ...)의 어느 하나를 통해 수신되면 제어부(250)는 이 인증 요청을 처리할 수 있는가를 판단한다(302 단계). 이는 인덱스설정부(120)에서 인증 요청에 대해 사용 가능한 즉, 그 IC 카드에 대해 설정 가능한 인덱스 값이 남아있는가를 판단하여 실행될 수 있다. 즉, 본 발명에 따른 인증 장치가 처리할 수 있는 인증 용량 이내의 인증 요청인가를 판단하여 처리할 수 있는 경우에만 인증 요청에 대해 처리하는 것이다.
사용 가능한 인덱스 값이 없는 경우 즉, 인증을 처리할 수 없는 경우에는 이를 IC 카드로 통보하여 다시 인증 요청을 하도록 한다. 인증을 처리할 수 있는 경우에는 이를 인덱스설정부(210)에 전달하여 인증 요청에 대해 인덱스 값을 설정하도록 한다. 인덱스 값이 설정되면 이 인덱스 값은 인증을 요청한 IC 카드, IC 카드로부터의 인증 요청을 수신한 인증송수신부 및 그 IC 카드로부터의 인증 요청을 처리하는 이하에서 설명될 인증 처리 절차를 지정하는 값이 될 수도 있다.
이때에 IC 카드는 도 4의 단말기들에 장착되어 유무선의 네트워크를 통해 본 발명에 따른 인증 서버(450)와 통신할 것이다. 이 경우 IC 카드가 장착된 단말기들은 유선 혹은 무선의 통신에 있어 자신을 가리키는 값을 각각 내장하고 있으며, 이 자신을 가리키는 값을 인증서버에 전달 혹은 인증서버에서 자신을 가리키는 값을 포함하는 신호를 전송하면 그 신호를 수신하여 그 신호에 자신을 가리키는 값이 포함되어 있으면 자신에게 전송되는 신호인 것을 알 수 있다. 결국 IC 카드를 별도로 지정하는 값이 없더라도 각 IC 카드는 자신이 장착되어 인증 서버와 통신하는 단말기를 통해 필요한 정보를 송수신할 수 있다.
그러나 본 발명에서는 각 IC 카드마다 IC 카드를 나타내는 값인 인덱스 값을 도입하여 각 IC 카드와 통신할 때에 이 인덱스 값을 주고 받으며, 인증 서버에서의 내부 동작 시에도 각 IC 카드를 구별할 수 있는 정보로 사용된다. 즉, 인덱스 값이 설정되면 거꾸로 이 인덱스 값을 통해 인증을 요청한 IC 카드와 그 IC 카드와의 송수신 경로를 제공하는 인증송수신부 하나가 지정되는 것이다.
이하에서는 하나의 인덱스 값에 대해서만 설명이 진행되며, 이 경우 그 인덱스 값에 대응하는 IC 카드와 인증송수신부도 역시 각각 하나로 결정된다.
인증송수신부(200-1, 200-2, ...)는 도 4의 각 단말기와 데이터를 송수신할 수 있는 데이터 송수신 기능을 할 수 있는 구성부를 포함하여야 한다.
키값생성부(220)는 인덱스 값이 설정된 인증 요청에 대해 그 인덱스 값 혹은 그 IC 카드에 대응하는 암호화할 때에 사용되는 임의(random)로 생성되는 제1랜덤값인 R1을 생성한다(303 단계). 제어부(250)는 R1과 인증을 위해 사용될 키를 나타내는 키 테이블과 인덱스 값을 IC 카드로 인증송수신부를 통해 전송한다(304 단계). 이 경우 인증을 요청한 IC 카드는 인증을 요청한 다른 IC 카드와 인덱스 값에 따라 구별되어 결정된다.
키 테이블이 결정되면 그 키 테이블에 대응하는 키가 결정될 수 있다. 폐쇄형의 IC 카드에서는 예를 들면 00번지 내지 FF번지의 내부 메모리의 각 어드레스에 대응하는 장소에 값이 설정되어 있으며, 키 테이블을 어드레스로 하면 그 어드레스에 대응하는 메모리 영역에 저장된 키 값을 찾을 수 있다. 개방형의 IC 카드인 경우에는 응용 프로그램이 애플릿을 이용하여 키 테이블과 대응하는 버퍼와 같은 임시 저장 장소를 설정하여 키 값을 저장하게 한다.
IC 카드는 304 단계에서 전송된 R1, 키 테이블과 인덱스 값을 수신하고, 인증을 진행하기 위해 동작한다. 이하는 IC 카드에의 처리 단계에 대한 설명이다.
IC 카드는 전송되는 인덱스 값(예를 들면 1)을 인증 장치가 자신을 지정하는 값으로 암호화를 위한 제2랜덤값인 R2를 생성하고(305 단계), 이 R2와 304 단계에서 전송받은 키 테이블로 나타내지는 키를 사용해서 소정의 방법을 통해 암호화한 임시 암호값 T1을 생성한다(306 단계).
모든 IC 카드에서의 인증 절차는 세션 형성에 기본을 두고 있으며, 이에 대한 암호화 방법은 각 세션마다 다를 수 있으나 암호값의 검증 절차에 있어서는 서로 암호화 방법이나 사용하는 키들이 동일해야 한다. 그리고 동일한 키를 가져와야 하기 때문에 키 테이블이 필요한 것이다. 즉 동일한 키 테이블로 지정되는 키는 인증 장치와 IC 카드 간에 서로 같은 것이다.
IC 카드에서는 R1과 T1을 사용하여 제1세션키를 생성한다(307 단계). 세션키에 대해서 간략하게 설명한다.
세션키는 일회성의 의미가 있다. 세션이 닫히면 그와 동일한 세션은 다시 생성되지 않는다. 그 이유는 세션값을 생성할 때에 사용되는 랜덤값이 매번 다르게 생성되기 때문이다. 쌍방간에 중요한 데이터를 보내고 받기 위해서는 쌍방만이 아는 키가 필요하다.
그런데 각자 매번 동일한 키를 사용해서 데이터를 암호화해서 보내면 각자가 가지고 있는 키는 언젠가는 해킹될 위험성이 있다. 이와 같은 위험성을 피하기 위해 매번 암호화하는 키를 다르게 설정해야 한다. 이를 위하여 고안된 것이 세션키이며, 이는 데이터를 주고 받은 양쪽이 동일한 값으로 가지고 있어야 한다.
예를 들어 데이터를 주고 받는 측이 각각 A와 B이며, 각각 서로 동일한 키 값인 key1의 값을 가지고 있는 경우 A에서 랜덤값 R1을 생성하여 B로 전송하면 B에서는 랜덤값 R2를 우선 생성한 후 key1과 R2를 사용하여 암호화한 값 T1을 생성한다. 그리고 T1과 R2를 사용하여 암호화한 결과인 세션키1을 생성한다. 세션키1과 R2를 A로 전송한다.
이를 수신한 A에서는 R2와 key1을 사용하여 암호화한 값 T2를 생성하고, R1과 T2를 사용하여 암호화한 결과인 세션키2를 생성한다. 이 경우 A와 B의 양 측에서 생성한 세션키는 서로 동일해야 정상적인 인증이 가능한 것이다. 외부에서는 랜덤으로 생성된 R1과 R2만을 알 수 있으므로 키값에 대한 정보는 외부로 유출되지 않게 되어 보안을 유지할 수 있다.
이와 같은 방법은 본 발명에서도 그대로 혹은 부분적으로 응용되어 사용되며, 이하에서는 이와 같은 방법에 대해 별도의 설명은 하지 않을 것이다.
IC 카드는 305 단계에서 생성된 R2와 307 단계에서 생성된 제1세션키를 사용해서 소정의 방법에 따라 암호화하여 제1암호값을 생성하고(308 단계), 304 단계의 응답으로 IC 카드는 R2와 제1암호값을 인증장치로 전송한다(309 단계).
상기의 설명에서 종래의 인증 장치의 입장이라면 304 단계에서 IC 카드로 필요한 정보를 전송하고 309 단계에서 그에 대한 응답으로 다른 정보를 수신받기 전까지는 인증에 관련된 작업을 하지 않고 기다리는 것이다. 여러 개의 인증 요청이 있는 경우 본 발명에 따른 인증 장치는 304 단계에서 해당되는 IC 카드로 정보를 전송하여 예를 들면 첫 번째 인증 요청에 대한 처리를 실행하는 세션을 중지하고 두 번째 인증에 대한 처리를 위한 세션을 위에서 설명한 혹은 이하에서 설명될 과정에 따라 실행하는 것이다. 그리고 309 단계에서 이전에 처리하다가 중지된 인증 요청에 대한 전송이 입력되면 두 번째 인증에 대한 처리 세션이 중지되는 즉시, 이전에 중지되었던 첫 번째 인증에 대한 처리 세션을 진행한다.
이때에 첫 번째 인증에 대한 처리의 중간 단계에서의 응답이 309 단계에서 전송된 것을 아는 본 발명에 따른 특징적인 방법은 304 단계에서 인덱스(예를 들어 1번 인덱스)를 전송하고, 309 단계에서 인덱스로 1번 인덱스를 표시하는 값이 전송된 것이 수신되면 인증 장치에서는 1번 인덱스에 대응하는 중지되어 메모리부에 저장되어 있던 인증 요청 처리 세션에 대한 값들을 다시 읽어들여 1번 인덱스에 대응되는 인증 처리 세션을 계속하게 하는 것이다.
특히 인덱스는 이하에서 설명될 것이지만 각 인증 요청을 처리하는 세션에 대한 값들을 저장하는 메모리의 어드레스를 지정하는 수단으로도 사용될 수 있다.
인증 요청을 위한 본 발명에 따른 인증송수신부의 어느 하나를 통해 인증 요청이 본 발명에 따른 인증 장치로 입력되고, 인덱스설정부(210)에서는 그 인증 요청에 대해 인덱스 값을 설정하며, 이는 제어부(250)에 의해 관리되므로 여러 개의 인증 요청이 있어서 복수의 인증 처리가 진행되는 경우에도 도 3의 304 단계에서의 전송의 대상과 309 단계에서의 IC 카드로부터의 전송에 대응하는 인증 처리는 다른 IC 카드 혹은 다른 인증 처리와 혼동되지 않고 실시될 수 있다.
309 단계에서 전송된 데이터를 수신하여 제어부(250)는 이를 암호부(230)에 전달하여 R2와 304 단계에서 전송한 키 테이블로 나타내지는 키를 사용하여 소정의 방법에 따라 암호화한 값인 임시 암호값 T2를 생성한다(310 단계).
R1과 T2를 이용하여 제2세션키를 생성하고(311 단계), 암호부(230)는 R2와 제2세션키를 사용해서 소정의 암호화 방법을 통해 암호화한 제2암호값을 생성한다(312 단계).
상기의 경우 정상적으로 절차가 수행된 경우에는 306 단계에서 생성된 T1과 310 단계에서 생성된 T2는 서로 동일한 값이며, 307 단계와 311 단계에서도 서로 동일한 값인 제1세션키와 제2세션키가 각각 생성된다. 그리고 308 단계와 312 단계에서 같은 암호화방법을 사용하므로 각 단계들에서 생성된 제1암호화값과 제2암호화값은 서로 동일하다.
인증부(240)는 309 단계에서 IC 카드로부터 전송받은 제1암호화값과 311 단계에서 생성한 제2암호화값을 비교하여 IC 카드로부터의 제1암호화값이 정당한 값 즉 서명값인가를 확인하여 인증한다(313 단계). 즉, 이는 인증장치 자신이 전송한 값이 상대방인 IC 카드에서 일련의 암호화작업을 통해 산출된 결과물을 다시 돌려받고, 자신이 전송한 값에 일련의 암호화 작업을 통해 얻어진 값과 같은지를 확인하여 상대방 IC 카드의 정당성을 검증하는 것이다.
정당한 IC 카드로부터의 정당한 서명값을 확인하여 인증이 된 것을 IC 카드에 통보하기 위해 암호부(230)는 키 테이블로 나타내지는 키와 제2세션키를 사용해서 소정의 방법에 따라 암호화하여 제3암호화값을 생성한다(314 단계). 그리고 제어부(250)는 제3암호화값과 키인덱스 값 및 인덱스 값을 해당되는 인증송수신부를 통해 IC 카드로 전송하도록 한다(315 단계). 상기와 마찬가지로 304 단계와 마찬가지로 이 경우에도 전송 대상인 IC 카드는 그 IC 카드에 대응하는 인덱스 값으로 정해진다.
IC 카드에서는 키 테이블로 나타내지는 키와 제1세션키를 사용해서 소정의 암호화방법을 통해 제4암호값을 생성한다(316 단계).
상기의 306 단계와 310 단계에서 생성되는 값은 서로 동일한 값이며, 307 단계와 311 단계에서도 서로 동일한 값인 세션키가 각각 생성되며, 308 단계와 312 단계에도 같은 암호화값이 생성되는 것과 같이 정상적으로 절차가 수행된 경우에는 서로 같은 값을 사용하여 서로 같은 암호화방법을 이용하므로 314 단계에서 생성된 제3암호화값은 316 단계에서 생성된 제4암호화값과 동일해야 한다. 동일하지 않은 경우라면 인증이 실패된 것이므로 IC 카드는 인증 장치로 인증이 실패되었다는 메시지를 전송하게 된다.
IC 카드에서는 그리고 315 단계에서 전송받은 제3암호값과 316 단계에서의 제4암호값을 비교하여 인증 확인을 하여(317 단계), 인증 확인이 되면 인증 결과와 함께 해당 인덱스 값을 본 발명에 따른 인증장치에 전송하여(318 단계) 인증 확인을 한다. 이는 309 단계에 대한 응답이 되며, 인덱스 값을 확인하여 다른 IC 카드들로부터의 인증 요청에 대한 처리와 구분된다.
제어부(250)는 인증 확인을 받으면 그 IC 카드로부터의 인증 요청에 대한 처리가 끝난 것으로 하여 인증을 위한 세션을 종료한다(319 단계). 이때에는 인증 요청에 대해 설정된 인덱스 값에 따른 해당 인증 프로세서가 종료되는 것이며, 이 인덱스 값은 다른 인증 요청이 오면 그 인증 요청에 설정되어 재사용될 수 있다.
예를 들어 인덱스 값으로 0부터 255까지의 값이 지정되어 있고, 각 인증에 대해 차례대로 인덱스 값이 지정되는 경우에 인덱스 값이 1로 지정된 인증 요청이 끝나면 다음의 인증 요청에 대해 바로 1의 인덱스 값이 지정될 수도 있고 혹은 255 및 0의 인덱스 값에 대한 할당이 끝난 후에야 다시 1의 인덱스 값이 지정될 수 있도록 운영될 수 있다.
315 단계에서 IC 카드로 필요한 정보들을 전송한 후에 IC 카드로부터 인증 확인을 받는 318 단계 중에 본 발명에 따른 인증장치는 다른 인증 요청에 대한 처리를 할 수 있으며, 이는 이미 위에서 설명된 것이다.
지금까지는 주로 하나의 인증 요청에 대해 처리하는 과정을 예를 들어 설명하였다. 하나의 인증 요청을 처리하는 중에 다른 인증 요청이 전송되는 경우 그 인증 요청에 대해 설정할 수 있는 인덱스 값에 여유가 있더라도 예를 들면 제어부(250)가 이전의 인증 요청 혹은 인증 요청들에 대한 처리를 계속하고 있어 제어부(250)의 기능을 제공하는 프로세서의 처리 능력에 여유가 없다면 다른 인증 요청을 처리할 수 없을 것이다. 또는 암호부(230)에서 암호화하는 중에 다른 인증 요청에 대한 인증 처리에 필요한 암호화를 할 수는 없을 것이다. 그러나 예를 들면 랜덤값 R1을 생성하여 해당되는 IC 카드로 필요한 값들을 전송하고 그에 대한 응답을 기다리는 동안 제어부(250)는 다른 IC 카드로부터의 인증 요청을 수신하여 그 인증 요청에 대응하는 인덱스 값을 설정하게 할 수 있을 것이며, 혹은 암호화부(230)도 310 단계 내지 315 단계에서의 암호화 단계를 끝낸 후 다른 인덱스 값에 대응하는 인증 요청에 따른 암호화 과정을 실행할 수 있을 것이다.
이런 경우 각 인증 요청에 대해 인증 처리를 하는 소프트웨어적인 프로세서를 생성하여 각 프로세서들간의 처리 순서를 할당하여 한 프로세서의 절차가 필요한 데이터를 기다리는 대기 상태인 경우 다른 프로세서를 실행하도록 하여 여러 개의 프로세서가 실질적으로 동시에 실행될 수 있도록 한다.
이를 위해 301 내지 303 단계 혹은 310 단계 내지 315 단계를 진행하는 중에 다른 IC 카드로부터의 인증 요청이 수신되면 제어부(250)는 이를 인덱스설정부(210)에 알려서 현재 진행되고 있는 인증을 요청한 IC 카드에 설정된 인덱스 값과는 다른 인덱스 값을 설정하게 하고, 현재 진행되는 인증 절차의 단계 중에 혹은 인증이 종료된 후에 상기 다른 인덱스 값에 대응하는 인증 절차를 진행하게 한다.
그리고 복수의 인증 처리들간의 처리 순서 할당을 위해 제어부(250)는 복수의 IC 카드로부터 복수개의 인증 요청이 있으면 먼저 인증 요청을 한 IC 카드로부터의 인증 요청에 더 높은 우선 순위를 부가하여 인증처리를 하며, 이 경우 복수의 IC 카드로부터의 인증을 다중하여 진행하는 것은 시분할(time sharing) 방식에 따라 실행할 수 있다.
이 경우에 서로 다른 인증 요청을 원활하게 처리하게 위해 제어부(250)는 복수의 IC 카드로부터의 인증 요청에 대해서 인덱스설정부(210)를 통해 각 인증 요청마다 별도의 인덱스 값을 설정하게 하고, 키값생성부(220), 암호부(230) 및 인증부(240)에 대해 각 인덱스 값별로 결과를 출력하게 하는 것이 바람직하다.
이를 위해 메모리부(260)에 저장되는 키값생성부(220), 암호부(230) 및 인증부(240)에서 출력되는 값들은 인덱스설정부(210)에서 설정한 인덱스 값을 기준으로 저장되는 것이 좋다.
도 5는 본 발명에 따른 장치의 내부 구성의 일부인 메모리부(260)의 구성의 일 예를 도시한 것이다. 도 5는 메모리 영역을 개념적인 편이를 위해 구분한 것이며, 500의 영역은 인덱스값, 510은 키 테이블 저장부 혹은 키 테이블로 나타내지는 키값 저장부, 520의 영역은 랜덤값인 R1, R2의 저장부 그리고 530의 영역은 세션키 저장부로 사용될 수 있다. 그리고 이외에도 필요한 값들이 저장되어야 할 영역을 530의 오른쪽 옆에 추가하여 해당되는 값이 저장되도록 한다. 예를 들어 인덱스 값이 1로 설정된 인증 요청에 대한 키 테이블은 키 테이블 저장부(510)의 제일 윗 부분의 인덱스 값 1에 대응되는 영역에 저장하는 것이며, 다른 값들로 마찬가지로 저장한다.
인덱스값(500)의 영역은 1부터 n까지의 인덱스 값이 미리 지정된 것이며, 예를 들어 인증 요청에 대해 2의 값이 인덱스 값에 설정되면 그 인증 요청에 대한 인증 처리 과정에서 생성되는 값들은 모두 인덱스 값이 2를 포함하는 영역(550)에 저장되도록 한다. 제어부는 인덱스 값이 2인 영역(550)에 그 인증 요청에 대한 값들을 저장하고 필요시에는 해당되는 영역에서만 인출한다.
도 5의 모습은 흡사 인덱스 값을 주소로 사용할 수 있는 것처럼 구성되어 있다. 예를 들어 하나의 인덱스 값에 대응하여 저장될 값이 32비트로 구성될 수 있다면 첫 번째 인덱스 값은 0, 두 번째 인덱스 값은 4와 같이 정할 수 있고 이 경우 인덱스 값은 주소의 값과 완전히 동일하게 사용될 수 있다. 따라서 인덱스 값은 도 5와 같이 1, 2, 3, ..., n과 같이 설정할 수도 있고, 다양하게 다른 형태로 설정할 수도 있다.
도 5와 같이 메모리에 저장된 내용들은 하나의 세션이 끝나면 바로 삭제될 수도 있고, 혹은 다른 세션에 할당될 때까지 그 내용이 유지되다가 다른 세션에 따른 값으로 변경되어 저장될 수도 있을 것이며, 어느 경우든 본 발명의 요지는 그대로 유지되면서 실행될 수 있다.
그리고 도 5에는 표시되어 있지 않지만 인증 요청이 들어온 시각의 전후를 반영하여 각 인덱스 값별로 우선 순위를 지정하는 영역을 추가로 지정할 수 있으며 이외에도 다양한 영역을 추가할 수 있는 것은 자명한 것이다.
도 5의 경우 인덱스 값은 1부터 n까지로 구성되며, 이 경우 n개의 인증 요청을 처리하는 중에 다른 인증 요청이 전송되면 더 이상 처리할 수 없게된다. 이런 경우 제어부(250)는 다른 인증을 요청한 IC 카드로 인증 처리할 수 없음을 알리게 된다. 이때에 인증 처리를 바로 할 수 없음을 알리면서 그 인증 요청을 일종의 대기 버퍼에 저장하여 대기하게 하며, 현재 진행되고 있던 어느 하나의 인증이 종료되면 제어부(250)는 그 종료된 인증 절차에 설정된 인덱스 값을 대기하고 있는 다른 인증 요청에 설정되도록 인덱스설정부(210)에 전달하여 인증 처리되도록 한다. 물론 이 대기하고 있다가 인증 처리되는 인증 요청은 또 다른 인증 요청이 전송되어 처리되기 전까지는 우선 순위가 최저가 될 것이다.
종래의 IC 카드 인증의 경우 하나의 세션을 생성하여 데이터를 송수신한 이후 다음 세션을 설정하여 데이터를 주고받으며, 이와 같은 과정이 반복된다. 그러나 본 발명을 통해서는 하나의 세션이 생성되어 데이터를 주고 받는 경우에도 다른 세션들을 생성하여 그에 따른 데이터 처리를 하는 것이므로 멀티 세션이 형성되어 종래의 인증 절차보다 훨씬 빠른 결과를 얻을 수 있다.
도 6a는 종래의 인증 방법을 통해 3개의 인증이 동시에 입력되어 처리될 때에 걸리는 시간을 도시한 것이며, 도 6b는 본 발명에 따른 인증 방법을 통해 3개의 인증이 동시에 입력되어 처리될 때에 걸리는 시간을 도시한 것이다.
도 6a의 경우 하나의 세션에 대한 처리가 다 완료되어야 다음 세션에 대한 처리를 할 수 있다. 따라서 각 세션을 순차적으로 처리하여 t3의 시간이 지나야 3개의 인증 처리를 모두 완료할 수 있다. 이때에 세션 2는 세션 1이 끝날 때까지 t1 동안, 세션 3은 세션 1과 세션 2가 끝날 때까지 t1+t2 동안 대기해야 한다.
그러나 6b의 경우 1번 세션이 진행되는 중 예를 들어 도 3의 304 단계, 309 단계 및 315 단계와 같이 데이터가 상대방에게 전송되는 과정 중에 2번 세션에 대한 처리를 할 수 있으며, 마찬가지로 3번 세션 역시 1번 세션 및 2번 세션 중 데이터 전송 구간 중에 처리될 수 있다. 이를 통해 세션 2가 끝나는 시간 t2'은 도 6a의 t2보다 짧으며, 3번째의 세션에 대한 처리가 끝나는 t3'의 시간은 도 6a의 t3보다는 짧다. 결과적으로 동시에 인증을 위한 세션이 많아질수록 즉 동시에 인증을 요청하는 IC 카드들이 많아질수록 이 시간적인 차이는 더 커지게 된다.
또한 IC 카드의 경우 상기에 설명된 인증의 기능만을 하는 것이 아니며 기타 부가 기능을 제공하기 위한 기능을 실행하므로 그로 인해 지체되는 동안 본 발명에 따른 인증 장치에서는 다른 세션에 대한 처리를 할 수 있어 본 발명의 효용은 더욱 커지게 된다.
상기와 같은 처리를 통해 하나의 인증 요청에 대해 인증을 하는 종래의 인증 방법보다 같은 시간 내에 훨씬 많은 수의 인증 처리 과정을 생성하여 복수개의 인증을 동시에 처리할 수 있으므로 성능면에서 월등하다. 또한 각각의 인증 절차에 대해 서로 다른 세션키를 사용하여 암호화하므로 종래의 경우보다 더욱 안전하다고 할 수 있다. 즉, 공격자가 여러 개의 세션키 중에 어느 하나의 세션키를 불법으로 획득하더라도 다른 인증 절차들에 사용되고 있는 혹은 사용될 다른 세션키들을 생성할 수도 없고, 유출된 세션키를 생성한 보안키를 유도하는 것도 실질적으로 불가능하다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다. 상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.
그리고 본 발명의 일부 단계들은, 또한, 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드로 저장되고 실행될 수 있다.
본 발명에 의하면, 복수의 IC 카드로부터의 인증 요청에 대한 인증을 하는 방법에 있어서, IC 카드로부터의 인증 요청을 수신하여, 각 인증 요청에 대해 그 IC 카드에 대한 인덱스 값을 설정 가능한가를 확인하여 IC 카드마다 인덱스 값을 설정하고, 인덱스 값이 설정된 인증 요청에 대해 암호화를 위한 제1랜덤값을 생성하여 인증을 위해 사용할 키를 가리키는 키 테이블, 인덱스 값과 함께 해당 IC 카드에게 전송하고, 전송받은 IC 카드에서 생성한 암호화를 위한 제2랜덤값, 제1랜덤값 및 키 테이블로 나타내지는 키를 사용하여 IC 카드에서 암호화한 결과인 제1암호값, 제2랜덤값 및 IC 카드에 대응하는 인덱스 값을 IC 카드로부터 수신하여, 수신한 인덱스 값으로부터 해당되는 IC 카드를 확인하고, 그 IC 카드에 대한 인증을 위해 제2랜덤값과 키 테이블로 나타내지는 키 및 제1랜덤값을 사용해서 제2세션키를 생성하며, 제2랜덤값과 제2세션키를 사용하여 암호화한 제2암호값을 생성하여, 제1암호값과 제2암호값을 소정의 방법에 따라 비교 검증하여 인증하고, IC 카드에 대한 키 테이블로 나타내지는 키와 제2세션키를 사용하여 암호화한 제3암호값을 생성하여, IC 카드로 제3암호값, 키 테이블 및 인덱스 값을 전송하고, 키 테이블로 나타내지는 키와 제1세션키를 사용하여 제4암호값을 생성하고 제3암호값과 비교하여 인증이 확인된 것을 IC 카드로부터 인덱스 값과 함께 수신하여 해당 인증을 종료하여, 인증을 요청하는 IC카드마다 인덱스를 부여하여 처리하고, 하나의 인증 절차 중에도 다른 인증 절차를 처리할 수 있으며, 그 결과 종래의 복수개의 SAM 카드를 사용해서 인증하는 것에 비해 소요되는 비용을 대폭 절감할 수 있고, 전체 시스템의 효율을 증가시킬 수 있으며, 물건이나 용역을 구매하고 그 결제를 위해 각종의 통신망을 통한 인증 요청에 효율적으로 대응하여 거래에 대한 인증을 할 수 있으므로 일반의 그리고 전자적인 상거래를 원활하게 할 수 있는 기술적인 뒷받침을 제공할 수 있다.
도 1은 복수의 IC 카드로부터의 인증 요청에 대해 본 발명에 따라 인증하는 방법의 흐름을 도시한 것이다.
도 2는 복수의 IC 카드로부터의 인증 요청에 대해 본 발명에 따라 인증하는 장치의 구성을 블록으로 도시한 것이다.
도 3은 도 1의 흐름을 더 상세하게 도시한 일 예의 흐름을 도시한 것이다.
도 4는 본 발명이 사용되는 환경의 일 예를 도시한 것이다.
도 5는 본 발명에 따른 장치의 내부 구성의 일부인 메모리부의 구성의 일 예를 도시한 것이다.
도 6a는 종래의 인증 방법을 통해 3개의 인증이 동시에 입력되어 처리될 때에 걸리는 시간을 도시한 것이다.
도 6b는 본 발명에 따른 인증 방법을 통해 3개의 인증이 동시에 입력되어 처리될 때에 걸리는 시간을 도시한 것이다.

Claims (8)

  1. 복수의 IC 카드로부터의 인증 요청에 대한 인증을 하는 방법에 있어서,
    (a) 상기 IC 카드로부터의 인증 요청을 수신하는 단계;
    (b) 각 인증 요청에 대해 그 IC 카드에 대한 인덱스 값을 설정 가능한가를 확인하여 IC 카드마다 인덱스 값을 설정하는 단계;
    (c) 인덱스 값이 설정된 인증 요청에 대해 암호화를 위한 제1랜덤(random)값을 생성하여 인증을 위해 사용할 키를 가리키는 키 테이블, 상기 설정된 인덱스 값과 함께 해당 IC 카드에게 전송하는 단계;
    (d) 상기 (c) 단계에서 전송받은 IC 카드에서 생성한 암호화를 위한 제2랜덤값, 상기 제1랜덤값 및 상기 키 테이블로 나타내지는 키를 사용하여 상기 IC 카드에서 소정의 방법을 통해 암호화한 결과인 제1암호값, 상기 제2랜덤값 및 상기 IC 카드에 대응하는 인덱스 값을 상기 IC 카드로부터 수신하는 단계;
    (e) 수신한 인덱스 값으로부터 해당되는 IC 카드를 확인하고, 그 IC 카드에 대한 인증을 위해 상기 수신한 제2랜덤값과 상기 키 테이블로 나타내지는 키 및 제1랜덤값을 사용해서 제2세션키를 생성하며, 상기 제2랜덤값과 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제2암호값을 생성하는 단계;
    (f) 상기 제1암호값과 제2암호값을 소정의 방법에 따라 비교 검증하여 인증하는 단계;
    (g) 상기 인덱스 값이 설정된 IC 카드에 대한 키 테이블로 나타내지는 키와 상기 제2세션키를 사용하여 소정의 방법을 통해 암호화한 제3암호값을 생성하는 단계;
    (h) 상기 (b) 단계에서 인덱스 값이 설정되었으며 상기 (f) 단계에서 인증된 IC 카드로 상기 제3암호값, IC 카드에 설정된 키 테이블 및 상기 (b) 단계에서 설정된 IC 카드에 대응하는 인덱스 값을 전송하는 단계; 및
    (i) 상기 (g) 단계에서 전송받은 키 테이블로 나타내지는 키와 제1세션키를 사용하여 소정의 방법을 통해 암호화하여 제4암호값을 생성하고 이를 상기 제3암호값과 소정의 방법에 따라 비교하여 인증이 확인된 것을 상기 인증된 IC 카드로부터 인덱스 값과 함께 수신하여 해당 인증을 종료하는 단계;를 포함하며,
    하나의 IC 카드로부터의 인증 요청에 대해 상기 (a) 내지 (i) 단계를 진행하는 중에 다른 IC 카드로부터의 인증 요청이 수신되면 상기 (b) 단계에서 현재 진행되고 있는 인증을 요청한 IC 카드와는 다른 인덱스 값을 설정하여 현재 진행되는 인증 절차의 단계 중에 혹은 인증이 종료된 후에 상기 다른 인덱스 값에 대응하는 인증 절차를 진행하여 복수의 IC 카드로부터의 인증 요청에 대해 시분할 방식으로 처리하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 방법.
  2. 제1항에 있어서,
    상기 (b) 단계에서 인덱스 값을 설정할 수 없는 경우 현재 인증 처리할 수 없음을 인증을 요청한 IC 카드에게 알리는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 방법.
  3. 삭제
  4. 복수의 IC 카드로부터의 인증 요청에 대한 인증을 하는 장치에 있어서,
    상기 IC카드로부터의 인증 요청과 인증 과정에서의 응답을 수신하고 인증을 요청한 각 IC 카드에게 인증 과정을 위한 소정의 데이터를 전송하며 상기 인증 요청한 IC 카드 각각과 대응하는 복수의 인증송수신부;
    복수의 인증 요청들에 대한 각 인증 처리를 구분하는 값인 인덱스 값을 설정하는 인덱스설정부;
    각 IC 카드로부터의 각 인증 요청에 대해 각 IC 카드별로 암호화를 위한 랜덤값을 생성하고 인증을 위해 사용할 키를 가리키는 키 테이블을 보유하는 키값생성부;
    인증을 요청한 IC 카드로부터 전송된 랜덤값, 상기 IC 카드에 대응하여 상기 키값생성부에서 생성된 랜덤값, 키 테이블로 나타내지는 키를 이용하여 소정의 방법에 따라 상기 인증 요청에 대한 인증을 위한 암호값과 IC 카드 전송용 암호값을 생성하는 암호부;
    상기 IC 카드에서 전송되는 암호값과 그 IC 카드에서 전송된 랜덤값, 상기 IC 카드에 대응하여 상기 키값생성부에서 생성한 랜덤값 및 키 테이블로 나타내지는 키를 이용하여 상기 암호부에서 생성한 인증을 위한 암호값을 소정의 방법에 따라 비교하여 상기 카드로부터의 인증 요청에 대해 인증하는 인증부; 및
    상기 복수의 인증송수신부의 어느 하나를 통해 인증송수신부와 대응하는 IC 카드로부터 인증 요청이 수신되면 이를 상기 인덱스설정부에 전달하여 각 인증 요청에 대한 인덱스 값을 설정하게 하고, 그 인증 요청에 대한 랜덤값과 키 테이블을 상기 수신한 인증송수신부를 통해 대응하는 IC 카드에 전송하게 하며, 그 응답으로 IC 카드로부터 그 IC 카드에 대응하는 인증송수신부를 통해 랜덤값과 암호값이 수신되면 이를 상기 암호부와 인증부에 전달하여 그 IC 카드로부터의 인증 요청에 대한 인증을 하게 하며, 인증된 IC 카드로 대응되는 인증송수신부를 통해 상기 IC 카드에 대응하여 상기 암호부에서 생성한 IC 카드 전송용 암호값, IC 카드에 대응하는 키 테이블을 전송하게 하며, 그 응답으로 IC 카드로부터 인증송수신부를 통해 인증 확인이 수신되면 그 IC 카드에 대한 인증을 종료하게 하는 제어부;를 포함하며,
    하나의 IC 카드로부터의 인증 요청을 처리하는 중에 다른 IC 카드로부터의 인증 요청이 수신되면 현재 진행되고 있는 인증을 요청한 IC 카드와는 다른 인덱스 값을 설정하여 현재 진행되는 인증 절차의 단계 중에 혹은 인증이 종료된 후에 상기 다른 인덱스 값에 대응하는 인증 절차를 진행하여 복수의 IC 카드로부터의 인증 요청에 대해 시분할 방식으로 처리하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치.
  5. 제4항에 있어서,
    상기 제어부는 복수의 IC 카드로부터의 인증 요청에 대해서 상기 인덱스설정부를 통해 각 인증 요청마다 별도의 인덱스 값을 설정하게 하고,
    상기 키값생성부, 암호부 및 인증부에 대해 각 인덱스 값별로 결과를 출력하게 하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치.
  6. 제4항 또는 5항에 있어서,
    복수의 IC 카드로부터 복수개의 인증 요청이 있으면 상기 제어부는 먼저 인증 요청을 한 IC 카드로부터의 인증 요청에 더 높은 우선 순위를 부가하여 인증처리 하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치.
  7. 제4항 또는 제5항에 있어서,
    상기 인덱스설정부, 키값생성부, 암호부 및 인증부에서 출력되는 값들을 저장할 수 있는 메모리부;를 더 포함하며,
    상기 제어부는 상기 메모리부에 각 인증요청에 대해 상기 인덱스설정부에서 설정한 인덱스 값을 기준으로 상기 키값생성부, 암호부 및 인증부에서 출력되는 값들을 저장하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치.
  8. 제7항에 있어서,
    상기 인덱스설정부는 각 인증 요청에 대해 소정 범위의 인덱스 값을 차례로 설정하고, 만일 상기 소정 범위의 인덱스 값이 모두 설정되어 인증하는 중에 다른 인증 요청이 수신되면 상기 제어부는 다른 인증을 요청한 IC 카드로 인증 처리할 수 없음을 알리며,
    소정 범위의 인덱스 값이 모두 설정되어 각 인덱스 값별로 인증하는 중에 다른 인증 요청이 수신된 후 어느 하나의 인증이 종료되면 상기 제어부는 그 종료된 인증 절차에 설정된 인덱스 값을 상기 수신된 다른 인증 요청에 설정되도록 상기 인덱스설정부에 전달하는 것을 특징으로 하는 복수의 IC 카드로부터의 인증 요청에 대한 인증 장치.
KR1020040060906A 2004-08-02 2004-08-02 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치 KR100494178B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040060906A KR100494178B1 (ko) 2004-08-02 2004-08-02 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040060906A KR100494178B1 (ko) 2004-08-02 2004-08-02 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치

Publications (1)

Publication Number Publication Date
KR100494178B1 true KR100494178B1 (ko) 2005-06-08

Family

ID=37302898

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040060906A KR100494178B1 (ko) 2004-08-02 2004-08-02 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치

Country Status (1)

Country Link
KR (1) KR100494178B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330961B1 (ko) 2012-12-26 2013-11-18 신한카드 주식회사 모바일 신용카드의 발급처리 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101330961B1 (ko) 2012-12-26 2013-11-18 신한카드 주식회사 모바일 신용카드의 발급처리 방법
WO2014104434A1 (ko) * 2012-12-26 2014-07-03 신한카드 주식회사 모바일 신용카드의 발급처리 방법

Similar Documents

Publication Publication Date Title
US8132722B2 (en) System and method for binding a smartcard and a smartcard reader
US9813236B2 (en) Multi-factor authentication using a smartcard
US10115101B2 (en) Wireless establishment of identity via bi-directional RFID
CN101300808B (zh) 安全认证的方法和设置
CN102088353B (zh) 基于移动终端的双因子认证方法及系统
EP1801721A1 (en) Computer implemented method for securely acquiring a binding key for a token device and a secured memory device and system for securely binding a token device and a secured memory device
US20100153731A1 (en) Lightweight Authentication Method, System, and Key Exchange Protocol For Low-Cost Electronic Devices
CN114868123A (zh) 非接触式卡个人标识系统
US9445269B2 (en) Terminal identity verification and service authentication method, system and terminal
CN101777978A (zh) 一种基于无线终端的数字证书申请方法、系统及无线终端
CN110147666B (zh) 物联网场景下的轻量级nfc身份认证方法、物联网通信平台
CN112602104A (zh) 用于非接触卡的密码认证的系统和方法
US11544368B2 (en) Secure password generation and management using NFC and contactless smart cards
US20220237596A1 (en) Systems and methods for provisioning point of sale terminals
US20230252451A1 (en) Contactless card with multiple rotating security keys
CN103107888A (zh) 面向移动终端的动态多属性多级别的身份认证方法
CN114981828A (zh) 控制用于非接触式卡的小应用程序的技术
KR100494178B1 (ko) 복수의 ic 카드로부터의 인증 요청에 대한 인증 방법 및그 장치
KR101330961B1 (ko) 모바일 신용카드의 발급처리 방법
CN112184150A (zh) 数据共享交换中的多方审批方法、装置、系统和电子装置
KR100799560B1 (ko) 모바일 전파식별을 위한 보안 방법, 이를 위한 모바일 전파식별 리더 및 그 시스템
KR20140007628A (ko) 모바일 계좌이체 검증처리 방법
JP7461564B2 (ja) セキュアエレメントとモバイルデバイスとのセキュアなエンドツーエンドペアリング
CN116264695A (zh) Nfc事务
CN116264696A (zh) Nfc事务

Legal Events

Date Code Title Description
A201 Request for examination
A302 Request for accelerated 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: 20130531

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20140530

Year of fee payment: 10

FPAY Annual fee payment

Payment date: 20150601

Year of fee payment: 11

FPAY Annual fee payment

Payment date: 20170504

Year of fee payment: 13

FPAY Annual fee payment

Payment date: 20180503

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20190502

Year of fee payment: 15