KR20170129069A - 서버 및 피어의 동작 방법 - Google Patents

서버 및 피어의 동작 방법 Download PDF

Info

Publication number
KR20170129069A
KR20170129069A KR1020170060600A KR20170060600A KR20170129069A KR 20170129069 A KR20170129069 A KR 20170129069A KR 1020170060600 A KR1020170060600 A KR 1020170060600A KR 20170060600 A KR20170060600 A KR 20170060600A KR 20170129069 A KR20170129069 A KR 20170129069A
Authority
KR
South Korea
Prior art keywords
peer
content data
bridge element
server
key
Prior art date
Application number
KR1020170060600A
Other languages
English (en)
Other versions
KR101991731B1 (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 KR20170129069A publication Critical patent/KR20170129069A/ko
Application granted granted Critical
Publication of KR101991731B1 publication Critical patent/KR101991731B1/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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • 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/12Details relating to cryptographic hardware or logic circuitry
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

서버의 동작 방법이 개시된다. 일 실시예는 피어의 컨텐츠 요청이 있는 경우, 복호화를 수행할 상대 피어에 대한 정보를 상기 피어로 전송하고, 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 피어로부터 수신하며, 상기 세션 정보를 수신하는 경우, 상기 상대 피어에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고, 상기 피어에게 상기 암호화된 컨텐츠 데이터를 전송하는 단계를 포함한다.

Description

서버 및 피어의 동작 방법{OPERATING METHOD OF SERVER AND PEER}
아래 실시예들은 서버 및 피어의 컨텐츠 전송 및 복호화에 관한 것이다.
최근 이동통신 기술은 5G로 진화하고 있다. 이러한 5G의 물리적 기술 기반은 현재의 Cell을 좀더 촘촘하게 구성하는, 이른바 마이크로(또는 나노) 셀에 있다. 이러한 마이크로 셀을 운영하는데 있어서 기술적 목표는 이른바 딜레이 타임의 개선에 그 근간이 있다. 이러한 4G에서 5G로의 기술 발전은 단순히 통신 서비스 대역폭을 늘리는 것뿐 아니라, 데이터 전송 속도의 향상에 있다고 할 것이다. 이러한 데이터 전송 속도를 높이기 위해 다양한 통신 방식이 응용될 수 있고, 통신 방식 중 피어투피어(Peer to Peer; P2P) 또는 릴레이를 이용한 방식을 채용할 수 있다.
이러한 통신 방식을 통해 다양한 종류의 컨텐츠가 전송될 수 있고, 컨텐츠의 보안 및 저작권 보호를 위해 다양한 방식의 암복호화 스킴(scheme)이 이용될 수 있다.
일 측에 따른 서버의 동작 방법은 피어의 컨텐츠 요청이 있는 경우, 복호화를 수행할 상대 피어에 대한 정보를 상기 피어로 전송하는 단계; 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 피어로부터 수신하는 단계; 및 상기 세션 정보를 수신하는 경우, 상기 상대 피어에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고, 상기 피어에게 상기 암호화된 컨텐츠 데이터를 전송하는 단계를 포함하고, 상기 피어의 브릿지 엘리먼트는 상기 암호화된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로 전송하고, 상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로부터 수신한다.
상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트(segments)들 중 하나를 나타낼 수 있다.
상기 동작 방법은 상기 세그먼트들 중 다른 하나를 나타내는 다른 암호화된 컨텐츠 데이터를 상기 피어로 전송하고, 상기 다른 암호화된 컨텐츠 데이터에 대한 복호화키를 상기 상대 피어로 전송하는 단계를 더 포함할 수 있다.
상기 암호화된 컨텐츠 데이터에 대한 복호화키는 상기 다른 암호화된 컨텐츠에 대한 복호화키와 다를 수 있다.
상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환할 수 있다.
상기 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송할 수 있다.
다른 일 측에 따른 서버의 동작 방법은 컨텐츠의 각 세그먼트에 대응되는 키를 각 노드로 전송하여 그리드 네트워크를 형성하는 단계; 상기 각 세그먼트에 대한 암호화가 상기 각 노드에 의해 상기 각 세그먼트에 대응되는 키로 수행되도록 상기 각 노드로 상기 각 세그먼트를 전송하는 단계; 및 암호화된 각 세그먼트에 대한 복호화가 클라이언트에 의해 수행되도록 상기 각 세그먼트에 대응되는 키를 포함하는 키셋(key set)을 상기 클라이언트로 전송하는 단계를 포함하고, 상기 클라이언트는 상기 각 노드로부터 상기 암호화된 각 세그먼트를 수신하고, 상기 키셋을 기초로 상기 암호화된 각 세그먼트를 복호화한다.
상기 클라이언트는 상기 그리드 네트워크에 대한 정보를 상기 서버로부터 수신하고, 상기 그리드 네트워크에 대한 정보를 기초로 상기 각 노드와 P2P 통신 세션을 설정할 수 있다.
일 측에 따른 피어의 동작 방법은 컨텐츠 전송에 대한 요청을 서버로 전송하는 단계; 복호화를 수행할 상대 피어에 대한 정보를 상기 서버로부터 수신하는 단계; 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 서버로 전송하고, 상기 서버로부터 암호화된 컨텐츠 데이터를 수신하는 단계; 상기 암호화된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송하는 단계; 상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로부터 수신하는 단계를 포함한다.
상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트(segments)들 중 하나를 나타낼 수 있다.
상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환할 수 있다.
상기 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송할 수 있다.
일 측에 따른 피어의 동작 방법은 서버로부터 암호화된 컨텐츠 데이터에 대한 복호화키를 수신하는 단계 -상기 서버는 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 상대 피어로부터 수신하는 경우 상기 복호화키를 상기 피어로 전송하고 상기 암호화된 컨텐츠 데이터를 상기 상대 피어로 전송함-; 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로부터 상기 암호화된 컨텐츠 데이터를 수신하는 단계; 상기 복호화키를 이용하여 상기 암호화된 컨텐츠 데이터를 복호화하는 단계; 및 상기 암호화된 컨텐츠 데이터를 복호화됨으로써 생성된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로 전송하는 단계를 포함한다.
상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트(segments)들 중 하나를 나타낼 수 있다.
상기 복호화키는 상기 세그먼트들 중 다른 하나를 나타내는 다른 암호화된 컨텐츠 데이터에 대한 복호화키와 다를 수 있다.
상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환할 수 있다.
상기 상대 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 상대 피어의 브릿지 엘리먼트를 통해 상기 피어의 브릿지 엘리먼트로 전송할 수 있다.
일 측에 따른 서버는 통신 인터페이스; 및 피어의 컨텐츠 요청이 있는 경우 복호화를 수행할 상대 피어에 대한 정보를 상기 통신 인터페이스를 통해 상기 피어로 전송하고, 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 통신 인터페이스를 통해 상기 피어로부터 수신하며, 상기 세션 정보를 수신하는 경우 상기 통신 인터페이스를 통해 상기 상대 피어에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고 상기 피어에게 상기 암호화된 컨텐츠 데이터를 전송하는 컨트롤러를 포함하고, 상기 피어의 브릿지 엘리먼트는 상기 암호화된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로 전송하고, 상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로부터 수신한다.
다른 일 측에 따른 서버는 컨텐츠의 각 세그먼트에 대응되는 키를 각 노드로 전송하여 그리드 네트워크를 형성하는 키 매니저; 및 상기 각 세그먼트에 대한 암호화가 상기 각 노드에 의해 각 세그먼트에 대응되는 키로 수행되도록 상기 각 노드로 상기 각 세그먼트를 전송하는 컨텐츠 매니저를 포함하고, 상기 키 매니저는 암호화된 각 세그먼트에 대한 복호화가 클라이언트에 의해 수행되도록 상기 각 세그먼트에 대응되는 키를 포함하는 키셋(key set)을 상기 클라이언트로 전송하고, 상기 클라이언트는 상기 각 노드로부터 상기 암호화된 각 세그먼트를 수신하고, 상기 키셋을 기초로 상기 암호화된 각 세그먼트를 복호화한다.
실시예들은 P2P 기반의 컨텐츠 전송 방법을 제공할 수 있다. 또한, 실시예들은 P2P 기반의 컨텐츠 전송 방식에서 전송되는 컨텐츠의 보안을 강화할 수 있다.
도 1a는 일 실시예에 따른 P2P 네트워크 시스템의 동작의 일례를 설명하기 위한 도면이다.
도 1b는 일 실시예에 따른 P2P 네트워크 시스템의 동작의 다른 일례를 설명하기 위한 도면이다.
도 2는 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 3은 일 실시예에 따른 피어의 일례를 설명하기 위한 블록도이다.
도 4는 일 실시예에 따른 피어의 다른 일례를 설명하기 위한 블록도이다.
이하, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다.
아래 설명하는 실시예들에는 다양한 변경이 가해질 수 있다. 아래 설명하는 실시예들은 실시 형태에 대해 한정하려는 것이 아니며, 이들에 대한 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
실시예에서 사용한 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 실시예를 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성 요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 실시예가 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가지고 있다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥 상 가지는 의미와 일치하는 의미를 가지는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
또한, 첨부 도면을 참조하여 설명함에 있어, 도면 부호에 관계없이 동일한 구성 요소는 동일한 참조 부호를 부여하고 이에 대한 중복되는 설명은 생략하기로 한다. 실시예를 설명함에 있어서 관련된 공지 기술에 대한 구체적인 설명이 실시예의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명을 생략한다.
도 1a는 일 실시예에 따른 P2P 네트워크 시스템의 동작의 일례를 설명하기 위한 도면이다.
P2P 네트워크 시스템은 서버(101), 피어 A(102), 및 피어 B(104)를 포함한다.
피어 A(102)는 브리지(bridge) 엘리먼트(103)를 포함한다. 또한, 피어 B(104)는 브리지 엘리먼트(105)를 포함한다. 브리지 엘리먼트들(103 및 105) 각각은 소프트웨어 또는 별도의 하드웨어로 구현될 수 있다. 브리지 엘리먼트들(103 및 105)은 피어들(102 및 104)의 메모리와 논리적 또는/및 물리적으로 분리 또는 이격된 형태의 메모리 공간을 포함한다. 이로 인해, 피어 A(102)의 컨트롤러는 피어 A(102)의 메모리에 억세스하여 데이터 입출력을 수행할 수 있으나, 브리지 엘리먼트(103)의 메모리 공간에 접근할 수 없다. 마찬가지로, 피어 B(104)의 컨트롤러는 브리지 엘리먼트(105)의 메모리 공간에 접근할 수 없다. 이하, 도 1을 참조하면, P2P 네트워크 시스템의 동작에 대해 설명한다.
피어 A(102)는 서버(101)에 접속하여 서버(101)에게 컨텐츠를 요청한다(111). 컨텐츠는, 예를 들어, 영상, 사운드 파일, 및/또는 문서 등을 포함할 수 있다.
서버(101)는 피어 A(102)의 컨텐츠 요청이 있는 경우, 피어 A(102)에게 복호화를 수행할 상대 피어에 대한 정보(또는 상대 피어에 대한 그리드(grid) 정보)를 전송한다(112). 일례로, 서버(101)는 피어 A(102)의 컨텐츠 요청이 있으면, 복호화를 수행할 피어를 랜덤하게 선택할 수 있고, 선택된 피어(즉, 상대 피어)에 대한 정보를 피어 A(102)에게 전송할 수 있다. 상대 피어는 랜덤하게 선택될 수 있으므로, 랜덤 피어로 표현될 수 있다.
상대 피어에 대한 정보는, 예를 들어, 상대 피어의 IP(Internet protocol) 주소를 포함할 수 있다.
구현에 따라, 서버(101)는 복호화를 수행할 하나 이상의 피어(즉, 상대 피어)를 포함하는 그리드 네트워크를 형성할 수 있고, 그리드 네트워크에 대한 정보를 피어 A(102)에게 전송할 수 있다. 이 때, 그리드 네트워크에 대한 정보는 그리드 네트워크에 속한 하나 이상의 피어의 IP 주소를 포함할 수 있다.
서버(101)가 복호화를 담당하는 피어를 랜덤하게 결정할 수 있고 해당 피어에게 복호화키를 전송하므로, 복호화키가 유출될 가능성이 낮을 수 있다. 이로 인해, 저작권 또는 보안이 요구되는 컨텐츠가 P2P 네트워크를 통해 전송되는 경우, 보안이 향상 또는 강화될 수 있다.
구현에 따라, 서버(101)는 복수의 상대 피어들을 결정할 수 있다. 서버(101)가 복수의 상대 피어들을 결정하는 경우에 대해선 후술한다.
도 1에 도시된 예에서, 서버(101)는 피어 B(104)를 암호화된 컨텐츠 데이터를 복호화하는 피어로 결정한다고 하자. 서버(101)는 피어 B(104)에 대한 정보를 피어 A(102)로 전송할 수 있다.
피어 A(102)는 피어 B(104)에 대한 정보를 서버(101)로부터 수신하면, 피어 A(102)의 브릿지 엘리먼트(103)를 통해 피어 B(104)와 P2P 통신 세션을 설정한다(113). 달리 표현하면, 피어 A(102)는 피어 B(104)에 대한 정보를 브릿지 엘리먼트(103)로 전송할 수 있고, 브릿지 엘리먼트(103)는 피어 B(104)에 대한 정보를 기초로 피어 B(104)의 브릿지 엘리먼트(105)와 P2P 통신 세션을 설정할 수 있다.
P2P 통신 세션이 설정되는 동안 또는 P2P 통신 세션이 설정된 후, 피어 A(102)는 P2P 통신을 위한 공유키를 피어 B(104)와 교환할 수 있다. 구현에 따라, 피어 A(102) 및 피어 B(104)는 공유키를 서버(101)로부터 수신할 수 있다.
P2P 통신 세션이 설정되면, 브릿지 엘리먼트(103)는 피어 A(102)에게 세션 설정 결과를 전송할 수 있다.
피어 A(102)는 서버(101)로 피어 B(104)에 대한 그리드 세션 정보를 전송한다(114). 그리드 세션 정보는, 예를 들어, 세션 설정 결과를 포함할 수 있다.
서버(101)는 그리드 세션 정보를 피어 A(102)로부터 수신하면, 암호화된 컨텐츠 데이터에 대한 복호화키를 피어 B(104)로 전송하고(115), 암호화된 컨텐츠 데이터를 피어 A(102)로 전송한다(116). 도 1에 도시된 예와 같이, 서버(101)는 암호화된 컨텐츠 데이터 EA(data 1)를 피어 A(102)로 전송할 수 있고, EA(data 1)에 대한 복호화키 A-key를 피어 B(104)로 전송할 수 있다.
피어 A(102)는 암호화된 컨텐츠 데이터를 수신하면, 해당 암호화된 컨텐츠 데이터를 브릿지 엘리먼트(103)로 전송한다. 일 실시예에 있어서, 피어 A(102)는 해당 암호화된 컨텐츠 데이터를 공유키로 암호화할 수 있다. 공유키가 Share-key라 할 때, 피어 A(102)는 Share-key로 EA(data 1)를 암호화할 수 있다. 이로 인해, EShare(EA(data 1))이 생성될 수 있다.
브릿지 엘리먼트(103)는 암호화된 컨텐츠 데이터를 P2P 통신 세션을 통해 브릿지 엘리먼트(105)로 전송한다(117). 도 1에 도시된 예와 같이, 브릿지 엘리먼트(103)는 EA(data 1)를 브릿지 엘리먼트(105)로 전송할 수 있다. 일 실시예에에 있어서, EA(data 1)이 공유키로 암호화된 경우, 브릿지 엘리먼트(103)는 EShare(EA(data 1))를 브릿지 엘리먼트(105)로 전송할 수 있다.
브릿지 엘리먼트(105)는 암호화된 컨텐츠 데이터를 피어 B(104)로 전송한다. 브릿지 엘리먼트(105)는 EA(data 1)를 피어 B(104)로 전송할 수 있다. 구현에 따라, 브릿지 엘리먼트(105)는 EShare(EA(data 1))를 피어 B(104)로 전송할 수 있다.
피어 B(104)는 암호화된 컨텐츠 데이터를 복호화키를 이용하여 복호화한다. 도 1에 도시된 예에서, 피어 B(104)는 A-key를 이용하여 EA(data 1)를 복호화할 수 있다. 이로 인해, 피어 B(104)는 data 1을 획득할 수 있다. 일 실시예에 있어서, 피어 B(104)가 브릿지 엘리먼트(105)를 통해 EShare(EA(data 1))를 수신한 경우, 공유키로 EShare(EA(data 1))를 복호화할 수 있고, 복호화 결과에 해당하는 EA(data 1)를 A-key로 복호화할 수 있다. 이로 인해, 피어 B(104)는 data 1을 획득할 수 있다.
피어 B(104)는 암호화된 컨텐츠 데이터를 복호화함으로써 생성된 컨텐츠 데이터를 브릿지 엘리먼트(105)로 전송하고, 브릿지 엘리먼트(105)는 해당 컨텐츠 데이터를 브릿지 엘리먼트(103)로 전송한다(118). 도 1에 도시된 예에서, 브릿지 엘리먼트(105)는 data 1을 브릿지 엘리먼트(103)로 전송할 수 있다.
브릿지 엘리먼트(103)는 복호화된 컨텐츠 데이터를 피어 A(102)로 전송한다(119).
피어 A(102)는 복호화된 컨텐츠 데이터를 재생 또는 디스플레이할 수 있다.
피어 A(102) 및 피어 B(104)에는 암호화 또는 복호화된 컨텐츠 데이터가 저장되지 않고, 브리지 엘리먼트(103) 및 브리지 엘리먼트(105)에 일시 저장될 수 있다. 이로 인해, 피어 A(102) 및 피어 B(104) 각각이 해킹되더라도 암호화 또는 복호화된 컨텐츠 데이터가 유출되지 않을 수 있다. 또한, 보안이 강화될 수 있다.
구현에 따라, 브릿지 엘리먼트(103)가 수행하는 동작은 피어 A(102)가 수행할 수 있고, 브릿지 엘리먼트(105)가 수행하는 동작은 피어 B(104)가 수행할 수 있다. 일례로, 피어 A(102)는 피어 B(104)와 직접 P2P 통신 세션을 설정할 수 있고, 피어 B(104)로부터 직접 data 1을 수신할 수 있다.
<서버(101)가 복수의 상대 피어들을 결정한 경우>
일 실시예에 따르면, 서버(101)는 복수의 상대 피어들을 결정할 수 있다. 다시 말해, 서버(101)는 피어 A(102)의 컨텐츠 요청이 있으면, 암호화된 컨텐츠 데이터를 복호화할 복수의 상대 피어들을 결정할 수 있다. 서버(101)는 피어 B(104) 및 피어 C(미도시) 각각을 상대 피어로 결정한다고 하자. 서버(101)는 피어 B(104) 및 피어 C 각각에 대한 정보를 피어 A(102)로 전송할 수 있다.
피어 A(102)는 서버(101)로부터 피어 B(104) 및 피어 C 각각에 대한 정보를 수신하면, 피어 B(104) 및 피어 C 중 어느 하나를 선택할 수 있다. 일례로, 피어 A(102)는 피어 B(104) 및 피어 C 중 어느 하나를 랜덤하게 선택하거나 피어 A(102) 자신과 거리가 가까운 피어를 선택할 수 있다. 피어 A(102)가 피어 B(104) 및 피어 C 중 어느 하나를 선택하는 경우, 피어 A(102) 및 서버(101) 각각의 동작은 도 1을 통해 설명한 동작이 적용될 수 있고, 선택된 피어는 도 1을 통해 설명한 피어 B(104)와 실질적으로 동일하게 동작할 수 있으므로, 자세한 설명을 생략한다.
구현에 따라, 피어 A(102)는 서버(101)로부터 피어 B(104) 및 피어 C 각각에 대한 정보를 수신하면, 피어 B(104) 및 피어 C 각각과 P2P 세션을 설정할 수 있다. 다시 말해, 피어 A(102)는 피어 B(104) 및 피어 C 각각에 대한 정보를 수신하면, 브릿지 엘리먼트(103)를 통해 피어 B(104) 및 피어 C 각각의 브릿지 엘리먼트와 P2P 통신 세션을 설정할 수 있다. 피어 A(102)는 피어 B(104) 및 피어 C 각각에 대한 그리드 세션 정보를 서버(101)로 전송할 수 있다. 서버(101)는 EA(data 1) 및 EB(data 2)를 피어 A(102)로 전송할 수 있고, EA(data 1)에 대한 복호화키 A-key를 피어 B(104)로 전송할 수 있으며, EB(data 2)에 대한 복호화키 B-key를 피어 C로 전송할 수 있다.
피어 A(102)의 브릿지 엘리먼트(103)는 피어 B(104)의 브릿지 엘리먼트(105)에게 EA(data 1)를 전송할 수 있고, 피어 C의 브릿지 엘리먼트에게 EB(data 2)를 전송할 수 있다.
피어 B(104)는 A-key를 이용하여 EA(data 1)를 복호화할 수 있다. 이로 인해, 피어 B(104)는 data 1을 획득할 수 있다. 피어 B(104)의 브릿지 엘리먼트(150)는 data 1을 브릿지 엘리먼트(103) 로 전송할 수 있고, 피어 A(102)는 브릿지 엘리먼트(103)를 통해 data 1을 수신할 수 있다.
피어 C는 B-key를 이용하여 EB(data 2)를 복호화할 수 있다. 이로 인해, 피어 C는 data 2를 획득할 수 있다. 피어 C의 브릿지 엘리먼트는 data 2를 브릿지 엘리먼트(103)로 전송할 수 있고, 피어 A(102)는 브릿지 엘리먼트(103)를 통해 data 2를 수신할 수 있다.
피어 A(102)는 data 1 및 2 각각을 재생 또는 디스플레이할 수 있다. 구현에 따라, 피어 A(102)는 data 1 및 2를 조합(assemble)하여 전체 컨텐츠를 재생 또는 디스플레이할 수 있다.
<컨텐츠가 세그먼트들로 구성된 경우>
도 1을 통해 설명한 방식은 하나의 컨텐츠를 구성하는 세그먼트(즉, 암호화된 컨텐츠 데이터) 별로 수행될 수 있다. 이로 인해, 특정 세그먼트(또는 특정 암호화된 컨텐츠 데이터)에 대한 복호화키 또는 복호화된 컨텐츠 데이터가 해킹 또는 유출된 경우, 해킹된 정보로 나머지 세그먼트들 각각을 해킹 또는 유출하는 것이 어렵다. 이에 따라, 보안이 크게 강화될 수 있다. 이하, 컨텐츠가 세그먼트들로 구성된 경우, P2P 네트워크 시스템의 동작에 대해 설명한다.
컨텐츠는 세그먼트들(즉, 컨텐츠 데이터들)로 분할될 수 있다. 예를 들어, 컨텐츠는 data 1, data 2, ... , data n으로 분할될 수 있다. 이 경우, 서버(101)에는 컨텐츠가 data 1, data 2, ... , data n로 분할된 형태로 저장될 수 있다. 또한, 서버(101)에는 data 1, data 2, ... , data n 각각이 암호화되어 저장될 수 있다. 즉, 서버(101)에는 EA(data 1), EB(data 2), ... , EZ(data n)이 저장될 수 있다.
위에서 설명한 것과 같이, 서버는 피어 A(102)의 컨텐츠 요청이 있으면, 피어 B(104)를 복호화 담당 피어로 결정할 수 있고, 피어 B(104)에 대한 정보를 피어 B(102)로 전송할 수 있다. 피어 A(102)는 피어 B(104)와 P2P 통신 세션을 설정하거나 브릿지 엘리먼트(103)를 통해 피어 B(104)와 P2P 통신 세션을 설정할 수 있다.
피어 A(102)는 피어 B(104)에 대한 그리드 세션 정보를 서버(101)로 전송할 수 있다.
서버(101)는 피어 B(104)에 대한 그리드 세션 정보를 수신하면, EA(data 1), EB(data 2), ... , 및 EZ(data n)를 피어 A(102)로 전송할 수 있고, EA(data 1), EB(data 1), ... , 및 EZ(data n) 각각에 대한 복호화키를 피어 B(104)로 전송할 수 있다. EA(data 1)에 대한 복화화키=A-key, EB(data 1)에 대한 복호화키=B-key, ... , 및 EZ(data n)에 대한 복호화키=Z-key라 할 때, 서버(101)는 A-key, B-key, ... , 및 Z-key를 피어 B(104)로 전송할 수 있다. 여기서, A-key, B-key, ... , 및 Z-key 각각은 서로 다를 수 있다. 또는, A-key, B-key, ... , 및 Z-key는 서로 동일할 수 있다.
서버(101)는 EA(data 1), EB(data 2), ... , 및 EZ(data n)를 순차적으로 또는 동시에 피어 A(102)로 전송할 수 있고, A-key, B-key, ... , Z-key를 순차적으로 또는 동시에 피어 B(104)로 전송할 수 있다. 또는, 서버(101)는 data 1 수신에 대한 확인 응답을 피어 A(102)로부터 수신하면, EB(data 2)를 피어 A(102)로 전송할 수 있고 B-key를 피어 B(104)로 전송할 수 있다. 보다 구체적으로, 피어 A(102)는 피어 B(104)로부터 data 1을 수신하면, data 1 수신에 대한 확인 응답을 서버(101)로 전송할 수 있다. 서버(101)는 이러한 확인 응답을 피어 A(102)로부터 수신하는 경우, EB(data 2)를 피어 A(102)로 전송할 수 있고 EB(data 2)에 대한 복호화키 B-key를 피어 B(104)로 전송할 수 있다.
도 1b는 일 실시예에 따른 P2P 네트워크 시스템의 동작의 다른 일례를 설명하기 위한 도면이다.
도 1b를 참조하면, 서버(101)는 컨텐츠 매니저(150) 및 키 매니저(160)를 포함한다. 도 1b에 도시된 복수의 노드들(170~172) 각각은 피어로 달리 표현될 수 있다. 또한, 도 1b에 도시된 클라이언트(180)는 피어로 달리 표현될 수 있다.
키 매니저(160)는 key set을 클라이언트(180)로 전송할 수 있다. 도 1b에 도시된 예와 같이, 키 매니저(160)는 key set={A-key, B-key, ... , N-key}을 클라이언트(180)로 전송할 수 있다. 여기서, A-key, B-key, ... , N-key는 서로 다를 수 있다. 또는, A-key, B-key, ... , N-key는 서로 동일할 수 있다. 일 실시예에 있어서, 서버(101)가 클라이언트(180)로부터 컨텐츠 전송 요청을 수신하는 경우, 키 매니저(160)는 key set을 클라이언트(180)로 전송할 수 있다. 일례로, 서버(101)는 클라이언트(180)가 복수의 노드들(170~172) 각각과 P2P 통신 세션을 설정할 수 있도록 그리드 네트워크에 대한 정보를 클라이언트(180)로 전송할 수 있다.
키 매니저(160)는 key set 내의 키들 각각을 복수의 노드들(170~172) 각각으로 전송할 수 있다. 도 1b에 도시된 예와 같이 key set={A-key, B-key, ... , N-key}라 할 때, 키 매니저(160)는 해당 key set의 A-key를 노드 1(170)로 전송할 수 있고, 해당 key set의 B-key를 노드 2(171)로 전송할 수 있으며, 해당 key set의 N-key를 노드 n(172)으로 전송할 수 있다. 이로 인해, 서버(101)는 그리드 네트워크를 확보할 수 있다. 달리 표현하면, 서버(101)는 그리드 네트워크를 확보하기 위해 키들을 복수의 노드들(170~172)로 전송할 수 있다. 일 실시예에 따르면, 키 매니저(160)는 클라이언트(180)의 컨텐츠 전송 요청이 있는 경우, key set 내의 키들 각각을 복수의 노드들(170~172) 각각으로 전송함으로써 그리드 네트워크를 확보할 수 있다. 키 매니저(160)는 그리드 네트워크를 확보한 경우, 그리드 네트워크에 대한 정보를 클라이언트(180)로 전송할 수 있다. 구현에 따라, 키 매니저(160)는 그리드 네트워크를 미리 확보할 수 있고, 클라이언트(180)의 컨텐츠 전송 요청이 있는 경우, 미리 확보된 그리드 네트워크에 대한 정보를 클라이언트(180)로 전송할 수 있다.
컨텐츠 매니저(150)는 컨텐츠를 복수의 세그먼트들(또는 조각들)로 분할할 수 있다. 예를 들어, 컨텐츠 매니저(150)는 키 매니저(160)가 그리드 네트워크를 확보한 경우, 하나의 컨텐츠를 세그먼트들 data 1, data 2, ... , data n으로 분할할 수 있다. 구현에 따라, 컨텐츠 매니저(150)는 그리드 네트워크의 확보와 무관하게 컨텐츠를 세그먼트들로 분할할 수 있다.
컨텐츠 매니저(150)는 세그먼트들 각각을 복수의 노드들(170~172) 각각으로 전송할 수 있다. 도 1b에 도시된 예와 같이, 컨텐츠 매니저(150)는 data 1을 노드 1(170)로 전송할 수 있고, data 2를 노드 2(171)로 전송할 수 있으며, data n을 노드 n(172)으로 전송할 수 있다. 구현에 따라, 컨텐츠 매니저(150)는 그리드 네트워크가 확보된 경우, 세그먼트들 각각을 복수의 노드들(170~172) 각각으로 전송할 수 있다. 일 실시예에 따르면, 컨텐츠 매니저(150)는 data 1을 노드 1(170)로 전송할 때, data 1의 순서를 노드 1(170)로 전송할 수 있다. 다시 말해, 컨텐츠 매니저(150)는 data 1이 몇 번째 세그먼트인지를 노드 1(170)에 알려줄 수 있다. data 1이 첫 번째 세그먼트라 할 때, 컨텐츠 매니저(150)는 "data 1의 순서=첫 번째"를 data 1과 함께 노드 1(170)로 전송할 수 있다. 마찬가지로, 컨텐츠 매니저(150)는 data 2와 함께 data 2의 순서를 노드 2(171)로 전송할 수 있고, data n과 함께 data n의 순서를 노드 n(172)으로 전송할 수 있다.
복수의 노드들(170~172) 각각은 수신한 세그먼트를 암호화할 수 있다. 도 1b에 도시된 예에서, 노드 1(170)은 A-key를 이용하여 data 1을 암호화할 수 있다. 이로써, 노드 1(170)은 EA{data 1}를 획득할 수 있다. 마찬가지로, 노드 2(171)는 B-key를 이용하여 data 2를 암호화함으로써 EB{data 2}를 획득할 수 있고, 노드 n(172)은 N-key를 이용하여 data n를 암호화함으로써 EN{data n}을 획득할 수 있다.
클라이언트(180)는 복수의 노드들(170~172) 각각과 P2P 통신 세션을 설정할 수 있다. 일례로, 클라이언트(180)는 서버(101)로부터 그리드 네트워크에 대한 정보를 수신하는 경우, 그리드 네트워크에 대한 정보를 기초로 복수의 노드들(170~172) 각각과 P2P 통신 세션을 설정할 수 있다. 그리드 네트워크에 대한 정보는, 예를 들어, 복수의 노드들(170~172) 각각의 IP 주소를 포함할 수 있는데, 클라이언트(180)는 복수의 노드들(170~172) 각각의 IP 주소로 P2P 연결 요청을 전송할 수 있고, 복수의 노드들(170~172) 각각은 클라이언트(180)의 P2P 연결 요청을 허락할 수 있다. 이로 인해, 복수의 노드들(170~172) 각각과 클라이언트(180) 사이에는 P2P 통신 세션이 설정될 수 있다.
복수의 노드들(170~172) 각각은 암호화된 세그먼트를 클라이언트(180)로 전송할 수 있다. 도 1b에 도시된 예와 같이, 노드 1(170)은 EA{data 1}를 P2P 통신 세션을 통해 클라이언트(180)로 전송할 수 있고, 노드 2(171)는 EB{data 2}를 P2P 통신 세션을 통해 클라이언트(180)로 전송할 수 있으며, 노드 n(172)은 EN{data n}을 P2P 통신 세션을 통해 클라이언트(180)로 전송할 수 있다. 구현에 따라, 노드 1(170)은 EA{data 1}를 클라이언트(180)로 전송할 때, EA{data 1}(또는 data 1)의 순서를 전송할 수 있다. 마찬가지로, 노드 2(171)는 EB{data 2}와 함께 EB{data 2}(또는 data 2)의 순서를 클라이언트(180)로 전송할 수 있고, 노드 n(172)은 EN{data n}과 함께 EN{data n}(또는 data n)의 순서를 클라이언트(180)로 전송할 수 있다.
클라이언트(180)는 암호화된 세그먼트에 대한 복호화키를 key set에서 찾을 수 있고, 암호화된 세그먼트를 해당 키로 복호화할 수 있다. 도 1b에 도시된 예에서, 클라이언트(180)는 key set={A-key, B-key, ... , N-key}에서 EA{data 1}에 대한 복호화키 A-key를 찾을 수 있고, A-key를 이용하여 EA{data 1}를 복호화할 수 있다. 마찬가지로, 클라이언트(180)는 key set={A-key, B-key, ... , N-key}에서 EB{data 2}에 대한 복호화키 B-key를 찾아 EB{data 2}를 복호화할 수 있고, EN{data n}에 대한 복호화키 N-key를 찾아 EN{data n}를 복호화할 수 있다. 클라이언트(180)는 각 암호화된 세그먼트를 각 암호화된 세그먼트에 대한 복호화키로 복호화함으로써 data 1, ... , data n을 획득할 수 있다. 일 실시예에 따르면, 클라이언트(180)는 data 1이 첫 번째 세그먼트임을 알고 있으므로, key set의 첫 번째 키를 EA{data 1}에 대한 복호화키로 결정할 수 있다. 다시 말해, 클라이언트(180)는 key set 내의 키들 중 암호화된 세그먼트(또는 세그먼트)의 순서에 대응되는 키를 암호화된 세그먼트에 대한 복호화키로 결정할 수 있고, 암호화된 세그먼트를 결정된 복호화키로 복호화할 수 있다.
클라이언트(180)는 data 1, ... , data n을 조합함으로써 컨텐츠를 완성시킬 수 있다. 또한, 클라이언트(180)는 컨텐츠를 재생 또는 디스플레이할 수 있다.
서버(101), 복수의 노드들(170~172), 및 클라이언트(180)가 도 1b를 통해 설명한 방식에 따라 동작함으로써 P2P 기반의 컨텐츠 전송에 대한 보안이 보다 향상될 수 있다.
위에서 설명한 여러 방식들은 스트리밍 서비스 또는 컨텐츠 다운로드에 적용될 수 있다.
도 2는 일 실시예에 따른 서버를 설명하기 위한 블록도이다.
도 2를 참조하면, 일 실시예에 따른 서버(101)는 컨트롤러(210) 및 통신 인터페이스(220)를 포함한다.
컨트롤러(210)는 피어(102)의 컨텐츠 요청이 있는 경우 복호화를 수행할 상대 피어(104)에 대한 정보를 통신 인터페이스(220)를 통해 피어로 전송한다.
컨트롤러(210)는 피어(102)의 브릿지 엘리먼트(103)와 상대 피어(104)의 브릿지 엘리먼트(105) 사이의 P2P 세션 설정에 기반한 세션 정보를 통신 인터페이스(220)를 통해 피어(102)로부터 수신한다.
컨트롤러(210)는 세션 정보를 수신하는 경우 통신 인터페이스(220)를 통해 상대 피어(104)에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고 피어(102)에게 암호화된 컨텐츠 데이터를 전송한다.
실시예에 따르면, 도 1b를 통해 설명한 키 매니저(160)는 컨텐츠의 각 세그먼트에 대응되는 키를 각 노드로 전송하여 그리드 네트워크를 형성할 수 있고, 컨텐츠 매니저(150)는 각 세그먼트에 대한 암호화가 각 세그먼트에 대응되는 키로 각 노드에 의해 수행되도록 각 노드로 각 세그먼트를 전송할 수 있다. 키 매니저(160)는 암호화된 각 세그먼트에 대한 복호화가 클라이언트에 의해 수행되도록 각 세그먼트에 대응되는 키를 포함하는 키셋을 클라이언트로 전송할 수 있다. 이 때, 클라이언트는 각 노드로부터 암호화된 각 세그먼트를 수신하고, 키셋을 기초로 암호화된 각 세그먼트를 복호화할 수 있다.
구현에 따라, 컨트롤러(210)는 컨텐츠 매니저(150) 및 키 매니저(160)를 구현할 수 있다.
도 1a 내지 도 1b를 통해 기술된 사항들은 도 2를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 3은 일 실시예에 따른 피어의 일례를 설명하기 위한 블록도이다.
도 3을 참조하면, 피어(102)는 컨트롤러(310) 및 메모리(320)를 포함한다.
메모리(320)는 하나 이상의 명령어를 저장하고, 컨트롤러(310)는 하나 이상의 명령어를 실행한다.
컨트롤러(310)는 하나 이상의 명령어를 실행함으로써 복수의 단계들을 수행할 수 있다. 복수의 단계들은, 예를 들어, 컨텐츠 전송에 대한 요청을 서버(101)로 전송하는 단계, 복호화를 수행할 상대 피어(104)에 대한 정보를 서버(101)로부터 수신하는 단계, 피어(102)의 브릿지 엘리먼트(103)와 상대 피어(104)의 브릿지 엘리먼트(105) 사이의 P2P세션 설정에 기반한 세션 정보를 서버(101)로 전송하고 서버(101)로부터 암호화된 컨텐츠 데이터를 수신하는 단계, 암호화된 컨텐츠 데이터를 피어(102)의 브릿지 엘리먼트(103)를 통해 상대 피어(104)의 브릿지 엘리먼트(105)로 전송하는 단계, 및 상대 피어(104)에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 피어(102)의 브릿지 엘리먼트(103)를 통해 상대 피어(104)로부터 수신하는 단계를 포함한다.
구현에 따라, 피어(102)는 물리적 장치에 해당하는 브릿지 엘리먼트(103)를 포함할 수 있다. 또는, 물리적 장치에 해당하는 브릿지 엘리먼트(103)는 피어(102) 외부에 위치하여 피어(102)와 유선 또는 무선으로 연결될 수 있다.
도 1a 내지 도 1b를 통해 기술된 사항들은 도 3을 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
도 4는 일 실시예에 따른 피어의 다른 일례를 설명하기 위한 블록도이다.
도 4를 참조하면, 피어(104)는 컨트롤러(410) 및 메모리(420)를 포함한다.
메모리(420)는 하나 이상의 명령어를 저장하고, 컨트롤러(410)는 하나 이상의 명령어를 실행한다.
컨트롤러(410)는 하나 이상의 명령어를 실행함으로써 복수의 단계들을 수행할 수 있다. 복수의 단계들은, 예를 들어, 서버(101)로부터 암호화된 컨텐츠 데이터에 대한 복호화키를 수신하는 단계, 피어(104)의 브릿지 엘리먼트(105)를 통해 상대 피어(102)로부터 암호화된 컨텐츠 데이터를 수신하는 단계, 복호화키를 이용하여 상기 암호화된 컨텐츠 데이터를 복호화하는 단계, 및 암호화된 컨텐츠 데이터를 복호화됨으로써 생성된 컨텐츠 데이터를 피어(104)의 브릿지 엘리먼트(105)를 통해 상대 피어(102)로 전송하는 단계를 포함한다.
도 1a 내지 도 1b를 통해 기술된 사항들은 도 4를 통해 기술된 사항들에 적용될 수 있으므로, 상세한 설명을 생략한다.
이상에서 설명된 장치는 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 청구범위와 균등한 것들도 후술하는 청구범위의 범위에 속한다.

Claims (20)

  1. 서버의 동작 방법에 있어서,
    피어의 컨텐츠 요청이 있는 경우, 복호화를 수행할 상대 피어에 대한 정보를 상기 피어로 전송하는 단계;
    상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 피어로부터 수신하는 단계; 및
    상기 세션 정보를 수신하는 경우, 상기 상대 피어에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고, 상기 피어에게 상기 암호화된 컨텐츠 데이터를 전송하는 단계
    를 포함하고,
    상기 피어의 브릿지 엘리먼트는 상기 암호화된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로 전송하고, 상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로부터 수신하는,
    서버의 동작 방법.
  2. 제1항에 있어서,
    상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트들 중 하나를 나타내는,
    서버의 동작 방법.
  3. 제2항에 있어서,
    상기 세그먼트들 중 다른 하나를 나타내는 다른 암호화된 컨텐츠 데이터를 상기 피어로 전송하고, 상기 다른 암호화된 컨텐츠 데이터에 대한 복호화키를 상기 상대 피어로 전송하는 단계
    를 더 포함하는,
    서버의 동작 방법.
  4. 제3항에 있어서,
    상기 암호화된 컨텐츠 데이터에 대한 복호화키는 상기 다른 암호화된 컨텐츠에 대한 복호화키와 다른,
    서버의 동작 방법.
  5. 제1항에 있어서,
    상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환하는,
    서버의 동작 방법.
  6. 제5항에 있어서,
    상기 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송하는,
    서버의 동작 방법.
  7. 피어의 동작 방법에 있어서,
    컨텐츠 전송에 대한 요청을 서버로 전송하는 단계;
    복호화를 수행할 상대 피어에 대한 정보를 상기 서버로부터 수신하는 단계;
    상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 서버로 전송하고, 상기 서버로부터 암호화된 컨텐츠 데이터를 수신하는 단계;
    상기 암호화된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송하는 단계;
    상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로부터 수신하는 단계
    를 포함하는,
    피어의 동작 방법.
  8. 제7항에 있어서,
    상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트들 중 하나를 나타내는,
    피어의 동작 방법.
  9. 제7항에 있어서,
    상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환하는,
    피어의 동작 방법.
  10. 제9항에 있어서,
    상기 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어의 브릿지 엘리먼트로 전송하는,
    피어의 동작 방법.
  11. 피어의 동작 방법에 있어서,
    서버로부터 암호화된 컨텐츠 데이터에 대한 복호화키를 수신하는 단계 -상기 서버는 상기 피어의 브릿지 엘리먼트(bridge element)와 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 상대 피어로부터 수신하는 경우 상기 복호화키를 상기 피어로 전송하고 상기 암호화된 컨텐츠 데이터를 상기 상대 피어로 전송함-;
    상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로부터 상기 암호화된 컨텐츠 데이터를 수신하는 단계;
    상기 복호화키를 이용하여 상기 암호화된 컨텐츠 데이터를 복호화하는 단계; 및
    상기 암호화된 컨텐츠 데이터를 복호화됨으로써 생성된 컨텐츠 데이터를 상기 피어의 브릿지 엘리먼트를 통해 상기 상대 피어로 전송하는 단계
    를 포함하는,
    피어의 동작 방법.
  12. 제11항에 있어서,
    상기 암호화된 컨텐츠 데이터는 전체 컨텐츠를 구성하는 세그먼트들 중 하나를 나타내는,
    피어의 동작 방법.
  13. 제12항에 있어서,
    상기 복호화키는 상기 세그먼트들 중 다른 하나를 나타내는 다른 암호화된 컨텐츠 데이터에 대한 복호화키와 다른,
    피어의 동작 방법.
  14. 제11항에 있어서,
    상기 피어의 브릿지 엘리먼트는 상기 상대 피어의 브릿지 엘리먼트와 P2P 통신을 위한 공유키를 교환하는,
    피어의 동작 방법.
  15. 제14항에 있어서,
    상기 상대 피어는 상기 공유키로 상기 암호화된 컨텐츠 데이터를 암호화하여 상기 상대 피어의 브릿지 엘리먼트를 통해 상기 피어의 브릿지 엘리먼트로 전송하는,
    피어의 동작 방법.
  16. 서버에 있어서,
    통신 인터페이스; 및
    피어의 컨텐츠 요청이 있는 경우 복호화를 수행할 상대 피어에 대한 정보를 상기 통신 인터페이스를 통해 상기 피어로 전송하고, 상기 피어의 브릿지 엘리먼트(bridge element)와 상기 상대 피어의 브릿지 엘리먼트 사이의 P2P(Peer to Peer) 세션 설정에 기반한 세션 정보를 상기 통신 인터페이스를 통해 상기 피어로부터 수신하며, 상기 세션 정보를 수신하는 경우 상기 통신 인터페이스를 통해 상기 상대 피어에게 암호화된 컨텐츠 데이터에 대한 복호화키를 전송하고 상기 피어에게 상기 암호화된 컨텐츠 데이터를 전송하는 컨트롤러
    를 포함하고,
    상기 피어의 브릿지 엘리먼트는 상기 암호화된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로 전송하고, 상기 상대 피어에 의해 상기 암호화된 컨텐츠 데이터가 복호화됨으로써 생성된 컨텐츠 데이터를 상기 상대 피어의 브릿지 엘리먼트로부터 수신하는,
    서버.
  17. 서버의 동작 방법에 있어서,
    컨텐츠의 각 세그먼트에 대응되는 키를 각 노드로 전송하여 그리드 네트워크를 형성하는 단계;
    상기 각 세그먼트에 대한 암호화가 상기 각 노드에 의해 상기 각 세그먼트에 대응되는 키로 수행되도록 상기 각 노드로 상기 각 세그먼트를 전송하는 단계; 및
    암호화된 각 세그먼트에 대한 복호화가 클라이언트에 의해 수행되도록 상기 각 세그먼트에 대응되는 키를 포함하는 키셋(key set)을 상기 클라이언트로 전송하는 단계
    를 포함하고,
    상기 클라이언트는 상기 각 노드로부터 상기 암호화된 각 세그먼트를 수신하고, 상기 키셋을 기초로 상기 암호화된 각 세그먼트를 복호화하는,
    서버의 동작 방법.
  18. 제17항에 있어서,
    상기 클라이언트는 상기 그리드 네트워크에 대한 정보를 상기 서버로부터 수신하고, 상기 그리드 네트워크에 대한 정보를 기초로 상기 각 노드와 P2P 통신 세션을 설정하는,
    서버의 동작 방법.
  19. 제17항에 있어서,
    상기 각 세그먼트에 대응되는 키는 서로 다른,
    서버의 동작 방법.
  20. 서버에 있어서,
    컨텐츠의 각 세그먼트에 대응되는 키를 각 노드로 전송하여 그리드 네트워크를 형성하는 키 매니저; 및
    상기 각 세그먼트에 대한 암호화가 상기 각 노드에 의해 각 세그먼트에 대응되는 키로 수행되도록 상기 각 노드로 상기 각 세그먼트를 전송하는 컨텐츠 매니저
    를 포함하고,
    상기 키 매니저는 암호화된 각 세그먼트에 대한 복호화가 클라이언트에 의해 수행되도록 상기 각 세그먼트에 대응되는 키를 포함하는 키셋(key set)을 상기 클라이언트로 전송하고,
    상기 클라이언트는 상기 각 노드로부터 상기 암호화된 각 세그먼트를 수신하고, 상기 키셋을 기초로 상기 암호화된 각 세그먼트를 복호화하는,
    서버.
KR1020170060600A 2016-05-16 2017-05-16 서버 및 피어의 동작 방법 KR101991731B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR20160059348 2016-05-16
KR1020160059348 2016-05-16

Publications (2)

Publication Number Publication Date
KR20170129069A true KR20170129069A (ko) 2017-11-24
KR101991731B1 KR101991731B1 (ko) 2019-06-24

Family

ID=60810575

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170060600A KR101991731B1 (ko) 2016-05-16 2017-05-16 서버 및 피어의 동작 방법

Country Status (1)

Country Link
KR (1) KR101991731B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017164A (ko) * 2007-08-14 2009-02-18 텔미정보통신 주식회사 서로 다른 방화벽 내의 피어들에 대한 p2p 검색 및 연결방법 및 p2p 검색 시스템
KR20090075621A (ko) * 2008-01-04 2009-07-08 이르데토 액세스 비.브이. 피어 투 피어 통신 보안용 방법 및 시스템
KR101336144B1 (ko) * 2012-08-31 2013-12-02 성균관대학교산학협력단 네트워크에서의 키 관리 방법 및 시스템, 및 소스 인증 방법 및 시스템
KR20140130501A (ko) * 2012-02-28 2014-11-10 애플 인크. 피어 투 피어 링크를 통한 공유 네트워크 액세스

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20090017164A (ko) * 2007-08-14 2009-02-18 텔미정보통신 주식회사 서로 다른 방화벽 내의 피어들에 대한 p2p 검색 및 연결방법 및 p2p 검색 시스템
KR20090075621A (ko) * 2008-01-04 2009-07-08 이르데토 액세스 비.브이. 피어 투 피어 통신 보안용 방법 및 시스템
KR20140130501A (ko) * 2012-02-28 2014-11-10 애플 인크. 피어 투 피어 링크를 통한 공유 네트워크 액세스
KR101336144B1 (ko) * 2012-08-31 2013-12-02 성균관대학교산학협력단 네트워크에서의 키 관리 방법 및 시스템, 및 소스 인증 방법 및 시스템

Also Published As

Publication number Publication date
KR101991731B1 (ko) 2019-06-24

Similar Documents

Publication Publication Date Title
US11316677B2 (en) Quantum key distribution node apparatus and method for quantum key distribution thereof
JP5634427B2 (ja) 鍵生成装置、鍵生成方法およびプログラム
US8732462B2 (en) Methods and apparatus for secure data sharing
US10938554B2 (en) Managing private key access in multiple nodes
US20170149748A1 (en) Secure Group Messaging and Data Steaming
KR20150093112A (ko) 콘텐츠-기반의 전송 보안
JP2007082216A (ja) 一対一でデータを安全に送受信する方法及び装置
WO2016136024A1 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US20170171166A1 (en) Anti-hotlinking method and electronic device
KR20150093113A (ko) 분산된 제작자들을 위한 콘텐츠-기반의 전송 보안
WO2011107000A1 (zh) 对等网络中的资源控制方法、装置和系统
WO2018016330A1 (ja) 通信端末、サーバ装置、プログラム
CN113239403A (zh) 一种数据共享方法及装置
CN111264052A (zh) 在建立的会话内改变密码和密钥
CN115174061A (zh) 基于区块链中继通信网络系统的消息传输方法及装置
JP2013239989A (ja) 情報処理装置、データ生成方法、情報処理方法、および情報処理システム
CN111884988A (zh) 数据的安全传输方法
KR101812311B1 (ko) 사용자 단말 및 속성 재암호 기반의 사용자 단말 데이터 공유 방법
WO2024001037A1 (zh) 一种消息传输方法、装置、电子设备和存储介质
CN111480313B (zh) 通信终端、服务器装置、记录介质
KR101991731B1 (ko) 서버 및 피어의 동작 방법
KR101701625B1 (ko) 암호화된 컨텐츠의 복호화 키를 안전하게 획득하여 컨텐츠를 재생하기 위한 방법 및 시스템
KR101445483B1 (ko) 조건부 프록시 재암호화 기법을 이용한 데이터 전송 방법 및 시스템
KR101730403B1 (ko) 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티
WO2020051833A1 (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