You are on page 1of 31

TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM

TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG


KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CUỐI KỲ MÔN NHẬP MÔN BẢO MẬT


THÔNG TIN

MÃ HOÁ BẤT ĐỐI XỨNG

Người hướng dẫn: CÔ HỒ THỊ THANH TUYẾN


Người thực hiện: NGUYỄN ANH HUY – 51900652
NGUYỄN THỊ QUỲNH ANH – 51900645
ĐỖ NGUYÊN KHÔI – 51900515
BÙI THỊ HOÀI THƯƠNG – 51900238
LÊ TRIỆU VỶ - 51900290
Nhóm : 05
Khoá : 23

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022


TỔNG LIÊN ĐOÀN LAO ĐỘNG VIỆT NAM
TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO CUỐI KỲ MÔN NHẬP MÔN BẢO MẬT


THÔNG TIN

MÃ HOÁ BẤT ĐỐI XỨNG

Người hướng dẫn: CÔ HỒ THỊ THANH TUYẾN


Người thực hiện: NGUYỄN ANH HUY – 51900652
NGUYỄN THỊ QUỲNH ANH – 51900645
ĐỖ NGUYÊN KHÔI – 51900515
BÙI THỊ HOÀI THƯƠNG – 51900238
LÊ TRIỆU VỶ - 51900290
Nhóm : 05
Khoá : 23

THÀNH PHỐ HỒ CHÍ MINH, NĂM 2022


i

LỜI CẢM ƠN
Lời đầu tiên, chúng em xin chân thành gửi lời chúc sức khỏe và lời cảm ơn sâu
sắc đến với trường Đại học TÔN ĐỨC THẮNG. Chúng em rất lấy làm vui mừng khi
nhà trường đã thêm bộ môn “Nhập môn bảo mật thông tin” vào chương trình giảng
dạy. Đặc biệt hơn hết, chúng em rất lấy lòng biết ơn giảng viên bộ môn đã giảng dạy
hết tâm huyết của mình cho chúng em, là Giảng viên Hồ Thị Thanh Tuyến, người đã
giảng dạy cho chúng em rất nhiều điều hay, truyền đạt những kiến thức siêu bổ ích
không chỉ nằm trong phạm vi bài học mà còn cả trong thực tế. Điều đó đã giúp chúng
em rất nhiều trong công tác hoàn thành bài “báo cáo cuối kỳ”.

Bộ môn “Nhập môn bảo mật thông tin” là môn học rất thú vị, vô cùng bổ ích
và có tính thực tế cao. Cung cấp kiến thức gắn với nhu cầu thực tiễn của sinh viên. Mặc
dù chúng em đã cố gắng, cẩn thận và tỉ mỉ hết mức để hoàn thành bài báo cáo cuối kỳ,
nhưng điều đó cũng không thể tránh khỏi những thiếu sót còn tồn tại trong bài, kính
mong quý thầy xem xét và góp ý để bài báo cáo được hoàn thiện hơn và chúng em
cũng sẽ có kinh nghiệm hơn trong tương lai để tránh những sai sót không đáng có.

CHÚNG EM XIN CHÂN THÀNH CẢM ƠN!


ii

ĐỒ ÁN ĐƯỢC HOÀN THÀNH


TẠI TRƯỜNG ĐẠI HỌC TÔN ĐỨC THẮNG

Tôi xin cam đoan đây là sản phẩm đồ án của riêng chúng tôi và được sự hướng
dẫn của GV. Hồ Thị Thanh Tuyến. Các nội dung nghiên cứu, kết quả trong đề tài này
là trung thực và chưa công bố dưới bất kỳ hình thức nào trước đây. Những số liệu trong
các bảng biểu phục vụ cho việc phân tích, nhận xét, đánh giá được chính tác giả thu
thập từ các nguồn khác nhau có ghi rõ trong phần tài liệu tham khảo.
Ngoài ra, trong đồ án còn sử dụng một số nhận xét, đánh giá cũng như số liệu
của các tác giả khác, cơ quan tổ chức khác đều có trích dẫn và chú thích nguồn gốc.
Nếu phát hiện có bất kỳ sự gian lận nào chúng tôi xin hoàn toàn chịu trách
nhiệm về nội dung đồ án của mình. Trường đại học Tôn Đức Thắng không liên quan
đến những vi phạm tác quyền, bản quyền do chúng tôi gây ra trong quá trình thực hiện
(nếu có).
TP. Hồ Chí Minh, ngày 03 tháng 05 năm 2022
Tác giả
(ký tên và ghi rõ họ tên)

Nguyễn Anh Huy

Nguyễn Thị Quỳnh Anh

Đỗ Nguyên Khôi

Bùi Thị Hoài Thương

Lê Triệu Vỷ
iii

PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN


Phần xác nhận của GV hướng dẫn
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
Tp. Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)

Phần đánh giá của GV chấm bài


_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
_________________________________________________________
Tp. Hồ Chí Minh, ngày tháng năm
(kí và ghi họ tên)
1

MỤC LỤC
LỜI CẢM ƠN...................................................................................................................i
PHẦN XÁC NHẬN VÀ ĐÁNH GIÁ CỦA GIẢNG VIÊN..........................................iii
MỤC LỤC........................................................................................................................1
CHƯƠNG 1 – TỔNG QUAN VỀ MÃ HOÁ BẤT ĐỐI XỨNG....................................3
CHƯƠNG 2 – CÁC LOẠI MÃ HOÁ BẤT ĐỐI XỨNG................................................3
2.1. RSA............................................................................................................3
2.1.1. Quá trình tạo khoá bảo mật..............................................................6
2.1.1.1. Tạo public key...................................................................7
2.1.1.2. Tạo private key..................................................................7
2.1.2. Quá trình mã hoá và giải mã............................................................8
2.1.2.1. Quá trình mã hóa................................................................8
2.1.2.2. Quá trình giải mã...............................................................9
2.1.2.3. Ví dụ..................................................................................9
2.1.3. Ưu và nhược điểm của RSA..........................................................10
2.2. DSA..............................................................................................................11
2.2.1. Quá trình tạo khoá của DSA..........................................................11
2.2.1.1. Quá trình tạo private key.................................................12
2.2.1.2. Quá trình tạo public key...................................................12
2.2.2. Quá trình tạo và xác nhận chữ ký của DSA...................................13
2.2.2.1. Quá trình tạo chữ ký........................................................13
2.2.2.2. Quá trình xác nhận chữ ký...............................................14
2.2.3. Ưu và nhược điểm của DSA..........................................................15
2.3. ECDSA - Chữ ký số dựa trên đường cong Elliptic......................................15
2.3.1. Các phép toán trên đường cong Elliptic.........................................16
2.3.1.1. Phép cộng.........................................................................16
2.3.1.2. Phép nhân.........................................................................17
2

2.3.2. Nguyên lý hoạt động cơ bản..........................................................18


2.3.3. Tạo và xác minh chữ ký với ECDSA............................................19
2.3.3.1. Tạo chữ ký.......................................................................19
2.3.3.2. Xác minh chữ ký..............................................................20
2.3.4. Ưu và nhược điểm của ECDSA.....................................................20
CHƯƠNG 3 - ỨNG DỤNG THỰC TẾ MÃ HOÁ BẤT ĐỐI XỨNG..........................21
3.1. Ứng dụng mã hoá bất đối xứng....................................................................21
3.2. So sánh RSA, DSA, ECDSA.......................................................................22
3

CHƯƠNG 1 – TỔNG QUAN VỀ MÃ HOÁ BẤT ĐỐI XỨNG


Mã hoá bất đối xứng là loại hình mã hóa ra đời sau mã hóa đối xứng và còn
được gọi là công nghệ mã hóa public-key. Mã hoá bất đối xứng được cho là an toàn
hơn mã hoá đối xứng vì nó sử dụng hai khoá riêng biệt là public key và private key
phục vụ cho quy trình mã hoá và giải mã.
Public key là loại khoá chuyên dụng để mã hóa dữ liệu và có thể được chia sẻ
công khai một cách thoải mái ra bên ngoài. Còn private key chuyên dùng cho mục đích
giải mã phải hoàn toàn được giữ bí mật. Khi một tin nhắn được mã hóa bằng public
key, nó chỉ có thể được giải mã bằng private key. Ngược lại, khi một nội dung được mã
hóa bằng private key, nó chỉ có thể được giải mã bằng public key.

Sơ lượt về cách hoạt động của Mã hoá bất đối xứng

CHƯƠNG 2 – CÁC LOẠI MÃ HOÁ BẤT ĐỐI XỨNG


2.1. RSA
4

RSA là một sản phẩm nghiên cứu với sự hợp lực của 3 nhà khoa học lớn là Adi
Shamir, Len Adleman và Ron Rivest và được công bố lần đầu vào năm 1977 tại Học
viện MIT. Cái tên RSA được lấy từ những chữ cái đầu tiên của 3 nhà khoa học tạo ra
nó gồm có Adi Shamir, Len Adleman và Ron Rivest.

Adi Shamir
5

Len Adleman

Ron Rivest

RSA là một thuật toán hay còn được gọi là hệ mã hóa đối xứng có phạm vi ứng
dụng rộng rãi và phổ biến. Người ta thường sử dụng RSA ở công tác mã hóa hay thiết
6

lập chữ ký điện tử với vai trò là mã hóa khóa công khai. Bất kỳ ai cũng có thể sử dụng
khóa công khai để mã hóa được dữ liệu muốn gửi đi nhưng để giải mã được chúng cần
phải có sự hỗ trợ của khóa bí mật.
2.1.1. Quá trình tạo khoá bảo mật
Khóa của RSA được sinh như sau:
Chọn 2 số nguyên tố p và q. Tính n = pq. Sau này, n sẽ được dùng làm module
cho cả public key và private key.
Tính một số giả nguyên tố bằng phi hàm Carmichael như sau:
λ(n) = BCNN(λ(p), λ(q)) = BCNN (p − 1, q − 1). Giá trị này sẽ được giữ bí
mật.
Chọn một số tự nhiên e trong khoảng (1, λ(n)) sao cho:
ƯCLN (e, λ(n)) = 1, tức là e và λ(n) cùng là nguyên tố và e nằm trong khoảng
giá trị từ 1 đến giá trị của λ (n). Tính toán d sao cho d ≡ 1/e (mod λ(n)) hay viết dễ hiểu
hơn thì de ≡ 1 (mod λ(n)). Số d được gọi là số nghịch đảo modulo của e (theo
modulo mod λ(n)). Public key sẽ là bộ số (n, e), và private key sẽ là bộ số (n, d). Chúng
ta cần giữ private key thật cẩn thận cũng như các số nguyên tố p và q. Bởi từ đây,
chính chúng ta hoặc những người khác có thể tính được giá trị của các khóa khác dễ
dàng.
Ngoài ra, chúng ta có thể tính số giả nguyên tố bằng phi hàm Euler φ(n) = (p −
1)(q − 1) và dùng φ(n) như λ(n). Vì φ(n) là bội của λ(n) nên các số d thỏa mãn de ≡ 1
(mod φ(n)) cũng sẽ thỏa mãn d ≡ 1/e (mod λ(n)).
Tạo số nguyên tố (n = p x q)
Để đảm bảo tính bảo mật cho các khóa, các số nguyên tố trong RSA buộc phải
rất lớn và cách xa nhau (các số càng nhỏ và gần nhau sẽ dễ bị bẻ khóa).
Ví dụ kiểm tra tính nguyên tố cho các số nguyên tố mà chúng ta đã sử dụng 907
và 773:
n=pxq
7

vì p = 907 và q = 773
nên:
n = 907 x 773
n = 701111
Phi hàm Carmichael
Một khi đã có n, chúng ta sẽ sử dụng hàm phi Carmichael để tính λ(n):
λ(n) = lcm (p − 1, q − 1)
Trong đó:
λ(n) là ký hiệu của hàm phi Carmichael
lcm là lowest common multiple (bội số chung nhỏ nhất p và q)
2.1.1.1. Tạo public key
Trong RSA, public key được tạo thành từ số nguyên tố e và module n. Trong đó,
e là giá trị bất kì trong phạm vi từ 1 đến giá trị của λ (n). Vì public key được chia sẻ
một cách công khai, nên việc chọn ngẫu nhiên một số e sẽ không ảnh hưởng đến quá
trình tạo khóa.
Dữ liệu được mã hóa cuối cùng được gọi là ciphertext (c). Chúng ta lấy nó từ
plaintext message (m). Mã hóa tin nhắn public key bằng cách áp dụng công thức sau:

Ví dụ, cho e = 11, p = 907 và q = 773.


Đầu tiên, ta tìm giá trị n với công thức:
n=pxq
n = 907 x 773
n = 701111.
Đến giai đoạn này ta có được public key (e, n) = (11, 701111)
8

2.1.1.2. Tạo private key


Trong mã hóa RSA, khi dữ liệu hoặc tin nhắn được mã hóa với public key, nó
chỉ có thể được giải mã bằng private key từ cùng một cặp key được tạo. Private key
bao gồm d và n.
Ví dụ, chúng ta có e = 11, n = 701111, p = 907 và q = 773
Đầu tiên ta tìm giá trị λ(n):
λ(n) = lcm (p − 1, q − 1) (áp dụng Phi hàm Carmichael)
λ(n) = lcm (907 − 1, 773 − 1)
λ(n) = lcm (906772)
λ(n) = 349716
Khi có được giá trị λ(n) chúng ta tìm d với công thức là:
d =1/e mod λ(n)
d =1/11 mod 349716
d = 254339
Đến giai đoạn này ta đã có được private key (d, n) = (254339, 701111)
2.1.2. Quá trình mã hoá và giải mã
2.1.2.1. Quá trình mã hóa
Nếu chúng ta có tin nhắn M thì cần chuyển nó thành một số tự nhiên m trong
khoảng (0, n) sao cho m, n nguyên tố cùng nhau. Việc này rất dễ dàng thực hiện bằng
cách thêm một các kỹ thuật padding. Tiếp theo, chúng ta sẽ mã hóa m, thành c như sau:

