Thanh ghi dịch chuyển phản hồi tuyến tính (LFSR)

Thanh ghi dịch chuyển phản hồi tuyến tính (LFSR)

Tìm hiểu cách các mạch đơn giản này tạo ra các trình tự phức tạp cho các thiết bị điện tử hiện đại.

Thanh ghi dịch chuyển phản hồi tuyến tính (LFSR) là các đối tượng thú vị trong lĩnh vực hệ thống kỹ thuật số, mật mã và phát hiện lỗi. Chúng được sử dụng cùng với nhau và có giá trị trong việc sản xuất các số giả ngẫu nhiên và tối ưu hóa các mạch kỹ thuật số. Cho dù bạn đang tìm hiểu chi tiết về công nghệ máy tính hay có ý định khám phá công nghệ cao, việc hiểu LFSR có thể mở ra nhiều bản cáo bạch - từ giao tiếp an toàn đến lưu trữ dữ liệu tối ưu. Hướng dẫn về LFSR này sẽ giúp bạn hiểu mục đích, hoạt động và tính hữu ích của chúng để bạn có thể thực sự xem xét tầm quan trọng của chúng đối với sự tiến bộ trong công nghệ.

Thanh ghi dịch chuyển phản hồi tuyến tính (LFSR) là gì?

Thanh ghi dịch chuyển phản hồi tuyến tính là một loại thanh ghi dịch chuyển được sử dụng trong các mạch kỹ thuật số hoạt động tuần tự; do đó khi một đồng hồ được cung cấp, nó có thể dịch chuyển nội dung của nó ít hơn một bit nguyên vẹn. Sự khác biệt của LFSR là đầu vào - bit được đưa trở lại thanh ghi - có phản hồi tuyến tính tùy thuộc vào trạng thái hiện tại của thanh ghi. Thường thì hàm này là một XOR của một số bit của thanh ghi.

Các tính năng của thanh ghi dịch chuyển phản hồi tuyến tính

  • Tính ngẫu nhiên giả: FLSRS có thể tạo ra các chuỗi giả ngẫu nhiên thay đổi theo chu kỳ, điều này có nghĩa là chúng đã đăng ký các trình tự trong một chu kỳ cố định.
  • Hiệu quả: Chúng được thực hiện bằng cách sử dụng các ca và hoạt động XOR, đơn giản và tối ưu về số lượng hoạt động.
  • Tính chu kỳ: Số bit có thể được tạo ra bởi một LFSR dựa trên đa thức đặc trưng của nó và có thể lớn tới 2^n-1 đối với LFSR n-bit.
  • Khả năng dự đoán: Mặc dù các dãy là giả ngẫu nhiên, trạng thái của trình tạo cùng với đa thức đặc trưng cho phép một người dự đoán toàn bộ dãy.

Các thành phần chính của LFSR

  • Shift Register: Một nhóm dép xỏ ngón độc đáo (thường là loại D) được sắp xếp theo tầng trong đó đầu ra của một flip-flop được liên kết với đầu vào của flip-flop tiếp theo. Số lượng dép xỏ ngón xác định chiều dài của LFSR (n).
  • Chức năng phản hồi: Một dạng tuyến tính (thường là cổng XOR) để quyết định đầu vào mới cho dép xỏ ngón đầu tiên bằng cách so sánh trạng thái hiện tại của các bit mong muốn (vòi) trong thanh ghi dịch chuyển. Do đó, hàm phản hồi được xác định bởi đa thức đặc trưng của LFSR.
  • Taps: Các vị trí bit đặc biệt trong thanh ghi dịch chuyển mà từ đó các giá trị được lấy để sử dụng bởi chức năng phản hồi. Quyết định liên quan đến vòi là cần thiết vì nó xác định các đa thức đặc trưng và thay đổi các thuộc tính trình tự.
  • Trạng thái ban đầu: Giá trị nhị phân ít quan trọng nhất trước tiên được dịch chuyển vào thanh ghi dịch chuyển. Trạng thái này phải không phải bằng không, để LFSR có hiệu quả và cung cấp một chuỗi có độ dài tối đa mong muốn.
  • Tín hiệu đồng hồ: Một tín hiệu sẽ được sử dụng để khởi chạy hoặc đồng bộ hóa quá trình chuyển số. Trên mỗi xung đồng hồ, thanh ghi di chuyển nội dung của thanh ghi một bit sang phải (hoặc trái) và chức năng phản hồi xác định bit mới được di chuyển đến flip-flop đầu tiên.

