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

Nghiên cứu cơ sở hạ tầng khóa công khai pki ứng dụng chứng thực cho các giao dịch hành chính công điện tử

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

..

ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

NGƠ THU PHƯƠNG

NGHIÊN CỨU CƠ SỞ HẠ TẦNG
KHĨA CÔNG KHAI PKI ỨNG DỤNG CHỨNG THỰC
CHO CÁC GIAO DỊCH HÀNH CHÍNH CƠNG ĐIỆN TỬ

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

THÁI NGUYÊN - 2017


ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THƠNG

NGƠ THU PHƯƠNG

NGHIÊN CỨU CƠ SỞ HẠ TẦNG
KHĨA CÔNG KHAI PKI ỨNG DỤNG CHỨNG THỰC
CHO CÁC GIAO DỊCH HÀNH CHÍNH CƠNG ĐIỆN TỬ

Chun ngành: Khoa học máy tính
Mã số: 60.48.01.01

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

Người hướng dẫn khoa học: TS. Phạm Thế Quế



THÁI NGUYÊN - 2017


i

LỜI CAM ĐOAN

Tơi cam đoan đây là cơng trình nghiên cứu của riêng tôi, dưới sự chỉ dẫn của
TS. Phạm Thế Quế. Các số liệu, kết quả nêu trong luận văn là trung thực, luận văn
này cho đến nay chưa được bảo vệ tại bất kỳ hội đồng nào và chưa hề được công bố
trên bất kỳ phương tiện nào khác.

Thái nguyên, ngày ..... tháng ..... năm 2017
Tác giả luận văn

Ngô Thu Phương


ii

LỜI CẢM ƠN

Em xin chân thành cảm ơn thầy giáo TS. Phạm Thế Quế đã tận tình hướng
dẫn và tạo mọi điều kiện cho em hoàn thành luận văn.
Em xin chân thành cảm ơn các thầy cô giáo, các cán bộ nhân viên phòng đào
tạo, ban lãnh đạo Trường Đại học Công nghệ thông tin và Truyền thông đã giúp đỡ
tạo điều kiện cho em hoàn thành luận văn này.
Cuối cùng, em xin chân thành cảm ơn sự quan tâm giúp đỡ của gia đình, cơ
quan, bạn bè và tập thể lớp Cao học K14B đã cổ vũ động viên em hồn thành luận

văn của mình.
Tuy đã cố gắng nhưng do thời gian và trình độ có hạn nên chắc chắn luận
văn này cịn nhiều thiếu sót và hạn chế nhất định. Kính mong nhận được sự góp ý
của thầy cô và các bạn.

Thái nguyên, ngày ..... tháng ..... năm 2017
Học viên

Ngô Thu Phương


iii

MỤC LỤC

LỜI CAM ĐOAN ....................................................................................................... i
LỜI CẢM ƠN........................................................................................................... ii
MỤC LỤC ............................................................................................................... iii
DANH MỤC NHỮNG TỪ VIẾT TẮT ................................................................. vi
DANH MỤC BẢNG............................................................................................... vii
DANH MỤC HÌNH .............................................................................................. viii
MỞ ĐẦU ....................................................................................................................1
1. Lý do chọn đề tài ................................................................................................1
2. Ý nghĩa khoa học của đề tài ...............................................................................2
3. Đối tượng và phạm vi nghiên cứu ......................................................................2
4. Những nội dung nghiên cứu chính .....................................................................2
CHƯƠNG 1 CƠ SỞ HẠ TẦNG KHĨA CƠNG KHAI ........................................3
1.1 Hệ mật mã khóa bất đối xứng [2] .................................................................3
1.1.1 Khái niệm ................................................................................................3
1.1.2 Thuật toán mật mã RSA ...........................................................................5

1.1.3 Chuyển đổi văn bản rõ ...........................................................................7
1.1.4 Đánh giá kỹ thuật mật mã bất đối xứng ................................................8
1.1.5 Một số kỹ thuật phá mã RSA .................................................................9
1.1.6 Một số hệ mật mã khóa cơng khai khác ...............................................9
1.2 Hàm băm bảo mật ............................................................................................9
1.2.1 Giới thiệu .................................................................................................9
1.2.2 Các tính chất của hàm băm bảo mật ...................................................10
1.2.3 Ứng dụng hàm băm bảo mật ...................................................................11
1.2.4 Hàm băm bảo mật SHA ..........................................................................12
1.2.5 Hàm băm MD5 ........................................................................................13
1.3 Chữ ký số [2] ..................................................................................................14


iv

1.3.1 Khái niệm chữ ký số ...............................................................................14
1.3.2 Quy trình tạo và kiểm tra chữ ký số ........................................................15
1.3.3 Những vấn đề còn tồn tại của chữ ký số .................................................18
1.4 Cơ sở hạ tầng khóa cơng khai PKI [3] ...........................................................19
1.4.1 Khái niệm ................................................................................................19
1.4.2 Chức năng chủ yếu của PKI ....................................................................21
1.4.3 Các thành phần PKI ................................................................................22
1.4.4 Các thủ tục trong PKI ..............................................................................23
1.4.5 Khái niệm chứng thực số ........................................................................24
1.5 Một số thuật toán quản lý khóa [2] .............................................................25
1.5.1 Thuật tốn trao đổi khố Diffie-Hellman ...........................................25
1.5.2 Đánh giá độ an tồn thuật tốn trao đổi khố Diffie-Hellman .........26
1.5.3 Quản lý khố cơng khai trong mật mã bất đối xứng ..............................27
1.5.4 Sử dụng mật mã bất đối xứng để trao đổi khóa bí mật ...........................29
Kết luận chương ........................................................................................................31

