1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài giảng An ninh mạng máy tính: Chương 5

33 368 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 33
Dung lượng 1,82 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Bài giảng An ninh mạng máy tính Chương 5 Mã đối xứng hiện đại Mã khối với các nội dung chính như: Mã khối an toàn lý tưởng, mô hình mã Feistel, các vòng của TinyDES,... Bài giảng An ninh mạng máy tính Chương 5 Mã đối xứng hiện đại Mã khối với các nội dung chính như: Mã khối an toàn lý tưởng, mô hình mã Feistel, các vòng của TinyDES,...

Trang 2

• 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

Trang 3

rõ và bản mã.

Trang 4

Ví dụ:

Trang 5

Lúc này khóa là toàn bộ bảng trên Người gởi cũng như người nhận phải biết toàn bộ bảng trên để mã hóa và giải mã Đối với người phá mã, nếu biết một số cặp bản rõ - bản mã thì cũng chỉ biết được một phần của bảng tra cứu trên Do đó không suy ra được bản rõ cho các bản mã còn lại Hay nói cách khác, muốn phá mã thì phải biết được tất cả các cặp bản rõ và bản mã Nếu chọn kích thước của khối là 64 bít thì số dòng của bảng khóa là

264, một con số rất lớn (và có khoảng 264! bảng khóa như vậy) Lúc này việc nắm tất cả các cặp bản rõ-bản mã của bảng khóa

là điều không thể đối với người phá mã Trường hợp này ta gọi

là mã khối an toàn lý tưởng.

Trang 6

Tuy nhiên, khi kích thước khối lớn thì số dòng của bảng khóa cũng lớn và gây trở ngại cho việc lưu trữ cũng như trao đổi khóa giữa người gởi và người nhận.

Bảng khóa có 264 dòng mỗi dòng 64 bít do đó kích thước khóa sẽ là 64x 264= 270 ≈ 1021 bít.

Do đó mã khối an toàn lý tưởng là không khả thi trong thực tế.

Trang 7

Mạng SPN

Trong thực tế, người ta chỉ tìm cách để chỉ cần dùng một khóa cókích thước ngắn để giả lập một bảng tra cứu có độ an toàn xấp xỉ

độ an toàn của mã khối lý tưởng

Cách thực hiện là kết hợp hai hay nhiều mã hóa đơn giản lại vớinhau để tạo thành một mã hóa tổng (product cipher), trong đó mãhóa tổng an toàn hơn rất nhiều so với các mã hóa thành phần

Các mã hóa đơn giản thường là phép thay thế (substitution, S-box)

và hoán vị (Permutation, P-box)

Do đó người ta hay gọi mã hóa tổng là Substitution-PermutationNetwork (mạng SPN) Hình dưới minh họa một mạng SP

Trang 9

Việc kết hợp các S-box và P-box tạo ra hai tính chất quan trọng của

mã hóa là tính khuếch tán (diffusion) và tính gây lẫn (confusion) Haitính chất này do Claude Shannon giới thiệu vào năm 1946, và là cơ sởcủa tất cả các mã khối hiện nay

Tính khuếch tán: một bít của bản rõ tác động đến tất cả các bít củabản mã, hay nói cách khác, một bít của bản mã chịu tác động của tất

cả các bít trong bản rõ Việc làm như vậy nhằm làm giảm tối đa mốiliên quan giữa bản rõ và bản mã, ngăn chặn việc suy ra lại khóa Tínhchất này có được dựa vào sử dụng P-box kết hợp S-box

Tính gây lẫn: làm phức tạp hóa mối liên quan giữa bản mã và khóa

Do đó cũng ngăn chặn việc suy ra lại khóa Tính chất này có đượcdựa vào sử dụng S-box

Trang 10

Mô hình mã Feistel

Mô hình mã Feistel là một dạng tiếp cận khác

so với mạng SP Mô hình do Horst Feistel đề xuất, cũng là sự kết hợp các phép thay thế và hoán vị Trong hệ mã Feistel, bản rõ sẽ được biến đổi qua một số vòng để cho ra bản mã cuối cùng:

Trang 12

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)

Trang 14

Để 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)

Trang 15

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.

Trang 16

• 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àyCục tiêu chuẩn quốc gia Hoa Kỳ kêu gọi các công ty Mỹ thiết lậpmộ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 đổicủa cơ quan an ninh Hoa Kỳ, mã hóa Lucifer đã trở thành mã tiêuchuẩ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

Trang 17

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.

Trang 18

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.

Trang 19

Các vòng của TinyDES Hình sau minh họa một vòng Feistel của TinyDES

Trang 20

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à: b 0 b 1 b 2 b 3

Hàm Expand hoán vị và mở rộng 4 bít thành 6 bít cho ra kết quả:

b 2 b 3 b 1 b 2 b 1 b 0 Ví dụ: R 0 = 0110 Expand(R0) = 101110

 S-box: Gọi b 0 b 1 b 2 b 3 b 4 b 5 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:

Trang 22

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.

Trang 23

Ví dụ: X = 101010 Tra bảng ta có S-box(X) = 0110

Trang 24

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

Trang 25

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

Trang 26

Ví dụ vềTinyDES

Ví dụ: mã hóa bản rõ P = 0101.1100 (5C) với khóa K = 1001.1010 TinyDES

Trang 29

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)

Trang 30

Trong trường hợp này người phá mã biết P và C, tuy nhiên khôngbiết K Giả sử P = 0101.1100 và C = 1100.0001 Người phá mã tiếnhành tính K như sau:

Trang 31

Tuy nhiên với mã TinyDES ba vòng, việc phá mã không còn đơn giảnnhư 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ềntì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

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

Ngày đăng: 12/11/2017, 17:08

TỪ KHÓA LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w