KR20200112237A - Method and apparatus for networking based on decentrazlized naming scheme - Google Patents

Method and apparatus for networking based on decentrazlized naming scheme Download PDF

Info

Publication number
KR20200112237A
KR20200112237A KR1020190032395A KR20190032395A KR20200112237A KR 20200112237 A KR20200112237 A KR 20200112237A KR 1020190032395 A KR1020190032395 A KR 1020190032395A KR 20190032395 A KR20190032395 A KR 20190032395A KR 20200112237 A KR20200112237 A KR 20200112237A
Authority
KR
South Korea
Prior art keywords
name
related information
authority
authority value
owner
Prior art date
Application number
KR1020190032395A
Other languages
Korean (ko)
Other versions
KR102569450B1 (en
Inventor
허환조
노성기
이창현
고남석
Original Assignee
한국전자통신연구원
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 한국전자통신연구원 filed Critical 한국전자통신연구원
Priority to KR1020190032395A priority Critical patent/KR102569450B1/en
Publication of KR20200112237A publication Critical patent/KR20200112237A/en
Application granted granted Critical
Publication of KR102569450B1 publication Critical patent/KR102569450B1/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/30Managing network names, e.g. use of aliases or nicknames
    • H04L61/3015Name registration, generation or assignment
    • H04L61/302Administrative registration, e.g. for domain names at internet corporation for assigned names and numbers [ICANN]
    • H04L61/1558
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/45Network directories; Name-to-address mapping
    • H04L61/4553Object oriented directories, e.g. common object request broker architecture [CORBA] name server
    • 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
    • H04L67/1087Peer-to-peer [P2P] networks using cross-functional networking aspects
    • H04L67/1089Hierarchical topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC

Abstract

The present invention provides an information-oriented networking method and apparatus based on a distributed naming scheme. According to the present invention, a networking method based on distributed naming comprises the steps of: receiving first object related information and second object related information, respectively, from a first object and a second object selecting the same name; obtaining a first authority value determined based on identification information of the first object and the name from the first object related information; obtaining a second authority value determined based on identification information of the second object and the name from the second object related information; and determining an owner of the name based on the first and second authority values. According to the present invention, a name used in a network is determined in a distributed manner, and networking based on a self-authenticating name is possible. In addition, according to the present invention, it is possible to improve the security of networking and services based on distributed naming.

Description

분산형 네이밍 기반 네트워킹 방법 및 장치{METHOD AND APPARATUS FOR NETWORKING BASED ON DECENTRAZLIZED NAMING SCHEME}Distributed naming-based networking method and device {METHOD AND APPARATUS FOR NETWORKING BASED ON DECENTRAZLIZED NAMING SCHEME}

본 발명은 분산형 네이밍에 기반한 네트워킹 방법 및 장치에 관한 것으로, 보다 상세하게는 분산형 네이밍 방식에 기반하여 정보 중심 네트워킹을 제공하는 방법 및 장치에 관한 것이다.The present invention relates to a method and apparatus for networking based on distributed naming, and more particularly, to a method and apparatus for providing information-oriented networking based on a distributed naming scheme.

전통적으로 컴퓨터 네트워킹에서 사용되는 식별자(Identifier)는 중앙화된 방식으로 결정되어 왔다. IP 주소나 도메인 네임은 ICANN(국제인터넷주소관리기구)에 의해 1차적으로 할당되고 할당된 주소나 이름은 타기관에서 다시 세부적으로 할당하여 사용된다. 이러한 구조에서는 특정한 기구나 기관이 특정 주소 영역이나 이름에 대한 권위(authority)를 가지게 되고 세부 주소 영역이나 이름에 대한 권위을 다른 기관에 부여할 수 있다. 이를 우리는 중앙화된(centralized) 관리 체계 혹은 계층적(hierarchical) 관리 체계라고 칭한다.Traditionally, identifiers used in computer networking have been determined in a centralized manner. IP addresses or domain names are primarily assigned by ICANN (International Internet Address Management Organization), and the assigned addresses or names are re-assigned and used in detail by other organizations. In this structure, a specific organization or organization has authority over a specific address area or name, and authority over a specific address area or name can be given to other organizations. This is called a centralized management system or a hierarchical management system.

이러한 중앙화된 관리 체계는 관리 기구를 신뢰할 수 있는 경우에 매우 효율적이고 안전하여 새로운 네트워킹 구조에서도 많이 사용되고 있다. 예를 들어, 정보 중심 네트워킹(Information Centric Networking)의 한 종류인 NDN(Named Data Networking)에서는 인증기관(Certificate Authority)에 의해 특정 네임 혹은 네임스페이스(Namespace)를 사용할 권한이 부여된다.This centralized management system is very efficient and secure when the management organization can be trusted and is widely used in new networking structures. For example, in Named Data Networking (NDN), which is a kind of Information Centric Networking, the authority to use a specific name or namespace is granted by a Certificate Authority.

중앙화된 관리 체계는 필연적으로 관리 기관이나 기구에 대한 신뢰를 필요로 한다. 즉, 관리 기관이 공격자에 의해 탈취되거나 실수를 일으키게 되면 모든 네트워크는 혼란에 빠지게 된다. 이러한 단일 장애 지점(single point of failure) 구조는 필연적으로 보안에 취약하며 만일 가능하다면 분산화된 구조를 통해 보완될 수 있다.A centralized management system inevitably requires trust in a management agency or organization. In other words, if the management authority is hijacked by an attacker or makes a mistake, all networks will become confused. This single point of failure structure is inevitably vulnerable to security and, if possible, can be supplemented through a decentralized structure.

아래와 같은 형태의 자기인증 이름(Self-certifying name)을 사용하면 공개키(pk)의 해쉬값을 이름(name)으로 취함으로 인해 공개키와 이름 간에 강한 연결(strong binding)이 가능하지만 이름의 가독성(human readability)이 떨어진다:If you use the self-certifying name in the form of the following, a strong binding between the public key and the name is possible by taking the hash value of the public key (pk) as the name, but the readability of the name (human readability) drops:

name ← hash(pk)name ← hash(pk)

따라서 비트코인의 vanity address generation scheme이나 Tor hidden service에서는 다음과 같은 방식으로 주소(혹은 이름)를 생성하게 된다:Therefore, in Bitcoin's vanity address generation scheme or Tor hidden service, an address (or name) is created in the following way:

address ← encode(trim(hash(pki)))address ← encode(trim(hash(pk i )))

여기서 hash()는 해쉬 함수, trim()은 선택적으로 사용되는 trimming 함수, encode()는 인코딩 함수이다. 비트코인에서는 RIPEMD-160 해쉬함수와 Base58Check 인코딩 함수를 사용한다. 비트코인은 trim() 함수는 사용하지 않는다. Tor Hidden service에서는 SHA-1 해쉬함수, 입력값의 앞부분 반을 취하는 trimming 함수, 및 Base32 인코딩 함수를 사용한다. 이 방식에서는 원하는 가독성있고 기억가능한(human-readable and memorable) 이름이 생성될 때까지 공개키(pki)를 반복적으로 생성한다.Here, hash() is a hash function, trim() is an optional trimming function, and encode() is an encoding function. In Bitcoin, RIPEMD-160 hash function and Base58Check encoding function are used. Bitcoin does not use the trim() function. The Tor Hidden service uses the SHA-1 hash function, the trimming function that takes the first half of the input value, and the Base32 encoding function. In this method, the public key (pk i ) is repeatedly generated until the desired human-readable and memorable name is generated.

하지만 이러한 방식은 근본적으로 키 생성 오버헤드를 적절히 조절(engineering)하기 힘든 문제가 있다. 글자 인코딩에 필요한 비트 수를 k라고 하고 글자의 길이를 n이라고 하면 특정 이름을 생성하는 공개키를 찾기 위해서는 O(kn)의 작업량을 필요로 하게 된다. 따라서, 길이가 n인 이름을 생성하는 것보다 길이가 n+10인 이름을 생성하는 데에 10승이나 더 많은 연산량을 필요로 한다. 뿐만 아니라, 이러한 방식은 대량으로 이름의 선점을 목적으로 하는 공격에 취약하다. 한 번 공개키를 생성하여 해쉬값을 계산하게 되면 선점하고 싶은 이름의 리스트에 매칭되는 이름이 있는지 비교하는 단순한 연산만을 필요로 하기 때문이다.However, this method has a problem that it is difficult to properly control (engineering) the key generation overhead. If the number of bits required for character encoding is k and the length of the character is n, it takes O(k n ) of work to find the public key that creates a specific name. Therefore, it takes a factor of 10 or more to generate a name of length n+10 than to generate a name of length n. In addition, this method is vulnerable to attacks aimed at preoccupying names in large quantities. This is because once the public key is generated and the hash value is calculated, only a simple operation is needed to compare whether there is a matching name in the list of names that you want to preempt.

전술한 문제점들을 해결하기 위하여, 본 발명은 자기 인증 이름을 분산형 네이밍에 기반한 네트워킹에 적용하는 방법 및 장치를 제공한다.In order to solve the above problems, the present invention provides a method and apparatus for applying a self-authenticating name to a distributed naming-based networking.

본 발명은 네트워크에서 사용하는 이름을 분산화된 방식으로 결정하는 방법을 제공하고, 이와 같은 분산형 네이밍에 기반한 네트워킹 방법 및 장치를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a method of determining a name used in a network in a distributed manner, and to provide a networking method and apparatus based on such distributed naming.

본 발명의 전술한 목적 및 그 이외의 목적과 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부된 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다.The above-described objects and other objects, advantages, and features of the present invention, and methods of achieving them will become apparent with reference to the embodiments described below in detail together with the accompanying drawings.

본 발명의 일 측면에 따른 분산형 네이밍에 기반한 네트워킹 방법은 동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하는 단계, 상기 제1 객체 관련 정보로부터 상기 제 1객체의 식별 정보 및 상기 이름에 기반하여 결정된 제 1 권위값을 획득하는 단계, 상기 제2 객체 관련 정보로부터 상기 제 2객체의 식별 정보 및 상기 이름에 기반하여 결정된 제 2 권위값을 획득하는 단계 및 상기 제 1 및 제 2 권위값에 기반하여 상기 이름의 주인을 결정하는 단계를 포함한다.A networking method based on distributed naming according to an aspect of the present invention includes receiving first object related information and second object related information from a first object and a second object selecting the same name, respectively, the first object related information Obtaining the identification information of the first object and a first authority value determined based on the name from the second object-related information, the identification information of the second object and a second authority value determined based on the name And determining the owner of the name based on the first and second authority values.

일 예에서 객체의 식별 정보는 객체의 공개키이다.In one example, the object identification information is the object's public key.

일 예에서 권위값은 객체의 식별 정보 및 객체의 이름을 결합한 값의 해쉬값으로 결정될 수 있다.In an example, the authority value may be determined as a hash value of a value obtained by combining identification information of an object and a name of the object.

이름의 주인을 결정하는 단계는, 제 1 및 제 2 권위값을 비교하여 더 작은 권위값을 갖는 객체를 이름의 주인으로 결정할 수 있다.In the step of determining the owner of the name, an object having a smaller authority value may be determined as the owner of the name by comparing the first and second authority values.

일 예에서 제 1 및 제 2 객체 관련 정보는 이름의 일부로서 권위값을 포함할 수 있다.In an example, the first and second object related information may include an authority value as part of a name.

제 1 객체 관련 정보는 제 1 객체의 식별 정보로 서명된 제 1 데이터를 포함하고, 제 2 객체 관련 정보는 제 2 객체의 식별 정보로 서명된 제 2 데이터를 포함할 수 있다.The first object-related information may include first data signed with the identification information of the first object, and the second object-related information may include second data signed with the identification information of the second object.

일 예에서 분산형 네이밍에 기반한 네트워킹 방법은 제 1 및 제2 권위값에 기반하여 제 1 데이터 및 상기 제 2 데이터 중 하나를 선택하는 단계를 더 포함할 수 있다.In an example, the networking method based on distributed naming may further include selecting one of the first data and the second data based on the first and second authority values.

일 예에서 분산형 네이밍에 기반한 네트워킹 방법은 이름을 선택한 제 3 객체로부터 제 3 객체 관련 정보를 수신하는 단계 및 제 3 객체 관련 정보로부터 획득된 제 3 권위값에 기반하여 이름의 주인을 재결정하는 단계를 더 포함할 수 있다.In one example, the networking method based on distributed naming includes receiving information related to a third object from a third object that has selected a name, and re-determining the owner of the name based on a third authority value obtained from the information related to the third object. It may further include.

일 예에서 이름의 주인을 재결정하는 단계는, 제 3 권위값이 이름의 주인의 권위값보다 더 작은 경우 제 3 객체를 이름의 주인으로 재결정할 수 있다.In an example, in the step of re-determining the owner of the name, when the third authority value is smaller than the authority value of the owner of the name, the third object may be re-determined as the owner of the name.

일 예에서 분산형 네이밍에 기반한 네트워킹 방법은 이름에 대한 데이터를 수신하는 단계 및 권위값에 기반하여 이름에 대한 데이터의 목적지를 결정하는 단계를 더 포함할 수 있다.In an example, the networking method based on distributed naming may further include receiving data for a name and determining a destination of data for the name based on an authority value.

일 예에서 분산형 네이밍에 기반한 네트워킹 방법은 목적지를 상기 이름의 주인으로 갱신하는 단계를 더 포함할 수 있다.In an example, the networking method based on distributed naming may further include updating the destination as the owner of the name.

본 발명의 다른 측면에 따른 분산형 네이밍에 기반한 네트워킹을 위한 전자 장치는 객체의 식별 정보 및 이름에 기반하여 결정된 권위값을 포함하는 객체 관련 정보를 저장하는 저장소 및 프로세서를 포함한다.An electronic device for networking based on distributed naming according to another aspect of the present invention includes a storage and a processor that store object-related information including identification information of an object and an authority value determined based on a name.

프로세서는, 동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하도록 설정될 수 있다.The processor may be configured to receive first object-related information and second object-related information, respectively, from the first object and the second object selecting the same name.

프로세서는 제 1 및 제 2 객체 관련 정보의 권위값에 기반하여 이름의 주인을 결정하도록 설정될 수 있다.The processor may be configured to determine the owner of the name based on the authority value of the first and second object related information.

일 예에서 객체의 식별 정보는 상기 객체의 공개키이다.In an example, the object identification information is the object's public key.

일 예에서 권위값은 객체의 식별 정보 및 이름을 결합한 값의 해쉬값으로 결정될 수 있다.In an example, the authority value may be determined as a hash value of a value obtained by combining identification information of an object and a name.

일 예에서 프로세서는, 제 1 및 제 2 권위값을 비교하여 더 작은 권위값을 갖는 객체를 이름의 주인으로 결정하도록 설정될 수 있다.In an example, the processor may be configured to compare the first and second authority values to determine an object having a smaller authority value as the owner of the name.

일 예에서 저장소는, 이름의 일부로서 권위값을 포함하여 객체 관련 정보로서 저장할 수 있다.In an example, the storage may include an authority value as part of a name and store it as object-related information.

일 예에서 프로세서는, 이름을 선택한 제 3 객체로부터 제 3 객체 관련 정보를 수신하도록 설정될 수 있다.In an example, the processor may be configured to receive information related to the third object from the third object whose name is selected.

일 예에서 프로세서는 제 3 객체 관련 정보로부터 획득된 제 3 권위값에 기반하여 이름의 주인을 재결정하도록 설정될 수 있다.In an example, the processor may be configured to re-determine the owner of the name based on the third authority value obtained from the third object related information.

일 예에서 프로세서는, 이름에 대한 데이터를 수신하고, 권위값에 기반하여 이름에 대한 데이터의 목적지를 결정하도록 설정될 수 있다.In an example, the processor may be configured to receive data on a name and determine a destination of the data on the name based on an authority value.

본 발명에 의하면 네트워크에서 사용하는 이름을 분산화된 방식으로 결정하고, 자기 인증 이름에 기반한 네트워킹이 가능하다.According to the present invention, a name used in a network is determined in a distributed manner, and networking based on a self-authenticating name is possible.

본 발명에 의하면 분산형 네이밍에 기반한 네트워킹 및 서비스의 보안을 향상시킬 수 있다.According to the present invention, it is possible to improve the security of networking and services based on distributed naming.

도 1은 실시예에 따른 분산형 네이밍에 기반한 네트워킹 과정을 도시한 순서도이다.
도 2는 권위값과 데이터 및 이름 간의 관계를 예시적으로 보여준다.
도 3은 객체 관련 정보를 저장하는 데이터 패킷을 예시적으로 도시한다.
도 4는 실시예에 따른 분산형 네이밍에 기반한 네트워킹 장치의 블록도이다.
도 5는 저장 공간에 저장된 데이터 패킷의 갱신 과정을 예시적으로 보여준다.
도 6은 분산형 네이밍에 기반한 데이터 패킷 전달 과정을 예시적으로 보여준다.
도 7은 분산형 네이밍에 기반하여 계층적인 이름을 구성하는 예시적인 방안을 도시한다.
도 8은 권위값을 이용하여 키 페어를 생성하는 과정을 예시적으로 보여준다.
1 is a flowchart illustrating a networking process based on distributed naming according to an embodiment.
2 shows an example of a relationship between an authority value, data, and name.
3 exemplarily shows a data packet storing object related information.
4 is a block diagram of a networking device based on distributed naming according to an embodiment.
5 shows an exemplary update process of a data packet stored in a storage space.
6 shows an exemplary data packet delivery process based on distributed naming.
7 shows an exemplary method of configuring a hierarchical name based on distributed naming.
8 exemplarily shows a process of generating a key pair using an authority value.

본 발명이 구현되는 양상을 이하의 바람직한 각 실시예를 들어 설명한다. 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 본 발명의 기술적 사상의 범주 내에서 그 외의 다른 다양한 형태로 구현될 수 있음은 자명하다. 본 명세서에서 사용된 용어 역시 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprise)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 요소가 하나 이상의 다른 구성요소, 단계, 동작 및/또는 요소의 존재 또는 추가됨을 배제하지 않는다.The aspect in which the present invention is implemented will be described with reference to each of the following preferred embodiments. It is obvious that the present invention is not limited to the embodiments disclosed below, but can be implemented in other various forms within the scope of the technical idea of the present invention. The terms used in the present specification are also intended to describe embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless specifically stated in the phrase. As used in the specification, "comprise" and/or "comprising" refers to the presence of one or more other components, steps, actions and/or elements in which the stated component, step, action and/or element is Or does not preclude addition.

