KR20190024729A - 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치 - Google Patents

데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치 Download PDF

Info

Publication number
KR20190024729A
KR20190024729A KR1020180098521A KR20180098521A KR20190024729A KR 20190024729 A KR20190024729 A KR 20190024729A KR 1020180098521 A KR1020180098521 A KR 1020180098521A KR 20180098521 A KR20180098521 A KR 20180098521A KR 20190024729 A KR20190024729 A KR 20190024729A
Authority
KR
South Korea
Prior art keywords
mac
secret key
function processing
processing unit
data
Prior art date
Application number
KR1020180098521A
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 르네사스 일렉트로닉스 가부시키가이샤
Publication of KR20190024729A publication Critical patent/KR20190024729A/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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time 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
    • 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
    • H04L9/3242Cryptographic 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 involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • 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/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0847Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving identity based encryption [IBE] schemes
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity
    • H04W12/102Route integrity, e.g. using trusted paths
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Small-Scale Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

데이터가 개찬되지 않았는지, 및 데이터가 올바른 경로를 따라 전송되는지 여부를 검증한다. 데이터 수신 장치(1)는, 데이터와, 개별 식별자의 계열과, 중계 장치가 생성한 MAC를 수신하는 수신부(3)와, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 의사 랜덤 함수 처리부(5)와, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성하는 MAC 생성 함수 처리부(6)와, 귀납적으로, 1계층째부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 비밀키를 생성하도록 제어하는 의사 랜덤 함수 처리 제어부(7)와, 귀납적으로, N계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하는 MAC 생성 함수 처리 제어부(8)와, 수신한 MAC와, 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는 비교부(9)를 갖는다.

Description

