Header

  1. View current page

    tadoli님의 노트

Profile_img_60x60_01
3

Part 4. 메시지다이제스트

Chapter 13. 해쉬 : 키없는 Message Digest 알고리즘

메시지 다이제스트(MD) 알고리즘

  • 데이터 무결성을 보장할 수 있는 기본적 메커니즘
  • 원본 데이터에 대한 고정길이의 해쉬값을 생성하는 one-way hash function

    • 원본 데이터의 미세한 변조라도 감지
    • 해쉬값만으로 원본 데이터 알아낼 수 없다
    • 원본데이터를 압축
  • 공개키, 비밀키 시스템보다 계산시간이 적다.

 

메시지 다이제스트(MD) 알고리즘 종류

  • MD2

    • Ron Rivest가 고안
    • 128 비트 해쉬값 생성
    • MD5와 비슷한 구조지만 안전도가 떨어지고, 속도가 느림
  • MD5
    • Ron Rivest가 고안
    • 128 비트 해쉬값 생성
    • MD2보다 안전도, 속도 향상
  • SHA-1

    • NIST와 NSA에서 함께 고안
    • 160비트 해쉬값 생성
    • 특별히 알려진 공격 방법이 없고, 상당히 안전
  • RIPEMD128/160

    • Hans Dobbertin(독일의 암호학자)에 의해 고안
    • ISO/IEC 10118-3에 표준
    • MD4의 변형. 암호 분석 공격에 대한 저항성
    • 128은 128비트 해쉬값, 160은 160비트 해쉬값 생성
  • HAS160

    • 한국의 KISA에서 개발. TTA 표준
    • 160비트 해쉬값 생성
  • SMD

    •  한국의 ETRI에서 개발
    • 160비트 해쉬값 생성
  • HAVAL

    • 호주의 Yuliang Zheng이 고안
    • 가변길이의 해쉬값 생성
    • MD5의 수정된 형태
    • 3~5라운드의 가변적인 라운드 수
    • 해쉬값의 길이는 128, 160, 192, 224, 256 비트 등을 가질 수 있음

 

Hash 유무에 따른 서명 및 확인

signing.gif 

 

 메시지 다이제스트 만들어 전송

 

sendMD.gif 

 

서명없이 메시지 다이제스트만 전송

  1.  해커가 자신이 만든 뉴스레터와 그에 대한 MD를 생성

    1. withoutSign1.gif 

       

  2. 해커는 앨리스의 뉴스레터와 MD를 버리고 자신의 것을 붙여 보냄

    1. withoutSign2.gif 
  3. 밥은 위조된 뉴스레터에서 자신이 계산한 MD가 같기 때문에 해커의 소행을 알 수 없다.

    1. withoutSign3.gif 

 

MD 문장에 서명하기

Sign하지 않으면 해커에 의해 위조 가능하므로 Sign함.

 

withSign.gif 

 

  •  앨리스는 MD된 뉴스레터에 자신의 개인키로 서명하고, 밥은 앨리시의 공개키로 뉴스레터 복원

    • 메시지 무결성, 앨리스에 대한 인증 가능

 withSign2.gif

 

해커의 공격 차단

  • 앨리스 개인키로 암호화, 앨리스의 공개키로 복호화하면 원래의 MD가 나옴
  • 해커의 개인키로 암호화, 앨리스의 공개키로 복호화하면 원래의 MD가 안 나옴

 

메시지 다이제스트 정리

  1. 앨리스는 평문으로부터 MD 생성
  2. 앨리스는 MD 문장을 서명하고, 서명된 MD문장과 평문을 밥에게 보낸다.
  3. 밥은 따로 평문으로부터 MD 생성
  4. 밥은 앨리스의 공개키로 서명된 MD 문장을 복호화
  5. 밥은 자신이 만든 MD와 4번에서 복호화된 MD문장을 비교
  6. 5번의 결과가 참이면 앨리스의 것임을 알 수 있다.

 

Chapter 14. 메시지 다이제스트 알고리즘을 통한 확인

메시지 다이제스트 알고리즘의 두 가지 방법

