LFSR88 is a combined linear feedback shift register using three Tausworthe components with primitive trinomials. With a period of approximately 2^88, it provides excellent statistical quality for simulations and Monte Carlo methods. Simpler and faster than LFSR113, widely used in GNU Scientific Library (GSL).
| Property | Value |
|---|---|
| Category | Random Number Generators |
| Sub-category | Tausworthe LFSR |
| Security status | 🎓 Educational Only |
| Complexity | Intermediate |
| Inventor | Pierre L’Ecuyer |
| Year | 1996 |
| Origin | 🇨🇦 Canada |
| Source | algorithms/random/lfsr88.js |
| Parameter | Supported values |
|---|---|
| Seed sizes | 1 byte (8 bits) to 12 bytes (96 bits) |
| Flag | Value |
|---|---|
IsDeterministic |
Yes |
IsCryptographicallySecure |
No |
Status: 🎓 Educational Only
No vulnerabilities are recorded for this implementation.
5 vectors ship with this algorithm and run in the test suite. Byte values are hexadecimal.
Vector 1 — Seed (12345, 23456, 34567): First 5 outputs - verified against LFSR88 specification
| Field | Value |
|---|---|
seed |
0000303900005ba000008707 |
outputSize |
20 |
input |
null |
expected |
0d063a5739786e63455d3d002ca381e2805afcf6 |
Vector 2 — Seed (987654321, 123456789, 362436069): First 10 outputs - large seed values
| Field | Value |
|---|---|
seed |
3ade68b1075bcd15159a55e5 |
outputSize |
40 |
input |
null |
expected |
38e0e6ebb81c2db71e43dc1d9567cf51 78b9be0ccd95f930e9903cb4b3d3529e c1423895391f9e51 |
Vector 3 — Seed (2, 8, 16): Minimal valid seed values - edge case test
| Field | Value |
|---|---|
seed |
000000020000000800000010 |
outputSize |
20 |
input |
null |
expected |
0020208002002c8048088062804d2000428049a0 |
Vector 4 — Seed (1000000, 2000000, 3000000): First 8 outputs - round seed values
| Field | Value |
|---|---|
seed |
000f4240001e8480002dc6c0 |
outputSize |
32 |
input |
null |
expected |
784c7d760fa83ede80fde985b34c4faeeaacedf0b65239864005b43bc328d759 |
Vector 5 — Seed (12345, 23456, 34567): Outputs 11-15 - verifies long-term state progression
| Field | Value |
|---|---|
seed |
0000303900005ba000008707 |
outputSize |
20 |
skip |
10 |
input |
null |
expected |
93f757cdb1d16696117eee33dd3fcfdd2b582a1e |