Tôi đang sử dụng thanh ghi dịch chuyển phản hồi tuyến tính (LFSR) trong một người xáo trộn cấu hình như một trình trích xuất ngẫu nhiên cho một nguồn ngẫu nhiên yếu. Nguồn này là bán ngẫu nhiên (aka. nguồn Santha-Vazirani): các bit là tương quan và sai lệch (với entropy tối thiểu ~ 0,5 mỗi bit). Dưới đây là một ví dụ về LFSR trong cấu hình bộ mã hóa (cấu hình này là 12 bit trong khi tôi đang sử dụng thanh ghi 32 bit) với bộ lấy mẫu xuống:
Nguồn entropy ngẫu nhiên yếu cung cấp trực tiếp cho bộ mã hóa LFSR và đầu ra được lấy mẫu rất thấp (một bit đầu ra được lấy cho mỗi ví dụ: 1000 bit yếu). Phương pháp này đã được đề xuất ở đây. Tuy nhiên, tôi không tìm thấy các ví dụ trong đó các bộ mã hóa LFSR được sử dụng làm bộ trích xuất ngẫu nhiên. Do đó, tôi có các câu hỏi sau:
- Việc sử dụng một bộ mã hóa để trích xuất ngẫu nhiên dữ liệu bán ngẫu nhiên có phải là một cách sử dụng hợp lệ không? Làm thế nào để nó so sánh với các vắt khác? Ví dụ, bộ chiết von Neumann chỉ phù hợp với đầu vào sai lệch, độc lập (không tương quan) và là thời gian tuyến tính.
- Làm cách nào để tính toán lượng lấy mẫu/số thập phân được yêu cầu ở đầu ra của LSFR để đầu ra phù hợp cho việc sử dụng mật mã (được ước tính về entropy tối thiểu đầu vào)?
- Việc lấy toàn bộ thanh ghi cùng một lúc (ví dụ: đầu ra 32 bit cứ sau 32000 đầu vào yếu) thay vì 1 bit cho mỗi 1000 đầu vào có ý nghĩa gì?
bối cảnh: LFSR được sử dụng trong TRNG sau: