KR102092394B1 - 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법 - Google Patents

블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법 Download PDF

Info

Publication number
KR102092394B1
KR102092394B1 KR1020180135312A KR20180135312A KR102092394B1 KR 102092394 B1 KR102092394 B1 KR 102092394B1 KR 1020180135312 A KR1020180135312 A KR 1020180135312A KR 20180135312 A KR20180135312 A KR 20180135312A KR 102092394 B1 KR102092394 B1 KR 102092394B1
Authority
KR
South Korea
Prior art keywords
key
encryption
induction
blockchain
service
Prior art date
Application number
KR1020180135312A
Other languages
English (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 KR1020180135312A priority Critical patent/KR102092394B1/ko
Application granted granted Critical
Publication of KR102092394B1 publication Critical patent/KR102092394B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/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/0822Key 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) using key encryption key
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0877Generation of secret information including derivation or calculation of cryptographic keys or passwords using additional device, e.g. trusted platform module [TPM], smartcard, USB or hardware security module [HSM]
    • H04L2209/38
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법이 개시된다. 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 키 관리 서버, 블록체인 및 서비스 제공 장치의 블록체인을 이용한 암호화 기반 서비스 제공 방법에 있어서, 상기 서비스 제공 장치가, 상기 블록체인에게 상기 서비스 제공 장치의 서비스 식별자를 이용하여 유도키 정보를 요청하는 단계; 상기 서비스 제공 장치가, 상기 키 관리 서버에게 상기 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청하는 단계 및 상기 서비스 제공 장치가, 상기 유도키 정보 및 상기 유도키를 이용하여 암호키를 생성하는 단계를 포함 한다.

Description

