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

Nghiên cứu, so sánh và đánh giá độ an toàn của hệ mật mã rabin và RSA

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

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

NGUYỄN KHẢI

NGHIÊN CỨU, SO SÁNH VÀ ĐÁNH GIÁ ĐỘ AN TOÀN
CỦA HỆ MẬT MÃ RABIN VÀ RSA

LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH

THÁI NGUYÊN - 2016

Số hóa bởi Trung tâm Học liệu – ĐHTN




i

LỜI CAM ĐOAN
Với mục đích nghiên cứu, tìm hiểu để nâng cao kiến thức và trình độ chuyên
môn để áp dụng trong các bài toán cụ thể trong tương lai nên tôi đã làm luận văn
này một cách nghiêm túc và hoàn toàn trung thực. Nội dung luận văn do tự tôi tìm
hiểu và hoàn thành.
Trong luận văn, tôi có sử dụng tài liệu tham khảo của một số tác giả trong và
ngoài nước để hoàn thành luận văn được nêu ở phần tài liệu tham khảo.
Tôi xin cam đoan và chịu trách nhiệm về nội dung, sự trung thực trong luận
văn tốt nghiệp Thạc sỹ của mình.
Thái Nguyên, tháng 7 năm 2016
Học viên



Nguyễn Khải

Số hóa bởi Trung tâm Học liệu – ĐHTN

i



ii

LỜI CẢM ƠN

Em xin chân thành cảm ơn toàn thể các thầy cô giáo trong trường Đại học
công nghệ thông tin và truyền thông, Đại học Thái Nguyên đã hết lòng dạy dỗ chỉ
bảo, tạo điều kiện tốt cho em trong suốt quá trình học tập cũng như trong thời gian
thực hiện luận văn này.
Đặc biệt em gửi lời cảm ơn chân thành và sâu sắc tới TS Hồ Văn Canh người
đã trực tiếp quan tâm, tận tình hướng dẫn giúp đỡ và tạo điều kiện hết sức thuận
lợi cho em trong quá trình thực hiện khóa luận.
Cảm ơn các bạn đồng khóa và gia đình đã động viên, giúp đỡ tôi rất nhiều
trong quá trình học tập tại trường Đại học công nghệ thông tin và truyền thông Đại
học Thái Nguyên cũng như trong quá trình thực hiện khóa luận.

Thái Nguyên, tháng 7 năm 2016
Học viên

Nguyễn Khải

Số hóa bởi Trung tâm Học liệu – ĐHTN


ii



iii

MỤC LỤC

LỜI CAM ĐOAN .................................................................................................. 1
LỜI CẢM ƠN ........................................................................................................ ii
MỤC LỤC .............................................................................................................iii
DANH MỤC BẢNG ............................................................................................. vi
DANH MỤC CHỮ VIẾT TẮT ........................................................................... vii
LỜI MỞ ĐẦU ........................................................................................................ 1
CHƯƠNG 1: TỔNG QUAN MẬT MÃ ................................................................ 5
1.1. Tổng quan hệ mật mã ................................................................................... 5
1.1.1. Các khái niệm ........................................................................................ 5
1.1.2. Lịch sử hình thành và phát triển ............................................................ 6
1.1.3. Các loại hình tấn công ........................................................................... 7
1.1.4. Các chức năng cơ bản của mật mã hiện đại........................................... 8
1.2. Hệ mã khóa đối xứng ................................................................................... 9
1.2.1 Các loại thuật toán khóa đối xứng .......................................................... 9
1.2.2. Tốc độ .................................................................................................. 10
1.2.3. Hạn chế ................................................................................................ 10
1.3. Mã hóa công khai (Mã hóa bất đối xứng) .................................................. 11
1.3.1. An toàn ................................................................................................. 12
1.3.2. Ứng dụng ............................................................................................. 12
1.3.3. Điểm yếu .............................................................................................. 12
1.3.4. Khối lượng tính toán ............................................................................ 13

1.4. Một số kiến thức cơ sở về lý thuyết số ..................................................... 14
Số hóa bởi Trung tâm Học liệu – ĐHTN

iii



iv

1.4.1. Các phép tính trên phần dư số học....................................................... 14
1.4.2. Thuật toán Euclide (tìm ước số chung lớn nhất của 2 số) ................... 16
1.4.3. Phần tử nghịch đảo .............................................................................. 19
1.4.4. Các phương trình đồng dư tuyến tính .................................................. 20
1.1.5. Các hệ phương trình đồng dư tuyến tính ............................................. 20
1.1.6. Thuật toán tính yn mod N ..................................................................... 21
1.1.7. Thặng dư bậc 2..................................................................................... 22
1.1.8. Các ký hiệu Legendre và Jacobi .......................................................... 23
CHƯƠNG 2: HỆ MẬT MÃ RABIN VÀ HỆ MẬT MÃ RSA ............................ 27
2.1. Các thuật toán liên quan đến mã hóa, giải mã. .......................................... 27
2.1.1. Thuật toán tính căn bậc 2 mod p với p (p ≥ 3) là số nguyên tố lẻ ....... 27
2.1.2.Thuật toán tím căn bậc 2 mod p khi số nguyên tố p có dạng:p ≡ 3mod 4
........................................................................................................................ 28
2.1.3.Thuật toán tím căn bậc 2 mod p khi số nguyên tố p có dạng:p ≡ 5mod 8
........................................................................................................................ 29
2.1.4. Thuật toán xét trường hợp n là hợp số lẻ ............................................. 29
2.2. Mật mã RSA............................................................................................... 30
2.2.1. Mô tả hệ mật mã RSA.......................................................................... 30
2.2.2. Nguyên lý hoạt động ............................................................................ 32
2.2.3. Cơ sở khoa học của thuật toán giải mã ................................................ 32
2.2.4. Một số chú ý quan trọng về RSA......................................................... 32

