Khoá luận tốt nghiệp mật mã khóa công khai

33 366 0
Khoá luận tốt nghiệp mật mã khóa công khai

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

TRƯỜNG ĐẠI HỌC sư PHẠM HÀ NỘI KHOA TOÁN ĐOÀN THỊ THU THẢO MẬT MÃ KHÓA CÔNG KHAI KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Toán ứng dụng Người hướng dẫn khoa học: T s Trần Vĩnh Đức Bài khóa luận lioàn thành hướng dẫn nhiệt tình tliầy giáo T.s Trần Vĩnh Đức Qua em xin gửi lời cảm ƠI1 sâu sắc tới tliầy cô tổ Toán ứng dụng tliầy cô khoa Toán trường ĐHSP H Nội giúp đỡ em trình học tập để thuận lợi clio việc nghiên cứu Đặc biệt, em xin gửi lời cảm ƠI1 cliân tliànli tới thầy giáo T.s Trần Vĩnh Đức người dành cho em hướng dẫn nhiệt tình, cliu đáo bảo cho em suốt trình học tập nghiên cứu thực khóa luận Dừ cố gắng, lần làm quen với việc nghiên cứu khoa học lực CÒ1 hạn chế nên khó tránh khỏi sai sót Em mong muốn nliận bảo, đóng góp quí thầy cô klióa luận tốt Em xin chân thành cảm ơn! Hà Nội, ngày 07 thảng 05 năm 2015 Sinh viên Đoàn Thị Thu Thảo Em xin cam đoan khóa luận tliân nghiên cứu với hướng dẫn tliầy giáo T s Trần Vĩnh Đức không trùng với đề tài Hà Nội, ngày 07 tỉiáng 05 năm 2015 Sinli viên Đoàn Thị Thu Thảo LỜI CẢM ƠN Mục lục Lời cảm ơn Lời cam đoan Mở đầu Lý thuyết số trường hữu hạn Số ỏ số kliác 1 Bậc lớn Phép chia thuật toán Euclid lia 1.3.1 Các ước pliép c 1.3.2 Thuật toán Euclid 1.4 Dồng dư tliức Dịnli nghĩa 1.4.1 Tính chấtl 12 1.5 Trường hữu hạn 15 Mật mã khóa cống khai 2.1 Một số thuật ngữ khải niệm ■ 17 2.2 Y tương vẽ mật mã khóa cồng khai 2.3 R.SAI 2.4 Logarit rời rạc Hệ trao đỗi chìa khóa Diffle-Hellmanj 2.4 26 2.4.2 Hệ .27 mật truyền tliông tin Massey-Omura 2.4.3 Hệ mật Elgamal 2.5 Hệ mật mã ba lố 2 9 1 Kết luận Tài liệu tham khảo MỞ ĐẦU Lý chọn đề tài Hiện giới, mạng máy tínli ngày đóng vai trò thiết yếu lĩnh vực hoạt động toàn xã hội Nó trở tliànli phương tiện trao đổi thông till liệu till nlm cầu bảo mật thông till đặt lên hàng đầu Trên giới có nhiều giải pliáp mã hóa thông till theo công Iigliệ dựa tliuật toán có độ phức tạp cao sản phẩm loại bắt đầu thương rriại hóa Tuy nhiên mức độ bảo mật tốc độ xử lý loại sản pliẩm khác Iiliau Mặt khác dù có thuật toán tốt không nắm bắt kliía cạnh công nghệ bảo mật cách bịt hết kẽ hở mà tin tặc dễ dàng công.Vì vậy, để bảo vệ thông till "nhạy cảm", thông till mang tính bí rriật cao, người ta phải mã lióa cliũng hệ mật mã trước klii truyền Do ý nghĩa quan trọng việc rriã hóa thông tin nên erri chọn đề tài "Mật mã khóa công khai" để tìm hiểu nghiên cứu sâu liơn vấn đề Đối tượng, phạm vi nghiên cứu Dối tượng: Mật mã khóa công khai Phạm vi: Tìm hiểu mật mã klióa công khai cliú trọng đến số hệ mã khóa công khai Nhiệm vụ nghiên cứu Nghiên cứu mật mã klióa công kliai Mục đích nghiên cứu Tìrri hiểu sơ qua công nghệ mã hóa thông tin cụ thể số hệ mật mã klióa công kliai Phương pháp nghiên cứu Nghiên cứu tài liệu, phân tích, tổng liỢp dựa kết số học lý thuyết số Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Dức Nội dung khóa luận Nội dung khóa luận gồm chương: • • Lý thuyết số trường liữu hạn Mật mã khóa công kliai Do thời gian tliực đề tài không nhiều, kiếĩi tliức hạn chế nên báo cáo không tránh khỏi sai sót Tác giả mong nhận góp ý ý kiến pliản biện quý thầy cô bạn đọc Xin chân thành cảm ơn! Chương Lý thuyết số trường hữu hạn 1.1 SỐ số khác Định nghĩa 1.1.1 Một số tự nliiên N viết với số B kí hiệu dãy N có dạng (DK_IDK_2 DIDỊ))T), (với D kí hiệu số nguyên B — 1); tức N = DK_LBK~L + DK-2BK~2 + + DỊB + (ỈQ Nếu DK-1 ^ 0, ta gọi n số có K-CHĨỈ số số b Mọi số BK~[ BK số K-chữ số với số B Nhận xét 1.1.2 Bỏ qua đấu ngoặc đơn số trường liỢp hệ thập phân (B = 10) số trường hợp kliác Kí hiệu hữu ích klii làm việc số lớn 10, cácli sử dụng đại số số tùy ý để quy ước từ số Phân số mở rộng số, biểu diễn dạng IKDỴ_IDỴ_2 DID().D_ID_2 )B- Khi B ^> 10 1 tllươĩlg sư dung CclC lơll llơll NgOcll 'ct co tllG sư dụng chữ clio tất cliữ số Ví dụ a) (11001001)2Khóa = 201, luận tốt nghiệp GVHD: T.s Trần Vĩnh Dức b) Khi B = 26 cho phép ta sử dụng chữ A — Z tương ứng với số từ — 25 Thì (BAD) Q = 679, (B.AD) Q = —— 676 Ví dụ Dổi 10 sang số 2, 26 (Sử dụng chữ từ A — Z chữ số trường hợp sau): 106 = (11110100001001000000)2 = (11333311)7 = (CEXHO)2G Nếu Số nguyên N biểu diễn số B có K chữ số tliỏa mãn BK < N < BK số chữ số N tính theo công thức: Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức K = [log N] + + kí ” log ” nghĩa logarit tự nhiên log e [ ] phần nguyên log số N 1.2 Bậc o lớn Định nghĩa 1.2.1 Giả sử F(N) G(N) hai hàm số xác định tập hợp số nguyên dương Ta nói F(ĨÌ) có bậc 0-lớn G(N) viết /(n) = 0(G(N)) (hoặc / = 0(G)) có tồn số C > cho với n đủ lớn, hàm F{N) G(N) dương, đồng thời F{N) < C.G(N) Ví dụ a) Cho F(N) đa thức có bậc D có hệ số dương Dễ dàng cliứng minli F(N) = 0(ND) b) Ve > ta có: logn = 0(NE) c) Nếu /i(rz) = 0(p(n)), F2(N) = 0(G(N)) /i + / = O(G) d) Nếu /i(ra) = 0(gi{n)), /2(n) = 0(g2(n)) /1/2 = 0{glg2) e) Nếu tồn giới hạn liữu hạn Umậ n ^ o g(n) thỉ / = 0(g) Định nghĩa 1.2.2 Một thuật toán gọi có độ phức tạp đa tliức, có thời gian đa thức, số phép toán cần thiết thực thuật toán không vượt Oílog^n), N độ 1ỚI1 đầu vào D số nguyên dương Nói cácli khác, đầu vào số K-bit thời gian tliực thuật toán 0(Kd ), tức tương đương với đa thức K 1.3 Phép chia thuật toán Euclid 1.3.1 Các ước phép chia Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức Định nghĩa 1.3.1 Cho số nguyên A ỏ, ta Iiói A cilia liết B (hoặc B chia hết cho A) ta viết A I B tồn số nguyên D cho B — AD Klii ,ta nói A ước B Tất số nguyên B > có hai ước dương B Định nghĩa 1.3.2 Số nguyên tố số nguyên lớn có hai ước dương Ĩ1 Ó Số nguyên lớn số nguyên tố gọi hợp số Tính chất 1.3.3 Nếu a I b с £ z, till a I be Nếu a I B B I c, till A I C Nếu A I B A I c, till A I B =b c Nếu P số nguyên tố A G N Kí hiệu PA I B nghĩa PA lũy thừa cao Iihất P cilia ò, tức PA I B PA + L Ị B Klii đó, ta nói PA ước thực B Định lí 1.3.4 (Dịnli lý số học): Mọi số tự nhiên lớn phân tích thành tliừa số nguyên tố, phân tícli không kể đến thứ tự thừa số CỈIỨNQ MINH, a) Sự phân tícli Giả sử A số nguyên tố PI ta có: G N A> Khi đó, A có (1, = Pidị, di G N Nếu ữi = A = PI phân tích tầm thường A Nếu Q,\ > tlieo lý luận trên, A1 có ước nguyên tố P2 ta a a có: dị = ỹ2 2, £ N liên a = P\P2a 2Nếu A2 = A = P\P-2 phân tích A Nếu A2 > tlieo lý luận trên, A2 có ước nguyên tố Рз, Quá trình phải kết thúc, nghĩa có N cho AN = l,a n _i = P Iĩiột số nguyên tố, ta có: a, ữi, a2 , dãy số tự nhiên Chương Mật mã khóa công khai 2.1 • Một số thuật ngữ khái niệm • MẬT MÃ (Cryptosystems) ngànli nghiên cứu phương pháp truyền thông till dạng ngụy trang để người nhận rriới loại bỏ ngụy trang lấy thông tin • VĂN BẢN GỐC (Plaintext) tliông till gốc cần chuyển ghi hình ảnh, âm thanh, chữ số, chữ viết VĂN BẢN MÃ (Ciphertext) tliông tin gốc ngụy trang Văn gốc văn mã thường viết chữ bảng chữ cái(thông thường lúc viết bảng cliữ) bao gồm số lượng nliất địnli N chữ Số chữ (hoặc kí tự) không chữ từ A — Z, mà chữ số, dấu cách, dấu chấm câu biểu tượng khác cho phép sử dụng biết thông till • MÃ HÓA (Encryption) việc ngụy trang văn sang dạng khác người "ngoài đọc được", pliục vụ clio nhu cầu bí rriật trao đổi thông till, liệu giao dịch tài chính, thương mại • GIẢI MÃ (Decryption) việc đưa văn rriã rriã hóa trở dạng văn nguồn Văn gốc văn mã cilia thành ĐƠN VỊ THÔNG TIN Một đơn vị thông tin Iĩiột cliữ, liai chữ, ba chữ lioặc 50 cliữ Một phép rriã hóa cliức lấy rriột đơn vị thông till văn gốc cung cấp đơn vị thông tin văn mã Nói cách khác, ánh xạ / từ tập V gồm tất đơn vị thông tin văn gốc đến tập C gồn tất đơn vị thông tin văn mã Ta luôn giả sử / phép tương ứng — Tiíc cho đơn vị thông tin văn mã, có đơn vị thông tin văn gốc mà gọi MẬT MÃ Một phép giải mã ánh xạ / -1 ngược lại từ văn mã đến văn gốc Biểu diễn dạng sơ đồ: V -4 c ^ V Mọi thiết lập Iihư gọi MẬT MÃ Việc phải làrri hệ rriật rriã mã hóa đơn vị thông tin tliànli đối tượng toán học để từ hàm mã lióa xây dựng dễ àng Các đối tượng toán học thường dùng số nguyên khoảng giới hạn Ví dụ, Iiếu đơn vị thông tin văn gốc văn mã chữ đơn giản từ 26 chữ bảng chữ A — Z, kí hiệu tương ứng số nguyên 0,1,2, ,25 cách đặt: A -)* 0, B-> 1, • • • , X -► 23, Y 24, Z -► 25 Thêm nữa, đơn vị thông tin ta chữ ghép 27 chữ bảng chữ từ A-Z khoảng trắng Đầu tiên, phải cho khoảng trống tương ứng số 26, sau kí hiệu chữ ghép rrià bao gồrri hai chữ tương ứng X , Y G {0,1, , } số nguyên 27X -\R Y £ { , , } Do đó, phải xem xét riêng lẻ chữ chữ số với số 27 coi chữ ghép hai chữ số nguyên số Ví dụ, chữ ghép "NO" tương ứng với số nguyên 27.13 + 14 = 365 Tương tự, sử dụng nlióm có ba chữ đơn vị thông tin chúng, kí hiệu số nguyên 729X + 27Y + Z G {0, , } Nói chung, kí hiệu kliối K chữ A^-cliữ bảng chữ số nguyên NK — phần khối K-chữ số nguyên số N Trong số tình huống, đơn vị thông tin rriã hóa đối tượng toán liọc kliác số nguyên Ví dụ, vecto lioặc điểm số đường cong Nhưng mục xerri xét số nguyên Xét bảng chữ gồm N chữ đặt tương ứng với số xét B số nguyên cố định Ta định nghĩa hàm mã hóa / quy tắc c = f ( P ) = p + b mod N Ví dụ, hệ mật Julius Caesar trường hợp đặc biệt N = 26, B = De giải mã mã C G {0, , i V — 1}, ta tính p = r l ( C ) = c — b mod N Giả sử thông tin mã hóa giải mã không bí mật dường đọc mã thông tin Dây gọi phá vỡ mã tlieo klioa học mã phá vỡ gọi mật rriã De pliá mã, ta cần liai loại thông tin Thứ tínli cliất cliung (cấu trúc) hệ Ví dụ, hệ mật sử dụng phép biến đổi đơn thư 26-cliữ bảng chữ từ A — Z tương ứng với số từ —25 Loạithông tin thứ hai hiểu biết lựa chọn cụ thể Iiiộttham sốđã biết kết nối với mật mã Trong ví dụ, loại thông tin thứ hai người ta cần biết lựa chọn tliam số tliay đổi B Một có thông tin, cần mã hóa giải mã công thức c = p + b mod N , p = c — b mod N Người ta thừa nhận thông tin cấu trúc chung biết Trong thực tế, sử dụng mật mã thường có thiết bị mã lióa giải mã mà xây dựng thiết bị loại hệ mật Qua kì thông tin loại có hệ thống sử dụng có tliể bị rò rỉ Do đó, để tăng bảo rriật phải thường xuyên thay đổi lựa chọn tham số sử dụng với liệ thống Tham số B gọi CHÌA KHÓA, lioặc xác hơn, gọi KHÓA MÃ HÓA Do vậy, loại liệ mật kliá đơn giản Nó dễ dàng để phá vỡ Một cải thiện sử dụng nhiều loại thông tin chung (Z/ATZ), gọi ÁNH XẠ AFIN: c = a P + b mod N với A B số nguyên cố định Tóm lại, hệ Iiiật afin A^-cliữ bảng chữ với tliam số A (Z/iVZ)* B £ (Z/iVZ) thỏa mãn quy tắc: c = a P + b mod 7V, p = c + ỉ/ mod 7V Với: a' = a _1 (Z/-/VZ)*, Ư = —a _1 ò Một trường hợp đặc biệt hệ mật afin, thiết lập A = 1, qua thu phép biến đổi Trường hợp đặc biệt khác B = 0: p = a.c mod yv, c = a _1 p mod iV Trường hợp B = gọi BIẾN ĐỔI TUYẾN TÍNH, Iigliĩa ánh xạ từ tổng đến tổng, có nghĩa là, C mật rriã hóa PỊ n ế u Ơ l m ậ t m ã h ó a c ủ a P , t l i ì C l + C l m ậ t m ã l i ó a c ủ a P ị + P2 ( t ấ t nhiên phải thêm mod N) 2.2 Ý tưởng mật mã khóa công Hệ mật mã bao gồm phép mã hóa / từ tập V gồm khai tất rõ đến tập C gồm tất mã Tlmật ngữ "hệ mật mã" thường để cliỉ họ phép biến đổi, phép biến đổi tương ứng với cách cliọn tham số (tập V C ánh xạ /, I1 Ó pliụ thuộc vào giá trị tham số) Ví dụ, iV-chữ bảng chữ cố định (với chữ có giá giá trị số tương ứng) Ta xét hệ mật mã afin tương ứng với cặp A G (Z/iVZ)* B G Z/A^Z ánh xạ từ V = LI Ị NIL đến C = Z/iVZ xác định c = a P + b mod N Trong ví dụ này, tập V C cố định (vì N cố định),nhưngphép mã hóa / thay đổi phụ thuộc vào việc chọn tliarn số a, B Phép mã hóa / mô tả iriột thuật toán giá trị tliam số Các giá trị tham số gọi KHÓA MÕ, HÓA KE- Trong ví dụ này, KE cặp (a, B) Dể giải mã, tức để tính / -1 , người ta cần thuật toán klióa Klióa gọi khóa giải mã KD- Trong ví dụ này, giải mã ánh xạ afin, nghĩa p = a ~ l c — a ~ l b mod TV, phép giải mã sử dụng thuật toán giống phép mã hóa, ngoại trừ klióa klỉác, klioá giải mã Kd cặp (a _1 , —a~ l b) Ta giả sử thuật toán giải mã mã hóa công khai khóa KE-) KD bí mật 2.3 RSA Khi tìm kiếm hàm cửa sập / để sử dụng cho rriột hệ thống rriật rriã klióa công khai, mặt người ta mong muốn ý tưởng phải đơn giản mặt khái niệm đe từ dễ cài đặt máy tính Mặt khác, người ta muốn có chứng thực nghiệm mạnh - dựa lịch sử lâu dài Ĩ Ỗ lực tìm kiếm thuật toán cho F~L - việc giải mã không thề thực klióa giải mã bí rriật Vì lý này, tự nhiên, người ta tìm đến toán kinh điếu, lý thuyết số: toán phân tích thừa số số lớn Hệ rriật mã RSA (theo tên người pliát minh nó: Rivest, Shamir Adleman)- Iĩiột phát ìriinh lâu đời hệ thống rriã hóa khóa công khai phổ biến nhất- dựa tính klió toán pliân tícli thừa số nguyên tố số lớn Bây mô tả thuật toán RSA Dầu tiên, ta chọn hai số nguyên tố lớn P Q (khoảng 100 chữ số thập pliân), tínli N = PQ Biết thừa số 71, ta dễ dàng tính toán ự > ( n ) = ( p - l ) ( q - 1) Tiếp theo, người dùng chọn ngẫu nhiên số nguyên e, < E < (P(N) cho ƯCLN(e, ^(N)) = Nhận xét 2.3.1 Ta nói "ngẫu nhiên" nghĩa số lựa cliọn với giúp đỡ rriột phần tử sinh ngẫu nhiên (hoặc phần tử sinh "giả ngẫu nhiên"), tức chương trình máy tính tạo dãy số bị trùng lặp khó dự đoán Nó thỏa mãn nhiều tính chất dãy ngẫu nhiên thật Có nhiều tài liệu mô tả cácli hiệu an toàn để tạo số ngẫu nhiên Trong hệ rriật RSA, ta cần sinh ngẫu nhiên e số nguyên tố 1ỚI1 P Q Làm để sinh ngẫu nhiên số nguyên tố? Dầu tiên ta lấy ngẫu nhiên số nguyên M lớn Nếu M chẵn, tăng M lên Sau đó, áp dụng tlmật toán kiểm tra tínli nguyên tố để xem s ố l ẻ M số nguyên tố Nếu M không số nguyên tố, ta thử với M + 2, sau M + 4, , klii tìm số nguyên tố > M Ta coi số số nguyên tố ngẫu nhiên Theo lý tlmyết phân bố số nguyên tố, ta cần làm khoảng l/log(m) lần tìm số nguyên tố lớn M Số ngẫu nhiên E nguyên tố với IP(N) chọn cách sau: Dầu tiên, sinli số nguyên ngẫu nhiên (lẻ), sau tăng tìm e với ƯCLN(e, (P(N)) = Bây giờ, người dùng A chọn liai số nguyên tố PJ4 , QA Iĩiột số ngẫu nhiên EA nguyên tố với ( PA — ) ( Q A — !)• Tiếp theo, A tính: n A PAQA, tp(n A ) = n A + l - p A - q A và, tính khóa bí mật ẩA — ẽ~A m °d ip{ĩlÀ) Người ta công kliai khóa mã hóa KE,A = {n A ì e / 1) giữ bí mật khóa giải mã KD,A = (j^A■) dÀ)- Pliép mã lióa ánh xạ từ z/n^z vào Ĩ1 Ó cho f ( P ) — P A mod r i A Pliép giải mã ánh xạ từ Z/nyịZ vào Ĩ1 Ó cho / _1 (C) = C Ì A mod n A Dễ thấy, liai ánli xạ nghịch, đảo với nliau, lựa chọn DJ\ Cụ thể, biểu diễn / theo /-1 lioặc /-1 theo / có nghĩa nâng lên lũy tliừa (ỈAGA lần Nhưng vì, dư kill cilia IP(N), điều giống việc nâng lên lũy thừa Dường người ta làm việc với tập V = С đơn vị thông tin Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức văn gốc văn mã thay đổi theo người dùng khác n h a u Tr o n g thực tế, người ta muốn cliọn V С tliống nliất toàn hệ thống Ví dụ, giả sử ta làm việc với N -chữ bảng chữ Chọn số nguyên dương К < Í clio NK NÍ có khoảng 200 chữ số thập phân Ta lấy toàn khối K-chữ làrri đơn vị thông till văn gốc coi К cliữ số có số N Tức là, ta đưa số tương đứng nằm khoảng NK Tương tự, ta lấy khối T cliữ bảng cliữ iV-cliữ làm đơn vị thông tin văn mã Sau đó, người dùng phải chọn liai số nguyên tố lớn P/ Qy từ ta có: n A = PAQA tliỏa mãn NK < ПУ1 < N£ Khi đó, Iiiọi đơn vị thông tin văn gốc, tức số nguyên nhỏ Nk , tương ứng với phần tử z/n^z Khi Ĩ I J < N * , ảnh F ( P ) E Ъ / П Д Ъ biểu diễm khối ^-chữ Ví dụ Chọn N = 26, К = 3, I = Tức là, văn gốc gồm nhóm ba chữ văn mã bao gồm nhóm bốn chữ 26 chữ bảng chữ De gửi tin nhắn "YES" đến người dùng Ả với khóa mã hóa ('ПЛ,ЕЛ) = (46927,39423) Dầu tiên, chúng tìm "YES" có số tương đương là: 24.26 + 4.26 + 18 = 16346, sau tính 163 39423 = 21166 mod 46927; mà 21166 = 1.26 + 5.26 + 8.26 + = "BFIC" Người nhận Ả biết klióa giải mã (NAÌDA) = (46927,26767) tính 21166 26767 = 163 46 mod 46927 mà 16346 = "YES" Làm để người sử dụng A tạo klióa clio mình? Dầu tiên, người ta nhân P A = 281 Ç A = 167 П А = 46927 Tiếp theo, cliọn clio ƯCLN(e,4 , 280) = UCLN(e,4 ,166) = Suy ЕЛ = 39423 Tiếp tục, tìrri Ả A — e^ mod 280.166 = 26767 Các số P A , Q A , Iihớ bí mật Trong ví dụ trên, bước tốn thời gian Iihất tính lũy tliừa modun, ví dụ: 16346 39423 mod 46927 Tuy nhiên, bước áp dụng phương pliáp bình phương liên tiếp phép toán bit ỡ(fc ), với K số bit tập số Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức nguyên Trên thực tế, người sử dụng A làm việc với số nguyên 1ỚI1 nhiều bước tốn nhiều thời gian tìm hai số nguyên tố lớn P A Q A ■ De nhanh chóng lựa chọn thích hợp số nguyên tố lớn, người ta phải sử dụng hiệu phương pháp kiểm tra tính nguyên tố Nhận xét 2.3.2 Trong việc chọn P ợ, người sử dụng A nên quan tâm đến điều kiện định Điều quan trọng là: P Q phải có cỡ lớn xấp xỉ nhau; UCLN(p — 1, Q — 1) phải nhỏ hai có thừa số nguyên tố 1ỚI1 Trong chương 1, N tích hai số nguyên tố P ợ, biết (P(N) tương đương biết thừa số N Giả sử, để pliá vỡ hệ RSA số nguyên dương D clio: AED = A mod N với A nguyên tố với Ĩ1 Điều tương đương với ED — bội BCNN(p — 1, Q — 1) Thực sự, biết (P(N) ổn liơn biết số nguyên M = ED — Tuy nhiên, phương pliáp với xác suất cao sử dụng số nguyên M để tìm thừa số N Vì vậy, ta giả sử biết n - tícli hai số nguyên tố chưa biết biết số nguyên m cho: AM — mod N với A nguyên tố với N Làm để gửi chữ kí RSA? Khi chứng thực thảo luận phần cuối, ta giả sử đơn giản V = C Một thiết lập pliức tạp RSA Dó có cách để tránh vấn đề khác UJ\ kliối kícli thước khác {K < Í) Giả sử, Ả gửi cliữ kí cô ( văn gốc P) tới B A biết khóa rriã hóa B: Ke,b = {p>B•) es) khóa giải mã cô ấy: KD,A = {ĩiAì dÀ) • A gửi FBFÃL(P) n ếu NA < NBÌ FÃLỈB{P) NA > NB Dó là, trường hợp trước, A lấy thặng dư dương bé PDA mod HA- Sau đó, với Số modun 77/SS, A tínli (PDAMODNÀ)EB mod A gửi đơn vị tliông tin văn mã Trong trường hợp Nj > %, A tínli P6H mocl USS sau làiri việc với modul NA , A nâng lên lũy thừa (ỈA- Rõ ràng, B xác minh tính xác thực thông tin trường hợp cách nâng lên lũy tliừa DSS Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức modun riß sau lũy thừa e/ modun 77-yị Trong trường hợp thứ hai, B làm hai phép toán theo thứ tự ngược lại 2.4 Logarit rời rạc Trên tliực tế, hệ mật mã RSA dựa ý tưỏng rằng: Tìm kiếm hai số nguyên tố lớn nhân chúng lại với nhan để có N dễ d n g l i r i r ấ t nhiều so với việc phân tích số N tliànli thừa số nguyên tố Có nhiều toán khác lý thuyết số dường có tính chất "cửa sập" "một chiều" Ví dụ, toán tínli lũy thừa 1ỚI1 số trường liữu hạn Với trường số thực, việc nâng lên lũy thừa (tìm ỈF với độ xác định) không dễ dàng so với phép toán ngược (tìm log X với độ xác định) Còn nhóm hữu hạn (Z/nZ)* F*, dùng phương pliáp bình phương liên tiếp, người ta có tliể tính dễ dàng BX\ cho trước rriột pliần tử Y có dạng BX (chúng ta giả sử số B cố định, liệu ta tính X = log Y L Câu hỏi gọi "bài toán logarit rời rạc" B Định nghĩa 2.4.1 Xét nhóm hữu hạn G, phần tử sinh B thuộc ơ, pliần tử Y lũy thừa B G Logarit rời rạc Y với số B rriọi số X thỏa mãn B = Y X Ví dụ 10 Nếu lấy G — FỊ9 — (Z/19Z)* cho B có phần tử sinh 2, logarit rời rạc số Ví dụ 11 Trong FG với A rriột nghiệm X2 — X — 1, logarit rời rạc — số A Bây giờ, cliúng mô tả số hệ thống mật mã khóa công khai hay phương pháp trao đổi khóa dựa tính toán khó khăn việc giải toán logarit rời rạc trường hữu hạn 2.4.1 Hệ trao đổi chìa khóa Diffle-Hellman Do liệ mật mã klióa công khai chậm so với liệ thống mã hóa đối xứng (cổ điền) nên người ta thường kết hợp với hệ mật mã đối xứng theo cácli sau: Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức liệ klióa công kliai dùng trao đổi klióa bí mật, sau klii có khóa bí mật người ta mã hóa hệ mật mã đối xứng truyền Dặc biệt, trình thống khóa chung cho liệ mật mã đối xứng tliực hiệu sử dụng hệ tliống klióa công kliai Dề xuất chi tiết thực hóa điều w Diffie M.E Heilman Giả sử Ả В muốn có chung COI1 số để làm chìa khóa chung (cho hệ mã đối xứng đó) Giả sử К A KSS khóa bí mật A В, ДКЛ ДКВ khóa công khai A B Vậy họ chọn số p = д^А-кв làm khóa chung Rõ ràng, A VẦ В tính P cách dễ dàng (bằng cách lấy số mà người công bố công khai nâng lên lũy thừa với bậc chìa khóa bí mật mình) Diều thú vị không khác có khả tính số p к A lioặc к в việc tính logarit rời rạc không kliả tlii Nếu nhu cầu trao đổi thông tin lớn A В không nên dùng số P nói để làm cliìa khóa cho trao đổi thông tin mật (vì bị lộ trước công cụ thám mã ngày mạnh) Khi A в có t h ể s d ụ n g c h u n g n h ữ n g C O Ĩ s ố k l i c n h a u c l i o n h ữ n g l ầ n t r a o đ ổ i t h ô n g till khác Muốn vậy, A chọn ngẫu nhiên số a gửi cho в giá trị X = GA, В cliọn ngẫu nhiên số B gửi cho A giá trị Y = GB Klii đó, liai người dễ dàng tính số chung sau đây: К = Ya = (gbỴ = (gaỶ = xb Trong người "ngoài cuộc" biết số X, Y mà từ tính К (trong thời gian chấp nhận được) 2.4.2 Hệ mật truyền thông tin Massey-Omura Giả sử FQ trường hữu hạn, F cố định biết công kliai Hệ thống bí rriật lựa chọn ngẫu nhiên số nguyên e Q — cho UCLN(e, Q — 1) = sử dụng thuật toán Euclid mở rộng để tính d — e~ l mod q — tức Khóa luận tốt nghiệp DE = mod Q — GVHD: T.s Trần Vĩnh Đức Nếu người sử dụng A muốn gửi thông tin p tới người sử dụng B , họ tương tác với nliau sau: A gửi PBA cho B B tính ej3 gửi P e A e B cho A A giải mã phần cácli nâng lên lũy thừa D/1 Vì PDAEA = P liên peAeBdA _ pe Và A gửi trả lại P6B tới B Vậy B đọc thông till cácli nâng lên lũy tliừa C Ỉ Q 2.4.3 Hệ mật Elgamal Giả sử A muốn chuyển cho B thông tin mật P (đã chuyển sang dạng số hóa nằrn khoảng giũa P) Khi đó, A cần chọn ngẫu nhiên số A nằm khoảng P— gửi cho B cặp số (Ga , PGAKB) C ặ p s ố dễ dàng tính nhờ biết trước phần tử sinh G khóa c ô n g kliai GK° B Klii nliận cặp số này, B tínli P thủ tục gồm hai bước: Lấy số tliứ (trong cặp số) nâng lên lũy thừa với bậc klióa bí mật rriìnli, tức nhận được: (ga)k" = 9a-kB Lấy nghịch đảo số vừa Iihận theo mod P thuật toán Euclid nhân với số thứ hai (trong cặp số nói), tức có: p gakB = gaìỉB p = p Rõ ràng, B không thực điều này, hệ mã an toàn Tuy nhiên A cần pliải tliận trọng klii lấy số ngẫu nhiên A để không đoán (rriỗi lần liên dùng rriột số khác n h a u ) N ế u nliư kẻ thứ ba có A till anil ta có tliể lấy cliìa klióa công khai B để nâng lên lũy thừa bậc A giải mã P B làm bươc thứ hai 2.5 Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức Hệ mật mã ba lô Vào Iiăm 1978, Merkle Hellman đề xuất thuật toán tlieo mô hình khóa công khai dựa "bài toán Ba lô" Bài toán ba lô phát biểu sau: Cho tập hợp số nguyên dương ữj, < Ỉ < K rriột số T dương Hãy tìm tập liỢp số S c {1, 2,K } clio: ÌES Từ toán Ba lô kliảo sát khả vận dụng để tạo thuật toán rriã kliối mật mã khóa công khai Sơ đồ sau: • Chọn rriột vecto a = (ữi, 02, ữ k ) - gọi vecto mang (cargo vector) • Với kliối tin X = (Xi, X2,X k ) ĩ ta tliực liiện pliép mã lióa sau: T=ỵ2 «i1i i=l,k Sơ đồ tliể hàm chiều: mã hóa tili tính toán dễ dàng việc giải mã, tức tính hàm ngược nó, khó Bây ta tiếp tục tìm cách đưa vào cửa sập để giải mã làm dễ dàng (nếu biết cửa sập bí rriật) Merkle áp dụng mẹo dựa sử dụng vecto mang đặc biêt vecto siêu tăng sau Một vecto siêu tăng thành phần Ỉ + lớn tổng giá trị thành phần đứng trước (1-7- Ỉ) Khi sử dụng vecto siêu tăng làm vecto mang thấy việc tính ngược, tức giải toán ba lô dễ dàng nhờ giải tlmật tliain lam đơn giản Ớ bước i, tổng đích TJ (tức phải tìrri CIỊ để tổng TỊ), ta đem so sánh T Ị với tliànli phần 1ỚI1 nliất pliần CÒI1 lại vecto, lớn thành pliần chọn tức XI tương ứng 1, ngược lại XỊ tương ứng San tiếp tục chuyển sang bước sau với: Ti +1 = T ị — X i Việc giải mã là: Cho mã T, vecto mang a, tìm mãn T = ữ i X i i=ì,k Xị cho tliỏa M ặc dù ta tliấy sử dụng vecto siêu tăng vecto mang cho phép giải mã dễ dàng nhưng, tất nhiên, ta phải làm có người cliủ biết sử dụng I1 Ó CÒI1 kẻ thù tliì không Tốm lại, cần tạo bí mật cửa sập Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức thông qua việc người chủ phải chủ động "ngụy trang" vecto siêu tăng để cliỉ có biết người không tliể lần Sơ đồ sau trình bày chế ngụy trang Vecto A' vecto siêu tăng bí mật, ngụy trang, tức biến đổi thông qua hàrn G chọn sẵn để tạo thành vecto A tính siêu tăng (thậm chí giảm); vecto A sử dụng làm vecto mang Tr o n g q u a t r ì n h g i ả i m ã , n g i g i Ả s ẽ t l i ự c h i ệ n m ộ t b i ế n đ ổ i v o d ữ liệu, sở áp dụng hàm ngược g ~ , chuyển việc giải mã thành giải toán ba lô với vecto siêu tăng vecto đa mang Pliép biến đổi G chọn phép nhân đồng dư vói giá trị khóa bí mật Tạo klióa: A chọn vecto siêu tăng: ữ ' (> < (^15 ^2’ ’*') I\ ^kì a ! giữ bí mật tức thành phần khóa bí mật CL (^15 0*2 •) •••5 ^K) ữj = N X A’Ị mod M\ Ỉ = 1, 2,K Còn klióa bí mật ba (AF,M,N) Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức Mã hỏa : Khi B muốn gửi thông báo X cho A, tính mã theo công tliức: T = ciiXi Giải mã : A nhận T, giải mã sau: Dể bỏ lớp ngụy trang, trước hết Ả tính n-1, tính T' = T X n~l mod m A biết T’ = A’.X liên cô ta dễ dàng giải X theo siêu tăng A ! Như vậy, ta xét xong sơ đồ cụ thể Merkle-Hellman liệ mật mã khóa công khai dựa toán ba lô! Kết luận Khóa luận đề cập tới hệ mã khóa công kliai điển hình để từ thấy tliâm nhập ngày mạnh mẽ Toán liọc vào lĩnh vực Vì thời gian có hạn nên khóa luận không tránh khỏi sai xót Vì vậy, tác giả mong Iihận đóng góp quý tliầy cô giáo bạn đọc Hà Nội, ngày 07 tháng 05 năm 2015 Sinh viên Đoàn Thị Thu Thảo m > ^2 a> ii spi mođul đồng dư số nguyên ngẫu nliiên n gọi nliân tử cho nguyên tố với m Klióa công kliai A vecto a tích a' với n: Sau cliọn số nguyên [...]... đổi chìa khóa của Diffle-Hellman Do liệ mật mã klióa công khai chậm hơn so với các liệ thống mã hóa đối xứng (cổ điền) nên người ta thường kết hợp với hệ mật mã đối xứng theo cácli sau: Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức liệ klióa công kliai dùng trao đổi klióa bí mật, sau klii có khóa bí mật người ta sẽ mã hóa bằng hệ mật mã đối xứng và truyền Dặc biệt, quá trình thống nhất về một khóa chung... trị khóa bí mật Tạo klióa: 1 A chọn một vecto siêu tăng: ữ ' (> < (^15 ^2’ ’*') I\ ^kì a ! được giữ bí mật tức là một thành phần của khóa bí mật CL (^15 0*2 •) •••5 ^K) ữj = N X A’Ị mod M\ Ỉ = 1, 2,K Còn klióa bí mật sẽ là bộ ba (AF,M,N) Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức Mã hỏa : Khi B muốn gửi một thông báo X cho A, anh ta tính mã theo công tliức: T = ciiXi Giải mã : A nhận được T, giải mã. .. mã, tức là để tính / -1 , người ta cần thuật toán và klióa Klióa này được gọi là khóa giải mã KD- Trong ví dụ này, giải mã bởi ánh xạ afin, nghĩa là p = a ~ l c — a ~ l b mod TV, vì vậy phép giải mã sử dụng thuật toán giống như phép mã hóa, ngoại trừ klióa klỉác, ở đây klioá giải mã Kd là cặp (a _1 , —a~ l b) Ta luôn giả sử rằng thuật toán giải mã và mã hóa là công khai và các khóa KE-) KD là bí mật. .. siêu tăng A ! Như vậy, ta đã xét xong sơ đồ cụ thể của Merkle-Hellman về liệ mật mã khóa công khai dựa trên bài toán ba lô! Kết luận Khóa luận chỉ đề cập tới những hệ mã khóa công kliai điển hình để từ đó chúng ta cũng thấy được sự tliâm nhập ngày càng mạnh mẽ của Toán liọc vào trong lĩnh vực này Vì thời gian có hạn nên khóa luận không tránh khỏi những sai xót Vì vậy, tác giả rất mong Iihận được sự đóng... định nghĩa hàm mã hóa / bởi quy tắc c = f ( P ) = p + b mod N Ví dụ, hệ mật Julius Caesar là trường hợp đặc biệt khi N = 26, B = 3 De giải mã một bản mã C G {0, 1 , i V — 1}, ta tính p = r l ( C ) = c — b mod N Giả sử thông tin mã hóa và giải mã không bí mật và dường như có thể đọc mã thông tin Dây được gọi là phá vỡ mã và tlieo klioa học mã được phá vỡ được gọi là mật rriã De pliá mã, ta cần liai... l à m ậ t m ã h ó a c ủ a P 2 , t l i ì C l + C 2 l à m ậ t m ã l i ó a c ủ a P ị + P2 ( t ấ t nhiên phải thêm mod N) 2.2 Ý tưởng về mật mã khóa công Hệ mật mã bao gồm phép mã hóa / từ tập V gồm khai tất cả các bản rõ đến tập C gồm tất cả các bản mã Tlmật ngữ "hệ mật mã" thường để cliỉ một họ các phép biến đổi, mỗi phép biến đổi tương ứng với một cách cliọn tham số (tập V và C cũng như ánh xạ /, I1... này, và do đó hệ mã này là rất an toàn Tuy nhiên A cần pliải tliận trọng klii lấy số ngẫu nhiên A để không ai có thể đoán được ra nó (rriỗi lần liên dùng rriột số khác n h a u ) N ế u nliư kẻ thứ ba có được A till anil ta có tliể lấy cliìa klióa công khai của B để nâng lên lũy thừa bậc A và giải mã ra P như B đã làm ở bươc thứ hai 2.5 Khóa luận tốt nghiệp GVHD: T.s Trần Vĩnh Đức Hệ mật mã sắp ba lô Vào... ) ( Q A — !)• Tiếp theo, A tính: n A PAQA, tp(n A ) = n A + l - p A - q A và, cũng tính khóa bí mật ẩA — ẽ~A m °d ip{ĩlÀ) Người ta công kliai khóa mã hóa KE,A = {n A ì e / 1) và giữ bí mật khóa giải mã KD,A = (j^A■) dÀ)- Pliép mã lióa là ánh xạ từ z/n^z vào chính Ĩ1 Ó cho bởi f ( P ) — P 6 A mod r i A Pliép giải mã là ánh xạ từ Z/nyịZ vào chính Ĩ1 Ó cho bởi / _1 (C) = C Ì A mod n A Dễ thấy, liai ánli... nhất về một khóa chung cho một liệ mật mã đối xứng có thể được tliực hiện rất hiệu quả nếu sử dụng hệ tliống klióa công kliai Dề xuất chi tiết đầu tiên hiện thực hóa điều này là của w Diffie và M.E Heilman Giả sử Ả và В muốn có chung một COI1 số để làm chìa khóa chung (cho một hệ mã đối xứng nào đó) Giả sử К A và KSS là khóa bí mật của A và В, còn ДКЛ và ДКВ là khóa công khai của A và B Vậy thì họ có thể... dụng mật mã thường có thiết bị mã lióa và giải mã cái mà được xây dựng thiết bị chỉ một loại của hệ mật Qua từng kì các thông tin về những loại có hệ thống đang sử dụng có tliể bị rò rỉ ra ngoài Do đó, để tăng sự bảo rriật chúng ta phải thường xuyên thay đổi lựa chọn tham số đã được sử dụng với liệ thống Tham số B được gọi là CHÌA KHÓA, lioặc chính xác hơn, được gọi là KHÓA MÃ HÓA Do vậy, loại liệ mật ... nghiên cứu Dối tượng: Mật mã khóa công khai Phạm vi: Tìm hiểu mật mã klióa công khai cliú trọng đến số hệ mã khóa công khai Nhiệm vụ nghiên cứu Nghiên cứu mật mã klióa công kliai Mục đích nghiên... liệ mật mã khóa công khai dựa toán ba lô! Kết luận Khóa luận đề cập tới hệ mã khóa công kliai điển hình để từ thấy tliâm nhập ngày mạnh mẽ Toán liọc vào lĩnh vực Vì thời gian có hạn nên khóa luận. .. mật mã khóa công khai hay phương pháp trao đổi khóa dựa tính toán khó khăn việc giải toán logarit rời rạc trường hữu hạn 2.4.1 Hệ trao đổi chìa khóa Diffle-Hellman Do liệ mật mã klióa công khai