Cơ chế làm việc

Khởi tạo

  • Thanh ghi dịch chuyển được đặt ở trạng thái ban đầu là trạng thái không phải không, chẳng hạn như một từ nhị phân được lưu trữ trong dép xỏ ngón thanh ghi dịch chuyển.

Dịch chuyển

  • Như chúng tôi đã nói, bit ở vị trí cuối cùng của thanh ghi dịch chuyển rời khỏi thanh ghi trên mỗi xung đồng hồ, và tất cả các bit khác sau đó di chuyển một vị trí sang phải (hoặc trái).

Tính toán phản hồi

  • Chức năng phản hồi xác định một bit mới tùy thuộc vào trạng thái của một số vòi nhất định (các bit đã chọn) trong thanh ghi dịch chuyển. Các vòi này được chọn dựa trên đa thức đặc trưng của LFSR.
  • Nói chung, hàm phản hồi là một OR độc quyền của các giá trị của các bit được khai thác trong thanh ghi dịch chuyển. Điều này tạo ra đầu ra thanh ghi dịch chuyển và nó trở thành đầu vào mới để thanh ghi dịch chuyển và quá trình tiếp tục cho đến khi số bit mong muốn được dịch chuyển.

Tiêm phản hồi

  • Trong quá trình vận hành ca làm việc, một bit mới được tính toán bởi chức năng phản hồi và được tải vào flip-flop đầu tiên của thanh ghi dịch chuyển.

Chuyển đổi trạng thái

  • Trong thanh ghi đầu tiên, dữ liệu chỉ đơn giản là chốt vào cạnh tăng của đồng hồ - đây là dữ liệu đã được dịch chuyển ra ngoài hoặc dữ liệu phản hồi.

Tạo trình tự

  • Giá trị tuần tự được tạo ra từ các bit đầu ra là các bit được dịch chuyển ra khỏi thanh ghi (hoặc một bit riêng lẻ trong thanh ghi). Dãy này có thể được sử dụng cho một loạt các ứng dụng bao gồm nhưng không giới hạn ở việc tạo số giả ngẫu nhiên, mật mã và xử lý tín hiệu kỹ thuật số.

Các loại thanh ghi dịch chuyển phản hồi tuyến tính

Fibonacci LFSR

  • Cấu hình: Fibonacci LFSR; bit phản hồi được tạo ra bởi một hoạt động XOR trên các bit được xác định trước (tap) của thanh ghi và được đồng hồ vào đầu vào của D-FF đầu tiên.
  • Đặc điểm: Loại này thường đơn giản và rất dễ thực hiện như một chiến lược. Trạng thái của thanh ghi được dịch chuyển, sang phải (hoặc trái), một vị trí trên mỗi xung đồng hồ.
  • Ứng dụng: Thường được sử dụng trong việc tạo số chuỗi, làm mượt cũng như trong các hệ thống mã hóa.
  • Ví dụ: Đối với LFSR 4 bit cụ thể với các vòi ở vị trí 4 và 1, hàm phản hồi là x ^ 4 + x + 1

Galois LFSR

  • Cấu hình: Trong Galois LFSR, chỉ có ảnh hưởng của các bit phản hồi trên một số vị trí trong thanh ghi. Đó chính xác là phản hồi được áp dụng cho một số vòi và do đó, các bit bị dịch chuyển.
  • Đặc điểm: Hiệu quả hơn từ quan điểm triển khai phần cứng vì nó có thể tính toán nhiều hoạt động cùng một lúc. Điều này có thể nhanh hơn Fibonacci LFSR, đặc biệt là do sự hỗ trợ của cơ chế phản hồi.
  • Ứng dụng: Nó đặc biệt được sử dụng trong mật mã và xử lý tín hiệu kỹ thuật số, nơi tốc độ là một khía cạnh rất quan trọng.
  • Ví dụ: Trong Galois LFSR 4 bit với các vòi nằm ở 4, 1, phản hồi là với đầu vào được đưa vào thanh ghi cũng như các vòi trực tiếp.

