Ch ng 6ươ
T NG QUAN V MÃ HÓA
Trong các ch ng 1,ươ 2, 3, 4, 5 chúng ta đã đi tìm hi u v toán trong m t mã, cng ta
đã đ c n n t n c a m t mã. Đ đi tìm hi u v m t , tr c tiên cng ta đi mượ ướ
hi u th nào m t mã, nh ng yêu c u c a h m t, nguyên t c phân lo i các h ế
m t.Hay i cách kc ch ng này cho chúng ta cách nhìn nh n ban s khai v m t mã. ươ ơ
1. Khái ni m c b n v m t mãơ
K thu t m t(cryptology) môn khoa h c nghiên c u v hai lĩnh v c: m t
(crytography) và thám mã(cryptoanalysis).
M t (cryptography) ngành khoa h c nghiên c u c ph ng pháp bi n đ i ươ ế
thông tin nh m m c đích b o v thông tin kh i s truy c p c a nh ng ng i không có ườ
th m quy n.
Thám (cryptoanalysis) lĩnh v c khoa h c chuyên nghiên c u, m ki m y u ế ế
đi m c a các h m t đ t đó đ a ra ph ng pháp t n công các h m t đó. M t mã ư ươ
thám hai lĩnh v c đ i l p nhau nh ng gán m t thi t v i nhau. Không th y ư ế
d ng m t h m t t t n u không hi u bi t sâu v mã thám. thám ch ra y u đi m ế ế ế
c a h m t. Y u đi m này th đ c s d ng đ t n công h m t y nh ng cũng ế ượ ư
th đ c s d ng đ cái ti n h m t cho t t h n. N u ng i xây d ng h m t ượ ế ơ ế ườ
không hi u bi t r ng v thám, không ki m tra đ an toàn c a h m t tr c c ế ướ
ph ng pp t n công thì h m t c a anh ta có th t ra kém an toàn tr c m t ph ngươ ướ ươ
pháp t n công o đó anh ta ch a bi t. Tuy nhiên, không ai th kh ng đ nh ư ế
nh ng ph ng pháp thám mã nào đã đ c bi t đ n. Đ c nhi m c a c n c luôn gi ươ ượ ế ế ướ
bí m t nh ng k t qu thu đ c trong nh v c mã thám: k c ph ng pháp thám mã và ế ượ ươ
k t q a c a vi c thám mã. ế
y mã hóa- Mã hóa h ng đ n vi c th c hi n d i d ng thi t b đi n t .ướ ế ướ ế
S đ m t mã là t p h p các thu t toán mãa, gi i mã, ki m tra s toàn v n và cácơ
ch c năng khác c a m t h m t.
Giao th c m t mã là t p h p các quy t c, th t c quy đ nh ch th c s d ng s đ ơ
m t trong m t h m . th th y r ng "giao th c m t mã" "s đ m t mã" ơ
không đi li n v i nhau. Có th nhi u giao th c khác m t khác nhau quy đ nh các
ch th c s d ng khác nhau c a cùng m t s đ m t mã nào đó. ơ
Khóa (key) là đ i l ng bí m t, bi n thn trong m t h m t. Khóa nh t đ nh ph i là ượ ế
m t. Khóa nh t đ nh ph i là đ i l ng bi n thiên. ượ ế
H m t (cryptosystem, h th ng m t mã)- m t h th ng đ m b o an toàn c a
m ng b o v v i vi c s d ng các công c hóa. bao g m t p h p s đ m t ơ
, giao th c m t mã và c quy t c v ch t o, phân ph i khóa. ế
Mã hóa là quá trình s d ng nh ng quy t c đ c quy đ nh trong m t h đ bi n ượ ế
đ i thông tin ban đ u (thông tin c n b o v ; b n rõ) thành b n mã.
Gi i quá trình ng c l i v ihóa, t c s d ng nh ng quy t c đ c quyượ ượ
đ nh trong h đ bi n đ i n i dung b n mã v thông tin ban đ u.
Thám cũng quá trình nh n đ c b n t b n không s tham gia ượ
c a khóa ho c là quá trình tính toán khóa m t theo b n b n rõ.
T c đ đ c đ c tr ng b i s l ng phép tính (N) c n th c hi n đ hóa ượ ư ượ
(gi i mã) m t đ n v thông tin. ơ C n hi u r ng t c đ mã ch ph thu c vào b n tn h
ch không ph thu c vào đ c tính c a thi t b tri n tri n khai (t c đ y tính, ế
y mã...).
Đ an toàn c a h mã đ c tr ng cho kh năng c a h mã ch ng l i s thám mã; nó ư
đ c đo b ng s l ng phép tính đ n gi n c n th c hi n đ thám h mã đó trong đi uượ ượ ơ
ki n s d ng thu t toán (ph ng pháp) thám ươ t t nh t. C n ph i nói thêm r ng
th xây d ng nh ng h m t v i đ an tòan b ng tuy t đ i (t c là không th thám đ c ượ
v m t thuy t). Tuy nhiên các h m t này không thu n ti n cho vi c s d ng, đòi ế
h i chi phí cao. th , trên th c t , ng i ta s d ng nh ng h m t gi i h n đ i ế ế ườ
v i đ an tòan. Do đó b t kỳ h m t nào cũng có th b thám trong th i gian nào đó.
Kh năng ch ng nhi u c a kh năng ch ng l i s phát tán l i trong b n tin
sau khi gi i mã, n u tr c đó x y ra l i v i b n mã trong quá trình b n mã đ c truy n ế ướ ượ
t ng i g i đ n ng i nh n. Có 3 lo i l i là: ườ ế ườ thay thế, thêmo và xóa bit.
Hi u ng thác tính ch t phân b nh hưng c a m t bit đ u vào trên t p bit
đ u ra. Khi thi tế kế m t h m t chúng ta r t chú tr ng đ nế tính ch t này.
H m t an toàn tuy t đ i (trên thuy tế không th thám đưc) là h m t mà trong
đó vi c ch n b t (thu th p) m t s lưng b t kỳ các b n không khi nế cho vi c
thám tr nên d dàng hơn. Ta s gi i thích đ nh nghĩa y trên ngôn ng toán xác
su t. Gi s A B đ i đ ch nhau B mu n thám h m t c a A. Đ i v i B, t i m t
th i đi m nào đó, xác su t A g i đi b n tin Xi là P(Xi). N uế B ch n b t đưc m t b n
mã Yj c a A (không bi tế ph i b n t b n tin Xi hay không) thì đ i v i B,c
su t A g i b n tin Xi P(Xi/Yj) - xác su t có đi u ki n c a b n tin Xi khi bi tế b n
Yj. H m t đưc coi là an tòan tuy t đ i n uế P(Xi/Yj)=P(Xi).
H m t an toàn th c s nh ng h m t th b thám. Tuy nhiên, đ th c hi n
vi c đó c n ph i tiêu t n m t l ng th i giancùng l n (hàng ch c ho c hàng nghìn ượ
năm ch ng h n) ho c m t l ng b nh cùng l n. ượ
H m t an toàn t m th i-Đó nh ng h m t th thám đ c khá d ng - th ượ
ch trong vòng vài gi . Tuy nhiên, trong th i gian đó, thông tin đ c hóa đã tr n ượ
l i th i, kng còn giá tr n a.
2. Các u c u c a m t h m t
Quá trình m t mã che d u d li u có th th c hi n b ng ch ng trình trên máy tính ươ
ho c y m t mã. Th c hi n trên máy thì t n m chi phí cho vi c y d ngy, th ế
nh ng u đi m năng su t cao, đ n gi n, b o m t…. Vi c th c hi n trênư ư ơ
ch ng trình thì th c t h n, và cho phép m m d o trong s d ng.ươ ế ơ
Không ph thu c vào cách th c hi n đ i v i m t h m t hi n đ i b o m t thông
tin c n đ m b o các yêu c u sau:
1. Đ an toàn c a h m t ch ng l i thám mã c n ph i th an đi u ki n: S
phá ch th c hi n b ng ch gi i bài toán véc c n khóa, ho c s phá đòi
h i nh ng tham s v t quá gi i h n cho phép c a y nh hi n đ i ho c c n ượ
t o ra thi t b tính toán đ c ti n. ế
2. Đ an toàn c a h m t c n đ c đ m b o không ph i m t v thu t ượ
toán mà là bí m t v khóa.
3. B n mã ch đ c đ c khi khóa m t. ượ
4. H m t ph i v ng ch c ngay c khi t i ph m bi t đ c s l ng đ l n ế ượ ượ
b n rõ và b n mã t ng ng. ươ
5. Khi thay đ i l ng nh thông tin khóa ho c b n thì c n ph i d n đ n s ượ ế
thay đ i b n mã.
6. C u trúc thành ph n thu t toán m t mã c n ph i không đ i
7. Kích th c b nkhông đ c v t so v i kích th c b n ; Các bit thêmướ ượ ượ ướ
o b n tin trong quá trình mã hóa c n ph i hoàn toàn và ch c ch n d u kín trong
b n mã.
8. L i xu t hi n khi a không đ c d n đ n thay đ i đánh m t thông ượ ế
tin.
9. S ph thu c gi a các khóa con đ c dùng tu n t trong quá trình hóa ượ
không đ c thi t l p d dàng và đ n gi n.ượ ế ơ
10. Đ m b o tính tuy n tính c a không gian khóa. ế
11. Th i gian mã không đ c l n. ượ
12. Chi phí khi mã c n ph i phù h p v i giá tr c a thông tin c n b o v .
3. Quy t c Kerckhoffs
Trong tác ph m "M t quân s " (xu t b n năm 1833), Kerckhoffs đ ra các yêu
c u b t bu c cho m t h m t. Sau đây là 6 yêu c u chính trong s đó:
1. N u h m t kng ph i "tuy t đ i an tòan" thì ph i là "th c s an toàn. ế
2. Không c n thi t ph i gi bí m t b n thân h m t. Vi c đ i ph ng có đ c ế ươ ượ
h m t không nh h ng đ n ho t đ ng c a h th ng. ưở ế
3. Khóa có th d dàng truy n đi, ghi nh không c n ph i ghi chép. Các đ i
c có th thay đ i khóa theo nguy n v ng c a h .
4. th áp d ng h m t cho đi n tín.
5. H m t ph i tính l u đ ng. Đ đ m b o ho t đ ng c a ch c n 1 ư
ng i là đ . ườ
6. H m t ph i đ n gi n v m t v n nh: vi c v n hành h m t không đòi ơ
h i s tuân th s l ng l n các quy t c, không y ra căng th ng cho đ u ượ
óc.
Trong 6 yêu c u trên đây, yêu c u th 2 đ c bi t đ n d i cái tên "quy t c ượ ế ế ướ
Kerckhoffs" (Kerckhoffs' principle). Nói ch khác thì quy t c Kerckhoffs là an toàn
c a m t h m t ch đ c pp ph thu c vào s m t c a khóa". ượ
4. Phân lo i h m t
S đ phân lo i h m tơ
m hash hàm m t mã(thu t toán), đ i s c a m t b n tin đ i
b t kỳ bi u di n d i d ng dãy bit, gtr c a hàm hash có kích th c không đ i. Vì có ướ ướ
đ c nh nh th , nên hash là m t l p mã hõa đ c bi t ki m tranh toàn v n c a thông ư ế
tin. Th ng thì hàm hash không có s tham gia c a khóa m t và nó ph i đ m b o đ cườ ượ
đ ph c t p ph thu c c a giá tr đ u ra c a hàm vào t ng bit c a b n tin.
M t mã đ i x ng- đây là thu t toán m t mã mà quá trình a và gi i mã ch ng
m t khóa. Th c t thì hai khóa(mã hóa, gi i mã) có th khác nhau, trong tr ng h p này ế ườ
thì m t khóa nh n đ c t ka kia b ng phép tính toán đ n gi n. ượ ơ
M t mã đ i x ng thì đ c chia ra thành hai lo i: mã dòng và mã kh i. ượ
kh i- là mã, th c hi n bi n đ i kh i d li u v i m t kích th c không đ i. ế ướ
dòng- là, th c hi n bi n đ i tu n t t ng bit ho c ký t riêng r . ế
M t b t đ i x ng- đây ph ng pháp m t dùng hai khóa: Khóa công khai ươ
ng cho quá trình mã, khóa m t dùng cho quá trình gi i mã. Khóa công khai và khóa m t
quan h v i nhau b ng bi u th c ph c t p, khóa công khai tính d dàng t khóa m t,
n tính khóa m t t khóa công khai là bài tn kvà h u nh không gi i đ c. ư ượ
Ch ký đi n t - ph ng pp ký m t b c đi n d i d ng đi n t , đ đ m b o tính ươ ướ
nguyên v n và xác th c quy n tác gi . Nh trong m t mã b t đ i x ng, ch ký đi n t ư
cũng dùng thu t toán m t mã v i hai khóa, khóa công khai tính d ng t khóa m t, còn
khóa m t thì r t khó và h u nh là không th tính đ c t khóa ng khai. Nh ng kc ư ượ ư
H m t mã
Mã không
dùng khóa
Mã dùng m t
khóa
Mã dùng hai
khóa
Hàm hash Mã đ i x ng Mã b t đ i
x ngCh đi n
t
Mã dòng Mã kh i