본문 바로가기

기타/공부하기

[정보보안기사] SECTION 04 비대칭키 암호

SECTION 04 비대칭키 암호

1. 대칭키 암호의 키교환 문제 및 해결 방법

대칭키의 키 배송 문제

대칭키는 송/수신자가 서로 동일한 키를 공유하고 있어야 한다는 전제

이 키를 인터넷 상에서 그냥 보내면, 공격자도 이 키를 볼 수 있기 때문에 메시지를 암호화 하는 의미가 없고, 키를 보내지 않으면 수신자도 메시지를 복호화 할 수 없다

키의 사전 공유에 의한 해결

키 관리기관(TA, Trusted Authority)이 사전에 임의의 두 사용자(A, B)에게 비밀 경로를 통해 임의의 키 K(A,B) = K(B, A)를 선택하여 전달하는 방법

사전에 TA와 모든 사용자 사이에 안전한 통로가 필요하며, TA가 모든 사용 사용자의 키를 관리 해야 하는 문제점 발생

사용자 N은 각 사용자 N-1가지의 키를 관리

TA는 n(n-1)/2 가지 키를 관리(4명의 사용자가 있다면 6개 관리)

키 배포 센터에 의한 해결(온라인 키 분배)

키 배포센터(KDC, Key Distribution Center)라는 신뢰받는 제 3자에 의뢰해서 개인과 키 배포센터 사이에만 키를 사전에 공유

A와 B간에 통신을 할 때 KDC가 세션키 K를 생성하여 A와 B에게 비밀경로로 알려줌

Diffie-Hellman 키 교환 방식

1976년 공개키 암호방식으로 최초로 제안한 휘트필드 디피와 마틴 헬먼이 발명한 알고리즘

양쪽의 통신주체가 신뢰할 수 있는 제 3자(KDC) 없이 대칭 세션키를 교환하는 방식

절차

-사용자 A와 B가 두 개의 수 p와 g를 선택(p는 매우 큰 소수, 1025bit)

-A와 B는 각각 0보다 크거나 같고, p보다 작은 x(A), y(B)를 각각 선택한다.

-A와 B는 각각 자신이 선택한 x, y를 이용하여 R = g^(x or y) mod p를 계산한다.

-A와 B는 각각 자신의 결과 값 R 를 전송하고, R를 이용하여 Key를 계산한다.

-K= R(상대방이 준 값)^(x or y) mod p

그림

안전성

-이산대수 공격과 중간자 공격에 취약함

-단, 이산대수 문제는 풀기 어렵다는 데 기반을 함.

-중간자 공격 : 중간에 인증 단계가 없기 때문에 A입장에서 B와 키교환을 했는지 B로 위장한 공격자와 키교환을 했는지 알 수 없음.

공개키 암호에 의한 해결

-아래에 자세히….

2. 공개키 암호

개념

1976년 휘트필드 디피와 마틴 헬만이 공개키 암호의 아이디어를 발표.

구체적인 알고리즘이 제시되지는 않았으나, 암/복호화 키를 나누는 것과 공개키가 어떤 특성을 갖는지 제시

암호화 키와 복호화 키가 서로 다른 값을 가지만, 수학적으로 밀접하게 관계 되어 있음

암호화 키는 누구나 볼 수 있도록 공개하고, 복호화 키는 나만 알 수 있도록 감춤

공개된 암호화 키로 누구든 암호화 할 수 있지만, 암호화된 메시지를 복호화 할 수 있는 사람은 복호화 키를 가지고 있는 사용자 뿐임

항목 대칭키 공개기
키의 관계 암호화키 = 복호화키 암호화키와 복호화키는 서로 다르다
안전한 키 길이 256비트 이상 2048비트 이상
암호화키 비밀 공개
복호화키 비밀 비밀
비밀키 전송 필요
키 교환하는 것이 어려우며, 위험함
불필요
공개키를 교환하는 것은 매우 쉬움
키 개수 n(n-1)/2 2n
암호화 속도 고속 저속
암호화 할 수 있는 평문의 길이 제한 제한 없음 제한 있음
경제성 높다 낮다
제공 서비스 기밀성 기밀성, 부인방지, 인증, 무결성
목적 데이터 암호화 대칭키 교환
전자서명 복잡 간단
단점 키 교환 원리가 없다 중간자 공격에 취약
알고리즘 DES , 3DES , AES , IDEA RSA , ECC , DSA

