[케블리]#31. 암호화폐의 열쇠 - 공개키 방식을 이해해보자!

in #kr6 years ago (edited)


암호화폐의 열쇠 - 공개키 방식을 이해해보자!


 들어가는 말 

우리나라에서는 비트코인, 이더리움 등을 가상화폐로 자주 소개하고 있습니다. 하지만 영어권에서는 암호화폐(Cryptocurrency)라는 용어로 통용되고 있습니다. 이렇듯 암호 기술은 비트코인을 비롯한 암호화폐를 이해하기 위해서 가장 중요한 내용입니다. 하지만 이해하기 어려운 분야이기에 사람들이 암호화폐의 세계에 들어오는데 진입장벽이 되고 있습니다. 이번 포스팅에서는 암호 기술이 어떻게 발전되어 암호화폐에 사용되고 있는지 쉽게 알아보도록 하겠습니다.  


암호의 시작, 대칭키

암호는 오래전부터 군사와 정치적인 목적으로 다양하게 사용됐습니다. 예를 들면 고대 그리스의 역사가인 폴리비우스는 아래와 같은 표를 통해 메시지를 숫자형식으로 암호화했습니다. 이를 응용하면 그리스어 문자만 아니라 다른 문자도 쉽게 암호화할 수 있게 됩니다. ‘블록체인’을 아래 암호 표로 암호화 하게 되면 12 35 41 41 44 11 52 55 32 45 21로 변환할 수 있습니다. 암호 표가 암호화된 메시지를 해독하는 키이고 이 키만 있다면 누구나 메시지를 이해할 수 있습니다. 이러한 방식을 현대에서는 ‘대칭키’ 방식이라고 부릅니다. 암호화, 복호화의 키가 같기 때문입니다. 주요 암호방식은 전치(메시지의 순서를 바꾼다)와 대치(메세지를 다른 문자로로 변환)를 사용하고 있습니다. 

고대에는 이러한 메시지와 키를 직접 만나 교환하거나 인편으로 교환했습니다. 그러나 통신기술이 발전하면서 전파, 전기, 빛 등 공개된 망을 통해 정보 교환이 가능하게 됩니다. 이로써 멀리 있는 사람에게 정보를 쉽게 전달할 수 있지만 제 3자에게 유출될 가능성도 커지게 되었습니다. 이러한 환경에서 ‘대칭키’ 방식은 키 유출이라는 위험에 노출될 수 있습니다. 하지만 DES, AES와 같은 암호 알고리즘으로 발전하며 오늘날에도 활발하게 사용되고 있습니다.    


디피와 헬만, 비대칭 키 방식을 제안하다  

비대칭 암호방식 또는 공개키 방식이라 부르는 방식은 1965년 MIT의 위드필드 디피와 스탠퍼드 대학의 마틴 헬만에 의해서 구체화 됐습니다. 키를 전달하는 방식에 대해서 고민하던 두 사람은 공개된 키를 통해 비밀 키를 전달하지 않고도 서로 정보를 교환할 방법을 생각하게 됩니다. 이후에 MIT의 리베스트, 샤미르, 애들먼에 의해 RSA 알고리즘으로 발전하며 비대칭 키의 표준으로 자리 잡습니다.   

비대칭키의 핵심 원리는 비가역성입니다. 개인 키에서 공개키로 변환하기는 쉬우나 공개키에서 개인 키를 구하는 과정은 어렵게 했습니다. 대표적인 방법으로 소인수분해, 이산로그 문제 등이 있습니다. 소인수분해를 예로 들어보겠습니다. 287을 소인수 분해하면 어떻게 되나요? 반면에 7 x 41 = 287은 보다 쉽게 구할 수 있습니다. 비트코인은 타원곡선 알고리즘을 사용합니다. 타원곡선은 이산로그 알고리즘을 응용한 방법으로 수학적으로는 더 복잡하지만, 더 작은 키(데이터)를 사용하면서도 연산 속도가 빠릅니다. 아래 그림을 통해 직관적으로 공개키 교환을 통해 두사람이 합의에 이를 수 있는지 알아보도록 하겠습니다(디피-헬만 키 교환 개념). 

  1. 공개적으로 교환할 색을 하나 정한다 => 녹색
  2. A와 B가 각각 자기의 비밀 색을 정한다 => 빨간색, 파란색
  3. A가 녹색과 빨간색을 섞은 노란색을 B에게 보낸다.
  4. B는 녹색과 파란색을 섞은 하늘색을 A에게 보낸다.
  5. A는 B에게 받은 하늘색을 자신의 빨간색과 섞는다 => 회색
  6. B은 A에게 받은 주황색을 자신의 파란색과 섞는다 => 회색

위 과정은 실제로 수학적으로 진행되기 때문에 A, B 모두 회색으로부터 공통된 답을 추출할 수 있습니다. 조금 더 자세한 수학적 증명 과정은 아래 링크를 통해서 확인할 수 있습니다. http://slideplayer.com/slide/10796185/


마치며  

비대칭키 방식은 2000년대 인터넷의 발전과 함께 빠르게 사용되는 범위가 확대되었습니다. 공인인증서, 전자여권, 웹(https) 등 우리의 실생활에 다양하게 사용되고 있습니다. 더 나아가 암호화폐의 기반기술의 되었습니다. 이를 통해 중앙화된 중개자 없이 익명의 개인 간의 인증과 합의가 가능해졌습니다. 암호학이라는 다소 어려운 분야를 쉽게 소개하려고 노력해봤습니다. 더 많은 사람이 암호화폐를 이해하고 사용하는 데 도움이 됐으면 좋겠습니다.    


참고자료 

Sort:  

잘 봤습니다. 디피-헬만을 이렇게 단순히 이해할 수도 있군요.

오타 제보드립니다.

. ‘블록체인’을 아래 암호 표로 암호화 하게 되면 21 35 41 41 44 11 52 55 32 45 21로 변환할 수 있습니다.

맨 앞을 21 로 하면 '늘록체인' 이 되어서 12가 맞는것 같습니다.

감사합니다 수정했습니다^^ 디피-헬만 자료를 찾다보니 색깔로 설명한 부분이 마음에 들어 인용해봤습니다.

Coin Marketplace

STEEM 0.20
TRX 0.12
JST 0.029
BTC 60888.47
ETH 3392.01
USDT 1.00
SBD 2.57