티스토리 뷰

[정보보안기사] 암호학


대칭키 암호를 사용하려고 하면 키 배송 문제가 발생한다.

키를 보내지 않으면 수신자는 암호문은 복호화 할 수 없고 키를 보내면 도청자가 복호화 할 수 있다. 즉, 키를 보내지 않으면 안 되는데 키를 보내서도 안되는 사항이 대칭키 암호의 키 배송 문제이다.


키 배송문제 해결



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

키배포 센터(KDC)는 키 관리기관(TA)과 같다고 봐도 무방하며 신뢰 받는 제3자에 의뢰해서 개인 키배포 센터 사이에서만 키를 사전에 공유하는 것이다.



  • Diffie-Hellman 키 교환에 의한 해결

휘트필드 디피와 마틴 헬먼이 발명한 알고리즘으로 디피-헬먼 프로토콜 방법에서는 양쪽 통신주체가 KDC없이 대칭 세션키를 생성한다.

공개키 암호방식의 개념을 이용하여 두 사용자 간에 공통의 암호화키를 안전하게 공유할 수 있는 방법을 제시하였고 최초의 비밀키 교환 프로토콜이다.


K=(gx modp)y modp = (gy modp)x modp = gxy modp


한번 읽어 보면 이해가 더 쉬울 것이다.

https://ko.wikipedia.org/wiki/%EB%94%94%ED%94%BC-%ED%97%AC%EB%A8%BC_%ED%82%A4_%EA%B5%90%ED%99%98

디피-헬먼 키 교환은 이산대수 공격중간자 공격약점을 보인다.

키 교환 프로토콜은 중간자 공격에 취약한데 그 이유는 인증단계가 없기 때문이다.

이러한 공격을 막기 위해서는 전자서명공개키 인증서 등을 이용하면 된다. 

국-대-국 프로토콜(STS)은 공개키 인증서를 이용한 전자서명을 사용하여 중간자 공격을 막는다.


  • 공개키 암호에 의한 해결

대칭키 암호에서 암호키와 복호화키는 같은 것이지만, 공개키 암호에서는 암호화키와 복호화키는 다른 것이다.

송신자는 암호화키를 사용하여 암호화하고, 수신자는 복호화키를 사용하여 암호문을 복호화한다.


  • 공개키 암

송신자와 수신자는 대응(동일한 것이 아닌)되는 키의 쌍을 각각 가져야 한다. 즉, 암호화키와 복호화키는 같은 사람의 키쌍이어야한다.

키는 암.복호화 중 한 번만 사용해야 한다. 또한 두개의 키 중에서 하나는 비밀로 유지되어야 한다.

타인의 개인키는 사용할 수 없다.


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


 항목

대칭키 

개키 

 키의 상호관계

암호화키 = 복호화키 

암호화키 ≠ 복호화키 

 안전한 키길이

128비트 이상 

2048비트 이상 

 암호화키

비밀 

공개 

 복호화키

비밀 

비밀 

 비밀키 전송

필요 

불필요 

 키 개수

N(N-1)/2 

2N 

 암호화 속도

고속 

저속 

 경제성

높다 

낮다 

 제공 서비스

기밀성 

기밀성, 부인방지, 인증 

 목적

데이터(파일) 암호화 

대칭키 교환 

 전자서명

복잡 

간단 

 단점

키 교환 원리가 없다.

중간자 공격에 취약하다. 

 해당 알고리즘

DES, 3DES, AES, IDEA 

RSA, ECC, DSA 



RSA에 대한 공격


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

공격의 목표는 RSA 알고리즘이며, 공개키와 개인키를 생성하기 위한 알고리즘에 사용되는 숫자들의 인수분해를 풀어냄으로써 키를 찾는 시도를 한다.

공격을 막으려면 키의 길이가 긴 걸 사용해야 하는데 그래서 개인키의 비트 수가 크면 클수록 안전하다. 하지만 암호화/복호화에서의 계산량을 고려해야하기 때문에 복잡한 문제이다.

또한 키 길이가 길어지면 시스템 처리 속도가 느려진다.

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


타이밍 공격(시간 공격)

복호화 알고리즘의 실행 시간에 따라 달라지며, 다양한 방법을 통해 소요되는 시간이 드러나지 않게 막아 키 길이를 추측하는 공격을 막을 수 있다. 예를 들면, 랜덤 지체라는 방법을 이용하여 타이밍 공격을 막는다.


선택 암호문 공격(CCA)과 OAEP

임의의 데이터를 송신하면 그것을 암호문으로 간주하고 회신해 주는 서비스를 공격자가 이용할 수 있다는 것을 가정한 공격이다. 이 서비스를 복호 오라클이라 한다.

공격자는 자신이 만든 위조 암호문을 서버에 여러 차례 보내고, 서버가 회신해 주는 오류 메시지나 타이밍을 해석해서 키나 평문 정보를 조금이라도 얻으려고 하는 것이다.

공격을 막기 위해서는 최적 비대칭 암호화 패딩(OAEP)이라고 하는 프로시저를 사용해 평문을 수정할 것을 권장하고 있다.


비대칭 구조 기반의 암호 알고리즘 종류


  • RSA 방식
비대칭 구조 기반의 암호 알고리즘에서 사실상 표준이며 소인수 분해 문제에 기반해 개발 되었다. 

기밀성뿐 아니라 무결성.인증.부인 방지까지 확장해 사용이 가능하다.

키의 길이는 가변적이며, 1024 또는 2018 비트 이상 권장한다.


  • 로빈 방식

소인수 분해 문제에 기반해 구현하였다.


  • 엘가말 방식
이산 대수 문제에 기반해 구현하였다.

  • 타원 곡선 암호(ECC) 방식
이산 대수 문제에 기반해 구현하였으며, RSA 방식보다 짧은 열쇠를 이용해 높은 보안성을 구현하였다.
전자 상거래 환경 등에 적합하다.


하이브리드 암호 시스템


  • SSH VPN 경우

원격 접속에 필요한 인증 정보는 RSA 방식과 같은 비대칭 구조로 암호화하고 실제 정보는 AES 방식과 같은 대칭 구조로 암호화한다.


  • SSH/TLS VPN 경우

열쇠 분배 센터(KDC)의 개념으로 임시 비밀 열쇠를 공개 열쇠로 암호화해 전송하는 전자 봉투 기법을 사용한다.

댓글
공지사항
«   2018/05   »
    1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31    
Total
115,570
Today
4