Tải bản đầy đủ (.docx) (21 trang)

Tiểu luận môn mạng máy tính và bảo mật Mã hóa MD5 và những ứng dụng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (534.06 KB, 21 trang )

Mạng máy tính và bảo mật
ĐỀ TÀI
Các vấn đề cần giải quyết
…………………………………………………….
Mã hóa
Khái niệm về hàm băm MD5
Đặc điểm MD5
Ứng dụng
Thuật toán
Những lỗ hổng và yếu điểm
Một số thuật toán mã hóa khác
Một số phần mềm kiểm tra MD5
Tổng kết
Lý Thế Anh: k114060967
Trần Thị Kiều Chinh: k114060972
Vũ Hoài Nam: k114061013
Phan Thanh Trang: k114061058
Nhóm 14 Page 1
Mã hóa MD5 và những ứng
dụng
Mạng máy tính và bảo mật
I- MÃ HÓA LÀ GÌ
 Mã hóa
 
 !"#$%&'"%(%)* +,"(
-.,/!!0 1#0/%
234*5 "#6 !078
91 9:0+07!9;
 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);
 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…
II- KHÁI NIệM Về HÀM BĂM MD5
 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).@7"7 1
 A$B BB.)7+"'$.&0B) ,
 " C0
 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D.E7 F6GHI  C0&J
Nhóm 14 Page 2
Mạng máy tính và bảo mật
/#:0%7.K/0L M7KH !/!3
&NO
 Hàm băm là hàm mã hóa 1 chiều
 Cấu trúc của một hàm băm thường có dạng
 C3O"'P&"# F/QP 1
E80C !"' " C00R80K +
Nhóm 14 Page 3
Mạng máy tính và bảo mật
S"# F/$!T/)0R".0CE0K

6OP&/#:0%0K60R"'O"'
" 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U0VWBB$XYS<>=<)D@Z  1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ự.
 D@Z 1#/#"IXX&B.&'<[[< !7#"'\
D@?2'<[[]-RFD@Z^/&_
"#%RL7/907L"` C0
8+.a9%0/bQc<$/ J"+5B/
)'=dd?80RF"+//#&.a%
07 3"% "+ T&H
III- ĐặC ĐIểM MD5
• 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_0LO"'&.K1E\+
.!nên 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.
Nhóm 14 Page 4
Mạng máy tính và bảo mật
Ví dụ về mã MD5:
MD5("iloveyou")
=f25a2fc72690b780b2a14e140ef6a9e0
MD5("cộng hòa xã hội chủ nghĩa việt nam")
= 7b8e76fac176d53c53cb24843e31e759
Ngay cả chuỗi rỗng vẫn có kết quả: MD5(“”)
= d41d8cd98f00b204e9800998ecf8427e

IV- ỨNG DụNG
< Bảo toàn thông tin
 D@Z 16C8L#\ !đảm bảo việc
truyền tập tin được nguyên vẹnS!-6D@Z
&PefBQ.gh50H"%i30D@OfB
ejA%fB&8(fBA&*e.g0R
D@4
 k#0307/\&\30! h50H"%iIL
(/&H 8
 k#0307/0!fBe&07 
"+7 F
Nhóm 14 Page 5
Mạng máy tính và bảo mật

 MD5 checksum là kiểm tra 1 dạng hash của filej6D@ZSB/.0L<fB
.g.<0RD@Z07H&\*fB=fB60&80.g
0<0RD@Z/06l<".g=0RD@Z/0Khi down
file thường có kèm chuỗi MD5 (nhất là các file dung lượng lớn) để cho người dùng
kiểm tra xem file down về có trùng với file gốc hay ko, nếu có lỗi trong quá trình
down thì chuỗi MD5 của file được down về sẽ khác với chuỗi MD5 gốc được cung
cấpS!.aD@Zb0B !,&/!
= Bảo mật
• D 3O&7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. Sm
&%/!T%H/%-&$ O !
%n/B)
Nhóm 14 Page 6
Mạng máy tính và bảo mật
o07(EOeB".B&B
> 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 và 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. Khóa công khai thường được phân phối thông qua chứng thực
khóa công khai. 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ý.
S09/p.KP5 +0qK"% %3&NO90
1078  q-J"% %3/!OOE# /p
V- Thuật toán
4rr.f.B07B0B0r7rZ
4rreeeZBr
Nhóm 14 Page 7
Mạng máy tính và bảo mật
D@Z"# F 80"H/(/K/3\K +<=s
".  &.t 1`/KZ<=".  1 &" 
!80O.t#Z<=u , .04
 \L.tv"<&0K 
 # ,"wB\/80OG".KOZ<=
