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

Nghiên cứu cơ sở hạ tầng khóa công khai và xây dựng cơ quan chứng thực điện tử cho một đơn vị vừa và nhỏ

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 (28.04 MB, 75 trang )

Đ Ạ I H Ọ C Q U Ố C G IA H À N Ộ I

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ

Bùi Xuân Hương

NGHIÊN CỨU C ơ SỞ HẠ TẦNG KHÓA CÔNG KHAI
VÀ XÂY DỰNG C ơ QUAN CHÚNG THựC ĐIỆN TỬ
CHO MỘT ĐƠN VỊ VỪA VÀ NHỎ

N g à n h : C ô n g n g h ệ Đ iệ n tử - V iễ n th ô n g
C h u y ê n n g à n h : K ỹ th u â t vô tu y ế n đ iệ n t ử v à T h ô n g tin liê n lạc
M ã s ố :2 .0 7 .0 0

LUẬN V Ă N T H Ạ C s ĩ

NGƯỜI HƯỚNG D Ẫ N K H O A HỌC:

P G S .T S: V ư ơ n g Đ ạ o V y

Hà Nội - 2007


M ỤC LỤC
CÁC THUẬT NGỮ VIẾT T Á T .................................................................................................3
MỞ Đ Ầ U ...................................................................................................................................... 4
Chương 1. TỔNG QUAN VỀ MÃ H ÓA................................................................................ 6
1.1. GIỚI THIỆU VỀ MÃ H Ó A ............................................................................................... 6
xứng

...................................................................................... 6



1 .1 .1 .

M ã h óa dùng kh óa đối

l .1 .2 .

M ã h ó a b ấ t đ ố i x í ừ i g ..................................................................................................... 9

1.2. MÃ HÓA DÙNG KHÓA CÔNG K H A I........................................................................ 11
7.2.7.

N g u y ê n l ý c h u n g c ủ a h ệ t h ố n g m ã h ó a d ù n g k h ó a c ô n g k h a i .......................... 1 1

1 .2 .2 .

C ấ u trú c m ộ t h ệ th ố n g m ậ t m ã c ó k h ó a c ô n g k h a i

1 .2 .3 .

M ật m ã có k h óa côn g kh ai R S A

1 .2 .4 .

T h u ậ t toán D H

............................................ 1 2

.............................................................................. 1 5


............................................................................................................ 1 9

1.3.CHỮKÝ S Ố ........................................................................................................................20
..................................................... 2 1

ỉ .3 .1 .

C h ữ ký sô 'sử d ụ n g m ật m ã c ó k h ó a cô n g k h a i

1 .3 .2 .

C h ữ ký s ố sử d ụ n g th u ậ t to á n R S A

..........................................................................22

1 .3 .3 .

C h ữ kỷ s ố s ử d ụ n g th u ậ t to á n D S S

.......................................................................... 2 3

1.4.

CHÚNG CHỈ SỐ................................................................................................ 26

1 .4 .1 .

G i ớ i t h i ệ u v ề C h ứ n g c h ỉ s ố . ...................................................................................... 2 6

1 .4 .2 .


Q u ả n l ý C h ứ n g c h ỉ s ố . ................................................................................................27

1.5. KHUÔN DẠNG CHÚNG CHỈ X .5 0 9 ........................................................................... 31
7 .5 ./.

K hu ôn d ạn g chứ n g c h ỉ c ơ b ả n

1 .5 .2 .

K h u ô n d ạ n g p h iê n b ả n 3

ỉ .5.3.

.................................................................................3 1

.......................................................................................... 3 3

CRL theo chuẩn X509............................................................................................36

CHƯONG 2 - C ơ SỞ HẠ TANG k h ó a c ô n g k h a i ...................................................38
2.1 CÁC THÀNH PHẦN c ơ BẢN CỦA PK I................................................................. 38
2.2 CẤU TRÚC HỆ THỐNG P K I ......................................................................................39
2 .2 .1

C ấ u trú c p h â n c ấ p d ạ n g c â y

2.2.2

C ấ u trú c p h â n


...................................................................................40

c ấ p d ạ n g c ẩ u n ô i ............................................................................42

2.3 CÁC CHÍNH SÁCH CỦA CHÚNG CHỈ................................................................... 44
2 .3 .1

K h á i n iệ m

c h í n h s á c h C h ứ n g C h ỉ ........................................................................... 4 5

Trang 1


2 .3 .2

C á c n ộ i d u n g c ủ a m ộ t c h í n h s á c h c h ứ n g c h ỉ .................................................... 4 6

CHƯƠNG

3. XÂY DỤNG CA CHO ĐƠN VỊ VỪA VÀ N H Ỏ ....................................48

3.1 GIỚI TH IỆU CHƯ N G .................................................................................................... 48
3 .1 .1

T ì n h h ì n h t r i ể n k h a i c h ứ n g t h ự c đ i ệ n t ừ t r ê n t h ế g i ớ i ..................................... 4 8

3 .1 .2


T ìn h h ìn h t r iể n k h a i c h ử n g th ự c đ iệ n tử t ạ i v iệ t n a m

3 .1 .3

T iế p c ậ n v iệ c tr iể n k h a i c h íù ig th ự c đ iệ n tử t ạ i m ộ t đ ơ n v ị c ụ t h ể

......................................4 9
............. 5 0

3.2 TRIỂN KHAI CA CHO MỘT ĐƠN VỊ VỪA VÀ NHỎ...........................................52
t í c h h ệ t h ố n g h i ệ n t ạ i ................................................................................... 5 2

3 .2 .1

P hân

3 .2 .2

T h iế t k ể h ệ t h ố n g

3 .2 .3

T ổn g qu an v ề O p en C A

3 .2 .4

C à i đ ặ t h ệ th ốn g

3 .2 .5


X â y d ự n g q u y tr ìn h v ậ n h à n h

3 .2 .6

X â y d ự n g c h ín h s á c h c h ứ n g c h ỉ

....................................................................................................... 5 4
............................................................................................. 5 8

......................................................................................................... 6 2
.................................................................................. 6 4
........................................................................... 6 5

3.3 KẾT QUẢ VÀ ĐÁNH G IÁ .......................................................................................... 68
3 .3 .1

K ế t q u ả c ủ a h ệ t h ố n g c h ứ n g t h ự c s ố . ................................................................. 6 8

3 .3 .2

Đ á n h g iá h ệ th ố n g c h ứ n g th ự c s ô 's ử d ụ n g O p e n C A

3 .3 .3

H ư ớ n g p h á t tr iể n

....................................... 7 1

..................................................................................................... 72


KẾT LUẬN..................................................................................................................................73
TÀI LIỆU THAM K H Ả O ........................................................................................................74

Trang 2


