KR101851719B1 - 암호화키 분배 시스템 및 방법 - Google Patents

암호화키 분배 시스템 및 방법 Download PDF

Info

Publication number
KR101851719B1
KR101851719B1 KR1020170101816A KR20170101816A KR101851719B1 KR 101851719 B1 KR101851719 B1 KR 101851719B1 KR 1020170101816 A KR1020170101816 A KR 1020170101816A KR 20170101816 A KR20170101816 A KR 20170101816A KR 101851719 B1 KR101851719 B1 KR 101851719B1
Authority
KR
South Korea
Prior art keywords
seed
encryption
user
account
key
Prior art date
Application number
KR1020170101816A
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 KR1020170101816A priority Critical patent/KR101851719B1/ko
Application granted granted Critical
Publication of KR101851719B1 publication Critical patent/KR101851719B1/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)
    • 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/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명은 랜덤하게 A 바이트의 기본 씨드와 B 바이트의 제1 BSN를 생성하는 기본씨드 생성부, 키분배 서버로 접속할 수 있는 제1 계정을 생성하는 계정 생성부, 상기 제1 계정에 대응하는 B 바이트의 제1 ASN을 상기 제1 BSN을 이용하여 생성하며, 상기 제1 계정에 대응하는 A 바이트의 제1 계정 씨드를 제1 기본 씨드와 제1 ASN를 설정된 제1 키유도함수에 적용하여 생성하는 계정씨드 생성부, 상기 제1 계정으로 접속한 사용자 단말의 고유정보와 상기 제1 ASN을 이용하여 B 바이트의 제1 CSN을 생성하고, 상기 제1 계정 씨드와 상기 제1 CSN을 제2 키유도함수에 적용하여 A 바이트의 제1 사용자 씨드를 생성하여 해당 사용자 단말에 제공하는 사용자씨드 생성부, 그리고 상기 기본씨드 생성부에 의해 생성된 기본 씨드를 저장하는 저장부를 포함하여 구성된 키분배 서버를 포함하며, 상기 A 바이트는 상기 B 바이트보다 큰 암호화키 분배 시스템 및 방법에 관한 것이다.

Description

