KR20160001598A - 스토리지 디바이스용 호스트 키 생성 방법 및 시스템 - Google Patents

스토리지 디바이스용 호스트 키 생성 방법 및 시스템 Download PDF

Info

Publication number
KR20160001598A
KR20160001598A KR1020150011282A KR20150011282A KR20160001598A KR 20160001598 A KR20160001598 A KR 20160001598A KR 1020150011282 A KR1020150011282 A KR 1020150011282A KR 20150011282 A KR20150011282 A KR 20150011282A KR 20160001598 A KR20160001598 A KR 20160001598A
Authority
KR
South Korea
Prior art keywords
node
key
nodes
keys
seed
Prior art date
Application number
KR1020150011282A
Other languages
English (en)
Other versions
KR102306676B1 (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 KR20160001598A publication Critical patent/KR20160001598A/ko
Application granted granted Critical
Publication of KR102306676B1 publication Critical patent/KR102306676B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/062Securing storage systems
    • G06F3/0622Securing storage systems in relation to access
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/083Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP]
    • H04L9/0833Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key
    • H04L9/0836Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) involving central third party, e.g. key distribution center [KDC] or trusted third party [TTP] involving conference or group key using tree structure or hierarchical structure
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6209Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0637Permissions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0688Non-volatile semiconductor memory arrays
    • 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/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • 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/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • 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/603Digital right managament [DRM]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법이 개시된다. 상기 방법은, 하나 이상의 조상 노드에 대한 하나 이상의 노드 키 세트를 데이터 구조로 생성하고, 하나 이상의 리프 노드(leaf node)에 대한 하나 이상의 공통 조상 노드를 식별하고, 하나 이상의 공통 조상 노드에 대응하는 하나 이상의 노드 키 세트를 임시 스토리지 매체에 저장하고, 조상 노드의 하나 이상의 노드 키 세트를 이용하여, 하나 이상의 리프 노드에 대한 하나 이상의 노드 키 세트를 데이터 구조로 생성하는 것을 포함한다.

Description

