Xem mẫu

  1. ĐẠ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 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. -2- LỜI CAM ĐOAN Tôi xin cam đoan: Luận văn “ 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” 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. -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 VÀ ĐỊ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Ẻ BÍ MẬT ................................................ 49 3.1 Khái niệm về chia sẻ bí mật: ................................................................... 49 3.2 Sơ đồ chia sẻ bí mật ................................................................................ 50 3.2.1 Khái niệm “Sơ đồ chia sẻ bí mật”: ................................................... 50 3.2.2 Định nghĩa: ...................................................................................... 50 3.3 Cấu trúc truy nhập và sơ đồ chia sẻ bí mật .............................................. 55 3.3.1 Định nghĩa sơ đồ chia sẻ bí mật hoàn thiện ..................................... 55
  4. -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 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: ........................................................................................ 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ẻ bí mật bằng ngôn ngữ C: ....................... 63 4.2.3.1 Chia sẻ khoá bí mật theo giao thức “chia sẻ bí mật” Shamir. ....... 63 4.2.3.2 Khôi phục khoá bí 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á bí 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á bí mật theo phương pháp bằng mạch đơn điệu ........ 69 4.2.3.4 Khôi phục khoá bí 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. -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 và 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 và 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ỹ và 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 và các lược đồ chia sẻ bí 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 và các ban nghành khác liên quan. Nó làm tổn hại về kinh tế và 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 đó là ứng dụng LƯỢC ĐỒ CHIA SẺ BÍ MẬT vì nó đảm bảo được tính bí mật và 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ẻ bí 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. -6- Chương 1: Mật mã cổ điển: chương này nói về khái niệm và đị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 và giải mã trong thuật toán DES, các vấn đề xung quanh DES. Chương 3: Chia sẻ bí mật: Chương này nói về khái niệm chia sẻ bí mật, phương thức chia sẻ và khôi phục khóa bí mật. 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: chương này nói về phần ứng dụng và mô phỏng lược đồ chia se bí 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 và đó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. -7- CHƯƠNG 1. MẬT MÃ CỔ ĐIỂN 1.1 KHÁI NIỆM VÀ ĐỊ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 và 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 và 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ã và 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ã ek: P  C và một quy tắcv giải mã tương ứng dk  D. Mỗi ek: P  C và dk: C  P là những hàm sao cho: dk(ek (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 ek và bản mã nhận được sau đó được giải mã bằng dk 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 = x1,x2 ,. . .,xn
  8. -8- với số nguyên n  1 nào đó. Ở đây mỗi ký hiệu của mỗi bản rõ xi  P , 1  i  n. Mỗi xi sẽ được mã hoá bằng quy tắc mã ek với khoá K xác định trước đó. Bản mã thu được là: y = y1,y2 ,. . .,yn Trong đó yk=ek(xi) i=1,2,…,n. còn kєK Khi Bob nhận đươc y1,y2 ,. . .,yn anh ta sẽ giải mã bằng hàm giải mã dk và thu được bản rõ gốc x1,x2 ,. . .,xn. Hình 1.1 là một ví dụ về một kênh liên lạc ` C x x y Bộ mã hoá A Bộ giải mã B k k k Kênh an toàn k Nguồn khoá Hình 1.1. 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 = ek(x1) = ek(x2) trong đó x1  x2 , thì B sẽ không có cách nào để biết liệu bản rõ là x1 hay x2 .
  9. -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 và b là các số nguyên và 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: Zm được coi là tập hợp {0,1,. . .,m-1} có trang bị hai phép toán cộng và nhân. Việc cộng và nhân trong Zm được thực hiện giống như cộng và 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 Z16 . 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 Z16 . Các định nghĩa trên phép cộng và phép nhân Zm 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  Zm ,a +b  Zm 2. Phép cộng là giao hoán, tức là với a,b bất kì  Zm 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  Zm (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ì  Zm a+0 = 0+a = a 5. Phép nhân là đóng , tức là với a,b bất kì  Zm , ab  Zm . 6. Phép nhân là giao hoán , nghĩa là với a,b bất kì  Zm , ab = ba 7. Phép nhân là kết hợp, nghĩa là với a,b,c  Zm , (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  Zm
  10. -0 1- 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  Zm ) là m-a, nghĩa là a+(m-a) = (m-a)+a = 0 với bất kì a  Zm . 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  Zm , (a+b)c = (ac)+(bc) và a(b+c) = (ab) + (ac) Vì phần tử ngược của phép cộng tồn tại trong Zm nên cũng có thể trừ các phần tử trong Zm . Ta định nghĩa a-b trong Zm 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 Z31, 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 Z26 (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 Zm 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à dK (eK(x)) = x với mọi x Z26 . Giả sử P = C = K = Z26 với 0  k  25 , định nghĩa: eK(x) = x +k mod 26 và dK(x) = y -k mod 26 (x,y  Z26) 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ự và 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
  11. -1 1- 13 14 15 16 17 18 19 20 21 22 23 24 25
  12. -2 1- Ví dụ 1.1: Giả sử khoá cho MDV là K = 11 và bản rõ là: wewillmeetatmidnight Trước tiên biến đổi bản rõ thành dãy các số nguyên nhờ dùng phép tương ứng trên. Ta có: 22 4 22 8 11 11 12 4 4 19 0 19 12 8 3 13 8 6 7 19 sau đó cộng 11 vào mỗi giá trị rồi rút gọn tổng theo modulo 26 7 15 7 19 22 22 23 15 15 4 11 4 23 19 14 24 19 17 18 4 Cuối cùng biến đổi dãy số nguyên này thành các kí tự thu được bản mã sau: HPHTWWXPPELEXTOYTRSE Để giải bản mã này, trước tiên, Bob sẽ biến đổi bản mã thành dãy các số nguyên rồi trừ đi cho 11 ( rút gọn theo modulo 26) và cuối cùng biến đổi lại dãy này thành các ký tự. Nhận xét rằng, MDV (theo modulo 26) là không an toàn vì nó có thể bị thám theo phương pháp vét cạn. Do chỉ có 26 khoá nên dễ dàng thử mọi khoá dK có thể cho tới khi nhận được bản rõ có nghĩa. 1.2.2 Mã thay thế (MTT) Trên thực tế MTT có thể lấy cả P và C đều là bộ chữ cái tiếng anh, gồm 26 chữ cái. Ta dùng Z26 trong MDV vì các phép mã và giải mã đều là các phép toán đại số. Tuy nhiên, trong MTT, thích hợp hơn là xem phép mã và giải mã như các hoán vị của các kí tự. Cho P =C = Z26 . K chứa mọi hoán vị có thể của 26 kí hiệu 0,1, . . . ,25 Với mỗi phép hoán vị  K , ta định nghĩa: e(x) = (x) và d(y) =  -1(y) trong đó  -1 là hoán vị ngược của . Hình 1.3 Mã thay thế
  13. -3 1- Sau đây là một ví dụ về phép hoán vị ngẫu nhiên  tạo nên một hàm mã hoá (cũng như trước, các kí hiệu của bản rõ được viết bằng chữ thường còn các kí hiệu của bản mã là chữ in hoa). a b c d e F g h i j k l M X N Y A H P O G Z Q W B T n o p q r S t u v w x y Z S F L R C V M U E K J D I Như vậy, e (a) = X, e (b) = N,. . . . Hàm giải mã là phép hoán vị ngược. Điều này được thực hiện bằng cách viết hàng thứ hai lên trước rồi sắp xếp theo thứ tự chữ cái. Ta nhận được: A B C D E F G H I J K L M d l r y v O h e z x w p T N O P Q R S T U V W X Y Z b g f j q N m u s k a c i Mỗi khoá của MTT là một phép hoán vị của 26 kí tự. Số các hoán vị này là 26!, lớn hơn 4 10 26 là một số rất lớn. Bởi vậy, phép tìm khoá vét cạn không thể thực hiện được, thậm chí bằng máy tính. Tuy nhiên, sau này sẽ thấy rằng MTT có thể dễ dàng bị thám bằng các phương pháp khác.
  14. -4 1- 1.2.3. Mã Affine MDV là một trường hợp đặc biệt của MTT chỉ gồm 26 trong số 26! các hoán vị có thể của 26 phần tử. Một trường hợp đặc biệt khác của MTT là mã Affine được mô tả dưới đây. trong mã Affine, ta giới hạn chỉ xét các hàm mã có dạng: e(x) = ax + b mod 26, a,b  Z26 . Các hàm này được gọi là các hàm Affine (chú ý rằng khi a = 1, ta có MDV). Để việc giải mã có thể thực hiện được, yêu cầu cần thiết là hàm Affine phải là đơn ánh. Nói cách khác, với bất kỳ y  Z26, ta muốn có đồng nhất thức sau: ax + b  y (mod 26) phải có nghiệm x duy nhất. Đồng dư thức này tương đương với: ax  y-b (mod 26) Vì y thay đổi trên Z26 nên y-b cũng thay đổi trên Z26 . Bởi vậy, ta chỉ cần nghiên cứu phương trình đồng dư: ax  y (mod 26) (y Z26 ). 1.2.3.1 Định lý (đồng dư thức): Đồng dư thức ax  b mod m chỉ có một nghiệm duy nhất x  Zm với mọi b  Zm khi và chỉ khi UCLN(a,m) = 1. Vì 26 = 2 13 nên các giá trị a  Z26 thoả mãn UCLN(a,26) = 1 là a = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23 và 25. Tham số b có thể là một phần tử bất kỳ trong Z26 . Như vậy, mã Affine có 13  25 = 325 (vì k=0 bị loại) khoá có thể ( dĩ nhiên con số này quá nhỏ để bảo đảm an toàn). Bây giờ ta sẽ xét bài toán chung với modulo m. Ta cần một định nghĩa khác trong lý thuyết số. 1.2.3.2 Định nghĩa (hàm Euler): Giả sử a  1 và m  2 là các số nguyên. UCLN(a,m) = 1 thì ta nói rằng a và m là nguyên tố cùng nhau. Số các số nguyên trong Zm nguyên tố cùng nhau với m thường được ký hiệu là (m) ( hàm này được gọi là hàm Euler).
  15. -5 1- Một kết quả quan trọng trong lý thuyết số cho ta giá trị của (m) theo các thừa số trong phép phân tích theo luỹ thừa các số nguyên tố của m. ( Một số nguyên p 1 là số nguyên tố nếu nó không có ước dương nào khác ngoài 1 và p. Mọi số nguyên m 1 có thể phân tích được thành tích của các luỹ thừa các số nguyên tố theo cách duy nhất. Ví dụ 60 = 2 3  3  5 và 98 = 2  7 2 ). Ta sẽ ghi lại công thức cho (m) trong định lí sau: Định lý n m= p Giả sử ei i i 1 Trong đó các số nguyên tố pi khác nhau và ei >0 , 1  i  n. Khi đó n  (m) = (p - p ei 1 ei ) i i i 1 Định lý này cho thấy rằng, số khoá trong mã Affine trên Zm bằng m x (m), trong đó (m) được cho theo công thức trên. ( Số các phép chọn của b là m và số các phép chọn của a là (m) với hàm mã hoá là e(x) = ax + b). Ví dụ, khi m = 60, m=2×2×3×5=22×31×51=>(60) = (22-21)( 31-30)(51-50) = 16 và số các khoá trong mã Affine là: 16 x 60=960. Một vài tính chất đáng lưu ý của hàm Erler(). (a) Nếu p là số nguyên tố thì (p)=p-1. (b) Nếu p,q là hai số nguyên tố khác nhau.Khi đó, (p.q)= (p). (q)=(p-1)(q-1) (c) Giả sử m,n là hai số nguyên dương tùy ý sao cho UCLN(m,n)=1 (tức m,n nguyên tố cùng nhau).Khi đó , (m,n)= (m). (n) Ví dụ m=15, n=16 Khi đó (m,n)= (15,16)= (15). (16)=8.8=64. (d) Nếu m=pk với p là số nguyên tố ,thì (m)= (pk)=pk-1(p-1).
  16. -6 1- Từ đó suy ra rằng (2)=1, (1)=0 1.2.3.3 Định nghĩa (phần tử nghich đảo trong phép nhân): Giả sử a  Zm . Phần tử nghịch đảo (theo phép nhân) của a là phần tử a-1  Zm sao cho aa-1  a-1a  1 (mod m). Bằng các lý luận tương tự như trên, có thể chứng tỏ rằng a có nghịch đảo theo modulo m khi và chỉ khi UCLN(a,m) =1, và nếu nghịch đảo này tồn tại thì nó phải là duy nhất. Ta cũng thấy rằng, nếu b = a-1 thì a = b-1 . Nếu p là số nguyên tố thì mọi phần tử khác không của ZP đều có nghịch đảo. Một vành trong đó mọi phần tử khác 0 đều có nghịch đảo được gọi là một trường. Bằng phương pháp thử và sai ta có thể tìm được các nghịch đảo của các phần tử nguyên tố cùng nhau với 26: 1-1 = 1, 3-1 = 9, 5-1 = 21, 7-1 = 15, 11-1 = 19, 17-1 =23, 25-1 = 25. (Có thể dễ dàng kiểm chứng lại điều này, ví dụ: 7  15 = 105  1 mod 26, bởi vậy 7-1 = 15). Xét phương trình đồng dư y  ax+b (mod 26). Phương trình này tương đương với ax  y-b ( mod 26) Vì UCLN(a,26) =1 nên a có nghịch đảo theo modulo 26. Nhân cả hai vế của đồng dư thức với a-1 ta có: a-1(ax)  a-1(y-b) (mod 26) Áp dụng tính kết hợp của phép nhân modulo: a-1(ax)  (a-1a)x  1x  x. Kết quả là x  a-1(y-b) (mod 26). Đây là một công thức tường minh cho x. Như vậy hàm giải mã là: d(y) = a-1(y-b) mod 26 Thuật toán Euclide mở rộng : Bổ đề : Nếu UCLN(m,n)=k thì tồn tại 2 số nguyên x,y sao cho mx+ny=k. Thuật toán Euclide mở rộng cho phép tìm được cả 3 số x,y,k khi điều kiện của bồ đề được thỏa mãn. Sau đây là nội dung của thuật toán Euclide mở rộng: Cho m,n là hai số nguyên dương Ta hãy tìm x,y,k sao cho mx + ny =k.
  17. -7 1- Đầu vào (input) : m,n (giả sử m>n). đầu ra: x,y,k. cho (a1,a2,a3),( b1,b2,b3),(c1,c2,c3) là 3vectơ Bước 1: (a1,a2,a3)←(1,0,m), (b1,b2,b3)←(0,1,n) Bước 2: Nếu b3=0 thì thuật toán dừng và a1,a2,a3 là đáp số của bài toán (tức là x=a1,y=a2,k=a3). Bước 3: Đặt q=[a3/b3]; (là phần nguyên của a3/b3 , tức q là số nguyên lớn nhất nhưng không vượt quá a3/b3) và (c1,c2,c3)← (a1,a2,a3)-q( b1,b2,b3); (a1,a2,a3)← ( b1,b2,b3); ( b1,b2,b3)← (c1,c2,c3) và trở về bước 2. Thuật toán dừng sẽ cho : a1=x, a2=y, a3=k out put: Ví dụ1 cho m=42, n=4 Ta có bảng quá trình tính toán sau đây: q a1 a2 a3 b1 b 2 b 3 c 1 c 2 c 3 10 1 0 42 0 1 4 1 -10 2 2 01 4 1 -10 2 -2 21 0 1 -10 2 -2 21 0 Vậy x=1, y=-10 và k=2. Ví dụ 2 : m=95, n=8. Quá trình tính toán được cho trong bảng sau: q a1 a2 a3 b1 b2 b3 c1 c2 c3 11 1 0 95 0 1 8 1 -11 7 1 0 1 8 1 -11 7 -1 12 1 7 1 -11 7 -1 12 1 8 -95 0 -1 12 1 8 -95 0 Vậy x=-1, y=12, k=1.
  18. -8 1- Chú ý : số trong ô a2 chính là nghịch đảo của 8mod95 (tức số y là nghịch đảo của n theo module m) (Trong trường hợp k=1). Thật vậy ta có 12.8≡1mod95 Do đó từ định nghĩa 12 là nghịch đảo của 8 theo module95 (vì UCLN(8,95)=1 nên tồn tại nghịch đảo của 8 theo mod95). Hình 1.4 cho mô tả đầy đủ về mã Affine. Cho P = C = Z26 và giả sử P = { (a,b)  Z26  Z26 : UCLN(a,26) =1 } Với K = (a,b) K , ta định nghĩa: eK(x) = ax +b mod 26 và dK(y) = a-1(y-b) mod 26, x,y  Z26 Hình 1.4 Mật mã Affine Ví dụ 1.3 Giả sử K = (7,3). Như đã nêu ở trên, 7-1 mod 26 = 15. Hàm mã hoá là eK(x) = 7x+3 Và hàm giải mã tương ứng là: dK(x) = 15(y-3) = 15y -19 Ở đây, tất cả các phép toán đều thực hiện trên Z26. Ta sẽ kiểm tra liệu dK(eK(x)) = x với mọi x  Z26 không?. Dùng các tính toán trên Z26 , ta có dK(eK(x)) =dK(7x+3) =15(7x+3)-19 = x +45 -19 = x. Để minh hoạ, ta hãy mã hoá bản rõ "hot". Trước tiên biến đổi các chữ h, o, t thành các thặng du theo modulo 26. Ta được các số tương ứng là 7, 14 và 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. -9 1- 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 và 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õ để tạo ra m ký tự ở một phần tử của bản mã. Ví dụ nếu m = 2 ta có thể viết một phần tử của bản rõ là x = (x1,x2) và một phần tử của bản mã là y = (y1,y2). Ở đây, y1cũng như y2 đều là một tổ hợp tuyến tính của x1và x2. Chẳng hạn, có thể lấy y1 = 11x1+ 3x2 y2 = 8x1+ 7x2 Tất nhiên có thể viết gọn hơn theo ký hiệu ma trận như sau 11 8 (y1 y2) = (x1 x2) 3 7 Nói chung, có thể lấy một ma trận K kích thước m  m làm khoá. Nếu một phần tử ở hàng i và cột j của K là ki,,j thì có thể viết K = (ki,,j), với x = (x1, x2, . . . ,xm) (y1,. . .,ym)=(x1, . ….,xm)  P và K K , ta tính y = eK(x) = (y1, y2, . . . ,ym) như sau: k1,1 k1,2 ... k1,m k2,1 k2,2 ... k2,m ... ... ... .. km,1 km,2 ... km,m Nói một cách khác y = xK.
  20. -0 2- 1.2.4.2 Định nghĩa ( ma trận đơn vị) Ma trận đơn vị m  m (ký hiệu là Im ) là ma trận cấp m  m có các số 1 nằm ở 10 I2 = 01 đường chéo chính và các số 0 ở vị trí còn lại. Như vậy ma trận đơn vị 2  2 là: Im được gọi là ma trận đơn vị vì AIm = A với mọi ma trận đơn vị là ma trận vuông cấp m  m tập ma trận vuông cấp m × m nghịch đảo dùng ma trận Tm × m làm thành 1 nhóm nhân. Ma trận nghịch đảo của ma trận A cấp m  m ( nếu tồn tại) là ma trận A-1 sao cho AA-1 = A-1A = Im . Không phải mọi ma trận đều có nghịch đảo, nhưng nếu tồn tại thì nó duy nhất. Với các định nghĩa trên, có thể dễ dàng xây dựng công thức giải mã đã nêu: Vì y = xK, ta có thể nhân cả hai vế của đẳng thức với K-1 và nhận được: yK-1 = (xK)K-1 = x(KK-1) = xIm = x 1.2.4.3 Định nghĩa (Định thức của ma trận): Định thức của ma trận A = (a,i j ) cấp 2 2 là giá trị det A = a1,1 a2,2 - a1,2 a2,1 Một ma trận có nghịch đảo khi và chỉ khi định thức định thức của nó khác 0. Tuy nhiên trên Z 26 một ma trận K có nghịch đảo khi và chỉ khi UCLN (det K,26)= 1 1.2.4.4 Định lý (ma trận ngịch đảo): Giả sử A = (ai j) là một ma trận cấp 2  2 trên Z26 sao cho det A = a1,1a2,2 –a1,2.a2,1#0. a2,2 -a1,2 -1 -1 A = (det A) -a2,1 a1,1 Khi đó: Ví dụ: Có 1 ma trận K 11 8 K= 3 7
nguon tai.lieu . vn