Tool to use a linear feedback shift register or LFSR and generate pseudo-random bits using XOR exclusive OR operations.
Linear Feedback Shift Register - dCode
Tag(s) : Informatics
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
A linear feedback shift register or LFSR is a system that generates bits from a register and a feedback function.
After several iterations, the register returns to a previous state already known and starts again in a loop, the number of iterations of which is called its period.
In practice, this kind of LFSR register is useful in cryptography because it allows the generation of pseudo-random numbers when the period is long enough.
From the current state of the binary register, a bit selection is chosen to apply an XOR operation to it.
The result is then concatenated at the start of the register (on the left) while the final value (on the right) is deleted from the register and displayed at the output.
Example: The register is 1010, an XOR ⊕ is applied to bits 0 and 2 (numbered from left to right starting from 0)
Step | Register | XOR | Output |
---|---|---|---|
0 | _______0101 | 0 ⊕ 0 = 0 | |
1 | ______0010_ | 0 ⊕ 1 = 1 | 1 |
2 | _____1001__ | 1 ⊕ 0 = 1 | 0 |
3 | ____1100___ | 1 ⊕ 0 = 1 | 1 |
4 | ___1110____ | 1 ⊕ 1 = 0 | 0 |
5 | __0111_____ | 0 ⊕ 1 = 1 | 0 |
6 | _1011______ | 0 ⊕ 1 = 1 | 1 |
7 | 0101_______ | 0 ⊕ 0 = 0 | 1 |
To use an LFSR, the user must configure the register length, determine the initial configuration of the flip-flops, choose an appropriate linear feedback function (XOR), and specify the number of iterations/cycles needed to generate the desired sequence.
The period of an LFSR is the number of iterations necessary for the generated sequence to return to its initial state.
If the register is at maximum feedback, there is no repetition, except after 2^n - 1 iteration, with n the length of the register.
dCode retains ownership of the "Linear Feedback Shift Register" source code. Any algorithm for the "Linear Feedback Shift Register" algorithm, applet or snippet or script (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or any "Linear Feedback Shift Register" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) or any database download or API access for "Linear Feedback Shift Register" or any other element are not public (except explicit open source licence like Creative Commons). Same with the download for offline use on PC, mobile, tablet, iPhone or Android app.
Reminder: dCode is an educational and teaching resource, accessible online for free and for everyone.
The content of the page "Linear Feedback Shift Register" and its results may be freely copied and reused, including for commercial purposes, provided that dCode.fr is cited as the source.
Exporting the results is free and can be done simply by clicking on the export icons ⤓ (.csv or .txt format) or ⧉ (copy and paste).
To cite dCode.fr on another website, use the link:
In a scientific article or book, the recommended bibliographic citation is: Linear Feedback Shift Register on dCode.fr [online website], retrieved on 2025-04-23,