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

Nghiên cứu giải pháp bảo mật và xác thực website

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.72 MB, 87 trang )































BỘ GIÁO DỤC VÀ ĐÀO TẠO


TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2





TRỊNH HỒNG LÂM






NGHIÊN CỨU GIẢI PHÁP BẢO MẬT
VÀ XÁC THỰC WEBSITE





LUẬN VĂN THẠC SĨ MÁY TÍNH





HÀ NỘI, 2014





TRỊNH HỒNG LÂM




KHOA HỌC MÁY TÍNH




K
16
































BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI 2






TRỊNH HỒNG LÂM





NGHIÊN CỨU GIẢI PHÁP BẢO MẬT VÀ XÁC
THỰC WEBSITE


Chuyên ngành: Khoa học máy tính
Mã số: 60 48 01 01

LUẬN VĂN THẠC SĨ MÁY TINH

Người hướng dẫn khoa học: TS. Nguyễn Viết Thế




HÀ NỘI, 2014





LỜI CẢM ƠN

Lời đầu tiên, với tất cả lòng kính trọng và biết ơn sâu sắc em xin gửi lời
cảm ơn tới thầy giáo hướng dẫn Ts. Nguyễn Viết Thế, đã tạo mọi điệu kiện,
hướng dẫn, chỉ dẫn tận tình cho bài luận văn. Em xin chân thành cảm ơn tới
các thầy giáo Ts. Hồ Văn Hương đã giúp đỡ em rất nhiều trong quá trình học
tập và nghiên cứu.
Xin cám ơn Khoa Công nghệ Thông tin, Phòng Sau đại học, Trường Đại
học Sư phạm Hà Nội đã tận tâm giảng dạy, cung cấp cho tôi kiến thức,
phương pháp nghiên cứu trong khóa học cũng như trong quá trình thực hiện
luận văn.
Em cũng xin gửi lời cảm ơn tới gia đình, bạn bè và đồng nghiệp đã
luôn cổ vũ động viên em trong quá trình học tập và làm luận văn.

Mặc dù tôi đã cố gắng nghiên cứu, tìm hiểu đề tài nhưng vẫn không thể
tránh khỏi những sai sót nhất định, rất mong nhận được sự đóng góp và chia
sẻ của quý thầy cô và bạn bè.
Em xin chân thành cảm ơn!

Hà Nội, tháng 12 năm 2014
TÁC GIẢ LUẬN VĂN



Trịnh Hồng Lâm








LỜI CAM ĐOAN

Tôi xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn này
là trung thực và không trùng lặp với các đề tài khác. Tôi cũng xin cam đoan
rằng mọi sự giúp đỡ cho việc thực hiện luận văn này đã được cảm ơn và các
thông tin trích dẫn trong luận văn đã được chỉ rõ nguồn gốc.


TÁC GIẢ LUẬN VĂN



Trịnh Hồng Lâm





MỤC LỤC
Trang bìa phụ………………………………………….……………………….
Lời cảm ơn
Lời cam đoan
Mục lục…………………………………………………………………………
Danh mục các ký hiệu và các chữ viết tắt
Danh mục các hình vẽ
Danh mục các bảng
MỞ ĐẦU 1
Chương 1. CƠ SỞ LÝ THUYẾT AN TOÀN THÔNG TIN 4
1.1. Tổng quan về an toàn thông tin 4
1.2. Cơ sở khoa học trong an toàn thông tin 6
1.2.1. Khái niệm về mật mã …………………………………………… 6
1.2.2. Mã hóa và giải mã dữ liệu ……………………………………… 7
1.2.3. Hệ mật mã khoá đối xứng ……………………………………… 8
1.2.4. Hệ mật mã khóa công khai ……………………………………….9
1.2.5. Thuật toán mã hóa RSA ……………………………………… 10
1.2.6. Hàm băm ……………………………………………………… 14
1.2.7. Chữ ký số ……………………………………………………… 20
1.3. Các nguy cơ và rủi ro mất an toàn đối với hệ thống thông tin 25
1.3.1. Nguy cơ mất an toàn đối với hệ thống thông tin ……………… 25
1.3.2. Đánh giá và xử lý các nguy cơ mất an toàn thông tin …………….25
1.3.3. Rủi ro và quản lý rủi ro trong an toàn thông tin …………………26
1.3.4. Quản trị và bảo mật hệ thống thông tin ………………………….27

1.4. Giải pháp xây dựng một hệ thống bảo mật thông tin 27
1.4.1. Mục tiêu hệ thống ……………………………………………….27
1.4.2. Xây dựng cơ chế và chính sách bảo mật ……………………… 28




1.4.3. Giải pháp xây dựng hệ thống ……………………………………29
Chương 2. GIẢI PHÁP BẢO MẬT VÀ XÁC THỰC TRONG WEBSITE 31
2.1. Giới thiệu quá trình phát triển và hoạt động của website 31
2.2. Nguy cơ mất an toàn trên website 32
2.3. Các loại hình tấn công website 35
2.3.1. Tấn công vào vùng ẩn ………………………………………… 35
2.3.2. Can thiệp vào tham số trên URL ……………………………… 35
2.3.3. Tấn công dùng cookie ………………………………………… 37
2.3.4. Tấn công từ chối dịch vụ DoS (Denial of Service) …………… 37
2.3.5. Các cách tấn công chữ ký điện tử ……………………………….39
2.4. Giải pháp bảo mật trong website 40
2.5. Giải pháp xác thực trong Website 41
2.5.1. Username và Password ………………………………………….41
2.5.2. Giải pháp kiểm soát truy nhập hệ thống SSO ………………… 41
2.5.3. Xác thực máy chủ bằng SSL ……………………………………48
2.5.4. Xác thực sử dụng token ………………………………………….50
2.5.5. Giải pháp ký số, xác thực tài liệu trên nền tảng Web ………… 50
2.5.6. Xây dựng giải pháp ký số trên nền tảng Web ………………… 54
Chương 3. ĐỀ XUẤT GIẢI PHÁP 58
VÀ TRIỂN KHAI XÂY DỰNG HỆ THỐNG 58
3.1. Phân tích yêu cầu và thiết kế ứng dụng 58
3.1.1. Yêu cầu bài toán ……………………………………………… 58
3.1.2. Sơ đồ ứng dụng …………………………………………………58

3.1.3. Môi trường hệ thống …………………………………………….61
3.1.4. Thiết kế cơ sở dữ liệu ………………………………………… 62
3.1.5. USB Token …………………………………………………… 62
3.2. Xây dựng ứng dụng 64




3.2.1. Server ……………………………………………………………64
3.2.2. Client ………………………………………………………… 65
KẾT LUẬN 71
TÀI LIỆU THAM KHẢO 73





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

Stt
Từ viết tắt
Ý nghĩa từ viết tắt
1
CA
Certificate Authority
2
CIA
Confidentiality, Itegrity, Authentication
3
CSS

Cascading Style Sheets
4
CAS
Central Authenticate Service
5
DoS
Denial of Service
6
DNA
Deoxiribo Nucleic Acid
7
DdoS
Distributed Denial of Service
8
HTML
HyperText Markup Language
9
HTTP
Hypertext Transfer Protocol
10
JKS
Java key Store
11
LDAP
Lightweight Directory Access Protoco
12
NIST
National Institute of Standards and Technology
10
OpenSSO

Open Single Sign On
13
OTP
One Time Password
14
PKI
Public Key Infrastructure
15
SHA
Secure Hash Algorithm
16
SSO
Single Sign On
17
SSL
Secure Socket Layer
18
ST
Service Ticket
19
URL
Uniform Resource Locator
20
CERT
Computer Emegency Response Team
21
PKCS
Public Key Cryptography Standards






DANH MỤC CÁC HÌNH VẼ
STT
Ý NGHĨA
TRANG
Hình 1.1
Quá trình mã hoá và giải mã dữ liệu
8
Hình 1.2
Mã hóa với khóa mã và giải mã giống nhau
8
Hình 1.3
Mã hóa với khóa mã và giải mã khác nhau
10
Hình 1.4
Sơ đồ các bước thực hiện mã hóa theo thuật toán RSA
11
Hình 1.5
Sơ đồ ký một bản tóm lược thông báo
16
Hình 1.6
Sử dụng chữ ký số để kiểm tra tính toàn vẹn của dữ liệu
18
Hình 1.7
Thông tin bị lấy trộm và bị thay đổi trên đường truyền
18
Hình 1.8
Sơ đồ một vòng lặp SHA

21
Hình 1.9
Mô hình C - I – A
28
Hình 2.1
Mô hình hoạt động của Website
32
Hình 2.2
Mô tả tấn công DoS
37
Hình 2.3
Biểu đồ trình tự modul mã hóa hoạc giải mã
40
Hình 2.4
Sơ đồ truyền tin có mã hoá và giải mã trên website
41
Hình 2.5
Mô hình đăng nhập duy nhất OpenSSO
44
Hình 2.6
Cơ chế hoạt động của OpenSSO
45
Hình 2.7
Người dùng truy cập vào ứng dụng khi đã chứng
thực…
47
Hình 2.8
Người dùng truy cập ứng dụng mà chưa chứng thực
với
48

Hình 2.9
Mô hình ký số dữ liệu trên Server
52
Hình 2.10
Mô hình tổng quan
54
Hình 2.11
Lược đồ ký số trên web
56
Hình 2.12
Lược đồ xác thực ký số
57
Hình 3.1
Sơ đồ đăng kí token đăng kí tài khoản
59




Hình 3.2
Sơ đồ đăng nhập
59
Hình 3.3
Trao đổi giữa Client A và Client B
60
Hình 3.4
Trao đổi giữa Server – Client
61
Hình 3.5
Chức năng Server

61
Hình 3.6
Chức năng người dùng Client
62
Hình 3.7
Thiết kế cơ sở dữ liệu
62
Hình 3.8
USB Token của Viettel
62
Hình 3.9
Màn hình chính của Server
64
Hình 3.10
Màn hình quản lý tài khoản
65
Hình 3.11
Màn hình thêm tài khoản
65
Hình 3.12
Màn hình đăng nhập pin Usb token
66
Hình 3.13
Màn hình đăng nhập user
66
Hình 3.14
Màn hình chính của Client
67
Hình 3.15
Màn hình chọn file

67
Hình 3.16
Màn hình lưu file
67
Hình 3.17
Màn hình cảnh báo không thấy token
68
Hình 3.18
So sánh 2 file mã hóa và gốc
68
Hình 3.19:
Ký số dữ liệu
69
Hình 3.20
Xác thực dữ liệu
69





DANH MỤC CÁC BẢNG

Bảng
Ý nghĩa
Trang
Bảng 2.1
Bảng dự đoán thời gian phân tích
13
Bảng 2.2

Bảng các tính chất của thuật toán băm SHA
22
Bảng 2.3
Đặc tính kĩ thuật của USB eToken
64




















1



MỞ ĐẦU

1. Lý do chọn đề tài
Với sự phát triển mang tính toàn cầu của mạng Internet và TMĐT, con
người có thể mua bán hàng hoá và dịch vụ thông qua mạng máy tính trên toàn
cầu một cách dễ dàng trong mọi lĩnh vực.
Tuy nhiên, lại phát sinh những vấn đề mới. Những thông tin quan trọng
nằm ở kho dữ liệu hay đang trên đường truyền có thể bị đánh cắp, làm sai
lệch thông tin hay bị giả mạo. Điều đó có thể ảnh hưởng tới các tổ chức, cá
nhân hay một quốc gia. Những bí mật như kinh doanh, ví dụ như lĩnh vực tài
chính là mục tiêu đánh cắp của đối thủ cạnh tranh hay những tin tức về an
ninh quốc phòng của một quốc gia là mục tiêu của các tổ chức tình báo trong
và ngoài nước.
Theo số liệu của CERT (Computer Emegency Response Team: đội cấp
cứu máy tính) số lượng các vụ tấn công trên Internet ngày một nhiều hơn, quy
mô mỗi ngày một lớn và phương pháp tấn công mỗi ngày một tinh vi và hoàn
thiện hơn. Chẳng hạn như cùng một thời điểm tin tặc có thể tấn công hàng trăm
nghìn máy tính trên mạng. Vì vậy đối với các giao dịch mang tính nhạy cảm
này cần phải có những cơ chế đảm bảo bảo mật và an toàn và vấn đề bảo mật,
an toàn thông tin trong thương mại điện tử là một vấn đề hết sức quan trọng.
Hiện nay vấn đề Bảo mật và an toàn thông tin trong TMĐT đã và đang
được áp dụng phổ biến và rộng rãi ở Việt Nam và trên phạm vi toàn cầu. Vấn
đề bảo mật và an toàn đang được tập trung nghiên cứu và tìm giải pháp để
đảm bảo bảo mật và an toàn cho các hệ thống thông tin trên mạng sao cho đạt
được:
- Đảm bảo tin cậy: Các nội dung thông tin không bị theo dõi hoặc sao
chép bởi những thực thể không được uỷ thác.
2



- Đảm bảo toàn vẹn: Các nội dung thông tin không bị thay đổi bởi những

thực thể không được uỷ thác
- Sự chứng minh xác thực: Xác thực tính hợp pháp trong quá trình trao
đổi thông tin, nguồn gốc thông tin của một chủ thể.
- Không thể thoái thác trách nhiệm: Người gửi tin không thể thoái thác về
những sự việc và những nội dung thông tin đã gửi đi, xuất phát từ những khả
năng ứng dụng trong thực tế và những ứng dụng đã có từ các kết quả của
nghiên cứu trước đây về lĩnh vực Bảo mật và an toàn trong TMĐT. Đề tài sẽ đi
sâu nghiên cứu các kỹ thuật và các phương pháp bảo mật và an toàn thông tin
trong Website.
2. Mục đích nghiên cứu (Các kết quả cần đạt được)
Đề tài nghiên cứu các kiến thức khoa học và thuật toán liên quan như:
Xác thực, Bảo mật, Bảo toàn dữ liệu, Mật mã, Chữ ký số để thực hiện
nhiệm vụ bảo mật, an toàn và xác thực trong Website.
3. Nhiệm vụ nghiên cứu
- Nghiên cứu các kỹ thuật và phương pháp an toàn bảo mật trong thiết kế
Website.
- Áp dụng các kết quả đã nghiên cứu để triển khai hệ thống Bảo mật và
an toàn trong Website
4. Đối tượng và phạm vi nghiên cứu
- Đối tượng là các dữ liệu trong các ứng dụng web.
- Các vấn đề về bảo mật chứng thực trong website, hàm băm, các thuật
toán mã hoá đối xứng và và bất đối xứng, chữ ký số, giao thức bảo mật trên
mạng như SSL.
- Các kỹ thuật sử dụng thiết kế website và các phương pháp kết hợp hệ
mật mã trong bảo mật.
3



- Phạm vi nghiên cứu của luận văn là đảm bảo an toàn và bảo mật cho

dòng thông tin từ Client tới máy chủ ứng dụng và ngược lại.
- Do có những hạn chế nhất định về cơ sở vật chất và điều kiện tiếp cận
thực tế với lĩnh vực an toàn và bảo mật trong thương mại điện tử nên việc cài
đặt các ứng dụng chủ yếu mang tính thử nghiệm.
5. Giả thuyết khoa học
- Áp dụng các kết quả đã nghiên cứu để xây dựng các kỹ thuật bảo mật và
an toàn trong giao dich Website với một số tính năng cơ bản như: Hệ thống
chứng thực, mã hoá các thông tin cần thiết, kỹ thuật ngăn ngừa các rủi ro trong
website.
- Vấn đề Bảo mật và an toàn trên mạng là một trong những vấn đề nóng
hổi trong hoạt động thực tiễn của các website, giải quyết tốt vấn đề bảo mật
và an toàn trong website sẽ mang lại ý nghĩa hết sức to lớn như: Làm cho
khách hàng tin tưởng khi thực hiện các giao dịch trên mạng, ngăn ngừa được
những rủi ro trong các giao dịch website
6. Phương pháp nghiên cứu
- Thu thập, phân tích các tài liệu và những thông tin liên quan đến đề tài.
- Tìm hiểu cơ chế giao dịch của một số trang Web có sử dụng bảo mật an
toàn thông tin.
- Kết hợp các nghiên cứu đã có trước đây của các tác giả trong nước
cùng với sự hướng dẫn, góp ý của thầy hướng dẫn để hoàn thành nội dung
nghiên cứu.



4



Chương 1
CƠ SỞ LÝ THUYẾT AN TOÀN THÔNG TIN

1.1. Tổng quan về an toàn thông tin
Chúng ta đang sống trong thời đại bùng nổ thông tin. Nhu cầu trao đổi
thông tin và các phương tiện truyền tin phát triển một cách nhanh chóng.
Cùng với sự phát triển đó, việc đòi hỏi phải bảo vệ an toàn nguồn thông tin
ngày càng trở nên cấp thiết và phổ biến.
Có thể hiểu an toàn thông tin (dữ liệu) là khả năng xác suất ngăn chặn
các nguy cơ và thời gian đảm bảo mức độ an toàn xác định đối với thông tin
trên mạng. Các chỉ số này phụ thuộc lẫn nhau. Trong những biện pháp bảo vệ
thông tin cụ thể cho trước, có thể đảm bảo mức độ an toàn cao hơn trong
khoảng thời gian ngắn hơn.
Vì thông tin được chứa trong các tham số của vật mang, nên để đảm bảo
an toàn thông tin, các tham số này phải giữ được giá trị của nó trong khoảng
thời gian nhất định. Do tác động của những nhân tố (nhiễu) khác nhau mà giá
trị tham số của vật mang tin cũng khác nhau.
Vậy để thông tin được an toàn thì phải thỏa mãn các tiêu chí sau:
Bảo đảm bí mật: Giữ thông tin được bí mật không bị lộ đối với người
không được phép, chỉ người có thẩm quyền mới biết được nội dung thông tin đó.
Một số loại thông tin chỉ có giá trị đối với một đối tượng xác định và
chúng không được phổ biến đối với các đối tượng khác. Tính bí mật của
thông tin chính là giới hạn quyền truy xuất đến thông tin. Đối tượng truy xuất
có thể là con người, máy tính hay các phần mềm, kể cả các phần mềm phá
hoại như virus, worm, spyware,…
Để đảm bảo tính tính bí mật của thông tin, ngoài các cơ chế và phương
tiện vật lý như thiết bị lưu trữ, dịch vụ bảo vệ … thì kỹ thuật mã hóa được
5



xem là công cụ bảo mật thông tin hữu hiệu nhất. Các kỹ thuật mã hóa sẽ được
trình bày cụ thể ở phần mã hóa.

Toàn vẹn thông tin: Bảo đảm thông tin không bị thay đổi hay xuyên tạc
bởi những kẻ không có thẩm quyền hoặc bằng những phương tiện không được
phép. Tính toàn vẹn được xét trên 2 khía cạnh:
- Tính nguyên vẹn của nội dung thông tin.
- Tính xác thực của nguồn gốc thông tin.
Hay nói một cách khác, tính toàn vẹn của thông tin phải được đánh giá trên
hai mặt là toàn vẹn về nội dung và toàn vẹn về nguồn gốc.
Các cơ chế đảm bảo sự toàn vẹn của thông tin được chia thành 2 loại:
- Cơ chế ngăn chặn có chức năng ngăn cản các hành vi trái phép làm thay
đổi nội dung và nguồn gốc của thông tin.
- Nhóm cơ chế phát hiện chỉ thực hiện chức năng giám sát và thông báo khi
có thay đổi diễn ra trên thông tin bằng cách phân tích các sự kiện diễn ra trên hệ
thống mà không thực hiện chức năng ngăn chặn các hành vi truy xuất trái phép
thông tin.
Bảo đảm tính xác thực
Nhận thực một thực thể: Xác thực đúng thực thể cần kết nối, giao
dịch…chẳng hạn một người, một máy tính cuối trong mạng, một thẻ tín
dụng,
Nhận thực một thông báo: Xác thực nguồn gốc thông tin, xác thực đúng
thực thể có trách nhiệm về nội dung thông tin, xác nhận nguồn gốc của một
thông báo được gửi đến.
Tính khả dụng: Thông tin luôn sẵn sang cho người dùng hợp pháp có
thể xử dụng. Ví dụ: Các thông tin được lưu giữ trên máy chủ của một công ty
được bảo vệ một cách chắc chắn bằng nhiều cơ chế đảm bảo thông tin không
bị tiết lộ hay thay đổi. Tuy nhiên, khi người quản lý cần truy suất thông tin thì
6



không thực hiện được và ta có thể nói tính khả dụng của thông tin không được

đảm bảo.
Tính khả dụng là một yêu cầu rất quan trọng của hệ thống, bởi nếu hệ
thống tồn tại nhưng không sẵn sàng cho sử dụng thì hệ thống đó giống như
không tồn tại. Một hệ thống được xem có tính khả dụng tốt là một hệ thống
hoạt động liên tục và có hiệu quả, có khả năng phục hồi nhanh chóng nếu có
sự cố xảy ra.
1.2. Cơ sở khoa học trong an toàn thông tin
1.2.1. Khái niệm về mật mã
Mật mã đã được con người sử dụng từ lâu đời. Các hình thức mật mã sơ
khai đã được tìm thấy từ khoảng bốn nghìn năm trước trong nền văn minh Ai
Cập cổ đại. Trải qua hàng nghìn năm lịch sử, mật mã đã được sử dụng rộng rãi ở
khắp nơi trên thế giới từ Đông sang Tây để giữ bí mật cho việc trao đổi thông tin
trong nhiều lĩnh vực hoạt động giữa con người với con người, quốc gia với quốc
gia, đặc biệt trong các lĩnh vực quân sự, chính trị, ngoại giao. Mật mã trước hết
là một loại hoạt động thực tiễn, nội dung chính của nó là để giữ bí mật thông tin.
Với mật mã hiện đại ngoài khả năng che dấu dữ liệu, còn dùng để thực hiện: ký
số (ký điện tử) tạo đại diện thông điệp, giao thức bảo toàn dữ liệu, giao thức xác
thực thực thể, giao thức xác thực tài liệu, giao thức chưng minh không tiết lộ
thông tin, giao thức thỏa thuận phân phối khóa…
Ví dụ muốn gửi một văn bản từ một người gửi A đến một người nhận B,
A phải tạo cho văn bản đó một bản mã mật tương ứng và thay vì gửi văn bản
rõ thì A chỉ gửi cho B bản mã mật, B nhận được bản mã mật và khôi phục lại
văn bản rõ để hiểu được thông tin mà A muốn gửi cho mình. Do văn bản gửi
đi thường được chuyển qua các con đường công khai nên người ngoài có thể
“lấy trộm” được, nhưng vì đó là bản mật mã nên không đọc hiểu được; Còn A
có thể tạo ra bản mã mật và B có thể giải bản mã mật thành bản rõ để hiểu
7




được là do hai người đã có một thoả thuận về một chìa khoá chung, chỉ với
khoá chung này thì A mới tạo được bản mã mật từ bản rõ và B mới khôi phục
được bản rõ từ bản mã mật. Khoá chung đó được gọi là khoá mật mã.
Để thực hiện được một phép mật mã, ta cần có một thuật toán biến bản
rõ cùng với khoá mật mã thành bản mã mật và một thuật toán ngược lại biến
bản mật cùng với khoá mật mã thành bản rõ. Các thuật toán đó được gọi
tương ứng là thuật toán lập mã và thuật toán giải mã. Các thuật toán này
thường không nhất thiết phải giữ bí mật, mà cái luôn cần được giữ bí mật là
khoá mật mã. Trong thực tiễn, có những hoạt động ngược lại với hoạt động
bảo mật là khám phá bí mật từ các bản mã “lấy trộm” được, hoạt động này
thường được gọi là mã thám hay phá khoá.
1.2.2. Mã hóa và giải mã dữ liệu
Mã hóa là quá trình chuyển thông tin có thể đọc được (bản rõ) thành
thông tin khó có thể đọc được theo cách thông thường (bản mã). Đó là một
trong những kỹ thuật để bảo mật thông tin. Giải mã là quá trình chuyển đổi
thông tin từ bản mã thành bản rõ.
Trong quá trình mã hóa và giải mã sử dụng các thuật toán để tính toán
việc mã hóa hay giải mã. Để thuật toán mã hóa thực hiện theo một cách thức
riêng biệt và sinh ra bản rõ riêng ta dùng các “khóa mã”. Thông thường khóa
mã 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
được gọi là không gian khóa.
Hệ mật mã được định nghĩa là một bộ năm (P, C, K, E, D), trong đó:
1. P là tập hữu hạn các các bản rõ có thể.
2. C tập hữu hạn các bản mã có thể.
3. K là tập hữu hạn các khoá có thể.
4. E là tập các hàm lập mã.
5. D là tập các hàm giải mã.
8




Với mỗi k K, có một hàm lập mã ek  E, ek : P → C và một hàm giải
mã dkD, dk: C → P sao cho dk(ek(x)) = x ,  x  P (x: bản rõ)

Hình 1.1: Quá trình mã hoá và giải mã dữ liệu
1.2.3. Hệ mật mã khoá đối xứng
Hệ mã hóa khóa đối xứng còn được 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 đố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, khóa phải
được giữ bí mật. Độ an toàn của hệ mã hóa đối xứng phụ thuộc vào khóa nếu để
lộ ra khoá này nghĩa là bất kì người nào cũng có thể mã hoá và giải mã thông
báo trong hệ thống mã hoá. Sự mã hoá và giải mã của thuật toán đối xứng biểu
thị (hình 1.2):

Hình 1.2: Mã hóa với khóa mã và giải mã giống nhau
Các thành phần trong sơ đồ mã hóa khóa đối xứng:
- Bản rõ: Dữ liệu hay thông điệp cần được mã hóa.
- Thuật toán mã hóa: Thực hiện mã hóa dữ liệu tức là tạo ra sự thay đổi,
dịch chuyển khác nhau trên bản rõ để sinh ra bản mã.
- Khóa bí mật: Dùng để mã hóa bản rõ, là giá trị đầu vào của thuật toán
mã hóa và có giá trị độc lập với bản rõ. Thuật toán sinh ra bản mã phụ thuộc
vào khóa mã hóa.
9



- Bản mã: dữ liệu hay thông điệp đã được mã hóa. Bản mã phụ thuộc vào
khóa và thuật toán mã hóa.
- Thuật toán giải mã: Thực hiện dịch chuyển và thay thế trên bản mã và
khóa bí mật để sinh ra bản rõ.

Phương pháp mã hóa khóa đối xứng đòi hỏi người mã hóa và người giải
mã phải cùng chung một khóa. Khi đó khóa phải được giữ bí mật tuyệt đối, do
vậy ta dễ dàng xác định một khóa nếu biết khóa kia. Hệ mã hóa khóa đối
xứng không an toàn nếu khóa bị lộ với xác suất cao. Trong hệ này, khóa phải
được gửi đi trên kênh an toàn.
Ưu điểm của hệ mật mã khóa đối xứng là tốc độ mã hóa và giải mã nhanh.
Sử dụng đơn giản chỉ cần một khóa cho hai quá trình mã hóa và giải mã.
Nhược điểm của phương pháp này là không an toàn vì độ phúc tạp của
thuật toán nằm trong khả năng tinh toán của các máy tính hiện nay.
1.2.4. Hệ mật mã khóa công khai
Thuật toán mã hóa khóa công khai là thuật toán được thiết kế sao cho
khóa mã hóa là khác so với khóa giải mã. Mà khóa giải mã không thể tính toán
được từ khóa mã hóa. Khóa mã hóa gọi là khóa công khai (public key), khóa
giải mã được gọi là khóa riêng (private key)

