KR101936955B1 - 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 - Google Patents

디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 Download PDF

Info

Publication number
KR101936955B1
KR101936955B1 KR1020180074560A KR20180074560A KR101936955B1 KR 101936955 B1 KR101936955 B1 KR 101936955B1 KR 1020180074560 A KR1020180074560 A KR 1020180074560A KR 20180074560 A KR20180074560 A KR 20180074560A KR 101936955 B1 KR101936955 B1 KR 101936955B1
Authority
KR
South Korea
Prior art keywords
user terminal
key
backup
backup server
public key
Prior art date
Application number
KR1020180074560A
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 KR1020180074560A priority Critical patent/KR101936955B1/ko
Application granted granted Critical
Publication of KR101936955B1 publication Critical patent/KR101936955B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/11File system administration, e.g. details of archiving or snapshots
    • G06F16/122File system administration, e.g. details of archiving or snapshots using management policies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/108Transfer of content, software, digital rights or licenses
    • G06F21/1082Backup or restore
    • 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/602Providing cryptographic facilities or services
    • G06F2221/0782

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

본 발명의 목적은, 디피헬만 알고리즘에 의해 생성된 사용자 단말기의 공개키를, 암호화된 비밀정보가 저장되는 백업 서버가 아닌 별도의 공개키 서버에 저장하여 관리하며, 상기 사용자 단말기의 공개키와 상기 백업 서버의 개인키를 이용하여 비밀정보를 복원할 수 있는, 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법을 제공하는 것이다.

Description

