Các lượt nộp
    Danh sách bài
    Trang chủ
    Báo lỗi

    solution

    Đề bài: [An toàn thông tin] LFSR Fibonacci: sinh chuỗi bit

    LFSR Fibonacci sinh chuỗi bit

    Thanh ghi dịch phản hồi tuyến tính (LFSR) bậc nnn có các hệ số phản hồi c1,c2,…,cn∈{0,1}c_1, c_2, \dots, c_n \in \{0,1\}c1​,c2​,…,cn​∈{0,1}. Trạng thái là s0s1…sn−1s_0 s_1 \dots s_{n-1}s0​s1​…sn−1​, trong đó s0s_0s0​ là bit nằm ở đầu thanh ghi và được xuất ra ở mỗi bước.

    Mỗi bước:

    1. Xuất bit s0s_0s0​.
    2. Tính bit phản hồi f=(c1s0⊕c2s1⊕⋯⊕cnsn−1)f = (c_1 s_0 \oplus c_2 s_1 \oplus \dots \oplus c_n s_{n-1})f=(c1​s0​⊕c2​s1​⊕⋯⊕cn​sn−1​).
    3. Dịch trái: trạng thái mới là s1s2…sn−1fs_1 s_2 \dots s_{n-1} fs1​s2​…sn−1​f.

    Hãy sinh kkk bit đầu tiên của keystream.

    Ví dụ

    Với n=3n=3n=3, taps =1 0 1=1\,0\,1=101 (c1=1,c2=0,c3=1c_1=1,c_2=0,c_3=1c1​=1,c2​=0,c3​=1), trạng thái đầu 0 0 10\,0\,1001, k=7k=7k=7: keystream là 0011101 (đây là một m-sequence chu kỳ 7).

    • Định dạng đầu vào:

      Dòng 1: số nguyên nnn. Dòng 2: nnn số c1…cnc_1 \dots c_nc1​…cn​ (taps). Dòng 3: nnn số s0…sn−1s_0 \dots s_{n-1}s0​…sn−1​. Dòng 4: số nguyên kkk.

    • Ràng buộc đầu vào:

      1≤n≤161 \le n \le 161≤n≤16, 1≤k≤1000001 \le k \le 1000001≤k≤100000, các bit ∈{0,1}\in \{0,1\}∈{0,1}.

    • Định dạng đầu ra:

      Một dòng gồm kkk ký tự 0/1 là keystream.

    Ví dụ:

    Đầu vào:

    3
    1 0 1
    0 0 1
    7

    Đầu ra:

    0011101

    Giải thích:

    Mỗi bước xuất s0 rồi dịch trái; 7 bit đầu của m-sequence là 0011101.

    Đang tải editor...