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] Suy dẫn khóa phiên kiểu TLS 1.3 (HKDF)

    HKDF (HMAC-based Key Derivation Function, RFC 5869) là hàm suy dẫn khóa được TLS 1.3 sử dụng để tạo các khóa phiên từ bí mật dùng chung, gồm hai bước:

    Extract: PRK=HMAC-SHA256(salt, IKM)PRK = \text{HMAC-SHA256}(salt,\ IKM)PRK=HMAC-SHA256(salt, IKM). Nếu saltsaltsalt rỗng (độ dài 0), dùng thay thế một chuỗi 32 byte toàn số 0.

    Expand: đặt T(0)T(0)T(0) là chuỗi rỗng; với i=1,2,3,…i = 1, 2, 3, \dotsi=1,2,3,…: T(i)=HMAC-SHA256(PRK, T(i−1) ∥ info ∥ i)T(i) = \text{HMAC-SHA256}\big(PRK,\ T(i-1) \,\|\, info \,\|\, i\big)T(i)=HMAC-SHA256(PRK, T(i−1)∥info∥i) trong đó iii được biểu diễn bằng đúng 1 byte. Khóa đầu ra: OKM=T(1) ∥ T(2) ∥ …OKM = T(1) \,\|\, T(2) \,\|\, \dotsOKM=T(1)∥T(2)∥… cắt lấy LLL byte đầu tiên.

    Cho saltsaltsalt (hex, có thể rỗng), IKMIKMIKM (hex), infoinfoinfo (hex, có thể rỗng) và độ dài LLL (byte), hãy tính OKMOKMOKM.

    Ví dụ (RFC 5869, Test Case 1): salt=salt=salt=000102030405060708090a0b0c, IKM=IKM=IKM= 22 byte 0x0b liên tiếp, info=info=info=f0f1f2f3f4f5f6f7f8f9, L=42L=42L=42 → OKM=OKM=OKM=3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865.

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

      Bốn dòng: saltsaltsalt (hex, có thể rỗng), IKMIKMIKM (hex, không rỗng), infoinfoinfo (hex, có thể rỗng), và LLL (số nguyên, 1≤L≤81601 \le L \le 81601≤L≤8160).

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

      Một dòng là OKMOKMOKM dạng hex viết thường, gồm đúng 2L2L2L ký tự.

    Ví dụ:

    Đầu vào:

    000102030405060708090a0b0c
    0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b0b
    f0f1f2f3f4f5f6f7f8f9
    42
    

    Đầu ra:

    3cb25f25faacd57a90434f64d0362f2a2d2d0a90cf1a5a4c5db02d56ecc4c5bf34007208d5b887185865
    

    Đầu vào:

    606162636465666768696a6b6c6d6e6f707172737475767778797a7b7c7d7e7f808182838485868788898a8b8c8d8e8f909192939495969798999a9b9c9d9e9fa0a1a2a3a4a5a6a7a8a9aaabacadaeaf
    000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f202122232425262728292a2b2c2d2e2f303132333435363738393a3b3c3d3e3f404142434445464748494a4b4c4d4e4f
    b0b1b2b3b4b5b6b7b8b9babbbcbdbebfc0c1c2c3c4c5c6c7c8c9cacbcccdcecfd0d1d2d3d4d5d6d7d8d9dadbdcdddedfe0e1e2e3e4e5e6e7e8e9eaebecedeeeff0f1f2f3f4f5f6f7f8f9fafbfcfdfeff
    82
    

    Đầu ra:

    b11e398dc80327a1c8e7f78c596a49344f012eda2d4efad8a050cc4c19afa97c59045a99cac7827271cb41c65e590e09da3275600c2f09b8367793a9aca3db71cc30c58179ec3e87c14c01d5c1f3434f1d87
    

    Đang tải editor...