CHƯƠNG 2 KỸ THUẬT XÁC THỰC THÔNG TIN TRONG GIAO DỊCH
ĐIỆN TỬ ..................................................................................................................32
2.1 Giới thiệu chung xác thực thông tin ...........................................................32
2.2 Các kỹ thuật xác thực thông tin [2] ................................................................33
2.2.1 Sử dụng các thuật tốn mật mã khóa đối xứng .......................................34
2.2.2 Sử dụng các thuật tốn mật mã khóa bất đối xứng .................................35
2.2.3 Sử dụng mã xác thực MAC .....................................................................36
2.2.4 Sử dụng các hàm băm bảo mật ...............................................................37
2.2.5 Xác thực thông tin dùng chữ ký điện tử .................................................38
2.2.6 Xác thực thông tin dùng chữ ký điện tử và chứng thực điện tử ...........40
2.3 Các giao thức xác thực ...................................................................................42
2.3.1 Mật khẩu ..................................................................................................42
2.3.2 Các giao thức xác thực trong mô hình điểm - điểm ................................43
2.3.3 Xác thực trong các hệ thống phân tán .....................................................44


v

2.3.4 Giao thức xác thực Kerberos 4 ................................................................48
2.3.5 Giao thức xác thực Kerberos 5 ................................................................52
Kết luận chương ........................................................................................................55
CHƯƠNG 3 GIẢI PHÁP XÁC THỰC CHO CÁC GIAO DỊCH HÀNH
CHÍNH CƠNG ĐIỆN TỬ ......................................................................................56
3.1 Dịch vụ hành chính cơng .............................................................................56
3.1.1 Khái niệm ................................................................................................57
3.1.2 Các đặc trưng cơ bản của dịch vụ hành chính cơng ................................57
3.2 Mơ hình xác thực người dùng hành chính cơng ........................................58
3.2.1 Các thành phần hệ thống xác thực .......................................................... 58
3.2.2 Hệ thống ký hiệu ..................................................................................... 59
.......................................................................................................................... 60

3.2.3 Hoạt động hệ thống xác thực thông tin ... Error! Bookmark not defined.
3.3 Các quy trình xác thực hệ thống thơng tin hành chính cơng ................... 60
3.3.1 Quy trình cấp và quản lý chứng thực khóa ........................................ 60
3.3.2 Quy trình xác thực thông tin ................................................................... 63
3.3.3 Một số nhận xét ....................................................................................... 64
3.4 Cài đặt thử nghiệm ......................................................................................... 65
3.5 Đánh giá kết quả thử nghiệm .......................... Error! Bookmark not defined.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN ............................................................. 68
TÀI LIỆU THAM KHẢO ...................................................................................... 70


vi

DANH MỤC NHỮNG TỪ VIẾT TẮT
AES
ANSI
CA
CRL
DES
DNS
DSA
DSS
EDI
FIPS
FTP
HTTP
IDEA
ISO
ISP
ITU

MD5
NIST
OSI
PGP
PKI
RA
RSA
SET
SHA
TCP/IP
URL

Advanced Encryption Standard
American National Standards
Institude
Certification Authority
Certificate Revocation List
Data Ecryption Standard
Domain Name System
Digital Signature Algorithm
Digital Signature Standard
Electronic Data Interchange
Federal Information Processing
Standard
File Transfer Protocol
Hyper Text Transport Protocol
International Data Encryption
Algorithm
International Organization for
Standardization

Internet Service Provider
International Telecommunication
Union
Message Digest 5
National Institute of Standards
and Technology
Open System Interconnection
Pretty Good Private
Public Key Infrastructure
Registration Authority
Rivest-Shamir-Aldeman
Secure Electronic Transaction
Secure Hash Algorithm
Transmission Control Protocol
/ Internet protocol
Uniform Resource Locator

Chuẩn mã hoá tiên tiến
Viện tiêu chuẩn quốc gia Mỹ
Nhà cung cấp chứng thực
Danh sách chứng thực thu hồi
Chuẩn mã dữ liệu
Hệ thống tên miền
Thuật toán chữ ký điện tử
Chuẩn chữ ký điện tử
Trao đổi dữ liệu điện tử
Chuẩn xử lý thông tin liên bang
Mỹ
Giao thức truyền file
Giao thức truyền siêu văn bản

Thuật toán mã hoá dữ liệu quốc
tế
Tổ chức tiêu chuẩn hoá quốc tế
Nhà cung cấp dịch vụ Internet
Liên minh viễn thông quốc tế

Viện quốc gia về chuẩn và công
nghệ
Kết nối giữa các hệ thống mở
Cơ sở hạ tầng khoá công khai
Nhà quản lý đăng ký
Giao dịch điện tử an tồn
Thuật tốn băm an tồn
Giao thức điều khiển truyền
dẫn/ giao thức Internet
Bộ định vị tài nguyên


vii

DANH MỤC BẢNG
Bảng 1.1: Các phiên bản SHA ..................................................................................13
Bảng 1.2: So sánh các thông số giữa SHA-1 và MD5 ..............................................13
Bảng 3.1: Kết quả thử nghiệm ..................................................................................67


viii

DANH MỤC HÌNH
Hình 1.1: Cấu trúc hệ thống mật mã khóa bất đối xứng .............................................5