데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치{DATA RECEIVING DEVICE, DATA TRANSMISSION SYSTEM, AND KEY GENERATING DEVICE}
본 발명은 데이터 수신 장치, 데이터 전송 시스템 및 키 생성 장치에 관한 것이다.
최근 들어, IoT(Internet of Things) 기술이 주목받고 있다. IoT 기술에서는, 데이터를 어떻게 전송할지가 중요해진다. 데이터의 전송 방법으로서, 멀티홉(multi-hop) 통신이 알려져 있다. 이에 관련하여, 예를 들어 특허문헌 1에서는, 친(親) 노드와 복수의 자(子) 노드가 존재하고, 자 노드가 다른 자 노드를 통해 친 노드에 데이터를 송신하는 시스템에 대하여 개시하고 있다. 또한, 특허문헌 2는, 데이터 송신원의 기기가, 데이터에 대해서 인증 부호를 부가시켜 중계 기기에 데이터를 송신하는 기술에 대하여 개시하고 있다.
국제 공개 제2017/010057호 일본 특허공개 제2016-181815호 공보
멀티홉 통신에서는, 중계 장치를 통해 데이터가 전송된다. 이로 인해, 전송된 데이터가 올바른 데이터인지 여부를 확인하는 것 외에도, 전송된 데이터가 올바른 경로를 따라 전송되어 있는지 여부를 확인하는 것도 중요하다. 따라서, 전송된 데이터가 개찬되지 않았는지, 및 전송된 데이터가 올바른 경로를 따라 전송되는지 여부를 검증할 수 있는 신규 방법의 제안이 기대되고 있다.
그 밖의 과제와 신규 특징은, 본 명세서의 기술 및 첨부 도면으로부터 밝혀질 것이다.
일 실시 형태에 의하면, 데이터 수신 장치는, 중계 장치를 통해 데이터와, 송신원 장치 및 상기 중계 장치의 개별 식별자의 계열과, 상기 중계 장치가 생성한 MAC를 수신하는 수신부와, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 의사 랜덤 함수 처리부와, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성하는 MAC 생성 함수 처리부와, 상기 의사 랜덤 함수 처리부에 의해, 귀납적으로 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 비밀키를 생성하도록 제어하는 의사 랜덤 함수 처리 제어부와, 상기 MAC 생성 함수 처리부에 의해, 귀납적으로 N계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하는 MAC 생성 함수 처리 제어부와, 상기 수신부가 수신한 MAC와, 상기 MAC 생성 함수 처리부에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는 비교부를 갖는다.
상기 일 실시 형태에 의하면, 전송된 데이터가 개찬되지 않았는지, 및 전송된 데이터가 올바른 경로를 따라 전송되는지 여부를 검증할 수 있다.
도 1은, 실시 형태의 개요에 따른 데이터 수신 장치의 구성의 일례를 나타내는 블록도이다.
도 2는, 실시 형태에 따른 데이터 전송 시스템의 네트워크 구성의 일례를 나타내는 모식도이다.
도 3은, 데이터 수신 장치인 통신 장치의 구성의 일례를 나타내는 블록도이다.
도 4는, 송신원 장치인 통신 장치의 구성의 일례를 나타내는 블록도이다.
도 5는, 중계 장치인 통신 장치의 구성의 일례를 나타내는 블록도이다.
도 6은, 데이터 수신 장치인 통신 장치의 상세한 구성의 일례를 나타내는 블록도이다.
도 7은, 실시 형태 1에 따른 키 생성 장치에 있어서의 처리의 흐름을 나타내는 모식도이다.
도 8은, 실시 형태 1에 따른 검증 장치에 있어서의 처리의 흐름을 나타내는 모식도이다.
도 9는, 실시 형태 1에 따른 데이터 전송 시스템에 있어서의 초기 설정의 동작 흐름의 일례를 나타내는 흐름도이다.
도 10은, 중계 장치인 통신 장치가 하위의 노드를 위한 키 생성을 행하는 경우의 중계 장치의 구성의 일례를 나타내는 블록도이다.
도 11은, 실시 형태 1에 따른 데이터 전송 시스템에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다.
도 12는, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이다.
도 13은, 도 12에서 도시한 각 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다.
도 14는, 실시 형태 1에 따른 데이터 수신 장치에 있어서의 검증 동작의 흐름의 일례를 나타내는 흐름도이다.
도 15는, 실시 형태 2에 따른 중계 장치의 구성의 일례를 나타내는 블록도이다.
도 16은, 실시 형태 2에 따른 데이터 전송 시스템에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다.
도 17은, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이다.
도 18a는, 도 17에서 도시한 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다.
도 18b는, 도 17에서 도시한 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다.
도 18c는, 도 17에서 도시한 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다.
도 19는, 실시 형태 3에 따른 송신원 장치의 구성의 일례를 나타내는 블록도이다.
도 20은, 실시 형태 3에 따른 데이터 수신 장치의 구성의 일례를 나타내는 블록도이다.
도 21은, 실시 형태 3에 따른 검증 장치에 있어서의 처리의 흐름을 나타내는 모식도이다.
도 22는, 실시 형태 3에 따른 데이터 전송 시스템에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다.
도 23은, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이다.
도 24는, 도 23에서 도시한 각 통신 장치에 있어서의 암호 장치 또는 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다.
도 25는, 실시 형태 3에 따른 데이터 수신 장치에 있어서의 검증 동작의 흐름의 일례를 나타내는 흐름도이다.
설명의 명확화를 위해서, 이하의 기재 및 도면은, 적절히 생략, 및 간략화가 이루어져 있다. 또한, 각 도면에 있어서, 동일한 요소에는 동일한 부호가 부여되어 있으며, 필요에 따라 중복 설명은 생략되었다.
<실시 형태의 개요>
우선, 실시 형태가 상세한 설명에 앞서, 실시 형태의 개요에 대하여 설명한다. 도 1은, 실시 형태의 개요에 따른 데이터 수신 장치(1)의 구성의 일례를 나타내는 블록도이다. 도 1에 도시한 바와 같이, 데이터 수신 장치(1)는, 비밀키 기억부(2)와, 수신부(3)와, 식별자 추출부(4)와, 의사 랜덤 함수 처리부(5)와, MAC 생성 함수 처리부(6)와, 의사 랜덤 함수 처리 제어부(7)와, MAC 생성 함수 처리 제어부(8)와, 비교부(9)를 갖는다. 데이터 수신 장치(1)는, 복수의 통신 장치에 의해 구성되는 네트워크에 있어서, 멀티홉 통신에 의해 데이터('메시지'라고도 칭함)를 수신하는 통신 장치이다. 즉, 이 네트워크는, 데이터의 송신원의 통신 장치인 송신원 장치와, 데이터의 전송을 중계하는 통신 장치인 중계 장치와, 데이터를 수신하는 통신 장치(데이터의 수신처 통신 장치)인 데이터 수신 장치(1)를 포함한다. 데이터 수신 장치(1)는, 송신원 장치가 송신한 데이터를, 중계 장치를 통해 수신한다.
비밀키 기억부(2)는, 미리 정해진 비밀키인 수신처 장치키를 기억한다.
수신부(3)는, 중계 장치를 통해 정보를 수신한다. 구체적으로는, 수신부(3)는, 데이터와, 송신원 장치 및 중계 장치의 개별 식별자의 계열과, 중계 장치가 생성한 MAC(Message Authentication Code)를 수신한다. 개별 식별자는, 중계 장치 및 송신원 장치에 미리 할당된 식별자이다. 개별 식별자의 계열이란, 데이터가 데이터 수신 장치(1)에 전해질 때까지의 전송 경로상의 통신 장치의 개별 식별자를, 전송 경로상의 순서에 대응시켜 배열한 것이다.
상술한 바와 같이, 송신원 장치로부터 데이터 수신 장치(1)까지의 전송 경로상에는 중계 장치가 존재하고 있다. 이로 인해, 데이터 수신 장치(1)를 최상위층의 통신 장치로 하고, 송신원 장치를 최하층의 통신 장치로 하면, 전송 경로상의 각 통신 장치는 계층 구성으로 되어 있다. 여기서, 데이터 수신 장치(1)를, 0계층째의 통신 장치로 하면, 데이터를 데이터 수신 장치(1)에 직접 송신하는 통신 장치는, 1계층째의 통신 장치라고 할 수 있다. 또한, p개(p는 양의 정수)의 중계 장치를 거쳐, 송신원 장치로부터의 데이터가 데이터 수신 장치(1)에 도달되는 경우, 이 송신원 장치는, p+1계층째의 통신 장치라고 할 수 있다.
식별자 추출부(4)는, 데이터의 전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 수신부(3)가 수신한 계열로부터 추출한다. 또한, 식별자 추출부(4)는, 임의의 방법에 의해, 계열로부터 각 개별 식별자를 추출하면 된다. 예를 들어, 각 계층의 통신 장치의 개별 식별자의 길이(즉, 비트 길이)는 미리 정해져 있으며, 식별자 추출부(4)는, 이 미리 정해진 길이에 기초하여, 계열로부터 각각의 개별 식별자를 추출해도 된다.
의사 랜덤 함수 처리부(5)는, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출한다. 도출된 비밀키는, MAC 생성 함수 처리부(6)에 의한 처리에서 사용된다. 또한, MAC 생성 함수 처리부(6)는, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성한다.
의사 랜덤 함수 처리 제어부(7)는, 의사 랜덤 함수 처리부(5)에 의한 처리를 제어한다. 구체적으로는, 의사 랜덤 함수 처리 제어부(7)는, 수신처 장치키와 1계층째의 통신 장치의 추출된 개별 식별자를 의사 랜덤 함수 처리부(5)에 입력하여 비밀키를 도출시킨다. 또한, 의사 랜덤 함수 처리 제어부(7)는, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 의사 랜덤 함수 처리부(5)에 입력하여 귀납적으로 비밀키를 도출시킨다. 이와 같이 하여, 의사 랜덤 함수 처리 제어부(7)는, 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 비밀키를 생성하도록 제어한다.
MAC 생성 함수 처리 제어부(8)는, MAC 생성 함수 처리부(6)에 의한 처리를 제어한다. 구체적으로는, MAC 생성 함수 처리 제어부(8)는, 수신부(3)가 수신한 데이터와 N계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 MAC 생성 함수 처리부(6)에 입력하여 MAC를 도출시킨다. 또한, MAC 생성 함수 처리 제어부(8)는, 도출된 MAC와 m계층째(m은 N-1 이하 1 이상의 양의 정수)의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 MAC 생성 함수 처리부(6)에 입력하여, 귀납적으로 MAC를 도출시킨다. 이와 같이 하여, MAC 생성 함수 처리 제어부(8)는, N계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어한다.
비교부(9)는, 수신부(3)가 수신한 MAC와, MAC 생성 함수 처리부(6)에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교한다.
개찬이 행해진 데이터를 데이터 수신 장치(1)가 수신한 경우, MAC 생성 함수 처리부(6)에 적절한 데이터가 입력되지 않게 되기 때문에, 수신부(3)가 수신한 MAC와, MAC 생성 함수 처리부(6)에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC는 상이해진다.
또한, 개찬된 MAC를 데이터 수신 장치(1)가 수신한 경우에도, MAC 생성 함수 처리부(6)에 적절한 MAC가 입력되지 않게 되기 때문에, 수신부(3)가 수신한 MAC와, MAC 생성 함수 처리부(6)에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC는 상이해진다.
또한, 개찬이 행해진 개별 식별자의 계열을 데이터 수신 장치(1)가 수신한 경우, 의사 랜덤 함수 처리부(5)에 적절한 개별 식별자가 입력되지 않게 되기 때문에, 적절한 비밀키가 생성되지 않는다. 이로 인해, MAC 생성 함수 처리부(6)에 적절한 비밀키가 입력되지 않게 되기 때문에, 수신부(3)가 수신한 MAC와, MAC 생성 함수 처리부(6)에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC는 상이해진다.
이로 인해, 비교부(9)의 비교에 의해, 양쪽 MAC가 일치하였다고 판정된 경우, 올바른 데이터가 올바른 경로를 따라 전송되었음을 의미한다. 또한, 비교부(9)의 비교에 의해, 양쪽 MAC가 일치하지 않았다고 판정된 경우, 데이터가 개찬되었거나, 또는 데이터가 올바른 경로를 따라 전송되지 않았음을 의미한다. 따라서, 데이터 수신 장치(1)에 의하면, 전송된 데이터가 개찬되지 않았는지, 및 전송된 데이터가 올바른 경로를 따라 전송되는지 여부를 검증할 수 있다.
<실시 형태 1>
다음으로, 실시 형태의 상세에 대하여 설명한다. 도 2는, 실시 형태 1에 따른 데이터 전송 시스템(10)의 네트워크 구성의 일례를 나타내는 모식도이다. 데이터 전송 시스템(10)은, 복수의 통신 장치에 의해 구성되는 네트워크에 있어서, 멀티홉 통신에 의해 데이터('메시지'라고도 칭함)를 전송하는 시스템이다.
데이터 전송 시스템(10)에서는, 송신된 데이터를 최종적으로 수신하는 통신 장치인 통신 장치(100_0)를 최상위의 노드로서, 트리 형상으로 네트워크가 구성되어 있다. 바꾸어 말하면, 데이터 전송 시스템(10)에서는, 트리 형상으로 통신 경로가 연결되어 있다. 최상위의 노드인 통신 장치(100_0)에는, 1 이상의 통신 장치가 통신 가능하게 접속되어 있다. 도 2에 도시한 예에서는, 통신 장치(100_0)는, 통신 장치(100_1a, 100_1b, 100_1c)와, 통신 가능하게 접속되어 있다. 통신 장치(100_0)와 통신 가능하게 접속하는 통신 장치는, 각각, 0 이상의 통신 장치가 통신 가능하게 접속되어 있다. 도 2에 도시한 예에서는, 통신 장치(100_1b)에 대해서, 통신 장치(100_2a, 100_2b, 100_2c)가 접속되어 있다. 데이터 전송 시스템(10)의 네트워크 구성에서는, 마찬가지로, 추가로 통신 장치를 접속할 수 있다. 도 2에 도시한 예에서는, 통신 장치(100_2b)에 대해서, 통신 장치(100_3a, 100_3b)가 접속되어 있다. 또한, 데이터 전송 시스템(10)에 있어서, 각 통신 장치는, 무선 통신에 의해 서로 통신해도 되고, 유선 통신에 의해 서로 통신해도 된다.
이와 같이, 데이터 전송 시스템(10)에 있어서는, 계층적으로, 각 통신 장치가 통신 가능하게 접속되어 있다. 또한, 도 2에 도시한 예에서는, 최상위의 노드인 통신 장치(100_0)는, 3계층의 네트워크와 접속하고 있지만, 계층 수는 일례이며, 실시 형태가 이것으로 한정되지 않음은 물론이다. 또한, 각 통신 장치에 접속하고 있는 통신 장치의 수도 일례이며, 실시 형태가 이것으로 한정되지 않음은 물론이다.
이하의 설명에서는, 최상위의 노드인 통신 장치(100_0)와 직접적으로 통신 가능하게 접속되어 있는 통신 장치(도 2의 예에서는, 통신 장치(100_1a, 100_1b, 100_1c))를 1계층째의 통신 장치라 칭한다. 또한, 1계층째의 통신 장치와 직접적으로 통신 가능하게 접속되어 있는 하위의 통신 장치(도 2의 예에서는, 통신 장치(100_2a, 100_2b, 100_2c))를 2계층째의 통신 장치라 칭한다. 마찬가지로, n-1계층째의 통신 장치와 직접적으로 통신 가능하게 접속되어 있는 하위의 통신 장치를 n계층째의 통신 장치라 칭한다. 또한, 데이터 전송 시스템(10)을 구성하는 통신 장치에 대하여, 이들을 구별하지 않고, 통신 장치(100)라 칭하는 경우가 있다.
상술한 바와 같이, 데이터 전송 시스템(10)에 있어서, 데이터는 멀티홉 통신에 의해 전송된다. 이로 인해, 데이터 전송 시스템(10)은, 데이터의 송신원의 통신 장치인 송신원 장치와, 데이터의 전송을 중계하는 통신 장치인 중계 장치와, 데이터를 수신하는 통신 장치(데이터의 수신처 통신 장치)인 데이터 수신 장치를 포함한다. 그리고, 데이터 수신 장치는, 송신원 장치가 송신한 데이터를, 중계 장치를 통해 수신한다.
도 2에 도시한 데이터 전송 시스템(10)에서는, 예를 들어 통신 장치(100_3a, 100_3b, 100_2a, 100_2c, 100_1a, 100_1c)가 송신원 장치이다. 또한, 도 2에 도시한 데이터 전송 시스템(10)에서는, 예를 들어 통신 장치(100_2b, 100_1b)가 중계 장치이다. 또한, 도 2에 도시한 데이터 전송 시스템(10)에서는, 통신 장치(100_0)가 데이터 수신 장치이다. 즉, 통신 장치(100_0)는, 상술한 데이터 수신 장치(1)에 상당한다.
데이터 수신 장치인 통신 장치(100_0)는, 예를 들어 클라우드나 서버 등과 같은, 계산 능력이 비교적 높은 계산기이다. 또한, 중계 장치 또는 송신원 장치인, 통신 장치(100_0) 이외의 통신 장치는, 예를 들어 반도체 장치나 내장 기기 등과 같은, 계산 능력이 비교적 낮은 전자 기기이다.
데이터 전송 시스템(10)에 있어서, 송신원 장치 또는 중계 장치인 통신 장치(100)는, 로컬 ID가 할당되어 있다. 여기서, 로컬 ID는, 상술한 개별 식별자이며, 통신 장치(100)를 식별하기 위한 식별자이다. 로컬 ID(개별 식별자)는, 동일한 통신 장치(100)에 대해서 직접적으로 접속하는 하위의 통신 장치(100)를 적어도 일의적으로 특정할 수 있는 식별자이다. 따라서, 로컬 ID(개별 식별자)는, 데이터 전송 시스템(10)에 있어서의 통신 장치(100)를 일의적으로 특정할 수 있는 식별자가 아니어도 된다. 예를 들어, 동일한 통신 장치(100_1b)의 직접적인 하위의 통신 장치인 통신 장치(100_2a, 100_2b, 100_2c)에 대해서는, 각각 서로 다른 로컬 ID가 할당되어 있다. 또한, 예를 들어 통신 장치(100_2a)의 로컬 ID와 통신 장치(100_3a)의 로컬 ID가 동일해도 된다.
로컬 ID는, 예를 들어 통신 장치(100)의 IP 어드레스여도 되고, 통신 장치(100)의 일련 번호여도 되며, 통신 장치(100)의 제조 번호여도 된다. 또한, 본 실시 형태에서는, 로컬 ID는, 후술하는 파생키 설정값과는 상이한 값이다. 파생키 설정값은, 예를 들어 0이다. 이로 인해, 로컬 ID에는, 예를 들어 0보다 큰 정수가 사용된다. 로컬 ID의 길이는 각 계층에 대해서 자유롭게 설정 가능하다. 단, 상술한 바와 같이, 어떤 통신 장치가 관리하는 하위 노드의 수의 상한은, 로컬 ID의 비트 수를 A로 했을 때 2^A를 초과하지 않도록 한다. 본 실시 형태에서는, 로컬 ID는, 파생키 설정값과는 상이한 값이 이용되기 때문에, 실제로는, 어떤 통신 장치가 관리하는 하위 노드의 수의 상한은, 2^A-1을 초과하지 않게 된다. 이와 같이, 로컬 ID의 길이에 대해 지수적인 수의 통신 장치를 네트워크에 참가시킬 수 있다.
또한, 로컬 ID(개별 식별자)가 할당되어 있는 통신 장치(100)는, 계층화 식별자를 갖는다. 계층화 식별자는, 로컬 ID(개별 식별자)가 할당되어 있는 통신 장치(100)의 각각에 일의적으로 관련지어지는 식별자이다. 계층화 식별자는, 당해 계층화 식별자에 관련지어지는 통신 장치(100)의 로컬 ID(개별 식별자)와, 당해 통신 장치(100)로부터의 미리 정해진 데이터 전송 경로상의 각 통신 장치(100)의 로컬 ID(개별 식별자)를 조합하여 구성되는 식별자이다. 구체적으로는, 예를 들어 이들의 로컬 ID를, 전송 경로상의 순서에 대응시켜 배열하여 구성되는 식별자이다. 즉, 계층화 식별자는, 어떤 통신 장치(100)로부터 데이터 수신 장치까지의 미리 정해진 데이터 전송 경로상의 각 통신 장치(100)의 개별 식별자를 조합하여 구성되는 식별자이다. 이하, 계층화 식별자를 계층화 ID라 칭한다.
여기서, 계층화 ID에 대하여 구체예를 나타내어 설명한다. 도 2에 도시한 통신 장치(100_1b)의 로컬 ID가 ID1, 통신 장치(100_2b)의 로컬 ID가 ID2, 통신 장치(100_3a)의 로컬 ID가 ID3인 경우, 통신 장치(100_3a)의 계층화 ID는 {ID1, ID2, ID3}이며, 통신 장치(100_2b)의 계층화 ID는 {ID1, ID2}이다. 또한, 통신 장치(100_1b)의 계층화 ID는, 통신 장치(100_1b)의 로컬 ID와 동일해진다. 이와 같이, 계층화 ID에 의해서, 네트워크에 의해 통신 장치(100_0)에 접속되어 있는 통신 장치(100)를 일의적으로 특정할 수 있다.
여기서, 통신 장치(100)의 구성에 대하여 구체적으로 설명한다.
우선, 데이터 수신 장치인 통신 장치(100)(도 2에 도시한 예에서는, 통신 장치(100_0))의 구성에 대하여 설명한다. 도 3은, 데이터 수신 장치인 통신 장치(100)의 구성의 일례를 나타내는 블록도이다. 데이터 수신 장치로서의 통신 장치(100)는, 수신 장치(201)와, 송신 장치(202)와, 키 생성 장치(203)와, 검증 장치(204)를 갖는다.
수신 장치(201)는, 상술한 수신부(3)에 상당하고, 다른 통신 장치(100)로부터 송신된 정보를 수신하는 수신 회로에 의해 구성된 수신기이다. 또한, 송신 장치(202)는, 다른 통신 장치(100)로 정보를 송신하는 송신 회로에 의해 구성된 송신기이다. 수신 장치(201) 및 송신 장치(202)는, 하나의 송수신 장치로서 구성되어 있어도 된다. 수신 장치(201)는, 수신부라 칭해지는 경우가 있고, 송신 장치(202)는, 송신부라 칭해지는 경우가 있다.
수신 장치(201)는, 중계 장치를 통해 송신 대상인 데이터와, 송신원 장치 및 중계 장치의 로컬 ID의 계열과, 중계 장치가 생성한 MAC를 수신한다. 여기서, 이 계열은, 중계 경로를 나타내고 있으며, 올바른 중계 경로에 의해 전송이 행해진 경우, 송신원 장치의 계층화 ID와 일치한다. 송신 장치(202)는, 키 생성 장치(203)에 의해 생성된 비밀키를 송신한다.
키 생성 장치(203)는, 송신원 장치 및 중계 장치에 할당되는 비밀키를 생성하는 장치이다. 키 생성 장치(203)는, 송신원 장치의 통신 장치(100) 및 중계 장치의 통신 장치(100)에 대해서, 계층화 ID에 기초하여 비밀키를 생성한다. 송신 장치(202)는, 생성된 비밀키를, 송신원 장치의 통신 장치(100) 및 중계 장치의 통신 장치(100)에 송부한다. 데이터 수신 장치가 송신원 장치 및 중계 장치의 각각의 계층화 ID에 관한 정보를 갖고 있는 경우, 데이터 수신 장치는, 각 계층화 ID를 사용하여, 각 통신 장치(100)에 대한 비밀키를 각각 생성한다. 예를 들어, 각 통신 장치(100)의 로컬 ID를 데이터 수신 장치가 결정하는 경우, 데이터 수신 장치는 각 통신 장치(100)의 계층화 ID를 알 수 있다. 이에 반하여, 예를 들어 중계 장치가, 네트워크에 추가된 하위의 통신 장치(100)에 대해서 로컬 ID를 결정하는 경우, 이 하위의 통신 장치(100)의 계층화 ID가 데이터 수신 장치에 통지된 시점에서, 데이터 수신 장치는 당해 하위의 통신 장치(100)에 대한 비밀키를 생성한다. 또한, 비밀키의 송수신에 따른 통신은 개찬 및 도청이 행해지지 않는 환경에서 행해지도록 한다.
검증 장치(204)는, 데이터 수신 장치인 통신 장치(100)에 전송된 메시지에 대하여 검증하는 장치이다. 검증 장치(204)는, 수신 장치(201)가, 중계 장치로부터 수신한 메시지, MAC, 및 로컬 ID의 계열(송신원 장치의 계층화 ID에 상당)을 수신하면, 메시지의 정당성 검증 및 메시지가 올바른 중계 장치를 경유하여 전송되었는지 여부의 검증을 행한다. 또한, 키 생성 장치(203) 및 검증 장치(204)의 상세에 대해서는 후술한다.
다음으로, 송신원 장치인 통신 장치(100)(도 2에 도시한 예에서는, 통신 장치(100_3a, 100_3b, 100_2a, 100_2c, 100_1a, 100_1c)의 구성에 대하여 설명한다. 도 4는, 송신원 장치인 통신 장치(100)의 구성의 일례를 나타내는 블록도이다. 송신원 장치로서의 통신 장치(100)는, 수신 장치(301)와, 송신 장치(302)와, 인증 생성 장치(303)를 갖는다.
수신 장치(301)는, 다른 통신 장치(100)로부터 송신된 정보를 수신하는 수신 회로에 의해 구성된 수신기이다. 또한, 송신 장치(302)는, 다른 통신 장치(100)로 정보를 송신하는 송신 회로에 의해 구성된 송신기이다. 수신 장치(301) 및 송신 장치(302)는, 하나의 송수신 장치로서 구성되어 있어도 된다. 수신 장치(301)는 수신부라 칭해지는 경우가 있고, 송신 장치(302)는 송신부라 칭해지는 경우가 있다.
인증 생성 장치(303)는, 메시지에 대한 인증을 생성하는 장치이며, 구체적으로는, MAC를 생성하는 장치이다. 인증 생성 장치(303)는, 의사 랜덤 함수 처리부(311)와, 의사 랜덤 함수 처리 제어부(312)와, MAC 생성 함수 처리부(321)와, MAC 생성 함수 처리 제어부(322)를 갖는다. 인증 생성 장치(303)는, 데이터 수신 장치에 의해 생성된 비밀키를 사용하여, 당해 비밀키로부터 파생한 비밀키(이하, '파생키'라 칭함)를 의사 랜덤 함수 처리부(311)에 의해 생성한다. 그리고, 이 파생키를 사용하여, MAC 생성 함수 처리부(321)에 의해, 송신 대상의 데이터인 메시지에 대한 MAC를 산출한다.
의사 랜덤 함수 처리부(311)는, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키(파생키)를 도출한다. 소정의 의사 랜덤 함수는, 비밀키 및 임의의 길이의 값을 입력으로 하고, 임의의 길이의 암호학적으로 난수와 식별할 수 없는 값을 출력하는 함수이다. 의사 랜덤 함수에서는, 소정의 비밀키와 함께 동일한 메시지를 입력하면, 함수의 출력은 항상 동일해진다. 공통키 암호 또는 해시 함수를 베이스로 한 키 도출 함수, 멱승 연산을 이용한 안전성이 증명된 임의의 키 도출 함수 중 어느 하나가 의사 랜덤 함수로서 사용되어도 된다. 또한, 후술하는 의사 랜덤 함수 처리부(411) 및 의사 랜덤 함수 처리부(211)에 있어서도, 의사 랜덤 함수 처리부(311)와 동일한 의사 랜덤 함수가 사용된다.
또한, 의사 랜덤 함수 처리 제어부(312)는, 당해 송신원 장치에 할당된 비밀키와 파생키 설정값을 의사 랜덤 함수 처리부(311)에 입력하고, 당해 송신원 장치에 고유의 비밀키를 생성하도록 제어한다. 또한, 파생키 설정값은 소정값이며, 예를 들어 0이다. 후술하는 의사 랜덤 함수 처리부(411)에 있어서도, 의사 랜덤 함수 처리부(311)와 동일한 파생키 설정값이 이용된다. 또한, 후술하는 의사 랜덤 함수 처리부(211)에 있어서도, 파생키 설정값이 입력되는 경우에는, 의사 랜덤 함수 처리부(311)와 동일한 파생키 설정값이 이용된다. 또한, 본 실시 형태에서는, 의사 랜덤 함수 처리부(311)에 입력되는 비밀키는, 데이터 수신 장치의 키 생성 장치(203)의 후술하는 의사 랜덤 함수 처리부(211)에 의해 생성된 비밀키이다. 수신 장치(301)는, 키 생성 장치(203)에 의해 생성된 비밀키를 수신하고, 의사 랜덤 함수 처리부(311)는, 이 수신한 비밀키를 사용하여 파생키를 생성한다.
MAC 생성 함수 처리부(321)는, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성한다. 소정의 MAC 생성 함수는, 공통키 암호 혹은 해시 함수를 이용하여, 메시지 인증자(Message Authentication Code)를 생성하는 함수이다. 공통키 암호를 사용한 CMAC(Cipher-based MAC), 해시 함수를 사용한 HMAC(Hash-based MAC) 등, 안전성이 보증된 방법이면 어떠한 함수가 MAC 생성 함수로서 사용되어도 된다. 또한, 후술하는 MAC 생성 함수 처리부(421) 및 MAC 생성 함수 처리부(221)에 있어서도, MAC 생성 함수 처리부(321)와 동일한 의사 랜덤 함수가 사용된다.
MAC 생성 함수 처리 제어부(322)는, 송신 대상의 데이터(메시지)와 당해 송신원 장치에 고유의 비밀키를 MAC 생성 함수 처리부(321)에 입력하고, 데이터에 대한 MAC를 생성하도록 제어한다. 본 실시 형태에서는, MAC 생성 함수 처리 제어부(322)는, 의사 랜덤 함수 처리부(311)에 의해 생성된 비밀키(파생키)를 당해 송신원 장치에 고유의 비밀키로서 MAC 생성 함수 처리부(321)에 입력한다. 또한, MAC 생성 함수 처리부(321)에는, 송신 대상의 데이터가 입력되기 때문에, 임의 길이의 값이 메시지로서 입력된다.
송신 장치(302)는, 송신 대상의 데이터인 메시지와, MAC 생성 함수 처리부(321)가 생성한 MAC와, 당해 송신원 장치의 로컬 ID를, 당해 송신원 장치의 상위 노드인 중계 장치에 송신한다.
다음으로, 중계 장치인 통신 장치(100)(도 2에 도시한 예에서는, 통신 장치(100_2b, 100_1b))의 구성에 대하여 설명한다. 도 5는, 중계 장치인 통신 장치(100)의 구성의 일례를 나타내는 블록도이다. 중계 장치로서의 통신 장치(100)는, 수신 장치(401)와, 송신 장치(402)와, 인증 생성 장치(403)를 갖는다.
수신 장치(401)는, 다른 통신 장치(100)로부터 송신된 정보를 수신하는 수신 회로에 의해 구성된 수신기이다. 또한, 송신 장치(402)는, 다른 통신 장치(100)로 정보를 송신하는 송신 회로에 의해 구성된 송신기이다. 수신 장치(401) 및 송신 장치(402)는, 하나의 송수신 장치로서 구성되어 있어도 된다. 수신 장치(401)는 수신부라 칭해지는 경우가 있고, 송신 장치(402)는 송신부라 칭해지는 경우가 있다.
데이터의 전송 중계가 행해질 때, 수신 장치(401)는, 송신 대상의 데이터와, MAC와, 통신 장치(100)의 개별 식별자를 수신한다.
인증 생성 장치(403)는, 인증 생성 장치(303)와 마찬가지로, 메시지에 대한 인증을 생성하는 장치이며, 구체적으로는, MAC를 생성하는 장치이다. 인증 생성 장치(403)는, 의사 랜덤 함수 처리부(411)와, 의사 랜덤 함수 처리 제어부(412)와, MAC 생성 함수 처리부(421)와, MAC 생성 함수 처리 제어부(422)를 갖는다. 인증 생성 장치(403)는, 데이터 수신 장치에 의해 생성된 비밀키를 사용하여, 당해 비밀키로부터 파생키를 의사 랜덤 함수 처리부(411)에 의해 생성한다. 그리고, 이 파생키를 사용하여, MAC 생성 함수 처리부(421)에 의해, 수신 장치(401)가 수신한 MAC에 대한 MAC를 산출한다.
의사 랜덤 함수 처리부(411)는, 의사 랜덤 함수 처리부(311)와 마찬가지로, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키(파생키)를 도출한다. 또한, 의사 랜덤 함수 처리 제어부(412)는, 당해 중계 장치에 할당된 비밀키와 파생키 설정값을 의사 랜덤 함수 처리부(411)에 입력하여, 당해 중계 장치에 고유의 비밀키를 생성하도록 제어한다. 본 실시 형태에서는, 의사 랜덤 함수 처리부(411)에 입력되는 비밀키는, 데이터 수신 장치의 키 생성 장치(203)의 후술하는 의사 랜덤 함수 처리부(211)에 의해 생성된 비밀키이다.
MAC 생성 함수 처리부(421)는, MAC 생성 함수 처리부(321)와 마찬가지로, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성한다. MAC 생성 함수 처리 제어부(422)는, 수신 장치(401)가 수신한 MAC와 당해 중계 장치에 고유의 비밀키를 MAC 생성 함수 처리부(421)에 입력하여, 수신 장치(401)가 수신한 MAC에 대한 MAC를 생성하도록 제어한다. 본 실시 형태에서는, MAC 생성 함수 처리 제어부(422)는, 의사 랜덤 함수 처리부(411)에 의해 생성된 비밀키를 MAC 생성 함수 처리부(421)에 입력한다. 또한, MAC 생성 함수 처리부(421)에는, 수신 장치(401)에 의해 수신된 MAC가 메시지로서 입력되기 때문에, MAC 생성 함수 처리부(421)에 메시지로서 입력되는 값의 비트 길이는, 산출되는 MAC의 비트 길이로 된다.
송신 장치(402)는, 송신 대상의 데이터인 메시지와, MAC 생성 함수 처리부(421)가 생성한 MAC와, 당해 중계 장치의 로컬 ID 및 수신 장치(401)가 수신한 로컬 ID를, 상위의 노드인 통신 장치(즉, 다른 중계 장치 또는 데이터 수신 장치)에 송신한다. 또한, 당해 중계 장치에 메시지를 직접 송신한 통신 장치(100)가 중계 장치인 경우, 당해 중계 장치의 수신 장치(401)는 송신원 장치로부터 당해 중계 장치까지의 통신 장치(100)에 대한 복수의 로컬 ID를 수신하게 된다. 이로 인해, 그러한 경우에는, 송신 장치(402)는, 당해 중계 장치의 로컬 ID와 함께 복수의 수신된 로컬 ID군을 상위의 노드인 통신 장치에 송신한다.
다음으로, 데이터 수신 장치의 키 생성 장치(203) 및 검증 장치(204)의 상세에 대하여 설명한다. 도 6은, 데이터 수신 장치인 통신 장치(100)의 상세한 구성의 일례를 나타내는 블록도이다. 도 6에 도시한 바와 같이, 데이터 수신 장치인 통신 장치(100)는, 검증 장치(204)의 구성으로서, 비밀키 기억부(230)와, 계층 분리부(240)와, 의사 랜덤 함수 처리부(211)와, 의사 랜덤 함수 처리 제어부(212)와, MAC 생성 함수 처리부(221)와, MAC 생성 함수 처리 제어부(222)와, 비교부(250)를 갖는다. 여기서, 비밀키 기억부(230), 계층 분리부(240), 의사 랜덤 함수 처리부(211), 및 의사 랜덤 함수 처리 제어부(212)에 의해 키 생성 장치(203)가 구성된다.
비밀키 기억부(230)는, 상술한 비밀키 기억부(2)에 상당하고, 미리 정해진 비밀키인 수신처 장치키를 기억한다. 비밀키 기억부(230)는, 예를 들어 시큐어 스토리지 등의 임의의 안전한 기억 장치에 의해 실현된다. 수신처 장치키는 데이터 수신 장치가 갖는 비밀키이며, 이 수신처 장치키에 기초하여, 송신원 장치 및 중계 장치에 할당되는 비밀키가 생성된다.
계층 분리부(240)는, 송신원 장치 및 중계 장치에 배포하기 위한 비밀키 생성이 행해질 때, 즉, 키 생성 장치(203)로서 기능할 때, 다음과 같이 동작한다. 계층 분리부(240)는, 비밀키의 배포 대상인 통신 장치(100)의 계층화 ID로부터, 전송 경로상의 각 계층의 통신 장치(100)의 로컬 ID를 추출한다. 예를 들어, 비밀키의 배포 대상이 도 2에 도시한 통신 장치(100_3a)인 경우, 계층 분리부(240)는, 통신 장치(100_3a)의 계층화 ID로부터, ID3, ID2, 및 ID1을 각각 추출한다. 이와 같이, 계층 분리부(240)는, 비밀키의 배포 대상인 통신 장치(100)가 네트워크에 있어서의 N계층째의 통신 장치인 경우, 1계층째의 통신 장치(100)로부터 N계층째의 통신 장치(100)까지의 N개의 로컬 ID를 추출한다.
또한, 계층 분리부(240)는, 송신원 장치로부터의 데이터의 전송이 행해졌을 때, 즉, 검증 장치(204)로서 기능할 때, 다음과 같이 로컬 ID를 추출한다. 계층 분리부(240)는, 데이터의 전송 경로상의 각 계층의 통신 장치(100)의 로컬 ID를, 수신 장치(201)가 수신한 로컬 ID의 계열로부터 추출한다. 상술한 바와 같이, 송신원 장치 및 중계 장치는, 상위의 통신 장치에 데이터를 전송할 때, 자 장치의 로컬 ID를 전송 대상의 정보에 추가한다. 이로 인해, 데이터 수신 장치의 수신 장치(201)는, 전송 경로상의 각 통신 장치(100)(즉, 송신원 장치로부터 데이터 수신 장치까지의 각 계층의 통신 장치(100))의 로컬 ID의 계열을 수신한다. 계층 분리부(240)는, 이 수신된 계열로부터, 각 계층의 로컬 ID를 분리하여 추출한다. 계층 분리부(240)는, 계층마다의 로컬 ID의 길이에 따라서, 수신한 계열을 분리하고, 각 로컬 ID를 추출한다. 이와 같이, 계층 분리부(240)는, N개의 로컬 ID의 계열이 수신된 경우, 1계층째의 통신 장치(100)로부터 N계층째의 통신 장치(100)까지의 N개의 로컬 ID를 추출한다.
또한, 계층 분리부(240)는, 상술한 식별자 추출부(4)에 상당한다.
의사 랜덤 함수 처리부(211)는, 의사 랜덤 함수 처리부(311)와 마찬가지로, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출한다. 의사 랜덤 함수 처리부(211)의 처리는, 의사 랜덤 함수 처리 제어부(212)에 의해 제어된다. 의사 랜덤 함수 처리부(211)는, 상술한 의사 랜덤 함수 처리부(5)에 상당한다. 또한, 의사 랜덤 함수 처리 제어부(212)는, 상술한 의사 랜덤 함수 처리 제어부(7)에 상당한다.
의사 랜덤 함수 처리 제어부(212)는, 송신원 장치 및 중계 장치에 배포하기 위한 비밀키를 생성할 때, 즉, 키 생성 장치(203)로서 기능할 때, 계층 분리부(240)에 의해 추출된 로컬 ID를 상위의 계층으로부터 순서대로 의사 랜덤 함수 처리부(211)에 입력하여, 귀납적인 제어를 행한다. 구체적으로는, 의사 랜덤 함수 처리 제어부(212)는, 다음과 같은 제어를 행한다.
의사 랜덤 함수 처리 제어부(212)는, 수신처 장치키와, 1계층째의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하여 비밀키를 도출시킨다. 또한, 의사 랜덤 함수 처리 제어부(212)는, 이에 의해 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 계층 분리부(240)에 의해 추출된 로컬 ID의 수)의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하여, 귀납적으로 비밀키를 도출시킨다.
즉, 의사 랜덤 함수 처리 제어부(212)는, 수신처 장치키와 1계층째의 로컬 ID를 사용하여 1계층째의 로컬 ID에 대응하는 비밀키를 도출시킨 후, k-1계층째의 로컬 ID를 사용하여 도출된 비밀키와 k계층째의 로컬 ID를 사용하여, k계층째의 로컬 ID에 대응하는 비밀키를 도출시키는 처리를 반복하도록 제어한다.
이에 의해, 의사 랜덤 함수 처리 제어부(212)는, 비밀키의 배포 대상인 N계층째의 소정의 통신 장치(100)의 비밀키를 생성하도록 제어한다.
도 7은, 키 생성 장치(203)에 있어서의 상술한 처리의 흐름을 나타내는 모식도이다. 또한, 도 7에 있어서, {ID}는, 비밀키의 배포 대상인 통신 장치(100)의 계층화 ID를 나타낸다. 또한, ID1, ID2, …, IDN은, 각각 로컬 ID를 나타내고, 그들의 인덱스는, 몇 번째의 계층의 통신 장치(100)에 대응하는 로컬 ID인지를 나타낸다. 예를 들어, ID1은, 1계층째의 통신 장치(100)의 로컬 ID를 나타내고, IDN은, N계층째의 통신 장치(100)의 로컬 ID를 나타낸다. 또한, SK는, 데이터 수신 장치가 갖는 수신처 장치키를 나타낸다. 또한, SK1, SK2, …, SKN은, 비밀키를 나타내고, 그들의 인덱스는, 몇 번째의 계층의 통신 장치(100)에 배포되는 비밀키에 대응하는지를 나타낸다. 도 7에 도시한 바와 같이, 키 생성 장치(203)는, N계층째의 통신 장치(100)의 계층화 ID로부터 추출된 로컬 ID와, 비밀키를 사용하여, 의사 랜덤 함수에 의한 처리를 반복함으로써, 입력된 계층화 ID를 갖는 통신 장치(100)에 배포하는 비밀키를 생성한다.
다음으로, 송신원 장치로부터의 데이터의 전송이 행해졌을 때의 의사 랜덤 함수 처리 제어부(212)의 제어에 대하여 설명한다. 의사 랜덤 함수 처리 제어부(212)는, 송신원 장치로부터의 데이터의 전송이 행해졌을 때, 즉, 검증 장치(204)로서 기능할 때, 계층 분리부(240)에 의해 추출된 로컬 ID를 상위의 계층으로부터 순서대로 의사 랜덤 함수 처리부(211)에 입력하고, 귀납적인 제어를 행한다. 구체적으로는, 의사 랜덤 함수 처리 제어부(212)는, 다음과 같은 제어를 행한다.
의사 랜덤 함수 처리 제어부(212)는, 수신처 장치키와 1계층째의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하여 비밀키를 도출시킨다. 또한, 의사 랜덤 함수 처리 제어부(212)는, 이에 의해 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 로컬 ID의 수)의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 1계층째로부터 N계층째까지의 각 통신 장치(100)의 로컬 ID에 대응하는 비밀키를 생성하도록 제어한다.
즉, 검증 장치(204)로서 기능하는 의사 랜덤 함수 처리 제어부(212)는, 키 생성 장치(203)로서 기능할 때와 마찬가지로, 수신처 장치키와 1계층째의 로컬 ID를 사용하여 1계층째의 로컬 ID에 대응하는 비밀키를 도출시킨 후, k-1계층째의 로컬 ID를 사용하여 도출된 비밀키와 k계층째의 로컬 ID를 사용하여, k계층째의 로컬 ID에 대응하는 비밀키를 도출시키는 처리를 반복하도록 제어한다.
이와 같이, 의사 랜덤 함수 처리 제어부(212)는, 검증 장치(204)로서 기능하는 경우, 통신 장치(100)에 배포 완료된 비밀키를, 수신된 정보로부터 복원한다.
여기서, 본 실시 형태에서는, 상술한 바와 같이, 송신원 장치 및 중계 장치는, 데이터 수신 장치가 배포한 비밀키로부터 파생키를 생성하고 있다. 이로 인해, 검증 장치(204)는, 파생키를 재현할 필요가 있다. 이로 인해, 본 실시 형태에서는, 의사 랜덤 함수 처리 제어부(212)는, 검증 장치(204)로서 기능할 때, 계층 분리부(240)에 의해 추출된 로컬 ID를 상위의 계층으로부터 순서대로 의사 랜덤 함수 처리부(211)에 입력하여, 보다 상세하게는, 다음과 같은 귀납적인 제어를 행한다.
의사 랜덤 함수 처리 제어부(212)는, 수신 장치(201)가 데이터와 계열과 중계 장치가 생성한 MAC를 수신한 경우, 수신처 장치키와 1계층째의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하여 임시(temporary) 비밀키를 도출시킨다. 이 임시 비밀키는, 키 생성 장치(203)에 있어서 생성된 비밀키, 즉 파생키의 기본이 되는 키에 상당한다. 그리고, 의사 랜덤 함수 처리 제어부(212)는, 이 임시 비밀키와 파생키 설정값을 의사 랜덤 함수 처리부(211)에 입력하여 진짜(true) 비밀키를 도출시킨다. 이 진짜 비밀키는 파생키에 상당한다. 즉, 검증 장치(204)에 있어서, 파생키가 재현된다. 또한, 의사 랜덤 함수 처리 제어부(212)는, 도출된 임시 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 로컬 ID의 수)의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(211)에 입력하고, 귀납적으로 임시 비밀키 및 진짜 비밀키를 도출시킨다.
즉, 의사 랜덤 함수 처리 제어부(212)는, 수신처 장치키와 1계층째의 로컬 ID를 사용하여 1계층째의 로컬 ID에 대응하는 비밀키를 도출시킨 후, 이 비밀키와 파생키 설정값을 이용하여 1계층째의 로컬 ID에 대응하는 파생키를 도출시킨다. 그리고, 의사 랜덤 함수 처리 제어부(212)는, k-1계층째의 로컬 ID를 사용하여 도출된 비밀키와 k계층째의 로컬 ID를 사용하여, k계층째의 로컬 ID에 대응하는 비밀키를 도출시킨 후, 이 비밀키와 파생키 설정값을 이용하여 k계층째의 로컬 ID에 대응하는 파생키를 도출시키는 처리를 반복하도록 제어한다.
이에 의해, 의사 랜덤 함수 처리 제어부(212)는, 1계층째로부터 N계층째까지의 각 통신 장치(100)의 로컬 ID에 대응하는 진짜 비밀키(즉, 파생키)를 생성하도록 제어한다.
MAC 생성 함수 처리부(221)는, MAC 생성 함수 처리부(321)와 마찬가지로, 소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성한다. MAC 생성 함수 처리부(221)의 처리는, MAC 생성 함수 처리 제어부(222)에 의해 제어된다. MAC 생성 함수 처리부(221)는, 상술한 MAC 생성 함수 처리부(6)에 상당한다. 또한, MAC 생성 함수 처리 제어부(222)는, 상술한 MAC 생성 함수 처리 제어부(8)에 상당한다.
MAC 생성 함수 처리 제어부(222)는, 수신 장치(201)가 수신한 데이터(메시지)와 N계층째의 통신 장치(100)의 추출된 로컬 ID에 대응하는 비밀키를 MAC 생성 함수 처리부(221)에 입력하여 MAC를 도출시킨다. 또한, MAC 생성 함수 처리 제어부(222)는, 이에 의해 도출된 MAC와 m계층째(m은 N-1이하 1이상의 양의 정수)의 통신 장치(100)의 추출된 로컬 ID에 대응하는 비밀키를 MAC 생성 함수 처리부(221)에 입력하고, 귀납적으로 MAC를 도출시킨다.
즉, MAC 생성 함수 처리 제어부(222)는, 전송된 데이터와, 의사 랜덤 함수 처리부(211)에 의해 생성된 N계층째의 통신 장치(100)(즉, 송신원 장치라 추정되는 통신 장치(100))에 대응하는 비밀키(구체적으로는, 파생키에 상당하는 키인 진짜 비밀키)를 사용하여, N계층째의 통신 장치(100)가 생성한 MAC를 재현한다. 그리고, 그 후, MAC 생성 함수 처리 제어부(222)는, m+1계층째의 통신 장치(100)에 관한 재현한 MAC와 m계층째의 통신 장치(100)에 대응하는 비밀키(구체적으로는, 파생키에 상당하는 키인 진짜 비밀키)를 사용하여, m계층째의 통신 장치(100)가 생성한 MAC를 재현하는 처리를 반복하도록 제어한다.
이에 의해, MAC 생성 함수 처리 제어부(222)는, N계층째로부터 1계층째까지의 각 통신 장치(100)에 대응하는 MAC를 생성하도록 제어한다.
비교부(250)는, 상술한 비교부(9)에 상당하고, 수신 장치(201)가 수신한 MAC와, MAC 생성 함수 처리부(221)에 의해 생성된 1계층째의 통신 장치(100)에 대응하는 MAC를 비교한다. 비교부(250)는, 비교 결과를 출력한다. 올바른 데이터가 올바른 경로를 따라 전송된 경우, 2개의 MAC가 일치한다. 또한, 데이터가 개찬되었거나, 또는 데이터가 올바른 경로를 따라 전송되지 않는 경우, 2개의 MAC는 일치하지 않는다.
도 8은, 검증 장치(204)에 있어서의 상술한 처리의 흐름을 나타내는 모식도이다. 또한, 도 8에 있어서, {ID}는, 전송된 데이터(메시지)와 함께 수신 장치(201)에 있어서 수신된 로컬 ID의 계열이다. 또한, ID1, ID2, …, IDN은, 각각 로컬 ID를 나타내고, 그들의 인덱스는, 몇 번째의 계층의 통신 장치(100)에 대응하는 로컬 ID인지를 나타낸다. SK는, 수신처 장치키를 나타낸다. 또한, SK1, SK2, …, SKN은, 비밀키를 나타내고, 그들의 인덱스는, 몇 번째의 계층의 통신 장치(100)에 대응하는 비밀키인지를 나타낸다. SK1, SK2, …, SKN은, 상술한 임시 비밀키에 상당하고, 파생키 설정값(도 8의 예에서는 「0」)과 함께, 의사 랜덤 함수에 입력된다. 이에 의해, 진짜 비밀키(파생키)가 생성되고, MAC 생성 함수에 제공된다. 도 8에 있어서, M은, 전송된 메시지, 즉 데이터를 나타낸다. S1_1, S1_2, …, S1_N은, MAC 생성 함수 처리부(221)가 출력하는 MAC를 나타내고, 그들의 인덱스는, 몇 번째의 계층의 통신 장치(100)에 대응하는 MAC인지를 나타낸다. 또한, S1은, 전송된 데이터(메시지)와 함께 수신 장치(201)에 있어서 수신된 MAC이며, 1계층째의 통신 장치(100)에 의해 생성된 MAC이다. B는, 비교부(250)에 의한 비교 결과를 나타낸다.
도 8에 도시한 바와 같이, 검증 장치(204)는, 송신원 장치로부터 데이터 수신 장치까지 데이터가 전송될 때 행해지는 인증 생성 처리를 재현하고, MAC를 생성한다. 그리고, 검증 장치(204)는, 생성한 MAC와 수신된 MAC를 비교함으로써, 올바른 데이터가 수신되었는지, 및 올바른 경로를 따라 전송되었는지 여부의 검증을 행한다.
다음으로, 데이터 전송 시스템(10)의 동작에 대하여 설명한다. 먼저, 초기 설정에 대하여 설명한다. 도 9는, 데이터 전송 시스템(10)에 있어서의 초기 설정의 동작 흐름의 일례를 나타내는 흐름도이다. 또한, 이 초기 설정은, 악의가 있는 공격자에 의한 도청이 행해지지 않는 환경에서 행해진다.
우선, 스텝 100(S100)에 있어서, 키 생성 장치(203)가, 송신원 장치 및 중계 장치에 배포하는 비밀키를 생성한다. 키 생성 장치(203)가 비밀키를 생성하는데 있어서, 계층화 ID가 필요해진다. 중계 장치인 통신 장치(100) 및 송신원 장치인 통신 장치(100)에 미리 로컬 ID가 할당되어 있으며, 계층화 ID가 이미 결정되어 있는 경우에는, 각 통신 장치(100)는 상위 노드의 통신 장치(100)를 통해 데이터 수신 장치인 통신 장치(100)에 계층화 ID를 송부한다. 또한, 키 생성 장치(203)는, 비밀키의 생성 시에, 비밀키의 배포처의 통신 장치(100)의 계층화 ID를 취득할 수 있으면 되며, 그 취득 방법은, 상술한 방법으로 한정되지 않고, 임의의 방법이 가능한 것은 물론이다.
또한, 통신 장치(100)에 대해서 로컬 ID가 할당되어 있지 않는 경우, 파생키 설정값을 제외한, 소정의 길이의 값이 로컬 ID로서 당해 통신 장치(100)에 할당된다. 예를 들어, 이미 로컬 ID가 할당되어 있는 중계 장치의 하위에, 당해 중계 장치와 직접 통신하는 하위 노드로서 새롭게 통신 장치(100)가 추가된 경우, 이 중계 장치는, 새롭게 로컬 ID를 발행하여, 당해 하위의 노드에 할당해도 된다. 이때 중계 장치는, 당해 중계 장치와 직접 통신하는 다른 하위 노드에 이미 할당되어 있는 로컬 ID와 중복되지 않도록, 로컬 ID를 발행한다. 이것은, 계층화 ID에 의해 네트워크 중의 통신 장치(100)를 일의적으로 특정할 수 있도록 하기 위해서이다. 중복되지 않는 로컬 ID를 각 통신 장치(100)에 할당하는 방법으로서는, 예를 들어, 1, 2, 3과 같이, 값을 차례로 이용하여 할당을 행해도 되고, 충분히 긴 비트 길이(예를 들어 128비트)로부터 랜덤하게 선택한 값을 이용하여 할당을 행해도 된다. 로컬 ID의 할당은, 데이터 수신 장치가 행해도 되고, 특정한 중계 장치가 모든 하위 노드에 대하여 행해도 된다.
데이터 수신 장치인 통신 장치(100)의 수신 장치(201)가 계층화 ID를 수신하면, 키 생성 장치(203)는, 이 계층화 ID와 수신처 장치키를 사용하여, 이 계층화 ID에 대응하는 비밀키를 생성한다. 키 생성 장치(203)에 입력된 계층화 ID가 {ID1, ID2, ID3, …, IDN}인 것으로 한다. 계층 분리부(240)는, 계층마다의 로컬 ID를 추출한다. 또한, 의사 랜덤 함수 처리 제어부(212)는, 의사 랜덤 함수에 비밀키로서 SK를 입력하고, 1계층째의 로컬 ID인 ID1을 메시지로서 입력하여 SK1을 얻는다. 이어서, 의사 랜덤 함수 처리 제어부(212)는, 의사 랜덤 함수에 비밀키로서 SK1을 입력하고, 2계층째의 로컬 ID인 ID2를 메시지로서 입력하여 SK2를 얻는다. 의사 랜덤 함수 처리 제어부(212)는, 이 처리를 귀납적으로 반복하고, 마지막으로 의사 랜덤 함수에 비밀키로서 SKN-1을 입력하고, N계층째의 로컬 ID인 IDN을 메시지로서 입력하여 SKN을 얻는다. 그리고, 의사 랜덤 함수 처리 제어부(212)는, 이 SKN을 당해 계층화 ID에 대한 비밀키로서 출력한다.
초기 설정에서는, 스텝 100의 후, 스텝 101의 처리가 행해진다. 스텝 101(S101)에서는, 키 생성 장치(203)에 의해 생성된 비밀키가 배포된다. 데이터 수신 장치인 통신 장치(100)의 송신 장치(202)는, 키 생성 장치(203)로부터 SKN을 얻으면, 당해 계층화 ID에 대응하는 통신 장치(100) 앞으로 SKN을 송부한다. 또한, SKN의 전송은, 중계 장치인 통신 장치(100)를 통해 행해져도 된다. 스텝 101의 완료에 의해 초기 설정이 완료된다. 초기 설정 후에는 송신원 장치 및 중계 장치의 모든 통신 장치(100)는, 로컬 ID 및 비밀키를 갖게 된다.
이상, 비밀키의 생성 동작에 대하여 설명하였다. 또한, 상술한 설명에서는, 배포하는 비밀키는, 데이터 수신 장치인 통신 장치(100)에 의해 생성되었지만, 데이터 수신 장치는, 하위 노드에 대한 비밀키의 생성을 중계 장치에 위탁할 수도 있다. 이 경우, 중계 장치인 통신 장치(100)는, 상술한 키 생성 장치(203)와 마찬가지의 구성을 가지면 된다. 도 10은, 중계 장치인 통신 장치(100)가 하위의 노드를 위한 키 생성을 행하는 경우의 중계 장치의 구성의 일례를 나타내는 블록도이다.
도 10에 도시한 구성은, 계층 분리부(430)를 갖는 점에서, 도 5에 도시한 구성과 상이하다. 또한, 계층 분리부(430)는, 식별자 추출부라고도 칭해진다. 도 10에 도시한 중계 장치에서는, 계층 분리부(430), 의사 랜덤 함수 처리부(411) 및 의사 랜덤 함수 처리 제어부(412)에 의해, 키 생성 장치(404)가 구성된다.
계층 분리부(430)는, 대상 장치로부터 해당 중계 장치의 바로 아래의 통신 장치(100)까지의 로컬 ID의 계열로부터, 각 계층의 통신 장치(100)의 로컬 ID를 추출한다. 또한, 이 대상 장치는, 구체적으로는, 당해 중계 장치보다도 하위의 통신 장치(100)이며 비밀키의 배포 대상인 통신 장치(100)를 의미한다. 또한, 중계 장치의 바로 아래의 통신 장치(100)란, 중계 장치와 직접 통신 가능한 하위의 통신 장치(100)를 의미한다. 도 2에 도시한 통신 장치(100_1b)가 통신 장치(100_3a)에 배포하는 비밀키를 생성하는 경우를 예로 들어 설명한다. 통신 장치(100_2b)의 로컬 ID가 ID2, 통신 장치(100_3a)의 로컬 ID가 ID3인 것으로 하면, 통신 장치(100_1b)의 계층 분리부(430)는, 로컬 ID의 계열{ID2, ID3}로부터, 각 계층의 통신 장치(100)의 로컬 ID로서, ID2와 ID3을 추출한다.
또한, 도 10에 도시한 중계 장치에서는, 의사 랜덤 함수 처리 제어부(412)는, 자 장치의 파생키를 생성하기 위한 상술한 제어 외에도, 다음과 같은 제어를 행하고, 하위의 통신 장치(100)에 배포하기 위한 비밀키를 생성한다. 즉, 의사 랜덤 함수 처리 제어부(412)는, 계층 분리부(430)에 의해 추출된 로컬 ID를 상위의 계층으로부터 순서대로 의사 랜덤 함수 처리부(411)에 입력하여, 귀납적인 제어를 행한다. 구체적으로는, 의사 랜덤 함수 처리 제어부(412)는, 다음과 같은 제어를 행한다.
의사 랜덤 함수 처리 제어부(412)는, 당해 중계 장치에 고유의 비밀키와, 당해 중계 장치에서 볼 때 1계층째의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(411)에 입력하여 비밀키를 도출시킨다. 또한, 의사 랜덤 함수 처리 제어부(412)는, 이 도출된 비밀키와 당해 중계 장치에서 볼 때 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 계층 분리부(430)에 의해 추출된 로컬 ID의 수)의 통신 장치(100)의 추출된 로컬 ID를 의사 랜덤 함수 처리부(411)에 입력하여, 귀납적으로 비밀키를 도출시킨다. 또한, 상기의 고유의 비밀키는, 당해 중계 장치의 파생키의 기본인 비밀키이다.
즉, 의사 랜덤 함수 처리 제어부(412)는, 당해 중계 장치에 할당된 비밀키와 바로 아래의 통신 장치(100)(1계층째의 통신 장치(100))의 로컬 ID를 사용하여 1계층째의 로컬 ID에 대응하는 비밀키를 도출시킨 후, k-1계층째의 로컬 ID를 사용하여 도출된 비밀키와 k계층째의 로컬 ID를 사용하여, k계층째의 로컬 ID에 대응하는 비밀키를 도출시키는 처리를 반복하도록 제어한다.
이에 의해, 의사 랜덤 함수 처리 제어부(412)는, 비밀키의 배포 대상인 하위의 통신 장치(100)의 비밀키를 생성하도록 제어한다. 따라서, 이 경우, 하위의 통신 장치(100)는, 의사 랜덤 함수 처리부(411)에 의해 생성된 비밀키에 기초하여 생성된 비밀키(파생키)를 고유의 비밀키로서 이용하여 MAC를 생성하게 된다.
따라서, 중계 장치가 하위의 통신 장치(100)를 위한 비밀키를 생성하는 경우, 데이터 전송 시스템(10)은, 다음과 같이 동작한다. 우선, 중계 장치는 자신의 계층화 ID를 데이터 수신 장치를 향해 송부한다. 그리고, 중계 장치는, 데이터 수신 장치의 키 생성 장치(203)에 의해 생성된, 당해 계층화 ID에 대응하는 비밀키를 수취한다. 중계 장치는 수취한 비밀키를 키 생성 장치(404)에 입력하고, 키 생성 장치(203)와 마찬가지의 동작을 행한다. 중계 장치는, 하위 노드로부터 당해 중계 장치까지의 로컬 ID의 계열을 수취하면, 계층 분리부(430)가 로컬 ID를 추출한다. 그리고, 의사 랜덤 함수 처리 제어부(412)는, 의사 랜덤 함수를 이용하여 귀납적으로 하위의 계층에 대한 비밀키를 생성하도록 제어한다.
또한, 각 통신 장치(100)에 배포되는 비밀키는, 당해 통신 장치(100)의 계층화 ID와 수신처 장치키에 의해 일의로 결정된다. 따라서, 최상위 노드인 데이터 수신 장치에 의한 키 생성과, 중계 장치에 의한 키 생성에서는, 모든 경우에도 동일한 통신 장치(100)에 대해서 동일한 비밀키가 생성된다. 이와 같이, 하위 노드에 대해서는 중계 장치에 의해, 데이터 수신 장치에 의해 생성되는 비밀키와 동일한 비밀키의 생성을 행하는 것이 가능하다. 이에 의해, 자 노드의 통신 장치를 네트워크에 동적으로 추가할 수 있다.
다음으로, 송신원 장치인 통신 장치(100)로부터, 데이터 수신 장치인 통신 장치(100)에 대해서, 전송 대상의 데이터인 메시지 M을 안전하게 송부하기 위한 데이터 전송 시스템(10)의 동작에 대하여 설명한다. 도 11은, 데이터 전송 시스템(10)에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다. 또한, 도 12는, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이며, 도 13은, 도 12에서 도시한 각 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다. 이하, 도 11에 도시한 흐름도에 대하여, 적절히, 도 12, 도 13을 참조하면서 설명한다.
또한, 도 12에서는, 송신원 장치인 통신 장치(100)를 통신 장치 D3으로서 나타내고, 통신 장치 D3의 상위 중계 장치인 통신 장치(100)를 통신 장치 D2로서 나타내고, 통신 장치 D2의 상위 중계 장치이며, 데이터 수신 장치의 바로 아래의 노드인 통신 장치(100)를 통신 장치 D1로서 나타내고 있다. 통신 장치 D1의 로컬 ID를 ID1, 통신 장치 D2의 로컬 ID를 ID2, 통신 장치 D3의 로컬 ID를 ID3으로 한다. 이 경우, 통신 장치 D3의 계층화 ID는 {ID1, ID2, ID3}이다. 또한, 통신 장치 D1은, 데이터 수신 장치인 통신 장치(100)로부터 비밀키 SK1을 배포하고, 비밀키 SK1을 도시하지 않은 기억 장치에 기억하고 있도록 한다. 마찬가지로, 통신 장치 D2는, 배포된 비밀키 SK2를 도시하지 않은 기억 장치에 기억하고 있으며, 통신 장치 D3은, 배포된 비밀키 SK3을 도시하지 않은 기억 장치에 기억하고 있도록 한다. 또한, 통신 장치 D1이 갖는 인증 생성 장치(303)를 인증 생성 장치 D31, 통신 장치 D2가 갖는 인증 생성 장치(403)를 인증 생성 장치 D21, 통신 장치 D1이 갖는 인증 생성 장치(403)를 인증 생성 장치 D11이라 칭하도록 한다. 도 12는, 이상과 같은 부호의 전제하에, 초기 설정 후에 통신 장치 D1, D2, D3이 유지하고 있는 값, 인증 생성 장치의 입출력 및 노드 간의 통신 내용에 대하여 나타내고 있다.
메시지 M이 전송되는 경우, 우선, 스텝 200(S200)에 있어서, 송신원 장치인 통신 장치(100)가, 메시지 M에 대한 MAC를 생성한다. 상세하게는, 우선, 송신원 장치의 인증 생성 장치(303)의 의사 랜덤 함수 처리부(311)는, 배포된 비밀키로부터 파생키를 생성한다. 그리고, 송신원 장치의 인증 생성 장치(303)의 MAC 생성 함수 처리부(321)는, 파생키를 사용하여 메시지 M에 대한 MAC를 생성한다.
도 12, 도 13에 도시한 예에 기초하여 구체적으로 설명하면 스텝 200에 있어서, 다음과 같이 통신 장치 D3은 동작한다. 통신 장치 D3은 인증 생성 장치 D31에 메시지 M과 비밀키 SK3을 입력한다. 인증 생성 장치 D31에 있어서, 우선, 의사 랜덤 함수 처리부(311)는, 비밀키로서 SK3을 입력으로 하고, 메시지로서 0을 입력으로 하고, 파생키 SK31을 생성한다. 이어서, MAC 생성 함수 처리부(321)는, 비밀키로서 파생키 SK31을 입력으로 하고, 메시지로서 M을 입력으로 하고, 계산 결과인 MAC값 S3을 출력한다.
스텝 200의 후, 처리는 스텝 201(S201)로 진행된다.
스텝 201에서는, 상위의 중계 장치에 정보가 전달된다. 구체적으로는, 송신원 장치는 메시지 M과, 인증 생성 장치(303)에 의해 생성된 MAC값과, 송신원 장치의 로컬 ID를 상위의 중계 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D3의 송신 장치(302)는, (M, S3, ID3)을, 통신 장치 D2에 송신한다.
스텝 201의 후, 처리는 스텝 202(S202)로 진행된다.
스텝 202에서는, 중계 장치가, 수신한 MAC에 대한 MAC를 생성한다. 상세하게는, 우선, 중계 장치의 인증 생성 장치(403)의 의사 랜덤 함수 처리부(411)는, 배포된 비밀키로부터 파생키를 생성한다. 그리고, 중계 장치의 인증 생성 장치(403)의 MAC 생성 함수 처리부(421)는, 파생키를 사용하여 수신한 MAC에 대한 MAC를 생성한다.
상술한 예에 기초하여 구체적으로 설명하면 스텝 202에 있어서, 다음과 같이 통신 장치 D2는 동작한다. 통신 장치 D2의 수신 장치(401)는, 통신 장치 D3으로부터 (M, S3, ID3)을 수신하면, 인증 생성 장치 D21에 MAC값 S3과 비밀키 SK2를 입력한다. 인증 생성 장치 D21에 있어서, 우선, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK2를 입력으로 하고, 메시지로서 0을 입력으로 하고, 파생키 SK21을 생성한다. 이어서, MAC 생성 함수 처리부(421)는, 비밀키로서 파생키 SK21을 입력으로 하고, 메시지로서 MAC값 S3을 입력으로 하고, 계산 결과인 MAC값 S2를 출력한다.
스텝 202의 후, 당해 중계 장치의 상위 노드가 데이터 수신 장치가 아닌 경우(스텝 203(S203)에서 "아니오"), 처리는 스텝 201로 되돌아가서, 다른 중계 장치로의 정보의 전송이 행해진다. 구체적으로는, 중계 장치는, 메시지 M과, 인증 생성 장치(403)에 의해 생성된 MAC값과, 수신된 로컬 ID(로컬 ID 군) 및 당해 중계 장치의 로컬 ID를 상위의 중계 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D2의 송신 장치(402)는, (M, S2, {ID2, ID3})을, 통신 장치 D1에 송신한다.
통신 장치 D1은, 통신 장치 D2와 마찬가지의 동작을 행한다. 즉, 통신 장치 D1의 수신 장치(401)는, 통신 장치 D2로부터 (M, S2, {ID2, ID3})을 수신하면, 인증 생성 장치 D11에 MAC값 S2와 비밀키 SK1을 입력한다. 인증 생성 장치 D11에 있어서, 우선, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK1을 입력으로 하고, 메시지로서 0을 입력으로 하고, 파생키 SK11을 생성한다. 이어서, MAC 생성 함수 처리부(421)는, 비밀키로서 파생키 SK11을 입력으로 하고, 메시지로서 MAC값 S2를 입력으로 하고, 계산 결과인 MAC값 S1을 출력한다.
이에 반하여, 당해 중계 장치의 상위 노드가 데이터 수신 장치인 경우(스텝 203에서 "예"), 처리는 스텝 204로 이행된다.
스텝 204(S204)에서는, 중계 장치는 데이터 수신 장치에 정보를 전달한다. 구체적으로는, 중계 장치는, 메시지 M과, 인증 생성 장치(403)에 의해 생성된 MAC값과, 수신된 로컬 ID(로컬 ID 군) 및 당해 중계 장치의 로컬 ID를 데이터 수신 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D1의 송신 장치(402)는, (M, S1, {ID1, ID2, ID3})을, 데이터 수신 장치인 통신 장치(100)에 송신한다.
다음으로, 데이터 수신 장치인 통신 장치(100)에 있어서의 검증 동작에 대하여 설명한다. 도 14는, 데이터 수신 장치에 있어서의 검증 동작의 흐름의 일례를 나타내는 흐름도이다. 데이터 수신 장치는, 수신 장치(201)에 의해 중계 장치로부터 메시지 M을 포함하는 정보를 수신하면, 이하에 기재하는 바와 같이 검증 장치(204)에 의한 검증 처리를 행한다.
스텝 300(S300)에 있어서, 계층 분리부(240)는, 메시지 M의 전송 경로상의 각 계층의 통신 장치(100)의 로컬 ID를, 수신 장치(201)가 수신한 로컬 ID의 계열로부터 추출한다. 또한, 상기 예에서는, 수신 장치(201)는, {ID1, ID2, ID3}을 수신하고 있으며, 이것은, 송신원 장치의 계층화 ID에 대응하고 있다. 이 스텝에서는, 로컬 ID의 계열은 N계층(N은 임의의 정수)의 분리가 행해지고, N개의 로컬 ID가 추출된다. 상기 예에서는, 계층 분리부(240)에 의해, 로컬 ID의 계열은 ID1, ID2, ID3으로 3계층으로 분리되고, 3개의 로컬 ID가 추출된다.
다음으로, 스텝 301(S301)에 있어서, 의사 랜덤 함수 처리부(211) 및 의사 랜덤 함수 처리 제어부(212)는, 추출된 로컬 ID와, 비밀키 기억부(230)에 기억된 수신처 장치키 SK를 사용하여, 비밀키를 생성한다. 구체적으로는, 의사 랜덤 함수 처리부(211) 및 의사 랜덤 함수 처리 제어부(212)는, SK0'=SK로 하고, 0≤i<N에 대해서 이하가 실행한다. 의사 랜덤 함수 처리 제어부(212)는, 의사 랜덤 함수 처리부(211)에, SKi'를 비밀키로서 입력하고, i+1계층째의 로컬 ID인 IDi+1을 메시지로서 입력하고, 의사 랜덤 함수 처리부(211)로부터 SKi+1'를 얻는다. 이때 생성되는 SK1'로부터 SKN'까지의 값은, 수신한 각 로컬 ID가 올바른 전송 경로(즉, 데이터 전송 시스템(10)에 있어서의 네트워크에 의해 규정되는 전송 경로)상의 통신 장치(100)의 로컬 ID와 일치하였으면, 올바른 전송 경로상의 통신 장치(100)가 갖는 비밀키(배포된 비밀키)와 일치한다.
다음으로, 스텝 302(S302)에 있어서, 의사 랜덤 함수 처리부(211) 및 의사 랜덤 함수 처리 제어부(212)는, 스텝 301에서 생성된 비밀키와, 파생키 설정값을 이용하여 파생키를 생성한다. 구체적으로는, 의사 랜덤 함수 처리부(211) 및 의사 랜덤 함수 처리 제어부(212)는, 1≤i≤N에 대해서 이하를 실행한다. 의사 랜덤 함수 처리 제어부(212)는, 의사 랜덤 함수 처리부(211)에 SKi'를 비밀키로서 입력하고, 0을 메시지로서 입력하고, 파생키 SKi_1'를 얻는다. 이때 생성되는 SK1_1'로부터 SKN_1'까지의 값은, 수신한 각 로컬 ID가 올바른 전송 경로상의 통신 장치(100)의 로컬 ID와 일치하였으면, 올바른 전송 경로상의 통신 장치(100)가 MAC를 생성하기 위한 파생키와 일치한다.
다음으로, 스텝 303(S303)에 있어서, MAC 생성 함수 처리부(221) 및 MAC 생성 함수 처리 제어부(222)는, 수신된 메시지 M과 스텝 302에서 생성된 파생키를 사용하여 MAC를 생성한다. 구체적으로는, MAC 생성 함수 처리부(221) 및 MAC 생성 함수 처리 제어부(222)는, S1_N+1=M으로 하고, N≥i≥1에 대해서 이하를 실행한다. MAC 생성 함수 처리 제어부(222)는, MAC 생성 함수 처리부(221)에 SKi_1'를 비밀키로서 입력하고, S1_i+1을 메시지로서 입력하고, S1_i를 얻는다. 이때 생성되는 S1_N으로부터 S1_1까지의 각각의 값은, 메시지 M이 정확하게 송부되어 있으면, 데이터 수신 장치로부터 송신원 장치에 이르기까지의 각 계층의 통신 장치(100)가 생성한 MAC값과 일치한다.
다음으로, 스텝 304(S304)에 있어서, 비교부(250)는, 수신된 MAC와 스텝 303에서 생성된 1계층째의 통신 장치(100)에 대응하는 MAC를 비교한다. 구체적으로는, 비교부(250)는, 스텝 303에서 생성된 S1_1과, 수신한 S1을 비교하고, 양자의 값이 일치하였는지 여부를 판정한다. 비교부(250)는, 양자가 일치하였으면 출력값 B=1을 출력하고, 그렇지 않으면 출력값 B=0을 출력한다. 여기서, B=1이면 메시지 M이 송신원 장치로부터 개찬되지 않고 송부되며, 또한 올바른 전송 경로를 따라 전송되었음을 의미한다. 만약 B=0이면 메시지 M은 개찬되었거나, 또는 올바른 전송 경로상의 통신 장치 이외의 통신 장치를 경유하여 전송되었음을 의미한다. 또한, 비교부(250)의 출력값에 의해, 전송의 안전성을 이와 같이 판정하는 판정부(도시생략)를 데이터 수신 장치가 가져도 된다.
비교부(250)의 비교 결과에 의한 검증에 대하여 보충 설명한다. 송신원 장치 또는 중계 장치가 다른 통신 장치에 대하여 데이터의 송부를 행할 때 메시지 M이 개찬되어 있는 경우, 스텝 303에 있어서 MAC 생성 함수 처리부(6)에 적절한 입력값이 입력되지 않게 된다. 이로 인해, MAC 생성 함수가 안전한 한, 검증 장치(204)에 의한 검증에는 좋은 결과가 얻어지지 않는다.
또한, 전송 중에 생성되는 MAC값 S1, S2, …, SN 중 어느 하나가 개찬되어 있는 경우, 스텝 303에 있어서 MAC 생성 함수 처리부(6)에 적절한 MAC가 입력되지 않게 되기 때문에, MAC 생성 함수가 안전한 한, 수신한 S1과 생성된 S1_1은 일치하지 않기 때문에, 검증 장치(204)에 의한 검증에는 좋은 결과가 얻어지지 않는다.
또한, 의사 랜덤 함수가 안전한 한, 의사 랜덤 함수에 의해 생성되는 비밀키가 다른 비밀키 또는 파생키와 충돌할 확률(중복될 확률)은, 키의 비트 수에 의존하여 지수적으로 작아진다. 이로 인해, 데이터의 전송 경로를 나타내는 정보인 로컬 ID의 계열이 개찬된 경우, 스텝 301에 있어서, 적절한 비밀키가 생성되지 않는다. 따라서, MAC 생성 함수 처리부(6)에 적절한 비밀키가 입력되지 않게 되기 때문에, 검증 장치(204)에 의한 검증에는 좋은 결과가 얻어지지 않는다.
또한, k 비트 안전성을 필요로 하고 2^ {-k} 이상의 확률로 의사 랜덤 함수의 안전성에 영향을 미치지 않음을 필요로 하는 경우, 의사 랜덤 함수에 입력되는 비밀키 및 의사 랜덤 함수로부터 출력되는 비밀키 혹은 파생키는, k 비트 이상이다.
또한, k 비트 안전성을 필요로 하고 2^ {-k} 이상의 확률로 MAC 생성 함수의 안전성에 영향을 미치지 않음을 필요로 하는 경우, MAC 생성 함수의 출력은, 2×k 비트 이상이다.
이상, 실시 형태 1에 대하여 설명하였다. 상술한 바와 같이, 실시 형태 1에 따른 데이터 전송 시스템(10)에 의하면, 전송된 데이터가 개찬되지 않았는지, 및 전송된 데이터가 올바른 경로를 따라 전송되는지 여부를 검증할 수 있다.
또한, 상술한 바와 같이, 키 생성 장치(203)에 의해 수신처 장치키에 기초하여 각 통신 장치(100)를 위한 비밀키가 생성된다. 이로 인해, 데이터 수신 장치가 관리하는 비밀키는, 네트워크상의 노드 수에 의존하지 않고, 수신처 장치키만이며, 검증 장치로서 기능하는 장치에 있어서의 키의 관리가 용이하다. 또한, 중계 장치 및 송신원 장치도, 배포된 비밀키만을 관리하면 되어, 키의 관리가 용이하다.
또한, 특히, 실시 형태 1에서는, 송신원 장치 및 중계 장치는, 배포된 비밀키를 그대로 사용하여 MAC를 계산하는 것이 아니라, 파생키를 생성한 다음에, 이 파생키를 사용하여 MAC를 계산한다. 따라서, 비밀키를 도출하기 위한 암호 알고리즘(의사 랜덤 함수)과, MAC를 산출하기 위한 암호 알고리즘(MAC 생성 함수)으로, 서로 다른 비밀키를 사용하는 것이 보장되어, 보다 안전한 시스템을 실현할 수 있다.
또한, 실시 형태 1에서는, 파생키를 사용한 MAC 생성을 행하는 구성을 나타내었지만, 파생키를 생성하지 않아도 된다. 즉, 배포된 비밀키를 사용하여 MAC 생성이 행해져도 된다. 즉, 송신원 장치 및 중계 장치에 고유의 비밀키는, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 도출되는 비밀키이면 된다. 환언하면, 통신 장치에 고유의 비밀키는, 배포된 비밀키를 의미해도 되고, 배포된 비밀키로부터 생성된 파생키를 의미해도 된다. 또한, 본 실시 형태로 한정되지 않고, 후술하는 다른 실시 형태에서도, 파생키를 사용한 MAC 생성이 아니라, 배포된 비밀키를 사용한 MAC 생성이 행해져도 된다. 또한, 파생키를 사용하지 않는 경우, 송신원 장치, 중계 장치 및 데이터 수신 장치에 있어서, 파생키의 생성 동작이 불필요하게 된다. 또한, 파생키를 사용하지 않는 경우이며, 중계 장치가 상술한 키 생성 장치(404)를 갖는 경우, 의사 랜덤 함수 처리 제어부(412)는, 하위의 통신 장치용 비밀키를 생성하기 위한 제어를 행하고, 파생키를 생성하기 위한 제어는 행하지 않는다. 파생키를 사용하지 않는 경우이며, 중계 장치가 키 생성 장치(404)를 갖는 경우, 당해 중계 장치의 하위 통신 장치에 고유의 비밀키는, 의사 랜덤 함수 처리부(411)에 의해 생성된 비밀키로 된다.
또한, 데이터 수신 장치가 수신하는 검증용 MAC값(S1)의 비트 길이는, 송신원 장치까지의 계층의 깊이에 의존하지 않는다. 그리고, S1이 있으면 메시지 M에 대한 검증 및 전송 경로를 정확하게 통하고 있다는 검증의 양쪽을 동시에 실행 가능하다. 중계 장치에 의해 행해지는 MAC 생성 함수에 의한 계산은, 메시지 M의 길이에 의존하지 않는 고정 길이의 길이(즉, 하위의 노드가 생성한 MAC값의 길이)에 의해 정해지기 때문에, 계산 시간이 일정하다. 따라서, 여러 길이의 메시지를 송신원 장치가 출력하는 경우라도, 중계 장치에 가해지는 부하는 일정하다.
최근 들어, 차량 탑재 마이크로컴퓨터의 분야를 포함하는 다양한 기술 분야에 있어서, IoT 기기로부터의 센서 데이터의 전송 시, 센서 데이터인 메시지가 개찬되지 않았음을 보증하는 기술은 매우 관심이 높다. 그리고, 올바른 경로에 의해 데이터가 전송되었음을 보장하는 것도 중요하다. 실시 형태 1에 따른 데이터 전송 시스템(10)에서는, 효율적인 키 관리를 실현하면서, 그러한 요구에 부응할 수 있다. 또한, 중계 장치에 있어서, 메시지 M에 대한 MAC값이 아니라, 하위 노드로부터 수신한 MAC값에 대한 MAC값을 산출하고 있기 때문에, MAC값에 대한 계산량 및 통신량을 억제할 수 있다.
<실시 형태 2>
다음으로, 실시 형태 2에 대하여 설명한다. 실시 형태 1에서는, 데이터 수신 장치만이 검증을 실행하였다. 이에 반하여, 실시 형태 2에서는, 추가로, 중계 장치가 검증을 실행한다. 이에 의해, 실시 형태 2에서는, 효율적으로 MAC를 체크한다. 이하, 실시 형태 1과 상이한 점을 설명한다. 본 실시 형태에서는, 송신원 장치 및 중계 장치의 동작이, 실시 형태 1과 상이하다.
본 실시 형태에서는, 송신원 장치인 통신 장치(100)의 MAC 생성 함수 처리 제어부(322)는, 실시 형태 1에서 설명한 제어 외에도, 추가로 다음과 같은 제어를 행한다. MAC 생성 함수 처리 제어부(322)는, MAC 생성 함수 처리부(321)에 의해 생성된 데이터에 대한 MAC(즉, 송신 대상의 데이터와 비밀키를 MAC 생성 함수 처리부(321)에 입력하여 얻어진 MAC)와, 송신원 장치에 고유의 비밀키를 MAC 생성 함수 처리부(321)에 입력하고, MAC 생성 함수 처리부(321)에 의해 생성된 MAC에 대한 MAC를 생성하도록 제어한다. MAC 생성 함수 처리부(321)가 생성한 2개의 MAC 중, 후자의 MAC를 제1 MAC, 전자의 MAC를 제2 MAC라 칭한다.
그리고, 본 실시 형태의 송신원 장치의 송신 장치(302)는, 송신 대상의 데이터와, 이 데이터에 기초하여 MAC 생성 함수 처리부(321)가 생성한 2개의 MAC와, 당해 송신원 장치의 로컬 ID를 중계 장치에 송신한다.
다음으로, 실시 형태 2에 따른 중계 장치에 대하여 설명한다. 도 15는, 실시 형태 2에 따른 중계 장치의 구성의 일례를 나타내는 블록도이다. 중계 장치로서의 통신 장치(100)는, 인증 생성 장치(403)가 인증 생성 장치(405)로 치환된 점에서, 도 5에 도시한 구성과 상이하다. 인증 생성 장치(405)는, 의사 랜덤 함수 처리부(411)와, 의사 랜덤 함수 처리 제어부(412)와, MAC 생성 함수 처리부(421)와, MAC 생성 함수 처리 제어부(422) 외에도, 추가로 비교부(440)를 갖는다.
본 실시 형태에서는, 중계 장치인 통신 장치(100)의 의사 랜덤 함수 처리 제어부(412)는, 실시 형태 1에서 설명한 제어 외에도, 추가로 다음과 같은 제어를 행한다. 의사 랜덤 함수 처리 제어부(412)는, 당해 중계 장치에 고유의 비밀키와, 수신 장치(401)가 수신한 로컬 ID 중 당해 중계 장치에 대해서 송신을 행한 통신 장치(100)(즉, 당해 중계 장치의 바로 아래의 노드인 통신 장치(100))의 로컬 ID를 의사 랜덤 함수 처리부(411)에 입력하여, 당해 중계 장치에 대해서 송신을 행한 통신 장치(100)에 고유의 비밀키를 생성하도록 제어한다.
또한, 중계 장치의 비교부(440)는, 수신 장치(401)가 수신한 2개의 MAC 중 제1 MAC와, MAC 생성 함수 처리부(421)에 의해 생성된 MAC를 비교한다. 또한, 하위 노드가 송신원 장치인 경우, 하위 노드는, 송신 대상의 데이터와 함께, 2개의 MAC를 송신한다. 또한, 하위 노드가 중계 장치인 경우에도, 하위 노드인 중계 장치는, 후술하는 바와 같이, 송신 대상의 데이터와 함께, 2개의 MAC를 송신한다. 이로 인해, 중계 장치의 수신 장치(401)는, 송신 대상의 데이터와 함께, 2개의 MAC를 수신하게 된다.
본 실시 형태에서는, 중계 장치인 통신 장치(100)의 MAC 생성 함수 처리 제어부(422)는, 수신 장치(401)가 수신한 2개의 MAC 중 제2 MAC와 당해 중계 장치에 대해서 송신을 행한 통신 장치(100)에 고유의 비밀키를 MAC 생성 함수 처리부(421)에 입력하여 이 제2 MAC에 대한 MAC를 생성하도록 제어한다. 이때 비교부(440)는, 상기 제1 MAC와, 상기 제2 MAC에 대한 MAC를 비교한다. 비교 결과가 일치한 경우에는 MAC 생성 함수 처리 제어부(422)는 이하를 실시하고, 비교 결과가 일치하지 않은 경우에는 이하의 처리를 중지한다. 중계 장치인 통신 장치(100)의 MAC 생성 함수 처리 제어부(422)는, 상기 제1 MAC와 당해 중계 장치에 고유의 비밀키를 MAC 생성 함수 처리부(421)에 입력하여, 당해 제1 MAC에 대한 MAC를 생성하도록 제어한다.
또한, 본 실시 형태에서는, 송신 장치(402)는, 송신 대상의 데이터와, 상기 제1 MAC와, 상기 제1 MAC에 대한 MAC와, 당해 중계 장치의 로컬 ID 및 수신 장치(401)가 수신한 로컬 ID를 상위의 통신 장치(100)(즉, 다른 중계 장치 또는 데이터 수신 장치)에 송신한다.
다음으로, 본 실시 형태에 있어서의 전송 동작에 대하여 설명한다. 도 16은, 실시 형태 2에 따른 데이터 전송 시스템에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다. 또한, 도 17은, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이며, 도 18a 내지 도 18c는, 도 17에서 도시한 각 통신 장치에 있어서의 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다. 도 18a는, 인증 생성 장치 D31을 나타내고, 도 18b는, 인증 생성 장치 D21을 나타내고, 도 18c는, 인증 생성 장치 D11을 나타낸다. 이하, 도 16에 도시한 흐름도에 대하여, 적절히, 도 17, 도 18을 참조하면서 설명한다. 또한, 도 17에서는, 도 12에 도시한 예와 마찬가지의 부호를 이용하여, 구성(통신 장치, 인증 생성 장치) 및 정보(로컬 ID, 비밀키, 메시지, MAC)를 나타내고 있다. 도 17은, 그러한 부호의 전제하에, 초기 설정 후에 통신 장치 D1, D2, D3이 유지하고 있는 값, 인증 생성 장치의 입출력 및 노드 간의 통신 내용에 대하여 나타내고 있다. 또한, 본 실시 형태에 있어서의 초기 설정은, 실시 형태 1과 마찬가지이다.
메시지 M이 전송되는 경우, 우선, 스텝 220(S220)에 있어서, 도 11의 스텝 200과 마찬가지로, 송신원 장치인 통신 장치(100)가, 메시지 M에 대한 MAC를 생성한다. 상세하게는, 우선, 송신원 장치의 인증 생성 장치(303)의 의사 랜덤 함수 처리부(311)는, 배포된 비밀키로부터 파생키를 생성한다. 그리고, 송신원 장치의 인증 생성 장치(303)의 MAC 생성 함수 처리부(321)는, 파생키를 사용하여, 메시지 M에 대한 MAC를 생성한다.
도 17, 도 18에 도시한 예에 기초하여 구체적으로 설명하면 스텝 200에 있어서, 통신 장치 D3의 인증 생성 장치 D31에서는, 의사 랜덤 함수 처리부(311)는, 비밀키 SK3과, 파생키 설정값(구체적으로는, 0)을 사용하여 파생키 SK31을 생성한다. 이어서, MAC 생성 함수 처리부(321)는, 파생키 SK31과 메시지 M을 사용하여, MAC값 S4를 출력한다.
스텝 220의 후, 처리는 스텝 221(S221)로 진행된다. 스텝 221에 있어서, 송신원 장치인 통신 장치(100)는, 스텝 220에서 생성된 MAC에 대한 MAC를 생성한다. 도 17, 도 18에 도시한 예에 기초하여 구체적으로 설명하면 스텝 221에 있어서, MAC 생성 함수 처리부(321)는, 비밀키로서 파생키 SK31을 입력으로 하고, 메시지로서 MAC값 S4를 입력으로 하고, 계산 결과인 MAC값 S3을 출력한다.
스텝 221의 후, 처리는 스텝 222(S222)로 진행된다. 스텝 222에서는, 상위의 중계 장치에 정보가 전달된다. 구체적으로는, 송신원 장치는, 메시지 M과, 메시지 M에 기초하여 인증 생성 장치(303)에 의해 생성된 2개의 MAC값과, 송신원 장치의 로컬 ID를 상위의 중계 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D3의 송신 장치(302)는, (M, S4, S3, ID3)을, 통신 장치 D2에 송신한다.
스텝 222의 후, 처리는 스텝 223(S223)으로 진행된다. 스텝 223에서는, 중계 장치가, 수신된 2개의 MAC 중 한쪽의 MAC에 대한 MAC를 생성한다. 상세하게는, 먼저, 중계 장치의 인증 생성 장치(403)의 의사 랜덤 함수 처리부(411)는, 자 장치에 배포된 비밀키로부터, 메시지 M을 송신해 온 하위 노드의 비밀키를 생성한다. 또한, 의사 랜덤 함수 처리부(411)는, 생성한 하위 노드의 비밀키로부터, 이 하위 노드의 파생키를 생성한다. 그리고, 중계 장치의 인증 생성 장치(403)의 MAC 생성 함수 처리부(421)는, 이 하위 노드의 파생키를 사용하여, 수신된 MAC 중 한쪽의 MAC에 대한 MAC를 생성한다.
상술한 예에 기초하여 구체적으로 설명하면 스텝 223에 있어서, 다음과 같이 통신 장치 D2는 동작한다. 통신 장치 D2의 수신 장치(401)는, 통신 장치 D3으로부터 (M, S4, S3, ID3)을 수신하면, 인증 생성 장치 D21에 MAC값 S4, S3과 비밀키 SK2와, ID3을 입력한다. 인증 생성 장치 D21에 있어서, 우선, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK2를 입력으로 하고, 메시지로서 ID3을 입력으로 하고, 계산 결과 SK32를 출력한다. 이 SK32는, 하위의 노드에 배포된 비밀키에 상당한다. 이어서, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK32를 입력으로 하고, 메시지로서 0을 입력으로 하고, 계산 결과 SK33을 출력한다. 이 SK33은, 하위의 노드 파생키에 상당한다. 이어서, MAC 생성 함수 처리부(421)는, 비밀키로서 파생키 SK33을 입력으로 하고, 메시지로서 MAC값 S4를 입력으로 하고, 계산 결과인 MAC값 S31을 출력한다. 만약 오류가 없으면, 비밀키 SK32는 통신 장치 D3의 비밀키 SK3과 일치하고, 파생키 SK33은 통신 장치 D3이 산출한 파생키 SK31과 일치하고, MAC값 S31은 통신 장치 D3이 산출한 MAC값 S3과 일치한다.
스텝 223의 후, 처리는 스텝 224(S224)로 진행된다. 스텝 224에서는, 중계 장치의 비교부(440)가, 스텝 223에서 생성한 MAC와, 수신한 2개의 MAC 중 다른 쪽의 MAC를 비교한다. 상술한 예에 기초하여 구체적으로 설명하면 비교부(440)는, 스텝 223에서 생성한 MAC값 S31과, 수신한 MAC값 S3을 비교한다. MAC값이 일치하는 경우(스텝 225(S225)에서 "예"), 이하의 스텝 226 이후의 처리가 행해지지만, MAC값이 일치하지 않는 경우(스텝 225(S225)에서 "예"), 중계 장치는 처리를 종료한다.
스텝 226에서는, 중계 장치가, 수신한 2개의 MAC 중 다른 쪽의 MAC에 대한 MAC를 생성한다. 상세하게는, 우선 중계 장치의 인증 생성 장치(403)의 의사 랜덤 함수 처리부(411)는, 배포된 비밀키로부터 파생키를 생성한다. 그리고, 중계 장치의 인증 생성 장치(403)의 MAC 생성 함수 처리부(421)는, 파생키를 사용하여, 수신한 MAC에 대한 MAC를 생성한다.
상술한 예에 기초하여 구체적으로 설명하면 스텝 226에 있어서, 다음과 같이 통신 장치 D2는 동작한다. 인증 생성 장치 D21에 있어서, 우선, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK2를 입력으로 하고, 메시지로서 0을 입력으로 하고, 파생키 SK21을 생성한다. 이어서, MAC 생성 함수 처리부(421)는, 비밀키로서 파생키 SK21을 입력으로 하고, 메시지로서 MAC값 S3을 입력으로 하고, 계산 결과인 MAC값 S2를 출력한다.
스텝 226의 후, 당해 중계 장치의 상위 노드가 데이터 수신 장치가 아닌 경우(스텝 227(S227)에서 "아니오"), 처리는, 스텝 222로 되돌아가서, 다른 중계 장치로의 정보의 전송이 행해진다. 구체적으로는, 중계 장치는, 메시지 M과, 인증 생성 장치(403)에 의해 생성된 2개의 MAC값과, 수신된 로컬 ID 및 당해 중계 장치의 로컬 ID를 상위의 중계 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D2의 송신 장치(402)는, (M, S3, S2, {ID2, ID3})을, 통신 장치 D1에 송신한다.
통신 장치 D1은, 통신 장치 D2와 마찬가지의 동작을 행한다. 즉, 통신 장치 D1의 수신 장치(401)가 통신 장치 D2로부터 (M, S3, S2, {ID2, ID3})을 수신하면, 인증 생성 장치 D11에 MAC값 S3, S2와 비밀키 SK1과, ID2를 입력한다. 인증 생성 장치 D11에 있어서, 우선, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK1을 입력으로 하고, 메시지로서 ID2를 입력으로 하고, 계산 결과 SK22를 출력한다. 이어서, 의사 랜덤 함수 처리부(411)는, 비밀키로서 SK22를 입력으로 하고, 메시지로서 0을 입력으로 하고, 계산 결과 SK23을 출력한다. 이어서, MAC 생성 함수 처리부(421)는, 비밀키로서 파생키 SK23을 입력으로 하고, 메시지로서 MAC값 S3을 입력으로 하고, 계산 결과인 MAC값 S21을 출력한다. 그리고, 비교부(440)는, MAC값 S21과, 수신한 MAC값 S2를 비교한다. 양자가 일치하고 있는 경우, 인증 생성 장치 D11은, 비밀키 SK1을 사용하여 파생키 SK11을 산출 후, MAC값 S2의 MAC인 MAC값 S1을 생성한다. 만약 오류가 없으면, 비밀키 SK22는 통신 장치 D3의 비밀키 SK2와 일치하고, 파생키 SK23은 통신 장치 D3이 산출된 파생키 SK21과 일치하고, MAC값 S21은 통신 장치 D3이 산출한 MAC값 S2와 일치한다.
중계 장치의 상위 노드가 데이터 수신 장치인 경우(스텝 227에서 "예"), 처리는 스텝 228로 이행된다. 스텝 228(S228)에서는, 중계 장치는, 데이터 수신 장치에 정보를 전달한다. 구체적으로는, 중계 장치는, 메시지 M과, 인증 생성 장치(403)에 의해 생성된 2개의 MAC값과, 수신된 로컬 ID 및 당해 중계 장치의 로컬 ID를 데이터 수신 장치에 송신한다. 상기 예에 따라 구체적으로 설명하면 통신 장치 D1의 송신 장치(402)는, (M, S2, S1, {ID1, ID2, ID3})을, 데이터 수신 장치인 통신 장치(100)에 송신한다. 또한, 통신 장치 D1은, S2를 송신하지 않아도 된다. 이상, 실시 형태 2에 있어서의 전송 동작에 대하여 설명하였다. 또한, 데이터 수신 장치에 있어서의 검증 동작은, 실시 형태 1과 마찬가지이다. 이로 인해, 상술한 예에 기초하여 설명하면 데이터 수신 장치는, 통신 장치 D1로부터 수신한(M, S1, {ID1, ID2, ID3})을 사용하여, 도 14에 도시한 흐름에 따라서 검증 처리를 행한다.
이상, 실시 형태 2에 대하여 설명하였다. 실시 형태 2에서는, 중계 장치가, 하위의 노드로부터 보내져 온 MAC값의 검증을 행할 수 있는 구성으로 되어 있다. 그리고, 중계 장치의 MAC 생성 함수 처리 제어부(422)는, 상술한 바와 같이, 비교부(440)에 의해, 제1 MAC와 제2 MAC에 대한 MAC가 일치하였다고 판정된 경우, 제1 MAC와 당해 중계 장치에 고유의 비밀키를 MAC 생성 함수 처리부(421)에 입력하고, 제1 MAC에 대한 MAC를 생성하도록 제어한다. 바꾸어 말하면, 중계 장치의 MAC 생성 함수 처리 제어부(422)는, 비교부(440)에 의해 MAC가 일치하지 않았다고 판정된 경우, 제1 MAC에 대한 MAC를 생성하는 처리를 행하지 않는다. 이로 인해, 데이터 전송 시스템에 있어서의 처리 부하를 억제할 수 있다.
또한, 중계 장치의 송신 장치(402)는, 비교부(440)에 의해, 제1 MAC와 제2 MAC에 대한 MAC가 일치하였다고 판정된 경우, 송신 대상의 데이터와, 제1 MAC와, 제1 MAC에 대한 MAC와, 당해 중계 장치의 로컬 ID 및 수신 장치(401)가 수신한 로컬 ID를 상위의 통신 장치(100)에 송신한다. 바꾸어 말하면, 중계 장치의 MAC 생성 함수 처리 제어부(422)는, 비교부(440)에 의해 MAC가 일치하지 않았다고 판정된 경우, 상위의 노드로의 전송을 행하지 않는다. 이 때문에 데이터 전송 시스템에 있어서의 통신량을 억제할 수 있다. 또한, 상기 실시 형태에서는, 비교부(440)에 의해 MAC가 일치하지 않았다고 판정된 경우, MAC의 생성 및 상위 노드에의 송신의 양쪽이 억제되었지만, 상위 노드에의 송신만이 억제되어도 된다.
또한, 송신원 장치에 있어서 MAC 생성을 2회 행하여, 2개의 MAC를 생성하고 있다. 이로 인해, 중계 장치에서는, 인증 생성 장치(405)에 송신 대상의 데이터인 메시지 M을 입력하지 않고, 검증을 행할 수 있다. 따라서, 중계 장치의 인증 생성 장치(405)에 의한 계산 시간은 메시지 M의 길이에 의존하지 않는다. 이로 인해, 인증 생성 장치(405)의 계산 시간을 미리 추정할 수 있기 때문에, 하위 노드로부터 보내지는 데이터의 송신 간격이 정해져 있으면, 시스템 지연을 발생시키지 않고 데이터 송수신을 행하는 것이 가능한 하위 노드의 최대 접속 수를 미리 추정할 수 있다.
또한, 본 실시 형태에 있어서도, 중계 장치에 의한 비밀키의 생성이 행해져도 된다. 즉, 본 실시 형태에 있어서, 중계 장치는 키 생성 장치(404)를 가져도 된다. 또한, 본 실시 형태에 있어서도, 파생키가 사용되지 않아도 된다. 즉, 배포된 비밀키를 사용하여 MAC 생성이 행해져도 된다. 또한, 그러한 구성은, 상술한 데이터 전송 시스템에 있어서, 파생키의 생성에 관한 처리를 생략함으로써 실현할 수 있다.
<실시 형태 3>
다음으로, 실시 형태 3에 대하여 설명한다. 실시 형태 1에서는, 송신 대상의 데이터는 평문인 채로 전송되었다. 이에 반하여, 실시 형태 3에 따른 데이터 전송 시스템에서는, 송신 대상의 데이터는 암호화되어 전송된다. 이에 의해, 실시 형태 3에서는, 보다 안전하게 데이터의 전송을 행할 수 있다. 이하, 실시 형태 1과 상이한 점을 설명한다.
도 19는, 실시 형태 3에 따른 송신원 장치의 구성의 일례를 나타내는 블록도이다. 송신원 장치로서의 통신 장치(100)는, 인증 생성 장치(303)가 암호 장치(304)로 치환된 점에서, 도 4에 도시한 구성과 상이하다. 암호 장치(304)는, MAC 생성 함수 처리부(321) 및 MAC 생성 함수 처리 제어부(322) 대신에 인증이 부여된 암호 암호화 함수 처리부(331) 및 인증이 부여된 암호 암호화 함수 처리 제어부(332)를 갖는 점에서, 인증 생성 장치(303)와 상이하다. 또한, 암호 장치(304)는, 이하에 설명하는 바와 같이, 암호문 및 MAC를 생성한다. 이로 인해, 암호 장치(304)는, 인증 생성 장치라 칭해져도 된다.
인증이 부여된 암호 암호화 함수 처리부(331)는, 소정의 인증이 부여된 암호의 암호화 함수에 의한 연산을 행함으로써, MAC의 생성 및 암호화 처리를 행한다. 인증이 부여된 암호 암호화 함수 처리 제어부(332)는, 송신 대상의 데이터와 송신원 장치에 고유의 비밀키를 인증이 부여된 암호 암호화 함수 처리부(331)에 입력하고, 송신 대상의 데이터에 대한 MAC의 생성과, 송신 대상의 데이터 암호화를 행하도록 제어한다. 또한, 인증이 부여된 암호 암호화 함수 처리 제어부(332)는, 의사 랜덤 함수 처리부(311)에 의해 생성된 비밀키(파생키)를 송신원 장치에 고유의 비밀키로서, 인증이 부여된 암호 암호화 함수 처리부(331)에 입력한다.
또한, 본 실시 형태에서는, 송신원 장치의 송신 장치(302)는, 인증이 부여된 암호 암호화 함수 처리부(331)에 의해 암호화된 데이터와, 인증이 부여된 암호 암호화 함수 처리부(331)가 생성한 MAC와, 당해 송신원 장치의 로컬 ID를 중계 장치에 송신한다.
이로 인해, 본 실시 형태에 따른 중계 장치의 수신 장치(401)는, 암호화된 데이터와, MAC와, 통신 장치(100)의 로컬 ID를 수신한다. 그리고, 중계 장치의 송신 장치(402)는, 수신 장치(401)가 수신한 암호화된 데이터와, MAC 생성 함수 처리부(421)가 생성한 MAC와, 송신원 장치가 생성한 MAC와, 당해 중계 장치의 로컬 ID 및 수신 장치(401)가 수신한 로컬 ID를 다른 중계 장치 또는 데이터 수신 장치에 송신한다.
다음으로, 실시 형태 3에 따른 데이터 수신 장치에 대하여 설명한다. 도 20은, 실시 형태 3에 따른 데이터 수신 장치의 구성의 일례를 나타내는 블록도이다. 데이터 수신 장치로서의 통신 장치(100)는, 검증 장치(204)가 검증 장치(205)로 치환된 점에서, 도 6에 도시한 구성과 상이하다. 검증 장치(205)는, 인증이 부여된 암호 복호 함수 처리부(261) 및 인증이 부여된 암호 복호 함수 처리 제어부(262)가 추가된 점에서, 검증 장치(204)와 상이하다.
인증이 부여된 암호 복호 함수 처리부(261)는, 소정의 인증이 부여된 암호의 복호 함수에 의한 연산을 행함으로써, 복호된 데이터를 생성한다. 인증이 부여된 암호 복호 함수 처리 제어부(262)는, N계층째의 통신 장치(100)의 추출된 로컬 ID에 대응하는 비밀키와 수신 장치(201)가 수신한 암호화된 데이터와 수신 장치(201)가 수신한 송신원 장치가 생성한 MAC를 인증이 부여된 암호 복호 함수 처리부(261)에 입력하고, 복호된 데이터를 생성하도록 제어한다. 또한, 본 실시 형태에 따른 수신 장치(201)는, 중계 장치를 통해 암호화된 데이터와, 로컬 ID의 계열과, 중계 장치가 생성한 MAC와, 송신원 장치가 생성한 MAC를 수신한다. 단, 수신 장치(201)가 수신하는, 송신원 장치가 생성한 MAC는, 엄밀하게는 송신원 장치가 생성되었다고 추정되는 MAC이며, 개찬 등의 부정이 행해진 경우에는, 송신원 장치가 생성한 MAC와는 상이하다.
상술한 소정의 인증이 부여된 암호의 암호화 함수 및 복호 함수는, GCM 모드 또는 CCM 모드와 같은 암호 이용 모드를 사용하여 구성되는 함수여도 되고, Encrypt-Then-MAC법 등의 암호화와 MAC를 조합하여 구성되는 함수여도 되고, CAESAR 컴피티션에 응모되어 있는 알고리즘을 이용하여 구성된 전용의 함수여도 된다.
또한, 본 실시 형태에 따른 MAC 생성 함수 처리 제어부(222)는, 수신 장치(201)에 의해 수신된 송신원 장치가 생성한 MAC와 N-1계층째의 통신 장치(100)의 추출된 로컬 ID에 대응하는 비밀키를 MAC 생성 함수 처리부(221)에 입력하여 MAC를 도출시킨다. 또한, MAC 생성 함수 처리 제어부(222)는, 이에 의해 도출된 MAC와 m계층째(m은 N-2 이하 1 이상의 양의 정수)의 통신 장치(100)의 추출된 로컬 ID에 대응하는 비밀키를 MAC 생성 함수 처리부(221)에 입력하고, 귀납적으로 MAC를 도출시킨다.
즉, MAC 생성 함수 처리 제어부(222)는, 송신원 장치가 생성한 MAC와, 의사 랜덤 함수 처리부(211)에 의해 생성된 N-1계층째의 통신 장치(100)에 대응하는 비밀키(구체적으로는, 파생키에 상당하는 키인 진짜 비밀키)를 사용하여, N-1계층째의 통신 장치(100)가 생성한 MAC를 재현한다. 그리고, 그 후, MAC 생성 함수 처리 제어부(222)는, m+1계층째의 통신 장치(100)에 대한 재현한 MAC와 m계층째의 통신 장치(100)에 대응하는 비밀키(구체적으로는, 파생키에 상당하는 키인 진짜 비밀키)를 사용하여, m계층째의 통신 장치(100)가 생성한 MAC를 재현하는 처리를 반복하도록 제어한다.
이에 의해, MAC 생성 함수 처리 제어부(222)는, N-1계층째로부터 1계층째까지의 각 통신 장치(100)에 대응하는 MAC를 생성하도록 제어한다.
그리고, 비교부(250)는, 수신 장치(201)에 의해 수신된 중계 장치가 생성한 MAC와, MAC 생성 함수 처리부(221)에 의해 생성된 1계층째의 통신 장치(100)에 대응하는 MAC를 비교한다. 상술한 실시 형태와 마찬가지로, 올바른 데이터가 올바른 경로를 따라 전송된 경우, 2개의 MAC가 일치하지만, 데이터가 개찬되었거나, 또는, 데이터가 올바른 경로를 따라 전송되지 않는 경우, 2개의 MAC는 일치하지 않는다.
도 21은, 검증 장치(205)에 있어서의 상술한 처리의 흐름을 나타내는 모식도이다. 또한, 도 8에 도시한 처리의 흐름과 마찬가지로, 본 실시 형태에 있어서도, 먼저, 의사 랜덤 함수에 의해 비밀키가 생성되고, 그리고, 생성된 이들 키는 파생키 설정값(도 21의 예에서는「0」)과 함께, 의사 랜덤 함수에 입력된다. 이에 의해, 파생키가 생성된다. 이 중, N계층째의 통신 장치의 로컬 ID에 대응하는 파생키는, 인증이 부여된 암호의 복호 함수에 입력되고, N-1계층째로부터 1계층째의 통신 장치의 로컬 ID에 대응하는 파생키는, MAC 생성 함수에 입력된다. 도 21에 있어서, C는, 전송된 암호문, 즉 암호화된 데이터를 나타낸다. S1_1, S1_2, …, S1_N-1은, MAC 생성 함수 처리부(221)가 출력하는 MAC를 나타내고, S1_N은, 전송된, 송신원 장치(N계층째의 통신 장치(100))가 생성한 MAC를 나타낸다. S1은, 전송된, 중계 장치(1계층째의 통신 장치(100))가 생성한 MAC를 나타낸다. 또한, 기타의 부호에 대해서는, 도 8과 마찬가지이다. 도 21에 도시한 바와 같이, 검증 장치(205)는, 수신한 암호문 C를 인증이 부여된 암호 복호 함수 처리부(261)에서 복호하고, 암호화 전의 데이터인 메시지 M을 생성한다. 또한, 송신원 장치로부터 데이터 수신 장치까지 데이터가 전송될 때 행해지는 인증 생성 처리를 재현하고, MAC를 생성한다. 그리고, 검증 장치(205)는, 생성된 MAC와 수신된 MAC를 비교함으로써, 올바른 데이터가 수신되었는지, 및 올바른 경로를 따라 전송되었는지 여부의 검증을 행한다.
다음으로, 실시 형태 3에 따른 데이터 전송 시스템의 동작에 대하여 설명한다. 본 실시 형태에 따른 초기 설정에 관한 동작은, 실시 형태 1과 동일하기 때문에, 설명을 생략한다. 도 22는, 실시 형태 3에 따른 데이터 전송 시스템에 있어서의 전송의 동작의 흐름의 일례를 나타내는 흐름도이다. 도 22에 도시한 바와 같이 본 실시 형태에 있어서의 전송의 동작의 흐름도는, 스텝 200이 스텝 240으로 치환된 점에서, 도 11에 도시한 흐름도와 상이하다. 또한, 도 23은, 송신원 장치 및 중계 장치에 있어서의 전송 경로의 구체적인 일례와 함께 정보의 흐름을 나타내는 모식도이며, 도 24는, 도 23에서 도시한 각 통신 장치에 있어서의 암호 장치 또는 인증 생성 장치의 처리의 흐름을 나타내는 모식도이다. 이하, 도 22에 도시한 흐름도에 대하여, 적절히 도 23, 도 24를 참조하면서 설명한다.
또한, 도 23에서는, 도 12에 도시한 예와 마찬가지의 부호를 이용하여, 구성(통신 장치, 인증 생성 장치) 및 정보(로컬 ID, 비밀키, 메시지, MAC)를 나타내고 있다. 또한, 도 12에서는 통신 장치 D3에 있어서 인증 생성 장치 D31을 도시하였지만, 상술한 바와 같이 본 실시 형태에서는 송신원 장치는 암호 장치를 갖기 때문에, 도 23에서는 통신 장치 D3에 있어서 암호 장치 D31c가 도시되어 있다. 도 23은, 그러한 부호의 전제하에, 초기 설정 후에 통신 장치 D1, D2, D3이 유지하고 있는 값, 암호 장치 또는 인증 생성 장치의 입출력 및 노드 간의 통신 내용에 대하여 도시하고 있다.
메시지 M이 전송되는 경우, 우선, 스텝 240(S240)에 있어서, 송신원 장치인 통신 장치(100)의 인증이 부여된 암호 암호화 함수 처리부(331)는, 메시지 M을 암호화한 암호문 C를 생성함과 함께, 메시지 M에 대한 MAC를 생성한다. 상세하게는, 우선, 송신원 장치의 암호 장치(304)의 의사 랜덤 함수 처리부(311)는, 배포된 비밀키로부터 파생키를 생성한다. 그리고, 송신원 장치의 암호 장치(304)의 인증이 부여된 암호 암호화 함수 처리부(331)는, 파생키를 사용하여, 메시지 M에 대한 암호문과 MAC를 생성한다.
도 23, 도 24에 도시한 예에 기초하여 구체적으로 설명하면 스텝 240에 있어서, 통신 장치 D3의 암호 장치 D31c에서는, 의사 랜덤 함수 처리부(311)는, 비밀키 SK3과, 파생키 설정값(구체적으로는, 0)을 이용하여 파생키 SK31을 생성한다. 이어서, 인증이 부여된 암호 암호화 함수 처리부(331)는, 파생키 SK31과 메시지 M을 사용하여, 암호문 C와, MAC값 S3을 출력한다.
스텝 240의 후, 실시 형태 1과 마찬가지로, 스텝 201 이후의 처리가 행해진다. 단, 실시 형태 1과 달리, 평문인 메시지 M 대신에 암호문 C 및 송신원 장치가 생성한 MAC가, 데이터 수신 장치까지 전송된다. 따라서, 통신 장치 D3의 송신 장치(302)는, (C, S3, ID3)을, 통신 장치 D2에 송신하고, 통신 장치 D2의 송신 장치(402)는, ({C, S3}, S2, {ID2, ID3})을, 통신 장치 D1에 송신한다. 또한, 통신 장치 D1의 송신 장치(402)는, ({C, S3}, S1, {ID1, ID2, ID3})을, 데이터 수신 장치인 통신 장치(100)에 송신한다.
다음으로, 본 실시 형태에 따른 데이터 수신 장치에 있어서의 검증 동작에 대하여 설명한다. 도 25는, 실시 형태 3에 따른 데이터 수신 장치에 있어서의 검증 동작의 흐름의 일례를 나타내는 흐름도이다. 도 25에 도시한 바와 같이 본 실시 형태에 있어서의 검증 동작의 흐름도는, 스텝 302와 스텝 303의 사이에 스텝 310이 삽입되어 있는 점에서, 도 14에 도시한 흐름도와 상이하다. 실시 형태 3에 따른 데이터 수신 장치는, 수신 장치(201)에 의해 중계 장치로부터 암호문 C를 포함하는 정보를 수신하면, 이하에 기재하는 바와 같이 검증 장치(205)에 의한 검증 처리를 행한다.
우선, 실시 형태 1과 마찬가지로, 스텝 300로부터 스텝 302까지의 처리가 행해진다. 즉, 실시 형태 1과 마찬가지로, 파생키 SKi_1'(단, 1≤i≤N)이 생성된다. 스텝 302의 후, 처리는 스텝 310으로 이행된다.
스텝 310(S310)에 있어서, 인증이 부여된 암호 복호 함수 처리부(261) 및 인증이 부여된 암호 복호 함수 처리 제어부(262)는, 수신 장치(201)가 수신한 송신원 장치가 생성한 MAC와, 수신 장치(201)가 수신한 암호문과, 스텝 302에서 생성된 N계층째의 통신 장치(100)에 대응하는 파생키를 사용하여, 암호문을 복호한다. 구체적으로는, 인증이 부여된 암호 복호 함수 처리 제어부(262)는, 인증이 부여된 암호 복호 함수 처리부(261)에 SKN_1'를 비밀키로서 입력하고, C를 암호문으로서 입력하고, S1_N을 MAC 값으로서 입력하고, 평문 M을 생성한다. 또한, S1_N은, 수신 장치(201)가 수신한, 송신원 장치(N계층째의 통신 장치(100))가 생성한 MAC이다. 만약 인증이 부여된 암호의 복호 함수에 의한 MAC값의 검증에 통하지 않는 경우에는, 인증이 부여된 암호 복호 함수 처리부(261)의 출력은 위조(false)로 된다. 이에 반하여, 이 검증에 통한 경우에는, 인증이 부여된 암호 복호 함수 처리부(261)로부터 올바른 평문 M이 출력된다. 인증이 부여된 암호 복호 함수 처리부(261)에 의해 생성된 평문 M은 검증 장치(205)로부터 출력된다.
스텝 310의 후, 처리는 스텝 303으로 이행된다. 본 실시 형태에 있어서의 스텝 303에서는, MAC 생성 함수 처리부(221) 및 MAC 생성 함수 처리 제어부(222)는, 수신된 송신원 장치가 생성한 MAC와 스텝 302에서 생성된 파생키를 사용하여 MAC를 생성한다. 구체적으로는, MAC 생성 함수 처리부(221) 및 MAC 생성 함수 처리 제어부(222)는, N-1≥i≥1에 대해서 이하를 실행한다. MAC 생성 함수 처리 제어부(222)는, MAC 생성 함수 처리부(221)에 SKi_1'를 비밀키로서 입력하고, S1_i+1을 메시지로서 입력하고, S1_i를 얻는다. 이때 생성되는 S1_N-1로부터 S1_1까지의 각각의 값은, 정확하게 메시지 전달이 행해지고 있으면, 데이터 수신 장치로부터 송신원 장치에 이르기까지의 각 계층의 통신 장치(100)가 생성한 MAC값과 일치한다.
다음으로, 스텝 304에 있어서, 비교부(250)는, 수신 장치(201)에 의해 수신된 중계 장치가 생성한 MAC와, 스텝 303에서 생성된 1계층째의 통신 장치(100)에 대응하는 MAC를 비교한다. 구체적으로는, 비교부(250)는, 스텝 303에서 생성한 S1_1과, 수신한 S1을 비교하고, 양자의 값이 일치하였는지 여부를 판정한다. 비교부(250)는, 양자가 일치하였으면 출력값 B=1을 출력하고, 그렇지 않으면 출력값 B=0을 출력한다. 본 실시 형태에 있어서도, B=1이면 메시지 M이 송신원 장치로부터 개찬되지 않고 송부되며, 또한 올바른 전송 경로를 따라 전송되었음을 의미한다. 만약 B=0이면 메시지 M은 개찬되었거나, 또는 올바른 전송 경로상의 통신 장치 이외의 통신 장치를 경유하여 전송되었음을 의미한다. 또한, 비교부(250)의 출력값 및 인증이 부여된 암호 복호 함수 처리부(261)의 출력값에 기초하여 전송의 안전성을 판정하는 판정부(도시생략)를 데이터 수신 장치가 가져도 된다. 또한, 이 판정부는, 인증이 부여된 암호 복호 함수 처리부(261)의 출력값이 위조가 아니면, 정확하게 메시지가 암호화되어 보내져 왔다고 판정하고, 또한, 비교부(250)의 출력이 B=1이면 올바른 전송 경로를 경유하여 메시지가 전송되었다고 판정해도 된다.
이상, 실시 형태 3에 대하여 설명하였다. 본 실시 형태에서는, 암호화된 데이터가 전송된다. 이로 인해, 보다 안전하게 데이터의 전송을 행할 수 있다. 따라서, 예를 들어 데이터의 은닉성이 필요한 센서 네트워크나, 송부하는 메시지에 개인 정보를 수반하는 경우 등에, 은닉성을 담보하여 전송을 행할 수 있다.
실시 형태 3에 따른 구성은, 실시 형태 2에 나타낸 구성과 조합해도 된다. 즉, 암호화된 데이터를 전송하기 위한 구성과, 중계 장치에 의한 검증을 행하는 구성을 조합해도 된다. 또한, 실시 형태 3에 있어서도, 중계 장치에 의한 비밀키의 생성이 행해져도 된다. 즉, 실시 형태 3에 있어서, 중계 장치는 키 생성 장치(404)를 가져도 된다. 또한, 실시 형태 3에서는, 파생키를 사용한 MAC 생성을 행하는 구성을 나타내었지만, 파생키를 생성하지 않아도 된다. 즉, 배포된 비밀키를 사용하여 MAC 생성이 행해져도 된다.
또한, 실시 형태에 있어서, 다양한 처리를 행하는 기능 블록으로 해서 도면에 기재되는 각 요소는, 하드웨어적으로는, CPU, 메모리, 그 밖의 회로로 구성할 수 있으며, 소프트웨어적으로는, 메모리에 로드된 프로그램 등에 의해 실현된다. 따라서, 이들 기능 블록이 하드웨어만, 소프트웨어만, 또는 그들 조합에 의해 다양한 형태로 실현할 수 있음은 당업자에게는 이해되는 바이며, 어느 하나로 한정되는 것은 아니다. 즉, 키 생성 장치(203, 404), 검증 장치(204, 205), 인증 생성 장치(303, 403, 405), 및 암호 장치(304)에 있어서, 장치를 구성하는 기능 블록의 일부 또는 전부는, 메모리에 로드된 프로그램이 CPU에 의해 실행됨으로써 실현되어도 되고, 전용 하드웨어 회로에 의해 실현되어도 된다. 또한, 함수 처리를 행하는 회로가, 반도체 제품에 하드웨어로서 탑재되어 있는 공통키 암호 AES나 해시 함수 SHA2 등의 기존의 회로를 사용하여 구성되어도 된다.
또한, 상술한 프로그램은, 다양한 타입의 비일시적인 컴퓨터 가독 매체를 사용하여 저장되고, 컴퓨터에 공급할 수 있다. 비일시적인 컴퓨터 가독 매체는, 다양한 타입의 실체가 있는 기록 매체를 포함한다. 비일시적인 컴퓨터 가독 매체의 예는, 자기 기록 매체(예를 들어 플렉시블 디스크, 자기 테이프, 하드디스크 드라이브), 광자기 기록 매체(예를 들어 광자기 디스크), CD-ROM(Read Only Memory) CD-R, CD-R/W, 반도체 메모리(예를 들어, 마스크 ROM, PROM(Programmable ROM), EPROM(Erasable PROM), 플래시 ROM, RAM(Random Access Memory))를 포함한다. 또한, 프로그램은, 다양한 타입의 일시적인 컴퓨터 가독 매체에 의해 컴퓨터에 공급되어도 된다. 일시적인 컴퓨터 가독 매체의 예는, 전기 신호, 광신호, 및 전자파를 포함한다. 일시적인 컴퓨터 가독 매체는, 전선 및 광 파이버 등의 유선 통신로, 또는 무선 통신로를 통해 프로그램을 컴퓨터에 공급할 수 있다.
이상, 본 발명자에 의해 이루어진 발명을 실시 형태에 기초하여 구체적으로 설명하였지만, 본 발명은 이미 설명한 실시 형태로 한정되는 것이 아니라, 그 요지를 일탈하지 않는 범위에 있어서 다양한 변경이 가능함은 물론이다. 예를 들어, 중계 장치로서 동작하는 통신 장치는, 송신원 장치로서 동작해도 됨은 물론이다. 이 경우, 당해 통신 장치는, 중계 장치로서의 기능과 송신원 장치로서의 기능을 구비한다.
1: 데이터 수신 장치
2, 230: 비밀키 기억부
3: 수신부
4: 식별자 추출부
5, 211, 311, 411: 의사 랜덤 함수 처리부
6, 221, 321, 421: MAC 생성 함수 처리부
7, 212, 312, 412: 의사 랜덤 함수 처리 제어부
8, 222, 322, 422: MAC 생성 함수 처리 제어부
9, 250, 440: 비교부
10: 데이터 전송 시스템
100, 100_0, 100_1a, 100_1b, 100_1c, 100_2a, 100_2b, 100_2c, 100_3a, 100_3b, D1, D2, D3: 통신 장치
201, 301, 401: 수신 장치
202, 302, 402: 송신 장치
203, 404: 키 생성 장치
204, 205: 검증 장치
240, 430: 계층 분리부
261: 인증이 부여된 암호 복호 함수 처리부
262: 인증이 부여된 암호 복호 함수 처리 제어부
303, 403, 405, D11, D21, D31: 인증 생성 장치
304, D31c: 암호 장치
331: 인증이 부여된 암호 암호화 함수 처리부
332: 인증이 부여된 암호 암호화 함수 처리 제어부

