E N D
Giảngviên: NguyễnHiếu Minh 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 1
Các vấn đề trình bày 1. Lịchsửcủamậtmã 2. Cáckỹthuậtmậtmãcổđiển 3. An toànthông tin vàmậtmã 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 2
1. Tổng quan về mật mã Mậtmã (cryptography) Thámmã (cryptanalysis) Mậtmãhọc (cryptology) Cryptology = Cryptography + Cryptanalysis 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 3
Mật mã và Thám mã Làngành khoa họcnghiêncứuviệcứngdụngtoán họcvàobiếnđổithông tin nhằmmụcđíchbảovệ thông tin khỏisự truy cậpcủanhữngngười khôngcóthẩmquyền. Làlĩnhvực khoa họcnghiêncứuvàtìmkiếmcác yếuđiểmcủacáchệmậtđểtừđóđưa ra phương pháptấncôngcáchệmậtđó. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 4
(tiếp) Mậtmãvàmãthámlà hai lĩnhvựcđốilập nhau nhưnggắnbómậtthiếtvới nhau. Khôngthểxâydựngmộthệmậttốtnếukhônghiểu biếtsâuvềthámmã. Mộtsốkỹthuậtliên quan: Kỹ thuật ngụy trang (steganography) Kỹ thuật bóng mờ (watermaking) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 5
Lịch sử phát triển của mật mã Lịchsửcủamậtmãxuấthiệnđồngthờivớisự xuấthiệncủachữviết(khoảng 4000 năm trước). Thuậtngữ“cryptography–mậtmã”dịchtừ tiếng Hy Lạpcónghĩalà“chữviếtbímật” (kpypto“hidden”vàgrafo “towrite” or legein “to speak”). 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 6
Các giai đoạn phát triển Mậtmãhọccổđại Mậtmãhọc trung cổ Mậtmãhọctừ 1800 tớiThếchiến II Mậtmãhọc trong Thếchiến II Mậtmãhọchiệnđại 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 7
Mật mã trong thời cổ xưa Tồntại 3 phươngphápbảovệthông tin: Phươngphápthứnhất–phươngphápsức mạnhthuầntúy: bảovệtàiliệu(thông tin truyền)bởi con ngườithực(thông tin được truyềnbởicácliênlạcviênđặcbiệt, ...). 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 8
(tiếp) Phươngphápthứ hai–phươngpháp steganography: mụctiêucủaphươngpháp phápnàylà che giấusựhiệnhữucủathông tin truyền. Đểthựchiệncóthểsửdụngcáckỹthuật nhưmựcviếtbímật,chỗgiấubímật, ... 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 9
(tiếp) Phươngphápthứ ba –phươngphápcryptography (mậtmã): thựchiệnviệcbiếnđổinội dung củabản tin cầntruyềnthànhmộttậphợphỗnđộnnàođócủacác dấuhiệu(cáckýtựcủabảngchữcái). Bênnhậnsẽcókhảnăngbiếnđổibản tin nhậnđược thànhdạnggốc(bản tin khi chưabiếnđổi)nếuhọcó key(khóamã)dùngđểbiếnđổibản tin. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 10
Nhận xét Đốivớicácphươngphápmậtmã trong thờicổ xưaviệcđảmbảo an toànthông tin chủyếudựa trênviệcgiữbímậtcủathuậttoánvàchúnglàcác thuậttoánkháđơngiản. Nói chung cácphươngphápmậtmãđượcbiết trong thờicổxưa(và trong mộtthời gian dài sau đó)thườngđượcthựchiệndựatrêncácmánh khóenàođó,hơnlàdựatrêncácnguyêntắc khoa họcchặtchẽ. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 11
Mật mã trong xã hội hiện đại Trướcđâymậtmãhầunhưchỉđượcsửdụngđểđảmbảo an toànthông tin trong chiến tranh vàcáchoạtđộngngoại giao. Vàođầunhữngnăm 80, vớisựpháttriểnmạnhmẽcủa côngnghệthông tin vàsựứngdụngcáchệthốngtựđộng xửlýthông tin trong tấtcảcáclĩnhvựchoạtđộngcủaxã hội,đãdẫnđếnsựcầnthiếtphảisửdụngrộngrãihơncác phươngphápmậtmãđểbảovệthông tin. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 12
(tiếp) Trong thờicổxưacácphươngphápmậtmãchỉđược sửdụngnhằmmụcđíchgiữbímậtthông tin. Ngày nay các phương phápmậtmãđượcsửdụngrộng rãikhôngchỉđểbảovệthông tin chốnglạicác truy nhậpkhông cho phép(bảovệtínhbímật),màchúng cònđượcsửdụngđểbảovệ trong nhiềuhìnhthức côngnghệthông tin mới–thưđiệntử,tiềnđiệntử, bầucửđiệntử, .... 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 13
Các chức năng cơ bản của mật mã hiện đại Đảmbảotínhbímật(confidentiality) –giải quyếtvấnđềbảovệthông tin chốnglạisựtìm hiểunội dung thông tin từcácđốitượngkhông cóquyền truy nhậpchúng. Thuậtngữsựbímật (secrecy) hoặcsựriêngtư (privacy) cũngđồngnghĩavớiconfidentiality. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 14
(tiếp) Đảmbảotínhtoànvẹndữliệu (data integrity) – đảmbảokhảnăngpháthiệnsửađổitráiphép thông tin. Đểđảmbảotoànvẹndữliệu,cầncócácphương phápđơngiảnvà tin cậypháthiệnbấtkỳsự can thiệpkhông mong muốnvàodữliệu(các can thiệpnhưchèn,xóavà thay thế trong bản tin). 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 15
(tiếp) Đảmbảosựxácthực (authentication) –chức năngnàycóliênhệvớisựđịnh danh (identification). Vìthếnóđượcthựchiệnxácthựctrêncảthựcthể (hai đốitượng trong mộtphiênliênlạcsẽđịnh danh lẫn nhau) vàbảnthânthông tin (thông tin đượctruyềntrên kênhtruyềnsẽđượcxácthựcvềnguồngốc,nội dung, thời gian gửi, ...). Vìthếvấnđềxácthực trong mậtmãđược chia thành hai lớpchính–xácthựcthựcthể (identity authentication) vàxácthựcnguồngốcdữliệu (data origin authentication). 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 16
(tiếp) Đảmbảochốngsựtừchối (non-repudiation) – chứcnăngngănngừamộtthựcthểtừchối(phủ nhận)một cam kếthoặchànhđộngtrướcđó. Khi xuấthiện tranh chấpvìmộtthựcthểtừ chốimộthànhđộngchắcchắnđãxảy ra, một biệnphápgiảiquyếtlàcầnthiết. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 17
Nhận xét Trong sốcácchứcnăngtrên,chứcnăngđầu tiênđãđượcbiếtđếntừhàngngànnăm trước,còncácchứcnăng sau liên quan đến cácdịchvụthông tin mới. Tuy nhiên,chứcnăngbảovệbímậtthông tin vẫnluôn mang tínhthờisự. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 18
Phân loại các phương pháp mật mã 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 19
Đặc thù của mật mã Hướngđếnxâydựngcácphươngphápmậtmãđảm bảođộ tin cậyđốivớibấtkỳhànhđộngnàocủakẻphá hoại,mặcdùtạithờiđiểmxâydựngcáchệmậtkhông thểcókhảnăng xem xéthếttấtcácphươngántấn công. Cácphươngánnàycóthểxuấthiện trong tương lai trêncơsởcủacácýtưởngđạtđượctrênsựtiếnbộvề lýthuyếtvàcôngnghệ. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 20
(tiếp) Câuhỏivềviệcxácđịnhđộ tin cậycủacác phươngphápmậtmãlàrất quan trọng. Lờigiảiđáptrêncâuhỏinàyliên quan trực tiếpđếnviệcđánhgiásự hao phí lao động củamỗidạngtấncôngcụthểtrêncáchệ mật. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 21
Quy tắc Kerckhoffs Khôngcầnthiếtphảigiữbímậtbản thânhệmật. Khóacóthểdễdàngtruyềnđi, ghi nhớmàkhôngcầnphải ghi chép. Hệmậtphảiđơngiảnvềmặtvận hành. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 22
2. Một số phương pháp mật mã cổ điển 1) Phươngpháp thay thế 2) Phươngphápdịchchuyển 3) Phươngpháphoánvị 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 23
Hình 1. Mô hình hệ thống mã hóa quy ước 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 24
Hệ mật Địnhnghĩa 1.1: Hệthốngmãhóa (cryptosystem) là mộtbộnăm (P, C, K, E, D) thỏamãncácđiềukiện sau: 1. Tậpnguồn P làtậphữuhạntấtcảcácbản tin nguồn cầnmãhóacóthểcó 2. Tậpđích C làtậphữuhạntấtcảcácbản tin cóthểcó sau khi mãhóa 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 25
(tiếp) 3. Tậpkhóa K làtậphữuhạncáckhóacóthểđượcsử dụng 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 26
2.1. Phương pháp dịch chuyển Phươngphápmãhóadịchchuyểnlàmột trong những phươngpháplâuđờinhấtđượcsửdụngđểmãhóa. Thôngđiệpđượcmãhóabằngcáchdịchchuyển xoay vòngtừngkýtựđik vịtrí trong bảngchữcái. Trong trườnghợpđặcbiệtk = 3, đượcgọilàphương phápmãhóa Caesar. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 27
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 28
Nhận xét Làphươngphápmãhóađơngiản, thao tácxử lýmãhóavàgiảimãđượcthựchiện nhanh chóng. Tuy nhiên,trênthựctế,phươngphápnàycó thểdễdàngbịphávỡbằngcáchthửmọikhả năngkhóak K (không gian khóaK chỉcón phầntửđểchọnlựa). 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 29
Thí dụ Ta sẽsửdụng MDV (với modulo 26) đểmã hoámộtvănbảntiếng Anh bằngcáchthiết lậpsựtươngứnggiữacáckítựvàcácthặng dư theo modulo 26 như sau: 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 30
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 31
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 32
(tiếp) Cuốicùngbiếnđổidãysốnguyênnàythànhcáckítự thu đượcbảnmã sau: HPHTWWXPPELEXTOYTRSE Đểgiảimãbảnmãnày,trướctiên, Bob sẽbiếnđổibản mãthànhdãycácsốnguyênrồitrừđigiátrị cho 11(rút gọn theo modulo 26) vàcuốicùngbiếnđổilạidãynày thànhcáckýtự. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 33
Nhận xét Nếumộthệmậtcóthểsửdụngđược trong thựctếnó phảithỏamãnmộtsốtínhchấtnhấtđịnh: 1. Mỗihàmmãhoá eKvàmỗihàmgiảimã dKphảicó khảnăngtínhtoánđượcmộtcáchhiệuquả. 2. Đốiphươngdựatrênxâubảnmãphảikhôngcókhả năngxácđịnhkhoá K đãdùnghoặckhôngcókhả năngxácđịnhđượcxâubảnrõ x. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 34
2.2. Phương pháp thay thế 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 35
Thí dụ 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 36
(tiếp) Nhưvậy, e(a) = X, e(b) = N,. . . . Hàmgiảimãlàphéphoánvịngược. Điềunàyđượcthựchiệnbằngcáchviết hàngthứ hai lêntrướcrồisắpxếp theo thứ tựchữcái. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 37
Nhận xét Mỗikhoácủa MTT làmộtphéphoánvịcủa 26 kítự. Sốcáchoánvịnàylà 26!, lớnhơn 4 x 1026làmộtsốrấtlớn. Bởivậy,phéptìm khoávétcạnkhôngthểthựchiệnđược, thậmchíbằngmáytính. Tuy nhiên, sau nàysẽthấyrằng MTT cóthể dễdàngbịthámmãbằngcácphươngpháp khác. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 38
Mã Vigenere Trong cả hai hệ MDV và MTT (một khi khoáđã đượcchọn)mỗikýtựsẽđượcánhxạvàomộtký tự duy nhất. Vi lý do đó,cáchệmậtcònđượcgọi hệ thay thếđơnbiểu. Mộthệmậtkhôngphảilàbộchữđơn,đólàhệmã Vigenèrenổitiếng. Mậtmãnàylấytêncủa Blaise de Vigenèresốngvàothếkỷ XVI. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 39
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 40
Mô tả 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 41
Thí dụ Giảsử m = 6 vàtừkhoálà CIPHER. Từ khoánàytươngứngvớidãysố K = (2,8,15,7,4,17). Giảsửbảnrõlàxâu: thiscryptosystemisnotsecure 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 42
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 43
(tiếp) Bởivậy,dãykýtựtươngứngcủaxâubản mãsẽlà: V P X Z G I A X I V W P U B T T M J P W I Z I T W Z T Đểgiảimã ta cóthểdùngcùngtừkhoá nhưng thay cho cộng, ta trừ cho nó theo modulo 26. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 44
Nhận xét Ta thấyrằngcáctừkhoácóthểvớisốđộdài m trong mậtmãVigenèrelà 26m, bởivậy,thậmchí vớicácgiátrị m khánhỏ,phươngpháptìmkiếm vétcạncũngyêucầuthời gian khálớn. Vídụ,nếu m = 5 thi không gian khoácũngcókích thướclớnhơn 1,1 107. Lượngkhoánàyđãđủlớn đểngănngừaviệc tim khoábằng tay. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 45
Mật mã Hill Mậtmãnày do Lester S.Hill đưa ra năm 1929. Giảsử m làmộtsốnguyêndương,đặtP = C = (Z26)m. Ýtưởng: lấy m tổhợptuyếntínhcủa m kýtự trong mộtphầntửcủabảnrõđểtạo ra m kýtự ởmộtphầntửcủabảnmã. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 46
Thí dụ Nếu m = 2 ta cóthểviếtmộtphầntửcủabảnrõlà x = (x1, x2) vàmộtphầntửcủabảnmãlà y = (y1, y2). Ởđây, y1cũngnhư y2đềulàmộttổhợptuyến tínhcủa x1 và x2. Chẳnghạn,cóthểlấy: 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 47
(tiếp) Tấtnhiêncóthểviếtgọnhơn theo kýhiệu ma trậnnhư sau: 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 48
(tiếp) 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 49
(tiếp) Chúng ta nóirằngbảnmãnhậnđượctừ bảnrõnhờphépbiếnđổituyếntính. Ta sẽxét xem phảithựchiệngiảimãnhư thếnào,tứclàlàmthếnàođểtính x từ y. Bảnmãđượcgiảimãbằngcôngthức yK-1. 10/28/2012 Bộ môn An ninh mạng - Khoa CNTT - HVKTQS 50