정수론 융합탐구 보고서 22061 이나경

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 9

융합탐구 보고서

공개 키 암호화 알고리즘
정수론 4반 22061 이나경

Abstract

현대 디지털 통신에서 정보의 안전한 전송은 매우 중요한 문제로, 이를 해결하기 위해 공개


키 암호화 기술이 널리 사용되고 있다. 이 기술은 ’공개 키’와 ’비밀 키’라는 두 개의 키를
사용하여 작동하며, 각 사용자는 공개 키로 메시지를 암호화할 수 있다. 이렇게 암호화된
메시지는 개인 키로만 복호화할 수 있기에 데이터의 기밀성과 무결성을 보장한다. 본
탐구는 다양한 공개 키 암호화 알고리즘에 대한 것으로, RSA, 디피-헬만 키 교환, 디지털
서명 알고리즘(DSA), 엘가말 암호화, 엘립틱 커브 암호화(ECC), 그리고 라빈 암호화와
같은 다양한 알고리즘들을 포함한다. 탐구를 통해 각 알고리즘의 원리, 장점, 그리고 실제
적용 사례에 대해 분석하여 각 알고리즘의 기여와 한계를 알아보고자 한다.

1 서론

현대 디지털 통신 시스템에서는 정보의 안전한 전송이 매우 중요하다. 이를 위해 공개 키 암호화 기


술이 널리 사용되고 있는데, ’공개 키’와 ’비밀 키’라는 두 개의 키를 사용하여 작동한다. 각 사용자는
공개 키를 공개하고, 이를 이용해 메시지를 암호화할 수 있습니다. 암호화된 메시지는 개인 키로만
해독할 수 있으므로, 데이터의 기밀성과 무결성을 보장할 수 있는 것이 특징이다.

수업시간에는 가장 널리 알려져 있는 RSA 알고리즘에 대해 간단히 다루었다. 그러나 RSA 외에도


Diffie-Hellman Key Exchange, Digital Signature Algorithm Elliptic Curve Cryptography 등
다양한 공개 키 암호화 알고리즘이 있다. 본 융합탐구에서는 RSA 외에도 이러한 다양한 공개 키
암호화 기술들에 대해 탐구하고, 각 알고리즘의 장단점과 실제 적용 사례를 분석하고자 한다.

2 본론

2.1 RSA 암호화 (RSA Encryption)

RSA 알고리즘은 1970년대 말에 Ron Rivest, Adi Shamir, Leonard Adleman이 개발한 암호화
알고리즘이다. RSA 알고리즘은 공개키 암호화 시스템의 첫 번째 실용적인 구현 중 하나로, 이전에
주로 사용되던 대칭키 암호화 방식의 단점을 극복하기 위해 개발되었다. 대칭키 암호화 방식에서는

1
융합탐구 보고서

암호화와 복호화에 같은 키를 사용해야 했기 때문에, 키 배송과 관리의 어려움이 있었다. RSA 알


고리즘은 공개키와 개인키라는 서로 다른 두 키를 사용하여 이 문제를 해결하였다. 이는 공개키를
사용해 메시지를 암호화하고, 개인키를 사용해 암호문을 복호화함으로써 안전하게 통신할 수 있게
만들었다. 이론적으로 RSA의 안전성은 큰 수를 소인수 분해하는 어려움에 기반하고 있다. 즉, 큰
소수를 곱하는 것은 쉬우나, 그 역으로 소수로 분해하는 것은 어려운 문제라는 것을 활용한다.

2.1.1 키 생성

키를 생성하는 방법은 다음과 같다.

1. 두 개의 큰 소수 p 와 q 를 선택하고, n = pq 를 계산한다.

2. 오일러 파이 함수 ϕ(n) = (p − 1) × (q − 1) 를 계산한다.

3. gcd(k, ϕ(n)) = 1 인 k 를 선택한다.

4. k × d ≡ 1 (mod ϕ(n)) 인 d 를 계산한다.

이때 공개 키는 (k, n) 이고, 비밀 키는 (d, n) 이다.

