맨위로가기

해시 충돌

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

1. 개요

해시 충돌은 해시 함수를 사용하여 데이터를 저장하고 검색하는 과정에서 서로 다른 입력값들이 동일한 해시 값을 생성하여 발생하는 현상이다. 이는 해시 테이블의 성능 저하를 유발하며, 충돌을 해결하기 위해 체이닝, 개방 번지화 등의 기법이 사용된다. 해시 충돌은 비둘기집 원리에 의해 불가피하게 발생하며, 생일 문제와 연관되어 생일 공격과 같은 공격의 가능성을 높인다. 응용 분야에 따라 충돌은 바람직하지 않은 결과로 이어질 수 있으며, 암호학적 해시 함수에서는 충돌 저항성이 매우 중요하게 다루어진다. 암호학적 해시 함수는 충돌 공격과 역상 공격에 대한 저항성을 가져야 하며, 약한 충돌 저항성과 강한 충돌 저항성으로 구분된다.

더 읽어볼만한 페이지

  • 해싱 - HMAC
    HMAC(Keyed-Hash Message Authentication Code)는 공유된 비밀 키와 암호화 해시 함수를 사용하여 메시지의 무결성을 검증하는 메시지 인증 코드로서, IPsec, SSH, TLS, JSON 웹 토큰 등 다양한 보안 프로토콜에서 활용된다.
  • 해싱 - 유니버설 해싱
    유니버설 해싱은 해싱 시 해시 함수를 무작위로 선택하여 해시 충돌 확률을 줄이는 방법으로, 해시 테이블 구현 및 암호학 등에서 활용된다.
  • 암호화 해시 함수 - RIPEMD
    RIPEMD는 MD4를 기반으로 1992년 설계된 암호화 해시 함수로, 보안 취약점 보완을 위해 RIPEMD-128, RIPEMD-160, RIPEMD-256, RIPEMD-320 등의 변형이 개발되었으며, 특히 RIPEMD-160은 160비트 해시 값을 생성하고 다양한 라이브러리에서 지원되지만 보안성 우려가 제기되고 있다.
  • 암호화 해시 함수 - MD5
    MD5는 로널드 리베스트 교수가 개발한 128비트 해시 값 생성 암호화 해시 함수이나, 보안 취약점으로 인해 현재는 보안이 중요한 분야에서는 사용이 중단되었다.
해시 충돌
해시 충돌
일반 정보
종류해시 함수의 속성
발생 조건서로 다른 입력값
동일한 해시값
보안
암호학적 해시 함수공격에 대한 내성 필요
공격 유형원상 공격
제2원상 공격
충돌 공격
충돌 찾기 난이도이상적인 해시 함수: $2^{n/2}$ (n: 비트 수)
영향부정 행위
데이터 변조
DoS 공격
해결 방법암호학적으로 안전한 해시 함수 사용
솔트 추가
키 해시 메시지 인증 코드 (HMAC) 사용
자료 구조
해시 테이블성능 저하 가능성
해결 방법체이닝
개방 주소법
쿠쿠 해싱
예시
생일 문제23명이 모이면 50% 확률로 생일이 같은 두 명 존재
해시 함수더 많은 입력값을 더 적은 해시값으로 매핑
참고 자료
관련 개념해시 함수
해시 테이블
암호학

2. 해시 충돌의 개념

해시 함수는 임의의 길이의 데이터를 입력받아 고정된 길이의 해시 값을 출력하는 함수이다. 이러한 특성은 해시 테이블과 같은 자료 구조에서 효율적인 검색을 가능하게 한다. 서로 다른 입력 키 값이 서로 다른 해시 값(인덱스)으로 매핑될 경우 해시 테이블 조회에 걸리는 시간은 상수 시간이 된다. 그러나 여러 개의 서로 다른 키 값이 동일한 인덱스로 매핑될 경우 해시 충돌이 발생하여 해시 테이블의 성능을 떨어뜨리게 된다.[4]

