Leonard Adleman góp phần tạo ra RSA, hệ thống khoá công khai giúp HTTPS, ngân hàng trực tuyến và chữ ký cập nhật phần mềm trở thành hiện thực. Tìm hiểu cách hoạt động và vì sao nó quan trọng.

Khi người ta nói họ “tin tưởng” một trang web hay dịch vụ trực tuyến, họ thường có ba ý nghĩa thiết thực:
RSA trở nên nổi tiếng vì nó giúp hiện thực hóa những cam kết đó ở quy mô internet.
Bạn cảm nhận được ảnh hưởng của RSA ngay cả khi chưa từng nghe tên nó. Nó gắn chặt với cách mà:
Mấu chốt chung là tin cậy mà không cần phải biết trước (hoặc sắp xếp bí mật) với từng máy chủ hay nhà phát hành phần mềm bạn tương tác.
Bài viết giữ giải thích đơn giản: không toán nặng, không cần nền tảng khoa học máy tính. Chúng ta tập trung vào góc nhìn “tại sao nó hoạt động” dành cho người dùng hàng ngày.
RSA phổ biến một cách tiếp cận mạnh mẽ: thay vì một bí mật chung, bạn dùng một public key để chia sẻ công khai và một private key để giữ riêng. Sự phân tách này cho phép vừa bảo vệ quyền riêng tư vừa chứng minh danh tính trong những tình huống người và hệ thống chưa từng gặp nhau.
Leonard Adleman là chữ “A” trong RSA, cùng với Ron Rivest và Adi Shamir. Trong khi Rivest và Shamir thường được ghi nhận về cấu trúc lõi, đóng góp của Adleman là thiết yếu: ông giúp định hình hệ thống thành thứ không chỉ thông minh mà còn thuyết phục—một thuật toán mà người khác có thể phân tích, thử nghiệm và tin tưởng.
Một phần lớn trong vai trò của Adleman là thử sức ý tưởng. Trong mật mã, một sơ đồ không có giá trị chỉ vì nghe có vẻ hợp lý; nó có giá trị khi vượt qua được các tấn công và sự giám sát kỹ lưỡng. Adleman làm việc trên việc xác thực, giúp tinh chỉnh giả thuyết, và đóng góp vào cách trình bày ban đầu về lý do tại sao RSA nên khó bị bẻ.
Cũng quan trọng không kém, ông giúp chuyển từ “điều này có thể hoạt động” sang “đây là một hệ mật mà cộng đồng nghiên cứu có thể đánh giá.” Sự rõ ràng đó—làm cho thiết kế đủ dễ hiểu để cộng đồng rộng hơn kiểm tra—là yếu tố then chốt cho việc được chấp nhận.
Trước RSA, liên lạc an toàn thường phụ thuộc vào cả hai bên đã chia sẻ một khoá bí mật. Cách làm đó hiệu quả trong nhóm kín, nhưng không mở rộng khi người lạ cần giao tiếp an toàn (ví dụ, một người mua hàng và một trang web gặp nhau lần đầu).
RSA thay đổi câu chuyện đó bằng cách phổ biến một hệ thống khoá công khai thực tế: bạn có thể công bố một khoá để người khác dùng, trong khi giữ một khoá riêng biệt bí mật.
Tác động của RSA lớn hơn một thuật toán. Nó khiến hai điều thiết yếu của internet trở nên khả thi ở quy mô:
Những ý tưởng đó là nền tảng để HTTPS, ngân hàng trực tuyến và cập nhật phần mềm có chữ ký trở thành tiêu chuẩn thay vì ngoại lệ.
Trước RSA, giao tiếp an toàn chủ yếu nghĩa là mã hóa bí mật chia sẻ: hai bên phải có cùng một khoá bí mật từ trước. Cách này ổn cho nhóm nhỏ, nhưng phá sản nhanh khi vận hành một dịch vụ công cộng cho hàng triệu người.
Nếu mỗi khách hàng cần một khoá bí mật riêng để nói chuyện với ngân hàng, ngân hàng phải tạo, chuyển giao, lưu trữ, thay đổi và bảo vệ một khối lượng lớn bí mật. Phần khó nhất không phải toán—mà là điều phối.
Làm sao để giao khoá bí mật một cách an toàn ngay từ đầu? Gửi qua thư thì chậm và rủi ro. Nói qua điện thoại có thể bị chặn hoặc bị lừa đảo xã hội. Gửi qua internet lại đánh mất mục đích, vì kênh đó chính là điều bạn cố gắng bảo vệ.
Hãy tưởng tượng hai người lạ—ví dụ bạn và một cửa hàng trực tuyến—chưa từng gặp. Bạn muốn gửi khoản thanh toán an toàn. Với mã hóa bí mật chia sẻ, bạn cần một khoá riêng mà cả hai đã biết trước. Nhưng bạn không có.
Đột phá của RSA là cho phép giao tiếp an toàn mà không cần chia sẻ bí mật trước. Thay vào đó, bạn có thể công bố một khoá (public key) mà bất kỳ ai cũng dùng để bảo vệ một thông điệp gửi cho bạn, trong khi giữ một khoá khác (private key) chỉ mình bạn nắm.
Ngay cả khi bạn có thể mã hóa tin nhắn, bạn vẫn cần biết bạn đang mã hóa cho ai. Nếu không, kẻ tấn công có thể giả mạo ngân hàng hoặc cửa hàng, lừa bạn dùng khoá của họ, và lặng lẽ đọc hoặc sửa mọi thứ.
Đó là lý do giao tiếp an toàn trên internet cần hai thuộc tính:
RSA giúp làm cho cả hai khả thi, đặt nền tảng cho cách tin cậy trực tuyến hoạt động ở quy mô.
Mã hóa khoá công khai là một ý tưởng đơn giản nhưng hệ quả lớn: bạn có thể khoá thứ gì đó cho ai đó mà không cần thỏa thuận trước một bí mật chung. Đó là bước chuyển lõi mà RSA giúp thực tế hóa.
Hãy coi public key như một ổ khóa bạn sẵn lòng đưa cho bất kỳ ai. Mọi người có thể dùng nó để bảo vệ một tin nhắn cho bạn—hoặc (trong hệ thống chữ ký) để kiểm tra rằng thứ gì đó thực sự đến từ bạn.
Private key là chiếc chìa duy nhất bạn phải giữ cho riêng mình. Nó mở những thứ đã bị khoá bằng public key của bạn, và cũng cho phép bạn tạo chữ ký mà chỉ bạn mới có thể làm.
Cặp public/private tạo thành một cặp khoá. Chúng liên quan về mặt toán học, nhưng không thể hoán đổi cho nhau. Chia sẻ public key là an toàn vì biết nó không cho ai cách thực tế để suy ra private key.
Mã hóa là để giữ riêng tư. Nếu ai đó mã hóa một tin nhắn bằng public key của bạn, chỉ private key của bạn mới giải được.
Chữ ký số là để tin cậy và toàn vẹn. Nếu bạn ký thứ gì đó bằng private key, bất kỳ ai có public key của bạn có thể xác minh hai điều:
Bảo mật không phải phép màu—nó dựa vào vấn đề toán học khó giải: việc làm một chiều dễ làm nhưng khó đảo ngược bằng máy tính hiện tại. Tính “một chiều” đó bảo đảm rằng việc chia sẻ public key an toàn trong khi private key vẫn giữ thế mạnh.
RSA giúp biến niềm tin ở quy mô internet trở nên thực tiễn bằng cách cho phép mã hóa khoá công khai, hỗ trợ:
Những nền tảng này là trung tâm của HTTPS, ngân hàng trực tuyến và cập nhật phần mềm có chữ ký.
Leonard Adleman giúp biến RSA từ một ý tưởng hay thành một hệ mật mà người khác có thể phân tích và tin cậy. Cụ thể, ông tham gia kiểm tra giả thuyết, tinh chỉnh cách trình bày và củng cố lập luận vì sao việc phá RSA nên là khó dưới các mô hình tấn công thực tế.
Một public key được chia sẻ công khai; người khác dùng nó để mã hóa cho bạn hoặc để kiểm tra chữ ký của bạn.
Một private key phải được giữ bí mật; nó dùng để giải các dữ liệu mã hóa gửi đến bạn (trong trường hợp mã hóa RSA) và để tạo chữ ký mà chỉ bạn mới có thể sinh ra.
Nếu private key bị lộ, kẻ tấn công có thể giả mạo bạn và/hoặc giải được những bí mật được bảo vệ, tuỳ thuộc vào cách sử dụng khoá đó.
Bảo mật RSA dựa trên một vấn đề toán học một chiều: nhân các số nguyên tố lớn rất dễ, nhưng phân tích thừa số (factoring) số lớn trở lại thành các thừa số nguyên tố là cực kỳ khó ở kích thước khoá thực tế.
Public key và private key liên quan với nhau về mặt toán học, nhưng thiết kế để public key không tiết lộ private key theo cách thực dụng.
Chúng giải các mục tiêu tin cậy khác nhau:
Quy tắc thực tế: mã hóa giữ bí mật; chữ ký chứng minh người gửi và rằng nội dung không bị thay đổi.
Trong luồng HTTPS/TLS đơn giản:
RSA có thể được dùng cho xác thực (chữ ký), và trong lịch sử từng được dùng để bảo vệ bí mật phiên ban đầu trong một số cấu hình.
Không. Biểu tượng ổ khoá chủ yếu chỉ ra kết nối được mã hóa và thường đã xác thực.
Nó không đảm bảo:
Hãy coi HTTPS là lớp an toàn vận chuyển cần thiết, không phải là lời phán xét toàn diện về độ tin cậy.
Một chứng chỉ gắn public key với một danh tính (ví dụ tên miền như example.com). Trình duyệt tin vào liên kết này vì chứng chỉ được Ký bởi một Certificate Authority (CA), và trình duyệt/hệ điều hành có một danh sách CA đáng tin cậy.
Nếu bạn triển khai dịch vụ, hãy lên kế hoạch cho:
Các bản cập nhật ký giúp thiết bị của bạn kiểm tra hai điều:
Điều này phòng chống các cuộc tấn công “hoán đổi gói” (mirror bị xâm phạm, mạng bị chiếm, trang tải xuống giả).
Những sai lầm thực tế thường là vận hành, không phải là toán học RSA bị bẻ khoá:
Các bước thực tế: bảo vệ private key (ưu tiên lưu trữ phần cứng), theo dõi ngày hết hạn, xoay khoá theo kế hoạch, và giám sát việc cấp chứng chỉ khi có thể.