1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

Đ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

Thông tin cơ bản

Định dạng
Số trang 22
Dung lượng 380,5 KB

Nội dung

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

Trang 1

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 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 viên thực hiện : Trần Thị Thu

Hng yªn 01/2010 I.Các hàm Hash ( hay còn gọi là hàm băm)

I.1 Các yêu cầu

Trang 2

Nén mẩu tin bất kỳ về kích thước cố định và giả thiết hàm hash là công khai

và 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ụngnhiề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

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ínhtoán nhanh, hiệu quả phụ thuộc chặt vào mẩu tin M và không tính tóanngược lại

 Cho trước h không thể tìm được ( rất khó ) x sao choH(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ấtkhó 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 hashvới mẩu tin đã cho

 Và 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 đỡ vachạm yếu

Trang 3

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ẩutin dưới dạng bit sau đó chia chúng thành các khối bit có kích thước bằng kíchthướ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 Hashtrê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ùnghà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áchchọ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

ta gọi đây là nghịch lý ngày sinh nhật

Đ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:

Trang 4

Kẻ thám mã tạo ra 2m/2 biến thể của mẩu tin đúng mà tất cả đều có bản chấtngữ 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 2m/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 H0 = 0 và bộ đệm không cho khối cuối

Tính Hi = EMi [Hi – 1]

Và sử dụng khối cuối cùng như giá trị hàm hashGiố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 2m/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ể: Hashchống va chạm mạnh có giá 2m/2, có nghĩa là với m là độ dài mã hash thì 2m/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 2m/2 phương án là không khả thi Có đề xuất Hash 128 bit cho MD5phầ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:

Trang 5

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 CVi = f [CVi – 1,Mi ] ; H(M) = CVN

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ùngmột hàm nén nào đó và chỉ có thể sử dụng mã khối

Cấu trúc thuật toán Hash

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 & NSAvào năm 1993, sau đó được nâng cấp vào năm 1995 theo chuẩn US và chuẩn là

Trang 6

FIPS 180 – 11995 và 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 264 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)

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ântí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

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 đó Hj(i) là từ j trong giá trị băm ở lần lặp i với

Trang 7

0≤i≤N ( số block có được sau khi chia văn bản được đệm) và 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 và số lượng từ trong H(0) tùythuộ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≤264 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ủabả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 H0(i), H1(i), H2(i), H3(i), H4(i) H(0) giữa giá trịbăm ban đầu và được thay thế bằng các giá trị băm thành công H(i) sau mỗi khốithông điệp được xử lí và 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 Sn(X) = (X<<n) or (X >> 32 – n) X <<n có nghĩa là loại bỏ từ tráisang phải n bit và 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 và thêm vào kết quả n số 0 vào bên trái

Khởi tạo H:

H0 = 67452301; H1 = EFCDAB89

H2 = 98BADCEF ; H3 = 103254 76

Trang 8

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ựctuyế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áytí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ườiTrung Quốc Thuật toán này đã bị giải mã thông qua phương pháp tính phânbổ

II.1.1.4 Các phiên bản

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

Trang 9

bởi chuẩn mã nâng cao AES Về cấu trúc và chi tiết giống SHA -1, suy ra việc phântí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

512 384

256 160

Kích thước giá trị băm

256 192

128 80

Độ an toàn

80 80

64 80

Số bước mã hóa

64 64

32 32

Kích thước Word

1024 1024

512 512

384

256 SHA-1

Trang 10

SHA-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ạiMộ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

Trang 11

Network security 2009

Trang 12

SHA-512 Round Function

Trang 13

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ụngrông rải trong các chương trình an ninh mạng, và cũng thường được dùng để kiểmtra 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ămtrước đó, MD4( cũng do ông thiết kế, trước đó nữa là MD2)

MD5 có hai ứng dụng quan trọng:

MD5 được sử dụng rộng rãi trong thế giới phần mềm để đảm bảo rằng tập tintải về không bị hỏng Người sử dụng có thể so sánh giữa thông số kiểm tra phầnmềm bằng MD5 được công bố với thông số kiểm tra phần mềm tải về bằng MD5

Hệ điều hành Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối, trong khi hệđiều hành Windows sử dụng phần mềm của hãng thứ ba

MD5 được dùng để mã hóa mật khẩu Mục đích của viễc mã hóa này là biếnđổi một chuỗi mật khẩu thành 1 đoạn mã khác, sao cho từ đoạn mã đó không thểnào lần trở lại mật khẩu Có nghĩa là việc giải mã là không thể hoặc phải mất mộtkhoảng thời gian vô tận( đủ để làm nản lòng các hacker)

IV.1 Thuật giải

MD5 biến đổi một thông điệp có chiều dài bất kì thành một khối có kíchthước cố định 128 bits Thông điệp đưa vào sẽ được cắt thành các khối 512 bits(Thông điệp được đưa vào bộ đệm để chiều dài của nó chia hết cho 512 )

Bộ đệm hoạt động như sau:

-Trước tiên nó được 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ềudài ban đầu của thông điệp

Trang 14

Thuật toán chính của MD5 hoạt động trên một bộ 128 bit Chia nhỏ nó rathành 4 từ 32 bit, kí hiệu A,B,C và D Các giá trị này là các hằng số cố định.

Sau đó thuật toán chính sẽ luân phiên hoạt động trên các khối thông điệp baogồm 4 bước tương tự nhau, gọi là vòng( “round”) Mỗi vòng lại gồm 16 quá trìnhtương tự nhau được dựa trên hàm một chiều F, phép cộng modul và phép xoay trái.Hình bên dưới mô tả một quá trình trong một vòng Có 4 hàm một chiều F cóthể sử dụng Mỗi vòng sử dụng một hàm khác nhau