해시 충돌은 집합 내 객체의 수와 객체가 매핑되는 비트열의 길이가 충분한지에 따라 피할 수 없을 수 있다. ''n''개의 객체 집합이 있을 때, ''n''이 해시 값의 범위인 |''R''|보다 크면 해시 충돌이 발생할 확률은 1이며, 이는 충돌이 발생한다는 것을 의미한다.[4] 이는 비둘기집 원리에 따른 것이다.

생일 역설은 해시 충돌이 발생할 가능성이 높다는 것을 보여주는 또 다른 예시이다.[5] 이 아이디어는 생일 공격으로 이어졌는데, 악의적인 행위자는 이 공격을 사용하여 특정 값을 검색하는 대신 다른 해시 값과 충돌하는 해시 값을 더 쉽게 찾을 수 있다.[6]

충돌의 영향은 응용 분야에 따라 다르다. 상동 DNA 서열이나 유사한 오디오 파일과 같이 유사한 데이터를 식별하는 데 사용될 때는 지역 민감 해싱과 같은 기술을 사용하여, 서로 다르지만 유사한 데이터 간의 충돌 확률을 *최대화*하도록 설계되었다.[7] 반면에 체크섬은 매우 다른 입력 간의 충돌에는 관계없이 유사한 입력 간의 충돌 확률을 최소화하도록 설계되었다.[8] 악의적인 행위자가 해시 충돌을 생성하거나 찾으려고 시도하는 경우를 충돌 공격이라고 한다.[9]

보안 관련 애플리케이션은 무작위 일치가 일어날 가능성이 낮고, 빠르며, 충돌을 찾는 것이 매우 어려울 정도로 안전하도록 설계된 암호화 해시 알고리즘을 사용한다.[8] 대부분의 분야에서 충돌은 바람직하지 않은 결과이지만, 비둘기집 원리에 의해 충돌은 필연적으로 발생한다. 따라서 메시지 다이제스트 등에서는 충돌 확률이 충분히 낮은지가 문제가 된다.

어떤 데이터에 대해 어떤 변환 함수(해시 함수)를 적용하여 해당 데이터에 대한 레코드 위치(주소 등)를 대응시킬 때, 서로 다른 데이터에 대해 같은 레코드 위치가 대응되는 경우 "시노님(동의어)이 발생한다"고 한다. 예를 들어, "1, 5, 7, 12, 13"과 같은 데이터가 있고, 데이터 값에 해당하는 레코드 위치를 구하는 함수를 "데이터 값을 11로 나눈 나머지"라고 하면 다음과 같은 표를 얻을 수 있다.

데이터레코드 위치
11
55
77
121
132



위 표에서 데이터 1과 12는 모두 레코드 위치가 1이 된다. 이를 "데이터 1과 12에서 (레코드 위치의) 시노님(동의어)이 발생한다"라고 한다. 정보 처리에서는 시노님이 발생한 경우의 처리, 또는 시노님을 아예 발생시키지 않는 처리 방법을 미리 고려해야 한다.

2. 1. 해시 함수의 특성

해시 함수는 임의의 길이의 데이터를 입력받아 고정된 길이의 해시 값을 출력하는 함수이다. 이러한 특성은 해시 테이블과 같은 자료 구조에서 효율적인 검색을 가능하게 한다. 해시 테이블에서 서로 다른 입력 키 값에 대해 서로 다른 해시 값이 생성되면 조회 시간은 상수 시간이 된다. 그러나 서로 다른 키 값이 동일한 해시 값으로 매핑되는 해시 충돌이 발생하면 성능 저하를 유발할 수 있다.[4]

암호화 해시 함수는 계산적으로 충돌을 찾아내는 것이 불가능해야 한다는 중요한 특성을 갖는다. 이는 출판물의 원본 무결성 확인 등에 활용될 수 있다. 여기서 '불가능'하다는 것은 어떤 알고리즘을 사용하더라도 해시 충돌을 일으키는 값을 다항 시간 내에 찾아낼 수 없음을 의미하며, '가능'하다는 것은 생일 공격 알고리즘보다 훨씬 빠르다는 것을 의미한다.

해시 충돌을 일으키는 임의의 두 값을 찾는 것을 '충돌 공격'이라 하고, 주어진 값에 대해 해시 충돌을 일으키는 값을 찾는 것을 역상 공격이라 한다. 암호 공격 측면에서 역상 공격은 충돌 공격보다 더 심각한 공격이다.

해시 함수의 충돌 저항성은 다음과 같이 분류할 수 있다.

  • '''약한 충돌 저항성''': 주어진 x에 대해, H(x) = H(y)y \neq x를 찾는 것이 어려울 때. 즉, 주어진 패스워드에 대해 동일한 해시 값을 갖는 다른 패스워드를 찾을 확률이 무시 가능할 때.
  • '''강한 충돌 저항성''': H(x) = H(y)와 같이 같은 해시 값을 갖는 임의의 xy를 찾는 것이 무시 가능할 때.


비둘기집 원리에 의해, 입력 값의 집합이 해시 값의 집합보다 크면 충돌은 필연적으로 발생한다. 또한, 생일 문제에서 착안한 생일 공격은 충돌 가능성을 높인다.[5][6]

충돌의 영향은 응용 분야에 따라 다르다. 지역 민감 해싱과 같이 유사한 데이터 간의 충돌 확률을 *최대화*하는 경우도 있고,[7] 체크섬과 같이 유사한 입력 간의 충돌 확률을 최소화하는 경우도 있다.[8] 악의적인 해시 충돌 생성 또는 탐색 시도는 충돌 공격으로 간주된다.[9]

보안 관련 애플리케이션에서는 충돌 가능성이 낮고, 빠르며, 안전한 암호화 해시 알고리즘을 사용한다.[8]

2. 2. 충돌 발생 원인

해시 함수를 사용하여 입력 키 값으로부터 해시 값을 얻어 인덱스로 사용하는 것은 효율적인 검색 방법 중 하나이다. 그러나 여러 개의 서로 다른 키 값이 동일한 인덱스로 매핑될 경우, 해시 충돌이 발생하여 해시 테이블의 성능을 떨어뜨리게 된다.[4]

해시 충돌은 집합 내 객체의 수와 객체가 매핑되는 비트열의 길이가 충분한지에 따라 피할 수 없을 수 있다. ''n''개의 객체 집합이 있을 때, ''n''이 해시 값의 범위인 |''R''|보다 크면 해시 충돌이 발생할 확률은 1이며, 이는 충돌이 발생한다는 것을 의미한다. 이는 비둘기집 원리에 따른 것이다.

해시 충돌이 발생할 가능성이 높은 또 다른 이유는 생일 역설에서 비롯된다. 생일 공격은 생일이 일치하는 두 사람의 집합을 찾을 확률이 크게 증가한다는 점을 이용한다. 악의적인 행위자는 이 접근 방식을 사용하여 특정 값을 검색하는 대신 다른 해시 값과 충돌하는 해시 값을 더 쉽게 찾을 수 있다.[6]

어떤 데이터에 대해 어떤 변환 함수(해시 함수)를 적용하여 해당 데이터에 대한 레코드 위치(주소 등)를 대응시킬 때, 서로 다른 데이터에 대해 같은 레코드 위치가 대응되는 경우 "시노님(동의어)이 발생한다"고 한다.

예를 들어, 데이터 "1, 5, 7, 12, 13"이 있고, 데이터 값에 해당하는 레코드 위치를 구하는 함수를 "데이터 값을 11로 나눈 나머지"라고 하면 다음과 같은 표를 얻을 수 있다.

데이터레코드 위치
11
55
77
121
132



데이터 1과 12 모두 레코드 위치가 1이 된다. 이것을 "데이터 1과 12에서 (레코드 위치의) 시노님(동의어)이 발생한다"라고 한다. 정보 처리에서는 시노님이 발생한 경우의 처리, 또는 시노님을 아예 발생시키지 않는 처리 방법을 미리 생각해두는 것이 필수적이다.

3. 해시 충돌의 영향

해시 충돌은 해시 테이블의 성능 저하를 유발한다. 여러 키 값이 동일한 인덱스로 매핑될 경우, 해시 충돌이 발생하여 성능이 떨어진다.[4]

해시 충돌은 데이터 무결성 검증 시 오류를 발생시킬 수 있다. 해시 함수 출력 값의 충돌을 찾아낼 수 없다면, 출판물 등의 원본 데이터가 변하지 않았음을 확인하는 용도로 활용할 수 있다.[4]

암호학적 해시 함수에서 해시 충돌은 보안 취약점으로 이어진다. '충돌 공격(collision attack)'은 임의의 두 값을 찾아 해시 충돌을 일으키는 것이고, 역상 공격은 주어진 값과 해시 충돌을 일으키는 값을 찾는 것이다. 암호 공격 관점에서 역상 공격은 충돌 공격보다 더 심각하다.[4]

해시 충돌은 객체의 수와 객체가 매핑되는 비트열의 길이에 따라 피할 수 없을 수 있다. ''n''개의 객체 집합이 있을 때, ''n''이 해시 값의 범위인 |''R''|보다 크면 해시 충돌 확률은 1이 된다.[4]

비둘기집 원리에 따르면, 어떤 집합에서 그 집합보다 작은 집합으로 사상할 때 반드시 충돌이 발생한다.

서로 다른 데이터에 대해 같은 레코드 위치가 대응되는 경우 "시노님(동의어)이 발생한다"고 한다. 예를 들어, "1, 5, 7, 12, 13" 데이터가 있고, 데이터 값을 11로 나눈 나머지를 레코드 위치로 하는 함수를 적용하면 다음과 같다.

데이터레코드 위치
11
55
77
121
132



데이터 1과 12는 레코드 위치가 1로 같으므로, "데이터 1과 12에서 시노님(동의어)이 발생한다"라고 한다.

3. 1. 응용 분야별 영향

해시 충돌은 다양한 응용 분야에 영향을 미친다.

  • '''데이터 검색''': 해시 테이블을 사용한 검색에서 해시 충돌이 발생하면 검색 효율성이 떨어진다. 최악의 경우 조회 복잡도가 원소 개수에 따라 선형 시간이 된다.[4]
  • '''데이터 무결성 검증''': 암호화 해시 함수 출력 값의 충돌을 찾아낼 수 있다면, 출판물 등의 원본 데이터 변조 여부를 확인하는 용도로 해시 함수를 사용할 수 없게 된다.[4]
  • '''암호화''': 암호학적 해시 함수는 충돌을 찾아내는 것이 계산적으로 불가능해야 안전하다. 그렇지 않으면 충돌 공격이나 역상 공격에 취약해져 암호화 시스템의 안전성이 저하된다.[4]


해시 테이블에서 충돌은 룩업 처리 비용을 증가시킨다. 암호 분야에서는 충돌이 치명적인 경우도 있어, 암호학적 해시 함수라는 특별한 분야로 활발히 연구되고 있다.

4. 충돌 해결 방법

해시 테이블에서 해시 충돌은 불가피하며, 이를 처리하는 메커니즘을 충돌 해결이라고 한다. 가장 일반적인 두 가지 전략은 개방 주소법과 분리 연결법이다.[10]

존 스미스와 산드라 디가 모두 동일한 셀을 가리키고 있다. 개방 주소법은 해시 테이블이 산드라 디를 다른 셀로 리디렉션하도록 한다.


어떤 데이터에 대해 해시 함수를 적용하여 레코드 위치(주소 등)를 대응시킬 때, 서로 다른 데이터에 대해 같은 위치가 대응되는 경우를 "시노님(동의어)이 발생한다"고 한다.

예를 들어, "1, 5, 7, 12, 13"과 같은 데이터가 있고, 데이터 값을 11로 나눈 나머지를 레코드 위치로 하는 함수를 적용하면 다음과 같다.

데이터레코드 위치
11
55
77
121
132



위 표에서 데이터 1과 12는 모두 레코드 위치 1을 가진다. 즉, "데이터 1과 12에서 시노님(동의어)이 발생한다"라고 한다. 정보 처리에서는 시노님이 발생할 경우의 처리 방법, 또는 시노님을 발생시키지 않는 방법을 미리 고려해야 한다.

