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

Nghiên cứu và xây dựng hạ tầng khóa công khai PKI (Luận văn thạc sĩ)

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

HỌC VIỆN CÔNG NGHỆ BƢU CHÍNH VIỄN THÔNG
----------------------------------

Đỗ Khắc Hiệu

NGHIÊN CỨU VÀ XÂY DỰNG
HẠ TẦNG KHÓA CÔNG KHAI PKI

Chuyên ngành:

Hệ thống thông tin

Mã số:

8480104

LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng ứng dụng)

NGƯỜI HƯỚNG DẪN KHOA HỌC: PGS.TS. NGUYỄN HIẾU MINH

HÀ NỘI - 2018


i

LỜI CAM ĐOAN
Tôi cam đoan đề tài: “Nghiên cứu và xây dựng hạ tầng khóa công khai
PKI” là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của PGS.TS.
Nguyễn Hiếu Minh.
Các kết quả, phân tích, kết luận trong luận văn thạc sỹ này (ngoài phần được


trích dẫn) đều là kết quả làm việc của tác giả, các số liệu nêu trong luận văn là trung
thực và chưa từng được công bố trong bất kỳ công trình nào khác.
Nếu sai tôi xin hoàn toàn chịu trách nhiệm.

Hà Nội, ngày tháng năm 2018
Tác giả

Đỗ Khắc Hiệu


ii

LỜI CẢM ƠN
Lời đầu tiên cho em xin gửi lời cảm ơn chân thành đến các thầy, cô giáo
thuộc Khoa CNTT, Khoa QT&ĐT sau đại học thuộc Học viện Công nghệ Bưu
chính viễn thông đã tận tình giảng dạy, truyền đạt các nội dung kiến thức, kinh
nghiệm quý báu trong suốt quá trình em theo học tại Học viện. Với những bài học
quý giá, sự kèm cặp, chỉ bảo và truyền thụ tâm huyết của các thầy, cô đã giúp cá
nhân em hoàn thiện hơn nữa hệ thống kiến thức chuyên ngành, phục vụ tốt hơn yêu
cầu công tác của đơn vị đồng thời nâng cao hơn vốn tri thức của bản thân.
Đặc biệt, em xin gửi lời cảm ơn trân thành tới thầy hướng dẫn khoa học
PGS-TS. Nguyễn Hiếu Minh, Khoa Viễn thông – Học viện Kỹ Thuật Mật Mã đã
tận tình chỉ bảo, hướng dẫn, cung cấp tài liệu và các nội dung kiến thức quý báu,
đồng thời có sự định hướng đúng đắn giúp em hoàn thành được luận văn này.
Em cũng xin được bày tỏ sự cảm ơn sâu sắc tới gia đình, đồng nghiệp đã tạo
điều kiện, dành sự ủng hộ đối với bản thân em để có nhiều thời gian cho khóa học,
đạt được những kết quả khả quan trong quá trình học tập. Đồng thời xin chân thành
cảm ơn tập thể lớp Cao học Hệ thống thông tin – Đợt 1 năm 2016 đã đồng hành,
khích lệ và chia sẻ trong suốt quá trình học tập.
Trong quá trình thực hiện luận văn, mặc dù bản thân đã cố gắng, chủ động

trong việc sưu tầm tài liệu, củng cố kiến thức,… tuy nhiên chắc chắn luận văn vẫn
còn nhiều thiếu sót. Em rất mong nhận được sự chỉ dạy, đóng góp tận tình của các
thầy, cô để luận văn của em được hoàn thiện hơn nữa và có tính ứng dụng cao hơn
trong thực tiễn.
Xin trân trọng cảm ơn!
Hà Nội, ngày

tháng

Học viên

Đỗ Khắc Hiệu

năm 2018


iii

MỤC LỤC
MỞ ĐẦU .................................................................................................................... 1
Chƣơng 1. TỔNG QUAN VỀ MẬT MÃ................................................................. 4
1.1. Khái niệm hệ mật mã ............................................................................... 4
1.2. Hệ mật mã khóa đối xứng ........................................................................ 4
1.3. Hệ mật mã khóa công khai ...................................................................... 6
Kết luận chương 1 ......................................................................................... 13
Chƣơng 2. TỔNG QUAN VỀ HẠ TẦNG KHÓA CÔNG KHAI ...................... 15
2.1. Định nghĩa .............................................................................................. 15
2.1.1. Vai trò .................................................................................................. 15
2.1.2. Một số ứng dụng ................................................................................. 18
2.1.3. Một số hệ thống PKI .......................................................................... 20

