Phương phỏp DES (Data Encryption Standard)

Một phần của tài liệu Tìm hiểu và xây dựng chương trình mô phỏng mã hoá rijndael (Trang 27 - 29)

1. 2 Hệ thống mó húa khúa cụng cộng( mó húa bất đối xứng)

1.3.3.8Phương phỏp DES (Data Encryption Standard)

Khoảng những năm 1970, tiến sĩ Horst Feistel đó đặt nền múng đầu tiờn cho chuẩn mó húa dữ liệu DES với phương phỏp mó húa Feistel Cipher. Vào năm 1976 Cơ quan Bảo mật Quốc gia Hoa Kỳ (NSA) đó cụng nhận DES dựa trờn phương phỏp Feistel là chuẩn mó húa dữ liệu [25]. Kớch thước khúa của DES ban đầu là 128 bit nhưng tại bản cụng bố FIPS kớch thước khúa được rỳt xuống cũn 56 bit.

Trong phương phỏp DES, kớch thước khối là 64 bit. DES thực hiện mó húa dữ liệu qua 16 vũng lặp mó húa, mỗi vũng sử dụng một khúa chu kỳ 48 bit được tạo ra từ khúa ban đầu cú độ dài 56 bit. DES sử dụng 8 bảng hằng số S-box để thao tỏc. Quỏ trỡnh mó húa của DES cú thể được túm tắt như sau: Biểu diễn thụng điệp nguồn x∈ P bằng dóy 64bit. Khúa k cú 56 bit. Thực hiện mó húa theo ba giai đoạn:

1. Tạo dóy 64 bit x0 bằng cỏch hoỏn vị x theo hoỏn vị IP (Initial Permutation). Biểu diễn x0 = IP(x) = L0 R0 , L0 gồm 32 bit bờn trỏi của x0, R0 gồm 32 bit bờn phải của x0.

x0

Hỡnh 3. Biểu diễn dóy 64 bit x thành 2 thành phần L và R

2. Thực hiện 16 vũng lặp từ 64 bit thu được và 56 bit của khoỏ k (chỉ sử dụng 48 bit của khoỏ k trong mỗi vũng lặp). 64 bit kết quả thu được qua mỗi vũng lặp sẽ là đầu vào cho vũng lặp sau. Cỏc cặp từ 32 bit Li, Ri (với 1 ≤ i ≤ 16 ) được xỏc định theo quy tắc sau:

Li = Ri-1

với ⊗ biểu diễn phộp toỏn XOR trờn hai dóy bit, K1, K2, ..., K16 là cỏc dóy 48 bit phỏt sinh từ khúa K cho trước (Trờn thực tế, mỗi khúa Ki được phỏt sinh bằng cỏch hoỏn vị cỏc bit trong khúa K cho trước).

3. Áp dụng hoỏn vị ngược IP−1 đối với dóy bit R16 L16 , thu được từ y gồm 64 bit. Như vậy, y = IP−1 (R16 L16 ) .

Hàm f được sử dụng ở bước 2 là hàm gồm cú hai tham số: Tham số thứ nhất A là một dóy 32 bit, tham số thứ hai J là một dóy 48 bit. Kết quả của hàm f là một dóy 32 bit. Cỏc bước xử lý của hàm f (A, J ) như sau:

Tham số thứ nhất A (32 bit) được mở rộng thành dóy 48 bit bằng hàm mở rộng E. Kết quả của hàm E(A) là một dóy 48 bit được phỏt sinh từ A bằng cỏch hoỏn vị theo một thứ tự nhất định 32 bit của A, trong đú cú 16 bit của A được lặp lại hai lần trong E(A) .

Hỡnh 4. Quy trỡnh phỏt sinh dóy Li Ri từ dóy Li-1 Ri-1 và khúa Ki

Thực hiện phộp toỏn XOR cho hai dóy 48 bit E(A) và J, ta thu được một dóy 48 bit B. Biểu diễn B thành từng nhúm 6 bit như sau:

Sử dụng tỏm ma trận S1, S2 ,..., S8 , mỗi ma trận Si cú kớch thước 4ì16 và mỗi dũng của ma trận nhận đủ 16 giỏ trị từ 0 đến 15. Xột dóy gồm 6 bit Bj = b1 b2 b3 b4 b5 b6 , Sj(Bj) được xỏc định bằng giỏ trị của phần tử tại dũng r cột c của Sj, trong đú, chỉ số dũng r cú biểu diễn nhị phõn là b1b6 , chỉ số cột c cú biểu diễn nhị phõn là b2b3b4b5 . Bằng cỏch này, ta xỏc định được cỏc dóy 4 bit Cj = Sj(Bj) , 1 ≤ j ≤ 8 .

Tập hợp cỏc dóy 4 bit Cj lại, ta cú được dóy 32 bit C = C 1C 2C 3C 4C 5C 6C 7C 8 . Dóy 32 bit thu được bằng cỏch hoỏn vị C theo một quy luật P nhất định chớnh là kết quả của hàm F(A, J ) .

Quỏ trỡnh giải mó chớnh là thực hiện theo thứ tự đảo ngược cỏc thao tỏc của quỏ trỡnh mó húa.

1.3.3.8.2 Nhận xột

Do tốc độ tớnh toỏn của mỏy tớnh ngày càng tăng cao và DES đó được sự quan tõm chỳ ý của cỏc nhà khoa học lẫn những người phỏ mó (cryptanalyst) nờn DES nhanh chúng trở nờn khụng an toàn. Năm 1997, một dự ỏn đó tiến hành bẻ khúa DES chưa đến 3 ngày với chi phớ thấp hơn 250.000 dollars. Và vào năm 1999, một mạng mỏy tớnh gồm 100.000 mỏy cú thể giải mó một thư tớn mó húa DES chưa đầy 24 giờ. Trong quỏ trỡnh tỡm kiếm cỏc thuật toỏn mới an toàn hơn DES, Tripple DES ra đời như một biến thể của DES. Tripple DES thực hiện ba lần thuật toỏn DES với 3 khoỏ khỏc nhau và với trỡnh tự khỏc nhau. Trỡnh tự thực hiện phổ biến là EDE (Encrypt - Decrypt - Encrypt), thực hiện xen kẽ mó húa với giải mó (lưu ý là khúa trong từng giai đoạn thực hiện khỏc nhau).

Một phần của tài liệu Tìm hiểu và xây dựng chương trình mô phỏng mã hoá rijndael (Trang 27 - 29)