도 1은 실시예에 따른 분산형 네이밍에 기반한 네트워킹 과정을 도시한 순서도이다.1 is a flowchart illustrating a networking process based on distributed naming according to an embodiment.

본 발명에 따른 실시예는 분산형 네이밍에 기반한 네트워킹 방법을 제공한다. 실시예에 따른 네트워킹 방법은 동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하는 단계(110), 제1 객체 관련 정보로부터 제 1객체의 식별 정보 및 이름에 기반하여 결정된 제 1 권위값을 획득하는 단계(120), 제2 객체 관련 정보로부터 제 2객체의 식별 정보 및 이름에 기반하여 결정된 제 2 권위값을 획득하는 단계(120) 및 제 1 및 제 2 권위값에 기반하여 이름의 주인을 결정하는 단계(130)을 포함한다.An embodiment according to the present invention provides a networking method based on distributed naming. In the networking method according to the embodiment, the step of receiving (110) first object-related information and second object-related information from a first object and a second object selected with the same name, respectively, and identifying a first object from the first object-related information Acquiring a first authority value determined based on the information and the name (120), obtaining a second authority value determined based on the identification information and the name of the second object from the second object-related information (120), and It includes the step 130 of determining the owner of the name based on the first and second authority values.

여기서 객체는 이름이 필요한 모든 주체를 포함한다. 예를 들어, 객체는 서버, 단말, 노드, 컴퓨팅 장치, 각종 IoT 디바이스, 네트워크 장비, 디스플레이 장치 및 웨어러블 장치 등을 포함한다. 예를 들어, 객체는 데이터, 통신 채널, 세션, 어플리케이션, 서비스, 유저, 가상 디바이스, 가상 객체, 시간 객체 및 장소 객체 등을 포함한다.Here, the object includes all subjects that need a name. For example, objects include servers, terminals, nodes, computing devices, various IoT devices, network equipment, display devices, wearable devices, and the like. For example, objects include data, communication channels, sessions, applications, services, users, virtual devices, virtual objects, time objects, and place objects.