Trong đó:
• m là message ban đầu
• e, n là public key
• c là dữ liệu đã được mã hoá
9

Sau đó giá trị c sẽ được chuyển cho người nhận.

2.1.2.2. Quá trình giải mã


Ở phía người nhận, họ sẽ giải mã từ c để lấy được m như sau:

Trong đó:
• d là private key thường là một số rất lớn, tích của 2 số nguyên tố, và được
giữ an toàn tuyệt đối
Từ m có thể lấy lại được bản tin bằng cách đảo ngược padding.
2.1.2.3. Ví dụ
Chúng ta có:
• Khóa công khai là (e, n) = (71.1073) (= khóa mã hóa)
• Khóa riêng là (d, n) = (1079.1073) (= khóa giải mã)
Mã hóa tin nhắn “Xin chào":
Lấy Mã ASCII của mỗi chữ cái và đặt chúng cạnh nhau ta được m =
7269767679
Phải cắt tin nhắn thành các khối chứa ít chữ số hơn n (n có 4 chữ số) vì vậy ta
cắt tin nhắn thành từng khối có 3 chữ số: 726 976 767 900
Sau đó, mã hóa từng khối:
• 72671 mod 1073 = 436
• 97671 mod 1073 = 822
• 76771 mod 1073 = 825
• 90071 mod 1073 = 552
Tin nhắn được mã hóa là 436 822 825 552.
Giải mã:
10

• 4361079 mod 1073 = 726


• 8221079 mod 1073 = 976
• 8251079 mod 1073 = 767
• 5521079 mod 1073 = 900
Đó là chuỗi số: 726976767900. Sử dụng bảng mã ASCII dịch tin nhắn trong văn
bản đơn giản 72 69 76 76 79 là “HELLO”.

2.1.3. Ưu và nhược điểm của RSA


Ưu điểm:
 Tiêu chuẩn RSA được ứng dụng rộng rãi trong nhiều lĩnh vực như chữ ký số,
thương mại điện tử, bảo mật, xác thực… Trong Thông tư số 01/2011/TT-
BTTTT ngày 04/01/2011 của Bộ trưởng Bộ Thông tin và Truyền thông
Công bố Danh mục tiêu chuẩn kỹ thuật về ứng dụng công nghệ thông tin
trong cơ quan nhà nước quy định Khuyến nghị áp dụng tiêu chuẩn RSA, là
một trong những giải thuật mã hóa và được xếp vào nhóm Tiêu chuẩn về an
toàn thông tin.
 Có thể chia sẻ khoá mã hoá (khoá công khai) một cách công khai, thoải mái
nên RSA thường được ứng dụng trong các hệ thống mở.
 Khóa giải mã (khóa bí mật) chỉ có người nhận biết nên thông tin được đảm
bảo an toàn hơn và có thể dễ dàng xác thực được nguồn gốc thông tin

Nhược điểm:
 Tốc độ mã hoá chậm hơn nhiều so với mã hoá DES, do vậy trong một vài
trường hợp để tăng tốc độ, người mã hoá sẽ mã hoá tài liệu bằng một phương
pháp mã hoá khác nhưng khoá sẽ được mã hoá bằng RSA.
 Nếu người dùng chưa có kênh an toàn để chia sẻ khóa thì khả năng bị tấn
công man in the middle attack (kẻ tấn công lợi dụng quá trình trao đổi khoá
công khai để đánh tráo khóa công khai. Sau khi đã giả mạo được khóa công
11

khai, kẻ tấn công đứng ở giữa 2 bên để nhận các gói tin, giải mã rồi lại mã
hóa với khóa đúng và gửi đến nơi nhận để tránh bị phát hiện.)
 Không dùng cho truyền dữ liệu vì tốc độ mã hóa chậm.
2.2. DSA
DSA (Thuật toán chữ ký số) là thuật toán kết hợp các đặc tính đại số của các bài
toán logarit rời rạc và lũy thừa mô-đun để tạo ra chữ ký điện tử cho các ứng dụng khác
nhau. Nó được đề xuất vào năm 1991 bởi NIST (Viện Tiêu chuẩn và Công nghệ Quốc
gia) và được thông qua làm Tiêu chuẩn xử lý thông tin liên bang vào năm 1994.
Trong khi hầu hết các thuật toán tạo chữ ký kỹ thuật số hiện nay đều tuân theo
kỹ thuật điển hình, đó là ký thông báo tóm tắt (băm thông điệp thực tế gửi đi) với khóa
cá nhân được xem là nguồn để tạo dấu vân tay kỹ thuật số, thì DSA tạo ra hai chữ ký
bằng cách kết hợp hai chức năng ký và xác minh phức tạp và duy nhất.
Vậy nên, thuật toán DSA không đơn giản chỉ sử dụng các khóa private và khóa
public khi bắt đầu và kết thúc giao tiếp.
2.2.1. Quá trình tạo khoá của DSA
Việc tạo khóa DSA gồm hai bước:
Chọn các tham số (p, q, g) có thể chia sẻ giữa những người khác nhau trong
cùng hệ thống:
 Chọn một hàm băm mã hóa H.
 Hiện nay, có nhiều loại hàm băm khác nhau và mang ưu nhược
