Mã hóa khóa đối xứng (hoặc mã hóa đối xứng) đề cập đến sơ đồ mật mã sử dụng cùng một khóa để mã hóa và giải mã. Trong vài thập kỷ qua, phương pháp mã hóa thông tin này đã được sử dụng rộng rãi trong các liên lạc bí mật của chính phủ và quân đội. Ngày nay, thuật toán khóa đối xứng cũng được sử dụng rộng rãi trong nhiều loại hệ thống máy tính nhằm tăng cường bảo mật dữ liệu.
Các sơ đồ mã hóa đối xứng dựa trên cùng một khóa đượ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 đoạn tin nhắn hoặc dữ liệu được mã hóa. Quá trình mã hóa có thể được tóm tắt đại khái như sau: bản rõ (dưới dạng đầu vào) được mã hóa bằng thuật toán mã hóa, sau đó tạo ra bản mã (đầu ra) từ bản rõ.
Nếu sơ đồ mã hóa đủ mạnh thì cách duy nhất để mọi người đọc hoặc truy cập thông tin văn bản mã hóa là giải mã nó bằng khóa mã hóa tương ứng. Quá trình giải mã về cơ bản sẽ chuyển đổi bản mã trở lại thành bản rõ.
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 các khóa tương ứng để phá chúng. Ví dụ: sẽ mất ít nhất hàng tỷ năm để bẻ khóa khóa 128 bit 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. Khóa 256 bit thường được coi là cực kỳ an toàn 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 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à mật mã 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ã hóa từng khối bằng khóa và thuật toán mã hóa tương ứng (ví dụ: bản rõ 128 bit được mã hóa thành bản mã 128 bit). Mặt khác, mật mã luồng không mã hóa dữ liệu văn bản gốc theo khối mà theo dòng tăng dần 1 bit (nghĩa là 1 bit văn bản gốc được mã hóa thành 1 bit văn bản mã hóa mỗi lần).
Mã hóa đối xứng là hai phương pháp mã hóa dữ liệu trong máy tính hiện đại hệ thống Một trong những phương pháp chính. Loại còn lại được gọi là mã hóa bất đối xứng, đôi khi còn được gọi là mã hóa khóa chung. Sự khác biệt chính giữa hai phương pháp trên là hệ thống mã hóa bất đối xứng sử dụng hai khóa khác nhau để mã hóa và giải mã, không giống như cùng một khóa được sử dụng trong mã hóa đối xứng. Trong mã hóa bất đối xứng, một trong các khóa được chia sẻ (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 khác nhau bằng thuật toán mã hóa bất đối xứng cũng là lý do khiến nó có sự khác biệt về chức năng so với khóa đối xứng. Thuật toán bất đối xứng phức tạp hơn và chậm hơn 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 có liên quan về mặt số học ở một mức độ nào đó nên bản thân khóa phải đủ dài để đạt được mức độ bảo mật tương tự như thuật toán mã hóa đối xứng (sử dụng khóa mã hóa ngắn hơn).
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 nhằm 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ác ứng dụng nhắn tin bảo mật và lưu trữ đám mây, là trường hợp sử dụng phổ biến cho 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 sử dụng AES 256, một biến thể cụ thể của Tiêu chuẩn mã hóa nâng cao với độ dài khóa là 256 bit.
Điều đáng chú ý là blockchain của Bitcoin không sử dụng mã hóa như hầu hết mọi người nghĩ. Thay vào đó, nó sử dụng một thuật toán chữ ký số đặc biệt (DSA) được gọi là Thuật toán chữ ký số đường cong Elliptic (ECDSA), tạo ra chữ ký số mà không cần sử dụng thuật toán 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), cũng có thể được áp dụng cho nhiều nhiệm vụ khác nhau, bao gồm mã hóa, chữ ký số và giả -máy phát điện ngẫu nhiên. Tuy nhiên, bản thân ECDSA không thể được sử dụng để mã hóa.
Thuật toán mã hóa đối xứng có thể cung cấp tương đối cao Mức độ bảo mật, hỗ trợ cả mã hóa và giải mã tin nhắn nhanh chóng. Sự dễ dàng tương đối của các hệ thống mật mã đối xứng cũng là một lợi thế hợp lý, vì chúng tiêu tốn ít tài nguyên máy tính hơn các hệ thống bất đối xứng. Ngoài ra, bảo mật được cung cấp bởi mã hóa đối xứng có thể đạt được bằng cách tăng độ dài khóa. Khi độ dài của khóa đối xứng tăng lên, độ khó của một cuộc tấn công bạo lực nhằm phá vỡ mã hóa sẽ tăng theo cấp số nhân.
Mặc dù mã hóa đối xứng mang lại nhiều ưu điểm nhưng nó cũng có một nhược điểm nghiêm trọng: các khóa dùng để mã hóa và giải mã dữ liệu đều giống nhau. Khi các khóa này được chia sẻ trên các kết nối mạng không an toàn, chúng có thể dễ dàng 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 cụ thể thì tính bảo mật của 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. Ví dụ phổ biến nhất của giao thức kết hợp như vậy là Transport Layer Security (TLS), được sử dụng để bảo mật hầu hết các kết nối mạng trê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ó thể bị ảnh hưởng bởi các lỗ hổng do thực hiện không đúng cách. Mặc dù về mặt toán học, khóa đủ dài khiến cuộc tấn công vũ phu không hiệu quả, nhưng việc cấu hình sai của lập trình viên thường tạo ra lỗ hổng, mở ra con đường mới cho những kẻ tấn công mạng.
Do tốc độ hoạt động tương đối nhanh của mã hóa đối xứng nên rất dễ dàng dễ sử dụng và an toàn.Mã hóa đối xứng, có độ tin cậy cao được sử dụng rộng rãi trong nhiều ứng dụng khác nhau như bảo vệ lưu lượng truy cập Internet và bảo vệ dữ liệu trên máy chủ đám mây. Để giải quyết vấn đề bảo mật khi truyền khóa, nó thường được sử dụng kết hợp với mã hóa bất đối xứng, nhưng các sơ đồ mã hóa đối xứng vẫn là thành phần chính của bảo mật máy tính hiện đại.