Mô hình mã Feistel

Một phần của tài liệu bài giảng an toàn bảo mật thông tin (Trang 41)

Mô hình mã Feistel là một dạng tiếp cận khác so với mạng SP. Mô hình do Horst Feistel đề xuất, cũng là sự kết hợp các phép thay thế và hoán vị. Trong hệ mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã cuối cùng:

38

K1 K2 K3 Kn-1

PC1C2Cn

Trong đó bản rõ P và các bản mã Ci được chia thành nửa trái và nửa phải:

P =(L0, R0) K1 Ci =(Li, Ri) i = 1, 2, …n

Quy tắc biến đổi các nửa trái phải này qua các vòng được thực hiện như sau:

Li = Ri-1

Ri = Li-1 F(Ri-1, Ki)

Ki một khóa con cho vòng thứ i. Khóa con này được sinh ra từ khóaK ban đầu theo một thuật toán sinh khóa con (key schedule): K K1 K2 Kn

F là một hàm mã hóa dùng chung cho tất cả các vòng. Hàm F đóng vai trò như là phép thay thế còn việc hoán đổi các nửa trái phải có vai trò hoán vị. Bản mã C được tính từ kết xuất của vòng cuối cùng:

C = Cn =(Ln, Rn)

Sơ đồ tính toán của hệ mã Feistel được thể hiện trong hình bên dưới: plaintext L0 R0 F L1 R1 … … Ln-1 Rn-1

K K1 … Kn Ln Rn ciphertext

Hình 3-3.MôhìnhmãkhốiFeistel

Để giải mã quá trình được thực hiện qua các vòng theo thứ tự ngược lại:

C Ln, Rn

Ri-1= Li (theo mã hóa Li = Ri-1)

Li-1 = Ri F(Ri-1, Ki) (theo mã hóa Ri = Li-1 F(Ri-1, Ki))

39 Và cuối cùng bản rõ là P =(L0, R0).

Hệ mã Feistel có điểm quan trọng là việc chia các bản mã thành hai nửa trái phải giúp cho hàm F không cần khả nghịch (không cần có F-1). Mã hóa và giải mã đều dùng chiều thuận của hàm F. Hàm F và thuật toán sinh khóa con càng phức tạp thì càng khó phá mã.

Ứng với các hàm F và thuật toán sinh khóa con khác nhau thì ta sẽ có các phương pháp mã hóa khác nhau, phần tiếp theo sẽ trình bày mã hóa DES, là một phương pháp mã hóa dựa trên nguyên tắc của hệ mã Feistel.

Một phần của tài liệu bài giảng an toàn bảo mật thông tin (Trang 41)

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

(190 trang)
w