Hình 1.2: Một ứng dụng điển hình của hàm băm .....................................................10
Hình 1.3: Định nghĩa chữ ký số ................................................................................15
Hình 1.4: Sơ đồ tổng quát tạo chữ ký số ...................................................................16
Hình 1.5: Sơ đồ tổng quát kiểm tra chữ ký số ..........................................................17
Hình 1.6: Sơ đồ tổng quát tạo và kiểm tra chữ ký số ................................................17
Hình 1.7: Các thành phần cơ bản của một PKI.........................................................23
Hình 1.8: Thuật tốn trao đổi khố Diffie-Hellman .................................................26
Hình 1.9: Dùng mật mã bất đối xứng để trao đổi khố.............................................29
Hình 2.1: Xác thực thơng tin dùng mật mã đối xứng ...............................................34
Hình 2.2: Sử dụng khóa bất đối xứng để trao đổi khóa bí mật .................................35
Hình 2.3: Xác thực thông tin dùng mật mã bất đối xứng .........................................35
Hình 2.4: Xác thực thơng tin dùng MAC .................................................................36
Hình 2.5: Xác thực thơng tin dùng hàm băm ............................................................37
Hình 2.6: Xác thực dùng hàm băm và mật mã bất đối xứng ....................................38
Hình 2.7: Xác thực thơng tin dùng chữ ký số ...........................................................39
Hình 2.8: Xác thực thơng tin dùng chữ ký số ...........................................................39
Hình 2.9: Minh hoạ xác thực sử dụng chứng chỉ số và chữ ký điện tử ....................40
Hình 2.10: Sơ đồ minh họa quá trình xin cấp chứng chỉ số ......................................41
Hình 2.11: Giao thức xác thực PAP..........................................................................44
Hình 2.12: Giao thức xác thực CHAP ......................................................................44
Hình 2.13: Thủ tục xác thực Kerberos 4 ...................................................................49
Hình 2.14: Xác thực giữa hai lãnh địa Kerberos ......................................................52
Hình 3.1: Mơ hình tổng qt cấp chứng thực khóa ..................................................62
Hình 3.2: Quy trình khởi tạo chứng thực khóa cho người sử dụng ..........................63
Hình 3.3: Giao diện chương trình demo chữ ký số ... Error! Bookmark not defined.
Hình 3.4: Giao diện kiểm tra chuỗi toàn vẹn ........... Error! Bookmark not defined.


1


MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay, cùng với sự phát triển của công nghệ thông tin và truyền thông,
giao dịch điện tử đã và đang phát triển mạnh mẽ thay thế dần các giao dịch truyền
thống. Sự bùng nổ của Internet, một mặt đem lại nhiều ứng dụng tiện lợi, nhưng hầu
hết các thông tin quan trọng và nhạy cảm (thông tin mật, mã số tài khoản…) đều
được lưu trữ và trao đổi trên môi trường Internet.
Triển khai các giao dịch điện tử trên Internet như trao đổi thư tín, các giao
dịch hành chính cơng Chính phủ - công dân,… đã trở thành một phần tất yếu của
cuộc sống hiện đại. Tuy nhiên các nguy cơ, lừa đảo, giả mạo, chiếm quyền điều
khiển,… qua mạng ngày càng gia tăng với các thủ đoạn tinh vi. Vì vậy việc đảm
bảo an tồn thơng tin, tránh mọi nguy cơ bị thay đổi, sao chép hoặc mất mát dữ liệu
trong các ứng dụng trên mạng luôn là vấn đề bức xúc và cần thiết, được nhiều người
quan tâm. Nhu cầu thực tế được đặt ra, đó là phải có một cơ quan đảm bảo chứng
thực điện tử cho các giao dịch điện tử, nhằm đảm bảo yêu cầu xác thực, bí mật, toàn
vẹn, chống chối bỏ. Thực tế là hiện nay trên thế giới, có rất nhiều cách xây dựng,
triển khai một hệ thống PKI. Có thể đơn cử ra một vài ví dụ cụ thể như: CA Microshoft, OpenCA - Opensourc, Entrus….
Cấu trúc hạ tầng mã khóa cơng khai PKI (Public Key Infrastructure), cùng
với các tiêu chuẩn và các công nghệ ứng dụng của nó có thể coi là một giải pháp
tổng hợp và độc lập mà các tổ chức, doanh nghiệp có thể ứng dụng để giải quyết
vấn đề này. PKI bản chất là một hệ thống công nghệ vừa mang tính tiêu chuẩn, vừa
mang tính ứng dụng được sử dụng để khởi tạo, lưu trữ và quản lý các văn bản điện
tử cũng như các khóa cơng khai và bí mật. Ngồi việc bảo đảm an tồn cho thơng
tin liên lạc và lưu trữ, PKI cịn là cơ sở pháp lý để giải quyết khi có tranh chấp. Vì
vậy mục tiêu đặt ra là xây dựng một bộ tiêu chuẩn bảo mật tổng hợp cùng các công
cụ quản lý, cho phép người sử dụng cũng như các tổ chức có thể tạo, lưu trữ và trao
đổi các thơng tin một cách an toàn.


2


Luận văn này với mục đích nghiên cứu về hạ tầng khóa cơng khai PKI và
ứng dụng cho các giao dịch hành chính điện tử.
2. Ý nghĩa khoa học của đề tài
Nghiên cứu lý thuyết mật mã, chữ ký số và xác thực; hạ tầng khóa cơng khai
PKI và ứng dụng của nó. Từ đó xây dựng chương trình ứng dụng có khả năng bảo
mật nội dung thơng tin dưới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử
và chứng thực chữ ký số trên văn bản điện tử; góp phần phục vụ những người quản
lý đơn vị trao đổi thông tin với các đối tác khách hàng, điều hành công việc từ xa.
3. Đối tượng và phạm vi nghiên cứu
3.1 Đối tượng nghiên cứu
− Xác thực và mã hóa ứng dụng khóa cơng khai PKI
− Các giải pháp mã hóa, hàm băm, chữ ký số
3.2 Phạm vi nghiên cứu:
− Xây dựng các mơ hình xác thực dịch vụ hành chính cơng
− Xây dựng quy trình xác thực hành chính cơng
4. Những nội dung nghiên cứu chính
Luận văn gồm 3 chương như sau:
CHƯƠNG 1 : CƠ SỞ HẠ TẦNG KHĨA CƠNG KHAI
CHƯƠNG 2: KỸ THUẬT XÁC THỰC THÔNG TIN TRONG GIAO DỊCH
ĐIỆN TỬ
CHƯƠNG 3: GIẢI PHÁP XÁC THỰC CHO CÁC GIAO DỊCH HÀNH
CHÍNH CƠNG ĐIỆN TỬ


3

CHƯƠNG 1
CƠ SỞ HẠ TẦNG KHĨA CƠNG KHAI
1.1 Hệ mật mã khóa bất đối xứng[2]

