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

PKI và kỹ thuật đảm bảo an toàn dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.39 MB, 109 trang )

PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

MỤC LỤC
TRANG PHỤ BÌA ..............................................................................................................1
DANH MỤC CÁC CHỮ VIẾT TẮT ...............................................................................3
DANH MỤC CÁC BẢNG .................................................................................................4
DANH MỤC CÁC HÌNH ..................................................................................................5
PHẦN MỞ ĐẦU .................................................................................................................6
CHƢƠNG 1 LÝ THUYẾT CHUNG VỀ MẬT MÃ KHÓA CÔNG KHAI ............ 10
1.1 CÁC HỆ THỐNG CHUNG VỀ MẬT MÃ KHÓA CÔNG KHAI ............................10
1.2 CÁC ỨNG DỤNG HỆ MẬT MÃ KHOÁ CÔNG KHAI ...........................................16
1.3 CÁC YÊU CẦU ĐỐI VỚI HỆ MẬT MÃ KHÓA CÔNG KHAI ..............................17
1.4 HỆ MẬT RSA ...................................................................................................................18
1.4.1 Tạo khoá........................................................................................................... 18
1.4.2 Mã hóa.............................................................................................................. 20
1.4.3 Giải mã ............................................................................................................. 20
1.4.4 Độ an toàn ........................................................................................................ 21
1.5 CHỮ KÝ SỐ ......................................................................................................................21
1.5.1 Định nghĩa sơ đồ chữ ký “số” ....................................................................... 24
1.5.2 Hàm băm .......................................................................................................... 24
1.5.3 Sơ đồ chữ ký RSA .......................................................................................... 27
1.6 TÓM TẮT ..........................................................................................................................30
CHƢƠNG 2 HẠ TẦNG CƠ SỞ MẬT MÃ KHOÁ CÔNG KHAI (PKI) ................ 30
2.1 ĐỊNH NGHĨA PKI ...........................................................................................................30
2.2 PHÂN PHỐI KHÓA CÔNG KHAI ...............................................................................31
2.2.1 Khai báo công khai các khoá công khai ....................................................... 31
2.2.2 Danh bạ công khai .......................................................................................... 32
2.2.3 Trung tâm quản lý khoá công khai ............................................................... 33
2.2.4 Chứng chỉ khoá công khai ............................................................................. 34
2.3 CÁC THÀNH PHẦN CHÍNH CỦA PKI ......................................................................38


1


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

2.3.1 End Entity ........................................................................................................ 38
2.3.2 CA (Certification Authority) ......................................................................... 38
2.3.3 Cấu trúc tổ chức của hệ thống CA : ............................................................ 39
2.3.4 Các cấu trúc quan hệ của CA ........................................................................ 40
2.3.5 Bộ phận phát hành CRL................................................................................. 49
2.4 CÁC CHỨC NĂNG CHUNG NHẤT CỦA PKI .........................................................50
2.4.1 Quản lý cặp khoá công khai và khoá riêng.................................................. 50
2.4.2 Quá trình sinh cặp khoá ................................................................................. 50
2.4.3 Phát hành chứng chỉ ....................................................................................... 55
2.4.4 Phân phối chứng chỉ ....................................................................................... 59
2.4.5 Thu hồi chứng chỉ ........................................................................................... 62
2.4.6 Treo chứng chỉ ................................................................................................ 70
2.5 CẤU TRÚC PKI ...............................................................................................................71
2.6 CÁC YÊU CẦU VỀ PKI .................................................................................................72
2.7 BAN HÀNH LUẬT..........................................................................................................73
2.7.1 Công nghệ ........................................................................................................ 74
2.7.2 Phạm vi và chi tiết .......................................................................................... 75
2.7.3 Các văn bản và chữ ký ................................................................................... 76
2.7.4 Chất lƣợng và các chuẩn của CA.................................................................. 77
2.7.5 Các chuẩn về thuê bao .................................................................................... 77
2.7.6 Chia nhỏ trách nhiệm và pháp lý .................................................................. 77
2.8 MỘT MÔ HÌNH PKI .......................................................................................................79
2.9 THỰC TẾ TRIỂN KHAI PKI .........................................................................................83
2.10 TÓM TẮT ........................................................................................................................85
CHƢƠNG 3 ỨNG DỤNG HỆ MẬT MÃ KHOÁ CÔNG KHAI TRONG VIỆC

BẢO MẬT CƠ SỞ DỮ LIỆU ........................................................................................ 86
3.1 BÀI TOÁN.........................................................................................................................86
3.2 MÔ HÌNH THIẾT KẾ HỆ THỐNG...............................................................................89
3.2.1 Mô hình kiến trúc logic .................................................................................. 89

2


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

3.2.2 Các lớp bảo mật .............................................................................................. 90
3.3 MÔ HÌNH CA ...................................................................................................................97
3.3.1 Mục tiêu của hệ thống .................................................................................... 97
3.3.2 Mô hình hệ thống quản lý và cấp phát chứng chỉ ....................................... 97
3.3.3 Các chuẩn sử dụng tại CA ............................................................................. 99
3.3.4 Bảo đảm mật mã trong CA ............................................................................ 99
3.3.5 Tổ chức CA Server ......................................................................................... 99
3.4 TÓM TẮT ....................................................................................................................... 104
KẾT LUẬN ..................................................................................................................... 105
TÀI LIỆU THAM KHẢO ........................................................................................... 1066

3


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƢỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI
--------------------------------------Phạm Thái Sơn


TÊN ĐỀ TÀI LUẬN VĂN:
PKI và kỹ thuật đảm bảo an toàn dữ liệu

Chuyên ngành :

LUẬN VĂN THẠC SĨ KỸ THUẬT
Công nghệ thông tin

NGƢỜI HƢỚNG DẪN KHOA HỌC :
TS. Phạm Đăng Hải

