Đồ án: Tìm hiểu nghiên cứu một số bài toán về an toàn thông tin trong tính toán lưới tài liệu, giáo án, bài giảng , luận...
Bộ giáo dục đào tạo Tr-ờng đại học dân lập hải phòng -o0o - TÌM HIỂU NGHIÊN CỨU MỘT SỐ BÀI TỐN VỀ AN TON THễNG TIN TRONG TNH TON LI đồ án tốt nghiệp đại học hệ quy Ngành: Công nghệ Thông tin Sinh viên thực hiện: Nguyn Th Trang Giáo viên h-íng dÉn: PGS TS Trịnh Nhật Tiến M· sè sinh viên: 111363 Hải Phòng - 2011 .Ti liỏằu Hỏằ trỏằÊ Ã´n táºp com Luáºn văn Luáºn án MỤC LỤC BẢNG CHỮ VIẾT TẮT …………….………………………………………………….3 LỜI CẢM ƠN……………………………………………………………………………4 GIỚI THIỆU Chương1 1.1 KHÁI NIỆM TINH TOÁN LƢỚI 1.2 LỢI ÍCH CỦA TÍNH TỐN LƢỚI .6 1.2.1 Khai thác tài nguyên nhàn rỗi 1.2.2 Khả xử lý song song……………………………….…………… 1.2.3 Sự cộng tác tài nguyên ảo tổ chức ảo……………………… ……7 1.2.4 Giúp truy nhập tài nguyên khác…………………………… … .… 1.2.5 Giúp cân sử dụng tài nguyên ………………………… ……… 1.2.6 Mang lại độ tin cậy 1.2.7 Phạm vi ứng dụng 1.3 1.3 1.3.2.1 Những thách thức quản lý tài nguyên lưới 1.3.2.2 Hệ quản trị tài nguyên GRAM .12 1.3 13 1.4.3.1 Giao thức truyền tập tin mạng lưới GridFTP…… ….………… .… 13 1.4.3.2 Dịch vụ định vị RLS……………………… ……… …… … 16 1.3.4 Thành phần Lập lịch lƣới tính tốn 19 1.3.5 Cổng lƣới tính tốn (Grid Portal)…………………………… …… .… 21 1.3.6 Thành phần Giám sát lƣới ……………………………………… ….…….…21 1.3.6.1 Quy trình giám sát …………………………… …………………… … 22 1.3.6.2 Yêu cầu hệ thống giám sát lưới ………… ……………….… 22 1.3.6.3 Phân loại hệ thống giám sát lưới ……… ………… …… …….23 1.4.1 Thành phần mạng (Networks) …………….…………………….… .…… 24 1.4.2 Thành phần tính tốn (Computation)………… …… ………… ……….…24 1.4.3 Thành phần lƣu trữ (Storage)………………………… ………………….….24 1.4.4 Phần mềm quyền (Software and License)……………………….… 24 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 1.4.5 Các thiết bị đặc biệt……………………………… …………………….… 24 1.5 HỆ THỐNG ĐẢM BẢO ATTT 1.5.1 Cơ chế bảo đảm ATTT tính tốn lƣới……………………………… …26 1.5.2 Các sách bảo đảm ATTT tính tốn lƣới………………… .….26 1.5.3 Cơ sở Hạ tầng an ninh lƣới tính tốn……………………………… …27 Chương …31 2.1.1 ………………………………….…… ,…………… 32 2.1.1.1 Chữ ký RSA .32 2.1.1.2 Chữ ký ElGamal……………………………………………… ….… ….34 2.1.2 Sử dụng chữ ký số xác thực thực thể dùng lƣới tính tốn…….……….35 ……………… …… 36 ……………………………………………………… …….36 2.2.1.1 Hệ mã hóa khóa đối xứng …………………… ……36 2.2.1.2 Hệ mã hóa khóa phi đối xứng……………………………………………… 41 2.2.2 Sử dụng hệ mã hóa bảo mật thơng tin lƣới tính tốn………….….41 2.2.2.1 Hệ mã hoá RSA .42 2.2.2.2 Hệ mã hoá ElGama 42 Chương THỬ NGHIỆM CHƢƠNG TRÌNH KÝ SỐ TRONG LTT 3.1 CẤU HÌNH HỆ THỐNG .45 3.2 CÁC THÀNH PHẦN TRONG CHƢƠNG TRÌNH…………… …… .… 45 3.3 CHƢƠNG TRÌNH………… ………………………………….……… ……… 46 3.4 HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH……………………… … .…54 KẾT LUẬN……………………………………………………….….……… ……… 55 TÀI LIỆU THAM KHẢO……………………………………… ………… ……… 55 BẢNG CHỮ VIẾT TẮT Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com API DTP Luáºn văn Luáºn án Application Programming Interface Giao diện lập trình ứng dụng, thƣờng tậ Data Transfer Process GridFTP GRAM Grid Resource Allocation Management FTP File Transfer Protocol Globus XIO Globus Xtensible Input/Output Quản lý định vị tài nguyên lƣới Globus GridFTP Grid File Transfer Protocol GSI Grid Security Infrastructure HTTP Hypertext Transfer Protocol LFN Logical File Name Tên logic thực thể liệu LRC Local Replica Catalogue Catalog định vị địa phƣơng PI Protocol Interperter RLI Replica Location Index RLS Replica Location Service RSL Resource Specification Language Simple Object Access Protocol Bộ thơng dịch giao thức có nhiệm vụ quản lý kênh điều khiển kiến trúc Grid FTP Lƣu thông tin mục cho dịch vụ định vị Dịch vụ định vị kiến trúc lƣới liệu Globus Ngôn ngữ đặc tả tài nguyên SOAP ầng an Giao thức truy cập đối tƣợng từ xa đơn giản SSL Secure Socket Layer Giao thức bảo mật lƣới MDS Monitoring and Discovery Dịch vụ theo dõi định dạng tài nguyên Service LỜI CẢM ƠN Để hoàn thành đồ án này, em nhận đƣợc nhiều giúp đỡ, bảo tận tình thầy cô Xin gửi lời cảm ơn tới tất ngƣời, đặc biệt xin chân thành cảm ơn: Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Sự quan tâm giúp đỡ, bảo nhiệt tình Thầy giáo Trịnh Nhật Tiến- Bộ mơn Công nghệ thông tin trƣờng Đại học Quốc Gia Hà Nội Sự giúp đỡ tạo điều kiện thầy Ban giám hiệu nhà trƣờng nói chung Bộ mơn cơng nghệ thơng tin nói riêng Một lần xin chân thành cảm ơn Sinh viên Nguyễn Thị Trang GIỚI THIỆU Trong vài năm trở lại tính tốn mạng lƣới phát triển mạnh mẽ, mở giải pháp cho ứng dụng địi hỏi khả tính tốn lớn Grid computing đƣợc sử dụng cho toán nghiên cứu sinh học, y học, vật lý, hoá học nhƣ ứng dụng phân tích đánh giá tài chính, khai thác liệu nhiều loại ứng dụng khác Trong đồ án này, em xin trình bày cách tổng quan cơng nghệ Grid computing nhƣ: lợi ích, thành phần, phạm vi ứng dụng lƣới tính tốn Trên sở sâu vào tìm Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án hiểu hệ thống bảo đảm an tồn thơng tin số tốn an tồn thơng tin tính tốn lƣới Chương1 1.1 KHÁI NIỆM TÍNH TỐN LƢỚI tốn nhiều lĩnh vực địi hỏi sức mạnh tính tốn mà máy tính riêng lẻ khơng thể đảm trách Tính tốn lƣới đời nhằm tạo khả chia sẻ tài nguyên phạm vi toàn cầu, khả tận dụng phần mềm nhƣ tài nguyên vật lý phân tán mặt địa lý Định nghĩa 1: Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án : thời gian khác , : Định nghĩa IBM: Tính tốn lƣới mơi trƣờng tính tốn ảo Mơi trƣờng cho phép bố trí song song, linh hoạt, chia sẻ, tuyển lựa, tập hợp nguồn tài nguyên hỗn hợp mặt địa lý, tùy theo mức độ sẵn sàng, hiệu suất, chi phí tài nguyên tính tốn u cầu chất lƣợng dịch vụ ngƣời sử dụng 1.2 LỢI ÍCH CỦA TÍNH TỐN LƢỚI 1.2.1 Khai thác tài nguyên nhàn rỗi Một lợi ích tính tốn lƣới khả chạy ứng dụng tài nguyên khác Thống kê cho thấy, máy tính để bàn, ngày làm việc có khoảng 5% thời gian bận, lại rỗi Việc tận dụng khoảng thời gian rỗi để chạy ứng dụng khác việc làm hiệu kinh tế 1.2.2 Khả xử lý song song Khả chạy ứng dụng song song khả hấp dẫn mà tính tốn lƣới mang lại Lúc này, công việc đƣợc chia thành nhiều công việc con, công việc đƣợc thực đồng thời tài nguyên khác lƣới Do đó, thời gian chạy ứng dụng đƣợc rút ngắn nhiều lần Tuy nhiên, vấn đề ứng dụng triển khai theo cách đƣợc Cần xem xét yếu tố nhƣ khả song song hóa, trao đổi cơng việc chạy để đánh giá xem ứng dụng có thực hiệu đƣợc triển khai lƣới hay không 1.2.3 Sự cộng tác tài nguyên ảo tổ chức ảo Sự hợp tác đƣợc thể thông qua khái niệm tổ chức ảo – kết hợp nhiều tổ chức thực mục tiêu Thông qua mơ hình tổ chức ảo, tổ chức thực chia sẻ tài nguyên Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án nhƣ liệu, thiết bị đặc biệt…Những tài nguyên đƣợc “ảo hóa” để giữ chúng đồng hệ thông mạng lƣới không đồng Các tài nguyên gọi tài nguyên ảo 1.2.4 Giúp truy nhập tài ngun khác Ngồi tài ngun tính tốn lƣu trữ, lƣới cung cấp loại tài nguyên khác, chẳng hạn đƣờng truyền mạng, phần mềm đắt tiền Ví dụ nhƣ ngƣời dùng muốn tăng thông lƣợng kết nối tới Internet để thực khai phá liệu, tận dụng kết nối Internet riêng biệt nút lƣới khác để chạy toán 1.2.5 Giúp cân sử dụng tài nguyên Lƣới liên kết tài nguyên từ nhiều máy khác tạo thành hệ thống Lƣới thực cân tài nguyên chƣơng trình cách lập lịch làm việc cho cơng việc Chức có ý nghĩa lớn việc xử lý trƣờng hợp q tải xử lý, tính tốn tổ chức Chức cân đƣợc thực theo cách sau: - Những điểm tải đƣợc đƣa đến máy rỗi mạng lƣới - Nếu tồn mạng lƣới bận, cơng việc có độ ƣu tiên thấp đƣợc tạm ngừng nhƣờng cho công việc khác có độ ƣu tiên cao Một lợi ích khác dùng Grid cân tải Khi công việc liên lạc với công việc khác, với Internet , tài nguyên khác, Grid lập lịch cho chúng để giảm thiểu tối đa lƣu lƣợng đƣờng truyền nhƣ khoảng cách truyền Điều giúp Grid giảm thiểu tối đa lƣu lƣợng đƣờng truyền nhƣ khoảng cách truyền Điều giúp Grid giảm thiểu tắc nghẽn mạng 1.2.6 Mang lại độ tin cậy Khái niệm tin cậy tính tốn lƣới đƣợc thể khía cạnh sau: - Trong lƣới có tài ngun tính toán đắt tiền, cung cấp độ tin cậy cao cho toán đƣợc thực chúng - Lƣới cung cấp khả lập lịch lại, phân bổ lại cơng việc có lỗi xảy - Nếu cần, cơng việc đƣợc chạy đồng thời nhiều nút, việc xảy lỗi nút không làm ảnh hƣởng đến kết cơng việc Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 1.2.7 Phạm vi ứng dụng Tính tốn lƣới thƣờng đƣợc sử dụng để giải tốn khoa học địi hỏi khả tính tốn thơng lƣợng cao nhƣ mơ phỏng, thiết kế vi mạch, chia sẻ nội dung, truy nhập/thuê phần mềm/dịch vụ từ xa Hoặc toán đòi hỏi liệu lớn, thời gian thực, phục vụ theo u cầu tốn tính tốn cộng tác nhƣ thiết kế cộng tác, khai phá liệu, giáo dục điện tử… Tr : thành phần bảo vệ thông tin, thành phần môi giới, thành phần lập lịch, chức an ninh nút, thành phần quản lý tài nguyên, thành phần quản lý liệu, thành phần giao thức, nhƣng chƣơng em trình bày thành phần 1.3.1 1.3 1.3.2.1 Những thách thức quản lý tài nguyên lưới 1/ Xuất phát từ đặc trưng tài nguyên lưới: Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án ại ệ ác địa ệ ệ 2/ Định vị tài nguyên lưới: Khi có yêu cầu ngƣời dùng, phận quản lý tài nguyên tìm tài nguyên từ dịch vụ mục (Index Service) sau định vị tài nguyên đến số nút cụ thể lƣới nút tài nguyên đƣợc lập lịch sử dụng Khi ứng dụng chạy, phận quản lý tài nguyên cần theo dõi trạng thái tài nguyên thông báo trở lại cho lập lịch hệ thống kế tốn Khi có u cầu đƣợc đệ trình đến lúc đƣợc xử lý theo quy ƣớc hoạt động hàng đợi Khi ứng dụng yêu cầu sử dụng tài nguyên mà tài nguyên phục vụ cho ứng dụng khác đƣợc xếp vào hàng đợi tài nguyên đƣợc sử dụng xong sẵn sàng phục vụ Môi trƣờng lƣới phân tán địa lý tài nguyên lƣới không đồng nhất, nên để định vị tài nguyên, ta cần phải thiết kế hệ thống quản lý tài nguyên phù hợp phải chuyển sang hƣớng tiếp cận đa tầng tổ chức tài nguyên phi tập trung 3/ Vấn đề thương lượng tài nguyên lưới Quá trình thƣơng lƣợng tài nguyên lƣới dựa giao thức hay luật kinh doanh để chuyển đổi lệnh buôn bán ngƣời sử dụng tài nguyên nhà cung cấp tài nguyên Hình 1.1 minh họa giao thức thƣơng lƣợng mà hai phía mua bán cần q trình mặc Đầu tiên, phía khách hàng kết nối với nhà cung cấp Sau nhận đƣợc giá tài nguyên, hai bên bán mua tiến hành thƣơng lƣợng Khi thƣơng lƣợng thành cơng, phía khách hàng u cầu ngừng kết nối sử dụng tài nguyên 10 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Bản rõ: “toinaydichoi” t o i n a y d i c h o i vt 6 π 1->3 2->5 3->1 4->6 5->4 6->2 1->3 2->5 3->1 4->6 5->4 6->2 vt 6 i a t y n o c o d i h i Bản mã: “iatynocodihi” Dùng hoán vị nghịch đảo, từ mật mã ta lại thu đƣợc rõ 2.2.1.2 Hệ mã hóa khóa phi đối xứng Mã hóa khóa phi đối xứng hệ mã hóa mà biết chìa “khó” tính Quá trình giao tiếp đối tƣợng A B đƣợc mô tả nhƣ sau: B sinh cặp khóa bí mật cơng khai, khóa bí mật đƣợc cất giữ cách an toàn đƣợc bảo vệ mật mã cịn khóa cơng khai đƣợc cung cấp rộng rãi A sử dụng khóa cơng khai (đƣợc phát hành B) để mã hóa thơng tin gửi cho B Lúc này, B, ngƣời sở hữu khóa bí mật, giải mã thơng tin khóa bí mật 39 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án a 2.2.2 Sử dụng hệ mã hóa bảo mật thơng tin lƣới tính tốn Ta biết tin truyền mạng dễ bị lấy cắp, thay đổi… Để đảm bảo việc truyền tin an toàn ngƣời ta thƣờng mã hố thơng tin trƣớc truyền Việc mã hoá thƣờng theo quy tắc định gọi hệ mật mã Các hệ thống thông tin ngày thƣờng sử dụng hệ mã hóa phi đối xứng độ an tồn cao Sau số hệ mã hóa phi đối xứng thƣờng dùng 2.2.2.1 Hệ mã hoá RSA + Sinh khoá: Cho n=p*q với p, q số nguyên tố lớn Đặt P = C = Zn Chọn khố cơng khai b: Chọn b< (n), nguyên tố với (n), (n) = (p-1)(q-1) Chọn khố bí mật a: Chọn a nghịch đảo b theo modulo (n): a*b 1(mod (n)) K=(k’, k’’) đó: k’= (n, b) khóa cơng khai k’’= a Với khoá K=(n, a, b), x P, y khóa bí mật C định nghĩa + Hàm lập mã : y = ek’(x) = xb mod n + Hàm giải mã: dk’’(y) = ya mod n 2.2.2.2 Hệ mã hoá ElGamal Hệ mật mã ElGamal đƣợc T.ElGamal đề xuất năm 1985, dựa vào độ phức tạp tốn tính lơgarit rời rạc, sau nhanh chóng đƣợc sử dụng rộng rãi khơng vấn đề bảo mật truyền tin mà vấn đề xác nhận chữ ký điện tử Bài toán logarithm rời rạc Zp đối tƣợng nhiều cơng trình nghiên cứu đƣợc xem tốn khó p đƣợc chọn cẩn thận Cụ thể khơng có thuật tốn thời gian đa thức cho tốn logarithm rời rạc Để gây khó khăn cho phƣơng pháp công 40 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án biết, p phải có 150 chữ số (p – 1) phải có thừa số nguyên tố lớn Hệ mật Elgamal hệ mật khơng tất định mã phụ thuộc vào rõ x lẫn giá trị ngẫu nhiên k G chọn Bởi có nhiều mã đƣợc mã từ rõ Bài toán logarithm rời rạc Zp: Đặc trƣng toán: I = (p, , ) p số nguyên tố, nguyên thuỷ (hay phần tử sinh), x Bài toán: Tìm x cho Zp* (mod p) Định nghĩa mã khóa cơng khai Elgamal Zp*: + Sinh khố: Cho p số nguyên tố cho toán logarithm rời rạc Zp khó giải Cho Zp* phần tử nguyên thuỷ Giả sử P = Zp*, C = Zp* x Zp* a Ta định nghĩa: K = {K(k’,k’’);k’=(p, , a, );k’’=a: Các giá trị p, , đƣợc cơng khai, cịn a giữ kín.( Với K =(p, , a, ) số ngẫu nhiên bí mật k a (mod p)} p-2) Zp – 1, ta xác định: + Lập mã: Ek’(x, k) = (y1, y2) Trong đó: y1 = k y2 = x Với y1, y2 mod p k mod p Zp* : + Giải mã: dk’’(y1, y2) = y2(y1a) – mod p 41 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Zp phần tử .Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Ví dụ: Chọn p = Zp* phần tử nguyên thuỷ nên Chọn a cho Khi đó: = a a =3 p – nên chọn a = mod p = 32 mod = Chọn x cho: 3x (mod p) =>x=3 Chọn số ngẫu nhiên bí mật k Zp – 1, chọn k =3 Giả sử A muốn gửi thông báo x = cho B, A phải tính: Ek’(x, k) = (y1, y2) đó: y2 = x y1 = k k mod p = 33 mod = mod p = 3*23 mod = Khi B thu đƣợc mã (y1, y2) = (6, 3), tính: dk’’(y1, y2) = y2(y1a)-1 mod p = 3*(62)-1 mod = 3=x Đó bàn rõ mà G mã hố 42 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Chương THỬ NGHIỆM CHƢƠNG TRÌNH KÝ SỐ TRONG TTL Trong chƣơng 3, đồ án thử nghiệm thử viết chƣơng trình ký số RSA 3.1 CẤU HÌNH HỆ THỐNG + Phần mềm: Tubo C++ 3.0 -Ƣu điểm: miễn phí, khơng cần cài đặt, biên dịch chạy chƣơng trình nhanh, mơi trƣờng tích hợp thuận tiện -Nhƣợc điểm: khơng thể biên dịch chƣơng trình chạy window, không hỗ trợ công nghệ nhƣ nhắc nhở ngƣời dùng từ khoá, hàm kiểu liệu, thao tác soạn thảo Tubo C++3.0 không tiện lợi địi hỏi sử dụng tổ hợp phím phức tạp… + Phần cứng: chiếm dung lƣợng nhỏ (khoảng 4,3 MB), chạy hệ máy tính có hệ điều hành DOS.th ao tác 3.2 CÁC THÀNH PHẦN TRONG CHƢƠNG TRÌNH Gồm phần: Sinh khoá: Input: hai số nguyên tố p, q, tính n=p.q, (n)= (p-1)(q-1) Output: Cặp khóa (bí mật, cơng khai) = (a, b) Ký số: Input: khóa bí mật, rõ x Out put: Chữ ký số Kiểm tra chữ ký: Input: rõ x, chữ ký số, khóa cơng khai n Output: Xác thực chữ ký sai 43 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án 3.3 CHƢƠNG TRÌNH #include #include #include #include #include //========================================== long int kha_nghich(long int b, long int n); long exp_mod(long x, long b, long n); int kiemtra_ngto(long pq); long USCLN(long n,long m); long Ktra_ngto_cungnhau(long b,long phi_N); long Kitep(int Ki); long Doctep(long n); void Ky_RSA(); //===========Tinh Kha nghich ================ long int kha_nghich(long int b, long int n) { long int n0, b0; long int t, t0, temp, q, r; n0=n; b0=b; t0=0; t=1; q=floor(n0/b0); r=n0-q*b0; while(r>0){ temp=t0-q*t; if (temp < 0) 44 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án temp = n- ((-temp) % n); else temp = temp % n; t0=t; t=temp; n0=b0; b0=r; q=floor(n0/b0); r=n0-q*b0; } if(b0!=1) { printf("Khong co a"); return 0; } else return(t%n); } //=========== Tinh Mod ============ long exp_mod(long x, long b, long n) { long a = 1l, s = x; while (b != 0) { if (b & 1l) a = (a * s) % n; b >>= 1; if (b != 0) s = (s * s) % n; } if (a < 0) a += n; return a; 45 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án } //============================================================= int kiemtra_ngto(long pq) { for(long i=2;im) n=n-m; else m=m-n; if(n==0) return m; else return n; } //============================================================= long Ktra_ngto_cungnhau(long b,long phi_N) { if(USCLN(b,phi_N)!=1) { printf("\n\nb khong phai la nguyen to cung voi phi_N\n\n moi chon lai b!"); 46 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án return 0; } else return 1; } //============================================================= long Kitep(int Ki) { FILE *f; char *tentep; long n; mt:printf("\n\nNhap vao ten tep can Ki:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL) { printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); getch(); goto mt; } fseek(f,0,SEEK_END); n=ftell(f); fseek(f,n,SEEK_SET); fprintf(f,"%d",Ki); fclose(f); return n; } //============================================================= long Doctep(long n) 47 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án { FILE *f; char *tentep; mt:printf("\n\nNhap vao ten tep can mo:");fflush(stdin);gets(tentep); f=fopen(tentep,"a+t"); if(f==NULL) { printf("\n\nTep %s khong ton tai! Moi nhap lai!",tentep); goto mt; } long ki; fseek(f,n,SEEK_SET); fscanf(f,"%ld",&ki); fclose(f); return ki; } //============================================================= void Ky_RSA() { clrscr(); long x,a,b,n,phi_N,p,q; long Kthuocvb; int Ki,Kiem_thu; printf("\n=====* CHU KY RSA *======"); p:printf("\nNhap so nguyen to p=");scanf("%ld",&p); if(kiemtra_ngto(p)!=1)goto p; 48 Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án Tà i liệu Há»— trợ ôn táºp com Luáºn văn Luáºn án q:printf("\nNhap so nguyen to q=");scanf("%ld",&q); if(kiemtra_ngto(q)!=1)goto q; n=p*q; phi_N=(p-1)*(q-1); b:printf("\nMoi ban chon so b (1