29
ĐỀ TÀI: MD5-SHA BÀI BÁO CÁO MÔN BẢO MẬT MẠNG GIÁO VIÊN HƯỚNG DẪN: PHAN THỊ THANH NGA SINH VIÊN THỰC HIỆN: 0812585-PHAN THỊ LÊ 0812680-NGUYỄN THỊ TÚ UYÊN

MD5-SHA

  • Upload
    luan-le

  • View
    285

  • Download
    7

Embed Size (px)

Citation preview

Page 1: MD5-SHA

ĐỀ TÀI:MD5-SHA

BÀI BÁO CÁO MÔN BẢO MẬT MẠNG

GIÁO VIÊN HƯỚNG DẪN: PHAN THỊ THANH NGA

SINH VIÊN THỰC HIỆN:

0812585-PHAN THỊ LÊ

0812680-NGUYỄN THỊ TÚ UYÊN

Page 2: MD5-SHA

Nội dung chính Khái niệm mã hóa MD5

Khái niệmĐặc điểmỨng dụngThuật toánKhả năng bị tấn công

SHASHA1SHA2

Page 3: MD5-SHA

Mã hóa là gì?

Mã hóa là phương pháp để biến thông tin từ định dạng bình thường sang dạng thông tin không thể hiểu được nếu không có phương tiện giải mã.

Vì sao chúng ta cần phải mã hóa? Nhu cầu riêng tư, tính bảo mật Toàn vẹn của thông tin. Tính xác thực của thông tin. Tính không chối bỏ.

Mã hóa cũng là nền tảng của chữ ký điện tử, hệ thống PKI(Public Key Infastructure).

Phương pháp mã hóa bằng MD5 và SHA sử dụng hàm băm 1 chiều Hash

Page 4: MD5-SHA

MD5 là gì?

Trong mật mã học, MD5 (Message-Digest algorithm 5) là một bộ tạo Hash mật mã được sử dụng phổ biến với giá trị Hash dài 128-bit .

Là một chuẩn Internet (RFC 1321) MD5 đã được dùng trong nhiều ứng dụng bảo mật, và cũng

được dùng phổ biến để kiểm tra tính toàn vẹn của tập tin. Một bảng băm MD5 thường được diễn tả bằng một số hệ thập

lục phân 32 ký tự. Các chương trình mã hoá MD5 thường được gọi là MD5Sum.

MD5

Page 5: MD5-SHA

MD5 là gì?

MD5 được thiết kế bởi Ronald Rivest vào năm 1991 để thay thế cho hàm băm trước đó, MD4. Vào năm 1996, người ta phát hiện ra một lỗ hổng trong MD5; trong khi vẫn chưa biết nó có phải là lỗi nghiêm trọng hay không, những chuyên gia mã hóa bắt đầu đề nghị sử dụng những giải thuật khác, như  SHA-1 (khi đó cũng bị xem là không an toàn). Trong năm 2004, nhiều lỗ hổng hơn bị khám phá khiến cho việc sử dụng giải thuật này cho mục đích bảo mật đang bị đặt nghi vấn.

MD5

Page 6: MD5-SHA

Đặc điểm của MD5 Việc tính MD đơn giản, có khả năng xác định được file có kích

thước nhiềuGb. Không có khả năng tính ngược khi tìm ra MD. Là 1 dạng hash của file. Khi dùng MD5 Checksum trên 1 file sẽ

sinh ra 1 chuỗi MD5 duy nhất ứng với từng file, 2 file trùng nhau về nội dung sẽ có chung 1 chuỗi MD5, khác nhau dù chỉ 1 bit sẽ có 2 chuỗi MD5 khác nhau.

Ví dụ :

love is blue 03d4ad6e7fee3f54eb46b5ccde58249c

love is Blue 82b76f8eeb4a91aa640f9a23016c7b1c

MD5

Page 7: MD5-SHA

Ứng dụng: Bảo toàn thông tin:

MD5 được dùng rộng rãi trong các phần mềm trên toàn thế giới để đảm bảoviệc truyền tập tin được nguyên vẹn. Các nhà phát triển ứng dụng thường dùngMD5 trong việc cho phép download file. 

