(19) 대한민국특허청(KR)
(12) 등록특허공보(B1)
(45) 공고일자 2017년06월15일
(11) 등록번호 10-1747888
(24) 등록일자 2017년06월09일
(51) 국제특허분류(Int. Cl.)
H04L 9/08 (2006.01)
(21) 출원번호 10-2011-7015215
(22) 출원일자(국제) 2010년07월05일
심사청구일자 2015년04월29일
(85) 번역문제출일자 2011년07월01일
(65) 공개번호 10-2012-0040127
(43) 공개일자 2012년04월26일
(86) 국제출원번호 PCT/SE2010/050780
(87) 국제공개번호 WO 2011/002412
국제공개일자 2011년01월06일
(30) 우선권주장
0900918-4 2009년07월03일 스웨덴(SE)
61/222,949 2009년07월03일 미국(US)
(56) 선행기술조사문헌
US20020159598 A1
US20080147820 A1
(73) 특허권자
케리섹 에이비
스웨덴 오스모 148 32, 바크만스 바그 2 비존
(72) 발명자
레벨 엘리세
스웨덴 오스모 에스-148 32 바크만스 바그 2, 비
존
(74) 대리인
진천웅, 조현동, 정종옥
전체 청구항 수 : 총 14 항 심사관 : 문형섭
(54) 발명의 명칭 암호화/복호화 키의 생성 방법
(57) 요 약
본 발명은 암호화/복호화 키의 생성 방법에 관한 것으로서, 특히 암호화 및 복호화에 동일한 키가 사용되는 대칭
암호화에 사용되는 일회용의 암호화/복호화 키의 생성에 관한 것이다. 키를 생성하기 위하여 제1 노드(A)가 제2
노드(B)와의 통신을 설정하기 위한 요청을 중앙 서버(2)에 전송한다. 중앙 서버(2)는 두 개의 노드에 각각 키 생
(뒷면에 계속)
대 표 도 - 도1
등록특허 10-1747888
- 1 -
성 파일을 전송한다. 각 노드는 상이한 중간 데이터세트, 즉, 제1 및 제2 중간 데이터세트를 생성한다. 제1 노
드(A)에 의해 생성된 제1 중간 데이터세트는 제2 노드(B)로 전송되고, 제2 노드(B)는 이러한 데이터세트에 기초
하여 생성된 제3 데이터세트를 제1 노드(A)로 다시 전송한다. 제1 노드(A)에서의 제1 암호 키의 생성은 제3 중간
데이터세트와 제1 중간 데이터세트의 비트 대 비트 비교에 기초하고, 제2 노드(B)에서의 제2 암호 키의 생성은
제1 및 제2 중간 데이터세트 사이의 비트 대 비트 비교에 기초한다. 상기 제1 암호 키와 제2 암호 키는 서로 동
일하다.
등록특허 10-1747888
- 2 -
명 세 서
청구범위
청구항 1
제1 노드(A)와 제2 노드(B) 사이의 안전한 통신에 사용할 수 있는 암호화/복호화 키의 생성 방법에 있어서
상기 제1 노드(A)로부터 중앙 서버(2)로 상기 제2 노드(B)와 통신을 설정하기 위한 요청을 전송하는 단계;
상기 제1 노드(A)의 요청에 응답하여, 상기 중앙 서버(2)로부터 제1 키 생성 파일을 상기 제1 노드(A)로 전송하
고, 제2 키 생성 파일을 상기 제2 노드(B)로 전송하는 단계;
상기 제1 노드(A) 및 상기 제2 노드(B)가 각각 상기 제1 키 생성 파일 및 제2 키 생성 파일의 처리를 시작하는
단계;
상기 제1 노드(A)에서 제1 중간 데이터세트를 생성하고, 상기 제2 노드(B)에서 제2 중간 데이터세트를 생성하는
단계;
상기 제1 노드(A)가 상기 제1 중간 데이터세트를 상기 제1 노드(A)에서 상기 제2 노드로 전송하는 단계;
상기 제2 노드(B)가 상기 제1 중간 데이터세트의 비트를, 대응되는 상기 제2 중간 데이터세트의 비트와 비교하
는 단계;
상기 제2 노드(B)는 상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 비교된 비트가 동일하
면 제1 값을 할당하고, 비교된 비트가 상이하면 제2 값을 할당함으로써 새로운 제3 중간 데이터세트를 생성하는
단계;
상기 제3 중간 데이터세트를 상기 제2 노드(B)로부터 상기 제1 노드(A)로 전송하는 단계;
상기 제1 노드(A)가 상기 제3 중간 데이터세트의 비트와, 대응되는 상기 제1 중간 데이터세트의 비트를 비교하
는 단계;
상기 제1 노드(A)는 상기 제3 및 제1 중간 데이터세트의 비트 대 비트 비교에 기초하여, 상기 제3 중간 데이터
세트의 비트가 상기 제1 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트의 값을 유지하고,
상기 제3 중간 데이터세트의 비트가 상기 제2 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비
트를 무시함으로써 제1 암호 키를 생성하는 단계; 및
상기 제2 노드(B)는 상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 대응되는 상기 제2 중
간 데이터세트의 비트와 상기 제1 중간 데이터세트의 비트가 동일한 경우에는 상기 제2 중간 데이터세트의 비트
값을 유지하고, 비교된 비트가 상이한 경우에는 상기 제2 중간 데이터세트의 비트를 무시함으로써 제2 암호 키
를 생성하는 단계를 포함하고,
상기 제1 및 제2 암호 키는 동일한 암호화/복호화 키의 생성 방법.
청구항 2
제1항에 있어서,
상기 제1 키 생성 파일을 상기 제1 노드(A)로 전송하고, 제2 키 생성 파일을 상기 제2 노드(B)로 전송하는 단계
는,
각각의 키 생성 파일에 첨부된 메타데이터를 전송하는 단계를 포함하는 방법.
청구항 3
제2항에 있어서,
등록특허 10-1747888
- 3 -
상기 메타데이터는,
상기 제1 또는 제2 암호 키를 생성하는데 사용되는 상수를 포함하는 방법.
청구항 4
제2항에 있어서,
상기 메타데이터는,
상기 제1 또는 제2 암호 키 길이에 대한 정보를 포함하는 방법.
청구항 5
제4항에 있어서,
미리 설정된 간격 내에 상기 제1 또는 제2 암호 키 길이를 무작위적으로 생성하는 단계를 더 포함하는 방법.
청구항 6
제1 노드(A)와 제2 노드(B) 사이의 안전한 통신에 사용할 수 있는, 상기 제1 노드(A)에서의 암호화/복호화 키의
생성 방법에 있어서,
중앙 서버(2)에 상기 제2 노드(B)와의 안전한 통신을 설정하기 위한 요청을 전송하는 단계;
상기 중앙 서버(2)로부터 상기 요청에 대한 응답으로 제1 키 생성 파일을 수신하는 단계;
상기 제1 키 생성 파일을 처리하는 단계;
제1 중간 데이터세트를 생성하는 단계;
상기 제1 중간 데이터세트를 상기 제2 노드(B)로 전송하는 단계;
상기 제2 노드(B)로부터 제3 중간 데이터세트를 수신하는 단계;
상기 제3 중간 데이터세트의 비트와, 대응되는 상기 제1 중간 데이터세트의 비트를 비교하는 단계; 및
상기 제3 및 제1 중간 데이터세트의 비트 대 비트 비교에 기초하여, 상기 제3 중간 데이터세트의 비트가 제1 값
으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트의 값을 유지하고, 상기 제3 중간 데이터세트
의 비트가 제2 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트를 무시함으로써 제1 암호 키
를 생성하는 단계를 포함하는 암호화/복호화 키의 생성 방법.
청구항 7
제6항에 있어서,
상기 제1 키 생성 파일을 수신하는 단계는,
상기 파일에 첨부된 메타데이터를 수신하는 단계를 포함하는 방법.
청구항 8
제7항에 있어서,
상기 메타데이터는,
등록특허 10-1747888
- 4 -
상기 제1 암호 키를 생성하는데 사용되는 상수를 포함하는 방법.
청구항 9
제7항에 있어서,
상기 메타데이터는,
상기 제1 암호 키 길이에 대한 정보를 포함하는 방법.
청구항 10
제1 노드(A)와 제2 노드(B) 사이의 안전한 통신에 사용할 수 있는, 상기 제2 노드(B)에서의 암호화/복호화 키의
생성 방법에 있어서,
상기 제1 노드(A)와 상기 제2 노드(B) 사이의 안전한 통신을 시작하기 위한 상기 제1 노드(A)로부터의 요청에
대한 응답으로, 중앙 서버(2)로부터 제2 키 생성 파일을 수신하는 단계;
상기 제2 키 생성 파일을 처리하는 단계;
제2 중간 데이터세트를 생성하는 단계;
상기 제1 노드(A)로부터 제1 중간 데이터세트를 수신하는 단계;
상기 제1 중간 데이터세트의 비트와, 대응되는 상기 제2 중간 데이터세트의 비트를 비교하는 단계;
상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 비교된 비트가 동일하면 제1 값을 할당하고
비교된 비트가 상이하면 제2 값을 할당함으로써 새로운 제3 중간 데이터세트를 생성하는 단계;
상기 제3 중간 데이터세트를 상기 제1 노드(A)로 전송하는 단계; 및
상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 대응되는 상기 제2 중간 데이터세트의 비트
와 상기 제1 중간 데이터세트의 비트가 동일한 경우에는 상기 제2 중간 데이터세트의 비트 값을 유지하고, 비교
된 비트가 상이한 경우에는 상기 제2 중간 데이터세트의 비트를 무시함으로써 제2 암호 키를 생성하는 단계를
포함하는 암호화/복호화 키의 생성 방법.
청구항 11
제10항에 있어서,
상기 제2 키 생성 파일을 수신하는 단계는,
상기 파일에 첨부된 메타데이터를 수신하는 단계를 포함하는 방법.
청구항 12
제11항에 있어서,
상기 메타데이터는,
상기 제2 암호 키를 생성하는데 사용되는 상수를 포함하는 방법.
청구항 13
제11항에 있어서,
등록특허 10-1747888
- 5 -
상기 메타데이터는,
상기 제2 암호 키 길이에 대한 정보를 포함하는 방법.
청구항 14
삭제
청구항 15
제1항 내지 제13항 중 어느 하나의 항의 방법을 수행하기 위한 프로그램 코드 수단을 포함하고, 컴퓨터 상에서
실행되는 컴퓨터 프로그램이 저장된 컴퓨터 판독 가능한 저장매체.
발명의 설명
기 술 분 야
본 발명은 암호화/복호화 키의 생성 방법에 관한 것으로서, 특히 대칭적인 암호화, 즉, 암호화 및 복호화에 동[0001]
일한 키가 사용되는 대칭 암호화(symmetric encryption)에 이용되는 일회용(one-time) 암호화/복호화 키를 생성
하는 방법에 관한 것이다.
또한, 본 발명은 상기 암호화/복호화 키의 생성 방법을 수행하기 위한 코드 수단을 포함하고, 컴퓨터 상에서 실[0002]
행되는 컴퓨터 프로그램에 관한 것이다.
또한, 본 발명은 암호화/복호화 키의 생성 방법을 수행하기 위하여 컴퓨터에 의해 판독 가능한 매체에 저장된[0003]
프로그램 코드 수단을 포함하고, 컴퓨터 상에서 실행되는 컴퓨터 프로그램 제품에 관한 것이다.
배 경 기 술
암호 기법에 있어서, 키(key)는 암호화 알고리즘의 기능적 출력을 결정하는 하나의 정보이다. 키가 없다면, 상[0004]
기 알고리즘은 아무런 결과가 없는 것이다. 키는 암호화에서 평문의 암호문으로의 특정한 변환을 명시하고, 복
호화에서는 암호문의 평문으로의 특정한 변환을 명시한다. 키는 다른 암호화 알고리즘, 예를 들어 디지털 서명
제도, 메시지 인증 코드에서도 사용된다.
보안 시스템을 설계할 때, 암호화 알고리즘에 관한 정보는 공격자도 이미 이용할 수 있다고 가정하는 것이 현명[0005]
하다고 종종 언급된다. 이러한 원칙은 커크호프의 원칙(Kerckhoffs' principle)으로 알려져 있고, 따라서 키의
비밀 유지만이 보안을 제공할 수 있다. 이 원칙은 널리 사용되는 알고리즘에 관한 정보의 비밀 유지는 어렵다는
사실에 기초한다. 키는 암호화 알고리즘에 비하면 작은 정보이므로, 보호하기가 더 쉬운 경우가 있다. 그러나,
키의 비밀을 지키는 것도 역시 쉽지는 않으며, 공격자가 소정의 방법으로 키를 입수했다면, 암호화된 데이터에
서 원래의 메시지를 복원해낼 수 있다.
위에서 언급한 바와 같이, 암호화 및 복호화에 동일한 키를 사용하는 암호화 알고리즘은 대칭키 알고리즘[0006]
(symmetric key algorithm)으로 알려져 있다. 암호화를 위한 하나의 키와 복호화를 위한 다른 하나의 키로 이루
어진, 한 쌍의 키를 사용하는 비대칭키 알고리즘(asymmetric key algorithm)도 있다. 이러한 비대칭 키 알고리
즘은 하나의 키는 공개키로 만들고, 하나의 키는 개인키로 유지하도록 한다. 상기 비대칭키 알고리즘에서는 공
개키는 알려져 있다고 하더라도, 개인키를 알아내는 것을 극히 어렵게 설계한다. 공개키 기술의 사용자는 개인
키는 비밀로 유지하는 반면, 어떤 사람이든지 자신에게 암호화된 메세지를 보낼 수 있도록 공개키는 공개할 수
있다.
키를 안전하게 유지하기 위하여, 대칭 암호화 알고리즘에서 최소한 80비트의 키 길이가 고려되어야 하며, 일반[0007]
적으로 사용되는 128비트의 키는 강력하게 보호될 수 있다. 공개키 암호 기법에 사용되는 키는 수학적인 구조를
가진다. 예를 들어, RSA 시스템에 사용되는 공개키는 두 개의 소수(prime number)의 곱이다. 따라서 동일한 수
준의 보안을 위하여, 공개키 시스템에서는 대칭키 시스템보다 키 길이가 더 길어져야 한다. 128비트 대칭 암호
등록특허 10-1747888
- 6 -
화와 동등한 수준의 보안을 위하여, 인수분해와 정수 이산 대수에 기초한 시스템에서는 3072비트의 키 길이가
제안된다.
대칭키 및 비대칭키 알고리즘에 기초한 키의 길이가 충분히 긴 경우에는, 높은 수준의 보안이 가능한 키를 생성[0008]
하는 것이 가능하다. 그러나, 키 분배에 문제가 있다. 예를 들어, 대칭키 암호 기법을 이용하여 서로 통신하고
자 하는 양 당사자가 있다면, 그들은 먼저 어떠한 키를 사용할 것인지를 결정하고, 다음으로 한 당사자로부터
다른 당사자까지 키를 안전하게 분배하여야 한다. 또한, 상기 키는 양 당사자에 의해 비밀이 유지되어야 한다.
제3자가 상기 키를 알아낼 위험은 상기 키가 사용되는 시간에 따라 증가한다. 따라서, 키는 일반적으로 제한된
기간, 예를 들어 6개월 또는 12개월 내에만 유효하다. 상기 유효한 기간이 경과된 후에는 새로운 키가 분배되어
야 한다.
비대칭 암호화에서의 키 분배는 양 당사자가 서로 통신하고자 하는 경우에, 키분배 문제에 부딪히게 된다. 양방[0009]
향으로 정보를 전송하기 위해서 양 당사자는 공개키를 서로 교환할 필요가 있다. 또한, 이러한 경우에 키는 한
정적인 유효 기간을 가진다. 다수의 다른 당사자들과 통신을 하는 당사자를 위한 유효한 공개키 분배 운영은 까
다로울 수 있다. 전형적인 예는, 비밀 정보를 긴급하게 다른 당사자에게 전송할 때 또는 아직 공개키를 교환하
지 않은 상태에서, 키의 유효기간이 만료되는 것이다.
또 다른 형태의 암호 기법은 양자 암호화(quantum cryptography)로서, 상기 양자 암호화는 안전한 통신을 보장[0010]
하기 위하여 양자역학을 이용한다. 상기 양자 암호화는 양 당사자로 하여금 메세지를 암호화 및 복호화하는 키
로 사용되는, 공용의 랜덤 비트열을 생성할 수 있도록 한다. 양자 암호화의 중요한 고유의 성질은 통신하는 두
명의 사용자가, 키를 알아내고자 하는 제3자의 존재를 감지할 수 있다는 것이다. 이것은 양자 역학의 본질적인
측면의 결과로서, 즉, 양자 시스템의 측정과정이 상기 양자 시스템에 영향을 주게 된다. 키를 도청하고자 하는
제3자는 어떤 식으로든 상기 키를 측정하여야 하기 때문에, 탐지가 가능한 이례적인 상황이 존재하게 된다. 그
러므로, 수학 함수의 계산상의 어려움에 의존하고, 도청의 징후 또는 키 보안의 개런티를 제공하지 못하는 전통
적인 공개키 암호화와는 대조적으로, 양자 암호화의 보안은 양자역학의 기본 원칙에 따른다.
양자 암호화는 키를 생성하고 분배하는 데에만 사용되며, 어떠한 메세지 데이터를 전송하는데는 사용되지 않는[0011]
다. 이러한 키는 메세지를 암호화 및 복호화하는 선택된 암호화 알고리즘과 함께 사용될 수 있으며, 이에 따라
표준 통신채널을 통해 전송될 수 있다.
양자 암호화에 따른 키 생성이, 키를 분배하고 개런티하는 매우 안전한 방법을 제공한다고 하더라도, 양자 암호[0012]
화에는 중대한 문제점이 있다. 양자역학의 특성에 의해, 양자 키가 분배될 수 있는 거리가 약 100킬로미터로 제
한된다는 것이다.
위에서 언급된 문제점이 주어진 상황에서, 암호키를 생성 및 분배하는 간단한 방법이 요구되고 있다. [0013]
발명의 내용
해결하려는 과제
본 발명에서 해결하고자 하는 문제점은, 서로 통신하고자 하는 노드가 스스로 키를 생성하여, 상기 노드에 암호[0014]
키를 분배할 필요가 없도록 하는 암호키의 생성에 관한 것이다.
[0015]
과제의 해결 수단
이러한 문제점은 본 발명의 첫번째 양상에 따른, 제1 노드와 제2 노드 사이의 안전한 통신에 사용할 수 있는 암[0016]
호화/복호화 키의 생성 방법에 의해 해결된다. 상기 암호화/복호화 키의 생성 방법은 상기 제1 노드(A)로부터
중앙 서버(2)로 상기 제2 노드(B)와 통신을 설정하기 위한 요청을 전송하는 단계, 상기 제1 노드(A)의 요청에
응답하여, 상기 중앙 서버(2)로부터 제1 키 생성 파일을 상기 제1 노드(A)로 전송하고, 제2 키 생성 파일을 상
기 제2 노드(B)로 전송하는 단계, 상기 제1 노드(A) 및 상기 제2 노드(B)가 각각 상기 제1 키 생성 파일 및 제2
키 생성 파일의 처리를 시작하는 단계, 상기 제1 노드(A)에서 제1 중간 데이터세트를 생성하고, 상기 제2 노드
(B)에서 제2 중간 데이터세트를 생성하는 단계, 상기 제1 중간 데이터세트를 상기 제1 노드(A)에서 상기 제2 노
드로 전송하는 단계, 상기 제1 중간 데이터세트의 비트를, 대응되는 상기 제2 중간 데이터세트의 비트와 비교하
등록특허 10-1747888
- 7 -
는 단계, 상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 비교된 비트가 동일하면 제1 값을
할당하고, 비교된 비트가 상이하면 제2 값을 할당함으로써 새로운 제3 중간 데이터세트를 생성하는 단계, 상기
제3 중간 데이터세트를 상기 제2 노드(B)로부터 상기 제1 노드(A)로 전송하는 단계, 상기 제3 중간 데이터세트
의 비트와, 대응되는 상기 제1 중간 데이터세트의 비트를 비교하는 단계, 상기 제3 및 제1 중간 데이터세트의
비트 대 비트 비교에 기초하여, 상기 제3 중간 데이터세트의 비트가 상기 제1 값으로 설정된 경우에는 대응되는
상기 제1 중간 데이터세트의 비트의 값을 유지하고, 상기 제3 중간 데이터세트의 비트가 상기 제2 값으로 설정
된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트를 무시함으로써 제1 암호 키를 생성하는 단계 및 상기
제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 대응되는 상기 제2 중간 데이터세트의 비트와 상
기 제1 중간 데이터세트의 비트가 동일한 경우에는 상기 제2 중간 데이터세트의 비트 값을 유지하고, 비교된 비
트가 상이한 경우에는 상기 제2 중간 데이터세트의 비트를 무시함으로써 제2 암호 키를 생성하는 단계를 포함하
고, 상기 제1 및 제2 암호 키는 동일한 것을 특징으로 한다.
본 발명의 두번째 양상에 따르면, 상기 문제점은 제1 노드와 제2 노드 사이의 안전한 통신에 사용할 수 있는,[0017]
상기 제1 노드에서의 암호화/복호화 키의 생성 방법에 의해 해결된다. 상기 암호화/복호화 키의 생성 방법은 중
앙 서버(2)에 상기 제2 노드(B)와의 안전한 통신을 설정하기 위한 요청을 전송하는 단계, 상기 중앙 서버(2)로
부터 상기 요청에 대한 응답으로 제1 키 생성 파일을 수신하는 단계, 상기 제1 키 생성 파일을 처리하는 단계,
제1 중간 데이터세트를 생성하는 단계, 상기 제1 중간 데이터세트를 상기 제2 노드(B)로 전송하는 단계, 상기
제2 노드(B)로부터 제3 중간 데이터세트를 수신하는 단계, 상기 제3 중간 데이터세트의 비트와, 대응되는 상기
제1 중간 데이터세트의 비트를 비교하는 단계 및 상기 제3 및 제1 중간 데이터세트의 비트 대 비트 비교에 기초
하여, 상기 제3 중간 데이터세트의 비트가 제1 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의
비트의 값을 유지하고, 상기 제3 중간 데이터세트의 비트가 제2 값으로 설정된 경우에는 대응되는 상기 제1 중
간 데이터세트의 비트를 무시함으로써 제1 암호 키를 생성하는 단계를 포함한다.
본 발명의 세번째 양상에 따르면, 상기 문제점은 제1 노드와 제2 노드 사이의 안전한 통신에 사용할 수 있는,[0018]
상기 제2 노드에서의 암호화/복호화 키의 생성 방법에 의해 해결된다. 상기 암호화/복호화 키의 생성 방법은 상
기 제1 노드(A)와 상기 제2 노드(B) 사이의 안전한 통신을 시작하기 위한 상기 제1 노드(A)로부터의 요청에 대
한 응답으로, 중앙 서버(2)로부터 제2 키 생성 파일을 수신하는 단계, 상기 제2 키 생성 파일을 처리하는 단계,
제2 중간 데이터세트를 생성하는 단계, 상기 제1 노드(A)로부터 제1 중간 데이터세트를 수신하는 단계, 상기 제
1 중간 데이터세트의 비트와, 대응되는 상기 제2 중간 데이터세트의 비트를 비교하는 단계, 상기 제1 및 제2 중
간 데이터세트의 비트 대 비트 비교에 기초하여, 비교된 비트가 동일하면 제1 값을 할당하고 비교된 비트가 상
이하면 제2 값을 할당함으로써 새로운 제3 중간 데이터세트를 생성하는 단계, 상기 제3 중간 데이터세트를 상기
제1 노드(A)로 전송하는 단계 및 상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교에 기초하여, 대응되는
상기 제2 중간 데이터세트의 비트와 상기 제1 중간 데이터세트의 비트가 동일한 경우에는 상기 제2 중간 데이터
세트의 비트 값을 유지하고, 비교된 비트가 상이한 경우에는 상기 제2 중간 데이터세트의 비트를 무시함으로써
제2 암호 키를 생성하는 단계를 포함한다.
본 발명의 일실시예에 의하면, 상기 제1 키 생성 파일 및 제2 키 생성 파일을 전송하는 단계는 각각의 키 생성[0019]
파일에 첨부된 메타데이터를 전송하는 단계를 포함하는 것을 특징으로 한다.
본 발명의 다른 실시예에 의하면, 상기 메타데이터는 상기 제1 및 제2 암호 키를 생성하는데 사용되는 상수를[0020]
포함한다. 또한, 상기 메타데이터는 상기 암호 키 길이에 대한 정보를 포함한다.
본 발명의 다른 실시예에 의하면, 미리 설정된 간격 내에 상기 암호 키 길이가 무작위적으로 생성될 수 있다. [0021]
본 발명의 네번째 양상에 따르면, 상기 암호화/복호화 키의 생성 방법의 단계를 수행하는 코드 수단을[0022]
포함하고, 컴퓨터 상에서 실행되는 컴퓨터 프로그램이 제공된다.
본 발명의 다섯번째 양상에 따르면, 상기 암호화/복호화 키의 생성 방법을 수행하기 위하여 컴퓨터에 의해 판독[0023]
등록특허 10-1747888
- 8 -
가능한 매체에 저장된 프로그램 코드 수단을 포함하고, 컴퓨터 상에서 실행되는 컴퓨터 프로그램 제품이 제공된
다.
발명의 효과
본 발명에 따르면, 서로 통신하고자 하는 노드 자체에서 키가 생성되므로 키 분배의 필요가 없다는 이점이[0024]
있다.
도면의 간단한 설명
본 발명은 첨부된 도면을 참고로 하여 아래에서 설명된다. [0025]
도 1은 본 발명에 따른 암호키의 생성 방법을 나타내는 순서 흐름도.
도 2는 중앙 서버로부터 통신을 하고자 하는 노드로 전송되는 키 생성 파일의 일예시도.
도 3은 제1 및 제2 중간 데이터세트를 생성하는데 사용되는 상수의 일예시도.
도 4는 제1 노드(A)에서의 제1 중간 데이터세트 및 제2 노드(B)에서의 제2 중간 데이터세트의 일예시도.
도 5는 제1 및 제2 중간 데이터세트와 제2 노드(B)의 암호키 생성 사이의 매칭 과정의 일예시도.
도 6은 제1 노드(A)의 암호키 생성의 일예시도.
발명을 실시하기 위한 구체적인 내용
본 발명은 다양한 실시예를 통하여 상세하게 설명될 것이다. 상기 실시예는 본 발명의 이해를 돕기 위한 설명[0026]
및 예시로 이해되어야 하며, 이에 한정되는 것은 아니다.
도 1은 본 발명에 따른 암호키의 생성 방법에 관한 순서 흐름도를 나타낸다. 상기 방법의 전반적인 과정은, 안[0027]
전한 암호화/복호화 키를 사용함으로써 서로 안전한 통신을 시작하고자 하는 두 개의 노드, 즉, 노드 A와 노드
B에 의해서 수행된다. 또한 상기 방법은 중앙 서버(2)의 도움을 받아 수행된다. 도 1에서, 제1 노드(A)는 좌측
에 도시되어 있고, 제2 노드(B)는 우측에 도시되어 있는데, 즉, 제1 노드(A)에 의해 수행되는 단계는 점선의 좌
측에 도시되어 있고, 제2 노드(B)에 의해 수행되는 단계는 점선의 우측에 도시되어 있다. 실제로, 제1 노드(A)
는 컴퓨터일 수 있고, 상기 컴퓨터의 사용자는 제2 노드(B)인 은행의 컴퓨터와 안전한 통신을 시작하고자 할 수
있다. 제1 노드(A) 및 제2 노드(B)는 서로 통신하려고 하는 어떠한 통신 장치도 될 수 있음은, 이 기술 분야의
통상의 기술자에게 자명한 사실이다.
중앙 서버(2)는 보안 인증서와 같은 것에 의해 안전하게 데이터를 송신 및 수신할 수 있는 통신 장치라면, 어떠[0028]
한 것이든 이에 해당할 수 있다. 노드가 본 발명에 따른 키 생성 방법을 사용할 수 있기 위해서는, 상기 노드는
중앙 서버(2)와 통신할 수 있도록 허가를 받을 필요가 있다. 따라서, 중앙 서버(2)는 상기 키 생성 방법 사용을
위한 허가를 받은 모든 사용자의 기록을 보관한다. 위에서 언급한 바와 같이, 중앙 서버(2)와 노드 간의 통신은
일종의 보안 인증서를 사용함으로써 안전하게 된다. 특히, X509 인증서 또는 그와 유사한 것이 안전한 통신을
위하여 사용될 수 있다.
본 발명에 따른 암호화/복호화 키의 생성 방법을 예를 들어 설명할 것이다. 상기 방법은 하나의 노드, 예를 들[0029]
어 제1 노드(A)가 제2 노드(B)와의 통신을 설정하기 위한 요청을 중앙 서버(2)에 전송하면서 시작된다. 중앙 서
버(2)는 먼저 제1 노드(A)가 제2 노드(B)와 통신을 시작하기 위한 허가를 받았는지 여부를 체크하고, 또한 제2
노드(B)가 중앙 서버(2) 및 제1 노드(A)와 통신하기 위한 허가를 받았는지를 체크한다. 상기 두 개의 노드가 서
로 통신을 시작하기 위한 허가를 받은 경우, 중앙 서버(2)는 제1 노드(A)의 요청에 대한 응답으로 제1 키 생성
파일을 제1 노드(A)로 전송하고, 제2 키 생성 파일을 제2 노드(B)로 전송한다.
등록특허 10-1747888
- 9 -
도 2는 중앙 서버로부터 제1 노드(A) 및 제2 노드(B)로 전송되는 키 생성 파일의 예를 나타낸다. 상기 파일은[0030]
제1 노드(A) 및 제2 노드(B) 에 의해 실행되면 암호화/복호화 키를 생성하는 프로세스 파일을 포함한다. 이하에
서 설명할, 제1 노드 및 제2 노드에서의 프로세스가 상이하기 때문에, 제1 노드로 전송된 프로세스 파일과 제2
노드로 전송된 프로세스 파일은 서로 다르다. 도 2에 도시된 바와 같이, 상기 키 생성 파일은 메타데이터(M1,
M2,..., Mn)를 포함한다. 상기 메타데이터는 암호화/복호화 키를 생성하는데 사용되는 정보를 포함할 수 있고,
동일한 메타데이터가 제1 노드 및 제2 노드에 전송된다. 상기 메타데이터의 예들은 키를 생성하는데 사용되는
상수이다. 도 3은 키 생성시에 이용되는 제1 및 제2 중간 데이터세트를 생성하는데 사용되는 이러한 상수의 예
를 도시한다. 상기 메타데이터는 상기 키 생성 파일이 동일한 기원을 가지는지를 비교하는데 사용되는 타임 태
그(time tag)도 포함할 수 있다.
또한, 상기 메타데이터는 사용될 키 길이(length)에 관한 정보 또는 키를 생성하는데 사용되어야 하는 키의 비[0031]
트를 포함할 수 있다. 이 기술 분야의 통상의 기술자에게 잘 알려진 바와 같이, 키 생성 프로세스의 보안성을
더욱 증가시키기 위하여 다수의 또 다른 메타데이터가 사용될 수 있다.
상기 키 생성 파일이 제1 노드 및 제2 노드에 의하여 수신되면, 각각의 노드는 상기 파일을 처리하기 시작한다.[0032]
먼저, 도 3에 도시된 상수의 값을 이용하여, 제1 노드는 제1 중간 데이터세트를, 제2 노드는 제2 중간 데이터세
트를 생성한다. 이 경우에, 상기 상수는 문자에 각각 관계되는 4 이진 비트(binary bit)를 포함한다. 상기 상수
의 길이는 임의로 가변될 수 있고, 상기 비트는 문자, 그림, 그리스 기호 등에 관계되도록 할 수 있다.
제1 노드의 제1 중간 데이터세트 및 제2 노드의 제2 중간 데이터세트의 예가 도 4에 도시된다. 상기 중간 데이[0033]
터세트는 B.B.S.(Blum Blum Slub), 포르투나(Fortuna), 메르센 트위스터(Mersenne twister)와 같은 의사 난수
생성 알고리즘을 사용하는 잘 알려진 의사 난수(pseudorandom number) 생성기를 사용함으로써 생성될 수
있으며, 이 경우에는 A부터 D까지의 문자의 랜덤 시퀀스를 생성하게 된다. 상기 문자의 랜덤 시퀀스는 도 4의
상기 제1 및 제2 중간 데이터세트의 헤더에 도시된다. 따라서, 상기 중간 데이터세트를 생성하기 위하여, 문자
의 시퀀스가 먼저 의사 무작위적(pseudorandomly)으로 결정되고, 그 다음에 도 3의 상수에 따라 상기 문자와 대
응되는 올바른 값이 할당된다. 만약 이러한 할당 결과, 0만으로 이루어지거나 1만으로 이루어진 중간 데이터세
트가 생성되는 경우에는, 이러한 결과는 제거되고, 새로운 랜덤 시퀀스가 생성된다.
상기 제1 및 제2 중간 데이터세트는 의사 무작위적으로 생성되므로, 양자는 서로 상이하다. 본 발명을 예를 들[0034]
어 쉽게 설명하기 위하여, 도 4의 예에서는 상기 중간 데이터세트의 길이를 8비트로 한다. 그러나, 실제로는 상
기 중간 데이터세트들은 일반적으로 64비트에서 2048비트 사이의 길이를 가진다. 비트 길이는 위에서 언급한 메
타데이터의 일부분이 될 수 있고, 노드로부터 새로운 요청이 발생할 때마다 중앙 서버(2)에 의해 무작위적으로
설정될 수 있다.
상기 제1 및 제2 중간 데이터세트가 생성된 후에, 제1 노드는 상기 제1 중간 데이터세트를 아무런 보호 없이,[0035]
즉, 공개적으로 제2 노드(B)로 전송하게 된다.
제2 노드(B)는 상기 제1 및 제2 중간 데이터세트를 서로 비교한다. 비교 결과는 도 5에 도시된 표에서 매치[0036]
1(Match 1)이라고 칭한다. 값 A(Value A) 및 값 B(Value B)는 각각 상기 제1 및 제2 중간 데이터세트에 해당한
다. 비교는 비트 대 비트의 비교를 의미하고, 상기 결과는 제1 및 제2 중간 데이터세트의 각각 대응되는 비트
값이 동일하면 'T'(true)이고, 제1 및 제2 중간 데이터세트의 각각 대응되는 비트 값이 상이하면 'F'(false)이
다. 상기 결과인 상기 매치 1은, 새로운 제3 중간 데이터세트인 값 1(Value 1)을 만들어내는데 사용되며, 비교
된 비트가 동일하면 제1 값을 할당하고 비교된 비트가 상이하면 제2 값을 할당함으로써 상기 값 1을
만들어낸다. 여기서, 비교된 비트가 동일한 경우에는 '1'이 사용되고, 상기 비교된 비트가 상이한 경우에는 '
0'이 사용된다. 그러나, 본 발명으로부터 벗어나지 않는 범위 내에서라면 다른 방식이 사용될 수도 있다.
등록특허 10-1747888
- 10 -
상기 제3 중간 데이터세트는 제2 노드(B)로부터 제1 노드(A)로 공개적으로 전송된다. 다음으로, 제1 노드(A)는[0037]
상기 제3 및 제1 중간 데이터세트를 비트 대 비트로 비교한 결과에 근거하여 제1 암호 키를 생성하는데, 상기
제3 중간 데이터세트의 비트가 상기 제1 값인 경우에는 그에 대응되는 상기 제1 중간 데이터세트의 비트의 값을
유지하고, 상기 제3 중간 데이터세트의 비트가 상기 제2 값인 경우에는 상기 제1 중간 데이터세트의 비트를 무
시함으로써 상기 제1 암호 키를 생성한다. 도 6에 도시된 경우에서는, 상기 제1 값은 '1'에 해당하고, 상기 제2
값은 '0'에 해당한다. 도 6에서 명백하게 나타난 바와 같이, 상기 키(키 A)는, 키 생성 과정에서 4비트가 무시
되었기 때문에, 원래의 8비트 대신 4비트로 이루어진다.
위에서 언급한 바와 같이, 상기 제1 중간 데이터세트와 제3 중간 데이터세트는 공개적으로 전송된다. 제3자가[0038]
그것들을 중간에 가로채더라도, 이 데이터를 이용해서 키를 생성할 방법이 없는데, 왜냐하면 상기 제3 데이터세
트에 포함된 '1'은 진정한 값 '1'을 의미하는 것이 아니라 상기 제1 및 제2 중간 데이터세트가 동일한 값을 가
진다는 것을 의미하는 것이기 때문이다. 따라서 상기 제3 데이터세트의 '1'은 실제로는 '1' 또는 '0'이 될 수
있다.
제2 노드(B)에서는, 제1 및 제2 중간 데이터세트의 비트 대 비트 비교 결과에 기초하여 제2 암호 키가 생성되는[0039]
데, 도 5에 도시된 바와 같이, 상기 제2 중간 데이터세트의 비트와 그에 대응되는 제1 중간 데이터세트의 비트
값이 동일한 경우에는 제2 데이트세트의 비트 값을 유지하고, 비교된 비트가 상이한 경우에는 제2 중간 데이트
세트의 비트를 무시함으로써 상기 제2 암호 키(키 B)가 생성된다. 도 5 및 도 6에서 알 수 있듯이, 상기 제1 암
호 키와 제2 암호 키는 동일하다. 상기 암호 키는 제1 노드(A)와 제2 노드(B) 간에 전송되는 정보의 암호화/복
호화에 사용될 수 있다. 본 발명에 따른 방법에 의하여 생성된 암호 키는 어떠한 알려진 암호화 방법에도 적용
될 수 있다. 따라서, 본 발명은 암호화/복호화가 어떻게 이루어지는가에 대한 것이 아니라 암호 키의 생성에 초
점을 맞춘 것이다. 상기 제1 및 제2 노드 사이의 통신 세션이 활성화되어 있는 한, 상기 생성된 키는 유효할 것
이다. 한편, 제1 노드(A) 및 제2 노드(B)에 의해 상기 암호 키 생성이 완료된 때에는, 중앙 서버(2)로부터 수신
된 상기 키 생성 파일은 각각의 노드에서 삭제된다.
지금까지 본 발명에 따른 방법의 전체적인 과정이 상세하게 설명되었다. 한편, 본 발명은 제1 노드(A)에서의 암[0040]
호화/복호화 키의 생성 방법과도 관련된다. 이러한 방법은 위에서 설명된 전체적인 과정의 일부분에 해당되며,
따라서 간략하게 설명하도록 한다. 제1 노드(A)에 의해 수행되는 방법은 제2 노드(B)와의 안전한 통신을 시작하
기 위한 요청을 중앙 서버(2)로 전송하면서 시작된다. 제1 노드(A)는 중앙 서버(2)로부터 제1 키 생성 파일을
수신하고, 이를 처리하기 시작한다. 이로부터 상기 제1 중간 데이터세트가 생성되고, 생성된 상기 제1 중간 데
이터세트는 상술한 바와 같이 제2 노드(B)로 전송된다.
다음으로, 제1 노드(A)는 제2 노드(B)로부터 제3 중간 데이터세트를 수신하게 되고, 상기 제3 중간 데이터세트[0041]
의 비트와, 이에 대응되는 상기 제1 중간 데이터세트의 비트를 비교한다. 제1 노드(A)는 상기 제3 및 제1 중간
데이터세트의 비트 대 비트 비교에 기초하여 상기 제1 암호 키를 생성하게 되는데, 상기 제3 중간 데이터세트의
비트가 제1 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트의 값을 유지하고, 상기 제3 중
간 데이터세트의 비트가 제2 값으로 설정된 경우에는 대응되는 상기 제1 중간 데이터세트의 비트를 무시함으로
써 상기 제1 암호 키를 생성하게 된다.
제2 노드(B) 또한 전체적인 방법의 일부분을 수행하게 되며, 간략하게 설명하도록 한다. 제2 노드(B)에서의 암[0042]
호화/복호화 키의 생성 방법은 제2 노드(B)가 중앙 서버(2)로부터 제2 키 생성 파일을 수신하고, 이의 처리를
시작함으로써 시작된다. 이로부터 상기 제2 중간 데이터세트가 생성된다. 그 후에 제2 노드(B)는 제1 노드(A)로
부터 제1 중간 데이터세트를 수신하고, 제1 중간 데이터세트의 비트와 그에 대응되는 제2 중간 데이터세트의 비
트를 비교한다. 다음으로, 제2 노드(B)는 상기 제1 및 제2 중간 데이터세트의 비트 대 비트 비교 결과에 기초하
여 새로운 제3 중간 데이터세트를 만들어 내는데, 비교된 비트가 동일하면 제1 값을 할당하고 비교된 비트가 상
이하면 제2 값을 할당함으로써 상기 제3 중간 데이터세트를 생성한다. 생성된 제3 중간 데이터세트는 제1 노드
(A)로 전송된다.
등록특허 10-1747888
- 11 -
제2 노드(B)는 제1 및 제2 중간 데이터세트의 비트 대 비트 비교 결과에 기초하여 제2 암호 키를 생성하는데,[0043]
상기 제2 중간 데이터세트의 비트와 그에 대응되는 제1 중간 데이터세트의 비트 값이 동일한 경우에는 제2 중간
데이트세트의 비트 값을 유지하고, 상기 제2 중간 데이터세트의 비트와 그에 대응되는 제1 중간 데이터세트의
비트 값이 상이한 경우에는 제2 중간 데이트세트의 비트를 무시함으로써 상기 제2 암호 키가 생성된다.
따라서, 위에서 설명된 방법에 의하면, 암호 키가 사용될 각 노드에서 쉽고 안전한 방법으로 암호 키를 생성하[0044]
는 것이 가능하다. 키 분배의 필요성이 더 이상 존재하지 않게 되므로 이러한 방법은 매우 큰 이점이 있다. 상
기 암호 키는 일회용이므로 하나의 통신 세션이 활성화되는 동안만 유효하다. 게다가, 상기 암호 키는 두 개의
분리된 노드에서 두 개의 독립적인 과정에 따라 생성된다.
위의 방법이 매우 안전하긴 하지만, 상기 키 생성 파일에 포함된 메타데이터를 사용함으로써 안정성은 더욱 증[0045]
대될 수 있다. 예를 들어, 상기 메타데이터는 키 생성 과정의 결과의 매 세 비트 또는 두 비트만이 키로서 사용
됨을 명시하고 있다. 메타데이터의 유사한 사용은 제1 노드(A)와 제2 노드(B)가 서로 통신할 경우 매 세 비트
또는 두 비트만이 키 생성 과정 동안 독출되는 것을 설명할 수 있다.
본 발명이 바람직한 실시예와 관련하여 설명되었다 하더라도 본 발명이 이에 한정되지 않는다. 본 발명은 수반[0046]
되는 특허청구범위에 의해 가장 잘 정의될 수 있고, 본 발명의 범위 내에서 비슷한 많은 다른 실시예와 변경이
가능하다.
등록특허 10-1747888
- 12 -
도면
도면1
도면2
도면3
등록특허 10-1747888
- 13 -
도면4
도면5
도면6
등록특허 10-1747888
- 14 -
카테고리 없음