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

Lý thuyết mã hóa và vấn đề xác minh thông tin

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, 95 trang )


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


1
ĐẠI HỌC THÁI NGUYÊN
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN & TRUYỀN THÔNG



ĐẶNG THỊ NHƢ TRANG



LÝ THUYẾT MÃ HÓA VÀ VẤN ĐỀ XÁC MINH
THÔNG TIN


Chuyên ngành: Khoa học máy tính




Thái Nguyên - 2014


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


2
LỜI CAM ĐOAN



Sau quá trình học tập tại Trƣờng Đại học công nghệ thông tin & truyền
thông, với những kiến thức lý thuyết và thực hành đã tích lũy đƣợc, với việc vận dụng
các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu,
đồng thời có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc
sĩ của mình.
Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên
cứu và hoàn thành dƣới sự hƣớng dẫn của thầy giáo TS. Vũ Vinh Quang.


Thái Nguyên, tháng 9 năm 2014
Học viên



Đặng Thị Nhƣ Trang


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


3
LỜI CẢM ƠN
Trong thời gian hai năm của chƣơng trình đào tạo thạc sĩ, trong đó gần một nửa
thời gian dành cho các môn học, thời gian còn lại dành cho việc lựa chọn đề tài, giáo
viên hƣớng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa và hoàn thiện luận văn. Với
quỹ thời gian nhƣ vậy và với vị trí công việc đang phải đảm nhận, không riêng bản
thân em mà hầu hết các học viên cao học muốn hoàn thành tốt luận văn của mình trƣớc
hết đều phải có sự sắp xếp thời gian hợp lý, có sự tập trung học tập và nghiên cứu với
tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có sự ủng hộ về tinh thần, sự giúp

đỡ về chuyên môn, một trong những điều kiện không thể thiếu quyết định đến việc
thành công của luận văn.
Để hoàn thành đƣợc luận văn này trƣớc tiên em xin gửi lời cảm ơn đến thầy
giáo hƣớng dẫn TS. Vũ Vinh Quang, ngƣời đã có những định hƣớng cho em về nội
dung và hƣớng phát triển của đề tài, ngƣời đã có những đóng góp quý báu cho em về
những vấn đề chuyên môn của luận văn, giúp em tháo gỡ kịp thời những vƣớng mắc
trong quá trình làm luận văn.
Em cũng xin cảm ơn các thầy cô giáo Trƣờng Đại học Công nghệ thông tin và
Truyền thông cũng nhƣ bạn bè cùng lớp đã có những ý kiến đóng góp bổ sung cho đề
tài luận văn của em. Xin cảm ơn gia đình, ngƣời thân cũng nhƣ đồng nghiệp luôn quan
tâm, ủng hộ hỗ trợ về mặt tinh thần trong suốt thời gian từ khi nhận đề tài đến khi hoàn
thiện luận văn này.
Em xin hứa sẽ cố gắng hơn nữa, tự trau dồi bản thân, tích cực nâng cao năng lực
chuyên môn của mình để sau khi hoàn thành luận văn này sẽ có hƣớng tập trung
nghiên cứu sâu hơn, không ngừng hoàn thiện hơn nữa luận văn của mình để có những
ứng dụng thực tiễn cao trong thực tế.
Thái Nguyên, tháng 9 năm 2014
Học viên


Đặng Thị Nhƣ Trang

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


4
MỤC LỤC

LỜI CAM ĐOAN 2
LỜI CẢM ƠN 3

MỤC LỤC 4
DANH MỤC CÁC CHỮ VIẾT TẮT 6
DANH MỤC BẢNG BIỂU 7
DANH MỤC HÌNH VẼ 8
MỞ ĐẦU 9
Chƣơng 1. TỔNG QUAN VỀ HỆ MÃ 13
1.1. GIỚI THIỆU CHUNG VỀ MÃ HÓA 13
1.1.1. An toàn và bảo mật thông tin 13
1.1.2. Mục tiêu của an toàn bảo mật thông tin 14
1.1.3. Các chiến lƣợc an toàn hệ thống 15
1.1.4. An toàn thông tin bằng mật mã 16
1.1.5. Vai trò của hệ mật mã 17
1.1.6. Các thành phần của một hệ mật mã 17
1.1.7. Tiêu chuẩn đánh giá hệ mật mã 18
1.2. CƠ SỞ TOÁN HỌC 19
1.2.1. Cơ sở toán học 19
1.2.2. Số nguyên tố và phân tích thành thừa số 20
1.2.3. Phép mũ hóa và khai căn modul 23
1.3. MẬT MÃ HỌC VÀ MẬT MÃ KHÓA CÔNG KHAI RSA 24
1.3.1. Mã hóa dữ liệu 24
1.3.2. Ứng dụng của mã hóa 25
1.3.3. Phân loại mã hóa 25
1.3.4. Ƣu khuyết điểm của hai phƣơng pháp 28
1.3.5. Hệ mã RSA (R.Rivest, A.Shamir, L.Adleman) 30
1.3.6. Một số vấn đề về khóa của RSA 34
1.3.7. Module trong hệ thống RSA 40
1.3.8. Tốc độ của RSA 42
1.3.9. Vấn đề tìm văn bản bằng RSA 43
1.3.10. Vấn đề sử dụng RSA hiện nay 43
1.4. KẾT LUẬN CHƢƠNG 1 44

Chƣơng 2. CHỮ KÝ ĐIỆN TỬ 45
2.1. ĐẶT VẤN ĐỀ 45
2.1.1. Vấn đề xác thực 45
2.1.2. Vấn đề chữ ký số 46
2.2. HÀM BĂM MẬT MÃ 47
2.2.1. Định nghĩa 47
2.2.2. Phân loại 48
2.2.3 Cấu trúc cơ bản của thuật toán băm 48

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


5
2.2.4. Hàm băm MD5 49
2.2.5. Hàm băm SHA-1 50
2.3. MỘT SỐ KHÁI NIỆM VÀ TÍNH CHẤT CHỮ KÝ ĐIỆN TỬ 50
2.3.1. Khái niệm: 50
2.3.2. Các bƣớc tạo và kiểm tra chữ ký điện tử 51
2.3.3. Vị trí, vai trò của chữ ký số 51
2.3.4. Phân loại chữ ký số 52
2.3.5. Sơ đồ chữ ký số 53
2.3.6. Sơ đồ chữ ký RSA 54
2.3.7. Lƣợc đồ chữ ký số 55
2.3.8. Yêu cầu chữ ký số 56
2.3.9. Đặc điểm của chữ ký số 56
2.3.10. Tấn công chữ ký số 57
2.3.11. So sánh chữ ký thông thƣờng và chữ ký số 58
2.3.12. Độ an toàn của chữ ký RSA 59
2.4. MÔ HÌNH CHỮ KÝ SỐ DỰA TRÊN RSA 60
2.4.1. Quá trình ký và gửi các tệp văn bản 60

2.4.2. Quá trình nhận các tệp văn bản 61
2.5. KẾT LUẬN CHƢƠNG 2 62
Chƣơng 3. MỘT SỐ KẾT QUẢ ỨNG DỤNG CHỮ KÝ ĐIỆN TỬ 63
3.1. MÔ HÌNH BÀI TOÁN THỰC TẾ 63
3.1.1. Một vài nét về tổ chức của cơ quan 63
3.1.2. Vấn đề ứng dụng công nghệ thông tin hiện nay 64
3.1.3. Vấn đề lƣu trữ văn bản 66
3.1.4. Vấn đề bảo mật văn bản 68
3.2. ĐỀ XUẤT PHƢƠNG ÁN BẢO MẬT 73
3.2.1. Các module 77
3.2.2. Cấu hình hệ thống 78
3.2.3. Quy trình thực hiện ký văn bản khi gửi có xác thực. 79
3.3. MỘT SỐ HƢỚNG DẪN SỬ DỤNG CHƢƠNG TRÌNH CHỮ KÝ SỐ 79
3.3.1. Giao diện chính 79
3.3.2. Giao diện chƣơng trình nhập khóa cho thuật toán RSA 80
3.3.3. Giao diện chƣơng trình thuật toán RSA 80
3.3.4. Giao diện chƣơng trình chữ ký (phần ký kiểm tra chữ ký) 82
3.4. MỘT SỐ ĐÁNH GIÁ KHI THỬ NGHIỆM TẠI CƠ SỞ THỰC TẾ 83
3.5. KẾT LUẬN CHƢƠNG 3 83
KẾT LUẬN 84
TÀI LIỆU THAM KHẢO 85
PHỤ LỤC 86
Phụ lục 1: Tạo cặp khóa bí mật – công khai 86
Phụ lục 2: Tạo chữ ký số 87
Phụ lục 3: Xác thực chữ ký số 91

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


6

DANH MỤC CÁC CHỮ VIẾT TẮT


RSA
R.Rivest A.Shamir L.Adleman
DES
Data Encrypt Standar
MAC
Media Access Control




















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



7
DANH MỤC BẢNG BIỂU


Các ƣu khuyết điểm của hệ thống khóa bí mật
20
Các ƣu khuyết điểm của hệ thống mã hóa khóa công khai
21
Chiều dài khóa công khai
27





















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


8
DANH MỤC HÌNH VẼ
Hình 1.1. Mã hoá với khóa mã và khóa giải giống nhau
10
Hinh 1.2. Quy trình mã hóa dữ liệu
16
Hình 1.3. Sơ đồ mã hóa và giải mã
17
Hình 1.4. Sơ đồ mã hóa và giải mã bằng khóa riêng
19
Hình 1.5. Sơ đồ mã hóa và giải mã bằng khóa công khai
20
Hình 1.6. Kiểm tra khóa
30
Hình 1.7. Hình thức kiểm tra khóa bảo mật
30
Hình 1.8. Bảo mật tại nơi ra và nơi nhận vào của hai ngƣời sử dụng
31
Hình 1.9. Bảo mật tại nơi ra của ngƣời gửi và tại nơi nhận trƣớc khi vào hệ
thống của ngƣời nhận.
31
Hình 1.10. Kết hợp bảo mật tại các máy chủ
32
Hình 2.1. Tổng quan về chữ ký số
38

Hình 2.2. Minh họa chữ ký số của bên gửi cho thông báo M
42
Hình 2.3. Sơ đồ chữ ký số
45
Hình 2.4. Ký văn bản
53
Hình 2.5. Xác thực chữ ký
54
Hình 3.1. Sơ đồ chƣơng trình chữ ký số
70
Hình 3.2. Quy trình thực hiện ký văn bản khi gửi có xác thực
71
Hình 3.3. Giao diện chính
71
Hình 3.4. Giao diện chƣơng trình nhập khóa cho thuật toán RSA
72
Hình 3.5. Giao diện chƣơng trình thuật toán RSA
72
Hình 3.6. Giao diện chƣơng trình chữ ký (phần ký văn bản)
73
Hình 3.7. Giao diện chƣơng trình chữ ký (phần ký kiểm tra chữ ký)
74


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


9
MỞ ĐẦU


