KR101657893B1 - 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템 - Google Patents

클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템 Download PDF

Info

Publication number
KR101657893B1
KR101657893B1 KR1020150061034A KR20150061034A KR101657893B1 KR 101657893 B1 KR101657893 B1 KR 101657893B1 KR 1020150061034 A KR1020150061034 A KR 1020150061034A KR 20150061034 A KR20150061034 A KR 20150061034A KR 101657893 B1 KR101657893 B1 KR 101657893B1
Authority
KR
South Korea
Prior art keywords
key
computer device
encryption
encrypted
group
Prior art date
Application number
KR1020150061034A
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 KR1020150061034A priority Critical patent/KR101657893B1/ko
Application granted granted Critical
Publication of KR101657893B1 publication Critical patent/KR101657893B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)

Abstract

클라우드 서비스를 위한 암호화 방법은 사용자의 제1 컴퓨터 장치와 상기 사용자의 적어도 하나의 제2 컴퓨터 장치가 네트워크를 통해 암호화 그룹을 형성하는 단계, 상기 제1 컴퓨터 장치가 상기 적어도 하나의 제2 컴퓨터 장치에 그룹 키를 전송하는 단계, 상기 적어도 하나의 제2 컴퓨터 장치 중 하나인 암호화 컴퓨터 장치가 데이터 암호화키를 생성하는 단계, 상기 암호화 컴퓨터 장치가 상기 데이터 암호화키를 사용하여 데이터를 암호화하고, 상기 그룹 키를 사용하여 상기 암호화키를 암호화하는 단계 및 상기 암호화 컴퓨터 장치가 네트워크를 통해 클라우드 서버에 암호화된 상기 데이터 및 암호화된 상기 암호화 키를 전송하는 단계를 포함한다.

Description

