비대칭키는 암호화할 때와 복호화할 때의 키가 서로 다른 키(key)를 의미한다. 타인에게 절대 노출되어서는 안되는 개인키를 토대로 만든 공개키가 쌍을 이룬 형태이다.[1] 비대칭키를 이용한 암호 알고리즘은 공개키 알고리즘으로 불리기도 한다.[2] Show 목차
개요[편집]비대칭키는 공개키(Public Key)와 개인키(Private Key)가 하나의 쌍을 이루고 있다. 다른 사람들에게 공개된 키로서 정보를 암호화할 수 있는 공개키와 사용자 본인만 알고 있어서 암호를 풀 수 있는 키인 개인키는 하나의 쌍을 이루고 있다. 비대칭키를 사용한 암호화 방식에는 공개키로 암호화를 하는 경우와 개인키로 암호화를 하는 경우로 구분할 수 있다. 공개키로 암호화를 선택했다면 데이터 보안에 중점을 둔 것이고, 개인키로 암호화를 진행했다면 안전한 전자서명을 통한 인증 과정에 중점을 둔 것으로 해석할 수 있다. 암호화할 때의 키와 복호화할 때의 키 값이 다르면 비대칭키라고 한다. 비대칭키의 대표 알고리즘은 RSA, 디피-헬만(Diffie-Hellman), 타원곡선암호(ECDSA) 등이 있다.[1] 개념[편집]비대칭형 암호는 이름 그대로 암호화 키와 복호화 키가 서로 다르다. 암호화를 하면 하나의 키쌍이 생기고 이 키들은 수학적으로 밀접한 관계를 가진다. 두 개의 키를 각각 A키, B키라고 하였을 때, A키로 암호화한 암호문은 B키로만 복호화가 가능하고 B키로 암호화한 암호문은 A키로만 복호화가 가능하다. 그래서 이중 하나의 키만 비밀로 보호하고 다른 하나의 키는 공개해도 상관이 없다. 이렇게 둘 중 하나라도 반드시 공개되어야 통상적인 사용이 가능하기 때문에 공개키 암호라고도 부른다. 공개키로 암호화한 암호문은 어차피 개인키를 가진 사람이 풀어볼 수 있으므로 상호간 공개키만 교환하고 상대의 공개키로 암호화를 하여 데이터를 교환하면 상대는 자신의 개인키로 복호화를 한다. 따라서 마찬가지로 배송 문제는 근본적으로 발생하지 않는다. 하지만 비대칭형 암호는 암복호화가 대칭형 암호화에 비하여 현저하게 느리기 때문에 현실적으로 비대칭형 암호를 이용하여 대칭형 암호의 키를 배송하고 실제 암호문은 대칭형 암호를 사용하는 식으로 상호보완적인 이용이 일반적이라고 할 수 있다. 또한 비대칭형 암호화라고 하여서 취약점이 없는 것은 아니기 때문에 해커가 중간에서 통신을 가로채 수신자에게는 송신자인 척을 하면서 송신자에게는 수신자인 척을 하여 양쪽의 공개키와 실제 암호화에서 사용된 대칭키를 모두 얻어내는 기법인 중간자 공격에는 취약하다. 또한 개인키와 공개키의 관계를 역이용하여 전자서명에 활용되기도 하는데, 특정한 문서를 개인키로 암호화하여 발송하면 이 문서는 해당 발신자의 공개키로만 복호화가 가능하다.[3] 역사[편집]키 전달의 아이디어는 디피와 헬만이 처음 발표하였다. 휫필드 디피(Whitfield Diffie)는 1965년 MIT에서 수학을 전공하고 컴퓨터 보안과 관련된 일을 했는데, 키 전달에 대한 문제에 관심이 많았다. 하지만 당시에 많은 사람들은 이와 같은 관심에 대해 회의적이었다. 왜냐하면 미국 국가안보국(NSA)에서 많은 연구를 하고 암호를 통제하고 있는 상황이었는데, 개인이 그 문제를 풀 수 있다고 생각하지 않았다. 설사 해결해도 NSA의 통제로 빛을 발하지 못할 것이라고 여겼다. 하지만 히피 기질이 다분한 디피는 포기하지 않았다. 그리고 같은 관심사를 가진 스탠퍼드 대학교의 마틴 헬만(Martin Hellman) 교수를 만나게 되었다. 1974년부터 디피와 헬만은 암호 전달 문제를 연구하기 시작했고, 그들은 항상 새로운 아이디어를 도출하고 실패하기를 반복하다가 1975년 어느 날 비대칭키라 불리는 개념을 떠올리게 되었다. 1976년에 발표된 비대칭 암호화 알고리즘의 아이디어는 20세기 암호학의 혁명으로 불렸다. 이후 실제 사용 과정에서 몇 가지 약점이 발견되었으나, 이후 RSA 등 더 우수한 공개키 암호화 알고리즘의 출현을 앞당기는 계기가 되었다.[4] 동작 원리[편집]공개키 암호 방식은 출제자만이 아는 특정한 종류의 정보 없이는 매우 풀기 어려운 수학적 문제를 바탕으로 만들어진다. 키를 만드는 사람은 공개키를 일반에 공개하고 비밀키는 자신만이 알수 있도록 숨겨둔다. 그러면 누구든지 공개키를 이용하여 메세지를 암호화하면 개인키를 가지고 있는 사람만 해독이 가능하다. RSA 암호화 같은 초기 암호들은 두 개의 큰 소수를 곱한 숫자를 문제로 사용하였는데 사용자는 임의의 큰 소수를 두 개 골라 비밀키로 삼고 그 곱한 값을 공개키로 공개한다. 큰 수의 소인수 분해는 풀기 어려운 문제이므로 다른 사람들은 비밀키를 알 수 없을 것이라는 사실이 보장된다. 그러나 최근 이 분야의 연구가 크게 진전되어 RSA의 안전성을 보장하기 위해서는 수천 비트 이상의 큰 소수를 개인키로 사용하여야 한다. 또 다른 종류의 문제로는 와 가 알려진 상태에서 방정식 의 해 를 구하는 문제가 있는데 실수나 복소수에 대해서는 로그함수를 이용하여 쉽게 문제를 풀 수 있다. 하지만 유한군에서는 이러한 문제를 풀기가 어려운 것으로 알려져 있다. 이런 문제를 이산로그 문제라고 한다. 타원곡선암호를 비롯하여 여러 가지 공개키 암호들이 이산로그 문제를 바탕으로 만들어져 있다.[5] 종류[편집]
특징[편집]암호화[편집]공개키로 데이터를 암호화하여 전송하는 경우, 데이터를 수신한 사람은 자신의 개인키로 데이터를 복호화한다. 공개키는 널리 배포될 수 있기 때문에 많은 사람들이 한 명의 개인키 소유자에게 데이터를 보낼 수 있다. 개인키로 암호화를 진행하는 경우 개인키의 소유자가 개인키로 데이터를 암호화하고 공개키와 함께 전달한다. 이 과정에서 공개키와 데이터를 획득한 사람은 누구라도 공개키를 이용하여 복호화가 가능하다. 이런 위험에도 불구하고 이 방법을 사용하는 이유는 데이터 제공자의 신원을 보장해주기 때문이다. 암호화된 데이터가 공개키로 복호화된다는 것은 공개키와 쌍을 이루는 개인키에 의해서 암호화 되었다는 것을 의미한다. 즉 데이터 제공자의 신원 확인이 보장된다는 것이다. 이 방법이 공인인증 체계의 기본 바탕이 되는 전자서명이다.[1] 보안의 3요소[편집]보안은 3가지 요소가 결합되어야 높은 안정성을 형성한다. 인가받은 사용자만 정보 자산에 접근할 수 있음을 보장하는 기밀성과 권한을 가진 사용자에 의해 인가된 방법으로만 정보를 변경할 수 있음을 보장하는 무결성이 보장되야 한다. 마지막으로 최소한의 투입으로 좋은 결과를 만들어 낼 수 있는 효율성이 비대칭키를 통해 보장된다.[10]
부인 방지[편집]비대칭 암호화 알고리즘은 대칭키 암호화 알고리즘에는 존재하지 않는 부인방지(non-repudiation) 기능을 제공한다. 부인 방지는 쉽게 말해 '발뺌 방지'라고 할 수 있다. 예를 들면 영희에게 돈을 빌린 철수가 이번 주 안에는 갚겠다는 약속을 한다. 하지만 다음 주가 되어도 철수가 돈을 갚지 않자 영희는 철수에게 따졌지만 철수는 그런 말을 한 적이 없다고 발뺌을 한다. 그리고 영희에게는 철수가 그런 약속을 했다는 증거가 없다. 이런 경우가 부인방지 기능이 없는 상황이다. 그런데 영희가 철수의 말을 녹음해 두었다면, 부인하지 못했을 것이다. 이때 녹음 기능이 바로 부인방지 기능이다. 부인방지 기능은 전자상거래에서 기업 간 주문이나 계약서에서도 중요한 법적 증거 효력을 발휘하며 여러 암호 알고리즘에도 사용된다.[11] 장점과 단점[편집]비대칭키 암호는 다른 유저와 키를 공유하지 않아도 암호를 통한 안전한 통신을 한다는 장점을 갖는다. 각 사용자는 자신에게 전송하기 위해 사용될 키를 공개하고, 공개된 키 정보로 암호화된 정보를 복호화할 수 있는 키를 개별적으로 보유하고 있음으로써 누구나 암호화할 수 있지만 공개키에 대응되는 개인키를 가진 당사자만 복호화할 수 있는 특징을 가진다. n명의 사용자로 구성된 네트워크를 고려하면 각 사용자는 공개키와 개인키 두 개를 보유하고 있으므로 네트워크 전체적으로 2n개의 키가 요구된다. 그리고 각 유저는 2개의 키만 보유하고 있으면 된다. 수학적인 난제를 기반으로 설계된 비대칭키는 암호화나 복호화를 수행하기 위한 연산이 복잡한 수학 연산을 기반으로 구성되어 있다. 그로 인해 효율성이 대칭키 암호에 비해 높지 않다. 그럼에도 불구하고, 비대칭키 암호 알고리즘의 경우에는 모두가 확인할 수 있는 공개키에 대응되는 개인키가 각 사용자만 알고 있는 정보이기 때문에, 전 세계적으로 불특정 다수가 정보를 주고받아야 하는 인터넷 환경에서 광범위한 인증 기능을 제공한다는 장점이 있다.[12] 각주[편집]
참고자료[편집]
같이 보기[편집]
이 비대칭키 문서는 암호 알고리즘에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.
|