도구스개발

파이스텔 네트워크 시뮬레이터

DES 등 여러 블록 암호의 뼈대인 구조를 시뮬레이션합니다. 라운드 함수가 되돌릴 수 없어도 구조 자체는 항상 원문으로 되돌아간다는 것을 보여줍니다.

암호화 — 라운드별 (L, R)

초기L=5R=3
라운드1L=3R=13
라운드2L=13R=83
라운드3L=83R=255
라운드4L=255R=140
최종 암호문 (L, R)(255, 140)
복호화 결과(5, 3) — 원문과 일치
라운드 함수는 데모용(라운드키와 XOR한 뒤 3비트 좌회전)입니다. 이 함수를 알아도 상관없습니다 — 파이스텔 구조의 핵심은 라운드 함수가 무엇이든(심지어 정보를 버리는 함수여도) 같은 라운드키로 반대 순서를 돌리면 항상 원문으로 돌아온다는 점입니다.

사용 방법

  1. 1좌우 절반(L, R) 초기값과 라운드키 목록을 입력합니다.
  2. 2라운드마다 L, R이 어떻게 갱신되는지 확인합니다.
  3. 3같은 라운드키로 복호화하면 정확히 원문으로 돌아오는지 확인합니다.

자주 묻는 질문

평문을 좌우 절반(L, R)으로 나눠 라운드마다 L' = R, R' = L XOR F(R, 라운드키)로 갱신합니다. 복호화는 라운드를 반대 순서로 돌리면서 같은 식을 적용하면 정확히 원래 L, R로 돌아옵니다.

F는 XOR로만 쓰이고, XOR은 같은 값을 두 번 XOR하면 원래대로 돌아오는 성질(A XOR B XOR B = A)이 있습니다. F 자신을 거꾸로 계산할 필요가 없이, 그냥 같은 F(같은 입력)를 한 번 더 계산해서 XOR하기만 하면 됩니다. 그래서 F가 정보를 마구 버리는 함수(예: 상수 함수)여도 전체 구조는 항상 되돌릴 수 있습니다.

F가 되돌릴 필요가 없다는 것은 F를 마음껏 복잡하고 비선형적으로(암호 분석을 어렵게) 설계해도 전체 암호의 복호화 가능성에는 영향이 없다는 뜻입니다. 그래서 설계자는 "안전한 F를 만드는 것"에만 집중할 수 있습니다.

알아두면 좋은 점

  • L0=5, R0=3, 키=[2,7], F(r,k)=r XOR k인 예제를 손으로 계산해(최종 (L,R)=(4,0)) 대조 검증했습니다.
  • 정보를 완전히 버리는 극단적인 라운드 함수(상수 함수, 최하위 비트만 반환, 덧셈처럼 XOR이 아닌 연산)로도 무작위 입력 수십 개에서 암호화 후 복호화가 항상 정확히 원문으로 돌아오는지 확인했습니다 — 구조 자체의 수학적 성질이라 외부 자료 대조가 필요 없었습니다.

함께 보면 좋은 도구

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