스킬캠퍼스

오늘 끝나면

난수와 엔트로피

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

실습 미션

예측 불가가 보안의 뿌리 — 나쁜 난수가 뚫리는 법 이 문장이 실제로 무슨 뜻인지 실습에서 한 번 손으로 확인한다.

성공 조건

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

암호 & 보안 · 13

난수와
엔트로피

예측 불가능함이 모든 보안의 뿌리다. 난수가 허술하면 키도 통째로 뚫린다.

P.01암호 & 보안 · 13

키도 토큰도 다 난수로 만든다

암호의 안전은 난수에 걸려 있다. 비밀키, 솔트, 세션토큰을 모두 난수로 뽑는다.

난수를 쓰는 이유는 아무도 못 맞히게 하려는 것이다. 키가 예상 가능한 값이면 이미 비밀이 아니다. 자물쇠 번호를 1234로 맞춘 것과 같다.

그래서 보안에서 난수는 장식이 아니다. 난수의 질이 곧 키의 질이다. 여기가 약하면 위에 쌓은 암호가 전부 같이 무너진다.

이 모든 게 난수 한 통에서 나온다
난수가 만드는 것들
난수 한 통예측 불가능해야 한다
비밀키
메시지를 잠그는 열쇠
솔트
같은 비번도 다르게 섞기
세션토큰
로그인 유지용 출입증
IV / 논스
암호를 매번 새롭게

난수가 약하면 이 넷이 한꺼번에 약해진다

P.02암호 & 보안 · 13

컴퓨터 난수는 사실 계산된 가짜다

컴퓨터는 진짜 난수를 못 만든다. 우리가 쓰는 건 대부분 의사난수(PRNG)다.

PRNG는 시드(씨앗) 하나를 정해두고 공식으로 다음 값을 줄줄이 계산한다. 무작위처럼 보여도 속은 정해진 계산이다.

그래서 시드를 알거나 공식이 약하면 다음 값이 그대로 계산된다. 무작위가 아니라 미리 정해진 수열이었던 것이다.

시드 하나를 공식에 넣어 줄줄이 계산한다
의사난수 = 시드 + 공식
시드7
공식에 넣고 굴림
다음 = (17 × 지금 + 11) mod 256
뽑혀 나오는 수열
1301731361978

무작위로 보여도 속은 정해진 계산이다

P.03암호 & 보안 · 13

점을 뿌려보면 약함이 보인다

난수로 점을 화면에 뿌리면 약함이 눈에 보인다.

나쁜 난수를 켜면 점이 줄무늬나 격자로 뭉친다. 공식이 약해 패턴이 새어 나온 것이다. 이 줄무늬가 곧 약함의 증거다.

나쁜 쪽은 공식 하나로 굴러서 다음 점이 정확히 예측된다. 키를 추측당하는 것이다. 좋은 쪽은 잡음이 섞여 빗나간다.

나쁜 난수 vs 좋은 난수 · 직접 예측해보기
난수 점 뿌리기 · 패턴 찾기
난수 종류
점이 줄무늬·격자로 뭉침
공격자, 다음 값 맞히기

공격자는 마지막 값으로 다음 값을 계산해 본다. 십자(⊕)가 진짜 다음 점 위에 떨어질까?

P.04암호 & 보안 · 13

시드가 약하면 전부 예측된다

공식이 멀쩡해도 시드가 허술하면 끝이다. 시드가 출발점이라, 출발점을 알면 수열 전체가 따라온다.

흔한 실수가 현재 시각을 시드로 쓰는 것이다. 키가 언제 만들어졌는지 알면 그 근처 시각 몇 개만 넣어봐도 같은 키가 다시 나온다.

실제로 약한 시드 때문에 지갑 키와 세션토큰이 통째로 털린 사고가 여러 번 있었다. 예측 가능한 시드는 예측 가능한 키다.

짐작 가능한 시드 = 짐작 가능한 키
시드의 질 = 키의 질
시드결과
시드 = 1234고정값매번 같은 키라 즉시 뚫린다
시드 = 현재 시각짐작 가능시각 몇 개만 넣어보면 된다
시드 = 잡음 모음예측 불가출발점부터 무작위라 안전하다
P.05암호 & 보안 · 13

진짜 보안엔 엔트로피가 필요하다

해법은 엔트로피다. 엔트로피는 예측 불가능한 잡음이다.

마우스 움직임, 키 입력 타이밍, 전기 잡음, 디스크 지연처럼 아무도 못 맞히는 잡음을 긁어모아 시드로 쓴다. 출발점이 무작위라 다음 값을 계산할 수가 없다.

그래서 보안용 난수는 CSPRNG(암호학적 난수)를 쓴다. 충분한 엔트로피로 시드를 채워 다음 값을 절대 못 맞히게 만든 난수다. 키를 진짜 비밀로 지켜주는 뿌리다.

Q. 난수가 보안에서 중요한 이유는?키와 토큰이 난수로 만들어지기 때문이다. 난수가 예측되면 키가 추측당해 암호 전체가 무너진다. 그래서 예측 불가능한 엔트로피로 만든 난수라야 안전하다.
세상의 잡음을 긁어모아 씨앗으로
엔트로피 → 시드 → 안전한 난수
예측 불가능한 잡음들
마우스 움직임
키 입력 타이밍
전기 잡음
디스크 지연
↓ 긁어모음
CSPRNG다음 값을 못 맞힌다

출발점이 무작위라 수열 전체가 무작위다

3줄 요약

  1. 1예측 불가가 보안의 뿌리 — 나쁜 난수가 뚫리는 법
  2. 2난수와 엔트로피은 고전 암호 → 키와 신뢰 → 웹 보안 → 블록체인 → 다음 시대 흐름 안의 한 칸이다.
  3. 3개념을 외우는 것보다 입력을 바꾸면 무엇이 달라지는지 보는 것이 우선이다.

완료 전 점검

복습 카드

난수와

예측 불가가 보안의 뿌리 — 나쁜 난수가 뚫리는 법

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

해시

데이터를 고정 길이 지문으로 바꾸는 함수