Áp dụng thanh ghi dịch phản hồi tuyến tính (LFSR) Fibonacci độ dài L (định nghĩa như bài "Sinh dãy bit từ LFSR": trạng thái L bit ở vị trí 1,…,L; bit phản hồi mới là XOR các bit tại vị trí tap của trạng thái hiện tại; dịch trái, chèn bit phản hồi vào vị trí cuối) làm bộ sinh dòng khóa cho một mã dòng nhị phân.
Cho bản rõ P (dạng hex, biểu diễn ∣P∣ byte, có thể rỗng), cần sinh ra 8×∣P∣ bit dòng khóa liên tiếp từ LFSR (bit đầu ra ở mỗi bước là bit tại vị trí 1 như đã định nghĩa). Đóng gói các bit này thành byte theo thứ tự MSB trước (8 bit liên tiếp đầu tiên tạo thành byte dòng khóa đầu tiên, bit sinh ra trước là bit cao nhất của byte).
Bản mã C = XOR từng byte của P với byte dòng khóa tương ứng cùng vị trí.
Hãy in ra bản mã C dạng hex in hoa.
Ví dụ: P= 48656c6c6f (chuỗi "Hello"), L=4, seed=1000, tap={4,1}: dòng khóa 40 bit đầu là 1000111101011001000111101011001000111101, đóng gói thành các byte 8F 59 1E B2 3D, XOR với 48 65 6C 6C 6F cho bản mã C73C72DE52.
0/1.In ra một dòng là bản mã C dạng hex in hoa, cùng độ dài (số chữ số hex) với P. Nếu P rỗng, in ra dòng trống.
Ví dụ:
Đầu vào:
48656c6c6f
4
1000
2
4 1
Đầu ra:
C73C72DE52
Đầu vào:
4
1000
2
4 1
Đầu ra:
Đang tải editor...