Tại sao mã hóa RSA trở nên phổ biến để trao đổi khóa?


16

Đây là một câu hỏi mềm. Tôi không biết nhiều về mật mã hoặc lịch sử của nó, nhưng có vẻ như một cách sử dụng phổ biến cho RSA là thực hiện trao đổi khóa bằng cách mã hóa khóa đối xứng để gửi tin nhắn dài hơn (ví dụ: mô tả về iMessage ở đây ). Đây có phải chính xác là thứ mà trao đổi khóa Diffie-Hellman, cái cũ hơn (và đối với tôi có vẻ đơn giản hơn) là dành cho? Nhìn vào Wikipedia, cả hai đều được cấp bằng sáng chế, vì vậy điều này sẽ không chịu trách nhiệm cho sự lựa chọn.

Để rõ ràng, tôi không hỏi liệu về mặt lý thuyết có quan trọng rằng mật mã khóa công khai là có thể hay không. Tôi đang hỏi tại sao nó trở thành một phương pháp tiêu chuẩn trong thực tế để thực hiện trao đổi khóa. (Đối với một người không viết mật mã, DH có vẻ dễ thực hiện hơn và cũng không bị ràng buộc với các chi tiết của nhóm được sử dụng.)



3
RSA cũng có thể được sử dụng để truyền khóa an toàn trong trường hợp không thể giao thức trao đổi khóa tương tác như DH, chẳng hạn như khi chỉ có liên kết một chiều hoặc khi thời gian liên lạc khứ hồi quá mức. Sử dụng các trường hợp như một email được mã hóa ủng hộ các cách tiếp cận như vậy, vì máy tính của người nhận có thể không được kết nối với internet tại thời điểm bạn muốn gửi tin nhắn, do đó không thể tham gia trao đổi khóa tương tác.
Kevin Cathcart

Bạn đang hỏi tại sao nó trở nên phổ biến để trao đổi khóa, hoặc nói chung?
Ngừng làm hại Monica

@KevinCathcart DH không nhất thiết phải tương tác. Người gửi có thể tạo một cặp khóa sử dụng một lần và gửi khóa chung cùng với tin nhắn. Cách tiếp cận đó là nền tảng của mã hóa ECIES / DLIES và ElGamal. Điều đó có một chi phí nhỏ (128 byte cho khóa 1024 bit).
CodeInChaos

@CodesInChaos: Nhưng cả hai đều không phải là thuật toán trao đổi khóa. Khi bạn đã chuyển từ trao đổi khóa sang mã hóa khóa công khai đầy đủ, việc lựa chọn vấn đề khó giải quyết cơ bản không ảnh hưởng đến các mối quan tâm vận hành như đảm bảo người gửi có một bản sao khóa công khai của người nhận. Tôi hiểu câu hỏi cần đặt ra, "Tại sao chúng ta thường sử dụng tiền điện tử khóa công khai để trao đổi khóa thay vì chỉ là thuật toán trao đổi khóa, thường đơn giản hơn?". Rõ ràng, về cơ bản, bất kỳ thuật toán khóa công khai nào cũng có thể được sử dụng để thiết lập một bí mật chung trên một kênh không tương tác.
Kevin Cathcart

Câu trả lời:


14

Không có lý do kỹ thuật mạnh mẽ. Chúng tôi có thể đã sử dụng Diffie-Hellman (có chữ ký phù hợp) cũng như RSA.

Vậy tại sao RSA? Theo như tôi có thể nói, lý do lịch sử phi kỹ thuật chiếm ưu thế. RSA đã được cấp bằng sáng chế và có một công ty đằng sau nó, tiếp thị và ủng hộ RSA. Ngoài ra, có những thư viện tốt và RSA rất dễ hiểu và quen thuộc với các nhà phát triển. Vì những lý do này, RSA đã được chọn, và một khi nó là lựa chọn phổ biến, nó vẫn giữ nguyên như vậy do quán tính.

Ngày nay, trình điều khiển chính đã gây ra sự gia tăng sử dụng Diffie-Hellman là mong muốn bí mật hoàn hảo về phía trước, một điều dễ dàng đạt được bằng cách sử dụng Diffie-Hellman nhưng chậm hơn với RSA.

Ngẫu nhiên: Đó là trao đổi khóa Diffie-Hellman, không phải chia sẻ bí mật Diffie-Hellman. Chia sẻ bí mật là một cái gì đó khác hoàn toàn.