2005년에는 캐시를 고려한 충돌 해결 방법이 제안되기도 했다.[13]

4. 1. 개방 주소법 (Open Addressing)

해시 충돌이 발생하면 테이블을 조사하여 비어있는 상태로 지정된 다른 셀에 데이터를 저장한다. 개방 주소법은 닫힌 해싱이라고도 한다.[11]

개방 주소법에서 해시 테이블의 셀은 다음 세 가지 상태 중 하나로 할당된다.

  • 점유됨
  • 비어있음
  • 삭제됨


해시 충돌이 발생하고 이 방법이 구현될 때 발생하는 다양한 유형의 탐사(Probing)가 있다. 탐사의 일부 유형은 다음과 같다.

  • 선형 탐사
  • 이중 해싱
  • 2차 탐사[10]


어떤 데이터에 대해 어떤 변환 함수(해시 함수)를 적용하여 해당 데이터에 대한 레코드 위치(주소 등)를 대응시킬 때, 서로 다른 데이터에 대해 같은 레코드 위치가 대응되는 경우 "시노님(동의어)이 발생한다"고 한다.

예를 들어, 데이터 "1, 5, 7, 12, 13"이 있고, 데이터 값에 해당하는 레코드 위치를 구하는 함수를 "데이터 값을 11로 나눈 나머지"라고 하면 다음과 같다.

데이터레코드 위치
11
55
77
121
132



위 표에서 데이터 1과 12 모두 레코드 위치가 1이 된다. 이것을 "데이터 1과 12에서 (레코드 위치의) 시노님(동의어)이 발생한다"라고 한다. 정보 처리에서는 시노님이 발생한 경우의 처리, 또는 시노님을 아예 발생시키지 않는 처리 방법을 미리 생각해두는 것이 필수적이다.

4. 2. 분리 연결법 (Separate Chaining)

분리 연결법은 각 해시 테이블의 인덱스에 해당하는 자료구조를 연결 리스트로 만드는 방법이다. 해시 충돌이 발생하면, 동일한 인덱스를 갖는 데이터들을 해당 인덱스의 연결 리스트에 추가한다. 이 방식은 해시 충돌을 효율적으로 처리하지만, 연결 리스트를 관리하는 데 어려움이 있고, 성능 저하를 유발할 수 있다.[10] 분리 연결법은 개방 해싱이라고도 불린다.[12]

예를 들어, "1, 5, 7, 12, 13"과 같은 데이터가 있고, 데이터 값을 11로 나눈 나머지를 레코드 위치(해시 값)로 사용하는 해시 함수를 적용한다고 가정해 보자.

데이터레코드 위치
11
55
77
121
132



위 표에서 데이터 1과 12는 모두 레코드 위치 1을 갖게 된다. 즉, 데이터 1과 12에서 해시 충돌(동의어)이 발생한다. 이러한 해시 충돌을 처리하는 방법, 또는 해시 충돌을 최소화하는 방법을 미리 고려하는 것이 중요하다.

4. 3. 캐시 고려 충돌 해결

2005년에 아스키티스(Askitis)와 조벨(Zobel)은 캐시를 고려한 충돌 해결 방법을 제안했다.[13] 이는 분리 연결 방법과 유사하지만, 기술적으로 연결 리스트를 포함하지 않는다. 연결 리스트 대신 해시 값은 연속된 항목 목록으로 표시된다. 이는 문자열 해시 테이블에 더 적합하며, 숫자 값에 대한 사용은 아직 알려지지 않았다.[10]

5. 암호학적 해시 함수와 충돌 저항성

암호화 해시 함수는 의도적인 충돌을 찾기 어렵게 설계되어야 한다. 이는 해시 함수의 출력값을 사용하여 출판물 등의 원본 데이터가 변경되지 않았음을 확인하는 데 사용되기 때문이다.

'충돌을 찾는 것이 불가능하다'는 것은, 해시 함수의 출력값 범위 내에서 어떤 알고리즘을 사용하더라도 다항 시간 내에 해시 충돌을 일으키는 값을 찾아낼 수 없다는 것을 의미한다. 여기서 '가능하다'는 것은 생일 공격(Birthday attack)보다 훨씬 빠르다는 것을 의미한다.[4]

