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), 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+1 (biểu diễn hex là 0x11B).
Cho hai byte a, b (dạng hex), hãy tính tích a⊗b trong GF(28) theo đúng quy tắc nhân của AES.
Dòng đầu tiên là số nguyên T (0≤T≤1000). T dòng tiếp theo, mỗi dòng chứa hai byte a, b 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.
In ra T dòng, mỗi dòng là kết quả a⊗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) — đâ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...