Thông tin tài liệu
Chơng trình 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 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 hiệu quả Hà NộI-2004 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 hiệu quả Chủ trì nhóm nghiên cứ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. Độ an toàn của các hệ mã khối 3 3. Nguyên lý thiết kế mã khối 9 4. Các mã 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ột số 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ác hệ 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ác mã 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ính các hộp nén 33 3. Xấp xỉ tuyến tính hệ 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ật toá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 an toàn cơ bản của hệ mã khối 66 chơng 3: khảo sát hệ mã khối an toàn theo các đặc trng 68 độ đo giải tích I. Hộp thế trong mã khối 69 1. Một số đô đo phi tuyến của hộp thế 69 2. Khảo sát một số lớp hàm cụ thể 73 II. Hàm vòng trong các mã khối lặp 78 1. Các độ đo an toàn của hàm vòng phụ thuộc khoá 78 2. Một số dạng hàm vòng an toàn-chứng minh đợc 83 III. Độ an toàn thực tế của mã Feistel 88 1. Độ an toàn thự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ác hệ mã khối 91 2. Một số 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ột hệ 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ột số 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ác tính chất cơ bản của G với tính 101 an toàn của hệ mật 1. Tính phát tán 101 2. Tính yếu của các mã khối có G là không nguyên thuỷ 102 IV. Một số đ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ột số 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ột số 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ột số cơ sở toán học 112 1. Xích Markov hữu hạn 112 2. Đồ thị ngẫu nhiên 115 II. Mật mã Markov và thám lợng sai 116 1. Mật mã 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ật mã 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ụng cho DES 137 3. ứng dụng cho IDEA 137 V. Kết luận 138 chơng 6: xây dựng thuật toán mã 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ác thông số an toà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ật toán mã 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ật Một khối lợng lớn các thông tin đợc truyền trên các kênh thông tin và mạng máy tí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ỏi các dò dỉ không mong muốn, tức là đảm bảo tí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à đảm bảo tính xác thực. Kỹ thuật mật mã đợc phát triển và vận dụng để đảm bảo cả tính bí mật và tính xác thực đó. Các hệ mật hiện nay đợc chia thành hai loại: hệ mật khóa bí mật và 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ác thông tin trung thực công khai nào đó. Mặc dù các hệ mật khóa công khai tỏ ra là lý tởng đối với nhiều ứng dụng mậ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ác hệ 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ác hệ mật khóa bí mật thờng đợc chia thành các hệ mã khối và hệ mã dòng. Đối với mã khối bản rõ có dạng các khối "lớn" (chẳng hạn 128-bit) và dãy các khố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ác khối "nhỏ" (thờng là 1-bit) và đợc biến đổi bởi một bộ mã hóa có nhớ. Các hệ 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ông tin 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ất mộ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ác khố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 an toà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ác khối mã giống nhau sẽ suy ra các khố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ối mã (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ác khố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ác khố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ột mã 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ác mã khối có độ dài khối mã bằng độ dài khối rõ. I.2. Độ an toàn của các hệ mã khối Nh đã nói ở trên, một mã 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ột hệ 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ụng và từ đó anh ta có thể đọc đợc tất cả các thông báo một cách dễ dàng nh là một ngời dùng hợp pháp. Một hệ 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. Độ an toà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ông qua kênh không an toàn. Tuy nhiên, có thể có các thông tin khác đối với thám mã. Khả năng tính toán của thám mã phải luôn đợc xem xét trớc khi xem xét độ an toàn của một mã 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ật mã đó 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 độ an toàn của một hệ mật khóa bí mật chỉ còn phụ thuộc vào chính khóa mật mà 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ông tin 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ột hệ mã là an toàn chống lại tấn công bản rõ lựa chọn thì nó cũng an toàn trớc các tấn công khác. Trong thực tế, ta nên dùng hệ mã có độ an toà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ông tin gì đó hơn so với tấn công chỉ biết bản mã. I.2.2. Độ an toàn vô điều kiện và độ an toàn tính toán Độ an toàn của một hệ mật phụ thuộc rất lớn vào khả năng tính toán của thám mã đối phơng. Một hệ mật đợc gọi là an toàn vô điều kiện nếu nó an toàn chống lại thám mã đối phơng có khả năng tính toán vô hạn. Độ an toàn vô điều kiện cũng đợc gọi là độ an toàn lý thuyết liên quan tới tính không thể phá đợc của một hệ mật. Một hệ mật là an toàn chống lại đối phơng có khả năng tính toán bị hạn chế nào đó đợc gọi là an toàn tính toán. Độ an toàn tính toán cũng đợc gọi là độ an toàn thực tế, liên quan tới tính khó phá của một hệ mật. Tất cả các hệ mật an toàn vô điều kiện đều là không có tính thực tế vì lý do sẽ đợc nói dới đây. Tuy nhiên cũng không có một hệ mật thực tế nào là đã đợc chứng minh là an toàn theo nghĩa tính toán. Độ an toàn vô điều kiện Mặc dù trong hầu hết các ứng dụng độ an toà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ên cứu về độ an toà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ụng các hệ mật thự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ột hệ mật sẽ cung cấp độ mật hoàn thiện nếu các khối rõ và các khối mã 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ùng một lần"sau đây (đợc mô tả trong ví dụ 1) cung cấp một hệ mật bí mật hoàn thiện nh thế. ý tởng sử dụng hệ thống khóa dùng mộ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ật mộ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ật mộ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ùng một lần): Xét hệ mã khối cho 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ùng mộ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ông bá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ật mã là để đảm bảo độ an toàn thì nên thay khóa một cách thờng xuyên. Độ an toà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ột hệ mật là lý tởng chặt nếu với một khóa cố định, dãy các khối mã không cho một thông tin 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ác khố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
Ngày đăng: 18/12/2013, 08:33
Xem thêm: 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ả , 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ả