도 1에 도시된 각 단계를 구체적으로 살펴보기에 앞서 도 2를 참조하여 본 발명에서의 이름에 대한 객체의 권위에 대하여 우선 살펴본다.Prior to examining each step shown in FIG. 1 in detail, with reference to FIG. 2, the authority of an object with respect to a name in the present invention will be first described.

도 2는 권위값과 데이터 및 이름 간의 관계를 예시적으로 보여준다.2 shows an example of a relationship between an authority value, data, and name.

본 발명에서, 객체는 공개키(pki)를 반복적으로 생성하고 생성된 공개키(pki)를 객체가 취하기를 희망하는 이름(name)과 결합한 값의 해쉬값(auth)을 생성한다. 즉, 해쉬값(auth)은 다음의 수학식 1에 따라 생성된다.In the present invention, the object is to produce a public key (pk i) the repeated generation and the generated public key (pk i) the value of the name (name) and bonded to an object is desired to take a hash value (auth). That is, the hash value auth is generated according to Equation 1 below.

Figure pat00001
Figure pat00001

특정 이름(name)을 사용하고자 하는 객체는 가능한 작은 auth 값을 생성한다.Objects that want to use a specific name create an auth value as small as possible.

본 발명에서는, 가장 작은 auth 값을 생성하는 공개키에 대응되는 비공개키를 가진 객체가 해당 이름(name)에 대한 권위(authority)을 부여받는다.In the present invention, an object having a private key corresponding to the public key that generates the smallest auth value is given authority for the name.

NDN을 예로 들면, 두 개의 비공개키 ski, skj와 그에 대응되는 공개키 pki, pkj가 있다고 가정한다. 그리고 위의 수학식 1에 따라 특정 이름(예, /foo)에 해당하는 auth 값인 authi, authj가 있다고 가정한다. 본 발명에 따른 분산형 네이밍 방식은 다음과 같은 정의에 따라 분산형 이름을 결정한다.For example, assume that there are two private keys sk i and sk j and corresponding public keys pk i and pk j . And it is assumed that there are auth i and auth j , which are auth values corresponding to a specific name (eg, /foo) according to Equation 1 above. The distributed naming scheme according to the present invention determines a distributed name according to the following definition.

정의 1) (데이터의 상대적 권위) 특정 이름(name)에 대해, 만일 authi < authj라면, ski로 서명된 데이터 datai 가 skj로 서명된 데이터 dataj 보다 상대적으로 더 권위가 있다. Definition 1) (Relative authority of data) For a specific name, if auth i <auth j , data i signed with sk i is relatively more authoritative than data j signed with sk j .

정의 2) (이름에 대한 절대적 권위) 특정 이름(name)에 대해 가장 작은 auth 값을 생성하는 공개키에 대응되는 비공개키를 가진 주체가 name에 대한 권위를 가진다.Definition 2) (Absolute authority over the name) The subject with the private key corresponding to the public key that generates the smallest auth value for a specific name has authority over the name.

도 2를 참조하여 예를 들어, Alice가 생성한 키 페어 (skA, pkA)가 있고 /foo라는 name에 대해 authA=0x000f라고 가정한다. 마찬가지로, Bob이 생성한 키 페어 (skB, pkB)가 있고 /foo라는 name에 대해 authB=0x00ec라고 가정한다. 도 2(a)에서 authA 및 authB는 수학식 1에 따라 이름과 공개키를 결합한 값의 해시값으로 생성된다. 전술한대로, authA는 0x000f이고 authB는 0x00ec이고, authA가 authB보다 작다. 도 2(b)에서 Alice가 /foo 이름에 대한 dataA를 skA로 서명하여 공개하고, Bob이/foo 이름에 대한 dataB를 skB로 서명하여 공개한다면, /foo라는 이름에 대해 dataA 가 dataB 보다 더 권위가 있다고 할 수 있다. With reference to FIG. 2, for example, assume that there is a key pair (sk A , pk A ) generated by Alice, and that auth A = 0x000f for the name /foo. Likewise, assume that there is a key pair (sk B , pk B ) created by Bob and that auth B = 0x00ec for the name /foo. In FIG. 2(a), auth A and auth B are generated as a hash value of a value combining a name and a public key according to Equation 1. As described above, auth A is 0x000f, auth B is 0x00ec, and auth A is smaller than auth B. In Fig. 2(b), if Alice signs data A for the name /foo with sk A and publishes it, and Bob signs data B for the name /foo with sk B and publishes it, data A for the name /foo Can be said to be more authoritative than data B.

