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

Nghiên cứu xây dựng bảo mật và xác thực tài liệu điện tử dựa trên PKI và ứng dụng vào trường đại học hạ long

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

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

MAI THỊ HOA HUỆ

NGHIÊN CỨU XÂY DỰNG BẢO MẬT VÀ XÁC THỰC
TÀI LIỆU ĐIỆN TỬ DỰA TRÊN PKI VÀ ỨNG DỤNG
VÀO TRƯỜNG ĐẠI HỌC HẠ LONG

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
–––––––––––––––––––––––––––––––

MAI THỊ HOA HUỆ

NGHIÊN CỨU XÂY DỰNG BẢO MẬT VÀ XÁC THỰC
TÀI LIỆU ĐIỆN TỬ DỰA TRÊN PKI VÀ ỨNG DỤNG
VÀO TRƯỜNG ĐẠI HỌC HẠ LONG
Chuyên 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. Hồ Văn Hương


THÁI NGUYÊN - 2017


i
LỜI CAM ĐOAN
Tác giả xin cam đoan rằng số liệu và kết quả nghiên cứu trong luận văn
là hoàn toàn trung thực chưa hề được sử dụng và công bố trong bất kỳ một
công trình khoa học nào. Các thông tin, tài liệu trình bày trong luận văn đã
được ghi rõ nguồn gốc.

Tác giả luận văn

Mai Thị Hoa Huệ


ii
LỜI CẢM ƠN
Trong quá trình học tập, nghiên cứu viết luận văn, được sự giúp đỡ của
Trường Đại học Công nghệ Thông tin và Truyền thông, các thầy giáo, cô
giáo, các tổ chức, đồng nghiệp trong và ngoài tỉnh đã tạo điều kiện về vật
chất, thời gian và cung cấp tài liệu giúp đỡ tôi hoàn thành luận văn.
Tôi xin chân thành cảm ơn sự giúp đỡ quý báu của các thầy, cô giáo, các
tổ chức, đồng nghiệp và người hướng dẫn khoa học TS. Hồ Văn Hương đã hết
lòng hướng dẫn và giúp đỡ tôi rất nhiều trong nghiên cứu khoa học và thực
hiện hoàn thành luận văn này.
Tác giả xin trân trọng cảm ơn!
Tác giả luận văn

Mai Thị Hoa Huệ



iii
MỤC LỤC

LỜI CAM ĐOAN .............................................................................................. i
LỜI CẢM ƠN ................................................................................................... ii
MỤC LỤC ........................................................................................................ iii
DANH MỤC CÁC TỪ VIẾT TẮT ................................................................. vi
DANH MỤC CÁC BẢNG.............................................................................. vii
DANH MỤC CÁC HÌNH .............................................................................. viii
MỞ ĐẦU .......................................................................................................... 1
1. Nhu cầu bảo mật và xác thực văn bản điện tử .............................................. 1
2. Lý do chọn đề tài ........................................................................................... 1
3. Mục đích nghiên cứu ..................................................................................... 1
4. Phương pháp nghiên cứu ............................................................................... 2
5. Bố cục của luận văn ...................................................................................... 2
CHƯƠNG 1: GIỚI THIỆU CHUNG VỀ MẬT MÃ ................................... 3
1.1. Mật mã khóa đối xứng ............................................................................... 3
1.1.1. Khái niệm .......................................................................................... 3
1.1.2. Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng ........... 3
1.2 . Mật mã khóa công khai ............................................................................. 4
1.2.1. Khái niệm .......................................................................................... 4
1.2.2 . Bảo vệ thông tin với mật mã khóa công khai .................................. 4
1.2.3. Thuật toán RSA ................................................................................ 6
1.2.4. Hệ mật ElGamal trên đường cong elliptic ........................................ 7
1.2.5. Sơ đồ trao đổi khóa Elliptic .............................................................. 9
1.2.6. Thuật toán chữ ký số Elliptic (ECDSA) ......................................... 10
1.2.7. So sánh giữa Elliptic và RSA ......................................................... 11
1.3. Kết hợp mật mã đối xứng và mật mã khóa công khai ............................. 13
1.4. Kết luận chương 1 .................................................................................... 14



