Bài giảng An ninh mạng - Mã đối xứng hiện đại: Mã khối

• Mã khối (Block Cipher)
• Mã khối an toàn lý tưởng
Phép toán XOR có một hạn chế là chỉ cần biết một cặp khối
bản rõ và bản mã, người ta có thể dễ dàng suy ra được
khóa và dùng khóa đó để giải các khối bản mã khác
(known- plaintext attack).
Xét lại ví dụ đầu chương: Bản rõ: 1111 0000 0011
Khóa: 0101 0101 0101
Bản mã: 1010 0101 0110
Nếu biết bản mã c
0 = 1010
Có bản rõ tương ứng là p0 = 1111
Thì có thể dễ dàng suy ra khóa là k = 0101.
Nói một cách tổng quát, nếu giữa bản rõ P và bản mã C có mối
liên hệ toán học thì việc biết một số cặp bản rõ-bản mã giúp ta
có thể tính được khóa K. Do đó để chống phá mã trong trường
hợp known-plaintext hay choosen-plaintext, chỉ có thể là làm
cho P và C không có mối liên hệ toán học. Điều này chỉ có thể
thực hiện được nếu ta lập một bản tra cứu ngẫu nhiên giữa bản
rõ và bản mã.
pdf 33 trang hoanghoa 07/11/2022 6240
Bạn đang xem 20 trang mẫu của tài liệu "Bài giảng An ninh mạng - Mã đối xứng hiện đại: Mã khối", để tải tài liệu gốc về máy hãy click vào nút Download ở trên.

File đính kèm:

  • pdfbai_giang_an_ninh_mang_ma_doi_xung_hien_dai_ma_khoi.pdf

Nội dung text: Bài giảng An ninh mạng - Mã đối xứng hiện đại: Mã khối

  1. 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)
  2. Để giải mã quá trình được thực hiện qua các vòng theo thứ tự ngược lại: Và cuối cùng bản rõ là P = (L0, R0).
  3. 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.
  4. • Mã TinyDES Vào năm 1973, khi lĩnh vực máy tính ngày càng phát triển, nhu cầu ứng dụng bảo mật vào các mục đích dân sự được đặt ra. Lúc này Cục tiêu chuẩn quốc gia Hoa Kỳ kêu gọi các công ty Mỹ thiết lập một chuẩn mã hóa quốc gia. Mã hóa Lucifer của công ty IBM được chọn và sau một vài sửa đổi của cơ quan an ninh Hoa Kỳ, mã hóa Lucifer đã trở thành mã tiêu chuẩn DES (Data Encryption Standard). Qua quá trình sử dụng mã DES đã chứng tỏ độ an toàn cao và được sử dụng rộng rãi.
  5. Tương tự như mã dòng A5/1 và RC4, chúng ta cũng sẽ xem xét một mô hình thu nhỏ của mã DES là TinyDES. Mã TinyDES có các tính chất sau: Là mã thuộc hệ mã Feistel gồm 3 vòng  Kích thước của khối là 8 bít Kích thước khóa là 8 bít Mỗi vòng của TinyDES dùng khóa con có kích thước 6 bít được trích ra từ khóa chính.
  6. Sơ đồ mã TinyDES trên gồm hai phần, phần thứ nhất là các vòng Feistel, phần thứ hai là thuật toán sinh khóa con. Chúng ta sẽ lần lượt đi vào chi tiết của từng phần.
  7. Các vòng của TinyDES Hình sau minh họa một vòng Feistel của TinyDES
  8. Trong đó hàm Expand vừa mở rộng vừa hoán vị Ri-1 từ 4 bít lên 6 bít. Hàm S-boxes biến đổi một số 6 bít đầu vào thành một số 4 bít đầu ra. Hàm P-box là một hoán vị 4 bít. Mô tả của các hàm trên là như sau:  Expand: gọi 4 bít của Ri-1 là: b0b1b2b3. Hàm Expand hoán vị và mở rộng 4 bít thành 6 bít cho ra kết quả: b2b3b1b2b1b0. Ví dụ: R0 = 0110 Expand(R0) = 101110  S-box: Gọi b0b1b2b3b4b5 là 6 bít đầu vào của S-box, ứng với mỗi trường hợp của 6 bít đầu vào sẽ có 4 bít đầu ra. Việc tính các bít đầu ra dựa trên bảng sau:
  9. Hai bít b0b1 xác định thứ tự hang.  Bốn bít b1b2b3b4 xác định thứ tự cột của bảng. Từ đó dựa vào bảng tính được 4 bít đầu ra. Để cho đơn giản, ta có thể viết lại bảng trên dưới dạng số thập lục phân.
  10. Ví dụ: X = 101010. Tra bảng ta có S-box(X) = 0110.
  11. P-box: Thực hiện hoán vị 4 bít đầu b0b1b2b3 cho ra kết quả b2b0b3b1. Thuật toán sinh khóa con của TinyDES Khóa K 8 bít ban đầu được chia thành 2 nửa trái phải KL0 và KR0 , mỗi nửa có kích thước 4 bít. Tại vòng thứ nhất KL0 và KR0 được dịch vòng trái 1 bít để có được KL1 và KR1. Tại vòng thứ hai KL1 và KR1 được dịch vòng trái 2 bít để có được KL2 và KR2. Tại vòng tại vòng thứ 3 KL2 và KR2 được dịch vòng trái 1 bít để có KL3 và KR3.
  12. Cuối cùng khóa Ki của mỗi vòng Được tạo ra bằng cách hoán vị và nén (compress) 8 bít của: KLi và KRi (k0k1k2k3k4k5k6k7) Thành kết quả gồm 6 bít : k5k1k3k2k7k0.
  13. Ví dụ vềTinyDES Ví dụ: mã hóa bản rõ P = 0101.1100 (5C) với khóa K = 1001.1010 TinyDES
  14. Khả năng chống phá mã known-plaintext của TinyDES : Xét trường hợp mã TinyDES chỉ có 1 vòng, tức P = (L0, R0) và C = (L1, R1).
  15. Trong trường hợp này người phá mã biết P và C, tuy nhiên không biết K. Giả sử P = 0101.1100 và C = 1100.0001. Người phá mã tiến hành tính K như sau: Từ R0 tính X =001011. Từ L0 và R1 tính Z = 0100, và từ Z tính Y = 1000. Tra cứu bảng S-box với đầu ra là 1000, ta xác định được các đầu vào X K1 có thể xảy ra là: {100101, 100111, 001110, 011111} Như vậy khóa K1 là một trong các giá trị {101110, 101100, 000101, 010100} Thử tiếp với 1 vài cặp bản rõ-bản mã khác ta sẽ tìm được K1 = 101110 và từ đó tính được K = 1001.1010
  16. Tuy nhiên với mã TinyDES ba vòng, việc phá mã không còn đơn giản như vậy, người phá mã chỉ biết được input của vòng đầu là P và output của vòng cuối là C. Giá trị trung gian L1R1, L2R2 bị ẩn giấu nên không thể giới hạn miền tìm kiếm của các khóa K1, K2, K3 theo phương pháp trên. Dưới tác động của S-box, việc thay đổi 1 bít trong bản rõ hoặc khóa K sẽ ảnh hưởng đến nhiều bít khác nhau trong các giá trị trung gian L1R1, L2R2 (trong phần mã DES ta sẽ gọi là hiệu ứng lan truyền), nên khó phân tích mối liên quan giữa bản rõ, bản mã và khóa. Việc phá mã còn khó khăn hơn nữa trong trường hợp mã DES gồm 16 vòng và kích thước khối là 64 bít.