Tải bản đầy đủ (.pdf) (81 trang)

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ử

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 81 trang )





i

S húa bi Trung tõm Hc liu

đạ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


Số hóa bởi Trung tâm Học liệu

LỜI CAM ĐOAN
Những kết quả nghiên cứu được trình bày trong luận văn là hoàn toàn trung
thực, không vi phạm bất cứ điều gì trong luật sở hữu trí tuệ và pháp luật Việt Nam.
Nếu sai, tôi hoàn toà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




iii

Số hóa bởi Trung tâm Học liệu

LỜI CẢM ƠN

Đầu tiên, tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất tới PGS.TS.
Trịnh Nhật Tiến đã định hướng và nhiệt tình hướng dẫn giúp đỡ tôi rất nhiều về
mặt chuyên môn, để tôi hoàn thành luận văn này.
Tôi xin gửi lời biết ơn đến các thầy, các cô đã giảng dạy và truyền đạt những
kinh nghiệm quý báu cho chúng tôi trong suốt hai năm học cao học tại trường Đại
học CNTT&TT - Đại học Thái Nguyên.
Tôi xin cảm ơn gia đình và các bạn học viên lớp CK11G - trường Đại học
CNTT&TT - Đại học Thái Nguyên những người đã luôn bên cạnh động viên, chia
sẻ và khích lệ tôi trong suốt thời gian học tập và 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




iv

Số hóa bởi Trung tâm Học liệu

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

1.2.4. Phần tử nghịch đảo đối với phép nhân 11
1.2.5. Các phép tính cơ bản trong không gian modulo 12
1.2.6. Độ phức tạp của thuật toán 12
1.3. CÁC HỆ MÃ HÓA 13
1.3.1. Khái niệm về 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 về 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 về hàm băm 20
1.5.2. Vấn đề đại diện tài liệu 21




v

Số hóa bởi Trung tâm Học liệu

1.6. ẨN GIẤU TIN (Steganography) 23
1.7. KẾT LUẬN CHƢƠNG 24
CHƢƠNG 2. 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 về 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 cơ và hiểm họa đối với 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 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

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

3.4.1. Yêu cầu hệ thống 55
3.4.2. Yêu cầu chức năng 55
3.4.3. Yêu cầu về 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 các tính năng 56
3.5. THIẾT KẾ HỆ THỐNG 56
3.5.1. Xác định các 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 năng ký số RSA- Ký 58
3.6.2. Chức năng xác thực chữ ký số RSA 59
3.6.3. Chức năng mã hóa 59
3.6.4. Chức năng 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




vii

Số hóa bởi Trung tâm Học liệu

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
ATTT

An toà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 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


Khoá công khai
Private key

Khoá bí mật
RSA
Rivest Shamir Adleman
Mã hóa dữ 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

Y tế điện tử





viii

Số hóa bởi Trung tâm Học liệu


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


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

nghiệp
Hình 2.3.
Sơ đồ chức năng của hệ mã hóa RSA
Hình 2.4
Sơ đồ biểu diễn thuật toán mã hóa
Hình 2.5
Lược đồ chung cho quá trình giấu tin
Hình 2.6
Tạo thông báo có ký bằng chữ ký số
Hình 3.1
Quá trình mã hóa và ký
Hình 3.2
Quá trình giải mã và xác thực
Hình 3.3
Load và 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 năng ký số
Hình 3.8
Giao diện Xác thực chữ ký số trên văn bản
Hình 3.9
Giao diện Mã hóa văn bản
Hình 3.10
Giao diện Giải mã văn bản
1




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.


2