클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템{ENCRYPTION METHOD FOR CLOUD SERVICE AND CLOUD SYSTEM PROVIDING ENCRYPTION BASED ON USER EQUIPMENT}
이하 설명하는 기술은 클라우드 서비스에 적용되는 암호화 기법에 관한 것이다.
클라우드 컴퓨팅(Cloud Computing)이란 정보처리를 자신의 컴퓨터가 아닌 인터넷으로 연결된 다른 컴퓨터로 처리하는 기술을 말한다. 예컨대, 종래 개인 컴퓨터(PC)에 설치되는 소프트웨어가 네트워크에 연결된 클라우디 서버에 설치되고, 사용자는 네트워크 접속을 통해 해당 소프트웨어를 사용할 수 있다. 또는 특정 애플리케이션에 사용되는 데이터만이 클라우드 서버에 저장될 수 있고, 이 경우 사용자는 전형 애플리케이션 또는 웹 브라우저 등을 통해 해당 데이터에 접근할 수 있다.
사용자가 위치한 장소가 아닌 네트워크 상에 위치한 클라우드 서버에 일정한 데이터를 저장하기 때문에 클라우드 서비스를 위한 보안 방법이 연구되고 있다.
한국등록특허 제10-1374594호
Kamara, S., Lauter, K.: Cryptographic Cloud Storage. In: Proceedings of the 14th International Conference on Financial Cryptograpy and Data Security. (2010) 136-149page
클라우드 시스템을 위한 보안 시스템이 연구되고 있지만, 종래 기법은 근본적으로 해당 클라우드 서버를 관리하는 관리자나 기업에게는 해당 데이터가 노출될 수 밖에 없는 한계가 있다.
이하 설명하는 기술은 클라우드 서비스를 관리하는 관리자에게 노출되지 않는 암호화 기법을 제공하고자 한다.
이하 설명하는 기술의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
클라우드 서비스를 위한 암호화 방법은 사용자의 제1 컴퓨터 장치가 네트워크를 통해 사용자의 적어도 하나의 제2 컴퓨터 장치에 그룹 키를 전송하는 단계, 적어도 하나의 제2 컴퓨터 장치 중 하나인 암호화 컴퓨터 장치가 데이터 암호화키를 생성하는 단계, 암호화 컴퓨터 장치가 데이터 암호화키를 사용하여 데이터를 암호화하고, 그룹 키를 사용하여 암호화키를 암호화하는 단계 및 암호화 컴퓨터 장치가 네트워크를 통해 클라우드 서버에 암호화된 데이터 및 암호화된 암호화 키를 전송하는 단계를 포함한다.
사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템은 동일한 사용자가 사용하는 제2 사용자 장치와 네트워크를 통해 통신 채널을 형성하고, 제2 사용자 장치와 공유하는 공유키를 사용하여 암호화된 제1 그룹 키를 제2 사용자 장치에 전송하는 제1 사용자 장치, 데이터 암호화를 위한 데이터 암호화키를 생성하고, 데이터 암호화키를 이용하여 데이터를 암호화하고, 공유키를 사용하여 복호한 제1 그룹 키를 사용하여 암호화키를 암호화하는 제2 사용자 장치 및 암호화된 데이터 및 암호화된 암호화키를 수신하여 저장하는 클라우드 서버를 포함한다.
이하 설명하는 기술은 사용자 장치만을 이용하여 암호화키를 생성하고 관리하기 때문에 데이터를 복호하는데 사용하는 암호화키가 클라우드 시스템 관리자나 제3자에게 노출되기 어렵다. 즉, 이하 설명하는 기술은 보안성 높은 클라우드 시스템 내지 서비스를 제공한다.
이하 설명하는 기술의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.
도 1은 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템에 대한 구성을 도시한 블록도이다
도 2는 클라우드 서비스를 위한 암호화 방법에 대한 순서도의 예이다.
도 3은 그룹 키를 전송하는 과정을 도시한 예이다.
도 4는 암호화를 제공하는 클라우드 서비스에서 데이터를 업로딩하고, 다운로딩하는 과정에 대한 절차 흐름도의 예이다.
도 5는 그룹키를 갱신하는 과정에 대한 절차 흐름도의 예이다.
이하 설명하는 기술은 다양한 변경을 가할 수 있고 여러 가지 실시예를 가질 수 있는 바, 특정 실시예들을 도면에 예시하고 상세하게 설명하고자 한다. 그러나, 이는 이하 설명하는 기술을 특정한 실시 형태에 대해 한정하려는 것이 아니며, 이하 설명하는 기술의 사상 및 기술 범위에 포함되는 모든 변경, 균등물 내지 대체물을 포함하는 것으로 이해되어야 한다.
제1, 제2, A, B 등의 용어는 다양한 구성요소들을 설명하는데 사용될 수 있지만, 해당 구성요소들은 상기 용어들에 의해 한정되지는 않으며, 단지 하나의 구성요소를 다른 구성요소로부터 구별하는 목적으로만 사용된다. 예를 들어, 이하 설명하는 기술의 권리 범위를 벗어나지 않으면서 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다. 및/또는 이라는 용어는 복수의 관련된 기재된 항목들의 조합 또는 복수의 관련된 기재된 항목들 중의 어느 항목을 포함한다.
본 명세서에서 사용되는 용어에서 단수의 표현은 문맥상 명백하게 다르게 해석되지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함한다" 등의 용어는 설시된 특징, 개수, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 의미하는 것이지, 하나 또는 그 이상의 다른 특징들이나 개수, 단계 동작 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 배제하지 않는 것으로 이해되어야 한다.
도면에 대한 상세한 설명을 하기에 앞서, 본 명세서에서의 구성부들에 대한 구분은 각 구성부가 담당하는 주기능 별로 구분한 것에 불과함을 명확히 하고자 한다. 즉, 이하에서 설명할 2개 이상의 구성부가 하나의 구성부로 합쳐지거나 또는 하나의 구성부가 보다 세분화된 기능별로 2개 이상으로 분화되어 구비될 수도 있다. 그리고 이하에서 설명할 구성부 각각은 자신이 담당하는 주기능 이외에도 다른 구성부가 담당하는 기능 중 일부 또는 전부의 기능을 추가적으로 수행할 수도 있으며, 구성부 각각이 담당하는 주기능 중 일부 기능이 다른 구성부에 의해 전담되어 수행될 수도 있음은 물론이다. 따라서, 본 명세서를 통해 설명되는 각 구성부들의 존재 여부는 기능적으로 해석되어야 할 것이며, 이러한 이유로 이하 설명하는 기술의 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템에 따른 구성부들의 구성은 이하 설명하는 기술의 목적을 달성할 수 있는 한도 내에서 대응하는 도면과는 상이해질 수 있음을 명확히 밝혀둔다.
또, 방법 또는 동작 방법을 수행함에 있어서, 상기 방법을 이루는 각 과정들은 문맥상 명백하게 특정 순서를 기재하지 않은 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 과정들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
최근 스마트폰, 태블릿 PC 등이 널리 보급되면서 일반적으로 하나의 사용자가 가정이나 직장 등에서 두 개 이상의 컴퓨터 장치를 소유하고 있다. 컴퓨터 장치는 스마트폰, 태블릿 PC, 노트북, 개인 PC 등과 같은 장치를 의미한다. 이하 설명하는 컴퓨터 장치는 서로 데이터를 주고 받을 수 있어야 한다. 예컨대, 인터넷에 연결된 제1 컴퓨터 장치는 인터넷에 연결된 제2 컴퓨터 장치와 일정한 데이터를 송수신할 수 있다. 제1 컴퓨터 장치는 WiFi, 블루투스(bluetooth), NFC, 가시광 통신 등을 통해 직접 제2 컴퓨터 장치와 데이터를 송수신할 수도 있다. 컴퓨터 장치들은 어떤 통신 기법이나 네트워크를 사용하는지 관계없이 서로 통신 채널이 수립되면 충분하다.
이하 설명하는 암호화기법은 동일한 사용자가 사용하거나 소유하는 두 개 이상의 컴퓨터 장치를 이용하여 암호화를 위한 키를 생성하고, 암호화된 데이터를 클라우드 서버에 전송한다. 이 경우 클라우드 서버의 관리자나 서비스 제공자는 저장된 데이터의 내용을 복원할 수 없다.
먼저 End-to-End 암호화 서비스가 제공되는 클라우드 시스템의 구성에 대해 설명한다. 도 1은 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템(100)에 대한 구성을 도시한 블록도이다.
사용자가 사용하는 컴퓨터 장치는 하단의 사각형 점선 박스 내에 도시되어 있다. 도 1은 3 개의 컴퓨터 장치를 예시적으로 도시하였다. 후술하겠지만 복수의 컴퓨터 장치가 데이터 암호화를 수행한다. 암호화를 수행하기 위해 먼저 컴퓨터 장치는 일정한 통신 채널을 형성하고, 서로에 대한 정보를 주고 받아야 한다. 즉, 암호화를 수행하기 위한 유기적인 컴퓨터 장치 그룹을 형성하게 된다. 이때의 컴퓨터 장치 그룹을 암호화 그룹이라고 명명한다.
3 개의 컴퓨터 장치는 네트워크를 통해 서로 메시지 내지 데이터를 주고 받을 수 있다. 예컨대, 컴퓨터 장치는 도 1의 네트워크(인터넷, 인트라넷 또는 유선 랜)로 서로 연결되어 데이터를 전달할 수도 있다. 또는 컴퓨터 장치는 직접 근거리 무선 통신(Wifi direct, 블루투스 등)을 통해 데이터는 주고받을 수도 있다(도 1에서 점선 화살표로 표시).
암호화 그룹에 포함되는 컴퓨터 장치는 두 가지 모드로 동작한다. 하나의 컴퓨터 장치는 암호화 그룹을 관리하고, 암호화 과정에 필요한 정보를 관리하는 역할을 수행한다. 도 1에서는 관리 역할을 수행하는 컴퓨터 장치를 그룹 매니저(110)라고 표시하였다. 한편 암호화 그룹에서 데이터 암호화를 담당하고, 암호화된 데이터를 클라우드 서버(150)에 전송하는 컴퓨터 장치를 그룹 클라이언트(120)라고 표시하였다. 그룹 매니저 또는 그룹 클라이언트는 그룹 내에서 수행하는 기능을 고려하여 명명한 것이다. 이하 설명에서는 그룹 매니저를 제1 컴퓨터 장치(110)라고 명명하고, 그룹 클라이언트를 제2 컴퓨터 장치(120)라고 명명한다. 도 1에서는 제2 컴퓨터 장치 A(120A) 및 제2 컴퓨터 장치 B(120B)를 도시하였다. 모든 컴퓨터 장치는 제1 컴퓨터 장치(100)와 제2 컴퓨터 장치(120) 사이에 정보를 교환하는데 필요한 키 및 데이터 암호화를 위한 암호화키를 암호화하거나 복호하기 위한 키도 저장할 수 있다.
제1 컴퓨터 장치(110) 및 제2 컴퓨터 장치(120)는 공통된 구성을 갖는다. 도 1에서는 제2 컴퓨터 장치(120)를 예로 세부 구성을 별도로 도시하였다(우측 상단 블록도). 제2 컴퓨터 장치(120)는 다른 컴퓨터 장치 및 클라우드 서버와 데이터를 주고 받기 위한 통신 모듈(121), 데이터 교환 및 암호화를 위한 키를 저장하는 저장 장치(123) 및 암호화 연산을 담당하는 중앙 처리 장치(122)를 포함한다. 나아가 제2 컴퓨터 장치(120)는 사용자 명령을 입력 받는 인터페이스 장치(124) 및 일정한 정보를 표시하는 디스플레이 장치(125)를 포함할 수 있다. 제1 컴퓨터 장치(110)도 제2 컴퓨터 장치(120)와 동일한 구성을 포함할 수 있다. 다만 후술하는 바와 같이 암호화 과정에서 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치(120)는 담당하는 역할 내지 기능이 상이하다.
클라우드 서버(150)는 클라우드 서비스를 위한 소프트웨어, 애플리케이션 또는 데이터를 저장하는 장치를 의미한다. 클라우드 서버(150)에 저장되는 모든 데이터는 사용자의 컴퓨터 장치(110 및 120)가 암호화한 것이다.
이하 클라우드 시스템(100)에서 수행되는 암호화 과정을 구체적으로 설명하도록 한다. 도 2는 클라우드 서비스를 위한 암호화 방법(200)에 대한 순서도의 예이다.
클라우드 서비스를 위한 암호화 방법(200)은 사용자의 제1 컴퓨터 장치(110)와 사용자의 적어도 하나의 제2 컴퓨터 장치(120)가 네트워크를 통해 암호화 그룹을 형성하는 단계(210), 제1 컴퓨터 장치(110)가 적어도 하나의 제2 컴퓨터 장치(120)에 그룹 키를 전송하는 단계(220), 적어도 하나의 제2 컴퓨터 장치(120) 중 하나인 암호화 컴퓨터 장치가 데이터 암호화키를 생성하는 단계(230), 암호화 컴퓨터 장치가 데이터 암호화키를 사용하여 데이터를 암호화하고, 그룹 키를 사용하여 암호화키를 암호화하는 단계(240) 및 암호화 컴퓨터 장치가 네트워크를 통해 클라우드 서버에 암호화된 데이터 및 암호화된 암호화 키를 전송하는 단계(250)를 포함한다. 암호화 컴퓨터 장치는 제2 컴퓨터 장치(120) 중 현재 데이터를 암호화하는 컴퓨터 장치를 의미한다.
사용자는 그룹 매니저로 동작하는 제1 컴퓨터 장치(110)에 그룹 매니저로 동작하기 위한 애플리케이션을 사전에 설치할 수 있다. 또한 사용자는 그룹 클라이언트로 동작하는 제2 컴퓨터 장치(120)에 그룹 클라이언트로 동작하기 위한 애플리케이션을 설치할 수 있다. 예컨대, 스마트폰 등에 설치한 전용 애플리케이션을 통해 도 2의 암호화 과정이 수행될 수 있다.
먼저 사용자 장치들(110, 120)은 서로 암호화 그룹을 형성한다(210). 암호화 그룹을 형성하는 과정(210)에서 암호화키를 암호화하기 위한 그룹 키(k)를 공유한다. 그룹 키(k)는 암호화 그룹에 속한 모든 컴퓨터 장치(110, 120)이 공유한다. 도 2에서는 그룹 키(k)를 전송하는 과정(220)을 별도로 도시하였지만, 암호화 그룹을 형성하는 과정에서 그룹 키(k)를 전송하여 공유할 수 있다.
도 3은 그룹 키를 전송하는 과정을 도시한 예이다. 도 3(A)는 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치 A(120A) 사이에 통신 채널을 인증하는 과정이다. 도 3(B)는 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치 A(120A) 사이에서 그룹 키(k)를 공유하는 과정이다.
도 3(A)를 살펴보면, 제2 컴퓨터 장치 A(120A)가 먼저 주변에 위치하는 제1 컴퓨터 장치(110)에게 그룹 참여 메시지를 전달한다(①). 그룹 참여 메시지는 제2 컴퓨터 장치 A(120A)의 식별자(ID)를 포함한다.
그룹 참여 메시지를 수신한 제1 컴퓨터 장치(110)는 일정한 코드를 디스플레이 화면에 출력할 수 있다(②). 도 3(A)는 핀 코드(PIN CODE)로 "0320"을 출력한 예를 도시하였다. 물론 제1 컴퓨터 장치(110)는 코드는 핀 코드 외에 다른 종류일 수도 있다. 제1 컴퓨터 장치(110)가 출력하는 핀 코드는 제2 컴퓨터 장치 A(120A)도 동일한 알고리즘으로 생성할 수 있어야 한다. 따라서 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치 A(120A)가 공통적으로 알고 있는 정보를 사용해야 한다. 예컨대, 그룹 참여 메시지에 포함된 특정 정보를 이용할 수 있다. 제1 컴퓨터 장치(110)는 제2 컴퓨터 장치 A(120A)의 식별자(ID)를 입력을 일정한 알고리즘을 통해 핀 코드를 생성할 수 있다. 이제 사용자는 제1 컴퓨터 장치(110)가 출력한 핀 코드를 제2 컴퓨터 장치 A(120A)에 입력한다(③). 이후 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치 A(120A)는 입력된 핀 코드와 생성한 핀 코드를 비교하여 암호화를 위한 키를 공유하기 위한 통신 채널을 인증한다(④). 이후 인증된 제1 컴퓨터 장치(110)와 제2 컴퓨터 장치 A(120A)는 암호화 과정에 사용되는 키를 생성하고 공유하게 된다.
도 3(B)를 살펴보면, 제2 컴퓨터 장치 A(120A)가 자신의 ID에 기반한 세션 키(ski)를 생성한다. 여기서 i는 제2 컴퓨터 장치의 식별자를 의미한다. 제2 컴퓨터 장치 A(120A)가 생성하는 세션 키는 skA라고 표시할 수 있다. 세션 키(ski)는 핀 코드를 입력으로 특정 알고리즘을 이용하여 생성할 수 있다. 제1 컴퓨터 장치(110) 및 제2 컴퓨터 장치 A(120A)가 동일한 알고리즘을 사용하여 동일한 세션 키(ski)를 생성한다(⑤). 이 경우 제2 컴퓨터 장치 마다 세션 키(ski)를 서로 다른 값을 사용하게 된다. 세션 키는 핀 코드가 아닌 제2 컴퓨터 장치의 식별자 등을 이용하여 생성할 수도 있을 것이다.
제2 컴퓨터 장치 A(120A)는 제1 컴퓨터 장치(110)와 키를 주고 받는데 사용하는 공유키(public key, puki)/개인키(private key, prki)를 생성한다(⑥). 공유키와 개인키를 이용한 메시지 전달 방법은 일반적으로 사용되는 방식에 해당한다. 제2 컴퓨터 장치 A(120A)는 자신이 생성한 공유키 puki를 제1 컴퓨터 장치(110)에 전달해야 한다. 이 과정에서 제2 컴퓨터 장치 A(120A)는 세션 키(ski)를 이용하여 공유키 puki를 암호화하고, 암호화한 공유키를 제1 컴퓨터 장치(110)에 전달한다(⑦).
한편 제1 컴퓨터 장치(110)는 별도의 그룹 키(k)를 생성한다(⑥). 그리고 제1 컴퓨터 장치(110)는 수신한 세션 키(ski)를 이용하여 그룹 키(k)를 암호화하고, 암호화한 그룹 키(k)를 제2 컴퓨터 장치 A(120A)에 전달한다(⑧).
제2 컴퓨터 장치 A(120A)가 세션 키(ski)로 암호화한 공유키 puki를 전달하는 과정과 제1 컴퓨터 장치(110)가 그룹 키(k)를 제2 컴퓨터 장치 A(120A)에 전달하는 과정은 아래의 수식으로 표현될 수 있다.
Figure 112015042108117-pat00001
DC는 제2 컴퓨터 장치를 의미하고, DM은 제1 컴퓨터 장치를 의미한다.
도 3에 도시한 과정을 통해 암호화 그룹에 속한 장치 사이에 그룹 키를 공유하게 된다. 도 3에는 도시하지 않았지만 제2 컴퓨터 장치가 복수 개인 경우, 제2 컴퓨터 장치 A(120A) 외에 제2 컴퓨터 장치 B(120B)도 동일한 과정을 통해 그룹 (k)키를 전달받는다. 그룹 키(k)는 동일한 암호화 그룹에서 동일한 값을 사용할 수 있다.
도 4는 암호화를 제공하는 클라우드 서비스에서 데이터를 업로딩하고, 다운로딩하는 과정(300)에 대한 절차 흐름도의 예이다.
제1 컴퓨터 장치(110), 제2 컴퓨터 장치 A(120A) 및 제2 컴퓨터 장치 B(120B)는 동일한 암호화 그룹을 형성한다(311). 이는 제1 컴퓨터 장치(110)가 각각 제2 컴퓨터 장치 A(120A) 및 제2 컴퓨터 장치 B(120B)와 도 3에 도시한 과정을 통해 그룹 키(k)를 공유했다는 의미이다. 현재 제2 컴퓨터 장치 A(120A) 및 제2 컴퓨터 장치 B(120B)는 그룹 키(k)를 저장한 상태이다.
제2 컴퓨터 장치 A(120A)는 일정한 알고리즘을 사용하여 암호화키(dek)를 생성한다(321). 암호화키(dek)는 클라우드 서버(150)에 전송할 데이터를 암호화하는데 사용한다. 제2 컴퓨터 장치 A(120A)는 다양한 입력값을 다양한 기법에 적용하여 암호화키(dek)를 생성할 수 있다. 예컨대, 제2 컴퓨터 장치 A(120A)는 암호화할 데이터(d)의 파일 이름을 입력값으로 암호화키(dek)를 생성할 수 있다.
제2 컴퓨터 장치 A(120A)는 암호화키(dek)를 이용하여 데이터(d)를 암호화하고, 그룹 키(k)를 이용하여 암호화키(dek)를 암호화한다(322). 제2 컴퓨터 장치 A(120A)는 암호화한 데이터(d) 및 암호화한 데이터 암호화키(dek)를 클라우드 서버(150)에 업로딩한다(331). 암호화한 데이터(d) 및 암호화한 데이터키(dek)를 전송하는 과정은 아래 수식 2로 표현될 수 있다.
Figure 112015042108117-pat00002
U는 제2 컴퓨터 장치를 사용하는 사용자(user)를 의미하고, S는 클라우드 서버를 의미한다. idd는 데이터 d와 암호화키 dek를 지시하는 식별자이다. 데이터가 다르거나 암호화키가 다른 경우 서로 다른 식별자(idd)가 사용된다.
클라우드 서버(150)은 수신한 암호화된 데이터 Edek(d) 및 암호화된 암호화키 Ek(dek)를 저장한다(341).
이제 클라우드 서버(150)에 저장한 데이터를 다운로딩하는 과정을 설명한다. 먼저 제2 컴퓨터 장치 A(120A)가 클라우드 서버(150)으로부터 암호화된 데이터 Edek(d) 및 암호화된 암호화키 Ek(dek)를 다운로딩한다(351).
클라우드 서버(150)가 제2 컴퓨터 장치에 암호화된 데이터 Edek(d) 및 암호화된 암호화키 Ek(dek)를 전달하는 과정은 아래의 수학식 3과 같이 표현할 수 있다.
Figure 112015042108117-pat00003
제2 컴퓨터 장치 A(120A)는 자신이 보유한 그룹 키(k)로 암호화키 Ek(dek)를 dek로 복호하고, 암호화키 dek를 이용하여 데이터 Edek(d)를 d로 복호한다(352). 이 과정을 통해 제2 컴퓨터 장치 A(120A)는 특정 데이터에 접근할 수 있다.
한편 제2 컴퓨터 장치 B(120B)도 클라우드 서버(150)으로부터 암호화된 데이터를 다운로딩 할 수 있다. 제2 컴퓨터 장치 B(120B)는 클라우드 서버(150)으로부터 암호화된 데이터 Edek(d) 및 암호화된 암호화키 Ek(dek)를 다운로딩한다(361). 제2 컴퓨터 장치 B(120B)는 자신이 보유한 그룹 키(k)로 암호화키 Ek(dek)를 dek로 복호하고, 암호화키 dek를 이용하여 데이터 Edek(d)를 d로 복호한다(362).
도 5는 그룹키를 갱신하는 과정(400)에 대한 절차 흐름도의 예이다.
제2 컴퓨터 장치 A(120A)가 암호화키(dek)로 암호화한 데이터 및 그룹 키로 암호화한 암호화키(dek)를 클라우드 서버(150)에 전달하는 과정은 도 4와 동일하다.
제1 컴퓨터 장치(110), 제2 컴퓨터 장치 A(120A) 및 제2 컴퓨터 장치 B(120B)는 동일한 암호화 그룹을 형성한다(411). 제2 컴퓨터 장치 A(120A)는 일정한 알고리즘을 사용하여 암호화키(dek)를 생성한다(421). 제2 컴퓨터 장치 A(120A)는 암호화키(dek)를 이용하여 데이터(d)를 암호화하고, 그룹 키(k)를 이용하여 암호화키(dek)를 암호화한다(422). 제2 컴퓨터 장치 A(120A)는 암호화한 데이터(d) 및 암호화한 데이터키(dek)를 클라우드 서버(150)에 업로딩한다(423). 클라우드 서버(150)은 수신한 암호화된 데이터 Edek(d) 및 암호화된 암호화키 Ek(dek)를 저장한다(424). 이 과정에서 사용한 그룹 키(k)를 제1 그룹 키라고 명명한다.
사용자가 제2 컴퓨터 장치(120)를 분실하거나, 제2 컴퓨터 장치의 저장 매체에서 그룹 키가 삭제된 경우에는 그룹 키를 다시 공유해야 한다. 종래 그룹 키(k)를 재차 전달받을 수도 있겠지만, 보안성을 높이기 위해서는 새로운 그룹 키(k')를 공유하는 것이 바람직하다. 새로운 제2 컴퓨터 장치 또는 종래의 제2 컴퓨터 장치가 제1 컴퓨터 장치에 그룹 키 갱신을 요청할 수 있다. 도 5에서는 제1 컴퓨터 장치 A(120A)가 제1 컴퓨터 장치에 그룹 키 갱신을 요청하였다(431).
제1 컴퓨터 장치(110)는 동일한 암호화 그룹에 속한 제2 컴퓨터 장치(120A 및 120B)와 다시 새로운 그룹 키를 공유한다(441). 이 과정은 도 3에서 설명한 과정과 동일하다. 새로운 그룹 키(k')를 제2 그룹 키라고 명명한다.
제2 컴퓨터 장치(120) 중 적어도 하나가 새로운 그룹 키(k')로 암호화키를 다시 암호화해야 한다. 도 5에서는 제2 컴퓨터 장치 B(120B)가 해당 과정을 담당하는 것으로 도시하였다. 제2 컴퓨터 장치 B(120B)는 클라우드 서버(150)로부터 종래 암호화된 암호화키(Ek(dek))를 다운로딩한다(451). 제2 컴퓨터 장치 B(120B)는 종래 제1 그룹 키(k)를 이용하여 다운로딩한 암호화키(Ek(dek))를 dek로 복호한다. 이후 제2 컴퓨터 장치 B(120B)는 암호화키 dek를 새로운 제2 그룹 키(k)로 암호화(Ek'(dek))한다(452). 이를 위해 제2 컴퓨터 장치 B(120B)는 종래 제1 그룹 키(k)를 알고 있어야 한다. 만약 제2 컴퓨터 장치 B(120B)가 제1 그룹 키(k)를 분실한 경우라면 제1 컴퓨터 장치는 사전에 제1 그룹 키(k)를 제2 컴퓨터 장치 B(120B)에 전달해야 할 것이다.
제2 컴퓨터 장치 B(120B)는 제2 그룹 키(k)로 암호화한 암호화키 Ek'(dek)를 클라우드 서버(150)에 전송한다(453). 클라우드 서버(150)는 수신한 새로운 암호화키 Ek'(dek)를 저장한다(454).
본 실시예 및 본 명세서에 첨부된 도면은 전술한 기술에 포함되는 기술적 사상의 일부를 명확하게 나타내고 있는 것에 불과하며, 전술한 기술의 명세서 및 도면에 포함된 기술적 사상의 범위 내에서 당업자가 용이하게 유추할 수 있는 변형 예와 구체적인 실시예는 모두 전술한 기술의 권리범위에 포함되는 것이 자명하다고 할 것이다.
100 : 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템
110 : 제1 컴퓨터 장치 120 : 제2 컴퓨터 장치
120A, 120B : 제2 컴퓨터 장치 121 : 통신 모듈
122 : 중앙 처리 장치 123 : 저장 장치
124 : 인터페이스 장치 125 : 디스플레이 장치
150 : 클라우드 서버

Claims (12)

  1. 사용자의 제1 컴퓨터 장치가 네트워크를 통해 상기 사용자의 적어도 하나의 제2 컴퓨터 장치에 암호화된 그룹 키를 전송하는 단계;
    상기 적어도 하나의 제2 컴퓨터 장치 중 하나인 암호화 컴퓨터 장치가 데이터 암호화키를 생성하는 단계;
    상기 암호화 컴퓨터 장치가 상기 데이터 암호화키를 사용하여 데이터를 암호화하고, 공유키로 복호한 상기 그룹 키를 사용하여 상기 암호화키를 암호화하는 단계; 및
    상기 암호화 컴퓨터 장치가 네트워크를 통해 클라우드 서버에 암호화된 상기 데이터 및 암호화된 상기 암호화 키를 전송하는 단계를 포함하되,
    상기 제2 컴퓨터 장치는 공유키를 생성하고, 상기 제1 컴퓨터 장치에 상기 공유키를 사전에 전송하고, 상기 제1 컴퓨터 장치는 상기 공유키를 사용하여 상기 그룹 키를 암호화하는 클라우드 서비스를 위한 암호화 방법.
  2. 제1항에 있어서,
    상기 제1 컴퓨터 장치는 상기 그룹 키 전송 및 상기 암호화키 생성을 위한 애플리케이션을 설치한 컴퓨터 장치이고, 상기 제2 컴퓨터 장치는 상기 그룹 키 전송 및 상기 암호화를 위한 애플리케이션을 설치한 컴퓨터 장치인 클라우드 서비스를 위한 암호화 방법.
  3. 제1항에 있어서,
    상기 그룹 키를 전송하는 단계는
    상기 제1 컴퓨터 장치와 상기 제2 컴퓨터 장치가 암호화를 위한 통신 채널을 인증하는 단계;
    상기 제1 컴퓨터 장치와 상기 제2 컴퓨터 장치가 공통된 세션키를 생성하는 단계;
    상기 제2 컴퓨터 장치가 대응되는 공유키 및 개인키를 생성하는 단계;
    상기 제2 컴퓨터 장치가 상기 세션 키를 이용하여 암호화한 상기 공유키를 상기 제1 컴퓨터 장치에 전송하는 단계; 및
    상기 제1 컴퓨터 장치가 상기 세션 키를 이용하여 상기 공유키를 복호하고, 상기 공유키로 암호화한 상기 그룹 키를 상기 제2 컴퓨터 장치에 전송하는 단계를 포함하는 클라우드 서비스를 위한 암호화 방법.
  4. 제3항에 있어서,
    상기 인증하는 단계는
    상기 적어도 하나의 제2 컴퓨터 장치가 상기 제1 컴퓨터 장치에 상기 제2 컴퓨터 장치의 식별자가 포함된 그룹 참여 메시지를 전송하는 단계;
    상기 제1 컴퓨터 장치가 상기 제2 컴퓨터 장치의 식별자 정보와 임의로 생성된 핀(PIN) 코드를 자신의 디스플레이 장치에 출력하는 단계; 및
    상기 제2 컴퓨터 장치가 상기 핀 코드와 동일한 코드를 인터페이스 장치를 통해 입력받는 단계를 포함하는 클라우드 서비스를 위한 암호화 방법.
  5. 제4항에 있어서,
    상기 세션 키는 상기 핀 코드를 이용하여 생성하는 클라우드 서비스를 위한 암호화 방법.
  6. 제3항에 있어서,
    상기 암호화하는 단계에서
    상기 제2 컴퓨터장치가 상기 개인키를 사용하여 상기 그룹 키를 복호하고, 복호된 상기 그룹 키를 사용하여 상기 암호화키를 암호화하는 클라우드 서비스를 위한 암호화 방법.
  7. 제1항에 있어서,
    상기 클라우드 서버가 암호화된 상기 데이터 및 암호화된 상기 암호화 키를 상기 암호화 컴퓨터 장치가 아닌 다른 제2 컴퓨터 장치에 전송하는 단계; 및
    상기 다른 제2 컴퓨터 장치가 그룹 키를 사용하여 상기 암호화키를 복호하고,복호한 상기 암호화 키를 사용하여 상기 데이터를 복호하는 단계를 더 포함하는 클라우드 서비스를 위한 암호화 방법.
  8. 제1항에 있어서,
    상기 제1 컴퓨터 장치가 상기 적어도 하나의 제2 컴퓨터 장치에 새로운 그룹 키를 전송하는 단계;
    상기 적어도 하나의 제2 컴퓨터 장치가 암호화된 상기 암호화키를 수신하고, 상기 그룹 키를 사용하여 상기 암호화키를 복호하는 단계; 및
    상기 적어도 하나의 제2 컴퓨터 장치가 상기 새로운 그룹 키를 사용하여 암호화된 상기 암호화키를 상기 클라우드 서버에 전송하는 단계를 포함하는 클라우드 서비스를 위한 암호화 방법.
  9. 동일한 사용자가 사용하는 제2 사용자 장치와 네트워크를 통해 통신 채널을 형성하고, 상기 제2 사용자 장치와 공유하는 공유키를 사용하여 암호화된 제1 그룹 키를 상기 제2 사용자 장치에 전송하는 제1 사용자 장치;
    데이터 암호화를 위한 데이터 암호화키를 생성하고, 상기 데이터 암호화키를 이용하여 데이터를 암호화하고, 상기 공유키를 사용하여 복호한 상기 제1 그룹 키를 사용하여 상기 암호화키를 암호화하는 제2 사용자 장치; 및
    암호화된 상기 데이터 및 암호화된 상기 암호화키를 수신하여 저장하는 클라우드 서버를 포함하는 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템.
  10. 제9항에 있어서,
    상기 제2 사용자 장치는 상기 클라우드 서버로부터 암호화된 상기 데이터 및 암호화된 상기 암호화 키를 수신하고, 상기 암호화 키를 상기 제1 그룹 키로 복호하고, 상기 복호된 암호화 키를 사용하여 수신한 상기 데이터를 복호하는 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템.
  11. 제9항에 있어서,
    사전에 상기 제1 사용자 장치로부터 상기 제1 그룹 키를 수신하고, 상기 클라우드 서버로부터 암호화된 상기 데이터 및 암호화된 상기 암호화 키를 수신하고, 상기 암호화 키를 상기 제1 그룹 키로 복호하고, 상기 복호된 암호화 키를 사용하여 수신한 상기 데이터를 복호하는 제3 사용자 장치를 더 포함하는 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템.
  12. 제9항에 있어서,
    상기 제1 사용자 장치가 상기 제2 사용자 장치에 제2 그룹 키를 전송하고, 상기 제2 사용자 장치는 상기 클라우드 서버로부터 암호화된 암호화키를 수신하고, 상기 제1 그룹 키로 암호화키를 복호하고, 상기 제2 그룹 키로 암호화된 상기 암호화키를 상기 클라우드 서버에 전송하는 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템.
KR1020150061034A 2015-04-30 2015-04-30 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템 KR101657893B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150061034A KR101657893B1 (ko) 2015-04-30 2015-04-30 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150061034A KR101657893B1 (ko) 2015-04-30 2015-04-30 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템

Publications (1)

Publication Number Publication Date
KR101657893B1 true KR101657893B1 (ko) 2016-09-19

Family

ID=57102812

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150061034A KR101657893B1 (ko) 2015-04-30 2015-04-30 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템

Country Status (1)

Country Link
KR (1) KR101657893B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038890A (ko) * 2016-10-07 2018-04-17 경일대학교산학협력단 스마트 교육 시스템에서 교육 콘텐츠 저작권을 보호하기 위한 보안 및 인증 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120054839A (ko) * 2010-11-22 2012-05-31 삼성전자주식회사 계층 구조 기반의 데이터 접근 제어 장치 및 방법
KR101374594B1 (ko) 2013-03-12 2014-03-17 (주)케이사인 클라우드 스토리지를 위한 보안 시스템 및 그 운용 방법
KR20140050477A (ko) * 2012-10-19 2014-04-29 경희대학교 산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
KR20140051702A (ko) * 2012-10-23 2014-05-02 주식회사 한국결제인증 Pin 인증을 이용하는 휴대폰 안심 결제 시스템 및 휴대폰 안심 결제 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20120054839A (ko) * 2010-11-22 2012-05-31 삼성전자주식회사 계층 구조 기반의 데이터 접근 제어 장치 및 방법
KR20140050477A (ko) * 2012-10-19 2014-04-29 경희대학교 산학협력단 검색 가능한 암호화 방법 및 암호화된 데이터 검색방법
KR20140051702A (ko) * 2012-10-23 2014-05-02 주식회사 한국결제인증 Pin 인증을 이용하는 휴대폰 안심 결제 시스템 및 휴대폰 안심 결제 방법
KR101374594B1 (ko) 2013-03-12 2014-03-17 (주)케이사인 클라우드 스토리지를 위한 보안 시스템 및 그 운용 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Kamara, S., Lauter, K.: Cryptographic Cloud Storage. In: Proceedings of the 14th International Conference on Financial Cryptograpy and Data Security. (2010) 136-149page

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20180038890A (ko) * 2016-10-07 2018-04-17 경일대학교산학협력단 스마트 교육 시스템에서 교육 콘텐츠 저작권을 보호하기 위한 보안 및 인증 장치, 이를 위한 방법 및 이 방법이 기록된 컴퓨터 판독 가능한 기록매체

Similar Documents

Publication Publication Date Title
WO2022206349A1 (zh) 一种信息验证的方法、相关装置、设备以及存储介质
US20200162440A1 (en) Digital Security Bubble
WO2018014723A1 (zh) 密钥管理方法、装置、设备及系统
US20190089684A1 (en) Method and system for encrypted communications
US9100497B2 (en) Method, system and apparatus for managing persona-based notifications at a communication device
US10382197B1 (en) Key management and dynamic perfect forward secrecy
US9078127B2 (en) Secure Communication Method
JP2021503204A (ja) 量子鍵配送及びデータ処理の方法及びシステム
JP7086327B2 (ja) アプリケーション間でユーザ情報を安全に転送すること
US9805212B1 (en) Secure file transfer
CN105993146A (zh) 不访问私钥而使用公钥密码的安全会话能力
US11736304B2 (en) Secure authentication of remote equipment
CN102739643A (zh) 许可访问网络
CN109104273B (zh) 报文处理方法以及接收端服务器
CN105007254A (zh) 数据传输方法和系统、终端
GB2581096A (en) Altering cipher and key within an established session
JP2017118312A (ja) 無線通信システム、サーバ、端末、無線通信方法、および、プログラム
US10666693B1 (en) Encrypting multiple party calls
KR101657893B1 (ko) 클라우드 서비스를 위한 암호화 방법 및 사용자 장치에 기반한 암호화 방법을 제공하는 클라우드 시스템
CN111934995A (zh) 一种物联网网关系统
CN112751664A (zh) 一种物联网组网方法、装置和计算机可读存储介质
CN111526128B (zh) 一种加密管理的方法和装置
JP2008123021A (ja) デジタル情報共有システム、デジタル情報共有サーバ、端末装置及びデジタル情報共有方法
CN118157943A (zh) 基于文件访问系统的访问方法、装置、设备和介质
CN117176374A (zh) 一种设备认证方法、装置、系统及电子设备

Legal Events

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