CÁC THUẬT NGỮ VIẾT TẮT
P K I: Viết tắt của cụm từ Public Key Infrastructure - hạ tầng khóa công khai. Trong
tài lieu này. nó được hiểu theo nghĩa hẹp là hạ tầng khóa công khai dựa trên nền các
chuẩn X.509 (đầy đủ là Internet X.509 Public Key Infrastructure)
C ertificate: Được hiểu là chứng chỉ số, chứng thư số, trong nhiều tài liệu được gọi
là chứng thư số (trong tài liệu này sẽ sử dụng chứng chỉ số, chứng thư số). Là một
thực thể thông tin (được lun trữ bằng các phương tiện điện tử thích hợp dưới dạng
điện tử). Certificate bao gồm m ột chuỗi khóa công khai (public key) và các thông tin
riêng khác của thực thể được chứng nhận (tên, địa chỉ, thời hạn sử dụng...). Được
cấp phát bởi duy nhất một CA (có chữ ký điện tử của CA trong certificate).
CA: Viết tắt của cụm từ Certificate of A uthority - Cơ quan chứng thực, là một cơ
quan (tổ chức) gồm có: một hoặc vài cá nhân có trách nhiệm, các thiết bị phần mềm,
phần cứng, các quy trình, quy định liên quan để có thể thực hiện việc cấp phát, quản
lý, húy bò các chứng nhận số.
RA: Viết tắt của cụm từ Registration of A uthority - C ơ quan đăng ký, là một cơ
quan (tổ chức) gồm có: m ột hoặc vài cá nhân có trách nhiệm , các thiết bị phần mềm,
phần cứng, các quy trình, quy định liên quan và các nguồn thông tin khác để có thể
xác minh được tính xác thực, chính đáng của việc xin cấp chứng nhận số của một
đối tượng nào đó. R A có nhiệm vụ tiếp nhận đăng ký xin cấp chứng nhận số, xác
minh và chuyển yêu cầu hợp lệ cho CA.
PK C S: Viết tắt của cụm từ Public-KeyCryptographyStandards, các chuẩn m ã hóa sử
dụng trong m ã hóa công khai

Trang 3



M Ở ĐẦU
H iệ n nay g ia o tiế p qua Inte rne t chủ yếu sử dụng g ia o thức T C P /IP . Đ â y là giao
thức cho phép các th ô n g tin được gửi từ m á y tín h này tới m á y tín h khác thông qua
m ộ t lo ạt các m áy tru n g gian hoặc các m ạng riê n g biệt. C h ín h điều này đã tạo cơ h ộ i
cho những "kẻ trộ m "c ô n g nghệ cao có thể thực hiện các hành động p h i pháp. Các
th ô n g tin tru yề n trên m ạng đều có thể bị nghe trộ m (E a ve sd ro p p in g ), g iả m ạo
(T a m p e rin g ), m ạo danh (Im p e rso n a tio n ) .v.v. Các biện pháp bảo m ật hiện nay,
chẳng hạn như dùng m ật khẩu, đều kh ô n g đảm bảo v ì có thể b ị nghe trộ m hoặc bị dò
ra nhanh chóng.
D o vậy, để bảo m ật, các th ô n g tin tru yề n trên In te rn e t ngày na y đều có xu
hướng được m ã hoá. Trước k h i truyề n qua m ạng In te rn e t, người gửi m ã hoá thông
tin , tro n g quá trìn h tru y ề n , dù có "chặn" được các thông tin này, kẻ trộ m cũng kh ô n g
thể đọc được vì b ị m ã hoá. K h i tớ i đích, người nhận sẽ sử d ụn g m ộ t cô n g cụ đặc b iệt
để g iả i mã. Phương pháp m ã hoá và hảo m ật phổ b iế n nhất đang được th ế g iớ i áp
dụng là chứng c h ỉ số (D ig ita l C e rtific a te ). V ớ i chúng c h ỉ số, người sử dụng có thể
m ã hoá th ô n g tin m ộ t cách hiệu quả, chống g iả m ạo (cho phép người nhận kiể m tra
thông tin có b ị th a y đ ổ i kh ô n g ), xác thực danh tính của người gửi. N g o à i ra chứng
ch ỉ số còn là bằng chứng g iú p chống c h ố i cãi nguồn gốc, ngăn chặn người gửi ch ố i
cãi nguồn gốc tà i liệ u m ìn h đã gửi.
M ộ t cơ sở hạ tầng khóa công kh a i - P K I (p u b lic k e y in fra s tru c tu re ) cho phép
người sử dụng của m ộ t m ạng công cộng k h ô n g bảo m ật, chẳng hạn như Inte rne t, có
thể trao đổi dữ liệ u m ộ t cách an toàn thông qua việc sử d ụn g m ộ t cặp m ã khoá công
khai và khóa b í m ật được cấp phát và sử dụng qua m ộ t nhà cung cấp chứng thực
được tín nhiệm . N ền tảng khoá công k h a i cung cấp m ộ t chứng c h ỉ số, dùng để xác
m in h m ộ t cá nhân hoặc tổ chức, và các d ịc h vụ danh m ụ c có thể lưu trữ và k h i cần
có thể thu h ồ i các chứng chỉ số. M ặ c dù các thành phần cơ bản của P K I đều được
phổ biến, nhưng m ộ t số nhà cung cấp đang m uốn đưa ra những chuẩn P K I riê n g


Trang 4


khác biệt. M ộ t tiê u chuẩn chung về P K I trên Internet cũng đang tro n g quá trình xây
dựng.
M ộ t cơ sở hạ tầng khoá công kh a i bao gồm :


M ộ t N hà cung cấp chứng thực số (C A ) chuyên cung cấp và xác m in h

các chứng chỉ số. M ột chứng chỉ bao gồm khoá côn g khai hoặc thông
tin về khoá công khai.


