KR20170056018A - 보안 공유 키 공유 시스템들 및 방법들 - Google Patents

보안 공유 키 공유 시스템들 및 방법들 Download PDF

Info

Publication number
KR20170056018A
KR20170056018A KR1020177012112A KR20177012112A KR20170056018A KR 20170056018 A KR20170056018 A KR 20170056018A KR 1020177012112 A KR1020177012112 A KR 1020177012112A KR 20177012112 A KR20177012112 A KR 20177012112A KR 20170056018 A KR20170056018 A KR 20170056018A
Authority
KR
South Korea
Prior art keywords
shared key
unique identifier
party
trusted
signature
Prior art date
Application number
KR1020177012112A
Other languages
English (en)
Other versions
KR101830589B1 (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 KR20170056018A publication Critical patent/KR20170056018A/ko
Application granted granted Critical
Publication of KR101830589B1 publication Critical patent/KR101830589B1/ko

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/062Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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
    • 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/006Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • 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/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • 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/0841Key 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 Diffie-Hellman or related key agreement protocols
    • H04L9/0844Key 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 Diffie-Hellman or related key agreement protocols with user authentication or key authentication, e.g. ElGamal, MTI, MQV-Menezes-Qu-Vanstone protocol or Diffie-Hellman protocols using implicitly-certified keys
    • 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/321Cryptographic 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 involving a third party or a trusted authority
    • 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/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/3247Cryptographic 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 involving digital signatures
    • 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/3247Cryptographic 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 involving digital signatures
    • H04L9/3249Cryptographic 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 involving digital signatures using RSA or related signature schemes, e.g. Rabin scheme

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Computing Systems (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Power Engineering (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Storage Device Security (AREA)

Abstract

디바이스들로 공유 키를 안전하게 통신하기 위해 사용되는 시스템들 및 방법들. 일 실시예는 공유 키를 제 1 디바이스(32) 및 제 2 디바이스(34)로 안전하게 통신하는 방법을 설명하되, 상기 방법은 상기 제 1 디바이스를 이용하여, 키 제너레이터(36)로부터 상기 제 1 디바이스(32)와 관련된 공유 키 및 고유 식별자 페어링을 수신하는 단계(52); 신뢰된 제 3 당사자(38)를 이용하여, 상기 키 제너레이터(36)로부터 상기 공유 키 및 고유 식별자 페어링을 수신하는 단계(54); 상기 제 1 디바이스(32)를 이용하여, 상기 고유 식별자 및 상기 공유 키를 이용하여 시그니처(signature)를 생성하는 단계(80); 상기 제 1 디바이스(32)를 이용하여, 상기 시그니처 및 상기 고유 식별자를 상기 신뢰된 제 3 당사자(38)로 송신하는 단계(82); 상기 신뢰된 제 3 당사자(38)를 이용하여, 상기 시그니처에 기초하여 상기 고유 식별자를 검증하는 단계(86);상기 신뢰된 제 3 당사자(38)를 이용하여, 상기 고유 식별자가 검증된 때 상기 공유 키를 결정하는 단계; 및 신뢰된 제 3 당사자(38)를 이용하여, 상기 공유 키를 제 2 디바이스(34)로 송신하는 단계(88)로서, 상기 제 1 디바이스(32) 및 상기 제 2 디바이스(34)가 상기 공유 키를 이용하여 통신 데이터를 인코딩 및 디코딩함으로써 안전하게 통신하는 것을 가능하게 하는, 상기 송신하는 단계를 포함한다.

Description

보안 공유 키 공유 시스템들 및 방법들{SECURE SHARED KEY SHARING SYSTEM AND METHODS}
본 발명은 전반적으로 공유 암호 키의 보안 통신에 관한 것으로, 보다 상세하게는, 보안 채널에 의해 연결되지 않은 디바이스들간 공유 암호 키의 통신에 관한 것이다.
일반적으로, 디바이스들은 서로 안전하게 통신하기 위해서 공유 암호 키들을 활용할 수 있다. 예를 들어, 제 1 디바이스는 데이터에 사인 (예를 들어, 인코딩)하기 위해 공유 키를 활용할 수 있고 사인된 데이터를 제 2 디바이스로 송신할 수 있다. 제 2 디바이스는 그런 다음 수신된 데이터를 검증하기 (예를 들어, 디코딩)하기 위해 공유 키를 활용할 수 있다. 이 방식에서, 인코딩된 데이터를 인터셉트하는 외부 당사자는 공유 키 없이는 데이터를 디코딩할 수 없을 것이다. 따라서, 공유 키의 사용으로 통신을 안전하게 하는 것은 통신 디바이스들 각각이 공유 키를 알고 있다는 것을 전제로 한다.
다시 말해서, 공유 키는 데이터를 인코딩 및 디코딩하기 위해 공유 키를 사용하기 전에 각각의 디바이스들에 안전하게 통신될 수 있다. 흔히 공유 키를 안전하게 통신하기 위한 방법은 광대한 수학적 계산들을 활용할 수 있다. 예를 들어, 디바이스들간에 공유 키를 통신하기 위해 디피-헬만(Diffie-Hellman) 접근법을 활용하는 것은 디바이스들이 평범하지 않은 컴퓨터 프로세싱을 필요로 할 수 있는 모듈식 산술(modular arithmetic)을 수행하는 것을 포함할 수 있다. 그러나, 일부 디바이스들, 예컨대 메모리 디바이스는 제한된 프로세싱 파워를 가질 수 있다.
따라서, 예를 들어, 심지어 제한된 프로세싱 파워를 갖는 디바이스들로도 공유 키의 통신을 가능하게 함으로써 공유 키의 보안 통신을 개선하는 것이 유익할 것이다.
도 1은 일 실시예에 따른, 컴퓨팅 시스템의 블럭도를 예시한다;
도 2 는 일 실시예에 따른 공유 키를 통신하기 위해 사용되는 디바이스들의 블럭 다이어그램을 예시한다;
도 3 은 일 실시예에 따른 공유 키(shared key)를 통신하기 위해 도 2의 디바이스들을 준비하기 위한 프로세스 플로우를 예시한다;
도 4 는 일 실시예에 따른 도 2의 디바이스들간에 데이터 흐름도를 예시한다; 및
도 5 는 일 실시예에 따른 도 2의 디바이스들간에 공유키를 안전하게 통신하기 위한 프로세스 플로우를 예시한다.
상기에서 설명된 것 처럼, 공유 암호 키들은 보안 (예를 들어, 인코딩된 및/또는 사인된) 통신을 가능하게 하기 위해 디바이스들에 의해 흔히 사용된다. 보다 구체적으로, 디바이스들은 송신 데이터를 사인 (예를 들어, 인코딩)하기 위해 그리고 수신된 데이터를 검증 (예를 들어, 디코딩)하기 위해 공유 키를 활용할 수 있다. 예를 들어, 제 1 디바이스는 공유 키를 이용하여 데이터에 암호 해시를 수행함으로써 데이터를 사인할 수 있고 해시 결과와 함께 사인된 데이터를 제 2 디바이스로 송신할 수 있다. 제 2 디바이스는 그런다음 결과들을 비교하고 공유 키를 이용하여 암호 해시를 수행함으로써 수신된 데이터를 검증할 수 있다. 이와 같이, 통신의 어느 한쪽 단에 디바이스들은 공유 키를 활용할 수 있다. 다시 말해서, 공유 키는 통신 디바이스들의 각각에 안전하게 통신될 수 있다.
이해될 수 있는 것처럼, 공유 키는 송신 데이터를 안전하게 하는 기저(basis)이기 때문에, 외부 당사자들이 공유 키를 획득하지 않는 것이 중요하다. 이와 같이, 공유 키는 외부 당사자가 공유 키를 결정하지 않고 디바이스들에 안전하게 통신되어야 한다. 디바이스들에 공유 키의 보안 송신을 가능하게 하기 위해 다양한 방법들 사용될 수 있다. 이런 방법들은 디피-헬만 키 교환, RSA( Ron Rivest, Adi Shamir 및 Leonard Adleman) 시스템 접근법, 또는 다른 공개 키 인프라스트럭처 접근법을 포함할 수 있다. 그러나, 이들 방법들은 계산적으로 복잡할 수 있고, 이는 상당한 프로세싱 파워를 사용한다.
예를 들어, 디피-헬만 키 교환을 활용하기 위해서, 제 1 및 제 2 디바이스는 먼저 소수(prime modulus), 예컨대 17, 및 소수의 원시근(primitive root), 예컨대 3을 결정할 수 있다. 그런다음, 제 1 및 제 2 디바이스들은 비밀 정수(secret integer)를 각각 선택할 수 있다. 예를 들어, 제 1 디바이스는 15를 선택할 수 있고 제 2 디바이스 는 13을 선택할 수 있다. 그것들의 비밀 정수들을 이용하여, 제 1 및 제 2 디바이스들은 각각 원시근을 그것의 개별 비밀 정수 제곱할 수 있고 소수를 이용하여 모듈러스 연산(modulus operation)을 수행한다. 예를 들어, 제 1 디바이스는 315 mod 17을 계산할 수 있고, 이는 6과 같고, 제 2 디바이스는 313 mod 17을 계산할 수 있고, 이는 12과 같다. 계산된 결과는 그런 다음 다른 디바이스로 송신된다. 각각의 수신 디바이스는 그런 다음 수신된 결과를 그것의 개별 비밀 정수 제곱 할 수 있고 소수를 이용하여 모듈러스 연산을 수행한다. 예를 들어, 제 1 디바이스는 1215 mod 17을 계산할 수 있고, 이는 10과 같고, 제 2 디바이스는 613 mod 17을 계산할 수 있고, 이는 또한 10과 같다. 이런 식으로, 제 1 및 제 2 디바이스 둘 모두는 공유 키, 예를 들어, 10을 결정할 수 있다.
이와 같이, 제 1 및 제 2 디바이스들 둘 모두는 전형적으로 모듈식 산술을 빠르게 및 효율적으로 수행하기 위한 프로세싱 컴포넌트들을 포함한다. 보다 구체적으로, 프로세싱 컴포넌트들은 다수의 지수의 및 모듈러스 연산 계산들을 수행한다. 추가적으로, 보안을 증가시키기 위해, 사용되는 숫자들의 사이즈가 예를 들어, 수백 디지트(digit)들까지 증가될 수 있다. 다시 말해서, 현실 세계 상황에서, 지수 및 모듈러스 연산 계산들은 상기에서 제시된 예보다 훨씬 더 복잡할 수 있다.
그러나, 데이터를 안전하게 하기 위해 공유 키를 활용하기를 원하는 일부 디바이스들은 그것들의 프로세싱 성능들을 제한시킬 수 있다. 하나의 이런 예가 부트 컴퓨팅 시스템을 위해 사용되는 비휘발성 부트 디바이스(nonvolatile boot device)일 수 있다. 일반적으로, 비휘발성 부트 디바이스는 제한된 연산들을 수행하고 제한된 프로세싱 성능들을 갖는 프로세싱 컴포넌트를 포함할 수 있다. 예를 들어, 프로세싱 컴포넌트는 단지 정수 산술 및 로직 연산들을 수행하는 산술 로직 유닛 (ALU : arithmetic logic unit)일 수 있다 .
비록 이런 디바이스들의 프로세싱 성능들을 증가시키는 것이 가능할 수 있지만, 비용은 엄두도 못 낼 정도일 수 있다. 다시 말해서, 비휘발성 부트 디바이스의 프로세싱 성능들을 증가시키지 않고서 컴퓨팅 시스템과 공유 키의 보안 통신을 가능하게 하는 것이 유익할 것이다.
따라서, 본 발명은 최소 프로세싱 요건들로 공유 키의 보안 통신을 가능하게 하는 기술들을 설명한다. 예를 들어, 일부 실시예들은 통신을 안전하게 하기 위해 공유 대칭 키(shared symmetric key)를 활용할 수 있고, 이는 공개 키 인프라스트럭처 (PKI : public key infrastructure) 기술들보다 계산적으로 덜 복잡할 수 있다. 보다 구체적으로, 공유 대칭 키 접근법은 PKI 기술, 예컨대 모듈식 산술에 사용되는 보다 광대한 컴퓨터의 계산들에 비교하여 주로 조합 로컬(combinatorial local)을 이용하여 구현될 수 있다.
추가적으로, 일부 실시예들은 신뢰된(trusted) 제 3 자, 예컨대 서버의 통하여 공유 키를 안전하게 통신할 수 있다. 보다 구체적으로, 키 제너레이터(key generator)는 제 1 디바이스를 위한 고유 식별자 및 공유 키 페어링 (shared key pairing)을 생성할 수 있다. 페어링은 제 1 디바이스에, 예를 들어 제조동안에, 그리고 신뢰된 제 3 당사자에 저장될 수 있다. 제 2 디바이스로 공유 키를 통신하기 위해, 제 1 디바이스는 생성된 공유 키 및 넌스 (예를 들어, 랜덤 또는 의사 랜덤 넘버(pseudo-random number))를 이용하여 생성될 수 있는 시그니처(signature) 및 그것의 고유 식별자를, 신뢰된 제 3 당사자에 송신할 수 있다. 신뢰된 제 3 당사자는 그런 다음 대응하는 공유 키를 검색하고 시그니처를 검증하기 위해 고유 식별자를 사용할 수 있다. 만약 시그니처가 검증되면, 신뢰된 제 3 당사자는 고유 식별자에 기초하여 그것을 룩 업(look up) 한 보안 키가 제 1 디바이스상에 저장된 보안 키와 동일하다는 것을 보장할 수 있다. 이와 같이, 신뢰된 제 3 당사자는 제 1 디바이스와 제 2 디바이스 사이에 통신 채널상에 공유 키를 노출시키지 않고 보안 채널을 통하여 공유 키를 제 2 디바이스로 통신할 수 있다. 이어서, 제 1 및 제 2 디바이스들은 안전하게 공유 키를 이용하여 통신할 수 있다.
따라서, 이하에 보다 상세하게 설명될 것처럼, 심지어 기존 보안 채널이 디바이스들간에 존재하지 않을 때라도 공유 키는 디바이스들과 안전하게 공유될 수 있다. 다시 말해서, 보안 채널을 통하여 신뢰된 제 3 당사자와 미리 공유될 수 있는 고유 식별자 및 공유 키 페어링에 다른 당사자가 액세스하지 않는 한 단지 시그니처 및 고유 식별자를 수신한 다른 당사자는 공유 키를 결정할 수 없다. 추가적으로, 이하에 보다 상세하게 설명될 것처럼, 공유 키는 제 1 디바이스에 의해 수행된 최소 계산으로 제 2 디바이스와 안정하게 공유될 수 있다. 보다 구체적으로, 제 1 디바이스에 의한 프로세싱은 단지 공유 키 및 넌스를 이용하여, 예를 들어, 고유 식별자에 암호 해시 연산(cryptographic hash operation)을 수행함으로써 시그니처를 생성하는 것을 포함할 수 있다.
상기에서 설명된 것 처럼, 본 출원에서 설명된 기술들은 컴퓨팅 시스템내 비휘발성 부트 디바이스에 대하여 특별히 유용할 수 있다. 예시를 돕기 위해서, 비휘발성 부트 디바이스 (12)를 갖는 컴퓨팅 시스템 (10)의 실시예가 도 1에 설명된다. 컴퓨팅 시스템(10)은 컴퓨터, 페이저, 셀룰러 전화, 전자 수첩(personal organizer), 제어 회로 등과 같은, 다양한 유형들 중 임의의 것일 수 있다. 도 1 에 도시된 다양한 기능 블럭들은 하드웨어 엘리먼트들 (회로부를 포함하여), 소프트웨어 엘리먼트들 (컴퓨터 판독가능 매체상에 저장된 컴퓨터 코드를 포함) 또는 둘의 조합 하드웨어 및 소프트웨어 엘리먼트들을 포함할 수 있다. 추가로 도 1 은 단지 특정 구현예의 일 예이고 컴퓨팅 시스템 (10)에 제시될 수 있는 컴포넌트들의 유형들을 예시하도록 의도된다는 것이 것에 유의하여야 한다.
도시된 바와 같이, 컴퓨팅 시스템 (10)은 중앙 프로세서 (14) 및 메모리 (16)를 포함한다. 보다 구체적으로, 중앙 프로세서 (14)는 지금 설명되는 기술들에 다양한 연산들을 수행하기 위해 메모리 (16)에 저장된 명령들을 실행할 수 있다. 이와 같이, 중앙 프로세서 (14)는 하나 이상의 범용 마이크로프로세서들, 하나 이상의 애플리케이션 특정 프로세서들 (ASIC들), 하나 이상의 필드 프로그램 가능한 로직 어레이들 (FPGA들), 또는 그것의 임의 조합을 포함할 수 있다. 추가적으로, 메모리 (16)는 중앙 프로세서 (14)에 의해 실행 가능한 명령들 및/또는 중앙 프로세서 (14)에 의해 프로세스되는 데이터를 저장하는 유형의(tangible), 비-일시적, 컴퓨터 판독가능 매체일 수 있다. 일부 실시예들에서, 메모리 (16)는 휘발성 메모리, 예컨대 랜덤 액세스 메모리 (RAM), 및/또는 비-휘발성 메모리, 예컨대 판독 전용 메모리 (ROM), 플래시 메모리, 강유전체 RAM (F-RAM), 하드 디스크들, 플로피 디스크들, 자기 테이프, 광 디스크, 또는 그것의 임의 조합을 포함할 수 있다.
추가적으로, 중앙 프로세서 (14)는 다양한 기능들을 수행하기 위해 컴퓨팅 시스템 (10)내 다른 컴포넌트들을 활용할 수 있다. 한가지 기능은 유저와의 정보 통신을 포함할 수 있고, 이는 정보를 유저에게 제공하는 것 그리고 유저로부터 제어 명령어들을 수신하는 것을 포함할 수 있다. 예를 들어, 중앙 프로세서 (14)는 스피커들 (18)에 오디오 데이터를 제공할 수 있고 사운드로서 오디오 데이터를 유저에게 통신하도록 스피커들 (18)에 명령할 수 있다. 추가적으로, 중앙 프로세서 (14)는 디스플레이 (20)에 비디오 데이터를 제공할 수 있고 정보를 유저에 제시하는 그래픽 유저 인터페이스를 디스플레이 하도록 디스플레이 (20)에 명령할 수 있다. 더욱이, 정보 수신을 가능하게 하기 위해, 중앙 프로세서 (14)는 하나 이상의 입력 디바이스들 (22)을 통하여 유저로부터 제어 명령어들을 수신할 수 있다. 일부 실시예들에서, 입력 디바이스 (22)는 버튼들, 스위치들, 키보드, 라이트 펜, 마우스, 디지타이저 및 스타일러스, 음성 인식 시스템, 터치 감응 디스플레이, 또는 그것의 임의 조합을 포함할 수 있다.
추가적으로, 정보는 통신 인터페이스 (24)를 통하여 외부 디바이스들과 통신될 수 있다. 보다 구체적으로, 통신 인터페이스 (24)는 컴퓨팅 시스템 (10)을 네트워크, 예컨대 퍼스널 영역 네트워크 (예를 들어, 블루투스 네트워크), 로컬 영역 네트워크 (예를 들어, 802.11x Wi-Fi 네트워크), 및/또는 와이드 영역 네트워크 (예를 들어, 3G 셀룰러 네트워크)에 연결하는 것을 가능하게 할 수 있다. 추가적으로, 통신 인터페이스 (24)는 예를 들어, 직렬 케이블들을 통하여 컴퓨팅 시스템 (10)을 외부 디바이스들에 직접 연결하는 것을 가능하게 할 수 있다.
상기-설명된 기능들 뿐만 아니라 다른것 들을 초기화하기 위해서, 부트 디바이스 (12)에 저장된 스타트업 루틴 명령들이 실행될 수 있다. 도시된 바와 같이, 부트 디바이스 (12)는 마이크로컨트롤러 (26) 및 스타트업 루틴 명령들을 저장하는 하나 이상의 비-휘발성 메모리, 예컨대 부트 블럭 (28)을 포함한다. 따라서, 컴퓨팅 시스템 (10)에 파워 공급시에, 스타트업 루틴 명령들이 중앙 프로세서 (14)가 명령들을 실행할 수 있도록 부트 블럭 (28)로부터 검색될 수 있다. 보다 구체적으로, 스타트업 루틴은 컴퓨팅 시스템 (10)을 적절히 기능하도록 하기 위한 토대(foundation)을 수립할 수 있다. 예를 들어, 일부 실시예들에서, 중앙 프로세서 (14)가 스타트 업 루틴 명령을 실행할 때, 말웨어 에러-감지(malware error-detection)는 메모리 (16)에 저장된 악성의, 결함이 있거나, 또는 그렇지 않으면, 손상된 코드의 존재를 감지하도록 수행될 수 있다.
따라서, 부트 디바이스 (12)로부터 중앙 프로세서 (14)로 스타트업 루틴 명령들의 보안 통신을 보장하는 것이 중요하다. 한가지 방법이 공유 키의 사용일 수 있다. 보다 구체적으로, 부트 디바이스 (12)는 공유 키를 이용하여 스타트업 루틴 명령들을 사인(sign) (예를 들어, 인코딩)할 수 있고 사인된 명령들을 중앙 프로세서 (14)에 통신할 수 있다. 중앙 프로세서 (14)는 그런 다음 공유 키를 이용하여 사인된 명령들을 검증할 수 있고 스타트업 루틴 명령들을 실행할 수 있다. 다시 말해서, 공유 키를 활용하기 위해서, 공유 키는 부트 디바이스 (12) 및 중앙 프로세서 (14) 둘 모두와 안전하게 공유될 수 있다.
상기에서 설명된 것 처럼, 공유 키를 공유하기 위한 다양한 계산적으로 고도화 방법들이 이용될 수 있다. 따라서, 이런 방법들을 활용하기 위해서, 중앙 프로세서 (14) 및 마이크로컨트롤러 (26)의 프로세싱 파워는 효율적으로 계산들을 수행하기에 충분하여야 한다. 예를 들어, 마이크로컨트롤러 (26)는 모듈식 산술을 효율적으로 수행하도록 요구될 수 있다. 그러나, 다른 연산들, 예컨대 데이터를 인코딩/디코딩을 수행하기 위해 마이크로컨트롤러 (26)에 의해 활용될 수 있는 프로세싱 파워는 계산적으로 고도화 계산들, 예컨대 모듈식 산술을 수행하기 위해 사용되는 것보다 더 작을 수 있다.
따라서, 상이한 중앙 프로세서 (14)에 연결될 때만 또는, 기껏해야, 컴퓨팅 디바이스 (10)의 각각의 파워 공급시에만 공유 키가 공유될 수 있기 때문에, 본 출원에서 설명된 기술들은 계산적으로 고도화하는 계산들을 활용하지 않고 그리고 비보안 통신 채널에 걸친 공유 키 노출 없이 부트 디바이스 (12) 및 중앙 프로세서 (14)와 공유 키를 안전하게 공유하는 것을 가능하게 한다. 이와 같이, 마이크로컨트롤러 (26)의 프로세싱 성능들이 축소될 수 있고, 따라서, 부트 디바이스 (12)의 제조 경비들이 또한 축소될 수 있다. 다시 말해서, 본 출원에서 설명된 기술들은 심지어 한 당사자 (예를 들어, 디바이스)가 프로세싱 파워에 의해 제한될 때에도 공유 키를 안전하게 통신되게 하는 것을 가능하게 할 수 있다.
그러나, 본 출원에서 설명된 기술들은 프로세싱 파워 제한된 디바이스들로 제한되지 않는다. 다시 말해서, 기술들은 공유 키를 안전하게 통신하기 위해 임의의 디바이스들에 의해 이용될 수 있다. 예시를 돕기 위해서, 공유 키 공유 시스템 (30)의 블럭 다이어그램이 도 2에 설명된다. 도시된 실시예에서, 공유 키 공유 시스템 (30)은 디바이스 A (32) (예를 들어, 부트 디바이스 (12)) 및 디바이스 B (34) (예를 들어, 중앙 프로세서 (14))간에 보안 통신을 가능하게 할 수 있다. 다시 말해서, 공유 키 공유 시스템 (30)은 공유 키를 디바이스 A (32) 및 디바이스 B (34)와 안전하게 통신할 수 있다.
공유 키를 통신하는 것을 가능하게 하기 위해, 키 공유 시스템 (30)은 키 제너레이터(key generator) (36) 및 신뢰된 제 3 당사자 (trusted third party)(38)를 포함한다. 일부 실시예들에서, 키 제너레이터 (36)는 보안 설비에서 고유 식별자 및 공유 키 페어링을 생성할 수 있다. 따라서, 도시된 바와 같이, 키 제너레이터 (36)는 키 제너레이터 (36)의 기능들을 가능하게 하기 위해 하나 이상의 프로세싱 컴포넌트들 (40) 및 메모리 (42)를 포함할 수 있다. 일부 실시예들에서, 고유 식별자는 디바이스 A (32)를 고유하게 식별하는 식별자, 예컨대 매체 접근 제어 (MAC : media access control) 어드레스일 수 있다. 추가적으로, 공유 키는 통신 데이터를 안전하게 위해 사용되는 암호 키 (예를 들어, 대칭 키 또는 개인 키)일 수 있다.
일부 실시예들에서, 키 제너레이터 (36)는 디바이스 A (32)를 제조하는 제조 설비의 일부일 수 있다. 예시를 돕기 위해서, 디바이스 A (32)가 제조될 때, 제조자는 고유 식별자 및 공유 키 페어링을 생성하기 위해 키 제너레이터 (36)를 활용할 수 있고 디바이스 A (32)에 페어링을 저장할 수 있다. 예를 들어, 페어링은 디바이스 A의 비-휘발성 메모리로, 예컨대 중앙 프로세서 (14) 또는 다른 엔티티로 노출되거나 또는 그것들에 의해 직접 액세스 가능하지 않은 부트 블럭 (28)의 부분에 정적으로(statically) 프로그래밍될 수 있다. 추가적으로, 페어링이 얼마 동안 보안 설비에 저장되기 때문에, 원치않는 침입의 가능성이 최소화된다. 이와 같이, 고유 식별자 및 공유 키 페어링은 디바이스 A (32)로 안전하게 통신될 수 있다. 따라서, 도시된 바와 같이, 키 제너레이터 (36)는 제 1 보안 통신 채널 (33)를 통하여 디바이스 A (32)에 통신가능하게 결합된다.
디바이스 A (32)에 대한 페어링을 생성하는 것에 추가하여, 키 제너레이터 (36)는 각각의 복수개의 디바이스들에 대하여, 예를 들어, 제조된 각각의 디바이스에 대하여 고유 식별자 및 공유 키 페어링들을 생성할 수 있다. 생성된 페어링들은 그런 다음 신뢰된 제 3 당사자 (38)로 안전하게 통신될 수 있다.
일반적으로, 신뢰된 제 3 당사자 (38)는 키 제너레이터 (36)와 안전하게 통신하고 그리고 복수개의 고유 식별자 및 공유 키 페어링들을 안전하게 저장하는 것이 가능한 데이터베이스일 수 있다. 예를 들어, 신뢰된 제 3 당사자 (38)는 클라우드에 위치된 원격 서버 일 수 있다. 따라서, 도시된 바와 같이, 신뢰된 제 3 당사자 (38)는 키 제너레이터 (36)와 보안 통신을 가능하게 하는 하나 이상의 프로세싱 컴포넌트들 (44) 및 수신된 페어링들을 저장하는 메모리 (46)를 포함할 수 있다.
키 제너레이터 (36)와 신뢰된 제 3 당사자 (38)사이에 통신을 안전하게 하기 위해 임의의 적절한 수단들이 이용될 수 있다. 예를 들어, 프로세싱 컴포넌트들 (40 및 44)은 키 제너레이터 (36)와 신뢰된 제 3 당사자 (38)간에 통신되는 데이터를 암호화하기에 충분한 프로세싱 성능을 함유할 수 있다. 일부 실시예들에서, 암호화는 데이터 암호화 표준 (DES:Data Encryption Standard), 어드밴스드 암호화 표준 (AES:Advanced Encryption Standard), 국제 데이터 암호화 알고리즘 (IDEA:International Data Encryption Algorithm), RSA 암호화, 디피-헬만 암호화, 또는 다른 PKI 암호화 기술을 활용할 수 있다. 따라서, 도시된 바와 같이, 키 제너레이터 (36)는 제 2 보안 통신 채널 (35)을 통하여 신뢰된 제 3 당사자 (38)에 통신가능하게 결합된다. 다시 말해서, 키 제너레이터 (36) 및 신뢰된 제 3 당사자 (38)는 제 2 통신 채널 (35)을 안전하기 위해 암호화 기술들을 활용하기에 충분한 프로세싱 파워를 포함할 수 있다. 일부 실시예들에서, 제 2 보안 통신 채널 (35)은 네트워크, 예컨대 와이드 영역 네트워크 (WAN) 또는 로컬 영역 네트워크 (LAN)를 활용할 수 있다.
이하에 보다 상세하게 설명될 것처럼, 디바이스 B (34)와 공유 키를 공유하기 위한 프로세스가 초기화될 때, 디바이스 A (32)는 신뢰된 제 3 당사자 (38)에 시그니처 및 그것의 고유 식별자를 통신할 수 있다. 일부 실시예들에서, 디바이스 A (32)는 신뢰된 제 3 당사자 (38)와 직접 통신할 수 있다. 따라서, 도시된 바와 같이, 디바이스 A (32) 및 신뢰된 제 3 당사자 (38)는 보안되지 않을 수 있는 제 3 통신 채널 (37)을 통하여 통신가능하게 결합될 수 있다. 일부 실시예들에서, 제 3 통신 채널 (37)은 네트워크, 예컨대 와이드 영역 네트워크 (WAN) 또는 로컬 영역 네트워크 (LAN)를 활용할 수 있다.
다른 실시예들에서, 디바이스 A (32)는 디바이스 B (34)를 통하여 신뢰된 제 3 당사자 (38)와 통신할 수 있다. 다시 말해서, 디바이스 A (32)는 시그니처 및 그것의 고유 식별자를 디바이스 B (34)에 통신할 수 있고 디바이스 B (34)는 고유 식별자 및 시그니처를 신뢰된 제 3 당사자 (38)에 중계할 수 있다. 따라서, 도시된 바와 같이, 디바이스 A (32)는 처음에 보안되지 않을 수 있는 제 4 통신 채널 (39)을 통하여 디바이스 B (34)에 통신가능하게 결합된다. 예를 들어, 컴퓨팅 디바이스 (10)에서, 제 4 통신 채널 (39)는 중앙 프로세서 (14) 및 부트 디바이스 (12)를 통신 가능하게 결합하는 데이터 버스일 수 있다.
이하에 보다 상세하게 설명될 것처럼, 일단 신뢰된 제 3 당사자 (38)가 고유 식별자 및 시그니처를 수신한 후에, 신뢰된 제 3 당사자 (38)는 대응하는 공유 키를 검색하기 위해 수신된 고유 식별자를 사용할 수 있고 수신된 시그니처를 검증하기 위해 공유 키를 사용할 수 있다. 만약 시그니처가 검증되면, 신뢰된 제 3 당사자 (38)는 디바이스 B (34)에 공유 키를 안전하게 통신할 수 있다.
일반적으로, 신뢰된 제 3 당사자 (38)와 디바이스 B (34)사이에 통신을 안전하게 하기 위한 임의의 적절한 수단들이 이용될 수 있다. 예를 들어, 프로세싱 컴포넌트들 (40) 및 중앙 프로세서 (14)는 신뢰된 제 3 당사자 (38)와 디바이스 B간에 통신되는 데이터를 암호화하기에 충분한 프로세싱 성능을 함유할 수 있다. 일부 실시예들에서, 암호화는 데이터 암호화 표준 (DES:Data Encryption Standard), 어드밴스드 암호화 표준 (AES:Advanced Encryption Standard), 국제 데이터 암호화 알고리즘 (IDEA:International Data Encryption Algorithm), RSA 암호화, 디피-헬만 암호화, 또는 다른 PKI 암호화 기술을 활용할 수 있다. 따라서, 도시된 바와 같이, 신뢰된 제 3 당사자 (38)는 제 5 보안 통신 채널 (41)을 통하여 디바이스 B (34)에 통신가능하게 결합된다. 다시 말해서, 신뢰된 제 3 당사자 (38) 및 디바이스 B (34)는 제 5 통신 채널 (41)을 안전하기 위해 암호화 기술들을 활용하기에 충분한 프로세싱 파워를 포함할 수 있다. 예를 들어, 컴퓨팅 디바이스 (10)내, 중앙 프로세서 (14) 및 신뢰된 제 3 당사자는 통신 인터페이스 (24)에 연결된 네트워크를 통하여 통신가능하게 결합될 수 있다. 다시 말해서, 제 5 보안 통신 채널 (41)은 네트워크, 예컨대 와이드 영역 네트워크 (WAN) 또는 로컬 영역 네트워크 (LAN)를 활용할 수 있다.
일단 디바이스 B (34)가 공유 키를 수신한 후에, 디바이스 A (32) 및 디바이스 B (34)는 공유 키를 이용하여 통신 데이터를 인코딩 및 디코딩함으로써 안전하게 통신할 수 있다. 이 방식에서, 디바이스 A (32)와 디바이스 B 사이에 통신되는 데이터는 통신 데이터의 무결성(integrity)를 검증하는 공유 키를 이용하여 데이터를 사인함으로써 보안된다. 상기에서 설명된 것 처럼, 본 출원에서 설명된 기술들을 활용하여 공유 키를 안전하게 통신하는 것은 키 공유 시스템 (30)을 셋 업 함으로써 가능하게 될 수 있다.
공유 시스템 (30)을 셋 업하기 위한 프로세스 (48) 의 일 실시예가 도 3에 설명된다. 일반적으로, 프로세스 (48)는 고유 식별자 및 공유 키 페어링을 생성하는 단계 (프로세스 블럭 (50)), 페어링을 제 1 디바이스에 저장하는 단계 (프로세스 블럭 (52)), 신뢰된 제 3 당사자에 저장을 위해 페어링을 송신하는 단계 (프로세스 블럭 (54)), 및 공유 키를 제 2 디바이스로 안전하게 통신하는 단계 (프로세스 블럭 (56))를 포함한다. 일부 실시예들에서, 프로세스 (48)는 하나 이상의 유형의, 비-일시적, 컴퓨터 판독가능 매체, 예컨대 메모리 (16, 42, 또는 46) 및/또는 부트 블럭 (28) (단독으로 또는 조합하여)에 저장된 명령들에 의해 구현될 수 있고, 하나 이상의 프로세싱 컴포넌트들, 예컨대 중앙 프로세서 (14), 프로세싱 컴포넌트 (40) 또는 (44), 및/또는 마이크로컨트롤러 (26) (단독으로 또는 조합하여)에 의해 실행될 수 있다.
따라서, 일부 실시예들에서, 키 제너레이터 (36)는 디바이스 A (32)에 대한 고유 식별자 및 공유 키 페어링을 생성할 수 있다(프로세스 블럭 (50)). 보다 구체적으로, 키 제너레이터 (36)는 디바이스 A (32)를 고유하게 식별하는 고유 식별자를 생성할 수 있다. 예를 들어, 일부 실시예들에서, 고유 식별자는 일련 번호(serial number) 및 제조자 식별자를 포함하는 MAC 어드레스일 수 있다. 보다 구체적으로, 일련 번호는 디바이스 A (32)가 제조되었던 순서를 나타낼 수 있다. 다시 말해서, 일련 번호를 생성하기 위해서, 키 제너레이터 (36)는 하나의 디바이스에 일련 번호를 할당할 수 있고, 일련 번호 증분, 증분된 일련 번호를 다음 디바이스에 할당할 수 있다. 다른 실시예들에서, 고유 식별자는 예를 들어, 규칙들의 세트(set)들에 기초하여 무작위적으로 생성될 수 있다.
추가적으로, 키 제너레이터 (36)는 디바이스 A (32)와 통신 데이터를 인코딩/디코딩 하기 위해 사용될 수 있는 공유 키를 생성할 수 있다. 보다 구체적으로, 공유 키는 디바이스 A와 디바이스 B 간에 통신을 위해 사용되는 인코딩/디코딩의 유형에 기초하여 생성될 수 있다. 일부 실시예들에서, 공유 키는 특정 규칙들의 세트들에 기초하여 생성될 수 있다. 다른 실시예들에서, 공유 키는 숫자들, 문자들, 및/또는 심벌들을 포함할 수 있는 상당히 무작위적으로 생성된 스트링일 수 있다. 공유 키의 사이즈는 키의 모든 가능성들을 추측할 수 있는 외부 당사자의 가능성을 줄이도록 선택될 수 있다. 따라서, 공유 키는 80 비트들, 128 비트들, 256 비트들, 또는 그 이상 일 수 있다.
일부 실시예들에서, 고유 식별자 및 공유 키는 별개로 생성될 수 있다. 예를 들어, 디바이스 A (32)에 대한 고유 식별자는 공유 키를 생성하기 위한 알고리즘에 액세스를 가지지 않을 수 있는 제조자에 의해 생성될 수 있다. 이어서, 별개의 보안 설비가 공유 키를 생성할 수 있다. 다시 말해서, 키 제너레이터 (36)는 제조 설비 및/또는 추가의 보안 설비들을 포함할 수 있다.
일단 디바이스 A (32)에 대한 고유 식별자 및 공유 키가 생성된 후에, 키 제너레이터 (36)는 메모리 (42)에 페어링을 저장할 수 있다. 보다 구체적으로, 고유 식별자 및 공유 키는 그것들이 서로에 대응하도록 저장될 수 있다. 다시 말해서, 대응하는 공유 키는 고유 식별자에 기초하여 결정될 수 있다. 일부 실시예들에서, 공유 키가 단일 고유 식별자와 페어링될 때, 고유 식별자는 공유 키에 기초하여 결정될 수 있다.
추가적으로, 제너레이터 (36)는 디바이스 A (32)에 고유 식별자 및 공유 키 페어링을 저장할 수 있다(프로세스 블럭 (52)). 일부 실시예들에서, 페어링은 제조 동안에 디바이스 A (32)에 저장될 수 있다. 예를 들어, 부트 디바이스 (12)의 제조동안에, 키 제너레이터 (36)는 다른 엔티티에 노출되지 않거나 다른 엔티티에 의해 직접 액세스 가능하지 않은 비-휘발성 메모리로, 예컨대 중앙 프로세서 (14)에 의해 직접 액세스 가능하지 않은 부트 블럭 (28)의 부분으로 페어링을 정적으로 프로그램 할 수 있다. 일부 실시예들에서, 페어링은 예를 들어, 이산 회로를 이용하여 디바이스 A (32)로 하드웨어 내장(hardwired)될 수 있다. 다른 실시예들에서, 디바이스 A (32)에 대한 고유 식별자는 공유 키에 액세스를 가지지 않을 수 있는 제조자에 의해 생성될 수 있다. 이어서, 공유 키를 생성한 별개의 보안 설비, 예를 들어 보안 설비는 공유 키를 디바이스 A에 저장할 수 있고 그것은 고유 식별자와 페어링된다. 다시 말해서, 페어링은 부트 디바이스 (12)의 제조가 완료된 후에 부트 디바이스 (12)에 저장될 수 있다.
보다 구체적으로, 페어링은 보안 설비, 예컨대 제조 설비에서 디바이스 A (32)에 저장될 수 있다. 일부 실시예들에서, 보안 설비는 페어링에 대한 액세스를 얻는 외부 당사자의 가능성을 줄이기 위해 침입 방지 시스템을 포함할 수 있다. 이와 같이, 특별히 페어링이 제조 동안에 저장된 때, 공유 키는 안전하게 디바이스 A (32)로 통신될 수 있다.
더욱이, 고유 식별자 및 공유 키 페어링은 신뢰된 제 3 당사자 (38)에 저장될 수 있다 (프로세스 블럭 (54)). 보다 구체적으로, 페어링(pairing)은 예를 들어, 네트워크를 통하여 키 제너레이터 (36)로부터 신뢰된 제 3 당사자 (38)로 통신될 수 있다. 이런 실시예들에서, 페어링은 전송 데이터를 암호화함으로써 안전하게 통신될 수 있다. 보다 구체적으로, 키 제너레이터 (36)는 페어링을 암호화할 수 있고 암호화된 페어링을 신뢰된 제 3 당사자 (38)에 통신할 수 있다. 신뢰된 제 3 당사자 (38)는 그런 다음 수신된 페어링을 복호화할 수 있고 복호화된 페어링을 메모리 (46)에 저장할 수 있다.
그런다음, 공유 키는 신뢰된 제 3 당사자 (38)로부터 디바이스 B (34)로 안전하게 통신될 수 있다 (프로세스 블럭 (56)). 일부 실시예들에서, 공유 키는 예를 들어, 네트워크를 통하여 신뢰된 제 3 당사자 (38)로부터 디바이스 B (34)로 통신될 수 있다. 이런 실시예들에서, 공유 키는 전송 데이터를 암호화함으로써 안전하게 통신될 수 있다. 보다 구체적으로, 신뢰된 제 3 당사자 (38)는 공유 키를 암호화할 수 있고 암호화된 키를 디바이스 B (34)로 통신할 수 있다. 디바이스 B (34)는 그런 다음 수신된 키를 복호화할 수 있고 복호화된 공유 키를, 예를 들어, 메모리 (16)에 저장할 수 있다.
그러나, 공유 키는 디바이스 A (32)와 디바이스 B (34)사이에 통신을 안전하기 위해 사용되기 때문에, 공유 키는 비밀로 유지되어야만 한다. 따라서, 디바이스 B (34)에 공유 키를 통신하기 위한 프로세스는 공유 키를 얻는 외부 당사자의 가능성을 줄이기 위해 보안 조치들을 포함할 수 있다. 예시를 돕기 위해서, 공유 키를 통신하기 위해 사용되는 신뢰된 제 3 당사자 (38), 디바이스 B (34), 및 디바이스 A (32)간에 데이터 플로우가 도 4 에 설명된다.
도시된 실시예에서, 디바이스 B (34)는 디바이스 A (32)에 그것의 고유 식별자 및 시그니처에 대한 요청을 송신할 수 있다 (화살표 (58)). 예를 들어, 컴퓨팅 시스템 (10)내, 중앙 프로세서 (14)는 데이터 버스를 통하여 부트 디바이스 (12)에 요청을 통신할 수 있다. 일부 실시예들에서, 메시지의 독창성을 제공하기 위해 사용되는 랜덤 또는 의사 랜덤 넘버일 수 있는 넌스(nonce)를 이용하여 시그니처가 생성될 수 있다. 따라서, 요청과 함께, 디바이스 B (34)는 넌스를 송신할 수 있다. 다른 실시예들에서, 신뢰된 제 3 당사자 (38)는 디바이스 A (32)로 넌스와 함께 요청을 송신할 수 있다(미도시).
요청에 응답하여, 디바이스 A (32)는 시그니처를 생성할 수 있다 (화살표 (60)). 일부 실시예들에서, 시그니처는 넌스 및 공유 키를 이용하여 고유 식별자상에 암호 해시를 수행함으로써 생성될 수 있다. 예를 들어, 컴퓨팅 시스템 (10)내, 마이크로컨트롤러 (26)는 시그니처를 생성할 수 있다.
그런다음, 디바이스 A (32)는 디바이스 B(34)로 시그니처와 함께 고유 식별자를 송신할 수 있고 (화살표 (62)) 그리고 디바이스 B (34)는 신뢰된 제 3 당사자로 고유 식별자 및 시그니처를 중계할 수 있다 (화살표 (64)). 예를 들어, 컴퓨팅 시스템 (10)내, 부트 디바이스 (12)는 데이터 버스를 통하여 중앙 프로세서 (14)로 고유 식별자 및 시그니처를 통신할 수 있다. 중앙 프로세서 (14)는 통신 인터페이스 (24)에 연결된 네트워크를 통하여 신뢰된 제 3 당사자로 고유 식별자 및 시그니처를 중계할 수 있다. 다른 실시예들에서, 디바이스 A (32)는 신뢰된 제 3 당사자 (38)로 직접 고유 식별자 및 시그니처를 통신할 수 있다 (미도시).
수신된 고유 식별자를 이용하여, 신뢰된 제 3 당사자 (38)는 디바이스 A (32)에 저장된 공유 키를 검색할 수 있다 (화살표 (66)). 추가적으로, 공유 키를 이용하여, 신뢰된 제 3 당사자 (38)는 수신된 시그니처를 검증할 수 있다 (화살표 (68)). 예를 들어, 상기에서 설명된 컴퓨팅 시스템 (10)을 참고로 하여, 신뢰된 제 3 당사자 (38)는 메모리 (46)로부터 공유 키를 검색할 수 있고 프로세싱 컴포넌트 (44)를 이용하여 시그니처를 검증할 수 있다. 보다 구체적으로, 신뢰된 제 3 당사자 (38)는 시그니처를 생성하기 위해 디바이스 A (32)에 의해 수행된 것처럼 공유 키를 이용하여 고유 식별자상에 동일한 연산(예를 들어, 암호 해시)을 수행함으로써 시그니처를 검증할 수 있다.
만약 신뢰된 제 3 당사자 (38)에 의해 결정된 시그니처가 디바이스 A (32)로부터 수신된 시그니처에 일치하면, 신뢰된 제 3 당사자 (38)는 공유 키를 디바이스 B (34)로 통신할 수 있다 (화살표 (70)). 예를 들어, 상기에서 설명된 컴퓨팅 시스템 (10)를 참고로 하여, 신뢰된 제 3 당사자 (38)는 통신 인터페이스 (24)에 연결된 네트워크를 통하여 중앙 프로세서 (14) 로 공유 키를 통신할 수 있다.
일단 공유 키가 수신된 후에, 디바이스 B (34)는 공유 키를 저장할 수 있다 (화살표 (72)). 예를 들어, 컴퓨팅 시스템 (10)내, 중앙 프로세서 (14)는 메모리 (16)에 공유 키를 저장할 수 있다. 상기에서 설명된 것 처럼, 공유 키의 노출을 제한하는 것이 중요하다. 이와 같이, 중앙 프로세서 (14)는 공유 키가 다른 엔티티에 노출되거나 또는 다른 엔티티에 의해 직접 액세스 가능하지 않도록 공유 키를 저장할 수 있다. 다시 말해서, 공유 키는 디바이스 B에 안전하게 저장될 수 있다.
이 방식에서, 디바이스 A (32)와 디바이스 B (34)사이에 후속 통신 (화살표 (74))은 송신 데이터의 무결성을 검증하기 위해 공유 키를 이용함으로써, 예를 들어, 공유 키로 송신 데이터를 사인함으로써 안전하게 될 수 있다. 예를 들어, 컴퓨팅 시스템 (10)내, 중앙 프로세서 (14)는 메모리 (16)로부터 공유 키를 검색할 수 있고 공유 키를 이용하여 암호 해시를 수행함으로써 데이터를 사인 (예를 들어, 인코딩)할 수 있다. 사인된 데이터 수신시, 마이크로컨트롤러 (26)는 비-휘발성 메모리 (예를 들어, 부트 블럭 (28))로부터 공유 키를 검색할 수 있고 공유 키를 이용하여 동일한 암호 해시를 수행함으로써 데이터를 검증(예를 들어, 디코딩)할 수 있다. 보다 구체적으로, 결과들은 중앙 프로세서 (14)에 의해 수행된 암호 해시의 결과들을 마이크로컨트롤러 (26)에 의해 수행된 암호 해시의 결과들과 비교함으로써 검증될 수 있다. 그리고, 결과들이 일치할 때, 마이크로컨트롤러 (26)는 중앙 프로세서 (14)의 아이덴티티를 및/또는 데이터가 변경되지 않았다는 것을 검증할 수 있다. 마이크로컨트롤러 (26)는 그런 다음 프로세스 검증된 데이터를 프로세스할 수 있다.
유사하게, 마이크로컨트롤러 (26)는 비-휘발성 메모리 (예를 들어, 부트 블럭 (28))로부터 공유 키를 검색할 수 있고 공유 키를 이용하여 암호 해시를 수행함으로써 데이터를 사인(예를 들어, 인코딩)할 수 있다. 사인된 데이터 수신시, 중앙 프로세서 (14)는 메모리 (16)로부터 공유 키를 검색할 수 있고 공유 키를 이용하여 동일한 암호 해시를 수행함으로써 데이터를 검증 (예를 들어, 디코딩)할 수 있다. 보다 구체적으로, 결과들은 중앙 프로세서 (14)에 의해 수행된 암호 해시의 결과들을 마이크로컨트롤러 (26)에 의해 수행된 암호 해시의 결과들과 비교함으로써 검증될 수 있다. 그리고, 결과들이 일치할 때, 중앙 프로세서 (14)는 마이크로컨트롤러 (26)의 아이덴티티 및/또는 that 데이터가 변경되지 않았다는 것을 검증할 수 있다. 중앙 프로세서 (14)는 그런 다음 검증된 데이터를 프로세스할 수 있다. 예를 들어 Twofish, Serpent, AES, Blowfish, CAST5, RC4, 3DES, 및 IDEA와 같은 다양한 인코딩/디코딩 기술들이 이용될 수 있다. 이와 같이, 데이터의 통신은 다른 엔티티들에 공유 키를 노출시키기 않고 안전하게 될 수 있다.
데이터 플로우를 구현하기 위한 프로세스 (76)의 일 실시예가 도 5에 설명된다. 전반적으로 프로세스 (76)는 제 1 디바이스로부터 고유 식별자 및 시그니처를 요청하는 단계 (프로세스 블럭 (78)), 시그니처를 생성하는 단계 (프로세스 블럭 (80)), 고유 식별자 및 시그니처를 신뢰된 제 3 당사자로 발송하는 단계 (프로세스 블럭 (82)), 공유 키를 검색하는 단계 (프로세스 블럭 (84)), 시그니처를 검증하는 단계 (프로세스 블럭 (86)), 공유 키를 제 2 디바이스로 발송하는 단계 (프로세스 블럭 (88)), 및 공유 키를 이용하여 통신을 디코딩/인코딩하는 단계 (프로세스 블럭 (90))를 포함한다. 일부 실시예들에서, 프로세스 (76)는 하나 이상의 유형의, 비-일시적, 컴퓨터 판독가능 매체, 예컨대 메모리 (16, 42, 또는 46) 및/또는 부트 블럭 (28)에 저장된 명령들에 의해 구현될 수 있고, 하나 이상의 프로세싱 컴포넌트들, 예컨대 중앙 프로세서 (14), 프로세싱 컴포넌트 (40) 또는 (44), 및/또는 마이크로컨트롤러 (26)에 의해 실행될 수 있다.
데이터 플로우에서 처럼, 프로세스 (76)는 디바이스 B (34)에 의해 초기화될 수 있다. 예를 들어, 디바이스 A (32)와의 통신이 희망되지만 그러나 디바이스 B (34)가 공유 키를 알지 못한다고 디바이스 B (34)가 결정한 때 디바이스 B (34)는 프로세스 (76)를 초기화할 수 있다. 다른 실시예들에서, 프로세스 (76)는 신뢰된 제 3 당사자 (38) 및/또는 디바이스 B (34)에 의해 초기화될 수 있다. 예를 들어, 디바이스 B (34) 또는 신뢰된 제 3 당사자 (38)가 디바이스 B (34) 및 디바이스 A (32)가 처음 통신가능하게 결합된 것으로 결정한 때, 예를 들어, 컴퓨팅 시스템 (10)의 시운전시에 또는 컴퓨팅 시스템 (10)의 각각에 파워 공급시에 프로세스 (76)는 초기화될 수 있다.
일단 프로세스 (76)가 초기화된 후에, 고유 식별자 및 시그니처에 대한 요청이 디바이스 A (32)로 통신된다 (프로세스 블럭 (78)). 데이터 플로우에서처럼, 예를 들어, 디바이스 B (34)가 프로세스 (76)를 초기화한 때 요청은 디바이스 B (34)로부터 디바이스 A (32)로 통신될 수 있다. 다른 실시예들에서, 신뢰된 제 3 당사자 (38)가 프로세스 (76)를 초기화한 때, 요청은 신뢰된 제 3 당사자 (38)로부터 디바이스 B (34)로 통신될 수 있고 디바이스 B (34)는 요청을 디바이스 A (32)로 중계할 수 있다. 추가적으로 또는 대안적으로, 요청은 신뢰된 제 3 당사자 (38)로부터 디바이스 A (32)로 직접 통신될 수 있다.
상기에서 설명된 것 처럼, 시그니처는 고유 식별자, 공유 키, 및/또는 넌스를 이용하여 생성될 수 있다. 따라서, 시그니처를 생성하기 위해 사용된 넌스는 요청과 함께 디바이스 A (32)로 통신될 수 있다 (프로세스 블럭 (92)). 일반적으로, 넌스는 랜덤 또는 의사 랜덤 넘버일 수 있다. 일부 실시예들에서, 넌스(nonce)는 신뢰된 제 3 당사자 (38)가 디바이스 A (32)에 의해 리턴된 시그니처를 검증하기 위해 넌스를 활용할 수 있도록 신뢰된 제 3 당사자 (38)에 의해 생성될 수 있다. 다른 실시예들에서, 넌스는 디바이스 B (34)에 의해 생성될 수 있고 디바이스들 A (32) 및 신뢰된 제 3 당사자 (38) 둘 모두에 통신될 수 있다.
요청 수신에 응답하여, 디바이스 A (32)는 시그니처를 생성할 수 있다 (프로세스 블럭 (80)). 보다 구체적으로, 디바이스 A (32)는 공유 키 및 수신된 넌스를 이용하여 시그니처를 생성할 수 있다. 일부 실시예들에서, 디바이스 A (32)는 키로서 공유 키 및 넌스를 이용하여 공유 키 및 넌스를 이용하여 고유 식별자에 암호 해시를 수행함으로써 시그니처를 생성할 수 있다. 암호 해시 함수의 출력 (예를 들어, 결과)는 시그니처이다. 추가적으로, 넌스는 랜덤 또는 의사 랜덤 넘버일 수 있기 때문에, 시그니처는 외부 당사자가 재생성하는 것이 어려울 수 있다.
디바이스 A (32)는 그런 다음 신뢰된 제 3 당사자 (38)에 생성된 시그니처 및 그것의 고유 식별자를 통신할 수 있다 (프로세스 블럭 (82)). 데이터 플로우에서 처럼, 시그니처 및 고유 식별자는 디바이스 A (32)로부터 디바이스 B (34)로 통신될 수 있고 디바이스 B (34)는 신뢰된 제 3 당사자 (38)로 시그니처 및 고유 식별자를 중계할 수 있다. 추가적으로 또는 대안적으로, 시그니처 및 고유 식별자는 디바이스 A (32)로부터 신뢰된 제 3 당사자 (38)로 직접 통신될 수 있다.
수신된 고유 식별자를 이용하여, 신뢰된 제 3 당사자 (38)는 디바이스 A (32)에 대한 대응하는 공유 키를 검색할 수 있다 (프로세스 블럭 (84)). 상기에서 설명된 것 처럼, 신뢰된 제 3 당사자 (38)는 예를 들어, 메모리 (46)에 다수의 디바이스들에 대한 고유 식별자 및 공유 키 페어링들을 저장할 수 있다. 따라서, 신뢰된 제 3 당사자 (38)는 수신된 고유 식별자와 대응하는 공유 키를 발견하기 위해 저장된 페어링들을 탐색할 수 있다.
신뢰된 제 3 당사자 (38)는 그런 다음 시그니처 디바이스 A (32)로부터 수신된 시그니처를 검증할 수 있다 (프로세스 블럭 (86)). 보다 구체적으로, 신뢰된 제 3 당사자 (38)는 공유 키 및 넌스를 갖기 때문에, 신뢰된 제 3 당사자 (38)는 시그니처를 생성하기 위해 디바이스 A (32)에 의해 사용된 동일한 연산을 수행할 수 있다. 예를 들어, 신뢰된 제 3 당사자 (38)는 키로서 공유 키 및 넌스를 이용하여 고유 식별자에 동일한 암호 해시를 수행할 수 있다. 암호 해시 함수의 출력은 그런 다음 수신된 시그니처와 비교될 수 있다. 만약 시그니처들이 일치하면, 신뢰된 제 3 당사자 (38)는 디바이스 A (32)가 공유 키를 실제로 알고 있다고 결정할 수 있다. 다시 말해서, 공유 키는 디바이스 A (32)에 고유하기 때문에, 신뢰된 제 3 당사자 (38)는 디바이스 A (32)의 아이덴티티(identity)를 검증하기 위해 시그니처를 사용할 수 있다.
반면에, 만약 시그니처들이 일치하지 않으면, 신뢰된 제 3 당사자 (38)는 외부 당사자가 디바이스 A (32)인 척 하는 것으로 결정할 수 있다. 다시 말해서, 신뢰된 제 3 당사자 (38)는 외부 당사자가 공유 키를 결정하려고 시도한 것으로 결정할 수 있다. 일부 실시예들에서, 이것은 컴퓨팅 시스템 (10)으로의 시도된 침입을 나타낼 수 있다. 이와 같이, 신뢰된 제 3 당사자 (38)는 추가로 공유 키를 검색하려는 시도를 차단할 수 있고 및/또는 가능한 침입의 운영자(operator)에게 통지할 수 있다.
만약 시그니처가 검증되면, 신뢰된 제 3 당사자 (38)는 디바이스 B (34)로 공유 키를 안전하게 통신할 수 있다(프로세스 블럭 (88)). 보다 구체적으로, 신뢰된 제 3 당사자 (38)는 공유 키를 암호화할 수 있고 암호화된 키를 디바이스 B (34)로 송신할 수 있다. 디바이스 B (34)는 그런 다음 공유 키를 복호화할 수 있고 공유 키를, 예를 들어, 메모리 (16)에 저장할 수 있다.
이어서, 디바이스 A (32) 및 디바이스 B (34)는 공유 키를 이용하여 데이터를 인코딩 및 디코딩함으로써 안전하게 통신할 수 있다 (프로세스 블럭 (90)). 일반적으로, 디바이스 A (32)는 공유 키를 이용하여 데이터를 사인 (예를 들어, 인코딩)할 수 있고 사인된 데이터를 디바이스 B (34)에 송신할 수 있다. 일부 실시예들에서, 디바이스 A (32)는 공유 키를 이용하여 데이터에 암호 해시를 수행함으로써 데이터를 사인할 수 있다. 디바이스 A (32)는 그런 다음 사인된(signed) 데이터를 디바이스 B로 송신할 수 있다. 일부 실시예들에서, 사인된 데이터는 디바이스 A (32)에 의해 수행된 암호 해시의 결과와 함께 데이터를 포함할 수 있다. 디바이스 B (34)는 그런 다음 수신된 데이터를 검증(예를 들어, 디코딩) 및 프로세스할 수 있다. 일부 실시예들에서, 디바이스 B (34)는 데이터에 동일한 암호 해시를 수행함으로써 그리고 디바이스 A (32)에 의해 수행된 암호 해시의 결과를 디바이스 B (34)에 의해 수행된 암호 해시의 결과와 비교함으로써 사인된 데이터를 검증할 수 있다. 보다 구체적으로, 결과들이 일치할 때, 디바이스 B (34)는 디바이스 A (32)의 아이덴티티 및/또는 데이터가 변형되지 않았다 (예를 들어, 조작되지 않았다)는 것을 검증할 수 있다. 추가적으로, 일부 실시예들에서, 동일한 암호 해시 함수이 송신 데이터를 사인/검증하기 위해 그리고 시그니처를 생성하기 위해 디바이스 A (32), 신뢰된 제 3 당사자 (38), 및 디바이스 B (34)에 의해 있을 수 있다.
이런 식으로, 디바이스 A (32) 및 디바이스 B (34)는 보안 통신 채널 (예를 들어, 통신 채널 (39))을 셋 업 할 수 있다. 따라서, 컴퓨팅 시스템 (10)내, 부트 디바이스 (12)는 중앙 프로세서 (14)로 스타트업 루틴 명령들을 안전하게 통신할 수 있다. 보다 구체적으로, 마이크로컨트롤러 (26)는 공유 키를 이용하여 스타트업 루틴 명령들을 사인 (예를 들어, 인코딩)할 수 있고 인코딩된 명령들을 중앙 프로세서 (14)로 송신할 수 있다. 중앙 프로세서 (14)는 그런 다음 명령들을 검증할 수 있고 스타트업 명령들을 실행할 수 있다. 추가적으로, 공유 키가 중앙 프로세서 (14) 및 부트 디바이스 (12) 둘 모두에 안전하게 통신되기 때문에, 스타트업 루틴 명령들를 변경하는 외부 당사자의 위험은 최소화된다.
따라서, 본 발명의 기술적 효과들은 디바이스들로의 공유 키의 보안 통신을 가능하게 하는 것을 포함한다. 사실은, 본 기술들은 심지어 디바이스들 중 하나가 프로세싱 파워에서 제한되는 때에도 디바이스들로 공유 키가 안전하게 통신되는 것을 가능하게 한다.
본 발명은 다양한 수정들 및 대안 형태들에 영향을 받기 쉬울 수 있지만, 특정 실시예들은 도면들에서 예로서 도시되며 여기에 상세히 설명되었다. 그러나, 본 발명은 개시된 특정한 형태들에 제한되도록 의도되지 않는다는 것이 이해되어야 한다. 오히려, 본 발명은 다음의 첨부된 청구항들에 의해 정의된 바와 같이 본 발명의 사상 및 범위 내에 있는 모든 수정들, 등가물들, 및 대안들을 커버하기 위한 것이다.

Claims (32)

  1. 공유 키를 제 1 디바이스 및 제 2 디바이스로 안전하게 통신하는 방법에 있어서,
    상기 제 1 디바이스를 이용하여, 키 제너레이터(key generator)로부터 상기 제 1 디바이스와 관련된 공유 키 및 고유 식별자 페어링(unique identifier pairing)을 수신하는 단계;
    신뢰된 제 3 당사자를 이용하여, 상기 키 제너레이터로부터 상기 공유 키 및 고유 식별자 페어링을 수신하는 단계;
    상기 제 1 디바이스를 이용하여, 상기 고유 식별자 및 상기 공유 키를 이용하여 시그니처(signature)를 생성하는 단계;
    상기 제 1 디바이스를 이용하여, 상기 시그니처 및 상기 고유 식별자를 상기 신뢰된 제 3 당사자로 송신하는 단계;
    상기 신뢰된 제 3 당사자를 이용하여, 상기 시그니처에 기초하여 상기 고유 식별자를 검증하는 단계;
    상기 신뢰된 제 3 당사자를 이용하여, 상기 고유 식별자가 검증된 때 상기 공유 키를 결정하는 단계; 및
    상기 신뢰된 제 3 당사자를 이용하여, 상기 공유 키를 상기 제 2 디바이스로 송신하는 단계로서, 상기 제 1 디바이스 및 상기 제 2 디바이스가 상기 공유 키를 이용하여 통신 데이터를 인코딩 및 디코딩함으로써 안전하게 통신하는 것을 가능하게 하는, 상기 제 2 디바이스로 송신하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서, 상기 시그니처 및 상기 고유 식별자를 송신하는 단계는 상기 신뢰된 제 3 당사자 또는 상기 제 2 디바이스로부터 수신된 요청에 응답하여 상기 시그니처 및 상기 고유 식별자를 송신하는 단계를 포함하는, 방법.
  3. 청구항 2에 있어서, 상기 요청은 넌스(nonce)를 포함하고 상기 시그니처를 생성하는 단계는 상기 공유 키 및 상기 넌스를 이용하여 상기 고유 식별자에 암호 해시(cryptographic hash)를 수행하는 단계를 포함하는, 방법.
  4. 청구항 2에 있어서, 상기 신뢰된 제 3 당사자 또는 상기 제 2 디바이스가:
    상기 제 1 디바이스 및 상기 제 2 디바이스가 처음 통신가능하게 결합되거나;
    상기 제 2 디바이스가 파워 공급(power on)되거나;
    상기 제 2 디바이스가 상기 공유 키를 알지 못하거나; 또는 그것의 임의 조합이라고 결정한 때 송신하는 단계를 포함하는, 방법.
  5. 청구항 1에 있어서, 상기 제 1 디바이스는 부트 디바이스(boot device)를 포함하고 상기 제 2 디바이스는 중앙 프로세서를 포함하고, 상기 부트 디바이스 및 상기 중앙 프로세서가 데이터 버스를 통하여 통신가능하게 결합되고 상기 중앙 프로세서가 네트워크를 통하여 상기 신뢰된 제 3 당사자에 통신가능하게 결합되는, 방법.
  6. 청구항 5에 있어서,
    상기 부트 디바이스를 이용하여, 상기 공유 키를 이용하여 상기 스타트업 루틴 명령들을 인코딩함으로써 상기 부트 디바이스에 저장된 스타트업 루틴 명령들을 사인하는 단계(signing);
    상기 부트 디바이스를 이용하여, 상기 사인된 스타트업 루틴 명령들을 상기 중앙 프로세서로 송신하는 단계;
    상기 중앙 프로세서를 이용하여, 상기 공유 키를 이용하여 상기 사인된 스타트업 루틴 명령들을 디코딩함으로써 상기 사인된 스타트업 루틴 명령들을 검증하는 단계; 및
    상기 중앙 프로세서를 이용하여, 컴퓨팅 시스템을 초기화하기 위해 상기 스타트업 루틴 명령들을 실행시키는 단계를 포함하는, 방법.
  7. 프로세서에 의해 실행 가능한 명령들을 저장하도록 구성된 유형의(tangible), 비-일시적, 컴퓨터 판독가능 매체로서, 상기 명령들은:
    신뢰된 제 3 당사자를 이용하여, 제 1 디바이스와 관련된 공유 키 및 고유 식별자 페어링을 저장하고;
    상기 신뢰된 제 3 당사자를 이용하여, 상기 공유 키를 이용하여 상기 제 1 디바이스로부터 수신된 사인된 고유 식별자에 적어도 부분적으로 기초하여 상기 제 1 디바이스의 아이덴티티(identity)를 검증하고, 상기 사인된(signed) 고유 식별자는 상기 고유 식별자 및 상기 공유 키를 이용하여 상기 제 1 디바이스에 의해 생성된 시그니처 및 상기 고유 식별자를 포함하고;
    상기 신뢰된 제 3 당사자를 이용하여, 상기 제 1 디바이스의 아이덴티티가 검증된 때 상기 고유 식별자에 적어도 부분적으로 기초하여 상기 공유 키를 결정하고, 상기 신뢰된 제 3 당사자는 상이한 디바이스들과 관련된 복수개의 고유 식별자 및 공유 키 페어링들을 저장하도록 구성되고;
    상기 공유 키를 상기 신뢰된 제 3 당사자로부터 제 2 디바이스로 송신하여 상기 제 1 디바이스 및 상기 제 2 디바이스가 상기 공유 키를 이용하여 통신 데이터를 인코딩 및 디코딩함으로써 안전하게 통신하는 것을 가능하게 하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  8. 청구항 7에 있어서, 넌스(nonce)를 생성하는 명령들 및 상기 사인된 고유 식별자를 요청하기 위해 상기 신뢰된 제 3 당사자로부터 상기 제 1 디바이스로 요청을 발송하는 명령들을 포함하고, 상기 요청은 상기 넌스를 포함하여 공유 키 및 상기 넌스를 이용하여 상기 고유 식별자에 제 1 암호 해시 연산을 수행함으로써 상기 제 1 디바이스가 상기 시그니처를 생성하는 것을 가능하게 하는, 컴퓨터 판독가능 매체.
  9. 청구항 8에 있어서, 상기 제 1 디바이스의 아이덴티티를 검증하는 명령들은 상기 고유 식별자, 상기 공유 키, 및 상기 넌스를 이용하여 상기 신뢰된 제 3 당사자에 의해 수행된 제 2 암호 해시 연산의 출력에 상기 시그니처를 비교하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  10. 청구항 7에 있어서, 상기 공유 키를 상기 제 2 디바이스로 송신하는 명령들은 공개 키 인프라스트럭처 암호화 기술을 이용하여 상기 공유 키를 암호화하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  11. 청구항 7에 있어서, 상기 공유 키를 결정하는 명령들은 상기 고유 식별자를 상기 복수개의 페어링들 중 하나와 일치시키는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  12. 제 1 디바이스 제조 방법에 있어서,
    키 제너레이터를 이용하여, 상기 제 1 디바이스를 고유하게 식별하는 고유 식별자를 생성하는 단계;
    상기 키 제너레이터를 이용하여, 송신 데이터를 인코딩하고 수신된 데이터를 디코딩하기 위해 상기 제 1 디바이스에 의해 사용되도록 구성된 공유 키를 생성하는 단계;
    상기 키 제너레이터를 이용하여, 상기 제 1 디바이스에 상기 고유 식별자 및 상기 공유 키를 저장하는 단계; 및
    상기 키 제너레이터로부터 신뢰된 제 3 당사자로 상기 고유 식별자 및 상기 공유 키를 송신하는 단계로서, 상기 신뢰된 제 3 당사자가:
    페어링(pairing)으로서 상기 고유 식별자 및 상기 공유 키를 저장하고; 및
    상기 제 1 디바이스 및 상기 제 2 디바이스가 상기 공유 키를 이용하여 데이터를 인코딩 및 디코딩함으로써 안전하게 통신하는 것을 가능하게 하기 위해 상기 공유 키를 제 2 디바이스로 송신하는 것을 가능하게 하는, 상기 송신하는 단계를 포함하는, 방법.
  13. 청구항 12에 있어서, 상기 고유 식별자 및 상기 공유 키를 상기 신뢰된 제 3 당사자에 송신하는 단계는 공개 키 인프라스트럭처 암호화 기술을 이용하여 상기 고유 식별자 및 상기 공유 키를 암호화하는 단계 및 네트워크를 통하여 상기 암호화된 고유 식별자 및 공유 키를 송신하는 단계를 포함하는, 방법.
  14. 청구항 12에 있어서, 상기 고유 식별자를 생성하는 단계는 매체 접근 제어 어드레스(media access control address)를 생성하는 단계를 포함하는, 방법.
  15. 청구항 12에 있어서, 상기 공유 키를 생성하는 단계는 대칭 키를 생성하는 단계를 포함하는, 방법.
  16. 청구항 12에 있어서, 상기 고유 식별자 및 상기 공유 키를 상기 제 1 디바이스에 저장하는 단계는 상기 공유 키가 다른 엔티티에 의해 액세스 가능하지 않도록 상기 제 1 디바이스의 제조 동안에 상기 제 1 디바이스내 메모리에 정적으로 프로그래밍하는 단계를 포함하는, 방법.
  17. 비-휘발성 부트 디바이스(non-volatile boot device)에 있어서,
    고유 식별자, 공유 키, 및 컴퓨팅 시스템을 초기화하기 위해 프로세서에 의해 실행 가능한 스타트업 루틴 명령들을 저장하도록 구성된 하나 이상의 비-휘발성 메모리 ; 및
    마이크로컨트롤러로서,
    상기 고유 식별자 및 시그니처를 신뢰된 제 3 당사자에 제공하기 위해 요청을 수신하고, 상기 요청은 넌스(nonce)를 포함하고;
    상기 고유 식별자, 공유 키, 및 상기 넌스를 이용하여 상기 시그니처를 생성하고; 및
    상기 시그니처 및 상기 고유 식별자를 신뢰된 제 3 당사자에 송신하고 상기 신뢰된 제 3 당사자가 상기 공유 키를 결정하고 상기 공유 키를 상기 프로세서로 통신하는 것을 가능하게 하여 상기 마이크로컨트롤러 및 상기 프로세서가 상기 공유 키를 이용하여 안전하게 통신하는 것을 가능하게 하도록 구성된, 상기 마이크로컨트롤러를 포함하는, 비-휘발성 부트 디바이스.
  18. 청구항 17에 있어서, 상기 마이크로컨트롤러는 :
    상기 공유 키를 이용하여 암호 해시를 수행함으로써 상기 스타트업 루틴 명령들을 사인하고; 및
    상기 사인된 스타트업 루틴을 상기 프로세서에 송신하도록 구성되어 상기 프로세서가 :
    상기 공유 키를 이용하여 상기 암호 해시를 수행함으로써 그리고 상기 마이크로컨트롤러에 의해 수행된 상기 암호 해시의 결과 및 상기 프로세서에 의해 수행된 상기 암호 해시의 결과를 비교함으로써 상기 스타트업 명령들을 검증하고; 및
    상기 스타트업 루틴 명령들이 검증된 때 상기 컴퓨팅 시스템을 초기화하기 위해 상기 스타트업 명령들을 실행시키는 것이 가능한, 비-휘발성 부트 디바이스.
  19. 청구항 17에 있어서, 상기 신뢰된 제 3 당사자는 상기 시그니처를 이용하여 상기 고유 식별자를 검증하고 상기 고유 식별자가 검증된 때 상기 프로세서로 상기 공유 키를 통신하도록 구성된, 비-휘발성 부트 디바이스.
  20. 청구항 17에 있어서, 상기 넌스는 랜덤 또는 의사 랜덤 넘버(pseudorandom number)인, 비-휘발성 부트 디바이스.
  21. 청구항 17에 있어서, 상기 마이크로컨트롤러는 데이터 버스를 통하여 상기 프로세서로부터 상기 요청을 수신하고 상기 데이터 버스를 통하여 상기 시그니처 및 상기 고유 식별자를 상기 프로세서로 송신하도록 구성되고, 상기 프로세서는 네트워크를 통하여 상기 시그니처 및 상기 고유 식별자를 상기 신뢰된 제 3 당사자로 송신하고 상기 공유 키를 상기 네트워크를 통하여 상기 신뢰된 제 3 당사자로부터 수신하도록 구성되는, 비-휘발성 부트 디바이스.
  22. 청구항 17에 있어서, 상기 하나 이상의 비-휘발성 메모리는 비-휘발성 부트 블럭을 포함하는, 비-휘발성 부트 디바이스.
  23. 프로세서에 의해 실행 가능한 명령들을 저장하도록 구성된 유형의(tangible), 비-일시적, 컴퓨터 판독가능 매체로서, 상기 명령들은:
    디바이스로부터 고유 식별자 및 시그니처를 요청하기 위해 상기 프로세서로부터 상기 디바이스로 요청을 송신하고, 상기 시그니처는 상기 디바이스에 저장된 공유 키에 적어도 부분적으로 기초하여 생성되고;
    상기 프로세서를 이용하여, 상기 디바이스로부터 상기 고유 식별자 및 상기 시그니처를 수신하고;
    상기 고유 식별자 및 상기 시그니처를 상기 프로세서로부터 신뢰된 제 3 당사자로 송신하여 상기 신뢰된 제 3 당사자가 상기 공유 키를 결정하는 것을 가능하게 하고;
    상기 프로세서를 이용하여, 상기 신뢰된 제 3 당사자로부터 상기 공유 키를 수신하고; 및
    상기 프로세서를 이용하여, 상기 공유 키를 이용하여 상기 디바이스로 송신되는 데이터를 인코딩하고 상기 디바이스로부터 수신된 데이터를 디코딩함으로써 상기 디바이스와 통신하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  24. 청구항 23에 있어서,
    상기 디바이스로부터 인코딩된 스타트업 루틴 명령들을 수신하고;
    상기 스타트업 루틴 명령들을 디코딩하고; 및
    상기 프로세서를 초기화하기 위해 상기 디코딩된 스타트업 루틴 명령들을 실행시키는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  25. 청구항 23에 있어서, 상기 요청을 송신하는 명령들은 상기 프로세서가 상기 디바이스에 처음에 결합된 때 상기 요청을 송신하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  26. 청구항 23에 있어서, 상기 신뢰된 제 3 당사자로부터 상기 요청을 수신하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  27. 청구항 23에 있어서,
    상기 프로세서를 이용하여, 넌스를 생성하고; 및
    상기 프로세서로부터 상기 디바이스 및 상기 신뢰된 제 3 당사자로 상기 넌스를 송신하는 명령들을 포함하는, 컴퓨터 판독가능 매체.
  28. 컴퓨팅 시스템에 있어서,
    제 2 디바이스에 통신가능하게 결합된 제 1 디바이스를 포함하되, 상기 제 1 디바이스는 공유 키를 이용하여 상기 제 2 디바이스와 안전하게 통신하도록 구성되고, 상기 제 1 디바이스는 :
    상기 제 1 디바이스와 관련된 고유 식별자 및 시그니처를 상기 제 2 디바이스에 통신가능하게 결합된 신뢰된 제 3 당사자로 송신함으로써 상기 제 2 디바이스가 상기 공유 키를 결정하는 것을 가능하게 하고;
    상기 제 2 디바이스가 상기 신뢰된 제 3 당사자로부터 상기 공유 키를 수신한 후에 상기 공유 키를 이용하여 제 1 암호 해시를 수행함으로써 데이터를 사인하고; 및
    상기 사인된 데이터를 상기 제 2 디바이스로 송신하여 상기 제 2 디바이스가 상기 공유 키를 이용하여 제 2 암호 해시를 수행하고 상기 제 1 암호 해시로부터의 결과를 상기 제 2 암호 해시로부터 결과와 비교함으로써 상기 데이터를 검증하는 것을 가능하게 하도록 구성된, 컴퓨팅 시스템.
  29. 청구항 28에 있어서, 상기 제 2 디바이스는 중앙 프로세서이고 상기 제 1 디바이스는 비-휘발성 부트 디바이스인, 컴퓨팅 시스템.
  30. 청구항 28에 있어서, 상기 제 1 디바이스는 상기 제 2 디바이스 또는 상기 신뢰된 제 3 당사자로부터 수신된 요청에 응답하여 상기 고유 식별자 및 상기 시그니처를 상기 신뢰된 제 3 당사자로 송신하여 상기 신뢰된 제 3 당사자가 상기 제 1 디바이스의 아이덴티티를 검증하고 및 상기 제 1 디바이스의 아이덴티티가 검증된 때 상기 공유 키를 상기 제 2 디바이스로 통신하는 것을 가능하게 하도록 구성된, 컴퓨팅 시스템.
  31. 청구항 28에 있어서, 상기 제 1 디바이스는 상기 고유 식별자에 상기 제 1 암호 해시를 수행함으로써 상기 시그니처를 생성하도록 구성되고, 상기 제 1 암호 해시는 상기 제 2 암호 해시와 동일한 연산인, 컴퓨팅 시스템.
  32. 청구항 28에 있어서, 상기 데이터는 스타트업 루틴 명령들을 포함하고, 상기 제 2 디바이스는 상기 스타트업 루틴 명령들이 검증된 후에 상기 컴퓨팅 시스템을 초기화하기 위해 상기 스타트업 루틴 명령들을 실행시키도록 구성된, 컴퓨팅 시스템.
KR1020177012112A 2014-10-06 2015-09-22 보안 공유 키 공유 시스템들 및 방법들 KR101830589B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/507,526 2014-10-06
US14/507,526 US9331989B2 (en) 2014-10-06 2014-10-06 Secure shared key sharing systems and methods
PCT/US2015/051436 WO2016057209A1 (en) 2014-10-06 2015-09-22 Secure shared key sharing systems and methods

Publications (2)

Publication Number Publication Date
KR20170056018A true KR20170056018A (ko) 2017-05-22
KR101830589B1 KR101830589B1 (ko) 2018-02-20

Family

ID=55633647

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020177012112A KR101830589B1 (ko) 2014-10-06 2015-09-22 보안 공유 키 공유 시스템들 및 방법들

Country Status (6)

Country Link
US (2) US9331989B2 (ko)
EP (1) EP3205046B1 (ko)
JP (1) JP6221014B1 (ko)
KR (1) KR101830589B1 (ko)
CN (2) CN106797317B (ko)
WO (1) WO2016057209A1 (ko)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230020239A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20230020241A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 업데이트 공유키 관리 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20230020240A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR102535124B1 (ko) * 2022-08-04 2023-05-26 (주)이씨스 복수의 ble 장치를 하나의 장치로 인식시키는 ble 장치 복제 시스템 및 방법

Families Citing this family (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8805844B2 (en) 2008-08-04 2014-08-12 Liveperson, Inc. Expert search
US10356098B2 (en) * 2013-02-19 2019-07-16 Barry Gold Systematic enhancement of contact information
US9906511B1 (en) * 2015-06-29 2018-02-27 Bar-Ilan University Secure impersonation detection
US9832174B2 (en) * 2015-08-11 2017-11-28 Netapp, Inc. Authentication for cluster peering
CN106470104B (zh) 2015-08-20 2020-02-07 阿里巴巴集团控股有限公司 用于生成共享密钥的方法、装置、终端设备及系统
US10432403B2 (en) * 2015-11-25 2019-10-01 Fenwal, Inc. Secure communication between infusion pump and server
US10262164B2 (en) 2016-01-15 2019-04-16 Blockchain Asics Llc Cryptographic ASIC including circuitry-encoded transformation function
US11170094B2 (en) * 2016-01-27 2021-11-09 Secret Double Octopus Ltd. System and method for securing a communication channel
GB2550905A (en) 2016-05-27 2017-12-06 Airbus Operations Ltd Secure communications
GB2551580A (en) * 2016-06-24 2017-12-27 Sony Corp Data communications
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10230700B2 (en) * 2016-08-09 2019-03-12 Lenovo (Singapore) Pte. Ltd. Transaction based message security
US10606864B2 (en) * 2016-08-16 2020-03-31 Quintessencelabs Pty Ltd. Fault-tolerant key management system
CN107801187B (zh) * 2016-08-31 2021-02-02 华为技术有限公司 加解密方法、装置及系统
US9722803B1 (en) 2016-09-12 2017-08-01 InfoSci, LLC Systems and methods for device authentication
US10419226B2 (en) 2016-09-12 2019-09-17 InfoSci, LLC Systems and methods for device authentication
CN107181589B (zh) * 2017-04-11 2020-09-22 北京奇艺世纪科技有限公司 一种堡垒机私钥管理方法及装置
US11463439B2 (en) 2017-04-21 2022-10-04 Qwerx Inc. Systems and methods for device authentication and protection of communication on a system on chip
CN107438005B (zh) * 2017-06-21 2020-01-14 深圳奥联信息安全技术有限公司 Sm9联合数字签名方法和装置
US10313133B2 (en) 2017-06-21 2019-06-04 Visa International Service Association Secure communications providing forward secrecy
US10819696B2 (en) 2017-07-13 2020-10-27 Microsoft Technology Licensing, Llc Key attestation statement generation providing device anonymity
JPWO2019026372A1 (ja) * 2017-08-04 2020-06-18 ソニー株式会社 情報処理装置、情報処理方法およびプログラム
DE102017118164A1 (de) * 2017-08-09 2019-02-14 Infineon Technologies Ag Kryptographische schaltung und datenverarbeitung
US10836400B2 (en) 2017-12-19 2020-11-17 Micron Technology, Inc. Implementing safety measures in applications
US11178133B2 (en) 2017-12-19 2021-11-16 Micron Technology, Inc. Secure vehicle control unit update
US10850684B2 (en) * 2017-12-19 2020-12-01 Micron Technology, Inc. Vehicle secure messages based on a vehicle private key
US10594666B2 (en) 2017-12-19 2020-03-17 Micron Technology, Inc. Secure message including a vehicle private key
US10981576B2 (en) 2017-12-27 2021-04-20 Micron Technology, Inc. Determination of reliability of vehicle control commands via memory test
US10836402B2 (en) 2017-12-27 2020-11-17 Micron Technology, Inc. Determination of reliability of vehicle control commands via redundancy
US10933882B2 (en) 2017-12-27 2021-03-02 Micron Technology, Inc. Determination of reliability of vehicle control commands using a voting mechanism
US10372943B1 (en) 2018-03-20 2019-08-06 Blockchain Asics Llc Cryptographic ASIC with combined transformation and one-way functions
US20190327092A1 (en) * 2018-04-23 2019-10-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Methods and systems for secure biometric authentication
US10256974B1 (en) 2018-04-25 2019-04-09 Blockchain Asics Llc Cryptographic ASIC for key hierarchy enforcement
US11601402B1 (en) * 2018-05-03 2023-03-07 Cyber Ip Holdings, Llc Secure communications to multiple devices and multiple parties using physical and virtual key storage
US11038698B2 (en) 2018-09-04 2021-06-15 International Business Machines Corporation Securing a path at a selected node
US11991273B2 (en) * 2018-09-04 2024-05-21 International Business Machines Corporation Storage device key management for encrypted host data
US11088829B2 (en) 2018-09-04 2021-08-10 International Business Machines Corporation Securing a path at a node
US11507175B2 (en) 2018-11-02 2022-11-22 Micron Technology, Inc. Data link between volatile memory and non-volatile memory
US10901862B2 (en) 2018-11-13 2021-01-26 Micron Technology, Inc. High-reliability non-volatile memory using a voting mechanism
CN109639682A (zh) * 2018-12-14 2019-04-16 深圳市青葡萄科技有限公司 文件分享方法
JP7107241B2 (ja) * 2019-02-12 2022-07-27 コニカミノルタ株式会社 鍵共有方法、鍵共有システム、エージェント端末
US11387983B2 (en) * 2019-03-25 2022-07-12 Micron Technology, Inc. Secure medical apparatus communication
CN110190950B (zh) * 2019-06-11 2021-04-27 飞天诚信科技股份有限公司 一种安全签名的实现方法及装置
KR20210097379A (ko) * 2020-01-30 2021-08-09 삼성전자주식회사 보안 장치, 전자 장치, 보안 부트 관리 시스템, 부트 이미지 생성 방법 및 부트 체인 실행 방법
US11652616B2 (en) 2020-02-26 2023-05-16 International Business Machines Corporation Initializing a local key manager for providing secure data transfer in a computing environment
US11184160B2 (en) 2020-02-26 2021-11-23 International Business Machines Corporation Channel key loading in a computing environment
US11546137B2 (en) 2020-02-26 2023-01-03 International Business Machines Corporation Generation of a request to initiate a secure data transfer in a computing environment
US11489821B2 (en) * 2020-02-26 2022-11-01 International Business Machines Corporation Processing a request to initiate a secure data transfer in a computing environment
US11502834B2 (en) 2020-02-26 2022-11-15 International Business Machines Corporation Refreshing keys in a computing environment that provides secure data transfer
US11770246B2 (en) * 2020-09-02 2023-09-26 Motorola Solutions, Inc. Securely transferring key materials between processors in a multi-processor device
CN112926978A (zh) * 2020-09-07 2021-06-08 陈建芸 基于区块链通信的支付信息处理方法及系统
KR20220052016A (ko) 2020-10-20 2022-04-27 삼성전자주식회사 스토리지 장치에서의 보안 동작을 위한 키 교환 방법 및 이를 이용한 접근 권한 이관 방법
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories
CN112584355A (zh) * 2020-12-13 2021-03-30 北京明朝万达科技股份有限公司 一种用于车辆间通信的密钥协同方法、系统和介质
US11968296B2 (en) * 2021-03-09 2024-04-23 Micron Technology, Inc. Utilization of a memory device for per-user encryption
CN113114627B (zh) * 2021-03-19 2023-01-31 京东科技信息技术有限公司 一种基于密钥交换的安全数据交互方法以及交互系统
CN114418830A (zh) * 2022-01-19 2022-04-29 百度在线网络技术(北京)有限公司 安全计算方法、装置、设备以及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5937063A (en) * 1996-09-30 1999-08-10 Intel Corporation Secure boot
JP4574994B2 (ja) * 2004-01-26 2010-11-04 東芝マイクロエレクトロニクス株式会社 メモリ外付けマイコン
US20070288761A1 (en) * 2006-06-09 2007-12-13 Dale Jason N System and method for booting a multiprocessor device based on selection of encryption keys to be provided to processors
CN100553193C (zh) * 2007-10-23 2009-10-21 西安西电捷通无线网络通信有限公司 一种基于可信第三方的实体双向鉴别方法及其系统
US8156322B2 (en) 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
CN101436930A (zh) * 2007-11-16 2009-05-20 华为技术有限公司 一种密钥分发的方法、系统和设备
CN101222328B (zh) * 2007-12-14 2010-11-03 西安西电捷通无线网络通信股份有限公司 一种实体双向鉴别方法
US8543799B2 (en) * 2008-05-02 2013-09-24 Microsoft Corporation Client authentication during network boot
US9559842B2 (en) 2008-09-30 2017-01-31 Hewlett Packard Enterprise Development Lp Trusted key management for virtualized platforms
US8214630B2 (en) * 2009-02-24 2012-07-03 General Instrument Corporation Method and apparatus for controlling enablement of JTAG interface
EP2228942B1 (en) 2009-03-13 2012-06-06 Sap Ag Securing communications sent by a first user to a second user
US8745365B2 (en) * 2009-08-06 2014-06-03 Imation Corp. Method and system for secure booting a computer by booting a first operating system from a secure peripheral device and launching a second operating system stored a secure area in the secure peripheral device on the first operating system
CN101667913B (zh) * 2009-09-18 2011-12-21 重庆邮电大学 基于对称加密的认证加密方法及加密系统
US20120008784A1 (en) 2010-07-08 2012-01-12 Phillip Martin Hallam-Baker Delegated Key Exchange System and Method of Operation
US20130080768A1 (en) 2011-09-26 2013-03-28 Erik Lagerway Systems and methods for secure communications using an open peer protocol
CN102427449B (zh) * 2011-11-04 2014-04-09 北京工业大学 一种基于安全芯片的可信移动存储方法
US20130173906A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Cloning storage devices through secure communications links
US20130173903A1 (en) * 2011-12-29 2013-07-04 Eric T. Obligacion Unified network architecture having storage devices with secure boot devices
US8745371B2 (en) * 2011-12-29 2014-06-03 Unisys Corporation Unified network architecture having storage devices with secure boot devices
EP2667539A1 (en) 2012-05-21 2013-11-27 Koninklijke Philips N.V. Key sharing methods, device and system for configuration thereof.
US20140164753A1 (en) * 2012-12-06 2014-06-12 Samsung Electronics Co., Ltd System on chip for performing secure boot, image forming apparatus using the same, and method thereof
US9237133B2 (en) 2012-12-12 2016-01-12 Empire Technology Development Llc. Detecting matched cloud infrastructure connections for secure off-channel secret generation
US9923720B2 (en) 2013-02-28 2018-03-20 Koninklijke Philips N.V. Network device configured to derive a shared key

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20230020239A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 업데이트 보안 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20230020241A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 업데이트 공유키 관리 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
KR20230020240A (ko) 2021-08-03 2023-02-10 시큐리티플랫폼 주식회사 플래시 메모리를 이용한 펌웨어 대용량 업데이트 개선 방법 및 이를 실행하기 위한 기록매체에 저장된 컴퓨터 프로그램
US11789719B2 (en) 2021-08-03 2023-10-17 Security Platform Inc. Firmware massive update method using flash memory and computer program stored in recording media for executing the same
KR102535124B1 (ko) * 2022-08-04 2023-05-26 (주)이씨스 복수의 ble 장치를 하나의 장치로 인식시키는 ble 장치 복제 시스템 및 방법

Also Published As

Publication number Publication date
CN106797317B (zh) 2018-09-21
US9686248B2 (en) 2017-06-20
CN106797317A (zh) 2017-05-31
CN108809646B (zh) 2020-03-17
EP3205046A1 (en) 2017-08-16
CN108809646A (zh) 2018-11-13
JP6221014B1 (ja) 2017-10-25
WO2016057209A1 (en) 2016-04-14
US20160099922A1 (en) 2016-04-07
EP3205046B1 (en) 2019-11-06
US20170019380A1 (en) 2017-01-19
JP2017536729A (ja) 2017-12-07
US9331989B2 (en) 2016-05-03
KR101830589B1 (ko) 2018-02-20
EP3205046A4 (en) 2018-07-18

Similar Documents

Publication Publication Date Title
KR101830589B1 (ko) 보안 공유 키 공유 시스템들 및 방법들
US10263962B2 (en) User authentication over networks
US10015159B2 (en) Terminal authentication system, server device, and terminal authentication method
AU2016211551B2 (en) Methods for secure credential provisioning
TWI809292B (zh) 資料的加解密方法、裝置、存儲介質及加密文件
US11057196B2 (en) Establishing shared key data for wireless pairing
US9647842B2 (en) Dual-party session key derivation
US20220209944A1 (en) Secure Server Digital Signature Generation For Post-Quantum Cryptography Key Encapsulations
CN113556230B (zh) 数据安全传输方法、证书相关方法、服务端、系统及介质
JP2019506789A (ja) パスコード検証のためのフォワードセキュア型暗号技術を使用した方法、システム、及び装置。
JP2014006691A (ja) デバイス認証方法及びシステム
JP2017524306A (ja) 暗号化操作における悪意のある変更に対する保護
KR102094606B1 (ko) 인증 장치 및 방법
EP3361670B1 (en) Multi-ttp-based method and device for verifying validity of identity of entity
JP6538923B2 (ja) 認証システム、方法及びプログラム並びにサーバ
JP6404958B2 (ja) 認証システム、方法及びプログラム並びにサーバ
CN114240428A (zh) 数据传输方法及装置、数据交易终端、数据供方
EP3010172A1 (en) System enabling licensed processing of encrypted information
JP2015022097A (ja) 復号方法、鍵クラウドシステム、復号能力提供装置、端末装置、およびプログラム

Legal Events

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