스토리지 디바이스용 호스트 키 생성 방법 및 시스템{METHOD AND SYSTEM FOR GENERATING HOST KEYS FOR STORAGE DEVICES}
본 발명은 스토리지 디바이스, 더욱 구체적으로 스토리지 디바이스에 대응하는 호스트 키의 생성 및 할당에 관한 것이다.
플래시 메모리는 다양한 컴퓨터 어플리케이션용 스토리지 매체로 사용된다. 플래시 메모리는 비휘발성 스토리지로서 EEPROM(electrically-erasable programmable read-only memory)을 사용한다. 보안 플래시(Secure Flash, SF)는 플래시 메모리에 적용할 수 있는 DRM(Digital Rights Management)이고, 디지털 콘텐트를 무단 불법으로 사용되는 것으로부터 보호하기 위한 것이다. 콘텐트는 보안 플래시 디바이스에 암호화되는 방식으로 매체에 저장된다.
EMID(Enhanced Media Identifier) 및 감마(Gamma)는 SF 기술에서 사용되는 2 가지의 인증 프로토콜들이다. EMID와 감마 인증 프로토콜은, 콘텐트를 성공적으로 해독하기 위해 매체가 호스트 디바이스에 연결된 경우 성공적으로 통과될(passed) 것이다. 통상적으로, 보안 플래시 메모리 카드를 보안 플래시 호스트 디바이스에 삽입하는 경우, EMID 인증 프로토콜은, 호스트 디바이스 및 메모리 카드에 각각 할당된 암호화 키의 세트(set)를 이용하여 실행된다. EMID 인증 프로토콜은 오로지 호스트 디바이스 및 메모리 카드에 할당된 키들이 유효한 경우에만 통과시킨다.
일반적으로 암호화 키는 키 관리 시스템을 이용하여 호스트 디바이스 및 메모리 카드에 각각 할당된다. 키 관리는 호스트 키 생성 디바이스에 의해 수행된다. 키 관리 시스템은 호스트 키의 생성 요청을 대량으로(in bulk amounts) 수신할 수 있다. 근저에서(at the core), EMID 기술의 키 관리 시스템은 복수의 레이어를 갖는 키 관리 트리(Key Management Tree, KMT)라고 불리는 트리형 데이터 구조이다. KMT의 각각의 레이어는 하나 이상의 노드를 구성한다. KMT의 마지막 레이어에 존재하는 노드들은 실세계(real-world) EMID 호스트 디바이스를 나타낸다.
현재 키 관리 시스템에서는, 호스트 키 세트를 생성하기 위해 주먹구구 방식(brute force approach)이 사용된다. 모든 노드에 대한 키 세트들은 개별적으로 생성된다. 기존의 방식은, 호스트 키 세트들을 생성하기 위해 노드 별로 수행되는 다수의 추가적인 작업들을 필요로 할 수 있다. 이것은 막대한 처리 시간을 필요로 하여, 이로 인해 호스트 키 생성 디바이스의 처리량(throughput)에 영향을 미칠 수 있다.
본 발명이 해결하고자 하는 기술적 과제는 더 빠른 속도와 더 적은 연산으로 호스트 키 세트를 생성하기 위한 방법 및 시스템을 제공하는 것이다.
본 발명의 기술적 과제는 이상에서 언급한 기술적 과제로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법은, 하나 이상의 조상 노드에 대한 하나 이상의 노드 키 세트를 데이터 구조로 생성하고, 상기 조상 노드의 하나 이상의 노드 키 세트를 이용하여, 상기 데이터 구조의 하나 이상의 리프 노드(leaf node)에 대한 하나 이상의 노드 키 세트를 생성하고, 생성된 상기 하나 이상의 조상 노드의 노드 키 세트와 상기 하나 이상의 리프 노드의 노드 키 세트를 재사용하여, 적어도 하나의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 데이터 구조는 트리형 데이터 구조일 수 있다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 상기 하나 이상의 리프 노드에 대한 하나 이상의 공통 조상 노드를 식별하고, 상기 하나 이상의 공통 조상 노드에 대응하는 노드 키 세트를 임시 스토리지 매체에 저장하는 것을 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 다른 실시예에 따른 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법은, 하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 트리형 데이터 구조로 생성하고, 상기 트리형 데이터 구조는 하나 이상의 조상 노드 및 하나 이상의 리프 노드(leaf node)를 포함하고, 생성된 상기 하나 이상의 시드 키를 임시 스토리지 매체에 저장하고, 저장된 상기 시드 키를 이용하여 상기 트리형 데이터 구조의 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 생성하고, 생성된 상기 하나 이상의 노드의 상기 하나 이상의 노드 키 세트에 기초하여 상기 하나 이상의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 하나 이상의 노드 키 세트는 상기 하나 이상의 시드 키 및 상기 시드 키의 하나 이상의 파생 데이터(derivative)를 포함할 수 있다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 노드 정보 메타 데이터, 상기 하나 이상의 시드 키 및 상기 하나 이상의 노드의 대응하는 노드 키 세트를 저장하는 것을 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 또 다른 실시예에 따른 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법은, 하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 트리형 데이터 구조로 생성하고, 상기 트리형 데이터 구조는 하나 이상의 조상 노드 및 하나 이상의 리프 노드(leaf node)를 포함하고, 생성된 상기 하나 이상의 시드 키에 기초하여 상기 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 생성하고, 상기 노드 키 세트는 상기 각각의 노드에 대응하는 시드 키 및 상기 하나 이상의 시드 키로부터 파생된 하나 이상의 중간 키를 포함하고, 생성된 상기 하나 이상의 시드 키 및 상기 하나 이상의 중간 키를 임시 스토리지 매체에 저장하고, 저장된 상기 시드 키 및 중간 키를 재사용하여, 상기 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 상기 트리형 데이터 구조로 생성하는 것을 포함한다.
본 발명의 몇몇의 실시예에서, 상기 방법은, 생성된 상기 하나 이상의 조상 노드 및 리프 노드의 상기 하나 이상의 노드 키 세트에 기초하여 상기 하나 이상의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 더 포함할 수 있다.
상기 기술적 과제를 해결하기 위한 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 시스템은, 요청에 따라 하나 이상의 노드를 선택하도록 구성된 노드 선택 모듈; 상기 노드 선택 모듈과 연결되고, 선택된 상기 하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 생성하기 위한 시드 키 생성 모듈; 상기 하나 이상의 시드 키로부터 하나 이상의 중간 값을 생성하기 위한 중간 값 생성 모듈; 생성된 상기 시드 키 및 중간 값을 저장하기 위한 임시 스토리지 모듈; 저장된 하나 이상의 중간 값 및 하나 이상의 시드 키로부터 하나 이상의 노드 키 세트를 생성하기 위한 노드 키 세트 생성 모듈; 및 상기 노드 키 세트 생성 모듈과 연결되고, 생성된 노드 키 세트로부터 호스트 키 세트를 생성하기 위한 호스트 키 생성 모듈을 포함한다.
기타 실시예들의 구체적인 사항들은 상세한 설명 및 도면들에 포함되어 있다.
도 1a는 키 관리 트리(KMT) 구조를 설명하기 위한 개략도이다.
도 1b는 환형 그룹에서의 각각의 노드와 시드 값 키(seed value key)의 할당을 설명하기 위한 개략도이다.
도 2a는 조상 노드와 리프 노드를 설명하기 위한 개략도이다.
도 2b는 KMT에 존재하는 t-1 개의 노드들에 대한 노드 키 세트를 설명하기 위한 도면이다.
도 3은 본 발명의 일 실시예에 따른 고려된 리프 노드(leaf nodes under consideration)와 고려된 리프 노드들에 대한 공통 조상 노드를 설명하기 위한 개략도이다.
도 4는 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트의 생성 방법을 설명하기 위한 도면이다.
도 5는 본 발명의 다른 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트의 생성 방법을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 각각의 노드에 대한 시드 키들의 분포를 설명하기 위한 도면이다.
도 7은 본 발명의 다른 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트의 생성 방법을 설명하기 위한 도면이다.
도 8은 본 발명의 다른 실시예에 따른 각각의 노드에 대한 시드 키들과 중간 키 값들의 분포를 설명하기 위한 도면이다.
도 9는 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트를 생성하기 위한 시스템의 블록도이다.
본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 개시되는 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 것이며, 단지 본 실시예들은 본 발명의 개시가 완전하도록 하며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 도면에서 층 및 영역들의 상대적인 크기는 설명의 명료성을 위해 과장된 것일 수 있다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.
하나의 소자(elements)가 다른 소자와 "접속된(connected to)" 또는 "커플링된(coupled to)" 이라고 지칭되는 것은, 다른 소자와 직접 연결 또는 커플링된 경우 또는 중간에 다른 소자를 개재한 경우를 모두 포함한다. 반면, 하나의 소자가 다른 소자와 "직접 접속된(directly connected to)" 또는 "직접 커플링된(directly coupled to)"으로 지칭되는 것은 중간에 다른 소자를 개재하지 않은 것을 나타낸다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다. "및/또는"은 언급된 아이템들의 각각 및 하나 이상의 모든 조합을 포함한다.
소자(elements) 또는 층이 다른 소자 또는 층의 "위(on)" 또는 "상(on)"으로 지칭되는 것은 다른 소자 또는 층의 바로 위뿐만 아니라 중간에 다른 층 또는 다른 소자를 개재한 경우를 모두 포함한다. 반면, 소자가 "직접 위(directly on)" 또는 "바로 위"로 지칭되는 것은 중간에 다른 소자 또는 층을 개재하지 않은 것을 나타낸다.
비록 제1, 제2 등이 다양한 소자, 구성요소 및/또는 섹션들을 서술하기 위해서 사용되나, 이들 소자, 구성요소 및/또는 섹션들은 이들 용어에 의해 제한되지 않음은 물론이다. 이들 용어들은 단지 하나의 소자, 구성요소 또는 섹션들을 다른 소자, 구성요소 또는 섹션들과 구별하기 위하여 사용하는 것이다. 따라서, 이하에서 언급되는 제1 소자, 제1 구성요소 또는 제1 섹션은 본 발명의 기술적 사상 내에서 제2 소자, 제2 구성요소 또는 제2 섹션일 수도 있음은 물론이다.
본 명세서에서 사용된 용어는 실시예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 "포함한다(comprises)" 및/또는 "포함하는(comprising)"은 언급된 구성요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다.
본 발명은 각각의 노드에 대한 노드 키 세트를 키 관리 트리 구조로 생성하기 위한 방법을 개시한다. 본 발명에 따르면, 적은 수의 암호화 연산을 적게 이용하여 키를 생성할 수 있다. 본 발명의 일 실시예에서, 트리형 데이터 구조에서 다양한 노드의 공통 조상 노드에 대한 노드 키 세트는 저장되고, 처리량(throughput)을 증가시키기 위해 재사용된다. 반면, 다른 실시예에서, 공통 조상의 노드 키 세트를 재사용하는 것에 더해, 각각의 노드에 대한 노드 키 세트를 생성하기 위해 사용된 시드 키(seed key)는 저장되고, 모든 노드에 대한 노드 키 세트를 생성하기 위해 재사용된다. 본 발명의 다른 실시예에서, 중간 키들뿐 아니라 생성된 모든 시드 키들은 임시 스토리지 매체에 저장되고, 모든 노드의 노드 키 세트를 생성하기 위해 재사용된다.
도 1a는 키 관리 트리(KMT) 구조를 설명하기 위한 개략도이다. EMID 기술의 키 관리 시스템의 근저는 키 관리 트리(Key Management Tree, KMT)라고 불리는 트리형 데이터 구조이다. 노드(101)는 키 관리 트리(KMT)(100)의 루트 노드이다. 임의의 노드로부터 생성된 노드는 그 노드의 자식 노드라고 하고, 원래의 노드는 해당 자식 노드의 부모 노드라고 한다. KMT는 다음과 같은 속성을 갖는다:
1. KMT는 (루트 노드(101)를 제외하고) 'd' 레벨을 갖는 티-어레이(t-array) 트리이다. 레벨들은 레이어 0부터 레이어 d-1로 식별된다.
2. KMT의 리프 노드(leaf node)는 실세계(real-world) EMID 호스트 디바이스를 나타낸다. 또한, KMT는 (루트 노드(101)를 제외하고) 'd' 개의 레벨에 대한 td 개의 호스트 디바이스를 지원한다.
3. 모든 t 개의 노드는 환형 '그룹'을 형성하는 동일한 부모에 속한다.
4. 환형 그룹의 t 개의 노드에는 0 부터 t-1 까지의 ID가 부여된다.
5. 각각의 노드에는 그것의 ID에 따라 16 바이트의 랜덤 시드 값 키(random seed value key)가 할당된다. 상기 그룹의 노드 'i'에 대한 시드 값(seed value)은 0 = i = (t-1)인 i에 대해 Ki 로 표현된다.
도 1a는 KMT의 일반화된 구조를 나타낸다. 통상적으로, EMID 기술을 위한 KMT의 구현은 파라미터 t=16, d=10을 사용한다. 이것은, 각각의 노드가 16 개의 자식을 가지며, 10 개의 레이어가 존재함을 나타낸다. 따라서, KMT의 각각의 레이어의 노드의 개수는 t, t2, t3 등이 된다. 위에서 언급된 것에 따라 지원되는 실세계 EMID 호스트의 개수는 키 관리 트리의 레이어 9에서 (약) 1610 = 1.1조 개이다.
도 1b는 환형 그룹에서의 각각의 노드와 시드 값 키(seed value key)의 할당을 설명하기 위한 개략도이다. 환형 그룹의 각각의 노드는 (각각의 길이가 16 바이트인) t (=16) 개의 키를 포함하는 세트 및 그것들 고유의 시드 키 값과 연관된다.
도 2a는 조상 노드와 리프 노드를 설명하기 위한 개략도이다. 본 발명의 일 실시예에 따르면, KMT의 첫번째 레이어는 루트 노드로부터 생성된 16 개의 노드를 포함한다. 레이어 1의 각각의 노드 아래에는 다른 8 개의 레이어가 존재하기 때문에, 레이어 1의 모든 노드들은 조상 노드이다. 레이어 9의 모든 노드는 리프 노드로 취급된다. 이와 유사하게, 8 번째 레이어까지의 모든 노드들은 9 번째 레이어의 리프 노드의 조상 노드로 취급된다. 예를 들어, 리프 노드 0 내지 15를 고려하면, 레이어 0부터 레이어 8까지의 모든 첫번째 노드들은 리프 노드 0 내지 15에 대한 조상 노드들이다.
도 2b는 KMT에 존재하는 t-1 개의 노드들에 대한 노드 키 세트를 설명하기 위한 도면이다. 노드 키 세트는 노드의 아이덴티티(identity)를 나타낸다. 노드 키 세트 값을 생성하기 위해, AES(Advanced Encryption Standard) 암호화 연산 및 해시 연산과 같은 2 가지 유형의 연산이 수행된다. EMID 인증 프로토콜을 위한 키 관리 시스템의 구현은 각각의 노드에 대해 시드 값 키를 사용한다. 시드 키는 AES 연산을 이용하여 생성된다. AES 암호화 연산의 횟수는 레이어에 존재하는 노드의 개수에 의존적이다. 또한, 해시 연산이 시드 키 각각에 대해 수행될 필요가 있다. 또한, 완전한 하나의 노드 키 세트를 생성하기 위해, 해시 연산이 필요하다. 예를 들어, 16 노드에 대한 노드 키 세트를 생성하기 위해 수행되는 해시 연산의 횟수는 다음과 같이 설명된다:
노드 i(0≤i≤ t-1)에 대한 키 세트는 키 값 ki , n (0≤ n ≤ t-1)의 시퀀스이다.
ki , n =.h((i+t-n) mod t)(Kn)
상기 식에서 함수 'h'는 조금 수정된 SHA-1 해시 함수이고, 이것은 160 비트로 생성된 SHA-1 해시의 128 개의 최상위 비트(most significant bit)를 리턴한다. 함수 'h'의 지수는 수정된 SHA-1 해시 함수가 반복적으로(iteratively) 적용되는 횟수를 나타낸다. 상기 식은 도 2b에 도시된 것과 같은 키 세트를 생성한다(각 컬럼은 대응하는 노드에 대한 키 세트이다).
KMT의 각각의 리프 노드는 고유의 실세계 EMID 호스트에 대응하고, 각각의 호스트 디바이스는 호스트 키 세트라고 불리우는 고유의 키 세트를 저장한다. 이들 호스트 키 세트는 리프 노드의 대응하는 노드 키 세트 및, 낮은 8 개의 레이어, 즉, EMID용 KMT의 레이어 2, 3, ..., 9 에 대한 리프 노드의 모든 조상 노드의 키 세트의 컬렉션(collection)이다.
도 3은 본 발명의 일 실시예에 따른 공통 조상 노드 및 고려된 리프 노드(leaf nodes under consideration)를 설명하기 위한 개략도이다.
본 발명에 따른 호스트 키 생성은 대량 요청이 있는 경우 더 높은 처리량을 지원한다. 통상적으로, 리프 노드는 순차적으로 할당된다. KMT의 리프 노드가 가장 좌측의 노드에 0부터 가장 우측의 노드에 1610-1로 순차적으로 넘버링된다고 하자. 리프 노드 할당은 순차적으로 수행된다. 키 관리 시스템이 'X'로 넘버링된 리프 노드로부터 시작하는 'N' 개의 호스트 키 세트의 생성을 위한 대량의 요청을 수신하면, 호스트 키 세트가 생성되는 리프 노드는 리프 노드 X 부터 X+N-1까지이다.
N 개의 호스트 키 세트의 요청과, 요청된 N 개의 리프 노드가 단일 시퀀스에서 비가용(not available)이라고 하면, 'N' 개의 호스트 키 세트에 대한 요청은 최대 2 개의 순차적인 리프 노드 체인으로 분리된다. 그 후, N 개의 리프 노드로부터의 M 개의 노드는 리프 노드 X를 시작으로 할당되고, 나머지 (N-M) 개의 노드는 다른 리프 노드 Y를 시작으로 할당될 수 있다. 본 실시예에서, M은 N 보다 작다(즉, M<N). 본 실시예에서 할당된 리프 노드는 X 내지 X+M-1 및 Y 내지 Y+(N-M)+1이 될 것이다.
순차적 할당의 결과로, 처리되는 다수의 인접한 리프 노드들은 트리에서 이들 리프 노드들의 배치에 따라 많은 공통 조상 노드들을 가질 것이다. 예를 들면, 0으로 넘버링된 리프 노드(트리의 가장 좌측의 리프 노드) 및 1로 넘버링된 리프 노드(0으로 넘버링된 리프 노드의 바로 옆 노드)가 있다고 하자. 이들 2 개의 리프 노드들은 도 3에 도시된 바와 같이 레이어 8로부터 위쪽으로 모두 동일한 조상을 갖는다. 이와 유사하게, 15 및 16으로 넘버링된 리프 노드가 있다고 하자. 이들 리프 노드들은 레이어 8에서는 서로 다른 부모 노드에 속하지만, 레이어 7 및 그 위쪽에서는 동일한 조상을 갖는다. 이와 유사하게, 255 및 256으로 넘버링된 리프 노드는 레이어 6 및 그 위쪽에서 동일한 조상을 갖는다. 고려된 리프 노드 및 공통 조상 노드는 도 3에 도시되어 있다.
도 4는 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트의 생성 방법을 설명하기 위한 도면이다.
실제적인 구현에서 EMID 키 관리 시스템(키 발행자)에 대한 호스트 키의 요청은 대량으로 수신된다. 이 시스템은 단일의 요청으로 400,000 개 이상에 달하는 호스트의 노드 키 세트의 생성을 지원하는 것이 요구된다.
본 방법을 이용하는 노드 키 세트의 생성은 공통 조상 노드의 존재에 기초한다. 본 발명의 앞선 실시예에서, 단계 401에서의 노드 키는 데이터 구조에서 조상 노드에 대해 생성된다. 리프 노드의 호스트 키 세트는 리프 노드의 노드 키 세트 및 조상 노드의 노드 키 세트를 포함한다. 따라서, 공통 조상 노드는 요청된 모든 리프 노드로부터 단계 402에서 식별된다. 공통 조상 노드의 노드 키 세트는 단계 403에 도시된 바와 같이 임시 스토리지 매체에 저장된다. 또한, 단계 404에서, 하나 이상의 리프 노드에 대한 노드 키 세트는 조상 노드의 저장된 노드 키 세트를 이용하여 생성된다.
예를 들어, 현재 어떠한 호스트 키 세트도 할당되지 않았고, 시스템은 16 개의 노드 키 세트에 대한 요청을 수신한 시나리오를 고려하자. 이 시나리오에서, 0 내지 15로 넘버링된 리프 노드가 할당되고, 노드 키 세트는 이들로부터 생성될 것이다. 리프 노드 0에 대해, 시스템은 KMT의 레이어 2까지의 조상 노드에 대한 8 개의 노드 키 세트 모두를 연산해야 한다. 리프 노드 1의 경우, 앞서 설명한 바와 같이, 리프 노드 0 및 1은 레이어 8로부터 위쪽에서 모두 공통의 조상을 갖는다. 이에 따라, 레이어 8 내지 레이어 2의 조상 노드의 노드 키 세트는 리프 노드 0 및 리프 노드 1에 대해 동일하다. 다른 노드 키 세트는 레이어 9(즉, 레이어 9의 리프 노드)에서 이다. 따라서, 리프 노드 0에 대해 연산된 노드 키 세트가 메모리에 캐시되면(cached), 리프 노드 1에 대해 8 개의 노드 키 세트 중 7 개에 대한 재연산이 방지될 수 있다. 또한, 2 내지 15로 넘버링된 리프 노드는 레이어 8로부터 위쪽으로 동일한 조상 노드를 공유한다. 따라서, 캐시된 동일한 키 세트가 리프 노드 1 내지 15에 대해 재사용될 수 있다.
또한, 하나의 완전한 노드 키 세트를 생성하기 위해, 해시 연산이 필요할 수 있다. 예를 들어, 16 개의 노드에 대해 노드 키 세트를 생성하기 위해 수행되는 해시 연산의 횟수는 다음과 같이 설명된다:
제안된 방법의 해시 연산의 횟수 = (리프 노드 0에 대한 해시 연산의 횟수) + 15 * (리프 노드 1 내지 15에 대한 각각의 해시 연산의 횟수)
= (8 * 120) + 15 * (1 * 120) = 2760
16 개의 노드를 생성하기 위한 요청의 상기 예에 계속하여, 처음 16 개의 리프 노드의 할당 후에, 시스템이 16 개의 호스트 키 세트의 요청을 더 받는다고 하자. 이러한 요청을 서비스하기 위해, 16 내지 31로 넘버링된 리프 노드는 각각의 리프 노드에 대한 호스트 키 세트를 생성함으로써 할당될 것이다. 본 발명의 일 실시예에서, 리프 노드 15의 호스트 키 세트는 임시 메모리에 저장된다. 15 및 16으로 넘버링된 리프 노드는 도 3에 도시된 바와 같이 레이어 7로부터 위쪽으로 공통 조상 노드를 갖는다. 따라서, 레이어 2 내지 7의 조상에 대해, 노드 키 세트는 임시 스토리지 매체로부터 재사용될 수 있다. 레이어 8 및 9의 노드 키 세트가 연산된다. 리프 노드 16의 노드 키 세트가 생성되고, 임시 메모리에 저장된다. 나머지 리프 노드 17 내지 31에 대해, 레이어 8 및 그 위의 조상 노드가 공통이다. 따라서, 레이어 9(즉, 레이어 9의 리프 노드)에 대한 노드 키 세트만이 새롭게 연산된다.
특정 리프 노드에 대해 생성된 조상 노드 키 세트는, 어떤 추가적인 메타 데이터와 함께 인-메모리(in-memory) 데이터 구조에 캐시된다. 임시 스토리지 모듈은 7 개의 엔트리를 포함하는 테이블로서 설계되고, 엔트리는 레이어 2 내지 8의 각각에 대응된다. 임시 스토리지 모듈의 각각의 엔트리는:
a. 노드 정보 메타 데이터(Node Information Metadata) - 이 정보는 트리에서 노드를 고유하게 식별하기 위해 사용된다.
b. 대응하는 노드 키 세트(16 개의 키의 세트)
를 포함한다.
임시 스토리지 매체의 구조는 표 1에 도시된 바와 같다.
[표 1]
Figure pat00001
노드 키 세트가 리프 노드에 대해 생성될 때마다, 이전에 임시 스토리지 모듈에 저장된 조상 노드 키 세트는 리프 노드에 대해 노드 키 세트를 생성하기 위해 재사용될 수 있는지 여부가 판단된다. 임시 스토리지 모듈의 각각의 레이어 엔트리에 대한 노드 정보 메타 데이터가 스캐닝되어, 저장된 엔트리가 현재 리프 노드의 조상에 대한 것인지 여부가 판단된다. 만일 그렇다면, 노드 키 세트는 임시 스토리지 모듈로부터 직접 사용된다. 만일, 그렇지 않다면, 새로운 노드 키 세트는 생성되어 임시 스토리지 모듈에 오버라이트(overwrite)된다.
도 5는 본 발명의 다른 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트의 생성 방법을 설명하기 위한 도면이다. 노드 키 세트를 생성하기 위해, 도 501에 도시된 바와 같이, 시드 키(seed key)는 KMT의 각각의 노드에 대해 암호화되어야 한다. 이것은 AES 암호화 연산을 이용하여 수행된다. 단계 502에서, 이들 생성된 시드 키는 임시 스토리지 모듈에 저장된다. 따라서, 저장된 시드 키는 각각의 호스트 디바이스에 대해 할당될 노드의 노드 키 세트의 생성을 위해 재사용된다. 각각의 노드 키 세트는 적어도 하나의 시드 키 및 다른 형제 노드의 시드 키의 하나 이상의 파생 데이터(derivative)를 포함한다. 단계 503에서, 노드 키 세트는 저장된 시드 키를 이용하여, 트리형 데이터 구조에서 하나 이상의 노드에 대해 생성된다.
예를 들어, 16 개의 호스트 키에 대한 요청이 있다고 하자. 각각의 노드에 대한 시드 키의 생성은 적어도 하나의 AES 암호화 연산을 필요로 한다. 또한, 각각의 노드에 대한 노드 키 세트는 모든 16 개의 형제 노드의 시드 키를 사용한다. 이러한 16 개의 시드 키가 임의의 한 노드에 대해 한 번 생성되면, 이것들은 동일한 조상에 속하는 모든 노드들에 의해 재사용될 수 있음을 보장하기 위해, 시드 키들은 임시 스토리지 매체에 저장된다.
임시 스토리지 모듈의 구조는, 그룹의 모든 노드의 시드 키들을 병합하기 위한, 도 4에서 언급된 구조에 대한 변형을 포함한다. 용어 '그룹'은 동일한 부모 노드에 속하는 자식 노드들의 세트를 나타낸다. 도 6은 각각의 노드에 대한 시드 키들의 분포를 나타낸 개략도이다.
임시 저장 모듈의 각각의 엔트리는:
a. 노드 정보 메타 데이터(Node Information Metadata) - 이 정보는 트리에서 노드를 고유하게 식별하기 위해 사용된다.
b. 노드가 속하는 그룹의 모든 노드의 랜덤 시드 값 키(Random seed value key)(16 개의 키의 세트, K0 내지 K15)
c. 대응하는 노드 키 세트(16 개의 키의 세트)
를 포함한다.
임시 스토리지 매체의 구조는 표 2에 도시된 바와 같다.
[표 2]
Figure pat00002
도 7은 본 발명의 다른 실시예에 따른 각각의 노드에 대한 시드 키들과 중간 키 값들의 분포를 설명하기 위한 도면이다. 단계 701에서, 하나 이상의 시드 키가 트리형 데이터 구조의 하나 이상의 노드에 대해 생성된다. 단계 702에서, 생성된 시드 키들은 임시 스토리지 모듈에 저장된다. 또한, 단계 703에서, 적어도 하나의 노드에 대한 노드 키 세트는 생성된 하나 이상의 시드 키에 기초하여 생성된다. 노드 키 세트는 하나 이상의 시드 키와, 시드 키들로부터 도출된 하나 이상의 중간 키 값을 포함한다. 중간 키는 시드 키에서 해시 연산을 수행함으로써 생성된다. 생성된 중간 키는 단계 704에서 임시 스토리지 매체에 저장된다. 단계 705에서, 저장된 시드 키와 중간 키 값을 재사용함으로써, 트리형 데이터 구조의 하나 이상의 노드에 대해 하나 이상의 노드 키 세트가 생성된다.
도 8은 t=8의 노드 그룹의 노드 키 세트에 대해, 각각의 노드에 대한 시드 키들과 중간 키 값들의 분포를 설명하기 위한 도면이다. 본 시나리오에서, 현재 어떠한 호스트 키 세트도 할당되지 않았고, 시스템은 8 개의 호스트 키 세트에 대한 요청을 수신한다고 가정하자. 0 내지 7로 넘버링된 리프 노드는 할당되어야 하고, 호스트 키 세트는 각각의 노드에 대해 생성되어야 한다. 여기서는 t=8이므로, 리프 노드 0 내지 7은 완전한 그룹, 도 2에 도시된 바와 같이 레이어 9 상의 가장 좌측의 그룹을 형성한다.
리프 노드 0의 호스트 키는 리프 노드 0의 시드 키 세트 및 레이어 2까지의 상기 리프 노드의 모든 조상 노드의 중간 키 세트를 포함한다. 앞서 언급한 노드 키 세트의 생성은 다음 값들의 연산을 포함한다:
a. K0 내지 K7
b. h7(K1), h6(K2), h5(K3), h4(K4), h3(K5), h2(K6), h(K7)
상기 정보로부터, 노드 키 세트의 값들은 노드 1 내지 8에 대한 랜덤 시드 값 키에 대해 수행되는 다수의 해시 연산에 의해 획득됨이 명백하다. 호스트 키를 생성하는 본 방법에 대한 관심 키(key)는 중간 키 및 시드 키이다. 다음 중간 해시 키는 리프 노드 0의 키 세트를 처리하는 동안 생성된다:
i. h(K1) 내지 h6(K1)
ii. h(K2) 내지 h5(K2)
iii. h(K3) 내지 h4(K3)
iv. h(K4) 내지 h3(K4)
v. h(K5) 내지 h2(K5)
vi. h(K6) 및 h2(K6)
vii. h(K7)
위에 나열된 중간 값들은 리프 노드 2 내지 7의 키 세트에서 사용된다. 예를 들어, 리프 노드 2는 h(K1)를, 노드 3은 h2(K1) 및 h(K2)를 사용한다. 이것은 리프 노드 0의 키 세트에 대해 연산된 이러한 중간 해시 값들이 저장되어, 동일한 그룹에 속하는 다른 노드들에 대해 이러한 값들을 재계산하는 것을 무효화(negate)할 수 있음을 보여준다. 따라서, 모든 중간 키 및 시드 키는 도 8에 도시된 바와 같이 저장된다. 테이블의 어두운 부분의 엔트리는 첫 노드 세트 키가 노드 0에 대해 생성되었을 때 저장된 시드 키 및 중간 키를 나타낸다. 8 개의 노드에 대해 노드 키 세트를 생성하는 이러한 특정 예에 따르면, 도 8의 총 64 개의 엔트리 중 36개가 우선 채워진다. 즉, 리프 노드 0 자신의 키 세트를 생성하는 동안 테이블의 절반을 초과하는 부분이 채워질 수 있다. 이러한 매커니즘은 그러한 값들을 정확하게 재계산하는 것을 방지하기 위한 것이다. 중간 해시 값을 저장하는 프로세스는 모든 조상 노드에 대해 동일하게 적용 가능하다.
노드 1의 경우, 레이어 2까지의 리프 노드 0의 모든 조상들의 노드 키 세트가 연산된 후 노드 키 세트 값이 연산된다. 임시 스토리지 모듈로부터 하나의 값, K1이 직접 사용될 수 있고, 다른 7 개의 값 전부는, 도 8의 제1 칼럼의 값들에 대해 각각 수행되는 정확히 한 번의 해시 연산에 의해 획득할 수 있음을 알 수 있다. 따라서, 리프 노드 1의 키 세트의 생성이 총 7회의 해시 연산을 필요로 한다는 것을 대수롭지 않게 추론할 수 있다. 이와 유사하게, 노드 3 내지 7에 대해 해시 연산의 횟수는 감소하고, 노드 7에서는 1회의 해시 연산만이 필요하다.
도 9는 본 발명의 일 실시예에 따른 하나 이상의 호스트 디바이스에 대한 호스트 키 세트를 생성하기 위한 시스템의 블록도이다. 본 발명의 일 실시예에 따르면, 노드 키 세트 생성 유닛(900)은 노드 선택 모듈(901), 시드 키 생성 모듈(902), 중간 키 생성 모듈(903), 노드 정보 메타 데이터(904), 임시 스토리지 매체(905) 및 노드 키 세트 생성 모듈(906)을 포함한다.
노드 선택 모듈(901)은, 하나 이상의 요청된 수의 호스트 키들에 대해, 키 관리 트리에서 다수의 노드를 선택한다. 호스트 키의 대량 요청은 리프 노드의 연속적인 할당을 할 수 없게 한다. 이러한 경우에, 노드 선택 모듈(901)은 가용성(availability)에 기초하여 리프 노드를 할당한다. 시드 키 생성 모듈(902)은 각각의 요청에 따라 요청된 노드에 대해 시드 키를 생성한다. 중간 키 생성 모듈(903)은 노드 키 세트의 생성에 필요한 중간 키를 생성한다. 시드 키 생성 모듈 및 중간 키 생성 모듈로부터 도출된 값들은 임시 스토리지 모듈(905)에 저장된다. 또한, 노드 정보 메타 데이터에서 가용인 데이터 또한 노드 키 세트의 생성을 위해 임시 스토리지 모듈(905)로 공급된다. 메타 데이터는 트리에서 노드를 고유하게 식별하기 위해 사용된다. 또한, 노드 키 세트 생성 모듈(906)은 요청된 노드 키 세트를 생성한다. 생성된 노드 키 세트는 임시 스토리지 모듈(905)에 저장된다. 노드 키 세트 생성 모듈(906)은 호스트 키 세트 생성 모듈(907)과 연결된다. 호스트 키 세트 생성 모듈(907)은 대응하는 리프 노드의 노드 키 세트 및 임시 스토리지 모둘(905)에 저장된 모든 조상 노드의 노드 키 세트로부터 리프 노드에 대한 호스트 키 세트를 생성한다.
이상 첨부된 도면을 참조하여 본 발명의 실시예들을 설명하였으나, 본 발명은 상기 실시예들에 한정되는 것이 아니라 서로 다른 다양한 형태로 제조될 수 있으며, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.
900: 노드 키 세트 생성 유닛
901: 노드 선택 모듈 902: 시드 키 생성 모듈
903: 중간 값 생성 모듈 904: 노드 정보 메타 데이터
905: 임시 스토리지 모듈 906: 노드 키 세트 생성 모듈
907: 호스트 키 세트 생성 모듈

