Linear Feedback Shift Registers for the Uninitiated, Part III: Multiplicative Inverse, and Blankinship's Algorithm
Summary
This blog post explains how to compute multiplicative inverses of polynomials used in LFSRs and demonstrates Blankinship's algorithm as a practical method for that computation. Readers will learn how those inverses relate to feedback-tap selection, maximal-length sequences, and practical implementation trade-offs for firmware and hardware.
Key Takeaways
- Compute polynomial multiplicative inverses in GF(2)[x] using Blankinship's algorithm (a polynomial extended-Euclid variant).
- Apply inverse-polynomial results to derive feedback taps for Fibonacci and Galois LFSR implementations and to check for primitive (maximal-length) polynomials.
- Implement the algorithm efficiently in C or RTL, handling bitwise polynomial arithmetic and edge cases for constrained embedded environments.
- Verify sequence properties (period, linear complexity, autocorrelation) and test LFSR behavior with deterministic patterns for debug and diagnostics.
- Use LFSRs appropriately in firmware roles such as PRNGs, scramblers, CRC test-vector generation, and lightweight stream ciphers while understanding their security limits.
Who Should Read This
Embedded firmware and hardware engineers (mid-level) working on RNGs, scramblers, test pattern generators, or lightweight cryptography who need practical methods to compute polynomial inverses and synthesize LFSRs.
TimelessIntermediate
Related Documents
- Consistent Overhead Byte Stuffing TimelessIntermediate
- PID Without a PhD TimelessIntermediate
- Introduction to Embedded Systems - A Cyber-Physical Systems Approach Still RelevantIntermediate
- Can an RTOS be really real-time? TimelessAdvanced
- Memory Mapped I/O in C TimelessIntermediate








