Tải bản đầy đủ (.docx) (73 trang)

Triển khai cơ sở hạ tầng khóa công khai với EJBCA

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 (2.1 MB, 73 trang )

LỜI CAM ĐOAN
Tôi xin cam đoan kết quả đạt được trong luận văn là sản phẩm của riêng cá nhân tôi
dưới sự hướng dẫn của TS. Đinh Tuấn Long và khơng sao chép của bất kỳ ai.
Những điều được trình bày trong toàn bộ nội dung của luận văn, hoặc là của cá
nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu. Tất cả các tài liệu tham khảo
đều có nguồn gốc rõ ràng và được trích dẫn hợp pháp.
Tơi xin hồn tồn chịu trách nhiệm theo quy định cho lời cam đoan của mình.

Hà Nội, ngày
2017

tháng

Học viên

Nguyễn Thị Thúy

1

năm


LỜI CẢM ƠN
Luận văn này được thực hiện tại Viện Đại Học Mở Hà Nội dưới sự hướng dẫn của
TS. Đinh Tuấn Long. Tôi xin được gửi lời cảm ơn sâu sắc nhất đến thầy đã định
hướng, giúp đỡ, quan tâm và tạo mọi điều kiện thuận lợi trong suốt q trình nghiên
cứu để hồn thành luận văn này. Tơi cũng xin được gửi lời cảm ơn đến các thầy cô
trong Khoa công nghệ thông tin đã mang lại cho tơi những kiến thức vơ cùng q
giá và bổ ích trong q trình học tập tại trường.
Tơi cũng xin gửi lời cảm ơn tới gia đình và bạn bè đã ln quan tâm và động viên
giúp tơi có thêm nghị lực để có thể hồn thành được luận văn này.


Do thời gian và kiến thức có hạn nên luận văn khơng tránh khỏi những thiếu sót.
Tơi rất mong nhận được những góp ý q báu của thầy cơ và các bạn.
Xin chân thành cảm ơn!

Hà Nội, ngày 20 tháng 05 năm 2017
Người cam đoan

Nguyễn Thị Thúy

2


MỤC LỤC
LỜI CAM ĐOAN.....................................................................................................i
LỜI CẢM ƠN..........................................................................................................ii
DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT.....................................................iv
DANH MỤC HÌNH.................................................................................................v
MỞ ĐẦU.................................................................................................................vi
1. Lý do chọn đề tài..........................................................................................vi
2. Phương pháp thực hiện...............................................................................vii
3. Cấu trúc đề tài.............................................................................................vii
CHƯƠNG 1: GIỚI THIỆU VỀ MẬT MÃ HỌC..................................................1
1.1.

Giới thiệu chung về mật mã học................................................................1

1.2.

Mật mã khóa bí mật...................................................................................3


1.2.1.

Giới thiệu chung...................................................................................3

1.2.2.

Khái niệm..............................................................................................4

1.2.3.

Thuật tốn áp dụng..............................................................................4

1.3.

Mật mã khóa cơng khai.............................................................................7

1.3.1.

Giới thiệu chung...................................................................................7

1.3.2.

Khái niệm..............................................................................................9

1.3.3.

Thuật tốn áp dụng............................................................................11

1.4.


Chữ kỹ số..................................................................................................12

1.4.1.

Giới thiệu chung.................................................................................12

1.4.2.

Khái niệm............................................................................................13

1.4.3.

Tạo và kiểm tra chữ ký số...................................................................14

3


1.5.

Hàm băm..................................................................................................15

1.5.1.

Khái niệm............................................................................................15

1.5.2.

Một số hàm băm thông dụng..............................................................15

CHƯƠNG 2: CƠ SỞ HẠ TẦNG KHĨA CƠNG KHAI.....................................17

2.1.

Giới thiệu chung về PKI..........................................................................18

2.1.1.

Lịch sử phát triển...............................................................................18

2.1.2.

Thực trạng PKI tại Việt Nam.............................................................19

2.1.3.

Ứng dụng PKI....................................................................................20

2.2.

Các định nghĩa cơ sở hạ tầng khóa cơng khai....................................20

2.2.1.

Định nghĩa về PKI..............................................................................20

2.2.2.

Mục tiêu chức năng............................................................................20

2.2.3.


Các khía cạnh an tồn cơ bản mà PKI cung cấp..............................20

3.1.

Giới thiệu về giải pháp PKI mã nguồn mở EJBCA...............................22

3.1.1.

Giới thiệu chung.................................................................................22

3.1.2.

Đặc điểm kỹ thuật...............................................................................22

3.1.3.

Chức năng..........................................................................................22

3.1.4.

Đánh giá.............................................................................................22

3.2.

Ứng dụng chứng thực giữa hệ thống điều hành văn bản với hệ thống

EJBCA................................................................................................................22
3.2.1.

Mơ hình triển khai..............................................................................22


3.2.2.

Thực nghiệm ứng dụng......................................................................22

KẾT LUẬN............................................................................................................23
TÀI LIỆU THAM KHẢO.....................................................................................24
PHỤ LỤC............................................................................................................... 25

4


DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
Từ viết tắt
PKI
EJBCA

Nghĩa tiếng Anh
Public key infrastructure
Enterprise Java Beans Certificate

Nghĩa tiếng Việt
Hạ tầng khóa cơng khai
Phần mềm mã nguồn mở

Authority

dựa trên hạ tầng khóa

Certificate authority

Data Encryption Standard

cơng khai
Cơ quan chứng nhận
Tiêu chuẩn mã hóa dữ

International Business Machines

liệu
Tập đồn cơng nghệ máy

National Security Agency

tính đa quốc gia
Cơ quan an ninh quốc gia

Advanced Encryption Standard

