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ã, chúng ta ể ề ậ

đã có đ c tiên chúng ta đi tìm ượ ề ả ủ c n n t n c a m t mã. Đ đi tìm hi u v m t mã, tr ể ể ề ậ ậ ướ

hi u th nào là m t mã, nh ng yêu c u c a h m t, nguyên t c và phân lo i các h ủ ệ ậ ữ ể ế ầ ắ ạ ậ ệ

m t.Hay nói cách khác 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 mã (cryptology) là môn khoa h c ọ nghiên c u v hai lĩnh v c: m t mã ứ ự ề ậ ậ ậ ỹ

(crytography) và thám mã(cryptoanalysis).

M t mã (cryptography) là ngành khoa h c nghiên c u cá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 mã (cryptoanalysis) là lĩnh v c khoa h c chuyên nghiên c u, tìm ki m y u ự ứ ế ọ

đi m c a các h m t đ t ng pháp t n công các h m t đó. M t mã và ệ ậ ể ừ ủ ể đó đ a ra ph ư ươ ệ ậ ấ ậ

mã thám là hai lĩnh v c đ i l p nhau nh ng gán bó m t thi t v i nhau. Không th xây ự ố ậ ư ậ ế ớ ể

t n u không hi u bi d ng m t h m t t ự ộ ệ ậ ố ế ể ế ể t sâu v mã thám. Mã thám ch ra y u đi m ề ế ỉ

c s d ng đ t n công h m t này nh ng cũng c a h m t. Y u đi m này có th đ ủ ệ ậ ể ượ ử ụ ệ ậ ể ấ ư ế ể

có 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 có hi u bi t r ng v mã thám, không ki m tra đ an toàn c a h m t tr c các ể ế ộ ủ ệ ậ ướ ề ể ộ

ph ng pháp 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 nào đó mà anh ta ch a bi t. Tuy nhiên, không ai có th kh ng đ nh là có ư ấ ế ể ẳ ị

nh ng ph ng pháp thám mã nào đã đ c bi t đ n. Đ c nhi m c a các n c luôn gi ữ ươ ượ ế ế ủ ệ ặ ướ ữ

bí m t nh ng k t qu thu đ c trong lĩ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ã. ế ủ ủ ệ

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ã hó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 cách th c s d ng s đ ứ ử ụ ủ ụ ơ ồ ứ ắ ậ ậ ợ ị

m t mã trong m t h m . Có th th y r ng "giao th c m t mã" và "s đ m t mã" ể ấ ằ ộ ệ ậ ơ ồ ậ ứ ậ ậ

không đi li n v i nhau. Có th có nhi u giao th c khác m t mã khác nhau quy đ nh cá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 thiên trong m t h m t. Khóa nh t đ nh ph i là ạ ượ ộ ệ ậ ấ ị ế ậ ả

ng bi n thiên. bí m t. Khóa nh t đ nh ph i là đ i l ấ ị ạ ượ ậ ả ế

ủ H m t (cryptosystem, h th ng m t mã)- là 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 mã hóa. Nó bao g m t p h p s đ m t ụ ệ ử ụ ệ ớ ậ ạ ả ồ

mã, giao th c m t mã và cá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 mã đ 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 c l c quy iả mã là quá trình ng ượ ạ ớ i v i mã hóa, t c là s d ng nh ng quy t c đ ử ụ ắ ượ ứ ữ

đ nh trong h mã đ bi n đ i n i dung b n mã v thông tin ban đ u. ị ể ể ổ ộ ệ ề ả ầ

Thám mã cũng là quá trình nh n đ b n mã mà không có s tham gia ậ ượ c b n rõ t ả ừ ả ự

c a khóa ho c là quá trình tính toán khóa m t theo b n mã và b n rõ. ủ ậ ả ả ặ

c đ c tr ng b i s l ng phép tính (N) c n th c hi n đ mã hóa T c đ mã đ ộ ố ượ ở ố ượ ư ặ ự ệ ể ầ