2.1.2 암호화 및 복호화

암호화하고자 하는 문자열을 일정한 규칙을 거쳐 숫자열로 바뀐다. 이를 M 이라 하고, M < n


이어야 하며, 그렇지 않은 경우에는 적절한 길이로 분할하여 암호화를 진행한다. 암호화 지수 k
를 선택하여, M k ≡ r (mod n) 인 r 을 계산한다. 이 r 은 암호화된 결과로 수신자에게 전송된다.
다음으로, 암호화 지수 k 에 대해 역원 j 를 찾는다. 즉, kj ≡ 1 (mod ϕ(n)) 을 만족하는 j 를 찾는다.
이는 디오판토스 방정식 kx + ϕ(n)y = 1 의 해를 구하거나 확장 유클리드 알고리즘을 통해 구할 수
있다. 이제 kj = 1 + ϕ(n)t 이고, gcd(M, n) = 1 인 M 을 생각하면 다음과 같이 복호화할 수 있다:

rj = (M k )j ≡ M 1+ϕ(n)t ≡ M · M ϕ(n)t ≡ M · 1t ≡ M (mod n)

만약 gcd(M, n) ̸= 1 이면, n = pq 임을 이용하여 비슷한 방법으로 증명할 수 있다. 따라서 RSA


암호화에서 r 은 M 을 n 으로 나눈 나머지로, j 는 k 의 역원에 따라 복호화 과정에서 원래의 M 을
복원할 수 있다.

2.1.3 장단점

RSA 알고리즘은 공개 키 암호 시스템의 대표적인 예시로, 다양한 보안 응용 프로그램에서 널리


활용된다. RSA 암호의 장점은 안정성이 높다는 것이다. RSA 알고리즘은 소수의 곱셈을 기반으로
하며, 현재까지 수학적으로 효율적으로 해독할 수 없는 문제에 기반하여 안전성이 높다. 물론 RSA의

2
융합탐구 보고서

보안성은 키의 크기에 따라 달라지며, 보다 안전한 수준을 유지하기 위해서는 긴 키를 사용해야 한다.


또한, 공개키 암호화 방식을 사용하여 메시지를 안전하게 전송할 수 있다. 그러나 대칭키 암호화
방식에 비해 계산 속도가 느리다는 단점이 있다. 특히 큰 수의 계산이 필요하므로, 성능 저하가 발생할
수 있다. 현재까지 n = pq 임을 아는 상태에서 회복 지수 j 를 구하는 것이 log(n) 의 시간복잡도에서
해결됨이 밝혀졌다.

2.2 디피-헬만 키 교환 (Diffie-Hellman Key Exchange)

디피-헬만 키 교환 프로토콜은 1976년 블레이크 디피와 마틴 헬만이 개발한 암호화 기법으로, 기


존의 대칭 키 암호화 방식에서 발생하던 키 관리와 배포의 어려움을 해결하기 위해 설계되었다. 이
프로토콜은 공개 키 암호화의 초기 형태로, 각 사용자가 공개 키와 비밀 키를 사용하여 안전하게
통신할 수 있도록 한다. 수학적 연산을 활용하여 키 교환 과정을 보안적으로 안전하게 처리함으로써
중간에서의 도청과 키의 도난을 방지한다. 디피-헬만 프로토콜은 현대의 네트워크 보안 기술 발전에
크게 기여하였으며, 후술할 엘가말 암호화 등 공개 키 암호화 및 키 교환 프로토콜의 기반으로 널리
채택되고 있다.

2.2.1 키 교환 단계

키 교환 단계는 다음과 같이 이루어진다.

1. 공개 파라미터 설정: 모든 사용자는 공유하는 소수 p 와 원시근 g 를 선정한다.

2. 키 생성: 각 사용자는 자신의 비밀 값 a 와 b 를 선택한다.

3. 공유 키 계산: 사용자 A는 A ≡ g a (mod p) 를, 사용자 B는 B ≡ g b (mod p) 를 계산하여


공개한다.