암호화키 분배 시스템 및 방법{SYSTEM AND METHOD FOR DISTRIBUTING TO CLIENT TERMINALS THE ENCRYPTION KEY}
본 발명은 암호화키 분배 시스템 및 방법에 관한 것으로, 암호화키 생성 또는 암호화키 생성시에 이용되는 암호화 씨드를 생성하는 암호화키 분배 시스템 및 방법에 관한 것이다.
일반적으로 암호키를 제공하는 암호화키 분배 시스템은 다수의 사용자 단말에게 암호화키를 제공하여 각 사용자 단말에서 공통 암호화키를 사용하여 암호문을 생성하게 한다. 그런데 이러한 공통 암호화키를 다수의 사용자 단말이 이용하는 경우에는 하나의 사용자 단말에서 공통 암호화키가 노출이 되면, 다른 사용자 단말에서 생성한 암호문이 악의자에게 복호화되는 문제가 발생된다.
이러한 문제를 해결하기 위하여 일부 암호화키 분배 시스템은 다수의 사용자 단말에게 서로 다른 암호화키를 제공하여 하나의 사용자 단말에서 암호화키가 노출되더라도 다른 사용자 단말은 피해를 입지 않게 하고 있다. 그러나 서로 다른 암호화키를 제공하는 방법을 이용하는 경우에는 시스템 자체에서 각 사용자 단말에서 암호화한 암호문을 복호화하는 할 때 모든 사용자 단말에 제공한 암호화키를 별도로 저장하고 있어야 하고 복호화할 사용자 단말을 식별하고 해당 암호화키를 찾는 등의 번거롭고 시간이 걸리는 작업을 요한다.
본 발명이 해결하고자 하는 과제는 각 사용자 단말이 사용하는 암호화키가 서로 다르도록 하면서도 각 사용자 단말의 암호화키를 별도로 저장하지 않아도 시스템 자체에서 각 사용자 단말에서 암호화한 암호문을 복호화할 수 있게 하는 암호화키 분배 시스템 및 방법을 제공하는 것이다.
또한 본 발명이 해결하고자 하는 과제는 한 명의 사용자 단말이 사용하는 암호화키가 노출되더라도 다른 사용자 단말의 암호화키를 알 수 없게 하는 암호화키 분배 시스템 및 방법을 제공하는 것이다.
또한 본 발명이 해결하고자 하는 과제는 종래에 비해 보다 높은 보안성을 가지는 암호화키가 사용자 단말에게 제공되도록 하는 암호화키 분배 시스템 및 방법을 제공하는 것이다.
상기 과제 이외에도 구체적으로 언급되지 않은 다른 과제를 달성하는 데 본 발명에 따른 실시 예가 사용될 수 있다.
상기 과제를 해결하기 위한 본 발명의 실시 예에 따르면 암호화키 분배 시스템을 제공한다. 암호화키 분배 시스템은 랜덤하게 A 바이트의 기본 씨드와 B 바이트의 제1 BSN를 생성하는 기본씨드 생성부, 키분배 서버로 접속할 수 있는 제1 계정을 생성하는 계정 생성부, 상기 제1 계정에 대응하는 B 바이트의 제1 ASN을 상기 제1 BSN을 이용하여 생성하며, 상기 제1 계정에 대응하는 A 바이트의 제1 계정 씨드를 제1 기본 씨드와 제1 ASN를 설정된 제1 키유도함수에 적용하여 생성하는 계정씨드 생성부, 상기 제1 계정으로 접속한 사용자 단말의 고유정보와 상기 제1 ASN을 이용하여 B 바이트의 제1 CSN을 생성하고, 상기 제1 계정 씨드와 상기 제1 CSN을 제2 키유도함수에 적용하여 A 바이트의 제1 사용자 씨드를 생성하여 해당 사용자 단말에 제공하는 사용자씨드 생성부, 그리고 상기 기본씨드 생성부에 의해 생성된 기본 씨드를 저장하는 저장부를 포함하여 구성된 키분배 서버를 포함하며, 상기 A 바이트는 상기 B 바이트보다 크다.
본 발명의 실시 예에 따르면 암호화키 분배 시스템은 랜덤하게 A 바이트의 정책 씨드를 생성하고 저장하며 생성한 정책 씨드를 상기 제1 사용자 씨드와 함께 해당 사용자 단말에 제공하는 정책씨드 생성부를 더 포함할 수 있다.
본 발명의 실시 예에 따르면 암호화키 분배 시스템은 상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 상기 제1 사용자 씨드를 수신하는 키요청부, 그리고 상기 키요청부에 의해 수신한 상기 제1 사용자 씨드를 이용하여 암호화를 수행하는 암호화부를 포함하는 사용자 단말을 더 포함할 수 있다.
또는, 본 발명의 실시 예에 따르면 암호화키 분배 시스템은 상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 암호화 씨드를 수신하는 키요청부, 상기 암호화 씨드를 이용하여 암호화키를 생성하는 암호화키 생성부, 그리고 상기 암호화키를 이용하여 암호화를 수행하는 암호화부를 포함하는 사용자 단말을 더 포함할 수 있으며, 이때 상기 암호화 씨드는 상기 제1 사용자 씨드를 포함하거나 상기 제1 사용자 씨드 및 상기 정책 씨드를 포함한다.
상기에서 암호화키 생성부는 C 바이트 Salt를 이용하여 A 바이트의 랜덤 씨드를 생성하고, 상기 랜덤 씨드와 상기 암호화 씨드를 제3 키유도함수에 적용하여 상기 암호화키를 생성한다.
상기 암호화부는 파일 또는 데이터를 암호화하면 상기 랜덤 씨드의 C 바이트 Salt를 이용하여 암호화 헤더를 생성한 후 상기 암호화 헤더를 암호화된 데이터에 결합시킨다.
상기 과제를 해결하기 위한 본 발명의 실시 예에 따르면 암호화키 분배 방법을 제공한다. 암호화키 분배 방법은 랜덤하게 A 바이트의 기본 씨드와 B 바이트의 제1 BSN를 생성하는 단계, 키분배 서버로 접속할 수 있는 제1 계정을 생성하는 단계, 상기 제1 계정에 대응하는 B 바이트의 제1 ASN을 상기 제1 BSN을 이용하여 생성하고, 상기 제1 계정에 대응하는 A 바이트의 제1 계정 씨드를 제1 기본 씨드와 제1 ASN를 설정된 제1 키유도함수에 적용하여 생성하는 단계, 상기 제1 계정으로 접속한 사용자 단말의 고유정보와 상기 제1 ASN을 이용하여 B 바이트의 제1 CSN을 생성하는 단계, 그리고 상기 제1 계정 씨드와 상기 제1 CSN을 제2 키유도함수에 적용하여 A 바이트의 제1 사용자 씨드를 생성하고 사용자 단말에 제공하는 단계를 포함하며, 상기 A 바이트는 상기 B 바이트보다 크다.
본 발명의 실시 예에 따르면 암호화키 분배 방법은 랜덤하게 A 바이트의 정책 씨드를 생성하고 저장하며 생성한 정책 씨드를 상기 제1 사용자 씨드와 함께 사용자 단말에 제공하는 단계를 더 포함할 수 있다.
또한, 본 발명의 실시 예에 따르면 암호화키 분배 방법은 상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 암호화 씨드를 요청하고 수신하는 단계, 상기 암호화 씨드를 이용하여 암호화키를 생성하는 단계, 그리고
상기 암호화키를 이용하여 암호화를 수행하는 단계를 더 포함할 수 있으며, 상기 암호화 씨드는 상기 제1 사용자 씨드를 포함하거나 상기 제1 사용자 씨드 및 상기 정책 씨드를 포함할 수 있다.
또한, 본 발명의 실시 예에 따르면 암호화키 분배 방법은 암호화키를 이용하여 암호화를 수행한 이후에, 상기 랜덤 씨드의 C 바이트 Salt를 이용하여 암호화 헤더를 생성한 후 상기 암호화 헤더를 암호화된 데이터에 결합시키는 단계를 더 포함할 수 있다.
본 발명의 실시 예에 따르면, 한 명의 사용자 단말이 사용하는 암호화키가 노출되더라도 다른 사용자 단말의 암호화키를 알 수 없게 한다.
또한, 본 발명의 실시 예에 따르면, 시스템 자체에서 각 사용자 단말에서 사용하는 암호화키를 별도로 저장하지 않아도 모든 사용자 단말에서 암호화한 암호문을 복호화할 수 있다. 또한, 본 발명의 실시 예에 따르면, 암호화키에 대한 업데이트가 용이하다.
도 1은 본 발명의 실시 예에 따른 암호화키 분배 시스템 및 방법의 개념도이다.
도 2는 본 발명의 실시 예에 따른 각 암호화 씨드를 생성하기 위해 사용되는 주요 성분들간의 관계를 보인 도면이다.
도 3은 본 발명의 실시 예에 따른 각 암호화 씨드를 생성하는 과정을 보인 도면이다.
도 4는 본 발명의 실시 예에 따른 암호화키 분배 시스템의 구성을 보인 도면이다.
도 5는 본 발명의 제1 실시 예에 따른 암호화키 분배 방법을 보인 순서도이다.
도 6은 본 발명의 제2 실시 예에 따른 암호화키 분배 방법을 보인 순서도이다.
도 7은 본 발명의 제1 실시 예에 따른 사용자 단말에서의 암호화 방법을 보인 순서도이다.
도 8은 본 발명의 제2 실시 예에 따른 사용자 단말에서의 암호화 방법을 보인 순서도이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시 예에 대해 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다. 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며 명세서 전체에서 동일 또는 유사한 구성요소에 대해서는 동일한 도면부호가 사용되었다. 또한, 널리 알려져 있는 공지기술의 경우 그 구체적인 설명은 생략한다.
본 명세서에서, 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다. 또한, 명세서에 기재된 "…부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현될 수 있다.
이하에서는 첨부한 도면을 참조로 하여 본 발명의 실시 예에 따른 암호화키 분배 시스템 및 방법을 설명한다.
도 1은 본 발명의 실시 예에 따른 암호화키 분배 시스템 및 방법의 개념도이다. 도 1을 참고하면, 본 발명의 실시 예에 따른 암호화키 분배 시스템 및 방법은 키분배 서버(100)에서 각 사용자 단말(A, B, C 등)에게 서로 다른 암호화키 또는 암호화 씨드(seed)를 제공한다. 여기서 암호화 씨드는 사용자 단말에서 암호화키를 생성할 때 이용되는 비밀값이다. 즉, 각 사용자 단말은 키분배 서버(100)에서 암호화키를 제공받거나, 암호화 씨드를 제공받아 암호화키를 생성한다.
여기서 본 발명의 실시 예에 따른 암호화키 분배 시스템은 키분배 서버(100)에서 암호화키를 생성하여 사용자 단말에 제공하는 경우이면 키분배 서버(100) 및 각종 데이터베이스로 구성된다. 이하에서는 각종 데이터베이스를 키분배 서버(100)의 구성인 것으로 하여 설명한다. 그리고 본 발명의 실시 예에 따른 암호화키 분배 시스템은 키분배 서버(100)에서 암호화 씨드를 사용자 단말에 제공하고 사용자 단말에서 암호화 씨드를 이용하여 암호화키를 생성하는 키분배 서버(100) 및 사용자 단말로 구성된다.
암호화키 또는 암호화 씨드는 사용자 단말에서 데이터를 암호화하고 복호화할 수 있도록 이용되지만, 암호화키 또는 암호화 씨드 내부의 모든 정보가 노출되지 않도록 처리된다. 이에 따라 적어도 하나의 사용자 단말에서 암호화키가 노출되더라도 다른 사용자 단말은 영향을 받지 않게 된다.
또한, 키분배 서버(100)는 암호화키를 생성하는 복수의 암호화 씨드 중 전체 또는 일부가 키분배 서버(100)에 저장되어 있고, 암호화 씨드를 유도하는 정보를 가지고 있기 때문에, 각 사용자 단말(A, B, C 등)에 의해 암호화된 암호문을 모두 복호화할 수 있다.
이하에서는 이러한 개념을 달성하기 위한 복수의 암호화 씨드를 생성하는 과정을 도 2 및 도 3을 참조로 하여 설명한다.
우선 복수의 암호화 씨드 각각을 생성하기 위해 사용되는 주요 성분을 설명한다. 도 2는 본 발명의 실시 예에 따른 각 암호화 씨드를 생성하기 위해 사용되는 주요 성분들간의 관계를 보인 도면이다.
복수의 암호화 씨드 즉, 기본 씨드, 계정 씨드 및 클라이언트 씨드를 생성하기 위해 사용되는 주요 성분은 BSN, ASN 및 CSN이다.
BSN은 랜덤하게 생성된 제1 임의값으로 만들어진다. 제1 임의값은 고유의 일련번호로서, 예컨대, BSN이 8바이트이면, BSN은 8바이트 중 1바이트 또는 N바이트로 구성되고, 나머지는 FF 패딩된다.
ASN은 키분배 서버(100)로 접속하기 위한 접속계정에 대응되어 생성된다. 즉, ASN은 접속계정이 10개가 생성되면 각 접속계정에 대응하여 10개가 생성된다. ASN은 BSN과 동일한 바이트로 구성되며, 랜덤하게 생성된 제2 임의값과 BSN의 제1 임의값이 포함된다. 제2 임의값은 제1 임의값과 마찬가지로 고유의 일련번호이다. 예컨대, ASN이 8바이트이면, ASN은 제1 임의값과 1바이트 또는 K바이트로 구성된 제2 임의값으로 구성되고, 나머지는 FF 패딩된다. 여기서 K바이트는 8바이트보다 작은 바이트이고, (N + K)바이트도 8바이트보다 작은 바이트이다.
CSN은 BSN 및 ASN과 동일한 바이트로 구성되며, J바이트의 단말기 고유값과 BSN의 제1 임의값 및 ASN의 제2 임의값으로 구성된다. 단말기 고유값은 해당 사용자 단말기를 식별할 수 있는 고유값이거나 해당 사용자 단말의 MAC(Media Access Control) 주소이거나, 사용자 단말의 식별정보(예; MAC 주소, 운영체제 정보 등)을 이용하여 생성한 값이다. CSN을 예를 들면, CSN이 8바이트이면, CSN은 제1 임의값과 제2 임의값 및 J바이트의 단말기 고유값으로 구성되며, 이에 따라 제1 임의값이 N바이트이고, 제2 임의값이 K바이트이면, (N+K+J)바이트는 8바이트이다.
BSN, ASN 및 CSN 간의 관계를 구체적인 예를 들어 설명한다. BSN은 제1 임의값이 1바이트의 “A1”이면 (A1 FF FF FF FF FF FF FF)라는 8바이트값으로 표현된다. 그리고 ASN은 제2 임의값이 1바이트의 “03”이면 (A1 03 FF FF FF FF FF FF)라는 8바이트값으로 표현된다. CSN은 단말기 고유값이 MAC 주소로서 “12 3A 8F 40 AC F0”이면 (A1 03 12 3A 8F 40 AC F0)라는 8바이트값으로 표현된다.
결국, 도 2에 도시된 바와 같이 제1 BSN은 다수의 계정에 대응하여 생성된 적어도 하나의 ASN 생성시에 이용되고, 각 ASN은 해당 계정으로 키분배 서버(100)에 접속한 적어도 하나의 사용자 단말 등에 제공하는 CSN 생성시에 이용된다. 따라서 모든 사용자 단말기는 서로 다른 CSN을 이용함에 따라 서로 다른 암호화키를 이용하게 된다.
도 3은 본 발명의 실시 예에 따른 각 암호화 씨드를 생성하는 과정을 보인 도면이다. 도 3을 참고하면, 각 암호화 씨드 즉, 기본 씨드, 계정 씨드 및 사용자 씨드는 동일한 바이트로 구성되고, BSN, ASN 및 CSN보다 큰 바이트로 구성된다. 예컨대, BSN, ASN 및 CSN가 8바이트이면 이보다 큰 바이트, 예컨대, 16바이트 또는 32바이트 등으로 구성된다.
기본 씨드는 순수 랜덤값으로 생성되고 저장된다. 각 계정 씨드는 설정된 제1 키 유도함수(f1)에 해당 계정에 대응된 ASN과, 기본 씨드를 사용하여 생성된다. 일 예로, 제1 계정 씨드는 제1 기본 씨드와 제1 ASN을 제1 키 유도함수(f1)에 대입하여 생성되고, 제2 계정 씨드는 제1 기본 씨드와 제2 ASN을 제1 키 유도함수(f1)에 대입하여 생성된다. 그리고 제3 계정 씨드는 제2 기본 씨드와 제3 ASN을 제1 키 유도함수(f1)에 대입하여 생성된다. 계정 씨드는 사용자 씨드를 유도하기 위한 중간값으로 생성되므로, 따로 저장하지 않아도 무방하다.
각 사용자 씨드는 설정된 제2 키 유도함수(f2)에 사용자가 접속한 계정에 대응된 해당 계정 씨드, 해당 사용자 단말기의 고유값을 이용하여 생성된 해당 CSN을 사용하여 생성된다. 일 예로, 제1-1 사용자 씨드는 제1 계정 씨드와 제1 CSN을 제2 키 유도함수(f2)에 대입하여 생성되고, 제1-2 사용자 씨드는 제1 계정 씨드와 제2 CSN을 제2 키 유도함수(f2)에 대입하여 생성된다. 그리고 제2-1 사용자 씨드는 제2 계정 씨드와 제3 CSN을 제2 키 유도함수(f2)에 대입하여 생성되고, 제3-1 사용자 씨드는 제3 계정 씨드와 제5 CSN을 제2 키 유도함수(f2)에 대입하여 생성된다. 이러한 사용자 씨드는 암호화키로 사용자 단말에게 제공되거나, 암호화 씨드로 사용자 단말에게 제공된다.
이하에서는 도 4를 참조로 하여 본 발명의 실시 예에 따른 암호화키 분배 시스템을 설명한다. 도 4는 본 발명의 실시 예에 따른 암호화키 분배 시스템의 구성을 보인 도면이다.
도 4를 참고하면, 본 발명의 실시 예에 따른 암호화키 분배 시스템은 키분배 서버(100)를 포함하여 구성되거나, 사용자 단말기(200)를 더 포함하여 구성될 수 있다. 사용자 단말(200)은 도 1에 도시된 제1 내지 제3 사용자 단말(A, B, C)을 포함한 모든 사용자 단말을 통칭한 것이다.
키분배 서버(100)는 통신부(110), 기본씨드 생성부(120), 계정 생성부(130), 계정씨드 생성부(140), 사용자씨드 생성부(150) 및 저장부(160)를 포함한다. 그리고 경우에 따라 키분배 서버(100)는 정책씨드 생성부(170)를 더 포함할 수 있다.
통신부(110)는 관리자 단말 또는 사용자 단말과의 통신을 담당한다.
기본씨드 생성부(120)는 관리자의 요청에 따라 제1 기본 씨드를 생성한 후 저장부(160)에 저장한다. 계정 생성부(130)는 관리자의 요청에 따라 키분배 서버(100)로 접속할 수 있는 제1 계정을 생성한다.
계정씨드 생성부(140)는 계정 생성부(130)에서 새로운 제1 계정을 생성하면 복수의 BSN 중 제1 BSN을 이용하여 제1 계정에 대응하는 제1 ASN을 생성하고, 사용자 단말이 제1 계정을 이용하여 키분배 서버(100)에 접속한 후 사용자 씨드를 요청하면 제1 기본 씨드와 제1 ASN를 설정된 제1 키유도함수(f1)에 적용하여 제1 계정 씨드를 생성하고 생성한 제1 계정 씨드를 사용자씨드 생성부(150)에 제공한다.
사용자씨드 생성부(150)는 사용자 단말이 제1 계정을 통해 접속하여 사용자 씨드를 요청하면, 계정씨드 생성부(140)에 계정 씨드를 요청하여 제1 계정 씨드를 수신한다. 그리고 사용자씨드 생성부(150)는 사용자 씨드 요청 신호에 포함된 사용자 단말의 고유정보, 예컨대 MAC 어드레스를 파악하고, 파악한 MAC 어드레스와 제1 BSN 및 제1 ASN으로 제1 CSN을 생성하며, 생성한 제1 CSN과 제1 계정 씨드를 제2 키유도함수(f2)에 적용하여 사용자 씨드 및 CSN을 생성한 후 사용자 단말에 제공한다. 사용자씨드 생성부(150)는 사용자 씨드를 생성하고 나면 사용자 씨드 생성시에 이용한 제1 계정 씨드를 삭제한다.
저장부(160)는 기본씨드 생성부(120)에 의해 생성된 각각의 기본 씨드를 저장한다.
정책씨드 생성부(170)는 관리자의 요청에 따라 랜덤값의 정책 씨드를 생성하며, 생성한 정책 씨드를 저장부(160)에 저장한다. 여기서 정책 씨드는 모든 사용자 단말이 공유하는 비밀값으로 관리자가 암호화키를 업데이트하기 위해 이용된다. 이러한 정책 씨드는 기본 씨드, 계정 씨드 및 사용자 씨드와 동일한 크기의 바이트로 구성되며, 암호화를 요청한 모든 사용자 단말에게 제공된다. 즉, 사용자씨드 생성부(150)는 암호화키 생성시에 정책 씨드를 이용하는 경우이면, 사용자 씨드와 정책 씨드 및 CSN을 사용자 단말에게 제공한다.
다음으로, 사용자 단말은 컴퓨터나 핸드폰 등과 같이 통신 기능을 가진 전자장치로서, 사용자 입력부(210), 키요청부(220), 암호화키 생성부(230), 암호화부(240) 및 복호화부(250)를 포함한다.
사용자 입력부(210)는 버튼이나 터치패드 등을 구성되고 사용자 입력에 대응하는 신호를 출력한다.
키요청부(220)는 사용자 입력부(210)를 통해 수신된 사용자 씨드 요청에 대응하여 사용자 단말의 고유정보를 파악하고, 파악한 고유정보를 포함하는 사용자 씨드 요청 신호를 키분배 서버(100)에 제공하고 키분배 서버(100)로부터 사용자 씨드 또는 사용자 씨드 및 정책 씨드를 수신한다.
암호화키 생성부(230)는 키분배 서버(100)에서 암호화키를 생성하여 사용자 단말에 제공하는 경우이면 생략이 가능하다. 여기서 키분배 서버(100)에서 암호화키를 생성한다는 것은 사용자 단말에게 제공한 사용자 씨드 자체가 암호화키인 것을 의미한다.
키분배 서버(100)에서 암호화키를 생성하지 않는 경우이면, 암호화키 생성부(230)는 랜덤 씨드(Random Seed)를 생성하고 생성한 랜덤 씨드와 키요청부(220)에서 수신한 사용자 씨드 또는 사용자 씨드 및 정책 씨드를 제3 키유도함수에 적용하여 암호화키를 생성한다.
암호화부(240)는 사용자의 암호화 요청에 대응하여 사용자가 지정한 파일 또는 데이터에 대하여 암호화키 생성부(230)에 의해 생성한 암호화키로 암호화를 수행하고, 랜덤 씨드와 관련된 암호화 헤더(header)를 생성한 후 암호화된 데이터에 암호화 헤더를 연결한다.
복호화부(250)는 암호화부(240)에 의해 암호화된 암호문(암호화 헤더가 연결된 암호화 데이터)에 대하여 복호화를 수행한다.
이하에서는 암호화키 분배 시스템에서 수행되는 암호화키 분배 방법을 설명한다.
도 5는 본 발명의 제1 실시 예에 따른 암호화키 분배 방법을 보인 순서도로서, 정책 씨드를 이용하지 않는 경우에 대한 것이다. 이하에서는 BSN, ASN, CSN이 8바이트이고, 각 암호화 씨드(기본 씨드, 계정 씨드, 사용자 씨드 등)가 32바이트인 것을 일 예로 하였다.
도 5를 참고하면, 관리자는 관리자 단말을 통해 키분배 서버(100)에 접속한 후 키분배 서버(100)에게 기본 씨드 생성을 요청한다(S501).
이에, 키분배 서버(100)는 1바이트의 제1 임의값을 랜덤하게 생성한 후 1바이트의 제1 임의값 이외 나머지 바이트를 FF 패킹한 8바이트의 BSN을 생성하고(S502), 순수 랜덤값이 기본 씨드를 생성하며(S503), 생성한 기본 씨드를 저장부(160)에 저장한다(S504).
이러한 상태에서 관리자가 키분배 서버(100)에게 새로운 계정의 생성을 요청하면(S505), 키분배 서버(100)는 관리자의 요청에 따라 하나의 신규 계정을 생성하고(S506), 신규 계정에 대응하는 8바이트의 ASN을 BSN에 포함된 제1 임의값과 랜덤하게 생성한 1바이트의 제2 임의값을 이용하여 생성한다(S507).
사용자가 사용자 단말(200)을 이용하여 제1 계정을 통해 키분배 서버(100)에 접속한 후(S508), 사용자 씨드를 요청한다(S509).
이에 키분배 서버(100)는 제1 계정에 대응된 ASN을 파악하고(S510), ASN과 해당 ASN과 관련된 기본 씨드를 제1 키유도함수에 적용하여 32바이트의 계정 씨드를 생성한다(S511). 그런 다음 키분배 서버(100)는 사용자 단말(200)의 고유값과 제1 계정에 대응된 ASN의 제1 및 제2 임의값을 이용하여 8바이트의 CSN을 생성하고(S512), 생성한 CSN과 계정 씨드를 제2 키유도함수에 적용하여 32바이트의 사용자 씨드를 생성한다(S513).
사용자 씨드가 생성되면, 키분배 서버(100)는 해당 사용자 단말(200)에게 사용자 씨드를 제공한다(S514).
사용자 단말(200)은 키분배 서버(100)로부터 사용자 씨드를 수신하면 수신한 사용자 씨드를 암호화키로 사용하거나, 32바이트의 랜덤 씨드를 생성한 후 사용자 씨드와 랜덤 씨드를 이용하여 암호화키를 생성한다.
도 6은 본 발명의 제2 실시 예에 따른 암호화키 분배 방법을 보인 순서도로서, 정책 씨드를 이용하는 경우에 대한 것이다.
도 6을 참고하면, 관리자가 관리자 단말을 통해 키분배 서버(100)에 접속한 후 키분배 서버(100)에게 기본 씨드 생성을 요청하면(S601), 키분배 서버(100)는 BSN을 생성하고(S602), 기본 씨드를 생성하며(S603), 생성한 기본 씨드를 저장한다(S604).
이러한 상태에서 관리자가 키분배 서버(100)에게 새로운 계정의 생성을 요청하면(S605), 키분배 서버(100)는 관리자의 요청에 따라 하나의 신규 계정을 생성하고(S606), 신규 계정에 대응하는 ASN을 생성한다(S607).
관리자가 관리자 단말을 통해 키분배 서버(100)에 접속한 후 정책 씨드의 생성을 요청하면(S608), 키분배 서버(100)는 정책 씨드를 생성하고 저장한다(S609). 여기서 정책 씨드를 생성하는 과정은 계정을 생성한 이후에 한정되지 않으며, 사용자 단말에게 사용자 씨드를 제공하기 전이면 된다.
사용자가 사용자 단말(200)을 이용하여 제1 계정을 통해 키분배 서버(100)에 접속한 후 사용자 씨드를 요청하면(S610), 키분배 서버(100)는 제1 계정에 대응된 ASN을 파악하고(S610), ASN과 해당 ASN과 관련된 기본 씨드를 제1 키유도함수에 적용하여 계정 씨드를 생성한다(S611). 그런 다음 키분배 서버(100)는 사용자 단말(200)의 고유값과 제1 계정에 대응된 ASN의 제1 및 제2 임의값을 이용하여 CSN을 생성하고(S612), 생성한 CSN과 계정 씨드를 제2 키유도함수에 적용하여 사용자 씨드를 생성한다(S613).
사용자 씨드가 생성되면, 키분배 서버(100)는 해당 사용자 단말(200)에게 사용자 씨드와 정책 씨드를 제공한다(S614).
사용자 단말(200)은 키분배 서버(100)로부터 사용자 씨드와 정책 씨드를 수신하면 32바이트의 랜덤 씨드를 생성한 후 사용자 씨드와 정책 씨드 및 랜덤 씨드를 이용하여 암호화키를 생성한다.
도 7은 본 발명의 제1 실시 예에 따른 사용자 단말에서의 암호화 방법을 보인 순서도로서, 랜덤 씨드를 이용하여 암호화키를 생성하고 암호화하는 과정을 보인 도면이다.
키분배 서버(100)에서 사용자 단말(200)로 사용자 씨드를 제공하면(S701), 사용자 단말(200)은 키분배 서버(100)로부터 사용자 씨드를 수신한다(S702).
그런 다음 사용자 단말의 암호화키 생성부(230)는 예컨대 2바이트의 Salt를 생성하고(S703), 생성한 Salt에 대해 해쉬를 수행하여 기본 씨드, 계정 씨드, 사용자 씨드 및 랜덤 씨드와 동일한 크기의 바이트, 예컨대 32바이트로 확장된 랜덤 씨드를 생성한다(S704). 보다 구체적으로, 랜덤 씨드가 32바이트이면, 암호화키 생성부(230)는 랜덤하게 생성된 2바이트의 Salt를 생성하고 2바이트의 Salt 중 하위 3 비트를 숫자로 변환한 후 설정 횟수(예; 최대 8번, 최소 1번)만큼 SHA2 해쉬를 돌려 32바이트의 랜덤 값을 가진 랜덤 씨드를 생성한다.
그런 다음 암호화키 생성부(230)는 사용자 씨드, 정책 씨드 및 랜덤 씨드를 설정된 제3 키유도함수에 적용하여 암호화키를 생성한다(S705).
암호화키가 생성된 상태에서, 사용자가 임의의 파일 또는 데이터에 대해 암호화를 요청하면, 사용자 단말(200)의 암호화부(240)는 사용자의 암호화 요청에 대응하여 사용자가 지정한 파일 또는 데이터에 대하여 암호화키로 암호화를 수행하고(S706), 랜덤 씨드 생성시에 이용한 Salt가 포함된 암호화 헤더(header)를 생성한 후(S707), 암호화된 데이터에 암호화 헤더를 연결하여 암호문을 만든다(S708).
여기서 암호화 헤더는 CSN이 더 포함될 수 있으며, 암호화 헤더는 난독화(즉, 암호화)되어 암호화된 데이터에 결합된다. 이와 같이 암호화 헤더를 암호화하게 되면 암호화 헤더가 암호문인지 암호화 헤더인지를 제3자가 파악하지 못하게 된다.
한편, 사용자 단말(200)은 다른 파일 또는 데이터에 대한 암호화를 수행하는 경우에 기 생성한 암호화키를 이용하지 않고 전술한 S703 과정 내지 S708 과정을 반복하여 기 생성한 암호화키와 다른 암호화키로 암호화를 수행한다.
참고로, 복호화 과정을 설명하면, 복호화부(250)는 암호문에 대해 암호화 헤더와 암호화된 데이터를 분리하고, 헤더를 파싱하여 Salt값을 파악하며, 파악한 Salt값을 암호화키 생성부(230)와 동일한 방법으로 Salt값을 해쉬하여 RS를 생성한다. 그런 다음 복호화부(250)는 사용자 씨드, 정책 씨드 및 랜덤 씨드를 설정된 제3 키유도함수에 적용하여 암호화키를 생성하고 생성한 암호화키로 암호화된 데이터를 복호화한다.
도 8은 본 발명의 제2 실시 예에 따른 사용자 단말에서의 암호화 방법을 보인 순서도로서, 사용자 단말(200)이 키분배 서버(100)로부터 사용자 씨드와 정책 씨드를 수신하고, 사용자 씨드와 정책 씨드를 이용하여 암호화키를 생성하는 경우에 대한 것이다.
도 8에 도시된 바와 같이, 본 발명의 제2 실시 예는 전반적으로 제1 실시 예와 유사하다. 다만 본 발명의 제2 실시 예는 암호화키를 생성하는 과정(S805)에서 정책 씨드와 사용자 씨드 및 랜덤 씨드를 설정된 제3 키유도함수에 적용하여 암호화키를 생성하는 것이 제1 실시 예와 차이가 있다.
이상에서 본 발명의 실시에에 대하여 상세하게 설명하였으나, 본 발명의 권리범위가 이에 한정되는 것은 아니며 본 발명이 속하는 분야에서 통상의 지식을 가진 자가 여러 가지로 변형 및 개량한 형태 또한 본 발명의 권리범위에 속한다.
100 : 키 분배 서버 A, B, C, 200 : 제2 사용자 단말
110 : 통신부 120 : 기본씨드 생성부
130 : 계정 생성부 140 : 계정씨드 생성부
150 : 사용자씨드 생성부 160 : 저장부
170 : 정책 씨드 생성부 210 : 사용자 입력부
220 : 키요청부 230 : 암호화키 생성부
240 : 암호화부 250 : 복호화부

