SHA

덤프버전 :


파일:다른 뜻 아이콘.svg
은(는) 여기로 연결됩니다.
워크래프트 시리즈에 등장하는 적에 대한 내용은 샤(월드 오브 워크래프트) 문서
샤(월드 오브 워크래프트)번 문단을
샤(월드 오브 워크래프트)# 부분을
, 중국 상하이 소재의 훙차오 공항의 IATA 코드에 대한 내용은 상하이 훙차오 국제공항 문서
#s-번 문단을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





Secure Hash Algorithm

3f57b4255732fbd8df203466ef5cd5f4c980e545

- https://namu.wiki/w/SHA의 SHA-1값


a0d20951336a0e6a39da2682efff30ab31012e88ea606aea6fdae9b502012fe5

- https://namu.wiki/w/SHA의 SHA-2중 SHA-256값


1e3d31e819d5c890c6d9e48498ba2945f759be742699ad8e70f4b536059e6f38b472f1eea9c0d73aae792371fe38481401b7bef4e18b4a9a1d86056138dcfda2

- https://namu.wiki/w/SHA의 SHA-3값 [1]


1. 개요
2. 역사
2.1. SHA-0와 SHA-1
2.2. SHA-2
2.3. SHA-3
3. 활용한 소프트웨어
3.1. SHA-1
3.2. SHA-2
3.3. SHA-3
4. 지원하는 소프트웨어


1. 개요[편집]


1993년부터 미국 NSA가 제작하고 미국 국립표준기술연구소(NIST)에서 표준으로 채택한 암호학적 해시 함수이다.

참고로, SHA는 원본 값이 단, 한 글자, 단 1비트만 바뀌어도 값이 천차만별로 바뀔 수 있다. 보통 이를 가리켜 눈사태 효과라 부른다. [2]

2. 역사[편집]



2.1. SHA-0와 SHA-1[편집]


1993년 SHA의 표준으로 정의되어 발표되었으며 160 비트의 해시값을 사용한다. 그러나 2년 만에 바로 취약점이 발견되어 이를 개선한 SHA-1이 새로 발표되었고, 이는 널리 사용되었다. SHA-1 역시 160 비트 해시값을 사용한다. 처음 발표된 SHA는 편의상 SHA-0로 표기하여 구분한다.

그러나 2005년도에 한 중국의 대학 연구팀에 의해 해독의 가능성이 제시되었으며, 결국 2008년에 해시 충돌이 발생했으며[3] 2015년에는 주요 브라우저에서도 지원 중단을 예고하는 등 퇴출 수속을 밟고 있다. 그리고 2017년 SHA-1 전체의 해시 충돌이 구글 프로젝트 제로 팀에 의해 밝혀졌다. 구글은 아예 충돌하는 키를 완전히 공개할 예정으로, 구글 정책상 90일 뒤인 5월 말쯤 어떤 방법을 적용했는지 공개가 되면 SHA-1은 그냥 끔살될 예정. 그 이전에 다른 알고리즘으로 안 갈아타면 그대로 망하게 만들겠다는 반협박 수준의 강력한 보안 경고이다. 관련 기사

결국 구글 크롬 브라우저는 2017년 1월에 출시한 56버전부터는 SHA-1 인증서를 사용하는 사이트에 접속시 안전하지 않은 사이트라며 경고 메시지를 띄우도록 했고, 2019년부터는 SHA-1 인증서를 사용하는 사이트는 접속하지 못하도록 차단했다. 파이어폭스 등 다른 브라우저도 2017년부터 SHA-1 인증서를 사용하는 사이트에 접속시 경고 메시지를 띄우는 등의 업데이트를 하며, 2015년 기준 90%이상의 사이트가 사용하던 SHA-1은 더 이상 찾아보기 힘들게 되었다.

2.2. SHA-2[편집]


SHA-1 역시 해시 충돌을 이용한 위험성이 발견되어 차세대 버전이 나왔는데, 개선된 버전이 SHA-2 로 2001년에 발표되었다. SHA-2 해시 함수는 8개의 32비트 상태를 업데이트하는 압축 함수를 기반으로 하고 해시 길이에 따라서 224, 256, 384, 512 비트를 선택해서 사용할 수 있으며, 당연히 해시 길이가 길 수록 더 안전하다. 편의상 해시 길이에 따라 SHA-224, SHA-256, SHA-384, SHA-512 등으로 부른다. 일반적으로 SHA-256을 사용한다.

