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

Nghiên cứu tìm hiểu về mã hóa khóa công khai và triển khai ứng dụng trong quản lý văn bản giao dịch diện tử tại viện đại học mở hà nội

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.45 MB, 80 trang )

NGUYỄN THỊ THÚY

BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ
CÔNG NGHỆ THÔNG TIN

CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN

NGHIÊN CỨU TÌM HIỂU VỀ MÃ HÓA
KHÓA CÔNG KHAI VÀ TRIỂN KHAI ỨNG DỤNG TRONG
QUẢN LÝ VĂN BẢN GIAO DỊCH ĐIỆN TỬ
TẠI VIỆN ĐẠI HỌC MỞ HÀ NỘI

NGUYỄN THỊ THÚY
2015 - 2017

HÀ NỘI - 2017


BỘ GIÁO DỤC VÀ ĐÀO TẠO
VIỆN ĐẠI HỌC MỞ HÀ NỘI

LUẬN VĂN THẠC SỸ

NGHIÊN CỨU TÌM HIỂU VỀ MÃ HÓA
KHÓA CÔNG KHAI VÀ TRIỂN KHAI ỨNG DỤNG TRONG
QUẢN LÝ VĂN BẢN GIAO DỊCH ĐIỆN TỬ
TẠI VIỆN ĐẠI HỌC MỞ HÀ NỘI


NGUYỄN THỊ THÚY
CHUYÊN NGÀNH: CÔNG NGHỆ THÔNG TIN
MÃ SỐ: 60.48.02.018
HƯỚNG DẪN KHOA HỌC: TS. ĐINH TUẤN LONG
HÀ NỘI – 2017


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 hoàn toàn chịu trách nhiệm theo quy định cho lời cam đoan của mình.

Hà Nội, ngày 10 tháng 11 năm 2017
Học viên

Nguyễn Thị Thúy

i


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 quá trình nghiên
cứu để hoà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 quý giá
và bổ ích trong quá 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è đã luôn quan tâm và động
viên giúp tôi có thêm nghị lực để có thể hoà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 ý quý 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 10 tháng 11 năm 2017
Học viên

Nguyễn Thị Thúy

ii


MỤC LỤC
LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN ............................................................................................................ ii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT ............................................. vii
DANH SÁCH HÌNH VẼ .......................................................................................... ix
MỞ ĐẦU .....................................................................................................................1
CHƯƠNG 1: CÁC KIẾN THỨC CƠ BẢN VỀ MẬT MÃ HỌC VÀ CHỮ KÝ SỐ .4
1.1.

Mật mã học ....................................................................................................4

1.1.1.

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

1.1.2.


Các tính chất cơ bản ................................................................................5

1.1.3.

Phân loại các thuật toán ..........................................................................6

1.2.

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

1.2.1.

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

1.2.2.

Khái niệm ................................................................................................7

1.2.3.

Thuật toán áp dụng .................................................................................8

1.3.

Mật mã khóa công khai ...............................................................................11

1.3.1.

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


1.3.2.

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

1.3.3.

Thuật toán áp dụng ...............................................................................15

1.4.

Chữ ký số .....................................................................................................16

1.4.1.

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

1.4.2.

Khái niệm ..............................................................................................17

1.4.3.

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

iii


1.5.


Hàm băm......................................................................................................19

1.5.1.

Khái niệm ..............................................................................................19

1.5.2.

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

1.6. Kết luận Chương .............................................................................................20
CHƯƠNG 2: CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI ..........................................21
2.1.

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

2.1.1.

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

2.1.2.

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

2.2.

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

2.2.1.


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

2.2.2.

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

2.2.3.

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

2.3.

Các thành phần chính của PKI ....................................................................30

2.3.1.

Tổ chức chứng thực (CA- Certification Authority) ..............................31

2.3.2.

Tổ chức đăng ký (RA – Registration Authority) ..................................32

2.3.3.

Bên được cấp phát chứng thực số (Certificate – Enabled Client) ........34

2.3.4.

