0Pricing
Cryptology Academy · 강의

좋은 해시 함수의 조건

원상 저항성, 충돌 저항성 및 눈사태 효과를 살펴봅니다.

좋은 해시 함수의 조건은(는) CoddyKit의 무료 Cryptology Academy 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Cryptology Academy 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

환영합니다

암호학적 해시 함수는 모든 입력을 고정 길이의 다이제스트로 변환합니다. 이 수업에서는 해시 함수를 암호학적으로 안전하게 만드는 속성을 살펴봅니다.

결정적 출력

Hash(M)은 같은 입력에 대해 항상 같은 출력을 생성합니다. SHA-256('hello')는 언제 어디서 계산하더라도 항상 aabb...를 출력합니다.

고정 출력 길이

SHA-256은 항상 256비트(32바이트 = 64개의 16진수 문자)를 출력합니다. SHA-512는 항상 512비트를 출력합니다. 입력은 0바이트일 수도 있고 10 GB일 수도 있지만, 출력 크기는 절대 변하지 않습니다.

프리이미지 저항성

해시 h가 주어졌을 때 Hash(M) = h를 만족하는 메시지 M을 찾는 일이 계산적으로 불가능해야 합니다. 단방향 속성이므로 해시를 역으로 되돌릴 수 없습니다.

제2 프리이미지 저항성

M1이 주어졌을 때 Hash(M1) = Hash(M2)를 만족하면서 M2 ≠ M1인 M2를 찾는 일이 계산적으로 불가능해야 합니다. 공격자가 같은 해시를 가진 다른 메시지로 바꾸는 것을 방지합니다.

충돌 저항성

Hash(M1) = Hash(M2)이면서 M1 ≠ M2인 ANY 두 메시지를 찾는 일이 계산적으로 불가능해야 합니다. 이는 제2 프리이미지를 찾는 것보다 어렵지만, 생각만큼 강력하지는 않습니다. 비둘기집 원리에 따라 충돌은 반드시 존재하기 때문입니다.

눈사태 효과

입력에서 단 하나의 비트를 뒤집으면 출력 비트의 약 50%가 바뀌어야 합니다. SHA-256('hello')와 SHA-256('hellp')는 약 128비트가 다릅니다. 이러한 민감성은 점진적 탐색 공격을 방지합니다.

Merkle-Damgård 구조

MD5, SHA-1, SHA-2는 Merkle-Damgård 구조를 사용합니다. 입력을 블록으로 나누고 압축 함수를 연쇄적으로 적용합니다. 최종 연쇄 값이 해시가 됩니다. 이 설계는 길이 확장 공격에 취약합니다.

스펀지 구조

SHA-3(Keccak)은 스펀지 구조를 사용합니다. 입력을 상태에 흡수한 다음 출력을 짜냅니다. 스펀지 구조는 길이 확장 공격에 강하며 Merkle-Damgård 구조보다 더 유연합니다.

생일 경계

생일 공격은 2^n번이 아니라 2^(n/2)번의 연산으로 충돌을 찾습니다. SHA-256은 256비트 출력을 가지므로 충돌 저항성은 약 2^128입니다. SHA-1(160비트)은 약 2^80이며, 실제로는 이미 깨졌습니다.

해시와 MAC와 서명 비교

해시: 키가 없으며 무결성만 제공합니다. MAC(HMAC): 키를 사용하는 해시로, 무결성과 인증을 제공합니다. 디지털 서명: 비대칭 키를 사용하며 무결성, 인증, 부인 방지를 제공합니다.

확인 문제

주어진 해시 출력을 생성하는 입력을 찾는 일이 불가능하도록 보장하는 속성은 무엇입니까?

복습

이제 해시 함수의 보안 속성을 이해했습니다. 다음에는 한때 표준이었지만 이제 완전히 깨진 MD5를 살펴봅니다.

자주 묻는 질문

“좋은 해시 함수의 조건” 강의는 무료인가요?

네 — “좋은 해시 함수의 조건” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Cryptology Academy 강의 전체를 잠금 해제할 수 있습니다. Cryptology Academy 강의에는 총 4개의 강의가 포함되어 있습니다.

“좋은 해시 함수의 조건”에서 뭘 배우나요?

원상 저항성, 충돌 저항성 및 눈사태 효과를 살펴봅니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Cryptology Academy을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Cryptology Academy은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.

“좋은 해시 함수의 조건” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Cryptology Academy 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Cryptology Academy 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 좋은 해시 함수의 조건
  2. MD5: 역사, 용도 및 폐기된 이유
  3. SHA-1 및 SHA-2 계열 이해하기
  4. 해시 활용: 체크섬, HMAC 및 Git
← Cryptology Academy(으)로 돌아가기