iv
CHƯƠNG 2: CƠ SỞ HẠ TẦNG KHÓA CÔNG KHAI ........................... 15
2.1. Khái niệm về PKI và các khái niệm cơ bản trong PKI ............................ 15
2.1.1. Khái niệm PKI ................................................................................ 15
2.1.2. Các khái niệm cơ bản trong PKI ..................................................... 15
2.2. Các thành phần PKI ................................................................................. 20
2.2.1. Tổ chức chứng thực ........................................................................ 21
2.2.2. Trung tâm đăng ký .......................................................................... 21
2.2.3. Người dùng cuối ............................................................................. 22
2.2.4 . Hệ thống lưu trữ ............................................................................ 22
2.3. Các dịch vụ PKI ....................................................................................... 23
2.3.1. Các dịch vụ cốt lõi của PKI ............................................................ 23
2.3.2. Các dịch vụ PKI hỗ trợ ................................................................... 25
2.4. Các mô hình kiến trúc PKI ....................................................................... 27
2.4.1. Kiến trúc kiểu CA đơn (Single CA) ............................................... 28
2.4.2. Kiến trúc kiểu CA phân cấp ............................................................ 28
2.4.3. Kiến trúc kiểu chứng thực chéo (Cross – certificate) ..................... 29
2.4.4. Kiến trúc kiểu Bridge CA ............................................................... 30
2.5. Ứng dụng của PKI trong ký số và bảo mật dữ liệu .................................. 31
2.5.1. Mã hóa ............................................................................................ 31
2.5.2. Chống giả mạo ................................................................................ 32
2.5.3. Xác thực .......................................................................................... 32
2.5.4. Chống chối bỏ nguồn gốc ............................................................... 32
2.5.5. Chữ ký điện tử ................................................................................ 32
2.5.6. Bảo mật website .............................................................................. 33
2.5.7. Code Signing................................................................................... 33
2.5.8. Chứng thực điện tử ......................................................................... 34
2.6. Kết luận chương 2 .................................................................................... 34



v
CHƯƠNG 3: XÂY DỰNG ỨNG DỤNG BẢO MẬT VÀ XÁC THỰC
TÀI LIỆU ĐIỆN TỬ ..................................................................................... 35
3.1. Phân tích ................................................................................................... 35
3.2. Thiết kế ..................................................................................................... 35
3.3. Các chức năng trong phần mềm ............................................................... 36
3.4. Xây dựng giao diện .................................................................................. 37
3.5. Thiết kế lớp .............................................................................................. 39
3.6. Cài đặt và kiểm thử .................................................................................. 41
3.7. Kết luận chương 3 .................................................................................... 50
KẾT LUẬN .................................................................................................... 51
TÀI LIỆU THAM KHẢO ............................................................................ 53


vi
DANH MỤC CÁC TỪ VIẾT TẮT
CNTT

Công nghệ thông tin

ATTT

An toàn thông tin

CA

Certificate Authority


PKI

Public Key Infastructure

SPKC

Simple Public Key Certificate

AC

Attribute Certificate

ITU

International Telecommunication Union

CRLs

Certificate Revocation Lists

RA

Registration Authorites

DSAs

Directory System Agents

OCSP


Online Certificate Status Protocol

LDAP

Lightweight Directory Access Protocol

DNS

Domain Name System

FTP

File Transfer Protocol

MAC

Message Authentication Code

P2P

Peer to Peer

SSL

Secure Socket Layer


vii
DANH MỤC CÁC BẢNG


Bảng 1.1. So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL .... 12
Bảng 1.2. So sánh kích thước khóa RSA và ECC với cùng mức độ an toàn . 12


viii
DANH MỤC CÁC HÌNH

Hình 1.1: Mã hóa khóa bí mật ........................................................................... 4
Hình 1.2: Mã hóa khóa công khai ..................................................................... 5
Hình 1.3: Xác thực thông tin ............................................................................. 5
Hình 1.4: Ký và mã với khóa công khai ........................................................... 6
Hình 1.5: So sánh mức độ bảo mật giữa ECC với RSA/DSA ........................ 12
Hình 1.6: Kết hợp khóa công khai và khóa bí mật ......................................... 14
Hình 2.1: Chứng thư số ................................................................................... 15
Hình 2.2: Các thành phần PKI ........................................................................ 20
Hình 2.3: Single CA ........................................................................................ 28
Hình 2.4: CA phân cấp .................................................................................... 29
Hình 2.5: Chứng thực chéo ............................................................................. 30
Hình 2.6: Bridge CA ....................................................................................... 31
Hình 3.1: Giao diện xác thực khóa cá nhân .................................................... 38
Hình 3.2: Giao diện chính ............................................................................... 38
Hình 3.3: Giao diện thông báo ........................................................................ 39
Hình 3.4: Lớp Crypto ...................................................................................... 39
Hình 3.5: Lớp ECDH ...................................................................................... 40
Hình 3.6: Lớp Data Transfrmer....................................................................... 40
Hình 3.7: Lớp ECDSA_Signature................................................................... 41
Hình 3.8: XML Work ...................................................................................... 41
Hình 3.9: Xác thực người dùng ....................................................................... 42
Hình 3.10: Thông báo file không phải là khóa cá nhân .................................. 42
Hình 3.11: Xác thực thất bại ........................................................................... 42