이어서 도4를 참조하여 실시예에 따른 분산형 네이밍에 기반한 네트워킹 장치를 기능 블록을 중심으로 살펴본다. 실시예에 따른 네트워킹 장치(400)는 통신부(410), 제어부(420) 및 저장부(430)를 기능 블록으로 포함한다. 예를 들어, 네트워킹 장치(400)는 제어부(420)를 구동하는 프로세서를 포함하는 컴퓨팅 장치이다. 통신부(410)는 객체를 비롯한 외부와의 통신을 수행하는 유무선 통신모듈이다. 제어부(420)는 도 1에서 살펴볼 네트워킹 방법의 각 단계를 수행하고 통신부(410) 및 저장부(430)를 제어한다. 예를 들어 제어부(420)는 네트워킹 장치(400)에 포함된 프로세서에 의하여 구동된다. 저장부(420)는 객체의 식별 정보 및 이름에 기반하여 결정된 권위값을 포함하는 객체 관련 정보를 저장하는 저장소이다. 예를 들어 저장부(420)는 객체 관련 정보를 라우팅 테이블에 저장할 수 있다.Next, with reference to FIG. 4, a networking device based on distributed naming according to an embodiment will be described with a focus on functional blocks. The networking device 400 according to the embodiment includes a communication unit 410, a control unit 420, and a storage unit 430 as functional blocks. For example, the networking device 400 is a computing device including a processor that drives the control unit 420. The communication unit 410 is a wired/wireless communication module that communicates with the outside including objects. The controller 420 performs each step of the networking method described in FIG. 1 and controls the communication unit 410 and the storage unit 430. For example, the controller 420 is driven by a processor included in the networking device 400. The storage unit 420 is a storage for storing object-related information including an authority value determined based on identification information and a name of an object. For example, the storage unit 420 may store object-related information in a routing table.

다시 도 1로 돌아와서, 단계(110)에서 통신부(410)는 동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신한다.Returning to FIG. 1 again, in step 110, the communication unit 410 receives first object-related information and second object-related information, respectively, from the first object and the second object selected with the same name.

객체 관련 정보는 객체의 이름 및 권위값을 포함한다. 네트워킹 장치(400)는 객체 관련 정보를 저장한 데이터 패킷을 이용하여 네트워킹을 수행한다. 객체 관련 정보를 저장한 데이터 패킷에 대하여는 도 3을 참조하여 후술한다.The object-related information includes the object's name and authority value. The networking device 400 performs networking using a data packet storing object related information. A data packet storing object-related information will be described later with reference to FIG. 3.

단계(120)에서 제어부(420)는 단계(110)에서 수신한 제1 객체 관련 정보로부터 제 1객체의 식별 정보 및 이름에 기반하여 결정된 제 1 권위값을 획득한다. 마찬가지로 단계(120)에서 제어부(420)는 단계(110)에서 수신한 제2 객체 관련 정보로부터 제 2객체의 식별 정보 및 이름에 기반하여 결정된 제 2 권위값을 획득한다. 즉, 권위값은 객체의 공개키 및 이름에 기반하여 수학식 1에 따라 생성된 해쉬값에 대응한다.In step 120, the control unit 420 obtains a first authority value determined based on the identification information and name of the first object from the first object-related information received in step 110. Similarly, in step 120, the control unit 420 obtains a second authority value determined based on the identification information and name of the second object from the second object-related information received in step 110. That is, the authority value corresponds to the hash value generated according to Equation 1 based on the public key and name of the object.

일 예에서, 각 객체의 식별 정보는 각 객체의 공개키이다. 예를 들어, 제 1 객체의 식별 정보는 제 1 객체의 공개키이다. 도 2를 참조하여 전술한대로 권위값은 객체의 식별 정보 및 이름을 결합한 값의 해쉬값으로 결정된 것이다.In one example, the identification information of each object is the public key of each object. For example, the identification information of the first object is the public key of the first object. As described above with reference to FIG. 2, the authority value is determined as a hash value of a value combining identification information and a name of an object.

단계(120)에서 제어부(420)는 수신한 객체 관련 정보로부터 각 객체의 이름 및 해당 이름에 대한 각 객체의 권위값을 획득한다. 예를 들어, 제어부(420)는 객체 관련 정보를 저장한 데이터 패킷을 수신하고 이를 파싱하여 각 객체의 이름 및 해당 이름에 대한 각 객체의 권위값을 추출한다.In step 120, the control unit 420 obtains the name of each object and the authority value of each object for the name from the received object-related information. For example, the control unit 420 receives a data packet storing object-related information, parses it, and extracts the name of each object and the authority value of each object for the corresponding name.

단계(130)에서 제어부(420)는 단계(120)에서 획득한 제 1 및 제 2 권위값에 기반하여 이름의 주인을 결정한다. 일 예에서 제어부(420)는 단계(130)에서 제 1 및 제 2 권위값을 비교하여 더 작은 권위값을 갖는 객체를 해당 이름의 주인으로 결정한다. 예를 들어, 앞서 살펴본 도 2(a)에서 Alice는 제 1 객체에 대응되고, Bob은 제 2 객체에 대응되며, Alice가 더 작은 권위값을 가지므로, 제어부(420)는 Alice를 /foo라는 이름의 주인으로 결정한다.In step 130, the control unit 420 determines the owner of the name based on the first and second authority values obtained in step 120. In an example, the control unit 420 compares the first and second authority values in step 130 to determine an object having a smaller authority value as the owner of the corresponding name. For example, in FIG. 2(a) discussed above, Alice corresponds to the first object, Bob corresponds to the second object, and Alice has a smaller authority value, so the controller 420 refers to Alice as /foo. Decide as the owner of the name.

도 3은 객체 관련 정보를 저장하는 데이터 패킷의 구조를 예시적으로 도시한다.3 illustrates an exemplary structure of a data packet for storing object-related information.

데이터 패킷(310) 및 데이터 패킷(320)은 객체 관련 정보의 각 필드를 저장하는 예시적인 패킷 구조이다.The data packet 310 and the data packet 320 are exemplary packet structures for storing each field of object related information.

네트워킹 장치(400)는 객체 관련 정보를 저장한 데이터 패킷을 이용하여 네트워킹을 수행한다. 일 예에서, 객체 또는 네트워킹 장치(400)가 객체의 데이터를 전송하는 경우에, 이름 뿐만 아니라 권위값을 함께 전송할 수 있다.The networking device 400 performs networking using a data packet storing object related information. In one example, when the object or the networking device 400 transmits data of the object, it may transmit not only the name but also the authority value.

이를테면, 객체 관련 정보는 객체의 이름 및 권위값을 포함한다. 추가적으로 객체 관련 정보는 객체의 메타 정보, 내용 및 서명 정보를 더 포함할 수 있다. 예를 들어, 객체의 메타 정보는 객체의 유형에 따른 정보를 포함한다. 예를 들어, 객체가 사람인 경우 객체의 메타 정보는 국적, 성별, 나이 등을 포함한다. 객체의 내용은 예를 들어 텍스트, 이미지, 사운드 등과 같은 데이터를 포함한다. 객체 관련 정보에 포함된 서명 정보는 예를 들어 객체 관련 정보에 저장된 내용에 대한 객체의 서명 인증 정보를 포함한다. 이를테면 객체 관련 정보는 객체의 식별 정보로 서명된 데이터를 포함하고, 제어부(420)는 객체 관련 정보의 권위값에 기반하여 서명된 데이터 중 하나를 선택할 수 있다.For example, the object-related information includes the name and authority value of the object. Additionally, the object related information may further include meta information, content, and signature information of the object. For example, the meta-information of an object includes information according to the type of object. For example, when the object is a person, meta information of the object includes nationality, gender, age, etc. The content of the object includes data such as text, images, sounds, etc. The signature information included in the object-related information includes, for example, signature authentication information of the object for contents stored in the object-related information. For example, the object-related information includes data signed as identification information of the object, and the control unit 420 may select one of the signed data based on the authority value of the object-related information.