1.1.1 Khái niệm
Đặc trưng của hệ mật mã khóa bất đối xứng (Asymmetric Key Encryption),
hay cịn được gọi là hệ mật mã khóa cơng khai (Public Key Encryption) là dùng 2
khóa riêng biệt cho hai quá trình mã hóa và giải mã, trong đó có một khóa được phổ
biến cơng khai (Public Key), khơng cần giữ bí mật, ký hiệu PU và khóa cịn lại gọi
là khóa riêng (Private Key) được giữ bí mật, chỉ có chủ sở hữu được biết, ký hiệu là
PR. Cả hai khố có thể được dùng để mã hố hoặc giải mã theo nhu cầu sử dụng.
Việc chọn khố cơng khai hay khố bí mật cho q trình mã hố sẽ tạo các ứng
dụng khác nhau:
1. Dùng khố cơng khai PU để mã hoá và khoá riêng để giải mã cho ứng
dụng bảo mật thơng tin (Confidentiality).
2. Dùng khố riêng PR để mã hố và khố cơng khai PU để giải mã cho ứng
dụng xác thực nội dung và nguồn gốc thơng tin (Authentication).
Thuật tốn mật mã bất đối xứng dựa trên các hàm tốn học. Mật mã hóa bất
đối xứng cịn được gọi bằng một tên thơng dụng hơn là mật mã hóa dùng khóa cơng
khai (Public Key Kncryption).
Nói chung, mật mã hóa bất đối xứng khơng phải là một kỹ thuật mật mã an
toàn hơn so với mật mã đối xứng, mà độ an tồn của một thuật tốn mã nói chung
phụ thuộc vào 2 yếu tố: Độ dài của khóa và mức độ phức tạp khi thực hiện thuật
tốn (trên máy tính). Hơn nữa, mặc dù được ra đời sau nhưng khơng có nghĩa rằng
mật mã bất đối xứng hoàn toàn ưu điểm hơn và sẽ được sử dụng thay thế cho mật
mã đối xứng. Mỗi kỹ thuật mã có một thế mạnh riêng và mật mã đối xứng vẫn rất
thích hợp cho các hệ thống nhỏ và đơn giản. Ngồi ra, vấn đề phân phối khóa trong
mật mã bất đối xứng cũng được đánh giá là một trong những vấn đề phức tạp khi
triển khai kỹ thuật mật mã này trong thực tế.


4

Các bước cơ bản của một hệ thống mật mã khóa cơng khai bao gồm:

1. Mỗi thực thể thơng tin (User) tạo ra một cặp khóa cơng khai PU (Public
Key) và khóa riêng PR (Private Key).
2. User thơng báo khố cơng khai PU cho các User khác biết, cịn khóa riêng
PR là sở hữu riêng, giữ bí mật.
3. Nếu User A muốn gửi thông tin cho User B, User A sẽ thực hiện mã hóa
thơng tin cần gửi bằng khóa công khai của User B.
4. Khi nhận được thông tin đã mã hóa từ User A, User B thực hiện giải mã
thơng tin đó bằng khóa riêng của nó. Do khóa riêng khơng phổ biến cơng khai nên
chỉ có User B có khả năng giải mã được.
Mật mã hóa bất đối xứng được sử dụng trong các ứng dụng: che giấu thông
tin, tạo chữ ký số (Digital Signature) và trao đổi khóa trong các thuật tốn mật mã
đối xứng (Key Exchange).

a) Ứng dụng bảo mật thông tin


5

b) Ứng dụng xác thực thơng tin
Hình 1.1: Cấu trúc hệ thống mật mã khóa bất đối xứng
1.1.2 Thuật tốn mật mã RSA
RSA (Rivest – Shamir – Adleman hay RSA) là thuật tốn mật mã khóa bất
đối xứng được xây dựng bởi Ron Rivest, Adi Shamir và Len Adleman tại viện công
nghệ Massachusetts (MIT), ra đời năm 1977, đến nay đã được ứng dụng trong nhiều
lĩnh vực. Cũng như các thuật toán mật mã bất đối xứng khác, nguyên lý của RSA
dựa chủ yếu trên lý thuyết số, lý thuyết logic rời rạc
RSA là một thuật toán mật mã khối, kích thước khối thơng thường là 1024
hoặc 2048 bit. Thơng tin gốc của RSA được xử lý như các số ngun. Ví dụ, khi
chọn kích thước khối của thuật tốn là 1024 bit thì số ngun này có giá trị từ 0 đến
21024 – 1, tương đương với số thập phân có 309 chữ số. Chú ý rằng đây là những số

nguyên cực lớn, không thể xử lý được bằng cách sử dụng các cấu trúc dữ liệu có sẵn
của các ngơn ngữ lập trình phổ biến.
Thuật tốn RSA được mô tả như sau:
1. Chọn hai số nguyên tố đủ lớn p và q.
2. Ký hiệu N = pq, φ(N) = (p-1)(q-1).
3. Chọn một số e sao cho e và φ(N) là hai số nguyên tố cùng nhau.
4. Tìm số d sao cho ed = 1 mod φ(N)


6

5. Cặp khóa bất đối xứng
− Khóa cơng khai (Public): PU= (N, e)
− Khóa bí mật (Private): PR = (N, d)
6. Nếu sử dụng kỹ thuật RSA để mã hóa thơng tin
− Mã hóa:
• Khối thơng tin gốc “m” chuyển về số nguyên M≤ N
• C = Me mod N
− Giải mã: M = Cd mod N
Ví dụ:
1. Chọn các số nguyên tố: p = 11 và q = 3
2.
3.
4.
5.

N = pq = 3*11 = 33, φ(N) = (p-1) (q-1) = (11 - 1) (3 - 1) = 20
Chọn e = 3, vì 3 và 20 nguyên tố cùng nhau.
Với e = 3, chọn d = 7, vì e*d = 3*7 = 1 mod 20
Cặp khóa bất đối xứng


