맨위로가기

암호화 해시 함수

"오늘의AI위키"는 AI 기술로 일관성 있고 체계적인 최신 지식을 제공하는 혁신 플랫폼입니다.
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.

1. 개요

암호화 해시 함수는 임의의 길이의 문자열을 입력으로 받아 고정된 길이의 해시 값을 생성하는 알고리즘이다. 단방향성, 제2 역상 저항성, 충돌 저항성을 가져야 하며, 이러한 속성을 통해 데이터의 무결성을 보장하고 보안을 강화한다. 암호화 해시 함수는 파일 검증, 디지털 서명, 메시지 인증 코드, 비밀번호 저장, 작업 증명 등 다양한 분야에 활용된다. MD5와 SHA-1은 널리 사용되었지만, 취약점이 발견되어 안전하지 않은 것으로 평가받고 있으며, SHA-2, SHA-3, BLAKE2, Whirlpool 등의 알고리즘이 사용되고 있다.

더 읽어볼만한 페이지

  • 암호화 해시 함수 - RIPEMD
    RIPEMD는 MD4를 기반으로 1992년 설계된 암호화 해시 함수로, 보안 취약점 보완을 위해 RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320 등의 변형이 개발되었으며, 특히 RIPEMD-160은 160비트 해시 값을 생성하고 다양한 라이브러리에서 지원되지만 보안성 우려가 제기되고 있다.
  • 암호화 해시 함수 - MD5
    MD5는 로널드 리베스트 교수가 개발한 128비트 해시 값 생성 암호화 해시 함수이나, 보안 취약점으로 인해 현재는 보안이 중요한 분야에서는 사용이 중단되었다.
  • 암호학 - 양자 컴퓨터
    양자 컴퓨터는 양자역학적 현상을 이용하여 정보를 처리하는 컴퓨터로, 큐비트를 통해 0과 1을 동시에 표현하여 특정 연산에서 기존 컴퓨터보다 빠른 속도를 보이며 암호 해독, 신약 개발 등 다양한 분야에 혁신을 가져올 것으로 기대된다.
  • 암호학 - 암호화
    암호화는 정보를 보호하기 위해 사용되는 기술로서, 단순한 문자 치환 방식에서 시작하여 현대에는 강력한 암호화 표준과 다양한 종류로 발전했으며, IT 시스템 전반에 적용되지만, 사이버 공격과 양자 컴퓨팅의 발전에 대한 대응이 필요한 기술이다.
암호화 해시 함수
개요
해시 함수의 도식적 표현
해시 함수의 도식적 표현
종류암호화 해시 함수
민감한 해시 함수
해시 테이블
기타 이름메시지 다이제스트 함수
분야암호학
상세 정보
속성결정적임
계산 효율적임
사전 이미지 저항성
두 번째 프리이미지 저항성
충돌 저항성
이상적인 속성준 무작위 함수
무작위 오라클
설계 방법
기초메르클-데미르가르드 구조
스폰지 함수
좁은 파이프 대 넓은 파이프좁은 파이프 설계
넓은 파이프 설계
사용법
사용 예정보 보안
데이터 무결성
메시지 인증 코드
디지털 서명
타임스탬프
암호화암호화
인증
데이터 구조해시 테이블
블룸 필터
표준 및 알고리즘
표준SHA-1
SHA-2
SHA-3
알고리즘BLAKE
BLAKE2
BMW
Grøstl
JH
Keccak
MD5
RIPEMD
SipHash
Skein
SM3
TIGER
Whirlpool

2. 암호화 해시 함수의 특징

암호화 해시 함수는 임의의 길이의 문자열을 입력받아 고정된 길이의 해시 값을 출력하는 함수이다. 이때, 암호화 해시 함수는 일반적인 해시 함수가 갖는 특징 외에 추가적인 특징을 갖는다.

널리 알려진 암호화 해시 함수 알고리즘에는 MD5, SHA-1, SHA-2, GOST, HAVAL 등이 있다. 하지만 이들 중 일부는 안전하지 않은 것으로 밝혀졌다. 예를 들어, 미국 US-CERT는 2008년에 MD5를 사용하지 말 것을 권고했으며,[37] NIST는 2008년에 SHA-1 사용 중지를 발표하고 SHA-2를 사용할 것을 권고했다.[38] 2012년에는 SHA-3가 NIST의 공모전을 통해 선정되었다.[39]

