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] Chế độ CBC với mã khối XOR đơn giản

    Xét một "mã khối" đơn giản dùng để minh họa nguyên lý hoạt động của chế độ CBC (Cipher Block Chaining): với khóa KKK có độ dài nnn byte (bằng kích thước khối), hàm mã hóa một khối là

    EK(x)=x⊕K.E_K(x) = x \oplus K.EK​(x)=x⊕K.

    Áp dụng CBC trên dãy khối bản rõ P0,P1,…,Pm−1P_0, P_1, \dots, P_{m-1}P0​,P1​,…,Pm−1​ (mỗi khối nnn byte) với vector khởi tạo IVIVIV (nnn byte):

    C0=EK(P0⊕IV),Ci=EK(Pi⊕Ci−1) (i≥1).C_0 = E_K(P_0 \oplus IV), \qquad C_i = E_K(P_i \oplus C_{i-1}) \ (i \ge 1).C0​=EK​(P0​⊕IV),Ci​=EK​(Pi​⊕Ci−1​) (i≥1).

    Ví dụ: n=4n = 4n=4, K=K = K= 0F0F0F0F, IV=IV = IV= 01020304, bản rõ gồm 1 khối 41424344. P0⊕IV=40404040P_0 \oplus IV = 40404040P0​⊕IV=40404040, C0=40404040⊕0F0F0F0F=C_0 = 40404040 \oplus 0F0F0F0F = C0​=40404040⊕0F0F0F0F= 4F4F4F4F.

    • Định dạng đầu vào:
      • Dòng 1: kích thước khối nnn (4≤n≤164 \le n \le 164≤n≤16).
      • Dòng 2: khóa KKK dạng hex, đúng nnn byte.
      • Dòng 3: IVIVIV dạng hex, đúng nnn byte.
      • Dòng 4: bản rõ dạng hex, độ dài (byte) là bội số của nnn (có thể là chuỗi rỗng, nghĩa là không có khối nào).
    • Định dạng đầu ra:

      In ra một dòng duy nhất gồm các khối bản mã C0,C1,…C_0, C_1, \dotsC0​,C1​,… theo đúng thứ tự, mỗi khối biểu diễn bằng hex chữ hoa (2n2n2n ký tự), các khối cách nhau đúng một dấu cách. Nếu không có khối nào, in ra dòng trống.

    Ví dụ:

    Đầu vào:

    4
    0F0F0F0F
    01020304
    41424344

    Đầu ra:

    4F4F4F4F
    

    Đầu vào:

    4
    0F0F0F0F
    01020304
    

    Đầu ra:

    
    

    Đang tải editor...