3. RSA 암호 시스템

개념

공개키 알고리즘 중 하나로, 사실상 표준

인수분해 문제 해결의 높은 난이도를 이용한 공개키 암호 알고리즘으로 암호화 뿐 아니라 전자서명 용도로도 사용

SSL, PGP 등 많은 곳에서 RSA를 사용

>

암/복호화 연산

메시지를 받는 Bob이 두 개의 지수 e와 d 를 생성 한 후, e를 공개하고 d는 비밀로 가지고 있음.

Alice는 공개값 e, n을 이용하여 평문(p)에서 암호문(C)를 생성. C = P^e mod n

C를 받은 Bob은 공개하지 d로 복호화하여 평문(P)를 얻음 P = C^d mod n

키(n) 생성

P와 q는 512bit 이상의 소수임. N 역시 1024 bit 이상의 소수

공개키 e는 1보다 크고 ΦN=(p-1)(q-1)보다 작은 수 중에 선택. 이때 e는 ΦNd와 서로소(최대공약수가 1인 관계)인 수 이어야 함

비밀키 d는 e의 역원을 계산한다.

RSA에 대한 공격

수학적 공격(소인수분해 공격)

-개인키 d의 비트 수가 크면 클수록 안전함

-단, 키 길이가 길어지면 시스템 처리 속도가 느려짐

타이밍 공격(시간 공격)

-복호화 알고리즘의 실행시간에 따라 키 길이를 추축하는 공격

-선택 암호문 공격(CCA, Chosen Ciphertext Attack)

RSA 권장사항

n의 비트수는 최소 1024비트여야 한다.

두 소수 p와 q는 최소 512비트여야 하고, 두 소수는 같지 않고, 거의 같은 크기의 소수이어야 한다.

(p-1)과 (q-1)은 커다란 소인수를 가져야 하고, 두개의 최대 공약수는 작은 수이어야 한다.

개인키 d가 알려지면 다른키 e와 알려진 d, 모듈러 값 n까지 모두 바꾸어야 한다.

메시지는 OAEP로 패딩되어야 한다.

4. 그 밖에 공개키 암호화

Rabin 암호시스템

합성수 모듈러에 관하여 제곱근을 찾기 어렵다는 사실로부터 안전성을 얻는 방식

암호화는 오직 한 번의 곱셈으로 이루어져 매우 빠름

P와 q가 충분히 크다면 안전.

ElGamal 방식

이산대수 문제에 근거해서 만든 시스템

오픈소스를 기초하여 키 분배하는 Diffie-Hellman 알고리즘의 확장이다.

특징 : 암호문의 길이가 평문의 2배

단점 : 많은 메모리 공간이 필요하고, 가장 느리다.

타운곡선(ECC, Elliptic Curve Cryptosystem)

RSA, ElGamal에서 보안을 위해 키 길이가 배우 커야 한다는 단점을 해결하기 위해서 제안됨

RSA와 동일한 수준의 보안성을 제공하면서 키 길이는 짧은 알고리즘 (160bit ECC는 1024Bit RSA와 동일한 수준의 보안)

타원 곡선군에서 이산대수 문제에 근거 함.

RSA에 비해 속도가 우수하고, 상대적으로 작은 키를 사용하여 무선 환경의 소형 Mobile 환경에 적합함

5. 하이브리드 암호시스템

개요

대칭키 암호와 공개키 암호의 장점을 살릴 수 있도록 조합한 방식

메시지를 고속의 대칭키로 암호화 하고, 암호화 할 때 사용한 대칭키의 기밀성을 지키지 위해서 이를 공개키로 암호화하여 전송함.