글 작성자: 택시 운전사
반응형

공개키 암호 방식

블록체인을 공부하면서 많이 나오는 개념인 공개키 암호 방식에 대해 정리한 내용이다.

블록체인 플랫폼에 대한 글을 보다보면 공개키 암호 방식Public-key Cryptography에 대한 내용이 많이 나온다. 해당 암호화 방식에 대해 간단하게 알아보자.

대칭키 암호 방식

우선 공개키 이전의 암호 방식이었던 대칭키 암호 방식Symmetiric-key Cryptography에 대해 알아보자. 대칭키 암호화 방식은 말 그대로 암호화 키와 복호화 키가 같은 암호화 방식을 뜻한다. 대칭키 암호 방식은 암호화한 내용을 누군가에게 보내는 과정에서 내용을 확인하기 위해 암호키도 같이 보내게 된다.

그러나 이 암호키를 보내는 과정에서 암호키가 노출될 경우 바로 정보를 해독할 수 있기 때문에 보안이 매우 취약해진다. 이런 키 전달 및 관리가 어렵지만, 대칭키 암호 방식은 암호화 연산 속도가 빨라서 효율적인 암호 시스템을 구축할 수 있는 장점이 있다. 대칭키 방식의 암호화 방식 알고리즘으로는 DESData Encryption Standard, AESAdvanced Encryption Standard등이 있다.

공개키 암호 방식

위와 같은 공개키 암호 방식의 문제점을 해결하기 위해 나온 암호 방식이 공개키 암호 방식이다. 공개키 암호 방식은 비대칭키 암호 방식이라고도 하며 한 쌍의 키를 가지게 되는데, 하나는 개인이 가지고 공개하지 않는 개인키이고 다른 하나는 누구나 볼 수 잇게 공개된 공개키이다.

개인키로 암호화한 정보는 쌍이 되는 공개키로 복호화 가능하고, 반대도 가능하다. 개인키로 암호화하여 누구나 내 공개키로 복호화 하여 내가 암호화 했다는 것을 아는 방식을 공개키 서명이라하고, 공개키로 암호화하여 내 개인키로만 복호화 가능한 방식을 공개키 암호라 한다.

공개키 암호 방식은 키 전달의 문제는 해결했지만 암호화, 복호화를 위해 복잡한 연산을 하기 때문에 대칭키 암호 방식에 비해 속도가 느리다. 따라서 효율을 위해 대칭키 암호 방식과 함께 사용된다. 메시지를 임의로 만들어진 비밀키를 이용해 암호화한 뒤 이 비밀키를 다시 수신자의 공개키로 암호화하여 함께 전송하는 것이다. 이렇게 하면 공개키 암호 방식으로 짧은 비밀 키만 암호화하고, 보다 효율적인 비밀키 암호 기술로 전체 메시지를 암호화하기 때문에 양쪽의 장점을 취할 수 있다.

공개키 기반 구조

그럼 개인키와 공개키는 어떻게 생성되고 어떻게 배포되며 관리는 어떻게 할까? 이를 해결하기 위해 디지털 인증서를 도입하고, 이를 활용하는 소프트웨어, 하드웨어, 정책, 제도, 사용자 전체를 총칭하여 공개키 기반 구조라 한다.

공개키와 개인키

공개키와 개인키는 어떻게 만들어질까? 우선 개인키를 생성하는데, 공개키 기반 구조에서 무작위로 추출한 단순한 숫자들로 구성되어있다. 그리고 이 개인키에 매우 어려운 이산대수문제 중 하나인 타원 곡선 암호Elliptic Curve Cryptography라는 연산과정을 거치면 공개키가 생성된다. 타원 곡선 암호의 경우 개인키에서 공개키를 만드는 것은 가능하지만 역은 불가능에 가깝다. 추가적으로 비트코인의 경우 이 공개키에서 해시를 이용하여 비트코인 지갑 주소를 만든다. 따라서 비트코인의 경우 개인키를 통해 공개키와 비트코인 지갑 주소까지 만들기 때문에 개인키의 보관의 중요성이 더 커지게 된다.

참고자료

반응형