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

(LUẬN văn THẠC sĩ) hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin

97 4 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

Thông tin cơ bản

Định dạng
Số trang 97
Dung lượng 1,54 MB

Nội dung

ĐẠI HỌC CÔNG NGHỆ ĐẠI HỌC QUỐC GIA HÀ NỘI ĐỖ THANH BÌNH HỆ MẬT RSA VÀ ỨNG DỤNG LƯỢC ĐỒ CHỮ KÝ SỐ TRONG XÁC THỰC THÔNG TIN LUẬN VĂN THS CÔNG NGHỆ THÔNG TIN Người hướng dẫn PGS.TS Đoàn văn Ba Hà Nội 2007 TIEU LUAN MOI download : skknchat@gmail.com Đỗ Thanh Bình Luận văn Thạc sĩ MỤC LỤC MỞ ĐẦU BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT CHƢƠNG – TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 1.1 Hệ mật mã cổ điển 1.1.1 Hệ thống truyền tin mật 1.1.2 Một số hệ mật mã kinh điển 1.1.3 Chuẩn mã hoá DES AES 1.2 Hệ mật khố cơng khai 11 1.2.1 Khái quát 11 1.2.2 Nguyên tắc mã hố hệ mật khố cơng khai 11 1.2.3 Một số hệ mật khố cơng khai thông dụng 12 1.3 Kết chƣơng 19 CHƢƠNG - HỆ MẬT MÃ KHỐ CƠNG KHAI RSA 21 2.1 Giới thiệu hệ mật 21 2.2 Phƣơng pháp lập mã giải mã hệ mật RSA 22 2.2.1 Thuật toán 22 2.2.2 Đặc trƣng hệ mật RSA 23 2.2.3 Các ví dụ 25 2.3 Độ an toàn hệ mật RSA 27 2.4 Quản lý khoá hệ mật mã RSA 28 2.4.1 Phân phối khố cơng khai 29 2.4.2 Sử dụng mã hố khố cơng khai để phân phối khoá mật 33 2.5 Các công hệ mật mã RSA 34 2.5.1 Tấn công q trình tạo khóa 34 2.5.2 Tấn công liên quan đến tốc độ 35 2.5.3 Tấn cơng vào q trình phân phối khố 35 2.5.4 Tấn công dựa thời gian 35 2.5.5 Tấn cơng lựa chọn thích nghi mã 36 2.6 Kết chƣơng 36 CHƢƠNG - LƢỢC ĐỒ CHỮ KÝ SỐ RSA 38 3.1 Khái niệm chữ ký số 38 3.2 Ứng dụng chữ ký số 38 TIEU LUAN MOI download : skknchat@gmail.com Đỗ Thanh Bình 3.3 Luận văn Thạc sĩ Xác thực thông điệp 39 3.3.1 Mã hoá thông điệp 40 3.3.2 Kỹ thuật xác thực dùng khoá bí mật 40 3.3.3 Các hàm băm 40 3.4 Lƣợc đồ chữ ký số dùng mật mã khố cơng khai 41 3.4.1 Hoạt động chữ ký số 41 3.4.2 Định nghĩa lƣợc đồ chữ ký số 43 3.4.3 Phân loại lƣợc đồ chữ ký số 43 3.5 Lƣợc đồ chữ ký số RSA 47 3.5.1 Thuật toán sinh khoá cho lƣợc đồ chữ ký số RSA 47 3.5.2 Thuật toán sinh chứng thực chữ ký RSA 47 3.5.3 Các ví dụ 48 3.6 Các kiểu công lƣợc đồ chữ ký số 49 3.7 Kết chƣơng 50 CHƢƠNG - CHƢƠNG TRÌNH MÃ HỐ DỮ LIỆU 53 4.1 Giới thiệu toán 53 4.2 Thiết kế chƣơng trình 55 4.2.1 Công cụ ngơn ngữ lập trình phục vụ phát triển ứng dụng 55 4.2.2 Thiết kế chức chƣơng trình 71 4.3 Xây dựng chƣơng trình 72 4.3.1 Giao diện chƣơng trình 72 4.3.2 Các hàm, thủ tục chƣơng trình 77 KẾT LUẬN 93 TÀI LIỆU THAM KHẢO 95 TIEU LUAN MOI download : skknchat@gmail.com Đỗ Thanh Bình Luận văn Thạc sĩ MỞ ĐẦU Ngày nay, với phát triển mạnh mẽ công nghệ thông tin, mạng máy tính trở thành phương tiện hữu dụng phục vụ công tác điều hành, trao đổi thông tin lĩnh vực xã hội Song song với việc ứng dụng công nghệ thông tin sống, đặc biệt việc sử dụng mạng internet mơi trường giao tiếp vấn đề an tồn thơng tin/dữ liệu q trình gửi nhận thơng qua mạng có vai trị quan trọng Trên giới có nhiều hội nghị thường niên Hiệp hội quốc tế mã mật liên tục tổ chức; hội nghị Euro Crypt Châu Âu Crypto Mỹ thu hút quan tâm toàn giới chuyên gia an ninh thơng tin Các cơng nghệ mã hố (mã mật) đại không bảo mật công nghệ mã hố (thuật tốn mã hố cơng khai), mà dựa vào bí mật chìa khố giải mã (giải mã mật) Một hệ đáp ứng đầy đủ yêu cầu bảo mật thông tin, phù hợp với xu hướng trao đổi thơng tin qua mạng máy tính Năm 1976, ý tưởng hệ mật khố cơng khai Diffie Hellman đưa ra, sau Rivest, Shamir Adleman đưa hệ mật tiếng RSA vào 1977 Tiếp đời số hệ mật dựa thuật toán khác như: hệ mật xếp ba lô MarkleHellman, hệ mật McElice, hệ mật Elgamal, hệ mật Chor-Rivest; hệ mật đường cong Elliptic,… Trong hệ mật khố cơng khai trên, có hệ mật RSA hệ mật mã xây dựng (ra đời năm 1977 MIT) RSA liệt vào giải thuật mã hóa bất đối xứng dùng thông dụng ngày hôm nay, RSA đặt tên từ ba nhà khoa học phát minh nó: Ron Rivest, Adi Shamir, Leonard Adleman Nó dùng hàng ngày giao dịch thương mại điện tử, dùng cho chữ ký số đảm bảo tính tồn vẹn thông điệp lưu chuyển Internet Luận văn với đề tài “Hệ mật RSA ứng dụng lược đồ chữ ký số xác thực thông tin” tập trung nghiên cứu ứng dụng phương pháp bảo mật liệu có tính an toàn cao Luận văn tập trung tìm hiểu sở tốn học lý thuyết mật mã, thuật toán độ phức tạp hệ mật mã khố cơng khai RSA, vấn đề chứng thực thơng qua lược đồ chữ ký RSA Ngồi luận văn trình bày xây dựng ứng dụng mã hoá liệu phục vụ truyền tin an tồn Kết cấu luận văn trình bày bao gồm nội dung sau đây: Chương I: Tổng quan hệ mật mã Giới thiệu mơ hình số hệ mật mã ứng dụng hệ mã dịch vịng, mã thay thế, hốn vị, hệ mật mã RSA, v.v Chương II: Hệ mật khố cơng khai RSA TIEU LUAN MOI download : skknchat@gmail.com Đỗ Thanh Bình Luận văn Thạc sĩ Nghiên cứu vấn đề liên quan đến hệ mật mã khố cơng khai RSA; phương pháp lập mã giải mã; đặc điểm độ an toàn hệ mật; vấn đề quản lý khoá, phân phối khoá Chương III: Lược đồ chữ ký số RSA Giới thiệu chữ ký số RSA, ứng dụng chữ ký số việc xác thực liệu; lược đồ chữ ký số; v.v Chương IV: Chương trình mã hố liệu Ứng dụng sở lý thuyết nghiên cứu để xây dựng chương trình mã hố ứng dụng kỹ thuật mã khố bí mật, mã khố cơng khai lược đồ chữ ký số TIEU LUAN MOI download : skknchat@gmail.com Đỗ Thanh Bình Luận văn Thạc sĩ BẢNG THUẬT NGỮ VÀ CÁC TỪ VIẾT TẮT  Các từ viết tắt AES Advance Encryption Standard Chuẩn mã hoá cao cấp khoá đối xứng CA Certificate Authority Nhà cung cấp chứng thực số DEA Data Encryption Algorithm Thuật toán mật mã liệu DES Data Encryption Standard Chuẩn mã hoá liệu khoá đối xứng IDEA International Data Encryption Algorithm Thuật toán mật mã liệu quốc tế MAC Message Authentication Code Mã xác thực thông điệp MD5 Message Digest algorithm Thuật tốn tạo dấu vết thơng điệp thiết kế Ronald Rivest năm 1991 MIT Massachusets Institude of Technology Học viện công nghệ Massachusets PKCS Public Key Cryptography Standard Chuẩn mật mã khố cơng khai phịng thí nghiệm RSA Data Security Inc phát triển PKI Public Key Infrastructure Cơ sở hạ tầng khố cơng khai SHA Secure Hash Algorithm Thuật toán “băm”, thiết kế National Security Agency (NSA)  Các ký hiệu C Ciphertext Bản mã D Hàm giải mã Decrytion Khoá riêng CA dauth E Encrytion Hàm mã hố Khố cơng khai CA eauth k Key Khố mã P Plantext Bản rõ (thơng điệp gốc) Zn Tập hợp {0,1,…,n-1} Vành số nguyên modulo n  Từ khoá Chữ ký số, chứng số, dấu vết thơng điệp, hệ mã bí mật, hệ mã khố cơng khai, khố cơng khai, khố riêng, khố bí mật, lược đồ chữ ký số, lược đồ mã hoá khố cơng khai, thuật tốn sinh chữ ký số, thuật toán chứng thực chữ ký số TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ CHƢƠNG – TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 1.1 Hệ mật mã cổ điển 1.1.1 Hệ thống truyền tin mật Nhiệm vụ mã mật tạo khả liên lạc kênh công cộng (công khai) hai người sử dụng cho người thám mã giữa, giả thiết thu đầy đủ thông tin kênh, mà hiểu nội dung rõ truyền Thơng tin người gửi có cấu trúc tuỳ ý; người gửi mã hoá tin rõ khoá xác định trước gửi mã tới người nhận qua kênh công cộng Người nhận nhờ có khố mật kD nên dễ dàng giải mã để nhận rõ Hình H1.1 đồ khối chức hệ thống thông tin mật theo nguyên tắc vừa mô tả Bản rõ Nguồn tin Bản rõ Kênh truyền Bộ mã hoá Bộ giải mã Nhận tin Bản mã (Người gửi) KE KD (Người nhận) Thám mã (Người thám mã) Kênh an toàn (truyền khoá) Nguồn khoá H1.1: Sơ đồ khối hệ thống truyền tin mật Theo quan điểm toán học ta định nghĩa hệ mật sau: Định nghĩa 1.1: Một hệ mật gồm tham số (R, M, K, E, D) thoả mãn điều kiện sau: 1) R tập hữu hạn rõ 2) M tập hữu hạn mã 3) K (khơng gian khố) tập hữu hạn khố 4) Đối với k K có quy tắc giải mã ek: P  C quy tắc giải mã tương ứng dk  D Mỗi ek: R  M dk: M  R hàm mã: dk(ek(x)) = x với rõ x  R (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ Như vậy, theo định nghĩa trên, rõ x mã hoá ek mã nhận giải mã dk ta thu rõ ban đầu x Người giải người nhận áp dụng thủ tục sau cho hệ mật khoá riêng: Trước tiên, họ chọn khoá ngẫu nhiên k  K; người giải muốn gửi tin (cần bảo mật) cho người nhận kênh công khai ta xem tin chuỗi: x = x1, x2, …, xn Với n số nguyên lớn hay đơn vị (n  1); xi  R, 1 i  n; xi mã hoá quy tắc mã ek với khố k xác định trước Do người gửi tính: yi = ek(xi), 1 i  n Và chuỗi mã nhận được: y = y1 y2…yn gửi lên kênh đến người nhận Khi nhận y = y1 y2…yn, người nhận giải mã dk nhận rõ x = x1 x2…xn Rõ ràng, hàm mã hoá ek phải hàm đơn ánh (ánh xạ - 1), không việc giải mã không thực cách tường minh Ví dụ x1 ≠ x2 y = ek(x1) = ek(x2) người nhận có cách để xác nhận đâu rõ đúng, khó giải mã cho hai nghiệm x1, x2 Chú ý rằng, R = M hàm mã hoá phép hoán vị, nghĩa tập mã rõ đồng nhất, hàm mã xếp lại (hoán vị lại) phần tử tập Hệ mật kinh điển (hay gọi cổ điển) hệ mật khố bí mật (secret key cryptosystem - SKR) hay gọi hệ mật đối xứng (symmetric cryptosystem), hệ mật mà khoá mã giải mã dùng chung khố bí mật (secret key) Có ba phương pháp mã mật cổ điển là: hoán vị, thay hỗn hợp 1.1.2 Một số hệ mật mã kinh điển a) Mã dịch vòng Hệ mật xây dựng dựa số học modulo Ký hiệu m số chữ chữ xây dựng rõ R Ma dịch vòng định nghĩa sau: Theo định nghĩa 1.1, cho R = M = K = Zn với  k  (m - 1) x, y  Zm; Zm không gian chữ cái, ta định nghĩa: ek(x) = (x + k) mod m dk(x) = (y - k) mod m Các hệ mã mật đại thực chất cải tiến mã dịch vòng Đối với mã hố văn tiếng Anh thơng thường thiết lập tương ứng chữ với số theo modulo 26 Với k = 3, ta có hệ mật Ceasar Ceasar chuyển thơng báo mật cách định nghĩa chữ tương ứng với số sau chuyển văn thành dạng chữ số cộng thêm vào chữ số nhận rút gọn tổng theo modulo 26; làm phép biến đổi từ chữ số dạng chữ viết Như hồn thành q trình (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ mã hố Q trình giải mã tiến hành ngược lại nhờ tương ứng chữ số Trong tiếng Anh với 26 chữ cái, ta mơ hình hố cơng thức mã Ceasar sau: M = (R + 3) mod 26 (1) Số (1) gọi chìa khố mã Caesar Ta dẫn đến quan hệ tổng quát cho lập giải mã từ (1): M = (R + k) mod 26 Chìa khố phép mã k, với k số tuỳ ý 26 Tính bảo mật hệ mã dịch vịng nói chung, hay mã Ceasar khơng cao, thám mã dùng phương pháp vét cạn để tìm khố để xác định rõ, điều rút ngắn thực phép tìm khố theo cách vét cạn từ hai phía b) Mã thay Mã thay chất xem phép mã hoá giải mã hoán vị ký tự định nghĩa sau Theo định nghĩa 1.1, cho R = M = Z26, k chứa hốn vị m ký hiệu Với phép hoán vị   K, ta định nghĩa: e(x) = (x) d(y) = -1(y), -1 hoán vị ngược  Về mã này, với văn tiếng Anh cần mã hoá, khoá mã thay 26 hốn vị Do vậy, áp dụng phương pháp tìm khố phương pháp vét cạn khó khăn Mã thay dễ dàng bị thám phương pháp thống kê Các mã dịch vòng mã thay gọi chung hệ thay đơn biểu Về chất hai loại xoay quanh phép thay c) Mã hoán vị Ý tưởng mã hốn vị thay đổi vị trí ký tự rõ Mã hoán vị định nghĩa sau: Cho m số nguyên dương xác định Theo định nghĩa 1.1, cho R = M = (Z26)m k gồm tất hoán vị  {1, …, m} Đối với khoá  (tức hoán vị) ta xác định: e(x1, …, xm) = (x(1),… , x(m)) và: y   , , y    1 d (y1,… , ym) =  1  m d) Các hệ mã dòng Trong hệ mã trên, phần từ liên tiếp rõ mã hoá khố k, nghĩa mã y nhận có dạng: y = y1 y2… = ek(x1) ek(x2) (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ Các hệ mật thuộc dạng thường gọi mã khoá Theo cách nhìn nhận khác, người ta xây dựng hệ mã dòng Bản chất mã tạo dịng khố z = z1 z2 z3… dùng để mã hoá xâu rõ x = x1 x2 x3… theo quy tắc y= y1 y2…=ez1(x1)ez2(x2) Về mặt tốn học mã dịng định nghĩa sau: Định nghĩa 1.2: Mã mật (mã hố) dịng (R, M, K, L, F, E, D) thoả mãn điều kiện sau: 1) R tập hữu hạn rõ 2) M tập hữu hạn mã 3) K tập hữu hạn khố (khơng gian khố) 4) L tập hữu hạn chữ dịng khố 5) F = (f1 f2…) tạo dịng khố fi: K x R-1  L; i  6) Với z  L có quy tắc mã e z  E quy tắc giải mã tương ứng dz  D thoả mã dz(ez(x)) = x với rõ xP Như vậy, ta coi hệ mã khối trường hợp đặc biệt mã dịng dùng khố khơng đổi zi = K, với i  1.1.3 Chuẩn mã hoá DES AES Từ mã khối sang mã dòng bước nâng cao tính bảo mật, nhiên với khả thám mã đại khơng an tồn, người ta tiếp tục nghiên cứu phát triển Tiêu biểu cho kết nghiên cứu chuẩn mã liệu DES tiếp đến chuẩn AES a) Chuẩn mã DES DES tên thông thường FIPS46-3 (Fedderal Information Proccessing Standard) DES mơ tả thuật tốn mã hố liệu DEA (Data Encryption Algorithm) DEA định nghĩa chuẩn X3.92 (ANSI Standard X3.92) DES thuật toán dùng rộng rãi giới DES phát triển IBM năm 70 kỷ trước chấp nhận NIST (National Institute of Standards and Technology) cho ứng dụng thương mại DES bị hạn chế độ an toàn bị giảm chiều dài khố cịn 56 bit thay 128 bit thiết kế DES công bố thuật nguyên lý thiêt kế chưa công bố DES dùng rộng rãi Mỹ nhiều nước lĩnh vực thương mại, không dùng để bảo mật thơng tin phủ Năm 1999, nhóm chuyên gia kết hợp gần 100.000 máy PC họ giải mã tin mã hoá DES 22 15 phút (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ 82 'attach certificate file Certfile = ProcessFileName(txtFile(0).Text, Encrypt_Dir, "cer") If Dir(Certfile) "" Then f.DeleteFile Certfile End If f.CopyFile CertA_File, Certfile ChangePath_AddExtention, ProgressBar1.Value = 100 If MsgBox("Q trình mã hố tệp liệu '" & ProcessFileName(txtFile(0).Text, GetFileName) & "' hoàn tất." & Chr(13) & Chr(13) _ & "Các thơng tin mã hố lưu thư mục '" & Encrypt_Dir & "' gồm có:" & Chr(13) _ & "- Dữ liệu mã: '" & ProcessFileName(ProcessFileName(txtFile(0).Text, ChangePath_AddExtention, , "dat"), GetFileName) & "'" & Chr(13) _ & "- Khố bí mật AES: '" & ProcessFileName(ProcessFileName(txtFile(0).Text, ChangePath_AddExtention, , "key"), GetFileName) & "'" & Chr(13) _ & "- Chữ kí số: '" & ProcessFileName(ProcessFileName(txtFile(0).Text, ChangePath_AddExtention, , "sig"), GetFileName) & "'" & Chr(13) _ & "Chứng số người gửi: '" & ProcessFileName(ProcessFileName(txtFile(0).Text, ChangePath_AddExtention, , "cer"), GetFileName) & "'" & Chr(13) & Chr(13) _ & "Chuyển tới thư mục lưu thông tin mã ?", vbYesNo + vbInformation) = vbYes Then Shell "explorer.exe " & Encrypt_Dir, vbNormalFocus End If End Sub Thủ tục Giải mã file: Private Sub cmdDecrypt_Click() Dim ivalid As Long Dim fIn As New CkData Dim fOut As New CkData Dim hashvalue As String Dim DigitalSignature As String 'check validation of the form's fields For i = To If txtFile(i).Text = "" Then MsgBox "Trường '" & Label(i).Caption & "' chưa có giá trị!" Exit Sub End If Next 'check if files are existed For i = To (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 83 Luận văn Thạc sĩ If Dir(txtFile(i).Text) = "" Then MsgBox "Tập tin '" & Label(i).Caption & "' không tồn tại!" Exit Sub End If Next ProgressBar1.Value = 10 'Load recipient's certificate file If Load_Cert(Cert_A, CertA_File, PvKeyA_File) Then MsgBox "Lỗi đọc chứng số người nhận" Exit Sub End If ProgressBar1.Value = 20 'Load sender's certificate file If Load_Cert(Cert_B, CertB_File, "") Then MsgBox "Lỗi đọc chứng số người gửi" Exit Sub End If Set PbKey_A = Cert_A.ExportPublicKey Set PvKey_A = Cert_A.ExportPrivateKey Set PbKey_B = Cert_B.ExportPublicKey ProgressBar1.Value = 30 'decrypt encrypted secrete key using RSA algorithm If fIn.LoadFile(txtFile(2).Text) Then MsgBox "Lỗi đọc file *.key" Exit Sub End If secretKey = RSA_Decrypt_String(fIn.GetBase64, "base64", PvKey_A.GetXml) ProgressBar1.Value = 40 'decrypt encrypted data using EAS algorithm If AES_Decrypt_File(txtFile(0).Text, "dat", "aes", "cbc", 128, secretKey, "base64") Then MsgBox "Có lỗi tạo file du lieu" Exit Sub End If ProgressBar1.Value = 50 'decrypt encrypted DigitalSignature using EAS algorithm If fIn.LoadFile(txtFile(3).Text) Then MsgBox "Lỗi đọc file *.sig" (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 84 Luận văn Thạc sĩ Exit Sub End If ProgressBar1.Value = 60 DigitalSignature = AES_Decrypt_String(fIn.GetBase64, "aes", "cbc", 128, secretKey, "base64") ProgressBar1.Value = 70 'Calculate the Hash value hashvalue = HashValue_File(ProcessFileName(txtFile(0).Text, ChangePath_RemoveExtention, Decrypt_Dir, "dat"), "sha1", "hex") ProgressBar1.Value = 80 'check validity of received infomation ivalid = Verify_DigitalSignature(hashvalue, DigitalSignature, Cert_B, "unicode", "hex") ProgressBar1.Value = 90 If ivalid = Then txtResult.ForeColor = vbBlue txtResult.Text = "Chữ ký liệu hợp lệ" Else txtResult.ForeColor = vbRed txtResult.Text = "Chữ ký liệu không hợp lệ" End If ProgressBar1.Value = 100 If MsgBox("Q trình giải mã hồn tất." & Chr(13) & Chr(13) _ & "Thông tin gốc lưu thư mục '" & Decrypt_Dir & "' gồm có:" & Chr(13) _ & "- Dữ liệu gốc: '" & ProcessFileName(ProcessFileName(txtFile(0).Text, ChangePath_RemoveExtention, , "dat"), GetFileName) & "'" & Chr(13) & Chr(13) _ & "Mở tệp liệu gốc ?", vbYesNo + vbInformation) = vbYes Then Shell "explorer.exe " & ProcessFileName(txtFile(0).Text, ChangePath_RemoveExtention, Decrypt_Dir, "dat"), vbNormalFocus End If End Sub Hàm tính giá trị băm chuỗi Public Function HashValue_String(sSource As String, sHashAlgorithm As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 85 Luận văn Thạc sĩ HashValue_String = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Component unlock failed" Exit Function End If crypt.HashAlgorithm = sHashAlgorithm crypt.EncodingMode = sEncodingMode HashValue_String = crypt.HashStringENC(sSource) Set crypt = Nothing End Function Hàm tính giá trị băm file Public Function HashValue_File(sSource As String, sHashAlgorithm As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 HashValue_File = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Component unlock failed" Exit Function End If crypt.HashAlgorithm = sHashAlgorithm crypt.EncodingMode = sEncodingMode HashValue_File = crypt.HashFileENC(sSource) Set crypt = Nothing End Function Hàm tạo chữ ký số chuỗi văn Public Function Create_DigitalSignature(sSource As String, sCert As ChilkatCert, sCharset As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 Create_DigitalSignature = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 86 Luận văn Thạc sĩ Exit Function End If crypt.SetSigningCert sCert crypt.Charset = sCharset crypt.EncodingMode = sEncodingMode Create_DigitalSignature = crypt.SignStringENC(sSource) Set crypt = Nothing End Function Hàm kiểm tra chữ ký số chuỗi văn Public Function Verify_DigitalSignature(sSource As String, sEncodedSigature, sCert As ChilkatCert, sCharset As String, sEncodingMode As String) As Long Dim crypt As New ChilkatCrypt2 Dim cert As New ChilkatCert Verify_DigitalSignature = If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function End If crypt.SetVerifyCert sCert crypt.Charset = sCharset crypt.EncodingMode = sEncodingMode Verify_DigitalSignature = crypt.VerifyStringENC(sSource, sEncodedSigature) Set crypt = Nothing Set cert = Nothing End Function Hàm tạo khố bí mật 128 bits dạng hexa Public Function AES_Generate_SecreteKey(sPassword As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 AES_Generate_SecreteKey = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 87 Luận văn Thạc sĩ End If ' Generate a 128-bit secret key and return it as a hex string AES_Generate_SecreteKey = crypt.GenEncodedSecretKey(sPassword, sEncodingMode) Set crypt = Nothing End Function Hàm mã chuỗi ký tự sử dụng thuật toán RSA với khố cơng khai Public Function RSA_Encrypt_String(sSource As String, sEncodingMode As String, sPbKey As String) Dim rsa As New ChilkatRsa Dim usePrivateKey As Long RSA_Encrypt_String = "" If rsa.UnlockComponent("anything can be used") Then MsgBox "RSA component unlock failed" Exit Function End If 'RSA encrypt the secret key and return as a base64 string: rsa.EncodingMode = sEncodingMode rsa.ImportPublicKey sPbKey usePrivateKey = RSA_Encrypt_String = rsa.EncryptStringENC(sSource, usePrivateKey) Set rsa = Nothing End Function Hàm giải mã chuỗi ký tự sử dụng thuật tốn RSA với khố bí mật Public Function RSA_Decrypt_String(sSource As String, sEncodingMode As String, sPvKey As String) Dim rsa As New ChilkatRsa Dim usePrivateKey As Long RSA_Decrypt_String = "" If rsa.UnlockComponent("anything can be used") Then MsgBox "RSA component unlock failed" Exit Function End If 'RSA decrypt the encrypted secret key (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 88 Luận văn Thạc sĩ rsa.EncodingMode = sEncodingMode rsa.ImportPrivateKey sPvKey usePrivateKey = RSA_Decrypt_String = rsa.DecryptStringENC(sSource, usePrivateKey) Set rsa = Nothing End Function Hàm mã hoá chuỗi sử dụng thuật toán AES với khố bí mật Public Function AES_Encrypt_String(sSource As String, sCryptAlgorithm As String, sCipherMode As String, iKeylength As Long, sSecretKey As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 AES_Encrypt_String = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function End If crypt.CryptAlgorithm = sCryptAlgorithm crypt.CipherMode = sCipherMode crypt.KeyLength = iKeylength crypt.SetEncodedKey sSecretKey, sEncodingMode crypt.EncodingMode = sEncodingMode AES_Encrypt_String = crypt.EncryptStringENC(sSource) Set crypt = Nothing End Function Hàm giải mã chuỗi sử dụng thuật tốn AES với khố bí mật Public Function AES_Decrypt_String(sSource As String, sCryptAlgorithm As String, sCipherMode As String, iKeylength As Long, sSecretKey As String, sEncodingMode As String) As String Dim crypt As New ChilkatCrypt2 AES_Decrypt_String = "" If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function End If (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ 89 crypt.CryptAlgorithm = sCryptAlgorithm crypt.CipherMode = sCipherMode crypt.KeyLength = iKeylength crypt.SetEncodedKey sSecretKey, sEncodingMode crypt.EncodingMode = sEncodingMode AES_Decrypt_String = crypt.DecryptStringENC(sSource) Set crypt = Nothing End Function Hàm mã hoá file sử dụng thuật tốn AES với khố bí mật Public Function AES_Encrypt_File(sSource As String, sFileExtention As String, sCryptAlgorithm As String, sCipherMode As String, iKeylength As Long, sSecretKey As String, sEncodingMode As String) As Long Dim crypt As New ChilkatCrypt2 Dim fIn As New CkData Dim fOut As New CkData AES_Encrypt_File = If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function End If crypt.CryptAlgorithm = sCryptAlgorithm crypt.CipherMode = sCipherMode crypt.KeyLength = iKeylength crypt.SetEncodedKey sSecretKey, sEncodingMode crypt.EncodingMode = sEncodingMode fIn.LoadFile sSource fOut.LoadBase64 crypt.Encode(fIn.GetBase64, sEncodingMode) If fOut.SaveToFile(ProcessFileName(sSource, Encrypt_Dir, sFileExtention)) Then Exit Function End If ChangePath_AddExtention, AES_Encrypt_File = Set crypt = Nothing Set fIn = Nothing Set fOut = Nothing (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ 90 End Function Hàm giải mã file sử dụng thuật tốn AES với khố bí mật Public Function AES_Decrypt_File(sSource As String, sFileExtention As String, sCryptAlgorithm As String, sCipherMode As String, iKeylength As Long, sSecretKey As String, sEncodingMode As String) As Long Dim crypt As New ChilkatCrypt2 Dim fIn As New CkData Dim fOut As New CkData AES_Decrypt_File = If crypt.UnlockComponent("anything can be used") Then MsgBox "Crypt component unlock failed" Exit Function End If crypt.CryptAlgorithm = sCryptAlgorithm crypt.CipherMode = sCipherMode crypt.KeyLength = iKeylength crypt.SetEncodedKey sSecretKey, sEncodingMode crypt.EncodingMode = sEncodingMode fIn.LoadFile sSource fOut.LoadBinary crypt.Decode(fIn.GetString, sEncodingMode) If fOut.SaveToFile(ProcessFileName(sSource, Decrypt_Dir, sFileExtention)) Then Exit Function End If ChangePath_RemoveExtention, AES_Decrypt_File = Set crypt = Nothing Set fIn = Nothing Set fOut = Nothing End Function Hàm nạp file chứng số liên kết khố bí mật với chứng số Public Function Load_Cert(sCert As ChilkatCert, CertFileName As String, PvKeyFileName As String) As Long Dim container As KeyContainer Dim PvKey As New privateKey Dim i As Long (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 91 Luận văn Thạc sĩ Dim MachineKeyset As Long Dim needPrivateKeyAccess As Long Dim forSigning As Long Dim isKeyExchangePair As Long Load_Cert = 'load certificate file If sCert.LoadFromFile(CertFileName) Then MsgBox "Lỗi nạp chứng số:" & Chr(13) & CertFileName Exit Function End If 'load private key file If PvKeyFileName = "" Then GoTo Success If PvKey.LoadPemFile(PvKeyFileName) Then MsgBox "Lỗi nạp khố bí mật:" & Chr(13) & PvKeyFileName Exit Function End If 'Link pvkey to certificate Set container = CreateObject("Chilkat.KeyContainer") needPrivateKeyAccess = MachineKeyset = i = container.CreateContainer("mycontainer", MachineKeyset) If (i = 1) Then isKeyExchangePair = i = container.ImportPrivateKey(PvKey, isKeyExchangePair) If (i = 0) Then MsgBox "Lỗi nhập private key vào key container" Exit Function End If Else MsgBox "Lỗi tạo key container" Exit Function End If forSigning = If sCert.LinkPrivateKey(container.containerName, MachineKeyset, forSigning) Then MsgBox "Lỗi liên kết khố bí mật với chứng chỉ" Exit Function End If Success: Load_Cert = (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 92 Luận văn Thạc sĩ End Function (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 93 Luận văn Thạc sĩ KẾT LUẬN Nội dung luận văn nghiên cứu vấn đề lý thuyết hệ mật mã khố cơng khai RSA, đặc điểm hệ mật RSA độ an tồn Tính mật hệ RSA chủ yếu dựa vào việc bảo vệ khố riêng d giữ bí mật số ngun tố p q; tính an tồn hệ RSA dựa vào độ khó tốn RSA độ phức tạp tốn phân tích số thành thừa số ngun tố Kỹ thuật mã khố cơng khai RSA ứng dụng việc phân phối khố cơng khai sử dụng để mã hố phân phối khố bí mật Ngày nay, việc phân phối khố cơng khai sử dụng chứng khố cơng khai phương án dùng phổ biến phương pháp chống vấn đề giả mạo trao đổi khoá Luận văn tập chung nghiên cứu lược đồ chữ ký số RSA ứng dụng Một ứng dụng quan trọng chữ ký số vấn đề xác thực thơng tin/dữ liệu Có hai loại chữ ký số: chữ ký số kèm theo rõ chữ ký số tự khơi phục thơng điệp gốc, loại kèm theo rõ sử dụng phổ biến Trên sở vấn đề lý thuyết nghiên cứu, tác giả vận dụng để phát triển chương trình mã hố liệu đảm bảo u cầu bảo mật thơng tin q trình truyền tin Thơng tin mã hố phía người gửi giải mã phía người nhận, đồng thời có chế để người nhận kiểm tra tính xác thực thông tin nhận (thông tin gửi người gửi khơng bị thay đổi nội dung đường truyền) Cơ chế phân phối khố cơng khai thực việc trao đổi chứng khố cơng khai Việc mã hố liệu thực thuật toán mã hoá khoá đối xứng AES để đảm bảo yếu tố tốc độ mã hoá; thuật tốn mã khố cơng khai RSA sử dụng việc tạo/kiểm tra chữ ký số việc phân phối khố phiên bí mật thuật tốn mã khố đối xứng AES Chương trình làm việc chế độ gỡ rối, cho phép theo dõi biến trung gian qua bước q trình mã hố, phục vụ việc minh hoạ quy trình mã hố/giải mã liệu; chế độ chạy thật, cho phép xử lý mã file liệu đầu vào trả file mã tương ứng với file thông tin khác phục vụ việc giải mã xác thực Trong khn khổ luận văn tốt nghiệp, chương trình xây dựng ứng dụng độc lập (stand-alone) làm việc với chứng số chuẩn X.509 có định dạng file PEM Để triển khai chương trình vào thực tiễn, cần đầu tư để phát triển thêm tính nhằm tăng cường tính tiện lợi ứng dụng, chẳng hạn: cho phép làm việc với nhiều kiểu định dạng file chứng số; cho phép chuyển đổi qua lại kiểu định dạng Ngồi ra, phát triển thêm lựa chọn kiểu chương trình cho phép cài đặt ứng dụng “thêm vào” (add-in), để tích hợp (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình 94 Luận văn Thạc sĩ tính mã hố xác thực thông tin/dữ liệu từ bên ứng dụng cụ thể (chẳng hạn ứng dụng văn phòng Microsoft Word, Microsoft Outlook, v.v ) Qua hoạt động thực tế với kết đạt luận văn khẳng định mật mã nói chung mật mã RSA nói riêng đóng vai trị quan trọng lĩnh vực xã hội Việc nghiên cứu lý thuyết mật mã RSA ứng dụng triển khai kỹ thuật mã hoá cho phù hợp với toán cụ thể hoạt động thực tiễn vấn đề hồn tồn thực (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin Đỗ Thanh Bình Luận văn Thạc sĩ 95 TÀI LIỆU THAM KHẢO Tiếng Việt [1] ĐỒN VĂN BAN, Lập trình hướng đối tượng với Java, Nhà xuất khoa học kỹ thuật, 2005 (tái lần thứ nhất), Hà nội [2] PHẠM HUY ĐIỀN, HÀ HUY KHỐI, Mã hố thơng tin sở toán học ứng dụng, Viện toán học,2004 [3] NGUYỄN NAM HẢI, PHẠM NGỌC THUÝ, ĐÀO THỊ HỒNG VÂN, Chứng thực thương mại điện tử, Nhà xuất khoa học kỹ thuật, 2004 [4] PHAN ĐÌNH DIỆU, Giáo trình lý thuyết mật mã an tồn thơng tin, Nhà xuất Đại học Quốc Gia Hà nội, 1999 [5] 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, Nhà xuất khoa học kỹ thuật, 2004 Tiếng Anh [6] A.MENEZES, P.VAN OORSCHOT, AND S VANSTONE, Handbook of Applied Cryptography, CRC Press, 1996 See www.cacr.math.uwaterloo.ca/hac [7] CAY S.HORSTMANN GARY CORNELL, Core Java2 Volume II, Advanced Features, The Sun Microsystem press Java Series, 1996 [8] DOUGLAS R.STINSON, Cryptography theory and practice Second Edition, It was published in March, 1995, by CRC Press, inc [9] KENNETH H.ROSEN, Elementtary number theory and its applications – Third Edition, 1993 [10] R.RIVEST, A.SHAMIR, L.ADLEMAN Method for Obtaining Digital Signatures and Public-key Cryptosystems Communications of the ACM, Vol.21 (2), pp.120-126.1978.Previously released as an MIT “Technical Memo” in April 1977 Initial publication of the RSA scheme (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin TIEU LUAN MOI download : skknchat@gmail.com (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin (LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin(LUAN.van.THAC.si).he.mat.RSA.va.ung.dung.luoc.do.chu.ky.so.trong.xac.thuc.thong.tin

Ngày đăng: 17/12/2023, 01:53

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN