i
S húa bi Trung tõm Hc liu http://www.lrc-tnu.edu.vn/
đạ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 HIU NGUYấN NHN GY TN THT
D LIU V PHNG PHP BO V THễNG TIN
TRONG CHUYN GIAO H S Y T IN T
LUN VN THC S KHOA HC MY TNH thái nguyên - năm 2014
ii
Thái Nguyên, tháng 09 năm
2014HỒ THỊ LÂM BÌNH
iv
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
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 1
CHƢƠNG 1. MỘT SỐ KHÁI NIỆM CƠ BẢN 4
1.1. TỔNG QUAN VỀ AN TOÀN THÔNG TIN 4
1.1.1. Khái niệm an toàn thông tin 4
1.1.2. Mục tiêu và nguyên tắc chung của an toàn thông tin 4
1.1.3. Sự cần thiết của an toàn thông tin 5
1.2. CƠ SỞ TOÁN HỌC 6
1.2.1. Ước chung lớn nhất, bội chung nhỏ nhất 6
1.2.2. Quan hệ "đồng dư" 7
1.2.3. Số nguyên tố 9
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 và sự ách tắc trong 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 dữ 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 3. 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 năng ký số 55
3.3.2. Cài đặt chức năng xác thực chữ ký số 55
vi
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
3.3.3. Cài đặt chức năng mã hóa 55
3.3.4. Cài đặt chức năng giải mã 55
3.4. CẤU HÌNH HỆ THỐNG 55
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 dữ 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 dữ liệu hoặc
(tóm tắt thông điệp), hàm băm
PKI
Public Key Infrastructure
Mã khóa công khai trên mạng
riêng ảo
Public key
DANH MỤC CÁC BẢNG
Bảng 1.1
Thuật toán Euclide tìm ước chung lớn nhất
Bảng 1.2
Tìm phần tử nghịch đảo của 3 trong Z
7
Bảng 2.1
So sánh giấu thông tin mật và giấu thông tin thủy vân
Bảng 2.2
Bảng liên kết sự khác nhau cơ bản giữa giấu thông tin
trong ảnh đen trắng và ảnh màu
ix
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/ DANH MỤC CÁC HÌNH VẼ
Hình 1.1
Quá trình thực hiện cơ chế mã hóa
Hình 1.2
Quá trình thực hiện 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í của máy chủ web trong hạ tầng CNTT của các tổ chức, doanh
MỞ ĐẦU
1. Lý do chọn đề tài
Nguy cơ mất an toàn thông tin do nhiều nguyên nhân, đối tượng tấn công đa
dạng… Thiệt hại từ những vụ tấn công mạng là rất lớn, đặc biệt là những 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 những truy cập trái phép trở thành nhu cầu cấp bách trong các hoạt động
truyền thông. Vì vậy các thông tin truyền đi phải đảm bảo tính chính xác, không bị
sửa đổi và rất nhiều trường hợp cần được đảm bảo tính bảo mật thông tin và cần
được xác thực đúng người gửi, người nhận. Xuất phát từ thực tế, nhiều biện pháp về
an toàn thông tin ra đời.
Luận văn “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ử” được nghiên cứu và thực hiện trên
các vấn đề cuộc sống đòi hỏi việc trao đổi thông tin hàng ngày giữa các tổ chức và
cá nhân mà yêu cầu là an toàn và bảo mật thông tin được đề ra, kèm theo là demo
thử nghiệm ứng dụng chữ ký số RSA.
2. Đối tƣợng và phạm vi nghiên cứu
Đối tƣợng nghiên cứu
Nghiên cứu các giải pháp mã hóa để bảo mật thông tin, những phương pháp,
kỹ thuật tạo các chữ ký số trên tài liệu, văn bản điện tử để xác thực nguồn gốc tài
liệu hay văn bản người gửi.
Các hệ mật mã khóa công khai (trong đó hệ mã RSA được sử dụng là đối
tượng nghiên cứu chính của đề tài) nhằm phát hiện các phép xử lý toán học cần tối
ưu, ngoài ra từ hệ mã đưa ra phương pháp mã hóa tệp văn bản để bảo vệ thông tin.
Từ kết quả thu được bước đầu đề tài đưa ra một cách xây dựng thử nghiệm vào chữ
ký số áp dụng được các kết quả tối ưu.
Luận văn sẽ tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học,
thuật toán và độ phức tạp của mã hóa nói chung và của hệ mã hóa công khai nói riêng.
A
Là tập hữu hạn các chữ ký có thể
K
Là tập hữu hạn các khóa có thể
S
Là tập các thuật toán ký
3
V
Là tập các thuật toán kiểm thử
C
Là tập hữu hạn các bản mã có thể
E
Là tập hợp các hàm mã hóa có thể
D
Là tập các hàm giải mã có thể
e
k
Thuật toán mã hóa
d
k
Thuật toán giải mã
Gcd
Ước chung lớn nhất
Lcm
Bội chung nhỏ nhất
Sig
k
- Tính sẵn dùng: tài sản luôn sẵn sàng được sử dụng bởi những người có
thẩm quyền.
- Tính xác thực: quá trình xác nhận đặc điểm nhận biết của người dùng qua
đó quyết định quyền truy nhập CSDL và khả năng thực hiện các giao dịch của
người đó. Việc xác thực thường qua tên truy nhập và mật khẩu hay các phương
pháp phức tạp hơn như chứng thực số.
Nguyên tắc của an toàn bảo mật thông tin:
- Việc thẩm định về bảo mật phải là khó và cần tính tới tất cả các tình huống,
khả năng tấn công có thể được thực hiện.
5
- Tài sản được bảo vệ cho tới khi hết giá trị sử dụng hoặc hết ý nghĩa bảo mật.
1.1.3. Sự cần thiết của an toàn thông tin
Người ta nhận được một bản tin trên mạng, thì lấy gì đảm bảo rằng nó là của
đối tác đã gửi cho họ. Khi nhận được tờ Sec điện tử hay tiền điện tử trên mạng, thì
có cách nào xác nhận rằng nó là của đối tác đã thanh toán cho ta. Tiền đó là thật hay
tiền giả?
Thông thường người gửi văn bản quan trọng phải ký phía dưới. Nhưng khi
truyền tin trên mạng, văn bản hay giấy thanh toán có thể bị trộm cắp và phía dưới có
thể dán một chữ ký khác. Tóm lại với hình thức ký như cũ, chữ ký rất dễ bị giả mạo.
Để giải quyết tình hình trên và đảm bảo cho nhu cầu giữ bí mật thông tin liên
lạc cũng như đảm bảo an toàn dữ liệu, từ lâu con người đã phát minh ra một số
công cụ hết sức hiệu quả như:
Mã hóa được hiểu là thay đổi hình dạng thông tin gốc, khiến người khác
khó nhận ra, tức là giấu đi ý nghĩa của thông tin gốc. Mã hóa là một công cụ mạnh,
và có lịch sử lâu đời, đã có nhiều kết quả nghiên cứu thành công và có ứng
dụng rất lớn trong việc đảm bảo an toàn thông tin liên lạc.
Chữ kí số (digital signature) là đoạn dữ liệu ngắn đính kèm với văn bản gốc
, kí hiệu
\ab
. Ta nói
b
là ước của
a
và
a
là bội của
b
.
Ví dụ:
Cho a = 6, b = 2, ta có 6 = 2*3, ký hiệu 2\6. Ở đây 2 là ước của 6 và 6 là bội của 2.
Cho các số nguyên a, b ≠ 0, tồn tại cặp số nguyên (q, r) (0 ≤ r≤ /b/) duy nhất
sao cho a = b*q + r. Khi đó q gọi là thương nguyên, r gọi là số dư của phép chia a
cho b. Nếu r = 0 thì ta có phép chia hết.
Ví dụ: Cho a = 13, b = 5, ta có 12 = 5*2 + 3. Ở đây thương q=2, số dư là r = 3.
1.2.1.2. Ƣớc chung lớn nhất, bội chung nhỏ nhất
- Số nguyên
d
được gọi là ước chung của các số nguyên
12
, , ,
n
a a a
, nếu nó
là ước của tất cả các số đó.
- Số nguyên m được gọi là bội chung của các số nguyên
12
, , ,
n
a a ad
hay
12
, , ,
n
a a ad UCLN
. Nếu
12
gcd( , , , )
n
a a a
.
- Nếu
12
gcd( , , , ) 1
n
a a a
thì các số
12
, , ,
n
a a a
được gọi là nguyên tố
cùng nhau.
- Một bội chung
0m
của các số nguyên
12
, , ,
7
Ví dụ: Cho a=20, b=25, gcd (20,25)=5, lcm (20,25)=100.
Hai số 20 và 13 là số nguyên tố cùng nhau, vì gcd (20, 13) = 1.
Ví dụ: a = 30, b = 18; gcd(30,18) = gcd(18,12) = gcd(12,6) = gcd(6,0) = 6
a
b
r
a = b*q + r
30
18
12
30 = 18*1 +12
18
12
6
18 = 12*1+ 6
12
6
0
12 = 6*2 + 0
Bảng 1.1 Thuật toán Euclide tìm ước chung lớn nhất
Ký hiệu : Zn = {0, 1, 2, … , n-1} là tập các số nguyên không âm < n.
Z
*
n
= {e Zn , e là nguyên tố cùng nhau với n}. Tức là e # 0.
1.2.2. Quan hệ "đồng dƣ"
+ Có thể nhân hai vế của một đồng dư thức cùng với một số:
a b (mod m) ac bc (mod m) với mọi c Z
+ Có thể nâng lũy thừa bậc nguyên không âm cho 2 vế của một đồng dư thức
a b ( mod m) a
n
b
n
(mod m) với mọi n Z
+
+ Có thể chia 2 vế đồng dư thức cho một ước chung nguyên tố với modulo
c\a, c\b, (c,m)=1, a b (mod m) a/c b/c (mod m).
+ Có thể nhân 2 vế đồng dư thức và modulo cùng với một số nguyên dương:
Nếu a b (mod m), c>0 ac bc (mod mc)
+ Có thể chia 2 vế đồng dư thức và modulo cho cùng một số nguyên dương
là ước chung của chúng:
Nếu c/(a, b, m) a/c b/c (mod m/c)
+ a b (mod m ) a b (mod k ) với k\ m
+ a b (mod m) gcd(a, m) = gcd(b,m)
Các lớp thặng dƣ
- Quan hệ “đồng dư” theo modulo m trên tập Z (tập các số nguyên) là một
quan hệ tương đương (vì có tính chất phản xạ, đối xứng, bắc cầu), do đó nó tạo ra
trên tập Z một phân hoặc chỉ gồm các lớp tương đương khi và chỉ khi chúng có
cùng một số dư khi chia cho m.
- Mỗi lớp tương đương đại diện bởi một số duy nhất Z
m
= { 0, 1, 2, …, m-1}
là số dư khi chia các số trong lớp cho m, ký hiệu một lớp được đại diện bởi số a là
[a]
m
n
nn
k
n P P P
trong đó: k, n (i = 1, 2, 3, …, k) là các số tự nhiên, Pi là các số
nguyên tố, từng đôi một khác nhau.
2) Định lý Mersence
Cho p= 2
k
– 1, nếu p là số nguyên tố thì k phải là số nguyên tố.
3) Hàm Euler
Cho số nguyên dương a, số lượng các số nguyên dương bé hơn n và nguyên
tố cùng nhau với n được ký hiệu
()p
và gọi là hàm Euler.
Nhận xét: Nếu p là số nguyên tố, thì
( ) 1pp
Ví dụ: Tập các số nguyên không âm nhỏ hơn 7 là Z
7
= { 0, 1, 2, 3, 4, 5, 6}
Do 7 là số nguyên tố, nên tập các số nguyên dương nhỏ hơn 7 và nguyên tố
cùng nhau với 7 là Z
7
* ={ 1, 2, 3, 4, 5, 6}. Khi đó | Z| =
( ) 1pp
=7 – 1 = 6
Định lý về hàm Euler
Nếu n là tích của hai số nguyên tố p, q thì
( ) ( ). ( ) ( 1)( 1)n p q p q
()
1(mod )
m
am
m
Trường hợp m là số nguyên tó, ta có định lý Ferma.
Ví dụ: m = 10, (m)= (2). (5)=1*4=4
Ta có 7
4
1( mod 10), 9
4
1( mod 10), 21
4
1( mod 10)
Hệ quả 1
Nếu gcd (c, m)=1 và a b ( mod (m)) với a,b là các số tự nhiên thì c
a
=
c
b
(mod m) và suy ra
mod ( )
(mod ).
a a m
mcc
Chứng minh:
(mod ( ))a b m
nên
( ),a b k m k Z
, nếu tồn tại b Z
n
sao cho
. 1(mod )ab n
, ta nói b là phần tử
nghịch đảo của a trong Z
n
và ký hiệu a
-1
.
Một phần tử nghịch đảo, gọi là khả nghịch.
Input:
,
n
a Z n
Output: Phần tử nghịch đảo của a
Procedure Invert ( a,n);
Begin
g
0
:= n; g
1
:= a; u
0
:= 1; u
1
:= 0; v
0
:= 0; v
t:= v
i-1
;
if t > 0 then a
-1
:= t else a
-1
:= t+n;
end;
Ví dụ: Tìm phần tử nghịch đảo của 3 trong Z
7
. Tức là phải giải phương trình
3.x 1 (mod 7), x sẽ là phần tử nghịch đảo của 3. 12
I
g
i
u
i
v
i
y
0
a
mod n = 1
- Hệ quả: Nếu p là số nguyên tố và (a, p) = 1 thì a
p-1
(mod p) = 1
1.2.5. Các phép tính cơ bản trong không gian modulo
Cho n là số nguyên dương. Các phần tử trong Zn được thể hiện bởi các số
nguyên {0, 1, 2, , n-1}. Nếu a, b Zn thì:
(a + b) mod n = Vì vậy, phép cộng modulo (và phép trừ modulo) có thể được
thực hiện mà không cần thực hiện các phép chia dài. Phép nhân modulo của a và b
được thực hiện bằng phép nhân thông thường a với b như các số nguyên bình
thường, sau đó lấy phần dư của kết quả sau khi chia cho n.
1.2.6. Độ phức tạp của thuật toán
1). Chi phí của thuật toán.
Chi phí phải trả cho một quá trình tính toán gồm chi phí thời gian và bộ nhớ.
+ Chi phí thời gian của một quá trình tính toán là thời gian cần thiết để thực hiện
một quá trình tính toán.
+ Chi phí bộ nhớ của một quá trình tính toán là số ô nhớ cần thiết để thực hiện một
quá trình tính toán.
Gọi A là một thuật toán, e là dữ liệu vào của bài toán đã được mã hóa.
Thuật toán A tính trên dữ liệu vào e phải trả một giá nhất định.
Ký hiệu: t
A
(e) là giá thời gian và l
A
(e) là giá bộ nhớ.
2). Độ phức tạp về bộ nhớ:
t
A
(n) = max { l
“Che” thông tin (dữ liệu) hay “mã hóa” thông tin là thay đổi hình dạng thông
tin gốc, và người khác “khó” nhận ra.
Thuật toán mã hóa là thủ tục tính toán để thực hiện mã hóa hay giải mã.
Khóa mã hóa là một giá trị làm cho thuật toán mã hóa thực hiện một cách
riêng biệt và sinh bản rõ riêng.Thông thường khóa càng lớn thì bản mã càng an
toàn, Phạm vi các giá trị có thể có của khóa gọi là không gian khóa.
Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng như
làm rõ nó.
a) Hệ mã hóa
Việc mã hóa phải theo quy tắc nhất định, quy tắc đó gọi là Hệ mã hóa. Hệ
mã hóa được định nghĩa là bộ năm (P, C, K, E, D) trong đó:
P là tập hữu hạn các bản rõ có thể.
C là tập hữu hạn các bản mã có thể.
14
K là tập hữu hạn các khóa có thể.
E là tập các hàm lập mã.
D là tập các hàm giải mã.
Với khóa lập mã ke K, có hàm lập mã e
ke
E, e
ke
: P C,
Với khóa giải mã kd K, có hàm giải mã d
kd
D, d
kd
: C P,
khóa giải mã trùng nhau (ke=kd), như Hệ mã hóa “dịch chuyển” hay DES.
Người gửi G e
ke
(T) Người nhận N
(có khóa lập mã ke) (có khóa giải mã kd)
Tin tặc có thể trộm bản mã e
ke
(T)
15
Hình 1.1. Quá trình thực hiện cơ chế mã hóa
Hệ mã hóa khóa đối xứng còn gọi là hệ mã hóa khóa bí mật (hay khóa riêng),
vì phải giữ bí mật cả 2 khóa. Trước khi dùng Hệ mã hóa khóa đối xứng, người gửi
và người nhận phải thỏa thuận thuật toán mã hóa và khóa chung, sau đó bên gửi sẽ
mã hóa bản rõ (Plaintext) bằng cách sử dụng khóa bí mật này và gửi thông điệp đã
mã hóa cho bên nhận. Bên nhận sau khi nhận được thông điệp đã mã hóa sẽ sử dụng
chính khóa bí mật mà hai bên thỏa thuận để giải mã và lấy lại bản rõ (Plaintext). Độ
an toàn của Hệ mã hóa loại này phụ thuộc vào khóa. Mã hóa khóa đối xứng có thể phân làm hai loại:
- Thứ nhất: Tác động lên bản rõ theo từng nhóm bit (hay còn gọi là khối –
Block) và thuật toán áp dụng gọi là mã hóa khối (Block Cipher) [6]. Kích thước
chung của một khối là 64 bit.
- Thứ hai: Tác động lên bản rõ theo từng bit một. Thuật toán áp dụng gọi là
mã hóa dòng (Stream Cipher). Dữ liệu của văn bản được mã hóa từng bit một.
Quá trình truyền và sử dụng mã hóa khóa công khai nhƣ sau:
Gửi
Nhận
Nhận khóa công khai
Nhận khóa riêng
Hình 1.2. Quá trình thực hiện mã hóa khóa công khai