Claims (13)

  1. 미리 정해진 비밀키인 수신처 장치키를 기억하는 비밀키 기억부와,
    데이터의 전송을 중계하는 통신 장치인 중계 장치를 통하여, 상기 데이터와, 상기 데이터의 송신원의 통신 장치인 송신원 장치 및 상기 중계 장치의 개별 식별자의 계열과, 상기 중계 장치가 생성한 MAC(Message Authentication Code)를 수신하는 수신부와,
    상기 데이터의 전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 상기 수신부가 수신한 상기 계열로부터 추출하는 식별자 추출부와,
    소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 의사 랜덤 함수 처리부와,
    소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성하는 MAC 생성 함수 처리부와,
    상기 수신처 장치키와 1계층째의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 비밀키를 생성하도록 제어하는 의사 랜덤 함수 처리 제어부와,
    상기 수신부가 수신한 상기 데이터와 N계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 MAC 생성 함수 처리부에 입력하여 MAC를 도출시키며, 또한, 도출된 MAC와 m계층째(m은 N-1 이하 1 이상의 양의 정수)의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 MAC 생성 함수 처리부에 입력하여, 귀납적으로 MAC를 도출시킴으로써, N계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하는 MAC 생성 함수 처리 제어부와,
    상기 수신부가 수신한 MAC와, 상기 MAC 생성 함수 처리부에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는 비교부
    를 갖는, 데이터 수신 장치.
  2. 제1항에 있어서,
    상기 의사 랜덤 함수 처리 제어부는,
    상기 수신처 장치키와 1계층째의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여 임시 비밀키를 도출시키고, 해당 임시 비밀키와 소정값을 상기 의사 랜덤 함수 처리부에 입력하여 진짜 비밀키를 도출시키며, 또한, 도출된 임시 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 임시 비밀키 및 진짜 비밀키를 도출시킴으로써, 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 진짜 비밀키를 생성하도록 제어하고,
    상기 MAC 생성 함수 처리 제어부는, 추출된 개별 식별자에 대응하는 비밀키로서, 상기 진짜의 비밀키를 사용하고,
    상기 개별 식별자의 값은, 상기 소정값과는 상이한 값인, 데이터 수신 장치.
  3. 제1항에 있어서,
    상기 식별자 추출부는, 전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 비밀키의 배포 대상인 통신 장치의 계층화 식별자로부터 더 추출하고,
    상기 계층화 식별자는, 통신 장치의 각각에 유일하게 관련지어지는 식별자이며, 해당 계층화 식별자에 관련지어지는 통신 장치의 개별 식별자와, 해당 통신 장치로부터의 미리 정해진 데이터 전송 경로상의 각 통신 장치의 개별 식별자를 조합하여 구성되는 식별자이며,
    상기 의사 랜덤 함수 처리 제어부는, 추가로, 상기 수신처 장치키와, 1계층째의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 비밀키의 배포 대상인 N계층째의 통신 장치의 비밀키를 생성하도록 제어하는, 데이터 수신 장치.
  4. 제1항에 있어서,
    상기 수신부는, 상기 중계 장치를 통해 암호화된 상기 데이터와, 상기 계열과, 상기 중계 장치가 생성한 MAC와, 상기 송신원 장치가 생성한 MAC를 수신하고,
    상기 데이터 수신 장치는,
    소정의 인증이 부여된 암호의 복호 함수에 의한 연산을 행함으로써, 복호된 상기 데이터를 생성하는 복호 함수 처리부와,
    N계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키와 상기 수신부가 수신한 암호화된 상기 데이터와 상기 송신원 장치가 생성한 MAC를 상기 복호 함수 처리부에 입력하여, 복호된 상기 데이터를 생성하도록 제어하는 복호 함수 처리 제어부
    를 더 갖고,
    상기 MAC 생성 함수 처리 제어부는, 상기 수신부에 의해 수신된 상기 송신원 장치가 생성한 MAC와 N-1계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 MAC 생성 함수 처리부에 입력하여 MAC를 도출시키며, 또한, 도출된 MAC와 m계층째(m은 N-2 이하 1 이상의 양의 정수)의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 MAC 생성 함수 처리부에 입력하여, 귀납적으로 MAC를 도출시킴으로써, N-1계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하고,
    상기 비교부는, 상기 수신부에 의해 수신된 상기 중계 장치가 생성한 MAC와, 상기 MAC 생성 함수 처리부에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는, 데이터 수신 장치.
  5. 데이터의 송신원의 통신 장치인 송신원 장치와,
    상기 데이터의 전송을 중계하는 통신 장치인 중계 장치와,
    상기 중계 장치를 통해 상기 데이터를 수신하는 통신 장치인 데이터 수신 장치
    를 구비하고,
    상기 송신원 장치는,
    소정의 MAC 생성 함수에 의한 연산을 행함으로써 MAC(Message Authentication Code)를 생성하는 제1 MAC 생성 함수 처리부와,
    상기 데이터와 해당 송신원 장치에 고유의 비밀키를 상기 제1 MAC 생성 함수 처리부에 입력하여, 상기 데이터에 대한 MAC를 생성하도록 제어하는 제1 MAC 생성 함수 처리 제어부와,
    상기 데이터와, 상기 제1 MAC 생성 함수 처리부가 생성한 MAC와, 해당 송신원 장치의 개별 식별자를 상기 중계 장치에 송신하는 제1 송신부
    를 갖고,
    상기 송신원 장치에 고유의 비밀키는, 소정의 의사 랜덤 함수에 의한 연산을 행함으로써 도출되는 비밀키이며,
    상기 중계 장치는,
    상기 데이터와, MAC와, 통신 장치의 개별 식별자를 수신하는 제1 수신부와,
    상기 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성하는 제2 MAC 생성 함수 처리부와,
    상기 제1 수신부가 수신한 MAC와 해당 중계 장치에 고유의 비밀키를 상기 제2 MAC 생성 함수 처리부에 입력하여, 상기 제1 수신부가 수신한 MAC에 대한 MAC를 생성하도록 제어하는 제2 MAC 생성 함수 처리 제어부와,
    상기 데이터와, 상기 제2 MAC 생성 함수 처리부가 생성한 MAC와, 해당 중계 장치의 개별 식별자 및 상기 제1 수신부가 수신한 개별 식별자를 다른 상기 중계 장치 또는 상기 데이터 수신 장치에 송신하는 제2 송신부
    를 갖고,
    상기 중계 장치에 고유의 비밀키는, 상기 의사 랜덤 함수에 의한 연산을 행함으로써 도출되는 비밀키이며,
    상기 데이터 수신 장치는,
    미리 정해진 비밀키인 수신처 장치키를 기억하는 비밀키 기억부와,
    상기 중계 장치를 통하여, 상기 데이터와, 상기 송신원 장치 및 상기 중계 장치의 개별 식별자의 계열과, 상기 중계 장치가 생성한 MAC를 수신하는 제2 수신부와,
    상기 데이터의 전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 상기 제2 수신부가 수신한 상기 계열로부터 추출하는 제1 식별자 추출부와,
    상기 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 제1 의사 랜덤 함수 처리부와,
    상기 MAC 생성 함수에 의한 연산을 행함으로써 MAC를 생성하는 제3 MAC 생성 함수 처리부와,
    상기 수신처 장치키와 1계층째의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 비밀키를 생성하도록 제어하는 제1 의사 랜덤 함수 처리 제어부와,
    상기 제2 수신부가 수신한 상기 데이터와 N계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 제3 MAC 생성 함수 처리부에 입력하여 MAC를 도출시키며, 또한, 도출된 MAC와 m계층째(m은 N-1 이하 1 이상의 양의 정수)의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 제3 MAC 생성 함수 처리부에 입력하여, 귀납적으로 MAC를 도출시킴으로써, N계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하는 제3 MAC 생성 함수 처리 제어부와,
    상기 제2 수신부가 수신한 MAC와, 상기 제3 MAC 생성 함수 처리부에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는 제1 비교부
    를 갖는, 데이터 전송 시스템.
  6. 제5항에 있어서,
    상기 제1 식별자 추출부는, 추가로, 전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 비밀키의 배포 대상인 통신 장치의 계층화 식별자로부터 추출하고,
    상기 계층화 식별자는, 통신 장치의 각각에 유일하게 관련지어지는 식별자이며, 해당 계층화 식별자에 관련지어지는 통신 장치의 개별 식별자와, 해당 통신 장치로부터의 미리 정해진 데이터 전송 경로상의 각 통신 장치의 개별 식별자를 조합하여 구성되는 식별자이며,
    상기 제1 의사 랜덤 함수 처리 제어부는, 추가로, 상기 수신처 장치키와, 1계층째의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 비밀키의 배포 대상인 N계층째의 통신 장치의 비밀키를 생성하도록 제어하고,
    상기 송신원 장치에 고유의 비밀키 및 상기 중계 장치에 고유의 비밀키는, 상기 제1 의사 랜덤 함수 처리부에 의해 생성된 비밀키 또는 상기 제1 의사 랜덤 함수 처리부에 의해 생성된 비밀키에 기초하여 생성된 비밀키인, 데이터 전송 시스템.
  7. 제6항에 있어서,
    상기 송신원 장치는,
    상기 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 제2 의사 랜덤 함수 처리부와,
    상기 제1 의사 랜덤 함수 처리부에 의해 생성된 비밀키와 소정값을 상기 제2 의사 랜덤 함수 처리부에 입력하여, 해당 송신원 장치에 고유의 비밀키를 생성하도록 제어하는 제2 의사 랜덤 함수 처리 제어부
    를 더 갖고,
    상기 중계 장치는,
    상기 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 제3 의사 랜덤 함수 처리부와,
    상기 제1 의사 랜덤 함수 처리부에 의해 생성된 비밀키와 상기 소정값을 상기 제3 의사 랜덤 함수 처리부에 입력하여, 해당 중계 장치에 고유의 비밀키를 생성하도록 제어하는 제3 의사 랜덤 함수 처리 제어부
    를 더 갖고,
    상기 데이터 수신 장치의 상기 제1 의사 랜덤 함수 처리 제어부는, 상기 제2 수신부가 상기 데이터와 상기 계열과 상기 중계 장치가 생성한 MAC를 수신한 경우, 상기 수신처 장치키와 1계층째의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여 임시 비밀키를 도출시키고, 해당 임시 비밀키와 상기 소정값을 상기 제1 의사 랜덤 함수 처리부에 입력하여 진짜 비밀키를 도출시키며, 또한, 도출된 임시 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 제1 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 임시 비밀키 및 진짜 비밀키를 도출시킴으로써, 1계층째로부터 N계층째까지의 각 통신 장치의 개별 식별자에 대응하는 진짜 비밀키를 생성하도록 제어하고,
    상기 데이터 수신 장치의 상기 제3 MAC 생성 함수 처리 제어부는, 추출된 개별 식별자에 대응하는 비밀키로서, 상기 진짜 비밀키를 사용하고,
    상기 개별 식별자의 값은, 상기 소정값과는 상이한 값인, 데이터 전송 시스템.
  8. 제6항에 있어서,
    상기 중계 장치는,
    해당 중계 장치보다도 하위의 통신 장치이며 비밀키의 배포 대상인 통신 장치로부터 해당 중계 장치의 바로 아래의 통신 장치까지의 개별 식별자의 계열로부터, 각 계층의 통신 장치의 개별 식별자를 추출하는 제2 식별자 추출부와,
    상기 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 제3 의사 랜덤 함수 처리부와,
    해당 중계 장치에 고유의 비밀키와, 해당 중계 장치에서 볼 때 1계층째의 통신 장치의 추출된 개별 식별자를 상기 제3 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한 도출된 비밀키와 해당 중계 장치에서 볼 때 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 제3 의사 랜덤 함수 처리부에 입력하고, 귀납적으로 비밀키를 도출시킴으로써, 비밀키의 배포 대상인 상기 하위의 통신 장치의 비밀키를 생성하도록 제어하는 제3 의사 랜덤 함수 처리 제어부
    를 더 갖고,
    상기 하위의 통신 장치에 고유의 비밀키는, 상기 제3 의사 랜덤 함수 처리부에 의해 생성된 비밀키 또는 상기 제3 의사 랜덤 함수 처리부에 의해 생성된 비밀키에 기초하여 생성된 비밀키인, 데이터 전송 시스템.
  9. 제5항에 있어서,
    상기 송신원 장치의 상기 제1 MAC 생성 함수 처리 제어부는, 추가로, 상기 제1 MAC 생성 함수 처리부에 의해 생성된 상기 데이터에 대한 MAC와, 해당 송신원 장치에 고유의 비밀키를 상기 제1 MAC 생성 함수 처리부에 입력하고, 상기 제1 MAC 생성 함수 처리부에 의해 생성된 MAC에 대한 MAC를 생성하도록 제어하고,
    상기 제1 송신부는, 상기 데이터와, 상기 제1 MAC 생성 함수 처리부가 생성한 2개의 MAC와, 해당 송신원 장치의 개별 식별자를 상기 중계 장치에 송신하고,
    상기 중계 장치는,
    상기 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 제3 의사 랜덤 함수 처리부와,
    해당 중계 장치에 고유의 비밀키와, 상기 제1 수신부가 수신한 개별 식별자 중 해당 중계 장치에 대해서 송신을 행한 통신 장치의 개별 식별자를 상기 제3 의사 랜덤 함수 처리부에 입력하여, 해당 중계 장치에 대해서 송신을 행한 통신 장치에 고유의 비밀키를 생성하도록 제어하는 제3 의사 랜덤 함수 처리 제어부와,
    상기 제1 수신부가 수신한 2개의 MAC 중 제1 MAC와, 상기 제2 MAC 생성 함수 처리부에 의해 생성된 MAC를 비교하는 제2 비교부
    를 더 갖고,
    상기 중계 장치의 상기 제2 MAC 생성 함수 처리 제어부는, 상기 제1 수신부가 수신한 2개의 MAC 중 제2 MAC와 해당 중계 장치에 대해서 송신을 행한 통신 장치에 고유의 비밀키를 상기 제2 MAC 생성 함수 처리부에 입력하여 상기 제2 MAC에 대한 MAC를 생성하도록 제어하고, 상기 제1 MAC와 해당 중계 장치에 고유의 비밀키를 상기 제2 MAC 생성 함수 처리부에 입력하여, 상기 제1 MAC에 대한 MAC를 생성하도록 제어하고,
    상기 제2 비교부는, 상기 제1 MAC와, 상기 제2 MAC에 대한 MAC를 비교하고,
    상기 제2 송신부는, 상기 데이터와, 상기 제1 MAC와, 상기 제1 MAC에 대한 MAC와, 해당 중계 장치의 개별 식별자 및 상기 제1 수신부가 수신한 개별 식별자를 다른 상기 중계 장치 또는 상기 데이터 수신 장치에 송신하는, 데이터 전송 시스템.
  10. 제9항에 있어서,
    상기 중계 장치의 상기 제2 송신부는, 상기 제2 비교부에 의해, 상기 제1 MAC와 상기 제2 MAC에 대한 MAC가 일치하였다고 판정된 경우, 송신을 행하는, 데이터 전송 시스템.
  11. 제10항에 있어서,
    상기 중계 장치의 상기 제2 MAC 생성 함수 처리 제어부는, 상기 제2 비교부에 의해, 상기 제1 MAC와 상기 제2 MAC에 대한 MAC가 일치하였다고 판정된 경우, 상기 제1 MAC와 해당 중계 장치에 고유의 비밀키를 상기 제2 MAC 생성 함수 처리부에 입력하여, 상기 제1 MAC에 대한 MAC를 생성하도록 제어하는, 데이터 전송 시스템.
  12. 제5항에 있어서,
    상기 송신원 장치의 상기 제1 MAC 생성 함수 처리부는, 소정의 인증이 부여된 암호의 암호화 함수에 의한 연산을 행함으로써, MAC의 생성 및 암호화 처리를 행하고,
    상기 송신원 장치의 상기 제1 MAC 생성 함수 처리 제어부는, 상기 데이터와 해당 송신원 장치에 고유의 비밀키를 상기 제1 MAC 생성 함수 처리부에 입력하여, 상기 데이터에 대한 MAC의 생성과, 상기 데이터의 암호화를 행하도록 제어하고,
    상기 송신원 장치의 상기 제1 송신부는, 암호화된 상기 데이터와, 상기 제1 MAC 생성 함수 처리부가 생성한 MAC와, 해당 송신원 장치의 개별 식별자를 상기 중계 장치에 송신하고,
    상기 중계 장치의 상기 제1 수신부는, 암호화된 상기 데이터와, MAC와, 통신 장치의 개별 식별자를 수신하고,
    상기 중계 장치의 상기 제2 송신부는, 암호화된 상기 데이터와, 상기 제2 MAC 생성 함수 처리부가 생성한 MAC와, 상기 송신원 장치가 생성한 MAC와, 해당 중계 장치의 개별 식별자 및 상기 제1 수신부가 수신한 개별 식별자를 다른 상기 중계 장치 또는 상기 데이터 수신 장치에 송신하고,
    상기 데이터 수신 장치의 상기 제2 수신부는, 상기 중계 장치를 통해 암호화된 상기 데이터와, 상기 계열과, 상기 중계 장치가 생성한 MAC와, 상기 송신원 장치가 생성한 MAC를 수신하고,
    상기 데이터 수신 장치는,
    상기 소정의 인증이 부여된 암호의 복호 함수에 의한 연산을 행함으로써, 복호된 상기 데이터를 생성하는 복호 함수 처리부와,
    N계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키와 상기 제2 수신부가 수신한 암호화된 상기 데이터와 상기 송신원 장치가 생성한 MAC를 상기 복호 함수 처리부에 입력하고, 복호된 상기 데이터를 생성하도록 제어하는 복호 함수 처리 제어부
    를 더 갖고,
    상기 제3 MAC 생성 함수 처리 제어부는, 상기 제2 수신부에 의해 수신된 상기 송신원 장치가 생성한 MAC와 N-1계층째의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 제3 MAC 생성 함수 처리부에 입력하여 MAC를 도출시키며, 또한, 도출된 MAC와 m계층째(m은 N-2 이하 1 이상의 양의 정수)의 통신 장치의 추출된 개별 식별자에 대응하는 비밀키를 상기 제3 MAC 생성 함수 처리부에 입력하고, 귀납적으로 MAC를 도출시킴으로써, N-1계층째로부터 1계층째까지의 각 통신 장치에 대응하는 MAC를 생성하도록 제어하고,
    상기 제1 비교부는, 상기 제2 수신부에 의해 수신된 상기 중계 장치가 생성한 MAC와, 상기 제3 MAC 생성 함수 처리부에 의해 생성된 1계층째의 통신 장치에 대응하는 MAC를 비교하는, 데이터 전송 시스템.
  13. 미리 정해진 비밀키인 수신처 장치키를 기억하는 비밀키 기억부와,
    전송 경로상의 각 계층의 통신 장치의 개별 식별자를, 비밀키의 배포 대상인 통신 장치의 계층화 식별자로부터 추출하는 식별자 추출부와,
    소정의 의사 랜덤 함수에 의한 연산을 행함으로써 비밀키를 도출하는 의사 랜덤 함수 처리부와,
    상기 수신처 장치키와, 1계층째의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여 비밀키를 도출시키며, 또한, 도출된 비밀키와 k계층째(k는 2 이상 N 이하의 양의 정수이고, N은 추출된 개별 식별자의 수)의 통신 장치의 추출된 개별 식별자를 상기 의사 랜덤 함수 처리부에 입력하여, 귀납적으로 비밀키를 도출시킴으로써, 비밀키의 배포 대상인 N계층째의 통신 장치의 비밀키를 생성하도록 제어하는 의사 랜덤 함수 처리 제어부
    를 갖고,
    상기 계층화 식별자는, 통신 장치의 각각에 유일하게 관련지어지는 식별자이며, 해당 계층화 식별자에 관련지어지는 통신 장치의 개별 식별자와, 해당 통신 장치로부터의 미리 정해진 데이터 전송 경로상의 각 통신 장치의 개별 식별자를 조합하여 구성되는 식별자인, 키 생성 장치.