2.3. Mật mã Rabin ............................................................................................. 33
2.3.1. Quá trình tạo khóa................................................................................ 34
2.3.2. Mã hóa ................................................................................................. 34
2.3.3. Giải mã ................................................................................................. 35
2.3.4. Ví dụ..................................................................................................... 38
Số hóa bởi Trung tâm Học liệu – ĐHTN

iv



v

CHƯƠNG 3: SO SÁNH 2 HỆ MẬT MÃ............................................................ 40
3.1. So sánh về độ phức tạp trong thuật toán .................................................... 40
3.1.1. Lý thuyết độ phức tạp của thuật toán................................................... 40
3.1.2. Hệ mật mã RSA. .................................................................................. 41
3.1.3. Hệ mật mã Rabin ................................................................................. 44
3.1.4.Kết luận ................................................................................................. 45
3.2. So sánh độ an toàn giữa hệ mật mã Rabin với RSA .................................. 45
3.2.1. Khái niệm độ an toàn của thuật toán ................................................... 45
3.2.2. Hệ mật mã RSA. .................................................................................. 46
3.2.3.Độ an toàn của hệ mật Rabin ................................................................ 50
3.2.4. Kết luận ................................................................................................ 52
3.3. Chương trình thực nghiệm ......................................................................... 52
3.3.1. Chuẩn bị dữ liệu thử nghiệm ............................................................... 52
3.3.2. Thử nghiệm chương trình .................................................................... 53
3.3.3. Thử nghiệm hiệu năng ......................................................................... 54
KẾT LUẬN .......................................................................................................... 58
TÀI LIỆU THAM KHẢO .................................................................................... 59


Số hóa bởi Trung tâm Học liệu – ĐHTN

v



vi

DANH MỤC BẢNG
Bảng 1.1. Thuật toán Euclid mở rộng……………………………………..……19
Bảng 2.1. Bảng thuật toán Rabin……………………………………………….38
Bảng 3.1. Bảng thử nghiệm hiệu năng ( kịch bản 1)……………………………56
Bảng 3.1. Bảng thử nghiệm hiệu năng ( kịch bản 2)……………………………57

Số hóa bởi Trung tâm Học liệu – ĐHTN

vi



vii

DANH MỤC CHỮ VIẾT TẮT

Viết tắt

Tiếng Anh

Tiếng Việt


BSCNN

Bội số chung nhỏ nhất

ƯSC

Ước số chung

ƯSLCN

Ước số chung lớn nhất

Số hóa bởi Trung tâm Học liệu – ĐHTN

vii



1

LỜI MỞ ĐẦU
1. Sự cần thiết lựa chọn đề tài
Sự xuất hiện của mạng Internet cho phép mọi người có thể truy cập, chia sẻ
và khai thác thông tin một cách dễ dàng và hiệu quả, tuy nhiên lại nảy sinh vấn đề
về an toàn thông tin. Thực vậy, Internet có những kỹ thuật tuyệt vời cho phép mọi
người truy nhập, khai thác, chia sẻ thông tin. Nhưng nó cũng là nguy cơ chính dẫn
đến thông tin của bạn bị hư hỏng hoặc phá huỷ hoàn toàn.
Để vừa bảo đảm tính bảo mật của thông tin lại không làm giảm sự phát triển
của việc trao đổi thông tin quảng bá trên toàn cầu thì một giải pháp tốt nhất là mã

hoá thông tin. Có thể hiểu sơ lược mã hoá thông tin là che đi thông tin của mình
làm cho kẻ tấn công nếu chặn được thông báo trên đường truyền thì cũng không
thể đọc được và phải có một giao thức giữa người gửi và người nhận để có thể trao
đổi thông tin, đó là các cơ chế mã và giải mã thông tin.
Năm 1949, C.Shannon đã đưa ra mô hình hệ mật mã đối xứng an toàn vô
điều kiện dựa trên cơ sở lý thuyết thông tin. Các hệ mã này đều sử dụng chung
một khóa bí mật trong cả hai quy trình mã hóa - giải mã và vì thế việc bảo mật
thông tin đồng nghĩa với việc bảo mật khóa chung đó. Tuy nhiên, nếu trong hệ
thống có nhiều nhóm người cần trao đổi thông tin mật với nhau thì số khóa chung
cần giữ bí mật là rất lớn, khó có thể quản lý và trao đổi.
Trong thời đại ngày nay, nhiều bài toán mật mã trong thực tế được đặt ra là
“chỉ cần giữ bí mật trong một thời gian nào đó cho một số thông tin nào đó mà
thôi”. Với mục đích giải quyết vấn đề trên, vào năm 1976, W.Diffie M.E.Hellman đã để xuất mô hình hệ mật mã phi đối xứng hay còn gọi là hệ mật
Số hóa bởi Trung tâm Học liệu – ĐHTN

