Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)Nghiên cứu kỹ thuật nén dữ liệu y sinh và bảo mật thông tin cho bệnh nhân (LV thạc sĩ)
Trang 1-
HOÀNG HỮU THẮNG
NGHIÊN CỨU KỸ THUẬT NÉN DỮ LIỆU Y SINH
VÀ BẢO MẬT THÔNG TIN CHO BỆNH NHÂN
THÀNH PHỐ HỒ CHÍ MINH - 2017
Trang 2-
NGHIÊN CỨU KỸ THUẬT NÉN DỮ LIỆU Y SINH
VÀ BẢO MẬT THÔNG TIN CHO BỆNH NHÂN
CHUYÊN NGÀNH: KỸ THUẬT VIỄN THÔNG
MÃ SỐ: 60.52.02.08
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS NGUYỄN LƯƠNG NHẬT
THÀNH PHỐ HỒ CHÍ MINH – NĂM 2017
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của riêng tôi
Các số liệu, kết qủa nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Tp Hồ Chí Minh, ngày 25 tháng 5 năm 2017
Học viên thực hiện luận văn
Hoàng Hữu Thắng
Trang 4LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn đến toàn thể các Thầy, Cô giáo Học viện Công nghệ Bưu chính Viễn thông đã tận tình chỉ bảo em trong suốt thời gian học tập tại Nhà trường
Em xin bày tỏ lòng biết ơn sâu sắc đến TS NGUYỄN LƯƠNG NHẬT, người
đã trực tiếp hướng dẩn, tạo mọi điều kiện thuận lợi và tận tình chỉ bảo cho em trong suốt thời gian làm luận văn tốt nghiệp
Bên cạnh đó, để hoàn thành luận văn này, em cũng đã nhận được rất nhiều sự giúp đỡ, những lời động viên qúy báu của các bạn bè, gia đình và đồng nghiệp Em xin chân thành cảm ơn
Tuy nhiên, Do thời gian hạn hẹp, mặc dù đã nỗ lực hết sức mình, nhưng chắc rằng luận văn khó tránh khỏi thiếu sót Em rất mong nhận được sự thông cảm và chỉ bảo tận tình của quý Thầy cô và các bạn
Em xin chân thành cảm ơn
Tp Hồ Chí Minh, ngày 25 tháng 5 năm 2017
Học viên thực hiện luận văn
Hoàng Hữu Thắng
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT vi
DANH SÁCH BẢNG vii
DANH SÁCH HÌNH VẼ viii
MỞ ĐẦU 1
Chương 1 - TỔNG QUAN VỀ MÃ HÓA, GIẤU TIN VÀ NÉN DỮ LIỆU 2
1.1 Y tế thông minh tại Việt Nam 2
1.2 Tổng quan về mật mã học 3
1.2.1 Giới thiệu 3
1.2.2 Hệ mật mã khóa bí mật 4
1.3 Tổng quan về giấu tin 6
1.3.1 Giới thiệu 6
1.3.2 Phân loại 7
1.3.3 Mô hình tổng quát của hệ thống giấu tin (Steganography) 8
1.3.4 Các yêu cầu của một bài toán giấu tin 9
1.4 Tổng quan về kỹ thuật nén dữ liệu 10
1.5 Kết luận chương 11
Chương 2 - CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU Y SINH VÀ GIẤU THÔNG TIN BỆNH NHÂN 12
2.1 Nghiên cứu các kỹ thuật nén dữ liệu y sinh 12
Trang 62.1.1 Nén dữ liệu y sinh dùng thuật toán Turning Point 12
2.1.2 Nén dữ liệu y sinh dùng biến đổi Wavelet rời rạc 13
2.1.3 Nén dữ liệu y sinh dùng biến đổi Cosin rời rạc 17
2.2 Nghiên cứu kỹ thuật mã hóa dùng mật mã tiên tiến AES (Advanced Encryption Standard) 18
2.2.1 Giới thiệu mật mã tiên tiến AES 18
2.2.2 Các khái niệm và cơ sở toán học của AES 19
2.2.3 Mô tả thuật toán AES 20
2.2.4 Các biến đổi trong thuật toán AES 23
2.2.5 Ưu và nhược điểm của AES 29
2.3 Hàm băm MD5 29
2.4 Nghiên cứu các kỹ thuật giấu thông tin bệnh nhân 32
2.4.1 Kỹ thuật ẩn dữ liệu bằng phương pháp thay thế bít có trọng số thấp nhất (LSB-Least Significant Bit) 32
2.4.2 Kỹ thuật ẩn dữ liệu trên miền biến đổi Wavelet rời rạc (DWT-Discrete Wavelet Transform) 33
2.5 Nén dữ liệu y sinh và bảo mật thông tin bệnh nhân kết hợp mã hóa 35
2.6 Kết luận chương 37
Chương 3 - CHƯƠNG TRÌNH MÔ PHỎNG 38
3.1 Ngôn ngữ lập trình và mục đích của chương trình 38
3.2 Lưu đồ thực hiện chương trình 38
3.3 Giao diện chương trình và các bước thực hiện mô phỏng 40
3.3.1 Giao diện chương trình mô phỏng 40
3.3.2 Các bước thực hiện mô phỏng 41
Trang 73.4 Kết quả mô phỏng – đánh giá 42
3.4.1 Dung lượng nhúng của các phương pháp 44
3.4.2 Tỷ lệ nén 44
3.4.3 Tính vô hình của thuật toán giấu tin 45
3.4.4 Tính toàn vẹn dữ liệu của thuật toán giấu tin 49
3.4.5 Khả năng bảo mật của hệ thống 50
3.4.6 Tính sẵn sàng – thời gian thực hiện 50
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 54
DANH MỤC TÀI LIỆU THAM KHẢO 56
Trang 8DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
AES Advanced Encryption Standard Chuẩn mật mã tiên tiến
DCT Discrete Cosine Transform Biến đổi Cosine rời rạc
DWT Discrete Wavelet Transform Biến đổi Wavelet rời rạc HSV Hue, Saturation, Value Màu sắc, độ bão hòa, giá trị
Adelman JPEG Joint Photographic Experts Group Chuẩn nén ảnh JPEG
LSB Least Significant Bit Bit có trọng số thấp nhất MSE Mean Squared Error Sai số bình phương trung bình PSNR Peak Signal - to - Noise Ratio Tỉ số đỉnh tín hiệu trên nhiễu MD5 Message Digest algorithm 5 Hàm băm MD5
Trang 9DANH SÁCH BẢNG
Bảng 1.1: Bảng mã dịch vòng 26 chữ cái 5
Bảng 1.2: So sánh Steganography và Watermarking 8
Bảng 2.1: Bảng độ dài của AES 22
Bảng 2.2: Hộp S thuận trong AES 23
Bảng 2.3: Hộp S nghịch trong AES 24
Bảng 3.1: Bảng so sánh dung lượng nhúng của các thuật toán 44
Bảng 3.2: So sánh tham số PRD với các thuật toán nén DWT, Turning Point, DCT.48 Bảng 3.3: So sánh tham số PRD trước và sau khi nhúng với thuật toán nén TP 48
Bảng 3.2: Tham số MSE với các tín hiệu điện tim 49
Bảng 3.3: So sánh độ mạnh của các hệ mật mã theo NIST 50
Bảng 3.4: Thời gian mã hóa và giải mã AES-128 với các loại dữ liệu khác nhau 51
Bảng 3.5: Thời gian nén, mã hóa, nhúng tại đầu phát ứng với 05 dữ liệu đầu vào 52
Bảng 3.6: Tách, giải mã, giải nén tại đầu thu ứng với 05 dữ liệu đầu vào 52
Trang 10DANH SÁCH HÌNH VẼ
Hình 1.1: Sơ đồ khối chức năng hệ mật mã khóa bí mật 4
Hình 1.2: Phân loại giấu tin theo miền nhúng thông tin 7
Hình 1.3: Lược đồ chung cho quá trình giấu tin 8
Hình 1.4: Lược đồ chung cho quá trình bóc tách thông tin 9
Hình 2.1: Tín hiệu điện tim trước và sau khi nén dung thuật toán Turning Point 12
Hình 2.2: Quá trình phân tích và tổng hợp dùng DWT 14
Hình 2.3: Phân tích Wavelet hai chiều 15
Hình 2.4: Biến đổi DWT hai chiều họ Haar 15
Hình 2.5: Nén dùng dùng biến đổi Cosine với tỷ lệ 5:1 18
Hình 2.6: Phép biến đổi Block ↔State 19
Hình 2.8: Thủ tục SubBytes 24
Hình 2.9: Ví dụ về thủ tục SubBytes 25
Hình 2.10: Thủ tục ShiftRow 25
Hình 2.11: Ví dụ thủ tục ShiftRow 26
Hình 2.12: Thủ tục Mixcolumns 26
Hình 2.13: Ví dụ thủ tục MixColumns 27
Hình 2.14: Thủ tục AddRoundKey 27
Hình 2.15: Qúa trình sinh khóa AES-128 28
Hình 2.16: Sơ đồ tổng thể MD5 30
Hình 2.17: Sơ đồ một vòng lặp của MD5 31
Hình 2.18: Qúa trình mã hóa, nén và nhúng dữ liệu 35
Hình 2.19: Qúa trình tách, giải mã và giải nén phía thu 37
Trang 11Hình 3.1: Qúa trình mã hóa, nén và nhúng tại phía phát 38
Hình 3.2: Qúa trình tách, giải mã và nén tai phía thu 39
Hình 3.3: Giao diện chương trình mô phỏng 40
Hình 3.4: Các bước thực hiện mô phỏng 41
Hình 3.5: Kết qủa nếu nhập không đúng password khi tách 42
Hình 3.6: Kết hợp giải mã AES nến nhập không đúng password 43
Hình 3.7: Kết quả giải nén nếu nhập đúng password 43
Bảng 3.1: Bảng so sánh dung lượng nhúng của các thuật toán 44
Hình 3.8: Dữ liệu y sinh 0017Irem trước và sau khi nén với Turning Point 45
Hình 3.9: Dữ liệu y sinh 0017Irem trước và sau khi nén bằng DWT mức 2 45
Hình 3.10: Dữ liệu 0017Irem trước và sau khi nén bằng DCT với tỷ lệ 5:1 45
Hình 3.11: Dữ liệu y sinh ban đầu 46
Hình 3.12: Dữ liệu y sinh sau khi nén và nhúng thông tin 47
Hình 3.13: Dữ liệu y sinh sau khi tách thông tin bệnh nhân và giải nén 47
Trang 12MỞ ĐẦU
Cùng với mức sống ngày càng cao thì nhu cầu khám chữa bệnh của con người ngày càng tăng, Do đó các hệ thống chẩn đoán bệnh từ xa được triển khai ứng dụng nhiều trong thực tế Các dữ liệu y sinh của bệnh nhân thu được từ các thiết bị y khoa như tín hiệu điện tim, điện não, hình ảnh chụp MRI, chụp CT, hình ảnh siêu âm… của bệnh nhân có thể được thu thập tại nhà, các trung tâm y tế, và sau đó truyền đến các bệnh viện uy tín để chẩn đoán bệnh bằng các hệ thống theo dõi bệnh nhân từ xa
Các dữ liệu y sinh này cùng với các thông tin bí mật của bệnh nhân được truyền qua các kênh không an toàn và được lưu trữ trong máy chủ của bệnh viện hay phòng khám để theo dõi chẩn đoán, chữa bệnh Việc rò rỉ thông tin có tính chất riêng tư của bệnh nhân có nguy cơ cao khi truyền qua mạng internet, Do đó cần phải có cơ chế bảo mật tính riêng tư của bệnh nhân Hơn nữa, để giảm dung lượng khi truyền và lưu trữ, dữ liệu y sinh được nén trước khi được bảo mật Phương pháp hữu hiệu để bảo mật thông tin bệnh nhân, bằng cách giấu thông tin bệnh nhân như: họ tên, ngày tháng năm sinh, nhóm máu, vân tay, … vào trong dữ liệu y sinh của người đó
Nội dung luận văn “Nghiên cứu các kỹ thuật nén dữ liệu y sinh và bảo mật thông tin bện nhân” bao gồm 3 chương:
Chương 1: Tổng quan về mã hóa, giấu tin và nén dữ liệu
Chương 2: Các phương pháp nén dữ liệu y sinh và giấu thông tin bệnh nhân Chương 3: Chương trình mô phỏng
Dù bản thân đã rất cố gắng trong quá trình thực hiện luận văn nhưng không thể tránh khỏi những hạn chế, thiếu sót nên rất mong những ý kiến đóng góp của quý Thầy, Cô và các bạn để luận văn được hoàn thiện hơn
Trang 13Chương 1 - TỔNG QUAN VỀ MÃ HÓA, GIẤU TIN VÀ NÉN
DỮ LIỆU 1.1 Y tế thông minh tại Việt Nam
Trong những năm gần đây, ngành y tế tại Việt Nam đã nỗ lực nâng cao chất lượng dịch vụ, với mục tiêu đáp ứng nhu cầu cho khám chữa bệnh là tốt nhất Bên cạnh việc bệnh nhân ở các thành phố lớn đến trực tiếp các bệnh viện, trung tâm y tế
có uy tín để khám chữa bệnh, thì số bệnh nhân còn lại ở các tuyến tỉnh, huyện, thị xã tiếp cận đến các trung tâm này là khá xa Do vậy, y tế thông minh tại Việt Nam ra đời
sẽ khắc phục được vấn đề về khoảng cách địa lý, bằng cách nếu các bệnh nhân chưa cần thiết đến trực tiếp các trung tâm y tế này để điều trị, mà trước mắt cần chẩn đoán bệnh, thì các dữ liệu y sinh như tín hiệu điện tim, điện não, hình ảnh chụp MRI, chụp CT…thu được từ các thiết bị y sinh tại địa phương, có thể gửi đến các trung tâm có
uy tín để chẩn đoán
Các dữ liệu y sinh này cùng với các thông tin cá nhân của bệnh nhân được truyền qua các kênh không an toàn và được lưu trữ trong máy chủ của bệnh viện hay phòng khám [16] Các bệnh nhân thường không muốn tiết lộ thông tin cá nhân của mình cho người khác biết, nên vấn đề bảo mật thông tin riêng tư là rất cần thiết Với
sự phát triển của các hệ mật mã [2], những thông tin cá nhân như họ tên, năm sinh, hay thậm chí là các đặc điểm sinh trắc của chủ thể như vân tay, mống mắt sẽ được
mã hóa và sau đó nhúng vào các tín hiệu y sinh [17], [14] Đồng thời để giảm dung lượng cho việc lưu trữ và hạn chế việc chiếm dụng băng thông truyền dẫn, các dữ liệu y sinh này sẽ được nén lại [21], [4]
Y tế thông minh cùng với các hệ mật mã và các kỹ thuật ẩn giấu thông tin, sẽ giúp cho thông tin cá nhân và dữ liệu y sinh được chia sẻ và quản lý một cách hiệu quả nhất Y tế thông minh giúp tối ưu hóa việc khám chữa bệnh, chăm sóc bệnh nhân, lấy ý kiến bác sĩ hay cảnh báo phòng ngừa bất cứ khi nào và ở đâu
Trên cả nước, việc ứng dụng y tế thông minh trong các bệnh viện đã được nhiều nơi bao gồm cả ở trung ương, tuyến tỉnh, huyện, xã, vùng sâu vùng xa,… triển
Trang 14khai thực hiện Ứng dụng y tế thông minh trong khám chữa bệnh giúp người bệnh tránh được tình trạng quá tải của các bệnh viện và khắc phục việc đi lại từ nơi ở đến các bệnh viện
1.2 Tổng quan về mật mã học
1.2.1 Giới thiệu
Mật mã học là một ngành khoa học có lịch sử khoảng 4000 năm bao gồm hai lĩnh vực: mã hóa (cryptography) và thám mã [26] Trong đó mã hóa nghiên cứu các thuật toán và phương thức để đảm bảo tính bí mật và xác thực của thông tin Các sản phẩm của lĩnh vực này là các hệ mã mật, các hàm băm, các hệ chữ ký điện tử , các cơ chế phân phối, quản lý khóa và các giao thức mật mã [7], [8]
Có hai phương thức mã hoá cơ bản là thay thế và hoán vị Mã hoá thay thế là phương thức mã hoá mà từng ký tự gốc hay một nhóm ký tự gốc của bản rõ được thay thế bởi các từ, các ký hiệu khác hay kết hợp với nhau cho phù hợp với một phương thức nhất định và khoá Mã hoá hoán vị là phương thức mã hoá mà các từ mã của thông tin gốc được sắp xếp lại theo một cách thức nhất định Các hệ mật mã hiện đại thường sử dụng kết hợp cả hai kỹ thuật này và cần phải đáp ứng được các yêu cầu sau:
Tính bảo mật (Confidentiality): Đảm bảo dữ liệu được truyền đến người nhận một cách an toàn và không bị lộ
Tính xác thực (Authentication): Giúp cho người nhận xác định được chắc chắn thông điệp mà họ nhận chính xác là thông điệp gốc ban đầu
Tính toàn vẹn (Integrity): Thông điệp đảm bảo không bị sai lệch khi truyền
Tính không thể chối bỏ (Non – repudation): người gửi, người nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông điệp
Các hệ thống mật mã nhìn có thể được chia làm ba loại: Mật mã khóa bí mật, mật mã khóa công khai và hàm băm xác thực Mỗi hệ thống mật mã đều có những ưu
Trang 15điểm và nhược điểm khác nhau Bảo đảm cho tính bí mật của thông tin đặc biệt là trong các giao dịch điện tử
1.2.2 Hệ mật mã khóa bí mật
Sơ đồ và chức năng hệ mật mã khóa bí mật
Hình 1.1: Sơ đồ khối chức năng hệ mật mã khóa bí mật
E: Thủ tục mã hóa (Encryption) Là phương pháp để chuyển đổi thông tin ban đầu thành dữ liệu đã được mật mã hóa
D: Thủ tục giải mã (Decryption) Là phương pháp để chuyển đổi dữ liệu đã được mật mã hóa thành thông tin ban đầu
Quá trình mã hóa được tiến hành bằng cách áp dụng các phương pháp của E lên thông tin P để trở thành thông tin đã mã hóa C: C = E k (P) (1.1)
Trang 16Quá trình giải mã được tiến hành ngược lại, đó là áp dụng các phương pháp của D lên thông tin C để được thông tin đã giải mã P: P = D k (C) (1.2)
Giới thiệu một số hệ mật mã khóa bí mật tiêu biểu
Mật mã dịch vòng
Mật mã dịch vòng dùng để mã hóa một văn bản thông thường bằng cách thiết lập sự tương ứng giữa các ký tự và các thặng dư theo modulo 26 như bảng 1.1
Mã hóa: Ek(x) = (x + k) mod 26 Giải mã: Dk(y) = (y – k) mod 26
Trong đó: x,y là mã tương ứng của bản rõ và bản mã, (x, y Z26; 0 k 25)
Nhận xét: Mật mã dịch vòng (theo modulo 26) là không an toàn vì nó có thể
bị thám mã theo phương pháp duyệt toàn bộ
Cho P = C = Z26 K chứa mọi hoán vị có thể có của 26 ký tự từ 0 đến 25 Với
mỗi phép hoán vị K, ta định nghĩa:
E( x)= (x) và D (y) = -1(y) (1.3)
trong đó -1 là hoán vị ngược của
Nhận xét: Mật mã hoán vị có không gian khóa lớn (26! > 4.1026) nên khó có thể tìm được khóa bằng phương pháp duyệt toàn bộ Tuy nhiên, bằng phương pháp thống kê, ta có thể dễ dàng thám mã được các bản mã loại này
Mật mã hoán vị
Trang 17Khác với mật mã thay thế, mật mã hoán vị là giữ các ký tự của bản rõ không thay đổi nhưng sẽ thay đổi vị trí của chúng bằng cách sắp xếp lại các ký tự này
Ngoài ra, các thuật toán mã hóa tiên tiến thường kết hợp các phương pháp trên
mà điển hình là chuẩn mật mã dữ liệu DES - Data Encryption Standard của Mỹ và nâng cao hơn nữa là AES-Advanced Encryption Standard sẽ được xem xét trong chương 2
Ưu nhược điểm của hệ mật mã khóa bí mật
Ưu điểm:
- Đơn giản (thời gian nhanh, yêu cầu phần cứng không phức tạp)
- Hiệu quả: dễ sử dụng cho các ứng dụng nhạy cảm với độ trễ và các ứng dụng di động
Nhược điểm:
- Phải dùng kênh an toàn để truyền khóa (Khó thiết lập và chi phí tốn kém)
- Việc tạo và giữ khóa bí mật phức tạp, khó làm việc trên mạng do phải tạo khóa nhiều
- Khó xây dựng các dịch vụ an toàn khác như: đảm bảo tính toàn vẹn, xác thực, chữ ký số…
1.3 Tổng quan về giấu tin
1.3.1 Giới thiệu
Giấu thông tin [27] là một kỹ thuật nhúng thông tin vào trong một nguồn đa phương tiện gọi là các phương tiện chứa mà không gây ra sự nhận biết về sự tồn tại của thông tin giấu (invisible) Phương pháp giấu tin là làm cho người ta khó có thể biết được có thông tin giấu bên trong đó do tính chất ẩn của thông tin được giấu
Giả sử ta có đối tượng cần bảo mật R Nếu dùng phương pháp mã hoá để bảo mật R ta sẽ thu được bản mật mã của R là R’ chẳng hạn Thông thường, R’ mang những giá trị “vô nghĩa”, nếu một thông tin vô nghĩa truyền trên đường truyền sẽ làm cho kẻ tấn công nghi ngờ và tìm mọi cách thám mã Ngược lại, nếu dùng phương pháp giấu R vào một đối tượng khác, một dữ liệu F chẳng hạn ta sẽ thu được dữ liệu
Trang 18F’ hầu như không sai khác với F Sau đó chỉ cần gửi dữ liệu F’ cho người nhận Để
lấy ra bản tin R từ dữ liệu F’ ta không cần dữ liệu gốc F Như vậy, kẻ tấn công sẽ không nghi ngờ về khả năng chứa tin mật trong F’
Sự khác biệt giữa mã hoá thông tin và giấu thông tin là mức độ biểu thị của đối tượng mang tin mật Nếu ta phối hợp hai phương pháp trên thì độ an toàn dữ liệu mật sẽ được nâng cao Chẳng hạn, ta có thể mã hoá R thành R’ sau đó mới giấu R’ vào dữ liệu F để thu được dữ liệu F’ Tóm lại, giấu thông tin và hệ mật mã có quan
hệ mật thiết với nhau, cùng xây dựng nên một hệ thống an toàn và bảo mật cho thông tin
1.3.2 Phân loại
Phân loại dựa theo đối tượng chứa tin
- Giấu tin trong ảnh
- Giấu tin trong âm thanh
- Giấu tin trong video
- Giấu tin trong văn bản
- Giấu tin trong tín hiệu y sinh
Phân loại dựa theo miền nhúng thông tin
Hình 1.2: Phân loại giấu tin theo miền nhúng thông tin
Trải phổ
Miền nhúng
Điều chỉnh bit có trọng số thấp nhất (LSB)
Giấu theo tính chẵn lẻ của
khối bit
Biến đổi cosin rời rạc (DCT) Biến đổi Wavelet rời rạc (DWT) Biến đổi Fourier rời rạc (DFT) Các biến đổi khác
Trang 19 Phân loại dựa theo mục đích sử dụng
Theo mục đích sử dụng ta phân loại hệ thống giấu tin thành: Giấu tin mật (Steganography) và Thủy vân (Watermarking) với các đặc điểm và yêu cầu sau:
Bảng 1.2: So sánh Steganography và Watermarking Giấu tin mật (Steganography) Thủy vân số (Watermarking)
Chủ yếu dùng trong các hoạt động xuất bản
Yêu cầu
Giấu được nhiều thông tin
Ít cần quan tâm tới độ bền của phương tiện chứa
Không thể nhận biết được việc giấu thông tin
Không kiểm tra được nếu không
có khóa thích hợp
Dung lượng cần nhúng không lớn
Dữ liệu nhúng cần phải bền vững trước các cuộc tấn công
Dữ liệu nhúng có thể nhận thấy hay không nhận thấy
Không kiểm tra được nếu không có khóa thích hợp
1.3.3 Mô hình tổng quát của hệ thống giấu tin (Steganography)
Hình 1.3: Lược đồ chung cho quá trình giấu tin
Khóa
Thông tin giấu
Bộ nhúng thông tin
Phương
tiện chứa
Phương tiện chứa đã được giấu tin Phân phối
Internet
Trang 20Có bốn đối tượng chính cho một bài toán giấu tin:
Thông tin giấu: Là thông tin nhúng vào đối tượng chứa, nó là thông tin cần được bảo vệ
Phương tiện chứa: Là môi trường để chứa thông tin cần che giấu
Khóa: Khóa này sẽ dùng để trích xuất lại thông tin mật
Phương tiện đã được giấu tin: Là đối tượng sau khi đã giấu thông tin vào
Khả năng chứa thông tin:
Khả năng này thể hiện ở lượng thông tin của thông điệp mật có thể nhúng trong đối tượng chứa Do tính bảo mật khả năng chứa tin luôn bị hạn chế ở tỉ lệ nhất định Do đó, trong trường hợp muốn ẩn một thông tin có kích thước lớn cần có phương tiện chứa lớn
Phương tiện chứa
có giấu tin
Thông tin giấu
Phương tiện chứa
Bộ trích xuất thông tin
Khóa
Hình 1.4: Lược đồ chung cho quá trình bóc tách thông tin
Trang 21 Tính toàn vẹn dữ liệu:
Tính chất này rất quan trọng trong ứng dụng truyền tin mật, thông tin trước khi nhúng và sau khi bóc tác phải tuyệt đối giống nhau vì vậy cần các phương pháp nhúng không tổn hao dữ liệu Có thể kết hợp kỹ thuật giấu tin với các thuật toán băm
để tăng tính xác thực cho dữ liệu mật
Tính bảo mật:
Tính bảo mật rất quan trọng trong ứng dụng truyền tin mật Vì vậy khi nghiên cứu các kỹ thuật giấu tin, người ta thường tăng tính ngẫu nhiên của các phương pháp Kết hợp các thuật toán mật mã vào kỹ thuật giấu tin là một hướng đi đúng đắn để tăng tính bảo mật của thông tin
1.4 Tổng quan về kỹ thuật nén dữ liệu
Nén dữ liệu[6], [12] là quá trình mã hóa thông tin dùng ít bit hơn so với thông tin chưa được mã hóa bằng cách dùng một hoặc kết hợp của các phương pháp nào đó Nén dữ liệu nhằm làm giảm lượng thông tin “dư thừa” trong dữ liệu gốc và do vậy, dung lượng thông tin thu được sau khi nén thường nhỏ hơn dữ liệu gốc rất nhiều
Bộ nhớ lưu trữ các dữ liệu y sinh tại các bệnh viện, trung tâm y tế là có hạn,
do vậy các dữ liệu y sinh cần phải nén lại, hơn nữa tín hiệu đã nén sẽ tiết kiệm được băng thông cho qúa trình truyền dữ liệu
Dựa trên phương pháp nén, người ta phân thành 2 dạng là nén dữ liệu trong miền không gian và nén sử dụng các biến đổi Trong khuôn khổ luận văn, em sẽ nghiên cứu kỹ thuật nén trong miền không gian bằng kỹ thuật Turning Point, và nén
sử dụng các biến đổi Wavelet rời rạc (DWT), Cosin rời rạc (DCT)
Trong qúa trình nén tín hiệu, thông số thường quan tâm là tỷ lệ nén (CR – Compression Ratio) và thường được định nghĩa:
Tỷ lệ nén: CR A
B
Trang 22Trong đó, A là kích thước dữ liệu gốc, và B là kích thước dữ liệu thu được sau
nén Ví dụ, tỷ lệ nén là 2:1, nghĩa là dữ liệu gốc có dung lượng là 2 sau khi nén dung lượng chỉ còn 1
1.5 Kết luận chương
Chương 1 đã trình bày một cách tổng quan về Y tế thông minh tại Việt Nam, nén dữ liệu, mật mã học, kỹ thuật giấu tin, Mỗi phương pháp đều có ưu và nhược điểm riêng, phần nào đáp ứng được yêu cầu về bảo mật Tuy nhiên, với việc trao đổi thông tin trên mạng ngày càng phong phú và khả năng tấn công của hacker là vô bờ bến Để tránh khả năng tấn công của hacker chẳng hạn như làm biến dạng dữ liệu chứa tin Điều đó làm cho phía người nhận không nhận được thông tin chính xác, do
đó để hạn chế khắc phục phần nào việc tấn công là sử dụng kỹ thuật ẩn dữ liệu Ẩn
dữ liệu là kỹ thuật cho phép ta nhúng thông tin vào vùng đặc biệt an toàn nào đó trên đối tượng chứa
Trang 23Chương 2 - CÁC PHƯƠNG PHÁP NÉN DỮ LIỆU Y SINH
VÀ GIẤU THÔNG TIN BỆNH NHÂN 2.1 Nghiên cứu các kỹ thuật nén dữ liệu y sinh
2.1.1 Nén dữ liệu y sinh dùng thuật toán Turning Point
Thuật toán Turning Point ban đầu được đề xuất bởi Mueller [5] để giảm số
mẫu của dữ liệu y sinh qua việc lựa chọn, giữ lại các mẫu tín hiệu quan trọng và giảm
bớt các mẫu ít quan trọng hơn Thuật toán Turning Point xử lý ba điểm dữ liệu tại
một thời điểm, lưu giữ điểm đầu tiên và gán nó như là điểm tham chiếu X0 Hai điểm
tiếp theo trở thành X1 và X2, tùy thuộc vào thời điểm nó giữ bước ngoặt (thay đổi độ
dốc) mà X1 hay X2 được giữ lại và trở thành điểm tham chiếu tiếp theo Các bước
thực hiện của thuật toán như sau:
- Bước 1: Đọc các mẫu dữ liệu y sinh gốc
- Bước 2: Lưu giữ điểm đầu tiên X0 và xét hai điểm tiếp theo X1, X2
- Bước 3: Nếu (X1 - X0) * (X2 - X1) < 0 thì giữ lại điểm X1, ngược lại thì giữ X2
- Bước 4: Gán điểm vừa giữ lại làm điểm tham chiếu và thực hiện lại từ bước 2 tới bước 4 cho đến khi kết thúc
- Bước 5: Xây dựng lại tín hiệu sau khi nén
Để trực quan hơn, lấy ví dụ cho quá trình nén tín hiệu điện tim như hình 2.1
Hình 2.1: Tín hiệu điện tim trước và sau khi nén dung thuật toán Turning Point
Trang 24Một khuyết điểm của thuật toán này là các mẫu tín hiệu được giữ lại không đại diện cho khoảng thời gian cách đều nhau Tuy nhiên sự biến dạng cục bộ này là không đáng kể khi dữ liệu y sinh được khôi phục lại độ phân giải gốc bằng phương pháp nội suy Hình 2.1 mô tả dữ liệu y sinh mẫu (lấy từ physioNet) trước và sau khi nén với thuật toán Turning Point
2.1.2 Nén dữ liệu y sinh dùng biến đổi Wavelet rời rạc
Biến đổi Wavelet liên tục (Continuous Wavelet Transform – CWT)
Biến đổi wavelet[8] liên tục thuận và nghịch của hàm f(t) bình phương khả
tích được viết theo hàm wavelet mẹ ( )t và liên hiệp phức *( )t như sau:
*1W( , )a b f t( ) (t b)dt
a a
2( )
Với ( )là biến đổi Fourier của ( )t
Biến đổi CWT[7] chỉ tồn tại nếu C dương và hữu hạn, do đó C được gọi là
điều kiện tồn tại của biến đổi Wavelet Đây cũng là điều kiện một hàm cần phải thỏa mãn để có thể được lựa chọn làm hàm wavelet
Trang 25Với mỗi giá trị của a thì a b, ( ) t là một bản sao của a b, ( ) t được dịch đi b đơn
vị trên trục thời gian Do đó b được gọi là tham số dịch, đặt b = 0 ta thu được:
a a
, nếu a càng nhỏ thì wavelet càng được nén mạnh hơn
Biến đổi Wavelet rời rạc (Discrete Wavelet Transform – DWT)
Để giảm thiểu công việc tính toán các hệ số wavelet ở mọi tỉ lệ, người ta chỉ
chọn ra một tập nhỏ các giá trị tỉ lệ và các vị trí trên cơ sở lũy thừa cơ số 2 Biến đổi
wavelet rời rạc[9], [11] thực chất là quá trình rời rạc hóa biến đổi wavelet liên tục với
sự lựa chọn hệ số a và b như sau: a = 2 m ;b = 2 m n;m,n ∈ Z (2.5)
Có thể hiểu phép biến đổi wavelet rời rạc như là áp dụng các bộ lọc thông cao
và thông thấp, sau đó tín hiệu được lấy mẫu xuống hệ số 2 tạo thành biến đổi wavelet
rời rạc mức 1 Sự tổng hợp các thành phần sau khi phân tích được gọi là biến đổi
wavelet rời rạc ngược (Inverse descrete Wavelet Transfrom – IDWT) Quá trình này
thực hiện ngược lại với quá trình phân tích bằng cách lấy mẫu lên hệ số 2 rồi sử dụng
các bộ lọc khôi phục L, H Hình 2.2 cho thấy quá trình phân tích và tổng hợp tín hiệu
dùng biến đổi wavelet rời rạc mức 1
Hình 2.2: Quá trình phân tích và tổng hợp dùng DWT
Theo [19], biến đổi Wavelet Haar (một chiều) tín hiệu F có N thành phần được
thực hiện theo (2.6) và (2.7) với i ∈ {0,1,…,(N/2)-1}
Xấp xỉ
Chi tiết
A
D
Trang 261 1 D(i)= F(2i)- F(2i+1)
Phát triển từ biến đổi wavelet rời rạc một chiều, có thể mở rộng định nghĩa biến đổi hai chiều bằng cách sử dụng các bộ lọc riêng biệt, thực hiện biến đổi một chiều đối với dữ liệu theo hàng rồi kế tiếp thực hiện theo cột như hình 2.3
Hình 2.3: Phân tích Wavelet hai chiều
Biến đổi hai chiều Wavelet Haar tín hiệu F với kích thước 2 x 2 đầu vào sẽ tạo
ra các thành phần A, H, V, D như hình 2.4
Hình 2.4: Biến đổi DWT hai chiều họ Haar
Các thành phần xấp xỉ - A, ngang - H, dọc - V, và đường chéo - D được khai triển từ (2.6) và (2.7) như sau:
DWT Theo cột
DWT Theo cột F3 F4
F2
X3
X2 X4
Trang 27 Thuật toán đề xuất
Dữ liệu y sinh được lưu trữ dưới dạng mảng một chiều, phép biến đổi DWT
áp dụng trên dữ liệu y sinh như công thức (2.6) và (2.7) Cho ra thành phần xấp xỉ A
và thành phần chi tiết D Trong đó thành phần xấp xỷ chứa các thông tin cơ bản của
dữ liệu y sinh ban đâu
Ý tưởng của thuật toán giữ lại thành phần xấp xỉ A, bỏ thành phần chi tiết D Sao cho thành phần giữ lại đại diện cho 2 mẫu tín hiệu gần nó nhất hay là trung bình của hai mẫu tín hiệu này
Theo công thức 2.6, giả sử i=0 ta có
F F
Để khôi phục lại tín hiệu ban đầu ta dung phương pháp nội suy Các bước sau đây thực hiện nén dữ liệu y sinh dung thuật toán DWT
Bước 1: Đọc dữ liệu y sinh
Bước 2: Biến đổi wavelet một chiều họ Haar trên mỗi đạo trình dữ liệu y sinh Bước 3: Chia thành phần xấp xỉ A cho 2
Bước 4: Bỏ đi thành phần chi tiết và lưu lại tín hiệu sau khi nén
Một khuyết điểm của thuật toán này là các đặc trưng ban đầu không được giữ lại Nhưng ưu điểm của nó là các mẫu tín sau khi nén đại diện cho các khoảng thời gian cách đều nhau
Trang 282.1.3 Nén dữ liệu y sinh dùng biến đổi Cosin rời rạc
Biến đổi DCT được[10], [25] đưa ra vào năm 1974 và hiện nay đang được ứng dụng rất nhiều trong các kỹ thuật xử lý tín hiệu số Ưu điểm của phép biến đổi là có thể tập trung năng lượng tốt và ít độ phức tạp trong tính toán Phương trình tổng quát
của biến đổi DCT thuận và nghịch cho một tín hiệu x có N thành phần như sau:
2, 2
k N
w k
k N N
Trang 292.2 Nghiên cứu kỹ thuật mã hóa dùng mật mã tiên tiến AES (Advanced
Encryption Standard)
2.2.1 Giới thiệu mật mã tiên tiến AES
Chuẩn mã hóa dữ liệu tiên tiến AES (Advanced Encryption Standard) [11] là một hê ̣mã khóa bí mật có tên là Rijndael (do hai nhà mật mã học người Bỉ là Joan Daemen và Vincent Rijmen đưa) cho phép xử lý các khối dữ liệu đầu vào có kích thước 128 bit sử dụng các khóa có độ dài 128, 192 hoặc 256 bit [14] Hệ mã Rijndael được thiết kế để có thể làm việc với các khóa và các khối dữ liệu có độ dài lớn hơn
Hình 2.5: Nén dùng dùng biến đổi Cosine với tỷ lệ 5:1
Trang 30tuy nhiên khi được chọn là một chuẩn do Viện Tiêu chuẩn và Công nghệ Quốc gia
Mỹ (NIST) đưa ra vào năm 2001, nó được qui định chỉ làm việc với các khối dữ liệu
128 bit và các khóa có độ dài 128, 192 hoặc 256 bit (do đó còn đặt cho nó các tên AES-128, AES-192, AES-256 tương ứng với độ dài khóa sử dụng)
2.2.2 Các khái niệm và cơ sở toán học của AES
Byte – Một nhóm 8 bit
Word – Một nhóm 32 bit có thể xem như một đơn vị tính toán độc lập hoặc một mảng 4 byte
Block – Một dãy các bit tạo thành ngõ vào, ra của hệ mã độ dài của Block là
số lượng các bit mà nó chứa Block cũng có thể xem là một dãy các byte
State – Một mảng hai chiều của các byte State bao gồm 4 hàng, mỗi hàng
có 4 byte Các phép toán AES sẽ được thực hiện xử lý trên từng State
Nb – Số lượng các cột (là các word 32 bit) tạo thành một State(Nb=4)
Nk – Số lượng các word 32 bit tạo thành khóa mã hóa K (Nk =4, 6 hoặc 8 tương ứng với AES-128, 192 hoặc 256)
Nr – Số lượng các vòng lặp của thuật toán (Nr = 10, 12, hoặc 14 tương ứng với AES-128, 192 hoặc 256)
Hình 2.6 mô tả quá trình chuyển đổi từ 1 Block sang State và ngược lại
Phép cộng
Hình 2.6: Phép biến đổi Block ↔State
Trang 31Phép cộng giữa hai phần tử (byte) trong trường hữu hạn được thực hiện bằng cách cộng theo modulo 2 các bit tương ứng trong biểu diễn của các byte này
ci = (ai bi) với 0 i 7 (2 11)
Phép nhân
Phép nhân được thực hiện trên trường hữu hạn bằng cách nhân hai đa thức rồi
rút gọn theo modulo của một đa thức bất khả quy p(x) = x8 + x4 + x3 + x + 1
C(x)= a(x) b(x) = a(x) b(x) modulo (x8 + x4 + x3 + x +1) (2.12)
Sự biến đổi modulo bởi p(x) bảo đảm rằng kết quả sẽ là một đa thức nhị phân
có bậc nhỏ hơn 8 và như vậy có thể được biểu diễn trong một byte
2.2.3 Mô tả thuật toán AES
Độ dài của ngõ vào, ngõ ra và các trạng thái (state) của chuẩn mã hóa AES là
128 bit tương ứng với giá trị của Nb = 4 (là số lượng các word 32-bit và cũng là số cột của mỗi trạng thái) Khóa của AES có độ dài là 128, 192 hoặc 256 bit tương ứng với các giá trị của Nk là 4, 6, hoặc 8 và cũng là số cột của khóa mã hóa Tương ứng với độ dài của khóa sử dụng số vòng lặp của thuật toán (Nr) nhận các giá trị 10 (Nk
= 4), 12 (Nk = 6) hoặc 14 (Nk = 8) Được minh họa qua bảng 2.1
Trang 32Hình 2.7: Lưu đồ thực hiện AES
Hình 2.7 mô tả toàn bộ thuật toán AES với ba quá trình: Mã hóa, giải mã và
mở rộng khóa Các khóa con sử dụng trong quá trình mã hóa và giải mã được tạo ra
từ quá trình mở rộng khóa (quá trình tạo khóa con Rijndael) Tiếp theo sẽ phân tích các quá trình trên và các bước biến đổi bên trong nó
Khóa mật mã
Quá trình Mã hóa Quá trình Mở rộng khóa Quá trình Giải mã
Trang 33Bảng 2.1 Bảng độ dài của AES
Độ dài khóa (Nk) Kích thước khối (Nb) Số lần lặp (Nr)
Có thể thấy tất cả các vòng đều thực hiện các công việc giống nhau dựa trên 4 hàm theo thứ tự SubBytes, ShiftRows, MixColumns và AddRoundKey trừ vòng cuối cùng bỏ qua việc thực hiện hàm MixColumns Khóa được sử dụng trong bước AddRoundKey phát sinh từ quá trình mở rộng khóa
Quá trình giải mã
Có hai cách giải mã: Giải mã trực tiếp và giải mã bằng thuật toán tương đương
Giải mã trực tiếp: Mọi biến đổi được dùng trong các phép tính mã hóa là khả nghịch Cài đặt phép tính giải mã là giữ nguyên các thứ tự các biến đổi đã dùng trong phép mã hóa, chỉ thay các phép biến đổi bằng các biến đổi ngược của chúng
Giải mã tương đương: được thực hiện bằng cách đảo ngược thứ tự của hàm InvSubBytes và InvShiftRows, thay đổi thứ tự của AddRoundKey, InvMixColumns
Trang 342.2.4 Các biến đổi trong thuật toán AES