Đồ á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 - Nguyễn Thị Trang

pdf 53 trang huongle 1910
Bạn đang xem 20 trang mẫu của tài liệu "Đồ á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 - Nguyễn Thị Trang", để 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:

  • pdfdo_an_tim_hieu_nghien_cuu_mot_so_bai_toan_ve_an_toan_thong_t.pdf

Nội dung text: Đồ á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 - Nguyễn Thị Trang

  1. Bé gi¸o dôc vµ ®µ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 TOÁN VỀ AN TOÀN THÔNG TIN TRONG TÍNH TOÁN LƢỚI ®å ¸n tèt nghiÖp ®¹i häc hÖ chÝnh quy Ngµnh: C«ng nghÖ Th«ng tin Sinh viªn thùc hiÖn: Nguyễn 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
  2. MỤC LỤC BẢNG CHỮ VIẾT TẮT . .3 LỜI CẢM ƠN 4 GIỚI THIỆU 5 Chương1. 1.1. KHÁI NIỆM TINH TOÁN LƢỚI 6 1.2. LỢI ÍCH CỦA TÍNH TOÁN LƢỚI 6 1.2.1. Khai thác tài nguyên nhàn rỗi 6 1.2.2. Khả năng xử lý song song . 7 1.2.3. Sự cộng tác các tài nguyên ảo và tổ chức ảo 7 1.2.4. Giúp truy nhập các tài nguyên khác 7 1.2.5. Giúp cân bằng trong sử dụng tài nguyên 7 1.2.6. Mang lại độ tin cậy 8 1.2.7. Phạm vi ứng dụng 8 1.3 9 1.3 9 1.3.2.1. Những thách thức trong quản lý tài nguyên lưới 9 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ị bản sao RLS 16 1.3.4. Thành phần Lập lịch trong lƣới tính toán 19 1.3.5. Cổng lƣới tính toá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 đối với một hệ thống giám sát lưới . 22 1.3.6.3. Phân loại các 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 toán (Computation) . 24 1.4.3. Thành phần lƣu trữ (Storage) . .24 1.4.4. Phần mềm và bản quyền (Software and License) . 24 2
  3. 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 trong tính toán lƣới 26 1.5.2. Các chính sách bảo đảm ATTT trong tính toán lƣới .26 1.5.3. Cơ sở Hạ tầng an ninh trong lƣới tính toán 27 Chương 2. 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ố trong xác thực thực thể dùng lƣới tính toán . .35 36 2 .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 trong bảo mật thông tin trên lƣới tính toán . .41 2.2.2.1. Hệ mã hoá RSA 42 2.2.2.2. Hệ mã hoá ElGama 42 Chương 3. 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 3
  4. API Application Programming Giao diện lập trình ứng dụng, thƣờng là một tậ Interface DTP Data Transfer Process GridFTP GRAM Grid Resource Allocation Quản lý định vị tài nguyên lƣới Management FTP File Transfer Protocol Globus XIO Globus Xtensible Input/Output Globus GridFTP Grid File Transfer Protocol GSI Grid Security Infrastructure ầng an HTTP Hypertext Transfer Protocol LFN Logical File Name Tên logic của thực thể dữ liệu LRC Local Replica Catalogue Catalog định vị bản sao địa phƣơng PI Protocol Interperter Bộ thông dịch giao thức có nhiệm vụ quản lý các kênh điều khiển trong kiến trúc Grid FTP RLI Replica Location Index Lƣu các thông tin chỉ mục cho dịch vụ định vị bản sao RLS Replica Location Service Dịch vụ định vị bản sao trong kiến trúc lƣới dữ liệu Globus RSL Resource Specification Ngôn ngữ đặc tả tài nguyên Language SOAP Simple Object Access Protocol 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 và định dạng tài nguyên Service LỜI CẢM ƠN Để hoàn thành đồ án này, em đã nhận đƣợc rất nhiều sự giúp đỡ, chỉ bảo tận tình của các thầy cô. Xin gửi lời cảm ơn tới tất cả mọi ngƣời, đặc biệt xin chân thành cảm ơn: 4
  5. Sự quan tâm giúp đỡ, chỉ bảo nhiệt tình của 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 đỡ và tạo mọi điều kiện của các thầy cô trong Ban giám hiệu nhà trƣờng nói chung và Bộ môn công nghệ thông tin nói riêng. Một lần nữa 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 đây tính toán mạng lƣới đã phát triển mạnh mẽ, mở ra các giải pháp mới cho các ứng dụng đòi hỏi khả năng tính toán lớn. Grid computing có thể đƣợc sử dụng cho các bài toán nghiên cứu về sinh học, y học, vật lý, hoá học cũng nhƣ các ứng dụng trong phân tích và đánh giá tài chính, khai thác dữ liệu và rất nhiều các loại ứng dụng khác. Trong đồ án này, em xin trình bày một cách tổng quan về công nghệ Grid computing nhƣ: lợi ích, các thành phần, phạm vi ứng dụng của lƣới tính toán. Trên cơ sở đó đi sâu vào tìm 5
  6. hiểu về hệ thống bảo đảm an toàn thông tin và một số bài toán về an toàn thông tin trong tính toán lƣới. Chương1. 1.1. KHÁI NIỆM TÍNH TOÁN LƢỚI những bài toán trong nhiều lĩnh vực đòi hỏi sức mạnh tính toán mà một máy tính riêng lẻ không thể đảm trách. Tính toán lƣới ra đời nhằm tạo khả năng chia sẻ tài nguyên trên phạm vi toàn cầu, khả năng tận dụng các phần mềm cũng nhƣ tài nguyên vật lý phân tán cả về mặt địa lý. Định nghĩa 1: 6
  7. : , trong các thời gian khác nhau. : . Định nghĩa IBM: Tính toán lƣới là một môi trƣờng tính toán ảo. Môi trƣờng này cho phép bố trí song song, linh hoạt, chia sẻ, tuyển lựa, tập hợp các nguồn tài nguyên hỗn hợp về mặt địa lý, tùy theo mức độ sẵn sàng, hiệu suất, chi phí của các tài nguyên tính toán và yêu cầu về chất lƣợng dịch vụ của ngƣời sử dụng. 1.2. LỢI ÍCH CỦA TÍNH TOÁN LƢỚI 1.2.1. Khai thác tài nguyên nhàn rỗi Một trong những lợi ích cơ bản của tính toán lƣới là khả năng chạy ứng dụng trên một tài nguyên khác. Thống kê cho thấy, đối với các máy tính để bàn, trong một ngày làm việc thì chỉ có khoảng 5% thời gian là bận, còn lại là rỗi. Việc tận dụng khoảng thời gian rỗi này để chạy các ứng dụng khác là một việc làm rất hiệu quả và kinh tế. 1.2.2. Khả năng xử lý song song Khả năng chạy ứng dụng song song là khả năng hấp dẫn nhất mà tính toán lƣới mang lại. Lúc này, một công việc đƣợc chia thành nhiều công việc con, các công việc con này đƣợc thực hiện đồng thời trên các tài nguyên khác nhau của lƣới. Do đó, thời gian chạy ứng dụng sẽ đƣợc rút ngắn nhiều lần. Tuy nhiên, vấn đề không phải ứng dụng nào cũng có thể triển khai theo cách này đƣợc. Cần xem xét các yếu tố nhƣ khả năng song song hóa, sự trao đổi giữa các công việc con khi chạy để đánh giá xem một ứng dụng có thực sự hiệu quả khi đƣợc triển khai trên lƣới hay không. 1.2.3. Sự cộng tác các tài nguyên ảo và tổ chức ảo Sự hợp tác đƣợc thể hiện thông qua khái niệm tổ chức ảo – sự kết hợp nhiều tổ chức thực cùng mục tiêu. Thông qua mô hình tổ chức ảo, các tổ chức thực có thể chia sẻ tài nguyên 7
  8. nhƣ dữ liệu, các thiết bị đặc biệt Những tài nguyên này đƣợc “ảo hóa” để giữ chúng đồng bộ trong một hệ thông mạng lƣới không đồng nhất. Các tài nguyên đó gọi là tài nguyên ảo. 1.2.4. Giúp truy nhập các tài nguyên khác Ngoài tài nguyên tính toán và lƣu trữ, lƣới còn cung cấp các loại tài nguyên khác, chẳng hạn đƣờng truyền mạng, các phần mềm đắt tiền. Ví dụ nhƣ nếu một ngƣời dùng muốn tăng thông lƣợng kết nối tới Internet để thực hiện khai phá dữ liệu, anh ta có thể tận dụng các kết nối Internet riêng biệt của các nút lƣới khác để chạy bài toán trên. 1.2.5. Giúp cân bằng trong sử dụng tài nguyên Lƣới liên kết các tài nguyên từ nhiều máy khác nhau tạo thành một hệ thống duy nhất. Lƣới có thể thực hiện cân bằng tài nguyên trong các chƣơng trình bằng cách lập lịch làm việc cho các công việc. Chức năng này có ý nghĩa rất lớn trong việc xử lý các trƣờng hợp quá tải về xử lý, tính toán trong một tổ chức. Chức năng cân bằng có thể đƣợc thực hiện theo 2 cách sau: - Những điểm quá tải đƣợc đƣa đến những máy rỗi trên mạng lƣới. - Nếu toàn mạng lƣới đã bận, những công việc có độ ƣu tiên thấp đƣợc tạm ngừng nhƣờng cho những công việc khác có độ ƣu tiên cao. Một lợi ích khác khi dùng Grid là cân bằng tải. Khi một công việc liên lạc với một công việc khác, với Internet , hoặc các tài nguyên khác, Grid có thể lập lịch cho chúng để có thể giảm thiểu tối đa lƣu lƣợng đƣờng truyền cũng nhƣ khoảng cách truyền. Điều này giúp Grid có thể giảm thiểu tối đa lƣu lƣợng đƣờng truyền cũng nhƣ khoảng cách truyền. Điều này giúp Grid có thể 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 trong tính toán lƣới đƣợc thể hiện ở các khía cạnh sau: - Trong lƣới có những tài nguyên tính toán đắt tiền, cung cấp độ tin cậy cao cho những bài toán đƣợc thực hiện trên chúng - Lƣới cung cấp khả năng lập lịch lại, phân bổ lại công việc nếu có lỗi xảy ra - Nếu cần, một công việc có thể đƣợc chạy đồng thời trên nhiều nút, cho nên việc xảy ra lỗi ở một nút sẽ không làm ảnh hƣởng đến kết quả của công việc đó. 8
  9. 1.2.7. Phạm vi ứng dụng Tính toán lƣới thƣờng đƣợc sử dụng để giải quyết các bài toán khoa học đòi hỏi khả năng tính toán và thông lƣợng cao nhƣ mô phỏng, thiết kế vi mạch, chia sẻ nội dung, truy nhập/thuê các phần mềm/dịch vụ từ xa. Hoặc các bài toán đòi hỏi dữ liệu lớn, thời gian thực, phục vụ theo yêu cầu và các bài toán tính toán cộng tác nhƣ thiết kế cộng tác, khai phá dữ 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 năng an ninh nút, thành phần quản lý tài nguyên, thành phần quản lý dữ liệu, thành phần giao thức, nhƣng trong chƣơng này em chỉ trình bày các thành phần cơ bản của nó. 1.3.1. . 1.3 1.3.2.1. Những thách thức trong quản lý tài nguyên lưới 1/. Xuất phát từ đặc trưng của tài nguyên lưới: . 9
  10. ại . ác ệ địa ệ ệ . 2/. Định vị tài nguyên lưới: Khi có yêu cầu của ngƣời dùng, bộ phận quản lý tài nguyên sẽ tìm tài nguyên từ dịch vụ chỉ mục (Index Service) sau đó định vị tài nguyên đến một số nút cụ thể nào đó trong lƣới và tại các nút này thì tài nguyên sẽ đƣợc lập lịch sử dụng. Khi một ứng dụng đang chạy, bộ phận quản lý tài nguyên cần theo dõi trạng thái tài nguyên và thông báo trở lại cho bộ lập lịch và hệ thống kế toán. Khi có 2 yêu cầu đƣợc đệ trình đến cùng lúc thì cả 2 sẽ cùng đƣợc xử lý theo quy ƣớc hoạt động của hàng đợi. Khi một ứng dụng yêu cầu sử dụng tài nguyên mà hiện tại tài nguyên đó đang phục vụ cho một ứng dụng khác thì nó sẽ đƣợc xếp vào hàng đợi cho đến khi tài nguyên đó đƣợc sử dụng xong và sẵn sàng phục vụ. Môi trƣờng lƣới phân tán về địa lý và tài nguyên lƣới là không đồng nhất, nên để định vị đúng tài nguyên, ta cần phải thiết kế một hệ thống quản lý tài nguyên phù hợp và phải chuyển sang hƣớng tiếp cận đa tầng và 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 trên các giao thức hay các luật trong kinh doanh để chuyển đổi các lệnh buôn bán giữa ngƣời sử dụng tài nguyên và các nhà cung cấp tài nguyên. Hình 1.1 minh họa các giao thức thƣơng lƣợng mà cả hai phía mua và bán cần trong quá trình mặc cả. Đầu tiên, phía khách hàng kết nối với nhà cung cấp. Sau khi nhận đƣợc giá tài nguyên, cả hai bên bán và mua sẽ tiến hành thƣơng lƣợng. Khi thƣơng lƣợng thành công, phía khách hàng sẽ yêu cầu ngừng kết nối và sử dụng tài nguyên đó. 10
  11. Hình 1.1 Mô hình thƣơng lƣợng tài nguyên lƣới 11
  12. 1.3.2.2. Hệ quản trị tài nguyên GRAM GRAM (Grid Resource Allocation Management) là dịch vụ đƣợc xây dựng trên cơ chế bảo mật GSI (Grid Security infrastructure), nó đóng vai trò là bộ phận quản lý, phân chia tài nguyên trong toàn bộ hệ thống tính toán lƣới. Kiến trúc của GRAM: 1/. Kiến trúc bên ngoài: Để có thể đệ trình một công việc lên một host, ngƣời dùng sẽ thông qua các API (Application Programming Interface) của GRAM Client để xác lập các thông tin về tài nguyên mà công việc cần đồng thời tạo ra tiến trình mới. Những thông tin này sẽ đƣợc gửi đến ngƣời quản lý cổng tƣơng ứng. Ngƣời quản lý cổng sẽ xác thực những thông tin đƣợc gửi đến dựa vào cơ chế bảo mật GSI. Nếu tất cả đều hợp lệ, ngƣời quản lý cổng sẽ tạo ra một quản lý công việc để phục vụ cho công việc. Ngƣời quản lý công việc sẽ phân tích kịch bản RSL (Resource Specification Language) do ngƣời sử dụng gửi tới. Những kết quả phân tích đƣợc ngay lập tức đƣợc gửi tới các nguồn tài nguyên cục bộ và tiến hành thực thi công việc. Bên cạnh đó, quản lý công việc cũng sẽ tạo ra các tiến trình làm nhiệm vụ theo dõi và điều khiển công việc trong suốt quá trình xử lý. Trong lúc công việc đang thực thi hay đã thực thi xong, các nguồn tài nguyên cục bộ sẽ phải thƣờng xuyên cập nhật thông tin tài nguyên về cho MDS (Monitoring and Discovery Service). MDS sau đó sẽ hiển thị những thông tin này cho phép ngƣời dùng xem xét và lựa chọn nguồn tài nguyên nào thích hợp với công việc của mình. 2/. Kiến trúc bên trong: Để có thể thực thi một công việc từ xa, ngƣời quản lý cổng GRAM phải đƣợc chạy trên một máy tính từ xa, lắng nghe ở một cổng đƣợc quy định trƣớc, công việc sẽ đƣợc thực thi trên máy tính từ xa đó. Việc thực thi bắt đầu khi ứng dụng ngƣời dùng chạy trên máy cục bộ gửi yêu cầu đến máy tính từ xa. Yêu cầu đó sẽ mang các thông tin về lệnh thực thi, luồng vào, luồng xuất cũng nhƣ các thông tin về tên và cổng giao tiếp của máy tính từ xa. Yêu cầu công việc sẽ đƣợc xử lý bởi ngƣời quản lý cổng GRAM, từ đó nó sẽ tạo ra một quản lý công việc tƣơng ứng mà công việc yêu cầu. Lúc đó, quản lý công việc sẽ theo dõi tình trạng thực thi công việc và chịu trách nhiệm thông báo thông tin của công việc cho ngƣời sử dụng. 12
  13. 1.3 Quản lý dữ liệu là một phần quan trọng trong tính toán lƣới nó cho phép truy nhập tài nguyên trên lƣới với khối lƣợng lớn hàng giga-bytes thậm chí hàng tera- bytes dữ liệu. Quản lý dữ liệu phải đảm bảo đƣợc tính an toàn và ổn định trong quá trình di chuyển dữ liệu giữa các nút trong mạng lƣới để hỗ trợ quá trình thực thi các công việc trong hệ thống tính toán lƣới. 1.3.3.1. Giao thức truyền tập tin mạng lưới GridFTP GridFTP là giao thức truyền tập tin giống nhƣ FTP hay truyền liệu nhƣ HTTP. Đây là giao thức có hiệu năng cao, an toàn và đáng tin cậy nhất trên mạng Internet hiện nay. GridFTP đƣợc các nhà chuyên môn đánh giá cao vì nó cung cấp các tính năng đặc trƣng phù hợp với kiến trúc mạng lƣới nhƣ: + Bảo mật theo chuẩn GSI trên các kênh điều khiển và kênh truyền dữ liệu. + Tạo lập và quản lý các kênh truyền dữ liệu song song, cho phép tăng tốc độ truyền dữ liệu tới mức kỷ lục. + Trao đổi từng phần tập tin dữ liệu, đặc biệt hiệu quả với các tập tin dữ liệu có dung lƣợng cực kỳ lớn. + Trao đổi dữ liệu với sự tham gia của phía thứ ba. Đây là nghi thức cho phép chuyển tập tin trực tiếp từ máy chủ tới máy chủ khi kênh điều khiển nằm trên máy chủ thứ ba. + Xác thực các kênh truyền dữ liệu. + Tái sử dụng các kênh truyền dữ liệu và dẫn truyền các lệnh điều khiển.  Mở rộng từ FTP GridFTP bao gồm một số chức năng trong giao thức FTP mở rộng và đã đƣợc chuẩn hóa, nhƣng ít đƣợc cài đặt trong các hệ thống hiện tại. Các chức năng khác là các chức năng mới so với FTP nhƣ: - Điều khiển bởi đối tác thứ ba. - Truyền dữ liệu song song; phân đoạn và từng phần. - Tự động thƣơng lƣợng vùng đệm TCP. - Truyền dữ liệu tin cậy và có khả năng khởi động lại.  Kiến trúc của dịch vụ GridFTP 13
  14. Hình 1.2. Kiến trúc của dịch vụ GridFTP + Bộ thông dịch giao thức PI: Server PI có nhiệm vụ quản lý kênh điều khiển, trao đổi thông tin với máy khách qua kênh này. Để máy khách liên lạc với máy chủ GridFTP, server PI phải chạy nhƣ một chƣơng trình thƣờng trú, luôn lắng nghe ở cổng nào đó. Hoặc một dịch vụ khác của hệ thống phải lắng nghe trên cổng này, khi nhận đƣợc yêu cầu thì sẽ chuyển lời gọi tới Server PI. Tiếp đó, Client PI và Server PI “nói chuyện” với nhau qua giao thức đã định sẵn. Trong suốt quá trình truyền thông, Server PI chỉ quan tâm tới việc xây dựng mô tả cho quá trình truyền dữ liệu. Thời điểm này, nó không liên hệ với DTP (Data Transfer Process) hoặc DTP có thể chƣa chạy. Khi nhận lệnh yêu cầu hoạt động liên quan tới DTP, Server PI gửi bản mô tả quá trình truyền cho DTP. DTP tự thực hiện truyền dựa vào bản mô tả này. Khi bản mô tả đƣợc gửi đi, Server PI chỉ đóng vai trò là tầng chuyển tiếp các thông tin trạng thái. + Tiến trình truyền dữ liệu DTP: Bản thân DTP đƣợc cấu tạo bởi ba môđun kết hợp nhƣ sau: 14
  15. Hình 1.3. Đƣờng ống truyền dữ liệu DTP 1/. Mô-đun truy cập dữ liệu: chịu trách nhiệm đọc/ghi dữ liệu tới nguồn/ đích. Giao diện truy cập gồm các lệnh gửi, nhận, tạo, xóa, đổi tên, tính tổng, kiểm tra. 2/. Mô-đun xử lý dữ liệu: xử lý dữ liệu phía máy chủ: nén, co dãn, ghép nối các tệp. Hiện tại chức năng xử lý dữ liệu đƣợc cài đặt cùng môđun truy cập dữ liệu. 3/. Mô-đun giao thức kênh dữ liệu: đảm nhiệm việc xử lý kênh dữ liệu, gồm các thao tác nạp/gửi dữ liệu. Một máy chủ có thể hỗ trợ nhiều kênh truyền dữ liệu.  Bảo mật trong GridFTP GridFTP cung cấp việc chứng thực an toàn kênh điều khiển, đảm bảo tính toàn vẹn và bí mật cho kênh dữ liệu. Cơ chế bảo mật của nó xây dựng trên nền GSI. Phiên làm việc đƣợc thiết lập khi máy khách khởi tạo kết nối TCP tới cổng mà máy chủ GridFTP server đang lắng nghe. Đầu tiên diễn ra quá trình chứng thực. Đây là quá trình bắt tay ba bƣớc. Máy khách trình một giấy ủy nhiệm, giấy này chứa thông tin về ngƣời dùng đại diện cho máy khách gồm định danh, khóa công khai, tên nhà thẩm quyền Máy chủ cũng phải đƣa ra một giấy chứng nhận riêng đƣợc cấp bởi nhà thẩm quyền mà máy khách tin tƣởng. Nếu quá trình kiểm tra thông tin trên các giấy chứng nhận này thất bại, liên kết không đƣợc thiết lập. Ngƣợc lại, giai đoạn xác định thẩm quyền diễn ra: xác định quyền hạn truy cập của máy khách đối với dữ liệu trên máy chủ. Điều này đƣợc thực hiện bằng cách ánh xạ máy khách với một ngƣời dùng địa phƣơng trên máy chủ. Quyền truy cập của ngƣời dùng địa phƣơng sẽ tƣơng đƣơng với quyền truy nhập của máy khách. Thông tin ánh xạ đƣợc lƣu trên máy chủ 15
  16. trong một tệp grid- mapfile. Nếu chƣa có thông tin ánh xạ, tiến trình truyền dữ liệu không đƣợc hoàn thành. Mặc định, kênh điều khiển đƣợc mã hóa để bảo đảm tính toàn vẹn.  Cài đặt dịch vụ GridFTP Cài GridFTP trên nút lƣới cung cấp dịch vụ. Nút này đƣợc gọi là máy chủ GridFTP. Cài GridFTP Client trên máy khách, thực hiện gửi yêu cầu tới máy chủ GridFTP để truy xuất dữ liệu. Để thực hiện chức năng truyền tệp điều khiển bởi đối tác thứ ba, hai nút lƣới tham gia quá trình truyền phải đƣợc cài đặt GridFTP Server. 1.3.3.2. Dịch vụ định vị bản sao RLS Mục đích tạo bản sao là để làm giảm trễ truy cập, tăng tính địa phƣơng của dữ liệu, tăng hiệu năng, khả năng mở rộng, và tính chịu lỗi của các ứng dụng phân tán. Hệ thống sử dụng bản sao cần có kỹ thuật xác định vị trí bản sao.  Yêu cầu đối với một dịch vụ định vị bản sao RLS phải thỏa mãn các yêu cầu sau: - Bản sao có tính chỉ đọc: RLS chỉ quản lý tệp không thay đổi hoặc thay đổi không thƣờng xuyên, đƣợc định danh duy nhất dƣới các phiên bản khác nhau. - Phạm vi sử dụng: hệ thống phải có khả năng trải rộng trên hàng trăm miền, quản lý khoảng 50 triệu tệp lôgic và 500 triệu bản sao vật lý. - Hiệu năng: hệ thống phải có khả năng hỗ trợ khoảng 1000 truy vấn và 200 lần cập nhật trên một giây. Thời gian hồi đáp trung bình phải ít hơn 10 miligiây, và thời gian hồi đáp truy vấn trung bình không vƣợt quá 5 giây. - Bảo mật: RLS quan tâm nhiều nhất tới bảo vệ tính riêng tƣ và toàn vẹn của thông tin tồn tại và vị trí dữ liệu. - Tính nhất quán: RLS không hỗ trợ khung nhìn nhất quán hoàn toàn đối với các bản sao. - Tính tin cậy: lỗi xảy ra ở một miền không ảnh hƣởng tới toàn bộ hoạt động của thống.  Kiến trúc của dịch vụ định vị bản sao 16
  17. Kiến trúc của dịch vụ quản lý bản sao phải đảm bảo đƣợc yêu cầu thực thi trên môi trƣờng phân tán cao. Trong kiến trúc RLS, máy chủ định vị bản sao cục cho từng miền đƣợc gọi là LRC (Local Replica Catalog). Máy chủ thực hiện nhiệm vụ đánh chỉ mục các LRC. Giao diện truy xuất của ngƣời sử dụng đƣợc gọi là RLI (Replica Location Index). Thông qua RLI, nguời sử dụng có thể tìm đến các LRC một cách dễ dàng. LRC phục vụ nguời dùng cục bộ trong tổ chức, còn RLI phục vụ ngƣời sử dụng trên phạm vi toàn bộ lƣới. Nhƣ vậy, trên phạm vi toàn lƣới dữ liệu, dịch vụ RLS đƣợc triển khai dƣới dạng một tập các LRC phân tán tại site địa phƣơng và một số RLI đánh chỉ mục cho các LRC. + Kho định vị bản sao cục bộ LRC: LRC lƣu giữ thông tin về các bản sao của một tổ chức cụ thể. LRC có một số chức năng: - Về nội dung: lƣu trữ ánh xạ giữa tên tệp lôgic bất kỳ với tên tệp vật lý. -Về truy vấn: đáp ứng đƣợc các truy vấn: Cho một LFN, tìm tập các PFN tƣơng ứng với LFN đó. -Về tính toàn vẹn cục bộ: quản lý tính toàn vẹn giữa nội dung của tên logic với nội dung thực sự đƣợc lƣu trên các hệ thống lƣu trữ. - Về bảo mật: thông tin trong LRC có thể liên quan đến điều khiển truy cập, vì thế hỗ trợ kỹ thuật chứng thực và xác nhận khi xử lý yêu cầu từ xa. - Về sự lan truyền trạng thái: LRC thƣờng xuyên gửi thông tin trạng thái- thông tin về sự thay đổi các ánh xạ tới RLI, bằng cách sử dụng thuật toán lan truyền trạng thái. + Chỉ mục định vị bản sao RLI: LRC chỉ lƣu trữ thông tin định vị bản sao tại các tổ chức, chỉ phục vụ ngƣời sử dụng trong phạm vi tổ chức đó. Nó không hỗ trợ ngƣời dùng truy vấn nhiều tổ chức cùng một lúc. Thông tin chỉ mục trong dịch vụ định vị bản sao đƣợc lƣu dƣới dạng một tập các RLI, mỗi RLI bao gồm tập bản ghi gồm hai trƣờng (LFN, con trỏ tới LRC). RLI có thể đánh chỉ mục cho RLI khác. Dựa trên kỹ thuật dƣ thừa, phân đoạn, và trạng thái mềm, có thể chỉ ra các yêu cầu đối với nút chỉ mục định vị bản sao toàn cục RLI nhƣ sau: - Truy cập từ xa an toàn: RLI phải hỗ trợ chứng thực, xác nhận, tính toàn vẹn, tính tin cậy, và phải triển khai quyền điều khiển truy cập cục bộ trên thông tin mà nó quản lý. 17
  18. - Lan truyền trạng thái: RLI phải có khả năng nhận thông tin mô tả trạng thái do các LRC gửi đến định kỳ. - Truy vấn: RLI phải trả lời truy vấn tới bản sao của một LFN cụ thể bằng cách trả về vị trí vật lý của LFN đó hoặc thông báo rằng LFN không nằm trong chỉ mục hiện thời, trong trƣờng hợp không tìm thấy. - Trạng thái mềm: RLI phải ấn định thời gian hết hạn đối với thông tin lƣu trữ trong chỉ mục. Nếu một mục gắn liền với một LRC không nhận đƣợc thông tin trạng thái cập nhật từ LRC trong khoảng thời gian ấn định, RLI phải loại bỏ mục đó. - Phục hồi khi lỗi xảy ra: RLI không đƣợc phép chứa thông tin trạng thái bền vững về các bản sao. Nó phải khôi phục nội dung sau sự cố chỉ bằng cách sử dụng cập nhật trạng thái động từ các LRC.  Các tham số đặc trưng của kiến trúc RLS Để đặc tả một phạm vi rộng lớn kiến trúc của RLS, ngƣời ta dùng bộ sáu tham số (G, PL,PR, R, S, C). Bốn tham số đầu tiên (G, PL,PR, R) mô tả tính phân tán của thông tin bản sao. Hai tham số sau định nghĩa cách thông tin đƣợc gửi từ LRC đến RLI. G: Số lƣợng RLI trong hệ thống. PL: Đặc trƣng cho kiểu phân nhóm tên tệp lôgic trong RLI. PR: Đặc trƣng cho kiểu phân nhóm không gian tên LRC. R: Nói đến mức độ dƣ thừa trong việc đánh chỉ mục đối với mỗi tên tệp logic LFN. S: Tần suất và cách thức cập nhật thông tin từ LRC đến RLI. C: Phƣơng pháp nén thông tin trao đổi giữa LRC và RLI. 1.3.4. Thành phần Lập lịch trong lƣới tính toán Sau khi xác định đƣợc tài nguyên cần thiết ta phải lập lịch trình các công việc các công việc là hoàn toàn độc lập thì có thể không cần bộ lập lịch. Nhƣng thƣờng thì ứng dụng đòi hỏi cần phải dự trữ tài nguyên nào đó, hoặc các công việc cần giao tiếp với nhau. Do đó, cần có bộ lập lịch để phối hợp các công việc. Lập lịch trong lƣới bao gồm 3 giai đoạn chính: + Khám phá tài nguyên và đƣa ra danh sách tài nguyên có thể sử dụng đƣợc. 18
  19. + Lựa chọn tài nguyên phù hợp nhất đối với yêu cầu công việc. + Thực thi công việc.  Giai đoạn 1: Khai phá tài nguyên Xác định xem tài nguyên nào khả dụng đối với ngƣời dùng hiện tại. - Bƣớc 1: Tìm các tài nguyên khả dụng: xác định tập tài nguyên mà ngƣời dùng có đủ thẩm quyền truy nhập tới. - Bƣớc 2: Xác định yêu cầu ứng dụng: ngƣời dùng phải định ra một tập các yêu cầu tối thiểu để thực hiện công việc để lọc các tài nguyên khả dụng. - Bƣớc 3: Loại bỏ những tài nguyên không đáp ứng đƣợc yêu cầu tối thiểu của công việc căn cứ vào danh sách các tài nguyên mà ngƣời dùng có quyền sử dụng và căn cứ vào kết quả phân tích yêu cầu công việc ở bƣớc hai, ta loại những tài nguyên không đáp ứng đƣợc những yêu cầu tối thiểu của công việc. Đến cuối bƣớc này ngƣời sử dụng sẽ có trong tay một tập các tài nguyên có thể để triển khai công việc.  Giai đoạn 2: Lựa chọn tài nguyên. Tiến hành thu thập các thông tin liên quan tới các yêu cầu còn lại của công việc và lựa chọn ra tài nguyên thích hợp nhất để thực thi công việc. - Bƣớc 1: Thu thập thông tin động: xác định xem thông tin nào sẵn có và ngƣời dùng có thể truy nhập đến nó nhƣ thế nào. - Bƣớc 2: Lựa chọn tài nguyên: sau khi đã có đầy đủ thông tin về tài nguyên ngƣời dùng sẽ lựa chọn những tài nguyên phù hợp nhất cho yêu cầu và mục đích của . Bƣớc này thƣờng do bộ lập và quản lý tài nguyên thay mặt ngƣời nhận tự động bằng cách giải bài toán tối ƣu.  Giai đoạn 3: Thực thi công việc. Tiến hành các bƣớc để thực thi công việc trên tài nguyên đã chọn, giám sát trạng thái công việc và gửi kết quả lại cho ngƣời sử dụng. 19
  20. - Bƣớc 1: Đặt trƣớc tài nguyên (tùy chọn) để có thể sử dụng tốt nhất một hệ thống nào đó, một phần hoặc toàn bộ tài nguyên phải đƣợc đặt trƣớc. - Bƣớc 2: Đệ trình công việc: sau khi đã chọn đƣợc tài nguyên ứng dụng, công việc cần phải đƣợc đệ trình lên tài nguyên đó để thực hiện bằng cách chạy một dòng lệnh đơn hoặc chạy một dãy các kịch - Bƣớc 3: Các công việc chuẩn bị: trong bƣớc này phía ngƣời dùng sẽ làm các công việc cần thiết để ứng dụng có thể chạy đƣợc. Ví dụ: dùng GridFTP để chuyển các file dữ liệu cần thiết đến địa điểm nơi công việc sẽ chạy. - Bƣớc 4: Theo dõi tiến độ: tùy thuộc vào ứng dụng và thời gian chạy của nó mà ngƣời dùng có thể muốn theo dõi tiến độ và có thể sẽ thay đổi ý định của họ về việc công việc sẽ đƣợc thực hiện ở đâu và nhƣ thế nào. - Bƣớc 5: Hoàn thành công việc: khi công việc kết thúc thì cần phải báo cho ngƣời sử dụng bằng một hình thức nào đó. - Bƣớc 6: Dọn dẹp và kết thúc: sau khi một công việc đã đƣợc thực hiện xong, kết quả công việc phải đƣợc gửi lại cho ngƣời đệ trình, đồng thời các file tạm thời cũng phải đƣợc xóa đi. 1.3.5. Cổng lƣới tính toán (Grid Portal) Hệ thố chỉ cung cấp cho ngƣời sử dụng một tập hợp các dịch vụ chung và khả năng khai thác các nguồn tài nguyên phân tán. Nó không cung cấp các thành phần giao diện thân thiện phục vụ ngƣời sử dụng. Vì vậy, đòi hỏi cần phải có một công cụ cung cấp các thành phần giao diện phục vụ ngƣời sử dụng. Trƣớc thực tế , một cổng giao tiếp hệ thống Gird với tên gọi Grid Portal ra đời. Grid Portal: là cổng kết nối dịch vụ giữa ngƣời dùng và nhà cung cấp dịch vụ, đƣợc phát triển nhƣ một phần mềm trên mạng Intenet để cung cấp các chức năng cần thiết theo hƣớng ngƣời dùng. Việc sử dụng công nghệ Portal cho phép tạo môi trƣờng làm việc riêng biệt cho từng ngƣời dùng, đồng thời tách biệt các chức năng dịch vụ riêng biệt từ phía máy chủ và tái sử dụng các thành phần chức năng của Web. Grid Portal đƣợc hình thành từ hai khái niệm cổng (portal) khác nhau: Cổng chuyên chƣng dụng (Application Specific Portal) cung cấp một tập con các thao tác truy cập Grid chuyên biệt từ bên trong một ứng dụng, từ các miền đặc biệt. Và Cổng chuyên cho ngƣời dùng (User 20
  21. Specific Portal) cung cấp các dịch vụ riêng liên quan đến các site phục vụ cho một tác vụ truyền thông nào. Để triển khai công nghệ GridPortal, chúng ta có thể sử dụng công cụ phát triển GPDK (Grid Poratl Development Kits). 1.3.6. Thành phần Giám sát lƣới Trong môi trƣờng lƣới, nhu cầu giám sát các tài nguyên là rất cần thiết. Các tài nguyên của lƣới luôn ở trạng thái động, chúng có thể gia nhập vào lƣới rồi sau đó rút ra khỏi vào bất kì thời điểm nào. Ngƣời dùng phải có khả năng tìm kiếm những tài nguyên mong muốn và giám sát các tài nguyên đó. Ngoài vai trò cung cấp thông tin cho ngƣời dùng, hệ thống giám sát lƣới còn đóng vai trò quan trọng trong các hoạt động lập lịch, nhân bản dữ liệu, phân tích hiệu năng, xây dựng ứng dụng tự điều chỉnh 1.3.6.1. Quy trình giám sát Quy trình giám sát các hệ phân tán thƣờng bao gồm bốn bƣớc nhƣ sau: 1/. Sinh các sự kiện: bộ cảm biến tiến hành đo đạc trên các thực thể và mã hóa kết quả thu đƣợc theo một lƣợc đồ cho trƣớc. 2/. Xử lí các sự kiện: các sự kiện đƣợc xử lí theo từng ứng dụng cụ thể. 3/. Phân phối các sự kiện: các sự kiện đƣợc chuyển đến các bên quan tâm. 4/. Trình diễn các sự kiện: các sự kiện đƣợc xử lí để đạt tới mức trừu tƣợng cao, đủ để ngƣời dùng rút ra đƣợc kết luận về trạng thái của hệ thống. Giai đoạn này thƣờng đƣợc thực hiện bởi một ứng dụng đồ họa, hiển thị dữ liệu tức thời theo thời gian thực hoặc lấy dữ liệu từ các kho lƣu trữ và hiển thị. 1.3.6.2. Yêu cầu đối với một hệ thống giám sát lưới Một hệ thống giám sát lƣới phải thỏa mãn đƣợc những yêu cầu sau đây: - Khả năng mở rộng: phải hoạt động tốt khi số lƣợng tài nguyên và ngƣời dùng tăng. - Độ trễ xử lý nhỏ: trong lƣới, các sự kiện liên tục đƣợc sinh ra với tốc số lƣợng lớn, đồng thời để tránh tình trạng dữ liệu bị lạc hậu thì hệ thống giám sát phải có tốc độ xử lí dữ liệu cao nhằm đạt đƣợc độ trễ nhỏ nhất. 21
  22. -Ít xâm phạm đến các tài nguyên: thao tác đo đạc diễn ra thƣờng xuyên sẽ tiêu đáng kể các tài nguyên. Hệ thống giám sát phải giữ đƣợc mức tiêu thụ tài nguyên của mình ở mức chấp nhận đƣợc. - Hỗ trợ nhiều mô hình truyền dữ liệu: thông tin giám sát bao gồm các sự kiện và các sự kiện động nên nó đòi hỏi các chính sách đo đạc khác nhau nhƣ đo định kì hay đo khi có yêu cầu. - Khả chuyển: các tài nguyên trong lƣới là rất không đồng nhất, bởi vậy các phần ống giám sát phải có tính khả chuyển cao. - Bảo mật: hệ thống giám sát phải hỗ trợ các dịch vụ bảo , chứng thực, vận chuyển an toàn các thông tin giám sát. - Khả năng đồng bộ hóa cao: bên nhận cần phải biết độ mới của một sự kiện do đó hệ thống giám sát phải có khả năng đồng bộ hóa cao giữa các thành phần. 1.3.6.3. Phân loại các hệ thống giám sát lưới Các hệ thống giám sát đƣợc chia thành bốn mức nhƣ sau: - Mức 0 (Level 0): các sự kiện đƣợc chuyển trực tiếp từ bộ cảm biến tới bộ tiêu thụ theo một trong hai chế độ online hoặc offline. Ở chế độ online, các kết quả đo đạc thƣờng đƣợc truy nhập ột giao diện web. Ở chế độ offline, kết quả đo đƣợc bộ cảm biến ghi vào kho lƣu trữ và sau đó đƣợc bộ tiêu thụ lấy ra. - Mức 1 (Level 1): trong các hệ thống loại này, các bộ cảm biến đƣợc xây dựng riêng và nằm trên cùng một máy với các bộ sinh, hoặc chúng đƣợc tích hợp vào trong các bộ sinh. Trong cả hai trƣờng hợp, các sự kiện đƣợc truy nhập thông qua các API của bộ sinh. - Mức 2 (Level 2): so với các hệ thống mức 1, các hệ thống mức 2 có thêm các thành phần trung gian. Các chức năng đƣợc phân bố trên cả bộ sinh và thành phần trung gian (có thể nằm trên máy khác) thay vì chỉ nằm trên một bộ sinh duy nhất. -Mức 3 (Level 3): các hệ thống ở mức này có tính linh hoạt cao nhờ các thành phần trung gian đƣợc tổ chức theo cấu trúc phân cấp. Mỗi thành phần trung gian thu thập và xử lí các sự kiện từ các thành phần trung gian hay bộ sinh nằm ở mức thấp hơn và sau đó gửi chúng lên các thành 22
  23. phần trung gian ở mức cao hơn. Các hệ thống mức 3 rất thích hợp cho môi trƣờng lƣới. Một hệ thống tiêu biểu thuộc loại này là Globus MDS. 1.4 Các thành phần của lƣới theo mô hình vật lý bao gồm: 1.4.1. Thành phần mạng (Networks) Mạng đóng vai trò là cơ sở hạ tầng để truyền số liệu và các thông tin giám sát công việc giữa các điểm trong mạng lƣới. Băng thông mạng là một thuộc tính rất quan trọng liên quan hiệu suất lƣới. 1.4.2. Thành phần tính toán (Computation) Cấp bởi các bộ xử lý trong lƣới, chúng đa dạng về tốc độ, kiến trúc, nền phần và lƣu trữ. 1.4.3. Thành phần lƣu trữ (Storage) Dữ liệu có thể đƣợc lƣu trữ phân tán trên nhiều thiết bộ xử lý hoặc một mạng LAN. Mỗi bộ xử lý thƣờng cung cấp một dung lƣợng lƣu trữ nhất định. Hệ thống file thƣờng đƣợc dùng là NFS, DFS hoặc GPFS. 1.4.4. Phần mềm và bản quyền (Software and License) 23
  24. phƣơng diện phần mềm trong môi trƣờng tính toán lƣới thì mức độ ổn định của ứng dụng phần mềm và bản quyền phần mềm là hai vấn đề cần đƣợc quan tâm nhất. 1.4.5. Các thiết bị đặc biệt Một vài nút trên lƣới có thể có những thiết bị đặc biệt, chẳng hạn các thiết bị quân sự, y tế, hay các thiết bị chuyên dụng khác. 1.5. HỆ THỐNG ĐẢM BẢO AN TOÀN THÔNG TIN Do àn ợ. . - : . - . - 24
  25. . - : đích . - Hỗ ông: . - : . 1.5.1. Cơ chế bảo đảm ATTT trong tính toán lƣới Các thành phần tham gia lƣới lại chịu tác động của chính sách cục bộ trong phạm vi của mỗi thực thể tham gia lƣới. Để giải quyết khó khăn này, cơ chế bảo đảm an toàn thông tin lƣới cho phép tổ chức ảo dùng chung một phần chính sách với các tổ chức thực. Giải pháp tải chồng các chính sách nhƣ trên bắt buộc bảo đảm an toàn thông tin lƣới phải đảm bảo các chức năng nhƣ: hỗ trợ nhiều cơ chế bảo mật khác nhau, khởi tạo động các dịch vụ, thiết lập động các miền chứng thực tin tƣởng. 1.5.2. Các chính sách bảo đảm ATTT trong tính toán lƣới Sau đây là các chính sách bảo đảm an toàn thông tin: - Môi trƣờng lƣới bảo đảm an toàn thông tin đa miền: tập trung điều khiển các tƣơng tác liên miền, ánh xạ hoạt động liên miền với các chính sách bảo đảm an toàn thông tin địa phƣơng. 25
  26. - Hoạt động lƣới hạn chế trong đơn miền quản trị: các hoạt động đa miền phải tuân theo chính sách bảo đảm an toàn thông tin địa phƣơng trên miền quản trị đơn. - Các chủ thể toàn cục và cục bộ đều tồn tại: tại mỗi miền quản trị đơn đều tồn tại hai chủ thể trên. - Chứng thực đa phƣơng: hoạt động giữa các thực thể trong các miền tin tƣởng khác nhau đòi hỏi phải có chứng thực đa phƣơng. - Mỗi đối tƣợng toàn cục đƣợc ánh xạ vào đối tƣợng cục bộ đó đƣợc coi nhƣ chúng đã qua chứng thực địa phƣơng trên đối tƣợng cục bộ đó. - Tất cả các quyết định điều khiển đƣợc đƣa ra đều là cục bộ hay dựa trên cơ sở của đối tƣợng cục bộ. - Có thể dùng chung tập giấy chứng nhận với các chƣơng trình thay mặt cho cùng một tiến trình, chạy trên cùng một chủ thể trong cùng một miền tin tƣởng. 1.5.3. Cơ sở Hạ tầng an ninh trong lƣới tính toán GSI là cơ chế cho phép xác thực và truyền thông an toàn trên mạng lƣới. Nó cung cấp một số dịch vụ nhƣ: khả năng xác thực lẫn nhau, cơ chế đăng nhập một lần, cơ chế ủy quyền. GSI dựa trên các công nghệ mã khoá công khai (Public Key Infrastructure), Chứ .509 (Certificate), nghi thức truyền thông bảo mật (Secure Socket Layer). Những chuẩn công nghiệp về bảo đảm an toàn thông tin trên đƣợc thêm vào cơ chế đăng nhập một lần (SSO) và uỷ quyền (Proxy) tạo nên nền tảng bảo đảm an toàn thông tin vững chắc của mạng lƣới. Sau đây là một số đặc điểm của GSI và các cài đặt ứng dụng của nó. Cơ sở hạ tầng khóa công khai (PKI): Chứng thực trong GSI là thao tác cung cấp cho mỗi thực thể một tên định danh duy nhất bằng cách đƣa ra khái niệm giấy ủy quyền lƣới, nó là một cặp giấy chứng nhận và khóa mã hóa (khóa bí mật). Trong môi trƣờng PKI, mỗi thực thể phải trao quyền sở hữu khóa bí mật của mình để bảo đảm sự toàn vẹn của hệ thống. 26
  27. Bảo mật mức thông điệp và mức giao vận: GSI cho phép thực hiện bảo mật ở mức giao vận và mức thông điệp. Nếu chúng ta sử dụng bảo mật mức giao vận, toàn bộ truyền thông đƣợc mã hóa. Nếu sử dụng bảo mật mức thông điệp thì chỉ nội dung của thông điệp SOAP đƣợc mã hóa. Hình 1.4. Bảo mật mức giao vận Hình 1.5. Bảo mật mức thông điệp Cả hai mức bảo mật này đều dựa trên khóa công khai, và do đó có thể đảm bảo tính toàn vẹn, riêng tƣ và khả năng chứng thực. Thƣờng thì hội thoại an toàn phải đảm bảo tối thiểu khả năng chứng thực. Toàn vẹn thƣờng rất cần thiết, nhƣng có thể bỏ qua. Mã hóa có thể đƣợc kích hoạt để đảm bảo tính riêng tƣ. Giấy ủy nhiệm Trong môi trƣờng lƣới, ngƣời sử dụng cần đƣợc chứng thực nhiều lần trong khoảng thời gian tƣơng đối ngắn. GSI giải quyết vấn đề này với khái niệm giấy ủy nhiệm. Mỗi giấy ủy nhiệm sẽ hoạt động thay mặt ngƣời dùng trong một khoảng thời gian ủy quyền ngắn hạn. Giấy ủy nhiệm có giấy chứng nhận và khóa bí mật riêng của nó, đƣợc tạo ra bằng cách kí lên giấy chứng nhận dài hạn của ngƣời dùng. 27
  28. Giấy ủy nhiệm theo một cách khác, là một sự liên kết ngắn hạn giữa tên định danh của ngƣời dùng với một khóa bí mật khác. Chứng chỉ số thƣờng đƣợc lƣu trữ sử dụng mã hóa trong hệ thống file địa phƣơng, thƣờng đƣợc bảo vệ bởi quyền truy cập file trong hệ thống, có thể đƣợc sử dụng nhiều lần mà không cần sự bất tiện nào. Còn giấy ủy nhiệm dễ bị tổn thƣơng, nó có thời gian sống ngắn hạn hơn nhiều so với các chứng chỉ số dài hạn của ngƣời dùng, thông thƣờng là vài giờ. Sự quyền Các ứng dụng của ngƣời dùng có thể thay mặt họ trong môi trƣờng lƣới. GSI cho phép ngƣờ ủy quyền giấy ủy nhiệm của mình để giao dịch các máy từ xa. Sự ủy quyền cũng tƣơng tự nhƣ việc tạo ra các giấy ủy nhiệm, mỗi tập chứng chỉ số dài hạn sẽ đƣợc dùng để tạo ra tập các giấy ủy nhiệm mới, có thời gian sống ngắn hơn. Sự khác nhau là việc tạo ra các giấy ủy nhiệm xảy ra trong các phiên kết nối đòi hỏi chứng thực GSI, khi các tiến trình từ xa đòi hỏi giấy ủy nhiệm của ngƣời dùng cho chứng thực. Một điều đáng chú ý nữa là sự ủy quyền có thể là một chuỗi, một ngƣời có thể ủy quyền cho một máy A, sau đó tiến trình sử dụng trên máy A có thể ủy quyền cho máy B và cứ tiếp tục nhƣ vậy. Chứng thực GSI hỗ trợ cơ chế cho phép chuyển các tên định danh GSI của ngƣời dùng vào trong các định danh địa phƣơng (tài khoản của một ngƣời dùng Unix cục bộ). Việc chứng thực các định danh GSI sẽ chuyển về chứng thực các định danh địa phƣơng, cùng với việc đó, các chính sách đƣa ra cũng nằm trong phạm vi cục bộ nhƣ: quyền truy nhập file, dung lƣợng đĩa, tốc độ CPU. Đ 28
  29. . - B. - đề 1. - . - . - . - . (disting . Chương 2. TRONG TÍNH . Bảo vệ thông tin trong lƣới tính toán cũng nhƣ trong các hệ thống thông tin nói chung gồm 4 nhiệm vụ chính: Bảo mật, bảo toàn, Xác thực, Sẵn sàng. Nhƣng trong đồ án này em xin tập trung vào hai bài toán: Bảo mật và Xác thực 29
  30. 2.1. TÍNH - Xác thực là một trong những vấn đề nóng bỏng. Xác thực là xác minh, kiểm tra một thông tin hay một thực thể nào đó để công nhận hoặc bác bỏ tính hợp lệ của thông tin hay thực thể đó. Đây là yêu cầu rất quan trọng trong các giao tiếp cần có sự tin cậy. Xác thực bao gồm 2 việc chính: + Xác thực tính hợp lệ của các thực thể tham gia giao tiếp. + Xác thực nguồn gốc của thông tin đƣợc trao đổi. - Xác thực điện tử là việc xác minh từ xa bằng các phƣơng tiện điện tử sự tồn tại chính xác và hợp lệ danh tính của chủ thể nào đó, cũng nhƣ thông tin nào đó mà không cần biết nội dung cụ thể của thông tin và chủ thể đó. Mục đích của việc xác thực điện tử: chống giả mạo, chống chối bỏ, tính xác thực của thông tin và mục đích cuối cùng là hoàn thiện các giải pháp an toàn thông tin. Cơ sở để xây dựng các giải pháp cho xác thực điện tử là các hệ mật mã. Giải pháp xác thực thực thể sử dụng lƣới + Xác thực chữ ký điện tử. + Xác thực dấu hiệu bản quyền. Nhƣng trong chƣơng này em xin tập trung vào xác thực chữ ký. Một sơ đồ chữ ký l tập (P, A, K, S, V) thoả mãn các điều kiện dƣới đây: + P là tập hữu hạn các bức điện (thông điệp) + A là tập hữu hạn các chữ kí + K là tập hữu hạn các khóa, K(k’,k”) Trong đó: Khóa k’: khóa bí mật (khóa ký) Khóa k”: khóa công khai (khóa kiểm thử) 30
  31. Sigk’ là thuật toán ký P A x P y = Sigk’(x) Verk’’ là thuật toán kiểm thử: (P, A) (Đúng, sai) Verk’’(x, y) = Đúng Nếu y = Sigk’(x) Sai Nếu y Sigk’(x) 2.1.1.1. Chữ ký RSA + Tạo khóa: Sơ đồ chữ ký cho bởi bộ năm (P, A, K, S, V) Cho n=p.q; với mỗi p, q là các số nguyên tố lớn khác nhau (n) = (p - 1)(q - 1). Cho P = A = Zn và định nghĩa: K là tập các khóa, K=(k’,k’’); với k’=a: khoá bí mật k’’=(n, b) khóa công khai * Trong đó: a, b Zn , thỏa mãn: b< (n) và nguyên tố cùng nhau với (n). a< (n) sao cho: a.b 1mod (n). Các giá trị n, b là công khai, các giá trị p, q, a là các giá trị bí mật. + Tạo chữ ký: Với mỗi K=(n, p, q, a, b) chữ ký trên x là: a y= Sigk’(x)= x mod n + Kiểm tra chữ ký: b Verk’’(x, y)= true x y mod n; x, y Zn. Giả sử A muốn gửi thông báo x, A sẽ tính chữ ký y bằng cách : a y=sigk’(x)= x mod n (a là khóa bí mật của A) 31
  32. A gửi cặp (x, y) cho B. Nhận đƣợc thông báo x, chữ ký số y, B bắt đầu tiến hành kiểm tra đẳng thức: x= yb mod (n) (b là khóa công khai A) Nếu đúng, B công nhận y là chữ ký trên x của A. Ngƣợc lại, B sẽ coi x không phải của A gửi cho mình . Ví dụ A dùng lƣợc đồ chữ ký số RSA với n=15,(p=3, q=5); (n) = 2.4 = 8 Chọn b=3. a = 3-1mod 8 = 3 vì (3.3 1(mod 8)) Khóa ký k’=3 Khóa công khai k’’=(15, 3) A ký trên thông báo x=2 với chữ ký: y = xa mod n = 23 mod 15 = 8 A gửi cặp (x, y) = (2, 8) cho B, B kiểm tra bằng cách sử dụng khóa công khai của A nhƣ sau: x = yb mod n = 83 mod 15 = 2 = x. B chấp nhận y=8 là chữ ký tin cậy. 2.1.1.2. Chữ ký ElGamal Chữ ký ElGamal đƣợc định nghĩa nhƣ sau: + Tạo khóa: * Cho p là số nguyên tố sao cho bài toán logarit rời rạc trong Zp là khó và giả sử Zp , là phần tử nguyên thủy * * Cho P = Zp , A = Zp x Zp-1 và định nghĩa K = {(p, a, , ): = a mod p }. Các giá trị p, , là công khai, a là bí mật. + Tạo chữ ký 32
  33. * Với K = (p, a, , ) và với số ngẫu nhiên k Zp -1 định nghĩa sigk( , ), trong đó: = k modp và = (x - a ) k -1 mod (p - 1). + Kiểm tra chữ ký số * Với x, Z p và Zp-1 , ta định nghĩa : Ver (x, , ) = True . x mod p. Chứng minh: Nếu chữ ký đƣợc thiết lập đúng thì hàm kiểm tra sẽ thành công vì: a. r. mod p x mod p ( vì a + r x mod (p - 1)). A tính chữ ký bằng cách dùng cả giá trị bí mật a (là một phần của khóa) lẫn số ngẫu nhiên bí mật k (dùng để ký trên x). Việc kiểm tra có thể thực hiện duy nhất bằng thông tin công khai. Ví dụ: Giả sử p=467, = 2, a = 127 Khi đó: = a mod p = 2127mod 467 = 132 Giả sử A có thông báo x=100 và A chọn ngẫu nhiên k=213 vì (213,466)=1 và 213-1 mod 466 = 431, A ký trên x nhƣ sau: = k mod p = 2213mod 467 = 29 Và = (x - a )k-1 mod (p -1) = (100 – 127. 29).431 mod 466 = 51. Chữ ký của A trên x= 100 là (29,51). Bất kỳ ngƣời nào đó cũng có thể kiểm tra chữ ký bằng cách tính: 13229 . 2951 189 mod 467 2100 189 mod 467 33
  34. Do đó, chữ ký là tin cậy. 2.1.2. Sử dụng chữ ký số trong xác thực thực thể dùng lƣới tính toán Chữ kí số là đoạn dữ liệu gắn liền với văn bản gốc để chứng thực tác giả của văn bản và g sử dụng công nghệ khóa công khai PKI (Public Key Infrastructure). Trong đó mỗi ngƣời tham gia ký cần một cặp khóa bao gồm một khóa công khai và một khóa bí mật. Khóa bí mật dùng để tạo chữ ký số, khóa công khai dùng để thẩm định, xác thực chữ ký số. ÍNH Các thông tin truyền trên lƣới cần phải đƣợc bảo mật bằng mã hóa, do đó trong mục này em sẽ trình bày về Hệ mã hóa. 2.2.1. Khái niệm mã hóa Hệ mã hóa là hệ bao gồm 5 thành phần (P, C, K, E, D) thỏa mãn các tính chất sau: P (Plaitext): là tập hợp hữu hạn các bản rõ có thể. C (Ciphertext): Là tập hữu hạn các bản mã có thể. K (Key): Là tập hợp các bản khoá có thể. E (Encrytion): Là tập hợp các quy tắc mã hoá có thể. D (Decrytion): Là tập hợp các quy tắc giải mã có thể. 34
  35. Chúng ta đã biết một thông báo thƣờng đƣợc xem là bản rõ. Ngƣời gửi sẽ làm nhiệm vụ mã hoá bản rõ, kết quả thu đƣợc gọi là bản mã. Bản mã đƣợc gửi đi trên đƣờng truyền tới ngƣời nhận. Ngƣời nhận giải mã để tìm hiểu nội dung bản rõ. Dễ dàng thấy đƣợc công việc trên khi định nghĩa hàm lập mã và hàm giải mã: Ek(P) = C và Dk (C) = P 2.2.1.1. Hệ mã hóa khóa đối xứng Mã hóa khóa đối xứng là hệ mã hóa mà biết chìa lập mã “dễ” tính ra chì . . . Sau đây là một số hệ mật mã cổ điển: 1/. Mã dịch chuyển: Định nghĩa: Mã dịch chuyển: (P, C, K, E, D) P = C = K = Z với k є K, định nghĩa e (x) = (x + k) mod 26 d (y) = (y – k) mod 26 26 k k (x, y є Z ) 26 Ví dụ: Dùng khoá k = 9 để mã hoá dòng thƣ“toinaydichoi” dòng thƣ đó tƣơng ứng với dòng số: t o i n a y d i c h o i 19 14 8 12 0 24 3 8 2 7 14 8 qua phép mã hoá e sẽ đƣợc: 9 2 23 17 22 9 7 12 17 11 16 23 17 35
  36. c x r w j h m r l q x r bản mã sẽ là: “qnwcxrcqdkjh” Nhận đƣợc bản mã đó, dùng d để nhận đƣợc bản rõ. 9 2/. Mã thay thế: Định nghĩa Mã thay thế: (P, C, K, E, D) P = C = Z , K = S (Z ) Với mỗi π є K, tức là một hoán vị trên Z , ta xác định 26 26 26 e (x) = π (x) π -1 dπ(y) = π (y) -1 với x, y є Z , π là nghịch đảo của л 26 Ví dụ: π đƣợc cho bởi (ở đây ta viết chữ cái thay cho các con số thuộc Z ): 26 bản rõ: “toinaydichoi” sẽ đƣợc mã hoá thành bản mã (với khoá π): “mfzsxdazygfz” -1 Dễ xác định đƣợc π , và do đó từ bản mã ta tìm đƣợc bản rõ. 36
  37. Mã thay thế có tập hợp khoá khá lớn - bằng số các hoán vị trên bảng chữ cái, 26 tức số các hoán vị trên Z , hay là 26! > 4.10 . Việc duyệt toàn bộ các hoán vị để thám 26 mã là rất khó, ngay cả đối với máy tính. Tuy nhiên, bằng phƣơng pháp thống kê, ta có thể dễ dàng thám đƣợc các bản mã loại này, và do đó mã thay thế cũng không thể đƣợc xem là an toàn. 3/. Mã Anffine: Định nghĩa: Mã Anffine: (P, C, K, E, D) P = C = Z , K = { (a, b) є Z x Z : (a, 26) = 1 } 26 26 26 với mỗi k = (a, b) є K ta định nghĩa: e (x) = ax + b mod 26 k -1 d (y) = a (y – b) mod 26 , trong đó x, y є Z . k 26 Ví dụ: Lấy k = (5, 6). Bản rõ: “toinaydichoi” t o i n a y d i c h o i x 19 14 8 13 0 14 3 8 2 7 14 8 y=5x + 6 mod 26 y 23 24 20 19 6 24 21 20 16 15 24 20 x y u t g y v u q p y u Bản mã: 37
  38. “xyutgyvuqpyu” Thuật toán giải mã trong trƣờng hợp này có dạng: d (y) = 21(y − 6) mod 26 k Với mã Apphin, số các khoá có thể có bằng (số các số ≤ 26 và nguyên tố với 26) × 26, tức là 12 × 26 = 312. Việc thử tất cả các khoá để thám mã trong trƣờng hợp này tuy khá mất thì giờ nếu tính bằng tay, nhƣng không khó khăn gì nếu dùng máy tính. Do vậy, mã Apphin cũng không phải là mã an toàn. 4/. Mã hoán vị: Định nghĩa Mã hoán vị: (P, C, K, E, D) Cho m là số nguyên dƣơng. P = C = Z , K = S, với mỗi k = π є S , ta có: 26 m m -1 trong đó π là hoán vị nghịch đảo của π Ví dụ: Giả sử m = 6, và khoá k đƣợc cho bởi phép hoán vị π 1 2 3 4 5 6 3 5 1 6 4 2 -1 Khi đó phép hoán vị nghịch đảo π là: 1 2 3 4 5 6 38
  39. 3 6 1 5 2 4 Bản rõ: “toinaydichoi” t o i n a y d i c h o i vt 1 2 3 4 5 6 1 2 3 4 5 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 3 5 1 6 4 2 3 5 1 6 4 2 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ừ bản mật mã ta lại thu đƣợc bản rõ. 2.2.1.2. Hệ mã hóa khóa phi đối xứng Mã hóa khóa phi đối xứng là hệ mã hóa mà biết chìa này “khó” tính . . Quá trình giao tiếp giữa 2 đối tƣợng A và B đƣợc mô tả nhƣ sau: B sinh ra cặp khóa bí mật và công khai, khóa bí mật đƣợc cất giữ một cách an toàn và đƣợc bảo vệ bằng một mật mã còn khóa công khai đƣợc cung cấp rộng rãi. A có thể sử dụng khóa công khai (đƣợc phát hành bởi B) để mã hóa thông tin và gửi cho B. Lúc này, chỉ duy nhất B, ngƣời sở hữu khóa bí mật, có thể giải mã thông tin bằng khóa bí mật. 39
  40. a . 2.2.2. Sử dụng hệ mã hóa trong bảo mật thông tin trên lƣới tính toán Ta biết rằng tin truyền trên mạng rất 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ã hoá thông tin trƣớc khi truyền đi. Việc mã hoá thƣờng theo quy tắc nhất định gọi là hệ mật mã. Các hệ thống thông tin ngày nay thƣờng sử dụng hệ mã hóa phi đối xứng vì độ an toàn cao hơn. Sau đây là một 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 là số nguyên tố lớn. Đặt P = C = Zn Chọn khoá công khai b: Chọn b< (n), nguyên tố cùng nhau với (n), (n) = (p-1)(q-1) Chọn khoá bí mật a: Chọn a là nghịch đảo của b theo modulo (n): a*b 1(mod (n)) K=(k’, k’’) trong đó: k’= (n, b) khóa công khai k’’= a khóa bí mật Với mỗi khoá K=(n, a, b), mỗi x P, y C định nghĩa b + Hàm lập mã : y = ek’(x) = x mod n a + Hàm giải mã: dk’’(y) = y 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 của bài toán tính lôgarit rời rạc, và sau đó đã nhanh chóng đƣợc sử dụng rộng rãi không những trong vấn đề bảo mật truyền tin mà còn trong các vấn đề xác nhận và chữ ký điện tử. Bài toán logarithm rời rạc trong Zp là đối tƣợng trong nhiều công trình nghiên cứu và đƣợc xem là bài toán khó nếu p đƣợc chọn cẩn thận. Cụ thể là không có một thuật toán thời gian đa thức nào cho bài toán logarithm rời rạc. Để gây khó khăn cho các phƣơng pháp tấn công đã 40
  41. biết, p phải có ít nhất 150 chữ số và (p – 1) phải có ít nhất một thừa số nguyên tố lớn. Hệ mật Elgamal là một hệ mật không tất định vì bản mã phụ thuộc vào cả bản rõ x lẫn giá trị ngẫu nhiên k do G chọn. Bởi vậy sẽ có nhiều bản mã đƣợc mã từ cùng một bản rõ. Bài toán logarithm rời rạc trong Zp: Đặc trƣng của bài toán: I = (p, , ) trong đó p là số nguyên tố, Zp là phần tử * nguyên thuỷ (hay phần tử sinh), Zp . Bài toán: Tìm x sao cho x (mod p). * Định nghĩa mã khóa công khai Elgamal trong Zp : + Sinh khoá: Cho p là số nguyên tố sao cho bài toán logarithm rời rạc trong Zp là khó giải. * Cho Zp là phần tử nguyên thuỷ. * * * Giả sử P = Zp , C = Zp x Zp . Ta định nghĩa: K = {K(k’,k’’);k’=(p, , a, );k’’=a: a (mod p)} Các giá trị p, , đƣợc công khai, còn a giữ kín.( 0 a p-2) Với K =(p, , a, ) và một số ngẫu nhiên bí mật k Zp – 1, ta xác định: + Lập mã: Ek’(x, k) = (y1, y2) Trong đó: k y1 = mod p k y2 = x. mod p * Với y1, y2 Zp : + Giải mã: a – 1 dk’’(y1, y2) = y2(y1 ) mod p 41
  42. Ví dụ: Chọn p = 7 * Zp là phần tử nguyên thuỷ nên = 3 Chọn a sao cho 0 a p – 2 nên chọn a = 2 Khi đó: = a mod p = 32 mod 7 = 2 Chọn x sao cho: 3x (mod p) =>x=3 Chọn một 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 = 3 cho B, A phải tính: Ek’(x, k) = (y1, y2) k 3 trong đó: y1 = mod p = 3 mod 7 = 6 k 3 y2 = x. mod p = 3*2 mod 7 = 3 Khi B thu đƣợc bản mã (y1, y2) = (6, 3), anh ta sẽ tính: a -1 2 -1 dk’’(y1, y2) = y2(y1 ) mod p = 3*(6 ) mod 7 = 3=x Đó chính là bàn rõ mà G đã mã hoá. 42
  43. Chương 3. 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 và 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 trên window, không hỗ trợ các công nghệ mới nhƣ nhắc nhở ngƣời dùng các từ khoá, hàm và kiểu dữ liệu, thao tác soạn thảo của Tubo C++3.0 cũng không tiện lợi vì đòi hỏi sử dụng các tổ hợp phím khá phức tạp + Phần cứng: chiếm dung lƣợng nhỏ (khoảng 4,3 MB), có thể chạy trên mọi thế hệ của 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 3 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, bản rõ x. Out put: Chữ ký số.  Kiểm tra chữ ký: Input: bản rõ x, chữ ký số, khóa công khai và n. Output: Xác thực chữ ký đúng hoặc sai. 43
  44. 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
  45. 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
  46. } //=== int kiemtra_ngto(long pq) { for(long i=2;i m) 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 nhau voi phi_N\n\n moi chon lai b!"); 46
  47. 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
  48. { 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
  49. 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<b<phi_N) sao cho gcd(b,phi_N)==1\n\n b="); scanf("%ld",&b); if(Ktra_ngto_cungnhau(b,phi_N)!=1)goto b; a=kha_nghich(b,phi_N); printf("\n\n LAP CHU KI "); printf("\nKhoa bi mat dung de tao chu ki la K1(a)=%ld",a); printf("\nNhap ban ro x=");scanf("%ld",&x); Ki=exp_mod(x,a,n); printf("\nVoi so x ta tao duoc ra chu Ki la :%d",Ki); Kthuocvb=Kitep(Ki); printf("\nVan ban da duoc ki!"); printf("\n\n KIEM THU CHU KI "); printf("\nKiem thu voi khoa cong khai la K2(b,n)=(%ld,%ld)",b,n); Kiem_thu=Doctep(Kthuocvb); printf("\nChu ki duoc lay tu tep la:%d",Kiem_thu); printf("\nKiem thu chu ki so ta duoc x=%d ",exp_mod(Kiem_thu,b,n)); if(exp_mod(Kiem_thu,b,n)==x) printf("\n\n CHU KI TREN LA DUNG!"); else printf("\n\n KHONG PHAI LA CHU KI!"); getch(); } //=== 49
  50. void menu() { int c; while(1) { clrscr(); printf("\n\n===* CHUONG TRINH CHU KY SO *==="); printf("\n\n[1].CHU KY RSA"); printf("\n[2].Thoat khoi chuong trinh"); printf("\n\n Moi ban chon:");scanf("%d",&c); switch(c) { case 2: return; case 1: Ky_RSA(); break; } } } //=== void main() 50
  51. {clrscr(); menu(); } //=== Ket thuc === 3.4. HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH +Khởi động TC để vào chƣơng trình. +Trƣớc khi chạy chƣơng trình nhấn phím F9 để kiểm tra lỗi. +Nếu không báo lỗi nhấn tổ hợp phím Ctrl + F9 để chạy chƣơng trình, xuất hiện giao diện nhƣ sau: = = = = = CHUONG TRINH KY SO = = = = = = [1]. CHU KY RSA [2]. THOAT KHOI CHƢƠNG TRINH Moi ban chon: 1 + Nhấn phím 1 để vào chƣơng trình, phím 2 để thoát khỏi chƣơng trình. + Kết quả thử nghiệm chƣơng trình: 51
  52. = = = = = CHUONG TRINH KY SO = = = = = = Nhap so nguyen to p=5 Nhap so nguyen to q=3 Moi ban chon b sao cho gcd(b,phi_N) =1 b=11 LAP CHU KI Khoa bi mat dung de tao chu ki la K1(a)=3 Nhap ban ro x=2 Voi so x ta tao duoc ra chu ki la : 8 Nhap vao ten tep can ki: file.doc Van ban da duoc ki ! KIEM THU CHU KI Kiem thu voi khoa cong khai la K2(b, n) = (11, 15) Nhap vao ten tep can mo: file.doc Chu ki duoc lay ra tu tep la: 8 Kiem thu chu ki so ta duoc x=4 CHU KI TREN LA DUNG! + Chú ý: Khi chƣơng trình yêu cầu nhập tên tệp để ký: - Nếu tệp cần ký và chƣơng trình chạy đƣợc đặt trong cùng một thƣ mục thì ta chỉ việc nhập tên tệp văn bản cần ký. - Ngƣợc lại thì ta cần phải chỉ rõ đƣờng dẫn đến tệp văn bản cần ký. KẾT LUẬN Đồ án T T gồm hai kết quả chính: 1/. Tìm hiểu và nghiên cứu qua tài liệu để hệ thống lại các vấn đề sau: + Tổng quan về tính toán lƣới. + Các thành phần cơ bản của lƣới tính toán. + Một số bài toán về an toàn thông tin trong tính toán lƣới. 2/. Thử nghiệm chƣơng trình TÀI LIỆU THAM KHẢO 52
  53. 1/. Tiếng Việt: [1] Phan Đình Diệu: Lý thuyết mật mã và An toàn thông tin, 2004. [2] Trịnh Nhật Tiến: Bài giảng môn An toàn dữ liệu, 2005. 2/. Tiếng Anh: [3] Ahmar Abbas. Grid Computing: A Practical Guide to Technology and Applications. Charles River Media, 2003. [4] B.Jacob, M.Brown, K.Fukui, N.Trivedi. Introduction to Grid Computing. IBM Redbook, 2005. [5] Borja Sotomayor. Ther Globus Tookit 4 Programmer’s Tutorial. University of Chicago, 2005. [6] Joshy Joseph, Craig Fellenstein. Grid Computing. IBM Press, 2003. [7] Website: http:// www.toantin.org. Grid fundamental. [8] Website: Primes. 53