블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법 {APPARATUS AND METHOD FOR PROVIDING SERVICE BASED ON ENCRYPTION USING BLOCKCHAIN}
본 발명은 암호키 관리를 위한 키 관리 시스템에 관한 것으로, 보다 상세하게는 블록체인 플랫폼을 이용한 통신기기 종단간 사용되는 암호키의 키 관리 기술에 관한 것이다.
이전 데이터를 암호화 하여 통신구간을 암호화하는 방법에는 다양한 방법이 있다. 일반적인 암호채널용 전송 계층 보안(Transport Layer Security, TLS)을 이용한 암호화 방법은 통신 양단간만 암호화가 될 수 있다. 만약 제1 서버의 정보를 제2 서버를 거쳐 제3 서버로 보낼 경우 제1 서버와 제2 서버 사이의 구간을 지나면 복호화된 데이터를 제2 서버에서 확인할 수 있다. 제1 서버의 데이터를 제2 서버에서 확인하지 못하고, 제3 서버에서만 보기를 원할 경우에는 사용을 피하게 될 수도 있다.
종래의 키 관리 시스템(Key Management System, KMS)의 경우 보안채널을 통해 암호키를 직접 받아서 암복호화 기능 등에 사용한다. 이에 항상 통신 양단간에 암호키 정보에 대한 설정을 파일로 유지 또는 데이터베이스 관리 시스템(Data Base Management System, DBMS)을 이용하여 관리를 하여야 하고, 변경시에 일일이 양쪽에 변경된 정보를 변경 및 서비스를 재기동해야 할 경우가 생긴다.
도 1은 종래 키 관리 시스템을 나타낸 도면이다.
도 1을 참조하면, 종래 키 관리 시스템은 암호키를 이용하는 시스템별로 다양한 암호 알고리즘 및 이에 따른 암호키들이 활용되는 것을 알 수 있다.
이에 따라, 종래 키 관리 시스템은 암호 이용 시스템이 증가할수록 관리해야 하는 암호키가 증가하면서 관리 불편함 발생할 수 있고, 암호키 주입 시, 관리자 부주의에 의해 암호키 분배를 실수할 가능성도 증가할 수 있다.
또한, 종래 키 관리 시스템은 서로 다른 암호키 관리 방식 사용 시 이에 따른 시스템 도입 비용 증가할 수 있으므로, 이러한 문제를 해결하기 위해 전사적으로 암호키 관리를 고려한 단일화되고 표준화된 키 관리 시스템의 도입이 필요하다.
한편, 한국공개특허 제 10-2014-0071775 호“암호키 관리 시스템 및 방법”는 DRM, 게임, 인터넷 뱅킹, 온라인 쇼핑 등과 같이 서버에 의한 단말의 신뢰성을 필요로 하는 플랫폼 운용 환경에서, 사용자 단말에서 사용되는 암호키에 대해 소프트웨어 기반의 안전한 키 관리를 위하여 사용자 단말의 비밀키를 개별적인 비밀키 조각으로 분리하여 관리하도록 함으로써 단말 사용자 또는 내부 공격자에 의한 악의적인 사용을 방지하기 위한 암호키 관리 시스템 및 방법에 관하여 개시하고 있다.
본 발명은 시스템 별로 다양한 암호 알고리즘과 암호키 관리 방식으로 인한 키 관리의 불편함과 비용 증가를 방지하고, 안전하면서도 단일화되고 표준화된 통합 키 관리 시스템을 제공하는 것을 목적으로 한다.
또한, 본 발명은 키 관리 서버와 블록체인을 통해 암호키 생성을 위한 정보만 획득하여 암호키의 중간 탈취 가능성을 방지하고, 서비스 양 단간에 송수신되는 데이터를 암호화하여 안전하게 보호하는 것을 목적으로 한다.
상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 키 관리 서버, 블록체인 및 서비스 제공 장치의 블록체인을 이용한 암호화 기반 서비스 제공 방법에 있어서, 상기 서비스 제공 장치가, 상기 블록체인에게 상기 서비스 제공 장치의 서비스 식별자를 이용하여 유도키 정보를 요청하는 단계; 상기 서비스 제공 장치가, 상기 키 관리 서버에게 상기 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청하는 단계 및 상기 서비스 제공 장치가, 상기 유도키 정보 및 상기 유도키를 이용하여 암호키를 생성하는 단계를 포함한다.
이 때, 상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은 상기 키 관리 서버가, 상기 블록체인에게 유도키 정보를 배포하는 단계를 더 포함할 수 있다.
이 때, 상기 유도키 정보를 배포하는 단계는 상기 키 관리 서버가, 상기 서비스 제공 장치로부터 상기 서비스 식별자 및 유도키 생성 정보를 수신하여 상기 유도키 및 상기 유도키 정보를 생성하고, 상기 유도키 정보를 상기 서비스 식별자와 연결하여 상기 블록체인에 배포할 수 있다.
이 때, 상기 암호키를 생성하는 단계는 상기 유도키 정보에서 적어도 두 개 이상의 유도키들에 대한 유도키 유효 기간을 확인하여 현재 사용 가능한 어느 하나의 유도키를 결정할 수 있다.
이 때, 상기 암호키를 생성하는 단계는 상기 서비스 제공 장치가, 상기 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 상기 암호키를 생성할 수 있다.
이 때, 상기 암호키를 생성하는 단계는 상기 서비스 제공 장치가, 상기 유도키 정보에서 상기 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 상기 키 유도 함수에 입력하여 상기 암호키를 생성할 수 있다.
이 때, 상기 암호키를 생성하는 단계는 상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 상기 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 상기 암호키를 생성할 수 있다.
이 때, 상기 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 상기 암호키의 비트 수는 상기 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
이 때, 상기 암호키를 생성하는 단계는 상기 유도키들의 유도키 유효 기간이 모두 만료된 경우, 상기 블록 체인에게 갱신된 유도키 정보를 요청할 수 있다.
이 때, 상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은 상기 키 관리 서버가, 상기 블록체인에 배포된 유도키 정보를 갱신하는 단계를 더 포함할 수 있다.
이 때, 상기 유도키 정보를 갱신하는 단계는 상기 키 관리 서버가, 상기 유도키 정보에서 유도키 유효 기간이 만료된 유도키에 대한 유효 기간을 갱신하고, 상기 블록체인에게 갱신된 유도키 정보를 배포할 수 있다.
이 때, 상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은 복수개의 서비스 제공 장치들이, 상기 암호키를 이용하여 데이터를 암복호화하고, 상기 데이터를 이용하여 서비스를 제공하는 단계를 더 포함할 수 있다.
이 때, 상기 서비스를 제공하는 단계는 제1 서비스 제공 장치가, 상기 암호키를 이용하여 상기 데이터를 암호화하고, 암호화된 데이터를 제2 서비스 제공 장치에게 전송하는 단계 및 상기 제2 서비스 제공 장치가, 상기 암호키를 이용하여 상기 암호화된 데이터를 복호화하고, 복호화된 상기 데이터를 이용하여 상기 서비스를 제공하는 단계를 포함한다.
또한, 상기한 목적을 달성하기 위한 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 장치는 블록체인에게 서비스 식별자를 이용하여 유도키 정보를 요청하고, 키 관리 서버에게 상기 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청하는 유도키 확인부 및 상기 유도키 정보 및 상기 유도키를 이용하여 암호키를 생성하는 암호키 생성부를 포함한다.
이 때, 상기 블록체인을 이용한 암호화 기반 서비스 제공 장치는 상기 암호키를 이용하여 데이터의 암복호화를 수행하고, 상기 데이터를 이용하여 서비스를 제공하는 데이터 암복호화부를 더 포함할 수 있다.
본 발명은 시스템 별로 다양한 암호 알고리즘과 암호키 관리 방식으로 인한 키 관리의 불편함과 비용 증가를 방지하고, 안전하면서도 단일화되고 표준화된 통합 키 관리 시스템을 제공할 수 있다.
또한, 본 발명은 키 관리 서버와 블록체인을 통해 암호키 생성을 위한 정보만 획득하여 암호키의 중간 탈취 가능성을 방지하고, 서비스 양 단간에 송수신되는 데이터를 암호화하여 안전하게 보호할 수 있다.
도 1은 종래 키 관리 시스템을 나타낸 도면이다.
도 2는 본 발명의 일실시예에 따른 통합 키 관리 기능 관련 국제표준을 지원하는 키 관리 시스템을 나타낸 도면이다.
도 3은 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템을 나타낸 도면이다.
도 4는 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템을 나타낸 블록도이다.
도 5는 본 발명의 일실시예에 따른 키 관리 서버를 나타낸 블록도이다.
도 6은 본 발명의 일실시예에 따른 블록체인을 나타낸 블록도이다.
도 7 및 도 8은 본 발명의 일실시예에 따른 서비스 제공 장치를 나타낸 블록도이다.
도 9는 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정을 나타낸 동작흐름도이다.
도 10은 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정을 나타낸 동작흐름도이다.
도 11은 본 발명의 일실시예에 따른 유도키 정보 확인 과정을 나타낸 동작흐름도이다.
도 12는 본 발명의 일실시예에 따른 암호키 생성 과정을 나타낸 동작흐름도이다.
도 13은 본 발명의 일실시예에 따른 유도키 정보 갱신 과정을 나타낸 동작흐름도이다.
도 14는 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법을 나타낸 시퀀스 다이어그램이다.
도 15는 본 발명의 일실시예에 따른 유도키 인덱스를 나타낸 도면이다.
도 16은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
본 발명을 첨부된 도면을 참조하여 상세히 설명하면 다음과 같다. 여기서, 반복되는 설명, 본 발명의 요지를 불필요하게 흐릴 수 있는 공지 기능, 및 구성에 대한 상세한 설명은 생략한다. 본 발명의 실시형태는 당 업계에서 평균적인 지식을 가진 자에게 본 발명을 보다 완전하게 설명하기 위해서 제공되는 것이다. 따라서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
명세서 전체에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
이하, 본 발명에 따른 바람직한 실시예를 첨부된 도면을 참조하여 상세하게 설명한다.
도 2는 본 발명의 일실시예에 따른 통합 키 관리 기능 관련 국제표준을 지원하는 키 관리 시스템을 나타낸 도면이다.
도 2를 참조하면, 다양한 종류의 어플리케이션과 플랫폼이 국제표준에 따라 중앙 집중식으로 키 관리 시스템이 구축된 일 예를 나타낸 것을 알 수 있다.
예를 들어, 통합 키 관리 기능 관련 국제표준은 OASIS 상호 운용 표준인 KMIP(Key Management Interoperability Protocol) 국제표준에 상응할 수 있다.
KMIP를 지원하는 키 관리 서버는 다양한 솔루션과의 호환 및 통합 키 관리 기능을 제공할 수 있다.
이를 통해, KMIP를 지원하는 키 관리 서버는 다양한 종류의 어플리케이션과 다양한 암호 플랫폼을 통하여, 모든 종류의 암호키를 중앙집중식으로 관리하는 기능을 제공할 수 있다.
도 3은 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템을 나타낸 도면이다.
도 3을 참조하면, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템을 나타낸 것을 알 수 있다.
먼저, 관리자는 암호키 생성을 위해 정책 및 로그 등의 정보를 웹 관리 도구를 통해 KMS 서버 1에 제공하여 유도키 생성을 요청할 수 있다.
이 때, 관리자는 관리자가 사용하는 단말 장치 및 컴퓨팅 장치 등을 이용하여 유도키 생성을 요청할 수 있다.
KMS 서버 1은 관리자로부터 제공 받은 정보를 이용하여 유도키를 생성할 수 있고, 유도키 생성에 필요한 추가적인 정보를 관리자에게 요청할 수도 있다.
이 때, KMS 서버 1은 유도키를 생성한 결과를 관리자에게 송신할 수 있다.
이 때, KMS 서버 1은 유도키를 배포하기 위한 유도키 정보를 블록체인노드에 배포할 수 있다(1. 유도키 정보 배포).
이 때, KMS 서버 1은 하드웨어 보안 모듈(Hardware Security Module, HSM)의 MASTER KEY를 통해 유도키를 암복호화할 수 있다.
이 때, HSM 은 PKCS #11 서브 시스템을 이용하는 암호화 표준을 만족할 수도 있다.
또한, 제1 서비스 서버는 제2 서비스 서버에 서비스를 제공하기 위하여 블록체인노드에 유도키 정보를 요청하고, KMS 서버 1에 유도키를 요청할 수 있다(2. 유도키 정보 요청, 3. 유도키 획득).
이 때, 제1 서비스 서버는 KMIP(Key Management Interoperability Protocol, KMIP) 통신을 지원할 수 있고, KMIP REST 서비스(KMIP, RESTful)를 이용하여 오브젝트를 작성하고 관리할 수 있다.
이 때, 제1 서비스 서버는 유도키 정보와 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 제1 서비스 서버는 암호키를 이용하여 제공하려는 서비스에 관한 중요 데이터를 암호화할 수 있다.
이 때, 제1 서비스 서버는 암호화된 중요 데이터를 제2 서비스 서버에 전송할 수 있다(4. 중요 데이터 암호화 전송).
또한, 제2 서비스 서버는 제1 서비스 서버로부터 제공 받은 암호화된 중요 데이터를 복호화하기 위하여 블록체인노드에 유도키 정보를 요청하고 KMS 서버 1에 유도키를 요청할 수 있다(5. 유도키 정보 요청, 6. 유도키 획득).
이 때, 제2 서비스 서버는 KMIP(Key Management Interoperability Protocol, KMIP) 통신을 지원할 수 있고, KMIP REST 서비스(KMIP, RESTful)를 이용하여 오브젝트를 작성하고 관리할 수 있다.
이 때, 제2 서비스 서버는 유도키 정보와 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 제2 서비스 서버는 암호키를 이용하여 암호화된 중요 데이터를 복호화할 수 있고, 복호화된 중요 데이터를 이용하여 서비스를 제공할 수 있다.
또한, 관리자는 암호키 생성을 위해 정책 및 로그 등의 정보를 웹 관리 도구를 통해 KMS 서버 2에 제공하여 유도키 생성을 요청할 수 있다.
KMS 서버 2는 관리자로부터 제공 받은 정보를 이용하여 유도키를 생성할 수 있고, 유도키 생성에 필요한 추가적인 정보를 관리자에게 요청할 수도 있다.
이 때, KMS 서버 2는 유도키를 생성한 결과를 관리자에게 송신할 수 있다.
이 때, KMS 서버 2는 유도키를 배포하기 위한 유도키 정보를 블록체인노드에 배포할 수 있다.
이 때, KMS 서버 2는 하드웨어 보안 모듈(Hardware Security Module, HSM)의 MASTER KEY를 통해 유도키를 암복호화할 수 있다.
이 때, HSM 은 PKCS #11 서브 시스템을 이용하는 암호화 표준을 만족할 수도 있다.
도 4는 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템을 나타낸 블록도이다. 도 5는 본 발명의 일실시예에 따른 키 관리 서버를 나타낸 블록도이다. 도 6은 본 발명의 일실시예에 따른 블록체인을 나타낸 블록도이다. 도 7 및 도 8은 본 발명의 일실시예에 따른 서비스 제공 장치를 나타낸 블록도이다.
도 4를 참조하면, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 시스템은 키 관리 서버(10), 블록체인(20), 제1 서비스 제공 장치(100) 및 제2 서비스 제공 장치(200)를 포함한다.
도 5를 참조하면, 본 발명의 일실시예에 따른 키 관리 서버(10)는 유도키 관리부(11), 유도키 생성부(120) 및 통신부(13)를 포함한다.
유도키 관리부(11)는 유도키 및 유도키 정보를 관리할 수 있다.
이 때, 유도키 관리부(11)는 관리자로부터 유도키 생성 정보를 통신부(13)를 통해 수신할 수 있다.
유도키 생성 정보는 유도키 길이, 암호화 알고리즘 및 유도키 유효기간 등 적어도 2개 이상의 유도키를 생성하기 위한 정보를 포함할 수 있다.
유도키 생성부(12)는 관리자의 요청에 따라 유도키 생성 정보를 이용하여 유도키를 생성할 수 있다.
이 때, 유도키 생성부(12)는 유도키를 생성하기 위한 유도키 정보를 생성할 수 있다.
유도키 정보는 아래와 같은 정보를 포함할 수 있다.
1. 유도키 위치 [2 이상] : IP 정보 또는 도메인 정보(적어도 2개 이상)
2. 유도키 Iteration Count[2 이상] : KDF 해시 카운트(적어도 2개 이상)
3. 유도키 인덱스 정보[2 이상] : 유도키 사용을 위한 byte 배열 시작 위치(4byte), 1byte 가 256 정수로 표현됨. 예를 들어, 4개의 시작위치를 이용하여 유도키를 다시 재조합하기 위한 정보를 포함할 수 있다(적어도 2개 이상).
4. 유도키 유효 기간[2 이상] : 유도키 사용 만료 기간으로 만료 시에 첫 번째 유도키 유효기간 만료 시에, 두 번째 유도키의 배열을 이용하여 암호키 생성할 수 있다(적어도 2개 이상).
5. 유도키 UUID[2 이상] : 키 관리 서버에서 유도키를 관리하기 위한 유니크한 ID 값(고유 식별자)(적어도 2개 이상).
6. 암호키 생성 크기[2 이상] : 암호키를 생성할 크기(적어도 2개 이상).
7. 암호 알고리즘[2 이상] 암호키를 사용할 알고리즘(적어도 2개 이상).
8. 서비스 ID : 각 서비스 양단간에 공유될 서비스 ID값으로 유도키 배포 시 구별 할 수 있는 ID 값
이 때, 유도키 관리부(11)는 통신부(13)를 통해 유도키 정보를 블록체인(20)에 배포할 수 있다.
또한, 유도키 관리부(11)는 기생성한 유도키 정보가 존재하는 경우, 유도키 리스트를 조회하여 배포할 유도키 정보를 확인할 수 있다.
이 때, 유도키 관리부(11)는 배포할 유도키 정보를 선택하여 통신부(13)를 통해 유도키 정보를 블록체인(20)에 배포할 수도 있다.
또한, 유도키 관리부(11)는 제1 서비스 제공 장치(100)의 요청에 따라 고유식별자에 상응하는 유도키를 조회할 수 있다.
이 때, 유도키 관리부(11)는 조회된 고유 식별자에 상응하는 유도키를 제1 서비스 제공 장치(100)에게 전송할 수 있다.
또한, 유도키 관리부(11)는 제2 서비스 제공 장치(200)의 요청에 따라 고유식별자에 상응하는 유도키를 조회할 수 있다.
이 때, 유도키 관리부(11)는 조회된 고유 식별자에 상응하는 유도키를 제2 서비스 제공 장치(200)에게 전송할 수 있다.
통신부(13)는 유도키 관리부(11)에 의해 블록체인(20)에 유도키 정보를 배포할 수 있고, 제1 서비스 제공 장치(100) 및 제2 서비스 제공 장치(200)에 유도키를 전송할 수 있다.
이 때, 통신부(13)는 관리자의 컴퓨팅 장치로부터 유도키를 생성하기 위한 유도키 생성 정보를 수신할 수 있다.
또한, 유도키 관리부(11)는 유도키 정보를 갱신할 수 있다.
이 때, 유도키 관리부(11)는 생성한 유도키 정보의 유도키 유효기간을 확인하여, 유도키 유효기간이 만료된 경우, 유도키 정보를 갱신할 수 있다.
이 때, 유도키 관리부(11)는 갱신된 유도키 정보를 블록체인(20)에 배포할 수 있다.
도 6을 참조하면, 본 발명의 일실시예에 따른 블록체인(20)은 블록체인 유도키 정보 처리부(21) 및 블록체인 데이터베이스부(22)를 포함할 수 잇다.
블록체인(20)은 복수개의 블록체인 노드들을 포함할 수 있다.
블록체인 유도키 정보 처리부(21)는 유도키 정보를 수신, 등록, 저장 및 관리하기 위한 다양한 기능을 처리할 수 있는 프로그램(Smart contract; 스마트 컨트랙트)을 제공할 수 있다.
이 때, 블록체인 유도키 정보 처리부(21)는 모든 블록체인 노드들이 제공받은 유도키 정보를 처리할 수 있다.
이 때, 블록체인 유도키 정보 처리부(21)는 키 관리 서버(10)로부터 배포 받은 유도키 정보를 블록체인 데이터베이스부(22)에 저장하고 관리할 수 있다.
이 때, 블록체인 유도키 정보 처리부(21)는 서비스 제공 장치가 제공하는 서비스의 서비스 식별자와 유도키 정보를 연결하여 블록체인 데이터베이스부(22)에 저장할 수 있다.
또한, 블록체인 유도키 정보 처리부(21)는 제1 서비스 제공 장치(100)의 요청에 따라 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자에 상응하는 유도키 정보를 제1 서비스 제공 장치(100)에게 송신할 수 있다.
이 때, 블록체인 유도키 정보 처리부(21)는 제2 서비스 제공 장치(200)의 요청에 따라 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자에 상응하는 유도키 정보를 제2 서비스 제공 장치(200)에게 송신할 수 있다.
본 발명의 일실시예에 따른 제1 서비스 제공 장치(100) 및 제2 서비스 제공장치(200)는 동일한 구성과 기능을 모두 수행할 수 있고, 편의상 서비스를 제공하는 송신측 서비스 제공 장치는 제1 서비스 제공 장치(100)이고, 서비스를 제공 받는 수신측 서비스 제공 장치는 제2 서비스 제공 장치(200)로 설명한다.
본 발명의 일실시예에 따른 제1 서비스 제공 장치(100) 및 제2 서비스 제공 장치(200)는 특정 서비스, 어플리케이션, 유틸리티 등을 제공하는 서버 장치, 컴퓨팅 장치 및 단말 장치 등에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 제1 서비스 제공 장치(100) 및 제2 서비스 제공 장치(200)는 특정 서비스, 어플리케이션, 유틸리티 등을 제공하는 서버 장치, 컴퓨팅 장치 및 단말 장치 등에 추가로 구비되어 서비스 제공을 위한 암복호화 기능만을 제공할 수도 있다.
도 7을 참조하면, 본 발명의 일실시예에 따른 제1 서비스 제공 장치(100)는 제1 유도키 확인부(110), 제1 암호키 생성부(120) 및 제1 데이터 암복호화부(130)를 포함한다.
제1 유도키 확인부(110)는 기제공된 유도키들의 존재를 확인하고, 유도키의 존재가 확인되면 유도키들의 유도키 유효기간을 확인할 수 있다.
이 때, 제1 유도키 확인부(110)는 유도키들 중 유도키 유효기간이 만족되는 어느 하나의 유도키를 결정할 수 있다.
이 때, 제1 유도키 확인부(110)는 결정된 유도키와 유도키 정보를 제1 암호키 생성부(120)에 제공하여 암호키 생성을 요청할 수 있다.
또한, 제1 유도키 확인부(110)는 유도키들 중 유도키 유효기간이 모두 만료된 경우, 블록 체인(20)에게 갱신된 유도키 정보를 요청할 수 있다.
예를 들어, 제1 유도키 확인부(110)는 적어도 두 개 이상의 유도키들의 존재를 확인하고, 제1 유도키의 유도키 유효기간을 확인할 수 있고, 제1 유도키의 유도키 유효기간이 만족되는 경우, 제1 유도키를 결정할 수 있다.
이 때, 제1 유도키 확인부(110)는 제1 유도키의 유효기간이 만료된 경우, 제2 유도키의 유도키 유효기간이 만족되는 경우, 제2 유도키를 결정할 수 있다.
이 때, 제1 유도키 확인부(110)는 제2 유도키 사용 후에, 블록체인(20)으로부터 유도키 정보를 다시 획득하여 유도키 정보를 갱신할 수 있다.
또한, 제1 유도키 확인부(110)는 제2 유도키의 유도키 유효기간이 만료된 경우, 키 관리 서버(10)와 블록체인(20)에 갱신된 유도키 및 유도키 정보를 요청하여 획득할 수 있다.
이 때, 제1 유도키 확인부(110)는 블록체인(20)에게 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자를 이용하여 유도키 정보를 요청할 수 있다.
이 때, 제1 유도키 확인부(110)는 키 관리 서버(100)에게 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청할 수 있다.
이 때, 제1 유도키 확인부(110)는 유도키 정보와 유효키를 제1 암호키 생성부(120)에 제공하여 암호키 생성을 요청할 수 있다.
제1 암호키 생성부(120)는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 제1 암호키 생성부(120)는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
이 때, 제1 암호키 생성부(120)는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 제1 암호키 생성부(120)는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 제1 암호키 생성부(120)는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 4개 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
이에 따라, 키 관리 서버(10)에서 유도키가 누출 되어도 실제 사용되는 서비스 제공 장치에서 사용되는 유도키 정보는 상이할 수 있다.
제1 데이터 암복호화부(130)는 암호키를 이용하여 데이터를 암복호화하고, 데이터를 이용하여 서비스를 제공할 수 있다.
이 때, 제1 데이터 암복호화부(130)는 암호키를 이용하여 데이터를 암호화하고, 암호화된 데이터를 제2 서비스 제공 장치(200)에게 전송할 수 있다.
도 8을 참조하면, 본 발명의 일실시예에 따른 제2 서비스 제공 장치(200)는 제2 유도키 확인부(210), 제2 암호키 생성부(220) 및 제2 데이터 암복호화부(230)를 포함한다.
제2 유도키 확인부(210)는 기제공된 유도키들의 존재를 확인하고, 유도키의 존재가 확인되면 유도키들의 유도키 유효기간을 확인할 수 있다.
제2 암호키 생성부(220)는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
제2 데이터 암복호화부(230)는 암호키를 이용하여 데이터를 암복호화하고, 복호화된 데이터를 이용하여 서비스를 제공할 수 있다.
이 때, 제2 유도키 확인부(210)는 제2 데이터 암복호화부(230)가 제1 서비스 제공 장치(100)로부터 암호화된 데이터를 수신한 경우, 기제공된 유도키들의 존재 여부를 확인할 수 있다.
이 때, 제2 유도키 확인부(210)는 기제공된 유도키들의 존재를 확인하고, 유도키의 존재가 확인되면 유도키들의 유도키 유효기간을 확인할 수 있다.
이 때, 제2 유도키 확인부(210)는 유도키들 중 유도키 유효기간이 만족되는 어느 하나의 유도키를 결정할 수 있다.
이 때, 제2 유도키 확인부(210)는 결정된 유도키와 유도키 정보를 제1 암호키 생성부(120)에 제공하여 암호키 생성을 요청할 수 있다.
또한, 제2 유도키 확인부(210)는 유도키들 중 유도키 유효기간이 모두 만료된 경우, 블록 체인(20)에게 갱신된 유도키 정보를 요청할 수 있다.
예를 들어, 제2 유도키 확인부(210)는 적어도 두 개 이상의 유도키들의 존재를 확인하고, 제1 유도키의 유도키 유효기간을 확인할 수 있고, 제1 유도키의 유도키 유효기간이 만족되는 경우, 제1 유도키를 결정할 수 있다.
이 때, 제2 유도키 확인부(210)는 제1 유도키의 유효기간이 만료된 경우, 제2 유도키의 유도키 유효기간이 만족되는 경우, 제2 유도키를 결정할 수 있다.
이 때, 제2 유도키 확인부(210)는 제2 유도키 사용 후에, 블록체인(20)으로부터 유도키 정보를 다시 획득하여 유도키 정보를 갱신할 수 있다.
또한, 제2 유도키 확인부(210)는 제2 유도키의 유도키 유효기간이 만료된 경우, 키 관리 서버(10)와 블록체인(20)에 갱신된 유도키 및 유도키 정보를 요청하여 획득할 수 있다.
이 때, 제2 유도키 확인부(210)는 블록체인(20)에게 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자를 이용하여 유도키 정보를 요청할 수 있다.
이 때, 제2 유도키 확인부(210)는 키 관리 서버(100)에게 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청할 수 있다.
이 때, 제2 유도키 확인부(210)는 유도키 정보와 유효키를 제1 암호키 생성부(120)에 제공하여 암호키 생성을 요청할 수 있다.
이 때, 제2 암호키 생성부(220)는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
이 때, 제2 암호키 생성부(220)는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 제2 암호키 생성부(220)는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 제2 암호키 생성부(220)는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 4개 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
이에 따라, 키 관리 서버(10)에서 유도키가 누출 되어도 실제 사용되는 서비스 제공 장치에서 사용되는 유도키 정보는 상이할 수 있다.
이 때, 제2 데이터 암복호화부(230)는 암호키를 이용하여 암호화된 데이터를 복호화하고, 복호화된 데이터를 이용하여 서비스를 제공할 수 있다.
도 9는 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정을 나타낸 동작흐름도이다.
도 9를 참조하면, 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정은 먼저 유도키 생성 정보를 입력 받을 수 있다(S310).
즉, 단계(S310)는 키 관리 서버(10)가, 관리자로부터 유도키 생성 정보를 입력 받을 수 있다.
유도키 생성 정보는 유도키 길이, 암호화 알고리즘 및 유도키 유효기간 등 적어도 2개 이상의 유도키를 생성하기 위한 정보를 포함할 수 있다.
이 때, 단계(S310)는 관리자의 요청에 따라 유도키 생성 정보를 이용하여 유도키를 생성할 수 있다.
또한, 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정은 유도키 생성 여부를 확인할 수 있다(S320).
즉, 단계(S320)는 키 관리 서버(10)가, 유도키 생성에 성공한 경우, 유도키 정보를 블록체인(20)에 배포할 수 있고(S330), 유도키 생성에 실패한 경우, 유도키 정보 배포 과정을 종료하거나, 유도키 생성에 필요한 정보를 관리자에게 다시 요청할 수도 있다.
또한, 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정은 유도키 정보를 배포할 수 있다(S330).
이 때, 단계(S330)는 키 관리 서버(10)가, 유도키에 대한 유도키 정보를 생성할 수 있다.
유도키 정보는 아래와 같은 정보를 포함할 수 있다.
1. 유도키 위치 [2 이상] : IP 정보 또는 도메인 정보(적어도 2개 이상)
2. 유도키 Iteration Count[2 이상] : KDF 해시 카운트(적어도 2개 이상)
3. 유도키 인덱스 정보[2 이상] : 유도키 사용을 위한 byte 배열 시작 위치(4byte), 1byte 가 256 정수로 표현됨. 예를 들어, 4개의 시작위치를 이용하여 유도키를 다시 재조합하기 위한 정보를 포함할 수 있다(적어도 2개 이상).
4. 유도키 유효 기간[2 이상] : 유도키 사용 만료 기간으로 만료 시에 첫 번째 유도키 유효기간 만료 시에, 두 번째 유도키의 배열을 이용하여 암호키 생성할 수 있다(적어도 2개 이상).
5. 유도키 UUID[2 이상] : 키 관리 서버에서 유도키를 관리하기 위한 유니크한 ID 값(고유 식별자)(적어도 2개 이상).
6. 암호키 생성 크기[2 이상] : 암호키를 생성할 크기(적어도 2개 이상).
7. 암호 알고리즘[2 이상] 암호키를 사용할 알고리즘(적어도 2개 이상).
8. 서비스 ID : 각 서비스 양단간에 공유될 서비스 ID값으로 유도키 배포 시 구별 할 수 있는 ID 값
이 때, 단계(S330)는 유도키 정보를 블록체인(20)에 배포할 수 있다.
또한, 본 발명의 일실시예에 따른 새로운 유도키를 이용한 유도키 정보 배포 과정은 유도키 정보 배포 성공 여부를 확인할 수 있다(S340).
즉, 단계(S340)는 유도키 정보 배포가 성공한 경우, 성공 여부를 등록하고 관리자에게 통지할 수 있고, 유도키 정보 배포가 실패한 경우, 유도키 정보 배포 절차를 종료할 수 있다.
도 10은 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정을 나타낸 동작흐름도이다.
도 10을 참조하면, 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정은 먼저 유도키 리스트를 조회할 수 있다(S410).
즉, 단계(S410)는 키 관리 서버(10)가, 기생성된 유도키를 확인하기 위해 유도키 리스트를 조회할 수 있다.
이 때, 단계(S410)는 유도키 리스트를 조회하여 유도키를 선택할 수 있다.
또한, 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정은 유도키 선택 여부를 확인할 수 있다(S420).
즉, 단계(S420)는 키 관리 서버(10)가, 유도키 선택에 성공한 경우, 유도키 정보를 블록체인(20)에 배포할 수 있고(S430), 유도키 선택에 실패한 경우, 유도키 정보 배포 과정을 종료할 수 있다.
또한, 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정은 유도키 정보를 배포할 수 있다(S430).
이 때, 단계(S430)는 키 관리 서버(10)가, 유도키에 대한 유도키 정보를 배포할 수 있다.
유도키 정보는 아래와 같은 정보를 포함할 수 있다.
1. 유도키 위치 [2 이상] : IP 정보 또는 도메인 정보(적어도 2개 이상)
2. 유도키 Iteration Count[2 이상] : KDF 해시 카운트(적어도 2개 이상)
3. 유도키 인덱스 정보[2 이상] : 유도키 사용을 위한 byte 배열 시작 위치(4byte), 1byte 가 256 정수로 표현됨. 예를 들어, 4개의 시작위치를 이용하여 유도키를 다시 재조합하기 위한 정보를 포함할 수 있다(적어도 2개 이상).
4. 유도키 유효 기간[2 이상] : 유도키 사용 만료 기간으로 만료 시에 첫 번째 유도키 유효기간 만료 시에, 두 번째 유도키의 배열을 이용하여 암호키 생성할 수 있다(적어도 2개 이상).
5. 유도키 UUID[2 이상] : 키 관리 서버에서 유도키를 관리하기 위한 유니크한 ID 값(고유 식별자)(적어도 2개 이상).
6. 암호키 생성 크기[2 이상] : 암호키를 생성할 크기(적어도 2개 이상).
7. 암호 알고리즘[2 이상] 암호키를 사용할 알고리즘(적어도 2개 이상).
8. 서비스 ID : 각 서비스 양단간에 공유될 서비스 ID값으로 유도키 배포 시 구별 할 수 있는 ID 값
이 때, 단계(S330)는 유도키 정보를 블록체인(20)에 배포할 수 있다.
또한, 본 발명의 일실시예에 따른 기존 유도키를 이용한 유도키 정보 배포 과정은 유도키 정보 배포 성공 여부를 확인할 수 있다(S440).
즉, 단계(S440)는 유도키 정보 배포가 성공한 경우, 성공 여부를 등록하고 관리자에게 통지할 수 있고, 유도키 정보 배포가 실패한 경우, 유도키 정보 배포 절차를 종료할 수 있다.
도 11은 본 발명의 일실시예에 따른 유도키 정보 확인 과정을 나타낸 동작흐름도이다.
도 11을 참조하면, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 먼저 유도키 존재를 확인할 수 있다(S510).
즉, 단계(S510)는 서비스 제공 장치가, 서비스를 제공하기 위해 기제공된 유도키의 존재 여부를 확인할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 유도키의 존재 여부를 확인하여(S520) 기제공된 유도키가 존재하는 경우, 유도키들의 유효기간을 확인할 수 있고(S530), 기제공된 유도키가 존재하지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S600).
즉, 단계(S530)는 확인된 유도키들 중 제1 유도키의 유효기간을 확인할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 제1 유도키의 유도키 유효기간을 확인하여(S540) 제1 유도키의 유도키 유효기간이 만족되는 경우, 제1 유도키를 사용할 수 있고(S550), 제1 유도키의 유도키 유효기간이 만족되지 않는 경우, 제2 유도키의 유도키 유효기간을 확인할 수 있다(S560).
또한, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 제2 유도키의 유도키 유효기간을 확인하여(S570) 제2 유도키의 유도키 유효기간이 만족되는 경우, 제2 유도키를 사용할 수 있고(S580), 제2 유도키의 유도키 유효기간이 만족되지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S600).
또한, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 유도키 정보를 갱신할 수 있다(S590).
즉, 단계(S590)는 서비스 제공 장치가, 제2 유도키 사용 후에, 블록체인(20)으로부터 유도키 정보를 다시 획득하여 유도키 정보를 갱신할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 확인 과정은 유도키 획득 프로세스를 수행할 수 있다(S600).
즉, 단계(S600)는 서비스 제공 장치가, 키 관리 서버(10)로부터 유도키를 획득하고, 블록체인(20)으로부터 유도키 정보를 획득할 수 있다.
이 때, 단계(S600)에 관한 상세한 설명은 아래 도 12를 참조하여 설명한다.
도 12는 본 발명의 일실시예에 따른 암호키 생성 과정을 나타낸 동작흐름도이다.
도 12를 참조하면, 본 발명의 일실시예에 따른 암호키 생성 과정은 상기의 도 11에서 설명한 단계(S600)의 유도키 획득 프로세스 수행 과정을 포함할 수 있다.
본 발명의 일실시예에 따른 암호키 생성 과정은 먼저 서비스 식별자(ID)를 이용하여 기제공된 유도키를 조회할 수 있다(S610).
즉, 단계(S610)는 서비스 제공 장치가, 서비스 식별자를 이용하여 유도키 존재 여부를 확인할 수 있다.
또한, 본 발명의 일실시예에 따른 암호키 생성 과정은 유도키 존재 여부를 확인하여(S620) 서비스 식별자에 상응하는 유도키가 선택되지 않은 경우, 블록체인(20)에 유도키 정보를 요청할 수 있고(S630), 서비스 식별자에 상응하는 유도키가 선택된 경우, 유도키를 이용하여 암호키를 생성할 수 있다(S670).
즉, 단계(S630)는 서비스 제공 장치가, 블록체인(20)에게 서비스 제공 장치의 식별자를 이용하여 유도키 정보의 조회를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 암호키 생성 과정은 블록체인(20)이 유도키 정보를 조회하여(S640) 유도키 정보가 조회된 경우, 서비스 제공 장치가 키 관리 서버(10)에게 유도키를 요청할 수 있고(S650), 유도키 정보가 조회되지 않은 경우, 암호키 생성 과정을 종료할 수 있다.
즉, 단계(S650)는 서비스 제공 장치가, 유도키 정보에 포함된 고유 식별자를 이용하여 키 관리 서버(10)에게 유도키를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 암호키 생성 과정은 키 관리 서버가(10) 유도키 조회를 수행하고(S660), 유도키 조회를 성공하여 서비스 제공 장치가 유도키를 획득한 경우, 암호키를 생성할 수 있고(S670), 유도키 조회를 실패하여 서비스 제공 장치가 유도키를 획득하지 못한 경우, 암호키 생성 과정을 종료할 수 있다.
또한, 본 발명의 일실시예에 따른 암호키 생성 과정은 암호키를 생성할 수 있다(S670).
즉, 단계(S670)는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S670)는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S670)는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S670)는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S670)는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 4개 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
이에 따라, 키 관리 서버(10)에서 유도키가 누출 되어도 실제 사용되는 서비스 제공 장치에서 사용되는 유도키 정보는 상이할 수 있다.
도 13은 본 발명의 일실시예에 따른 유도키 정보 갱신 과정을 나타낸 동작흐름도이다.
도 13을 참조하면, 본 발명의 일실시예에 따른 유도키 정보 갱신 과정은 먼저 유도키 정보를 확인할 수 있다(S710).
즉, 단계(S710)는 키 관리 서버(10)가, 블록체인(20)에 배포된 유도키 정보를 확인할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 갱신 과정은 블록체인(20)에 배포된 유도키 정보를 확인하여(S720) 유도키 정보가 확인된 경우, 유도키 정보 리스트를 확인할 수 있고(S730), 유도키 정보가 확인되지 않는 경우, 유도키 갱신 과정을 종료할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 갱신 과정은 유도키 정보 리스트를 확인할 수 있다(S730).
즉, 단계(S730)는 유도키 정보 리스트에서 배포된 유도키 정보를 확인하여 유도키들의 유도키 유효기간을 확인할 수 있다.
또한, 본 발명의 일실시예에 따른 유도키 정보 갱신 과정은 유도키들의 유도키 유효기간을 확인하여(S740) 모든 유도키들의 유효기간이 사용 가능한 경우 유도키 갱신 과정을 종료하고, 유도키들 중 유효기간이 만료된 유도키가 존재하는 경우, 해당 유도키 정보를 갱신할 수 있다(S750).
즉, 단계(S750)는 키 관리 서버(10)가, 유도키 유효기간이 만료된 유도키들의 유도키 유효기간을 갱신하고, 갱신된 유도키 정보를 블록체인(20)에 배포하여 유도키 정보를 갱신할 수 있다.
도 14는 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법을 나타낸 시퀀스 다이어그램이다.
도 14를 참조하면, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 먼저 유도키 정보를 조회할 수 있다(S801).
즉, 단계(S801)는 먼저 유도키 정보를 확인할 수 있다(S710).
이 때, 단계(S801)는 키 관리 서버(10)가, 블록체인(20)에 배포된 유도키 정보를 확인할 수 있다.
이 때, 단계(S801)는 블록체인(20)에 배포된 유도키 정보를 확인하여 유도키 정보가 확인된 경우, 유도키 정보 리스트를 확인할 수 있고, 유도키 정보가 확인되지 않는 경우, 유도키 갱신 과정을 종료할 수 있다.
이 때, 단계(S801)는 유도키 정보 리스트에서 배포된 유도키 정보를 확인하여 유도키들의 유도키 유효기간을 확인할 수 있다.
이 때, 단계(S801)는 유도키들의 유도키 유효기간을 확인하여 모든 유도키들의 유효기간이 사용 가능한 경우, 유도키 갱신 과정을 종료하고, 유도키들 중 유효기간이 만료된 유도키가 존재하는 경우, 해당 유도키 정보를 갱신할 수 있다.
이 때, 단계(S801)는 키 관리 서버(10)가, 유도키 유효기간이 만료된 유도키들의 유도키 유효기간을 갱신하고, 갱신된 유도키 정보를 블록체인(20)에 배포하여 유도키 정보를 갱신할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 제1 서비스 제공 장치(100)가, 유도키 유효기간을 확인할 수 있다(S802).
즉, 단계(S802)는 제1 서비스 제공 장치(100)가, 유도키 존재를 확인할 수 있다.
이 때, 단계(S802)는 제1 서비스 제공 장치(100)가, 서비스를 제공하기 위해 기제공된 유도키의 존재 여부를 확인할 수 있다.
이 때, 단계(S802)는 유도키의 존재 여부를 확인하여 기제공된 유도키가 존재하는 경우, 유도키들의 유효기간을 확인할 수 있고, 기제공된 유도키가 존재하지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S803 내지 S806).
이 때, 단계(S802)는 확인된 유도키들 중 제1 유도키의 유효기간을 확인할 수 있다.
이 때, 단계(S802)는 제1 유도키의 유도키 유효기간을 확인하여 제1 유도키의 유도키 유효기간이 만족되는 경우, 제1 유도키를 사용할 수 있고, 제1 유도키의 유도키 유효기간이 만족되지 않는 경우, 제2 유도키의 유도키 유효기간을 확인할 수 있다.
이 때, 단계(S802)는 제2 유도키의 유도키 유효기간을 확인하여 제2 유도키의 유도키 유효기간이 만족되는 경우, 제2 유도키를 사용할 수 있고, 제2 유도키의 유도키 유효기간이 만족되지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S803 내지 S806).
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키 정보를 요청할 수 있다(S803).
즉, 단계(S803)는 제1 서비스 제공 장치(100)가, 블록체인(20)에게 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자를 이용하여 유도키 정보의 조회를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키 정보를 전송할 수 있다(S804).
즉, 단계(S804)는 블록체인(20)이 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자에 상응하는 유도키 정보가 조회된 경우, 제1 서비스 제공 장치(100)에게 유도키 정보를 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키를 요청할 수 있다(S805).
즉, 단계(S805)는 제1 서비스 제공 장치(100)가, 유도키 정보에 포함된 고유 식별자를 이용하여 키 관리 서버(10)에게 유도키를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키를 전송할 수 있다(S806).
즉, 단계(S806)는 키 관리 서버(10)가, 고유 식별자에 상응하는 유도키가 조회된 경우, 제1 서비스 제공 장치(100)에게 유도키를 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 암호키를 생성할 수 있다(S807).
즉, 단계(S807)는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S807)는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S807)는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S807)는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S807)는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 4개 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 데이터를 암호화할 수 있다(S808).
즉, 단계(S808)는 제1 서비스 제공 장치(100)가 암호키를 이용하여 서비스를 제공하기 위한 데이터를 암호화할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 암호화된 데이터를 전송할 수 있다(S809).
즉, 단계(S809)는 제1 서비스 제공 장치(100)가, 암호화된 데이터를 제2 서비스 제공 장치(200)에 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 제2 서비스 제공 장치(200)가, 유도키 유효기간을 확인할 수 있다(S810).
즉, 단계(S810)는 제2 서비스 제공 장치(200)가, 유도키 존재를 확인할 수 있다.
이 때, 단계(S810)는 제2 서비스 제공 장치(200)가, 서비스를 제공하기 위해 기제공된 유도키의 존재 여부를 확인할 수 있다.
이 때, 단계(S810)는 유도키의 존재 여부를 확인하여 기제공된 유도키가 존재하는 경우, 유도키들의 유효기간을 확인할 수 있고, 기제공된 유도키가 존재하지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S811 내지 S814).
이 때, 단계(S810)는 확인된 유도키들 중 제1 유도키의 유효기간을 확인할 수 있다.
이 때, 단계(S810)는 제1 유도키의 유도키 유효기간을 확인하여 제1 유도키의 유도키 유효기간이 만족되는 경우, 제1 유도키를 사용할 수 있고, 제1 유도키의 유도키 유효기간이 만족되지 않는 경우, 제2 유도키의 유도키 유효기간을 확인할 수 있다.
이 때, 단계(S810)는 제2 유도키의 유도키 유효기간을 확인하여 제2 유도키의 유도키 유효기간이 만족되는 경우, 제2 유도키를 사용할 수 있고, 제2 유도키의 유도키 유효기간이 만족되지 않는 경우, 유도키 획득 프로세스를 수행할 수 있다(S811 내지 S814).
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키 정보를 요청할 수 있다(S811).
즉, 단계(S811)는 제2 서비스 제공 장치(200)가, 블록체인(20)에게 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자를 이용하여 유도키 정보의 조회를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키 정보를 전송할 수 있다(S812).
즉, 단계(S812)는 블록체인(20)이 제1 서비스 제공 장치(100)가 제공하는 서비스의 서비스 식별자에 상응하는 유도키 정보가 조회된 경우, 제2 서비스 제공 장치(200)에게 유도키 정보를 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키를 요청할 수 있다(S813).
즉, 단계(S813)는 제2 서비스 제공 장치(200)가, 유도키 정보에 포함된 고유 식별자를 이용하여 키 관리 서버(10)에게 유도키를 요청할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 유도키를 전송할 수 있다(S814).
즉, 단계(S814)는 키 관리 서버(10)가, 고유 식별자에 상응하는 유도키가 조회된 경우, 제2 서비스 제공 장치(200)에게 유도키를 전송할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 암호키를 생성할 수 있다(S815).
즉, 단계(S815)는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S815)는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
이 때, 단계(S815)는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S815)는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 단계(S815)는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 4개 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
또한, 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 방법은 암호화된 데이터를 복호화할 수 있다(S816).
즉, 단계(S816)는 제2 서비스 제공 장치(200)가, 암호키를 이용하여 서비스를 제공하기 위해 제1 서비스 제공 장치(100)로부터 수신한 암호화된 데이터를 복호화할 수 있다.
이 때, 단계(S816)는 복호화된 데이터를 이용하여 서비스를 제공할 수 있다.
도 15는 본 발명의 일실시예에 따른 유도키의 배열을 나타낸 도면이다.
도 15를 참조하면, 본 발명의 일실시예에 따른 유도키의 배열 나타낸 것을 알 수 있다.
본 발명의 일실시예에 따른 서비스 제공 장치는 유도키 정보 및 유도키를 이용하여 암호키를 생성할 수 있다.
이 때 서비스 제공 장치는 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 암호키를 생성할 수 있다.
예를 들어, 복수개의 엘리먼트 구간들은 도 15에 도시된 바와 같이 4개(31, 32, 33, 34) 일 수 있고, 각각의 구간들의 비트 수는 64bit에 상응할 수 있다. 따라서, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합인 256bit에 상응할 수 있다.
이 때, 제1 엘리먼트 구간(31)의 유도키 조합 시작위치가 되는 유도키 인덱스는 '0x21' 이고, 유도키 조합 종료위치가 되는 유도키 인덱스는 '0x26'인 것을 알 수 있다.
이 때, 제1 엘리먼트 구간(31)의 비트 수는 64bit 인 것을 알 수 있다.
이 때, 제2 엘리먼트 구간(32)의 유도키 조합 시작위치가 되는 유도키 인덱스는 '0x33' 이고, 유도키 조합 종료위치가 되는 유도키 인덱스는 '0x3a'인 것을 알 수 있다.
이 때, 제2 엘리먼트 구간(32)의 비트 수는 64bit 인 것을 알 수 있다.
이 때, 제3 엘리먼트 구간(33)의 유도키 조합 시작위치가 되는 유도키 인덱스는 '0x3e' 이고, 유도키 조합 종료위치가 되는 유도키 인덱스는 '0x05'인 것을 알 수 있다.
이 때, 제3 엘리먼트 구간(33)의 비트 수는 64bit 인 것을 알 수 있다.
이 때, 제4 엘리먼트 구간(34)의 유도키 조합 시작위치가 되는 유도키 인덱스는 '0x1b' 이고, 유도키 조합 종료위치가 되는 유도키 인덱스는 '0x22'인 것을 알 수 있다.
이 때, 제4 엘리먼트 구간(34)의 비트 수는 64bit 인 것을 알 수 있다.
이 때, 서비스 제공 장치는 유도키 정보에서 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 유도키의 배열에서 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 서비스 제공 장치는 유도키의 배열에서 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 암호키를 생성할 수 있다.
이 때, 서비스 제공 장치는 유도키 정보에 포함된 Key Iteration 회수를 추가로 입력하여 암호키를 생성할 수 있다.
이 때, 복수개의 엘리먼트 구간들의 비트 수는 모두 동일할 수 있다.
이 때, 암호키의 비트 수는 복수개의 엘리먼트 구간들의 비트 수의 합에 상응할 수 있다.
도 15에 도시된 바와 같이, 4개의 엘리먼트 구간들(31, 32, 33, 34)의 비트 수는 각각 64bit 이므로 256bit 암호키가 사용되는 것을 알 수 있다.
도 16은 본 발명의 일실시예에 따른 컴퓨터 시스템을 나타낸 도면이다.
도 16을 참조하면, 본 발명의 일실시예에 따른 키 관리 서버(10), 제1 서비스 제공 장치(100) 및 제2 서비스 제공 장치(200)는 컴퓨터로 읽을 수 있는 기록매체와 같은 컴퓨터 시스템(1100)에서 구현될 수 있다. 도 16에 도시된 바와 같이, 컴퓨터 시스템(1100)은 버스(1120)를 통하여 서로 통신하는 하나 이상의 프로세서(1110), 메모리(1130), 사용자 인터페이스 입력 장치(1140), 사용자 인터페이스 출력 장치(1150) 및 스토리지(1160)를 포함할 수 있다. 또한, 컴퓨터 시스템(1100)은 네트워크(1180)에 연결되는 네트워크 인터페이스(1170)를 더 포함할 수 있다. 프로세서(1110)는 중앙 처리 장치 또는 메모리(1130)나 스토리지(1160)에 저장된 프로세싱 인스트럭션들을 실행하는 반도체 장치일 수 있다. 메모리(1130) 및 스토리지(1160)는 다양한 형태의 휘발성 또는 비휘발성 저장 매체일 수 있다. 예를 들어, 메모리는 ROM(1131)이나 RAM(1132)을 포함할 수 있다.
이상에서와 같이 본 발명의 일실시예에 따른 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법은 상기한 바와 같이 설명된 실시예들의 구성과 방법이 한정되게 적용될 수 있는 것이 아니라, 상기 실시예들은 다양한 변형이 이루어질 수 있도록 각 실시예들의 전부 또는 일부가 선택적으로 조합되어 구성될 수도 있다.
10: 키 관리 서버 11: 유도키 관리부
12: 유도키 생성부 13: 통신부
20: 블록체인 21: 블록체인 유도키 정보 처리부
22: 블록체인 데이터베이스부 100: 제1 서비스 제공 장치
110: 제1 유도키 확인부 120: 제1 암호키 생성부
130: 제1 데이터 암복호화부 200: 제2 서비스 제공 장치
210: 제2 유도키 확인부 220: 제2 암호키 생성부
230: 제2 데이터 암복호화부 31: 제1 엘리먼트 구간
32: 제2 엘리먼트 구간 33: 제3 엘리먼트 구간
34: 제4 엘리먼트 구간
1100: 컴퓨터 시스템 1110: 프로세서
1120: 버스 1130: 메모리
1131: 롬 1132: 램
1140: 사용자 인터페이스 입력 장치
1150: 사용자 인터페이스 출력 장치
1160: 스토리지 1170: 네트워크 인터페이스
1180: 네트워크

