nghiên cứu lược đồ chia sẻ bí mật và ứng dụng của chúng vào việc thi tuyển sinh đại học

80 621 1
nghiên cứu lược đồ chia sẻ bí mật và ứng dụng của chúng vào việc thi tuyển sinh đại học

Đ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

nghiên cứu lược đồ chia sẻ bí mật và ứng dụng của chúng vào việc thi tuyển sinh đại học

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN BÁ THÁI NGHIÊN CỨU LƯỢC ĐỒ CHIA SẺ MẬT ỨNG DỤNG CỦA CHÚNG VÀO VIỆC THI TUYỂN SINH ĐẠI HỌC Nghành : Công nghệ Điện tử - Viễn thông Chuyên nghành : Kỹ thuật Điện tử Mã số : 60 52 70 LUẬN VĂN THẠC SỸ NGƯỜI HƯỚNG DẪN KHOA HỌC: TS Hồ Văn Canh Hà Nội - 2011 - - 2 LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn “ Nghiên Cứu Lược Đồ Chia Sẻ Mật Ứng Dụng Của Chúng Vào Việc Thi Tuyển Sinh Đại Học” là công trình nghiên cứu khoa học độc lập của tôi. Kết quả nghiên cứu được trình bầy trong luận văn chưa được công bố dưới bất kỳ hình thức nào. Hà nội, ngày 20 tháng 05 năm 2011 Tác giả luận văn Nguyễn Bá Thái - - 3 MỤC LỤC LỜI NÓI ĐẦU 5 CHƯƠNG 1. MẬT MÃ CỔ ĐIỂN 7 1.1 KHÁI NIỆM ĐỊNH NGHĨA VỀ MẬT MÃ 7 1.1.1 Khái niệm: 7 1.1.2 Định nghĩa 7 1.2 MỘT SỐ MÃ HÓA ĐƠN GIẢN: 9 1.2.1 Mã dịch vòng ( shift cipher) 9 1.2.1.1 Định nghĩa (modulo): 9 1.2.1.2 Định nghĩa mã dịch vòng: 10 1.2.2 Mã thay thế (MTT) 12 1.2.3. Mã Affine 14 1.2.3.1 Định lý (đồng dư thức): 14 1.2.3.2 Định nghĩa (hàm Euler): 14 1.2.3.3 Định nghĩa (phần tử nghich đảo trong phép nhân): 16 1.2.4. Mật mã Hill 19 1.2.4.1 Khái niệm: 19 1.2.4.2 Định nghĩa ( ma trận đơn vị) 20 1.2.4.3 Định nghĩa (Định thức của ma trận): 20 1.2.4.4 Định lý (ma trận ngịch đảo): 20 1.2.4.5 Định nghĩa Mật mã Hill 21 1.2.5. Mã chuyển vị (Transposition): 22 CHƯƠNG 2. CHUẨN MÃ DỮ LIỆU (DES) 24 2.1 MÔ TẢ DES (Data Encryption Standard) 24 2.2 Các bước thực hiện: 25 2.2.1 Cách tính biến x0 25 2.2.2 Cách tính LiRi: 26 2. 2.2.1. Các biến trong hàm f: 26 2.2.2.2 Cách tính hàm f: 30 2.2.3 Xác định bản mã y: 35 2.3 Giải mã DES 43 2.3.1 Thuật toán 43 2.3.2 Chứng minh thuật toán 43 2.4 Các vấn xung quanh DES 46 2.4.1 Những ý kiến phản hồi 46 2.4.2 DES trong thực tế 47 2.4.3. Một vài kết luận về mã DES 48 CHƯƠNG 3. CÁC SƠ ĐỒ CHIA SẺ MẬT 49 3.1 Khái niệm về chia sẻ mật: 49 3.2 Sơ đồ chia sẻ mật 50 3.2.1 Khái niệm “Sơ đồ chia sẻ mật”: 50 3.2.2 Định nghĩa: 50 3.3 Cấu trúc truy nhập đồ chia sẻ mật 55 3.3.1 Định nghĩa sơ đồ chia sẻ mật hoàn thiện 55 - - 4 3.3.2 Định nghĩa tập hợp thức” tối thiểu 56 3.4 Mạch đơn điệu: 56 3.4.1 Định nghĩa( mạch đơn điệu): 56 3.4.2 Chia sẻ Khóa mật dựa vào “ mạch đơn điệu” 57 CHƯƠNG 4. ỨNG DỤNG THUẬT TOÁN DES LƯỢC ĐỒ CHIA SẺ MẬT VÀO THI TUYỂN SINH 61 4.1 Các ứng dụng: 61 4.2 Quy trình thực hiện giải bài toán: 61 4.2.1 Sơ đồ: 61 4.2.2 Các bước thực hiện: 62 4.2.3. Mô phỏng lược đồ chia sẻ mật bằng ngôn ngữ C: 63 4.2.3.1 Chia sẻ khoá mật theo giao thức “chia sẻ mật” Shamir 63 4.2.3.2 Khôi phục khoá mật bằng phương pháp giải hệ phương trình tuyến tính 64 4.2.3.3 Khôi phục khoá mật bằng phương pháp dùng công thức nội suy Lagrange 68 4.2.3.4 Chia sẻ khoá mật theo phương pháp bằng mạch đơn điệu 69 4.2.3.4 Khôi phục khoá mật theo phương pháp mạch đơn điệu 71 4.3 Mã nguồn mở của chương trình 72 KẾT LUẬN 79 TÀI LIỆU THAM KHẢO 80 - - 5 LỜI NÓI ĐẦU Ngày nay, mạng máy tính ngày càng trở nên phổ biến. Mỗi quốc gia đều có mạng riêng với rất nhiều mạng mang tính bộ phận. Trên pham vi toàn cầu, người ta đã dùng mạng Internet một cách thông dụng. Nhiều dịch vụ điện tử như: thư điện tử, chuyển tiền, thương mại điện tử, chính phủ điện tử đã được áp dụng rộng rãi. Các ứng dụng trên mạng máy tính ngày càng trở nên phổ biến, thuận lợi quan trọng thì yêu cầu về an toàn mạng, về an ninh dữ liệu càng trở nên cấp bách cần thiết. Trên thế giới có rất nhiều quốc gia, nhiều nhà khoa học nghiên cứu về vấn đề bảo mật, đưa ra nhiều thuật toán với mục đích thông tin truyền đi không bị lấy cắp hoặc nếu bị lấy cắp thì cũng không sử dụng được.Trong đề tài của em đưa ra một thuật toán đó là thuật toán DES (Data encryption standar) đây là thuật toán chuẩn của mỹ, được mỹ nhiều nước trên thế giới sử dụng, thuật toán này đã được đưa vào sử dụng nhiều năm nhưng vẫn giữ được tính bảo mật của nó. Tuy nhiên với công nghệ phát triển như hiện nay thì thuật toán DES trở lên không được an toàn tuyệt đối nữa, người ta đã đưa ra thuật toán 3DES về nguyên tắc thuật toán 3DES dựa trên nền tảng của thuật toán DES nhưng số bít được mã hóa tăng lên. Mã hóa các lược đồ chia sẻ mật có thể được ứng dung trong rất nhiều lĩnh vực ví dụ: phát hành thẻ ATM trong ngân hàng, đấu thầu từ xa, trong thi tuyển sinh, trong lĩnh vực quân sự….Trong đề tài của em đề cập tới một lĩnh vực đó là ứng dụng trong thi tuyển sinh đại học. Vấn đề thi tuyển sinh đại học ở nước ta trở thành gánh nặng cho nghành Giáo Dục các ban nghành khác liên quan. Nó làm tổn hại về kinh tế công sức không chỉ đối các ban nghành tham gia tổ chức kỳ thi mà ngay cả đối với các thí sinh dự thi, nhưng đó là điều bắt buộc phải được tổ chức hàng năm. Do vậy làm sao để giảm thiểu các khâu trong thi tuyển sinh mà vẫn đảm bảo tính công bằng và chính xác là điều cần thiết, theo tôi để làm được điều đó ta nên ứng dụng công nghệ thông tin vào việc thi tuyển sinh đại học, một trong các ứng dụng đóứng dụng LƯỢC ĐỒ CHIA SẺ MẬT vì nó đảm bảo được tính mật chính xác mà trong thi tuyển sinh hai điều đó là quan trọng nhất. Phạm vi luận văn đề cập đến vấn đề mật mã, thuật toán DES, lược đồ chia sẻ mật và ứng dụng của chúng trong thi tuyển sinh. Luận văn gồm 4 chương: - - 6 Chương 1: Mật mã cổ điển: chương này nói về khái niệm định nghĩa một số mật mã cổ điển Chương 2: Thuật toán DES: chương này nói về mã hóa giải mã trong thuật toán DES, các vấn đề xung quanh DES. Chương 3: Chia sẻ mật: Chương này nói về khái niệm chia sẻ mật, phương thức chia sẻ khôi phục khóa mật. Chương 4: Ứng dụng thuật toán DES Lược đồ chia sẻ mật vào thi tuyển sinh: chương này nói về phần ứng dụng mô phỏng lược đồ chia se mật bằng ngôn ngữ C Để hoàn thành luận văn này, trước hết em xin chân thành cảm ơn TS Hồ Văn Canh – người đã trực tiếp hướng dẫn, cung cấp tài liệu đóng góp nhiều ý kiến cho luận văn. Em cũng xin chân thành cảm ơn các thầy cô giáo, các cán bộ khoa Điện tử , phòng Sau đại học, Trường Đại học công nghệ - ĐHQG Hà nội đã tận tình giảng dậy, giúp đỡ em trong suốt khóa học. - - 7 CHƯƠNG 1. MẬT MÃ CỔ ĐIỂN 1.1 KHÁI NIỆM ĐỊNH NGHĨA VỀ MẬT MÃ 1.1.1 Khái niệm: - Chức năng cơ bản của mật mã là tạo ra khả năng liên lạc trên một kênh không mật cho hai người sử dụng (tạm gọi là A B) sao cho đối phương (C) không thể hiểu được thông tin được truyền đi. - Kênh liên lạc có thể là một đường dây điện thoại hoặc một mạng máy tính. Thông tin mà Al muốn gửi cho B bản rõ có thể là một văn bản tiếng Anh, các dữ liệu bằng số hoặc bất cứ tài liệu nào có cấu trúc tuỳ ý. - A sẽ mã hoá bản rõ bằng một khóa đã được xác định trước gửi bản mã kết quả trên kênh. C có bản mã thu trộm được trên kênh song không thể xác định nội dung của bản rõ, nhưng B (người đã biết khoá mã) có thể giải mã thu được bản rõ. Ta sẽ mô tả hình thức hoá nội dung bằng cách dung khái niệm toán học như sau: 1.1.2 Định nghĩa Một hệ mật là một bộ 5 ( P,C,K,E,D ) thoả mãn các điều kiện sau: 1. P là một tập hữu hạn các bản rõ có thể. 2. C là một tập hữu hạn các bản mã có thể. 3. K (không gian khoá) là tập hữu hạn các khoá có thể. 4. Đối với mỗi k  K có một quy tắc mã e k : P  C một quy tắcv giải mã tương ứng d k  D. Mỗi e k : P  C và d k : C  P là những hàm sao cho: d k (e k (x)) = x với mọi bản rõ x  P. Trong đó, chúng ta cần lưu ý tính chất 4: Nội dung của nó là nếu một bản rõ x được mã hoá bằng e k bản mã nhận được sau đó được giải mã bằng d k thì ta phải thu được bản rõ ban đầu x. Giả sử ta có bản rõ cần truyền đi là: x = x 1 ,x 2 ,. . .,x n - - 8 với số nguyên n  1 nào đó. Ở đây mỗi ký hiệu của mỗi bản rõ x i  P , 1  i  n. Mỗi x i sẽ được mã hoá bằng quy tắc mã e k với khoá K xác định trước đó. Bản mã thu được là: y = y 1 ,y 2 ,. . .,y n Trong đó y k =e k (x i ) i=1,2,…,n. còn kєK Khi Bob nhận đươc y 1 ,y 2 ,. . .,y n anh ta sẽ giải mã bằng hàm giải mã d k thu được bản rõ gốc x 1 ,x 2 ,. . .,x n . Hình 1.1 là một ví dụ về một kênh liên lạc ` Rõ ràng là trong trường hợp này hàm mã hoá phải là hàm đơn ánh ( tức là ánh xạ 1-1), nếu không việc giải mã sẽ không thực hiện được một cách tường minh. Ví dụ y = e k (x 1 ) = e k (x 2 ) trong đó x 1  x 2 , thì B sẽ không có cách nào để biết liệu bản rõ là x 1 hay x 2 . Hình 1.1. Kênh liên lạc C B ộ giải m ã B ộ m ã hoá B A Kênh an toàn Nguồn khoá x k k k y k x - - 9 1.2 MỘT SỐ MÃ HÓA ĐƠN GIẢN: 1.2.1 Mã dịch vòng ( shift cipher) 1.2.1.1 Định nghĩa (modulo): Định nghĩa về đồng dư Giả sử a b là các số nguyên m là một số nguyên dương. Khi đó ta viết a  b (mod m) nếu a-b chia hết cho m. Mệnh đề a  b (mod m) được gọi là " a đồng dư với b theo modulo m". Số nguyên m được gọi là mudulus. Bây giờ ta có thể định nghĩa số học modulo m: Z m được coi là tập hợp {0,1,. . .,m-1} có trang bị hai phép toán cộng nhân. Việc cộng nhân trong Z m được thực hiện giống như cộng nhân các số thực ngoài trừ một điểm là các kết quả được rút gọn theo modulo m. Ví dụ tính 11 13 trong Z 16 . Tương tự như với các số nguyên ta có 11 13 = 143. Để rút gọn 143 theo modulo 16, ta thực hiện phép chia bình thường: 143 = 8  16 + 15, bởi vậy 143 mod 16 = 15 trong Z 16 . Các định nghĩa trên phép cộng phép nhân Z m thảo mãn hầu hết các quy tắc quen thuộc trong số học. Sau đây ta sẽ liệt kê mà không chứng minh các tính chất này: 1. Phép cộng là đóng, tức với bất kì a,b  Z m ,a +b  Z m 2. Phép cộng là giao hoán, tức là với a,b bất kì  Z m a+b = b+a 3. Phép cộng là kết hợp, tức là với bất kì a,b,c  Z m (a+b)+c = a+(b+c) 4. 0 là phần tử đơn vị của phép cộng, có nghĩa là với a bất kì  Z m a+0 = 0+a = a 5. Phép nhân là đóng , tức là với a,b bất kì  Z m , ab  Z m . 6. Phép nhân là giao hoán , nghĩa là với a,b bất kì  Z m , ab = ba 7. Phép nhân là kết hợp, nghĩa là với a,b,c  Z m , (ab)c = a(cb) 8. 1 là phần tử đơn vị của phép nhân, tức là với bất kỳ a  Z m - - 10 9. a1 = 1a = a Phần tử nghịch đảo của phép cộng của phần tử bất kì (a  Z m ) là m-a, nghĩa là a+(m-a) = (m-a)+a = 0 với bất kì a  Z m . 10. Phép nhân có tính chất phân phối đối với phép cộng, tức là đối với a,b,c  Z m , (a+b)c = (ac)+(bc) a(b+c) = (ab) + (ac) Vì phần tử ngược của phép cộng tồn tại trong Z m nên cũng có thể trừ các phần tử trong Z m . Ta định nghĩa a-b trong Z m là a+m-b mod m. Một cách tương tự có thể tính số nguyên a-b rồi rút gọn theo modulo m. Ví dụ : Để tính 11-18 trong Z 31 , ta tính 11+13 mod 31 = 24. Ngược lại, có thể lấy 11-18 được -7 rồi sau đó tính -7 mod 31 = 24. 1.2.1.2 Định nghĩa mã dịch vòng: Mã dịch vòng được xác định trên Z 26 (do có 26 chữ cái trên bảng chữ cái tiếng Anh) mặc dù có thể xác định nó trên Z m với modulus m tuỳ ý. Dễ dàng thấy rằng, mã dịch vọng (MDV) sẽ tạo nên một hệ mật như đã xác định ở trên, tức là d K (e K (x)) = x với mọi x Z 26 . Hình 1.2: Mã dịch vòng Ta sẽ sử dụng MDV (với modulo 26) để mã hoá một văn bản tiếng Anh thông thường bằng cách thiết lập sự tương ứng giữa các kí tự các thặng dư theo modulo 26 như sau: A  0,B  1, . . ., Z  25. Vì phép tương ứng này còn dùng trong một vài ví dụ nên ta sẽ ghi lại để còn tiện dùng sau này: A B C D E F G H I J K L M 0 1 2 3 4 5 6 7 8 9 10 11 12 N O P Q R S T U V W X Y Z Giả sử P = C = K = Z 26 với 0  k  25 , định nghĩa: e K (x) = x +k mod 26 và d K (x) = y -k mod 26 (x,y  Z 26 ) [...]... Theo bảng này có nghĩa là bít thứ 58 của x là bít đầu tiên của IP(x); bít thứ 50 của x là bít thứ hai của IP(x), bit ở vị trí thứ 7 là bit cuối của IP(x) 2.2.2 Cách tính LiRi: Để tính LiRi trước hết ta phải xác định hàm f 2 2.2.1 Các biến trong hàm f: có hai biến vào + Biến thứ nhất A là xâu bít độ dài 32, + Biến thứ hai J là một xâu bít độ dài 48 + Đầu ra của f là một xâu bít độ dài 32 Hàm f thực hiện... vậy mật mã thủ công đòi hỏi bảo mật cả thuật toán mã hoa svaf cả khóa mã Sau nhưng năm 70 của thế kỷ trước, các nhà toán học đã nghiên cứu tạo ra nhiều phương thức mật mã với tốc độ mã hóa rất nhanh (hàng chục thậm chí hàng trăm kilo Byte trong một giây) người ta chỉ cần giữ bí mật khóa mã mã hóa được mọi dữ liệu tùy ý Đó là một bước tiến vĩ đại của kỹ thuật mật mã Trong đó mã DES (Data Encryption... Hai bít b1b6 xác định biểu diễn nhị phân của hàng r của Sj ( 0  r  3) bốn bít (b2b3b4b5) xác định biểu diễn nhị phân của cột c của Sj ( 0  c  15 ) Khi đó Sj(Bj) sẽ xác định phần tử Sj(r,c); phần tử này viết dưới dạng nhị phân là một - 32 xâu bít có độ dài 4 ( Bởi vậy, mỗi Sj có thể được coi là một hàm mã mà đầu vào là một xâu bít có độ dài 2 một xâu bít có độ dài 4, còn đầu ra là một xâu bít... bi1bi6 si← bi2bi3bi4bi5 chính là tọa độ (hoành tung) của ma trận Si từ ti chuyển thành Ci=Ci1Ci2Ci3Ci4 với Cijє{0,1} i= 1,8 j= 1,4 Vậy đầu ra của 8 hộp S là: C1,C2,….,C8 mỗi Ci gồm gồm 4 bít tạo thành khối C= C1 C2….C8 gồm 32 bít 32 bít này được đưa vào ma trận chuyển vi P để cho đầu ra cũng là 32 bít Đó là đầu ra của hàm f(Ri-1,Ki) Ta có thể trình bầy cụ thể cách tính hàm f như sau: Với xâu bít... hóa giải mã bằng thủ công được thực hiện rất dễ dàng , việc trao đổi khóa mã cũng đơn giản bằng thủ công hoặc bằng qui ước Song với lượng thông tin quá phong phú như hiện nay với mạng truyền thông như hiện nay thì mật mã thủ công vừa không đảm bảo mật lại việc mã hóa quá chậm khó tự động hóa mã giải mã Mặt khác các thuật toán mã hóa thủ công đòi hỏi phải tuyệt đối dữ mật Như vậy mật. .. đó L0 gồm 32 bít đầu R0 là 32 bít cuối 2 Sau đó tính toán 16 lần lặp theo một hàm xác định Ta sẽ tính LiRi, 1  i 16 theo quy tắc sau: Li = Ri-1 Ri = Li-1  f(Ri-1,Ki) trong đó - 25  kí hiệu cộng theo modulo 2 của hai xâu bít f là một hàm mà của Ri-1,Ki mô tả sau Ki là các xâu bít độ dài 48 được tính như hàm của khoá K ( trên thực tế mỗi Ki là một phép chọn hoán vị bít trong K) 3 Áp dụng phép hoán... một điển hình của bước tiến này Chương này, em muốn mô phỏng mã hóa giải mã của thuật toán DES 2.1 MÔ TẢ DES (Data Encryption Standard) DES mã hoá một xâu bít x: Bản rõ x độ dài 64 bit khoá k độ dài 56 bít Bản mã y nhận được cũng là một xâu bít có độ dài 64 bit Thuật toán tiến hành theo 3 giai đoạn: 1.Với bản rõ cho trước x, một xâu bít x0 sẽ được xây dựng bằng cách hoán vị các bít của x theo phép... bit đầu bit cuối được dùng để xác định vị trí của hàng trong phạm vi từ 0 đến 3 (hoặc từ 00 đến 11) bốn bit giữa dùng để xác định vị trí của cột trong phạm vi từ 0 đến 15 (hoặc từ 0000 đến 1111) Sau khi xác định được vị trí của hàng cột ta đối chiếu trong bảng S được một số thập phân quy đổi số thập phân đó ra gia trị nhị thân ta được Cj Ví dụ: Bit đầu vào của B là B = 100110 Bit đầu cuối... các số tương ứng là 7, 14 19 Bây giờ sẽ mã hoá: 7  7 +3 mod 26 = 52 mod 26 = 0 7  14 + 3 mod 26 = 101 mod 26 =23 - 19 7  19 +3 mod 26 = 136 mod 26 = 6 Bởi vậy 3 ký hiệu của bản mã là 0, 23 6 tương ứng với xâu ký tự AXG 1.2.4 Mật mã Hill 1.2.4.1 Khái niệm: Giả sử m là một số nguyên dương, đặt P = C = (Z26)m Ý tưởng ở đây là lấy m tổ hợp tuyến tính của m ký tự trong một phần tử của bản rõ để... thứ 1 là bit thứ 2 bit cuối của E(Ri-1) Bước 2:Xác định biến thứ hai (biến J) : Biến j thực chất là phép hoán vị dịch vòng của xâu bit khóa k, Thuật toán tạo 16 khóa con k 1 , k 2 ,…… k 16 , - 28 K PC-1 C0 D0 LS1 LS1 C1 D1 PC-2 K1 PC-2 K16 LS16 LS16 C16 D16 Theo sơ đồ trên việc xác định Ki được thực hiện theo 03 bước sau: Bước 1 Với khóa K 64 bit cho trước hoán vị các bít của K theo phép hoán . 3.4.2 Chia sẻ Khóa bí mật dựa vào “ mạch đơn điệu” 57 CHƯƠNG 4. ỨNG DỤNG THUẬT TOÁN DES VÀ LƯỢC ĐỒ CHIA SẺ BÍ MẬT VÀO THI TUYỂN SINH 61 4.1 Các ứng dụng: . ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ NGUYỄN BÁ THÁI NGHIÊN CỨU LƯỢC ĐỒ CHIA SẺ BÍ MẬT VÀ ỨNG DỤNG CỦA CHÚNG VÀO VIỆC

Ngày đăng: 18/02/2014, 12:11

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