Các loại thuật toán mã hóa đối xứng

Các thuật toán để mã hóa dữ liệu máy tính có hai loại chính: đối xứng và không đối xứng. Mỗi loại mã hóa có điểm mạnh và điểm yếu cố hữu. Các thuật toán đối xứng chuyển đổi dữ liệu văn bản đơn giản thành một bản mã không thể đọc được bằng một khóa hoặc mật khẩu duy nhất; họ giải mã bản mã bằng cùng một khóa. Các thuật toán này tương đối đơn giản và nhanh chóng, nhưng nếu các bên thứ ba chặn khóa, họ có thể giải mã các tin nhắn. Nhu cầu về thương mại điện tử đáng tin cậy và bảo mật tệp máy tính đã khiến các nhà nghiên cứu phát triển một số loại thuật toán mã hóa.

DES và Triple DES

Tiêu chuẩn mã hóa dữ liệu ba, hoặc thuật toán Triple DES, được phát triển từ thuật toán DES ban đầu được giới thiệu như một tiêu chuẩn vào năm 1976 (Tài liệu tham khảo 2, trang 3). DES sử dụng 56 bit của khóa 64 bit để mã hóa tin nhắn trong các khối dữ liệu có kích thước cố định. Mặc dù được coi là an toàn trong những năm 1970, nhưng những tiến bộ về tốc độ tính toán đã dẫn đến các cuộc tấn công tinh vi phá vỡ mã hóa DES vào cuối những năm 1990 (Tài liệu tham khảo 2, trang 6). Bởi vì các nhà nghiên cứu thấy DES dễ bị tổn thương, các nhà phát triển phần mềm thay vì sử dụng một tiêu chuẩn mới hơn, Triple DES. Tiêu chuẩn mới tăng sức mạnh của thuật toán bằng cách sử dụng hai hoặc ba khóa 64 bit và thực hiện mã hóa ba lần trên mỗi tin nhắn. Kết quả của mỗi lần vượt qua được sử dụng làm nguồn cho lần tiếp theo.

RC2

Ron Rivest đã phát triển thuật toán RC2 vào cuối những năm 1980 để thay thế cho DES. RC2 mã hóa dữ liệu theo khối 64 bit và có kích thước khóa thay đổi từ 8 đến 128 bit với gia số 8 bit. Lotus Development đã yêu cầu sự giúp đỡ của Rivest trong việc tạo RC2 cho phần mềm Lotus Notes của công ty. Do một phần lớn sức mạnh của thuật toán mã hóa nằm ở độ dài của khóa, nên các nhà nghiên cứu hiện coi RC2 quá dễ bị xâm phạm (Tài liệu tham khảo 3).

Cá kiếm và Twofish

Nhà nghiên cứu bảo mật Bruce Schneier đã phát triển thuật toán đối xứng "Blowfish" vào đầu những năm 1990 (Tài liệu tham khảo 3). Như với RC2, Blowfish chia các thông điệp thành các khối 64 bit có kích thước bằng nhau và mã hóa các khối. Kích thước khóa của nó nằm trong khoảng từ 32 đến 448 bit. Schneier đã phát hành Blowfish như một thuật toán trong phạm vi công cộng, có sẵn miễn phí cho bất kỳ ai muốn mã hóa dữ liệu. Tìm cách cải thiện trên blowfish, sau đó, anh đã phát triển Twofish, sử dụng các khối 128 bit và các phím dài tới 256 bit. Twofish là một trong những thuật toán khối cố định nhanh nhất hiện có, và mặc dù nó có lỗ hổng về mặt lý thuyết, nhưng vẫn chưa có ai phá vỡ nó.

Con rắn

Các nhà nghiên cứu Cambridge Ross Anderson, Eli Biham và Lars Knudsen đã phát triển thuật toán Serpent vào năm 2000 (Tài liệu tham khảo 4). Các nhà nghiên cứu tin rằng các thuật toán khác có lỗ hổng lý thuyết khiến mã hóa của chúng dễ bị tấn công bằng phím tắt. Họ đã tìm cách phát triển một thuật toán mã hóa miễn phí từ những sai sót này nhất có thể. Serpent là kết quả của những nỗ lực của họ; nó sử dụng khối 128 bit và khóa 256 bit (Tham khảo 5). Như với Blowfish và Twofish, thuật toán Serpent nằm trong phạm vi công cộng. Các nhà nghiên cứu đã cho Serpent điểm rất cao về "yếu tố an toàn", hoặc sự tin cậy chống lại các cuộc tấn công.

Bài ViếT Phổ BiếN