Claims (9)

  1. 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법으로서,
    하나 이상의 조상 노드에 대한 하나 이상의 노드 키 세트를 데이터 구조로 생성하고,
    상기 조상 노드의 하나 이상의 노드 키 세트를 이용하여, 상기 데이터 구조의 하나 이상의 리프 노드(leaf node)에 대한 하나 이상의 노드 키 세트를 생성하고,
    생성된 상기 하나 이상의 조상 노드의 노드 키 세트와 상기 하나 이상의 리프 노드의 노드 키 세트를 재사용하여, 적어도 하나의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 포함하는 호스트 키 세트 생성 방법.
  2. 제1항에 있어서,
    상기 데이터 구조는 트리형 데이터 구조인 호스트 키 세트 생성 방법.
  3. 제1항에 있어서,
    상기 하나 이상의 리프 노드에 대한 하나 이상의 공통 조상 노드를 식별하고,
    상기 하나 이상의 공통 조상 노드에 대응하는 노드 키 세트를 임시 스토리지 매체에 저장하는 것을 더 포함하는 호스트 키 세트 생성 방법.
  4. 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법으로서,
    하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 트리형 데이터 구조로 생성하고, 상기 트리형 데이터 구조는 하나 이상의 조상 노드 및 하나 이상의 리프 노드(leaf node)를 포함하고,
    생성된 상기 하나 이상의 시드 키를 임시 스토리지 매체에 저장하고,
    저장된 상기 시드 키를 이용하여 상기 트리형 데이터 구조의 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 생성하고,
    생성된 상기 하나 이상의 노드의 상기 하나 이상의 노드 키 세트에 기초하여 상기 하나 이상의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 포함하는 호스트 키 세트 생성 방법.
  5. 제4항에 있어서,
    상기 하나 이상의 노드 키 세트는 상기 하나 이상의 시드 키 및 상기 시드 키의 하나 이상의 파생 데이터(derivative)를 포함하는 호스트 키 생성 방법.
  6. 제4항에 있어서,
    노드 정보 메타 데이터, 상기 하나 이상의 시드 키 및 상기 하나 이상의 노드의 대응하는 노드 키 세트를 저장하는 것을 더 포함하는 호스트 키 세트 생성 방법.
  7. 호스트 키 생성 디바이스를 이용하여 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 방법으로서,
    하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 트리형 데이터 구조로 생성하고, 상기 트리형 데이터 구조는 하나 이상의 조상 노드 및 하나 이상의 리프 노드(leaf node)를 포함하고,
    생성된 상기 하나 이상의 시드 키에 기초하여 상기 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 생성하고, 상기 노드 키 세트는 상기 각각의 노드에 대응하는 시드 키 및 상기 하나 이상의 시드 키로부터 파생된 하나 이상의 중간 키를 포함하고,
    생성된 상기 하나 이상의 시드 키 및 상기 하나 이상의 중간 키를 임시 스토리지 매체에 저장하고,
    저장된 상기 시드 키 및 중간 키를 재사용하여, 상기 하나 이상의 노드에 대한 하나 이상의 노드 키 세트를 상기 트리형 데이터 구조로 생성하는 것을 포함하는 호스트 키 세트 생성 방법.
  8. 제7항에 있어서,
    생성된 상기 하나 이상의 조상 노드 및 리프 노드의 상기 하나 이상의 노드 키 세트에 기초하여 상기 하나 이상의 리프 노드에 대한 하나 이상의 호스트 키 세트를 생성하는 것을 더 포함하는 호스트 키 세트 생성 방법.
  9. 하나 이상의 호스트 디바이스에 대한 하나 이상의 호스트 키 세트를 생성하는 시스템으로서,
    요청에 따라 하나 이상의 노드를 선택하도록 구성된 노드 선택 모듈;
    상기 노드 선택 모듈과 연결되고, 선택된 상기 하나 이상의 노드에 대한 하나 이상의 시드 키(seed key)를 생성하기 위한 시드 키 생성 모듈;
    상기 하나 이상의 시드 키로부터 하나 이상의 중간 값을 생성하기 위한 중간 값 생성 모듈;
    생성된 상기 시드 키 및 중간 값을 저장하기 위한 임시 스토리지 모듈;
    저장된 하나 이상의 중간 값 및 하나 이상의 시드 키로부터 하나 이상의 노드 키 세트를 생성하기 위한 노드 키 세트 생성 모듈; 및
    상기 노드 키 세트 생성 모듈과 연결되고, 생성된 노드 키 세트로부터 호스트 키 세트를 생성하기 위한 호스트 키 생성 모듈을 포함하는 호스트 키 세트 생성 시스템.