(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 thân h ả ộ ơ ị ố ộ ể ằ ỉ ụ ầ ả ộ ệ

t b tri n tri n khai nó (t c đ máy tính, mã ch không ph thu c vào đ c tính c a thi ộ ứ ụ ủ ặ ế ị ể ể ố ộ

má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 mã t t nh t. C n ph i nói thêm r ng có ệ ử ụ ậ ươ ố ấ ầ ả ằ

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 lý 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 ề ặ ệ ử ụ ệ ậ ế ệ ậ

, ng h i chi phí cao. Vì th , trên th c t ỏ ự ế ế ườ i ta s d ng nh ng h m t có 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 mã là 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 i v i b n mã trong quá trình b n mã đ ả ế ướ c đó x y ra l ả ỗ ớ ả ả ượ ề c truy n

i g i đ n ng ng i nh n. Có 3 lo i l i là: t ừ ườ ử ế ườ ạ ỗ ậ thay thế, thêm vào và xóa bit.

Hi uệ ngứ thác lũ – 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 lý thuy tế là 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ả mã không khi nế cho vi cệ

thám mã trở nên dễ dàng hơn. Ta sẽ gi iả thích đ nhị nghĩa này trên ngôn ngữ toán xác

su tấ . Giả sử A và B đ iố đ chị nhau và 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ế có ph iả là b nả mã từ b nả tin Xi hay không) thì đ iố v iớ B, xác

su tấ A g iử b nả tin Xi là P(Xi/Yj) - xác su tấ có đi uề ki nệ c aủ b nả tin Xi khi bi tế b nả mã

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 là nh ng h m t có th b thám. Tuy nhiên, đ th c hi n ự ự ể ự ệ ậ ệ ậ ể ị ữ

ng th i gian vô cùng l n (hàng ch c ho c hàng nghìn vi c đó c n ph i tiêu t n m t l ả ộ ượ ệ ầ ố ụ ặ ờ ớ

ng b nh vô cùng l n. năm ch ng h n) ho c m t l ạ ộ ượ ẳ ặ ộ ớ ớ

H m t an toàn t m th i-Đó là nh ng h m t có th thám đ c khá d dàng - có th ệ ậ ệ ậ ữ ể ạ ờ ượ ễ ể

ch trong vòng vài gi c mã hóa đã tr nên ỉ ờ . Tuy nhiên, trong th i gian đó, thông tin đ ờ ượ ở

i th i, không còn giá tr n a. l ỗ ị ữ ờ

2. Các yê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 máy m t mã. Th c hi n trên máy thì t n kém chi phí cho vi c xây d ng máy, th ự ự ệ ệ ặ ậ ố ế

nh ng nó có u đi m là 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 a mãn đi u ki n: S ủ ệ ậ ộ ố ạ ề ệ ầ ả ỏ ự

phá mã ch th c hi n b ng cách gi i bài toán véc c n khóa, ho c s phá mà đòi ỉ ự ệ ằ ả ặ ự ạ

t quá gi h i nh ng tham s v ỏ ố ượ ữ ớ ạ ặ ầ i h n cho phép c a máy tính hi n đ i ho c c n ủ ệ ạ

t b tính toán đ c ti n. t o ra thi ạ ế ị ắ ề

2. Đ an toàn c a h m t c n đ ủ ệ ậ ầ ộ ượ ậ c đ m b o không ph i là bí m t v thu t ả ậ ề ả ả

toán mà là bí m t v khóa. ậ ề

3. B n mã ch đ c đ c khi có khóa m t. ỉ ọ ượ ả ậ

4. H m t ph i v ng ch c ngay c khi t c s l t đ ả ữ ệ ậ ắ ả ộ i ph m bi ạ ế ượ ố ượ ủ ớ ng đ l n

ng ng. b n rõ và b n mã t ả ả ươ ứ

5. Khi thay đ i l ổ ượ ng nh thông tin khóa ho c b n rõ 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 n mã không đ t so v i kích th c b n rõ; Các bit thêm ướ ả c v ượ ượ ớ ướ ả

và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 mã hóa không đ c d n đ n thay đ i và đá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 mã 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 mã 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 không ph i "tuy t đ i an tòan" thì ph i là "th c s an toàn.

ế ệ ậ ự ự ệ ố ả ả

2. Không c n thi bí m t b n thân h m t. Vi c đ i ph ng có đ ầ ế t ph i gi ả ữ ệ ố ệ ậ ậ ả ươ ượ c

ng đ n ho t đ ng c a h th ng. h m t không nh h ệ ậ ả ưở ủ ệ ố ạ ộ ế

ố 3. Khóa có th d dàng truy n đi, ghi nh mà không c n ph i ghi chép. Các đ i ể ễ ề ả ầ ớ

tác có th thay đ i khóa theo nguy n v ng c a h . ủ ọ ệ ọ ể ổ

4. Có th áp d ng h m t cho đi n tín. ệ ậ ụ ể ệ

5. H m t ph i có tính l u đ ng. Đ đ m b o ho t đ ng c a nó ch c n 1 ể ả ạ ộ ệ ậ ỉ ầ ư ủ ả ả ộ

ng ườ i là đ . ủ

6. H m t ph i đ n gi n v m t v n hà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 gâ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 cách khác thì quy t c Kerckhoffs là "Đ an toàn ắ ộ

c phép ph thu c vào s bí m t c a khóa". c a m t h m t ch đ ộ ệ ậ ủ ỉ ượ ậ ủ ụ ự ộ

4. Phân lo i h m t ạ ệ ậ

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 ngứ

Ch ký đi n tử

Mã dòng

Mã kh iố

S đ phân lo i h m t ạ ệ ậ ơ ồ

Hàm hash – là hàm m t mã(thu t toán), mà đ i s c a nó là m t b n tin có đ dài ố ố ủ ộ ả ậ ậ ộ

b t kỳ bi u di n d ể ấ ễ ướ ạ i d ng dãy bit, giá tr c a hàm hash có kích th ị ủ ướ c không đ i. Vì có ổ

t ki m tra tính toàn v n c a thông đ c tính nh th , nên hash là m t l p mã hõa đ c bi ặ ư ế ộ ớ ặ ệ ẹ ủ ể

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 mã hóa và gi ố ứ ậ ậ ậ ả i mã ch dù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 khóa 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. ạ ố

Mã 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. ố ữ ệ ớ ự ệ ế ố ộ ổ ướ ổ

Mã dòng- là mã, th c hi n bi n đ i tu n t t ng bit ho c ký t ầ ự ừ ự ệ ế ặ ổ ự riêng r . ẻ

M t mã b t đ i x ng- đây là ph ng pháp m t mã dùng hai khóa: Khóa công khai ấ ố ứ ậ ươ ậ

dù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

có 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,

còn tính khóa m t t khóa công khai là bài toán khó và h u nh không gi c. ậ ừ ư ầ i đ ả ượ

Ch ký đi n t - ph ng pháp 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 dàng t ễ ậ ậ ớ ừ khóa m t, còn ậ

khóa công khai. Nh ng khác khóa m t thì r t khó và h u nh là không th tính đ ầ ư ể ấ ậ c t ượ ừ ư

v i m t mã b t đ i x ng là quá trình ký b c đi n dùng khóa m t, còn quá trình ki m tra ớ ấ ố ứ ứ ệ ể ậ ậ

b u đi n dùng khóa công khai. Và khóa m t ngoài ch c a b c đi n thì không ai bi ậ ứ ủ ủ ứ ệ ệ ế t

đ c, nh tính ch t này mà ch ng t ch i b c đi n. ượ ấ ờ ố ừ ố ứ ệ