메시지 인증 코드

Message authentication code

암호학에서 Message Authentication Code(MAC; 메시지 인증 코드)는 메시지 인증에 사용되는 짧은 정보입니다.즉, 메시지가 지정된 발신인(진정성)으로부터 송신되어 변경되지 않은 것을 확인합니다.MAC 값은 확인자(비밀 키도 소유)가 메시지 내용에 대한 변경을 감지할 수 있도록 함으로써 메시지의 데이터 무결성과 신뢰성을 보호합니다.

용어.

Message Integrity Code(MIC; 메시지 무결성 코드)라는 용어는 특히 미디어 액세스컨트롤 주소(MAC 주소)로서 사용하는 것과 구별하기 위해 MAC라는[1] 용어로 자주 사용됩니다.단, MIC를 사용하여 메시지 다이제스트를 참조하는 저자도[2] 있습니다.메시지 다이제스트는 단일 메시지를 고유하지만 불투명하게 식별하는 것을 목적으로 합니다.RFC 4949에서는 Message Integrity Code(MIC; 메시지 무결성 코드)라는 용어를 사용하지 않고 체크섬, 오류 검출 코드, 해시, 키 달린 해시, 메시지 인증 코드 또는 보호된 체크섬을 사용할 것을 권장합니다.

정의들

비공식적으로 메시지 인증 코드시스템은 다음 3가지 알고리즘으로 구성됩니다.

  • 키 생성 알고리즘은, 키 공간으로부터 키를 랜덤으로 균일하게 선택한다.
  • 서명 알고리즘은 키와 메시지가 지정된 태그를 효율적으로 반환합니다.
  • 검증 알고리즘은 키와 태그가 지정된 메시지의 신뢰성을 효율적으로 검증합니다.즉, 메시지와 태그가 변조 또는 위조되지 않은 경우 수락되고, 그렇지 않은 경우 거부된 상태로 반환됩니다.

시큐어 메시지 인증 코드는 기존의 메시지 또는 선택된 메시지의 조건을 포함하여 임의의 메시지, 선택 메시지 또는 모든 메시지에 대해 태그를 위조하려는 상대방의 시도를 거부해야 합니다.최악의 경우 상대방이 [3]문제의 메시지를 제외한 모든 메시지의 태그를 알고 있다고 가정하더라도 키를 인식하지 않고 주어진 메시지의 유효한 태그를 계산하는 것은 계산상 불가능해야 합니다.

형식적으로 메시지 인증 코드(MAC) 시스템은 다음을 충족하는 3개의 효율적인 알고리즘(G, S, V)입니다[4].

  • G(키 생성기)는 입력n 1의 키 k를 제공합니다.여기서 n은 보안 파라미터입니다.
  • S(서명)는 k와 입력 문자열 x에 태그 t를 출력한다.
  • k, 문자열 x 및 태그 t 입력에 대해 허용 또는 거부된 V(검증) 출력.

S 및 V는 다음을 충족해야 합니다.

Pr [ kG (1n) , V ( k , x , S ( k , x ) ) = accepted ]= 1.[5]

모든 효율적인 상대A에 대해 MAC는 용서할 수 없습니다.

Pr [ kGn(1), (x, t) ← AS(k, · )(1n), x query Query(AS(k, · ), 1n), V(k, x, t) = accepted] < negl(n),

여기S(k, · ) A는 A가 Oracle S(k, ·)에 액세스할 수 있음을 나타내고 Query(AS(k, · ), 1n)는 n을 알고 있는 A에 의해 이루어진 S에 대한 쿼리 집합을 나타냅니다.S에서 문자열 x를 직접 쿼리할 수 없습니다.그렇지 않으면 [6]유효한 태그를 쉽게 얻을 수 있기 때문입니다.

보안.

MAC 함수는 암호화 해시 함수와 비슷하지만 보안 요건은 다릅니다.안전한 것으로 간주하려면 MAC 함수는 selected-message 공격 하에서 존재 위조에 저항해야 합니다.즉, 공격자가 개인 키를 소유하고 있고 공격자가 선택한 메시지에 대해 MAC를 생성하는 오라클에 액세스할 수 있는 경우에도 공격자가 실행할 수 없는 양의 계산을 수행하지 않고는 다른 메시지(오라클 쿼리에 사용되지 않음)에 대해 MAC를 추측할 수 없습니다.

MAC 값은 동일한 개인 키를 사용하여 생성 및 검증되므로 MAC은 디지털 서명과 다릅니다.는 대칭 암호화와 마찬가지로 통신을 시작하기 전에 메시지의 송신자와 수신자가 동일한 키에 합의해야 함을 의미합니다.같은 이유로 MAC는 네트워크 전체의 공유 비밀키의 경우 시그니처에 의해 제공되는 거부 불능 속성을 제공하지 않습니다.MAC을 확인할 수 있는 사용자는 다른 메시지의 MAC도 생성할 수 있습니다.반면 디지털 서명은 공개 키 [4]암호인 키 쌍의 개인 키를 사용하여 생성됩니다.이 개인키는 보유자만 접근할 수 있기 때문에 디지털 서명은 해당 보유자가 문서에 서명했음을 증명합니다.따라서 디지털 서명은 거부하지 않습니다.단, 키 사용 정보를 MAC 키에 안전하게 바인드하는 시스템에서는 거부 방지 기능을 제공할 수 있습니다.같은 키를 2명이 소유하고 있지만 1명은 MAC 생성에 사용할 수 있는 키의 복사본을 가지고 있는 반면 다른 1명은 MAC 검증만 허용하는 하드웨어 보안 모듈에 키의 복사본을 가지고 있습니다.이것은 금융업계에서 [citation needed]흔히 행해진다.

실행

MAC 알고리즘은 암호화 해시 함수(HMAC의 경우)와 같은 다른 암호화 프리미티브 또는 블록 암호 알고리즘(OMAC, CCM, GCM PMAC)에서 구성할 수 있습니다.그러나 UMAC-VMAC 및 Poly1305-AES와 같은 가장 빠른 MAC 알고리즘의 대부분은 범용 [7]해시를 기반으로 구축됩니다.

SipHash와 같은 본질적으로 키가 있는 해시 알고리즘도 정의상 MAC입니다.이것들은 유니버설해시 [8]베이스의 MAC보다 고속일 수 있습니다.

또, MAC 알고리즘은, 2개 이상의 암호 프리미티브를 의도적으로 조합할 수 있기 때문에, 그 중 하나가 나중에 취약하다고 판명되어도 보호를 유지할 수 있습니다.예를 들어 Transport Layer Security(TLS; 트랜스포트층 보안)에서는 입력 데이터가 반으로 분할되어 각각 다른 해시 프리미티브(SHA-1SHA-2)로 처리되고 다음으로 XOR이 함께 처리되어 MAC가 출력됩니다.

원타임 MAC

유니버설 해시, 특히 쌍으로 독립된 해시 함수는 키가 한 번에 사용되는 한 안전한 메시지 인증 코드를 제공합니다.이것은 인증을 [9]위한 원타임패드로 볼 수 있습니다.

이러한 쌍별 독립 해시 함수는 랜덤 인 키 = (a, b)에 의해 정의되며, 메시지 m의 MAC 태그는 태그 = (am + b) mod p로 계산됩니다. 여기서 p는 소수입니다.

보다 일반적으로, k-ways 독립 해싱 함수는 k-way 독립 해싱 함수에 대해 k회 미만으로 사용되는 한 안전한 메시지 인증 코드를 제공합니다.

메시지 인증 코드와 데이터 원본 인증은 양자 암호학의 프레임워크에서도 논의되었습니다.키 배포와 같은 다른 암호화 태스크와 달리 양자 MAC의 비교적 광범위한 클래스에서 양자 리소스는 무조건 안전한 일회성 클래식 MAC에 [10]비해 어떠한 이점도 제공하지 않는 것으로 나타났습니다.

표준

MAC 알고리즘을 정의하는 다양한 표준이 존재합니다.여기에는 다음이 포함됩니다.

  • FIPS PUB 113 Computer Data [11]Authentication은 2002년에 [12]폐지되었으며 DES에 기반한 알고리즘을 정의합니다.
  • FIPS PUB 198-1해시 메시지 인증 코드(HMAC)[13]
  • NIST SP800-185 SHA-3 파생 함수: cSHECH, KMAC, TupleHash ParallelHash
  • ISO/IEC 9797-1 블록 암호를 사용하는 메커니즘[15]
  • 전용 해시[16] 함수를 사용하는 ISO/IEC 9797-2 메커니즘
  • 범용 해시[17] 함수를 사용하는 ISO/IEC 9797-3 메커니즘
  • ISO/IEC 29192-6 경량 암호화 - 메시지 인증 코드[18]

ISO/IEC 9797-1 및 -2는 모든 블록 암호 또는 해시 함수와 함께 사용할 수 있는 범용 모델 및 알고리즘을 정의합니다.이러한 모델과 파라미터를 지정함으로써 보다 구체적인 알고리즘을 정의할 수 있습니다.예를 들어 FIPS PUB 113 알고리즘은 패딩 방식 1 및 DES 블록 암호 알고리즘을 가진 ISO/IEC 9797-1 MAC 알고리즘 1과 기능적으로 동등하다.

MAC 사용 예시

MAC.svg

