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] Phép nhân trong trường GF(2^8) của AES

    Các phép biến đổi bên trong AES (như SubBytes, MixColumns) làm việc trên trường hữu hạn GF(28)GF(2^8)GF(28), trong đó mỗi byte được xem là một đa thức bậc tối đa 7 với hệ số 0/1, và phép nhân hai đa thức được rút gọn theo modulo đa thức bất khả quy m(x)=x8+x4+x3+x+1m(x) = x^8+x^4+x^3+x+1m(x)=x8+x4+x3+x+1 (biểu diễn hex là 0x11B).

    Cho hai byte aaa, bbb (dạng hex), hãy tính tích a⊗ba \otimes ba⊗b trong GF(28)GF(2^8)GF(28) theo đúng quy tắc nhân của AES.

    • Đị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 hai byte aaa, bbb viết dưới dạng 2 chữ số hex (không phân biệt hoa/thường), cách nhau bởi một khoảng trắng.

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

      In ra TTT dòng, mỗi dòng là kết quả a⊗ba \otimes ba⊗b dưới dạng đúng 2 chữ số hex viết thường.

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

      2
      53 ca
      02 87
      

      kết quả là

      01
      15
      

      (lưu ý 53 ⊗ ca = 01 vì 0xca chính là nghịch đảo nhân của 0x53 trong GF(28)GF(2^8)GF(28) — đây là một tính chất được dùng khi xây dựng S-box của AES).

    Ví dụ:

    Đầu vào:

    6
    00 ff
    01 7a
    ff ff
    02 87
    03 03
    80 80

    Đầu ra:

    00
    7a
    13
    15
    05
    9a
    

    Đầu vào:

    1
    53 ca

    Đầu ra:

    01
    

    Đang tải editor...