디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법{The method of backing up and restoring secret information utilizing asymmetric application of Diffie-Hellman and elliptic curve Diffie-Hellman algorithm}
본 발명은 디지털 비밀정보를 암호화하여 안전하게 백업하고 복원하기 위한 방법에 관한 것이며, 특히, 백업 요청자(사용자)가 암호화 키를 분실했을 경우에도 복원이 가능하게 하기 위한 백업 요청자와 백업 장소(백업 서버) 운영자(관리자) 사이의 키 쌍 생성, 백업 및 복원 방법에 관한 것이다.
과학기술의 발전에 따라, 컴퓨터와 같은 전자장치를 이용한 디지털 비밀정보들이 대량으로 생성되고 있으며, 상기 비밀정보들은 접근이 제한된 백업 서버에 백업되어 관리되고 있다. 또한, 분실의 경우를 대비하여 중요한 비밀정보들은 백업 서버에 백업되고 있다.
그러나, 종래의 비밀정보 백업 방법은 다음과 같은 문제점들을 가지고 있다.
첫째, 비밀정보가 백업 서버에 백업되는 경우, 상기 백업 서버의 운영자가 상기 비밀정보를 권한 없이 열람할 수도 있다.
둘째, 상기 첫 번째 문제점을 해결하기 위해, 비밀정보를 암호화시킨 후, 암호화된 비밀정보가 상기 백업 서버에 백업될 수 있다. 이 경우, 사용자가 상기 암호화에 이용했던 암호화키를 분실 또는 잊어버리면, 사용자는 상기 비밀정보를 복원하여 열람할 수 없다.
1. 공개공보 10-2008-0051947호: 변형 디피헬만 기반 키 교환 방법
상기한 바와 같은 문제점을 해결하기 위해 제안된 본 발명의 목적은, 디피헬만 알고리즘에 의해 생성된 사용자 단말기의 공개키를, 암호화된 비밀정보가 저장되는 백업 서버가 아닌 별도의 공개키 서버에 저장하여 관리하며, 상기 사용자 단말기의 공개키와 상기 백업 서버의 개인키를 이용하여 비밀정보를 복원할 수 있는, 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법을 제공하는 것이다.
즉, 백업 대상이 평문으로 저장되면 백업 장소를 운영하는 주체가 백업 대상의 내용을 열람할 수 있는 문제가 생기고, 백업 대상을 암호화해서 전송하면 백업 장소를 운영하는 주체는 내용을 열람할 수는 없으나 백업 대상의 복원을 위한 키를 백업 요청자가 항상 안전하게 보유해야 한다. 만약 백업 요청자가 암호화 키를 잃어버리는 경우 백업 대상을 온전하게 복원할 수 없다.
본 발명에서는 백업 장소 운영자가 백업 대상의 평문 내용을 여전히 볼 수 없으면서, 백업 요청자가 암호화 키를 잃어버린 경우에도 백업 대상을 복원할 수 있는 방법을 제시한다.
상술한 기술적 과제를 달성하기 위한 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법은, 사용자 단말기로부터 백업 서비스가 요청되면, 백업 서버가 디피헬만 알고리즘을 수행할 수 있는 서버 프로그램을 실행하여, 상기 백업 서버의 개인키(S2) 및 공개키(P2)를 생성하고, 상기 공개키(P2)를 상기 사용자 단말기로 전송한 후, 상기 공개키(P2)를 삭제하는 단계; 상기 사용자 단말기가 상기 단말기 프로그램 및 사용자로부터 입력된 비밀번호를 이용하여, 상기 사용자 단말기의 개인키(S1)를 생성하는 단계; 상기 사용자 단말기가 상기 개인키(S1)를 이용하여 상기 사용자 단말기의 공개키(P1)를 생성하는 단계; 상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버서의 상기 공개키(P2)를 이용하여 상기 세션키를 생성하는 단계; 상기 사용자 단말기가 상기 공개키(P1)를 상기 공개키 서버에 저장하는 단계; 상기 사용자 단말기가 상기 세션키를 이용해 비밀정보를 암호화한 후, 암호화된 비밀정보를 상기 백업 서버에 저장하는 단계; 상기 사용자 단말기로부터 복원 요청이 수신되면, 상기 백업 서버가 상기 암호화된 비밀정보와 함께 상기 백업 서버에 저장되어 있는 상기 백업 서버의 개인키(S2)를 이용하여, 상기 백업 서버의 공개키(P2)를 생성하는 단계; 상기 백업 서버가 상기 백업 서버의 상기 공개키(P2) 및 상기 암호화된 비밀정보(C)를 상기 사용자 단말기로 전송하는 단계; 상기 비밀정보를 암호화하는 과정에서 상기 사용자 단말기의 상기 개인키(S1)를 생성하기 위해 이용했던 비밀번호가 사용자로부터 입력되면, 상기 사용자 단말기가 상기 비밀번호를 이용하여 상기 사용자 단말기의 개인키(S1)를 생성하는 단계; 상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버로부터 전송된 상기 백업 서버의 상기 공개키(P2)를 이용하여 세션키를 생성하는 단계; 및 상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버로부터 전송된 상기 백업 서버의 상기 공개키(P2)를 이용하여 생성된 상기 세션키를 이용해, 상기 암호화된 비밀정보를 복호화하여 복원하는 단계를 포함한다.
디피헬만 키 합의 알고리즘의 일반적인 응용은 두 통신 당사자가 실제 데이터 전송이 이루어지기 전에 공통의 키에 대한 합의를 이루고 이 공통의 키를 사용하여 전송되는 데이터를 보호하는 것이다. 이를 위해서는 데이터 전송이나 암호화가 이루어지기 전에 두 당사자가 모두 공통의 키를 확보해야 한다. 본 발명에서는 이러한 디피헬만 키 합의 알고리즘을 비대칭적으로 응용한다. 백업 요청자A는 백업 대상 정보를 전달하기 전에 백업 장소 운영자B로부터 PB를 전송 받아서 자신의 dA와 함께 공통의 키 kBA를 생성하고 kBA로 백업 대상 정보를 암호화하여 B에게 전달하지만 자신의 PA는 B에게 바로 전달하지 않는다. 백업 요청자A가 백업을 위해 사용한 dA를 잘 보관하고 있을 경우 백업 대상 정보를 전달하고 복원하는 데에 PA는 사용되지 않는다. PA는 A가 dA를 분실했을 경우를 대비해서 제3의 안전한 장소에 따로 보관한다.
본 발명에 의하면, 백업 서버를 운영하는 관리자가 상기 백업 서버에 저장된 암호화된 비밀정보를 열람할 수 없다.
본 발명에 의하면, 상기 암호화된 비밀정보를 백업한 사용자가 상기 암호화된 비밀정보를 생성할 때 이용한 비밀번호를 분실하더라도, 상기 암호화된 비밀정보를 복원하여 열람할 수 있다.
백업 대상 정보를 암호화하여 저장함에 있어서 백업 요청자가 단독으로 생성한 키로 암호화를 하는 경우 암호화 키를 분실하거나 망각하는 경우 백업 대상 정보를 복원하지 못하게 된다. 특히 비밀 번호 등과 같이 백업 요청자의 기억에 의존하는 방식의 경우 분실 가능성이 높아진다. 반면에 이 문제를 해결하기 위해 백업 요청자가 백업 대상 정보를 백업 장소 운영자에게 평문으로 전달할 경우 백업 장소 운영자에게 백업 대상 정보가 노출되므로 백업 장소 운영자에 대한 완전한 신뢰가 필요하다. 본 발명은 이러한 문제를 해결하기 위해서 백업 대상 정보에 대한 통제권을 백업 요청자에게 온전히 보장하면서도, 백업 요청자가 암호화를 위한 키를 분실했을 경우 백업 대상 정보를 복원하는 방안을 제공함으로써 보다 안전하고 신뢰할 수 있는 비밀 정보 백업 방법을 제공한다.
도 1은 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법이 적용되는 통신 시스템의 구성을 나타낸 예시도.
도 2는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법에 적용되는 디피헬만 알고리즘의 기본 원리를 설명하기 위한 예시도.
도 3은 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 비밀정보를 암호화하여 백업 시키는 방법을 나타낸 일실시예 흐름도.
도 4는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 암호화된 비밀정보를 비밀번호를 이용하여 복원하는 방법을 나타낸 일실시예 흐름도.
도 5는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 암호화된 비밀정보를 공개키 서버에 저장된 사용자 단말기의 공개키를 이용하여 복원하는 방법을 나타낸 일실시예 흐름도.
이하, 첨부된 도면을 참조하여 본 발명의 실시 예에 대해 상세히 설명한다.
도 1은 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법이 적용되는 통신 시스템의 구성을 나타낸 예시도이다.
본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법(이하, 간단히 비밀정보 백업 방법이라 함)이 적용되는 통신 시스템은, 도 1에 도시된 바와 같이, 비밀정보를 백업하고자 하는 사용자에 의해 이용되는 사용자 단말기(10), 상기 사용자 단말기에서 암호화된 비밀정보가 저장되는 백업 서버(20) 및 상기 암호화된 비밀정보를 암호화하는 과정에서 생성된 상기 사용자의 공개키가 저장되는 공개키 서버(30)를 포함한다.
본 발명에서, 사용자가 백업하고자 하는 상기 비밀정보는, 한글파일, 워드파일, PDF파일 등과 같은 형식을 갖는 것일 수도 있으나, 이 외에도, 각종 파일 또는 정보 등이 될 수 있다. 즉, 본 발명에서 사용되는 문서는, 현재 다양한 전자장치 등을 통해 생성되는 다양한 형태의 정보 또는 파일 등이 될 수 있다. 또한, 상기 문서에는, 키 생성을 위한 seed 등 장기적으로 안전하게 비밀리에 저장하고자 하는 모든 정보가 포함될 수 있다.
상기 사용자 단말기(10)는, 개인용 컴퓨터(PC), 테블릿 PC 또는 스마트폰과 같은 다양한 종류의 단말기들 중 어느 하나가 될 수 있다.
상기 백업 서버(20)는 비밀정보를 보관하기 위한 서버이며, 현재 일반적으로 이용되는 서버들 중 어느 하나가 될 수 있다. 상기 백업 서버(20)는 백업 서비스의 운영자에 의해 운영된다.
상기 공개키 서버(30) 역시 현재 일반적으로 이용되는 서버들 중 어느 하나가 될 수 있으며, 예를 들어, 클라우드 서버가 될 수도 있고, 상기 사용자의 메일을 관리하는 메일 서버가 될 수도 있다.
도 2는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법에 적용되는 디피헬만 알고리즘의 기본 원리를 설명하기 위한 예시도이다. 디피헬만 알고리즘은 널리 알려진 암호화 알고리즘이므로, 이하에서는 디피헬만 알고리즘이 간단히 설명된다.
비밀정보를 암호화하여 공유하는 방법들 중에 디피헬만 알고리즘(Diffie-Hellman Algorithm)이 널리 이용되고 있다.
예를 들어, 디피헬만 알고리즘을 이용하여 비밀정보를 공유하고자 하는 사용자1과 사용자2는, 도 2에 도시된 바와 같이, 디피헬만 알고리즘에 이용되는 기본적인 정보(p, g)들을 공유한다. 상기 기본적인 정보(p, g)들은 사용자1과 사용자2가 이용하는 단말기1 및 단말기2에 각각 저장된다.
사용자1은 단말기1을 통해, 난수를 이용하여 개인키(a)를 생성하며, 사용자2는 단말기2를 통해, 난수를 이용하여 개인키(b)를 생성한다.
단말기1은 사용자1의 개인키(a)를 이용하여 사용자1의 공개키(A)를 생성하며, 단말기2는 사용자2의 개인키(b)를 이용하여 사용자2의 공개키(B)를 생성한다.
사용자1과 사용자2는 자신의 공개키를 공유하기 위해, 상대방의 단말기로 자신의 공개키를 전송한다.
단말기1은 사용자1의 개인키(a)와 사용자2의 공개키(B)를 이용하여 세션키(S)를 생성하며, 단말기2는 사용자2의 개인키(b)와 사용자1의 공개키(A)를 이용하여 세션키(S)를 생성한다.
이 경우, 도 2에 도시된 바와 같이, 단말기1에서 생성된 세션키(S)와 단말기2에서 생성된 세션키(S)는 동일한 값을 갖게 된다.
예를 들어, 단말기1에서 생성된 세션키(S=B^a mod p)에서, B는 사용자2의 공개키이다. 사용자2의 공개키(B)는 [g^b mod p]이므로 상기 세션키(S)의 B를 사용자2의 공개키 공식으로 대체시키면, 단말기1에서 생성된 세션키(S)는 [g^ab mod p]이 된다.
또한, 단말기2에서 생성된 세션키(S=A^b mod p)에서, A는 사용자1의 공개키이다. 사용자1의 공개키(A)는 [g^a mod p]이므로 상기 세션키(S)의 A를 사용자1의 공개키 공식으로 대체시키면, 단말기2에서 생성된 세션키(S)는 [g^ab mod p]이 된다.
즉, 단말기1에서 생성된 세션키(S)와 단말기2에서 생성된 세션키(S)는 동일한 값을 갖는다.
따라서, 사용자1이 상기 세션키(S)를 이용하여 암호화된 비밀정보를 사용자2에게 전송한 경우, 사용자2는 자신의 개인키(b)와 이미 공유되어 있는 상기 세션키(S)를 사용하여 복호화시킬 수 있다.
디피헬만 알고리즘에 대해 부연하여 설명하면 다음과 같다.
본 발명은 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘을 이용한 키 합의 방법을 이용한다.
디피헬만 키 합의 알고리즘은 두 당사자 A와 B가 보안되지 않은 채널을 통해서 안전한 세션 키를 합의할 수 있는 방법이다. A와 B는 각자 dA, PA와 dB, PB를 생성한다. dA와 dB는 각각 A와 B가 비밀로 유지하는 정보이며 외부에 노출되지 않는다. PA와 PB는 각각 dA와 dB로부터 유도되며 PA나 PB가 공개되도 이로부터 dA나 dB를 역으로 알아낼 수 없다.
PA와 PB는 각각 A와 B가 보안되지 않은 채널을 통해서 상대방에게 전송한다. B는 A가 전송한 PA와 자신의 dB를 이용해서 공통키 kAB를 생성한다. A는 B가 전송한 PB와 자신의 dA를 이용해서 공통키 kBA를 생성한다. 디피헬만 알고리즘에 의해서 kAB와 kBA는 일치한다는 것이 보장된다.
타원곡선 디피헬만 알고리즘은 디피헬만 알고리즘과 기본적인 동작 방식은 동일하며 최종 계산되는 kAB와 kBA가 일치한다는 특성도 동일하게 갖는다. 단, 디피헬만 알고리즘과 다르게 PA와 PB가 계산되는 수학적 공간만 다르다.
이하의 설명에서, 디피헬만 알고리즘이라 하면 타원곡선 디피헬만 알고리즘까지 포함한 일반적인 디 피헬만 방식 키 합의 알고리즘을 의미한다.
이하에서는, 상기한 바와 같은 디피헬만 알고리즘을 이용하여 비밀정보를 백업하는 본 발명에 따른 비밀정보 백업 방법이 상세히 설명된다.
도 3은 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 비밀정보를 암호화하여 백업 시키는 방법을 나타낸 일실시예 흐름도이다.
우선, 비밀정보를 암호화하여 상기 백업 서버(20)에 저장하고자 하는 사용자는 자신이 이용하는 사용자 단말기(10)를 통해, 상기 백업 서버(20)로 백업 서비스를 요청한다(102).
다음, 백업 서비스 요청이 수신되면 상기 백업 서버(20)는 본인 인증을 요청하며, 사용자는 본인 인증 절차를 수행한다(104).
다음, 상기 디피헬만 알고리즘을 수행할 수 있는 서버 프로그램이 실행되고 있는 상기 백업 서버(20)는 상기 서버 프로그램을 이용하여 난수로부터 상기 백업 서버의 개인키(S2)를 생성한다(106). 이하에서 생성되는 각종 개인키들, 공개키들 및 세션키들 역시 상기 디피헬만 알고리즘을 이용하여 생성될 수 있다.
상기 개인키(S2)는, 도 2를 참조하여 설명된 개인키들(a, b)과 동일한 기능을 수행하는 정보를 의미한다.
다음, 상기 백업 서버(20)는 상기 서버 프로그램과 상기 개인키(S2)를 이용하여 상기 백업 서버의 공개키(P2)를 생성한다(108).
상기 공개키(P2)는, 도 2를 참조하여 설명된 공개키들(A, B)과 동일한 기능을 수행하는 정보를 의미한다.
다음, 상기 백업 서버(20)는 상기 공개키(P2)를 상기 사용자 단말기(10)로 전송한다(110).
다음, 상기 공개키(P2)가 상기 사용자 단말기(10)로 전송되면, 상기 백업 서버(20)는 상기 공개키(P2)를 삭제한다(112).
다음, 상기 사용자 단말기(10)는 상기 디피헬만 알고리즘을 수행할 수 있는 단말기 프로그램 및 사용자로부터 입력된 비밀번호를 이용하여, 상기 사용자 단말기(10)의 개인키(S1)를 생성한다(114). 상기 개인키(S1) 역시, 도 2를 참조하여 설명된 개인키들(a, b)과 동일한 기능을 수행하는 정보를 의미한다.
다음, 상기 사용자 단말기(10)는 상기 단말기 프로그램과 상기 개인키(S1)를 이용하여 상기 사용자 단말기의 공개키(P1)를 생성한다(116). 상기 공개키(P1) 역시, 도 2를 참조하여 설명된 공개키들(A, B)과 동일한 기능을 수행하는 정보를 의미한다.
다음, 상기 사용자 단말기(10)는 상기 개인키(S1)와 상기 공개키(P2)를 이용하여 세션키(ECDH)를 생성한다(118).
상기 세션키(ECDH)는, 도 2를 참조하여 설명된 세션키(S)와 동일한 기능을 수행하는 정보를 의미한다.
다음, 상기 사용자 단말기(10)는 상기 공개키(P1)를 상기 공개키 서버(30)로 전송한다(120).
다음, 상기 공개키 서버(30)는 수신된 상기 사용자 단말기(10)의 상기 공개키(P1)를 저장한다(122).
다음, 상기 사용자 단말기(10)는 상기 공개키(P1)를 삭제한다(124). 즉, 상기 공개키(P1)가 없더라도, 본 발명에 의해 암호화된 비밀정보가 복호화되어 복원될 수 있기 때문에, 상기 공개키(P1)는 삭제될 수 있다.
다음, 상기 사용자 단말기(10)는 상기 세션키(ECDH)를 이용해 비밀정보를 암호화하여, 암호화된 비밀정보(C)를 생성한다(126).
다음, 상기 사용자 단말기(10)는 상기 암호화된 비밀정보(C)를 상기 백업 서버(20)로 전송한다.
마지막으로, 상기 백업 서버(20)는 전송된 상기 암호화된 비밀정보(C), 상기 백업 서버(20)의 상기 개인키(S2), 상기 사용자의 ID 및 상기 암호화된 비밀정보(C)가 저저장된 타임 등을 저장한다(130).
도 4는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 암호화된 비밀정보를 비밀번호를 이용하여 복원하는 방법을 나타낸 일실시예 흐름도이다.
우선, 암호화된 비밀정보를 상기 백업 서버(20)에 저장한 사용자는 상기 백업 서버(20)로 상기 암호화된 비밀정보의 복원을 요청한다(202).
다음, 복원 요청이 수신되면 상기 백업 서버(20)는 본인 인증을 요청하며, 사용자는 본인 인증 절차를 수행한다(204).
다음, 상기 백업 서버(20)는 저장되어 있는 상기 백업 서버(20)의 개인키(S2)를 이용하여, 공개키(P2)를 생성한다(206). 상기 과정에서 생성된 공개키(P2)는, 도 3의 공개키 생성 과정(108)을 통해 생성된 공개키(P2)와 동일한 값을 갖는다.
다음, 상기 백업 서버(20)는 상기 공개키(P2) 및 상기 암호화된 비밀정보(C)를 상기 사용자 단말기(10)로 전송한다(208).
다음, 사용자가 상기 비밀정보를 암호화하는 과정에서 개인키(S1)를 생성하기 위해 이용했던 비밀번호를 입력하면, 상기 사용자 단말기(10)는 상기 비밀번호를 이용하여 상기 사용자 단말기(10)의 개인키(S1)를 생성한다. 상기 과정에서 생성된 개인키(S1)는, 도 3의 개인키 생성 과정(114)에서 생성된 개인키(S1)와 동일한 값을 갖는다.
다음. 상기 사용자 단말기(10)는 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버(20)의 상기 공개키(P2)를 이용하여 세션키(ECDH)를 생성한다(214). 상기 과정에서 생성된 세션키는, 도 3의 세션키(ECDH) 생성 과정(118)에서 생성된 세션키와 동일한 값을 갖는다.
부연하여 설명하면, 도 2에 도시된바와 같이, 사용자1은, 자신의 개인키(a)와 사용자2의 공개키(B)를 알고 있으면, 세션키(S)를 생성할 수 있다.
마찬가지로, 상기 사용자 단말기(10)는 상기 사용자 단말기(10)의 개인키(S1)와 상기 백업 서버(20)의 공개키(P2)를 이용하여, 상기 세션키(ECDH)를 생성할 수 있다.
마지막으로, 상기 사용자 단말기(10)는 상기 세션키를 이용하여 상기 암호화된 비밀정보를 복호화하여 복원할 수 있다.
즉, 상기 암호화된 비밀정보는, 상기 세션키를 이용하여 암호화되었기 때문에, 상기 암호화된 비밀정보는 상기 세션키에 의해 복호화되어 복원될 수 있다.
이 경우, 상기 백업 서버(20)는 상기 백업 서버(20)의 개인키(S2)를 알고 있으나, 상기 사용자 단말기(10)의 공개키(P1)를 알 수 없기 때문에, 상기 세션키를 생성할 수 없다. 따라서, 상기 백업 서버(20)의 관리자는 상기 암호화된 비밀정보를 복호화하여 복원할 수 없다.
이에 따라, 상기 백업 서버(20)의 관리자는 상기 사용자의 의사에 반하여 상기 암호화된 비밀정보를 복원하여 열람할 수 없다.
도 5는 본 발명에 따른 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 중 암호화된 비밀정보를 공개키 서버에 저장된 사용자 단말기의 공개키를 이용하여 복원하는 방법을 나타낸 일실시예 흐름도이다.
우선, 암호화된 비밀정보를 상기 백업 서버(20)에 저장한 사용자는 상기 백업 서버(20)로 상기 암호화된 비밀정보의 복원을 요청한다(302).
다음, 복원 요청이 수신되면 상기 백업 서버(20)는 본인 인증을 요청하며, 사용자는 본인 인증 절차를 수행한다(304).
다음, 사용자 단말기(10)의 개인키(S1) 생성에 이용될 비밀번호를 분실하거나 기억하지 못하는 사용자는 비밀번호 분실신고를 상기 백업 서버(20)로 전송한다(306).
다음, 비밀번호 분실신고를 수신한 상기 백업 서버(20)는 저장되어 있는 상기 백업 서버(20)의 개인키(S2) 및 상기 암호화된 비밀정보(C)를 상기 사용자 단말기(10)로 전송한다(308). 즉, 사용자가 비밀번호를 기억하고 있는 경우에는, 상기 백업 서버(20)가 상기 백업 서버(20)의 상기 개인키(S2)를 이용하여 생성된 공개키(P2) 및 상기 암호화된 비밀정보(C)를 상기 사용자 단말기(10)로 전송하였으나(208), 사용자가 비밀번호를 기억하지 못하는 경우에는, 상기 백업 서버(20)가 상기 백업 서버(20)의 상기 개인키(S2) 및 상기 암호화된 비밀정보(C)를 상기 사용자 단말기(10)로 전송한다.
다음, 상기 사용자 단말기(10)는 본인 인증 과정을 통해 상기 공개키 서버(30)에 접속한 후 상기 사용자 단말기(10)의 공개키(P1)의 전송을 요청한다(310).
다음, 상기 공개키(P1)의 전송 요청이 수신되면, 상기 공개키 서버(30)는 상기 사용자 단말기(10)의 상기 공개키(P1)를 상기 사용자 단말기(10)로 전송한다(312).
다음, 상기 공개키(P1)를 수신한 상기 사용자 단말기(10)는 상기 백업 서버(20)의 상기 개인키(S2)와 상기 사용자 단말기(10)의 상기 공개키(P1)를 이용하여 세션키(ECDH)를 생성한다(314). 상기 과정에서 생성된 세션키는, 도 3의 세션키(ECDH) 생성 과정(118)에서 생성된 세션키와 동일한 값을 갖는다.
부연하여 설명하면, 도 2에 도시된바와 같이, 사용자2는, 자신의 개인키(b)와 사용자1의 공개키(A)를 알고 있으면, 세션키(S)를 생성할 수 있다.
이 경우, 사용자2뿐만 아니라, 사용자1 역시, 사용자2의 개인키(b) 및 사용자1의 공개키(A)를 알고 있다면, 상기 세션키(S)를 생성할 수 있다.
마찬가지로, 상기 사용자 단말기(10)는 상기 백업 서버(20)의 상기 개인키(S2)와 상기 사용자 단말기(10)의 공개키(P1)를 이용하여, 상기 세션키(ECDH)를 생성할 수 있다.
마지막으로, 상기 사용자 단말기(10)는 상기 사용자 단말기의 상기 공개키(P1)와 상기 백업 서버(20)로부터 전송된 상기 백업 서버(20)의 상기 개인키(S2)를 이용하여 생성된 상기 세션키를 이용하여 상기 암호화된 비밀정보를 복호화하여 복원할 수 있다(316).
즉, 본 발명에 의하면, 상기 사용자 단말기(10)의 상기 개인키(S1)를 생성할 때 사용된 비밀번호를 사용자가 기억하지 못하더라도, 상기 사용자는 상기 공개키 서버(30)에 저장된 상기 사용자 단말기(10)의 상기 공개키(P1)와 상기 백업 서버(20)로부터 전송된 상기 백업 서버(20)의 상기 개인키(S2)를 이용하여 상기 세션키를 생성할 수 있으며, 상기 세션키를 이용하여 상기 암호화된 비밀정보를 복호화하여 복원할 수 있다.
상기한 바와 같은 본 발명을 부연하여 설명하면 다음과 같다.
본 발명에서 설명하는 백업과 복원 과정은 백업 요청자와 백업 장소 운영자의 키쌍 생성으로부터 시작한다. 백업 요청자와 백업 장소 운영자는 각자 디피헬만 키 합의 알고리즘을 위한 개인키와 공개키 쌍을 생성한다. 백업 요청자는 비밀번호로부터 자신의 개인키를 유도하고 이와 쌍을 이루는 공개키를 유도한다. 백업 요청자는 공개키를 제3의 장소에 보관한다. 이때, 제3의 장소는 외부 메일 서버 등과 같이 장기적인 데이터를 보관할 수 있는 장소여야 한다. 백업 장소 운영자는 임의의 난수로부터 자신의 개인키를 생성하고 이와 쌍을 이루는 공개키를 유도한다.
백업 요청자는 백업 장소 운영자에게 공개키를 요청한다. 백업 장소 운영자는 공개키를 백업 요청자에게 전송한다. 백업 요청자는 자신의 개인키와 백업 장소 운영자의 공개키를 입력으로 한 디피헬만 키합의 알고리즘을 실행하여 암호화키(세션키)를 유도한다. 백업 요청자는 암호화키로 백업하고자 하는 비밀 정보를 암호화하여 백업 장소 운영자에게 전달할 정보를 생성한다. 백업 요청자는 백업 장소 운영자에게 암호화된 비밀 정보를 전달한다. 백업 장소 운영자는 암호화된 비밀 정보와 자신의 개인키를 함께 저장한다.
백업 요청자가 비밀번호를 기억하고 있는 경우 비밀 정보를 복원하고자 할 때 백업 장소 운영자에게 암호화된 비밀 정보와 백업 장소 운영자의 공개키를 요청한다. 백업 장소 운영자는 보관하고 있던 자신의 개인키로부터 공개키를 유도하여 암호화된 비밀 정보와 함께 백업 요청자에게 전달한다. 백업 요청자는 비밀번호로부터 자신의 개인키를 유도하고 자신의 개인키와 백업 장소 운영자의 공개키를 입력으로 한 디피헬만 키합의 알고리즘을 실행하여 암호화키(세션키)를 유도한다. 백업 요청자는 암호화키(세션키)로 암호화된 비밀 정보를 복호화하여 원래의 비밀 정보를 복원한다.
백업 요청자가 비밀번호를 분실한 경우 비밀 정보를 복원하고자 할 때 제3의 장소에 보관돼 있던 자신의 공개키를 획득한다. 백업 요청자는 백업 장소 운영자에게 비밀번호 분실에 대한 사실을 전달하고 사용자 인증과정을 진행한다. 사용자 인증 과정이 완료된 후, 백업 장소 운영자는 저장된 개인키와 암호화된 비밀정보를 백업 요청자에게 전달한다. 백업 요청자는 자신의 공개키와 백업 장소 운영자로부터 받은 개인키를 통해 암호화키(세션키)를 유도한다. 백업 요청자는 암호화키(세션키)로 암호화된 비밀 정보를 복호화하여 원래의 비밀 정보를 복원한다.
즉, 본 발명에서, 백업 요청자와 백업 장소 운영자가 키쌍을 생성하는 과정에서 백업 요청자의 개인키는 PIN이나 비밀번호 등 사용자의 기억에 의존한 정보로부터 유도되고, 개인키로부터 유도된 공개키는 제3의 장소에 보관되며, 백업 장소 운영자의 개인키는 임의의 난수로부터 생성되고 이로부터 유도된 공개키는 백업 과정에서 백업 요청자에게 전달된다.
또한, 백업 과정에서 백업 대상 정보를 암호화하기 위한 키(세션키)는 백업 요청자의 개인키와 백업 장소 운영자의 공개키를 입력으로 한 디피헬만 키 합의 알고리즘을 실행하여 유도된다.
또한, 백업 과정에서 백업 장소 운영자는 암호화된 백업 대상 정보를 저장함에 있어 디피헬만 키 합의 알고리즘에 사용된 백업 장소 운영자의 공개키와 쌍을 이루는 개인키를 백업 대상 정보와 함께 저장한다.
또한, 백업 요청자가 비밀번호를 기억하고 있는 경우의 복원 과정에서 암호화된 백업 대상 정보를 복호화하는 키(세션키)는 백업 요청자의 개인키와 백업 장소 운영자의 공개키를 입력으로 한 디피헬만 키 합의 알고리즘을 실행하여 유도된다.
또한, 백업 요청자가 비밀번호를 분실 또는 망각한 경우의 복원 과정에서 백업 요청자는 제3의 장소에 보관하고 있던 공개키와 백업 장소 운영자의 개인키를 획득하고, 디피헬만 키 합의 알고리즘을 실행하여 세션키를 유도한다.
본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다.  그러므로, 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
10: 사용자 단말기 20: 백업 서버
30: 공개키 서버

