"휫필드 디피"의 두 판 사이의 차이
(→특징) |
|||
17번째 줄: | 17번째 줄: | ||
주요 업적으로 디피-헬먼 키 교환(Diffie–Hellman key exchange)은 암호 키를 교환하는 하나의 방법으로, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다. 휫필드 디피와 마틴 헬먼이 1976년에 발표하였다.디피-헬먼 키 교환은 기초적인 암호학적 통신 방법을 수립하였으며, 이후 1977년 공개 키 암호 방식인 RSA 암호가 제안되었다. | 주요 업적으로 디피-헬먼 키 교환(Diffie–Hellman key exchange)은 암호 키를 교환하는 하나의 방법으로, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다. 휫필드 디피와 마틴 헬먼이 1976년에 발표하였다.디피-헬먼 키 교환은 기초적인 암호학적 통신 방법을 수립하였으며, 이후 1977년 공개 키 암호 방식인 RSA 암호가 제안되었다. | ||
− | + | ===방식=== | |
# 앨리스와 밥이 공개된 통신망에서 디피-헬먼 키 교환을 하기 위해서는 다음과 같은 절차를 거친다. | # 앨리스와 밥이 공개된 통신망에서 디피-헬먼 키 교환을 하기 위해서는 다음과 같은 절차를 거친다. | ||
# 앨리스가 소수 p, 그리고 1부터 p-1까지의 정수 g를 선택하여 사전에 밥과 공유한다. | # 앨리스가 소수 p, 그리고 1부터 p-1까지의 정수 g를 선택하여 사전에 밥과 공유한다. | ||
27번째 줄: | 27번째 줄: | ||
: 마지막 단계에서 <math>{\displaystyle B^{a}{\text{ mod }}p=(g^{b})^{a}{\text{ mod }}p=g^{ab}{\text{ mod }}p}, {\displaystyle A^{b}{\text{ mod }}p=(g^{a})^{b}{\text{ mod }}p=g^{ab}{\text{ mod }}p}</math>이며 따라서 앨리스와 밥은 <math>g^{ab} \text{ mod }p</math>라는 공통의 비밀 키를 공유하게 된다. 앨리스와 밥 이외의 인물은 a와 b를 알 수 없으며,<math> g, p, g^{a} \text{ mod }p, g^{b} \text{ mod }p</math>를 알 수 있다. | : 마지막 단계에서 <math>{\displaystyle B^{a}{\text{ mod }}p=(g^{b})^{a}{\text{ mod }}p=g^{ab}{\text{ mod }}p}, {\displaystyle A^{b}{\text{ mod }}p=(g^{a})^{b}{\text{ mod }}p=g^{ab}{\text{ mod }}p}</math>이며 따라서 앨리스와 밥은 <math>g^{ab} \text{ mod }p</math>라는 공통의 비밀 키를 공유하게 된다. 앨리스와 밥 이외의 인물은 a와 b를 알 수 없으며,<math> g, p, g^{a} \text{ mod }p, g^{b} \text{ mod }p</math>를 알 수 있다. | ||
− | === | + | === 예제 === |
+ | 이 과정을 실제 숫자를 통해 예를 들면 다음과 같다. 여기서는 설명을 위해 작은 크기의 소수를 사용하지만, 실제 응용에서는 안전을 위해 10진수 수백~수천자리 크기의 큰 소수를 사용한다. 공개된 정보는 파란색으로, 비밀 정보는 붉은색 굵은 글씨로 표시하였다. | ||
+ | |||
+ | 앨리스와 밥은 p=23, g=5를 사용하기로 합의한다. | ||
+ | 앨리스가 비밀 정보를 전송하기 위해 임의의 정수 a=6을 고른 후, 밥에게 <math>A = g^{a} mod p</math> 을 전송한다. | ||
+ | <math>A = 5^{6} mod 23</math> | ||
+ | A = 15,625 mod 23 | ||
+ | A = 8 | ||
+ | 밥은 임의의 정수 b=15 를 고르고, 앨리스에게 <math>B = g^{b} mod p</math> 를 전송한다. | ||
+ | <math>B = 5^{15} mod 23</math> | ||
+ | B = 30,517,578,125 mod 23 | ||
+ | B = 19 | ||
+ | 앨리스는 밥에게서 받은 B 를 바탕으로 <math>s = B^{a} mod p</math> 를 계산한다. | ||
+ | <math>s = 19^{6} mod 23</math> | ||
+ | s = 47,045,881 mod 23 | ||
+ | s = 2 | ||
+ | 밥은 앨리스에게서 받은 A 를 바탕으로 <math>s = A^{b} mod p</math> 를 계산한다. | ||
+ | <math>s = 8^{15} mod 23</math> | ||
+ | s = 35,184,372,088,832 mod 23 | ||
+ | s = 2 | ||
+ | 앨리스와 밥은 이제 비밀 키 s = 2 를 공유하게 되었다. 여기서 p가 충분히 클 경우, 외부에서 비밀 키를 알아내기 위해 도청을 하는 도청자 이브는 g^a나 g^b를 통해 s를 알아낼 수 없는 것으로 알려져 있다. 앨리스와 밥은 두 사람 만이 아는 비밀 키 s를 갖게 되었으므로, 대칭 키 암호를 이용해 이후의 통신을 암호화할 수 있다. 그러나 p나 a, b가 너무 작을 경우, 도청자는 가능한 모든 조합을 다 계산해보는 방식으로 s를 계산해낼 수 있다. 따라서 실제 비밀 통신에는 충분히 큰 소수를 사용해야 한다. 만약 p가 최소 300자리의 소수이고, a와 b가 각각 100자리 이상의 정수일 경우, 현재 인류가 보유한 모든 컴퓨터를 동원해도 공개된 정보로부터 비밀 키를 알아낼 수 없는 것으로 알려져 있다. | ||
===장단점=== | ===장단점=== | ||
− | |||
== 취약점과 해결방안 == | == 취약점과 해결방안 == |
2019년 8월 5일 (월) 16:55 판
휫필드디피(Whitfield Diffie)휘트필드 디피는 1944년 06월 05일(75세) 미국 워싱턴 D.C.에서 태어났다. 휘트필드 디피와 마틴 헬만은 1976년 논문 〈New Directions in Cryptography〉에서 암호학적 열쇠를 분배하는 혁신적인 방법(디피-헬만 키 교환)을 제안했다. 이 방식에서부터 현대적인 공개 키 암호 방식이 시작되었다.
개요
수상경력
휫필드 디피는 1994년 06월 05일 미국 워싱터 D.C.에서 태어났고 1991년부터 썬 마이크로시스템즈에서 암호학 관련 분야를 연구하고 있다. 1965년 : MIT에서 수학 석사 학위를 받았다. 1976년 : 논문 〈New Directions in Cryptography〉에서 암호학적 열쇠를 분배하는 혁신적인 방법(디피-헬만 키 교환)을 제안했다. 1996년 : 파리 카넬라키스 상 을 수상 2000년 : 마르코니 상 수상 2010년 : IEEE 리처드 W. 해밍 메달 수상 2011년 : 컴퓨터 역사박물관 펠로우 2015년 : 튜링상(Turing Award ) 수상, 이상은 ACM에서 컴퓨터 과학 분야에 업적을 남긴 사람에게 매년 시상하는 상이다. "컴퓨터 과학의 노벨상"이라고도 불린다. 영국의 수학자이며 현대 전산학의 아버지라 할 수 있는 앨런 튜링의 이름을 땄다.
특징
주요 업적으로 디피-헬먼 키 교환(Diffie–Hellman key exchange)은 암호 키를 교환하는 하나의 방법으로, 두 사람이 암호화되지 않은 통신망을 통해 공통의 비밀 키를 공유할 수 있도록 한다. 휫필드 디피와 마틴 헬먼이 1976년에 발표하였다.디피-헬먼 키 교환은 기초적인 암호학적 통신 방법을 수립하였으며, 이후 1977년 공개 키 암호 방식인 RSA 암호가 제안되었다.
방식
- 앨리스와 밥이 공개된 통신망에서 디피-헬먼 키 교환을 하기 위해서는 다음과 같은 절차를 거친다.
- 앨리스가 소수 p, 그리고 1부터 p-1까지의 정수 g를 선택하여 사전에 밥과 공유한다.
- 앨리스가 정수 a를 선택한다. 이 정수는 외부에 공개되지 않으며, 밥 또한 알 수 없다.
- 앨리스가 즉 를 p로 나눈 나머지를 계산한다.
- 밥이 마찬가지로 정수 b를 선택하여 를 계산한다.
- 앨리스와 밥이 서로에게 A와 B를 전송한다.
- 앨리스가 를, 밥이 를 계산한다.
- 마지막 단계에서 이며 따라서 앨리스와 밥은 라는 공통의 비밀 키를 공유하게 된다. 앨리스와 밥 이외의 인물은 a와 b를 알 수 없으며,를 알 수 있다.
예제
이 과정을 실제 숫자를 통해 예를 들면 다음과 같다. 여기서는 설명을 위해 작은 크기의 소수를 사용하지만, 실제 응용에서는 안전을 위해 10진수 수백~수천자리 크기의 큰 소수를 사용한다. 공개된 정보는 파란색으로, 비밀 정보는 붉은색 굵은 글씨로 표시하였다.
앨리스와 밥은 p=23, g=5를 사용하기로 합의한다. 앨리스가 비밀 정보를 전송하기 위해 임의의 정수 a=6을 고른 후, 밥에게 을 전송한다. A = 15,625 mod 23 A = 8 밥은 임의의 정수 b=15 를 고르고, 앨리스에게 를 전송한다. B = 30,517,578,125 mod 23 B = 19 앨리스는 밥에게서 받은 B 를 바탕으로 를 계산한다. s = 47,045,881 mod 23 s = 2 밥은 앨리스에게서 받은 A 를 바탕으로 를 계산한다. s = 35,184,372,088,832 mod 23 s = 2 앨리스와 밥은 이제 비밀 키 s = 2 를 공유하게 되었다. 여기서 p가 충분히 클 경우, 외부에서 비밀 키를 알아내기 위해 도청을 하는 도청자 이브는 g^a나 g^b를 통해 s를 알아낼 수 없는 것으로 알려져 있다. 앨리스와 밥은 두 사람 만이 아는 비밀 키 s를 갖게 되었으므로, 대칭 키 암호를 이용해 이후의 통신을 암호화할 수 있다. 그러나 p나 a, b가 너무 작을 경우, 도청자는 가능한 모든 조합을 다 계산해보는 방식으로 s를 계산해낼 수 있다. 따라서 실제 비밀 통신에는 충분히 큰 소수를 사용해야 한다. 만약 p가 최소 300자리의 소수이고, a와 b가 각각 100자리 이상의 정수일 경우, 현재 인류가 보유한 모든 컴퓨터를 동원해도 공개된 정보로부터 비밀 키를 알아낼 수 없는 것으로 알려져 있다.
장단점
취약점과 해결방안
각주
참고자료
- howlingpixel 공식 홈페이지 - 〈http://a.to/19RG0rH〉
같이 보기