Hoa Kì
Tiêu chuẩn mã hóa tiên

NIST

National Institute of Standard and

tiến
Viện tiêu chuẩn và cơng

RSA


Technology
Rivest–Shamir–Adleman

nghệ quốc gia
Thuật tốn mã hóa cơng

MIT

Massachusetts Institute of

khai
Viện Công nghệ

NIST

Technology
National Institute of Standards and

Massachusetts
Viện Tiêu chuẩn và Kỹ
thuật quốc gia

CTS
CKS
TT&TT
SHA
MD
SSL

Technology

Chứng thư số
Chữ ký số
Thông tin và truyền thông
Secure Hash Algorithm
Message Digest algorithms
Secure Sockets Layer

CA
DES
IBM
NSA
AES

CRCs
VA
DC

Cyclic Redundancy Codes
Validation Authority
Digital certificates
5

Thuật giải băm an tồn
Giải thuật tiêu hóa tin 5
Tiêu chuẩn an ninh CN
tồn cầu
Dạng mã kiểm sốt lỗi
Cơ quan thẩm định
Giấy chứng nhận điện tử



CDS
CRL
LDAP
CPS
CTĐT
OID
AD

Certificate Distribution System

Hệ thống phân phối

Certificate revocation list

chứng chỉ
Danh sách thu hồi chứng

Lightweight Directory Access

chỉ
Giao thức ứng dụng

Protocol
Certification Pratice Statement
Object Identifiers

Chứng chỉ thực hành
Chứng thực điện tử
Cơ chế xác định tiêu


Active Directory

chuẩn
Dịch vụ thư mục

6


DANH MỤC HÌNH VẼ

7


MỞ ĐẦU
1. Lý do chọn đề tài
 Tên đề tài: “Nghiên cứu, tìm hiểu hạ tầng khố cơng khai và triển khai ứng dụng
tại Viện Đại học Mở Hà Nội”
 Đặt vấn đề
- Tính cấp thiết của đề tài
Ngày nay, với sự phát triển mạnh mẽ và ngày càng nhanh chóng của mạng
Internet và mạng máy tính đã giúp cho việc trao đổi thơng tin trở nên nhanh chóng,
dễ dàng và thuận tiện hơn bao giờ hết. Ví dụ như việc gửi và nhận thư qua hòm thư
điện tử E-mail, E-bussiness cho phép thực hiện giao dịch buôn bán qua mạng … chỉ
cần có kết nối Internet.
Tuy nhiên, trong quá trình truyền tin thơng tin có thể bị đánh cắp, có thể bị
làm sai lệch, có thể bị giả mạo gây ảnh hưởng hoặc thiệt hại lớn đến người sử dụng,
rộng hơn có thể là một cơng ty hay một quốc gia… Đặc biệt là các giao dịch điện tử
ngày nay có nguy cơ xảy ra những hiểm họa nói trên rất lớn. Do vậy, để bảo mật
thông tin được truyền qua Internet thì việc mã hóa dữ liệu là vấn đề cấp thiết được

đặt lên hàng đầu. Mặt khác nó đặt ra các vấn đề về sự an tồn, tính tin cậy của
những trao đổi trên Internet, với những thủ đoạn tinh vi, nguy cơ các thông tin này
bị đánh cắp qua mạng thật sự là vấn đề đáng quan tâm. Hạ tầng khóa cơng khai
(PKI) có thể ứng dụng để giải quyết những vấn đề về an toàn thông tin. Dựa trên
các dịch vụ cơ bản về chứng thực số và chữ ký số, hạ tầng khố cơng khai PKI
chính là bộ khung của các chính sách, dịch vụ và phần mềm mã hóa giúp giải quyết
các vấn đề về an tồn thơng tin, đáp ứng nhu cầu bảo mật của người sử dụng trong
các giao dịch.
Để giải quyết vấn đề này, em đã lựa chọn tìm hiểu về đề tài “Nghiên cứu tìm
hiểu hạ tầng khố cơng khai và triển khai ứng dụng tại Viện Đại học Mở Hà Nội”
nghiên cứu sâu về hạ tầng khóa cơng khai (PKI) nhằm đảm bảo về vấn đề an toàn
trong quá trình truyền tin.
- Mục tiêu nghiên cứu
8


+ Nghiên cứu và triển khai thử nghiệm hạ tầng khố cơng khai (PKI).
+ Thực nghiệm ứng dụng sử dụng giải pháp chứng thực số trong quá trình
giao dịch để tin học hóa cơng tác quản lý và điều hành văn bản tại Viện Đại
học Mở Hà Nội.
- Đối tượng và phạm vi nghiên cứu
+ Đối tượng nghiên cứu: Hạ tầng khóa cơng khai PKI và hệ thống chứng
thức PKI mã nguồn mở EJBCA.
+ Phạm vi nghiên cứu:
Về nội dung: Luận văn tập trung nghiên cứu hệ thống chứng thực số và
thực nghiệm ứng dụng chứng thực trong quản lý điều hành văn bản
Về địa bàn nghiên cứu: Viện Đại Học Mở Hà Nội.
2. Phương pháp thực hiện
Phương pháp thu thập dữ liệu
-


Qua các tài liệu, số liệu thống kê, báo cáo Quan sát, đánh giá về thực trạng
trong việc đảm bảo an tồn thơng tin trong các giao dịch điện tử.

Phương pháp thống kê, tổng hợp
-

Xử lý số liệu thu thập được vằng phương pháp thống kê tổng hợp cùng với
sự hỗ trợ của các phần mềm máy tính Từ những sản phẩm và tài nguyên
nghiên cứu, phát triển được trong suốt quá trình xây dựng đề tài, đưa ra đánh
giá kết quả và hướng phát triển.

