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] Đệm PKCS#7 cho mã khối

    Các mã khối (block cipher) chỉ mã hóa được từng khối có độ dài cố định nnn byte, nên bản tin cần được đệm (padding) để độ dài là bội số của nnn. Chuẩn PKCS#7 thực hiện như sau: gọi LLL là độ dài (byte) của bản tin gốc, đặt

    pad=n−(L mod n)pad = n - (L \bmod n)pad=n−(Lmodn)

    (nếu LLL đã chia hết cho nnn thì pad=npad = npad=n, tức luôn thêm ít nhất 1 byte và tối đa thêm nguyên một khối). Sau đó thêm đúng padpadpad byte vào cuối bản tin, mỗi byte có giá trị bằng padpadpad.

    Ví dụ: n=8n = 8n=8, bản tin hex 4142434445 (5 byte). L=5L = 5L=5, pad=8−5=3pad = 8 - 5 = 3pad=8−5=3. Bản tin sau khi đệm: 4142434445 + ba byte 03 → 4142434445030303.

    • Định dạng đầu vào:
      • Dòng 1: kích thước khối nnn (4≤n≤324 \le n \le 324≤n≤32).
      • Dòng 2: bản tin dưới dạng chuỗi hex (chữ hoa hoặc thường, số ký tự chẵn, có thể là chuỗi rỗng).
    • Định dạng đầu ra:

      In ra một dòng duy nhất là bản tin sau khi đệm, dưới dạng chuỗi hex chữ hoa, viết liền không dấu cách.

    Ví dụ:

    Đầu vào:

    8
    4142434445

    Đầu ra:

    4142434445030303
    

    Đầu vào:

    8
    

    Đầu ra:

    0808080808080808
    

    Đang tải editor...