ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 20221109 TIL 디피 헬먼 키 교환
    TIL 2022. 11. 9. 22:01

     

    오늘은 이름이 신기한 디피-헬먼 키 교환에 대해 찾아보았다.

    디피-헬먼 키 교환방식은 기초적인 암호 통신 방법이고,

    생각보다 어렵지 않은 연산을 이용해서 비밀 키를 구하는 신박한 방법이었다.

    처음에 딱 보면 복잡해보이지만, 제곱연산과 나머지를 구하는 연산밖에 없다!

    https://www.researchgate.net/publication/350590914/figure/fig5/AS:1008376322457612@1617427058369/Diffie-Hellman-Key-exchange-protocol.png

    공통 키, 즉 암호화와 복호화에 공통적으로 사용되는 키를 이용하는 방식은 

    공통키를 어떻게 안전하게 전달할 지가 매우 중요하다.

    디피-헬먼 키 교환 방식을 이용하면 두 사람이 공통키를 안전하게 가질 수 있게 된다.

     

    디피-헬먼 키 교환 방식을 살펴보면,

    X가 Y와 공통키를 나눠가지고 싶은 상황일 때,

     

    1. X가 소수 p, 그리고 1에서 p-1 사이의 정수 g를 골라서 Y에게 공유한다.

    p, g는 사실상 공개되어 전달된다고 볼 수 있다. 

    즉, 누구나 알 수 있는 값이다.

     

    2. X가 정수 a를 선택하고 자신만 알고 있는다.

     

    3. X는 g를 a제곱한 값을 p로 나눈 나머지 A를 구한다.

     

    4. Y도 정수 b를 선택해서 자신만 알고 있는 채로 g를 b제곱한 값을 p로 나눈 나머지 B를 구한다.

     

    5. X와 Y는 A와 B를 공유한다.

    A와 B도 사실상 누구나 알 수 있는 값이다.

     

    6. X는 B를 a제곱한 값을 p로 나눈 나머지를 구하고,

    Y는 A를 b제곱한 값을 p로 나눈 나머지를 구한다.

    이 두 값은 동일한 값이고, 그 누구도 X를 제외한 사람은 a를 모르고, Y를 제외한 사람은 b를 모르기 때문에,

    A와 B를 알아도 이 비밀 키는 X와 Y만 알 수 있게 된다.

     

    안전하게 공통 키를 공유할 수 있는 좋은 방식이지만, 디피 헬먼 키교환 방식에도 취약점이 있다.

    만약에 X와 Y중간에 공격자가 끼어들어서

    X와 공격자 사이에 비밀 키를 만들고, 공격자와 Y사이 비밀키를 만들어서

    X에게 받은 암호문을 X와 공격자 사이의 비밀키로 복호화하고서

    Y에게는 전혀 다른 메시지를 공격자와 Y사이 비밀키로 암호화해서 전달해서

    X와 Y 사이의 통신을 엿듣는 것 뿐만 아니라 메시지 변형도 할 수 있다.

    즉, 메시지가 통신 과정에서 오염되지 않았다는 무결성을 보장할 수 없는 것이다.

     

    보안은 나머지 부분이 튼튼하고 아무리 좋은 알고리즘을 쓰더라도 한 곳이라도 취약하면 공격에 속수무책이 되는 것 같다.

    보안이 중요한 서비스를 다룰 때는 취약한 부분이 없도록 신경을 쓰는 것이 제일 중요할 것 같고,

    완벽한 기술은 없고, 어떤 기술을 쓰기 전에는 항상 각각의 기술의 취약점을 찾아보도록 하자.

    댓글

Designed by Tistory.