KR1020180098521A 2017-08-28 2018-08-23 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치 KR20190024729A (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017163283A JP2019041321A (ja) 2017-08-28 2017-08-28 データ受信装置、データ伝送システム、及び鍵生成装置
JPJP-P-2017-163283 2017-08-28

Publications (1)

Publication Number Publication Date
KR20190024729A true KR20190024729A (ko) 2019-03-08

Family

ID=63311863

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180098521A KR20190024729A (ko) 2017-08-28 2018-08-23 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치

Country Status (5)

Country Link
US (1) US10931447B2 (ko)
EP (1) EP3451574B1 (ko)
JP (1) JP2019041321A (ko)
KR (1) KR20190024729A (ko)
CN (1) CN109428715B (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
SG10201606061PA (en) * 2016-07-22 2018-02-27 Huawei Int Pte Ltd A method for unified network and service authentication based on id-based cryptography
US11075753B2 (en) * 2018-07-11 2021-07-27 Akeyless Security LTD. System and method for cryptographic key fragments management
CN109861796B (zh) * 2019-03-05 2021-12-21 生迪智慧科技有限公司 通信连接方法、客户端、云端及可读存储介质
US11542201B2 (en) 2019-03-07 2023-01-03 Tosoh Corporation Zirconia layered body
CN111050397B (zh) * 2020-03-12 2020-06-26 深圳中科爱讯科技有限公司 对使用伪mac策略移动终端的定位方法
CN112533200B (zh) * 2020-11-23 2021-10-08 广州技象科技有限公司 基于系统变更的数据跳传链路管理方法及装置
JP7355263B1 (ja) 2023-05-17 2023-10-03 株式会社Ihi 品質保証システム及び品質保証方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016181815A (ja) 2015-03-24 2016-10-13 沖電気工業株式会社 通信装置、通信システム及び通信プログラム
WO2017010057A1 (ja) 2015-07-10 2017-01-19 パナソニックIpマネジメント株式会社 マルチホップ通信システム、通信端末、マルチホップ通信方法、およびプログラム

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7401217B2 (en) 2003-08-12 2008-07-15 Mitsubishi Electric Research Laboratories, Inc. Secure routing protocol for an ad hoc network using one-way/one-time hash functions
US8695089B2 (en) * 2007-03-30 2014-04-08 International Business Machines Corporation Method and system for resilient packet traceback in wireless mesh and sensor networks
CN101296482B (zh) * 2007-04-28 2012-12-12 华为技术有限公司 实现消息认证的方法、基站、中继站及中继通信系统
US20130163762A1 (en) * 2010-09-13 2013-06-27 Nec Corporation Relay node device authentication mechanism
US8971851B2 (en) * 2012-06-28 2015-03-03 Certicom Corp. Key agreement for wireless communication
US20160352733A1 (en) * 2015-05-27 2016-12-01 Rubicon Labs, Inc. Distributed and hierarchical device activation mechanisms
WO2016199507A1 (ja) * 2015-06-09 2016-12-15 日本電信電話株式会社 鍵交換方法、鍵交換システム、鍵配送装置、通信装置、およびプログラム
CN105933896B (zh) * 2016-06-30 2019-05-24 重庆邮电大学 基于密钥表的无线传感器网络密钥管理方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016181815A (ja) 2015-03-24 2016-10-13 沖電気工業株式会社 通信装置、通信システム及び通信プログラム
WO2017010057A1 (ja) 2015-07-10 2017-01-19 パナソニックIpマネジメント株式会社 マルチホップ通信システム、通信端末、マルチホップ通信方法、およびプログラム

Also Published As

Publication number Publication date
EP3451574B1 (en) 2021-03-10
EP3451574A1 (en) 2019-03-06
JP2019041321A (ja) 2019-03-14
CN109428715B (zh) 2023-04-25
CN109428715A (zh) 2019-03-05
US20190068368A1 (en) 2019-02-28
US10931447B2 (en) 2021-02-23

Similar Documents

Publication Publication Date Title
CN111740828B (zh) 一种密钥生成方法以及装置、设备、加解密方法
KR20190024729A (ko) 데이터 수신 장치, 데이터 전송 시스템, 및 키 생성 장치
KR102477070B1 (ko) 데이터 변환 시스템 및 방법
US9166790B2 (en) Commission information generator for making processes on communication performed by another computer
CN103339958A (zh) 密钥传输协议
US20190140819A1 (en) System and method for mekle puzzles symeteric key establishment and generation of lamport merkle signatures
CN112740615B (zh) 多方计算的密钥管理
CN111614621B (zh) 物联网通信方法和系统
US20180375667A1 (en) Apparatus and method for certificate enrollment
JP2020530726A (ja) サプライチェーン資産管理を保護するアプリケーションを有する遠隔サーバへのnfcタグ認証
CN106953725B (zh) 用于非对称的密钥导出的方法和系统
CN104854814A (zh) 密钥共享网络设备及其配置
CN105024807A (zh) 数据处理方法及系统
CN106941404A (zh) 密钥保护方法及装置
KR20160020866A (ko) 폐쇄형 네트워크에서 암복호화 서비스 제공 시스템 및 방법
EP3213457A1 (en) Key splitting
CN115632777B (zh) 数据处理方法及电子设备
CN111245611B (zh) 基于秘密共享和可穿戴设备的抗量子计算身份认证方法及系统
CN113472734B (zh) 一种身份认证方法及装置
CN116155483A (zh) 区块链签名机安全设计方法及签名机
CN114745114A (zh) 基于口令派生的密钥协商方法、装置、设备及介质
KR101472507B1 (ko) 위탁 연산 방법
KR20150135717A (ko) 모바일 멀티홉 네트워크에서 비밀키를 공유하는 장치 및 방법
CN116881949B (zh) 一种基于区块链的数据处理方法及系统
WO2004105310A1 (ja) 暗号化装置、復号化装置、暗号化方法、復号化方法、暗号化プログラムおよび復号化プログラム