Mật mã khóa đối xứng (hoặc mã hóa đối xứng) là một loại sơ đồ mã hóa trong đó cùng một khóa được sử dụng cho cả 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 nhiều thập kỷ qua để 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à quân đội. Ngày nay, thuật toán khóa đối xứng được ứng dụng rộng rãi trên nhiều loại hệ thống máy tính nhằm tăng cường bảo mật dữ liệu.
Mã hóa đối xứng hoạt động như thế nào?
Lược đồ 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 sử dụng để mã hóa và giải mã cái gọi là văn bản gốc (đại diện cho thông điệp hoặc phần dữ liệu đang được mã hóa). Quá trình mã hóa bao gồm việc chạy một bản rõ (đầu vào) thông qua một thuật toán mã hóa được gọi là mật mã, từ đó tạo ra một bản mã (đầu ra).
Nếu sơ đồ mã hóa đủ mạnh, cách duy nhất để một người đọc hoặc truy cập thông tin chứa trong bản mã 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 bản mã trở lại bản rõ.
Tính bảo mật của các hệ thống mã hóa đối xứng dựa trên mức độ khó đoán ngẫu nhiên khóa tương ứng để ép buộc chúng. Ví dụ, một khóa 128 bit sẽ mất hàng tỷ năm để đoán bằng phần cứng máy tính thông thường. Khóa mã hóa càng dài thì càng khó bẻ khóa. Các khóa có độ dài 256 bit thường được coi là có độ an toàn cao và về mặt lý thuyết có khả năng chống lại các cuộc tấn công vũ phu 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 được sử dụng ngày nay đều dựa trên mật mã khối và dòng. Nhóm mật mã khối dữ liệu thành các khối có kích thước xác định trước và 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ã dòng không mã hóa dữ liệu văn bản gốc theo khối mà thay vào đó theo gia số 1 bit (văn bản gốc 1 bit được mã hóa thành văn bản mã hóa 1 bit mỗi lần).
Mã hóa đối xứng và 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, là ứng dụng chính của mật mã 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à các hệ thống bất đối xứng sử dụng hai khóa thay vì một khóa được sử dụng bởi các sơ đồ đố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ữ ở chế độ riêng tư (khóa riêng).
Việc sử dụng hai khóa thay vì một 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. Vì khóa chung và khóa riêng được sử dụng trong mã hóa bất đối xứng ở một mức độ nào đó có liên quan về mặt toán học nên bản thân các khóa cũng 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 máy tính 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 để tăng cường 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ả ứng dụng nhắn tin bảo mật và lưu trữ đám mây là một ví dụ nổi bật về mật mã đố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 trong 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 tận dụng AES 256, đây là một biến thể cụ thể của Tiêu chuẩn mã hóa nâng cao có kích thước khóa là 256 bit.
Điều đáng chú ý là blockchain của Bitcoin không sử dụng mã hóa như nhiều người vẫn nghĩ. Thay vào đó, nó sử dụng một loại thuật toán chữ ký số (DSA) cụ thể được gọi là Thuật toán chữ ký số đường cong Elliptic (ECDSA) để tạo chữ ký số mà không cần sử dụng mã hóa.
Một điểm gây nhầm lẫn phổ biế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 mã hóa và giải mã tin nhắn một cách 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 so với các hệ thống bất đối xứng. Ngoài ra, tính bảo mật được cung cấp bởi mã hóa đối xứng có thể được tăng cường chỉ 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 thông qua một cuộc tấn công vũ phu 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 có một nhược điểm lớn liên quan đến nó: 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ị các bên thứ ba độc hại chặn. Nếu người dùng trái phép có quyền truy cập vào một khóa đối xứng cụ thể thì 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ố những 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ật mã Transport Layer Security (TLS) được sử 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 thực hiện không đúng cách. Mặc dù một khóa đủ dài có thể khiến một cuộc tấn công vũ phu không thể thực hiện được về mặt toán học, nhưng những sai sót trong quá trình triển khai của các lập trình viên thường tạo ra những điểm yếu mở đường cho các cuộc tấn công mạng.
Bớt tư tưở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 mật 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 kết hợp với mã hóa bất đối xứng để giải quyết vấn đề truyền khóa một cách 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 của bảo mật máy tính hiện đại.



