An toàn dữ liêu mã hóa

Tài liệu An toàn dữ liêu mã hóa: M C L CỤ Ụ 1. AN TOÀN D  LI U TRÊN M NG MÁY TÍNHỮ Ệ Ạ ...................2 2. CÁC H  MàHOÁ C   I NỆ Ổ Đ Ể ................................4 2.1. H  MàHOÁ THAY TH  (SUBSTITUTION CIPHER)Ệ Ế .........4 2.1.1. H  MàHOÁ CAESARỆ .............................5 2.1.2. H  MàHOÁ VIGENEREỆ ...........................6 2.1.3. H  MàHOÁ HILLỆ ...............................7 2.2. H  MàHOÁ  I CH  (TRANSPOSITION CIPHER)Ệ ĐỔ Ỗ ........8 3. CÁC V N   V  MàHOÁ CHO M NG MÁY TÍNHẤ ĐỀ Ề Ạ ..............11 3.1. CÁC THU T NGẬ Ữ...................................11 3.2.  NH NGH A H  M T MÃ.ĐỊ Ĩ Ệ Ậ ............................11 3.3. NH NG YÊU C U  I V I H  M T MÃỮ Ầ ĐỐ Ớ Ệ Ậ ...............12 3.4. CÁC PH NG PHÁP MàHOÁ ƯƠ ........................12 3.4.1. MàHOÁ  I X NG KHOÁ BÍ M TĐỐ Ứ Ậ ................12 3.4.2. MàHOÁ PHI  I X NG KHOÁ CÔNG KHAIĐỐ Ứ .........14 3.5. CÁC CÁCH PHÂN TÍCH Mà..........................15 4. M T S  THU T TOÁN MàHOÁ C  B NỘ Ố Ậ Ơ Ả ....................18 4....