Hà Nội 04/2016
TRANG PHỤ BÌA

1


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

LỜI CAM ĐOAN
Tôi xin cam đoan đây là công trình nghiên cứu của riêng tôi. Các số liệu, kết quả
nêu trong Luận văn là trung thực và chƣa từng đƣợc ai công bố trong bất kỳ công
trình nào khác. Tôi xin cam đoan rằng mọi sự giúp đỡ cho việc thực hiện Luận văn
này đã đƣợc cảm ơn và các thông tin trích dẫn trong Luận văn đã đƣợc chỉ rõ nguồn
gốc.
Học viên thực hiện luận văn

Phạm Thái Sơn

2



PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

DANH MỤC CÁC CHỮ VIẾT TẮT
CSDL

Cơ sở dữ liệu

DB

Database

PKI

Public Key Infrastructure

CA

Certification Authority

CPS

Certification Practice Statement

CRS

Certificate Repository Sever

CRL


Certificate Revocation List

ITU

International Telegraph Union

IOS

International Organization for Standardization

LRA

Local Registration Authorities

NSD

Ngƣời sử dụng

RA

Registration Authority

3


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

DANH MỤC CÁC BẢNG
Bảng 1.1 Hệ mật mã khoá công khai và đối xứng……………………………


12

Bảng 1.2 Các ứng dụng đƣợc các thuật toán hỗ trợ……………………….......

16

4


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

DANH MỤC CÁC HÌNH
Hình 1.1 minh hoạ quá trình mã hoá khoá công khai………………………….

11

Hình 1.2 Hệ khóa công khai: Bí mật…………………………………………..

13

Hình 1.3 Hệ mật khoá công khai: Xác thực …………………………………..

14

Hình 1.4 Hệ mật khoá công khai: Bí mật và xác thực ………………………..

15

Hình 2.1 Phân phối khoá công khai không kiểm soát………………………...


31

Hình 2.2 Công bố khoá công khai……………………………………………

32

Hình 2.3 Lƣợc đồ phân phối khoá công khai …………………………………

33

Hình 2.4 Chứng chỉ khoá công khai đơn giản………………………………...

35

Hình 2.5 Khuôn dạng chứng chỉ trong phiên bản 1 và 2 của X.509………….. 37
Hình 2.6 Mô hình CA theo cấu trúc hình cây………………………………….

39

Hình 2.7 Cấu trúc phân cấp tổng quát………………………………………...

41

Hình 2.8 Danh sách các chứng chỉ bị huỷ bỏ…………………………………

64

Hình 2.9 Dòng thời gian hủy bỏ………………………………………………


68

Hình 2.10 Các khối cơ bản của PKI…………………………………………...

71

Hình 2.11 Các thành phần trong môi trƣờng SET…………………………….

80

Hình 2.12 Cơ sở hạ tầng khoá công khai SET ………………………………..

81

Hình 2.13 Biểu đồ thống kê sử dụng PKI trên thế giới………………………..

83

Hình 3.1 Mô hình hệ thống ứng dụng tổ chức theo thiết kế 3 lớp……………..

88

Hình 3.2 Mô hình làm việc có ứng dụng hệ mật mã khóa công khai………….

89

Hình 3.4 Quy trình gửi dữ liệu mã hóa khóa công khai có kèm theo chữ ký
điện tử xác thực………………………………………………….…..

95


Hình 3.5 Quy trình giải mã dữ liệu và kiểm tra chữ ký………………………..

96

Hình 3.6 Mô hình hoạt động của hệ thống CA………………………………...

98

5


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

PHẦN MỞ ĐẦU
Lí do chọn đề tài
Hạ tầng cơ sở mật mã khoá công khai (PKI) là một trong những ứng dụng quan
trọng phục vụ cho việc thực hiện các giao dịch điện tử trên mạng Internet đang
đƣợc quan tâm nghiên cứu và ứng dụng nhiều hiện nay trên thế giới cũng nhƣ ở
nƣớc ta. Đây là một lĩnh vực khá quan trọng đối với nƣớc ta cả trên khía cạnh
nghiên cứu và ứng dụng.
Theo dự tính của các nhà chuyên môn, nhu cầu xác thực đƣợc đối tƣợng cùng
tham gia giao dịch và việc đảm bảo an toàn thông tin trong giao dịch thƣơng mại
điện tử là rất lớn, chiếm phần rất lớn trong khối lƣợng giao dịch diễn ra trên mạng
Internet toàn cầu. Và kỹ thuật mật mã là một trong những công cụ quan trọng đảm
bảo an toàn thông tin trên mạng
Lịch sử nghiên cứu
Có thể phân chia các mô hình mật mã dùng cho máy tính thành hai loại hệ mật
mã cơ bản sau:
-


Hệ mật mã khoá bí mật hay còn gọi là hệ mật đối xứng,

-

Hệ mật khoá công khai hay còn gọi là hệ mật phi đối xứng.

Đối với hệ mật mã khoá bí mật thì khoá để mã hoá và khoá để giải mã là nhƣ
nhau. Khoá này phải đƣợc giữ bí mật ở cả nơi mã và nơi giải mã. Cho đến giữa
những năm 70 của thế kỷ 20, ngƣời ta vẫn chỉ mới biết đến hệ mật mã khoá bí mật.
Mặc dù hệ mật này tính toán hiệu quả, song nó đã gặp khó khăn rất nhiều khi giải
quyết bài toán phân phối khoá. Mọi việc đã thay đổi khi W. Diffie và M. Hellman
đƣa ra khái niệm mật mã khoá công khai vào năm 1976. Những vấn đề khó khăn
trong giải quyết vấn đề phân phối khoá mã trong các hệ mật mã khoá đối xứng đã
đƣợc giải quyết trong các hệ mật khoá công khai. Không giống nhƣ các hệ mật đố i
xứng, các hệ mật khoá công khai với tính chất phi đối xứng đã cho phép trao đổi
các thông tin đƣợc mã hóa mà không đòi hỏi chuyển giao khóa bí mật.

