본문 바로가기
system_fundamentals/security_cryptography

SHA-256은 어떻게 동작하는가

by 죄니안죄니 2026. 5. 13.
반응형

SHA-256은 어떻게 동작하는가

SHA-256은 현대 인터넷에서 가장 널리 사용되는 해시(Hash) 알고리즘 중 하나다.

현재:

  • HTTPS 인증서
  • JWT
  • 블록체인
  • Git
  • 파일 무결성 검증
  • 전자서명

등 엄청 많은 시스템이 SHA-256 위에서 동작한다.

그렇다면 SHA-256은 실제로 어떻게 동작할까?


1. SHA-256의 목적

SHA-256의 목표는 단순하다.

아무 길이의 입력 데이터를
항상 256bit 고정 길이 값으로 변환
 

하는 것.

즉:

입력 → 256bit fingerprint
 

를 만드는 알고리즘이다.


예:

SHA256("hello")
 

결과:

2cf24dba5fb0a30e26e83b2ac5b9e29...
 

2. 핵심 특징

SHA-256은:

  • 같은 입력 → 항상 같은 결과
  • 입력 조금만 바뀌어도 결과 완전히 변경
  • 복호화 불가능
  • 충돌 찾기 매우 어려움

을 목표로 설계되었다.


3. SHA-256은 단순 암호화가 아니다

많이 헷갈리는 부분인데:

SHA-256은 암호화가 아니라 해시 함수
 

다.

즉:

  • 복호화 키 없음
  • 원본 복원 목적 없음
  • 무결성 검증 목적

이다.


4. SHA-256 전체 흐름

SHA-256은 크게 보면:

1. 입력 전처리(Padding)
2. 블록 분할
3. 반복 압축 연산
4. 최종 Hash 생성
 

과정으로 동작한다.


5. STEP 1 — Padding(패딩)

SHA-256은 데이터를:

512bit 단위 블록
 

으로 처리한다.

그래서 먼저 데이터를 특정 규칙으로 늘린다.


예:

hello
 

입력.


뒤에:

  • 1
  • 여러 개의 0
  • 원래 길이 정보

를 붙인다.


왜냐면 SHA-256은:

입력 길이까지 포함해 계산
 

하기 때문.


6. STEP 2 — 블록 분할

패딩된 데이터는:

512bit 블록들
 

로 나뉜다.


예:

BLOCK_1
BLOCK_2
BLOCK_3
...
 

큰 파일도 결국:

512bit 조각들
 

로 쪼개서 처리한다.


7. STEP 3 — 내부 상태 초기화

SHA-256은 내부적으로:

8개의 32bit 상태값
 

을 가진다.

보통:

A B C D E F G H
 

로 표현.


초기값은 SHA-256 명세에 고정돼 있다.


8. STEP 4 — 압축 함수 반복

이게 핵심이다.

각 블록마다:

  • 비트 회전
  • XOR
  • 덧셈(mod 2³²)
  • 비선형 연산

을 엄청 반복한다.


대표 연산:

Σ0(x)=ROTR2(x)⊕ROTR13(x)⊕ROTR22(x)\Sigma_0(x)=ROTR^2(x)\oplus ROTR^{13}(x)\oplus ROTR^{22}(x)


이런 식의:

  • 회전(rotation)
  • XOR

을 계속 섞는다.


9. 왜 이렇게 복잡하게 섞나?

목표는:

입력 변화가 결과 전체로 퍼지게 만드는 것
 

이다.

즉:

hello
 

hellp
 

가 완전히 다른 hash를 만들도록.

이걸:

Avalanche Effect
 

라고 한다.


10. 각 블록 처리 후 상태 갱신

각 512bit 블록을 처리하면:

A~H 상태값 갱신
 

된다.


그리고 다음 블록 처리 시:

이전 결과를 이어서 사용
 

한다.

즉 전체 데이터가 체인처럼 연결된다.


11. 마지막 결과 생성

모든 블록 처리 완료 후:

A~H 값 합침
 

→ 최종 256bit hash 생성.


즉 최종 결과는:

32byte = 256bit
 

고정 길이.


12. SHA-256이 안전한 이유

SHA-256은 현재까지:

실용적 충돌 공격
 

이 발견되지 않았다.

즉:

같은 hash를 만드는
서로 다른 입력 생성
 

이 현실적으로 매우 어렵다.


13. 왜 복호화가 안되나?

SHA-256은:

정보를 압축하면서
원본 일부를 잃는다
 

.

즉:

256bit 결과만으로
원본을 복원 불가능
 

하게 설계됨.


14. SHA-256이 실제 사용되는 곳

HTTPS/TLS

인증서 서명.


JWT

HS256
 

같은 서명 알고리즘.


Git

파일 무결성 관리.


블록체인(Bitcoin)

블록 연결 및 작업증명(PoW).


Docker

이미지 digest.


15. SHA-256의 핵심 본질

SHA-256은 단순 문자열 변환기가 아니다.

실제로는:

입력 데이터를
비가역적이고 예측 불가능한 fingerprint로 만드는 알고리즘
 

이다.

그리고 현대 인터넷은 사실상:

SHA-256 같은 해시 알고리즘의 신뢰성 위에서 동작
 

한다고 봐도 될 정도로 중요하다.

반응형

댓글