LÝ THUYẾT MẬT Mà VÀ AN TỒN THƠNG TIN (PGS TSKH Vũ Đình Hịa) Chương 1: Các khái niệm mở đầu lý thuyết mật mã 1.1 Mở đầu sơ lược lịch sử môn mật mã Tồn từ 4.000 năm trước 2.000 TCN Ai Cập (lăng mộ vua chúa chết) Trung Quốc cổ đại sử dụng tính chất tượng hình Mật mã Ấn Độ cổ xưa : chữ tượng hình Người Xpác-tơ dùng mật mã cuốn: Hoàng đế César Lamã dùng phương pháp chuyển đổi chữ đơn vị đối phương không đọc thư mình: a b c d e f g h i J k l m n o p q r s t u v w x y z d e f g h i j k l M n o p q r s t u v w x y z a b c Ví dụ: “Hen toi thu bay di choi Ho tay” “khq wrl wkx edb gl fkrl kr wdb” Các hệ mật mã cổ điển phát triển sử dụng kỷ 20 Hệ mật mã khóa cơng khai đời vào quãng năm 70 kỷ 20 mở kỷ ngun cho an tồn thơng tin mạng Internet 1.2 Các khái niệm mật mã Bản rõ: Là tin ban đầu cần gửi đến người nhận Bản mã: Là rõ qua mã hóa Khóa lập mã: Là quy tắc biến rõ thành mã Khóa giải mã: Là quy tắc biến mã thành rõ Định nghĩa: Một hệ mật mã năm (P, C, K, E, D) thỏa mãn điều kiện sau đây: P tập hợp hữu hạn rõ, C tập hợp hữu hạn mã, K tập hợp hữu hạn khóa, với k K k=(ek,dk) với ek khóa lập mã dk khóa giải mã, ek: P C dk: C P Thực tế: P C bảng chữ cái, rõ hay mã xâu với ký tự P C Một rõ p P xâu p=x1x2 xn mã c = y1y2 yn cho ek(xi)=yi ngược lại dk(yi)=xi Thông thường người ta sử dụng phương pháp số hóa, thay chữ P C số Chẳng hạn bảng chữ Latinh cho tương ứng bảng dưới: a b c d e f g H i J k l m n o P q r s t u v w x y z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Ví dụ: Mật mã César hệ mật mã ứng với P = C = bảng chữ Latinh K={(e,d)} với e d phép dịch chuyển ký tự xuôi ngược chiều bảng chữ Latinh 1.3 Hệ mật mã đối xứng hệ mật mã bất đối xứng Các hệ mật mã mật mã dịch chuyển César mật mã đối xứng, hệ mật mã này, chìa khóa lập mã chìa khóa giải mã Một hệ mật mã gọi hệ mật mã bất đối xứng chìa khóa lập mã khác với chìa khóa giải mã, chí, biết chìa khóa lập mã, khơng tìm chìa khóa giải mã thời gian chấp nhận 1.4 Một số vấn đề an toàn thơng tin Một số tốn bảo mật đặt ra: - Bí mật tuyệt đối rõ mã, - Bí mật rõ đối phương có khả có mã (chẳng hạn ta phải truyền tin máy phát điện đài, cơng cụ khác mà đối phương dị bắt được) - Bí mật chìa khóa lập mã (ngay đối phương có mã rõ để đối chiếu) Q trình dị tìm rõ chìa khóa lập mã nêu gọi chung trình thám mã 1.5 Khái niệm an tồn hệ mật mã Có quan điểm độ an toàn hệ mật mã: Độ an tồn tính tốn: Độ an tồn hệ mật mã dựa toán NPC NPH Độ an tồn khơng điều kiện: Độ an tồn hệ mật mã dựa lý thuyết xác suất, theo mô hình Shanon Chương 2: Kiến thức (Ơn tập từ kiến thức phổ thông đại học) 2.1 Các phép toán đồng dư 2.2 Một số thuật toán trường số nguyên 2.3 Sơ lược lý thuyết độ phức tạp toán 2.4 Số nguyên tố tốn phân tích số thành thừa số ngun tố Chương 3: Các hệ mật mã đối xứng 3.1 Một số hệ mật mã đơn ký tự Mã dịch chuyển (Shift Cipher) Ký hiệu Zm vành Modumlo m: Zm = {0,1,2, , m-1} Ví dụ: m=26, có 13 + 15 = (mod 26) 13.15 = 13 (mod 26) Định nghĩa: Mã dịch chuyển năm (P, C, K, E, D) thỏa mãn: P = C = K = Z26 ek(x) = x + k (mod 26) dk(y) = y – k (mod 26) a b c d e f g h i J k l m n o p q r s t u v w x y z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Ví dụ: Với k = câu : “Hen toi thu bay di choi Ho tay” 13 19 14 19 20 24 14 14 19 24 16 13 22 23 17 16 10 12 17 11 16 23 17 16 23 “qnw cxr cqd kjh mr lqxr qx cjh” Nhận xét: Mã dịch chuyển có 26 khóa có thể, Chìa khóa lập mã đồng thời chìa khóa giải mã, Dễ phá, cần dị tìm 26 khả khóa Mã thay (substitution) Ký hiệu (E) tập hợp tất phép hoán vị E (hoán vị phần tử E) Mã thay định nghĩa sau: Định nghĩa: Mã thay năm (P, C, K, E, D) thỏa mãn: P = C = Z26, K = ( Z26), K: e (x)= (x), d (y)= -1(y), với -1 hoán vị nghịch đảo Ví dụ với hốn vị sau : a b c d e f g h I J k l m n o p q R s t U v W x y z d e f g h i j k L M n o p q r s t U v w X y Z a b c Thì ta có: “Hen toi thu bay di choi Ho tay” Với “khq wrl wkx edb gl fkrl kr wdb” -1 hoán vị nghịch đảo ta giải mã dễ dàng Nhận xét: Mã thay có 26! khóa có thể, Chìa khóa lập mã đồng thời chìa khóa giải mã, Với tốc độ máy tính điện tử thời đại nay, dị tìm 26! khả khóa vấn đề khó sử lý liệu số lớn Mã apphin Định nghĩa: Mã apphin năm (P, C, K, E, D) thỏa mãn: P = C = Z26, K = {(a,b) Z26 Z26: (a, 26)=1}, Với k K, ta có ek(x)= ax + b (mod 26), dk(y)= a-1(y-b) (mod 26) Bảng sau cho giá trị a nguyên tố với 26, giá trị nghịch đảo a-1 theo mod 26 sau: a 11 15 17 19 21 23 25 a-1 21 15 19 23 11 17 25 Ví dụ : Với k = (5,6), ta có “Hen toi thu bay di choi Ho tay” 13 19 14 11 20 24 14 14 19 24 15 19 23 24 20 23 15 11 22 21 20 16 15 24 20 15 24 20 15 24 20 15 24 23 22 “pat xyu xpc lgw vu qpyu py xgw” Nhận xét: Mã apphin có 12 26 = 312 khóa có thể, Biết chìa khóa lập mã nhanh chóng tìm chìa khóa giải mã, Dễ phá, cần dị tìm 312 khả khóa Một số hệ mật mã đa ký tự 3.2 Mã Vigenère Blaise de Vigenère kỷ 16 cải tiến mã dịch chuyển cách chia đoạn rõ thành khối có độ dài m thực mã dịch chuyển thứ i ký tự thứ i đoạn độ dài m Định nghĩa: Mã Vigenère năm (P, C, K, E, D) thỏa mãn: P = C = K = (Z26)m, Với k K, ta có k=(k1,k2, , km) ek(x1,x2, , xm)= (x1+k1, x2+k2, , xm+km) (mod 26) dk(y1,y2, , ym)= (y1-k1, y2-k2, ., ym-km) (mod 26) Lưu ý : Thông thường người ta đưa (k1,k2, , km) dạng chữ theo bảng a b c D e f g H i J k l m n o P q r s t u V w x y z 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 Chẳng hạn khóa k = (2,8,15,7,4,17) gọi khóa CIPHER tương ứng với m = Ví dụ: Với m = k = “CIPHER”, ta có “Hen toi | thu bay | di choi | Ho tay” 13 19 14 | 19 20 24 | 14 | 14 19 24 + 15 17 | 15 17 | 15 17 | 15 17 12 28 26 28 25| 21 15 35 41 | 16 17 14 18 25 | 22 34 28 12 2 25| 21 15 15 | 16 17 14 18 25 | 22 “jmc asz vpj iep fg rosz jw ihc” Nhận xét : Số khóa 26m Biết khóa lập mã, tìm khóa giải mã Biết m dùng máy tính điện tử giải mã dễ dàng Mã Hill Tác giả mã Lester S Hill năm 1929 Mà thực m ký tự, ký tự mã tổ hợp m ký tự rõ Cụ thể tổ hợp tuyến tính ma trận k Z26m m Để dịch ngược lại mã từ mã sang rõ, ma trận k phải có ma trận nghịch đảo, tức định thức k, ký hiệu det(k) nguyên tố với m Định nghĩa: Mã Hill năm (P, C, K, E, D) thỏa mãn: P = C = Z26m, K = {k Z26m m : (det(k),m)=1}, Với k K, ek(x1,x2, , xm) = (x1,x2, , xm)k, dk(y1, y2, , ym) = (y1, y2, , ym) k-1 11 -1 , k = 7 Ví dụ : m=2, k= 11 -1 = 7 18 23 11 11 = (11 x1+3 x2, 8x1+7x2), 7 (y1, y2) = ek(x1,x2) = (x1,x2) 11 -1 = (7 x1 + 23 x2, 18x1 + 11x2) 7 (x1, x2) = dk(y1,y2) = (y1,y2) Nhận xét : Mã Hill tổng quát mã Vigenère Mã hoán vị : Ký hiệu S(m) tập hợp tất hoán vị tập hợp {1, 2, , m} Khi mã hốn vị thay đổi ký tự đoạn độ dài m Địinh nghĩa : Mã hoán vị năm (P, C, K, E, D) với P=C=Zm26, K=S(m), k S(m) ek(x1,x2, , xm) = (xk(1), xk(2), , xk(m)), dk(y1, y2, , ym)=(yk-1(1), , yk-1(m)) Ví dụ : Với m = k = (3 2) hốn vị nghịch đảo k-1 = (3 4) ta có P = hen toi | thu bay | di choi | ho tay C = no hite uatybh codihi tyhwao Lưu ý: Mã hoán vị trường hợp riêng mã Hill với ma trận A= (kij) với 0, k (i ) j , 1, k (i ) j kij = 3.3 Một số hệ mật mã dòng Mã dòng (stream ciphers) Mã dòng P= x1x2 xm K=z1z2 zm C=y1y2 ym Với cách xác định sau : yi = zi(xi) Định nghĩa : Mã dòng (P, C, K, L, F, E, D) với P tập hợp hữu hạn rõ, C tập hợp hữu hạn mã, K tập hợp hữu hạn khóa, L tập hợp hữu hạn khóa dịng, F = {f1, f2, } sinh khóa dịng fi : K Li-1 P i-1 L Với z L có hàm lập mã ez hàm giải mã dz thỏa mãn dz(ez(x))=x Mã đồng : khóa dịng khơng phụ thuộc vào rõ Mã tuần hoàn chu kỳ t : zi = zi+t Thường mã dòng dùng với P = C = Z2 ez(x) = x + z, dz(y) = y + z mod Ví dụ: P = C = K = Z26, z1 K, zi = xi-1, ez(x) = x + z mod 26, mã không đồng P = C = Z2 ez(x) = x + z zi = zi-3 + zi-4 mã dịng tuần hồn chu kỳ 15 Với khóa k = (1, 0, 0, 0) có mã dịng 0 0 1 1 1 3.4 Hệ mật mã DES MỞ ĐẦU Ngày 15.5.1973 Uỷ ban Tiêu chuẩn Quốc gia công bố khuyến cáo cho hệ mật mã Hồ sơ Liên bang Điều cuối dẫn đến phát triển Chuẩn mã liệu (DES) trở thành hệ mật sử dụng rộng rãi giới DES phát triển IBM xem cải biên hệ mật LUCIPHER Lần DES công bố Hồ sơ Liên bang vào ngày 17.3.1975 Sau nhiều tranh luận công khai, DES chấp nhận chọn làm chuẩn cho ứng dụng “không phân loại” vào 5.1.1977 Kể từ năm lần, DES lại Uỷ ban Tiêu chuẩn Quốc gia xem xét lại Lần đổi gần DES vào tháng 1.1994 tiếp tục đổi đến năm 1998 Người ta đoán DES khơng cịn chuẩn sau 1998 MƠ TẢ DES Mô tả đầy đủ DES nêu Công bố số 46 chuẩn xử lý thông tin Liên bang (Mỹ) vào 15.1.1977 DES mã hoá xâu bit x rõ độ dài 64 khoá K 56 bit Bản mã nhận xâu bit có độ dài 64 Trước hết ta đưa mô tả mức cao hệ thống Thuật toán tiến hành theo giai đoạn: 1.Cho trước rõ x, xâu x0 xây dựng cách hoán vị bit x theo phép hoán vị cố định ban đầu IP Ta viết: x 0= IP(X) = L0R0, L0 gồm 32 bit đầu x0 R0 32 bit cuối x0 Sau tính tốn 16 lần lặp theo hàm xác định Ta tính LiRi, i 16 theo quy tắc sau: Li = Ri-1 Ri = Li-1 f(Ri-1,Ki) kí hiệu phép loại trừ hai xâu bit f hàm mà ta mô tả sau, K1,K2, ,K16 xâu bit độ dài 48 tính hàm khố K (trên thực tế Ki phép chọn hoán vị bit K) K1, , K16 tạo thành bảng khố Một vịng phép mã hố mơ tả hình 3.1 ÁP dụng phép hốn vị ngược IP -1 cho xâu bit R16L16, ta thu mã y Tức y=IP -1 (R16L16) Hãy ý thứ tự đảo L16 R16 Li-1 Ri-1 f + Li Hình 3.1 Một vịng DES Ri Ki Oscar giả mạo chữ kí đảo đ-ợc hàm chiều f(x) để có giá trị y mật Tuy nhiên, sơ đồ đ-ợc dùng để kí điện Bởi cho tr-ớc chữ kí điện khác Oscar dễ dàng xây dựng chữ kí cho điện khác Ví dụ, già sử điện (0, 1, 1) (1, 0, 1) đ-ợc kí sơ đồ Bức điện (0, 1, 1) có chữ kí (y1,0, y2,1, y3,1) ®iƯn (1,0,1) cã ch÷ kÝ (y1,1, y2,0, y3,1) NÕu cho tr-ớc chữ kí này, Oscar xây dựng chữ kí điện (1,1,1) (y1,1, y2,1, y3,1) chữ kí cho điện (0,0,10 (y1,0, y2,0, y3,1) Mặc dù sơ đồ hoàn toàn tốt song không đ-ợc sử dụng thực kích th-ớc chữ kí Ví dụ, ta dùng hàm số mũ modulo nh- ví dụ yêu cầu an toàn đòi hỏi p dài 512 bít Điều này, có nghĩa bít điện chữ kí dùng 512 bít Kết chữ kí dài điện 512 lần Bây xét cải tiến Bos Chaum cho phép chữ kí ngăn chút song không giảm độ mật Trong sơ đồ Lamport, lý Oscar giả mÃo chữ kí điện (thứ hai) biết chữ kí điện là: ảnh y (t-ơng ứng với điện ) không tập ảnh y (t-ơng ứng với điện khác) Giả sử ta có tập b gồm tËp cña B cho B1 B2 chØ B1 = B2 víi mäi B1, B2 b Khi b đ-ợc gọi thoả mÃn tính chất Sperner Cho tr-íc mét tËp B cã lùc l-ỵng n chẵn, kích th-ớc cực đại tập B gåm c¸c tËp B cã tÝnh chÊt 2n Sperner n Đ iều dễ dàng nhận đ-ợc cách lấy tất tập n B: rõ ràng tập n nhận đ-ợc tập n khác Bây giờ, giả sử ta muốn kí ®iƯn k bÝt nh- tr-íc ®©y, ta chän n ®đ lín ®Ĩ 2n k n Cho B =n giả sử B tập tập n B Giả sử :0,1k B đơn ánh công khai đă biết Khi đó, liên kết ®iƯn cã thĨ víi mét n B Ta có 2n giá trị y, 2n giá trị z điện đ-ợc kí n ảnh y Hình 6.5 mô tả đầy đủ sơ đồ Bos- chaum Hình 6.5 Sơ đồ chữ kí Bos - chaum Cho k số nguyên d-ơng giả sử p =0,1k Cho n số nguyên 2n cho k B tập có lực l-ợng n cho : 0,1k B n đơn ánh , B tập tất n B Giả sử f: YZ hàm chiều A = Yn Chọn ngẫu nhiên yY i 2n vµ cho zi = f(yi ), i 2n Kho¸ K gåm 2k gi¸ trị y 2k giá trị z Các giá trị y giữ bí mật giá trị cđa z c«ng khai Víi K = (yj ,zj , i 2n ), ta định nghĩa : sigk( x1 ,, xk ) = {yj :j ( x1 ,, xk)} vµ verk(x1 , , xk ,a1 ,, ak) = true { f(ai) :1 i n }= {zj :j ( x1 ,, xk)} Ưu điểm sơ đồ Bos- Chaum chữ kí ngắn sơ đồ Lamport Ví dụ, ta muốn ký điện bit (k = 6) Vì 26 =64 =70 nên lấy n =4 điện bit đ-ợc kí giá trị y so với sơ đồ Lamport Nh- khoá k ngắn hơn, gồm giá trị z so với 12 sơ đồ Lamport Sơ đồ Bos-Chaum đòi hỏi hàm đơn ánh để kết hợp tập n tập 2n với x nhị phân bội k (x1 xk) Ta đ-a thuật toán đơn giản để thực điều (hinh 6.6) Ví dụ, áp dụng thuật toán với x = (0,1,0,0,1,1) sÏ t¹o (x) = 2,4,6,8 Nãi chung, n sơ đồ Bos-Chaum lớn so với k ? Ta cần thoả mÃn bất ph-ơng trình 2k 2n n Nếu đánh giá hệ số nhị thức 2n (2n)! /(n! ) 2 H×nh 6.6: Tính sơ đồ Bos - Chaum X = k i 1 xi 2i-2 (x) = t = 2n e=n While t > t=t-1 t if x > then e t x = x - e 10 e = e -1 (x) = (x) t+1 2n công thức Stirling / thành n Sau vài phép biến đổi đơn giản, bất đẳng thức trở k 2n -log2 (n)/2 Một cách gần đúng, n k/2 Nh- vậy, ta đà giảm đ-ợc khoảng 50% kích th-ớc chữ kí sơ đồ Bos - chaum 6.5 Các chữ kí không THể PHủ NHậN Các chữ kí phủ nhận Chaum Antwerpen đ-a từ năm 1989 Chúng có vài đặc điểm Nguyên thuỷ chữ kí chữ kí xác minh đ-ợc không hợp tác với ng-ời ký, chẳng hạn Bob Nh- bảo vệ đ-ợc Bob tr-ớc khả tài liệu đ-ợc ký bị nhân đôi phân phối ph-ơng pháp điện tử mà đồng ý Việc xác minh đ-ợc thực hiên giao thức yêu cầu đáp ứng (Challege and repotocol) Song liệu có cần hợp tác Bob để xác minh chữ kí (nhằm ngăn chặn Bob từ chối không nhận đà ký tr-ớc đó) không? Bob truyền thống chữ kí hợp lệ giả mạo từ chối xác minh nó, thực giao thức theo cách để chữ kí đ-ợc xác minh Để ngăn chặn tình xảy ra, sơ đồ chữ kí không chối đ-ợc đà kết hợp giao thøc tõ chèi (theo giao thøc nµy, Bob cã thĨ chứng minh chữ kí giả mạo) Nh- vậy, Bob có khả chứng minh tr-ớc chữ kí bị lừa dối thực tế giả mạo (Nếu không chấp nhận tham vào giao thức từ chối, điều đ-ợc xem nh- chứng chứng tỏ chữ kí thực tế thật) Nh- vậy, sơ đồ chữ kí phủ nhận gồm thành phần: thuật toán ký, giao thức xác minh giao thức từ chối (disavowal) Đầu tiên ta đ-a thuật toán ký giao thức xác minh sơ đồ chữ kí phủ nhận Chaum VanAntwerpen hình 6.7 Xét vai trò p q sơ đồ Sơ đồ tồn Zp; cần có khả tính toán theo nhóm nhân G Zp* có bậc nguyên tố Củ thể, ta có khả tính đ-ợc phần tử nghịch đảo Modulo G - lý giải thích G phải số nguyên tố Để tiện lợi, lấy p=2q+1, q số nguyên tố Theo cách này, nhóm G lớn đến mức điều đáng mong muốn điện lẫn chữ kí phần tử thuộc G Tr-ớc hÕt, cÇn chøng minh r»ng, Alice sÏ chÊp nhËn mét chữ kí hợp lệ Trong tính toán sau đây, tất số mũ đ-ợc rút gọn theo modulo q Đầu tiên, nhận xét: d c -1 (mod p) = y eja-'ge2a-' (mod p) Hình 6.7 Sơ đồ chữ kÝ kh«ng thĨ phđ nhËn Chaum - Van Antwerpen Cho p =2q +1 số nguyên tố cho q nguyên tố toán logarithm rời rạc Zp giải đ-ợc Giả sử Zp phần tử bậc q Cho a q-1 đ-ợc định nghĩa = a mod p Gi¶ sư G biĨu nhãm béi Zp* bËc q (G gồm thặng d- bình th-ờng modulo p) Cho p=A=G định nghĩa : K =p, , a, ): a (mod p) Các giá trị p, công khai, a mật Với k = (p, , a, ) vµ x G , định nghĩa : y = sigk(x) = xa mod p Với x,y G, việc xác minh đ-ợc thực hiÖn qua giao thøc sau: Alice chän e1,e2 ngÉu nhiªn, e1,e2 Zp* Alice tÝnh c = ye1e2 mod p gửi đến Bob Bob tính d = ca mod q mod p vµ gưi nã cho Alice Alice chấp nhận y chữ kí hợp lệ d xe1e2 (mod p) Vì: a (mod p) D-ới ví dơ nhá VÝ dơ 6.5 Gi¶ sư lÊy p = 467, phần tử nguyên thuỷ nên 22 =4 phần tử sinh G, thặng d- bình ph-ơng modulo 467 Vì ta lấy =4 Giả thiết a = 101, = a mod 467 =499 Bob sÏ ký bøc ®iƯn x= 119 víi ch÷ ký y = 119101 mod 467 = 129 Bây giả sử Alice muốn xác minh chữ ký y, cô ta chọn số ngẫu nhiên chẳng hạn e1=38, e2=397 Cô tính c=13, lúc Bob trả lời với d =9,Alice kiểm tra câu trả lời việc xác minh xem: 11938 4397 =9 (mod 467) Alice chấp nhận chữ ký hợp lệ Tiếp theo, ta chứng minh rằng, Bob lừa Alice chấp nhận chữ ký giả mạo (Fradulart) nh- chữ ký hợp lệ trừ xác suất bé Kết không phụ thuộc vào giả thiết tính toán nào, điều có nghĩa độ an toàn vô điều kiện Định lý 6.1 NÕu y xa (mod p) th× Alice sÏ nhËn y nh- la chữ ký hợp lệ x víi x¸c xt 1/q Chøng minh Tr-íc hÕt, nhËn xét yêu cầu (challenge) c t-ơng ứng xác với q cặp đ-ợc (e1,e2) (đó y lẫn phần tử nhóm nhân G có bậc nguyên tố q) Bây giờ, Bob nhận đ-ợc yêu cầu c, cách để biết q cặp đ-ợc (e1,e2) mà Alice đà dùng để x©y dùng c Ta nãi r»ng, nÕu y xa (mod p) đáp dụng ứng (respond) d G mà Bob phủ hợp xác q cặp đ-ợc (e1,e2) Vì sinh G, nên ta viết phần tữ bất kú thc G nh- mét sè mị cđa , số mũ đ-ợc xác minh theo modulo q V× thÕ cã thĨ viÕt c =i,d =j, x =k vµ y =l víi i, j, k, l Zp vµ mäi phÐp tÝnh sè häc lµ theo modulo q XÐt ®ång d- thøc sau: c ye1e2(mod p) d xe1e2(mod p) Hệ thống t-ơng đ-ơng hƯ ®ång thøc sau: i l e1 +a e2 (mod q) j k e1 + e2 (mod q) Bầy giả thiết rằng: y xa (mod p) nên rút : l a k (mod q) Vì thế, ma trận hệ số đồng d- thức theo modulo q có định thức khác nh- vây tồi nghiệm cho hệ thống thống Nghià là, dG đáp ứng với q cặp (e1,e2) đ-ợc Hệ thống là, xác suất để Bob đ-a cho Alice đáp ứng(trả lời) d cần đ-ợc xác minh 1/q Định lý đ-ợc chứng minh Hình 6.8 Thđ tơc tõ chèi Alice chọn e1,e2 cách ngẫu nhiên, e1,e2Zq* Alice tÝnh c = ye1e2 mod p vµ gưi nã cho Bob Bob tÝnh d = ? Alice x¸c minh xem d cã xe1e2(mod p) kh«ng Alice chän f1,f2 ngÉu nhiªn , f1,f2 Zq* Alice tÝnh C = yf1f2mod p vµ gưi cho Bob Bob tÝnh D = ???????? Alice x¸c minh xem D cã xf1f2(mod p) không Alice kết luận y giả mạo vµ chØ (d -e2)f1 (D -f2)e1 (mod p) Bây quay trở lại giao thức từ chối Giao thức gồm hai thực giao thức xác minh đ-ợc nêu hình 6.8 Các b-ớc 1- 5- gồm lần thực không thành công giao thức xác minh Bước bước tính kiểm tra phù hợp cho Alice xác định xem liệu có phải lập câu trả lời theo thứ tự hay không D-ới ví dụ minh hoạ Ví dụ 6.6 Nh- tr-ớc đây, giả sử p = 467, = 4, a = 101, = 449 Giả thiết điện x = 286 đ-ợc ký y = 83 Bob muốn thiết phục Alice chữ ký không hợp lệ Giả sử Alice bắt đầu việc chọn giá trị ngẫu nhiên e1=45, e2=237 Alice tính c =305 Bob trả lời d = 109 Sau Alice tính 2861254237 mod 467 =149 Vì 149 109 nên Alice thực b-ớc giao thức Bây giả sử Alice chọn giá trị ngẫu nhiên f1= 125, f2= Alice tính C = 270 Bob trả lời víi D =68 Alice tÝnh 18612549 mod 467 =25 V× 25 68 nªn Alice tiÕp tơc sang b-íc cđa giao thøc kiĨm tra tÝnh phï hỵp B-íc kiĨm tra thành công vì: (109 4-9)125 188 (mod 467) (68 4-9)45 188 (mod 467) Vì Alice tin chữ ký không hợp lệ Bây giờ, ta phải chứng minh hai vấn đề: Bob thuyết phục Alice rằng, chữ ký không hợp lệ giả mạo Bob Alice tin chữ ký không hợp lệ giả mạo trừ xác suất bé Định lý 6.2 Nếu y xa (mod p) Alice lẫn Bob thùc hiƯn theo giao thøc tõ chèi th× (d -e2)f1 (D -f2)e1 (mod p) Chøng minh: Dïng c¸c yÕu tè d c ye1e2(mod p) vµ a (mod p) Ta cã: (d -e2)f1 T-ỵng tù, dïng c¸c yÕu tè D (D -f2)e1 ye1 f2 (mod p) phép kiểm tra tính phù hợp b-ớc thành công Bây xét xác suất để Bob thử từ chối chữ ký hợp lệ Tr-ờng hợp không giả thiết Bob thực hiên theo thủ tục Nghĩa Bob không xây d-ng D Và d nh- giao thức Vì định lý giả thiết rằng, Bob tạo D d thoả mÃn điều kiện b-ớc 4,8và giao thức nêu hình 6.8 Định lý 6.3 Giả sử y xa (mod p) Alice thực hiÖn theo giao thøc tõ chèi NÕu d xe1 e2(mod p) D x1 2(mod p) xác st ®Ĩ: (d-e2)1 (D-2)e1 (mod p) = 1-1/q Chøng minh: giả sử rằng, đồng d- thức sau đ-ợc tho¶ m·n y a (mod p) d xe1 e2(mod p) D x1 2(mod p) (d-e2)1 (D-2)e1 (mod p) ta nhận đ-ợc mâu thuẩn nh- trình bay sau đây: viết lại b-ớc 9- b-ớc kiểm tra tÝnh phï hỵp nh- sau D d01 2 d0 = d1/e1-e2/e1mod p giá trị phụ thuộc vào b-ớc 1- giao thức áp dụng định lý 6.1, ta kết luận đ-ợc y chữ ký hợp lệ d0 với xác suất 1- 1/q Song ta đà giả thiết y chữ ký hợp lệ x, nghĩa là ta có (với xác suất cao) xa d0a (mod p) có nghĩa x = d0 Tuy nhiên d xe1 e2(mod p) cã nghÜa lµ x d1/e1-e2/e1(mod p) Và từ chỗ d0 d1/e1-e2/e1(mod p) suy x d0 ta nhận đ-ợc mâu thuÈn Nh- vËy Bob cã thÓ lõa dèi Alice theo cách với xác suất 1/q Chng 7: Hm băm 7.1 Chữ ký số hàm băm Chúng ta thấy sơ đồ chữ kí nói chung cho phép kí điện nhỏ Thơng thường sử dụng sơ đồ chữ ký, chữ ký sinh có độ dài lớn so với văn ký, kích thước văn sau ký tăng lên nhiều Và thực tế ta cần ký điện dài, chẳng hạn, tài liệu pháp luật dài nhiều Megabyte Một cách đơn giản để giải toán chia điện dài thành nhiều đoạn sau kí lên đoạn độc lập Ðiều tương tự mã hóa chuỗi dài rõ cách mã hóa kí tự rõ độc lập sử dụng khố (Ví dụ: chế độ ECB Mã hóa) Biện pháp có số vấn đề việc tạo chữ kí số Trước hết, với điện dài, ta kết thúc chữ kí lớn Nhược điểm khác sơ đồ chữ kí “an tồn” lại chậm chúng dùng phương pháp số học phức tạp số mũ modulo Tuy nhiên, vấn đề nghiêm trọng với phép toán điện kí bị xếp lại đoạn khác nhau,hoặc số đoạn chúng bị loại bỏ điện nhận xác minh Ta cần bảo vệ nguyên vẹn toàn điện điều khơng thể thực cách kí độc lập mẩu nhỏ chúng Giải pháp cho tất vấn đề dùng hàm Hash mã hóa khố cơng khai nhanh Hàm lấy điện có độ dài tuỳ ý tạo tóm lược thơng báo có kích thước qui định (VD: 160 bit với DSS) Sau tóm lược thơng báo ký thay ký trực tiếp văn gốc Khi Bob muốn kí điện x, trước tiên xây dựng tóm lược thơng báo z = h(x) sau tính y = sigK (z ) Bob truyền cặp ( x, y) kênh Xét thấy thực xác minh (bởi ) cách trước hết khơi phục tóm lược thơng báo z =h (x) hàm h cơng khai sau kiểm tra xem verk (x,y) có = true, hay khơng Hình 7.1 Ký tóm lược thơng báo Bản tóm lược (giá trị hàm băm) gọi đại diện văn (message digest) Một message digest có chiều dài cố định với đặc điểm sau: Giá trị trả lại hàm băm giá trị đầu vào Bất kỳ thay đổi liệu vào dẫn đến kết sai Từ đại diện văn khơng thể suy liệu gốc gì, điều mà người ta gọi one-way Như đề cập phần mã hóa khóa khóa cơng khai, sử dụng khóa bí mật bạn cho việc mã hóa khóa khóa cơng khai cho việc giải mã Cách sử dụng cặp khóa khơng dùng cần có bí mật thơng tin, mà chủ yếu dùng để “ký” cho liệu Thay vào việc mã hóa liệu, phần mềm ký tạo message digest liệu sử dụng khóa bí mật để mã hóa đại diện Hình 1.8 đưa mơ hình đơn giản hóa việc chữ ký số sử dụng để kiểm tra tính tồn vẹn liệu ký Trong hình 7.2 có hai phần gửi cho người nhận: liệu gốc chữ ký số Để kiểm tra tính tồn vẹn liệu, người nhận trước tiên sử dụng khóa khóa cơng khai người ký để giải mã đại diện văn (message disgest) mã hóa khóa bí mật người ký Dựa vào thông tin thuật toán băm chữ ký số, người nhận tạo đại diện văn từ liệu gốc Nếu đại diện giống tức liệu không bị thay đổi từ lúc ký Nếu khơng giống có nghĩa liệu bị giả mạo, điều xảy sử dụng hai khóa khóa khóa cơng khai khóa bí mật khơng tương ứng Hình 7.2 Sử dụng chữ ký số để kiểm tra tính tồn vẹn liệu Nếu hai đại diện văn giống nhau, người nhận chắn khóa khóa cơng khai sử dụng để giải mã chữ ký số tương ứng với khóa bí mật sử dụng để tạo chữ ký số Để xác thực định danh đối tượng cần phải xác thực khóa khóa cơng khai đối tượng Trong vài trường hợp, chữ ký số đánh giá thay chữ ký tay Chữ ký số đảm bảo khóa bí mật khơng bị lộ Khi khóa bí mật bị lộ người sở hữu chữ ký khơng thể ngăn chặn việc bị giả mạo chữ ký 7.2 Hàm băm khơng có va chạm mạnh (collision) Với hàm băm h hai văn x z Ta nói z = h(x) tóm lược x chữ ký z chữ ký x Do z có độ dài hạn chế, x có độ dài hạn chế Hai điều kiện sau hai điều kiện hàm băm: Hàm băm phải hàm phía, theo nghĩa biết x tính z = h(x) dễ, ngược lại khó tính x theo z Hàm băm phải không va chạm mạnh, theo nghĩa không tồn thuật toán thời gian đa thức giải tốn tìm x1 x2 , h( x1 ) h( x2 ) Nói cách khác tìm hai văn khác có đại diện khó 7.3 Một ví dụ cụ thể hàm băm Ví dụ: Hàm băm Chaum-van Heijst-Pfitzmann h (1992) xây dựng số nguyên tố p q với p = 2q + theo định nghĩa sau: h : Z q Z q Z p {0} với h( x1 , x2 ) x x mod p Hàm băm chứng minh thỏa mãn hai tính chất nêu 7.4 Hàm băm mở rộng Cho trước hàm băm h : Z m Z 2t không va chạm mạnh thỏa mãn m t Có cách xây dựng hàm h* : X Z 2t , X Z 2i đệ qui Hàm băm h* i m xây dựng theo cách gọi hàm băm mở rộng hàm h