일 예에서, 데이터 패킷(310)은 객체 관련 정보에 포함된 이름, 권위값, 메타 정보, 내용 및 서명 정보를 필드별로 저장할 수 있다. 즉, 데이터 패킷(310)은 권위값을 추가적인 필드로 저장한다. 다른 예에서, 데이터 패킷(320)은 이름의 일부로서 권위값을 포함하여 저장할 수 있다. 즉, 데이터 패킷(320)은 이름의 특정 부분에 권위값을 수용할 수 있다. 예를 들어, 32바이트의 이름을 가지는 경우 상위 28바이트에는 이름, 하위 4바이트에는 권위값을 가지도록 규약할 수 있다.In one example, the data packet 310 may store name, authority value, meta information, content, and signature information included in object related information for each field. That is, the data packet 310 stores the authority value as an additional field. In another example, the data packet 320 may include the authority value as part of the name and store it. That is, the data packet 320 may accommodate the authority value in a specific part of the name. For example, in the case of a 32-byte name, it can be specified to have a name in the upper 28 bytes and an authority value in the lower 4 bytes.

도 4는 실시예에 따른 분산형 네이밍에 기반한 네트워킹 장치의 블록도이다. 일 예에서 네트워킹 장치(400)는 객체의 식별 정보 및 이름에 기반하여 결정된 권위값을 포함하는 객체 관련 정보를 저장하는 저장소 및 프로세서를 포함하는 전자 장치이다.4 is a block diagram of a networking device based on distributed naming according to an embodiment. In one example, the networking device 400 is an electronic device including a storage and a processor that stores object-related information including an authority value determined based on identification information and a name of the object.

도 4는 네트워킹 장치(400)의 기능 블록도로서, 저장부(430)는 객체 관련 정보를 저장하는 저장소에 대응한다. 통신부(410)는 외부와의 통신을 담당하는 유무선 통신 모듈이다. 제어부(420)는 프로세서를 포함한 컴퓨팅 장치에서 구동된다.4 is a functional block diagram of the networking device 400, and the storage unit 430 corresponds to a storage that stores object-related information. The communication unit 410 is a wired/wireless communication module responsible for communication with the outside. The control unit 420 is driven by a computing device including a processor.

제어부(420)를 구동하는 프로세서는 동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하는 동작을 수행한다. 프로세서는 제어부(420)를 구동하여 제 1 및 제 2 객체 관련 정보의 권위값에 기반하여 상이름의 주인을 결정하는 동작을 수행한다.The processor driving the controller 420 performs an operation of receiving first object-related information and second object-related information, respectively, from the first object and the second object selected with the same name. The processor drives the control unit 420 to determine the owner of the image name based on the authority values of the first and second object-related information.

일 예에서 네트워킹 장치(400)는 실시예에 따른 분산형 네이밍에 기반한 네트워킹 방법의 각 단계를 수행하도록 설정된 컴퓨팅 장치이다.In one example, the networking device 400 is a computing device configured to perform each step of a networking method based on distributed naming according to an embodiment.

도 5는 저장 공간에 저장된 데이터 패킷의 갱신 과정을 예시적으로 보여준다.5 shows an exemplary update process of a data packet stored in a storage space.

특정 이름에 대한 데이터를 저장하고 있는 장치에서는 동일한 이름에 대해 다수의 데이터가 존재하는 경우 가장 권위있는 데이터를 저장하고 있어야 한다. 예를 들어 NDN에서 구현될 경우, Content Store는 가장 권위 있는 데이터를 캐시(cache)하고 있어야 한다. 이를 위하여, 제어부(420)는 객체 관련 정보에 포함된 권위값에 기반하여 동일한 이름에 대한 데이터 중 가장 권위있는 하나의 데이터를 선택한다. 즉, 제 1 객체 관련 정보는 제 1 객체의 식별 정보로 서명된 제 1 데이터를 포함하고, 제 2 객체 관련 정보는 제 2 객체의 식별 정보로 서명된 제 2 데이터를 포함하는 경우에, 제어부(420)는 제 1 및 제2 권위값에 기반하여 제 1 데이터 및 제 2 데이터 중 하나를 선택한다.In a device that stores data for a specific name, the most authoritative data should be stored when there are multiple data for the same name. For example, when implemented in NDN, the content store should cache the most authoritative data. To this end, the controller 420 selects one of the most authoritative data among data for the same name based on the authority value included in the object-related information. That is, when the first object-related information includes first data signed with the identification information of the first object, and the second object-related information includes second data signed with the identification information of the second object, the control unit ( 420) selects one of the first data and the second data based on the first and second authority values.

도 5에서 저장부(Content Store, 430)는 /foo라는 이름에 대한 객체 관련 정보 및 /foo/bar라는 이름에 대한 객체 관련 정보를 저장하고 있다. 통신부(410)가 새로운 데이터 패킷(Incoming Data Packet)을 수신한 경우, 제어부(420)는 새로운 데이터 패킷에 저장된 객체 관련 정보에 포함된 이름을 저장부(430)에 저장된 객체 관련 정보들과 비교하여 동일한 이름에 대한 객체 관련 정보를 이미 저장부(430)에 저장하고 있는지 확인한다. 이미 동일한 이름에 대한 객체 관련 정보를 저장하고 있는 경우, 제어부(420)는 새로 수신한 권위값과 저장된 권위값을 서로 비교하여 권위값이 더 작은 (즉, 더 권위있는) 객체 관련 정보를 저장부(430)에 유지한다.In FIG. 5, a storage unit (Content Store) 430 stores object-related information for the name /foo and object-related information for the name /foo/bar. When the communication unit 410 receives a new data packet, the control unit 420 compares the name included in the object related information stored in the new data packet with the object related information stored in the storage unit 430. It is checked whether object-related information for the same name is already stored in the storage unit 430. When object-related information for the same name is already stored, the control unit 420 compares the newly received authority value and the stored authority value to store information related to the object having a smaller authority value (ie, more authority). Keep at 430.

다시 말하면, 통신부(410)가 동일한 이름을 선택한 제 3 객체로부터 제 3 객체 관련 정보를 수신하는 경우, 제어부(420)는 제 3 객체 관련 정보로부터 획득된 제 3 권위값에 기반하여 이름의 주인을 재결정한다. 예를 들어 제어부(420)는 제 3 권위값이 현재 이름의 주인의 권위값보다 더 작은 경우 제 3 객체를 이름의 주인으로 재결정한다.In other words, when the communication unit 410 receives the third object-related information from the third object that has selected the same name, the control unit 420 determines the owner of the name based on the third authority value obtained from the third object-related information. Re-determine. For example, when the third authority value is smaller than the authority value of the current owner of the name, the control unit 420 re-determines the third object as the owner of the name.

도 5를 참조하여 설명하면, 제 3 객체인 새로운 데이터 패킷에 저장된 /foo/bar의 권위값은 0x0012이고 Content Store에 저장된 /foo/bar에 대한 권위값은 0x002e이므로, 새로운 데이터 패킷의 권위값이 더 작다. 이 경우, 제어부(420)는 저장부(430)에 저장된 /foo/bar에 대한 객체 관련 정보를 더 작은 권위값을 가지는 (즉, 더 권위있는) 새로 수신한 데이터 패킷으로 덮어쓴다. 즉, /foo/bar라는 이름의 주인을 재결정한다.Referring to FIG. 5, since the authority value of /foo/bar stored in the new data packet, which is the third object, is 0x0012, and the authority value for /foo/bar stored in the content store is 0x002e, the authority value of the new data packet is Smaller. In this case, the control unit 420 overwrites the object-related information on /foo/bar stored in the storage unit 430 with a newly received data packet having a smaller authority value (ie, more authority). That is, it re-determines the owner of the name /foo/bar.

도 6은 분산형 네이밍에 기반한 데이터 패킷 전달 과정을 예시적으로 보여준다.6 shows an exemplary data packet delivery process based on distributed naming.