Hình 3.12: Xác thực đúng ............................................................................... 43
Hình 3.13: Giao diện chính của chương trình ................................................. 43
Hình 3.14: Thông báo cho người dùng kết quả .............................................. 43
Hình 3.15: file .sign chứa chữ ký .................................................................... 44


ix
Hình 3.16: Nội dung chữ ký được sinh ra ....................................................... 44
Hình 3.17: Các thẻ tương ứng trong file chữ ký ............................................. 44
Hình 3.18: Thông báo xác minh chữ ký sai .................................................... 45
Hình 3.19: Trích xuất nội dung khi xem log ................................................... 45
Hình 3.20: Trích xuất nội dung khi xem log ................................................... 45
Hình 3.21: file phục hồi file gốc ..................................................................... 46
Hình 3.22: Thông báo lỗi file định dạng publickey ........................................ 46
Hình 3.23: Tạo key phục vụ ............................................................................ 46
Hình 3.24: Tải dữ liệu từ file gốc lên và tiến hành mã hóa ............................ 47
Hình 3.25: Thông báo mã hóa thành công ...................................................... 47
Hình 3.26: Định dạng file................................................................................ 47
Hình 3.27: Nội dung thẻ Senderpubkey .......................................................... 48
Hình 3.298: Tạo lại key ECDH ....................................................................... 48
Hình 3.29: Kết quả giải mã ............................................................................. 48
Hình 3.30: Thông báo giải mã thành công ...................................................... 48
Hình 3.31: Lưu file .......................................................................................... 49
Hình 3.32: File đã giải mã ............................................................................... 49
Hình 3.33: Thông báo giải mã thất bại............................................................ 49
Hình 3.34: Giải mã thất bại xem qua log ........................................................ 50


1
MỞ ĐẦU

1. Nhu cầu bảo mật và xác thực văn bản điện tử
Ngày nay, công nghệ thông tin phát triển rất nhanh và được ứng dụng vào
hầu hết những lĩnh vực trong cuộc sống. Vai trò của công nghệ thông tin ngày càng
được nâng cao, không chỉ dừng lại ở những ứng dụng văn phòng, công nghệ thông
tin còn được triển khai ở nhiều lĩnh vực. Bên cạnh những lợi thế trong việc áp dụng
công nghệ thông tin, việc sử dụng CNTT còn tiềm ẩn nhiều vấn đề còn tồn tại, trong
đó có việc đảm bảo an toàn thông tin ví dụ như bị đánh cắp dữ liệu, được phép đọc
các tài liệu mà không đủ thẩm quyền, dữ liệu bị phá hủy … Do đó, bên cạnh việc
triển khai và sử dụng CNTT, chúng ta cũng phải đảm bảo ATTT. Đảm bảo ATTT
chính là đảm bảo hệ thống có được ba yếu tố [3]:
 Tình toàn vẹn
 Tính bí mật
 Tính sẵn sàng
2. Lý do chọn đề tài
Vấn đề đảm bảo an ninh, an toàn thông tin dữ liệu là nội dung nghiên cứu
thiết thực, là chủ để luôn được các cấp, các ngành quan tâm trong lĩnh vực công
nghệ thông tin. Nhu cầu đảm bảo an ninh thông tin dữ liệu trên mạng máy tính là
cấp thiết trong các hoạt động kinh tế xã hội, đặc biệt là đối với các mạng máy tính
chuyên dùng phục vụ công tác an ninh, quốc phòng, đối ngoại của các cơ quan
Đảng, Nhà nước …
Hiện nay trường Đại học Hạ Long trao đổi tài liệu chủ yếu qua mạng Internet.
Tuy nhiên, việc đưa thông tin lên mạng đó lại tiềm ẩn nhiều rủi ro, trong đó đặc biệt
phải kể đến những rủi ro về bảo mật nhất là thông tin trong hệ thống là thông tin nhạy
cảm và cần phải xác thực được tính chính xác vì những sai sót sẽ dẫn đến hậu quả
nghiêm trọng.Vì vậy em chọn đề tài: :“Nghiên cứu xây dựng bảo mật và xác thực
tài liệu điện tử dựa trên PKI và ứng dụng vào trường Đại học Hạ Long ”
3. Mục đích nghiên cứu
3.1. Mục đích nghiên cứu
Luận văn nghiên cứu các vấn đề về an toàn hệ thống thông tin, lý thuyết mật
mã, mật mã đối xứng, mật mã công khai. Xây dựng và phát triển ứng dụng chữ ký

số, xác thực, mã hoá và giải mã tài liệu điện tử ứng dụng trong thực tế.