M ộ t nhà quản lý đăng k ý (R e g istra tio n A u th o rity (R A ) đóng vai trò như
người thẩm tra cho C A trước k h i m ộ t chứng ch ỉ số được cấp phát tới
người yêu cầu.



M ộ t hoặc nhiều danh m ục nơi các chứng ch ỉ số (vớ i khoá công khai cua
nó) được lưu giữ, phục vụ cho các nhu cầu tra cứu, lấ y khoá công khai
của đ ố i tác cần thực hiện giao d ịch chứng thực số.



M ột hệ thống quản lý chứng chỉ

Phạm v i n g h iê n cứu của đễ tà i bao gồm :



N g h iê n cứu cơ bản về cơ sở hạ tầng khóa công khai.



X â y dựng m ộ t C A dựa trên m ã nguồn m ở bao gồm các chức năng cơ
bản: X in đăng k ý m ộ t chứng c h ỉ số, gia hạn m ộ t chứng ch ỉ số, hủy m ột
chứng c h ỉ số.



sử dụng chứng c h ỉ s ố tr o n g m ã h õ a d ữ liệ u , tạ o c h ữ k ý đ iệ n tử.

Trang 5


Chương 1. TỔNG QUAN VỂ MÃ HÓA

1.1.

G IỚ I TH IỆ U V Ề M Ă H Ó A

K ể từ k h i c o n người b iế t cách liê n lạc với nhau, đã n ả y sinh vấn đề giữ b í m ật
th ô n g tin trao đ ổ i. Theo th ờ i gian các phương thức giữ b í m ậ t th ô n g tin đó đã được
phát triể n rất đa dạng. M ộ t tro n g những phương thức đó là việ c biến đ ổ i những
thông tin , k ý tự thành những k ý tự, th ô n g tin vô nghĩa. K h i người nhận nhận được
những th ô n g tin đó sẽ tiế n hành việ c biến đ ổ i ngược lạ i để thu được th ô n g tin có
nghĩa. Có thể phân lo ạ i việ c m ã hóa thành hai lo ạ i: M ã hóa đ ố i xứ ng và m ã hóa bất
đ ố i xứng (secret ke y và P u b lic ke y).


1.1.1. M ã hóa d ù n g k h ó a đ ô i xứ n g (m ã hóa đ ố i xứ ng).
M ã hóa là việc thực hiện chuyển dữ liệu có th ể đ ọ c được (plain text) sang dạng
không th ể nhận biết được khi không thực hiện việc giải mã. Phương thức m ã hóa đầu
tiên loài người ph át minh ra được gọi là m ã hóa có khóa đ ố i xứng, N ghĩa là dùng
m ột thuật toán kết hợp với m ột khóa nào đó chuyển đ ổ i m ột bản tin r õ sang bản tin
đ ã được m ã hóa. Việc khỏi phục d ữ liệu ẹô'c cũng sử dụng cùng m ột thuật toán và
cù n g m ột k h ó a . [8 ]

Pao-C hi là m ộ t người bán hàng cho m ộ t cô n g ty sản xu ấ t m á y in. A n h ấy bán
m áy in cho các nhà xuất bản, trường học. T ro n g d òn g sản phẩm anh ta bán bao gồm
m áy in m ớ i, các công cụ, các thành phần th a y thế, d ịc h vụ sửa chữa và đào tạo. H a i
tuần nữa là hết qu ý, và anh ta nhận được thư nhắc của G w en, p h ó g iá m đốc phụ
trách bán hàng, về ch ín h sách m ới cho việ c tín h g iá sản phẩm .
C hính sách này liệ t kê giá cho tấ t cả các sản phẩm của công ty , đồng thờ i cũng
c h ỉ ra giá thấp nhất m à người bán hàng được phép thỏa th u ậ n với kh á ch hàng. Trước
k ia họ dựa trên phần g iả m g iá trên tổ n g số kh á ch hàng đặt hàng. N hư ng hiện tạ i
người bán hàng được phép g iả m g iá n h iề u hơn thế.
Pao-C hi m u ố n hạn c h ế số người có thể b iế t được th ô n g tin này, nếu như m ộ t
khách hàng nào đó b iế t được ch ín h sách g iá này sẽ rất k h ó tro n g việ c thương lượng

Trang 6


g iá cả với họ. V ậ y Pao-Chi và G w en iàm sao giữ được bí m ật điéu này. H ọ có thể
chọn cách giữ th ô n g tin này khôn g lọ t ra k h ỏ i văn phòng của họ, hay đơn giản hơn
là Pao-Chi ghi nhớ những thông tin này. N hưng với hơn 20 trang g iấ y và khá phức
tap nèn kh ô n g thể ghi nhớ được.
Do đó P ao-chi giữ m ộ t bản copy tron g m áy tính xách tay của anh ta, nhưng rất
có thể anh ta sẽ làm m ấ t m áy tính xách tay của anh ta và người khác sẽ đọc được
những thông tin đó. D o đó để bảo vệ file này anh ta q uyế t đ ịn h thực hiện việc mã

hóa file đó. K h i m uốn đọc lạ i thông tin tron g file đó, Pao-C hi thực hiện việc giải mã
f ile đã m ã hóa bằng chương trìn h đã mã hóa, H ìn h 1.1.
N h im g có m ộ t vấn đề nảy sinh tro n g trường hợp này. N ếu như kẻ tấn công có
thể lấy được f ile m ã hóa, cũng chắc rằng sẽ lấ y được chương trìn h m ã hóa. D o đó kẻ
tấn còng cũng sẽ đọc được nội dung trong file đã m ã hóa bằng cách g iả i m ã file đã
m ã hóa bằng chương trìn h mã hóa đó.

To: Sales Reps
FROM: VP
RE: Pricing

]9% B8AcB
t&MOT 14-h
pSdMU(a#7

We're having
a slow third
(ỉv W

j'Hw

J

h
GO

(g) lÆerypi

o


Decrypt
Cancel

Plaintext file: 1SalcsMcmo.doc 1 Ciphcrtexl file: ịSalesM eino.cncị
To: Sales Reps

j9%B

'
1
1 second remaining

1

T

Hinh 1-1: Quá trình mã hóa đơn giản

Để g iả i q uyế t vấn đề này, chương trìn h m ã hóa sử dụng them m ộ t m ật mã trong
quá trìn h mã hóa. Các nhân tố đầu vào chương trìn h m ã hóa sẽ bao gồm file dữ liệ u
cần mã hòa cùng với kh ó a bảo mật. Để g iả i m ã f ile đã m ã hóa, Pao-C hi cũng cần sử
dụng cùng khóa k h i m ã hóa, H ìn h 1-2.

Trang 7


A i1......... Ị

To: Sales Reps
FROM VP

RL: Pricing

jV % B8AcB
t & M O r 14~h :

p$dM U(a#7

We’re having I
a slow third
quarter.


Kcv:|14S67(X)2S3

o

Encrypt

Cancel
Ciphertcxl file: I SalcsM cm o.cncI

Plaintext flic: 1Saic.sMcino.Ucicl

j (JW H

'lb: Sales Reps

r i i o í
F “
1 second remaining




Hinh 1-2: Quá írình mã hóa đơn giãn cô khóa bão vộ

Hệ th ố n g đơn giản vừa được m ô tả là m ộ t hệ thống m ã hóa đối xứng
s y m m e tric -k e y cryp to g ra p h y. Các thành phần cơ bản của m ộ t hệ thống m ã hóa đối
xứng bao g ồ m “ k h ó a ” và thuật toán m ã hóa,
Q ua v í dụ trên ta có thể they, M ã hóa sử dụng khóa đ ố i xứng là phương pháp
mã hóa dữ liệ u bằng cách sử dụng m ộ t khóa du y nhất cho cả hai quá trìn h m ã hóa và
giải mã. M ô h ìn h m ã hóa sử dụng khóa đ ổ i xứng được m ô tả tro n g H ìn h 1-3:
Thuậ; toán mô hòa

Bán ỹn mà
hóa
(ơử liệu đã
mã hóa)

Bân tin rõ
(dù liệu cẳr
mã hớa)

ìíi

11 ì

Khóa

I I
'I2

í 'I
'ã!
I> I
i&i
'11"|'
1
I Qi I

Khỏa

«ri
I I
I I
I I
I I

r T
Dtìr. úII mà
hóa
(dỡ liệu ỚS
frâ Ixia)

Bản Un rõ
(rtử t»Ại) giãi mâ)

Hình 1-3 Mô hình mã hóa dùng khóa đối xứng

Trang 8



Đ iể m yếu nhất của phương pháp m ã hóa này là ở quá trìn h quản lý và trao đổi
khóa. D o ch ỉ sử dụng m ộ t khóa du y nhất cho cả hai quá trìn h mã hóa và g iả i mã nên
người gửi và người nhận phải tìm cách thỏa thuận hoặc trao đ ổ i khóa với nhau m ột
cách an toàn trước k h i thực hiện các chức nâng m ã h óa /giải m ã tương ứng. Đ iề u này
khôn g phải là dễ dàng với m ột m ô i trường m ạng rộng lớn và thay đ ổ i liê n tục như
m ạng Internet. K h ó a được sử dụng để m ã hóa ở đây là m ộ t chuỗi dữ liệ u bất kỳ.
T u y nhiên phương pháp này có những ưu điểm nhất đ ịn h làm cho nó vẫn còn
được sử dụng được cho đến ngày nay như tốc độ m ã hóa cao hơn, k íc h thước dữ liệ u
khôn g bị thay đ ổ i nhiều so với phương pháp m ã hóa sử dụng khóa bất đối xứng.

1.1.2. M ã hóa bất đ ối xứng.
M ã hóa sử dụng khóa bất đ ố i xứng là phương pháp m ã hóa dữ liệ u bằng cách
sử dụng hai kh ó a cho hai m ục đích khác nhau: mã hóa, g iả i mã.
M ô hình m ã hóa sử dụng khóa bất đ ố i xứng được m ô tả như sau:

Krvóa công khai oùa
người nhận

Ç
C
o
ĨT
Ç
•<
D

Khỏa bí mật của nquòi
nhận


Thuảt toán giải mã

Hình 1-4 Mô hình mã hóa dùng khóa bát đối xứng
Trang 9


T ro n g m ô h ìn h trên, người nhận cần trao đổi với người gửi khóa công khai của
m ình để họ thực hiện việc m ã hóa. Người nhận sử dụng khóa bí m ật của m ình để
g iải m ã các th ô n g điệp đã được m ã hóa. K h ó a công khai và khóa b í m ật được sinh ra
cùng m ộ t thời đ iể m , bằng m ộ t thuật toán sinh khóa thích hợp. K h ó a công khai - như
tên g ọ i của nó - là công kh a i với tất cả m ọ i người có nhu cầu m ã hóa dữ liệ u để gửi
cho người nhận. K h ó a b í m ật được người nhận (người sở hữu) giữ bí m ật cho riêng

mình để giải mã.
Đ iể m yếu của phương pháp này là tốc độ m ã hóa chậm và dữ liệ u được mã hóa
thường có k íc h thước lớn hơn nhiều lần so với dữ liệ u ban đầu. T ro n g những ứng
dụng đ ò i hỏi vừa phải có tốc độ cao (tốc độ truyề n nói chun g) vừa phải an toàn,
người ta sử dụng k ế t hợp cả 2 phương pháp trên. T ro n g đó, khóa q u y ước (m ã khóa
đối xứng) được sin h ra tự động, mã hóa và trao đ ổ i cho nhau bàng phương pháp mã
hỏa bất đối xứng.
T rong thực tế, người ta sử dụng m ột nơi lưu trữ khóa công kh a i chung cho tất

cả m ọ i người (key server). K h i đó:


Người dùng tạo cặp khóa trên m áy tính của m ìn h và gửi khóa công
k h a i đến m ộ t key server công cộng (hoặc riê n g cho m ộ t nhóm sử
d ụn g)




Người gửi lấ y khóa công kh a i của đ ố i tượng m ìn h cần gửi dữ liệ u
từ key server.

Trang 10


Lấy khóa cõng khai của
người nhận tú' server

Gứi khóa công khat
cùa minh lồrs server

Public k&y A

Private key A
User A

User B

' |_

Private key BPrivai»k«ycPublickeyc

H ìn h 1.5: M ô hình tr a o đ ổ i k h ó a c ô n g k h ai

T ro n g m ô hình trên, ngoài bản thân n ộ i dung của cặp khóa, người ta còn đính
kèm vào đó các thông tin m ô tả đ ịn h danh của người dùng như họ tên, địa chỉ
em ail., nhằm phân b iệ t các kh ó a tương ứng của những người dùng khác nhau. Đ ây
cũng là m ô h ìn h cơ bản nhất của m ộ t hạ tầng khóa công k h a i (P K I).

K h óa b í m ật và khóa công kh a i đều có thể được dùng để m ã hóa hoặc g iả i mã.

1.2.
1.2.1.

M Ã HÓA DÙN G KHÓA CÔNG K H A I
N gu yên lý chun g của hệ thốn g m ã hóa d ù n g khóa cô n g khai[3]

T ro n g phần này chúng ta sẽ xem xét k ỹ hơn về m ã hóa dùng khóa công khai,
bao gồm các nguyên lý , m ộ t số thuật toán hay sử dụng và úng dụng cơ bản của m ột
hệ th ố n g m ã hóa dùng khóa công khai.
N ă m 1976, W h itfie ld D e ffie và M a rtin H e llm a n cồng bố m ộ t phát kiế n mới
m ang tên “ các phương hướng m ới tro n g m ật m ã” (N e w d ire c tio n in crypto gra phy).
Công trìn h đề xuất m ộ t dạng m ới của hệ thống m ật mã, tro n g đó người gửi và người
nhận sử dụng các khóa mã khác nhau nhưng có m ố i liê n hệ với nhau và m ộ t trong
hai khóa đó được giữ b í mật. Bên nhận giữ liệ u giữ m ộ t khóa b í m ật cho phép giải
mã với khóa đó, còn bên gửi sử dụng m ộ t khóa khác để m ã hóa dữ liệ u và khóa mã

Trang 11


hóa đó có thể công khai m à kh ô n g sợ phương hại đến hệ thống. H ìn h 1-6 m ô tả sơ
đổ k h ố i nguyên lý hoạt đ ộn g của m ật m ã có khóa công k h a i.

V iệ c m ã hóa sử dụng th uật toán E và khóa m ã

ke.

V iệ c g iả i m ã sử dụng thuật


toán D và khóa g iả i m ã kd. Cả hai thuật toán m ã hóa và g iả i m ã đều công khai. Cả
hai khóa

k e



kd

được tạo ra theo m ộ t cách đặc b iệ t và có liê n hệ m ộ t cách chặt chẽ

với nhau, T ro n g h ìn h 1-6, đặc trư ng cho m ố i quan hệ đó là kh ó a m ẩm
được g ọ i là kh ó a kh ở i thảo Lv

(key

hay còn

seed). H a i th uật toán F và G được chọn để tính

toán các khóa.
C h ỉ có bên nhận th ô n g tin là cần có b iệ n pháp g iả i m ã và k h ó a g iả i m ã
cần được giữ b í m ật. C òn kh ó a công k h a i

ke

kd




được công k h a i cho phép bất cứ ai cũng

có thể m ã hóa dữ liệ u , ở đâ y bên nhận sử dụng th u ậ t toán F và G cùng với m ầm
khóa ks để tạo ra hai khóa: kh ó a g iả i m ã

kd,

được g iữ b í m ật và được lưu lạ i. K h ó a

m ã hóa ke được gửi cho bèn gửi.

1.2.2. C ấu trúc m ộ t hệ th ô n g m ậ t m ã có k h ó a cô n g k h a i [3 ]
Các công bố đầu tiên về m ật m ã có khóa công khai ch ỉ đưa ra ý tưởng là có thể thực
hiện những hệ như vậy, nhưng không chỉ rõ các hàm D , E, F và G sẽ được thực hiện cụ
thể như thế nào. N ăm 1977, R on Rivest, m ột giáo sư của trường đại học M IT , cùng với
hai đồng nghiệp A d i Sham ir và Len A d lem an đã phát triển thành công m ộ t thuật toán có

Trang 12


thể thực hiện mã hóa. H ọ công bố thuật toán vào năm 1978, và được gọi là thuật toán
RSA (ba chữ cái đầu tiên của ba người phát m inh ra thuật toán).
Theo sơ đồ 1-6, người ta thấy rằng khó để có m ộ t phương pháp thỏa mãn các
hàm (hoặc thuật toán) khác nhau cần thỏa m ãn nhiều điều kiệ n. Bởi v ì khóa

ke

là đã

b iế t, h à m m ã h ó a E sử d ụ n g th am s ố đ ó đ ể tạ o ra y x u ấ t p h át từ X là m ộ t h àm c ô n g


kh a i. T ro n g lú c đó yêu cầu của phép m ã hóa là khôn g để cho kẻ xâm nhập có thể
tín h được từ y. N hư vậy hàm E phải là hàm m ộ t chiều (o n e -w a y fu n c tio n ). Cũng như
vậy hàm F cũng phải là hàm m ộ t chiều.
H àm D cần phải có các tính chất của m ột hàm m ã hóa. V í dụ, cho các giá trị
c ủ a m ộ t s ố k h ố i c ủ a b ản tin đ ã đ ư ợ c m ã h ó a y v à c á c k h ố i rõ tư ơ n g ứ n g X, n ó phải

kh ô n g có khả năng tính được khóa g iải m ã

kd v ì

đó là phương pháp m à kẻ xâm nhập

k h a i th á c . C h ú n g c ó th ể c h ọ n b ất k ỳ m ộ t bản tin rõ X n à o v à sử d ụ n g k h ó a c ô n g k h a i

ke

để tín h theo hàm đã biết y=EA'?(x).
Các yêu cầu vừa nêu trên dường như khôn g th íc h hợp giữa chúng với nhau, k h i

m à thuật toán E ke cần phải là m ột hàm m ột chiều, khôn g thể n g h ịch đảo, tron g lúc
đó th u ậ t toán

Dkd

là n g h ịch đảo của hàm đó. K h ô n g b iế t được

được n g h ịc h đảo. K h ó a b í m ật

kd


kd,

hàm E không thể

cấu thành như m ộ t lo ạ i cửa sập (trapdo or) mà nếu

biết được nó th ì có thể n g h ịch đảo E m ộ t cách dễ dàng. C ũng v ì lý do đó mà hàm mã
hóa còn được g ọ i là “ hàm m ộ t chiều với cửa sập” . T hu ật toán

Eke

là hàm m ột chiều.

Cửa sập D kd cho phép nghịch đảo nó và nó có thể được suy luận ra nếu biết được
kh ó a g iả i m ã

kd.

Ta có thể thấy, nền tảng của hệ thống m ật m ã có kh ó a công kh a i là hàm m ộ t
chiêu có cửa sập. H àm m ộ t chiều là m ộ t hàm toán học đơn giản tro n g việc tín h toán
theo m ộ t ch iều (theo chiều thuận) nhưng rất khó khăn cho việc tín h toán theo chiều
ngược lạ i (theo chiều ngược). V iệ c tín h toán theo chiều ngược trên lý thuyết là có
thể thực hiện được, nhưng trên thực tế điều đó hầu như kh ô n g thể. H à m m ột chiều
với cửa sập là hàm m ộ t chiều có thể thực hiện việc n g h ịch đảo được m ộ t cách dễ
dàng k h i có thêm thông tin đầu vào (cửa sập), nhưng rất khó khăn cho các trường
hợp còn lạ i. T ro n g hệ thống m ã hóa có khóa công kh a i, khóa b í m ậ t (private

đóng vai trò là cửa sập.


Trang 13

key)


Các thuật toán sử dụng tro n g hệ thống m ật m ã có khóa công kh a i đểu sử dụng
c ic phép toán số học. C húng ta sẽ nhắc lạ i m ộ t số kh á i niệm sẽ sử dụng nhiều trong
c ic thuật toán đó.


Số n g u v ê n t ố : số nguyên tố là những số nguyên c h ỉ chia chẵn được cho 1 và
cho ch ín h nó mà th ô i. N g h ĩa là nó khôn g do hai số nào nhân lên với nhau mà
thành. N ó i cách khác, số nguyên tố kh ô n g thể phân tích ra thành m ộ t tích các
thừa số; Các số nguyên tố đầu tiên là 1, 2, 3, 5, 7, 11, 13, 17, 23...



N g u y ê n tố tư ơ ng đ ố i với n h a u : Ước Số C hung Lớ n N hất (tiế n g A n h viế t tắt
G C D , greatest com m o n d iv is o r) của hai là số lớn nhất chia được cho cả hai số
ấy. K h i h a i số kh ô n g có thừa số nào chung, thì G C D sẽ là 1. H a i số đó được
gọi là n g u y ê n tố tư ơ ng đ ố i với n h a u (re la tiv e ly prim e or co prim e). V í dụ 21
và 11 là hai số nguyên tố tương đối với nhau. V ì m ỗ i số nguyên tố khôn g có
thừa số nào khác ngoài chính bản thân chúng, nên chúng cũng là nguyên tố
tương đ ố i vớ i nhau.



Toán chia M o d u lô :




H à m sô T o tie n t c ủ a E u ie r : H àm số T o tie n t E u le r được biểu th ị bằng chữ
“ p h i” , và được đ ịn h nghĩa như sau:

phi(N) = bằng bao nhiêu sô nằm giũa l và N - 1 là nguyên tô tương đôi
vớ i N . X in lưu ý rằng p h i( 1) là 1.
Dễ nhận thấy rằng p h i(N ) sẽ là N - 1 nếu N là nguyên tố.
V à rất dễ tín h ra được p h i(N ) k h i N ch ỉ có đúng hai thừa số nguyên tố: phi(P
*


Q ) = (P - 1) * (Q - 1), nếu p và Q là nguyên tố.

Đ ịn h lý T o tie n t của E u le r Đ ịn h lý này là m ộ t tro n g những thành tố quan
trọ n g của thuật toán R S A :
Nếu G C D (T , R ) = 1 và T < R , th ì T A(p h i(R )) = 1 (m od R).
D iễ n g iả i ra, đ ịn h lý ấy có thể được phát biểu như sau:
N ếu T và R là hai số nguyên tố tương đối với nhau, và T nhỏ hơn R, th ì k h i
chúng ta nâng T lên lu ỹ thừa “ p h i(R )” lần , và ch ia k ế t quả tìm được cho R,
số dư lu ô n lu ô n là 1.

Trang 14


N hư m ộ t th í dụ cụ thể chúng ta k iể m tra đ in h lý này băng hai số nhỏ m à
chun g ta đã b iế t to tie n t. G ọ i T là 5 và R là 6, chún g ta có:
p h i(6 ) = ( 2 - 1 ) * ( 3 - 1) = 1 * 2 = 2, vậy
5A(p h i(6 )) = 5A2 = 25, và
25 = 24 + 1 = 6 * 4 + 1, nên
25 = 1 (m o d 6).


1.2.3. M ậ t m ã có khóa cô n g khai R SA
K h óa công k h a i của R S A bao gồm hai thành phần: m o d u l và thành phần công
khai. K h ó a b í m ật cũng được tạo bở thành phần m o d u l g iố n g vớ i kh ó a công khai
cùng với thành phần b í m ật. T hà nh phần m o d u l được tạo bởi hai số ngu yên tố lớn.
Các thành phần này được k ý h iệ u n, e, d tro n g đó n là m o d u l, e là thành phần công
kh a i, d là thành phần b í m ật. K h i thực hiện tạo cặp khóa, xác đ ịn h thành phần công
kh a i e, chọn hai số ngu yên tố p và q có thể là m việ c vớ i e đã chọn , nhân p với q
được thành phần m o d u l n, tiế p theo là tín h thành phần b í m ậ t d dựa trên e, p và q.
Sau đó h ủ y bỏ p và q. V iệ c tìm hai số nguyên tố lớ n p và q được thực hiện m ộ t cách
đơn g iả n bằng phương pháp thử Fem at.
Ta có thể tó m lược lược đồ của th u ậ t toán R S A như sau:



T ạo khóa:

(1 ) C h ọn 2 sổ' ngu yê n tổ lớn p và q với p#q, lựa chọn ngẫu n h iê n và độc lập sử
dụng phương pháp thử Fem at.
(2) T ín h n = p .q
(3 ) T ín h giá tr ị hàm số ơ le : vỉ / ( n ) = ( p - l) ( q - l)
(4) C họn m ộ t số tự n h iê n e sao cho l< e < Ỹ ( n )
(5) T ín h d sao cho d e = l(m o d ^ ( n ) )
Lư u ý:
o

Các số n g u yê n tố được chọn bằng phương pháp thử Fem at

o


Các bước 4 và 5 có thể được thực h iệ n bằng g iả i th u ậ t E u c lid m ở rộng

Trang 15


o

T ừ bước 3, PKCS#1 v2.1 sử dụng A .= B S C N N (p -l,q -l) thay cho
Ỹ ( n ) = ( p - l) ( q - l)

K h ó a cô n g k h a i 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 ô đ u n , xu ấ t hiện cả tron g khóa công kh a i 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



d mod (p-1 ) và d mod (q-1)



(llq ) mod p

và <7 , hai số nguyên tố chọn ban đầu,
(thường được g ọ i là

(thường được gọi là

dmpl




dmql),

iqmp)

Dạng này cho phép thực hiện g iả i m ã và ký nhanh hơn với việc sử dụng đ ịn h lý
sô dư T ru n g Q uốc (tiế n g A n h : Chinese R e m ainde r T heorem - C R T ), ở 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. ở đây, p và q giữ vai trò rất
quan trọng. C húng là các phân tố của n và cho phép tín h d k h i b iế t e. Nếu không sử
dụng dạng sau của khóa b í m ật (dạng C R T ) th ì p và q sẽ được xóa ngay sau k h i thực
hiện xong quá trìn h tạo khóa.


M ã hóa
K h i bên gửi m u ố n gửi thông tin M cho bên nhận. Đ ầu tiê n bên gửi 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 đ ịn h lạ i M )
được thỏa thuận trước. Q uá trìn h này được gọi là chuyển văn bản rõ .
L ú c này bên gửi có m và biết n cũng như e do bên nhận cung cấp. Bên gửi sẽ tính c
là bản m ã hóa của m theo công thức: c = m e m od n
H àm trên có thể tín h dễ dàng sử dụng phương pháp tín h hàm m ũ (theo m ôđun) bằng
(thuật toán bình phương và nhân). C u ối cùng bên gửi gửi c cho bên nhận.



Giải mã

Trang 16



Bên nhận, nhận c từ bên gửi và b iế t khóa b í m ật d. Bén nhận có thể tìm được m từ c
theo cồng thức sau:
m = c d m od n
B iết m , bên nhận tìm lạ i M theo phương pháp đã thỏa thuận trước. Q uá trìn h g iả i mã
hoạt động được v ì ta có:

D o ed ed = l(m ođ

p -\)



ed = l(m o d <7 -

1) nên

mcd = m{mod p)
Và meii s m(moáq)
D o p và q là hai số ngu yên tố cùng nhau, áp dụng đ ịn h lý số dư T ru n g Q u ố c, ta có:

med = m(mod pq )
Hay

c'1 s m íll(moản)



Ví dụ


Sau đây là m ộ t v í dụ với những số cụ thể. ở đây chún g ta sử dụng những số nhỏ để
tiệ n tín h toán còn tro n g thực tế phải dùng các số có g iá tr ị đủ lớn.
Lấ y:
p = 61

— số nguyên tố thứ nhất (g iữ b í m ật hoặc h ủ y sau k h i tạo khóa )

q = 53

— số nguyên tố thứ hai (g iữ b í m ật hoặc h ủ y sau k h i tạo

n = p .q = 3233

— m ôđun (công bố công k h a i)

e = 17

— số m ũ công kh a i

d = 2753

— số m ũ b í m ật

khóa )

K h ó a công k h a i là cặp (e, n). K h ó a b í m ật là d. H à m m ã hóa là:
e n c ry p t(m ) = m e m o d n = m 17 m od 3233
với m là văn bản rõ. H à m g iả i m ã là:
d e c ry p t(c ) = cd m o d n = c2753 m od 3233
với c là văn bản mã.

Đ ể m ã hóa văn bản có giá tr ị 123, ta thực hiện phép tín h :
e n cryp t(1 2 3 ) = 12317 m od 3233 = 855
Đ ể g iả i m ã văn bản có giá tr ị 855, ta thực hiện phép tín h :
Đ A I H O C Q U Ố C G IA

HA

NỌ|

TRUNG T Â M T H Ô N G TIN THU V iÉ N

Trang 17


d e c ry p t(8 5 5 ) = 8 5 5 2753 m od 3233 = 123
Cả hai phép tín h trên đều có thể được thực hiện hiệu quả nhờ giải thuật bình phương
và nhân.



C huyên đổi văn bản rõ
Trước k h i thực h iệ 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ôn g có giá trị nào của M tạo ra văn bản mã
kh ô n g an toàn. N ếu k h ô n g có quá trìn h này, R S A sẽ gặp phải m ộ t số vấn đề sau:


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




K h i m ã hóa với số m ũ nhỏ (chẳng hạn e = 3) và m cũng có giá tr ị nhỏ, giá
tr ị m e cũng nhận giá trị nhỏ (so với n). N hư vậy phép m ôđun khôn g có tác
dụng và có thể dễ dàng tìm được m bằng cách kh a i căn bậc e của c (bỏ
qua m ô đ u n ).



R S A là phương pháp mã hóa xác đ ịn h (k h ô n g có thành phần ngẫu nhiên)
nên kẻ tấn công có thể thực hiện 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ã. K h i gặp m ột bản m ã, kẻ tấn công
sử dụng bảng tra để tìm ra bản rõ tương ứng.

Trên thực tế, ta thường gặp 2 vấn đề đầu k h i gửi các bản tin A S C II ngắn với m
là nhóm vài k ý tự A S C II. M ộ t đoạn tin chỉ có 1 k ý tự N U L L 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ự A S C II khác,
SO H, có giá t r ị 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ự A S C II đều cho kết quả mã hóa kh ô n g an toà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. N hữ 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, R S A 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 k h i m ã hóa. Q uá trìn h chuyển đ ổ i này
phải đảm bảo rằng m k h ô n g rơ i vào các giá trị kh ô n g an toàn. Sau k h i chuyển đổi,
m ỗ i bản rõ k h i m ã hóa sẽ cho ra m ộ t tron g số khả năng tro n g tập hợp bản mã. Đ iề u
này làm giảm tín h kh ả th i của phương pháp tấn công lựa chọn bản rõ (m ộ t bản rõ sẽ
có thể tương ứng với n h iề u bản m ã tu ỳ thuộc vào cách chuyển đ ổ i).

Trang 18



M ộ t số tiêu chuẩn, chẳng hạn như PKCS, đã được th iế t kế để chuyển đổi bản
rõ trước k h i m ã hóa bằng R S A . 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 ch uyể n đổi cần được th iế 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 ùn g m ộ t phương pháp đặc ứng (ad-hoc) m à về sau được biết là
kh ô n g an toà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 (O p tim a l A s y m m e tric E n c ry p tio n Padding - O A E P ) để
chông lạ i tấn công dạng này. T iêu chuẩn PKCS còn được bổ sung các tín h năng
khác để đảm bảo an toàn cho chữ k ý RSA (P ro b a b ilis tic Signature Scheme fo r R S A RSA-PSS).

1.2.4. T h u ật toán D H [8 ]
Thuật toán D iffie -H e llm a n không sử dụng cho việc m ã hóa, m à được dùng
tron g việc g iả i q u yế t vấn đề phân phối khóa. V ớ i thuật toán D H , sẽ khôn g thực hiện
theo các bước: tạo k h ó a phiên (khóa đối xứng) sau đó được phân p h ố i khóa phiên sử
dụng khóa công kh a i, th a y vào đó sử dụng công nghệ khóa công kh a i để thực hiện
việc tạo khóa phiên đ ố i xứng. Bên gửi và nhận đều có hai thành phần: thành phần
công khai, thành phần b í m ật. N ếu như thực hiện việc kết hợp thành phần bí m ật với
thành phần công k h a i của phía k ia và ngược lạ i sẽ tạo ra cùng m ộ t giá trị. H ìn h 1-7
Bên gửi và nhận đều có m ộ t cặp khóa: khóa công kh a i, khóa b í mật. Từ khóa
công khai của bên nhận, bên gửi có thể tạo khóa công k h a i tạm thời cho phiên làm
việc.

Trang 19


Puplic

Puplic


Private

T
DH Mechine

DH Mechine

ï
Secret

Hinh 1-7 Sơ đồ thuật toán DH

1.3.

CH Ữ KÝ SỐ

V iệ c xác thực các đoạn tin là để đảm bảo cho bên nhận h a i yêu cầu, đó là
-

Đ ú n g bên gửi

-

N ếu có sự g iả mạo nào đó của đoạn tin sau k h i gửi sẽ được phát
hiện

N ếu như bên gửi và nhận cùng nhất quán về x u ấ t xứ cũng như n ộ i dung của
đoạn tin th ì việc trao đ ổ i như vậy được c o i là đủ và hoàn thành. Cả bên nhận và bên
gửi đều tin rằng k h ô n g có bên thứ ba nào th a m g ia vào quá trìn h tru y ề n tin và xuất
xứ của đoạn tin là đáng tin cậy. T u y n h iê n tro n g nh iề u trường hợp đoạn tin giữa bên

gửi và nhận kh ô n g có sự đ ồn g nhất. N ó i m ộ t cách khác, đoạn tin đã b ị thay đ ổ i tron g

Trang 20


quá trìn h tru yề n . T ro n g nhiều trường hợp, khôn g những nội dung đoạn tin b ị thay
đổi m à xuất xứ của đoạn tin còn được giả mạo. C ũng như bên gửi trố i bỏ trách
nhiệm với bản tin k h i thấy khôn g có lợ i cho m ình.

1.3.1. C h ữ k ý sô sử dụ n g m ật m ã có khóa công khai
N hư đã b iế t, m ật m ã có khóa công khai là bất đối xứng. D o tín h không đối
xứng đó nên m ậ t m ã có khóa công kh a i có thể sử dụng hữu hiệu tro n g việc xác thực,
chữ k ý số có thể g iả i quyết các tranh trấp giữa bên gửi và bên nhận. H ìn h 1-8 m ô tả
sơ đồ k h ố i nguyên lý làm việc của chữ k ý số sử dụng m ật m ã có khóa công khai.
Các hàm D , E, F, G là kh ô n g thay đổi và các khóa

ke

khóa g iả i mã

kd

đều được tạo

ra theo cùng phương pháp.

Các khóa mã công kh a i và bí m ật đều do phía gửi tạo ra nhờ m ộ t giá trị khởi
đầu ks (m ầm kh ó a ) và m ã

ke


được công khai. N ếu m ộ t đoạn tin X được mã hóa theo

hàm y=EẨ:í'(x) th ì việc g iả i mã để k h ô i phục lạ i đoạn tin được thực hiện theo hàm
g iả i m ã

x=Eke(y),

quá trìn h đó là quá trìn h tạo ra chữ ký . K h i bên nhận, nhận được

y sẽ dùng th u ậ t toán mã hóa tương ứng cùng khóa công k h a i của bên nhận để giải
mã. N ếu như quá trìn h g iả i mã kh ô n g thành công điéu đó chứng tó giá t r ị nhận được
kh ô n g thực sự là của bên gửi. V ì chỉ có khóa công kh a i của bên gửi m ớ i có thể giải
m ã được dữ liệ u được mã hóa bằng khóa b í mật. T ro n g văn bản giấ y, chữ k ý được
k ý bằng tay th ì giá tr ị s có thể nhận diện trực tiế p bởi người nhận. H oặc người nhận

Trang 21


có thể so sánh m ấu ký đó với m ộ t chữ k ý mẫu mà người nhận b iết chắc rằng đó là
chữ ký của người gửi.
Bằng cách kế t hợp hai biến đ ổi: chữ k ý số dùng khóa công kh a i và m ật m ã có
khóa công k h a i, có thể bảo vệ đoạn tin vừa chống lạ i sự giả mạo. V iệ c sử dụng m ật
mã đê đám bảo tín h bí m ật của đoạn tin còn việc sử dụng chữ k ý số để phát giác
gian lận. H a i biến đổi được xếp chồng lên nhau H ìn h 1-9 m ô tả sơ đồ k h ố i của
phương pháp.

Hình 1-9: Sơ đồ khối một phương pháp kết hợp mặt mã và chữ ký số

Đ oạn tin từ A gửi đến B trước tiên thực hiện thuật toán chữ k ý sau đó thực hiện

tiế p thuật toán m ậ t mã. Các khóa công khai và b í m ật của cả hai bên đều được sử
dụng nhưng có phân đ ịn h rõ trách nhiệm : khóa
khóa
m ật

kcỉb
kclã,



ke b

kda

và khóa

ke a thuộc

bên gửi A còn

thuộc bên nhận B. Để thực hiên việc k ý , bên gửi sử dung khóa b í

tiế p theo để m ã hóa, bên A sử dụng khóa công kh a i

keb

do bên nhận B

cung cấp. K h i nhận, bên B thực hiện ngược lạ i: trước tiê n thực hiện g iả i m ã bằng
khóa b í m â t của B sau đó k iể m tra chữ k ý bằng khóa công k h a i bên gửi A


1.3.2. C h ữ k ý sô sử dụ n g th u ật toán RSA
T ro n g thuật toán R S A , khóa công kh a i được xây dựng từ phép toán m o d u lo m
và số m ũ mã hóa e. Các hằm m ã hóa và hàm g iả i m ã được biểu th ị dưới dạng:
c= m e m od n và m = c d m od n
K ý số và quá trìn h k iể m tra chữ k ý được thực hiện bằng phương pháp tín h m odulo:

Trang 22


s= m d m od n và m ’ =se m od n
cuá trìn h k ý và k iể m tra chữ k ý được m ô tả tro n g H ìn h 1-10

T ro n g R S A , thực h iệ n tó m lược thông báo để nhận được m ộ t m ã băm duy nhất,
có độ dài cố đ ịn h . Sau đó, m ã băm được m ã hóa bằng m ã riê n g của người gửi để tạo
chữ ký. C u ố i cùng, chữ k ý được gửi đ i cùng thông báo. Người nhận nhận được thông
báo cùng với chữ ký . Bên nhận thực hiện việc g iả i mã chữ k ý bằng khóa công k h a i
của người gửi sẽ nhận được m ộ t m ã băm. Đ ổ n g thời thực hiện tín h toán mã băm dựa
trên thông báo nhận được. So sánh hai giá tr ị m ã băm này, nếu như hai giá trị g iố n g
nhau thì chữ k ý số được k iể m tra là đúng, n ộ i dung thông báo kh ô n g b ị thay đổi
trong quá trìn h truyề n. N ế u như hai giá tr ị này khác nhau th ì có thể n ộ i dung thông
báo đã b ị thay đ ổ i tro n g quá trìn h truyề n hoặc nó kh ô n g thực sự xuất phát từ người
gửi.[3]

1.3.3. C h ữ k ý sô sử dụ n g th u ậ t toán D SS
Chuẩn chữ k ý số DSS ( D ig ita l Signature Standard) được N IS T (V iệ n tiê u chuấn
và công nghệ Q uốc gia- N a tio n a l In stitu te o f Standards and T e c h n o lo g y ) công bố.
DSS sử dụng thuật toán băm an toàn (S H A ) và đưa ra thuật toán k ý số D S A. DSS
được đề xuất lầ n đầu tiê n vào năm 1991.


Trang 23


DSS sử dụng m ột hàm băm, m ã băm cùng với m ộ t số ngẫu nhiên k (k được
sinh ra cho từng chữ k ý riê n g b iệ t) là đầu vào của hàm ký. H àm k ý cũng phụ thuộc
vào khóa b í m ật của người gửi
kh a i toàn cục

keG. K ế t

kd

và m ột tập các tham số tạo thành m ột khóa công

quả là chữ k ý có hai thành phần, được gọi là s và r.

T ạ i nơi nhận, người nhận tính toán mã băm của thông báo gửi đến. M ã băm
này cùng với chữ k ý là đầu vào của hàm kiể m tra. H àm kiể m tra cũng phụ thuộc vào

kec

và khóa công kh a i

ke

của người gửi. Đ ầu ra của hàm k iể m tra là m ột giá trị, nếu

g iá trị này trù n g khớp với thành phần r của chữ k ý th ì chữ k ý được công nhận là hợp
lệ. Do d u y nhất người gửi biết khóa riêng nên chỉ người gửi có thể đưa ra chữ k ý hợp
lệ. T huật toán có thể m ô tả theo các bước dưới đây:

(1)

Chọn số nguyên tố p sao cho 2 L"‘ < P < 2 L với 5 1 2 < L < = 1 0 2 4 và L là
b ộ i số của 64 nghĩa là độ

dài b it nằm tron g khoảng từ 512 đến

1024 và là bội của 64
(2 )

Chọn q là ước nguyên tố của p-1 sao cho 2 159< q < 2 160 nghĩa là độ
dài b it là 160

(3)

tín h g = h (p‘ li/q m od p tron g đó h là m ộ t số nguyên tố bất k ý thỏa
mãn l< h < p - l sao cho g = h (p l)/q m od p >1

(4)

c h ọ n X là s ố n g u y ê n n g ẫ u n h iê n th ỏ a m ã n 0 < x < q . X là k h ó a b í

m ật của người dùng
(5 )

tín h y = g x m od p. y là khóa

công kh a i

(6)


chọn k là số nguyên ngẫu

nhiên thỏa m ãn 0 < k < q là số thứ tự bí

m ật của m ỗ i thông báo
(7 )

thực h iệ n k ý : tính r= (g k m od p) m od q và s = [k '( S H A - l( M ) + x r ) ]
m od q. Chữ k ý sẽ gồm hai thành phần (r,s)

(8 )

k iể m tra chữ ký:
w = (s ’ ) - l m od q
U|= ( ( S H A - l( M ’ ))w ) m od q
u 2

- ((r ’)w ) m °d q

V = (((g )U i ( y ) u 2) m o d p) m o d q.

Trang 24


×