2.1.4. Những vấn đề liên quan ..................................................................... 20
2.2. Các thuật toán sử dụng trong PKI ........................................................ 21
2.2.1. Thuật toán RSA .................................................................................. 22
2.2.2. Chứng chỉ số ....................................................................................... 22
2.3. Các thành phần của PKI ....................................................................... 31
2.3.1. Tổ chức chứng thực (Certificate Authority) ..................................... 32
2.3.2. Trung tâm đăng ký ( Registration Authorities)................................. 33
2.3.3. Thực thể cuối( End Entry) ................................................................. 34
2.3.4. Hệ thông lưu trữ(Responsitory) ......................................................... 34
2.4. Chức năng cơ bản của PKI ................................................................... 35
2.4.1. Chứng thực .......................................................................................... 35
2.4.2. Thẩm tra .............................................................................................. 35
2.4.3. Một số chức năng khác....................................................................... 35
2.5. Một số mô hình PKI ............................................................................... 38
2.5.1. Mô hình CA đơn ................................................................................ 39
2.5.2. Mô hình phân cấp ............................................................................... 40
2.5.3. Hoạt động của mô hình phân cấp ...................................................... 41


iv

2.6. Thực trạng phát triển PKI tại Việt Nam ............................................... 43
2.6.1. Hiện trạng triển khai PKI chuyên dùng Chính phủ .......................... 43
2.6.2. Hiện trạng triển khai PKI cho hoạt động kinh tế - xã hội ................ 44
Kết luận chương 2 ......................................................................................... 45
Chƣơng 3. XÂY DỰNG CHƢƠNG TRÌNH THỬ NGHIỆM ............................ 47
3.1. Mô hình của hệ thống ............................................................................ 47
3.1.1. Mô hình ............................................................................................... 47
3.1.2. Một số hàm sử dụng ........................................................................... 48
3.1.3. Giới thiệu một số sơ đồ nghiệp vụ..................................................... 51

3.2. Xây dựng hệ thống cơ sở dữ liệu ........................................................... 53
3.2.1. Mô hình dữ liệu, cơ sở dữ liệu ........................................................... 53
3.2.2. Hệ thống bảng dữ liệu ........................................................................ 54
3.3. Giới thiệu giao diện chính và chức năng của hệ thống ....................... 55
3.3.1. Đăng ký thông tin người dùng ........................................................... 56
3.3.2. Duyệt hồ sơ cấp chứng chỉ ................................................................. 56
3.3.3. Sinh cặp khóa ...................................................................................... 57
3.3.4. Tạo chứng chỉ cho CA ....................................................................... 58
3.3.5. Chứng chỉ cho người sử dụng ........................................................... 59
3.3.6. Kiểm tra chứng chỉ ............................................................................. 59
3.3.7. Thu hồi chứng chỉ ............................................................................... 60
Kết luận chương 3 ......................................................................................... 61
KẾT LUẬN .............................................................................................................. 62
TÀI LIỆU THAM KHẢO ...................................................................................... 63
PHỤ LỤC…. ............................................................................................................ 64


v

DANH MỤC CÁC KÝ HIỆU, CHỮ VIẾT TẮT

Từ viết

Tiếng Anh

tắt

Tiếng Việt

AC


Attribute Certifcates

Chứng chỉ thuộc tính

AES

Advanced Encryption Standard

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

ARLs

Authority Revocation List

Danh sách tổ chức thu hồi

CA

Certificate Authority

Tổ chức chứng thực

CP

Certificate Policies

Chính sách của chứng chỉ

CPS


Certificate Practice Statement

Thủ tục hoạt động bên trong

CRLs

Certificate Revocation List

Danh sách chứng chỉ bị thu hổi

DES

Data Encryption Standard

Chuẩn mã hóa dữ liệu

DNS

Domain Name System

Hệ thống phân dải tên miền

DSAs

Directory System Agents

Đại lý của hệ thống thư mục

DSS


Digital Signature Standard

Chuẩn chữ ký số

FTP

File Transfer Protocol

Giao thức truyền file

IDEA

International

Data

Encryption Thuật toán mã hóa dữ liệu quốc tế

Algorithm
IETF

Internet Engineering Task Force

Đội đặc nhiệm kỹ thuật trên
internet

IP

