Nghiên cứu về các thuật toán băm dữ liệu từ đó viết đặc tả và vẽ lưu đồ thuật toán

22 1.1K 0
Nghiên cứu về các thuật toán băm dữ liệu từ đó viết đặc tả và vẽ lưu đồ thuật toán

Đ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

Nghiên cứu về các thuật toán băm dữ liệu từ đó viết đặc tả và vẽ lưu đồ thuật toán

Trêng §¹i häc S ph¹m kü thuËt Hng Yªn Khoa C«ng nghÖ th«ng tin  TiÓu luËn Môn: AN TOÀN BẢO MẬT THÔNG TIN Đề tài: Nghiên cứu về các thuật toán băm dữ liệu từ đó viết đặc tả vẽ lưu đồ thuật toán Giảng viên hướng dẫn: Nguyễn Duy Tân Sinh viên thực hiện : Trần Thị Thu Lớp : TK6LC_1 Hng yªn 01/2010 1 I.Các hàm Hash ( hay còn gọi là hàm băm) I.1 Các yêu cầu Nén mẩu tin bất kỳ về kích thước cố định giả thiết hàm hash là công khai không dung khóa Hash chỉ phụ thuộc mẩu tin. Hash được sử dụng để phát hiện thay đổi của mẩu tin Hash có thể sử dụng nhiều cách khác nhau với mẩu tin, Hash thường được kết hợp dùng để tạo chữ ký trên mẩu tin. Hàm hash có các tính chất sau: + Tạo nên dấu vân tay ( tức là thong tin đặc trưng) của một tệp, mẩu tin hay dữ liệu h = HCM. + Nén mẩu tin có kích thước tùy ý về dấu vân tay có kích thước cố định. Hàm hash được giả thiết là công khai, mọi nguời đều biết cách sử dụng. Các yêu cầu của hàm Hash: + Có thể áp dụng cho mọi mẩu tin có kích thước tùy ý. Tuy nhiên phải tạo đầu ra h có kích thước cố định, thường là 128 bit đến 1024 bit. + Dễ tính h = HCM cho mọi mẩu tin M, hàm H tính toán nhanh, hiệu quả phụ thuộc chặt vào mẩu tin M không tính tóan ngược lại. + Cho trước h không thể tìm được ( rất khó ) x sao cho H(x) = h. Tính chất này gọi là tính chất 1 chiều, tìm chiều nghịch ảnh rất khó khăn, tuy chiều tìm ảnh lại dễ. + Cho x không tìm được y sao cho H(y) = H(x). Đây là tính chất chống đỡ va chạm yếu, không tìm được mẩu tin có cùng hash với mẩu tin đã cho. 2 + không thể tìm được x,y sao cho H(y) = H(x). Đây là tính chất va chạm mạnh, đây là yêu cầu cao hơn tính chống đỡ va chạm yếu. + I.2.Các hàm hash đơn giản Có một số để xuất cho một số hàm hash đơn giản. Chẳng hạn biểu diễn mẩu tin dưới dạng bit sau đó chia chúng thành các khối bit có kích thước bằng kích thước mong muốn của Hash rồi dựa trên phép toán XOR các bit thong tin ở cùng vị trí tương ứng của các khối, kết quả nhận được là Hash của cả mẩu tin. Hàm Hash trên là không an toàn vì đối với mẩu tin bất kì có thể tìm được mẩu tin mà có cùng hàm Hash. Cần phải có hàm mạnh hơn, ta không xét ở đây. Tấn công ngày sinh nhật: Có thể nghĩ hash 64 bit là an toàn, có nghĩa là khó tìm được bản tin có cùng hash. Nhưng không phải vì vậy vì nghịch lý ngày sinh nhật như sau: trong lớp có ít nhất bao nhiêu sinh viên để xác xuất có ít nhất 2 sinh viên trùng ngày sinh nhật là lớn hơn 0,5. Theo thuyết xác xuất thống kê gọi số sinh viên ít nhất trong lớp là k, khi đó xác suất q để không có hai người nào trùng ngày sinh nhật là tỷ số giữa cách chọn k ngày khác nhau trong 365 ngày trên số cách chọn k ngày bất kì trong 365 ngày. Vậy q = C k 365 / 365 k Do đó, xác suất p để có ít nhất 2 người trùng ngày sinh nhật là: P= 1 – q = 1 - C k 365 / 365 k Để p > 0,5 thì k > 22 hay k = 23, cụ thể khi đó p = 0,5073. Khi chưa tính toán chi tiết chúng ta nghĩ là trong lớp phải có ít nhất khoảng 365/2 tức 184 sinh viên. Nhưng dựa trên thực tế con số đó ít hơn rất nhiều chỉ cần 23 sinh viên, chính vì vậy ta gọi đây là nghịch lý ngày sinh nhật. 3 Điều đó muốn nói lên rằng trong nhiều trường hợp xác suất để 2 mẩu tin có cùng bản hash là không nhỏ như chúng ta tưởng. Tấn công ngày sinh nhật hoạt động như sau: Kẻ thám mã tạo ra 2 m/2 biến thể của mẩu tin đúng mà tất cả đều có bản chất ngữ nghĩa như nhau, với m ở đây là độ dài của bản mã hash. Kẻ thám mã cũng có thể tạo ra 2 m/2 biến thể khác nhau của mẩu tin lừa dối, là có ngữ nghĩa ngược lại. Hai tập tin được so sánh với nhau để tìm cặp có cùng bản hash( xác suất >=0,5 dựa vào nghịch lý ngày sinh nhật) Người dùng kí vào mẩu tin đúng, sau đó bị thay thế bằng mẩu tin giả mà cũng có chữ ký đúng. I.3. Mã khối như hàm hash Có thể sử dụng mã khối như hàm hash Sử dụng H 0 = 0 bộ đệm không cho khối cuối. Tính H i = E Mi [H i – 1 ] sử dụng khối cuối cùng như giá trị hàm hash Giống chế độ CBC nhưng không có khóa Hash kết quả quá nhỏ (64 bit) Cả về tấn công sinh nhật trực tiếp Cả tấn công ở giữa chừng Các phương án khác cũng dễ bị tấn công Kẻ thám mã cũng có thể tạo ra 2 m/2 biến thể khác nhau của mẩu tin. I.4. Tính an toàn của hàm Hash Giống như đối với mã khối, hàm hash cũng có tấn công vét cạn, cụ thể: Hash chống va chạm mạnh có giá 2 m/2 , có nghĩa là với m là độ dài mã hash thì 2 m/2 xác định sức mạnh của nó chống đối lại tấn công vét cạn. Ta cần lựa chọn m đủ lớn để việc duyệt tìm 2 m/2 phương án là không khả thi. Có đề xuất Hash 128 bit cho MD5 4 phần cứng. Nhưng có thể tìm được va chạm sau 24 ngày. Do đó có thể coi là hash 128 bit có thể có lỗ hổng, không an toàn, tốt hơn dùng hash 160 bit. Thám mã tấn công có cấu trúc: Giống như mã khối muốn dùng tấn công vét cạn có một số các tấn công thám mã là lựa chọn tôt nhất hiện có. Chẳng hạn: Nếu CV i = f [CV i – 1 ,M i ] ; H(M) = CV N Thì ở đây thong thường khai thác sự va chạm của hàm f. Giống mã khối thường gồm 1 số vòng lặp Khi đó tấn công sử dụng các tính chất có hàm vòng. II.Các thuật tóan Hash Hàm hash: thực hiện việc nén mẩu tin về kích thước cố định bằng cách xử lí mẩu tin theo từng khối dùng một hàm nén nào đó mà có thể sử dụng mã khối dùng một hàm nén nào đó chỉ có thể sử dụng mã khối. Cấu trúc thuật toán Hash 5 II.1 Thuật toán Hash an toàn SHA ( Secure Hash Algorithm) SHA có nguồn gốc từ Viện chuẩn công nghệ quốc gia Hoa Kì – NIST & NSA vào năm 1993, sau đó được nâng cấp vào năm 1995 theo chuẩn US chuẩn là FIPS 180 – 11995 Internet RFC3174, được nhắc đến như SHA – 1. Nó được sử dụng với sơ đồ chữ kí điện tử DSA ( Digital Signature Algorithm). Thuật toán là SHA dựa trên thiết kế MD4 với một số khác biệt tạo nên giá trị Hash 160 bit. Các kết quả nghiên cứu 2005 về an toàn cuả SHA – 1 đề xuất sử dụng nó trong tương lai. II.1.1 Thuật toán SHA – 1 II.1.1.1 Mô tả thuật toán Đầu vào của thuật toán là một thông điệp có chiều dài bất kì nhỏ hơn 2 64 bit, SHA – 1 cho ra kết quả là một thông điệp rút gọn có độ dài là 160 bit II.1.1.2 Mở rộng thông điệp f(t;B,C,D) được định nghĩa như sau: f(t;B,C,D) = (B AND C) OR ((NOT B) AND D) (0≤t≤19) f(t;B,C,D) = B XOR C XOR D (20≤t≤39) f(t;B,C,D) = (B AND C) OR (B AND D) OR (C AND D) (40≤t≤59) f(t;B,C,D) = B XOR C XOR D (60≤t≤79) Thông điệp M được mở rộng trước khi thực hiện băm. Mục đích của việc mở rộng này là để đảm bảo cho thông điệp mở rộng có độ dài là bội số của 512. Giả sử độ dài của thông điệp là 1 bit. Thêm 1 bit vào cuối thông điệp, theo sau là k bit 0 ( k là số dương không am nhỏ nhất sao cho 1 + 1 + k = 448(mod 512). Sau đó them cuối 64 bit là biểu diễn nhị phân của 1. Phân tích thông điệp mở rộng : Sau khi thông điệp đã được mở rộng, thông điệp mở rộng được phân tích thành N khối 512 bit M(1), M(2),…,M(n). Trong đó 512 bit của khối dữ liệu đầu vào có thể được thể hiện bằng 16 từ 32 bit. 6 Khởi tạo giá trị băm: Giá trị băm là một chuỗi bit có kích thước của thông điệp băm ( từ SHA – 384) gồm các từ ghép lại. Trong đó H j (i) là từ j trong giá trị băm ở lần lặp i với 0≤i≤N ( số block có được sau khi chia văn bản được đệm) 0≤j≤( số từ trong giá trị băm - 1). Trước khi thực hiện giá trị băm, với mỗi thuật toán băm an toàn, giá trị băm ban đầu H(0) phải được thiết lập. Kích thước số lượng từ trong H(0) tùy thuộc vào kích thước thông điệp rút gon. SHA -1 sử dụng dãy hằng số K(0),…,K(79) có giá trị như sau: K(t) = 5A827999 (0≤t≤19) K(t) = 6ED9EBA1 (20≤t≤39) K(t) = 8F1BBCDC (40≤t≤59) K(t) = CA6 2C1D6 (60≤t≤79) II.1.1.3 Thuật toán cuả bước tính giá trị băm SHA – 1 SHA – 1 được sử dụng để băm thông điệp M có độ dài l bit thỏa mãn điều kiện 0≤l≤2 64 . Thuật toán sử dụng : - Một bảng phân bố thông điệp gồm 80 từ 32 bit - 5 biến 32 bit - Một giá trị băm gồm 5 từ 32 bit Kết quả của SHA – 1 là một thông điệp rút gọn có độ dài 160 bit. Các từ của bảng phân bố thông điệp được kí hiệu W(0), W(1),…,W(79). 5 biến được kí hiệu là a,b,c,d,e. Các từ của giá trị băm kí hiệu H 0 (i) , H 1 (i) , H 2 (i) , H 3 (i) , H 4 (i) . H(0) giữa giá trị băm ban đầu được thay thế bằng các giá trị băm thành công. H(i) sau mỗi khối thông điệp được xử lí kết thúc bằng giá trị băm cuối cùng H(N). Tính toán thông điệp băm Định nghĩa S n (X) = (X<<n) or (X >> 32 – n) X <<n có nghĩa là loại bỏ từ trái sang phải n bit them vào kết quả n số 0 bên phải. X>>32 –n có nghĩa là loại bỏ từ phải qua trái n bit thêm vào kết quả n số 0 vào bên trái. 7 Khởi tạo H: H0 = 67452301; H1 = EFCDAB89 H2 = 98BADCEF ; H3 = 103254 76 H4 = C3D2E1F0. Chia M(i) thành 16 từ W(0), W(1),…,W(15) For t = 16 to 79 − W(t) = S l (W(t-3) XOR W(t -8) XOR W( t – 14) XOR (t -16)). − Đặt a = H0, b = H1, c = H2, d = H3, E = H4 − For t = 0 to 79 do − TEMP = S 5 (A) + f(t; B,C,D) + E + W(t) + K(t); − e = d; d = c; c = S 30 (b); b = a; a = TEMP − Đặt H0 = H0 + a, H1 = H1 + b, H2 = H2 + c, H3 = H3 + d, H4 = H4 + e Sauk hi tính toán được hết M(n), thông điệp rút gọn là chuỗi 160 bit biểu diễn của 5 từ: H0 H1 H2 H3 H4 II.1.1.4 Đánh giá thuật toán − SHA – 1 được xem như là an toàn đối với trường hợp đụng độ vì rất khó tìm đuợc 2 thông điệp khác nhau có gía trị băm giống nhau. − SHA -1 được coi là chuẩn của việc bảo vệ các kênh liên lạc trực tuyến tồn tại trong 9 năm qua. − SHA – 1 được thiết kế cho bộ xử lí 32 bit, thế hệ sắp tới cuả máy tính dùng bộ xử lí 64 bit mà SHA – 1 không hiệu quả trên bộ xử lí này. − Tháng 2 năm 2005 SHA -1 bị tấn công bởi 3 chuyên gia người Trung Quốc. Thuật toán này đã bị giải mã thông qua phương pháp tính phân bổ. II.1.1.4 Các phiên bản 8 Viện chuẩn công nghệ quôc gia NIST xuất bản sửa FIPS 180 -2 vào năm 2002, đề nghị bổ sung 3 phiên bản mới của SHA : SHA – 256, SHA – 384, SHA – 512. Các phiên bản trên được thiết kế tương thích với việc tăng độ an toàn cung cấp bởi chuẩn mã nâng cao AES. Về cấu trúc chi tiết giống SHA -1, suy ra việc phân tích cũng tương tự, nhưng mức độ an toàn cao hơn nhiều so với SHA – 1. So sánh các phiên bản SHA Các giá trị có đơn vị là bit III. Tổng quan về SHA – 512 512384256160Kích thước giá trị băm 25619212880Độ an toàn 80806480Số bước mã hóa 64643232Kích thước Word 10241024512512Kích thước khối <2 128 <2 128 <2 64 <2 64 Kích thước thông báo SHA- 512 SHA- 384 SHA- 256 SHA-1 9 Hàm nén SHA-512 − Là trái tim của thuật toán − Nén mỗi khối dữ liệu 1024-bit thành 512 bit − Bao gồm 80 bước, tại mỗi bước: Cập nhật bộ đệm 512-bit Sử dụng 64 bit Wt lấy ra từ khối dữ liệu hiện tại Một hằng số là 64 bit đầu tiên của căn bậc ba của 80 số nguyên tố đầu tiên Đảm bảo tính ngẫu nhiên 10 [...]... bí mật vào trong mã máy tính, hoặc giả mạo chữ kí điện tử Trừ phi một thuật toán mới bảo mật hơn được xây dựng đưa vào sử dụng Một phát hiện thứ ba, được đón đợi đánh giá rất cao được công bố trong hội thảo Grypto Hai nhà nghiên cứu EliBiham Rafi Chen của viện công nghệ Israel đã diễn thuyết vễ cách nhận dạng các hình thức tấn công vào chức năng bảo mật của thuật toán SHA – 0 một thuật toán. .. nhận định IV.2 Mục đích Tài liệu này mô tả thuật toán số hóa thông điệp MD5 Thuật toán nhận vào một thông điệp độ dài tùy ý tạo ra một số 128 bit, là một dạng “ vân tay” hay “ mã số thông điệp” (message digest) của đầu vào Người ta cho rằng không khả thi về mặt tính toán để tạo ra 2 thông điệp có cùng mã số thông điệp, hoặc tạo ra một thông điệp với mã số cho trước Thuật toán MD5 được dự tính áp dụng... giới” theo cách nói về nguy cơ của sự thành công trong việc phá mã – MD5 đã lùi lại một chút tốc độ cho sự bảo mật Nó kết hợp một số ý kiến đóng góp của các chuyên gia, thuật toán MD5 hiện đang đựoc đánh giá có thể được chấp nhận như một chuẩn IV.3 Thuật ngữ ngữ nghĩa Trong tài liệu này một “ word” là một lượng 32 bit một “ byte” là một lượng 8 bit Một dãy các bit có thể được xem như dãy các byte,... trong đó có MD5) Mọi chuyện bắt đầu từ năm, khi nhà khoa học máy tính người Pháp Antoine Joux phát hiện ra một lỗ hổng trong thuật tóan phổ biến MD5, thường dùng trong công nghệ chữ kí điện tử Ngay sau đó, bốn nhà nghiên cứu người Trung Quốc lại 14 phát hành công trình nghiên cứu chỉ ra cách xuyên phá thuật toán thứ 2 có tên SHA – 0 Tuy chỉ mới ở giai đoạn nghiên cứu sơ bộ song những phát hiện này có... bảo mật được cho là “ nghiêm trọng” bên trong thuật toán SHA – 1, tùy thuộc vào mức độ chi tiết của phần trình bày, có thể làm chấn động cả nghành bảo mật Từ trước tới nay, SHA – 1 vẫn được coi là chuẩn mực “vàng” về thuật toán Nó được tích hợp bên trong rất nhiều chương trình thông dụng như PGP SSL, được chứng thực bởi viện công nghệ quốc gia thuật toán chữ ký điện tử duy nhất được cơ quan Chuẩn... khoảng 2 64 bước tính, độ khó để tìm được một thông điệp với mã số cho trước là 2 18 bước tính Thuật toán MD5 đã được tìm điểm yếu một cách cẩn thận Tuy nhiên đây là một thuật toán tương đối mới việc phân tích cẩn thận về sự an toàn là cần thiết IV.6 Sự khác nhau giữ MD4 MD5 − Vòng 4 đã được thêm vào − Mỗi bước đều được thêm vào một hằng số duy nhất − Hàm G ở vòng 2 được đổi từ (XY v XZ v YZ... chèn bit 1 vào cuối thông điệp -Tiếp đó là hàng loạt bit Zero cho tới khi chiều dài của nó nhỏ hơn bội số của 512 một khoảng 64 bit - Phần còn lại sẻ được lấp đầy bởi một số nguyên 64 bit biểu diển chiều dài ban đầu của thông điệp 13 Thuật toán chính của MD5 hoạt động trên một bộ 128 bit Chia nhỏ nó ra thành 4 từ 32 bit, kí hiệu A,B,C D Các giá trị này là các hằng số cố định Sau đó thuật toán chính... 12 IV Thuật toán MD5 MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit Từng được xem là một chuẩn trên Internet, MD5 đã được sữ dụng rông rải trong các chương trình an ninh mạng, cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế cho hàm băm trước đó, MD4( cũng do ông thiết kế, trước đó nữa... “ + ” cho phép cộng các word, nghĩa là cộng theo module 2 32 X . nghÖ th«ng tin  TiÓu luËn Môn: AN TOÀN VÀ BẢO MẬT THÔNG TIN Đề tài: Nghiên cứu về các thuật toán băm dữ liệu từ đó viết đặc tả và vẽ lưu đồ thuật toán Giảng viên hướng dẫn: Nguyễn Duy Tân Sinh. Trong đó 512 bit của khối dữ liệu đầu vào có thể được thể hiện bằng 16 từ 32 bit. 6 Khởi tạo giá trị băm: Giá trị băm là một chuỗi bit có kích thước của thông điệp băm ( từ SHA – 384) gồm các từ. tử. Ngay sau đó, bốn nhà nghiên cứu người Trung Quốc lại 14 phát hành công trình nghiên cứu chỉ ra cách xuyên phá thuật toán thứ 2 có tên SHA – 0. Tuy chỉ mới ở giai đoạn nghiên cứu sơ bộ song

Ngày đăng: 10/04/2014, 15:49

Từ khóa liên quan

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

Tài liệu liên quan