1. 비대칭키 암호

(1) 키 배송 문제 : 키를 보내지 않으면 복호화할 수 없고, 암호화하지 않은 키를 보내면 도청자도 복호화가능함. 

1) 해결 방법 

  • 키의 사전 공유에 의한 해결
  • 키배포 센터에 의한 해결 ( 온라인 키 분배)
  • 디피헬먼 키 교환에 의한 해결
  • 공개키 암호에 의한 해결

2) 키의 사전 공유에 의한 해결

  • 키 관리 기관(TA)가 사전에 두 사용자에게 비밀 경로를 통해 임의의 키 전달
  • 안전한 통로 필요함, 키 관리 어려움, 관리 비용 큼

3) 키 배포센터에 의한 해결

  • 암호 통신이 필요해질 때마다 키 배포센터(KDC)에서 개인 - KDC 사이에서만 공유
  • 개인간 공유 X
  • 순서 :
    1. 통신신청
    2. KDC에서 의사난수 생성기로  2개의 세션키(K) 생성 
    3. DB에서 사용자의 키(KA,KB) 추출 
    4. KDC) 사용자의 키를 이용해 세션키를 암호화 
    5. 송신자는 개인의 키(KA)를 이용해 세션키 복호화
    6. 송신자는 세션키를 이용해 데이터를 암호화하여 전송
    7. 수신자 역시 개인의 키(KB)를 이용해 세션키 복호화
    8. 데이터 읽음
    9. 세션키 삭제

4) 디피-헬먼 키 교환에 의한 해결

  • KDC 없이 대칭 세션키 생성
  • 키를 계산하여 만드는 것으로, 두 사용자는 두 개의 수 p와 g 선택
  • K = g의 x,y승 mod p
  • 안정성
    • 이산 대수 공격 :  문제 풀이 어려움 , xy를 알게 되면 풀림
    • DOS 공격 : 비밀키 생성에 지연 시간 존재. 제 3자에 의한 DOS는 키 생성 부담으로 서버 마비 -> 요청자를 확인하기 위한 쿠키 사용으로 해결
    • 중간자 공격 :  중간에 인증단계가 없음 -> 전자서명, 공개키 인증서로 해결

5) 공개키 암호에 의한 해결

  • 공개키 암호 =  암호화 키와 복호화 키가 다름.
  • 암호화키는 노출되어도 됨. 
  • 수신자가 별도의 복호화 키를 갖고 있음

 

(2) 공개키 암호

1) 개요

  • 암호화 키는 공개키로, 복호화 키는 비밀키로 (둘은 수학적 관계)

※공개키 원칙

  1. 암호화 키와 복호화 키는 같은 사람의 키 쌍
  2. 키는 암호호와 복호화 중 1번만 사용
  3. 타인의 개인키 사용 불가

2) 공개키 암호의 중간자 공격

  1. 송신자 :  수신자의 공개키 요청
  2. 도청
  3. 수신자의 공개키 전송
  4. 도청자가 수신자의 공개키 저장
  5. 도청자의 공개키를 송신자에게 전송
  6. 송신자는 도청자의 공개키로 데이터 암호화
  7. 수신자에게 암호문 전달
  8. 도청자는 자신의 공개키로 복호화 -> 데이터 획득! 공격 성공!
  9. 도청자는 수신자의 공개키로 위조문 암호화하여 전달
  10. 수신자는 자신의 개인키로 복호화하여 위조문 받게 됨.
  • 중간자 공격은 공개키 인증서로 본인 인증하여 해결

3) 대칭키 vs 비대칭키(공개키) 암호 시스템

  대칭키 비대칭키 (공개키)
장점 암호화 복호화 고속도
키 길이 짧음 (128 이상)
키 분배 용이
관리할 키의 개수가 상대적으로 적음
키 변화 빈도 적음
여러 분야에 응용 가능
단점 키 분배 어려움
관리할 키의 개수가 상대적으로 많음
키 변화 빈도 많음 
응용 분야 제한
암호화 복호화 저속도
키 길이 김 (2048 이상)
키 관계 암호화키 = 복호화 키 암호화 키 ≠ 복호화 키
비밀키 전송 필요 불필요
경제성
제공 서비스 기밀성 기밀성, 부인방지, 인증
목적 데이터 암호화 대칭키 교환
전자서명 복잡 간단
알고리즘 DES AES IDEA 3DES RSA ECC 