Thanh ghi dịch chuyển phản hồi phi tuyến tính (NLFSR)

  • Cấu hình: Sự khác biệt là trong NLFSR, chức năng phản hồi không chỉ là XOR mà còn là một hàm phi tuyến tính.
  • Đặc điểm: Chúng có thể tạo ra các mẫu dài hơn và ít xác định hơn, làm tăng tính bảo mật và tính ngẫu nhiên. Tuy nhiên, chúng đặt ra nhiều khó khăn hơn về mặt phân tích và ứng dụng.
  • Ứng dụng: Áp dụng trong các trường hợp có nhu cầu bảo vệ đáng kể hơn vì lý do tương tự như độ khó nâng cao của các mẫu trình tự.
  • Ví dụ: Các phép toán phi tuyến tính như AND và OR, có thể được sử dụng trong lựa chọn hàm phản hồi trong số các bit đã chọn.

LFSR bị cắt ngắn

  • Cấu hình: Các LFSR này gần đúng với các LFSR dài hơn và chỉ một số bit cụ thể được sử dụng để tạo thành chuỗi đầu ra.
  • Đặc điểm: Chúng giữ lại một số đặc điểm của LFSR dài hơn nhưng ít hơn LFSR và có trình tự chu kỳ ngắn hơn.
  • Ứng dụng: Đơn giản hơn trình tự LFSR đầy đủ hoạt động tốt khi có ít trình tự hơn và không cần độ phức tạp LFSR đầy đủ.
  • Ví dụ: LFSR bị cắt bớt 5 bit thu được từ LFSR 10 bit.

LFSR có thể lập trình

  • Cấu hình: Các LFSR này cũng có thể thay đổi vị trí vòi của chúng, theo cách có thể giả định một đa thức đặc trưng khác.
  • Đặc điểm: Dễ sử dụng và linh hoạt vì người dùng có thể thay đổi các ses có thể thay đổi cho nhau thành các đa thức và độ dài khác nhau của dãy.
  • Ứng dụng: Được sử dụng trong các hệ thống mà các trình tự khác nhau là cần thiết cho cùng một hệ thống tại một thời điểm nhất định, bao gồm các hệ thống mật mã thích ứng và phần cứng có thể cấu hình lại.
  • Ví dụ: Một LFSR có các vòi có thể lập trình để nó có thể vận hành các chức năng dịch chuyển sang phải khác nhau như x^4 + x^3 + 1 & x^4 + x + 1

Các ứng dụng

Mật mã

  • Mật mã luồng: LFSR tham gia vào các mã hóa luồng trong việc tạo các luồng khóa để mã hóa và giải mã dữ liệu. Một số ví dụ bao gồm những người được sử dụng trong hệ thống thông tin di động GSM như A5/1 và A5/2.

Phát hiện và sửa lỗi

  • CRC (Kiểm tra dự phòng theo chu kỳ): LFSR thường được sử dụng trong tính toán CRClà tổng được kiểm tra được sử dụng để kiểm tra bất kỳ sự thay đổi hoặc sửa đổi nào của dữ liệu thô qua mạng kỹ thuật số và phương tiện lưu trữ.

Tạo số giả ngẫu nhiên

  • Mô phỏng và mô hình hóa: LFSR tạo ra các số giả ngẫu nhiên được sử dụng trong mô phỏng, mô hình hóa và thử nghiệm.

Xử lý tín hiệu kỹ thuật số

  • Xáo trộn: Trong các hệ thống thông tin liên lạc, LFSR được sử dụng để tăng chất lượng tín hiệu với việc bổ sung sự nhầm lẫn bằng cách xóa các mẫu.

Tự kiểm tra tích hợp (BIST)

  • Phát hiện lỗi: Chúng hỗ trợ xác định lỗi trong quá trình sản xuất và vận hành thiết bị điện tử bảng mạch in (PCB).

Nén dữ liệu

  • Tạo mẫu: LFSR giúp phát triển các trình tự xác định tìm thấy ứng dụng trong nén dữ liệu trong đó kích thước lưu trữ và truyền dẫn quyết định khả năng tồn tại của giải pháp.

Lợi ích của việc sử dụng LFSR

