Security

메시지 인증 코드(MAC)

oxdjww 2023. 10. 3. 18:07
728x90
반응형

메시지 인증 코드(MAC)

(Review) Modification Detection Code

MDC

Message의 무결성을 확인할 수 있는 방법론이다.

How?


Alice가 secure channel을 구축하고 있다는 가정하에

원본은 unsecure channel로 전송

MDC는 secure channel로 전송

Bob이 MDC값 두 개를 비교하여 무결성 체크

MDC의 한계

MDC는 non-practical하다.

  • secure channel을 구현하는 것은 상대적으로 어려움

  • 매번 secure channel을 구현해야하는 overhead 발생


Message Authentication Code (MAC)

MAC? (e.g., Hash with key $H(K,M)$)

  • 송/수신자가 공유한 key를 이용하여 message authentication 수행

  • secure channel 구축 필요 없음

  • 대표적인 MAC은 암호학적 해쉬 함수에 인증 key를 사용하는 구조

    • 대칭키 기반 방법론(알고리즘)

Authorized Key

$$
MAC_{k}(M) = Authorized\ Tag
$$

Hash 함수를 SHA256을 쓴다면 Tag는 32byte


메시지 전송

$$
Enc_{key}(M)\ || +MAC_{key}(M)
$$

Authorized tag와 encrypted message가 전송됨


특징

  • MAC 충돌쌍을 찾기 어려워야 함 (hash기반이니까)

  • 충돌 저항성

  • Given M and MAC = $H(K,M)$, hard to find the $M'$ s.t $H(K,M'\ ) = H(K,M)$

  • 제 2 역상저항성

  • MAC 함수의 결과는 균등분포


구조

암호화 과정을 이용한 CMAC

암호학적 해쉬 함수를 이용한 HMAC


Practical key state structure

Enc key 보유하고 있는 구조


Alice Bob
Enc_key_A(암호화용) Enc_key_A(복호화용)
Enc_key_B(복호화용) Enc_key_B(암호화용)

Tag key 보유하고 있는 구조

Alice Bob
MAC_A(Auth Tag Generate) MAC_A(Auth Tag Check)
MAC_B(Auth Tag check) MAC_B(Auth Tag Generate)

AES, RSA Use Case

Alice <-> BoB

Bob이 유튜브 서버라 가정하자.

공개키 암호로 암호화해서 보내면 너무 느리다.


Solution


  • 컨텐츠는 aes 암호화

  • Bob은 Alice의 공개키로 복호화 대칭key를 256bit 짜리 aes(sha 256) key 를 암호화하고

  • Alice는 개인키로 그걸 받아서 복호화하여 대칭키를 알아내서 컨텐츠를 복호화해서 볼 수 있음

$Enc_{pub_alice}(contents)$ → $AES_{key}(Contents)$


실습: Message Authentication Code


감사합니다.


Ref

보안프로그래밍(2023), 숭실대학교 소프트웨어학부 조효진 교수님

Beginning Cryptography with Java/David Hook/Wrox press/2005

728x90
반응형

'Security' 카테고리의 다른 글

공개키 암호 시스템(1)  (0) 2023.10.09
대칭키 암호 시스템의 운영모드  (0) 2023.10.03
대칭키 암호 시스템, DES와 AES  (0) 2023.10.02
대칭키 암호 시스템  (0) 2023.10.02
메시지 변조 감지 코드(MDC)  (0) 2023.09.29