An toàn mạng máy tính - Bài 4: Mã hoá khoá công khai và quản lý khoá

pdf 52 trang phuongnguyen 2580
Bạn đang xem 20 trang mẫu của tài liệu "An toàn mạng máy tính - Bài 4: Mã hoá khoá công khai và quản lý khoá", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfan_toan_mang_may_tinh_bai_4_ma_hoa_khoa_cong_khai_va_quan_ly.pdf

Nội dung text: An toàn mạng máy tính - Bài 4: Mã hoá khoá công khai và quản lý khoá

  1. Trường Đại Học Công Nghệ Thông Tin Khoa Mạng Máy Tính và Truyền Thông ANAN TOTOÀÀNN MMẠẠNGNG MMÁÁYY TTÍÍNHNH ThS. Tô Nguyễn Nhật Quang
  2. NNỘỘII DUNGDUNG MÔNMÔN HHỌỌCC 1.1. TTổổngng quanquan vvềề anan ninhninh mmạạngng 2.2. CCáácc phphầầnn mmềềmm gâygây hhạạii 3.3. CCáácc gigiảảii thuthuậậtt mãmã hohoáá ddữữ liliệệuu 4.4. MãMã hohoáá khokhoáá côngcông khaikhai vvàà ququảảnn lýlý khokhoáá 5.5. ChChứứngng ththựựcc ddữữ liliệệuu 6.6. MMộộtt ssốố giaogiao ththứứcc bbảảoo mmậậtt mmạạngng 7.7. BBảảoo mmậậtt mmạạngng khôngkhông dâydây 8.8. BBảảoo mmậậtt mmạạngng vvàànhnh đđaiai 9.9. TTììmm kikiếếmm phpháátt hihiệệnn xâmxâm nhnhậậpp ATMMT - TNNQ 2
  3. BBÀÀII 44 MÃMÃ HOHOÁÁ KHOKHOÁÁ CÔNGCÔNG KHAIKHAI && QUQUẢẢNN LÝLÝ KHOKHOÁÁ
  4. MãMã hohoáá khokhoáá côngcông khaikhai vvàà ququảảnn lýlý khokhoáá 1.1. SSốố nguyênnguyên ttốố 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman 4.4. HHệệ RSARSA 5.5. QuQuảảnn lýlý khokhoáá 6.6. BBààii ttậậpp ATMMT - TNNQ 4
  5. 1.1. SSốố nguyênnguyên ttốố „ Giới thiệu – Bất kỳ số nguyên a > 1 đều có thể viết dưới dạng: a1 a2 a3 at a = p1 p2 p3 pt trong đó p1 < p2 < < pt là các số nguyên tố. Ví dụ: 85 = 5 x 17 91 = 7 x 13 1200 = 24 x 3 x 52 11011 = 7 x 112 x 13 ATMMT - TNNQ 5
  6. 1.1. SSốố nguyênnguyên ttốố „„ GiGiớớii thithiệệuu –– MMộộtt ssốố nguyênnguyên p>p> 11 llàà ssốố nguyênnguyên ttốố nnếếuu vvàà chchỉỉ nnếếuu ưướớcc duyduy nhnhấấtt ccủủaa nnóó llàà ±± 11 vvàà ±± p.p. –– SSốố nguyênnguyên ttốố đđóóngng vaivai tròtrò quanquan trtrọọngng trongtrong lýlý thuythuyếếtt ssốố vvàà trongtrong ccáácc kkỹỹ thuthuậậtt mãmã hohoáá khokhoáá côngcông khaikhai ththảảoo luluậậnn trongtrong chchươươngng nnàày.y. –– BBảảngng ddưướớii đđâyây trtrììnhnh bbààyy ccáácc ssốố nguyênnguyên ttốố nhnhỏỏ hhơơnn 2000.2000. ATMMT - TNNQ 6
  7. 1.1. SSốố nguyênnguyên ttốố ATMMT - TNNQ 7
  8. 1.1. SSốố nguyênnguyên ttốố „ Thuật toán tìm dãy số nguyên tố nhỏ hơn n - dùng thuật toán của nhà toán học Hy lạp Eratosthenes. - Liệt kê tất cả các số nguyên từ 2 đến n. - Số đầu tiên (2) là số nguyên tố. - Loại tất cả các bội của 2 ra khỏi bảng. - Số nguyên ngay sau số 2 sau khi loại (sàng) là số nguyên tố (số 3). - Loại bỏ tất cả các bội của 3. - - Khi tìm được một số nguyên tố lớn hơn căn bậc 2 của n, tất cả các số còn lại không bị loại ra đều là số nguyên tố. ATMMT - TNNQ 8
  9. 1.1. SSốố nguyênnguyên ttốố „ Thuật toán tìm dãy số nguyên tố nhỏ hơn n: L = {2, 3, , n}; i = 1; While (L[i]2 0) k = i2 + 2i; While (k <= n) Do { L[k] = 0; k = k + i; } i++; } ATMMT - TNNQ 9
  10. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „ ĐưĐượợcc xâyxây ddựựngng trêntrên ýý ttưưởởngng hhààmm mmộộtt chichiềều.u. ATMMT - TNNQ 10
  11. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Các bước chủ yếu khi thực hiện mã hoá khoá công khai: 1. Mỗi user tạo ra một cặp khoá được sử dụng cho việc mã hoá và giải mã thông điệp. 2. Mỗi user đặt một trong hai khoá trong một đăng ký công cộng. Đây là khoá công khai. Khoá còn lại được giữ kín. 3. Nếu Bob muốn gửi một tin nhắn bí mật cho Alice, Bob mã hoá tin nhắn này bằng cách sử dụng khoá công khai của Alice. 4. Khi Alice nhận được tin nhắn, cô giải mã nó bằng cách sử dụng khoá riêng của mình. Không có ai khác có thể giải mã thông điệp bởi vì chỉ có Alice biết khoá riêng của Alice. ATMMT - TNNQ 11
  12. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „„ LLịịchch ssửử hhììnhnh ththàànhnh:: „„ NNăămm 19761976,, WhitfieldWhitfield DiffieDiffie vvàà MartinMartin HellmanHellman côngcông bbốố mmộộtt hhệệ ththốốngng mmậậtt mãmã hohoáá khokhoáá bbấấtt đđốốii xxứứngng trongtrong đđóó nêunêu rara phphươươngng phpháápp traotrao đđổổii khkhóóaa côngcông khai.khai. „„ TraoTrao đđổổii khokhoáá DiffieDiffie HellmanHellman llàà phphươươngng phpháápp ccóó ththểể áápp ddụụngng trêntrên ththựựcc ttếế đđầầuu tiêntiên đđểể phânphân phphốốii khokhoáá bbíí mmậậtt thôngthông quaqua mmộộtt kênhkênh thôngthông tintin khôngkhông anan totoààn.n. ATMMT - TNNQ 12
  13. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „ Lịch sử hình thành: „ Thuật toán đầu tiên được Rivest, Shamir và Adleman tìm ra vào năm 1977 tại MIT. Công trình này được công bố vào năm 1978 và thuật toán được đặt tên là RSA. „ RSA sử dụng phép toán tính hàm mũ môđun (môđun được tính bằng tích số của 2 số nguyên tố lớn) để mã hóa và giải mã cũng như tạo chữ ký số. An toàn của thuật toán được đảm bảo với điều kiện là không tồn tại kỹ thuật hiệu quả để phân tích một số rất lớn thành thừa số nguyên tố. ATMMT - TNNQ 13
  14. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „„ ỨỨngng ddụụngng:: –– ỨỨngng ddụụngng thôngthông ddụụngng nhnhấấtt ccủủaa mmậậtt mãmã hohoá khokhoáá côngcông khaikhai llàà bbảảoo mmậậtt (mã(mã hohoáá/gi/giảảii mã):mã): mmộộtt vvăănn bbảảnn đưđượợcc mãmã hohoáá bbằằngng khokhoáá côngcông khaikhai ccủủaa mmộộtt ngngưườờii ssửử ddụụngng ththìì chchỉỉ ccóó ththểể gigiảảii mãmã vvớớii khokhoáá bbíí mmậậtt ccủủaa ngngưườờii đđóó ATMMT - TNNQ 14
  15. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Encryption ATMMT - TNNQ 15
  16. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Y = E(PUb, X) X = D(PRb, Y) Secrecy ATMMT - TNNQ 16
  17. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „„ ỨỨngng ddụụngng:: –– CCáácc thuthuậậtt totoáánn ttạạoo chchữữ kýký ssốố khokhoáá côngcông khaikhai ccóó ththểể ddùùngng đđểể chchứứngng ththựựcc:: MMộộtt ngngưườờii ssửử ddụụngng ccóó ththểể mãmã hohoáá vvăănn bbảảnn vvớớii khokhoáá bbíí mmậậtt ccủủaa mmìình.nh. NNếếuu mmộộtt ngngưườờii khkháácc ccóó ththểể gigiảảii mãmã vvớớii khokhoáá côngcông khaikhai ccủủaa ngngưườờii ggửửii ththìì ccóó ththểể tintin rrằằngng vvăănn bbảảnn ththựựcc ssựự xuxuấấtt phpháátt ttừừ ngngưườờii ggắắnn vvớớii khokhoáá côngcông khaikhai đđóó ATMMT - TNNQ 17
  18. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Authentication ATMMT - TNNQ 18
  19. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Authentication ATMMT - TNNQ 19
  20. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „ Ứng dụng: – Trao đổi khoá: Hai bên hợp tác để trao đổi session key. Có một số phương pháp tiếp cận khác nhau liên quan đến các khóa bí mật của một hoặc cả hai bên. Trước tiên, mã hoá thông điệp X sử dụng khoá secret của người gởi (cung cấp chữ ký số) để được Y. Kế đó, mã hoá tiếp Y với khoá public của người nhận. Chỉ có người nhận đã xác định trước mới có khoá secret của người nhận và khoá public của người gởi để giải mã hai lần để được X. ATMMT - TNNQ 20
  21. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai Z = E(PUb, E(PRa, X)) X = D(PUa, D(PRb, Z)) Authentication và Secrecy ATMMT - TNNQ 21
  22. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „ Một số giải thuật hệ mã hoá khoá công khai Algorithm Encryption/ Digital Key Decryption Signature Exchange RSA xxx Elliptic Curve xxx Diffie-Hellman x DSS x ATMMT - TNNQ 22
  23. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „ Định nghĩa: Cho các tập hữu hạn S và T. Hàm một chiều f: S → T là hàm khả nghịch thoả: „ f dễ thực hiện; cho x ∈ S, dễ dàng tính được y = f(x). „ f-1 là hàm ngược của f, khó thực hiện; cho y ∈ T, rất khó tính được x = f-1(y). „ f-1 chỉ có thể tính được khi biết thêm một số thông tin cần thiết. ATMMT - TNNQ 23
  24. 2.2. HHệệ mãmã hohoáá khokhoáá côngcông khaikhai „„ VVíí ddụụ:: f:f: pqpq →→ nn llàà hhààmm mmộộtt chichiềềuu vvớớii pp vvàà qq llàà ccáácc ssốố nguyênnguyên ttốố llớớnn „„ CCóó ththểể ddễễ ddààngng ththựựcc hihiệệnn phphéépp nhânnhân pqpq ((đđộộ phphứứcc ttạạpp đđaa ththứức).c). „„ TTíínhnh ff-1 (phân(phân ttííchch rara ththừừaa ssốố nguyênnguyên ttốố đđộộ phphứứcc ttạạpp mmũũ)) llàà bbààii totoáánn ccựựcc kkỳỳ khkhóó ATMMT - TNNQ 24
  25. 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman MMụụcc đđííchch ccủủaa thuthuậậtt totoáánn llàà chocho phphéépp haihai ngngưườờii ddùùngng traotrao đđổổii khkhóóaa bbíí mmậậtt ddùùngng chungchung trêntrên mmạạngng côngcông ccộộng,ng, ssauau đđóó ccóó ththểể ssửử ddụụngng đđểể mãmã hhóóaa ccáácc thôngthông đđiiệệp.p. ThuThuậậtt totoáánn ttậậpp trungtrung vvààoo gigiớớii hhạạnn viviệệcc traotrao đđổổii ccáácc gigiáá trtrịị bbíí mmậật,t, xâyxây ddựựngng ddựựaa trêntrên bbààii totoáánn khkhóó logaritlogarit rrờờii rrạạc.c. ATMMT - TNNQ 25
  26. 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman GiaoGiao ththứứcc traotrao đđổổii khokhoáá gigiữữaa AA vvàà B:B: – A và B thống nhất chọn chung một số nguyên tố q và một phần tử sinh α. – A chọn ngẫu nhiên một số XA ∈ {1, 2, , q-1} rồi gởi XA cho B kết quả YA = α mod q. – B chọn ngẫu nhiên một số XB ∈ {1, 2, , q-1} rồi gởi XB cho A kết quả YB = α mod q. – A tính khoá bí mật: K=(αXB)XA mod q = αXAXB mod q – B tính khoá bí mật: K=(αXA)XB mod q = αXAXB mod q ATMMT - TNNQ 26
  27. 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman ATMMT - TNNQ 27
  28. 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman ATMMT - TNNQ 28
  29. 3.3. GiaoGiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman VVíí ddụụ:: –– AA vvàà BB chchọọnn ssốố nguyênnguyên ttốố chungchung llàà 353353 vvàà phphầầnn ttửử sinhsinh gg llàà 3.3. –– AA chchọọnn XXA=97=97 rrồồii ggởởii chocho BB gigiáá trtrịị kkếếtt ququảả ccủủaa 3397 modmod 353353 == 40.40. –– BB chchọọnn XXB=233=233 rrồồii ggởởii chocho AA gigiáá trtrịị kkếếtt ququảả ccủủaa 33233 modmod 353353 == 248.248. –– CCảả AA vvàà BB đđềềuu ttíínhnh đưđượợcc KK == 24824897 modmod 353353 == 160160 == 4040233 modmod 353.353. ATMMT - TNNQ 29
  30. 4.4. HHệệ RSARSA GiGiảảii thuthuậậtt đưđượợcc phpháátt tritriểểnn bbởởii Rivest,Rivest, ShamirShamir vvàà AdlemanAdleman nnààyy ssửử ddụụngng mmộộtt bibiểểuu ththứứcc vvớớii hhààmm mmũũ VVăănn bbảảnn rõrõ đưđượợcc mãmã hhóóaa ởở ddạạngng khkhốối,i, kkííchch ccỡỡ ccủủaa khkhốốii phphảảii nhnhỏỏ hhơơnn hohoặặcc bbằằngng loglog2(n).(n). TrongTrong ththựựcc ttếế,, kkííchch ththưướớcc khkhốốii llàà ii bit,bit, vvớớii 22i <n<=<n<= 22i +1 MãMã hhóóaa vvàà gigiảảii mãmã đưđượợcc ththựựcc hihiệệnn vvớớii mmộộtt ssốố khkhốốii rõrõ MM (plaintext)(plaintext) vvàà khkhốốii mãmã CC (cyphertext):(cyphertext): CC == MMe modmod nn MM == CCd modmod nn == (M(Me))d modmod nn == MMed modmod nn ATMMT - TNNQ 30
  31. 4.4. HHệệ RSARSA GiGiảảii thuthuậật:t: ––MãMã hohoáá:: TTừừ khokhoáá côngcông khaikhai (n,(n, e)e) vvàà thôngthông đđiiệệpp llàà plaintextplaintext ddưướớii ddạạngng ssốố nguyênnguyên MM ∈∈ [0,[0, n).n). TTíínhnh cyphertextcyphertext CC == MMe modmod nn ––GiGiảảii mã:mã: MM == CCd modmod n,n, vvớớii dd llàà khokhoáá bbíí mmậật.t. ATMMT - TNNQ 31
  32. 4.4. HHệệ RSARSA Cả người gửi và người nhận phải biết giá trị của n. Người gửi biết giá trị của e, và chỉ người nhận mới biết giá trị của d. Như vậy, đây là một thuật toán mã hoá khoá công khai với một khóa công khai PU={n, e} và một khoá riêng PU={d, n}. Các yêu cầu sau đây phải được đáp ứng: – Phải có khả năng tìm được giá trị của e, d, n sao cho Med mod n = M, với M < n. – Phải dễ dàng tính toán được mod Me mod n và Cd cho tất cả các giá trị của M < n. – Nó là không khả thi để xác định d khi cho e và n. – Để an toàn, RSA đòi hỏi p và q phải là các số nguyên tố rất lớn để không thể phân tích được n=pq. ATMMT - TNNQ 32
  33. 4.4. HHệệ RSARSA ATMMT - TNNQ 33
  34. 4.4. HHệệ RSARSA ATMMT - TNNQ 34
  35. 4.4. HHệệ RSARSA Ví dụ: ATMMT - TNNQ 35
  36. 4.4. HHệệ RSARSA TTíínhnh 88887 modmod 187187 –– 88887 modmod 187187 == [(88[(884 modmod 187)187) xx (88(882 modmod 187)187) xx (88(881 modmod 187)]187)] modmod 187187 –– 88881 modmod 187187 == 8888 –– 88882 modmod 187187 == 77447744 modmod 187187 == 7777 –– 88884 modmod 187187 == 59,969,53659,969,536 modmod 187187 == 132132 –– 88887 modmod 187187 == (88(88 xx 7777 xx 132)132) modmod 187187 == 894,432894,432 modmod 187187 == 1111 ATMMT - TNNQ 36
  37. 4.4. HHệệ RSARSA TTíínhnh 111123 modmod 187187 –– 111123 modmod 187187 == [(11[(111 modmod 187)187) xx (11(112 modmod 187)187) xx (11(114 modmod 187)187) xx (11(118 modmod 187)187) xx (11(118 modmod 187)]187)] modmod 187187 –– 11111 modmod 187187 == 1111 –– 11112 modmod 187187 == 121121 –– 11114 modmod 187187 == 14,64114,641 modmod 187187 == 5555 –– 11118 modmod 187187 == 214,358,881214,358,881 modmod 187187 == 3333 –– 111123 modmod 187187 == (11(11 xx 121121 xx 5555 xx 3333 xx 33)33) modmod 187187 == 79,720,24579,720,245 modmod 187187 == 8888 ATMMT - TNNQ 37
  38. 4.4. HHệệ RSARSA VVíí ddụụ:: ChoCho ccáácc ssốố nguyênnguyên ttốố p=2357p=2357 vvàà q=2551.q=2551. TTíínhnh đưđượợc:c: nn == pqpq == 60127076012707 φφ(n)(n) == (p(p 1)(q1)(q 1)1) == 60078006007800 ChChọọnn ssốố nguyênnguyên ee ∈∈ (1,(1, φφ(n))(n)) llàà 36749113674911 dd ≡≡ ee-1 modmod φφ(n)(n) == 422191422191 KhoKhoáá côngcông khaikhai:: (n,(n, e)e) == (6012707,(6012707, 3674911)3674911) KhoKhoáá bbíí mmậậtt:: dd == 422191422191 ATMMT - TNNQ 38
  39. 4.4. HHệệ RSARSA VVíí ddụụ:: ĐĐểể mãmã hohoáá bbảảnn rõrõ MM == 52346735234673 ∈∈ [0,[0, 6012707)6012707) ttíínhnh CC == MMe modmod nn == 33650502650502 ĐĐểể gigiảảii mãmã ttíínhnh CCd modmod nn == 52346735234673 ATMMT - TNNQ 39
  40. 5.5. QuQuảảnn lýlý khokhoáá 1.1. ThThẩẩmm quyquyềềnn thuthu hhồồii khokhoáá – Thu hồi khoá khi khoá bị sai sót hoặc có tính phá hoại. – Thường được tham gia bởi từ hai thực thể trở lên. Ví dụ: cả Alice và Bob cùng thoả thuận thu hồi khoá. – Cần đảm bảo: Càng nhiều bên tham gia càng tốt (chống phá hoại). Càng ít bên tham gia càng tốt (thu hồi nhanh). ATMMT - TNNQ 40
  41. 5.5. QuQuảảnn lýlý khokhoáá 2.2. PhânPhân phphốốii khokhoáá mmớớii – Phải phân phối khoá mới sau khi khoá cũ bị thu hồi nhằm đảm bảo hệ thống tiếp tục hoạt động một cách an toàn. – Cần giảm thời gian giữa thời điểm thu hồi khoá và thời điểm phân phối khoá mới tới mức tối thiểu. – Phải đảm bảo yêu cầu về an ninh và yêu cầu về tính sẵn sàng của hệ thống. ATMMT - TNNQ 41
  42. 5.5. QuQuảảnn lýlý khokhoáá 3.3. ThôngThông bbááoo thôngthông tintin vvềề thuthu hhồồii khokhoáá – Thông báo về một khóa nào đó bị thu hồi cần đến được tất cả những người đang sử dụng nó trong thời gian ngắn nhất có thể. – Hai cách: Thông tin được chuyển từ trung tâm tới người dùng. Người dùng lấy thông tin từ trung tâm. – Cung cấp các chứng thực có thời hạn. ATMMT - TNNQ 42
  43. 5.5. QuQuảảnn lýlý khokhoáá 4.4. CCáácc bibiệệnn phpháápp ththựựcc hihiệệnn khikhi llộộ khokhoáá – Hầu hết các trường hợp thu hồi khoá xảy ra khi khoá bí mật đã bị lộ. Hai khả năng xảy ra: Các văn bản mã hóa với khóa công khai sau thời điểm T không còn được xem là bí mật. các chữ ký số thực hiện với khóa bí mật sau thời điểm T không còn được xem là thật. – Cần xác định người có quyền thu hồi khóa, cách thức truyền thông tin tới người dùng, cách thức xử lý các văn bản mã hóa với khóa bị lộ. ATMMT - TNNQ 43
  44. 6.6. BBààii ttậậpp 1.1. ViViếếtt chchươươngng trtrììnhnh nhnhậậpp vvààoo mmộộtt ssốố nguyênnguyên ddươươngng nn,, xuxuấấtt ra:ra: –– nn ccóó phphảảii llàà ssốố nguyênnguyên ttốố hayhay không?không? –– DãyDãy ssốố nguyênnguyên ttốố nhnhỏỏ hhơơnn hohoặặcc bbằằngng n.n. –– nn ssốố nguyênnguyên ttốố đđầầuu tiên.tiên. 2. Cho p là một số nguyên tố và n < p là một số nguyên dương. Chứng minh rằng a2 mod p = 1 nếu và chỉ nếu a mod p = 1 hoặc a mod p = -1. ATMMT - TNNQ 44
  45. 6.6. BBààii ttậậpp 3.3. HackerHacker ccóó ththểể llợợii ddụụngng đđiiểểmm yyếếuu trongtrong giaogiao ththứứcc traotrao đđổổii khokhoáá DiffieDiffie HellmanHellman đđểể ththựựcc hihiệệnn mmộộtt cucuộộcc ttấấnn côngcông ManMan inin thethe Middle.Middle. zz MôMô ttảả cucuộộcc ttấấnn côngcông nnàày.y. zz VVẽẽ hhììnhnh minhminh hohoạạ ATMMT - TNNQ 45
  46. 6.6. BBààii ttậậpp 4. Nếu cho số nguyên tố p = 353 thì a = 3 là một primitive root modulo p. Sử dụng hai số này để xây dựng một hệ thống trao đổi khoá Diffiel-Hellman. a. Nếu Alice chọn một private key XA = 97, giá trị public key YA của Alice là? b. Nếu Bob chọn một private key XB = 233, giá trị public key YB của Bob là? c. Giá trị của khoá bí mật thống nhất giữa cả Alice và Bob là bao nhiêu? ATMMT - TNNQ 46
  47. 6.6. BBààii ttậậpp 5. Cho p = 13. a. Chứng minh rằng a = 2 là một primitive root modulo p. Sử dụng hai tham số này để xây dựng một hệ thống trao đổei khoá Diffie-Hellman. b. Nếu public key của Alice là YA = 7, giá trị private key XA của cô ấy là bao nhiêu? c. Nếu public key của Bob là YB = 11, giá trị private key XB của anh ấy? ATMMT - TNNQ 47
  48. 6.6. BBààii ttậậpp 6. Cho n = 187 = 11 x 17. a. Cho e = 7, M = 89. Tính giá trị RSA ciphertext C. b. Từ C tính được ở (a), tính toán plaintext M. c. Cho e = 7, M = 88. Tính toán giá trị RSA ciphertext C. C có thể sử dụng n = 187? Giải thích. ATMMT - TNNQ 48
  49. 6.6. BBààii ttậậpp 7. Alice sử dụng phương pháp dưới đây để mã hoá văn bản rõ (plaintext messages) tiếng Anh với toàn các ký tự viết hoa: z Ánh xạ mỗi ký tự viết hoa đến các số từ 100 đến 125; cụ thể là, ánh xạ A thành 100, B thành 101, , và Z thành 125. z Sau đócô ấy mã hoá các số nguyên này sử dụng các giá trị lớn của n và e. z Phương pháp này có an toàn? Giải thích. ATMMT - TNNQ 49
  50. 6.6. BBààii ttậậpp 8. Giả sử rằng Alice mã hoá một thông điệp M sử dụng RSA với public key n = 437, e = 3, ciphertext C = 75. Nếu ai đó nói với Malice rằng M ∈ {8,9}, thì Malice có thể xác định giá trị đúng của M mà không cần n. Malice thực hiện điều này như thế nào? ATMMT - TNNQ 50
  51. 6.6. BBààii ttậậpp 9. Viết một ứng dụng client-server sử dụng socket API để thực hiện giao thức trao đổi khoá Diffie-Hellman. 10. Viết một ứng dụng client-server sử dụng để thực hiện mã hoá và giải mã RSA, với các tham số của RSA được cho trước ATMMT - TNNQ 51
  52. ATMMT - TNNQ 52