− Khóa cơng khai (Public): PU = (33, 3)
− Khóa bí mật (Private): PR = (33, 7)
6. Giả sử User A có cặp khóa PUA = (33, 3) và PRA = (33, 7),User B muốn
gửi thông tin M = 15 cho User A
− User B mã hóa M bằng PUA = (33,3), C = 153 mod 33 = 3375 mod 33 = 9
mod 33. Khi đó, thơng tin mật gửi cho User A là C = 9
− Khi nhận C = 9, User A giải mã bằng khóa riêng PRA = (33, 7): M = Cd
mob N = 97 mod 33 = 4.782.969 mod 33 = 15 mod 33.
- Thông tin giải mã được là M = 15
Tóm lại, thuật tốn mật mã RSA được thực hiện gồm 3 quá trình tách rời: tạo
khố, mã hố và giải mã được tóm tắt như sau:
1. Tạo khố:
• Chọn p, q (p và q là số ngun tố, p ≠ q)
• Tính N = p*q
• Tính φ(N) = (p - 1)(q - 1)
• Chọn e sao ước số chung lớn nhất của e và φ(N) là 1
• Chọn d sao cho e.d mod φ(N) = 1
• Cặp khố RSA được tạo ra là PU = (N, e), PR = (N, d)
2. Mã hoá: C = Me mod N (M là số nguyên nhỏ hơn N)


7

3. Giải mã: M = Cd mod N
Trong thực tế, để đạt được độ an tồn cao, cặp khóa phải được chọn trên các
số p và q đủ lớn (N nhỏ nhất phải là 1024 bit), do vậy, vấn đề thực thi RSA bao
gồm các phép toán lũy thừa trên các số rất lớn. Vấn đề giảm chi phí tính toán và
tăng tốc độ thực hiện thuật toán RSA là một trong những vấn đề quan trọng cần
phải giải quyết. Trên các hệ thống máy tính hiện nay, hiệu suất thực hiện giải thuật

RSA là chấp nhận được.
1.1.3 Chuyển đổi văn bản rõ
Trước khi thực hiện mã hóa, ta phải thực hiện việc chuyển đổi văn bản rõ
(chuyển đổi từ M sang m) sao cho khơng có giá trị nào của M tạo ra văn bản mã khơng
an tồn. Nếu khơng có q trình này, RSA sẽ gặp phải một số vấn đề: Nếu m = 0
hoặc m = 1 sẽ tạo ra các bản mã có giá trị là 0 và 1 tương ứng
Khi mã hóa với số mũ nhỏ (chẳng hạn e = 3) và m cũng có giá trị nhỏ, giá
trị

cũng nhận giá trị nhỏ (so với n). Như vậy phép modulo khơng có tác dụng và

có thể dễ dàng tìm được m bằng cách khai căn bậc e của c (bỏ qua modulo). RSA là
phương pháp mã hóa xác định, khơng có thành phần ngẫu nhiên, nên Hacker có thể
tấn cơng lựa chọn bản rõ bằng cách tạo ra một bảng tra giữa bản rõ và bản mã. Khi
gặp một bản mã, Hacker sử dụng bảng tra để tìm ra bản rõ tương ứng.
Trên thực tế, thường gặp 2 vấn đề đầu khi gửi các bản tin ASCII ngắn
với m là nhóm vài ký tự ASCII. Một đoạn tin chỉ có 1 ký tự NUL sẽ được gán giá
trị m = 0 và cho ra bản mã là 0 bất kể giá trị của e và N. Tương tự, một ký tự ASCII
khác, SOH, có giá trị 1 sẽ luôn cho ra bản mã là 1. Với các hệ thống dùng giá
trị e nhỏ thì tất cả ký tự ASCII đều cho kết quả mã hóa khơng an tồn vì giá trị lớn
nhất của m chỉ là 255 và 2553 nhỏ hơn giá trị n chấp nhận được. Những bản mã này
sẽ dễ dàng bị phá mã. Để tránh gặp phải những vấn đề trên, RSA trên thực tế
thường bao gồm một hình thức chuyển đổi ngẫu nhiên hóa m trước khi mã hóa. Q
trình chuyển đổi này phải đảm bảo rằng m không rơi vào các giá trị khơng an tồn.
Sau khi chuyển đổi, mỗi bản rõ khi mã hóa sẽ cho ra một trong số khả năng trong
tập hợp bản mã. Điều này làm giảm tính khả thi tấn cơng lựa chọn bản rõ (một bản
rõ sẽ có thể tương ứng với nhiều bản mã tuỳ thuộc vào cách chuyển đổi).


8


Một số chuẩn, như PKCS, được thiết kế chuyển đổi bản rõ trước khi mã hóa
bằng RSA. Các phương pháp chuyển đổi này bổ sung thêm bít vào M. Các phương
pháp chuyển đổi cần được thiết kế cẩn thận để tránh những dạng tấn công phức tạp,
tận dụng khả năng biết trước được cấu trúc của bản rõ. Phiên bản ban đầu của
PKCS dùng một phương pháp Ad- hoc mà về sau được biết là khơng an tồn
trước tấn cơng lựa chọn bản rõ thích ứng (Adaptive Chosen Ciphertext Attack). Các
phương pháp chuyển đổi hiện đại sử dụng các kỹ thuật như chuyển đổi mã hóa bất
đối xứng tối ưu (Optimal Asymmetric Encryption Padding - OAEP) để chống lại
tấn công dạng này. Tiêu chuẩn PKCS còn được bổ sung các tính năng khác để đảm
bảo an tồn cho chữ ký RSA (Probabilistic Signature Scheme for RSA - RSA PSS).
1.1.4 Đánh giá kỹ thuật mật mã bất đối xứng
Kỹ thuật mật mã bất đối xứng hồn tồn có thể đáp ứng được những yêu cầu
về bảo mật hệ thống như trong kỹ thuật mật mã đối xứng, mặc dù tốc độ thực thi
của mã bất đối xứng thường thấp hơn do bản chất thuật toán dựa trên các thao tác số
học chứ không dựa trên các thao tác xử lý bit. Hơn nữa, mã bất đối xứng chỉ phù
hợp với việc thực thi bằng phần mềm. Mật mã bất đối xứng đảm bảo được 2 yêu
cầu cơ bản của thông tin là tính bí mật và tính tồn vẹn. Kỹ thuật mật mã bất đối
xứng có 2 ưu điểm so với mã đối xứng:
1. Hai thực thể không cần thực hiện trao đổi khóa trước khi làm việc.
2. Bên cạnh cơng dụng đảm bảo tính tồn vẹn của dữ liệu, mật mã bất đối
xứng (khi được sử dụng cho mục đích xác thực) cịn đảm bảo được tính khơng thể
phủ nhận (non-repudiation) của thơng tin.
Theo lý thuyết, RSA có thể bị tấn cơng bằng những phương thức sau:
− Brute-force attack: tìm lần lượt khoá riêng PR
− Mathematical attack: xác định p và q bằng cách phân tích N thành tích của
các thừa số nguyên tố rồi từ đó xác định e và d.
− Timing attack: dựa trên thời gian thực thi của thuật toán giải mã.



9

− Chosen ciphertext attack: sử dụng các đoạn thông tin mật (ciphertext) đặc
biệt để khôi phục thông tin gốc.
Tuy nhiên trong thực tế, nguy cơ tấn công các hệ thống mật mã RSA là rất
thấp, do RSA là một thuật tốn linh động, kích thước khối dữ liệu gốc và chiều dài
khố dễ dàng được thay đổi mà khơng ảnh hưởng đến thuật toán mã.
1.1.5 Một số kỹ thuật phá mã RSA
RSA có thể bị tấn cơng bằng những phương thức sau đây:
− Tìm lần lượt khố riêng PR
− Xác định p và q bằng cách phân tích N thành tích của các thừa số ngun
tố rồi từ đó xác định e và d.
− Dựa trên thời gian thực hiện của thuật tốn giải mã.
− Sử dụng các đoạn thơng tin mật (Ciphertext) đặc biệt để khôi phục thông
tin gốc.
− Trong thực tế, nguy cơ tấn công các hệ thống mật mã RSA là rất thấp, vì
RSA là một thuật tốn linh động, kích thước khối dữ liệu gốc và chiều dài khố dễ
dàng thay đổi mà khơng ảnh hưởng đến thuật tốn mã.
1.1.6 Một số hệ mật mã khóa công khai khác
− ELGamal(ELGamal,s Public-key Cryptosystem): Độ bảo mật dựa trên
tính khó giải của bài tốn logarit rời rạc trên các trường hữu hạn.
− Schnorr( Schnorr,s Public-key Cryptosystem): Độ bảo mật dựa trên các
thuật toán logarit rời rạc.
− DSA (Digital Signature Algorithm): Độ bảo mật dựa sự kết hợp của
ELGamal và Schnorr.
− ECC(The Elliptic Curve Cryptosystem): Là biến tướng của các hệ mật
khác (ELGamal), làm việc trên các đường cong Elip.
1.2 Hàm băm bảo mật
1.2.1 Giới thiệu
Hàm băm bảo mật (Secure Hash Function) còn được gọi là hàm băm (Hash)

là một trong những kỹ thuật cơ bản để thực hiện các cơ chế xác thực thơng tin
(Message Authentication). Ngồi ra, hàm băm cũng cịn được sử dụng trong nhiều
thuật tốn mật mã, trong chữ ký số (Digital Signature) và trong nhiều ứng dụng
khác.
Nguyên tắc của hàm băm là biến đổi khối thơng tin gốc M có độ dài bất kỳ
thành một đoạn thơng tin ngắn hơn có độ dài cố định. Đoạn thông tin này gọi là giá


10

trị băm, hay còn được gọi là mã băm h = H(M) (Hash Code hay Message Digest).
Mã băm được dùng để kiểm tra tính chính xác của thơng tin nhận được. Thơng
thường, mã băm được gửi đính kèm với thơng tin gốc. Ở phía nhận, hàm băm lại
được áp dụng đối với thơng tin gốc để tìm ra mã băm mới, giá trị này được so sánh
với mã băm đi kèm với thông tin gốc. Nếu hai mã băm giống nhau, nghĩa là thông
tin gửi đi không bị thay đổi.
1.2.2 Các tính chất của hàm băm bảo mật
Chỉ có thể dùng hàm băm để tính mã băm từ thơng tin gốc chứ khơng thể
tính được thơng tin gốc từ mã băm. Do đặc tính này, các hàm băm bảo mật cũng
còn được gọi là hàm băm một chiều (One Way Hash Function).
Các tính chất của một hàm băm bảo mật h = H(M)
− H(M)có thể được áp dụng cho khối thông tin với chiều dài bất kỳ
− Dung lượng mã băm h = H(M) ln có chiều dài cố định
− Hàm băm H(M) với một giá trị có thể thực hiện trên phần cứng hoặc bằng
phần mềm.
− Tính chất một chiều (One Way Property): Cho trước một giá trị h, khó có
thể tìm được một giá trị M sao cho H(x) = h.
− Tính chất đụng độ yếu (Weak Collision Resistance): Cho trước khối thơng
tin M, khơng thể tìm được một khối thông tin M” ≠ M sao cho cùng giá trị băm
H(M”) = H(M).


Thông tin gốc

Thông tin gốc

Thông tin gốc

− Tính chất đụng độ mạnh (Strong Collision Resistance): Khơng thể tìm
được hai khối thơng tin M” ≠ M sao cho H(M”) = H(M).

H

: So sánh
H
: Mã băm

H

: Hàm băm

Hình 1.2: Một ứng dụng điển hình của hàm băm


11

Trong những trường hợp lý tưởng nhất là ứng với một khối thông tin M xác
định một giá trị duy nhất mã băm h = H(M) và ngược lại, mỗi giá trị h xác định duy
nhất một khối thông tin M, tức là ánh xạ 1:1, sẽ không thể xảy ra tình huống tồn tại
hai khối thơng tin khác nhau cùng cho một giá trị băm. Nếu tồn tại 2 khối thông tin
khác nhau cùng cho ra một mã băm, nói rằng thuật tốn băm bị đụng độ (Collision).

