KR101579696B1 - 암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법 - Google Patents

암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법 Download PDF

Info

Publication number
KR101579696B1
KR101579696B1 KR1020147004241A KR20147004241A KR101579696B1 KR 101579696 B1 KR101579696 B1 KR 101579696B1 KR 1020147004241 A KR1020147004241 A KR 1020147004241A KR 20147004241 A KR20147004241 A KR 20147004241A KR 101579696 B1 KR101579696 B1 KR 101579696B1
Authority
KR
South Korea
Prior art keywords
computing device
value
secret
message
computing
Prior art date
Application number
KR1020147004241A
Other languages
English (en)
Other versions
KR20140040272A (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 KR20140040272A publication Critical patent/KR20140040272A/ko
Application granted granted Critical
Publication of KR101579696B1 publication Critical patent/KR101579696B1/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
    • 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/0407Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
    • H04L63/0414Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden during transmission, i.e. party's identity is protected against eavesdropping, e.g. by using temporary identifiers, but is known to the other party or parties involved in the communication
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/60Digital content management, e.g. content distribution
    • H04L2209/605Copy protection
    • 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/3271Cryptographic 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 challenge-response

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

클라이언트 컴퓨팅 디바이스가 다운로드된 저작권 보호 미디어 콘텐츠를 소비하기 위해 구현된 안전하고 승인된 버전의 콘텐츠 플레이어 소프트웨어를 갖는 것을 검증하기 위한 보안 접근법을 제공하기 위해 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖는지 여부를 판단하기 위한 컴퓨터 구현 기법이 사용될 수 있다. 이러한 기법을 이용하면, 저작권 보호 미디어 콘텐츠 제공자들은 안전하고 승인된 콘텐츠 플레이어만이 콘텐츠에 액세스하도록 구현되는 것을 보장할 수 있다.

Description

암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법{SYSTEM AND METHOD FOR OBFUSCATING INITIATION VALUES OF A CRYPTOGRAPHY PROTOCOL}
본 발명은 일반적으로 컴퓨터 네트워크에서의 암호 기법에 관한 것으로서, 더 구체적으로 암호 기법 프로토콜의 난독화된(obfuscated) 개시 값들에 기반하여 컴퓨터 디바이스가 소프트웨어 프로그램의 정확한 버전을 실행하는지를 확인하는 시스템 및 방법에 관한 것이다.
클라이언트 컴퓨팅 디바이스에서 실행되도록 구성된 콘텐츠 플레이어 소프트웨어는 통상 상당히 복잡하다. 종종, 콘텐츠 플레이어 소프트웨어에서의 보안 결함이 소프트웨어가 여러 클라이언트 컴퓨팅 디바이스에 의해 릴리즈 및 다운로드된 후에 발견된다. 이러한 보안 결함은 저작권 보호된 콘텐츠가 적당한 권한이 없는 최종 사용자 또는 다른 사용자에 의해 시청되거나 복사되는 것을 초래할 수 있다. 이러한 보안 결함을 극복하기 위해, 클라이언트 콘텐츠 플레이어 소프트웨어는 보안 결함을 다루도록 설계된 새로운 버전으로 업데이트되고, 클라이언트 컴퓨팅 디바이스는 클라이언트 컴퓨팅 디바이스가 새로운 버전의 콘텐츠 플레이어 소프트웨어가 디바이스에 적절히 로드되었다고 검증할 때까지 저작권 보호 콘텐츠를 다운로드할 수 없다.
통상적으로, 콘텐츠 플레이어 소프트웨어의 각각의 버전은 상이한 버전의 번호로 표현된다. 현재 클라이언트 컴퓨팅 디바이스에 존재하는 콘텐츠 플레이어 소프트웨어의 버전 번호는 콘텐츠 플레이어 소프트웨어와 관련된 클라이언트 컴퓨팅 디바이스의 메모리에 저장된다. 이러한 접근법의 하나의 단점은 클라이언트 컴퓨터의 최종 사용자가 콘텐츠 플레이어 소프트웨어를 쉽게 “해킹”하여 수정 버전 번호에 대응하고 구 버전의 콘텐츠 플레이어 소프트웨어의 하나 이상의 보안 결함을 다루도록 개발된 신 버전의 콘텐츠 플레이어 소프트웨어를 다운로드하지 않고 버전 번호를 변경할 수 있다는 것이다. 결과적으로, 클라이언트 컴퓨팅 디바이스의 최종 사용자는 DRM 및 콘텐츠 제공자에 의해 구현되고 콘텐츠 플레이어 소프트웨어에서의 하나 이상의 보안 결함을 통해 노출된 다른 복사 보호조치들을 회피할 수 있다.
전술한 바와 같이, 종래 기술에 필요한 것은 클라이언트 디바이스에 현재 설치된 애플리케이션이 안전하다고 검증하기 위한 더 안전한 접근법이다.
본 발명의 일 실시예는 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖는지 여부를 판단하기 위한 컴퓨터 구현 방법을 개시한다. 시스템은 동일한 하나 이상의 초기값으로 초기화된 2개의 컴퓨팅 디바이스를 포함한다. 이 방법은 적어도 하나의 초기 셋업 값에 기반하여 개인 비밀 값을 컴퓨팅하는 단계, 개인 비밀 값과 적어도 하나의 초기 셋업 값에 기반하여 공개 값을 컴퓨팅하는 단계, 컴퓨팅된 공개 값을 제2 컴퓨팅 디바이스로 전송하는 단계, 제2 컴퓨팅 디바이스로부터 다른 공개 값을 수신하는 단계, 및 제2 컴퓨팅 디바이스로부터 수신된 공개 값 및 개인 비밀 값에 기반하여 공유 비밀을 컴퓨팅하는 단계를 포함한다. 이 방법은 또한 제2 컴퓨팅 디바이스로부터 암호화된 메시지를 수신하는 단계, 공유 비밀을 사용하여 암호화된 메시지를 암호 해독하는 단계, 및 메시지가 정확히 암호 해독되었는지 여부를 판단하는 단계를 포함한다. 메시지가 정확히 암호 해독되었으면, 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖기 때문에 제1 컴퓨팅 디바이스와 제2 컴퓨팅 디바이스 사이의 통신이 계속된다. 그러나 메시지가 정확히 암호 해독되지 않았으면, 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖지 않기 때문에 제1 컴퓨팅 디바이스와 제2 컴퓨팅 디바이스 사이의 통신이 중단(terminate)된다.
개시된 방법의 하나의 이점은 클라이언트 컴퓨팅 디바이스가 다운로드된 저작권 보호 미디어 콘텐츠를 소비하기 위해 구현된 안전하고 승인된 버전의 콘텐츠 플레이어 소프트웨어를 갖는다는 것을 검증하기 위한 보안 접근법을 제공한다는 것이다. 결과적으로, 저작권 보호 미디어 콘텐츠 제공자들은 안전하고 승인된 콘텐츠 플레이어만이 콘텐츠에 액세스하도록 구현되는 것을 보장할 수 있다.
본 발명의 앞서 인용된 특징들이 상세히 이해될 수 있도록, 앞서 간략히 요약된 본 발명의 더 구체적인 설명은 실시예들을 참조하여 설명될 것이며, 실시예들 중 일부는 첨부 도면에 의해 예시된다. 그러나 첨부 도면들은 본 발명의 통상적인 실시예만을 예시하며, 이로써 본 발명의 범위를 제한하는 것으로 간주되지 않아야 하는데, 그 이유는 본 발명이 다른 동등한 효과적인 실시예들을 인정할 수 있기 때문이다.
도 1은 본 발명의 하나 이상의 형태를 구현하도록 구성된 컴퓨터 네트워크를 예시한다.
도 2는 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스를 더 상세히 예시한다.
도 3은 본 발명의 일 실시예에 따른, 도 2의 제1 컴퓨팅 디바이스의 보안 통신 모듈을 더 상세히 예시한다.
도 4는 본 발명의 일 실시예에 따른, 도 1의 제2 컴퓨팅 디바이스를 더 상세히 예시한다.
도 5는 본 발명의 일 실시예에 따른, 도 4의 제2 컴퓨팅 디바이스의 보안 통신 모듈을 더 상세히 예시한다.
도 6은 본 발명의 일 실시예에 따른, 난독화된 방식으로 공유 비밀을 계산하기 위한 방법 단계들의 흐름도이다.
도 7은 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스가 정확한 버전의 콘텐츠 플레이어 애플리케이션을 구비하는 것을 검증하기 위한 방법 단계들의 흐름도이다.
도 8은 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스의 보안 통신 모듈 및 콘텐츠 플레이어를 업데이트하기 위한 방법 단계들의 흐름도이다.
도 1은 본 발명의 하나 이상의 형태를 구현하도록 구성된 컴퓨터 네트워크(100)를 예시한다. 도시한 바와 같이, 컴퓨터 네트워크(100)는 제1 컴퓨팅 디바이스(102), 통신 네트워크(104), 및 제2 컴퓨팅 디바이스(106)를 포함한다.
제1 컴퓨팅 디바이스(102) 및 제2 컴퓨팅 디바이스(106)는 데이터를 통신하는 임의의 2개의 컴퓨팅 디바이스이다. 일 실시예에서, 제1 컴퓨팅 디바이스(102)는 데스크톱 컴퓨터, 랩톱 컴퓨터, 모바일 폰, PDA(personal digital assistant) 또는 통신 네트워크(104)를 통해 데이터를 통신하도록 구성된 임의의 다른 디바이스와 같은 최종-사용자 컴퓨팅 디바이스이다. 일 실시예에서, 제2 컴퓨팅 디바이스(106)는 오디오 또는 비디오 데이터와 같은 미디어 콘텐츠를 저장하는 서버이다. 일 실시예에서, 제2 컴퓨팅 디바이스(106)는 콘텐츠 배포 네트워크(CDN:content distribution network)의 서버이다. 그러나 당업자는 제1 컴퓨팅 디바이스(102) 및 제2 컴퓨팅 디바이스(106)가 서로 통신하는 임의의 2개의 컴퓨팅 디바이스일 수 있다는 것을 인식할 것이다. 일 실시예에 따르면, 통신 네트워크(104)는 인터넷이다.
도 2는 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스(102)를 더 상세히 예시한다. 도시된 바와 같이, 제1 컴퓨팅 디바이스(102)는 CPU(central processing unit; 205), 네트워크 인터페이스(215), 인터커넥트(220), 및 메모리(225)를 포함한다. 제1 컴퓨팅 디바이스(102)는 또한 I/O 디바이스(212)(예를 들어, 키보드, 디스플레이, 및 마우스 디바이스)를 제1 컴퓨팅 디바이스(102)에 연결시키는 입출력(I/O) 디바이스 인터페이스(210)를 포함할 수 있다.
CPU(205)는 메모리(225)에 저장된 프로그래밍 명령어를 검색 및 실행한다. 이와 유사하게, CPU(205)는 메모리(225)에 있는 애플리케이션 데이터를 저장 및 검색한다. 인터커넥트(220)는 CPU(205), I/O 디바이스 인터페이스(210), 스토리지(230), 네트워크 인터페이스(215) 및 메모리(225) 사이에서 프로그래밍 명령어 및 애플리케이션 데이터를 송신하는데 사용된다. CPU(205)는 싱글 CPU, 멀티 CPU, 다수의 프로세싱 코어를 갖는 싱글 CPU 등을 나타내는 것으로 포함된다. 메모리(225)는 RAM(random access memory), 하드 디스크 드라이브, 및/또는 플래시 메모리 스토리지 드라이브를 포함한다.
도시된 바와 같이, 메모리(225)는 콘텐츠 플레이어(230), 보안 통신 모듈(240), 및 업데이트 설치 모듈(250)을 포함한다. 일 실시예에서, 콘텐츠 플레이어(230)는 제1 컴퓨팅 디바이스(102)의 최종 사용자에게 오디오 또는 비디오 데이터를 제시하도록 구성된 미디어 플레이어이다. 보안 통신 모듈(240)은 실행될 때 제1 컴퓨팅 디바이스(102)로 하여금 통신 네트워크(104)를 통해 제2 컴퓨팅 디바이스(106)와 같은 다른 컴퓨팅 디바이스와의 암호화 통신에 관여하게 하는 소프트웨어를 포함한다. 업데이트 설치 모듈(250)은 실행될 때 콘텐츠 플레이어(230) 및 보안 통신 모듈(240)이 업데이트하게 하는 소프트웨어를 포함한다.
도시된 바와 같이, 콘텐츠 플레이어(230)는 버전 정보(235)를 포함한다. 버전 정보(235)는 콘텐츠 플레이어(230)의 소프트웨어의 현재 버전을 나타내는 정보를 저장한다. 일 실시예에서, 버전 정보(235)는 버전 번호를 포함한다. 다른 실시예에서, 버전 정보(235)는 콘텐츠 플레이어(230)의 소프트웨어가 마지막으로 수정되었던 일시를 포함한다.
도시된 바와 같이, 보안 통신 모듈(240)은 비밀 모듈(245)을 포함한다. 일 실시예에서, 비밀 모듈(245)은 제1 컴퓨팅 디바이스(102)의 최종 사용자에 의해 판독 또는 수정될 수 없는 데이터를 포함하는 난독화 모듈이다. 이하 도 3의 설명과 함께, 일 실시예에 따른 비밀 모듈(245)의 동작의 더 상세한 설명이 제공된다. 일 실시예에서, 업데이트 설치 모듈(250)은 또한 콘텐츠 플레이어(230)의 버전 정보(235) 및 보안 통신 모듈(240)의 비밀 모듈(245)을 업데이트하여 비밀 모듈(245)이 버전 정보(235)에 대응하도록 보장한다.
일 실시예에서, 콘텐츠 플레이어(230) 및 보안 통신 모듈(240)은 항상 함께 업데이트된다. 그러므로 콘텐츠 플레이어(230)의 버전 정보(235)가 업데이트될 때마다, 보안 통신 모듈(240)의 비밀 모듈(245) 또한 업데이트된다.
도 3은 본 발명의 일 실시예에 따른, 도 2의 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈(240)을 더 상세히 예시한다. 도시된 바와 같이, 보안 통신 모듈(240)은 비밀 모듈(245), 제1 컴퓨팅 디바이스의 개인 비밀 값(330), 제1 컴퓨팅 디바이스의 공개 값(340), 제2 컴퓨팅 디바이스의 공개 값(350), 공유 비밀(360), 및 메시지 암호화/암호해독 모듈(370)을 포함한다.
비밀 모듈(245)은 생성기 요소(generator element) 값(310) 및 프라임 요소(prime element) 값(320)을 포함한다. 당업자들은 이러한 값들이 키 교환 알고리즘(예를 들어, Diffie-Hellman 키 교환 알고리즘) 또는 암호화 알고리즘(예를 들어, ElGamal 암호화 알고리즘), 또는 디지털 서명 알고리즘(DSA)과 같은 암호 기법 알고리즘을 구현하도록 요구받는다는 점을 인식할 것이다. 일 실시예에서, 비밀 모듈(245)의 값들, 즉, 생성기 요소 값(310), 및 프라임 요소 값(320)은 콘텐츠 플레이어(230)의 특정 버전 정보(235)에 대응한다. 다시 말하면, 콘텐츠 플레이어(230)의 버전 정보(235)가 업데이트될 때마다, 생성기 요소 값(310) 및 프라임 요소 값(320) 또한 업데이트된다. 이러한 기법은 비밀 모듈(245)이 버전 정보(235)에 대응하도록 보장한다. 일 실시예에서, 생성기 요소 값(310)은 프라임 요소 값(320) 마이너스 1과 서로소(relatively prime)이다. 일 실시예에서, 생성기 요소 값(310)을 이용한 고속 이진 계산을 용이하게 하기 위해 생성기 요소 값(310)은 제1 임계수보다 많은 비트들을 포함하고, 제2 임계수보다 적은 1로 설정된 비트들을 갖는데, 이로써 시행착오를 통해 생성기 요소 값(310)을 획득하는 것은 어렵다. 일 실시예에서, 프라임 요소 값(320)은 제3 임계수보다 크며, 이로써 다음의 값들, 즉 프라임 요소 값(320), 공개 값(340), 공개 값(350), 및 공유 비밀(360)을 시행착오를 통해 획득하는 것은 어렵다. 그러나 당업자는 임의의 생성기 요소 값(310), 및 암호화 알고리즘, 키 교환 알고리즘, 또는 서명 알고리즘에 따라 유효한 프라임 요소 값(320)이 여기에 설명된 기법들과 함께 구현될 수 있다는 점을 인식할 것이다.
구현되는 암호 기법 알고리즘이 키 교환 알고리즘, 및 더 구체적으로 Diffie-Hellman 키 교환 알고리즘인 일 실시예에 따르면, 제1 컴퓨팅 디바이스의 개인 비밀 값(330)은 보안 통신 모듈(240)에 의해 선택된다. 제1 컴퓨팅 디바이스의 개인 비밀 값(330)은 1과 프라임 요소 값(320)보다 하나 작은 값 사이의 숫자이다. 예시된 바와 같이, 제1 컴퓨팅 디바이스의 공개 값(340)은 생성기 요소 값(310), 프라임 요소 값(320), 및 제1 컴퓨팅 디바이스의 개인 비밀 값(330)으로부터 판단된다. 제1 컴퓨팅 디바이스의 공개 값(340)은 통신 네트워크(104)를 통해 제2 컴퓨팅 디바이스(106)로 전송된다. 구현된 키 교환 알고리즘이 Diffie-Hellman 키 교환 알고리즘인 경우, 제1 컴퓨팅 디바이스의 공개 값(340)은 수학식 (1)에 따라 계산된다.
Figure 112014016187620-pct00001
여기서 A는 제1 컴퓨팅 디바이스의 공개 값(340)이고, a는 제1 컴퓨팅 디바이스의 개인 비밀 값(330)이고, g는 생성기 요소 값(310)이고, p는 프라임 요소 값(320)이다.
일 실시예에서, 보안 통신 모듈(240)은 제2 컴퓨팅 디바이스의 공개 값(350)을 더 저장한다. 일 실시예에서, 제2 컴퓨팅 디바이스의 공개 값(350)은 통신 네트워크(104)를 통해 제2 컴퓨팅 디바이스(106)로부터 수신된다. 또한, 일 실시예에서, 보안 통신 모듈(240)은 공유 비밀(360)을 더 저장한다. 예시된 바와 같이, 공유 비밀(360)은 프라임 요소 값(320), 제1 컴퓨팅 디바이스의 개인 비밀 값(330), 및 제2 컴퓨팅 디바이스의 공개 값(350)에 기반하여 계산된다. 구현된 키 교환 알고리즘이 Diffie-Hellman 키 교환 알고리즘인 일 실시예에 따르면, 공유 비밀(360)은 수학식 (2)에 따라 계산된다.
Figure 112014016187620-pct00002
여기서 s는 공유 비밀(360)이고, B는 제2 컴퓨팅 디바이스의 공개 값(350)이고, a는 제1 컴퓨팅 디바이스의 개인 비밀 값(330)이고, p는 프라임 요소 값(320)이다.
그러나 당업자가 이해하는 바와 같이, Diffie-Hellman 키 교환 알고리즘 이외의 암호 기법 알고리즘은 여기에 설명된 기법들과 함께 사용될 수 있다. Diffie-Hellman 키 교환 알고리즘 이외의 암호 기법 알고리즘이 사용되면, 제1 컴퓨팅 디바이스의 공개 값(340) 및 공유 비밀(360)을 계산하기 위한 공식은 전술한 수학식 (1) 및 (2)와 상이할 것이다.
메시지 암호화/암호해독 모듈(370)은 암호화/암호해독 알고리즘 및 공유 비밀(360)을 사용하여 메시지들을 암호화하고 암호 해독하도록 구성된다.
도 4는 본 발명의 일 실시예에 따른, 도 1의 제2 컴퓨팅 디바이스(106)를 더 상세히 예시한다. 도시된 바와 같이, 제2 컴퓨팅 디바이스(106)는 CPU(405), 네트워크 인터페이스(415), 인터커넥트(420), 및 메모리(425)를 포함한다. 제2 컴퓨팅 디바이스(106)는 또한 I/O 디바이스(412)(예를 들어, 키보드, 디스플레이, 및 마우스 디바이스)를 제2 컴퓨팅 디바이스(106)에 연결시키는 입출력(I/O) 디바이스 인터페이스(410)를 포함할 수 있다.
도시된 바와 같이, 메모리(425)는 콘텐츠 저장소(430), 보안 통신 모듈(440), 및 업데이트 송신 모듈(450)을 포함한다. 일 실시예에서, 콘텐츠 저장소(430)는 제1 컴퓨팅 디바이스(102)에 포함된 콘텐츠 플레이어(230)에 오디오 또는 비디오 데이터를 제공하도록 구성된 미디어 저장소이다. 보안 통신 모듈(440)은 실행될 때 제2 컴퓨팅 디바이스(106)로 하여금 통신 네트워크(104)를 통해 제1 컴퓨팅 디바이스(102)와 같은 다른 컴퓨팅 디바이스와의 암호화 통신에 관여하게 하는 소프트웨어를 포함한다. 업데이트 송신 모듈(450)은 실행될 때 콘텐츠 저장소(430) 및 보안 통신 모듈(440)로 하여금 업데이트되게 하고, 제1 컴퓨팅 디바이스(102)의 콘텐츠 플레이어(230) 및 보안 통신 모듈(240)로 하여금 업데이트되게 하는 소프트웨어를 포함한다.
도시된 바와 같이, 콘텐츠 저장소(430)는 버전 정보(435)를 포함한다. 버전 정보(435)는 콘텐츠 플레이어(430)의 소프트웨어의 현재 버전을 나타내는 정보를 저장한다. 일 실시예에서, 콘텐츠 저장소(430)는 제1 컴퓨팅 디바이스(102)의 콘텐츠 플레이어(230)로 하여금 콘텐츠 저장소(430)의 버전 정보(435)가 콘텐츠 플레이어(230)의 버전 정보(235)에 대응하는 경우에만 콘텐츠를 다운로드할 수 있게 하도록 구성된다. 일 실시예에서, 버전 정보(435)는 버전 번호를 포함한다. 다른 실시예에서, 버전 정보(435)는 콘텐츠 저장소(430)와 연관된 플레이어의 소프트웨어가 마지막으로 수정되었던 일시를 포함한다.
일 실시예에서, 업데이트 송신 모듈(450)이 콘텐츠 저장소(430)의 콘텐츠 및 보안 통신 모듈(440)을 업데이트하는 경우, 업데이트 송신 모듈(450)은 제1 컴퓨팅 디바이스(102)에 소프트웨어를 제공하여 콘텐츠 플레이어(230) 및 보안 통신 모듈(240) 모두를 업데이트한다. 이러한 업데이트는 콘텐츠 저장소(430)의 버전 정보(435)가 제1 컴퓨팅 디바이스(102)의 콘텐츠 플레이어의 버전 정보(235)에 대응하는 것을 보증한다. 게다가, 이러한 업데이트는 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈(240)의 비밀 모듈(245)의 값들이 제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)의 값들에 대응하는 것을 보증한다.
도 5는 본 발명의 일 실시예에 따른, 도 4의 제2 컴퓨팅 디바이스의 보안 통신 모듈(440)을 더 상세히 예시한다. 도시된 바와 같이, 보안 통신 모듈(440)은 생성기 요소 값(510), 프라임 요소 값(520), 제2 컴퓨팅 디바이스의 개인 비밀 값(530), 제2 컴퓨팅 디바이스의 공개 값(350), 제1 컴퓨팅 디바이스의 공개 값(340), 공유 비밀(540), 및 메시지 암호화/암호해독 모듈(550)을 포함한다. 당업자에게 명백한 바와 같이, 일 실시예에서, 제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)은 제2 컴퓨팅 디바이스(106)가 비밀 모듈(245)을 갖지 않는다는 점에서 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈과 상이하다. 대신, 생성기 요소 값(510) 및 프라임 요소 값(520)이 공개 모듈(non-secret module)(미도시)에 저장된다. 제2 컴퓨팅 디바이스(106)가 아닌 제1 컴퓨팅 디바이스(102)에 대해 비밀 통신 모듈이 요구될 수 있는 하나의 이유는 최종 사용자가 제2 컴퓨팅 디바이스(106)가 아닌 제1 컴퓨팅 디바이스(102)에 대한 액세스를 가질 수 있기 때문이다. 일 실시예에서, 이러한 사실 패턴은 제1 컴퓨팅 디바이스(102)가 최종 사용자에 의해 운영되는 랩톱 또는 데스크톱 컴퓨터 또는 모바일폰과 같은 클라이언트 컴퓨팅 디바이스이고, 제2 컴퓨팅 디바이스(106)가 미디어 콘텐츠 제공자에 속한 콘텐츠 배포 네트워크(CDN)의 서버 기계인 경우에 적용된다.
일 실시예에서, 제2 컴퓨팅 디바이스(106)에 저장된 생성기 요소 값(510) 및 프라임 요소 값(520)은 각각 제1 컴퓨팅 디바이스(102)에 저장된 생성기 요소 값(310) 및 프라임 요소 값(320)과 같다. 당업자는 생성기 요소 값(510) 및 프라임 요소 값(520)이 Diffie-Hellman 키 교환 알고리즘, ElGamal 암호화 알고리즘, 또는 디지털 서명 알고리즘(DSA)과 같은 암호화 알고리즘을 구현하는데 필요하다는 점을 인식할 것이다. 일 실시예에서, 생성기 요소 값(510)과 프라임 요소 값(520)은 콘텐츠 저장소(430)의 특정 버전 정보(435)에 대응한다. 다시 말하면, 콘텐츠 저장소(430)의 버전 정보(435)가 업데이트될 때마다, 생성기 요소 값(510) 및 프라임 요소 값(520) 또한 업데이트된다. 이러한 기법은 생성기 요소 값(510) 및 프라임 요소 값(520)이 버전 정보(435)에 대응하도록 보장한다. 일 실시예에서, 생성기 요소 값(510)은 프라임 요소 값(520)과 서로소이다. 일 실시예에서, 생성기 요소 값(510)을 이용한 이진 계산을 용이하게 하기 위해 생성기 요소 값(510)은 제1 임계수보다 많은 비트로 구성되고, 제2 임계수보다 적은 1로 설정된 비트들을 갖는다. 일 실시예에서, 프라임 요소 값(520)은 제3 임계수보다 크며, 이로써 다음의 값들, 즉 프라임 요소 값(320), 공개 값(350), 및 공유 비밀(540)을 시행착오를 통해 예측하는 것은 어렵다. 그러나 당업자는 임의의 생성기 요소 값(510), 및 암호화 알고리즘에 따라 유효한 프라임 요소 값(520)이 여기에 설명된 기법들과 함께 구현될 수 있다는 점을 인식할 것이다.
구현되는 키 교환 알고리즘이 Diffie-Hellman 키 교환 알고리즘인 일 실시예에 따르면, 제2 컴퓨팅 디바이스의 개인 비밀 값(530)은 보안 통신 모듈(440)에 의해 1과 프라임 요소 값(520)보다 1 작은 값 사이의 숫자로 선택된다. 예시된 바와 같이, 제2 컴퓨팅 디바이스의 공개 값(350)은 생성기 요소 값(510), 프라임 요소 값(520), 및 제2 컴퓨팅 디바이스의 개인 비밀 값(530)으로부터 판단된다. 구현된 암호화 알고리즘이 Diffie-Hellman 키 교환 알고리즘인 일 실시예에 따르면, 제2 컴퓨팅 디바이스의 공개 값(350)은 수학식 (3)에 따라 계산된다.
Figure 112014016187620-pct00003
여기서 B는 제2 컴퓨팅 디바이스의 공개 값(350)이고, b는 제2 컴퓨팅 디바이스의 개인 비밀 값(530)이고, g는 생성기 요소 값(510)이고, p는 프라임 요소 값(520)이다.
일 실시예에서, 보안 통신 모듈(240)은 제1 컴퓨팅 디바이스의 공개 값(340)을 더 저장한다. 일 실시예에서, 제1 컴퓨팅 디바이스의 공개 값(340)은 통신 네트워크(104)를 통해 제1 컴퓨팅 디바이스(102)로부터 수신된다. 또한, 일 실시예에서, 보안 통신 모듈(440)은 공유 비밀(540)을 더 저장한다. 예시된 바와 같이, 공유 비밀(540)은 프라임 요소 값(520), 제2 컴퓨팅 디바이스의 개인 비밀 값(530), 및 제1 컴퓨팅 디바이스의 공개 값(340)에 기반하여 계산된다. 구현된 키 교환 알고리즘이 Diffie-Hellman 키 교환 알고리즘인 일 실시예에 따르면, 공유 비밀(540)은 수학식 (4)에 따라 계산된다.
Figure 112014016187620-pct00004
여기서 s는 공유 비밀(540)이고, A는 제1 컴퓨팅 디바이스의 공개 값(340)이고, b는 제2 컴퓨팅 디바이스의 개인 비밀 값(530)이고, p는 프라임 요소 값(520)이다.
그러나 당업자가 이해하는 바와 같이, Diffie-Hellman 키 교환 알고리즘 이외의 암호 기법 알고리즘은 여기에 설명된 기법들과 함께 사용될 수 있다. Diffie-Hellman 키 교환 알고리즘 이외의 암호 기법 알고리즘이 사용되면, 제2 컴퓨팅 디바이스의 공개 값(350) 및 공유 비밀(540)을 계산하기 위한 공식은 전술한 수학식 (3) 및 (4)와 상이할 것이다.
메시지 암호화/암호해독 모듈(550)은 암호화/암호해독 알고리즘 및 공유 비밀(540)을 사용하여 메시지들을 암호화하고 암호 해독하도록 구성된다.
도 6은 본 발명의 일 실시예에 따른, 난독화된 방식으로 공유 비밀을 계산하기 위한 방법 단계들의 흐름도이다. 방법 단계들이 도 1 내지 도 5와 함께 설명되고 있지만, 당업자는 방법 단계들을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있다는 점을 이해할 것이다.
방법(600)은 단계(610)에서 시작되는데, 여기서 보안 통신 모듈(440)은 보안 통신 모듈(440)에 저장된 적어도 하나의 초기 셋업 값, 개인 비밀 값(530), 및 Diffie-Hellman 키 교환 알고리즘, ElGamal 암호화 알고리즘, 또는 디지털 서명 알고리즘(DSA)과 같은 알고리즘에 기반하여 제2 컴퓨팅 디바이스의 공개 값(350)을 계산한다. 일 실시예에서, 키 교환 알고리즘은 Diffie-Hellman 키 교환 알고리즘이고, 제2 컴퓨팅 디바이스의 공개 값(350)은 전술한 수학식 (3)에 따라 계산된다. 단계(620)에서, 보안 통신 모듈(440)은 제2 컴퓨팅 디바이스의 공개 값(350)을 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈(240)에 송신한다. 일 실시예에서, 제2 컴퓨팅 디바이스의 공개 값(350)은 통신 네트워크(104)를 통해 제2 컴퓨팅 디바이스(106)로부터 송신된다.
방법(600)은 단계(630)로 계속되는데, 여기서 보안 통신 모듈(240)은 제2 컴퓨팅 디바이스의 공개 값(350)을 수신한다. 단계(640)에서, 보안 통신 모듈(240)은 제1 컴퓨팅 디바이스의 개인 비밀 값(330)을 컴퓨팅한다. 일 실시예에서, 제1 컴퓨팅 디바이스의 개인 비밀 값(330)은 1과 프라임 요소 값(320)보다 하나 작은 값 사이에 있다. 일 실시예에서, 제1 컴퓨팅 디바이스의 개인 비밀 값(330)의 계산 및 저장이 난독화된다.
다음으로, 방법(600)은 단계(650)로 계속되는데, 여기서 보안 통신 모듈(240)은 개인 비밀 값(330), 제2 컴퓨팅 디바이스의 공개 값(350), 및 프라임 요소 값(320)에 기반하여 공유 비밀(360)을 판단한다. 일 실시예에서, 키 교환 알고리즘은 Diffie-Hellman 키 교환 알고리즘이고, 공유 비밀(360)은 전술한 수학식 (2)에 따라 계산된다. 일 실시예에서, 제1 컴퓨팅 디바이스의 공유 비밀 값(360)의 계산이 난독화된다.
단계(660)에서, 보안 통신 모듈(240)은 개인 비밀 값(330), 생성기 요소 값(310), 및 프라임 요소 값(320)에 기반하여 제1 컴퓨팅 디바이스의 공개 값(340)을 컴퓨팅한다. 일 실시예에서, 제1 컴퓨팅 디바이스의 공개 값(340)의 계산이 난독화된다. 단계(670)에서, 보안 통신 모듈(240)은 통신 네트워크(104)를 통해 제1 컴퓨팅 디바이스의 공개 값(340)을 제2 컴퓨팅 디바이스(106)에 송신한다.
제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)은 도 6과 함께 전술한 바와 유사한 프로세스에 따라 공유 비밀(540)을 판단한다. 그러나, 중요한 차이점은 일 실시예에 따라 제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)에서 비밀 모듈(245)이 존재하지 않는다는 점이다. 제1 컴퓨팅 디바이스(102)의 비밀 모듈(245)에 저장된 값들에 대응하는 값들이 제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)에 의해 저장된다.
도 7은 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스가 정확한 버전의 콘텐츠 플레이어 애플리케이션을 구비하는 것을 검증하기 위한 방법 단계들의 흐름도이다. 방법 단계들이 도 1 내지 도 5와 함께 설명되고 있지만, 당업자는 방법 단계들을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있다는 점을 이해할 것이다.
방법(700)은 단계(710)에서 시작되는데, 여기서 제2 컴퓨팅 디바이스(106)의 보안 통신 모듈(440)에 포함된 메시지 암호화/암호해독 모듈(550)은 이전에 컴퓨팅된 공유 비밀(540)에 기반하여 메시지를 암호화한다. 단계(720)에서, 메시지 암호화/암호해독 모듈(550)은 암호화된 메시지를 제1 컴퓨팅 디바이스(102)에 송신한다. 단계(730)에서, 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈(240)에 포함된 메시지 암호화/암호해독 모듈(370)은 도 6에 설명된 기법을 통해 컴퓨팅된 공유 비밀(360) 및 암호해독 알고리즘에 기반하여 제2 컴퓨팅 디바이스(106)로부터 수신된 암호화된 메시지를 암호 해독한다.
단계(740)에서, 메시지 암호화/암호해독 모듈(550)은 제1 컴퓨팅 디바이스(102)가 단계(720)에서 제2 컴퓨팅 디바이스(106)에 의해 송신된 메시지를 정확하게 암호 해독했는지 여부를 판단한다. 제1 컴퓨팅 디바이스(102)가 메시지를 정확히 암호 해독했으면, 방법은 단계(750)로 진행하는데, 여기서 제1 컴퓨팅 디바이스(102)와 제2 컴퓨팅 디바이스(106) 사이의 통신이 계속된다. 중요하게, 제1 컴퓨팅 디바이스(102)에 의해 컴퓨팅된 공유 비밀(360)이 정확하면, 제1 컴퓨팅 디바이스(102)는 제2 컴퓨팅 디바이스(106)에 의해 송신된 메시지를 정확히 암호 해독할 수 있다. 그러나 제1 컴퓨팅 디바이스(102)가 메시지를 정확히 암호 해독하지 못했으면, 방법은 단계(760)로 진행하는데, 여기서 제1 컴퓨팅 디바이스(102)와 제2 컴퓨팅 디바이스(106) 사이의 통신이 중단된다.
일 실시예에서, 제1 컴퓨팅 디바이스(102)는 암호 해독된 메시지를 세션 키 생성 알고리즘에 대한 입력으로서 사용하여 세션 키를 생성한다. 그 후, 세션 키는 단계(740)에서 제2 컴퓨팅 디바이스(106)에 의해 유효성 검사되어 제1 컴퓨팅 디바이스(102)가 메시지를 정확히 암호 해독했는지 여부를 판단한다.
대체 실시예에서, 제1 컴퓨팅 디바이스(102) 및 제2 컴퓨팅 디바이스(104)는 세션 키 생성 알고리즘에 대한 입력으로서 공유 비밀을 사용하여 세션 키를 생성한다. 세션 키는 102와 104 사이에서 통신되는 메시지들을 암호화하는데 사용된다. 그 후, 세션 키는 단계(740)에서 제2 컴퓨팅 디바이스(106)에 의해 유효성 검사되어 제1 컴퓨팅 디바이스(102)가 메시지를 정확히 암호 해독했는지 여부를 판단한다.
다른 실시예에서, 제1 컴퓨팅 디바이스(102)와 제2 컴퓨팅 디바이스(106) 양자 모두는 메시지의 값에 합의하고, 제1 컴퓨팅 디바이스(102)에서 생성되는 암호 해독된 메시지가 합의되었던 값과 일치하지 않으면, 제1 컴퓨팅 디바이스(102)는 메시지를 정확히 암호 해독하지 않는다. 이러한 실시예에서, 제1 컴퓨팅 디바이스(102)는 암호 해독된 메시지가 합의되었던 값과 일치되지 않는다고 표시하는 오류 메시지를 제2 컴퓨팅 디바이스(102)에 송신한다.
당업자는 여기에 설명된 발명적인 형태들이 상이한 버전을 갖는 소프트웨어 프로그램에 적용될 수 있다고 이해할 것이다. 다시 말하면, 임의의 소프트웨어 프로그램은 여기에 설명된 콘텐츠 플레이어 애플리케이션(230)을 대체할 수 있다.
도 8은 본 발명의 일 실시예에 따른, 도 1의 제1 컴퓨팅 디바이스(102)의 보안 통신 모듈(240) 및 콘텐츠 플레이어(230)를 업데이트하기 위한 방법 단계들의 흐름도이다. 방법 단계들이 도 1 내지 도 5와 함께 설명되고 있지만, 당업자는 방법 단계들을 임의의 순서로 수행하도록 구성된 임의의 시스템이 본 발명의 범위 내에 있다는 점을 이해할 것이다.
방법(800)은 단계(810)에서 시작되는데, 여기서 제2 컴퓨팅 디바이스(106)의 업데이트 송신 모듈(450)은 업데이트 커맨드를 수신한다. 일 실시예에서, 업데이트 커맨드는 제2 컴퓨팅 디바이스(106)의 관리자에 의해, 관리자가 제1 컴퓨팅 디바이스(102)의 콘텐츠 플레이어(230)의 소프트웨어에서 보안 결함을 검출하여 이 소프트웨어를 업데이트하고 싶을 때, 제공된다. 그 후, 방법(800)은 단계(820)로 진행되는데, 여기서 업데이트 송신 모듈(450)은 콘텐츠 저장 버전 정보(435)를 업데이트하고, 필요한 경우 콘텐츠 저장소(430)를 업데이트한다. 다음으로, 방법(800)은 단계(830)로 진행되는데, 여기서 업데이트 송신 모듈(450)은 제2 컴퓨팅 디바이스의 보안 통신 모듈(440)에서 초기 셋업 값들을 업데이트한다. 일 실시예에서, 업데이트 송신 모듈(450)은 생성기 요소 값(510)과 프라임 요소 값(520) 중 적어도 하나를 업데이트한다.
방법(800)은 단계(840)에서 계속되는데, 여기서 업데이트 송신 모듈(450)은 제1 컴퓨팅 디바이스(102)로 하여금 콘텐츠 플레이어(230)를 업데이트하게 한다. 일 실시예에서, 업데이트 송신 모듈(450)은 통신 네트워크(104)를 통해 제1 컴퓨팅 디바이스(102)와 통신한다.
방법(800)은 단계(850)에서 계속되는데, 여기서 업데이트 송신 모듈(450)은 제1 컴퓨팅 디바이스(102)로 하여금 보안 통신 모듈(240)의 비밀 모듈(245)에서 초기 셋업 값, 즉, 생성기 요소 값(310), 및 프라임 요소 값(320)을 업데이트하게 한다. 마지막으로, 방법(800)은 단계(860)에서 계속되는데, 여기서 업데이트 송신 모듈(450)은 제1 컴퓨팅 디바이스(102)로 하여금 콘텐츠 플레이어 버전 정보(235)를 업데이트하여 업데이트를 반영하게 한다. 단계(860) 후에, 방법(800)은 종료된다.
요약하면, 개시된 기법은 난독화된 초기 셋업 값들을 이용하여 암호화 알고리즘을 더 폭넓게 제공하는데, 이는 승인된 버전의 통신 소프트웨어만이 메시지들을 성공적으로 암호화하고 암호 해독할 수 있도록 보장한다. 더 구체적으로, 기법의 일 구현예에 따르면, 암호 기법 알고리즘은 Diffie-Hellman 키 교환 알고리즘이고, 초기 셋업 값들은 생성기 요소 값 및 프라임 요소 값이다. 이러한 특정 구현예에 따르면, 클라이언트 컴퓨팅 디바이스는 현재 버전의 통신 소프트웨어를 다운로드하는데, 이는 암호화 알고리즘을 위한 생성기 요소 값 및 프라임 요소 값을 포함한다. 생성기 요소 값과 프라임 요소 값 모두는 클라이언트 컴퓨팅 디바이스의 사용자에 의해 판독 또는 액세스될 수 없는 비밀 또는 난독화 모듈에서 클라이언트 컴퓨팅 디바이스 내에 저장된다.
Diffie-Hellman 키 교환 프로토콜에 따른 서버 기계와 통신하기 위해, 클라이언트 컴퓨팅 디바이스는 개인 비밀 값과 공개 값을 생성한다. 공개 값은 개인 비밀 값, 비밀 또는 난독화 모듈에 저장된 생성기 요소 값, 및 프라임 요소 값에 기반하여 계산된다. 그 후, 클라이언트 컴퓨팅 디바이스는 공개 값을 서버 기계로 송신한다. 서버 컴퓨팅 디바이스로부터 공개 값을 수신하면, 클라이언트 컴퓨팅 디바이스는 클라이언트 컴퓨팅 디바이스의 개인 비밀 값, 서버 기계의 공개 값, 및 비밀 또는 난독화 모듈에 저장된 프라임 요소 값에 기반하여 공유 비밀을 컴퓨팅한다. 클라이언트 컴퓨팅 디바이스와 서버 기계 사이의 후속 통신은 컴퓨팅된 공유 비밀에 기반하여 암호화 또는 암호 해독된다. 일부 구현예에서, 클라이언트 컴퓨팅 디바이스 및 서버 기계는 클라이언트와 서버 사이의 메시지 세트를 암호 해독할 수 있음으로써 양자 모두가 동일한 공유 비밀을 함축적으로 갖는다는 것을 검증할 수 있다.
개시된 접근법의 하나의 이점은 클라이언트 컴퓨팅 디바이스가 미디어를 다운로드하고 시청하기 위한 안전하고 승인된 버전의 소프트웨어를 갖는 경우에만 저작권 보호 미디어 콘텐츠를 다운로드할 수 있다는 것이다. 결과적으로, 저작권 보호 미디어 콘텐츠 제공자는 승인되고 안전한 미디어 플레이어들만이 제공된 콘텐츠를 시청하기 위해 구현되도록 더 쉽게 보장할 수 있다.
앞선 설명은 본 발명의 실시예들에 관한 것이었지만, 본 발명의 다른 실시예 및 추가 실시예가 본 발명의 기본 범위를 벗어나지 않는 한 고안될 수도 있다. 예를 들어, 본 발명의 측면들은 하드웨어 또는 소프트웨어, 또는 하드웨어와 소프트웨어의 조합으로 구현될 수 있다. 본 발명의 일 실시예는 컴퓨터 시스템과 함께 사용하기 위한 프로그램 제품으로서 구현될 수 있다. 프로그램 제품의 프로그램(들)은 실시예들(여기에 설명된 방법들을 포함함)의 기능들을 정의하며, 다양한 컴퓨터 판독가능 스토리지 매체에 포함될 수 있다. 예시적인 컴퓨터 판독가능 스토리지 매체는 이들로 제한되는 것은 아니지만, (i) 정보가 영구적으로 저장되는 기록불가 스토리지 매체(예를 들어, CD-ROM 드라이브에 의해 판독 가능한 CD-ROM 디스크, 플래시 메모리, ROM 칩, 또는 임의의 타입의 솔리드 스테이트 비휘발성 반도체 메모리와 같은 컴퓨터 내의 판독 전용 메모리 디바이스); 및 (ii) 변경 가능한 정보가 저장된 기록가능 스토리지 매체(예를 들어, 디스켓 드라이브 내의 플로피 디스크 또는 하드 디스크 드라이브 또는 임의의 타입의 솔리드 스테이트 랜덤 액세스 반도체 메모리)를 포함한다. 본 발명의 기능들을 지시하는 컴퓨터 판독가능 명령어를 저장하는(carrying) 경우, 이러한 컴퓨터 판독가능 스토리지 매체는 본 발명의 실시예이다.
본 발명의 범위는 다음의 청구항에 의해 판단된다.