KR1020150011282A 2014-06-27 2015-01-23 스토리지 디바이스용 호스트 키 생성 방법 및 시스템 KR102306676B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IN3480CH2013 2014-06-27
IN3480/CHE/2013 2014-06-27

Publications (2)

Publication Number Publication Date
KR20160001598A true KR20160001598A (ko) 2016-01-06
KR102306676B1 KR102306676B1 (ko) 2021-09-28

Family

ID=54930502

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150011282A KR102306676B1 (ko) 2014-06-27 2015-01-23 스토리지 디바이스용 호스트 키 생성 방법 및 시스템

Country Status (2)

Country Link
US (1) US9858004B2 (ko)
KR (1) KR102306676B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180010001A (ko) * 2016-07-20 2018-01-30 주식회사 케이티 보안 그룹 통화를 위한 장치 및 방법

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992171B2 (en) * 2014-11-03 2018-06-05 Sony Corporation Method and system for digital rights management of encrypted digital content
CN111526128B (zh) * 2020-03-31 2022-07-19 中国建设银行股份有限公司 一种加密管理的方法和装置
CN115225672A (zh) * 2022-07-14 2022-10-21 蔚来汽车科技(安徽)有限公司 端到端的数据传输方法、设备和介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130204902A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Enhanced B-Trees with Record Merging
KR20140021793A (ko) * 2012-08-10 2014-02-20 영남대학교 산학협력단 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
KR20140028342A (ko) * 2012-08-28 2014-03-10 삼성전자주식회사 브로드캐스트 암호화를 위한 키 관리 방법 및 브로드캐스트 암호화를 이용한 메시지 전송 방법

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622087B2 (ja) 2000-11-09 2011-02-02 ソニー株式会社 情報処理装置、および情報処理方法、並びにプログラム記憶媒体
MXPA04003933A (es) 2001-10-26 2004-06-18 Matsushita Electric Ind Co Ltd Aparato de adminstracion de codigo.
CN1608361A (zh) 2001-10-26 2005-04-20 松下电器产业株式会社 数字作品保护系统、密钥管理设备和用户设备
US7308583B2 (en) 2002-01-25 2007-12-11 Matsushita Electric Industrial Co., Ltd. Data distribution system
CN100499450C (zh) 2003-04-22 2009-06-10 国际商业机器公司 数字资源的分层密钥生成方法及其设备
US7721089B2 (en) * 2003-05-21 2010-05-18 Ntt Docomo, Inc. Broadcast encryption using RSA
US20050210014A1 (en) * 2004-03-08 2005-09-22 Sony Corporation Information-processing method, decryption method, information-processing apparatus and computer program
KR100579515B1 (ko) 2004-10-08 2006-05-15 삼성전자주식회사 브로드캐스트 암호화를 위한 키 생성 장치 및 방법
KR101092543B1 (ko) * 2004-11-12 2011-12-14 삼성전자주식회사 브로드캐스트 암호화를 위한 사용자 키 관리 방법
KR100717005B1 (ko) 2005-04-06 2007-05-10 삼성전자주식회사 폐기 키를 결정하는 방법 및 장치와 이것을 이용하여복호화하는 방법 및 장치
KR101152311B1 (ko) 2005-06-09 2012-06-11 삼성전자주식회사 트리 토폴로지 네트워크 구조에서의 브로드 캐스트암호화를 위한 키 관리방법
WO2008059672A1 (fr) * 2006-11-16 2008-05-22 Sony Corporation Dispositif de traitement d'informations
JP4995651B2 (ja) 2007-06-25 2012-08-08 パナソニック株式会社 木構造を持つ鍵管理ソフトウエアにおける、鍵使用の高速化手段、及び装置
CN101873214A (zh) 2009-04-24 2010-10-27 索尼株式会社 广播加密中用于密钥生成、加密和解密的方法、设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130204902A1 (en) * 2012-02-03 2013-08-08 Apple Inc. Enhanced B-Trees with Record Merging
KR20140021793A (ko) * 2012-08-10 2014-02-20 영남대학교 산학협력단 비휘발성 램 기반의 b+ 트리 데이터베이스화 방법
KR20140028342A (ko) * 2012-08-28 2014-03-10 삼성전자주식회사 브로드캐스트 암호화를 위한 키 관리 방법 및 브로드캐스트 암호화를 이용한 메시지 전송 방법

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180010001A (ko) * 2016-07-20 2018-01-30 주식회사 케이티 보안 그룹 통화를 위한 장치 및 방법

