Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu

71 636 2
Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu

Đ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

i ®¹i häc th¸i nguyªn Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG VŨ QUỐC THỊNH TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH th¸i nguyªn - n¨m 2014 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ ii ®¹i häc th¸i nguyªn Tr-êng ®¹i häc C¤NG NGHÖ TH¤NG TIN Vµ TRUYÒN TH¤NG VŨ QUỐC THỊNH TÌM HIỂU MỘT SỐ PHƯƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI ỨNG DỤNG TRONG BẢO MẬT DỮ LIỆU LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Chuyên ngành: KHOA HỌC MÁY TÍNH Mã số: 60.48.01 Ngƣời hƣớng dẫn khoa học: TS. NGUYỄN DUY MINH Thái Nguyên, 2014 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iii LỜI CẢM ƠN Lời đầu tiên, em xin đƣợc gửi lời cảm ơn sâu sắc đến TS.Nguyễn Duy Minh, ngƣời thầy đã giúp đỡ em trong suốt quá trình làm khóa luận, đồng thời cũng là ngƣời thầy đã hƣớng dẫn em những bƣớc đi đầu tiên để khám phá một lĩnh vực đầy bí ẩn và thách thức – lĩnh vực an toàn và bảo mật dữ liệu. Em xin đƣợc cảm ơn các thầy, các cô đã giảng dạy em trong suốt quá trình học tập. Những kiến thức mà các thầy các cô đã dạy sẽ mãi là hành trang giúp em vững bƣớc trong tƣơng lai. Em cũng xin đƣợc gửi lời cảm ơn đến tập thể lớp CK11G, một tập thể lớp đoàn kết với những ngƣời bạn không chỉ học giỏi mà còn luôn nhiệt tình, những ngƣời bạn đã giúp đỡ em trong suốt quá trình học tập. Cuối cùng em xin đƣợc gửi lời cảm ơn sâu sắc tới gia đình em, những ngƣời luôn kịp thời động viên, khích lệ em, giúp đỡ em vƣợt qua những khó khăn trong cuộc sống. Thái Nguyên, tháng 08 năm 2014 Học viên Vũ Quốc Thịnh Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ iv ĐỊNH NGHĨA, VIẾT TẮT Advanced Encryption Standard (AES) Tiêu chuẩn tiên tiến Asymmetric key cryptography Mã hóa bất đối xứng Authentication Tính xác thực Cipher text Bản mã Concatenate frequency of pairs Tần số bộ đôi móc xích Confidentiality Tính bảo mật Cryptannalysis Thám mã Cryptography Mật mã Cryptology Mật mã học Data Encryption Standard (DES) Tiêu chuẩn mã hóa dữ liệu Decryption Giải mã Encryption Mã hóa Frequency Tấn số Integrity Tính toàn vẹn Key seed Mầm khóa Most Likelihood Ratio (MLR) Tỷ số hợp lý cực đại Non – repudation Tính không thể chối bỏ Plain text Bản rõ Private key Khóa bí mật Public key Khóa công khai Relative frequency Tần số tƣơng đối Rivest, Shamir, & Adleman (RSA) Symmetric - key cryptography Mã hóa đối xứng Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ v MỤC LỤC LỜI CẢM ƠN .................................................................................................................. i ĐỊNH NGHĨA, VIẾT TẮT ............................................................................................ iv MỤC LỤC ....................................................................................................................... v DANH MỤC HÌNH VẼ...............................................................................................viii LỜI NÓI ĐẦU................................................................................................................. 1 CHƢƠNG 1: TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ . 3 1.1. Giới thiệu..........................................................................................................3 1.2. Các khái niệm cơ bản .......................................................................................3 1.2.1. Mật mã ......................................................................................................3 1.2.2. Mật mã học ................................................................................................4 1.2.3. Bản rõ ........................................................................................................4 1.2.4. Bản mã ......................................................................................................4 1.2.5. Mã hóa .......................................................................................................4 1.2.6. Giải mã ......................................................................................................4 1.2.7. Khái niệm hệ mật mã ................................................................................5 1.3. Phân loại các hệ mật mã ...................................................................................6 1.3.1. Mã hóa đối xứng .......................................................................................6 1.3.2. Mã hóa bất đối xứng .................................................................................7 1.4. Tiêu chuẩn đánh giá hệ mật mã......................................................................10 1.5. Hệ mật mã RSA .............................................................................................10 1.5.1. Mô tả hệ mật RSA ...................................................................................11 1.5.2. Thực thi hệ RSA......................................................................................13 1.5.3. Độ an toàn của hệ RSA ...........................................................................14 1.6. Thám mã .........................................................................................................15 1.6.1. Khái niệm ................................................................................................15 1.6.2. Các bƣớc cơ bản để tiến hành thám mã ..................................................19 1.7. Kết luận ..........................................................................................................26 CHƢƠNG 2: CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI ............................................................................................................................. 27 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ vi 2.1. Tính an toàn của hệ mật mã ...........................................................................27 2.1.1. An toàn vô điều kiện ...............................................................................27 2.1.2. An toàn đƣợc chứng minh .......................................................................27 2.1.3. An toàn tính toán .....................................................................................27 2.2. Các kiểu thám mã ...........................................................................................28 2.2.1. Tấn công dạng 1: Tìm cách xác định khóa bí mật ..................................28 2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ ...........................................30 2.3. Một số sơ hở dẫn đến tấn công hệ mật RSA ..................................................32 2.3.1. Biết (n) tìm đƣợc p, q ............................................................................33 2.3.2. Biết số mũ giải a ......................................................................................33 2.3.3. Giao thức công chứng .............................................................................34 2.3.4. Giao thức số mũ công khai nhỏ ..............................................................35 2.3.5. Giao thức số mũ bí mật nhỏ ....................................................................37 2.3.6. Trƣờng hợp các tham số p-1 và q-1 có các ƣớc nguyên tố nhỏ ..............39 2.4. Kết luận ..........................................................................................................42 CHƢƠNG 3: THỬ NGHIỆM PHƢƠNG PHÁP THÁM MÃ VỚI HỆ RSA ............ 44 3.1. Mô tả bài toán tấn công RSA sử dụng modul chung .....................................44 3.2. Thuật toán tấn công giao thức modul n chung ...............................................44 3.2.1. Kiểu tấn công thứ nhất: Tấn công dựa trên các số mũ mã hóa nguyên tố cùng nhau ..........................................................................................................44 3.2.2. Kiểu tấn công thứ hai: Phân tích số modul n bằng cách tìm căn bậc hai không tầm thƣờng của 1 mod n .........................................................................45 3.2.3. Kiểu tấn công thứ ba: Sử dụng khóa công khai và bí mật của mình để sinh ra khóa bí mật của ngƣời dùng khác .........................................................47 3.3. Thử nghiệm chƣơng trình...............................................................................48 3.3.1. Cơ sở lý thuyết ........................................................................................48 3.2.2. Thuật toán................................................................................................49 3.3.3. Đánh giá kết quả...................................... Error! Bookmark not defined. 3.3.4. Thử nghiệm .............................................................................................51 3.4. Kết luận ..........................................................................................................60 KẾT LUẬN ................................................................................................................... 61 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ vii TÀI LIỆU THAM KHẢO ............................................................................................ 62 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ viii DANH MỤC HÌNH VẼ Hình 1.1: Quá trình mã hóa và giải mã ........................................................................... 5 Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P ............................................... 8 Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của ngƣời nhận ............................... 8 Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và................... 9 Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và ........... 9 Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA ...................................................... 13 Hình 3.1: Lƣu đồ giải thuật thám mã RSA ................................................................... 50 Hình 3.2: Giao diện chính của chƣơng trình thám mã RSA ........................................ 52 Hình 3.3: Nhập các tham số RSA ................................................................................ 53 Hình 3.4: Tính khóa bí mật d1, d2 ................................................................................ 54 Hình 3.5: Mã hóa ........................................................................................................... 55 Hình 3.6: Mã hóa thông điệp ........................................................................................ 56 Hình 3.7: Thám mã tìm ra khóa bí mật d1.................................................................... 57 Hình 3.8: Giải mã tìm ra bản rõ theo khóa d1 .............................................................. 58 Hình 3.9: Giải mã tìm ra thông điệp ............................................................................. 59 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 1 LỜI NÓI ĐẦU Từ khi con ngƣời có nhu cầu trao đổi thông tin, thƣ từ với nhau thì nhu cầu giữ bí mật và bảo mật tính riêng tƣ của những thông tin, thƣ từ đó cũng nảy sinh. Hình thức thông tin trao đổi phổ biến sớm nhất là dƣới dạng các văn bản, để giữ bí mật của thông tin ngƣời ta đã sớm nghĩ đến cách che dấu nội dung các văn bản bằng các biến dạng các văn bản đó để ngƣời ngoài đọc nhƣng không hiểu đƣợc, đồng thời có cách khôi phục lại nguyên dạng ban đầu để ngƣời trong cuộc vẫn hiểu đƣợc; theo cách gọi ngày nay thì dạng biến đổi của văn bản đƣợc gọi là mật mã của văn bản, cách lập mã cho một văn bản đƣợc gọi là phép lập mã, còn cách khôi phục lại nguyên dạng ban đầu gọi là phép giải mã. Phép lập mã và phép giải mã đƣợc thực hiện nhờ một chìa khóa riêng nào đó mà chỉ những ngƣời trong cuộc đƣợc biết và nó đƣợc gọi là khóa lập mã. Ngƣời ngoài dù có lấy đƣợc bản mật mã trên đƣờng truyền mà không có khóa mật mã thì cũng không thể hiểu đƣợc nội dung của văn bản truyền đi. Trong số các phƣơng pháp đảm bảo an toàn thông tin thì phƣơng pháp mật mã hóa (Cryptography) đƣợc sử dụng rộng rãi và đảm bảo an toàn nhất. Tuy nhiên phƣơng pháp mật mã hóa không tốt (mặc dù việc quản lý khóa mã đƣợc giả thiết là an toàn) thì rất nguy hiểm. Vậy làm thế nào để đánh giá đƣợc chất lƣợng của một hệ mã là tốt? Có nhiều phƣơng pháp đánh giá chất lƣợng của một hệ mật nhƣ phƣơng pháp Entropy của Shannon, nhƣng phƣơng pháp tốt nhất và trực quan nhất, đó là phƣơng pháp phân tích trực tiếp bản mã khi không có khóa mã trong tay mà ngƣời ta thƣờng gọi là thám mã (Cryptannalysis). Hiện nay thám mã cũng là một lĩnh vực cũng thƣờng đƣợc quan tâm nghiên cứu nhƣng ít khi đƣợc công khai, hoặc công khai không đầy đủ. Sự hiểu biết về các phƣơng pháp thám mã hiện nay ở trong nƣớc nói chung đang còn rất hạn chế. Tuy đã có nhiều công trình nghiên cứu về thám mã nhƣng việc đƣa ra hệ quy trình thám mã và chƣơng trình thám mã vẫn ở mức độ hẹp và khó khăn trong ứng dụng thực tế. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 2 Xuất phát từ thực tế đó, để góp phần tăng cƣờng độ an toàn cho các hệ mật mã hiện đại nhằm góp phần bảo vệ an ninh thông tin trong tình hình mới nên em đã chọn đề tài “Tìm hiểu một số phương pháp thám mã hệ mật mã khóa công khai ứng dụng trong bảo mật dữ liệu” nhằm nghiên cứu và ứng dụng. Trong khuôn khổ đề tài đƣợc giao, luận văn đƣợc trình bày trong 3 chƣơng. Có phần mở đầu, phần kết luận, phần mục lục, tài liệu tham khảo. Các nội dung cơ bản của luận văn đƣợc trình bày nhƣ sau: Chƣơng 1: “Tổng quan về mật mã khóa công khai và thám mã”. Ở chƣơng này, luận văn trình bày chi tiết về lịch sử cũng nhƣ các khái niệm về các hệ mã thuộc dòng mã truyền thống cũng nhƣ dòng mã đối xứng, mã bất đối xứng giúp chúng ta hiểu cơ sở lý thuyết về các hệ mật mã. Vấn đề thám mã nói chung và thám mã đối với hệ mật RSA cũng đƣợc em trình bày kỹ trong chƣơng này. Chƣơng 2: “Các phƣơng pháp thám mã hệ mật mã khóa công khai”. Trên cơ sở hiểu các hệ mật đƣợc trình bày ở chƣơng 1, để có cái nhìn tổng quan về vấn đề thám mã đối với hệ mật RSA và trên cơ sở trình bày các phƣơng pháp thám mã đã tổng kết lại các phƣơng pháp và đánh giá kết quả của phƣơng pháp nhƣ: các tấn công cơ bản - modul chung, tấn công vào số mũ công khai hoặc số mũ bí mật nhỏ, giao thức công chứng... Chƣơng 3: “Thử nghiệm phƣơng pháp thám mã với hệ RSA”. Qua nghiên cứu các phƣơng pháp thám mã trong chƣơng 2, chƣơng 3 đề xuất phƣơng pháp tấn công giao thức sử dụng hệ mật mã RSA có modul n chung. Để minh chứng cho phƣơng pháp này, luận văn xây dựng thuật toán và cài đặt chƣơng trình thử nghiệm trong hệ bảo mật. Do mức độ phức tạp của công việc thám mã là rất lớn nên bài toán đặt ra với giả thiết ngƣời thám mã biết đƣợc các thông tin và bản mã đƣợc mã hóa bởi RSA từ bản rõ tƣơng ứng là một thông điệp dạng Text. Từ giả thiết này xây dựng thuật toán để xác định khóa mật K đã sử dụng để mã hóa cũng nhƣ tìm ra bản rõ tƣơng ứng. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 3 CHƢƠNG 1 TỔNG QUAN VỀ MẬT MÃ KHÓA CÔNG KHAI VÀ THÁM MÃ 1.1. Giới thiệu Mật mã đã đƣợc con ngƣời sử dụng từ lâu đời. Các hình thức mật mã sơ khai đã đƣợc tìm thấy từ khoảng bốn nghìn năm trƣớc trong nền văn minh Ai Cập cổ đại.Trải qua hàng nghìn năm lịch sử, mật mã đã đƣợc sử dụng rộng rãi ở khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc giao lƣu thông tin trong nhiều lĩnh vực hoạt động giữa con ngƣời và các quốc gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trƣớc hết là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin. Ví dụ muốn gửi một văn bản từ một ngƣời gửi A đến một ngƣời nhận B, A phải tạo cho văn bản đó một bản mã mật tƣơng ứng và thay vì gửi văn bản rõ thì A chỉ gửi cho B bản mã mật, B nhận đƣợc bản mã mật và khôi phục lại văn bản rõ để hiểu đƣợc thông tin mà A muốn gửi cho mình. Do văn bản gửi đi thƣờng đƣợc chuyển qua các con đƣờng công khai nên ngƣời ngoài có thể “lấy trộm” đƣợc, nhƣng vì đó là bản mật mã nên không đọc hiểu đƣợc; Còn A có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu đƣợc là do hai ngƣời đã có một thoả thuận về một chìa khóa chung, chỉ với khóa chung này thì A mới tạo đƣợc bản mã mật từ bản rõ và B mới khôi phục đƣợc bản rõ từ bản mã mật. Khóa chung đó đƣợc gọi là khóa mật mã. Để thực hiện đƣợc một phép mật mã, ta còn cần có một thuật toán biến bản rõ cùng với khóa mật mã thành bản mã mật và một thuật toán ngƣợc lại biến bản mật cùng với khóa mật mã thành bản rõ. Các thuật toán đó đƣợc gọi tƣơng ứng là thuật toán lập mã và thuật toán giải mã. Các thuật toán này thƣờng không nhất thiết phải giữ bí mật, mà cái luôn cần đƣợc giữ bí mật là khóa mật mã. Trong thực tiễn, có những hoạt động ngƣợc lại với hoạt động bảo mật là khám phá bí mật từ các bản mã “lấy trộm” đƣợc, hoạt động này thƣờng đƣợc gọi là mã thám hay phá khóa. 1.2. Các khái niệm cơ bản 1.2.1. Mật mã Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 4 Mật mã (Cryptography) là tập hợp mọi phƣơng pháp (hoặc quy tắc) biến đổi nào đó nhằm chuyển các thông báo (messages) dƣới dạng nhận thức đƣợc nội dung (nhƣ chữ viết, tiếng nói, hình vẽ, hình ảnh…) thành dạng bí mật mà những ngƣời ngoài cuộc không hiểu đƣợc nội dung nếu họ không biết đƣợc phƣơng pháp (hoặc quy tắc) biến đổi đó. 1.2.2. Mật mã học Mật mã học (Cryptology) là một bộ môn khoa học chuyên nghiên cứu về mật mã và thám mã. 1.2.3. Bản rõ Ta hiểu bản rõ (Plain text) tức là một bản thông báo có mang nội dung thông tin mà ngƣời đọc có thể hiểu đƣợc nó nói cái gì hoặc là nó có ý nghĩa rõ ràng. Bản rõ (bản thông báo) có thể tồn tại dƣới dạng chữ viết, tiếng nói, hình vẽ, biểu bảng… tƣơng ứng ta sẽ có khái niện mã ký tự, mã thoại, mã fax, mã dữ liệu… Bản rõ thƣờng đƣợc dùng biểu diễn (viết) dƣới dạng một dãy các chữ cái theo quy tắc cú pháp nào đó hoặc ký hiệu thuộc bảng chữ cái A hữu hạn đƣợc xác định trƣớc. Để trình bày, ta ký hiệu M là không gian các bản rõ (message space). Ví dụ: M có thể là gồm dãy nhị phân, các văn bản tiếng Việt, hoặc mã chƣơng trình của máy tính… 1.2.4. Bản mã Bản mã (Cipher text) thƣờng cũng đƣợc biểu diễn dƣới dạng một dãy các ký hiệu có thể cũng thuộc A nhƣng không theo một quy tắc cú pháp nào cả. Ngƣời ta nói rằng đó là dãy ngẫu nhiên. Ta ký hiệu tập tất cả các bản mã ứng với các bản rõ m là C. 1.2.5. Mã hóa Mã hóa (Encryption) là quá trình chuyển đổi thông tin từ bản rõ sang bản mã. Trong quá trình này thông tin trong bản rõ sẽ đƣợc ẩn đi và do đó bất kỹ một ngƣời nào đọc thông điệp này cũng không hiểu đƣợc trừ trƣờng hợp ngƣời đó có thể giải mã (PlainText → CipherText) 1.2.6. Giải mã Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 5 Là quá trình giải mã (Decryption) để lấy lại thông tin ban đầu, ngƣợc với quá trình mã hóa (CipherText → PlainText). 1.2.7. Khái niệm hệ mật mã Hệ mật mã đƣợc định nghĩa là một bộ năm (P, C, K, E, D), trong đó: - P (Plain text) là một tập hợp hữu hạn các các bản rõ có thể, nó đƣợc gọi là không gian bản rõ. - C (Cipher text) tập hữu hạn các bản mã có thể, nó còn đƣợc gọi là không gian các bản mã. Mỗi phần tử của C có thể nhận đƣợc bằng cách áp dụng phép mã hóa Ek lên một phần tử của P, với k ∈ K. - K (Key) là tập hữu hạn các khóa có thể hay còn gọi là không gian khóa. Đối với mỗi phần tử k của K đƣợc gọi là một khóa. Số lƣợng của không gian khóa phải đủ lớn để kẻ địch không có đủ thời gian để thử mọi khóa có thể (phƣơng pháp vét cạn). - E (Encryption) là tập các hàm lập mã - D (Decryption) là tập các hàm giải mã. Với mỗi k ∈ K, có một hàm lập mã ek ∈ E, ek : P → C và một hàm giải mã dk ∈ D, dk: C → P sao cho dk(ek(x)) = x , ∀x ∈ P Hình 1.1: Quá trình mã hóa và giải mã Hệ mật hiện đại cần phải đáp ứng đƣợc những yêu cầu sau: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 6 - Tính bảo mật (Confidentiality): đảm bảo dữ liệu đƣợc truyền đi một cách an toàn và không bị lộ nếu nhƣ ai đó cố tình muốn có đƣợc thông điệp gốc ban đầu. Chỉ những ngƣời đƣợc phép mới có khả năng đọc đƣợc nội dung thông tin ban đầu. - Tính xác thực (Authentication): giúp cho ngƣời nhận thông điệp các định đƣợc chắc chắn thông điệp mà họ nhận là thông điệp gốc ban đầu. Kẻ giả mạo không thể giả dạng một ngƣời khác hay nói cách khác không thể mạo danh để gửi thông điệp. Ngƣời nhận có khả năng kiểm tra nguồn gốc thông điệp mà họ nhận đƣợc. - Tính toàn vẹn (Integrity): ngƣời nhận thông điệp có thể kiểm tra thông điệp không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng thay thế dữ liệu ban đầu bằng dữ liệu giả mạo. - Tính không thể chối bỏ (Non - repudation): ngƣời gửi, ngƣời nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông điệp. 1.3. Phân loại các hệ mật mã Công nghệ thông tin phát triển, việc sử dụng máy tính gia tăng cùng với tốc độ phát triển mạnh mẽ của Internet càng làm tăng nguy cơ bị đánh cắp các thông tin độc quyền. Với mối đe dọa đó có nhiều biện pháp để đối phó song mã hóa là một phƣơng pháp chính để có thể bảo vệ các giá trị của thông tin điện tử. Có thể nói mã hóa là công cụ tự động, quan trọng nhất cho an ninh mạng và truyền thông. Có hai hình thức mã hóa đƣợc sử dụng phổ biến là mã hóa đối xứng (symmetric - key cryptography) và mã hóa bất đối xứng (asymmetric key cryptography). 1.3.1. Mã hóa đối xứng Thuật toán đối xứng hay còn gọi là thuật toán mã hóa cổ điển. Thuật toán này còn có nhiều tên gọi khác nhƣ thuật toán khóa bí mật, thuật toán đơn giản, thuật toán một khóa. Là thuật toán mà tại đó khóa mã hóa có thể tính toán ra đƣợc từ khóa giải mã. Trong rất nhiều trƣờng hợp, khóa mã hóa và khóa giải mã là giống nhau. Ƣu điểm: - Xử lý nhanh Nhƣợc điểm: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 7 - Các phƣơng pháp mã hóa cổ điển đòi hỏi ngƣời mã hóa và ngƣời giải mã phải cùng chung một khóa. Khi đó khóa phải giữ bí mật tuyệt đối, do vậy ta dễ dàng xác định đƣợc một khóa nếu biết khóa kia. - Hệ mã hóa đối xứng không bảo vệ đƣợc sự an toàn nếu có xác suất cao khóa ngƣời gửi bị lộ. Trong hệ khóa phải đƣợc gửi đi trên kênh an toàn nếu kẻ địch tấn công trên kênh này có thể phát hiện ra khóa. - Vấn đề quản lý và phân phối khóa là khó khăn và phức tạp khi sử dụng hệ mã hóa cổ điển. Ngƣời gửi và ngƣời nhận luôn luôn thống nhất với nhau về vấn đề khóa. Việc thay đổi khóa là rất khó và rất dễ bị lộ. - Khuynh hƣớng cung cấp khóa dài mà nó phải đƣợc thay đổi thƣờng xuyên cho mọi ngƣời trong khi vẫn duy trì cả tính an toàn lẫn hiệu quả chi phí sẽ cản trở rất nhiều tới sự phát triển của hệ mật mã cổ điển. 1.3.2. Mã hóa bất đối xứng Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa đối xứng, năm 1976 Diffie và Hellman đã đƣa ra khái niệm về hệ mật mã khóa công khai và một phƣơng pháp trao đổi công khai để tạo ra một khóa bí mật chung mà tính an toàn đƣợc bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính “logarit rời rạc”). Hệ mật mã khóa công khai hay còn đƣợc gọi là hệ mật mã phi đối xứng sử dụng một cặp khóa, khóa mã hóa còn gọi là khóa công khai (publickey) và khóa giải mã đƣợc gọi là khóa bí mật hay khóa riêng (private key). Trong hệ mật này, khóa mã hóa khác với khóa giải mã. Về mặt toán học thì từ khóa công rất khó tính đƣợc khóa riêng. Biết đƣợc khóa này không dễ dàng tìm đƣợc khóa kia. Khóa giải mã đƣợc giữ bí mật trong khi khóa mã hóa đƣợc công bố công khai. Một ngƣời bất kỳ có thể sử dụng khóa công khai để mã hóa tin tức, nhƣng chỉ có ngƣời nào có đúng khóa giải mã mới có khả năng xem đƣợc bản rõ. Ngƣời gửi A sẽ mã hóa thông điệp bằng khóa công của ngƣời nhận và ngƣời nhận B sẽ giải mã thông điệp với khóa riêng tƣơng ứng của mình. Quá trình này đƣợc mô tả trong hình 1.2 và 1.3. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 8 Hình 1.2: Mã hóa thông điệp sử dụng khóa công khai P Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận Việc phát minh ra phƣơng pháp mã công khai tạo ra một cuộc “cách mạng” trong công nghệ an toàn thông tin điện tử. Nhƣng thực tiễn triễn khai cho thấy tốc độ mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất nhiều so với hệ mã hóa đối xứng. Ví dụ, để đạt đƣợc độ an toàn nhƣ các hệ mã đối xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn lần. Do đó, thay bằng việc mã hóa văn bản có kích thƣớc lớn bằng lƣợc đồ khóa công khai thì văn bản này sẽ đƣợc mã hóa bằng một hệ mã đối xứng có tốc độ cao nhƣ DES, IDEA,…sau đó khóa đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã hóa sử dụng mật mã khóa công khai. Phƣơng pháp này rất khả thi trong việc mã và giải mã những văn bản có kích thƣớc lớn nhƣ đƣợc mô tả trong hình 1.4 và 1.5. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 9 Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và khóa công khai P để mã khóa bí mật S. Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và khóa riêng P để giải mã khóa bí mật S. Ƣu và nhƣợc điểm của hệ mật mã khóa công khai Vấn đề còn tồn đọng của hệ mật mã khóa đối xứng đƣợc giải quyết nhờ hệ mật mã khóa công khai. Chính ƣu điểm này đã thu hút nhiều trí tuệ vào việc đề xuất, đánh giá các hệ mật mã công khai. Nhƣng do bản thân các hệ mật mã khóa công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhƣợc điểm này làm cho các hệ mật mã khóa công khai khó đƣợc dùng một cách độc lập. Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khóa mã công khai đƣợc công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khóa Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 10 đƣợc công bố có đúng là của đối tƣợng cần liên lạc hay không?” là một kẽ hở có thể bị lợi dụng. Vấn đề xác thực này đƣợc giải quyết cũng chính bằng các hệ mật mã khóa công khai. Nhiều thủ tục xác thực đã đƣợc nghiên cứu và sử dụng nhƣ Kerberos, X.509… Một ƣu điểm nữa của các hệ mật mã khóa công khai là các ứng dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký để bảo đảm tính toàn vẹn của một văn bản đƣợc giải quyết. 1.4. Tiêu chuẩn đánh giá hệ mật mã Để đánh giá một hệ mật mã ngƣời ta thƣờng đánh giá thông qua các tính chất sau: Độ an toàn: Một hệ mật đƣợc đƣa vào sử dụng điều đầu tiên phải có độ an toàn cao. Ƣu điểm của mật mã là có thể đánh giá đƣợc độ an toàn thông qua độ an toàn tính toán mà không cần phải cài đặt. Một hệ mật đƣợc coi là an toàn nếu để phá hệ mật mã này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian vô cùng lớn, không thể chấp nhận đƣợc. Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh. Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này đƣợc truyền công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã. 1.5. Hệ mật mã RSA Có nhiều hệ thống khóa công khai đƣợc triển khai rộng rãi nhƣ hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khóa Diffie-Hellman và nổi lên trong những năm gần đây là hệ đƣờng cong Elliptic. Trong số các hệ mật mã trên thì hệ RSA là hệ đƣợc cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khóa công khai. Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã đƣợc công bố lần đầu tiên vào tháng 8 năm 1977 trên tạp chí Scientific American. Hệ mật mã RSA đƣợc sử dụng rộng rãi trong thực tiễn đặc biệt cho mục đích bảo mật và xác thực dữ Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 11 liệu số. Tính bảo mật và an toàn của chúng đƣợc bảo đảm bằng độ phức tạp của một bài toán số học nổi tiếng là bài toán phân tích số nguyên thành các thừa số nguyên tố. Hệ mật mã RSA đƣợc sử dụng để cung cấp sự bảo mật và đảm bảo tính xác thực của dữ liệu số. Hiện nay RSA đƣợc sử dụng trong nhiều hệ thống thƣơng mại. Các dịch vụ web server và web browser sử dụng nó để đảm bảo an toàn việc truyền thông web, nó đƣợc sử dụng để đảm bảo bảo mật và xác thực của Email, đảm bảo an toàn cho các phiên truy nhập từ xa và là bộ phận quan trọng của các hệ thống thanh toán thẻ tín dụng điện tử. Tóm lại, RSA thƣờng đƣợc sử dụng trong các ứng dụng cần sự bảo đảm an toàn và bảo mật dữ liệu số. 1.5.1. Mô tả hệ mật RSA Hệ mật mã RSA sử dụng các tính toán trong Zn, trong đó n là tích của hai số nguyên tố phân biệt p, q và (n) = (p-1)(q-1). Mô tả hình thức của hệ mật này nhƣ sau: Hệ mật mã RSA đƣợc mô tả nhƣ sau: Cho n = p*q với p, q là số nguyên tố lớn. Đặt P = C = Zn Chọn b nguyên tố cùng nhau với (n), (n) = (p-1)(q-1) Ta định nghĩa K = {(n, b, a): a*b 1mod (n)} Trong đó (n, b) là công khai, a là bí mật Với mỗi K = (n, a, b), mỗi x ∈ P, y ∈ C, định nghĩa: Hàm mã hóa: y = xb mod n Hàm giải mã: x = ya mod n trong đó (x, y Zn). Các giá trị n, b công khai còn các giá trị p, q, a giữ bí mật. Ta hãy kiểm tra xem các phép mã và giải mã có phải là các phép toán nghịch đảo của nhau hay không. Vì ab 1(mod (n)) nên ta có ab = t. (n) + 1 với một số nguyên t Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên 1 nào đó. http://www.lrc-tnu.edu.vn/ 12 Giả sử x Zn ; a. Trƣờng hợp (x,n) =1 Khi đó ta có: x (n) mod n = 1. ya modn (xb)a mod n xt (n)+1 ((x (n) mod n mod n)t ).x mod n 1t .x (mod n) x (mod n) b. Trƣờng hợp (x,n)= d>1 d = p hoặc d = q. Giả sử d = p, khi đó x = hp với 0 < h < q và (h,n) = 1, suy ra: ya modn (xb)a mod n Do (h,n) = 1 nên hab modn (hab modn)( pab modn) modn h Bên cạnh đó, pabmodn = pabmod(p.q) pab mod q p.p (n) p.p (p). (q) p.(p Vậy ya modn mod q (p) ) mod q (q) mod q p h.p modn = h.p = x. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 13 1.5.2. Thực thi hệ RSA Chọn 2 số nguyên tố lớn p và q (pq) Tính n = p*q Bản rõ m Tính (n) = (p - 1)(q - 1) Khóa công khai (e, n) Chọn khóa công khai e (0 < e < (n), gcd (e, (n)) = 1 ) c = me mod n Bản mã c Tính khóa bí mật d d = e-1 mod n (dùng thuật toán Euclide) Khóa bí mật (d, n) m = cd mod n Hình 1.6: Sơ đồ biểu diễn thuật toán mã hóa RSA Bản rõ gốc m mm Sau đây là một ví dụ về cách thức thực hiện của hệ RSA (tất nhiên không mật). Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 14 Giả sử Bob chọn p = 101 và q = 113. Khi đó n = 11413 và (n) = 100 x 112 = 11200. Bob chọn ngẫu nhiên một số b và kiểm tra điều kiện UCLN ( (n), b) = 1 bằng thuật toán Euclide. Giả sử Bob chọn b = 3533, khi đó theo thuật toán Euclid mở rộng: b-1 = 6597 mod 11200. Bởi vậy, số mũ bí mật để giải mã của Bob là a = 6597. Bob sẽ công bố n = 11413 và b = 3533 trong một danh bạ khóa công khai. Bây giờ, giả sử Alice muốn gửi bản rõ x = 9726 tới Bob. Cô ta sẽ tính: 97263533 mod 11413 = 5761 rồi gửi bản mã 5761 trên kênh. Khi Bob nhận đƣợc bản mã 5761, anh ta sử dụng số mũ bí mật a để tính ra x: 57616597mod 11413 = 9726. 1.5.3. Độ an toàn của hệ RSA a. Bài toán phân tích số và việc phá hệ mật RSA Cách tấn công dễ thấy nhất đối với hệ mật RSA là ngƣời thám mã sẽ cố gắng phân tích n ra các thừa số nguyên tố n = p*q. Nếu thực hiện đƣợc phép phân tích này thì có thể dễ dàng tính đƣợc (n) = (p - 1).(q - 1) và do đó tìm đƣợc thông tin cửa sập d tƣơng ứng với thông tin mã hóa E bằng thuật toán Euclude. Nhƣ vậy chúng ta thấy ngay việc phá hệ mật RSA là dễ hơn bài toán phân tích số nguyên ra thừa số nguyên tố tuy nhiên cũng chƣa có một kết quả nào chỉ ra rằng bài toán phân tích số là thực sự khó hơn cho nên ngƣời ta thƣờng thừa nhận rằng bài toán phá hệ RSA là tƣơng đƣơng với bài toán phân tích số nguyên thành thừa số nguyên tố. Để đảm bảo tính khó phân tích ra thừa số của n = p*q thì yêu cầu đầu tiên là p, q là các số nguyên tố lớn và là số nguyên tố “mạnh”. Khái niệm “mạnh” ở đây chỉ bắt nguồn từ ý nghĩa khó phân tích do vậy nó sẽ đƣợc bổ xung cùng với kết quả có đƣợc của khả năng phân tích số. Nói một cách khác là khái niệm “mạnh” bao gồm sự loại trừ các lớp số nguyên tố mà với chúng tồn tại thuật toán phân tích hiệu quả, ta có thể biết đến một khái niệm sơ khai của tính “mạnh” đó là các số nguyên tố p mà p - 1 và p + 1 có chứa thừa số nguyên tố lớn. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 15 Vì thế để hệ RSA đƣợc coi là an toàn thì nhất thiết n = p*q phải là một số đủ lớn để việc phân tích nó sẽ không có khả năng về mặt tính toán. Các thuật toán phân tích hiện thời có khả năng phân tích các số tới 130 chữ số thập phân. Vì vậy để đảm bảo an toàn nên chọn các số p và q có khoảng 100 chữ số, khi đó n sẽ có tới 200 chữ số. Ngoài ra các số p, q cần phải thoả mãn một số yêu cầu cụ thể nữa. b. Việc tấn công hệ mật RSA khác phương pháp phân tích số. Một kết quả thú vị là một thuật toán bất kỳ để tính số mũ giải mã d đều có thể đƣợc dùng nhƣ một chƣơng trình con trong thuật toán xác suất kiêu Las Vegas để phân tích n. Nhƣ vậy mặc dù rằng nếu d bị lộ thì việc phân tích n cũng không còn ý nghĩa theo quan điểm phá hệ mật tuy nhiên kết quả trên dù sao cũng cho ta một thuật toán phân tích số n khi biết d với xác suất thành công không quá ½ của mỗi lần chọn số ngẫu nhiên làm đầu vào cho thuật toán. 1.6. Thám mã 1.6.1. Khái niệm Thám mã là quá trình khôi phục lại bản rõ hoặc khóa khi chỉ có bản mã tƣơng ứng cho trƣớc (không biết khóa và quy tắc mã/dịch) gọi là thám mã. Ngƣời làm công tác thám mã đƣợc gọi là ngƣời mã thám (Cryptanalysist) hay gọi là mã thám viên. Tổ chức làm công tác thám mã đƣợc gọi là đơn vị mã thám. Mã thám là một bộ phận không thể thiếu của ngành tình báo điện tử. Hầu hết các quốc gia đều có bộ phận tình báo điện tử này, nhƣng sự phát triển và hiệu quả của nó lại phụ thuộc vào trình độ khoa học - công nghệ của từng nƣớc. Nƣớc nào có trình độ khoa học - công nghệ càng cao thì khả năng của công tác thám mã nói riêng, tình báo điện tử nói chung càng mạnh. Mục tiêu của thám mã: Mục tiêu của thám mã (phá mã) là tìm những điểm yếu hoặc không an toàn tổng phƣơng pháp mật mã hóa.Thám mã có thể đƣợc thực hiện bởi những kẻ tấn công ác ý, nhằm làm hỏng hệ thống; hoặc bởi những ngƣời thiết kế ra hệ thống với ý định đánh giá độ an toàn của hệ thống. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 16 Để nghiên cứu thám mã đƣợc các bản mã truyền thống, ngƣời mã thám phải nghiên cứu các đặc trƣng cơ bản của bản rõ. Nói một cách khác, trong mọi ngôn ngữ tự nhiên đều có những đặc trƣng bất biến mà mã thám viên cần nắm vững để phục vụ việc phân tích các bản mã. Đó là quy luật tần số, quy luật trùng lặp, quy luật văn phong, v.v... a. Tần số (Frequency) Ngƣời ta định nghĩa tần số xuất hiện một ký tự, một nhóm ký tự, một từ hay một vần v.v... trong một văn bản là số lần xuất hiện của ký tự, nhóm ký tự, từ, vần đó trong văn bản đã cho. Ngƣời ta có thể tính tần số từ một hoặc nhiều văn bản (thông báo) của một loại ngôn ngữ nào đó để rút ra những quy luật riêng của ngôn ngữ đó. Có nhiều loại tần số nhƣ: Tần số từng ký tự (tần số đơn), tần số từng cặp 2 ký tự (tần số bộ đôi). Ngay tần số bộ đôi cũng có nhiều cách tính khác nhau nhƣ: Tần số bộ đôi thông thƣờng; Tần số bộ đôi móc xích (concatenate); Tần số bộ k ký tự (k = 1, 2, 3, 4...). Ngoài ra còn có: tần số từ, tần số vần chữ cái (ví dụ - tion, trong tiếng Anh), tần số các nhóm nguyên âm, tần số các ký tự đứng đầu từ, tần số ký tự đứng cuối từ Một điểm cần lƣu ý là mỗi loại ngôn ngữ tự nhiên khác nhau có các tần số không giống nhau. Ngay trong một ngôn ngữ, các loại văn bản có tính chất văn học sẽ có các tần số không hoàn toàn giống nhau. Những tính chất đó ngƣời ta gọi là các đặc trƣng ngôn ngữ. Ta lƣu ý rằng, các văn bản khác nhau thƣờng có độ dài (số lƣợng các ký tự trong văn bản đó) khác nhau. Do đó khái niệm tần số nhƣ định nghĩa trên có nhiều trƣờng hợp rất khó trong thực hành. Vì vậy ngƣời ta đƣa ra khái niệm tần số tƣơng đối (tần suất - relative frequency). Tần suất của một ký tự x nào đó trong văn bản là số lần xuất hiện ký tự đó chia cho độ dài của văn bản đó. Còn tần suất bộ đôi móc xích xy nào đó trong một văn bản là số lần xuất hiện bộ đôi đó có trong văn bản chia cho độ dài của văn bản trừ đi một. Ví dụ, giả sử văn bản có độ dài n, khi đó số lƣợng bộ đôi móc xích là n-1 , nếu số lần xuất hiện cặp “nh” là m lần thì tần suất của cặp “nh” sẽ là mnh / (n-1). Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 17 b. Sự trùng lặp Là một quy luật của bất cứ ngôn ngữ tự nhiên nào. Đó là đặc trƣng thứ 2 của ngôn ngữ đƣợc thể hiện trên các văn bản thông báo (sau đây gọi là bản rõ). Ngoài quy luật tần số thì quy luật trùng lặp rất cần thiết và có thể nói chúng không thể thiếu đối với công tác thám mã truyền thống. c. Văn phong (Quy luật hành văn trong văn bản). Trong thực tế, các loại văn bản khác nhau sẽ có văn phong không giống nhau do phụ thuộc vào thói quen của từng ngƣời soạn thảo ra văn bản đó. Đây cũng là quy luật đáng lƣu ý trong việc thám mã. Văn phong đƣợc chia thành các dạng: - Dạng đầu văn bản (gọi là quy luật đầu điện): Ví dụ: Công điện số…, báo cáo số…, kính gửi ông…, căn cứ Công văn số…, phúc đáp Công văn số… - Dạng thân văn bản (quy luật thân điện): Văn bản thƣờng có chia theo từng mục hoặc không chia theo mục; Nội dung văn bản có khác nhau tuỳ theo từng loại nội dung nhƣ ngoại giao, tình báo, quân sự, kinh tế, chính trị v.v...; - Dạng cuối văn bản (quy luật cuối điện): Đoạn kết thúc một văn bản thƣờng cũng có những quy luật: Mỗi ngƣời soạn thảo văn bản khác nhau sẽ có quy luật khác nhau. Ví dụ, thƣờng chấm hết thì có chữ stop, stopend; câu chào Salam và sau cùng là tên, chức vụ, cấp bậc của ngƣời gửi thông báo, v.v... Những thông tin này đôi khi rất quan trọng, giúp nhà mã thám thành công trong nhiệm vụ của mình. d. Quy luật tình huống Nhƣ đã đƣợc trình bày ở phần trƣớc, thám mã là tìm mọi biện pháp có thể để khôi phục lại bản rõ và/hoặc khóa mã từ một số bản mã cho trƣớc. Điều này cho thấy thám mã là một loại công việc khó khăn và phức tạp, nó vừa mang tính khoa học lại vừa mang tính nghệ thuật. Rõ ràng, khoa học về mật mã càng phát triển thì kỹ thuật thám mã càng gặp nhiều khó khăn. Để chống lại việc thám mã của đối phƣơng, các nhà sản xuất mật mã phải thiết kế các thuật toán mã hóa và các loại khóa mã sao cho các thông tin về khóa mã Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 18 và bản rõ không lộ rõ trên bản mã. Tuy nhiên, do đặc điểm của bản thân mật mã và việc phân cấp sử dụng, nên trên thực tế, mật mã luôn chứa đựng những mâu thuẫn nội tại mà các nhà mã thám vẫn có thể dựa vào đó khai thác, khám phá, đó là: - Trình độ về mật mã ở các nước khác nhau sẽ khác nhau. Hiện nay, bên cạnh những nƣớc có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít nƣớc vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nƣớc dùng mật mã truyền thống tƣơng đối đơn giản. Và ngay trong cùng một nƣớc, các lực lƣợng, ngành khác nhau lại dùng các hệ mã khác nhau. Ví dụ, mật mã dùng trong quân sự khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã dùng trong ngân hàng, tài chính v.v... - Thông thường, những nhà lập mã không phải là người sử dụng mật mã. Các nhà lập mã có trình độ cao trong lĩnh vực mật mã nhƣng những ngƣời sử dụng mật mã lại không cần nhƣ vậy. Ngƣời sử dụng thƣờng có xu hƣớng muốn đơn giản hóa công việc của mình, chính vì vậy họ dễ vi phạm các qui tắc đảm bảo an toàn mật mã. - Khóa mã không được bảo vệ cẩn thận theo quy định, và một sơ hở nhỏ cũng đủ tạo khe hở cho các nhà mã thám lấy cắp đƣợc khóa mà mật mã viên không hề biết. Vì vậy, khóa đó vẫn đƣợc sử dụng và các nhà mã thám khi nhận đƣợc các bản mã chỉ việc dùng khóa đó mà dịch bình thƣờng. - Độ dư ngôn ngữ cũng là một quy luật rất quan trọng của ngôn ngữ tự nhiên. Độ dƣ ngôn ngữ tồn tại trong chính bản mã của nhiều luật mã khác nhau, đặc biệt là trong hệ mã truyền thống. - Tiêu chuẩn bản rõ: chính là quy luật bản rõ đƣợc thể hiện qua quy luật tần số, quy luật trùng lặp.... Đây là một yếu tố trọng yếu giúp cho nhà mã thám thành công không những đối với mật mã truyền thống mà cả đối với mật mã khóa đối xứng nói chung (nhƣ mã DES, IDEA, AES v.v...) * Tiêu chuẩn bản rõ Tiêu chuẩn bản rõ là một thành phần không thể thiếu đối với công tác thám mã, đặc biệt là thám mã hiện đại. Vậy tiêu chuẩn bản rõ là gì? Ta biết rằng, các Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 19 ngôn ngữ tự nhiên đều có quy luật chung nhất đó là quy luật tần số và quy luật trùng lặp. Hai quy luật này đã bị biến mất đối với bản mã. Với phƣơng pháp mã hóa phức tạp thì hai quy luật này hoàn toàn bị biến mất. Một trong những điều khác nhau cơ bản của bản rõ và bản mã là ở chỗ đó. Giả sử nhà mã thám nhận đƣợc một (hoặc một số) bản mã và bằng cách nào đó, họ đã biết đƣợc một vài thông tin về thuật toán mã hóa (và dịch). Tuy không biết đƣợc mã/dịch cụ thể nhƣng nhà mã thám có thể biết đƣợc tất cả khả năng có thể của khóa. Từ đó, ngƣời ta thử cho đầu vào (Input) là bản mã và “khóa” (dự đoán) lấy trong không gian khóa rồi dịch thử. Kết quả đầu ra (output) sẽ là một dãy nào đó (có thể đọc đƣợc có nghĩa hoặc cũng có thể không có nghĩa) mà ta vẫn gọi là “bản rõ”. Nhƣng bản rõ này chƣa thể hiện đƣợc quy luật tần số và trùng lặp. Nó chỉ thể hiện đƣợc quy luật tần số và trùng lặp nếu khóa mà ta đƣa vào là đúng hoặc có sai cũng chỉ sai một vài ký tự. Nhƣng làm cách nào để biết đƣợc quy luật tần số và trùng lặp đƣợc thể hiện trên “bản rõ” mà ta vừa tạo ra (từ khóa và bản mã ban đầu (gọi là bản mã gốc). Do số liệu khóa đƣa vào là rất lớn nên dùng mắt thƣờng để quan sát xem “bản rõ” nào thể hiện đƣợc quy luật tần số và trùng lặp là không khả thi về khía cạnh thời gian tìm kiếm. Tiêu chuẩn bản rõ giúp ta tự động xác định “bản rõ” nào thể hiện quy luật tần số và trùng lặp, “bản rõ” nào không. Nhờ tiêu chuẩn bản rõ, nhà mã thám có thể chia không gian khóa thành hai nhóm, một nhóm cho phép tạo ra đƣợc “bản rõ” có quy luật tần số và trùng lặp, một nhóm gồm các khóa còn lại. Trong thực tế, nhóm gồm các khóa cho phép tạo ra “bản rõ” có quy luật (ta gọi là bản rõ có nghĩa) là rất ít so với nhóm còn lại. Từ đó chúng ta tiến hành kiểm tra tiếp và kết hợp với mắt thƣờng, chúng ta có thể giải ra đƣợc bản rõ ban đầu (bản rõ gốc) cần tìm và khóa mà ta mong muốn. Có nhiều phƣơng pháp khác nhau để tạo ra các Tiêu chuẩn bản rõ. Do không gian khóa thƣờng rất lớn, nên cần có một tiêu chuẩn bản rõ có tốc độ tính toán càng nhanh và càng chính xác càng tốt, trong đó tốc độ tính toán đƣợc ƣu tiên số một 1.6.2. Các bước cơ bản để tiến hành thám mã Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 20 Khi nhận đƣợc một số bản mã, các nhà thám mã cần thực hiện một loạt các bƣớc nghiên cứu nhằm khôi phục đƣợc bản rõ (hoặc khóa) từ các bản mã nhận đƣợc. Ta tìm hiểu các bƣớc cơ bản nhất đó là: Bƣớc 1: Phân loại bản mã Sau khi nhận đƣợc một số bức điện mã, các nhà phân tích mật mã có thể phân loại xem những bức điện mã có cùng một loại mã pháp, có cùng một loại khóa mã. Mặc dù chúng ta chƣa biết đƣợc mã pháp (phƣơng pháp mã hóa) của các bức điện đó, nhƣng chúng vẫn phân loại (phân lớp) đƣợc. Đây là một bƣớc quan trọng quyết định sự thành công hay thất bại của mã thám nên rất mất nhiều thời gian. Nếu việc phân loại chính xác thì sẽ thuận lợi cho các bƣớc tiến hành tiếp theo. Ngƣợc lại, nếu phân loại thiếu chính xác thì sẽ gây khó khăn cho các bƣớc sau đó, thậm chí thất bại. Ngƣời ta có nhiều phƣơng pháp thực thi giai đoạn này, một trong số đó là áp dụng kỹ thuật phân lớp các đối tƣợng. Ý tƣởng của bài toán phân lớp nhƣ sau: Giả sử ta nhận đƣợc m bản mã M1, M2,..., Mm với m ≥ 2. Mỗi bản mã ta gọi là một đối tƣợng. Tập hợp m bản mã (các đối tƣợng) ta ký hiệu là G. Vậy G = {M1, M2,..., Mm}. Ứng với mỗi đối tƣợng ta cần tìm ra các đặc trƣng tham số. Giả sử đối tƣợng Mi có pi đặc trƣng. Ở đây, để cho đơn giản, ta giả thiết p1 = p2 = ...= pm= p. Vấn đề đặt ra là hãy phân tập hợp G thành k lớp không giao nhau mà ta ký hiệu là G1, G2, ..., Gk, k > 1 sao cho: (i) Gi khác 0 i = 1,k (ii) Gi 1 Gj i khác j (iii) G1 c G2 c...c YGk = G và sao cho sai sót trong phân lớp là bé nhất có thể đƣợc. Để thực hiện việc phân lớp các đối tƣợng ta cần đƣa ra một độ đo “khoảng cách” giữa các đối tƣợng. Các đối tƣợng “gần gũi” nhau sẽ đƣợc gán cho cùng một lớp. Bƣớc 2 : Xác định mã pháp Sau khi hoàn thành việc phân lớp (phân loại mã pháp) ở bƣớc 1, chúng ta tiến hành xác định phƣơng pháp mã dịch ứng với từng lớp cụ thể (cần chú ý rằng, Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 21 thƣờng thì chúng ta tiến hành xác định mã pháp đối với các bản mã có nhiều đặc điểm nhất theo quan điểm của các nhà thám mã). Đây là một khâu rất quan trọng của công tác thám mã truyền thống. Tuy nhiên đối với một số hệ mật đối xứng hiện đại nhƣ mã DES, 3DES, AES, IDEA, PGP... thì bƣớc này coi nhƣ đƣợc bỏ qua bởi ngay từ đầu bản mã, ngƣời ta đã chỉ ra rằng bản mã đó thuộc loại bản mã pháp nào. Ở đây chúng ta chỉ trình bày cách thức xác định mã pháp đối với các luật mã truyền thống (bƣớc này đƣợc bỏ qua đối với những hệ mật mà thuật toán mã hóa - phƣơng pháp mã - đƣợc công khai hoàn toàn). Bƣớc này bao gồm các công việc sau đây: a. Tính tần số Mục đích của việc tính tần số là để phát hiện tính quy luật không ngẫu nhiên tồn tại trong bản mã. Có rất nhiều loại tần số khác nhau cần tính, mà đối với mỗi mã pháp có thể tồn tại tính không ngẫu nhiên (có quy luật) đặc thù riêng cho nó. Theo kinh nghiệm phân tích mà ngƣời ta tiến hành tính tần số loại phù hợp nhất thông qua đó có thể bộc lộ rõ nhất tính quy luật (không ngẫu nhiên) trong bản mã. Việc tính tần số thƣờng gồm: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 22 - Tần số đơn: Tần số đơn là tần số từng kí tự một trong bản mã. Sau khi có đƣợc kết quả tính tần số đơn, ta tiến hành sắp xếp lại thứ tự các ký tự theo tần số từ cao đến thấp. Cũng có thể lập bảng tần xuất bằng cách chia tần số từng ký tự cho độ dài bản mã cần tính để xem tần số tƣơng đối của chúng. - Tần số bộ đôi móc xích (concatenate frequency of pairs) Tần số bộ đôi móc xích là tần số bộ đôi nhƣng các cặp kề đè lên nhau một ký tự. Mục đích của việc tính tần số bộ đôi móc xích là để xem quan hệ phụ thuộc giữa ký tự sau với ký tự kề ngay trƣớc đó nhƣ thế nào, (ta thƣờng gọi là quan hệ xích Makov cấp 1). Từ đó có thể ƣớc lƣợng đƣợc xác suất xuất hiện một ký tự nào đó khi biết trƣớc ký tự đứng ngay trƣớc nó. - Tần số bộ đôi thường: Tần số bộ đôi thƣờng là tần số bộ đôi rời nhau, ví dụ: cho đoạn văn : Vi ee tj na m thì tần số bộ đôi thƣờng gồm: Vi: xuất hiện 1 lần ee: xuất hiện 1 lần tj: xuất hiện 1 lần na: xuất hiện 1 lần Ký tự cuối cùng đƣợc bỏ qua (chỉ gồm có 4 bộ đôi). Trong khi đó, tần số bộ đôi móc xích sẽ đƣợc thể hiện là: Vi, ie, ee, et, tj, jn, na, am gồm 8 bộ đôi. Lưu ý: + Số tất cả các bộ đôi móc xích trong văn bản độ dài n là n – 1 + Còn số tất cả các “bộ đôi thƣờng” là: [ ] Trong đó ký hiệu [x] là số nguyên lớn nhất nhƣng bé hơn hoặc bằng x. - Tần số bộ 3, 4, 5... Tuỳ theo từng trƣờng hợp cụ thể đôi khi chúng ta phải tính tần số bộ 3, bộ 4, bộ 5… Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 23 b. Tính trùng mã Tính trùng mã tức là tính tần số trùng lặp của các dãy ký tự liền nhau trong bản mã. Thƣờng là tính trùng lặp 3 ký tự (bộ 3), 4 ký tự (bộ 4), 5 ký tự (bộ 5)... có thể xuất hiện trong bản mã và vị trí của chúng trong bản mã đó. Khi tính trùng mã (các bộ) ta phải quan tâm các tham số sau đây: - Tần số trùng mã (trùng lặp) - Độ dài trùng lặp - Vị trí các trùng lặp - Khoảng cách giữa các trùng lặp - Trùng mã trong một bản mã và trong các bản mã khác nhau. Những tham số trên đây rất có ích trong việc xác định mã pháp. c. Tần số định kỳ: Ngoài việc tính tần số đơn, bộ đôi móc xích, bộ đôi thƣờng v.v... và trùng mã (sự trùng lặp) trong bản mã hoặc các bản mã, trong nhiều trƣờng hợp ngƣời ta phải tính tần số định kỳ. Giả sử ta có bản mã M độ dài n nào đó. Thƣờng n khá lớn và càng lớn càng tốt. Bây giờ ta lập bảng k cột (k $ 2 và thƣờng thì k $ 3) và n/k hàng. Sau đó, ta viết bản mã lần lƣợt trái qua phải và viết từ trên xuống dƣới cho đến hết thì dừng. Bây giờ ta tiến hành tính tần số đơn theo cột từ cột 1 đến cột k. Nhƣ vậy ta thƣờng phải tính toán tần số các “định kỳ” khác nhau lần lƣợt k = 3, 4, 5..., 10. Tần số nhƣ vậy đƣợc gọi là tần số định kỳ. Trong nhiều trƣờng hợp tần số đơn, đôi, bộ 3 của bản mã tƣơng đối san bằng (tức là không vi phạm các tiêu chuẩn 3s và c2) nhƣng tần số định kỳ lại có quy luật rất rõ. d. Tần số bộ đôi dọc và bộ đôi dọc đồng tự. Nếu ta viết hai bản mã lần lƣợt bản mã này dƣới bản mã kia. Ví dụ hai bản mã M1 = m11, m12 = m1n1 và M2 = m21m22 …m2n2 Ta có M1 = m11m12m13…m1n1 M2 = m21m22m23…m2n1 …m2n2 Ta cắt phần thừa là m2n1+1, …m2n2 (giả sử n1 = n2), và ta kí hiệu độ dài hai bản mã trùng khớp nhau là n. Ta tiến hành tính tần số từng cặp (m1k …m2k), với k = 1, 2, Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 24 …, n. Ta sẽ có tần số bội đôi và bảng này đƣợc gọi là bảng tần số bộ đôi dọc. Các phần tử trên đƣờng chéo chính là tần số của các bộ đôi dọc đồng tự. e. Phân tích kết quả tính các tần số và trùng mã Bƣớc này dựa vào các kết quả tính các loại tần số, trùng mã để kết luận bản mã (các bản mã) đó thuộc loại mã pháp nào. Để đánh giá độ chênh lệch tần số hoặc tính độc lập của các ký tự trong bản mã, ngƣời ta thƣờng dùng các tiêu chuẩn thống kê toán học, chẳng hạn tiêu chuẩn 3s, tiêu chuẩn c2 hoặc tiêu chuẩn MLR (Most Likelihood Ratio- tỷ số hợp lý cực đại). Nói chung việc xác định mã pháp là công việc rất phức tạp, nó phụ thuộc một phần vào trình độ và kinh nghiệm của các mã thám viên. Có nhiều trƣờng hợp thóang nhìn bản mã ngƣời ta đã dự đoán đƣợc phƣơng pháp mã nhƣng cũng có rất nhiều trƣờng hợp phải nghiên cứu rất công phu mà độ rủi ro không phải là không có. f. Xác định ngôn ngữ đƣợc dùng Đây cũng là một bƣớc giúp cho việc thám mã đột phá thành công. Bƣớc 3. Thám mã Giả sử đã xác định đƣợc mã pháp tại bƣớc thứ 2 trên đây, nay chuyển sang nghiên cứu, phân tích bản mã (thám mã). Bƣớc này cũng có hai công đoạn: a. Thám trực tiếp Nếu mã pháp thuộc loại truyền thống đã biết nhƣ các mã pháp thủ công hoặc đƣợc mã bằng một máy mã cụ thể nào đó mà ta đã có thuật toán thám thì có thể tiến hành thám trực tiếp luôn (thực hiện thủ công và sau đó có thể tự động hóa bằng lập trình trên máy tính). * Thám mã thủ công Bằng cách thống kê tần suất các ký tự trong bản mã ta có thể dự đoán ký tự tƣơng ứng trong bản rõ. Dựa vào đó ta xác định đƣợc khóa k. Tiến hành giải mã với khóa k vừa tìm đƣợc. * Thám mã có sự trợ giúp của máy tính Hệ mã dịch vòng có số khóa ít nên hoàn toàn có thểthám mã bằng cách thử tất cả các khóa có thể. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 25 b. Xây dựng phƣơng pháp thám mã Nếu mã pháp thuộc loại mới, công việc yêu cầu phức tạp hơn là phải xây dựng phƣơng pháp thám thì có hai phƣơng pháp thám là phƣơng pháp phân tích và phƣơng pháp dự đoán “Từ phỏng chừng”. Phương pháp phân tích: đƣợc sử dụng trong trƣờng hợp nhà mã thám đã biết đƣợc cấu trúc khóa mã đã đƣợc sử dụng làm “mầm khóa” (key seed) để mã hóa bản mã này. Khi đó có nhiều kiểu để xác định khóa có thể, ví dụ: phƣơng pháp “thử sai”, phƣơng pháp “lƣợng sai”, phƣơng pháp “những phần tử tách biệt”, phƣơng pháp “tuyến tính”. Tóm lại tuỳ theo thuật toán mã hóa của bản mã nhƣ thế nào mà chọn phƣơng pháp phân tích nào cho hợp lý. Phương pháp “từ phỏng chừng”: Phƣơng pháp này chủ yếu là dựa vào thông tin tiên nghiệm về khóa và thông tin về bản rõ mà đối tƣợng sử dụng (quy luật ngôn ngữ) để dự đoán khóa đƣợc sử dụng. Nội dung của phƣơng pháp này là dự đoán cụm từ có thể xuất hiện trong bản rõ gốc ứng với bản mã, sau đó tìm cách xác định khóa đúng. Nếu khóa là đúng thì có thể dịch bản mã để cho ra bản rõ. Ngoài một số phƣơng pháp truyền thống trên, ngày nay, nhờ tốc độ máy tính đã đƣợc cải thiện đáng kể, trong những bài toán mà không gian khóa không quá lớn ngƣời ta còn có thể áp dụng một phƣơng pháp nữa đó là “vét cạn”. Đối với không gian khóa lớn, đây thật sự là phƣơng pháp kém hiệu quả nếu chúng ta chỉ thực hiện vét cạn một cách thông thƣờng. Tuy nhiên nếu áp dụng đồng thời các kỹ thuật bổ trợ thì nó vẫn phát huy đƣợc hiệu quả tốt. Các kỹ thuật hỗ trợ đƣợc nói tới ở đây là xây dựng một thƣ viện phục vụ việc “vét cạn” bao gồm cơ sở dữ liệu về khóa và các tiêu chuẩn bản rõ tốt. Trên cơ sở đó tìm cách phân hoạch không gian khóa S thành hai tập con rời nhau là S1 và S2 sao cho khóa đúng sẽ “chắc chắn” thuộc một trong hai tập con đó. Từ đó tiến hành sử dụng thuật toán vét cạn trên tập con có chứa khóa đúng, khi đó việc “vét cạn” trong tập con nhanh chóng thể hiện tính hiệu lực của nó. Việc này cũng có thể thực hiện ngay đối với một số phƣơng pháp truyền thống đã có đƣợc những kết quả đáng ngạc nhiên. Khi thám ra bản rõ ta chỉ cần đọc đƣợc lỗ Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 26 chỗ đã là thành công vì lúc đó bằng quy luật ngôn ngữ ta sẽ khôi phục đƣợc bản rõ gốc nhƣ mong muốn. Ngày nay, ngƣời ta đã có những công cụ tính toán cực nhanh nhờ công nghệ cluster. Từ đó ngƣời ta có thể xây dựng mạng tính toán song song với tốc độ tính toán đạt tới gần 100GF (một trăm tỷ phép tính dấu phảy động trên một giây). Nhƣ vậy ngƣời ta có phân rã bài toán để thực hiện việc tính toán song song cực kỳ có hiệu quả, đặc biệt đối với những bài toán có độ phức tạp tính toán lớn. 1.7. Kết luận Khác với mật mã khóa bí mật, mật mã khóa công khai dùng hai khóa: một khóa để mã hóa thông điệp và khóa kia để giải mã thông điệp. Khóa mã hóa đƣợc công khai hoàn toàn, nó giống nhƣ số điện thoại cá nhân, khóa giải mã thì hoàn toàn đƣợc giữ bí mật, nó đƣợc dùng để giải bản mã đƣợc mã bởi khóa công khai tƣơng ứng. Hai khóa này có quan hệ với nhau và có thể đƣợc suy ra nhau nhƣng rất khó, đƣợc coi là không thể. Hiện nay mật mã khóa công khai đƣợc sử dụng rất rộng rãi và đang có xu hƣớng ngày càng phát triển. Trong các hệ mật khóa công khai, hệ mật đƣợc sử dụng phổ biến nhất là RSA. Hệ mật RSA đƣợc sử dụng để cung cấp sự bảo mật và tính xác thực của dữ liệu số. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 27 CHƢƠNG 2 CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI 2.1. Tính an toàn của hệ mật mã Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó của bài toán thám mã khi sử dụng hệ mật đó. 2.1.1. An toàn vô điều kiện Giả thiết ngƣời thám mã có đƣợc thông tin về bản mã. Theo quan niện lý thuyết thông tin, nếu những hiểu biết về bản mã không thu hẹp đƣợc độ bất định về bản rõ đối với ngƣời thám mã, thì hệ mật mã là an toàn vô điều kiện, hay theo thuật ngữ của C.Shannon, hệ mật mã là bí mật hoàn toàn. Nhƣ vậy, hệ là an toàn vô điều kiện, nếu độ bất định về bản rõ khi ngƣời thám mã có đƣợc cả thông tin (về bản mã) bằng độ bất định về bản rõ trƣớc đó. Tính an toàn vô điều kiện thƣờng đƣợc sử dụng cho các hệ mật mã khó đối xứng. 2.1.2. An toàn được chứng minh Một hệ thống mật mã đƣợc xem là có độ an toàn đƣợc chứng minh nếu ta có thể chứng minh đƣợc bài toán thám mã đối với hệ thống đó “khó tƣơng đƣơng” với một bài toán khó đã biết, ví dụ bài toán phân tích một số nguyên thành tích các thừa số nguyên tố, bài toán tìm logarit theo một mô-đun nguyên tố,…(“khó tƣơng đƣơng” có nghĩa là nếu bào toán này giải đƣợc thì bài toán kia cũng giải đƣợc cùng một độ phức tạp nhƣ nhau). 2.1.3. An toàn tính toán Hệ mật mã đƣợc xem là an toàn về mặt tính toán, nếu mọi phƣơng pháp thám mã đã biết đều đòi hỏi một nguồn năng lực tính toán vƣợt quá mọi khả năng (kể cả phƣơng tiện thiết bị máy móc) tính toán của một kẻ thám mã. An toàn theo nghĩa này, nói theo ngôn ngữ của lý thuyết về độ phức tạp tính toán là bao hàm cả khái niệm an toàn theo nghĩa “đƣợc chứng minh” nói trên. Tính an toàn theo nghĩa đƣợc tính toán hay chứng minh đƣợc sử dụng nhiều trong công việc nghiên cứu các hệ thống mật mã hiện đại, đặc biệt là các hệ thống Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 28 mật mã khóa công khai. Các bài toán đó đều có hạt nhân là tính an toàn của các hệ mật mã cũng góp phần giải quyết các vấn đề an toàn thông tin kể trên. 2.2. Các kiểu thám mã Bài toán quan trọng nhất của thám mã là phá bỏ tính bí mật, tức là: với những bản mã có thể dễ dàng thu đƣợc, ngƣời thám mã phải tìm ra đƣợc nội dung thông tin che dấu bên trong bản mã. Giả thiết chung ở đây là luôn coi đối phƣơng biết hệ mật đang dùng. Giả thiết này đƣợc gọi là nguyên lý Kerekhoff. Dĩ nhiên, nếu đối phƣơng không biết hệ mật đƣợc dùng thì nhiệm vụ của anh ta sẽ khó khăn hơn.Tuy nhiên ta không muốn độ mật của một hệ mật lại dựa trên một giả thiết không chắc chắn là đối phƣơng không biết hệ mật đƣợc sử dụng. Do đó, mục tiêu trong việc thiết kế một hệ mật là phải đạt đƣợc độ mật dƣới giả thiết Kerekhoff. Việc thám mã có thể quy về việc tìm đƣợc bản rõ hoặc phát hiện khóa mã, khi biết trƣớc hệ mật mã đƣợc sử dụng. Ngoài việc biết hệ mật mã, ngƣời thám mã còn cần có thông tin khác để tìm bản rõ và phát hiện khóa. Tuỳ theo thông tin đó là gì mà ta phân các bài toán thám mã thành các loại: tìm cách xác định khóa bí mật thám mã chỉ biết bản mã, biết bản mã và cả bản rõ, có bản rõ đƣợc chọn trƣớc và có bản mã đƣợc chọn trƣớc; tìm cách xác định bản rõ - dùng modul n chung, lợi dụng tính nhân của hàm lập mã. 2.2.1. Tấn công dạng 1: Tìm cách xác định khóa bí mật Trƣờng hợp 1: Khi thám mã chỉ biết bản mã Trong trƣờng hợp này, khi biết đƣợc n, ngƣời thám mã sẽ tìm cách tính giá trị của p, q theo thuật toán phân tích thành thừa số nguyên tố, từ đó chúng sẽ tính (n) = (p-1).(q-1). Khi đã tính đƣợc (n) c ngƣời thám mã sẽ tính đƣợc khóa bí mật a theo công thức: a.b 1 (mod (n)). Khi đã tính đƣợc khóa bí mật thì ngƣời thám mã sẽ giải mã đƣợc bản mã và tìm ra bản rõ. Giải pháp phòng tránh: Chọn số nguyên tố p, q lớn, để việc phân tích n thành tích hai thừa số nguyên tố là khó có thể thực hiện đƣợc trong thời gian thực. thƣờng sinh ra các số lớn (khoảng 100 chữ số) sau đó kiểm tra tính nguyên tố của nó. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 29 Trƣờng hợp 2: Khi thám mã biết bản mã và cả bản rõ Ngƣời thám mã biết một bản mã Y cùng với bản rõ tƣơng ứng X. Vì đã biết đƣợc bản rõ rồi nên việc chính của thám mã là phải xác định đƣợc khóa bí mật K’’ đang sử dụng, để giải mã các gói tin đã mã hóa mà nó bắt đƣợc sau này. Ngƣời thám mã sẽ dựa vào bài toán tính logarit thông thƣờng để tính ra khóa bí mật K’’ = a theo công thức: K’’ = logyx(mod n-1). Từ đây toàn bộ thông tin đƣợc mã hóa bằng khóa K’ đều bị thám mã bắt đƣợc. Giải pháp phòng tránh: Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa. Trƣờng hợp 3: Khi thám mã có bản rõ đƣợc chọn trƣớc Đây là trƣờng hợp đặc biệt của lựa chọn bản rõ. Không chỉ có thể lựa chọn bản rõ đã mã hóa, nhƣng họ còn có thể sửa đổi sự lựa chọn cơ bản kết quả của sự mã hóa lần trƣớc. Trong trƣờng lựa chọn bản mã ngƣời thám mã có thể đã chọn một bản rõ X, và biết đƣợc bản mã Y tƣơng ứng (khi ngƣời thám mã chiếm đƣợc (tạm thời) máy lập mã), việc xác định khóa bí mật quay về trƣờng hợp thứ hai. Phƣơng pháp này tỏ ra có khả năng hơn phƣơng pháp biết bản rõ bởi vì ngƣời phân tích có thể chọn cụ thể khối bản rõ cho mã hóa, một điều khác có thể là sản lƣợng thông tin về khóa nhiều hơn. Giải pháp phòng tránh: Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa. Trƣờng hợp 4: Khi thám mã có bản mã đƣợc chọn trƣớc Ngƣời thám mã có thể chọn một bản mật mã Y, và biết bản rõ tƣơng ứng X. Trong trƣờng hợp này việc xác định khóa bí mật lại quay trở về trƣờng hợp thứ hai. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 30 Giải pháp phòng tránh: Sử dụng khóa khác nhau ở mỗi lần mã hóa, để nếu ngƣời thám mã biết đƣợc khóa giải mã ở lần mã hóa này, thì khi bắt đƣợc các gói tin ở lần mã hóa sau, họ cũng không thể sử dụng khóa đó để giải mã tiếp đƣợc nữa. Trong mỗi trƣờng hợp đối tƣợng cần phải xác định chính là khóa đã sử dụng: Rõ ràng bốn trƣờng hợp tấn công trên đã đƣợc liệt kê theo độ tăng dần của sức mạnh tấn công và cách tấn công các bản mã đƣợc lựa chọn là thích hợp đối với hệ mật mã hóa công khai. 2.2.2. Tấn công dạng 2: Tìm cách xác định bản rõ Dùng modul n chung Giả sử có hai ngƣời tham gia A và B cùng sử dụng một modul chung n trong khóa công khai của mình, chẳng hạn A chọn khóa công khai (n, e) và giữ khóa bí mật d, B chọn khóa công khai (n, a) và giữ khóa bí mật b. Một ngƣời tham gia thứ ba C gửi một văn bản cần bảo mật x đến cả A và B thì dùng các khóa công khai nói trên để gửi đến A bản mật mã y = xe mod n và gửi đến B bản mật mã z = xa mod n. Ta sẽ chứng tỏ rằng, một ngƣời thám mã O có thể dựa vào những thông tin n, e, a, y, z trên đƣờng công khai mà phát hiện ra bản rõ x nhƣ sau: (i). Tính c = e-1 mod a, (ii). Sau đó tính h = (ce – 1)/a, (iii). Và ta đƣợc x = yc (zh)-1 mod n. Thực vậy theo định nghĩa trên, ce – 1 chia hết cho a, và tiếp theo ta có: yc (zh)-1 mod n = xce.(xa(ce – 1)/a)-1 mod n = xce.(xce – 1)-1 mod n =x Suy ra bản rõ cần tìm. Nhƣ vậy, trong trƣờng hợp này việc truyền tin bảo mật không còn an toàn nữa. Giải pháp phòng tránh: Dùng modul n khác nhau cho mỗi ngƣời tham gia. Lợi dụng tính nhân của hàm lập mã Ta chú ý rằng hàm lập mã f(x) = xe mod n có tính nhân (multiplicative property), nghĩa là f(x.y) = f(x).f(y). Dựa vào tính chất đó, ta thấy rằng nếu y là mật Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 31 mã của bản rõ x, thì y = y.ue mod n sẽ là bản mật mã của bản rõ xu. Do đó, khi lấy đƣợc bản mật mã y, để phát hiện bản rõ x ngƣời thám mã có thể chọn ngẫu nhiên một số u rồi tạo ra bản mã y, và nếu ngƣời thám mã có khả năng thám mã theo kiểu có bản mã lựa chọn, tức có khả năng với y đƣợc chọn tìm ra bản rõ tƣơng ứng là x = xu, thì bản rõ gốc cần thiết phát hiện sẽ là x= x.u-1 mod n. Tất nhiên, khả năng ngƣời thám mã có năng lực giải quyết bài toán thám mã theo kiểu có bản mã đã đƣợc chọn là rất hiếm, nhƣng dẫu sao đây cũng là một trƣờng hợp mà vấn đề bảo mật dễ bị tấn công, ta không thể không tính đến để tìm cách tránh. Gải pháp phòng tránh: Không để thám mã có khả năng thám mã theo kiểu có bản mã đƣợc chọn. Một điểm đáng chú ý khác là đa số các kỹ thuật thám mã đều dùng phƣơng pháp thống kê tần suất xuất hiện của các từ, các ký tự trong bản mã. Sau đó thực hiện việc thử thay thế với các chữ cái có tần suất xuất hiện tƣơng đồng trong ngôn ngữ tự nhiên. Tại đây chúng ta chỉ xem xét đối với ngôn ngữ thông dụng nhất hiện nay đó là tiếng Anh. Việc thống kê tần suất xuất hiện của các ký tự trong trƣờng hợp này đƣợc tiến hành dựa trên các bài báo,sách, tạp chí và các văn bản cùng với một số loại khác ... Nhiều kỹ thuật thám mã sử dụng đặc điểm thống kê của tiếng Anh, trong đó dựa vào tần suất xuất hiện của 26 chữ cái trong văn bản thông thƣờng để tiến hành phân tích mã. Becker và Piper đã chia 26 chữ cái thành năm nhóm và chỉ ra xác suất của mỗi nhóm nhƣ sau: - E, có xác suất khoảng 0.120 - T, A, O, I, N, S, H, R, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.06 đến 0.09 - D, L, mỗi chữ cái có xác xuất xấp xỉ 0.04 - C, U, M, W, F, G, Y, P, B, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.015 đến 0.023 - V, K, J, X, Q, Z, mỗi chữ cái có xác xuất nhỏ hơn 0.01 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 32 Ký tự Xác suất Ký tự Xác suất Ký tự Xác suất A 0.082 J 0.002 S 0.063 B 0.015 K 0.008 T 0.091 C 0.028 L 0.040 U 0.028 D 0.043 M 0.024 V 0.010 E 0.127 N 0.067 W 0.023 F 0.022 O 0.075 X 0.001 G 0.020 P 0.019 Y 0.020 H 0.061 Q 0.001 Z 0.001 I 0.070 R 0.060 Ngoài ra, tần suất xuất hiện của dãy hai hay ba chữ cái liên tiếp đƣợc sắp theo thứ tự giảm dần nhƣ sau: Cặp chữ Tần suất Cặp chữ Tần suất Cặp chữ Tần suất TH 10.00 ED 4.12 OF 3.38 HE 9.50 TE 4.04 IT 3.26 IN 7.17 TI 4.00 AL 3.15 ER 6.65 OR 3.98 AS 3.00 RE 5.92 ST 3.81 HA 3.00 ON 5.70 AR 3.54 NG 2.92 AN 5.63 ND 3.52 CO 2.80 EN 4.76 TO 3.50 SE 2.75 AT 4.72 NT 3.44 ME 2.65 ES 4.24 IS 3.43 DE 2.65 2.3. Một số sơ hở dẫn đến tấn công hệ mật RSA Tính bảo mật của RSA chủ yếu dựa vào việc giữ bí mật số mũ giải mã a và các thừa số p, q của n. Tuy nhiên, điều kiện an toàn trên của hệ mật chỉ là điều kiện chung. Trong thực tế khi thiết kế một giao thức hay một kênh bí mật có sử dụng hệ mật RSA Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 33 vẫn tồn tại nhiều sơ hở, những sơ hở đó đã đƣợc thám mã lợi dụng nhằm phá hủy giao thức, kênh bí mật, phá vỡ tính an toàn của hệ mật. 2.3.1. Biết (n) tìm được p, q Ta có thể xác định đƣợc p, q và ngƣợc lại. Biết đƣợc p, q ta có thể dễ dàng tính đƣợc (n). Nếu biết đƣợc (n) ta có thể tìm đƣợc p, q bằng cách giải hệ phƣơng trình: p.q = n p.q = n (p – 1)(q – 1) = (n) p + q = n + 1 – (n) Do đó p, q là nghiệm của phƣơng trình bậc 2: x2 – (x – (n) + 1)x + n = 0 Bởi vậy nếu ngƣời thám mã biết đƣợc (n) anh ta có thể phân tích đƣợc n và phá đƣợc hệ mật. Ngƣợc lại cho trƣớc p, q rõ ràng việc tính (n) đƣợc thực hiện dễ dàng: (n) = (p – 1)(q – 1) 2.3.2. Biết số mũ giải a Nếu biết số mũ giải mã a thì coi nhƣ đã làm xong việc thám mã, nên việc tìm đƣợc p, q cũng không còn ý nghĩa đối với việc thám mã nữa. Tuy nhiên, điều này có một ý nghĩa quan trọng hơn đó là nếu đối phƣơng biết a thì không chỉ phải thay số mũ giải mã khác mà còn phải chọn modul n khác, vì khi đó đối phƣơng cũng có thể biết p, q, do đó biết cách tìm khóa giải mã a bất kỳ, nếu khóa lập mã vẫn giữ modul n, n = p.q. Ta sẽ chứng minh rằng biết số mũ giải mã a sẽ tìm đƣợc các thừa số p, q của n. Do a.b 1 mod (n) nên a.b - 1 = l. (n) = k. Do (n) là một số chẵn nên ta có thể viết k dƣới dạng k = 2t.r (với r là số lẻ) và t 1. Theo định lý Ơle: với a mà (a,n)=1 thì a g Z*n thì gk (n) modn 1, do đó, ta có: 1 mod n (do k là bội của (n)) và do đó gk/2 là căn bậc hai của 1 theo modul n. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 34 Theo định lý phần dƣ Trung hoa, 1 có 4 căn bậc hai modul n=p.q. Hai căn bậc hai là 1. Hai căn bậc hai khác là x (x 1 mod p và x -1 mod q) (1 < x < p). Sử dụng một trong hai căn bậc hai không tầm thƣờng này sẽ tìm đƣợc p, q trong thời gian đa thức bằng cách tính gdc(x-1,n). x2 1 mod n (x-1)(x+1) 0 mod n -> (x-1)(x+1) chia hết cho n. Đặt (x-1, n) = d1 và (x+1, n) = d2. Vì n = p.q và x x-1 1, 0 < x < n, nên: 0 và 0 < x-1 < n x+1 n và 0 < x+1< n Suy ra d1 hoặc d2 phải khác 1 và do n = p.q nên một trong hai giá trị d1 và d2 chính là p hoặc q. 2.3.3. Giao thức công chứng Giao thức công chứng là giao thức đƣợc thiết kế cho một văn bản sau khi A ký lên đó, ngƣời khác có thể xác thực đƣợc rằng văn bản này thực sự đƣợc ký bởi A (nó cũng giống nhƣ việc công chứng của công chứng viên ký chữ ký của mình lên bảng công chứng). Để thiết lập giao thức công chứng, Bob phải lựa chọn các tham số RSA: các số nguyên tố p, q và các số mũ hóa e và khóa giải mã d thỏa mãn e.d 1 mod (n) trong đó n = p.q. Các giá trị n, e là công khai, còn p, q và d đƣợc Bob giữ bí mật. Để ký một văn bản M, Bob sử dụng số mũ bí mật d để tính chữ ký S = M d mod n. Bất cứ ai cũng có thể sử dụng những thông tin công khai của Bob để kiểm tra xem S có thật sự là chữ ký của Bob trên M hay không bằng cách tính S e mod n và so sánh với M. Vì chỉ có Bob biết giá trị d, giá trị dùng để tạo ra S. Giao thức công chứng khẳng định rằng chỉ có một mình Bob mới có thể tạo ra S. Tuy nhiên Davida và Denning [13] đã chỉ ra rằng: có thể tạo ra chữ ký giả mạo của giao thức này. Sau đây là một phƣơng thức để thực hiện điều đó. Bob có khóa bí mật d và khóa công khai e. Giả sử Marvin muốn có đƣợc chữ ký của Bob trên văn bản M Zn*. Khi đó Marvin có thể thực hiện theo cách sau đây: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 35 Lấy một số ngẫu nhiên r Zn*, tính M’ = reM mod n, và đề nghị Bob ký trên M’. Nếu Bob ký trên S’, trên M’ thì Marvin có thể dễ dàng tính đƣợc chữ ký S của Bob trên M: S = S’.r-1 mod n. Vì S’ (M’)d mod n (reM)d mod n r.S mod n  S = r-1.S’ mod n S tìm đƣợc chính là chữ ký của Bob trên M. Thật vậy: Se (S’)e mod n (M’)ed/re (mod n) M’/re (mod n) M mod n. Kỹ thuật trên đƣợc gọi là kỹ thuật che khuất (blinding), kỹ thuật này cho phép Marvin lấy đƣợc một số chữ ký hợp pháp trên một văn bản anh ta muốn, bằng cách yêu cầu Bob ký trên một văn bản “đƣợc che khuất” (blinding) ngẫu nhiên. Bob không có thông tin về văn bản mà anh ta đang thực sự ký. Kết quả của kỹ thuật này dựa trên một thực tế: RSA sử dụng một hàm toán học (hàm mũ) bảo toàn phép nhân các giá trị đầu vào. Điểm mấu chốt của cách tấn công này nếu chọn X, M, d và n bất kỳ: (XM)d XdMd mod n tức sigk(X.M) = sigk(X). sigk(M) Vậy để ngăn cản việc tấn công vào giao thức công chứng bằng kỹ thuật che khuất ta phải hủy bỏ khả năng sử dụng tính bảo toàn của phép nhân mà kẻ định giả mạo chữ ký. Một trong nhiều cách đó là sử dụng hàm “hash một chiều” trên văn bản M trƣớc khi ký và kỹ thuật này đƣợc áp dụng trong nhiều ứng dụng thực tế của RSA (ví dụ nhƣ thanh toán điện tử ẩn danh). 2.3.4. Giao thức số mũ công khai nhỏ Một tình huống sử dụng RSA khác nhằm giảm thời gian mã hóa hoặc kiẻm thử chữ ký là dùng số mũ mã hóa nhỏ. Cách này hay đƣợc sử dụng trên mạng có yêu cầu truyền thông lớn. Trong giao thức này mỗi ngƣời dùng chọn hai số nguyên tố lớn p, q và công bố khóa công khai của mình. Chúng ta quan tâm đến trƣờng hợp khi các số mũ mã hóa ei là giống nhau và là một số nguyên nhỏ. Với một vài ứng dụng, điều Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 36 đó khá hấp dẫn vì ứng dụng với số mũ nhỏ sẽ có thể thực hiện đơn giản và nhanh hơn. Tuy nhiên tính chất này sẽ làm cho giao thức thất bại nếu một ngƣời mã hóa cùng một văn bản bằng số mũ ei và gửi cho nhiều ngƣời. Ví dụ, e = 3 và văn bản M đƣợc mã hóa để gửi cho 3 ngƣời. Khi đó các bản mã sẽ là: - C2 = M3 mod n2 - C3 = M3 mod n3 - C4 = M3 mod n4 Nếu n2, n3 và n4 nguyên tố cùng nhau, thì áp dụng định lý phần dƣ Trung hoa sẽ tính đƣợc M3 duy nhất thuộc khoảng (0, n2n3n4) thoả hệ phƣơng trình trên. Lấy căn bậc 3 thông thƣờng của M3 sẽ tìm đƣợc M. Nếu ngƣợc lại, n2 và n3 không nguyên tố cùng nhau, thì USCLN(n2 , n3) sẽ là p hoặc q chung của hai ngƣời. Khi đó ngƣời này hoàn toàn có thể phá vỡ hệ mật của ngƣời kia. Để khắc phục nhƣợc điểm này, văn bản M cần đƣợc gắn thêm một thông tin ngẫu nhiên trƣớc khi mã hóa để gửi cho mỗi ngƣời. (ví dụ gắn thêm tem thời gian). Trong ví dụ của chúng ta ở trên, các bản mã mới trong giao thức sẽ là: C2 = (2|t2|M + t2)3 modn2 C3 = (2|t3|M + t3)3 modn3 C4 = (2|t4|M + t4)3 modn4 Tuy nhiên, Hastad đã chỉ ra rằng cách này có thể không cho đủ các bản rõ khác nhau để khắc phục nhƣợc điểm vốn có của giao thức số mũ nhỏ. Trong tài liệu của ông, Hastad đã chỉ ra rằng một hệ phƣơng trình đồng dƣ: Pi(x) = 0 modni, 1 i k có bậc không lớn hơn d có thể giải đƣợc trong thời gian đa thức nếu số phƣơng trình lớn hơn d(d+1)/2. Vì trong trƣờng hợp này số mũ là 3, nếu văn bản đƣợc điều chỉnh bằng tem thời gian đƣợc gửi cho ít nhất 7 thành viên trong mạng, văn bản sẽ không còn là bí mật đối với ngƣời tấn công sau một khoảng thời gian không dài. Tất nhiên, để tấn công theo cách này thì phải biết tem thời gian. Tuy nhiên, tem thời gian chỉ gồm một số bit nhỏ so với kích thƣớc của văn bản vì vậy nó có thể đƣợc ƣớc lƣợng Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 37 trƣớc khi áp dụng thuật toán của Hastad. Rõ ràng tính bí mật của hệ thống không thể tuỳ thuộc vào tính bí mật của một mình tem thời gian. Thất bại của giao thức đƣợc đề cập đến trong phần này nhấn mạnh một điều là ngƣời thiết kế giao thức phải quan tâm đến việc tăng thêm các thông tin cho các bản mã mà bản rõ của nó có quan hệ (trong ví dụ là bằng nhau hoặc sai khác tem thời gian) hoặc khóa của chúng có liên quan với nhau (nhƣ cùng số mũ với modul nguyên tố cùng nhau). 2.3.5. Giao thức số mũ bí mật nhỏ Để giảm thời gian giải mã (hoặc thời gian sinh chữ ký), ngƣời ta muốn sử dụng một giá trị d nhỏ hơn là giá trị d ngẫu nhiên. Vì việc mũ hóa theo modul mất một khoảng thời gian tuyến tính với log2d, nên số mũ d nhỏ có thể nâng hiệu quả thực thi nhanh ít nhất 10 lần (đối với modul 1024 bit). Tuy nhiên, M.Wiener chỉ ra rằng một số mũ giải mã d nhỏ sẽ dẫn đến sập toàn bộ hệ thống mật mã. Định lý M.Wiener: Cho n = p.q với q n1.5 thì sẽ không có vấn đề là liệu với d nhỏ nhƣ thế nào thì cách tấn công ở trên không thể thực hiện đƣợc. Tuy nhiên, giá trị e lớn dẫn đến việc tăng thời gian mã hóa. * Sử dụng CRT: Một phƣơng pháp khác là sử dụng định lý phần dƣ Trung Hoa. Giả sử chọn d sao cho cả dp = d mod(p-1) và dq = d mod(q-1) nhỏ (khoảng 128 bit). Việc giải mã nhanh bản mã C thực hiện nhƣ sau: tính Mp = Cdp mod p và Mq = Cdq modq. Sau đó sử dụng định lý phần dƣ Trung Hoa để tính giá trị duy nhất M Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 39 Z'n thoả mãn M = Mp modp và M=Mq modq. Kết quả M thoả mãn M = Cdmodn đƣợc yêu cầu. Vấn đề là mặc dù dp và dq nhỏ, giá trị d mod (n) có thể lớn. Nhƣ thế cách tấn công theo định lý trên không thực hiện đƣợc. Chúng ta chú ý rằng với đã biết thì tồn tại cách tấn công cho phép phân tích n ra các thừa số nguyên tố trong thời gian O(min d p , d q ) vì vậy dp và dq không thể chọn quá nhỏ. Chúng ta không biết phƣơng pháp nào kể trên là an toàn. Điều mà chúng ta biết là cách tấn công của Wiener là không có hiệu quả với chúng. Một định lý do Boneh và Durfee cải tiến chỉ ra rằng nếu d< n0,292 thì có thể khôi phục d từ . Kết quả này chỉ rằng giới hạn của Wiener là chƣa chặt chẽ khi cho rằng giới hạn là d < n0,25. Đây vẫn còn là một vấn đề mở cho đến thời điểm hiện nay. 2.3.6. Trường hợp các tham số p-1 và q-1 có các ước nguyên tố nhỏ Trong khi xây dựng hệ mật RSA, nếu ta bất cẩn trong việc chọn các tham số p và q để p-1 hoặc q-1 có ƣớc nguyên tố nhỏ thì hệ mật mã trở nên mất an toàn. Khi p-1 hoặc q-1 có ƣớc nguyên tố nhỏ thì ta có thể dùng thuật toán Pollar đƣa ra vào năm 1974 phân tích N một cách hiệu quả. Thuật toán đƣợc mô tả nhƣ sau: Input: N và một cận B Output: Trả lời: - Thành công và đƣa ra thừa số của N - Không thành công Thuật toán: 1. a=2 2. For j=2 to B do A= aj mod N 3. d=gcd(a-1, N) 4. If 1d(d+1)/2 và {ti} đã biết, có thể tìm thấy đƣợc X trong thời gian đa thức của k và logni. Quan hệ với RSA của vấn đề này là số mũ đƣợc chọn trong giao thức không đƣợc nhỏ. Lớp thứ hai của các giao thức thất bại là do sơ suất của một vài nguyên tắc áp dụng trên một lớp rộng rãi các thuật toán mã hóa, nhƣ các ví dụ về những thất Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 43 bại của giao thức entropy nhỏ và công chứng. Trong trƣờng hợp thất bại của giao thức entropy nhỏ, một nguyên tắc chung là mật mã khóa công khai không nên áp dụng để bảo vệ các văn bản mà không gian văn bản có entropy thấp đã không đƣợc giao thức chú ý đến. Lớp cuối cùng là các giao thức thất bại do ngƣời thiết kế phóng đại khả năng an toàn mà giao thức có thể cung cấp. Nhất là trong trƣờng hợp khóa đối xứng, trong đó, từ một đoạn mã ngƣời nhận có thể phát hiện thao tác bản mã đƣợc tính toán với các giá trị không bí mật do ngƣời gửi đƣa vào. Những ngƣời thiết kế giao thức cần phải đƣa ra càng chi tiết càng tốt những yêu cầu của họ về mức độ bảo mật hay xác thực, những điều mong muốn có đƣợc từ giao thức cho trƣớc. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 44 CHƢƠNG 3 THỬ NGHIỆM PHƢƠNG PHÁP THÁM MÃ VỚI HỆ RSA 3.1. Mô tả bài toán tấn công RSA sử dụng modul chung Tình huống dẫn đến việc sử dụng RSA có số modul chung xảy ra nhƣ sau: khi trong hệ thống có k ngƣời đăng ký sử dụng RSA, để việc quản lý - phân phối khóa đƣợc đơn giản, trung tâm sẽ sinh ra 2 số nguyên tố p, q; tính số modul n = p.q; sinh ra các cặp khóa mã hóa/giải mã {ei, di} sau đó cấp cho ngƣời đăng ký thứ i trong hệ thống khóa bí mật di tƣơng ứng, cùng các thông tin công khai bao gồm số modul n và một danh sách đầy đủ khóa công khai {ei} (i=1..k). Bất kỳ ngƣời nào có thông tin công khai này đều có thể mã hóa văn bản M để gửi cho ngƣời đăng ký thứ i bằng cách sử dụng thuật toán mã hóa RSA với khóa mã ei: Y M ei mod n rồi gửi Y... Hoặc ngƣời đăng ký thứ i có thể ký một văn bản M bằng cách tính chữ ký Si M di mod n . Bất cứ ai cũng có thể xác thực rằng M e đƣợc ký bởi ngƣời đăng ký thứ i bằng cách tính Si i mod n và so sánh với M. Tuy nhiên, việc sử dụng số modul chung dẫn đến một số điểm yếu của giao thức. 3.2. Thuật toán tấn công giao thức modul n chung 3.2.1. Kiểu tấn công thứ nhất: Tấn công dựa trên các số mũ mã hóa nguyên tố cùng nhau Nhƣ Simmons chỉ ra, nếu một văn bản đƣợc gửi tới hơn một ngƣời đăng ký có các số mũ mã hóa nguyên tố cùng nhau thì đối phƣơng có thể giải mã đƣợc văn bản mà không cần biết khóa giải mã. Để chứng minh điều này, hãy xem kết quả của việc mã hóa văn bản M gửi cho 2 ngƣời có khóa công khai tƣơng ứng ei và ej: Yi M ei mod n Yj M ej mod n Vì ei và ej là 2 số nguyên tố cùng nhau, nên có thể tìm đƣợc các số nguyên r và s bằng thuật toán Euclid, thoả: rei + sej = 1. Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 45 Rõ ràng, hoặc r hoặc s phải là số âm và trong trƣờng hợp này ta giả sử r[...]... độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ mã và giải mã Hệ mật tốt thì thời gian mã và giải mã nhanh Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này đƣợc truyền công khai hay truyền khóa bí mật Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã 1.5 Hệ mật mã RSA Có nhiều hệ. .. đối xứng sử dụng một cặp khóa, khóa mã hóa còn gọi là khóa công khai (publickey) và khóa giải mã đƣợc gọi là khóa bí mật hay khóa riêng (private key) Trong hệ mật này, khóa mã hóa khác với khóa giải mã Về mặt toán học thì từ khóa công rất khó tính đƣợc khóa riêng Biết đƣợc khóa này không dễ dàng tìm đƣợc khóa kia Khóa giải mã đƣợc giữ bí mật trong khi khóa mã hóa đƣợc công bố công khai Một ngƣời bất... RSA Hệ mật RSA đƣợc sử dụng để cung cấp sự bảo mật và tính xác thực của dữ liệu số Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 27 CHƢƠNG 2 CÁC PHƢƠNG PHÁP THÁM MÃ HỆ MẬT MÃ KHÓA CÔNG KHAI 2.1 Tính an toàn của hệ mật mã Tính an toàn của một hệ thống mật mã phụ thuộc vào độ khó của bài toán thám mã khi sử dụng hệ mật đó 2.1.1 An toàn vô điều kiện Giả thiết ngƣời thám mã. .. mật mã khóa đối xứng đƣợc giải quyết nhờ hệ mật mã khóa công khai Chính ƣu điểm này đã thu hút nhiều trí tuệ vào việc đề xuất, đánh giá các hệ mật mã công khai Nhƣng do bản thân các hệ mật mã khóa công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ mật mã này đều có tốc độ mã dịch không nhanh lắm Chính nhƣợc điểm này làm cho các hệ mật mã khóa công khai khó đƣợc dùng một. .. tả trong hình 1.4 và 1.5 Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn/ 9 Hình 1.4: Mã hóa thông điệp sử dụng khóa bí mật S để mã thông điệp và khóa công khai P để mã khóa bí mật S Hình 1.5: Giải mã thông điệp sử dụng khóa bí mật S để giải mã thông điệp và khóa riêng P để giải mã khóa bí mật S Ƣu và nhƣợc điểm của hệ mật mã khóa công khai Vấn đề còn tồn đọng của hệ mật. .. xứng Để giải quyết vấn đề phân phối và thoả thuận khóa của mật mã khóa đối xứng, năm 1976 Diffie và Hellman đã đƣa ra khái niệm về hệ mật mã khóa công khai và một phƣơng pháp trao đổi công khai để tạo ra một khóa bí mật chung mà tính an toàn đƣợc bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán tính “logarit rời rạc”) Hệ mật mã khóa công khai hay còn đƣợc gọi là hệ mật mã phi đối xứng... nhiều hệ thống khóa công khai đƣợc triển khai rộng rãi nhƣ hệ RSA, hệ ElGamal sử dụng giao thức trao đổi khóa Diffie-Hellman và nổi lên trong những năm gần đây là hệ đƣờng cong Elliptic Trong số các hệ mật mã trên thì hệ RSA là hệ đƣợc cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc thực thi mật mã khóa công khai Hệ mật mã RSA, do Rivest, Shamir và Adleman tìm ra, đã đƣợc công bố lần... đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn gấp hàng ngàn lần Do đó, thay bằng việc mã hóa văn bản có kích thƣớc lớn bằng lƣợc đồ khóa công khai thì văn bản này sẽ đƣợc mã hóa bằng một hệ mã đối xứng có tốc độ cao nhƣ DES, IDEA,…sau đó khóa đƣợc sử dụng trong hệ mã đối xứng sẽ đƣợc mã hóa sử dụng mật mã khóa công khai Phƣơng pháp này rất khả thi trong việc mã và giải mã những văn bản có kích... sử dụng khóa công khai P Hình 1.3: Giải mã thông điệp sử dụng khóa riêng của người nhận Việc phát minh ra phƣơng pháp mã công khai tạo ra một cuộc “cách mạng” trong công nghệ an toàn thông tin điện tử Nhƣng thực tiễn triễn khai cho thấy tốc độ mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất nhiều so với hệ mã hóa đối xứng Ví dụ, để đạt đƣợc độ an toàn nhƣ các hệ mã đối xứng... những nƣớc có công nghệ bảo mật (mật mã) rất hiện đại, vẫn còn không ít nƣớc vẫn đang sử dụng mật mã ở mức độ trung bình, thậm chí có nƣớc dùng mật mã truyền thống tƣơng đối đơn giản Và ngay trong cùng một nƣớc, các lực lƣợng, ngành khác nhau lại dùng các hệ mã khác nhau Ví dụ, mật mã dùng trong quân sự khác mật mã dùng trong ngoại giao, mật mã dùng trong tình báo khác với mật mã dùng trong ngân hàng, ...ii đại học thái nguyên Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG V QUC THNH TèM HIU MT S PHNG PHP THM M H MT M KHểA CễNG KHAI NG DNG TRONG BO MT D LIU LUN VN THC S KHOA HC MY TNH... khúa cụng khai khú c dựng mt cỏch c lp Mt na ny sinh s dng cỏc h mt mó khúa cụng khai l vic xỏc thc m mụ hỡnh h mt mó i xng khụng t Do cỏc khúa mó cụng khai c cụng b mt cỏch cụng khai trờn mng... cụng khai hay truyn khúa mt Phõn phi khúa mt thỡ chi phớ s cao hn so vi cỏc h mt cú khúa cụng khai Vỡ vy õy cng l mt tiờu la chn h mt mó 1.5 H mt mó RSA Cú nhiu h thng khúa cụng khai c trin khai

Ngày đăng: 24/10/2015, 15:34

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan