LFSR 계산기 - 선형 피드백 시프트 레지스터

사용자 지정 시드와 피드백 탭을 사용해 선형 피드백 시프트 레지스터로 의사난수 이진 시퀀스를 생성합니다.

레지스터 길이, 초기 시드, 피드백 탭 위치, LFSR 유형, 반복 횟수를 입력한 다음 시퀀스 생성을 클릭하세요.

LFSR 계산기 - 선형 피드백 시프트 레지스터
사용자 지정 시드와 피드백 탭을 사용해 선형 피드백 시프트 레지스터로 의사난수 이진 시퀀스를 생성합니다.

초기 상태를 나타내는 0과 1만으로 된 이진 문자열

1부터 시작하는 탭 위치를 쉼표로 구분해 입력

실행할 시프트 연산 횟수

생성된 시퀀스
출력 비트: 000100110101111
시퀀스 주기: 15
최대 길이:
레지스터 상태:
0: 1000
1: 0100
2: 0010
3: 1001
4: 1100
5: 0110
6: 1011
7: 0101
8: 1010
9: 1101
10: 1110
11: 1111
12: 0111
13: 0011
14: 0001
15: 1000

LFSR 계산기 소개

선형 피드백 시프트 레지스터(LFSR)는 입력 비트가 이전 상태 비트 일부의 선형 함수(XOR)로 계산되는 시프트 레지스터입니다. 매 클록 사이클마다 레지스터는 한 칸씩 이동하고, 새 입력 비트는 피드백 탭이라 불리는 특정 위치의 비트를 XOR하여 계산되며, 출력은 시프트되어 나가는 비트입니다. 결과 이진 시퀀스는 무작위처럼 보이지만 완전히 결정적이며, 반복 주기는 레지스터 길이와 탭 선택에 따라 달라집니다. LFSR은 디지털 통신, 암호학, BIST(내장 자체 테스트) 회로, 확산 스펙트럼 시스템, 의사난수 생성에 널리 사용됩니다. n단 LFSR은 반복되기 전 최대 2ⁿ − 1비트의 시퀀스를 생성할 수 있으며(모든 0 상태는 제외), 신중하게 선택한 원시 다항식 탭으로 이 최대 길이 시퀀스를 구현할 수 있으므로 LFSR은 하드웨어에서 의사난수를 효율적으로 구현하는 방식입니다. 대표적인 LFSR 아키텍처는 두 가지입니다. Fibonacci(외부 피드백) LFSR에서는 피드백 비트가 고정된 탭 위치들로부터 계산되어 맨 왼쪽 단계로 들어가고, 나머지 단계는 오른쪽으로 이동합니다. 출력은 맨 오른쪽 단계에서 가져옵니다. Galois(내부 피드백) LFSR에서는 피드백 비트가 입력으로만 되돌아가는 것이 아니라 여러 중간 단계에 직접 XOR됩니다. XOR 연산이 직렬이 아니라 병렬로 수행되기 때문에 Galois LFSR이 하드웨어에서 더 빠릅니다. 최대 길이 LFSR, 즉 반복되기 전 2ⁿ − 1개의 모든 비영(0이 아닌) 상태를 순환하는 LFSR에는 원시 다항식을 피드백 다항식으로 사용해야 합니다. 탭 위치는 이 다항식의 0이 아닌 계수에 해당합니다. 4비트 LFSR에서 탭이 4와 3에 있을 때 원시 다항식은 x⁴ + x³ + 1이며, LFSR은 15개의 비영 상태를 모두 순환합니다. 이 계산기는 레지스터 길이, 시드, 탭 위치, LFSR 유형의 모든 조합을 탐색할 수 있게 해줍니다. 결과의 주기를 확인하면 선택한 탭이 최대 길이 시퀀스를 만드는지 검증할 수 있습니다. 주기가 2ⁿ − 1이면 그 탭은 원시 다항식을 이룹니다. 제공된 예제로 잘 알려진 최대 길이 구성을 확인해 보세요. LFSR의 활용 범위는 매우 넓습니다. Wi‑Fi와 Bluetooth에서는 주파수 호핑과 직접 시퀀스 확산을 위한 확산 코드에 LFSR이 쓰입니다. 저장과 통신 분야에서는 CRC(순환 중복 검사) 회로가 LFSR로 구현됩니다. 암호 스트림 암호에서는 LFSR이 핵심 원시 요소를 이룹니다(다만 현대 암호는 선형 암호분석을 막기 위해 여러 LFSR과 비선형 구성요소를 결합합니다). 칩 테스트에서는 LFSR 기반 시그니처 분석이 테스트 응답 데이터를 작은 시그니처로 압축합니다.

LFSR 예시

최대 길이 시퀀스와 다양한 레지스터 크기를 보여주는 일반적인 LFSR 구성입니다.

구성주기설명
4-bit, seed=1000, taps=[4,3], Fibonacci15(최대 길이)원시 다항식 x⁴+x³+1. 15개의 비영 4비트 상태를 모두 순환합니다.
8-bit, seed=10110001, taps=[8,6,5,4], Fibonacci255(최대 길이)암호학 응용에서 사용되는 표준 8비트 Fibonacci LFSR입니다.
5-bit, seed=10101, taps=[5,3], Galois31(최대 길이)내부 피드백 Galois LFSR로, 병렬 XOR 연산이 더 빠릅니다.
3-bit, seed=110, taps=[3,2], Fibonacci7(최대 길이)개념 이해에 적합한 간단한 3비트 LFSR입니다.

LFSR 계산기 사용 방법

  1. 레지스터 길이를 원하는 비트 수로 설정하세요(예: 4비트 LFSR이면 4).
  2. 초기 시드를 레지스터 길이와 같은 길이의 이진 문자열로 입력하세요(예: 1000). 모든 0 상태는 사용하지 마세요. LFSR이 멈춥니다.
  3. 피드백 탭을 쉼표로 구분해 입력하세요(예: 4, 3). 탭 위치는 맨 왼쪽 단계부터 1로 셉니다.
  4. LFSR 유형을 선택하세요: Fibonacci(외부 피드백) 또는 Galois(내부 피드백).
  5. 반복 횟수를 설정한 뒤 시퀀스 생성을 클릭하면 각 단계의 출력 비트 흐름과 레지스터 상태를 볼 수 있습니다.

LFSR 계산기 FAQ

최대 길이 LFSR이란 무엇인가요?
최대 길이 LFSR은 반복되기 전에 가능한 비영 상태 2ⁿ − 1개를 모두 순환합니다. 이를 위해서는 탭 위치로 정의되는 피드백 다항식이 GF(2) 위의 원시 다항식이어야 합니다. 4비트 LFSR의 최대 주기는 15, 8비트 LFSR의 최대 주기는 255입니다. 최대 길이 시퀀스(m-sequence)는 매우 좋은 의사난수 특성을 가집니다.
왜 모든 0 상태는 제외되나요?
레지스터의 모든 비트가 0이면 XOR 피드백은 항상 0이 되어 레지스터가 영원히 모든 0 상태에 머무릅니다. 그래서 초기 시드는 모든 0이면 안 됩니다. 같은 이유로 최대 주기는 2ⁿ이 아니라 2ⁿ − 1입니다.
Fibonacci와 Galois LFSR의 차이는 무엇인가요?
Fibonacci LFSR에서는 피드백 비트가 모든 탭 위치의 XOR로 계산되어 첫 번째 단계로 들어가고, 나머지 단계는 단순히 이동합니다. Galois LFSR에서는 피드백 비트가 여러 중간 단계에 직접 병렬 XOR됩니다. 대응하는 다항식이 같다면 둘은 같은 시퀀스를 만들지만, XOR가 병렬이므로 Galois가 하드웨어에서 더 빠릅니다.
올바른 탭 위치는 어떻게 고르나요?
최대 길이 시퀀스를 얻으려면 탭 위치가 GF(2) 위의 원시 다항식에 대응해야 합니다. 일반적인 레지스터 길이에 대한 원시 다항식 표는 널리 공개되어 있습니다. 예를 들어 n=4에서는 원시 다항식 x⁴+x³+1이 탭 [4,3]에 대응하고, n=8에서는 다항식 x⁸+x⁶+x⁵+x⁴+1이 탭 [8,6,5,4]에 대응합니다.
LFSR 시퀀스는 정말 무작위인가요?
아니요. LFSR 시퀀스는 결정적이며, 시드와 탭 위치를 알면 완전히 예측할 수 있습니다. 의사난수라고 불리는 이유는 많은 통계적 무작위성 테스트를 통과하고, 구성을 모르는 관찰자에게는 무작위처럼 보이기 때문입니다. 암호학적 용도에서는 선형 암호분석에 견디기 위해 비선형 구성요소와 결합해야 합니다.
CRC는 무엇이며 LFSR과 어떤 관련이 있나요?
CRC(순환 중복 검사)는 메시지 다항식을 GF(2) 위의 생성 다항식으로 나누고 나머지를 덧붙여 계산하는 오류 검출 코드입니다. 이 나눗셈 과정은 메시지 비트를 생성 다항식으로 정의된 LFSR에 통과시키는 것과 같습니다. 표준 CRC-32는 특정한 32비트 원시 다항식을 사용하며, 하드웨어 구현은 32단 LFSR입니다.