Tìm hiểu 5 thuật toán mã hóa thông dụng

  • Monday 25/10/2021

I. Tổng quan

Có lẽ bạn đã từng nghe qua hoặc đã sử dụng “mã hóa”. Với vô số các nguy cơ tiềm ẩn trên Internet hiện nay thì mã hóa đóng vai trò rất to lớn trong việc bảo vệ thông tin. Có nhiều loại mã hóa, nhưng dựa trên tiêu chí nào để đánh giá loại mã hóa nào mạnh hay yếu ? câu trả lời chính là: dựa vào thuật toán mã hóa. Vậy thuật toán mã hóa là gì? Có các loại thuật toán mã hóa nào? Chúng ta cũng tìm hiểu nhé. 

1. Mã hóa là gì ?

Mã hóa là cách xáo trộn dữ liệu chỉ để hai bên trao đổi thông tin có thể hiểu được. Về mặt kỹ thuật, đó là quá trình chuyển đổi văn bản gốc sang bản mã. Nói một cách đơn giản hơn, mã hóa lấy dữ liệu có thể đọc được và thay đổi nó để dữ liệu này không giống như ban đầu. 
Bạn có thể tìm hiểu thêm về mã hóa tại đây

2. Thuật toán là gì ?

Có nhiều định nghĩa khác nhau về thuật toán. Đối với toán học và khoa học máy tính, một thuật toán, còn gọi là giải thuật, là một tập hợp hữu hạn các hướng dẫn được xác định rõ ràng, có thể thực hiện được bằng máy tính, thường để giải quyết một lớp vấn đề hoặc để thực hiện một phép tính. Các thuật toán luôn rõ ràng và được sử dụng chỉ rõ việc thực hiện các phép tính, xử lý dữ liệu, suy luận tự động và các tác vụ khác.

3. Thuật toán mã hóa là gì

Thuật toán mã hóa là một thuật toán nhằm mã hóa thông tin của chúng ta, biến đổi thông tin từ dạng rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung của thông tin.
Thông thường các thuật toán sử dụng một hoặc nhiều key để mã hóa và giải mã. Bạn có thể coi key này như một cái password để có thể đọc được nội dung mã hóa. Người gửi sẽ dùng key mã hóa để mã hóa thông tin sang dạng mờ, và người nhận sẽ sử dụng key giải mã để giải mã thông tin sang dạng rõ. Chỉ những người nào có key giải mã mới có thể đọc được nội dung.
Nhưng đôi khi “kẻ thứ ba” (hacker) không có key giải mã vẫn có thể đọc được thông tin, bằng cách phá vỡ thuật toán. Và có một nguyên tắc là bất kì thuật toán mã hóa nào cũng đều có thể bị phá vỡ. Do đó không có bất kì thuật toán mã hóa nào được coi là an toàn mãi mãi.

II. 5 thuật toán mã hóa thông dụng nhất

Các loại mã hóa tạo thành nền tảng cho thuật toán mã hóa, trong khi thuật toán mã hóa chịu trách nhiệm về độ mạnh mã hóa. Có nhiều loại thuật toán mã hóa. Sau đây là 5 thuật toán mã hóa phổ biến nhất.

1. DES (Data Encryption Standard)

Data Encryption Standard là tiêu chuẩn mã hóa ban đầu của chính phủ Mỹ. Ban đầu nó được cho là không thể phá vỡ nhưng sự ra tăng về sức mạnh máy tính và giảm chi phí phần cứng đã khiến mã hóa 56-bit lỗi thời. Điều này đặc biệt đúng với dữ liệu nhạy cảm.

John Gilmore, người đồng sáng lập EFF, đứng đầu dự án Deep Crack, đã nói: “Khi thiết kế hệ thống an toàn và cơ sở hạ tầng cho xã hội, hãy lắng nghe các nhà mật mã học, chứ không phải các chính trị gia.” Ông cảnh báo cho những người sử dụng mã hóa DES để lưu trữ dữ liệu riêng tư rằng thời gian kỷ lục để crack DES ngắn, do đó nên cẩn thận khi dùng. 

Tuy nhiên, bạn vẫn sẽ tìm thấy DES trong nhiều sản phẩm vì nó mã hóa ở mức độ thấp dễ thực hiện mà không đòi hỏi một lượng lớn công suất tính toán. 

2. TripleDES

TripleDES (đôi khi được viết là 3DES hoặc TDES) là phiên bản DES mới hơn, an toàn hơn. Khi DES bị crack trong thời gian chưa đầy 23 giờ, người ta nhận ra vấn đề, do vậy, đây là lý do mà TripleDES được sinh ra. TripleDES tăng tốc quy trình mã hóa bằng cách chạy DES ba lần.

Dữ liệu được mã hóa, giải mã và sau đó được mã hóa một lần nữa, đem đến độ dài khóa hiệu quả là 168 bit. Nó đủ dài cho những dữ liệu nhạy cảm nhất. Tuy nhiên, mặc dù TripleDES dài hơn tiêu chuẩn DES nhưng nó cũng có những sai sót.

TripleDES có ba tùy chọn khóa:

Tùy chọn Key 1: Tất cả ba khóa đều độc lập. Phương pháp này cung cấp cường độ khóa mạnh nhất: 168 bit.

Tùy chọn Key 2: Key 1 và Key 2 là độc lập, trong khi Key 3 giống với Key 1. Phương pháp này cung cấp cường độ khóa hiệu quả là 112 bit (2 × 56 = 112).

Tùy chọn Key 3: Cả ba khóa đều giống nhau. Phương pháp này cung cấp khóa 56 bit.

Tùy chọn Key 1 là mạnh nhất. Tùy chọn Key 2 không mạnh, nhưng vẫn cung cấp sự bảo vệ nhiều hơn gấp hai lần so với mã hóa DES. TripleDES là một thuật toán mã hóa khối, nghĩa là dữ liệu được mã hóa theo một kích thước khối cố định. Tuy nhiên, kích thước khối TripleDES nhỏ 64 bit, làm cho nó hơi nhạy cảm với các cuộc tấn công nhất định (như xung đột khối).

3. RSA

RSA (được đặt tên theo người sáng tạo của nó là Ron Rivest, Adi Shamir và Leonard Adleman) là một trong những thuật toán mã hóa khóa công khai đầu tiên. Nó sử dụng hàm mã hóa bất đối xứng một chiều.

Thuật toán RSA được sử dụng rộng rãi trên Internet. Nó là tính năng chính của nhiều giao thức bao gồm SSH, OpenPGP, S/MIME và SSL/TLS. Ngoài ra, trình duyệt sử dụng RSA để thiết lập giao tiếp an toàn qua mạng không an toàn.

RSA vẫn rất phổ biến do độ dài khóa của nó. Một khóa RSA thường dài 1024 hoặc 2048 bit. Tuy nhiên, các chuyên gia bảo mật tin rằng không mất nhiều thời gian để crack RSA 1024 bit, do đó nhiều tổ chức phải chuyển sang khóa 2048 bit mạnh mẽ hơn.

4. AES (Advanced Encryption Standard)

Advanced Encryption Standard (AES) hiện là tiêu chuẩn mã hóa của Chính phủ Hoa Kỳ đáng tin cậy. Nó dựa trên thuật toán Rijndael được phát triển bởi hai nhà mật mã người Bỉ, Joan Daemen và Vincent Rijmen. Các nhà mật mã học người Bỉ đã gửi thuật toán của họ đến Viện Tiêu chuẩn và Kỹ thuật Quốc gia (National Institute of Standards and Technology – NIST), cạnh tranh với 14 thuật toán mã hóa khác để trở thành kiểu mật mã tiếp theo sau DES. Rijndael “thắng” và được chọn là thuật toán AES được đề xuất vào tháng 10 năm 2000.

AES là thuật toán khóa đối xứng và sử dụng mật mã khối đối xứng. Nó bao gồm ba kích thước chính: 128, 192 hoặc 256 bit. Hơn nữa, có các vòng mã hóa khác nhau cho mỗi kích thước khóa. Một vòng là quá trình chuyển văn bản thô thành văn bản mã hóa. Đối với 128-bit, có 10 vòng (round); 192-bit có 12 vòng, và 256-bit có 14 vòng.

Có những cuộc tấn công lý thuyết chống lại thuật toán AES, nhưng tất cả đều yêu cầu lưu trữ dữ liệu cụ thể và thời gian nhất định, do đó không khả thi trong thời điểm hiện tại. Ví dụ, một cuộc tấn công vào mã hóa AES cần 38 nghìn tỷ dữ liệu, nhiều hơn tất cả dữ liệu được lưu trữ trên tất cả các máy tính trên toàn thế giới trong năm 2016. Ước tính thời gian cần thiết để tạo tấn công brute-force khóa AES-128 là hàng tỷ năm. 

Như vậy, chuyên gia mật mã Bruce Schneier không “tin rằng ai có thể khám phá ra một cuộc tấn công đọc được lưu lượng truy cập Rijndael”. Thuật toán mã hóa Twofish của Schneiers (được thảo luận dưới đây) là một đối thủ của Rijndael trực tiếp trong cuộc cạnh tranh để chọn thuật toán an ninh quốc gia mới.

5. Twofish

Twofish là tiêu chuẩn được lọt vào “vòng chung kết” trong cuộc tuyển chọn thuật toán an ninh quốc gia và thua Rijndael. Thuật toán Twofish hoạt động với các kích thước khóa 128, 196 và 256 bit và có cấu trúc khóa phức tạp khiến nó khó có thể bị bẻ khóa.

Các chuyên gia bảo mật coi Twofish là một trong những thuật toán mã hóa nhanh nhất và là một lựa chọn tuyệt vời cho cả phần cứng và phần mềm. Hơn nữa, mật mã Twofish miễn phí cho tất cả người dùng. Nó xuất hiện trong một số phần mềm mã hóa miễn phí tốt nhất, chẳng hạn như VeraCrypt (mã hóa ổ đĩa), PeaZip (file lưu trữ) và KeePass (quản lý mật khẩu nguồn mở), cũng như tiêu chuẩn OpenPGP

III. Kết luận

Việc sản xuất mã hóa thực sự là một quá trình an toàn, lâu dài và mạnh mẽ cần có thời gian và phân tích chuyên sâu từ một số tổ chức bảo mật mạnh mẽ nhất trên thế giới. 5 thuật toán mã hóa phổ biến trên được xem như là những thuật toán mã hóa tốt nhất, bởi vì về cơ bản chúng không thể phá vỡ, ít nhất trong thời gian này. 

Các thuật toán mã hóa này đã được các nhà cung cấp SSL nổi tiếng như Comodo, Geotrust, Digicert… sử dụng

P.A Việt Nam giúp các bạn lựa chọn chứng chỉ SSL phù hợp với nhu cầu
https://www.pavietnam.vn/vn/tu-van-ssl.html
Tham khảo chứng chỉ số SSL của các hãng bảo mật nổi tiếng
Sectigo – Comodo
Geotrust
Digicert

Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/

Rate this post