Internet Protocol


Giao thức liên mạng

ITU

International Telecommunication Liên minh viễn thông quốc tế
Union

LAN

Local Area Network

LDAP

Lightweigth
Protocol

OCSP

Mạng máy tính cục bộ

Directory Access Giao thức truy cập cấu trúc thư
mục

Online Certificate Status Protocol Giao thức trạng thái chứng chỉ
online


vi


OID

Object Identifier

Định danh đối tượng

PGP

Pretty Good Private

Mật mã PGP

PKI

Public Key Infrastructure

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

RA

Registration Authority

Trung tâm đăng ký

RFC

Request For Comment

Đề nghị duyệt thảo và bình luận


RSA

Rivest Shamir Adleman

Hệ mật RSA

SPKC

Simple Public Key Certificates

Chứng chỉ khóa công đơn giản


vii

DANH MỤC CÁC BẢNG
Bảng 2.1. Mô hình sử dụng xác thực ........................................................................21


viii

DANH MỤC CÁC HÌNH
Hình 1.1. Quá trình mã hóa và giải mã .......................................................................4
Hình 1.2. Mã hóa thông điệp sử dụng khóa công khai P ............................................6
Hình 1.3. Giải mã thông điệp bằng khóa riêng của người nhận .................................7
Hình 1.4. Sơ đồ chữ ký RSA .......................................................................................7
Hình 1.5. Mô tả thuật toán ..........................................................................................8
Hình 1.6. Băm thông điệp ...........................................................................................9
Hình 1.7. Ký trên bản băm ..........................................................................................9
Hình 1.8. Truyền dữ liệu thông tin cần gửi .................................................................9

Hình 1.9. Xác minh chữ ký .......................................................................................10
Hình 1.10. Tiến hành băm thông điệp x đi kèm ........................................................10
Hình 1.11. Kiểm tra tính toàn vẹn của thông điệp ....................................................10
Hình 1.12. Khởi tạo khóa RSA .................................................................................11
Hình 1.13. Mã hóa và giải mã ...................................................................................11
Hình 1.14. Sử dụng khóa bí mật S để mã thông điệp và khóa công khai P để mã
khóa bí mật S .............................................................................................................12
Hình 1.15. Sử dụng khóa riêng P để giải mã khóa bí mật S và khóa bí mật S để giải
mã thông điệp ............................................................................................................12
Hình 2.1. Khuôn dạng chứng chỉ X.509 ...................................................................24
Hình 2.2. Khuôn dạng danh sách chứng chỉ bị thu hồi .............................................29
Hình 2.3. Mô hình xây dựng PKI cơ bản ..................................................................31
Hình 2.4. Các thành phần PKI ..................................................................................32
Hình 2.5. Mô hình CA đơn .......................................................................................39
Hình 3.1: Mô hình hệ thống PKI ...............................................................................47
Hình 3.2. Đăng ký, duyệt cấp chứng chỉ ...................................................................52
Hình 3.3. Thu hồi, tạm dừng hay khôi phục chứng chỉ ............................................52
Hình 3.4. Xác thực chứng chỉ ...................................................................................53
Hình 3.5. Thiết kế dữ liệu bảng đăng ký ...................................................................54


ix

Hình 3.6. Thiết kế dữ liệu bảng đăng ký ...................................................................55
Hình 3.7. Màn hình chính của chương trình .............................................................55
Hình 3.8. Đăng ký thông tin người dùng ..................................................................56
Hình 3.9. Duyệt hồ sơ xin cấp chứng chỉ ..................................................................56
Hình 3.10. Sinh cặp khóa cho User ...........................................................................57
Hình 3.11. Sinh cặp khóa cho CA ............................................................................. 58
Hình 3.12. Tạo chứng chỉ cho CA ............................................................................58

Hình 3.13. Tạo chứng chỉ cho USER ........................................................................59
Hình 3.14. Kiểm tra chứng chỉ ..................................................................................60
Hình 3.15. Danh sách chứng chỉ bị thu hồi ...............................................................61


1

MỞ ĐẦU
1. Lý do chọn đề tài
Ngày nay khi mà cuộc cách mạng công nghệ lần thứ tư đang diễn ra rộng
khắp, cùng với đó là sự phát triển rất nhanh chóng số lượng các thiết bị thông minh,
một mặt đem lại nhiều ứng dụng tiện lợi, thú vị và dần thay thế các hoạt động
truyền thống trong thế giới thực.Mặt khác nó đặt ra các vấn đề về sự an toàn, tính
tin cậy của những giao dịch trên Internet.
Cơ sở hạ tầng khóa công khai (PKI) có thể đáp ứng, giải quyết những vấn đề
cơ bản nhất cho những yêu cầu về sự an toàn, tính tin cậy của những giao dịch qua
mạng. Dựa trên các dịch vụ cơ bản về chứng thực số và chữ ký số, một PKI chính là
bộ khung của các chính sách, dịch vụ và phần mềm mã hóa, đáp ứng nhu cầu bảo
mật của người sử dụng.
Đối với Bộ quốc phòng thì đã đặt mục tiêu sẽ xây dựng một hệ thống có vai
trò giống như hệ thống PKI càng sớm càng tốt để giảm thiểu các thủ tục hành chính,
tích kiệm chi phí in ấn và vận chuyển cũng như phục vụ thật tốt quá trình tự động
hóa chỉ huy, điều hành thực hiện nhiệm vụ.
Chính vì thế mà học viên chọn đề tài “Nghiên cứu và xây dựng hạ tầng
khóa công khai PKI”làm đề tài nghiên cứu.
2. Tổng quan về vấn đề nghiên cứu
Trên cơ sở các yêu cầu đặt ra về sự an toàn và tính tin cậy của các giao dịch
qua mạng Internet thì Hạ tầng khóa công khai PKI đề tài mà luận văn nghiên cứu
cần xác định một số nội dung phải giải quyết như sau:
- Tìm hiều tổng quan về mật mã.

- Tìm hiểu mô hình Hạ tầng khóa công khai PKI, các thành phần và các thuật
toán sử dụng trong xây dựng mô hình PKI, thực trạng triển khai tại Việt Nam.
- Xây dựng chương trình thử nghiệm của một hệ thống PKI.
3. Mục đích nghiên cứu
3.1. Phần thuyết minh


2

Trình bày những khái niệm, đặc điểm cơ bản của một hệ thống PKI.
Nghiên cứu cơ sở lý thuyết về mật mã, bao gồm: tổng quan về các hệ mật,
chữ ký số, hàm băm, sinh khóa, phân phối khóa, mã hóa và giải mã, chứng chỉ số và
giải pháp quản lý.
Nghiên cứu lý thuyết về mô hình trung tâm xác thực, bao gồm tổng quan mô
hình, các thành phần và chức năng cơ bản của chúng, mô hình xác thực một cấp và
đa cấp.
Đi sâu vào tìm hiểu phần mã hóa, giải mã và chữ ký số.
3.2. Phần Thực Nghiệm
Lập trình các modul của hệ thống PKI, tập trung vào phần mã hóa, giải mã
và chữ ký số. Chạy thử nghiệm một hệ thống PKI với các chức năng cơ bản.
4. Đối tƣợng và phạm vi nghiên cứu
4.1. Đối tượng nghiên cứu:
Hệ thống PKI và các thành phần liên quan
4.2. Phạm vi nghiên cứu:
- Nghiên cứu chuyên sâu Modul mã hóa, giải mã và chữ ký số.
- Nghiên cứu mô hình CA đơn. Đây lầ mô hình cơ bản và đơn giản nhất
trong hệ thống các mô hình tin cậy của PKI.
- Chạy thử nghiệm hệ thống với các chức năng cơ bản.
5. Phƣơng pháp nghiên cứu
- Nghiên cứu lý thuyết: Sử dụng các kỹ năng phân tích và tổng hợp thông tin

kết hợp từ nhiều nguồn như sách, báo, tài liệu trên Internet với kiến thức nền tảng
của bản thân để xây dựng các yêu cầu mà luận văn đề ra.
- Nghiên cứu thực nghiệm : Bao gồm các nội dung
+ Tìm hiểu hệ thống PKI để xây dựng một mô hình trung tâm xác thực.
+ Xây dựng hệ thống PKI và vận hành hệ thống với các chức năng cơ bản.
+ Công cụ thực nghiệm : Sử dụng Ngôn ngữ lập trình C# trên bộ Visual
Studio kết hợp với Hệ Quản trị CSDL SQL Server


3