Hình 1.3: Mã hóa với khóa mã và giải mã khác nhau
Đặc trưng nổi bật của hệ mã hóa khóa công khai là cả khóa công khai
(public key) và bản tin mã hóa (ciphertext) đều có thể gửi đi trên một kênh
thông tin không an toàn.
10



1.2.5. Thuật toán mã hóa RSA
1.2.5.1. Giới thiệu hệ mã hóa RSA
RSA được ra đời năm 1976 bởi các tác giả R.RivetsK, A.Shamir, và
L.Adleman. Hệ mã hóa này dựa trên cơ sở của hai bài toán:
- Bài toán Logarith rời rạc.
- Bài toán phân tích thành thừa số.
Trong hệ mã hóa RSA các bản rõ, các bản mã và các khóa (public key

và private key) là thuộc tập số nguyên Z
N
={1,…,N-1}. Trong đó tập Z
N
với
N = p*q là các số nguyên tố khác nhau cùnh với phép cộng, phép nhân modun
N tạo ra modun số học N.
Khóa mã hóa E
KB
là cặp số nguyên (N, K
B
) và khóa giải mã D
kB
là cặp
số nguyên (N, k
B
), các số là rất lớn, số N có thể lên tới hàng trăm chữ số các
phương pháp mã hóa và giải mã hóa là rất dễ dàng. Công việc mã hóa là sự
biến đổi bản rõ P (Plaintext) thành bản mã C (Ciphertext) dựa trên cặp khóa
công khai K
B
và bản rõ P theo công thức sau đây:
C = E
KB
(P) = P
KB
(mod N) (1)
Công việc giải mã là sự biến đổi ngược lại bản mã C thành bản rõ P dựa
trên cặp khóa bí mật k
B

, modun N theo công thức sau:
P =D
kB
(C) =C
kB
(mod N) (2)
Dễ thấy rằng, bản rõ ban đầu cần được biến đổi một cách thích hợp thành
bản mã, sau đó để có thể tái tạo lại bản rõ ban đầu từ chính bản mã đó:
P =D
kB
(E
KB
(P)) (3) Thay thế (1) vào (2) ta có:
(P
KB
)
kB
=P (mod N) (4)
Ta thấy N = pxq với p, q là số nguyên tố. Trong toán học đã chứng minh
được rằng, nếu N là số nguyên tố thì công thức (4) sẽ có lời giải khi và chỉ khi:
K
B
.k
B
 1 (mod  (N)) (5) Trong đó:
 (N) =LCM(p-1, q-1).
11




Đầu tiên người nhận B lựa chọn một khóa công khai K
B
một
cách ngẫu nhiên. Khi đó khóa bí mật k
B
được tính ra bằng công thức (5).

Hình 1.4: Sơ đồ các bước thực hiện mã hóa theo thuật toán RSA
Ví dụ: Mã hóa bản rõ: P = RENAISSANCE sử dụng thuật toán RSA.
Sinh khóa:
Chọn bí mật số nguyên tố p = 53, q = 61, tính n = p*q = 3233, công khai
n. Đặt P = C = Z
n
, tính bí mật (n) = (p-1)*(q-1) = 52*60 = 3120.
+ Chọn khóa công khai k
B
là nguyên tố với (n), tức là:
UCLN(b, (n)) = 1, chọn k
B
= 71.
+ Khóa bí mật K
B
là phần tử nghịch đảo của k
B
theo mod (n):
K
B
* k
B
≡ 1 (mod (n))

Ta nhận được khóa bí mật K
B
=791
Bản rõ số:
R
E
N
A
I
S
S
A
N
C
E
17
04
13
00
08
18
18
00
13
02
04
m
1
m
2


m
3

m
4

m
5

m
6

12



Theo phép lập mã:
c
i
= m
i
kB
mod n = m
i
71
mod 3233
Bản rõ số:
c
1

c
2

c
3

c
4

c
5

c
6

3106
0100
0931
2691
1984
2927
Giải mã:
Theo phép giải mã:
m
i
= c
i
KB
mod n =c
i

791
mod 3233 ta nhận được bản rõ: RENAISSANCE
1.2.5.2. Đánh giá thuật toán RSA
Trước khi thực hiện mã hóa, ta phải thực hiện chuyển đổi chuyển đổi văn
bản rõ sao cho không có giá trị nào của P tạo ra văn bản mã không an toàn. Nếu
không có quá trình này thuật toán RSA sẽ gặp phải một số vấn đề sau:
- Nếu m = 0 hoặc m = 1 sẽ tạo ra các bản mã có giá trị 0 và 1 tương ứng.
- Khi mã hóa với số mũ nhỏ (k
b
=3) và m cũng có giá trị nhỏ, giá trị m
kb

