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

40 443 0
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

-2- ĐẠ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 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” công trình nghiên cứu khoa học độc lập Kết nghiên cứu trình bầy luận văn chưa công bố hình thức 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- -4- MỤC LỤC 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 Ứ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 giả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ô lược đồ chia sẻ bí mật 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 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 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 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ở chương trình 72 KẾT LUẬN 79 TÀI LIỆU THAM KHẢO 80 LỜI NÓI ĐẦU CHƯƠNG 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: 1.1.2 Định nghĩa 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): 1.2.1.2 Định nghĩa mã dịch vòng: 10 1.2.2 Mã thay (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 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 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 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.1 Các biến hàm f: 26 2.2.2.2 Cách tính hàm f: 30 2.2.3 Xác định 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 thực tế 47 2.4.3 Một vài kết luận mã DES 48 CHƯƠNG CÁC SƠ ĐỒ CHIA SẺ BÍ MẬT 49 3.1 Khái niệm 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 sơ đồ chia sẻ bí mật 55 3.3.1 Định nghĩa sơ đồ chia sẻ bí mật hoàn thiện 55 -5- LỜI NÓI ĐẦU Ngày nay, mạng máy tính ngày trở nên phổ biến Mỗi quốc gia có mạng riêng với nhiều mạng mang tính phận Trên pham vi toàn cầu, người ta dùng mạng Internet 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ử, phủ điện tử áp dụng rộng rãi Các ứng dụng mạng máy tính ngày trở nên phổ biến, thuận lợi quan trọng yêu cầu an toàn mạng, an ninh liệu trở nên cấp bách cần thiết Trên giới có nhiều quốc gia, nhiều nhà khoa học nghiên cứu vấn đề bảo mật, đưa nhiều thuật toán với mục đích thông tin truyền không bị lấy cắp bị lấy cắp không sử dụng được.Trong đề tài em đưa thuật toán thuật toán DES (Data encryption standar) thuật toán chuẩn mỹ, mỹ nhiều nước giới sử dụng, thuật toán đưa vào sử dụng nhiều năm giữ tính bảo mật Tuy nhiên với công nghệ phát triển thuật toán DES trở lên không an toàn tuyệt đối nữa, người ta đưa thuật toán 3DES nguyên tắc thuật toán 3DES dựa tảng thuật toán DES số bít mã hóa tăng lên Mã hóa lược đồ chia sẻ bí mật ứng dung nhiều lĩnh vực ví dụ: phát hành thẻ ATM ngân hàng, đấu thầu từ xa, thi tuyển sinh, lĩnh vực quân sự….Trong đề tài em đề cập tới lĩnh vực ứng dụng 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 ban nghành khác liên quan Nó làm tổn hại kinh tế công sức không đối ban nghành tham gia tổ chức kỳ thi mà thí sinh dự thi, điều bắt buộc phải tổ chức hàng năm Do để giảm thiểu khâu thi tuyển sinh mà đảm bảo tính công xác điều cần thiết, theo để làm đ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, ứng dụng ứng dụng LƯỢC ĐỒ CHIA SẺ BÍ MẬT đảm bảo tính bí mật xác mà thi tuyển sinh hai điều quan trọng 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 ứng dụng chúng thi tuyển sinh Luận văn gồm chương: -6- Chương 1: Mật mã cổ điển: chương nói khái niệm định nghĩa số mật mã cổ điển Chương 2: Thuật toán DES: chương nói mã hóa giải mã thuật toán DES, vấn đề xung quanh DES Chương 3: Chia sẻ bí mật: Chương nói khái niệm chia sẻ bí mật, phương thức chia sẻ khôi phục khóa bí mật Chương 4: Ứng dụng thuật toán DES Lược đồ chia sẻ bí mật vào thi tuyển sinh: chương nói phần ứng dụng mô lược đồ chia se bí mật 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 xin chân thành cảm ơn thầy cô giáo, cán 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 suốt khóa học -7- -8- CHƯƠNG MẬT MÃ CỔ ĐIỂN với số nguyên n  Ở ký hiệu rõ xi  P ,  i  n Mỗi xi mã hoá quy tắc mã ek với khoá K xác định trước 1.1 KHÁI NIỆM VÀ ĐỊNH NGHĨA VỀ MẬT MÃ Bản mã thu là: y = y1,y2 , .,yn Trong yk=ek(xi) i=1,2,…,n kєK 1.1.1 Khái niệm: - Chức mật mã tạo khả liên lạc kênh không mật cho hai người sử dụng (tạm gọi A B) cho đối phương (C) hiểu thông tin truyền - Kênh liên lạc đường dây điện thoại mạng máy tính Thông tin mà Al muốn gửi cho B rõ văn tiếng Anh, liệu số tài liệu có cấu trúc tuỳ ý - A mã hoá rõ khóa xác định trước gửi mã kết kênh C có mã thu trộm kênh song xác định nội dung rõ, B (người biết khoá mã) giải mã thu rõ Ta mô tả hình thức hoá nội dung cách dung khái niệm toán học sau: Khi Bob nhận đươc y1,y2 , .,yn giải mã hàm giải mã dk thu rõ gốc x1,x2 , .,xn Hình 1.1 ví dụ kênh liên lạc ` C x A Bộ mã hoá y x Bộ giải mã B k k Kênh an toàn k k Nguồn khoá 1.1.2 Định nghĩa Một hệ mật (P,C,K,E,D) thoả mãn điều kiện sau: P tập hữu hạn rõ C tập hữu hạn mã K (không gian khoá) tập hữu hạn khoá Đối với k K có quy tắc mã ek: P  C quy tắcv giải mã tương ứng dk  D Mỗi ek: P  C dk: C  P hàm cho: dk(ek (x)) = x với rõ x  P Trong đó, cần lưu ý tính chất 4: Nội dung rõ x mã hoá ek mã nhận sau giải mã dk ta phải thu rõ ban đầu x Giả sử ta có rõ cần truyền là: x = x1,x2 , .,xn Hình 1.1 Kênh liên lạc Rõ ràng trường hợp hàm mã hoá phải hàm đơn ánh ( tức ánh xạ 1-1), không việc giải mã không thực cách tường minh Ví dụ y = ek(x1) = ek(x2) x1  x2 , B cách để biết liệu rõ x1 hay x2 -9- -10- a1 = 1a = a Phần tử nghịch đảo phép cộng phần tử (a  Zm ) m-a, nghĩa a+(m-a) = (m-a)+a = với a  Zm 1.2 MỘT SỐ MÃ HÓA ĐƠN GIẢN: 1.2.1 Mã dịch vòng ( shift cipher) 10 Phép nhân có tính chất phân phối phép cộng, tức a,b,c  Zm , (a+b)c = (ac)+(bc) a(b+c) = (ab) + (ac) 1.2.1.1 Định nghĩa (modulo): Định nghĩa đồng dư Giả sử a b số nguyên m số nguyên dương Khi ta viết a  b (mod m) a-b chia hết cho m Mệnh đề a  b (mod m) gọi " a đồng dư với b theo modulo m" Số nguyên m gọi mudulus Vì phần tử ngược phép cộng tồn Zm nên trừ phần tử Zm Ta định nghĩa a-b Zm a+m-b mod m Một cách tương tự tính số nguyên a-b rút gọn theo modulo m Bây ta định nghĩa số học modulo m: Zm coi 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 Zm thực giống cộng nhân số thực trừ điểm kết rút gọn theo modulo m Ví dụ : Để tính 11-18 Z31, ta tính 11+13 mod 31 = 24 Ngược lại, lấy 11-18 -7 sau tính -7 mod 31 = 24 Ví dụ tính 11 13 Z16 Tương tự với số nguyên ta có 11 13 = 143 Để rút gọn 143 theo modulo 16, ta thực phép chia bình thường: 143 =  16 + 15, 143 mod 16 = 15 Z16 1.2.1.2 Định nghĩa mã dịch vòng: Mã dịch vòng xác định Z26 (do có 26 chữ bảng chữ tiếng Anh) xác định Zm với modulus m tuỳ ý Dễ dàng thấy rằng, mã dịch vọng (MDV) tạo nên hệ mật xác định trên, tức dK (eK(x)) = x với x Z26 Các định nghĩa phép cộng phép nhân Zm thảo mãn hầu hết quy tắc quen thuộc số học Sau ta liệt kê mà không chứng minh tính chất này: Giả sử P = C = K = Z26 với  k  25 , định nghĩa: eK(x) = x +k mod 26 dK(x) = y -k mod 26 (x,y  Z26) Phép cộng đóng, tức với a,b  Zm ,a +b  Zm Phép cộng giao hoán, tức với a,b  Zm Hình 1.2: Mã dịch vòng a+b = b+a Phép cộng kết hợp, tức với a,b,c  Zm (a+b)+c = a+(b+c) phần tử đơn vị phép cộng, có nghĩa với a  Zm Ta sử dụng MDV (với modulo 26) để mã hoá văn tiếng Anh thông thường cách thiết lập tương ứng kí tự thặng dư theo modulo 26 sau: A  0,B  1, , Z  25 Vì phép tương ứng dùng vài ví dụ nên ta ghi lại để tiện dùng sau này: a+0 = 0+a = a Phép nhân đóng , tức với a,b  Zm , ab  Zm A B C D E F G H I J K L M 10 11 12 R S T U V W X Y Z Phép nhân giao hoán , nghĩa với a,b  Zm , ab = ba Phép nhân kết hợp, nghĩa với a,b,c  Zm , (ab)c = a(cb) phần tử đơn vị phép nhân, tức với a  Zm N O P Q -11- 13 14 15 16 17 18 19 -12- 20 21 22 23 24 25 Ví dụ 1.1: Giả sử khoá cho MDV K = 11 rõ là: wewillmeetatmidnight Trước tiên biến đổi rõ thành dãy số nguyên nhờ dùng phép tương ứng Ta có: 22 22 11 11 12 4 19 19 12 13 19 sau cộng 11 vào giá trị rút gọn tổng theo modulo 26 15 19 22 22 23 15 15 11 23 19 14 24 19 17 18 Cuối biến đổi dãy số nguyên thành kí tự thu mã sau: HPHTWWXPPELEXTOYTRSE Để giải mã này, trước tiên, Bob biến đổi mã thành dãy số nguyên trừ cho 11 ( rút gọn theo modulo 26) cuối biến đổi lại dãy thành ký tự Nhận xét rằng, MDV (theo modulo 26) không an toàn bị thám theo phương pháp vét cạn Do có 26 khoá nên dễ dàng thử khoá dK nhận rõ có nghĩa 1.2.2 Mã thay (MTT) Trên thực tế MTT lấy P C chữ tiếng anh, gồm 26 chữ Ta dùng Z26 MDV phép mã giải mã phép toán đại số Tuy nhiên, MTT, thích hợp xem phép mã giải mã hoán vị kí tự Cho P =C = Z26 K chứa hoán vị 26 kí hiệu 0,1, ,25 Với phép hoán vị  K , ta định nghĩa: e(x) = (x) d(y) =  -1(y) -1  hoán vị ngược  Hình 1.3 Mã thay -13- -14- 1.2.3 Mã Affine Sau ví dụ phép hoán vị ngẫu nhiên  tạo nên hàm mã hoá (cũng trước, kí hiệu rõ viết chữ thường kí hiệu mã chữ in hoa) MDV trường hợp đặc biệt MTT gồm 26 số 26! hoán vị 26 phần tử Một trường hợp đặc biệt khác MTT mã Affine mô tả mã Affine, ta giới hạn xét hàm mã có dạng: e(x) = ax + b mod 26, 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 a,b  Z26 Các hàm gọi hàm Affine (chú ý a = 1, ta có MDV) n o p q r S t u v w x y Z Để việc giải mã thực được, yêu cầu cần thiết hàm Affine phải đơn ánh Nói cách khác, với y  Z26, ta muốn có đồng thức sau: S F L R C V M U E K J D I ax + b  y (mod 26) phải có nghiệm x Đồng dư thức tương đương với: Như vậy, e (a) = X, e (b) = N, Hàm giải mã phép hoán vị ngược Điều thực cách viết hàng thứ hai lên trước xếp theo thứ tự chữ Ta nhận được: ax  y-b (mod 26) Vì y thay đổi Z26 nên y-b thay đổi Z26 Bởi vậy, ta cần nghiên cứu phương trình đồng dư: ax  y (mod 26) (y Z26 ) A B C D E F G H I J K L M 1.2.3.1 Định lý (đồng dư thức): d l r y v O h e z x w p T Đồng dư thức ax  b mod m có nghiệm x  Zm với b  Zm UCLN(a,m) = 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á MTT phép hoán vị 26 kí tự Số hoán vị 26!, lớn 10 26 số lớn Bởi vậy, phép tìm khoá vét cạn thực được, chí máy tính Tuy nhiên, sau thấy MTT dễ dàng bị thám phương pháp khác Vì 26 = 13 nên giá trị a  Z26 thoả mãn UCLN(a,26) = a = 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23 25 Tham số b phần tử Z26 Như vậy, mã Affine có 13  25 = 325 (vì k=0 bị loại) khoá ( dĩ nhiên số nhỏ để bảo đảm an toàn) Bây ta xét toán chung với modulo m Ta cần định nghĩa khác lý thuyết số 1.2.3.2 Định nghĩa (hàm Euler): Giả sử a  m  số nguyên UCLN(a,m) = ta nói a m nguyên tố Số số nguyên Zm nguyên tố với m thường ký hiệu (m) ( hàm gọi hàm Euler) -15- -16- Từ suy (2)=1, (1)=0 Một kết quan trọng lý thuyết số cho ta giá trị (m) theo thừa số phép phân tích theo luỹ thừa số nguyên tố m ( Một số nguyên p 1 số nguyên tố ước dương khác p Mọi số nguyên m 1 phân tích thành tích luỹ thừa số nguyên tố theo cách Ví dụ 60 =   98 =  ) Ta ghi lại công thức cho (m) định lí sau: Định lý n m= p Giả sử ei i i 1 Trong số nguyên tố pi khác ei >0 ,  i  n Khi  (m) = n (p - p ei i ei 1 i ) 1.2.3.3 Định nghĩa (phần tử nghich đảo phép nhân): Giả sử a  Zm Phần tử nghịch đảo (theo phép nhân) a phần tử a-1  Zm cho aa-1  a-1a  (mod m) Bằng lý luận tương tự trên, chứng tỏ a có nghịch đảo theo modulo m UCLN(a,m) =1, nghịch đảo tồn phải Ta thấy rằng, b = a-1 a = b-1 Nếu p số nguyên tố phần tử khác không ZP có nghịch đảo Một vành phần tử khác có nghịch đảo gọi trường Bằng phương pháp thử sai ta tìm nghịch đảo phần tử nguyên tố 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ụ:  15 = 105  mod 26, 7-1 = 15) i 1 Định lý cho thấy rằng, số khoá mã Affine Zm m x (m), (m) cho theo công thức ( Số phép chọn b m số phép chọn a (m) với hàm mã hoá e(x) = ax + b) Ví dụ, m = 60, m=2×2×3×5=22×31×51=>(60) = (22-21)( 31-30)(51-50) = 16 số khoá mã Affine là: 16 x 60=960 Một vài tính chất đáng lưu ý hàm Erler() (a) Nếu p số nguyên tố (p)=p-1 (b) Nếu p,q hai số nguyên tố khác nhau.Khi đó, (p.q)= (p) (q)=(p-1)(q-1) (c) Giả sử m,n hai số nguyên dương tùy ý cho UCLN(m,n)=1 (tức m,n nguyên tố 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 số nguyên tố ,thì (m)= (pk)=pk-1(p-1) Xét phương trình đồng dư y  ax+b (mod 26) Phương trình 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 hai vế đồ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 phép nhân modulo: a-1(ax)  (a-1a)x  1x  x Kết x  a-1(y-b) (mod 26) Đây công thức tường minh cho x Như 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 tồn số nguyên x,y cho mx+ny=k Thuật toán Euclide mở rộng cho phép tìm số x,y,k điều kiện bồ đề thỏa mãn Sau nội dung thuật toán Euclide mở rộng: Cho m,n hai số nguyên dương Ta tìm x,y,k cho mx + ny =k -17- -18- Đầu vào (input) : m,n (giả sử m>n) Chú ý : số ô a2 nghịch đảo 8mod95 (tức số y nghịch đảo n theo module m) (Trong trường hợp k=1) đầu ra: x,y,k cho (a1,a2,a3),( b1,b2,b3),(c1,c2,c3) 3vectơ Bước 1: (a1,a2,a3)←(1,0,m), (b1,b2,b3)←(0,1,n) Bước 2: Nếu b3=0 thuật toán dừng a1,a2,a3 đáp số toán (tức x=a1,y=a2,k=a3) Bước 3: Đặt q=[a3/b3]; (là phần nguyên a3/b3 , tức q số nguyên lớn không vượt a3/b3) (c1,c2,c3)← (a1,a2,a3)-q( b1,b2,b3); (a1,a2,a3)← ( b1,b2,b3); ( b1,b2,b3)← (c1,c2,c3) trở bước Thuật toán dừng cho : a1=x, a2=y, a3=k out put: Thật ta có 12.8≡1mod95 Do từ định nghĩa 12 nghịch đảo theo module95 (vì UCLN(8,95)=1 nên tồn nghịch đảo theo mod95) Hình 1.4 cho mô tả đầy đủ mã Affine Cho P = C = Z26 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 dK(y) = a-1(y-b) mod 26, x,y  Z26 Ví dụ1 cho m=42, n=4 Ta có bảng trình tính toán sau đây: q 10 a1 a2 a3 42 -10 b1 b b c c c -10 -10 -2 21 -2 21 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á eK(x) = 7x+3 Và hàm giải mã tương ứng là: Vậy x=1, y=-10 k=2 dK(x) = 15(y-3) = 15y -19 Ví dụ : m=95, n=8 Quá trình tính toán cho bảng sau: q a1 a2 a3 b1 b2 b3 c1 c2 c3 11 95 -11 1 -11 -1 12 -11 -1 12 -95 -1 12 -95 Ở đây, tất phép toán thực Z26 Ta kiểm tra liệu dK(eK(x)) = x với x  Z26 không? Dùng tính toán Z26 , ta có dK(eK(x)) =dK(7x+3) =15(7x+3)-19 = x +45 -19 Vậy x=-1, y=12, k=1 = x Để minh hoạ, ta mã hoá rõ "hot" Trước tiên biến đổi chữ h, o, t thành thặng du theo modulo 26 Ta số tương ứng 7, 14 19 Bây mã hoá:  +3 mod 26 = 52 mod 26 =  14 + mod 26 = 101 mod 26 =23 -19- -20-  19 +3 mod 26 = 136 mod 26 = Bởi ký hiệu mã 0, 23 tương ứng với xâu ký tự AXG 1.2.4.2 Định nghĩa ( ma trận đơn vị) Ma trận đơn vị m  m (ký hiệu Im ) ma trận cấp m  m có số nằm 1.2.4 Mật mã Hill 0 I2 = 1.2.4.1 Khái niệm: Giả sử m số nguyên dương, đặt P = C = (Z26)m Ý tưởng lấy m tổ hợp tuyến tính m ký tự phần tử rõ để tạo m ký tự phần tử mã Ví dụ m = ta viết phần tử rõ x = (x1,x2) phần tử mã y = (y1,y2) Ở đây, y1cũng y2 tổ hợp tuyến tính x1và x2 Chẳng hạn, lấy y1 = 11x1+ 3x2 đường chéo số vị trí lại Như ma trận đơn vị  là: Im gọi ma trận đơn vị AIm = A với ma trận đơn vị 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 nhóm nhân Ma trận nghịch đảo ma trận A cấp m  m ( tồn tại) ma trận A-1 cho AA-1 = A-1A = Im Không phải ma trận có nghịch đảo, tồn Với định nghĩa trên, dễ dàng xây dựng công thức giải mã nêu: Vì y = xK, ta nhân hai vế đẳng thức với K-1 nhận được: y2 = 8x1+ 7x2 Tất nhiên viết gọn theo ký hiệu ma trận sau yK-1 = (xK)K-1 = x(KK-1) = xIm = x 11 (y1 y2) = (x1 x2) 1.2.4.3 Định nghĩa (Định thức ma trận): Định thức ma trận A = (a,i j ) cấp 2 giá trị det A = a1,1 a2,2 - a1,2 a2,1 Nói chung, lấy ma trận K kích thước m  m làm khoá Nếu phần tử hàng i cột j K ki,,j viết K = (ki,,j), với x = (x1, x2, ,xm) Một ma trận có nghịch đảo định thức định thức khác Tuy nhiên Z 26 ma trận K có nghịch đảo UCLN (det K,26)= (y1, .,ym)=(x1, ….,xm)  P K K , ta tính y = eK(x) = (y1, y2, ,ym) sau: 1.2.4.4 Định lý (ma trận ngịch đảo): Giả sử A = (ai j) ma trận cấp  Z26 cho det A = a1,1a2,2 –a1,2.a2,1#0 k1,1 k1,2 k2,1 k2,2 km,1 km,2 Nói cách khác y = xK k1,m k2,m km,m a2,2 -a1,2 A-1 = (det A)-1 -a2,1 a1,1 Khi đó: Ví dụ: Có ma trận K 11 K= -51- S tập mảnh: tập tất mảnh -52- Trong a(x i ) đa thức bí Sau ta trình bầy sơ đồ ngưỡng gọi sơ đồ ngưỡng Shamir mật đươc D chọn.Vì a(x) có bậc lớn t-1 nên viết sau: a(x) = a + a x + ……+a t 1 x t 1 Ta có hệ phương trình tuyến tính (trong Zp) sau: a + a x i +a x ……+a t 1 x i t 1 = y i Giai đoạn khởi tạo: a + a x i +a x i2 ……+a t 1 x i D chọn w phần tử khác khác không Z p kí hiệu chúng x i ,  i  w ( w  p + 1) Phân phối mảnh: t 1 a(x) = K + a j x j mod p j 1 Với  i  w, D trao mảnh y i cho p i Hình 3.1 Sơ đồ ngưỡng Shamir Trong sơ đồ ngưỡng Shamir D xây dựng đa thức ngẫu nhiên a(x) có bậc tối đa t-1 Trong đa thức số khóa K Mỗi thành viên p i có điểm t 1 t a + a x i +a x it ……+a t 1 x it Giả sử D muốn phân chia khóa K  Z p D chọn cách bí mật Với  i  w, D tính y i = a(x i ), = yi Với  i  w , D cho giá trị x i cho p i Các gí trị x i công khai (ngẫu nhiên độc lập) t-1 phần tử Z p , a ,… ,a t 1 t t t 1 t = yi t hệ số a , a …a t 1 phần tử chưa biết Zp, a = K khóa Vì y i = a(x i ) nên B thu t phương trình tuyến tính t ẩn (a , a ……a t 1 ), tất phép tính số học thực Zp Nếu phương trình độc lập tuyến tính cho ta nghiệm thu giá trị khóa a Sau trình bày thủ tục (protocol) chia sẻ bí mật dựa ý tưởng Languange: Giả sử ta có n thực thể A1,A2,…,An-1 có người ủy quyền B biết toàn khóa bí mật S є N Người ủy quyền B thực bước sau đây: (x i ,y i ) (1) B chọn số nguyên tố P đủ lớn cho: Ta xét tập B gồm t thành viên tạo lại khóa K phương pháp: (2) B chọn 2n-1 số cách ngẫu nhiên : Với + Phép nội suy đa thức + Công thức nội suy lagrange Tạo lại khóa K phương pháp sử dụng phép nội suy đa thức: Giả sử thành viên P i , muốn xác định khóa K Ta biết rằng: y i = a (x i ) j Trong : (3) B xác định đa thức với hệ số : -53- (4) Bây B gửi cho Aj (một cách cặp -54- công khai ) A2 coi mảnh riêng Aj A3 có cặp Khôi phục bí mật S: có cặp người hợp lại xác định S: Tất n người A ,…,A n hợp tác lại để khôi phục lại bí mật S cách Áp dụng công thức ta tính được: Khi dễ dàng xác định S = g(0) b0 =1847 Ta có định lý sau: b1 =1847 n thực thể kết hợp với khôi phục bí mật S cách có hiệu là: S = g(0) = f(0) b2 =1847 Chứng minh : Thật ,dễ thấy g x  hàm nội suy Lagrange hàm f x  đa thức có cấp bé n g thỏa mãn điều kiện:g(v j )=f(v j ) với  j

Ngày đăng: 10/08/2016, 17:50

Từ khóa liên quan

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

Tài liệu liên quan