3. Cấu trúc đề tài
Bao gồm phần mở đầu và 3 chương chính như sau:


Chương 1: Tổng quan về mật mã
Chương này tập trung tìm hiểu về mật mã học, hai loại mật mã

thường được sử dụng là mật mã khóa bí mật và mật mã khóa cơng khai,
chữ ký số và hàm băm. Hệ mã hóa, chữ ký số cũng như hàm băm chính là
nền tảng để xây dựng hệ thống PKI sẽ được nêu tại chương tiếp theo.
 Chương 2: Cơ sở hạ tầng khóa cơng khai

9


Chương này sẽ tìm hiểu về cơ sở hạ tầng khóa cơng khai, thực trạng
về việc sử dụng hệ thống PKI, các thành phần chính của hệ thống PKI,
kiến trúc một trung tâm chứng thực CA, các hoạt động chính trong hệ

thống PKI, chứng thư số và chứng thực chéo để xác thực mối quan hệ giữa
các PKI.
 Chương 3: Ứng dụng hệ thống chứng thực PKI trong hệ thống văn
bản điện tử
Chương này triển khai một hệ thống PKI thử nghiệm, tiến hành cấp
phát chữ ký số phục vụ mục đích ban hành các văn bản trên hệ thống quản
trị văn bản điện tử.

10


CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ MẬT MÃ HỌC
VÀ CHỮ KỸ SỐ
1.1.Mật mã học
1.1.1. Khái niệm
Trước tiên mật mã học (cryptography) là một khoa học nghiên cứu nghệ
thuật nhằm giấu thơng tin, bằng cách mã hóa (encryption) tức là biến đổi thông tin
gốc dạng tường minh (plaintext) thành dạng thông tin không đọc được (cipher text)
dạng ẩn tàng bằng cách sử dụng một khóa mã hay thuật tốn mã hóa nào đó. Chỉ có
những người giữ chìa khóa (key) bí mật mới có thể giải mã (decrypt) thơng tin
thành dạng thơng tin có thể hiểu được (plain text). Thông tin đôi khi bị giải mã mà
không cần biết khóa bí mật. Ngành học nghiên cứu về việc bẻ khóa
(attack/crack/hack) này cịn gọi là cryptanalysis.

Hình 1.1: Sơ đồ mã hóa và giải mã

 Cryptosystem (viết tắt của cryptographic system): là hệ thống mã hóa thơng tin, có
thể là phần mềm như PGP, Ax-Crypt, Truecrypt... là giao thức như SSL, IPsec dùng
trong Internet... hay đơn giản là một thuật toán như DES Encrypt (encipher,
encryption) hoặc Decrypt (decipher, decryption). Trong đó, DES Encrypt được gọi

là q trình mã hóa – đó là q trình biến đổi thơng tin từ dạng ban đầu có thể hiểu
được thành dạng thơng tin khơng thể hiểu được, với mục đích giữ bí mật thơng tin
đó; Decrypt (decipher, decryption) được gọi là quá trình giải mã, đó là q trình
ngược lại với mã hóa, khơi phục lại thông tin ban đầu từ thông tin đã được mã hóa;
Plain text/message là dữ liệu gốc (chưa được mã hóa); Cipher text/message là dữ

1


liệu đã được mã hóa; Cipher (hay cypher): Là thuật tốn dùng để thực hiện q trình
mã hóa hay giải mã. Trong khuôn khổ bài viết này gọi tắt là thuật tốn; Key: Là
chìa khóa, đó chính là thơng tin dùng cho qui trình mã hóa và giải mã.

1.1.2. Các tính chất cơ bản
Tính bí mật (confidentiality/privacy): Tính chất này đảm bảo thông tin chỉ
được hiểu bởi những ai biết chìa khóa bí mật.
Tính tồn vẹn (integrity): Tính chất này đảm bảo thông tin không thể bị thay
đổi mà không bị phát hiện. Tính chất này khơng đảm bảo thơng tin khơng bị thay
đổi, nhưng một khi nó bị nghe lén hoặc thay đổi thì người nhận được thơng tin có
thể biết được là thơng tin đã bị nghe lén hoặc thay đổi. Các hàm một chiều (oneway function) như MD5, SHA-1, MAC...được dùng để đảm bảo tính tồn vẹn cho
thơng tin.
Tính xác thực (authentication): Người gửi (hoặc người nhận) có thể chứng
minh đúng họ. Người ta có thể dụng một password, một challenge dựa trên một
thuật tốn mã hóa hoặc một bí mật chia sẻ giữa hai người để xác thực. Sự xác thực
này có thể thực hiện một chiều (one-way) hoặc hai chiều (multual authentication).
Tính khơng chối bỏ (non-repudiation): Người gửi hoặc nhận sau này không
thể chối bỏ việc đã gửi hoặc nhận thông tin. Thông thường điều này được thực hiện
thông qua một chữ ký điện tử (electronic signature).
Tính nhận dạng (identification): Người dùng của một hệ thống, một tài
nguyên sở hữu một chứng minh thư (identity) như là một chìa khóa ban đầu

(primary key). Identity này sẽ xác định những chức năng của người dùng, giới hạn
cho phép của người dùng cũng như các thuộc tính liên quan (thường gọi chung là
credential). Identity có thể là login, dấu vân tay, ADN, giản đồ võng mạc mắt, âm
thanh. Trong bảo mật có một điều quan trọng cần lưu ý đó là sự tin tưởng lẫn nhau.
Để chia sẻ bí một bí mật cho một người, thì phải tin tưởng vào khả năng duy trì bí
mật của người đó. Chẳng hạn, chúng ta tin tưởng hồn tồn vào đối tượng mà tạo ra
khóa riêng (private key).
Sự tin tưởng là một mối quan hệ khơng có tính chất đặc trưng:
- Tính đối xứng: Tơi tin tưởng vào ơng bác sĩ, nhưng liệu ơng bác sĩ có tin
tưởng tơi khơng?

2


-

Tính bắt cầu: Tơi tin tưởng vào anh A, anh A tin tưởng vào vợ anh ấy
(chị B). Điều đó khơng có nghĩa là tơi tin tưởng vào chị B Tính phản xạ:
Tơi có tin tưởng vào chính mình khơng?

1.1.3. Phân loại các thuật toán
 Phân loại các thuật toán mã hóa
Ngày nay, người ta phân ra thành 2 nhóm thuật tốn mã hóa chính: Các thuật
tốn mã hóa cổ điển và các thuật tốn mã hóa hiện đại.
 Các thuật tốn mã hóa cổ điển
 Thuật tốn thay thế
 Thuật tốn chuyển vị
 Các thuật tốn mã hóa hiện đại
 Mã hóa đối xứng hay khóa bí mật
 Mã hóa bất đối xứng hay khóa cơng khai và khóa riêng

 Hàm băm

1.2.Mật mã khóa bí mật
1.2.1. Giới thiệu chung
Vào những năm đầu thập kỷ 70, nhu cầu có một chuẩn chung về thuật toán
mật mã đã trở nên rõ ràng. Các lý do chính là:
 Sự phát triển của cơng nghệ thơng tin và của nhu cầu an tồn & bảo mật
thông tin: Sự ra đời của các mạng máy tính tiền thân của Internet đã cho
phép khả năng hợp tác và liên lạc số hóa giữa nhiều cơng ty, tổ chức
trong các dự án lớn của chính phủ Mỹ.
 Các thuật tốn ad - hoc khơng thể đảm bảo được tính tin cậy địi hỏi cao.
 Các thiết bị khác nhau địi hỏi sự trao đổi thơng tin mật mã thống nhất,
chuẩn.
Một chuẩn chung cần thiết phải có với các thuộc tính như:
 Bảo mật ở mức cao
 Thuật tốn được đặc tả và cơng khai hồn tồn, tức là tính bảo mật khơng
được phép dựa trên những phần che giấu đặc biệt của thuật toán.
 Việc cài đặt phải dễ dàng để đem lại tính kinh tế.
 Phải mềm dẻo để áp dụng được cho muôn vàn nhu cầu ứng dụng.

3


1.2.2. Khái niệm
Mật mã khóa bí mật cịn được gọi là mật mã khóa đối xứng. Đây là phương
pháp mã hóa sử dụng cặp khóa đối xứng, người gửi và người nhận sẽ dùng chung
một khóa để mã hóa và giải mã thơng điệp. Trước khi mã hóa thơng điệp gửi đi, bên
gửi và bên nhận phải có khóa chung và hai bên phải thống nhất thuật tốn để mã
hóa và giải mã. Để đảm bảo tính bí mật trong truyền thơng thì hai bên tham gia phải
giữ kín và khơng để lộ thơng tin về khóa bí mật. Độ an tồn của thuật tốn này phụ

thuộc vào khóa, nếu khóa dùng chung bị lộ thì bất kỳ người nào cũng có thể mã hóa
và giải mã thơng điệp trong hệ thống mã hóa. [4]
Ứng dụng: Thuật tốn này được sử dụng trong mơi trường như trong cùng
một văn phịng vì khi đó khóa dễ dàng được chuyển đi, có thể dùng để mã hóa
thơng tin khi lưu trữ trên đĩa nhớ.
Mật mã khóa đối xứng chia làm 2 loại:
 Mã khối: Thực hiện biến đổi khối dữ liệu với một kích thước khơng đổi.
 Mã dịng: Thực hiện biến đổi tuần tự từng bit hoặc byte riêng lẻ.

1.2.3. Thuật toán áp dụng
 DES (Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu)
Năm 1973, Cục quản lý các chuẩn quốc gia của Mỹ đã có văn bản cổ động
cho việc tạo lập các hệ mật mã chuẩn ở cơ quan đăng ký liên bang của Mỹ. Điều
này đã dẫn đến sự công bố vào năm 1977 của cục an ninh Quốc gia Mỹ (NSA) về
Data Encryption Standard, viết tắt là DES. Thực chất, DES được phát triển bởi
IBM như là sự sửa đổi của một hệ mã trước kia được biết với cái tên Lucipher
Thuật toán và lưu đồ hoạt động của DES. [4]
Các hình vẽ sau cung cấp sơ đồ khái quát và chi tiết của thuật toán sinh mã
trong DES:

4


Hình 1.2: Sơ đồ mã hóa và giải mã

Hình 1.3: Sơ đồ mã hóa và giải mã chi tiết

Sơ đồ hình vẽ 1.3 cho thấy DES được cấu tạo bởi 16 bước lặp với bước lặp
cơ sở gọi hàm chuyển đổi phi tuyến f; 16 bước lặp này được kẹp vào giữa hai tác
tử giao hoán IP và IP-1. Hai tác từ này khơng có ý nghĩa gì về mặt bảo mật mà

hoàn toàn nhằm tạo điều kiện cho việc cài đặt phần cứng, ‘chip hóa’ thuật tốn
DES. Hàm cơ sở f là nguồn gốc của sức mạnh bảo mật trong thuật toán DES này.
Sự lặp lại nhiều lần các bước lặp với tác dụng của f là nhằm tăng cường tính
confusion và diffusion đã có trong f AES (Advanced Encryption Standard, hay
Tiêu chuẩn mã hóa tiên tiến).

5


 AES (Advanced Encryption Standard)
Vào năm 2000, cơ quan quản lý về chuẩn và công nghệ của Mỹ, NIST
(National Institute of Standard and Technology), đã tổ chức một cuộc thi để chọn
một hệ mật mã mới thay thế cho DES. Hệ mã Rijndael đã được chọn và được công
bố (2002) như là chuẩn mật mã mới thay thế cho DES, với tên gọi là Advanced
Encryption Standard (AES). Vào đến vòng trong cịn có các ứng viên khác là RC6,
Serpent, MARS và Twofish. Hệ mã này được phát triển bởi 2 nhà khoa học Bỉ,
Joan Daemen và Vincent Rijnmen (vì vậy tên gọi Rijndael được tạo ra từ việc
ghép tiền tố tên họ 2 ông này) AES được xây dựng trên nguyên lý thiết kế lưới
giao hoán – thay thế (substitution-permutation network). Đây là một hệ mã có tốc
độ tốt trong cả cài đặt phần mềm cũng như phần cứng. Khác với DES, AES không
theo mẫu thiết kế mạng Feistel. Thay vào đó các thao tác cơ bản được thực hiện
trên các khối ma trận dữ liệu 4*4 (bytes), được gọi là các trạng thái (state). Số
vòng lặp của AES là một tham số xác định trên cơ sở kích thước khóa: 10 vịng lặp
cho khóa 128bit, 12 cho 192 bit, 14 cho 256 bit. Tùy vào độ dài của key khi sử
dụng mà ta có số vịng lặp khác nhau AES-128 sử dụng 10 vòng (round), AES-192
sử dụng 12 vòng và AES-256 sử dụng 14 vịng. [1]

Hình 1.4: Tiêu chuẩn mã hóa tiên tiến AES

Các thứ tự hàm AES sẽ thực hiện:

 Trộn từng byte (SubBytes) mỗi byte được thay thế với các byte khác,
trộn từng hàng.

6


 (ShiftRows): Phép biến đổi dùng trong phép mã hóa áp dụng lên
trạng thái bằng cách chuyển dịch vòng ba hàng cuối của trạng thái
theo số lượng byte các offset khác nhau.
 Trộn từng cột (MixColumns): mỗi cột được chuyển đổi tuyến tính
bằng cách nhân nó với một ma trận trong trường hữu hạn.
 Mã hóa (AddRoundKey): Mỗi byte trong bảng trạng thái được thực
hiện phép XOR với một khoá vịng, q trình xử lý AES thu được 11
khố vịng từ các key mã hoá được phân phát cho kỹ thuật mã hoá.
 Ưu và nhược điểm
Ưu điểm: Tốc độ mã hóa rất nhanh.
Nhược điểm:
 Hai bên bắt buộc phải tiến hành thống nhất với nhau về khóa bí mật thì
mới có thể truyền tin an tồn.
 Việc phân phối khóa mật tới những người tham gia vào q trình truyền
tin thơng qua các kênh an tồn có thể bị lộ khóa, nơi phân phối khóa có
thể bị tấn cơng dẫn tới việc khó đảm bảo an tồn về khóa.
 Khi trao đổi thông tin với nhiều đối tác, mỗi đối tác tham gia sử dụng
một khóa mật thì việc quản lý một số lượng lớn khóa mật là điều rất
khó khăn.
 Bên nhận có thể làm giả thơng báo nhận được từ bên gửi.

1.3.Mật mã khóa cơng khai
1.3.1. Giới thiệu chung
Trong hầu hết lịch sử mật mã học, khóa dùng trong các q trình mã hóa và

giải mã phải được giữ bí mật và cần được trao đổi bằng một phương pháp an tồn
khác (khơng dùng mật mã) như gặp nhau trực tiếp hay thông qua một người đưa
thư tin cậy. Vì vậy q trình phân phối khóa trong thực tế gặp rất nhiều khó khăn,
đặc biệt là khi số lượng người sử dụng rất lớn. Mật mã hóa khóa cơng khai đã giải
quyết được vấn đề này vì nó cho phép người dùng gửi thơng tin mật trên đường
truyền khơng an tồn mà khơng cần thỏa thuận khóa từ trước.
Năm 1874, William Stanley Jevons xuất bản một cuốn sách mô tả mối quan
hệ giữa các hàm một chiều với mật mã học đồng thời đi sâu vào bài tốn phân tích

7


ra thừa số nguyên tố (sử dụng trong thuật toán RSA). Tháng 7 năm 1996, một nhà
nghiên cứu đã bình luận về cuốn sách trên như sau:
Trong cuốn The Principles of Science: A Treatise on Logic and Scientific
Method được xuất bản năm 1890, William S. Jevons đã phát hiện nhiều phép toán
rất dễ thực hiện theo một chiều nhưng rất khó theo chiều ngược lại. Một ví dụ đã
chứng tỏ mã hóa rất dễ dàng trong khi giải mã thì khơng. Vẫn trong phần nói trên
ở chương 7 (Giới thiệu về phép tính ngược) tác giả đề cập đến nguyên lý: Ta có
thể dễ dàng nhân các số tự nhiên nhưng phân tích kết quả ra thừa số nguyên tố thì
khơng hề đơn giản. Đây chính là ngun tắc cơ bản của thuật tốn mật mã hóa
khóa cơng khai RSA mặc dù tác giả không phải là người phát minh ra mật mã hóa
khóa cơng khai.
Thuật tốn mật mã hóa khóa cơng khai được thiết kế đầu tiên bởi James H.
Ellis, Clifford Cocks, và Malcolm Williamson tại GCHQ (Anh) vào đầu thập kỷ
1970. Thuật toán sau này được phát triển và biết đến dưới tên Diffie-Hellman, và
là một trường hợp đặc biệt của RSA. Tuy nhiên những thông tin này chỉ được tiết
lộ vào năm 1997.
Năm 1976, Whitfield Diffie và Martin Hellman cơng bố một hệ thống mật
mã hóa khóa bất đối xứng trong đó nêu ra phương pháp trao đổi khóa cơng khai.

Cơng trình này chịu sự ảnh hưởng từ xuất bản trước đó của Ralph Merkle về phân
phối khóa cơng khai. Trao đổi khóa Diffie-Hellman là phương pháp có thể áp dụng
trên thực tế đầu tiên để phân phối khóa bí mật thơng qua một kênh thơng tin khơng
an tồn. Kỹ thuật thỏa thuận khóa của Merkle có tên là hệ thống câu đố Merkle.
Thuật toán đầu tiên cũng được Rivest, Shamir và Adleman tìm ra vào năm
1977 tại MIT. Cơng trình này được cơng bố vào năm 1978 và thuật toán được đặt
tên là RSA. RSA sử dụng phép tốn tính hàm mũ module (module được tính bằng
tích số của 2 số nguyên tố lớn) để mã hóa và giải mã cũng như tạo chữ ký số. An
tồn của thuật tốn được đảm bảo với điều kiện là khơng tồn tại kỹ thuật hiệu quả
để phân tích một số rất lớn thành thừa số nguyên tố.
Kể từ thập kỷ 1970, đã có rất nhiều thuật tốn mã hóa, tạo chữ ký số, thỏa
thuận khóa. được phát triển. Các thuật toán như ElGamal (mật mã) do Netscape
8


phát triển hay DSA do NSA và NIST cũng dựa trên các bài tốn lơgarit rời rạc
tương tự như RSA. Vào giữa thập kỷ 1980, Neal Koblitz bắt đầu cho một dịng
thuật tốn mới: mật mã đường cong elliptic và cũng tạo ra nhiều thuật toán tương
tự. Mặc dù cơ sở tốn học của dịng thuật tốn này phức tạp hơn nhưng lại giúp
làm giảm khối lượng tính tốn đặc biệt khi khóa có độ dài lớn.

1.3.2. Khái niệm
Mật mã khóa cơng khai cịn được gọi là mật mã bất đối xứng.
Mật mã khóa cơng khai là một dạng mã hóa cho phép người sử dụng trao
đổi các thơng tin mật mà khơng cần phải trao đổi các khóa bí mật trước đó. Điều
này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ tốn học với nhau
là khóa cơng khai (Public Key) và khóa riêng (Private Key) hay cịn gọi là khóa bí
mật. [3]
Thuật ngữ mật mã hóa khóa bất đối xứng thường được dùng đồng nghĩa với
mật mã hóa khóa cơng khai mặc dù hai khái niệm khơng hồn tồn tương đương.

Có những thuật tốn mật mã khóa bất đối xứng khơng có tính chất khóa cơng khai
và bí mật như đề cập ở trên mà cả hai khóa (cho mã hóa và giải mã) đều cần phải
giữ bí mật.
Trong mật mã hóa khóa cơng khai, khóa cá nhân phải được giữ bí mật trong
khi khóa cơng khai được phổ biến cơng khai. Trong 2 khóa, một dùng để mã hóa
và khóa cịn lại dùng để giải mã. Điều quan trọng đối với hệ thống là khơng thể
tìm ra khóa bí mật nếu chỉ biết khóa cơng khai.
Hệ thống mật mã hóa khóa cơng khai có thể sử dụng với các mục đích:
 Mã hóa: Giữ bí mật thơng tin và chỉ có người có khóa bí mật mới
giải mã được.
 Tạo chữ ký số: Cho phép kiểm tra một văn bản có phải đã được tạo
với một khóa bí mật nào đó hay khơng.
 Thỏa thuận khóa: Cho phép thiết lập khóa dùng để trao đổi thông tin
mật giữa 2 bên.

9


Thơng thường, các kỹ thuật mật mã hóa khóa cơng khai địi hỏi khối lượng
tính tốn nhiều hơn các kỹ thuật mã hóa khóa đối xứng nhưng những lợi điểm mà
chúng mang lại khiến cho chúng được áp dụng trong nhiều ứng dụng.
Việc sử dụng mật mã khóa cơng khai cung cấp cho ta những ứng dụng quan
trọng trong việc bảo vệ thơng tin:
 Bảo vệ tính bí mật của thông tin
Giả sử B muốn gửi cho A một thông điệp M, B sẽ phải thực hiện các bước
sau:
 Mã hóa thơng điệp M bằng khóa cơng khai của A.
 Gửi bản mã thông điệp cho A. Khi A nhận được thơng điệp đã được
mã hóa của B, A sẽ dùng khóa riêng của mình để giải mã thơng điệp
đó.

 Xác thực thông tin
 B muốn mọi người biết tài liệu M là của chính B gửi, B có thể sử dụng
khóa riêng của mình để ký lên tài liệu M.
 Khi A nhận được tài liệu, A sẽ kiểm tra chữ ký có trong tài liệu M
bằng khóa cơng khai của B và A biết chắc chắn được rằng tài liệu này
là do B ký vì chỉ có B mới có khóa riêng dùng để ký lên tài liệu.
 Phương pháp này giúp người sử dụng có thể xác thực được nguồn gốc
của tài liệu, tuy nhiên tính bí mật của tài liệu khơng được bảo vệ. Do
đó, người khơng được quyền xem tài liệu vẫn có thể xem được nó.
 Bảo vệ tính bí mật và xác thực thơng tin
Để đảm bảo thơng tin vừa bí mật, vừa xác thực, cần phải thực hiện mã hóa
hai lần.
 Trước tiên, B phải ký thơng điệp bằng khóa riêng của mình (nhằm
đảm bảo tính xác thực).
 Sau đó, B sử dụng khóa cơng khai của A để mã hóa tiếp thơng báo
