본문 바로가기

Backend/정보보안

[정보보안] Diffie-Hellman란?

728x90

대칭키, 공개키암호의 차이 

- 대칭키 암호 : 속도가 빠르다, 키 공유가 필요하다.

- 공개키 암호 : 속도가 느리다, 키 공유가 필요없다.

 

대칭키 암호 예 

전화 : 가입자 <-> 이동통신사, 대칭키는 유심에 심어져 있다.

카톡 : 가입자 <-> 카톡, 대칭키는 분배 정책에 의해 할당되어 있다.

 

대칭키 암호에서 필요한 키의 개수

Alice, Bob, Carlie : (2 * 3) / 2 = 3

 

공개키 암호에서 필요한 키의 개수 

n명이 존재할 경우 2n = O(n)


Diffie-Hellman

- key exchange 암호화 키 - 공유된 대칭키를 설정하기 위해 사용한다. 

- 암호화나, 전자서명을 위한 알고리즘이 아니다 

- RSA는 소인수분해의 어려움에 기초하고 있지만, DH는 discrete log problem에 기초하고 있다.

Discrete log problem

일때 g와 x와 p를 안다면 y는 구하기 쉽지만

g와 y와 p를 알땐 x를 구하기는 어렵다는 방식에 기초하여 만들어진 알고리즘이다.

 

Let p be prime, let g be a generator

- 어떤 x가 {1,2,…,p-1}에서 n이 존재한다. s.t. x = gn mod p

mod (%) n

완전 잉여계 : 나머지들로 이루어진 집합 
Z6 = {0,1,2,3,4,5} / 6으로 나눈 나머지 
Z11 = {0,1,2,3,4,5,6,7,8,10} //11로 나눈 나머지

기약 잉여계 : 완전 잉여계에서 0과 modulus와 서로소(공약수가 1뿐)가 아닌 수를 제외한 집합
Z6* : {1,5} 
Z11* = {1,2,3,4,5,6,7,8,9,10}

 

 

동작원리

1. 공개적으로 교환할 generator를 생성 p 는 소수, g는 생성자
2. A는 개인키 a를 이용하여 g^a mod p를 생성
3. B는 개인키 b를 이용하여  g^b mod p를 생성
4. A는 B에게 g^a mod p를 보내고, B는 g^b mod p를 보낸다. 
5. A는 자신의 개인키 a를 이용하여,  g^ab mod p를 생성하고
   B는 자신의 개인키 b를 이용하여, g^ab mod p를 생성한다.
6. A와  B사이에서 생성된 키를 대칭키로 이용한다. 
7. 이때 A와 B사이에서 데이터를 가로챈 공격자는 가로챈 값들로  g^ab mod p를 만들 수 없다. 
장단점

장점 : 대칭키를 비밀스럽게 생성할 수 있지만, 비밀키를 필요할 떄마다 다르게 생성해 비밀키 보관에 따른 위험성이 작다.

단점 : 인증 기능이 없다는 것, 공개키의 변조를 방지하기 위해 전자서명된 공개키를 상호 교환하는 인증된 디피헬만 키교환을 사용해야함.

 

 

디피-헬만 - 해시넷

디피-헬만(Diffie-Hellman)은 최초의 공개키 암호 알고리즘으로서, 1976년, 미국 스탠퍼드 대학의 연구원 휫필드 디피(Whitfield Diffie)와 마틴 헬만(Martin Hellman)이 공동 개발하여 발표한 것이다. 디피-헬

wiki.hash.kr

 

728x90