2
3.2. Đối tượng và phạm vi nghiên cứu
Trong phạm vi luận văn này sẽ tập trung tìm hiểu một số nội dung cơ bản:
Nghiên cứu các thành phần, dịch vụ, kiến trúc và ứng dụng của cơ sở hạ tầng khóa
công khai PKI. Đánh giá vấn đề an toàn và bảo mật xác thực tài liệu điện tử.
4. Phương pháp nghiên cứu
Luận văn kết hợp nghiên cứu lý thuyết, nghiên cứu xây dựng bảo mật và xác
thực tài liệu điện tử dựa trên PKI.
5. Bố cục của luận văn
Ngoài phần Mở đầu và Kết luận, Luận văn gồm 3 chương như sau:
Chương 1: Trình bày tổng quan về cơ sở lý thuyết mật mã: mật mã khóa đối
xứng, mật mã khóa công khai, kết hợp mật mã khóa đối xứng và mật mã khóa công
khai, các thuật toán.
Chương 2: Cơ sở hạ tầng khóa công khai: khái niệm về PKI, các thành phần
cơ bản, dịch vụ, mô hình và các ứng dụng của PKI.
Chương 3: Xây dựng ứng dụng.


3
CHƯƠNG 1
GIỚI THIỆU CHUNG VỀ MẬT MÃ
Nội dung của chương luận văn này sẽ trình bày tổng quát về cơ sở lý thuyết
mật mã, nêu các khái niệm về mật mã, tiếp theo sẽ đi sâu vào một số thuật toán mã
hóa công khai và trên cơ sở đó nhận xét, đánh giá một số thuật toán mã hóa công
khai phổ biến hiện nay.
1.1. Mật mã khóa đối xứng
1.1.1. Khái niệm

Mật mã khóa đối xứng còn được gọi là Mật mã khóa bí mật. Đây là phương
pháp mã hóa sử dụng cặp khóa đối xứng. Với phương pháp này, người gửi và người
nhận sẽ dùng chung một khóa để mã hóa và giải mã thông điệp. Trước khi mã hóa
thông điệp gửi đi, hai bên gửi và nhận phải có khóa chung và phải thống nhất thuật
toán để mã hóa và giải mã.
Mật mã là khoa học bảo vệ dữ liệu, cung cấp những phương pháp chuyển đổi
dữ liệu thành những bản mã để [7]:
 Dữ liệu không thể truy cập được bởi những người bất hợp pháp.
 Nội dung dữ liệu được giữ kín với những người khác.
 Dữ liệu được xác thực.
 Tránh được sự phát hiện và sửa đổi dữ liệu.
 Chống chối bỏ.
Trong mật mã hiện đại, có hai hệ mật được sử dụng nhiều nhất, đó là : hệ
mật khóa đối xứng và hệ mật khóa công khai.
1.1.2. Bảo vệ tính bí mật của thông tin với mật mã khóa đối xứng
Độ an toàn của thuật toán này phụ thuộc vào khoá, nếu để lộ khoá này nghĩa là
bất kỳ người nào cũng có thể mã hoá và giải mã thông báo trong hệ thống mã hoá.


4

Hình 1.1. Mã hóa khóa bí mật
Ứng dụng: Sử dụng trong môi trường mà khoá dễ dàng được chuyển đi, như là
trong cùng một văn phòng. Cũng dùng để mã hoá thông tin khi lưu trữ trên đĩa nhớ.
1.2 . Mật mã khóa công khai
1.2.1. Khái niệm
Mật mã hóa khóa công khai là một dạng mật mã hóa cho phép người sử dụng
trao đổi các thông tin mật mã mà không cần phải trao đổi các khóa chung bí mật
trước đó. Điều này được thực hiện bằng cách sử dụng một cặp khóa có quan hệ toán
học với nhau là khóa công khai(Public Key) và khóa cá nhân(Private Key) [7].

Trong mật mã hóa khóa công khai, khóa cá nhân phải được giữ bí mật trong
khi khóa công khai được phổ biến công khai. Trong hai khóa, một dùng để mã hóa
và khóa còn lại dùng để giải mã. Điều quan trọng đối với hệ thống là không thể tìm
ra khóa bí mật nếu chỉ biết khóa công khai.
1.2.2 . Bảo vệ thông tin với mật mã khóa công khai
Việc sử dụng mật mã khóa công khai cung cấp cho ta những ứng dụng quan
trọng trong bảo vệ thông tin [7, 8]:
a. Bảo vệ tính bí mật thông tin
Giả sử A muốn gửi cho B một thông điệp M, A sẽ phải:
- Mã hóa thông điệp M bằng khóa công khai của B.
- Gửi bản mã thông điệp cho B.
Khi B nhận được thông điệp đã được mã hóa của A, B sẽ sử dụng khóa riêng
của mình để giải mã thông điệp đó.