/%]?"
 xCn,.t 1H C7"I.K07L]?""!0!80" C0O
 
E:0"\.04
Bước 1: nhồi dữ liệu
 kqL"..90 l ≡ 448 mod 512 7l
 n * 512 + 448 (n,l nguyên)
 U0Eq907%/90" C0 0K23
90 ??s 1qLZ<=". ! 1 []d".
 bK1"qLy/%< #Z<=
 S" 1qq<"h<i&"dB.0
Nhóm 14 Page 8
Mạng máy tính và bảo mật

Bước 2: thêm vào độ dài
 zO/K90" C0 1"!0{\,+M]?"& 1L
&0K0R+M/#:0%O"\<
 k#0 O/K90" C0|=]?l]?".H 1.am+
1L&"yK mod 264
 j#:0% 1*="\ C0/K90 ".KOZ<=jK9
0 1"!0{4
 uy7U/KZ<="}d}<;}U<
 uy7k*$e)>="DdD<Dk<27N = L x 16 $>=5<]~Z<=)
Bước 3: khởi tạo bộ đệm MD (MD buffer)
 D" <=s" 1609+"'0&/#:0%u 
1"!0{"y?>="&\+/I,I,BB$"7B
.KGH*yI +lHH).04
• c~]•?Z=>d<
• u~€YS@cus[
• S~[suc@SY€
• @~<d>=Z?•]
 S+7 &\*>=".04
• c~d<=>?Z]•
• u~s[cuS@€Y
• S~Y€@Suc[s
• @~•]Z?>=<d
Bước 4: xử lí các khối dữ liệu 512- bit
Nhóm 14 Page 9
Mạng máy tính và bảo mật
• MO%0hàm nén $B f0)q?h&ni5apS
&n7H0AK0.a03/0qY•Q
&W
 Y$‚}w)~‚ƒ}„…‚ƒw
 •$‚}w)~‚ƒw„}ƒ…w

 Q$‚}w)~‚5}5w
 W$‚}w)~}5$‚„…w)
• D%]?Ca 13B4†‡~=>=5".$.$))W 13B