6. Bố cục luận văn
Luận văn có bố cục gồm: Phần mở đầu, 3 chương chính, phần kết luận, tài
liệu tham khảo và phụ lục. Được bố trí theo thứ tự:
- Mở đầu.
- Chương 1: Tổng quan về mật mã
- Chương 2:Tổng quan về hạ tầng khóa công khai.
- Chương 3:Xây dựng chương trình thử nghiệm
- Kết luận.
- Tài liệu tham khảo.


4

Chƣơng 1.TỔNG QUAN VỀ MẬT MÃ
1.1. Khái niệm hệ mật mã
Hệ mật mã được định nghĩa là một bộ (P, C, K, E, D), trong đó:
- P là tập hữu hạn các bản rõ có thể
- C là tập hữu hạn các bản mã có thể
- K là tập hữu hạn các khóa có thể

- E là tập các hàm lập mã
- D là tập các hàm giải mã. Với mỗi k thuộc K, có một hàm lập mã
ek thuộc E, ek : P -> C và một hàm giải mã dk thuộc D, dk : C -> P sao cho dk(ek(x))
= x , với mọi x thuộc P[1], [2], [3].

0.1Hình 1.1. Quá trình mã hóa và giải mã

1.2. Hệ mật mã khóa đối xứng
Các phương pháp mật mã cổ điển đã được biết đến từ khoảng 4000 năm
trước. Một số kỹ thuật đã được những người Ai Cập sử dụng từ nhiều thế kỷ trước.
Những kỹ thuật này chủ yếu sử dụng hai phương pháp chính là phép thay thế và
phép chuyển dịch. Trong phép thay thế, một chữ cái này được thay thế bởi chữ cái
khác và trong phép chuyển dịch, các chữ cái được sắp xếp theo một trật tự khác.
Hệ mã chuẩn DES được xây dựng tại Mỹ trong những năm 70 theo yêu cầu
của Văn phòng quốc gia về chuẩn (NBS) và được sự thẩm định của an ninh quốc
gia là một ví dụ về mật mã cổ điển. DES kết hợp cả hai phương pháp thay thế và


5

chuyển dịch.DES thực hiện mã hóa trên từng khối bản rõ là một xâu 64bit, có khóa
là một xâu 56 bit và cho ra bản mã cũng là một xâu 64 bit. Hiện nay DES và biến
thể của nó (3DES) vẫn được sử dụng thành công trong nhiều ứng dụng.
Trong các hệ mã đối xứng chỉ có một khóa được chia sẻ giữa các bên tham
gia liên lạc. Cứ mỗi lần truyền tin bảo mật, cả người gửi A và người nhận B cùng
thỏa thuận trước với nhau một khóa chung K, sau đó người gửi dùng ek để lập mã
cho thông báo gửi đi và người nhận dùng dk để giải mã bản mật mã nhận được.
Người gửi và người nhận có cùng một khóa chung K, được giữ bí mật dùng cho cả
lập mã và giải mã. Những hệ mật mã cổ điển với cách sử dụng trên được gọi là mật
mã khóa đối xứng hay còn gọi là mật mã khóa bí mật.

Độ an toàn của hệ mật mã đối xứng phụ thuộc vào khóa. Nếu để lộ khóa thì
bất kỳ người nào cũng có thể mã hóa và giải mã thông điệp[1].
Ưu và nhược điểm của hệ mật mã hóa đối xứng
Ưu điểm nổi bật của các hệ mật mã khóa đối xứng là việc xây dựng một hệ
mật mã có độ bảo mật cao khá dễ dàng về mặt lý thuyết. Nhưng nếu như không kể
đến việc cần có một nguồn sinh khóa ngẫu nhiên thì việc phân phối, lưu trữ bảo mật
và thỏa thuận khóa là một vấn đề khó chập nhận được trong mạng truyền thông
ngày nay. Trong một mạng có n người dùng, nếu cần khóa cho từng cặp thì cần
n(n+1)/2 khóa.
Để khắc phục hiện tượng không thể lưu trữ một khối lượng khóa quá lớn đáp
ứng được nhu cầu mã dịch, người ta xem xét đến việc sử dụng các hệ mật mã khối
với độ dài không lớn lắm như DES… hoặc các hệ mật mã dòng mà khóa được sinh
ra từ một nguồn giả ngẫu nhiên bằng thuật toán.
Mặc dù đã thực hiện việc mã hóa và giải mã bằng các hệ mật mã khối hay
bằng thuật toán sinh khóa như đã nêu ở trên thì vấn đề phân phối và thỏa thuận
khóa vẫn phải được thực hiện. Như vậy phân phối và thỏa thuận khóa là một vẫn đề
chưa thể được giải quyết trong các hệ mật mã khóa đối xứng.


