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

PHÁT TRIỂN ỨNG DỤNG KÝ SỐ BẰNG THẺ THÔNG MINH

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 (3.69 MB, 80 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THÔNG TIN 1

ĐỒ ÁN
TỐT NGHIỆP ĐẠI HỌC

ĐỀ TÀI:
NGHIÊN CỨU VÀ PHÁT TRIỂN ỨNG DỤNG KÝ SỐ BẰNG
THẺ THÔNG MINH

Giảng viên:

TS. Đặng Minh Tuấn

Sinh viên:

Nguyễn Thuỳ Linh

Mã sinh viên:

B18DCAT137

Lớp:

D18CQAT01-B

Hệ:

Chính quy

Hà Nội – 12/2022




LỜI CẢM ƠN
Em xin được gửi lời cảm ơn chân thành nhất tới TS. Đăng Minh Tuấn –
người thầy luôn tận tình chỉ bảo, hướng dẫn em nhiệt tình, giúp đỡ em trong
suốt quá trình học tập và làm đồ án.
Em xin chân thành cảm ơn các Thầy, Cô giáo trong Học viện Cơng nghệ Bưu
chính Viễn thơng và đặc biệt là các Thầy, Cơ trong khoa An tồn thơng tin đã
dạy dỗ, động viên, tạo điều kiện tốt nhất cho em trong quá trình học tập 4,5 năm
tại Học viện.
Cuối cùng, em xin chân thành cảm ơn các anh chị và các bạn trong Học viện
Cơng nghệ Bưu chính Viễn thông đã luôn động viên, giúp đỡ và nhiệt tình chia
sẻ với em những kinh nghiệm trong học tập và cuộc sống.
Mặc dù em đã có sự cố gắng, song do sự hạn hẹp về thời gian, điều kiện
nghiên cứu và trình độ, đồ án khơng tránh khỏi những khiếm khuyết. Em chân
thành mong nhận được sự đóng góp ý kiến của các Thầy, Cô giáo.
Em xin chân thành cảm ơn!

i


MỤC LỤC
LỜI CẢM ƠN .................................................................................................... i
MỤC LỤC ........................................................................................................ ii
DANH MỤC TỪ VIẾT TẮT ........................................................................... v
DANH MỤC HÌNH ẢNH .............................................................................. vii
DANH MỤC BẢNG ........................................................................................ ix
LỜI NÓI ĐẦU .................................................................................................. 1
Chương 1:


TỔNG QUAN VỀ CHỮ KÝ SỐ ................................................ 3

1.1

Đặt vấn đề ............................................................................................ 3

1.2

Mục tiêu của đề tài ............................................................................... 3

1.3
Cơ sở hạ tầng hệ mật mã hóa cơng khai (KPI) ..................................... 3
1.3.1
Khái niệm. .................................................................................... 3
1.3.2
Cơ sở khoa học về KPI ................................................................. 4
1.3.3
Các thành phần của KPI ............................................................... 8
1.3.4
Thuật toán RSA. ......................................................................... 10
1.3.5
Hàm băm. ................................................................................... 12
1.3.6
Chứng thư số .............................................................................. 14
1.4
Chữ ký số........................................................................................... 16
1.4.1
Định nghĩa chữ ký số .................................................................. 16
1.4.2
Yêu cầu cần thiết để trở thành một chữ ký số ............................. 17

1.4.3
Luật pháp và thực tế ................................................................... 17
1.4.4
Nguyên lý hoạt động của chữ ký số ............................................ 18
1.4.5
Các đặc điểm của chữ ký số ........................................................ 19
1.4.6
Ứng dụng chữ ký số trong thực tế ............................................... 20
1.5
Dịch vụ chứng thực chữ ký số . .......................................................... 21
1.5.1
Bản chất dịch vụ ......................................................................... 21
1.6
Ứng dụng của chữ ký số .................................................................... 21
1.6.1
Ứng dụng của chữ ký số tại Việt Nam ........................................ 21
1.6.2
Chữ ký số đem lại lợi ích gì? ...................................................... 22
1.6.3
Vấn đề về chữ ký số tại Việt Nam .............................................. 22
1.7

Tổng kết cuối chương. ....................................................................... 24

Chương 2:

DỊCH VỤ KÝ SỐ...................................................................... 25
ii



2.1
Ký số từ xa ........................................................................................ 25
2.1.1
Khái niệm ................................................................................... 25
2.1.2
Thành phần ................................................................................. 25
2.1.3
Các kịch bản ký số từ xa ............................................................. 28
2.1.4
Khung tiêu chuẩn về ký số từ xa ................................................. 31
2.2
Ký số bằng thẻ thơng minh ................................................................ 33
2.2.1
Thẻ thơng minh là gì? ................................................................. 33
2.2.2
Ưu nhược điểm của thẻ thông minh [2] ...................................... 33
2.2.3
Thẻ thơng minh có bao nhiêu loại ............................................... 34
2.2.4
Thẻ thơng minh không tiếp xúc hoạt động như nào? ................... 35
2.2.5
Ứng dụng của thẻ thông minh trong chữ ký số............................ 36
2.2.6
NFC ............................................................................................ 38
2.2.7
Chữ ký số trên thời gian bằng thẻ thông minh ............................ 38
2.3

Tổng kết cuối chương. ....................................................................... 39


Chương 3:
3.1

THIẾT KẾ XÂY DỰNG ỨNG DỤNG .................................... 40

Tổng quan về ứng dụng ..................................................................... 40

3.2
Công nghệ sử dụng: ........................................................................... 40
3.2.1
Flutter ......................................................................................... 40
3.2.2
Android ...................................................................................... 41
3.3
Tổng quan chức năng ......................................................................... 42
3.3.1
Biểu đồ usecase tổng quát. .......................................................... 42
3.3.2
Biểu đồ usecase phân rã chức năng tạo chữ ký: .......................... 43
3.3.3
Biểu đồ usecase phân rã chức năng ký số từ xa:.......................... 44
3.3.4
Biểu đồ usecase phân rã chức năng ký số bằng thẻ: .................... 45
3.3.5
Biểu đồ usecase phân rã chức năng ký số bằng P12: ................... 45
3.4

Sơ đồ hoạt động ký số ........................................................................ 47

3.5

Đặc tả chức năng: .............................................................................. 48
3.5.1
Đặc tả usecase chức năng tạo chữ ký: ......................................... 48
3.5.2
Đặc tả usecase chức năng ký từ xa: ............................................. 49
3.5.3
Đặc tả usecase chức năng ký số bằng thẻ thông minh: ................ 50
3.5.4
Đặc tả usecase chức năng ký số với P12: .................................... 52
3.6
Thiết kế giao diện .............................................................................. 53
3.6.1
Thiết kế giao diện chính ............................................................. 53
3.6.2
Thiết kế giao diện màn hình cài đặt ............................................ 54
3.6.3
Thiết kế giao diện màn hình cài đặt dịch vụ chứng thực số ......... 55
iii


3.6.4
3.6.5
3.6.6
3.6.7
3.6.8
3.6.9

Thiết kế giao diện màn hình cài đặt dịch vụ ký số....................... 57
Thiết kế giao diện màn hình cài đặt mẫu chữ ký ......................... 59
Thiết kế giao diện màn hình cài đặt vị trí ký trên trang: .............. 60

Thiết kế giao diện màn hình cài đặt cấu hình khác: ..................... 62
Thiết kế giao diện màn hình tạo chữ ký: ..................................... 62
Thiết kế giao diện màn hình xem thơng tin chứng chỉ số: ........... 63

3.7
Xây dựng ứng dụng ........................................................................... 65
3.7.1
Công nghệ và thư viện sử dụng................................................... 65
3.7.2
Kết quả đạt được......................................................................... 66
3.8
Ưu và nhược điểm của ứng dụng: ...................................................... 67
3.8.1
Ưu điểm của ứng dụng: .............................................................. 67
3.8.2
Nhược điểm của ứng dụng: ......................................................... 68
3.9

Tổng kết cuối chương ........................................................................ 68

Chương 4:

KẾT LUẬN ............................................................................... 69

DANH MỤC THAM KHẢO ......................................................................... 70

iv


DANH MỤC TỪ VIẾT TẮT

STT

Từ viết tắt

1

CA

Certificate Authority

Cơ quan cấp chứng chỉ

CAdES

CMS Advanced
Electronic Signatures

Chữ ký điện tử nâng cao
CMS

DES

Data Encryption
Standard

Tiêu chuẩn mã hóa dữ liệu

HSM

Hardware Security

Module

Mơ-đun bảo mật phần cứng

Identity Provider

Nhà cung cấp danh tính

KPI

Public key
infrastructure

Cơ sở hạ tầng khóa cơng
khai

KM

Key Management

Quản lý khố

MD5

Message-Digest
algorithm 5

Thuật tốn Message-Digest
5


NFC

Near-Field
Communication

Giao tiếp trường gần

PDF Advanced
Electronic Signatures

Chữ ký điện tử nâng cao
PDF

2
3
4
5
6
7
8
9
11
12
13

IP

PAdES
RA


16

19

Registration Authority Cơ quan đăng ký
Signature Activation
Module

Mơ-đun kích hoạt chữ ký

SCASC

Signature Creation
Application Service
Component

Thành phần dịch vụ ứng
dụng tạo chữ ký

Secure Hash
Algorithm 1

Thuật toán băm an tồn 1

SIC

Signature Activation
Component

Thành phần kích hoạt chữ



SSASC

Server Signing
Application Service
Component

Thành phần dịch vụ ứng
dụng ký máy chủ

TM

Token Management

Quản lý mã

TSP

Trust Service Provider

Nhà cung cấp dịch vụ tin
cậy

SHA1

17

18


Tiếng Việt

SAM

14

15

Viết đầy đủ

v


20

XAdES

XML Advanced
Electronic Signatures

vi

Chữ ký điện tử nâng cao
XML


DANH MỤC HÌNH ẢNH
Hình 1.1 Mơ hình hệ mật mã hóa đối xứng ....................................................... 6
Hình 1.2 Mơ hình hệ mật mã hóa cơng khai ...................................................... 7
Hình 1.3 Các thành phần của KPI ...................................................................... 8

Hình 1.4 Quy trình phân phối và thu hồi chứng thư số ...................................... 9
Hình 1.5 Quy trình sinh chữ ký RSA được sử dụng ký lên văn bản. ................ 11
Hình 1.6 Triển khai từng bước của Thuật tốn xác minh chữ ký RSA. ............ 11
Hình 1.7 Hình minh họa hàm băm ................................................................... 12
Hình 1.8 Phiên bản 3 của chứng nhận X.509 ................................................... 15
Hình 1.9 Hình minh họa quá trình ký số .......................................................... 19
Hình 1.10 Hình ảnh USB token của nhà cung cấp Viettel................................ 21
Hình 1.11 Hình minh họa dịch vụ chứng thực chữ ký số ................................. 23
Hình 2.1Sơ đồ các thành phần của môi trường người ký ................................. 26
Hình 2.2Sơ đồ các thành phần của hệ thống .................................................... 27
Hình 2.3 Sơ đồ các thành phần của mơi trường nhà cung cấp dịch vụ ............. 28
Hình 2.4 Sơ đồ mô phỏng kịch bản ký số từ xa SCAL1 .................................. 29
Hình 2.5 Sơ đồ mơ phỏng kịch bản ký số từ xa SCAL2 .................................. 30
Hình 2.6 Khung tiêu chuẩn về ký số từ xa ....................................................... 31
Hình 2.7 Các thành phần của nhà cung cấp dịch vụ tin cậy ............................. 32
Hình 2.8 Thẻ khơng tiếp xúc ........................................................................... 34
Hình 2.9 Thẻ tiếp xúc ...................................................................................... 35
Hình 2.10 Thủ tục cơ bản cho việc ký và kiểm tra ........................................... 37
Hình 3.1Biểu đồ usecase của ứng dụng ........................................................... 43
Hình 3.2 Biểu đồ usecase chức năng tạo chữ ký .............................................. 44
Hình 3.3 Biểu đồ usecase chức năng ký số từ xa ............................................. 44
Hình 3.4 Biểu đồ usecase chức năng ký số bằng thẻ ........................................ 45
Hình 3.5 Biểu đồ usecase chức năng ký số với P12 ......................................... 46
Hình 3.6 Sơ đồ hoạt động ký số từ xa .............................................................. 47
Hình 3.7 Giao diện màn hình chính ................................................................. 54
Hình 3.8 Giao diện màn hình cài đặt ............................................................... 55
Hình 3.9 Giao diện màn hình dịch vụ chứng thực từ xa ................................... 56
Hình 3.10 Giao diện dịch vụ chứng thực cục bộ .............................................. 57
vii



Hình 3.11 Giao diện màn hình dịch vụ ký số từ xa .......................................... 58
Hình 3.12 Màn hình giao diện dịch vụ ký số cục bộ ........................................ 59
Hình 3.13 Màn hình cài đặt mẫu chữ ký .......................................................... 60
Hình 3.14 Màn hình cài đặt vị trí ký trên trang ................................................ 61
Hình 3.15 Màn hình cài đặt cấu hình khác ....................................................... 62
Hình 3.16 Màn hình tạo chữ ký ....................................................................... 63
Hình 3.17 Màn hình hiển thị thơng tin tóm lược của chứng chỉ ....................... 64
Hình 3.18 Màn hình hiển thị thơng tin chi tiết của chứng chỉ .......................... 65

viii


DANH MỤC BẢNG
Bảng 1 Những định dạng chữ ký được hỗ trợ .................................................. 31
Bảng 2 Đặc tả usecase chức năng tạo chữ ký ................................................... 48
Bảng 3 Đặc tả usecase chức năng ký số từ xa .................................................. 50
Bảng 4 Đặc tả usecase chức năng ký số bằng thẻ thông minh .......................... 51
Bảng 5 Đặc tả usecase chức năng ký số với P12 .............................................. 53
Bảng 6 Danh sách các công nghệ sử dụng ....................................................... 66
Bảng 7 Danh sách các thư viện thứ 3 sử dụng ................................................. 66

ix


LỜI NĨI ĐẦU
Với sự phát triển nhanh chóng của cơng nghệ, các giao dịch, thông tin dần
được thực hiện thông qua mạng Internet. Chữ ký số là một trong số các công cụ
nhằm giúp các giao dịch hoặc thông tin trở nên minh bạch hơn. Chữ ký số có thể
hiển đơn giản là chữ ký, con dấu đại diện cho một cá nhân hay một tập thể dùng

để ký lên các hồ sơ, chứng từ điện tử. Chữ ký này chỉ do người sử dụng nắm
giữ, không cần phải gửi đi cùng với văn bản được ký giúp đảm bảo tính bí mật
cho chữ ký. Người nhận có thể định danh xác nhận được văn bản. Chữ ký số có
thể được cung cấp bởi một bên thứ 3 nhằm giúp dễ dàng trong việc định danh
người ký. Chữ ký số có chi phí thấp, độ an tồn cao, dễ dàng trong việc sử dụng.
Chẳng hạn, khi công bố các văn bản phát hành của nhà nước, việc sử dụng chữ
ký số để ký lên văn bản được công bố là điều cần thiết để tránh văn bản bị giả
mạo. Tất cả mọi người đều có thể xác thực văn bản đó với khóa cơng khai do
nhà nước cung cấp.
Các thơng tin của người ký có thể được định danh nhanh chóng nếu chữ ký
được cung cấp bởi một bên thứ 3, bên cạnh đó người ký có thể thêm các thơng
tin của chính mình vào văn bản được ký.
Với những tính năng này, người sở hữu chữ ký có thể ký trên mọi văn bản và
có thể gửi đi bất cứ đâu. Người nhận có thể dễ dàng nhận và xác thực chữ ký,
định danh người gửi mọi nơi, mọi lúc. Khóa bí mật chỉ do người ký nắm giữ nên
việc đảm bảo tính bí mật cho chữ ký hồn tồn khả thi và thuận tiện.
RSA là một thuật tốn mật mã hóa khóa cơng khai. Đây là thuật tốn đầu tiên
phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó đánh dấu
một sự tiến bộ vượt bậc của lĩnh vực mật mã học trong việc sử dụng khóa cơng
cộng.
Với mục tiêu như vậy, bố cục của đồ án sẽ bao gồm bốn chương theo cấu
trúc như sau:
Chương 1: Tổng quan về chữ ký số
Giới thiệu tổng quan về chữ ký số, nguyên lý hoạt động, quá trình ký và xác
thực chữ ký, ứng dụng của chữ ký số trong đời sống.
Chương 2: Dịch vụ ký số
Trình bày về thành phần, cơ chế hoạt động của các dịch vụ ký số có trong
ứng dụng bao gồm: ký số với thẻ thông minh, ký số với P12 và ký số từ xa.
Chương 3: Thiết kế xây dựng ứng dụng
1



Trình bày về quá trình xây dựng ứng dụng ký số trên điện thoại bằng Flutter,
hướng dẫn sử dụng các tính năng có trong ứng dụng và đánh giá ưu nhược điểm
của ứng dụng.
Chương 4: Kết luận và hướng phát triển
Tổng kết, tóm tắt những kết quả đã đạt được và cịn chưa đạt được. Từ đó đề
xuất hướng giải quyết tiếp theo

2


Chương 1: TỔNG QUAN VỀ CHỮ KÝ SỐ
Trong chương 1 sẽ làm rõ các mục tiêu của đề tài cũng như tìm hiểu tổng
qua về chữ ký số và các kiến thức liên quan.
1.1 Đặt vấn đề
Công nghệ phát triển đã mở ra những nền tảng giao dịch kết nối toàn cầu, các
hoạt động quản trị doanh nghiệp như quản lý nhân sự, hoá đơn, chứng từ,…
đang dần dịch chuyển lên nền tảng số. Trong bối cảnh cả doanh nghiệp và cơ
quan nhà nước cùng đẩy mạnh chuyển đổi số để xây dựng chính phủ điện tử và
thúc đầy nền kinh tế số đã khiến cho hoạt động giao dịch trực tuyến “bùng nổ”,
phát triển mạnh mẽ. Đi cùng với đó là dịch vụ chữ ký số tạo mơi trường làm
việc chun nghiệp, hiện đại, góp phần số hố nền kinh tế.
Đặc biệt, trong giai đoạn của đại dịch Covid-19 tầm ảnh hưởng cũng như sức
mạnh của việc sử dụng chữ ký số càng trở nên rõ ràng. Chữ ký số có thể kê khai
trực tuyến, nộp thuế qua mạng, giao dịch chững khốn điện tử,… mà khơng phải
in các giấy tờ hay đóng dấu phức tạp. Điều đó góp phần làm giảm thiểu chi
phím thời gian. Ngồi ra, chữ ký số cịn đảm bảo được độ an tồn, chính xác,
bảo mật toàn vẹn dữ liệu,… giúp cá nhân hoặc doanh nghiệp yên tâm với những
giao dịch điện tử.

Từ những như cầu thực tế trên, em đã thực hiện đề tài “ Nghiên cứu và phát
triển ứng dụng ký số bằng thẻ thơng minh “. Mục đích của đề tài là xây dựng
một ứng dụng ký số trên thiết bị di động giúp hỗ trợ người dùng dễ dàng sử
dụng được các thao tác ký số.
1.2 Mục tiêu của đề tài
Mục tiêu của đề tài là nghiên cứu thiết kế, phát triển ứng dụng ký số bằng
Flutter, đảm bảo được tính xác thực, tồn vẹn, sẵn dùng của chữ ký số. Từ yêu
cầu đề bài như trên thì đề tài được phát triển theo ba phương pháp ký số như
sau:
- Ký số bằng thẻ thông minh.
- Ký số với P12.
- Ký số từ xa.
1.3 Cơ sở hạ tầng hệ mật mã hóa cơng khai (KPI)
1.3.1 Khái niệm.
Cơng cụ dùng để xác thực là các thẻ, mỗi thẻ xác thực có hai thành phần
thông tin cơ bản là định danh và khóa cơng khai của đối tượng sử dụng. Các thẻ
3


xác thực này do đối tượng quản lý thẻ xác thực tạo ra và ký với phương thức
chữ ký số. Trong một số hệ thống, đối tượng quản lý đăng ký được tách riêng ra
khỏi CA. Đối tượng này không tạo ra các thẻ xác thực, nó có nhiệm vụ xác thực
đối với các đối tượng truyền thông cho một CA sẽ cấp phát thẻ xác thực cho đối
tượng đó. Nghĩa là, quá trình xác thực khi một đối tượng yêu cầu một thẻ xác
thực của CA sẽ do RA đảm nhận.
Đúng như tên gọi của nó, PKI là một dịch vụ nền cho các dịch vụ an toàn an
ninh dựa trên các thẻ xác thực. Trong các hệ thống này đảm nhận vai trò tạo lập,
quản lý và phân phát các thẻ xác thực cho đối tượng truyền thông. Nói tóm lại,
tất cả các chức năng quản lý của hệ thống PKI đều hướng tới một yêu cầu duy
nhất:” Quản lý các đối tượng sử dụng trong hệ thống với khóa cơng khai của các

đối tượng đó”.
Theo nghĩa đầy đủ PKI gồm 3 phần chính[1]:
Phần 1: Tập hợp các cơng cụ, phương tiện, giao thức bảo đảm an tồn thông
tin
Phần 2: Hành lang pháp lý: luật giao dịch điện tử, các quy định dưới luật
Phần 3: Các tổ chức điều hành giao dịch điện tử ( CA, RA, LRA,...)
Ba thành phần trên thiết lập một hệ thống tin cậy trên mạng máy tính cơng
khai.
Hệ thống có các khả năng sau:
-

Bảo đảm “bí mật” các thơng tin truyền trên mạng: thực thể không cử cấp
quyền không thể xem trộm bản tin

-

Bảo đảm “tồn vẹn” các thơng tin truyền trên mạng: thực thể không được
cấp quyền không thể sửa đổi bản tin

-

đảm “xác thực” các thông tin truyền trên mạng: thực thể nhận bản tin có
thể định danh được thực thể gửi bản tin và ngược lại

-

Bảo đảm hỗ trợ các yêu cầu “chống chối cãi”
Nhờ có những khả năng đó trên hệ thống này các thực thể không biết mặt
nhau từ xa có thể tiến hành giao dịch trong niềm tin cậy lẫn nhau.


1.3.2 Cơ sở khoa học về KPI
Mã hóa là cơng cụ cơ bản của việc đảm bảo an toàn dữ liệu. Ở thời kỳ sơ
khai, con người đã biết sử dụng nhiều phương pháp để bảo vệ các thơng tin bí
mật, nhưng tất cả các phương pháp đó chỉ mang tính nghệ thuật hơn là khoa học.
4


Ban đầu mật mã học được sử dụng phổ biến trong quân đội, qua nhiều cuộc
chiến tranh vai trò của mật mã ngày càng trở nên quan trọng hơn và mang lại
nhiều thành quả không nhỏ như các hệ mặt cổ điển Caesar, Playfair,... chúng đã
là nền tảng cho mật mã học sau này.
Hệ mật mã là tập hợp các thuật tốn, các khố nhằm che giấu thơng tin hoặc
làm rõ nó [8]:
Hệ mật mã đượ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ể
K là tập hữu hạn các khố 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 mỗi k є K, có một hàm lập mã ek є E
ek: P → C

PT 3.1

Và một hàm giải mã dk є D
dk: C → P sao cho dk (dk (x)) = x với
mọi x є P

PT 3.2


Trong một hệ thống mật mã khái quát sẽ có các thành phần sau:
Văn bản rõ (plaintext), tức là thông điệp nguyên gốc chưa được mã hóa.
Văn bản mã hóa (ciphertext), tức là thơng điệp đã được mã hóa.
Thuật tốn mã hóa (enciphering algorithm) là các giao thức hoặc hướng dẫn
có tác dụng chuyển đổi văn bản chơn thành văn bản mã hóa. Đối với các hệ
thống mật mã truyền thống, chỉ có người gửi thơng điệp biết được thuật tốn mã
hóa, tuy nhiên đối với các hệ thống dùng mật mã khóa cơng khai (Public key
code - PKC), tất cả mọi người đều có thể biết thuật tốn mã hóa mà không ảnh
hưởng tiêu cực đến an ninh của hệ thống.
Khóa mã hóa (enciphering key) là một hoặc nhiều đối tượng (thường là các
con số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc mã hóa
văn bản trơn. Ngoại trừ trong hệ thống PKC, để đảm bảo bí mật an tồn thì khóa
mã hóa thường chỉ được người gửi biết.

5


Thuật toán giải mã (deciphering algorithm) là các giao thức hoặc hướng dẫn
có tác dụng chuyển đổi văn bản mã hóa trở về văn bản trơn. Để đảm bảo bí mật,
chỉ có người nhận thơng điệp biết được thuật tốn giải mã.
Khóa giải mã (deciphering key) là một hoặc nhiều đối tượng (thường là các
con số hay là các hướng dẫn quan trọng nào đó) được dùng trong việc giải mã
văn bản bị mã hóa. Để đảm bảo bí mật, chỉ có người nhận thơng điệp biết được
khóa giải mã.
Sản phẩm mật mã (Cryptography Product) bao gồm các hệ thống thiết bị,
module, mạch tích hợp và các chương trình phần mềm mã hố chun dụng có
tích hợp các thuật tốn mật mã, được thiết kế, chế tạo để bảo vệ thông tin giao
dịch điện tử và lưu trữ dưới dạng số hố, trong đó sử dụng "Thuật tốn mã đối
xứng" hoặc "Thuật tốn mã khơng đối xứng"
Hệ mật mã đối xứng: Caesar, IDEA, DES, Triple DES,...

Hệ mật mã không đối xứng: RSA, Elgamal, ECC
Hệ mật mã hoá đối xứng:
Hệ mật mã hoá đối xứng là hệ mật mã chỉ dùng một khóa duy nhất cho cả hai
q trình mã hố và giải mã.

Hình 1.1 Mơ hình hệ mật mã hóa đối xứng
+ Ưu và nhược điểm của mã hoá đối xứng:
Ưu điểm:
- Tốc độ mã hoá nhanh
- Sử dụng đơn giản:
Nhược điểm:

6


Các phương pháp mã hố cổ điển địi hỏi người mã hoá và người giải mã
phải cùng chung một khoá. (Chính xác là biết khố này “dễ dàng” xác định khố
kia). Khi đó khố phải được giữ bí mật tuyệt đối. Mặt khác hai người cùng giữ
chung một khố thì rất dễ bị để lộ.
Vấn đề quản lý và phân phối khố là khó khăn và phức tạp khi sử dụng hệ
mã hoá cổ điển, Người gửi và người nhận phải ln ln thống nhất với nhau về
vấn đề khố. Việc thay đổi khố là rất “khó” và dễ bị để lộ.
Khuynh hướng cung cấp khóa dài, lại phải được thay đổi thường xuyên cho
mọi người, trong khi vẫn duy trì cả tính an tồn và chi phí sẽ cản trở rất nhiều
tới việc phát triển hệ mật mã cổ điển.
Hệ mật mã hóa cơng khai:
Khác với hệ mật mã hố đối xứng, hệ mật mã hóa cơng khai sử dụng một cặp
khố có liên quan với nhau về mặt tốn học để giải mã và mã hố thơng tin.

Hình 1.2 Mơ hình hệ mật mã hóa cơng khai

+ Ưu và nhược điểm của mã hóa cơng khai
Ưu điểm:
- Dùng cặp khóa để mã hố nên khơng cần bảo mật khố mã hố, chỉ cần
bảo mật khố giải mã.
- Có thể dùng mã hố khố cơng khai để tạo chữ ký điện tử, chứng chỉ số.
Nhược điểm:
- Tốc độ mã hố/ giải mã chậm
- Khó thực hiện việc mã hố các bản tin dài

7


1.3.3 Các thành phần của KPI
PKI là cơ cấ u tở chức gờ m con người, tiế n trình, chính sách, thủ tu ̣c, phầ n
cứng và phầ n mề m dùng để phát sinh, quản lý, lưu trữ, triể n khai và thu hờ i các
chứng nhận khóa cơng khai.

Hình 1.3 Các thành phần của KPI
PKI gồm các thành phần chính sau:
a) Thực thể cuối (End Entity – EE):
Đối tượng sử dụng chứng nhận (chứng thư số): có thể là một tổ chức, một
người cụ thể hay một dịch vụ trên máy chủ, …
b) Tổ chức chứng nhận(Certificate Authority – CA):
- Có nhiệm vụ phát hành, quản lý và hủy bỏ các chứng thư số
- Là thực thể quan trọng trong một PKI mà được thực thể cuối tín nhiệm
- Gồm tập hợp các con người và các hệ thống máy tính có độ an tồn cao
c) Chứng nhận khóa cơng khai (Public Key Certificate):
- Một chứng nhận khóa công khai thể hiện hay chứng nhận sự ràng buộc
của danh tính và khóa cơng khai của thực thể cuối
- Chứng nhận khóa cơng khai chứa đủ thơng tin cho những thực thể khác

