phần mở đầu, phần kết luận, phần mục lục, phần tài liệu tham khảo. Các nội dung cơ bản của luận văn đƣợc trình bày theo cấu trúc nhƣ sau: Chƣơng 1: Mật mã RC4 và kỹ thuật Time-Memory Trade-Off áp dụng trong bài toán tấn công mật Chƣơng 2: Kỹ thuật tấn công Rainbow đối với RC4 Chƣơng 3: Xây dựng chƣơng trình tính toán tham số tấn công Rainbow đối với RC4 Bằng sự cố gắng nỗ lực của bản thân và đặc biệt là sự giúp đỡ tận tình, chu đáo của thầy giáo TS. Nguyễn Ngọc Cƣơng , em đã hoàn thành luận văn đúng thời hạn. Do thời gian làm đồ án có hạn và trình độ còn nhiều hạn chế nên không thể tránh khỏi những thiếu sót.
Em rất mong nhận đƣợc sự đóng góp ý kiến của các thầy cô cũng nhƣ là của các bạn sinh viên để bài luận văn này hoàn thiện hơn nữa. Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 Chƣơng 1: MẬT MÃ RC4 VÀ KỸ THUẬT TIME-MEMORY TRADE –OFF ÁP DỤNG TRONG BÀI TOÁN TẤN CÔNG MẬT MÃ Trong chƣơng này là trình bày tập hợp các thông tin cơ sở về kỹ thuật TMTO; các cải tiến “điểm phân biệt” của Rivest và “bảng cầu vồng” của Oechslin. Nội dung chƣơng làm rõ phƣơng thức chia không gian tìm kiếm thành các bộ phận và tổ chức lƣu trữ hiệu quả từng bộ phận không gian tìm kiếm. Đặc biệt là phƣơng pháp tổ chức các “bảng cầu vồng” của Oechslin, phƣơng pháp đƣợc ứng dụng hiệu quả trong phần mềm OPH-Crack.
Thuật toán mật mã RC4 đóng vai trò trung tâm trong lƣợc đồ xác thực mật khẩu. Bên cạnh đó là những phƣơng pháp thám mã khác cũng đang đƣợc áp dụng nhiều trong thực tế.1 Tổng quan về RC4 RC4 là tên của thuật toán mã hóa đƣợc sử dụng trong WEP, MS-OFFICE. Một thuật toán mã hóa là một tập hợp các hoạt động mà chúng ta sử dụng để biến đổi văn bản chƣa mã hóa thành mật mã. Nó sẽ hữu ích, trừ khi có một thuật toán giải mã tƣơng ứng.
Trong trƣờng hợp của RC4, cùng một thuật toán đƣợc sử dụng để mã hóa và giải mã. Giá trị của một thuật toán mã hóa là ở khả năng bảo mật cao và dễ dàng trong sử dụng. Sức mạnh của một thuật toán đƣợc đo bằng độ khó để crack các bản mã đƣợc mã hóa bằng thuật toán đó. Chắc chắn là có các phƣơng pháp mạnh hơn RC4.
Tuy nhiên, RC4 là khá đơn giản để thực hiện và đƣợc coi là rất mạnh, nếu đƣợc sử dụng đúng cách. Thật may mắn là RC4 khá đơn giản để thực hiện và mô tả. Ý tƣởng cơ bản mã hóa RC4 là tạo ra một chuỗi các trình tự giả ngẫu nhiên (giả ngẫu nhiên) của các byte đƣợc gọi là khóa dòng, sau đó đƣợc kết hợp với các dữ liệu bằng cách sử dụng toán tử OR (XOR). Toán tử XOR kết hợp hai byte và tạo ra một byte duy nhất.
Nó làm điều này bằng cách so sánh các bit tƣơng ứng trong từng byte. Nếu chúng bằng nhau, kết quả là 0, nếu chúng khác nhau, kết quả là 1. Về mặt lý thuyết, RC4 không phải là một hệ thống mã hóa hoàn toàn an toàn bởi vì nó tạo ra một dòng giả ngẫu nhiên chính, không phải byte thực sự ngẫu nhiên. Nhƣng nó đủ chắc chắn an toàn cho các ứng dụng, nếu đƣợc áp dụng đúng.
RC4 là mật mã có cỡ của khóa biến đổi do Ron Rivest phát triển vào những năm 1987 cho liên hợp an ninh dữ liệu RSA. Trong bảy năm nó là sở hữu độc Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 quyền và các chi tiết của thuật toán ta chỉ có đƣợc sau khi ký thỏa thuận không tiết lộ bí mật. Vào tháng 9 năm 1994, một ngƣời lạc danh đã gửi mã nguồn qua bƣu điện vào danh sách thƣ tín Cypherpunks, Nó nhanh chóng lan tỏa đến nhóm Usenet và qua Internet đến các site ftp trên thế giới. Liên hiệp an ninh dữ liệu RSA tuyên bố rằng nó vẫn còn là một bí mật thƣơng mại mặc dù nó đã đƣợc công bố, nhƣng việc này đã quá muộn.
Bởi nó đã đƣợc thảo luận và phân tích kỹ trên Usenet, đọc phân phát ở các hội nghị và đƣợc đƣa vào các giáo trình mật mã. RC4 có địa vị xuất khẩu đặc biệt nếu độ dài khóa của nó là 40 bít hoặc ít hơn. Địa vị xuất khẩu đặc biệt này sẽ dẫn đến việc không có gì để làm đối với độ an toàn của thuật toán, mặc dù liên hợp an ninh dữ liệu RSA đã nói bóng gió trong nhiều nãm rằng vẫn có. Tên thuật toán này ðýợc thýõng mại hóa do ðó bất kỳ ngýời nào viết mã riêng của mình đều phải gọi nó bằng một cái tên khác.
Các tài liệu bên trong khác của liên hợp an ninh dữ liệu RSA vẫn chƣa đƣợc công bố. RC4 là một phần mềm trong các sản phẩm mật mã thƣơng mại, bao gồm Lotus Notes, Apple Computer’s AOCE và ORACLE Security SQL. Nó là một bộ phận của bản chỉ dẫn kỹ thuật Cellular Digital Packed Data. RC4 là một họ các thuật toán phụ thuộc vào các tham số nguyên dƣơng, mà điển hình là trƣờng hợp n= 8.
Ở thời điểm t, trạng thái bên trong của RC4 gồm bảng n S1=(S1(l)) l20 1 có từ n-bít và 2 con trỏ n-bít là it và jt. Do đó cỡ bộ nhớ trong la M=n2n+2n(bít). Gọi Zt là từ ra n-bít của RC4 ở thời điểm t. Bít có nghĩa thấp nhất của một từ là bít ở bên trái nhất của nó.
Các kỹ thuật thám mã 1.1 WEP WEP (Wired Equivalent Privacy) là một thuật toán nhằm bảo vệ sự trao đổi thông tin chống lại nghe trộm, chống lại những kết nối mạng không đƣợc cho phép cũng nhƣ chống lại việc thay đổi hoặc làm nhiễu thông tin truyền. WEP sử dụng stream cipher RC4 cùng với một mã 40 bit và một số ngẫu nhiên 24 bit (initialization vector - IV) để mã hóa thông tin. Thông tin mã hóa và IV sẽ đƣợc gửi đến ngƣời nhận. Ngƣời nhận sẽ giải mã thông tin dựa vào khóa WEP đã biết trƣớc.
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.2 Tấn công chọn bản mã Tấn công chọn bản mã (chosen ciphertext): ngƣời thám mã tạm thời có quyền truy xuất tới Bộ giải mã, do đó anh ta có khả năng chọn bản mã và xây dựng lại bản tin rõ tƣơng ứng. Trong mọi trƣờng hợp, mục đích là tìm ra khóa mã đƣợc sử dụng. Kiểu tấn công chọn bản mã đƣợc thực hiện với hệ mật mã khóa công khai mà chúng ta sẽ xem xét trong chƣơng kế tiếp. Trong phần này chúng ta chỉ thảo luận về kiểu tấn công đƣợc xem là “yếu nhất” - Tấn công chỉ biết bản mã.
Nhiều kỹ thuật thám mã sử dụng đặc điểm thống kê của tiếng Anh, trong đó dựa vào tần suất xuất hiện của 26 chữ cái trong văn bản thông thƣờng để tiến hành phân tích mã. Becker và Piper đã chia 26 chữ cái thành năm nhóm và chỉ ra xác suất của mỗi nhóm nhƣ sau: E, có xác suất khoảng 0.120 T, A, O, I, N, S, H, R, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.09 D, L, mỗi chữ cái có xác xuất xấp xỉ 0.04 C, U, M, W, F, G, Y, P, B, mỗi chữ cái có xác xuất nằm trong khoảng từ 0.023 V, K, J, X, Q, Z, mỗi chữ cái có xác xuất nhỏ hơn 0.01 Ngoài ra, tần suất xuất hiện của dãy hai hay ba chữ cái liên tiếp đƣợc sắp theo thứ tự giảm dần nhƣ sau [11]: TH, HE, IN, ER … THE, ING, AND, HER… 1.3 Thám mã tích cực: Thám mã tích cực là việc thám mã sau đó tìm cách làm sai lạc các dữ liệu truyền, nhận hoặc các dữ liệu lƣu trữ phục vụ mục đích của ngƣời thám mã. Thám mã thụ động: Thám mã thụ động là việc thám mã để có đƣợc thông tin về bản tin rõ phục vụ mục đích của ngƣời thám mã.4 Thám mã Affine Giả sử Trudy đã lấy đƣợc bản mã sau đây: FMXVEDKAPHFERBNDKRXRSREFMORUDSDKDVSHVUFEDKAPRK DLYEVLRHHRH. Trudy thống kê tần suất xuất hiện của 26 chữ cái nhƣ trong bảng sau: Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 Chữ cái Tần suất Chữ cái Tần suất A 2 N 1 B 1 O 1 C 0 P 3 D 6 Q 0 E 5 R 8 F 4 S 3 G 0 T 0 H 5 U 2 I 0 V 4 J 0 W 0 K 5 X 2 L 2 Y 1 M 2 Z 0 Bảng 1.1: Bảng Thám mã Affine Chỉ có 57 chữ cái trong bản mã nhƣng phƣơng pháp này tỏ ra hiệu quả để thám mã Affine.
Ta thấy tần suất xuất hiện các chữ cái theo thứ tự là: R(8), D(6), E, H, K(5) và F, S, V(4). Vì vậy dự đoán đầu tiên của ta có thể là: R là mã của e, D là mã của t. Mà eK(x)=ax+b với a, b là các biến. Để tìm K=(a, b) ta giải hệ phƣơng trình: 4a+b=17 19a+b=3 Suy ra, a = 6, b=19.
Đây không phải là khóa vì gcd(a, 26) = 2 > 1. Ta lại tiếp tục phỏng đoán: R là mã của e, E là mã của t. Ta nhận đƣợc a = 13, chƣa thỏa mãn. Tiếp tục với H, ta có a=8.
Cuối cùng, với K ta tìm đƣợc K= (3, 5). Sử dụng khóa mã này ta có đƣợc bản tin rõ nhƣ sau: Algorithmsrequiregeneraldefinitionsofarithmeticprocesses 1.5 Thám mã Vigenere Để thám mã Vigenere, trƣớc hết cần xác định độ dài từ khóa, ký hiệu làm. Sau đó mới xác định từ khóa. Có hai kỹ thuật để xác định độ dài từ khóa đó là phƣơng pháp Kasiski và phƣơng pháp chỉ số trùng hợp (index of coincidence).
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.vn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 7 Phƣơng pháp Kasiski đƣợc đƣa ra bởi Friedrich Kasiski năm 1863. Phƣơng pháp này làm việc nhƣ sau: Tìm trên bản mã các cặp xâu kí tự giống nhau có độ dài ít nhất là 3, ghi lại khoảng cách giữa vị trí chữ cái đầu tiên trong các xâu và xâu đầu tiên. Giả sử nhận được d 1 , d 2 … Tiếp theo ta phỏng đoán m là số sao cho ước số chung lớn nhất của các d i chia hết cho m. Ví dụ: Plaintext: conghoa|danchun|handant|runghoa|sapsuat|hanghoa Keyword: abcdefg Ciphertext: CPPJLTG DBPFLZT HBPGESZ RVPJLTG SBRVYFZ HBPJLTG Vị trí xuất hiện của dãy PJL lần lƣợt là: 3, 24, 38.
Do vậy, dãy d1, d2 … là 21, 35; gcd(d1, d2 …) = 7 Phƣơng pháp chỉ số trùng hợp sẽ cho biết các bằng chứng để nhận đƣợc giá trị m.