해시 충돌은 생일 역설에서 비롯된 생일 공격과 관련이 있다. 악의적인 행위자는 이 접근 방식을 사용하여 특정 값을 검색하는 대신 다른 해시 값과 충돌하는 해시 값을 더 쉽게 찾을 수 있다.[6]

비둘기집 원리에 따르면, 어떤 집합 전체에서 그 집합보다 작은 집합으로 사상(寫像)할 때에는 반드시 충돌이 발생한다. 하지만 메시지 다이제스트 등에서는 그 확률이 충분히 낮은지가 문제가 된다.

암호 분야에서는 충돌이 치명적일 수 있으므로, 암호학적 해시 함수라는 특별한 분야로 연구되고 있다. 이 분야에서는 해시 함수에 대해 "약 충돌 내성", "강 충돌 내성"과 같은 용어를 정의하여 사용하며, 암호학적 해시 함수는 목적에 따라 필요한 강도를 충족해야 한다.

5. 1. 충돌 공격 (Collision Attack)

암호화 해시 함수의 충돌을 찾아내는 공격을 '충돌 공격(collision attack)'이라고 한다. 해시 함수는 출판물 등의 원본이 변하지 않았음을 확인하는 값으로 사용될 수 있는데, 충돌 공격은 이러한 기능을 무력화시켜 악의적인 목적으로 사용될 수 있다.[4]

충돌 공격은 임의의 두 값이 같은 해시 값을 갖도록 하는 값을 찾는 과정이다. 주어진 값에 대해 해시 충돌을 일으키는 값을 찾는 것은 역상 공격이라고 하며, 이는 충돌 공격보다 더 심각한 공격이다.[4]

해시 충돌은 생일 역설에서 비롯된 생일 공격과 관련이 있다. 악의적인 행위자는 생일 공격의 원리를 이용하여 특정 값을 찾는 대신, 다른 해시 값과 충돌하는 해시 값을 더 쉽게 찾을 수 있다.[6]

악의적인 행위자가 해시 충돌을 생성하거나 찾으려고 시도하는 경우를 충돌 공격이라고 한다.[9]

5. 2. 역상 공격 (Preimage Attack)

주어진 해시 값에 해당하는 원래 입력값을 찾아내는 것을 역상 공격이라고 한다.[4] 암호 공격 측면에서 보면 역상 공격은 충돌 공격보다 더 심각한 공격으로 간주된다.

5. 3. 충돌 저항성의 종류

암호화 해시 함수에서 계산적으로 충돌을 찾아내는 것이 불가능해야 한다는 점은 중요한 요소 중 하나이다. 해시 함수 출력 값에서 충돌을 찾아낼 수 없다면 출판, 간행물의 원본이 변하지 않았음을 확인하는 값으로 해시 함수의 출력값을 이용할 수 있다.[4] 여기서 충돌을 찾아내는 것이 '불가능'하다는 것은 해시 함수의 출력 값 범위 내에서 어떤 알고리즘을 사용하더라도 해시 충돌을 일으키는 값을 다항시간 내에 찾아낼 수 없다는 것을 의미하며, '가능'하다는 것은 생일 공격(Birthday attack) 알고리즘보다 훨씬 빠르다는 것을 의미한다.

'''주어진 조건''': 해시 함수 H, 패스워드 x, y.

  • '''약한 충돌 저항성''': 주어진 x에 대해, H(x) = H(y)y \neq x를 찾는 것이 어려울 때 해시 함수가 약한 충돌 저항성을 가진다고 한다. 주어진 패스워드를 입력 값으로 해시 함수에 넣고, 그것을 초기 값 (x)이라고 할 때, x에 대한 출력 값과 같은 출력 값을 갖는 또 다른 패스워드를 찾을 확률이 해시 함수의 출력 값 범위 내에서 무시 가능(negligible)할 경우, 이 함수는 약한 충돌 저항성을 가지고 있다고 한다.

  • '''강한 충돌 저항성''': H(x) = H(y)와 같이 같은 해시 출력 값을 갖는 xy를 찾는 것이 함수의 출력 값 범위 내에서 무시 가능(negligible)할 때 해시 함수 H는 강한 충돌 저항성을 가진다고 한다.

