키 배송 문제

:대칭키 암호를 사용하려고 하면 키 배송 문제(key distribution problem)가 발생


키 배송 문제 해결 방법

-키의 사전 공유

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

-Diffie-Hellman 키 교환

-공개키 암호


키의 사전 공유

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

:n 명의 사용자 , n-1가지 키 관리

TA는  가지 키를 관리


키 분배 센터(KDC, Key Distribution Center)에 의한 해결

:암호 통신이 필요해질 때마다 키 분배 센터에 의해서 개인키 분배 센터사이에서만 키를 사전에 공유하는 방법

:n명의 사용자가 있다면 n개의 키가 필요


Diffie-Hellman 키 교환(Diffie-Hellman 키 합의)

:공개키 암호 알고리즘(최초의 비밀키 교환 프로토콜)

:KDC없이 대칭 세션키를 생성

:대칭키를 만들기 전에는 양쪽은 두 개의 수 p와 g를 선택(p는 소수, 300자리가 넘는 십진수(1024bit))

:키 교환이라는 이름이 붙어 있지만 실제로는 키를 교환하는 것이 아니라 공유할 키를 계산하여 만들어 내는 것

:이산대수 문제 사용( 에서 n을 구하는 문제)

:완전 순방향 비밀성 = 비밀키가 노출되더라도 그 후의 키 분배 과정에서 얻는 세션키의 안전성에는 영향을 미칠 수 없어야 한다는 성질


공격

-이산대수 공격

:이브(Eve)가 x,y값을 구할 수 있다면 대칭키를 계산 할 수 있게 된다.


-중간자 공격(Man In The Middle Attack)

:키 교환의 중간에 끼어들어 정상적인 전송이 되는 것처럼 보이게 하는 공격

:이런 공격에 취약한 이유는 인증단계가 없기 때문


국대국 프로토콜(STS,Station-To-Station protocol)

:공개키 인증서를 이용한 전자서명을 사용

:중간자 공격을 해결


공개키 암호

1. 수신자는 미리 암호화키(공개키)를 송신자에게 알려 준다. 이 암호화키는 도청자에게 알려져도 괜찮다.

2. 송신자는 암호화키로 세션키를 암호화하여 수신자에게 보낸다.

3. 수신자는 복호화키(개인키)로 암호문을 복호화한다.

:공개키와 개인키는 서로 밀접한 관계(수학적 관계)가 있기 때문에 각각 별개로 만들 수는 없다.

:전자문서의 무결성부인방지 기능을 갖고 있는 전자서명 구현, 다양한 암호 프로토콜에 사용 가능

:느린 암호화 속도


공개키 암호의 역사

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

:1978년 론 라이베스트 & 아디 샤미르 & 레너드 애들먼이 공개키 알고리즘과 RSA를 발표

:현재 공개키 암호의 표준은 RSA


RSA 암호시스템

:공개키 암호의 표준

:개발자 세 사람의 이름, Rivest-Shamir-Adleman

:인수분해 문제해결의 높은 난이도를 이용 

:암호화, 전자서명의 용도로 사용

:SSL 프로토콜을 가진 웹 브라우저, PGP 등 RSA 사용


키 생성

p,q 선택 , p,q는 소수 (p≠q) , (개인,선택)

N=p×q를 계산 , (공개,계산)

ø(N)=(p-1)(q-1)를 계산

정수 e를 선택, gcd(ø(N),e) = 1 , 1 < e < ø(N) , (공개,선택)

확장된 유클리드 호제법을 이용 d를 계산 de mod ø(N) = 1  , (개인,계산)

공개키 PU={e,N}

개인키 PR={d,N}


ex)

p=17, q=11

N=17×11=187

ø(N)=16×10=160

e=7 선택

d<160, de mod 160 = 1 , d=23 ∵23×7=160×1+1

PU = {7,187}

PR = {23,187}


암호화와 복호화

RSA에서는 두 개의 지수 e,d 사용(e:공개값, d:비밀값) , 공개 : e,n 비밀 : d,p,q