Claims (16)

  1. 키 관리 서버, 블록체인 및 서비스 제공 장치의 블록체인을 이용한 암호화 기반 서비스 제공 방법에 있어서,
    상기 서비스 제공 장치가, 상기 블록체인에게 상기 서비스 제공 장치의 서비스 식별자를 이용하여 유도키 정보를 요청하는 단계;
    상기 서비스 제공 장치가, 상기 키 관리 서버에게 상기 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청하는 단계; 및
    상기 서비스 제공 장치가, 상기 유도키 정보 및 상기 유도키를 이용하여 암호키를 생성하는 단계;
    를 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  2. 청구항 1에 있어서,
    상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은
    상기 키 관리 서버가, 상기 블록체인에게 유도키 정보를 배포하는 단계를 더 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  3. 청구항 2에 있어서,
    상기 유도키 정보를 배포하는 단계는
    상기 키 관리 서버가, 상기 서비스 제공 장치로부터 상기 서비스 식별자 및 유도키 생성 정보를 수신하여 상기 유도키 및 상기 유도키 정보를 생성하고, 상기 유도키 정보를 상기 서비스 식별자와 연결하여 상기 블록체인에 배포하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  4. 청구항 1에 있어서,
    상기 암호키를 생성하는 단계는
    상기 유도키 정보에서 적어도 두 개 이상의 유도키들에 대한 유도키 유효 기간을 확인하여 현재 사용 가능한 어느 하나의 유도키를 결정하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  5. 청구항 4에 있어서,
    상기 암호키를 생성하는 단계는
    상기 서비스 제공 장치가, 상기 유도키 정보의 유도키 인덱스 정보에 포함된 유도키 조합 위치를 확인하고, 상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 이용하여 상기 암호키를 생성하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  6. 청구항 5에 있어서,
    상기 암호키를 생성하는 단계는
    상기 서비스 제공 장치가, 상기 유도키 정보에서 상기 유도키에 상응하는 키 유도 함수(Key Derivation Function)를 결정하고, 상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 엘리먼트들에 저장된 값을 상기 키 유도 함수에 입력하여 상기 암호키를 생성하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  7. 청구항 6에 있어서,
    상기 암호키를 생성하는 단계는
    상기 유도키의 배열에서 상기 유도키 조합 위치에 상응하는 복수개의 엘리먼트 구간들을 추출하고, 상기 복수개의 엘리먼트 구간들에 포함된 엘리먼트들을 상기 키 유도 함수에 입력하여 상기 암호키를 생성하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  8. 청구항 7에 있어서,
    상기 복수개의 엘리먼트 구간들의 비트 수는 모두 동일한 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  9. 청구항 8에 있어서,
    상기 암호키의 비트 수는
    상기 복수개의 엘리먼트 구간들의 비트 수의 합에 상응하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  10. 청구항 4에 있어서,
    상기 암호키를 생성하는 단계는
    상기 유도키들의 유도키 유효 기간이 모두 만료된 경우, 상기 블록 체인에게 갱신된 유도키 정보를 요청하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  11. 청구항 10에 있어서,
    상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은
    상기 키 관리 서버가, 상기 블록체인에 배포된 유도키 정보를 갱신하는 단계를 더 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  12. 청구항 11에 있어서,
    상기 유도키 정보를 갱신하는 단계는
    상기 키 관리 서버가, 상기 유도키 정보에서 유도키 유효 기간이 만료된 유도키에 대한 유효 기간을 갱신하고, 상기 블록체인에게 갱신된 유도키 정보를 배포하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  13. 청구항 1에 있어서,
    상기 블록체인을 이용한 암호화 기반 서비스 제공 방법은
    복수개의 서비스 제공 장치들이, 상기 암호키를 이용하여 데이터를 암복호화하고, 상기 데이터를 이용하여 서비스를 제공하는 단계를 더 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  14. 청구항 13에 있어서,
    상기 서비스를 제공하는 단계는
    제1 서비스 제공 장치가, 상기 암호키를 이용하여 상기 데이터를 암호화하고, 암호화된 데이터를 제2 서비스 제공 장치에게 전송하는 단계; 및
    상기 제2 서비스 제공 장치가, 상기 암호키를 이용하여 상기 암호화된 데이터를 복호화하고, 복호화된 상기 데이터를 이용하여 상기 서비스를 제공하는 단계를 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 방법.
  15. 블록체인에게 서비스 제공 장치의 서비스 식별자를 이용하여 유도키 정보를 요청하고, 키 관리 서버에게 상기 유도키 정보에 포함된 고유 식별자를 이용하여 유도키를 요청하는 유도키 확인부; 및
    상기 유도키 정보 및 상기 유도키를 이용하여 암호키를 생성하는 암호키 생성부;
    를 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 장치.
  16. 청구항 15에 있어서,
    상기 블록체인을 이용한 암호화 기반 서비스 제공 장치는
    상기 암호키를 이용하여 데이터의 암복호화를 수행하고, 상기 데이터를 이용하여 서비스를 제공하는 데이터 암복호화부를 더 포함하는 것을 특징으로 하는 블록체인을 이용한 암호화 기반 서비스 제공 장치.
