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] SubBytes: tra S-box cho 1 byte

    Phép SubBytes thay mỗi byte bằng giá trị S-box. S-box AES được sinh xác định từ nghịch đảo nhân trong GF(28)GF(2^8)GF(28) rồi biến đổi affine, nên không cần bảng tra cứng — chương trình tự tính.

    Hai bước sinh S-box cho byte aaa:

    1. Tính nghịch đảo nhân b=a−1b = a^{-1}b=a−1 trong GF(28)GF(2^8)GF(28) (quy ước 0−1=00^{-1} = 00−1=0).
    2. Biến đổi affine (rotl = quay trái 8 bit):

    s=b⊕rotl(b,1)⊕rotl(b,2)⊕rotl(b,3)⊕rotl(b,4)⊕0x63s = b \oplus \text{rotl}(b,1) \oplus \text{rotl}(b,2) \oplus \text{rotl}(b,3) \oplus \text{rotl}(b,4) \oplus 0x63s=b⊕rotl(b,1)⊕rotl(b,2)⊕rotl(b,3)⊕rotl(b,4)⊕0x63

    Ví dụ: S(0x00)=0x63S(0x00) = 0x63S(0x00)=0x63 (vì 0−1=00^{-1}=00−1=0, affine cho 0x630x630x63) → 63.

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

      Một dòng: một byte HEX hai chữ số.

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

      Một byte HEX trong [00,ff][00, ff][00,ff].

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

      Một dòng: byte sau SubBytes dạng HEX hai chữ số viết thường.

    Ví dụ:

    Đầu vào:

    00
    

    Đầu ra:

    63

    Giải thích:

    0^{-1}=0; affine của 0 = 0x63 → 63. Đây là giá trị S-box[0x00].

    Đang tải editor...