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. Except explicit open source licence (indicated Creative Commons / free), the "Linear Feedback Shift Register" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "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.) and all data download, script, or API access for "Linear Feedback Shift Register" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
The copy-paste of the page "Linear Feedback Shift Register" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
Linear Feedback Shift Register on dCode.fr [online website], retrieved on 2024-10-05,