KR20070019643A - 암호화 통신 시스템 및 통신장치 - Google Patents

암호화 통신 시스템 및 통신장치 Download PDF

Info

Publication number
KR20070019643A
KR20070019643A KR1020067005643A KR20067005643A KR20070019643A KR 20070019643 A KR20070019643 A KR 20070019643A KR 1020067005643 A KR1020067005643 A KR 1020067005643A KR 20067005643 A KR20067005643 A KR 20067005643A KR 20070019643 A KR20070019643 A KR 20070019643A
Authority
KR
South Korea
Prior art keywords
key
data
encryption
unit
communication
Prior art date
Application number
KR1020067005643A
Other languages
English (en)
Other versions
KR101087824B1 (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 KR20070019643A publication Critical patent/KR20070019643A/ko
Application granted granted Critical
Publication of KR101087824B1 publication Critical patent/KR101087824B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • 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
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/80Wireless

Abstract

제 1 및 제 2 장치를 포함하는 암호화 통신 시스템에서, 제 1 장치는 제 2 장치의 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 데이터를 생성하고, 이어 이를 제 2 장치에 송신하며, 제 2 장치로부터 제 2 암호화 데이터를 수신하여 제 1 장치의 비밀키를 이용하여 이를 해독하여 제 2 키를 취득하고, 제 1 및 제 2 키에 기초하여 제 2 장치와의 통신에 이용하기 위한 제 1 암호화 키를 생성한다. 제 2 장치는 제 1 장치의 공개키를 이용하여 제 3 키를 암호화하여 제 2 암호화 데이터를 생성하고, 이를 제 1 장치로 송신하고, 제 1 암호화 데이터를 수신하여 이를 제 2 장치의 비밀키로 해독하여 제 4 키를 취득하며, 제 3 및 제 4 키에 기초하여 제 1 장치와의 통신에 이용되는 제 2 암호화 키를 생성한다. 제 1 및 제 2 장치는 제 1 및 제 2 암호화 키를 이용하여 암호화 통신을 수행한다.
암호화, 인증서, 공개키, 비밀키, 키 공유, 캡슐화

Description

암호화 통신 시스템 및 통신장치{ENCRYPTED COMMUNICATION SYSTEM AND COMMUNICATION DEVICE}
본 발명은 장치 간에 키를 공유하고 암호화 통신을 수행하는 암호화 통신기술에 관한 것이다.
최근 들어, 가전기기, 이동전화 등 사이에서 네트워크를 통하여 통신하는 기회가 증가하고 있다. 이러한 장치들로 저작물을 보호하고 통신 콘텐츠 누출을 방지하기 위하여, 장치 인증과 키 공유를 실행한 후 공유 키를 이용한 암호화 통신이 수행된다.
인증/키-공유 체계에 대해서, DTCP(Digital transmission Content Protection)라 불리는 명세가 IEEE 1394 버스를 이용하여 AV 장치들이 연결되는 경우 적용되는 체계를 규정하고 있다. DTCP에 의하면, 타원-곡선 DSA 서명을 이용한 챌린지-레스폰스 인증이 인증 체계에서 적용되며, 타원-곡선 DH 키 공유가 키-공유 체계에 적용된다. DTCP에 관한 개시는 DTCP 명세에 대한 백서(URL: http://www.dtcp.com/spec.html)에서 발견할 수 있고, 반면에 챌린지-레스폰스 인증, 타원-곡선 DSA 서명, 및 타원-곡선 DH키 공유에 관한 개시는 타츠아키 오카모토(Tatsuaki OKAMOTO)와 히로스케 야마모토(Hirosuke YAMAMOTO)에 의한 현대 암호 법(Modern Cryptography, 1997, 산교 도소 발행, 일본에서만 구입가능)에서 발견할 수 있다.
그러나, DTCP가 규정한 인증/키-공유 체계의 아직까지 입증되지 않은 시큐리티(security)에 관해서 불확실함이 있다. 여기서, 시큐리티의 입증은, 공개키 암호화에 있어서, 관련 수학문제가 풀기 어려워 공개 키 암호화의 시큐리티 보장을 제공한다는 가정에 기초하여 비밀 키를 소유하지 않은 사용자는 암호문을 해독할 수 없다는 것을 입증하는 것을 말한다(예를 들어, Mihir BELLARE, Phillip ROGAWAY의 "인증 암호화 체계에서 랜덤 오라클의 사용을 최소화하는 것(Minimizing the use random oracles in authenticated encryption schemes)", 1997, URL: http://www.cs.ucdavis.edu/research/tech-reports/1997/CSE-97-9.pdf).
상기한 문제를 고려하여 구현된 본 발명의 목적은 최고의 시큐리티를 갖는 암호화 키를 공유할 수 있는 암호화 통신 시스템을 제공하는 것이다.
상기한 목적을 달성하기 위하여, 본 발명은 제 1 및 제 2 장치를 포함하는 암호화 통신 시스템이다. 제 1 장치는, (i) 상기 제 2 장치의 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 데이터를 생성하고, 상기 제 1 암호화 데이터를 상기 제 2 장치에 송신하고, (ii) 상기 제 2 장치로부터 제 2 암호화 데이터를 수신하고 상기 제 1 장치의 비밀키를 이용하여 상기 제 2 암호화 데이터를 해독하며, (iii) 상기 제 1 및 제 2 키에 기초하여, 상기 제 2 장치와의 통신에 이용하기 위한 제 1 암호화 키를 생성한다. 제 2 장치는, (i) 상기 제 1 장치의 공개키를 이용하여 제 3 키를 암호화하여 상기 제 2 암호화 데이터를 생성하고, 상기 제 2 암호화 데이터를 상기 제 1 장치에 송신하고, (ii) 상기 제 1 장치로부터 상기 제 1 암호화 데이터를 수신하고, 상기 암호화 데이터를 상기 제 2 장치의 비밀키를 이용하여 해독하여 제 4 키를 취득하며, (iii) 상기 제 3 및 제 4 키에 기초하여, 상기 제 1 장치와의 통신에 이용하기 위한 제 2 암호화 키를 생성한다. 제 1 및 제 2 장치는 상기 제 1 및 제 2 암호화 키를 이용하여 암호화 통신을 수행한다.
이 구성에 의하면, 암호화 키는 두 공유키로부터 새로이 생성되고, 이에 따라 통신 데이터가 보호될 수 있도록 한다. 이는 암호화 데이터 통신에 이용된 암호화 키는, 공유키 중 하나가 권한 없는 사용자에게 노출되더라도, 안정하게 유지되기 때문이다.
또한, 암호화 데이터가 정확하게 해독되어 두 공유키를 취득할 수 있는지에 따라 다른 통신 측의 장치가 정당한 장치인지를 인증할 수 있다.
도 1은 암호화 통신 시스템의 전체 구조를 나타낸다.
도 2는 장치 A(100)와 장치 B(200)의 구조를 나타내는 블록도이다.
도 3은 장치 A(100)의 키 공유부(120)의 구조를 나타내는 블록도이다.
도 4는 장치 A(100)의 콘텐츠-데이터 처리부(130)의 구조를 나타내는 블록도이다.
도 5는 장치 B(200)의 키 공유부(220)의 구조를 나타내는 블록도이다.
도 6은 장치 B(200)의 콘텐츠-데이터 처리부(230)의 구조를 나타내는 블록도 이다.
도 7은 키 공유부에 의해 수행되는 키 공유 동작을 나타내는 플로차트이다.
도 8은 인증부에 의해 수행되는 상호 인증동작을 나타내는 플로차트이다.
도 9는 콘텐츠-데이터 처리부에 의해 수행되는 데이터 전송동작을 나타내는 플로차트이다.
이하에 본 발명의 바람직한 실시예를 도면을 이용하여 기술한다.
1. 암호화 통신 시스템(1)의 구조
도 1에 도시된 바와 같이, 암호화 통신 시스템(1)은 장치 A(100)와 장치 B(200)로 구성된다. 장치 A(100)와 장치 B(200)는 비디오, 오디오 등으로 형성된 콘텐츠를 재생한다.
암호화 통신 시스템(1)은 장치 간의 인증과 키 공유를 수행하고, 공유 키를 이용하여 암호화 통신을 수행한다. 이 실시예에 제공된 예는 콘텐츠 데이터가 공유 키를 이용하여 송신되고 수신되는 것을 포함한다.
1.1 장치 A(100)의 구조
도 2에 도시한 바와 같이, 장치 A(100)는 송수신부(102), 콘텐츠 데이터 저장부(103), 공유키 저장부(109), 인증부(112), 제어부(115), 입출력부(116), 재생부(117), 인터페이스(118), 키 인증부(120), 및 콘텐츠 데이터 처리부(130)로 구성 된다.
장치 A(100)는, 구체적으로, 마이크로프로세서, ROM, RAM, 하드디스크 유닛 등으로 구성된 컴퓨터 시스템이다. 컴퓨터 프로그램은 RAM이나 하드디스크 유닛에 저장된다. 장치 A(100)는 컴퓨터 프로그램에 따라 마이크로프로세서가 동작한 결과로 기능을 달성한다.
장치 A(100)는 모니터 또는 스피커와 같은 외부장치에 인터페이스(118)를 통하여 접속할 수 있고, 콘텐츠 데이터가 재생될 때, 비디오 및 오디오 신호는 인터페이스(118)를 통하여 출력된다.
다양한 구성요소를 이하 설명한다.
(1) 키 인증부(120)
키 인증부(120)는, 도 3에 도시된 바와 같이, 검증데이터 저장부(101), 인증서 검증부(104), 비밀키 저장부(105), 키 생성부(106), 키 해독부(107), 및 공유키 생성부(108)로 구성된다.
키 인증부(120)는 장치 A(100)에서 장치 B(200)로 키 KA를 전달하고, 장치 B(200)에서 장치 A(100)로 전달된 키 KB를 수신하며, 키 KA와 KB를 공유한다. 공유 키 KA와 KB로부터, 키 인증부(120)는 암호화 통신에 이용하기 위한 공유키 KS와, 통신 데이터의 변형검출(tamper detection)에 이용하기 위한 공유키 KH를 생성한다.
(a) 검증데이터 저장부(101)
검증데이터 저장부(101)는 장치 A(100)의 공개키 인증서 Cert_A와 인증국(Certification Authority; CA)의 공개키 KPC를 저장한다.
인증서 Cert_A는 공개키 KPA와 서명 SKPA를 포함한다.
공개키 KPA는 CA에 의해 장치 A(100)에 발행된다. 서명 SKPA도 또한 CA가 발행하며, 공개키 KPA가 정당한 공개키라는 것을 증명한다. 서명 SKPA를 생성하기 위하여, 공개키 KPC에 대응하는 CA의 비밀키 KSC를 이용하여 공개키 KPA에 대해 서명 생성 알고리즘 S1이 실행된다.
여기서, CA는 암호화 통신 시스템(1)에 속하는 장치의 공개키의 정당성을 증명하는 공개키 인증서를 발행하는 신뢰할 수 있는 제 3 자 기관이다. 서명 생성 알고리즘 S1은, 예를 들어, RSA 서명, 타원-곡선 DSA 서명 등일 수 있다는 것에 유의하라. "현대 암호법"(상기 참조)은 이들 알고리즘에 대해 상세히 논하고 있다.
(b) 비밀키 저장부(105)
비밀키 저장부(105)는 비밀키 KSA를 저장한다. 비밀키 KSA는 공개키 KPA에 대응하고, 미리 CA에 의해 생성된다.
(c) 인증서 검증부(104)
인증서 검증부(104)는 다른 장치로부터 수신한 공개키 인증서가 CA가 발행한 정당한 인증서인지의 여부를 검증한다.
장치 B(200)의 공개키 인증서 Cert_B를 수신한 경우, 제어부(115)의 제어하에 인증서 검증부(104)는 공개키 인증서 Cert_B에 포함된 서명 SKPB와 공개키 KPB를 제거한다. 인증서 검증부(104)는 검증데이터 저장부(101)로부터 공개키 KPC를 판독하고, 공개키 KPC와 KPB를 이용하여 서명 SKPB에 대해 서명검증 알고리즘 V1을 실행하여 서명을 검증한다. 검증이 성공적이면, 인증서 검증부(104)는 인증서에 포함된 공개키 KPB를 키 생성부(106)에 출력한다. 검증이 성공적이지 않으면, 인증서 검증부(104)는 처리를 종료한다.
(d) 키 생성부(106)
키 생성부(106)는 인증서 검증부(104)로부터 장치 B(200)의 공개키 KPB를 수신하고, 키 캡슐화 메커니즘(key encapsulation mechanism)에 기초하여 키 KA와 키 정보 KEMA를 생성한다.
여기서, 키 캡슐화 메커니즘은 공개키 암호화를 이용하여 송신 단의 장치("송신기")로부터 수신 단의 장치("수신기")로 공유키를 전달하기 위한 알고리즘이다. 송신기는 공개키 암호화 알고리즘 E에 수신기의 공개키 pk를 입력하여 암호문 C와 공유키 K를 생성하고, 암호문 C를 수신기에 전송한다. 수신기는 수신기의 비밀키 sk와 암호문 C를 공개키 해독 알고리즘 D에 입력하여 동일한 공유키 K를 송신기에 전달한다.
이어 공유키 K를 이용하는 공통키 암호화로 통신 데이터가 암호화된다.
정보의 송신이 송신기에서 수신기로 단방향으로 실행됨에도 불구하고, 송신 기가 고유키를 인위적으로 생성할 수 없기 때문에 송신기에 의한 어떠한 권한 없는 행위도 방지된다는 사실은 종래의 키 전잘 체계에서 발견할 수 없는 특징이다.
키 생성부(106)는, 입력으로서 장치 B(200)의 공개키 KPB로, 키 캡슐화 메커니즘의 공유키 K와 암호문 C에 각각 동등한 키 KA와 키 정보 KEMA를 생성한다. 키 생성부(106)는 키 KA와 키 정보 KEMA를 각각 공유키 생성부(108)와 제어부(115)에 출력한다.
키 캡슐화 메커니즘에 관한 상세한 개시는 빅터 숲(Victor SHOUP)의 "공개키 암호화에 대한 ISO 표준을 위한 제안(버전 2.1)"(2001. 12. 20)(URL: http://shoup.net/papers/iso-2_1.pdf, 2002. 9. 29. 열람)에서 발견할 수 있다.
(e) 키 해독부(107)
키 해독부(107)는 제어부(115)의 제어하에 장치 B(200)에서 전송한 키 정보 KEMB를 수신한다. 키 정보 KEMB는 키 캡슐화 메커니즘에서 암호문 C와 동등하다.
키 해독부(107)는 비밀키 저장부(105)로부터 비밀키 KSA를 판독한다. 비밀키 KSA는 키 캡슐화 메커니즘에서 수신기의 비밀키와 동등하다. 키 해독부(107)는 키 정보 KEMB와 비밀키 KSA를 입력으로 하여 키 정보 KEMA를 해독하여 키 KB'를 취득하고, 키 KB'를 공유키 생성부(108)에 출력한다.
(f) 공유키 생성부(108)
공유키 생성부(108)는 제어부(115)의 제어하에 키 KA와 KB'를 각각 키 생성 부(106)와 키 해독부(107)로부터 수신한다. 공유키 생성부(108)는 키 KA와 KB'를 언급한 순서대로 연쇄 결합(concatenate)시켜 키 데이터 KA∥KB'를 생성한다. 공유키 생성부(108)는 키 데이터 KA∥KB'에 해시함수를 실행하여 해시값 H를 생성한다. 이어 공유키 생성부(108)는 해시값을 분리하여 상부 비트는 암호화에 이용하기 위한 공유키 KSa로 하고 나머지는 해싱에 이용하기 위한 공유키 KHa로 한다.
공유키 생성부(108)는 공유키 KSa와 KHa를 공유키 저장부(109)에 저장한다.
(2) 공유키 저장부(109)
공유키 저장부(109)는 공유키 생성부(108)가 생성한 공유키 KSa와 KHa를 저장한다.
(3) 인증부(112)
인증부(112)는 공유키 저장부(109)에 저장된 공유키 KSa를 이용하여 다른 통신측의 장치(제공된 예의 장치 B(200))와 상호 인증을 실행한다. 여기서, 인증부(112)는, 예를 들어, 챌린지-레스폰스 인증을 실행할 수 있다.
상세한 처리는 나중에 설명한다.
(4) 콘텐츠 데이터 처리부(130)
도 4에 도시한 바와 같이, 콘텐츠 데이터 처리부(130)는 암호화부(110), 해독부(111), 해시값 산출부(113), 및 변형검출부(114)로 구성되고, 콘텐츠 데이터의 송수신에 관한 처리를 수행한다.
(a) 암호화부(110)
암호화부(110)는 제어부(115)의 제어하에 암호화에 이용하는 공유키 KSa와 콘텐츠 데이터 DA를 각각 공유키 저장부(109)와 콘텐츠 데이터 저장부(103)로부터 판독한다. 암호화부(110)는 공유키 KSa를 이용하여 콘텐츠 데이터 DA에 암호화 알고리즘 E1을 수행함으로써 콘텐츠 데이터 DA를 암호화하여 암호화 데이터 CDA = Enc(KSa, DA)를 생성한다. Enc(KSa, DA)는 공유키 KSa를 이용하는 공통키 암호화로 콘텐츠 데이터 DA를 암호화함으로써 생성되는 암호문이다.
여기서, 암호화 알고리즘 E1은, 예를 들어, AES(Advanced Encryption Standard) 알고리즘이다. AES의 해독은 잘 알려져 있어 생략한다.
암호화부(110)는 암호화 데이터 CDA를 제어부(115)에 출력한다.
(b) 해시값 산출부(113)
해시값 산출부(113)는 제어부(115)의 제어하에 해싱에 사용되는 공유키 KHa와 콘텐츠 데이터 DA를 각각 공유키 저장부(109)와 콘텐츠 데이터 저장부(103)로부터 판독한다. 해시값 산출부(113)는 공유키 KHa를 이용하여 콘텐츠 데이터 DA에 대한 해시값 HDA = Hash(KHa, DA)를 산출한다. 여기서, HDA = Hash(KHa, DA)는 공유키 KHa를 이용하는 해시함수로 산출된 콘텐츠 데이터 DA의 해시값을 의미한다. 여기서, Hash(KHa, DA)는 Hash(KHa, DA) = SHA1(KHa∥DA)로 설정될 수 있다는 것에 유의해야 한다. 여기서, SHA1(x)는 x의 해시 함수값이고, "∥"는 연쇄 결합 동작을 나타낸다.
해시값 산출부(113)는 제어부(115)에 해시값 HDA를 출력한다.
(c) 해독부(111)
해독부(111)는 암호화 데이터 CDB = Enc(KSb, DB)를 수신하고 암호화에 이용된 공유키 KSa를 제어부(115)의 제어하에 공유키 저장부(109)로부터 판독한다. 해독부(111)는 공유키 KSa를 이용하여 암호화 데이터 CDB에 해독 알고리즘 D1을 수행함으로써 암호화 데이터 CDB를 해독하여 평문 콘텐츠 데이터 DB'를 취득한다. 해독 알고리즘 D1은 암호화 알고리즘 E1와 반대의 처리를 수행하는 것에 유의하라.
여기서, 공유키가 공유키 생성부(108)에 의해 정확하게 생성되면, 공유키 저장부(109)에 저장된 공유키 KSa는 장치 B(200)가 보유한 공유키 KSb와 동일할 것이다. 다시 말해, 이들 두 공유키는 동일하면, 장치 A(100)가 보유한 공유키 KSa를 이용하여 원래의 콘텐츠 데이터 DB와 동일한 콘텐츠 데이터 DB'를 취득할 수 있다.
해독부(111)는 콘텐츠 데이터 DB'를 변형검출부(114)에 출력한다.
(d) 변형검출부(114)
변형검출부(114)는 해독부(111)가 해독한 콘텐츠 데이터 DB'가 변형되었는지를 판정한다.
해독부(111)로부터 해시값 HDB와, 콘텐츠 데이터 DB'를 수신한 경우, 변형검 출부(114)는 해싱에 이용된 공유키 KHa를 제어부(115)의 제어하에 공유키 저장부(109)로부터 판독한다. 변형검출부(114)는 공유키 KHa를 이용하여 콘텐츠 데이터 DB'에 대해 해시값 HDB' = Hash(KHa, DB')를 산출한다.
이어 변형검출부(114)는 산출된 해시값 HDB'를 수신한 해시값 HDB와 비교한다. 해시값이 일치하면, 변형검출부(114)는 변형이 없는 것으로 판정하고, 콘텐츠 데이터 DB'를 콘텐츠 데이터 저장부(103)에 저장한다. 해시값이 일치하지 않으면, 변형검출부(114)는 변형이 있는 것으로 판정하고, 콘텐츠 데이터 DB'를 저장하지 않는다.
(5) 콘텐츠 데이터 저장부(103)
콘텐츠 데이터 저장부(103)는 콘텐츠 데이터 DA를 저장한다.
콘텐츠 데이터 저장부(103)는 또한 콘텐츠 데이터 처리부(130)가 콘텐츠 데이터 저장부(103)에 기록한 콘텐츠 데이터 DB'를 저장한다.
여기서, 콘텐츠 데이터 DA와 DB'는, 예를 들어, 비디오, 오디오 등과 같은 디지털 데이터이다.
(6) 제어부(115), 입출력부(116), 송수신부(102)
입출력부(116)는 사용자 조작에 의해 명령 정보를 수신하고, 수신한 정보를 제어부(115)에 출력한다.
송수신부(102)는 장치 B(200)와 제어부(115) 간의 데이터의 송신과 수신을 실행한다.
제어부(115)는 입출력부(116)가 수신한 사용자로부터의 명령 정보에 기초하여 키 공유, 상호 인증, 콘텐츠 데이터 송수신 및 재생을 실행한다.
제어부(115)는, 키 공유를 지시하는 명령 정보를 수신한 경우, 키 인증부(120)를 제어하여 암호화에 이용하는 공유키 KSa와 해싱에 이용하는 공유키 KHa를 생성한다. 키 생성부(106)로부터 키 정보 KEMA를 수신한 경우, 제어부(115)는 수신한 키 정보를 송수신부(102)를 통하여 장치 B(200)에 송신한다. 송수신부(102)를 통하여 키 정보 KEMA를 수신한 경우, 제어부(115)는 수신한 키 정보를 키 해독부(107)에 출력한다.
상호 인증을 지시하는 명령 정보를 수신한 경우, 제어부(115)는 인증부(112)로 하여금 상호 인증을 수행하도록 한다.
콘텐츠 데이터의 송수신을 지시하는 명령 정보를 수신한 경우, 제어부(115)는 콘텐츠 데이터 처리부(130)를 제어하여 콘텐츠 데이터의 송수신을 실행하도록 한다. 콘텐츠 데이터 DA의 송신에서 암호화 데이터 CDA와 해시값 HDA를 각각 암호화부(110)와 해시값 산출부(113)로부터 수신한 경우, 제어부(115)는 암호화 데이터와 해시값을 송수신부(102)를 통하여 장치 B(200)에 송신한다. 송수신부(102)를 통하여 장치 B(200)로부터 암호화 데이터 CDB와 해시값 HDB를 수신한 경우, 제어부(115)는 암호화 데이터와 해시값을 해독부(111)와 변형검출부(114)에 각각 출력한다.
콘텐츠 데이터 DA 또는 DB'의 재생을 지시하는 명령 정보를 수신한 경우, 제 어부(115)는 지시한 콘텐츠 데이터를 재생부(117)에 출력하고, 재생부(117)를 제어하여 콘텐츠 데이터를 재생한다.
(7) 재생부(117), 인터페이스(118)
인터페이스(118)는 예로서 텔레비전, 모니터, 및 스피커 등을 포함하는 외부장치에 연결된다.
재생부(117)는 콘텐츠 데이터로부터 비디오 신호와 오디오 신호를 생성하고, 이 신호를 인터페이스(118)를 통하여 외부장치에 출력한다.
1.2 장치 B(200)의 구조
장치 B(200)는, 도 2에 도시된 바와 같이, 송수신부(202), 콘텐츠 데이터 저장부(203), 공유키 저장부(209), 인증부(212), 제어부(215), 입출력부(206), 재생부(217), 모니터(218), 스피커(219), 키 공유부(220), 및 콘텐츠 데이터 처리부(230)로 구성된다.
장치 B(200)는, 장치 A(100)와 같이, 마이크로프로세서, ROM, RAM, 하드디스크 유닛 등으로 구성된 컴퓨터 시스템이다. 컴퓨터 프로그램은 RAM이나 하드디스크 유닛에 저장된다. 장치 B(200)는 컴퓨터 프로그램에 따라 마이크로프로세서가 동작한 결과로 기능을 달성한다.
이하 다양한 구성요소에 대해 설명한다.
(1) 키 공유부(220)
키 공유부(220)는, 도 5에 도시된 바와 같이, 검증데이터 저장부(201), 인증서 검증부(204), 비밀키 저장부(205), 키 생성부(206), 키 해독부(207), 및 공유키 생성부(208)로 구성된다.
(a) 검증데이터 저장부(201)
검증데이터 저장부(201)는 장치 B(200)의 공개키 인증서 Cert_B와 CA의 공개키 KPC를 저장한다.
인증서 Cert_B는 장치 B(200)의 서명 SKPB와 공개키 KPB를 포함한다. 서명 SKPB는 공개키 KPB가 정당한 공개키라는 것을 인증하며, CA의 비밀키 KSC를 이용하여 공개키 KPB에 서명생성 알고리즘 S1을 수행함으로써 생성된 서명 데이터이다.
(b) 비밀키 저장부(205)
비밀키 저장부(205)는 공개키 KPB에 대응하는 비밀키 KSB를 저장한다.
(c) 인증서 검증부(204)
인증서 검증부(204)는, 장치 A(100)의 공개키 인증서 Cert_A를 수신한 경우, 제어부(215)의 제어하에 인증서 Cert_A에 포함된 서명 SKPA와 공개키 KPA를 제거한다. 인증서 검증부(204)는 검증데이터 저장부(201)로부터 공개키 KPC를 판독하고, 공개키 KPC와 KPA를 이용하여 서명 SKPA에 서명검증 알고리즘 V1을 실행하여 이 서 명을 검증한다. 검증이 성공적이면, 인증서 검증부(204)는 공개키 KPA를 키 생성부(206)에 출력한다. 검증이 성공적이지 않으면, 인증서 검증부(204)는 처리를 종료한다.
(d) 키 생성부(206)
키 생성부(206)는 키 캡슐화 메커니즘을 이용하여 키 KB와 키 정보 KEMB를 생성한다. 키 생성부(206)는 키 KB와 키 정보 KEMB를 각각 공유키 생성부(208)와 제어부(215)에 출력한다.
(e) 키 해독부(207)
키 해독부(207)는 제어부(215)의 제어하에 장치 A(100)로부터 키 정보 KEMA를 수신하고 비밀키 저장부(205)로부터 비밀키 KSB를 판독한다. 키 해독부(207)는 키 정보 KEMB와 비밀키 KSB를 입력으로 하여 키 정보 KEMB를 해독하여 키 KA'를 취득하고, 키 KA'를 공유키 생성부(208)에 출력한다.
(f) 공유키 생성부(208)
공유키 생성부(208)는 키 생성부(206)와 키 해독부(207)로부터 각각 키 KB와 키 KA'를 수신한다. 공유키 생성부(208)는, 공유키 생성부(108)와 유사하게, 키 KA'와 KB에 기초하여 암호화에 이용된 공유키 KSb와 해싱에 이용된 공유키 KHb를 생성한다. 공유키 생성부(208)는 공유키 저장부(209)에 공유키 KSb와 KHb를 저장한 다.
(2) 공유키 저장부(209)
공유키 저장부(209)는 공유키 생성부(208)가 생성한 공유키 KSb와 KHb를 저장한다.
(3) 인증부(212)
인증부(212)는 공유키 저장부(209)에 저장된 공유키 KSb를 이용하여 인증부(112)와 상호 인증을 수행한다.
(4) 콘텐츠 데이터 처리부(230)
도 6에 나타낸 바와 같이, 콘텐츠 데이터 처리부(230)는 암호화부(210), 해독부(211), 해시값 산출부(213), 및 변형검출부(214)로 구성된다.
(a) 암호화부(210)
암호화부(210)는 제어부(215)의 제어하에 콘텐츠 데이터 DB와 암호화에 이용된 공유키 KSb를 각각 콘텐츠 데이터 저장부(203)와 공유키 저장부(209)로부터 판독한다. 암호화부(210)는 공유키 KSb를 이용하여 콘텐츠 데이터 DB에 암호화 알고리즘 E1을 실행함으로써 콘텐츠 데이터 DB를 암호화하여 암호화 데이터 CDB = Enc(KSb, DB)를 생성한다. 암호화부(210)는 암호화 데이터 CDB를 제어부(215)에 출 력한다.
(b) 해시값 산출부(213)
해시값 산출부(213)는 제어부(215)의 제어하에 해싱에 이용하기 위한 공유키 KHb와 콘텐츠 데이터 DB를 각각 공유키 저장부(209)와 콘텐츠 데이터 저장부(203)로부터 판독한다. 해시값 산출부(213)는 공유키 KHb를 이용하여 콘텐츠 데이터 DB에 대한 해시값 HDB = Hash(KHb, DB)를 산출하고, 해시값 HDB를 제어부(215)에 출력한다.
(c) 해독부(211)
해독부(211)는, 암호화 데이터 CDA = Enc(KSa, DA)를 수신한 경우, 제어부(215)의 제어하에 암호화에 이용된 공유키 KSb를 공유키 저장부(209)로부터 판독하고, 공유키 KSb를 이용하여 암호화 데이터 CDA를 해독하여 평문 콘텐츠 데이터 DA'를 취득한다.
해독부(211)는 콘텐츠 데이터 DA'를 변형검출부(214)에 출력한다.
(d) 변형검출부(214)
변형검출부(214)는 제어부(215)의 제어하에 해독부(211)로부터 해시값 HDA과 콘텐츠 데이터 DA'를 수신한다. 변형검출부(214)는 해싱에 이용된 공유키 KHb를 공유키 저장부(209)로부터 판독한다. 변형검출부(214)는 공유키 KHb를 이용하여 콘텐 츠 데이터 DA'에 대한 해시값 HDA' = Hash(KHb, DA')을 산출한다.
이어 변형검출부(214)는 산출한 해시값 HDA'를 수신한 해시값 HDA와 비교한다. 변형검출부(214)는 해시값이 일치하면 콘텐츠 데이터 DA'를 콘텐츠 데이터 저장부(203)에 저장하며, 해시값이 일치하지 않으면 콘텐츠 데이터 DA'를 저장하지 않는다.
(5) 콘텐츠 데이터 저장부(203)
콘텐츠 데이터 저장부(203)는 콘텐츠 데이터 DB를 저장한다.
콘텐츠 데이터 저장부(203)는 또한 콘텐츠 데이터 처리부(230)가 콘텐츠 데이터 저장부(203)에 기록한 콘텐츠 데이터 DA'를 저장한다.
(6) 제어부(215), 입출력부(206), 송수신부(202)
입출력부(206)는 외부 입력에 의해 수신한 명령 정보를 제어부(215)에 출력하고, 송수신부(202)는 장치 A(100)와 제어부(215) 간의 데이터의 송신과 수신을 수행한다.
제어부(215)는, 제어부(115)와 유사하게, 입출력부(206)가 사용자로부터 수신한 명령 정보에 기초하여 키 공유, 상호 인증, 콘텐츠 송신/수신 및 재생을 위한 처리를 수행한다.
(7) 재생부(217), 모니터(218), 스피커(219)
재생부(217)는 콘텐츠 데이터로부터 비디오 신호와 오디오 신호를 생성하고, 비디오 및 오디오 신호를 모니터(218)와 스피커(219)에 각각 출력한다.
2. 키 캡슐화 메커니즘
키 캡슐화 메커니즘에 의하면, 송신기로부터 수신기로 정보가 송신되고, 수신기는 수신한 정보에 기초하여 공유키를 생성한다.
키 캡슐화 메커니즘의 일 예로 PSEC-KEM를 여기서 설명한다. PSEM-KEM에 대한 상세한 내용은 타츠아키 오카모토(Tatsuaki OKAMOTO)의 "랜덤 오라클 모델에서 IND-CCA2 공개키 암호화를 구축하기 위한 일반적 변환(generic conversion for constructing IND-CCA2 public-key encryption in the random oracle model)"(타원곡선 암호화법에 대한 5차 워크샵, ECC 2001, 2001. 10. 30. URL: http://www.cacr.math.uwaterloo.ca/conference/2001/ecc/okamoto.ppt, 2002. 9. 29. 열람)에서 발견할 수 있다.
(a) 송신기와 수신기는 다음의 PSEC-KEM 시스템 파라미터를 갖는다.
- 타원곡선: E; 타원곡선상의 차수 n의 포인트
- 해시함수: G, H
상기한 "현대 암호법(Modern Cryptography)"에서 찾을 수 있는 상세한 내용이 주어졌기 때문에 타원곡선, 차수 및 해시함수에 관한 설명은 여기서 생략한다.
(b) 수신기의 공개키 pk와 비밀키 sk는 PSEC-KEM에서 다음과 같이 생성된다.
Zn의 원소 x가 임의로 선택되고, W= x*P가 생성된다.
여기서, Zn은 {0, 1, ..., n-1}로 형성된 세트이고, xP는 타원곡선상의 포인트 P를 x회 더함으로써 취득되는 타원곡선상의 포인트를 나타낸다. 타원곡선상의 포인트를 더하는 방법에 관한 설명은 상기한 "현대 암호법"에서 찾을 수 있다.
공개키 pk는 W(= x*P)로 설정되고, 비밀키 sk는 x로 설정된다.
(c) 송신기는 수신기의 공개키 pk를 취득하고, 공개키 pk를 공개키 암호화 알고리즘 KemE에 입력하며, 공유키 K와 암호문 C를 출력한다. 공개키 암호화 알고리즘 KemE는 다음에 기술한다.
Zn의 원소 s가 임의로 생성된다.
G(s)가 생성되고 G(s) = a∥K로 분할된다. 여기서, ∥는 비트 연쇄 결합이고, G(s)를 G(s) = a∥K로 분할하는 것은 G(s)의 상위 다수 비트가 a로 설정되고, 나머지 비트는 K로 설정되는 것을 나타낸다.
R = a*P 및 Q= a*W가 생성된다.
해시함수의 입력을 (a*P∥a*W)로 설정하고, H(a*P∥a*W)의 값이 임의로 생성된 원소 s에 작용하도록 함으로써, V = s XOR H(R∥Q)가 생성된다. 여기서, XOR은 배타적 OR 연산을 나타낸다.
공유키 K와 암호문 C = (R, v)가 출력된다.
송신기는 수신기에 암호문 C를 송신한다.
(d) 수신기는 송신기로부터 암호문 C를 수신하고, 수신기의 공개키 pk와 비밀키 sk와 함께 암호문 C = (R, v)을 공개키 해독 알고리즘 KemD에 입력하고, 공유키 K를 출력한다. 공개키 해독 알고리즘 KemD는 다음에 설명한다.
R= a*P로부터 비밀키 sk (=x)를 이용하여,
Q= x*R = x*(a*P) = a*(x*P) = a*W가 유도된다.
s' = v XOR H(R∥Q) (= v XOR H(a*P)∥a*W)가 생성된다.
G(s')가 생성되고, G(s')가 G(s') = a∥K로 분할된다.
수신기는 R= a*P가 수립되었는지를 검사한다. 수립되었으면, 공유키 K가 출력된다.
(e) 따라서, 송신기와 수신기가 각각 공개키 암호화 알고리즘 KemE와 공개키 해독 알고리즘 KemD를 이용하여 같은 값을 해시함수 G에 입력하여 동일한 공유키 K를 유도하는 것이 가능하다. 그 결과, 비밀키를 소유한 수신기는 송신기가 유도한 것과 동일한 공유키 K를 유도할 수 있다.
(f) 반면, 비밀키 sk를 알지 못하는 다른 수신기는 이들이 공개키 k를 취득하고 암호문 C를 수신하더라도 비밀키 sk (=x)를 모르기 때문에 R= a*P로부터 Q = a*W (=(ax)*P)를 산출할 수 없어 송신기가 유도한 것과 동일한 공유키 K를 유도할 수 없다. 이는 비밀키 sk를 모르는 수신기는 공개키 pk에 의존할 수만 있고 따라서 Q를 계산하는데 비밀키 sk (=x) 대신에 공개키 pk의 W= x*P를 이용하여야 하기 때문이다. 그러나, 일반적으로, 타원곡선 디피-헬만(Diffie-Hellman) 문제로 언급되는, a*P와 W = x*P에서 Q = a*W (=(ax)*P)를 유도하는 것은 a와 x의 값을 모르고 있는 한 산출하기 어렵다. (예를 들어, 닐 코블리츠(Neal KOBLITZ)의 "Algebraic Aspects of Cryptography: Algorithms and Computation in mathematics", Vol 3, pp. 132-133, Springer-Verlag, 1998. 참조)
(g) 타원곡선 디피-헬만 문제가 상기한 PSEC_KEM 알고리즘으로 풀기 어렵다면, 이는 비밀키를 모르는 수신기는 공유키 K를 취득할 수 없다는 것을 입증한다. 예를 들어, RSA-KEM과 같은 PSEC-KEM의 다른 KEM 알고리즘(상기한 빅터 숲(Victor SHOUP)의 "공개키 암호화에 대한 ISO 표준을 위한 제안" 참조)의 시큐리티도, 유사하게 어려운 수학문제에 기초하여, 다른 KEM 알고리즘을 이용하여 키 KA와 KB를 공유하는 것을 가능하게 하는 것으로 입증된다.
3. 암호화 통신 시스템(1)의 동작
3.1 공유키의 생성
장치 A(100)와 장치 B(200) 간에 키 캡슐화 메커니즘을 이용하여 공유키 KS와 KH를 생성하는 동작을 도 7을 참조하여 설명한다.
인증서 검증부(204)는 검증데이터 저장부(201)로부터 공개키 인증서 Cert_B 를 판독한다(단계 S501). 제어부(215)는 송수신부(202)를 통하여 장치 A(200)에 인증서 Cert_B를 송신한다(단계 S502).
제어부(115)는 송수신부(102)를 통하여 수신한 인증서 Cert_B를 인증서 검증부(104)에 출력한다. 인증서 Cert_B를 수신한 경우, 인증서 검증부(104)는 서명 SKPB와 공개키 KPB를 제거하고, 검증데이터 저장부(101)로부터 공개키 KPC를 판독한다. 이어 인증서 검증부(104)는 공개키 KPC를 이용하여 서명 SKPB를 검증한다(단계 S503). 검증 결과가 서명 SKPB가 정확하다는 것을 나타내면(단계 S504=YES), 인증서 검증부(104)는 공개키 KPB를 키 생성부(106)에 출력한다. 검증 결과가 서명 SKPB가 정확하지 않다는 것을 나타내면(단계 S504=NO), 인증서 검증부(104)는 처리를 종료한다.
키 생성부(106)는 키 캡슐화 메커니즘에 기초하여 키 KA와 키 정보 KEMA를 생성한다(단계 S505). 키 생성부(106)는 키 KA와 키 정보 KEMA를 각각 공유키 생성부(108)와 제어부(115)에 출력한다. 인증서 검증부(104)는 검증데이터 저장부(101)로부터 장치 A(100)의 공개키 인증서 Cert_A를 판독하고(단계 S506), 인증서 Cert_A를 제어부(115)에 출력한다.
제어부(115)는 키 정보 KEMA와 인증서 Cert_A를 송수신부(102)를 통하여 장치 B(200)에 송신한다(단계 S507).
키 정보 KEMA와 인증서 Cert_A를 수신한 경우, 장치 B(200)의 제어부(215)는 수신한 키 정보와 인증서를 각각 키 해독부(207)와 인증서 검증부(204)에 출력한다.
인증서 검증부(204)는 인증서 Cert_A를 수신하고, 서명 SKPA와 공개키 KPA를 제거하고, 검증데이터 저장부(201)로부터 공개키 KPC를 판독한다. 이어 인증서 검증부(204)는 공개키 KPC를 이용하여 서명 SKPA를 검증한다(단계 S508). 검증 결과가 서명 SKPA가 정확하다는 것을 나타내면(단계 S508=YES), 인증서 검증부(204)는 공개키 KPA를 키 생성부(206)에 출력한다. 검증 결과가 서명 SKPA가 정확하지 않다는 것을 나타내면(단계 S508=YES), 인증서 검증부(204)는 처리를 종료한다.
키 해독부(207)는 제어부(215)로부터 키 정보 KEMA를 수신하고, 비밀키 저장부(205)로부터 비밀키 KSB를 판독한다. 키 해독부(207)는 비밀키 KSB를 이용하여 키 정보 KEMA를 해독하여 키 KA'를 취득한다(단계 S510).
다음, 키 생성부(206)는 키 캡슐화 메커니즘에 기초하여 키 KB와 키 정보 KEMB를 생성한다(단계 S511). 키 생성부(206)는 키 KB와 키 정보 KEMB를 각각 공유키 생성부(208)와 제어부(215)에 출력한다. 제어부(215)는 키 정보 KEMB를 송수신부(202)를 통하여 장치 A(100)에 송신한다(단계 S512).
장치 A(100)의 제어부(115)는, 키 정보 KEMB를 수신한 경우, 수신한 키 정보를 키 해독부(107)에 출력한다. 키 해독부(107)는 키 정보 KEMB를 수신하고 비밀키 저장부(105)로부터 비밀키 KSA를 판독한다. 키 해독부(107)는 비밀키 KSA를 이용하여 키 정보 KEMB를 해독하여 키 KB'를 취득한다(단계 S513). 키 해독부(107)는 키 KB'를 공유키 생성부(108)에 출력한다.
공유키 생성부(108)는, 키 생성부(106)와 키 해독부(107)로부터 각각 키 KA와 KB'를 수신한 경우, 키 KA와 KB'를 이용하여 암호화에 이용된 공유키 KSa와 해 싱에 이용된 공유키 KHa를 생성하며(단계 S514), 공유키를 공유키 저장부(109)에 저장한다(단계 S515).
마찬가지로, 공유키 생성부(208)는, 키 생성부(106)와 키 해독부(207)로부터 각각 키 KB와 KA'를 수신한 경우, 키 KB와 KA'를 이용하여 암호화에 이용된 공유키 KSB와 해싱에 이용된 공유키 KHb를 생성하며(단계 S516), 공유키를 공유키 저장부(209)에 저장한다(단계 S517).
장치 A(100)과 B(200)는 이들이 정당한 장치라면 다른 장치로부터 수신한 키 정보를 정확하게 해독하여 키를 취득할 수 있을 것이므로 키 KA와 KB는 이러한 방법으로 공유될 수 있다.
장치들은, 양자 모두 정당하다면, 암호화에 이용하기 위한 동일한 공유키 KSa와 KSb, 그리고 해싱에 이용하기 위한 동일한 공유키 KHa와 KHb를 생성할 수 있다.
3.2 상호 인증
콘텐츠 데이터를 송신하기 전에 장치 A(100)와 B(200) 사이의 상호 인증을 수행하는 동작을 도 8을 참조하여 설명한다.
장치 A(100)의 인증부(112)는 임의로 난수 resA를 생성한다(단계 S531). 인증부(112)는 암호화에 사용된 공유키 KSa를 이용하여 난수 resA를 암호화하여 chaA를 생성한다(단계 S532). 인증부(112)는 chaA를 송수신부(102)를 통하여 장치 B(200)에 출력한다(단계 S533).
장치 B(200)의 인증부(212)는, 송수신부(202)를 통하여 chaA를 수신한 경우, 암호화에 사용된 공유키 KSb를 이용하여 chaA를 해독하여 resA'를 취득한다(단계 S534). 다음, 인증부(212)는 임의로 난수 resB를 생성한다(단계 S535). 인증부(212)는 암호화에 사용된 공유키 KSb를 이용하여 난수 resB를 암호화하여 chaB를 생성한다(단계 S536). 인증부(212)는 chaB를 장치 A(100)에 출력한다(단계 S537).
장치 A(100)의 인증부(112)는, chaB와 resA'를 수신한 경우, resA'가 단계 S531에서 생성된 resA와 일치하는지를 판정한다(단계 S538). 일치하지 않으면(단계 S538=NO), 인증부(112)는 인증이 실패한 것으로 판정하고, 처리를 종료한다. 일치하면(단계 S538=YES), 인증부(112)는 인증이 성공한 것으로 간주하고 처리를 계속한다. 인증부(112)는 공유키 KSa를 이용하여 chaB를 해독하여 resB'를 취득하고(단계 S539), resB'를 장치 B(200)에 송신한다(단계 S540).
장치 B(200)의 인증부(212)는 resB'를 수신하고 resB'가 단계 S535에서 생성된 resB와 일치하는지를 판정한다(단계 S541). 일치하지 않으면(단계 S541=NO), 인증부(212)는 인증이 실패한 것으로 판정하고, 처리를 종료한다. 일치하면(단계 S541=YES), 인증부(212)는 처리를 계속한다.
장치 A(100)와 B(200)는 상호 상기한 바와 같이 장치 인증을 수행한다. 키 공유가 정확하게 수행되고 암호화에 사용된 공유키 KSa와 KSb가 동일하다면, 이 경우 다른 장치는 키가 정확하게 공유된 정당한 장치인 것으로 인증될 수 있다.
3.3 콘텐츠 데이터의 송신
장치 A(100)와 B(200) 사이에서 콘텐츠 데이터 DA와 DB를 송신하는 동작을 도 9를 참조하여 설명한다.
암호화부(110)는 제어부(115)의 제어하에 콘텐츠 데이터 DA와 암호화에 사용된 공유키 KSa를 각각 송수신부(102)와 공유키 저장부(109)로부터 판독한다. 암호화부(110)는 공유키 KSa를 이용하여 콘텐츠 데이터 DA를 암호화하여 암호화 데이터 CDA를 생성한다(단계 S561). 암호화부(110)는 암호화 데이터 CDA를 제어부(115)에 출력한다.
해시값 산출부(113)는 제어부(115)의 제어하에 콘텐츠 데이터 DA와 해싱에 사용된 공유키 KHa를 각각 콘텐츠 데이터 저장부(103)와 공유키 저장부(109)로부터 판독하고, 공유키 KHa를 이용하여 제어부(115)에 대한 해시값을 산출한다. 해시값 산출부(113)는 해시값 HDA를 제어부(115)에 출력한다.
제어부(115)는, 암호화 데이터 CDA와 해시값 HDA를 수신한 경우, 암호화 데이터와 해시값을 송수신부(102)를 통하여 장치 B(200)에 송신한다(단계 S563).
장치 B(200)의 해독부(211)는 제어부(215)로부터 암호화 데이터 CDA를 수신하고, 공유키 저장부(209)로부터 암호화에 사용된 공유키 KSb를 판독한다. 해독부(211)는 공유키 KSb를 이용하여 암호화 데이터 CDA를 해독하여 평문 콘텐츠 데이터 DA'를 취득한다(단계 S564). 해독부(211)는 콘텐츠 데이터 DA'를 변형검출부(214)에 출력한다.
변형검출부(214)는, 해시값 HDA와 콘텐츠 데이터 DA'를 각각 제어부(215)와 해독부(211)로부터 수신한 경우, 공유키 저장부(209)로부터 해싱에 사용된 공유키 KHb를 판독한다. 변형검출부(214)는 공유키 KHb를 이용하여 콘텐츠 데이터 DA'에 대한 해시값 HDA'를 생성한다(단계 S565). 변형검출부(214)는 생성된 해시값 HDA'가 수신한 해시값 HDA와 일치하는지를 판정하고(단계 S566), 일치하지 않으면(단계 S566=NO), 변형검출부(214)는 변형이 있다는 것으로 간주하고 처리를 종료한다. 일치하면(단계 S566=YES), 변형검출부(214)는 변형이 없는 것으로 간주하고 콘텐츠 데이터 DA'를 콘텐츠 데이터 저장부(203)에 저장한다(단계 S567).
암호화부(210)는 제어부(215)의 제어하에 콘텐츠 데이터 DB와 공유키 KSb를 각각 콘텐츠 데이터 저장부(203)와 공유키 저장부(209)로부터 판독한다. 암호화부(210)는 공유키 KSB를 이용하여 콘텐츠 데이터 DB를 암호화하여 암호화 데이터 CDB를 생성한다(단계 S568). 암호화부(210)는 암호화 데이터 CDB를 제어부(215)에 출력한다.
해시값 산출부(213)는 제어부(215)의 제어하에 콘텐츠 데이터 DB와 공유키 KHb를 각각 콘텐츠 데이터 저장부(203)와 공유키 저장부(209)로부터 판독한다. 해시값 산출부(213)는 공유키 KHb를 사용하여 콘텐츠 데이터 DB에 대한 해시값 HDB를 생성한다(단계 S569). 해시값 산출부(213)는 해시값 HDB를 제어부(215)에 출력한다.
제어부(215)는, 암호화 데이터 CDB와 해시값 HDB를 수신한 경우, 암호화 데이터와 해시값을 송수신부(202)를 통하여 장치 A(100)에 송신한다(단계 S570).
장치 A(100)의 해독부(111)는, 암호화 데이터 CDB를 수신한 경우, 제어부(115)의 제어하에 공유키 저장부(109)로부터 공유키 KSa를 판독한다. 해독부(111) 는 공유키 KSa를 이용하여 암호화 데이터 CDB를 해독하여 평문 콘텐츠 데이터 DB'를 취득한다(단계 S571). 해독부(111)는 콘텐츠 데이터 DB'를 변형검출부(114)에 출력한다.
변형검출부(114)는 해독부(111)로부터 콘텐츠 데이터 DB'를 수신하고 공유키 저장부(109)로부터 공유키 KHa를 판독한다. 변형검출부(114)는 공유키 KHa를 이용하여 콘텐츠 데이터 DB'에 대한 해시값 HDB'를 산출한다(단계 S572). 변형검출부(114)는 생성된 해시값 HDB'가 수신한 해시값 HDB와 일치하는지를 판정하고(단계 S573), 일치하지 않으면(단계 S573=NO), 변형검출부(114)는 변형이 있는 것으로 간주하여 처리를 종료한다. 일치하면(단계 S573=YES), 변형검출부(114)는 변형이 없는 것으로 간주하여 콘텐츠 데이터 DB'를 콘텐츠 데이터 저장부(103)에 저장한다(단계 S574).
4. 변형예
상기에서 바람직한 실시예에 기초하여 설명하였지만, 본 발명은 이 실시예에 한정되지 않는 것은 당연하다. 다음의 변형예도 포함된다.
(1) 바람직한 실시예의 콘텐츠 데이터는 장치 A(100)에서 B(200)로 그리고 장치 B(200)에서 A(100)로 양방향으로 송신되지만, 데이터 송신은 하나의 장치에서 다른 장치로 단방향일 수 있다.
(2) 키 공유, 상호 인증, 및 데이터 송신은 바람직한 실시예에서 연속적으로 설명하였지만, 다른 처리가 이들 사이에 위치할 수 있다. 예를 들어, 장치 기능(음악재생, 영화재생, 방송수신기능 등)을 확인하는 처리가 포함될 수 있다.
(3) 공개키 인증서, 공개키 및 콘텐츠 데이터는 분리된 저장부에 저장되어 있는 것으로 상기에서 설명하였지만, 이들은 같은 저장부에 저장될 수 있거나, 상기 데이터가 복수의 저장부에 개별적으로 저장될 수 있다.
(4) 상기에서 콘텐츠 데이터는 수신된 후 저장부에 저장되는 것으로 설명하였지만, 콘텐츠 데이터는 영상 데이터라면 화면에 출력될 수 있고, 음악 데이터라면 스피커를 통하여 출력될 수 있다.
(5) 상기에서 공개키 인증서는 공개키와 대응하는 서명 데이터를 포함하는 것으로 설명하였지만, 예를 들어, ID 정보와 같은 다른 데이터가 첨부될 수도 있다. 또한, 서명 데이터로 표시된 데이터는 공개키 또는 다른 데이터와 결합할 수 있다. 즉, 예를 들어, ID 정보와 연쇄 결합할 수 있다.
(6) 바람직한 실시예에서, 암호화와 해싱에 각각 사용하기 위한 공유키 KS와 KH는 키 KA와 KB의 연쇄 결합으로부터 취득한 데이터에 대한 해시값을 분리함으로써 생성되지만, 본 발명은 이러한 구성에 한정되지 않는다.
공유키 KS와 KH는 키 KA와 KB에 대해 수행한 배타적 OR의 결과를 분리함으로써, 또는 양 키 KA와 KB의 적어도 일부에 기초하여 생성될 수 있다.
(7) 해시값을 산출하고 암호문을 생성하는데 사용된 알고리즘은 바람직한 실시예에 개시된 것에 한정되지 않는다. 산출은 다른 알고리즘을 이용하여 당연히 수행될 수 있다.
(8) 본 발명은 상기의 방법일 수 있다. 그 방법은 컴퓨터에 의해 구현되는 컴퓨터 프로그램이거나 이 프로그램으로부터 형성된 디지털 신호일 수 있다.
본 발명은 예로서 플로피디스크, 하드디스크, CD-ROM, MO, DVD, DVD-ROM, DVD-RAM, DB(blu-ray disc), 및 반도체 메모리 등을 포함하는, 프로그램 또는 디지털 신호를 저장하는 컴퓨터-판독가능한 기록매체일 수 있다. 본 발명은 그러한 기록매체에 저장되는 프로그램 또는 디지털 신호일 수도 있다.
그러한 기록매체에 기록되는 프로그램 또는 디지털 신호는 네트워크 등을 통하여 송신될 수 있으며, 그 대표적인 예로 전기통신회로, 무선 또는 유선 통신회로, 및 인터넷을 포함한다.
본 발명은 선택적으로 마이크로프로세서와 메모리를 포함하는 컴퓨터 시스템일 수 있으며, 프로그램은 메모리에 저장되고 마이크로프로세서는 프로그램에 따라 동작한다.
본 발명은 또한 기록매체에 기록되어 또는 네트워크 등을 통하여 다른 컴퓨 터 시스템으로 프로그램이나 디지털 신호를 전송함으로써 다른 독립된 컴퓨터 시스템에서 실행될 수 있다.
(9) 본 발명은 상기한 실시예와 변형예의 임의의 조합일 수 있다.
5. 요약
상기한 바와 같이, 본 발명은 제 1 및 제 2 장치를 포함하는 암호화 통신 시스템이다. 제 1 장치는, (i) 상기 제 2 장치의 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 데이터를 생성하고, 상기 제 1 암호화 데이터를 상기 제 2 장치에 송신하고, (ii) 상기 제 2 장치로부터 제 2 암호화 데이터를 수신하고 상기 제 1 장치의 비밀키를 이용하여 상기 제 2 암호화 데이터를 해독하며, (iii) 상기 제 1 및 제 2 키에 기초하여, 상기 제 2 장치와의 통신에 이용하기 위한 제 1 암호화 키를 생성한다. 제 2 장치는, (i) 상기 제 1 장치의 공개키를 이용하여 제 3 키를 암호화하여 상기 제 2 암호화 데이터를 생성하고, 상기 제 2 암호화 데이터를 상기 제 1 장치에 송신하고, (ii) 상기 제 1 장치로부터 상기 제 1 암호화 데이터를 수신하고, 상기 암호화 데이터를 상기 제 2 장치의 비밀키를 이용하여 해독하여 제 4 키를 취득하며, (iii) 상기 제 3 및 제 4 키에 기초하여, 상기 제 1 장치와의 통신에 이용하기 위한 제 2 암호화 키를 생성한다. 제 1 및 제 2 장치는 상기 제 1 및 제 2 암호화 키를 이용하여 암호화 통신을 수행한다.
또한, 본 발명은 공유키를 이용하여 다른 장치와 암호화 통신을 수행하는 통 신장치이다. 통신장치는 상기 다른 장치가 보유한 비밀키에 대응하는 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 키 데이터를 생성하고, 상기 제 1 암호화 키 데이터를 상기 다른 장치에 송신하도록 동작가능한 데이터 생성부; 상기 다른 장치가 상기 통신장치의 공개키를 이용하여 제 3 키를 암호화하여 생성한 제 2 암호화 키 데이터를 상기 다른 장치로부터 수신하고 상기 통신장치의 비밀키를 이용하여 상기 제 2 암호화 키 데이터를 해독하여 제 2 키를 취득하도록 동작가능한 해독부; 상기 제 1 및 제 2 키에 기초하여 암호화 키를 생성하도록 동작가능한 키 생성부; 및 상기 암호화 키를 이용하여 상기 다른 장치와 암호화 통신을 수행하도록 동작가능한 통신부를 포함한다.
이들 구성에 의하면, 암호화 키는 두 공유키로부터 새로이 생성되고, 이에 따라 통신 데이터가 보호될 수 있도록 한다. 이는 암호화 데이터 통신에 이용된 암호화 키는, 공유키 중 하나가 권한 없는 사용자에게 노출되더라도, 안정하게 유지되기 때문이다. 또한, 종래의 키 공유에 의하면 두 공유키를 안전하게 보유할 필요가 있었지만, 본 발명에 의하면 암호화 키만을 안전하게 보유하는 것으로 충분하며, 이에 따라 메모리 사용이 감소하도록 할 수 있다. 또한, 통신에서 다른 장치의 인증은, 다른 장치가 암호화 데이터를 정확하게 해독하여 암호화 키를 정확하게 생성할 수 있는지에 따라 간접적으로 인증될 수 있다.
여기서, 상기 키 생성부는 상기 제 1 및 제 2 키에 기초하여 해시 키를 추가로 생성할 수 있으며, 상기 통신부는, 상기 해시 키를 이용하여 송신 데이터에 대한 해시값을 산출하도록 동작가능한 산출 서브유닛; 상기 암호화 키를 이용하여 상 기 송신 데이터를 암호화하여 암호화 데이터를 생성하도록 동작가능한 암호화 서브유닛; 및 상기 해시값과 상기 암호화 데이터를 상기 다른 장치로 송신하도록 동작가능한 송신 서브유닛을 포함할 수 있다.
또한, 키 생성부는 상기 제 1 및 제 2 키에 기초하여 해시값을 추가로 생성할 수 있으며, 상기 통신부는, 상기 다른 장치가 보유한 암호화 키를 이용하여 데이터를 암호화함으로써 생성된 암호화 데이터와, 상기 다른 장치가 보유한 해시 키를 이용하여 상기 데이터에 대해 산출된 제 1 해시값을 수신하도록 동작가능한 수신 서브유닛; 상기 암호화 키를 이용하여 상기 암호화 데이터를 해독하여 평문 데이터를 취득하도록 동작가능한 해독 서브유닛; 및 상기 해시 키를 이용하여 상기 평문 데이터에 대한 제 2 해시값을 산출하고, 상기 제 1 및 제 2 해시값이 일치하는지를 판정하는 판정 서브유닛을 포함할 수 있다. 상기 통신장치는, 상기 해시값들이 일치하는 것으로 판정되면, 상기 평문 데이터를 이용하고, 상기 해시값들이 일치하지 않는 것으로 판정되면, 상기 평문 데이터의 이용을 억제하도록 동작가능한 이용부를 추가로 포함할 수 있다.
이러한 구성에 의하면, 송신기는 공유 해시 키를 이용하여 원래의 데이터에 대해 산출한 해시값을 송신하고, 수신기는 공유키 해시 키를 이용하여 수신한 데이터에 대해 해시값을 산출하고 수신한 해시값과 산출한 해시값을 비교하여 데이터가 변형되었는지의 검출할 수 있다. 또한, 장치가 키를 공유하지 못하면 동일한 해시값이 산출될 수 없다는 사실은 키를 공유하고 간접적으로 인증된 장치에 의해서만 데이터가 이용될 수 있다는 것을 의미한다.
여기서, 통신장치는 상기 암호화 키를 이용하여 상기 다른 장치를 인증하도록 동작가능한 인증부를 추가로 포함할 수 있다.
또한, 상기 인증부는, (i) 제1 인증값을 생성하고, 상기 암호화 키를 이용하여 상기 제 1 인증값을 암호화하여 제 1 암호화 값을 생성하고, 상기 제 1 암호화 값을 상기 다른 장치에 송신하며, (ii) 상기 다른 장치가 보유한 암호화 키를 이용하여 상기 제 1 암호화 값을 해독함으로써 생성된 제 2 인증값을 상기 다른 장치로부터 수신하고, 상기 제 1 및 제 2 인증값이 일치하는지를 판정한다. 통신장치는 상기 인증값들이 일치하는 것으로 판정되면 상기 다른 장치와 통신을 수행하도록 동작가능한 통신부를 추가로 포함할 수 있다.
또한, 상기 인증부는 상기 다른 장치가 보유한 상기 암호화 키를 이용하여 제 3 인증값을 암호화함으로써 생성된 제 3 암호화 값을 상기 다른 장치로부터 수신하고, 상기 암호화 키를 이용하여 상기 제 3 암호화 값을 해독하여 제 4 인증값을 취득하고, 상기 제 4 인증값을 상기 다른 장치에 송신한다. 상기 다른 장치가 상기 제 3 및 제 4 인증값이 일치하는 것으로 판정하면, 상기 통신부는 통신을 수행할 수 있다.
이들 구성에 의하면, 정확하게 키를 공유한 장치를 인증할 수 있다.
여기서, 상기 데이터 생성부는 키 캡슐화 메커니즘에 기초하여 상기 제 1 키를 암호화하여 상기 제 1 암호화 키 데이터를 생성하며, 상기 해독부는 키 캡슐화 메커니즘에 기초하여 상기 제 2 암호화 키 데이터를 해독하여 상기 제 2 키를 취득할 수 있다.
이 구성에 의하면, 어려운 수학적 문제에 기초한 시큐리티의 입증은 키 캡슐화 메커니즘을 이용하고 이에 따라 본 발명에 속하는 통신장치의 시큐리티를 보증함으로써 보증된다.
본 발명은 영화, 음악 및 다른 저작물을 디지털화함으로써 취득되는 콘텐츠와 컴퓨터 프로그램과 같은 소프트웨어를 공급하는 소프트웨어 산업에 반복하여 연속적으로뿐만 아니라 관리상으로 이용될 수 있다. 또한, 본 발명에 속하는 암호화 통신 시스템과 통신장치는 전자기기 등에 대한 제조산업에서 제조되거나 판매될 수 있다.

Claims (13)

  1. 제 1 및 제 2 장치를 포함하는 암호화 통신 시스템으로서,
    상기 제 1 장치는, (i) 상기 제 2 장치의 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 데이터를 생성하고, 상기 제 1 암호화 데이터를 상기 제 2 장치에 송신하고, (ii) 상기 제 2 장치로부터 제 2 암호화 데이터를 수신하고 상기 제 1 장치의 비밀키를 이용하여 상기 제 2 암호화 데이터를 해독하며, (iii) 상기 제 1 및 제 2 키에 기초하여, 상기 제 2 장치와의 통신에 이용하기 위한 제 1 암호화 키를 생성하고,
    상기 제 2 장치는, (i) 상기 제 1 장치의 공개키를 이용하여 제 3 키를 암호화하여 상기 제 2 암호화 데이터를 생성하고, 상기 제 2 암호화 데이터를 상기 제 1 장치에 송신하고, (ii) 상기 제 1 장치로부터 상기 제 1 암호화 데이터를 수신하고, 상기 암호화 데이터를 상기 제 2 장치의 비밀키를 이용하여 해독하여 제 4 키를 취득하며, (iii) 상기 제 3 및 제 4 키에 기초하여, 상기 제 1 장치와의 통신에 이용하기 위한 제 2 암호화 키를 생성하고,
    상기 제 1 및 제 2 장치는 상기 제 1 및 제 2 암호화 키를 이용하여 암호화 통신을 수행하는 것을 특징으로 하는 암호화 통신 시스템.
  2. 공유키를 이용하여 다른 장치와 암호화 통신을 수행하는 통신장치로서,
    상기 다른 장치가 보유한 비밀키에 대응하는 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 키 데이터를 생성하고, 상기 제 1 암호화 키 데이터를 상기 다른 장치에 송신하도록 동작가능한 데이터 생성부;
    상기 다른 장치가 상기 통신장치의 공개키를 이용하여 제 3 키를 암호화하여 생성한 제 2 암호화 키 데이터를 상기 다른 장치로부터 수신하고 상기 통신장치의 비밀키를 이용하여 상기 제 2 암호화 키 데이터를 해독하여 제 2 키를 취득하도록 동작가능한 해독부;
    상기 제 1 및 제 2 키에 기초하여 암호화 키를 생성하도록 동작가능한 키 생성부; 및
    상기 암호화 키를 이용하여 상기 다른 장치와 암호화 통신을 수행하도록 동작가능한 통신부를 포함하는 것을 특징으로 하는 통신장치.
  3. 청구항 2에 있어서,
    상기 키 생성부는 상기 제 1 및 제 2 키에 기초하여 해시 키를 추가로 생성하며,
    상기 통신부는,
    상기 해시 키를 이용하여 송신 데이터에 대한 해시값을 산출하도록 동작가능한 산출 서브유닛;
    상기 암호화 키를 이용하여 상기 송신 데이터를 암호화하여 암호화 데이터를 생성하도록 동작가능한 암호화 서브유닛; 및
    상기 해시값과 상기 암호화 데이터를 상기 다른 장치로 송신하도록 동작가능 한 송신 서브유닛을 포함하는 것을 특징으로 하는 통신장치.
  4. 청구항 3에 있어서,
    상기 키 생성부는 상기 제 1 및 제 2 키를 연쇄 결합(concatenate)하여 연쇄 결합 데이터를 생성하고, 상기 연쇄 결합 데이터에 대한 해시값을 산출하며, 상기 해시값에 기초하여 상기 암호화 키와 상기 해시 키를 생성하는 것을 특징으로 하는 통신장치.
  5. 청구항 3에 있어서,
    상기 키 생성부는 상기 제 1 및 제 2 키를 이용하여 배타적 OR 연산을 수행하고, 상기 연산 결과에 기초하여 상기 암호화 키와 상기 해시 키를 생성하는 것을 특징으로 하는 통신장치.
  6. 청구항 2에 있어서,
    상기 키 생성부는 상기 제 1 및 제 2 키에 기초하여 해시값을 추가로 생성하며,
    상기 통신부는,
    상기 다른 장치가 보유한 암호화 키를 이용하여 데이터를 암호화함으로써 생성된 암호화 데이터와, 상기 다른 장치가 보유한 해시 키를 이용하여 상기 데이터에 대해 산출된 제 1 해시값을 수신하도록 동작가능한 수신 서브유닛;
    상기 암호화 키를 이용하여 상기 암호화 데이터를 해독하여 평문 데이터를 취득하도록 동작가능한 해독 서브유닛; 및
    상기 해시 키를 이용하여 상기 평문 데이터에 대한 제 2 해시값을 산출하고, 상기 제 1 및 제 2 해시값이 일치하는지를 판정하는 판정 서브유닛을 포함하며,
    상기 통신장치는, 상기 해시값들이 일치하는 것으로 판정되면, 상기 평문 데이터를 이용하고, 상기 해시값들이 일치하지 않는 것으로 판정되면, 상기 평문 데이터의 이용을 억제하도록 동작가능한 이용부를 추가로 포함하는 것을 특징으로 하는 통신장치.
  7. 청구항 2에 있어서,
    상기 암호화 키를 이용하여 상기 다른 장치를 인증하도록 동작가능한 인증부를 추가로 포함하는 것을 특징으로 하는 통신장치.
  8. 청구항 7에 있어서,
    상기 인증부는, (i) 제1 인증값을 생성하고, 상기 암호화 키를 이용하여 상기 제 1 인증값을 암호화하여 제 1 암호화 값을 생성하고, 상기 제 1 암호화 값을 상기 다른 장치에 송신하며, (ii) 상기 다른 장치가 보유한 암호화 키를 이용하여 상기 제 1 암호화 값을 해독함으로써 생성된 제 2 인증값을 상기 다른 장치로부터 수신하고, 상기 제 1 및 제 2 인증값이 일치하는지를 판정하며,
    상기 통신장치는 상기 인증값들이 일치하는 것으로 판정되면 상기 다른 장치 와 통신을 수행하도록 동작가능한 통신부를 추가로 포함하는 것을 특징으로 하는 통신장치.
  9. 청구항 8에 있어서,
    상기 인증부는 상기 다른 장치가 보유한 상기 암호화 키를 이용하여 제 3 인증값을 암호화함으로써 생성된 제 3 암호화 값을 상기 다른 장치로부터 수신하고, 상기 암호화 키를 이용하여 상기 제 3 암호화 값을 해독하여 제 4 인증값을 취득하고, 상기 제 4 인증값을 상기 다른 장치에 송신하며,
    상기 다른 장치가 상기 제 3 및 제 4 인증값이 일치하는 것으로 판정하면, 상기 통신부는 통신을 수행하는 것을 특징으로 하는 통신장치.
  10. 청구항 2에 있어서,
    상기 데이터 생성부는 키 캡슐화 메커니즘에 기초하여 상기 제 1 키를 암호화하여 상기 제 1 암호화 키 데이터를 생성하며,
    상기 해독부는 키 캡슐화 메커니즘에 기초하여 상기 제 2 암호화 키 데이터를 해독하여 상기 제 2 키를 취득하는 것을 특징으로 하는 통신장치.
  11. 공유키를 이용하여 다른 장치와 암호화 통신을 수행하는 통신장치가 이용하는 방법으로서,
    상기 다른 장치가 보유한 비밀키에 대응하는 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 키 데이터를 생성하고, 상기 제 1 암호화 키 데이터를 상기 다른 장치에 송신하는 단계;
    상기 다른 장치가 상기 통신장치의 공개키를 이용하여 제 3 키를 암호화하여 생성한 제 2 암호화 키 데이터를 상기 다른 장치로부터 수신하고 상기 통신장치의 비밀키를 이용하여 상기 제 2 암호화 키 데이터를 해독하여 제 2 키를 취득하는 단계;
    상기 제 1 및 제 2 키에 기초하여 암호화 키를 생성하는 단계; 및
    상기 암호화 키를 이용하여 상기 다른 장치와 암호화 통신을 수행하는 단계를 포함하는 것을 특징으로 하는 통신방법.
  12. 공유키를 이용하여 다른 장치와 암호화 통신을 수행하는 통신장치가 이용하는 컴퓨터 프로그램으로서, 상기 컴퓨터 프로그램은 컴퓨터로 하여금,
    상기 다른 장치가 보유한 비밀키에 대응하는 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 키 데이터를 생성하고, 상기 제 1 암호화 키 데이터를 상기 다른 장치에 송신하는 단계;
    상기 다른 장치가 상기 통신장치의 공개키를 이용하여 제 3 키를 암호화하여 생성한 제 2 암호화 키 데이터를 상기 다른 장치로부터 수신하고 상기 통신장치의 비밀키를 이용하여 상기 제 2 암호화 키 데이터를 해독하여 제 2 키를 취득하는 단계;
    상기 제 1 및 제 2 키에 기초하여 암호화 키를 생성하는 단계; 및
    상기 암호화 키를 이용하여 상기 다른 장치와 암호화 통신을 수행하는 단계를 실행하도록 하는 것을 특징으로 하는 통신장치가 이용하는 컴퓨터 프로그램.
  13. 공유키를 이용하여 다른 장치와 암호화 통신을 수행하는 통신장치가 이용하는 컴퓨터 프로그램을 저장하는 컴퓨터-판독가능한 기록매체로서, 상기 컴퓨터 프로그램은 컴퓨터로 하여금,
    상기 다른 장치가 보유한 비밀키에 대응하는 공개키를 이용하여 제 1 키를 암호화하여 제 1 암호화 키 데이터를 생성하고, 상기 제 1 암호화 키 데이터를 상기 다른 장치에 송신하는 단계;
    상기 다른 장치가 상기 통신장치의 공개키를 이용하여 제 3 키를 암호화하여 생성한 제 2 암호화 키 데이터를 상기 다른 장치로부터 수신하고 상기 통신장치의 비밀키를 이용하여 상기 제 2 암호화 키 데이터를 해독하여 제 2 키를 취득하는 단계;
    상기 제 1 및 제 2 키에 기초하여 암호화 키를 생성하는 단계; 및
    상기 암호화 키를 이용하여 상기 다른 장치와 암호화 통신을 수행하는 단계를 실행하도록 하는 것을 특징으로 하는 컴퓨터-판독가능한 기록매체.
KR1020067005643A 2003-10-16 2004-10-18 암호화 통신 시스템 및 통신장치 KR101087824B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2003356073 2003-10-16
JPJP-P-2003-00356073 2003-10-16
PCT/JP2004/015752 WO2005039100A1 (en) 2003-10-16 2004-10-18 Encrypted communication system and communication device

Publications (2)

Publication Number Publication Date
KR20070019643A true KR20070019643A (ko) 2007-02-15
KR101087824B1 KR101087824B1 (ko) 2011-11-30

Family

ID=34463187

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020067005643A KR101087824B1 (ko) 2003-10-16 2004-10-18 암호화 통신 시스템 및 통신장치

Country Status (6)

Country Link
US (1) US7813512B2 (ko)
EP (1) EP1690365A1 (ko)
JP (1) JP4771946B2 (ko)
KR (1) KR101087824B1 (ko)
CN (1) CN1868163B (ko)
WO (1) WO2005039100A1 (ko)

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1810294B1 (en) 2004-11-09 2018-11-28 Thomson Licensing Bonding contents on separate storage media
EP1842128B1 (en) * 2005-01-18 2011-11-09 Certicom Corp. Accelerated verification of digital signatures and public keys
US7869602B1 (en) 2005-03-10 2011-01-11 Sprint Spectrum L.P. User-based digital rights management
US8184811B1 (en) * 2005-10-12 2012-05-22 Sprint Spectrum L.P. Mobile telephony content protection
JP4518058B2 (ja) * 2006-01-11 2010-08-04 ソニー株式会社 コンテンツ伝送システム、コンテンツ伝送装置及びコンテンツ伝送方法、並びにコンピュータ・プログラム
US9137012B2 (en) * 2006-02-03 2015-09-15 Emc Corporation Wireless authentication methods and apparatus
US20090100264A1 (en) * 2006-04-28 2009-04-16 Yuichi Futa Communication device and communication system
KR101405321B1 (ko) * 2007-03-16 2014-06-27 재단법인서울대학교산학협력재단 키 연산 방법 및 이를 이용한 공유 키 생성 방법
DE102007034525B4 (de) * 2007-07-24 2010-02-11 Siemens Ag Verfahren und System zum Überprüfen der Integrität von in einem vorbestimmten Speicherbereich eines Speichers gespeicherten Daten
JP2009217577A (ja) * 2008-03-11 2009-09-24 Ri Co Ltd バックアッププログラム
US8165287B2 (en) * 2008-12-30 2012-04-24 King Fahd University Of Petroleum & Minerals Cryptographic hash functions using elliptic polynomial cryptography
JP2011243093A (ja) * 2010-05-20 2011-12-01 Canon Inc 情報処理装置、ユーザ認証方法、及びコンピュータプログラム
KR101091777B1 (ko) * 2010-07-16 2011-12-08 주식회사 파수닷컴 Drm 환경에서의 악성 코드 실시간 검사 장치 및 그 방법을 컴퓨터에서 실행시키기 위한 프로그램을 기록한 기록매체
US20140013453A1 (en) 2011-05-16 2014-01-09 Yuichi Futa Duplication judgment device and duplication management system
JP5370424B2 (ja) * 2011-07-15 2013-12-18 横河電機株式会社 無線通信装置及び暗号鍵漏洩防止方法
US20130085944A1 (en) * 2011-09-29 2013-04-04 Pacid Technologies, Llc System and method for application security
US9553725B2 (en) * 2011-11-21 2017-01-24 Combined Conditional Access Development And Support, Llc System and method for authenticating data
CN102624741A (zh) * 2012-03-30 2012-08-01 奇智软件(北京)有限公司 一种基于tlv的数据传输方法及系统
GB2505211B (en) * 2012-08-22 2014-10-29 Vodafone Ip Licensing Ltd Communications device authentication
EP2896154A4 (en) * 2012-09-13 2016-04-13 Nokia Technologies Oy DISCOVER AND SECURE TRANSFER OF USER INTEREST DATA
CN102932349B (zh) * 2012-10-31 2015-07-08 成都主导软件技术有限公司 一种数据传输方法、装置及系统
US8874898B2 (en) * 2012-12-14 2014-10-28 Intel Corporation Power line based theft protection of electronic devices
US8995658B2 (en) * 2013-02-13 2015-03-31 Honeywell International Inc. Physics-based key generation
CN103281183B (zh) * 2013-04-27 2016-04-13 天地融科技股份有限公司 转换装置和显示系统
CN104980928B (zh) 2014-04-03 2018-12-07 华为终端(东莞)有限公司 一种用于建立安全连接的方法、设备及系统
US10277559B2 (en) * 2014-05-21 2019-04-30 Excalibur Ip, Llc Methods and systems for data traffic control and encryption
JP2016116134A (ja) * 2014-12-16 2016-06-23 パナソニックIpマネジメント株式会社 署名検証装置、署名生成装置、署名処理システム、署名検証方法及び署名生成方法
US10965474B1 (en) * 2017-02-27 2021-03-30 Apple Inc. Modifying security state with highly secured devices
US11128452B2 (en) * 2017-03-25 2021-09-21 AVAST Software s.r.o. Encrypted data sharing with a hierarchical key structure
KR102529750B1 (ko) 2018-04-10 2023-05-09 비자 인터네셔널 서비스 어소시에이션 장치 인증을 위한 방법, 시스템 및 컴퓨터 프로그램 제품
CN109525385B (zh) * 2018-11-23 2022-04-08 全链通有限公司 一种共享密钥的封装方法、第一节点和第二节点
US11641274B2 (en) * 2019-03-22 2023-05-02 Jpmorgan Chase Bank, N.A. Systems and methods for manipulation of private information on untrusted environments
WO2021189258A1 (zh) * 2020-03-24 2021-09-30 京东方科技集团股份有限公司 实现保密通信的方法、设备及存储介质
CN111726224A (zh) * 2020-05-13 2020-09-29 北京信息科技大学 一种基于量子保密通信的数据完整性快速认证方法、系统、终端及存储介质
CN115051860B (zh) * 2022-06-17 2023-05-26 广东电网有限责任公司 一种野外站的数据传输系统

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918728A (en) * 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
JPH06315026A (ja) * 1993-04-28 1994-11-08 Nippon Telegr & Teleph Corp <Ntt> ディジタル通信方法
US5371794A (en) * 1993-11-02 1994-12-06 Sun Microsystems, Inc. Method and apparatus for privacy and authentication in wireless networks
US5450493A (en) * 1993-12-29 1995-09-12 At&T Corp. Secure communication method and apparatus
JP3453944B2 (ja) * 1995-09-04 2003-10-06 日本電信電話株式会社 秘話通信方法
JP3541522B2 (ja) * 1995-10-09 2004-07-14 松下電器産業株式会社 機器間通信保護システムおよび機器
JPH09312643A (ja) * 1996-05-22 1997-12-02 Matsushita Electric Ind Co Ltd 鍵共有方法及び暗号通信方法
US5850443A (en) * 1996-08-15 1998-12-15 Entrust Technologies, Ltd. Key management system for mixed-trust environments
US5953420A (en) * 1996-10-25 1999-09-14 International Business Machines Corporation Method and apparatus for establishing an authenticated shared secret value between a pair of users
JP3526524B2 (ja) * 1996-10-31 2004-05-17 松下電器産業株式会社 一方向データ変換装置及び機器認証システム
US6252959B1 (en) * 1997-05-21 2001-06-26 Worcester Polytechnic Institute Method and system for point multiplication in elliptic curve cryptosystem
FI108827B (fi) * 1998-01-08 2002-03-28 Nokia Corp Menetelmä yhteyden suojauksen toteuttamiseksi langattomassa verkossa
DE69928519T2 (de) * 1998-05-01 2006-08-10 Certicom Corp., Mississauga Protokoll zur ubereinkunft über einen authentifizierten schlüssel
US7194092B1 (en) * 1998-10-26 2007-03-20 Microsoft Corporation Key-based secure storage
JP3917330B2 (ja) * 1999-04-06 2007-05-23 三菱電機株式会社 共通鍵共有方法
US7373517B1 (en) * 1999-08-19 2008-05-13 Visto Corporation System and method for encrypting and decrypting files
JP3923229B2 (ja) * 2000-02-02 2007-05-30 株式会社エヌ・ティ・ティ・データ 認証処理方法及び方式
US7480939B1 (en) * 2000-04-28 2009-01-20 3Com Corporation Enhancement to authentication protocol that uses a key lease
US20010042204A1 (en) * 2000-05-11 2001-11-15 David Blaker Hash-ordered databases and methods, systems and computer program products for use of a hash-ordered database
JP3552648B2 (ja) * 2000-06-20 2004-08-11 インターナショナル・ビジネス・マシーンズ・コーポレーション アドホック無線通信用データ送受システム及びアドホック無線通信用データ送受方法
US6931128B2 (en) * 2001-01-16 2005-08-16 Microsoft Corporation Methods and systems for generating encryption keys using random bit generators
US7039803B2 (en) * 2001-01-26 2006-05-02 International Business Machines Corporation Method for broadcast encryption and key revocation of stateless receivers
US20030041242A1 (en) * 2001-05-11 2003-02-27 Sarver Patel Message authentication system and method
KR100859922B1 (ko) * 2001-07-05 2008-09-23 마츠시타 덴끼 산교 가부시키가이샤 기록장치, 기록매체, 기록방법
JP3783587B2 (ja) * 2001-08-06 2006-06-07 日本電気株式会社 情報販売システム及びそれに用いる情報販売方法並びにそのプログラム
US20030053629A1 (en) * 2001-09-14 2003-03-20 Koninklijke Philips Electronics N.V. USB authentication interface
JP4215973B2 (ja) * 2001-09-21 2009-01-28 日本電信電話株式会社 コンテンツ流通方法及びコンテンツ流通システム
US7031473B2 (en) * 2001-11-13 2006-04-18 Microsoft Corporation Network architecture for secure communications between two console-based gaming systems
DE50312181D1 (de) * 2002-01-24 2010-01-14 Siemens Ag Verfahren zur datenverkehrssicherung in einer mobilen netzumgebung
US7840803B2 (en) * 2002-04-16 2010-11-23 Massachusetts Institute Of Technology Authentication of integrated circuits
US20040249974A1 (en) * 2003-03-31 2004-12-09 Alkhatib Hasan S. Secure virtual address realm
ES2384634T7 (es) * 2003-09-26 2018-10-11 Telefonaktiebolaget Lm Ericsson (Publ) Diseño de seguridad mejorado para criptografía en sistemas de comunicaciones de móviles
US7464266B2 (en) * 2004-02-13 2008-12-09 Microsoft Corporation Cheap signatures for synchronous broadcast communication

Also Published As

Publication number Publication date
EP1690365A1 (en) 2006-08-16
CN1868163A (zh) 2006-11-22
KR101087824B1 (ko) 2011-11-30
WO2005039100A1 (en) 2005-04-28
US7813512B2 (en) 2010-10-12
JP2007529162A (ja) 2007-10-18
US20070150735A1 (en) 2007-06-28
CN1868163B (zh) 2011-01-26
JP4771946B2 (ja) 2011-09-14

Similar Documents

Publication Publication Date Title
KR101087824B1 (ko) 암호화 통신 시스템 및 통신장치
US11108565B2 (en) Secure communications providing forward secrecy
CN106411521B (zh) 用于量子密钥分发过程的身份认证方法、装置及系统
US8078874B2 (en) Method and apparatus for transmitting data using authentication
US7471792B2 (en) Key agreement system, shared-key generation apparatus, and shared-key recovery apparatus
KR101492644B1 (ko) 타원 곡선 공개키 암호화 검증을 위한 방법
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
JP6167990B2 (ja) 署名検証システム、検証装置、及び署名検証方法
US20090100264A1 (en) Communication device and communication system
CN103339958A (zh) 密钥传输协议
US20030053629A1 (en) USB authentication interface
JP4379031B2 (ja) 情報伝送方式及びそれに用いる情報送信装置及び情報受信装置
KR101059344B1 (ko) 암호화 통신 시스템
KR101016009B1 (ko) 위치 정보를 이용한 데이터의 암호화 방법 및 복호화 방법
CN108011856B (zh) 一种传输数据的方法和装置
JP2004334860A (ja) 機器認証システム、サーバ機器、クライアント機器
US8484471B2 (en) Multi-party distributed multiplication device, multi-party distributed multiplication system and method
US11303444B2 (en) Method for synchronized signature with additive RSA key splitting using early floating exponent negotiation
JP4731034B2 (ja) 著作物保護システム、暗号化装置、復号化装置および記録媒体
CN114978536B (zh) 一种基于sm2算法的多方联合签名方法及系统
TWI761243B (zh) 群組即時通訊的加密系統和加密方法

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
LAPS Lapse due to unpaid annual fee