Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
271,5 KB
Nội dung
Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến LỜI NÓI ĐẦU Mạng Internet là xu hướng phát triển của thế giới ngày nay. Hiện nay, Internet đã trở nên rất phổ biến trên toàn thế giới. Thông qua mạng Internet mọi người có thể trao đổi thông tin với nhau một cách nhanh chóng thuận tiện. Khi một người muốn trao đổi thông tin với một người hay một tổ chức nào đó thông qua mạng máy tính thì yêu cầu quan trọng là làm sao để đảm bảo thông tin không bị sai lệch hoặc bị lộ do sự xâm nhập của kẻ thứ ba. Trước các yêu cầu cần thiết đó, một số giải thuật mã hóa đã dược xây dựng nhằm đảm bảo tính an toàn dữ liệu tại nơi lưu trữ cũng như khi dữ liệu được truyền trên mạng, như các giải thuật Huffman, giải thuật mã hóa đối xứng (DES), giải thuật mã hóa công khai RSA, . Việc tìm hiểu và xây dựng chương trình các giải thuật này cũng không nằm ngoài mục đích của đồ án môn học này. Đồ án có nhiệm vụ tìm hiểu lý thuyết về mật mã hoá thông tin. Thuật toán Huffman, đây được coi là thuật toán mã hóa cơ bản nhất, từ đó chúng ta sẽ có cách nhìn về các phương pháp mã hóa dữ liệu và các ứng dụng của nó. Nội dung bài báo cáo gồm những vấn đề sau: Mục lục Lời mở đầu Chương 1: CâymãHuffman Chương 2: Ứng dụng của thuật toán Huffman Chương 3: Cài đặt chương trình Kết Luận Tài liệu tham khảo. Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến CÂYMÃHUFFMAN 1.1. Giới thiệu thuật toán Huffman !"#$%&'"(( ) "*'+,-.'+/ %0"1+234567"89"8 %026'-.9:+2)4)';<:2- 7+" =>?7@4A7"%' B81"*-=>-C 9"84D%E%+F1"((%$G 7%%3H1E1I%J&$ 4@KLM4%4NFO+(O7"%(%%" PO+"++O7N1Q""((-'D)%5%3DJ 7"-DRSI% %(%&Q"T& =UV0W7%?W7%Q (X%OO%A1 '"((9:+23'%C@ "((Y1Q"-: % %0C'%C@1Q"+23"*"((& =Z[ O?L\]A O?L\^A-'5%%#"*-=% %0F+<%O"(( "((-)&KL^M"-= )7@5%%#_"*1`a*"*G-=>% "*[1`Cb45a"*c<d-=>/ -%.%#"7R7%"((14%4e_*< "%3f"C"*7%"(( '"((+2 3'%C@7"--=/*9gC="-%."#-%. R<=b<<&"@%, 77h% <=b<<"(( -)<=b<<'1 1.2. Mã tiền tố (prefix-free binary code) 1.2.1. Giới thiệu mã tiền tố S.'%0"?2&/7@&111Ae4i9:"; <:&-=>% j'R%0"-1kI4)'FQJJ&' Ml%0" 4%."+%m;<:R7@jn-#MM&o%j' p^41FQJJj'R2NN nnnn&R2NFN Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến nnnnn1'j'R85Ml%0"-)+% 4i"?o%j'^4A1-=>% 'h%-)+%$-q%1 %')% %0".$7r+d-#85Ml%0"1b /% %0"/%NN_.9"8%0nnnnnn 6G/% NFN._9"8%0&] 61=*.$6+,-R^4 -.')!%0"&b/-)+%?7@4A+o%%0" ."&%0"9"8%0%C" 6a3+,7@4&!%0" 9"8%0a.'4ij'+%b1=*%0 'h%-)+%-q%1"%3&#"'h%-)+%-q%&% %5%' #<:4%0-=>9:"4 'R!%0" 1)%5%<< +,+8"<s?N&NAt)%0" u"=h--.j'R2-fI"1==# 7@+8"<s7v%#)$%-.45'1) %5%u"#+w-#%%0'%C@1 '%C@ 4)j'R)*<><%0"7j' Ro%!%0"$ %C@?<6-6"ARj')!%0" 4)'81 S=b%3'h%-)+%$-q% '%C@1 `+dZ%57r'jNFPPFxN&*<!%0"6'p]/ %NFN&NPN&NxN1#"'4ij'-)+%4i"+, 84%)/%kINFNynn&NPNyn&NxNyn1%- 'R5j nnnnnnn1S.%5%'-%4%)-@%%#" h%45'1 #"'NFNyn&NPNyn&NxNya4)j'$ '%C @j'RNFN %C@Rj'RNPN1S.'5jFPPFx <5%-t+8"K%/j'n&n&n&n& #"'NFNyn&NPNyn&NxNya4)' '%C@1`h% 4)'%C@%'9:"NFPPFxNnnnn1 ] Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến 1.2.2. Biểu diễn mã tiền tố trên cây nhị phân #"):;<: .I)4)'%C@! %0"4i-to%!%0") 1j'Ro%%0"-=>I %-%j@h% f!%0"-&#"-%u"I%a37@n& -%u"I<5%a37@1 `+dZ:] 7"-:4%."+%m4)'RF&P&x+d3 j'RNFN n&RNPN n&RNxN 1 %57r)45%p)+'!%0" 8)*<></" Iz1W%#io%!%0"945%9"8%0O)97"8 =h<?9A1"@'!%0""o%4%; <:7%C"+%"o%'R45% c81 {Ví dụZzg45%pn n !%0" 8j*<zy|&4&&+&O&(}16 7"89"8%0!%0"45%=7"Z !%0" 4 + O ( 67"8?~A n n M M n n .+,9:"4%%C"+%@-;-.'!21kIZ i. Cách mã hóa thứ nhất: ! %0" 4 + O ( 'J nnn nn nn n nn n 'f8%C"+%45% Z]•n n • • P x F Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến ii. Cách mã hóa thứ hai: !%0" 4 + O ( 'JJ n n nn n 'f%%C"+%45% n n •?•n{•n{•M{•M{•n{•nA€nny&•n n 'JJec45%b)r7h%'J1"%3 +m+w-#6 w&kI+'!%0",)' nn1 iii. Cách mã hóa thứ ba: !%0" 4 + O ( 'JJJ nn n nnn nnn nn 'f4%C"+%45% Z n n ?•n{]•n{]•M{]•M{]•n{•nA€nny&]•n n 'JJJcb'J87"Z - Không có chuỗi mã ký hiệu nào là tiền tố (tức dãy con đầu) của chuỗi mã của ký hiệu khác1%'B'8% mã tiền tố1 `h%o%'%C@.9:+2:;<:7o% fh%)!%0"-=U-%j@-# 7v9-;'R! %0"=bf=7"ZCạnh đi xuống con bên trái ứng với bít 0 và cạnh đi xuống bên phải ứng với bit 11 M Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến `+dZ:;<:R'%C@JJJZ S5 I%&9g:;<:&3-o% -=>' )! %0"z1%-:7v9-;)'%C@1`h%o% 9&f ?9AR9 %C"+%"o%'R91%(?9A 67"89"8%0 a%C"+%"o%'45% Z ••∑?9A•(?9A 9 ∈ z -• 7@!%0"R45%1 S)+%3c8%_%: X?Ay∑?9A•(?9A l + O n n n n n 4 ( Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến 9 ∈ z -I%;B81:=*% :'@%="1 1.3. Giải thuật Huffman 1.3.1. Giải thuật Huffman tìm câymã hóa tối ưu Đầu vào:*<!%0"z4567"8(?9Ah%%9∈z1 Đầu ra::'@%=""((1 Các bước: %1 j‚z‚:&o%:-e)-_=bfh% )!%0"z1o%@9)'(?9A1 %%1 #" :a+jZ :'@%="ƒ=> I%74=h ?%%%A %%%1 a%:h%'@B81%@ " 1@%"h%-_„-=>:h%@„?:" D:R„A1'„ q' R"1…" I%4=h?%%A1 • Bổ đềZ%9 %!%0"67"8%0(?9A&(?AB8 z1%-pI%:'@%="Rz79 %eO 1 f%Z % ):'@%="Rz1 %57r9&$ O1%" f h8 n1 %-" <5% O&a#"$.9e"!%0"" R"'h%@b n& :""wh% n '@%="1 #"9$,fh%"&f?9A†?"A&-q%!%0"9"& *-=>:h% 1 Z X? AyX? n A‡?9A1(?9A‡?"A1(?"A{?9A1(?"A{?"A1(?9A yX? n A‡ˆ?"A‡?9A‰1ˆ(?"A‡(?9A‰†X? n A \ Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến S%C":""wh%@%="R n 1`*9=b2 ,fh%"&1Wi-q%9h%"*-=>: X?AyX? n A&Y Š :@%="1 • Định lý:%5%"*"((:'@%="1 f%Z …"I<O7@!%0"Rz1 W=hb7DZy1%57r%!%0"z 9a%5%"* :' %.%3-: :'@%="1 {W=hu"I<Z%57rz!%0"9 %!%0" 67"8B81 %z‹ *<!%0"*-=>jz4i!%0"9 4i!%0"Th%67"8(?TAy(?9A{(?A1 O4q-CpI%:'@%="79 O1j4B %e 9TeR9*-=>:' ‹Rz‹1 W:%U :*-=>j%5%"*"((Rzh%9 O1j4B%e 9TeR9 ^ 9 n Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến *-=>:'"((‹Rz‹1O%5%#u"I<‹ :'@%="1`a*Z X?AyX?‹A{(?9A{(?A≤X?‹A{(?9A{(?AyX?A ta@%="3j-7"X?AyX?A&f @%="1 1.3.2. Giải thuật thành lập câyHuffman *<:;<:j*<><%0"$4&o% %0" e1 %e&497"8B8*<><e&%57r 99"8eBbt4i97"8e41 *<:;<: e@9&% &<5% 41e997"84iq97"8 R41 *<><e4:%U eG I%?-' I%4B&e91•t< I%)-0u"%u"a3*<><-9g-#%*<_ G I%)e1 'R&47va-=>4i 8'R9@%3n 41'Re@ o1 =*28u"a3 9:+2):;<:j *<><!2"@'&"@%,-=>):;<: !2-1'R)!2 )-=U-%3:j@-# f 2&h%n-%7%G-%7<5%1Œ=DR%5%"*' Š#7f-b%5&a4)'2726 7"89"8%0?97"89"8%0 hA7v-=>'c?6h%@A -.-)+%"4a-.')2 B81 `+dZ9g*<><2h%99"8-=>453 W=hD%-6"Meh%99"8=7"Z 4 + O 1n 1n 1 1^ 1n %e97"8B8*#><%e I% L Thuật Toán Huffman GVHD: PGS.TSKH. Trần Quốc Chiến #-#8%e+O79"8B8*<><3 3#><e I%-=> %#<d#><%e97"84g8 I%&-=> n n1]^n1n 4 + O n1 O + • • n1ln n1n 4