# 퇴화 사이클 (Degenerate Cycle)

퇴화 사이클(degenerate cycle)은 유한 상태 기계(FSM)나 난수 생성기(RNG)의 상태 전이에서, 상태가 단 하나뿐이라 다음 상태가 항상 자기 자신인 사이클을 말합니다. 상태가 바뀌지 않으므로 출력도 계속 같은 값이 되어, 수열 생성기로서의 기능을 잃습니다.

## 자세히 알아보기

유한한 상태를 가진 결정론적 생성기는 어떤 초기 상태에서 출발하든 결국 이전에 거친 상태로 되돌아와 사이클을 이룹니다. 생성기의 모든 상태는 하나 이상의 사이클(또는 사이클로 이어지는 경로)에 속하며, 이 사이클의 길이가 곧 출력 수열의 주기입니다. 퇴화 사이클은 길이가 1인 가장 극단적인 경우입니다.

대표적인 예는 선형 피드백 시프트 레지스터(LFSR)입니다. n비트 LFSR의 상태가 모두 0이면 피드백 값도 0이므로 다음 상태도 모두 0이 되어 영원히 바뀌지 않습니다. 원시 다항식을 사용한 최대 길이 LFSR은 0이 아닌 2ⁿ − 1개의 상태를 모두 도는 하나의 긴 사이클과, 모두 0인 상태 하나로 된 퇴화 사이클을 가집니다.

넓게는 길이가 매우 짧은 사이클도 실무에서 문제가 됩니다. 그래서 암호용 생성기를 설계할 때는 사이클 구조를 분석해 짧은 사이클이나 퇴화 사이클에 빠지는 초기 상태를 배제하고, 시드가 그런 상태가 되지 않도록 검사합니다.

퇴화 사이클은 비선형 생성기나 상태 기계에서도 나타날 수 있으며, 설계자가 예상하지 못한 '고정점'으로 존재하는 경우가 많습니다. 테스트 과정에서 생성기가 특정 상태 이후 같은 값만 출력한다면 퇴화 사이클이나 짧은 사이클을 의심해야 합니다.

## 블록체인·암호화폐에서는

지갑의 키와 논스 생성은 운영체제의 암호학적 난수 생성기(CSPRNG)에 의존합니다. 생성기가 퇴화 사이클이나 짧은 주기에 빠지면 같은 값이 반복되어, 예를 들어 ECDSA 서명에서 논스가 재사용되면 개인 키가 노출될 수 있습니다. 2012년에는 공개 키 연구에서 약한 난수 때문에 서로 다른 장치가 같은 RSA 소인수를 공유하는 사례가 대량으로 발견되기도 했습니다. 이런 이유로 지갑과 거래소는 검증된 CSPRNG만 사용하고 직접 만든 단순 생성기를 쓰지 않습니다.

## 쉽게 말하면

고장 나서 한 칸에 멈춘 채 같은 숫자만 보여주는 회전식 번호판과 같습니다.

## 예시

다항식 x⁴ + x + 1을 쓰는 4비트 LFSR은 0001에서 시작하면 15개 상태를 모두 돈 뒤 0001로 돌아옵니다(주기 15). 하지만 0000에서 시작하면 계속 0000에 머무는데, 이것이 퇴화 사이클입니다.

---
출처: https://achivx.kr/glossary/degenerate-cycle-%ED%87%B4%ED%99%94-%EC%82%AC%EC%9D%B4%ED%81%B4/ · ACHIVX 용어 사전 · 수정일 2026-10-20
