Bảo vệ bản quyền phần mềm với hệ chữ kí điện tử rsa

68 388 1
Bảo vệ bản quyền phần mềm với hệ chữ kí điện tử rsa

Đ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

Bảo vệ bản quyền phần mềm với hệ chữ kí điện tử rsa

MỤC LỤC CHƢƠNG 1: GIỚI THIỆU 1.1 1.2 MỤC ĐÍCH, YÊU CẦU KHÁI NIỆM CƠ BẢN CHƢƠNG 2: HỆ CHỮ KÝ ĐIỆN TỬ RSA 2.1 SƠ LƢỢC VỀ CHỮ KÝ ĐIỆN TỬ 2.2 LỊCH SỬ RA ĐỜI CỦA THUẬT TOÁN RSA 2.3 HOẠT ĐỘNG THUẬT TOÁN RSA 2.3.1 Mô tả sơ lƣợc thuật toán RSA 2.3.2 Tạo khóa RSA 2.3.3 Mã hóa RSA 2.3.4 Giải mã RSA 2.3.5 Ví dụ đơn giản mã hóa giải mã RSA 2.4 HỆ CHỮ KÝ ĐIỆN TỬ RSA 2.5 ĐỘ AN TOÀN CỦA PHƢƠNG PHÁP RSA 10 CHƢƠNG 3: LẬP TRÌNH WINDOWS VỚI MFC 11 3.1 NGÔN NGỮ LẬP TRÌNH 12 3.1.1 Tại lựa chọn ngôn ngữ Visual C++ 12 3.1.2 Sơ đồ phân lớp thƣ viện VC++ 13 3.2 LẬP TRÌNH WINSOCK 14 3.2.1 Tổng quan Winsock 14 3.2.2 Tạo Socket 16 3.2.3 Tạo kết nối 18 3.2.4 Gửi nhận thông điệp 20 3.2.5 Đóng kết nối 23 CHƢƠNG 4: THƢ VIỆN CRYPTO++ 25 4.1 4.2 4.3 4.4 4.5 CÁCH CÀI ĐẶT THƢ VIỆN CRYPTO++ 25 CÁCH BIÊN DỊCH VÀ TÍCH HỢP BỘ THƢ VIỆN CRYPTO++ TRONG VISUAL C++ 25 NỐI KẾT TĨNH 26 NỐI KÊT ĐỘNG 27 THƢ VIỆN CRYPTO++ CUNG CẤP NHƢNG GÌ 41 CHƢƠNG 5: MÔ HÌNH BÀI TOÁN BẢO VỆ BẢN QUYỀN PHẦN MỀM VỚI HỆ CHỮ KÝ ĐIỆN TỬ RSA 44 5.1 MÔ HÌNH HỆ THỐNG CUNG CẤP MÃ KHÓA SỬ DỤNG CHỮ KÝ ĐIỆN TỬ RSA 44 5.1.1 Sơ đồ tổng quan trình tạo khóa 44 5.1.2 Sơ đồ luồng liệu trình tạo khóa 46 5.2 BÀI TOÁN THỰC TẾ 60 CHƢƠNG 6: XÂY DỰNG CHƢƠNG TRÌNH 61 6.1 6.2 6.3 6.4 TỔNG QUAN CHƢƠNG TRÌNH 61 CHỨC NĂNG CHƢƠNG TRÌNH CHẠY TRÊN PHÍA SERVER 61 CHỨC NĂNG CHƢƠNG TRÌNH PHÍA CLIENT 64 KHẢ NĂNG ỨNG DỤNG CỦA CHƢƠNG TRÌNH 67 TÀI LIỆU THAM KHẢO: 68 Trang Lời nói đầu Ngày với phát triển vượt bậc khoa học kỹ thuật công nghệ thông tin lĩnh vực có nhiều đóng góp thiết thực Như biết quyền lĩnh vực nhạy cảm ngành công nghệ thông tin, vấn đề vê phần mềm bảo vệ phần mềm ngày ý Công nghệ phát triển đôi với thực trạng vi phạm quyền phần mềm dang phổ biến Viêt Nam nhiều nước khác giới Chính nên lĩnh vực bảo vệ quyền phần mềm ý phát triển không ngừng Ngày nay, ngành tin học Việt Nam dang phát triển mạnh mẽ Cùng với phát triển mạnh mẽ lĩnh vực bảo vệ quyền phần mềm Sinh viên Việt Nam có thêm đường để tìm hiểu nghiện cứu lĩnh vực Với ngôn ngữ lập trình Visual C ++ em xin giới thiệu ứng dụng hệ chữ ký điện tử RSA việc bảo vệ quyền phần mềm đề tài tốt ngiệp lần Trang Chương 1: Giới thiệu 1.1 Mục đích, yêu cầu Tìm hiểu toán bảo vệ quyền phần mềm, ngôn ngữ lập trình Visual C++.Tiến hành phân tích thiết kế hệ thống xây dựng mô hình giải toán - Tìm hiểu ngôn ngữ lập trình Visual C++ MFC - Xây đựng mô hình client - server dựa ngôn ngữ lập trình Visual C++, lập trình winsocket thư viện MFC - Phân tích toán chữ ký điện tử RSA đưa vào việc bảo vệ quyền phần mềm - Tìm hiểu thư viện Crypto++ thư viện cần thiết cho việc giải toán tạo chữ ký điện tử RSA - Xây dựng mô hình toán - Hoàn thiện chương trình , tạo cài đặt, tạo help 1.2 Khái niệm Bản quyền: Copyright (bản quyền) thuật ngữ dùng cho quyền phi vật thể tác phẩm trí tuệ Mô hình trạm - chủ (Client - Server): Các máy trạm nối với máy chủ, nhận quyền truy nhập mạng tài nguyên mạng từ máy chủ Các máy thường tổ chức thành domain quản lý máy chủ Các ứng dụng, tài nguyên mạng chế bảo mật máy chủ quản lý Trang Chương 2: Hệ chữ ký điện tử RSA 2.1 Sơ lược chữ ký điện tử Chữ ký điện tử không sử dụng nhằm bảo mật thông tin mà nhằm bảo vệ thông tin không bị người khác cố tình thay đổi để tạo thông tin sai lệch Nói cách khác, chữ ký điện tử giúp xác định người tạo hay chịu trách nhiệm thông điệp Một phương pháp chữ ký điện tử bao gồm hai thành phần chính: thuật toán dùng để tạo chữ ký điện tử thuật toán tương ứng để xác nhận chữ ký điện tử Một phương pháp chữ ký điện tử định nghĩa năm (P, A, K, S, V) thỏa điều kiện sau: - P tập hợp hữu hạn thông điệp - A tập hợp hữu hạn chữ ký sử dụng - Không gian khóa K tập hợp hữu hạn khóa sử dụng - Với khóa k  K, tồn thuật toán chữ ký sigk  S thuật toán xác nhận chữ ký tương ứng verk  V Mỗi thuật toán sigk: P → A verk: P×A → {true, false} hàm thỏa điều kiện: true if y sig(x) { x  P, y  A : ver( x, y)  false if y sig(x) 2.2 Lịch sử đời thuật toán RSA Thuật toán Ron Rivest, Adi Shamir Len Adleman mô tả lần vào năm 1977 Học viện Công nghệ Massachusetts (MIT) Tên thuật toán lấy từ chữ đầu tên tác giả Trang Thuật toán RSA MIT đăng ký sáng chế Hoa Kỳ vào năm 1983 (Số đăng ký 4, 405, 829) Bằng sáng chế hết hạn vào ngày 21 tháng năm 2000 Tuy nhiện, thuật toán công bố trước có đăng ký bảo hộ nên bảo hộ giá trị bên Hoa Kỳ Ngoài ra, công trình Clifford Cocks công bố trước sáng chế RSA đăng ký 2.3 Hoạt động thuật toán RSA 2.3.1 Mô tả sơ lược thuật toán RSA Thuật toán RSA có hai khóa: khóa công khai (hay khóa công cộng) khóa bí mật (hay khóa cá nhân) Mỗi khóa số cố định sử dụng trình mã hóa giải mã Khóa công khai công bố rộng rãi cho người dùng để mã hóa Những thông tin mã hóa khóa công khai giải mã khóa bí mật tương ứng Nói cách khác, người mã hóa có người biết khóa cá nhân (bí mật) giải mã A mô trực quan hệ mật mã khoá công khai sau: Bob muốn gửi cho Alice thông tin mật mà Bob muốn Alice đọc Để làm điều này, Alice gửi cho Bob hộp có khóa mở sẵn giữ lại chìa khóa Bob nhận hộp, cho vào tờ giấy viết thư bình thường khóa lại (như loại khoá thông thường cần sập chốt lại, sau sập chốt khóa Bob mở lại đượckhông đọc lại hay sửa thông tin thư nữa) Sau Bob gửi hộp lại cho Alice Alice mở hộp với chìa khóa đọc thông tin thư Trong ví dụ này, hộp với khóa mở đóng vai trò khóa công khai, chìa khóa khóa bí mật Trang 2.3.2 Tạo khóa RSA Chọn số nguyên tố lớn p q với p≠q, lựa chọn ngẫu nhiện độc lập Tính: n=pq Tính: giá trị hàm số Ơle  (n)  ( p  1)(q  1) Chọn số tự nhiện e cho 1Put(signature, pub.SignatureLength()); // Invoke Verifier StringSource s2(message, true, verifierFilter); // Paydirt if( false == verifierFilter- >GetLastResult() ) { throw std: : string( "Signature Verification Failed" ); } std: : cout Put(signature, pub.SignatureLength()); StringSource s2(message, true, verifierFilter); if( false == verifierFilter- >GetLastResult() ) { throw std: : string( "Signature Verification Failed" ); } std: : cout [...]... viết chương trình chạy đựoc trên bất cứ hệ thống nào tương thích với chồng giao thức TCP/IP Đây là đặc điểm trái ngược hẳn với trước kia, khi mà Winsock chưa ra đời người phát triển phải liên kết ứng dụng của mình với sản phẩm TCP/IP của bất cứ nhà cung cấp nào Điều này hạn chế số lượng hệ thống mà một ứng dụng có thể chạy trên nó, bởi vì thật khó khăn trong việc bảo trì một ứng dụng mà lại sử dụng các... chúng thực hiện giao diện socket giống như phổ cập của hãng Berkeley Software Distrisbution cho hệ điều hành UNIX Winsock được tăng thêm sức mạnh khi gắn thêm những đặc thù của hệ điều hành Window để hỗ trợ điều khiển thông điệp Phiện bản 1.1 của Winsock tương thích với bộ giao thức TCP/IP Tuy nhiện những phiện bản mới hơn hỗ trợ cả giao thức các mạng Novell, Appletalk, và một số giao thức mạng thông dụng... hai tiến trình đó đơn giản là một luồng byte Không có giới hạn về kích thước bản ghi trong luồng dữ liệu Ví dụ, nếu một tiến trình gửi 100 byte, tiến trình nhận có thể nhận một bó 100 byte hay hai bó 50 byte Nếu một ứng dụng phụ thuộc vào những bản ghi thì phải cung cấp những header ở mức ứng dụng trong luồng dữ liệu TCP không bảo toàn kích thước gói dữ liệu ở bên nhận Dịch vụ luồng hướng kết nối rất... phần của hãng thứ ba việc này bao gồm cả MFC và ATL giả sử rằng bạn cần sử dụng FIPS DLL Bạn thay đổi những cài đặt của project để sử dụng phiện bản tĩnh để thực hiện và kết nối sử dụng FIPS DLL kế đó, thêm vào thành phần của hãng thứ ba mà những thành phần này chỉ đưa ra những kết nối động dựa vào C Và bây giờ ta có tình huống mà đã được mô tả trước kia Công việc đưa ra xung quanh cái đó là liên hệ. .. C++ là một trong những công cụ rất mạnh Với những đoạn mã được sinh ra bởi Wizards, tự bản thân nó có thể tạo nên sườn của một ứng dụng chạy trên Windows chỉ trong vài giây, người lập trình chỉ việc đưa đoạn mã chương trình của mình vào vị trí được chỉ ra là có một ứng dụng hoàn hảo Thư viện chứa Visual C++ MFC trở thành thư viện chuẩn cho việc phát triển phần mềm trên Windows sử dụng các trình biên... Bất cứ khi nào ứng dụng khác cố kết nối với ứng dụng đang theo giõi, sự kiện sẽ được kích hoạt để báo cho ứng dụng biết có yêu cầu kết nối Ứng dụng theo dõi phải chấp nhận yêu cầu kết nối bằng cách gọi phương thức Accept Phương thức này cần sử dụng biến CAsynSocket thứ hai, biến này được kết nối với ứng dụng khác Socket thứ hai này không cần phương thức Create vì bản thân phương thức Accept sẽ tạo Socket... nhờ khả năng của nó trong việc triển khai phần mềm ở các mức độ khác nhau Từ mức hệ thống đến mức ứng dụng, từ lập trình cấu trúc đến lập trình hướng đối tượng, từ lập trình dựa trên thuật giải đến lập trình trí tuệ nhân tạo, và từ lập trình cơ sở dữ liệu đến lập trình cơ sở tri thức…, bất cứ đâu, khi mà người lập trình muốn thể hiện ý tưởng khoa học và nghệ thuật của mình trên máy tính thì C++ là... phát triển, chương trình các ứng dụng không bị làm giảm tính mêm dẻo hỗ trợ bởi các công nghệ phát triển như ActiveX hay Internet - Hỗ trợ truy cập cơ sơ dữ liệu qua OLE DB va ADO hỗ trợ lập trình mạng qua Window socket.Cho phép tạo các thành phần giao diện như những trang thuộc tính Khi lập trình trên VC++ với MFC ta chỉ phải xây dựng những lớp mới thừa kế từ các lớp có sẵn của MFC.Việc xử lý sẽ được... Microsoft bao gồm các lớp cơ bản, cài đặt bằng ngôn ngữ C++, hỗ trợ việc lập trình trong môi trường windows Từ các lớp này, MFC xác lập nền tảng hình thành ứng dụng của windows, bao gồm việc định nghĩa bộ khung ứng dụng, các công cụ chuẩn và phổ biến để bổ sung vào bộ khung nói trên nhằm tạo ra ứng dụng hoàn chỉnh Với MFC, công việc của người lập trình chỉ còn là việc lựa chọn các thành phần cần thiết, điều... chỉnh và phối hợp chúng hợp lý để có được ứng dụng kết quả mong muốn Lập trình windows với MFC và MicroSoft Visual C++ 6.0 (VC) đạt được hiệu quả cao bởi không chỉ khai thác được phiện bản mới nhất của MFC mà còn nhận được nhiều tiện nghi lập trình mà VC cung Trang 13 cấp Ðây là con đường ngắn và đơn giản, đặc biệt với người tự học, để viết ứng dụng windows 3.2 Lập trình Winsock 3.2.1 Tổng quan về Winsock

Ngày đăng: 15/05/2016, 10:31

Từ khóa liên quan

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

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

Tài liệu liên quan