Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 76 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
76
Dung lượng
1,24 MB
Nội dung
ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THỊ HÀ SƠ ĐỒ ĐỊNH DANH MẬT VÀ CHỮ KÝ SỐ ỨNG DỤNG TRONG THƢƠNG MẠI ĐIỆN TỬ LUẬN VĂN THẠC SĨ: KHOA HỌC MÁY TÍNH Thái Ngun - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THỊ HÀ SƠ ĐỒ ĐỊNH DANH MẬT VÀ CHỮ KÝ SỐ ỨNG DỤNG TRONG THƢƠNG MẠI ĐIỆN TỬ Chuyên ngành: Khoa học máy tính Mã số: 60.48.01 LUẬN VĂN THẠC SĨ: Khoa học máy tính NGƢỜI HƢỚNG DẪN KHOA HỌC PGS.TS Bùi Thế Hồng Thái Nguyên - 2012 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI CAM ĐOAN Tôi xin cam đoan Luận văn “ Sơ đồ định danh mật chữ ký số ứng dụng thương mại điện tử ” cơng trình nghiên cứu riêng tơi dưới sự hướng dẫn của PGS.TS Bùi Thế Hồng Toàn bộ phần mềm chí nh xâ y dựng và kiểm thử Tôi xin chị u trách nhiệm về lời cam đoan của mì nh Các số liệu thông tin sử dụng luận văn trung thực Tác giả Lê Thị Hà Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ii MỤC LỤC LỜI MỞ ĐẦU vi Lý chọn đề tài Mục tiêu nghiên cứu .1 Phương pháp nghiên cứu .2 Tổng quan luận văn .2 CHƢƠNG TỔNG QUAN VỀ MẬT MÃ VÀ CHỮ KÝ SỐ .4 1.1 Giới thiệu về mật mã hệ thống mã khóa 1.1.1 Giới thiệu về mật mã học yêu cầu bảo mật thông tin .4 1.1.1.1 Giới thiệu về mật mã học 1.1.1.2 Các yêu cầu bảo mật thông tin 1.1.2 Các hệ thống mã hóa đối xứng cơng khai 1.1.2.1 Sơ đồ hệ thống mật mã .8 1.1.2.2 Hệ thống mật mã đối xứng công khai 10 1.2 Chữ ký số 11 1.2.1 Giới thiệu về chữ ký số 11 1.2.2 Quá trình ký xác thực chữ ký .11 1.2.2.1 Quá trình ký 11 1.2.2.2 Quá trình xác thực chữ ký số .13 1.2.3 Một số lược đồ chữ ký số 16 1.2.3.1 Định nghĩa sơ đồ chữ ký số: .16 1.3 Kết luận chƣơng 24 CHƢƠNG 25 BÀI TOÁN SƠ ĐỒ ĐỊNH DANH MẬT VÀ XÁC NHẬN THÔNG TIN 25 2.1 Tổng quan về toán xưng danh 25 2.2 Sơ đồ xưng danh Okamoto .26 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii 2.3 Sơ đồ xưng danh Guillou-Quisquater .32 2.4 Các sơ đồ xung danh dựa tính đồng 36 2.5 Sơ đồ xưng danh Schnorr .37 2.6 Chuẩn chữ ký số (Digital Signature Standard) 44 2.7 Hàm băm chữ ký 45 2.7.1 Hàm băm (hash function) 45 2.7.2 Vai trò hàm băm .47 2.7.3 Chữ ký .49 2.8 Kết luận chương 50 CHƢƠNG 52 CHƢƠNG TRÌNH SƠ ĐỒ ĐỊNH DANH SCHNORR VÀ SƠ ĐỒ CHỮ KÝ SCHNORR 52 3.1 Yêu cầu hệ thống 52 3.1.1 Phần mềm .52 3.1.2 Phần cứng 52 3.2 Màn hình hệ thống 52 3.3 Chương trình sơ đồ định danh Schnorr 53 3.3.1 Thuật tốn chương trình 53 3.3.2 Giao diện chương trình sơ đồ định danh Schnorr 54 3.3.2.1 Chức tạo 54 3.3.2.2 Chức tạo số 55 3.3.2.3 Chức trình ký 55 3.3.2.4 Chức gửi .57 3.3.2.5 Chức Verify 58 3.3.3 Thử nghiệm .60 3.4 Chương trình sơ đồ chữ ký Schnorr .61 3.4.1 Thuật tốn chương trình 61 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv 3.4.2 Giao diện chương trình sơ đồ chữ ký Schnorr .62 3.4.2.1 Chức tạo 62 3.4.2.2 Chức trình ký 63 34.2.3 Chức gửi .63 3.4.2.4 Chức Sign 64 3.4.3 Thử nghiệm 65 3.5 Kết luận chương .65 TÀI LIỆU THAM KHẢO 67 PHỤ LỤC 68 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v DANH MỤC CÁC KÝ HIỆU, CÁC TỪ VIẾT TẮT Các từ viết tắt Nghĩa tiếng anh DSS RSA Nghĩa tiếng việt hash function Hàm băm Digital Signature Standard Chuẩn chữ ký số Rivest, Shamir Adleman Tên ba tác giả hệ mật mã RSA TA Trusted Authority Cơ quan ủy thác E Elgamal Sơ đồ chữ ký Elgamal Số hóa Trung tâm Học liệu – Đại học Thái Ngun http://www.lrc-tnu.edu.vn vi DANH MỤC HÌNH VẼ Hình 1.1: Lược đồ ký 13 Hình 1.2 Lược đồ xác thực 15 Hình 2.1 Sơ đồ hàm băm 47 Hình 3.1 Giao diện tổng thể hệ thống 52 Hình 3.2 Giao diện chương trình mơ sơ đồ định danh Schnorr 54 Hình 3.3 Giao diện chương trình mơ quan ủy thác xác 56 Hình 3.4 Giao diện chương trình Andy thực gửi thơng tin cho Tommy 57 Hình 3.5 Giao diện chương trình thực xác nhận thơng tin Andy 58 Hình 3.6.Giao diện chương trình sơ đồ chữ ký Schnorr 62 Hình 3.7 Giao diện chương trình thực xác nhận thông tin sơ đồ chữ ký Schnorr 64 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn LỜI MỞ ĐẦU Lý chọn đề tài Ngày nay, với phát triển không ngừng ngành công nghệ thông tin bùng nổ số lượng ứng dụng quản lý thông tin, công việc tổ chức, doanh nghiệp, cá nhân, an toàn cho vấn đề xác nhận thông báo Mặt khác, môi trường cạnh tranh, người ta ngày cần có nhiều thơng tin với tốc độ nhanh để trợ giúp việc định ngày có nhiều câu hỏi mang tính chất cần phải có giải pháp an tồn cho vấn đề xác nhận thông báo với người gửi mạng truyền tin công cộng Trong thực tế c̣c sống, việc xưng danh theo thói quen thường khơng có tính an tồn chẳng hạn số PIN, mật thường khơng có để đảm bảo giữ kín, người ngồi khơng biết Trong giao thức thực điện thoại, kẻ nghe trộm dùng thơng tin định danh cho mục đích riêng Những người người nhận thông tin Các mưu đồ xấu thẻ tín dụng đều hoạt đợng theo cách Như với phát triển tin học lĩnh vực nay, phần lớn giao dịch thực mạng tin học đòi hỏi phải có giải pháp về an tồn khâu xưng danh xác nhận danh tính cho hoạt đợng Nhận thấy tính thiết thực vấn đề gợi ý giảng viên hướng dẫn, em chọn đề tài “Sơ đồ định danh mật sơ đồ chữ ký số ứng dụng thương mại điện tử” làm đề tài cho luận văn thạc sĩ Mục tiêu nghiên cứu - Tìm hiểu về lý thuyết mật mã học hệ thống mật mã - Nghiên cứu chữ chữ ký số trình xác thực chữ ký số -Chuẩn chữ ký số hàm băm Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn - Nghiên cứu sơ đồ chữ ký số sơ đồ định danh mật - Nghiên cứu phương pháp chuyển sơ đồ định danh mật sang sơ đồ chữ ký số Phƣơng pháp nghiên cứu - Nghiên cứu qua tài liệu như: sách, báo, thông tin website tài liệu liên quan - Phân tích, tổng hợp lý thuyết giới thiệu thuật toán sơ đồ định danh mật cách chuyển sơ đồ định danh schnorr sang sơ đồ chữ ký schnorr - Sử dụng ngôn ngữ lập trình C# để triển khai xây dựng mợt chương trình ứng dụng về sơ đồ định danh schnorr sơ đồ chữ ký schnorr ứng dụng thương mại điện tử Tổng quan luận văn Luận văn trình bày theo hình thức từ xuống Bắt đầu phần đều đưa khái niệm quy định cho phần trình bày tiếp sau nhằm mục đích giúp dễ dàng đọc, dần dần sâu vào để thảo luận rõ vấn đề liên quan Luận văn cấu trúc thành chương: Chƣơng 1: Tổng quan về mật mã chữ ký số Tìm hiểu lý thuyết mật mã, hệ thống mã khóa, chữ ký số, sơ đồ chữ ký số Chƣơng 2: Bài toán sơ đồ định danh mật xác nhận thơng tin Trình bày tốn định danh sơ đồ xưng danh xác nhận danh tính Các sơ đồ xưng danh Schnorr, Okamoto đòi hỏi người ủy qùn tín nhiệm (TA) dựa tốn tính logarit rời rạc, sơ đồ xưng danh Guillou – Quisquater, sơ đồ định danh dựa tính đồng Chuẩn chữ ký số hàm băm Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 54 3.3.2 Giao diện chƣơng trình sơ đồ định danh Schnorr Khi người dùng chọn Menu sơ đồ định danh hệ thống chuyển đến giao diện mô sơ đồ định danh Schnorr Hình 3.2: Giao diện chương trình mô sơ đồ định danh Schnorr 3.3.2.1 Chức tạo Cơ quan ủy thác TA chọn tham số cho sơ đồ xưng danh sau: số nguyên tố p, ước số nguyên tố q p-1, phần tử Andy cần xưng danh yêu cầu TA cấp cho mợt chứng /*Chương trình tạo p, q, anpha*/ q = prime[rand.Next(prime.Length - 1)]; // lay so q while (true) { int t =rand.Next(10000); if (kiemTraNguyenTo(t * q + 1)) { p = t * q + 1; break; } } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 55 txtP.Text = p.ToString(); txtQ.Text = q.ToString(); ap = findap();//rand.Next(); txtanpha.Text = ap.ToString(); taokhoa(); 3.3.2.2 Chức tạo số - Andy chọn số bí mật ngẫu nhiên , tính chuyển số v cho TA - Andy chọn thêm một số ngẫu nhiên k (0 proverify.Value) { proverify.Value++; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 60 Thread.Sleep(10); } long t1, t2; t1 = gama % p; t2 = (mod(ap, y, p) * mod(v, r, p)) % p; //MessageBox.Show(ap.ToString() + " : " + y.ToString() + " : " + // MessageBox.Show(gama.ToString() + " : " + t1.ToString() + " : " + t2.ToString()); if (gama % p == (mod(ap, y, p) * mod(v, r, p)) % p) btVerify.Text = "OK"; else btVerify.Text = "Not OK"; this.Refresh(); } catch (Exception ex) { MessageBox.Show("Lỗi môi trường!\r\n" + ex.ToString()); } } 3.3.3 Thử nghiệm Giả sử p=88667, q=1031, t=10 Phần tử =70322 có bậc q thuộc Zp Giả sử số mũ mật Andy a=755 Khi đó: v mod p 03221031-744 mod 88667 = 13136 Giả sử Andy chọn k=543, sau tính: mod p = 70322543 mod 88667 = 84109 Và gửi cho Tommy Giả thiết Tommy đưa yêu cầu r=1000 Khi Andy tính: Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 61 y=k+ar mod q =543+755 1000 mod 1031 =851 Và gửi y cho Tommy Sau xác minh xem 84109= 70322851131361000 (mod 88667) Nếu đúng, Tommy tin liên lạc với Andy 3.4 Chƣơng trình sơ đồ chữ ký Schnorr Sơ đồ chữ ký Schnorr sử dụng một hàm băm h mợt phía dựa tốn khó tính logarit rời rạc thay cho việc cấp chứng C(A) cho người tham gia A, TA cấp cho A danh tính ID(A) mợt số u tính công thức: u = (h(ID(A))-1)a modn (a một số mũ bí mật TA) Số u đước A giữ riêng cho 3.4.1 Thuật tốn chƣơng trình Bước 1: Chọn số nguyên tố lớn p 512 bit, một số nguyên tố q 160bit chia hết cho p-1 Bước 2: Chọn a Zp Bước 3: Chọn giá trị p,q,α v cịn a mật Bước 4: Chọn mợt hàm băm h: Lấy A = ký thông báo x Bước 5: Chọn số ngẫu nhiên k mật Zp Bước 6: Tính Sigk(x,k) = (y,k) Trong đó: = akmodq Và y = k + ah(x,y)modq Với x, ZP y Zq, định nghĩa Bước 6: ver(x,y, ) = true ayvh(x,y)(modp) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn để 62 3.4.2 Giao diện chƣơng trình sơ đồ chữ ký Schnorr Khi người dùng chọn Menu sơ đồ chữ ký Schnorr hệ thống chuyển đến giao diện mô sơ đồ chữ ký Schnorr Hình 3.6: Giao diện chương trình sơ đồ chữ ký Schnorr 3.4.2.1 Chức tạo Mỗi người gửi thơng tin cần xác nhận danh tính cần tạo cho cặp khóa K = (K’, K”) cách chọn một số nguyên tố lớn p, một số nguyên tố q ước số p-1, phần tử bố công khai K” = (p, q, một số a K’ = a khóa bí mật, cơng , v ) v = /*Chương trình tạo p , q, anpha*/ private void button1_Click(object sender, EventArgs e) { try { sobimat = Convert.ToInt64(txta.Text); } catch (Exception ere) { MessageBox.Show("Nhập lại số bí mật a!"); return; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 63 } q = prime[rand.Next(prime.Length - 1)]; // lay so q while (true) { int t = rand.Next(10000); if (kiemTraNguyenTo(t * q + 1)) { p = t * q + 1; break; } } txtP.Text = p.ToString(); txtQ.Text = q.ToString(); ap = findap();//rand.Next(); txtanpha.Text = ap.ToString(); docso(); v = mod(ap, q - sobimat, p); txtV.Text = v.ToString(); btkygui.Enabled = true; } 3.4.2.2 Chức trình ký Chọn một hàm băm h để ký một thông báo, chọn thêm mợt số ngẫu nhiên k Tính Sigk(x,k) = (y,k) Trong đó: = akmodq Và y = k + ah(x,y)modq 34.2.3 Chức gửi Gửi ID(A) , y cho B để xác nhận danh tính Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 64 3.4.2.4 Chức Sign Để kiểm tra xem có chữ ký Andy x hay khơng, dùng khóa cơng khai K”=(p, q, , v) để tính ver(x,y, ) = true ayvh(x,y)(modp Hình 3.7: Giao diện chương trình thực xác nhận thơng tin sơ đồ chữ ký Schnorr /*Chương trình kiểm tra chữ ký*/ private void btcheckSign_Click(object sender, EventArgs e) { progressBar1.Value = 0; while (progressBar1.Maximum > progressBar1.Value) { progressBar1.Value++; Thread.Sleep(10); } int = hash(txtM2.Text + txtGama2.Text); long temp = (mod(ap, y, p) * mod(v, ha, p)) % p; // MessageBox.Show(txtM2.Text + txtGama2.Text + " : " + ha.ToString()); // MessageBox.Show(temp.ToString() + " : " + gama.ToString() + " : " + ha.ToString()); if (temp == gama) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 65 btcheckSign.Text = "OK"; else btcheckSign.Text = "NOT OK"; } 3.4.3 Thử nghiệm - Chọn p = 945799, q = 3217, anpha = 1096, v = 613544 a(mật) = 12 - k = 1096 - Chọn hàm băm - Thực ký Sigk(x,k) = (y,k) = akmodq = 439722 3.5 Kết luận chƣơng Sử dụng ngơn ngữ lập trình C# xây dựng sơ đồ định danh Schnorr sơ đồ chữ ký để xác nhận danh tính Quan trọng sử dụng sơ đồ chữ ký Schnorr để A xưng danh với B A cần biết giá trị u một giá trị tính TA ( TA tính giá trị đó) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 66 KẾT LUẬN Những kết đạt đƣợc Luận văn giới thiệu tổng quát về mật mã, hệ thống mật mã chữ ký số, hướng tiếp cận với sơ đồ định danh mật Ngồi Luận văn cịn đề cập đến một phương pháp tiếp cận sơ đồ chữ ký Schnorr Luận văn sử dụng ngôn ngữ lập trình C Sharp thiết kế chương trình để mơ q trình xác nhận danh tính sơ đồ định danh Schnorr sơ đồ chữ ký Schnorr Trên sở tìm hiểu hệ mật mã sơ đồ định danh mật, luận văn tập trung vào việc chuyển sơ đồ định danh thành sơ đồ chữ ký số với ý tưởng thay người xác minh mợt hàm băm cơng khai thơng báo không bị chặt trước ký q trình băm tích hợp thành thuật tốn ký Bằng ngơn ngữ lập trình C Sharp luận văn tiến hành xây dựng chương trình mơ q trình xưng danh xác nhận danh tính Andy với Tommy sơ đồ định danh Schnorr, xác nhận danh tính sơ đồ chữ ký Schnorr có ý nghĩa ngăn chặn công thông qua việc tìm kiếm va chạm hàm băm Hƣớng phát triển Xây dựng ứng dụng sơ đồ định danh đầy đủ Phát triển ứng dụng thử nghiệm thành một ứng dụng thực tế: Để rút tiền từ một máy ATM tự động, người sử dụng cần xưng danh cách dùng một thẻ rút tiền với số PIN (số xưng danh mình) Đánh giá đồ an toàn sơ đồ chữ ký Schnorr với sơ đồ chữ ký RSA hay Sơ đồ chữ ký số Elgaman Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 67 TÀI LIỆU THAM KHẢO A Tài liệu tiếng Việt [1] Phan Đình Diệu, Lý thuyết mật mã an tồn thơng tin, khoa CNTT Đại học Quốc gia Hà Nội, 2006 [2] D.R Stinson, Mật mã - Lý thuyết thực hành, Nguyễn Bình dịch Học viện kỹ thuật mật mã, 1995 [3] Lê Mỹ Tú, Trần Duy La, Chứng thực điện tử, Học viện Kỹ thuật Mật mã, 2011 [4] TS Nguyễn Đại Thọ, An Toàn Mạng, Trường Đại học Công nghệ ĐHQGHN, 2010 B Tài liệu tiếng Anh [5] Douglas R Stinson Cryptography Theory and Practice, CRC ress, 1995 [6] A.J Menezes, P.C van Oorschot, S.A Vanstone Handbook of Applied cryptography, CRC Press, 1997 [7] Bruce Schneier Applied Cryptography Protocols, Algorithms and Source Code in C John Wiley &Son,Inc, 1996 [8] S Goldwasser, M Bellare Lecture Notes on Cryptography MIT Laboratory of Computer Science, 2001 [9] J.Seberry, J Pieprzyk Cryptography An introduction to Computer Security Prentice Hall, 1989 [10] Vitor Shoup A computational Introduction to Number Theory and Algebra, New York University, 2003 [11] William Stallings Cryptography and Network Security : Principles and Practice, Fourth Edition Prentice Hall, 2005 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 68 C Internet [12] SSH Communications Security - http://www.ssh.com/company [13] RSA Security Inc - http://www.rsasecurity.com [14] Factor World - http://www.crypto-world.com [15] http://williamstallings.com Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn ... tốn) Ta xét hai sơ đồ chữ ký số sơ đồ chữ ký số ElGamal trọng tâm sơ đồ chữ ký số RSA 1.2.3.2 Sơ đồ chữ ký số Elgaman Sơ đồ chữ ký Elgamal đề xuất năm 1985 Bản cải tiến sơ đồ Viện Tiêu chuẩn... thuật toán sơ đồ định danh mật cách chuyển sơ đồ định danh schnorr sang sơ đồ chữ ký schnorr - Sử dụng ngôn ngữ lập trình C# để triển khai xây dựng mợt chương trình ứng dụng về sơ đồ định danh schnorr... tài ? ?Sơ đồ định danh mật sơ đồ chữ ký số ứng dụng thương mại điện tử? ?? làm đề tài cho luận văn thạc sĩ Mục tiêu nghiên cứu - Tìm hiểu về lý thuyết mật mã học hệ thống mật mã - Nghiên cứu chữ chữ