1



2

mã khoá công khai, an toàn về mặt tính toán dựa trên cơ sở lý thuyết độ phức
tạp tính toán. Các hệ mã bất đối xứng sử dụng hai loại khóa trong cùng một cặp
khóa, khóa bí mật và khóa công khai. Khóa công khai được công bố rộng rãi và
được sử dụng để mã hóa thông tin còn khóa bí mật chỉ do một người nắm giữ và
được sử dụng để giải mã thông tin đã được mã hóa bằng khóa công khai. Đặc điểm
quan trọng là không thể tìm được khóa giải mã khi chỉ biết khóa lập mã trong thời
gian chấp nhận được.
Do thời gian, khả năng của bản thân, em không thể khảo sát hết được tất cả
các hệ mật mã khoá công khai đã được biết, mà chỉ nghiên cứu 2 hệ mật mã được

thế giới sử dụng nhiều, rộng rãi nhất hiện nay, đó là hệ mật mã RSA do Ron
Rivert, Adi Shamir và Len Adleman sáng tạo, được công bố vào năm 1977 dựa
vào bài toán phân tích số nguyên và hệ mật mã RABIN là hệ mật dựa trên độ phức
tạp của việc tính căn bậc hai theo hợp số. Để hiểu rõ về 2 thuật toán này cũng như
so sánh, đánh giá được độ an toàn của 2 thuật toán này, em lựa chọn đề tài:
“Nghiên cứu, so sánh và đánh giá độ an toàn của hệ mật mã Rabin và RSA” làm
luận văn tốt nghiệp Thạc sỹ của mình.
2. Mục tiêu nghiên cứu của đề tài
- Nghiên cứu về lý thuyết số và mật mã;
- Tìm hiểu, phân tích và nhận xét được ưu nhược điểm của hệ mật mã Rabin
và RSA;
- So sánh và đánh giá độ an toàn của hệ mật mã Rabin và RSA.
3. Đối tượng và phạm vi nghiên cứu
3.1. Đối tượng
Số hóa bởi Trung tâm Học liệu – ĐHTN

2



3

Đối tượng tìm hiểu của luận án là các kiến thức cơ sở về lý thuyết số, mã
hóa công khai, mã hóa không công khai, hệ mật mã Rabin và RSA. Việc đề xuất
dựa trên những quan tâm như:
- Ưu điểm, nhược điểm của 2 hệ mật mã kể trên;
- Tốc độ mã hóa;
- Độ an toàn vật lý;
- Ứng dụng thực tiễn.
3.2. Phạm vi nghiên cứu:

- Tìm hiểu cơ sở về lý thuyết số; tổng quan về hệ mật mã, mật mã khóa công
khai;
- Phân tích, nhận xét ưu nhược điểm về 2 hệ mật mã Rabin và RSA;
- So sánh, đánh giá độ an toàn 2 hệ mật mã Rabin và RSA;
- Các ứng dụng của 2 hệ mật mã trong thực tiễn.
4. Phương pháp nghiên cứu
- Thu thập, phân tích và tổng hợp các tài liệu, thông tin về các nội dung có
liên quan đến đề tài;
- Tìm hiểu được ưu điểm, nhược điểm khi sử dụng 2 hệ mật mã trên; so
sánh, đánh giá độ an toàn của 2 hệ mật mã áp dụng vào thực tiễn;
- Viết một chương trình thực nghiệm để từ đó rút ra kết luận, so sánh, đánh
giá 2 hệ mật mã.
5. Ý nghĩa khoa học của đề tài

Số hóa bởi Trung tâm Học liệu – ĐHTN

3



4

- Kết quả nghiên cứu, tìm hiểu của đề tài để giúp hiểu rõ về 2 hệ mật mã
khóa công khai.
- Đánh giá, so sánh được ưu nhược điểm, độ an toàn khi sử dụng 2 hệ mật
mã Rabin và RSA áp dụng vào thực tiễn để sử dụng một trong hai hệ mật mã trên
trong từng trường hợp.
6. Cấu trúc của luận văn
Dự kiến luận văn gồm: phần mở đầu, 3 chương chính, kết luận và tài liệu
tham khảo, cụ thể:

Phần mở đầu: Nêu lý do chọn đề tài và bố cục luận văn
Chương 1: TỔNG QUAN HỆ MẬT MÃ
Trong chương này giới thiệu tổng quan về hệ mật mã; hệ mật mã khóa
không công khai; hệ mật mã khóa công khai; các kiến thức cơ sở về lý thuyết số.
Chương 2: HỆ MẬT MÃ RABIN VÀ HỆ MẬT MÃ RSA
Trong chương này giới thiệu về 2 hệ mật Rabin và RSA bao gồm: Cơ sở
toán học; mô tả; quá trình tạo khóa, mã hóa và giải mã.
Chương 3: SO SÁNH 2 HỆ MẬT MÃ
Trong chương này đánh giá, so sánh về 2 hệ mật Rabin và RSA bao gồm :
độ phức tạp của thuật toán; độ an toàn; tốc độ mã hóa; chạy chương trình thực
nghiệm và đưa ra nhận xét về khả năng và các ứng dụng trong thực tế của 2 hệ
mật mã.
Phần kết luận: Tóm tắt các kết quả đạt được và hướng phát triển tiếp của đề tài

Số hóa bởi Trung tâm Học liệu – ĐHTN

4



5

CHƯƠNG 1: TỔNG QUAN MẬT MÃ
1.1. Tổng quan hệ mật mã
1.1.1. Các khái niệm
- Mật mã là ngành khoa học nghiên cứu việc ứng dụng toán học vào biến
đổi thông tin nhằm mục đích bảo vệ thông tin khỏi sự truy cập của những người
không có thẩm quyền.
- Hệ mật mã được định nghĩa là một bộ năm (𝒫, 𝒞, 𝒦, ℰ, 𝒟), trong đó:
1. 𝒫 là tập hữu hạn các các bản rõ có thể

2. 𝒞 tập hữu hạn các bản mã có thể
3. 𝒦 là tập hữu hạn các khoá có thể
4. ℰ là tập các hàm lập mã
5. 𝒟 là tập các hàm giải mã. Với mỗi k ∈ 𝒦, có một hàm lập mã
ek ∈ ℰ, ek : 𝒫 → C và một hàm giải mã dk ∈ D, dk: C → 𝒫 sao cho
dk (ek (x)) = x , ∀x ∈ 𝒫
- Mã hóa: là quá trình chuyển thông tin có thể đọc được (gọi là bản rõ) thành
thông tin “khó” thể đọc được theo cách thông thường (gọi là bản mã).Đó là một
trong những kỹ thuật để bảo mật thông tin.
- Giải mã: là quá trình chuyển thông tin ngược lại từ bản mã thành bản rõ.
- Thuật toán mã hóa hay giải mã là thủ tục để thực hiện mã hóa hay giải mã.

Số hóa bởi Trung tâm Học liệu – ĐHTN

5



6

- Khóa mã hóa là một giá trị làm cho thuật toán mã hóa thực hiện theo cách
riêng biệt và sinh ra bản rõ riêng. Thông thường khóa càng lớn thì bản mã càng an
toàn. Phạm vi các giá trị có thể có của khóa được gọi là “không gian khóa”.
- Hệ mã hóa là tập các thuật toán, các khóa nhằm che giấu thông tin, cũng
như làm rõ nó.
1.1.2. Lịch sử hình thành và phát triển
Mật mã học là một ngành có lịch sử từ hàng nghìn năm nay, xuất hiện đồng
thời với sự xuất hiện của chữ viết (khoảng 4000 năm trước). Thuật ngữ
“cryptography – mật mã” dịch từ tiếng Hy Lạp có nghĩa là “chữ viết bí mật”. Trong
phần lớn thời gian phát triển của mình (ngoại trừ vài thập kỷ trở lại đây), lịch sử

mật mã học chính là lịch sử của những phương pháp mật mã học cổ điển - các
phương pháp mật mã hóa với bút và giấy, đôi khi có hỗ trợ từ những dụng cụ cơ
khí đơn giản. Vào đầu thế kỷ 20, sự xuất hiện của các cơ cấu cơ khí và điện cơ,
chẳng hạn như máy Enigma, đã cung cấp những cơ chế phức tạp và hiệu quả hơn
cho việc mật mã hóa. Sự ra đời và phát triển mạnh mẽ của ngành điện tử và máy
tính trong những thập kỷ gần đây đã tạo điều kiện để mật mã học phát triển nhảy
vọt lên một tầm cao mới.
Sự phát triển của mật mã học luôn luôn đi kèm với sự phát triển của các kỹ
thuật phá mã (hay thám mã). Các phát hiện và ứng dụng của các kỹ thuật phá mã
trong một số trường hợp đã có ảnh hưởng đáng kể đến các sự kiện lịch sử. Cho tới
đầu thập kỷ 1970, các kỹ thuật liên quan tới mật mã học hầu như chỉ nằm trong
tay các chính phủ. Hai sự kiện đã khiến cho mật mã học trở nên thích hợp cho mọi
người, đó là: sự xuất hiện của tiêu chuẩn mật mã hóa DES và sự ra đời của các kỹ
thuật mật mã hóa khóa công khai.
Số hóa bởi Trung tâm Học liệu – ĐHTN

6



7

- Các giai đoạn phát triển:
Mật mã học cổ đại
Mật mã học trung cổ
Mật mã học từ 1800 tới Thế chiến II
Mật mã học trong Thế chiến II
Mật mã học hiện đại
1.1.3. Các loại hình tấn công
1.1.3.1. Xem trộm thông tin