4. 비밀 키 계산: 사용자 A는 K = B a ≡ (g b )a ≡ g ab (mod p)를 계산하여 비밀 키를 얻고, 사용자


B는 K = Ab ≡ (g a )b ≡ g ab (mod p) 를 계산하여 비밀 키를 얻는다. 결과적으로 두 사용자
모두 동일한 공통 비밀 키 K 를 공유하게 된다.

2.2.2 장단점

디피-헬만 키 교환은 네트워크 보안, 전자상거래 등 다양한 분야에서 사용되며, 현재도 중요한 역할을
하고 있다. 이 방식은 중간자 공격으로부터 안전하며, 공개된 정보만으로 비밀 키를 계산하기 어렵기
때문에 안전하다는 장점이 있다. 그러나 계산 비용이 높을 수 있으며, 큰 소수와 거듭제곱 연산을
요구한다.

3
융합탐구 보고서

2.3 디지털 서명 알고리즘 (Digital Signature Algorithm, DSA)

디지털 서명 알고리즘은 1991년 미국 국립표준기술연구소(NIST)에서 표준으로 채택된 알고리즘


으로, 인터넷과 전자상거래 환경에서 메시지의 인증과 무결성을 보장하기 위해 개발되었다. 이
알고리즘은 소수 이론과 이산 로그리즘을 활용하여 안전하고 효율적인 디지털 서명 생성 및 검증
기능을 제공하며, 전 세계적으로 널리 사용되고 있다.

2.3.1 키 생성

키를 생성하는 방법은 다음과 같다.

1. 파라미터 선택: DSA에서는 다음과 같은 파라미터를 사용한다.

• 소수 p 와 소수 q (단, q 는 p − 1로 나누어지는 소수)

• 소수 g 는 주기 q 의 생성자이다.

2. 비밀 키 생성: 사용자는 0 < x < q 을 만족하는 비밀 키 x 를 임의로 선택한다.

3. 공개 키 생성: 공개 키 y 는 y ≡ g x (mod p) 로 계산된다.

즉, 공개 키는 (p, q, g, y) 이고, 비밀 키는 x 이다.

2.3.2 서명 생성 및 검증

1. 서명 생성: 메시지 m 에 대한 해시 H(m) 을 계산한다. 임의의 정수 k 를 선택하고,

r ≡ (g k (mod p)) (mod q)

를 계산한다. 여기서, g 는 기본 생성원, p 는 소수, q 는 p 의 순서를 나타낸다. 따라서,

s ≡ k −1 (H(m) + x · r) (mod q)

이때, k −1 은 k 의 mod q 에 대한 역수이다.

2. 서명 검증: 수신자는 받은 메시지 m 과 서명 (r, s) 를 사용하여 다음을 계산한다:

w = s−1 (mod q)

u1 = H(m) · w (mod q)

u2 = r · w (mod q)

v = (g u1 y u2 (mod p)) (mod q)

만약 v 가 r 과 같으면 서명이 유효하다고 판단한다.

4
융합탐구 보고서

2.3.3 장단점

디지털 서명 알고리즘(DSA)은 인터넷 보안 프로토콜, 전자 서명, 인증서 등 다양한 보안 응용 프로그


램에서 사용된다. 안전하고 효율적인 디지털 서명 생성 및 검증이 가능하며 중복되는 서명을 방지할
수 있다는 장점이 있다. 그러나 키 크기에 따라 계산 비용이 증가할 수 있다. 또한, 특정 상황에서
보안성이 충분하지 않을 수 있다.

2.4 엘가말 암호화 (ElGamal Encryption)

엘가말 암호화는 1985년에 Ron Rivest, Adi Shamir, Leonard Adleman이 발표한 암호화 방식으
로, 공개 키 암호화 시스템에 포함된다. 엘가말 암호화는 초기에는 디피-헬만 키 교환 프로토콜의
개념을 확장하여 개발되었다.이 알고리즘의 주요 목적은 효율적인 공개 키 기반의 암호화와 디지털
서명을 가능하게 하는 것이며, 기존의 대칭 키 암호화 방식과는 달리 공개 키와 비밀 키를 분리하여
키 관리와 배포의 어려움을 해결할 수 있다. 수학적으로 소수 이론과 이산 로그리즘 등의 수학적
개념을 활용하여 암호화된 데이터의 기밀성과 무결성을 보호하며, 데이터 전송 중에 중간에서의
탈취나 변조를 방지한다.