điểm riêng. Thông dụng nhất phải kể đến hàm SHA-256 là tùy
chọn phổ biến nhất để đáp ứng các yêu cầu bảo mật hiện đại
 Chọn kích thước khóa L.
Tham số L được xem là thước đo chính quyết định sức mạnh mã hóa của khóa
với các chuẩn sau:
 DSS: L là bội số của 64 và 512 ≤ L ≤1024.
 FIPS 186-2: L là 1024.
12

 NIST 800-57: L là 2048 (hoặc 3072) để thời gian an toàn đến


năm 2010 (hoặc 2030), sử dụng tương ứng với các giá trị băm
và q dài hơn.
 Chọn một số nguyên tố q cùng số bit với đầu ra của H.
 Chọn một số nguyên tố p độ dài L bit sao cho p–1 là bội của q. Tức là p
= q*z+1 với số nguyên z bất kì.
 Chọn g = h (p-1) / q mod p, với:
 h bất kỳ (1< h < p–1)
 Chọn lại nếu kết quả g = 1. Hầu hết cách chọn h đều cho kết
quả g hợp lý, và thông thường ta chọn h = 2.
Ta được các tham số thuật toán (p, q, g) có thể chia sẻ giữa những người khác
nhau trong hệ thống.
1. Tính các khóa private và khóa public của từng người dùng.
2. Ví dụ
Chọn thông điệp m là “Hôm nay trời nóng”, H(m) = 10. Chọn q = 5
 p = 5.2 + 1 = 11
Chọn h = 3  g = 3 (11-1) / 5 mod 11 = 32 mod 11 = 9 mod 11 = 9
Ta được các tham số (p, q, g) = (11, 5, 9)
2.2.1.1. Quá trình tạo private key
Chọn x ngẫu nhiên sao cho 0 < x < q. Ta được private key x.
Ví dụ x =2.
2.2.1.2. Quá trình tạo public key
Khóa công khai gồm 4 tham số: p, q, g, y. (p, q, g) là các tham số thuật toán
được chia sẻ cho mọi người dùng đã được xác định trước.
Ta tiến hành tính giá trị y theo công thức sau:
y = gx mod p
Trong đó, x là private key đã cho trước.
13

Ta được khóa public là (p, q, g, y).


Ví dụ với các tham số (p, q, g) = (11, 5, 9) và khóa riêng x = 2, ta tính y như
sau:
y = 92 mod 11 = 81 mod 11 = 4
Ta được khóa public là (p, q, g, y) = (11, 5, 9, 4).
2.2.2. Quá trình tạo và xác nhận chữ ký của DSA
2.2.2.1. Quá trình tạo chữ ký
Người gửi có thể sử dụng private key DSA của họ để ký dữ liệu kỹ thuật số, cho
phép người nhận xác minh xem tin nhắn có xác thực hay không và giữ nguyên tính
toàn vẹn của nó. Nó cũng ngăn người gửi có thể từ chối tin nhắn.
Quá trình tạo chữ ký:
 Tạo ra một giá trị ngẫu nhiên k, với k ∈(0, q).
 Tính r theo công thức: r = (gk mod p) mod q, nếu r = 0 thì chọn lại k
khác.
 Tính s theo công thứ: s = k-1( H(M) + x*r ) mod q, ở đây H(M) là hàm
băm mã hóa SHA (256) áp dụng cho thông điệp m. Nếu s = 0 thì chọn lại
k khác, tính lại r.
 Chữ ký là (r, s).

Ví dụ với cặp khóa public được cho sẵn là (p, q, g, y) = (11, 5, 9, 4) và khóa
riêng x = 2, thông điệp m “Hôm nay trời nóng”, H(m) = 10.
14

 Cho k = 3
 r = (93 mod 11) mod 5 = (729 mod 11) mod 5 = 3 mod 5 = 3
 s = 3-1(10 + 2*4) mod 5 = 3-1(16) mod 5 = 2(16) mod 5 = 32 mod 5 = 2