có thể xác nhận hoặc kiểm tra danh tính của chủ nhận chứng nhận đó
- Định dạng được sử dụng rộng rãi nhất của chứng nhận số dựa trên chuẩn
IETF X.509.

8


d) Tổ chức đăng ký chứng nhận (Registration Authority – RA): Mục đích chính
của RA là để giảm tải cơng việc của CA
- Xác thực cá nhân, chủ thể đăng ký chứng thư số.
- Kiểm tra tính hợp lệ của thông tin do chủ thể cung cấp.
- Xác nhận quyền của chủ thể đối với những thuộc tính chứng thư số được
yêu cầu.
- Kiểm tra xem chủ thể có thực sự sở hữu khóa riêng đang được đăng ký
hay khơng (chứng minh sở hữu).
- Tạo cặp khóa bí mật, cơng khai (nếu chủ thể yêu cầu)
- Phân phối bí mật được chia sẻ đến thực thể cuối (ví dụ khóa công khai
của CA).
- Thay mặt chủ thể thực thể cuối khởi tạo quá trình đăng ký với CA.
- Lưu trữ khóa riêng.
- Khởi sinh q trình khơi phục khóa
- Phân phối thẻ bài vật lý (thẻ thông minh)
e) Kho lưu trữ chứng nhận (Certificate Repository – CR):
- Hệ thống (có thể tập trung hoặc phân tán) lưu trữ chứng thư và danh sách
các chứng thư bị thu hồi
- Cung cấp cơ chế phân phối chứng thư và danh sách thu hồi chứng thư
(CRLs - Certificate Revocation Lists)