• j#:0%O?&n 1$B0=>=&\ C0&S2: !,S2:ˆ<
Nhóm 14 Page 10
Mạng máy tính và bảo mật
Nhóm 14 Page 11
Mạng máy tính và bảo mật
S+"%
†<‡~•]?•s
†=‡~Bs•"•Z]
†>‡~=?=d•d"
†?‡~<"BBB
†Z‡~fZ•dff
†]‡~?•s•]=
†•‡~s>d?]<>
†s‡~f?][Zd<
†[‡~][sd[ss
†<d‡~s"??f•f
†<<‡~ffffZ""<
†<=‡~s[Z•"B
†<>‡~]"[d<<==
†<?‡~f[s•<[>
†<Z‡~]•[?>sB
†<]‡~?["?ds=<
†<•‡~f]<B=Z]=
†<s‡~d?d">?d
†<[‡~=]ZBZZ<
†=d‡~B["]•

†=<‡~]=f<dZ
†==‡~=??<?Z>
†=>‡~s<B]s<
†=?‡~B•>f"s
†=Z‡~=<B<B]
†=]‡~>>•d•]
†=•‡~f?Zds•
†=s‡~?ZZ<?B
†=[‡~[B>B[dZ
†>d‡~fBf>fs
†><‡~]•]fd=[
†>=‡~s=?s
†>>‡~fff>[?=
†>?‡~s••<f]s<
†>Z‡~][]<==
†>]‡~fBZ>sd
†>•‡~?"BB??
†>s‡~?"Bf[
†>[‡~f]""?"]d
†?d‡~"B"f"•d
†?<‡~=s["•B]
†?=‡~B<=•f
†?>‡~?Bf>dsZ
†??‡~?ss<dZ
†?Z‡~[?d>[
†?]‡~B]"[[BZ
†?•‡~<f=•fs
†?s‡~?Z]]Z
†?[‡~f?=[==??
†Zd‡~?>=ff[•

†Z<‡~"[?=>•
†Z=‡~f[>d>[
†Z>‡~]ZZ"Z[>
†Z?‡~sfd[=
†ZZ‡~ffBff?•
†Z]‡~sZs?Z<
†Z•‡~]fs•B?f
†Zs‡~fB=B]Bd
†Z[‡~>d<?><?
†]d‡~?Bds<<<
†]<‡~f•Z>•Bs=
†]=‡~">f=>Z
†]>‡~=•=""
†]?‡~B"s]>[<
Vòng 1 (Round 1):jp0†"/.‡"\EOP~"ˆ$$ˆ
Y$")ˆ‚†/‡ˆ†‡)‰‰‰.)o0(E<]"\.04
†cuS@d•<‡†@cuS<<==‡†S@cu=<•>‡†uS@c>==?‡
†cuS@?•Z‡†@cuSZ<=]‡†S@cu]<••‡†uS@c•==s‡
†cuS@s•[‡†@cuS[<=<d‡†S@cu<d<•<<‡†uS@c<<==<=‡
†cuS@<=•<>‡†@cuS<><=<?‡†S@cu<?<•<Z‡†uS@c<Z==<]‡
•%34&3"!0=†@cuS<<==‡ &\4
@~cˆ$$@ˆY$cuS)ˆ‚†<‡ˆ†=‡)‰‰‰<=)k5P42n<6Y
2\+*<|<]&/*<|<Z
Vòng 2 (Round 2):E/p0†"/.‡O"!04~"ˆ$$ˆ
•$")ˆ‚†/‡ˆ†‡)‰‰‰.)o0(E<]"\4
†cuS@<Z<•‡†@cuS][<s‡†S@cu<<<?<[‡†uS@cd=d=d‡
†cuS@ZZ=<‡†@cuS<d[==‡†S@cu<Z<?=>‡†uS@c?=d=?‡
†cuS@[Z=Z‡†@cuS<?[=]‡†S@cu><?=•‡†uS@cs=d=s‡
†cuS@<>Z=[‡†@cuS=[>d‡†S@cu•<?><‡†uS@c<==d>=‡
k5P42n=6•&\*<•|>=&/~<ˆZ/<]

Vòng 3 (Round 3):
E/p0†"/.‡O"!04~"ˆ$$ˆQ$")ˆ‚†/‡ˆ
†‡)‰‰‰.)
o0(E<]"\4
†cuS@Z?>>‡†@cuSs<<>?‡†S@cu<<]>Z‡†uS@c<?=>>]‡
Nhóm 14 Page 12
Mạng máy tính và bảo mật
†cuS@<?>•‡†@cuS?<<>s‡†S@cu•<]>[‡†uS@c<d=>?d‡
†cuS@<>??<‡†@cuSd<<?=‡†S@cu><]?>‡†uS@c]=>??‡
†cuS@[??Z‡†@cuS<=<<?]‡†S@cuZ<]?•‡†uS@c==>?s‡
k5P42n>6Q&\*>>|?s&/~Zˆ>/<]
Vòng (Round 4):
E/p0†"/.‡O"!04
~"ˆ$$ˆW$")ˆ‚†/‡ˆ†‡)‰‰‰.)
o0(E<]"\4
†cuS@d]?[‡†@cuS•<dZd‡†S@cu<?<ZZ<‡†uS@cZ=<Z=‡
†cuS@<=]Z>‡†@cuS><dZ?‡†S@cu<d<ZZZ‡†uS@c<=<Z]‡
†cuS@s]Z•‡†@cuS<Z<dZs‡†S@cu]<ZZ[‡†uS@c<>=<]d‡
†cuS@"?]]<‡†@cuS<<<d]=‡†S@cu=<Z]>‡†uS@c[=<]?‡
k5P42n?6W&\*?[|]?&/~•/<]
rŠb0 P.0$km&R+O
\/&&nT)Šr
c~cˆcc
u~uˆuu
S~SˆSS
@~@ˆ@@
€rŠfŠr
Bước 5 : Xuất kết quả
 3/#:0%B BB.b0/E5"\? 0
1*?cuS@"` C0*"7BHOc&/#A&\"7B

O@"yPK.04DB B@B.~c‹‹u‹‹S‹‹@$‹‹P
K)
 b0/5a#U/KZ<=" C0OC5aU+"'<=s".
VI- Cách sử dụng các giải thuật mã hóa MD5 trong C#
z!.a%0D@ZTbQcSŒ",!.aB.B0.
b7.BbB07S77^
a. Cách sử dụng
Viết hàm mã hóa:
Mã hóa bằng giải thuật MD5
private string EncodeMD5(string pass)
{
Nhóm 14 Page 13
Mạng máy tính và bảo mật
MD5CryptoServiceProvider md5 = new MD5CryptoServiceProvider();
byte[] bs = System.Text.Encoding.UTF8.GetBytes(pass);
bs = md5.ComputeHash(bs);
System.Text.StringBuilder s = new System.Text.StringBuilder();
foreach (byte b in bs)
{
s.Append(b.ToString("x1").ToLower());
}
pass = s.ToString();
return pass;
}
z!.a%0D@ZTbQcB.B0.
b7.BbB07S77^SA%.a K1bQc<S7bB&Bx&B
TD@ZS7bB&Bx&BQ K17P",!"'$Q.)%
/!0"7B:0S0BQ.j#:0%%&8.g%/!0u7B  1
20K6OA07!/!090b !%&8
b. Ứng dụng

SA#/#BG !=%07
@6(2.0b0=dds !#/#Y.04
Q(_04

Nhóm 14 Page 14
Mạng máy tính và bảo mật

Yêu cầu chương trình.
b0/0.BB& ekHA(.g!+
H7 e  1=0R/0&\=%0/
0
j#:0%.0/ e4

Hướng dẫn thực hiện:
b0/ #/#5HY• !f
B1: Bổ sung namespace còn thiếu.
0.b7.B^
0.b7.BSB.•BB^
Nhóm 14 Page 15
Mạng máy tính và bảo mật
0.b7.BSBDB^
0.b7.B@^
0.b7.B@e^
0.b7.BU:^
0.b7.BB5^
0.b7.BW•^
0.b7.BŽe.Y.^
0.b7.BbB07S77^
Bướ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
);
}
Nhóm 14 Page 16
Mạng máy tính và bảo mật
Bước 5. Kết thúc
VII- NHữNG Lỗ HổNG VÀ YếU ĐIểM
 Bất cứ thuật toán mã hóa nào rồi cũng bị giải mã
2\D@Z7*'<[[]- (H7RFODT6A 
n•`07L m #&% 
0%/bQc<;
2qC M7\ 55&\0"L
80"%9/p aJRF$ 
D@Z)D07"` C0*'//73-xcB•05
RF0F"#D@Z-6
9/p a07l\I ,L0.".97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ử.*0\"% 1
5M7E& &.a‘

URF\D@Z.gPkẻ tấn công tạo ra file giả mạochỉ
trong vài giờ với một máy tính đạt chuẩn’
 2(D@Zln:090C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
90&$0)‚&}/0!$00) 1Z
.K007L5.0H !5%7 807/G
2(9/“0(  7P,"'\ 
15 +_0L!(H750  K&\"H/”8K
0K^m K"H/”0R/pE‚\  
! 15 + 80"` C0&\‚
Nhóm 14 Page 17
Mạng máy tính và bảo mật
H%9(C !,  _0&\/K
90<=s"7B 15#L\,]?"7B!7 FE"y%0(
&,
2*q.KE ,’"%C0&q’D@Z!{#E
07#&! 16 !+180"%"'D@Z0R!
 &\ C0K-6&\ 3"t/V0
VIII- MỘT SỐ THUẬT TOÁN MÃ HÓA KHÁC
Thuật toán
Kích thước đầu ra
(output size)
Kích thước
trạng thái
trong
(Internal
state size)
Kích
thước
khối

(Block
size)
Độ dài
(Length
size)
Kích
thước
word
(Word
size)
Xung đột
(Collision)
HAVAL =Z]r==?r<[=r<]dr<=s =Z] <d=? ]? >= S
MD2 <=s >s? <=s j s /%'\
MD4 <=s <=s Z<= ]? >= S
MD5 <=s <=s Z<= ]? >= S
PANAMA =Z] s•>] =Z] k >= SR
RIPEMD <=s <=s Z<= ]? >= S
RIPEMD-
128/256
<=sr=Z] <=sr=Z] Z<= ]? >= j
RIPEMD-
160/320
<]dr>=d <]dr>=d Z<= ]? >= j
Nhóm 14 Page 18
Mạng máy tính và bảo mật
SHA-0 <]d <]d Z<= ]? >= j
SHA-1 <]d <]d Z<= ]? >= SR
SHA-256/224 =Z]r==? =Z] Z<= ]? >= j
SHA-512/384 Z<=r>s? Z<= <d=? <=s ]? j

Tiger(2)-
192/160/128
<[=r<]dr<=s <[= Z<= ]? ]? j
VEST-4/8
(hash mode)
<]dr=Z] =Z]r>s? s sdr<=s < j
†<‡
VEST-16/32
(hash mode)
>=drZ<= Z<=r•]s s <]dr=Z] < j
WHIRLPOOL Z<= Z<= Z<= =Z] s j
MD4 (Message-Digest thuật toán 4) L00$
,) 1#/#"I•.XX&B.ODW&'<[[dkE
"' !.a/!3&N S80O+"'
<=s"
SHA$bB0BQ.c70%"')'0% 1
H"IYWxb6 !07! ,90H + ,9080
/ F&\5.0H/"
k'0%bQcSHA-1SHA-224SHA-256SHA-384&SHA-512
0%bQc0%"' 1!"I:0KDm$k
bB07cB77kbc)& 150H"%0VO3ODm"I&
&0V:0KDmuK0%.0- 10SHA-2
Nhóm 14 Page 19
Mạng máy tính và bảo mật
 800V&"'HD@Z&bQc<
k'=ddZ- (R"%O%0L

IX- Một số phần mềm kiểm tra MD5
Check mã MD5 của một tập tin:SA/!6`-HLq
C%C8\!/!D@ZS80C8!A",5

1 &
1) HashCalc ( /> 2) The Fastest File Splitter and Joiner ( />YYb•C8/F#&\3'`G&K,&\
0kn3'/!D@Z/0:0%
Nhóm 14 Page 20
Mạng máy tính và bảo mật
k#0/#:0%",/!/ A.&\D@Z 10H(A.g
(•SM0%- %"` C0,:0(e/!35EO0q9
0
X- Tổng kết
0.K D@Z/ % !E0H,h&M
7h7.KO &\ 67p
k-y / !( 1= 6.K/%=–]?"\
3& / ! 1 &\.K\=–<=s"\3
0D@Z  1n( !7#0V07L M70
 K\&&M3V&8.EC#
Tài liệu tham khảo :
4rrBBe.0B0&r•~2W€Ž—~<<s]?
4rreee0r=d<=rd>rB0&BZ
4rr&e/Bre/rD˜S>˜c>™˜S>˜u>
4rrBe/Bre/rD@Z
Nhóm 14 Page 21

×