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] Ước lượng thời gian dò brute-force và phân loại độ an toàn mật khẩu

    Một phần quan trọng trong phân tích lỗ hổng liên quan đến mật khẩu là ước lượng thời gian trung bình để kẻ tấn công dò ra mật khẩu bằng phương pháp vét cạn (brute-force), từ đó phân loại mức độ an toàn.

    Cho bảng ký tự có ccc ký tự khác nhau (charset size), độ dài mật khẩu ℓ\ellℓ, và tốc độ thử của kẻ tấn công rrr (số lần thử mỗi giây, có thể là số thực). Không gian mật khẩu có tổng cộng cℓc^{\ell}cℓ khả năng. Giả sử mật khẩu được chọn ngẫu nhiên đều và kẻ tấn công vét cạn theo thứ tự ngẫu nhiên, thời gian trung bình để dò trúng là:

    Tavg=cℓ/2r (giaˆy)T_{avg} = \dfrac{c^{\ell} / 2}{r} \text{ (giây)}Tavg​=rcℓ/2​ (giaˆy)

    Dựa trên TavgT_{avg}Tavg​, phân loại độ an toàn:

    • Nếu Tavg<3600T_{avg} < 3600Tavg​<3600 giây (dưới 1 giờ): YEU
    • Nếu 3600≤Tavg<315360003600 \le T_{avg} < 315360003600≤Tavg​<31536000 giây (từ 1 giờ đến dưới 1 năm, với 1 năm =365×24×3600= 365 \times 24 \times 3600=365×24×3600 giây): TRUNG BINH
    • Nếu Tavg≥31536000T_{avg} \ge 31536000Tavg​≥31536000 giây (từ 1 năm trở lên): MANH

    Ví dụ: c=10,ℓ=4,r=1000c=10, \ell=4, r=1000c=10,ℓ=4,r=1000 (PIN 4 chữ số, kẻ tấn công thử online 1000 lần/giây) → cℓ=10000c^{\ell}=10000cℓ=10000, Tavg=5000/1000=5T_{avg} = 5000/1000 = 5Tavg​=5000/1000=5 giây → YEU.

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

      Ba giá trị cách nhau bởi khoảng trắng hoặc xuống dòng: số nguyên ccc (2≤c≤952 \le c \le 952≤c≤95), số nguyên ℓ\ellℓ (1≤ℓ≤151 \le \ell \le 151≤ℓ≤15), và số thực rrr (10−9≤r≤101810^{-9} \le r \le 10^{18}10−9≤r≤1018).

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

      In ra hai dòng:

      • Dòng 1: TavgT_{avg}Tavg​ ở dạng ký hiệu khoa học với đúng 6 chữ số thập phân ở phần định trị (theo định dạng %.6e của Python, ví dụ 5.000000e+00).
      • Dòng 2: nhãn phân loại (YEU, TRUNG BINH, hoặc MANH).

      Ví dụ: input 10 4 1000 → output:

      5.000000e+00
      YEU
      

    Ví dụ:

    Đầu vào:

    10 4 1000

    Đầu ra:

    5.000000e+00
    YEU
    

    Đầu vào:

    26 5 1000

    Đầu ra:

    5.940688e+03
    TRUNG BINH
    

    Đang tải editor...