본문으로 바로가기

정보보안기사 암호·해시·MAC·전자서명 차이: 키와 보안 목적 비교

대칭키·공개키 암호화, 해시, MAC, 전자서명을 기밀성·무결성·출처 인증과 사용하는 키로 구분합니다.

암호화는 내용을 숨기고 복호화로 원문을 되찾는 데, 해시는 메시지의 요약값을 구하는 데 사용합니다. MAC은 공유 비밀키로 무결성과 출처를 확인하고, 전자서명은 서명자의 개인키로 서명해 대응하는 공개키로 검증해요. 같은 메시지에 함께 적용할 수 있지만, 해시나 서명만으로 내용이 비밀이 되는 것은 아니에요.

무엇을 보호하는지 먼저 물어요

개념핵심 질문사용하는 키기본적으로 기대하는 역할
대칭키 암호화같은 비밀키를 아는 상대만 내용을 읽을 수 있나?암호화·복호화에 같은 비밀키기밀성
공개키 암호화수신자만 내용을 읽을 수 있게 보낼 수 있나?수신자의 공개키로 암호화, 개인키로 복호화기밀성
암호학적 해시입력 메시지에 대응하는 요약값은 무엇인가?일반적인 비키 해시는 비밀키 없음신뢰할 수 있는 기준값과 비교할 때 변경 확인에 활용
MAC공유 비밀키를 아는 쪽이 만든 메시지이며 변조되지 않았나?생성·검증 당사자가 공유하는 비밀키무결성·데이터 출처 인증
전자서명이 공개키에 대응하는 개인키로 서명했으며 메시지가 유지됐나?서명자의 개인키로 서명, 공개키로 검증무결성·출처 인증·부인방지 지원

이 표의 암호화는 기본 목적을 구분한 것이에요. 암호화했다는 사실만으로 변조도 검출된다고 가정하지 마세요. 기밀성과 무결성·인증을 함께 제공하는 인증 암호화 방식도 있지만, 암호화와 인증이라는 기능은 구별해서 읽어야 해요.

공개키 암호 기술은 암호화 외에도 서명이나 키 설정에 사용돼요. 공개키가 등장한다고 모두 ‘공개키로 암호화하는 작업’은 아니며, 어떤 알고리즘과 기능인지 확인해야 해요.

해시는 ‘복호화하지 않는 암호문’이 아니에요

이 글에서 해시는 SHA-256 같은 암호학적 해시 함수를 뜻해요. SHA-256은 입력 길이와 관계없이 256비트 요약값을 만들어요. 출력이 256비트라는 것과 입력을 모두 담아 복원할 수 있다는 것은 다른 말이에요.

암호학적 해시는 주어진 요약값에 맞는 입력을 찾거나, 서로 다른 두 입력이 같은 요약값을 만들도록 찾는 일을 계산상 어렵게 설계해요. ‘서로 다른 입력의 해시는 절대로 같지 않다’는 뜻은 아니에요. 입력의 범위보다 출력의 범위가 작으므로 충돌 자체와 충돌을 찾아내는 어려움을 구분해야 해요.

파일과 그 해시값을 같은 공격자가 함께 바꿀 수 있다면, 파일을 바꾼 뒤 해시도 새로 계산할 수 있어요. 해시 일치만으로 파일의 작성자나 안전성을 증명할 수는 없어요. 비교할 기준값을 신뢰할 수 있게 받았는지가 중요해요.

MAC과 전자서명은 누가 검증하는지가 달라요

MAC은 메시지와 공유 비밀키로 인증 태그를 만들어요. HMAC은 해시 함수를 사용하는 MAC의 한 방식이에요. 비밀키가 없는 일반 해시와 HMAC을 같은 것으로 취급하지 않아요.

t=MAC⁡(K,M)t=\operatorname{MAC}(K,M)

수신자는 같은 키 KK와 받은 메시지 MM으로 태그를 검증해요. 하지만 송신자와 수신자 모두 키를 알고 태그를 만들 수 있으므로, MAC만으로 제3자에게 특정 한 사람의 서명을 입증하는 부인방지를 제공하지는 않아요.

전자서명은 서명자 A의 개인키 skAsk_A로 서명을 만들고, 그에 대응하는 공개키 pkApk_A로 검증해요.

