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] Hiệu ứng thác lũ của SHA-256

    Một tính chất quan trọng của hàm băm mật mã là hiệu ứng thác lũ (avalanche effect): chỉ cần thay đổi một chút ở đầu vào, giá trị băm đầu ra thay đổi gần như hoàn toàn (khoảng 50% số bit).

    Cho hai chuỗi s1s_1s1​ và s2s_2s2​. Tính H1=SHA256(s1)H_1 = \text{SHA256}(s_1)H1​=SHA256(s1​) và H2=SHA256(s2)H_2 = \text{SHA256}(s_2)H2​=SHA256(s2​) (mỗi giá trị là 256 bit = 32 byte). Gọi DDD là khoảng cách Hamming giữa H1H_1H1​ và H2H_2H2​, tức số vị trí bit khác nhau khi so sánh từng bit tương ứng của hai chuỗi 256 bit đó.

    Hãy tính DDD và tỉ lệ phần trăm P=D256×100%P = \dfrac{D}{256} \times 100\%P=256D​×100%.

    Ví dụ: s1="a"s_1 = \text{"a"}s1​="a", s2="b"s_2 = \text{"b"}s2​="b" → in ra số bit khác nhau và phần trăm tương ứng (một giá trị nào đó gần 50%, tuỳ vào SHA-256 thực tế của hai ký tự này).

    • Định dạng đầu vào:
      • Dòng 1: chuỗi s1s_1s1​ (có thể rỗng, chỉ gồm ký tự UTF-8 in được).
      • Dòng 2: chuỗi s2s_2s2​ (có thể rỗng).
    • Định dạng đầu ra:

      In ra hai dòng:

      • Dòng 1: số nguyên DDD (khoảng cách Hamming theo bit, 0≤D≤2560 \le D \le 2560≤D≤256).
      • Dòng 2: số thực PPP làm tròn đến 2 chữ số thập phân, định dạng %.2f.

    Ví dụ:

    Đầu vào:

    
    
    

    Đầu ra:

    0
    0.00
    

    Đầu vào:

    a
    b
    

    Đầu ra:

    126
    49.22
    

    Đang tải editor...