1 Mã hóa Encryption: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao người khác không thể đọc hiểu được kí hiệu E Giải mã Decryption: Quá trình ngược lại của mã hóa, bi
Trang 1MÃ HÓA MD5 VÀ
NHỮNG ỨNG DỤNG
Nhóm:14
Lý Thế Anh ………k114060967 Trần Thị Kiều Chinh……….k114060972
Vũ Hoài Nam……….k114061013 Phan Thanh Trang ……… k114061058
Trang 3Mã hóa là gì ?
1
Mã hóa (Encryption): Quá trình chuyển đổi dữ liệu gốc thành dữ
liệu được mã hóa sao người khác không thể đọc hiểu được (kí hiệu E)
Giải mã (Decryption): Quá trình ngược lại của mã hóa, biến đổi dữ
liệu đã được mã hóa thành dạng gốc ban đầu (kí hiệu D);
Trang 4Mã hóa là gì
1
Một hệ thống mã hóa bao gồm các thành phần:
Thông tin trước khi mã hóa
Thông tin sau khi mã hóa
Chìa khóa
Phương pháp mã hóa/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
Mã hóa cũng là nền tảng của chữ ký điện tử, hệ thống PKI…
Trang 5Khái niệm về hàm băm MD5
2
1 Hàm băm :
Hash còn được gọi là “hàm băm” hay “bảng băm”
Hàm băm là một hàm toán học chuyển đổi một thông điệp đầu vào có độ dài bất kỳ thành một dãy bit có độ dài cố định (tuỳ thuộc vào thuật toán băm).
Hàm băm là hàm một chiều nên không thể tái tạo lại thông điệp ban đầu từ một
chuỗi băm có sẵn.
Hàm băm là hàm mã hóa 1 chiều
Trang 72 Hàm băm MD5 :
MD5 (viết tắt của tiếng Anh Message-Digest algorithm 5, giải thuật
Tiêu hóa tin 5) là một hàm băm mật mã được sử dụng phổ biến với giá trị băm dài 128-bit.
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ự.
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.
Trang 8Đặc điểm MD5
3
Việc tính MD đơn giản, có khả năng xác định được file có
kích thước nhiều Gb.
Không có khả năng tính ngược, khi tìm ra MD.
Hầu như không có khả năng hai bản tin phân biệt có cùng
giá trị hash.
Giá trị MD phụ thuộc vào bản tin tương ứng.
Một chuổi chỉ có duy nhất một hash.
Giá trị MD phụ thuộc vào tất cả các bit của bản tin tương
ứng.
Trang 10
Ứng dụng
4
1.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ảo việc truyền tập tin được nguyên vẹn
Khi chúng ta tải file về , thì file chúng ta vừa download sẽ có một chuỗi MD:
Trang 11Nếu tín hiệu này khớp với tín hiệu các nhà phát triển
ứng dụng đã “xuất bản” ở trên thì không có vấn đề.
Nếu hai tín hiệu này khác nhau, có thể có trong file
download có virut hay tập tin đó đã bị thay đổi.
Trang 12 MD5 checksum là kiểm tra 1 dạng hash của file
Trang 132.Bảo mật
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.
Trang 143 Là n n ề tảng c a ch kí s ủ ữ ố
Chữ ký số (khóa công khai) là mô
hình sử dụng các kỹ thuật mật mã
để gắn với mỗi người sử dụng một
cặp khóa công khai - bí mật
Qua đó có thể ký các văn bản điện tử
cũng như trao đổi các thông tin mật
Quá trình sử dụng chữ ký số bao
gồm 2 quá trình: tạo chữ ký và kiểm
tra chữ ký
Trang 15 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 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ó sẻ
chia hết cho 512 Bộ đệm hoạt động như sau:
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
Trang 16Thu t toán ậ
5
Trang 17Bước 1: Nhồi dữ liệu.
Trang 18Bước 2: Thêm vào độ dài.
Bước 3 : Khởi tạo bộ đệm MD (MD buffer) Bước 4 : Xử lí các khối dữ liệu 512- bit Bước 5 : Tính kết quả message digest.
Trang 21Dùng chương trình Visual Studio 2008 để thiết
kế một Form có giao diện như sau:
Trang 22Yêu cầu chương trình.
Sau khi nhập username và password Nhấn nút login chương trình sẽ hiển thị một thông điệp cho thấy password đã được mã hóa thành 2 chuỗi khác nhau tương ứng với 2 giải thuật khác nhau.
Kết quả sau khi nhập password là admin:
Trang 24Bước 2 Viết 2 hàm mã hóa theo mẫu đã thiết kế ở trên có kết quả trả về kiểu string Bước 3.Khai báo 2 field strUsername và strPassword để lưu trữ thông tin username
và password
Bước 4 Viết code cho sự kiện Click
private void btnLogin_Click(object sender, EventArgs e)
{
strUsername =txtUsername.Text.ToString();
string strPass = txtPassword.Text.ToString().Trim(); ;
string strPasswordMD5 = EncodeMD5(strPass);
string strPasswordSHA1 = EncodeSHA1(strPass);
MessageBox.Show("Bạn đang đăng nhập với User: " + strUsername +
" và \nPass đã được mã hóa MD5 là: " + strPasswordMD5 +
" và \nPass đã được mã hóa SHA1 là: " + strPasswordSHA1
, "Thông tin", MessageBoxButtons.OK, MessageBoxIcon.Information
);
}
Bước 5 Kết thúc
Trang 26 MD4 (Message-Digest thuật toán 4) là một thông điệp
tiêu hóa thuật toán (thứ tư trong loạt a)
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 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 ,SHA-224 , SHA-256 , SHA-384, và SHA-512
dụng nhất là MD5 và SHA-1 Năm 2005 , người ta đã tìm ra lỗi bảo mật của cả hai thuật toán trên.
Trang 27Thuật toán Kích thước đầu ra (output size)
Kích thước trạng thái trong
Trang 29Một số phần mềm kiểm tra MD5
9
1) HashCalc 2) The Fastest File Splitter and
Joiner
Trang 30 Thuật toán MD5 đã được dò 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 và việc phân tích cẩn thận về sự an toàn là cần thiết