Computer >> Máy Tính >  >> Lập trình >> Lập trình

Các bước trong RSA trong Bảo mật Thông tin là gì?

Thuật toán RSA là một thuật toán chữ ký khóa công khai do Ron Rivest, Adi Shamir và Leonard Adleman sáng lập. RSA cũng có thể mã hóa và giải mã dữ liệu chung để trao đổi thông tin một cách an toàn cùng với việc quản lý xác minh chữ ký số.

Thuật toán RSA dựa trên độ phức tạp có trong việc phân tích nhân tử của các số lớn. Thuật toán RSA phụ thuộc vào thực tế là không có phương pháp hiệu quả để tính các số rất lớn. Do đó, việc suy ra một khóa RSA sẽ tốn rất nhiều thời gian và công suất xử lý.

Thuật toán RSA là thuật toán mật mã không đối xứng vì nó hoạt động trên hai khóa khác nhau như khóa công khai và khóa riêng tư. Khóa công khai có thể dành cho tất cả mọi người và khóa riêng tư vẫn là riêng tư. Khóa công khai bao gồm hai số, một trong số đó là phép nhân của hai số nguyên tố lớn.

Trong mã hóa RSA, một tin nhắn được mã hóa bằng một mã được gọi là khóa công khai, không bắt buộc phải ẩn. Nó dựa trên các thuộc tính toán học của thuật toán RSA, vì một thông điệp đã được mã hóa bằng khóa công khai, nó chỉ có thể được giải mã bằng một khóa khác, được gọi là khóa riêng. Do đó, cần một bộ khóa, là khóa công khai và khóa riêng tư, để đọc các thông báo như vậy.

Có các bước sau trong Thuật toán RSA như sau -

  • Tạo khóa
    • Chọn hai số nguyên tố lớn, chẳng hạn như P và Q. Các số nguyên tố được yêu cầu lớn để một người nào đó có thể tìm ra chúng sẽ phức tạp.

    • Tính N =P x Q

    • Chọn khóa công khai (tức là khóa Mã hóa) E sao cho nó không phải là hệ số của (P-1) và (Q-1).

    • Chọn khóa riêng (tức là khóa giải mã) D sao cho phương trình sau là đúng -

      (D x E) mod (P - 1) x (Q - 1) =1

    • Để mã hóa, hãy tính toán văn bản mật mã (CT) từ văn bản thuần túy (PT) như sau -

      CT =PT E mod N

    • Gửi CT dưới dạng văn bản mật mã đến người nhận.

    • Để mã hóa, hãy tính toán văn bản thuần túy (PT) từ văn bản mật mã (CT) như sau -

      PT =CT D mod N

  • Chức năng mã hóa / giải mã - Một khi nó có thể tạo ra các khóa và nó có thể chuyển các tham số cho các hàm tính toán bản mã và bản rõ bằng cách sử dụng khóa tương ứng.

    • Nếu bản rõ là m, ciphertext =me mod n.

    • Nếu bản mã là c, plaintext =cd mod n

  • Ví dụ, trong đó p =17 và q =13. Giá trị của e có thể là 5 vì nó thỏa mãn điều kiện 1

    N =p * q =91

    D =e-1 mod (p-1) (q-1) =29

    Cặp khóa công khai =(91, 5)

    Cặp khóa riêng =(91, 29)

    Nếu giá trị plaintext (m) là 10, nó có thể mã hóa nó bằng công thức me mod n =82.

    Để giải mã bản mã này (c) trở lại dữ liệu ban đầu, nó nên sử dụng công thức cd mod n =29.