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

Nghiên Cứu Về Chữ Ký Số, Pki Và Ứng Dụng Cho Bảo Mật Hệ Thống Quản Lý Tài Liệu.pdf

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.29 MB, 67 trang )

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

Nguyễn Thị Thúy Nga
NGHIÊN CỨU VỀ CHỮ KÝ SỐ, PKI VÀ ỨNG DỤNG
CHO BẢO MẬT HỆ THỐNG QUẢN LÝ TÀI LIỆU

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

HÀ NỘI - NĂM 2022


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

Nguyễn Thị Thúy Nga
NGHIÊN CỨU VỀ CHỮ KÝ SỐ, PKI VÀ ỨNG DỤNG
CHO BẢO MẬT HỆ THỐNG QUẢN LÝ TÀI LIỆU
Chuyên ngành: HỆ THỐNG THÔNG TIN
Mã số: 8.48.01.04
LUẬN VĂN THẠC SĨ KỸ THUẬT
(Theo định hướng nghiên cứu)
NGƯỜI HƯỚNG DẪN KHOA HỌC : TS. HOÀNG XUÂN DẬU

HÀ NỘI - NĂM 2022


i

LỜI CAM ĐOAN


Tôi xin cam đoan đề tài: “Nghiên cứu về chữ ký số, PKIvà ứng dụng cho bảo
mật hệ thống quản lý tài liệu” là luận văn do tôi trực tiếp thực hiện dưới sự hướng
dẫn của thầy giáo TS. Hoàng Xuân Dậu. Các số liệu, kết quả viết trong luận văn là
trung thực. Tất cả những sự giúp đỡ cho việc xây dựng cơ sở lý luận cho bài luận đều
được trích dẫn đầy đủ, ghi rõ nguồn gốc và được phép cơng bố.
Tơi xin hồn tồn chịu trách nhiệm trước pháp luật về các nội dung đã cam
đoan.
Hà Nội, ngày 17 tháng 12 năm 2021
Tác giả luận văn

Nguyễn Thị Thúy Nga


ii

LỜI CẢM ƠN
Học viên xin trân trọng cảm ơn các thầy cô trong khoa công nghệ thông tin,
khoa Điện tử Viễn thơng, khoa Sau đại học đã ln nhiệt tình giúp đỡ và tạo điều kiện
tốt nhất cho em trong suốt quá trình học tập và nghiên cứu tại trường. Các thầy cô đã
truyền đạt cho em những kiến thức, tư duy khoa học để phục vụ cho quá trình học tập
và công tác của em.
Học viên xin được bày tỏ sự biết ơn sâu sắc đến TS. Hoàng Xuân Dậu. Thầy
đã dành nhiều thời gian trong việc hướng dẫn em cách đọc tài liệu, thu thập và đánh
giá thông tin, đồng thời giúp em tiếp cận được nhiều phương pháp tư duy và nghiên
cứu khoa học mới để hoàn thành một luận văn cao học.
Cuối cùng, Em xin được gửi lời cảm ơn tới gia đình, người thân và đồng nghiệp
đã động viên, giúp đỡ em trong quá trình hoàn thành luận văn.
Em xin chân thành cảm ơn!
Hà Nội, ngày 17 tháng 12 năm 2021
Tác giả luận văn


Nguyễn Thị Thúy Nga


iii

DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT
Viết tắt
CA
CRHF

Tiếng Anh
Certificate Authority
Collision resistant hash
functions

CNTT

Information Technology

DES

Data Encryption Standard

DSA

Digital Signature Algorithm

MAC
MD

MDC

Message Authentication
Code
Message Digest
Modification Detections
Code

Tiếng việt
Cơ quan chứng thực
Hàm băm chống đụng độ
Công Nghệ Thơng Tin
Thuật tốn chữ ký số
Mã xác thực thơng điệp
Chuỗi đại diện thông điệp
Mã phát hiện sửa đổi

National Institute of Science

Viện Khoa học và Công

and Technology

nghệ Quốc gia

OWHF

One-way hash functions

Hàm băm một chiều


PKI

Public Key Infrastructure

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

RA

Registration Authority

Cơ quan đăng ký

NIST

RSA

RSA Public Key
Croptosystem

Hệ mật khóa cơng khai RSA

SHA

Secure Hash Algorithm

Giải thuật băm an toàn

SSL


Secure Sockets Layer

Bộ giao thức bảo mật

Transmission Control

Giao thức điều khiển truyền

Protocol/ Internet Protocol

nhận/Giao thức liên mạng

Validation Authority

Cơ quan xác thực

TCP/IP
VA


iv

DANH MỤC CÁC BẢNG
Bảng 1. 1 Ví dụ về kết quả q trình tính tốn trong giải thuật mã hóa Elgamal 20


v

DANH MỤC CÁC HÌNH
Hình 1. 1 Một văn bản được đóng dấu mật ................................................................. 5

