스킬캠퍼스

오늘 끝나면

해시 함수

  • 해시 함수의 핵심 문제를 한 문장으로 설명한다
  • 오른쪽 실습에서 해시이 어떻게 움직이는지 관찰한다
  • 다음 강의와 이어지는 한계를 말할 수 있다

실습 미션

데이터의 지문 — 한 글자만 바꿔도 통째로 달라짐 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

  • 실습의 기본값을 먼저 관찰
  • 입력값이나 모드를 한 번 이상 바꿔 결과 비교
  • 왜 결과가 바뀌었는지 한 문장으로 설명

암호 & 보안 · 09

해시
데이터의 지문

아무 데이터나 넣어도 고정 길이 지문이 나온다. 한 글자만 바꿔도 통째로 달라진다.

P.01암호 & 보안 · 09

아무거나 넣어도 길이는 똑같다

해시 함수는 입력을 정해진 길이로 뭉갠다. 한 글자를 넣든 책 한 권을 넣든 나오는 값의 길이는 늘 같다.

이 고정 길이 값을 지문이라 부른다. 데이터를 짧게 대표하는 표식이다. 원본은 길어도 지문은 한 줄이다.

약속이 하나 있다. 같은 입력이면 늘 같은 지문이 나온다. 매번 굴려도 변하지 않는다. 그래서 두 데이터가 같은지는 지문만 비교하면 된다.

짧은 글도 긴 글도 같은 길이 지문
입력 길이는 제각각 · 지문은 한 줄
a1글자
고정 16자리
안녕하세요짧은 문장
고정 16자리
책 한 권 전체…엄청 긴 글
고정 16자리
뭘 넣든 길이는 늘 똑같다
P.02암호 & 보안 · 09

한 글자만 바꿔도 통째로 달라진다

글자를 딱 1개만 고쳐도 지문이 와르르 바뀐다.

이걸 아발란치(눈사태)라 부른다. 산 위 눈 한 줌이 미끄러지면 산사태가 되듯, 입력의 작은 차이가 출력 전체로 번진다.

그래서 살짝 닮은 입력끼리도 지문은 전혀 안 닮는다. 지문만 보고는 원본이 비슷했는지조차 짐작하지 못한다. 위·변조를 잡는 힘이 여기서 나온다.

입력 1글자 차이가 출력 전체로 번진다
해시 함수 · 직접 쳐보기
입력, 아무 글자나 (길이 자유)
입력 길이 5자 → 출력은 늘 16자리
출력, 고정 길이 지문 (hex)
9d22e505e417ce99
아발란치, 직전 입력과 비교
글자를 1개만 고쳐 보자

같은 입력은 늘 같은 지문이 나온다(결정적). 이제 글자를 1개만 바꿔 보자. 파란 칸이 와르르 생긴다.

P.03암호 & 보안 · 09

지문에서 원본은 못 돌아간다

해시는 일방향이다. 원본에서 지문은 한순간인데, 지문에서 원본으로는 돌아가지 못한다.

고기를 갈면 다짐육이 된다. 그런데 다짐육을 보고 원래 부위는 복원하지 못한다. 뭉갠 정보는 사라진다. 해시도 똑같이 되돌릴 단서를 남기지 않는다.

유일한 방법은 전부 대입해보기뿐이다. 그런데 경우의 수가 천문학적이라 현실적으로 불가능하다. 그래서 지문은 공개해도 원본은 안전하다.

앞으로만 흐른다 · 되돌리기 불가
한 방향으로만 흐름
원본“비밀번호 1234”
↓ 쉬움
지문a3f9…1c
↑ 불가

다짐육에서 원래 고기로? 못 돌린다. 정보가 사라진다.

P.04암호 & 보안 · 09

그래서 어디에 쓰나

지문 한 줄이 이 세 가지를 떠받친다. 무결성 검사, 비밀번호 저장, 블록체인의 핵심 부품이다.

무결성은 받기 전후의 지문을 비교한다. 두 지문이 같으면 한 글자도 안 바뀐 것이다 (아발란치 덕분). 비밀번호는 원문 말고 지문만 저장한다. 그래서 털려도 원문은 알아내지 못한다(일방향 덕분).

블록체인은 블록마다 앞 블록의 지문을 품는다. 과거를 하나 고치면 이후 지문이 전부 깨져 즉시 들통난다.

무결성 · 비밀번호 · 블록체인
지문 하나가 떠받치는 것
무결성

받기 전후 지문을 비교해 안 바뀌었는지 본다

비밀번호

원문 말고 지문만 저장해 털려도 안전하다

블록체인

앞 블록 지문을 품어 고치면 들통난다

P.05암호 & 보안 · 09

해시 = 데이터의 지문

정리하면 셋이다. 고정 길이로 뭉갠다, 1글자 차이가 전체를 바꾼다, 되돌리기 불가.

이 세 성질 덕분에 해시는 “데이터가 그대로인가”와 “같은 데이터인가”를 싸고 빠르게 판정한다. 원본을 들추지 않아도 된다.

그래서 무결성과 비번, 블록체인이 다 같은 부품 하나에 기댄다. 짧은 지문 한 줄이 신뢰의 기초가 된다.

Q. 해시로 원본을 복원할 수 있나?없다. 해시는 일방향이라 지문만 보고 원본은 되돌리지 못한다. 정보를 뭉개서 단서를 남기지 않기 때문이다. 그래서 비밀번호 저장에 쓴다. 원문 말고 지문만 저장하면 털려도 원문은 알아내지 못한다.
세 줄 요약
해시의 세 성질
고정 길이아무 입력이나 같은 길이 지문이 된다
아발란치1글자 차이가 출력을 통째로 바꾼다
일방향지문에서 원본은 복원 불가
이 셋이 무결성·비번·블록체인을 떠받친다

3줄 요약

  1. 1데이터의 지문 — 한 글자만 바꿔도 통째로 달라짐
  2. 2해시 함수은 고전 암호 → 키와 신뢰 → 웹 보안 → 블록체인 → 다음 시대 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

해시

데이터의 지문 — 한 글자만 바꿔도 통째로 달라짐

암호를 잠그고 풀 때 쓰는 비밀 또는 공개 숫자

서명

누가 보냈는지와 변조 여부를 증명하는 암호 절차