Nghiên cứu lược đồ chữ ký số tập thể trên hệ mật ID based

67 69 0
Nghiên cứu lược đồ chữ ký số tập thể trên hệ mật ID based

Đ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

LỜI CAM ĐOAN Em xin cam đoan kết trình bày đồ án tốt nghiệp “Nghiên cứu lược đồ chữ ký số tập thể hệ mật ID-Based” cơng trình nghiên cứu em hướng dẫn TS Lê Xuân Đức Các số liệu, kết đồ án tốt nghiệp hoàn toàn trung thực chưa công bố cơng trình trước Các kết sử dụng để tham khảo trích dẫn đầy đủ theo quy định Bắc Ninh, ngày tháng năm 2017 Học viên Nguyễn Thị Thu Hiền LỜI CẢM ƠN Trong q trình nghiên cứu hồn thiện đồ án tốt nghiệp này, em nhận nhiều giúp đỡ đóng góp quý báu Đầu tiên, em xin bày tỏ lòng cảm ơn sâu sắc tới Thầy giáo hướng dẫn TS Lê Xuân Đức - Viện Khoa học Công nghệ Quân ủng hộ, động viên, tận tình giúp đỡ hỗ trợ điều kiện tốt cho em suốt q trình nghiên cứu hồn thiện đồ án tốt nghiệp Em xin chân thành cảm ơn Khoa Công nghệ thông tin - Trường Đại học Kỹ thuật - Hậu cần Công an nhân dân tạo điều kiện thuận lợi để em hoàn thành nhiệm vụ Em xin cảm ơn Đội Tin Học - Phòng Viễn Thơng Tin Học - Công an thành phố Hà Nội tạo điều kiện cho phép em nghiên cứu đồ án tốt nghiệp thời gian thực tập tốt nghiệp đơn vị Cuối cùng, em xin bày tỏ lòng cảm ơn đến gia đình, anh em, bạn bè, đồng chí, đồng đội động viên cổ vũ em suốt thời gian nghiên cứu Xin trân trọng cảm ơn tất cả! MỤC LỤ MỤC LỤC .i DANH MỤC CÁC TỪ VIẾT TẮT iii DANH MỤC HÌNH .iv DANH MỤC BẢNG .v DANH MỤC CÁC KÝ HIỆU TOÁN HỌC .vi MỞ ĐẦU Chương TỔNG QUAN VỀ CHỮ KÝ SỐ TẬP THỂ .5 1.1 Chữ ký số 1.1.1 Định nghĩa chữ ký số 1.1.2 Thuật toán tạo xác nhận chữ ký số .6 1.1.3 Phân loại chữ ký số 1.1.4 Phân loại công chữ ký số 1.1.5 Các dạng bẻ gãy lược đồ chữ ký số .10 1.2 Chữ ký số tập thể 11 1.2.1 Khái niệm .11 1.2.2 Các thành phần lược đồ chữ ký số tập thể 13 1.2.3 Phân loại chữ ký số tập thể dựa cấu trúc xây dựng .13 1.3 Kết luận chương 17 Chương CHỮ KÝ SỐ TẬP THỂ VỚI CÁC HỆ MẬT KHÁC NHAU 18 2.1 Tình hình nghiên cứu chữ ký số tập thể 18 2.2 Chữ ký số tập thể dựa toán Logarithm rời rạc 20 2.3 Chữ ký số tập thể dựa hệ mật RSA 22 2.3.1 Chữ ký số RSA 22 2.3.2 Chữ ký số tập thể RDSA 24 2.3.3 Chữ ký tập thể Itakura Nakamura .24 2.3.4 Lược đồ chữ ký tập thể Harn Kiesler 26 2.4 Chữ ký số tập thể dựa hệ mật Elliptic 27 2.4.1 Tổng quan hệ mật đường cong elliptic 27 2.4.2 Lược đồ chữ ký số tập thể Popescu .33 2.4.3 Lược đồ chữ ký số tập thể Khali Farah 36 2.5 Kết luận chương 37 Chương NGHIÊN CỨU THỰC NGHIỆM LƯỢC ĐỒ CHỮ KÝ SỐ TẬP THỂ TRÊN HỆ MẬT ID-BASED 38 3.1 Chữ ký số tập thể dựa cặp Song tuyến tính 38 3.2 Nghiên cứu thực nghiệm lược đồ chữ ký số tập thể hệ mật IDBased 39 3.2.1 Hệ mật ID-Based 39 3.2.2 Chữ ký số tập thể hệ mật ID-Based 44 3.2.3 Nghiên cứu thực nghiệm lược đồ chữ ký số tập thể hệ mật ID-Based 48 3.3 Kết luận chương 55 KẾT LUẬN 56 TÀI LIỆU THAM KHẢO 57 Y DANH MỤC CÁC TỪ VIẾT TẮT KÍ HIỆU NGHĨA TIẾNG ANH NGHĨA TIẾNG VIỆT DL Discrete Logarithm Problem Bài toán logarit rời rạc DS Digital Signature Algorithm Thuật toán chữ ký số DS Digital Signature Scheme Lược đồ chữ ký số P A S EC Elliptic Curve EC Elliptic Curve Cryptography Mật mã đường cong Elliptic EC Elliptic Curve Discrete Logarithm Problem Bài toán logarit rời rạc đường cong Elliptic EC Elliptic Curve Digital Signature Algorithm Thuật toán chữ ký số đường cong Elliptic C DLP DSA H IFP IoT Đường cong Elliptic Hash Hàm băm Integer Factorization Problem Bài toán phân tích thừa số nguyên tố Internet of Things M PK I Bản tin liệu Public Key Infrastructure Hạ tầng khóa cơng khai RS Rivest Shamir Adleman SH Secure Hash Algorithm A Thuật toán băm bảo mật A IB E PK Indetity based encryption Mã hóa hệ mật định danh Private key generator Khóa bí mật G DANH MỤC HÌNH 1.1 Quy trình tạo chữ ký số 1.2 Quy trình xác thực chữ ký số 1.3 Ký số tập thể không phân biệt trách nhiệm 16 1.4 Ký số tập thể có phân biệt trách nhiệm .17 2.1 Phép cộng đường cong Elliptic 30 2.2 Ví dụ tính chất kết hợp đường cong Elliptic 33 3.1 Mã hóa với hệ thống IBE 40 3.2 Giải mã với hệ thống IBE 41 3.3 Giao diện phần mềm Netbeans IDE 8.1 48 3.4 Giao diện chương trình .55 DANH MỤC BẢNG 3.1 So sánh tính chất IBE hệ thống khóa cơng khai truyền thống 42 3.2 Bốn thuật toán lược đồ IBE 42 3.3 Khả áp dụng cơng nghệ mã hố khác việc đạt mục tiêu an ninh thông tin .43 DANH MỤC CÁC KÝ HIỆU TỐN HỌC KÍ HIỆU Ý NGHĨA Các điểm đường cong Elliptic trường hữu hạn (gồm điểm ∞) Trường số hữu hạn gồm q phần tử với q số nguyên tố Trường số hữu hạn gồm phần tử Ước số chung lớn a b Khóa bí mật đối tượng ký Khóa cơng khai đối tượng ký Tập hợp số nguyên {0,1, …, q-1} Ký hiệu chuỗi bit có độ dài MỞ ĐẦU Lý chọn đề tài Hiện hầu hết quốc gia, tổ chức giới ứng dụng mơ hình Chính phủ điện tử Thương mại điện tử để tận dụng ưu điểm dịch vụ nâng cao lực cạnh tranh, lực phục vụ cơng dân đồng thời bảo đảm tính an tồn, xác thực dịch vụ Chính phủ Việt Nam triển khai chữ ký số số lĩnh vực ngày phát triển Tuy nhiên việc ứng dụng chữ ký điện tử giới hạn dịch vụ công cộng chứng thực số cho khai báo thuế, chứng thực số cho cổng thông tin Trước phát triển, yêu cầu thực tiễn xã hội tình hình giới, chiến lược Bộ Thông tin truyền thông định hướng đến năm 2020 cần đẩy mạnh phát triển dịch vụ Internet, thương mại điện tử, dịch vụ phục vụ Chính phủ điện tử Mật mã khóa cơng khai công nghệ cho phép người dùng trao đổi thông tin bảo mật qua mạng công cộng không bảo mật, xác nhận danh tính người dùng qua chữ ký số Ngày nay, giao dịch điện tử ngày trở nên phổ biến nhiều lĩnh vực như: giao dịch ngân hàng, mua bán trực tuyến,… Tuy nhiên nguy an toàn gây hậu nghiêm trọng dịch vụ lớn Chữ ký số nhanh chóng có mặt khắp nơi nhiều khía cạnh đời sống “điện tử” Chúng sử dụng để đảm bảo an toàn cho dịch vụ cần: tính bảo mật, tính xác thực, tính tồn vẹn liệu tính khơng chối bỏ trách nhiệm thực thể với thơng tin truyền Chữ ký số không sử dụng người, hay tổ chức mà tích hợp vào hàng tỉ thiết bị dạng Internet of Things (IoT) chúng cần liên lạc xác thực thông tin trao đổi thực thể Khơng có chữ ký số, việc giả mạo thơng tin định tuyến, thông tin quyền truy cập… cho hệ thống điện tử trở nên dễ dàng hết hacker thời đại bùng nổ IoT Do nhu cầu người dịch vụ ngày phát triển, việc trao đổi thông tin không cá nhân với nhau, mà nhóm người hay tổ chức khác Các ứng dụng thực tiễn chữ ký số phương pháp bảo mật, nâng cao hiệu chưa tính thời Xuất phát từ thực tế đó, Học viên chọn đề tài “Nghiên cứu lược đồ chữ ký số tập thể hệ mật ID-Based” (1) Với văn m ∈{0,1}∗, người ký chọn ngẫu nhiên x ∈ (2) Tính giá trị: Vs = xP, H = H2(m) Ws = HSID + xPpub (3) Chữ ký người ủy nhiệm σ = (Ws,Vs) - Xác thực chữ ký người ủy nhiệm (1) Với văn m’ chữ ký σ = (Ws,Vs) nhận được, người xác thực tính: H' = H2(m’) QID = H1(ID) (2) Chấp nhận chữ ký điều kiện sau thỏa mãn: e(Ws,P) = e(H’QID + Vs,Ppub) (3.1) - Sinh khóa cho người ủy nhiệm Trong giai đoạn người ủy nhiệm trao đổi với người ủy nhiệm với quyền ủy nhiệm Để làm việc người ủy nhiệm tạo văn bảo đảm w, văn kèm theo số thông tin văn bản, hạn chế văn ủy nhiệm, thời gian định danh người ủy nhiệm (1) Ủy nhiệm: Người cần ủy nhiệm chọn ngẫu nhiên t ∈ tính: V = tP, h = H2(w), W = hSID + tPpub ∈ G1 Chuyển giá trị (W,V,w) với thành viên qua kênh truyền bí mật (2) Kiểm tra ủy nhiệm: thành viên tính h = H 2(w) kiểm tra điều kiện sau (nếu khơng thỏa mãn phải yêu cầu gửi lại hoặc\ hủy giao thức): e(W,P) = e(hQID + V,Ppub) (3) Sinh khóa ủy nhiệm: thành viên tính h = H 2(w) tính khóa bí mật ủy nhiệm: =W+ 44 - Sinh chữ ký ủy nhiệm Trong pha có người phụ trách có nhiệm vụ tập hợp hết tất chữ ký thành phần (1) Mỗi thành viên chọn ngẫu nhiên số xi ∈ (2) Tính giá trị: h3 = H3(m,w) = xiP gửi giá trị đến (n−1) thành viên lại (3) Các thành viên tính gửi : = h3 + xiPpub (4) Người phụ trách sau có chữ ký thành phần tạo khóa cơng khai ủy nhiệm: = h(QID + ) + V (3.2) Và sau kiểm tra điều kiện: e(P,) = e(Ppub, h’ + ) (3.3) - Xác thực chữ ký ủy nhiệm Người xác thực chữ ký ủy nhiệm sau nhận văn m chữ ký (σp,V,w,Up) tiến hành bước sau: (1) Kiểm tra m0 bảo đảm w có thỏa mãn điều kiện liên quan hay không (2) Kiểm tra xem n người ký có người ủy quyền ủy nhiệm hay khơng Nếu khơng dừng từ chối chữ ký (3) Tính giá trị: h = H2(w) = H3(m’,w) (4) Kiểm tra điều kiện sau chấp nhận chữ ký, ngược lại từ chối: 45 e(P,σp) = e(Ppub,Qpk + Up) (3.4) - Chứng minh e(P,σp) = e(Ppub,Qpk + Up) Biểu thức cuối = 3.2.3 Nghiên cứu thực nghiệm lược đồ chữ ký số tập thể hệ mật IDBased - Chương trình thực nghiệm chữ ký số tập thể hệ mật ID-Based xây dựng ngơn ngữ lập trình Python - Cài đặt, sử dụng phần mềm Netbeans IDE 8.1 máy tính để thực nghiệm chương trình 46 Hình 3.3 Giao diện phần mềm Netbeans IDE 8.1 - Thêm plugins để chạy code Python Vào Tool -> plugins -> downloaded -> add plugins - Cài đặt PyQT5 để lập trình giao diện cho chương trình Chương trình có sử dụng số module PyQT5 như: + QtCore: module bao gồm phần lõi không thuộc chức GUI, ví dụ dùng để làm việc với thời gian, file thư mục, loại liệu, streams, URLs, mime type, threads processes + QtGui: bao gồm class dùng cho việc lập trình giao diện (windowing system integration), event handling, 2D graphics, basic imaging, fonts text + QtWidgets: bao gồm class cho widget, ví dụ: button, hộp thoại, … sử dụng để tạo nên giao diện người dùng - Code giao diện cho chương trình: from PyQt5 import QtCore, QtGui, QtWidgets 47 class Ui_Dialog(object): def setupUi(self, Dialog): Dialog.setObjectName("Dialog") Dialog.resize(949, 582) Dialog.setAutoFillBackground(False) self.lText1 = QtWidgets.QLabel(Dialog) self.lText1.setGeometry(QtCore.QRect(280, 20, 451, 31)) font = QtGui.QFont() font.setFamily("Tahoma") font.setPointSize(14) self.lText1.setFont(font) self.lText1.setObjectName("lText1") self.pushButton = QtWidgets.QPushButton(Dialog) self.pushButton.setGeometry(QtCore.QRect(280, 440, 101, 31)) self.pushButton.setObjectName("pushButton") self.QLE_mes = QtWidgets.QLineEdit(Dialog) self.QLE_mes.setGeometry(QtCore.QRect(280, 399, 631, 31)) self.QLE_mes.setObjectName("QLE_mes") self.label = QtWidgets.QLabel(Dialog) self.label.setGeometry(QtCore.QRect(130, 400, 141, 21)) font = QtGui.QFont() font.setPointSize(12) self.label.setFont(font) self.label.setObjectName("label") self.QTE_KQ = QtWidgets.QPlainTextEdit(Dialog) self.QTE_KQ.setGeometry(QtCore.QRect(280, 490, 631, 71)) self.QTE_KQ.setObjectName("QTE_KQ") self.label_2 = QtWidgets.QLabel(Dialog) self.label_2.setGeometry(QtCore.QRect(260, 81, 21, 21)) 48 font = QtGui.QFont() font.setPointSize(12) font.setItalic(True) -def retranslateUi(self, Dialog): _translate = QtCore.QCoreApplication.translate Dialog.setWindowTitle(_translate("Dialog", "ID BASED MULTISIGNATURE")) self.lText1.setText(_translate("Dialog", "CHỮ KÝ SỐ TẬP THỂ DỰA TRÊN HỆ MẬT ID-BASED")) self.pushButton.setText(_translate("Dialog", "KÝ")) self.label.setText(_translate("Dialog", "Thông điệp cần ký:")) self.label_2.setText(_translate("Dialog", "k:")) self.label_3.setText(_translate("Dialog", "P:")) self.label_4.setText(_translate("Dialog", "ID_ủy nhiệm:")) self.label_5.setText(_translate("Dialog", "ID_người ký 1:")) self.label_6.setText(_translate("Dialog", "ID_người ký 2:")) self.label_7.setText(_translate("Dialog", "ID_người ký 3:")) self.label_8.setText(_translate("Dialog", "Chữ ký tập thể ủy nhiệm:")) if name == " main ": import sys app = QtWidgets.QApplication(sys.argv) Dialog = QtWidgets.QDialog() ui = Ui_Dialog() ui.setupUi(Dialog) Dialog.show() sys.exit(app.exec_()) // Mã nguồn dựa thuật toán chữ ký tập thể def _algo4a(t, u): 49 '''computing of $(-t^2 +u*s -t*p -p^2)^3$ The algorithm is by J.Beuchat et.al, in the paper of "Algorithms and Arithmetic Operators for Computing the $eta_T$ Pairing in Characteristic Three", algorithm in the appendix ''' c0 = f3m.cubic(t) # c0 == t^3 c1 = f3m.cubic(u) f3m.neg(c1, c1) # c1 == -u^3 m0 = f3m.mult(c0, c0) # m0 == c0^2 v0 = f3m.zero() f3m.neg(m0, v0) # v0 == -c0^2 f3m.sub(v0, c0, v0) # v0 == -c0^2 -c0 f3m._add2(v0) # v0 == -c0^2 -c0 -1 v1 = c1 v2 = f3m.one() f3m.sub(v2, c0, v2) # v2 == -c0 return [[v0, v1], [v2, f3m.zero()], [f3m.two(), f3m.zero()]] def _algo4(xp, yp, xq, yq): re = f3m._m % 12 xp = f3m._clone(xp) f3m._add1(xp) # xp == xp + b yp = f3m._clone(yp) if re == or re == 11: f3m.neg(yp, yp) # yp == -\mu*b*yp, \mu == when re==1, or 11 xq = f3m.cubic(xq) # xq == xq^3 yq = f3m.cubic(yq) # yq == yq^3 t = f3m.zero(); f3m.add(xp, xq, t) # t == xp+xq nt = f3m.zero() 50 f3m.neg(t, nt) # nt == -t nt2 = f3m.mult(t, nt) # nt2 == -t^2 v2 = f3m.mult(yp, yq) # v2 == yp*yq v1 = f3m.mult(yp, t) # v1 == yp*t if re == or re == 11: # \lambda == nyp = f3m.zero(); f3m.neg(yp, nyp) # nyp == -yp nyq = f3m.zero(); f3m.neg(yq, nyq) # nyq == -yq a1 = [[v1, nyq], [nyp, f3m.zero()], [f3m.zero(), f3m.zero()]] # a1 == \lambda*yp*t -\lambda*yq*s -\lambda*yp*p else: # \lambda == -1 f3m.neg(v1, v1) # v1 == -yp*t a1 = [[v1, yq], [yp, f3m.zero()], [f3m.zero(), f3m.zero()]] a2 = [[nt2, v2], [nt, f3m.zero()], [f3m.two(), f3m.zero()]] # a2 == -t^2 +yp*yq*s -t*p -p^2 R = f36m.mult(a1, a2) for _ in range((f3m._m - 1) // 2): R = f36m.cubic(R) xq = f3m.cubic(xq) xq = f3m.cubic(xq) f3m._add2(xq) # xq

Ngày đăng: 25/10/2019, 12:53

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