1. Lý do lựa chọn đề tài
Văn bản là phƣơng tiện lƣu giữ và truyền đạt thông tin bằng ngôn ngữ hay ký
hiệu nhất định. Ở Việt Nam, Theo thống kê của Bộ Công thƣơng, trong năm 2012 cả
nƣớc có tới 2,9 triệu tấn giấy đã đƣợc tiêu thụ. Điều này cho thấy văn bản, tài liệu bằng
giấy vẫn tiếp tục là một phƣơng tiện quan trọng trong mọi hoạt động kinh doanh và
nghiệp vụ. Tuy nhiên, đây cũng là thách thức về vấn đề lƣu trữ và quản lý, khai thác,
sử dụng thông tin đối với các cơ quan, doanh nghiệp Việt Nam, nhất là trong thời kỳ
bùng nổ công nghệ thông tin.
Trong khi tại Việt Nam, một số giải pháp phần mềm đang đƣợc phát triển và
triển khai liên quan đến công tác văn bản, lƣu trữ tài liệu nhƣ dịch vụ số hóa dữ liệu,
các phần mềm quản lý văn bản, công văn…nhằm giải quyết hiệu quả trong việc số hóa
văn bản giấy, giải toả các tủ hồ sơ lƣu trữ với hàng chồng văn bản có nguy cơ bị hƣ hại
theo thời gian; thì hiện nay trên thế giới đã đƣợc áp dụng rộng rãi tại những nƣớc phát
triển nhƣ Mỹ, Nhật… Chúng đƣợc sử dụng trong nhiều tổ chức Chính Phủ, bao gồm
các chi nhánh của Chính Phủ Mỹ, những tập đoàn chính yếu, những thƣ viện quốc tế
và các trƣờng Đại học. Nhiều nƣớc không chỉ triển khai chữ ký số trên mạng máy tính
mà còn áp dụng trên mạng điện thoại di động để thực hiện các giao dịch điện tử.
Hầu nhƣ các hoạt động, giao dịch đều đƣợc sử dụng qua mạng máy tính và văn
bản không nằm ngoài sự phát triển chung đó. Tuy nhiên, các văn bản khi giao dịch trao
đổi trên mạng có nguy cơ bị thay đổi, sao chép hoặc mất mát dữ liệu trong các ứng
dụng luôn là vấn đề gây bức xúc đƣợc nhiều ngƣời quan tâm.
Trong bối cảnh hiện tại, mọi hệ thống thông tin điện tử đều phải đƣơng đầu với
bài toán đảm bảo an toàn và bảo mật. Trong đó, an toàn thông tin bằng mật mã có vai
trò rất quan trọng và đƣợc ứng dụng rộng khắp. Nắm bắt đƣợc thông tin nhiều khi
mang ý nghĩa quyết định, sống còn đặc biệt trong các lĩnh vực: kinh tế, chính trị, an

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


10

ninh, quốc phòng…Vì vậy việc bảo mật thông tin đã, đang và sẽ là vấn đề đƣợc đặt ra
rất cấp bách. Để giải quyết vấn đề đó các hệ mật mã đã ra đời. Từ các hệ mật mã sơ
khai cổ điển nhƣ: Hệ mã Dịch Vòng, hệ mã Hill, hệ mã Affine,…, cho đến các hệ mật
mã hiện đại, phức tạp nhƣ hệ mã DES. Các hệ mật mã công khai nhƣ hệ mã RSA, hệ
mã Ba Lô. Nhƣng đi kèm với sự ra đời và phát triển của các hệ mật mã là các phƣơng
pháp phá khóa các hệ mật mã đó. Cuộc chiến giữa bảo mật thông tin và xâm phạm
thông tin vẫn luôn diễn ra một cách thầm lặng nhƣng vô cùng gay gắt.
Internet ngoài những mặt mạnh nhƣ chúng ta đã biết là cho phép mọi ngƣời truy
cập, khai thác, chia sẻ thông tin; thì nó cũng là nguyên nhân chính dẫn đến thông tin bị
rò rỉ hoặc bị phá hoại. Lúc này việc bảo mật an toàn dữ liệu là vấn đề thời sự. Nhằm
giải quyết vấn đề xử lý các giao dịch trao đổi văn bản trên mạng chữ ký điện tử đã
đƣợc ứng dụng rộng rãi. Một trong những ứng dụng cực kỳ quan trọng của chữ ký điện
tử là đảm bảo an toàn dữ liệu khi truyền trên mạng.
Chính vì vậy, với mong muốn tìm hiểu một trong những phƣơng pháp bảo vệ
an toàn thông tin có tính an toàn cao hiện nay là dùng mật mã khóa công khai RSA và
một vài ứng dụng của mật mã khóa công khai: Sử dụng chữ ký số trong việc xác thực,
mã hóa và giải mã các tập tin văn bản. Đồng thời đƣợc sự đồng ý và hƣớng dẫn của
thầy giáo, TS. Vũ Vinh Quang, tác giả lựa chọn đề tài luận văn tốt nghiệp “Lý thuyết
mã hóa và vấn đề xác minh thông tin” với mong muốn áp dụng các kiến thức đã đƣợc
học, xây dựng thử nghiệm mô hình giải quyết bài toán ký và xác thực trong văn bản
quản lý Nhà nƣớc tại Sở Thông tin và Truyền thông Tuyên Quang.
2. Mục đích nghiên cứu
Qua việc phân tích, khảo sát và đánh giá thực trạng sử dụng văn bản quản lý
Nhà nƣớc tại Việt Nam cũng nhƣ trên thế giới, kết hợp với việc nghiên cứu các kỹ
thuật, phƣơng pháp, thuật toán mã hóa, mục tiêu chính của luận văn đƣợc xác định là:
Nghiên cứu về lý thuyết mật mã, mật mã khóa công khai RSA, chữ ký số và ứng dụng
thuật toán RSA trong mã hóa dữ liệu. Từ đó xây dựng hệ thống cho phép tạo và kiểm

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