Phạm vi nghiên cứu
Luận văn được nghiên cứu dựa trên:
1) Học hỏi, xin ý kiến của thầy hướng dẫn và các đồng nghiệp.
2) Nghiên cứu các tài liệu chuyên môn liên quan bằng tiếng Việt, tiếng Anh,
tìm kiếm thông tin trên Internet.
3) Tìm hiểu và quan sát thực tiễn.
4) Thử nghiệm chương trình.
3. Những nội dung nghiên cứu chính
Ngoài phần mở đầu và kết luận, kết cấu của luận văn gồm 3 chương. Bao
gồm các nội dung cụ thể sau:
Chương 1 đã tìm hiểu những vấn đề mang tính cơ sở toán học, cơ sở khoa
học nền tảng cho việc bảo mật và xác thực thông tin. Khái niệm về mã hóa, chữ ký
số, một số sơ đồ chữ ký hiện đang được sử dụng phổ biến, hàm băm, ẩn giấu tin, …
Chương 2 trình bày khái niệm về y tế điện tử, các loại hình, tính chất, lợi ích
khi ứng dụng công nghệ thông tin trong y tế điện tử; một số nguyên nhân (có thể)
gây tổn thất dữ liệu trong mạng lưới y tế và cách giải quyết trong chuyển giao hồ sơ
y tế điện tử; thuật toán và ví dụ minh họa khi sử dụng phương pháp mã hóa dữ liệu
(DES, RSA); phương pháp ẩn giấu tin (ẩn giấu tin bí mật và thủy vân số), phương
pháp sử dụng thuật toán chữ ký số (RSA, chữ ký không thể phủ định) để đưa ra một
trong số cách giải quyết gây tổn thất dữ liệu trong y tế điện tử.
Chương 3 là thử nghiệm chương trình đối với một trong số các bài toán giải
quyết vấn đề về chữ ký số RSA trong chuyển giao hồ sơ y tế điện tử.
4. Các ký hiệu dùng trong luận văn
P
Là tập hữu hạn các văn bản có thể

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

Thuật toán ký
Ver
k

Thuật toán kiểm tra chữ ký

4



Chƣơng 1. MỘT SỐ KHÁI NIỆM CƠ BẢN
1.1. TỔNG QUAN VỀ AN TOÀN THÔNG TIN
1.1.1. Khái niệm an toàn thông tin
An toàn nghĩa là thông tin được bảo vệ, các hệ thống và những dịch vụ có
khả năng chống lại những tai hoạ, lỗi và sự tác động không mong đợi, các thay đổi
tác động đến độ an toàn của hệ thống là nhỏ nhất.
Hệ thống có một trong các đặc điểm sau được gọi là không an toàn: Thông
tin bị rò rỉ (thông tin trong hệ thống bị người không được quyền truy cập tìm cách
lấy và sử dụng), thông tin bị xáo trộn (bị thay thế hoặc sửa đổi sai lệch nội dung).
1.1.2. Mục tiêu và nguyên tắc chung của an toàn thông tin
Các mục tiêu của an toàn thông tin:
- Tính bảo mật: Tài sản của hệ thống chỉ được truy cập bởi những người có
thẩm quyền, các loại truy cập gồm có: đọc (reading), xem (viewing), in ấn
(printing), sử dụng chương trình hoặc hiểu biết về sự tồn tại của một đối tượng
trong một tổ chức. Tính bí mật có thể được bảo vệ nhờ việc kiểm soát truy cập (theo
nhiều kiểu khác nhau). Kiểm soát truy cập chỉ có thể được thực hiện với các hệ
thống phần cứng vật lý, còn đối với các dữ liệu công cộng thì thường phương pháp
hiệu quả là các phương pháp mật mã học, mã hóa dữ liệu, thủy phân số
- Tính toàn vẹn dữ liệu: tài sản của hệ thống chỉ được thay đổi bởi những
người có thẩm quyền.

- 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

