KR20090041358A - 통신 시스템 및 통신 방법 - Google Patents

통신 시스템 및 통신 방법 Download PDF

Info

Publication number
KR20090041358A
KR20090041358A KR1020087007210A KR20087007210A KR20090041358A KR 20090041358 A KR20090041358 A KR 20090041358A KR 1020087007210 A KR1020087007210 A KR 1020087007210A KR 20087007210 A KR20087007210 A KR 20087007210A KR 20090041358 A KR20090041358 A KR 20090041358A
Authority
KR
South Korea
Prior art keywords
identifier
key
random number
polling
generating
Prior art date
Application number
KR1020087007210A
Other languages
English (en)
Other versions
KR101472142B1 (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 KR20090041358A publication Critical patent/KR20090041358A/ko
Application granted granted Critical
Publication of KR101472142B1 publication Critical patent/KR101472142B1/ko

Links

Images

Classifications

    • 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
    • H04L9/3236Cryptographic 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 using cryptographic hash functions
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K17/00Methods or arrangements for effecting co-operative working between equipments covered by two or more of main groups G06K1/00 - G06K15/00, e.g. automatic card files incorporating conveying and reading operations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04BTRANSMISSION
    • H04B5/00Near-field transmission systems, e.g. inductive or capacitive transmission systems
    • H04B5/40Near-field transmission systems, e.g. inductive or capacitive transmission systems characterised by components specially adapted for near-field transmission
    • H04B5/48Transceivers
    • 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
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless
    • H04L2209/805Lightweight hardware, e.g. radio-frequency identification [RFID] or sensor

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

본 발명은, 간단한 구성으로 안전하면서 편리성이 높은 정보 통신을 행할 수 있는 통신 시스템 및 통신 방법, 정보 처리 장치 및 방법, 디바이스, 프로그램, 및 기록 매체에 관한 것이다. 리더 라이터(100)의 비밀 키 기억부(101)에는, 복수의 비밀 키 기억부가 기억되어 있고, 그들 비밀 키를 특정하는 식별자가, IC 카드(200)에 송신된다. IC 카드(200)는, 수신한 식별자에 대응하는 비밀 키를 읽어내고, 난수 생성부(202)에 의해 생성된 난수를 암호화하고, 리더 라이터(100)에 송신한다. 리더 라이터(100)는, 비밀 키 기억부(101)에 기억되고, 먼저 IC 카드(200)에 송신한 식별자에 대응하는 비밀 키를 읽어내고, 수신한 암호화된 난수를 복호한다. 본 발명은, 예를 들면, NFCIP 방식으로 통신을 행하는 장치에 적용할 수 있다.
Figure P1020087007210
디바이스, 식별자, 폴링 리퀘스트, 폴링 레스펀스, 키, 해시 함수

Description

통신 시스템 및 통신 방법{COMMUNICATION SYSTEM AND COMMUNICATION METHOD}
본 발명은, 통신 시스템 및 통신 방법, 디바이스, 정보 처리 장치 및 방법, 프로그램, 및 기록 매체에 관한 것으로, 특히, 간단한 구성으로 안전하면서 편리성이 높은 정보 통신을 행할 수 있도록 하는 통신 시스템 및 통신 방법, 디바이스, 정보 처리 장치 및 방법, 프로그램, 및 기록 매체에 관한 것이다.
근접 통신을 행하는 시스템으로서는, 예를 들면, IC(Integrated Circuit) 카드 시스템이 널리 알려져 있다. IC 카드 시스템에서는, 리더 라이터가 전자파를 발생함으로써, 소위 RF(Radio Frequency) 필드(자계)를 형성한다. 그리고, 리더 라이터에, IC 카드가 근접하면, IC 카드는, 전자 유도에 의해, 전원의 공급을 받음과 함께, 리더 라이터와의 사이에서 데이터 전송을 행한다.
IC 카드 시스템에서, 1개의 리더 라이터에 대하여, 복수의 IC 카드가 접근해 온 경우에는, 리더 라이터가, 그 복수의 IC 카드 각각을 식별하고, 통신 상대를 특정하여, 통신을 행할 필요가 있다.
복수의 IC 카드를 식별하는 방법으로서는, IC 카드에 유니크한 식별 번호로서의 ID를 할당하고, 그 ID를, IC 카드로부터 리더 라이터에 보고시키는 방법이 제안되어 있다. 이와 같이, IC 카드에 유니크한 ID를 할당한 경우에는, IC 카드끼리 ID가 중복하는 것은 없다.
또한 IC 카드에서, 난수를 발생하고, 그 난수를, 자신의 ID로서, 일시적으로 사용하는 방법도 제안되어 있다. 난수를 ID로서 이용하는 경우에는, 복수의 IC 카드에서, 동일한 난수가, ID로서 이용되는 것이 생길 수 있다. 이 경우, 리더 라이터가, 그 ID 앞으로 데이터를 송신하면, 복수의 IC 카드가 동시에 응답함으로써 혼신(컬리젼)이 생겨서, 리더 라이터가, IC 카드로부터의 응답을 정상적으로 취득할 수 없게 된다.
그러한 것을 방지하면서도, 복수의 통신 상대 각각을 확실하게 식별하여, 2이상의 통신 상대로부터 동시에 응답이 돌아오는 것을 방지할 수 있도록 하는 제안도 되어 있다(예를 들면, 특허 문헌 1 참조).
[특허 문헌1] 일본 특허 제3695464호
<발명의 개시>
<발명이 해결하고자 하는 과제>
그런데, 1매의 IC 카드에 하나의 ID를 할당하는 바와 같은 경우, 그 IC 카드를 식별하는 것은 가능이다. 그러나, 예를 들면, 1매의 IC 카드를 복수의 서비스에 이용할 수 있도록 하고, 그들 서비스마다 ID를 할당하고자 하는 경우에는, ID의 수가 증대하여, 최적의 방법이라고는 할 수 없다.
또한, IC 카드에 ID를 할당한 경우, ID는, 어느 리더 라이터에서도 읽어내는 것이 가능해지므로, 예를 들면, IC 카드를 갖고 있으면, 그 ID에 의해 카드의 주인이 특정되어, 그 사람의 프라이버시가 침해된다고 하는 프라이버시나 시큐러티의 문제가 있었다.
리더 라이터와 통신 가능한 범위에 있는 IC 카드나 RFID를 식별하기 위한 방식인 NFCIP(Near Field Communication-Interface and Protocol)-1을 표준화한 규격으로서 ISO/IEC18092(NFCIP-1)가 규정되어 있다. 이 규격에 따르면, IC 카드나 RFID에 고유한 ID가 리더 라이터에 송신되는 일 없이, 충돌을 방지하는 것이 가능하게 된다.
그러나, NFCIP-1에서는, IC 카드나 RFID에 고유한 ID가 송신되지 않으므로, 이대로는 개개의 IC 카드나 RFID 그 자체를 식별할 수 없다. 이 때문에, 개개의 IC 카드나 RFID를 개개로 식별할 필요가 있는 경우, 칩의 데이터 영역에 IC 카드나 RFID에 고유한 ID를 기억시켜 두고, 필요에 따라서 고유한 ID를 리더 라이터에 송신하는 것도 생각되지만, 이 방식으로는, IC 카드나 RFID에 고유한 ID를 암호화하여 안전하게 송신할 필요가 있다.
본 발명은 이러한 상황을 감안하여 이루어진 것으로, 간단한 구성으로 안전하면서 편리성이 높은 정보 통신을 행할 수 있도록 하는 것이다.
<과제를 해결하기 위한 수단>
본 발명의 일 측면의 통신 시스템은, 통신을 행하는 정보 처리 장치 및 디바이스에 의해 구성되는 통신 시스템으로서, 상기 정보 처리 장치는, 하나 이상의 키를 기억하는 제1 기억 수단과, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 수단과, 상기 식별자에 의해 식별되는 상기 키를 상기 제1 기억 수단으로부터 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하 여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 수단을 구비하고, 상기 디바이스는, 난수를 생성하는 난수 생성 수단과, 하나 이상의 키를 기억하는 제2 기억 수단과, 상기 폴링 리퀘스트에 포함되는 상기 식별자에 대응하는 키를, 상기 제2 기억 수단으로부터 읽어내는 읽어내기 수단과, 상기 읽어내기 수단에 의해 읽어내어진 상기 키로, 상기 난수 생성 수단에 의해 생성된 난수를 암호화하는 암호화 수단과, 상기 암호화 수단에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 수단을 구비한다.
상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고, 상기 제1 기억 수단과 상기 제2 기억 수단의 각각은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하도록 할 수 있다.
상기 폴링 리퀘스트 생성 수단은, 상기 폴링 리퀘스트에, 상기 식별자로서, 상기 제1 식별자를 포함시키고, 상기 폴링 레스펀스 생성 수단은, 상기 폴링 레스펀스에, 상기 제2 식별자를 더 포함시키며, 상기 취득 수단은, 상기 폴링 리퀘스트에 포함된 제1 식별자와 상기 폴링 레스펀스에 포함되는 상기 제2 식별자로부터, 상기 키를 특정하여, 상기 제1 기억 수단으로부터 읽어내도록 할 수 있다.
상기 디바이스는, 상기 난수 생성 수단에 의해 생성된 상기 난수에 해시 함수를 적용한 연산을 행하는 제1 해시 연산 수단을 더 구비하고, 상기 폴링 레스펀스 생성 수단은, 상기 제1 해시 연산 수단에 의해 연산된 제1 해시값을 상기 폴링 레스펀스에 더 포함시키고, 상기 정보 처리 장치는, 상기 취득 수단에 의해 취득된 상기 난수에 해시 함수를 적용한 연산을 행하는 제2 해시 연산 수단과, 상기 제2 해시 연산 수단에 의해 연산된 제2 해시값과, 상기 폴링 레스펀스에 포함되는 제1 해시값을 대조하는 대조 수단을 더 구비하도록 할 수 있다.
본 발명의 통신 시스템의 일 측면의 통신 방법은, 통신을 행하는 정보 처리 장치 및 디바이스에 의해 구성되는 통신 시스템의 통신 방법으로서, 상기 정보 처리 장치는, 하나 이상의 키를 기억하고, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하고, 상기 식별자에 의해 식별되는 상기 키를 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 스텝을 포함하고, 상기 디바이스는, 난수를 생성하여, 하나 이상의 키를 기억하고, 상기 폴링 리퀘스트에 포함되는 상기 식별자에 대응하는 키를 읽어내고, 읽어내어진 상기 키로, 생성된 난수를 암호화하고, 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 스텝을 포함한다.
본 발명의 일 측면의 통신 시스템 및 통신 방법에서는, 통신을 행하는 쌍방이, 각각 하나 이상의 키를 기억하고, 한쪽으로부터, 다른쪽으로, 기억되어 있는 하나 이상의 키 중의 어느 키를 이용할지를 나타내는 식별자의 데이터를 송신하고, 그러한 데이터를 수신한 측은, 그 식별자에 따른 키를 이용하여 생성한 난수를 암호화하고, 데이터를 송신해 온 상대에게 돌려준다.
본 발명의 일 측면의 정보 처리 장치는, 디바이스와 통신을 행하는 정보 처 리 장치로서, 하나 이상의 키를 기억하는 기억 수단과, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 수단과, 상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 수단을 구비한다.
상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고, 상기 기억 수단은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하도록 할 수 있다.
상기 폴링 리퀘스트 생성 수단은, 상기 폴링 리퀘스트에, 상기 식별자로서, 상기 제1 식별자를 포함시키고, 상기 폴링 레스펀스는, 상기 제2 식별자를 더 포함하고, 상기 취득 수단은, 상기 폴링 리퀘스트에 포함된 제1 식별자와 상기 폴링 레스펀스에 포함되는 상기 제2 식별자로부터, 상기 키를 특정하여, 상기 기억 수단으로부터 읽어내도록 할 수 있다.
상기 취득 수단에 의해 취득된 상기 난수에 해시 함수를 적용한 연산을 행하는 해시 연산 수단과, 상기 해시 연산 수단에 의해 연산된 해시값과, 상기 폴링 레스펀스에 포함되는 해시값을 대조하는 대조 수단을 더 구비하도록 할 수 있다.
본 발명의 정보 처리 장치의 일 측면의 통신 방법은, 디바이스와 통신을 행하는 정보 처리 장치의 통신 방법으로서, 기억 수단에 기억되어 있는 하나 이상의 키 중 1개의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과, 상기 식 별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝을 포함한다.
본 발명의 정보 처리 장치를 제어하는 컴퓨터의 일 측면의 프로그램은, 디바이스와 통신을 행하는 정보 처리 장치를 제어하는 컴퓨터의 프로그램으로서, 기억 수단에 기억되어 있는 하나 이상의 키의 1개의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과, 상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝을 포함한다.
본 발명의 정보 처리 장치를 제어하는 컴퓨터의 일 측면의 기록 매체는, 디바이스와 통신을 행하는 정보 처리 장치를 제어하는 컴퓨터에, 기억 수단에 기억되어 있는 하나 이상의 키의 1개의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과, 상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과, 상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝을 포함하는 처리를 실행시키는 프로그램 을 기록하고 있다.
본 발명의 일 측면의 정보 처리 장치 및 통신 방법, 및 프로그램에서는, 하나 이상의 키가 기억되며, 다른 장치와 통신을 행할 때에 생성되는 폴링 리퀘스트에, 기억하고 있는 키를 일의적으로 식별하기 위한 정보가 포함된다.
본 발명의 일 측면의 디바이스는, 정보 처리 장치와 통신을 행하는 디바이스로서, 난수를 생성하는 난수 생성 수단과, 하나 이상의 키를 기억하는 기억 수단과, 상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 상기 기억 수단으로부터 읽어내는 읽어내기 수단과, 상기 읽어내기 수단에 의해 읽어내어진 상기 키로, 상기 난수 생성 수단에 의해 생성된 난수를 암호화하는 암호화 수단과, 상기 암호화 수단에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 수단을 구비한다.
상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고, 상기 기억 수단은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하도록 할 수 있다.
상기 폴링 레스펀스 생성 수단은, 상기 폴링 레스펀스에, 상기 제2 식별자를 더 포함시키도록 할 수 있다.
상기 난수 생성 수단에 의해 생성된 상기 난수에 해시 함수를 적용한 연산을 행하는 해시 연산 수단을 더 구비하고, 상기 폴링 레스펀스 생성 수단은, 상기 해시 연산 수단에 의해 연산된 해시값을 상기 폴링 레스펀스에 더 포함시키도록 할 수 있다.
본 발명의 디바이스의 일 측면의 통신 방법은, 정보 처리 장치와 통신을 행하는 디바이스의 통신 방법으로서, 난수를 생성하는 난수 생성 스텝과, 상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과, 상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과, 상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝을 포함한다.
본 발명의 디바이스의 일 측면의 프로그램은, 정보 처리 장치와 통신을 행하는 디바이스를 제어하는 컴퓨터의 프로그램으로서, 난수를 생성하는 난수 생성 스텝과, 상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과, 상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과, 상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝을 포함한다.
본 발명의 디바이스의 일 측면의 기록 매체는, 정보 처리 장치와 통신을 행 하는 디바이스를 제어하는 컴퓨터에, 난수를 생성하는 난수 생성 스텝과, 상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과, 상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과, 상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝을 포함하는 처리를 실행시키는 프로그램이 기록되어 있다.
본 발명의 일 측면의 디바이스 및 통신 방법, 및 프로그램에서는, 다른 장치로부터 송신되어 온 폴링 리퀘스트에 포함되는 하나 이상의 키 중에서 하나의 키를 식별하기 위한 정보로부터, 자기가 기억하고 있는 하나 이상의 키 중 하나의 키가 읽어내어지고, 그 키로, 생성된 난수가 암호화된다.
<발명의 효과>
본 발명의 일 측면에 따르면, 복수의 정보를 취급하고, 그들 정보를 통신할 때에, 안정성이 높은 상태에서 통신을 행하는 것이 가능하게 된다.
도 1은 본 발명을 적용한 통신 시스템의 일 실시 형태의 구성을 도시하는 도면.
도 2는 도 1에 도시한 통신 시스템의 동작에 대하여 설명하는 플로우차트.
도 3은 스텝 S101에서 실행되는 폴링 리퀘스트 생성, 송신 처리의 상세에 대 하여 설명하는 플로우차트.
도 4는 스텝 S122에서 실행되는 폴링 레스펀스 생성, 송신 처리의 상세에 대하여 설명하는 플로우차트.
도 5는 스텝 S103에서 실행되는 난수 취득 처리의 상세에 대하여 설명하는 플로우차트.
도 6은 폴링 리퀘스트의 생성에 대하여 설명하기 위한 도면.
도 7은 폴링 리퀘스트의 데이터 구성에 대하여 설명하기 위한 도면.
도 8은 폴링 레스펀스의 생성에 대하여 설명하기 위한 도면.
도 9는 폴링 레스펀스의 데이터 구성에 대하여 설명하기 위한 도면.
도 10은 폴링 레스펀스로부터 난수 B를 취득할 때의 처리에 대하여 설명하기 위한 도면.
도 11은 본 발명을 적용한 통신 시스템의 다른 구성을 도시하는 도면.
도 12는 비밀 키 기억부(301)에 기억되어 있는 비밀 키에 대하여 설명하기 위한 도면.
도 13은 폴링 리퀘스트의 생성에 대하여 설명하기 위한 도면.
도 14는 스텝 S122에서 실행되는 폴링 레스펀스 생성, 송신에 관계되는 다른 처리의 상세에 대하여 설명하는 플로우차트.
도 15는 폴링 레스펀스의 생성에 대하여 설명하기 위한 도면.
도 16은 폴링 레스펀스의 데이터 구성에 대하여 설명하기 위한 도면.
도 17은 스텝 S103에서 실행되는 난수 취득에 관계되는 다른 처리의 상세에 대하여 설명하는 플로우차트.
도 18은 폴링 레스펀스로부터 난수 B를 취득할 때의 처리에 대하여 설명하기 위한 도면.
<부호의 설명>
50 : 통신 시스템
100 : 리더 라이터
101 : 비밀 키 기억부
102 : 입출력부
103 : RAM
104 : ROM
105 : CPU
106 : 암호 연산부
200 : IC 카드
201 : 입출력부
202 : 난수 생성부
203 : 비밀 키 기억부
204 : ID 기억부
205 : 데이터 기억부
206 : ROM
207 : CPU
208 : 암호 연산부
300 : 리더 라이터
301 : 비밀 키 기억부
302 : 해시 연산부
400 : IC 카드
401 : 비밀 키 기억부
402 : 해시 연산부
<발명을 실시하기 위한 최량의 형태>
이하에, 본 발명의 실시 형태에 대하여 도면을 참조하여 설명한다.
[시스템의 구성예]
도 1은, 본 발명을 적용한 통신 시스템(50)의 일 실시 형태에서의 구성예를 도시하는 블록도이다. 통신 시스템(50)은, 리더 라이터(100)와 IC 카드(200)에 의해 구성되어 있고, 리더 라이터(100)와 IC 카드(200)는, 예를 들면, 각각이 갖는 안테나 등을 통하여 무선에 의한 통신을 행한다.
리더 라이터(100)는, 비밀 키 기억부(101), 입출력부(102), RAM(Random Access Memory)(103), ROM(Read Only Memory)(104), CPU(Central Processing Unit)(105), 및 암호 연산부(106)를 포함하는 구성으로 되어 있다.
IC 카드(200)는, 입출력부(201), 난수 생성부(202), 비밀 키 기억부(203), ID 기억부(204), 데이터 기억부(205), ROM(206), CPU(207), 및, 암호 연산부(208)를 포함하는 구성으로 되어 있다.
리더 라이터(100)의 입출력부(102)는, 소정의 전자파를 복사하고, 그에 대한 부하의 변화에 기초하여, IC 카드(200)가 근접되었는지의 여부를 검출함과 함께, 예를 들면, IC 카드(200)가 근접되었을 때, IC 카드(200)와 각종 데이터를 송수신하는 안테나(도시 생략)를 갖는 구성으로 된다.
입출력부(102)는, 예를 들면, 발진 회로(OSC)로부터 공급되는 소정의 주파수의 반송파를, CPU(105)로부터 공급되는 데이터에 기초하여, ASK(Amplitude Shift Keying) 변조하여, 생성된 변조파를, 전자파로서 안테나로부터 출력한다. 또한, 입출력부(102)는, 안테나를 통하여 취득한 변조파(ASK 변조파)를 복조하고, 복조한 데이터를 CPU(105)에 공급한다.
리더 라이터(100)의 CPU(105)는, ROM(104)에 기억되어 있는 프로그램을, RAM(103)에 로드하는 등으로 하여 각종의 처리를 실행한다. RAM(103)에는 또한, CPU(101)가 각종 처리를 실행하는 데에 있어서 필요한 데이터 등도 적절히 기억된다.
CPU(105)는, 암호 연산부(106)를 제어함으로써, 미리 정해진 암호 알고리즘에 기초하여, 데이터의 암호화와 복호를 행할 수 있도록 구성되어 있다. 여기에서, 암호 연산부(106)의 암호 알고리즘은, DES(Data Encryption Standard), 트리플DES, AES(Advanced Encryption Standard) 등의 암호 알고리즘으로서, 소위 비밀 키(공통 키) 암호 방식의 암호 알고리즘을 적용할 수 있다.
리더 라이터(100)가 데이터의 암호화 또는 복호를 행한 경우, 예를 들면, CPU(105)가 비밀 키 기억부(101)에 기억된 비밀 키를, 암호화 또는 복호할 데이터 와 함께, 암호 연산부(106)에 공급함으로써, 암호 연산부(106)에 의한, 공급된 비밀 키를 이용한, 공급된 데이터의 암호화 또는 복호가 실행된다.
후술하는 바와 같이, 리더 라이터(100)와 IC 카드(200)에서 각각 기억되는 비밀 키는, 기본적으로 동일한 키이지만, 본 실시 형태에서는, 하나 이상의 키를 기억하는 것이 가능하게 되어 있고, 기억되어 있는 모든 키가, 동일한 키일 필요는 없다.
IC 카드(200)의 입출력부(201)는, 예를 들면, 코일 형상의 안테나와 컨덴서에 의해 구성되는 LC 회로를 갖는 구성으로 되며, LC 회로가 근방에 배치된 리더 라이터(100)로부터 복사되는 소정의 주파수의 전자파와 공진하도록 이루어져 있다. 또한, 입출력부(201)는, 안테나에서 여기된 교류 자계를 ASK 복조에 의해 정류하고, 그것을 안정화하여, 각 부에 직류 전원으로서 공급한다. 리더 라이터(100)로부터 복사되는 전자파의 전력은, IC 카드(200)에 필요한 전력을 공급하는 자계를 발생시키도록 조정되어 있다.
또한, 입출력(201)은, 안테나를 통하여 수신한 변조파(ASK 변조파)를 포락선검파하여 복조하고, 복조 후의 데이터를 BPSK(Binary Phase Shift Keying) 복조하여 CPU(207)에 공급함과 함께, 수신 신호의 클록 주파수와 동일한 주파수의 클럭 신호를 발생하여 CPU(207)에 공급한다.
또한, 입출력부(201)는, 소정의 정보를 리더 라이터(100)에 송신하는 경우, CPU(207)로부터 공급되어 BPSK 변조된 데이터를, 예를 들면 안테나의 부하의 변동에 기초하여 ASK 변조하고, 그 변조 성분을, 안테나를 통해 리더 라이터(100)에 송 신한다.
IC 카드(200)의 CPU(207)는, ROM(204)에 기억되어 있는 프로그램을 실행하는 등으로 하여 각종의 처리를 실행한다. 비밀 키 기억부(203), ID 기억부(204), 데이터 기억부(205)는, 예를 들면, EEPROM(Electrically Erasable Programmable Read-Only Memory) 등으로 구성되고, 각각이 EEPR0M의 기억 영역의 일부로 된다.
CPU(207)는, 암호 연산부(208)를 제어함으로써, 미리 정해진 암호 알고리즘에 기초한, 데이터의 암호화와 복호를 행할 수 있도록 구성되어 있다. 여기에서, 암호 연산부(208)의 암호 알고리즘은, 리더 라이터(100)측의 암호 연산부(106)의 암호 알고리즘과 동일한 알고리즘으로 된다.
IC 카드(200)에서 데이터의 암호화 또는 복호를 행하는 경우, 예를 들면, CPU(207)가 비밀 키 기억부(203)에 기억되어 있는 비밀 키를, 암호화 또는 복호할 데이터와 함께, 암호 연산부(208)에 공급함으로써, 암호 연산부(208)에 의한, 공급된 비밀 키를 이용한, 공급된 데이터의 암호화 또는 복호가 실행된다.
난수 생성부(202)는, 필요에 따라서 소정의 단위수의 난수를 발생한다. 상세에 대해서는 후술하지만, 이 난수는, IC 카드(200)와 리더 라이터(100) 사이에서 행해지는 통신에서, 양자가 통신 상대를 상호 식별하기 위한 세션 ID, 및 그 세션에서 송수신되는 데이터의 암호화 또는 복호에 이용되는 세션 키(Session Key)로서 이용된다.
ID 기억부(204)는, IC 카드(200)에 고유한 식별 정보인 카드 ID를 기억한다.
데이터 기억부(205)는, IC 카드(200)를 이용하여 행해지는 각종 서비스 등을 제공하기 위한 어플리케이션 데이터 등이 필요에 따라서 기억된다.
또한, 암호 연산부(106)와 암호 연산부(208)는, 각각 소프트웨어로서 구성되도록 하는 것도 가능하다.
전술한 바와 같이, 리더 라이터(100)와 IC 카드(200)는, 무선에 의한 통신을 행하므로, 동시에 2개 이상의 IC 카드 또는 리더 라이터가 전파를 송출하고, 그 결과, IC 카드 또는 리더 라이터가 어느 대상으로부터 전파가 발해진 것인지를 구별할 수 없게 된다고 하는, 소위 충돌이 우려되지만, 통신 시스템(50)에서의 리더 라이터(100)와 IC 카드(200)의 각각은, 리더 라이터와 통신 가능한 범위에 있는 IC 카드나 RFID를 식별하는 것이 가능한 통신 방식인 NFCIP(Near Field Communication-Interface and Protocol)-1에 적합한 통신을 행한다.
NFCIP-1에는, 다른 NFCIP-1 디바이스의 통신 및 동 대역에서 통신하고 있는 다른 장치에 의한 통신과의 양립을 도모하기 위해서, RF 검지와 충돌 회피의 구조가 포함되어 있고, NFC 식별자(NFCID(NFC Identifier))라고 불리는 RF 충돌 회피 시 및 단일 디바이스 탐지 처리에 이용되는 난수를 이용한 NFC 디바이스의 식별자가 이용된다. 예를 들면, 종래의 통신 시스템에서는, IC 카드의 고유한 ID를 리더 라이터에 송신하고, 리더 라이터가 그 ID에 기초하여 개개의 IC 카드를 식별함으로써 충돌의 방지를 도모하는 것도 많지만, NFCIP-1에서는 IC 카드에 고유한 ID를 리더 라이터에 송신할 필요는 없다.
따라서, 통신 시스템(50)에서는, IC 카드(200)에 고유한 카드 ID를 리더 라이터(100)에 송신하지 않아도, 리더 라이터(100)와 IC 카드(200)가 각각 통신 상대 를 일의적으로 식별하고, 충돌을 방지하는 것이 가능하게 된다.
또한, NFCIP-1에 대해서는, ISO/IEC18092에 그 상세가 기술되어 있다.
이후에서는, 리더 라이터(100)가 NFCIP-1에 규정되는 이니시에이터(Initiator)로서 동작하고, IC 카드(200)가 NFCIP-1에 규정되는 타깃(Target)으로서 동작하는 경우를 예로 하여 설명한다.
[시스템의 동작에 대해서]
다음으로, 도 1에 도시한 통신 시스템(50)의 동작에 대하여 도 2 내지 도 5의 플로우차트를 참조하여 설명한다.
또한, 이하의 설명에서는, 예를 들면, 리더 라이터(100) 또는 IC 카드(200)에 기억되어 있는 데이터를, 한쪽으로부터 다른쪽으로 카피한다고 한 데이터의 수수가 행해지기 전의 단계(서비스가 행해지기 전의 단계)에서의 정보의 수수에 관한 처리에 대하여 설명한다. 바꾸어 말하면, 데이터의 수수를 행하기 전의 단계에서 행해지는 세션의 확립 시의 처리에 대하여 설명한다.
또한, 도 2의 플로우차트를 참조하여, 통신 시스템(50)의 전체의 동작의 개략을 설명하고, 그 후, 도 3 내지 도 5를 참조하여, 각 스텝에서의 처리의 상세 내용을 설명한다.
리더 라이터(100)는, 스텝 S101에서, 폴링 리퀘스트(Polling Request)를 생성하여, IC 카드(200)에 송신한다. IC 카드(200)가, 리더 라이터(100)의 통신 가능한 거리 내에 위치해 있으면, 스텝 S121에서, IC 카드(200)는, 리더 라이터(100)로부터의 폴링 리퀘스트를 수신한다.
IC 카드(200)는, 스텝 S122에서, 난수를 암호화한 세션 키를 생성하고, 그 세션 키를 포함하는 폴링 레스펀스(Polling Response)를 리더 라이터(100)에 대하여 송신한다. 스텝 S102에서, 리더 라이터(100)는, IC 카드(200)로부터의 폴링 레스펀스를 수신하고, 스텝 S103에서, IC 카드(200)측에서 암호화된 난수를 취득하기 위한 난수 취득 처리를 실행한다.
이러한 처리가 리더 라이터(100)와 IC 카드(200)측 사이에서 행해짐으로써, 통신할 수 있는 상태가 확립된 경우에는, 예를 들면, 한쪽으로부터 다른쪽에의 데이터의 수수라고 한 처리가, 확립된 세션에서 시큐러티가 유지되는 상태에서 행해진다.
또한, 예를 들면, IC 카드(200)측에서 암호화한 난수와 리더 라이터(100)측에서 취득된 난수가 일치하지 않는 경우, 통신할 수 있는 상태가 확립되어 있지 않으므로, 그 후의 통신은 행해지지 않는 등의 처리가 행해진다.
다음으로, 도 2에 도시한 각 스텝에서 행해지는 처리의 상세에 대하여 설명한다. 우선, 도 3의 플로우차트를 참조하여, 스텝 S101에서, 리더 라이터(100)에서 행해지는 폴링 리퀘스트의 생성, 송신 처리에 대하여 설명한다.
스텝 S211에서, 리더 라이터(100)의 CPU(105)(도 1)는, 비밀 키 기억부(101)에 기억되어 있는 복수의 비밀 키(하나 이상의 비밀 키)로부터 하나의 비밀 키를 선택한다.
여기에서, 도 6을 참조하여, 비밀 키 기억부(101)에 기억되어 있는 비밀 키에 대하여 설명을 더한다. 도 6에 도시한 예에서 비밀 키 기억부(101)에는, 비밀 키 pk00 내지 pkN이라고 하는 N개의 비밀 키가 기억되어 있다. 또한, 각각의 비밀 키를 식별하기 위해, 식별자 pksn0 내지 pksnN이라고 하는 N개의 식별자가, 각각pk00 내지 pkN과 관련지어져 기억되어 있다.
여기에서, pk는, Pre-shared Key의 약기라고 하고, 리더 라이터(100)와 IC 카드(200)(이니시에이터와 타깃)의 양방에서, 사전에 공유되는 비밀 키를 나타낸다고 한다. pksn은, Pre-shared Key Slot Number의 약기라고 하고, Pre-shared Key를 각각 식별하기 위한 번호를 나타낸다고 한다.
또한, 이하의 설명에서, 비밀 키 pk00 내지 pkN을 개개로 구별할 필요가 없는 경우, 간단히 비밀 키 pk라고 기술한다. 다른 키나 식별자 등에 대해서도 마찬가지로 기술한다.
스텝 S211에서는, 비밀 키 기억부(101)에 기억되어 있는 비밀 키 pk00 내지 pkN 중 1개의 비밀 키 pk가 선택되고, 그 선택된 비밀 키 pk를 식별하기 위한 식별자 pksn이 읽어내어진다. 또한, 이 단계에서는, 비밀 키 pk를 이용한 처리는 행해지지 않기 때문에, 비밀 키 pk가 선택된 후, 그 선택된 비밀 키 pk에 대응하는 식별자 pksn이 읽어내어지는 것은 아니고, 식별자 pksn 선택되고, 읽어내어지도록 해도 된다. 여기에서는, 비밀 키 pk00이 선택되고, 그 비밀 키 pk00에 대응하는 식별자 pksn0이 읽어내어지는(식별자 pksn0이 선택되고, 읽어내어지는) 것으로서 설명을 계속한다.
복수의 비밀 키 pk 중, 어느 비밀 키 pk를 선택할지는, 예를 들면, 그 시점에서 다른 IC 카드(200)와의 통신에서 사용되어 있지 않은 비밀 키를 선택하는, 통 신 상대로 되는 IC 카드(200)에 따라서 선택하는 등, 소정의 조건에 기초하여 선택된다.
스텝 S212에서, 폴링 리퀘스트가 생성된다. 생성되는 폴링 리퀘스트에는, 스텝 S211의 처리에서 읽어내어진 식별자 pksn이 포함된다. 예를 들면 도 6에 도시한 바와 같이, 식별자 pksn0이 저장된 폴링 리퀘스트가 생성된다.
도 7은, 생성되는 폴링 리퀘스트의 데이터 구성을 도시하는 도면이다. 도 7에 도시한 폴링 리퀘스트는, 리더 라이터(100)와 IC 카드(200)가, NFCIP(Near Field Communication-Interface and Protocol)-1에서 규정되는 방식에 기초하여 통신을 행한 경우의 데이터 구성을 나타내고 있다.
Preamble(프리앰블)은, 6바이트로 구성되는 필드이며, 모두 논리 "0"의 데이터가 저장된다. Sync는, 2바이트로 구성되는 필드이며, 동기용의 데이터이며, 이니시에이터와 타깃 사이의 통신의 동기에 이용되는 데이터가 저장된다. CRC(Cyclic Redundancy Check)는, 2바이트로 구성되는 필드이며, 오류 검출에 이용되는 데이터로서, 미리 정해진 방식으로 계산된 데이터가 저장된다.
TSN은, Time Slot Number의 약기이다. TSN(Time Slot Number)은, NECIP-1 규격에서, 폴링 리퀘스트를 수신한 측이, 폴링 레스펀스를 송신하는 시간 범위를 지정하는 번호를 나타내는 데이터이다. 이 TSN은, 8비트의 필드이다.
TSN은, 8비트의 필드이지만, Time Slot Number를 나타내는 것 뿐이면, 8 비트 중 4 비트를 이용함으로써 표현하는 것도 가능하다. 따라서, 본 실시 형태에서는, TSN의 8 비트의 필드 중 4 비트를 Time Slot Number를 나타내는 데이터에 할당 하고(도 7에서는, tsn으로 표기), 남은 4 비트를 식별자 pksn을 나타내는 데이터에 할당한다(도 7에서는, pksn으로 표기).
스텝 S212에서는, 도 7에 도시한 바와 같은 데이터 구조를 갖는 폴링 리퀘스트가 생성된다. 폴링 리퀘스트가 생성될 때, 비밀 키 기억부(101)로부터 읽어내어진 식별자 pksn이, 폴링 리퀘스트에 저장되지만, 식별자 pksn은, 폴링 리퀘스트를 구성하는 TSN의 필드의 4 비트의 영역에 저장된다.
생성된 폴링 리퀘스트는, 스텝 S213에서, IC 카드(200)에 대하여 송신된다.
CPU(105)(도 1)는, 비밀 키 기억부(101)로부터 비밀 키 pk를 식별하는 식별자 pksn을 읽어내고, 그 식별자 pksn을 포함하는 폴링 리퀘스트를 생성하고, 입출력부(102)를 제어함으로써, IC 카드(200)에 송신한다. 또한, CPU(105)는, 적절하게, 폴링 리퀘스트에 포함시킨 식별자 pksn을, RAM(103)에 기억시킨다.
이와 같이 하여 리더 라이터(100)에 의해 생성된 폴링 리퀘스트는, 스텝 S121(도 2)에서, 통신 범위 내에 있는 IC 카드(200)에 수신된다. 폴링 리퀘스트를 수신한 IC 카드(200)는, 스텝 S122에서, 폴링 레스펀스의 생성과 송신 처리를 실행한다. 이 스텝 S122에서 실행되는 폴링 레스펀스의 생성과 송신 처리에 대해서, 도 5의 플로우차트를 참조하여 설명한다.
스텝 S231에서, 난수 생성부(202)는, 난수 A를 생성(발생)한다.
스텝 S232에서, CPU(207)는, 생성된 난수 A를, 예를 들면, 데이터 기억부(205) 중의 미리 정해진 소정의 영역에 기억한다.
스텝 S233에서, CPU(207)는, 입출력부(201)에 의해 수신된 폴링 리퀘스트에 포함되는 식별자 pksn을 읽어내고, 그 읽어낸 식별자 pksn에 대응하는 비밀 키 pk를, 비밀 키 기억부(203)로부터 읽어낸다.
여기에서, 도 8을 참조하여, 비밀 키 기억부(203)에 기억되어 있는 비밀 키에 대하여 설명을 더한다. 도 8에 도시한 예에서 비밀 키 기억부(203)에는, 비밀 키 pk00' 내지 pkN'라고 하는 N개의 비밀 키가 기억되어 있다. 또한, 각각의 비밀 키를 식별하기 위해, 식별자 pksn0' 내지 pksnN'라고 하는 N개의 식별자가, 각각 pk00' 내지 pkN'와 관련지어져 기억되어 있다.
이와 같이, IC 카드(200)의 비밀 키 기억부(203)와, 리더 라이터(100)의 비밀 키 기억부(101)에는, 기본적으로, 동일한 비밀 키와 식별자의 쌍이 기억되어 있다. 여기에서는, IC 카드(200)의 비밀 키 기억부(203)와, 리더 라이터(100)의 비밀 키 기억부(101)에, 각각 기억되어 있는 비밀 키 및 식별자를 구별하기 위해, IC 카드(200)의 비밀 키 기억부(203)에 기억되어 있는 비밀 키 및 식별자에는, 대쉬(')를 붙여서 기술한다.
또한, IC 카드(200)의 비밀 키 기억부(203)와, 리더 라이터(100)의 비밀 키 기억부(101)에는, 각각 동일한 비밀 키와 식별자의 쌍이 기억되어 있는 것으로 했지만, 기억되어 있는 모든 비밀 키나 식별자가, 동일할 필요는 없다. 바꾸어 말하면, 어느 한쪽에만 기억되어 있는 비밀 키나 식별자가 있어도 된다.
어느 한쪽에만 기억되어 있는 비밀 키나 식별자가 있고, 그러한 비밀 키가 이용된 경우, 통신을 확립할 수 없게 된다. 이를 이용하면, 비밀 키를 선택함으로써 통신 상대를 선택할 수 있게 된다. 즉, 예를 들면, 상기한 바와 같이, 리더 라 이터(100)측의 처리에서, 스텝(211)(도 3)에서, 비밀 키의 선택이 행해지지만, 이 때, 통신하고자 하는 상대가 기억하고 있을 것인 비밀 키를 선택하도록 하면, 통신 상대를 선택하는 것이 가능하게 된다.
도 4의 플로우차트의 설명으로 되돌아가, 스텝 S233에서, 수신한 폴링 리퀘스트에 포함되는 식별자 pksn이 읽어내어지고, 그 식별자 pksn에 대응하는 비밀 키 pk'가 비밀 키 기억부(203)로부터 읽어내어지면, 스텝 S234에서, 읽어내어진 비밀 키 pk'에 의해, 난수 A가 암호화된다.
도 8을 다시 참조하여 설명하면, 입출력부(201)(도 1)에 의해, 식별자 pksn0을 포함하는 폴링 리퀘스트가 수신된 경우, CPU(207)는, 식별자 pksn0'에 관련지어져 있는 비밀 키 pk00'를, 비밀 키 기억부(203)로부터 읽어낸다. 이 읽어내어진 비밀 키 pk00'를 키로 하고, 난수 생성부(202)에 의해 생성된 난수 A가 암호화된다.
CPU(207)는, 비밀 키 기억부(203)로부터 읽어낸 비밀 키 pk'를 암호 연산부(208)에 공급함과 함께, 난수 생성부(202)에서 생성된 난수 A도 암호 연산부(208)에 공급한다. 암호 연산부(208)는, 공급된 난수 A를, 비밀 키 pk'를 키로 하여 암호화한다. 암호화된 난수 A를 여기에서는, 세션 키 ESK로 기술한다. ESK는 여기에서는, Encrypted Session Key의 약기라고 한다.
스텝 S235에서, CPU(207)는, 스텝 S234의 처리 결과의 데이터(즉, 암호화된 난수 A인 세션 키 ESK)를, 예를 들면, 데이터 기억부(205) 중의 미리 정해진 소정의 영역에 기억한다.
스텝 S236에서, 폴링 레스펀스가 생성된다. 생성되는 폴링 레스펀스에는, 도 8에 도시한 바와 같이, 스텝 S234에서 생성된 세션 키 ESK가 포함된다.
도 9는, 생성되는 폴링 리퀘스트의 데이터 구성을 도시하는 도면이다. 도 9에 도시한 폴링 레스펀스는, 리더 라이터(100)와 IC 카드(200)가, NFCIP(Near Field Communication-Interface and Protocol)-1에서 규정되는 방식에 기초하여 통신을 행하는 경우의 데이터 구성을 나타내고 있다.
Preamble(프리앰블)은, 6바이트로 구성되는 필드이며, 모두 논리 "0"의 데이터가 저장된다. Sync는, 2바이트로 구성되는 필드이며, 동기용의 데이터이며, 이니시에이터와 타깃 사이의 통신의 동기에 이용되는 데이터가 저장된다. CRC(Cyclic Redundancy Check)는, 2바이트로 구성되는 필드이며, 오류 검출에 이용되는 데이터로서, 미리 정해진 방식으로 계산된 데이터가 저장된다.
페이로드는, 개시 바이트가 "01"로 되고, 8 바이트의 NFCID2 및 8바이트의 PAD를 포함한 데이터가 저장된다. 세션 키 ESK(암호화된 난수 A)는, ESK1과 ESK2라고 하는 2개의 데이터로 나누어져, 각각 NFCID2의 필드와 PAD의 필드에 저장된다.
여기에서는, 세션 키 ESK는, 8바이트로 구성되는 것으로 하고, ESK1은 6바이트, ESK2는 2바이트라고 한다. 8 바이트의 세션 키 ESK 중, 선두의 6 바이트가 ESK1로 되고, 남은 2 바이트가 ESK2로 된다.
스텝 S236에서, 도 9에 도시한 바와 같은 데이터 구조를 갖는 폴링 레스펀스가 생성된다. 또한, 생성되는 폴링 레스펀스에는, 상기한 바와 같이, 세션 키 ESK 가 2개의 데이터로 나누어져, 페이로드의 각각 서로 다른 부분에 저장된다.
생성된 폴링 레스펀스는, 스텝 S237에서, 리더 라이터(100)에 대하여 송신된다. CPU(207)(도 1)는, 생성한 폴링 레스펀스를, 입출력부(201)를 제어함으로써, 리더 라이터(100)에 송신한다.
이와 같이 하여 IC 카드(200)에 의해 생성된 폴링 레스펀스는, 스텝 S102(도2)에서 수신된다. 폴링 레스펀스를 수신한 리더 라이터(100)는, 스텝 S103에서, 난수 취득 처리를 실행한다. 이 스텝 S103에서 실행되는 난수 취득 처리에 대해서, 도 5의 플로우차트를 참조하여 설명한다.
스텝 S251에서, CPU(105)는, IC 카드(200)로부터의 폴링 레스펀스에 포함되는 세션 키 ESK, 즉, 암호화된 난수 A를 취득한다.
스텝 S252에서, CPU(105)는, 예를 들면, RAM(103)의 소정의 영역에, 스텝 S251의 처리에서 취득된 세션 키 ESK를 기억한다.
스텝 S253에서, 암호 연산부(106)는, 스텝 S251의 처리에서 취득된 세션 키 ESK로서, 암호화된 난수 A를, 비밀 키 기억부(101)에 기억되어 있는 비밀 키 pk를 이용하여 복호한다. 이용되는 비밀 키 pk는, 폴링 리퀘스트에 포함시킨 식별자 pksn에 대응하는 비밀 키 pk이다. 여기에서, 복호의 결과 취득되는 난수는 난수 B라고 기술한다.
스텝 S254에서, CPU(105)는, 복호된 난수 B를, 예를 들면, RAM(103)의 소정의 영역에 기억한다.
도 10을 참조하여 도 5의 플로우차트의 처리에 대하여 다시 설명한다. 리더 라이터(100)의 입출력부(101)에 의해, 세션 키 ESK를 포함하는 폴링 레스펀스가 수신되면, CPU(105)는, 그 폴링 리퀘스트에 포함되는 세션 키 ESK를 취득하고, 암호 연산부(106)에 공급한다.
CPU(101)는, 비밀 키 기억부(101)로부터, 폴링 리퀘스트에 포함시킨 식별자 pksn00에 대응하는 비밀 키 pk00을 읽어내고, 암호 연산부(106)에 공급한다. 이와 같이 하여, 암호 연산부(106)에는, 세션 키 ESK와 비밀 키 pk00이 공급되는, 암호 연산부(106)는, 비밀 키 pk00을 키로 하여, 세션 키 ESK를 복호하고, 난수 B를 취득한다.
이와 같이 하여 리더 라이터(100)측에서 취득된 난수 B과, IC 카드(200)측에서 생성된 난수 A가 일치하고 있으면, 난수 A(난수 B)를 이용한 통신을 행할 수 있다. 예를 들면, 리더 라이터(100)와, IC 카드(200)는, 난수 A(난수 B)를 이용하여 생성되는 세션 키 ESK에 기초하여 서로를 일의적으로 식별하고, 또한, 난수 A를 키로 하여 필요에 따라서 데이터의 암호화 또는 복호를 행하는 것이 가능하게 된다.
난수 A와 난수 B가 일치하지 않으면, 난수 A를 이용하여 생성되는 세션 키 ESK와 난수 B를 이용하여 생성되는 세션 키 ESK는, 서로 다른 세션 키 ESK로 되기 때문에, 서로 일의적으로 식별할 수 없기 때문에, 통신을 행할 수 없다.
[시스템의 다른 구성]
상기한 실시 형태에서는, 예를 들면, 도 7을 참조하여 설명한 바와 같이, 폴링 리퀘스트의 데이터에 포함되는 식별자 pksn의 데이터에는, 4 비트가 할당되어 있다. 식별자 pksn을 4 비트로 나타낸 경우, 16개의 식별자를 표현할 수 있는 것 으로 된다. 따라서, 16개의 비밀 키 pk와 식별자 pksn의 쌍을, 리더 라이터(100)나 IC 카드(200)에서, 각각 취급하는 것이 가능하게 된다.
예를 들면, 1개의 비밀 키 pk를 하나의 서비스와 관련지어 이용하도록 한 경우, 16개의 서비스를 취급하는 것이 가능하게 된다.
그러나, 16개 이상의 비밀 키 pk를 취급하고자 하는 경우에는, 대응할 수 없게 된다. 따라서, 16개 이상의 비밀 키 pk를 취급할 수 있도록 하는 경우의, 통신 시스템(50)의 구성에 대하여 설명한다.
또한, 여기에서는, 폴링 리퀘스트에 포함시키는 식별자 pksn을, 4 비트로 표현하는 것으로 하였기 때문에, 16개의 비밀 키 pk를 취급할 수 있는 것으로서 설명했지만, 본 발명은, 4 비트에 한정되는 것은 아니고, 4 비트 이외라도 물론 본 발명을 적용하는 것은 가능하다. 4 비트 이외로 표현하도록 설정한 경우, 그 설정된 비트수에 의존하여, 취급할 수 있는 비밀 키 pk의 개수가 결정된다.
따라서, 예를 들면, 4 비트 이상의 비트수로, 식별자 pksn을 표현하도록 한 경우, 16개 이상의 서비스를 취급할 수 있게 되고, 그와 같이 하여, 취급되는 식별자 pksn이나 비밀 키 pk를 늘리도록 하여도 된다. 여기에서는, 비트수를 증가하는 일 없이, 취급할 수 있는 비밀 키 pk의 개수를 많게 하는 방법에 대하여 설명한다.
도 11은, 통신 시스템(50)의 다른 구성을 도시하는 도면이다. 도 11에 도시한 통신 시스템(50)과, 도 1에 도시한 통신 시스템(50)의 구성으로, 동일한 부분에는, 동일한 부호를 붙여서, 적절하게, 그 설명을 생략한다.
상기한 바와 같이, 도 11에 도시한 통신 시스템(50)은, 리더 라이터(300)와 IC 카드(400)로 구성되어 있다. 리더 라이터(300)는, 후술하는 바와 같은 계층 구조를 갖는 비밀 키 pk를 기억하고 있는 비밀 키 기억부(301)를 갖는다. 마찬가지로, IC 카드(400)는, 계층 구조를 갖는 비밀 키 pk'를 기억하고 있는 비밀 키 기억부(401)를 갖고 있다.
리더 라이터(300)는, 해시 연산부(302)를 갖고 있는 구성으로 되어 있다. 또한, IC 카드(400)도, 해시 연산부(402)를 갖고 있는 구성으로 되어 있다. 상세한 것은 후술하지만, 해시 연산부(302)와 해시 연산부(402)는, 각각 해시 함수를 적용한 연산을 행한다. 그 결과 연산된 해시값을 대조함으로써, 데이터의 신뢰성, 여기에서는, 후술하는 바와 같이, 비밀 키 pk의 확인이 행해진다.
그 밖의 구성은, 도 1과 마찬가지이므로, 그 설명은 생략한다.
도 12는, 비밀 키 기억부(301)에 기억되어 있는 비밀 키 pk에 대하여 설명하기 위한 도면이다. 도 12에 도시한 예에서는, 식별자 pksn0 내지 pksnN이라고 하는 N개의 식별자가 기억되어 있다. 식별자 pksn0에는, 서브 식별자 SSN0 내지 SSN2라고 하는 3개의 식별자가 관련지어져 있다. 또한, 각 서브 식별자 SSN0 내지 SSN2에는, 각각 비밀 키 pk00 내지 pk02가 관련지어져 있다.
즉 이 경우, 1개의 식별자 pksn0에는, 3개의 비밀 키 pk00 내지 02가 관련지어져 있다. 또한 여기에서 SSN은, Sub Slot Number의 약기라고 한다.
다른 식별자 pksn도 마찬가지로, 1개의 식별자 pksn에는, 복수의 서브 식별자 SSN이 종속하여 관련지어지고, 1개의 서브 식별자 SSN에는, 1개의 비밀 키 pk가 관련지어져 있다. 즉, 1개의 식별자 pksn에는, 복수의 서브 식별자 SSN과 복수의 비밀 키 pk가 관련지어져 있다.
또한, 1개의 식별자 pksn에, 몇몇의 서브 식별자 SSN(비밀 키 pk)을 관련짓는지의 한정은 없다. 도 12에 도시한 예는 일례이며, 예를 들면, 식별자 pksn0에 3개의 서브 식별자 SSN0 내지 2가 관련지어졌다고 하는 것에 한정되는 것은 아니다.
이와 같이, 비밀 키 기억부(301)에는, 1개의 식별자 pksn0에, 복수의 비밀 키 pk가 관련지어져 있다. 이와 같이, 서브 식별자 SSN을 설정함으로써, 복수의 비밀 키 pk를 기억(취급)하는 것을 가능하게 한다.
여기에서는, 리더 라이터(100)의 비밀 키 기억부(301)에 기억되어 있는 계층 구조의 키의 예만 나타내고 있지만, IC 카드(400)의 비밀 키 기억부(401)도, 마찬가지의 계층 구조의 키를 기억하고 있다.
다음으로, 도 11에 도시한 통신 시스템(50)의 동작에 대하여 설명한다. 통신 시스템(50)의 동작의 개략은, 도 2에 도시한 플로우차트를 참조하여 설명한 경우와 마찬가지이므로 그 설명은 생략한다.
또한, 리더 라이터(300)의 동작으로서, 스텝 S101(도 2)에서 행해지는, 폴링 리퀘스트의 생성, 송신 처리는, 도 3에 도시한 플로우차트를 참조하여 설명한 경우와 마찬가지로 행해지기 때문에, 그 상세한 설명은 생략하지만, 도 13을 참조하여, 간편한 설명을 더한다.
도 13에 도시한 바와 같이, 리더 라이터(300)의 비밀 키 기억부(301)에는, 계층 구조로 된 비밀 키 pk가 기억되어 있다. CPU(105)(도 11)는, 비밀 키 기억 부(301)로부터, 예를 들면, 식별자 pksn0을 읽어내고, 폴링 리퀘스트에 저장한다. 식별자 pksn0이 저장된 폴링 리퀘스트는, 입출력부(102)에 의해 IC 카드(400)에 송신된다.
이 송신되는 폴링 리퀘스트는, 도 7을 참조하여 설명한 데이터 구성을 갖는다. 즉, 비밀 키 기억부(301)에 기억되어 있는 비밀 키를, 계층 구조로 한 경우에도, 폴링 리퀘스트에 포함되는 것은, 식별자 pksn이다.
다음으로, 폴링 리퀘스트를 수신한 IC 카드(400)의 처리에 대하여 설명한다. IC 카드(400)는, 스텝 S122(도2)에서, 폴링 레스펀스의 생성, 송신 처리를 실행한다. 이 IC 카드(400)에서 실행되는 폴링 레스펀스의 생성, 송신 처리에 대해서, 도 14의 플로우차트를 참조하여 설명한다.
스텝 S331 내지 S335에서 실행되는 각 처리는, 도 4의 스텝 S231 내지 S235와 마찬가지이며, 그 설명은 이미 하였으므로, 여기에서는 생략한다.
단, 스텝 S333에서 비밀 키 기억부(401)로부터 비밀 키 pk를 읽어낼 때의 처리가 서로 다르므로, 여기에서 설명을 더한다. 상기한 바와 같이, 비밀 키 기억부(401)에는, 1개의 식별자 pksn'에 대하여, 복수의 비밀 키 pk'가 관련지어져 있다. IC 카드(400)의 CPU(207)는, 수신한 폴링 리퀘스트에 포함되는 식별자 pksn과 동일한 식별자 pksn'에 관련지어져 있는 하나의 비밀 키 pk'를 읽어낸다.
예를 들면, 도 15를 참조하여 설명하는 것에, 수신된 폴링 리퀘스트에 포함되는 식별자 pksn이, 식별자 pksn0이었던 경우, 식별자 pksn0'에 관련지어져 있는 비밀 키 pk00'내지 02' 중 1개의 비밀 키 pk'가 읽어내어진다. 여기에서는, 비밀 키 pk00'가 읽어내어진 것으로 하여 설명을 계속한다.
예를 들면, 1개의 식별자 pksn'에 관련지어져 있는 복수의 비밀 키 pk'를, 각각 서로 다른 시큐러티 레벨의 키로 하고, 통신하는 데이터나 통신 상대에 의해, 적절한 비밀 키 pk'가 읽어내어지도록 하는 것이 가능하다.
또한, 예를 들면, 1개의 식별자 pksn'에 관련지어져 있는 복수의 비밀 키 pk'를, 각각 서로 다른 서비스에 대응시켜, 실행하는 서비스에 알맞은 비밀 키 pk'가 읽어내어지도록 하는 것이 가능하다.
이 읽어내어진 비밀 키 pk00'에 의해, 난수 생성부(202)에 의해 생성된 난수 A가 암호화되어, 세션 키 ESK가 생성된다.
도 14의 플로우차트의 설명으로 되돌아가서, 스텝 S336에서, 서브 식별자 SSN이 읽어내어진다. 읽어내어지는 서브 식별자 SSN은, 스텝 S334에서 읽어내어진 비밀 키 pk에 관련지어져 있는 서브 식별자 SSN이다.
또한 여기에서는, 비밀 키 pk'가 읽어내어진 후, 그 읽어내어진 비밀 키 pk'를 식별하는 서브 식별자 SSN'가 읽어내어진 것으로 했지만, 서브 식별자 SSN'가 읽어내어지고 나서, 그 서브 식별자 SSN'에 대응하는 비밀 키 pk'가 읽어내어지도록 해도 되고, 동시에 읽어내어지도록 해도 된다. 다른 스텝에서의 처리도 마찬가지이지만, 실행되는 순번은, 적절히 변경 가능하며, 본 실시 형태에 나타낸 순번으로 한정되는 것은 아니다.
스텝 S337에서, 해시 연산부(402)는, 난수 생성부(202)에 의해 생성된 난수 A에 대하여 해시 함수에 의한 연산을 행한다. 해시 함수는, 송신하는 데이터를 입 력으로 하고, 그 입력된 데이터를, 소정의 비트 길이의 데이터로 압축하고, 해시값으로서 출력하는 함수이다. 해시 함수는, 출력인 해시값으로부터 입력 데이터를 복원하는 것이 어렵고, 또한, 동일한 출력 결과의 해시값을 갖는 입력 데이터를 찾아내는 것이 곤란한(일 방향인) 특징을 갖는다.
이러한 해시 함수의 특징을 이용하여, 송수신된 데이터의 신빙성 등을 확인하는 것이 행해진다. 여기에서는, IC 카드(400)측과 리더 라이터(300)측에서, 각각 읽어낸 비밀 키 pk'(비밀 키 pk)가, 일치하고 있는지의 여부를 확인하기 위해, 해시 연산을 행한다.
스텝 S337에서, 난수 A에 대하여 해시 함수가 적용되고, 해시값 A가 생성되면, 스텝 S338에서 폴링 레스펀스가 생성된다. 생성되는 폴링 레스펀스는, 도 15에 도시한 바와 같이, 해시값 A, 세션 키 ESK, 및, 서브 식별자 SSN'를 포함하는 구성으로 된다.
즉, 비밀 키 기억부(401)에 기억되어 있는 키를 계층 구조로 한 경우, 폴링 레스펀스에는, 해시값 A, 세션 키 ESK, 및, 서브 식별자 SSN을 포함하는 구성으로 된다.
폴링 레스펀스에 대하여 또한 도 16을 참조하여 설명한다. 도 16에 도시한 폴링 리퀘스트의 데이터 구성 중, 도 9에 도시한 폴링 리퀘스트의 데이터 구성과 일치하는 부분에 관한 설명은 생략한다.
도 16에 도시한 폴링 리퀘스트의 데이터 구성에서는, 페이로드의 PAD의 영역에, 해시값 A를 저장하는 영역(도 16에서는, HSK로 기재하고 있는 영역)과, 서브 식별자 SSN'를 저장하는 영역(도 16에서는, SSN으로 기재하고 있는 영역)이 형성되고 있다. 해시값 A를 저장하는 영역은, 2바이트로 구성된다. 서브 식별자 SSN'를 저장하는 영역은, 2바이트로 구성된다.
스텝 S228에서는, 도 16에 도시한 바와 같은 데이터 구성을 갖는 폴링 레스펀스가 생성된다. 그리고, 스텝 S339에서, 생성된 폴링 레스펀스는, 리더 라이터(300)에 대하여 송신된다.
다음으로, 폴링 레스펀스를 수신한 리더 라이터(300)의 처리에 대하여 설명한다. 리더 라이터(300)는, 스텝 S103(도2)에서, 난수 취득 처리를 실행한다.
이 리더 라이터(300)에서 실행되는 난수 취득 처리에 대해서, 도 17의 플로우차트를 참조하여 설명한다.
스텝 S351 내지 S354에서 실행되는 각 처리는, 도 5의 스텝 S251 내지 S254와 마찬가지이며, 그 설명은 이미 했으므로, 여기에서는 생략한다.
단, 스텝 S353에서 비밀 키 기억부(301)로부터 비밀 키 pk를 읽어낼 때의 처리가 서로 다르므로, 여기에서 설명을 더한다. 리더 라이터(300)는, IC 카드(400)에 송신한 폴링 리퀘스트에 포함시킨 식별자 pksn으로부터, 식별자 pksn을 특정한다. 또한, 리더 라이터(300)는, IC 카드(400)로부터 수신한 폴링 레스펀스에 포함되는 서브 식별자 SSN'로부터, 서브 식별자 SSN을 특정한다. 식별자 pksn과 서브 식별자 SSN이 특정되면, 1개의 비밀 키 pk를 특정할 수 있다.
도 18을 참조하여 더욱 설명을 더한다. 도 18에 도시한 예에서는, IC 카드(400)로부터 수신된 폴링 레스펀스에는, 서브 식별자 SSN'로서, 서브 식별자 SSN0'가 저장되어 있기 때문에, 서브 식별자 SSN0'로부터 서브 식별자 SSN0이 특정된다.
또한 리더 라이터(300)는, IC 카드(400)에 송신한 폴링 리퀘스트에, 식별자 pksn으로서 식별자 pksn0의 데이터를 저장한 것을 기억하고 있다. 따라서, 식별자 pksn0이라고 하는 정보와, 서브 식별자 SSN0이라고 하는 정보로부터, 비밀 키 pk00이 특정된다. 따라서 이 경우, 비밀 키 pk로서, 비밀 키 pk00이 읽어내어진다.
이 읽어내어진 비밀 키 pk00을 키로 하여, 폴링 리퀘스트에 포함되는 세션 키 ESK를 복호함으로써, 난수 B가 취득된다.
도 17의 플로우차트의 설명으로 되돌아가서, 스텝 S351 내지 S354의 처리가 행해짐으로써 난수 B가 취득되면, 스텝 S355에서, 해시 연산부(302)(도 11)는, 난수 B에 대하여 해시 함수를 적용하여, 해시값 B를 생성한다.
스텝 S356에서, CPU(105)는, 입출력부(102)로부터 입력된 폴링 레스펀스에 포함되는 해시값 A와, 해시 연산부(302)에 의해 생성된 해시값 B를 대조한다.
도 18을 참조하여, 해시 값 A와 해시값 B를 대조할 필요성에 대하여 설명을 더한다. 도 18을 참조한 설명에서는, 전술한 바와 같이, 식별자 pksn0이라고 하는 정보와, 서브 식별자 SSN0이라고 하는 정보로부터, 비밀 키 pk00이 특정되었다. 가령, 이 비밀 키의 특정이 잘못 행해진 경우, 해시값 A와 해시값 B는 일치하지 않게 된다.
식별자 pksn은, 리더 라이터(300)측에서 선택하고, 서브 식별자 SSN은, IC 카드(400)측에서 선택되었다. 리더 라이터(300)에 기억되어 있는 식별자 pksn, 서 브 식별자 SSN, 및 비밀 키 pk와의 관계가, IC 카드(400)에 기억되어 있는 식별자 pksn', 서브 식별자 SSN', 및 비밀 키 pk'와의 관계와 동일하면, 잘못 비밀 키 pk가 특정될 가능성은 낮다고 생각되지만, 동일하지 않으면, 잘못 비밀 키 pk가 특정될 가능성이 있다.
또한, 예를 들면, IC 카드(400)측에서 선택한 서브 식별자 SSN'에 대응하는 비밀 키 pk를, 리더 라이터(300)측에서 유지하지 않고 있었던 경우(예를 들면, 리더 라이터(300)측과 IC 카드(400)측에서 서로 다른 비밀 키를 유지하고 있었던 경우), 일의적으로 비밀 키 pk를 특정할 수 없기 때문에, 해시값 A와 해시값 B는 일치하지 않게 된다.
이러한 것을 고려하여, 해시값의 대조를 행하여, 리더 라이터(300)측과 IC 카드(400)측에서 선택한 비밀 키 pk(암호화나 복호에 이용하는 비밀 키 pk)가 일치하고 있는지의 여부를 확인할 수 있는 구성으로 한다.
이와 같이, 해시값을 폴링 레스펀스에 저장함으로써, 세션 키의 정당성을 리더 라이터(300)측에서 확인하는 것이 가능하게 된다.
또한, 도 1에 도시한 통신 시스템(50)에서는, 환언하면, 계층 구조로 되어 있지 않은 비밀 키인 경우에는, 해시값의 대조 등의 처리를 행하여, 리더 라이터(300)측과 IC 카드(400)측에서 선택한 비밀 키 pk가 일치하고 있는지의 여부를 확인한다고 한 처리를 행하지 않는 구성으로 했지만, 물론, 도 1에 도시한 통신 시스템(50)에서, 해시값의 대조를 행하는 등의 처리를 실행하여, 비밀 키 pk를 확인하는 구성으로 하는 것도 가능하다.
이와 같이, 리더 라이터(300)와 IC 카드(400)에서, 복수의 비밀 키 pk를 관리함으로써, 복수의 서비스를, 서로 다른 비밀 키 pk에 의해 암호화, 복호할 수 있어, 복수의 서비스를 취급하는 경우에도, 서비스마다 비밀 키 pk를 이용하는 것이 가능하게 된다. 또한, 이와 같이 통신의 세션을 확립함으로써, 통신의 안전성을 높이는 것이 가능하게 된다.
또한, 전술한 실시 형태에서는, 무선 통신을 예로 들어 설명하였지만, 유선에 의한 통신에 본 발명을 적용하는 것은 가능하다. 또한, 본 발명은 상기한 실시 형태에 한정되는 것은 아니고, 2개의 장치 사이에서, 어떠한 데이터를 교환할 때, 서로의 장치가 유지하는 복수의 키를 이용한 통신에 적용할 수 있다.
본 명세서에서의 정보 처리 장치, 디바이스라는 용어는, 예를 들면, NFCIP-1의 규격에서는, 이니시에이터와 타깃, 즉, 각각, RF 필드를 발생하고, NFCIP-1 통신을 개시하는 장치와 부하 변조 또는 스스로 발생한 RF 필드의 변조를 이용하여 이니시에이터로부터의 명령에 응답하는 장치에 대응한다. 또한, 이들 장치는, 각각의 기능을 갖는 하나 이상의 IC칩을 탑재한 통신 장치로서, 다른 기능 등을 갖는 장치이어도 된다.
[기록 매체에 대해서]
전술한 일련의 처리는, 하드웨어에 의해 실행시킬 수 있고, 소프트웨어에 의해 실행시킬 수도 있다. 전술한 일련의 처리를 소프트웨어에 의해 실행시키는 경우에는, 그 소프트웨어를 구성하는 프로그램이, 도 1의 CPU(105) 또는 CPU(207)에 의해 실행되고, 그들 프로그램은, 리더 라이터(100)(300) 또는 IC 카드(200)(400) 가 판독 가능한 기록 매체 등으로부터 읽어들어진다.
본 명세서에서 전술한 일련의 처리를 실행하는 스텝은, 기재된 순서를 따라 시계열적으로 행해지는 처리는 물론, 반드시 시계열적으로 처리되지 않더라도, 병렬적 혹은 개별로 실행되는 처리도 포함하는 것이다.

Claims (19)

  1. 통신을 행하는 정보 처리 장치 및 디바이스에 의해 구성되는 통신 시스템으로서,
    상기 정보 처리 장치는,
    하나 이상의 키를 기억하는 제1 기억 수단과,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 수단과,
    상기 식별자에 의해 식별되는 상기 키를 상기 제1 기억 수단으로부터 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 수단
    을 구비하고,
    상기 디바이스는,
    난수를 생성하는 난수 생성 수단과,
    하나 이상의 키를 기억하는 제2 기억 수단과,
    상기 폴링 리퀘스트에 포함되는 상기 식별자에 대응하는 키를, 상기 제2 기억 수단으로부터 읽어내는 읽어내기 수단과,
    상기 읽어내기 수단에 의해 읽어내어진 상기 키로, 상기 난수 생성 수단에 의해 생성된 난수를 암호화하는 암호화 수단과,
    상기 암호화 수단에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴 링 레스펀스를 생성하는 폴링 레스펀스 생성 수단
    을 구비하는 통신 시스템.
  2. 제1항에 있어서,
    상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고,
    상기 제1 기억 수단과 상기 제2 기억 수단의 각각은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하는 통신 시스템.
  3. 제2항에 있어서,
    상기 폴링 리퀘스트 생성 수단은, 상기 폴링 리퀘스트에, 상기 식별자로서, 상기 제1 식별자를 포함시키고,
    상기 폴링 레스펀스 생성 수단은, 상기 폴링 레스펀스에, 상기 제2 식별자를 더 포함시키고,
    상기 취득 수단은, 상기 폴링 리퀘스트에 포함된 제1 식별자와 상기 폴링 레스펀스에 포함되는 상기 제2 식별자로부터, 상기 키를 특정하여, 상기 제1 기억 수단으로부터 읽어내는 통신 시스템.
  4. 제1항에 있어서,
    상기 디바이스는,
    상기 난수 생성 수단에 의해 생성된 상기 난수에 해시 함수를 적용한 연산을 행하는 제1 해시 연산 수단을 더 구비하고,
    상기 폴링 레스펀스 생성 수단은, 상기 제1 해시 연산 수단에 의해 연산된 제1 해시값을 상기 폴링 레스펀스에 더 포함시키고,
    상기 정보 처리 장치는,
    상기 취득 수단에 의해 취득된 상기 난수에 해시 함수를 적용한 연산을 행하는 제2 해시 연산 수단과,
    상기 제2 해시 연산 수단에 의해 연산된 제2 해시값과, 상기 폴링 레스펀스에 포함되는 제1 해시값을 대조하는 대조 수단
    을 더 구비하는 통신 시스템.
  5. 통신을 행하는 정보 처리 장치 및 디바이스에 의해 구성되는 통신 시스템의 통신 방법으로서,
    상기 정보 처리 장치는,
    하나 이상의 키를 기억하고,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하고,
    상기 식별자에 의해 식별되는 상기 키를 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는
    스텝을 포함하고,
    상기 디바이스는,
    난수를 생성하고,
    하나 이상의 키를 기억하고,
    상기 폴링 리퀘스트에 포함되는 상기 식별자에 대응하는 키를 읽어내고,
    읽어내어진 상기 키로, 생성된 난수를 암호화하고,
    암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는
    스텝을 포함하는 통신 방법.
  6. 디바이스와 통신을 행하는 정보 처리 장치로서,
    하나 이상의 키를 기억하는 기억 수단과,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 수단과,
    상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 수단
    을 구비하는 정보 처리 장치.
  7. 제6항에 있어서,
    상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고,
    상기 기억 수단은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하는 정보 처리 장치.
  8. 제7항에 있어서,
    상기 폴링 리퀘스트 생성 수단은, 상기 폴링 리퀘스트에, 상기 식별자로서, 상기 제1 식별자를 포함시키고,
    상기 폴링 레스펀스는, 상기 제2 식별자를 더 포함하고,
    상기 취득 수단은, 상기 폴링 리퀘스트에 포함된 제1 식별자와 상기 폴링 레스펀스에 포함되는 상기 제2 식별자로부터, 상기 키를 특정하여, 상기 기억 수단으로부터 읽어내는 정보 처리 장치.
  9. 제6항에 있어서,
    상기 취득 수단에 의해 취득된 상기 난수에 해시 함수를 적용한 연산을 행하는 해시 연산 수단과,
    상기 해시 연산 수단에 의해 연산된 해시값과, 상기 폴링 레스펀스에 포함되는 해시값을 대조하는 대조 수단
    을 더 구비하는 정보 처리 장치.
  10. 디바이스와 통신을 행하는 정보 처리 장치의 통신 방법으로서,
    기억 수단에 기억되어 있는 하나 이상의 키 중에서 하나의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과,
    상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝
    을 포함하는 통신 방법.
  11. 디바이스와 통신을 행하는 정보 처리 장치를 제어하는 컴퓨터의 프로그램으로서,
    기억 수단에 기억되어 있는 하나 이상의 키 중에서 하나의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과,
    상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝
    을 포함하는 프로그램.
  12. 디바이스와 통신을 행하는 정보 처리 장치를 제어하는 컴퓨터에,
    기억 수단에 기억되어 있는 하나 이상의 키 중에서 하나의 키의 읽어내기를 제어하는 읽어내기 제어 스텝과,
    상기 키를 식별하는 식별자를 포함시킨 폴링 리퀘스트를 생성하는 폴링 리퀘스트 생성 스텝과,
    상기 식별자에 의해 식별되는 상기 키를 상기 기억 수단으로부터, 상기 읽어내기 제어 스텝의 제어에 의해 읽어내고, 그 키로, 상기 폴링 리퀘스트에 대응하여 상기 디바이스로부터 공급된 폴링 레스펀스에 포함되는 암호화된 데이터를 복호하여, 난수를 취득하는 취득 스텝
    을 포함하는 처리를 실행시키는 프로그램을 기록하고 있는 기록 매체.
  13. 정보 처리 장치와 통신을 행하는 디바이스로서,
    난수를 생성하는 난수 생성 수단과,
    하나 이상의 키를 기억하는 기억 수단과,
    상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 상기 기억 수단으로부터 읽어내는 읽어내기 수단과,
    상기 읽어내기 수단에 의해 읽어내어진 상기 키로, 상기 난수 생성 수단에 의해 생성된 난수를 암호화하는 암호화 수단과,
    상기 암호화 수단에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴 링 레스펀스를 생성하는 폴링 레스펀스 생성 수단
    을 구비하는 디바이스.
  14. 제13항에 있어서,
    상기 키는, 제1 식별자와, 상기 제1 식별자에 종속하는 제2 식별자에 의해 일의적으로 식별되고,
    상기 기억 수단은, 상기 제1 식별자, 상기 제2 식별자, 및 상기 키를 각각 관련지어 기억하는 디바이스.
  15. 제14항에 있어서,
    상기 폴링 레스펀스 생성 수단은, 상기 폴링 레스펀스에, 상기 제2 식별자를 더 포함시키는 디바이스.
  16. 제13항에 있어서,
    상기 난수 생성 수단에 의해 생성된 상기 난수에 해시 함수를 적용한 연산을 행하는 해시 연산 수단을 더 구비하고,
    상기 폴링 레스펀스 생성 수단은, 상기 해시 연산 수단에 의해 연산된 해시값을 상기 폴링 레스펀스에 더 포함시키는 디바이스.
  17. 정보 처리 장치와 통신을 행하는 디바이스의 통신 방법으로서,
    난수를 생성하는 난수 생성 스텝과,
    상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과,
    상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과,
    상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝
    을 포함하는 통신 방법.
  18. 정보 처리 장치와 통신을 행하는 디바이스를 제어하는 컴퓨터의 프로그램으로서,
    난수를 생성하는 난수 생성 스텝과,
    상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과,
    상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과,
    상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝
    을 포함하는 프로그램.
  19. 정보 처리 장치와 통신을 행하는 디바이스를 제어하는 컴퓨터에,
    난수를 생성하는 난수 생성 스텝과,
    상기 정보 처리 장치로부터의 폴링 리퀘스트에 포함되는 상기 키를 식별하기 위한 식별자에 대응하는 키를, 하나 이상의 키가 기억되어 있는 기억 수단으로부터 읽어내기 위한 처리를 제어하는 읽어내기 제어 스텝과,
    상기 읽어내기 제어 스텝의 처리에 의해 읽어내기가 제어된 상기 키로, 상기 난수 생성 스텝의 처리에서 생성된 난수를 암호화하는 암호화 스텝과,
    상기 암호화 스텝의 처리에 의해 암호화된 상기 난수의 데이터를 포함하는 상기 폴링 레스펀스를 생성하는 폴링 레스펀스 생성 스텝
    을 포함하는 처리를 실행시키는 프로그램이 기록되어 있는 기록 매체.
KR1020087007210A 2006-07-26 2008-03-25 통신 시스템 및 통신 방법 KR101472142B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2006203703A JP4622951B2 (ja) 2006-07-26 2006-07-26 通信システムおよび通信方法、情報処理装置および方法、デバイス、プログラム、並びに記録媒体
JPJP-P-2006-00203703 2006-07-26
PCT/JP2007/064633 WO2008013212A1 (fr) 2006-07-26 2007-07-26 Système de communication et procédé de communication

Publications (2)

Publication Number Publication Date
KR20090041358A true KR20090041358A (ko) 2009-04-28
KR101472142B1 KR101472142B1 (ko) 2014-12-24

Family

ID=38981523

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020087007210A KR101472142B1 (ko) 2006-07-26 2008-03-25 통신 시스템 및 통신 방법

Country Status (7)

Country Link
US (1) US8837725B2 (ko)
EP (1) EP2045956A1 (ko)
JP (1) JP4622951B2 (ko)
KR (1) KR101472142B1 (ko)
CN (1) CN101351987B (ko)
HK (1) HK1125234A1 (ko)
WO (1) WO2008013212A1 (ko)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5112812B2 (ja) * 2007-10-19 2013-01-09 パナソニック株式会社 遠隔医療システム
KR101547696B1 (ko) * 2007-11-30 2015-08-26 삼성전자주식회사 근접 통신 네트워크에서 안전한 통신을 위한 시스템 및 방법
JP2009276916A (ja) 2008-05-13 2009-11-26 Sony Corp 通信装置、通信方法、リーダライタ及び通信システム
JP2010171721A (ja) * 2009-01-22 2010-08-05 Fuji Electric Holdings Co Ltd Icカードシステム、その上位機器、プログラム
JP5693824B2 (ja) * 2009-03-25 2015-04-01 株式会社東芝 Icカードの処理装置、icカード、及びicカードの処理システム
US9106628B2 (en) * 2009-07-07 2015-08-11 Alcatel Lucent Efficient key management system and method
JP5523768B2 (ja) * 2009-08-28 2014-06-18 Kddi株式会社 情報通信システム、情報通信方法およびプログラム
JP5521803B2 (ja) * 2010-06-10 2014-06-18 ソニー株式会社 通信装置、通信方法、及び、通信システム
DE102010041804A1 (de) * 2010-09-30 2012-04-05 Siemens Aktiengesellschaft Verfahren zur sicheren Datenübertragung mit einer VPN-Box
CN102857914A (zh) * 2011-06-28 2013-01-02 芯讯通无线科技(上海)有限公司 Nfc通信安全系统及nfc安全通信的方法和移动终端
US9237133B2 (en) * 2012-12-12 2016-01-12 Empire Technology Development Llc. Detecting matched cloud infrastructure connections for secure off-channel secret generation
US9152380B2 (en) 2013-03-12 2015-10-06 Qualcomm Incorporated Interrupt driven hardware random number generator
US9195857B2 (en) * 2013-09-30 2015-11-24 Infineon Technologies Ag Computational system
JP6232303B2 (ja) * 2014-01-31 2017-11-15 株式会社日立製作所 情報処理装置
US10169719B2 (en) * 2015-10-20 2019-01-01 International Business Machines Corporation User configurable message anomaly scoring to identify unusual activity in information technology systems
US10218698B2 (en) * 2015-10-29 2019-02-26 Verizon Patent And Licensing Inc. Using a mobile device number (MDN) service in multifactor authentication
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
US10616055B2 (en) * 2018-03-06 2020-04-07 Accenture Global Solutions Limited Hash based device configuration management

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS60208137A (ja) * 1984-03-31 1985-10-19 Toshiba Corp デ−タ処理方式
JPS63232539A (ja) * 1987-03-20 1988-09-28 Hitachi Ltd コ−ドブツク暗号システム
JPS6481087A (en) * 1987-09-22 1989-03-27 Hitachi Maxell Ic card data transmission system
EP0403656B1 (en) * 1988-07-13 1995-05-24 Matsushita Electric Industrial Co., Ltd. Communication equipment
JPH04137840A (ja) * 1990-09-28 1992-05-12 Toshiba Corp 秘匿通信システム
JPH08202262A (ja) * 1995-01-30 1996-08-09 Oki Electric Ind Co Ltd 信号処理装置および信号処理方法
US5729537A (en) * 1996-06-14 1998-03-17 Telefonaktiebolaget L M Ericsson (Publ) Method and apparatus for providing anonymous data transfer in a communication system
US20030021418A1 (en) * 2001-03-19 2003-01-30 Kunio Arakawa Cryptogram communication system
WO2002076011A1 (fr) * 2001-03-19 2002-09-26 Yozan Inc. Systeme de communication cryptee
JP2003082903A (ja) 2001-06-28 2003-03-19 Sony Corp 通信システム、認証通信装置、制御装置及び通信方法
US7065647B2 (en) * 2001-06-28 2006-06-20 Sony Corporation Communication system, authentication communication device, control apparatus, and communication method
JP2004072214A (ja) * 2002-08-02 2004-03-04 Sharp Corp 電子印鑑、icカード、本人認証システムおよび携帯機器
US7231518B1 (en) * 2003-03-28 2007-06-12 Cisco Technology, Inc. System and method for authenticating a storage device for use with driver software in a storage network
CN100504916C (zh) * 2004-12-20 2009-06-24 华中科技大学 一种安全防伪系统
JP3695464B2 (ja) 2005-03-02 2005-09-14 ソニー株式会社 近接通信方法および通信装置

Also Published As

Publication number Publication date
HK1125234A1 (en) 2009-07-31
JP2008034971A (ja) 2008-02-14
EP2045956A1 (en) 2009-04-08
US20100150347A1 (en) 2010-06-17
US8837725B2 (en) 2014-09-16
WO2008013212A1 (fr) 2008-01-31
JP4622951B2 (ja) 2011-02-02
CN101351987B (zh) 2011-06-29
CN101351987A (zh) 2009-01-21
KR101472142B1 (ko) 2014-12-24

Similar Documents

Publication Publication Date Title
KR101472142B1 (ko) 통신 시스템 및 통신 방법
US9973479B2 (en) Communication system and communication method for communication based on encryption capabilities of device
JP5205720B2 (ja) 通信システムおよび通信方法、デバイス、情報処理装置、並びにプログラム
US20060050877A1 (en) Information processing apparatus and method, program, and recording medium
EP1667077B1 (en) Data storage apparatus, data processing method, recording medium, and program
EP2120386B1 (en) Communication device, communication method, reader/writer, and communication system
JP4987939B2 (ja) 保安モードに応じる手動型rfid保安方法
KR19980064776A (ko) 무선 통신 시스템
JP4774907B2 (ja) カード通信システム,リーダライタ及びicカード
JP5908869B2 (ja) 通信装置
JP2007094967A (ja) 認証システム、認証方法および入退場管理システム
JPH1125231A (ja) メンテナンス装置およびメンテナンス方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee