1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

65 11 0

Đ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ỤC 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 RS Rivest Shamir Adleman SH Secure Hash Algorithm Hạ tầng khóa cơng khai 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 DANH MỤC BẢNG 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à cịn 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à cịn 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” với mong muốn tìm hiểu sâu nắm vững chữ ký số nói chung chữ ký số tập thể nói riêng bảo mật an tồn thơng tin Các cơng trình nghiên cứu có liên quan: Difie Hellman, năm 1976 báo “New Directions in Cryptography” [3] đề cập đến khái niệm chữ ký số nhiên hai tác giả chưa đưa lược đồ ký số thực tế Phải đến năm 1978, công bố “A Method for Obtainning Digital Signatures and Public-Key Cryptosystems” [4] R.Rivest, A Shamir, L.Adleman đưa lược đồ ký số dựa tốn khó phân tích thừa số gọi RSA lược đồ sử dụng ngày Sau có nhiều cơng trình nghiên cứu chữ ký số, nhiên phải đến năm 1988, S.Goldwasser, S.Micali R.Rivest [5] định nghĩa xác chữ ký số yêu cầu cần phải có chữ ký số Định nghĩa chữ ký số tìm thấy [7] [6] Chữ ký số đơn phần giải yêu cầu thực tiễn Tuy nhiên thực tế có nhiều tài liệu cần phải có nhiều người ký Thí dụ hợp đồng mua bán, cho thuê, đơn thư tập thể… chữ ký số đơn khơng thể giải Từ giao thức chữ ký số cho phép nhiều người ký vào tài liệu gọi chữ ký số tập thể (the digital multisignature) nghiên cứu, phát triển ứng dụng từ nhiều năm giải nhiều yêu cầu hoạt động giao dịch mạng mà chữ ký số đơn không đáp ứng Chữ ký số Việt Nam: Ở Việt Nam, chữ ký số công nhận có tính pháp lý chữ ký số tay truyền thống dấu từ năm 2005 Các chữ ký số chứng thư số đưa vào văn pháp lý luật, nghị định, thông tư Hiện nay, chữ ký số ứng dụng nhiều công ty Viettel, FPT, BKAV… Tuy nhiên, hầu hết mơ hình chữ ký số đơn sử dụng, mơ hình chữ ký số khác cịn hạn chế ngoại trừ BKAV có khả cung cấp mơ hình ký nháy Về cơng trình nghiên cứu có nhiều báo, đồ án, đề tài, xây dựng, phát triển viết chữ ký số đơn, chữ ký số mù, chữ ký số tập thể,… Trên giới, lược đồ chữ ký số tập thể xây dựng phát triển với nhiều cơng trình, báo tiếng Tại Việt Nam, chữ ký số tập trung nghiên cứu nước số chuyên gia đầu ngành GS TS Nguyễn Bình (Học viện Cơng nghệ bưu viễn thơng), PGS TS Nguyễn Hiếu Minh (Học viện Kỹ thuật Mật mã), TS Lưu Hồng Dũng (Học viện Kỹ thuật quân sự) Ngoài ra, chữ ký số cịn thu hút số nghiên cứu thơng qua luận văn thạc sĩ chữ ký số chữ ký số tập thể Mục đích nghiên cứu Mục tiêu nghiên cứu Đồ án bao gồm nghiên cứu khái niệm lược đồ chữ ký số, chữ ký số tập thể, ứng dụng chữ ký số bảo mật thông tin Trên sở nghiên cứu khái niệm chữ ký số tập thể, Học viên tập trung nghiên cứu sâu thực nghiệm lược đồ chữ ký số tập thể hệ mật ID-Based Nhiệm vụ nghiên cứu Nhiệm vụ nghiên cứu đồ án bao gồm: - Tìm hiểu hệ mật khóa cơng khai lược đồ chữ ký số - Tìm hiểu khái niệm chữ ký số tập thể lược đồ chữ ký số tập thể - Nghiên cứu thực nghiệm lược đồ chữ ký số tập thể hệ mật ID-Based Đối tượng nghiên cứu - Các hệ mật khóa công khai lược đồ chữ ký số - Chữ ký số tập thể lược đồ chữ ký số tập thể - Chữ ký số tập thể hệ mật ID-Based Phương pháp nghiên cứu Đồ án nghiên cứu dựa phương pháp: - Phương pháp nghiên cứu chuyên gia: tham khảo ý kiến giáo viên hướng dẫn thầy cô giáo khoa công nghệ thông tin - Phương pháp nghiên cứu tài liệu: tham khảo số tài liệu chuyên ngành, sách, báo khoa học công nghệ thông tin có liên quan - Phương pháp phân tích, tổng hợp 10 (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 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+ 51 - 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 cị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: 52 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 53 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: 54 from PyQt5 import QtCore, QtGui, QtWidgets 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) 55 self.label_2.setGeometry(QtCore.QRect(260, 81, 21, 21)) 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ể 56 def _algo4a(t, u): '''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 57 nt = f3m.zero() 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: 11/06/2021, 08:27

Xem thêm:

TỪ KHÓA LIÊN QUAN

w