Chữ ký số bao gồm (r, s) = (3, 2). Người gửi truyền chữ ký số đến người nhận
cùng với tin nhắn của họ, “Hôm nay trời nóng”. Họ cũng sẽ chia sẻ các giá trị (p, q, g,
y) với người nhận.
2.2.2.2. Quá trình xác nhận chữ ký
Khi người nhận nhận được chữ ký điện tử bên cạnh tin nhắn, bước đầu tiên là
tìm hàm băm của tin nhắn mà họ nhận được. Ví dụ, H(M) là 10. Sau đó họ có thể xác
minh tính toàn vẹn và tính xác thực của tin nhắn bằng quá trình tính toán sau:
 w = s-1 mod q
 u1= [H(M) w] mod q
 u2= (r * w) mod q
 v = [(gu1 yu2) mod p] mod q
Nếu v = r thì chữ ký được xác minh.

Ví dụ với Chữ ký số (r, s) – (3, 2), (p, q, g, y) = (11, 5, 9, 4)


 w = 2-1 mod 5 = 3
 u1= (10.3) mod 5 = 30 mod 5 = 0
 u2 = (3.3) mod 5 = 9 mod 5 = 4
 v = [(90.44) mod 11] mod 5 = [256 mod 11] mod 5 = 3 mod 5 = 3
Ta thấy v = r = 3, tin nhắn được xác thực.
15

2.2.3. Ưu và nhược điểm của DSA


Ưu điểm của DSA
 Tính toán chữ ký nhanh chóng
 Yêu cầu ít không gian lưu trữ hơn cho toàn bộ quá trình.
 Mã nguồn có sẵn (Miễn bằng sáng chế) để sử dụng toàn cầu miễn phí.
 Độ dài chữ ký nhỏ
 Hiệu quả về thời gian cao (tiêu thụ thời gian thấp so với quy trình ký vật
lý, v.v.)
Nhược điểm của DSA
 Mật mã cơ bản phải mới để đảm bảo sức mạnh của nó.
 Việc tiêu chuẩn hóa các nhà cung cấp phần cứng và phần mềm máy tính
trên RSA có thể gây ra sự cố do tiêu chuẩn xác thực thứ hai của DSA.
 Các hoạt động phức tạp đòi hỏi nhiều thời gian để tính toán và xác minh
chữ ký.
 Nó chỉ đảm bảo xác thực chứ không phải bảo mật vì thuật toán không mã
hóa dữ liệu.
 Các thuật toán DSA tính toán hàm băm SHA1 để tạo thông báo tóm tắt.
Do đó, nó phản ánh tất cả các sai sót của hàm băm SHA1 trong thuật
toán.

2.3. ECDSA - Chữ ký số dựa trên đường cong Elliptic


Được công bố lần đầu vào năm 1992 và đưa vào sử dụng rộng rãi năm 2005,
ECDSA là một biến thể của thuật toán mã hoá bất đối xứng DSA hoạt động dựa trên
nguyên lý của đường cong Elliptic. Đây là 1 thuật toán nổi tiếng trong mật mã học,
thường được sử dụng trong các nền tảng blockchain như Bitcoin, Ethereum.
16

Thuật toán này được sử dụng để tạo chữ ký số (digital signature) cho dữ liệu
giúp ta có thể xác minh tính xác thực của dữ liệu mà không ảnh hưởng đến độ bảo mật
của nó. Ta có thể so sánh chữ ký số này với chữ ký ngoài đời thực ở tính áp dụng của
nó, nhưng khác biệt ở chỗ ta có thể giả mạo chữ ký giấy của người khác mà không bị
phát hiện nhưng ECDSA signature thì hoàn toàn không hoặc rất khó.

2.3.1. Các phép toán trên đường cong Elliptic


2.3.1.1. Phép cộng
Giả sử ta có hai điểm P và Q. Sử dụng tính chất của đường cong Elliptic “Nếu
hai điểm P và Q nằm trên đường cong, thì điểm (P+Q) cũng sẽ nằm trên đường cong”
Điểm này được xác định như sau:
 Vẽ đường thẳng nối 2 điểm P và Q trên đường cong Elliptic, đường thẳng
này sẽ cắt đường cong tại một điểm nữa
 Lấy đối xứng của điểm này qua trục hoành, ta sẽ có được điểm (P+Q)
17

2.3.1.2. Phép nhân


Phép nhân trên đường cong Elliptic thực chất là kết quả của việc ta thực hiện
phép cộng lập đi lập lại nhiều lần.
18

2.3.2. Nguyên lý hoạt động cơ bản

 Ta có một phương trình toán học thể hiện đường cong Elliptic trên đồ thị
như sau:

 Chọn một điểm G bất kì nằm trên đường cong trên đồ thị và coi đó là