Trường hợp người dùng T chặn các thông điệp của A gửi cho B, và xem
được nội dung của thông điệp này.
1.1.3.2. Thay đổi nội dung thông điệp
Người dùng T chặn các thông điệp của A gửi cho B và ngăn không cho các
thông điệp này đến B. Kế tiếp T thay đổi nội dung của thông điệp và lại gửi thông
điệp đó cho B, khi đó B, mà B không hề biết là thông điệp đó đã bị thay đổi
1.1.3.3. Mạo danh người gửi
Ví dụ T giả làm là A gửi thông điệp cho B. B không biết điều này và nghĩ
rằng thông điệp là của A gửi cho mình.
1.1.3.4. Phát lại thông điệp
Ví dụ trường hợp T sao chép lại hoàn toàn thông điệp mà A gửi cho B bằng
các công cụ chụp các packet. Sau một thời gian xữ lý T lại gửi bản sao chép này
cho B và B tin đó là thông điệp chính B gửi vì nó giống thông điệp cũ. Cách tấn

Số hóa bởi Trung tâm Học liệu – ĐHTN

7



8

công này nhìn qua có vẽ không ảnh hưởng gì đối với B, nhưng ta xét ví dụ tiếp
sau:
B là nhân viên ngân hàng A là khách hàng cần thanh toán.
A gửi thông điệp đề nghị B chuyển cho T 10000$. A đã áp dụng các biện
pháp an toàn thông tin như dùng chữ ký điện tử phòng trường hợp T thay đổi nội
dung hoặc xem nội dung như các cách tấn công trên. Nhưng lần này T lại dùng
cách khác đó là sao chép và phát lại thông điệp này thì các biện pháp bảo vệ, phòng
tránh trên đều không thể chống lại được. B luôn tin rằng A đã gửi tiếp một thông

điệp mới (kế tiếp) để chuyển thêm cho Trudy 10000$ nữa, và như vậy ta đã biết
tách dụng của cách tấn công này.Trong nhiều trường hợp cũng gây ra tác hại không
kém so với việc giả mạo thông điệp.
1.1.4. Các chức năng cơ bản của mật mã hiện đại
1.1.4.1. Đảm bảo tính bí mật (confidentiality) – giải quyết vấn đề bảo vệ thông tin
chống lại sự tìm hiểu nội dung thông tin từ các đối tượng không có quyền truy
nhập chúng.
Thuật ngữ sự bí mật (secrecy) hoặc sự riêng tư (privacy) cũng đồng nghĩa
với confidentiality.
1.1.4.2. Đảm bảo tính toàn vẹn dữ liệu (data integrity) – đảm bảo khả năng phát
hiện sửa đổi trái phép thông tin.
Để đảm bảo toàn vẹn dữ liệu, cần có các phương pháp đơn giản và tin cậy
phát hiện bất kỳ sự can thiệp không mong muốn vào dữ liệu (các can thiệp như
chèn, xóa và thay thế trong bản tin).

Số hóa bởi Trung tâm Học liệu – ĐHTN

8



9

1.1.4.3. Đảm bảo sự xác thực (authentication) – chức năng này có liên hệ với sự
định danh (identification). Vì thế nó được thực hiện xác thực trên cả thực thể (hai
đối tượng trong một phiên liên lạc sẽ định danh lẫn nhau) và bản thân thông tin
(thông tin được truyền trên kênh truyền sẽ được xác thực về nguồn gốc, nội dung,
thời gian gửi, …).
Vì thế vấn đề xác thực trong mật mã được chia thành hai lớp chính – xác
thực thực thể (identity authentication) và xác thực nguồn gốc dữ liệu (data origin

authentication).
1.1.4.4. Đảm bảo chống sự từ chối (non-repudiation) – chức năng ngăn ngừa một
thực thể từ chối (phủ nhận) một cam kết hoặc hành động trước đó.
1.2. Hệ mã khóa đối xứng
- Mã hóa đối xứng (mã hóa không công khai-symmetric-key algorithms) là
lớp thuật toán các mã hóa trong đó việc mã hóa và giải mã đều dùng chung cho 1
khóa (secret key).
1.2.1 Các loại thuật toán khóa đối xứng
Thuật toán đối xứng có thể được chia ra làm hai thể loại, mật mã
luồng (stream ciphers) và mật mã khối (block ciphers). Mật mã luồng mã hóa từng
bit của thông điệp trong khi mật mã khối gộp một số bit lại và mật mã hóa chúng
như một đơn vị. Cỡ khối được dùng thường là các khối 64 bit. Thuật toán tiêu
chuẩn mã hóa tân tiến (Advanced Encryption Standard), được NIST công nhận
tháng 12 năm 2001, sử dụng các khối gồm 128 bit.
Các thuật toán đối xứng thường không được sử dụng độc lập.Trong thiết kế
của các hệ thống mật mã hiện đại, cả hai thuật toán bất đối xứng (asymmetric)
Số hóa bởi Trung tâm Học liệu – ĐHTN

9



10

(dùng chìa khóa công khai) và thuật toán đối xứng được sử dụng phối hợp để tận
dụng các ưu điểm của cả hai. Những hệ thống sử dụng cả hai thuật toán bao gồm
những cái như SSL (Secure Sockets Layer), PGP (Pretty Good Privacy)
và GPG (GNU Privacy Guard) v.v. Các thuật toán khóa bất đối xứng được sử dụng
để phân phối khóa mật cho thuật toán đối xứng.
Một số ví dụ các thuật toán mã hóa khóa đối xứng nổi tiếng khá được tôn

trọng bao gồm: Twofish, Serpent, AES (còn được gọi là Rijndael), Blowfish,
CAST5, RC4, Tam phần DES (Triple DES) và IDEA (International Data
Encryption Algorithm – Thuật toán mật mã hóa dữ liệu quốc tế).
1.2.2. Tốc độ
Các thuật toán đối xứng nói chung đòi hỏi công suất tính toán ít hơn
các thuật toán khóa bất đối xứng (asymmetric key algorithms). Trên thực tế, một
thuật toán khóa bất đối xứng có khối lượng tính toán nhiều hơn gấp hằng trăm,
hằng ngàn lần một thuật toán khóa đối xứng (symmetric key algorithm) có khối
lượng tương đương.
1.2.3. Hạn chế
Hạn chế của các thuật toán khóa đối xứng bắt nguồn từ yêu cầu về sự phân
phối chìa khóa bí mật, mỗi bên phải có một bản sao của chìa. Do khả năng các
chìa khóa có thể bị phát hiện bởi đối thủ mật mã, chúng thường phải được bảo
an trong khi phân phối và trong khi dùng. Hậu quả của yêu cầu về việc lựa chọn,
phân phối và lưu trữ các chìa khóa một cách không có lỗi, không bị mất mát là
một việc làm khó khăn, khó có thể đạt được một cách đáng tin cậy.

Số hóa bởi Trung tâm Học liệu – ĐHTN

10



11

Để đảm bảo giao thông liên lạc an toàn cho tất cả mọi người trong một nhóm
gồm n người, tổng số lượng chìa khóa cần phải có là:

𝑛(𝑛−1)
2


Hiện nay người ta phổ biến dùng các thuật toán bất đối xứng có tốc độ chậm
hơn để phân phối chìa khóa đối xứng khi một phiên giao dịch bắt đầu, sau đó các
thuật toán khóa đối xứng tiếp quản phần còn lại. Vấn đề về bảo quản sự phân phối
chìa khóa một cách đáng tin cậy cũng tồn tại ở tầng đối xứng, song ở một điểm
nào đấy, người ta có thể kiểm soát chúng dễ dàng hơn. Tuy thế, các khóa đối xứng
hầu như đều được sinh tạo tại chỗ.
Các thuật toán khóa đối xứng không thể dùng cho mục đích xác
thực (authentication) hay mục đích chống thoái thác (non-repudiation) được.
1.3. Mã hóa công khai (Mã hóa bất đối xứng)
Là thuật toán trong đó việc mã hóa và giãi mã dùng hai khóa khác nhau là
pulic key (khóa công khai hay khóa công cộng) và private key (khóa riêng ).Nếu
dùng public key để mã hóa thì private key sẽ dùng để giải mã và ngược lại.
Ý tưởng của hệ mật công khai được Diffie và Hellman đưa ra năm 1976.
Còn việc thực hiện hệ mật công khai thì do Rivest, Shamir và Adleman đưa ra đầu
tiên năm 1977, họ đề xuất một hệ mật RSA nổi tiếng. Và kể từ đó có một số hệ
mật khác được công bố, độ mật của chúng dựa trên bài tính toán khác nhau, như
dựa trên độ khó của bài toán phân tích thành nhân tử như hệ mật RSA, dựa vào độ
khó logarithm rời rạc như hệ mật ElGamal, hay dựa trên đường cong Elliptíc.
Hệ mã khóa công khai sử dụng hai khóa có quan hệ toán học với nhau, tức
là một khóa này được hình thành từ khóa kia: Người muốn nhận bản mã (A) tạo
ra một khóa mật (private key) và từ khóa mật tính ra khóa công khai (public key)
Số hóa bởi Trung tâm Học liệu – ĐHTN

11



12


với một thủ tục không phức tạp, còn việc tìm khóa mật khi biết khóa công khai là
bài toán khó giải được. Khóa công khai sẽ đưa đến cho người gửi bản tin (B) qua
kênh công cộng.Và bản tin được B mã hóa bằng khóa công cộng. Bản mã truyền
đến A, và nó được giải mã bằng khóa mật của A.
1.3.1. An toàn
Về khía cạnh an toàn, các thuật toán mật mã hóa bất đối xứng cũng không
khác nhiều với các thuật toán mã hóa đối xứng. Có những thuật toán được dùng
rộng rãi, có thuật toán chủ yếu trên lý thuyết; có thuật toán vẫn được xem là an
toàn, có thuật toán đã bị phá vỡ… Cũng cần lưu ý là những thuật toán được dùng
rộng rãi không phải lúc nào cũng đảm bảo an toàn. Một số thuật toán có những
chứng minh về độ an toàn với những tiêu chuẩn khác nhau. Nhiều chứng minh gắn
việc phá vỡ thuật toán với những bài toán nổi tiếng vẫn được cho là không có lời
giải trong thời gian đa thức. Nhìn chung, chưa có thuật toán nào được chứng minh
là an toàn tuyệt đối. Vì vậy, cũng giống như tất cả các thuật toán mật mã nói chung,
các thuật toán mã hóa khóa công khai cần phải được sử dụng một cách thận trọng.
1.3.2. Ứng dụng
Một ứng dụng quan trọng nhất của hệ mật mã khóa công khai là ký số và
xác định thông điệp. Từ đó tạo ra các chứng chỉ số, trao đổi khóa mã đối xứng và
tạo ta “tiền điện tử”…
1.3.3. Điểm yếu
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 pad) hoặc tương đương,
chưa có thuật toán mã hóa khóa bất đối xứng nào được chứng minh là an toàn
trước các tấn công dựa trên bản chất toán học của thuật toán. Khả năng một mối
Số hóa bởi Trung tâm Học liệu – ĐHTN

12




13

quan hệ nào đó giữa 2 khóa hay điểm yếu của thuật toá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 toàn của
các thuật toán này đều dựa trên các ước lượng về khối lượng tính toán để giải các
bài toán gắn với chúng. Các ước lượng này lại luôn thay đổi tùy thuộc khả năng
của máy tính và các phát hiện toán học mới.
Khả năng bị tấn công dạng kẻ tấn công đứng giữa (man in the middle
attack): kẻ tấn công lợi dụng việc phân phối khóa công khai để thay đổi khóa công
khai. Sau khi đã giả mạo được khóa công 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. Dạng tấn công kiểu này có thể phòng ngừa bằng các phương pháp trao
đổi khóa an toàn nhằm đảm bảo nhận thực người gửi và toàn vẹn thông tin. Một
điều cần lưu ý là khi các chính phủ quan tâm đến dạng tấn công này: họ có thể
thuyết phục (hay bắt buộc) nhà cung cấp chứng thực số xác nhận một khóa giả
mạo và có thể đọc các thông tin mã hóa.
1.3.4. Khối lượng tính toán
Để đạt được độ an toàn tương đương đòi hỏi khối lượng tính toán nhiều hơn
đáng kể so với thuật toán mật mã hóa đối xứng. Vì thế trong thực tế hai dạng thuật
toán này thường được dùng bổ sung cho nhau để đạt hiệu quả cao. Trong mô hình
này, một bên tham gia trao đổi thông tin tạo ra một khóa đối xứng dùng cho phiên
giao dịch. Khóa này sẽ được trao đổi an toàn thông qua hệ thống mã hóa khóa bất
đối xứng. Sau đó 2 bên trao đổi thông tin bí mật bằng hệ thống mã hóa đối xứng
trong suốt phiên giao dịch.

Số hóa bởi Trung tâm Học liệu – ĐHTN

13




14

1.4. Một số kiến thức cơ sở về lý thuyết số
1.4.1. Các phép tính trên phần dư số học
1.4.1.1.Định nghĩa đồng dư
- Định nghĩa:
Cho m là số nguyên, dương và a là số nguyên bất kỳ. Tiến hành chia a cho
m, được thương là q, số dư r. Có thể diễn đạt điều đó bằng công thức sau:
a = m.q + r,

r ∈ {0, 1, … , m – 1}

Nếu a và b là 2 số nguyên mà khi chia cho m có cùng số dư r thì ta nói rằng
a đồng dư với b và viết a ≡ b (mod m), còn m được gọi là môdun (modulus).
a ≡ b (modun) có nghĩa là a không đồng dư với b khi chia cho m.
- Ví dụ: 10 ≡ 3 mod 7; 10 ≡ 17 mod 7; 24 ≡ 17 mod 7
- Dễ thấy rằng quan hệ đồng dư có các tính chất sau:
+ Đối xứng: Nếu a ≡ b (mod m) thì b ≡ a (mod m), ∀ a, b ∈ Z
+ Bắc cầu: Nếu a ≡ b (mod m) và b ≡ c (mod m) thì a ≡ c (mod m)
+ Phản xạ: Tất nhiên a ≡ a (mod m)
Như vậy, phép đồng dư xác định một quan hệ tương đương. Ta sẽ ký hiệu
tập tất cả các số nguyên đồng dư a theo modun m là [a], nghĩa là:
[a] = {x : x = a ± km , k = 0, 1, 2,…}
Với a ∈ Zm trong đó Zm = {0, 1, 2, … , m-1}.
Chú ý rằng, khi viết a = b mod m, ta cần hiểu a ∈ Zm.

Số hóa bởi Trung tâm Học liệu – ĐHTN

14




15