Also Published As

Publication number Publication date
KR102306676B1 (ko) 2021-09-28
US20150378634A1 (en) 2015-12-31
US9858004B2 (en) 2018-01-02

Similar Documents

Publication Publication Date Title
US10778441B2 (en) Redactable document signatures
US9703981B1 (en) Mobile device data encryption
CN110768787B (zh) 一种数据加密、解密方法及装置
US7346160B2 (en) Randomization-based encryption apparatus and method
US8345876B1 (en) Encryption/decryption system and method
JP4610176B2 (ja) データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
JP5666422B2 (ja) ブロードキャスト暗号化システムにおける除かれたノードリストの生成方法
KR102306676B1 (ko) 스토리지 디바이스용 호스트 키 생성 방법 및 시스템
US10862680B2 (en) Encoding process for multiple RSA and ECC keys
Moataz et al. Resizable tree-based oblivious RAM
KR101825838B1 (ko) 데이터의 부분 암호화 방법, 데이터의 부분 복호화 방법 및 부분 암호화된 데이터를 복호화하는 프로그램을 저장하는 저장매체
KR20090090308A (ko) 정보처리장치
US20160301572A1 (en) Communication control device, communication control method, and computer program product
JP5749368B2 (ja) データ原本性確保方法およびシステム、ならびにデータ原本性確保用プログラム
CN116015767A (zh) 一种数据处理方法、装置、设备及介质
KR101472320B1 (ko) 클라우드 환경에 비밀분산 기법을 이용한 데이터 보호 방법
WO2014141802A1 (ja) 情報処理装置、情報処理システム、および情報処理方法、並びにプログラム
JP6682125B2 (ja) メディア鍵ブロック・ベースのブロードキャスト暗号化方法
JP6029936B2 (ja) 通信制御装置、通信装置およびプログラム
CN113491092B (zh) 对用于云报告的客户端mac地址进行匿名化的方法
KR101496764B1 (ko) 일정 수 이상의 파일 조각으로 복구 가능한 파일 분산 관리 장치 및 방법
US9442890B2 (en) Distribution apparatus, restoration apparatus, distribution method, restoration method, and distribution and restoration system
US10673624B2 (en) Communication control device, communication control method, and computer program product
CN114329555A (zh) 视频文件加密处理方法、装置、存储介质及设备
EP1695242A2 (en) Content distribution server, key assignment method, content output apparatus, and key issuing center

Legal Events

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