Nghiên cứu giải pháp xây dựng và phát triển chữ ký số dùng trong các cơ quan tỉnh thái nguyên

69 6 0
Nghiên cứu giải pháp xây dựng và phát triển chữ ký số dùng trong các cơ quan tỉnh thái nguyê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

i ĐẠI HỌC THÁI NGUYÊN TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN VÀ TRUYỀN THƠNG DƢƠNG THỊ HỒI THU NGHIÊN CỨU GIẢI PHÁP XÂY DỰNG VÀ PHÁT TRIỂN CHỮ KÝ SỐ DÙNG TRONG CÁC CƠ QUAN TỈNH THÁI NGUYÊN LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH 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 ii LỜI CẢM ƠN Để hoàn thành chƣơng trình cao học viết luận văn này, tơi nhận đƣợc hƣớng dẫn, giúp đỡ góp ý nhiệt tình q thầy trƣờng Đại học Công nghệ thông tin - Truyền thông, Đại học Thái Nguyên Trƣớc hết, xin chân thành cảm ơn đến q thầy trƣờng Đại học Cơng nghệ thơng tin - Truyền thông, đặc biệt thầy cô tận tình dạy bảo cho tơi suốt thời gian học tập trƣờng Tôi xin gửi lời biết ơn sâu sắc đến thầy giáo TS Nguyễn Văn Tảo ngƣời dành nhiều thời gian, tâm huyết tận tình giúp đỡ, hƣớng dẫn cho tơi suốt q trình nghiên cứu giúp tơi hồn thành luận văn Tơi xin bày tỏ lịng biết ơn tới gia đình, bạn bè ngƣời thân động viên khích lệ tinh thần giúp đỡ để tơi hồn thành luận văn Mặc dù tơi có nhiều cố gắng hoàn thiện luận văn tất nhiệt tình lực mình, nhiên khơng thể tránh khỏi thiếu sót, mong nhận đƣợc đóng góp q báu q thầy bạn Thái Nguyên, ngày 20 tháng năm 2012 Học viên Dƣơng Thị Hồi Thu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iii LỜI CAM ĐOAN Tơi xin cam đoan, tồn nội dung liên quan tới đề tài đƣợc trình bày luận văn thân tơi tự tìm hiểu nghiên cứu, dƣới hƣớng dẫn khoa học Thầy giáo TS Nguyễn Văn Tảo Các tài liệu, số liệu tham khảo đƣợc trích dẫn đầy đủ nguồn gốc Tơi xin chịu trách nhiệm lời cam đoan Học viên thực Dương Thị Hồi Thu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn iv MỤC LỤC MỞ ĐẦU 1.1 CÁC KHÁI NIỆM CƠ BẢN 1.2 MỘT SỐ KHÁI NIỆM TOÁN HỌC CƠ SỞ 1.2.1 Phép đồng dƣ 1.2.2 Hàm phi-Euler 1.2.3 Định lý Femat mở rộng 1.2.4 Định lý Trung Quốc phần dƣ 1.3 GIỚI THIỆU HỆ MÃ KHĨA CƠNG KHAI 1.4 HỆ MẬT MÃ RSA 1.4.1 Q trình tạo khóa, mã hóa giải mã 1.4.2 Độ an toàn hệ RSA 1.5 HỆ MẬT MÃ ELGAMAL 10 1.5.1 Quá trình tạo khóa, mã hóa, giải mã 11 1.5.2 Độ an toàn mật mã ElGamal: 12 CHƢƠNG - CHỮ KÝ SỐ 13 2.1 GIỚI THIỆU CHUNG VỀ CHỮ KÝ SỐ 13 2.1.1 Khái niệm chữ ký số: 13 2.1.2 Các ƣu điểm chữ ký số: 13 2.1.3 Phân loại chữ ký số: 15 2.1.4 Sơ đồ tổng quan hệ thống chữ ký số 16 2.2 CHỮ KÝ SỐ VÀ HÀM BĂM 17 2.2.1 Khái niệm hàm băm: 17 2.2.2 Hàm băm MD5 (Message-Digest algorithm 5) 17 2.3 CHỮ KÝ SỐ DÙNG MẬT MÃ KHĨA CƠNG KHAI 20 2.3.1 Sơ đồ chữ ký số RSA 20 2.3.2 Sơ đồ chữ ký ElGamal 22 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn v 2.3.3 Chuẩn chữ ký số 25 2.4 XÁC THỰC VÀ CÁC PHƢƠNG PHÁP XÁC THỰC 28 2.4.1 Vấn đề xác thực: 28 2.4.2 Các phƣơng pháp xác thực: 29 2.5 TRIỂN KHAI CHỮ KÝ SỐ TRONG THỰC TẾ 31 CHƢƠNG ỨNG DỤNG MÃ HÓA VÀ CHỮ KÝ SỐ TRONG TRAO ĐỔI VĂN BẢN 35 3.1 MÔ HÌNH HỆ THỐNG 35 3.2 XÂY DỰNG CÁC MÔĐUN 36 3.2.1 Tạo khóa: 36 3.2.2 Mã hóa tạo chữ ký cho file tài liệu: 37 3.2.3 Giải mã xác thực chữ ký: 39 3.3 GIAO DIỆN MỘT SỐ CHỨC NĂNG CHÍNH CỦA CHƢƠNG TRÌNH 41 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn vi DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT CA: Certificate Authority FIPS: Federal information Processing Standard MAC: Message Digest NIST: National Institute Of Standards Anh Technology RSA: Rivest, Shamir, Adleman Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn vii DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ Hình 1.1 : Mơ hình mật mã khóa cơng khai Hình 2.1: Hàm MAC Hình 3.1: Sơ đồ q trình tạo khóa Hình 3.2 : Sơ đồ trình ký mã hóa file liệu Hình 3.3: Sơ đồ q trình xác thực chữ ký giải mã file liệu Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn MỞ ĐẦU Trong phát triển xã hội lồi ngƣời, kể từ có trao đổi thơng tin, an tồn thơng tin trở thành nhu cầu gắn liền với nhƣ hình với bóng Đặc biệt thời đại mà thƣơng mại điện tử lên ngơi việc có đƣợc cơng cụ đầy đủ để đảm bảo cho an toàn trao đổi thông tin liên lạc vô cần thiết Chính mà chữ ký số đời với nhiều tính ƣu việt, chữ ký số giải vấn đề toàn vẹn liệu chứng chống chối bỏ trách nhiệm nội dung ký, giúp cho doanh nghiệp, tổ chức cá nhân yên tâm với giao dịch điện tử mơi trƣờng internet Việc ứng dụng chữ ký số đem lại cho doanh nghiệp, tổ chức nhiều lợi ích nhƣ: Tiết kiệm chi phí giấy tờ, thời gian luân chuyển hoạt động quản lý công văn, giấy tờ, thƣ điện tử; giúp thúc đẩy nhanh giao dịch qua mạng đảm bảo độ an tồn bảo mật thơng tin Ngày nay, chữ ký số đóng vai trị quan trọng kế hoạch phát triển Thƣơng mại điện tử Chính phủ điện tử nƣớc ta Tại tỉnh Thái Nguyên việc áp dụng chữ ký số giao dịch điện tử, dịch vụ hành cơng chƣa đƣợc triển khai thực cịn gặp nhiều khó khăn, đặc biệt việc việc xây dựng sở hạ tầng để phù hợp với tình hình thực tế tỉnh Với mục đích nghiên cứu, tìm hiểu vận dụng kiến thức học đƣợc chƣơng trình cao học để giải số vấn đề thực tiễn, chọn đề tài "Nghiên cứu giải pháp xây dựng phát triển chữ ký số dùng quan tỉnh Thái Nguyên" Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn CHƢƠNG –HỆ MẬT MÃ KHỐ CƠNG KHAI 1.1 CÁC KHÁI NIỆM CƠ BẢN *Khái niệm chung mật mã Hệ mật mã đại thƣờng gồm thành phần (P,C, K, E, D) đó: P: tập hợp hữu hạn rõ C: tập hợp hữu hạn mã K: tập hợp khóa E: tập hợp qui tắc mã hóa D: tập hợp ác qui tắc giải mã Nội dung cần mã hóa thể dƣới dạng rõ (P) Ngƣời sử dụng qui tắc (E) khóa (K) mã hóa rõ (P), kết thu đƣợc gọi mã (EK(P) = C) Bản mã đƣợc gửi đƣờng truyền tới ngƣời nhận, sau nhận đƣợc mã (C) ngƣời nhận sử dụng qui tắc (D) khóa (K) giải mã để biết đƣợc nội dung thơng điệp gốc (DK(C) = P) *Hàm chiều: Cho tập hữu hạn S T Hàm chiều: f : S→T hàm khả nghịch thỏa: f dễ thực hiện, nghĩa cho x  S, dễ dàng tính đƣợc y = f(x) f-1, hàm ngƣợc f, khó thực nghĩa cho y  T, khó tính đƣợc x = f-1(y) f-1 dễ tính đƣợc có thêm số thơng tin - Một số ví dụ hàm chiều + Ví dụ 1: f: pq →n, hàm chiều với p q số nguyên tố lớn Thực vậy, ta dễ thực phép nhân p*q (độ phức tạp đa thức); nhƣng tính f-1 lại tốn cực khó (đây tốn tiếng phân tích thừa số nguyên tố - độ phức tạp mũ) Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn + Ví dụ 2: fg.N: x→ gx mod N hàm chiều Thực vậy, phép tính gx mod N có độ phức tạp đa thức; nhƣng tính f-1 lại tốn cực khó (đây tốn tiếng: Bài tốn logarithm rời rạc) + Ví dụ 3: fk,N: x → xk mod N hàm chiều, với N = p*q , p q số nguyên tố lớn, kk‟ ≡ 1( mod Φ(N)) Thực vậy, phép tính xk mod N có độ phức tạp đa thức, nhƣng tính f-1 lại cực khó Tuy nhiên, biết k‟ dễ dàng tính đƣợc f từ cơng thức (xk)k‟= x [3] 1.2 MỘT SỐ KHÁI NIỆM TOÁN HỌC CƠ SỞ 1.2.1 Phép đồng dƣ - Định nghĩa: Cho a b số nguyên, a đƣợc gọi đồng dƣ với b theo modulo n, ký hiệu a ≡ b (mod n) số dƣ tìm đƣợc cho phép chia a b cho n Số nguyên n đƣợc gọi modulo đồng dƣ - Một số tính chất phép đồng dƣ:  a ≡ a (mod n)  Nếu a ≡ b (mod n) b ≡ a (mod n)  Nếu a ≡ b (mod n) b ≡ c (mod n) a ≡ c (mod n)  Nếu a ≡ b (mod n), c ≡ d (mod n) a ± c ≡ b ± d (mod n), a.c ≡ b.d (mod n) Nhƣ vậy, ta có khái niệm lớp tƣơng đƣơng nhƣ sau: Lớp tƣơng đƣơng số nguyên a tập hợp số nguyên đồng dƣ với a theo modulo n Theo tính chất 1,2,3 ta thấy: cho n cố định, số đồng dƣ theo modulo n không gian Z đƣợc xếp vào lớp đƣơng đƣơng 1.2.2 Hàm phi-Euler Định nghĩa: Cho n ≥1, đặt Φ(n) tập số nguyên khoảng [1,n] nguyên tố với n Hàm  nhƣ đƣợc gọi hàm phi Euler Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 48 *Gửi văn (Gửi tệp): Thực gửi văn cách: file liệu đƣợc ký mã hóa có tên filesing.sig thƣ mục \pc2\bin\debug, chọn send, chƣơng trình mặc gửi đến địa đƣợc mặc định trƣớc Giao hình thực gửi file liệu ký mã hóa Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 49 *Gải mã (Giải khóa): Tiến hành giải mã xác thực chữ ký số Ngƣời sử dụng chọn khóa cơng khai ngƣời gửi để xác minh chữ ký chọn khóa bí mật để giải mã file liệu nhận đƣợc, chọn Giải khóa, chọn file liệu cần giải mã xác minh chữ ký, chƣơng trình thơng báo kết sau thực Giao diện hình thực chức giải mã xác minh chữ ký Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 50 KẾT LUẬN Ngày phát triển không ngừng công nghệ số dẫn đến việc giao dịch điện tử ngày trở nên phổ biến Chữ ký số đƣợc sử dụng để đảm bảo tính pháp lý tài liệu môi trƣờng điện tử, làm cho có giá trị nhƣ chữ ký giấy tờ, văn Trong tƣơng lai chữ ký số đƣợc sử dụng với ứng dụng liên quan tới phủ điện tử, để làm việc quan nhà nƣớc thông qua mạng máy tính Đối với luận văn này, có đóng góp khiêm tốn vào q trình sử dụng chữ ký số quan đơn vị Kết đạt đƣợc luận văn Luận văn đề cập cách hệ thống kiến thức nhƣ khái niệm mật mã với khóa cơng khai, đại diện hệ mật mã RSA hệ mật mã Elgamal Ứng dụng hệ mã việc xây dựng lƣợc đồ chữ ký số, lƣợc đồ chữ ký RSA đƣợc lựa chọn cài đặt ứng dụng có nhiều ƣu điểm đƣợc ứng dụng rộng rãi Khái niệm hàm băm thuật toán băm MD5 đƣợc đề cập sâu phân tích rõ thuật tốn việc ứng dụng để tạo chữ ký số Trên sở tìm hiểu tập hợp cách có hệ thống sở lý thuyết liên quan, từ làm sở cho việc xây dựng chƣơng trình ứng dụng mang tính chất thử nghiệm, nhằm minh họa cho việc ký xác thực chữ ký số ứng dụng trao đổi văn quan hành Chƣơng trình phần mền thực đƣợc chức năng: tạo cặp khố cơng khai khóa bí mật, mã hóa ký vào file liệu, gửi file liệu đến địa khác mạng, internet…, chƣơng trình cho phép xác thực chữ ký file liệu nhận đƣợc thông qua ngƣời gửi biết trƣớc Về bản, hệ thống ứng dụng đƣợc thử nghiệm cho thấy khả sử dụng đáp dứng nhu cầu thực tế cá nhân, quan, đơn vị việc trao đổi văn an toàn với giải pháp mã hóa ký Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 51 Hƣớng phát triển Do điều kiện khách quan, nên việc thử nghiệm thực tế hạn chế, việc thử nghiệm chƣa nhiều, chƣa thử nghiệm đƣợc độ an toàn văn trƣớc cơng q trình trao đổi Vì vậy, cần tiếp tục nghiên cứu, thử nghiệm tình xảy ra, độ an tồn thơng tin trƣớc cơng q trình trao đổi Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 52 DANH MỤC TÀI LIỆU THAM KHẢO Tiếng Việt [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, 2002 [2] Phạm Huy Điển, Hà Huy Khối, Mã hố thơng tin – sở toán học ứng dụng, Nxb Đại học Quốc gia Hà Nội, 2004 [3] Bùi Dỗn Khanh, Nguyễn Đình Thúc (2004), mã hóa thơng tin Lý thuyết ứng dụng, NXB Lao động [4] Thái Hồng Nhị, Phạm Minh Việt, An tồn thơng tin mạng máy tính, truyền tin số truyền số liệu, Nxb Khoa học Kỹ thuật, 2004 [5] Hồ Thuần (2000), Giáo trình Lý thuyết mật mã an toàn liệu, Trƣờng Đại học Bách Khoa Hà Nội [6] Ngọc Anh Thƣ, Nguyễn Tiến, Nguyễn Văn Hồi (2002), Giáo trình Thuật tốn – Lý thuyết tập, Nxb Thống kê Một số thông tin Website [7] http:// www.ietf.org/rfc/rfc1321 [8] http:// www.md5.net [9] http:// www.chukyso.net/ Tiếng Anh [10] R Rivest, A, sharmir, L Adleman, Amethod for obtaining digital signatres and public-key cryptosystems, Communication of theo ACM 21 (1978), 120 – 126 [11] E Biham, A Shamir, Differential Cryptanalysis of the Data Encryption Standard, Springer- Verlag, 1993 Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 53 PHỤ LỤC Mã nguồn số mơđun chƣơng trình Chọn số ngun tố OpenFileDialog openFileDialog1; openFileDialog1 = new OpenFileDialog(); openFileDialog1.Title = "Chose File Image"; openFileDialog1.Filter = "All files (*.*)|*.*"; if (openFileDialog1.ShowDialog() == DialogResult.OK) { string str = openFileDialog1.FileName; byte[] va = ObjRWFile.ReadBinaryData(str); string st = ""; for (int i = 0; i < va.Length; ++i) st += ((char)va[i]).ToString(); this.primes1.Text = st; // thông báo nội dung thực Program.moi.contentMessage.Text += ("Load content : Primes load from '" + str + "' to complete.\r\n"); } Tạo public key if ((this.primes1.Text != "") && (this.primes2.Text != "")) { ObjRSA moo = new ObjRSA(this.primes1.Text, this.primes2.Text); //moo.ToString(); SaveFileDialog save = new SaveFileDialog(); save.Title = "Path save file public key"; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 54 save.Filter = "All files (*.*)|*.*"; if (save.ShowDialog() == DialogResult.OK) { string str = save.FileName; try { ObjRWFile.WritePrivateKey(moo, str); MessageBox.Show("Save Complete"); Program.moi.contentMessage.Text += ("Save file : Private key save complete from '" + str + "' \r\n"); } catch (Exception) { MessageBox.Show("Error"); } } } else Program.moi.contentMessage.Text += ("Create key : Please load primes key \r\n"); Gửi liệu qua mạng class ObjServer { private const int BUFFER_SIZE = 1024*4; private const int PORT_NUMBER = 9999; static ASCIIEncoding encoding = new ASCIIEncoding(); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 55 // khoi tao server dong nghia voi viec khoi tao khong dut cac sever cho doi client public ObjServer() { Thread t1 = new Thread(Run); t1.Start(new ThamSo() { Buffer_size = BUFFER_SIZE}); } public void Run(object obj) { try { ThamSo ts = (ThamSo)obj; IPAddress address = IPAddress.Parse(Program moi richTextBox2.Text); TcpListener listener = new TcpListener(address, PORT_NUMBER); // listen listener.Start(); Socket socket = listener.AcceptSocket(); // receive byte[] data = new byte[ts.Buffer_size]; socket.Receive(data); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 56 // lay 100 byte dau tien xem co phai lenh thay doi buffer khong byte[] code = new byte["ChangeLengthBuffer:".Length]; for (int i = 0; i < "ChangeLengthBuffer:".Length; ++i) code[i] = data[i]; string lenh = encoding.GetString(code); byte []dataBuffer; string newLength="1024"; if (lenh == "ChangeLengthBuffer:") { dataBuffer = new byte[data.Length - code.Length]; for (int i = "ChangeLengthBuffer:".Length, j = 0; i < data.Length; ++i, ++j) dataBuffer[j] = data[i]; newLength = encoding.GetString(dataBuffer); } socket.Close(); listener.Stop(); if (lenh == "ChangeLengthBuffer:") { int dai=Convert.ToInt32(newLength); Program.moi.contentMessage.Text = " Processing: Getting a new file -\r\n"; byte[] fullData = new byte[dai]; Program.moi.contentMessage.Text = " Processing: File getting have size " + fullData.Length.ToString() + "byte\r\n"; int doan = 0; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 57 bool die = false; while (true) { // MessageBox.Show("nhan lan " + doan.ToString()); try { ++doan; Program.moi.contentMessage.Text += " Processing: Received part "+doan ToString () +" with "+BUFFER_SIZE.ToString ()+ "byte\r\n"; // address = IPAddress.Parse("127.0.0.2"); address = IPAddress.Parse(Program moi richTextBox2.Text); listener = new TcpListener(address, PORT_NUMBER); listener.Start(); socket = listener.AcceptSocket(); if ((dai - (doan - 1) * BUFFER_SIZE) > BUFFER_SIZE) data = new byte[BUFFER_SIZE]; else data = new byte[dai - (doan - 1) * BUFFER_SIZE]; socket.Receive(data); socket.Close(); listener.Stop(); for (int i = 0; i < data.Length; ++i) fullData[(doan - 1) * BUFFER_SIZE + i] = data[i]; if (doan * BUFFER_SIZE >= dai) break; } Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 58 catch (Exception e) { e.ToString(); Program.moi.contentMessage.Text += " Processing: Part " + doan.ToString() + " error please try again\r\n"; die = true; } if (die) break; } if (!die) { Program.moi.contentMessage.Text += " Processing: Received "+ doan.ToString ()+ " part \r\n"; Program.moi.contentMessage.Text += " Processing: Received one file :" + fullData.Length.ToString() + "Byte \r\n"; // fullData.ToString(); try { Obj.ObjRWFile.Write(Program.moi.richTextBox8.Text + "\\", fullData); Program.moi.contentMessage.Text += " Processing: Save one file :" + fullData.Length.ToString() + "Byte from '" + Program.moi.richTextBox8.Text + "'\r\n"; } catch (Exception es) { es.ToString(); Program.moi.contentMessage.Text += " Processing: Save error please try again\r\n"; } } Thread t2 = new Thread(Run); t2.Start(new ThamSo() { Buffer_size = Convert.ToInt32(BUFFER_SIZE) }); Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 59 } // tiep tuc chay mot server khac lang nghe else { Thread t2 = new Thread(Run); t2.Start(new ThamSo() { Buffer_size = Convert.ToInt32(BUFFER_SIZE) }); } } catch (Exception ex) { ex.ToString();} } } class ObjClient { private const int BUFFER_SIZE = 1024*4; private const int PORT_NUMBER = 9998; static ASCIIEncoding encoding = new ASCIIEncoding(); byte[] data; public ObjClient (string str) { try { TcpClient client = new TcpClient(); // connect Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 60 client.Connect(Program moi richTextBox3.Text, PORT_NUMBER); // client.Connect("127.0.0.1", PORT_NUMBER); Stream stream = client.GetStream(); // send byte[] data = encoding.GetBytes(str); stream.Write(data, 0, data.Length); // receive data = new byte[BUFFER_SIZE]; stream.Read(data, 0, BUFFER_SIZE); // Close stream.Close(); client.Close(); } catch (Exception ex){ex.ToString(); } } public ObjClient(byte[] da) { data = da; ThreadStart ts1 = new ThreadStart(Run); Thread tA = new Thread(ts1); tA.Start(); } public void Run() { try Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 61 { int dai = data.Length; int doan = 0; Program.moi.contentMessage.Text += " Processing: Sending one file :" + data.Length.ToString() + "Byte \r\n"; bool die = false; while (true) { try { ++doan; //MessageBox.Show("gui lan " + (doan * BUFFER_SIZE).ToString()); Program.moi.contentMessage.Text += " Processing: Sending part :" +doan.ToString ()+" with "+ BUFFER_SIZE.ToString()+ " byte \r\n"; TcpClient client = new TcpClient(); client.Connect(Program moi richTextBox3 Text , PORT_NUMBER); // client.Connect("127.0.0.1", PORT_NUMBER); Stream stream = client.GetStream(); if (doan * BUFFER_SIZE < dai) stream.Write(data, (doan - 1) * BUFFER_SIZE, BUFFER_SIZE); else stream.Write(data, (doan - 1) * BUFFER_SIZE, dai-(doan - 1) * BUFFER_SIZE); stream.Close(); client.Close(); if (doan * BUFFER_SIZE >= dai) break; Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn 62 } catch (Exception et) { et.ToString(); Program.moi.contentMessage.Text += " Processing: Send file have error , please try again \r\n"; die = true; } if (die) break; } Program.moi.contentMessage.Text += " Processing: Sending all part :" + doan.ToString() + " path with " + (doan*BUFFER_SIZE).ToString() + " byte \r\n"; } catch (Exception ex) { ex.ToString(); } } } 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 giải pháp xây dựng phát triển chữ ký số dùng quan tỉnh Thái Nguyên" Số hóa Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn CHƢƠNG –HỆ MẬT MÃ KHỐ CƠNG KHAI 1.1 CÁC KHÁI... gửi từ A Ứng dụng quan trọng tính chất để xây dựng lƣợc đồ chữ ký số Chữ ký số đƣợc phát triển dựa cơng nghệ mã hóa cơng khai, ngƣời dùng chữ ký số phải có cặp khóa, gồm khóa cơng khai (Public... đƣợc dùng để tạo chữ ký số khóa cơng khai dùng để thẩm định chữ ký số hay xác thực ngƣời tạo chữ ký số [3] 2.3.1 Sơ đồ chữ ký số RSA Dựa vào ƣu điểm hệ mã RSA, thiết lập đƣợc sơ đồ chữ ký dựa

Ngày đăng: 26/03/2021, 07:13

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

Tài liệu liên quan