통신부(410)가 특정 이름에 대한 데이터를 수신하면, 제어부(420)는 저장부(430)에 저장된 권위값에 기반하여 해당 이름에 대한 데이터의 목적지를 결정할 수 있다. 또한 제어부(420)는 수신된 데이터의 목적지를 해당 이름의 주인으로 갱신하여 저장부(430)에 저장할 수 있다.When the communication unit 410 receives data for a specific name, the control unit 420 may determine the destination of the data for the name based on the authority value stored in the storage unit 430. In addition, the controller 420 may update the destination of the received data to the owner of the corresponding name and store it in the storage unit 430.

즉, 실시예에 따른 네트워킹은 특정한 이름에 대한 데이터를 보유한 노드를 알려주는 정보를 저장할 수 있다. 예를 들어, 네트워킹 장치(400)에서 저장부(430)는 이름에 대한 라우팅 정보를 저장하는 라우팅 테이블을 저장할 수 있다. 이를테면 라우팅 테이블은 이름, 권위값 및 다음 홉 정보를 저장한다. 노드는 네트워킹 장치(400)를 포함한다. 라우팅 테이블은 해당 이름에 대한 가장 권위있는 데이터를 가지는 노드를 다음 홉(hop)으로 저장하도록 구현될 수 있다. 예를 들어 NDN에서 구현될 경우, FIB(Forwarding Information Base)는 가장 권위있는 데이터를 가지는 노드로 Interest packet이 전달될 수 있도록 정보를 유지한다.That is, the networking according to an embodiment may store information indicating a node that has data for a specific name. For example, in the networking device 400, the storage unit 430 may store a routing table that stores routing information for names. For example, the routing table stores name, authority value, and next hop information. The node includes a networking device 400. The routing table may be implemented to store the node having the most authoritative data for a corresponding name as a next hop. For example, when implemented in NDN, the Forwarding Information Base (FIB) maintains information so that an interest packet can be transmitted to the node with the most authoritative data.

도 6을 참조하여 살펴보면, /foo/bar에 대한 광고(advertisement)가 Node A에 전달될 때 Node A는 더 권위있는 노드인 Node C를 Node A의 FIB 엔트리가 가리키도록 관리한다. 즉, 두 노드(Node B, Node C) 중에 권위값이 더 작은 Node C를 /foo/bar에 대한 다음 홉으로 갱신한다. Node A는 /foo/bar에 대한 Interest packet이 Node A에 도착한 경우, FIB를 룩업하여 해당 패킷을 다음 홉인 Node C로 전달한다.Referring to FIG. 6, when an advertisement for /foo/bar is delivered to Node A, Node A manages to point to Node C, which is a more authoritative node, by the FIB entry of Node A. In other words, among the two nodes (Node B and Node C), Node C with the smaller authority value is updated with the next hop to /foo/bar. When the interest packet for /foo/bar arrives at Node A, Node A looks up the FIB and delivers the packet to Node C, the next hop.

도 7은 분산형 네이밍에 기반하여 계층적인 이름을 구성하는 예시적인 방안을 도시한다.7 shows an exemplary method of configuring a hierarchical name based on distributed naming.

본 발명에 따른 분산형 네이밍 방식을 기반으로 URI(Uniform Resource Identifier)와 같은 계층적인 이름을 구성하기 위해서는 취하고자 하는 이름의 프리픽스(prefix)에 해당하는 이름에 대한 권위를 가진 주체로부터 서명을 통해 공개키를 인정받도록 강제할 수 있다.In order to construct a hierarchical name such as a URI (Uniform Resource Identifier) based on the distributed naming method according to the present invention, it is disclosed through a signature from a subject having authority for the name corresponding to the prefix of the name to be taken. You can force your keys to be recognized.

예를 들어, 도 2를 참조하여 Alice와 Bob의 예시에서 /foo 이름에 대한 권위를 Alice가 가지고 있을 때, Carol이 /foo/bar에 대한 권위를 가지기 위해서는 /foo/bar에 대해 낮은 권위값(예를 들어, auth=0x003f)을 가지는 키 페어 (skC, pkC)를 생성하고, pkC를 Alice가 /foo 이름에 대해 가지는 비공개키나 skA로 서명을 받도록 하여(즉, 인증서로 보유) 권위를 획득할 수 있다. 만일 서명을 받지 못하면 서명을 받은 최소의 권위값을 가지는 객체가 해당 이름에 대한 권위를 가질 수 있다.For example, referring to FIG. 2, in the example of Alice and Bob, when Alice has authority over the name /foo, in order for Carol to have authority over /foo/bar, a lower authority value for /foo/bar ( For example, create a key pair (sk C , pk C ) with auth=0x003f) and have pk C be signed with sk A or the private key Alice has for the name /foo (i.e., hold it as a certificate) You can gain authority. If the signature is not received, the object with the signed minimum authority value may have authority over the name.

한편, 이름에 대해 다수의 프리픽스가 존재하는 경우 모든 프리픽스에 대한 권위를 가지는 주체의 서명이 동등하게 유효하다. 예를 들어, /foo/bar/woo라는 이름에 대해 권위를 판단할 때, /foo 이름에 대한 권위를 가진 주체로 받은 서명과 /foo/bar 이름에 대한 권위를 가진 주체로 받은 서명은 동등하게 유효하기 때문에 더 작은 auth 값을 가진 주체가 권위를 가지게 된다.On the other hand, when there are multiple prefixes for a name, the signature of the subject having authority for all prefixes is equally valid. For example, when judging authority over the name /foo/bar/woo, the signature received as the subject with authority over the name /foo and the signature received as the subject with authority over the name /foo/bar are equal Since it is valid, the subject with a smaller auth value has authority.

도 8은 권위값을 이용하여 키 페어를 생성하는 과정을 예시적으로 보여준다.8 exemplarily shows a process of generating a key pair using an authority value.

일 예에서 객체는 희망하는 이름을 획득하기 위하여 반복적으로 키 페어를 생성할 수 있다. 다시 말하면, 하나의 키 페어를 활용 할 수 없고 특정 이름마다 적절한 키 페어가 생성될 때까지 계속 키 생성을 할 수 있다. 따라서, 사전에 안전하게 생성된 하드웨어에 내재된 키를 그대로 사용할 수가 없다. 뿐만 아니라 키 생성 성능이 중요하기 때문에 TEE(Trusted Execution Environment)와 같은 안전한 실행 환경에서 키를 생성하는 것도 제약적이다. 만일, 구현에서 ECC(Elliptic Curve Cryptography)를 이용한다면 다음의 ECC의 특징을 이용하여 도 8의 과정을 통해 키를 분리하여 안전하게 저장할 수 있다.In one example, an object may repeatedly generate a key pair to obtain a desired name. In other words, you cannot use a single key pair, and you can continue to generate keys until an appropriate key pair is generated for each specific name. Therefore, it is impossible to use the key embedded in the hardware that is securely generated in advance. In addition, since key generation performance is important, it is also limited to generate keys in a secure execution environment such as a Trusted Execution Environment (TEE). If the implementation uses ECC (Elliptic Curve Cryptography), the key can be separated and safely stored through the process of FIG. 8 using the following features of ECC.

특징 1) 만일 (ski, pki)와 (skj, pkj)이 유효한 ECC 키페어이면, (ski + skj,pki + pkj)도 유효한 ECC 키페어이다.Features 1) If (sk i , pk i ) and (sk j , pk j ) are valid ECC key pairs, (sk i + sk j ,pk i + pk j ) is also a valid ECC key pair.

도 8의 초기화 단계에서 (오프라인 상태거나 하드웨어가 생산되는 시기일 수 있음) 키 페어 (skh, pkh)를 생성한다. skh는 어떤 방법으로도 (하드웨어) 외부에 노출되어서는 안된다. pkh는 노출되어 소프트웨어 등에서 이용할 수 있다.In the initialization step of FIG. 8 (it may be offline or when hardware is produced), a key pair (sk h , pk h ) is generated. sk h must not be exposed to the outside in any way (hardware). pk h is exposed and can be used in software, etc.

수학식 1에 특징 1을 적용한 식(810)을 이용하여 획득한 해쉬값을 권위값으로 사용한다.The hash value obtained by using Equation 810 in which Feature 1 is applied to Equation 1 is used as the authority value.

실제로 특정 이름(name)에 대한 threshold 보다 작은 auth 값이 필요한 경우 알고리즘과 같이 공개키에 대한 연산을 수행 한 후 결과적으로 얻어진 비공개키 ski를 저장해두어서 추후에 서명 등을 위해 비공개키를 사용해야 할 경우 skh + ski를 비공개키로 활용하면 된다. 이 때, skh는 서명 등의 요청을 통해서만 키를 사용할 수 있으므로 외부로 노출되지 않고 안전하게 보관될 수 있다.In fact, if an auth value that is smaller than the threshold for a specific name is required, the private key sk i obtained as a result of performing an operation on the public key like an algorithm must be stored, and the private key must be used for signing later. In this case, sk h + sk i can be used as a private key. At this time, since sk h can use the key only through a request such as a signature, it can be safely stored without being exposed to the outside.

본 발명의 실시예에 따른 네트워킹 방법 및 장치는 컴퓨터 시스템에서 구현되거나, 또는 기록매체에 기록될 수 있다. 컴퓨터 시스템은 적어도 하나 이상의 프로세서와, 메모리와, 사용자 입력 장치와, 데이터 통신 버스와, 사용자 출력 장치와, 저장소를 포함할 수 있다. 전술한 각각의 구성 요소는 데이터 통신 버스를 통해 데이터 통신을 한다. 컴퓨터 시스템은 예를 들어, 단일의 서버 컴퓨터 또는 이와 유사한 시스템이거나, 또는 하나 이상의 서버 뱅크들 또는 그 외 다른 배열들로 배열되는 복수의 서버들일 수 있다. 예를 들어 컴퓨터 시스템은 복수의 프로세서에 기반한 분산 처리 시스템 또는 병렬 처리 시스템이거나 클러스터링 서버군 또는 클라우드 서버일 수 있다. 서버 또는 서버군과 같은 컴퓨터 시스템은 단일 시설에 놓일 수도 있고, 혹은 많은 서로 다른 지리적 위치들 간에 분산될 수 있다. 각 서버는 프로세서, 통신 인터페이스 및 메모리를 포함할 수 있다. 프로세서, 메모리 및 통신 인터페이스는 통신 버스를 통해 서로 연결될 수 있다.The networking method and apparatus according to an embodiment of the present invention may be implemented in a computer system or recorded on a recording medium. The computer system may include at least one processor, memory, user input device, data communication bus, user output device, and storage. Each of the above-described components communicates data through a data communication bus. The computer system may be, for example, a single server computer or similar system, or may be a plurality of servers arranged in one or more server banks or other arrangements. For example, the computer system may be a distributed processing system or a parallel processing system based on a plurality of processors, a clustering server group, or a cloud server. Computer systems, such as servers or groups of servers, may be located in a single facility, or may be distributed among many different geographic locations. Each server may include a processor, a communication interface, and a memory. The processor, memory and communication interface can be connected to each other through a communication bus.

컴퓨터 시스템은 네트워크에 커플링된 네트워크 인터페이스를 더 포함할 수 있다. 프로세서는 중앙처리 장치(central processing unit (CPU))이거나, 혹은 메모리 및/또는 저장소에 저장된 명령어를 처리하는 반도체 장치일 수 있다. The computer system may further include a network interface coupled to the network. The processor may be a central processing unit (CPU) or a semiconductor device that processes instructions stored in a memory and/or storage.

메모리 및 저장소는 다양한 형태의 휘발성 혹은 비휘발성 저장매체를 포함할 수 있다. 예컨대, 메모리는 ROM 및 RAM을 포함할 수 있다.The memory and storage may include various types of volatile or nonvolatile storage media. For example, the memory may include ROM and RAM.

본 발명의 실시예에 따른 네트워킹 방법은 컴퓨터에서 실행 가능한 방법으로 구현될 수 있다. 본 발명의 실시예에 따른 네트워킹 방법이 컴퓨터 장치에서 수행될 때, 컴퓨터로 판독 가능한 명령어들이 본 발명에 따른 방법을 수행할 수 있다.The networking method according to an embodiment of the present invention may be implemented in a computer-executable method. When the networking method according to an embodiment of the present invention is performed in a computer device, computer-readable instructions may perform the method according to the present invention.

상술한 본 발명에 따른 네트워킹 방법은 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현되는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체로는 컴퓨터 시스템에 의하여 해독될 수 있는 데이터가 저장된 모든 종류의 기록 매체를 포함한다. 예를 들어, ROM(Read Only Memory), RAM(Random Access Memory), 자기 테이프, 자기 디스크, 플래시 메모리, 광 데이터 저장장치 등이 있을 수 있다. 또한, 컴퓨터로 판독 가능한 기록매체는 컴퓨터 통신망으로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 읽을 수 있는 코드로서 저장되고 실행될 수 있다.The networking method according to the present invention described above may be implemented as a computer-readable code on a computer-readable recording medium. The computer-readable recording medium includes all types of recording media in which data that can be decoded by a computer system is stored. For example, there may be read only memory (ROM), random access memory (RAM), magnetic tape, magnetic disk, flash memory, optical data storage device, and the like. In addition, the computer-readable recording medium can be distributed in a computer system connected through a computer communication network, and stored and executed as code that can be read in a distributed manner.

이제까지 본 발명을 실시예들을 중심으로 살펴보았다. 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 다양하게 변경 또는 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 개시된 실시예들은 한정적인 관점이 아니라 설명을 위한 예시적인 관점에서 고려되어야 한다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.So far, the present invention has been looked at based on examples. Those of ordinary skill in the art to which the present invention pertains will appreciate that the present invention can be implemented in variously modified or modified forms without departing from the essential characteristics of the present invention. Therefore, the disclosed embodiments should be considered from an illustrative point of view, not a limiting point of view. The scope of the present invention is shown in the claims rather than the above description, and all differences within the scope equivalent thereto should be construed as being included in the present invention.

400: 네트워킹 장치
410: 통신부
420: 제어부
430: 저장부
400: networking device
410: communication department
420: control unit
430: storage unit

Claims (15)

분산형 네이밍에 기반한 네트워킹 방법에 있어서,
동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하는 단계;
상기 제 1 객체 관련 정보로부터 상기 제 1 객체의 식별 정보 및 상기 이름에 기반하여 결정된 제 1 권위값을 획득하는 단계;
상기 제 2 객체 관련 정보로부터 상기 제 2 객체의 식별 정보 및 상기 이름에 기반하여 결정된 제 2 권위값을 획득하는 단계; 및
상기 제 1 및 제 2 권위값에 기반하여 상기 이름의 주인을 결정하는 단계
를 포함하는 네트워킹 방법.
In the networking method based on distributed naming,
Receiving first object related information and second object related information from a first object and a second object selected with the same name, respectively;
Obtaining a first authority value determined based on the identification information of the first object and the name from the first object related information;
Obtaining a second authority value determined based on the identification information of the second object and the name from the second object related information; And
Determining the owner of the name based on the first and second authority values
Networking method comprising a.
제 1 항에 있어서,
상기 객체의 식별 정보는 상기 객체의 공개키이고,
상기 권위값은 상기 객체의 식별 정보 및 상기 이름을 결합한 값의 해쉬값으로 결정된 것인 네트워킹 방법.
The method of claim 1,
The identification information of the object is the public key of the object,
The authority value is determined as a hash value of a value combining identification information of the object and the name.
제 1 항에 있어서,
상기 이름의 주인을 결정하는 단계는,
상기 제 1 및 제 2 권위값을 비교하여 더 작은 권위값을 갖는 객체를 상기 이름의 주인으로 결정하는 것인 네트워킹 방법.
The method of claim 1,
The step of determining the owner of the name,
The networking method of comparing the first and second authority values to determine an object having a smaller authority value as the owner of the name.
제 1 항에 있어서,
상기 제 1 및 제 2 객체 관련 정보는 상기 이름의 일부로서 상기 권위값을 포함하는 네트워킹 방법.
The method of claim 1,
The first and second object related information includes the authority value as part of the name.
제 1 항에 있어서,
상기 제 1 객체 관련 정보는 상기 제 1 객체의 식별 정보로 서명된 제 1 데이터를 포함하고,
상기 제 2 객체 관련 정보는 상기 제 2 객체의 식별 정보로 서명된 제 2 데이터를 포함하고,
상기 제 1 및 제2 권위값에 기반하여 상기 제 1 데이터 및 상기 제 2 데이터 중 하나를 선택하는 단계
를 더 포함하는 네트워킹 방법.
The method of claim 1,
The first object related information includes first data signed with identification information of the first object,
The second object related information includes second data signed with the identification information of the second object,
Selecting one of the first data and the second data based on the first and second authority values
Networking method further comprising.
제 1 항에 있어서,
상기 이름을 선택한 제 3 객체로부터 제 3 객체 관련 정보를 수신하는 단계 및
상기 제 3 객체 관련 정보로부터 획득된 제 3 권위값에 기반하여 상기 이름의 주인을 재결정하는 단계
를 더 포함하는 네트워킹 방법.
The method of claim 1,
Receiving third object related information from a third object whose name is selected, and
Re-determining the owner of the name based on a third authority value obtained from the third object related information
Networking method further comprising.
제 6 항에 있어서,
상기 이름의 주인을 재결정하는 단계는,
상기 제 3 권위값이 상기 이름의 주인의 권위값보다 더 작은 경우 상기 제 3 객체를 상기 이름의 주인으로 재결정하는 네트워킹 방법.
The method of claim 6,
The step of re-determining the owner of the name,
Networking method of re-determining the third object as the owner of the name when the third authority value is smaller than the authority value of the owner of the name.
제 1 항에 있어서,
상기 이름에 대한 데이터를 수신하는 단계; 및
상기 권위값에 기반하여 상기 이름에 대한 데이터의 목적지를 결정하는 단계
를 더 포함하는 네트워킹 방법.
The method of claim 1,
Receiving data for the name; And
Determining the destination of the data for the name based on the authority value
Networking method further comprising.
제 8 항에 있어서,
상기 목적지를 상기 이름의 주인으로 갱신하는 단계
를 더 포함하는 네트워킹 방법.
The method of claim 8,
Updating the destination to the owner of the name
Networking method further comprising.
분산형 네이밍에 기반한 네트워킹을 위한 전자 장치에 있어서,
객체의 식별 정보 및 이름에 기반하여 결정된 권위값을 포함하는 객체 관련 정보를 저장하는 저장소 및
프로세서를 포함하고, 상기 프로세서는,
동일한 이름을 선택한 제 1 객체 및 제 2 객체로부터 제 1 객체 관련 정보 및 제 2 객체 관련 정보를 각각 수신하고,
상기 제 1 및 제 2 객체 관련 정보의 권위값에 기반하여 상기 이름의 주인을 결정하도록 설정되는 전자 장치.
In the electronic device for networking based on distributed naming,
A repository that stores object-related information including an authority value determined based on the object's identification information and name, and
Including a processor, the processor,
Each of the first object-related information and the second object-related information received from the first object and the second object selected the same name,
An electronic device configured to determine the owner of the name based on an authority value of the first and second object-related information.
제 10 항에 있어서,
상기 객체의 식별 정보는 상기 객체의 공개키이고,
상기 권위값은 상기 객체의 식별 정보 및 상기 이름을 결합한 값의 해쉬값으로 결정된 것인 전자 장치.
The method of claim 10,
The identification information of the object is the public key of the object,
The authority value is determined as a hash value of a value obtained by combining the identification information of the object and the name.
제 10 항에 있어서,
상기 프로세서는,
상기 제 1 및 제 2 권위값을 비교하여 더 작은 권위값을 갖는 객체를 상기 이름의 주인으로 결정하도록 설정되는 전자 장치.
The method of claim 10,
The processor,
The electronic device is configured to compare the first and second authority values to determine an object having a smaller authority value as the owner of the name.
제 10 항에 있어서,
상기 저장소는,
상기 이름의 일부로서 상기 권위값을 포함하여 객체 관련 정보로서 저장하는 전자 장치.
The method of claim 10,
The storage is,
An electronic device that includes the authority value as part of the name and stores it as object-related information.
제 10 항에 있어서,
상기 프로세서는,
상기 이름을 선택한 제 3 객체로부터 제 3 객체 관련 정보를 수신하고,
상기 제 3 객체 관련 정보로부터 획득된 제 3 권위값에 기반하여 상기 이름의 주인을 재결정하도록 설정되는 전자 장치.
The method of claim 10,
The processor,
Receiving information related to a third object from a third object that has selected the name,
An electronic device configured to re-determine the owner of the name based on a third authority value obtained from the third object related information.
제 10 항에 있어서,
상기 프로세서는,
상기 이름에 대한 데이터를 수신하고,
상기 권위값에 기반하여 상기 이름에 대한 데이터의 목적지를 결정하도록 설정되는 전자 장치.
The method of claim 10,
The processor,
Receive data for the name,
An electronic device configured to determine a destination of data for the name based on the authority value.
KR1020190032395A 2019-03-21 2019-03-21 Method and apparatus for networking based on decentrazlized naming scheme KR102569450B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190032395A KR102569450B1 (en) 2019-03-21 2019-03-21 Method and apparatus for networking based on decentrazlized naming scheme

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190032395A KR102569450B1 (en) 2019-03-21 2019-03-21 Method and apparatus for networking based on decentrazlized naming scheme

Publications (2)

Publication Number Publication Date
KR20200112237A true KR20200112237A (en) 2020-10-05
KR102569450B1 KR102569450B1 (en) 2023-08-23

Family

ID=72808916

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190032395A KR102569450B1 (en) 2019-03-21 2019-03-21 Method and apparatus for networking based on decentrazlized naming scheme

Country Status (1)

Country Link
KR (1) KR102569450B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140093423A (en) * 2013-01-18 2014-07-28 삼성전자주식회사 Method of transmitting data packet by contents provider in a content centric network and the contents provider
KR20160072774A (en) * 2014-12-15 2016-06-23 팔로 알토 리서치 센터 인코포레이티드 Ccn routing using hardware-assisted hash tables

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20140093423A (en) * 2013-01-18 2014-07-28 삼성전자주식회사 Method of transmitting data packet by contents provider in a content centric network and the contents provider
KR20160072774A (en) * 2014-12-15 2016-06-23 팔로 알토 리서치 센터 인코포레이티드 Ccn routing using hardware-assisted hash tables

Also Published As

Publication number Publication date
KR102569450B1 (en) 2023-08-23

Similar Documents

Publication Publication Date Title
US9800402B2 (en) Secure and delegated distribution of private keys via domain name service
US8365301B2 (en) Peer-to-peer network communication
JP5922773B2 (en) Facilitating access control in peer-to-peer overlay networks
US10681018B2 (en) Transparent encryption in a content centric network
US20060190716A1 (en) Peer-to-peer network information storage
US20100251347A1 (en) Simple, secure login with multiple authentication providers
JP2018506939A5 (en)
US11856046B2 (en) Endpoint URL generation and management
US20070005965A1 (en) Client authentication using multiple user certificates
EP2798809A1 (en) Dynamic pseudonymization method for user data profiling networks and user data profiling network implementing the method
EP3038289A1 (en) Low-cost authenticated signing delegation in content centric networking
CN105376212B (en) System and method for key resolution over content-centric networks
CN108604984B (en) Method and system for interest encryption in content-centric networks
CN111064569A (en) Cluster key obtaining method and device of trusted computing cluster
EP1694027B1 (en) Peer-to-peer network information
KR101109371B1 (en) System and method for name resolution
JP2018092446A (en) Authentication approval system, information processing apparatus, authentication approval method, and program
Chalaemwongwan et al. A practical national digital ID framework on blockchain (NIDBC)
CN115225409B (en) Cloud data safety duplicate removal method based on multi-backup joint verification
JP2006236349A5 (en)
US9894057B2 (en) Method and system for managing secure custom domains
Fotiou et al. Enabling self-verifiable mutable content items in IPFS using Decentralized Identifiers
KR102569450B1 (en) Method and apparatus for networking based on decentrazlized naming scheme
US10033711B2 (en) Directory service device, client device, key cloud system, method thereof, and program
CN105791383B (en) Decoupled name security binding for CCN objects

Legal Events

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