Mật mã khóa đối xứng (hoặc mã hóa đối xứng) là một loại mã hóa trong đó cùng một khóa được sử dụng để mã hóa và giải mã tin nhắn. Phương pháp mã hóa thông tin như vậy đã được sử dụng rộng rãi trong những thập kỷ gần đây để tạo điều kiện thuận lợi cho việc liên lạc bí mật giữa chính phủ và các cơ quan quân sự. Hiện nay, thuật toán khóa đối xứng được áp dụng rộng rãi trên nhiều loại hệ thống máy tính nhằm nâng cao tính bảo mật dữ liệu.
Mã hóa đối xứng hoạt động như thế nào?
Sơ đồ mã hóa đối xứng dựa trên một khóa duy nhất được chia sẻ giữa hai hoặc nhiều người dùng. Khóa tương tự được dùng để mã hóa và giải mã cái gọi là văn bản thuần túy (văn bản thuần túy, thể hiện thông báo hoặc một phần dữ liệu đang được mã hóa). Quá trình mã hóa bao gồm việc chạy văn bản gốc (đầu vào) thông qua thuật toán mã hóa được gọi là mật mã, từ đó tạo ra một văn bản mật mã/được mã hóa gọi là văn bản mã hóa (đầu ra).
Nếu sơ đồ mã hóa đủ mạnh, cách duy nhất một người có thể đọc hoặc truy cập thông tin có trong văn bản được mã hóa là sử dụng khóa tương ứng để giải mã nó. Quá trình giải mã về cơ bản là chuyển đổi văn bản được mã hóa trở lại định dạng văn bản gốc.
Tính bảo mật của hệ thống mã hóa đối xứng dựa trên độ khó của việc đoán ngẫu nhiên khóa tương ứng của hệ thống. Ví dụ, một khóa 128 bit sẽ mất hàng tỷ năm để đoán bằng máy tính thông thường. Khóa mã hóa càng dài thì càng khó giải mã. Các khóa có độ dài 256 bit được coi là có độ an toàn cao và có khả năng chống chịu về mặt lý thuyết ngay cả trước các cuộc tấn công cưỡng bức của máy tính lượng tử.
Hai trong số các sơ đồ mã hóa đối xứng phổ biến nhất hiện nay đều dựa trên mật mã khối và dòng. Khối mật mã nhóm dữ liệu có kích thước được xác định trước thành các khối. Mỗi khối được mã hóa bằng khóa và thuật toán mã hóa tương ứng (ví dụ: văn bản gốc 128 bit được mã hóa thành văn bản mã hóa 128 bit). Mặt khác, mật mã luồng không mã hóa dữ liệu theo khối mà theo gia số 1 bit (1 bit của bản rõ được mã hóa thành 1 bit của bản mã tại một thời điểm).
Mã hóa đối xứng và đối xứng bất đối xứng
Mã hóa đối xứng là một trong hai phương pháp mã hóa dữ liệu chính trong hệ thống máy tính hiện đại. Loại còn lại là mã hóa bất đối xứng, còn được gọi là mã hóa khóa công khai. Sự khác biệt chính giữa các phương pháp này là thực tế là hệ thống bất đối xứng sử dụng hai khóa chứ không chỉ một khóa như trong hệ thống mã hóa đối xứng. Một trong các khóa có thể được chia sẻ công khai (khóa chung), trong khi khóa còn lại phải được giữ bí mật (khóa riêng).
Việc sử dụng hai khóa thay vì một khóa cũng tạo ra nhiều khác biệt về chức năng giữa mã hóa đối xứng và bất đối xứng. Các thuật toán bất đối xứng phức tạp hơn và chậm hơn các thuật toán đối xứng. Bởi vì khóa chung và khóa riêng được sử dụng trong mã hóa bất đối xứng có liên quan về mặt toán học nên bản thân các khóa phải dài hơn đáng kể để cung cấp mức độ bảo mật tương tự được cung cấp bởi các khóa đối xứng ngắn hơn.
Sử dụng trong các hệ thống hiện đại
Các thuật toán mã hóa đối xứng được sử dụng trong nhiều hệ thống máy tính hiện đại để cải thiện tính bảo mật dữ liệu và quyền riêng tư của người dùng. Tiêu chuẩn mã hóa nâng cao (AES), được sử dụng rộng rãi trong các ứng dụng lưu trữ đám mây và nhắn tin an toàn, là một ví dụ nổi bật về mã hóa đối xứng.
Ngoài việc triển khai phần mềm, AES cũng có thể được triển khai trực tiếp trên phần cứng máy tính. Các sơ đồ mã hóa đối xứng dựa trên phần cứng thường sử dụng AES 256, một biến thể cụ thể của AES có kích thước khóa 256 bit.
Điều đáng nói là chuỗi khối Bitcoin không sử dụng mã hóa như nhiều người vẫn tin. Thay vào đó, một thuật toán chữ ký số cụ thể (DSA) được gọi là Thuật toán chữ ký số đường cong Elliptic (ECDSA) được sử dụng, thuật toán này tạo ra chữ ký số mà không cần sử dụng mã hóa.
Một điểm thường gây nhầm lẫn là ECDSA dựa trên mật mã đường cong elip (ECC), do đó có thể được áp dụng cho nhiều tác vụ, bao gồm mã hóa, chữ ký số và trình tạo giả ngẫu nhiên. Tuy nhiên, bản thân ECDSA không thể được sử dụng để mã hóa.
Ưu điểm và nhược điểm
Các thuật toán đối xứng cung cấp mức độ bảo mật khá cao, đồng thời cho phép tin nhắn được mã hóa và giải mã nhanh chóng. Tính đơn giản tương đối của các hệ thống đối xứng cũng là một lợi thế về mặt hậu cần, vì chúng đòi hỏi ít sức mạnh tính toán hơn các hệ thống bất đối xứng. Hơn nữa, tính bảo mật được cung cấp bởi mã hóa đối xứng có thể dễ dàng tăng lên bằng cách tăng độ dài khóa. Đối với mỗi bit được thêm vào độ dài của khóa đối xứng, độ khó của việc bẻ khóa mã hóa bằng cách sử dụng tấn công cưỡng bức sẽ tăng theo cấp số nhân.
Mặc dù mã hóa đối xứng mang lại nhiều lợi ích nhưng nó có một nhược điểm lớn liên quan: vấn đề cố hữu trong việc truyền các khóa dùng để mã hóa và giải mã dữ liệu. Khi các khóa này được chia sẻ qua kết nối không an toàn, chúng dễ bị bên thứ ba hoặc người dùng độc hại chặn. Nếu người dùng trái phép có quyền truy cập vào khóa đối xứng, tính bảo mật của mọi dữ liệu được mã hóa bằng khóa đó sẽ bị xâm phạm. Để giải quyết vấn đề này, nhiều giao thức web sử dụng kết hợp mã hóa đối xứng và bất đối xứng để thiết lập các kết nối an toàn. Trong số các ví dụ nổi bật nhất của hệ thống kết hợp như vậy là giao thức mã hóa Bảo mật lớp vận chuyển (TLS) dùng để bảo mật phần lớn Internet hiện đại.
Cũng cần lưu ý rằng tất cả các loại mã hóa máy tính đều có lỗ hổng do triển khai không đúng cách. Mặc dù khóa đủ dài có thể khiến một cuộc tấn công cưỡng bức không thể thực hiện được về mặt toán học, nhưng lỗi trong quá trình triển khai của các lập trình viên thường tạo ra điểm yếu mở đường cho các cuộc tấn công mạng.
Cân nhắc cuối cùng
Nhờ tốc độ tương đối, tính đơn giản và tính bảo mật, mã hóa đối xứng được sử dụng rộng rãi trong các ứng dụng từ bảo vệ lưu lượng truy cập Internet đến bảo vệ dữ liệu được lưu trữ trên máy chủ đám mây. Mặc dù nó thường được sử dụng kết hợp với mã hóa bất đối xứng để giải quyết vấn đề truyền khóa an toàn, nhưng các sơ đồ mã hóa đối xứng vẫn là một thành phần quan trọng trong bảo mật máy tính hiện đại.
