기본 콘텐츠로 건너뛰기

ECC-8. 타원 곡선 디피-헬만(ECDH) 키 교환

타원 곡선 디피-헬만(ECDH) 키 교환은 타원 곡선 암호(ECC)를 이용하여 안전하게 비밀 키를 공유하는 방법입니다. 이 과정의 보안은 '타원 곡선 이산 대수 문제(Elliptic Curve Discrete Logarithm Problem, ECDLP)'라는 수학적 난제에 기반을 둡니다.

쉽게 말해, 타원 곡선 위의 한 점에서 특정 연산을 반복하여 다른 점을 찾는 것은 쉽지만, 결과 점만 가지고 몇 번의 연산을 했는지 알아내는 것은 계산적으로 매우 어렵다는 원리입니다.

ECDH 키 교환 과정

앨리스와 밥이 안전하지 않은 통신 채널을 통해 비밀 키를 공유하려는 상황을 가정해 보겠습니다.

  1. 초기 설정 공유: 먼저, 앨리스와 밥은 모두가 알아도 되는 공개된 정보 두 가지를 사전에 합의합니다.
    • 타원 곡선 ($E$): 사용할 특정 타원 곡선 방정식입니다.
    • 기준점 ($G$): 해당 타원 곡선 위의 한 점으로, 모든 계산의 시작점이 됩니다.
  2. 각자의 비밀 키와 공개 키 생성:
    • 앨리스: 임의의 정수 $a$를 자신의 비밀 키로 선택합니다. 그리고 기준점 $G$에 $a$번의 덧셈 연산을 수행하여 새로운 점 $P_A = a · G$를 계산하고, 이 점을 자신의 공개 키로 만들어 밥에게 보냅니다.
    • 밥: 마찬가지로 임의의 정수 $b$를 자신의 비밀 키로 선택합니다. 그리고 기준점 $G$에 $b$번의 덧셈 연산을 수행하여 새로운 점 $P_B = b · G$를 계산하고, 이 점을 자신의 공개 키로 만들어 앨리스에게 보냅니다.
  3. 공유 비밀 키 계산:
    • 앨리스: 밥에게서 받은 공개 키 $P_B$에 자신의 비밀 키 $a$를 곱합니다.
      • $S = a · P_B = a · (b · G) = (ab) · G$
    • 밥: 앨리스에게서 받은 공개 키 $P_A$에 자신의 비밀 키 $b$를 곱합니다.
      • $S = b · P_A = b · (a · G) = (ab) · G$
  4. 키 교환 완료: 앨리스와 밥은 중간에서 통신을 도청한 사람이 있더라도, 각자 동일한 점 $S$를 계산해 낼 수 있습니다. 이 점 $S$의 특정 좌표(예: $x$ 좌표)를 공유 비밀 키로 사용하여 대칭 키 암호 통신을 시작할 수 있습니다.

핵심 보안 원리: 타원 곡선 이산 대수 문제 (ECDLP)

ECDH의 안전성은 중간에 통신을 가로채는 공격자 '이브'가 공유 비밀 키 $S$를 계산할 수 없다는 사실에 달려있습니다.

  • 이브는 통신 채널에서 $E, G, P_A, P_B$를 모두 엿볼 수 있습니다.
  • 공유 비밀 키 $S$를 계산하려면 앨리스의 비밀 키 $a$ 또는 밥의 비밀 키 $b$를 알아야 합니다.
  • $a$를 알아내려면, 이브는 $P_A = a · G$ 라는 수식에서 공개된 값인 $P_A$와 $G$를 보고 $a$를 역으로 계산해야 합니다.
  • 이것이 바로 타원 곡선 이산 대수 문제입니다. 타원 곡선 위의 점에서 덧셈 연산을 통해 다른 점을 구하는 것은 쉽지만, 결과 점과 시작점을 안다고 해서 몇 번의 덧셈 연산을 했는지 알아내는 것은 현재의 컴퓨팅 기술로 사실상 불가능에 가깝습니다.

정리하자면, 공격자는 공개된 정보들을 모두 가지고 있어도 비밀 키 $a$나 $b$를 계산할 수 없으므로, 최종 공유 비밀 키인 $S$ 역시 알아낼 수 없습니다. 이 덕분에 ECDH는 매우 안전한 키 교환 방식으로 널리 사용됩니다.

댓글

이 블로그의 인기 게시물

Windows에 AMP와 MediaWiki 설치하기

