도구스개발

RC4 스트림 암호 계산기

RC4의 KSA·PRGA 두 단계를 그대로 돌려 키스트림 바이트와 암호문을 계산합니다. S-box가 뒤섞이는 과정도 함께 보여줍니다.

평문

암호문(16진수)

 
KSA가 키로 0~255의 순열 S를 만들고, PRGA가 그 S를 계속 휘저으며 키스트림을 한 바이트씩 뽑습니다. 이 키스트림을 평문과 XOR하면 암호문이고, XOR이 자기역원이라 같은 연산으로 복호화도 됩니다. 다만 RC4는 초반 키스트림 바이트에 통계적 편향이 있어 실제로 깨진 암호입니다(WEP가 이 편향으로 뚫렸습니다) — 학습용으로만 쓰세요.

사용 방법

  1. 1키를 입력합니다 — 텍스트로 넣으면 UTF-8 바이트로 바뀝니다.
  2. 2암호화할 평문(또는 복호화할 16진수 암호문)을 입력합니다.
  3. 3KSA로 뒤섞인 S-box에서 PRGA가 뽑아낸 키스트림과, 그것을 XOR한 결과를 확인합니다.

자주 묻는 질문

먼저 KSA(키 스케줄링)가 0~255를 담은 배열 S를 키 바이트로 256번 뒤섞어 순열을 만듭니다. 그 다음 PRGA가 S를 계속 휘저으며 한 바이트씩 키스트림을 뽑아내고, 이 키스트림을 평문과 XOR하면 암호문이 됩니다.

XOR은 같은 값으로 두 번 연산하면 원래로 돌아오는 자기역원 성질이 있습니다. 같은 키로 같은 키스트림을 다시 만들어 암호문에 XOR하면 평문이 복원됩니다 — xor-cipher와 같은 원리이고, 차이는 키스트림을 반복되는 키가 아니라 KSA+PRGA로 만든다는 점입니다.

아니요. RC4는 깨진 암호로 분류됩니다. PRGA가 뽑는 초반 바이트들이 완전한 균등분포에서 벗어나 있다는 사실(Mantin·Shamir, 2001)이 알려져 있고, 이 편향으로 WEP가 실제로 뚫렸습니다. RFC 7465는 TLS에서 RC4 사용을 금지합니다. 이 계산기는 알고리즘 동작을 확인하는 학습용입니다.

키스트림과 암호문은 임의의 이진 바이트열이라 일반 텍스트로 그대로 보여줄 수 없습니다. 그래서 두 자리씩 16진수 문자열로 표시합니다. 복호화 결과는 원래 평문(UTF-8 텍스트)으로 보여줍니다.

아니요. 키·평문·암호문 모두 브라우저 안에서만 계산되며 서버로 전송되지 않습니다.

알아두면 좋은 점

  • 키가 비어 있으면 계산할 수 없습니다.
  • 한글을 포함한 텍스트는 UTF-8 바이트로 바꿔 계산합니다.
  • S-box 미리보기는 KSA 직후 상태의 앞 16칸만 보여줍니다(전체 256칸 중 일부).

함께 보면 좋은 도구

마지막 검증: 2026년 9월 8일 · 결과는 참고용 추정치입니다.