Hình 1. 2 Đảm bảo tính bí mật bằng cách sử dụng đường hầm VPN hoặc mã hóa ... 5
Hình 1. 3 Mã hóa cơng khai ........................................................................................ 7
Hình 1. 4 Quy trình sinh khóa, mã hóa và giải mã của giải thuật Rabin .................. 12
Hình 1. 5 Quy trình sinh khóa, mã hóa và giải mã của giải thuật Elgamal .............. 18
Hình 1. 6 Mơ hình nén thơng tin của hàm băm......................................................... 22
Hình 1. 7 Phân loại các hàm băm theo khóa sử dụng ............................................... 23
Hình 1. 8 Mơ hình tổng qt xử lý dữ liệu của hàm băm ......................................... 24
Hình 1. 9 Mơ hình chi tiết xử lý dữ liệu của hàm băm ............................................. 25
Hình 1. 10 Lưu đồ xử lý một thao tác của MD5 ....................................................... 27
Hình 1. 11 Lưu đồ một vịng xử lý của SHA1 .......................................................... 28
Hình 2. 1 Cách tạo chữ ký số .................................................................................... 30
Hình 2. 2 Kiểm tra chữ ký số .................................................................................... 31
Hình 2. 3 Mơ hình tổng thể một hệ thống PKI ......................................................... 40
Hình 3. 1 Mơ hình hệ thống PKI nội bộ dựa trên Easy RSA .................................... 47
Hình 3. 2 Mơ hình hệ thống chia sẻ tài liệu tích hợp PKI và ký số .......................... 49
Hình 3. 3 Form thông tin yêu cầu cần thiết để cấp chứng thư số của người dùng ... 52
Hình 3. 4 Giao diện quản lý và duyệt các yêu cầu cấp chứng thư số ....................... 53
Hình 3. 5 Danh sách các chứng thư số đang hoạt động ............................................ 53
Hình 3. 6 Form người dùng chia sẻ tài liệu ............................................................... 54
Hình 3. 7 Danh sách các tài liệu được chia sẻ........................................................... 54
Hình 3. 8 Xem các thông tin của người chia sẻ tài liệu ............................................ 55
Hình 3. 9 Xem các thơng tin về tài liệu được chia sẻ ............................................... 55
Hình 3. 10 Thơng báo xác thực tài liệu thành cơng .................................................. 55
Hình 3. 11 Thông báo xác thực tài liệu không thành công ....................................... 56


vi

MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................ i

LỜI CẢM ƠN .............................................................................................................ii
DANH MỤC CÁC KÝ HIỆU, CÁC CHỮ VIẾT TẮT ............................................ iii
DANH MỤC CÁC BẢNG......................................................................................... iv
DANH MỤC CÁC HÌNH ........................................................................................... v
MỤC LỤC .................................................................................................................. vi
PHẦN MỞ ĐẦU ......................................................................................................... 1
1. Lý do chọn đề tài .................................................................................................. 1
2. Tổng quan về vấn đề nghiên cứu ............................................................................ 1
3. Mục đích nghiên cứu ............................................................................................... 2
4. Đối tượng và phạm vi nghiên cứu ........................................................................... 2
5. Phương pháp nghiên cứu......................................................................................... 2
CHƯƠNG 1 TỔNG QUAN VỀ BẢO MẬT THÔNG TIN DỰA TRÊN MẬT MÃ 4
1.1. Các yêu cầu bảo mật thông tin ............................................................................. 4
1.1.1. Tính bí mật .............................................................................................. 4
1.1.2. Tính tồn vẹn .......................................................................................... 6
1.1.3. Tính xác thực .......................................................................................... 6
1.1.4. Tính khơng chối bỏ ................................................................................. 6
1.2. Các thuật toán mật mã khoá cơng khai ................................................................. 6
1.2.1. Khái qt về mật mã khố cơng khai...................................................... 6
1.2.2. Một số thuật tốn mật mã khố công khai .............................................. 8
1.3. Các hàm băm ...................................................................................................... 22
1.3.1. Khái quát về hàm băm và các dạng hàm băm ...................................... 22
1.3.2. Một số thuật tốn băm điển hình .......................................................... 25
1.4. Kết luận chương ................................................................................................. 29
CHƯƠNG 2 CHỮ KÝ SỐ, CHỨNG THƯ SỐ VÀ PKI.......................................... 30
2.1. Chữ ký số ............................................................................................................ 30
2.1.1. Chữ ký số RSA ..................................................................................... 32


vii


2.1.2. Chữ ký số DSA ..................................................................................... 32
2.1.3 Chữ ký số ECDSA .................................................................................... 34
2.2. Chứng thư số....................................................................................................... 35
2.2.1. Khái quát về chứng thư số .................................................................... 36
2.2.2. Ứng dụng của chứng thư số .................................................................. 37
2.3. PKI ...................................................................................................................... 38
2.3.1. Khái quát về PKI................................................................................... 39
2.3.2. Kiến trúc và các thành phần của PKI.................................................... 39
2.4. Kết luận chương ................................................................................................. 46
CHƯƠNG 3. TRIỂN KHAI ỨNG DỤNG PKI VÀ KÝ SỐ TRONG MƠ HÌNH HỆ
THỐNG CHIA SẺ TÀI LIỆU................................................................................... 47
3.1. Mơ hình triển khai và các thành phần của hệ thống ........................................... 47
3.1.1. Mơ hình triển khai hệ thống PKI nội bộ ............................................... 47
3.1.2. Mơ hình triển khai hệ thống ký và kiểm tra chữ ký số trên các tài liệu 49
3.2. Cài đặt cáccthành phần của hệ thống ................................................................. 50
3.2.1. Cài đặt ................................................................................................... 50
3.2.2. Một số kết quả thử nghiệm ................................................................... 51
3.2.3. Nhận xét ................................................................................................ 56
3.3. Kết luận chương ................................................................................................. 56
KẾT LUẬN ............................................................................................................... 57
TÀI LIỆU THAM KHẢO ......................................................................................... 58


1