1. 들어가기     AMP는 Apache + MySQL +  Perl/PHP/Python에 대한 줄임말이다. LAMP (Linux + AMP)라고 하여 Linux에 설치하는 것으로 많이 소개하고 있지만 Windows에서도 간편하게 설치하여 사용할 수 있다.       이 글은 Windows 7에 Apache + MySQL + PHP를 설치하고 그 기반에서 MediaWiki를 설치하여 실행하는 과정을 간략히 정리한 것이다. 2. MySQL     * 버전 5.6.12     1) 다운로드         http://dev.mysql.com/downloads/installer/         MySQL Installer 5.6.12         Windows (x86, 32-bit), MSI Installer         (mysql-installer-web-community-5.6.12.0.msi)     2) 다운로드한 MSI 파일을 더블클릭하여 설치를 진행한다.           설치 위치:                   C:\Program Files\MySQL               선택 사항:                       Install MySQL Products             Choosing a Se...

MATLAB Rutime 설치하기

MATLAB Rutime 설치하기 미설치시 에러 MATLAB Runtime 을 설치하지 않은 환경에서 MATLAB 응용프로그램이나 공유 라이브러리를 사용하려고 하면 아래와 같은 에러 메시지가 표시될 것입니다. 처리되지 않은 예외: System.TypeInitializationException: 'MathWorks.MATLAB.NET.Utility.MWMCR'의 형식 이니셜라이저에서 예 외를 Throw했습니다. ---> System.TypeInitializationException: 'MathWorks.MATLAB.NET.Arrays.MWArray'의 형식 이니셜라이저에서 예외를 Throw했습니다. ---> System.DllNotFoundException: DLL 'mclmcrrt9_3.dll'을(를) 로드할 수 없습니다. 지정된 모듈을 찾을 수 없습니다. (예외가 발생한 HRESULT: 0x8007007E) 위치: MathWorks.MATLAB.NET.Arrays.MWArray.mclmcrInitialize2(Int32 primaryMode) 위치: MathWorks.MATLAB.NET.Arrays.MWArray..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR..cctor() --- 내부 예외 스택 추적의 끝 --- 위치: MathWorks.MATLAB.NET.Utility.MWMCR.processExiting(Exception exception) 해결 방법 이 문제를 해결하기 위해서는 MATLAB Runtime 을 설치해야 합니다. 여러 가지 방법으로 MATLAB Runtime 을 설치할 수 있습니다. MATLAB 이 설치되어 있는 경우에는 MATLAB 설치 폴더 아래에 있는 MATLAB Runtime 설치 프로그램을 실행하여 설치합니다. ...

Wi-Fi 카드 2.4GHz로만 동작시키기

Wi-Fi 카드 2.4GHz로만 동작시키기 별도의 Wi-Fi AP 장치를 두지 않고 아래와 같은 기기들로만 Wi-Fi 네트워크를 구성하고자 할 때 주변 기기들이 2.4GHz만 지원하기 때문에 PC에서 실행하는 AP가 항상 2.4GHz를 사용하도록 Wi-Fi 카드를 설정해 주어야 합니다. 기기 Wi-Fi 카드 주파수 대역 Wi-Fi Direct 지원 PC (Windows 10) 2.4GHz, 5GHz O 주변 기기들 2.4GHz X Wi-Fi 카드별 주파수 대역 선택 방법 Windows 시작 메뉴에서 설정 을 클릭합니다. Windows 설정 화면에서 네트워크 및 인터넷 을 클릭합니다. 설정 화면의 왼쪽 메뉴바에서 Wi-Fi 를 클릭합니다. 화면 오른쪽 관련 설정 구역에 있는 어댑터 옵션 변경 을 클릭합니다. 설정을 바꾸고자 하는 Wi-Fi 카드 항목을 선택하고 마우스 오른쪽을 누른 다음 속성 메뉴를 클릭합니다. 대화상자의 네트워킹 탭 화면에 있는 구성 버튼을 클릭합니다. 장치 속성 대화상자의 고급 탭 화면으로 이동합니다. 제시되는 속성 항목들은 제품별로 다르며 자세한 사항은 아래의 제품별 설명을 참고하여 값을 설정하시기 바랍니다. Intel Dual Band Wireless-AC 7265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 선택합니다. Wireless Mode 1. 802.11a => 5GHz 4. 802.11b/g => 2.4GHz (이 항목 선택) 6. 802.11a/b/g => 2.4GHz, 5GHz Intel Dual Band Wireless-AC 8265 기술 사양 주파수 대역: 2.4GHz, 5GHz 무선 표준: 802.11ac 주파수 대역 선택 장치 속성 대화상자에서 아래와 같이 ...