cũng nhận giá trị nhỏ (so với n). Như vậy phép modun không có tác dụng và
có thể dễ dàng tìm được m bằng cách khai căn bậc k
B
của P.
RSA là phương pháp mã hóa xác định (không có thành phần ngẫu nhiên)
nên kẻ tấn công có thể thực hiện tấn công lựa chọn bản rõ bằng cách tạo ra
một bảng tra giữa bản rõ và bản mã. Khi gặp một bản mã kẻ tấn công sử dụng
bảng tra để tìm ra bản rõ tương ứng.
Trên thực tế, ta thường gặp 2 vấn đề khi gửi các bản tin ASCII ngắn với
m là nhóm vài ký tự ASCII. Một đoạn tin chỉ có một ký tự NUL sẽ được gán
giá trị m = 0 và cho ra bản mã là 0 bất kể giá trị của k
B
và N. Tương tự, một
ký tự ASCII khác SOH có giá trị 1 sẽ luôn cho bản mã là 1. Với Với các giá
trị k
B
nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa không an toàn vì giá
trị m chỉ là 255 và 2553 nhỏ hơn giá trị n chấp nhận được. Những bản mã này

sẽ dễ dàng bị phá mã.
13



Để tránh gặp phải những vấn đề trên, RSA trên thực tế bao gồm một hình
thức chuyển đổi ngẫu nhiên trước khi mã hóa. Quá trình chuyển đổi này phải
đảm bảo rằng không rơi vào các giá trị không an toàn. Sau khi chuyển đổi, mỗi
bản rõ khi mã hóa sẽ cho ra một trong số khả năng trong tập hợp bản mã. Điều
này làm giảm tính khả thi của phương pháp tấn công lựa chọn bản rõ.
Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác
định các thừa số nguyên tố của một số lớn. Bảng dưới đây cho biết các thời gian
dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây.
Bảng 1.1: Bảng dự đoán thời gian phân tích
Số các chữ số trong
số được phân tích
Thời gian phân tích
50
4 giờ
75
104 giờ
100
74 năm
200
4.000.000 năm
300
5*10
15
năm
500

4*10
25
năm

Một số tiêu chuẩn, chẳng hạn như PKCS, đã được thiết kế chuyển đổi
bản rõ trước khi mã hóa bằng RSA. Các phương pháp chuyển đổi này bổ
xung thêm bít vào P. Các phương pháp chuyển đổi cần phải được thiết kế thận
trọng để tránh những dạng tấn công phức tạp tận dụng khả năng biết trước
được cấu trúc bản rõ.
1.2.5.3. Ứng dụng của RSA
Hệ mã hóa RSA được ứng dụng rộng rãi chủ yếu cho web và các chương
trình email. Ngày nay, RSA còn được sử dụng rộng rãi trong các công nghệ
bảo mật sử dụng cho thương mại điện tử.
14



1.2.6. Hàm băm
1.2.6.1. Đặt vấn đề
Chúng ta có thể thấy rằng các sơ đồ chữ ký nói chung chỉ cho phép ký
các bức điện nhỏ. Thông thường khi sử dụng một sơ đồ chữ ký, chữ ký được
sinh ra có độ dài lớn hơn so với văn bản ký, do vậy kích thước văn bản sau
khi ký sẽ tăng lên rất nhiều. Và trên thực tế ta cần ký trên các bức điện rất dài,
chẳng hạn, một tài liệu có thể dài nhiều Megabyte.
Một cách đơn giản để giải bài toán này là chia các bức điện dài thành nhiều
đoạn sau đó ký lên các đoạn đó độc lập nhau. Phương pháp này gặp phải một số
vấn đề trong việc tạo ra các chữ ký số. Trước hết, với một bức điện dài, ta kết
thúc bằng một chữ ký rất lớn. Nhược điểm khác là các sơ đồ chữ ký “an toàn” lại
chậm vì chúng dùng các phương pháp số học phức tạp như số mũ modulo. Tuy
nhiên, vấn đề nghiêm trọng hơn với phép toán này là bức điện đã ký có thể bị

sắp xếp lại các đoạn khác nhau, hoặc một số đoạn trong chúng có thể bị loại bỏ
và bức điện nhận được vẫn xác minh được. Sự nguyên vẹn của toàn bộ bức điện
không thể thực hiện được bằng cách ký độc lập từng mẩu nhỏ của chúng.

Hình 1.5: Sơ đồ ký một bản tóm lược thông báo
1.2.6.2. Khái niện hàm băm
Hàm băm là thuật toán không dùng khóa để mã hóa (ở đây dùng thuật ngữ
“băm” thay cho “mã hóa”), nó có nhiệm vụ “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 gọi là đại diện tài liệu.

×