Tạo ra các tình huống đụng độ là mục tiêu tấn cơng của Hacker vào một hàm băm
bảo mật.
Xác suất để hai khối thơng tin có cùng một giá trị băm phụ thuộc vào kích
thước của mã băm, tức là phụ thuộc vào số lượng mã băm có thể có. Kích thước mã
băm càng nhỏ thì khả năng xảy ra tình huống đụng độ càng lớn, và do đó xác suất
tấn cơng thành cơng càng lớn. Nếu kích thước mã băm là n bit, để xác suất xảy ra
đụng độ là 50% thì cần có khoảng 2n/2 khối thơng tin được xử lý. Các kiểu tấn công
này được gọi là tấn công Birthday Attack.
Nói chung, độ an tồn một hàm băm phụ thuộc vào kích thước mã băm
1.2.3 Ứng dụng hàm băm bảo mật
Một ứng dụng tiêu biểu của hàm băm mật như sau: Giả sử Alice đặt ra một
bài tốn khó cho Bob, và tuyên bố rằng cô ta đã giải được. Bob sẽ phải cố gắng tự
thực hiện, nhưng chưa dám chắc rằng Alice khơng giải sai. Do đó, Alice viết ra lời
giải của mình, gắn thêm một giá trị nonce ngẫu nhiên, tính giá trị băm của nó và cho
Bob biết giá trị băm đó (giữ bí mật lời giải và giá trị nonce). Bằng cách này, khi
Bob tìm ra lời giải của mình vài ngày sau đó, Alice có thể chứng minh rằng cơ ta có
lời giải sớm hơn bằng cách tiết lộ giá trị nonce cho Bob. (Đây là một ví dụ về một
lược đồ cam kết đơn giản trong thực tế, vai trò của Alice và Bob thường sẽ là các
chương trình máy tính, và bí mật sẽ là một cái gì đó dễ dàng giả mạo hơn là một bài
tốn đó theo u cầu).
Một trong những ứng dụng quan trọng của hàm băm an toàn là việc xác minh
tính tồn vẹn của thơng tin, nó xác định liệu có sự thay đổi nào đã được thực hiện
đối với thơng điệp (hoặc một tập tin). Ví dụ, có thể được thực hiện bằng cách so


12

sánh các giá trị băm của thơng điệp đã tính toán trước, và sau khi truyền đi (hoặc sự
kiện nào đó).
Một giá trị tóm lược thơng điệp cũng có thể phục vụ như là một phương tiện

nhận dạng một tập tin đáng tin cậy một số hệ thống quản lý mã nguồn, bao gồm Git,
Mercurial và Monotone, sử dụng giá trị shalsum của nhiều dạng nội dung khác nhau
(nội dung tập tin, cây thư mục, vv…) để nhận dạng chúng một cách duy nhất. Một
ứng dụng khác liên quan tới việc xác thực mật khẩu. Mật khẩu thường không được
lưu trữ dạng văn bản rõ, với các lý do hiển nhiên, mà thay bằng dạng giá trị tóm
lược. Để xác thực người dùng, mật khẩu đại diện cho người sử dụng được băm và
so sánh với giá trị băm lưu trữ. Điều này đôi khi được gọi là phép mã hóa một chiều
(one-way encryption). Đối với cả hai lý do bảo mật và hiệu suất, hầu hết các thuật
toán chữ ký số chỉ định rằng chỉ giá trị tóm lược của thơng báo được "ký", chứ
khơng phải tồn bộ thơng báo. Các hàm băm cũng có thể được sử dụng trong việc
tạo các bit giả ngẫu nhiên (pseudorandom)
Các giá trị băm còn được sử dụng để nhận dạng tập tin trên mạng khi chia sẻ
theo mơ hình Peer to Peer. Ví dụ, trong một liên kết ed2k, một giá trị băm MD4
biến thể được kết hợp với kích thước tập tin, cung cấp đủ thông tin để định vị các
nguồn tập tin, tải các tập tin và xác nhận nội dung của nó. (Trong máy tính, các liên
kết ed2k là các hyperlinks được sử dụng để biểu thị các tập tin được lưu trữ trong
mạng eDonkey P2P.) Các liên kết Magnet là một ví dụ khác. Các giá trị băm tập tin
như vậy thường là băm đầu danh sách băm hoặc cây băm để có thêm nhiều tiện lợi.
1.2.4 Hàm băm bảo mật SHA
khối 512 bit, qua 5 công đoạn khác nhau SHA (Secure Hash Function) chuẩn
hoá năm 1993, sau đó được chỉnh sửa năm 1995 và đặt tên là SHA-1, từ đó phiên
bản cũ được gọi là SHA-0.
SHA-1 tạo ra mã băm có chiều dài cố định là 160 bit. Về sau, có nhiều nâng
cấp đối với SHA, chủ yếu là tăng chiều dài mã băm, từ đó xuất hiện các phiên bản
khác nhau của SHA, bao gồm: SHA-256 (mã băm dài 256 bit), SHA-384 (mã băm
dài 384 bit) và SHA-512 (mã băm dài 512 bit).
SHA-1 chấp nhận các khối thơng tin có kích thước tối đa là 264 bit để tạo ra
mã băm với độ dài cố định 160 bit. Tồn bộ khối thơng tin được xử lý theo từng



13

Bảng 1.1: Các phiên bản SHA
Thơng số

SHA-1

SHA-256

SHA-384

SHA-512

Kích thước mã băm (bit)

160

256

384

512

Kích thước thơng tin gốc (bit)

< 264

< 264

< 2128


<2128

Kích thước khối (bit)

512

512

1024

1024

Độ dài từ (bit)

32

32

64

64

Số bước thực hiện (bước)

80

64

80


80