5

Hình 1.2. Mã hóa khóa công khai
Phương pháp này cung cấp tính bí mật vì chỉ có B mới có khóa bí mật để giải
mã thành công bản mã mà A đã gửi. Tuy nhiên, phương pháp này lại không cung
cấp bất kỳ quá trình xác thực nào để khẳng định bản mã mà B nhận là do A gửi, vì
khóa công khai của B ai cũng biết.
b. Xác thực thông tin
A muốn mọi người biết được rằng tài liệu M là của chính A gửi, A có thể sử
dụng khóa riêng của mình để ký lên tài liệu M.
Khi ai đó nhận được tài liệu, ví dụ là B, B sẽ kiểm tra chữ ký có trong tài liệu
M bằng khóa công khai của A và có thể chắc chắn được rằng tài liệu này là do A
ký vì chỉ có A mới có khóa riêng dùng để ký lên tài liệu.

Hình 1.3. Xác thực thông tin



6
Phương pháp này giúp người sử dụng có thể xác thực được nguồn gốc của tài
liệu, nhưng lại không bảo vệ tính bí mật của tài liệu. Do đó, người không được
quyền xem tài liệu vẫn có thể xem được nó.
c. Bảo vệ bí mật và xác thực thông tin
Để đảm bảo thông tin vừa bí mật vừa xác thực, chúng ta phải thực hiện mã
hóa hai lần:
-

Đầu tiên, A phải ký thông điệp bằng khóa riêng của mình (thao tác này để
đảm bảo tính xác thực).

-

Sau đó, A sử dụng khóa công khai của B để mã hóa tiếp thông báo vừa
được mã hóa (thao tác này để đảm bảo tính bí mật).

Sau đó, A gửi bản mã cuối cùng đến B. B nhận được, sẽ làm giải mã theo thứ
tự ngược lại để lấy được bản rõ.

Hình 1.4. Ký và mã với khóa công khai
1.2.3. Thuật toán RSA
Trong mật mã học, RSA là một thuật toán mã hóa khóa công khai. Đây là
thuật toán phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. Nó
đánh dấu một sự tiến bộ vượt bậc của lĩnh vực mật mã trong việc sử dụng khóa
công khai. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho
là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn.



7
RSA có tốc độ thực hiện chậm hơn đáng kể so với các thuật toán mã hóa đối
xứng. Trên thực tế, người ta thường sử dụng một thuật toán mã hóa đối xứng nào đó
để mã hóa văn bản cần gửi và sử dụng thuật toán mã hóa công khai để phân phối
khóa đối xứng.
Ngoài ra, thuật toán RSA còn được dùng để tạo chữ ký số cho văn bản.
Người ký sẽ sử dụng khóa bí mật của mình để ký vào văn bản cần ký. Người nhận
được văn bản sau đó sẽ dùng khóa công khai của người ký để xác thực người gửi
cũng như kiểm tra tính toàn vẹn của văn bản.
Việc sử dụng RSA sẽ mang lại cho chúng ta một số ưu điểm [10]:
-

Quản lý khóa đơn giản: Trong mã hóa đối xứng, số khóa yêu cầu cho
phép n thực thể truyền thông với nhau là n2 . Trong khi đó, đối với mã
hóa công khai, mỗi thực thể cần 1 cặp khóa, tổng số khóa yêu cầu để
truyền thông chỉ là 2*n. Như vậy, việc quản lý khóa rất là đơn giản.

-

Nâng cao mức độ an toàn cho việc giao dịch khóa: Mọi người dùng
phải có một cặp khóa, trong đó khóa bí mật không được chia sẻ cho
bất kỳ ai, tránh được vấn đề đảm bảo an toàn trong truyền khóa ở mật
mã khóa bí mật.

Tuy nhiên, RSA cũng có những nhược điểm và nó vẫn có thể bị tấn công:
-

Phân tích khóa công khai: Hiện nay RSA được đánh giá là an toàn, nó đã và
đang được sử dụng rộng rãi trên toàn thế giới. Tấn công được xem xét

thường xuyên nhất là phân tích khóa công khai. Nếu tấn công này thành
công thì mọi thông báo được mã hóa bằng khóa công khai đều được giải mã.

-

Tấn công vòng: Trong tấn công này, bản mã được giải mã nhiều lần cho
đến khi xuất hiện bản rõ. Phương pháp tấn công này rất chậm, đối với
những khóa có độ dài lớn, tấn công này là không thể.

-

Tấn công dựa trên thời gian: kẻ tấn công sẽ dùng một siêu máy tính để
tìm ra một trong hai số thừa số nguyên tố.

1.2.4. Hệ mật ElGamal trên đường cong elliptic
Trong đoạn này ta xét đường cong elliptic trên trường GF(p) = Zp với p là số
nguyên tố lớn hơn 3 [10].


8
Tạo khóa:
 Chọn Ep(a,b) và điểm G – là phần tử sinh
 Mỗi người dùng chọn 1 số ngẫu nhiên:
Alice chọn nA và tính PA = nA*G
Bob chọn nB và tính PB = nB*G
 Khóa công khai: PA, PB, Ep(a,b), G
 Khóa bí mật: nA, nB.
Mã hóa:
 Thông báo là PM thuộc Ep(a,b), Alice gửi thông báo mã PC cho Bob:
 B1: Alice lấy khóa công khai của Bob

 B2: Alice chọn một số ngẫu nhiên k và tính:
PC = [k*G, (PM + k*PB)] = [k*G, Q]
 B3: Alice gửi bản mã PC cho Bob.
Giải mã:
 Bob nhận được bản mã PC, Bob giải mã như sau:
 Bob dùng khóa bí mật của mình là nB và tính:
PM = [(PM + k*PB) – nB(k*G)] = [Q – nB(k*G)].
Ví dụ: Cho đường cong E(F53): y2  x3  7x  9 , có điểm G = (5,13) thuộc đường
cong E.
Tạo khóa:
Giả sử số mũ bí mật của Bob là nB = 7, do đó Bob tính: PB = nB*G = 7G
Có: G + G = (5,13) + (5,13)

3x12  a 3*52  7 82 41
λ=
=
=
=
= 41*13-1 mod 53
26
13
2y1
2*13
= 41*49 mod 53 = 48
x3 = λ2 – x1 – x2 = 482 – 5 – 5 = 2294 mod 53 = 15
y3 = λ (x1 – x3 ) –y1 = 48*(5 – 15) – 13 = - 493 mod 53 = 37
 G + G = (15,37) = 2G
Tương tự ta có: 4G = 2G + 2G = (15,37) + (15,37) = (29,3)
6G = 4G + 2G = (29,3) + (15,37) = (3,2)



9
7G = 6G + G = (3,2) + (5,13) = (9,18) = PB.
 Khóa công khai: E53(7,9) ; PB = (9,18); G = (5,13).
 Khóa bí mật: nB = 7.
Mã hóa:
Giả sử Alice muốn mã thông báo PM = (8,10) (là điểm thuộc E) thì Alice lấy
khóa công khai của Bob.
Alice chọn ngẫu nhiên k = 4 và tính: PC = [k*G, (PM + k*PB)]
Có: k*G = 4G = (29,3)
k*PB = 2PB + 2PB
2PB = (9,18) + (9,18) = (51,26)
=> k*PB = 2PB + 2PB = (51,26) + (51,26)= (47,4)
=> PM + k*PB = (8,10) + (47,4)= (9,35)
 Alice gửi cho Bob bản mã PC = [(29,3), (9,35)]
Giải mã:
Nếu Bob nhận được bản mã PC, Bob giải mã như sau:
Dùng khóa bí mật của mình là nB và tính:
PM = [(PM + k*PB) – nB(k*G)]
Có: PM + k*PB = PC = (9,35)
nB(k*G) = 7(29,3) = (47,4)
[(PM + k*PB) – nB(k*G)] = (9,35) – (47,4) = (9,35) + (47,49)
= (8,10) = PM
 PM = [(PM + k*PB) – nB(k*G)] = (8,10).
Như vậy phép giải mã cho bản rõ là đúng.
1.2.5. Sơ đồ trao đổi khóa Elliptic
Về mặt nguyên tắc thì tất cả các thuật toán mật mã dựa trên bài toán lô-ga-rít
rời rạc trên trường hữu hạn đều có thể chuyển lên đường cong elliptic trên trường
hữu hạn được.


Muốn sử dụng được các thuật toán mật mã Elliptic thì công việc đầu tiên cần
làm là ánh xạ được các thông báo lên tọa độ các điểm trên đường cong Elliptic vì
các thuật toán mật mã Elliptic chỉ làm việc với các điểm và tọa độ của chúng.