11
tra chữ ký số đối với các tài liệu văn bản quản lý nhà nƣớc để bảo mật nội dung thông
tin cũng nhƣ xác thực nguồn gốc của thông tin. Ứng dụng chữ ký số RSA để giải quyết
bài toán ký và xác thực trong văn bản quản lý Nhà nƣớc tại tỉnh Tuyên Quang.
3. Đối tƣợng và phạm vi nghiên cứu
Hệ mật mã khóa công khai RSA.
Mô hình chung về chữ ký số và chữ ký số RSA.
Trong phạm vi luận văn, tác giả sử dụng giải pháp của Lƣợc đồ Chữ ký số RSA
để giải quyết các vấn đề đã nêu.
4. Phƣơng pháp luận nghiên cứu
Phƣơng pháp nghiên cứu lý thuyết: Tổng hợp tài liệu; Nghiên cứu các tài liệu về
văn bản quản lý Nhà nƣớc; Nghiên cứu về hệ mã hóa công khai, hệ mật RSA, chữ ký
số và các loại chữ ký số sử dụng hệ mật RSA; Tìm hiểu các kiến thức liên quan đến
chữ ký số RSA, các kỹ thuật giao thức sử dụng giải quyết bài toán ký và xác thực trong
văn bản quản lý Nhà nƣớc.
Phƣơng pháp nghiên cứu thực nghiệm: Sau khi nghiên cứu lý thuyết, phát biểu
bài toán, đƣa ra giải pháp xử lý; Mô phỏng thử nghiệm chƣơng trình trên phần mềm
Visual Studio; Đánh giá các kết quả đạt đƣợc.
Phƣơng pháp trao đổi khoa học: Thảo luận, xemina, lấy ý kiến chuyên gia, công
bố các kết quả nghiên cứu trên tạp chí khoa học.
5. Ý nghĩa khoa học và thực tiễn của luận văn
Về mặt lý thuyết:
Trình bày khái quát về hệ mật mã, hệ mật mã khóa bí mật, hệ mật mã khóa công
khai.
Trình bày lý thuyết chung về các phƣơng pháp mã hóa: phƣơng pháp mã hóa
khóa bí mật và phƣơng pháp mã hóa khóa công khai, nêu đƣợc ƣu nhƣợc điểm của hai
phƣơng pháp này. Trình bày chi tiết hệ mật mã khóa công khai RSA.

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



12
Trình bày lý thuyết chung về chữ ký số, mô hình chữ ký số RSA.
Về mặt thực tiễn:
Xây dựng đƣợc chƣơng trình ứng dụng dựa vào hệ mật RSA có chức năng bảo
mật nội dung cho các tập tin văn bản, tạo và kiểm tra chữ ký số cho các tập tin đó để
xác định tính toàn vẹn nội dung và chủ nhân của tập tin khi thực hiện trao đổi qua
Internet.
6. Nội dung chính của luận văn
Nội dung luận văn bao gồm 3 chƣơng:
Chƣơng 1: Tổng quan về hệ mã. Trong chƣơng này cung cấp các kiến thức lý
thuyết cơ bản, những khái niệm về mật mã học; đi sâu về mật mã khóa công khai RSA.
Chƣơng 2: Chữ ký số. Với những nội dung chính nhƣ: Khái niệm và tính chất
chữ ký điện tử; Mô hình chữ ký số dựa trên RSA.
Chƣơng 3: Một số kết quả ứng dụng chữ ký điện tử. Dựa vào những cơ sở lý
thuyết đã nghiên cứu, trong chƣơng này luận văn sẽ trình bày kết quả của việc triển
khai vấn đề bảo mật các tài liệu số trên mạng máy tính tại các cơ quan tỉnh Tuyên
quang dựa trên hệ mật mã RSA và chữ ký số. Phần cuối chƣơng giới thiệu việc xây
dựng chƣơng trình demo cho bài toán ký và xác thực trong văn bản quản lý Nhà nƣớc.
Các kết quả này đã và đang đƣợc thử nghiệm tại Sở thông tin truyền thông.

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


13
Chƣơng 1. TỔNG QUAN VỀ HỆ MÃ

1.1. GIỚI THIỆU CHUNG VỀ MÃ HÓA
1.1.1. An toàn và bảo mật thông tin

Thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con ngƣời.
Trong thời đại ngày nay, khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa
dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng đƣợc
phát triển ứng dụng để nâng cao chất lƣợng và lƣu lƣợng truyền tin thì các quan niệm ý
tƣởng và biện pháp bảo vệ thông tin dữ liệu cũng đƣợc đổi mới. Bảo vệ an toàn thông
tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể
có rất nhiều phƣơng pháp đƣợc thực hiện để bảo vệ an toàn thông tin dữ liệu. Các
phƣơng pháp bảo vệ an toàn thông tin dữ liệu có thể đƣợc quy tụ vào ba nhóm sau:
- Bảo vệ an toàn thông tin bằng các biện pháp hành chính.
- Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng).
- Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm).
Ba nhóm trên có thể đƣợc ứng dụng riêng rẽ hoặc phối kết hợp. Môi trƣờng khó
bảo vệ an toàn thông tin nhất và cũng là môi trƣờng đối phƣơng dễ xâm nhập nhất đó
là môi trƣờng mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất hiện nay
trên mạng truyền tin và mạng máy tính là biện pháp thuật toán.
An toàn thông tin bao gồm các nội dung sau:
- Tính bí mật: tính kín đáo riêng tƣ của thông tin
- Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh),
xác thực thông tin trao đổi.
- Tính trách nhiệm: đảm bảo ngƣời gửi thông tin không thể thoái thác trách
nhiệm về thông tin mà mình đã gửi.

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


14
Để đảm bảo an toàn thông tin dữ liệu trên đƣờng truyền tin và trên mạng máy
tính có hiệu quả thì điều trƣớc tiên là phải lƣờng trƣớc hoặc dự đoán trƣớc các khả
năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông
tin dữ liệu đƣợc lƣu trữ và trao đổi trên đƣờng truyền tin cũng nhƣ trên mạng. Xác định

