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

Tìm hiểu nguyên nhân gây tổn thất dữ liệu và phương pháp bảo vệ thông tin trong chuyển giao hồ sơ y tế điện tử

81 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

Thông tin cơ bản

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

Nội dung

i đại học thái nguyên Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN THÔNG H TH LM BèNH TèM HIỂU NGUYÊN NHÂN GÂY TỔN THẤT DỮ LIỆU VÀ PHƢƠNG PHÁP BẢO VỆ THÔNG TIN TRONG CHUYỂN GIAO HỒ SƠ Y TẾ ĐIỆN TỬ LUẬN VĂN THẠC SĨ KHOA HỌC MY TNH thái nguyên - năm 2014 S húa bi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ii LỜI CAM ĐOAN Những kết nghiên cứu trình bày luận văn hồn tồn trung thực, khơng vi phạm điều luật sở hữu trí tuệ pháp luật Việt Nam Nếu sai, tơi hồn tồn chịu trách nhiệm trước pháp luật TÁC GIẢ LUẬN VĂN Hồ Thị Lâm Bình Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ iii LỜI CẢM ƠN Đầu tiên, xin gửi lời cảm ơn chân thành sâu sắc tới PGS.TS Trịnh Nhật Tiến định hướng nhiệt tình hướng dẫn giúp đỡ nhiều mặt chuyên môn, để tơi hồn thành luận văn Tơi xin gửi lời biết ơn đến thầy, cô giảng dạy truyền đạt kinh nghiệm quý báu cho suốt hai năm học cao học trường Đại học CNTT&TT - Đại học Thái Nguyên Tôi xin cảm ơn gia đình bạn học viên lớp CK11G - trường Đại học CNTT&TT - Đại học Thái Nguyên người bên cạnh động viên, chia sẻ khích lệ tơi suốt thời gian học tập làm luận văn tốt nghiệp Thái Nguyên, tháng 09 năm 2014 HỒ THỊ LÂM BÌNH Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ iv MỤC LỤC LỜI CAM ĐOAN I LỜI CẢM ƠN III MỤC LỤC IV DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT VII DANH MỤC CÁC BẢNG VIII DANH MỤC CÁC HÌNH VẼ IX MỞ ĐẦU CHƢƠNG MỘT SỐ KHÁI NIỆM CƠ BẢN 1.1 TỔNG QUAN VỀ AN TỒN THƠNG TIN 1.1.1 Khái niệm an toàn thông tin 1.1.2 Mục tiêu nguyên tắc chung an tồn thơng tin 1.1.3 Sự cần thiết an tồn thơng tin 1.2 CƠ SỞ TOÁN HỌC 1.2.1 Ước chung lớn nhất, bội chung nhỏ 1.2.2 Quan hệ "đồng dư" 1.2.3 Số nguyên tố 1.2.4 Phần tử nghịch đảo phép nhân 11 1.2.5 Các phép tính khơng gian modulo 12 1.2.6 Độ phức tạp thuật toán 12 1.3 CÁC HỆ MÃ HÓA 13 1.3.1 Khái niệm mã hóa điện tử 13 1.3.2 Phân loại hệ mã hóa 14 1.4 CHỮ KÝ SỐ .17 1.4.1 Tổng quan chữ ký số 17 1.4.2 Phân loại chữ ký số 19 1.5 HÀM BĂM VÀ ĐẠI DIỆN TÀI LIỆU 20 1.5.1 Tổng quan hàm băm 20 1.5.2 Vấn đề đại diện tài liệu 21 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ v 1.6 ẨN GIẤU TIN (Steganography) 23 1.7 KẾT LUẬN CHƢƠNG 24 CHƢƠNG NGUYÊN NHÂN VÀ PHƢƠNG PHÁP BẢO VỆ THÔNG TIN TRONG CHUYỂN GIAO HỒ SƠ Y TẾ ĐIỆN TỬ 25 2.1 TỔNG QUAN VỀ Y TẾ ĐIỆN TỬ 25 2.1.1 Khái niệm Y tế điện tử (E-Health) 25 2.1.2 Các loại hình Y tế điện tử 28 2.1.3 Các tính chất đặc trưng cho Y tế điện tử 29 2.2 NGUYÊN NHÂN GÂY TỔN THẤT DỮ LIỆU 31 2.2.1 Nguy hiểm họa hệ thống thông tin 31 2.2.2 Rị rỉ thơng tin từ máy chủ web 32 2.2.3 Xem trộm nội dung hồ sơ Y tế điện tử 34 2.2.4 Sửa đổi trái phép nội dung hồ sơ Y tế điện tử 35 2.2.5 Thay đổi hồ sơ gốc 37 2.2.6 Thời gian truyền hồ sơ Y tế chậm ách tắc trao đổi hồ sơ Y tế 37 2.3 PHƢƠNG PHÁP BẢO VỆ THÔNG TIN 37 2.3.1 Ngăn ngừa rị rỉ thơng tin từ máy chủ web 37 2.3.2 Phương pháp mã hóa liệu 39 2.3.3 Phương pháp ẩn giấu tin 43 2.3.4 Phương pháp sử dụng thuật toán chữ ký số 45 2.4 KẾT LUẬN CHƢƠNG 50 CHƢƠNG CHƢƠNG TRÌNH THỬ NGHIỆM DÙNG CHỮ KÝ SỐ 51 3.1 THỰC TRẠNG ỨNG DỤNG CNTT TRONG HỆ THỐNG THÔNG TIN Y TẾ TẠI TUYÊN QUANG 51 3.2 GIẢI QUYẾT THỰC TRẠNG .52 3.3 CÀI ĐẶT CHƢƠNG TRÌNH KÝ SỐ RSA 55 3.3.1 Cài đặt chức ký số 55 3.3.2 Cài đặt chức xác thực chữ ký số 55 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ vi 3.3.3 Cài đặt chức mã hóa 55 3.3.4 Cài đặt chức giải mã 55 3.4 CẤU HÌNH HỆ THỐNG 55 3.4.1 Yêu cầu hệ thống 55 3.4.2 Yêu cầu chức 55 3.4.3 Yêu cầu kiến trúc hệ thống 55 3.4.4 Yêu cầu giao diện 56 3.4.5 Phân tích tính 56 3.5 THIẾT KẾ HỆ THỐNG 56 3.5.1 Xác định tác nhân 56 3.5.2 Biểu đồ trình tự 56 3.6 HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH 58 3.6.1 Chức ký số RSA- Ký 58 3.6.2 Chức xác thực chữ ký số RSA 59 3.6.3 Chức mã hóa 59 3.6.4 Chức giải mã 60 3.7 KẾT LUẬN CHƢƠNG 61 KẾT LUẬN 62 TÀI LIỆU THAM KHẢO 64 PHỤ LỤC 65 Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ vii DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ATTT An tồn thơng tin BHYT Bảo hiểm y tế BMTT Bảo mật thông tin CA Certificate Authority Chứng thực chữ ký số EMR (Electronic Medical Record) Hồ sơ y tế điện tử DNS Domain Name System Hệ thống tên miền DES Data Encryption Standard Mã hóa liệu (Mã hóa khóa bí mật) DSS (Digital Signature Standard) Chuẩn chữ ký số MD Message Digest Mã hóa liệu (tóm tắt thơng điệp), hàm băm PKI Public Key Infrastructure Mã khóa cơng khai mạng riêng ảo Public key Khố cơng khai Private key Khố bí mật RSA Rivest Shamir Adleman Mã hóa liệu (Mã hóa khóa cơng khai) SHA Secure Hash Algorithm Thuật giải băm an toàn SSL Secure Socket Layer Giao thức bảo mật XML Extensible Markup Language Ngơn ngữ đánh dấu mở rộng YTĐT Số hóa Trung tâm Học liệu Y tế điện tử http://www.lrc-tnu.edu.vn/ viii DANH MỤC CÁC BẢNG Bảng 1.1 Thuật tốn Euclide tìm ước chung lớn Bảng 1.2 Tìm phần tử nghịch đảo Z7 Bảng 2.1 So sánh giấu thông tin mật giấu thông tin thủy vân Bảng 2.2 Bảng liên kết khác giấu thông tin ảnh đen trắng ảnh màu Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ ix DANH MỤC CÁC HÌNH VẼ Hình 1.1 Q trình thực chế mã hóa Hình 1.2 Q trình thực mã hóa khóa cơng khai Hình 2.1 Mơ hình áp dụng cho bệnh viện thơng minh Hình 2.2 Vị trí máy chủ web hạ tầng CNTT tổ chức, doanh nghiệp Hình 2.3 Sơ đồ chức hệ mã hóa RSA Hình 2.4 Sơ đồ biểu diễn thuật tốn mã hóa Hình 2.5 Lược đồ chung cho q trình giấu tin Hình 2.6 Tạo thơng báo có ký chữ ký số Hình 3.1 Q trình mã hóa ký Hình 3.2 Q trình giải mã xác thực Hình 3.3 Load mã hóa thơng điệp Hình 3.4 Ký thơng điệp Hình 3.5 Xác thực ký Hình 3.6 Mã hóa thơng điệp Hình 3.7 Giao diện chức ký số Hình 3.8 Giao diện Xác thực chữ ký số văn Hình 3.9 Giao diện Mã hóa văn Hình 3.10 Giao diện Giải mã văn Số hóa Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ MỞ ĐẦU Lý chọn đề tài Nguy an tồn thơng tin nhiều ngun nhân, đối tượng công đa dạng… Thiệt hại từ vụ công mạng lớn, đặc biệt thông tin thuộc lĩnh vực kinh tế, an ninh, y tế… Do đó, việc xây dựng hàng rào kỹ thuật để ngăn chặn truy cập trái phép trở thành nhu cầu cấp bách hoạt động truyền thơng Vì thơng tin truyền phải đảm bảo tính xác, khơng bị sửa đổi nhiều trường hợp cần đảm bảo tính bảo mật thông tin cần xác thực người gửi, người nhận Xuất phát từ thực tế, nhiều biện pháp an tồn thơng tin đời Luận văn “Tìm hiểu nguyên nhân gây tổn thất liệu phương pháp bảo vệ thông tin chuyển giao hồ sơ y tế điện tử” nghiên cứu thực vấn đề sống đòi hỏi việc trao đổi thông tin hàng ngày tổ chức cá nhân mà yêu cầu an toàn bảo mật thông tin đề ra, kèm theo demo thử nghiệm ứng dụng chữ ký số RSA Đối tƣợng phạm vi nghiên cứu Đối tƣợng nghiên cứu Nghiên cứu giải pháp mã hóa để bảo mật thông tin, phương pháp, kỹ thuật tạo chữ ký số tài liệu, văn điện tử để xác thực nguồn gốc tài liệu hay văn người gửi Các hệ mật mã khóa cơng khai (trong hệ mã RSA sử dụng đối tượng nghiên cứu đề tài) nhằm phát phép xử lý tốn học cần tối ưu, ngồi từ hệ mã đưa phương pháp mã hóa tệp văn để bảo vệ thông tin Từ kết thu bước đầu đề tài đưa cách xây dựng thử nghiệm vào chữ ký số áp dụng kết tối ưu Luận văn tập trung nghiên cứu làm rõ ý tưởng, sở toán học, thuật toán độ phức tạp mã hóa nói chung hệ mã hóa cơng khai nói riêng 58 3.6 HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH - Cài đặt chương trình Visual Studio 2008/2010 Win XP/7/Vista - Kích đúp file chạy chương trình chữ ký số RSA: RSA_Vi.exe 3.6.1 Chức ký số RSA - Ký Hình 3.7 Giao diện chức ký số Chương trình sinh khóa RSA ngẫu nhiên có độ dài 512 bit 1024 bit (theo lựa chọn cỡ khóa người dùng) Sau ghi khóa bí mật khóa cơng khai file tương ứng Trước ký, văn băm theo thuật toán SHA1 Người sử dụng lựa chọn thơng tin sau:  Cỡ khóa (có lựa chọn 512 bit 1024 bit)  File văn bản: đường dẫn tuyệt đối văn cần ký  File khóa cơng khai: đường dẫn tuyệt đối file lưu khóa cơng khai  File khóa bí mật: đường dẫn tuyệt đối file lưu khóa bí mật  File chứa băm: đường dẫn tuyệt đối file lưu đại diện văn  File chứa chữ ký: đường dẫn tuyệt đối file chứa chữ ký Trong chương trình, khóa cơng khai, khóa bí mật, đại diện văn bản, chữ ký biểu diễn dạng xâu chứa mã ASCII ký tự 59 3.6.2 Chức xác thực chữ ký số RSA Hình 3.8 Giao diện Xác thực chữ ký số văn Người nhận nhập vào thông tin sau để xác thực văn  File văn bản: đường dẫn tuyệt đối chứa file văn  File chứa chữ ký: đường dẫn tuyệt đối chứa file chữ ký người gửi  File chứa khóa cơng khai: đường dẫn chứa khóa cơng khai người gửi Kết trả Chữ ký file văn không bị chỉnh sửa Chữ ký sai file văn bị chỉnh sửa 3.6.3 Chức mã hóa Hình 3.9 Giao diện Mã hóa văn 60 Người sử dụng lựa chọn thông tin sau để mã hóa văn  File văn bản: đường dẫn tuyệt đối chứa file văn cần mã hóa  File chữ ký: đường dẫn tuyệt đối chứa file chữ ký người gửi Pass phrase: mật Bản mã file văn bản: đường dẫn tuyệt đối chứa file lưu mã Bản mã chữ ký: đường dẫn tuyệt đối tới file lưu chữ ký Kích chọn mã hóa hiển thị “Mã hóa thành cơng” 3.6.4 Chức giải mã Hình 3.10 Giao diện Giải mã văn Người nhận nhập vào thông tin sau để giải mã văn Bản mã văn bản: đường dẫn tuyệt đối chứa file văn mã hóa Bản mã chữ ký: đường dẫn tuyệt đối chứa file chữ ký người gửi Pass phrase: mật Bản rõ văn bản: đường dẫn chứa rõ Bản rõ chữ ký: đường dẫn chứa rõ chữ ký Kích chọn Giải mã hiển thị “Giải mã xong” Kết trả Giải mã file văn mã hóa khơng bị chỉnh sửa Giải mã sai file văn bị chỉnh sửa “Không tồn tại” 61 3.7 KẾT LUẬN CHƢƠNG Nội dung chương trình bày cách xây dựng, cài đặt hướng dẫn sử dụng chương trình ký số tệp văn hệ thống bảo mật thơng tin Chương trình mơ việc sử dụng cặp khóa bí mật, cơng khai để ký mã hóa giải mã xác thực thơng tin Việc ứng dụng sở hạ tầng khóa cơng khai giao dịch thương mại, y tế điện tử, đăng nhập hệ thống, xác minh danh tính chủ thể, kê khai hồ sơ điện tử… ngày phổ biến phát triển nhanh chóng Với cải tiến thuật tốn mã hóa nhằm giải vấn đề ATTT chương trình ngày đem lại tin tưởng cho người dùng an toàn, tin tưởng vào việc sử dụng chữ ký số hạ tầng sở khóa cơng khai cơng việc, giao dịch hàng ngày 62 KẾT LUẬN Vấn đề chữ ký số vấn đề đề cập nhiều lĩnh vực bảo mật thơng tin Nó vấn đề khơng mới, phát triển nước ta có nhiều cơng việc cần giải muốn xây dựng hệ thống chữ ký số đạt tiêu chuẩn quốc gia Hướng tiếp cận theo mật mã học khóa cơng khai hướng tiếp cận dựa vào u cầu thực tế cơng nghệ cơng khai khóa bí mật, độ an tồn hệ thống khơng dựa vào độ an tồn cơng nghệ mà khóa Kết đạt luận văn: Luận văn tập trung nghiên cứu số phương pháp bảo mật thông tin Đây nội dung bao quát nhiều vấn đề quan trọng bảo mật đảm bảo an tồn thơng tin điều kiện người sử dụng tích hợp nhiều thiết bị máy tính bảng, điện thoại thơng minh,… vào máy tính cá nhân kết nối mạng Luận văn giới thiệu làm rõ toán chữ ký số có đảm bảo tính bí mật, tính xác thực, tính tồn vẹn, tính khơng chối bỏ Đồng thời luận văn trình bày số giải pháp, số thuật tốn phương pháp bảo vệ thơng tin chuyển giao hồ sơ Y tế điện tử Luận văn dành chương để giới thiệu tổng quan an tồn thơng tin bao gồm: sở tốn học, khái niệm, yêu cầu giải pháp đảm bảo an tồn thơng tin Chương tập trung vào tốn cụ thể tìm hiểu số ngun nhân gây tổn thất liệu phương pháp bảo vệ thông tin y tế điện tử Phần phương pháp luận mô tả chi tiết hai chương biện pháp sở cho cài đặt thử nghiệm chương với toán dùng chữ ký số để bảo vệ thông tin văn hệ thống thơng tin Tồn nội dung luận văn đóng góp tác giả hướng dẫn trực tiếp PGS.TS Trịnh Nhật Tiến Luận văn đạt hai kết sau: Nghiên cứu tài liệu để Hệ thống lại vấn đề Tổng quan an tồn thơng tin; Một số phương pháp bảo vệ thông tin phổ biến 63 Thử nghiệm dùng Chữ ký số để KÝ XÁC THỰC; MÃ HÓA GIẢI MÃ nội dung tệp văn Đảm bảo an toàn bảo mật thông tin môi trường truyền thông đa phương tiện vấn đề cốt lõi chiến tranh mạng nóng bỏng mang tầm vóc quốc gia Trong trình học tập, tìm hiểu nghiên cứu với khoảng thời gian làm luận văn, cố gắng tập trung tìm hiểu tham khảo tài liệu liên quan Tuy nhiên, thời gian nghiên cứu lực có hạn nên khó tránh khỏi sai sót cần bổ sung, kính mong nhận đóng góp ý kiến thầy cô giáo anh chị, bạn học viên Em xin gửi lời biết ơn chân thành tới PGS.TS.Trịnh Nhật Tiến, người định hướng nghiên cứu hướng dẫn em thực luận văn ! Thái Nguyên, tháng 09 năm 2014 Học viên: Hồ Thị Lâm Bình 64 TÀI LIỆU THAM KHẢO Tiếng Việt [1] Trịnh Nhật Tiến, “Giáo trình an tồn liệu”, Trường Đại Học Công Nghệ, Đại Học Quốc Gia Hà Nội, 2008 [2] Nguyễn Đình Thúc, Bùi Dỗn Khanh, Hồng Đức Hải, “Giáo trình mã hóa thơng tin Lý thuyết ứng dụng”, NXB Lao động xã hội, năm 2006 [3] Phạm Huy Điển, Hà Huy Khối, “Mã hóa thơng tin sở toán học ứng dụng”, Viện toán học, năm 2004 Tiếng Anh [4] R.L Rivest, A Shamir, and L Adleman, A Method for Obtaining Digital Signatures and Public-Key Cryptosystems, Communications of the ACM, 21 (2), pp 120-126, Feb 1978 [5] Y Dakroury, I A El-ghafar and A Tammam, Protecting GIS Data Using Cryptography and Digital Watermarking, International Journal of Computer Science and Network Security, VOL.10 No.1, 2010 [6] N Goots, B Izotoz, A Moldovyan, N Moldovyan, Modern CryptographyProtect Your Data with Fast Block Ciphers”, 2003 Tài liệu Internet [7] http://spiroupharmablog.blogspot.com/2010/08/y-te-ien-tu-e-health-la-gi.html [8] http://luanvan.net.vn/luan-van/do-an-giau-va-phat-hien-anh-co-giau-thong-tintren-mien-du-lieu-anh-bang-ses-31640/ [9] http://www.cryptography.com [10] http://www.codeproject.com 65 PHỤ LỤC Code cài đặt chƣơng trình chữ ký số RSA - chức ký số 1) Code hàm sinh khóa bí mật khóa cơng khai (ghi khóa vào file dạng thập phân) private: RSA* generateKey (String^ klen){ r = RSA_new(); int len = Convert::ToInt32(klen); r = RSA_generate_key(len, RSA_F4, NULL , NULL); priKey = gcnew String(BN_bn2dec(r->d)); unsigned char* next1; unsigned char* buffer1; int len1 = i2d_RSAPrivateKey(r,0); buffer1 = next1 = (unsigned char* )malloc(len1); i2d_RSAPrivateKey(r,&next1); String^ pri = uncharArrtoStrASCII(buffer1,len1); StreamWriter^ sw = gcnew StreamWriter(txtPriv->Text); sw->Write(pri); sw->Close(); unsigned char* next; unsigned char* buffer; len = i2d_RSAPublicKey(r,0); buffer = next = (unsigned char* )malloc(len); i2d_RSAPublicKey(r,&next); String^ pubFile = txtPubKey->Text; sw = gcnew StreamWriter(pubFile); 66 String^ pub = uncharArrtoStrASCII(buffer,len); sw->Write(pub); sw->Close(); return r; } 2) Code hàm thực việc ký văn private: void hSign(RSA* r ){ r = generateKey(keySize); String^ iFile = inputFile->Text; String^ oFile = sigFile->Text; //Đọc nội dung vào mảng wchar_t long int numOfElems; String^ ext = iFile->Substring(iFile->Length - 3); wchar_t* buffer = NULL; if( fileIsLocked(iFile) == false ){ if ( ext == "doc"){ buffer = readFileDoc(inputFile->Text, numOfElems); } else{ buffer = readFileText(inputFile->Text, numOfElems); } String^ mesStr = wchartoUni(buffer, numOfElems); unsigned char* buf = (unsigned char*) str2Char(mesStr) unsigned int slen; unsigned char* signature = (unsigned char*) malloc(RSA_size(r)); unsigned char hash[20]; if (SHA1(buf, mesStr->Length,hash)){ int i = RSA_sign(NID_sha1,hash, 20,signature, &slen, r); //Ky signature[RSA_size(r)] = '\0'; 67 //Ghi giá trị băm file thập phân String^ digestDec = uncharArrtoStrASCII(hash,20); StreamWriter^ sw = gcnew StreamWriter(txtDig->Text); sw->Write(digestDec); sw->Close(); //Ghi chữ ký file dạng thập phân String^ sigDec = uncharArrtoStrASCII(signature,slen); sw = gcnew StreamWriter(oFile); sw->Write(sigDec); sw->Close(); } MessageBox::Show( "Ký thành công !!!"); } } 3) Code Cài đặt chức xác thực chữ ký số private: System::Void btnVerify_Click(System::Object^ sender, System::EventArgs^ e) { String^ iFile = inFile->Text; String^ oFile = sFile ->Text; String^ pubKey = publicKey->Text; if (iFile == "" || oFile == "" || pubKey == "") MessageBox::Show( L"Bạn phải nhập đầy đủ tất thông tin !!!"); else if (!File::Exists(iFile)) MessageBox::Show("File" + iFile + L" không tồn tại"); else if (!File::Exists(oFile)) MessageBox::Show("File" + oFile + L" không tồn tại"); else if (!File::Exists(pubKey)) 68 MessageBox::Show("File" + pubKey + L" không tồn tại"); else{ wchar_t* wbuffer = NULL; //doc noi dung file thong diep vao long int numOfElems; //wbuffer = readFileText( inFile->Text, numOfElems); if( fileIsLocked(iFile) == false ){ String^ ext = iFile->Substring(iFile->Length - 3); if (ext == "doc"){ wbuffer = readFileDoc(iFile, numOfElems); } else{ wbuffer = readFileText(iFile, numOfElems); } String^ mesStr =wchartoUni(wbuffer,numOfElems); char* msg = str2Char(mesStr); //doc noi dung file chu ky vao mot mang char char* sig = readFile(sFile->Text); int sigLen = strlen(sig)/3; unsigned char* signature = conDecToUnchar(sig); //thuc hien xu ly file chu ky char* pub = readFile(publicKey->Text); int kLen = strlen(pub)/3; unsigned char* buffer = conDecToUnchar(pub); RSA* rsa = d2i_RSAPublicKey(0,(const unsigned char**)&buffer, kLen); //verify chu ky unsigned char hash[20]; SHA1((unsigned char*)msg, strlen(msg),hash); int res; 69 res = RSA_verify(NID_sha1, hash,20,signature,sigLen,rsa); if (res == 1) verRes->Text = L"Chữ ký đúng"; else verRes->Text = L"Chữ ký sai"; }}} 4) Code Cài đặt chức mã hóa private: System::Void onEncryptClick(System::Object^ sender, System::EventArgs^ e) { long int numOfElems; if (!File::Exists(txtMesE->Text)) MessageBox::Show( "File " + txtMesE->Text + L" không tồn tại" ); else if (!File::Exists(txtSigE->Text)) MessageBox::Show( "File " + txtSigE->Text + L" không tồn tại" ); else{ String^ ext = txtMesE->Text->Substring(txtMesE->Text->Length - 3); wchar_t* buffer = NULL; if( fileIsLocked(txtMesE->Text) == false ){ if ( ext == "doc"){ buffer = readFileDoc(txtMesE->Text, numOfElems); } else{ buffer = readFileText(txtMesE->Text, numOfElems); } String^ mesStr = wchartoUni(buffer,numOfElems); //MessageBox::Show(mesStr); unsigned char* mes = (unsigned char*) str2Char(mesStr); //ma hoa file message char* key = str2Char(txtKeyE->Text); int n = 0; 70 DES_cblock key2; DES_key_schedule schedule; memcpy(key2,key,8); DES_set_odd_parity(&key2); DES_set_key_checked(&key2,&schedule); //ma hoa file message int size = strlen((char*)mes); unsigned char* resMes = (unsigned char*) malloc(size); DES_cfb64_encrypt(mes,resMes,size,&schedule,&key2,&n, DES_ENCRYPT); //ghi thong diep da duoc ma hoa file duoi dang thap phan //String^ strMes = uncharArrToStr01(resMes,size); String^ strMes = uncharArrtoStrASCII(resMes,size); StreamWriter^ sw = gcnew StreamWriter( txtEMesE->Text); sw->Write(strMes); sw->Close(); //doc file chu ky long sizeSig; unsigned char* sig = readFileUnchar(txtSigE->Text, sizeSig); //ma hoa chu ky va ghi chu ky file unsigned char* resSig = (unsigned char*) malloc(sizeSig); DES_cfb64_encrypt(sig,resSig,sizeSig,&schedule,&key2, &n, DES_ENCRYPT); //ghi chu ky da ma hoa file duoi dang thap phan String^ sigMes = uncharArrtoStrASCII(resSig,sizeSig); sw = gcnew StreamWriter(txtESigE->Text); sw->Write(sigMes); sw->Close(); MessageBox::Show("Mã hóa thành cơng"); } } 71 } 5) Code Cài đặt chức giải mã private: System::Void onDecryptClick(System::Object^ sender, System::EventArgs^ e) { if(!File::Exists(txtEMesD->Text)){ MessageBox::Show("File " + txtEMesD->Text + L" không tồn tại"); } else if(!File::Exists(txtESigD->Text)){ MessageBox::Show("File " + txtESigD->Text + L" không tồn tại"); } else{ //doc du lieu tu file thong diep da ma hoa vao mang unsigned char char* temp1 = readFile(txtEMesD->Text); long size = strlen(temp1)/3; unsigned char* enFileArr = conDecToUnchar(temp1); //giai ma DES_cblock key2; DES_key_schedule schedule; int n = 0; unsigned char* res = (unsigned char*) malloc(size); char* key = str2Char(txtKeyD->Text); memcpy(key2,key,8); DES_set_odd_parity(&key2); DES_set_key_checked(&key2, &schedule); DES_cfb64_encrypt(enFileArr,res,size,&schedule, &key2,&n, DES_DECRYPT); res[size] = '\0'; String^ mesStr = gcnew String((char*)res); //doi day 01 mang wchar_t int mesLen; 72 wchar_t* originalMes = conUniToWchar(mesStr,mesLen); int trueLen; for (trueLen = mesLen - 1; trueLen > 0; trueLen ){ if ( originalMes[ trueLen ] != L'췍') break; } trueLen = trueLen + 1; FILE* pFile = _wfsopen(str2Wchar(txtMesD->Text), L"wt,ccs=Unicode", _SH_DENYNO); fwrite(originalMes,sizeof(wchar_t),trueLen,pFile); fclose(pFile); char* temp2 = readFile(txtESigD->Text); long sizeSig = strlen(temp2)/3; unsigned char* enSigArr = conDecToUnchar(temp2); unsigned char* resSig = (unsigned char*) malloc(sizeSig); DES_cfb64_encrypt(enSigArr,resSig,sizeSig,&schedule,&key2,&n, DES_DECRYPT); resSig[sizeSig] = '\0'; String^ sigStr = gcnew String((char*)resSig); StreamWriter^ sw = gcnew StreamWriter( txtSigD->Text); sw->Write(sigStr->ToString()); sw->Close(); MessageBox::Show( L"Giải mã xong !!!"); } } ... tin, … Nguyên nhân g? ?y tổn thất liệu cách giải vấn đề chuyển giao hồ sơ y tế trình b? ?y nội dung chương 25 Chƣơng NGUYÊN NHÂN VÀ PHƢƠNG PHÁP BẢO VỆ THÔNG TIN TRONG CHUYỂN GIAO HỒ SƠ Y TẾ ĐIỆN TỬ... Khi hồ sơ y tế điện tử gửi qua mạng bị kẻ xâm nhập thay hồ sơ khác thay cho hồ sơ gốc - Hồ sơ Y tế bị giả mạo: Các thông tin hồ sơ Y tế truyền bị thay đổi thay đến tay người nhận + Thay đổi hồ sơ. .. b? ?y khái niệm y tế điện tử, loại hình, tính chất, lợi ích ứng dụng cơng nghệ thơng tin y tế điện tử; số nguyên nhân (có thể) g? ?y tổn thất liệu mạng lưới y tế cách giải chuyển giao hồ sơ y tế điện

Ngày đăng: 24/02/2021, 22:00

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w