Today Yewon Learned

[암호화] 메세지 인증 코드(MAC) vs. 전자서명(Digital Signature) 본문

보안

[암호화] 메세지 인증 코드(MAC) vs. 전자서명(Digital Signature)

데브워니 2025. 6. 13. 10:22

무결성(Integrity)이란?

데이터가 변경되지 않았음을보장하는 성질. 즉, 데이터를 저장하거나 전송하는 동안 안조작, 손상, 변조되지 않았는지 확인하는 것

 

1. 같은 입력 → 항상 같은 해시 값

2. 입력이 조금이라도 다르면 → 완전 다른 해시 값

3. 해시 값만 보고 원본 데이터를 추측할 수 없음 (역산 불가)

4. 충돌 매우 어려움 (다른 입력이 같은 해시 값을 가지기 어려움) 

 

해시 함수가 무결성에 쓰이는 방식

■ 단순 무결성 검사

- 데이터를 전송하거나 저장할 때, 해시 값도 보냄

- 나중에 수신자나사용자 측에서 동일한 방식으로 해시를 다시 계산해서 비교

- 일치하면 → 데이터가 변조되지 않음

- 다르면 → 중간에 변경됨 (무결성 위반)

 

■ 메시지 인증코드 (Message Authentication Code, MAC)

 

■ 메시지 인증 코드를 이용한 인증 순서

► 해시함수

1️⃣ 데이터 무결성 보장

2️⃣ 발신지에 대한 신원 확인 불가능

문제 해결 방안 ➡️ 인증 절차를 추가한 것이 메시지 인증 코드이다. (무결성인증 제공)

 

 

① 송신자 앨리스와 수신자 밥은 사전에 키를 공유해 둔다. (Secret  Key)

② 송신자 앨리스는 송금 의뢰 메시지를 기초로 해서 MAC 값을 계산한다(공유 키를 사용).

③ 송신자 앨리스는 수신자 밥에게 송금 의뢰 메시지와 MAC 값을 보낸다.

④ 수신자 밥은 수신한 송금 의뢰 메시지를 기초로 해서 MAC 값을 계산한다(공유 키를 사용).

⑤ 수신자 밥은 앨리스로부터 수신한 MAC 값과 계산으로 얻어진 MAC 값을 비교한다.

⑥ 수신자 밥은 2개의 MAC 값이 동일하면 송금 의뢰가 틀림없이 앨리스로부터 온 것이라고 판단한다(인증 성공). / 동일하지 않다면 앨리스로부터 온 것이 아니라고 판단한다.(인증 실패)

 

전자서명

► MAC(Message Authentication Code)

1️⃣ 메시지 인증 가능

2️⃣ 부인방지가 불가능 (단점)

문제 해결 방안 ➡️ 메시지 인증 보장 + 부인 방지(non-repudiation) → 디지털 서명 이용

 

 

메세지 인증 코드 (MAC) vs. 전자서명

정의 MAC - 비밀키를 사용해 생성한 메시지의 무결성 코드 전자서명 - 개인키로 메시지를 암호화한 서명
사용 목적 메시지가 중간에 변경되지 않았음을 확인하고,
메시지를 보낸 사람이 동일 키를 공유하고 있는지를 확인
메시지의 무결성과 발신자의 신원을 검증 (부인 방지 포함)
키 사용 대칭키 (하나의 키를 공유) 비대칭키 (개인키/공개키 쌍)
누가 생성? 송신자와 수신자가 동일한 키를 알고 있음
→ 수신자도 MAC 생성 가능
개인키를 가진 송신자만 생성 가능
검증 방식 수신자가 같은 키로 MAC을 재계산하여 비교 수신자가 송신자의 공개키로 서명을 검증
부인 방지 불가능 → 수신자도 MAC을 생성할 수 있음 가능 → 오직 개인키 소유자만 서명 가능
속도 및 성능 상대적으로 빠름 암호화 연산이 포함되어 느릴 수 있음
일반 사용 사례 내부 시스템 간 메시지 무결성 확인, 인증 토큰(HMAC 등) 전자문서 서명, 공인인증서, 법적 효력 요구 상황 등

 

 

참고.

https://m.blog.naver.com/wnrjsxo/221719726759

https://1stepby1step.tistory.com/165

https://ddongwon.tistory.com/57

Comments