비대칭 키 암호화
1. 개요
1. 개요
비대칭 키 암호화는 공개키 암호라고도 불리며, 암호화와 복호화에 서로 다른 두 개의 키를 사용하는 암호 체계이다. 하나는 공개적으로 배포되는 공개키이고, 다른 하나는 비밀로 유지해야 하는 개인키이다. 이 방식은 1970년대에 휫필드 디피와 마틴 헬먼에 의해 그 개념이 제안되며 현대 암호학의 중요한 전환점을 마련했다[1].
대칭 키 암호화가 동일한 비밀키를 송신자와 수신자가 공유해야 하는 데 따른 키 배분 문제를 안고 있는 반면, 비대칭 키 암호화는 공개키를 자유롭게 공개할 수 있어 키 관리의 어려움을 해소한다. 예를 들어, 누구나 특정인의 공개키를 이용해 메시지를 암호화할 수 있지만, 그 암호문은 오직 해당 개인키를 가진 사람만이 복호화할 수 있다. 이 원리는 기밀성 보장뿐만 아니라 디지털 서명을 통한 부인 방지와 인증 기능의 기반이 된다.
특성 | 설명 |
|---|---|
핵심 요소 | |
주요 기능 | 기밀성 보장, 디지털 서명, 키 교환 |
대표 알고리즘 | |
장점 | 키 배분 문제 해결, 디지털 서명 가능 |
단점 | 대칭 키 암호화에 비해 계산 속도가 느림 |
이 기술은 인터넷 보안의 근간을 이루며, SSL/TLS 프로토콜을 통한 안전한 웹 브라우징, PGP를 이용한 이메일 암호화, 비트코인과 같은 암호화폐의 거래 검증 등 다양한 분야에서 필수적으로 활용된다.
2. 기본 원리
2. 기본 원리
비대칭 키 암호화는 두 개의 서로 다른, 그러나 수학적으로 연관된 키 쌍을 사용하는 암호 체계이다. 이 키 쌍은 공개키와 개인키로 구성된다. 공개키는 누구나 알 수 있도록 공개되는 키이며, 개인키는 키 소유자만이 비밀로 보관해야 하는 키이다. 두 키는 생성 과정에서 함께 만들어지며, 한 키로 암호화한 내용은 반드시 그와 쌍을 이루는 다른 키로만 복호화할 수 있다.
암호화와 복호화 과정은 다음과 같다. 송신자가 수신자의 공개키를 사용하여 평문을 암호화하여 암호문을 생성한다. 이 암호문은 공개된 그 공개키로는 다시 복호화할 수 없다. 암호문을 전달받은 수신자는 자신만이 가지고 있는 개인키를 사용하여 암호문을 원래의 평문으로 복호화한다. 반대로, 개인키로 암호화(서명 생성)한 내용은 공개키로 복호화(서명 검증)하여 발신자를 확인하는 디지털 서명에도 활용된다.
과정 | 사용 키 | 목적 |
|---|---|---|
암호화 | 수신자의 공개키 | 기밀성 보장: 지정된 수신자만 내용을 읽을 수 있음 |
복호화 | 수신자의 개인키 | 암호화된 메시지를 원문으로 되돌림 |
서명 생성 | 송신자의 개인키 | 무결성 및 부인 방지: 메시지가 특정 발신자로부터 왔음을 증명 |
서명 검증 | 송신자의 공개키 | 서명의 진위를 공개적으로 확인 |
이 방식의 핵심은 공개키에서 개인키를 추론하는 것이 계산상 극히 어렵다는 일방향 함수의 수학적 성질에 기반한다. 따라서 공개키를 널리 배포하더라도 개인키의 비밀은 안전하게 유지된다. 이는 통신 당사자가 사전에 비밀 키를 공유할 필요가 없다는 점에서 대칭 키 암호화와 근본적으로 구별되는 장점을 제공한다.
2.1. 공개키와 개인키
2.1. 공개키와 개인키
공개키와 개인키는 한 쌍으로 생성되는 수학적으로 연결된 두 개의 키입니다. 이 두 키는 서로 다른 용도로 사용되며, 하나로 암호화한 내용은 반드시 짝이 되는 다른 하나로만 복호화할 수 있습니다.
공개키는 이름 그대로 공개되어도 안전한 키입니다. 이 키는 암호화에 사용되며, 누구나 알 수 있도록 공개됩니다. 반면, 개인키는 비밀로 유지해야 하는 키로, 복호화 또는 디지털 서명 생성에 사용됩니다. 키 쌍의 소유자만이 개인키를 안전하게 보관합니다.
이 시스템의 핵심은 한 키로 수행한 작업을 다른 키로만 되돌릴 수 있다는 비대칭성에 있습니다. 공개키로 암호화한 메시지는 오직 해당 개인키로만 복호화할 수 있습니다. 반대로, 개인키로 서명한 데이터는 해당 공개키로만 그 서명의 진위를 검증할 수 있습니다[2].
이러한 키 쌍의 생성과 관계는 소인수분해나 이산 로그 문제와 같은 수학적 난제에 기반합니다. 공개키에서 개인키를 추론하는 것은 계산상 거의 불가능하기 때문에, 공개키를 공유하더라도 통신의 안전성이 유지됩니다.
2.2. 암호화와 복호화 과정
2.2. 암호화와 복호화 과정
암호화 과정에서는 수신자의 공개키를 사용하여 평문을 암호문으로 변환한다. 이 공개키는 누구나 접근할 수 있지만, 해당 개인키를 가진 수신자만이 암호문을 복호화할 수 있다. 예를 들어, 앨리스가 밥에게 비밀 메시지를 보내려면 밥의 공개키로 메시지를 암호화하여 전송한다.
복호화 과정에서는 수신자가 자신만이 알고 있는 개인키를 사용하여 암호문을 원래의 평문으로 되돌린다. 암호화에 사용된 공개키와 쌍을 이루는 개인키로만 이 작업이 가능하다. 위의 예에서 밥은 자신의 개인키를 사용하여 앨리스가 보낸 암호문을 해독하여 원본 메시지를 읽는다.
이 과정의 핵심은 두 키의 수학적 관계에 있다. 공개키로 암호화된 정보는 오직 짝을 이루는 개인키로만 복호화할 수 있으며, 그 역도 성립한다[3]])에서는 개인키로 암호화(서명 생성)하고 공개키로 복호화(서명 검증)하는 방식도 사용한다]. 이 비대칭성 덕분에 사전에 비밀 키를 공유하지 않고도 안전한 통신이 가능해진다.
3. 수학적 기반
3. 수학적 기반
비대칭 키 암호화 시스템의 안전성은 해결하기 어려운 수학적 문제들에 기반을 두고 있다. 이 문제들은 역연산이 현실적인 시간 내에 수행되기 어려운 단방향 함수의 성질을 이용한다. 대표적으로 소인수분해 문제, 이산 로그 문제, 그리고 타원곡선 암호에 사용되는 타원곡선 상의 이산 로그 문제가 있다.
RSA 알고리즘은 큰 합성수의 소인수분해의 어려움에 의존한다. 두 개의 큰 소수 p와 q를 곱하여 공개키의 일부인 합성수 n을 생성한다. 이때, 비밀키는 p와 q를 아는 것과 연결된다. n이 충분히 크다면, n으로부터 p와 q를 찾아내는 소인수분해는 현재의 고전 컴퓨터로는 실용적으로 불가능한 문제로 여겨진다[4]. 이 문제의 난이도는 키 길이에 크게 의존한다.
다른 주요 기반은 이산 로그 문제이다. ElGamal 암호화나 DSA와 같은 알고리즘은 이 문제를 사용한다. 주어진 유한체에서, 생성자 g와 지수 x를 알면 값 y = g^x mod p를 계산하는 것은 쉽지만, 반대로 y와 g를 알 때 지수 x를 찾는 것은 매우 어렵다. 이 계산상의 비대칭성이 암호화의 핵심이 된다. 타원곡선 암호(ECC)는 유한체 위에 정의된 타원곡선 상의 점들로 이루어진 군에서의 이산 로그 문제(ECDLP)를 이용한다. ECDLP는 동일한 보안 수준을 제공하는 데 필요한 키 길이가 전통적인 이산 로그 문제나 소인수분해 문제에 비해 훨씬 짧다는 장점이 있다.
수학적 문제 | 대표 알고리즘 | 핵심 연산 | 보안 강도 예시 (동등) |
|---|---|---|---|
소인수분해 | 모듈러 지수 연산 | 3072비트 RSA ≈ 128비트 대칭키 | |
이산 로그 (유한체) | 모듈러 지수 연산 | 3072비트 DH ≈ 128비트 대칭키 | |
타원곡선 이산 로그 | ECDSA, ECDH | 타원곡선 점 연산 | 256비트 ECC ≈ 128비트 대칭키 |
이 표는 동일한 보안 수준(예: 128비트 대칭키 보안)을 달성하기 위해 각 수학적 문제에 요구되는 키 크기의 차이를 보여준다. 타원곡선 암호는 가장 짧은 키 길이로 높은 보안성을 제공하여 리소스가 제한된 환경에서 효율적이다. 모든 경우에 알고리즘의 안전성은 사용된 수학적 문제가 '어렵게' 남아 있는지에 대한 현재의 최선의 지식과 계산적 가정에 의존한다.
3.1. 소인수분해 문제 (RSA)
3.1. 소인수분해 문제 (RSA)
RSA 알고리즘의 보안성은 소인수분해 문제의 난해함에 근본적으로 의존한다. 이 문제는 매우 큰 두 소수의 곱으로 구성된 합성수를, 그 원래의 소인수들로 분해하는 것이 현실적으로 어렵다는 사실에 기반한다. 예를 들어, 21을 3과 7로 분해하는 것은 쉽지만, 수백 자리 길이의 매우 큰 합성수 N을 두 개의 거대한 소수 p와 q로 분해하는 것은 현재의 전통적인 컴퓨팅 자원으로는 실질적으로 불가능한 문제로 여겨진다[5].
암호화 과정에서 공개키는 이 큰 합성수 N과 공개 지수 e로 구성된다. 반면, 개인키는 N을 구성하는 비밀 소인수 p와 q의 정보에 의존한다. 공격자가 암호문을 복호화하려면 공개키만으로는 부족하고, 반드시 N의 소인수분해를 통해 비밀 소인수를 찾아내야 한다. RSA의 안전성은 '큰 수의 소인수분해가 어렵다'는 가정, 즉 소인수분해 문제가 계산 복잡도 이론상 어려운 문제라는 가정 위에 세워져 있다.
키 구성 요소 | 설명 | 비고 |
|---|---|---|
N (모듈러스) | 두 큰 소수 p와 q의 곱 (N = p * q) | 공개키와 개인키 모두에 포함되는 공통 요소 |
e (공개 지수) | φ(N)과 서로소인 수 | 공개키의 일부, 일반적으로 65537 사용 |
d (개인 지수) | e * d ≡ 1 (mod φ(N))을 만족하는 수 | 개인키의 핵심, φ(N)=(p-1)(q-1)을 알아야 계산 가능 |
따라서 RSA의 보안 강도는 사용하는 소수 p와 q의 크기, 즉 키 길이에 직접적으로 비례한다. 키 길이가 증가하면 소인수분해에 필요한 계산량은 기하급수적으로 늘어난다. 역사적으로 RSA 안전성에 대한 도전은 더 긴 키 길이의 필요성을 촉진해왔으며, 현재 권장되는 키 길이는 최소 2048비트 이상이다.
3.2. 이산 로그 문제 (DSA, ElGamal)
3.2. 이산 로그 문제 (DSA, ElGamal)
이산 로그 문제는 비대칭 키 암호화의 중요한 수학적 난제 중 하나로, DSA와 ElGamal 암호 시스템의 보안 기반을 이룬다. 이 문제는 유한 순환군에서 정의되는 연산의 특수한 역산을 찾는 것이 어렵다는 데 그 핵심이 있다. 구체적으로, 군의 생성원 g와 임의의 원소 h가 주어졌을 때, g^k = h를 만족하는 정수 k를 찾는 것이 이산 로그 문제이다. 이때 k를 찾는 계산이 매우 어렵지만, 주어진 k로 h를 계산하는 것은 비교적 쉽다는 비대칭성이 암호학에 활용된다.
이 문제의 어려움은 사용되는 군의 구조에 크게 의존한다. 초기에는 소수 p에 대한 승산군 Z_p*가 주로 사용되었다. 예를 들어, ElGamal 암호화와 디지털 서명 알고리즘(DSA)은 이 군에서의 이산 로그 문제가 실용적인 시간 내에 해결되지 않는다고 가정한다. 이 가정 하에, 공개키는 h = g^k mod p가 되고, 개인키는 지수 k가 된다. 공격자가 공개된 값 (g, h, p)로부터 비밀 지수 k를 알아내는 것은 현실적으로 불가능한 문제로 여겨진다.
알고리즘 | 기반 문제 | 주로 사용되는 군 |
|---|---|---|
ElGamal 암호화 | 이산 로그 문제 | 큰 소수 p에 대한 승산군 |
DSA (디지털 서명) | 이산 로그 문제 | 큰 소수 p에 대한 승산군 |
그러나 일반적인 승산군에서의 이산 로그 문제는 소인수분해 문제보다 효율적인 공격 알고리즘이 존재하여, 동일한 보안 수준을 위해 더 긴 키 길이가 필요하다는 단점이 있었다. 이 문제를 극복하기 위해 등장한 것이 타원곡선 암호이다. 타원곡선 군에서 정의된 이산 로그 문제(ECDLP)는 현재 알려진 가장 효율적인 공격 방법으로도 계산이 훨씬 더 어려운 것으로 알려져 있다. 따라서 ECDSA와 같은 알고리즘은 더 짧은 키 길이로 RSA나 기존 DSA와 동등한 보안 강도를 제공할 수 있다[6].
3.3. 타원곡선 암호 (ECC)
3.3. 타원곡선 암호 (ECC)
타원곡선 암호(ECC)는 비대칭 키 암호화 체계의 하나로, 유한체 위에서 정의된 타원곡선의 대수적 구조를 기반으로 한다. 타원곡선 상의 점들에 대한 연산, 특히 점의 덧셈과 스칼라 곱셈 연산의 역산이 어렵다는 이산 로그 문제에 그 안전성을 의존한다. 이는 기존의 RSA나 ElGamal과 같은 방식이 의존하는 정수론적 문제와는 다른 수학적 기반을 제공한다.
ECC의 핵심 연산은 타원곡선 상의 한 점 G(생성점)와 정수 k(개인키)를 이용해 새로운 공개점 K = k * G를 계산하는 스칼라 곱셈이다. 여기서 공개키 K와 생성점 G를 알고 있더라도 개인키 k를 찾는 것은 계산상 매우 어려운 문제로 여겨진다. 이 어려움을 타원곡선 이산 로그 문제(ECDLP)라고 부른다.
ECC의 가장 큰 장점은 동등한 수준의 보안을 제공하는 데 필요한 키의 길이가 다른 비대칭 알고리즘에 비해 훨씬 짧다는 점이다. 예를 들어, 256비트 ECC 키는 보안 강도 측면에서 3072비트 RSA 키와 대등하다. 이로 인해 처리 속도가 빠르고, 메모리 및 대역폭 사용량이 적으며, 특히 계산 자원이 제한된 모바일 장치나 사물인터넷 기기에 매우 적합하다.
알고리즘 | 대략적 키 길이 (비트) | 대략적 보안 강도 (비트) |
|---|---|---|
RSA | 3072 | 128 |
DSA (모듈로 p) | 3072 | 128 |
ECC (예: secp256k1) | 256 | 128 |
주요 응용 사례로는 디지털 서명 알고리즘인 ECDSA, 키 합의 프로토콜인 ECDH, 그리고 암호화에 사용되는 ECIES 등이 있다. 이러한 알고리즘들은 비트코인 및 이더리움과 같은 암호화폐, SSL/TLS 프로토콜, 그리고 많은 정부 및 산업 표준에 널리 채택되어 있다.
4. 주요 알고리즘
4. 주요 알고리즘
비대칭 키 암호화를 구현하는 대표적인 알고리즘들은 각기 다른 수학적 문제에 기반하여 설계되었다. 가장 널리 알려진 RSA는 큰 합성수의 소인수분해의 어려움에 의존한다. RSA는 암호화와 디지털 서명 모두에 사용될 수 있는 범용 알고리즘으로, 공개키와 개인키가 서로 역연산 관계에 있다.
DSA와 ElGamal은 이산 로그 문제의 난해함을 보안의 근간으로 삼는다. DSA는 주로 디지털 서명 생성 및 검증에 특화된 알고리즘이다. ElGamal은 암호화와 서명에 모두 사용 가능하지만, 암호문의 길이가 평문보다 두 배 길어지는 특징이 있다.
타원곡선 암호 기반 알고리즘인 ECDSA는 유한체 위에서 정의된 타원곡선의 이산 로그 문제를 사용한다. 동일한 수준의 보안 강도를 제공하기 위해 필요한 키 길이가 RSA나 DSA에 비해 훨씬 짧다는 장점이 있다[7]. 이는 처리 속도 향상과 대역폭 절감으로 이어져 모바일 장치나 제한된 환경에서 유리하게 작용한다.
알고리즘 | 기반 문제 | 주요 용도 | 특징 |
|---|---|---|---|
암호화, 서명 | 가장 보편적, 키 길이가 김 | ||
디지털 서명 | 서명 전용, NIST 표준 | ||
암호화, 서명 | 암호문이 평문의 2배 | ||
디지털 서명 | 짧은 키 길이, 높은 효율 |
4.1. RSA
4.1. RSA
RSA는 로널드 라이베스트, 아디 샤미르, 레너드 애들먼의 이름을 따 명명된 비대칭 키 암호화 알고리즘이다. 1977년에 발표된 이 알고리즘은 소수의 곱셈은 쉽지만, 그 결과를 다시 소인수로 분해하는 것은 어렵다는 소인수분해 문제의 계산적 난이도에 기반하여 안전성을 확보한다[8].
RSA 알고리즘의 동작은 키 생성, 암호화, 복호화의 세 단계로 이루어진다. 키 생성 단계에서는 두 개의 충분히 큰 소수 p와 q를 선택하여 n = p * q를 계산한다. 이후 오일러 파이 함수 φ(n) = (p-1)(q-1)을 구하고, φ(n)과 서로소인 공개 지수 e를 선택한다. 마지막으로 e * d ≡ 1 (mod φ(n))을 만족하는 개인 지수 d를 계산한다. 이때 공개키는 (n, e) 쌍이며, 개인키는 (n, d) 쌍이다. 암호화는 평문 M을 공개키를 사용해 C ≡ M^e (mod n)으로 계산하고, 복호화는 암호문 C를 개인키를 사용해 M ≡ C^d (mod n)으로 계산하여 원래 평문을 복원한다.
RSA는 암호화와 디지털 서명 모두에 사용될 수 있는 범용성이 큰 특징을 지닌다. 그러나 연산 속도가 상대적으로 느리기 때문에, 실제 시스템에서는 대량 데이터 암호화에는 대칭 키 암호화를 사용하고, 그 대칭키를 안전하게 전달하기 위한 수단으로 RSA를 활용하는 하이브리드 암호 시스템이 널리 채택된다. RSA의 안전성은 사용하는 키의 길이에 크게 의존하며, 현재 권장되는 최소 키 길이는 2048비트 이상이다. 양자 컴퓨터의 발전은 큰 수의 소인수분해를 효율적으로 수행할 가능성을 열어, 장기적으로 RSA의 안전성에 위협이 될 수 있다는 점이 지적된다.
4.2. DSA
4.2. DSA
DSA(Digital Signature Algorithm)는 미국 국가표준기술연구소(NIST)가 1991년에 제정한 디지털 서명 표준인 DSS(Digital Signature Standard)의 핵심 알고리즘이다. 이 알고리즘은 엘가말 서명 방식을 변형하여 개발되었으며, 주로 메시지의 무결성과 발신자 인증을 보장하는 데 사용된다. DSA는 서명 생성과 검증에만 사용되며, 데이터 암호화에는 사용되지 않는다는 점이 특징이다.
DSA의 동작은 수학적 문제인 이산 로그 문제의 난해함에 기반한다. 시스템 파라미터로 큰 소수 p, p-1의 약수인 소수 q, 그리고 특정 조건을 만족하는 생성자 g가 공개된다. 각 사용자는 0 < x < q 범위의 비밀키 x를 선택하고, 공개키 y = g^x mod p를 계산하여 공개한다. 서명 생성 과정은 메시지의 해시 값과 비밀키 x, 그리고 매번 새로 생성되는 임의의 값 k를 사용하여 두 개의 서명 구성요소 r과 s를 계산한다. 검증자는 공개키 y와 공개 파라미터를 사용하여 동일한 계산을 수행하고, 결과가 서명 값 r과 일치하는지 확인함으로써 서명의 유효성을 판단한다.
DSA의 보안 강도는 주로 소수 q의 길이(비트 수)에 의해 결정된다. NIST는 다양한 보안 수준에 따라 권장 키 길이를 제시하고 있으며, 시간이 지남에 따라 더 긴 키를 사용하도록 권고하고 있다. 초기에는 1024비트 키가 표준이었으나, 현재는 2048비트 또는 3072비트 키 사용이 권장된다. DSA는 미국 연방 정부의 표준으로 널리 채택되었으며, 많은 보안 프로토콜과 소프트웨어에서 디지털 서명을 위한 옵션으로 지원된다.
4.3. ElGamal
4.3. ElGamal
엘가말 암호는 타헤르 엘가말이 1985년에 제안한 공개 키 암호 방식이다. 이 알고리즘의 안전성은 이산 로그 문제의 난해함에 기반을 두고 있으며, 디피-헬먼 키 교환 프로토콜에서 아이디어를 차용하여 설계되었다. 암호화와 디지털 서명 모두에 사용될 수 있지만, 주로 서명 알고리즘으로 알려져 있으며, 미국의 디지털 서명 표준(DSS)에 포함된 DSA는 엘가말 서명 방식을 변형한 것이다.
암호화 과정은 송신자가 수신자의 공개 키를 사용하여 수행한다. 먼저 큰 소수 p와 원시근 g를 선택하고, 개인키 x를 정한 후 공개키 (p, g, y = g^x mod p)를 생성한다. 메시지 m을 암호화할 때, 송신자는 임의의 난수 k를 선택하여 두 개의 암호문 구성요소 (c1 = g^k mod p, c2 = m * y^k mod p)를 계산하여 전송한다. 수신자는 자신의 개인 키 x를 사용하여 c2 / (c1^x) mod p 연산을 통해 원래 메시지 m을 복구한다.
엘가말 암호의 주요 특징 중 하나는 확률적 암호라는 점이다. 동일한 평문을 암호화하더라도 매번 다른 임의값 k를 사용하기 때문에 출력되는 암호문이 매번 달라진다. 이는 암호분석을 더욱 어렵게 만드는 장점이 있다. 그러나 암호문의 길이가 평문의 약 두 배로 증가하며, 연산 속도가 상대적으로 느리다는 단점도 있다.
특징 | 설명 |
|---|---|
안전성 기반 | 이산 로그 문제(DLP) |
용도 | 암호화, 디지털 서명 |
암호화 특성 | 확률적 암호 (Probabilistic Encryption) |
키 구성 | 공개키: (p, g, y), 개인키: x |
주요 활용 |
현대에는 암호화 용도로 직접 사용되기보다는, 하이브리드 암호 시스템에서 대칭 암호의 세션 키를 암호화하는 데 사용되거나, 그 변형인 DSA 및 타원곡선 디지털 서명 알고리즘(ECDSA)을 통한 디지털 서명 분야에서 그 원리가 계승되고 있다.
4.4. ECDSA
4.4. ECDSA
ECDSA는 타원곡선 암호 기반의 디지털 서명 알고리즘이다. NIST의 디지털 서명 표준에 포함된 알고리즘으로, DSA를 타원곡선 상의 연산으로 구현한 변형이다. RSA나 기존 DSA에 비해 훨씬 짧은 키 길이로 동등한 수준의 보안 강도를 제공하는 것이 핵심 특징이다[10].
서명 생성 및 검증 과정은 다음과 같다. 먼저, 서명자는 메시지 해시와 자신의 개인키를 사용하여 두 개의 정수(r, s)로 구성된 서명을 생성한다. 검증자는 서명자의 공개키, 서명(r, s), 그리고 원본 메시지의 해시값을 입력받아 수학적 연산을 수행한다. 연산 결과가 서명의 r 값과 일치하면 서명이 유효한 것으로 판단한다. 이 모든 연산은 미리 합의된 타원곡선과 그 위의 한 기저점을 정의된 매개변수로 사용한다.
특징 | 설명 |
|---|---|
보안 기반 | 타원곡선 이산 로그 문제의 계산적 난해성 |
주요 장점 | 짧은 키 길이, 높은 효율성, 낮은 대역폭 및 저장소 요구 |
주요 사용처 |
ECDSA는 특히 자원이 제한된 환경에서 널리 채택된다. 블록체인과 암호화폐 생태계에서는 거래 서명의 표준 알고리즘으로 자리 잡았다. 또한, 많은 웹 서버의 TLS 인증서도 ECDSA 키를 사용하여 연결 보안을 제공한다. 알고리즘의 안전성은 올바른 난수 생성과 안전한 타원곡선 매개변수 선택에 크게 의존한다. 부적절한 난수 사용은 개인키 노출로 이어질 수 있는 치명적인 결함을 초래한다.
5. 응용 분야
5. 응용 분야
비대칭 키 암호화는 한 쌍의 공개키와 개인키를 사용하는 특성 덕분에 대칭 키 암호화만으로는 구현하기 어려운 여러 핵심 보안 기능을 제공한다. 그 주요 응용 분야는 크게 디지털 서명, 키 교환, 그리고 종단간 암호화로 구분할 수 있다.
가장 대표적인 응용은 디지털 서명이다. 발신자가 자신의 개인키로 메시지의 해시값을 암호화(서명)하면, 수신자는 발신자의 공개키로 이를 복호화하여 서명을 검증한다. 이를 통해 메시지의 무결성과 부인 봉쇄를 보장한다. RSA와 DSA, ECDSA 알고리즘이 이 용도로 널리 사용된다. 또 다른 핵심 응용은 안전한 키 교환이다. 대표적인 Diffie-Hellman 키 교환 프로토콜은 통신 당사자가 각자의 개인키와 상대방의 공개키를 이용해 공통의 대칭키를 생성한다. 이렇게 생성된 세션 키는 이후 실제 데이터 암호화에 사용되어, 비대칭 암호의 안전한 키 분배 능력과 대칭 암호의 빠른 처리 속도를 결합한다.
실제 통신 보안에서 이 기술들은 결합되어 적용된다. PGP나 GPG는 이메일과 파일에 대해 디지털 서명과 암호화를 동시에 제공하는 대표적인 소프트웨어다. 현대 웹 보안의 핵심인 SSL/TLS 프로토콜 또한 비대칭 키 암호화에 크게 의존한다. TLS 핸드셰이크 과정에서는 서버 인증을 위해 RSA 또는 ECDSA 서명이 사용되며, Diffie-Hellman 키 교환을 통해 세션 키를 협상한다. 이는 HTTPS를 통한 모든 안전한 웹 통신의 기반이 된다.
응용 분야 | 주요 목적 | 사용되는 대표 알고리즘/프로토콜 |
|---|---|---|
안전한 대칭키 공유 | ||
전자 메일/파일 암호화 | 종단간 암호화 및 서명 | |
웹 통신 보안 | 안전한 채널 수립, 서버 인증 | SSL/TLS (RSA, ECDHE, ECDSA 등) |
이 외에도 SSH 접속, 코드 서명, 블록체인과 암호화폐의 거래 서명 등 현대 디지털 인프라의 수많은 분야에서 비대칭 키 암호화는 필수적인 기술로 자리 잡고 있다.
5.1. 디지털 서명
5.1. 디지털 서명
디지털 서명은 비대칭 키 암호화 체계를 활용하여 전자 문서의 무결성, 인증, 부인 방지를 제공하는 기술이다. 서명자는 자신만이 가지고 있는 개인키로 문서의 해시 값에 서명을 생성하고, 수신자는 서명자의 공개키를 사용하여 그 서명을 검증한다. 이 과정을 통해 문서가 전송 중에 변조되지 않았음을 확인하고, 서명자의 신원을 확신할 수 있으며, 서명자가 나중에 서명 사실을 부인할 수 없게 한다.
디지털 서명의 일반적인 작동 과정은 다음과 같다. 먼저, 서명할 원본 문서를 암호학적 해시 함수를 통해 고정된 길이의 해시 값으로 변환한다. 그런 다음, 서명자의 개인키를 사용하여 이 해시 값을 암호화하는 방식으로 서명을 생성한다. 생성된 서명은 원본 문서와 함께 전송된다. 수신 측에서는 동일한 해시 함수로 원본 문서의 해시 값을 다시 계산한 후, 송신자의 공개키로 전달받은 서명을 복호화하여 얻은 해시 값과 비교한다. 두 해시 값이 일치하면 서명이 유효한 것으로 판단한다.
주요 디지털 서명 알고리즘으로는 RSA를 기반으로 한 방식, 디지털 서명 알고리즘(DSA), 그리고 타원곡선 암호를 사용하는 ECDSA 등이 있다. 각 알고리즘은 서명 생성 및 검증에 사용되는 수학적 문제(예: 소인수분해 문제, 이산 로그 문제)에 기반을 두고 있으며, 응용 분야에 따라 선택된다.
알고리즘 | 수학적 기반 | 주요 사용 예 |
|---|---|---|
RSA | 소인수분해의 어려움 | 소프트웨어 패키지 서명, 이메일(PGP) |
DSA | 이산 로그 문제 | 이전 미국 정부 표준(DSS) |
ECDSA | 타원곡선 이산 로그 문제 | 비트코인, SSL/TLS 인증서 |
이 기술은 공인인증서, 소프트웨어 배포, 블록체인 트랜잭션, 그리고 SSL/TLS 프로토콜을 통한 웹사이트 인증 등 다양한 분야에서 핵심적인 보안 메커니즘으로 활용된다.
5.2. 키 교환 (예: Diffie-Hellman)
5.2. 키 교환 (예: Diffie-Hellman)
키 교환은 통신 당사자들이 공개된 채널을 통해 비밀리에 공유 대칭 키를 설정하는 과정이다. 비대칭 키 암호화는 이 문제를 해결하는 핵심 메커니즘을 제공한다. 가장 유명한 키 교환 프로토콜은 Diffie-Hellman 키 교환이다.
Diffie-Hellman 프로토콜은 이산 로그 문제의 계산적 난이도에 기반한다. 통신을 원하는 두 당사자(앨리스와 밥)는 공개적으로 합의된 큰 소수 *p*와 원시근 *g*를 사용한다. 각자는 자신만의 개인키를 선택하고, 이를 바탕으로 공개키를 계산하여 상대방에게 공개한다. 이후 각자는 상대방의 공개키와 자신의 개인키를 사용하여 동일한 공유 비밀 값을 계산한다. 이 값은 도청자에게는 계산하기 어렵지만, 양 당사자에게는 동일하다.
단계 | 앨리스 | 공개 채널 | 밥 |
|---|---|---|---|
1. 공개 파라미터 합의 | 소수 *p*, 원시근 *g* 전송 | ||
2. 개인키 생성 | 개인키 *a* 선택 | 개인키 *b* 선택 | |
3. 공개키 계산 & 교환 | 공개키 A = g^a mod p 전송 | → A, B 교환 ← | 공개키 B = g^b mod p 전송 |
4. 공유 비밀 계산 | 공유 비밀 S = B^a mod p | 공유 비밀 S = A^b mod p |
이렇게 생성된 공유 비밀 S는 이후 대칭 키 암호화 통신의 세션 키로 직접 사용되거나, 키 유도 함수를 통해 파생된다. Diffie-Hellman의 변형인 타원곡선 디피-헬만(ECDH)은 타원곡선 암호 기반으로 더 짧은 키 길이로 동등한 안전성을 제공한다. 이 키 교환 방식은 SSL/TLS와 같은 현대 보안 프로토콜의 핵심 요소로 작동한다.
5.3. 전자 메일 암호화 (PGP/GPG)
5.3. 전자 메일 암호화 (PGP/GPG)
PGP와 GPG는 비대칭 키 암호화를 활용하여 전자 메일의 기밀성, 무결성, 인증을 보장하는 대표적인 시스템이다. PGP는 1991년 필 짐머만에 의해 처음 개발되었으며, 이후 오픈 소스 표준인 OpenPGP로 발전했다. GPG는 OpenPGP 표준을 자유 소프트웨어로 구현한 GNU 프로젝트의 소프트웨어이다.
이 시스템의 핵심 작동 방식은 다음과 같다. 발신자는 수신자의 공개키로 메일 본문을 암호화하여 전송한다. 암호화된 메일은 오직 해당 개인키를 가진 수신자만 복호화하여 읽을 수 있다. 또한, 발신자는 자신의 개인키로 메시지에 디지털 서명을 생성하여 첨부할 수 있다. 수신자는 발신자의 공개키로 이 서명을 검증함으로써 메시지가 변조되지 않았고, 명시된 발신자로부터 왔음을 확인한다.
PGP/GPG는 일반적으로 하이브리드 암호 시스템을 사용한다. 실제 메시지 암호화에는 빠른 대칭 키 암호(예: AES)를 사용하고, 이 대칭 키를 암호화하는 데만 수신자의 공개키를 사용한다. 이는 비대칭 암호화의 속도 문제를 극복하면서도 안전한 키 교환을 가능하게 한다.
구성 요소 | 설명 |
|---|---|
키페어 | 사용자마다 생성되는 공개키와 개인키의 쌍. |
키 서버 | 사용자들의 공개키를 등록하고 공유하는 공개 데이터베이스. |
신뢰의 움직임 | 중앙 인증기관 대신, 사용자들이 서로의 키에 서명하며 신뢰 체인을 구축하는 모델. |
이 기술은 민감한 이메일 통신을 보호하는 데 널리 사용되며, 소스 코드 서명, 파일 암호화 등 다른 분야에도 응용된다. 사용자는 자신의 개인키를 철저히 보관해야 하며, 공개키의 진위를 확인하는 것이 보안상 매우 중요하다.
5.4. SSL/TLS와 웹 보안
5.4. SSL/TLS와 웹 보안
SSL과 그 후속 프로토콜인 TLS는 인터넷 상에서 데이터 통신의 보안을 제공하는 핵심 프로토콜이다. 이들은 주로 웹 브라우저와 웹 서버 간의 통신을 암호화하여, 개인정보나 금융 거래 정보와 같은 민감한 데이터가 제3자에게 노출되는 것을 방지한다. SSL/TLS는 비대칭 키 암호화를 핵심 요소로 활용하여 안전한 연결 수립 과정을 가능하게 한다.
연결 수립 과정인 TLS 핸드셰이크는 비대칭 암호화를 통해 여러 중요한 단계를 수행한다. 먼저, 서버는 공개키 인증서를 클라이언트에 전송한다. 이 인증서는 신뢰할 수 있는 인증 기관에 의해 서버의 공개키와 신원 정보가 서명된 디지털 문서이다. 클라이언트는 이 인증서를 검증하여 서버의 신원을 확인한다. 검증이 완료되면, 클라이언트는 서버의 공개키를 사용하여 대칭 암호화에 사용될 세션 키를 암호화하여 서버에 전송한다. 서버는 자신의 개인키로 이를 복호화하여 세션 키를 얻는다. 이렇게 교환된 세션 키를 기반으로 이후 모든 실제 데이터 통신은 더 빠른 대칭 키 암호화 방식으로 암호화되어 전송된다.
SSL/TLS는 웹 보안의 근간을 이루며, 여러 보안 서비스를 통합적으로 제공한다. 주요 제공 기능은 다음과 같다.
서비스 | 설명 |
|---|---|
기밀성 | |
무결성 | 메시지 인증 코드를 통해 데이터가 전송 중 변조되지 않았음을 보장한다. |
인증 |
이 프로토콜의 적용은 브라우저 주소창의 자물쇠 아이콘과 "https://" 접두사로 시각적으로 확인할 수 있다. 오늘날 대부분의 웹사이트는 사용자 보호를 위해 TLS를 표준으로 채택하고 있다.
6. 장단점
6. 장단점
비대칭 키 암호화는 대칭 키 암호화와 비교하여 뚜렷한 장점과 단점을 지닌다. 가장 큰 장점은 키 배포 문제를 해결한다는 점이다. 대칭 키 방식에서는 암호화와 복호화에 같은 키를 사용하므로, 통신 당사자 간에 비밀리에 키를 공유해야 하는 어려움이 있다. 반면 비대칭 키 방식에서는 공개키를 자유롭게 배포할 수 있어, 사전에 비밀 채널을 구축하지 않아도 안전한 통신을 시작할 수 있다. 이는 디지털 서명과 같은 인증 메커니즘을 가능하게 하여, 데이터의 무결성과 부인 방지를 보장한다. 또한, 한 쌍의 키로 암호화와 서명 모두에 사용할 수 있어 다양한 보안 프로토콜의 기반이 된다.
성능 측면에서는 대칭 키 방식에 비해 상대적으로 단점을 보인다. 복잡한 수학적 연산을 기반으로 하기 때문에 암호화와 복호화 속도가 훨씬 느리다. 일반적으로 RSA나 타원곡선 암호 같은 비대칭 알고리즘은 AES 같은 대칭 알고리즘보다 수백에서 수천 배 느린 처리 속도를 보인다. 이로 인해 대량의 데이터를 직접 암호화하는 데는 비효율적이며, 실제 응용에서는 하이브리드 방식을 주로 사용한다. 즉, 비대칭 키 암호화로 세션 키를 안전하게 교환한 후, 해당 대칭 키를 사용해 실제 데이터를 고속으로 암호화한다.
보안 강도는 사용하는 키의 길이와 기반이 되는 수학적 문제의 난이도에 좌우된다. 아래 표는 대칭 키와 비대칭 키의 보안 강도를 키 길이로 비교한 예시이다.
대칭 키 길이 (비트) | RSA 키 길이 (비트) | ECC 키 길이 (비트) | 비고 |
|---|---|---|---|
80 | 1024 | 160 | 오래되어 권장되지 않음 |
112 | 2048 | 224 | 기본적인 보안 수준 |
128 | 3072 | 256 | 현재 권장 표준 수준 |
256 | 15360 | 512 | 미래의 고강도 보안 |
비대칭 키 암호화는 관리의 편의성을 제공하지만, 개인키의 비밀 유지가 절대적이라는 보안 고려사항이 있다. 개인키가 유출되면 해당 키 쌍으로 보호되던 모든 통신의 기밀성과 서명의 신뢰성이 무너진다. 또한, 양자 컴퓨터의 발전은 현재 널리 사용되는 소인수분해나 이산 로그 문제 기반 알고리즘에 장기적인 위협으로 작용한다[11].
6.1. 대칭 키 암호화와의 비교
6.1. 대칭 키 암호화와의 비교
비대칭 키 암호화와 대칭 키 암호화는 암호 시스템의 두 주요 범주를 구성한다. 가장 근본적인 차이는 암호화와 복호화에 사용되는 키의 형태에 있다. 대칭 키 암호화는 암호화와 복호화에 동일한 비밀 키를 사용한다. 이는 송신자와 수신자가 사전에 안전한 채널을 통해 동일한 키를 공유해야 함을 의미한다. 반면, 비대칭 키 암호화는 한 쌍의 수학적으로 연관된 키, 즉 공개키와 개인키를 사용한다. 공개키는 누구나 알 수 있도록 공개되며 암호화에 사용되고, 이에 대응하는 개인키는 소유자만이 비밀로 보관하며 복호화에 사용한다.
두 방식의 비교는 다음과 같은 표로 요약할 수 있다.
비교 항목 | 대칭 키 암호화 | 비대칭 키 암호화 |
|---|---|---|
사용 키 | 하나의 비밀 키 (동일 키로 암호화/복호화) | 한 쌍의 공개키와 개인키 |
키 관리 | 사전 키 공유 필요, N명이 통신하려면 O(N²)의 키 쌍 필요 | 공개키는 자유롭게 배포, N명이 통신하려면 N개의 키 쌍으로 충분 |
보안 기반 | 암호 알고리즘과 키의 비밀성 | 수학적 난제(소인수분해, 이산로그 등)의 계산적 난이도 |
연산 속도 | 일반적으로 매우 빠름 | 일반적으로 대칭 키 방식에 비해 수백에서 수천 배 느림 |
주요 용도 | 대량 데이터의 암호화 (예: 파일, 통신 스트림) | 키 교환, 디지털 서명, 소량 데이터 암호화 |
키 관리의 복잡성은 현실 세계에서 중요한 차이점이다. 대칭 키 방식에서 참여자가 많아질수록 관리해야 할 비밀 키의 수가 기하급수적으로 증가한다. 예를 들어, 10명이 서로 안전하게 통신하려면 45개의 독립적인 비밀 키 쌍이 필요하다. 반면, 비대칭 키 방식에서는 각 사용자가 자신의 한 쌍의 키만 생성하면 되며, 공개키는 디렉터리에 게시하는 등 자유롭게 배포할 수 있다.
성능 측면에서 대칭 키 알고리즘은 하드웨어 구현이 쉽고 연산 속도가 매우 빠르다. 따라서 실제 통신에서 대량의 데이터를 암호화할 때는 주로 AES와 같은 대칭 키 암호가 사용된다. 비대칭 키 암호는 상대적으로 연산 부하가 크지만, 키를 안전하게 배포하거나 디지털 서명을 생성하는 데 필수적인 기능을 제공한다. 현대의 보안 프로토콜(예: SSL/TLS)은 두 방식을 혼합하여 사용한다. 즉, 비대칭 키 암호로 세션 키를 협상하고 교환한 후, 해당 세션 키를 사용해 대칭 키 암호로 실제 데이터 통신을 암호화한다.
6.2. 보안 강도와 성능
6.2. 보안 강도와 성능
비대칭 키 암호화의 보안 강도는 주로 사용되는 키 길이와 기반이 되는 수학적 문제의 난이도에 의해 결정된다. 일반적으로 키 길이가 길수록 공격에 필요한 계산량이 기하급수적으로 증가하여 보안 강도가 높아진다. 예를 들어, RSA 알고리즘의 경우, 2048비트 키는 현재 표준으로 간주되며, 3072비트 또는 4096비트 키는 더 높은 보안 수준을 요구하는 환경에서 사용된다. 타원곡선 암호는 동일한 보안 수준을 제공하는 데 훨씬 짧은 키 길이를 사용할 수 있어 효율성이 뛰어나다[12].
성능 측면에서 비대칭 암호화는 대칭 키 암호화에 비해 계산 속도가 현저히 느리다. 복잡한 수학적 연산(모듈러 지수 연산, 타원곡선 연산 등)을 필요로 하기 때문이다. 따라서 대용량 데이터를 직접 암호화하는 데는 적합하지 않으며, 실제 시스템에서는 하이브리드 방식을 주로 채택한다. 이 방식은 비대칭 암호화로 세션 키를 안전하게 교환한 후, 해당 세션 키를 사용해 고속의 대칭 암호화로 실제 데이터를 암호화한다.
다양한 알고리즘 간의 보안 강도와 성능은 다음과 같이 비교할 수 있다.
알고리즘 | 대략적 키 길이 (동등 보안 수준) | 주요 연산 | 상대적 속도 (암호화/복호화) |
|---|---|---|---|
RSA 2048비트 | 2048비트 | 모듈러 지수 연산 | 느림 |
ECC 256비트 (예: secp256k1) | 256비트 | 타원곡선 스칼라 곱셈 | RSA보다 빠름 |
DSA 2048비트 | 2048비트 | 모듈러 지수 연산 | 느림 (서명 생성/검증) |
결론적으로, 시스템 설계 시에는 필요한 보안 수준, 처리할 데이터의 양, 하드웨어 제약 조건 등을 고려하여 적절한 알고리즘과 키 길이를 선택해야 한다. 높은 보안을 요구하지만 제한된 컴퓨팅 자원(예: IoT 기기)을 가진 환경에서는 타원곡선 암호가 유리한 선택이 될 수 있다.
7. 보안 고려사항
7. 보안 고려사항
비대칭 키 암호화의 안전성은 사용되는 암호화 알고리즘의 강도와 키 길이에 직접적으로 의존한다. 일반적으로 키 길이가 길수록 암호를 해독하는 데 필요한 계산량이 기하급수적으로 증가하여 보안 강도가 높아진다. 예를 들어, RSA 알고리즘의 경우, 2020년대 기준으로 2048비트 이상의 키 길이가 권장된다[13]. 타원곡선 암호(ECC)는 동일한 보안 수준을 제공하는 데 훨씬 짧은 키 길이를 사용할 수 있어 효율성이 높다. 256비트 ECC 키는 3072비트 RSA 키와 유사한 보안 강도를 가진다.
가장 심각한 장기적 위협은 양자 컴퓨터의 발전이다. 쇼어 알고리즘(Shor's algorithm)과 같은 양자 알고리즘은 현재 널리 사용되는 RSA, DSA, ElGamal과 같은 알고리즘의 수학적 기반인 소인수분해 문제와 이산 로그 문제를 다항 시간 내에 해결할 수 있는 이론적 가능성을 제시한다. 이는 충분히 강력한 양자 컴퓨터가 실용화되면 현재의 대부분의 비대칭 키 암호 체계가 근본적으로 무너질 수 있음을 의미한다.
이에 대응하여 양자 내성 암호(Post-Quantum Cryptography, PQC) 연구가 활발히 진행되고 있다. 양자 내성 암호는 격자 기반 암호, 코드 기반 암호, 다변량 다항식 암호 등 양자 컴퓨터로도 해독하기 어려운 새로운 수학적 문제에 기반한 알고리즘을 개발하는 것을 목표로 한다. NIST는 2022년부터 양자 내성 암호 표준화를 진행 중이며, 기존 시스템을 이러한 새로운 표준으로 점진적으로 전환해야 할 필요성이 대두되고 있다.
7.1. 키 길이와 안전성
7.1. 키 길이와 안전성
비대칭 키 암호화 시스템의 안전성은 사용하는 키 길이와 밀접한 관계가 있다. 키 길이는 일반적으로 비트 단위로 표현되며, 공개키와 개인키를 구성하는 수의 크기를 의미한다. 키 길이가 길수록 암호를 무력화하기 위해 필요한 계산량이 기하급수적으로 증가하여, 무차별 대입 공격을 포함한 다양한 공격에 대한 저항력이 강화된다.
안전한 키 길이는 기술의 발전, 특히 컴퓨팅 성능의 향상에 따라 지속적으로 증가해왔다. 예를 들어, RSA 알고리즘의 경우, 1990년대에는 512비트 키가 사용되기도 했으나, 현재는 최소 2048비트가 표준으로 권장된다. 1024비트 RSA 키는 이미 안전하지 않은 것으로 간주된다[14]. 다른 알고리즘군은 동일한 보안 수준을 달성하는 데 필요한 키 길이가 다르다. 타원곡선 암호(ECC)는 동등한 안전성을 제공하기 위해 RSA나 DSA보다 훨씬 짧은 키 길이를 사용한다는 장점이 있다.
알고리즘 유형 | 대략적 보안 수준 (비트) | 권장 최소 키 길이 (비트) |
|---|---|---|
RSA (소인수분해 기반) | 112비트 | 2048 |
128비트 | 3072 | |
DSA/ElGamal (이산 로그 기반) | 112비트 | 2048 |
128비트 | 3072 | |
ECC (타원곡선 기반) | 112비트 | 224 |
128비트 | 256 |
표준화 기관들은 주기적으로 키 길이 권고안을 갱신한다. 미국 국립표준기술연구소(NIST)의 SP 800-57 시리즈나 유럽연합의 ENISA 보고서는 특정 시점까지 안전한 것으로 예상되는 최소 키 길이를 제시한다. 이러한 권고는 암호 해독 기술의 발전, 특히 양자 컴퓨터와 같은 미래 기술의 잠재적 위협을 고려하여 수립된다. 따라서 시스템 설계자는 현재의 표준뿐만 아니라 향후 몇 년간의 안전성을 보장하기 위해 적절한 여유를 두고 키 길이를 선택해야 한다.
7.2. 양자 컴퓨터의 위협
7.2. 양자 컴퓨터의 위협
양자 컴퓨터는 슈퍼포지션과 양자 얽힘 같은 양자역학적 원리를 활용하여 특정 계산 문제를 기존 컴퓨터보다 훨씬 빠르게 해결할 수 있는 잠재력을 가진다. 이로 인해 현재 널리 사용되는 많은 비대칭 키 암호화 방식의 수학적 기반이 심각하게 위협받을 수 있다[15]. 특히, 소인수분해 문제에 기반한 RSA와 이산 로그 문제에 기반한 DSA, ElGamal, 그리고 타원곡선 암호(ECC)는 대표적인 위험 대상이다.
1994년 피터 쇼어가 제안한 쇼어 알고리즘은 충분히 강력한 양자 컴퓨터가 실현될 경우, 큰 수의 소인수분해와 이산 로그 문제를 다항 시간 내에 해결할 수 있음을 이론적으로 증명했다. 이는 현재 수백 또는 수천 비트의 키를 사용하여 보장하는 안전성이 무너질 수 있음을 의미한다. 반면, 대칭 키 암호화의 경우 그로버 알고리즘에 의해 위협받지만, 키 길이를 두 배로 늘리는 것으로 대응이 가능한 반면, 비대칭 방식은 근본적인 알고리즘의 변경이 필요하다.
이 위협에 대응하기 위해 전 세계적으로 양자내성암호(Post-Quantum Cryptography, PQC)의 연구와 표준화가 활발히 진행되고 있다. 주요 접근법은 다음과 같다.
접근법 (기반 문제) | 대표 알고리즘 예시 | 특징 |
|---|---|---|
NTRU, Kyber[16] | 높은 효율성과 잘 연구된 안전성 | |
McEliece, BIKE | 매우 오랜 연구 역사,但 키 크기가 큼 | |
Rainbow, GeMSS | 서명에 적합,但 공개키 크기가 큼 | |
SPHINCS+, XMSS | 서명 전용, 안전성은 해시 함수에 의존 |
표준화 기관인 NIST는 2016년부터 양자내성암호 공모를 진행하여 2022년에 첫 번째 표준 알고리즘들을 선정했으며, 2024년에 추가 알고리즘을 선정할 예정이다. 현재의 암호 시스템을 완전히 대체하기까지는 상당한 시간이 소요될 것으로 예상되므로, 암호학적 민첩성을 갖춘 시스템 설계와 양자 위협에 대한 지속적인 모니터링이 필수적이다.
8. 표준 및 규격
8. 표준 및 규격
비대칭 키 암호화 기술의 상호운용성과 보안성을 보장하기 위해 여러 국제 표준화 기구에서 관련 표준과 규격을 제정하고 유지 관리한다.
주요 국제 표준으로는 국제표준화기구(ISO)와 국제전기기술위원회(IEC)가 공동으로 발표하는 ISO/IEC 표준이 있다. 예를 들어, RSA와 디피-헬먼 키 교환을 포함한 공개키 기술에 대한 기본적인 표준은 ISO/IEC 14888 시리즈와 ISO/IEC 15946 시리즈에 정의되어 있다. 또한, 미국국립표준기술연구소(NIST)는 미국 연방 정보 처리 표준(FIPS)을 통해 널리 채택되는 규격을 발행한다. 대표적으로 디지털 서명 알고리즘(DSA)을 규정한 FIPS 186과 타원곡선 암호를 포함한 키 관리 지침을 담은 FIPS 140 시리즈가 있다.
인터넷 공학 태스크 포스(IETF)는 인터넷 프로토콜에 적용되는 표준을 정의하는 데 핵심적인 역할을 한다. SSL/TLS 프로토콜의 표준은 IETF의 RFC 문서로 발표되며, RSA 키 전송이나 ECDHE 키 교환과 같은 비대칭 암호화 방식의 사용 방법을 명시한다. 전자 메일 보안을 위한 OpenPGP 표준도 IETF의 RFC 4880 등으로 관리된다. 암호 알고리즘의 구현과 테스트에 관한 표준은 유럽의 공통 기준(Common Criteria)과 같은 평가 체계에서 참조하기도 한다.
표준화 기구 | 주요 표준/규격 | 관련 알고리즘/기술 |
|---|---|---|
ISO/IEC | ISO/IEC 14888 (디지털 서명), ISO/IEC 15946 (타원곡선 암호) | 일반적인 공개키 기술 기반 |
NIST | FIPS 186 (디지털 서명 표준), FIPS 140 (암호 모듈 검증) | DSA, ECDSA, RSA, 키 관리 |
IETF | RFC 5246 (TLS 1.2), RFC 4880 (OpenPGP) | TLS 내 키 교환, PGP/GPG |
ETSI | TS 103 097 (ITS 보안) | 차량 통신에서의 ECDSA 등 |
이러한 표준들은 사용할 수 있는 키 길이, 권장되는 해시 함수, 알고리즘의 매개변수 등을 구체적으로 규정하여, 서로 다른 시스템 간에 안전한 통신이 가능하도록 한다. 표준은 기술의 진화와 새로운 위협에 대응하기 위해 주기적으로 개정된다.