thực tác giả (người kí văn bản) của văn bản và giúp người nhận kiểm tra tính nội
dung văn bản gốc.
Thủy vân (watermarking) là một ứng dụng đã có từ lâu đời để bảo vệ bản
quyền cho các cuốn sách. Tuy nhiên, thủy vân số (digital watermarking) lại là một
lĩnh vực mới, đang nhận được nhiều sự quan tâm cũng như nghiên cứu của chuyên
gia trên thế giới. Sử dụng thủy vân số có thể thay đổi và tác động vào chất lượng
của tài liệu số như ý muốn, đồng thời với đó là thủy vân số có thể gắn liền với tài
liệu, đảm bảo tài liệu được bảo vệ bản quyền cho tới khi bị hủy hoại.
Hàm băm (hash function) là hàm có nhiệm vụ “lọc” (băm) tài liệu (bản tin)
và cho kết quả là một giá trị “băm”có kích thước cố định, còn gọi là “đại diện
tài liệu” hay “đại diện bản tin”, “đại diện thông điệp đệm”. Nhờ đó ta có thể đảm
bảo tài liệu được vẹn toàn trên đường truyền.
6



1.2. CƠ SỞ TOÁN HỌC
1.2.1. Ƣớc chung lớn nhất, bội chung nhỏ nhất
1.2.1.1. Ƣớc số, bội số [3]
Cho hai số nguyên
,0a b b
. Nếu có một số nguyên
q
sao cho
*a b q
,
ta nói rằng
a
chia hết cho
b

