Study Record

[암호] 메시지 인증 코드(MAC) 본문

암호

[암호] 메시지 인증 코드(MAC)

초코초코초코 2021. 12. 10. 12:51
728x90

1. 메시지 인증 코드(MAC) 개요

Alice 와 Bob의 통신 과정에서 메시지가 변조(무결성 침해)되어도 알 수 있는 방법이 없다. 따라서 메시지 인증 코드(MAC)는 메시지에 대한 인증을 위해 고안되었다.

 

1-1. 메시지 인증 코드

메시지 인증 코드(message authentication code), 무결성을 확인하고, 메세지에 대한 인증을 위한 코드이다.

입력값 : 메세지, 공유하는 키

출력값 : 고정 비트 길이의 코드

 

1-2. 메시지 인증 코드 과정

 

1-3. 메시지 인증 코드 VS 해시 함수

메시지 인증 코드는 메시지와 통신하는 두 사람의 공유 키를 사용하여 인증 코드를 만들지만 해시함수는 메시지만 사용하여 해시 출력값을 만든다.

 

1-4. 메시지 인증 코드에서 사용하는 공유 키 배송 문제 - 대칭키 암호 방식에서의 키 배송 문제와 같다.

  • 공개키 암호
  • Diffie-Hellman 키 교환
  • 키 배포 센터
  • 키를 안전한 방법으로 별도로 보내기

 

1-5. 메시지 인증 코드 실현 

  • 일방향 해시 함수를 이용한 실현 ( HMAC )
  • 스트림 암호, 공개키 암호
  • 블록 암호를 이용한 실현 - TDES 또는 AES와 같은 블록 암호를 사용해서 메시지 인증 코드를 실현

 

※ 메시지 인증 알고리즘

HMAC(Hash-based MAC)   : Hash + MAC

CMAC(Cipher-based MAC) : Cipher + MAC(Block Cipher, Public Cipher)

Poly1305 : Stream Cipher + MAC

 

1-6. 메시지 인증 코드 활용 예

  • 국제 은행간 통신 협회(SWIFT, Society for Woldwide Internet Financial Telecommunication)
  • IPSec
  • SSL/TLS

 

1-7. 메시지 인증 코드 공격

  • 재전송 공격
  • 키의 추측에 의한 공격

 

2. 인증 암호

2000년 이후 연구를 진행하여 대칭 암호와 메시지 인증 코드를 조합하여 기밀성, 무결성, 인증을 동시에 충족시키는 구조를 개발하였다.

 

※ S( ) -> MAC 함수 , E( ) -> 대칭 암호 함수

2-1. Encrypt-then-MAC

평문을 대칭 암호로 암호화한 후 암호문의 MAC 값을 계산한다.

선택 암호문 공격을 막을 수 있다.

() IPsec

 

2-2. Encrypt-and-MAC

평문을 대칭 암호로 암호화하고, 그와는 별도로 평문의 MAC값을 얻는다.

() SSH

 

2-3. MAC-then-Encrypt

미리 평문의 MAC 값을 얻고, 평문과 MAC 값 양쪽을 정리하여 대칭 암호로 암호화하는 방법

() SSL

 

3. 메시지 인증 코드(MAC)의 한계

3-1. 3자에 대한 증명이 불가능하다.

 앨리스로 부터 메시지를 받은 밥이 "이 메시지는 앨리스가 보낸 것이다."라는 것을 제삼자인 검증자 빅터에게 증명할 수 없다.

 

3-2. 부인 방지를 제공하지 못한다.

공유 키를 가지고 서로를 인증하기 때문에 제 3자가 보기에 둘중 누가 거짓을 말해도 확실히 알 수 있는 방법이 없다.

 

728x90