it-swarm-korea.com

MAC과 해시의 차이점

두 알고리즘의 차이점은 무엇입니까?
내가 아는 한 가지 차이점은 MAC에 키가 있고 해시가 없다는 것입니다.

32
user1157

간단하게 : 일반적으로 MAC은 비밀 키로 암호화 된 해시 값입니다. 예를 들어 공격자는 메시지를 위조하고 새 해시를 계산할 수 있지만 시스템에서 해시를 비밀 키로 암호화해야하는 경우에는 그렇게 할 수 없습니다.

7
Aleksandr Reznik

암호 해시 함수 는 모든 사람이 임의의 입력에 대해 계산할 수있는 완전히 결정적인 해시 함수입니다. 그것은 일련의 비트 (모든 비트의 시퀀스; 일부 해시 함수는 공식적으로 2 미만의 입력으로 제한됩니다)64 비트 (일명 "2 백만 테라 바이트")로 작은 공간, 일반적으로 고정 된 크기의 비트 시퀀스 (예 : 표준 해시 함수 SHA-1 의 경우 항상 160 비트)로 값을 출력합니다. 좋은 암호 해시 함수는 비공식적으로 입력 데이터를 철저히 혼합하여 나중에 알아낼 수없는 조건을 존중합니다.

메시지 인증 코드 는 메시지를 입력으로 사용하는 알고리즘입니다. 및 비밀 키 나중에 메시지와 일치하도록 확인할 수있는 고정 크기 출력을 생성합니다. 확인에도 동일한 비밀 키가 필요합니다. 모든 것이 알려져 있고 공격자가 수학과 싸우고있는 해시 함수와 달리 MAC은 비밀에 대한 지식이있는 개체가있는 모델에 적합합니다. 좋은 MAC에서 기대할 수있는 것은 위조 할 수없는 것입니다. 주어진 키 K 없이 성공적으로 확인하는 페어 메시지 + MAC 값을 계산하는 것은 불가능합니다. K 아는 것은 정확히 전체입니다.

따라서 해시 함수와 MAC은 고유 한 속성을 가진 고유 한 종류의 알고리즘이며 실제 상황에서 사용됩니다.

Some MAC 알고리즘 (그러나 모든 알고리즘이 아님)은 "키가있는 해시 함수"로 생각할 수 있지만 이것은 제한적인 관점입니다. HMAC 잘 알려진 MAC 구성으로, 자체적으로 스마트 한 방식으로 기본 해시 함수를 기반으로합니다. 실제로 해시 함수와 MAC에 대한 보안 속성과 모델은 해시 함수와 키를 겹치는 것이 해시 함수 is secure 인 경우에도 반드시 안전한 MAC을 생성하지는 않는다는 점에서 서로 충분히 구별됩니다. 해당 지점을 나타내는 길이 확장 공격 을 참조하십시오.

어느 정도까지, 우리는 없이 IV 작동 할 수있는 MAC 알고리즘이 해시와 같은 속성을 보여야한다고 언급 할 수 있습니다. 그것이 제가 HMAC를 좋아하는 이유입니다. IV가 없으면 구현할 때 잘못하는 것이 훨씬 어렵습니다). 그러나 악마는 세부 사항에 있습니다.

34
Thomas Pornin

그것들은 완전히 다른 두 가지 기본 요소입니다. MAC은 메시지 인증에 사용되며 대칭 키 기반 기본 요소입니다. 해시 함수는 다양한 용도로 사용될 수 있으며 특별한 키 입력이 없습니다. MAC은 "메시지 인증 코드"의 약어입니다.

일부 MAC 알고리즘 (예 : SHA1-HMAC)이 해시 함수를 서브 루틴으로 사용하여 작동한다는 사실에 혼동하지 마십시오. 그들은 매우 다른 짐승입니다.

  • MAC 알고리즘의 일부 예 : CMAC, SHA1-HMAC, MD5-HMAC, UMAC, Poly1305-AES.
  • 암호화 해시 함수의 일부 예 : SHA256, SHA1, MD5.
13
D.W.

이것을 다른 포럼의 핵심 답변으로 찾았습니다.

이러한 유형의 암호화 기본 요소는 수행하는 보안 목표 ( "메시지에 추가"의 간단한 프로토콜)로 구별 할 수 있습니다.

Integrity : 수신자가 메시지가 실수로 수정되지 않았다고 확신 할 수 있습니까?

인증 : 수신자가 메시지가 보낸 사람으로부터 온 것임을 확신 할 수 있습니까?

부인 방지 : 수신자가 메시지와 증명을 제 3 자에게 전달하면 제 3자가 메시지가 발신자에게서 온 것임을 확신 할 수 있습니까? (법적 의미가 아닌 암호 적 의미에서 부인 방지에 대해 이야기하고 있습니다.) 또한이 질문은 중요합니다.

Keys : 프리미티브에는 공유 비밀 키 또는 공개-개인 키 쌍이 필요합니까? 나는 짧은 대답이 가장 잘 설명되어 있다고 생각합니다.

Cryptographic primitive | Hash |    MAC    | Digital
Security Goal           |      |           | signature
------------------------+------+-----------+-------------
Integrity               |  Yes |    Yes    |   Yes
Authentication          |  No  |    Yes    |   Yes
Non-repudiation         |  No  |    No     |   Yes
------------------------+------+-----------+-------------
Kind of keys            | none | symmetric | asymmetric
                        |      |    keys   |    keys

사용 된 키에 대한 확신이없는 인증은 쓸모가 없습니다. 디지털 서명의 경우 수신자는 확인 키가 실제로 발신자의 소유임을 확신해야합니다. MAC의 경우 수신자는 공유 대칭 키가 발신자와 만 공유되었음을 확신해야합니다.

자세한 내용은 여기를 클릭하십시오

2
kayle