Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng dùng giao thức liên mạng máy tính IP đảm bảo toán học cho các hệ mật nghiên cứu xây dựng thuật toán mã khối an toàn hiệu quả
Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 181 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
181
Dung lượng
3,63 MB
Nội dung
Chơng trình KC-01: Nghiêncứu khoa học phát triển công nghệ thôngtinvà truyền thôngĐề tài KC-01-01: NghiêncứumộtsốvấnđềbảomậtvàantoànthôngtinchocácmạngdùnggiaothứcliênmạngmáytínhIPBáo cáo kết quảnghiêncứuĐảmbảotoánhọcchocáchệmật Quyển 3C: Nghiêncứuxâydựngthuậttoánmãkhốiantoànhiệuquả Hà NộI-2004 Báo cáo kết quảnghiêncứuĐảmbảotoánhọcchocáchệmật Quyển 3C: Nghiêncứuxâydựngthuậttoánmãkhốiantoànhiệuquả Chủ trì nhóm nghiêncứu T.S Trần Văn Trờng Mục lục Số trang chơng 1: Mở đầu về mãkhối 1 I. Giới thiệu chung 1 1. Hệmãkhối khoá bí mật 1 2. Độ antoàn của cáchệmãkhối 3 3. Nguyên lý thiết kế mãkhối 9 4. Cácmãkhối lặp 10 II. Các cấu trúc mãkhối cơ bản 11 1. Cấu trúc mã Feistel 11 2. Cấu trúc Matsui 13 3. Cấu trúc cộng-nhân 15 4. Giới thiệu mộtsố loại hình mãkhối 15 chơng 2: Thám mãkhối 19 I. Thám mã vi sai đối với DES vàcáchệmãkhối lặp DES-like 19 1. Mô hình hệ DES 19 2. Thám mã vi sai đối với cácmãkhối lặp 19 3. Sơ bộ về tấn công vi sai trên DES 25 II. Thám mã tuyến tính đối với hệ DES 30 1. Nguyên lý chung của phơng pháp thám mã tuyến tính 30 2. Xấp xỉ tuyến tínhcác hộp nén 33 3. Xấp xỉ tuyến tínhhệmã DES 35 4. Tấn công bản rõ đã biết đối với DES 39 III. Thám mã phi tuyến 40 1. Thiết lập các quan hệ bậc hai của S-hộp 41 2. á p dụng vào thám mã phi tuyến 42 3. Sử dụng xấp xỉ tuyến tính nhiều lần 43 4. á p dụng tổ hợp xấp xỉ nhiều lần và xấp xỉ phi tuyến để tấn công DES 44 5. Thuậttoán cải tiến để tấn công DES 16-vòng 45 6. Thực hành tấn công phi tuyến với DES tìm đủ 56 bít khoá 46 IV. Tấn công vi sai bậc cao 52 1. Khái niệm 52 2. Tấn công sử dụng vi sai bậc cao 53 -iii- V. Tấn công nội suy 56 VI. Tấn công khoá quan hệ 60 VII. Các đặc trng antoàn cơ bản của hệmãkhối 66 chơng 3: khảo sát hệmãkhốiantoàn theo các đặc trng 68 độ đo giải tích I. Hộp thế trong mãkhối 69 1. Mộtsố đô đo phi tuyến của hộp thế 69 2. Khảo sát mộtsố lớp hàm cụ thể 73 II. Hàm vòng trong cácmãkhối lặp 78 1. Các độ đo antoàn của hàm vòng phụ thuộc khoá 78 2. Mộtsố dạng hàm vòng an toàn-chứng minh đợc 83 III. Độ antoànthực tế của mã Feistel 88 1. Độ antoànthực tế của cấu trúc Feistel (cấu trúc ngoài cùng) 88 2. Một kiểu thiết kế hàm vòng 2-SPN (cấu trúc giữa) 90 IV. Lợc đồ khoá, các phép biến đổi đầu vào đầu ra 91 của hệmãkhối 1. Phân loại lợc đồ khoá của cáchệmãkhối 91 2. Mộtsố lợc đồ khoá mạnh 94 3. Việc sử dụng hoán vị trong các hàm vòng, các phép 95 biến đổi đầu vào đầu ra của mộthệmãkhối chơng 4: khảo sát mãkhối theo nhóm sinh của các 97 hàm mã hoá I. Khái niệm cơ bản 97 1. Mãkhối 97 2. Nhóm sinh của các hàm mã hoá 98 II. Mộtsốtính chất cơ bản của G 98 1. Nhóm con bất động trên một tập 98 2. Tính phát tán của G 98 3. Tính nguyên thuỷ của G 98 III. Quan hệ giữa cáctính chất cơ bản của G với tính 101 antoàn của hệmật 1. Tính phát tán 101 2. Tính yếu của cácmãkhối có G là không nguyên thuỷ 102 IV. Mộtsố điều kiện đủ để nhóm các phép thế có tính 103 phát tán và nguyên thuỷ -iii- V. Mộtsố phân tích thêm về tính t-phát tán 105 1. Khái niệm t-phát tán mạnh 105 2. Mộtsốtính chất 107 chơng 5: khảo sát các đặc trng của mãkhối 112 theo quan điểm xích markov I. Mộtsố cơ sởtoánhọc 112 1. Xích Markov hữu hạn 112 2. Đồ thị ngẫu nhiên 115 II. Mậtmã Markov và thám lợng sai 116 1. Mậtmã Markov 116 2. Thám lợng sai 121 III. Thám tuyến tính 132 1. Xích để thám tuyến tính 134 2. Tính ergodic đối với các hàm vòng ngẫu nhiên 135 IV. Mậtmã Markov vàcác nhóm luân phiên 136 1. Các điều kiện lý thuyết nhóm cho hàm một vòng 136 2. ứng dụngcho DES 137 3. ứng dụngcho IDEA 137 V. Kết luận 138 chơng 6: xâydựngthuậttoánmãkhối MK_KC-01-01 140 I. Phần ngẫu nhiên hoá dữ liệu 140 1. Mô hình mã, giải mã 140 2. Các tham số cụ thể 143 II. Phần lợc đồ khoá 144 III. Cácthôngsốantoàn lý thuyết vàthực nghiệm 145 Phụ lục A: Listing chơng trình thám mã DES-8 vòng 147 Phụ lục B: Listing chơng trình thuậttoánmãkhối 165 MK_KC-01-01 Tài liệu tham khảo 176 -iii- Chơng 1: Mở đầu về MãKHốI I. Giới thiệu chung I.1. Hệmãkhối khóa bí mậtMộtkhối lợng lớn cácthôngtin đợc truyền trên các kênh thôngtinvàmạngmáytính hiện nay đang ngày càng gia tăng đặc biệt đòi hỏi cần phải đợc bảo vệ khỏicác dò dỉ không mong muốn, tức là đảmbảotính bí mật, đồng thời cũng cần phải đợc bảo vệ tránh sự giả mạo và sự từ chối trách nhiệm, tức là đảmbảotính xác thực. Kỹ thuậtmậtmã đợc phát triển vàvậndụngđểđảmbảo cả tính bí mậtvàtính xác thực đó. Cáchệmật hiện nay đợc chia thành hai loại: hệmật khóa bí mậtvàhệmật khóa công khai. Trong hệmật khóa bí mật, những ngời sử dụng hợp pháp (ngời gửi và ngời nhận) phải chia sẻ một khóa bí mật chung và khóa đó không đợc biết đối với thám mã đối phơng. Trong hệmật khóa công khai, ngời sử dụng hợp pháp chỉ cần cácthôngtin trung thực công khai nào đó. Mặc dù cáchệmật khóa công khai tỏ ra là lý tởng đối với nhiều ứng dụngmật mã, nhng tốc độ thấp và giá thành cao đã ngăn cản việc sử dụng chúng trong nhiều trờng hợp. Trong phần này chúng ta chỉ thảo luận về cáchệmật khóa bí mật. Chúng ta sẽ sử dụng mô hình hệmật của Shannon trong Hình 1.1. Trong mô hình này, khóa bí mật Z đợc phân phối tới ngời gửi và ngời nhận theo một kênh an toàn. Khóa này sau đó đợc sử dụngđểmã hóa bản rõ X thành bản mã Y bởi ngời gửi và đợc dùngđể giải mã bản mã Y thành bản rõ X bởi ngời nhận. Bản mã đợc truyền trên kênh không an toàn, và chúng ta giả thiết là thám mã đối phơng luôn có thể truy nhập để nhận đợc các bản mã. Tất nhiên thám mã không thể truy nhập đợc tới khóa bí mật. Hệmật khóa bí mật nh thế đợc gọi là hệmật đối xứng để phân biệt với hệmật khóa công khai không đối xứng trong đó các khóa khác nhau đợc sử dụng bởi ngời mãvà ngời dịch. Chú ý rằng X, Y, và Z trong mô hình này là các biến ngẫu nhiên. Trong mô hình này chúng ta cũng luôn giả thiết bản rõ X và khóa Z là độc lập thống kê. Cáchệmật khóa bí mậtthờng đợc chia thành cáchệmãkhốivàhệmã dòng. Đối với mãkhối bản rõ có dạng cáckhối "lớn" (chẳng hạn 128-bit) và dãy cáckhối đều đợc mã bởi cùng một hàm mã hóa, tức là bộ 1 mã hóa là một hàm không nhớ. Trong mã dòng, bản rõ thờng là dãy cáckhối "nhỏ" (thờng là 1-bit) và đợc biến đổi bởi một bộ mã hóa có nhớ. Cáchệmãkhối có u điểm là chúng có thể đợc chuẩn hóa một cách dễ dàng, bởi vì các đơn vị xử lý thôngtin hiện này thờng có dạng block nh bytes hoặc words. Ngoài ra trong kỹ thuật đồng bộ, việc mấtmột block mã cũng không ảnh hởng tới độ chính xác của việc giải mã của cáckhối tiếp sau, đó cũng là một u điểm khác của mã khối. thám mã X Y X Z Z kênh antoàn Bộ mã hóa E K (.) Bộ giải mã D K (.) nguồn khóa nguồn rõ nơi nhận Hình 1.1: Mô hình hệmật khóa bí mật Nhợc điểm lớn nhất của mãkhối là phép mã hóa không che dấu đợc các mẫu dữ liệu: cáckhốimã giống nhau sẽ suy ra cáckhối rõ cũng giống nhau. Tuy nhiên nhợc điểm này có thể đợc khắc phục bằng cách đa vào một lợng nhỏ có nhớ trong quá trình mã hóa, tức là bằng cách sử dụng cách thức móc xích khốimã (CBC-Cipher Block Channing mode) trong đó hàm mã hóa không nhớ đợc áp vào tổng XOR của block rõ và block mã trớc đó. Phép mã lúc này có kiểu cách kỹ thuật nh mã dòng áp dụng đối với cáckhối "lớn". Giả sử F 2 là trờng Galois hai phần tử. Ký hiệu F 2 m là không gian véc tơ các bộ m-tuples các phần tử của F 2 . Trong phần này chúng ta giả thiết không mất tổng quát rằng, bản rõ X, bản mã Y lấy các giá trị trong 2 không gian véc tơ F 2 m , còn khóa Z lấy giá trị trong không gian véc tơ F 2 k . Nh vậy m-là độ dài bít của cáckhối rõ và mã, còn k-là độ dài bit của khóa bí mật. Định nghĩa 1.1. Hệmãkhối khóa bí mật là một ánh xạ E: F 2 m x S z F 2 m , sao cho với mỗi z S z , E(., z) là một ánh xạ có ngợc từ F 2 m vào F 2 m . Hàm có ngợc E(., z) đợc gọi là hàm mã hóa tơng ứng với khóa z. ánh xạ nghịch đảo của E(., z) đợc gọi là hàm giải mã tơng ứng với khóa z và sẽ đợc ký hiệu là D(., z). Chúng ta viết Y = E(X, Z) đối với mộtmãkhối có nghĩa là bản mã Y đợc xác định bởi bản rõ X và khóa bí mật Z theo ánh xạ E. Tham số m đợc gọi là độ dài khối còn tham số k đợc gọi là độ dài khóa của hệmãkhối đó. Cỡ khóa đúng của hệmãkhối đợc xác định bởi số k t = log 2 (#(S z )) bit. Nh vậy độ dài khóa sẽ bằng cỡ khóa đúng nếu và chỉ nếu S z = F 2 k , tức là mọi bộ k-bit nhị phân đều là một khóa có hiệu lực. Chẳng hạn đối với chuẩn mã dữ liệu DES, độ dài khóa là k = 64 bit, trong khi cỡ khóa đúng của nó là k t = 56 bit. Chú ý rằng ở đây ta xem xét cácmãkhối có độ dài khốimã bằng độ dài khối rõ. I.2. Độ antoàn của cáchệmãkhối Nh đã nói ở trên, mộtmãkhối đợc sử dụng nhằm bảo vệ chống sự dò dỉ không mong muốn của bản rõ. Nhiệm vụ của thám mã đối phơng là phá hệmã này theo nghĩa anh ta có thể mở ra đợc các bản rõ từ các bản mã chặn bắt đợc. Mộthệmã là bị phá hoàn toàn nếu nh thám mã có thể xác định đợc khóa bí mật đang sử dụngvà từ đó anh ta có thể đọc đợc tất cả cácthôngbáomột cách dễ dàng nh là một ngời dùng hợp pháp. Mộthệmã là bị phá thực tế nếu thám mã có thể thờng xuyên mở ra đợc các bản rõ từ các bản mã nhận đợc, nhng vẫn cha tìm ra đợc khóa. Độ antoàn luôn gắn với cácđe dọa tấn công. Nh đã nói ở trên, chúng ta giả sử rằng kẻ tấn công luôn có thể truy nhập tới mọi thứ đợc truyền thôngqua kênh không an toàn. Tuy nhiên, có thể có cácthôngtin khác đối với thám mã. Khả năng tínhtoán của thám mã phải luôn đợc xem xét trớc khi xem xét độ antoàn của mộtmã có thể bị truy nhập. I.2.1. Các kiểu tấn công Một giả thiết đợc chấp nhận phổ biến nhất trong mậtmã đó là thám mã đối phơng luôn có thể truy nhập hoàn toàn tới các bản mã đợc truyền trên kênh không an toàn. Một giả thiết đã đợc chấp nhận khác nữa là: 3 Giả thiết Kerckhoff: Thám mã đối phơng là đợc biết toàn bộ chi tiết của quá trình mã hóa và giải mã chỉ trừ giá trị khóa bí mật. Giả thiết Kerckhoff suy ra rằng độ antoàn của mộthệmật khóa bí mật chỉ còn phụ thuộc vào chính khóa mậtmà thôi. Dới giả thiết Kerckhoff, các tấn công có thể đợc phân loại theo các tri thức của thám mã nh sau: - Tấn công chỉ biêt bản mã: thám mã đối phơng không biết thêm tí thôngtin gì ngoài bản mã nhận đợc. - Tấn công bản rõ đã biết: Thám mã đối phơnng biết thêm một vài cặp Rõ/Mã đối với khóa đang dùng. - Tấn công bản rõ lựa chọn: Thám mã đối phơnng có thể đạt đợc các bản mã tơng ứng với các bản rõ ấn định đặc biệt bất kỳ đối với khóa đang dùng. Tấn công bản rõ lựa chọn là tấn công mạnh nhất trong các tấn công trên. Nếu mộthệmã là antoàn chống lại tấn công bản rõ lựa chọn thì nó cũng antoàn trớc các tấn công khác. Trong thực tế, ta nên dùnghệmã có độ antoàn chống lại tấn công bản rõ lựa chọn, ngay cả khi thám mã đối phơng hiếm có cơ hội thu lợm đợc thôngtin gì đó hơn so với tấn công chỉ biết bản mã. I.2.2. Độ antoàn vô điều kiện và độ antoàntínhtoán Độ antoàn của mộthệmật phụ thuộc rất lớn vào khả năng tínhtoán của thám mã đối phơng. Mộthệmật đợc gọi là antoàn vô điều kiện nếu nó antoàn chống lại thám mã đối phơng có khả năng tínhtoán vô hạn. Độ antoàn vô điều kiện cũng đợc gọi là độ antoàn lý thuyết liên quan tới tính không thể phá đợc của mộthệ mật. Mộthệmật là antoàn chống lại đối phơng có khả năng tínhtoán bị hạn chế nào đó đợc gọi là antoàntính toán. Độ antoàntínhtoán cũng đợc gọi là độ antoànthực tế, liên quan tới tính khó phá của mộthệ mật. Tất cả cáchệmậtantoàn vô điều kiện đều là không có tínhthực tế vì lý do sẽ đợc nói dới đây. Tuy nhiên cũng không có mộthệmậtthực tế nào là đã đợc chứng minh là antoàn theo nghĩa tính toán. Độ antoàn vô điều kiện Mặc dù trong hầu hết các ứng dụng độ antoàn vô điều kiện là không cần thiết và cũng là không thể thực hiện đợc trên thực tế, nhng nghiêncứu về độ antoàn vô điều kiện cho chúng ta nhiều gợi ý có ích cho việc thiết kế và sử dụngcáchệmậtthực tế. Chẳng hạn lý do cơ bản của hệmã dòng 4 đó là độ mật hoàn thiện đợc cung cấp bởi hệthống đệm một lần "one- time-pad". Định nghĩa 1.2 (Shannon 1949): Mộthệmật sẽ cung cấp độ mật hoàn thiện nếu cáckhối rõ vàcáckhốimã là độc lập thống kê. Khả năng thực thi hệmật bí mật hoàn thiện đã đợc cho thấy bởi Shannon trong bài báo của ông ta năm 1949. Hệ "Mã nhóm khóa dùngmột lần"sau đây (đợc mô tả trong ví dụ 1) cung cấp mộthệmật bí mật hoàn thiện nh thế. ý tởng sử dụnghệthống khóa dùngmột lần đầu tiên đợc đề xuất bởi Vernam trong năm 1926. Mã Vernam thờng đợc gọi là hệmậtmột lần "one-time-pad". Mặc dù trong một thời gian dài ngời ta tin rằng hệmậtmột là là không thể bị phá, nhng phải đến công trình của Shannon mới chứng minh đợc tính bí mật hoàn thiện của nó. Ví dụ 1: (hệ mãkhối nhóm khóa dùngmột lần): Xét hệmãkhốicho trong Hình 1.2, ở đây là phép toán nhóm định nghĩa trên tập hợp F 2 m . Hệmã này có độ bí mật hoàn thiện nếu khóa đợc chọn ngẫu nhiên đều và độc lập với mỗi khối rõ. ., X 2 , X 1 ., Y 2 , Y 1 ., Z 2 , Z 1 Hình 1.2: Hệmãkhối nhóm khóa dùngmột lần. Các khóa Z i là đợc chọn ngẫu nhiên đều và độc lập. Hệthống bí mật hoàn thiện thờng là không thực tế, bởi vì Shannon đã cho thấy một lợng khóa không giới hạn cần phải có nếu nh ta cho phép một lợng thôngbáo không hạn chế. Tuy nhiên, ý tởng của hệmật hoàn thiện thiết lập nên một nguyên lý đã biết trong thực tế mậtmã là đểđảmbảo độ antoàn thì nên thay khóa một cách thờng xuyên. Độ antoàn vô điều kiện cũng có thể đạt đợc bằng cách nén dữ liệu. Shannon đã định nghĩa mộthệmật là lý tởng chặt nếu với một khóa cố định, dãy cáckhốimã không chomộtthôngtin gì về khóa. Shannon cũng chú ý rằng nếu bản rõ không còn độ d, tức là nếu tất cả cáckhối rõ 5 . mạng dùng giao thức liên mạng máy tính IP Báo cáo kết quả nghiên cứu Đảm bảo toán học cho các hệ mật Quyển 3C: Nghiên cứu xây dựng thuật toán mã khối an toàn. KC-01: Nghiên cứu khoa học phát triển công nghệ thông tin và truyền thông Đề tài KC-01-01: Nghiên cứu một số vấn đề bảo mật và an toàn thông tin cho các mạng