vừa được mã hóa (nhằm đảm bảo tính bí mật).
 Cuối cùng, B gửi bản mã đến A, A nhận được sẽ giải mã theo thứ tự
ngược lại để lấy được bản rõ.

1.3.3. Thuật toán áp dụng
 RSA
10


RSA là một trong những hệ thống mã hoá bất đối xứng được sử dụng rộng
rãi. Nó được đặt theo tên của 3 nhà khoa học MIT thiết kế ra nó là: Ron
Rivest, Adi Shamir, và Leonard Adleman. Ý tưởng then chốt để đảm bảo tính
an tồn của RSA là dựa trên sự khó khăn trong việc phân tích nhân tử của 2
số nguyên tố lớn (a x b = c, tìm ngược lại a, b từ c là phân tích nhân tử).
Hệ thống mã hố RSA bao gồm 4 bước: Key generation, key distribution,

encryption và decryption. Vì để đảm bảo tính bí mật, nên mỗi hệ thống khác
nhau cần tạo ra các public, và private key khác nhau. Sau q trình
handshake và public key được gởi tới phía client thì thơng tin mới chính thức
được mã hố khi server và client giao tiếp với nhau.
Ưu nhược điểm của mật mã khóa cơng khai:
Ưu điểm:
 Do khóa cơng khai được dùng để mã hóa, khóa riêng dùng để giải mã
được giữ kín nên các bên khơng phải chia sẻ khóa mật nào khác trước
khi truyền thông với nhau, tạo ra sự đơn giản và tiện dụng.
 Số lượng khóa cơng khai cần phải phân phối bằng với số lượng người
tham gia truyền tin do đó, giúp hệ thống có thể mở rộng được trong
phạm vi lớn, đồng thời tránh được những vấn đề phức tạp trong việc
phân phối khóa cho các bên tham gia.
 Hỗ trợ công nghệ chữ ký điện tử cùng với các kết quả trả về từ hàm
băm đảm bảo được tính xác thực nguồn gốc, tính toàn vẹn dữ liệu và
hỗ trợ chống chối bỏ.
Nhược điểm:
 Do bản chất các hệ mật mã khóa cơng khai đều dựa vào các bài tốn
khó nên tốc độ mã hóa chậm, đối với những dữ liệu lớn thời gian mã
hóa cơng khai có thể chậm hơn mã hóa khóa bí mật từ 100 đến 1000
lần. Vì vậy mà Hệ mật mã khóa cơng khai khó được dùng một cách
độc lập trong mật mã.
 Khóa bí mật có thể được tìm ra bởi một người nào đó.
 Khả năng có thể bị tấn công khi kẻ tấn công lợi dụng việc phân phối
khóa cơng khai để thay đổi khóa cơng khai. Khi đó, kẻ tấn cơng đứng
ở giữa để nhận các gói tin, sau đó giải mã gói tin để biết nội dung rồi
lại mã hóa với khóa cơng khai và gửi đi để tránh bị phát hiện.
11



 Khi các bên cơng bố khóa cơng khai của mình cho người khác có thể
xảy ra trường hợp cơng bố khóa cơng khai giả mạo, khi đó giao dịch
sẽ khơng cịn an tồn nữa. Vì vậy, vấn đề đặt ra là cần phải chứng thực
khóa cơng khai để đảm bảo giao dịch được an toàn.

1.4.Chữ ký số
1.4.1. Giới thiệu chung
Trong một phiên giao dịch, A gửi cho B một lá thư của mình. Việc gửi thư
đó phải đảm bảo được các yêu cầu sau:
 Tính bảo mật: Người thứ ba không thể biết được nội dung của bức thư.
 Tính tồn vẹn thơng tin: Nội dung bức thư khơng bị thay đổi trong q trình
truyền tin. Nếu có thì B phải nhận biết được và chỉnh lại cho đúng với nội
dung ban đầu.
 Tính nhận biết: Xác thực định danh người gửi chính là A, khơng phải người
thứ ba giả mạo.
 Tính khơng chối bỏ: Người gửi khơng thể chối bỏ trách nhiệm về lá thư mình
đã gửi.
Trong giao dịch thông thường, A ký tên vào bức thư để xác nhận là do A
gửi, sau này không thể chối bỏ trách nhiệm được. B thấy chữ ký của A thì tin
tưởng do A gửi.
Trong giao dịch điện tử, giữa A và B phải có sự trao đổi thống nhất một
khóa mã bí mật K (chỉ 2 người biết). Nếu lá thư được mã hóa bằng khóa mã đó,
hai yêu cầu nói trên đều thỏa mãn.
Tuy nhiên trong nhiều trường hợp, có nhiều nội dung cần gửi đi nhưng
khơng cần thiết phải bí mật tồn bộ, nếu phải giải mã dẫn đến tốn thời gian. Vậy
vấn đề đặt ra là có cách nào giải quyết được hai yêu cầu nói trên mà khơng cần mã
hóa tồn bộ nội dung truyền đi.

1.4.2. Khái niệm
Chữ ký điện tử là thông tin được mã hoá bằng khoá riêng của người gửi,

được gửi kèm theo văn bản nhằm đảm bảo cho người nhận định danh, xác thực
đúng nguồn gốc và tính tồn vẹn của tài liệu nhận được. Chữ ký điện tử thể hiện
12


văn bản gửi đi là đã được ký bởi chính người sở hữu một khố riêng tương ứng
với một khóa cơng khai nào đó nào đó.
Việc tạo chữ ký điện tử qua mã giá giá trị băm của mối thông thiệp cũng
không dễ dàng với những cá nhân, tổ chức chưa được trang bị tốt về công nghệ
thông tin. Nếu chỉ nhằm mục đích nhận biết, khơng chối bỏ, người ta thường sử
dụng chữ ký số. Vậy chữ ký số là gì?
Chữ ký số có thể xem là một lớp con của chữ ký điện tử. Chữ ký số dựa
trên nền tảng mật mã khóa cơng khai, mỗi chủ thể truyền thơng sẽ có một cặp
khóa riêng – cơng khai, khóa riêng được chủ thể giữ bí mật và khóa cơng khai
được cơng bố cơng khai, nếu chỉ biết khóa cơng khai thì khơng thể tìm ra khóa
riêng tương ứng.
Khi sử dụng chữ ký số trong truyền thông sẽ đảm bảo được các tính chất
sau:
 Xác thực được định danh của người gửi và nguồn gốc của thông điệp bởi vì
chỉ có người gửi mới có thể tạo ra chữ ký có giá trị và được xác minh đúng
đắn khi sử dụng khóa cơng khai tương ứng để xác minh.
 Bất kỳ một sự cố nào trên đường truyền đều dẫn đến kết quả quá trình xác
minh chữ ký là khơng chính xác nên đảm bảo được tính tồn vẹn của dữ
liệu được gửi.
 Chỉ có người chủ khóa riêng mới có thể ký số, chính vì vậy mà người này
sẽ khơng thể chối bỏ trách nhiệm của mình khi đã ký gửi các văn bản.
 Không thể tạo ra một văn bản với một chữ ký có sẵn, chính vì vậy mà
khơng thể dùng lại chữ ký. Bản chất của q trình ký lên bản tin chính là sử
dụng khóa bí mật của mình để mã hóa bản tin. Nếu áp dụng đúng nghĩa như
vậy thì sẽ nảy sinh một số vấn đề khi bản tin lớn, vấn đề này xuất phát từ

chính bản thân chữ ký số là sử dụng mật mã khóa cơng khai. Chính vì vậy
mà kỹ thuật sử dụng chữ ký số với hàm băm được đề cập trong phần tiếp
theo là giải pháp sử dụng hiện nay. Sử dụng chữ ký số bao gồm 2 quá trình:
Tạo chữ ký và kiểm tra chữ ký.

13


1.4.3. Tạo và kiểm tra chữ ký số

Hình 1.5: Tạo và kiểm tra chữ ký số

Tạo chữ ký số:
 Bên gửi sẽ sử dụng một hàm băm H để băm bản tin cần gửi đi, kết quả thu
được một giá trị băm H1.
 Bên gửi sẽ sử dụng khóa riêng của mình để ký lên giá trị băm H1 vừa thu
được từ việc băm bản tin, kết quả thu được là chữ ký của người gửi trên bản
tin cần gửi.
 Bên gửi gộp bản tin cần gửi và chữ ký tương ứng gửi tới cho bên nhận. Kiểm
tra chữ ký số.
 Bên nhận sử dụng khóa cơng khai của bên gửi để giải mã chữ ký mà bên gửi
đã gửi. Kết quả thu được giá trị H2.
 Bên gửi sẽ so sánh giá trị của H1 và H2, nếu như H1=H2 thì chữ ký trên
thơng điệp được gửi là có giá trị tức là bản tin được gửi từ người có khóa
riêng tương ứng với khóa cơng khai dùng để xác minh và bản tin không bị
thay đổi trong quá trình truyền và ngược lại nếu H1 khác H2 thì chữ ký trên
thơng điệp được gửi là khơng có giá trị.

14



1.5.Hàm băm
1.5.1. Khái niệm
Chữ ký số dựa trên nền tảng là mật mã khóa cơng khai, q trình ký số cũng
chính là q trình mã hóa. Trong khi đó tốc độ mã hóa của mật mã khóa cơng khai
lại chậm, do đó, nếu bản tin cần ký có độ dài lớn thì sẽ nảy sinh một số vấn đề:
 Với bản tin có độ dài là a thì chữ ký được sinh ra tương ứng với bản tin đó
cũng có độ dài là a, và người gửi sẽ phải gửi một thông điệp dài là 2a cho
người nhận.
 Tốc độ sinh ra chữ ký sẽ rất chậm nếu như độ dài của bản tin lớn. Từ các
vấn đề này, ý tưởng hàm băm để sinh ra giá trị băm cho bản tin và ký lên
giá trị băm đó là đại diện cho bản tin cần ký.
Hàm băm là thuật toán khơng dùng khóa để mã hóa, nó có nhiệm vụ “lọc”
(băm) tài liệu và cho kết quả là một giá trị “băm” có kích thước cố định, cịn gọi là
“đại diện tài liệu” hay “đại diện bản tin”, “đại diện thông điệp”. Hàm băm là hàm
một chiều, theo nghĩa giá trị của hàm băm là duy nhất, và từ giá trị băm này, “khó
thể” suy ngược lại được nội dung hay độ dài ban đầu của tài liệu gốc.

1.5.2. Một số hàm băm thơng dụng
SHA (Secure Hash Algorithm): Thuật tốn băm mật mã an toàn như SHA-1,
SHA-224, SHA-256 … do NIST xây dựng.
Phương pháp SHA-1 (cũng như SHA-0) được xây dựng trên
cùng cơ sở
với phương pháp MD5. Tuy nhiên, phương pháp SHA-1 sử dụng trên
hệ thống
Big-endian thay vì Little-endiannhư phương pháp MD5. Hàm băm
SHA-1 tạo ra
thông điệp rút gọn kết quả có độ dài 160 bit nên thường được sử
dụng.
Các thuật toán băm SHA đều là những hàm băm một chiều

có thể xử lý thơng điệp để tạo ra Message Digest. Nó đảm bảo tính
15


×