CoderTools

Công cụ mã hóa/giải mã Serpent

Thuật toán vào chung kết AES - mật mã khối siêu an toàn với khóa 128/192/256-bit

⚠️ Lưu ý về hiệu suất

Serpent chậm hơn AES do 32 vòng so với 10-14 vòng của AES. Đối với các ứng dụng quan trọng về hiệu suất, hãy cân nhắc AES. Chọn Serpent khi biên độ an toàn tối đa là ưu tiên của bạn.

Độ dài khóa Serpent: 128/192/256-bit. Khối 128-bit. Biên độ an toàn cao nhất trong các thuật toán vào chung kết AES.
Tùy chọn định dạng

Về mã hóa Serpent

Serpent là mật mã đối xứng do Ross Anderson (Cambridge), Eli Biham (Technion) và Lars Knudsen (DTU) thiết kế, nộp cho cuộc thi AES NIST năm 1998. Về nhì — sau Rijndael (AES) — với đánh giá bảo mật cao nhất trong số 5 người vào chung kết. Mạng SP xử lý khối 128 bit qua 32 vòng hoàn chỉnh (gấp 3 AES-128).

Serpent áp dụng 8 S-box 4→4 bit khác nhau theo vòng tròn trong 32 vòng (mỗi S-box xuất hiện chính xác 4 lần). Tất cả được chọn bằng tìm kiếm toàn diện để tối ưu hóa sức đề kháng với mã phân tích vi sai và tuyến tính. Triển khai bitslice: mỗi vị trí bit của 32 khối song song chiếm một thanh ghi CPU 32 bit.

Ủy ban NIST ghi nhận Serpent có độ tin cậy bảo mật cao nhất, nhưng thông lượng vượt trội của Rijndael là yếu tố quyết định. Sau cuộc thi, Schneier và Kelsey kết luận: “Nếu bảo mật là tiêu chí duy nhất, Serpent sẽ là lựa chọn rõ ràng.”

Đặc điểm chính

  • Mạng SP 32 vòng: gấp 3 AES-128, gấp 2 AES-256. Tấn công tốt nhất chỉ đạt 12/32 vòng
  • S-box bitslice: 128 bit qua 32 phép toán thanh ghi — không tra cứu bảng, miễn dịch với timing attack cache
  • 8 S-box 4→4 bit tối ưu qua tìm kiếm toàn diện về sức đề kháng vi sai và tuyến tính
  • Lịch trình khóa: 132 khóa con 4 bit dẫn xuất qua phản hồi tuyến tính
  • Hỗ trợ khóa 128, 192 và 256 bit với cùng cấu trúc 32 vòng

Các chế độ mã hóa

  • CBC: CBC Serpent — khối 128 bit XOR với bản mã trước. Ngưỡng Sweet32 tại 2⁶⁴ khối — thực tế không thể đạt được.
  • ECB: ECB Serpent — mỗi khối 16 byte xử lý độc lập. Chỉ cho thao tác một khối.
  • CFB: CFB Serpent — luồng tự đồng bộ không có hạn chế Sweet32. Phù hợp cho streaming.
  • OFB: OFB Serpent — luồng khóa xác định, chu kỳ 2¹²⁸ khối, không lan truyền lỗi.

So sánh thuật toán

Thuật toán Độ dài khóa Kích thước khối Số vòng Bảo mật Tốc độ
Serpent 128/192/256-bit 128 bits 32 Xuất sắc Chậm
AES 128/192/256 bits 128 bits 10-14 Xuất sắc Nhanh
Twofish 128/192/256 bits 128 bits 16 Xuất sắc Nhanh

Bối cảnh cuộc thi AES

Serpent nhận đánh giá biên độ bảo mật cao nhất trong đánh giá chung kết AES NIST (1999) trong số 5 ứng cử viên.

Rijndael được chọn làm AES vì hiệu năng: thông lượng cao hơn 2-3 lần trên phần cứng thông dụng.

Kelsey và Schneier xác nhận Serpent có biên độ bảo mật lớn hơn đáng kể mà không có điểm yếu kiến trúc.

Cân nhắc về bảo mật

  • Không có tấn công trên 32 vòng đầy đủ. Tấn công tốt nhất: 12/32 vòng (boomerang 2011), độ phức tạp 2¹²².
  • Các S-box được xác minh toàn diện về phân tích mật mã vi sai và tuyến tính. Tài liệu NIST đầy đủ.
  • Triển khai bitslice không có bảng tra cứu → thời gian cố định → chống timing attack cache.
  • Serpent-256 cho lưu trữ dài hạn có biên độ bảo mật tối đa. AES-256-GCM cho mạng.

Trường hợp sử dụng

  • Mã hóa lưu trữ dài hạn với Serpent-256
  • Môi trường chống timing attack: hệ thống nhúng không có AES-NI
  • Container đa mật mã (cascade VeraCrypt): Serpent+AES+Twofish
  • Tham chiếu học thuật: tài liệu đầy đủ, 25+ năm chưa bị phá vỡ

Tài liệu tham khảo

Menu Nhanh

Chưa có công cụ gần đây