0Pricing
Cryptology Academy · 강의

스트림 암호 개념과 PRNG

스트림 암호가 시드에서 키스트림을 생성하는 방식을 배웁니다.

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

환영합니다

스트림 암호는 키에서 의사 난수 키스트림을 생성하고 바이트 단위로 암호화합니다. 이 레슨에서는 키스트림의 작동 방식과 스트림 암호를 안전하게 만드는 요소를 알아보겠습니다.

스트림 암호 모델

KeyGen(K, Nonce) → 키스트림 K1, K2, K3, ... Ci = Pi XOR Ki Pi = Ci XOR Ki 암호화와 복호화는 키스트림과 XOR한다는 점에서 동일합니다. 키스트림은 의사 난수여야 하며 절대 재사용해서는 안 됩니다.

PRNG와 CSPRNG

PRNG(의사 난수 생성기): 무작위처럼 보이는 결정적 출력을 생성합니다. 암호학적으로 안전하지 않습니다(NOT). 통계적 검사를 통과하더라도 충분한 표본이 있으면 출력을 예측할 수 있습니다. CSPRNG: 암호학적으로 안전하며, 무제한 계산 능력이 있어도 출력이 무작위 출력과 계산상 구별되지 않습니다.

보안 요구 사항

안전한 스트림 암호의 키스트림은 다음 조건을 충족해야 합니다. 1. 무작위 출력과 계산상 구별되지 않아야 합니다 2. 각 (키, 논스) 쌍마다 달라야 합니다 3. 일부 출력만으로 예측할 수 없어야 합니다 4. 역산할 수 없어야 하며, 키스트림에서 키를 도출할 수 없어야 합니다

선형 합동 생성기(안전하지 않음)

LCG: s(n+1) = (a × s(n) + c) mod m입니다. 많은 rand() 구현에서 사용됩니다. 암호화에는 완전히 안전하지 않으며, 몇 개의 출력만 알아도 모든 과거와 미래의 출력을 수학적으로 알아낼 수 있습니다.

시드 크기와 보안

스트림 암호 키스트림의 보안성은 시드(키)의 보안성만큼만 강력합니다. 128비트 키는 아무리 많은 키스트림을 생성하더라도 128비트 보안성을 제공합니다. 시드는 엔트로피의 원천입니다.

동기식과 자기 동기화식

동기식: 키스트림이 평문/암호문과 독립적입니다(RC4, ChaCha20). 자기 동기화식: 키스트림이 이전 암호문에 의존합니다(CFB 모드). 비트가 손실되면 동기식 암호의 동기화가 깨집니다.

키스트림 생성 구조

대부분의 현대적인 스트림 암호는 다음 구조를 사용합니다. 1. 키 + 논스 → 초기 상태 2. 상태에 순열 함수를 반복적으로 적용 3. 상태의 일부 비트를 키스트림으로 출력 4. 다음 블록을 위해 카운터 증가 AES-CTR이 이 구조를 따릅니다.

eSTREAM 프로젝트

eSTREAM 프로젝트(2004~2008)는 스트림 암호를 표준화했습니다. 소프트웨어 부문 최종 후보는 HC-128, Rabbit, Salsa20/12, SOSEMANUK이었습니다. Salsa20은 ChaCha20으로 발전했고, 현재 주류 스트림 암호가 되었습니다.

키스트림 재사용: 치명적인 결함

스트림 암호에서 절대로 해서는 안 되는 일은 (키, 논스)을 재사용하는 것입니다. C1 XOR C2 = P1 XOR P2가 됩니다. 동일한 IV(키+논스와 동일한 역할)를 사용한 여러 WEP 패킷 때문에 전체 내용을 복호화할 수 있었습니다.

CTR 모드의 스트림 암호와 블록 암호

AES-CTR은 스트림 암호처럼 사용하는 블록 암호입니다. 전용 스트림 암호인 ChaCha20은 소프트웨어에서 더 빠른 경우가 많습니다. 키와 논스를 적절히 사용하면 보안 특성은 비슷합니다.

빠른 확인

스트림 암호의 (키, 논스) 쌍을 재사용할 때 발생하는 근본적인 취약점은 무엇입니까?

복습

스트림 암호의 기본 원리를 이해하셨습니다. 다음에는 RC4를 자세히 살펴보며 작동 방식과 RC4를 퇴출시킨 치명적인 약점을 학습하겠습니다.

자주 묻는 질문

“스트림 암호 개념과 PRNG” 강의는 무료인가요?

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

“스트림 암호 개념과 PRNG”에서 뭘 배우나요?

스트림 암호가 시드에서 키스트림을 생성하는 방식을 배웁니다. 브라우저에서 직접 실행하는 실습 코드로 Cryptology Academy을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“스트림 암호 개념과 PRNG” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. 스트림 암호 개념과 PRNG
  2. RC4: 설계, 취약점 및 WEP 공격
  3. Salsa20 및 ChaCha20 설계
  4. TLS 1.3의 ChaCha20-Poly1305 AEAD
← Cryptology Academy(으)로 돌아가기