본문 바로가기
system_fundamentals/security_cryptography

파일 checksum 원리

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

파일 Checksum 원리

파일 Checksum은 한 문장으로 말하면:

파일이 원본 그대로인지 확인하기 위한 지문(Fingerprint)
 

이다.

즉:

파일 내용이 중간에 바뀌지 않았는가?
 

를 검증하는 기술이다.


1. 왜 Checksum이 필요한가?

인터넷에서 파일은:

  • 다운로드 중 손상될 수 있고
  • 중간에 변조될 수 있고
  • 악성코드가 삽입될 수도 있다.

예:

ubuntu.iso
 

를 다운로드했는데,

중간 공격자가:

악성코드 포함 ISO
 

로 바꿔치기했다면?

사용자는 겉보기엔 구분하기 어렵다.


그래서:

파일의 고유 fingerprint
 

를 만들어 비교한다.

이게 Checksum이다.


2. Checksum 기본 원리

원리는 단순하다.


원본 파일

file.zip
 

Hash 계산

예:

SHA-256(file.zip)
 

결과:

a8f3c1...
 

이 값을 함께 공개한다.


사용자는 다운로드 후 다시:

SHA-256(다운로드 파일)
 

계산.


값이 동일하면:

파일이 원본과 동일
 

하다고 판단.


3. 왜 가능한가?

좋은 해시 함수는:

입력 조금만 바뀌어도
결과가 완전히 달라짐
 

특징이 있다.


예:

hello
 

hellp
 

의 SHA-256은 완전히 다르다.


이걸:

Avalanche Effect
 

라고 한다.


즉 파일이 1byte만 달라도:

checksum 완전히 변경
 

된다.


4. 실제 흐름

서버 측

파일 배포.

app.exe
 

Checksum 공개.

SHA256:
f3ab...
 

사용자 측

다운로드 후:

 
sha256sum app.exe
 

실행.


결과 비교.

같으면:

파일 무결성 확인
 

.


5. Linux에서 많이 사용하는 명령어

SHA-256

 
sha256sum file.zip
 
  • sha256sum
    → SHA-256 hash 계산 명령어

MD5

 
md5sum file.zip
 
  • md5sum
    → MD5 checksum 계산

(보안용으론 비추천)


6. 왜 MD5는 위험한가?

예전엔 MD5 checksum 많이 썼다.

하지만 현재는:

충돌 공격 가능
 

해서 보안 목적으론 위험.

즉 공격자가:

다른 파일인데 같은 MD5
 

를 만들 가능성이 있다.


그래서 현재는 보통:

  • SHA-256
  • SHA-512

사용.


7. Checksum과 암호화 차이

많이 헷갈리는 부분.


Checksum

목적:

변조 여부 확인
 

암호화

목적:

내용 숨기기
 

즉 checksum은:

파일 내용을 숨기지 않는다
 

.

단지:

원본 동일 여부만 검증
 

한다.


8. Checksum만으로 완전 안전한 건 아님

이것도 중요하다.

예를 들어 공격자가:

  • 악성 파일
  • 악성 checksum

둘 다 바꾸면?

사용자는 속을 수 있다.


그래서 실제 배포 시스템은:

전자서명(Signature)
 

을 같이 사용한다.


9. 전자서명과 Checksum

예:

파일 hash 생성
→ 개인키로 서명
 

사용자는:

  • hash 계산
  • 공개키 검증

으로:

"진짜 배포자가 만든 파일"
 

인지 확인 가능.


즉 현대 소프트웨어 배포는:

무결성 + 인증
 

둘 다 필요하다.


10. Git도 사실 Checksum 시스템

Git은 내부적으로:

모든 객체를 hash로 관리
 

한다.

즉 파일 한 글자만 바뀌어도:

hash 완전히 변경
 

된다.

그래서 Git은 사실상:

거대한 무결성 검증 시스템
 

이라고 볼 수 있다.


11. Docker도 Checksum 기반

Docker Image도:

digest
 

라는 hash값으로 관리된다.

예:

sha256:abcd...
 

즉 이미지 변조 여부 확인 가능.


12. 결국 Checksum의 본질

Checksum은 단순 숫자가 아니다.

본질적으로는:

파일의 무결성을 검증하기 위한 디지털 지문
 

이다.

그리고 현대 인터넷의:

  • 소프트웨어 배포
  • Git
  • Docker
  • 클라우드
  • 패키지 매니저

등은 거의 모두:

Checksum 기반 신뢰 검증
 

위에서 동작한다고 볼 수 있다.

반응형

'system_fundamentals > security_cryptography' 카테고리의 다른 글

AES는 왜 빠른가  (0) 2026.05.14
ECB 모드는 왜 위험한가  (0) 2026.05.14
무결성이란 무엇인가  (0) 2026.05.13
Argon2 vs bcrypt  (0) 2026.05.13
SHA-256은 어떻게 동작하는가  (0) 2026.05.13

댓글