KindsOfMD.gif 

  • 키 없는 메시지 다이제스트

    • MD 문장의 위조를 막기 위해 3가지 보안성(단방향성, 약한 충돌 방지, 강한 충돌 방지) 제공
    • 비밀키 없이 생성
    • MIC또는 MDC라 불림
    • 대부문의 공개키 전자서명에서 사용
    • 해쉬 알고리즘

      • 임의의 입력값을 고정 길이의 출력값(160bit)으로 변환
      • 입력값이 1비트만 바뀌어도 출력값 50%이상 바뀜

        • 무결성(Integrity) 검증에 쓰임
      • 종류: MD2, MD5, SHA-1, SHA, HAS160, RIPEMD128, RIPEMD160

        • 해쉬함수에서는 키가 필요없음
    • withoutKey.gif 
  • 키 있는 메시지 다이제스트

    • MAC(Message Authentication Code)

      • 메시지 인증 코드
      • 키를 가진 사람만이 메시지에 대한 인증 가능
      • 어떤 알고리즘을 써도 무방

        • 보편적으로 해쉬함수 사용(Hmac
      • 종류: HmacMD2, HmacMD5, HmacSHA-1, HmacSHA, HmacHAS160
    • 메시지와 비밀키 결합
    • 비밀키를 보내는 사람과 받는 사람이 공유되도록 요구
    • 어떤 비밀키 암호 알고리즘과 비밀키를 쓰느냐에 따라 보안성 결정

 

메시지 다이제스트 압축

  • 단방향성을 가짐
  • 암호학적 압축을 사용하면 원래 메시지로 복원 불가능

compressMD.gif 

 

  • 다이제스트 속도 비교

    • DES가 제일 빠르다

      • 그러나, 안전하지 않다.
    • Hashed MAC(HMAC)이 제일 느리다
  • HMAC

    • 1990년대 중반, 암호학자들은 속도 향상을 위해 MAC와 키없는 다이제스트 함수 결합
    • HMAC를 표준으로 인정
    • HMAC는 비밀키와 키 없는 해쉬 함수 사용
    • 설치가 용이, 키 없는 다양한 해쉬 함수를 사용할 수 있게 해준다.

 

Chapter 15. 비밀키, 공개키, MD 비교

암호화 속도

  • MD > 비밀키 >>>>>>> 공개키
  • Message Digest

    • 메시지 인증(무결성)만 제공, 기밀성 제공 않함
  • 비밀키 알고리즘

    • 실제 전송되는 메시지의 암호화
    • 자주 전송이 일어나므로 빠른 비밀키 알고리즘 사용
  • 공개키 알고리즘

    • 인증(전자서명)과 비밀키 교환

키 길이

  • 비밀키

    • DES - 56bit, AES-128bit
  • 공개키

    • RSA - 512 ~ 1024 bit
    • ECC 암호 알고리즘

      • 키 크기가 RSA보다 작다

        • RSA보다 빠르다
      • 셀룰러폰에서의 암호화에 이용된다.

키 분배

  • 비밀키 시스템 - 키 교환이 어렵다.
  • 공개키 시스템 - 키 분배가 비밀키보다 좋다.

 

공개키 시스템과 비밀키 시스템

속성 비밀키 공개/개인키
 사용기간  천년 정도  50년 정도
 주로 사용되는 이유  일반 데이터 암호화  키 교환, 전자 서명
 현재 표준  DES, 3중 DES, AES(Rijndael)  RSA, Diffie-Hellman, DSA
 암호화/복호화 표준  빠르다  느리다
 키

 적어도 두 사람 사이에서 교환

 (평소엔 두 사람 사이에서 쓰임)

 개인키: 한 사람에 의해서만 관리

 공개키: 어디서든지 배포 가능

 키 교환  교환하는 것은 어렵고, 위험

 개인키: 비밀로 간직

 공개키: 전달 용이

 키 길이  56비트, 128비트(권장)

 1024비트 사용(RSA), 어떤 경우에는 2048비트

(단, ECC는 172비트-휴대단말기에서 이용)

 기밀성, 인증, 메시지 무결성  가능 가능
 부인 방지  불가능(제 3자 필요) 가능(전자 서명 사용)
 공격  있음 있음

 

History

Last edited on 01/07/2009 10:18 by tadoli

Comments (0)

You must log in to leave a comment. Please sign in.