1. Trang chủ
  2. » Luận Văn - Báo Cáo

Hàm số euler và ứng dụng trong thuật toán mật mã hóa khóa công khai rsa

45 41 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 45
Dung lượng 619,79 KB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH TRẦN THỊ THANH TÂM HÀM SỐ EULER VÀ ỨNG DỤNG TRONG THUẬT TỐN MẬT MÃ HỐ KHỐ CƠNG KHAI RSA LUẬN VĂN THẠC SĨ TOÁN HỌC Nghệ An - 2016 BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC VINH TRẦN THỊ THANH TÂM HÀM SỐ EULER VÀ ỨNG DỤNG TRONG THUẬT TỐN MẬT MÃ HỐ KHỐ CƠNG KHAI RSA Chuyên ngành: ĐẠI SỐ VÀ LÝ THUYẾT SỐ Mã số: 60 46 01 04 LUẬN VĂN THẠC SĨ TOÁN HỌC Người hướng dẫn khoa học PGS.TS NGUYỄN THÀNH QUANG Nghệ An - 2016 MỤC LỤC Mục lục Mở đầu TỔNG QUÁT HOÁ EULER CỦA ĐỊNH LÝ FERMAT BÉ 1.1 Hàm số Euler 1.2 Định lý Euler Định lý Fermat bé 10 1.3 Tính tốn đồng dư lũy thừa lớn 16 1.4 Số giả nguyên tố sở 19 ỨNG DỤNG CỦA HÀM SỐ EULER TRONG ĐẢM BẢO AN TOÀN CỦA MẬT MÃ 22 2.1 Sơ lược lý thuyết mật mã 22 2.2 Mật mã khoá công khai 26 2.3 Cơ sở số học hệ mã RSA 31 Kết luận 42 Tài liệu tham khảo 44 MỞ ĐẦU Lý chọn đề tài Thuật toán RSA Ron Rivest, Adi Shamir Len Adleman mô tả lần vào năm 1977 Học viện Cơng nghệ Massachusetts (MIT) Tên thuật tốn lấy từ chữ đầu tên tác giả Thuật toán RSA MIT đăng ký sáng chế Hoa Kỳ vào năm 1983 Thuật toán RSA có hai khóa: khóa cơng khai (hay khóa cơng cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng trình mã hóa giải mã Khóa cơng khai cơng bố rộng rãi cho người dùng để mã hóa Những thơng tin mã hóa khóa cơng khai giải mã khóa bí mật tương ứng Nói cách khác, người mã hóa có người biết khóa cá nhân (bí mật) giải mã Độ an toàn hệ thống mã RSA dựa hai tốn số học: tốn phân tích thừa số nguyên tố số nguyên lớn tốn RSA có sử dụng cơng cụ hàm số Euler Nếu hai tốn khó (khơng tìm thuật tốn hiệu để giải chúng) khơng thể thực việc phá mã toàn hệ thống mã RSA Hiện tại, chưa có phương pháp tìm máy tính để giải toán RSA thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự khơng tồn thuật tốn) Trong lý thuyết số, hàm số Euler ký hiệu ϕ có giá trị số nguyên dương n số số nguyên dương nhỏ n nguyên tố với n Hàm số Euler có nhiều ứng dụng tin học mật mã, đặc biệt bảo đảm an toàn cho hệ thống mật mã khố cơng khai RSA Trên sở tham khảo tài liệu, lựa chọn đề tài luận văn Hàm số Euler ứng dụng thuật tốn mật mã hóa khóa cơng khai RSA Mục đích nghiên cứu - Tìm hiểu sâu ứng dụng hàm số số học Euler lý thuyết mật mã - Tìm hiểu lý thuyết mật mã khố cơng khai - Tìm tịi số ứng dụng mã RSA mã hố cơng khai chữ ký điện tử Đối tượng nghiên cứu - Nhập môn Lý thuyết mật mã - Mã RSA - Ứng dụng Số học hệ mã RSA Phương pháp nghiên cứu - Sử dụng công cụ hàm số số học Euler, Định lý Euler, Định lý Fermat bé Định lý phần dư Trung Hoa kỹ thuật mật mã - Sử dụng kỹ thuật đồng dư đảm bảo toán học mã RSA Ý nghĩa khoa học thực tiễn Trong mật mã học, RSA thuật tốn mật mã hóa khóa cơng khai Đây thuật tốn phù hợp với việc tạo chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu tiến vượt bậc lĩnh vực mật mã học việc sử dụng khóa cơng cộng RSA sử dụng phổ biến thương mại điện tử cho đảm bảo an toàn với điều kiện độ dài khóa đủ lớn Do vậy, việc tìm hiểu mã RSA ứng dụng sâu sắc Số học lĩnh vực có ý nghĩa khoa học thực tiễn Tổng quan cấu trúc luận văn Ngoài phần mở đầu, kết luận tài liệu tham khảo, luận văn gồm hai chương Chương 1: Trình bày nội dung số học có liên quan: Định nghĩa tính chất hàm số Euler; Định lý Euler; Định lý Fermat bé; ứng dụng Định lý Euler toán tìm số dư; ứng dụng Định lý Fermat bé việc đề xuất khái niệm số giả nguyên tố Chương 2: Giới thiệu Lý thuyết mật mã, khoá công khai ứng dụng hàm Euler lập mã, giải mã đảm bảo an toàn mã khố cơng khai RSA Luận văn hồn thành hướng dẫn PGS.TS Nguyễn Thành Quang Nhân dịp này, tơi xin bày tỏ lịng kính trọng biết ơn sâu sắc tới thầy giáo hướng dẫn khoa học, dành nhiều thời gian công sức giúp hồn thành luận văn Nhân dịp tơi xin gửi lời cảm ơn đến thầy cô giáo thuộc chuyên ngành Đại số Lý thuyết số, Khoa Sư phạm Tốn học, Phịng Đào tạo Sau Đại học – Trường Đại học Vinh tận tình giảng dạy, hướng dẫn giúp đỡ học tập nghiên cứu Luận văn không tránh khỏi thiếu sót, chúng tơi mong bảo, góp ý thầy cô giáo bạn đồng nghiệp Nghệ An, tháng 06 năm 2016 Tác giả CHƯƠNG TỔNG QUÁT HOÁ EULER CỦA ĐỊNH LÝ FERMAT BÉ Nhà toán học người Pháp Pierre de Fermat (1601 – 1665) lần đầu thông báo định lý thư đề ngày 18 tháng mười, năm 1640 cho bạn ông Frénicle de Bessy Như thường lệ, Fermat không chứng minh định lý xem thông báo Tên gọi "Định lý bé Fermat" dùng lần đầu vào năm 1913 Zahlentheorie Kurt Hensel Định lý Fermat bé tổng quát hóa Định lý Euler 1.1 Hàm số Euler Trong hàm số số học, hàm số Euler định nghĩa sau đây, có vai trị quan trọng toán học tin học 1.1.1 Định nghĩa Cho n số tự nhiên khác không Hàm số Euler ϕ(n) hàm số số học có giá trị n số số tự nhiên khác 0, không vượt n nguyên tố với n: ϕ (n) = 1≤m≤n (n,m)=1 Từ định nghĩa đây, ta có hệ quả: i) ϕ (1) = ii) Số tự nhiên p > số nguyên tố ϕ (p) = p − 1.1.2 Định nghĩa Hệ thặng dư đầy đủ modn tập hợp gồm n số nguyên đôi không đồng dư với theo modn 1.1.3 Bổ đề Cho m, n hai số nguyên dương, nguyên tố Khi đó, hàng bảng số sau hệ thặng dư đầy đủ modn: m + 2m + (n − 1)m + m + 2m + (n − 1)m + m 2m 3m nm Chứng minh Ta xét hàng thứ r tổng quát Với ≤ x, y ≤ n − 1, giả sử xm + r ≡ ym + r ( mod n) Khi từ giả thiết m n nguyên tố nhau, ta suy x ≡ y (modn) Do đó, hàng bảng số gồm n số nguyên phân biệt đôi không đồng dư với theo modn, hay hàng hệ thặng dư đầy đủ modn 1.1.4 Định lí Hàm số Euler ϕ (n) hàm có tính chất nhân, nghĩa với m n hai số nguyên dương nguyên tố nhau, ta có: ϕ (mn) = ϕ (m) ϕ (n) Chứng minh Ta xếp tất số ngun dương khơng vượt q tích mn thành bảng số Giả sử r số nguyên dương không vượt m (m, r) = d > Khi đó, hàng thứ r khơng có số ngun tố với mn Vì để tính giá trị ϕ (mn) ta xét số hàng thứ r với (m, r) = Các số hàng nguyên tố với m Ngoài ra, theo Bổ đề 1.1.3, số hàng lập thành hệ thặng dư đầy đủ modn, nghĩa có ϕ (n) số hàng nguyên tố với n Do đó, hàng có ϕ (n) số nguyên tố với mn Có tất ϕ (m) hàng Vì vậy, bảng số có ϕ (m) ϕ (n) số nguyên tố với mn , hay ϕ (mn) = ϕ (m) ϕ (n) 1.1.5 Bổ đề Nếu p số nguyên tố k số ngun dương ta có: ϕ pk = pk − pk−1 = pk − p Chứng minh Theo định nghĩa hàm Euler ϕ (n), ta có ϕ(pk ) = = pk − 1= k k 1≤m≤p (m, pk ) = 1≤m≤p (m, p) = = pk − k 1≤m≤p (m, p) = 1 1≤m≤p m p k Ta thấy rằng, số nguyên dương không vượt pk chia hết cho p phải có dạng sp, p ≤ s ≤ pk−1 Do đó, có pk−1 số Vì vậy, ta có ϕ pk = pk − pk−1 = pk − p 1.1.6 Cơng thức tính giá trị hàm số Euler Giả sử số tự nhiên n > có dạng phân tích tiêu chuẩn n = pα1 pα2 · · · pαk k Khi đó, ta có công thức: ϕ (n) = n − p1 1− p2 ··· − pk Chứng minh Do hàm Euler có tính chất nhân, nên áp dụng Bổ đề 1.1.5, ta có ϕ (n) = ϕ (pα1 pα2 · · · pαk k ) = ϕ (pα1 ) ϕ (pα2 ) · · · ϕ (pαk k ) = pα1 pα1 − p11 pα2 pα2 − p12 · · · pαk k pαk k − p1k = pα1 pα2 · · · pαk k − =n 1− p1 1− p2 p1 p2 − p1k 1− ··· ··· − pk Ta có cơng thức cần chứng minh 1.1.7 Định lí Giả sử n số nguyên dương Khi đó, ta có cơng thức sau gọi hệ thức Gauss n = ϕ (d) , tổng lấy theo d|n ước số tự nhiên d n 10 Chứng minh Thật vậy, n = cơng thức Nếu n > có dạng phân tích tiêu chuẩn n = pα1 pα2 pαk k , áp dụng tính chất nhân hàm số Euler ta ϕ (d) = 0≤βi ≤αi ;i=1, k d|n = 0≤βi ≤αi ;i=1, ,k k = i=1 k = i=1 ϕ pβ1 pβ2 pβk k ϕ pβ1 ϕ pβ2 ϕ pβk k = k αi i=1 βi =0 ϕ pβi i + (pi − 1) + p2i − pi + · · · + pαi i −1 − pαi i −2 + pαi i − pαi i −1 pαi i = n Hệ thức Gauss chứng minh Ta xét minh hoạ hệ thức Gauss số cụ thể sau: ϕ (d) 10 = + + + = ϕ (1) + ϕ (2) + ϕ (5) + ϕ (10) = d|10 ϕ (d) 15 = + + + = ϕ (1) + ϕ (3) + ϕ (5) + ϕ (15) = d|15 1.2 Định lý Euler Định lý Fermat bé 1.2.1 Định nghĩa Hệ thặng dư thu gọn modn tập hợp gồm ϕ (n) số nguyên đôi không đồng dư với theo modn nguyên tố với n 1.2.2 Định lí Giả sử a số nguyên cho a n nguyên tố Khi đó, r1 , , rϕ(n) hệ thặng dư thu gọn modn ar1 , , arϕ(n) hệ thặng dư thu gọn modn Chứng minh Với ≤ i = j ≤ n, giả sử ari ≡ arj (modn), từ giả thiết a n nguyên tố ta suy ri ≡ rj (modn) Điều trái với giả thiết r1 , , rϕ(n) hệ thặng dư thu gọn Như vậy, số nguyên hệ ar1 , , arϕ(n) đôi không đồng dư với theo modn Cũng từ giả 31 tìm dạng cơng Một điểm yếu tiềm tàng việc sử dụng khóa bất đối xứng khả bị công dạng kẻ công đứng (man in the middle attack): kẻ công lợi dụng việc phân phối khóa cơng khai để thay đổi khóa cơng khai Sau giả mạo khóa cơng khai, kẻ cơng đứng bên để nhận gói tin, giải mã lại mã hóa với khóa gửi đến nơi nhận để tránh bị phát Dạng công kiểu phịng ngừa phương pháp trao đổi khóa an tồn nhằm đảm bảo nhận thực người gửi tồn vẹn thơng tin Một điều cần lưu ý phủ quan tâm đến dạng cơng này: họ thuyết phục (hay bắt buộc) nhà cung cấp chứng thực số xác nhận khóa giả mạo đọc thơng tin mã hóa 2.3 Cơ sở số học hệ mã RSA Thuật toán RSA Ron Rivest, Adi Shamir Len Adleman mô tả lần vào năm 1977 Học viện Công nghệ Massachusetts (MIT), Hoa Kỳ Tên thuật toán lấy từ chữ đầu tên ba tác giả Trong mật mã học, RSA thuật tốn mật mã hóa khóa cơng khai Đây thuật toán phù hợp với việc tạo chữ ký điện tử đồng thời với việc mã hóa Nó đánh dấu tiến vượt bậc lĩnh vực mật mã học việc sử dụng khóa cơng cộng RSA sử dụng phổ biến thương mại điện tử cho đảm bảo an tồn với điều kiện độ dài khóa đủ lớn 2.3.1 Thuật tốn RSA Thuật tốn RSA có hai khóa: khóa cơng khai (hay khóa cơng cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng q trình mã hóa giải mã Khóa cơng khai cơng bố rộng rãi cho người dùng để mã hóa Những thơng tin mã hóa khóa cơng khai giải mã khóa bí mật tương ứng Nói cách khác, người mã hóa có người 32 biết khóa cá nhân (bí mật) giải mã Ta mơ trực quan hệ mật mã khố cơng khai sau: B muốn gửi cho A thông tin mật mà B muốn A đọc Để làm điều này, A gửi cho B hộp có khóa mở sẵn giữ lại chìa khóa B nhận hộp, cho vào tờ giấy viết thư bình thường khóa lại (như loại khố thơng thường cần sập chốt lại, sau sập chốt khóa B mở lại - không đọc lại hay sửa thông tin thư nữa) Sau B gửi hộp lại cho A A mở hộp với chìa khóa đọc thơng tin thư Trong ví dụ này, hộp với khóa mở đóng vai trị khóa cơng khai, chìa khóa khóa bí mật Hệ mật mã RSA mô tả chủ yếu sau: Cho n = pq , với p, q số nguyên tố phân biệt đủ lớn Đặt P = C = Zn Chọn e nguyên tố với ϕ (n) Theo cơng thức tính giá trị hàm số số học Euler, ta có ϕ (n) = ϕ (pq) = (p − 1) (q − 1) Ta đặt K = {(n, e, d) : de ≡ 1(modϕ(n))} , (n, e) khố cơng khai, cịn d khố bí mật Định nghĩa: Hàm mã hố: y = ek (x) ≡ xa (modn) ; Hàm giải mã:dk (x) ≡ y a (modn) Việc phát minh phương pháp mã công khai tạo “cách mạng” cơng nghệ an tồn thơng tin điện tử Nhưng thực tiễn triển khai cho thấy tốc độ mã hoá khối liệu lớn thuật toán mã hoá công khai chậm nhiều so với hệ mã hố đối xứng 2.3.2 Thuật tốn tạo khóa cho mã RSA Giả sử A B cần trao đổi thông tin bí mật thơng qua kênh khơng an tồn Với thuật toán RSA, 33 bên A cần tạo cho cặp khóa gồm khóa cơng khai khóa bí mật theo bước sau: Chọn n = pq , với p, q số nguyên tố phân biệt đủ lớn (lựa chọn ngẫu nhiên độc lập) Tính n = pq Tính giá trị hàm số Euler: ϕ(n) = (p − 1)(q − 1) Chọn ngẫu nhiên số tự nhiên e cho < e < ϕ(n) e nguyên tố với ϕ(n) Tính số nguyên d cho < d < ϕ(n) de ≡ (modϕ(n)) - Cặp khoá công khai hệ mã RSA (n, e) ; - Khố bí mật hệ mã RSA d - Số nguyên e tạo thuật toán gọi số mũ mã hoá hệ mã RSA - Số nguyên d tạo thuật toán gọi số mũ giải mã hệ mã RSA Số nguyên n gọi mơđun hệ mã RSA 2.3.3 Q trình mã hóa RSA Giả sử A người muốn gửi thông điệp M cho B B người phải giải mã Sử dụng RSA, A cần làm theo bước sau: Xác thực khố cơng khai (n, e) Biểu diễn thông điệp M thành số nguyên m đoạn [0, n − 1] Tính c ≡ me (modn) (bằng cách sử dụng thuật tốn bình phương nhân liên tiếp để tính luỹ thừa modn) Gửi mã hố c tới B Nói chi tiết hơn: A chuyển M thành số m < n theo hàm đảo ngược (từ m xác định lại M) thỏa thuận trước Lúc B có m biết n e A gửi B tính c mã hóa m theo 34 cơng thức: c ≡ me (modn) 2.3.4 Q trình giải mã RSA Để có rõ M từ mã hoá c người A gửi tới, người B phải làm sau: Sử dụng khố bí mật d để thiết lập (khôi phục) m ≡ cd (modn) Nói chi tiết hơn: B nhận mã hố c từ A biết khóa bí mật d Do đó, B tìm m từ c theo công thức sau: c ≡ me (modn) Biết m, B tìm lại M theo phương pháp thỏa thuận trước Q trình giải mã RSA nói khả thi ta có cd ≡ (me )d (modn) hay cd ≡ med (modn) Vì de ≡ (modϕ(n)) ϕ(n) = (p − 1)(q − 1) nên ta suy ed ≡ (mod (p − 1)) ; ed ≡ (mod (q − 1)) Từ đó, sử dụng Định lý Fermat bé, ta có med ≡ m(modp) med ≡ m(modq) Do p q hai số nguyên tố n = pq , theo Định lý số dư Trung Hoa, ta có: med ≡ m(modn) hay cd ≡ m(modn) 35 Sau ví dụ với số cụ thể Ở sử dụng số nhỏ để tiện tính tốn, cịn thực tế phải dùng số có giá trị đủ lớn 2.3.5 Một số ví dụ mã hố giải mã RSA thơng điệp số Giả sử thông điệp mà A gửi cho B số Chúng ta giả thiết A B có cách chuyển đổi văn số Khi bước thực sau: Ví dụ 1 B chọn hai số nguyên tố p = 23, q = 41 B tính tích pq = 23 ∗ 41 = 943 Giá trị B chuyển tới A B chọn số nguyên e cho (e, (p − 1) (q − 1)) = (e, 22.40) = (e, 880) = 1, < e < 880 Chẳng hạn, chọn e = thành phần khố cơng khai A có khố cơng khai (n, e) = (943, 7) B gửi đến A sử dụng cặp khố cơng khai để mã hố thơng tin M gửi cho B Giả sử thông điệp chuyển đổi thành m = 35 A tính giá trị c cho c ≡ me (modn) Tính tốn cụ thể cho ta c = 545 Giá trị 545 mã A gửi tới cho B B muốn giả mã thơng điệp 545 B phải tự xác định số nguyên d thoả mãn ed ≡ (mod (p − 1) (q − 1)) Trong trường hợp 7d ≡ (mod880) hay d = 503 Sau có số mũ giải mã d , người B cần tính cd theo modn Trong trường hợp cụ thể 545503 (mod943) Sử dụng thuật tốn bình phương nhân liên tiếp (suy từ Định lý Euler), B giải mã thông điệp m = 35 Ví dụ p = 61 số nguyên tố thứ (giữ bí mật hủy sau tạo khóa); q = 53 số nguyên tố thứ hai (giữ bí mật hủy sau tạo khóa); 36 n = pq = 3233 môđun (công bố công khai); e = 17 số mũ cơng khai; d = 2753 số mũ bí mật Khóa cơng khai cặp (e, n) Khóa bí mật d Hàm mã hóa là: E(m) = me mod n = m17 mod 3233, với m văn rõ Hàm giải mã là: D(c) = cd mod n = c2753 mod 3233, với c văn mã Để mã hóa văn có giá trị 123, ta thực phép tính: E(123) = 12317 mod 3233 = 855 Để giải mã văn có giá trị 855, ta thực phép tính: D(855) = 8552753 mod 3233 = 123 2.3.6 Thực hành Maple để lập mã RSA > p := nextprime(1347823784782347823784482384581112894854378578345347857834323 4411145784353478578343463643457987554271777111543227899876234561117791) > q := nextprime(199933313458347853478523478234782378478237842378784534785 78337257834574785547545781776756543334544566668765432111176); > n := p*q; > e := nextprime(9832478234783231241411138238845784732482384782343234234738247 82347243478237847834785784578311113247823784784773473799369678909000266 266433117); > d := ‘mod‘(1/e, (p-1)*(q-1)); > vbgoc := "em xin chuc cac thay co manh khoe"; > str := convert (vbgoc, bytes); 37 > dectohex := [seq(convert(str[i], hex, decimal), i = nops(str))]; > hextostr := cat(seq(dectohex[i], i = nops(dectohex))); > number := convert(hextostr, decimal, hex); > vbmat := \ mod \ (\ &∧ \ (number, e), n); vbmat := 15029545471552010513821520299417956278524909108985933 12701402529087779246786346319210988003982585716774558 48261141989651115383028819632233645802423547978431529 35114724402059530234887097946751921527686291398951171 29980997714035 Giải mã : > vbmat := 15029545471552010513821520299417956278524909108985933119341270140252908 77792467863463192109880039825857167745587002248261141989651115383028819 63223364580242354797843152958445351147244020595302348870979467519215276 862913989511716810729980997714035: > p := nextprime(1347823784782347823784482384581112894854378578345347857834323 4411145784353478578343463643457987554271777111543227899876234561117791): > q := nextprime(1999333134583478534785234782347823784782378423787845347857833 7257834574785547545781776756543334544566668765432111176): > n := p*q: > e := nextprime(9832478234783231241411138238845784732482384782343234234738247 82347243478237847834785784578311113247823784784773473799369678909000266 266433117): > d := ‘mod‘(1/e, (p-1)*(q-1)): > giaima; 38 > vbmaso := \ mod\ (\ &∧ \ (vbmat, d), n): > hexstr := convert(vbmaso, hex, decimal): > hexlist := [seq(substring(hexstr, 2*i-1 2*i), i = (1/2)*length(hexstr))]: > declist := [seq(convert(hexlist[i], decimal, hex), i = nops(hexlist))]: > vbgiaima := convert(convert(convert(declist, list), bytes), name); vbgiaima := em xin chuc cac thay co manh khoe 2.3.7 Về độ an toàn hệ thống RSA Độ an toàn hệ thống RSA dựa hai tốn số học sau: Bài tốn phân tích thừa số nguyên tố số nguyên, gọi tắt toán IFP (The Integer Factorization Problem); Bài toán RSA Bài toán RSA toán sau: Cho số nguyên dương n = pq p, q số nguyên tố phân biệt đủ lớn; cho trước số nguyên c e cho (e, ϕ (n)) = Hãy tìm số nguyên m cho me ≡ c (modn) Hiện phương pháp triển vọng giải hai toán phân tích n thừa số nguyên tố Khi thực điều này, kẻ cơng tìm số mũ bí mật d từ khóa cơng khai giải mã theo quy trình thuật tốn Nếu kẻ cơng tìm hai số ngun tố p, q cho n = pq dễ dàng tìm giá trị (p − 1) (q − 1) qua xác định d từ e Chưa có phương pháp tìm máy tính để giải tốn thời gian đa thức (polynomial-time) Tuy nhiên người ta chưa chứng minh điều ngược lại (sự không tồn thuật toán) Ta cần phải chứng tỏ rằng, việc biết khố lập mã (hay khố cơng khai) (e, n) khơng dẫn đến việc tìm khố giải mã (d, n) Thật vậy, để tìm nghịch đảo d e modϕ (n) , trước hết phải tìm ϕ (n) Việc tìm ϕ (n) khơng dễ so với phân tích n , biết ϕ (n) n ta 39 phân tích n = pq Quả vậy, ta có p + q = n − ϕ (n) + 1; p − q = (p + q)2 − 4pq = (p + q)2 − 4n Từ cơng thức tìm số ngun tố p, q Vì hai tốn khó (khơng tìm thuật tốn hiệu để giải chúng) nên thực việc phá mã toàn RSA Tuy nhiên, phá mã phần phải ngăn chặn phương pháp chuyển đổi rõ an toàn Tại thời điểm năm 2005, số lớn phân tích thừa số ngun tố có độ dài 663 bít với phương pháp phân tán, khóa RSA có độ dài từ 1024 tới 2048 bít Một số chuyên gia cho khóa 1024 bít sớm bị phá vỡ (cũng có nhiều người phản đối việc này) Với khóa 4096 bít khơng có khả bị phá vỡ tương lai gần Do đó, người ta thường cho RSA đảm bảo an toàn với điều kiện n chọn đủ lớn Nếu n có độ dài 256 bít ngắn hơn, bị phân tích vài với máy tính cá nhân dùng phần mềm có sẵn Nếu n có độ dài 512 bít, bị phân tích vài trăm máy tính thời điểm năm 1999 Một thiết bị lý thuyết có tên TWIRL Shamir Tromer mô tả năm 2003 đặt câu hỏi độ an tồn khóa 1024 bít Vì người ta khuyến cáo sử dụng khóa có độ dài tối thiểu 2048 bít Hệ mật mã RSA, Rivest, Shamir Adleman [2] tìm ra, công bố lần vào tháng năm 1977 tạp chí Scientific American Hệ mật mã RSA sử dụng rộng rãi thực tiễn đặc biệt cho mục đích bảo mật xác thực liệu số Tính bảo mật an tồn chúng bảo đảm độ phức tạp toán số học tiếng toán phân tích số nguyên thành thừa số nguyên tố 2.3.8 Chữ ký số Mật mã khố cơng khai sử dụng theo nhiều cách khác Chữ ký số ví dụ minh chứng cho việc đảm bảo xác 40 thực người dùng toàn vẹn liệu Nếu người gửi A mã hố thơng điệp hay tài liệu với khố riêng giải mã thơng điệp với khố cơng A Do đó, người nhận chắn thơng điệp nhận A mã A có khố riêng Q trình mã hố thơng điệp với khố riêng người gửi gọi trình “ký số” Trong thực tế, q trình ký số thường khó Thay việc mã thơng điệp gốc với khố riêng người gửi có đại diện thơng điệp (bản băm) có độ dài cố định mã hoá với khoá riêng người gửi băm mã hố gắn vào với thơng điệp gốc Người nhận B sau nhận thông điệp giải mã băm với khoá cơng người gửi, sau băm thơng điệp kèm thuật toán băm tương ứng với thuật toán băm mà người gửi sử dụng B so sánh hai giá trị băm giống chắn thơng điệp A gửi cho B cịn ngun vẹn, đồng thời xác thực người gửi thông tin Tính tồn vẹn thơng điệp đảm bảo thay đổi bit thơng điệp gửi kết hai giá trị băm khác Tính xác thực người gửi đảm bảo có người gửi A có khố riêng để mã băm Chữ ký số chứng minh tính chống chối bỏ gốc có A có khố riêng dùng để ký số Sơ đồ chữ ký định nghĩa sau: Sơ đồ chữ ký năm (P, A, K, S, V), đó: P tập hữu hạn văn A tập hữu hạn chữ ký K tập hữu hạn khố S tập thuật toán ký V tập thuật toán kiểm thử Với k ∈ K , có thuật tốn ký sig k ∈ S, sigk : P → A 41 thuật toán kiểm thử verk ∈ V, verk : P × A → (D), sai (S), thoả mãn điều kiện sau với x ∈ P, y ∈ A: verk (x, y) = D khiy = sigk (x) , S khiy = sigk (x) RSA thuật tốn dùng nhiều cho mục đích ký số 42 KẾT LUẬN Trước nguy gia tăng công ngày tinh vi vào hệ thống Internet, mã hố thơng tin phương pháp để bảo vệ giá trị thông tin điện tử Có thể nói mã hố cơng cụ tự động quan trọng cho an ninh mạng truyền thông Với mục đích tìm hiểu sở Số học mã hố giải mã thơng tin, luận văn tập trung vào nội dung chủ yếu sau: Giới thiệu số khái niệm kết Số học có ứng dụng trực tiếp mã hố giải mã thông tin: Hàm Euler, Định lý số dư Trung Hoa, Định lý Euler, Định lý Fermat bé, Số giả nguyên tố sở 2 Trình bày tổng quan kiến thức Lý thuyết mật mã: Mã hố, giải mã, hệ thống mã hóa đối xứng bất đối xứng Trình bày hệ mật mã RSA ứng dụng hệ mã bảo mật an tồn thơng tin Luận văn phân tích sở số học, tính khả thi độ an tồn hệ mã RSA Cụ thể hố tìm hiểu chi tiết bước thuật tốn RSA Tìm hiểu ứng dụng trực tiếp hàm số số học Euler kết số học khác có liên quan việc xây dựng thuật toán hệ mã RSA Tìm tịi số ví dụ mã hoá giải mã RSA với số thông tin đơn giản 43 Thực hành mã hố giải mã thơng tin ngắn RSA phần mềm Maple Luận văn sâu tìm hiểu ứng dụng sâu sắc Số học số lĩnh vực cụ thể ngành Tốn - Tin học ứng dụng như: Thẻ tín dụng, thẻ ATM, Chứng khoán, Chữ ký điện tử, Xử lý ảnh, Bầu cử điện tử 44 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Phạm Huy Điển (2002), Tính tốn, lập trình giảng dạy tốn học Maple, Nhà xuất Khoa học Kỹ thuật, Hà Nội [2] Phạm Huy Điển, Hà Huy Khối (2004), Mã hóa thơng tin - Cơ sở toán học ứng dụng, Nhà xuất Đại học Quốc gia Hà Nội [3] Bùi Dỗn Khanh, Nguyễn Đình Thúc (2004), Mã hóa thơng tin, Lý thuyết ứng dụng, Nhà xuất Lao Động, TP Hồ Chí Minh [4] Hà Huy Khối, Phạm Huy Điển (2003), Số học thuật toán, Nhà xuất Đại học Quốc gia Hà Nội Tiếng Anh [5] Brassard (1988), Modern Cryptology Lecture Notes in Computer Science, Springer [6] M B Nathason (1999), Elementary Methods in Number Theory, Springer [7] D Stinson (1995), Cryptography: Theory and Pratice, CRS Press LLC [8] R Rivest, A Shamir, L Adleman (1977), A Method for Obtaining Digital Signatures and Public - Key Cryptosystems, Communications of the ACM, Vol 21 (2), pp 120–126 45 [9] Thomas H Cormen, Charles E Leiserson, Ronald L Rivest, and Clifford Stein (2001), Introduction to Algorithms, MIT Press and McGrawHill, pp 881-887 ... sáng chế Hoa Kỳ vào năm 1983 Thuật toán RSA có hai khóa: khóa cơng khai (hay khóa cơng cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng trình mã hóa giải mã Khóa cơng khai cơng bố... luận văn Hàm số Euler ứng dụng thuật tốn mật mã hóa khóa cơng khai RSA Mục đích nghiên cứu - Tìm hiểu sâu ứng dụng hàm số số học Euler lý thuyết mật mã - Tìm hiểu lý thuyết mật mã khố cơng khai -... (hay khóa cơng cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng q trình mã hóa giải mã Khóa cơng khai cơng bố rộng rãi cho người dùng để mã hóa Những thơng tin mã hóa khóa cơng khai

Ngày đăng: 27/08/2021, 09:20

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w