Chơng trình KC-01: Nghiên cứu khoa học phát triển công nghệ thông tin truyền thông Đề tài KC-01-01: Nghiên cứu số vấn đề bảo mật an toàn thông tin cho mạng dùng giao thức liên mạng máy tính IP Báo cáo kết nghiên cứu Đảm bảo toán học cho 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 Hà NộI-2004 Báo cáo kết nghiên cứu Đảm bảo toán học cho 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 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 mà khèi I Giíi thiƯu chung HƯ m· khèi khoá bí mật Độ an toàn hệ m· khèi Nguyªn lý thiÕt kÕ m· khèi Các mà khối lặp II Các cấu trúc mà khối Cấu trúc mà Feistel Cấu trúc Matsui CÊu tróc céng-nh©n Giíi thiƯu mét sè loại hình mà khối 1 10 11 11 13 15 15 chơng 2: Thám mà khối 19 I Thám mà vi sai DES hệ mà khối lặp DES-like Mô hình hệ DES Thám mà vi sai mà khối lặp Sơ công vi sai DES II Thám mà tuyến tính hệ DES Nguyên lý chung phơng pháp thám mà tuyến tÝnh XÊp xØ tuyÕn tÝnh c¸c hép nÐn XÊp xØ tun tÝnh hƯ m· DES TÊn c«ng rõ đà biết DES III Thám mà phi tun ThiÕt lËp c¸c quan hƯ bËc hai S-hộp áp dụng vào thám mà phi tuyến Sư dơng xÊp xØ tun tÝnh nhiỊu lÇn áp dụng tổ hợp xấp xỉ nhiều lần xấp xỉ phi tuyến để công DES Thuật toán cải tiến để công DES 16-vòng Thực hành công phi tuyến với DES tìm đủ 56 bít khoá IV Tấn công vi sai bậc cao Khái niƯm TÊn c«ng sư dơng vi sai bËc cao 19 19 19 25 30 30 33 35 39 40 41 42 43 -iii- 44 45 46 52 52 53 V Tấn công nội suy VI Tấn công khoá quan hệ VII Các đặc trng an toàn hệ mà khối 56 60 66 chơng 3: khảo sát hệ mà khối an toàn theo đặc trng 68 ®é ®o gi¶i tÝch I Hép thÕ m· khèi Một số đô đo phi tuyến hộp Khảo sát số lớp hàm cụ thể II Hàm vòng mà khối lặp Các độ đo an toàn hàm vòng phụ thuộc khoá Một số dạng hàm vòng an toàn-chứng minh đợc III §é an toµn thùc tÕ cđa m· Feistel §é an toµn thùc tÕ cđa cÊu tróc Feistel (cÊu tróc cùng) Một kiểu thiết kế hàm vòng 2-SPN (cấu trúc giữa) IV Lợc đồ khoá, phép biến đổi đầu vào đầu hệ mà khối Phân loại lợc đồ khoá hệ mà khối Một số lợc đồ khoá mạnh Việc sử dụng hoán vị hàm vòng, phép biến đổi đầu vào đầu hệ mà khối 69 69 73 78 78 83 88 88 90 91 chơng 4: khảo sát mà khối theo nhóm sinh 97 91 94 95 hàm mà hoá I Khái niệm Mà khối Nhóm sinh hàm mà hoá II Một số tính chất G Nhóm bất động tập Tính phát tán G Tính nguyên thuỷ G III Quan hệ tính chất G với tính an toàn hệ mËt TÝnh ph¸t t¸n TÝnh u cđa c¸c mà khối có G không nguyên thuỷ IV Một số điều kiện đủ để nhóm phép có tính phát tán nguyên thuỷ -iii- 97 97 98 98 98 98 98 101 101 102 103 V Mét số phân tích thêm tính t-phát tán Khái niệm t-phát tán mạnh Một số tính chất 105 105 107 chơng 5: khảo sát đặc trng m· khèi 112 theo quan ®iĨm xÝch markov I Mét số sở toán học Xích Markov hữu hạn Đồ thị ngẫu nhiên II Mật mà Markov thám lợng sai Mật mà Markov Thám lợng sai III Thám tuyến tính Xích để thám tuyến tính Tính ergodic hàm vòng ngẫu nhiên IV Mật mà Markov nhóm luân phiên Các điều kiện lý thuyết nhóm cho hàm vßng øng dơng cho DES 112 112 115 116 116 121 132 134 135 136 136 137 øng dơng cho IDEA V KÕt ln 137 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á liệu Mô hình mÃ, giải mà Các tham số cụ thể II Phần lợc đồ khoá III Các thông số an toàn lý thuyết vµ thùc nghiƯm 140 140 143 144 145 Phơ lơc A: Listing chơng trình thám mà DES-8 vòng Phụ lục B: Listing chơng trình thuật toán mà khối MK_KC-01-01 147 165 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 thông tin đợc truyền kênh thông tin mạng máy tính ngày gia tăng đặc biệt đòi hỏi cần phải đợc bảo vệ khỏi dò dỉ không mong muốn, tức đảm bảo tính bí mật, đồng thời cần phải đợc bảo vệ tránh giả mạo từ chối trách nhiệm, tức đảm bảo tính xác thực Kỹ thuật mật mà đợc phát triển vận dụng để đảm bảo tính bí mật tính xác thực Các hệ mật đợc chia thành hai loại: hệ mật khóa bí mật 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 ngời nhận) phải chia sẻ khóa bí mật chung khóa không đợc biết thám mà đối phơng Trong hệ mật khóa công khai, ngời sử dụng hợp pháp cần thông tin trung thực công khai Mặc dù hệ mật khóa công khai tỏ lý tởng nhiều ứng dụng mật mÃ, nhng tốc độ thấp giá thành cao đà ngăn cản việc sử dụng chúng nhiều trờng hợp Trong phần thảo luận hệ mËt khãa bÝ mËt Chóng ta sÏ sư dơng m« hình hệ mật Shannon 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 ngời nhận theo kênh an toàn Khóa sau đợc sử dụng để mà hóa rõ X thành mà Y ngời gửi đợc dùng để giải mà mà Y thành rõ X ngời nhận Bản mà đợc truyền kênh không an toàn, giả thiết thám mà đối phơng truy nhập để nhận đợc mà Tất nhiên thám mà truy nhập đợc tới khóa bí mật Hệ mật khóa bí mật nh đợc gọi 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 khóa khác đợc sử dụng ngời mà ngời dịch Chú ý X, Y, Z mô hình biến ngẫu nhiên Trong mô hình giả thiết rõ X khóa Z độc lập thống kê Các hệ mật khóa bí mật thờng đợc chia thành hệ mà khối hệ mà dòng Đối với mà khối rõ có dạng khối "lớn" (chẳng hạn 128-bit) dÃy khối đợc mà hàm m· hãa, tøc lµ bé m· hãa lµ mét hàm không nhớ Trong mà dòng, rõ thờng dÃy khối "nhỏ" (thờng 1-bit) đợc biến ®ỉi bëi mét bé m· hãa cã nhí C¸c hƯ mà khối có u điểm chúng đợc chuẩn hóa cách dễ dàng, đơn vị xử lý thông tin thờng có dạng block nh bytes words Ngoài kỹ thuật đồng bộ, việc block mà không ảnh hởng tới độ xác việc giải mà khối tiếp sau, u điểm kh¸c cđa m· khèi th¸m m· ngn râ X Bé m· hãa EK(.) Y Bé gi¶i m· DK(.) Z X nơi nhận Z kênh an toàn nguồn khóa Hình 1.1: Mô hình hệ mật khóa bí mật Nhợc điểm lớn mà khối phép mà hóa không che dấu đợc mẫu liệu: khối mà giống sÏ suy c¸c khèi râ cịng gièng Tuy nhiên nhợc điểm đợc khắc phục cách đa vào lợng nhỏ có nhớ trình mà hóa, tức cách sử dụng c¸ch thøc mãc xÝch khèi m· (CBC-Cipher Block Channing mode) hàm mà hóa không nhớ đợc áp vào tổng XOR block rõ block mà trớc Phép mà lúc có kiểu cách kỹ thuật nh mà dòng áp dụng khối "lớn" Giả sử F2 trờng Galois hai phần tử Ký hiệu F2m không gian véc tơ m-tuples phần tử F2 Trong phần giả thiết không tổng quát rằng, rõ X, mà Y lấy giá trị không gian véc tơ F2m, khóa Z lấy giá trị không gian véc tơ F2k Nh m-là độ dài bít khối rõ mÃ, k-là độ dài bit khóa bí mật Định nghĩa 1.1 Hệ mà khối khóa bí mật ánh xạ E: F2m x Sz F2m, cho với z Sz, E(., z) ánh xạ có ngợc từ F2m vào F2m Hàm có ngợc E(., z) đợc gọi hàm mà hóa tơng ứng với khóa z ánh xạ nghịch đảo E(., z) đợc gọi hàm giải mà tơng ứng với khóa z đợc ký hiệu D(., z) Chúng ta viết Y = E(X, Z) ®èi víi mét m· khèi cã nghÜa mà Y đợc xác định rõ X khóa bí mật Z theo ánh xạ E Tham số m đợc gọi độ dài khối tham số k đợc gọi độ dài khóa hƯ m· khèi ®ã Cì khãa ®óng cđa hƯ m· khối đợc xác định số kt = log2 (#(Sz)) bit Nh độ dài khóa cỡ khóa ®óng nÕu vµ chØ nÕu Sz = F2k, tøc lµ k-bit nhị phân khóa có hiệu lực Chẳng hạn chuẩn mà liệu DES, độ dài khóa k = 64 bit, cỡ khóa kt = 56 bit Chú ý ta xem xét mà khối có độ dài khối mà độ dài khối rõ I.2 Độ an toàn hệ mà khối Nh đà nói trên, mà khối đợc sử dụng nhằm bảo vệ chống dò dỉ không mong muốn rõ Nhiệm vụ thám mà đối phơng phá hệ mà theo nghĩa mở đợc rõ từ mà chặn bắt đợc Một hệ mà bị phá hoàn toàn nh thám mà xác định đợc khóa bí mật sử dụng từ đọc đợc tất thông báo cách dễ dàng nh ngời dùng hợp pháp Một hệ mà bị phá thực tế thám mà thờng xuyên mở đợc rõ từ mà nhận đợc, nhng cha tìm đợc khóa Độ an toàn gắn với đe dọa công Nh đà nói trên, giả sử 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ông tin khác thám mà Khả tính toán thám mà phải đợc xem xét trớc xem xét độ an toàn mà bị truy nhập I.2.1 Các kiểu công Một giả thiết đợc chấp nhận phổ biến mật mà thám mà đối phơng truy nhập hoàn toàn tới mà đợc truyền kênh không an toàn Một giả thiết đà đợc chấp nhận khác là: Giả thiết Kerckhoff: Thám mà đối phơng đợc biết toàn chi tiết trình mà hóa giải mà trừ giá trị khóa bí mật Giả thiết Kerckhoff suy độ an toàn hệ mật khóa bí mật phụ thuộc vào khóa mật mà Dới giả thiết Kerckhoff, công đợc phân loại theo tri thức thám mà nh sau: - Tấn công biêt mÃ: thám mà đối phơng thêm tí thông tin mà nhận đợc - Tấn công rõ đà biết: Thám mà đối phơnng biết thêm vài cặp Rõ/Mà khóa dùng - Tấn công rõ lựa chọn: Thám mà đối phơnng đạt đợc mà tơng ứng với rõ ấn định đặc biệt khóa dùng Tấn công rõ lựa chọn công mạnh công Nếu hệ mà an toàn chống lại công rõ lựa chọn an toàn trớc công khác Trong thực tế, ta nên dùng hệ mà có độ an toàn chống lại công rõ lựa chọn, thám mà đối phơng có hội thu lợm đợc thông tin so với công biết mà I.2.2 Độ an toàn vô điều kiện độ an toàn tính toán Độ an toàn hệ mật phụ thuộc lớn vào khả tính toán thám mà đối phơng Một hệ mật đợc gọi an toàn vô điều kiện an toàn chống lại thám mà đối phơng có khả tính toán vô hạn Độ an toàn vô điều kiện đợc gọi độ an toàn lý thuyết liên quan tới tính phá đợc mét hƯ mËt Mét hƯ mËt lµ an toµn chèng lại đối phơng có khả tính toán bị hạn chế đợc gọi an toàn tính toán Độ an toàn tính toán đợc gọi độ an toàn thực tế, liên quan tới tính khó phá hệ mật Tất hệ mật an toàn vô điều kiện tính thực tế lý đợc nói dới Tuy nhiên hệ mật thực tế đà đợc chứng minh an toàn theo nghĩa tính toán Độ an toàn vô điều kiện Mặc dù hầu hết ứng dụng độ an toàn vô điều kiện không cần thiết thực đợc thực tế, nhng nghiên cứu độ an toàn vô điều kiện cho nhiều gợi ý có ích cho việc thiết kế sử dụng hệ mật thực tế Chẳng hạn lý hệ mà dòng độ mật hoàn thiện đợc cung cấp hệ thống đệm lần "onetime-pad" Định nghĩa 1.2 (Shannon 1949): Một hệ mật cung cấp độ mật hoàn thiện khối rõ khối mà độc lập thống kê Khả thực thi hệ mật bí mật hoàn thiện đà đợc cho thấy Shannon báo ông ta năm 1949 Hệ "Mà nhóm khóa dùng lần"sau (đợc mô tả 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 lần đợc đề xuất Vernam năm 1926 Mà Vernam thờng đợc gọi hệ mật lần "one-time-pad" Mặc dù thời gian dài ngời ta tin hệ mật là bị phá, nhng phải đến công trình Shannon chứng minh đợc tính bí mật hoàn thiện nã VÝ dơ 1: (hƯ m· khèi nhãm khãa dïng lần): Xét hệ mà khối cho Hình 1.2, phép toán nhóm định nghĩa tập hợp F2m Hệ mà có độ bí mật hoàn thiện khóa đợc chọn ngẫu nhiên độc lập với khối rõ , X2, X1 ⊗ ., Y2, Y1 ., Z2, Z1 H×nh 1.2: HƯ mà khối nhóm khóa dùng lần Các khóa Zi đợc chọn ngẫu nhiên độc lập Hệ thống bí mật hoàn thiện thờng không thực tế, Shannon đà cho thấy lợng khóa không giới hạn cần phải có nh ta cho phép lợng thông báo không hạn chế Tuy nhiên, ý tởng hệ mật hoàn thiện thiết lập nên nguyên lý đà biết thực tế mật mà để đảm bảo độ an toàn nên thay khóa cách thờng xuyên Độ an toàn vô điều kiện đạt đợc cách nén liệu Shannon đà định nghĩa hệ mật lý tởng chặt với khóa cố định, dÃy khối mà không cho thông tin khóa Shannon ý rõ không độ d, tức tất khối rõ temp_fk[6] |= (unsigned char)((fk2&0x00000200)>>5);/* K8[15] K[52] */ /* K8[14] K[25] trung */ /* K8[13] K[58] trung */ /* Voi moi gia khoa co the, vet can so khoa lai */ printf("\n Trying to find correct key "); if (exhaustive_search(temp_fk)==1) /* tim duoc khoa dung */ { return 1; } } return 0; /* correct key */ /* Rearrange U - Both UC and UD */ int rearrangeU(int a) { unsigned long i, j, tg; unsigned long fkey1, fkey2; for (i=0; i