6


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Việc phát minh ra các hệ mật khoá công khai đã tạo ra cuộc cách mạng trong
khoa học mật mã. Một trong những ứng dụng đầu tiên của nó là để giải quyết vấn
đề phân phối khoá trong các hệ mật khoá đối xứng. Đây là một vấn đề gặp rất nhiều
khó khăn khi chƣa xuất hiện các hệ mật khoá công khai. Ứng dụng mật mã khoá
công khai cũng cho phép giảm số khoá cần thiết trong hệ thống. Đối với các hệ mật
khoá đối xứng thì để duy trì trao đổi bí mật giữa n thành viên cần tới n(n-1)/2 khoá
trong khi nếu sử dụng hệ mật khoá công khai thì chỉ cần n cặp khoá cho n thành

viên.
Các hệ mật mã khoá công khai ra đời đã mở ra cùng lúc một xu hƣớng ứng dụng
mới, trong đó có các hệ thống chữ ký điện tử và tiền điện tử.
Tuy nhiên khi ứng dụng mật mã khoá công khai thì một vấn đề nẩy sinh là làm
thế nào để phân phối khoá công khai một cách tin cậy. Đây là một vấn đề không hề
đơn giản và đòi hỏi phải có những nghiên cứu và phát triển một hệ thống cơ sở công
nghệ và pháp lý cho việc ứng dụng khoá công khai hay có thể coi đó là hạ tầng cơ
sở mật mã khóa công khai (viết tắc là PKI). Các sở hạ tầng khoá công khai hỗ trợ
nhiều dịch vụ. Các dịch vụ hỗ trợ này rất cần thiết khi yêu cầu trao đổi thông tin
mật đƣợc sử dụng trên phạm vi rộng.
Để xây dựng hạ tầng cơ sở khoá công khai có nhiều vấn đề cần phải giải quyết
cả về mặt công nghệ và về mặt pháp lý. Nhiều vấn đề đã đƣợc tập trung nghiên cứu
trong những năm gần đây. Các nƣớc phát triển nhƣ Mỹ, Canada, châu âu là những
nƣớc đi đầu trong lĩnh vực này. Châu á cũng đã quan tâm chú ý tại một số nƣớc nhƣ
Nhật, Hàn quốc, Đài loan, Singapore, Malaixia, Thái lan. Các hội thảo về PKI đƣợc
tổ chức đều đặn hàng năm. Việt nam đang trong giai đoạn đầu tìm hiểu và ứng dụng
thử nghiệm.
Kể từ khi W. Diffie và M. Hellman lần đầu tiên đƣa ra khái niệm mật mã khoá
công khai, mật mã khoá công khai đã có những phát triển mạnh mẽ. Nhiều thuật
toán mã công khai đã đƣợc xây dựng nhƣ RSA, DSA và lớp các thuật toán mã dựa
trên mật mã đƣờng cong Elliptic. Nhiều chuẩn về mã hoá và chữ ký cũng đã đƣợc

7


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

xây dựng. Tuy nhiên, hạ tầng cơ sở khoá công khai mới chỉ đƣợc phát triển trong
khoảng 10 năm trở lại đây. Đầu tiên và trƣớc hết PKI là công nghệ xác thực sử dụng
tổ hợp cả mật mã khoá bí mật và mật mã khoá công khai. PKI cho phép một số dịch

vụ an toàn nhƣ mã hoá dữ liệu, xác thực dữ liệu và quản lý khoá. Khung làm việc
của PKI đã đƣợc định nghĩa trong khuyến nghị ITU-T X.509.
Mục đích nghiên cứu của luận văn, đối tƣợng, phạm vi nghiên cứu
Mục tiêu chính mà luận văn hƣớng tới là:
Tìm hiểu ba cơ chế đảm bảo tin cậy cho các các giao dịch điện tử của mật mã
khóa công khai
- Xác thực: Chữ ký điện tử đảm bảo chứng thực ngƣời ký, ngƣời tham gia giao
dịch chính là ngƣời xƣng danh và nhờ vào chữ ký điện tử cùng với tem thời gian họ
không thể chối cãi chữ ký đó không phải là của họ, các giao dịch, các văn bản điện
tử đó không phải do họ gửi hoặc nhận, khiến một trong các bên giao dịch không thể
phủ nhận đƣợc nội dung đã giao dịch;
- Toàn vẹn dữ liệu: Đảm bảo cho dữ liệu, tài liệu, văn bản điện tử không thể bị
sửa đổi một cách bất hợp pháp;
- Bảo mật: Bảo đảm rằng chỉ có ngƣời nhận hợp pháp mới có khả năng đọc
đƣợc nội dung thông tin;
Từ đó xây dựng mô hình ứng dụng vào việc bảo mật cơ sở dữ liệu.
Tóm tắt cô đọng các luận điểm cơ bản và đóng góp mới của tác giả
Trong phạm vi luận văn, tôi chỉ đề cập đến những vấn đề cơ bản về PKI dƣới
góc độ công nghệ, những khía cạnh chính khi nghiên cứu phát triển các hệ thống
PKI, từ đó áp dụng vào bảo mật cho cơ sở dữ liệu vì đây là một nhu cầu rất bức
thiết của chúng ta. Các nội dung chính trình bày gồm :
-

Tổng quan về mật mã khóa công khai

-

Hạ tầng cơ sở mật mã khoá công khai PKI

o Các thành phần của PKI

o Các cách thức quản lý và phân phối khoá công khai trong PKI
8


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