càng chính xác các nguy cơ nói trên thì càng quyết định đƣợc tốt các giải pháp để giảm
thiểu các thiệt hại.
Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi
phạm thụ động. Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt đƣợc thông
tin (đánh cắp thông tin). Việc làm đó có khi không biết đƣợc nội dung cụ thể nhƣng có
thể dò ra đƣợc ngƣời gửi, ngƣời nhận nhờ thông tin điều khiển giao thức chứa trong
phần đầu các gói tin. Kẻ xâm nhập có thể kiểm tra đƣợc số lƣợng, độ dài và tần số trao
đổi. Vì vậy vi phạm thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ
liệu đƣợc trao đổi. Vi phạm thụ động thƣờng khó phát hiện nhƣng có thể có những biện
pháp ngăn chặn hiệu quả. Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội
dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc
sau đó một thời gian. Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để
làm sai lệch nội dung thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhƣng để ngăn
chặn hiệu quả thì khó khăn hơn nhiều.
Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là
an toàn tuyệt đối. Một hệ thống dù đƣợc bảo vệ chắc chắn đến đâu cũng không thể đảm
bảo là an toàn tuyệt đối.
1.1.2. Mục tiêu của an toàn bảo mật thông tin
Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm
bảo các mục tiêu sau:

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


15
Tính bí mật (Confjdentialy): Đảm bảo dữ liệu đƣợc truyền đi một cách an toàn
và không thể bị lộ thông tin nếu nhƣ có ai đó cố tình muốn có đƣợc nội dung của dữ
liệu gốc ban đầu. Chỉ những ngƣời đƣợc phép mới có khả năng đọc đƣợc nội dung
thông tin ban đầu.
Tính xác thực (Authentication): Giúp cho ngƣời nhận dữ liệu xác định đƣợc

chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Kẻ giả mạo không thể có khả
năng để giả dạng một ngƣời khác hay nói cách khác không thể mạo danh để gửi dữ
liệu. Ngƣời nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận đƣợc.
Tính toàn vẹn (Integrity): Giúp cho ngƣời nhận dữ liệu kiểm tra đƣợc rằng dữ
liệu không bị thay đổi trong quá trình truyền đi. Kẻ giả mạo không thể có khả năng
thay thế dữ liệu ban đầu bằng dữ liệu giả mạo.
Tính không thể chối bỏ (Non-repudation): Ngƣời gửi hay ngƣời nhận không thể
chối bỏ sau khi đã gửi hoặc nhận thông tin.
1.1.3. Các chiến lƣợc an toàn hệ thống
- Giới hạn quyền hạn tối thiểu (Last Privilege):
Đây là chiến lƣợc cơ bản nhất theo nguyên tắc này bất kỳ một đối tƣợng nào
cũng chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào
mạng đối tƣợng đó chỉ đƣợc sử dụng một số tài nguyên nhất định.
- Bảo vệ theo chiều sâu (Defence In Depth):
Nguyên tắc này nhắc nhở chúng ta: Không nên dựa vào một chế độ an toàn nào
dù cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tƣơng hỗ lẫn nhau.
- Nút thắt (Choke Point):
Tạo ra một “cửa khẩu” hẹp, và chỉ cho phép thông tin đi vào hệ thống của mình
bằng con đƣờng duy nhất chính là “cửa khẩu” này => phải tổ chức một cơ cấu kiểm
soát và điều khiển thông tin đi qua cửa này.

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


16
- Điểm nối yếu nhất (Weakest Link):
Chiến lƣợc này dựa trên nguyên tắc: “Một dây xích chỉ chắc tại mắt duy nhất,
một bức tƣờng chỉ cứng tại điểm yếu nhất”.
Kẻ phá hoại thƣờng tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta
cần phải gia cố các yếu điểm của hệ thống. Thông thƣờng chúng ta chỉ quan tâm đến

kẻ tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý đƣợc coi là yếu
điểm nhất trong hệ thống của chúng ta.
- Tính toàn cục:
Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ. Nếu
có một kẻ nào đó có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng
cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong.
- Tính đa dạng bảo vệ:
Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu
không có kẻ tấn công vào đƣợc một hệ thống thì chúng cũng dễ dàng tấn công vào các
hệ thống khác.
1.1.4. An toàn thông tin bằng mật mã
Mật mã là một ngành khoa học chuyên nghiên cứu các phƣơng pháp truyền tin
bí mật. Mật mã bao gồm: Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã hóa và
giải mã.
Để bảo vệ thông tin trên đƣờng truyền ngƣời ta thƣờng biến đổi nó từ dạng nhận
thức đƣợc sang dạng không nhận thức đƣợc trƣớc khi truyền đi trên mạng, quá trình
này đƣợc gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình
ngƣợc lại, tức là biến đổi thông tin từ dạng không nhận thức đƣợc (dữ liệu đã đƣợc mã
hoá) về dạng nhận thức đƣợc (dạng gốc), quá trình này đƣợc gọi là giải mã. Đây là một
lớp bảo vệ thông tin rất quan trọng và đƣợc sử dụng rộng rãi trong môi trƣờng mạng.
Để bảo vệ thông tin bằng mật mã ngƣời ta thƣờng tiếp cận theo hai hƣớng:
- Theo đƣờng truyền (Link_Oriented_Security).

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


17
- Từ nút đến nút (End_to_End).
Theo cách thứ nhất thông tin đƣợc mã hoá để bảo vệ trên đƣờng truyền giữa hai
nút mà không quan tâm đến nguồn và đích của thông tin đó. Ở đây ta lƣu ý rằng thông