Ví dụ, máy chủ tập tin thường cung cấp một checksum MD5 được tính toán trước cho tập tin, để người dùng có thể so sánh với checksum của tập tin đã tải về, để kiểm tra xem file down về có trùng với file gốc hay không.

MD5

Page 8: MD5-SHA

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 một đ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ột khoảng thời gian vô tận (đủ để làm nản lòng các hacker).

MD5Ứng dụng: Bảo mật:

Quá trình chứng thực của một User với Webserver

Page 9: MD5-SHA

Về cơ bản MD5 không thể giải mã lại được. Nhưng tại sao trên mạng có rất nhiều trang web giải mã MD5 ?!? Thật ra thì những trang web này họ cũng  không thể giải mã được MD5 mà là họ tra những password đã được lưu trữ từ trước.

 Ví dụ: Giả sử có Password là: 12345. Password này sau khi mã hóa sẽ thành chuỗi MD5: 827ccb0eea8a706c4c34a16891f84e => Sau đó họ lưu vào CSDL. Khi bạn muốn giải mã chuổi 827ccb0eea8a706c4c34a16891f84e thì họ sẽ tra vào CSDL và cho ra password là : 12345

Một số trang web có thể làm việc này là:+ http://www.md5.net/ + http://md5.gromweb.com 

MD5

Page 10: MD5-SHA

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ích thước cố định 128 bit. 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ó sẽ chia hết cho 512. Bộ đệm hoạt động như sau:

MD5Thuật toán:

Trước tiên nó sẽ 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.

Page 11: MD5-SHA

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 bít, 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 sẽ luân phiên hoạt động trên các khối 512 bit. Quá trình xử lý một khối thông điệp gồm 4 bước tương tự nhau, gọi là vòng. Mỗi vòng lại gồm 16 quá trình tương tự nhau dựa trên hàm một chiều F, phép cộng module và phép xoay trái…

MD5Thuật toán:

Hình mô tả quá trình trong 1 vòng.

Một thao tác MD5—MD5 bao gồm 64 tác vụ thế này, nhóm trong 4 vòng 16 tác vụ. F là 1 hàm phi tuyết, một hàm được dùng trong mỗi vòng. M

i chỉ ra một khối tin nhập vào 32 bit và Ki chỉ một hằng số 32 bit, khác nhau cho mỗi tác vụ. <<<<s chỉ sự xoay bit về trái s đơn vị, s thay đổi tùy theo từng tác vụ.  chỉ cộng thêm với modulo 232.

Page 12: MD5-SHA

MD5 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") = 9e107d9d372bb6826bd81d3542a419d6

Thậm chỉ chỉ cần một thay đổi nhỏ cũng làm thay đổi hoàn toà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("") = d41d8cd98f00b204e9800998ecf8427e

Page 13: MD5-SHA

MD5 Người ta cho rằng độ khó để tìm được 2 thông điệp có cùng

mã số là khoảng 2^64 bước tính, và độ khó để tìm được một thông điệp với mã số cho trước là 2^128 bướctính.

Với bất kỳ giá trị x, không thể tính được y ≠ x sao cho

H(y) = H(x). Không thể tính được một cặp (x, y) sao cho H(x) = H(y).

Do đó MD5 được sử dụng rộng rãi trong các ứng dụng, web, bảo mật, và chứng thực…

Tuy nhiên ở một mức độ nào đó thì md 5 vẫn có thể crack được

Page 14: MD5-SHA

Khả năng bị tấn công

Vì MD5 chỉ dò qua dữ liệu một lần, nếu hai tiền tố với cùng bảng băm được xây nên, thì cùng một hậu tố có thể cùng được thêm vào để khiến cho đụng độ dễ xảy ra. Tức là hai dữ liệu vào (input) X và Y hoàn toàn khác nhau nhưng có thể ra (output) được một md5 hash giống nhau . Tuy nhiên xác suất để xảy ra điều này là khá nhỏ.

Vì những kỹ thuật tìm đụng độ hiện nay cho phép các trạng thái băm trước đó được xác định một cách ngẫu nhiên, có thể tìm thấy xung đột đối với bất kỳ tiền tố mong muốn nào; có nghĩa là, đối bất kỳ một chuỗi các ký tự X cho trước, hai tập tin đụng độ có thể được xác định mà đều bắt đầu với X.