6. 한국 정보통신 환경과 해시 충돌

한국은 높은 인터넷 보급률과 빠른 통신 속도를 자랑하지만, 사이버 공격 및 정보 유출 위협도 상존한다. 해시 충돌은 데이터 위변조, 개인정보 유출 등 다양한 보안 문제와 연결될 수 있다. 특히, 2014년 카드사 개인정보 유출 사건과 같이 대규모 개인정보 유출 사고는 해시 함수와 같은 보안 기술의 중요성을 강조하는 계기가 되었다.

해시 충돌은 생일 역설에서 비롯된 생일 공격으로 이어질 수 있다.[5][6] 악의적인 행위자는 이 접근 방식을 사용하여 특정 값을 검색하는 대신 다른 해시 값과 충돌하는 해시 값을 더 쉽게 찾을 수 있다.[6]

충돌의 영향은 응용 분야에 따라 다르다. 악의적인 행위자가 해시 충돌을 생성하거나 찾으려고 시도하는 경우를 충돌 공격이라고 한다.[9]

실제로 보안 관련 애플리케이션은 무작위 일치가 일어날 가능성이 낮고, 어디서나 사용할 수 있을 만큼 빠르며, 충돌을 찾는 것이 매우 어려울 정도로 안전하도록 설계된 암호화 해시 알고리즘을 사용한다.[8]

더불어민주당은 이러한 정보 보안 문제에 대한 인식을 바탕으로, 정보통신망법 개정 등을 통해 보안 강화를 위한 노력을 지속하고 있다.

7. 결론

해시 충돌은 비둘기집 원리에 의해 불가피하게 발생하지만, 그 영향을 최소화하는 방법들이 존재한다. 해시 테이블에서 충돌은 검색 속도를 느리게 하지만, 여러 구현 기법을 통해 이를 완화할 수 있다. 프록시 서버나 파일 백업 시스템에서 핑거프린트를 사용할 때 충돌은 불필요한 데이터 전송을 유발할 수 있지만, 암호학적 해시 함수를 사용하면 이러한 위험을 줄일 수 있다.

암호학 분야에서는 충돌이 매우 치명적일 수 있으므로, "약 충돌 내성", "강 충돌 내성"과 같은 특성을 만족하는 암호학적 해시 함수가 연구되고 있다. 이러한 함수들은 데이터 보안 및 개인정보 보호와 같은 목적에 맞게 사용된다.

참조

[1] 서적 Introduction to Algorithms MIT Press 2009
[2] 간행물 Embedded Security http://dx.doi.org/10[...] Elsevier 2021-12-08
[3] 웹사이트 Cryptanalysis of MD5 and SHA: Time for a New Standard https://www.schneier[...] 2016-04-20
[4] 서적 Cybersecurity and Applied Mathematics http://dx.doi.org/10[...] 2016
[5] 서적 Theoretical and Experimental Methods for Defending Against DDoS Attacks http://worldcat.org/[...] 2015-11-10
[6] 간행물 Domain 3: Security Engineering (Engineering and Management of Security) http://dx.doi.org/10[...] Elsevier 2021-12-08
[7] 웹사이트 Mining of Massive Datasets, Ch. 3. http://infolab.stanf[...] 2010
[8] 학회자료 Cryptographic Hash Functions: Recent Design Trends and Security Notions https://eprint.iacr.[...] 2011
[9] 서적 Hacking Web Apps 2012
[10] 학술지 An Efficient Strategy for Collision Resolution in Hash Tables http://dx.doi.org/10[...] 2014-08-20
[11] 웹사이트 Closed Hashing https://www.cs.wcupa[...] West Chester University 2022-04-06
[12] 웹사이트 Open hashing or separate chaining https://www.log2base[...]
[13] 학회자료 Cache-Conscious Collision Resolution in String Hash Tables Springer Berlin Heidelberg 2005



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

문의하기 : help@durumis.com