PHẦN MỞ ĐẦU
1. Lý do chọn đề tài
Trong những năm gần đây, số hoá và chuyển đổi số các hoạt động của các cơ
quan, doanh nghiệp đã trở thành một xu hướng tất yếu, đóng vai trị quan trọng trong

việc cải thiện chất lượng, hiệu quả hoạt động quản lý của các cơ quan, doanh nghiệp.
Theo Bộ trưởng, Chủ nhiệm Văn phịng Chính phủ Mai Tiến Dũng, “Trong thời gian
diễn ra đại dịch, việc ứng dụng công nghệ thông tin, chuyển đổi số chính là giải pháp
quan trọng để hạn chế tiếp xúc người với người trong nền kinh tế khơng tiếp xúc,
giao dịch khơng tiếp xúc, vừa phịng chống dịch vừa phát triển kinh tế-xã hội” [1].
Như vậy, việc thúc đẩy ứng dụng rộng rãi các hệ thống dịch vụ công, quản lý bán
hàng, quản lý vận hành, quản lý công văn, tài liệu trực tuyến trong hoạt động điều
hành hàng ngày trong các cơ quan, doanh nghiệp cũng đóng vai trị tích cực trong
cơng cuộc chuyển đổi số của đất nước.
Các ứng dụng trực tuyến hoạt động trong mơi trường mạng Internet có thể gặp
nhiều rủi ro do có nhiều mối đe doạ mất an tồn từ bên ngoài cũng như từ bên trong.
Các mối đe doạ thường gặp có thể bao gồm các nguy cơ từ các dạng mã độc lan truyền
trong môi trường mạng, các dạng tấn công gây ngừng trệ hoạt động của hệ thống và
các hình thức chặn bắt, chỉnh sửa trái phép thơng tin, dữ liệu nhạy cảm… [2]. Nhiều
biện pháp có thể được sử dụng nhằm đảm bảo an toàn cho hệ thống và thông tin, như
tường lửa, các hệ thống kiểm soát truy cập, các giải pháp dựa trên các kỹ thuật mật
mã [2]. Trong đó, các giải pháp dựa trên các kỹ thuật mật mã có thể đảm bảo các u
cầu bí mật, tồn vẹn, xác thực và khơng chối bỏ của thông tin truyền đưa, hoặc lưu
trữ. Luận văn này tập trung nghiên cứu về chữ ký số và hạ tầng khố cơng khai (PKI)
và ứng dụng trong hệ thống chia sẻ tài liệu nhằm nhằm đảm bảo tính toàn vẹn của
các file tài liệu trao đổi trong hệ thống.

2. Tổng quan về vấn đề nghiên cứu
Chữ ký số, Chứng thư số và hạ tầng khố cơng khai (PKI) đã được nghiên cứu
và sử dụng rộng rãi trong các ứng dụng đảm bảo an tồn thơng tin trên thực tế


2

[2][3][4]. Sử dụng chữ ký số kết hợp với Chứng thư số cho phép đảm bảo tính tồn

vẹn dữ liệu và xác thực chủ thể tham gia truyền thông. Hạ tầng khố cơng khai (PKI)
cung cấp một khung làm việc giúp cho việc thiết lập và triển khai các hệ thống cấp
phát, kiểm tra và thu hồi các Chứng thư số với các quy mô khác nhau. Luận văn này
tập trung nghiên cứu và triển khai một số nội dung sau:
 Nghiên cứu lý thuyết nền tảng cho ký số, gồm các thuật tốn mã hố khố cơng
khai, hàm băm…
 Nghiên cứu khái quát về chữ ký số, một số thuật tốn ký số thơng dụng.
 Nghiên cứu về kiến trúc và hoạt động của PKI.
 Triển khai ứng dụng PKI và ký số trong mơ hình hệ thống chia sẻ tài liệu nhằm
đảm bảo tính tồn vẹn các tài liệu trao đổi

3. Mục đích nghiên cứu
Luận văn nghiên cứu về các thuật toán ký số và PKI và ứng dụng trong tăng
cường bảo mật cho hệ thống quản lý tài liệu. Người dùng trong hệ thống được cấp
cặp khoá riêng và khố cơng khai kèm Chứng thư số sử dụng hệ thống PKI nội bộ.
Các văn bản sẽ được ký bởi người gửi và kiểm tra bởi người nhận.

4. Đối tượng và phạm vi nghiên cứu
 Đối tượng nghiên cứu: Gồm các thuật toán chữ ký số, Chứng thư số và PKI.
 Phạm vi nghiên cứu: Giới hạn ứng dụng PKI và ký số cho hệ thống chia sẻ tài
liệu.

5. Phương pháp nghiên cứu
Luận văn sử dụng kết hợp những phương pháp nghiên cứu sau:
 Nghiên cứu lý thuyết: Nghiên cứu cơ sở lý thuyết mã hoá, hàm băm, ký số và
PKI.
 Thực nghiệm: Triển khai cài đặt thử nghiệm mô phỏng hệ thống chia sẻ tài
liệu hỗ trợ bảo mật tài liệu dựa trên PKI và chữ ký số.
Luận văn được bố cục gồm 3 chương với các nội dung chính như sau:



3

Chương 1 giới thiệu các yêu cầu về bảo mật thơng tin trong phần đầu, phần
tiếp theo của chương tìm hiểu các thuật tốn mật mã khóa cơng khai. Phần cuối của
chương trình bày về các hàm băm MD5 và SHA1.
Chương 2 giới thiệu về chữ ký số, Chứng thư số và phần cuối của chương đi
sâu vào mô tả hạ tầng khóa cơng khai (PKI).
Chương 3 mơ tả việc triển khai cài đặt và thử nghiệm ứng dụng PKI và ký số
cho đảm bảo tính tồn vẹn và nguồn gốc file dữ liệu trong mơ hình hệ thống chia sẻ
tài liệu trên mạng giữa nhiều người dùng.