2.4.1 키 생성

1. 파라미터 선택: 엘가말 암호화에서는 다음과 같은 파라미터를 사용한다.

• 소수 p: 대상 그룹의 크기를 결정한다.

• 원시근 g: p 의 원소들을 생성하는 주기를 가진다.

• 비밀 키 x: 0 < x < p − 1 범위에서 임의로 선택된다.

• 공개 키 y: y ≡ g x (mod p) 로 계산된다.

즉, 공개 키는 (p, g, y) 이고, 비밀 키는 x 이다.

2.4.2 암호화 및 복호화

1. 암호화: 메시지 M 을 0 < m < p 범위에서 임의로 선택된 k 를 사용하여 다음과 같이 암호화한
다.
암호문 = (c1 , c2 ) = (g k (mod p), y k · M (mod p))

2. 복호화: 암호문 (c1 , c2 ) 을 사용하여 다음을 계산하여 메시지 M 을 복원한다.

M = c2 · (cx1 )−1 (mod p)

5
융합탐구 보고서

2.4.3 장단점

엘가말 암호화는 단순하면서도 효율적인 공개 키 암호화 방식으로, 주로 데이터의 기밀성을 보장하기


위해 사용된다. 그러나 메시지의 크기가 크거나 암호화된 메시지의 변경 가능성이 있는 경우 취약할
수 있다. 또한, 계산 비용이 DSA와 유사하게 키 크기에 따라 증가할 수 있다.

2.5 엘립틱 커브 암호 (Elliptic Curve Cryptography, ECC)

엘립틱 커브 암호는 1985년 브루스 슐라이어와 비알레르모 미아히에 의해 독립적으로 개발된 기술로,
기존의 공개 키 기반 암호화 방식보다 더 작은 키 사이즈로 높은 보안 수준을 제공한다. 이는 타원
곡선의 수학적 속성을 이용하여 계산 복잡도를 줄이고, 작은 키 사이즈로도 높은 보안성을 유지할
수 있어 자원 제한적인 환경에서 효율적이다. ECC는 전송 대역폭과 저장 공간을 절약하며, 빠른
계산 속도를 제공하여 모바일 기기나 임베디드 시스템에서 유용하게 사용된다. 또한 디지털 서명, 키
교환, 데이터 보호 등 다양한 보안 응용에서 활용되며, NIST와 같은 표준화 기구에서 인정받아 많은
보안 프로토콜에서 채택되고 있다. ECC는 현대 암호화 기술의 중요한 요소로 자리잡고 있으며, 보다
안전하고 효율적인 데이터 보호 방법이다.

2.5.1 키 생성

1. 엘립틱 커브 선택: 사용자는 암호화에 사용할 엘립틱 커브 E 를 선택한다. 이때, 커브는 다음과
같은 수학적 속성을 만족해야 한다:

• E 는 affine 좌표 또는 projective 좌표 시스템에서 정의된다.

• E 는 특정한 연산 규칙(덧셈 연산 등)을 따른다.

2. 비밀 키 생성: 사용자는 E 의 order를 나타내는 n 과 임의의 비밀 수 d 를 선택한다. d 는 보통


1 < d < n 범위에서 선택된다.

3. 공개 키 생성: 공개 키는 Q = d · G 로 계산된다. 여기서 G 는 E 의 generator point이다.

따라서, 공개 키는 (E, G, Q) 이고, 비밀 키는 d 이다.

2.5.2 암호화 및 복호화

1. 암호화: 메시지 M 을 암호화하기 위해 임의의 정수 k 를 선택하여 k · G를 계산하고, M 을 k · Q


