Cấu trúc mã Feistel

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 26 - 28)

Phần lớn các hệ mã khối trên thế giới hiện nay là dƣ̣a trên cấu trúc mã hoá-giải mã Feistel có các đặc tính cơ bản sau:

- Độ dài của mỗi khối rõ bằng độ dài của mỗi khối mã, và là một số chẵn m = 2.L. - Bản rõ đƣợc chia thành các khối P = (x0, x1) có độ dài 2. L, và x0 = x1=L. - Khoá k là một tập khoá con: k1, k2 , .., kn.

- Mỗi ki đƣợc tƣơng ƣ́ng với một phép biến đổi Fi trên khối cỡ L. - Bản rõ P đƣợc mã hoá theo n-bƣớc nhƣ sau:

Bản rõ:

Vòng 1: (x0, x1)  (x1, x2) Vòng 2: (x1, x2)  (x2, x3) ---

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Vòng i: (xi-1, xi)  (xi, xi+1) --- Vòng n: (xn-1, xn)  (xn, xn+1) Bản mã là:

trong đó xi+1 = xi-1 Fi(xi)

Với cấu trúc mã hoá trên đây , quá trình giải mã sẽ rất đơn giản : Giƣ̃ nguyên các thao tác nhƣ quá trình mã hoá , chỉ cần thay đổi thứ tự sử dụng khoá và các hàm vòng tƣơng ứng: kn, kn-1, .., k1; Fn, Fn-1, .., F1.

Nhận xét: a) Ƣu điểm:

- Cấu trúc mã Feistel trên đây rất thuận tiện cho mã hoá - giải mã đảm bảo tốc độ nhanh và tiện lợi cho việc cƣ́ng hoá các chƣơng trình mã hoá - giải mã khối.

- Các hàm vòng Fi có thể có cấu trúc hoàn toàn giống nhau, tƣ́c là Fi = F, miễn sao chúng là hàm có tính chất mật mã tốt , do đó sẽ thuận tiện cho thao tác mã hoá - giải mã.

b) Nhƣợc điểm:

Qua mô hình cấu trúc mã hoá giải mã Feistel trên có thể thấy ngay các dạ ng khoá coi là yếu nhƣ sau (với giả thiết Fi F):

- Khoá yếu là các khoá có dạng:

kn = k1; kn-1 = k2; kn-2 = k3; --- Tƣ́c là D (.) = E(.), hay là E2

= I. Nhƣ vậy thám mã chỉ cần mã hoá chính bản mã thu đƣợc là sẽ có đƣợc bản rõ cần tìm.

- Cặp khoá nƣ̉a yếu là các cặp khoá có dạng:

kn(A) = k1(B); kn-1(A) = k2(B); kn-2(A) = k3(B); ---

Điều này có nghĩa là thám mã có thể dùng thao tá c mã hoá của ngƣời B để giải

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

mã các bản mã của ngƣời A và ngƣợc lại. Tƣ́c là ta có: EA = DB, và EB = DA. Tất nhiên các dạng khoá trên đây là không đƣợc phép sƣ̉ dụng trong các mô hình mã khối tƣơng ứng.

- Trong cấu trúc Feistel trên mỗi phép lặp chỉ một nƣ̉a khối văn bản xƣ̉ lý đƣợc thay đổi, điều đó dẫn đến sƣ̣ cần thiết phải tăng số lƣợng lặp để đạt đƣợc độ bền vƣ̃ng bảo vệ theo yêu cầu.

- Không tồn tại các tiêu chuẩn rõ ràng nào để chọn hàm F , tuy nhiên thƣờng hàm đó là dãy các thay thế phi tuyến phụ thuộc vào khoá , trộn lẫn các hoán vị và chuyển dịch.

Một phần của tài liệu thiết kế hệ thống mã khối bằng công nghệ fpga (Trang 26 - 28)