(3) RSA

1)개요 

  • 인수분해 문제 해결의 난이도를 이용한 대표적인 공개키 암호 알고리즘
  • 암호화 / 복호하 :  지수 e (암호화 때) , d (복호화 때) 이용
  • 키 생성
    • 서로 같지 않는 p와 q 소수를 구해내는 것에 달림.

2) RSA 알고리즘

3)RSA에 공격

  • 인수분해 공격 : 인수분해를 풀어내는 문제
    • 키 길이가 길어야 안전 = 개인키 d의 비트 수가 커야 안전
    • 단, 키 길이가 너무 늘어나면 처리 속도 문제 발생
  • 타이밍 공격 : 선택- 암호문 공격
    • 소요 시간을 드러내지 않도록 막아 키 길이 추측 공격 해결
    • 랜덤 지체
  • 선택 암호문 공격 
    • 오류 메시지나 타이밍을 해석해 키 혹은 평문 정보 유추
    • OAEP 로 해결

4) 최적 비대칭키 암호 패딩 (OAEP , Optimal Asymmetric Encryption Padding)

  • 평문 앞에 인증정보(평문 해시값 / 정해진 갯수의 '0') 추가하고 암호화
  • 복호화시 인증정보가 일치하지 않으면 오류 메시지 전송 (구체적인 오류 이유 안내 X) -> 선택 암호문 공격 해결
  • 난수 이용

 

(4) Rabin 암호시스템

1) 개요

  • RSA - 지수합동, Rabin - 2차 합동

2) 암호화와 복호화

  • 연산은 한번의 곱셈 - 속도 빠름
  • 성능이 낮은 플랫폼 :  스마트 카드 에 이용

3) Rabin의 보안

  • 충분히 큰 p와 q = 큰 n (p*q) 
  • n을 두 개의 소수의 곱으로 곤란한 소인수 분해를 이용한 보안

 

(5) EIGamal 방식

1) 개요

  • 이산대수 문제에 근거해서 만든 시스템  (디피헬먼의 키교환 알고리즘 확장판)
  • 디지털 서명, 암호화, 키 교환에 사용되는 공개키 알고리즘

2) 특징

  • 느린 속도, 많은 메모리 공간 요구
  • 평문이 암호문이 될 때 순서쌍으로 표현 -> 암호문 : 평문 길이의 2배
  • 소수 p의 크기 768비트 이상 권고

3) 응용

  • RSA가 쓰이는 곳 어디든
  • 짧은 메시지의 암호화 복호화 가능

 

(6) 타원 곡선 암호 (ECC)

1) 개요

  • 키 길이 256비트  <-> RSA 4096 비트
  • 일반적인 공개키 암호화 복호화 연산들을 빠르게 수행

2) 특징

  • 하드웨어 /  소프트 웨어 구현 용이
  • 메모리와 처리 능력이 제한된 응용 분야에 효과적 = 스마트 카드, 무선 통신 단말
  • 전자상거래 핵심 기술
  • 보안을 위해 서로 다른 타원 곡선 선택 및 변경 가능
  • 타원 곡선 이산대수 문제

 

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

1) 대칭키 암호와 공개키 암호 

  • 공개키 암호 단점 
    • 대칭키 암호에 비해 느린 속도 -> 대칭키 이용으로 해결
    • 중간자 공격에 취약함 -> 인증 기술로 해결
  • 대칭키 암호 단점
    • 키 배송 문제 -> 공개키 이용으로 해결

2) 하이브리드 암호 시스템

  • 암호화
    1. 대칭키로 메시지 암호화 (고속)
    2. 공개키로 메시지 암호화에서 사용한 대칭키를 공개키로 암호화 
  • 활용
    • 암호 소프트웨어 PGP
    • SSL / TLS
    • 전자서명 검증
    • 개인키 관리
    •  

 

 

 

 

 

+ Recent posts