와 XOR 연산하여 암호문을 생성한다.

2. 복호화: 암호문을 복호화하기 위해 d · (k · Q) 를 계산하여 k · G 를 찾은 후 암호문을 해독한다.

6
융합탐구 보고서

2.5.3 장단점

엘립틱 커브 암호는 키 크기가 작으면서도 높은 보안 수준을 제공하여 효율적인 계산을 가능하게


한다. 따라서 제한된 자원을 가진 장치에서도 성능이 우수하다. 그러나 적절하지 않은 파라미터
선택이나 구현의 실수는 보안에 위협이 될 수 있다.

2.6 라빈 암호화 (Rabin Encryption)

라빈 암호화는 RSA 알고리즘이 등장한 후, 공개키 암호화 시스템을 개선하려는 연구의 결과로 탄생
하였다. 1979년에 MIT의 로날드 라빈 교수에 의해 제안된 이 암호화 방식은 RSA와 유사한 수학적
원리를 기반으로 하지만 제곱 연산만을 사용하여 계산을 단순화하고 효율성을 높였다. 라빈 암호화는
특히 암호화 과정에서의 계산 효율성과 함께 복호화 과정에서의 유연성을 제공하여 다양한 보안 응용
분야에서 활용되고 있다.

2.6.1 키 생성

키를 생성하는 방법은 다음과 같다.

1. 소수 선택: 라빈 암호화에서는 두 개의 큰 소수 p 와 q 를 선택합니다. 단, p ≡ q ≡ 3 (mod 4)


이어야 한다.

2. 공개 키 생성: 공개 키 n 은 두 소수의 곱으로, n = p × q 를 계산한다.

3. 비밀 키 생성: 비밀 키는 p와 q 로부터 유도된다. 이 두 소수는 나중에 복호화 과정에서 중요한


역할을 한다.

즉, 라빈 암호화의 공개 키는 n 이고, 비밀 키는 (p, q) 이다.

2.6.2 암호화 및 복호화

1. 암호화: 평문 M 을 n으로 나머지 연산을 통해 암호문 C 를 생성합니다. 즉, C ≡ M 2 (mod n)


으로 계산된다.

2. 복호화: 암호문 C 에 대해 네 가지 가능한 해 ±M (mod p) 와 ±M (mod q) 를 찾는다. 이후


중국인의 나머지 정리를 사용하여 이 네 가지 값을 조합하여 실제 평문 M 을 복원한다.

2.6.3 장단점

라빈 암호화는 제곱 연산만을 사용하여 계산을 단순화하고 효율성을 높이는 장점을 가지고 있다.
계산 효율성에서 RSA와 비교했을 때 특히 하드웨어 구현에서 성능을 더욱 향상시킬 수 있다. 또한,

7
융합탐구 보고서

암호화 및 복호화 과정이 단순하고 구현이 간편하다는 특징이 있다.그러나 라빈 암호화는 복호화
과정에서의 다의성 문제를 가지고 있다. 복호화 시에는 네 가지 가능한 해를 계산하고, 이 중에서
올바른 평문을 선택해야 한다. 이는 암호문이 복호화될 때 추가적인 정보나 패딩이 필요할 수 있음을
의미한다. 또한, 암호문의 구조적 특성으로 인해 특정 공격 형태에 취약할 수 있으며, 적절하지 않은
소수 p와 q 의 선택이 보안성에 부정적인 영향을 미칠 수 있다. 특히 키 관리가 복잡하고 안전한 소수
선택이 필수적인 과제이다.

2.7 공개 키 암호화 응용 사례

2.7.1 전자메일 보안 (PGP 및 S/MIME)

전자메일 보안에서는 공개 키 암호화가 주요 방법으로 사용된다. Pretty Good Privacy (PGP)나


Secure/Multipurpose Internet Mail Extensions (S/MIME)와 같은 프로토콜은 발신자가 수신자
의 공개 키를 사용하여 메시지를 암호화하고, 수신자는 자신의 개인 키를 사용하여 이를 해독한다.

