Đồ án Bảo mật thông tin - Hệ mã Des

Phương pháp DES mã hóa từ xcó 64 bit với khóa kcó 56 bit thành một từ có y64 bit.

Thuật toán mã hóa bao gồm 3 giai đoạn:

1. Với từ cần mã hóa xcó độ dài 64 bit, tạo ra từ x0(cũng có độ dài 64 bit) bằng cách

hoán vị các bit trong từ xtheo một hoán vị cho trước IP(Initial Permutation)

pdf7 trang | Chia sẻ: luyenbuizn | Lượt xem: 1507 | Lượt tải: 0download
Nội dung tài liệu Đồ án Bảo mật thông tin - Hệ mã Des, để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 II. HỆ MÃ CHUẨN DES (Data Encryption Standard) II.1 Đặc tả DES Phương pháp DES mã hóa từ x có 64 bit với khóa k có 56 bit thành một từ có y 64 bit. Thuật toán mã hóa bao gồm 3 giai đoạn: 1. Với từ cần mã hóa x có độ dài 64 bit, tạo ra từ x0 (cũng có độ dài 64 bit) bằng cách hoán vị các bit trong từ x theo một hoán vị cho trước IP (Initial Permutation). Biểu diễn x0 = IP(x) = L0R0, L0 gồm 32 bit bên trái của x0, R0 gồm 32 bit bên phải của x0 L0 R0 x0 Hình.1 Biểu diễn dãy 64 bit x thành 2 thành phần L và R 2. Xác định các cặp từ 32 bit Li, Ri với 1≤ i ≤ 16theo quy tắc sau: Li = Ri-1 Ri = Li-1⊕ f (Ri-1, Ki) 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). Li-1 Ri-1 f Ki ⊕ Li Ri Hình.2 Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1và khóa Ki 3. Áp dụng hoán vị ngược IP-1 đối với dãy bit R16L16, thu được từ y gồm 64 bit. Như vậy, y = IP-1 (R16L16) ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 Hàm f được sử dụng ở bước 2 là A B1 B2 B3 B4 B5 B6 B7 B8 S1 J E(A) S2 S3 S4 S5 S6 S7 S8 C1 C2 C3 C4 C5 C6 C7 C8 f(A,J) E + P ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 Hàm f có gồm 2 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 2 lần trong E(A). • Thực hiện phép toán XOR cho 2 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:B = B1B2B3B4B5B6B7B8 • Sử dụng 8 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 = b1b2b3b4b5b6, 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 = C1C2C3C4C5C6C7C8. 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) các hàm được sử dụng trong DES. Hoán vị khởi tạo IP sẽ như sau: IP 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Điều này có nghĩa là bit thứ 58 của x là bit đầu tiên của IP(x); bit thứ 50 của x là bit thứ hai của IP(x) v.v. Hoán vị ngược IP-1 sẽ là: IP-1 40 39 38 37 8 7 6 5 48 47 46 45 16 15 14 13 56 55 54 53 24 23 22 21 64 63 62 61 32 31 30 29 ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 36 35 34 33 4 3 2 1 44 43 42 41 12 11 10 9 52 51 50 49 20 19 18 17 60 59 58 57 28 27 26 25 Hàm mở rộng E được đặc tả theo bảng sau: E – bảng chọn bit 32 4 8 12 16 20 24 28 1 5 9 13 17 21 25 29 2 6 10 14 18 22 26 30 3 7 11 15 19 23 27 31 4 8 12 16 20 24 28 32 5 9 13 17 21 25 29 1 Tám S-hộp và hoán vị P sẽ được biểu diễn như sau: S1 14 0 4 15 4 15 1 12 13 7 14 8 1 4 8 2 2 14 13 4 15 2 6 9 11 13 2 1 8 1 11 7 3 10 15 5 10 6 12 11 6 12 9 3 12 11 7 14 5 9 3 10 9 5 10 0 0 3 5 6 7 8 0 13 S2 15 3 0 13 1 13 14 8 8 4 7 10 14 7 11 1 6 15 10 3 11 2 4 15 3 8 13 4 4 14 1 2 9 12 5 11 7 0 8 6 2 1 12 7 13 10 6 12 12 6 9 0 0 9 3 5 5 11 2 14 10 5 15 9 S3 10 13 13 1 0 7 6 10 9 0 4 13 14 9 9 0 6 3 8 6 3 4 15 9 15 6 3 8 5 10 0 7 1 2 11 4 13 8 1 15 12 5 2 14 7 14 12 3 11 12 5 11 4 11 10 5 2 15 14 2 8 1 7 12 S4 ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 7 13 10 3 13 8 6 15 14 11 9 0 3 5 0 6 0 6 12 10 6 15 11 1 9 0 7 13 10 3 13 8 1 4 15 9 2 7 1 4 8 2 3 5 5 12 14 11 11 1 5 12 12 10 2 7 4 14 8 2 15 9 4 14 S5 2 14 4 11 12 11 2 8 4 2 1 12 1 12 11 7 7 4 10 0 10 7 13 14 11 13 7 2 6 1 8 13 8 5 15 6 5 0 9 15 3 15 12 0 15 10 5 9 13 3 6 10 0 9 3 4 14 8 0 5 9 6 14 3 S6 12 10 9 4 1 15 14 3 10 4 15 2 15 2 5 12 9 7 2 9 2 12 8 5 6 9 12 15 8 5 3 10 0 6 7 11 13 1 0 14 3 13 4 1 4 14 10 7 14 0 1 6 7 11 13 0 5 3 11 8 11 8 6 13 S7 4 13 1 6 11 0 4 11 2 11 11 13 14 7 13 8 15 4 12 1 0 9 3 4 8 1 7 10 13 10 14 7 3 14 10 9 12 3 15 5 9 5 6 0 7 12 8 15 5 2 0 14 10 15 5 2 6 8 9 3 1 6 2 12 S8 13 1 7 2 2 15 11 1 8 13 4 14 4 8 1 7 6 10 9 4 15 3 12 10 11 7 14 8 1 4 2 13 10 12 0 15 9 5 6 12 3 6 10 9 14 11 13 0 5 0 15 3 0 14 3 5 12 9 5 6 7 2 8 11 P 16 29 1 5 2 32 19 22 7 12 15 18 8 27 13 11 20 28 23 31 24 3 30 4 21 17 26 10 14 9 6 25 ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 K là xâu có độ dài 64 bit, trong đó có 56 bit dùng làm khóa và 8 bit dùng để kiểm tra sự bằng nhau (để phát hiện lỗi). Các bit ở các vị trí 8, 16, ..., 64 được xác định, sao cho mỗi byte chứa số lẻ các số 1. Vì vậy, từng lỗi có thể được phát hiện trong mỗi 8 bit. Các bit kiểm tra sự bằng nhau là được bỏ qua khi tính lịch khóa. 1. Cho khóa 64 bit K, loại bỏ các bit kiểm tra và hoán vị các bit còn lại của K tương ứng với hoán vị (cố định) PC-1. Ta viết PC-1(K) = C0D0, với C0 bao gồm 28 bit đầu tiên của PC-1(K) và D0 là 28 bit còn lại. 2. Với i nằm trong khoảng từ 1 đến 16, ta tính Ci = LSi(Ci-1) Di = LSi(Di-1) và Ki = PC-2(CiDi), LSi biểu diễn phép chuyển chu trình (cyclic shift) sang trái hoặc của một hoặc của hai vị trí tùy thuộc vào trị của i; đẩy một vị trí nếu i = 1, 2, 9 hoặc 16 và đẩy 2 vị trí trong những trường hợp còn lại. PC-2 là một hoán vị cố định khác. Việc tính lịch khóa được minh họa như hình vẽ sau: Các hoán vị PC-1 và PC-2 được sử dụng trong việc tính lịch khóa là như sau: PC-1 57 49 41 33 25 17 9 K PC-1 C0 D0 C1 D1 PC-2 K1 LS1LS1 LS2 LS2 ... LS16 LS16 C16 D16 PC-2 K16 ĐỒ ÁN BẢO MẬT THÔNG TIN HỆ MÃ DES NGÔ THỊ TUYẾT HÀ – T012825 1 10 19 63 7 14 21 58 2 11 55 62 6 13 50 59 34 7 54 61 5 42 51 60 39 46 53 28 34 43 52 31 38 45 20 26 35 44 23 30 37 12 18 27 36 15 22 29 4 PC-2 14 3 23 16 41 30 44 46 17 28 19 7 50 40 49 42 11 15 12 27 31 51 39 50 24 6 4 20 37 45 56 36 1 21 26 13 47 33 34 29 5 10 8 2 55 48 53 32 Bây giờ ta sẽ hiển thị kết quả việc tính lịch khóa. Như đã nhận xét ở trên, mỗi vòng sử dụng khóa 48 bit tương ứng với 48 bit trong K. Các thành phần trong các bảng sau sẽ chỉ ra các bit trong K được sử dụng trong các vòng khác nhau.

Các file đính kèm theo tài liệu này:

  • pdfdo_an_bao_mat_thong_tin_2.pdf
Tài liệu liên quan