Hình 1.4 Quy trình phân phối và thu hồi chứng thư số
9



(1) : Người dùng gửi yêu cầu phát hành thẻ chứng thư số và khóa cơng khai
của nó đến RA;
(2) : Sau khi xác nhận tính hợp lệ định danh của người dùng thì RA sẽ
chuyển yêu cầu này đến CA;
(3) : CA phát hành thẻ chứng thư số cho người dùng;
(4) : Sau đó người dùng “ký” thơng điệp trao đổi với thẻ chứng thư số mới
vừa nhận được từ CA và sử dụng chúng (thẻ chứng thực số + chữ ký số) trong
giao dịch;
(5) : Định danh của người dùng được kiểm tra bởi đối tác thông qua sự hỗ trợ
của VA;
VA (validation authority) : Cơ quan xác thực của bên thứ ba có thể cung cấp
thơng tin thực thể này thay mặt cho CA.)
(6) : Nếu chứng thư số của người dùng được xác nhận tính hợp lệ thì đối tác
mới tin cậy người dùng và có thể bắt đầu q trình trao đổi thơng tin với nó (VA
nhận thơng tin về thẻ chứng thư số đã được phát hành từ CA (a))
1.3.4 Thuật toán RSA.
Thuật toán chữ ký số RSA là một thuật tốn khóa bất đối xứng được sử dụng
để ký tài liệu. Quy trình gồm 3 bước: Sinh khóa RSA, Sinh chữ ký RSA, Xác
thực chữ ký RSA [3]
Sinh khóa RSA:
Bước đầu tiên, hàm sinh khóa RSA xuất ra cặp khóa cơng khai và khóa bí
mật cho người gửi với khóa bí mật là (d) và khóa cơng khai (e). Các bước bao
gồm như sau:
Bước1: Lấy hai số nguyên tố phân biệt rất lớn là a và b sao cho chúng khác
nhau.
Bước 2: Tính n = a * b
Bước 3: Tính P (n) = (a-1) * (b-1)
Bước 4: Chọn e sao cho e nằm giữa 1 và P (n) và gcd (e, P (n)) = 1 tức là

