1. Trang chủ
  2. » Công Nghệ Thông Tin

Giải thuật MD5Message Digest

14 393 1

Đ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

Nội dung

Giải thuật MD5-Message Digest LỜI NÓI ĐẦU Trước bạn tạo chương trình bẻ khóa nhằm vào số serial chương trình (còn gọi keygen), việc biết code ngôn ngữ lập trình đó, bạn nên học qua thuật toán mã hóa Vì việc học cho tốt ngôn ngữ lập trình chưa bạn tạo keygen Luyện đọc code cho tốt việc nên làm, chưa bạn nắm nghĩa đoạn code Vì phần mềm sau họ dung cách mã hóa làm phức tạp trình bẻ khóa Khi ta không nắm vững số thuật toán mã hóa, dù bạn có thiệt giỏi, bạn nhiều thời gian để bẻ khóa Học thuật toán học nhiều điều Nó giống việc học bảng cửu chương Chúng ta phải học thuộc loại thuật toán mã hóa, quen với nó, thấy làm việc, thân thiết với để gặp nó, hay “hậu duệ” gần giống bỡ ngỡ Mỗi người có dấu vân tay riêng, không giống Chính tạo hóa tạo chúng, từ ý tưởng đó, người nghĩ việc: không tự tạo “dấu vân tay” cho để phân biệt chúng với Ví dụ tên người chẳng hạn (tên chuỗi kí tự gọi String) Do lĩnh vực công nghệ thông tin người ta bắt đầu nghiên cứu cách để tạo “dấu vân tay” cho chuỗi String Một cách thuật toán MD5 mà nói đây.“dấu vân tay” thuật toán MD5 tạo từ String gọi Message Digest (gọi tắt MD) hay gọi “MD5 hashes” (gọi tắt hashes) Chúng em xin chân thành cảm ơn hướng dẫn bảo tận tình thầy … giúp chúng em hoàn thành báo cáo Giải thuật MD5-Message Digest Giới thiệu  Giải thuật có đầu vào thông điệp(dạng chữ kí) có độ dài tùy ý đó, qua trình xử lí phân tích cho kết đầu dạng để nhận biết (tương tự dấu điểm chỉ) dài 128 bit thông điệp tóm lược  Trong mật mã học, MD5 (viết tắt tiếng Anh Message - Digest algorithm 5, giải thuật Tiêu hóa tin 5) Bộ tạo Hash mật mã sử dụng phổ biến với giá trị Hash dài 128-bit Là chuẩn Internet (RFC 1321), MD5 dùng nhiều ứng dụng bảo mật, dùng phổ biến để kiểm tra tính toàn vẹn tập tin Một bảng băm MD5 thường diễn tả số hệ thập lục phân 32 ký tự  MD5 thiết kế Ronald Rivest vào năm 1991 để thay cho hàm băm trước đó, MD4 Vào năm 1996, người ta phát lỗ hổng MD5; chưa biết có phải lỗi nghiêm trọng hay không, chuyên gia mã hóa bắt đầu đề nghị sử dụng giải thuật khác, SHA-1(khi bị xem không an toàn) Trong năm 2004, nhiều lỗ hổng bị khám phá khiến cho việc sử dụng giải thuật cho mục đích bảo mật bị đặt nghi vấn  Giải thuật MD5 ứng dụng chữ kí số, nơi mà file lớn hầu hết phải đảm bảo an toàn liệu phương tiện khóa bí mật công khai,ví dụ hệ mã RSA  Giải thuật MD5 thiết kế để chạy hiệu hệ thống 32bit Thêm vào giải thuật MD5 thể ngắn gọn  Được phát triển từ giải thuật chữ kí số MD4, MD5 có bước nhỏ gọn MD4 khó thay đổi trình thiết kế.Được đánh giá sử dụng nhanh chóng MD4.Đảm bảo tốc độ tính bảo mật.Được công nhận giải thuật đạt chuẩn  Dựa tảng công nghệ OSI ,đối tượng MD5 định nghĩa MD5 OBJECT IDENTIFIER:: iso(1) member-body(2) US(840) Giải thuật MD5-Message Digest rsadsi(113549)digestAlgorithm(2) 5}các tham số MD5 cần phải có kiểu NULL  MD5 có ứng dụng quan trọng: - MD5 sử dụng rộng rãi giới phần mềm để đảm bảo tệp tin tải ko bị hỏng Người sử dụng so sánh thông số kiểm tra phần mềm MD5 công bố với thông số kiểm tra phần mềm tải MD5 Hệ điều hành Unix sử dụng MD5 để kiểm tra gói mà phân phối, hệ điều hành Windows sử dụng phần mềm hãng thứ ba - MD5 dùng để mã hóa mật Mục đích việc mã hóa biến đổi chuỗi mật thành đoạn mã khác, cho từ đoạn mã trở lại mật Có nghĩa việc giải mã phải khoảng thời gian vô tận Lịch sử MD5  Message Digest loạt giải thuật đồng hóa thông tin thiết kế Giáo sư Ronald Rivest trường MIT(Rivest, 1994) Khi công việc phân tích giải thuật trước MD5-MD4 không an toàn, ông thiết kế MD5 vào năm 1991 để thay an toàn (Điểm yếu MD4 sau Hans Dobbertin tìm thấy)  Vào năm 1993, Den Boer Bosselaers tìm ra, giới hạn, dạng “xung đột ảo” hàm nén MD5; là, với hai vecto khởi tạo I J khác bit, dẫn đến: MD5compress(I,X) = MD5compress(J,X)  Trong năm 1996, Dobbertin thông báo có xung đột hàm nén MD5(Dobbertin, 1996) Dù công vào toàn hàm băm MD5, đủ gần để chuyên gia mã hóa đề nghị sử dụng kỹ thuật khác để thay thế, WHIRLPOOL, SHA-1 hay RIPEMD-160 Khả bị công  Vì MD5 dò qua liệu lần, hai tiền tố với bảng băm xây nên, hậu tố thêm vào để khiến cho đụng Giải thuật MD5-Message Digest độ dế xảy Tức hai liệu vào(input) X Y hoàn toàn khác (output) MD5 hash giống Tuy nhiên xác suất để xảy điều nhỏ  Vì kỹ thuật tìm đụng độ cho phép trạng thái băm trước xác định cách ngẫu nhiên, tìm thấy xung đột tiền tố mong muốn nào; có nghĩa là, chuỗi ký tự X cho trước, hai tập tin đụng độ xác định mà bắt đầu với X  Tất cần để tạo hai tập tin đụng độ tập tin mẫu, với khối liệu 128 byte xếp giới hạn 64 byte, thay đổi tự giải thuật tìm va chạm Ứng dụng  Các đồng hóa MD5 dùng rộng rãi phần mềm toàn giới để đảm bảo việc truyền tập tin nguyên vẹn Ví dụ, máy chủ tập tin thường cung cấp checksum MD5 tính toán trước cho tập tin, để người dùng so sánh với checksum tập tin tải Những hệ điều hành dựa tảng Unix kèm theo tính MD5 sum gói phân phối họ, người dùng Windows sử dụng ứng dụng hãng thứ ba  Tuy nhiên, dễ dàng tạo xung đột MD5, người tạo tập tin để tạo tập tin thứ hai checksum, kỹ thuật chống lại vài dạng giả mạo nguy hiểm Ngoài ra, số trường hợp checksum không tin tưởng được( ví dụ, lấy từ lệnh tập tin tải về), trường hợp MD5 có chức kiểm tra lỗi: nhận lỗi tải chưa xong, dễ xảy tải tập tin lớn  MD5 dùng rộng rãi để lưu trữ mật Để giảm bớt sụ dễ thương tổn đề cập trên, ta thêm salt vào mật trước băm chúng Một vài thực áp dụng vào hàm băm lần xem làm mạnh thêm khóa Giải thuật MD5-Message Digest Giải thuật Hình 1: Một thao tác MD5  MD5 bao gồm 64 tác vụ này, nhóm có vòng 16 tác vụ F hàm phi tuyết, hàm dùng vòng Mi khối tin nhập vào 32 bit, Ki số 32 bit, khác cho tác vụ  MD5 chuyển đoạn thông tin chiều dài thay đổi thành kết chiều dài không đổi 128 bit Mẩu tin đầu vào chia thành đoạn 512 bit, mẩu tin sau độn cho chiều dài chia chẵn cho 512 Công việc độn vào sau: bit đơn,1, gắn vào cuối mẩu tin Tiếp theo dãy số zero cho chiều dài mẩu tin lên tới 64 Giải thuật MD5-Message Digest bit so với bội số 512 Những bit lại lấp đầy số nguyên 64 bit đại diện cho chiều dài mẩu tin gốc  Giải thuật MD5 hoạt động trạng thái 128 bit, chia thành từ 32 bit, với ký hiệu A, B, C D Chúng khởi tạo với số cố định Giải thuật sau xử lý khối tin 512 bit, khối xác định trạng thái Quá trình xử lý khối tin bao gồm bốn giai đoạn giống nhau, gọi vòng gồm có 16 tác vụ giống dựa hàm phi tuyến F, cộng modun, dịch trái Hình mô tả tác vụ vòng Có khả cho hàm F, dùng khác cho vòng: F(X,Y,Z) = (X ˄ Y) ˅ (‫ﬧ‬X ˄ Z) G(X,Y,Z) = (X ˄ Z) ˅ (Y ˄ ‫ﬧ‬Z) H(X,Y,Z) = X I(X,Y,Z) = Y Y Z (X ˅ ‫ﬧ‬Z) Mô tả giải thuật MD5  Chúng ta giả sử có thông điệp (chữ kí) có độ dài b bit cho đầu vào.Giả sử tìm thấy thông điệp qua xử lí,ở b 1số nguyên kiểu Interger.b nhận giá trị 0,không thiết số nguyên lần (bội 8) nên ta chọn tùy ý  Chúng ta hình dung chữ kí (thông điệp ) biểu thị sau: m_0m_1… m_{b-1} Sau bước kí hóa thông điệp 6.1 Bước 1: Thêm bit đệm  Thông điệp “đệm” để độ dài đồng dạng tới 448,theo modulo 512.Theo đó,thông điệp mở rộng để tránh không 64 bit,mà biểu thị 512 bit dài.Việc đệm thực độ dài thông điệp phù hợp tới 448 theo modulo 512 Giải thuật MD5-Message Digest  Việc đệm thực sau: Từng bit “1” nối vào thông điệp sau “0” nối vào cho độ dài bên thông điệp đệm phù hợp tới 448 theo modulo512.Trong tất cả, bit đa số 512 bit nối vào bị treo 6.2 Bước 2: Nối độ dài  Biểu diễn 64 bit b (độ dài thông điệp trước thêm mẩu đệm) nối vào kết bước trước.Trong b>2^64,chỉ 64 bit thấp b sử dụng.(Những mẩu nối vào hai từ 32 bit nối vào từ thứ tự thấp trước tiên thỏa thuận với qui định trước)  Tại thời điểm này, kết thông điệp (sau nối mẩu với b) có độ dài xác 512 bit.Tương đương,thông điệp có độ dài chínhxác 16 từ 32 bit 6.3 Bước 3: Khởi tạo đệm MD  Một đệm từ A,B,C,D sử dụng để tính toán thông điệp tóm lược.Ở từ A,B,C,D đăng kí 32 bit Những đăng kí khởi tạo với giá trị tronghệ 16, byte thấp trước tiên word A: 01 23 45 67 word B:89 ab cd ef word C:fe dc ba 98 word D:76 54 32 10 6.4 Bước 4: Xử lí thông điệp khối 16 từ  Trước hết định nghĩa hàm phụ mà hàm nhập vào từ 32 bit đưa đầu từ 32 bit F(X,Y,Z) = XY v not(X)ZG(X,Y,Z) = XZ v Ynot(Z)H(X,Y,Z) = X xor Y xor ZI(X,Y,Z) = Y xor (X v not(Z))  Trong mẩu xác định hoạt động F có điều kiện: If X then Y else Z  Hàm F cho phép sử dụng “+” thay cho “v” từ XY not(X)Z ,không có vị trí bit Nó ý đến điều bit X,Y Z độc lập ngang hàng, bit F(X,Y,Z) độc lập ngang hàng Giải thuật MD5-Message Digest  Các hàm G,H,I tương tự hàm F Trong chúng hành độngv song song phân theo bit để đưa đầu từ bit X,Y vàZ Trong trạng thái bit X,Y,Z độc lập ngang hàng bit G(X,Y,Z), H(X,Y,Z), I(X,Y,Z) độc lập ngang hàng  Bước sử dụng bảng 64 yếu tố T[1…64] xây dựng từ hàm sin.Yếu tố T[i] bảng biểu thị phần nguyên của4294967296*abs(sin(i)),với i số radians //Xử lí khối 16 từ for i =0 to n/16-1 dofor j = to 15 doSet X[j] to M[i*16+j].End// /* Save as AA, B as BB, C as CC, and D as DD */ AA = ABB = BCC = CDD = D A  Vòng 1( Round ): Ký hiệu [abcd k s t] bước thực phép toán a = b + ((a + F(b,c,d) + X[k] + T[t][...]... (5xi +1) mod 16 else if 32 ≤ i ≤ 47 f := b xor c xor d 11 Giải thuật MD5-Message Digest g := (3xi +5) mad 16 else if 48 ≤ i ≤ 63 f := c xor (b or (not d)) g := (7xi) mod 16 temp:= d d :=c c :=b b :=b + leftrotate ((a + f + k[i] + w[g]) , r[i]) a :=temp  Thêm bảng băm của đoạn vào kết quả: h0 := h0 + a h1 := h1 + b h2 := h2 + c h3 := h3 + d var int digest := h0 append h2 append h3  Định nghĩa hàm dịch... không, chương trình dịch sẽ tự động tối ưu hóa đoạn mã ở trên) (0 ≤ i ≤ 15) : f := d xor (b and (c xor d)) (16 ≤ i ≤ 31 :f := c xor (d and (b xor c)) 12 Giải thuật MD5-Message Digest 8 Các bảng băm MD5  Bảng băm MD5 128 bit (16 byte) (còn được gọi là Message Digests) được biểu diễn bằng chuỗi 32 số thập lục phân Sau đây cho thấy đầu vào ASCII 43 byte và bảng băm MD5 tương ứng: MD5 ( “The quick brown fox.. .Giải thuật MD5-Message Digest append “0” bits until message length in bits ≡ 448 (mod 512) append bit (bit, not byte) length of unpadded message as 64 bit littleendian integer to message  Xử lý mẩu tin trong đoạn... bước bây giờ có 1 hằng số cộng duy nhất + Hàm G trong vòng 2 đã được thay đổi từ (XY v XZ v YZ)sang (XZ v Ynot(Z)) để làm G ít đối xứng hơn + Mỗi bước bây giờ thêm kết quả của bước kề trước 13 Giải thuật MD5-Message Digest + Các từ nhập vào theo thứ tự nào đó được truy nhập trong cácvòng 2 và 3 đựợc thay đổi để làm cho những mẫu này ít ảnh hưởng lẫn nhau 14 ... Ví dụ, thay d thành e: MD5(“The quick brown fox jumps over the lazy eog”) = ffd93f16876049265fbaef4da268dd0e  Bảng băm của một chuỗi rỗng là: MD5 (“”) = d41d8cd98f00b204e9800998ecf8427e 9 Tóm lược Giải thuật thông điệp tóm lược thực hiện đơn giản và cung cấp 1 đặc điểm nhận dạng hoặc thông điệp tóm lược của 1thông điệp có độ dài tùy ý.Nó dự đoán được những khó khăn khi tiếp xúc với 2 thông điệp có

Ngày đăng: 26/05/2016, 20:11

TỪ KHÓA LIÊN QUAN

w