!"#$%
$ &"#'(
• )!
• )*+,-$!
• )$!
!"#$%&'(&) )*+*&
.- ! &*!%/01-23+*4.5
,-./01231'4*#1%&
67 &89"43!: 7 &9"9! 0;*!% 70!+
!<;=>5
0-$9"9+!?@)AB$C%D4E:=
9"9+!0E 'D3FD(
Typedef struct{
unsigned int ID ;
long File_Size ;// kich thuoc file anh
long Reserved ;
long OffsetBit ;// kich thuoc header
long Isize, Width, Height ;
unsigned int Planes,biCount ;
long Compression, ImageSize ;
long XpelsPerMeter,YpelsPerMeter ;
long ColorsUsed, ColorsImportant
} BitmapHeader;
G 79"9+!H%3"I23 7$89"(
fread (&bmh, sizeof(bmh), 1, picture);
=(
J560;=$9"9 ' KL5
J7*0'10;89!5
M 79"9+!4*%NO$! 2:;(
J568*3(6+!5
J561*)(.N+!5
J565*9(&(M0O !<P*0;!=0!
*> 7"43!;E95
:-./05%&)6;0<2%&=
.H=!Q ! &0"R0F*DS0=0!<E99>P
&E =0-$% 70!(
typedef struct {signed char Red, Green, Blue, Reserved ;}TRGB;
.-0!TUE:(V9"W99?9%V99%9"QE:095G =O
D+0! &O01*C(
TableSize = power2(bmh.biCount)*sizeof(TRGB);
XDEY9Z<>OZ
EY9Z<050.>[ 0"R !5.\/
;Q ! &0"R01S0 0"R ![Z
S
]Z^_5)Q/
&0"R0F09$F``OD0!(Z^_aU]bcZU095
;E90-!-+!;!=Z^_OD!Z^_;=b_
!=b_E:;! 9d!=ZE:5e,-0-!
(
TRGB * color;
.I 70!+!(
TableSize = power2(bmh.biCount)*sizeof(TRGB);
fread(color,TableSize,1,Picture);
>-9*2%&;&0?0*6!&
N$!!0 :P &f-=
OD562OE:"43! ' 7 &9"9%0!
5
.@(A6?BC&D (?&)*+*&'(&)%&
KL!NODQE:+!
N=-KC-K- !5
&EFG00*2;&0?0*6H&
.-$Pf!-`%[ =$%
-IgE-/%D &!0 :< '$*>5
I- )J7%&6K*=
M$"43gE!D9Ch(
• W9"9!D$i!j5
• W0!%!D!j
• 6"43!D< '$>%!5
L- !"#$E*M6%&
k- ! &"#P`-$!5
.--K ! &$T0; e9$5`N-K+
- !/-E#%-/!O%;:"I ;kỹ thuật tách
thông tin i-K !5
%&)=5C5*M3*N&6E*M6%&E*OK*0?0%&?0&2
*M%& 69d !b_ !Z^_ !l !9
5*P7*!1# , I Q ,R :I
G &"#N$"#-0O,7$+ !<7
Smn9M8?>5GnM?"#-0OO,7%NK-$-0O
-K ! $5XO"#%D!Z^_0OIS0O0"R !
&0OO,7$9L; e0O!FO$ ;!+d
P%N !5l %D!b_0Ob^0O0"RVW?+ !+ !o0O
I*"I ;[-0OFQ ! $5p%-0O
! &"#$N,$ 2[!--0OO,
7`/!Ee0;(
?05C0*0T&)'(&)Q5C5*M3*N&6U*E*M6%&0<2%&:LR6;
,VV,,,VV ,VV,V,V, ,,VVV,V
'2&)qZq
.@(A6?BC&D (?&)*+*&'(&)%&
W&,,=CS0<26U*E*M6%&'(&)%&:LR6;
EgE-0OI0O,7$ e-K+0O[
e-K+ !`r %K%O"#-K+ !ZsU
e0OI==-KDZs^; e0OIicb5
XDh ef =%7$E + ![*0K eN5
h3-(
tt-K !
]9<E9>u
b]vbu
M23b[-KcrbC%D0OI+0;5%
-K+ ! =!]cbbccbcb< %D!S0>b]vbu 2
EgE-290O*P(
cbbccbcb
vcccccccb<-K+b`09mS0>
b]cccccccb<b01-K+0OI>
R- E%(5C
W!b0O=-K0 !0O &h3,EgE-bm05
X- C&Y7Z&55C
W!= !cbwa<x>
KL(Y7Z&55Cx /& rC P/+-0Ocb
`x% &O9*C(
=(
x
3E200O9N(
[
\
∑∑
−
==
b
bb
n
j
m
i
I
]7
*^_
`7
*^_a,
-
x
%
3E209N"7(
[
O
\
∑∑
−
==
b
bb
m
i
n
j
I
]7
*^_
`7
*a,^_
-
x
3E200O9 Pgb(
[
0
\
∑∑
−
==
b
bZ
n
j
m
i
I
]7
*^_
`7
*D,^_a,
-
x
3E200O9 PgZ(
[
2
\
∑∑
−
=
−
=
b
b
b
b
n
j
m
i
I
]7
*^_
`7
*a,^_a,
-
XD@<B
y
⊕B
zyz
>-K(b;E:Cy-%DE:C
zyz%01c;E:Cy01%DE:Czyz5
XO"#(.KE2xUaU(
b b c b
c c b c
'2&)qsq
[\[
a[
O
a[
0
a[
2
Ảnh gốc
File dữ liệu ra các bit LSB
Thông tin cần giấu
File nhị phân chứa thông tin cần giấu
Các khối bit
Các khối đã giấu thông tin
File dữ liệu chứa các Bit LSB
Ảnh đã được giấu tin
Tách bit LSB
Tách khối
Giấu tin
Mã hoá
Giấu tin
Ghép khối
Hình 2.1 : Quá trình giấu tin
Ảnh chứa thông tin giấu
File dữ liệu các bit LSB
Các khối bit
Thông tin được giấu
File thông tin giấu ban đầu
File thông tin giấu ban đầu
Tách bit LSB
Tách khối
Lấy tin
Ghép khối
Giải mã
Hình 2.3 : Quá trình giải mã thông tin
.@(A6?BC&D (?&)*+*&'(&)%&
b c b c
b c b b
G =[=-3E200O9-N(
x
]ZJZJsJZ]{
x
%
]ZJbJbJb]_
x
]bJZJbJbJb]|
x
]bJb
JZJb]^
M3E200cb`x(x]x
Jx
%
Jx
Jx
]{J_J|J^]Z|
bW&0<2c?'W&)*+*&O;)*%*6d'(&)%&=
'2&)qUq
.@(A6?BC&D (?&)*+*&'(&)%&
)*+*&'(&)%&E1&'e&)O;%&6;
.-$"h`!E-E$%N,-(
,D*+*&Ef&)*%&=
,-gFh&)=
62= !$-$5}F0!+
-!-f%%DQf =[$ &0O*5
.-!HT-0Oc%b%0O* &$H=-Kcrb5X
%F+"#O~•+e0b , K0O
&$cb5
:- (?&)*+*&=
&7=
• 4*#1%&*627E1&'e&)
• 4*#1b&)*&0i&)*+j
7=
• 4*#1%&Ed)*+b&)*&k
• (?EM)*%**&
9?0l0m0*Y&=
Các bước tiền xử lý trước khi thực hiện thuật toán :
• .89*:$€"/KE20F-[$i0O
*%!5•-!0; e& &89*
:$5
• 679"9+! $*!5M = 70"43!%
!N "#%3$5
Quá trình thực hiện giấu tin :
• W!!0 :=OD<)ap> &-f<a>
=e-f[<)ap>t<a>5X!"#*o!
91`QNC--cb5
W&>,=OC3nOo3p#*Y%&EFG00*2;&0?0*C0FK0IHI=
0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0
'2&)q^q
Bít thay đổi từ 0 sang 1.
.@(A6?BC&D (?&)*+*&'(&)%&
1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0
1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0
1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1
0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0
1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0
1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0
1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1
0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0
1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0
1 1 1 1 1 1 0 0 0 1 0 1 1 0 1 1 0 0 0 1 0
1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 1 1 0 0 1 1
0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 1 0 0
1 1 0 0 1 1 1 0 1 1 0 0 0 0 0 0 1 1 1 0 0
ME2O-f7- $=7‚`-
!- &7:hi :` ;
;*:$5
)Qf[ &"I $0*9,d(M$e
0b%0*:$[=IO~•5pL;$0Ob%
=E!!'O$e0b•5p&/
:$0c% =E!!'O$e0Ob~5
p%Q:$b0=P&E! 2(
• G '!'O$ $0O*(.\/:$0Ob
e0b '•Tr:$0c% = '=e
0Ob~54P&E;*: e%9
0* ' &$5
• P&E&/O$+!'`: $*
L:$0b%e0Ob=~~r:
$0Oce0Ob/ •5G =[7 e0O0$
icb<r&/> &e0b!
'`:5
W!E!$0b%?=ODUaU(
b c b b
c b c c
c c b c
b b b c
P&E`0O?=eS0Ob%!'`:$0b
%%: e01-70O0$ƒ% eicbri
bc5W! e/-K00O =(
'2&)q_q
, V , ,
V V V V
V V , V
, , , V
, V , ,
V , V V
V V , V
, , , V
.@(A6?BC&D (?&)*+*&'(&)%&
p&/;hK`$0Oc%0O`*E! e %D
0O0 :"0O0 : 'f'O$ $0c5
p%Q:$0/$ h3$0O9,d` ;
;&*:$5M$ &N"43!D5
?D;E92"h!01-(W9"9! ' 7 :%!
D0! ' 7%89!DI"43!D '$
%![ &!D$5
-- !HOD+;0;OD+
"R"!'9,d(
Quá trình giải mã tin :
M &! '$,-!'[ &h39-0D
2(
• 679"9%0!+! 0;-*%N!5
• 6E:"43!%!N5
.-0D%D,-$5M '= &"43!!-
=ODODh3$ 2O- !'5.7
- '$%!9,d( ;0Ob;e0Ob•
&0b&/ &0c5.C;E# ;;- '$5
p%;- '$ &Q0O ' 9$5?D;E9
i89KE289%„0!5
Phân tích thuật toán
62-$ !h3-C$!`C
-= 0% --(
• X37OD $ƒ%OD!%&*
:$$"!`!5XO"#;=!=OD
^bZa^bZE9%=&*:$bcch5p%89KE2
*:$[bccaS]Scc0Octb%QOh'AM.@@0"R0Fb095
=$1( $ &;*:O$Scc%`
; +$%"!`!5n$<^bZa^bZ>tScc]sZ|
"^UU5XD;,!OD sZ|%=7-O
DEI&E%D<EI&E9L +D%*%&,-sZ|>\
/Zcab^b_ab_5
• MF"L`7=ODD%%;P&E-0K
e!-0O0K0; e[<>-$=0K
0;5
• 6+-*%H:0; &OD+-
$=!' &=5
• -F`=-E"# & %D!r! C-5
.-/!=-K+Q ! &0"R0FN0O5X;
= & !cb h3$-`5V$
!H%37i ! 0O%%
N-0Ocb5X37 &h39,d70O,7$
SqS12*)&*4*0*2&*
'2&)q|q
.@(A6?BC&D (?&)*+*&'(&)%&
• 6%D!%! C-*:,2N ;%37
:$% '"I40OO,7$ $T5x%/Q0D$
=70O0$ƒ e5
Cải tiến thuật toán :
XD-%37- !0d :i :`%4`
;EEO-:h5`=!;-01-7‚`
$FQ:$5G = '„ & +-%-
0Po=`!H '$i05lr= eOD
FQ:$\/:b=ODSaS:ZSabZP
&E-[ODFQ:$5
)-!;--4[O3E200+ !5
l3E200 /& rC P/+0c%b+ =5X3
70O !-K[ƒ%30O+ =Df5XD-
%3$0O%! 9d$3,!5
:D )*+*&0<28rSss=
,?*&*Y60f5%&=
aB9
…
E20<Apx>
W
†
%
‡
0
‡
0ˆ
…
‡
…
E9
…
Eˆ
…
…
20ˆ
…
Apx
…
`
†
‡
‰`0ˆ
…
%
‡
0
…
†
b
%
‡
ˆ
Š
]0]b
…
‡
†
E
‡
†
‰0]c
aB9
…
E*
†
†
‡
<k‹V>
B9
…
E
…
*
†
‡
<
‡
†
‡
E9
…
E
…
…
>k‹V
…
`
†
‡
⊕`0ˆ
…
%
‡
0
…
†
b`
…
Œ0%
‡
…
†
c`
…
]05
a?
Š
…
†
2
…
Š
E9
…
E
…
`(
0 ‰0
⊕0
b c c b
b b b c
c b c b
c c c c
aB
…
`
Š
ZE9
…
E-` *
…
%
…
Z2
†
.A%
‡
?
‡
2
†
0ˆ
…
‡
2
…
E5
†
`
†
…
E9
…
E
…
(
qp`
…
A]<
y
>?]<0
y
>.]<
y
>x]<"
y
>
ˆ
‡
A‰?].%
…
y
]
y
‰0
y
%
‡
A⊕?]x%
…
"
y
]
y
⊕0
y
a*
Š
…
†
…
E2
Š
2
†
†
ˆ
•
MŽ)<k>
‡
*
Š
…
…
†
`2
†
k5.
…
…
„
‡
`
…
k
‡
*
†
2
†
0ˆ
…
ˆ
‡
MŽ)<k>ˆ
…
‡
*
Š
*
…
0ˆ
…
bk5
'2&)qSq
.@(A6?BC&D (?&)*+*&'(&)%&
:gFf
t
&)0
t
2Z
u
(2
v
&8rS11
qM
Š
"
†
2
†
…
0ˆ
…
2
†
G
‡
*
†
2
†
†
E2
…
ˆ
…
…
<0„
‡
ˆ
…
…
Š
*
…
Š
2
…
>„
‡
‡
„ *
†
‡
Š
2
†
…
5p`
…
…
2ˆ
Š
0`
…
ˆ
…
…
*
…
‡
ˆ
‡
…
E2
…
"`•
…
†
0
Š
2
†
‡
ˆ
…
…
‡
‡
E
Š
0`
…
…
†
†
`
Š
Š
…
G5
qM
Š
"
†
E9
…
E
…
Apx
•
2
†
`
Š
Š
%
‡
2
†
…
<€‰G>„
‡
,
†
2
†
…
ˆ
Š
†
E9
…
E
Š
…
0ˆ
…
*
…
€
…
%
…
0ˆ
…
b
…
G5p%2
†
…
G
†
9*
†
„
†
†
†
ˆ
‡
2
†
…
„ *
†
‡
5
qM
Š
"
†
E9
…
EMŽ)<ˆ
…
…
†
…
0ˆ
…
b
…
2
†
†
E2> `
Š
`
Š
`
‡
`
†
‡
ˆ
‡
*
†
2
…
56`
‡
`
†
‡
‡
c•MŽ)<€‰G>•MŽ)<G>
…
ˆ
•
‡
,
†
`
…
*
…
€‰G
‡
c„
†
*
…
…
Gˆ
‡
*
†
2
…
`
Š
…
0
†
*
†
5
q*
†
2
…
%
‡
*•*
…
€
…
0ˆ
…
`
Š
Š
ˆ
Š
‡
b0ˆ
…
5G*
†
2
…
*
…
0ˆ
‡
€z
†
2
…
*
Š
0
Š
ˆ
…
02
…
0`
…
(MŽ)<€z>
†
2
…
*
Š
0
Š
ˆ
…
02
…
0`
…
(MŽ)<€z‰G>"Z]0<0ˆ
…
‡
0ˆ
…
†
2
…
>5
>Z
u
(2
v
&
&7=
q)*
†
Š
*
…
†
E2€5
q)*
†
…
0ˆ
…
2
†
G(
‡
*
†
2
†
†
E2
…
ˆ
…
…
a5
q)*
†
89*2
‡
2
…
B
7=
q)*
†
Š
•
†
2
…
*
*Z
v
*&=
6`
Š
Š
…
ˆ
…
•
Š
Š
€
‡
0*
†
Š
a5X`
†
…
*2
…
%
‡
Š
9
•
†
†
`
†
0„
‡
…
*
Š
*
†
*
…
0ˆ
…
Š
Š
€9,„
…
5
Bươ
́
c 1(.
Š
€
‡
…
*
…
Š
*•*
…
…
ˆ
…
…
‡
a5
Bươ
́
c 2(X
…
*•*
…
Š
Š
€
†
‡
0
…
Mb`
Š
`
‡
`
†
‡
2
…
(
c•MŽ)<€‰G>•MŽ)<G>
p`
…
…
ˆ
‡
`
Š
…
0
…
s `
Š
2
…
*%
‡
*
…
€
‡
`
…
*ˆ
‡
*2
…
"
•
`
†
%
‡
*
…
€*
…
€9
•
†
•
`5
Bươ
́
c 3(W
†
0ˆ
…
2
‡
2
…
%
‡
*
…
€
‡
0
†
`
†
…
0
…
`
Š
*
Š
€(
@8<MŽ)<€‰G>"Z]0>9
W
•
`€
•98<MŽ)<€‰G>]b>9
.
†
2•`*
†
0ˆ
…
<y>
Š
•
*
‡
‡
‘€’
]c%
‡
‘G’
]b
…
`
Š
…
†
Š
0ˆ
…
‘€’
‡
c599
.
†
2•`*
†
0
‡
‘G’
y
]b`
Š
…
†
Š
0ˆ
…
‘€’
y
‡
c
‡
b„
†
‡
b
‡
c5
•"8u
'2&)q{q
.@(A6?BC&D (?&)*+*&'(&)%&
X`
†
†
0ˆ
…
‡
€ `
Š
Š
2
‡
2
Š
9`„
…
(p`
…
€‰G
…
`
‡
0ˆ
…
b
<MŽ)<€‰G>]MŽ)<G>qb>ˆ
‡
†
0ˆ
…
b
†
†
`
…
€AG
…
,
…
ˆ
…
0ˆ
…
b<MŽ)<€‰G>]b>ˆ
‡
†
c0ˆ
…
5p`„
…
‡
‡
Š
Š
„0ˆ
…
Š
0
†
E
…
`
†
5
*2
t
*62
w
=
p
‡
02
…
0`
…
…
†
2
…
"`•"
‡
Š
•
`
Š
2
…
†
*
•
2
…
5x`
†
2
‡
†
…
*
…
€
Š
! ˆ
…
€5p`
…
€
Š
`
‡
`
†
c•MŽ)<€‰G>•MŽ)<G>ˆ
‡
ˆ
…
0ˆ
…
0
•
†
2
…
%
‡
*
…
0„
‡
*
…
0]MŽ)<€z‰G>"Z5
I*&(2
u
Z
u
(2
v
&
€b €Z
*
2
…
?]cbb
€zb €zZ
b b c b b b b b c b b b
b b b b b c b b b b b b
c b c c c c c b c c c c
c c b c c c c b c c c b c c c
b b c b b b b b b b b c c b b
c b b c b c c b c c b b c b c
€s €U G €zs €zU
x
y
&=b2
t
c2
v
'x
y
&E2
t
(5x
v
Ez
t
)*Z
v
*&0
t
2Z
u
(2
v
&'z&Ib
v
*
W
Š
Š
*
†
Š
€
…
ˆ
…
…
__%
‡
*
†
2
†
…
G
…
ˆ
…
…
ssˆ
‡
%9
•
5
Š
€
‡
U*
…
Š
*•*
…
9
•
…
ˆ
…
…
‡
ss
†
€b€Z€s€U5
qXˆ
‡
MŽ)<€b‰G>]MŽ)<G>`*2
…
"
•
`
†
%
‡
€b5
qXˆ
‡
MŽ)<€Z‰G>]s`*
†
0ˆ
…
…
`
Š
†
2
…
%
‡
*
…
Z59%ˆ
…
"
†
`0ˆ
…
2
‡
`
†
2
…
‡
0ˆ
…
c5p`9Ms9
•
†
*
†
0ˆ
…
…
‘€Z’y]c%
‡
‘G’y]b%
‡
*
Š
…
†
‘€Z’y
‡
b€Z`
Š
‡
€Z`ˆ
‡
%9
•
<0ˆ
…
*
Š
†
…
2
…
…
>5
qX
…
€sMŽ)<€s‰G>]s0ˆ
…
2
‡
2
…
‡
0ˆ
…
b`9M
•
`€s
†
`
…
€s%2•
†
"2
…
*
†
0ˆ
…
b5
q
†
*
…
%
…
€UMŽ)<€b‰G>]U%
‡
0ˆ
…
2
‡
2
…
‡
0ˆ
…
b`9Ms
†
*
†
0ˆ
…
Š
‘€U’y]b%
‡
‘G’y]b*
‡
`
Š
‘€U’y]c5?ˆ
…
*
Š
†
…
2
…
…
5
{x
v
3
u
6*&(2
u
=
x
y
&=&'Ff
v
0O2
y
2*)*Z
v
0?05x
v
b&)*&
'2&)qbcq
.@(A6?BC&D (?&)*+*&'(&)%&
LZ&x
v
0E?&)*?Z
u
(2
v
&
qXˆ
‡
…
G0ˆ
…
2
†
`*
•
†
…
‡
0ˆ
…
2
†
52
†
…
‡
‡
*
Š
`
‡
2
…
*
†
0ˆ
…
Š
*
…
€2
…
*
†
0ˆ
…
*%
‡
*
…
`%
…
*
†
*
…
…
ˆ
…
…
a
Š
…
ˆ
‡
†
*
Š
Š
€
‡
Š
`
Š
Š
0
Š
†
ˆ
…
‡
Š
2
†
…
5
qXˆ
‡
E9
…
E
…
Apx
†
Š
"
†
`
Š
ˆ
…
€‰G`
…
†
…
2
…
Š
MŽ)<€@‰G>
*`
Š
%
†
,
…
MŽ)<G>%
‡
"ˆ
…
2
…
Š
E9
…
E
…
Apx`
…
…
*
†
*
…
‡
*
Š
ˆ
‡
%
†
ˆ
…
*
Š
ˆ
Š
Š
Š
E2
‡
Š
…
…
†
…
G5Xˆ
‡
`
…
`
…
*
†
Š
€
‡
‡
„
…
‡
…
†
`
‡
9
Š
‡
0„
…
†
*9
•
"`•"
‡
ˆ
‡
†
%
†
ˆ
…
Š
…
G
…
‡
ˆ
…
"
‡
*"
‡
‡
†
EMŽ)<€b‰G>qc562
‡
*
†
9
•
Š
Š
2
†
…
*
…
%
…
…
5
qX
…
‡
†
EMŽ)<€b‰G>]MŽ)<G>
•
†
`
…
€
‡
‡
9ˆ
‡
%
†
ˆ
…
Š
0ˆ
…
*
Š
ˆ
‡
•
‡
%
†
ˆ
…
‡
0ˆ
…
…
Š
…
‡
b5
6`
Š
…
•
‡
†
E`2
†
…
•
E
Š
E
†
*
†
c•MŽ)<€b‰G>•
MŽ)<G>5p"
‡
`
…
„
•
ˆ
‡
%
†
ˆ
…
…
%
…
0ˆ
…
0
†
*
Š
%
•
…
%
…
0ˆ
…
Š
%
†
ˆ
…
…
…
G
…
…
†
%
‡
0ˆ
…
*0
‡
0
†
*
Š
…
9
•
‡
0ˆ
…
c
Š
%
†
ˆ
…
…
…
G5X
‡
`
…
%`
†
†
…
G`
…
‡
‡
*
†
*%`
†
`
…
…
,
†
5
qp`
…
Š
€
†
†
†
`
Š
2
…
*
…
,
…
`
‡
`
Š
„
…
„
†
,
…
`
‡
`
Š
9ˆ
‡
ˆ
Š
`
†
0ˆ
…
2
…
†
9
•
2
…
E5
qp
…
*
…
%
…
Š
9„
…
2
†
…
‡
%2•
†
†
•
`2
‡
2
‡
`
…
%`
‡
Š
„2
…
56*
†
‡
*
•
E2
‡
‡
†
Š
`
†
%
…
•
2
†
…
2
…
5Xˆ
‡
%2
†
2
…
†
Š
Š
•
*
…
5`%`
‡
%2
…
`
‡
*
…
†
*2
…
†
Š
%ˆ
‡
…
•
*
…
9
•
*
†
2
…
5
R92
t
**z
v
&Z
u
(2
v
&
…
`
Š
Š
`
…
2
†
…
‡
…
E"
†
*
…
%
…
Š
‡
0„
‡
…
2
†
0ˆ
…
*
Š
•
`
‡
`
†
‡
c•<€‰G>•<G>%2•
†
`
†
2
…
9
…
Š
Š
2
†
…
%ˆ
‡
*
…
%
…
Š
‡
•
…
E"
†
•
2
†
…
…
0nM?`*
Š
Š
`
…
2
…
†
Š
‡
*
…
†
2
…
9
•
`
‡
5
>D )*+*&9rrs
# NE ; !% - $4*,
7%! 9d<!KE2>01-"#-0OG<B%9
G9>%7"“q“.9lmGB%“m.99n9
.*3*%G7-O6/7•6n`C5
BE-E &C= "430! !$&!%
=”34OD*$ &%DOD!*P D%D
-EE-E-%EgE$ &D‘
Z
<aJb>’0O"43%Q
!=ODaH$ eN$Z0O! =5
1.Một số khái niệm dùng trong thuật toán
• Khoá bí mật(G-KE2=IODa%DOD+
!5G- &"I-0O4P%P5
• Ma trận trọng số cấp r : )7•$E`=O
D01OD+!a%!'- N3(
- • =-E:1!-K<c55Z
qb
>%DD!' N
3(Z
•a
'2&)qbbq