6

1.3. Hệ mật mã khóa công khai
Để giải quyết vấn đề phân phối và thỏa thuận khóa của mật mã khóa đối
xứng, năm 1976 Diffie và Hellman đã đưa ra khái niệm về hệ mật mã khóa công
khai và một phương pháp trao đổi công khai để tạo ra một khóa bí mật chung mà
tính an toàn được bảo đảm bởi độ khó của một bài toán toán học cụ thể (là bài toán
tính “logarit rời rạc”). Hệ mật mã khóa công khai hay còn được gọi là hệ mật mã
phi đối xứng sử dụng một cặp khóa gồm khóa mã hóa còn được gọi là khóa công
khai( public key) và khóa giải mã được gọi là khóa bí mật hay khóa riêng ( private
key). Trong hệ mật này, khóa mã hóa khác với khóa giải mã. Về mặt toán học thì từ

khóa công rất khó tính được khóa riêng. Biết được khóa này không dễ dàng tìm
được khóa kia. Khóa giải mã được giữ bí mật trong khi khóa mã hóa được công bố
công khai. Một người bất kỳ có thể sử dụng khóa công khai để mã hóa tin tức,
nhưng chỉ có người nào có đúng khóa giải mã mới có khả năng xem được bản rõ[1].
Người gửi A sẽ mã hóa thông điệp bằng khóa công của người nhận và người
nhận B sẽ giải mã thông điệp với khóa riêng tương ứng của mình.
Quá trình này được mô tả trong hình 1.2 và 1.3 dưới đây:

0.2Hình 1.2. Mã hóa thông điệp sử dụng khóa công khai P


7

0.3Hình 1.3. Giải mã thông điệp bằng khóa riêng của ngƣời nhận

Có nhiều hệ thống khóa công khai được triển khai rộng rãi như hệ RSA, hệ
ELGamal sử dụng giao thức trao đổi khóa Diffie – Hellman và nổi lên trong những
năm gần đây là hệ đường cong Elliptic. Trong số các hệ mật mã trên thì hệ RSA là
hệ được cộng đồng chuẩn quốc tế và công nghiệp chấp nhận rộng rãi trong việc
thực thi mật mã khóa công khai.
Chữ ký số RSA:

0.4Hình 1.4. Sơ đồ chữ ký RSA

RSA là mã công khai được sáng tạo bởi Rivest, Shamir & Adleman ở MIT
(Trường Đại học Công nghệ Massachusetts) vào năm 1977. RSA là mã công khai


8


được biết đến nhiều nhất và sử dụng rộng rãi nhất hiện nay. Nó dựa trên các phép
toán lũy thừa trong trường hữu hạn các số nguyên theo modulo nguyên tố. Cụ thể,
mã hoá hay giải mã là các phép toán luỹ thừa theo modulo số rất lớn. Việc thám mã,
tức là tìm khoá riêng khi biết khoá công khai, dựa trên bài toán khó là phân tích một
số rất lớn đó ra thừa số nguyên tố. Nếu không có thông tin gì, thì ta phải lần lượt
kiểm tra tính chia hết của số đó cho tất cả các số nguyên tố nhỏ hơn căn của nó. Đây
là việc làm không khả thi.
Người ta chứng minh được rằng, phép lũy thừa cần O((log n)3) phép toán,
nên có thể coi lũy thừa là bài toán dễ. Cần chú ý rằng ở đây ta sử dụng các số rất lớn
khoảng 1024 bit, tức là cỡ 10350. Tính an toàn dựa vào độ khó của bài toán phân tích
ra thừa số các số lớn. Bài toán phân tích ra thừa số yêu cầu O(e log n log log n)
phép toán, đây là bài toán khó.[2].

0.5Hình 1.5.Mô tả thuật toán

Quá trình ký và kiểm tra chữ ký được mô tả trong hình 1.6,1.7,1.8 và
1.9,1.10,1.11
Giả sử muốn gửi cho B thông điệp x. A thực hiện các bước như sau:
- Bƣớc1:A băm thông điệp x ( Hình 1.6), thu được bản đại diện z = h(x) – có
kích thước cố định 128 bit hoặc 160 bit.


9

0.6Hình 1.6. Băm thông điệp

- Bƣớc2:A ký số trên bản đại diện z ( Hình 1.7), bằng khóa bí mật của mình,
thu được bản ký số y = sigk (z).

0.7Hình 1.7. Ký trên bản băm


- Bƣớc3:A gửi (x,y) cho B ( Hình 1.8).

0.8Hình 1.8. Truyền dữ liệu thông tin cần gửi

Khi B nhận được (x,y). B thực hiện các bước sau:
- Bƣớc1:B kiểm tra chữ ký số để xác minh xem thông điệp mà mình nhận
được có phải được gửi từ A hay không bằng cách giải mã chữ ký số y, bằng khóa
công khai của A, được z ( Hình 1.9).


10

0.9Hình 1.9. Xác minh chữ ký

- Bƣớc2:B dùng một thuật toán băm – tương ứng với thuật toán băm mà A
dùng – để băm thông điệp x đi kèm, nhận được h(x). (Hình 1.10)

0.10Hình 1.10. Tiến hành băm thông điệp x đi kèm

- Bƣớc3:B so sánh 2 giá trị băm z và h(x), nếu giống nhau thì chắc chắn rằng
thông điệp x – mà A muốn gửi cho B – còn nguyên vẹn, bên cạnh đó cũng xác thực
được người gửi thông tin là ai. (Hình 1.11)

0.11Hình 1.11. Kiểm tra tính toàn vẹn của thông điệp


11

0.12Hình 1.12.Khởi tạo khóa RSA


0.13Hình 1.13.Mã hóa và giải mã

Việc phát minh ra phương pháp mã công khai tạo ra một cuộc “cách mạng”
trong công nghệ an toàn thông tin điện tử. Nhưng thực tiễn triển khai cho thấy tốc
độ mã hóa khối dữ liệu lớn bằng các thuật toán mã hóa công khai chậm hơn rất
nhiều so với hệ mã hóa đối xứng. Ví dụ, để đạt đươc độ an toàn như các hệ mã đối


12

xứng mạnh cùng thời, RSA đòi hỏi thời gian cho việc mã hóa một văn bản lâu hơn
gấp hàng ngàn lần. Do đó, thay bằng việc mã hóa văn bản có kích thước lớn bằng
lược đồ khóa công khai thì văn bản này sẽ được mã hóa bằng một hệ mã đối xứng
có tốc độ cao như DES, IDEA,…Sau đó khóa được sử dụng trong hệ mã đối xứng
sẽ được mã hóa sử dụng mật mã khóa công khai[3]. Phương pháp này rất khả thi
trong việc mã và giải mã những văn bản có kích thước lớn như được mô tả trong
hình 1.14 và 1.15 dưới đây.

0.14Hình 1.14. Sử dụng khóa bí mật S để mã thông điệp và khóa công khai P để mã
khóa bí mật S

0.15Hình 1.15. Sử dụng khóa riêng P để giải mã khóa bí mật S và khóa bí mật S để
giải mã thông điệp

Ƣu và nhƣợc điểm của hệ mật mã khóa công khai
Vấn đề còn tồn đọng của hệ mật mã khóa đối xứng được giải quyết nhờ hệ
mật mã khóa công khai. Chính ưu điểm này đã thu hút nhiều trí tuệ vào việc đề



13

xuất, đánh giá các hệ mật mã công khai. Nhưng do bản thân các hệ mật mã khóa
công khai đều dựa vào các giả thiết liên quan đến các bài toán khó nên đa số các hệ
mật mã này đều có tốc độ mã dịch không nhanh lắm. Chính nhược điểm này làm
cho các hệ mật mã khóa công khai khó được dùng một cách độc lập.
Một vấn đề nữa nảy sinh khi sử dụng các hệ mật mã khóa công khai là việc
xác thực mà trong mô hình hệ mật mã đối xứng không đặt ra. Do các khóa mã công
khai được công bố một cách công khai trên mạng cho nên việc đảm bảo rằng “khóa
được công bố có đúng là của đối tượng cần liên lạc hay không?” là một kẽ hở có thể
bị lợi dụng. Vấn đề xác thực này được giải quyết cũng chính bằng các hệ mật mã
khóa công khai. Nhiều thủ tục xác thực đã được nghiên cứu và sử dụng như
Kerberos, X509,…Một ưu điểm nữa của các hệ mật mã khóa công khai là các ứng
dụng của nó trong lĩnh vực chữ ký số, cùng với các kết quả về hàm băm, thủ tục ký
để đảm bảo tính toàn vẹn của một văn bản được giải quyết.