해시 길이가 길어졌기에 그만큼 안전하긴 하지만, 알고리즘의 기본 동작이 SHA-1과 큰 차이가 없기 때문에 완전히 안전하다(=공격 받을 가능성이 없다.)고 장담하긴 어렵다. 해시 함수 특성상 기본 동작(round)이 많아질수록 안정성이 높아져 현재까지 SHA-2에 대해 알려진 충돌 등은 없지만, 만약을 위해 SHA-1하고 기본적인 원리 자체가 아예 다른 SHA-3이 개발되었다.


2.3. SHA-3[편집]


2012년 10월에 더욱더 안정성이 높은 방식으로 설계된 SHA-3이 정식 발표되었다.

SHA-2 도 위험성 문제가 제기되자, 충돌 가능성을 피하기 위해서 SHA-1과 2와 전혀 다른 알고리즘인 SHA-3의 개발이 진행되었다. 정확하게는 개발이라기보단, 여러 보안 전문가들과 컴덕후들이 만들어낸 해시 알고리즘 중 몇 개를 추려서 가장 견고한 것에 SHA-3 딱지를 붙이는 공모전에 가깝다.[4] 고려대학교에서도 아리랑이라는 이름으로 출품했지만 탈락했다. 3차 후보까지 남은 건 BLAKE, Grøstl, JH, Keccak, Skein의 5개 알고리즘이다.

2012년 10월 2일자로 Keccak이 SHA-3로 확정되었다. #


3. 활용한 소프트웨어[편집]



3.1. SHA-1[편집]


  • 비트토렌트는 파일을 BASE32로 바꾼 SHA-1을 해시로 사용한다.
  • 깃(Git)은 파일이나 커밋 등 모든 오브젝트를 SHA-1으로 해시한 식별자를 통해 관리한다. SHA-1을 깬 구글이 "깃(Git) 시스템도 불안하다"고 하였으나 깃을 만든 리누스 토발즈는 "깃은 데이터를 해시하기만 하는 게 아니라, 거기에 타입과 길이 필드를 측량한다"며 동의하지 않았다. #

3.2. SHA-2[편집]


  • 대한민국 인터넷뱅킹은 SHA-256을 사용하고 있다.
  • 비트코인은 작업 증명에 SHA-256을 사용한다.
  • TrueCrypt는 키 유도에 SHA-512를 사용할 수 있다. 여러 옵션 중 하나이다.
  • Windows 업데이트는 파일의 디지털 서명에 SHA-256을 사용한다. 2020년 7월까지는 SHA-1도 병용했으나, 이후 서버에 등록된 모든 파일에서 SHA-1 디지털 서명을 제거하였으며, SHA-2를 지원하지 않는 구형 Windows에 대한 업데이트 파일은 아예 서버에서 삭제해버렸다.[5]

3.3. SHA-3[편집]


  • 이더리움 - 이더리움은 Keccak256을 사용한다. 다만, Keccak이 SHA-3로 제안될 때 일부 변경된 부분이 있기 때문에 엄밀하게 말하면 이더리움이 SHA-3 표준을 따른다는 표현은 약간 오류가 있다.

4. 지원하는 소프트웨어[편집]


  • OpenSSL - SHA1, SHA2, SHA3 지원
  • Libgcrypt
파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-11-03 05:36:49에 나무위키 SHA 문서에서 가져왔습니다.

[1] 이것은 엄밀히 말해서
Keccak[c=2d]
의 512-bit 해시값이다. Keccak 알고리즘은 이전의 SHA 알고리즘과는 달리 출력 길이가 제한되어 있지 않고, 알고리즘 자체에도 변경 가능한 파라미터가 있기에 어떤 파라미터를 쓰느냐에 따라 얼마든지 결과값이 달라질 수 있다.
[2] 눈사태 효과가 없거나 적다면 보안에 치명적이기에, 거의 모든 암호화 알고리즘에서 기본적으로 포함되어 있다. SHA 만의 특성은 아니다. [3] 물론 이건 알려진 것이다. 모든 암호화 알고리즘이 다 그렇지만 암호학의 지하에선 더 빨리 뚫렸을지도 모른다.[4] 물론 이것만 그런건 아니고, 전세계적으로 제일 대표적인 양방향 암호화 표준인 AESNIST의 공모전에서 Rijndael(라인달) 알고리즘이 선정된 것이다. 이런 식으로 암호화 표준은 제시된 여러 알고리즘 중 제일 강력한 하나를 골라서 제정되는 경우가 많다.[5] 정확히는 Windows 2000, Windows XP, Windows Server 2003, Windows Server 2003 R2, Windows Vista이다. Windows 9x 계열과 Windows NT 4.0에 대한 업데이트 서버는 2012년에 이미 중단하였으며, Windows Vista를 기반으로 한 Windows Server 2008은 별도의 SHA-2 지원 패치를 배포하였다.