2
Tôi nghĩ rằng các bằng sáng chế là lý do để tránh RSA?
dùng1686

@grawity phụ thuộc vào cách người giữ bằng sáng chế ứng xử; và một thế hệ trước, những người nắm giữ bằng sáng chế công nghệ đã không đồng ý với nhau thông qua luật pháp quy mô lớn và thời gian dài đến mức xảy ra trong các cuộc chiến điện thoại thông minh hoặc troll bằng sáng chế của công ty nhỏ.
Dan Neely

10

Diffie sâu Hellman thiếu một tính năng quan trọng: xác thực. Bạn biết bạn đang chia sẻ bí mật với ai đó, nhưng bạn không thể biết đó là người nhận hay người đàn ông ở giữa. Với RSA, bạn có thể có một vài bên đáng tin cậy lưu trữ khóa công khai. Nếu bạn muốn kết nối với ngân hàng của mình, bạn có thể hỏi bên đáng tin cậy (giả sử Verisign) cho khóa công khai của ngân hàng, vì bạn đã có khóa chung của bên đáng tin cậy trên máy tính của bạn. Do đó, bạn biết rằng bạn đang chia sẻ bí mật với ngân hàng của mình.

Với Diffie sâu Hellman, khi bạn tạo một bí mật với ngân hàng của mình, trên thực tế bạn có thể tạo một bí mật với một người đàn ông ở giữa (MITM), người cũng tạo một bí mật với ngân hàng của bạn và anh ta chỉ cần dịch từ một khóa mã hóa sang cái còn lại để ẩn (trong khi có thể đọc toàn bộ giao tiếp).


Tất nhiên bạn có thể sử dụng RSA để xác thực và sau đó trao đổi khóa DH.
Ngừng làm hại Monica

4
Bạn có thể tạo một cặp khóa bí mật và công khai như thế này: pk= =gSkmodp. Bằng cách sử dụng đúng cách bạn có thể biết bạn đang nói chuyện với ai. Những gì bạn không thể làm là sau khi thực tế chứng minh cho bên thứ ba những gì người kia nói với bạn. Diffie-Hellman theo như tôi biết thiếu khả năng sản xuất chữ ký.
kasperd

@kasperd: Tôi ngạc nhiên vì điều này có rất nhiều phiếu bầu.
Louis

1
Bạn có thể sử dụng các khóa Diffie-Hellman dài hạn để xác thực (xem CurveCP cho giao thức ví dụ) hoặc bạn có thể kết hợp DH với chữ ký DSA / Schnorr / ElGamal (chia sẻ nhiều toán học cơ bản với DH), giống như bạn có thể kết hợp Mã hóa RSA với chữ ký RSA.
CodeInChaos

-2

Thuật toán RSA như đã đề cập trước đây không tốt hơn Diffie sâu Hellman, thuật toán sau chỉ thiếu xác thực cả hai thuật toán phụ thuộc vào độ khó trong việc tìm kiếm logarit rời rạc nên cả hai đều khá giống nhau.


2
Cảm ơn bạn đã đóng góp. Tuy nhiên, tất cả mọi thứ bạn nói đã được đề cập trong các câu trả lời khác. Chúng tôi muốn bạn trả lời các câu hỏi chưa có câu trả lời hay hơn là sao chép các câu trả lời hiện có. Ngoài ra, RSA phụ thuộc vào độ khó của vấn đề bao thanh toán (và nói đúng về vấn đề RSA) chứ không phải logarit rời rạc, trong khi Diffie-Hellman một hệ thống dựa trên nhật ký rời rạc cổ điển hơn (nói đúng ra, nó dựa vào giả định DDH ).
DW

-3

Có một điều tối kỵ đối với điều này không thể bỏ qua.
Thực tế là RSA đã được NSA đồng chọn.
NSA đã trồng một cửa hậu trong cyhper Eliptic Curve mà nó cung cấp cho RSA.
http://www.intellect-world.org/nsa-infiltrated-rsa-security-more-deeply-than-47t-study/


1
Câu trả lời này không mạch lạc. Mật mã đường cong elip khác với RSA. Vì vậy, một cửa hậu trong tiền điện tử đường cong elip sẽ không gây nguy hiểm cho RSA. Câu trả lời này chỉ sai - không có mặt tối như vậy.
DW
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.