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] Biến đổi MixColumns của AES

    MixColumns là bước khuếch tán của AES, tác động độc lập lên từng cột 4 byte (a0,a1,a2,a3)(a_0,a_1,a_2,a_3)(a0​,a1​,a2​,a3​) của trạng thái. Cột kết quả (b0,b1,b2,b3)(b_0,b_1,b_2,b_3)(b0​,b1​,b2​,b3​) được tính bằng phép nhân ma trận cố định với các phép cộng/nhân thực hiện trong GF(28)GF(2^8)GF(28) (đa thức x8+x4+x3+x+1x^8+x^4+x^3+x+1x8+x4+x3+x+1):

    (b0b1b2b3)=(2311123111233112)(a0a1a2a3)(modGF(28))\begin{pmatrix}b_0\\b_1\\b_2\\b_3\end{pmatrix} = \begin{pmatrix}2&3&1&1\\1&2&3&1\\1&1&2&3\\3&1&1&2\end{pmatrix}\begin{pmatrix}a_0\\a_1\\a_2\\a_3\end{pmatrix} \pmod{GF(2^8)}​b0​b1​b2​b3​​​=​2113​3211​1321​1132​​​a0​a1​a2​a3​​​(modGF(28))

    Cho một số cột trạng thái (mỗi cột 4 byte, dạng hex), hãy tính cột kết quả sau MixColumns.

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

      Dòng đầu tiên là số nguyên TTT (0≤T≤10000 \le T \le 10000≤T≤1000). TTT dòng tiếp theo, mỗi dòng chứa một chuỗi hex gồm đúng 8 ký tự (4 byte a0a1a2a3a_0 a_1 a_2 a_3a0​a1​a2​a3​, đọc từ trên xuống dưới của cột).

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

      In ra TTT dòng, mỗi dòng là chuỗi hex gồm 8 ký tự viết thường của cột sau khi áp MixColumns.

      Ví dụ: với đầu vào

      1
      d4bf5d30
      

      kết quả là

      046681e5
      

      (đây chính là cột đầu tiên của trạng thái ở vòng 1 trong ví dụ minh họa của chuẩn FIPS-197).

    Ví dụ:

    Đầu vào:

    1
    d4bf5d30

    Đầu ra:

    046681e5
    

    Đầu vào:

    4
    d4bf5d30
    e0b452ae
    b84111f1
    1e2798e5

    Đầu ra:

    046681e5
    e0cb199a
    48f8d37a
    2806264c
    

    Đang tải editor...