Hàm băm MD5 ( còn được gọi là hàm tóm tắt thông điệp – message degests)

sẽ trả về một chuỗi số thập lục phân gồm 32 số liên tiếp Dưới đây là các ví dụ mô

tả các kết quả thu được sau khi băm

MD5(“ The quick brown fox jumps over the lazy dog”) =9e107d9d372bbd81d3542a419d6 Thậm chí một thay đổi nhỏ cũng làm thay đổitoàn kết quả trả về: MD5 The quick brown fox jumps over the lazy cog”)

=1055d3e698d289f2af8663725127bd4b

Ngay cả một chuỗi rỗng cũng cho ra một kết quả phức tạp: MD5(“ ”) =d41d8cd98f00b204e980099aefc8427e

Những lỗ hổng:

Bất cứ thuật toán mã hóa nào rồi cũng bị giải mã Với MD5, ngay từ năm

1996, người ta đã tìm thấy lỗ hổng của nó Mặc dù lúc đó còn chua rõ rang lắmnhưng các chuyên gia mã hóa đã nghĩ đến việc phải đưa ra một thuật giải khác, như

Trang 15

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ó thể tạođiều kiện để kẻ xấu cài những chương trình cửa sau (backdoor) 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 và đưa vào sử dụng

Một phát hiện thứ ba, được đón đợi và đánh giá rất cao được công bố tronghội thảo Grypto Hai nhà nghiên cứu EliBiham và 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ảomật của thuật toán SHA – 0 một thuật toán có sơ hở

Những lỗ hổng bảo mật được cho là “ nghiêm trọng” bên trong thuật toánSHA – 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

và SSL, được chứng thực bởi viện công nghệ quốc gia và là thuật toán chữ ký điện

tử duy nhất được cơ quan Chuẩn Chữ kí số của chính phủ Mĩ phê chuẩn

Cả ba thuật toán MD5,SHA – 0 và SHA – 1 đều được giới khoa học máy tínhcoi là “ đa chức năng” Chúng có thể nhận mọi dạng dữ liệu đầu vào, từ tin nhănemail cho đến hạt nhân(kernel) của hệ điều hành, cũng như tạo ra một dấu vân tay

số duy nhất chỉ thay đổi một kí tự bất kì bên trong file đầu vào cũng tạo ra dấu vântay hoàn toàn khác nhau Các ứng dụng bảo mật đều dựa vào tính năng “dấu vântay duy nhất” này làm nền Tuy nhiên, nếu kẻ tấn công có thể tạo ra một dấu vântay “Dolly” với một dòng dữ liệu đầu vào khác, dấu vân tay “ sinh sản vô tính” này

sẽ khiến phần mềm bị gài backdoor nhận dạng nhầm Kết quả là chúng có thể tạo rachữ kí giả để vét sạch tài khoản ngân hang của người sử dụng không may

Tất nhiên từ rất lâu, giới nghiên cứu đã hiểu rằng không có thuật toán mã hóathực tiễn nào là tuyệt đối an toàn và bảo mật Tuy vậy, họ vẫn nỗ lực thiết kế ranhững thuật toán mà thời gian cần để tạo ra một dấu vân tay “ Dolly” là vô tận, với

Trang 16

hy vọng kẻ tấn công sẽ nản lòng Thế nhưng nếu những sơ hở tương tụ như củaSHA – 0 cũng được tìm thấy trong SHA – 1, điều này đồng nghĩa với việc tốc độgiả mạo một dấu vân tay sẽ được đẩy nhanh lên…500 triệu lần, hoàn toàn trongtầm tay của một mạng máy tính tốc độ cao.

Tuy mức độ tác hại ít trầm trọng hơn song sơ hở bảo mật trong thuật toánMD5 có lẽ lại gây hậu quả ngay tức thì Sản phẩm máy chủ Aphache Web nguồn

mở đang sử dụng MD5 để kiểm duyệt những Website có mã nguồn chưa bị chỉnhsửa, từ đó sẽ an toàn khi chạy trong máy tính Tương tự sẽ là cơ sở dữ liệu Solariscủa Sun Microsystems, với khả năng mà theo hãng tự nhận là “ xác minh một fileđích thực chứ không phải phiên bản bị điều chỉnh để hạ gục hệ thống bảo mật”

Lỗ hổng với phát hiện trong MD5 sẽ cho phép kẻ tấn công tạo ra file giả mạotrong vài giờ với một máy tính đạt chuẩn “ Giờ đây, người ta đã chứng minh đượccác thuật toán này có lỗ hổng Trước khi kẻ tấn công lợi dụng khai thác được, đãđến lúc phải thôi dần việc sử dụng MD5” – nhà phân tích Hughes của viện ChuẩnCông nghệ Quốc gia 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àomột thông điệp độ dài tùy ý và 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ánMD5 được dự tính áp dụng cho những ứng dụng chữ kí điện tử, ở đó một file lớnphải được “ nén” một cách an toàn khi mã hóa với một khóa cá nhân ( primary key)dưới một hệ mã hóa công khai như RSA

Thuật toán MD5 là sự mở rộng của thuật toán MD4 MD5 chậm hơn một chút

so với MD4 nhưng an toàn hơn MD5 được thiết kế vì người ta thấy có thể MD4 đãđược chấp nhận trong sử dụng quá nhanh so với sự đánh giá nó MD4 được thiết kế

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

w