1.4.1.2. Tính chất
- Tính chất 1: Cho a ≡ b (mod m) và c ≡ d (mod m). Ta có:
(1) a + c ≡ b + d (mod m)
(2) ac ≡ bd (mod m)
(3) an ≡ bn (mod m) ∀ n ≥ 0
(4) ka ≡ kb (mod m) ∀ k ∈ {0, 1, ….}
(5) ka = kb (mod km) ∀ k ∈ {0, 1, ….}
(6) Nếu s là ƯSC của a, b và m, nghĩa là:
a = a1s, b = b1s, m = m1s thì a1 ≡ b1 (mod m1)
(7) Nếu a ≡ b (mod mi), i = 1, 2, … , k và m = BSCNN (m1,…, mk)
thì a ≡ b (mod m)
(8) Nếu a ≡ b (mod m) và m = m1, m2, … , mk thì a ≡ b (mod mi), i = 1, 2,
…, k.
(9) Nếu i = 1, 2, … , k và r là ước của a, b và nguyến tố cùng nhau với m
(ƯSCLN của r, m là 1) thì a/r ≡ b/r (mod m)
Ta sẽ ký hiệu (a, m) là ƯSCLN của a và m. Chú ý rằng m, n được gọi là
nguyên tố cùng nhau nếu (m, n) = 1.
- Tính chất 2: (Định lý Fermat):
Nếu (a, p) = 1, trong đó p là số nguyên tố, thì ap-1 ≡ 1 (mod p).
Ta nhớ rằng, p được gọi là số nguyên tố nếu p là số nguyên lớn hơn 1 không
chia hết cho bất cứ số nào khác ngoài 1 và chính nó.
Số hóa bởi Trung tâm Học liệu – ĐHTN

15




16

- Hàm Ơle (Euler): Gọi 𝜙(m) là số tất cả các phần tử x nằm giữa 0 và m

thỏa mãn (x, m) = 1, nghĩa là 𝜙(m) = # 𝑍𝑚
.

Nếu m là số nguyên tố → 𝜙(m) = # 𝑍𝑚
= (m -1)

- Tính chất 3: (Định lý Euler)
Nếu (a, m) = 1 và m >1 thì 𝑎𝜙(𝑚) ≡ 1 (mod m)
Chú ý: + n = pq (p, q – nguyên tố khác nhau) thì 𝜙(n) = (p - 1)(q - 1);
+ 𝜙(p) = p - 1 (p là số nguyên tố).
1.4.2. Thuật toán Euclide (tìm ước số chung lớn nhất của 2 số)
1.4.2.1. Thuật toán Euclide
Cho 2 số nguyên dương m, n, với n < m. Khi đó ƯSCLN của m, n ký hiệu
là (m, n) được tính dựa trên Bổ đề sau:
- Bổ đề: Nếu m = nq + r với n > 0 thì ước chung bất kỳ của m và n cũng là
ước chung của n và r. Đặc biệt, (m, n) = (n, r).
Do 0 ≤ r ≤ n nên ta có thể tìm (m, n) sau hữu hạn bước như sau:
m = nq1 + r1 ;

0 < r1 < n

n = r1q2 + r2 ;

0 < r2 < r1


r1 = nq1 + r1 ;

0 < r3 < r2

…..
rk-3 = rk-2qk-1 + rk-1 ;

0 < rk-1 < rk-2

rk-2 = rk-1qk + rk ;

0 < rk < rk-1

rk-1 = rkqk+1

rk+1 = 0

Số hóa bởi Trung tâm Học liệu – ĐHTN

16



17

qi ≥ 0 với mọi i = 1, 2, …, k+1.
Khi đó (m, n) = (n, r1) = (r1, r2) = (r2, r3) = … = (rk-2, rk-1) = (rk-1, rk) = (rk) ,
m≥n
Thuật toán có thể được diễn tả như thế này:

Bước 1: r ← m = [m/n].n và m ← n, n ← r;
Bước 2: Nếu n ≠ 0, đến bước 1, ngược lại dừng, m là đáp số.
- Mệnh đề: Số các phép chia trong thuật toán Euclid không bao giờ vượt
quá 2 log2 n.
- Mệnh đề: Nếu (m, n) = k thì tồn tại các số nguyên x và y sao cho :
mx + ny = k
- Ví dụ: Tính ước số chung lớn nhất của 91 và 287.
Trước hết lấy 287 (số lớn hơn trong 2 số) chia cho 91:
287 = 91x3 + 14 (91 & 14 sẽ được dùng cho vòng lặp kế)
Nhận xét: bất kỳ số nào chia hết bởi 287 và 91 cũng sẽ chia hết bởi:
287 – 91x3 = 14. Tương tự, số chia hết bởi 91 và 14 cũng chia hết bởi:
91x3 + 14 = 287.
Do đó, ƯSCLN (91,287) = ƯSCLN (91,14). Bài toán trở thành tìm ƯSCLN
(91,14).
Lặp lại quy trình trên cho đến khi phép chia không còn số dư như sau:
91 = 14x6 + 7 (14 & 7 sẽ được dùng cho vòng lặp kế)
14 = 7x2 (không còn số dư, kết thúc, nhận 7 làm kết quả)
Số hóa bởi Trung tâm Học liệu – ĐHTN

17



×