Giáo trình Mật mã và ứng dụng - Chương 1: Mật mã cổ điển, trình bày các nội dung chính: mật mã cổ điển, một số hệ mật cơ bản, mã dịch vòng, mã thay thế, mã Affine, mật mã Hill, mã hoán vị, các hệ mã dòng, mật mã khóa tự sinh, mã thám các hệ mã cổ điển, thám hệ mã thay thế, thám hệ mã dòng xây dựng trên LFSR,... Đây là tài liệu tham khảo dành cho sinh viên ngành Công nghệ thông tin.
Chơng Mật m cổ điển 1.1 mở đầu - số hệ mật đơn giản Đối tợng 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 Alice Bob) cho đối phơng (Oscar) hiểu đợc thông tin đợc truyền Kênh đờng dây điện thoại mạng máy tính Thông tin mà Alice muốn gửi cho Bob (bản rõ) văn tiếng Anh, liệu số bất cø tµi liƯu nµo cã cÊu tróc t ý Alice m hoá rõ khóa đ đợc xác định trớc gửi m kết lên kênh liên lạc Oscar có m thu trộm đợc kênh song xác định nội dung rõ, nhng Bob (ngời đ biết khoá m ) giải m thu đợc rõ Ta mô tả hình thức hoá nội dung cách dung khái niệm toán học nh sau: Định nghĩa 1.1 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 vµ dk: C → P lµ hàm mà: dk(ek (x)) = x với râ x ∈ P TÝnh chÊt lµ tÝnh chÊt chủ yếu Nội dung rõ x đợc m hoá ek m nhận đợc sau đợc giải m dk ta phải thu đợc rõ ban đầu x Alice Bob áp dụng thủ tục sau dùng hệ mật khoá riêng Trớc tiên họ chọn khoá ngẫu nhiên K K Điều đợc thực họ chỗ không bị Oscar theo dõi họ có kênh mật trờng hợp họ xa Sau giả sử Alice muốn gửi thông baó cho Bob kênh không mật ta xem thông báo chuỗi: x = x1,x2 , .,xn với số nguyên n ký hiệu rõ xi P , i n Mỗi xi đợc m hoá quy tắc m ek với khoá K xác định trớc Bởi Alice tính yi = ek(xi), i n chuỗi m nhận đợc: y = y1,y2 , .,yn đợc gửi kênh Khi Bob nhận đơc y1,y2 , .,yn giải m hàm giải m dk thu đợc rõ gốc x1,x2 , .,xn Hình 1.1 ví dụ kênh liên lạc Hình 1.1 Kênh liên lạc Oscar Alic Bộ m Bộ giải Kênh an toàn Nguồn khoá Bo 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 cách tờng minh Ví dụ y = ek(x1) = ek(x2) x1 x2 , Bob cách để biết liệu phải giải m thành x1 hay x2 Chú ý P = C hàm m hoá phép hoán vị, tức tập m tập rõ đồng hàm m xếp lại (hay hoán vị ) phần tử tập 1.1.1 M dịch vòng ( shift cipher) Phần mô tả m dịch (MD) dựa số học theo modulo Trớc tiên điểm qua số định nghĩa số học Định nghĩa 1.2 Giả sử a b số nguyên m số nguyên dơng Khi ta viết a ≡ b (mod m) nÕu m chia hÕt cho b-a Mệnh đề a b (mod m) đợc gọi " a đồng d với b theo modulo m" Số nguyên m đợc gọi mudulus Giả sử chia a b cho m ta thu đợc thơng nguyên phần d, phần d nằm vµ m-1, nghÜa lµ a = q1m + r1 vµ b = q2m + r2 ®ã ≤ r1 m-1 r2 m-1 Khi cã thĨ dƠ dµng thÊy r»ng a ≡ b (mod m) vµ chØ r1 = r2 Ta dùng ký hiệu a mod m (không dùng dấu ngoặc) để xác định phần d a đợc chia cho m (chính giá trị r1 trên) Nh− vËy: a ≡ b (mod m) vµ chØ a mod m = b mod m NÕu thay a b»ng a mod m th× ta nãi r»ng a ®−ỵc rót gän theo modulo m NhËn xÐt: NhiỊu ngôn ngữ lập trình máy tính xác định a mod m phần d dải - m+1, , m-1 cã cïng dÊu víi a VÝ dơ -18 mod -4, giá trị khác với giá trị giá trị đợc xác định theo công thức Tuy nhiên, để thuận tiện ta xác định a mod m số không âm Bây ta định nghĩa số học modulo m: Zm đợc 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 đợc thực giống nh cộng nhân số thực trừ điểm làcác kết đợc rút gọn theo modulo m Ví dụ tính 11ì 13 Z16 Tơng tự nh với 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 = × 16 + 15, bëi vËy 143 mod 16 = 15 Z16 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 quyen thuộc số học Sau ta liệt kê mà không chứng minh tính chất này: 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 a+b = b+a Phép cộng kết hợp, tức với bÊt k× 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 a+0 = 0+a = a Phần tử nghịch đảo phép cộngcủa phần tử (a Zm ) m-a, nghĩa a+(m-a) = (m-a)+a = với a Zm Phép nhân đóng , tức với a,b Zm , ab Zm 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 bÊt kú a ∈ Zm = 1×a = a 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) Các tính chất 1,3-5 nói lên Zm lâp nên cấu trúc đại số đợc gọi nhóm theo phép cộng Vì có thêm tính chất nhóm đợc gọi nhóm Aben (hay nhóm gioa hoán) Các tính chất 1-10 thiết lập nên vành Zm Ta thấy nhiều ví dụ khác nhóm vành sách Một số ví dụ quên thuộc vành số nguyên Z, số thực R số phức C Tuy nhiên vành vô hạn, mối quan tâm giới hạn vành hữu hạn 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Ýnh sè nguyªn a-b råi rót gon 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 đợc -7 rồid sau tính -7 mod 31 = 24 Ta mô tả m dịch vòng hình 1.2 Nó đợc xác định Z26 (do có 26 chữ bảng chữ tiếng Anh) xác định Zm với modulus m t ý DƠ dµng thÊy r»ng, MDV sÏ tạo nên hệ mật nh đ xác định trên, tức dK (eK(x)) = x với x Z26 Hình 1.2: M dịch vòng Giả sử P = C = K = Z26 víi ≤ k 25 , định nghĩa: eK(x) = x +K mod 26 vµ dK(x) = y -K mod 26 (x,y ∈ Z26) NhËn xÐt: Trong tr−êng hỵp K = 3, hƯ mật thờng đợc gọi m Caesar đ đợc Julius Caesar sư dơng Ta sÏ 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 ứnggiữa kí tự thặng d theo modulo 26 nh 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 B C D E F G H I J K L M 10 11 12 N O P Q R S T U V W X Y Z 13 14 15 16 17 18 19 20 21 22 23 24 25 Sau ví dụ nhỏ để minh hoạ 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 trªn Ta cã: 22 19 22 12 8 11 11 13 12 19 19 sau cộng 11 vào giá trị rút gọn tổng theo modulo 26 11 15 23 19 19 22 14 22 24 23 19 15 17 15 18 4 Cuèi biến đổi d y số nguyên thành kí tự thu đợc m sau: HPHTWWXPPELEXTOYTRSE Để giả m m này, trớc tiên, Bob biến đổi m thành d y số nguyên trừ giá trịcho 11 ( rút gọn theo modulo 26) cuối biến đổi lại d y nàythành ký tù NhËn xÐt: Trong vÝ dơ trªn , ta đ dùng chữ in hoa ch o m , chữ thờng cho rõ đêr tiện phân biệt Quy tắc tiếp tục sử dụng sau Nếu hệ mật sử dụng đợc thực tế phảo thoả m n số tính chất định Ngay sau sé nêu hai số đó: Mỗi hàm m hoá eK hàm giải m dK phải có khả tính toán đợc cách hiệu Đối phơng dựa xâu m phải khả xác định khoá K đ dùng khả xác định đợc xâu rõ x Tính chất thứ hai xác định (theo cách mập mờ) ý tởng ý tởng "bảo mật" Quá trình thử tính khoá K (khi đ biết m y) đợc gọi m thám (sau khái niệm đực làm xác hơn) Cần ý rằng, Oscar xác định đợc K giải m đợc y nh Bob cách dùng dK Bởi vậy, việc xác định K chí khó nh việc xác định rõ x 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 đợc rõ có nghĩa Điều đợc minh hoạ theo ví dơ sau: VÝ du 1.2 Cho b¶n m JBCRCLQRWCRVNBJENBWRWN ta thử liên tiếp khoá giải m d0 ,d1 y thu đợc: jbcrclqrwcrvnbjenbwrwn iabqbkpqvbqumaidmavqvm hzapajopuaptlzhclzupul gyzozinotzoskygbkytotk jxynyhmnsynrjexfajxsnsj ewxmxglmrxmqiweziwrmri dvwlwfklqwlphvodyhvqlqh cuvkvejkpvkogucxgupkpg btujudijoujnftbwfojof astitchintimesavesnine Tới ta đ xác định đợc rõ dừng lại Khoá tơng ứng K = Trung bình tính đợc rõ sau thử 26/2 = 13 quy tắc giải m Nh đ ví dụ , điều kiện để hệ mật an toàn phép tìm khoá vét cạn phải thực đợc; tức không gian khoá phải lớn Tuy nhiên, không gian khoá lớn cha đủ đảm bảo ®é mËt 1.1.2 M thay thÕ Mét hƯ mËt nỉi tiếng khác hệ m thay Hệ mật đ đợc sử dụng hàng trăm năm Trò chơi đố chữ "cryptogram" báo ví dụ MTT Hệ mật đợc hình 1.3 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 nh hoán vị kí tự Hình 1.3 M thay Cho P =C = Z26 K chứa hoán vị có thĨ cđa 26 kÝ hiƯu 0,1, ,25 Với phép hoán vị K , ta định nghÜa: eπ(x) = π(x) vµ dπ(y) = π -1(y) -1 hoán vị ngợc Sau ví dụ phép hoán vị ngẫu nhiên tạo nên hàm m hoá (cũng nhb trớc, kí hiệu rõ đợc viết chữ thờng kí hiệu m ch÷ in hoa) a X b N c Y d A e H F P g O h G i Z j Q k W l B M T n S o F p L q R r C S V t M u U v E w K x J y D Z I Nh− vËy, eπ (a) = X, e (b) = N, Hàm giải m phép hoán vị ngợc Điều đợc thực cách viết hàng thứ hai lên trớc xếp theo thứ tự chữ Ta nhận đợc: A d B l C r D y E v F O G h H e I z J x K w L p M T N b O g P f Q j R q S N T m U u V s W k X a Y c Z I Bëi vËy dπ (A) = d, dπ(B) = 1, Để làm tập, bạn đọc có giải m m sau cách dùng hàm giải m đơn giản: M G Z V Y Z L G H C M H J M Y X S S E M N H A H Y C D L M H A Mỗĩ 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 1.1.3 M Affine MDV trờng hợp đặc biƯt cđa MTT chØ gåm 26 sè 26! c¸c hoán vị 26 phần tử Một trờng hợp đặc biệt khác MTT m Affine đợc mô tả dới m Affine, ta giới hạn xét hàm m có dạng: Giả sử x = x1x2 .xn vµ y = y1y2 .yn' xâu có n n' kí tự anphabet tơng ứng Chỉ số trùng hợp tơng hỗ x y ( kí hiệu MIc(x,y)) đợc xác định xác suất để phần tử ngẫu nhiên x giống với phần tử ngẫu nhiên y Nếu ta kí hiệu tần suất A,B, .,Z x y tơng ứng f0,f1, .,f25 MIc(x,y) đợc tính bằng: 25 MI c (x, y) = ∑ff' i=0 i i n.n' Víi c¸c giá trị m đ xác định, xâu yi thu đợc m dịch vòng rõ Giả sử K = (k1,k2, .,km) từ khoá Ta xem xét đánh giá MIc(yi,yj) nh Xét kí tự ngẫu nhiên yi kí tự ngẫu nhiên yj Xác suất để hai kí tự A p-ki p-kj, xác suất để hai B p1-ki p1-kj, .( Cần ý tất số dới đợc rút gọn theo modulo 26) Bởi cã thĨ −íc l−ỵng r»ng: 25 25 h =0 h =0 MI c (y i , y i ) ≈ ∑ p h − ki p h − kj = ∑ p h p h + ki − kj Ta thấy rằng, giá trị ớc lợng phụ thuộc vào kiếu hiệu ki-kj mod 26 ( đợc gọi độ dịch tơng đối 25 25 h=0 h=0 p h p h+1 =∑ p h p h −1 cña yi vµ yj) Cịng vËy, ta thÊy r»ng: Bëi vËy độ dịch tơng đối l dẫn đến ớc lợng MIc nh độ dịch tơng đối 26-l Ta lập bảng ớc lợng cho độ dịch tơng đối phạm vi từ đến 13.( Xem bảng 1.4) Bảng 1.4 Các số trùng hợp tơng hỗ tính đợc Độ dịch Giá trị tính đợc tơng đối cña MIc 0.065 0,039 0,032 0,034 0,044 0,033 0,036 0,039 0,034 0,034 10 0,038 11 0,045 12 0,039 13 0,043 Xét thấy rằng, độ dịch tơng đối khác ớc lợng thay đổi khoảng từ 0.031 đến 0,045; ngợc lại độ dịch tơng đối ớc lợng 0,065 Có thể dùng nhận xét để tạo nên đoán thích hợp cho l = ki-kj (độ dịch tơng đối yi yj) nh sau: Giả sử cố định yi vµ xÐt viƯc m 25 MI c ( x , y ) = g ∑f i =0 i f ' i g n.n' hoá yj bảng e0,e1,e2 Ta kí hiệu kết yj0,yj1, Dễ dàng dùng số MIc(yi,yjg), g 25 theo công thức sau: Khi g = l MIc phải gần với giá trị 0,065 độ dịch tơng đối yi yj Tuy nhiên, với giá trị g l MIc thay đổi 0,031 0,045 Bằng kỹ thuật này, thu đợc độ dịch tơng đối hai xâu yi Vấn đề lại 26 từ khoá điều dễ dàng tìm đợc phơng pháp tìm kiếm vét cạn Trở lại ví dụ 1.11 để minh hoạ Ví dụ 1.11( tiếp ): đ giả định rằng, độ dài từ khoá Bây ta thử tính độ dịch tơng đối Nhờ máy tính, dễ dàng tính 260 giá trị MIc(yi,yjg), ≤ i ≤ j ≤ 5; ≤ g ≤ 25 Các giá trị đợc cho bảng 1.5 Với cặp ( i,j), ta tìm giá trị MIc(yi,yjg) gần với 0,065 Nếu có giá trị nh vậy( Đối với cặp (i,j) cho trớc), phán đoán giá trị độ dịch tơng đối Trong bảng 1.5 có giá trị nh đợc đóng khung Chúng chứng tỏ rõ ràng độ dịch tơng đối y1 y2 9; độ dịch tơng đối y2 y3 13; độ dịch tơng đối y2 y5 7; độ dịch tơng đối y3 vµ y5 b»ng 20; cđa y4 vµ y5 b»ng 11 Từ có phơng trình theo ẩn sè K1, K2, K3, K4, K5 nh− sau: K1 - K2 = K1 - K2 = 16 K2 - K3 = 13 K2 - K5 = 17 K3 - K5 = 20 K4 - K5 = 11 Điều cho phép biểu thị Ki theo K1 ; K2 = K1 + 17 K3 = K1 + K4 = K1 + 21 K5 = K1 + 10 Nh− khoá có khả ( K1, K1+17, K1+4, K1+21, K1+10) với giá trị K1 Z26 Từ ta hy vọng rằng, từ khoá dịch vòng AREVK Bây , không tốn nhiều công sức xác định đợc từ khoá JANET Giải m m theo khoá này, ta thu đợc rõ sau: The almond tree was in tentative blossom The days were longer often ending with magnificient evenings of corrugated pink skies The hunting seasun was over, with hounds and guns put away for six months The vineyards were busy again as the well-organized farmers treated their vinesand the more lackadaisical neighbors hurried to the pruning they have done in November B¶ng 1.5 Các số trùng hợp tơng hỗ quan sát đợc i j Giá trị MIc(yj,yjg) 0,028 0,068 0,041 0,039 0,056 0,037 0,034 0,034 0,055 0,043 0,027 0,044 0,041 0,033 0,050 0,047 0,043 0,039 0,047 0,033 0,028 0,026 0,041 0,040 0,045 0,032 0,025 0,044 0,032 0,028 0,034 0,037 0,034 0,034 0,039 0,027 0,027 0,044 0,027 0,046 0,039 0,043 0,037 0,028 0,040 0,039 0,038 0,034 0,039 0,043 0,037 0,037 0,051 0,053 0,036 0,037 0,049 0,039 0,037 0,044 0,026 0,043 0,045 0,048 0,037 0,039 0,040 0,045 0,039 0,039 0,025 0,037 0,042 0,033 0,032 0,035 0,032 0,044 0,035 0,031 0,052 0,028 0,036 0,029 0,027 0,029 0,037 0,026 5 0,030 0,028 0,046 0,039 0,033 0,046 0,048 0,050 0,033 0,029 0,040 0,038 0,058 0,036 0,035 0,041 0,027 0,052 0,028 0,039 0,036 0,038 0,048 0,034 0,033 0,034 0,044 0,035 0,033 0,031 0,037 0,036 0,035 0,028 0,038 0,051 0,030 0,038 0,036 0,043 0,040 0,044 0,041 0,029 0,027 0,043 0,033 0,032 0,036 0,045 0,041 0,040 0,035 0,043 0,034 0,050 0,072 0,033 0,061 0,033 0,041 0,043 0,032 0,040 0,033 0,044 0,024 0,040 0,046 0,039 0,046 0,033 0,034 0,032 0,036 0,035 0,035 0,038 0,033 0,027 0,024 0,047 0,036 0,067 0,045 0,034 0,028 0,056 0,026 0,037 0,045 0,036 0,053 0,051 0,030 0,032 0,034 0,041 0,033 0,030 0,019 0,033 0,035 0,061 0,052 0,031 0,042 0,043 0,018 0,027 0,043 0,060 0,030 0,032 0,043 0,033 0,032 0,043 0,032 0,039 0,048 0,026 0,036 0,033 0,042 0,040 0,039 0,028 0,043 0,026 0,035 0,035 0,032 0,034 0,043 0,033 0,043 0,037 0,052 0,048 0,070 0,044 0,020 0,037 0,030 0,045 0,026 0,028 0,080 0,031 0,030 0,041 0,035 0,030 0,050 0,052 0,027 0,048 0,034 0,035 0,024 0,045 0,040 0,034 0,050 0,039 0,029 0,036 0,025 0,031 0,028 0,027 1.2.4.Tấn công với rõ đ biết hệ mật Hill Hệ m Hill hệ mật khó pha công với m Tuy nhiên hệ mật dễ bị phá công rõ đ biết Trớc tiên, giả sử rằng, thám m đ biết đợc giá trị m sử dụng Giả sử thám m có m cặp véc tơ khác xj = (x1,j, x2,j, , , xm,j) vµ yj = (y1,j, y2,j, ,ym,j) (1 ≤ j ≤ m) cho yj = eK(xj), ≤ j ≤ m Nếu xác định hai ma trận: X = (xi,j) Y = (yi,j) cấp mìm ta có phơng trình ma trËn Y = XK, ®ã ma trËn K cÊp mìm khoá cha biết Với điều kiện ma trận Y khả nghịch Oscar tính K = X-1Y nhờ phá đợc hệ mật ( Nếu Y không khả nghịch cấn phải thử tập khác gồm m cặp rõ - m ) Ví dụ 1.12 Giả sử rõ Friday đợc m hoá m Hill với m = 2, m nhận đợc lµ PQCFKU Ta cã eK(5,17) = (15,16), eK(8,3) = (2,5) eK(0,24) = (10,20) Từ hai cặp rõ - m đầu tiên, ta nhận đợc phơng trình ma trận: 15 16 = 2 17 K Dùng định lý 1.3, dễ dàng tính đợc: 17 −1 9 = 2 15 Bëi vËy: 9 K = 2 15 16 = 15 Ta dùng cặp rõ - m 19 thứ để kiểm tra kết Vấn đề thám m phải làm m? Giả sử m không lớn, thám má thử với m = 2,3, tìm đợc khoá Nếu giá trị giả định m không mà trận mìm tìm đợc theo thuật toán đ mô tả không tơng thích với cặp rõ - m khác Phơng pháp này, xác định giá trị m cha biết 1.2.5 Thám m hệ m dòng xây dựng LFSR Ta nhớ lại rằng, m tổng theo modulo rõ dòng khoá, tức yi = xi + zi mod Dòng khóa đợc tạo từ (z1,z2, .,zm) theo quạn hệ đệ quy tuyến tính: m z m+1 = ∑ c j z i +1 mod j =0 c0, .,cm Z2 (và c0 = 1) Vì tất phép toán tyuến tính nên hy vọng rằng, hệ mật bị phá theo phơng pháp công với rõ đ biết nh trờng hợp mật m Hill Giả sử rằng, Oscar có xâu rõ x1x2 .xn xâu m tơng ứng y1y2 .yn Sau tính bít dòng khoá zi = xi+yi mod 2, i ≤ n Ta cịng gi¶ thiÕt r»ng Oscar cịng đ biết giá trị m Khi Oscar cần tính c0, , cm-1 để tái tạo lại toàn dòng khoá Nói cách khác, Oscar cần phải có khả để xác định giá trị m ẩn số Với i bÊt k× ta cã : m −1 z m+1 = ∑ c j z i + j mod j =0 phơng trình tuyến tính n ẩn Nếu n 2n có m phơng trình tuyến tính m ẩn giải đợc Hệ m phơng trình tun tÝnh cã thĨ viÕt d−íi d¹ng ma trËn nh− sau: z z2 z z (z m+1 , z m+2 , ,z 2m ) = (c , c1 , ,c m−1 ) zm zm+1 zm zm+1 z2m-1 NÕu ma trËn hÖ sè cã nghịch đảo ( theo modulo )thì ta nhận đợc nghiÖm: z z2 z z (c , c1 , ,c m−1 ) = (z m+1 , z m+2 , ,z 2m ) zm zm+1 zm zm+1 z2m-1 −1 Trªn thùc tÕ, ma trận có nghịch đảo bậc phép đệ quy đợc dùng để tạo dòng khoá m.(xem tập) Minh hoạ điều qua ví dụ Ví dụ 1.13 Giả sử Oscar thu đợc xâu m 101101011110010 tơng ứng với xâu rõ 011001111111001 Khi tính đợc bít dòng khoá: 110100100001010 Ta giả sử rằng, Oscar biết dòng khoá đợc tạo từ ghi dịch phản hồi (LFSR) có tầng Khi đó, 1 (0,1,0,0,0) = (c ,c1 , c , c , c )0 1 0 0 0 0 0 1 0 0 giải phơng trình mà trận sau ( nhận đợc từ 10 bít dòng khoá): Có thể kiểm tra đợc rằng: 1 0 1 0 0 1 0 0 1 0 1 0 0 −1 0 1 = 0 0 1 0 1 0 0 1 1 1 1 Tõ ®ã ta cã: 0 1 (c , c1 , c , c , c ) = (0,1,0,0,0)0 0 1 0 0 0 1 1 1 1 1 = (1, 0, 0, 1, 0) Nh phép đệ quy đợc dùng để tạo dòng khoá là: zi+5 = zi + zi+3 mod 1.3 Các giải tài liệu dẫn Nhiều tài liệu mật m cổ điển đ có giáo trình, chẳng hạn nh giáo trình Beker Piper [BP82] Denning [DE82] Xác suất đánh giá cho 26 kí tự đợc lấy Beker Piper Cũng vậy, việc phân tích m Vigenère đợc sửa đổi theo mô tả Beker Piper Rosen [Ro93] tài liệu tham khảo tốt lý thuyết số Cơ sở Đại số tuyến tính sơ cấp tìm thấy sách Anton [AN91] Cuốn " Những ngời m thám " Kahn [KA67] cấu chun hÊp dÉn vµ phong phó vỊ mËt m năm 1967, Kahn khẳng định mật m Vigenère thực phát minh Vigenère Mật m Hill lần đợc mô tả [HI29] Các thông tin mật m dòng tìm đợc sách Rueppel [RU86] Bài tập 1.1 Dới m thu đợc từ m thay Một thu đợc từ m Vigenère, từ mật m Affine cha xác định Nhiệm vụ xác định rõ trờng hợp H y mô tả bớc cần thực để giải m m ( bao gồm tất phân tích thống kê tính toán cần thực hiện) Hai rõ ®Çu lÊy tõ cuèn " The diary of samuenl marchbanks " cđa Robertson Davies, Clack Iriwin,1947; b¶n râ thø t− lÊy tõ " Lake wobegon days" cña Garrison Keillor, Viking Penguin, 1985 a) M thay thÕ: EMGLXUDCGDNCUSWYXFPHNSFCYKDPUMLWGYICOXYFIPJCK QPKUGKMGOLICGINCGACKFNIFACYKZSCKXECJCKFHYFXCG 0IDPKZCNKSHICGIWYGKKGKGOLDSILKGOIUFIGLEDFPWZU GFZCCNDGYYFFUSZCNXEOJNCGYEOWEUPXEZGACGNFGLKNF ACIGOYCKXCJUCIUZCFZCCNDGYYSFEUEKUZCSOCSZCCNC IACZEJNCFFZEJZEGMXCYHCJUMGKUSI Chỉ dẫn: F giải m thành W b) HƯ m VigenÌre KCCPKBGUFDPHQTYAVINRRTMVGRKDNBVFDETDGLLTXRGUD DKBTMBPVGEGLTGCKQRACQCWDNAWCRXIZAKSTLEWRPTYC QKYVXCHKFTPONCQQRHJVAJUWETMCMSPKQDYHJVDAHCTRL SVSKCGCZQQDZXGSFRLFWCWSJTBHAFSIASPRJAHKJRJUMP FFSQNRWXCVYCGAONWDDKACKAWBBIKFTIOVKCGGHJVLNHI CWHJVLNHIQIBTKHJVNPIST c) HÖ m Affine KQEREJEBCPPCJCRKIEACUZBKRVPKRBCIBQCARBJCVFCUP KRIOFKPACUZQEPBKRXPEIIEABDKPBCPFCDCAFIEABDKP BCPFEQPKAZBKRHAIBKAPCCIBURCCDKDCCJCIDFUIXPAFF ERBICZDFKABICBBENEFCUPJCVKABPCYDCCDPKBCOCPERK IVKSCPICBRKIJPKABI d) Hệ m cha xác định đợc BNVSNSIHQCEELSSKKYERISJKXUMBGYKAMQLJTYAVFBKVT DVBPVVRJYYLAOKYMPQSCGDLFLLPROYGEFEBUUALRWXM MASAZLGLEDFJBZAVVPXWYCGJXASCBYEHOSNMULKCEAHTQ OKMFLEBKFXLRRFDTZXCIWBJSICBGAWDVYDHAVFJXZIBKC GJIWEAHTTOEWTUHKRQVVRGZBXYIREMMASCSPBNLHJGBLR FFJELHWEYLWISTFVVYFJCMHYURUFSFMGESIGRLWALSWM NUHSIMYYITCCQPZSICEHBCCMZFEGVJYOCDEMMPGHVAAMU ELCMOEHVLTIPSUYILVGFLMVWDVYDBTHERAYISYSGKVSUU HYHGGCKTMBLRX 1.2 a) Cã bao nhiªu ma trận khả nghịch cấp 2ì2 Z26 b) Giả sử p số nguyên tố H y chứng tỏ số ma trận khả nghịch cấp 2ì2 Zp (p2-1)(p2-p) Chỉ dẫn: Vì p số nguyên tố nên Zp trờng H y sử dụng khẳng định sau: Một ma trận khả nghịch trờng khả nghịch hàng véc tơ độc lập tuyến tính ( tức không tồn tổ hợp tuyến tính hàng khác mà tổng chúng véc tơ toàn số 0) c) Với p số nguyên tố m số nguyên H y tìm công thức tính số ma trận khả nghịch cấp mìm Zp 1.3 Đôi chọn khoá mà phép m giải m đồng hữu ích Trong trờng hợp m Hill, ta phải tìm ma trận K cho K = K-1 ( ma trận đợc gọi ma trận đối hợp) Trên thực tế, Hill đ đề nghị sử dụng ma trận làm khoá hệ mật H y xác định số ma trận đối hợp Z26 trờng hợp m = ChØ dÉn: H y dïng c«ng thøc định lý 1.3 để ý detA = với ma trận đối hợp Z26 1.4 Giả sử ta đ biết rõ " conversation " tạo nên m " HIARRTNUYTUS " ( đợc m theo hệ m Hill nhng cha xác định đợc m) H y xác định ma trận m hoá 1.5 HƯ m Affine - Hill lµ hƯ m Hill đợc sửa đổi nh sau: Giả sử m số nguyên dơng P = C = (Z26)m Trong hệ mật này, khoá K gồm cặp (L,b), L mọt ma trận khả nghịch cấp mìm Z26 b(Z26)m Với x = ( x1, .,xm)∈P vµ K = (L,b) ∈ K, ta tÝnh y = eK(x) = (y1, .,ym) theo c«ng thøc y = xL + b Bëi vËy, nÕu L = (li,j) b = (b1, .,bm) thì: l 1,1 l 1,2 l 2,1 l 2, (y , ,y m ) = (x , ,x m ) l m ,1 l m, l 2, m + ( b , ,b ) m l m,m l 1,m Gi¶ sử Oscar đ biết rõ "adisplayedequation" m tơng ứng " DSRMSIOPLXLJBZULLM" Oscar biết m =3 Hình tính khoá tất tính toán cần thiết 1.6 Sau cách thám m hệ m Hill sử dụng phơng pháp công chØ víi b¶n m Gi¶ sư ta biÕt m = Chia m thành khối có độ dài kí tự ( đôi) Mỗi đôi m đôi rõ nhờ dùng ma trận m hoá cha biết H y nhặt đôi thờng gặp m coi m đôi thờng gặp danh sách bảng 1.1 ( ví dụ TH ST) Với giả định, h y thực phép công với rõ đ biết tìm đợc ma trận giải m Sau ví dụ m phơng pháp đ nêu: để bạn giải m theo LMQETXYEAGTXCTUIEWNCTXLZEWUAISPZYVAPEWLMGQWYA XFTCJMSQCADAGTXLMDXNXSNPJQSYVAPRIQSMHNOCVAXFV 1.7 Ta mô tả trờng hợp đặc biệt m hoán vị Giả sử m, n số nguyên dơng H y viết rõ theo thành hàng thành hình chữ nhật mìn Sau tạo m cách lấy cột hình chữ nhật Ví dơ, nÕu m = 4, n = th× ta m hoá rõ "cryptography" cách xây dựng hình chữ nhật : cryp togr aphy Bản m là: 'CTAROPYGHPRY' a) H y mô tả cách Bob giải m m ( với m, n đ biết) b) H y gi¶i m b¶n m sau: ( nhËn đợc theo phơng pháp đ nêu): MYAMRARUYIQTENCTORAHROYWDSOYEOUARRGDERNOGW 1.8 Có phép đệ quy tuyến tính bậc khác Z2 với c0 = H y xác định phép đệ quy tạo đợc dòng khoá có chu kỳ 15 ( với véc tơ khởi tạo khác 0) 1.9 Mục đích tập để chứng minh khẳng định phần 1.2.5 : ma trận hệ số cấp mìm có nghịch đảo Điều tơng đơng với khẳng định rằng, hàng ma trận véc tơ độc lập tuyến tính Z2 Giả sử phép đệ quy có dạng: m z m+ i = ∑ c j z i + j mod j =0 ( z1, .,zm) lµ vÐc tơ khởi tạo Với i ta xác định: vi = (zi, .,zi+m-1) Chó ý r»ng, ma trËn hệ số có véc tơ v1, .,vm hàng Bởi vậy, nhiệm vụ ta chứng tỏ m véc tơ độc lập tuyến tính H y chứng minh hai khẳng định sau: a) Víi i ≥ bÊt k×: m −1 v m+ i = ∑ c j v i + j mod j =0 h−2 h −2 j =0 j =0 v h z=h∑ −1+ ic = j v∑ j +1αmod j z j + i2mod b)Chän h số nguyên nhỏ cho tồn tổ hợp tuyến tính không tầm thờng véc tơ v1, .,vh có tổng véc tơ (0, , 0) theo modulo Khi ®ã: ( Các j không đồng 0) Để ý rằng, h m+1 m+1 véc tơ không gian tuyến tính m chiều phụ thuéc tuyÕn tÝnh c) H y chøng tá r»ng dòng khoá phải thảo m n phép đệ quy: với bÊt k× i ≥ d) Ta nhËn thÊy r»ng, h m dòng khoá thảo m n phép đệ quy tuyến tính có bậc nhỏ m Điều mâu thuẫn Bởi h = m + ma trận phải khả nghịch 1.10 H y giải m m sau ( thu đợc từ m sinh ) phơng pháp tìm khoá vét cạn khoá tự MALVVMAFBHBUQPTSOXALTGVWWRG 1.11 Ta mô tả hệ m dòng biến thể m Vigenère nh sau Với từ khoá độ dài m cho trớc ( k1, .,km ), ta tạo dòng khoá theo quy t¾c zi=ki (1 ≤ i ≤ m), zi+m = zi+1 mod 26 ( i m+1) Nói cách khác, lần dùng từ khoá ta thay kí tự b»ng kÝ tù ®øng sau nã theo modulo 26 VÝ dụ, SUMMER từ khoá ta dùng SUMMER để m hoá kí tự đầu.,sau dùng TVNNFS để m hoá kí tự cú tiếp tục nh H y mô tả cách dùng khái niệm số trùng hợp nh để trớc hết xác định độ dài từ khoá sau tìm từ khoá H y kiểm tra phơng pháp bạn cách cách phân tích m sau: IYMYSILONRFNCQXQJEDSHBUIBCJUZBOLFQYSCHATPEQGQ JEJNGNXZWHHGƯFSUKULJQACZKKJOAAHGKEMTAFGMKVRDO PXNEHEKZNKFSKIFRQVHHOVXINPHMRTJPYWQGJWPUUKFP OAWPMRKKQZWLQDYAZDRMLPBJKJOBWIWPSEPVVQMBCRYVC RUZAAOUMBCHDAGDIEMSZFZHALIGKEMJJFPCIWKRMLMPIN AYOFIREAOLDTHITDVRMSE Bản rõ đợc lấy từ "The codebreakers" D.Kahn, 1967 ... modulo 26 nh− sau: 19 8 15 18 17 17 24 15 19 15 14 18 24 17 21 15 23 25 23 21 22 15 18 19 15 12 18 17 13 14 19 15 18 4 17 20 19 19 12 15 22 15 19 20 17 15 Bëi vËy, d y ký tự tơng ứng xâu m là: VPXZGIAXIVWPUBTTMJPWIZITWZT... (xK)K -1 = x(KK -1) = xIm = x ( Chó ý sư dơng tÝnh chÊt kÕt hỵp) Cã thĨ thÊy r»ng, ma trËn m 11 -1 = hoá có 18 23 11 nghịch đảo Z26: v× 12 = 18 23 11 2 61 286 18 2 13 1 = 11 ×7+8×23 11 ? ?18 +8? ?11 3×7+7×23... 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ơ: × = 10 5 ≡ mod 26, 7 -1 = 15 ) Xét phơng trình đồng d y ax+b