อัลกอริทึม Berlekamp-Massey เป็นขั้นตอนสำหรับ LFSR สังเคราะห์; มัน. พบ สั้นที่สุด LFSR ที่จะสร้างลำดับที่กำหนด $s_0, s_1, s_2, \cdots$. อัลกอริทึมคือ ซ้ำ (ไม่เรียกซ้ำเนื่องจากไม่ได้เรียกตัวเอง) โดยตรวจสอบลำดับทีละสัญลักษณ์จนกว่าจะประมวลผลลำดับที่กำหนดทั้งหมด ในตอนท้ายของ $i$การทำซ้ำครั้งที่อัลกอริทึมได้ตรวจสอบแล้ว $s_0, s_1, \cdots, s_{i-1}$ (สอบของ $s_i, s_{i+1}, \cdots$ ยังมาไม่ถึง) และได้ทำการสังเคราะห์ สั้นที่สุด LFSR ที่จะสร้าง $s_0, s_1, \cdots, s_{i-1}$. จากนั้นในตอนต้นของ $(i+1)$- การวนซ้ำ อัลกอริทึมจะกำหนดว่า $s_i$ จะถูกสร้างขึ้นโดย LFSR ที่เพิ่งค้นพบโดยการคำนวณว่า ต่อไป เอาต์พุต $\หมวก{s}_i$ จะมาจาก LFSR ที่เพิ่งสังเคราะห์ขึ้นและเปรียบเทียบกับสิ่งที่เรา ต้องการ LFSR เพื่อสร้างกล่าวคือ ที่ให้ไว้ $s_i$. ความแตกต่างที่เรียกว่า ความคลาดเคลื่อน $\delta_i$ และถ้า $\delta_i$ ไม่เป็นศูนย์, the ก่อนหน้านี้- LFSR ที่สังเคราะห์ได้คือ ปรับปรุง เพื่อให้ LFSR ที่อัปเดตทำการคำนวณ $s_0, s_1, \cdots, s_{i-1}, {\mathbf s_i}$ (เน้นย้ำ). การอัปเดตนี้อาจเพิ่มความยาว LFSR และยังเปลี่ยนการแตะป้อนกลับ หรือเพียงแค่เปลี่ยนการแตะป้อนกลับ สามารถพิสูจน์ได้ว่าหากการวนซ้ำส่งผลให้ความยาว LFSR เพิ่มขึ้นและเปลี่ยนการต๊าป ดังนั้นในการทำซ้ำครั้งถัดไป เฉพาะการต๊าปป้อนกลับเท่านั้นที่อาจเปลี่ยนแปลงได้ LFSR ไม่สามารถเพิ่มความยาวได้
ในระยะสั้น ไม่จำเป็นต้องกังวลว่าจะเกิดอะไรขึ้นกับความคลาดเคลื่อนก่อนหน้านี้ LFSR ปัจจุบันคือ รับประกันการสร้างลำดับทั้งหมดที่ตรวจสอบจนถึงตอนนี้ โดยไม่มีความแตกต่างใด ๆ เกิดขึ้นระหว่างกระบวนการสร้าง