Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Lập Trình

An ninh của RSA

An ninh của RSA như sau:

  • Tấn công bản rõ (Plain text attacks) -

    Các tấn công bản rõ được phân loại thành ba tiểu loại:

    Tấn công tin nhắn ngắn (Short message attack) - Trong tấn công tin nhắn ngắn, xem xét rằng kẻ tấn công biết một số khối bản rõ. Nếu giả định này đúng, kẻ tấn công có thể thử mã hóa mỗi khối bản rõ để xem nó có kết quả thành cipher-text đã biết hay không.

    Do đó, để tránh tấn công tin nhắn ngắn này, được đề xuất rằng có thể đệm bản rõ trước khi mã hóa nó.

    Tấn công chu kỳ (Cycling attack) -

    Trong này, kẻ tấn công giả định rằng cipher text được đạt được bằng cách làm một số hoán vị trên bản rõ theo cách nào đó. Nếu giả định này đúng do đó kẻ tấn công có thể làm thủ tục ngược, là liên tục làm hoán vị trên cipher text đã biết để thử và đạt được bản rõ gốc.

    Tấn công thông điệp không ẩn (Unconcealed Message attack) - Được khám phá trong lý thuyết rằng trong trường hợp một số tin nhắn bản rõ rất hạn chế, mã hóa cung cấp cipher-text bằng với bản rõ gốc. Nếu điều này xảy ra, tin nhắn bản rõ gốc không thể được ẩn. Do đó, tấn công này được gọi là unconcealed message attack.

  • Tấn công cipher được chọn (Chosen cipher attack) - Trong tấn công cipher được chọn, có thể tìm ra plain text dựa trên cipher text sử dụng thuật toán Euclid mở rộng (Extended Euclidean Algorithm).
  • Tấn công phân tích thừa số (Factorisation attack) - Toàn bộ an ninh của RSA phụ thuộc vào giả định rằng không thể cho kẻ tấn công phân tích số N thành hai yếu tố P và Q. Nếu kẻ tấn công có thể tìm ra P hoặc Q từ phương trình N = P x Q do đó kẻ tấn công có thể tìm ra khóa riêng tư.

    Giả sử N dài ít nhất 300 chữ số theo thuật ngữ thập phân, kẻ tấn công không thể tìm P và Q dễ dàng. Do đó, tấn công phân tích thừa số thất bại.

  • Tấn công khóa mã hóa (Attack on the Encryption key) - Người am hiểu toán học của RSA đôi khi cảm thấy rằng nó khá dễ dàng vì nó cần một số lớn cho khóa công khai hoặc khóa mã hóa E.

    Nó cũng làm RSA an toàn hơn. Do đó, nếu quyết định cố gắng làm RSA nhanh hơn bằng cách sử dụng giá trị nhỏ cho E, nó có thể dẫn đến các tấn công tiềm ẩn được gọi là tấn công khóa mã hóa và do đó được đề xuất rằng nên dùng E là 216 + 1 = 65537 hoặc giá trị gần con số này.

  • Tấn công khóa giải mã (Attacks on Decryption key) - Tấn công trên khóa giải mã như sau:
    • Tấn công mũ giải mã bị tiết lộ (Revealed decryption exponent attack) - Nếu kẻ tấn công có thể đoán khóa giải mã D, không chỉ cipher text được tạo bằng mã hóa bản rõ với khóa mã hóa E tương ứng bị đe dọa, mà ngay cả tin nhắn tương lai cũng dễ bị tổn thương. Để tránh tấn công này, được đề xuất người gửi dùng giá trị mới cho P, Q, N, và E cũng.
    • Tấn công mũ giải mã thấp (Low decryption exponent attack) - Thú vị để dùng giá trị nhỏ cho khóa giải mã D để làm RSA nhanh hơn. Điều này có thể cung cấp cho kẻ tấn công đoán khóa giải mã D bằng cách phát động tấn công low decryption exponent.