chúng khơng có chung hệ số. (Ở đây ‘e’ là khóa cơng khai)
Bước 5: Tính d, là khóa riêng; d = e-1 mod P (n)
Sinh chữ ký RSA:
Bước 1: Lấy thông điệp m.
10


Bước 2: Tạo mã băm của thông điệp m, h = H (m).
Bước 3: Tạo chữ ký điện tử bằng khóa riêng [d, n] S = h.d mod n.
Bước 4: Gửi thơng điệp có chữ ký [m, S].

Hình 1.5 Quy trình sinh chữ ký RSA được sử dụng ký lên văn bản.
Xác thực chữ ký RSA
Bước 1: Chấp nhận [m, S].
Bước 2: Lấy khóa cơng khai [e, n].
Bước 3: Tạo mã băm từ thông điệp: h1 = Se mod n
Bước 4: Chỉ chấp nhận nếu h1 = h.

Hình 1.6 Triển khai từng bước của Thuật toán xác minh chữ ký RSA.

11


1.3.5 Hàm băm.
1.3.5.1 Khái niệm
Theo các sơ đồ chữ ký thì chữ ký của thơng điệp cũng có độ dài bằng độ dài
của thơng điệp, đó là một điều bất tiện. Ta mong muốn như trong trường hợp
chữ ký viết tay, chữ ký có độ dài ngắn và hạn chế cho dù văn bản có độ dài bằng
bao nhiêu. Vì chữ ký số được ký cho từng bit của thông điệp, nếu muốn chữ ký
có độ dài hạn chế trên thơng điệp có độ dài tùy ý thì ta phải tìm cách rút gọn độ

dài thơng điệp. Nhưng bản thân thơng điệp khơng thể rút ngắn được, nên chỉ cịn
cách là tìm cho mỗi thơng điệp một thơng điệp thu gọn có độ dài hạn chế và
thay việc ký trên thông điệp, ta ký trên thông điệp thu gọn [4].
Để giải quyết vấn đề này ta sử dụng hàm băm, chấp nhận một thơng điệp có
độ dài tuỳ ý làm đầu vào. Hàm băm sẽ biến đổi thông điệp này thành một thơng
điệp rút gọn và sau đó sẽ dùng lược đồ ký để ký lên thông điệp rút gọn đó.

Hình 1.7 Hình minh họa hàm băm
1.3.5.2 Một số tính chất và đặc điểm cơ bản của hàm băm
Hàm băm mật mã về cơ bản cần đảm bảo các tính chất sau:
- Tính tất định, nghĩa là cùng một thơng điệp đầu vào luôn tạo ra cùng một
hàm băm.
12


- Tính hiệu quả. Có khả năng tính tốn nhanh chóng giá trị băm của bất kỳ
thơng điệp nào.
- Tính nhạy cảm. Đảm bảo rằng bất kỳ một thay đổi nào, dù là nhỏ nhất
trên dữ liệu đều sẽ gây ra sự thay đổi cực lớn trên giá trị băm và tạo ra giá
trị băm hồn tồn khác, và khơng hề có liên hệ gì với giá trị băm cũ (hiệu
ứng tuyết lở)
Ngồi ra, với mục đích đảm bảo an tồn cho dữ liệu, các hàm băm mật mã
phải có khả năng chịu được tất cả các loại tấn công mã hóa đã biết. Trong lý
thuyết mật mã, mức độ an toàn của hàm băm mật mã đã được xác định bằng các
thuộc tính sau:
- Tính kháng tiền ảnh thứ nhất: tính chất yêu cầu rằng với một giá trị băm h
bất kỳ, sẽ khó tìm thấy bất kỳ thơng điệp m nào sao cho h = hash (m).
Khái niệm này có liên quan đến tính chất một chiều của hàm băm.
- Tính kháng tiền ảnh thứ hai: với đầu vào m1, sẽ khó tìm được đầu vào m2
khác sao cho hash(m1) = hash (m2).