MD5

Page 15: MD5-SHA

CÁC GIẢI PHÁP THAY THẾ TƯƠNG TỰ

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ăm1996, người ta đã tìm thấy lỗ hổng của nó. Mặc dù lúc đó còn chưa rõ ràng lắm nhưngcác chuyên gia mã hóa đã nghĩ đến việc phải đưa ra một thuật giải khác, như là SHA-1,SHA-2,....

Page 16: MD5-SHA

SHA là gì? SHA (Secure Hash Algorithm hay thuật giải băm an toàn) là

năm thuật giải được chấp nhận bởi FIPS (Federal Information Processing Standards) dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao.

Năm thuật giải SHA là SHA-1 (trả lại kết quả dài 160 bit), SHA-224 (trả lại kết quả dài 224 bit), SHA-256 (trả lại kết quả dài 256 bit), SHA-384 (trả lại kết quả dài 384 bit), và SHA-512 (trả lại kết quả dài 512 bit).

SHA

Page 17: MD5-SHA

SHA là gì?

Thuật giải SHA là thuật giải băm mật được phát triển bởi cục an ninh quốc gia Mĩ (National Security Agency hay NSA) và được xuất bản thành chuẩn của chính phủ Mĩ bởi viện công nghệ và chuẩn quốc gia Mĩ (National Institute of Standards and Technology hay NIST). Bốn thuật giải sau thường được gọi chung là SHA-2.

SHA

Page 18: MD5-SHA

Đặc điểm của SHA

Cho một giá trị băm nhất định được tạo nên bởi một trong những thuật giải SHA:

1) Việc tìm lại được đoạn dữ liệu gốc là không khả thi.

2) Việc tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi một trong những thuật giải SHA là không khả thi.

Bất cứ thay đổi nào trên đoạn dữ liệu gốc, dù nhỏ, cũng sẽ tạo nên một giá trị băm hoàn toàn khác với xác suất rất cao."

SHA

Page 19: MD5-SHA

Ứng dụng:

SHA dùng để chuyển một đoạn dữ liệu nhất định thành một đoạn dữ liệu có chiều dài không đổi với xác suất khác biệt cao và được sử dụng với mục đích bảo toàn thông tin.

SHA đượ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 một đ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.

SHA

Page 20: MD5-SHA

SHA-1

Trong mật mã, SHA-1 là một hàm băm mật mã được thiết kế bởi NSA và được công bố bởi NIST là U.S.Federal Information Processing Standard .  

Ba thuật toán SHA được cấu trúc khác nhau và được phân biệt như SHA-0 , SHA-1 , và SHA-2 . SHA-1 rất giống với SHA-0, nhưng sửa chữa một số lỗi trong đặc tả kỹ thuật băm SHA ban đầu. 

SHA-1 được sử dụng rộng rãi trong nhiều ứng dụng và giao thức an ninh khác nhau, bao gồm TLS và SSL, PGP, SSH, S/MIME, và IPSec. SHA-1 được coi là thuật giải thay thế MD5.

SHA

Page 21: MD5-SHA

SHA - 1

Thuật tóan SHA-1 tạo ra chuỗi mã băm có chiều dài cố định 160 bit từ chuỗi bit dữ liệu đầu vào x có chiều dài tùy ý. Ngoài những đặc điểm cơ bản về cấu trúc, so với MD5, SHA-1 có đặc điểm : giải thuật SHA-1 tính toán kết quả băm dài 160 bit đối với thông điệp có độ dài nhỏ hơn 2^64 bit.

SHA

Page 22: MD5-SHA

SHA - 1

Hiện nay, SHA-1 không còn được coi là an toàn bởi đầu năm 2005, ba nhà mật mã học người Trung Quốc đã phát triển thành công một thuật giải dùng để tìm được hai đoạn dữ liệu nhất định có cùng kết quả băm tạo ra bởi SHA-1. Mặc dù chưa có ai làm được điều tương tự với SHA-2, nhưng vì về thuật giải, SHA-2 không khác biệt mấy so với SHA-1 nên nhiều nhà khoa học đã bắt đầu phát triển một thuật giải khác tốt hơn SHA.