2.7.2 SSL/TLS 프로토콜 (HTTPS)

SSL/TLS 프로토콜은 웹 브라우저와 웹 서버 간의 안전한 통신을 위해 공개 키 암호화를 사용한다.


클라이언트는 서버의 공개 키를 사용하여 세션 키를 안전하게 교환하고, 이후의 데이터 전송은 대칭 키
암호화를 사용하여 보호된다. HTTPS를 통해 개인 정보와 금융 정보를 포함한 웹 트래픽이 안전하게
암호화된다.

2.7.3 디지털 서명 및 인증서

디지털 서명은 공개 키 암호화의 핵심적인 응용 사례로서, 발신자는 개인 키를 사용하여 문서나 데


이터에 전자적으로 서명하고, 수신자는 발신자의 공개 키를 사용하여 검증한다. 인증 기관은 디지털
인증서를 발급하여 웹 사이트의 신원을 검증한다.

2.7.4 VPN 및 원격 접속

Virtual Private Networks(VPN)과 원격 접속 솔루션에서도 공개 키 암호화가 사용된다. 클라이


언트와 VPN 서버 간의 초기 연결에서 공개 키 알고리즘이 사용되어 키 교환을 안전하게 진행하고,
이후의 데이터 전송을 보호한다. 이를 통해 외부에서의 도청을 방지하고, 기업 네트워크의 보안을
유지할 수 있다.

8
융합탐구 보고서

2.7.5 디지털 통화 및 암호화폐

대부분의 암호화폐 트랜잭션은 송금자가 수신자의 공개 키를 사용하여 거래를 암호화하고, 수신자는


자신의 개인 키를 사용하여 이를 해독한다. 이 과정에서 공개 키와 개인 키의 조합으로 거래의 보안
성을 보장한다.

2.7.6 클라우드 서비스

클라우드 서비스는 데이터 보호를 위해 공개 키 암호화를 활용한다. 고객 데이터는 클라우드 서비스


제공업체의 공개 키로 암호화되며, 데이터 소유자만이 개인 키를 통해 이를 해독할 수 있다. 이를
통해 데이터의 기밀성과 무결성을 보장하며, 클라우드 간의 안전한 데이터 전송이 이루어진다.

2.7.7 사물인터넷(IoT) 보안

사물인터넷 기기는 공개 키 암호화를 사용하여 통신의 보안을 강화한다. 스마트 홈 장치와 같은


IoT 기기는 데이터를 안전하게 전송하기 위해 공개 키를 사용하여 암호화하고, 개인 키를 통해 이를
해독할 수 있다. 이를 통해 외부에서의 해킹 시도를 방지하고 개인 정보를 보호한다.

이외에도 다양한 공개 키 알고리즘이 온라인 문서 공유 및 협업 플랫폼, 소셜 미디어 및 메신저 앱


보안, 전자 상거래 결제 보안 등 다양한 분야에서 널리 활용되고 있다.

3 결론

융합탐구를 통해 공개 키 암호화 기술의 중요성과 다양한 알고리즘들에 대해 탐구해 보았다. 공개


키 암호화 기술이 현대 정보 보호에서 중요한 역할을 한다는 점을 느꼈다. RSA를 포함한 다양한
알고리즘들은 각기 다른 방식으로 정보의 안전한 전송과 보호를 가능하게 한다. RSA의 경우, 소수
분해 문제를 기반으로 안전성을 보장하며, 디피-헬만 키 교환은 키 배포의 어려움을 해결하는 데
중요한 역할을 한다. 또한, 디지털 서명 알고리즘과 엘가말 암호화는 데이터의 무결성을 보장하고,
ECC는 작은 키 사이즈로도 높은 보안 수준을 제공하는 등 각 알고리즘은 특정 환경과 요구 사항에
맞게 선택되어야 함을 알게 되었다. 각 알고리즘의 장단점을 분석함으로써, 데이터 보호와 안전한
통신을 위한 적절한 기술 적용이 가능할 것으로 기대된다.

You might also like