Thông tin tài liệu:
Trong bài viết này tôi giới thiệu với các bạn sự khác nhau giữa các thuật toán mã hoá. Phần đầutiên giới thiệu ba phương thức mã hoá: hashing, symmetric, asymmetric. Trong các bài viết tiếptheo tôi sẽ lần lượt trình bày về nhiều vấn đề và cách sử dụng các phương thức mã hoá đó.
Nội dung trích xuất từ tài liệu:
Các thuật toán mã hoáCácthuậttoánmãhoá Trongbàiviếtnàytôigiớithiệuvớicácbạnsựkhácnhaugiữacácthuậttoánmãhoá.Phầnđầu tiêngiớithiệubaphươngthứcmãhoá:hashing,symmetric,asymmetric.Trongcácbàiviếttiếp theotôisẽlầnlượttrìnhbàyvềnhiềuvấnđềvàcáchsửdụngcácphươngthứcmãhoáđó.ThôngtinquantrọngCácthuậttoánmãhoáđượcchialàmbadạngcơbảnđólà:Hashing(hàmbăm),mậtmãsymmetric(đốixứng),vàmậtmãasymmetric(bấtđốixứng).HashingđượcgiớithiệunhưmộtdạngIDsố.Haiphươngthứctiếptheolàsymmetricvàasymmetriclàquátrìnhmãhoávàgiảimã.Bạnmuốnhiểuvềchúngtrướctiênhãyxemcáckháiniệmvàvídụdướiđây.1.Hashing–HàmBămHashinglàmộtphươngthứcmậtmãnhưngnókhôngphảilàmộtthuậttoánmãhoá.Đúngnhưvậy,hashingchỉsửdụngmộtchứngchỉsốduynhấtđượcbiếtđếnvớitênnhưhashvalue–giátrịhash,hash–băm,MessageAuthenticationCode(MAC),fingerprint–vântay,haymộtđoạnmessage.Dữliệuđầuvàocủabạncóthểlàmộtfile,mộtổđĩamộtquátrìnhtruyềnthongtintrênmạng,haymộtbứcthưđiệntử.Thôngsốhashvalueđượcsửdụngđểpháthiệnkhicósựthayđổicủatàinguyên.Nóicáchkhác,hashingsửdụngnóđểpháthiệnradữliệucótoànvẹntrongquátrìnhlưutrữhaytrongkhitruyềnhaykhông.Vídụ,thôngsốhashvalueđượctínhtoánđểsosánhvớithôngsốhashvalueđượctạoratrướcđómộttuần.Nếuhaithôngsốgiốngnhauthìdữliệuchưacósựthayđổi.Nếuhaithôngsốcósựkhácnhau,thìdữliệuđãbịthayđổi.TronghìnhdướiđâythểhiệncơbảnvềhashhaythongsốMAC.ThôngsốMACvalueđượctínhtoánbởingườigửi(sender)vàngườinhận(receive)vớicùngmộtthuậttoán.Khôngnhưcácphươngthứcmậtmãkhác,chúngsẽlàmthayđổidữliệuthànhmộtdạngmậtmã,quátrìnhhashingsửdụngmộtthôngsốhashvaluevàkhôngthayđổidữliệubanđầu.Bởivìcáctínhnăngđặcbiệt,hashingcóthểsửdụngđểbảovệvàkiểmtratínhtoànvẹncủadữliệu.Nócũngcókhảnăngsửdụngđểkiểmtrakhicómộttiếntrìnhcopyđượcthựchiệnvàđảmbảotínhchínhxáccủadữliệukhichúngđượccopy.Vídụ,khimộtổcứngđượctạoramộtbảncopy,mộtquátrìnhhashđượcthựchiệntrênổđĩatrướckhiquátrìnhnhânđôiđượcthựchiện.Nếuhaithongsốhashcủaổcứngmớiđượctạoravàthongsốhashcủaổđĩabanđầuthìquátrìnhnhânđôidữliệuđượcthựchiệnchínhxácvàđảmbảodữliệukhôngcósựthayđổimấtmáttrongquátrìnhnhânbản.Việchashingsửdụngđểđảmbảodữliệuđượcnguyênbảngiúpdữliệulưuởdạngkỹthuậtsốsẽluôndữđượcnguyênbảnsauvôsốlầncopy–vàđiềunàykhôngthểthựchiệnkhilưudữliệucácdạngkhác–vínhưbạnlưuthongtinâmthanhbằngbăngtừsẽbịbiếndạngsaunhiềulầncopy.Vídụ,MessageDigest5(MD5)làmộtthuậttoánhashvới128bithash.Điềunàycónghĩakhôngcóvấnđềvớidữliệuđầuvàovàdữliệuđầurasauquátrìnhhashbởinóluônluônthêmvào128bits.Sứcmạnhcủaquátrìnhhashinglànóđượcthựchiệnmộtchiềuvàkhôngthểcóphươngthứcnàocóthểthựchiệnngượclạiđượcđểconvertsthôngsốhashthànhdữliệubanđầu.Nếumộtvàingườicóđượccácthôngsốhashcủabạn,họkhôngthểlấyđượcdữliệubanđầu.Tuynhiênđókhôngphảilàphươngthứcmậtmãkhôngthểtấncông.Hashingcóthểbịtấncongbởicácphươngthứcđảongượchaybirthdayattack.Phươngthứctấncôngbìnhthườngsửdụngđólàsửdụngcáccôngcụpasswordcracking.Hầuhếtcáchệthốnglưutrữpasswordstrongdữliệuaccountsvàđượchashed(băm).Hashskhôngthểthựchiệnngượclại,bởiđólàmộtgiảiphápbảomật,cónghĩakhôngcócôngcụnàocóthểchuyểnngượclạimộtpasswordđượchashthànhmộtpasswordnguyênbảnchưađượchash.Tuynhiênmộtthuậttoánnàocũngcónhữngbấtcậpriêng,bằngviệcsửdụngcácphầnmềm,passwordcrackerschúngcóthểpháthiệnrađoạnmãthemvàodữliệubanđầuvàchỉcầnxoáđoạnhashvalueđilàcóthểtruycậpbìnhthường.DữliệuAccountthườngkhôngđượcmãhoá,vàdữliệupasswordthườngđượchashdođóhầuhếtcáccôngcụcrackpasswordchỉcóthểxoápasswordđãđượcđặtchouserđómàkhôngthểviewpasswordđó.Thuậttoánhashingthườngđượcsửdụng:SecureHashAlgorithm(SHA1)với160bithashvalueMessageDigest5(MD5)với—128bithashvalueMessageDigest4(MD4)với—128bithashvalueMessageDigest2(MD2)với—128bithashvalue2.Symmetric–MãhoáđốixứngMậtmãđốixứngcũngđượcgọilàmậtmãprivatekeyhaymậtmãsecretkey.Nósửdụngmộtchìakhoáduynhấtđểmãhoávàgiảimãdữliệu(đượcthểhiệndướihìnhdưới).Khimộtmậtmãđốisứngđượcsửdụngchofilestrênmộtổcứng,userthựchiệnmãhoávớimộtsecretkey.Khimộtgiaotiếpđượcsửdụngmãhoáđốixứng,haigiaotiếpsẽchiasẻnhaucùngmộtmậtmãđểmãhoávàgiảimãgóitin.Vídụchúngtathấytrongmộtfilenhưbạnđặtpasswordchomộtfile*.raraimuốnmởphảicópassword(secretkey).KhigiaotiếpgiữamáychủRADIUSServervàRADIUSClientsẽcóchungmộtsecretkeymàbạnphảithiếtlập.VídụtrongInternetđólàgiaothứcSSLsửdụngmậtmãđốixứng.Trongthựctếmậtmãđốixứngđượcdungđểđảmbảotínhtốimậtcủadữliệu.confidentialityMộthệthốngmãhoáđốixứngPhươngthứcmậtmãđốixứngđượcthựchiệnnhanhhơnrấtnhiềusovớiquátrìnhsửdụngmậtmãbấtđốixứng.Vớitốcđộnhanhnênthuậttoánnàyđượcthiếtkếchỉmộtkeytrongquátrìnhmãhoávàgiảimãdữliệu.Mậtmãđốixứngcungcấpmộtgiảiphápmãhoámạnhbảovệdữliệubằngmộtkeylớnđượcsửdụng.Tuynhiên,đểbảovệcáckeysnàybạnluônluônphảilưugiữchúngvàđượcgọilàprivatekey.Nếukeynàybịmấthaybịlộ,khiđósẽkhôngđảmbảotínhbảomậtcủadữliệunữa.(Tươngtựnhưnhàbạncómộtchiếcchìak ...