điểm gốc - Điểm này thường là một điểm cố định trong một lần triển
khai. Theo tiêu chuẩn secp256k1, Bitcoin và Ethereum thường sử dụng
một trong các điểm G được quy định dưới đây

 Chọn một số ngẫu nhiên dA làm private key.


19

 Sau đó ta tính public key QA bằng công thức :

Public key QA có mối quan hệ mật thiết với private key dA và chỉ được tính từ
một chiều tức từ dA tới QA và không thể tính ngược lại. Đó là lí do ta chỉ có thể chia sẻ
public key cho mọi người mà không sợ họ tìm được private key.

2.3.3. Tạo và xác minh chữ ký với ECDSA


2.3.3.1. Tạo chữ ký
Chữ ký số được tạo bởi ECDSA là một cặp số có dạng (r, s). Để tạo ra cặp (r,
s) này đầu tiên ra sẽ phải chọn ra một số ngẫu nhiên k ≠ dA.
Ta tính toạ độ điểm P(x, y) bằng công thức:

Sau đó ta thu được giá trị của điểm x cũng chính là giá trị tham số r cần tìm
(Nếu r = 0 thì ta tính lại từ đầu), tham số r cần có ít nhất 250 bit để đảm bảo được tính
bảo mật.
Để tìm s bước đầu tiên ta cần làm đó là băm dữ liệu cần ký bằng hàm hash
(trong Ethereum sử dụng hàm hash là Keccak256) để tạo ra tham số z. Sau đó ta tính
tham số s theo công thức:

Nếu s = 0 ta tính lại từ đầu.


Cuối cùng ta thu được chữ ký số là một cặp số (r, s).
20

2.3.3.2. Xác minh chữ ký


Để xác minh được chữ ký có hợp lệ hay không ta chỉ sử dụng public key QA và
áp dụng công thức để tính toạ độ điểm P(x, y):

Với (r, s) là cặp số thuộc chữ ký mà ta tính được trước đó.


Sau khi tính được toạ độ P(x, y) với công thức trên nếu r ≠ x đồng nghĩa với
việc chữ ký ta đưa vào để giải mã dữ liệu không hợp lệ. Trường hợp ngược lại sẽ xảy
ra nếu r = x.
2.3.4. Ưu và nhược điểm của ECDSA
Ưu điểm
 Tốc độ sinh khoá cực kỳ nhanh
 Khoá sinh ra có độ dài và dung lượng nhỏ.
 Quá trình tạo chữ ký diễn ra nhanh
 Được chính phủ Hoa kỳ và nhiều nước trên thế giới hỗ trợ phát triển.
 Sử dụng đường cong Elliptic nên có thể áp dụng cho nhiều loại tiền điện
tử mới có trên thị trường.
 Tạo chữ ký nhanh hơn thuật toán RSA
Nhược điểm
 Nếu quá trình sinh khoá private key bị can thiệp bởi bên thứ ba sẽ ảnh
hưởng đến toàn bộ quy trình bảo mật
 Các quá trình có sử dụng để khoá public key diễn ra với tốc độ chậm ví
dụ như xác minh chữ ký.
21

CHƯƠNG 3 - ỨNG DỤNG THỰC TẾ MÃ HOÁ BẤT ĐỐI


XỨNG
3.1. Ứng dụng mã hoá bất đối xứng
Mặc dù là một thuật toán được cho ra đời sau mã hoá đối xứng (sử dụng một
khoá duy nhất) và cho đến nay cũng đã là một thuật toán phổ biến trong giới bảo mật,
tuy nhiên mã hoá bất đối xứng lại cho thấy một hiệu suất kém hơn về tốc độ mã hoá và
giải mã do phải xử lý nhiều công đoạn logic phức tạp nên không được ưa dùng trong
các hoạt động truyền tải thông tin. Nhưng khác với mã hoá đối xứng, mã hoá bất đối
xứng lại cho độ tin cậy về bảo mật cao hơn do sử dụng hai khoá và trong các lĩnh vực
sau mã hoá bất đối xứng vẫn được tin dùng rất rộng rãi:
 Chữ ký điện tử: Xác nhận danh tính của các cá nhân khi hoạt động trên
internet. Ví dụ như trên các thẻ ATM luôn có phần chữ ký điện tử đã
được mã hóa từ chữ ký của khách hàng khi đăng ký tài khoản tại ngân
hàng giúp người dùng thực hiện những giao dịch ngân hàng, đem lại trải
nghiệm tốt và giúp khách hàng an tâm hơn.
 Blockchain: Xác nhận danh tính trong các giao dịch tiền điện tử và ngày
nay là các tài sản số hoá NFT trở nên chính xác hơn. Chẳng hạn như việc
mỗi tài sản NFT đều có một đoạn mã giúp phân biệt tài sản thật.
 Cơ sở hạ tầng khóa công khai (PKI): Quản lý khóa mã hóa thông qua