, kí hiệu
\ab
. Ta nói
b
là ước của
a

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 a
, nếu nó
là bội của tất cả các số đó.
- Một ước chung
d
>0 của tất cả các số nguyên
12
, , ,
n
a a a
trong đó mọi
ước chung của
12
, , ,
n
a a a
đều là ước của
d
, thì
d
được gọi là ước chung lớn nhất
(UCLN) của
12
, , ,
n
a a a
. Ký hiệu
12
, , , )gcd(

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
, , ,

n
a a a
, trong đó mọi bội
chung của
12
, , ,
n
a a a
, đều là bội của
m
thì
m
được gọi là bội chung nhỏ nhất
(BCNN) của
12
, , ,
n
a a a
. Ký hiệu
12
( , , , )
n
m lcm a a a
hay
12
( , , , )
n
m BCNN a a a
.


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ƣ"

1.2.2.1. Khái niệm
Cho các số nguyên a, b, m (m>0). Ta nói rằng a và b đồng dư với nhau theo
modul m nếu chia a và b cho m, ta nhận được cùng một số dư.
Ký hiệu a b ( mod m)
Ví dụ:
17 5 ( mod 3) vì chia 17 và 5 cho 3 được cùng số dư là 2
1.2.2.2. Các tính chất của quan hệ đồng dƣ
1/ Quan hệ đồng dư là qua hệ tương đương Z
Với mọi số nguyên dương m ta có
a a ( mod m) với mọi
aZ
; ( Tính chất phản xạ)
a b ( mod m) thì b a ( mod m); ( Tính chất đối xứng)
a b ( mod m) và b c ( mod m) thì a c ( mod m); ( Tính chất bắc cầu)
2/ Tổng hay hiệu các đồng dư
(a + b)( mod n) [( a mod n) + ( b mod n ] ( mod n)
(a - b) (mod n) [(a mod n) – (b mod n)] (mod n)
3/ Tích các đồng dư
( a*b)( mod n) [( a mod n) * ( b mod n) ] (mod n)

8



1.2.2.3. Hệ quả
+ Có thể cộng hoặc trừ cùng một số vào hai vế của một đồng dư thức.
+ Có thể chuyển vế các số hạng của đồng dư thức bằng cách đổi dấu các số
hạng đó.
+ Có thể cộng vào một vế của đồng dư thức một bội của modulo
a b (mod m) a + km b (mod m) với mọi k Z

+ 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

. Như vậy [a]
m
= [b]
m
a b (mod m)
Vì vậy ta có thể đồng nhất Z
m
với tập các lớp tương đương theo modulo m.
9



- Z
m
= {0, 1, 2,…,m-1} được gọi là tập các thặng dư đầy đủ theo modulo m.
Mọi số nguyên bất kỳ đều có thể tìm được trong Z
m
một số đồng dư với mình theo
modulo m.
1.2.3. Số nguyên tố
1.2.3.1. Khái niệm
Số nguyên tố là số tự nhiên lớn hơn 1 và chỉ có hai ước là 1 và chính nó.
Ví dụ: Các số 2, 3, 5, 7, 11, 13, 17, 19, 31, 37 là số nguyên tố.
1.2.3.2. Một số định lý về số nguyên tố
1). Định lý về số nguyên dương >1
Mọi số nguyên dương n > 1 đều có thể biểu diễn được duy nhất dưới dạng
12
12

k

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


Một số phƣơng pháp kiểm tra tính nguyên tố
Kiểm tra tính nguyên tố của một số nguyên dương là bài toán nảy sinh trong
nhiều ứng dụng, đặc biệt là trong lý thuyết mật mã.


10



- Phƣơng pháp cổ điển
Ý tưởng:
Kiểm tra tính nguyên tố của một số nguyên dương n theo định nghĩa:
+ Thử lần lượt tìm các ước của n, từ 2 đến n/2
+ Nếu không tìm được ước nào thì kết luận n là số nguyên tố.
Thuật toán
KT:= 0;
For i:= 1 to sqrt (n) do
If ( n mod i) = 0 then
Begin
KT:= 1; Break;
End;
If KT = 1 Then Writeln („ n không nguyên tố‟)
Else Writeln („ n Nguyên tố‟);
- Phƣơng pháp xác suất
Trên cơ sở các định lý về số nguyên tố, hiện nay có các phương pháp “Xác
suất” để kiểm tra tính nguyên tố của một số nguyên dương n.
Ví dụ: phương pháp Solovay – Strassen, Miller – Rabin
1.2.3.3. Định lý Euler
Nếu gcd( a, m) = 1 thì

()
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

và vì vậy
( ) ( )
( ) (mod )
a b k m b m k b
c c c mcc
, theo định lý Euler.
11



Nhận xét: Hệ quả trên giúp giảm nhẹ việc tính toán đồng dư của lũy thừa bậc cao.
Ví dụ Ta thấy (15) = (5). (3) = 4*2 =8 và 1004 4 (mod 8)
Do đó 2
1004
(mod 15) = 2
4
(mod 15) = 16 (mod 15) = 1.
Hệ quả 2
Nếu các số nguyên e, d thỏa mãn e.d 1 (mod (m), thì với mọi số c
nguyên tố cùng nhau với m, ta có (c
e
)
d
c (mod m)
Chứng minh: Đặt a= e.d và b=1, từ hệ quả 1 ta có hệ quả 2
Hệ quả này đóng vai trò then chốt trong việc thiết lập các hệ mã sau này ví dụ: RSA
1.2.4. Phần tử nghịch đảo đối với phép nhân
Định nghĩa
Cho a Z
n

, 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

1
:= 1; i:= 1;
While g
i
0 do
Begin y:= g
i-1
div g
i
; g
i+1
:= g
i-1
– y. g
i
;
u
i+1
:= u
i-1
– y. u
i
; v
i+1
:= v
i-1
– y. v
i
; i:= i+1;
end;

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

7
1
0

1
3
0
1
2
2
1
1
-2
3
3
0



Bảng 1.2. Tìm phần tử nghịch đảo của 3 trong Z
7
Vì t = v
2
= -2 <0 do đó x = a
-1
:= t+n = -2 + 7 = 5.
Vậy 5 là phần tử nghịch đảo của 3 trong Z
7
- Định lý (Euler tổng quát): Nếu (a,n) = 1 thì
()n

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

A
(e), với |e| ≤ n}, n là “kích thước” đầu vào của thuật toán.
13



3). Độ phức tạp về thời gian: l
A
(n) = max { t
A
(e), với |e| ≤ n}.
4). Độ phức tạp tiệm cận:
Độ phức tạp PT(n) được gọi là tiệm cận tới hàm f(n), ký hiệu O(f(n)) nếu tồn tại các
số n
0
, c mà PT(n) ≤ c.f(n), n≤ n
0
.
5). Độ phức tạp đa thức: Độ phức tạp PT(n) được gọi là đa thức, nếu nó tiệm cận
tới đa thức p(n).
6). Thuật toán đa thức: Thuật toán được gọi là đa thức, nếu độ phức tạp về thời gian
là đa thức.
1.3. CÁC HỆ MÃ HÓA
Nói đến mã hóa tức là nói đến việc che giấu thông tin bằng cách sử dụng
thuật toán. Che giấu ở đây không phải là làm cho thông tin biến mất mà là cách thức
chuyển từ dạng tỏ sang dạng mờ. Một thuật toán là một tập hợp của các câu lệnh mà
theo đó chương trình sẽ biết phải làm thế nào để xáo trộn hay phục hồi lại dữ liệu.
1.3.1. Khái niệm về mã hóa điện tử
Để đảm bảo an toàn thông tin lưu trữ trên máy tính hay đảm bảo an toàn
thông tin trên đường truyền tin, người ta phải “che giấu” các thông tin này.