pdf34 trang | Chia sẻ: Khủng Long | Lượt xem: 1191 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu An toàn dữ liêu mã hóa, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
M C L CỤ Ụ 1. AN TOÀN D  LI U TRÊN M NG MÁY TÍNHỮ Ệ Ạ ...................2 2. CÁC H  MàHOÁ C   I NỆ Ổ Đ Ể ................................4 2.1. H  MàHOÁ THAY TH  (SUBSTITUTION CIPHER)Ệ Ế .........4 2.1.1. H  MàHOÁ CAESARỆ .............................5 2.1.2. H  MàHOÁ VIGENEREỆ ...........................6 2.1.3. H  MàHOÁ HILLỆ ...............................7 2.2. H  MàHOÁ  I CH  (TRANSPOSITION CIPHER)Ệ ĐỔ Ỗ ........8 3. CÁC V N   V  MàHOÁ CHO M NG MÁY TÍNHẤ ĐỀ Ề Ạ ..............11 3.1. CÁC THU T NGẬ Ữ...................................11 3.2.  NH NGH A H  M T MÃ.ĐỊ Ĩ Ệ Ậ ............................11 3.3. NH NG YÊU C U  I V I H  M T MÃỮ Ầ ĐỐ Ớ Ệ Ậ ...............12 3.4. CÁC PH NG PHÁP MàHOÁ ƯƠ ........................12 3.4.1. MàHOÁ  I X NG KHOÁ BÍ M TĐỐ Ứ Ậ ................12 3.4.2. MàHOÁ PHI  I X NG KHOÁ CÔNG KHAIĐỐ Ứ .........14 3.5. CÁC CÁCH PHÂN TÍCH Mà..........................15 4. M T S  THU T TOÁN MàHOÁ C  B NỘ Ố Ậ Ơ Ả ....................18 4.1. CHU N MàHOÁ D  LI U DESẨ Ữ Ệ .......................18 4.1.1. MÔ T  THU T TOÁNẢ Ậ ............................20 4.1.2. HOÁN V  KH I  U (THE INITIAL PERMUTATION)Ị Ở ĐẦ ..21 4.1.3. KHOÁ CHUY N  I (THE KEY TRANSFORMATION)Ể ĐỔ ....22 4.1.4. HOÁN V  M  R NG (EXPANSION PERMUTATION)Ị Ở Ộ .....23 4.1.5. H P THAY TH  S (S­BOX SUBSTITUTION)Ộ Ế .........24 4.1.6. H P HOÁN V  P (THE P­BOX PERMUTATION)Ộ Ị .......26 4.1.7. HOÁN V  CU I CÙNGỊ Ố ...........................26 4.1.8. GI I MàDESẢ .................................27 4.1.9. PH N C NG VÀ PH N M M TH C HI N DESẦ Ứ Ầ Ề Ự Ệ ........27 4.2. THU T TOÁN MàHOÁ RSA (PUBLIC­KEY ALGORITHM)Ậ ....28 4.2.1. KHÁI NI M H  M T MàRSA  Ệ Ệ Ậ ...................28 S    các b c th c hi n mã hoá theo thu tơ đồ ướ ự ệ ậ   toán RSA................................30 4.2.2.   AN TOÀN C A H  RSA ĐỘ Ủ Ệ .....................30 4.2.3. M T S  TÍNH CH T C A H  RSA Ộ Ố Ấ Ủ Ệ ...............31 4.3. THU T TOÁN MàHOÁ BLOWFISHẬ ......................32 4.3.1. KHOÁ PHỤ....................................32 Blowfish s  d ng m t s  l ng l n các khoáử ụ ộ ố ượ ớ   ph . Các khoá ph  này ph i  c tính toánụ ụ ả đượ   tr c khi mã hay gi i mã d  li u.ướ ả ữ ệ .........32 4.3.2. MàHOÁ D  LI UỮ Ệ ..............................32 4.3.3. TÍNH TOÁN CÁC KHOÁ PHỤ......................33 An toàn d li u và mã hoáữ ệ 1. AN TOÀN D LI U TRÊN M NG MÁY TÍNHỮ Ệ Ạ Ngày nay, v i s phát tri n m nh m c a công ngh thông tinớ ự ể ạ ẽ ủ ệ vi c ng d ng các công ngh m ng máy tính tr nên vô cùng ph c pệ ứ ụ ệ ạ ở ổ ậ và c n thi t. Công ngh m ng máy tính đã mang l i nh ng l i ích toầ ế ệ ạ ạ ữ ợ l n.ớ S xu t hi n m ng Internet cho phép m i ng i có th truy c p,ự ấ ệ ạ ọ ườ ể ậ chia s và khai thác thông tin m t cách d dàng và hi u qu . Các côngẽ ộ ễ ệ ả ngh E-mail cho phép m i ng i có th g i th cho ng i khác cũngệ ọ ườ ể ử ư ườ nh nh n th ngay trên máy tính c a mình. G n đây có công ngh E-ư ậ ư ủ ầ ệ business cho phép th c hi n các ho t đ ng th ng m i trên m ng máyự ệ ạ ộ ươ ạ ạ tính. Vi c ng d ng các m ng c c b trong các t ch c, công ty hayệ ứ ụ ạ ụ ộ ổ ứ trong m t qu c gia là r t phong phú. Các h th ng chuy n ti n c a cácộ ố ấ ệ ố ể ề ủ ngân hàng hàng ngày có th chuy n hàng t đôla qua h th ng c aể ể ỷ ệ ố ủ mình. Các thông tin v kinh t , chính tr , khoa h c xã h i đ c trao đ iề ế ị ọ ộ ượ ổ rông rãi. Tuy nhiên l i n y sinh v n đ v an toàn thông tin. Đó cùng làạ ả ấ ề ề m t quá trình ti n tri n h p logic: khi nh ng vui thích ban đ u v m tộ ế ể ợ ữ ầ ề ộ siêu xa l thông tin, b n nh t đ nh nh n th y r ng không ch cho phépộ ạ ấ ị ậ ấ ằ ỉ b n truy nh p vào nhi u n i trên th gi i, Internet còn cho phép nhi uạ ậ ề ơ ế ớ ề ng i không m i mà t ý ghé thăm máy tính c a b n.ườ ờ ự ủ ạ Th c v y, Internet có nh ng k thu t tuy t v i cho phép m iự ậ ữ ỹ ậ ệ ờ ọ ng i truy nh p, khai thác, chia s thông tin. Nh ng nó cũng là nguy cườ ậ ẻ ữ ơ chính d n đ n thông tin c a b n b h h ng ho c phá hu hoàn toàn.ẫ ế ủ ạ ị ư ỏ ặ ỷ Có nh ng thông tin vô cùng quan tr ng mà vi c b m t hay b làmữ ọ ệ ị ấ ị sai l ch có th nh h ng đ n các t ch c, các công ty hay c m tệ ể ả ưở ế ổ ứ ả ộ qu c gia. Các thông tin v an ninh qu c gia, bí m t kinh doanh hay cácố ề ố ậ thông tin tài chính là m c tiêu c a các t ch c tình báo n c ngoài vụ ủ ổ ứ ướ ề chính tr hay công nghi p ho c k c p nói chung. B n chúng có th làmị ệ ặ ẻ ắ ọ ể m i vi c có th đ có đ c nh ng thông tin quý giá này. Th t ngọ ệ ể ể ượ ữ ử ưở t ng n u có k xâm nh p đ c vào h th ng chuy n ti n c a cácượ ế ẻ ậ ượ ệ ố ể ề ủ ngân hàng thì ngân hàng đó s ch u nh ng thi t h i to l n nh m t ti nẽ ị ữ ệ ạ ớ ư ấ ề có th d n t i b phá s n. Ch a k n u h thông thông tin an ninh qu cể ẫ ớ ị ả ư ể ế ệ ố gia b đe do thì h u qu không th l ng tr c đ c. ị ạ ậ ả ể ườ ướ ượ Theo s li u c a CERT(Computer Emegency Response Team -ố ệ ủ “Đ i c p c u máy tính”), s l ng các v t n công trên Internet đ cộ ấ ứ ố ượ ụ ấ ượ thông báo cho t ch c này là ít h n 200 vào năm 1989, kho ng 400 vàoổ ứ ơ ả năm 1991, 1400 vào năm 1993, và 2241 vào năm 1994. Nh ng v t nữ ụ ấ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 2 An toàn d li u và mã hoáữ ệ công này nh m vào t t c các máy tính có m t trên Internet, các máyằ ấ ả ặ tính c a t t c các công ty l n nh AT&T, IBM, các tr ng đ i h c,ủ ấ ả ớ ư ườ ạ ọ các c quan nhà n c, các t ch c quân s , nhà băng... M t s v t nơ ướ ổ ứ ự ộ ố ụ ấ công có quy mô kh ng l (có t i 100.000 máy tính b t n công). H nổ ồ ớ ị ấ ơ n a, nh ng con s này ch là ph n n i c a t ng băng. M t ph n r tữ ữ ố ỉ ầ ổ ủ ả ộ ầ ấ l n các v t n công không đ c thông báo, vì nhi u lý do, trong đó cóớ ụ ấ ượ ề th k đ n n i lo b m t uy tín, ho c đ n gi n nh ng ng i qu n trể ể ế ỗ ị ấ ặ ơ ả ữ ườ ả ị h th ng không h hay bi t nh ng cu c t n công nh m vào h th ngệ ố ề ế ữ ộ ấ ằ ệ ố c a h .ủ ọ Không ch s l ng các cu c t n công tăng lên nhanh chóng, màỉ ố ượ ộ ấ các ph ng pháp t n công cũng liên t c đ c hoàn thi n. Đi u đó m tươ ấ ụ ượ ệ ề ộ ph n do các nhân viên qu n tr h th ng đ c k t n i v i Internetầ ả ị ệ ố ượ ế ố ớ ngày càng đ cao c nh giác. Cũng theo CERT, nh ng cu c t n côngề ả ữ ộ ấ th i kỳ 1988-1989 ch y u đoán tên ng i s d ng-m t kh uờ ủ ế ườ ử ụ ậ ẩ (UserID-password) ho c s d ng m t s l i c a các ch ng trình vàặ ử ụ ộ ố ỗ ủ ươ h đi u hành (security hole) làm vô hi u h th ng b o v , tuy nhiênệ ề ệ ệ ố ả ệ các cu c t n công vào th i gian g n đây bao g m c các thao tác nhộ ấ ờ ầ ồ ả ư gi m o đ a ch IP, theo dõi thông tin truy n qua m ng, chi m cácả ạ ị ỉ ề ạ ế phiên làm vi c t xa (telnet ho c rlogin).ệ ừ ặ Đ v a b o đ m tính b o m t c a thông tin l i không làm gi mể ừ ả ả ả ậ ủ ạ ả s phát tri n c a vi c trao đ i thông tin qu ng bá trên toàn c u thì m tự ể ủ ệ ổ ả ầ ộ gi i pháp t t nh t là ả ố ấ mã hoá thông tin. Có th hi u s l c mã hoáể ể ơ ượ thông tin là che đi thông tin c a mình làm cho k t n công n u ch nủ ẻ ấ ế ặ đ c thông báo trên đ ng truy n thì cũng không th đ c đ c và ph iượ ườ ề ể ọ ượ ả có m t giao th c gi a ng i g i và ng i nh n đ có th trao đ iộ ứ ữ ườ ử ườ ậ ể ể ổ thông tin, đó là các c ch mã và gi i mã thông tin. ơ ế ả Ngày nay thì vi c mã hoá đã tr nên ph c p. Các công ty ph nệ ở ổ ậ ầ m m l n trên th gi i đ u có nghiên c u và xây d ng các công c ,ề ớ ế ớ ề ứ ự ụ thu t toán mã hoá đ áp d ng cho th c t . M i qu c gia hay t ch cậ ể ụ ự ế ỗ ố ổ ứ đ u có nh ng c ch mã hoá riêng đ b o v h th ng thông tin c aề ữ ơ ế ể ả ệ ệ ố ủ mình. M t s v n đ an toàn đ i v i nhi u m ng hi n nay:ộ ố ấ ề ố ớ ề ạ ệ • M t ng i dùng chuy n m t thông báo đi n t cho m t ng i sộ ườ ể ộ ệ ử ộ ườ ử d ng khác. M t bên th ba trên cùng m ng LAN này s d ng m t thi tụ ộ ứ ạ ử ụ ộ ế b nghe tr m gói đ l y thông báo và đ c các thông tin trong đó.ị ộ ể ấ ọ • Cũng trong tình hu ng trên bên th ba ch n thông báo, thay đ i cácố ứ ặ ổ thành ph n c a nó và sau đó l i g i cho ng i nh n. Ng i nh nầ ủ ạ ử ườ ậ ườ ậ không h nghi ng gì tr khi nh n ra thông báo đó là vô lý, và có thề ờ ừ ậ ể Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 3 An toàn d li u và mã hoáữ ệ th c hi n vài hành đ ng d a trên các thành ph n sai này đem l i l i íchự ệ ộ ự ầ ạ ợ cho bên th ba.ứ • Ng i dùng log vào m t server mà không s d ng m t kh u đ cườ ộ ử ụ ậ ẩ ượ mã hoá. M t ng i khác đang nge tr m trên đ ng truy n và b t đ cộ ườ ộ ườ ề ắ ượ m t kh u logon c a ng i dùng, sau đó có th truy nh p thông tin trênậ ẩ ủ ườ ể ậ server nh ng i s d ng.ư ườ ử ụ • M t ng i qu n tr h th ng không hi u v khía c nh an toàn vàộ ườ ả ị ệ ố ể ề ạ yêu c u c a h th ng và vô tình cho phép ng i dùng khác truy nh pầ ủ ệ ố ườ ậ vào th m c ch a các thông tin h th ng. Ng i dùng phát hi n ra hư ụ ứ ệ ố ườ ệ ọ có th có đ c các thông tin h th ng và có th dùng nó ph c v choể ượ ệ ố ể ụ ụ lo i ích c a mình. ự ủ 2. CÁC H Mà HOÁ C ĐI NỆ Ổ Ể 2.1. H Mà HOÁ THAY TH (SUBSTITUTION CIPHER)Ệ Ế H mã hoá thay th là h mã hoá trong đó m i ký t c a b n rõệ ế ệ ỗ ự ủ ả đ c thay th b ng ký t khác trong b n mã (có th là m t ch cái,ượ ế ằ ự ả ể ộ ữ m t s ho c m t ký hi u).ộ ố ặ ộ ệ Có 4 k thu t thay th sau đây:ỹ ậ ế • Thay th đ nế ơ (A simple substitution cipher): là h trong đó m t ký tệ ộ ự c a b n rõ đ c thay b ng m t ký t t ng ng trong b n mã. M tủ ả ượ ằ ộ ự ươ ứ ả ộ ánh x 1-1 t b n rõ t i b n mã đ c s d ng đ mã hoá toàn bạ ừ ả ớ ả ượ ử ụ ể ộ thông đi p.ệ • Thay th đ ng âmế ồ (A homophonic substitution cipher): gi ng nh hố ư ệ th ng mã hoá thay th đ n, ngo i tr m t ký t c a b n rõ có thố ế ơ ạ ừ ộ ự ủ ả ể đ c ánh x t i m t trong s m t vài ký t c a b n mã: s đ ánh xượ ạ ớ ộ ố ộ ự ủ ả ơ ồ ạ 1-n (one-to-many). Ví d , “A” có th t ng ng v i 5, 13, 25, ho c 56,ụ ể ươ ứ ớ ặ “B” có th t ng ng v i 7, 19, 31, ho c 42, v.v.ể ươ ứ ớ ặ • Thay th đa m u tế ẫ ự (A polyalphbetic substitution cipher): đ c t oượ ạ nên t nhi u thu t toán mã hoá thay th đ n. Ánh x 1-1 nh trongừ ề ậ ế ơ ạ ư tr ng h p thay th đ n, nh ng có th thay đ i trong ph m vi m tườ ợ ế ơ ư ể ổ ạ ộ thông đi p. Ví d , có th có năm thu t toán mã hoá đ n khác nhauệ ụ ể ậ ơ đ c s d ng; đ c bi t thu t toán mã hoá đ n đ c s d ng thay đ iượ ử ụ ặ ệ ậ ơ ượ ử ụ ổ theo v trí c a m i ký t trong b n rõ.ị ủ ỗ ự ả • Thay th đa s đế ơ ồ (A polygram substitution cipher): là thu t toánậ trong đó các kh i ký t đ c mã hoá theo nhóm. Đây là thu t toán t ngố ự ượ ậ ổ quát nh t, cho phép thay th các nhóm ký t c a văn b n g c. Ví d ,ấ ế ự ủ ả ố ụ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 4 An toàn d li u và mã hoáữ ệ “ABA” có th t ng ng v i “RTQ”, “ABB” có th t ng ng v iể ươ ứ ớ ể ươ ứ ớ “SLL”, v.v. 2.1.1. H Mà HOÁ CAESARỆ H mã hoá CAESAR là m t h mã hoá thay th đ n làm vi cệ ộ ệ ế ơ ệ trên b ng ch cái ti ng Anh 26 ký t (A, B, ... , Z).ả ữ ế ự Trong h CAESAR và các h t ng t còn l i ta s d ng các sệ ệ ươ ự ạ ử ụ ố t nhiên thay cho các ký t - đánh s các ký t trong b ng ch cái theoự ự ố ự ả ữ th t : A là 0, B là 1, ... và Z là 25.ứ ự A B C D ... L M N ... W X Y Z 0 1 2 3 ... 11 12 13 ... 22 23 23 25 Các phép toán s h c th c hi n theo modul 26. Có nghĩa là 26ố ọ ự ệ đ ng nh t v i 0, 27 đ ng nh t v i 1, 28 đ ng nh t ồ ấ ớ ồ ấ ớ ồ ấ v i 2, ... Ví d :ớ ụ 2× 17 + 5× 9 = 79 = 1 + 3× 26 = 1 H CAESAR s d ng thu t toán mã hoá trong đó m i ký tệ ử ụ ậ ỗ ự đ c thay th b i m t ký t khác đ c xác đ nh b ng cách d ch ký tượ ế ở ộ ự ượ ị ằ ị ự c n mã hoá sang ph i k b c theo modul 26:ầ ả ướ Ek(α) = (α + k) MOD 26 v i ớ α là m t ký t , 0 ộ ự ≤ k ≤ 26, MOD là phép chia l y ph n d .ấ ầ ư Thu t toán gi i mã t ng ng Dậ ả ươ ứ k là lùi l i k b c trong b ngạ ướ ả ch cái theo modul 26:ữ Dk(α) = (α - k) MOD 26 Không gian khoá c a h CEACAR bao g m 26 s 0, 1, 2, ... 25.ủ ệ ồ ố Ví d : v i k=3, A đ c thay b ng D, B đ c thay b ng E, ... , Wụ ớ ượ ằ ượ ằ đ c thay b ng Z, ... , X đ c thay b ng A, Y đ c thay b ng B, và Zượ ằ ượ ằ ượ ằ đ c thay b ng C. Ta có:ượ ằ B ng ch cái g cả ữ ố A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B ng ch cái dùng đ mã hoáả ữ ể D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Trong tr ng h p này b n rõ “TRY AGIAN” đ c mã hoá thànhườ ợ ả ượ “WUB DJDLQ”, b n rõ “HELP ME” đ c mã hoá thành “KHOSPH”.ả ượ (Chú ý: các ký t tr ng trong b n mã đ c b đi đ đ m b o tính anự ố ả ượ ỏ ể ả ả toàn) Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 5 An toàn d li u và mã hoáữ ệ Thêm m t vài ví d minh ho :ộ ụ ạ E25(IBM) = HAL, E6(MUPID) = SAVOJ, E3(HELP) = KHOS, E1(HOME) = IPNF, E6(SAVOJ) = E20(SAVOJ) = MUPID. H CAESAR là h mã hoá cũ và không an toàn vì không gianệ ệ khoá c a nó r t nh , do đó có th thám mã theo ph ng pháp vét c n.ủ ấ ỏ ể ươ ạ Khoá gi i mã có th tính ngay ra đ c t khoá mã hoá. Do ch có 26ả ể ượ ừ ỉ khoá nên ta có th th l n l t các khoá cho đ n khi tìm đ c khoáể ử ầ ượ ế ượ đúng. 2.1.2. H Mà HOÁ VIGENEREỆ H mã hoá này đ c đ t theo tên c a m t nhà m t mã ng iệ ượ ặ ủ ộ ậ ườ Pháp Blaise de Vigenère (1523-1596). VIGENERE cũng gi ng nh CAESAR, nh ng đây khoá đ cố ư ư ở ượ thay đ i theo t ng b c. Hình vuông VIGENERE đ c s d ng đ mãổ ừ ướ ượ ử ụ ể hoá và gi i mã.ả A B C D E F G H I J K L M N O P Q R S T U V W X Y Z B C D E F G H I J K L M N O P Q R S T U V W X Y Z A C D E F G H I J K L M N O P Q R S T U V W X Y Z A B D E F G H I J K L M N O P Q R S T U V W X Y Z A B C E F G H I J K L M N O P Q R S T U V W X Y Z A B C D F G H I J K L M N O P Q R S T U V W X Y Z A B C D E G H I J K L M N O P Q R S T U V W X Y Z A B C D E F H I J K L M N O P Q R S T U V W X Y Z A B C D E F G I J K L M N O P Q R S T U V W X Y Z A B C D E F G H J K L M N O P Q R S T U V W X Y Z A B C D E F G H I K L M N O P Q R S T U V W X Y Z A B C D E F G H I J L M N O P Q R S T U V W X Y Z A B C D E F G H I J K M N O P Q R S T U V W X Y Z A B C D E F G H I J K L N O P Q R S T U V W X Y Z A B C D E F G H I J K L M O P Q R S T U V W X Y Z A B C D E F G H I J K L M N P Q R S T U V W X Y Z A B C D E F G H I J K L M N O Q R S T U V W X Y Z A B C D E F G H I J K L M N O P Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 6 An toàn d li u và mã hoáữ ệ R S T U V W X Y Z A B C D E F G H I J K L M N O P Q S T U V W X Y Z A B C D E F G H I J K L M N O P Q R T U V W X Y Z A B C D E F G H I J K L M N O P Q R S U V W X Y Z A B C D E F G H I J K L M N O P Q R S T V W X Y Z A B C D E F G H I J K L M N O P Q R S T U W X Y Z A B C D E F G H I J K L M N O P Q R S T U V X Y Z A B C D E F G H I J K L M N O P Q R S T U V W Y Z A B C D E F G H I J K L M N O P Q R S T U V W X Z A B C D E F G H I J K L M N O P Q R S T U V W X Y Hình n. Hình vuông VIGENERE M i c t c a hình vuông VIGENERE có th xem nh là m t hỗ ộ ủ ể ư ộ ệ CAESAR, v i các khoá 0, 1, 2, ... , 25. Đ mã hoá thì b n rõ đ c đ cớ ể ả ượ ọ t các hàng và khoá đ c đ c t các c t. ừ ượ ọ ừ ộ Ví d đ mã hóa b n rõ PURPLE v i t khoá CRYPTO, đ u tiênụ ể ả ớ ừ ầ ta tìm đi m giao nhau c a hàng P và c t C, ta đ c R. C nh v y taể ủ ộ ượ ứ ư ậ đ c b n mã RLPEES. Ta s thu đ c b n mã t ng t n u ta thayượ ả ẽ ượ ả ươ ự ế đ i vai trò c a hàng và c t trong khi mã hoá. Đ gi i mã b n mãổ ủ ộ ể ả ả RLPEES v a mã hoá, ta nhìn vào hàng nào có ch a R trong c t C, theoừ ứ ộ cách này ta s tìm đ c P. Và nh v y ta tìm đ c b n rõ là PURPLE.ẽ ượ ư ậ ượ ả T khoá th ng đ c áp d ng m t cách tu n hoàn. N u b n rõừ ườ ượ ụ ộ ầ ế ả dài h n t khoá thì t khoá l i đ c b t đ u l i t đ u. Ví d , t khoáơ ừ ừ ạ ượ ắ ầ ạ ừ ầ ụ ừ CRYPTO đ c áp d ng v i b n rõ có 15 ký t là CRYPTO CRYPTOượ ụ ớ ả ự CRY. Ta th y r ng trong h mã hoá VIGENERE, v i khoá có đ dài dấ ằ ệ ớ ộ thì s có 26ẽ d khoá h p l . Vì v y, ch c n v i giá tr d nh thì ph ngợ ệ ậ ỉ ầ ớ ị ỏ ươ pháp thám mã vét c n cũng đòi h i khá nhi u th i gian.ạ ỏ ề ờ 2.1.3. H Mà HOÁ HILLỆ H mã hoá này d a trên lý thuy t v đ i s tuy n tính do Lesterệ ự ế ề ạ ố ế S.Hill đ a ra năm 1929.ư C không gian b n rõ và b n mã đ u là ả ả ả ề Σ*, trong đó Σ là b n chả ữ cái ti ng Anh. Chúng ta s d ng các s t nhiên thay cho các ký t vàế ử ụ ố ự ự các phép toán s h c đ c th c hi n theo modul 26 nh đã nói ph nố ọ ượ ự ệ ư ở ầ trên. Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 7 An toàn d li u và mã hoáữ ệ Ta ch n m t s nguyên (integer) d ọ ộ ố ≥ 2. Xét M là ma tr n vuông dậ chi u. Các ph n t c a M là các s nguyên t 0 đ n 25. H n n a Mề ầ ử ủ ố ừ ế ơ ữ ph i là ma tr n kh ngh ch, t c là t n t i Mả ậ ả ị ứ ồ ạ -1. Ví d :ụ M =     5 2 3 3 và M -1 =     9 20 17 15 . Đ mã hoá, b d ch cái c a b n rõ đ c mã hoá cùng nhau.ể ộ ữ ủ ả ượ Trong các tr ng h p s xét d i đây ta l y d=2.ườ ợ ẽ ướ ấ Quá trình mã hoá đ c th c hi n theo công th c:ượ ự ệ ứ MP = C trong đó P và C đ c vi t thành các vecter c t d chi u. M i b d chượ ế ộ ề ỗ ộ ữ cái c a b n rõ đ c vi t thành vecter P v i các thành ph n là các sủ ả ượ ế ớ ầ ố bi u di n các ký t . Và C cũng th hi n kh i d ký t c a b n mã.ể ễ ự ể ệ ố ự ủ ả Còn khi gi i mã ta ph i dùng ma tr n ngh ch đ o Mả ả ậ ị ả –1: P = CM -1 Ví d , b n rõ “HELP” đ c vi t thành hai vecterụ ả ượ ế P1 =     E H =     4 7 và P2 =     P L =     15 11 . theo công th c mã hoá ta cóứ MP1 =     5 2 3 3     4 7 =     34 33 =     8 7 =     I H = C1 và MP2 =     5 2 3 3     15 11 =     97 78 =     19 0 =     T A = C2 chúng ta thu đ c b n mã “HIAT”.ượ ả 2.2. H Mà HOÁ Đ I CH (TRANSPOSITION CIPHER)Ệ Ổ Ỗ M t h mã hoá đ i ch là h mã hoá trong đó các ký t c a b nộ ệ ổ ỗ ệ ự ủ ả rõ v n đ c gi nguyên, nh ng th t c a chúng đ c đ i ch vòngẫ ượ ữ ư ứ ự ủ ượ ổ ỗ quanh. Ví d m t h mã hoá đ i ch c t đ n gi n, b n rõ đ c vi tụ ộ ệ ổ ỗ ộ ơ ả ả ượ ế theo hàng ngang trên trang gi y v i đ dài c đ nh, và b n mã đ cấ ớ ộ ố ị ả ượ đ c theo hàng d c (Hình 2).ọ ọ B n rõ: ả COMPUTER GRAPHICS MAY BE SLOW BUT AT LEAST IT’S EXPENSIVE Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 8 An toàn d li u và mã hoáữ ệ COMPUTERGR APHICSMAYB ESLOWBUTAT LEASTITSEX PENSIVE B n mã: ả CAELPOPSEEMHLANPIOSSUCWTITSBIUEMUTERATSGYAERBTX Hình 2. Mã hoá thay đ i v trí c tổ ị ộ Ph ng pháp này có các k thu t sau:ươ ỹ ậ • Đ o ng c toàn b b n rõả ượ ộ ả : nghĩa là b n rõ đ c vi t theo th tả ượ ế ứ ự ng c l i đ t o ra b n mã. Đây là ph ng pháp mã hoá đ n gi n nh tượ ạ ể ạ ả ươ ơ ả ấ vì v y không đ m b o an toàn.ậ ả ả Ví d : b n rõ “TRANSPOSITION CIPHER” đ c mã hoá thànhụ ả ượ “REHPICNOITISOPSNART”. • Mã hoá theo m u hình h cẫ ọ : b n rõ đ c s p x p l i theo m t m uả ượ ắ ế ạ ộ ẫ hình h c nào đó, th ng là m t m ng ho c m t ma tr n hai chi u.ọ ườ ộ ả ặ ộ ậ ề Ví d : b n rõ “LIECHTENSTEINER” đ c vi t thành ma tr nụ ả ượ ế ậ 3× 5 theo hàng nh sau:ư C tộ 1 2 3 4 5 B n rõả L I E C H T E N S T E I N E R N u l y các ký t ra theo s th t c t 2, 4, 1, 3, 5 thì s có b nế ấ ự ố ứ ự ộ ẽ ả mã “IEICSELTEENNHTR”. • Đ i ch c tổ ỗ ộ : Đ u tiên đ i ch các ký t trong b n rõ thành d ngầ ổ ỗ ự ả ạ hình ch nh t theo c t, sau đó các c t đ c s p x p l i và các ch cáiữ ậ ộ ộ ượ ắ ế ạ ữ đ c l y ra theo hàng ngangượ ấ Ví d : b n rõ g c là “NGAY MAI BAT DAU CHIEN DICHụ ả ố XYZ” đ c vi t d i d ng ma tr n 5ượ ế ướ ạ ậ × 5 theo c t nh sau:ộ ư C tộ 1 2 3 4 5 B n rõả N A D I C G I A E H A B U N X Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 9 An toàn d li u và mã hoáữ ệ Y A C D Y M T H I Z Vì có 5 c t nên chúng có th đ c s p l i theo 5!=120 cách khácộ ể ượ ắ ạ nhau. Đ tăng đ an toàn có th ch n m t trong các cách s p x p l iể ộ ể ọ ộ ắ ế ạ đó. N u ta chuy n v các c t theo th t 3, 5, 2, 4, 1 r i l y các ký tế ể ị ộ ứ ự ồ ấ ự ra theo hàng ngang ta s đ c b n mã làẽ ượ ả “DCAINAHIEGUXBNACYADY HZTIM”. L u ý r ng các ký t cáchư ằ ự đ c b đi.ượ ỏ H n ch c a ph ng pháp này là toàn b các ma tr n ký t ph iạ ế ủ ươ ộ ậ ự ả đ c sinh đ mã hoá và gi i mã.ượ ể ả • Hoán v các ký t c a b n rõ theo chu kỳ c đ nh dị ự ủ ả ố ị : N u hàm f làế m t hoán v c a m t kh i g m d ký t thì khoá mã hoá đ c bi u di nộ ị ủ ộ ố ồ ự ượ ể ễ b i K(d,f).ở Do v y, b n rõ:ậ ả M = m1m2...mdmd+1...m2d V i mớ i là các ký t , và b n rõ s đ c mã hoá thành:ự ả ẽ ượ Ek(M) = mf(1)mf(2)...mf(d)md+f(1)...md+f(d) Trong đó mf(1)mf(2)...mf(d) là m t hoán v c a mộ ị ủ 1m2...md. Ví d : gi s d=5 và f hoán v dãy i=12345 thành fụ ả ử ị (i)=35142 V trí đ uị ầ V trí hoán vị ị Từ Mã hoá 1 3 G O 2 5 R P 3 1 O G 4 4 U U 5 2 P R Theo b ng trên, ký t đ u trong kh i 5 ký t đ c chuy n t i vả ự ầ ố ự ượ ể ớ ị trí th 3, ký tứ ự th hai đ c chuy n t i v trí th 5, ... Ch ng h n tứ ượ ể ớ ị ứ ẳ ạ ừ g c GROUP đ c mã hoá thành OPGUR.ố ượ B ng cách đó, b n rõ “I LOVE BEETHOVENS MUSIC” s đ cằ ả ẽ ượ chuy n thành “OEIVLEHBTEESONVSCMIU”.ể H mã ADFGV c a Đ c, đ c s d ng trong su t chi n tranhệ ủ ứ ượ ử ụ ố ế th gi i l n th I, đó là m t h mã hoá đ i ch (có s d ng thay thế ớ ầ ứ ộ ệ ổ ỗ ử ụ ế Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 10 An toàn d li u và mã hoáữ ệ đ n gi n). Nó đ c coi là m t thu t toán mã hoá ph c t p vào th i yơ ả ượ ộ ậ ứ ạ ờ ấ nh ng nó đã b phá b i Georges Painvin, m t nhà thám mã ng i Pháp.ư ị ở ộ ườ M c dù có r t nhi u h th ng mã hoá s d ng đ i ch , nh ngặ ấ ề ệ ố ử ụ ổ ỗ ư chúng r t r c r i b i vì nó đòi h i r t nhi u b nh .ấ ắ ố ở ỏ ấ ề ộ ớ 3. CÁC V N Đ V Mà HOÁ CHO M NG MÁY TÍNHẤ Ề Ề Ạ 3.1. CÁC THU T NGẬ Ữ 1. H m t mãệ ậ là t p h p các thu t toán và các th t c k t h p đ cheậ ợ ậ ủ ụ ế ợ ể d u thông tin cũng nh làm rõ nó.ấ ư 2. M t mã h cậ ọ nghiên c u m t mã b i các nhà m t mã h c, ng i vi tứ ậ ở ậ ọ ườ ế m t mã và các ậ nhà phân tích mã. 3. Mã hoá là quá trình chuy n thông tin có th đ c g i là ể ể ọ ọ b n rõả thành thông tin không th đ c g i là ể ọ ọ b n mã.ả 4. Gi i mãả là quá trình chuy n ng c l i thông tin đ c mã hoá thànhể ượ ạ ượ b n rõ.ả 5. Thu t toán mã hoáậ là các th t c tính toán s d ng đ che d u vàủ ụ ử ụ ể ấ làm rõ thông tin. Thu t toán càng ph c t p thì b n mã càng an toàn.ậ ứ ạ ả 6. M t ộ khoá là m t giá tr làm cho thu t toán mã hoá ch y theo cáchộ ị ậ ạ riêng bi t và sinh ra b n rõ riêng bi t tuỳ theo khoá. Khoá càng l nệ ả ệ ớ thì b n mã k t qu càng an toàn. Kích th c c a khoá đ c đo b ngả ế ả ướ ủ ượ ằ bit. Ph m vi các giá tr có th có c a khoá đ c g i là ạ ị ể ủ ượ ọ không gian khoá. 7. Phân tích mã là quá trình hay ngh thu t phân tích h m t mã ho cệ ậ ệ ậ ặ ki m tra tính toàn v n c a nó ho c phá nó vì nh ng lý do bí m t.ể ẹ ủ ặ ữ ậ 8. M t ộ k t n côngẻ ấ là m t ng i (hay h th ng) th c hi n phân tíchộ ườ ệ ố ự ệ mã đ làm h i h th ng. Nh ng k t n công là nh ng k th c mũiể ạ ệ ố ữ ẻ ấ ữ ẻ ọ vào chuy n ng i khác, các tay hacker, nh ng k nghe tr m hayệ ườ ữ ẻ ộ nh ng các tên đáng ng khác, và h làm nh ng vi c th ng g i làữ ờ ọ ữ ệ ườ ọ cracking 3.2. Đ NH NGHĨA H M T MÃ.Ị Ệ Ậ 1. H m t mã: là m t h bao g m 5 thành ph n (P, C, K, E, D) thoệ ậ ộ ệ ồ ầ ả mãn các tính ch t sauấ P ( Plaintext ) là t p h p h u h n các b n rõ có th .ậ ợ ữ ạ ả ể Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 11 An toàn d li u và mã hoáữ ệ C ( Ciphertext ) là t p h p h u h n các b n mã có th .ậ ợ ữ ạ ả ể K ( Key ) là t p h p các b n khoá có th .ậ ợ ả ể E ( Encrytion ) là t p h p các qui t c mã hoá có th .ậ ợ ắ ể D ( Decrytion ) là t p h p các qui t c gi i mã có th .ậ ợ ắ ả ể Chúng ta đã bi t m t thông báo th ng đ c t ch c d i d ngế ộ ườ ượ ổ ứ ướ ạ b n rõ. Ng i g i s làm nhi m v mã hoá b n rõ, k t qu thu đ cả ườ ử ẽ ệ ụ ả ế ả ượ g i là b n mã. B n mã này đ c g i đi trên m t đ ng truy n t iọ ả ả ượ ử ộ ườ ề ớ ng i nh n sau khi nh n đ c b n mã ng i nh n gi i mã nó đ tìmườ ậ ậ ượ ả ườ ậ ả ể hi u n i dung.ể ộ D dàng th y đ c công vi c trên khi s d ng đ nh nghĩa hễ ấ ượ ệ ử ụ ị ệ m t mã :ậ EK( P) = C và DK( C ) = P 3.3. NH NG YÊU C U Đ I V I H M T MÃỮ Ầ Ố Ớ Ệ Ậ Cung c p m t m c cao v đ tin c y, tính toàn v n, s không tấ ộ ứ ề ộ ậ ẹ ự ừ ch i và s xác th c.ố ự ự • Đ tin c yộ ậ : cung c p s bí m t cho các thông báo và d li u đ cấ ự ậ ữ ệ ượ l u b ng vi c che d u thông tin s d ng các k thu t mã hóa.ư ằ ệ ấ ử ụ ỹ ậ • Tính toàn v nẹ : cung c p s b o đ m v i t t c các bên r ng thôngấ ự ả ả ớ ấ ả ằ báo còn l i không thay đ i t khi t o ra cho đ n khi ng i nh n mạ ổ ừ ạ ế ườ ậ ở nó. • Tính không t ch iừ ố : có th cung c p m t cách xác nh n r ng tài li uể ấ ộ ậ ằ ệ đã đ n t ai đó ngay c khi h c g ng t ch i nó.ế ừ ả ọ ố ắ ừ ố • Tính xác th cự : cung c p hai d ch v : đ u tiên là nh n d ng ngu nấ ị ụ ầ ậ ạ ồ g c c a m t thông báo và cung c p m t vài s b o đ m r ng nó làố ủ ộ ấ ộ ự ả ả ằ đúng s th c. Th hai là ki m tra đ c tính c a ng i đang logonự ự ứ ể ặ ủ ườ m t h th ng và sau đó ti p t c ki m tra đ c tính c a h trongộ ệ ố ế ụ ể ặ ủ ọ tr ng h p ai đó c g ng đ t nhiên k t n i và gi d ng là ng i sườ ợ ố ắ ộ ế ố ả ạ ườ ử d ngụ 3.4. CÁC PH NG PHÁP Mà HOÁ ƯƠ 3.4.1. Mà HOÁ Đ I X NG KHOÁ BÍ M TỐ Ứ Ậ • Đ nh nghĩaị Thu t toán đ i x ng hay còn g i thu t toán mã hoá c đi n là thu tậ ố ứ ọ ậ ổ ể ậ toán mà t i đó khoá mã hoá có th tính toán ra đ c t khoá gi i mã.ạ ể ượ ừ ả Trong r t nhi u tr ng h p, khoá mã hoá và khoá gi i mã là gi ngấ ề ườ ợ ả ố Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 12 An toàn d li u và mã hoáữ ệ nhau. Thu t toán này còn có nhi u tên g i khác nh thu t toán khoá bíậ ề ọ ư ậ m t, thu t toán khoá đ n gi n, thu t toán m t khoá. Thu t toán này yêuậ ậ ơ ả ậ ộ ậ c u ng i g i và ng i nh n ph i tho thu n m t khoá tr c khiầ ườ ử ườ ậ ả ả ậ ộ ướ thông báo đ c g i đi, và khoá này ph i đ c c t gi bí m t. Đ anượ ử ả ượ ấ ữ ậ ộ toàn c a thu t toán này v n ph thu c và khoá, n u đ l ra khoá nàyủ ậ ẫ ụ ộ ế ể ộ nghĩa là b t kỳ ng i nào cũng có th mã hoá và gi i mã thông báoấ ườ ể ả trong h th ng mã hoá.ệ ố S mã hoá và gi i mã c a thu t toán đ i x ng bi u th b i :ự ả ủ ậ ố ứ ể ị ở EK( P ) = C DK( C ) = P Mã hoá và gi i mã v i m t khoáả ớ ộ Trong hình v trên thì :ẽ K1có th trùng K2, ho c ể ặ K1 có th tính toán t K2, ho cể ừ ặ K2 có th tính toán t K1.ể ừ • N i ng d ng:ơ ứ ụ • S d ng trong môi tr ng mà khoá đ n d dàng đ c chuy n nhử ụ ườ ơ ễ ượ ể ư là trong cùng m t văn phòng. Cũng dùng đ mã hoá thông tin đ l uộ ể ể ư tr trên đĩa.ữ • Các v n đ đ i v i ph ng pháp mã hoá này: ấ ề ố ớ ươ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 13 Bản r õ Mã hoá Gi ải mã Bản r õ Bản Khoá Hì nh 1. Mã hoá với khoá mã và khoá gi ải An toàn d li u và mã hoáữ ệ 1.Các ph ng mã hoá c đi n đòi h i ng i mã hoá và ng i gi iươ ổ ể ỏ ườ ườ ả mã ph i cùng chung m t khoá. Khi đó khoá ph i đ c gi bí m t tuy tả ộ ả ượ ữ ậ ệ đ i, do v y ta d dàng xác đ nh m t khoá n u bi t khoá kia.ố ậ ễ ị ộ ế ế 2.H mã hoá đ i x ng không b o v đ c s an toàn n u có xácệ ố ứ ả ệ ượ ự ế su t cao khoá ng i g i b l . Trong h khoá ph i đ c g i đi trênấ ườ ử ị ộ ệ ả ượ ử kênh an toàn n u k đ ch t n công trên kênh này có th phát hi n raế ẻ ị ấ ể ệ khoá. 3.V n đ qu n lý và phân ph i khoá là khó khăn và ph c t p khi sấ ề ả ố ứ ạ ử d ng h mã hoá c đi n. Ng i g i và ng i nh n luôn luôn thôngụ ệ ổ ể ườ ử ườ ậ nh t v i nhau v v n đ khoá. Vi c thay đ i khoá là r t khó và d bấ ớ ề ấ ề ệ ổ ấ ễ ị l .ộ 4.Khuynh h ng cung c p khoá dài mà nó ph i đ c thay đ iướ ấ ả ượ ổ th ng xuyên cho m i ng i trong khi v n duy trì c tính an toàn l nườ ọ ườ ẫ ả ẫ hi u qu chi phí s c n tr r t nhi u t i vi c phát tri n h m t mã cệ ả ẽ ả ở ấ ề ớ ệ ể ệ ậ ổ đi n.ể 3.4.2. Mà HOÁ PHI Đ I X NG KHOÁ CÔNG KHAIỐ Ứ • Đ nh nghĩaị Vào nh ng năm 1970 Diffie và Hellman đã phát minh ra m t h mãữ ộ ệ hoá m i đ c g i là ớ ượ ọ h mã hoá công khaiệ hay h mã hoá phi đ i x ng.ệ ố ứ Thu t toán mã hoá công khai là khác bi t so v i thu t toán đ i x ng.ậ ệ ớ ậ ố ứ Chúng đ c thi t k sao cho ượ ế ế khoá s d ng vào vi c mã hoá là khác soử ụ ệ v i ớ khoá gi i mã.ả H n n a khoá gi i mã không th tính toán đ c tơ ữ ả ể ượ ừ khoá mã hoá. Chúng đ c g i v i tên h th ng mã hoá công khai b i vìượ ọ ớ ệ ố ở khoá đ mã hoá có th công khai, m t ng i b t kỳ có th s d ngể ể ộ ườ ấ ể ử ụ khoá công khai đ mã hoá thông báo, nh ng ch m t vài ng i có đúngể ư ỉ ộ ườ khoá gi i mã thì m i có kh năng gi i mã. Trong nhi u h th ng, khoáả ớ ả ả ề ệ ố mã hoá g i là ọ khoá công khai (public key), khoá gi i mã th ng đ cả ườ ượ g i là ọ khoá riêng (private key). Trong hình v trên thì :ẽ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 14 Bản Mã Giải Bản Bản mã Khoá Hình 1. Mã hoá với khoá mã và khoá giải  khác nhau Khoá An toàn d li u và mã hoáữ ệ K1 không th trùng K2, ho c ể ặ K2 không th tính toán t K1.ể ừ Đ c tr ng n i b t c a h mã hoá công khai là c khoá công khaiặ ư ổ ậ ủ ệ ả (public key) và b n tin mã hoá (ciphertext) đ u có th g i đi trên m tả ề ể ử ộ kênh thông tin không an toàn. • N i ng d ng: S d ng ch y u trên các m ng công khai nhơ ứ ụ ử ụ ủ ế ạ ư Internet khi mà khoá chuy n t ng đ i khó khăn. ể ươ ố • Diffie và Hellman đã xác đinh rõ các đi u ki n c a m t h mãề ệ ủ ộ ệ hoá công khai nh sau:ư 1. Vi c tính toán ra c p khoá công khai Kệ ặ B và bí m t kậ B d a trên c sự ơ ở các đi u ki n ban đ u ph i đ c th c hi n m t cách d dàng, nghĩa làề ệ ầ ả ượ ự ệ ộ ễ th c hi n trong th i gian đa th c.ự ệ ờ ứ 2. Ng i g i A có đ c khoá công khai c a ng i nh n B và có b nườ ử ượ ủ ườ ậ ả tin P c n g i đi thì có th d dàng t o ra đ c b n mã C.ầ ử ể ễ ạ ượ ả C = EKB (P) = EB (P) Công vi c này cũng trong th i gian đa th c.ệ ờ ứ 3. Ng i nh n B khi nh n đ c b n tin mã hóa C v i khoá bí m t kườ ậ ậ ượ ả ớ ậ B thì có th gi i mã b n tin trong th i gian đa th c.ể ả ả ờ ứ P = DkB (C) = DB[EB(M)] 4. N u k đ ch bi t khoá công khai Kế ẻ ị ế B c g ng tính toán khoá bí m tố ắ ậ thì khi đó chúng ph i đ ng đ u v i tr ng h p nan gi i, tr ng h pả ươ ầ ớ ườ ợ ả ườ ợ này đòi h i nhi u yêu c u không kh thi v th i gian.ỏ ề ầ ả ề ờ 5. N u k đ ch bi t đ c c p (Kế ẻ ị ế ượ ặ B,C) và c g ng tính toán ra b n rõ Pố ắ ả thì gi i quy t bài toán khó v i s phép th là vô cùng l n, do đó khôngả ế ớ ố ử ớ kh thi. ả 3.5. CÁC CÁCH PHÂN TÍCH Mà Các thu t toán cho ph n l n các h m t mã là n i ti ng nênậ ầ ớ ệ ậ ổ ế chúng ta gi s r ng nh ng k phân tích mã đã có thu t toán trong tayả ử ằ ữ ẻ ậ khi b t đ u t n công. Trong ph n l n các h m t mã, thu t toán đắ ầ ấ ầ ớ ệ ậ ậ ể phân ph i cho t t c ng i s d ng và s c m nh c a h th ng n mố ấ ả ườ ử ụ ứ ạ ủ ệ ố ằ trong khoá cũng nh ph thu c vào thu t toán mã hoá d li u t t như ụ ộ ậ ữ ệ ố ư Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 15 An toàn d li u và mã hoáữ ệ th nào. Và đ dài c a khoá mã quy t đ nh b n mã k t qu đ c mãế ộ ủ ế ị ả ế ả ượ t t nh th nào và s b o v ch ng l i các cu c t n công brute-force.ố ư ế ẽ ả ệ ố ạ ộ ấ T n công brute-force là cách trong đó m i khoá có th đ c th dùngấ ọ ể ượ ử đ gi i mã.ể ả Nhi u nhà vi t m t mã tin r ng các cu c t n công brute-forceề ế ậ ằ ộ ấ không th th c hi n đ c khi khoá dài đ c s d ng, th m chí khi khể ự ệ ượ ượ ử ụ ậ ả năng c a máy tính đang lên. T n công brute-force đ i v i b n mã ph iủ ấ ố ớ ả ả mã hoá v i m t khoá l n (trên 100 bít) có th m t hàng tri u ho c hàngớ ộ ớ ể ấ ệ ặ t năm ngay c khi v i m ng máy tính m nh h n n a vi c thêm m t bítỉ ả ớ ạ ạ ơ ữ ệ ộ đ n có th làm tăng g p đôi giá c a vi c phân tích b ng brute-force.ơ ể ấ ủ ệ ằ Tuy nhiên v n t n t i m t đi m y u trong h th ng tr m t vàiẫ ồ ạ ộ ể ế ệ ố ừ ộ khoá, làm gi m s các khoá c n đ c ki m tra. Ví d , k phân tích mãả ố ầ ượ ể ụ ẻ có th khám phá ra r ng m t thu t toán sinh ra các s ng u nhiênể ằ ộ ậ ố ẫ nh ng th c t có m t vài m u đ c l p l i. Đi m y u này c a hư ự ế ộ ẫ ượ ặ ạ ể ế ủ ệ th ng có th cung c p m t con đ ng đ khám phá h th ng.ố ể ấ ộ ườ ể ệ ố Có m t vài ph ng pháp chung đ phân tích, d i đây là danhộ ươ ể ướ sách theo th t kh năng c a t ng ph ng pháp. M i ph ng phápứ ự ả ủ ừ ươ ỗ ươ trong s chúng gi s r ng k phân tích mã hoàn toàn có hi u bi t vố ả ử ằ ẻ ể ế ề thu t toán mã hoá đ c s d ng.ậ ượ ử ụ 1. Ch có b n mã.ỉ ả Trong tr ng h p này, ng i phân tích ch có m tườ ợ ườ ỉ ộ vài b n tin c a b n mã, t t c trong s chúng đ u đã đ c mã hoá vàả ủ ả ấ ả ố ề ượ cùng s d ng chung m t thu t toán. Công vi c c a ng i phân tích làử ụ ộ ậ ệ ủ ườ tìm l i đ c b n rõ c a nhi u b n mã có th ho c t t h n n a là suyạ ượ ả ủ ề ả ể ặ ố ơ ữ lu n ra đ c khoá s d ng mã hoá, và s d ng đ gi i mã nh ng b nậ ượ ử ụ ử ụ ể ả ữ ả mã khác v i cùng khoá này.ớ Gi thi t : Cả ế 1 = Ek(P1), C2= Ek(P2), . . .Ci = Ek(Pi) Suy lu n : M i Pậ ỗ 1,P2, . . Pi, k ho c thu t toán k t lu n Pặ ậ ế ậ i+1 t Cừ i+1 = Ek(Pi+1) 2. Bi t b n rõ.ế ả Ng i phân tích không ch truy c p đ c m t vài b nườ ỉ ậ ượ ộ ả mã m t khác còn bi t đ c b n rõ. Công vi c là suy lu n ra khoá đ sặ ế ượ ả ệ ậ ể ử d ng gi i mã ho c thu t toán gi i mã đ gi i mã cho b t kỳ b n mãụ ả ặ ậ ả ể ả ấ ả nào khác v i cùng khoá nh v y.ớ ư ậ Gi thi t : Pả ế 1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi) Suy lu n : M i k ho c thu t toán k t lu n Pậ ỗ ặ ậ ế ậ i+1 t Cừ i+1 = Ek(Pi+1) 3. L a ch n b n rõ.ự ọ ả Ng i phân tích không ch truy c p đ c b n mãườ ỉ ậ ượ ả và k t h p b n rõ cho m t vài b n tin, nh ng m t khác l a ch n b nế ợ ả ộ ả ư ặ ự ọ ả rõ đã mã hoá. Ph ng pháp này t ra có kh năng h n ph ng phápươ ỏ ả ơ ươ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 16 An toàn d li u và mã hoáữ ệ bi t b n rõế ả b i vì ng i phân tích có th ch n c th kh i b n rõ choở ườ ể ọ ụ ể ố ả mã hoá, m t đi u khác có th là s n l ng thông tin v khoá nhi uộ ề ể ả ượ ề ề h n.ơ Gi thi t : Pả ế 1, C1 = Ek(P1), P2, C2= Ek(P2), . . . Pi, Ci = Ek(Pi) t i đâyạ ng i phân tích ch n Pườ ọ 1, P2,. . . Pi Suy lu n : M i k ho c thu t toán k t lu n Pậ ỗ ặ ậ ế ậ i+1 t Cừ i+1 = Ek(Pi+1) 4. L a ch n b n rõ thích h p.ự ọ ả ợ Đây là tr ng h p đ c bi t c a l aườ ợ ặ ệ ủ ự ch n b n rõ. Không ch có th l a ch n b n rõ đã mã hoá, nh ng họ ả ỉ ể ự ọ ả ư ọ còn có th s a đ i s l a ch n c b n k t qu c a s mã hoá l nể ử ổ ự ự ọ ơ ả ế ả ủ ự ầ tr c. Trong tr ng l a ch n b n mã ng i phân tích có th đã ch nướ ườ ự ọ ả ườ ể ọ m t kh i l n b n rõ đã mã hoá, nh ng trong tr ng h p này có thộ ố ớ ả ư ườ ợ ể ch n m t kh i nh h n và ch n căn c khác trên k t qu c a l n đ uọ ộ ố ỏ ơ ọ ứ ế ả ủ ầ ầ tiên. Ví d t t nh t v tr ng h p bi t b n rõ là nh ng file đ c t oụ ố ấ ề ườ ợ ế ả ữ ượ ạ ra b i các t khác nhau trong đó ch a các mã đ nh d ng đ c n vàở ừ ứ ị ạ ượ ẩ header file. Các tài li u cũng ch a tên công ty và đ a ch , b n quy n, vàệ ứ ị ỉ ả ề nhi u thông tin khác mà các nhà phân tích có th l y đ c m t cách dề ể ấ ượ ộ ễ dàng. Th c t là, r t nhi u tài li u đ c s d ng trong th ng m iự ế ấ ề ệ ượ ử ụ ươ ạ đi n t có header chu n đ c s d ng đ đ nh danh tài li u cho cácệ ử ẩ ượ ử ụ ể ị ệ máy tính khác. Các nhà phân tích có th tìm ra khoá b ng vi c phân tíchể ằ ệ thu t toán đã mã b n rõ đã bi t nh th nào.ậ ả ế ư ế D i đây là m t vài k thu t đ c các nhà phân tích đ t n côngướ ộ ỹ ậ ượ ể ấ b n mã.ả • Differential cryptanalysis; k thu t này s d ng m t quá trìnhỹ ậ ử ụ ộ l p đ c l ng mã đ c t o ra s d ng m t thu t toán l pặ ể ướ ượ ượ ạ ử ụ ộ ậ ặ kh i (nh DES). Liên k t b n rõ đ c mã hoá d i cùng m tố ư ế ả ượ ướ ộ khoá. S khác bi t đ c phân tích và các khoá có th đ c xácự ệ ượ ể ượ đ nh thông qua s các l n l p. K thu t này đ c s d ngị ố ầ ặ ỹ ậ ượ ử ụ thành công ch ng l i DES và FEAL-4.ố ạ • Linear cryptanalysis: k thu t này cũng đ c s d ng thànhỹ ậ ượ ử ụ công đ ch ng l i DES và FEAL-4. Các c p b n rõ và b n mãể ố ạ ặ ả ả k t qu đ c phân tích và m t k thu t x p x tuy n tính đ cế ả ượ ộ ỹ ậ ấ ỉ ế ượ s d ng đ xác đ nh ho t đ ng c a mã kh i.ử ụ ể ị ạ ộ ủ ố • Algebraic attacks:ký thu t này khám phá c u trúc toán h cậ ấ ọ trong các m t mã kh i. N u c u trúc t n t i thì vi c mã hoáậ ố ế ấ ồ ạ ệ đ n v i m t khoá có th sinh ra các k t qu t ng t nh vi cơ ớ ộ ể ế ả ươ ự ư ệ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 17 An toàn d li u và mã hoáữ ệ mã hoá đôi v i hai khoá khác nhau. K phân tích s có đ c uớ ẻ ẽ ượ ư th y u đi m này.ế ở ế ể Nói chung nh ng nhà phân tích mã c n có th i gian và tài nguyên.ữ ầ ờ Đi u này làm cho các nhà phân tích g p khó khăn nh t là khi các thu tề ặ ấ ậ toán và ký thu t mã hoá t t h n nh các ti n b k thu t.ậ ố ơ ờ ế ộ ỹ ậ Dù r ng các cu c t n công DES là thành công nh ng các cu cằ ộ ấ ư ộ t n công này không d dàng và r . Ph ng pháp nhanh nh t là t n côngấ ễ ẻ ươ ấ ấ brute-force đã m t 3.5 gi trên máy tính hàng tri u đôla. Differentialấ ờ ệ cryptanalysis đ c s d ng đ t n công, trong đó 247 l n mã đ cượ ử ụ ể ấ ầ ượ th c hi n trên m t b n rõ đ c ch n, cu c t n công quá khó s khôngự ệ ộ ả ượ ọ ộ ấ ẽ đ c đ c p trong th c t . Trong m t cu c t n công khácượ ề ậ ự ế ộ ộ ấ Linear cryptanalysis đ c dùng đ tìm ra khoá DES trong 50 ngày, s d ng 12ượ ể ử ụ computer workstation. 4. M T S THU T TOÁN Mà HOÁ C B NỘ Ố Ậ Ơ Ả 4.1. CHU N Mà HOÁ D LI U DESẨ Ữ Ệ DES là thu t toán mã hoá kh i (block algrithm), nó mã hoá m tậ ố ộ kh i d li u 64 bíts. M t kh i b n rõ 64 bít đ a vào vào th c hi n, sauố ữ ệ ộ ố ả ư ự ệ khi mã hoá d li u ra là m t kh i b n mã 64 bít. C mã hoá và gi i mãữ ệ ộ ố ả ả ả đ u s d ng cùng m t thu t toán và khoá.ề ử ụ ộ ậ Khoá mã có đ dài 64 bít, trong đó có 8 bít ch n l đ c s d ngộ ẵ ẻ ượ ử ụ đ ki m soát l i. Các bít ch n l n m các v trí 8, 16, 24, ... , 64. T cể ể ỗ ẵ ẻ ằ ở ị ứ là c 8 bít thì có 1 bít ki m soát l i, bít này qui đ nh s bít có giá tr “1”ứ ể ỗ ị ố ị c a kh i 8 bít đó là ch n hay l .ủ ố ẵ ẻ N n t ng đ xây d ng kh i c a DES là s k t h p đ n gi n c aề ả ể ự ố ủ ự ế ợ ơ ả ủ các k thu t thay th và hoán v b n rõ d a trên khoá, đó là các vòngỹ ậ ế ị ả ự l p. DES s d ng 16 vòng l p áp d ng cùng m t ki u k t h p các kặ ử ụ ặ ụ ộ ể ế ợ ỹ thu t trên kh i b n rõ (Hình 1).ậ ố ả Thu t toán ch s d ng các phép toán s h c và logic thôngậ ỉ ử ụ ố ọ th ng trên các s 64 bít, vì v y nó d dàng th c hi n vào nh ng nămườ ố ậ ễ ự ệ ữ 1970 trong đi u ki n v công ngh ph n c ng lúc b y gi . Ban đ u,ề ệ ề ệ ầ ứ ấ ờ ầ s th c hi n các ph n m m ki u này r t thô s , nh ng hi n t i thìự ự ệ ầ ề ể ấ ơ ư ệ ạ vi c đó đã t t h n, và v i đ c tính l p đi l p l i c a thu t toán đã t oệ ố ơ ớ ặ ặ ặ ạ ủ ậ ạ nên ý t ng s d ng chíp v i m c đích đ c bi t này.ưở ử ụ ớ ụ ặ ệ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 18 An toàn d li u và mã hoáữ ệ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 19 K 16 L 15 =R 14 R15=L14⊕ƒ(R14,K15) Plaintext I P L 0 R 0 L 1 =R 0 R1=L0⊕ƒ(R0,K1) ƒ L 2 =R 1 R2=L1⊕ƒ(R1,K2) ƒ R 16 =L 15⊕ƒ(R15,K16 L16=R15 ƒ K 1 K 2 Ciphertext IP ­1 Hình 2. DES An toàn d li u và mã hoáữ ệ 4.1.1. MÔ T THU T TOÁNẢ Ậ DES th c hi n trên t ng kh i 64 bíts c a b n rõ. Sau khi th cự ệ ừ ố ủ ả ự hi n hoán v kh i đ u, kh i d li u đ c chia làm hai n a trái và ph i,ệ ị ở ầ ố ữ ệ ượ ử ả m i n a 32 bít. Ti p đó, có 16 vòng l p gi ng h t nhau đ c th cỗ ử ế ặ ố ệ ượ ự hi n, đ c g i là các hàm ệ ượ ọ ƒ, trong đó d li u đ c k t h p v i khoá.ữ ệ ượ ế ợ ớ Sau 16 vòng l p, hai n a trái và ph i đ c k t h p và hoán v cu iặ ử ả ượ ế ợ ị ố cùng (hoán v ng c) s k t thúc thu t toán.ị ượ ẽ ế ậ M i vòng l p c a DES th c hi n theo các b c sau (Hình 2):ỗ ặ ủ ự ệ ướ 1. Kh i b n rõ 64 bít đ c hoán v (hoán v kh i đ u) đ thay đ i thố ả ượ ị ị ở ầ ể ổ ứ t c a các bít.ự ủ 2. Ti p theo, b n rõ đ c chia làm hai n a trái và ph i, m i n a 32 bít.ế ả ượ ử ả ỗ ử 3. Khoá đ c chia làm hai n a, m i n a 28 bít.ượ ử ỗ ử 4. Các n a c a khoá đ c d ch trái, s bít đ c d ch 1 hay hai tuỳử ủ ượ ị ố ượ ị thu c vào vòng đó. Sau các n a đó đ c ghép l i, hoán v và l a ch nộ ử ượ ạ ị ự ọ ra 48 bít. 5. Kh i 32 bít b n rõ bên ph i đ c m r ng thành kh i 48 bít đ nóố ả ả ượ ở ộ ố ể có th XOR đ c v i 48 bít khoá. M t phép hoán v khác cũng đ cể ượ ớ ộ ị ượ th c hi n trong b c này.ự ệ ướ 6. K t qu c a b c 3 và 5 (b n rõ và khoá) đ c XOR v i nhau.ế ả ủ ướ ả ượ ớ 7. K t qu c a b c 6 đ c chuy n thành 32 bít b ng cách s d ngế ả ủ ướ ượ ể ằ ử ụ m t hàm thay th và l a ch n.ộ ế ự ọ 8. K t qu c a b c 7 đ c XOR v i n a trái 32 bít c a kh i b n rõế ả ủ ướ ượ ớ ử ủ ố ả 64 bít đã đ c t o ra b c 2.ượ ạ ở ướ 9. K t qu c a b c 8 tr thành n a ph i m i và n a ph i cũ đ cế ả ủ ướ ở ử ả ớ ử ả ượ t o b c 2 tr thành n a trái m i.ạ ở ướ ở ử ớ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 20 An toàn d li u và mã hoáữ ệ N u Bế i là k t qu c a vòng th i, Lế ả ủ ứ i và Ri là hai n a trái và ph iử ả c a Bủ i, Ki là khoá 48 bíts c a vòng th i, và ủ ứ ƒ là hàm th c hi n thay th ,ự ệ ế hoán v và XOR v i khoá, ta có bi u di n c a m t vòng s nh sau:ị ớ ể ễ ủ ộ ẽ ư Li=Ri-1 Ri=Li-1 XOR ƒ(Ri-1,Ki) 4.1.2. HOÁN V KH I Đ U (THE INITIAL PERMUTATION)Ị Ở Ầ Hoán v kh i đ u đ i ch kh i d li u vào, s hoán đ c mô tị ở ầ ổ ỗ ố ữ ệ ự ượ ả trong B ng 1. B ng này, và t t c các b ng khác sau này, đ c đ c tả ả ấ ả ả ượ ọ ừ trái qua ph i, t trên xu ng d i. Ví d , hoán v kh i đ u chuy n bít 1ả ừ ố ướ ụ ị ở ầ ể thành bít 58, bít 2 thành bít 50, bít 3 thành bít 42, ... B ng 1. Hoán v kh i đ u.ả ị ở ầ 58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 4 62 54 46 38 30 22 14 6 64 56 48 40 32 24 16 8 57 49 41 33 25 17 9 1 59 51 43 35 27 19 11 3 61 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 21 Khoá 28 bíts               28 bíts Dịch 28 bíts Dịch 28 bíts 56 bíts Hoán vị Chọn  48 bíts R i­1 32 bíts Mở rộng Hoán vị 48 bíts Hộp S Thay thế Lựa chọn 32 bíts Hộp P Hoán vị R i L i L i­1 32 bíts Hình 3. Một vòng lặp  DES An toàn d li u và mã hoáữ ệ Hoán v kh i đ u và t ng ng là hoán v cu i cùng không làm nhị ở ầ ươ ứ ị ố ả h ng đ n s an toàn c a DES. ưở ế ự ủ 4.1.3. KHOÁ CHUY N Đ I (THE KEY TRANSFORMATION)Ể Ổ Đ u tiên, khoá 64 bít đ c gi m xu ng thành m t khoá 56 bítầ ượ ả ố ộ b ng cách b qua 8 bít ch n l . S lo i b đ c th c hi n theo B ngằ ỏ ẵ ẻ ự ạ ỏ ượ ự ệ ả 2. B ng 2. Khoá chuy n đ iả ể ổ 57 49 41 33 25 17 9 1 58 50 42 34 26 18 10 2 59 51 43 35 27 19 11 3 60 52 44 36 63 55 47 39 31 23 15 7 62 54 46 38 30 22 14 6 61 53 45 37 29 21 13 5 28 20 12 4 Các bít ch n l này có th đ c s d ng đ đ m b o r ngẵ ẻ ể ượ ử ụ ể ả ả ằ không có l i nào x y ra khi đ a khoá vào. Sau khi khoá 56 bít đ cỗ ả ư ượ trích ra, m t khoá khác 48 bít đ c sinh ra cho m i vòng c a DES.ộ ượ ỗ ủ Nh ng khoá này, kữ i, đ c xác đ nh b ng cách:ượ ị ằ Đ u tiên, khoá 56 bít đ c chia làm hai ph n m i ph n 28 bít.ầ ượ ầ ỗ ầ Sau đó, các ph n này đ c d ch trái m t ho c hai bít, ph thu c vàoầ ượ ị ộ ặ ụ ộ vòng đó. S bít đ c d ch đ c cho trong B ng 3.ố ượ ị ượ ả B ng 3. ả Vòng 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 S bít d chố ị 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1 Sau khi đ c d ch, 48 bít đ c l a ch n ra t 56 bít. B i vì sượ ị ượ ự ọ ừ ở ự th c hi n này đ i ch th t các bít nh là s l a ch n m t t p conự ệ ổ ỗ ứ ự ư ự ự ọ ộ ậ các bít, nó đ c g i là hoán v nén (compression permutation), ho cượ ọ ị ặ hoán v l a ch n (permuted choice). S th c hi n này cung c p m t t pị ự ọ ự ự ệ ấ ộ ậ h p các bít cùng c v i đ u ra c a hoán v m r ng. B ng 4 đ nh nghĩaợ ỡ ớ ầ ủ ị ở ộ ả ị hoán v nén (cũng g i là hoán v l a ch n). Ví d , bít v trí 33 c aị ọ ị ự ọ ụ ở ị ủ khoá d ch đ c chuy n t i v trí 35 c a đ u ra, và bít v trí 18 c aị ượ ể ớ ị ủ ầ ở ị ủ khoá d ch b b qua.ị ị ỏ B ng 4. Hoán v nénả ị 14 17 11 24 1 5 3 28 15 6 21 10 23 19 12 4 26 8 16 7 27 20 13 2 41 52 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 22 An toàn d li u và mã hoáữ ệ 4.1.4. HOÁN V M R NG (EXPANSION PERMUTATION)Ị Ở Ộ thao tác này, n a ph i c a d li u, RỞ ử ả ủ ữ ệ i, đ c m r ng t 32ượ ở ộ ừ bíts thành 48 bíts. B i vì s th c hi n này thay đ i th t c a các bítở ự ự ệ ổ ứ ự ủ b ng cách l p l i m t bít nào đó, nó đ c hi u nh là m t s hoán vằ ặ ạ ộ ượ ể ư ộ ự ị m r ng.ở ộ Hình 3 đ nh nghĩa hoán v m r ng - h p E. V i m i b 4 bít c aị ị ở ộ ộ ớ ỗ ộ ủ kh i d li u vào, bít đ u tiên và bít th t t ng ng v i 2 bít c a kh iố ữ ệ ầ ứ ư ươ ứ ớ ủ ố d li u ra, trong khi bít th hai và bít th ba t ng ng v i m t bít c aữ ệ ứ ứ ươ ứ ớ ộ ủ kh i d li u ra. B ng 5 mô t v trí c a các bít trong kh i d li u raố ữ ệ ả ả ị ủ ố ữ ệ theo kh i d li u vào. Ví d , bít v trí th 3 c a kh i d li u vàoố ữ ệ ụ ở ị ứ ủ ố ữ ệ đ c chuy n t i v trí th 4 trong kh i d li u ra. Và bít v trí 21 c aượ ể ớ ị ứ ố ữ ệ ở ị ủ kh i d li u vào đ c chuy n t i v trí 30 và 32 trong kh i d li u ra.ố ữ ệ ượ ể ớ ị ố ữ ệ B ng 5. H p Eả ộ 32 1 2 3 4 5 4 5 6 7 8 9 8 9 10 11 12 12 12 13 14 15 16 17 16 17 18 19 20 21 20 21 22 23 24 25 24 25 26 27 28 29 28 29 30 31 32 1 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 23     1    2  3   4                   5    6   7   8                   9   10 11  12                13 14  15 16  1   2   3    4   5   6         7   8   9  10  11 12       13  14 15  16 17 18      19  20  21 22 23 24 48 32 Hình 3. Hoán vị mở  An toàn d li u và mã hoáữ ệ M c dù kh i d li u ra r ng h n kh i d li u vào, nh ng m tặ ố ữ ệ ộ ơ ố ữ ệ ư ộ kh i d li u vào ch có duy nh t m t kh i d li u ra.ố ữ ệ ỉ ấ ộ ố ữ ệ 4.1.5. H P THAY TH S (S-BOX SUBSTITUTION)Ộ Ế Sau khi khoá đ c nén, nó đ c XOR v i kh i m r ng, 48 bítượ ượ ớ ố ở ộ k t qu đ c chuy n sang giai đo n thay th . S thay th đ c th cế ả ượ ể ạ ế ự ế ượ ự hi n b i 8 h p thay th (substitution boxes, S-boxes). Kh i 48 bít đ cệ ở ộ ế ố ượ chia thành 8 kh i 6 bít. M i kh i đ c th c hi n trên m t h p S riêngố ỗ ố ượ ự ệ ộ ộ bi t (separate S-box): kh i 1 đ c th c hi n trên h p S 1, kh i 2 đ cệ ố ượ ự ệ ộ ố ượ th c hi n trên h p S 2, v.v...ự ệ ộ M i h p S là m t b ng g m 4 hàng và 16 c t. M i ph n t c aỗ ộ ộ ả ồ ộ ỗ ầ ử ủ h p là m t s 4 bít. Sáu bít vào h p S s xác đ nh s hàng và s c t độ ộ ố ộ ẽ ị ố ố ộ ể tìm k t qu ra. B ng 6 bi u di n 8 h p S.ế ả ả ể ễ ộ Nh ng bít vào xác đ nh m t ph n t trong h p S m t cách riêngữ ị ộ ầ ử ộ ộ bi t. Sáu bít vào c a h p đ c ký hi u là b1, b2, b3, b4, b5 và b6. Bítệ ủ ộ ượ ệ b1 và b6 đ c k t h p thành m t s 2 bít, nh n giá tr t 0 đ n 3,ượ ế ợ ộ ố ậ ị ừ ế t ng ng v i m t hàng trong b ng. B n bít gi a, t b2 t i b5, đ cươ ứ ớ ộ ả ố ở ữ ừ ớ ượ k t h p thành m t s 4 bít, nh n giá tr t 0 đ n 15, t ng ng v i m tế ợ ộ ố ậ ị ừ ế ươ ứ ớ ộ c t trong b ng.ộ ả Ví d , gi s ta đ a gi li u vào h p S th 6 (bít 31 t i bít 36ụ ả ử ư ữ ệ ộ ứ ớ c a hàm XOR) là 110010. Bít đ u tiên và bít cu i cùng k t h p thànhủ ầ ố ế ợ 10, t ng ng v i hàng th 3 c a h p S th 6. B n bít gi a k t h pươ ứ ớ ứ ủ ộ ứ ố ữ ế ợ thành 1001, t ng ng v i c t th 10 c a h p S th 6. Ph n t hàng 3ươ ứ ớ ộ ứ ủ ộ ứ ầ ử c t 9 c a h p S th 6 là 0. Giá tr 0000 đ c thay th cho 110010.ộ ủ ộ ứ ị ượ ế Đây là m t b c khó hi u trong thu t toán. T t c các b c khácộ ướ ể ậ ấ ả ướ đ u đ n gi n và d phân tích. Các h p S thì không, chúng đem l i choề ơ ả ễ ộ ạ DES t t c s an toàn.ấ ả ự K t qu c a s thay th là 8 kh i 4 bít đ c sinh ra, và chúngế ả ủ ự ế ố ượ đ c k t h p l i thành m t kh i 32 bít. Kh i này đ c chuy n t iượ ế ợ ạ ộ ố ố ượ ể ớ b c ti p theo: h p hoán v P (P-box permutation).ướ ế ộ ị B ng 6. H p Sả ộ H p S th nh tộ ứ ấ 14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7 0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8 4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0 15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 24 An toàn d li u và mã hoáữ ệ H p S th 2ộ ứ 15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10 3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5 0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15 13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9 H p S th 3ộ ứ 10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8 13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1 13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7 1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12 H p S th 4ộ ứ 7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15 13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9 10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4 3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14 H p S th 5ộ ứ 2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9 14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6 4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14 11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3 H p S th 6ộ ứ 12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11 10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8 9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6 4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13 H p S th 7ộ ứ 4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1 13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6 1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 25 An toàn d li u và mã hoáữ ệ 6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12 H p S th 8ộ ứ 13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7 1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2 7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8 2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11 4.1.6. H P HOÁN V P (THE P-BOX PERMUTATION)Ộ Ị Kh i d li u 32 bít ra c a h p thay th S đ c hoán v ti p trongố ữ ệ ủ ộ ế ượ ị ế h p P. S hoán v này ánh x m i bít d li u vào t i m t v trí trongộ ự ị ạ ỗ ữ ệ ớ ộ ị kh i d li u ra; không bít nào đ c s d ng hai l n và cũng không bítố ữ ệ ượ ử ụ ầ nào b b qua. Nó đ c g i là hoán v tr c ti p (straight permutation).ị ỏ ượ ọ ị ự ế B ng 7 cho ta v trí c a m i bít c n chuy n. Ví d , bít 4 chuy n t i bítả ị ủ ỗ ầ ể ụ ể ớ 21, trong khi bít 32 chuy n t i bít 4.ể ớ B ng 7. H p hoán v Pả ộ ị 16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 10 2 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25 Cu i cùng, k t qu c a h p hoá v P đ c XOR v i n a trái c aố ế ả ủ ộ ị ượ ớ ử ủ kh i 64 bít kh i đ u. Sau đó, n a trái và ph i đ c chuy n đ i choố ở ầ ử ả ượ ể ổ nhau và m t vòng m i đ c ti p t c.ộ ớ ượ ế ụ 4.1.7. HOÁN V CU I CÙNGỊ Ố Hoán v cu i cùng là ngh ch đ o c a hoán v kh i đ u, và nóị ố ị ả ủ ị ở ầ đ c mô t trong B ng 8. Chú ý r ng n a trái và n a ph i không đ cượ ả ả ằ ử ử ả ượ tráo đ i sau vòng cu i cùng c a DES; thay vào đó kh i n i Rổ ố ủ ố ố 16L16 đ cượ s d ng nh kh i d li u ra c a hoán v cu i cùng. Không có gì đ a raử ụ ư ố ữ ệ ủ ị ố ư đây; tráo đ i các n a và d ch vòng hoán v s cho chính xác nh k tở ổ ử ị ị ẽ ư ế qu tr c; đi u đó có nghĩa là thu t toán có th đ c s d ng cho cả ướ ề ậ ể ượ ử ụ ả mã hoá và gi i mã.ả B ng 8. Hoán v cu i cùngả ị ố 40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 31 38 6 46 14 54 22 62 30 37 5 45 13 53 21 61 29 36 4 44 12 52 20 60 28 35 3 43 11 51 19 59 27 34 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 26 An toàn d li u và mã hoáữ ệ 4.1.8. GI I Mà DESẢ Sau khi thay đ i, hoán v , XOR, và d ch vòng, b n có th nghĩổ ị ị ạ ể r ng thu t toán gi i mã hoàn toàn khác và ph c t p, khó hi u nh thu tằ ậ ả ứ ạ ể ư ậ toán mã hoá. Trái l i, s ho t đ ng đ c l a ch n đ đ a ra m t đ cạ ự ạ ộ ượ ự ọ ể ư ộ ặ tính h u ích: cùng thu t toán làm vi c cho c mã hoá và gi i mã.ữ ậ ệ ả ả V i DES, có th s d ng cùng ch c năng đ gi i mã ho c mãớ ể ử ụ ứ ể ả ặ hoá m t kh i. Ch có s khác nhau đó là các khoá ph i đ c s d ngộ ố ỉ ự ả ượ ử ụ theo th t ng c l i. Nghĩa là, n u các khoá mã hoá cho m i vòng làứ ự ượ ạ ế ỗ k1, k2, k3 , ... , k15, k16 thì các khoá gi i là kả 16, k15, ... , k3, k2, k1. Thu t toánậ dùng đ sinh khoá đ c s d ng cho m i vòng theo ki u vòng quanh.ể ượ ử ụ ỗ ể Khoá đ c d ch ph i, và s nh ng v trí đ c d ch đ c tính t cu iượ ị ả ố ở ữ ị ượ ị ượ ừ ố c a b ng lên, thay vì t trên xu ng.ủ ả ừ ố 4.1.9. PH N C NG VÀ PH N M M TH C HI N DESẦ Ứ Ầ Ề Ự Ệ M t ph n m m DES trên máy tính l n IBM 3090 có th th cộ ầ ề ớ ể ự hi n 32.000 phép tính mã hoá trong m t giây. V i máy vi tính thì t c đệ ộ ớ ố ộ th p h n. B ng 9 đ a ra k t qu th c t và s đánh giá cho b x lýấ ơ ả ư ế ả ự ế ự ộ ử c a Intel và Motorola.ủ B ng 9. T c đ c a DES trên các b vi x lý khác nhauả ố ộ ủ ộ ử T c đố ộ BUS Kh i DESố B vi x lýộ ử ( Mhz ) ( bíts ) (/giây ) 8088 4.7 8 370 68000 7.6 16 900 80286 6.0 16 1.1000 68020 16.0 32 3.500 68030 16.0 32 3.900 80286 25.0 16 5.000 68030 50.0 32 9.600 68040 25.0 32 16.000 68040 40.0 32 23..200 80486 33.0 32 40.600 Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 27 An toàn d li u và mã hoáữ ệ (Chú ý : Ph n m m này đ c vi t trên C và Assembler, và có th muaầ ề ượ ế ể đ c t Utimaco-Belgium, Interleuvenlaan 62A, B-300 leuven, Belgium.ượ ừ C mã x p x 64K. ANSI C th c hi n ch m h n kho ng 20%.)ỡ ấ ỉ ự ệ ậ ơ ả 4.2. THU T TOÁN Mà HOÁ RSA (PUBLIC-KEY ALGORITHM)Ậ 4.2.1. KHÁI NI M H M T Mà RSA Ệ Ệ Ậ Khái ni m h m t mã RSA đã đ c ra đ i năm 1976 b i các tácệ ệ ậ ượ ờ ở gi R.Rivets, A.Shamir, và L.Adleman. H mã hoá này d a trên c sả ệ ự ơ ở c a hai bài toán :ủ + Bài toán Logarithm r i r c ( Discrete logarith)ờ ạ + Bài toán phân tích thành th a s .ừ ố Trong h mã hoá RSA các b n rõ, các b n mã và các khoá (publicệ ả ả key và private key) là thu c t p s nguyên Zộ ậ ố N = {1, . . . , N-1}. Trong đó t p Zậ N v i N=pớ × q là các s nguyên t khác nhau cùng v i phép c ng vàố ố ớ ộ phép nhân Modulo N t o ra modulo s h c N.ạ ố ọ Khoá mã hoá EKB là c p s nguyên (N,Kặ ố B) và khoá gi i mã Dả kb là c p s nguyên (N,kặ ố B), các s là r t l n, s N có th lên t i hàng trămố ấ ớ ố ể ớ ch s .ữ ố Các ph ng pháp mã hoá và gi i mã là r t d dàng. ươ ả ấ ễ Công vi c mã hoá là s bi n đ i b n rõ P (Plaintext) thành b nệ ự ế ổ ả ả mã C (Ciphertext) d a trên c p khoá công khai Kự ặ B và b n rõ P theo côngả th c sau đây :ứ C = EKB(P) = EB(P) = PKB (mod N) . (1) Công vi c gi i mã là s bi n đ i ng c l i b n mã C thành b nệ ả ự ế ổ ượ ạ ả ả rõ P d a trên c p khoá bí m t kự ặ ậ B , modulo N theo công th c sau : ứ P = DkB(C) = DB(C) = CkB (mod N) . (2) D th y r ng, b n rõ ban đ u c n đ c bi n đ i m t cách thíchễ ấ ằ ả ầ ầ ượ ế ổ ộ h p thành b n mã, sau đó đ có th tái t o l i b n rõ ban đ u t chínhợ ả ể ể ạ ạ ả ầ ừ b n mã đó :ả Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 28 An toàn d li u và mã hoáữ ệ P = DB(EB(P)) (3) Thay th (1) vào (2) ta có :ế (PKB)kB = P (mod N ) (4) Trong toán h c đã ch ng minh đ c r ng, n u N là s nguyên tọ ứ ượ ằ ế ố ố thì công th c (4) s có l i gi i khi và ch khi Kứ ẽ ờ ả ỉ B.kB = 1 (mod N-1), áp d ng thu t toán ta th y N=pụ ậ ấ × q v i p, q là s nguyên t , do v y (4) sớ ố ố ậ ẽ có l i gi i khi và ch khi :ờ ả ỉ KB.kB ≡ 1 (mod γ (N)) (5) trong đó γ (N) = LCM(p-1,q-1) . LCM (Lest Common Multiple) là b i s chung nh nh t.ộ ố ỏ ấ Nói m t cách khác, đ u tiên ng i nh n B l a ch n m t khoáộ ầ ườ ậ ự ọ ộ công khai KB m t cách ng u nhiên. Khi đó khoá bí m t kộ ẫ ậ B đ c tính raượ b ng công th c (5). Đi u này hoàn toàn tính đ c vì khi B bi t đ cằ ứ ề ượ ế ượ c p s nguyên t (p,q) thì s tính đ c ặ ố ố ẽ ượ γ (N). Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 29 Chọn p và q Tí nh N=p× q Tí nh γ ( N) Chọn khoá K B C = PKB (mod  N) P = CkB  ( mod N ) Chọn khoá  K B K B k B Bản  rõ P Bản mã   Bản rõ gốc  P An toàn d li u và mã hoáữ ệ S đ các b c th c hi n mã hoá theo thu t toán RSAơ ồ ướ ự ệ ậ 4.2.2. Đ AN TOÀN C A H RSA Ộ Ủ Ệ M t nh n đ nh chung là t t c các cu c t n công gi i mã đ uộ ậ ị ấ ả ộ ấ ả ề mang m c đích không t t. Trong ph n đ an toàn c a h mã hoá RSAụ ố ầ ộ ủ ệ s đ c p đ n m t vài ph ng th c t n công đi n hình c a k đ chẽ ề ậ ế ộ ươ ứ ấ ể ủ ẻ ị nh m gi i mã trong thu t toán này. ằ ả ậ Chúng ta xét đ n tr ng h p khi k đ ch nào đó bi t đ cế ườ ợ ẻ ị ế ượ modulo N, khoá công khai KB và b n tin mã hoá C, khi đó k đ ch s tìmả ẻ ị ẽ ra b n tin g c (Plaintext) nh th nào. Đ làm đ c đi u đó k đ chả ố ư ế ể ượ ề ẻ ị th ng t n vào h thóng m t mã b ng hai ph ng th c sau đây:ườ ấ ệ ậ ằ ươ ứ • Ph ng th c th nh t :ươ ứ ứ ấ Tr c tiên d a vào phân tích th a s modulo N. Ti p theo sauướ ự ừ ố ế chúng s tìm cách tính toán ra hai s nguyên t p và q, và có kh năngẽ ố ố ả thành công khi đó s tính đ c ẽ ượ λ(N) và khoá bí m t kậ B. Ta th y N c nấ ầ ph i là tích c a hai s nguyên t , vì n u N là tích c a hai s nguyên tả ủ ố ố ế ủ ố ố thì thu t toán phân tích th a s đ n gi n c n t i đa ậ ừ ố ơ ả ầ ố √N b c, b i vì cóướ ở m t s nguyên t nh h n ộ ố ố ỏ ơ √N. M t khác, n u N là tích c a n s nguyênặ ế ủ ố t , thì thu t toán phân tích th a s đ n gi n c n t i đa Nố ậ ừ ố ơ ả ầ ố 1/n b c. ướ M t thu t toán phân tích th a s có th thành ph c t p h n, choộ ậ ừ ố ể ứ ạ ơ phép phân tích m t s N ra thành th a s trong O(ộ ố ừ ố √P) b c, trong đó pướ là s chia nh nh t c a N, vi c ch n hai s nguyên t là cho thu t toánố ỏ ấ ủ ệ ọ ố ố ậ tăng hi u qu .ệ ả • Ph ng th c th hai :ươ ứ ứ Ph ng th c t n công th hai vào h mã hoá RSA là có th kh iươ ứ ấ ứ ệ ể ở đ u b ng cách gi i quy t tr ng h p thích h p c a bài toán logarit r iầ ằ ả ế ườ ợ ợ ủ ờ r c. Tr ng h p này k đ ch đã có trong tay b n mã C và khoá côngạ ườ ợ ẻ ị ả khai KB t c là có c p (Kứ ặ B, C) C hai ph ng th c t n công đ u c n m t sô b c c b n, đó làả ươ ứ ấ ề ầ ộ ướ ơ ả : O(exp √ lnNln(lnN)), trong đó N là s modulo.ố Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 30 An toàn d li u và mã hoáữ ệ 4.2.3. M T S TÍNH CH T C A H RSA Ộ Ố Ấ Ủ Ệ • Trong các h m t mã RSA, m t b n tin có th đ c mã hoá trongệ ậ ộ ả ể ượ th i gian tuy n tính.ờ ế Đ i v i các b n tin dài, đ dài c a các s đ c dùng cho cácố ớ ả ộ ủ ố ượ khoá có th đ c coi nh là h ng. T ng t nh v y, nâng m t s lênể ượ ư ằ ươ ự ư ậ ộ ố lu th a đ c th c hi n trong th i gian h ng, các s không đ c phépỹ ừ ượ ự ệ ờ ằ ố ượ dài h n m t đ dài h ng. Th c ra tham s này che d u nhi u chi ti tơ ộ ộ ằ ự ố ấ ề ế cài đ t có liên quan đ n vi c tính toán v i các con s dài, chi phí c aặ ế ệ ớ ố ủ các phép toán th c s là m t y u t ngăn c n s ph bi n ng d ngự ự ộ ế ố ả ự ổ ế ứ ụ c a ph ng pháp này. Ph n quan tr ng nh t c a vi c tính toán có liênủ ươ ầ ọ ấ ủ ệ quan đ n vi c mã hoá b n tin. Nh ng ch c ch n là s không có h mãế ệ ả ư ắ ắ ẽ ệ hoá nào h t n u không tính ra đ c các khoá c a chúng là các s l n.ế ế ượ ủ ố ớ • Các khoá cho h mã hoá RSA có th đ c t o ra mà không ph i tínhệ ể ượ ạ ả toán quá nhi u. ề M t l n n a, ta l i nói đ n các ph ng pháp ki m tra s nguyênộ ầ ữ ạ ế ươ ể ố t . M i s nguyên t l n có th đ c phát sinh b ng cách đ u tiên t oố ỗ ố ố ớ ể ượ ằ ầ ạ ra m t s ng u nhiên l n, sau đó ki m tra các s k ti p cho t i khi tìmộ ố ẫ ớ ể ố ế ế ớ đ c m t s nguyên t . M t ph ng pháp đ n gi n th c hi n m tượ ộ ố ố ộ ươ ơ ả ự ệ ộ phép tính trên m t con s ng u nhiên, v i xác su t 1/2 s ch ng minhộ ố ấ ớ ấ ẽ ứ r ng s đ c ki m tra không ph i nguyên t . B c cu i cùng là tính pằ ố ượ ể ả ố ướ ố d a vào thu t toán Euclid.ự ậ Nh ph n trên đã trình bày trong h mã hoá công khai thì khoáư ầ ệ gi i mã (private key) kả B và các th a s p,q là đ c gi bí m t và sừ ố ượ ữ ậ ự thành công c a ph ng pháp là tuỳ thu c vào k đ ch có kh năng tìmủ ươ ộ ẻ ị ả ra đ c giá tr c a kượ ị ủ B hay không n u cho tr c N và Kế ướ B. R t khó có thấ ể tìm ra đ c kượ B t Kừ B c n bi t v p và q, nh v y c n phân tích N raầ ế ề ư ậ ầ thành th a s đ tính p và q. Nh ng vi c phân tích ra th a s là m từ ố ể ư ệ ừ ố ộ vi c làm t n r t nhi u th i gian, v i k thu t hi n đ i ngày nay thì c nệ ố ấ ề ờ ớ ỹ ậ ệ ạ ầ t i hàng tri u năm đ phân tích m t s có 200 ch s ra th a s .ớ ệ ể ộ ố ữ ố ừ ố Đ an toàn c a thu t toán RSA d a trên c s nh ng khó khănộ ủ ậ ự ơ ở ữ c a vi c xác đ nh các th a s nguyên t c a m t s l n. B ng d iủ ệ ị ừ ố ố ủ ộ ố ớ ả ướ đây cho bi t các th i gian d đoán, gi s r ng m i phép toán th cế ờ ự ả ử ằ ỗ ự hi n trong m t micro giây.ệ ộ S các ch s trongố ữ ố s đ c phân tíchố ượ Th i gian phân tíchờ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 31 An toàn d li u và mã hoáữ ệ 50 4 giờ 75 104 giờ 100 74 năm 200 4.000.000 năm 300 5× 1015 năm 500 4× 1025 năm 4.3. THU T TOÁN Mà HOÁ BLOWFISHẬ Blowfish là h m t mã kh i 64-bit, khoá có đ dài có th thay đ iệ ậ ố ộ ể ổ đ c. Thu t toán bao g m hai ph n: ph n phát tri n khoá và ph n mãượ ậ ồ ầ ầ ể ầ hoá d li u. Phát tri n khoá chuy n m t khoá có đ dài l n nh t 448ữ ệ ể ể ộ ộ ớ ấ bit thành m t s m ng khoá con t ng c ng 4168 byte.ộ ố ả ổ ộ Mã hoá d li u th c hi n thông qua m ng Feistel 16 vòng. M iữ ệ ự ệ ạ ỗ vòng bao g m m t hoán v d a vào khoá, thay th d a vào khoá và d aồ ộ ị ự ế ự ự vào d li u. T t c các phép toán đ c dùng là phép XOR và phépữ ệ ấ ả ượ c ng trên các t 32-bit. Các thao tác thêm vào duy nh t là 4 m ng ch sộ ừ ấ ả ỉ ố đ ch đ n d li u m i vòng.ể ỉ ế ữ ệ ỗ 4.3.1. KHOÁ PHỤ Blowfish s d ng m t s l ng l n các khoá ph . Các khoá phử ụ ộ ố ượ ớ ụ ụ này ph i đ c tính toán tr c khi mã hay gi i mã d li u.ả ượ ướ ả ữ ệ • M ng P bao g m 18 khoá ph 32-bit: ả ồ ụ P1,P2,P3,...,P18. • Có 4 h p S 32-bit v i 256 đ u vào m i h p:ộ ớ ầ ỗ ộ S1,0, S1,1, ..., S1,255; S2,0, S2,1, ..., S2,255; S3,0, S3,1, ..., S3,255; S4,0, S4,1, ..., S4,255. Ph ng pháp chính xác đ c s d ng đ tính các khoá ph nàyươ ượ ử ụ ể ụ s đ c mô t ph n sau.ẽ ượ ả ở ầ 4.3.2. Mà HOÁ D LI UỮ Ệ Blowfish là m t m ng Feistel bao g m 16 vòng. Đ u vào là x,ộ ạ ồ ầ m t ph n t d li u 64-bit. ộ ầ ử ữ ệ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 32 An toàn d li u và mã hoáữ ệ • Chia x thành 2 ph n 32-bit: xL, xR.ầ • For i=1 to 16: xL=xL XOR Pi xR=F(xL) XOR xR Đ i ch xL và xRổ ỗ • Đ i ch xL và xR (t c là không đ i ch vòng cu i)ổ ỗ ứ ổ ỗ ố • xR=xR XOR P17 • xL=xL XOR P18 • K t h p xL và xR l iế ợ ạ Hàm F : Chia xL thành 4 ph n 8-bit: a, b, c và dầ F(xL) = ((S1,a + S2,b mod 232) XOR S3,c) + S4,d mod 232 Gi i mã hoàn toàn gi ng nh mã hoá tr vi c P1,P2,...,P18 đ cả ố ư ừ ệ ượ s d ng theo tr t t ng c l i.ử ụ ậ ự ượ ạ 4.3.3. TÍNH TOÁN CÁC KHOÁ PHỤ Các khoá ph đ c tính s d ng thu t toán Blowfish. Ph ngụ ượ ử ụ ậ ươ pháp chính xác nh sau:ư • Kh i t o m ng P đ u tiên và sau đó là 4 h p S theo th t v i m tở ạ ả ầ ộ ứ ự ớ ộ chu i c đ nh. Chu i này bao g m các s hexa(h 16) c a pi. Ví d : ỗ ố ị ỗ ồ ố ệ ủ ụ P1=0x243f6a88 P2=0x85a308d3 P3=0x13198a2e P4=0x03707344 • XOR P1 v i 32 bit đ u c a khoá, XOR P2 v i 32 bit th hai c aớ ầ ủ ớ ứ ủ khoá ti p t c cho t t c các bit c a khoá (có th lên t i P14). L p l iế ụ ấ ả ủ ể ớ ặ ạ theo vòng các bit khoá cho đ n khi toàn b m ng P đ c XOR v i cácế ộ ả ượ ớ bít khoá. (Đ i v i các khoá ng n có ít nh t m t khoá dài t ng ng; víố ớ ắ ấ ộ ươ ứ d : n u A là m t khoá 64-bit thì AA,AAA, v.v.., là các khoá t ngụ ế ộ ươ ng)ứ • Mã hoá m t chu i toàn 0 b ng thu t toán Blowfish s d ng các khoáộ ỗ ằ ậ ử ụ ph đã mô t trong b c (1) và b c (2).ụ ả ướ ướ • Thay th P1 và P2 b ng đ u ra c a b c (3).ế ằ ầ ủ ướ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 33 An toàn d li u và mã hoáữ ệ • Mã hoá đ u ra c a b c (3) dùng thu t toán Blowfish v i các khoáầ ủ ướ ậ ớ ph đã thay đ i.ụ ổ • Thay th P3 và P4 b ng đ u ra c a b c (5).ế ằ ầ ủ ướ • Ti p t c x lý, thay th t t c đ u vào c a m ng P, và sau đó là 4ế ụ ử ế ấ ả ầ ủ ả h p S theo th t , v i đ u ra thay đ i liên ti p c a thu t toán Blowfish.ộ ứ ự ớ ầ ổ ế ủ ậ T ng c ng c n có 521 l n l p đ sinh ra t t c các khoá ph . ổ ộ ầ ầ ặ ể ấ ả ụ Liên hi p Khoa h c S n xu t Công ngh Ph n m m (CSE)ệ ọ ả ấ ệ ầ ề 34

Các file đính kèm theo tài liệu này:

  • pdftailieu.pdf
Tài liệu liên quan