Claims (2)

  1. 사용자 단말기로부터 백업 서비스가 요청되면, 백업 서버가 디피헬만 알고리즘을 수행할 수 있는 서버 프로그램을 실행하여, 상기 백업 서버의 개인키(S2) 및 공개키(P2)를 생성하고, 상기 공개키(P2)를 상기 사용자 단말기로 전송한 후, 상기 공개키(P2)를 삭제하는 단계;
    상기 사용자 단말기가 단말기 프로그램 및 사용자로부터 입력된 비밀번호를 이용하여, 상기 사용자 단말기의 개인키(S1)를 생성하는 단계;
    상기 사용자 단말기가 상기 개인키(S1)를 이용하여 상기 사용자 단말기의 공개키(P1)를 생성하는 단계;
    상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버의 상기 공개키(P2)를 이용하여 세션키를 생성하는 단계;
    상기 사용자 단말기가 상기 공개키(P1)를 상기 백업 서버가 아닌 별도의 공개키 서버에 저장하는 단계;
    상기 사용자 단말기가 상기 세션키를 이용해 비밀정보를 암호화한 후, 암호화된 비밀정보를 상기 백업 서버에 저장하는 단계;
    상기 사용자 단말기로부터 복원 요청이 수신되면, 상기 백업 서버가 상기 암호화된 비밀정보와 함께 상기 백업 서버에 저장되어 있는 상기 백업 서버의 개인키(S2)를 이용하여, 상기 백업 서버의 공개키(P2)를 생성하는 단계;
    상기 백업 서버가 상기 백업 서버의 상기 공개키(P2) 및 상기 암호화된 비밀정보를 상기 사용자 단말기로 전송하는 단계;
    상기 비밀정보를 암호화하는 과정에서 상기 사용자 단말기의 상기 개인키(S1)를 생성하기 위해 이용했던 비밀번호가 사용자로부터 입력되면, 상기 사용자 단말기가 상기 비밀번호를 이용하여 상기 사용자 단말기의 개인키(S1)를 생성하는 단계;
    상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버로부터 전송된 상기 백업 서버의 상기 공개키(P2)를 이용하여 세션키를 생성하는 단계; 및
    상기 사용자 단말기가 상기 사용자 단말기의 상기 개인키(S1)와 상기 백업 서버로부터 전송된 상기 백업 서버의 상기 공개키(P2)를 이용하여 생성된 상기 세션키를 이용해, 상기 암호화된 비밀정보를 복호화하여 복원하는 단계를 포함하고,
    사용자의 요청에 따라, 상기 사용자 단말기가 상기 백업 서버로 상기 암호화된 비밀정보의 복원 요청 및, 상기 사용자 단말기의 상기 개인키(S1) 생성에 이용될 비밀번호를 기억하지 못한다는 비밀번호 분실신고를 상기 백업 서버로 전송하는 경우, 상기 비밀번호 분실신고를 수신한 상기 백업 서버가, 상기 백업 서버에 저장되어 있는 상기 백업 서버의 개인키(S2) 및 상기 암호화된 비밀정보를 상기 사용자 단말기로 전송하는 단계;
    상기 사용자 단말기가 본인 인증 과정을 통해 상기 공개키 서버에 접속한 후, 상기 공개키 서버에 저장되어 있는, 상기 사용자 단말기의 상기 공개키(P1)를 수신하는 단계;
    상기 사용자 단말기의 상기 공개키(P1)를 수신한 상기 사용자 단말기가 상기 백업 서버의 상기 개인키(S2)와 상기 사용자 단말기의 상기 공개키(P1)를 이용하여 세션키를 생성하는 단계; 및
    상기 사용자 단말기가 상기 사용자 단말기의 상기 공개키(P1)와 상기 백업 서버로부터 전송된 상기 백업 서버의 상기 개인키(S2)를 이용하여 생성된 상기 세션키를 이용해, 상기 암호화된 비밀정보를 복호화하여 복원하는 단계를 포함는 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법.

  2. 삭제
KR1020180074560A 2018-06-28 2018-06-28 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법 KR101936955B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180074560A KR101936955B1 (ko) 2018-06-28 2018-06-28 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180074560A KR101936955B1 (ko) 2018-06-28 2018-06-28 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법

Publications (1)

Publication Number Publication Date
KR101936955B1 true KR101936955B1 (ko) 2019-04-09

Family

ID=66167446

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180074560A KR101936955B1 (ko) 2018-06-28 2018-06-28 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법

Country Status (1)

Country Link
KR (1) KR101936955B1 (ko)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20010067966A (ko) * 2001-04-11 2001-07-13 조휘갑 피케이아이 기반의 상업용 키위탁 방법 및 시스템
JP2002507016A (ja) * 1998-03-12 2002-03-05 スカイデスク インコーポレイテッド 広域コンピュータネットワークにおけるコンピュータファイルをバックアップするためのシステムおよび方法
KR20030010667A (ko) * 2000-06-05 2003-02-05 피닉스 테크놀로지 리미티드 다수의 서버를 사용하는 리모트 패스워드 인증을 위한시스템, 방법 및 소프트웨어
JP2003085048A (ja) * 2001-09-11 2003-03-20 Sony Corp バックアップデータ管理システム、バックアップデータ管理方法、および情報処理装置、並びにコンピュータ・プログラム
KR20080051947A (ko) 2006-12-07 2008-06-11 인하대학교 산학협력단 변형 디피 헬만 기반 키교환 방법

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002507016A (ja) * 1998-03-12 2002-03-05 スカイデスク インコーポレイテッド 広域コンピュータネットワークにおけるコンピュータファイルをバックアップするためのシステムおよび方法
KR20030010667A (ko) * 2000-06-05 2003-02-05 피닉스 테크놀로지 리미티드 다수의 서버를 사용하는 리모트 패스워드 인증을 위한시스템, 방법 및 소프트웨어
KR20010067966A (ko) * 2001-04-11 2001-07-13 조휘갑 피케이아이 기반의 상업용 키위탁 방법 및 시스템
JP2003085048A (ja) * 2001-09-11 2003-03-20 Sony Corp バックアップデータ管理システム、バックアップデータ管理方法、および情報処理装置、並びにコンピュータ・プログラム
KR20080051947A (ko) 2006-12-07 2008-06-11 인하대학교 산학협력단 변형 디피 헬만 기반 키교환 방법

