Khi chúng ta nói về thuật toán mã hóa, có một sự phân chia cơ bản: một số dựa trên một chìa khóa duy nhất, trong khi số khác yêu cầu một cặp chìa khóa. Sự phân biệt này định hình mọi thứ về cách chúng hoạt động và nơi chúng được triển khai.
Mã hóa đối xứng hoạt động với một chìa khóa chia sẻ mà cả hai bên cùng sử dụng để mã hóa và giải mã tin nhắn. Hãy nghĩ nó như một chiếc khóa truyền thống—cùng một chìa khóa vật lý mở và đóng cửa.
Mã hóa bất đối xứng, còn gọi là mã hóa khóa công khai, đảo ngược mô hình này. Nó sử dụng hai chìa khóa liên kết về mặt toán học: một khóa công khai mà bất kỳ ai cũng có thể truy cập, và một khóa riêng tư giữ bí mật. Nếu bạn mã hóa thứ gì đó bằng khóa công khai, chỉ có khóa riêng mới có thể giải mã.
Tại sao điều này quan trọng: Thoả thuận về an ninh
Hãy xem một tình huống thực tế. Giả sử Alice muốn gửi Bob một tin nhắn an toàn:
Với mã hóa đối xứng: Alice và Bob phải trao đổi chìa khóa mã hóa qua một kênh an toàn trước. Điều này tạo ra một vấn đề ngay lập tức—nếu kẻ tấn công chặn được chìa khóa chia sẻ này, chúng có thể giải mã tất cả các liên lạc trong tương lai. Điểm yếu ở đây không phải là mã hóa, mà là việc gửi chìa khóa đến Bob một cách an toàn.
Với mã hóa bất đối xứng: Alice sử dụng khóa công khai của Bob để mã hóa tin nhắn. Ngay cả khi ai đó chặn dữ liệu đã mã hóa và tìm thấy khóa công khai trực tuyến, họ không thể giải mã mà không có khóa riêng của Bob, chỉ có anh ấy mới sở hữu. Điều này hoàn toàn giải quyết vấn đề phân phối chìa khóa.
Phương trình tốc độ vs an ninh
Điều này khiến các nhà thiết kế hệ thống quan tâm:
Mã hóa đối xứng cực kỳ nhanh và hiệu quả. Một chìa khóa đối xứng 128-bit cung cấp độ bảo mật mạnh mẽ với tối thiểu tải tính toán. Tiêu chuẩn mã hóa nâng cao (AES), thay thế tiêu chuẩn mã hóa dữ liệu cũ (DES) từ những năm 1970, vẫn là lựa chọn của chính phủ Mỹ cho thông tin mật vì tốc độ và độ tin cậy của nó.
Mã hóa bất đối xứng yêu cầu các chìa khóa dài hơn nhiều để đạt được mức độ bảo mật tương đương. Một chìa khóa bất đối xứng 2048-bit tương đương về mặt bảo mật với một chìa khóa đối xứng 128-bit, nhưng đòi hỏi nhiều sức mạnh xử lý hơn đáng kể và mất nhiều thời gian hơn để mã hóa và giải mã dữ liệu.
Khoảng cách hiệu suất này là lý do tại sao mã hóa bất đối xứng không được sử dụng cho mọi thứ—nó quá mức cần thiết và không hiệu quả để bảo vệ lượng lớn dữ liệu.
Chúng được sử dụng ở đâu
Mã hóa đối xứng chiếm ưu thế trong các tình huống cần tốc độ cao và phân phối chìa khóa dễ dàng:
Mã hóa cơ sở dữ liệu trong một tổ chức
Mã hóa tệp tin cục bộ trên máy tính của bạn
Bất kỳ tình huống nào mà các bên đã có kênh an toàn để trao đổi chìa khóa
Mã hóa bất đối xứng tỏa sáng khi bạn cần giao tiếp với người lạ hoặc nhiều bên:
Hệ thống mã hóa email nơi người dùng không biết nhau trước
Tạo chữ ký số chứng minh một tin nhắn đến từ một người cụ thể
Trao đổi chìa khóa ban đầu trong các giao thức giao tiếp an toàn
Phương pháp lai: Ưu điểm của cả hai
Hầu hết các giao thức bảo mật internet hiện đại sử dụng cả hai loại mã hóa này cùng nhau. Giao thức Bảo mật Truyền tải (TLS) và tiền thân của nó Giao thức Lớp Giao thức Bảo mật (SSL) hoạt động theo cách này:
Mã hóa bất đối xứng xử lý bước bắt tay ban đầu và trao đổi chìa khóa an toàn
Mã hóa đối xứng sau đó đảm nhận việc truyền dữ liệu thực tế
Sự kết hợp này mang lại lợi ích bảo mật của mã hóa bất đối xứng mà không gặp phải hạn chế về hiệu suất khi mã hóa lượng lớn dữ liệu. SSL hiện đã lỗi thời, nhưng TLS đã trở thành xương sống của giao tiếp web an toàn trên tất cả các trình duyệt lớn.
Mã hóa trong tiền điện tử: Làm rõ sự nhầm lẫn
Bitcoin và các loại tiền điện tử khác tạo ra cả cặp chìa khóa công khai và riêng tư, điều này thường khiến người ta nghĩ rằng chúng sử dụng mã hóa bất đối xứng. Nhưng đây là điểm tinh tế: có cặp chìa khóa không tự động có nghĩa là đang diễn ra mã hóa.
Bitcoin sử dụng các chìa khóa này cho chữ ký số, không phải để mã hóa. Thuật toán gọi là ECDSA (Elliptic Curve Digital Signature Algorithm), và nó ký các giao dịch để chứng minh quyền sở hữu mà không mã hóa chúng.
Ngược lại, RSA có thể vừa mã hóa tin nhắn và tạo chữ ký số. Lựa chọn của Bitcoin là dùng ECDSA có nghĩa là các giao dịch được ký nhưng không được mã hóa theo mặc định—bất kỳ ai cũng có thể đọc chi tiết giao dịch trên blockchain.
Việc mã hóa trong không gian crypto xuất hiện ở nơi khác: khi người dùng đặt mật khẩu cho các ứng dụng ví, các mật khẩu đó được mã hóa để bảo vệ tệp ví. Nhưng chính giao thức blockchain chủ yếu dựa vào chữ ký số chứ không phải mã hóa.
Trang này có thể chứa nội dung của bên thứ ba, được cung cấp chỉ nhằm mục đích thông tin (không phải là tuyên bố/bảo đảm) và không được coi là sự chứng thực cho quan điểm của Gate hoặc là lời khuyên về tài chính hoặc chuyên môn. Xem Tuyên bố từ chối trách nhiệm để biết chi tiết.
Mã hóa đối xứng vs mã hóa bất đối xứng: Loại nào bảo vệ tiền điện tử của bạn?
Nguyên tắc cốt lõi: Một chìa khóa hay hai?
Khi chúng ta nói về thuật toán mã hóa, có một sự phân chia cơ bản: một số dựa trên một chìa khóa duy nhất, trong khi số khác yêu cầu một cặp chìa khóa. Sự phân biệt này định hình mọi thứ về cách chúng hoạt động và nơi chúng được triển khai.
Mã hóa đối xứng hoạt động với một chìa khóa chia sẻ mà cả hai bên cùng sử dụng để mã hóa và giải mã tin nhắn. Hãy nghĩ nó như một chiếc khóa truyền thống—cùng một chìa khóa vật lý mở và đóng cửa.
Mã hóa bất đối xứng, còn gọi là mã hóa khóa công khai, đảo ngược mô hình này. Nó sử dụng hai chìa khóa liên kết về mặt toán học: một khóa công khai mà bất kỳ ai cũng có thể truy cập, và một khóa riêng tư giữ bí mật. Nếu bạn mã hóa thứ gì đó bằng khóa công khai, chỉ có khóa riêng mới có thể giải mã.
Tại sao điều này quan trọng: Thoả thuận về an ninh
Hãy xem một tình huống thực tế. Giả sử Alice muốn gửi Bob một tin nhắn an toàn:
Với mã hóa đối xứng: Alice và Bob phải trao đổi chìa khóa mã hóa qua một kênh an toàn trước. Điều này tạo ra một vấn đề ngay lập tức—nếu kẻ tấn công chặn được chìa khóa chia sẻ này, chúng có thể giải mã tất cả các liên lạc trong tương lai. Điểm yếu ở đây không phải là mã hóa, mà là việc gửi chìa khóa đến Bob một cách an toàn.
Với mã hóa bất đối xứng: Alice sử dụng khóa công khai của Bob để mã hóa tin nhắn. Ngay cả khi ai đó chặn dữ liệu đã mã hóa và tìm thấy khóa công khai trực tuyến, họ không thể giải mã mà không có khóa riêng của Bob, chỉ có anh ấy mới sở hữu. Điều này hoàn toàn giải quyết vấn đề phân phối chìa khóa.
Phương trình tốc độ vs an ninh
Điều này khiến các nhà thiết kế hệ thống quan tâm:
Mã hóa đối xứng cực kỳ nhanh và hiệu quả. Một chìa khóa đối xứng 128-bit cung cấp độ bảo mật mạnh mẽ với tối thiểu tải tính toán. Tiêu chuẩn mã hóa nâng cao (AES), thay thế tiêu chuẩn mã hóa dữ liệu cũ (DES) từ những năm 1970, vẫn là lựa chọn của chính phủ Mỹ cho thông tin mật vì tốc độ và độ tin cậy của nó.
Mã hóa bất đối xứng yêu cầu các chìa khóa dài hơn nhiều để đạt được mức độ bảo mật tương đương. Một chìa khóa bất đối xứng 2048-bit tương đương về mặt bảo mật với một chìa khóa đối xứng 128-bit, nhưng đòi hỏi nhiều sức mạnh xử lý hơn đáng kể và mất nhiều thời gian hơn để mã hóa và giải mã dữ liệu.
Khoảng cách hiệu suất này là lý do tại sao mã hóa bất đối xứng không được sử dụng cho mọi thứ—nó quá mức cần thiết và không hiệu quả để bảo vệ lượng lớn dữ liệu.
Chúng được sử dụng ở đâu
Mã hóa đối xứng chiếm ưu thế trong các tình huống cần tốc độ cao và phân phối chìa khóa dễ dàng:
Mã hóa bất đối xứng tỏa sáng khi bạn cần giao tiếp với người lạ hoặc nhiều bên:
Phương pháp lai: Ưu điểm của cả hai
Hầu hết các giao thức bảo mật internet hiện đại sử dụng cả hai loại mã hóa này cùng nhau. Giao thức Bảo mật Truyền tải (TLS) và tiền thân của nó Giao thức Lớp Giao thức Bảo mật (SSL) hoạt động theo cách này:
Sự kết hợp này mang lại lợi ích bảo mật của mã hóa bất đối xứng mà không gặp phải hạn chế về hiệu suất khi mã hóa lượng lớn dữ liệu. SSL hiện đã lỗi thời, nhưng TLS đã trở thành xương sống của giao tiếp web an toàn trên tất cả các trình duyệt lớn.
Mã hóa trong tiền điện tử: Làm rõ sự nhầm lẫn
Bitcoin và các loại tiền điện tử khác tạo ra cả cặp chìa khóa công khai và riêng tư, điều này thường khiến người ta nghĩ rằng chúng sử dụng mã hóa bất đối xứng. Nhưng đây là điểm tinh tế: có cặp chìa khóa không tự động có nghĩa là đang diễn ra mã hóa.
Bitcoin sử dụng các chìa khóa này cho chữ ký số, không phải để mã hóa. Thuật toán gọi là ECDSA (Elliptic Curve Digital Signature Algorithm), và nó ký các giao dịch để chứng minh quyền sở hữu mà không mã hóa chúng.
Ngược lại, RSA có thể vừa mã hóa tin nhắn và tạo chữ ký số. Lựa chọn của Bitcoin là dùng ECDSA có nghĩa là các giao dịch được ký nhưng không được mã hóa theo mặc định—bất kỳ ai cũng có thể đọc chi tiết giao dịch trên blockchain.
Việc mã hóa trong không gian crypto xuất hiện ở nơi khác: khi người dùng đặt mật khẩu cho các ứng dụng ví, các mật khẩu đó được mã hóa để bảo vệ tệp ví. Nhưng chính giao thức blockchain chủ yếu dựa vào chữ ký số chứ không phải mã hóa.