i Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn 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
Trang 1Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- 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
Trang 2i
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 3Đặ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
Trang 4iii
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
DANHMỤCCHỮVIẾTTẮ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
Trang 5iv
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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 y n 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
Trang 6v
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 7vi
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 91
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 102
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 113
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Đố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;
- 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
Trang 124
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- 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
Trang 13- 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ã
e k ∈ ℰ, ek : 𝒫 → C và một hàm giải mã dk ∈ D, dk : C → 𝒫 sao cho
d k (e k (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ã
Trang 146
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- 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ó
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
Trang 157
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- 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
Trang 168
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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)
Trang 179
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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)
Trang 1810
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
(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
Trang 1911
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Để đả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)
2Hiệ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)
Trang 2012
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 2113
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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
Trang 2214
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
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)
Trang 23(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ì a p-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ó
Trang 2416
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
- 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
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:
Trang 25Bướ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ả)
Trang 2618
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Cuối cùng ta có: 7 = ƯSCLN(7,0) = ƯSCLN(14,7) = ƯSCLN(91,14) = ƯSCLN(287,91)
1.4.2.2 Thuật toán Euclid mở rộng
Ngoài việc tìm (m, n), thuật toán này cho phép tìm được cả x và y thỏa mãn:
mx + ny = (m, n)
Input: Cho m, n nguyên dương (m ≥ n)
Output: x, y, d: mx + ny = d = (m, n) (ước số chung lớn nhất của 2 số m và
Trang 27Cho m > 0 (số nguyên) và a là số nguyên
Nếu có số nguyên b sao cho a.b ≡ 1 (mod n) thì b được gọi là phần tử nghịch
đảo của a theo môdun m
Chú ý rằng, nếu b là phần tử nghịch đảo của a theo môdun m thì các số b +
km, k = 0, -1, 1, -2, 2 … cũng là nghịch đảo của a Trong các số nghịch đảo này,
có một số nằm giữa 0 và m và được ký hiệu là: a -1 mod m
1.4.3.2 Thuật toán tìm phần tử nghịch đảo
Ta cần tìm nghịch đảo của a theo môdun m Ký hiệu i = (m, a)
Giả sử d > 1 Nếu tồn tại b là nghịch đảo của a theo môdun m thì ta có:
ab = 1+ km, hay ab – km = 1 Thế thì da 1 b – kdm 1 = 1, hay d(a 1 b – km 1) =1
Đây là điều vô lý vì vế trái luôn luôn chia hết cho d > 1.Như vậy, khi d > 1
phần tử a không thể có nghịch đảo theo môdun m
Bây giờ giả sử d = 1 Áp dụng thuật toán Euclid mở rộng cho m và a, ta tìm được x và y sao cho: mx + ay = (m, a) = 1
Suy ra: (mx + ay)(mod m) ≡ 1, hay ay(mod m) ≡ 1
Trang 28- Định lý: Cho d = (a, n) Khi đó,
+ Nếu d là ước của b thì phương trình (*) có đúng d nghiệm nằm trong
khoảng (0, n) là: x j = (b/d) x* + j (n/d) mod n j = 0, 1, …, d-1
Trong đó, x* = (a/d)-1 mod (n/d)
+ Nếu d không là ước của b (b không chia hết cho d) thì phương trình nói trên vô nghiệm
1.4.5 Các hệ phương trình đồng dư tuyến tính
1.4.5.1 Định nghĩa
Một hệ r phương trình đồng dư tuyến tính là một hệ phương trình có dạng:
x ≡ x i (mod d i) , i = 1, 2, …, r (**)
Trong đó x i, i = 1, 2, 3, … , r là các số nguyên lớn hơn 1 và nguyên tố cùng
nhau từng đôi một, tức là (d i , d j ) = 1 với mọi i ≠ j
Trang 2921
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
1.4.5.2 Cách giải
Ta áp dụng định lý đồng dư Trung hoa Cụ thể:
- Định lý (CRT): Cho d1, … , dr là các số nguyên d i ≥ 2 , i = 1, 𝑟̅̅̅̅ sao cho
(d i , d j ) = 1 , i ≠ j Khi đó hệ phương trình (**) có nghiệm duy nhất là:
x = (n/d 1 ) y 1 x 1 +(n/d 2 )y 2 x 2 mod n
Vì 7.8/7 = 8 Do đó, y 1 = (7*8/7)-1 mod 7 = 8-1 mod 7 = 1-1 mod 7 = 1
y 2 = (7.8/8)-1 mod 7 = 7-1 mod 7 = 7
Vậy x = 8.1.2+ 7.7.3 mod 56 = 16 + 147 mod 56 = 51 mod 56 = 51
Thử lại, rõ ràng là 51 ≡ 2 mod 7 và 51 ≡ 3 mod 8
Kết luận: x = 51 là nghiệm của hệ (1)
1.4.6 Thuật toán tính y n mod N
Input: Cho y, n, N nguyên dương, N ≥ 2
Output: b = y n mod N
Bước 1: Đặt a = n; b = 1; c = y
Trang 3022
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Bước 2: Đặt d = 1 nếu a chẵn và d = 0 nếu a lẻ; đặt a = [a/2] (phần nguyên của số a/2)
Bước 3: Nếu d = 1 đến bước 6
Bước 4: Tính b = b.c mod N;
Bước 5: Nếu a = 0 thì thuật toán dừng và b là đáp số
Bước 6: Tính c = c.c mod N và chuyển đến bước 2
Nếu số a không thỏa mãn (1) thì nó được gọi là không thặng dư bậc 2 modn
Ta ký hiệu: Tập tất cả các số nguyên a là thặng dư bậc 2 mod n là Q n và tập tất cả các số không thặng dư bậc 2 mod n là 𝑄̅n
Ta có các định lý sau đây:
- Định lý 1: Cho p là một số nguyên tố lẻ và a thỏa mãn điều kiện (a, p) =
Có ít nhất 2 nghiệm khác nhau, nếu a∈Qpvà vô nghiệm nếu a ∈̅ Qp(tức là
a ∈ 𝑄̅p)
- Định lý 2: Với giả thiết trong định lý 1 Khi đó a∈Qp
#Q p = #𝑄̅p = 𝑝−1
2
Trang 3123
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trong đó, ≠A là lực lượng của A
- Định lý 3: Với giả thiết trong định lý 1 Khi đó
a (p-1)/2 ≡ { 1 mod 𝑝 nếu a ∈ 𝑄𝑝
−1 mod 𝑝 nếu a ∈ 𝑄̅𝑝
- Định nghĩa 2: Cho a ∈ Qn Nếu tồn tại x sao cho (x, n) = 1 và x2 ≡ a mod
n thì x được gọi là căn bậc 2 của số a theo modulon
- Định lý 4: Cho n = p.q, trong đó p, q là 2 số nguyên tố lẻ khác nhau Khi
đó a thỏa mãn điều kiện (a, n) = 1 là thặng dư bậc 2 theo modulon nếu và chỉ nếu
a ∈ Qp và a ∈ Qq
- Định nghĩa 3: Số nguyên Blum là một hợp số dạng n = p.q trong đó p, q
là 2 số nguyên tố lẻ, khác nhau và thỏa mãn: p ≡ 3 mod 4 và q ≡ 3 mod 4 (3)
- Định lý 5: Cho n = p.q là một số nguyên Blum và a ∈ Qn Khi đó a có đúng
4 căn bậc 2 và có đúng một trong chúng thuộc Qn
- Định nghĩa 4: Với giả thiết của định lý 5 Căn bậc 2 duy nhất của a thuộc
Qn được gọi là căn bậc 2 chính tắc của a theo mod n
1.4.8 Các ký hiệu Legendre và Jacobi
1.4.8.1 Định nghĩa, tính chất
Để tìm căn bậc 2 theo định nghĩa 2 ở (1.4.7), trước hết chúng ta phải xác định xem một số a có thuộc Qn hay không Nhưng để xem a ∈ Qn hay a ∈ Q̅n ta phải sử dụng đến các ký hiệu Legendre và Jacobi Trước hết ta có định nghĩa:
- Định nghĩa 5: Cho p là một số nguyên tố lẻ và a là một số nguyên Kí hiệu Legendre (𝑎
𝑝) được định nghĩa như sau:
Trang 32Từ định nghĩa 5, ta có các tính chất cơ bản sau:
- Tính chất 1: Cho p là một số nguyên tố lẻ, a, b ∈ Z – các số nguyên Khi đó:
Trang 3325
Số hóa bởi Trung tâm Học liệu – ĐHTN http://www.lrc.tnu.edu.vn
Trong các kí hiệu Legendre, ta chỉ giả thiết p là số nguyên tố lẻ Trong thực hành, ta gặp phải trường hợp n là một hợp số lẻ tùy ý Do đó, ta mở rộng sang ký hiệu Jacobi Trước hết, ta có định nghĩa sau:
- Định nghĩa 6: Giả sử n là một số lẻ được phân tích thành:
Các tính chất của ký hiệu Jacobi
-Tính chất 1: Với n là hợp số lẻ, a số nguyên Khi đó, (𝑎
𝑛)