Claims (10)

  1. 랜덤하게 A 바이트의 제1 기본 씨드와 B 바이트의 제1 BSN를 생성하는 기본씨드 생성부,
    키분배 서버로 접속할 수 있는 제1 계정을 생성하는 계정 생성부,
    상기 제1 계정에 대응하는 B 바이트의 제1 ASN을 상기 제1 BSN을 이용하여 생성하며, 상기 제1 기본 씨드와 상기 제1 ASN를 제1 키유도함수에 적용하여 상기 제1 계정에 대응하는 A 바이트의 제1 계정 씨드를 생성하는 계정씨드 생성부,
    상기 제1 계정으로 접속한 사용자 단말의 고유정보와 상기 제1 ASN을 이용하여 B 바이트의 제1 CSN을 생성하고, 상기 제1 계정 씨드와 상기 제1 CSN을 제2 키유도함수에 적용하여 A 바이트의 제1 사용자 씨드를 생성하여 해당 사용자 단말에 제공하는 사용자씨드 생성부, 그리고
    상기 기본씨드 생성부에 의해 생성된 상기 제1 기본 씨드를 저장하는 저장부를 포함하여 구성된 키분배 서버를 포함하며,
    상기 A 바이트는 상기 B 바이트보다 큰 암호화키 분배 시스템.
  2. 제1항에서,
    랜덤하게 A 바이트의 정책 씨드를 생성하고 저장하며 생성한 정책 씨드를 상기 제1 사용자 씨드와 함께 해당 사용자 단말에 제공하는 정책씨드 생성부를 더 포함하는 암호화키 분배 시스템.
  3. 제1항에서,
    상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 상기 제1 사용자 씨드를 수신하는 키요청부, 그리고
    상기 키요청부에 의해 수신한 상기 제1 사용자 씨드를 이용하여 암호화를 수행하는 암호화부를 포함하는 사용자 단말을 더 포함하는 암호화키 분배 시스템.
  4. 제2항에서,
    상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 암호화 씨드를 수신하는 키요청부,
    상기 암호화 씨드를 이용하여 암호화키를 생성하는 암호화키 생성부, 그리고
    상기 암호화키를 이용하여 암호화를 수행하는 암호화부를 포함하는 사용자 단말을 더 포함하며,
    상기 암호화 씨드는 상기 제1 사용자 씨드를 포함하거나 상기 제1 사용자 씨드 및 상기 정책 씨드를 포함하는 암호화키 분배 시스템.
  5. 제4항에서,
    상기 암호화키 생성부는 C 바이트 Salt를 이용하여 A 바이트의 랜덤 씨드를 생성하고, 상기 랜덤 씨드와 상기 암호화 씨드를 제3 키유도함수에 적용하여 상기 암호화키를 생성하는 암호화키 분배 시스템.
  6. 제5항에서,
    상기 암호화부는 파일 또는 데이터를 암호화하면 상기 랜덤 씨드의 C 바이트 Salt를 이용하여 암호화 헤더를 생성한 후 상기 암호화 헤더를 암호화된 데이터에 결합시키는 암호화키 분배 시스템.
  7. 랜덤하게 A 바이트의 제1 기본 씨드와 B 바이트의 제1 BSN를 생성하는 단계,
    키분배 서버로 접속할 수 있는 제1 계정을 생성하는 단계,
    상기 제1 계정에 대응하는 B 바이트의 제1 ASN을 상기 제1 BSN을 이용하여 생성하고, 상기 제1 기본 씨드와 제1 ASN를 제1 키유도함수에 적용하여 상기 제1 계정에 대응하는 A 바이트의 제1 계정 씨드를 생성하는 단계,
    상기 제1 계정으로 접속한 사용자 단말의 고유정보와 상기 제1 ASN을 이용하여 B 바이트의 제1 CSN을 생성하는 단계, 그리고
    상기 제1 계정 씨드와 상기 제1 CSN을 제2 키유도함수에 적용하여 A 바이트의 제1 사용자 씨드를 생성하고 사용자 단말에 제공하는 단계를 포함하며,
    상기 A 바이트는 상기 B 바이트보다 큰 암호화키 분배 방법.
  8. 제7항에서,
    랜덤하게 A 바이트의 정책 씨드를 생성하고 저장하며 생성한 정책 씨드를 상기 제1 사용자 씨드와 함께 사용자 단말에 제공하는 단계를 더 포함하는 암호화키 분배 방법.
  9. 제8항에서,
    상기 키분배 서버에 접속하고 상기 사용자 단말의 고유정보를 제공하여 암호화 씨드를 요청하고 수신하는 단계,
    상기 암호화 씨드를 이용하여 암호화키를 생성하는 단계, 그리고
    상기 암호화키를 이용하여 암호화를 수행하는 단계를 더 포함하며,
    상기 암호화 씨드는 상기 제1 사용자 씨드를 포함하거나 상기 제1 사용자 씨드 및 상기 정책 씨드를 포함하는 암호화키 분배 방법.
  10. 제9항에서,
    상기 암호화키를 생성하는 단계는 C 바이트 Salt를 이용하여 A 바이트의 랜덤 씨드를 생성하고, 상기 랜덤 씨드와 상기 암호화 씨드를 제3 키유도함수에 적용하여 암호화키를 생성하는 암호화키 분배 방법.