việc cấp và quản lý chứng chỉ số. Nhu cầu bảo mật trong nhiều lĩnh vực
như kinh doanh, lưu trữ, tài chính, … cũng thúc đẩy được việc người ta
phát triển các cơ sở hạ tầng giúp quản lý và bảo quản khoá bảo mật cũng
như các dịch vụ trao đổi khoá bên thứ ba, nhớ đó mà các hoạt động trao
đổi khoá ngày nay diễn ra thuận tiện và bảo mật hơn.
22

3.2. So sánh RSA, DSA, ECDSA


RSA DSA ECDSA
Loại hình Là thuật Là thuật Là thuật
thuật toán toán mã hoá toán chữ ký số toán chữ ký số
Năm phát Được phát Được phát Được phát
triển triển năm 1977 triển năm 1991 triển năm 1992
Nguyên lý Hoạt động Sử dụng lũy Hoạt động
hoạt động dựa trên nguyên tắc thừa mô-đun và dựa trên biểu diễn
của phương pháp logarit rời rạc toán học của
thừa số nguyên tố Đường cong Elip.
Khả năng Đơn giản Đơn giản Phức tạp
triển khai
Độ lớn của Độ dài của Độ dài của Độ dài của
khoá khoá lớn nên cần khoá ngắn nhưng khoá ngắn nhưng
nhiều thời gian xử cho hiệu suất bảo cho hiệu suất bảo
lý mật tương đương mật gấp đôi, thời
RSA gian sinh khoá
được cải thiện
nhiều
Hiệu suất Chậm Nhanh Nhanh nhất
Mức độ bảo Trung bình Cao Cao nhất
mật
Độ phổ biến Cao Cao Thấp
23
24

TÀI LIỆU THAM KHẢO


Tiếng Việt
1. Quách Ngọc Ân (1992), “Nhìn lại hai năm phát triển lúa lai”, Di tuyền học
ứng dụng, 98(1), tr. 10-16.
2. Bộ nông nghiệp & PTNT (1996), Báo cáo tổng kết 5 năm (1992-1996) phát
triển lúa lai, Hà Nội.
3. Nguyễn Hữu Đống, Đào Thanh Bằng, Lâm Quang Dụ, Phan Đức Trực
(1997), Đột biến – Cơ sở lý luận và ứng dụng, Nhà xuất bản nông nghiệp,
Viện khoa học kỹ thuật nông nghiệp Việt Nam, Hà Nội.
4. Nguyễn Thị Gấm (1996), Phát hiện và đánh giá một số dòng bất dục đực
cảm ứng nhiệt độ, Luận văn thạc sĩ khoa học nông nghiệp, Viện khoa học kỹ
thuật nông nghiệp Việt Nam, Hà Nội.
……….
23. Võ Thị Kim Huệ (2000), Nghiên cứu chẩn đoán và điều trị bệnh…, Luận án
Tiến sĩ y khoa, Trường đại học y Hà Nội, Hà Nội.

Tiếng Anh
28. Anderson J.E. (1985), The Relative Inefficiency of Quota, The Cheese Case,
American Economic Review, 75(1), pp. 178-90.
29. Borkakati R. P.,Virmani S. S. (1997), Genetics of thermosensitive genic
male sterility in Rice, Euphytica 88, pp. 1-7.
30. Boulding K.E. (1955), Economics Analysis, Hamish Hamilton, London.
31. Burton G. W. (1988), “Cytoplasmic male-sterility in pearl millet (penni-
setum glaucum L.)”, Agronomic Journal 50, pp. 230-231.
32. Central Statistical Oraganisation (1995), Statistical Year Book, Beijing.
33. FAO (1971), Agricultural Commodity Projections (1970-1980), Vol. II.
Rome.
25

34. Institute of Economics (1988), Analysis of Expenditure Pattern of Urban


Households in Vietnam, Departement pf Economics, Economic Research
Report, Hanoi.
26

PHỤ LỤC
Phần này bao gồm những nội dung cần thiết nhằm minh họa hoặc hỗ trợ cho nội
dung luận văn như số liệu, biểu mẫu, tranh ảnh. . . . nếu sử dụng những câu trả lời cho
một bảng câu hỏi thì bảng câu hỏi mẫu này phải được đưa vào phần Phụ lục ở dạng
nguyên bản đã dùng để điều tra, thăm dò ý kiến; không được tóm tắt hoặc sửa đổi.
Các tính toán mẫu trình bày tóm tắt trong các biểu mẫu cũng cần nêu trong Phụ lục của
luận văn. Phụ lục không được dày hơn phần chính của luận văn

You might also like