메시지 인증 코드(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
'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 |