KR1020170101816A 2017-08-10 2017-08-10 암호화키 분배 시스템 및 방법 KR101851719B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020170101816A KR101851719B1 (ko) 2017-08-10 2017-08-10 암호화키 분배 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170101816A KR101851719B1 (ko) 2017-08-10 2017-08-10 암호화키 분배 시스템 및 방법

Publications (1)

Publication Number Publication Date
KR101851719B1 true KR101851719B1 (ko) 2018-04-24

Family

ID=62084841

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170101816A KR101851719B1 (ko) 2017-08-10 2017-08-10 암호화키 분배 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR101851719B1 (ko)

Similar Documents

Publication Publication Date Title
RU2718689C2 (ru) Управление конфиденциальной связью
CN109144961B (zh) 授权文件共享方法及装置
US20190318356A1 (en) Offline storage system and method of use
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
EP3036664B1 (en) Enabling access to data
US9641328B1 (en) Generation of public-private key pairs
WO2020155812A1 (zh) 一种数据存储方法、装置及设备
CN111192050B (zh) 一种数字资产私钥存储提取方法及装置
JP6930053B2 (ja) 装置認証キーを利用したデータ暗号化方法およびシステム
JP7323004B2 (ja) データ抽出システム、データ抽出方法、登録装置及びプログラム
JP2005033778A (ja) 携帯式安全情報アクセスシステム及びその方法
US20220141203A1 (en) Secure storage and data exchange/sharing system using one time pads
CN112787822B (zh) 一种大属性集下的基于sm9的属性加密方法及系统
US10699021B2 (en) Method and a device for secure storage of at least one element of digital information, and system comprising such device
Ramachandran et al. Secure and efficient data forwarding in untrusted cloud environment
KR101790948B1 (ko) Drm 서비스 제공 장치 및 방법, drm 서비스를 이용한 콘텐츠 재생 장치 및 방법
US10050943B2 (en) Widely distributed parameterization
JP2017108237A (ja) システム、端末装置、制御方法、およびプログラム
CN116108410A (zh) 一种身份凭证生成方法及装置
KR101851719B1 (ko) 암호화키 분배 시스템 및 방법
JP2001111539A (ja) 暗号鍵生成装置および暗号鍵伝送方法
JPH09294120A (ja) 暗号化された共有データのアクセス制御方法及びシステム
US11843686B2 (en) Multi-party cryptographic systems and methods
CN106972928A (zh) 一种堡垒机私钥管理方法、装置及系统
CN112425117B (zh) 化名信任状的配置方法和装置

Legal Events

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