Thẻ chứng thực số (Digital certificates (DC) .......................................35


2.4.

Cách thức hoạt động của PKI ......................................................................35

2.4.1.

Khởi tạo thực thể cuối...........................................................................36

2.4.2.

Tạo cặp khóa công khai/ khóa riêng .....................................................36

2.4.3.

Áp dụng chữ kỹ số để định danh người gửi..........................................37

2.4.4.

Mã hóa thông báo .................................................................................37

2.4.5.

Truyền khóa đối xứng ...........................................................................37

2.4.6.

Kiểm tra danh tính người gửi thông qua CA ........................................38

iv



2.4.7.

Giải mã và kiểm tra nội dung ...............................................................38

2.5.

Các tiến trình trong PKI...............................................................................38

2.6.

Kiến trúc hệ thống PKI ................................................................................41

2.6.1.

Mô hình CA đơn (Single CA) ...............................................................41

2.6.2.

Mô hình Danh sách tin cậy (Trust list) .................................................42

2.6.3.

Mô hình Phân cấp (Hierarchical PKI) ..................................................43

2.6.4.

Mô hình mạng lưới (Mesh Pki) ............................................................45

2.6.5.


Mô hình Hub and spoke ........................................................................46

2.7.

Kết luận chương ..........................................................................................47

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Ử................................................................................................48
3.1.

Thực trạng và giải pháp đề xuất cho 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 ..................................................................................48
3.2.

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

3.2.1.

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

3.2.2.

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

3.2.3.

Kiến trúc ...............................................................................................50


3.2.4.

Chức năng .............................................................................................50

3.3.

Giới thiệu hệ thống quản trị nội dung doanh nghiệp Alfresco ....................51

1.3.1

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

3.3.2.

Kiến trúc ...............................................................................................53

3.3.3.

Tính năng chính ....................................................................................55

3.4.

Ứ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
…………………………………………………………………………….56

3.4.1.

Mô hình triển khai.................................................................................56

v



3.4.2.

Môi trường thực nghiệm .......................................................................57

3.4.3.

Cài đặt EJBCA và Alfresco ..................................................................57

3.4.4.

Kịch bản thực nghiệm và kết quả thực nghiệm ....................................59

3.5.

Kết luận chương ..........................................................................................64

CHƯƠNG 4: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ..........................................65
TÀI LIỆU THAM KHẢO .........................................................................................66

vi


DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Viết tắt

Tiếng Anh

Tiếng Việt


PKI

Public key infrastructure

Hạ tầng khóa công khai

EJBCA

Enterprise Java Beans Certificate

Phần mềm mã nguồn mở

Authority

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

CA
DES

Certificate authority
Data Encryption Standard

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

IBM


International Business Machines

Tập đoàn công nghệ máy
tính đa quốc gia

NSA

National Security Agency

Cơ quan an ninh quốc gia
Hoa Kì

AES

Advanced Encryption Standard

Tiêu chuẩn mã hóa tiên
tiến

NIST

RSA

National Institute of Standard and

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

Technology

nghệ quốc gia


Rivest–Shamir–Adleman

Thuật toán mã hóa công
khai

MIT

NIST

Massachusetts Institute of

Viện Công nghệ

Technology

Massachusetts

National Institute of Standards and

Viện Tiêu chuẩn và Kỹ

Technology

thuật quốc gia

CTS

Chứng thư số


CKS

Chữ ký số

TT&TT

Thông tin và truyền
thông

vii


SHA

Secure Hash Algorithm

Thuật giải băm an toàn

MD

Message Digest algorithms

Giải thuật tiêu hóa tin 5

SSL

Secure Sockets Layer

Tiêu chuẩn an ninh CN
toàn cầu


CRCs

Cyclic Redundancy Codes

Dạng mã kiểm soát lỗi

VA

Validation Authority

Cơ quan thẩm định

DC

Digital certificates

Giấy chứng nhận điện tử

CDS

Certificate Distribution System

Hệ thống phân phối
chứng chỉ

CRL

Certificate revocation list


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

LDAP

Lightweight Directory Access

Giao thức ứng dụng

Protocol
CPS

Certification Pratice Statement

CTĐT
OID

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

Object Identifiers

chuẩn
AD

Dịch vụ thư mục

Active Directory


viii


DANH SÁCH HÌNH VẼ
Hình 1.1. Sơ đồ mã hóa và giải mã .............................................................................4
Hình 1.2. Sơ đồ mã hóa và giải mã .............................................................................8
Hình 1.3. Sơ đồ mã hóa và giải mã chi tiết .................................................................9
Hình 1.4. Tiêu chuẩn mã hóa tiên tiến AES..............................................................10
Hình 1.5. Tạo và kiểm tra chữ ký số .........................................................................18
Hình 2.1. Cơ sở hạ tầng khóa công khai PKI ............................................................22
Hình 2.2. Các thành phần chính trong hệ thống PKI ................................................30
Hình 2.3. Quá trình xác thực định danh dựa trên CA ...............................................32
Hình 2.4. Quy trình đăng ký chứng thư số ................................................................33
Hình 2.5. Luồng quy trình thực hiện trong PKI ........................................................39
Hình 2.6. Mô hình CA đơn .......................................................................................41
Hình 2.7. Mô hình danh sách tin cậy ........................................................................43
Hình 2.8. Mô hình phân cấp ......................................................................................44
Hình 2.9. Mô hình mạng lưới ....................................................................................45
Hình 2.10. Mô hình Hub and spoke ..........................................................................46
Hình 2.11. Mô hình Hub and spoke ..........................................................................47
Hình 3.1. Mô hình tổng quan giải pháp PKI mã nguồn mở EJBCA ........................49
Hình 3.2. Mô hình tích hợp của Alfresco với các hệ thống và dịch vụ bên ngoài ....52
Hình 3.3. Mô hình kiến trúc và các tiêu chuẩn mã nguồn mở sử dụng trong Alfresco
...................................................................................................................................54
Hình 3.4. Kiến trúc triển khai hạ tầng mạng .............................................................56
Hình 3.5. Màn hình giao diện trang quản trị của EJBCA .........................................58
Hình 3.6. Màn hình giao diện trang chủ Alfresco .....................................................59
Hình 3.7. Các bước thực hiện trong kịch bản ...........................................................59
Hình 3.8. Sinh khoá bí mật trên máy khách ..............................................................60
Hình 3.9. Khởi tạo thông tin người dùng trên hệ thống PKI ....................................60


ix


Hình 3.10. Gửi yêu cầu chứng thực khoá bí mật lên PKI .........................................61
Hình 3.11. Cài đặt chứng chỉ số của CA vào máy khách .........................................62
Hình 3.12. Cài đặt chứng thư của người dùng vào máy khách .................................62
Hình 3.13. Thực hiện ký số với chứng thư của người dùng .....................................63
Hình 3.14. Tải tài liệu đã ký số lên hệ thống Alfresco .............................................63
Hình 3.15. Tải về tài liệu và xem nội dung đã có chữ ký số .....................................64

x


MỞ ĐẦU
1. Lý do chọn đề tài
 Tên đề tài: “Nghiên cứu tìm hiểu về mã hóa khóa công khai và triển khai ứng
dụng trong quản lý văn bản giao dịch diện tử 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, các 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 toà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 khoá 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
toà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 về mã hóa khóa công khai và triển khai ứng dụng trong quản lý văn bản giao
dịch diện tử 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.

1


- Mục tiêu nghiên cứu
+ Nghiên cứu và triển khai thử nghiệm hạ tầng khoá 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 toà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 bằ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ã học
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ữ

2



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
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 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ử.

3


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 ngành khoa học nghiên cứu nghệ
thuật nhằm che 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 toá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....; Decrypt (decipher, decryption) được gọi là quá trình giải mã,
đó là quá 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ữ liệu đã được mã hóa; Cipher (hay cypher): Là thuật toán dùng để
thực hiện quá 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
toá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ã.

4


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 toà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 (one-way function)
như MD5, SHA-1, MAC...được dùng để đảm bảo tính toà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
toá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ẻ 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 hoàn toà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?

-

Tính bắt cầu: Tôi tin tưởng vào anh A, anh A tin tưởng vào 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?
5



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 toán mã hóa chính: Các thuật
toán mã hóa cổ điển và các thuật toán mã hóa hiện đại.
 Các thuật toán mã hóa cổ điển
 Thuật toán thay thế
 Thuật toán chuyển vị
 Các thuật toá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
Sự khác biệt giữa mật mã hóa cổ điển và mật hóa khóa hiện đại:
Mật mã khóa cổ điển

Mật mã khóa cổ điển

Sử dụng các thuật toán đơn giản, dễ hiểu Sử dụng các thuật toán phức tạp hơn:
DES, AES, RSA …
Hoạt động dựa trên bảng chữ cái

Hoạt động dựa trên việc thay thế bằng
bit hoặc bye

Được thực hiện bằng tay hoặc máy móc Thực hiện bằng các thuật toán, sử dụng
đơn giản

các máy tính hay công nghệ số hóa khác

Mọi mã cổ diển đều là mã đối xứng. Sử
dụng chung một khóa cho quá trình mã

hóa và giải 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à:

6


 Sự phát triển của công nghệ thông tin, nhu cầu an toàn và 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 toá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 toán được đặc tả và công khai hoàn toà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.

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 toá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 toàn của thuật toá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 toá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ẻ.

7


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:

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

8


OUTPUT


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 toá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).
AES (Advanced Encryption Standard)

9


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.

10


 (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, quá trình xử lý AES thu được 11 khoá 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 toàn.
 Việc phân phối khóa mật tới những người tham gia vào quá trình truyền tin
thông qua các kênh an toà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 toà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 quá 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 toà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 quá 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 toàn mà không cần thỏa thuận khóa từ trước.

11


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 toán phân tích
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à nguyên tắc cơ bản của thuật toá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 toá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 toà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 toá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
toàn của thuật toá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ố.
12


Kể từ thập kỷ 1970, đã có rất nhiều thuật toá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 phát triển hay DSA do
NSA và NIST cũng dựa trên các bài toá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 toá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ở toán học
của dòng thuật toá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 toá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ệ toá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 hoàn toàn tương đương.
Có những thuật toá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.

13


×