10
Trường hữu hạn GF(q) và đường cong elliptic E xác định trên trường hữu
hạn này được công bố công khai. Điểm P ∈ E được công bố công khai. P không
nhất thiết phải là phần tử sing của E nó cần phải có bậc lớn [9].
1. Alice chọn một số nguyên dương a có độ lớn cùng cỡ với q và công bố
công khai điểm aP ∈ E.
2. Bob chọn số nguyên dương b tương tự với cách làm của Alice và công bố
công khai bP ∈ E.
3. Cả Alice và Bob tính K = abP ∈ E và sử dụng như là khóa phiên chung
với nhau.
Độ an toàn: Nếu Alice muốn tính K khi biết P, aP, bP thì anh ta phải tìm
được a từ aP hoặc b từ bP. Việc này là tương đương với việc giải bài toán lô-ga-rít
rời rạc Elliptic.
1.2.6. Thuật toán chữ ký số Elliptic (ECDSA)
Chuẩn bị:
• Alice chọn đường cong elliptic E trên trường hữu hạn GF(p) sao cho số
điểm của E trên GF(p) là fr và r là số nguyên tố lớn và f là số nguyên dương nhỏ
nhất để cho thuật toán hiệu quả [9, 12] .
• Alice chọn điểm cơ sở G trên E trên GF(q) có bậc r
• Alice chọn số nguyên dương a và tính Q = aG
• Alice công bố thông tin công khai sau đây: GF(q), E, r, G, Q.
Ký chữ ký số:
• Alice chọn số nguyên dương ngẫu nhiên k với 1 ≤ k < r và tính R = kG = (x,y).
• Alice tính s = k-1(m + ax) ( mod r) và tài liệu ký là (m, R, s).
Kiểm tra chữ ký số:

• Bob tính u = s-1m ( mod r) và u = s-1x (mod r)
• Bob tính V = u1G + u2Q
• Bob tuyên bố chữ ký số hợp lệ nếu V = R
Tính đúng đắn:
Nếu thông báo được ký đúng thì đẳng thức kiểm tra đúng:
V = u1G + u2Q = s-1mG + s-1xQ = s-1(mG + xaQ) kG = R.


11
Sự khác nhau cơ bản của ECDSA và sơ đồ chữ ký số ElGamal Elliptic là thủ
tục kiểm tra chữ ký số. Trong sơ đồ ElGamal đẳng thức kiểm tra f(R)B + sR = mA
đòi hỏi ba phép tính với một số nguyên lần một điểm và đây là những phần tốn kém
nhất, trong khi đó ECDSA chỉ đòi hỏi hai phép tính như vậy. Cải tiến này là nâng
cao hiệu quả của ECDSA một khi cần nhiều lần kiểm tra chữ ký số và rất có giá trị
trên thực tế.
1.2.7. So sánh giữa Elliptic và RSA
Mã hóa khóa công cộng dựa trên hai vấn đề lớn của toán học là bài toán
logarit rời rạc và bài toán phân tích số. Phương pháp RSA dựa trên bài toán phân
tích số (IFP – Integer Factoring Problem). Bài toán này đã được đưa ra từ cuối thập
niên 70. Độ phức tạp tính toán của IFP là cận-hàm mũ (dùng thuật toán Index
Calculus). Phương pháp ECC dựa trên bài toán logarit rời rạc trên nhóm các điểm
đường cong elliptic trong trường hữu hạn (ECDLP – Elliptic Curve Discrete
Problem). Bài toàn được đưa ra năm 1985 với độ phức tạp tính toán là hàm mũ,
nghĩa là khó hơn so với IFP. ECDLP cho tới nay vẫn chưa có thuật toán nào được
xem là hiệu quả kiểu cận-hàm mũ để giải bài toán này.
Do không có thuật toán cận-hàm mũ để giải bài toán ECDLP nên với cùng
một mức an toàn (security level) thì hệ mật ECC yêu cầu độ dài khóa ngắn hơn rất
nhiều so với hệ mật RSA. Chẳng hạn để cho mức an toàn tương đương với RSA
1024-bít thì hệ mật ECC chỉ yêu cầu độ dài khóa tương ứng là 160 bít. Kích thước
khóa của ECC nhỏ hơn so với RSA nên thời gian sinh khóa, mã hóa/giải mã của hệ

thống bảo mật dựa trên ECC nhanh hơn hệ thống RSA.
Để thực hiện việc so sánh sử dụng RSA và ECC trong quá trình bắt tay của
SSL, người ta sử sụng hai bộ mã khác nhau:
+TLS_RSA_WITH_RC4_128_SHA
+TLS_ECDH_ECDSA_WITH_RC4_128_SHA
Với mỗi bộ mã người ta sử dụng ba cấp độ an ninh khác nhau. Đối với RSA
người ta sử dụng khoá có độ dài 1024 bit, 1536 bit và 1048 bit, Với ECC sử dụng
khoá có độ dài 160 bit, 192 bit và 224 bit. Người ta sử dụng một công cụ để thực
hiện nhiều phiên giao dịch đồng thời một lúc nhằm đo hai thông số trên một server
[10]. Và kết quả được thể hiện ở bảng 1.2.