Claims (23)

  1. 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖는지 여부를 판단하기 위한 컴퓨터 구현 방법으로서,
    적어도 하나의 초기 셋업 값에 기반하여 개인 비밀 값을 컴퓨팅하는 단계;
    상기 개인 비밀 값 및 적어도 하나의 초기 셋업 값에 기반하여 공개 값을 컴퓨팅하는 단계 - 상기 적어도 하나의 초기 셋업 값은 베이스 생성기 값 또는 프라임 요소 값을 포함하고, 상기 베이스 생성기 값의 이진 표현은 제1 임계수보다 많은 비트로 구성되고, 제2 임계수보다 적은 1비트들을 가짐 -;
    상기 공개 값을 제2 컴퓨팅 디바이스에 전송하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 제2 공개 값을 수신하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 수신된 제2 공개 값 및 상기 개인 비밀 값에 기반하여 공유 비밀을 컴퓨팅하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 메시지를 수신하는 단계;
    상기 공유 비밀을 사용하여 상기 암호화된 메시지를 암호 해독하는 단계;
    상기 메시지가 정확히 암호 해독되었는지 여부를 판단하는 단계; 및
    상기 메시지가 정확히 암호 해독되었으면, 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스가 동일한 버전의 소프트웨어 프로그램을 갖기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 계속되게 하거나,
    상기 메시지가 정확히 암호 해독되지 않았으면, 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스가 동일한 버전의 소프트웨어 프로그램을 갖지 않기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 중단(terminate)되게 하는 단계
    를 포함하고,
    상기 적어도 하나의 초기 셋업 값은 최종 사용자가 액세스 또는 변경할 수 없는 비밀 모듈 내에 저장되고,
    상기 적어도 하나의 초기 셋업 값은 소프트웨어 프로그램의 버전에 대응하고,
    상기 공유 비밀은 상기 비밀 모듈을 포함하는 보안 통신 모듈 내에 저장되는, 컴퓨터 구현 방법.
  2. 제1항에 있어서, 상기 메시지를 암호화하고 암호 해독하는데 사용되는 암호 기법 알고리즘(cryptography algorithm)은 Diffie-Hellman 키 교환 알고리즘, ElGamal 암호화 알고리즘, 또는 디지털 서명 알고리즘을 포함하는, 컴퓨터 구현 방법.
  3. 삭제
  4. 삭제
  5. 제1항에 있어서, 상기 프라임 요소 값의 이진 표현은 제3 임계수보다 많은 비트로 구성되는, 컴퓨터 구현 방법.
  6. 제1항에 있어서, 상기 암호화된 메시지는 상기 제2 컴퓨팅 디바이스에 의해 컴퓨팅된 공유 비밀에 기반하여 암호화된 원 메시지를 포함하는, 컴퓨터 구현 방법.
  7. 제6항에 있어서, 상기 메시지가 정확히 암호 해독되면, 상기 암호 해독된 메시지는 상기 원 메시지와 일치하며, 상기 제2 컴퓨팅 디바이스로부터 수신된 상기 제2 공개 값에 기반하여 컴퓨팅된 공유 비밀은 상기 제2 컴퓨팅 디바이스에 의해 컴퓨팅된 공유 비밀과 동일한, 컴퓨터 구현 방법.
  8. 제1항에 있어서, 상기 제2 컴퓨팅 디바이스는 메시지가 정확히 암호 해독되었는지 여부를 판단하고, 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신들이 계속되거나 중단되게 하는, 컴퓨터 구현 방법.
  9. 제1항에 있어서, 상기 제1 컴퓨팅 디바이스에 의한 상기 개인 비밀 값, 상기 공개 값, 및 상기 공유 비밀의 계산은 난독화되는(obfuscated), 컴퓨터 구현 방법.
  10. 삭제
  11. 프로세싱 유닛에 의해 실행되는 경우 상기 프로세싱 유닛으로 하여금 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖는지 여부를 판단하게 하는 명령어들을 저장하는 비일시적 컴퓨터 판독가능 매체로서,
    상기 명령어들은,
    적어도 하나의 초기 셋업 값에 기반하여 개인 비밀 값을 컴퓨팅하는 단계;
    상기 개인 비밀 값 및 적어도 하나의 초기 셋업 값에 기반하여 공개 값을 컴퓨팅하는 단계 - 상기 적어도 하나의 초기 셋업 값은 베이스 생성기 값 또는 프라임 요소 값을 포함하고, 상기 베이스 생성기 값의 이진 표현은 제1 임계수보다 많은 비트로 구성되고, 제2 임계수보다 적은 1비트들을 가짐 -;
    상기 공개 값을 제2 컴퓨팅 디바이스에 전송하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 제2 공개 값을 수신하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 수신된 제2 공개 값 및 상기 개인 비밀 값에 기반하여 공유 비밀을 컴퓨팅하는 단계;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 메시지를 수신하는 단계;
    상기 공유 비밀을 사용하여 상기 암호화된 메시지를 암호 해독하는 단계; 및
    상기 메시지가 정확히 암호 해독되었는지 여부를 판단하는 단계
    를 수행하며,
    상기 메시지가 정확히 암호 해독되었으면, 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스가 동일한 버전의 소프트웨어 프로그램을 갖기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 계속되고,
    상기 메시지가 정확히 암호 해독되지 않았으면, 상기 제1 컴퓨팅 디바이스 및 상기 제2 컴퓨팅 디바이스가 동일한 버전의 소프트웨어 프로그램을 갖지 않기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 중단되고,
    상기 적어도 하나의 초기 셋업 값은 최종 사용자가 액세스 또는 변경할 수 없는 비밀 모듈 내에 저장되고,
    상기 적어도 하나의 초기 셋업 값은 소프트웨어 프로그램의 버전에 대응하고,
    상기 공유 비밀은 상기 비밀 모듈을 포함하는 보안 통신 모듈 내에 저장되는, 비일시적 컴퓨터 판독가능 매체.
  12. 삭제
  13. 삭제
  14. 삭제
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 제1 컴퓨팅 디바이스로서,
    프로세싱 유닛
    을 포함하며, 상기 프로세싱 유닛은,
    적어도 하나의 초기 셋업 값에 기반하여 개인 비밀 값을 컴퓨팅하고;
    상기 개인 비밀 값 및 적어도 하나의 초기 셋업 값에 기반하여 공개 값을 컴퓨팅하고 - 상기 적어도 하나의 초기 셋업 값은 베이스 생성기 값 또는 프라임 요소 값을 포함하고, 상기 베이스 생성기 값의 이진 표현은 제1 임계수보다 많은 비트로 구성되고, 제2 임계수보다 적은 1비트들을 가짐 -;
    상기 공개 값을 제2 컴퓨팅 디바이스에 전송하고;
    상기 제2 컴퓨팅 디바이스로부터 제2 공개 값을 수신하고;
    상기 제2 컴퓨팅 디바이스로부터 수신된 제2 공개 값 및 상기 개인 비밀 값에 기반하여 공유 비밀을 컴퓨팅하고;
    상기 제2 컴퓨팅 디바이스로부터 암호화된 메시지를 수신하고;
    상기 공유 비밀을 사용하여 상기 암호화된 메시지를 암호 해독하고;
    상기 메시지가 정확히 암호 해독되었는지 여부를 판단하도록
    구성되며,
    상기 메시지가 정확히 암호 해독되었으면, 상기 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 계속되거나,
    상기 메시지가 정확히 암호 해독되지 않았으면, 상기 제1 컴퓨팅 디바이스가 정확한 버전의 소프트웨어 프로그램을 갖지 않기 때문에 상기 제1 컴퓨팅 디바이스와 상기 제2 컴퓨팅 디바이스 사이의 통신이 중단되고,
    상기 적어도 하나의 초기 셋업 값은 최종 사용자가 액세스 또는 변경할 수 없는 비밀 모듈 내에 저장되고,
    상기 적어도 하나의 초기 셋업 값은 소프트웨어 프로그램의 버전에 대응하고,
    상기 공유 비밀은 상기 비밀 모듈을 포함하는 보안 통신 모듈 내에 저장되는, 제1 컴퓨팅 디바이스.
  21. 제1항에 있어서, 상기 적어도 하나의 초기 셋업 값은 보안 통신 모듈 내에 저장되는, 컴퓨터 구현 방법.
  22. 제11항에 있어서, 상기 적어도 하나의 초기 셋업 값은 보안 통신 모듈 내에 저장되는, 비일시적 컴퓨터 판독가능 매체.
  23. 제20항에 있어서, 상기 적어도 하나의 초기 셋업 값은 보안 통신 모듈 내에 저장되는, 제1 컴퓨팅 디바이스.
KR1020147004241A 2011-07-22 2012-07-19 암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법 KR101579696B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/189,437 2011-07-22
US13/189,437 US8782420B2 (en) 2011-07-22 2011-07-22 System and method for obfuscation initiation values of a cryptography protocol
PCT/US2012/047448 WO2013016141A1 (en) 2011-07-22 2012-07-19 System and method for obfuscating initiation values of a cryptography protocol

Publications (2)

Publication Number Publication Date
KR20140040272A KR20140040272A (ko) 2014-04-02
KR101579696B1 true KR101579696B1 (ko) 2015-12-22

Family

ID=47556662

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147004241A KR101579696B1 (ko) 2011-07-22 2012-07-19 암호 기법 프로토콜의 개시 값들을 난독화하는 시스템 및 방법

Country Status (9)

Country Link
US (2) US8782420B2 (ko)
EP (1) EP2735117B1 (ko)
JP (2) JP2014522171A (ko)
KR (1) KR101579696B1 (ko)
CN (1) CN103703718B (ko)
AU (1) AU2012287219B2 (ko)
CA (1) CA2844359C (ko)
DK (1) DK2735117T3 (ko)
WO (1) WO2013016141A1 (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA3179622A1 (en) * 2010-10-08 2012-04-12 Brian Lee Moffat Private data sharing system
US9143318B1 (en) * 2013-03-11 2015-09-22 Emc Corporation Secure recoverable offline storage of a shared secret
KR101951201B1 (ko) * 2016-11-09 2019-02-25 주식회사 엔오디비즈웨어 보안 기능을 수행하는 애플리케이션의 작동 방법과 상응하는 애플리케이션
KR102101614B1 (ko) * 2019-01-22 2020-04-17 주식회사 엔오디비즈웨어 보안 기능을 수행하는 애플리케이션의 작동 방법과 상응하는 애플리케이션
KR102180691B1 (ko) * 2020-04-07 2020-11-19 주식회사 소버린월렛 보안 기능을 수행하는 기록 매체에 저장된 애플리케이션과 전자 장치

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080137848A1 (en) 2003-07-07 2008-06-12 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) * 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
JPH01145049A (ja) * 1987-12-02 1989-06-07 Hitachi Medical Corp Mri装置用電磁波シールド室
JPH1145049A (ja) * 1997-07-24 1999-02-16 Matsushita Electric Ind Co Ltd 暗号装置
US6345359B1 (en) * 1997-11-14 2002-02-05 Raytheon Company In-line decryption for protecting embedded software
US6298153B1 (en) * 1998-01-16 2001-10-02 Canon Kabushiki Kaisha Digital signature method and information communication system and apparatus using such method
US7310735B1 (en) 1999-10-01 2007-12-18 International Business Machines Corporation Method, system, and program for distributing software between computer systems
JP2003202931A (ja) * 2002-01-09 2003-07-18 Toshiba Corp ソフトウェアダウンロードシステム、サーバ装置、端末装置、サーバ制御プログラム、端末制御プログラム、サーバ制御方法、端末制御方法
CA2369304A1 (en) * 2002-01-30 2003-07-30 Cloakware Corporation A protocol to hide cryptographic private keys
US7992193B2 (en) * 2005-03-17 2011-08-02 Cisco Technology, Inc. Method and apparatus to secure AAA protocol messages
JP4688886B2 (ja) 2006-01-11 2011-05-25 三菱電機株式会社 楕円曲線暗号パラメータ生成装置及び楕円曲線暗号システム及び楕円曲線暗号パラメータ生成プログラム
CN101491000B (zh) * 2006-07-12 2011-12-28 耶德托公司 用于混淆密码函数的方法和系统
US8082452B2 (en) 2006-12-06 2011-12-20 George Mason Intellectual Properties, Inc. Protecting sensitive data associations
US8468351B2 (en) * 2006-12-15 2013-06-18 Codesealer Aps Digital data authentication
US20080147555A1 (en) 2006-12-18 2008-06-19 Daryl Carvis Cromer System and Method for Using a Hypervisor to Control Access to a Rental Computer
US8661552B2 (en) 2007-06-28 2014-02-25 Microsoft Corporation Provisioning a computing system for digital rights management
US8462954B2 (en) * 2008-05-30 2013-06-11 Motorola Mobility Llc Content encryption using at least one content pre-key
WO2010090664A1 (en) 2009-02-05 2010-08-12 Wwpass Corporation Centralized authentication system with safe private data storage and method
JP5262941B2 (ja) * 2009-04-10 2013-08-14 ソニー株式会社 認証装置、認証方法、及びプログラム
JP5178839B2 (ja) * 2009-11-27 2013-04-10 株式会社東芝 メモリチップ

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080137848A1 (en) 2003-07-07 2008-06-12 Cryptography Research, Inc. Reprogrammable security for controlling piracy and enabling interactive content

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. Menezes et. al., "Handbook of Applied Cryptography", CRC Press, pp. 489-541, (1996)*

Also Published As

Publication number Publication date
EP2735117B1 (en) 2018-09-19
US8782420B2 (en) 2014-07-15
AU2012287219B2 (en) 2015-07-09
US20130024697A1 (en) 2013-01-24
EP2735117A1 (en) 2014-05-28
AU2012287219A1 (en) 2014-02-13
DK2735117T3 (en) 2019-01-07
CN103703718A (zh) 2014-04-02
CN103703718B (zh) 2017-06-27
US20150019865A1 (en) 2015-01-15
WO2013016141A1 (en) 2013-01-31
JP2014522171A (ja) 2014-08-28
KR20140040272A (ko) 2014-04-02
CA2844359A1 (en) 2013-01-31
JP2016129403A (ja) 2016-07-14
EP2735117A4 (en) 2015-04-15
CA2844359C (en) 2018-12-04
US10972439B2 (en) 2021-04-06

Similar Documents

Publication Publication Date Title
JP7033120B2 (ja) トラステッドコンピューティングに基づく量子鍵配送のための方法及びシステム
US11621842B2 (en) Origin certificate based online certificate issuance
CN110378139B (zh) 一种数据密钥保护方法、系统及电子设备和存储介质
US8925109B2 (en) Client-side player file and content license verification
US9043604B2 (en) Method and apparatus for key provisioning of hardware devices
US9489520B2 (en) Decryption and encryption of application data
EP1636664B1 (en) Proof of execution using random function
US10972439B2 (en) System and method for obfuscating initiation values of a cryptography protocol
US10339275B2 (en) License confirmation via embedded confirmation challenge
CN111510426A (zh) 物联网配网加密方法、装置、系统、电子设备及存储介质
US9800410B1 (en) Data encryption system and method
US20220407690A1 (en) Key ladder generating a device public key
KR100883442B1 (ko) 온라인 서비스를 사용하여 직접 증명 비밀키를 디바이스에전달하는 방법
KR101415786B1 (ko) 온라인 실행 코드 기술과 암호화 기반 불법 복제 방지 시스템 및 그 방법
KR20190046724A (ko) 어플리케이션의 무결성 검증 방법 및 장치
KR100959380B1 (ko) 플래시 컨텐츠 제공 방법

Legal Events

Date Code Title Description
A201 Request for examination
AMND Amendment
E902 Notification of reason for refusal
AMND Amendment
E601 Decision to refuse application
AMND Amendment
X701 Decision to grant (after re-examination)
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20180928

Year of fee payment: 4