반응형
해시에 대한 마지막 글이다.
해시 - 보안
해시는 아래 이유들로 보안 분야에서도 널리 사용된다.
- 해시 함수가 원래의 문장을 복호화할 수 없게 뭉개버린다.
- 원문과 해시값 사이에 선형적 관계가 없다.
- 해시 함수의 결과물은 고정된 길이의 숫자이므로, 원래의 정보는 손실된다.
- 하나의 원 데이터는 하나의 해시 값만 가지지만,
하나의 해시 값을 만들어낼 수 있는 원본 데이터는 매우 많다. - 4번의 이유 때문에 해시 값만 가지고는
이미 뭉개진 원문을 복원해내는 것은 불가능하다.
위와 같은 이유들로,
비밀번호, 전자서명, 전자투표, 전자상거래와 같은
민감한 입력의 무결성을 검증할 때 사용된다.
따라서, 어떤 해시 함수에서 해시 충돌이 일어나기 쉽다는 것은
데이터의 무결성과 직접적인 연관이 있기 때문에
보안 분야에서는 매우 민감한 문제이다.
해시 - SHA 알고리즘
현재까지 개발된 거의 모든 해시 함수는
해시 충돌의 문제가 확인된 상태이다.
SHA-1과,
SHA-1에서 길이만 늘어났을 뿐 알고리즘은 SHA-1과 똑같은
SHA-256, SHA-512는 해시 충돌의 가능성이
이론적으로 제시되었다.
2014년 기준,
문제가 없는 해시 표준으로는 SHA-3가 유일하다.
다만, 여기서 '이론적으로 제시되었다'는 것은
'지구 전체의 연산 처리 능력'을 기준으로
계산적 가능성을 따지는 것이다.
순수한 무차별 대입(Brute Force)보다
몇 천배 정도 적은 계산 횟수로 복호화할 수 있으면
학계에서는 대체로 "암호를 깼다"라고 취급한다.
그런데 SHA-1 해시를 무차별 대입으로 깨려면
2^160번의 계산을 해야 하는데,
여기서 1,000배 빨라졌다고 해 봤자
2^150번의 계산이 필요하다.
즉, 현실적인 의미로는,
SHA-1이나 SHA-2족의 해시가 불안하다고 여기기엔 다소 무리가 있다.
그러나 최근 가상화폐 채굴기의 성능이 그래픽카드보다 몇 만배 빨라지면서,
해시 함수의 보안력이 급격히 떨어졌다고 한다.
끝!
반응형
'Study > Data Structure' 카테고리의 다른 글
[자료구조] 해시(Hash)란? - (2) 해시 테이블에서 충돌 처리 방식 (0) | 2021.03.14 |
---|---|
[자료구조] 해시(Hash)란? - (1) 개념, 충돌, 예시, 알고리즘 (0) | 2021.03.14 |