Chữ ký điện tử và các giao thức xác thực

63 454 0
Chữ ký điện tử và các giao thức xác thực

Đ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

DANH MỤC TỪ, THUẬT NGỮ VIẾT TẮT Từ viết tắt Tên đầy đủ Nghĩa ATM Automatic Teller Machine Máy rút tiền tự động CA Certificate Authority Nhà cung cấp chứng số CPĐT DC Chính phủ điện tử Digital Certificate Chứng điện tử Hash Message Authentical Code Mã xác thực thông điệp DSA HMAC dựa vào hàm băm MACs Message Authentication Codes Mã xác thực thông điệp MD5 Message Degist Giải thuật tiêu hóa tin OAEP Optimal Asymmetric Encryption Chuyển đổi mã hóa bất đối Padding xứng tối ưu Persional Computer Máy tính cá nhân RSA Rivest, Sharmir, Adleman Thuật toán RSA SHA Secure Hash Algorithm Giải thuật băm an tồn PC PKCS LỜI NĨI ĐẦU Tuy đời năm 50 kỷ XX thực phát triển mạnh mẽ năm gần tin học đóng vai trị khơng thể thiếu đời sống người Cùng với xu phát triển chung giới khu vực năm gần ngành tin học Việt Nam có bước đột phá định Tin học ngày sâu vào đời sống người Nó ứng dụng lĩnh vực sống Tin học làm cho đời sống người trở nên tiện nghi trước nhiều Trước cần mua sản phẩm hay đơn giản đọc báo bạn cần phải cửa hàng thời gian Nhưng với phát triển công nghệ thông tin mạng internet bạn cần ngồi nhà xem phim đọc báo cách thoải mái lúc bạn có thời gian rảnh rỗi Cùng với hỗ trợ Internet, người tiết kiệm nhiều chi phí thời gian Các bên đối tác làm ăn trao đổi thơng tin qua mạng hình thức hội nghị truyền hình, sinh viên khơng cần đến lớp mà học nhà có thời gian hình thức học E-Learning, người bên Mỹ trị chuyện người thân mà không cần tốn kém,…Với Internet thứ đơn giản Thương mại điện tử hình thức kinh doanh, hoạt động phương pháp điện tử, việc trao đổi thông tin, liệu thông qua phương tiện công nghệ điện tử mà không cần in giấy công đoạn q trình giao dịch Trong phát triển nhanh chóng Internet kéo theo loạt dịch vụ đời trò chuyện, quảng cáo, tư vấn, đặt hàng, bán hàng… qua Internet Trong số đó, dịch vụ thương mại điện tử (TMĐT)(ElectronicCommerce) bước nhảy vọt việc ứng dụng Internet vào sống kinh doanh Thơng qua TMĐT, nhiều loại hình kinh doanh hình thành, có việc mua bán hàng mạng Với hình thức này, người tiêu dùng tiếp cận với hàng hóa cách dễ dàng nhanh chóng nhiều so với cách thức mua bán truyền thống, đồng thời tiết kiệm thời gian để người dùng đầu tư vào việc khác Ngồi TMĐT cịn giúp người tìm kiếm tự động theo nhiều mục đích khác nhau, tự động cung cấp thông tin theo nhu cầu, sở thích người ngồi nhà để mua sắm theo ý muốn Những lý cho thấy ưu điểm TMĐT đem lại mạnh để phát triển kinh tế đất nước cải thiện đời sống người dân Tuy nhiên điều kiện thương mại điện tử chưa người sử dụng rộng rãi TMĐT chưa tạo niềm tin người sử dụng Để TMĐT đến với người, nhà, quan tạo niềm tin cho người tham gia TMĐT, em xây dựng đề tài: “Chữ ký điện tử giao thức xác thực” Với đề tài em chưa thể bao quát hết vấn đề nêu bật lên vấn đề thương mại điện tử, chữ ký điện tử, tầm quan trọng chữ ký điện tử TMĐT, thuật toán tạo xác thực chữ ký điện tử…Trong thời gian làm đồ án với giúp đỡ tận tình thầy giáo hướng dẫn Ths.Lê Tuấn Anh bạn em hoàn thành đề tài Em xin chân thành cảm ơn CHƯƠNG I: CHỮ KÝ ĐIỆN TỬ VÀ CÁC KHÁI NIỆM LIÊN QUAN 1.1 Thương mại điện tử chữ ký điện tử 1.1.1 Thương mại điện tử a Khái niệm thương mại điện tử Thương mại điện tử (còn gọi thị trường điện tử, thị trường ảo, ECommerce hay E-Business): Là việc tiến hành phần hay toàn hoạt động thương mại phương tiện điện tử Thương mại điện tử mang chất hoạt động thương mại truyền thống Tuy nhiên, thông qua phương tiện điện tử mới, hoạt động thương mại thực nhanh hơn, hiệu hơn, giúp tiết kiệm chi phí mở rộng khơng gian kinh doanh Tại mối quan hệ thương mại hay dịch vụ trực tiếp người cung cấp khách hàng tiến hành thơng qua Internet Nhìn cách tổng quát, định nghĩa thương mại điện tử chia thành nhóm tùy thuộc vào quan điểm: - Theo nghĩa hẹp: Thương mại điện tử bó hẹp việc mua bán hàng hóa dịch vụ thơng qua phương tiện điện tử qua Internet mạng liên thông khác - Theo nghĩa rộng: Thương mại điện tử giao dịch tài thương mại phương tiện điện tử như: trao đổi liệu điện tử, chuyển tiền điện tử hoạt động gửi/rút tiền thẻ tín dụng Thương mại điện tử định nghĩa gồm nhiều hành vi đó: hoạt động mua bán hàng hố; dịch vụ; giao nhận nội dung kỹ thuật số mạng; chuyển tiền điện tử; mua bán cổ phiếu điện tử, vận đơn điện tử; đấu giá thương mại; hợp tác thiết kế; tài nguyên mạng; mua sắm công cộng; tiếp thị trực tiếp với người tiêu dùng dịch vụ sau bán hàng; thương mại hàng hoá (như hàng tiêu dùng, thiết bị y tế chuyên dụng) thương mại dịch vụ (như dịch vụ cung cấp thơng tin, dịch vụ pháp lý, tài chính); hoạt động truyền thống (như chăm sóc sức khoẻ, giáo dục) hoạt động siêu thị ảo Điểm đặc biệt thương mại điện tử so với kênh phân phối truyền thống tính linh hoạt cao mặt cung ứng giảm thiểu tối đa chi phí vận tải đối tác kinh doanh, phí tổn khác phí tổn điện thoại lại để thu thập khách hàng hay phí tổn trình bày giới thiệu giảm xuống đáng kể Mặc dù vậy, dịch vụ vật chất cụ thể khoảng cách khơng gian cịn phải khắc phục địi hỏi khả tiếp vận định b Lợi ích thương mại điện tử Tại nước có trình độ ứng dụng cơng nghệ thơng tin cao việc bán lẻ hàng hóa, dịch vụ qua Internet phổ biến Nhiều tỷ đô la doanh thu từ doanh nghiệp toàn giới sinh từ thương mại điện tử Ngồi cơng nghệ phần mềm đại chất tương tác hai chiều Internet cơng ty doanh nghiệp cịn thông tin cá nhân người tiêu dùng xu hướng tiêu dùng họ thông qua thủ tục đăng ký, đặt hàng, giao hàng tốn Chính nhờ giảm thiểu chung gian mua bán hàng hóa, dịch vụ tiết kiệm chi phí việc mở cửa hàng trưng bày sản phẩm doanh nghiệp dựa vào phương pháp truyền thống (trực tiếp gặp gỡ khách hàng) có kế hoạch mở trang web thương mại điện tử để bán hàng giới thiệu sản phẩm hay tham gia quảng cáo internet Chúng ta thấy lợi ích lớn mà TMĐT đem lại tiết kiệm chi phí tạo thuận lợi cho bên giao dịch Giao dịch phương tiện điện tử nhanh so với giao dịch truyền thống nhiều, ví dụ fax hay thư điện tử nội dung thơng tin đến tay người nhận nhanh gửi thư Các giao dịch qua Internet có chi phí rẻ, doanh nghiệp gửi thư tiếp thị, chào hàng đến hàng loạt khách hàng với chi phí giống gửi cho khách hàng Với TMĐT, bên tiến hành giao dịch cách xa nhau, thành phố với nông thơn, từ nước sang nước kia, hay nói cách khác không bị giới hạn không gian địa lý Điều cho phép doanh nghiệp tiết kiệm chi phí lại, thời gian gặp mặt mua bán Cịn với người tiêu dùng, họ ngồi nhà để đặt hàng, mua sắm nhiều loại hàng hóa, dịch vụ thật nhanh chóng Những lợi ích có với doanh nghiệp thực nhận thức giá trị TMĐT Vì vậy, TMĐT góp phần thúc đẩy cạnh tranh doanh nghiệp để thu nhiều lợi ích Điều đặc biệt quan trọng bối cảnh hội nhập kinh tế quốc tế, doanh nghiệp nước phải cạnh tranh cách bình đẳng với doanh nghiệp nước c Phân loại thương mại điện tử CHÍNH PHỦ DOANH NGHIỆP NGƯỜI TIÊU DÙNG CHÍNH PHỦ CP với CP (G2G):Điều phối CP với DN (G2B): Thông tin CP với NTD (G2C): thông tin DOANH NGHIỆP DN với CP (B2G): Đấu thầu DN với DN (B2B): TMĐT DN với NTD (B2C): TMĐT NTD với CP (C2G): Đóng thuế NTD với DN (C2B): So sánh giá NGƯỜI TIÊU DÙNG NTD với NTD (C2C): Đấu giá Hình 1.1.1: Các hình thức giao dịch thương mại điện tử Dựa vào chủ thể thương mại điện tử phân chia thương mại điện tử loại hình sau: - Người tiêu dùng:  C2C (Consumer-To-Consumer): Người tiêu dùng với người tiêu dùng  C2B (Consumer-To-Business): Người tiêu dùng với doanh nghiệp  C2G (Consumer-To-Government): Người tiêu dùng với phủ - Doanh nghiệp:  B2C (Business-To-Consumer): Doanh nghiệp với người tiêu dùng  B2B (Business-To-Business): Doanh nghiệp với doanh nghiệp  B2G (Business-To-Government): Doanh nghiệp với phủ  B2E (Business-To-Employee): Doanh nghiệp với nhân viên - Chính phủ:  G2C (Government-To-Consumer): Chính phủ với người tiêu dùng  G2B (Government-To-Business): Chính phủ với doanh nghiệp  G2G (Government-To-Government): Chính phủ với phủ Trong đó: B2B loại hình giao dịch qua phương tiện điện tử doanh nghiệp với doanh nghiệp Theo Tổ chức Liên hợp quốc Hợp tác Phát triển kinh tế (UNCTAD), TMĐT B2B chiếm tỷ trọng lớn TMĐT (khoảng 90%) Các giao dịch B2B chủ yếu thực hệ thống ứng dụng TMĐT mạng giá trị gia tăng (VAN); dây chuyền cung ứng hàng hoá, dịch vụ (SCM), sàn giao dịch TMĐT… Các doanh nghiệp chào hàng, tìm kiếm bạn hàng, đặt hàng, ký kết hợp đồng, toán qua hệ thống Ở mức độ cao, giao dịch diễn cách tự động TMĐT B2B đem lại nhiều lợi ích thực tế cho doanh nghiệp, đặc biệt giúp giảm chi phí thu thập thơng tin tìm hiểu thị trường, quảng cáo, tiếp thị, đàm phán, tăng hội kinh doanh,… B2C loại hình giao dịch doanh nghiệp người tiêu dùng qua phương tiện điện tử Doanh nghiệp sử dụng phương tiện điện tử để bán hàng hóa, dịch vụ tới người tiêu dùng Người tiêu dùng thông qua phương tiện điện tử để lựa chọn, mặc cả, đặt hàng, toán, nhận hàng Giao dịch B2C chiếm tỷ trọng (khoảng 10%) TMĐT có phạm vi ảnh hưởng rộng Để tham gia hình thức kinh doanh này, thơng thường doanh nghiệp thiết lập website, hình thành sở liệu hàng hoá, dịch vụ; tiến hành quy trình tiếp thị, quảng cáo, phân phối trực tiếp tới người tiêu dùng TMĐT B2C đem lại lợi ích cho doanh nghiệp lẫn người tiêu dùng Doanh nghiệp tiết kiệm nhiều chi phí bán hàng khơng cần phòng trưng bày hay thuê người giới thiệu bán hàng, chi phí quản lý giảm Người tiêu dùng cảm thấy thuận tiện khơng phải tới tận cửa hàng, có khả lựa chọn so sánh nhiều mặt hàng lúc B2G loại hình giao dịch doanh nghiệp với quan nhà nước, quan nhà nước đóng vai trị khách hàng Q trình trao đổi thơng tin doanh nghiệp với quan nhà nước tiến hành qua phương tiện điện tử Cơ quan nhà nước thiết lập website đăng tải thông tin nhu cầu mua hàng quan nhà nước, tiến hành việc đấu thầu hàng hoá, dịch vụ lựa chọn nhà cung cấp website Điều mặt giúp tiết kiệm chi phí tìm nhà cung cấp, đồng thời giúp tăng cường tính minh bạch hoạt động mua sắm công C2C loại hình giao dịch cá nhân với Sự phát triển phương tiện điện tử làm cho nhiều cá nhân tham gia hoạt động thương mại với tư cách người bán, người cung cấp dịch vụ Một cá nhân tự thiết lập website để kinh doanh mặt hàng làm sử dụng website có sẵn để đấu giá số hàng có C2C góp phần tạo nên đa dạng thị trường G2C loại hình giao dịch quan nhà nước với cá nhân Đây chủ yếu giao dịch mang tính hành chính, mang yếu tố TMĐT Ví dụ người dân đóng tiền thuế qua mạng, trả phí đăng ký hồ sơ trực tuyến, v.v 1.1.2 Giao dịch điện tử a Khái quát Giao dịch điện tử việc thực giao dịch thương mại dựa công cụ điện tử (Electronic) mà cụ thể mạng Internet www (World Wide Web - tức trang web hay website) Ví dụ: việc trưng bày hình ảnh hàng hóa, thơng tin doanh nghiệp Website phần giao dịch điện tử, hay liên lạc với khách hàng qua E-mail, tìm kiếm khách hàng thơng qua việc tìm kiếm thơng tin mạng Internet… Có nhiều cấp độ thực giao dịch điện tử Ở cấp độ bản, doanh nghiệp có Website trưng bày thơng tin, hình ảnh, tìm kiếm khách hàng qua mạng, liên hệ với khách hàng qua E-mail mà thơi Cấp độ cao doanh nghiệp thực số giao dịch mạng cho khách hàng đặt hàng mạng, quản lý thông tin khách hàng, đơn đặt hàng sở liệu tự động mạng, xử lý tốn qua mạng thẻ tín dụng b Các hệ thống điện tử - Hệ thống môi giới điện tử: E-Broker Các hệ thống môi giới điện tử BargianFinder, Jango… thường cung cấp công cụ tìm kiếm thơng tin giúp khách hàng dễ dàng tìm kiếm hàng hóa dịch vụ mà họ cần Khách hàng đưa yêu cầu tìm kiếm hệ thống mơi giới tự động tìm kiếm nhà cung cấp có khả đáp ứng yêu cầu Kết danh sách hàng hóa dịch vụ với địa liên lạc địa Web nhà cung cấp tương ứng, danh sách xếp theo tiêu chuẩn giá Tuy nhiên, hệ thống hỗ trợ giai đoạn tìm kiếm thơng tin, cịn cơng việc khác đặt hàng, toán, phân phối… phải khách hàng tự thực trực tiếp với nhà cung cấp họ chọn - Hệ thống đấu giá điện tử: E-Auction Cùng với phát triển Internet, nhiều website bán đấu giá đời, có số website tiếng E-Bay, Onsale, FirstAuction…Các site bán đấu giá làm trung gian đàm phán giá hàng hóa người mua người bán với chi phí thấp nhiều so với đấu giá truyền thống Bất người dùng Internet tham gia mua bán hàng hóa bán đấu giá trực tuyến Nhiều khách hàng thực việc đấu giá để mua bán linh kiện máy tính, đồ chơi, quần áo, đồ cổ nhiều thứ linh tinh khác Ngay công ty tham gia để bán hàng hóa tồn kho, hàng lý - Trung tâm TMĐT(Thương Mại Điện Tử): Một trung tâm TMĐT tập hợp cửa hàng điện tử quản lý tổ chức chung Tổ chức thường nhà cung cấp dịch vụ tiếng, có uy tín nhiều người dùng tin cậy Một ví dụ mơ hình Electronic Mall Bodensee Trung tâm TMĐT nơi lưu trữ thông tin sản phẩm nhà cung cấp Vì thế, trung tâm TMĐT phù hợp với công ty nhỏ khơng có điều kiện để tự xây dựng hệ thống TMĐT riêng E-Auction cung cấp cho khách hàng dịch vụ tìm kiếm, so sánh thơng tin catalog chung nhiều nhà cung cấp có đăng ký với hệ thống Đặt hàng đồng thời với nhiều nhà cung cấp cách dùng giỏ mua sắm điện tử toán phương thức chung Tuy nhiên, trung tâm TMĐT không quan tâm đến việc thực giao dịch cá thể nào, đơn đặt hàng chuyển cho nhà cung cấp Đa số hệ thống TMĐT áp dụng mơ hình kinh doanh kể thích hợp với dịch vụ bán lẻ B2C C2C Tuy nhiên, khuynh hướng phát triển kinh tế, số thị trường điện tử không đáp ứng nhu cầu mua sắm người tiêu dùng mà cịn phải có khả hỗ trợ giao dịch doanh nghiệp Tất hoạt động liên quan đến việc kinh doanh phải hỗ trợ môi trường điện tử, từ quảng cáo, cung cấp thông tin đến việc trả giá hay đàm phán hợp đồng, hoạt động tài dịch vụ hậu đãi khách hàng 1.1.3 Chữ ký điện tử Bản tin rõ Người gửi Bản tin gốc Người nhận Băm Băm So sánh Bản tin băm Private-key Người gửi Mã hóa public-key người gửi Chữ ký điện tử Giải mã Bản tin băm Hình 1.1.3: Mơ hình tạo xác thực chữ ký điện tử a Khái niệm chữ ký điện tử Chúng ta quen với văn giấy, chúng ký đóng dấu để xác nhận chứng thực, để đối tác biết văn có phải văn thật hay không Cùng với phát triển công nghệ thông tin, văn không lưu trữ thủ công mà chúng lưu trữ phương tiện điện tử dạng số, để dễ dàng chép sửa đổi Nếu ta sử dụng chữ ký truyền thống dễ dàng bị giả mạo chữ ký 10 Cần ý phương pháp chuyển đổi rõ (như RSA – PSS) giữ vai trò quan trọng q trình mã hóa chữ ký điện tử khơng dùng khóa chung cho đồng thời cho hai mục đích 2.3.2 Sơ đồ chữ ký Elgamal a Hệ mật mã Elgamal Hệ mật El - Gamal, đời vào năm 1985, đối thủ “ nặng ký “ hệ RSA (sẽ trình bầy viết sau) sử dụng rộng rãi Sự an toàn hệ mật El - Gamal dựa độ khó việc tính loga rời rạc Việc lập giải mã hệ tiến hành sau: B (Bob) chọn số nguyên tố p nguyên thuỷ g mod p, tức phần tử g cho luỹ thừa g0, g1, , gp-2 số phân biệt modulo p bao gồm tất lớp đồng dư khác không modulo p B chọn số nguyên a  { 1, , p-2 } tính h = ga (mod p) Khố cơng khai B (p, g, h) số a đựoc giữ bí mật A (Alice) cần gửi rõ x cho B với x mã hoá số nguyên dương  p-1 A chọn ngẫu nhiên số nguyên dương k  p-1, tính y1 = gk(mod p) y2 = xhk (mod p) có mã cặp (y1, y2) * Chú ý là:  Bản mã dài gấp hai lần rõ  Với rõ, có p-1 mã khác nhau, mã ứng với phép chọn ngẫu nhiên số k nói Khi nhận mã (gk, xhk) mod p, B tiến hành giải mã sau Vì biết a số thoả mãn tính chất h = ga nên B tính: h k  (ga)k  (gk)a mod p mà khơng cần biết số bí mật k A Bây A tính x việc “chia” y2 = xhk cho h k Nói cách xác hơn, A dùng thuật tốn Euclid suy rộng để tìm nghịch đảo hk mod p, nhân y2 với nghịch đảo để có rõ x Kẻ trộm tin E (Eve) chặn mã, phải đối mặt với toán sau : 49  Hoặc phải tìm số a cho h  ga (mod p) để sau dùng phương pháp giải mã B làm;  Hoặc phải tìm số k cho y1 = gk (mod p) để sau tính trực tiếp hk từ tìm x Cả hai cách tiếp cận nói địi hỏi E phải giải toán loga rời rạc, biết tốn khó, chưa có cách tốt để phá vỡ hệ mật El - Gamal Cũng cần lưu ý là, E có đủ tài ngun cần cho việc tính tốn (chẳng hạn thời gian thiết bị) để giải tốn loga rời rạc E dùng chúng để giải tốn thứ (tức tính số a) giải tốn E biết khố bí mật B đọc tất thông báo gửi cho B Cịn giải tốn thứ hai tìm số ngẫu nhiên k A, số thay đổi theo thông báo, việc phải làm nhiều Sau thí dụ minh hoạ Giả sử B chọn số ngẫu nhiên p = 83, nguyên thuỷ g = số a = 30 Như h = 230 mod 83 = 40 Khố cơng khai B (83, 2, 40) Bây , giả sử rõ A 54 số ngẫu nhiên A chọn k = 13 Khi mã A (gk, xhk) mod p = (58, 71) Nhận mã trên, B tính 5830 mod 83 = Bằng thuật tốn Euclid suy rộng, nghịch đảo tính 37, rõ 37.71 mod 83 = 54 b Chữ ký số Elgamal Vì mã hệ mật Elgamal dài gấp đôi rõ phụ thuộc vào việc chọn số ngẫu nhiên k, nên lựoc đồ Elgamal cho chữ ký số có phức tạp hơn, chẳng hạn so với việc dùng hệ RSA Giả sử khố cơng khai Elgamal A (p, g, h), với p số nguyên tố, g nguyên thuỷ mod p Khi h  ga (mod p), có A người biết số a Để ký thông báo x  {1, 2, , p-1 }, A chọn số ngẫu nhiên k cho gcd (k, p-1) = Dùng thuật tốn Euclid suy rộng, A tính nghịch đảo l k mod (p-1) sau đó, tính tiếp z1 = gk mod p, z2 = ( x - az1) l mod (p-1) 50 Thông báo ký (x, z1, z2) Lưu ý là, giống trường hợp mã hố, thơng báo ký dài gấp ba lần thông báo chưa ký phụ thuộc vào số ngẫu nhiên k chọn Bây giờ, A mã hố thơng báo ký khố cơng khai B gửi cho B Nhận đựơc, B giải mã thơng báo tìm ba thành phần Thành phần thứ rõ x Các thành phần thứ hai thứ ba bao gồm chữ ký B chấp nhận chữ ký hợp lệ nếu: Ta cần chứng minh rằng:  Nếu A làm theo giao thức, điều kiện thoả mãn  E (người trộm tin) khơng thể giả mạo chữ ký (có nghĩa khơng thể tạo (x, z1, z2) thoả mãn điều kiện nêu mà khơng phải giải tốn loga rời rạc Phần thứ việc kiểm tra Lưu ý gp-1  (mod p), nên luỹ thừa p đọc theo mod p-1 Do có kl  (mod p - 1), nên đó, với tính tốn đơn giản, có phần thứ hai phức tạp ta khơng trình bầy Rõ ràng E thực tính tốn A làm khơng biết số a Và vậy, chắn E khơng có cách khác để giả mạo chữ ký Thí dụ sau cho minh hoạ cách sử dụng chữ ký số El – Gamal: Cho khố cơng khai A (107, 2, 15), với số bí mật a 11 Như vậy, lấy nguyên thuỷ mod 107, ta có ga  11 = 15 (mod 107) Giả sử A cần gửi thông báo x = 10 cho B ký thơng báo A chọn k = 17, số nguyên tố p - = 106, có nghịch đảo 25 Chữ ký số (z1, z2), z1 = 217 mod 107 = 104 z2 = ( 10 - 11.104) 25 mod 106 = 58 Sau đó, A mã hoá rõ ( 10, 104, 58 ) với khoá cơng khai B gửi cho B Nhận được, B giải mã thông báo thu (10, 104, 58) B kiểm tra xem phải 15104 10458  10 (mod 107), thấy đúng.Khi B biết chắn thông báo gửi đến từ A 51 Chương III: ỨNG DỤNG XÂY DỰNG CHỮ KÝ ĐIỆN TỬ RSA 3.1 Tìm hiểu ngơn ngữ lập trình C Sharp 3.1.1 Mối quan hệ C# và.Net C# trình biên dịch hướng NET, nghĩa tất mã ngôn ngữ C# chạy môi trường.NET Framework Tức là:  Cấu trúc lập luận C# phản ánh phương pháp luận NET ngầm bên  Trong nhiều trường hợp, đặc trưng C# chí định dựa vào đặc trưng NET, thư viện lớp sở NET Nhưng C# ngôn ngữ độc lập Nó thiết kế để sinh mã đích mơi trường NET, khơng phải phần NET Do tầm quan trọng NET nên trước vào ngôn ngữ C# ta tìm hiểu qua NET 3.1.2 Cấu trúc chương trình C# - Lớp: Chứa liệu lớp hàm Các lớp tạo nên chương trình lớn C# Trong lớp có lớp thành viên - Các lớp thành viên: Dữ liệu hàm khơng có lớp biết lớp thành viên - Thành phần liệu: Thành phần liệu thành phần chứa liệu cho lớp – trường, số kiện Chương trình cấu thành câu lệnh (statement) câu lệnh kết thúc dấu chấm phẩy “;” Nhiều câu lệnh tạo thành khối bao hai đầu cặp dấu ngoặc kép {}, câu lệnh dài tiếp tục xuống hàng khơng cần đến ký tự báo cho biết câu lệnh tiếp tục hàng 3.1.3 Biến - Biến: dùng để lưu trữ giá trị mang kiểu liệu Cú pháp sau để khai báo biến: [ modifier ] datatype identifer ; 52 Với modifier từ khoá : public, private, protected, datatype kiểu liệu (int, long, float ) identifier tên biến Ví dụ: public int i ; - Hằng: (constant) biến trị thay đổi suốt thời gian thi hành chương trình Ví dụ: const int a = 100; // giá trị bị thay đổi 3.1.4 Kiểu giá trị định nghĩa trước (Predefined Value Type)  Kiểu liệu bẩm sinh: integer, floating-point numbers, character Boolean types Các kiểu Integer: C# hỗ trợ kiểu số nguyên sbyte, short, int, long, byte, ushort, unit, ulong  Kiểu số dấu chấm phẩy động (Floating Point Types): float, double  Kiểu số thập phân (Decimal Type): decimal  Kiểu Boolean: Boolean  Kiểu Character Type: char  Mảng (Array)  Array cấu trúc liệu cấu tạo số biến gọi phần tử mảng Tất phần tử thuộc kiểu liệu, truy xuất phần tử thông qua số (index) Chỉ sổ bắt đầu Có nhiều loại mảng: mảng chiều, mảng nhiều chiều Cú pháp: type[ ] array-name;  Mảng nhiều chiều: type[,] array-name; Ví dụ muốn khai báo mảng hai chiều gồm hai hàng ba cột với phần tử kiểu nguyên: int[,] myRectArray = new int[2,3];  Mảng jagged: Một loại thứ mảng nhiều chiều C# Jagged array Jagged mảng mà phần tử mảng với kích thước khác Những mảng phải đuợc khai báo mảng Ví dụ sau khai báo mảng jagged hai chiều nghĩa hai cặp [], gồm hàng hàng mảng chiều int[][] a=new int[3][]; 53 a[0]=new int[4] a[1]=new int[3] a[2]=new int[1]  Kiểu liệt kê (enum) Phương án thay liệt kê, gồm tập hợp đặt tên Chúng ta đặt nghĩa liệt kê giống sau: public enum TimeOfday { Morning = 0, Afternoon =1, Evening = }  Kiểu tham khảo tiền định nghĩa C# hỗ trợ hai kiểu liệu định nghĩa trước: object string 3.1.5 Một số câu lệnh đơn giản Câu lệnh điều kiện: - Cú pháp câu lệnh if: if (condition) statement(s) [else statement(s)] - Câu lệnh switch Cú pháp: switch (biểu thức) { casce biểu thức ràng buộc: câu lệnh câu lệnh nhảy [default: câu lệnh mặc định] } 54 - Vòng lặp (Loops) C# cung cấp vòng lặp khác (for, while, while foreach) cho phép thực đoạn mã lặp lại đến điều kiệnh lặp  Vòng lặp for: Cú pháp: for (initializer; condition; integrator) Statement(s)  Vòng lặp while (The while loop) Cú pháp: while (condition) Statement(s); Vòng lặp while Cú pháp: bool condition; { // Vịng lặp thực lần chí câu điều kiện sai MustBeCalledAtLeastOnce(); condition = CheckCondition(); } while (condition);  Vòng lặp foreach Cho phép duyệt qua tất phần tử dãy tập hợp khác, xem xét phần tử Cú pháp sau: foreach (type indetifer in expression) statement Câu lệnh goto goto Label1; … Label1: … - Câu lệnh break: Ta dùng câu lệnh break muốn dừng ngang chừng khỏi vịng lặp 55 - Câu lệnh continue: Dùng vòng lặp muốn quay lại vịng lặp khơng muốn thi hành phần lệnh lại vòng lặp điểm thân vịng lặp - Câu lệnh return: Dùng để thoát khỏi hàm hành lớp, trả quyền điều khiển phía gọi hàm Nếu hàm có kiểu liệu trả return phải trả kiểu liệu này; không câu lệnh dùng khơng có biểu thức 3.1.6 C# hướng đối tượng Lớp kế thừa: Ở tìm hiểu qua lớp, lớp định nghĩa với cú pháp sau: MyClass { private int someFiled; public string SomeMethod(bool parameter) } Các lớp bao gồm nhiều thành viên, thành viên thuật ngữ dùng để đến liệu hay chức định nghĩa lớp Dùng từ khóa new để tạo đối tượng Ví dụ: MyClass myObject; myObject = new MyClass(); Hoặc: MyClass myObject = new MyClass();  Đơn thừa kế: C# hỗ trợ đơn thừa kế lớp Một lớp thừa hưởng thuộc tính phương thức từ lớp khác Cú pháp: class MyClass : MyBaseClass Lớp MyClass thừa hưởng thuộc tính lớp MyBaseClass Phương thức nạp chồng: # hỗ trợ phương thức nạp chồng với vài dạng phương thức khác đặc tính sau: tên, số lượng thơng số kiểu thông số class ResultDisplayer 56 { void DisplaResult(string result) { //implementation } } Gọi phiên sở chức năng: - Cú pháp: base.() - Các lớp hàm Abstract: Cả lớp phương thức khai báo abstract Một lớp có phương thức abstract lớp abstract Cú pháp: abstract class Building { public decimal tenphuongthuc(); } Những bổ từ truy cập: Có bổ từ sau - public: Biến phương thức truy cập từ nơi đâu - internal: Biến phương thức truy cập gói - protected: Biến hay phương thức truy cập từ kiểu hay từ kiểu thừa kế kiểu - protected internal: Biến hay phương thức truy cập từ gói tại, hay từ nhũng kiểu thừa kế kiểu - private: Biến hay phương thức truy cập từ kiểu - Giao diện: Khi thừa kế giao diện, lớp khai báo thực thi hàm Chúng ta minh họa giao diện thông qua việc giới thiệu giao diện Microsoft định nghĩa: System.IDisposable IDisposable chứa phương thức Dispose() dùng để xoá mã Public interface IDisposable { void Dispose(); } 57 Trên ví dụ ta thấy việc khai báo giao diện làm việc giống việc khai báo lớp Abstract, không cho phép thực thi thành phần giao diện Một giao diện chứa khai báo phương thức, thuộc tính, phận lập mục lục kiện  Thừa kế giao diện: Những giao diện thừa kế giao diện khác Khi giao diện thừa kế giao diện khác thi hành tất phương thức định nghĩa giao diện phương thức định nghĩa  Nạp chồng tốn hạng: Nạp chồng toán hạng cho ta nhiều toán hạng trùng tên lớp  Lỗi xử lý biệt lệ: Để đón bắt xử lý biệt lệ ta dùng khối try catch finally Cú pháp: try { // mã cho việc thực thi bình thường } catch { //Xử lý lỗi } finally { //dọn dẹp } Sự hoạt động: Dòng thực thi bước vào khối try Nếu khơng có lỗi xuất hiện, việc thực thi tiến hành cách bình thường xuyên suốt khối try, đến cuối khối try, dòng thực thi nhảy đến khối finally, nhiên lỗi xuất khối try, thực thi nhảy đến khối catch 58 Trạng thái lỗi xử lý khối catch Vào cuối khối catch, việc thực thi chuyển cách tự động đến khối finally Khối finally thực thi  Lập trình mơi trường NET Visual Studio.NET mơi trường tích hợp triển khai phần mềm Nó thiết kế để lập tiến trình viết mã, gỡ rối, biên dịch thành assemply Text Editor: Trong ta viết đoạn mã C#  Design view editor: Cho phép đặt giao diện người dùng control liệu truy cập dự án Khí C# tự động thêm mã C# cấn thiết cho tập tin nguồn  Các cửa sổ hỗ trợ Cho phép sửa đổi khía cạnh khác dự án  Biên dịch lịng mơi trường: Để thay cho việc chạy trình biên dịch C# từ dịng lệnh, ta chọn tuỳ chọn menu để biên dịch Visual Studio.NET gọi trình biên dịch cho ta Nó chạy chương trình khả thi biên dịch, ta biết chương trình chạy tốt hay khơng, ta chọn hai cấu hình xây dựng chương trình khác : debug build release build  Intergated Debugger: Hỗ trợ việc gỡ rối xuyên ngôn ngữ IDE Intergated MSDN help Visual studio.NET gọi tài liệu MSDN 59 3.2 Xây dựng chương trình chữ ký điện tử RSA 3.2.1 Giao diện file login - User Name: thunga - Password: 123 3.2.2 Giao diện chương trình a Phần tạo chữ ký cho văn 60 b Phần kiểm tra chữ ký 61 KẾT LUẬN Trong thời gian làm đồ án em thực công việc sau: * Về lý thuyết: - Em thu thập tài liệu cách có hệ thống vấn đề có liên quan đến đề tài thương mại điện tử, chữ ký điện tử, sơ đồ chữ ký… - Em tiến hành đọc, nghiên cứu lý thuyết để bước tiến tiến hành hoàn thành báo cáo * Về chương trình ứng dụng: Đề tài em chọn giải pháp xây dựng chữ ký điện tử tương đối mạnh sơ đồ chữ ký điện tử RSA để xây dựng thử nghiệm chương trình tạo chữ ký điện tử Tuy nhiên em dừng lại việc xây dựng demo chương trình với ưu nhược điểm sau: - Ưu điểm: + Chương trình tiến hành ký file text với độ dài tương đối chạy nhanh + Chính xác trình ký kiểm tra chữ ký - Nhược điểm: + Q trình tạo khố ngẫu nhiên cịn bé nên phá + Thời gian lâu phải ký văn có độ dài lớn - Hướng phát triển đề tài: + Phát triển chương trình để ký nhiều định dạng file khác + Tạo giao diện thân thiện với người sử dụng + Phát triển thành phần mềm ký số hồn chỉnh để ký, gửi tin bí mật qua internet mạng khác 62 TÀI LIỆU THAM KHẢO Tài liệu Tiếng Anh [1] Andrew S.Tanenbaum, Computer Networks, Prentice Hall, New Jersey, Fourth Edition, 2003 [2] William Stallings, Network Sercurity Essentials, 2000 [3] Man Young Rhee, Wilay, Internet Sercurity – Cryptographic Principles, Algorithms and Protocol, 2003 Tài liệu Tiếng Việt [1] Hà Thị Thanh – Nguyễn Văn Tảo, Giáo trình an tồn bảo mật thông tin, khoa công nghệ thông tin – Đại học Thái Nguyên [2] TS Nguyễn Đại Thọ, An toàn mạng, Đại học Công Nghệ - ĐHQGHN [3] Phạm Công Ngơ, Lập trình C# từ đến nâng cao, NXB Giáo Dục Các trang web tham khảo [1] http://tailieu.vn [2] http://nhipsongcongnghe.com [3] http://Vi.wikipedia.org [4] http://ebook.edu.vn 63

Ngày đăng: 10/08/2016, 14:50

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