Mã hóa RSA

Mã hóa RSA , trong mã hóa Rivest-Shamir-Adleman đầy đủ , loại mật mã khóa công khai được sử dụng rộng rãi để mã hóa dữ liệu e-mail và các giao dịch kỹ thuật số khác qua Internet. RSA được đặt tên cho các nhà phát minh của nó, Ronald L. Rivest, Adi Shamir và Leonard M. Adleman, những người đã tạo ra nó khi đang giảng dạy tại Viện Công nghệ Massachusetts.

Bảng Vigenère Trong mã hóa bản rõ, ký tự mật mã được tìm thấy ở giao điểm của cột đứng đầu bởi ký tự rõ ràng và hàng được lập chỉ mục bởi ký tự khóa. Để giải mã bản mã, ký tự bản rõ được tìm thấy ở đầu cột được xác định bởi giao điểm của đường chéo chứa ký tự mật mã và hàng chứa ký tự khóa.Đọc thêm về mật mã Chủ đề này: Mã hóa RSA Lược đồ khóa công khai nổi tiếng nhất là thuật toán mã hóa Rivest – Shamir – Adleman (RSA). Trong hệ thống này, người dùng bí mật chọn một cặp số nguyên tố ...

Trong hệ thống RSA, người dùng bí mật chọn một cặp số nguyên tố pq lớn đến mức tính tích n = p q nằm ngoài khả năng tính toán dự kiến ​​trong suốt thời gian tồn tại của mật mã. Kể từ năm 2000, các tiêu chuẩn bảo mật của chính phủ Hoa Kỳ yêu cầu mô-đun phải có kích thước 1,024 bit — tức là, pq mỗi loại phải có kích thước khoảng 155 chữ số thập phân, vì vậy nlà một số có 310 chữ số. Vì các số cứng lớn nhất hiện có thể được tính thừa chỉ bằng một nửa kích thước này, và do độ khó của việc tính thừa số tăng gấp đôi cho mỗi ba chữ số bổ sung trong mô-đun, nên mô-đun 310 chữ số được cho là an toàn khi bao thanh toán trong vài thập kỷ.

Sau khi chọn pq , người dùng chọn một số nguyên tùy ý e nhỏ hơn n và tương đối nguyên tố thành p - 1 và q - 1, nghĩa là, sao cho 1 là thừa số chung duy nhất giữa e và tích ( p - 1) ( q - 1). Điều này đảm bảo rằng có một số d khác mà tích e d sẽ dư 1 khi chia cho bội chung nhỏ nhất của p - 1 và q - 1. Với kiến ​​thức về pq , số dcó thể dễ dàng được tính toán bằng cách sử dụng thuật toán Euclide. Nếu một người không biết pq , sẽ khó khăn như nhau để tìm e hoặc d cho cái còn lại đối với hệ số n , đây là cơ sở cho tính bảo mật mật mã của thuật toán RSA.

Các nhãn de sẽ được sử dụng để biểu thị chức năng mà một khóa được đặt, nhưng vì các khóa hoàn toàn có thể hoán đổi cho nhau, điều này chỉ thuận tiện cho việc trình bày. Để triển khai kênh bí mật bằng cách sử dụng phiên bản hai khóa tiêu chuẩn của hệ thống mật mã RSA, người dùng A sẽ xuất bản en trong một thư mục công khai đã được xác thực nhưng giữ bí mật d . Bất kỳ ai muốn gửi một tin nhắn riêng cho A sẽ mã hóa nó thành các số nhỏ hơn n và sau đó mã hóa nó bằng một công thức đặc biệt dựa trên en . A có thể giải mã một thông điệp như vậy dựa trên việc biết d, nhưng giả thiết - và bằng chứng cho đến nay - là đối với hầu hết tất cả các mật mã, không ai khác có thể giải mã thông điệp trừ khi anh ta cũng có thể thừa số n .

Tương tự, để thực hiện một kênh xác thực, A sẽ công bố dn và giữ bí mật e . Trong việc sử dụng đơn giản nhất của kênh này để xác minh danh tính, B có thể xác minh rằng ông là trong giao tiếp với A bằng cách xem trong thư mục để tìm Một ‘s khóa giải mã d và gửi anh một tin nhắn được mã hóa. Nếu anh ta nhận lại được một mật mã giải mã thông điệp thách thức của anh ta bằng cách sử dụng d để giải mã nó, anh ta sẽ biết rằng trong tất cả các xác suất được tạo ra bởi một người biết e và do đó người giao tiếp kia có thể là A. Ký kỹ thuật số một tin nhắn là một hoạt động phức tạp hơn và yêu cầu hàm "băm" an toàn mật mã. Đây là một chức năng được biết đến rộng rãi giúp ánh xạ bất kỳ thông báo nào thành một thông báo nhỏ hơn — được gọi là thông báo tóm tắt — trong đó mỗi bit của thông báo phụ thuộc vào từng bit của thông báo theo cách mà thay đổi dù chỉ một bit trong thông báo cũng có thể thay đổi , theo cách bảo mật mật mã, một nửa số bit trong thông báo. Bởi cryptosecure có nghĩa rằng nó là tính toán không khả thi cho bất cứ ai để tìm một thông điệp rằng sẽ sản xuất một gán trước tiêu hóa và không kém phần khó khăn để tìm một thông báo với cùng tiêu hóa như một tiếng. Để ký một tin nhắn — mà thậm chí có thể không cần giữ bí mật — A mã hóa thông báo bằng bí mật e, mà anh ta gắn vào tin nhắn. Sau đó, bất kỳ ai cũng có thể giải mã tin nhắn bằng cách sử dụng khóa công khai d để khôi phục thông báo, mà anh ta cũng có thể tính toán độc lập với tin nhắn. Nếu cả hai đồng ý, anh ta phải kết luận rằng A đã tạo ra mật mã, vì chỉ có A biết e và do đó có thể mã hóa thông điệp.

Cho đến nay, tất cả các hệ thống mật mã hai khóa được đề xuất đều phải trả một cái giá rất cao cho việc tách kênh riêng tư hoặc bí mật khỏi kênh xác thực hoặc kênh chữ ký. Số lượng tính toán tăng lên đáng kể liên quan đến quá trình mã hóa / giải mã bất đối xứng làm giảm đáng kể dung lượng kênh (bit trên giây của thông tin thông báo được truyền đạt). Trong khoảng 20 năm, đối với các hệ thống bảo mật tương đối, có thể đạt được thông lượng cao hơn từ 1.000 đến 10.000 lần đối với một khóa so với các thuật toán hai khóa. Do đó, ứng dụng chính của mật mã hai khóa là trong các hệ thống lai. Trong một hệ thống như vậy, thuật toán hai khóa được sử dụng để xác thực và chữ ký số hoặc để trao đổi khóa phiên được tạo ngẫu nhiên được sử dụng với thuật toán một khóa ở tốc độ cao cho giao tiếp chính.Vào cuối phiên, khóa này sẽ bị hủy.