RC4 스트림 암호 계산기
RC4의 KSA·PRGA 두 단계를 그대로 돌려 키스트림 바이트와 암호문을 계산합니다. S-box가 뒤섞이는 과정도 함께 보여줍니다.
평문
암호문(16진수)
KSA가 키로 0~255의 순열 S를 만들고, PRGA가 그 S를 계속 휘저으며 키스트림을 한 바이트씩 뽑습니다. 이 키스트림을 평문과 XOR하면 암호문이고, XOR이 자기역원이라 같은 연산으로 복호화도 됩니다. 다만 RC4는 초반 키스트림 바이트에 통계적 편향이 있어 실제로 깨진 암호입니다(WEP가 이 편향으로 뚫렸습니다) — 학습용으로만 쓰세요.
사용 방법
- 1키를 입력합니다 — 텍스트로 넣으면 UTF-8 바이트로 바뀝니다.
- 2암호화할 평문(또는 복호화할 16진수 암호문)을 입력합니다.
- 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칸 중 일부).
함께 보면 좋은 도구
XOR 암호평문 바이트와 반복 키 바이트를 XOR해 암호화·복호화합니다.Xorshift 계산기시드 하나로 시프트+XOR 세 번만 반복하는 Xorshift 의사난수 생성기의 출력 수열을 계산하고, 역연산으로 원래 시드가 복원되는지 검증합니다.LCG 난수X(n+1) = (a·X(n) + c) mod m 수열을 만들고 실제 주기와 최대 주기 조건(헐-더먼-그린버거 정리)을 판정합니다.gitignore 판정.gitignore 규칙과 경로를 넣으면 그 파일이 무시되는지, 어느 줄이 마지막으로 이겼는지 알려줍니다.울프람 규칙규칙 번호 0~255를 8비트로 풀어 세 칸 이웃에 대응시키고 세대를 쌓아 무늬를 그립니다.
마지막 검증: 2026년 9월 8일 · 결과는 참고용 추정치입니다.