Một tiêu chuẩn mới băm, SHA-3, hiện đang được phát triển trong tương lai.

SHA

Page 23: MD5-SHA

Lỗ hổng của SHA - 1

SHA-1 sinh ra 1 giá trị băm 160 bít. Điều đó có nghĩa mỗi thông điệp được băm thành 1 số 160 bít. Nhưng vì số có giá trị băm có thể có là rất lớn nên xác suất tìm được đúng giá trị băm là rất nhỏ( chính xác là 280 khả năng). Nếu ta thực hiện băm 280 văn bản ngẫu nhiên sẽ tìm được văn bản có cùng giá trị với văn bản gốc, đó là phương pháp Brute force.

Các chuyên gia Trung Quốc đã tìm ra đụng độ trong SHA-1 chỉ với 269 phép toán, nhanh hơn khoảng 2000 lần so với Brute force

SHA

Page 24: MD5-SHA

SHA - 2 SHA-2 bao gồm bốn giải thuật SHA-224, SHA-256, SHA-

384 và SHA-512. Ba thuật giải SHA-256, SHA-384 và SHA-512 được công bố lần đầu năm 2001 trong bản phác thảo FIPS PUB 180-2.

Năm 2004, FIPS PUB 180-2 được bổ sung thêm một biến thể - SHA-224

Về giải thuật, các biến thể của SHA-2 không khác nhau. Mặc dù chúng sử dụng giá trị biến và hằng số cũng như độ dài từ, v.v. khác nhau.

Mặc dù Gilbert và Handschuh (2003) đã nghiên cứu và không tìm ra điểm yếu của những biến thể này, tuy nhiên chúng vẫn chưa được kiểm chứng kĩ như SHA-1.

SHA

Page 25: MD5-SHA

Thuật toán:

SHA

Tương tự thuật toán MD5 nhưng thuật toán SHA chia nhỏ nó ra thành 5 từ 32 bít, ký hiệu A, B, C, D, E.

Sau đó thuật toán chính sẽ luân phiên hoạt động trên các khối 512 bit. Quá trình xử lý một khối thông điệp gồm 4 vòng con. Mỗi vòng lại gồm 20 quá trình tương tự nhau.

Page 26: MD5-SHA

SHA

SHA-1 SHA-224 SHA-256 SHA-384 SHA-512

Message digest size

160 bit 224 bit 256 bit 384 bit 512 bit

Message size

<264 <264

<264 <2128 <2128

Block size

512 512 512 1024 1024

Colision <269 chưa chưa chưa chưa

Page 27: MD5-SHA

SHA-1 và MD5SHA-1 MD5

Được phát triển bởi NSA và được yêu cầu để sử dụng với thuật toán ký số.

Được phát triển bởi Ronald Rivest vào năm 1991(MD2 năm 1989, MD4 năm 1990).

Có thể thực hiện với input có cỡ nhỏ hơn 264 bits.

Có thể thực hiện với input có cỡ nhỏ hơn 264 bits.

Tạo ra giá trị băm có cỡ 160 bits.

Tạo ra giá trị băm có cỡ 128 bits.

Cỡ của khối là 512 bits. Cỡ của khối là 512 bits.

Vòng lặp chính có 4 vòng với 20 toán tử.

Vòng lặp chính có 4 vòng với 16 toán tử.

Xử lý toán tử không tuyến tính trên 3 trong 5 biến a,b,c,d,e.

Xử lý toán tử không tuyến tính trên 3 trong 4 biến a,b,c,d.

Page 28: MD5-SHA

SHA-1 và MD5

SHA mạnh hơn MD5:

yêu cầu 280 phép toán để tìm ra đụng độ trong khi MD5 là 264 phép toán

SHA-1 thực hiện 80 bước biến đổi và trả về 160 bits hash. MD5 tính toán 64 bước biến đổi và trả về 128 bits hash.

MD5 thực hiện nhanh hơn SHA.

Page 29: MD5-SHA

Cảm ơn Cô và các bạn đã chú ý theo dõi