KR1020180135312A 2018-11-06 2018-11-06 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법 KR102092394B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180135312A KR102092394B1 (ko) 2018-11-06 2018-11-06 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180135312A KR102092394B1 (ko) 2018-11-06 2018-11-06 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR102092394B1 true KR102092394B1 (ko) 2020-04-20

Family

ID=70467181

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180135312A KR102092394B1 (ko) 2018-11-06 2018-11-06 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법

Country Status (1)

Country Link
KR (1) KR102092394B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040046691A (ko) * 2002-11-28 2004-06-05 한국전자통신연구원 디지털 콘텐츠의 보호 장치 및 보호 방법
KR101120259B1 (ko) * 2007-07-10 2012-03-19 콸콤 인코포레이티드 피어 투 피어 식별자들
KR101485230B1 (ko) * 2010-01-06 2015-01-22 알까뗄 루슨트 안전한 멀티 uim 인증 및 키 교환
KR20170053459A (ko) * 2015-11-06 2017-05-16 주식회사 케이티 정보 보호를 위한 파일 암복호화 방법
KR101880999B1 (ko) * 2018-02-13 2018-07-24 (주)케이사인 사물 인터넷 네트워크의 엔드 투 엔드 데이터 암호화 시스템 및 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040046691A (ko) * 2002-11-28 2004-06-05 한국전자통신연구원 디지털 콘텐츠의 보호 장치 및 보호 방법
KR101120259B1 (ko) * 2007-07-10 2012-03-19 콸콤 인코포레이티드 피어 투 피어 식별자들
KR101485230B1 (ko) * 2010-01-06 2015-01-22 알까뗄 루슨트 안전한 멀티 uim 인증 및 키 교환
KR20170053459A (ko) * 2015-11-06 2017-05-16 주식회사 케이티 정보 보호를 위한 파일 암복호화 방법
KR101880999B1 (ko) * 2018-02-13 2018-07-24 (주)케이사인 사물 인터넷 네트워크의 엔드 투 엔드 데이터 암호화 시스템 및 방법