Ứng dụng
Ứng dụng rõ ràng nhất của mật mã hóa khóa công khai là trong lĩnh vực bảo
mật, an toàn thông tin: Một văn bản được mã hóa bằng khóa công khai của một
người sử dụng thì chỉ có thể giải mã với khóa bí mật của người đó.Các thuật toán
tạo chữ ký số khóa công khai cho phép định danh một tin nhắn hay 1 tài liệu . Một
người sử dụng có thể mã hóa văn bản với khóa bí mật của mình. Nếu một người
khác có thể giải mã với khóa công khai của người gửi thì có thể tin rằng văn bản
thực sự xuất phát từ người gắn với khóa công khai đó (Đây là nguyên lý sinh & xác
thực chữ ký số, người gửi sử dụng khóa bí mật của mình để sinh ra 1 chữ ký số cho
1 tin nhắn, tài liệu. Bên nhận có thể xác thực tính đúng đắn của chữ ký số đó nhờ
vào khóa công khai của người gửi).Các đặc điểm trên còn có ích cho nhiều ứng
dụng khác như: tiền điện tử, thỏa thuận khóa....

Kết luận chương 1

Giới thiệu tổng quan về hệ mật mã khóa đối xứng và hệ mật mã khóa bất đối
xứng. So sánh ưu nhược điểm của 2 phương pháp mã hóa. Trình bày giải pháp kết
hợp của 2 phương thức mã hóa đối xứng và bất đối xứng.


14

Đưa ra được một số ứng dụng phổ biến tương ứng với từng phương pháp mã
hóa.
Tìm hiểu cơ sở lý thuyết về chữ ký số RSA, Các thuật toán sử dụng trong
chữ ký số, quá trình ký và kiểm tra chữ ký số RSA.


15

Chƣơng 2.TỔNG QUAN VỀ HẠ TẦNG KHÓA CÔNG KHAI
2.1. Định nghĩa
PKI : Viết tắt của Public Key Infrastructure tức là hạ tầng cơ sở khóa công
khai.Là một cơ chế để cho một bên thứ 3 (thường là nhà cung cấp chứng thực số)
cung cấp và xác thực định danh các bên tham gia vào quá trình trao đổi thông tin.
Cơ chế này cũng cho phép gán cho mỗi người sử dụng trong hệ thống một cặp khóa
công khai/khóa bí mật.
“PKI là một tập các phần cứng, phần mềm, con người, chính sách và các thủ
tục cần thiết để tạo, quản lý, lưu trữ, phân phối và thu hồi chứng chỉ khoá công khai
dựa trên mật mã khóa công khai”.
“PKI là hạ tầng cơ sở có thể hỗ trợ quản lý khóa công khai để hỗ trợ các dịch
vụ xác thực, mã hóa, toàn vẹn hay chống chối bỏ”.
“PKI là hạ tầng cơ sở bảo mật có những dịch vụ được triển khai và chuyển
giao sử dụng công nghệ và khái niệm khoá công khai”.
Nhìn chung, PKI có thể được định nghĩa như một hạ tầng cơ sở sử dụng công nghệ

thông tin để cung cấp dịch vụ mã hóa khóa công khai và chữ ký số. Một mục đích
quan trọng khác của PKI là để quản lý khóa và chứng chỉ được sử dụng trong hệ
thống[2], [3], [4].

2.1.1. Vai trò
Như chúng ta đã biết, mật mã khoá công cộng có 2 lợi ích sau: thứ nhất là nó
giải quyết được cả bài toán bảo mật và xác thực (trong thực tế, nhiều khi nhu cầu
xác thực là quan trọng hơn nhu cầu bảo mật; việc xác thực ở đây bao gồm cả khía
cạnh xác thực nội dung bản tin và xác thực cả chủ thể tạo ra bản tin); lợi ích thứ hai
là việc phân phối khoá sẽ được đơn giản và tiện lợi hơn nhiều so với mật mã khoá
đối xứng. Thế nhưng, có một nguy cơ là: điều gì sẽ xảy ra nếu khoá công khai bị giả
mạo? (tức là khoá công khai thực của người sử dụng A đã bị thay đổi một cách ác ý
hay là được thay bằng khoá của người sử dụng B). Khi đó sẽ xảy ra hai tình huống:
hoặc là thông tin mà người sử dụng A đã ký bằng khoá bí mật của anh ta sẽ không


×