- Tính kháng va chạm: rất khó để tìm thấy hai thơng điệp khác nhau m1 và
m2 sao cho hash (m1) = hash (m2). Một giá trị như vậy được gọi là va
chạm của hàm băm mật mã.
Từ những tính chất đó, hàm băm sẽ có một số đặc điểm cơ bản như sau:
- An toàn – Một hàm băm là khơng thể thay đổi. Nó là một chức năng một
chiều.
- Duy nhất – Hai tập dữ liệu khác nhau không thể tạo ra cùng một thơng
báo.
- Kích thước cố định – Hàm băm cung cấp kích thước cố định.
1.3.5.3 Các thuật tốn băm:
MD5: MD5 là một thuật tốn băm mật mã một chiều. Nó tạo ra một giá trị
chuỗi 128 bit dưới dạng giá trị băm. MD5 thường được sử dụng để xác minh
tính tồn vẹn của dữ liệu.
SHA1: Đây là một thuật toán băm mật mã, tạo ra giá trị chuỗi 160 bit làm giá
trị băm. Thuật toán băm này được phát triển bởi Cơ quan An ninh Quốc gia
(NSA). SHA1 thường được sử dụng trong các ứng dụng bảo mật và toàn vẹn dữ
liệu.

13


SHA256: Đây là một thuật toán băm mật mã tạo ra một giá trị chuỗi 256-bit
(32 byte) làm giá trị băm. SHA256 thường kiểm tra tính tồn vẹn của dữ liệu để
xác thực băm và chữ ký số.
1.3.5.4 Ứng dụng của hàm băm
a) Lưu trữ mật khẩu:
Hashing bảo vệ cách mật khẩu được lưu trữ và lưu trữ. Thay vì giữ mật khẩu,
ở dạng bản rõ. Nó được lưu trữ dưới dạng giá trị băm hoặc thông báo. Các giá trị
băm được lưu trữ trong bảng băm.
Kẻ xâm nhập chỉ có thể xem các giá trị băm và khơng thể đăng nhập vào hệ