o Chứng chỉ khoá công khai
o Các chức năng của PKI
o Cấu trúc PKI
o Các yêu cầu về PKI
o Ban hành các luật về PKI
-

Ứng dụng PKI cho bảo mật cơ sở dữ liệu trong các hệ thống ứng dụng.

Phƣơng pháp nghiên cứu
Dựa trên các tài liệu, các văn bản và cơ sở lý thuyết từ đó xây dựng mô hình ứng
dụng trong thực tế

9


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

CHƢƠNG 1 LÝ THUYẾT CHUNG VỀ MẬT MÃ KHÓA CÔNG KHAI
Để hiểu đƣợc về hạ tầng cơ sở mật mã khóa công khai, chúng ta cần tìm hiểu
một số kiến thức sơ lƣợc về mật mã khoá công khai, chữ ký số.
Khái niệm mật mã khoá công khai nảy sinh khi giải quyết hai vấn đề khó khăn
trong mã hoá đối xứng, đó là vấn đề phân phối khoá và chữ ký số.
Nhƣ chúng ta đã biết, việc phân phối khoá trong mã hoá đối xứng yêu cầu hai

bên liên lạc phải:
Dùng chung một khoá đƣợc phân phối theo cách nào đó; hoặc:
Sử dụng một trung tâm phân phối khoá.
Whitfield Diffie, một trong những ngƣời đã phát minh ra mật mã khoá công khai
(cùng với Martin Hellman, trƣờng Đại học Stanford) đã suy luận và cho rằng, yêu
cầu thứ hai phủ nhận bản chất của mật mã. Bản chất đó là đảm bảo tính bí mật trong
liên lạc. Khó có thể tồn tại các hệ thống mật mã không thể phá đƣợc nếu ngƣời sử
dụng của các hệ thống này bắt buộc phải dùng chung các khoá của một trung tâm
phân phối khoá (KDC), lý do là trung tâm này có thể để lộ khoá.
Vấn đề thứ hai mà ông đặt ra là "chữ ký số". Nếu việc sử dụng mật mã trở nên
phổ biến, không chỉ trong lĩnh vực quân sự mà còn đƣợc sử dụng cho các mục đích
thƣơng mại và cá nhân, thì các thông báo và tài liệu điện tử cần có các chữ ký và
chúng có hiệu lực tƣơng tự nhƣ các chữ ký trên giấy tờ.
1.1 CÁC HỆ THỐNG CHUNG VỀ MẬT MÃ KHÓA CÔNG KHAI
Các thuật toán khoá công khai sử dụng một khoá để mã hoá và một khoá khác
để giải mã (tạo thành một cặp khoá). Chúng có tính chất quan trọng sau đây:
Không thể xác định đƣợc khoá giải mã nếu chỉ căn cứ vào các thông tin về
thuật toán và khoá mã hoá.
Một số thuật toán, chẳng hạn nhƣ RSA, cũng có tính chất sau:
Một trong hai khoá đƣợc sử dụng để mã hoá, khoá còn lại đƣợc sử dụng để
giải mã.

10


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Vòng khóa
công khai
của Alice

Joy

Ted
Mike

Bob

Khoá riêng
của Bob

Khóa công khai của
Bob

Bản mã truyền
Đầu vào
bản rõ

Thuật toán
giải mã

Thuật toán mã
hoá

Đầu ra
bản rõ

(a) Mã hoá

Vòng khoá
công khai

của Bob

Joy
Ted
Mike

Alice

Khoá riêng
của Alice

Khoá công
khai của Alice

Bản mã đƣợc
truyền đi

Đầu vào
bản rõ

Thuật toán
mã hoá

Thuật toán
giải mã

Đầu ra
bản rõ

(b) Xác thực


Hình 1.1 minh hoạ quá trình mã hoá khoá công khai.
Các bƣớc cơ bản gồm:
1. Mỗi thành viên sinh ra một cặp khóa, cặp khoá này đƣợc sử dụng để mã hoá
và giải mã các thông báo .
2. Mỗi thành viên công bố khóa mã hoá của mình bằng cách đặt khoá này vào
một địa chỉ đƣợc công bố công khai. Đây chính là khoá công khai. Khoá cùng cặp
đƣợc giữ bí mật.
3. Nếu A muốn gửi cho B một thông báo, A mã hoá thông báo bằng khoá công
khai của B.
11


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

4. Khi B nhận đƣợc thông báo, B giải mã thông báo bằng khoá riêng của B.
Không một ngƣời nhận nào khác có thể giải mã thông báo, bởi vì chỉ có B mới biết
khoá riêng của mình.
Với cách giải quyết này, tất cả các thành viên tham gia truyền thông đều có thể
có đƣợc các khoá công khai. Khoá riêng của mỗi thành viên đƣợc giữ bí mật. Quá
trình liên lạc chỉ an toàn chừng nào khoá riêng còn đƣợc giữ bí mật. Mỗi thành viên
có thể thay đổi các khoá riêng của mình bất cứ lúc nào, đồng thời công bố các khoá
công khai cùng cặp để thay thế khoá công khai cũ.
Hệ mật mã khóa bí mật (hệ mật mã

Hệ mật mã khoá công khai (hệ

đối xứng)

mật mã phi đối xứng)


Các yêu cầu khi sử dụng

Các yêu cầu khi sử dụng

Quá trình mã hoá và giải mã sử dụng

Một thuật toán sử dụng một cặp khoá

cùng một thuật toán với cùng một khoá.

khi mã hoá và giải mã, một khoá đƣợc

Ngƣời gửi và ngƣời nhận phải sử sử dụng khi mã hóa, khoá còn lại đƣợc
sử dụng khi giải mã.

dụng chung thuật toán và khoá.

Ngƣời gửi và ngƣời nhận, mỗi ngƣời
có một khoá trong cặp khoá.
Các yêu cầu an toàn

Các yêu cầu an toàn