Similar Documents

Publication Publication Date Title
US11647007B2 (en) Systems and methods for smartkey information management
JP5978759B2 (ja) サービス要求装置、サービス提供システム、サービス要求方法およびサービス要求プログラム
US7386722B2 (en) Certificate management system and method
EP1696602B1 (en) Cryptographic communication system and method
US6834112B1 (en) Secure distribution of private keys to multiple clients
US7823187B2 (en) Communication processing method and system relating to authentication information
US20050144439A1 (en) System and method of managing encryption key management system for mobile terminals
JP5670272B2 (ja) 情報処理装置、サーバ装置およびプログラム
US20200320178A1 (en) Digital rights management authorization token pairing
US10680806B1 (en) DNS-based symmetric-key infrastructure
CN111080299B (zh) 一种交易信息的防抵赖方法及客户端、服务器
KR102399667B1 (ko) 블록체인 기반 데이터 거래 및 보관을 위한 보안 시스템 및 그 방법
EP2942899B1 (en) Information processing method, trust server and cloud server
JP4637612B2 (ja) 識別情報生成管理装置およびシステムならびにプログラム
JP5494171B2 (ja) ファイル管理システム、ストレージサーバ、クライアント、ファイル管理方法およびプログラム
KR102092394B1 (ko) 블록체인을 이용한 암호화 기반 서비스 제공 장치 및 방법
KR101880999B1 (ko) 사물 인터넷 네트워크의 엔드 투 엔드 데이터 암호화 시스템 및 방법
KR20190139742A (ko) 블록체인에서 정보 조회 시간의 기록을 위한 분산 원장 장치
CN112035820B (zh) 一种用于Kerberos加密环境下的数据解析方法
KR102096639B1 (ko) Uuid를 이용한 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치
KR100659972B1 (ko) 홈네트워크 디바이스들의 상호인증 방법
KR102320667B1 (ko) 사용자 정보의 관리 방법 및 단말
US20230041783A1 (en) Provision of digital content via a communication network
JP2018107625A (ja) データ配信システム、データ生成装置、仲介装置、データ配信方法、及びプログラム
CN113364580B (zh) 密钥管理服务器、客户端、密钥分发方法和密钥获取方法

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant