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) của trạng thái. Cột kết quả (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) (đa thức x8+x4+x3+x+1):
b0b1b2b3=2113321113211132a0a1a2a3(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.
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 một chuỗi hex gồm đúng 8 ký tự (4 byte a0a1a2a3, đọc từ trên xuống dưới của cột).
In ra T 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...