1.2.5 Hàm băm MD5
MD5 (Message Digest Algorithm 5) là một giải thuật xác thực thông tin
được sử dụng phổ biến trên Internet, đặc biệt dùng để kiểm tra tính chính xác của
các phần mềm mã nguồn mở phát hành trên mạng. Giải thuật này được xây dựng
bởi Ron Rivest và được chuẩn hóa bằng RFC 1321. MD5 có thể xử lý các khối
thơng tin có độ dài khơng giới hạn để tạo ra mã băm dài 128 bit. Thông tin gốc cũng
xử lý theo từng đoạn 512 bit. MD5 được sử dụng rộng rãi trong các chương trình an
ninh mạng, và cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin.
MD5 được sử dụng rộng rãi trong thế giới phần mềm để đảm bảo rằng tập
tin tải về không bị lỗi. Người sử dụng có thể so sánh giữa thông số kiểm tra phần
mềm bằng MD5 được công bố với thông số kiểm tra phần mềm tải về bằng
MD5. Hệ điều hành Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối,
trong khi hệ điều hành Windows sử dụng phần mềm của hãng thứ ba.
MD5 được dùng để mã hóa mật khẩu. Mục đích của việc mã hóa này là biến
đổi một chuỗi mật khẩu thành một đoạn mã khác, sao cho từ đoạn mã đó khơng thể
nào lần trở lại mật khẩu. Có nghĩa là việc giải mã là không thể hoặc phải mất một
khoảng thời gian vơ tận (đủ để làm nản lịng các hacker).
Bảng 1.2: So sánh các thông số giữa SHA-1 và MD5
Thơng số so sánh

MD5

SHA-1

Kích thước mã băm (bit)

128


160

Kích thước khối (bit)

512

512

Số bước

64

80

Khơng giới hạn

< 264

4

4

Kích thước thơng tin gốc (bit)
Số lượng hàm logic


14

Với 128 bit giá trị mã băm, việc tìm ra hai khối thơng tin để có cùng một giá

trị mã băm khơng cịn là điều bất khả thi đối với năng lực của các bộ xử lý hiện đại
hiện nay. Vì vậy, độ an tịan của một MD5 đang bị đe dọa nghiêm trọng, và mức độ
phổ biến của MD5 có thể sẽ giảm đi rất nhiều và được thay thế bằng một giải thuật
xác thực khác hiệu quả hơn.
1.3 Chữ ký số [2]
1.3.1 Khái niệm chữ ký số
Ứng dụng quan trọng nhất của mật mã khố cơng khai là chữ ký số hay còn
được gọi là chữ ký điện tử. Chữ ký số là một phương thức nhằm đảm bảo tính
hợp pháp của các thực thể khi tham gia các giao dịch điện tử. Chữ ký số là một
cơ chế xác thực cho phép người tạo ra thông tin (Message Creator) gắn thêm một
đoạn mã đặc biệt vào thông tin, có tác dụng như là một chữ ký thơng thường.
Chữ ký được tạo ra bằng cách áp dụng một hàm băm lên thơng gốc và sau đó nó
được mã hóa bằng khóa riêng của người gửi. Chữ ký số có mục đích đảm bảo tính
tồn vẹn về nguồn gốc và nội dung của thông tin.
Trong khi các cơ chế xác thực thông tin (Message Authentication) đã thực
hiện chức năng xác thực nguồn gốc thông tin. Các hàm băm một chiều chỉ mới có
tác dụng bảo vệ thơng tin trao đổi giữa hai thực thể không xâm phạm của một thực
thể bên thứ 3. Tuy nhiên, các cơ chế này khơng thể ngăn chặn được sự xâm phạm
của chính hai thực thể trực tiếp tham gia.
Ví dụ: Thực thể A gửi một tài liệu X cho thực thể B, sử dụng một cơ chế xác
thực nào đó, cơ chế này mới chỉ đảm bảo chỉ có thực thể A và thực thể B dùng
chung một khố bí mật K để tạo ra các mã xác thực từ thông tin gốc. Tuy nhiên, nếu
thực thể B cố ý thay đổi nội dung của tài liệu X thành một tài liệu có nội dung mới
Y khác với tài liệu X gốc, và với khóa bí mật K. Thực thể B hồn tồn có thể tạo ra
thơng tin xác thực mới để gắn vào Y, làm cho nó trở thành một bản tin hợp lệ mặc
dù thực chất đây không phải là bản tin do thực thể A tạo ra. Ngược lại, Thực thể A
cũng có thể từ chối xác nhận việc nó đã gửi bản tin X cho thực thể B, vì với các cơ
chế xác thực như trên, thực thể B hồn tồn có khả năng giả mạo thơng tin đưa ra từ
thực thể A.
Cũng như một chữ ký thông thường (chữ ký bằng tay), một chữ ký số phải

có đầy đủ các thuộc tính sau đây:


15

− Phải xác nhận chính xác người ký và ngày giờ phát sinh chữ ký.
− Phải xác thực nội dung thông tin ngay tại thời điểm phát sinh chữ ký.
− Phải có khả năng cho phép kiểm chứng bởi một người thứ 3 để giải quyết
các tranh chấp nếu có.
Như vậy, chức năng của chữ ký số bao gồm chức năng xác thực.
Các yêu cầu đối với chữ ký số:
− Là một chuỗi bit phát sinh từ khối thông tin gốc cần được xác nhận.
− Chữ ký phải chứa thông tin nhận dạng riêng của người ký để tránh giả
mạo và tránh phủ nhận.
− Quy trình tạo ra chữ ký số và xác minh chữ ký số phải đơn giản, nhanh
chóng và thuận tiện, dễ sử dụng.
− Chữ ký khơng thể bị giả mạo bằng bất cứ cách nào.
− Có thể sao chép một bản sao của chữ ký dành cho mục đích lưu trữ.

M

Hashing
(SHA, MD5)

Thơng tin gốc
(bản rõ)

Mã băm
h = H(M)


Mã hóa
PR (Private Key)

Chữ ký số
soos

Hình 1.3: Định nghĩa chữ ký số
1.3.2 Quy trình tạo và kiểm tra chữ ký số
a) Quy trình tạo ra chữ ký số: Quy trình này được thực hiện bởi người gửi
- Tạo giá trị băm tài liệu cần gửi bằng MD5 hay SHA
- Chữ ký số của người gửi là kết quả mã hoá giá trị băm bằng khoá riêng
(Private key) của người gửi.
- Gửi thông điệp được gửi đi bao gồm tài liệu gốc và chữ ký người gửi


×