다음은 널리 알려진 암호화 해시 함수 알고리즘들의 특징을 비교한 표이다.

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256[https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192]
HAVAL256/224/192/160/1282561,0246432160/128/96가능
MD2128384128-32864[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 263.3][http://eprint.iacr.org/2008/089.pdf 273]
MD4128128512643248[https://web.archive.org/web/20110406104708/http://www.springerlink.com/content/v6526284mu858v37/ 3][http://eprint.iacr.org/2010/016.pdf 264][http://eprint.iacr.org/2010/016.pdf 278.4]
MD5128128512643264[http://eprint.iacr.org/2009/223.pdf 220.96][https://web.archive.org/web/20121003035831/http://www.springerlink.com/content/d7pm142n58853467/ 2123.4]
PANAMA2568,736256-32-가능
RadioGatúnUp to 608/1,216 (19 words)58 words3 words-1–64-[http://eprint.iacr.org/2008/515 2352 또는 2704]
RIPEMD128128512643248[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 218]
RIPEMD-128/256128/256128/256512643264
RIPEMD-160160160512643280[https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48]
RIPEMD-320320320512643280
SHA-0160160512643280[https://web.archive.org/web/20110406104746/http://www.springerlink.com/content/3810jp9730369045/ 233.6]
SHA-1160160512643280[http://eprint.iacr.org/2008/469.pdf 251]
SHA-256/224256/224256512643264[http://eprint.iacr.org/2008/270.pdf 228.5:24][http://eprint.iacr.org/2010/016.pdf 2248.4:42]
SHA-512/384512/3845121,0241286480[http://eprint.iacr.org/2008/270.pdf 232.5:24][http://eprint.iacr.org/2010/016.pdf 2494.6:42]
Tiger(2)-192/160/128192/160/128192512646424[https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19][http://eprint.iacr.org/2010/016.pdf 2184.3]
WHIRLPOOL512512512256810[https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5]



암호화 해시 함수는 디지털 서명, 메시지 인증 코드(MAC), 인증 등 다양한 정보 보안 분야에 활용된다. 또한, 키 유도 함수체크섬 등에도 사용될 수 있다.

2. 1. 기본 성질

암호화 해시 함수는 일반적인 해시 함수에 요구되는 속성 외에, 결정적인 특성 외에 다음과 같은 암호학적 속성을 갖는다.

  • 단방향성 (역상 저항성): 주어진 해시 값으로부터 원래의 입력값을 계산하는 것이 현실적으로 불가능해야 한다.[21]
  • 충돌 저항성: 동일한 해시 값을 갖는 서로 다른 두 입력값을 찾는 것이 현실적으로 불가능해야 한다.[22]
  • (유사) 난수성: 입력값이 조금만 바뀌어도 해시 값이 크게 바뀌어, 출력값이 무작위로 보이는 성질.


이론적 암호학에서 암호화 해시 함수의 보안 수준은 다음과 같은 속성을 사용하여 정의된다.

  • 원상 공격 저항성 (Preimage resistance): 해시 값 가 주어졌을 때, 을 만족하는 임의의 메시지 을 찾는 것이 어려워야 한다. 이 속성이 없는 함수는 원상 공격에 취약하다.
  • 제2 원상 공격 저항성 (Second-preimage resistance): 입력 가 주어졌을 때, 를 만족하는 다른 입력 (과는 다른 입력)를 찾는 것이 어려워야 한다. 이 속성은 *약한 충돌 저항성*이라고도 한다. 이 속성이 없는 함수는 제2 원상 공격에 취약하다.
  • 충돌 저항성 (Collision resistance): 서로 다른 두 메시지 과 가 주어졌을 때, 를 만족하는 두 메시지를 찾는 것이 어려워야 한다. 이러한 쌍을 암호화 해시 충돌이라고 한다. 이 속성은 *강한 충돌 저항성*이라고도 한다. 생일 공격으로 충돌을 찾을 수 있으므로, 사전 저항에 필요한 것보다 최소 두 배 더 긴 해시 값이 필요하다.


충돌 저항성은 제2 원상 공격 저항성을 의미하지만, 사전 저항성을 의미하지는 않는다.

비공식적으로, 이러한 속성은 악의적인 적이 다이제스트를 변경하지 않고는 입력 데이터를 바꾸거나 수정할 수 없다는 것을 의미한다. 따라서 두 문자열의 다이제스트가 동일하면 해당 문자열이 동일하다고 매우 확신할 수 있다.

실제로, 충돌 저항성은 많은 실용적인 용도에 충분하지 않다. 적이 상당히 유사한 다이제스트를 가진 두 개의 메시지를 찾거나, 다이제스트만 주어진 데이터에 대한 유용한 정보를 추론하는 것이 불가능해야 한다. 특히, 해시 함수는 결정적이고 효율적으로 계산될 수 있으면서도 가능한 한 무작위 함수와 유사하게 작동해야 한다.

CRC32 및 기타 순환 중복 검사와 같은 체크섬 알고리즘은 훨씬 약한 요구 사항을 충족하도록 설계되었으며 일반적으로 암호화 해시 함수로 부적합하다.

2. 2. 추가적인 특징

암호화 해시 함수는 빠르게 해시 값을 계산할 수 있어야 한다. 그러나 일부 해시 함수는 길이 확장 공격에 취약하다. 길이 확장 공격은 주어진 해시 값과 메시지 길이를 이용하여, 원래 메시지 내용을 몰라도 새로운 해시 값을 계산할 수 있는 공격이다. HMAC과 같은 기법을 통해 이 문제를 해결할 수 있다.[2]

3. 암호화 해시 함수의 응용

암호화 해시 함수는 정보 보안 분야에서 다양하게 활용된다. 디지털 서명, 메시지 인증 코드(MAC), 기타 인증 기술 등이 대표적인 예시이다.

앨리스에게 어려운 수학 문제를 제시하고 자신은 답을 알고 있다고 주장하는 상황을 가정해 보자. 밥은 앨리스가 허세를 부리는지 확인하기 위해 앨리스에게 해답에 임의의 문자열(nonce)을 붙여 계산한 해시 값을 요구한다. 며칠 후 밥이 문제를 풀면 앨리스는 자신의 해답과 nonce를 공개하여 증명할 수 있다. 이는 커밋먼트 스키마의 간단한 예시이다.

이 외에도 데이터 무결성 검증, 파일 식별, 비밀번호 해시(키 유도 함수#비밀번호 해시) 등에 사용된다. 비밀번호는 유출을 막기 위해 평문이 아닌 다이제스트 형태로 저장되며, 디지털 서명 알고리즘에서도 메시지 자체 대신 메시지의 다이제스트에 서명하는 방식으로 보안 및 성능상의 이점을 얻는다.

P2P 파일 공유 네트워크에서는 MD4 해시와 파일 크기를 조합하는 ed2k 링크나 Magnet 링크와 같이 파일 식별을 위해서도 해시가 사용된다.

3. 1. 데이터 무결성 검증

보안 해시의 중요한 응용 분야는 메시지 무결성 검증이다. 메시지 전송 전후에 계산된 해시 값을 비교하면 메시지나 파일에 변경 사항이 있는지 확인할 수 있다.[3]

MD5, SHA-1, 또는 SHA-2 해시 다이제스트는 다운로드한 파일의 무결성을 검증하기 위해 웹사이트나 포럼에 게시되기도 한다.[3] 여기에는 미러링과 같은 파일 공유를 사용하여 검색한 파일도 포함된다. 이 관행은 해시가 신뢰할 수 있는 사이트(일반적으로 원본 사이트)에 HTTPS로 인증되어 게시되는 한 신뢰 사슬을 설정한다. 암호화 해시와 신뢰 사슬을 사용하면 파일에 대한 악의적인 변경 사항을 감지할 수 있다. 순환 중복 검사와 같은 비암호화 오류 감지 코드는 의도적인 스푸프가 충돌 코드 값을 갖도록 쉽게 구성될 수 있으므로 파일의 ''악의적이지 않은'' 변경만 방지한다.

메시지 다이제스트는 파일을 안정적으로 식별하는 수단으로도 사용될 수 있다. Git, Mercurial, Monotone을 포함한 여러 소스 코드 관리 시스템은 다양한 유형의 콘텐츠(파일 내용, 디렉토리 트리, 조상 정보 등)의 SHA-1 해시를 사용하여 고유하게 식별한다. 해시는 P2P 파일 공유 네트워크에서 파일을 식별하는 데 사용된다. 예를 들어, ed2k 링크에서 MD4 변형 해시는 파일 크기와 결합되어 파일 소스를 찾고, 파일을 다운로드하고, 내용을 확인하는 데 충분한 정보를 제공한다. 마그넷 URI도 또 다른 예이다. 이러한 파일 해시는 종종 추가적인 이점을 제공하는 해시 목록 또는 해시 트리의 최상위 해시이다.

3. 2. 디지털 서명

디지털 서명은 메시지에 대한 암호화 해시 계산을 필요로 한다. 이를 통해 비교적 작고 고정된 크기의 해시 다이제스트에 대한 서명 계산을 수행할 수 있다. 서명 검증이 서명과 메시지에 대한 재계산된 해시 다이제스트를 통해 성공하면 메시지가 진본으로 간주된다. 따라서 암호화 해시의 메시지 무결성 속성은 안전하고 효율적인 디지털 서명 방식을 만드는 데 사용된다.[21]

보안 및 성능상의 이유로, 디지털 서명 알고리즘의 대부분은 메시지 자체에 서명하지 않고 메시지의 다이제스트에 대해서만 "서명"한다.[21]

3. 3. 메시지 인증 코드 (MAC)

메시지 인증 코드는 메시지의 무결성과 인증을 동시에 제공하는 데 사용된다. HMAC 등의 알고리즘은 암호화 해시 함수를 기반으로 한다.[21]

3. 4. 비밀번호 저장

비밀번호 검증에는 일반적으로 암호화 해시가 사용된다. 모든 사용자 비밀번호를 평문으로 저장하면 비밀번호 파일이 유출될 경우 심각한 보안 문제가 발생할 수 있다. 이러한 위험을 줄이기 위해 각 비밀번호의 해시 값만 저장한다. 사용자가 인증을 시도하면, 사용자가 입력한 비밀번호를 해싱하여 저장된 해시 값과 비교한다. 이때, 저장된 해시 값으로는 원래 비밀번호를 복구할 수 없도록 설계되어야 한다.[20]

그러나 SHA 계열과 같은 표준 암호화 해시 함수는 더 이상 비밀번호 저장에 안전하지 않다.[20] 이러한 알고리즘은 빠르게 계산되도록 설계되었기 때문에 해시 값이 유출되면 공격자가 빠른 속도로 비밀번호를 추측할 수 있다. 일반적인 그래픽 처리 장치는 초당 수십억 개의 비밀번호를 시도할 수 있다.

따라서 키 스트레칭을 사용하는 비밀번호 해시 함수(예: PBKDF2, scrypt, Argon2)를 사용하는 것이 좋다.[20] 이러한 함수들은 암호화 해시를 반복적으로 호출하여 무차별 대입 공격에 필요한 시간을 늘린다.

또한 비밀번호 해시와 함께 크고 임의적인 솔트 값을 사용해야 한다. 솔트는 비밀번호와 함께 해시되어 각 비밀번호의 해시 값을 변경하므로, 공격자가 미리 계산된 해시 값 테이블(레인보우 테이블)을 사용하는 것을 방지한다.

3. 5. 작업 증명 (Proof-of-Work)

작업 증명 시스템은 서비스 요청자의 컴퓨터 처리 시간을 요구하여 서비스 거부 공격이나 스팸과 같은 서비스 남용을 막는 경제적 수단이다. 이 방식의 핵심은 비대칭성으로, 요청자는 작업을 수행하는 데 어느 정도 어려움이 있지만, 서비스 제공자는 이를 쉽게 확인할 수 있어야 한다.

비트코인 채굴과 해시캐시에서 사용되는 대표적인 시스템은 부분 해시 역전 방식이다. 이 방식은 특정 조건을 만족하는 해시 값을 찾도록 하여 작업 증명을 수행한다. 예를 들어, 비트코인에서는 이 방식을 통해 채굴에 대한 보상을 제공하고, 해시캐시에서는 스팸 메일을 방지하기 위한 수단으로 사용된다. 해시캐시에서 발신자는 해시 값이 특정 개수의 0 비트로 시작하는 메시지를 찾아야 한다. 발신자가 유효한 메시지를 찾기 위해 필요한 평균 작업량은 해시 값에 필요한 0 비트 수에 따라 기하급수적으로 증가하지만, 수신자는 단일 해시 함수를 실행하여 메시지의 유효성을 쉽게 검증할 수 있다. 예를 들어 해시캐시에서 발신자는 160비트 SHA-1 해시 값의 처음 20비트가 0인 헤더를 생성해야 한다. 평균적으로 발신자는 유효한 헤더를 찾기 위해 219번의 시도를 해야 한다.[1]

3. 6. 파일 또는 데이터 식별

파일 공유 네트워크나 Git, Mercurial 같은 버전 관리 시스템에서 파일의 고유 식별자로 암호화 해시 함수가 사용된다. 예를 들어, P2P 파일 공유 네트워크에서 사용되는 ed2k 링크는 MD4 변형 해시와 파일 크기를 결합하여 파일을 식별하고, 마그넷 URI도 파일 식별에 해시를 사용한다. 이러한 파일 해시는 해시 목록이나 해시 트리의 최상위 해시로 사용되어 추가적인 이점을 제공하기도 한다.[21]

4. 암호화 해시 함수 설계

암호화 해시 함수는 주로 블록 암호를 사용하여 만들어진다. 특히 일방향 압축 함수를 구축하는 데 여러 방법이 사용되며, 이러한 방법들은 암호화에 사용되는 블록 암호 운용 방식과 유사하다.

MD4, MD5, SHA-1, SHA-2 등 잘 알려진 해시 함수들은 블록 암호와 유사한 구성 요소로 만들어졌으며, 결과 함수가 되돌릴 수 없도록(일방향성) 피드백을 제공한다. SHA-3 결선 진출자에는 Skein, BLAKE와 같이 블록 암호와 비슷한 구성 요소가 있는 함수들이 포함되었지만, 최종 선택된 Keccak은 암호화 스펀지를 기반으로 만들어졌다.

AES와 같은 표준 블록 암호를 사용할 수도 있다. 이는 임베디드 시스템처럼 코드 크기나 하드웨어 영역을 최소화하여 암호화와 해싱을 모두 구현해야 할 때 유용할 수 있다. 그러나 이 방식은 효율성과 보안에 영향을 줄 수 있는데, 해시 함수용 암호는 큰 키와 블록을 사용하고, 블록마다 키를 효율적으로 변경하며, 관련 키 공격에 강하도록 설계되기 때문이다. 반면 범용 암호는 다른 설계 목표를 갖는다.

4. 1. 머클-담고르(Merkle–Damgård) 구조

머클-담고르 구조는 임의의 길이의 메시지를 고정된 길이의 출력값으로 변환하기 위해 사용된다. 입력 메시지를 동일한 크기의 블록들로 나누고, 단방향 압축 함수를 사용하여 순차적으로 처리한다. 압축 함수는 해시 함수를 위해 특별히 설계되거나, 블록 암호를 기반으로 만들어질 수 있다.

머클-담고르 구조로 만들어진 해시 함수는 압축 함수만큼 충돌에 강하다. 즉, 전체 해시 함수에서 충돌이 발생하면 압축 함수에서도 충돌이 발생한다는 의미이다. 마지막 블록은 길이 패딩을 통해 명확하게 처리되어야 하며, 이는 보안에 매우 중요하다.

SHA-1, MD5 등 널리 사용되는 고전 해시 함수들이 이 구조를 사용한다. 그러나 이 구조는 길이 확장(length-extension) 공격이나 생성 후 붙여넣기(generate-and-paste) 공격에 취약하고, 병렬 처리가 불가능하다는 단점이 있다. 이러한 단점을 보완하기 위해 SHA-3와 같은 새로운 해시 함수들은 다른 구조를 채택하고 있다.[2]

4. 2. 스펀지(Sponge) 구조

스펀지 구조는 입력 데이터를 흡수(Absorb)하고 출력 데이터를 짜내는(Squeeze) 방식으로 작동한다. SHA-3 알고리즘이 이 구조를 사용한다.

4. 3. 블록 암호 기반 해시 함수

블록 암호를 기반으로 암호화 해시 함수, 특히 일방향 압축 함수를 구축하는 여러 방법이 있다. 이러한 방법들은 암호화에 사용되는 블록 암호 운용 방식과 유사하다. MD4, MD5, SHA-1, SHA-2 등 잘 알려진 많은 해시 함수들은 블록 암호와 유사한 구성 요소로 설계되었으며, 결과 함수가 가역적이지 않도록 피드백을 제공한다.

AES와 같은 표준 블록 암호를 사용할 수 있지만, 효율성과 보안 측면에서 비용이 발생할 수 있다. 해시 함수에 사용되는 암호는 큰 키와 블록을 사용하고, 모든 블록마다 키를 효율적으로 변경할 수 있으며, 관련 키 공격에 대한 저항성을 위해 설계되기 때문이다. 반면 범용 암호는 다른 설계 목표를 갖는다.

하지만 임베디드 시스템과 같이 최소한의 코드 크기나 하드웨어 영역으로 암호화와 해싱을 모두 구현해야 하는 경우에는 표준 블록 암호를 사용하는 것이 유용할 수 있다.

해시 함수는 데이비스-마이어 등의 구조에서 특수 목적 블록 암호를 사용하여 구축된다.[1]

5. 암호화 해시 알고리즘 종류

암호화 해시 알고리즘에는 여러 종류가 있으며, 각각은 보안 강도, 속도, 출력 길이 등에서 차이를 보인다.

MD5SHA-1은 한때 널리 사용되었으나, 현재는 안전하지 않은 것으로 알려져 있다. 2008년 미국 US-CERT는 MD5를 사용하지 말 것을 권고했고,[37] 미국 국립표준기술연구소(NIST)는 SHA-1 사용 중단을 발표하고 SHA-2 사용을 권장했다.[38] NIST는 2008년에 SHA-3 공모전을 열었고, 2012년에 최종 후보를 선정할 예정이었다.[39]

여러 해시 함수의 출력을 연결하면 연결된 결과에 포함된 가장 강력한 알고리즘만큼의 충돌 저항성을 제공한다. 예를 들어, 이전 버전의 TLS/SSL은 연결된 MD5SHA-1 합을 사용했다. 그러나 메르클-담고르드 구조 해시 함수의 경우, 연결된 함수는 가장 강력한 구성 요소만큼 충돌 저항성이 있지만 그 이상은 아니다.

다음은 널리 알려진 암호화 해시 함수 알고리즘의 일부 목록이며, 아래의 표에 있는 알고리즘을 포함한 더 자세한 목록은 암호화 해시 함수 비교에서 확인할 수 있다.

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256[https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192]
RIPEMD-128/256128/256128/256512643264|
RIPEMD-160160160512643280[https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48]|
RIPEMD-320320320512643280|
Tiger(2)-192/160/128192/160/128192512646424[https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19][http://eprint.iacr.org/2010/016.pdf 2184.3]
WHIRLPOOL512512512256810[https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5]|


5. 1. 안전하지 않은 알고리즘

MD5SHA-1은 가장 널리 사용되는 해시 함수였으나, 현재는 안전하지 않다는 것이 알려져 있다.[37][38] 미국 US-CERT에서는 2008년 MD5를 사용하지 말아야 한다고 발표했고,[37] NIST에서는 2008년 SHA-1의 사용을 중지하고 SHA-2를 사용할 것이라고 발표했다.[38]

다음은 널리 알려진 암호화 해시 함수 알고리즘의 목록이다. 이들 중에는 안전하지 않다는 것이 밝혀진 것도 있다.

알고리즘출력 길이 (비트)충돌 공격 (복잡도)원상 공격 (복잡도)
HAVAL256/224/192/160/128
MD2128거의
MD4128예 (21)[34]결함 포함 (2102)[35]
MD5128예 (25)아니요
Panama|파나마영어256
RadioGatún임의 길이
RIPEMD128
SHA-0160예 (239)
SHA-1160결함 포함 (252)[29]아니요


5. 2. 널리 사용되는 알고리즘

SHA-2는 2001년 미국의 국가안보국(NSA)이 설계한 암호화 해시 함수이다. SHA-256SHA-512가 널리 사용되고 있으며, SHA-224, SHA-384, SHA-512/224, SHA-512/256 등은 SHA-512의 변형이다. 특히 SHA-512AMD64와 같은 64비트 머신에서 SHA-256보다 빠르면서도 더 안전하다.

SHA-3SHA-2의 대안으로 2015년 미국 국립표준기술연구소(NIST)에서 발표한 알고리즘이다. Keccak 알고리즘을 기반으로 하며, SHA-2와 동일한 출력 크기(224, 256, 384, 512비트)를 제공한다.

BLAKE2는 SHA-3 경쟁의 최종 후보였던 BLAKE 알고리즘을 개선한 버전으로, 2012년에 발표되었다. 속도가 빠르고 안전성이 높아 아르곤2(Argon2) 패스워드 해시 등 여러 프로토콜에서 사용된다. BLAKE3는 BLAKE2를 더욱 개선한 버전으로 2020년에 발표되었으며, 더 높은 수준의 병렬 처리를 지원한다.

Whirlpool은 고급 암호화 표준(AES)(/wiki/%EA%B3%A0%EA%B8%89_%EC%95%94%ED%98%B8%ED%99%94_%ED%91%9C%EC%A4%80) 암호 알고리즘을 기반으로 설계된 해시 함수로, 2000년에 발표되었다. 512비트(64바이트)의 해시 다이제스트를 생성한다.

다음은 널리 알려진 암호화 해시 함수 알고리즘의 목록이다.

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256[https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192]
HAVAL256/224/192/160/1282561,0246432160/128/96가능|
MD2128384128-32864[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 263.3][http://eprint.iacr.org/2008/089.pdf 273]
MD4128128512643248[https://web.archive.org/web/20110406104708/http://www.springerlink.com/content/v6526284mu858v37/ 3][http://eprint.iacr.org/2010/016.pdf 264][http://eprint.iacr.org/2010/016.pdf 278.4]
MD5128128512643264[http://eprint.iacr.org/2009/223.pdf 220.96][https://web.archive.org/web/20121003035831/http://www.springerlink.com/content/d7pm142n58853467/ 2123.4]
PANAMA2568,736256-32-가능|
RadioGatúnUp to 608/1,216 (19 words)58 words3 words-1–64-[http://eprint.iacr.org/2008/515 2352 또는 2704]|
RIPEMD128128512643248[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 218]|
RIPEMD-128/256128/256128/256512643264|
RIPEMD-160160160512643280[https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48]|
RIPEMD-320320320512643280|
SHA-0160160512643280[https://web.archive.org/web/20110406104746/http://www.springerlink.com/content/3810jp9730369045/ 233.6]|
SHA-1160160512643280[http://eprint.iacr.org/2008/469.pdf 251]|
SHA-256/224256/224256512643264[http://eprint.iacr.org/2008/270.pdf 228.5:24][http://eprint.iacr.org/2010/016.pdf 2248.4:42]
SHA-512/384512/3845121,0241286480[http://eprint.iacr.org/2008/270.pdf 232.5:24][http://eprint.iacr.org/2010/016.pdf 2494.6:42]
Tiger(2)-192/160/128192/160/128192512646424[https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19][http://eprint.iacr.org/2010/016.pdf 2184.3]
WHIRLPOOL512512512256810[https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5]|


6. 암호화 해시 함수에 대한 공격

MD5SHA-1은 널리 사용되던 해시 함수였으나, 안전하지 않다는 것이 알려져 더 이상 사용되지 않는다. 미국 US-CERT는 2008년에 MD5 사용 중단을 권고했고[37], 미국 국립표준기술연구소(NIST)는 2008년에 SHA-1 사용 중지 및 SHA-2 사용을 발표했다.[38]

2008년 미국 국립표준기술연구소(NIST)는 SHA-3라는 새로운 안전한 암호화 해시 함수 공모전을 개최했다. 2012년 8월에는 5개의 최종 후보가 선정되었으며, 2012년 중 최종 후보가 결정될 예정이었다.[39]

SHA-0과 RIPEMD는 이미 더 강화된 버전으로 대체되어 사용되지 않고 있다. 2004년 8월에는 당시 자주 사용되던 해시 함수(SHA-0, RIPEMD, MD5 등)의 약점이 발견되어, 이들로부터 파생된 알고리즘, 특히 SHA-1(SHA-0의 강화 버전)과 RIPEMD-128 및 RIPEMD-160(RIPEMD의 강화 버전)의 장기적인 보안에 의문이 제기되었다.

2009년 현재 가장 널리 사용된 암호화 해시 함수는 MD5SHA-1이었으나, MD5는 이미 깨졌고, 2008년에는 SSL에 대한 공격에 그 취약성이 이용되었다.[27]

SHA-1은 미국 국가 안보국(NSA)가 개발한 SHA 패밀리에 속한다. 2005년 2월에는 SHA-1에 대해 280회보다 적은 269회의 해시 생성으로 충돌을 찾는 공격법이 보고되었고, 8월에는 263회로 충돌을 찾는 공격법이 보고되었다. SHA-1에는 이론적인 약점도 지적되고 있으며[28][29], 수년 안에 해독될 것이라는 예측도 있었다. 2009년 6월에는 252회로 SHA-1에서 충돌을 찾을 수 있는 공격법이 보고되었다.[30] 최근에는 SHA-2와 같은 더 새로운 SHA 패밀리로 이전하거나, 충돌 저항성이 필요하지 않은 무작위 해시[31][32] 등의 기법을 사용하여 문제를 회피하고 있다.

해시 함수의 장기적인 안정성 보장을 위해 SHA-2의 후속으로 SHA-3 공모가 이루어졌고[33], 2015년에 FIPS 규격으로 발행되었다.

다음은 널리 알려진 암호화 해시 함수 알고리즘의 목록과 공격 가능성에 대한 표이다.

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192
HAVAL256/224/192/160/1282561,0246432160/128/96가능
MD2128384128-32864https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 263.3http://eprint.iacr.org/2008/089.pdf 273
MD4128128512643248https://web.archive.org/web/20110406104708/http://www.springerlink.com/content/v6526284mu858v37/ 3http://eprint.iacr.org/2010/016.pdf 264http://eprint.iacr.org/2010/016.pdf 278.4
MD5128128512643264http://eprint.iacr.org/2009/223.pdf 220.96https://web.archive.org/web/20121003035831/http://www.springerlink.com/content/d7pm142n58853467/ 2123.4
PANAMA2568,736256-32-가능
RadioGatúnUp to 608/1,216 (19 words)58 words3 words-1–64-http://eprint.iacr.org/2008/515 2352 또는영어 2704
RIPEMD128128512643248https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 218
RIPEMD-128/256128/256128/256512643264
RIPEMD-160160160512643280https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48
RIPEMD-320320320512643280
SHA-0160160512643280https://web.archive.org/web/20110406104746/http://www.springerlink.com/content/3810jp9730369045/ 233.6
SHA-1160160512643280http://eprint.iacr.org/2008/469.pdf 251
SHA-256/224256/224256512643264http://eprint.iacr.org/2008/270.pdf 228.5:24http://eprint.iacr.org/2010/016.pdf 2248.4:42
SHA-512/384512/3845121,0241286480http://eprint.iacr.org/2008/270.pdf 232.5:24http://eprint.iacr.org/2010/016.pdf 2494.6:42
Tiger(2)-192/160/128192/160/128192512646424https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19http://eprint.iacr.org/2010/016.pdf 2184.3
WHIRLPOOL512512512256810https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5


6. 1. 충돌 공격

wikitext

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192
HAVAL256/224/192/160/1282561,0246432160/128/96가능
MD2128384128-32864https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 263.3http://eprint.iacr.org/2008/089.pdf 273
MD4128128512643248https://web.archive.org/web/20110406104708/http://www.springerlink.com/content/v6526284mu858v37/ 3http://eprint.iacr.org/2010/016.pdf 264http://eprint.iacr.org/2010/016.pdf 278.4
MD5128128512643264http://eprint.iacr.org/2009/223.pdf 220.96https://web.archive.org/web/20121003035831/http://www.springerlink.com/content/d7pm142n58853467/ 2123.4
PANAMA2568,736256-32-가능
RadioGatúnUp to 608/1,216 (19 words)58 words3 words-1–64-http://eprint.iacr.org/2008/515 2352 또는영어 2704
RIPEMD128128512643248https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 218
RIPEMD-128/256128/256128/256512643264
RIPEMD-160160160512643280https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48
RIPEMD-320320320512643280
SHA-0160160512643280https://web.archive.org/web/20110406104746/http://www.springerlink.com/content/3810jp9730369045/ 233.6
SHA-1160160512643280http://eprint.iacr.org/2008/469.pdf 251
SHA-256/224256/224256512643264http://eprint.iacr.org/2008/270.pdf 228.5:24http://eprint.iacr.org/2010/016.pdf 2248.4:42
SHA-512/384512/3845121,0241286480http://eprint.iacr.org/2008/270.pdf 232.5:24http://eprint.iacr.org/2010/016.pdf 2494.6:42
Tiger(2)-192/160/128192/160/128192512646424https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19http://eprint.iacr.org/2010/016.pdf 2184.3
WHIRLPOOL512512512256810https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5


6. 2. 원상 공격

주어진 해시값에 대한 원본 메시지를 찾는 공격이다.[22] 이 특성이 없는 함수는 원상 공격에 취약하다.

원상 공격은 다음 두 가지로 구성된다.

종류설명
제1 원상 공격해시 값 h가 주어졌을 때, h = hash(m)이 되는 임의의 메시지 m을 찾는 것이 어려워야 한다.
제2 원상 공격입력 m1이 주어졌을 때, h = hash(m1) = hash(m2)가 되는 (즉, 충돌하는) 다른 입력 m2(m1과는 다른 입력)를 찾는 것이 어려워야 한다.


6. 3. 제2 원상 공격

주어진 입력값 ''m''1에 대해, ''h'' = hash(''m''1) = hash(''m''2)가 되는 다른 입력값 ''m''2 (''m''1 ≠ ''m''2)를 찾는 것을 의미한다. 즉, 동일한 해시값을 갖는 다른 입력값을 찾는 공격이다. 이를 "약 충돌 저항성"이라고도 한다. 이 특성이 없는 함수는 제2 원상 공격에 취약하다.[22]

6. 4. 길이 확장 공격

Length extension attack영어은 해시 값 ''h(m)''과 메시지 길이 ''len(m)''을 알고 있고, ''m'' 자체는 모르는 경우, 적절한 ''m' ''을 선택하여 ''h(m || m')''을 계산할 수 있는 공격이다. 여기서 ''||''는 메시지의 연결을 의미한다.[22] 메르클-담고르드 구조를 기반으로 하는 암호화 해시 함수는 모두 이 공격에 취약하다.

이 공격에 취약한 해시 함수는 MD5, SHA-1, RIPEMD-160, WHIRLPOOL, SHA-256/SHA-512 등이 있다. 반면, SHA-3, BLAKE2, BLAKE3 및 잘린 SHA-2 변형은 이 공격에 취약하지 않다.

이러한 특성을 이용하면 해시 함수에 기초한 단순한 인증 방식을 파괴할 수 있다. 이 문제에 대한 대책으로 HMAC이 고안되었다.

6. 5. 암호화 해시 알고리즘에 대한 공격

MD5SHA-1은 널리 사용되는 해시 함수였으나, 안전하지 않다는 것이 알려져 더 이상 사용되지 않는다. 미국 US-CERT는 2008년에 MD5 사용 중단을 권고했고[37], NIST는 2008년에 SHA-1 사용 중지 및 SHA-2 사용을 발표했다.[38]

2008년 미국 국립표준기술연구소(NIST)는 SHA-3라는 새로운 안전한 암호화 해시 함수 공모전을 개최했다. 2012년 8월에는 5개의 최종 후보가 선정되었으며, 2012년 중 최종 후보가 결정될 예정이었다.[39]

다음은 널리 알려진 암호화 해시 함수 알고리즘 목록이다. 이들 중 일부는 안전하지 않은 것으로 밝혀졌다.

알고리즘출력 비트 수내부 상태 크기[40]블록 크기Length sizeWord size라운드 수공격 가능성 (복잡도:최대 라운드 수)[41]
충돌2차 역상역상
GOST25625625625632256[https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2105][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192][https://web.archive.org/web/20110406104650/http://www.springerlink.com/content/2514122231284103/ 2192]
HAVAL256/224/192/160/1282561,0246432160/128/96가능
MD2128384128-32864[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 263.3][http://eprint.iacr.org/2008/089.pdf 273]
MD4128128512643248[https://web.archive.org/web/20110406104708/http://www.springerlink.com/content/v6526284mu858v37/ 3][http://eprint.iacr.org/2010/016.pdf 264][http://eprint.iacr.org/2010/016.pdf 278.4]
MD5128128512643264[http://eprint.iacr.org/2009/223.pdf 220.96][https://web.archive.org/web/20121003035831/http://www.springerlink.com/content/d7pm142n58853467/ 2123.4]
PANAMA2568,736256-32-가능
RadioGatúnUp to 608/1,216 (19 words)58 words3 words-1–64-[http://eprint.iacr.org/2008/515 2352 또는 2704]
RIPEMD128128512643248[https://web.archive.org/web/20110406104731/http://www.springerlink.com/content/n5vrtdha97a2udkx/ 218]
RIPEMD-128/256128/256128/256512643264
RIPEMD-160160160512643280[https://web.archive.org/web/20121001035337/http://www.springerlink.com/content/3540l03h1w31n6w7 251:48]
RIPEMD-320320320512643280
SHA-0160160512643280[https://web.archive.org/web/20110406104746/http://www.springerlink.com/content/3810jp9730369045/ 233.6]
SHA-1160160512643280[http://eprint.iacr.org/2008/469.pdf 251]
SHA-256/224256/224256512643264[http://eprint.iacr.org/2008/270.pdf 228.5:24][http://eprint.iacr.org/2010/016.pdf 2248.4:42]
SHA-512/384512/3845121,0241286480[http://eprint.iacr.org/2008/270.pdf 232.5:24][http://eprint.iacr.org/2010/016.pdf 2494.6:42]
Tiger(2)-192/160/128192/160/128192512646424[https://web.archive.org/web/20110406104832/http://www.springerlink.com/content/u762587644802p38/ 262:19][http://eprint.iacr.org/2010/016.pdf 2184.3]
WHIRLPOOL512512512256810[https://www.cosic.esat.kuleuven.be/fse2009/slides/2402_1150_Schlaeffer.pdf 2120:4.5]



SHA-0과 RIPEMD는 이미 더 강화된 버전으로 대체되어 사용되지 않고 있다. 2004년 8월에는 당시 자주 사용되던 해시 함수(SHA-0, RIPEMD, MD5 등)의 약점이 발견되어, 이들로부터 파생된 알고리즘, 특히 SHA-1(SHA-0의 강화 버전)과 RIPEMD-128 및 RIPEMD-160(RIPEMD의 강화 버전)의 장기적인 보안에 의문이 제기되었다.

2009년 현재 가장 널리 사용된 암호화 해시 함수는 MD5SHA-1이었으나, MD5는 이미 깨졌고, 2008년에는 SSL에 대한 공격에 그 취약성이 이용되었다.[27]

SHA-1은 미국 국가 안보국(NSA)가 개발한 SHA 패밀리에 속한다. 2005년 2월에는 SHA-1에 대해 280회보다 적은 269회의 해시 생성으로 충돌을 찾는 공격법이 보고되었고, 8월에는 263회로 충돌을 찾는 공격법이 보고되었다. SHA-1에는 이론적인 약점도 지적되고 있으며[28][29], 수년 안에 해독될 것이라는 예측도 있었다. 2009년 6월에는 252회로 SHA-1에서 충돌을 찾을 수 있는 공격법이 보고되었다.[30] 최근에는 SHA-2와 같은 더 새로운 SHA 패밀리로 이전하거나, 충돌 저항성이 필요하지 않은 무작위 해시[31][32] 등의 기법을 사용하여 문제를 회피하고 있다.

해시 함수의 장기적인 안정성 보장을 위해 SHA-2의 후속으로 SHA-3 공모가 이루어졌고[33], 2015년에 FIPS 규격으로 발행되었다.

6. 6. 해시된 비밀번호에 대한 공격

공격자는 유출된 해시 값 데이터베이스를 이용하여 비밀번호를 알아낼 수 있다. 흔한 비밀번호 목록은 널리 유통되며, 해시 계산에 시간이 오래 걸리지 않으면 가능한 모든 조합을 테스트할 수 있다.[17] 암호화 솔트를 사용하면 레인보우 테이블과 같이 해시 값을 미리 계산하는 파일 구축을 방지할 수 있다. 그러나 고급 그래픽 처리 장치를 사용하면 초당 약 1,000억 번의 테스트를 수행할 수 있어, 솔트를 사용하더라도 직접적인 공격이 가능하다.[18][19]

무차별 대입 공격 속도를 늦추기 위해 만들어진 키 파생 함수(KDF)를 사용하여 비밀번호를 저장하는 것이 권장된다.[20] 느린 해시에는 pbkdf2, bcrypt, scrypt, argon2 등이 있다. 실행 속도를 늦추기 위해 여러 해시를 수행하는 KDF의 경우, 10,000회 이상의 반복 횟수가 권장된다.[20]

참조

[1] 웹사이트 Cryptanalysis of MD5 and SHA: Time for a New Standard https://www.schneier[...] 2016-04-20
[2] 웹사이트 Flickr's API Signature Forgery Vulnerability http://vnhacker.blog[...] 2012-12-07
[3] 간행물 Use MD5 hashes to verify software downloads http://www.techrepub[...] 2007-12-05
[4] 논문 Design Principles for Iterated Hash Functions https://eprint.iacr.[...] 2004
[5] 간행물 A Framework for Iterative Hash Functions – HAIFA https://eprint.iacr.[...] 2006-08-24
[6] 보고서 Security Evaluation of SHA-224, SHA-512/224, and SHA-512/256 http://www.cryptrec.[...] 2015-02
[7] 웹사이트 More Problems with Hash Functions http://article.gmane[...] 2016-05-25
[8] 웹사이트 Status Report on the First Round of the SHA-3 Cryptographic Hash Algorithm Competition https://nvlpubs.nist[...] 2018-06-05
[9] 웹사이트 Collisions for Hash Functions MD4, MD5, HAVAL-128, and RIPEMD https://eprint.iacr.[...] 2004-12-20
[10] 서적 Cryptographic Hash Function IGI Global 2015
[11] 웹사이트 Finding Collisions in the Full SHA-1 http://people.csail.[...] 2017-07-15
[12] 웹사이트 Cryptanalysis of SHA-1 http://www.schneier.[...] 2005-02-18
[13] 뉴스 Google Just 'Shattered' An Old Crypto Algorithm – Here's Why That's Big For Web Security https://www.forbes.c[...] 2017-02-24
[14] 웹사이트 Randomized Hashing and Digital Signatures http://webee.technio[...]
[15] 웹사이트 MD5 considered harmful today: Creating a rogue CA certificate http://www.win.tue.n[...] Department of Mathematics and Computer Science of Eindhoven University of Technology 2009-03-29
[16] 뉴스 The 15 biggest data breaches of the 21st century https://www.csoonlin[...] CSO Magazine 2020-11-25
[17] 웹사이트 25-GPU cluster cracks every standard Windows password in <6 hours https://arstechnica.[...] Ars Technica 2020-11-23
[18] 웹사이트 Use an 8-char Windows NTLM password? Don't. Every single one can be cracked in under 2.5hrs https://www.theregis[...] 2020-11-26
[19] 웹사이트 Mind-blowing development in GPU performance https://improsec.com[...] Improsec 2020-01-03
[20] 서적 SP 800-63B-3 – Digital Identity Guidelines, Authentication and Lifecycle Management NIST 2017-06
[21] 문서 0, 1, 00, 01, 10, 11, ... のようにして、1ビットずつメッセージの長さを伸ばしながら辞書順で探索するなどすればよい。強衝突耐性については探索に必要な時間に上界があることが[[鳩の巣原理]]によって言えるが、原像計算困難性については言えない。
[22] 문서 ''h'' が誕生日に相当する。誕生日のパラドックスにあっても、重複する誕生日は任意に選んで構わない。
[23] 문서 証明は自明である。連結されたハッシュ関数での衝突を探すアルゴリズムは、明らかに個々の関数での衝突も見つけることができる。
[24] 문서 さらに一般には、1つのハッシュ関数の「内部状態」での衝突を見つけられれば、全体への攻撃は単に個々の関数への[[誕生日攻撃]]と同程度の難しさでしかない。
[25] PDF 全文 https://link.springe[...] LNCS 2004
[26] Wayback More problems with hash functions http://article.gmane[...] 20160409095104
[27] 웹사이트 MD5 considered harmful today: Creating a rogue CA certificate http://www.win.tue.n[...] 2009-03-29
[28] 웹사이트 Finding Collisions in the Full SHA-1 http://people.csail.[...] 2023-09-02
[29] 웹사이트 Cryptanalysis of SHA-1 http://www.schneier.[...] 2023-09-02
[30] 웹사이트 Differential Path for SHA-1 with complexity O(252) https://eprint.iacr.[...]
[31] Wayback Update on Randomized Hashing http://csrc.nist.gov[...] 20080917181920
[32] Wayback Randomized Hashing and Digital Signatures http://www.ee.techni[...] 20061114153938
[33] Wayback CRYPTOGRAPHIC HASH ALGORITHM COMPETITION] NIST.gov - Computer Security Division - Computer Security Resource Center http://csrc.nist.gov[...] 20170910142727
[34] 논문 New message difference for MD4 http://www.iacr.org/[...]
[35] Wayback Cryptographic Algorithms and Protocols for Network Security http://www.nis-summe[...] 20090319174448
[36] 서적 Handbook of Applied Cryptography
[37] 웹인용 Vulnerability Note VU#836068: MD5 vulnerable to collision attacks http://www.kb.cert.o[...]
[38] 간행물 NIST Brief Comments on Recent Cryptanalytic Attacks on Secure Hashing Functions and the Continued Security Provided by SHA-1 https://web.archive.[...] 2012-08-11
[39] 웹인용 Tentative Timeline of the Development of New Hash Functions http://csrc.nist.gov[...] 2012-08-12
[40] 문서 Merkle-Damgård 방식에서 각 라운드 시 생성되는 내부 해시의 크기.
[41] 문서 라운드 수가 표시되지 않은 경우 전체 라운드에 대한 공격을 의미한다.



본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.

문의하기 : help@durumis.com