Advanced Encryption Standard (AES)

Một phần của tài liệu Mã hoá bảo mật thông tin và ứng dụng trong thương mại điện tử (Trang 39)

qua, với sự phát triển vượt bậc về tốc độ xử lý của máy tính, thuật toán DES đã có thể bị phá vỡ trong một khoảng thời gian ngắn. Chính vì vậy NIST đã quyết định sử dụng thuật toán AES để thay thế DES. Quyết định được đưa ra vào tháng 1 năm 1997. Các thuật toán AES là các thuật toán mã hoá đối xứng dạng mã hoá theo khối sử dụng khoá mã có độ dài 128, 192 và 256 bit. 5 thuật toán được NIST đưa vào xem xét bao gồm:

- MARS phát triển bởi đội ngũ IBM đã từng phát triển thuật toán Lucifer - RC6 phát triển bởi phòng thí nghiệm RSA

- Serpent phát triển bởi Ross Anderson, Eli Biham, và Lars Knudsen - Twofish phát triển bởi Counterpane Systems

- Rijndael phá triển bởi Joan Daemon và Vincent Rijmen

Cuối cùng thuật toán Rijndael đã được NIST lựa chọn để thay thế cho thuật toán DES. Thuật toán này được sử dụng để bảo vệ các thông tin nhạy cảm nhưng chưa phải là tối mật của chính phủ Mỹ.

Serpent

Serpent là một thuật toán hiện đại sử dụng khối thông tin 128 bit và các khoá mã có độ dài 256 bit để tính toán và chọn ra một khoá mã có độ dài thích hợp. Serpent được phát triển bởi Ross Anderson, Eli Biham, Lars Knudsen và là một trong 5 thuật toán được NIST xem xét để trở thành tiêu chuẩn AES. Serpent được thiết kế theo nguyên lý tương tự với dạng BitSlice của thuật toán DES và cho phép mã hoá mạnh hơn 3DES với tốc độ tương đương với thuật toán DES thông thường. Theo thiết kế, Serpent có thể làm việc tốt với các bộ xử lý 1 bit hoặc lớn hơn, Serpent cũng có thể dễ dàng song song hoá để làm việc với các hệ thống đa chip xử lý đối xứng (SMP) - một cấu trúc rất phổ biến trong các hệ thống máy tính lớn, các hệ thống VPU hoặc các hệ thống chip đa lõi. Serpent hiện ít được sử dụng mặc dù thuật toán này còn mạnh hơn một chút so với thuật toán được chọn làm AES. Một dự án tiềm năng đang được triển khai để tối ưu hoá của Serpent trên các hệ thống VPU hoặc SMP và có thể sánh ngang tốc độ với sự hiệu quả của việc triển khai AES trên cùng một nền tảng hệ thống. Không giống như DES, 3DES, Serpent được

thiết kế đặc biệt hiệu quả cho việc tính toán trên các bộ xử lý có kích thước bất kỳ đồng thời có thể làm việc tốt trên các hệ thống VPU và các hệ thống đa xử lý.

TwoFish

TwoFish là thuật toán mã hoá khối 128 bit cho phép chấp nhận các khoá mã có độ dài lên đến 256 bit. TwoFish nằm trong nhóm thuật toán sử dụng mạng Feistel. TwoFish được thiết kế bởi Bruce Schneier và cũng là một trong 5 thuật toán được NIST xem xét sử dụng thay cho DES. Do được thiết kế với khối dữ liệu lớn hơn nên trong chế độ ECB, thuật toán này cũng an toàn hơn so với DES và 3DES. Kích thước khối thông tin lớn cũng cho phép TwoFish hoạt động ở chế độ ECB song song nhiều năm hơn so với DES và 3DES. Thiết kế dựa trên hệ thống Feistel cho phép TwoFish có thể chạy song song khi giải mã ở mọi chế độ.

Rijndael - chuẩn mã hoá Quốc gia Hoa kỳ (AES)

Rijndael là thuật toán mã hoá cho phép chấp nhận các khối thông tin và khoá mã có kích thước khác nhau từ 128, 192 đến 256 bit. Thuật toán Rijndael được phát triển bởi Joan Daemen và Vicent Rijnmen và là thuật toán giành chiến thắng chung cuộc trong cuộc đua trở thành tiêu chuẩn mã hoá Quốc gia Hoa kỳ vào năm 1998. Thuật toán Rijndael bao gồm 4 bước trong một vòng: thay thế byte, xoay vòng word, tráo đổi word, và bổ sung khoá mã vòng. Thuật toán Rijndael được thiết kế để tính toán hiệu quả song song trên các bộ vị xử lý 64-bit RISC theo cách mỗi phép toán trong 4 phép toán ở mỗi vòng đều thao tác trên các byte, các word và các thao tác này đều có thể thực hiện song song. Tuy nhiên thuật toán Rijndael được thiết kế để trở thành tiêu chuẩn AES nên cũng có nghĩa nó được thiết kế để phù hợp với các bộ vi xử lý trong tương lai. Do đó thuật toán này không chú trọng vào việc tối ưu hoá bộ nhớ và đòi hỏi tài nguyên tính toán rất lớn nên việc triển khai ứng dụng trên các thẻ thông minh cũng như các thiết bị phần cứng hiện tại rất khó khăn.

RC6

RC6 là thuật toán mã hoá dạng block cipher cho phép chấp nhận các khối dữ liệu và các khoá mã có độ dài bất kỳ. RC6 là một trong năm thuật toán được NIST đưa vào xem xét để trở thành chuẩn mã hoá Quốc gia Hoa kỳ. RC6 là sự phát triển của

thuật toán RC5 - được thiết kế bởi Rivest, Robshaw, Sidney and Yin. RC6 có thể được hiểu một cách đơn giản là bản copy song song của RC5 trên các khối dữ liệu có kích thước lớn gấp đôi và tráo đổi một nửa giá trị các chuỗi sau mỗi vòng. Thiết kế của RC6 không phù hợp với nhiều nền tảng hệ thống khác nhau như các thuật toán Serpent và Rijndael nhưng nó có thể làm việc tốt đối với các bộ vi xử lý 64 bit.

Một phần của tài liệu Mã hoá bảo mật thông tin và ứng dụng trong thương mại điện tử (Trang 39)

Tải bản đầy đủ (PDF)

(94 trang)