12
Bảng 1.1. So sánh sử dụng RSA và ECC trong quá trình bắt tay của SSL
ECC160

RSA1024

ECC192

RSA1536

ECC224

RSA2048

Thời gian(ms)

3.69


8.75

3.87

27.47

5.12

56.18

Số lệnh thực hiện / s

271.3

114.3

258.1

36.4

195.5

17.8

So sánh số lệnh thực hiện
trong cùng một thời gian
So sánh độ dài khoá

2.4:1


7.1:1

11:1

1:6.4

1:8

1:9.1

Bảng 1.2. So sánh kích thước khóa RSA và ECC với cùng mức độ an toàn
Thời gian cần để
tấn công vào khóa
(đơn vị: năm)
104

Kích thước khóa
RSA / DSA

ECC

Tỉ lệ kích thước
khóa RSA : ECC

512

106

5:1


108

768

132

6:1

1011

1024

160

7:1

1020

2048

210

10:1

1078

21000

600


35:1

Hình 1.5. So sánh mức độ bảo mật giữa ECC với RSA/DSA


13
Do có kích thước khóa nhỏ và khả năng phát sinh khóa rất nhanh nên ECC
rất được quan tâm để áp dụng cho các ứng dụng trên môi trường giới hạn về thông
lượng truyền dữ liệu, giới hạn về khả năng tính toán, khả năng lưu trữ. ECC thích
hợp với các thiết bị di động kỹ thuật số như handheld, PDA, điện thoại di động và
thẻ thông minh (smart card).
Việc sử dụng ECC mang lại những hiệu quả sau: tăng tốc độ, yêu cầu khả
năng tính toán thấp hơn, tiết kiệm dải thông đường truyền, tăng hiệu quả lưu trữ,
giảm độ dài các chứng nhận… Các ưu điểm trên của hệ mật ECC có thể phát huy
hiệu quả trong các ứng dụng mà đường truyền, khả năng tính toán, tốc độ và lưu trữ
bị hạn chế. Và các ứng dụng đó được thể hiện rất hiệu quả trong thương mại điện
tử, web servers…
Hiện nay hầu hết các công ty lớn về viễn thông và bảo mật trên thế giới đều
quan tâm phát triển. Cả phòng thí nghiệm chính của RSA (RSA Security
Laboratory) cũng đã nghiên cứu và đưa ECC vào sản phẩm của mình.
Tuy nhiên, ECC vẫn có một số hạn chế nhất định. Hạn chế thứ nhất đó là độ
khó về toán học của hệ mật ECC, ngoài ra việc chọn sử dụng các tham số đường
cong và điểm cơ sở chung như thế nào để thật sự đạt được độ bảo mật và an toàn
cao là tương đối phức tạp.
ECC cung cấp khả năng ứng dụng rất lớn trong lĩnh vực mã hóa khóa công
cộng trên các thiết bị di động và smart card. Tương lai ECC sẽ được nghiên cứu đưa
vào thực tiễn phổ biến hơn để thay thế RSA.
1.3. Kết hợp mật mã đối xứng và mật mã khóa công khai
Nhược điểm của mật mã khóa công khai là tốc độ chậm vì độ phức tạp tính
toán lớn, dẫn đến việc tốn nhiều thời gian mã hóa và giải mã. Do đó, khóa công khai

không thuận tiện cho việc mã hóa một khối lượng dữ liệu lớn.
Chính vì vậy, chúng ta có thể kết hợp cả hai phương pháp này để nâng cao
hiệu quả hoạt động của mã hóa. Ta xét các bước kết hợp:
- Sử dụng phương pháp mật mã đối xứng để mã hóa tập tin.
- Sử dụng phương pháp mật mã khóa công khai để mã hóa mầm khóa của
khóa đối xứng của người gửi bằng khóa công khai của người nhận, sau đó gửi đến
cho người nhận.


14
- Người nhận dùng khóa riêng của mình để giải mã mầm khóa của khóa đối
xứng. Sau đó, dùng khóa đối xứng vừa giải mã được để giải mã tài liệu.
Sơ đồ hoạt động [8]:

Hình 1.6. Kết hợp khóa công khai và khóa bí mật
1.4. Kết luận chương 1
Trong chương này luận văn đã trình bày tổng quan về cơ sở lý thuyết mật mã
và một số thuật toán mã hóa công khai như: thuật toán RSA, hệ mật Elgamal trên
đường cong Elliptic, thuật toán chữ ký số Elliptic (ECDSA). Trên cơ sở các thuật
toán, tác giả cũng đã phân tích rõ sự so sánh giữa các thuật toán đã nêu, làm cơ sở
hướng nghiên cứu chương tiếp theo trong luận văn này.


×