Đơn giản

  • Thiết kế: Các mạch của LFSR khá dễ xây dựng hoặc lập trình vì chúng bao gồm một chuỗi hoạt động đơn giản. Chúng chủ yếu sử dụng thanh ghi dịch chuyển và cổng XOR, là những mạch điện tử tương đối thô sơ.

Hiệu quả

  • Tốc độ: Do sự dịch chuyển và số học dựa trên XOR, LFSR có khả năng đạt tốc độ cao và do đó được sử dụng trong các ứng dụng tốc độ cao.

Định kỳ

  • Trình tự độ dài tối đa: Các LFSR nếu được thiết kế phù hợp có khả năng tạo ra các chuỗi độ dài tối đa và do đó có chu kỳ 2 ^ n-1 cho một thanh ghi n-bit. Điều này đặc biệt quan trọng đối với những trường hợp người ta cần các chuỗi giả ngẫu nhiên dài.

Linh hoạt

  • Vòi có thể định cấu hình: Vòi phản hồi LFSR có thể được thao tác theo cách có thể tạo nhiều trình tự khác nhau tùy thuộc vào nhu cầu.

Hiệu quả tài nguyên

  • Chi phí phần cứng thấp: Ưu điểm của LFSR là về phần cứng, chúng ít đòi hỏi hơn so với các PRNG hoặc thiết bị mật mã khác.

Hạn chế của LFSR

Khả năng dự đoán

  • Bản chất xác định: dựa trên trạng thái ban đầu và đa thức đặc trưng, vẫn có tất cả các dãy được tạo ra bởi một LFSR. Đây là một nhược điểm quan trọng và có thể là một vấn đề lớn trong các ứng dụng mật mã, nơi tính không thể đoán trước là quan trọng.

Tính ngẫu nhiên hạn chế

  • Trình tự ngẫu nhiên giả: Các trình tự được tạo ra bởi LFSR là ngẫu nhiên giả, trái ngược với ngẫu nhiên. Trong trường hợp cần tạo số ngẫu nhiên cao, ví dụ, trong việc tạo khóa mật mã, LFSR có thể không đủ để thực hiện.

Khoảng thời gian ngắn cho đa thức không cực đại

  • Đa thức dưới tối ưu: Nếu đa thức đặc trưng không phải là nguyên thủy thì LFSR sẽ tạo ra các dãy có chu kỳ ngắn hơn trái ngược với chu kỳ tối đa là 2 ^ n - 1. Điều này có thể hạn chế hiệu suất của LFSR, đặc biệt là trong các ứng dụng yêu cầu trình tự dài hơn.

Dễ bị tấn công

  • Điểm yếu mật mã: LFSR với phản hồi tuyến tính bao gồm một số cuộc tấn công mật mã phổ quát như tấn công tương quan và tấn công phức tạp tuyến tính. Những điểm yếu này như sau và có thể đe dọa tính bảo mật của các hệ thống sử dụng chuỗi giả ngẫu nhiên dựa trên LFSR.

Thuộc tính tương quan

  • Tương quan phi tuyến tính kém: Trong một số trường hợp, các đặc tính ngẫu nhiên của LFSR có thể kém khi cần các mối quan hệ phi tuyến tính cho thế hệ. Đây có thể là một bất lợi trong những ứng dụng yêu cầu biến đổi phi tuyến tính hoặc các chức năng trộn phức tạp.

Kết luận

Tóm lại, LFSR là yếu tố quan trọng trong hệ thống kỹ thuật số và cung cấp những cách hiệu quả và dễ dàng để có được PRS. Chúng dễ thực hiện, hoạt động nhanh chóng và không yêu cầu nhiều phần cứng, do đó phù hợp với các mục đích sử dụng như mật mã, phát hiện lỗi, sử dụng trong xử lý tín hiệu kỹ thuật số. Tuy nhiên, chúng tương đối dễ đoán và dễ bị tấn công và do đó không phù hợp với các ứng dụng có độ bảo mật cao. Tuy nhiên, vì những hạn chế này vẫn tồn tại trong LFSR ngày nay, chúng vẫn hữu ích khi được sử dụng cùng với các kỹ thuật mật mã khác sẽ làm cho nó hiệu quả hơn.

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Win a Raspberry Pi!

Answer 5 questions for your chance to win!
Question 1

What color is the sky?

Tìm kiếm bằng danh mục

Chọn danh mục