Thuật toán DES

Một phần của tài liệu Lý thuyết mật mã và an toàn dữ liệu (Trang 28 - 30)

2. GIỚI THIỆU VỀ MÃ HÓA

3.1.1.Thuật toán DES

1. Với bản rõ cho trước x với độ dài 64 bit, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít của x theo phép hoán vị cố định ban đầu IP. Ta viết:x0= IP(X)= L0R0, trong đó L0 gồm 32 bít đầu và R0 là 32 bít cuối.

2. Sau đó tính toán 16 lần lặp theo một hàm xác định. Ta sẽ tính LiRi, 1≤i≤16 theo quy tắc sau:

Li = Ri-1

Ri = Li-1⊕f(Ri-1,Ki)

Trong đó ⊕ kí hiệu phép hoặc loại trừ của hai xâu bít (cộng theo modulo 2). f là một hàm mà ta sẽ mô tả ở sau, còn K1,K2, . . . ,K16 là các xâu bít độ dài 48 được tính như hàm của khoá K. (trên thực tế mỗi Ki là một phép chọn hoán vị bít trong K). K1, . . ., K16 sẽ tạo thành bảng khoá. Một vòng của phép mã hoá được mô tả trên hình dưới.

3. Áp dụng phép hoán vị ngược IP-1 cho xâu bít R16L16, ta thu được bản mã y. Tức là y=IP-1(R16L16). Hãy chú ý thứ tự đã đảo của L16 và R16.

3.1.2. Mô t mt vòng ca DES

3.1.3. Mô t hàm f

Hàm f có hai biến vào: biến thứ nhất A là xâu bít độ dài 32, biến thứ hai J là một xâu bít độ dài 48. Đầu ra của f là một xâu bít độ dài 32. Các bước sau được thực hiện:

Trang 26 1. Biến thứ nhất A được mở rộng thành một xâu bít độ dài 48 theo một hàm mở rộng cố định E. E(A) gồm 32 bít của A (được hoán vị theo cách cố định) với 16 bít xuất hiện hai lần.

2. Tính E(A) ⊕ J và viết kết quả thành một chuỗi 8 xâu 6 bít = B1B2B3B4B5B6B7B8. 3. Bước tiếp theo dùng 8 bảng S1, S2, ... ,S8 ( được gọi là các hộp S ). Với mỗi Si là một bảng 4×16 cố định có các hàng là các số nguyên từ 0 đến 15. Với xâu bít có độ dài 6 (Kí hiệu Bi = b1b2b3b4b5b6), ta tính Sj(Bj) như sau: Hai bít b1b6 xác định biểu diễn nhị phân của hàng r của Sj ( 0 ≤ r ≤ 3) và bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0 ≤ c ≤ 15 ). Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một xâu bít có độ dài 4. ( Bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 và một xâu bít có độ dài 4, còn đầu ra là một xâu bít có độ dài 4). Bằng cách tương tự tính các Cj = Sj(Bj), 1 ≤ j ≤ 8.

4. Xâu bít C = C1C2... C8 có độ dài 32 được hoán vị theo phép hoán vị cố định P. Xâu kết quả là P(C) được xác định là f(A,J).

Hàm f được mô tả trong hình dưới. Chủ yếu nó gồm một phép thế (sử dụng hộp S), tiếp sau đó là phép hoán vị P. 16 phép lặp của f sẽ tạo nên một hệ mật tích nêu như ở phần trên.

Trang 27

Một phần của tài liệu Lý thuyết mật mã và an toàn dữ liệu (Trang 28 - 30)