Similar Documents

Publication Publication Date Title
US11146391B2 (en) Orthogonal access control for groups via multi-hop transform encryption
US11451386B2 (en) Method and system for many-to-many symmetric cryptography and a network employing the same
US9467282B2 (en) Encryption scheme in a shared data store
Kumar et al. Secure storage and access of data in cloud computing
CN106664202B (zh) 提供多个设备上的加密的方法、系统和计算机可读介质
JP4855940B2 (ja) 暗号用鍵の世代の効率的な管理
TW201733302A (zh) 用於基於區塊鏈的系統結合錢包管理系統中的安全多方防遺失儲存及加密金鑰轉移
JP6363032B2 (ja) 鍵付替え方向制御システムおよび鍵付替え方向制御方法
US10671748B2 (en) Secrets as a service
KR20120132708A (ko) 클라우드 컴퓨팅 환경에서의 접근 권한 분산 관리 장치 및 그 방법
US11075753B2 (en) System and method for cryptographic key fragments management
JPWO2018016330A1 (ja) 通信端末、サーバ装置、プログラム
CA3056814A1 (en) Symmetric cryptographic method and system and applications thereof
CN114091058A (zh) 在第一区域和第二区域间数据安全共享的方法和系统
Habib et al. Simplified file assured deletion (sfade)-a user friendly overlay approach for data security in cloud storage system
Thilakanathan et al. Secure multiparty data sharing in the cloud using hardware-based TPM devices
KR101936955B1 (ko) 디피헬만 알고리즘과 타원곡선 디피헬만 알고리즘의 비대칭 응용을 이용한 가용성이 보장되는 안전한 비밀정보 백업 및 복원 방법
CN115412236A (zh) 一种密钥管理和密码计算的方法、加密方法及装置
US10892892B1 (en) Method and apparatus for end-to-end secure sharing of information with multiple recipients without maintaining a key directory
KR20160128170A (ko) 비밀키 암호화 및 복원을 제공하는 단말, 서버 및 방법
Aziz et al. Assured data deletion in cloud computing: security analysis and requirements
Nusrat et al. Simplified FADE with sharing feature (SFADE+): A overlay approach for cloud storage system
Vanitha et al. Secured data destruction in cloud based multi-tenant database architecture
JP2018107625A (ja) データ配信システム、データ生成装置、仲介装置、データ配信方法、及びプログラム
Badre Cloud storage with improved access control and assured deletion