1. Trang chủ
  2. » Giáo Dục - Đào Tạo

XỬ lý SONG SONG QUÁ TRÌNH SINH KHÓA của hệ THỐNG cấp PHÁT CHỨNG THỰC số

52 1 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

Nội dung

ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thanh Hào XỬ LÝ SONG SONG QUÁ TRÌNH SINH KHÓA CỦA HỆ THỐNG CẤP PHÁT CHỨNG THỰC SỐ KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ĐẠI HỌC QUỐC GIA HÀ NỘI TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thanh Hào XỬ LÝ SONG SONG Q TRÌNH SINH KHĨA CỦA HỆ THỐNG CẤP PHÁT CHỨNG THỰC SỐ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Cơng nghệ thơng tin Cán hướng dẫn: PGS.TSKH Phạm Huy Điển HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TĨM TẮT NỘI DUNG Khóa luận có trình bày số vấn đề an tồn thơng tin đại Các vấn đề dẫn đến nhu cầu thiết phải xây dựng hệ thống chứng thực số, tạo điều kiện cho ứng dụng chữ ký số phát triển Phần lý thuyết chứng thực chữ ký số, hệ thống chứng thực số CA ứng dụng hệ mã RSA mà cốt lõi q trình sinh khóa Thực chất q trình sinh khóa sinh cặp số nguyên tố p, q thỏa mãn tính chất số nguyên tố xác suất mạnh Với yêu cầu số nguyên tố thế, phần khóa luận có đề cập đến lý thuyết số nguyên tố, việc kiểm tra số nguyên tố, tính chất để số nguyên tố gọi mạnh Với khối lượng tính tốn số nguyên lớn vậy, xử lý không đáp ứng nhu cầu thời gian, phương pháp xử lý song song CPU (central processing unit) nhắc đến Đó công cụ Visual Studio 2010 Microsoft Phần cuối khóa luận kết đạt định hướng cho tương lai LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI MỞ ĐẦU .5 NỘI DUNG Chương Những vấn đề an tồn thơng tin đại 1.1 An tồn thơng tin đại .3 1.2 Chứng thực chữ ký số .3 1.2.1 Hệ mã khóa cơng khai việc tạo chữ ký số 1.2.2 Chứng thực số 1.3 Vai trò CA vấn đề then chốt thiết lập CA 10 1.3.1 Vai trò CA .10 1.3.2 Sử dụng chứng thực số 10 1.3.3 Các chức CA .11 1.3.4 Vấn đề then chốt thiết lập CA 13 Chương Một số cơng cụ tốn học liên quan 15 2.1 Số nguyên tố hệ mã khóa cơng khai RSA .15 2.1.1 Hệ mã khóa cơng khai RSA 15 2.1.2 Lý thuyết toán học số nguyên tố vấn đề liên quan 17 2.2 Việc tính tốn số ngun tố khái niệm số giả nguyên tố Kiểm tra số giả nguyên tố mạnh 20 2.2.1 Thuật toán kiểm tra số nguyên tố thông thường khái niệm số giả nguyên tố .20 2.2.2 Kiểm tra số giả nguyên tố mạnh 20 2.2.3 Tính nguyên tố mạnh số 25 2.3 Chìa khóa an tồn 26 Chương Tính tốn song song 28 3.1 Xử lý song song, hội thách thức [8] 28 3.1.1 Cơ hội 29 3.1.2 Những thách thức: Các vấn đề khó khăn gặp phải xử lý song song 30 3.1.3 Giải pháp: Các công nghệ song song Visual Studio 2010 Microsoft .32 3.2 Lập trình song song với Visual Studio 2010 [8] 33 3.2.1 Thư viện .33 3.2.2 Các mơ hình lập trình song song ví dụ .34 3.2.3 Kết luận 38 Chương Kết triển khai tính thử nghiệm 39 4.1 Giới thiệu chương trình ứng dụng 39 4.1.1 Mục đích hoạt động chương trình 39 4.1.2 Một số hình ảnh chương trình 40 4.2 Một số thống kê chạy chương trình chip intel core2duo 2.2 GHZ 43 PHỤ LỤC 44 A Thuật toán Miller-Rabin 44 B Thuật toán Lucas .44 C Thuật toán kiểm tra nguyên tố mạnh 45 KẾT LUẬN .47 TÀI LIỆU THAM KHẢO 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI MỞ ĐẦU Hiện nay, nước phát triển phát triển, mạng máy tính đóng vài trị quan trọng lĩnh vực hoạt động xã hội, trở thành phương tiện điều hành hệ thống nhu cầu bảo mật thông tin đặt lên hàng đầu Nhu cầu khơng có máy nhà nước, mà trở thành thiết nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại … Những ứng dụng dân an tồn thơng tin ngày phát triển, mở rộng đặc biệt chữ ký số Khi văn tài liệu số hóa, chuyển nhanh hệ thống mạng ký tay thông thường trở ngại cho hoạt động trao đổi thơng tin Bên cạnh đó, hệ thống chứng thực thông tin, chứng thực số cần thiết phát triển mà nhu cầu trao đổi thông tin, xác thực thông tin quan, xí nghiệp, ngân hàng,… ngày tăng kèm với phát triển mạnh sở hạ tầng mạng Hệ thống chứng thực số CA (certificate authority) giải pháp cho vấn đề Với CA, người tham gia vào hệ thống cấp phát cặp chìa khóa bí mật, cơng khai Khi muốn gửi thơng tin người sử dụng lấy chìa khóa bí mật mã hóa văn gửi đi, người nhận lấy chìa khóa cơng khai người gửi để giải mã Đồng thời với chứng thực hệ thống CA, đoạn thơng tin đảm bảo thuộc người gửi Ngoài ra, với giấy tờ, hợp đồng kinh tế, … cần có chữ ký bên liên quan, người ký sử dụng chìa khóa bí mật để mã hóa văn (Hành động giống ký tay giấy tờ hành thông thường) Như vậy, việc xây dựng hệ thống CA quan trọng, cần thiết đời sống xã hội mà cơng nghệ thơng tin đóng vài trị chủ chốt giao dịch, bn bán Một ví dụ cụ thể, trung tâm tin học thuộc viện nghiên cứu khoa học cơng nghệ Việt nam có dự án xây dựng hệ thống CA để phát triển ứng dụng chữ ký số chứng thực điện tử Kết khóa luận dùng trình quan trọng hệ thống CA tới phát triển – cấp phát khóa Vấn đề then chốt hệ thống CA trình cấp phát chứng thực khóa có thuộc cá thể hay khơng Q trình cấp phát khóa thực chất sinh cặp số nguyên tố thỏa mãn yếu cầu để nguyên tố mạnh Những tính tốn số ngun lớn địi hỏi thời gian lâu để sinh cặp số vậy, chưa kể đến thời gian kiểm tra thỏa mãn tính nguyên tố mạnh Hơn nữa, hệ thống CA triển khai gặp tình trạng có nhiều người sử dụng truy cập thời LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com điểm yêu cầu cấp phát khóa, xảy tượng nghẽn mạng, tắc cổ chai phần sinh khóa khơng đáng ứng thời gian Hệ thống xem không đạt yêu cầu Một giải pháp đưa xử lý song song q trình sinh khóa hệ thống CA Thời gian trước, công nghệ xử lý song song thực cụm nhiều máy chủ thời CPU (central processing unit) khơng có nhiều nhân Ngày nay, với phát triển vượt bậc công nghệ phần cứng, hãng phần cứng tiếng giới nghiên cứu liên tục cho đời nhiều xử lý tích hợp nhiều lõi bên (2, 4, chí 16 lõi) Đây thời điểm thuận lợi để ứng dụng công nghệ xử lý song song CPU có nhiều nhân Một phương án khác có lợi mặt kinh tế tính tốn card đồ họa (graphic card) Card đồ họa mạnh xử lý vector (xử lý nhiều số lúc) công nghệ song song cịn chưa phát triển (chưa có thư viện cần thiết để sinh cặp số nguyên tố lớn kiểm tra tính ngun tố mạnh chúng) Vì vậy, xử lý song song CPU nhiều nhân phương án hợp lý, cân đối mặt kinh tế công nghệ hỗ trợ tốc độ Tập đồn Microsoft cho đời cơng cụ Visual Studio 2010 hỗ trợ xử lý song song CPU nhiều nhân, đồng thời có thư viện xử lý số nguyên lớn C Sharp (C#) – ngôn ngữ lập trình cơng cụ sử dụng để phát triển giai đoạn quan trọng ban đầu hệ thống CA – sinh khóa LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Những vấn đề an tồn thơng tin đại NỘI DUNG Chương Những vấn đề an toàn thơng tin đại 1.1 An tồn thơng tin đại Hiện nay, tất nước phát triển phát triển, mạng máy tính đóng vài trò thiết yếu lĩnh vực hoạt động tồn xã hội, trở thành phương tiện điều hành hệ thống nhu cầu bảo mật thông tin đặt lên hàng đầu Nhu cầu khơng có máy An ninh, Quốc phòng, Quản lý Nhà nước, mà trở thành thiết nhiều hoạt động kinh tế xã hội: tài chính, ngân hàng, thương mại … An tồn thông tin ngày không đơn việc giữ bí mật thơng tin quan trọng (được áp dụng quân đội, quốc phòng, an ninh quốc gia …) mà cịn chứng thực thơng tin (thơng tin thuộc cá nhân, tập thể cụ thể đó) Những ứng dụng an tồn thơng tin dân sự, đặc biệt chữ ký số ngày phát triển, mở rộng có phần áp đảo so với quân Bởi lẽ thành phần tham gia hoạt động mã hóa thơng tin qn đội hay quốc phịng nhóm người cịn tham gia vào hoạt động dân tất có nhu cầu chứng thực thơng tin, cung cấp, tiếp nhận thông tin hệ thống mạng máy tính Một hệ thống chứng thực thơng tin, chứng thực số cần thiết phát triển mà nhu cầu trao đổi thông tin, xác thực thông tin ngày tăng kèm với phát triển mạnh sở hạ tầng mạng 1.2 Chứng thực chữ ký số 1.2.1 Hệ mã khóa cơng khai việc tạo chữ ký số Nguyên lý hoạt động hệ mã khóa cơng khai [4] Hệ mã khóa cơng khai (hay gọi hệ mã phi đối xứng) phát minh thập kỷ cuối kỷ vừa qua Nó sử dụng chìa khóa riêng biệt cho việc lập mã giải mã văn Chìa dùng cho việc lập mã cơng bố cho người biết (chìa cơng khai), cịn chìa dùng cho việc giải mã giữ bí mật tuyệt đối Việc biết chìa khóa cơng khai khơng cho phép tính chìa khóa giải mã Mỗi cá thể k tham gia vào hệ thống cấp phát riêng cặp chìa khóa (E k , Dk ) , E k chìa khóa lập mã, cịn Dk chìa khóa giải mã Khi mã hóa văn P (bằng chìa E k ) ta văn mã ký hiệu C = E k (P ) Văn giải mã chìa khóa Dk (cùng cặp với E k ), nghĩa Dk (C ) = Dk (E k (P )) = P LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Những vấn đề an tồn thơng tin đại Khi cá thể i muốn giử thơng điệp M cho đối tác k dùng chìa khóa lập mã E k đối tác k (đã biết cơng khai) để mã hóa văn gửi dạng thông điệp mã C = E k (M ) Khi đối tác k nhận thơng điệp dùng chìa khóa giải mã (là Dk ) để giải mã theo nguyên lý nêu Dk (C ) = Dk (E k (M )) = M Các cá thể khác hệ thống, nhận văn mã C , khơng thể giải mã M , họ khơng có chìa khóa giải mã Dk cá thể K Ký điện tử hệ mã khóa cơng khai [3][5][13] Với hệ mã khóa cơng khai, quy trình ký văn điện tử thiết lập dựa ý tưởng hai nhà khoa học Diffie Hellman [5][13]:  Người gửi (chủ nhân văn bản) ký văn cách mã hóa với khóa bí mật gửi cho người nhận  Người nhận văn (đã ký) tiến hành kiểm tra chữ ký cách sử dụng chìa khóa cơng khai người gửi để giải mã văn Nếu giải mã thành cơng văn ký người gửi Giao thức mang đầy đủ thuộc tính thủ tục ký thơng thường Thật vậy:  Chữ ký sản phẩm người chủ động tạo nó, tức người dùng chìa khóa bí mật để mã hóa văn  Chữ ký cho biết chủ nhân người sở hữu chìa khóa bí mật dùng để mã văn (kiểm tra cách cho giải mã chìa khóa cơng khai người đó) Khơng làm giả “chữ ký” có người có chìa khóa bí mật dùng để “ký” (mã hóa)  Chữ ký cho văn khơng thể “tái sử dụng” cho văn khác Thật vậy, việc biết chữ ký (văn mã) khơng cho phép tìm chìa khóa bí mật người gửi (để ký văn khác)  Văn ký thay đổi (xuyên tạc) nội dụng Thật vậy, mở để thay đổi khơng thể “ký lại” nữa, khơng có chìa khóa bí mật “người ký” (như nói trên)  Người ký văn khơng thể thối thác việc “đã ký”, ngồi ơng ta khơng cịn có chìa khóa dùng để “ký” văn LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Những vấn đề an tồn thơng tin đại Rõ ràng, mặt logic quy trình ký hợp lý Mọi thành viên tham gia sử dụng hệ mã khóa cơng khai có khả ký văn điện tử (bằng chìa khóa bí mật riêng mình) kiểm tra chữ ký người khác (bằng chìa khóa cơng khai mà họ cơng bố) Việc dùng chìa khóa bí mật để mã hóa văn gọi ký điện tử, kết tạo liệu dạng số, gọi chữ ký số [6] Trong thực tiễn triển khai, người biết tốc độ mã hố hệ mã khố cơng khai vơ chậm Cho nên, việc ký văn dài (như thông tư, nghị định, văn kiện, ) theo quy trình nêu khơng khả thi thực tiễn Để khắc phục khó khăn này, người ta sử dụng hàm “chiết xuất” đặc trưng văn Hàm nhận giá trị đầu vào văn (độ dài tùy ý) cho đầu dãy số có độ dài xác định, gọi mã băm (message digest) Hàm chiết xuất có thuộc tính quan trọng “nhạy” thay đổi văn bản, theo cần thay đổi cực nhỏ văn (như thay dấu chấm, dấu phẩy,…) kéo theo thay đổi rõ rệt giá trị mã băm Chính mã băm có tính đặc trưng cao, thường gọi đặc trưng văn Để nhận biết toàn vẹn văn người ta cần xem đặc trưng có bị thay đổi hay khơng Hai thuộc tính quan trọng khác hàm chiết xuất tính chiều tốc độ nhanh Tính chiều thể chỗ tạo văn có mã băm (đặc trưng) xâu số cho trước, khơng thể mạo “văn giả” có đặc trưng với văn cho trước Tốc độ nhanh có nghĩa thời gian tính đặc trưng cho văn khơng đáng kể [3][13] Rõ ràng, việc đặc trưng văn không bị thay đổi đồng nghĩa với việc thân văn không bị thay đổi Từ ta có quy trình ký văn dựa vào đặc trưng Theo quy trình này, cá thể A muốn ký văn P cần phải thực bước sau [3][13]:  Tính đặc trưng văn P (bằng hàm chiết xuất có sẵn hệ thống)  Dùng chìa khóa bí mật để mã hóa dãy số đặc trưng văn thu bước Đặc trưng văn sau mã (bằng chìa bí mật A) gọi chữ ký số (của ông A văn P ) Tức tuân theo sơ đồ sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Những vấn đề an tồn thơng tin đại Hình 1.1: Quy trình ký điện tử [13] Dễ dàng thấy chữ ký số tạo quy trình có đầy đủ thuộc tính nêu mục đầu Thời gian tạo chữ ký giảm nhiều gần không phụ thuộc vào độ dài văn Thật vậy, thời gian tính đặc trưng văn không đáng kể, thời gian tạo chữ ký cịn việc mã hóa đặc trưng văn (có độ dài với văn bản, nhỏ độ dài văn nhiều lần) Một người đó, nhận văn P với chữ ký số kèm, muốn tiến hành kiểm tra cần tiến hành bước sau [3][13]:  Tính đặc trưng văn P (bằng hàm chiết xuất có sẵn hệ thống)  Giải mã chữ ký số (bằng chìa khóa cơng khai ơng A) để có đặc trưng P , so sánh với đặc trưng thu bước Nếu chúng khớp chứng tỏ văn nhận văn ơng A ký nội dung khơng bị thay đổi so với ký Tức tuân theo sơ đồ sau: LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tính tốn song song  Asynchronous Agents Library  Asynchronous Agents  Messaging Blocks  Parallel Extensions to the Microsoft Net Framework  Parallel LINQ (PLINQ)  Task Parallel Library (TPL) Chúng ta đề cập chi tiết thư viện Parallel Extensions sử dụng để tạo chương trình sinh khóa Parallel Extensions Là bổ sung cho thư viện Microsoft NET Framework Nó có cấu trúc song song cấp cao cho ứng dụng quản lý, bao gồm:  Parallel LINQ (PLINQ) Một mơ hình khai báo cho liệu song song dựa Language Integrated Query (LINQ)  Task Parallel Library (TPL) Một mơ hình cho nhiệm vụ liệu song song dựa mơ hình song song rõ ràng, chẳng hạn nhiệm vụ tương lai, cấu trúc song song, Parallel.For  Coordinations Data Structures (CDS) Một tập hợp thao tác phối hợp đồng hóa để đơn giản hóa kết nối mẫu khởi tạo Parallel Extensions hướng đến nhà phát triển sử dụng ngôn ngữ NET nào, chẳng hạn C #, Visual Basic, C + + / CLI, F # Paralle Extensions khiến việc trở nên dễ dàng tự động song song hóa truy vấn từ LINQ đến đối tượng, đạt độ tăng tốc đáng kể với thay đổi đến sở mã có nhà phát triển Task Parallel Library đơn giản hóa việc giới thiệu liệu song song nhiệm vụ (task) vào ứng dụng, thông qua cấu trúc song song vịng lặp thơng qua song song thuật toán phức tạp sử dụng fine-grained 3.2.2 Các mơ hình lập trình song song ví dụ Visual Studio 2010 hỗ trợ ba mơ hình để thể tính tốn song song: Data Parallelism  Parallel Loops (vịng lặp song song) Ví dụ: concurrent_vector Query(vector stocks) { 34 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tính tốn song song concurrent_vector results; parallel_for_each(stocks.begin(), stocks.end(), [&](StockQuote stock) { if (stock.marketCap > 100000000000.0 && stock.changePct < 0.025 && stock.volume > 1.05 * stock.volumeMavg3M) { results.push_back(stock); } }); return results; }  PLINQ Ví dụ: IEnumerable Query(IEnumerable stocks) { return from stock in stocks.AsParallel() where stock.MarketCap > 100000000000.0 && stock.ChangePct < 0.025 && stock.Volume select stock; > 1.05 * stock.VolumeMavg3M } Task Parallelism  Parallel Invoke Tuần tự: void quicksort(int * a, int n) { if (n B(a.Result)) ContinueWith(b => C(b.Result));  Messaging blocks and asynchronous agents (truyền khối tin agent không đồng bộ) HRESULT LogChunkFileParser::ParseFile(){ unbounded_buffer* MsgBuffer = new unbounded_buffer(); // Parsing agent AgentTask* pParserAgent = new AgentTask([&]{ 36 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tính tốn song song AgentMessage msg; while((msg = receive(MsgBuffer))->type != EXIT) { Parse(msg->pCurrentLine); delete msg->pCurrentLine; } }); pParserAgent->start(); // Read the file HRESULT hr = S_OK; WCHAR* wszLine; hr = reader->OpenFile(pFileName); if (SUCCEEDED(hr)){ while(!reader->EndOfFile()){ wszLine = new WCHAR[MAX_LINE]; // Read the next line hr = reader->ReadLine(wszLine, MAX_LINE); if (SUCCEEDED(hr)){ // and parse it send(MsgBuffer, AgentMessage(wszLine)); } } send(MsgBuffer, AgentMessage(EXIT)); hr = agent::wait(&pParserAgent); } return hr; 37 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Tính tốn song song Hình 3.2: Kiến trúc lập trình song song Net Frame Work 4.0 [8] 3.2.3 Kết luận Cải tiến phần mềm tương lai phần lớn xoay quanh tận dụng lợi vi xử lý nhiều lõi thơng qua tính tốn song song Ngành cơng nghiệp phát triển phần mềm có bước tiến để thực hóa song song cho dễ tiếp cận khả thi cho tất nhà phát triển Các giải pháp toàn diện có Microsoft Visual Stuio 2010 hỗ trợ xử lý song song đa lõi từ bên hệ điều hành đến chương trình ứng dụng Những cơng nghệ cho phép phát triển ứng dụng thư viện với khả xử lý song song quy mô rộng với xử lý đa lõi tốc độ xử lý tiếp tục phát triển đôi với tốc độ phát triển lõi xử lý theo cấp số nhân tương lai 38 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết triển khai tính thử nghiệm Chương Kết triển khai tính thử nghiệm 4.1 Giới thiệu chương trình ứng dụng 4.1.1 Mục đích hoạt động chương trình Mục đích Chương trình tạo với mục đích sinh khóa cho hệ thống cấp phát chứng thực số Cụ thể sinh cặp số nguyên tố mạnh p, q - yếu tố chủ chốt việc sinh khóa hệ mã RSA ứng dụng hệ thống CA Mô tả hoạt động Đầu vào Số N: số cặp p, q sinh sau chương trình chạy xong Quá trình xử lý sinh cặp số  Chương trình sử dụng hàm khởi tạo class RSACryptoServiceProvider có namespace System.Security.Cryptography Về thực chất việc tạo class sinh chìa khóa RSA mà có thành phần e, d , p, q, n  Chuyển số p, q từ dạng liệu byte[] sang kiểu BigInteger (class số nguyên lớn System.Numerics) Sau với số p, q kiểm tra test  Kiểm tra số p theo: thuật toán Miller-Rabin xác suất lỗi 100 thuật toán Lucas  Kiểm tra số q theo: thuật toán Miller-Rabin xác suất lỗi 100 thuật toán Lucas  Kiểm tra điều kiện ràng buộc p q để chìa khóa RSA an toàn theo chuẩn FIPS 186-3  Kiểm tra tính ngun tố mạnh p, q : tìm thừa số nguyên tố p1 , p 2, q1 , q p  1, p  1, q  1, q  kiểm tra độ dài tính theo bit chúng dựa bảng 2.3 Các kiểm tra Miller-Rabin, Lucas, tính nguyên tố mạnh thân em tự code dựa theo hướng dẫn thuật toán phần 2.2.2, 2.2.3, 2.3 Phân công song song sinh N cặp p, q 39 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết triển khai tính thử nghiệm  Sử dụng vòng lặp song song Parallel.For namespace System.Threading.Tasks từ đến N-1 bên ngồi q trình xử lý sinh cặp số Các công việc cụ thể tự động chia lên số lõi có  Ngồi q trình kiểm tra tính ngun tố mạnh p, q có bước tìm thừa số nguyên tố p1 , p 2, q1 , q p  1, p  1, q  1, q  Các bước độc lập nên song song lệnh Parallel.Invoke Đầu  Đầu chương trình N cặp số p, q thỏa mãn điều kiện số giả nguyên tố có xác suất lỗi thấp (giả nguyên tố mạnh) đồng thời có tính chất mạnh theo nghĩa số p  1, q  khó bị hacker phân tích thừa số nguyên tố vụn p, q dùng làm khóa  Chương trình thơng báo số cặp p, q sinh thư viện C# không thỏa mãn kiểm tra Miller-Rabin Lucas, không thỏa mãn điều kiện ngun tố mạnh Ngồi ra, chương trình cịn thơng báo thời gian chạy chương trình có sai số (trong điều kiện khơng lý tưởng q trình chương trình chạy cịn có tiến trình khác hệ điều hành chạy) 4.1.2 Một số hình ảnh chương trình Giao diện 40 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết triển khai tính thử nghiệm Hình 4.1: Giao diện chương trình Trong đó: N số cặp p, q sinh Button Generate Sequently để kích hoạt kiện sinh cặp số nguyên tố lập trình Button Generate Parallelly để kích hoạt kiện sinh cặp số nguyên tố song song Button Show để thể cặp số nguyên tố hình theo thứ tự sau lần bấm Các thông báo chương trình 41 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết triển khai tính thử nghiệm Hình 4.2: Số cặp p, q bị loại khơng thỏa mãn kiểm tra xác suất tính ngun tố Hình 4.3: Số cặp p, q bị loại không thỏa mãn điều kiện để số nguyên tố mạnh Hình 4.4: Thời gian chạy chương trình Hình 4.5: Hình ảnh CPU sinh số nguyên tố cách 42 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương Kết triển khai tính thử nghiệm Hình 4.6: Hình ảnh CPU sinh số nguyên tố cách song song Ta thấy lập trình song song tận dụng triệt để tài nguyên hệ thống, đặc biệt hiệu cao có máy tính đa lõi chun dùng cho việc sinh khóa 4.2 Một số thống kê chạy chương trình chip intel core2duo 2.2 GHZ Bảng 4.1: Thống kê sinh cặp p, q Số thứ tự Xử lý Xử lý song song Số cặp Số cặp Thời gian Số cặp Số cặp Thời gian không không chạy không không chạy qua qua (tính theo qua qua (tính theo Millerđiều kiện giây) Millerđiều kiện giây) Rabin nguyên tố Rabin nguyên tố Lucas mạnh Lucas mạnh test test 16 10 45 24 25 68 38 40 25 18 16 16 12 11 55 41 26 24 17 17 18 16 25 23 19 35 19 14 149 98 97 178 118 90 Tổng Với xử lý tuần tự: + 149 + 98 = 249 cặp 97 giây Với xử lý song song: + 178 + 118 = 398 cặp 90 giây ~ 249 cặp 56.3 giây Nhận xét: Như vậy, thời gian xử lý song song thống kê giảm xuống đáng kể (còn ~0.6 lần) so với xử lý Có thể đến kết luận: thời gian xử lý tỷ lệ nghịch với số lõi Điều cho thấy hiệu mặt thời gian xử lý song song 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com PHỤ LỤC A Thuật toán Miller-Rabin bool satisfyMillerRabinTest(BigInteger bigP) { // Miller-Rabin algorithm test on prime bigP BigInteger bigP1 = bigP - 1; BigInteger m = bigP1; BigInteger b = new BigInteger(); int a = 0; int wlen = 64; byte[] byteB = new byte[wlen]; while (m % == 0) // find largest number a to have bigP1 divides 2^a; { ++a; m = m / 2; } RNGCryptoServiceProvider random = new RNGCryptoServiceProvider(); // class random number int iterations = 7; for (int i = 0; i < iterations; i++) { // start testing while (true) { random.GetBytes(byteB); // random number b b = transform(byteB); // transform b from byte[] to big integer if (b > && b < bigP1) break; } BigInteger z = BigInteger.ModPow(b, m, bigP); // equals to b ^ m mod bigP if (z.Equals(1) || z.Equals(bigP1)) continue; for (int j = 0; j < a - 1; j++) { z = BigInteger.ModPow(z, 2, bigP); // equals to z ^ mod bigP if (z.Equals(bigP1)) continue; if (z.Equals(1)) return false; } return false; } return true; } B Thuật toán Lucas bool satisfyLucasTest(BigInteger c) { // Lucas algorithm test on prime c BigInteger d = 5; int distance = - 2; while (true) { // find number d satisfy that jacobi(d, c) = -1 BigInteger r = BigInteger.ModPow(d, (c - 1) / 2, c); // equals to (d ^ (c-1)/2) mod c if (r.IsZero) return false; if (!r.Equals(1)) break; // if value of jacobi(d,c) is -1, break; d = d * (-1) + distance; distance *= (-1); } BigInteger k = c + 1; List listK = new List(); listK.Clear(); 44 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com while (k > 0) { // binary expansion of k stored in listK BigInteger r = k % 2; listK.Add((int)r); k = k / 2; } BigInteger u = 1, v = 1; BigInteger uTemp, vTemp; for (int i = listK.Count - 2; i >= 0; i ) { // start testing uTemp = (u * v) % c; BigInteger tmp = d * u * u + v * v; if (!tmp.IsEven) vTemp = ((tmp + c) / 2) % c; else vTemp = (tmp / 2) % c; if (listK.ElementAt(i) == 1) { tmp = uTemp + vTemp; if (tmp.IsEven) u = (tmp / 2) % c; else u = ((tmp + c) / 2) % c; tmp = vTemp + d * uTemp; if (tmp.IsEven) v = (tmp / 2) % c; else v = ((tmp + c) / 2) % c; } else { u = uTemp; v = vTemp; } } if (u.IsZero) return true; // satisfied else return false; // not satisfied } C Thuật toán kiểm tra nguyên tố mạnh bool satisfyStrongPrimesConditions(RSAParameters para) { BigInteger p = transform(para.P); BigInteger q = transform(para.Q); BigInteger p1, p2, q1, q2; Parallel.Invoke( () => { p1 = findFactor(p - 1); }, () => { p2 = findFactor(p + 1); }, () => { q1 = findFactor(q - 1); }, () => { q2 = findFactor(q + 1); } ); 45 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com if (p1 == || p2 == || q1 == || q2 == 0) return false; byte[] byte[] byte[] byte[] bp1 bp2 bq1 bq2 = = = = p1.ToByteArray(); p2.ToByteArray(); q1.ToByteArray(); q2.ToByteArray(); if (bp1.Length < 13 || bp2.Length < 13 || bq1.Length < 13 || bq2.Length < 13) return false; if ((bp1.Length + bp2.Length) > 62 || (bq1.Length + bq2.Length) > 62) return false; return true; } 46 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com KẾT LUẬN Khóa luận nêu lên vấn đề thiết xã hội xây dựng hệ thống chứng thực số, tạo chữ ký số; có hệ thống lý thuyết để giải vấn đề Khóa luận có chương trình xử lý song song sinh cặp số nguyên tố p, q kiểm tra tính nguyên tố mạnh chúng kèm – giai đoạn quan trọng, chủ chốt hệ thống CA Chương trình sinh khóa xây dựng từ chương trình sinh hai số nguyên tố p, q đảm bảo mức độ an toàn hệ thống CA trước cơng hacker chun nghiệp Với tìm hiểu khơng ngừng giới thám mã (một cộng đồng có mục đích phát lỗi hệ mã RSA nhằm đóng góp xây dựng hệ mã ngày an tồn hơn), lý thuyết khóa mạnh đời chương trình dựa lý thuyết để thực Một hệ thống CA an toàn mang lại nhiều ý nghĩa to lớn cho công số hóa đất nước Kết khả quan, thể tinh thần khóa luận tốt nghiệp có tính thực tiễn, ứng dụng cao Kết sử dụng để phát triển cho tương lai như: xây dựng hệ thống CA hoàn chỉnh; xây dựng cơng cụ dùng để mã hóa, giải mã văn theo thuật toán hệ mã RSA, tạo chữ ký số 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU THAM KHẢO [1] Phạm Huy Điển – Hà Huy Khối Mã hóa thơng tin sở toán học ứng dụng Nhà xuất Đại học Quốc gia Hà Nội, 2004, trang 6-12, 31-32, 85-91 [2] Hà Huy Khoái – Phạm Huy Điển Số học thuật toán Nhà xuất Đại học Quốc gia Hà Nội, 2003, trang 21-23, 34-38 [3] http://tailieu.vn/xem-tai-lieu/giai-phap-xac-thuc-so.176584.html [4] http://vi.wikipedia.org/wiki/Kh%C3%B3a_c%C3%B4ng_khai [5] http://soict.hut.vn/~vannk/ /BaiGIangMatMaKhoaCongKhai-NKVan.pdf [6] http://vi.wikipedia.org/wiki/Ch%E1%BB%AF_k%C3%BD_s%E1%BB%91 [7] http://vi.wikipedia.org/wiki/Ch%E1%BB%A9ng_th%E1%BB%B1c_kh%C3% B3a_c%C3%B4ng_khai [8] Microsoft Taking Parallelism Mainstream Microsoft October 2009 http://msdn.microsoft.com/en-us/concurrency/ee847335.aspx, trang 1-21 [9] NIST - U.S National Institute of Standards and Technology FIPS 186-3 Trang 50-51, 68-73 [10] http://en.wikipedia.org/wiki/Strong_prime [11] http://www.ece.gmu.edu/courses/ECE543/project/reports_1999/dong_report.pdf [12] http://people.csail.mit.edu/ /RivestSilvermanAreStrongPrimesNeededForRSA.pdf [13] http://www.mediafire.com/?ljvmmhnd2kz 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... dựng hệ thống CA để phát triển ứng dụng chữ ký số chứng thực điện tử Kết khóa luận dùng trình quan trọng hệ thống CA tới phát triển – cấp phát khóa Vấn đề then chốt hệ thống CA trình cấp phát chứng. .. TRƯỜNG ĐẠI HỌC CÔNG NGHỆ Nguyễn Thanh Hào XỬ LÝ SONG SONG QUÁ TRÌNH SINH KHÓA CỦA HỆ THỐNG CẤP PHÁT CHỨNG THỰC SỐ KHỐ LUẬN TỐT NGHIỆP ĐẠI HỌC HỆ CHÍNH QUY Ngành: Công nghệ thông tin Cán hướng... chai phần sinh khóa khơng đáng ứng thời gian Hệ thống xem không đạt yêu cầu Một giải pháp đưa xử lý song song q trình sinh khóa hệ thống CA Thời gian trước, công nghệ xử lý song song thực cụm

Ngày đăng: 01/11/2022, 20:28

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN