본문 바로가기
Network Security

Message Authentication Code (MAC)

by Hangii 2024. 6. 11.

Message Authentication Code

쉽게 말해 데이터가 변조되었는지를 확인하기 위해 원본 msg에 덧붙이는 code이다. 그래서 cryptographic checksum이라고도 불린다. Digital Signature와 비슷한 원리로, sender는 보내려는 msg에 MAC을 concatenate 후 receiver에게 전달한다. Receiver는 msg에 동일한 연산을 적용한 후 얻은 결과값이 받은 MAC값과 동일하면, msg가 변조되지 않았으며 예상한 sender로부터 왔다는 것을 알 수 있다. 

 

MAC Properties

- Digital Signature와 다른 점은, 생성될 때 secret key를 사용한다는 점이다. msg와 secret key가 MAC 생성 함수 C의 input으로 주어진다. 따라서 sender-receiver 사이에 이 secret key를 사전에 주고 받는 절차가 필요하다. DH이나 RSA 등의 public key cryptography를 통해 키 교환을 할 수 있다.

MAC 작용 원리

- MAC은 fixed-length(e.g., 160 bits)를 가진다는 특징이 있다. 따라서 MAC 값을 통해 msg를 역추적하는 것은 실현가능하지 않다고 본다. 

- Digital Signature과 마찬가지로, 데이터 자체를 encrypt하는 것이 아니기 때문에, encryption을 하기 전이나 후에 MAC을 붙일 수 있다. 하지만 대체로 encryption 전에 MAC을 붙이는 경우가 선호된다고 한다.

- MAC은 Birthday Attack을 피하기 위해 충분히 길어야 한다. (e.g., 160 bits or 256 bits long)

- MAC은 many-to-one function이다. 즉, 여러 개의 msg가 하나의 MAC값을 가질 수 있다. 하지만 같은 MAC을 같은 msg 쌍을 찾는 것은 매우 어려워야 한다. 

 

Requirements for MACs

보안 공격에 대비하기 위해, MAC은 다음과 같은 특징을 가져야 한다:

1. 어떤 msg와 MAC이 주어졌을 때, 같은 MAC을 갖는 다른 msg를 찾는 것이 실현 불가능해야 한다.

2. should be uniformly distributed

3. should depend equally on all bits of the message

 

MAC vs. Encryption vs. Digital Signature

  MAC Encryption Digital Signature
confidentiality X O X
integrity O X O
non-repudiation X X O

 

'Network Security' 카테고리의 다른 글

The Onion Router (TOR)  (0) 2024.06.10

댓글