(암호화)

(복호화)


공격

-소인수분해 공격

:현실적인 시간 내에 소인수분해를 마칠 수 있는 효율적인 소인수분해 알고리즘이 개발되지 않는 한 RSA는 안전하다고 말할 수 있다.

:Factoring Attack

-중간자 공격

:기밀성에 대해 매우 유효한 공격

:송신자와 수신자 사이에 들어가서 송신자에 대해서는 수신자처럼, 수신자에 대해서는 송신자처럼 행세하는 공격이다.

:RSA뿐만 아니라 어떤 공개키 암호에서도 사용 가능

:중간자 공격을 막기 위해서는 공개키 인증서가 필요


권장사항

p,q (p≠q) 거의 같은 크기의 소수이어야 한다.

p-1,q-1은 커다란 소인수를 각각 가져야 한다.

p-1,q-1의 최대공약수는 작은 수이어야 한다.

메시지는 OAEP를 사용해서 패딩되어야 한다.


Rabin 암호시스템

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


암호화와복호화

:연산은 오직 한 번의 곱셈으로 이루어져 있고, 이 연산은 매우 빠르게 수행된다.

:성능이 낮은 플랫폼에서 잘 활용된다. ex)스마트카드

:복호화를 하면 동등한 확률로 4개의 평문 후보가 나타난다.


Rabin 시스템의 보안

:p,q가 충분히 크기만 하다면 안전

:시스템 복잡도는 큰 수 n을 두 개의 소수의 곱으로, 소인수분해하는 수준의 복잡도와 동일


EIGamal 암호시스템

:이산대수 문제에 근거해서 만든 공개키 암호시스템

:암호문의 길이는 평문의 약 2배

:많은 메모리 공간이 필요하며 전송 속도가 느림

:키 교환,인증,짧은 메시지의 암/복호화에 사용

:암호 소프트웨어 GnuPG에 구현


타원 곡선 암호시스템(ECC, Elliptic Curve Cryptosystem)

:이산대수의 문제에 근거해서 만든 공개키 암호시스템

:ECC는 전자상거래의 핵심 기술

:160bit ECC는 1024bit의 RSA키와 동일한 보안수준

:H/W와 S/W로 구현 용이

:스마트카드, 무선통신 단말기 등과 같이 메모리와 처리능력이 제한된 응용분야에 효율적

ECC와 RSA 방식의 비교

항목

ECC 방식

RSA 방식

기반구조

WPKI(무선)

PKI(유선)

속도

우수

느림

키 크기

상대적으로 작은 키

ECC에 비해 큰 키

적용

소형 모바일 환경

인프라가 다소 구현된 환경


대칭키 방식과 비대칭키 방식의 비교

항목

대칭키

비대칭키

키의 상호관계

암호화키=복호화키

암호화키≠복호화키

안전한 키길이

128bit 이상

2048bit 이상

암호화키

비밀

공개

복호화키

비밀

비밀

비밀키 전송

필요

불필요

키 개수

N(N-1)/2

2N

암호화 속도

빠름

느림

경제성

높다

낮다

제공 서비스

기밀성

기밀성,부인방지,인증

목적

데이터(파일) 암호화

대칭키 교환

전자서명

복잡

간단

단점

키 교환 원리가 없다

중간자 공격에 취약

해당 알고리즘

DES, 3DES, AES, IDEA

RSA, ECC ,DSA


하이브리드 암호시스템

:대칭키 암호로 속도를 높이고, 공개키 암호로 세션키를 보호

:의사난수 생성기, 대칭키 암호, 공개키 암호라는 3가지 암호기술 사용

:메시지대칭키 암호로 암호화, 암호화 한 세션키의사난수 생성기로 생성, 세션키공개키 암호로 암호화

:PGP, SSL/TLS에서 하이브리드 암호시스템 사용

:PGP에서는 하이브리드 암호시스템에 (전자서명+전자서명의 검증+개인키 관리)를 추가하여 사용 


+ Recent posts