Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 68 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
68
Dung lượng
1,86 MB
Nội dung
ĐẠI HỌC QUỐC GIA HÀ NỘI TRƢỜNG ĐẠI HỌC CÔNG NGHỆ Phạm Thị Vân Anh NGHIÊN CỨU MỘT SỐ CHỮ KÝ SỐ ĐẶC BIỆT VÀ ỨNG DỤNG KHOÁ 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Ệ Phạm Thị Vân Anh NGHIÊN CỨU MỘT SỐ CHỮ KÝ SỐ ĐẶC BIỆT VÀ ỨNG DỤNG 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 dẫn: PGS.TS Trịnh Nhật Tiến HÀ NỘI - 2010 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI CẢM ƠN Trƣớc hết, em xin gửi lời cảm ơn sâu sắc tới PGS.TS Trịnh Nhật Tiến hƣớng dẫn em phát triển khóa luận từ lý thuyết đến ứng dụng Sự hƣớng dẫn thầy suốt thời gian qua giúp em tiếp cận tới hƣớng nghiên cứu khoa học mới: nghiên cứu lĩnh vực an tồn thơng tin Qua đó, lý thuyết an tồn thơng tin lôi em trở thành hƣớng nghiên cứu tiếp em sau tốt nghiệp Em xin bày tỏ lịng biết ơn đến thầy trƣờng Đại học Công nghệ giảng dạy cho em kiến thức quý báu, làm tảng để em hồn thành khóa luận nhƣ thành cơng nghiên cứu, làm việc tƣơng lai Cuối cùng, cho em gửi lời cảm ơn sâu sắc tới gia đình, bạn bè động viên kịp thời để em học tập tốt hồn thành đƣợc khóa luận Em xin chân thành cảm ơn! Hà Nội, tháng năm 2010 Sinh viên Phạm Thị Vân Anh LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÓM TẮT KHÓA LUẬN Những năm gần đây, nhu cầu trao đổi thông tin từ xa ngƣời ngày lớn, ứng dụng trao đổi thông tin qua mạng diễn ngày nhiều Tuy nhiên, loại ứng dụng có địi hỏi riêng khác nhau, ví dụ nhƣ ứng dụng bầu cử từ xa cần phải che dấu đƣợc thông tin ngƣời bỏ phiếu, văn đƣợc ký nhƣng khơng muốn xác thực chữ ký chƣa đƣợc đồng ý ngƣời ký Chữ ký mù chữ ký chối bỏ đời để giải vấn đề nêu Ý tƣởng ký mù ngƣời ký khơng biết ký nội dung Ý tƣởng chữ ký khơng thể chối bỏ chữ ký mà ngƣời ký tham gia trực tiếp vào trình xác thực chữ ký Khóa luận tốt nghiệp đề cập mặt lý thuyết hai loại chữ ký trên, xây dựng ứng dụng minh họa tƣơng ứng với loại chữ ký; đồng thời xây dựng ứng dụng thực ký số RSA file văn tiếng Việt sử dụng thƣ viện mã nguồn mở OpenSSL LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com MỤC LỤC LỜI MỞ ĐẦU Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 CÁC KHÁI NIỆM TRONG TOÁN HỌC 1.1.1 Một số khái niệm số học 1.1.2 Một số khái niệm đại số 13 1.1.3 Khái niệm độ phức tạp thuật toán 17 1.2 MÃ HÓA 21 1.2.1 Khái niệm mã hóa liệu 21 1.2.2 Phân loại hệ mã hóa 22 1.3 KÝ SỐ 25 1.3.1 Khái niệm chữ ký số 25 1.3.2 Phân loại chữ ký số 25 1.3.3 So sánh chữ ký thông thƣờng chữ ký số 26 1.3.4 Tạo đại diện tài liệu hàm băm 27 Chương CHỮ KÝ MÙ RSA 30 2.1 KHÁI NIỆM CHỮ KÝ MÙ 30 2.1.1 Sơ đồ chữ ký RSA 30 2.1.2 Sơ đồ chữ ký mù RSA 31 2.1.3 Ví dụ minh họa 32 2.2 ỨNG DỤNG CHỮ KÝ MÙ 33 2.2.1 Ứng dụng tiền điện tử 33 2.2.2 Ứng dụng bỏ phiếu trực tuyến 34 Chương CHỮ KÝ KHÔNG THỂ CHỐI BỎ 36 3.1 KHÁI NIỆM CHỮ KÝ KHÔNG THỂ CHỐI BỎ 36 3.1.1 Sơ đồ chữ ký chối bỏ Chaum – Van Antwerpen 36 3.1.2 Ví dụ minh họa 38 3.1.3 Một số đánh giá sơ đồ 39 3.2 HÌNH THỨC TẤN CƠNG CHỮ KÝ KHƠNG THỂ CHỐI BỎ 43 3.2.1 Tống tiền ngƣời ký 43 3.2.2 Nhiều ngƣời xác thực chữ ký mà ngƣời ký 43 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3.3 ỨNG DỤNG CHỮ KÝ KHÔNG THỂ CHỐI BỎ 45 3.3.1 Ứng dụng thẻ chứng minh thƣ điện tử 45 3.3.2 Ứng dụng ký hợp đồng qua điện thoại 45 Chương THỬ NGHIỆM CÁC CHƢƠNG TRÌNH 46 4.1 THỬ NGHIỆM ỨNG DỤNG CHỮ KÝ SỐ 46 4.1.1 Giới thiệu 46 4.1.2 Mô tả hoạt động chƣơng trình 47 4.2 THỬ NGHIỆM CHƢƠNG TRÌNH KÝ MÙ RSA 53 4.2.1 Giới thiệu 53 4.2.2 Mô tả hoạt động chƣơng trình 53 4.3 THỬ NGHIỆM CHỮ KÝ KHÔNG THỂ CHỐI BỎ 55 4.3.1 Giới thiệu 55 4.3.2 Mơ tả hoạt động chƣơng trình 56 KẾT LUẬN 60 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com DANH SÁCH BẢNG Bảng 1: Ví dụ sử dụng thuật tốn Euclide tìm ước chung lớn .5 Bảng 2: Ví dụ sử dụng thuật tốn Euclide mở rộng để tìm phần tử nghịch đảo 16 Bảng 3: Thời gian chạy lớp thuật toán khác 19 DANH SÁCH HÌNH VẼ Hình 1: Giao diện chương trình ký số RSA 46 Hình 2: Giao diện chức “Ký”RSA .47 Hình 3: Giao diện chức xác thực chữ ký số RSA 49 Hình 4: Giao diện chức mã hóa DES file văn chữ ký 50 Hình 5: Giao diện chức giải mã DES 51 Hình 6: Giao diện chức ký mù .53 Hình 7: Giao diện chức xóa mù chữ ký .54 Hình 8: Giao diện người ký chữ ký khơng thể chối bỏ 55 Hình 9: Giao diện người xác thực chữ ký chối bỏ 55 Hình 10: Thơng báo chữ ký chối bỏ xác thực 57 Hình 11: Thơng báo điều kiện 𝒅 ≡ 𝒙𝒆𝟏 𝒈𝒆𝟐 𝒎𝒐𝒅 𝒑 không thỏa mãn 58 Hình 12: Thơng báo chữ ký giả mạo 58 Hình 13: Thơng báo phát người ký cố tình chối bỏ chữ ký .59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com LỜI MỞ ĐẦU Trong năm gần đây, bùng nổ cách mạng thơng tin diễn nhanh chóng phạm vi toàn giới Sự phổ biến rộng rãi Internet kết nối ngƣời toàn giới lại với nhau, trở thành công cụ thiếu, làm tăng hiệu làm việc, tăng hiểu biết, trao đổi, cập nhật thơng tin cách nhanh chóng tiện lợi Tuy nhiên Internet mạng mở, chứa đựng nhiều hiểm họa đe dọa hệ thống mạng, hệ thống máy tính, tài ngun thơng tin tổ chức, cá nhân Ví dụ tin tức quan trọng nằm kho liệu hay đƣờng truyền bị trộm cắp, bị làm cho sai lệch bị làm giả mạo Vì thế, nảy sinh yêu cầu phải làm để văn đƣợc gửi khơng đƣợc nhìn thấy hay khó giả mạo xâm nhập vào văn Với đời cơng nghệ mã hóa chữ ký số trợ giúp cho ngƣời việc giải tốn nan giải an tồn thơng tin Một tình nảy sinh trao đổi thơng tin mạng, ngƣời ta nhận đƣợc văn truyền mạng để đảm bảo đối tác gửi cho Tƣơng tự, ngƣời nhận nhận đƣợc tờ tiền điện tử có cách để xác nhận đối tác tốn cho họ Ngồi cịn có nhiều hoạt động kinh tế, xã hội từ xa nhƣ đàm phán, toán, gửi tiền từ xa, Do chữ ký số đƣợc sử dụng nhiều lĩnh vực: kinh tế với việc trao đổi hợp đồng đối tác kinh doanh, xã hội bỏ phiếu điện tử hay thăm dị thơng tin từ xa,… Tuy nhiên, yêu cầu chữ ký đặt với ứng dụng khác Có ứng dụng đòi hỏi nặc danh tài liệu đƣợc ký nhƣ ứng dụng bỏ phiếu điện tử, tiền điện tử Một số ứng dụng khác lại yêu cầu tham gia ngƣời ký vào trình xác thực chữ ký Chữ ký mù (ra đời năm 1983) chữ ký chối bỏ ( đời năm 1989 ) giải hai vấn đề nêu Trong khóa luận này, em trọng vào tìm hiểu sở lý thuyết chữ ký mù chữ ký chối bỏ kèm theo ứng dụng minh họa với loại Đồng thời xây dựng ứng dụng thử nghiệm chữ ký số RSA file text tiếng Việt Khóa luận bao gồm phần cụ thể sau: Chƣơng 1: Các khái niệm bản: nêu lên lý thuyết toán học mà tốn an tồn thơng tin cần tới, khái niệm mã hóa ký số LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chƣơng 2: Chữ ký mù RSA: trình bày sơ đồ chữ ký mù RSA, ví dụ minh họa ứng dụng chữ ký mù Chƣơng 3: Chữ ký khơng thể chối bỏ: trình bày sơ đồ chữ ký khơng thể chối bỏ Chaum van Antwerpen, ví dụ minh họa, hình thức cơng chữ ký khơng thể chối bỏ ứng dụng của chữ ký Chƣơng 4: Thử nghiệm chƣơng trình: thử nghiệm chƣơng trình chữ ký số RSA, chƣơng trình chữ ký mù RSA chƣơng trình chữ ký khơng thể chối bỏ Kết luận LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Chương CÁC KHÁI NIỆM CƠ BẢN 1.1 CÁC KHÁI NIỆM TRONG TOÁN HỌC 1.1.1 Một số khái niệm số học 1.1.1.1 Ước chung lớn nhất, bội chung nhỏ 1/ Khái niệm - Ước số bội số + Cho hai số nguyên a b, b ≠ Nếu có số nguyên q cho a = b*q, ta nói a chia hết cho b, kí hiệu b\a Ta nói b ước a, a bội b Ví dụ: a = 6, b = 2, ta có = 2*3, ký hiệu 2\6 Ở ƣớc bội + Cho số nguyên a, b ≠ 0, tồn cặp số nguyên (q, r) (0 r < /b/) cho a = b * q + r Khi q gọi thương nguyên, r gọi số dư phép chia a cho b Nếu r = ta có phép chia hết Ví dụ: Cho a = 13, b = 5, ta có 13 = 5*2 + Ở thƣơng q = 2, số dƣ r = - Ước chung lớn nhất, bội chung nhỏ + Số nguyên d đƣợc gọi ƣớc chung số nguyên 𝑎1 , 𝑎2 , …, 𝑎𝑛 , ƣớc tất số + Số nguyên m đƣợc gọi bội chung số nguyên 𝑎1 , 𝑎2 , …, 𝑎𝑛 , bội tất số + Một ƣớc chung d > số nguyên 𝑎1 , 𝑎2 , …, 𝑎𝑛 , ƣớc chung 𝑎1 , 𝑎2 , …, 𝑎𝑛 ƣớc d, d đƣợc gọi ƣớc chung lớn (UCLN) 𝑎1 , 𝑎2 , …, 𝑎𝑛 Ký hiệu d = gcd (𝑎1 , 𝑎2 , …, 𝑎𝑛 ) hay d = UCLN(𝑎1 , 𝑎2 , …, 𝑎𝑛 ) Nếu gcd(𝑎1 , 𝑎2 , …, 𝑎𝑛 ) = 1, số 𝑎1 , 𝑎2 , …, 𝑎𝑛 đƣợc gọi nguyên tố + Một bội chung m > số nguyên 𝑎1 , 𝑎2 , …, 𝑎𝑛 , bội chung 𝑎1 , 𝑎2 , …, 𝑎𝑛 bội m, m đƣợc gọi bội chung nhỏ (BCNN) 𝑎1 , 𝑎2 , …, 𝑎𝑛 Ký hiệu m = lcm(𝑎1 , 𝑎2 , …, 𝑎𝑛 ) hay m = BCNN(𝑎1 , 𝑎2 , …, 𝑎𝑛 ) LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.1.2 Mơ tả hoạt động chƣơng trình 4.1.2.1 Chức ký số ( sử dụng thuật toán ký số RSA ) 1/ Mô tả cách dùng - Mô tả chức năng: Chƣơng trình sinh khóa ký RSA ngẫu nhiên có độ dài 512 bits 1024 bits (theo lựa chọn ngƣời dùng ) Sau ghi khóa bí mật khóa cơng khai file tƣơng ứng Trƣớc ký, văn đƣợc băm theo thuật tốn SHA1 Hình 2: Giao diện chức “Ký”RSA - Ngƣời dùng nhập vào thông tin sau + Key size ( có lựa chọn 512 bits 1024 bits ) + Input file: Đƣờng dẫn tuyệt đối văn cần ký ( File text Unicode ) + Public key file: đƣờng dẫn tuyệt đối file lƣu khóa cơng khai tạo + Private key file: đƣờng dẫn tuyệt đối file lƣu khóa bí mật + Digest: đƣờng dẫn tuyệt đối file lƣu đại diện văn ( giá trị băm văn trƣớc ký ) + Signature: đƣờng dẫn tuyệt đối file chứa chữ ký 47 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Trong chƣơng trình này, khóa cơng khai, khóa bí mật, đại diện, chữ ký đƣợc biểu diễn dƣới dạng xâu chứa mã ASCII ký tự 2/ Mô tả cách cài đặt chức ký số Chức có hàm sau: - Hàm sinh khóa bí mật công khai phục vụ việc ký private: RSA* generateKey (String^ klen) đƣợc cài đặt nhƣ sau: + Khởi tạo biến RSA* r hàm RSA_generate_key thƣ viện OpenSSL Ở lƣu ý thƣ viện OpenSSL, khóa bí mật khóa cơng khai đƣợc biểu diễn theo chuẩn PKCS#1 - + Ghi khóa bí mật vào file khóa bí mật + Ghi khóa cơng khai vào file khóa cơng khai + Hàm trả lại giá trị r Hàm thực việc ký private: void hSign(RSA* r ) đƣợc cài đặt nhƣ sau: + Đọc nội dung file cần ký vào mảng buffer có kiểu wchar_t* + Biểu diễn phần tử buffer dƣới dạng mã Unicode Kết thu đƣợc String mesStr chứa mã Unicode tƣơng ứng buffer + Gọi đến hàm SHA1 thƣ viện OpenSSL để băm string mesStr theo thuật toán băm SHA1, kết thu đƣợc lƣu vào mảng unsigned char* hash + Gọi đến hàm RSA_sign thƣ viện OpenSSL để ký lên mảng hash với khóa ký r Kết trả sau ký là mảng unsigned char* signature + Biểu diễn mảng kiểu unsigned char* hash signature dƣới dạng String chứa mã ASCII ký tự Ghi giá trị tƣơng ứng file chứa đại diện file chứa chữ ký + Khi việc ký kết thúc thành công lên thông báo “Signing completed successfully!!!” 48 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.1.2.2 Chức xác thực chữ ký số 1/ Mơ tả Hình 3: Giao diện chức xác thực chữ ký số RSA - - Ngƣời dùng nhập vào thông tin sau: + Input file: File văn + Signature: File chữ ký văn + Public key file: File chứa khóa cơng khai dùng để xác thực chữ ký Kết trả “Signature is true” chữ ký “Signature is false” chữ ký sai 2/ Mô tả cài đặt Có hàm sau đây: - Hàm xử lý kiện click vào nút Verify private:System::Void Verify_Click(System::Object^sender,System::EventArgs^ e) + Đọc file thông điệp vào mảng wchar_t* wbuffer + Biểu diễn phần tử buffer dƣới dạng mã Unicode Kết thu đƣợc String mesStr chứa mã Unicode tƣơng ứng buffer + Đọc nội dung file chữ ký vào mảng char* sig 49 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com + Băm String mesStr theo thuật toán SHA1, giá trị băm đƣợc lƣu vào mảng unsigned char* hash + Đọc nội dung file khóa cơng khai vào mảng unsigned char* pubKey Tạo biến RSA* rsa từ hàm d2i_RSAPublicKey ( thƣ viện nguồn mở OpenSSL ) pubKey tham số hàm + Gọi đến hàm RSA_verify thƣ viện OpenSSL để xác thực chữ ký hay sai 4.1.2.3 Chức mã hóa theo hệ mã hóa DES 1/ Mơ tả - Chức năng: mã hóa file văn file chữ ký theo hệ mã hóa DES Hình 4: Giao diện chức mã hóa DES file văn chữ ký - Ngƣời dùng nhập vào thông tin sau: + Input file: đƣờng dẫn tuyệt đối file văn + Signature: đƣờng dẫn tuyệt đối file chữ ký + Passphrase + Encrypted input file: đƣờng dẫn tuyệt đối file lƣu mã văn + Encrypted signature: đƣờng dẫn tuyệt đối file lƣu mã chữ ký 50 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2/ Mô tả cài đặt - Hàm mã hóa file thơng điệp file chữ ký theo hệ mã hóa DES private:System::Void encrypt_Click(System::Object^ sender, System::EventArgs^e) đƣợc cài đặt nhƣ sau: + Đọc nội dung file văn vào wchar_t* buffer + Biểu diễn phần tử buffer dƣới dạng mã Unicode Kết thu đƣợc String mesStr chứa mã Unicode tƣơng ứng buffer + Đọc file chữ ký vào mảng unsigned char* sig + Tạo khóa mã hóa giải mã từ passphrase ngƣời dùng nhập vào + Lần lƣợt dùng hàm DES_cfb64_encrypt với tùy chọn DES_ENCRYPT thƣ viện OpenSSL để mã hóa mảng buffer sig thu đƣợc mảng unsigned char lần lƣợt resMes resSig + Biểu diễn mảng kiểu unsigned char resMes resSig dƣới dạng String chứa mã ASCII ký tự Ghi giá trị tƣơng ứng file chứa mã văn file chứa mã chữ ký 4.1.2.4 Chức giải mã DES 1/ Mơ tả Hình 5: Giao diện chức giải mã DES 51 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Chức năng: giải mã mã thông điệp mã chữ ký thành rõ tƣơng ứng - Ngƣời dùng nhập vào thông tin sau: + Encrypted input file: đƣờng dẫn tuyệt đối file chứa mã thông điệp + Encrypted signature: đƣờng dẫn tuyệt đối file chứa mã chữ ký + Passphrase + Decrypted input file: đƣờng dẫn tuyệt đối file chứa rõ thông điệp + Decrypted signature: đƣờng dẫn tuyệt đối file chứa rõ chữ ký Sau kết thúc q trình mã hóa, thơng báo “Decryption completed sucessfully!!!” đƣợc đƣa 2/ Mô tả cài đặt Các hàm - Hàm giải mã mã thơng điệp mã chữ ký private:System:: Void decrypt_Click(System::Object^sender, System::EventArgs^e) + Đọc liệu từ file thơng điệp mã hóa vào mảng unsigned char enFileArr + Đọc liệu từ file chữ ký mã hóa vào mảng unsigned char enSigArr + Tạo khóa DES từ passphrase ngƣời dùng nhập vào + Dùng hàm DES_cfb64_encrypt với tùy chọn DES_DECRYPT để giải mã file mã thông điệp Tham số hàm mảng unsigned char enFileArr Kết trả hàm mảng unsigned char chứa mã Unicode ký tự Từ mảng ta chuyển sang đƣợc mảng wchar_t chứa ký tự văn nguyên gốc Ghi mảng vào file ta đƣợc file chứa rõ thông điệp + Dùng hàm DES_cfb64_encrypt với tùy chọn DES_DECRYPT để giải mã file mã chữ ký Tham số hàm mảng unsigned char enSigArr Kết trả hàm mảng unsigned char chứa mã ASCII ký tự Từ mảng ta chuyển sang mảng char chứa ký tự nguyên gốc Ghi mảng vào file ta đƣợc file chứa rõ chữ ký 52 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.2 THỬ NGHIỆM CHƢƠNG TRÌNH KÝ MÙ RSA 4.2.1 Giới thiệu Chƣơng trình minh họa đƣợc viết Visual C++ NET 3.5 gồm chức năng: - Ký mù số nguyên - Xóa mù chữ ký 4.2.2 Mơ tả hoạt động chƣơng trình 1/ Chức ký mù - - Thơng tin đầu vào + Số nguyên tố p, q, chọn khóa cơng khai b, số ngẫu nhiên r (nhƣ mơ tả thuật tốn) + Nhập vào thơng điệp cần ký số nguyên + Sau nhập xong thông tin, bấm Sign để thực việc ký, Cancel để hủy bỏ Thông tin đầu + Giá trị thông điệp sau làm mù + Chữ ký mù thơng điệp Hình 6: Giao diện chức ký mù 53 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 2/ Chức xóa mù chữ ký - - Thơng tin đầu vào + Số n, khóa cơng khai b, số ngẫu nhiên r, giá trị thông điệp sau làm mù, chữ ký mù + Sau nhập thơng tin trên, bấm Unblind để xóa mù xác thực chữ ký, Cancel để hủy bỏ Thông tin đầu + Giá trị chữ ký sau xóa mù + Xác thực tính sai chữ ký ( chữ ký đúng, chƣơng trình trả vể “OK”, ngƣợc lại “Not OK”) Hình 7: Giao diện chức xóa mù chữ ký 54 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.3 THỬ NGHIỆM CHỮ KÝ KHÔNG THỂ CHỐI BỎ 4.3.1 Giới thiệu Chƣơng trinh gồm tab, cho ngƣời ký (signer) cho ngƣời xác thực chữ ký - Tab Signer Hình 8: Giao diện người ký chữ ký chối bỏ - Tab verifier Hình 9: Giao diện người xác thực chữ ký chối bỏ 55 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4.3.2 Mô tả hoạt động chƣơng trình 1/ Chuẩn bị tham số - Khi chƣơng trình đƣợc bật lên, số nguyên tố ngẫu nhiên p, q đƣợc chọn sẵn cho ngƣời dùng Giá trị g đƣợc tính sẵn dựa theo p Tuy nhiên ngƣời dùng nhập trực tiếp giá trị p g từ bàn phím cách sửa trực tiếp textbox - Ngƣời ký nhập giá trị khóa bí mật a ( < a < q ) vào textbox sau nhấn enter Chƣơng trình tự động tính giá trị h = ga mod p Khi đó: + Tab Signer có thông tin: p, q, g, a, h + Tab Verifier có thơng tin: p, q, g, h 2/ Ký - Ngƣời cần ký nhập vào thông điệp cần ký ( bên tab Verifier ) số sau nhấn Enter, thơng điệp đƣợc chuyển sang cho Signer, Signer ký y = xa mod p sau bấm vào nút “Send” để gửi giá trị chữ ký cho Verifier 3/ Giao thức kiểm thử chữ ký - Verifier nhập vào số ngẫu nhiên 𝑒1 , 𝑒2 ∈ 𝑍𝑞∗ Khi chƣơng trình tính giá trị c hiển thị giá trị vào textbox c Sau giá trị đƣợc gửi cho Signer −1 - Sau nhận đƣợc c, chƣơng trình tính d = 𝑐 𝑎 𝑚𝑜𝑑 𝑞 𝑚𝑜𝑑 𝑝 hiển thị giá trị vào textbox d tab Signer Signer bấm vào nút “Send” để gửi giá trị cho Verifier - Sau nhận đƣợc d, Verifier bấm vào nút “Result” để kết kiểm tra chữ ký Nếu chữ ký đúng, chƣơng trình có thông báo: 56 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 10: Thơng báo chữ ký khơng thể chối bỏ xác thực 4/ Giao thức chối bỏ chữ ký - Trƣờng hợp thứ nhất: Ngƣời ký (Signer) chối bỏ chữ ký ký + Verifier nhập số nguyên vào textbox Message + Verifier nhập chữ ký vào textbox Signature Sau nhập xong, nhấn Enter để chƣơng trình thực việc chuyển thông điệp chữ ký cho Signer + Sau đó, ngƣời xác thực chữ ký (Verifier) nhập giá trị 𝑒1 , 𝑒2 tƣơng ứng Nhấn Enter để chƣơng trình tự động tính c Giá trị c đƣợc tự động gửi cho Signer + Sau nhận đƣợc c, chƣơng trình tính d = 𝑐 𝑎 −1 𝑚𝑜𝑑 𝑞 𝑚𝑜𝑑 𝑝 hiển thị giá trị vào textbox d tab Signer Signer bấm vào nút “Send” để gửi giá trị cho Verifier + Sau nhận đƣợc d, Verifier bấm vào nút “Result” để kết kiểm tra chữ ký Nếu điều kiện kiểm tra khơng đƣợc thỏa mãn, chƣơng trình lên nhƣ sau: 57 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Hình 11: Thơng báo điều kiện 𝒅 ≡ 𝒙𝒆𝟏 𝒈𝒆𝟐 𝒎𝒐𝒅 𝒑 không thỏa mãn + Sau bấm OK, textbox 𝑓1 , 𝑓2 xuất để ngƣời dùng nhập thông tin vào Sau nhập vào 𝑓1 , 𝑓2 Verifier nhấn Enter để chƣơng trình tự động tính C Giá trị C đƣợc tự động gửi cho Signer + Signer sau nhận đƣợc C tính D Signer bấm “Send” để gửi cho Verifier + Sau Verifier nhận đƣợc D, Verifier click vào nút “Result” để xem kết Nếu chữ ký giả mạo, thơng báo chƣơng trình nhƣ sau: Hình 12: Thơng báo chữ ký giả mạo 58 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com - Trƣờng hợp Signer cố tình chối bỏ chữ ký + Verifier nhập số nguyên vào textbox Message + Verifier nhập chữ ký Signer Message vào textbox Signature Sau nhập xong, nhấn Enter để chƣơng trình thực việc chuyển thơng điệp chữ ký cho Signer + Sau đó, verifier nhập giá trị 𝑒1 , 𝑒2 tƣơng ứng Nhấn Enter để chƣơng trình tự động tính c Giá trị c đƣợc tự động gửi cho Signer + Sau nhận đƣợc c, chƣơng trình tính d = 𝑐 𝑎 −1 𝑚𝑜𝑑 𝑞 𝑚𝑜𝑑 𝑝 hiển thị giá trị vào textbox d tab Signer Signer chỉnh sửa giá trị d tùy ý sau bấm vào nút “Send” để gửi giá trị cho Verifier + Sau nhận đƣợc d, Verifier bấm vào nút “Result” để kiểm tra chữ ký Nếu điều kiện kiểm tra khơng thỏa mãn, thơng báo nhƣ Hình 11 + Sau bấm OK, textbox 𝑓1 , 𝑓2 xuất để ngƣời dùng nhập thông tin vào Sau nhập vào 𝑓1 , 𝑓2 , verifier nhấn Enter để chƣơng trình tự động tính C Giá trị C đƣợc tự động gửi cho Signer + Phía Signer sau nhận đƣợc C tính D Signer chỉnh sửa giá trị D tùy ý sau bấm vào nút “Send” để gửi giá trị cho Verifier + Sau Verifier nhận đƣợc D, Verifier click vào nút “Result” để xem kết thu đƣợc thơng báo nhƣ sau: Hình 13: Thơng báo phát người ký cố tình chối bỏ chữ ký 59 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com KẾT LUẬN a Kết thu đƣợc Sau thời gian thực khóa luận, em tìm hiểu đƣợc kiến thức tổng quan lý thuyết bảo mật thơng tin, mã hóa, ký số Đồng thời nghiên cứu sử dụng thƣ viện mã nguồn mở OpenSSL để xây dựng ứng dụng thử nghiệm Khóa luận gồm kết nghiên cứu sau: 1/ Tìm hiểu nghiên cứu tài liệu để hệ thống lại vấn đề sau: + Chữ ký mù RSA + Chữ ký chối bỏ 2/ Thử nghiệm chƣơng trình ứng dụng sau: + Chữ ký số RSA + Chữ ký mù RSA + Chữ ký chối bỏ b Tƣơng lai phát triển Cùng với phát triển nhanh chóng cơng nghệ thơng tin, quản lý hành điện tử, thƣơng mại điện tử hay phủ điện tử vấn đề cấp thiết cần nghiên cứu phát triển Bởi vậy, việc xây dựng sở hạ tầng thông tin an toàn cần thiết cấp bách Chữ ký số phƣơng pháp hiệu bảo vệ thơng tin Vì vậy, đã, thu hút nhiều ý, nghiên cứu ứng dụng giới Ở Việt Nam, chuyên ngành an toàn thông tin giai đoạn phát triển, nên kiến thức tàng đóng vai trị quan trọng Trong tƣơng lai, em muốn tiếp tục nghiên cứu để cải tiến nhƣợc điểm sơ đồ chữ ký trên, nhƣ tìm hiểu thêm nhiều loại chữ ký số khác để áp dụng rộng rãi vào nhiều lĩnh vực khác nhƣ: quản lý hành chính, thƣơng mại điện tử, … 60 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com TÀI LIỆU THAM KHẢO [1] Phan Đình Diệu Lý thuyết mật mã an tồn thơng tin – NXB Đại học Quốc gia Hà Nội - 2006 [2] Trịnh Nhật Tiến Giáo trình An toàn liệu [3] Trịnh Nhật Tiến, Đinh Vinh Quang Thanh toán “Tiền điện tử” [4] Trịnh Nhật Tiến, Trƣơng Thị Thu Hiền Về quy trình bỏ phiếu từ xa – Tạp chí Khoa học ĐHQGHN, KHTN & CN, T.XXI, SỐ 2PT 2005 [5] Trịnh Nhật Tiến Chữ ký: mù, nhóm, mù nhóm ứng dụng Kỷ yếu HN KH FAIR lần TP Hồ Chí Minh 9/2005 [6] Danny De Cock, Christopher Wolf, Bart Preneel The Belgian Electronic Identity Card [7] Doublas Stinson Cryptography: Theory and Practice – CRC Press 03/17/95 [8] Markus Jakobsson Blackmailing using undeniable signatures SpringerVerlag [9] Matt Messsier, John Viega Secure Programming Cookbook for C and C++ O’Reilly July 2003 [10] Morten Bohoj, Mads Keblov Kjeldsen Cryptography report Undeniable signature schems – December 15, 2006 [11] N Kuntze C Hett and A U Schmidt Non-repudiation of voice-over-ip conversations with chained digital signatures From Fraunhofer SIT [12] http://openssl.org [13] http://vi.wikipedia.org/wiki/Ki%E1%BB%83m_tra_Solovay-Strassen [14] http://vi.wikipedia.org/wiki/Ki%E1%BB%83m_tra_Miller-Rabin [15] http://en.wikipedia.org/wiki/Lamport_signature LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com ... đƣợc ký nhƣng không muốn xác thực chữ ký chƣa đƣợc đồng ý ngƣời ký Chữ ký mù chữ ký chối bỏ đời để giải vấn đề nêu Ý tƣởng ký mù ngƣời ký khơng biết ký nội dung Ý tƣởng chữ ký chối bỏ chữ ký mà... dụng khác Có ứng dụng địi hỏi nặc danh tài liệu đƣợc ký nhƣ ứng dụng bỏ phiếu điện tử, tiền điện tử Một số ứng dụng khác lại yêu cầu tham gia ngƣời ký vào trình xác thực chữ ký Chữ ký mù (ra đời... với chữ ký khác (chữ ký tin cậy) Trái lại, thẩm định chữ ký số dùng thuật tốn kiểm tra cơng khai Do đó, thẩm định Sử dụng sơ đồ chữ ký an toàn ngăn chặn đƣợc khả giả mạo - Một khác biệt chữ ký số