(Luận văn thạc sĩ hcmute) nghiên cứu giao thức trao đổi khóa an toàn

91 4 0
(Luận văn thạc sĩ hcmute) nghiên cứu giao thức trao đổi khóa an toàn

Đ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

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH LUẬN VĂN THẠC SĨ NGUYỄN THỊ HỒNG NGHIÊN CỨU GIAO THỨC TRAO ĐỔI KHĨA AN TỒN S K C 0 9 NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 S KC 0 Tp Hồ Chí Minh, tháng năm 2014 Luan van BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT THÀNH PHỐ HỒ CHÍ MINH  LUẬN VĂN THẠC SĨ NGUYỄN THỊ HỒNG NGHIÊN CỨU GIAO THỨC TRAO ĐỔI KHĨA AN TỒN NGÀNH: KỸ THUẬT ĐIỆN TỬ - 605270 Hướng dẫn khoa học: PGS.TS PHẠM HỒNG LIÊN Tp Hồ Chí Minh, tháng năm 2014 Luan van LÝ LỊCH KHOA HỌC I LÝ LỊCH SƠ LƯỢC: Họ & tên: Nguyễn Thị Hồng Giới tính: Nữ Ngày, tháng, năm sinh: 07-01-1984 Nơi sinh: Thanh Hóa Quê quán: Thanh Hóa Dân tộc: Kinh Chỗ riêng địa liên lạc: Điện thoại quan: Điện thoại nhà riêng: Fax: E-mail:nguyenhongdl2hq@gmail.com II QUÁ TRÌNH ĐÀO TẠO: Trung học chuyên nghiệp: Hệ đào tạo: Thời gian đào tạo từ …/…… đến ……/ …… Nơi học (trường, thành phố): Ngành học: Đại học: Hệ đào tạo: Chính quy Thời gian đào tạo từ 9/2002 đến 8/2008 Nơi học (trường, thành phố): Học viện Kỹ thuật Quân sự, Hà Nội Ngành học: Điện – Điện Tử Tên đồ án, luận án môn thi tốt nghiệp: Nghiên cứu hệ thống thông tin quang Ngày & nơi bảo vệ đồ án, luận án thi tốt nghiệp: 5/2008, Học viện Kỹ thuật Quân Người hướng dẫn: Mai Thanh Hải, Học viện Kỹ thuật Qn III Q TRÌNH CƠNG TÁC CHUN MƠN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC: Thời gian 9/2008 đến Nơi công tác Trung tâm Tiêu chuẩn - Đo lường Chất lượng 2, Cục kỹ thuật Hải Quân i Luan van Công việc đảm nhiệm Kỹ sư LỜI CAM ĐOAN Tơi cam đoan cơng trình nghiên cứu Các số liệu, kết nêu luận văn trung thực chưa cơng bố cơng trình khác Tp Hồ Chí Minh, ngày ii Luan van tháng năm 2014 CẢM TẠ Tôi xin chân thành cảm ơn Cô hướng dẫn khoa học PGS.TS Phạm Hồng Liên, tận tình hướng dẫn tơi hồn thành luận văn Tơi xin chân thành cảm ơn quý Thầy cô khoa Điện-Điện Tử, Trường Đại Học Sư Phạm Kỹ Thuật Tp.HCM, tận tình giúp đỡ, hỗ trợ tơi suốt q trình thực luận văn Xin cảm ơn quý Thầy cô tham gia giảng dạy lớp cao học khóa 2011 – 2013, mang đến cho kiến thức quý báu khoa học kỹ thuật Xin cảm ơn đến đồng nghiệp hỗ trợ trình học tập hồn thành luận văn Tp Hồ Chí Minh, ngày iii Luan van tháng năm 2014 TÓM TẮT LUẬN VĂN Luận văn thực nghiên cứu số vấn đề trao đổi khóa, thuật toán mật mã liên quan đưa cải tiến giao thức trao đổi khóa an tồn sở kết hợp chữ ký số giao thức Diffie-Hellman Thực nghiên cứu cải tiến nhằm tăng tính an tồn, tăng số lượng khóa phiên Giao thức cải tiến có độ phức tạp tính tốn tương đương với giao thức Liu & Li (năm 2010) Những cải tiến đánh giá tốt, có ý nghĩa thiết thực chứng minh tương đối chặt chẽ mặt lý thuyết ABSTRACT The thesis studies some issues about key exchange, encryption algorithms involved, and provides improvements in safe key exchange protocol based on the combination of digital signatures and Diffie-Hellman protocol The thesis also studies improvements in order to increase safety and the number of session keys Improvement protocol is as complicated as the protocol of Liu & Li (2010) These improvements are evaluated to be good and have practical meanings, and are rigorously proved in theory iv Luan van MỤC LỤC Trang tựa Trang Quyết định giao đề tài Lý lịch cá nhân i Lời cam đoan ii Cảm tạ iii Tóm tắt iv Mục lục v Danh sách chữ viết tắt vii Danh sách hình viii Danh sách bảng ix Chương TỔNG QUAN 1.1 Tổng quan chung lĩnh vực nghiên cứu 1.2 Mục đích đề tài 1.3 Nhiệm vụ giới hạn đề tài 1.3.1 Nhiệm vụ đề tài 1.3.2 Giới hạn đề tài 1.4 Phương pháp nghiên cứu Chương 2.CƠ SỞ LÝ THUYẾT 2.1 An toàn bảo mật thong tin 2.2 Mật mã học 2.3 Hệ thống mã hố 2.4 Vai trị khố phương pháp bảo mật 12 2.4.1 Vai trị khố 12 2.4.2 Vấn đề an tồn khố giải pháp bảo mật 15 2.5 Một số khái niệm liên quan 17 2.6 Cơ sở toán học 19 2.6.1 Lý thuyết số 19 vi Luan van 2.6.2 Cơ đại số trừu tượng 20 2.6.3 Bài toán logarit rời rạc 23 2.7 Các thuật toán mật mã liên quan 26 2.7.1 Hệ mật Elgamal 26 2.7.2 Hàm băm 27 2.7.3 Chữ ký số 34 Chương XÂY DỰNG GIAO THỨC TRAO ĐỔI KHĨA AN TỒN 46 3.1 Phân tích số giao thức trao đổi khóa có tích hợp chữ ký số 46 3.1.1 Các yêu cầu giao thức trao đổi khóa 46 3.1.2 Giao thức trao đổi khóa Arazi 47 3.1.3 Những phát triển Lein Harn 49 3.1.4 Giao thức trao đổi khóa Phan 51 3.1.5 Giao thức trao đổi khóa Jie Liu Jianhua Li 54 3.1.6 Đánh giá hướng cải tiến 56 3.2 Xây dựng giao thức trao đổi khóa 58 3.2.1 Đặt tốn 58 3.2.2 Tổ chức giao thức 59 3.2.3 Nhận xét 63 3.3 Mô giao thức 67 3.3.1 Môi trường cài đặt 67 3.3.2 Giao diện chương trình 67 KẾT LUẬN VÀ KIỂN NGHỊ 71 TÀI LIỆU THAM KHẢO 72 PHỤ LỤC 74 vi Luan van DANH SÁCH CHỮ VIẾT TẮT TT Kí hiệu Giải thích ASSRDH-DSA Against session state reveal Diffie-Hellman - DSA: Giao thức cải tiến AKA Auxiliary Key Agreement: Bổ trợ thỏa thuận khóa CA Certificate authority: Trung tâm phân phối khóa CKĐT Chữ ký điện tử CKS Chữ ký số CSDL Cơ sở liệu DH Trao đổi khóa Diffie – Hellman DSA Digital signature algorithm: Giải thuật chữ ký số ECC Elliptic curve cryptography: Hệ mật đường cong elliptic 10 NIST National Institute of Standards and Technology: Viện tiêu chuẩn công nghệ quốc gia Hoa Kỳ 11 SHA Secure hash algorithm: Thuật tốn băm bí mật 12 TĐK Trao đổi khóa vii Luan van DANH SÁCH CÁC HÌNH HÌNH Trang Hình 2.1: Mơ hình chung hệ thống mật mã khóa đối xứng Hình 2.2 a) Chức bảo mật hệ mật với khóa cơng khai 11 Hình 2.2 b) Chức xác thực hệ mật với khóa cơng khai 11 Hình 2.3 Sơ đồ ký kiểm thử sử dụng hàm băm 28 Hình 3.1 Giao thức TĐK Arazi 48 Hình 3.2 Giao thức TĐK ba vịng Lein Harn 50 Hình 3.3 Giao thức TĐK ba vòng sau sửa 53 Hình 3.4 Giao thức TĐK Liu Li cải tiến 55 Hình 3.5 Giao thức TĐK ARSDH-DSA 62 Hình 3.6 Giao diện nhập khóa bí mật 67 Hình 3.7 Mơ bước giao thức 68 Hình 3.8 Mơ bước hai giao thức 68 Hình 3.9 Mơ bước ba giao thức 69 Hình 3.10 Mơ bước bốn giao thức 69 Hình 3.11 Mơ bước bốn giao thức 70 viii Luan van K AB2 = H K AB3 = H  m  ||  yB  v1 B  y  xA B xA  = H  g    g  ||  nB  = H v xB xA w1v1 ||  g  B ||  g  x xA w2 v2   An tồn chống lại lộ trạng thái khóa phiên (security against session state reveal): có nghĩa là, bí mật khóa phiên trì kẻ cơng biết giá trị bí mật ngắn hạn (v w v1, v2, w1 w2) sử dụng để tạo khóa phiên Sự an toàn bắt nguồn từ việc giá trị ngẫu nhiên ngắn hạn phiên dễ dàng bị rị rỉ so với khóa bí mật lâu dài (xA, xB) Viết lại hai phương trình tính khóa bí mật chia sẻ:   v1 +v2  xA K AB1 = H  DH1  = H  oB   = H  g    w1 +w2  xB  v1 +v2  xA K AB2 = H  DH || DH  = H  mB  ||  yB  K AB3 = H  DH || DH  = H v  y  B xA xA  = H  g   ||  nB  = H v  g   w1v1 xB xA (3.16) ||  g  B  (3.17) ||  g   (3.18) x xA w2 v2 Từ ba phương trình (3.16), (3.17) (3.18) thấy khóa phiên K AB1 , K AB2 , K AB3 hàm phụ thuộc vào giá trị bí mật ngắn hạn v1,v2, w1, w2 giá trị bí mật lâu dài g x A xB mà không phụ thuộc vào giá trị công khai yA hay yB Khi kẻ công biết giá trị v1,v2, w1, w2 khơng tính khóa phiên K AB , K AB , K AB g x A xB Vì vậy, giao thức cung cấp tính an tồn chống lại cơng lộ trạng thái khóa phiên 3.2.3.2 Độ phức tạp - Độ phức tạp tính tốn: ASSRDH-DSA có độ phức tạp tính tốn tương đương giao thức trao đổi khóa Liu & Li - Độ phức tạp khơng gian: ASSRDH-DSA có thêm phép tính giá trị DH1, DH2, DH3, DH4 giá trị trung gian để tính khóa bí mật chia sẻ làm cho độ phức tạp không gian nở (không ảnh hưởng nhiều đến tốc độ giao thức máy tính có cấu hình cao) bù lại làm cho giao 66 Luan van thức an tồn (do có hầu hết tính chất cần có giao thức thời điểm tại) 3.3 Mô giao thức 3.3.1 Môi trường cài đặt Cài đặt chương trình mơ ASSRDH-DSA: - Phần mềm sử dụng: Microsoft Visual Studio 2010 - Ngôn ngữ: C - Môi trường: hệ điều hành Windows 7, Intel(R) Core(TM) 2CPU T7400 2.16 GHz - Tốc độ xử lý máy tính: RAM 2GHz 3.3.2 Giao diện chương trình - Bên A B chọn khóa bí mật xA, xB tính khóa cơng khai yA, yB Hình 3.6 Giao diện nhập khóa bí mật - Bên A sử dụng cặp khóa dài hạn (xA, yA) tính tốn thơng số (mA, nA, oA) gửi cho B 67 Luan van Hình 3.7 Mơ bước giao thức - Bên B sử dụng cặp khóa dài hạn (xB, yB) thơng số (mA, nA, oA) nhận từ bên A để tính tốn gửi thơng số tương ứng (mB,nB,oB,sB) Hình 3.8 Mô bước hai giao thức 68 Luan van - Bên A kiểm tra chữ ký tính K AB , K AB , K AB sA sau gửi sA cho B Hình 3.9 Mô bước ba giao thức - Bên B xác thực chữ ký (rA, sA) tính K AB , K AB , K AB kết thúc phiên Hình 3.10 Mơ bước bốn giao thức 69 Luan van Hình 3.11 Mơ bước bốn giao thức 70 Luan van KẾT LUẬN VÀ KIẾN NGHỊ Kết luận Luận văn thực nghiên cứu vấn đề TĐK, trọng tâm vào TĐK an toàn sở kết hợp CKS giao thức DH Nghiên cứu đưa cải tiến nhằm mục tiêu tăng tính an tồn, tăng số lượng khóa phiên Giao thức cải tiến có độ phức tạp tính toán tương đương với giao thức Liu & Li (năm 2010) Tuy nhiên vấn đề nghiên cứu tương đối khó, địi hỏi kiến thức mã hóa toán học cao Bản thân người viết tham gia vào lĩnh vực nghiên cứu này, nên luận văn khơng tránh khỏi chỗ hạn chế Kính mong đóng góp q thầy bạn đồng nghiệp cho luận văn thân tác giả Kiến nghị Nội dung nghiên cứu luận văn phần hướng nghiên cứu công việc thực tế người viết sau nên chắn phát triển, đào sâu Tính tốn trường số khác, sử dụng mơ hình để TĐK nhóm Và mong muốn thời gian không xa giao thức sử dụng thực tế Liên quan đến khó khăn nghiên cứu áp dụng, người viết mong muốn có nguồn tài liệu phong phú hơn, điều kiện vật chất tốt tạp chí uy tín giới thường phải bắt đăng ký trả phí nên phải nhà trường nên có số tài khoản để sinh viên dùng chung Khó khăn thứ hai áp dụng thực tế, đặc thù ngành điều kiện vật chất nên nghiên cứu mật mã an ninh mạng thường triển khai thực tế, mong nhà trường tương lai có dự án giới thiệu đơn vị triển khai hỗ trợ kinh phí cho nghiên cứu lĩnh vực 71 Luan van TÀI LIỆU THAM KHẢO Tiếng Việt TS Dương Anh Đức, Ths Trần Minh Triết (2005), Mã hóa ứng dụng, Trường Đại học khoa học tự nhiên - Đại học quốc gia TP.HCM Tiếng Anh B Arazi (1993), “Integrating a key distribution procedure into the digital signature standard”, Electronics Letters, 29, (11), 966-967 Diffie & M Hellman (1976), “New Directions in Cryptography”, IEEE Trans On Info Theory, IT-22(6), 644-654 D R Stinson (1995), Cryptocraphy: theory and practice, CRC press, Nebraska & Lincoln University Enge (1999), A Elliptic Curves and their Applications to Cryptography: an Introduction, Springer J Liu and J Li (2010), “A Better Improvement on the Integrated Diffie-Hellman - DSA Key Agreement Protocol”, IEEE Communication Letters, 11, (2), 114117 K Nyberg and R Rueppel (1994), “Weaknesses in some recent key agreement protocols”, Electronics Letters, 30, (1), 26-27 L Harn, Ma Mehta, and W J Hsin (2004), “Integrating Diffie-Hellman key exchange into the digital signature algorithm (DSA)”, IEEE Communication Letters, 8, (3), 198-200 Menezes, P van Oorschot and S Vanstone (1997), Handbook of Applied Cryptography, Boca Raton, Florida: CRC Press 72 Luan van 10 R C W Phan (2005), “Fixing the integrated Diffie-Hellman DSA key exchange protocol”, IEEE Communication Letters, 9, (6), 570-572 11 R Kenneth (2000), Elementary number theory and its applications, AT & T Bell Laboratories, 4th edition, ISBN:0-201-87073-8 12 Wenbo Mao, Prentice Hall PTR (2003), Modern Cryptography: Theory and Practice River, New Jersey 07458 13 William Stallings (2005), Cryptography and Network Security Principles and Practices, Fourth Edition, Prentice Hall PTR, p 592 14 National Institute of Standards and Techonogy , FIPS 186-1, FIPS 186-2, FIPS 186-3, FIPS 186-4 73 Luan van PHỤ LỤC Hàm tính giá trị hàm băm private BigInteger H(string hash) { UTF8Encoding gbyte = new UTF8Encoding(); byte[] bytes1 = gbyte.GetBytes(hash); SHA1CryptoServiceProvider SHS = new SHA1CryptoServiceProvider(); byte[] hashBytes = SHS.ComputeHash(bytes1); BigInteger res = new BigInteger(hashBytes); return res; } Hàm tạo số nguyên tố lớn ngẫu nhiên p, q, g private void TaoPQG() { Random Rand = new Random(); //***********Khoi tao tham so P, Q, G**************** q = new BigInteger(); p = new BigInteger(); g = new BigInteger(); //***********TAO THAM SO Q**************** while (q.isProbablePrime(20) == false) { Rand = new Random(); q.genRandomBits(160, Rand);//q ngau nhien 160 bit } // //***********TAO THAM SO P**************** BigInteger temp = new BigInteger(Rand.Next(10, 10000)); Random rn = new Random(); temp.genRandomBits(320, rn); p = temp * q + 1; while (!p.isProbablePrime(20)) { rn = new Random(); temp.genRandomBits(320, rn); p = temp * q + 1; } // //***********TAO THAM SO G**************** Rand = new Random(); temp = new BigInteger(Rand.Next(10, 10000)); g = temp.modPow((p - 1) / q, p); while (g == 1) { temp = new BigInteger(Rand.Next(10, 100)); g = temp.modPow((p - 1) / q, p);//g=temp^((p-1)/q)mod p } } Hàm tính cặp khóa dài hạn (xA, yA), (xB, yB) 74 Luan van private void txtYA_Click(object sender, EventArgs e) { Random rn = new Random(); if (txtXA.Text == "") { xA = new BigInteger(rn.Next(10, 100)); xA.genRandomBits(160, rn); txtXA.Text = xA.ToString(); } xA = H(txtXA.Text); yA = g.modPow(xA, p); txtYA.Text = yA.ToHexString(); } private void txtYB_Click(object sender, EventArgs e) { Random rn = new Random(); if (txtXB.Text == "") { xB = new BigInteger(rn.Next(10, 100)); xB.genRandomBits(160, rn); txtXB.Text = xB.ToString(); } xB = H(txtXB.Text); yB = g.modPow(xB, p); txtYB.Text = yB.ToHexString(); } Hàm tạo tham số mA, nA, oA gửi cho B private void btnTao_ma_na_oa_Click(object sender, EventArgs e) { pic_buoc1.Visible = true; grbBuoc2.Visible = true; // //Lấy ngẫu nhiên hai số v1, v2 có 128 bit (đảm bảo thuộc [1, q-1] Random rd1 = new Random(14); v1 = new BigInteger(); v1.genRandomBits(128, rd1); mA = g.modPow(v1, p); // Random rd2 = new Random(74); v2 = new BigInteger(); v2.genRandomBits(128, rd2); nA = g.modPow(v2, p); // BigInteger temp = mA * nA; oA = temp.modPow(xA, p); txtMA.Text = mA.ToHexString(); txtNA.Text = nA.ToHexString(); txtOA.Text = oA.ToHexString(); } Hàm tạo tham số mB, nB, oB, sB gửi cho A 75 Luan van private void btnTao_mB_nB_oB_sB_Click(object sender, EventArgs e) { pic_buoc2.Visible = true; grbBuoc3.Visible = true; BigInteger temp = new BigInteger(); // //Tính rB khác { { //Lấy ngẫu nhiên hai số w1, w2 có 128 bit (đảm bảo thuộc [1, q-1] Random rd1 = new Random(2); w1 = new BigInteger(); w1.genRandomBits(128, rd1); Random rd2 = new Random(7); w2 = new BigInteger(); w2.genRandomBits(128, rd2); // //Tính mB, nB, oB, rB mB = g.modPow(w1, p); nB = g.modPow(w2, p); temp = mB * nB; oB = temp.modPow(xB, p); // temp = ((mB * nB) % p) % q; } while (temp == 0); // (rB=temp) DH1B = oA.modPow(((w1 + w2) * xB), p); DH2B = mA.modPow(w1, p); DH3B = yA.modPow(xB, p); DH4B = nA.modPow(w2, p); rB = temp; // //Tính sB khác gửi cho A sB = (((w1 + w2).modInverse(q)) * (H(mB.ToHexString() + nB.ToHexString() + DH1B.ToHexString() + DH2B.ToHexString() + DH3B.ToHexString() + DH4B.ToHexString()) + xB * rB) % q) % q; } while (sB == // txtMB.Text = txtNB.Text = txtOB.Text = txtSB.Text = 0); mB.ToHexString(); nB.ToHexString(); oB.ToHexString(); sB.ToString(); } Hàm kiểm tra chữ ký số DSA private bool KiemTraDSA(BigInteger e_nho, BigInteger r, BigInteger s, BigInteger y) 76 Luan van { BigInteger i = s.modInverse(q); BigInteger u1 = (e_nho * i) % q; BigInteger u2 = (r * i) % q; BigInteger D_lon = (g.modPow(u1, p) * y.modPow(u2, p)) % p; BigInteger D_nho = D_lon % q; bool res = false; if (D_nho == r) res = true; return res; } Hàm kiểm tra chữ ký DSA (rB, sB) thông tin từ B private void btnKiemTra_rB_sB_Click(object sender, EventArgs e) { BigInteger rB_A_gui = new BigInteger(); rB_A_gui = ((mB * nB) % p) % q; if ((rB_A_gui >= q) || (sB >= q)) { MessageBox.Show("Thông tin nhận B.\nKết thúc giao thức"); return; } // //Kiểm tra chữ ký số DSA (rB,sB) // DH1A = oB.modPow(((v1 + v2) * xA), p); DH2A = mB.modPow(v1, p); DH3A = yB.modPow(xA, p); DH4A = nB.modPow(v2, p); BigInteger e_nho = H(mB.ToHexString() + DH1A.ToHexString() + DH2A.ToHexString() + DH3A.ToHexString() + DH4A.ToHexString()); nB.ToHexString() rB_A_gui = ((mB * nB) % p) % q; if (KiemTraDSA(e_nho, rB_A_gui, sB, yB) == true)//rB_A_gui { MessageBox.Show("Chữ ký hợp lệ!"); } else { MessageBox.Show("Chữ ký không hợp lệ"); } } Hàm tính sA gửi cho B private void btnTinh_sA_Click(object sender, EventArgs e) { pic_buoc3.Visible = true; grbBuoc4.Visible = true; //Tính KAB1, KAB2, KAB3 77 Luan van + kAB1_A = H(DH1A.ToHexString()); kAB2_A = H(DH2A.ToHexString() + DH3A.ToHexString()); kAB3_A = H(DH3A.ToHexString() + DH4A.ToHexString()); // //Tính rA khác Tính sA khác gửi cho B rA = ((mA * nA) % p) % q; sA = ((v1 + v2).modInverse(q) * (H(mA.ToHexString() + nA.ToHexString() + DH1A.ToHexString() + DH2A.ToHexString() + DH3A.ToHexString() + DH4A.ToHexString()) + xA * rA) % q) % q; txtSA.Text = sA.ToHexString(); txtKAB1_A.Text = kAB1_A.ToHexString(); txtKAB2_A.Text = kAB2_A.ToHexString(); txtKAB3_A.Text = kAB3_A.ToHexString(); } Hàm kiểm tra chữ ký DSA (rA, sA) thông tin từ A private void btnKiemTra_rA_sA_Click(object sender, EventArgs e) { BigInteger rA_B_gui = ((mA * nA) % p) % q; if ((rA_B_gui >= q) || (sA >= q)) { MessageBox.Show("Thông tin nhận A.\nKết thúc giao thức"); return; } // //Kiểm tra chữ ký số DSA (rA,sA) // BigInteger e_nho = H(mA.ToHexString() + DH1B.ToHexString() + DH2B.ToHexString() + DH3B.ToHexString() + DH4B.ToHexString()); nA.ToHexString() + if (KiemTraDSA(e_nho, rA_B_gui, sA, yA) == true)//rB_A_gui { MessageBox.Show("Chữ ký hợp lệ!"); //Tính KAB1, KAB2, KAB3 kAB1_B = H(DH1B.ToHexString()); kAB2_B = H(DH2B.ToHexString() + DH3B.ToHexString()); kAB3_B = H(DH3B.ToHexString() + DH4B.ToHexString()); // txtKAB1_B.Text = kAB1_B.ToHexString(); txtKAB2_B.Text = kAB2_B.ToHexString(); txtKAB3_B.Text = kAB3_B.ToHexString(); // MessageBox.Show("Kết thúc giao thức.\nThu khóa bí mật chia sẻ A B:\nKAB1, KAB2, KAB3"); } else { MessageBox.Show("Chữ ký không hợp lệ"); } 78 Luan van } 79 Luan van Luan van

Ngày đăng: 27/12/2023, 04:14

Tài liệu cùng người dùng

Tài liệu liên quan