Khóa phải đƣợc giữ bí mật

Một trong hai khóa phải đƣợc giữ bí

Không thể giải mã đƣợc thông báo mật.
nếu không có các thông tin có giá trị


Không thể giải mã đƣợc thông báo
nếu không có các thông tin có giá trị

khác.

Các thông tin về thuật toán, các mẫu khác.
bản mã không đủ để xác định khoá.

Các thông tin về thuật toán, một
trong các khoá và các mẫu bản mã
không đủ để xác định khoá còn lại.

Bảng 1.1 Hệ mật mã khoá công khai và đối xứng

12


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Bảng 1.1 trình bày một số đặc điểm quan trọng của các hệ mật mã khoá công
khai và hệ mật mã khoá đối xứng. Để phân biệt chúng, ngƣời ta gọi khoá đƣợc sử
dụng trong hệ mật mã đối xứng là khoá bí mật. Hai khoá dùng trong hệ mật mã
khoá công khai là khoá công khai và khoá riêng.
Chúng ta xem xét chi tiết các yếu tố cần thiết trong lƣợc đồ hệ mật mã khoá
công khai (hình 1.2).
Nguồn A đƣa ra một thông báo rõ và bản rõ của thông báo là X = [X 1, X2,...,XM].

Các phần tử Xi (i = 1†M) của X là các chữ cái trong bảng chữ cái hữu hạn nào


đó. A dự định gửi thông báo cho đích B. B sinh ra một cặp khoá là khoá công khai
KUb, khoá riêng KRb. Chỉ có B biết KRb, còn KUb đƣợc công bố công khai, do vậy
A có thể có đƣợc khoá công khai này
Phân
tích mã
Nguồn A

Nguồn của
thông báo

X^ (X ƣớc lƣợng)
KRb^(KRb ƣớc lƣợng)

Đích B

Y

X

X
Đích

Giải mã

Mã hoá

KRb

KUb
Nguồn

cặp
khoá

Hình 1.2 Hệ khóa công khai: Bí mật
Với đầu vào là thông báo X và khoá mã hoá KUb, A tạo ra một bản mã Y = [Y1,
Y2 , ..., YN ] với Y = E KUb(X).
Ngƣời nhận hợp lệ (ngƣời sở hữu khoá riêng) thu đƣợc X, qua phép biến đổi
ngƣợc X = DKRb(Y).

13


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Đối phƣơng (có thể có đƣợc Y và KUb nhƣng không có KRb hoặc X) phải tìm
cách khôi phục lại X và/hoặc KRb. Giả sử rằng, anh ta có các thông tin về thuật toán
mã hoá (E) và giải mã (D), anh ta có thể khôi phục thông báo X, bằng cách sinh ra
một bản rõ X ƣớc lƣợng. Tuy nhiên, để đọc đƣợc các thông báo mới, đối phƣơng
phải khôi phục đƣợc KRb bằng cách sinh ra một KRb ƣớc lƣợng.
Chúng ta đã biết, một trong hai khoá trong cặp khoá có thể đƣợc sử dụng để mã
hoá, khoá còn lại đƣợc sử dụng để giải mã. Điều này cho phép thực hiện một lƣợc
đồ mã hơi khác một chút. Lƣợc đồ đƣợc minh hoạ trong hình 1.2 cung cấp tính bí
mật. Hình 1.1b và 1.3 minh hoạ việc sử dụng mật mã khoá công khai cho xác thực:
Y = EKRa(X)
X = DKUa(Y)
Phân
tích mã

KRa ^(KRa ƣớc lƣợng)


Nguồn A

Nguồn của
thông báo

X

Đích B

Mã hoá

KRa

Y

Giải mã

X
Đích

KUa

Nguồn
cặp
khoá

Hình 1.3 Hệ mật khoá công khai: Xác thực

Trong trƣờng hợp này, A chuẩn bị một thông báo để gửi cho B và mã hoá thông
báo bằng khoá riêng của A trƣớc khi truyền đi. B có thể giải mã thông báo bằng

khoá công khai của A. Thông báo đƣợc mã hoá bằng khoá riêng của A nên có thể
xác định chỉ có A là ngƣời tạo ra thông báo. Do vậy, toàn bộ thông báo mã hoá
14


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

đƣợc sử dụng nhƣ một chữ ký số. Hơn nữa, không thể sửa đổi thông báo nếu không
có khoá riêng của A, chính vì vậy thông báo đƣợc xác thực cả nguồn gốc lẫn tính
toàn vẹn dữ liệu.
Trong lƣợc đồ trƣớc, toàn bộ thông báo đƣợc mã hoá, nó đòi hỏi khả năng lƣu
giữ lớn. Mỗi tài liệu phải đƣợc lƣu giữ ở dạng rõ. Bản sao đƣợc lƣu giữ ở dạng mã,
do vậy chúng ta có thể kiểm tra đƣợc nguồn gốc và các nội dung trong trƣờng hợp
tranh chấp. Một cách hiệu quả hơn để có đƣợc các kết quả nhƣ trên là mã hoá một
khối nhỏ các bit. Khối này đƣợc gọi là dấu xác thực. Nó phải có tính chất là mọi
thay đổi trên tài liệu dẫn đến sự thay đổi của dấu xác thực. Nếu dấu xác thực đƣợc
mã hoá bằng khoá riêng của ngƣời gửi, nó đƣợc sử dụng nhƣ một chữ ký. Chữ ký
đƣợc sử dụng để kiểm tra nguồn gốc, nội dung và trình tự.
Việc sử dụng lƣợc đồ khoá công khai có thể đảm bảo tính xác thực và bí mật
(hình 1.4):
Z = EKUb [EKRa(X)]
X = DKUa [DKRb(Z)]
Nguồn A

Nguồn
của XX
Mã hoá
thông
báo