4

CHƯƠNG 1 TỔNG QUAN VỀ BẢO MẬT THÔNG TIN DỰA
TRÊN MẬT MÃ
Chương này giới thiệu các yêu cầu về bảo mật thông tin trong phần đầu, phần
tiếp theo của chương tìm hiểu các thuật tốn mật mã khóa cơng khai. Phần cuối của
chương trình bày về các hàm băm MD5 và SHA1.

1.1.

Các u cầu bảo mật thơng tin
An tồn thơng tin (Information security) làmviệc bảo vệ chống các truy nhập,

sửadụng, tiết lộ, sửa đổi, hoặc phá hủy thông tinhmột cách trái phép, theo trang
Wikipedia ( [2]
An tồn thơng tinhgồm hai lĩnh vực chính là An tồnhcơng nghệ thơng tin
(Information technology security, hay IT security) và Đảm bảo thông tin (Information

assurance). An tồn cơng nghệ thơng tin, hay cịn gọi là An tồn máy tính (Computer
security) là việc đảm bảo an tồn cho các hệ thống cơng nghệ thơng tin, bao gồm các
hệ thống máy tính và mạng, chống lại các cuộc tấn công phá hoại. Đảm bảo thông tin
là việc đảm bảo thông tin không bị mất khi xảy ra các sự cố, như thiên tai, hỏng hóc,
trộm cắp, phá hoại,… Đảm bảo thông tin thuờng được thực hiện sử dụng các kỹ thuật
sao lưu ngoại vi (offsite backup), trong đó dữ liệu thơng tin từ hệ thống gốc được sao
lưu ra các thiết bị lưu trữ vật lý đặt ở một vị trí khác.
Việc đảm bảo An tồn thơng tin chính là việc đảm bảo những mục tiêu quan
trọng nhất của thơng tin, đó là: tính bí mật, tính tồn vẹn, tính xác thực và tính khơng
chối bỏ. Đây cũng là các u cầu đảm bảo an tồn thơng tin và đúng với mọi tổ chức.

1.1.1. Tính bí mật
Tính bí mật đảm bảo rằng chỉ người dùng có thẩm quyền mới được truy nhập
thông tin, hệ thống. Các thông tin bí mật có thể bao gồm: (i) dữ liệu riêng của cá nhân,
(ii) các thông tin thuộc quyền sở hữu trí tuệ của các doanh nghiệp hay các cơ quan,
tổ chức và (iii) các thơng tin có liên quan đến an ninh của các quốc gia và các chính
phủ. Hình 1.1 minh họa một văn bản được đóng dấu Confidential (Mật), theo đó chỉ


5

những người có thẩm quyền (có thể khơng gồm người soạn thảo văn bản) mới được
đọc và phổ biến văn bản.

Hình 1. 1 Một văn bản được đóng dấu mật
Thơng tin bí mật lưu trữ hoặc trong q trình truyền tải cần được bảo vệ bằng
các biện pháp phù hợp, tránh bị lộ lọt hoặc bị đánh cắp. Các biện pháp có thể sử dụng
để đảm bảo tính bí mật của thông tin như bảo vệ vật lý, hoặc sử dụng mật mã
(cryptography). Hình 1.2 minh họa việc đảm bảo tính bí mật bằng cách sử dụng đường
hầm VPN, hoặc mã hóa để truyền tải thơng tin.


Hình 1. 2 Đảm bảo tính bí mật bằng cách sử dụng đường hầm VPN hoặc mã hóa


6

1.1.2. Tính tồn vẹn
Tính tồn vẹn đảm bảo rằng thơng tin và dữ liệu chỉ có thể được sửa đổi bởi
những người dùng có thẩm quyền. Tính tồn vẹngliên quan đếnhtính hợp lệ (validity)
vàochính xác (accuracy) của dữ liệu. Trong nhiều tổichức, thơng tin vàodữ liệu có
giá trị rất lớn, như bảngquyền phần mềm, bảnhquyền âm nhạc, bảnhquyền phát minh,
sáng chế. Mọi thay đổi khơng có thẩm quyền có thể ảnh hưởng rất nhiều đến giá trị
của thông tin. Thông tin hoặc dữ liệu là tồn vẹn nếu nó thỏa mãn ba điều kiện: (i)
không bị thay đổi, (ii) hợp lệ và (iii) chính xác.

1.1.3. Tính xác thực
Tính xác thực, đảm bảo danh tính của thực thể được xác minh và định danh
nguồn gốc dữ liệu. Định danh thực thể có thể mang lại một khố bí mật mà có thể
sau đó được sử dụng để giải mã một file để đọc hoặc thay đổi cập nhật, hoặc để
thiết lập một kênh liên lạc an toàn với thực thể khác. Định danh nguồn gốc dữ liệu
nhận dạng một thực thể cụ thể như là nguồn gốc hoặc xuất phát điểm của một thơng
điệp dữ liệu đã cho

1.1.4. Tính khơng chối bỏ
Tính khơng chối bỏ được sử dụng cho dịch vụ mà đảm bảo rằng các thực
thể trở nên trung thực về các hành động của họ. Các biến thể được bàn tới chung
nhất là không chối bỏ về nguồn gốc và không chối bỏ việc tiếp nhận. không chối
bỏ việc tạo ra, không chối bỏ việc phân phối, không chối bỏ của việc phê duyệt.

1.2.


Các thuật toán mật mã khoá cơng khai

1.2.1. Khái qt về mật mã khố cơng khai
Một phương pháp gọi là mật mã bất đối xứng được phát triển để khắc phục
các vấn đề của mật mã đối xứng. Ở phương pháp này, người ta sử dụng một cặp khóa
gồm hai khóa thay cho một khóa đơn để giải quyết các vấn đề của mật mã khóa bí
mật. Trong đó, một khóa được sử dụng để mã hóa và khóa cịn lại dùng để giải mã,
cả hai khóa này đều được u cầu để hồn tất q trình. Trong mật mã bất đối xứng,
một trong hai khóa này được phân phối tự do trên mạng và sử dụng cho việc mã hóa


7

thơng điệp, gọi là khóa cơng khai. Chính vì thế phương pháp mã hóa này cịn có tên
gọi khác là mật mã khóa cơng khai. Khóa thứ hai của cặp khóa là khóa bí mật, khóa
này chỉ dùng cho việc giải mã, khơng được phân phối cơng khai và hồn tồn bí mật
với tất cả các thực thế liên lạc. Trong mật mã khóa cơng khai, dữ liệu được mã hóa
với khóa cơng khai và chỉ có thể được giải mã với khóa bí mật tương ứng và ngược
lại, nếu dữ liệu được mã hóa bằng khóa bí mật thì chỉ có thể giải mã bằng khóa cơng
khai phù hợp. Chính vì sự bất đối xứng này mà mật mã khóa cơng khai được gọi là
mật mã khóa bất đối xứng.
Giả sử, A muốn gửi một tệp tin được mã hóa cho B, trong trường hợp này, B
có một cặp khóa, B sẽ phân phối khóa cơng khai và giữ lại khóa bí mật. vì vậy A có
một bản sao khóa cơng khai của B và sẽ dùng khóa đó để mã hóa tệp tin, sau đó sẽ
gửi tệp tin này cho B. Nếu một người thực hiện tấn công chặn bắt và có được tệp tin
mã hóa đó, thì người đó cũng khơng có khả năng giải mã được tệp tin này, bởi vì chỉ
có duy nhất khóa cơng khai của B mới có thể thực hiện giải mã. Hình 1-3 giải thích
q trình hoạt động của mật mã khóa cơng khai.
Ngày nay, các thuật tốn đối xứng được sử dụng để xử lý dữ liệu trong các

giao thức trong khi các thuật toán bất đối xứng lại được quan tâm đến tốc độ trao đổi
khóa. Điều này giúp có sự cân bằng giữa tốc độ và bảo mật.

Hình 1. 3 Mã hóa cơng khai
Trong phương pháp này, dữ liệu mà bạn gửi cho người dùng khác chỉ được
mã hóa bằng khóa cơng khai, và việc giải mã được thực hiện duy nhất khi có khóa bí
mật của người nhận. Do đó dữ liệu trong khi truyền rất ít khả năng bị xem trộm và


8

làm giả. Do đó, thơng điệp sẽ được trao đổi một cách an tồn. Người gửi và người
nhận khơng cần phải trao đổi khóa như trong mật mã khóa đối xứng. tất cả các liên
lạc chỉ liên quan đến khóa cơng khai và khơng có bất kỳ khóa bí mật nào được chia
sẻ và trao đổi.
Quan điểm được rút ra ở kỹ thuật trên là mỗi người nhận có một khóa duy nhất
dùng để giải mã dữ liệu đã được mãi hóa bởi khóa cơng khai của người gửi. Q trình
trao đổi mật mã khóa cơng khai lần đầu tiên được Diffie và Helman xem xét và thảo
luận. Một trong những ứng dụng triển khai phổ biến của mật mã khóa cơng khai là
thuật tốn RSA
Điểm yếu và hạn chế của mật mã khóa cơng khai: Tồn tại khả năng một người
nào đó có thể tìm ra được khóa bí mật. Không giống với hệ thống mật mã sử dụng
một lần (one-time password) hoặc tương đương, chưa có thuật tốn mã hóa khóa cơng
khai nào được chứng minh là an tồn trước các tấn cơng dựa trên bản chất tốn học
của thuật toán. Khả năng một mối quan hệ nào đó giữa 2 khóa hay điểm yếu của thuật
tốn dẫn tới cho phép giải mã khơng cần tới khóa hay chỉ cần khóa mã hóa vẫn chưa
được loại trừ. An tồn của thuật tốn này đều dựa trên các ước lượng về khối lượng
tính tốn để giải các bài tốn gắn với chúng. Các ước lượng này lại luôn thay đổi tùy
thuộc và khả năng của máy tính và các phát hiện tốn học mới. Mặc dù vậy, độ an
tồn của các thuật tốn mã hóa khóa cơng khai cũng tương đối đảm bảo. Nếu thời

gian để pháymột mão(bằng phương pháp vét cạn) được ước lượng lài 1000 năm thì
thuật tốn này hồn tồn có thể dùng để mãohóa các thơng tin về thẻ tín dụng vì thời
gian phá mãolớn hơn nhiều thời gian tồn tại vài năm của thẻ.

1.2.2. Một số thuật tốn mật mã khố cơng khai
1.2.2.1. Thuật tốn mã hóa RSA.
a. Giới thiệu
Thuật mã hóa RSA được 3 nhà khoa học nguời Mỹ là Ronald Rivest, Adi
Shamir và Leonard Adleman phát minh năm 1977, và tên thuật toán RSA lấy theo
chữ cái đầu của tên 3 đồng tác giả. Độ an tồn của RSA dựa trên tính khó của việc
phân tích số ngun rất lớn, với độ lớn cỡ hàng trăm chữ số thập phân. Thuật toáng


9

RSA sửadụng một cặp khóa, trong đó khóaicơng khai dùng để mãohóa và khóairiêng
dùng để giải mã. Chỉ khóa riêng RSA cần giữ bí mật. Khóaicơng khai cóathể cơng bố
rộng rãi. Hiện nay, các khóa RSA có kích thước nhỏ hơn 1024 bit được coi là khơng
an tồn do tốc độ các hệ thống máy tính tăng nhanh. Để đảm bảo an tồn, khuyến
nghị sử dụng khóa 2048 bit trong giai đoạn 2010-2020. Trong tương lai, cần sử dụng
khóa RSA có kích thước lớn hơn, chẳng hạn 3072 bit.
b. Sinh khóa
RSA cung cấp một thủ tục sinh cặp khóa (khóa cơng khai và khóa riêng) tương
đối đơn giản. Cụ thể, thủ tục sinh khóa gồm các bước như sau:
- Tạo 2 số nguyên tối p và q;
- Tính modulo n = p × q
- Tính ɸ(n) = (p-1) × (q-1)
- Chọn số e sao cho 1 < e <ɸ(n) và gcd(e,ɸ(n)) = 1, trong đó hàm gcd() tính
ước số chung lớn nhất của 2 số nguyên. Nếu gcd(e,ɸ(n)) = 1 thì e và ɸ(n) là 2 số
nguyên tố cùng nhau.

- Chọn số d sao cho 𝑑 ≡ 𝑒 −1 𝑚𝑜𝑑ɸ(𝑛)

hoặc (d × e) mod ɸ(n) = 1

hay d là modulo nghịch đảo của e.

- Ta có (n, e) là khóa cơng khai, (n, d) là khóa riêng và n cịn được gọi là
modulo
c. Mã hóa và giải mã
- Mã hóa
+ Thông điệp bản rõ m đã được chuyển thành số, với m < n. Nếu thơng điệp
bản rõ m có kích thước lớn thì được chia thành các khối mi, với mi < n.
+ Bản mã 𝑐 = 𝑚𝑒 mod n

- Giải mã

+ Bản mã c, với c < n

+ Bản rõ m = 𝑐 𝑑 mod n

d. Ví dụ


10

- Sinh khóa:
+ Chọn 2 số nguyên tố p = 3 và q = 11
+ Tính n = p × q = 3 × 11 = 33
+ Tính ɸ(n) = (p-1) × (q-1) = 2 × 10 = 20
+ Chọn số e sao cho 0 < e < 20, và e và ɸ(n) là số nguyên tố cùng nhau

(ɸ(n) không chia hết cho e). Chọn e = 7
+ Tính (d x e) mod ɸ(n) -> (d × 7) mod 20 = 1
d = (20 × k +1)/7 -> d = 3 (k=1)
+ Ta có: khóa cơng khai là (33, 7) và khóa riêng là (33, 3)
- Mã hóa:
+ Với bản rõ m = 6,
+ c = 𝑚𝑒 mod n = 67 mod 33 = 279936 mod 33 = 30
+ Vậy bản mã c = 30

- Giải mã:

+ Với bản mã c = 30
+ m = 𝑐 𝑑 mod n = 303 mod 33 = 27000 mod 33 = 6
+ Vậy bản rõ m = 6.

e. Một sối yêu cầu với q trình sinh khóa

Dưới đây liệt kê các u cầu đặt ra với các tham số sinh khóa và khóa để đảm
bảo sự an tồn cho cặp khóa RSA. Các yêu cầu cụ thể gồm:
- Yêu cầu với các tham số sinh khóa p và q:
+ Các số nguyên tố p và q phải được chọn sao cho việc phân tích n (n =
p × q) là khơng khả thi về mặt tính tốn. p và q nên có cùng độ lớn (tính bằng
bit) và phải là các số đủ lớn. Nếu n có kích thước 2048 bit thì p và q nên có kích
thước khoảng 1024 bit.
+ Hiệu số p – q không nên quá nhỏ, do nếu p – q quá nhỏ, tức p≈ q và
p≈ √𝑛. Như vậy, có thể chọn các số nguyên tố ở gần √𝑛 và thử. Khi có được p,

có thể tính q và tìm ra d là khóa bí mật từ khóa công khai e và ɸ(n) = (p - 1)(q -



11

1). Nếu p và q được chọn ngẫu nhiên và p – q đủ lớn, khả năng hai số này bị
phân tích từ n giảm đi.
- Vấn đề sử dụng số mũ mã hóa (e) nhỏ: Khi sử dụng số mũ mã hóa (e) nhỏ,
chẳng hạn e = 3 có thể tăng tốc độ mã hóa. Kẻ tấn cơng có thể nghe lén và lấy được
bản mã, từ đó phân tích bản mã để khơi phục bản rõ. Do số mũ mã hóa nhỏ nên chi
phí cho phân tích, hoặc vét cạn không quá lớn. Do vậy, nên sử dụng số mũ mã hóa e
đủ lớn và thêm chuỗi ngẫu nhiên vào khối rõ trước khi mã hóa để giảm khả năng bị
vét cạn hoặc phân tích bản mã.
- Vấn đề sử dụng số mũ giải mã (d) nhỏ: Khi sử dụng số mũ giải mã (d) nhỏ,
có thể tăng tốc độ giải mã. Nếu d nhỏ và gcd(p-1, q-1) cũng nhỏ thì d có thể tính được
tương đối dễ dàng từ khóa cơng khai (n, e). Do vậy, để đảm bảo an toàn, nên sử dụng
số mũ giải mã d đủ lớn.

1.2.2.2. Thuật tốn mã hóa Rabin
Hệ mật Rabin được công bố bởi Michael O. Rabin vào tháng 1 năm 1979.
Thuật mã hóa Rabin là một giải thuật mã hóa bất đối xứng mà tính bảo mật của nó
phụ thuộc vào độ phức tạp của việc phân tích thừa số. Đây là giải thuật mã hóa có độ
an tồn về mặt tính tốn và chống lại được tấn cơng bản rõ lựa chọn và khơng có khả
năng phân tích được thừa số nguyên tố. Độ an toàn của giải thuật mã hóa Rabin đã
được chứng minh rằng độ bảo mật của nó tăng theo độ khó của phép phân tích thừa
số ngun tố. Với giải thuật mã hóa Rabin, từng bản mã được giải mã ra 4 bản rõ
khác nhau. Điều này làm tăng độ phức tạp trong việc xác định đâu là bản rõ thực sự.
Trước khi đi vào mơ tả chi tiết quy trình mã hóa và giải mã, cùng tìm hiểu
Định lý số dư Trung Hoa – là cơ sở toán học cho giải thuật Rabin.
Định lý số dư Trung Hoa [1,3]:
Cho m1, m2, …, mr là các số đôi một nguyên tố cùng nhau, và a1, a2, …, ar là
các số nguyên. Khi đó hệ đồng dư tuyến tính x ≡ ai (mod mi) với 1 ≤ i ≤ r có nghiệm
duy nhất theo modulo M=m1m2...mr.

Nghĩa là: x ≡ a1M1y1 + a2M2y2 + … + arMryr (mod M)


12

với Mi = M/mi và yi ≡ Mi-1 (mod mi) và 1 ≤ i ≤ r.
Tiếp theo, bài giảng sẽ trình bày về quy trình mã hóa và giải mã của giải thuật
mã hóa Rabin. Hình 1.4 thể hiện quy trình sinh khóa, mã hóa và giải mã của giải
thuật mã hóa Rabin.

Người nhận
n
Người gửi

n
M

bản rõ

Khóa cơng khai

Q trình mã hóa:
C=M2 mod n

Lựa chọn p, q;
tính n= p*q
Khóa bí mật

Bản mã


p, q

Q trình giải mã

M
bản rõ

M=√𝐶 mod n

Kẻ tấn cơng

Hình 1. 4 Quy trình sinh khóa, mã hóa và giải mã của giải thuật Rabin
Từ sơ đồ 1.4 có thể thấy nguyên tắc làm việc của giải thuật mã hóa Rabin như
sau:
Bước 1: Quy trình tạo khóa: Để tạo ra khóa người nhận cần phải thực hiện các
thao tác sau:
1. Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau: p  q .
Chú ý rằng, việc chọn p, q có thể là bất kỳ, tuy nhiên để thuận tiện cho quá trình giải
mã thì có thể chọn p, q thỏa mãn q  p  3 mod 4 .
2. Tính tích n  p  q .
3. Chọn số ngẫu nhiên b  Z n* .
4. Sử dụng n làm khóa cơng khai và cặp (p, q) làm khóa mật.


13

Bước 2: Quy trình mã hóa: C = M2 mod n. M là bản rõ ban đầu trong khoảng
[0, 1, 2… n-1].
Bước 3: Quy trình giải mã: Như đã trình bày trong bước 1 về việc lựa chọn
tham số q, p. Có 2 phương pháp lựa chọn q, p, chính vì vậy, khi giải mã cũng xảy ra

2 trường hợp:
Trường hợp 1: q, p bất kỳ:
Việc mã hóa theo giải thuật Rabin cho bản mã C dựa trên bản rõ M với khóa
cơng khai n theo cơng thức C  M 2 mod n . Vì vậy, để tìm lại M cần tính √𝐶 mod n.

Để hiểu rõ hơn về cách thức tính √𝐶 mod n. Trước tiên, hãy tìm hiểu thuật

toán được đề xuất từ tài liệu tham khảo [2]:

Thuật tốn: tìm căn bậc hai của số ngun a, thuộc trường p, với p là một số
nguyên tố
Đầu vào: số nguyên tố p; số thặng dư bậc hai a ∈ Z*p

Đầu ra: Căn bậc hai của a
Nếu p ≡ 3 mod 4:

Kết quả: a(p+1)/4 mod p và –a(p+1)/4 mod p
Nếu p ≡ 1 mod 4:
Chọn b là số không phải thặng dư bậc hai modul p.
Tìm l và m là số lẻ thỏa mãn 2l.m =
2l m 

p 1
2

𝑝−1
2

Đặt r = 2l.m và r’ = 0.
Thực hiện theo các bước trong giả code dưới đây:

Duyệt i chạy giảm dần từ l trở về 1
{
r = r/2, r’ = r’/2


14

Nếu ar.br’ ≡ -1 mod p
Thì r '  r '  2l.m
}
'

Kết quả: a ( r 1) / 2 .b r / 2 mod p
Tiếp theo, để tính căn bậc hai của (C modul n) bất kỳ, người tính toán tách C
thành 2 phần, sao cho mỗi phần đều có thể tính được căn bậc hai, theo modul ngun
tố. Cụ thể như sau:
-

Tính Cp = C mod p và Cq = C mod q

-

Dùng thuật tốn trên, tính căn bậc hai xp của Cp và căn bậc hai xq của Cq

-

Chuyển (xp, xq) ∈ Z*p.Z*q về x ∈ Z*n với x ↔ (xp, xq).

Kết quả: 4 khả năng nghiệm x tương ứng với 4 khả năng có thể của bản rõ
cần tìm.

Tính đúng đắn của q trình tính tốn trên dựa trên Định lý số dư Trung Hoa
đã được trình bày ở phần đầu thuật tốn Rabin.
Trường hợp 2: q  p  3 mod 4
Trong trường hợp này, để tính căn bậc hai của (C modul n) thì cần tính các giá
trị m1, m2, m3, m4 từng cặp lần lượt là căn bậc hai của C modul p và C modul q. Theo
[2, 3] các các giá trị m1, m2, m3, m4 được tính như trình bày dưới đây:
m1  C ( p1) / 4 mod p
m2  ( p  C ( p1) / 4 ) mod p

m3  C ( q1) / 4 mod q
m4  (q  C ( q1) / 4 ) mod q

Để tìm được 4 nghiệm của √𝐶 mod n, lấy a = q(q-1 mod p) với q(q-1 mod p) ≡

1 mod p, và b = p(p-1 mod q) với p(p-1 mod q) ≡ 1 mod q, rồi tính theo cơng thức dưới
đây:.

M 1  (am1  bm3 ) mod n


15

M 2  (am1  bm4 ) mod n
M 3  (am2  bm3 ) mod n

M 4  (am2  bm4 ) mod n

Bốn giá trị M1, M2, M3, M4 chính là 4 khả năng có thể của bản rõ cần tìm.
Như vậy, bài giảng đã trình bày tổng quan về thuật tốn Rabin, quy trình sinh
khóa, cách mã hóa, cũng như giải mã trong trường hợp tổng quát và trường hợp đặc

biệt. Trong thực tế, để dễ dàng cho việc tính căn bậc hai của bản mã theo các modul
nguyên tố, thì các số nguyên tố được chọn đồng dư với 3 modul 4. Sau đây là 2 ví dụ
cho việc mã hóa và giải mã sử dụng giải thuật Rabin. Ví dụ 1 thực hiện với 2 số
nguyên tố p, q là đồng dư của 3 modul 4, trong khi ví dụ 2 thực hiện với các số nguyên
tố bất kỳ.
Ví dụ 1: Cho p = 11, q = 7, M = 32. Thực hiện mã hóa, sau đó tiến hành giải mã bản
rõ M sử dụng thuật tốn Rabin.
Cách thức thực hiện:


n = pq = 11 x 7 = 77
C = encode(32) = 322 mod 77 = 23

Nhận thấy q  p  3 mod 4
Tính được

m1 = 233 mod 11 = 1
m2 = (11 - 1) mod 11 = 10
m3 = 232 mod 7 = 4
m4 = (7 - 4) mod 7 = 3

Có q(q-1 mod p) ≡ 1 mod p, nên a = 7 x 8 = 56 ≡ 1 mod 11
Tương tự b = 11 x 2 = 22 ≡ 1 mod 7
Từ đó tính được M1 = 67, M2 = 45, M3 = 32, M4 = 10. Kết quả đúng sẽ là M3.
Ví dụ 2: Cho p = 13, q = 11, M = 7. Thực hiện mã hóa, sau đó tiến hành giải mã bản
rõ M sử dụng thuật toán Rabin.


16




n = pq = 13 x 11 = 143
C = encode(7) = 72 mod 143 = 49

Tính được
Cp = C mod p = 49 mod 13 = 10
Cq = C mod q = 49 mod 11 = 5
Nhận thấy p  1mod 4 , q ≡ 3 mod 4
Tính căn bậc hai của a = Cp = 10 modul p = 13: (Ở đây các ký hiệu a, b, r, r’,
l, m được dùng giống với ở thuật tốn trình bày phía trên)
Chọn b = 8
Tìm l, m lẻ thỏa mãn 2l.m = (p-1)/2 = 6. Từ đây tính được l = 1, m = 3
Đặt r = 2l.m = 6 và r’= 0. Vì l = 1 nên tiến hành chạy từ l về 1 chỉ có một lần
thực hiện là:
r = r/2 = 3
r’ = r’/2 = 0
Xét ar.br’ = 103.130 mod 13 ≡ -1 mod 13. Gán lại: r’ = r’ + 2l.m = 0 + 6 = 6
Kết quả
x1 = a(r+1)/2.br’/2 mod p = 10(3+1)/2.86/2 mod 13 = 102.83 mod 13 = 6
x2 = 7
Thực hiện tính căn bậc hai của a = Cq = 5 modul q = 11:
Kết quả
x3 = a(q+1)/4 mod q = 5(11+1)/4mod 11 = 4
x4 = 7
Tìm số z1 để thỏa mãn:
z1 ≡ q(q-1 mod p) ≡ 1 mod p, nên z1 = 6 x 11 = 66 ≡ 1 mod 13
Tìm số z2 để thỏa mãn:
z2 ≡ p(p-1 mod q) ≡ 1 mod q, nên z2 = 6 x 13 = 78 ≡ 1 mod 11



×