“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,

Sao cho d
kd
(e
ke
(x)) = x, x P.
Ở đây x được gọi là bản rõ, e
ke
(x) được gọi là bản mã.
b) Mã hóa và giải mã
Người gửi G muốn gửi tin T cho người nhận N. Để bảo đảm bí mật, G mã hóa
bản tin bằng khóa lập mã ke, nhận được bản mã e
ke
(T), sau đó gửi cho N. Tin tặc có
thể trộm bản mã e
ke
(T) nhưng mà cũng “khó” hiểu được bản tin gốc T nếu không có
khóa giải mã kd.
Người nhận N nhận được bản mã, họ dùng khóa giải mã kd để giải mã e
ke
(T)
sẽ nhận được bản tin gốc T=d
kd
(e
ke
(T)).
1.3.2. Phân loại hệ mã hóa [1] [2]
- Có hai loại mã hóa chính: Mã hóa khóa đối xứng và mã hóa khóa công khai.
a) Hệ mã hóa khóa đối xứng (khóa bí mật)
Mã hóa khóa đối xứng là hệ mã hóa mà biết được khóa lập mã thì có thể “dễ”
tính được khóa giải mã và ngược lại. Đặc biệt một số Hệ mã hóa có khóa lập mã và

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.

Thuật toán mã hóa dòng có tốc độ nhanh hơn mã hóa khối, nó thường được
áp dụng khi lượng dữ liệu cần mã hóa chưa biết trước.
Một số thuật toán nổi tiếng trong mã hóa đối xứng: DES, Triple DES
(3DES), RC4, AES …

16



Ƣu và nhƣợc điểm của mã hoá khóa đối xứng
* Ưu điểm: Giải mã và mã hóa “nhanh” hơn hệ mã hoá khóa công khai.
* Nhược điểm: Hệ mã hóa khóa đối xứng “không an toàn” so với hệ mã hóa
khóa công khai bởi các lý do sau:
 Người mã hóa và người giải mã phải có “chung” một khóa. Khóa phải
được giữ bí mật tuyệt đối, vì biết khóa này “dễ” xác định được khóa kia và ngược lại.
 Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức
tạp. Người gửi và người nhận phải luôn thống nhất với nhau về khóa. Việc thay đổi
khóa là rất khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an toàn.
b) Hệ mã hóa khóa công khai
Hệ mã hóa khóa phi đối xứng là Hệ mã hóa có khóa lập mã và khóa giải mã
khác nhau (ke ≠ kd), biết được khóa này cũng khó tính được khóa kia. Hệ mã hóa này
còn được gọi là hệ mã hóa công khai vì khóa lập mã cho công khai, gọi là khóa công
khai (Public key) [4], khóa giải mã giữ bí mật, còn gọi là khóa riêng (Private key)
hay khóa bí mật. Một người bất kỳ có thể dùng khóa công khai để mã hóa bản tin,
nhưng chỉ người nào có đúng khóa giải mã thì mới có khả năng đọc được bản rõ.














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

×