Ngày đăng: 02/11/2015, 17:00

Mục lục

  • MẬT MÃ KHÓA CÔNG KHAI

    • Hà Nội, ngày 07 thảng 05 năm 2015 Sinh viên

    • Hà Nội, ngày 07 tỉiáng 05 năm 2015 Sinli viên

    • 1. Lý do chọn đề tài

    • 2. Đối tượng, phạm vi nghiên cứu

    • 3. Nhiệm vụ nghiên cứu

    • 4. Mục đích nghiên cứu

    • 5. Phương pháp nghiên cứu

    • 6. Nội dung khóa luận

    • Ví dụ 6. Ta có: 10780 = 22.5.72.11 và 4200 = 23.3.52.7 Vậy: UCLN(10780,4200) = 22.5.7 = 140.

      • (i) a|m, bm,

      • BCNN(a, 6) =1 ab I /ƯCLN(a,b)

        • <p(n) = I Ü < b < n/UCLN(ò, n) = 1 I

        • 1.4 Đồng dư thức

          • Một số tính chất của phép đồng dư

          • *{n)=p“‘ 0 - ft)(' - i) -p?r 0 - B=n3 0 - ị)

            • ar 1 = S[ mod m aT2 — s-2 mod m

            • 1.5 Trường hữu hạn

              • Xя -X = 0

              • 2.2 Ý tưởng về mật mã khóa công khai

              • nA PaQa, tp(nA) = nA + l-pA-qA và, cũng tính khóa bí mật

                • f(P) — P6a mod riA-

                • 2.4 Logarit rời rạc

                  • К = Ya = (gbỴ = (gaỶ = xb

                  • 2. B tính ej3 và gửi PeAeB cho A.

                    • (ga)k" = 9a-kB

                    • p gakB = gaìỉB p = p

                      • 2.5 Hệ mật mã sắp ba lô

                        • Với một kliối tin X = (Xi, X2,Xk)ĩ ta tliực liiện pliép mã lióa như sau:

                        • Kết luận

                          • Hà Nội, ngày 07 tháng 05 năm 2015 Sinh viên

Trích đoạn

Tài liệu cùng người dùng

Tài liệu liên quan