thống sử dụng giá trị băm.
b) Xác minh mật khẩu:
Hashing được sử dụng để xác minh mật khẩu mỗi khi bạn đăng nhập vào ứng
dụng, tài khoản hoặc hệ thống. Mật khẩu xác minh xem bạn có phải là người
dùng thực sự của tài khoản đó hay không. Nếu mật khẩu bạn nhập khớp với giá
trị băm ở phía máy chủ, bạn sẽ nhận được đăng nhập vào hệ thống
c) Kiểm tra tính tồn vẹn của dữ liệu:
Hashing thường sử dụng để kiểm tra tính tồn vẹn của dữ liệu. Nó cung cấp
cho người dùng sự đảm bảo rằng dữ liệu khơng bị sửa đổi. Nó cũng đảm bảo với
người dùng rằng dữ liệu là nguyên bản.
1.3.6 Chứng thư số
Để khóa cơng khai của mình được chứng nhận, người dùng phải tạo ra một
cặp khóa bất đối xứng và gửi cặp khóa này cho tổ chức CA. Người dùng phải
gửi kèm các thông tin về bản thân như tên hoặc địa chỉ. Khi tổ chức CA đã kiểm
tra tính xác thực các thơng tin của người dùng, CA sẽ phát hành một giấy chứng
nhận khóa cơng khai cho người dùng. Giấy chứng nhận là một tập tin nhị phân
có thể dễ dàng chuyển đổi qua mạng máy tính.
Tổ chức CA áp dụng chữ ký điện tử của mình cho giấy chứng nhận khóa
cơng khai mà CA đó phát hành. Một tổ chức CA chứng nhận khóa cơng khai
bằng cách ký nhận chúng. Nếu phía người dùng bên kia tin tưởng vào tổ chức
CA thì họ có thể tin vào chữ ký của CA đó
Một số loại giấy chứng nhận khóa cơng khai có thể được phát hành như
chứng nhận X.509, chứng nhận chất lượng và chứng nhận thuộc tính.
Ở đây mình chỉ giới thiệu về chứng nhận X.509 bởi vì nó được sử dụng
nhiều
14