σ=Sign⁡(skA,M)\sigma=\operatorname{Sign}(sk_A,M) Verify⁡(pkA,M,σ)∈{유효,무효}\operatorname{Verify}(pk_A,M,\sigma)\in\{\text{유효},\text{무효}\}

검증에 공개키를 사용하므로 검증자가 서명자의 개인키를 공유할 필요가 없어요. 다만 공개키가 정말 A의 것인지 확인하는 인증서·신뢰 경로와 개인키 관리도 필요해요. 서명 알고리즘이 맞다는 사실만으로 사람의 신원과 모든 법적 효과가 자동 확정되는 것은 아니에요.

적용 예제: 10,000원 요청이 90,000원으로 바뀌었다면

아래는 새로 만든 학습용 적용 예제이며 실제 기출문제나 실제 서비스의 구현 사례가 아닙니다. A가 B에게 ‘수취인 C, 금액 10,000원’이라는 메시지를 보내고, 공격자가 금액을 90,000원으로 바꾸려 한다고 할게요.

전송 방식공격자가 메시지를 바꿨을 때 확인할 점
메시지와 일반 해시를 함께 보냄공격자가 둘 다 바꿀 수 있다면 수정된 메시지의 해시도 다시 만들 수 있어요. 신뢰할 기준이 필요해요.
메시지와 MAC을 함께 보냄공유 비밀키를 모르는 공격자는 수정된 메시지에 맞는 유효 태그를 만들기 어려워요. 메시지는 별도 암호화가 없다면 읽을 수 있어요.
메시지와 A의 전자서명을 함께 보냄금액을 바꾸면 원래 서명은 수정된 메시지의 검증을 통과하지 못해요. A의 공개키를 신뢰할 수 있어야 해요.
메시지를 암호화해서 보냄기밀성을 제공하지만, 사용한 방식의 인증·무결성 기능까지 확인해야 변조 검출을 판단할 수 있어요.

이 예제는 안전한 알고리즘을 올바르게 사용하고 필요한 키가 유출되지 않았다는 조건이에요. 금액이 바뀌지 않은 원래 메시지를 그대로 재전송하는 공격도 별도로 생각해 보세요. 서명이 유효하다는 것만으로 재전송이 차단되지는 않아요. 거래 식별자·순번·유효기간 등을 메시지에 넣고 수신 측이 중복 여부를 확인하는 절차가 필요해요.

보기에서 자주 뒤바뀌는 설명

  • ‘해시값을 복호화하면 원문이 나온다’: 해시는 원문 복원을 위한 암호화 방식이 아니에요.
  • ‘전자서명은 메시지 내용을 숨긴다’: 전자서명 자체는 기밀성을 제공하지 않아요. 공개된 문서에도 서명할 수 있어요.
  • ‘서명은 항상 개인키로 해시를 암호화하는 것이다’: 알고리즘별 서명 절차가 달라요. 일반적인 정의는 개인키로 서명하고 공개키로 검증한다는 것이에요.
  • ‘MAC은 누구나 공개키로 검증한다’: MAC은 공유 비밀키를 사용해요. 전자서명과 검증 조건이 달라요.
  • ‘같은 키를 쓰니 MAC도 원문을 숨긴다’: 키가 있다는 사실과 기밀성을 제공하는지는 별개예요. MAC 태그는 암호문이 아니에요.

문항에서는 ‘숨김’, ‘변경 확인’, ‘출처 확인’, ‘제3자 검증’ 중 무엇을 요구하는지 먼저 표시하세요. 그런 다음 키가 없는지, 공유 비밀키인지, 공개키·개인키 쌍인지 나누면 선택 이유를 설명할 수 있어요.

다음 학습과 근거

기사GG 정보보안기사 수록 기출에서 암호 기술의 목적과 키 사용 주체를 묻는 문항으로 이어가 보세요. 이 글은 특정 회차·문항 원문을 인용하지 않아 아래 버튼은 종목의 회차 선택 페이지로 연결돼요.

해시·대칭키 알고리즘·공개키 암호 기술·MAC·전자서명의 정의는 NIST CSRC 용어집 원문을 2026년 10월 31일에 확인했어요. NIST의 전자서명 정의도 올바른 구현과 신뢰 체계·정책을 전제로 무결성·출처 인증·부인방지를 설명해요.

출처와 공식 확인 자료

이어서 읽기