SHA (보안 해시 알고리즘)
용어심층Secure Hash Algorithm · 보안 해시 알고리즘
SHA는 미국 국가안보국(NSA)이 설계하고 미국 국립표준기술연구소(NIST)가 표준으로 채택한 암호학적 해시 함수 계열로, 임의 길이의 입력을 정해진 길이의 값으로 바꾸어 데이터 무결성 검증과 블록체인의 기반 기술로 널리 쓰인다.
1.개요
SHA는 'Secure Hash Algorithm(보안 해시 알고리즘)'의 약자로, 미국 국가안보국(NSA)이 설계하고 미국 국립표준기술연구소(NIST)가 표준으로 채택한 암호학적 해시 함수 계열이다. 해시 함수란 길이에 상관없는 입력 데이터를 받아 항상 정해진 길이의 짧은 값(해시값 또는 다이제스트)으로 바꾸어 주는 함수를 말한다. 예를 들어 SHA-256은 어떤 입력이든 256비트(64자리 16진수)의 값으로 변환한다.
SHA는 파일이 위·변조되지 않았음을 확인하는 무결성 검증, 비밀번호 보관, 전자서명 등 정보 보안 전반의 기반 기술이며, 비트코인을 비롯한 여러 블록체인의 핵심 부품이기도 하다. 중요한 것은 SHA가 하나의 알고리즘이 아니라 SHA-1, SHA-2, SHA-3로 이어지는 여러 세대의 알고리즘 묶음을 가리킨다는 점이다. 이 문서를 찾는 사람들이 흔히 말하는 'SHA-256'은 그중 오늘날 가장 널리 쓰이는 SHA-2 계열의 한 종류다.
2.암호학적 해시 함수의 성질
암호학적 해시 함수는 단순히 값을 줄이는 것을 넘어 보안에 쓸 수 있도록 다음과 같은 성질을 갖추어야 한다.
- 결정성: 같은 입력은 언제나 같은 해시값을 낸다.
- 고정 길이 출력: 입력이 한 글자든 수 기가바이트든 결과는 항상 정해진 길이(SHA-256은 256비트)다.
- 일방향성(역상 저항성): 해시값만 보고 원래 입력을 되돌려 알아내는 것은 사실상 불가능하다.
- 제2역상 저항성: 어떤 입력이 주어졌을 때, 그것과 같은 해시값을 내는 다른 입력을 찾기가 매우 어렵다.
- 충돌 저항성: 서로 다른 두 입력이 우연히 같은 해시값을 갖는 경우(충돌)를 찾기가 매우 어렵다.
- 눈사태 효과: 입력이 단 한 글자(한 비트)만 달라져도 해시값 전체가 전혀 다르게 바뀐다.
이런 성질 덕분에 SHA는 데이터가 위·변조되지 않았음을 확인하는 무결성 검증의 핵심 도구가 된다. 앞의 세 가지 저항성 중 하나라도 현실적으로 깨지면 그 해시 함수는 보안 용도에서 폐기 대상이 되는데, 실제로 SHA-1이 그 길을 걸었다.
3.세대: SHA-0에서 SHA-3까지
SHA 계열은 여러 세대를 거치며 발전해 왔다.
3.1.SHA-0와 SHA-1
최초의 SHA(뒷날 SHA-0으로 불림)는 1993년 발표되었으나 곧 설계상의 약점이 발견되어 철회되었고, 1995년 이를 보완한 SHA-1이 나왔다. SHA-1은 입력을 160비트 해시값으로 바꾸며 오랫동안 인터넷 보안과 인증서의 표준으로 널리 쓰였다.
3.2.SHA-2
2001년 발표된 SHA-2 계열은 해시값 길이에 따라 SHA-224, SHA-256, SHA-384, SHA-512 등으로 나뉜다. 오늘날 가장 널리 쓰이는 세대로, 비트코인이 채택한 것도 이 중 SHA-256이다.
3.3.SHA-3
2015년 표준으로 확정된 SHA-3는 케차크(Keccak)를 기반으로 한다. NIST가 2012년 공개 공모를 통해 케차크를 SHA-3 알고리즘으로 선정했다. SHA-3는 앞선 세대와 내부 구조가 근본적으로 달라, SHA-2에 예기치 못한 결함이 발견될 경우를 대비한 대안이자 보험 성격을 지닌다.
4.작동 원리와 기술 구조
SHA-1과 SHA-2는 머클-담고르(Merkle–Damgård) 구조를 따른다. 먼저 입력 메시지 뒤에 규칙에 따라 채움 비트(패딩)를 붙여 길이를 맞추고, 이를 일정한 크기의 블록으로 나눈 뒤, 압축 함수를 블록마다 반복 적용하면서 내부 상태를 갱신한다. 마지막 블록까지 처리하고 남은 내부 상태가 최종 해시값이 된다.
SHA-3는 이와 달리 스펀지(sponge) 구조를 쓴다. 데이터를 빨아들이는 흡수(absorbing) 단계와 결과를 짜내는 압축(squeezing) 단계로 나뉘며, 케차크 순열이라는 변환을 반복한다. 이처럼 구조 자체가 다르기 때문에 SHA-2를 겨냥한 특정 공격이 SHA-3에는 통하지 않을 수 있다.
세대와 상관없이 SHA는 입력이 단 한 비트만 달라져도 출력 전체가 완전히 바뀌는 눈사태 효과를 보인다. 이 때문에 해싱 결과는 사실상 예측이 불가능하며, 이 예측 불가능성이 뒤에서 설명할 작업증명 채굴의 전제가 된다.
5.블록체인에서의 역할
블록체인에서 SHA, 특히 SHA-256은 여러 곳에서 핵심적으로 쓰인다.
첫째, 작업증명 채굴이다. 비트코인 채굴자는 블록 헤더 데이터를 SHA-256으로 두 번 해시한 값이 특정 조건(앞자리에 0이 일정 개수 이상 오는 등)을 만족할 때까지, 난스(nonce)라는 값을 계속 바꿔 가며 반복 계산한다. 해시값은 예측할 수 없으므로 조건을 맞추려면 막대한 시행착오가 필요하고, 이 계산 경쟁이 곧 채굴이다. 참여자 전체의 계산 능력은 해시레이트로 나타내며, 채굴 보상이 주기적으로 줄어드는 반감기도 이 작업증명 구조 위에서 작동한다.
둘째, 블록의 연결이다. 각 블록은 바로 앞 블록의 해시값을 담고 있어, 블록들이 사슬처럼 이어진다. 과거의 어느 블록을 조작하면 그 해시값이 달라지고, 이후 모든 블록의 해시가 연쇄적으로 어긋나기 때문에 위·변조를 즉시 탐지할 수 있다.
셋째, 트랜잭션 식별과 요약이다. 개별 거래는 해시값을 통해 고유하게 식별되며, 한 블록에 담긴 여러 거래는 머클 트리(Merkle Tree)라는 구조로 해시를 거듭 묶어 하나의 대표 해시로 요약된다. 이를 통해 특정 거래가 블록에 포함되었는지를 효율적으로 검증할 수 있다.
6.예시와 활용
비트코인은 SHA-256을 사용하지만, 모든 암호화폐가 같은 해시 함수를 쓰는 것은 아니다. 라이트코인은 스크립트(Scrypt), 이더리움 계열은 케차크(Keccak, SHA-3의 기반) 등 저마다 다른 해시 함수를 채택한다. 어떤 해시 함수를 쓰느냐에 따라 채굴에 유리한 하드웨어, 즉 전용 장비 ASIC가 유리한지 일반 그래픽카드 GPU가 유리한지가 달라지기도 한다.
블록체인 밖에서도 SHA는 널리 쓰인다.
- 체크섬: 소프트웨어를 내려받을 때 함께 제공되는 해시값과 직접 계산한 값을 비교해 파일이 손상·변조되지 않았는지 확인한다.
- 비밀번호 보관: 비밀번호를 원문 그대로 저장하지 않고 해시값으로 바꿔 저장해, 데이터가 유출되어도 원문을 곧바로 알 수 없게 한다.
- 전자서명·인증서: 전자서명과 디지털 인증서 등 정보 보안 전반에서 기반 기술로 쓰인다.
7.SHA-1의 몰락과 안전성
SHA-1은 이론적·현실적 공격이 잇따르며 신뢰를 잃었다. 2005년 연구자들은 SHA-1의 충돌을 무차별 대입보다 훨씬 적은 계산으로 찾을 수 있다는 이론적 공격을 제시했다. 2017년에는 구글과 네덜란드 CWI 연구진이 서로 다른 두 파일이 같은 SHA-1 해시값을 갖도록 만드는 실제 충돌(이른바 SHAttered)을 성공시켜, SHA-1이 더 이상 안전하지 않음을 입증했다.
이후 웹 브라우저와 인증기관(CA)은 SHA-1 기반 인증서를 퇴출했고, 보안이 중요한 용도에서는 SHA-2 이상으로 옮겨 가는 것이 원칙이 되었다. 다만 비트코인이 쓰는 것은 SHA-1이 아니라 SHA-256이므로 이 공격의 영향을 받지 않는다. 충돌 공격의 역사는 특정 해시 함수가 영원히 안전하지 않으며, 문제가 드러나기 전에 더 강한 세대로 이전해야 함을 보여 준다.
8.다른 해시 함수와의 비교
SHA만이 해시 함수인 것은 아니다. 대표적인 함수들을 비교하면 다음과 같다.
- MD5: SHA 이전 널리 쓰였으나 충돌 공격이 쉬워져 보안 용도로는 폐기되었다. SHA-1의 사실상 선배 격이다.
- SHA-1: 오래 표준이었으나 2017년 실제 충돌로 폐기 수순을 밟았다.
- SHA-2 / SHA-3: 각각 머클-담고르 구조와 스펀지 구조를 쓰며, 현재 함께 표준으로 인정된다.
- 케차크(Keccak): SHA-3의 기반이며, 이더리움 계열이 변형된 형태를 사용한다.
- 스크립트(Scrypt): 라이트코인 등이 채굴에 쓰는 함수로, 많은 메모리를 요구해 전용 장비 ASIC의 이점을 줄이도록 설계되었다.
어떤 해시 함수를 쓰느냐에 따라 채굴에 유리한 하드웨어와 보안 특성, 그리고 개발자 생태계가 달라진다.
9.앞으로의 과제
암호학적 해시 함수도 시간과 기술 발전 앞에서 영원히 안전하지는 않다. 과거 MD5와 SHA-1이 그러했듯, 계산 능력의 향상(무어의 법칙)과 새로운 공격 기법은 특정 해시 함수의 수명을 앞당길 수 있다.
양자 컴퓨터도 잠재적 변수로 꼽힌다. 그로버(Grover) 알고리즘 같은 양자 탐색 기법은 해시값을 되짚는 데 드는 노력을 이론적으로 줄일 수 있으나, 공개키 암호가 받는 위협만큼 치명적이지는 않은 것으로 평가된다. SHA-256처럼 출력이 긴 함수는 이 경우에도 상당한 안전 여유를 갖는 것으로 여겨진다.
SHA-2가 아직 견고하기 때문에 SHA-3로의 전환은 서서히 진행되고 있으며, 두 계열은 당분간 함께 쓰일 전망이다. 결국 SHA의 역사는 새로운 공격이 나오면 더 강한 세대로 갈아타는 순환의 반복이며, 블록체인과 정보 보안이 그 위에 얹혀 있는 만큼 이 계열의 안전성은 앞으로도 주의 깊게 지켜봐야 할 영역이다.
10.연표8건
- 1993설립최초의 SHA(뒷날 SHA-0) 발표
- 1995이정표약점을 보완한 SHA-1 발표(160비트 해시)
- 2001이정표SHA-2 계열(SHA-224/256/384/512) 발표
- 2005사건SHA-1에 대한 이론적 충돌 공격 제시
- 2009출시비트코인이 작업증명에 SHA-256을 채택
- 2012이정표NIST가 케차크(Keccak)를 SHA-3로 선정
- 2015이정표SHA-3 표준 확정
- 2017사건SHA-1 실제 충돌(SHAttered) 성공, 사실상 폐기
SHA (보안 해시 알고리즘), 어렵지 않아요 파일 지문 만드는 기술, 블록체인의 뼈대예요
1. SHA가 대체 뭔가요?
SHA는 'Secure Hash Algorithm(보안 해시 알고리즘)'의 약자예요. 미국 국가안보국(NSA)이 설계하고, 미국 국립표준기술연구소(NIST)가 공식 표준으로 채택한 '암호학적 해시 함수' 묶음을 말해요. 해시 함수라는 건, 길이가 얼마든 상관없이 입력한 데이터를 받아서 항상 정해진 길이의 짧은 값으로 바꿔 주는 도구예요. 이렇게 나온 짧은 값을 해시값 또는 다이제스트라고 불러요. 예를 들어 SHA-256은 무엇을 넣든 결과가 256비트(16진수로 64자리)짜리 값으로 나와요.
SHA는 정보 보안 곳곳에서 바탕이 되는 기술이에요. 파일이 몰래 바뀌지 않았는지 확인하는 무결성 검증, 비밀번호 보관, 전자서명 같은 데 쓰이고요. 비트코인을 비롯한 여러 블록체인에서도 핵심 부품으로 들어가요.
한 가지 알아 둘 게 있어요. SHA는 딱 하나의 알고리즘이 아니라, SHA-1, SHA-2, SHA-3로 이어지는 여러 세대의 알고리즘 묶음을 가리켜요. 사람들이 흔히 말하는 'SHA-256'은 그중에서 오늘날 가장 널리 쓰이는 SHA-2 세대에 속하는 한 종류예요.
이렇게 보면 쉬워요 · 어떤 파일이든 넣으면 그 파일만의 짧은 '지문'을 찍어 주는 기계라고 생각하면 돼요.
2. 왜 그냥 줄이는 게 아니라 '보안용'일까요?
암호학적 해시 함수는 단순히 값을 짧게 줄이는 데 그치지 않아요. 보안에 쓸 수 있으려면 아래 성질들을 갖춰야 해요.
- 결정성: 같은 입력을 넣으면 언제나 똑같은 해시값이 나와요.
- 고정 길이 출력: 입력이 한 글자든 수 기가바이트든, 결과 길이는 항상 정해져 있어요(SHA-256은 256비트).
- 일방향성(역상 저항성): 해시값만 보고 원래 입력이 무엇이었는지 되돌려 알아내는 건 사실상 불가능해요.
- 제2역상 저항성: 어떤 입력이 주어졌을 때, 그것과 똑같은 해시값을 내놓는 다른 입력을 찾기가 아주 어려워요.
- 충돌 저항성: 서로 다른 두 입력이 우연히 같은 해시값을 갖는 경우(이걸 '충돌'이라고 해요)를 찾기가 아주 어려워요.
- 눈사태 효과: 입력이 딱 한 글자(한 비트)만 달라져도 해시값 전체가 완전히 다르게 바뀌어요.
이런 성질들 덕분에 SHA는 데이터가 몰래 바뀌지 않았는지 확인하는 무결성 검증의 핵심 도구가 돼요. 그런데 위에서 말한 세 가지 저항성(일방향성, 제2역상 저항성, 충돌 저항성) 중 하나라도 현실적으로 깨져 버리면, 그 해시 함수는 보안 용도에서 더는 못 쓰고 폐기 대상이 돼요. 실제로 SHA-1이 바로 그 길을 걸었어요.
이렇게 보면 쉬워요 · 지문처럼, 사람마다 다르고(충돌 저항) 지문만 보고 얼굴을 그려낼 수는 없어야(일방향성) 신원 확인에 쓸 수 있는 거예요.
3. SHA에도 세대가 있다고요?
SHA 계열은 여러 세대를 거치면서 발전해 왔어요.
SHA-0과 SHA-1: 맨 처음 나온 SHA(나중에 SHA-0으로 불려요)는 1993년에 발표됐는데, 곧 설계상의 약점이 발견돼서 철회됐어요. 그걸 보완해서 1995년에 나온 게 SHA-1이에요. SHA-1은 입력을 160비트 해시값으로 바꾸는데, 오랫동안 인터넷 보안과 인증서의 표준으로 널리 쓰였어요.
SHA-2: 2001년에 발표된 SHA-2 계열은 해시값 길이에 따라 SHA-224, SHA-256, SHA-384, SHA-512 등으로 나뉘어요. 오늘날 가장 널리 쓰이는 세대이고, 비트코인이 채택한 것도 이 중에서 SHA-256이에요.
SHA-3: 2015년에 표준으로 확정된 SHA-3는 케차크(Keccak)라는 기술을 바탕으로 해요. NIST가 2012년에 공개 공모(누구나 응모하는 경연)를 열어서 케차크를 SHA-3 알고리즘으로 뽑았어요. SHA-3는 앞선 세대들과 내부 구조가 근본적으로 달라요. 그래서 혹시 SHA-2에서 예상 못 한 결함이 나올 경우를 대비한 대안이자, 일종의 보험 같은 성격을 가져요.
이렇게 보면 쉬워요 · 자동차 모델이 세대를 거듭하며 문제를 고쳐 나오듯, SHA도 약점이 드러날 때마다 다음 세대로 넘어온 거예요.
4. 안에서는 어떻게 돌아가나요?
SHA-1과 SHA-2는 '머클-담고르(Merkle–Damgård) 구조'라는 방식을 따라요. 먼저 입력 메시지 뒤에 정해진 규칙대로 채움 비트(패딩)를 붙여서 길이를 맞춰요. 그다음 이걸 일정한 크기의 블록으로 나누고, '압축 함수'라는 계산을 블록마다 반복해서 적용하면서 내부 상태를 계속 갱신해요. 마지막 블록까지 다 처리하고 남은 내부 상태가 곧 최종 해시값이 돼요.
SHA-3는 이와 달리 '스펀지(sponge) 구조'를 써요. 스펀지가 물을 빨아들였다가 짜내듯이, 데이터를 빨아들이는 흡수(absorbing) 단계와 결과를 짜내는 압축(squeezing) 단계로 나뉘어요. 그 안에서 '케차크 순열'이라는 변환을 반복하고요. 이렇게 구조 자체가 다르기 때문에, SHA-2를 노리고 만든 특정 공격이 SHA-3에는 통하지 않을 수 있어요.
세대와 상관없이 SHA는 입력이 딱 한 비트만 달라져도 출력 전체가 완전히 바뀌는 눈사태 효과를 보여요. 그래서 해싱 결과는 사실상 미리 예측하는 게 불가능해요. 바로 이 '예측 불가능함'이 뒤에서 설명할 작업증명 채굴의 전제가 돼요.
이렇게 보면 쉬워요 · SHA-3의 스펀지 구조는 이름 그대로, 데이터를 쫙 빨아들였다가 다시 짜내는 스펀지를 떠올리면 돼요.
5. 블록체인에서는 무슨 일을 하나요?
블록체인에서 SHA, 특히 SHA-256은 여러 곳에서 핵심 역할을 해요.
첫째, 작업증명 채굴이에요. 비트코인 채굴자는 블록 헤더 데이터를 SHA-256으로 두 번 해시한 값이 특정 조건(예를 들어 앞자리에 0이 일정 개수 이상 오는 것)을 만족할 때까지, 난스(nonce)라는 값을 계속 바꿔 가며 반복해서 계산해요. 해시값은 미리 예측할 수 없으니까, 조건을 맞추려면 엄청나게 많은 시행착오가 필요해요. 이 계산 경쟁이 바로 채굴이에요. 참여자 전체의 계산 능력은 해시레이트로 나타내고, 채굴 보상이 주기적으로 줄어드는 반감기도 이 작업증명 구조 위에서 작동해요.
둘째, 블록을 서로 연결해요. 각 블록은 바로 앞 블록의 해시값을 안에 담고 있어서, 블록들이 사슬처럼 쭉 이어져요. 만약 과거의 어떤 블록을 조작하면 그 블록의 해시값이 달라지고, 그러면 그 뒤 모든 블록의 해시가 줄줄이 어긋나요. 그래서 위·변조를 곧바로 알아챌 수 있어요.
셋째, 거래를 식별하고 요약해요. 개별 거래는 해시값을 통해 고유하게 구분돼요. 그리고 한 블록에 담긴 여러 거래는 머클 트리(Merkle Tree)라는 구조로 해시를 거듭 묶어서, 하나의 대표 해시로 요약돼요. 이 덕분에 특정 거래가 그 블록에 들어 있는지를 효율적으로 확인할 수 있어요.
이렇게 보면 쉬워요 · 블록 연결은 각 페이지에 앞 페이지의 요약을 적어 둔 공책 같아서, 한 장만 몰래 고쳐도 뒤가 전부 안 맞게 돼요.
6. 실제로 어디에 쓰이나요?
비트코인은 SHA-256을 쓰지만, 모든 암호화폐가 같은 해시 함수를 쓰는 건 아니에요. 라이트코인은 스크립트(Scrypt)를, 이더리움 계열은 케차크(Keccak, SHA-3의 바탕이 된 기술)를 쓰는 식으로 저마다 다른 해시 함수를 채택해요. 어떤 해시 함수를 쓰느냐에 따라 채굴에 유리한 하드웨어도 달라져요. 전용 장비인 ASIC가 유리한 경우도 있고, 일반 그래픽카드인 GPU가 유리한 경우도 있어요.
블록체인 밖에서도 SHA는 널리 쓰여요.
- 체크섬: 소프트웨어를 내려받을 때 함께 제공되는 해시값과, 내가 직접 계산한 값을 비교해서 파일이 손상되거나 변조되지 않았는지 확인해요.
- 비밀번호 보관: 비밀번호를 원문 그대로 저장하지 않고 해시값으로 바꿔서 저장해요. 그래야 데이터가 유출되더라도 원래 비밀번호를 바로 알아낼 수 없어요.
- 전자서명·인증서: 전자서명과 디지털 인증서 등 정보 보안 전반에서 바탕 기술로 쓰여요.
이렇게 보면 쉬워요 · 체크섬은 택배 상자에 붙은 봉인 스티커 같아서, 숫자가 안 맞으면 중간에 누가 열어 봤다는 뜻이에요.
7. SHA-1은 왜 퇴출됐나요?
SHA-1은 이론적인 공격과 실제 공격이 잇따르면서 신뢰를 잃었어요. 2005년에 연구자들은 SHA-1의 충돌을 무차별 대입(하나하나 다 대입해 보는 방식)보다 훨씬 적은 계산으로 찾을 수 있다는 이론적 공격을 내놨어요. 그리고 2017년에는 구글과 네덜란드 CWI 연구진이, 서로 다른 두 파일이 같은 SHA-1 해시값을 갖도록 실제로 만드는 데 성공했어요. 이걸 'SHAttered'라고 부르는데, 이로써 SHA-1이 더 이상 안전하지 않다는 게 증명됐어요.
그 뒤로 웹 브라우저와 인증기관(CA)은 SHA-1 기반 인증서를 퇴출했어요. 보안이 중요한 용도에서는 SHA-2 이상으로 옮겨 가는 것이 원칙이 됐고요. 다만 비트코인이 쓰는 건 SHA-1이 아니라 SHA-256이라서, 이 공격의 영향을 받지 않아요. 이런 충돌 공격의 역사는, 특정 해시 함수가 영원히 안전하지는 않다는 것, 그리고 문제가 드러나기 전에 미리 더 강한 세대로 옮겨 타야 한다는 걸 잘 보여 줘요.
이렇게 보면 쉬워요 · 서로 다른 두 파일이 같은 지문을 갖게 만들었다는 건, 위조 서명이 진짜와 똑같이 통과돼 버린 셈이에요.
8. SHA 말고 다른 해시 함수도 있나요?
SHA만 해시 함수인 건 아니에요. 대표적인 함수들을 비교해 볼게요.
- MD5: SHA 이전에 널리 쓰였지만, 충돌 공격이 쉬워지면서 보안 용도로는 폐기됐어요. SHA-1의 사실상 선배 격이에요.
- SHA-1: 오래도록 표준이었지만, 2017년 실제 충돌이 나오면서 폐기 수순을 밟았어요.
- SHA-2 / SHA-3: 각각 머클-담고르 구조와 스펀지 구조를 쓰고, 현재는 둘 다 표준으로 함께 인정받고 있어요.
- 케차크(Keccak): SHA-3의 바탕이 된 함수이고, 이더리움 계열이 이걸 변형한 형태를 써요.
- 스크립트(Scrypt): 라이트코인 같은 데서 채굴에 쓰는 함수예요. 많은 메모리를 요구하도록 설계해서, 전용 장비 ASIC가 갖는 이점을 줄이려고 만든 거예요.
결국 어떤 해시 함수를 쓰느냐에 따라 채굴에 유리한 하드웨어, 보안 특성, 그리고 개발자 생태계가 달라져요.
9. 앞으로는 어떻게 될까요?
암호학적 해시 함수도 시간이 흐르고 기술이 발전하면 영원히 안전할 수는 없어요. 과거에 MD5와 SHA-1이 그랬듯이, 계산 능력이 좋아지고(무어의 법칙) 새로운 공격 기법이 나오면 특정 해시 함수의 수명이 앞당겨질 수 있어요.
양자 컴퓨터도 잠재적인 변수로 꼽혀요. 그로버(Grover) 알고리즘 같은 양자 탐색 기법은 해시값을 거꾸로 되짚는 데 드는 노력을 이론적으로 줄일 수 있어요. 다만 공개키 암호가 받는 위협만큼 치명적이지는 않은 것으로 평가돼요. 특히 SHA-256처럼 출력이 긴 함수는 이런 상황에서도 상당한 안전 여유를 갖는 것으로 여겨져요.
SHA-2가 아직 튼튼하기 때문에 SHA-3로의 전환은 서서히 진행되고 있어요. 두 계열은 당분간 함께 쓰일 전망이고요. 결국 SHA의 역사는, 새로운 공격이 나오면 더 강한 세대로 갈아타는 순환의 반복이에요. 블록체인과 정보 보안이 이 위에 얹혀 있는 만큼, SHA 계열의 안전성은 앞으로도 주의 깊게 지켜봐야 할 영역이에요.
토큰포스트 위키, “SHA (보안 해시 알고리즘)”, 2026-07-31 수정, https://wiki.tokenpost.kr/w/shaAccept: text/markdown 로 요청해도 같은 결과문단 9개 · 연표 8건 · 각주 0개