[19] 이 예에서는 메시지 발신인이 MAC 알고리즘을 통해 메시지를 실행하여 MAC 데이터 태그를 생성합니다.다음으로 메시지와 MAC 태그가 수신자에게 전송됩니다.수신기는 같은 키를 사용하여 같은 MAC 알고리즘을 통해 전송 메시지 부분을 실행하여 두 번째 MAC 데이터 태그를 생성합니다.다음으로, 수신측은 송신으로 수신한 최초의 MAC 태그를, 2번째 생성된 MAC 태그와 비교합니다.같은 경우, 수신자는, 송신중에 메세지가 변경 또는 변조되지 않은 것을 안전하게 상정할 수 있습니다(데이터 무결성).

다만, 수신측이 리플레이 공격을 검출할 수 있도록 하려면 , 같은 메시지를 1 회 밖에 송신할 수 없는 데이터(타임 스탬프, 시퀀스 번호, 원타임 MAC 의 사용등)가 메시지 자체에 포함되어 있을 필요가 있습니다.그렇지 않으면 공격자가 내용을 파악하지 못한 채 이 메시지를 녹음하고 나중에 재생하여 원래 보낸 사람과 동일한 결과를 얻을 수 있습니다.

「 」를 참조해 주세요.

메모들

  1. ^ IEEE 802.11: Wireless LAN Medium Access Control (MAC) and Physical Layer (PHY) Specifications (PDF). (2007 revision). IEEE-SA. 12 June 2007. doi:10.1109/IEEESTD.2007.373646. ISBN 978-0-7381-5656-9.
  2. ^ Fred B Schneider, Hashes and Message Digests, 코넬 대학교
  3. ^ 가장 강한 상대는 키를 몰라도 서명 알고리즘에 액세스할 수 있다고 가정합니다.그러나 최종 위조된 메시지는 이전에 서명 알고리즘을 조회하기 위해 선택한 메시지와 달라야 합니다.def 134.2 전에 Pass의 논의를 참조하십시오.
  4. ^ a b 이론적으로 효율적인 알고리즘은 확률론적 다항식 시간 내에 실행된다.
  5. ^ 합격, 134.1
  6. ^ 합격, 134.2
  7. ^ "VMAC: Message Authentication Code using Universal Hashing". CFRG Working Group. Retrieved 16 March 2010.
  8. ^ Jean-Philippe Aumasson & Daniel J. Bernstein (2012-09-18). "SipHash: a fast short-input PRF" (PDF).
  9. ^ Simmons, Gustavus (1985). "Authentication theory/coding theory". Advances in Cryptology: Proceedings of CRYPTO 84. Berlin: Springer. pp. 411–431.
  10. ^ Nikolopoulos, Georgios M.; Fischlin, Marc (2020). "Information-Theoretically Secure Data Origin Authentication with Quantum and Classical Resources". Cryptography. 4 (4): 31. arXiv:2011.06849. doi:10.3390/cryptography4040031. S2CID 226956062.
  11. ^ "FIPS PUB 113 Computer Data Authentication". Archived from the original on 2011-09-27. Retrieved 2010-10-10.
  12. ^ "Federal Information Processing Standards Publications, Withdrawn FIPS Listed by Number". Archived from the original on 2010-08-01. Retrieved 2010-10-10.
  13. ^ Keyed-Hash 메시지 인증 코드(Hentication Code(HMAC; 키 해시 메시지 인증 코드)
  14. ^ https://nvlpubs.nist.gov/nistpubs/SpecialPublications/NIST.SP.800-185.pdf[베어 URL PDF]
  15. ^ ISO/IEC 9797-1 정보기술 - 보안 기술 - 메시지 인증 코드(MAC) - 파트 1: 블록 암호를 사용하는 메커니즘
  16. ^ ISO/IEC 9797-2 정보기술 - 보안 기술 - 메시지 인증 코드(MAC) - 파트 2: 전용 해시 함수를 사용하는 메커니즘
  17. ^ ISO/IEC 9797-3 정보기술 - 보안 기술 - 메시지 인증 코드(MAC) - Part 3: 범용 해시 함수를 사용하는 메커니즘
  18. ^ ISO/IEC 29192-6 정보기술 - 경량 암호화 - Part 6: 메시지 인증 코드(MAC)
  19. ^ "Mac Security Overview", Mac® Security Bible, Wiley Publishing, Inc., 2011-11-01, pp. 1–26, doi:10.1002/9781118257739.ch1, ISBN 9781118257739

레퍼런스

  • Goldreich, Oded (2001), Foundations of cryptography I: Basic Tools, Cambridge: Cambridge University Press, ISBN 978-0-511-54689-1
  • Goldreich, Oded (2004), Foundations of cryptography II: Basic Applications (1. publ. ed.), Cambridge [u.a.]: Cambridge Univ. Press, ISBN 978-0-521-83084-3
  • Pass, Rafael, A Course in Cryptography (PDF), retrieved 31 December 2015[1]

외부 링크

  1. ^ 11-12-20C8