Quy trình mã hóa và giải mã của thuật toán Twofish tương tự như nhau. Tuy nhiên, quy trình giải mã đòi hỏi áp dụng các subkey theo thứ tựđảo ngược và một số thay đổi nhỏ trong cấu trúc mã hóa (Xem Hình 5.18)
(a) (b)
Hình 5.18. So sánh quy trình mã hóa (a) và giải mã (b)
5.5 Kết luận
Với bốn thuật toán trên quy trình mã hóa được thực hiện qua các giai đoạn chính: khởi tạo, phân bố khóa và mã hóa. Tương tựđối với giải mã cũng thực hiện qua các giai đoạn chính: khởi tạo, phân bố khóa và giải mã.
Quy trình khởi tạo và phân bố khóa được thực hiện dựa trên khóa người sử dụng cung cấp để phát sinh bộ subkey phục vụ cho việc mã hóa và giải mã.
Quy trình mã hóa được thực hiện đối với:
Hàm F <<< 1 >>> 1 Hàm F <<< 1 >>> 1
¾ MARS gồm ba giai đoạn: trộn tới (Forward mixing), Phần lõi chính (Cryptographic core) và trộn lùi (Backward mixing).
o Giai đoạn trộn tới gồm phép toán cộng khóa và 8 chu kỳ trộn tới không dùng khóa.
o Giai đoạn cốt lõi chính gồm 8 chu kỳ biến đổi tới có khóa và 8 chu kỳ biến đổi lùi có khóa.
o Giai đoạn trộn lùi gồm 8 chu kỳ trộn lùi không dùng khóa và phép toán trừ khóa. ¾ RC6 gồm: o Phép cộng khóa đầu. o 20 chu kỳ. o Phép cộng khóa cuối. ¾ SERPENT gồm:
o Phép hoán vịđầu IP (initial permutation).
o 32 chu kỳ.
o Phép hoán vị cuối FP (final permutation).
¾ TWOFISH gồm:
o Input whitening.
o 16 chu kỳ.
o Output whitening.
Tương quan giữa quy trình mã hóa và giải mã:
o Trong phương pháp MARS và RC6, hai quy trình này thực hiện tương tự nhau (theo thứ tựđảo ngược)
o Trong SERPENT, hai quy trình này khác nhau.
o Trong phương pháp TWOFISH, hai quy trình này gần như giống hệt nhau.