TIỂU LUẬN môn lý THUYẾT số số học và lý THUYẾT mã

8 517 0
TIỂU LUẬN môn lý THUYẾT số số học và lý THUYẾT mã

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

Thông tin tài liệu

Số học lý thuyết mật mã ___________________________________________________________________________ LỜI NÓI ĐẦU Khoảng ba thập kỷ gần đây, phát triển Tin học làm thay đổi nhiều ngành truyền thống Lý thuyết số. Một phương hướng số học đời phát triển mạnh mẽ: Số học thuật toán. Nội dung tiểu luận đề cập đế nguyên lý chung mật mã khóa công khai hệ mã RSA. Lý chọn đề tài mang tính thời sâu sắc. Nội dung tiểu luận chia làm hai phần: Phần A: Nguyên lý chung Trình bày nguyên lý chung mật mã khóa công khai. Phần B: Hệ mã RSA Trình bày hệ mã RSA ứng dụng đời sống. Vì thời gian trình độ có hạn nên tiểu luận chắn không tránh khỏi có nhiều sai sót. Rất mong góp ý Thầy giáo hướng dẫn bạn để tiểu luận hoàn thiện hơn. Chúng xin chân thành cảm ơn hướng dẫn nhiệt tình GS- TSKH Hà Huy Khoái đóng góp ý kiến bạn khóa Cao học K9 Trường Đại học Quy Nhơn giúp hoàn thành tốt tiểu luận này. Số học lý thuyết mật mã ___________________________________________________________________________ PHẦN A. NGUYÊN LÝ CHUNG Hệ mật mã mà nguyên cứu lập theo nguyên tắc việc biết khóa lập mã không cho phép tìm khóa giải mã thời gian chấp nhận được. Vì cá thể cần giữ bí mật khóa giải mã riêng mình, khóa lập mã công bố công khai. Trong trường hợp cá thể bị lộ khóa giải mã mình, bí mật cá thể lại không bị ảnh hưởng. Lý việc xây dựng hệ mã điều xét đến hệ mã mũ: độ phức tạp thuật toán tìm logarit modulo p lớn. Trước hết, ta nói sơ qua nguyên tắc hệ mã khóa công khai. Giả sử hệ thống xét có n cá thể trao đổi thông tin mật. Mỗi cá thể chọn cho khóa lập mã k công thức mã hóa E(k), thông báo công khai. Như có n khóa lập mã công khai k 1, k2, …, kn. Khi cá thể thứ i muốn gửi thông báo cho cá thể thứ j, trước đây, chữ thông báo chuyển thành số, nhóm thành khối có độ dài đó. Sau đó, khối P văn mã khóa khóa lập mã E(k j ) cá thể j (đã thông báo công khai), gửi dạng C = E(k j ) (P). Để giải mã thông báo này, cá thể thứ j cần dùng khóa giải mã (bí mật riêng cho mình) D k j D k j (C) = D k j , E k j (P) = P, D k j E k j khóa giải mã lập mã cá thể thứ j. Các cá thể hệ thống, nhận văn mật, giải mã, việc biết khóa lập mã E k j không cho phép tìm khóa giải mã D k j . Số học lý thuyết mật mã ___________________________________________________________________________ PHẦN B. HỆ MÃ RSA 1. Hệ mã RSA Hệ RSA xây dựng sở mã mũ, khoá lập mã cặp (e, n) gồm số mũ e số modun n. Số n dùng tích hai số nguyên tố lớn đó, n = pq, e chọn cho (e, φ (n)) = , φ (n) hàm Euler (trong trường hợp φ (n) = (p – 1)(q – 1). Để mã hoá thông báo, trước tiên ta mã hoá chữ thành số tương ứng nhóm thành khối với độ dài đủ lớn (tuỳ thuộc khả tính toán không vượt số n) với số chẵn chữ số. Để mã hoá khối P văn bản, ta lập khối C văn mật công thức: E(P) ≡ C ≡ Pe (mod n), < C < n. Quá trình giải mã đòi hỏi phải biết nghịch đảo d e modulo φ (n) . Nghịch đảo tồn theo điều kiện (e, φ (n) ) = 1. Muốn giải mã khối C văn mật, ta tính D(C ) ≡ C d ≡ ( P e ) d ≡ P ed ≡ P kφ ( n )+1 ≡ ( Pφ ( n ) ) k P ≡ P (mod n), ed = k φ (n) + số nguyên k đó, ed ≡ 1(mod φ (n) ), định lý Euler ta có: Pφ ( n ) ≡ 1(mod p) , (P,n) = (chú ý rằng, xác suất để P n không nguyên tố nhỏ, điều xảy P có ước p q). Cặp (d,n) gọi khoá giải mã. Ví dụ: lấy n = 53.61 = 3233 e = 17. Ta có (e, φ (n)) = . Giả sử ta cần mã hóa thông báo sau: ĐA GƯI TIÊN Trước tiên ta chuyển chữ văn thành số tương ứng nhóm chúng thành khối chữ số. Ta có: 0701 1026 1224 1209 1628 Ta mã khóa khối nhờ công thức C ≡ P17 (mod 3233) Ta lại dùng công thức bình phương liên tiếp. Chẳng hạn, khối đầu tiên, ta nhận được: (701)17 ≡ 140(mod 3233) Mã hóa toàn văn bản, ta văn sau đây: 140 721 1814 1819 361 Khi nhận văn mật này, để giải mã, ta phải tìm nghịch đảo d e modulo φ (3233) . Ta có φ (53.61) = 52. 60 = 3120. Dùng thuật toán Euclid mở rộng, ta tính d = 2753. Như vậy, để giải mã khối C ta dùng công thức P ≡ C 2753 (mod 3233), ≤ P ≤ 3233 . Có thể thử lại C 2743 ≡ ( P17 ) 2753 ≡ P ( P 3210 )15 ≡ P (mod 3233) , Số học lý thuyết mật mã ___________________________________________________________________________ Ở ta dùng định lý Euler để nhận Pφ (3233) ≡ P3120 ≡ 1(mod 3233) , (P,3233) = (điều cho khối văn chúng ta). Bây ta rằng, hệ mã RSA thỏa mãn nguyên tắc hệ mã khóa công khai. Trước tiên, ta ý rằng, cá thể phải chọn hai số nguyên tố lớn p q, cỡ chừng 100 chữ số thập phân. Điều thực phút nhờ máy tính. Khi số nguyên tố p q chọn, số mũ dùng để mã hóa e lấy cho (e, φ (qp)) = 1. Nói chung nên chọn e số nguyên tố tùy ý lớn q p. Số e chọn phải thiết thỏa mãn 2e > n = pq. Nếu điều kiện không thỏa mãn, ta có C = Pe < n, để tìm P, ta việc tính bậc e C. Khi điều kiện 2e > n thỏa mãn, khối P khác mã hóa nâng lên lũy thừa lấy đồng dư theo modulo n. Ta cần phải chứng tỏ rằng, việc biết khóa lập mã (công khai) (e, n) không dẫn đến việc tìm khóa giải mã (d,n). Chú ý rằng, để tìm nghịch đảo d e modulo φ (n) , trước tiên phải tìm φ (n) . Việc tìm φ (n) không dễ so với phân tích n, vì, biết φ (n) n, ta phân tích n =pq. Thật vậy, ta có: p + q = n - φ (n) +1 p − q = ( p + q ) − pq = ( p + q ) − 4n Từ công thức tìm q p. Nếu chọn số p q khoảng 100 chữ số thập phân, n có khoảng 200 chữ số thập phân. Để phân tích số nguyên cỡ lớn thế, với thuật toán nhanh với máy tính đại nhất, ta hàng tỷ năm! Có vài điều cần lưu ý chọn số p q để tránh rơi vào trường hợp tích pq bị phân tích nhanh nhờ thuật toán đặc biệt: q p cần chọn cho p – q – phải có thừa số nguyên tố lớn, ước chung lớn (p – 1, q – 1) phải nhỏ, q p phải có số chữ số khai triển thập phân khác không nhiều. 2.Xác nhận chủ thể với hệ mã RSA Số học lý thuyết mật mã ___________________________________________________________________________ Có thể nảy câu hỏi: hệ thống nhiều cá thể tham gia, khóa lập mã lại công khai, tránh trường hợp cá thể “mạo danh” cá thể khác để gửi thông báo cho cá thể thứ ba? Nói cách khác “kí tên” thông báo mật? Vấn đề giải sử dụng hệ mã RSA. Cách làm đơn giản sau: Để gửi văn P cho ông J, trước tiên ông I dùng khóa công khai E j ( ông J) để tính Ej(P), sau lại dùng khóa bí mật để tính D i(Ej(P)) = C gửi đi. Khi nhận C, ông J dùng khóa công khai E i ( ông I) để tính E i(C) = Ei(Di(Ej(P))) = Ej(P), sau dùng khóa bí mật Dj để tính Dj(Ej(P)) = P. Thủ tục tránh mạo danh xảy nêu trên, giá phải trả không ít: cần phải thêm lần mã hóa toàn văn bản. Với tốc độ xử lý chậm RSA điều khả thi văn nhỏ. Với văn lớn (thí dụ luật, văn kiện, tập hồ sơ,…) cần “biến thể” tinh tế giao thức trên, với tham gia hàm băm mật mã. Hàm có khả “chiết xuất” từ văn (có độ dài tùy ý) xâu ký tự( có độ dài xác định khoảng vài trăm bít) đại diện cho văn đó, để người ta “ ký” lên xâu ký tự đại diện thay “ký” trực tiếp vào văn bản. Để nắm chất giao thức ký điện tử này, ta cần phải hiểu chất hàm băm mật mã. Định nghĩa: Hàm băm H(x) từ tập xâu ký tự có độ dài vào tập xâu ký tự có độ dài xác định k hàm tính toán dễ dàng (tốc độ nhanh) với giá trị biến x, đồng thời thỏa mãn điều kiện sau: 1) Không thể tìm (trong thời gian chấp nhận được) hai giá trị x ≠ x2 mà lại có H(x1) = H(x2)(tính kháng xung đột); 2) Cho y tập giá trị hàm H, tìm x cho H(x) = y (tính kháng tiền ảnh) Tính chất thứ đảm bảo hai văn khác mà lại có giá trị băm nhau. Tính chất thứ hai cho thấy “mạo” văn khác có giá trị băm với văn cho trước. Như giá trị băm văn xem đại diện cho văn hai khía cạnh “độc tôn” “toàn vẹn”: văn có riêng giá trị băm, văn bị thay đổi giá trị băm thay đổi. Như vậy, toàn vẹn văn x đồng nghĩa với toàn vẹn giá trị băm H(x). Với hàm băm mật mã, giao thức ký điện tử thực cách hiệu hẳn. Thay phải mã văn x (bằng khóa mật mình), người gửi I cần mã giá trị băm H(x), tức tính S = Di ( H ( x)) = ( H ( x)) d mod ni . Trước hết cần lưu ý việc ký văn không bao hàm việc bảo mật (trên thực tế nhiều văn không cần giữ bí mật, mà cần bảo đảm toàn vẹn tính xác thực chủ nhân phát hành văn bản, chứng chỉ, văn bằng, thông tư,…). Cho nên , không cần phải bảo mật văn x, ông I gửi văn x với “chữ ký” S đến cho người nhận. Người nhận có i Số học lý thuyết mật mã ___________________________________________________________________________ thể kiểm tra tính “xác thực” ông I việc lấy chìa khóa công khai ông I để giải mã “ chữ ký” S tìm H(x), sau kiểm tra toàn vẹn văn x ( không bị thay đổi đường đi) cách cho hàm H băm văn x nhận so sánh giá trị băm với giá trị nhận ( ông I gửi). Nếu hai giá trị khớp người nhận biết đích xác văn ông I gửi không bị thay đổi đường ( người gửi I phủ nhận “ký” văn đó, có ông ta có khóa bí mật di). Nếu muốn kết hợp việc ký văn với bảo mật văn sau tính chữ ký S, người gửi I cần tiến hành mã hóa toàn văn chữ ký S chìa khóa công khai người nhận J. Còn ông phải thêm bước giải mã gói tin nhận ( chìa khóa bí mật mình) trước tiến hành kiểm chữ ký tính toàn vẹn văn bản. Số học lý thuyết mật mã ___________________________________________________________________________ TÀI LIỆU THAM KHẢO [ 1] Hà Huy Khoái. Bài giảng môn Lý thuyết số. [ 2] Hà Huy Khoái, Phạm Huy Điển. Số học thuật toán – sở lý thuyết tính toán thực hành. NXB ĐHQG Hà Nội 2003. Số học lý thuyết mật mã ___________________________________________________________________________ MỤC LỤC TRANG 1 2 1.Phần A. 2.Nguyên lý chung 3.Phần B 3.1 Hệ mã RSA 3.2 Xác nhận chủ thể với hệ RSA 4.Tài liệu tham khảo . của Lý thuyết số. Một phương hướng mới của số học đã ra đời và phát triển mạnh mẽ: Số học và thuật toán. Nội dung cuốn tiểu luận này đề cập đế những nguyên lý chung của mật mã khóa công khai và. Bài giảng môn Lý thuyết số. [ ] 2 Hà Huy Khoái, Phạm Huy Điển. Số học thuật toán – cơ sở lý thuyết và tính toán thực hành. NXB ĐHQG Hà Nội 2003. 7 Số học và lý thuyết mật mã ___________________________________________________________________________ MỤC. nhất (p – 1, q – 1) phải nhỏ, q và p phải có số chữ số trong khai triển thập phân khác nhau không nhiều. 2.Xác nhận chủ thể với hệ mã RSA 4 Số học và lý thuyết mật mã ___________________________________________________________________________

Ngày đăng: 15/09/2015, 15:17

Từ khóa liên quan

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

Tài liệu liên quan