1.3.6.1 Chứng nhận X509
Chứng nhận X.509 là chứng nhận khóa công khai phổ biế n nhấ t. Hiệp hội

Viễn thông quố c tế (International Telecommunications Union – ITU) đã chỉ
đinh
̣ chuẩ n X.509 vào năm 1988. Đây là đinh
̣ da ̣ng phiên bản 1 của chuẩ n
X.509. Vào năm 1993, phiên bản 2 của chuẩ n X.509 đươ ̣c phát hành với 2
trường tên nhận da ̣ng duy nhấ t đươ ̣c bổ sung. Phiên bản 3 của chuẩ n X.509 đươ ̣c
bổ sung thêm trường mở rộng đã phát hành vào năm 1997.
Một chứng nhận khóa cơng khai kế t buộc một khóa cơng khai với sự nhận
diện của một người (hoặc một thiế t bi).̣ Khóa cơng khai và tên thực thể sở hữu
khóa này là hai mu ̣c quan tro ̣ng trong một chứng nhận.

Hình 1.8 Phiên bản 3 của chứng nhận X.509
- Version: Chỉ định phiên bản của chứng nhận X.509.
- Serial Number: Số loạt phát hành được gán bởi CA. Mỗi CA nên gán một
mã số loạt duy nhất cho mỗi giấy chứng nhận mà nó phát hành.
- Signature Algorithm: Thuật tốn chữ ký chỉ rõ thuật tốn mã hóa được
CA sử dụng để ký giấy chứng nhận. Trong chứng nhận X.509 thường là

15


×