KRa

Đích B

Y

Z
Mã hoá

KUa

Giải mã

KUb

Cặp
khoá
của
ngƣời
gửi

Y

Giải mã

X Đích
của
thông
báo


KRb

Cặp
khoá của
ngƣời
nhận

Hình 1.4 Hệ mật khoá công khai: Bí mật và xác thực

15


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Trƣớc hết, chúng ta mã hoá một thông báo bằng khoá riêng của ngƣời gửi, đƣa
ra một chữ ký số. Tiếp theo, mã hoá một lần nữa bằng khoá công khai của ngƣời
nhận. Chỉ có ngƣời nhận hợp pháp mới giải mã đƣợc bản mã cuối cùng này vì anh
ta có khoá riêng cùng cặp. Nhƣ vậy sẽ đảm bảo đƣợc tính bí mật. Khó khăn của
biện pháp này là thuật toán khoá công khai, nó thực sự phức tạp, phải tiến hành 4
lần (chứ không phải là 2 lần) cho mỗi cuộc truyền thông .
1.2 CÁC ỨNG DỤNG HỆ MẬT MÃ KHOÁ CÔNG KHAI
Trƣớc tiên, chúng ta cần làm rõ một khía cạnh của các hệ thống mật mã khoá
công khai. Việc sử dụng một kiểu thuật toán mật mã với 2 khoá (một khoá riêng,
một khoá công khai) là đặc trƣng của các hệ thống khoá công khai.
Tuỳ thuộc vào ứng dụng, ngƣời gửi sử dụng khoá riêng của ngƣời gửi hoặc khoá
công khai của ngƣời nhận, hoặc cả hai.
Nói rộng hơn, chúng ta có thể phân loại việc sử dụng hệ mật khoá công khai
thành 3 loại:
1. Mã hoá/giải mã: Ngƣời gửi mã hoá một thông báo bằng khoá công khai của
ngƣời nhận.

2. Chữ ký số: Ngƣời gửi "ký" thông báo bằng khoá riêng của mình. Quá trình ký
đƣợc thực hiện nhờ dùng một thuật toán mã đối với thông báo hoặc một khối dữ
liệu nhỏ.
3. Trao đổi khoá: Hai thành viên trao đổi khoá phiên. Có một vài hƣớng giải
quyết khác nhau, cần đến một (hoặc nhiều) khoá riêng của một hoặc hai thành viên.
Bảng 1.2 Các ứng dụng đƣợc các thuật toán hỗ trợ
Thuật toán

Mã hoá/Giải

Chữ ký số



Trao đổi
khoá

RSA







Diffie-

Không

Không




Hellman

16


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

DSS

Không



Không

Một số thuật toán phù hợp cho tất cả các ứng dụng, còn một số thuật toán khác
chỉ đƣợc sử dụng cho một hoặc hai ứng dụng của chúng.
1.3 CÁC YÊU CẦU ĐỐI VỚI HỆ MẬT MÃ KHÓA CÔNG KHAI
Các ứng dụng hệ mật minh hoạ trong hình 1.2, 1.3 phụ thuộc vào một thuật toán
mã với hai khoá cùng cặp. Diffie và Hellman đƣa ra các điều kiện mà các thuật toán
trên phải đáp ứng nhƣ sau:
1. Ngƣời nhận B có thể dễ dàng sinh ra đƣợc một cặp khoá (khoá công khai KU b
và khoá riêng KRb).
2. Ngƣời gửi A dễ dàng biết đƣợc khoá công khai của ngƣời nhận, mã hoá thông
báo M và tạo ra một bản mã tƣơng ứng:
C = EKUb(M)
Ngƣời nhận B dễ dàng giải mã đƣợc bản mã bằng cách sử dụng khoá riêng của

mình để khôi phục lại thông báo ban đầu.
M = DKRb(C) = DKRb[EKUb(M)]
4. Đối phƣơng khó có thể xác định đƣợc khoá riêng KRb, mặc dù biết khoá công
khai KUb.
5. Đối phƣơng khó có thể khôi phục lại thông báo M ban đầu dù biết khoá công
khai KUb và bản mã C.
Chúng ta có thể bổ sung thêm yêu cầu thứ 6. Mặc dù nó hữu ích nhƣng nó
không cần thiết cho tất cả các ứng dụng khoá công khai .
6. Các hàm mã hóa và giải mã có thể đƣợc áp dụng nhƣ sau:
M = EKUb[DKRb(M)]
Ở đây có một vài yêu cầu khắt khe (đã kiểm nghiệm trong thực tế). Ví dụ, các
yêu cầu cần đáp ứng hàm cửa sập một chiều. Hàm một chiều là một hàm đơn trị hai
chiều, rất dễ dàng tính toán hàm nhƣng tính toán hàm nghịch đảo rất khó.
Y = f(X) dễ dàng
X = f -1(Y) không thể

17


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Chúng ta tiếp tục với định nghĩa hàm cửa sập một chiều, nó dễ dàng tính toán
theo một chiều, khó có thể tính toán theo chiều kia trừ khi biết thêm thông tin nào
đó. Với thông tin này, có thể tính toán đƣợc hàm nghịch đảo trong thời gian đa thức.
Tóm lại, hàm cửa sập một chiều là họ các hàm nghịch đảo fk, sao cho:
Y = fk (X)

dễ dàng, nếu biết k và X

X = f -1k(Y) dễ dàng, nếu biết k và Y

X = f -1k(Y) khó có thể, nếu biết Y nhƣng không biết k
Do vậy, việc phát triển một lƣợc đồ khoá công khai thiết thực phụ thuộc vào
việc tìm ra một hàm cửa sập một chiều phù hợp.
1.4 HỆ MẬT RSA
Hầu hết các thuật toán mã sử dụng khoá công khai và khoá riêng đều dựa trên
một đặc tính rất quan trọng của các số nguyên tố lớn, đó là một khi nhân chúng với
nhau để tạo ra một số mới, chúng ta không thể hoặc mất rất nhiều thời gian để có
thể xác định đƣợc số nào trong hai số nguyên tố là số mới và là số lớn hơn. Trong
luận văn này tôi xin đƣợc trình bày về một hệ mật đƣợc sử dụng khá phổ biến là hệ
mật RSA.
Bài toán đặt ra : Bob muốn gửi cho Alice một thông tin mật mà Bob muốn duy
nhất Alice có thể đọc đƣợc. Để làm đƣợc điều này, Alice gửi cho Bob một chiếc
hộp có khóa đã mở và giữ lại chìa khóa. Bob nhận chiếc hộp, cho vào đó một tờ
giấy viết thƣ bình thƣờng và khóa lại (lúc này ngay cả Bob cũng không thể đọc lại
hay sửa thông tin trong thƣ đƣợc nữa). Sau đó Bob gửi chiếc hộp lại cho Alice.
Alice mở hộp với chìa khóa của mình và đọc thông tin trong thƣ. Trong ví dụ này,
chiếc hộp với khóa mở đóng vai trò khóa công khai, chiếc chìa khóa chính là khóa
bí mật.
1.4.1 Tạo khoá
Giả sử Alice và Bob cần trao đổi thông tin bí mật thông qua một kênh không an
toàn (ví dụ nhƣ Internet). Với thuật toán RSA, Alice đầu tiên cần tạo ra cho mình
cặp khóa gồm khóa công khai và khóa bí mật theo các bƣớc sau:
Chọn 2 số nguyên tố lớn
Tính:



với

, lựa chọn ngẫu nhiên và độc lập.


.
18


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

Tính:

.

Chọn một số tự nhiên e sao cho
với

và là số nguyên tố cùng nhau

.
Tính: d sao cho

.

Các số nguyên tố thƣờng đƣợc chọn bằng phƣơng pháp thử xác suất.
Các bƣớc 4 và 5 có thể đƣợc thực hiện bằng thuật toán Euclid mở rộng(xem
thêm: số học môđun).
Bƣớc 5 có thể viết cách khác: Tìm số tự nhiên

sao cho

cũng là số tự nhiên. Khi đó sử dụng giá trị
.

Từ bƣớc 3, PKCS#1 v2.1 sử dụng

thay cho

).
Khóa công khai bao gồm:
n, môđun, và
e, số mũ công khai (cũng gọi là số mũ mã hóa).
Khóa bí mật bao gồm:
n, môđun, xuất hiện cả trong khóa công khai và khóa bí mật, và
d, số mũ bí mật (cũng gọi là số mũ giải mã).
Một dạng khác của khóa bí mật bao gồm:
p and q, hai số nguyên tố chọn ban đầu,
d mod (p-1) và d mod (q-1) (thƣờng đƣợc gọi là dmp1 và dmq1),
(1/q) mod p (thƣờng đƣợc gọi là iqmp)
Dạng này cho phép thực hiện giải mã và ký nhanh hơn với việc sử dụng Định lý
số dƣ Trung quốc (tiếng Anh:Chinese Remainder Theorem - CRT). Ở dạng này, tất
cả thành phần của khóa bí mật phải đƣợc giữ bí mật.
Alice gửi khóa công khai cho Bob, và giữ bí mật khóa cá nhân của mình. Ở đây,
p và q giữ vai trò rất quan trọng. Chúng là các phân tố của n và cho phép tính d khi

19


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

biết e. Nếu không sử dụng dạng sau của khóa bí mật (dạng CRT) thì p và q sẽ đƣợc
xóa ngay sau khi thực hiện xong quá trình tạo khóa.
1.4.2 Mã hóa
Giả sử Bob muốn gửi đoạn thông tin M cho Alice. Đầu tiên Bob chuyển M thành

một số m < n theo một hàm có thể đảo ngƣợc (từ m có thể xác định lại M) đƣợc thỏa
thuận trƣớc.
Lúc này Bob có m và biết n cũng nhƣ e do Alice gửi. Bob sẽ tính c là bản mã
hóa của m theo công thức:
Hàm trên có thể tính dễ dàng sử dụng phƣơng pháp tính hàm mũ (môđun) bằng
phƣơng pháp bình phƣơng (exponentiation by squaring). Cuối cùng Bob gửi c cho
Alice.
1.4.3 Giải mã
Alice nhận c từ Bob và biết khóa bí mật d. Alice có thể tìm đƣợc m từ c theo
công thức sau:
Biết m, Alice tìm lại M theo phƣơng pháp đã thỏa thuận trƣớc. Quá trình giải mã
hoạt động vì ta có
.
Do ed ≡ 1 (mod p-1) và ed ≡ 1 (mod q-1), (theo Định lý Fermat nhỏ) nên:



Do p và q là hai số nguyên tố cùng nhau, áp dụng định lý số dƣ Trung quốc, ta
có:
.
hay:
.

20


PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

1.4.4 Độ an toàn
Độ an toàn của hệ thống RSA dựa trên 2 vấn đề của toán học: bài toán phân tích

ra thừa số nguyên tố các số nguyên lớn và bài toán RSA. Nếu 2 bài toán trên là khó
(không tìm đƣợc thuật toán hiệu quả để giải chúng) thì không thể thực hiện đƣợc
việc phá mã toàn bộ đối với RSA. Phá mã một phần phải đƣợc ngăn chặn bằng các
phƣơng pháp chuyển đổi bản rõ an toàn.
Bài toán RSA là bài toán tính căn bậc e môđun n (với n là hợp số): tìm số m sao
cho me=c mod n, trong đó (e, n) chính là khóa công khai và c là bản mã. Hiện nay
phƣơng pháp triển vọng nhất giải bài toán này là phân tích n ra thừa số nguyên tố.
Khi thực hiện đƣợc điều này, kẻ tấn công sẽ tìm ra số mũ bí mật d từ khóa công
khai và có thể giải mã theo đúng quy trình của thuật toán. Nếu kẻ tấn công tìm đƣợc
2 số nguyên tố p và q sao cho: n = pq thì có thể dễ dàng tìm đƣợc giá trị (p-1)(q-1)
và qua đó xác định d từ e. Chƣa có một phƣơng pháp nào đƣợc tìm ra trên máy tính
để giải bài toán này trong thời gian đa thức (polynomial-time). Tuy nhiên ngƣời ta
cũng chƣa chứng minh đƣợc điều ngƣợc lại (sự không tồn tại của thuật toán)
1.5 CHỮ KÝ SỐ
Chữ ký điện tử là dãy các ký hiệu, âm thanh hay các hình thức điện tử khác
đƣợc tạo lập từ thông tin cá nhân của ngƣời ký bằng công nghệ, thuật toán tích hợp
với các phƣơng tiện điện tử. Nó đảm bảo tính tƣơng ứng duy nhất với ngƣời ký.
Hiện có nhiều công nghệ để tạo chữ ký điện tử nhƣ: sử dụng đặc tính của vân tay,
của giác mạc mắt, bản đồ tĩnh mạch bàn tay (ven), ADN, các yếu tố sinh học khác
của ngƣời ký, chữ ký số dựa trên công nghệ mật mã... Trên thế giới hiện nay, phổ
biến nhất là chữ ký số. Việt Nam trong tƣơng lai gần cũng sử dụng công nghệ này
Trong cách thức truyền thống, thông báo đƣợc truyền đi trong giao dịch thƣờng
dƣới dạng các văn bản viết tay hoặc đánh máy đƣợc kèm thêm chữ ký (viết tay) của
ngƣời gửi ở bên dƣới văn bản. Chữ ký đó là bằng chứng xác nhận thông báo đúng là
của ngƣời ký, tức là của chủ thể giao dịch, và nếu tờ giấy mang văn bản không bị
cắt, dán, tẩy, xoá, thì tính toàn vẹn của thông báo cũng đƣợc chứng thực bởi chữ ký
đó. Chữ ký viết tay có nhiều ƣu điểm quen thuộc nhƣ dễ kiểm thử, không sao chép

21



PKI và kỹ thuật đảm bảo an toàn cơ sở dữ liệu

đƣợc, chữ ký của một ngƣời là giống nhau trên nhiều văn bản, nhƣng mỗi chữ ký
gắn liền với một văn bản cụ thể, v.v...
Khi chuyển sang cách thức truyền tin bằng phƣơng tiện hiện đại, các thông báo
đƣợc truyền đi trên các mạng truyền tin số hoá, bản thân các thông báo cũng đƣợc
biểu diễn dƣới dạng số hoá, tức dƣới dạng các đãy bit nhị phân, “chữ ký” nếu có
cũng ở dƣới dạng các dãy bit, thì các mối quan hệ tự nhiên kể trên không còn giữ
đƣợc nữa. Chẳng hạn, “chữ ký” của một ngƣời gửi trên những văn bản khác nhau
phải thể hiện đƣợc sự gắn kết trách nhiệm của ngƣời gửi đối với từng văn bản đó thì
tất yếu phải khác nhau chứ không thể là những đoạn bit giống nhau nhƣ các chữ ký
giống nhau trên các văn bản thông thƣờng. Chữ ký viết tay có thể đƣợc kiểm thử
bằng cách so sánh với nguyên mẫu, nhƣng “chữ ký” điện tử thì không thể có
“nguyên mẫu” để mà so sánh, việc kiểm thử phải đƣợc thực hiện bằng những kỹ
thuật đặc biệt. Một vấn đề nữa là việc sao chép một văn bản cùng chữ ký. Nếu là
văn bản cùng chữ ký viết tay thì dễ phân biệt bản gốc với bản sao. Còn với văn bản
điện tử cùng chữ ký điện tử thì có thể nhân bản sao chép tuỳ thích, khó mà phân biệt
đƣợc bản gốc với bản sao, cho nên nguy cơ dùng lại nhiều lần là có thực, do đó cần
có những biện pháp để tránh nguy cơ này.
Một “chữ ký”, nếu muốn thể hiện đƣợc trách nhiệm của ngƣời gửi trên toàn văn
bản, thì phải mang đƣợc một chút gắn bó nào đó với từng bit thông tin của văn bản,
vì vậy, theo hình dung ban đầu, độ dài của chữ ký cũng phải dài theo độ dài của văn
bản; để có đƣợc “chữ ký ngắn” nhƣ trong trƣờng hợp viết tay ngƣời ta phải dùng
một kỹ thuật riêng gọi là hàm băm mà ta sẽ trình bày ở phần dƣới.
Ngoài ra, để chống giả mạo chữ ký “số” thì thứ nhất thuật toán “ký số” phải là
“không nhìn thấy” bằng mắt thƣờng trên bức điện. Thứ hai là vấn đề về kiểm tra.
Chữ ký thông thƣờng đƣợc kiểm tra bằng cách so sánh nó với chữ ký đúng. Ví dụ,
ai đó ký một tấm séc để mua hàng, ngƣời bán hàng phải so sánh chữ ký trên mảnh
giấy với chữ ký nằm ở mặt sau của thẻ tín dụng để kiểm tra. Dĩ nhiên, đây không

phải là phƣơng pháp an toàn vì ngƣời ta có thể giả mạo. Với chữ ký “số”, ngƣời ta
có thể kiểm tra nhờ dùng một thuật toán kiểm tra công khai. nhƣ vậy, bất kỳ ai cũng

22


×