tin chỉ đƣợc bảo vệ trên đƣờng truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó
mã hoá để truyền đi tiếp, do đó các nút cần phải đƣợc bảo vệ tốt.
Ngƣợc lại theo cách thứ hai thông tin trên mạng đƣợc bảo vệ trên toàn đƣờng
truyền từ nguồn đến đích. Thông tin sẽ đƣợc mã hoá ngay sau khi mới tạo ra và chỉ
đƣợc giải mã khi về đến đích. Cách này mắc phải nhƣợc điểm là chỉ có dữ liệu của
ngƣời dùng thì mới có thể mã hóa đƣợc còn dữ liệu điều khiển thì giữ nguyên để có thể
xử lý tại các nút.
1.1.5. Vai trò của hệ mật mã
Các hệ mật mã phải thực hiện đƣợc các vai trò sau:
- Hệ mật mã phải che dấu đƣợc nội dung của văn bản rõ (PlainText) để đảm bảo
sao cho chỉ ngƣời chủ hợp pháp của thông tin mới có quyền truy cập thông tin
(Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn.
- Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lƣu hành trong hệ thống
đến ngƣời nhận hợp pháp là xác thực (Authenticity).
- Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tƣợng giả mạo, mạo
danh để gửi thông tin trên mạng.
Ƣu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá đƣợc độ phức
tạp tính toán mà “kẻ địch” phải giải quyết bài toán để có thể lấy đƣợc thông tin của dữ
liệu đã đƣợc mã hoá. Tuy nhiên mỗi hệ mật mã có một số ƣu và nhƣợc điểm khác
nhau, nhƣng nhờ đánh giá đƣợc độ phức tạp tính toán mà ta có thể áp dụng các thuật
toán mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn.
1.1.6. Các thành phần của một hệ mật mã
Định nghĩa :
Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau:

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


18
- P: Là một tập hợp hữu hạn các bản rõ, nó đƣợc gọi là không gian bản rõ.

- C: Là tập hữu hạn các bản mã, nó đƣợc gọi là không gian bản mã. Mỗi phần tử
của C có thể nhận đƣợc bằng cách áp dụng phép mã hoá E
k
lên một phần tử của P, với
k K.
- K: Là tập hữu hạn các khóa hay còn gọi là không gian khóa. Đối với mỗi phần tử
k của K đƣợc gọi là một khóa. Số lƣợng của không gian khóa phải đủ lớn để “kẻ địch”
không có đủ thời gian để thử mọi khóa có thể (phƣơng pháp vét cạn). Đối với mỗi k
K có một quy tắc mã e
k
: PC và một quy tắc giải mã tƣơng ứng d
k
D. Mỗi e
k
: P C
và d
k
: CP là những hàm mà: D
k
(e
k
(x))=x với mọi bản rõ x P.

Hình 1.1. Mã hoá với khóa mã và khóa giải giống nhau
1.1.7. Tiêu chuẩn đánh giá hệ mật mã
Để đánh giá một hệ mật mã ngƣời ta thƣờng đánh giá thông qua các tiêu chí sau:
* Độ an toàn: Một hệ mật đƣợc đƣa vào sử dụng điều đầu tiên phải có độ an
toàn cao. Ƣu điểm của mật mã là có thể đánh giá đƣợc độ an toàn thông qua độ an toàn
tính toán mà không cần phải cài đặt. Một hệ mật đƣợc coi là an toàn nếu để phá hệ mật
mã này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian vô cùng lớn,

không thể chấp nhận đƣợc.
Một hệ mật mã đƣợc gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau:

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


19
- Chúng phải có phƣơng pháp bảo vệ mà chỉ dựa trên sự bí mật của các khóa,
công khai thuật toán.
- Khi cho khóa công khai e
k
và bản rõ P thì chúng ta dễ dàng tính đƣợc
e
k
(P)=C. Ngƣợc lại khi cho d
k
và bản mã C thì dễ dàng tính đƣợc d
k
(M)=P. Khi không
biết d
k
thì không có khả năng để tìm đƣợc M từ C, nghĩa là khi cho hàm f: X Y thì
việc tính y=f(x) với mọi x thuộc X là dễ còn việc tìm x khi biết y lại là vấn đề khó và
nó đƣợc gọi là hàm một chiều.
- Bản mã C không đƣợc có các đặc điểm gây chú ý, nghi ngờ.
* Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ
mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh.
* Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này đƣợc truyền
công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với
các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã.

Trong mật mã học nói chung thì toán học là công cụ không thể thiếu. Các thuật
toán mã hóa đều dùng công thức toán học làm nền cơ bản. Vì vậy phần tiếp theo sẽ
trình bày ngắn gọn về số học và hình học đại số có ứng dụng trực tiếp trong mã hóa
thông tin, đặc biệt là trong thuật toán mã hóa RSA.
1.2. CƠ SỞ TOÁN HỌC
1.2.1. Cơ sở toán học
Mục này đƣợc trình bày trong [2].
Số học là một nhánh của toán học, nhƣng nó lại trở thành một trong những công
cụ hữu hiệu nhất trong an ninh máy tính. Số học giúp ngƣời dùng mua sắm trực tuyến
bằng cách bảo vệ số thẻ tín dụng. Đó là một trong những thành tựu đáng ghi nhận từ
năm 1970 đến nay và đã đƣợc áp dụng rộng rãi trên thế giới. Những giao thức mã hóa
đặc biệt là chữ ký số điện tử đều dựa trên kiến thức số học để tạo khóa, mã hóa và giải
mã. An toàn của những giao thức này đều liên quan đến vấn đề trong số học: Số
nguyên tố và phân tích thành thừa số.

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


20
1.2.2. Số nguyên tố và phân tích thành thừa số
1.2.2.1. Phát sinh số nguyên tố
Hai số nguyên tố p và q nên có chiều dài bằng nhau, điều này sẽ làm cho mođun
n khó phân tích hơn là có một trong hai số nguyên tố rất nhỏ. Vì vậy, nếu ta chọn dùng
module n 512 bít thì mỗi số nguyên tố nên có chiều dài xấp xỉ 256 bít.
Trong hầu hết tất cả hệ khóa công khai, kích thƣớc của khóa phù hợp với kích
thƣớc những đầu vào cho hàm một chiều, kích thƣớc càng lớn thì sự khác biệt trong
việc tính toán hàm theo hƣớng thuận và hƣớng nghịch càng lớn.
Những hệ mật mã khóa công khai trong thực tế dựa trên những hàm đƣợc xem
là một chiều nhƣng chúng không đƣợc chứng minh có nghĩa là về mặt lý thuyết, một
giải thuật sẽ có thể đƣợc phục hồi để có thể tính hàm nghịch một cách dễ dàng.

Thủ tục kiểm tra số nguyên tố:
int BN_is_prime(const BIGNUM *a, int checks, void (^callback) (int, int, void
*), BN_CTX *ctx_passed, void *cb_arg)
{
return BN_is_prime_fasttest(a, checks, callback, ctx_passed, cb_arg, 0); }
Hàm phát sinh số nguyên tố:
BIGNUM *BN_generatase_prime(BIGNUM *ret, intbits, int safe,
const BIGNUM *add, const BIGNUM *rem, void (*callback)(int, int, void
*), void *cb_arg)
{loop:
/* tạo ra một số ngẫu nhiên và thiết lập bít đầu và bít cuối */ if (add == NULL)
{if (!probable_prime(rnd, bits)) goto err; }
else {if(safe)
{if (!probable_prime_dh_safe(md, bits, add, rem, ctx)) goto err;}
else {if (!probable_prime_dh(rnd, bits, add, rem, ctx)) goto err;}
}

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


21
1.2.2.2. Phân tích thành thừa số
Phân tích thành thừa số là việc phân những số nguyên thành những số nguyên
nhỏ hơn mà khi nhân những số đó với nhau sẽ thành số nguyên ban đầu. Phân tích thừa
số nguyên tố đòi hỏi phải phân tích một số nguyên thành những thừa số là những số
nguyên tố. Rõ ràng việc phân tích thành thừa số nguyên tố là một bài toán khó trong lý
thuyết số học.
Phân tích thừa số nguyên tố là vấn đề khó khăn trong nhiều hệ mã khóa công
khai, kể cả RSA. Nếu việc phân tích thành thừa số nguyên tố thành công sẽ cho phép
tìm ra khóa riêng tức là hệ mật mã bị bẻ khóa. Vì vậy bất cứ ai có thể phân tích thành

thừa số một muđun đều có thể mã hoá thông điệp và giả mạo chữ ký. Nhƣng đây là
một việc hết sức khó khăn.
Phân tích thành thừa số những số nguyên lớn mất nhiều thời gian hơn so với
những số nguyên nhỏ. Điều này lý giải tại sao kích thƣớc muđun RSA xác định tính
bảo mật nhƣ thế nào; module càng lớn, việc phân tích thành thừa số nguyên tố càng
khó.
+ Vấn đề của phân tích thừa số:
Việc phân tích thành thừa số trở nên dễ dàng hơn cách đây 15 năm bởi phần
cứng máy tính ngày càng mạnh hơn và những giải thuật phân tích thừa số nguyên tố
ngày càng phát triển.
Sự phát triển về phần cứng làm cho RSA càng bảo mật hơn bởi vì nó làm cho
ngƣời phá khóa phải phân tích thành thừa số những số lớn hơn trong cùng một thời
gian so với trƣớc kia và cho phép ngƣời sử dụng dùng một khóa có nhiều số có độ dài
lớn hơn. Quy luật chung này có thể thất bại trong trƣờng hợp dùng những máy có tốc
độ cao của tƣơng lai để tấn công vào những khóa đời cũ nhờ vào sự tiến bộ của phần
cứng.
Những giải thuật phân tích thành thừa số tốt hơn sẽ giúp cho vấn đề phá khóa tốt
hơn so với việc phát triển phần cứng. Để giải quyết những khó khăn trong việc phân

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


22
tích thừa số, nhiều nhà nghiên cứu đã tìm ra những phƣơng pháp phân tích thừa số mới.
Điều này làm cho việc phân tích thừa số dễ dàng hơn đối với những số có kích thƣớc
bất kỳ và không quan tâm đến sự phát triển về phần cứng. Tuy nhiên, vấn đề này vẫn
còn nhiều khó khăn. Khi phần cứng ngày càng phát triển mà độ phức tạp của thuật toán
không tăng thì việc bảo mật của RSA càng cao vì khóa có kích thƣớc càng lớn.
1.2.2.3. Kiểm tra ước số chung lớn nhất
Hàm tính ước số chung lớn nhất:

int BN_gcd(BIGNUM *r, const BIGNUM *in_a, const BIGNUM *in_b,
BN_CTX *ctx)
{
BIGNUM *a, *b, *t; int ret=0;
bn_check_top(in_a);
bn_check_top(in_b);
BN_CTX_start(ctx); a = BN_CTX_get(ctx); b = BN_CTX_get(ctx); if (a ==
NULL II b == NULL) goto err;
if (BN_copy(a, in_a) == NULL) goto err; if (BN_copy(b, in_b) == NULL) goto
err; a->neg = 0; b->neg = 0;
if (BN_cmp(a, b) < 0) { t=a; a=b; b=t; } t=euclid(a, b); // gọi thuật toán euclid if
(t == NULL) goto err;
if (BN_copy(r, t) == NULL) goto err; ret= 1;
BN_CTX_end(ctx);
return(ret);
}
Hàm kiểm tra số nguyên tố nhanh nhất:
int BN_is_prime_fasttest(const BIGNUM *a, int checks, void (*callback)(int,
int, void *), BN_CTX *ctx_passed, void *cb_arg, int do_trial_division)

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


23
1.2.3. Phép mũ hóa và khai căn modul
Nhƣ ở trên ta đã khai báo n là kết quả của phép nhân hai số nguyên tố lớn đƣợc
sinh ngẫu nhiên. Cho m và c là những số nguyên nằm trong khoảng (0,n-1) và e là một
số nguyên lẻ trong khoảng (3,n-1) và nguyên tố cùng nhau với p-1 và q-1.
Thao tác mã hóa và giải mã trong hệ mã hóa khóa công khai RSA đƣợc thực
hiện dựa trên 2 hệ quả và 1 ƣớc lƣợng sau:

Hệ quả 1: Cho n, m và e. Việc tính c = m
e
mod n là dễ dàng. Giá trị m
e
mod n
chính thức là kết quả của nâng lũy thừa e của m, chia cho n và lấy phần dư.
Điều này có thể là một phép tính toán phức tạp liên quan tới việc nhân (e-1) số
m và kết quả trả về là một số nguyên lớn, trƣớc khi việc thực hiện phép chia cho n. Tuy
nhiên hai cách tối ƣu hóa sau làm cho việc tính toán trở nên dễ dàng:
- Nhân với một trình tự thích hợp của các giá trị trung gian trƣớc đó, thay vì hơn
chỉ bằng m, có thể giảm số lƣợng các phép nhân để không quá hai lần kích thƣớc của e
trong hệ nhị phân.
- Chia và lấy phần dƣ sau khi mỗi phép nhân giữ kết quả trung gian có cùng
kích thƣớc nhƣ n.
Hệ quả 2: Cho n, e, c và những thừa số nguyên tố p, q; việc khôi phục lại giá trị
m sao cho c = m
e
mod n là dễ dàng.
Giá trị m có thể khôi phục từ c bởi thao tác mũ hóa modul với một số nguyên lẻ
d nằm trong khoảng (3,n-1). Đặc biệt, với số d này, biểu thức sau thể hiện cho tất cả m:
m = (m
e
)d mod n.
Số nguyên d này thì dễ dàng tính với e, p, q cho trƣớc.
Hệ quả 3: Cho n, e và c nhưng không biết những thừa số nguyên tố, việc khôi
phục lại m là khó khăn.
Phƣơng pháp nhanh nhất thì có sẵn trong việc tính toán khai căn modul dƣới
điều kiện dựa là n và e là phân tích thừa số n và áp dụng hệ quả 5 để quyết định d.
Thực sự, bất kỳ phƣơng thức nào quyết định d đều bị chuyển về một cách khác của


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


24
việc phân tích thừa số n. Đúng là có thể khi mà tồn tại một phƣơng pháp mà tính toán
khai căn modul mà không cần phân tích n hoặc quyết định d. Nhƣng cho đến nay chƣa
phƣơng pháp nào có thể làm nhƣ vậy nhanh hơn việc phân tích thừa số n.
Nhận xét: Số học, đặc biệt là số nguyên lớn và các phép tính đồng dƣ là những
công cụ quan trọng trong mật mã học đặc biệt là trong việc tính toán mật mã học khóa
công khai, điển hình là RSA.
1.3. MẬT MÃ HỌC VÀ MẬT MÃ KHÓA CÔNG KHAI RSA
1.3.1. Mã hóa dữ liệu
Mã hóa dữ liệu là sử dụng một phƣơng pháp biến đổi dữ liệu từ dạng bình
thƣờng sang một dạng khác, mà một ngƣời không có thẩm quyền, không có phƣơng
tiện giải mã thì không thể đọc hiểu đƣợc. Giải mã dữ liệu là quá trình ngƣợc lại, là sử
dụng một phƣơng pháp biến đổi dữ liệu đã đƣợc mã hóa về dạng thông tin ban đầu.

Hinh 1.2. Quy trình mã hóa dữ liệu
- Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu đƣợc mã hóa sao cho
ngƣời khác không thể đọc hiểu đƣợc.
- Giải mã: Là quá trình ngƣợc lại của mã hóa, biến đổi dữ liệu đã đƣợc mã hóa
thành dạng gốc ban đầu.
- Bản mã: Tệp dữ liệu đã đƣợc mã hóa.
Một hệ thống mã hóa bao gồm các thành phần sau:
PlainText: Bản tin sẽ đƣợc mã hóa hay bản tin gốc.
CipherText: Bản tin đã đƣợc mã hóa hay bản tin mã.
Thuật toán mã hóa và giải mã:

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



25
Encryption: Quá trình chuyển bản tin gốc sang dạng mật mã.
Decryption: Quá trình giải bản tin dạng mật mã trở về bản tin gốc.
Cách chọn khóa: Giá trị toán học dùng để thực hiện mã hóa.
Nhiều phƣơng pháp mã hóa đã đƣợc đƣa ra dựa trên những giải thuật toán phức
tạp, để tạo khó khăn cho những ai đó muốn phá mật mã mà không cần đƣợc ai trao chìa
khóa. Nói tạo khó khăn là vì trên lý thuyết ta không thể nói việc tìm chìa khóa là vô
phƣơng. Nhƣng nếu trở ngại đủ lớn để làm nản lòng kẻ gian thì đã là một mức độ an
toàn tốt.
Quá trình mã hóa và giải mã có thể đƣợc minh họa theo sơ đồ sau:
























Quá trình truyền
dữ liệu






Quá trình
mã hóa
Quá trình
giải mã
Bản tin gốc
Bản tin gốc
Bản tin mã
Bản tin mã

```
```
```

```
```
```



Hình 1.3. Sơ đồ mã hóa và giải mã
1.3.2. Ứng dụng của mã hóa
Mã hóa có vai trò rất quan trọng, đặc biệt là trong các lĩnh vực nhƣ: giao dịch
điện tử, quản lý văn bản … Nó giúp đảm bảo bí mật, toàn vẹn của thông tin, khi thông
tin đó đƣợc truyền trên mạng.
Mã hóa cũng là nền tảng của kỹ thuật chữ ký điện tử.
1.3.3. Phân loại mã hóa
Có nhiều cách để phân loại hệ mật mã. Dựa vào cách truyền khóa có thể phân
các hệ mật mã thành hai loại:

×