CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ

70 0 0
Tài liệu đã được kiểm tra trùng lặp
CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Kỹ Thuật - Công Nghệ - Công Nghệ Thông Tin, it, phầm mềm, website, web, mobile app, trí tuệ nhân tạo, blockchain, AI, machine learning - Công nghệ thông tin UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN ---------- HUỲNH THỊ CHI CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC Quảng Nam, tháng 04 năm 2017 UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN --------- KHÓA LUẬN TỐT NGHIỆP Tên đề tài: CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ Sinh viên thực hiện: HUỲNH THỊ CHI MSSV: 2113021042 CHUYÊN NGÀNH CÔNG NGHỆ THÔNG TIN KHÓA: 2013 – 2017 Cán bộ hướng dẫn ThS. HỒ TUẤN ANH MSCB: …. Quảng Nam, ngày 14 tháng 04 năm 2017 LỜI CẢM ƠN Đầu tiên cho em xin gửi lời cảm ơn đến tất cả các thầy cô trong khoa Công Nghệ Thông Tin trường Đại học Quảng Nam đã cho em những kiến thức trong 4 năm qua và lấy kiến thức để thực hiện khóa luận này. Đặc biệt em xin gửi lời cảm ơn đến Th.S Hồ Tuấn Anh – người đã trực tiếp hướng dẫn em hoàn thành khóa luận này. Bên cạnh đó là những ý kiến đóng góp của bạn bè, đã cho em nguồn động viên lớn để hoàn thành nhiệm vụ của khóa luận. Qua đó, em đã đạt được nhiều tiến bộ về kiến thức cũng như những kĩ năng làm việc bổ ích. Em chân thành gửi lời cảm ơn sâu sắc đến toàn thể thầy cô và các bạn MỤC LỤC LỜI CẢM ƠN MỤC LỤC DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH MỞ ĐẦU ............................................................................................................... 1 1.1. Lý do chọn đề tài ........................................................................................ 1 1.2. Mục tiêu của đề tài ...................................................................................... 2 1.3. Đối tượng và phạm vi nghiên cứu .............................................................. 2 1.3.1. Đối tượng nghiên cứu ........................................................................... 2 1.3.2.Phạm vi nghiên cứu ............................................................................... 3 1.4. Phương pháp nghiên cứu ............................................................................ 3 1.5. Lịch sử nghiên cứu...................................................................................... 3 1.6. Đóng góp của đề tài .................................................................................... 4 1.7. Cấu trúc đề tài ............................................................................................. 4 NỘI DUNG NGHIÊN CỨU ................................................................................. 5 Chương 1: MỘT SỐ HỆ MẬT MÃ HÓA THÔNG DỤNG................................. 5 1.1.Giới thiệu về các hệ mật mã ........................................................................ 5 1.2.Hệ mã khóa bí mật ....................................................................................... 7 1.2.1 Hệ mã DES .......................................................................................... 11 1.2.2. Hệ mã AES ......................................................................................... 11 1.3. Hệ mã khóa công khai RSA...................................................................... 12 1.3.1. Giới thiệu về hệ mã khóa công khai ................................................... 12 1.3.2. Các khái niệm cơ bản ......................................................................... 15 1.3.3. Các nguyên lý của hệ mã khóa công khai .......................................... 16 1.3.4. Các thuật toán của hệ mã khóa công khai .......................................... 18 1.3.5. Hệ mã khóa công khai RSA ............................................................... 19 1.3.6. Hệ Elgamal ......................................................................................... 22 1.3.6.1 Hệ Elgamal là hệ mật mã công khai ............................................. 22 1.3.6.2 Mã hóa và giải mã hệ Elgamal...................................................... 23 1.4. Đánh giá hệ mã khóa công khai RSA ....................................................... 23 1.4.1. Độ an toàn của RSA ........................................................................... 23 1.4.2. Hiệu suất thực hiện của thuật toán RSA ............................................ 24 1.4.3. Một số tính chất của hệ RSA .............................................................. 24 1.5. Một số phương pháp tấn công hệ mã RSA ............................................... 25 1.5.1 Phương thức thứ nhất .......................................................................... 26 1.5.2. Phương thức thứ hai ........................................................................... 26 1.6. Ứng dụng của hệ mật mã RSA ................. Error Bookmark not defined. 1.7. Thuật toán RSA ........................................ Error Bookmark not defined. 1.8. Kết luận chương ........................................................................................ 26 Chương 2: CHỮ KÝ SỐ ..................................................................................... 26 2.1. Giới thiệu chung ....................................................................................... 27 2.1.1. Khái niệm và các ưu điểm của chữ ký số ........................................... 28 2.1.1.1 Khái niệm ...................................................................................... 28 2.1.2. So sánh chữ ký số và chữ ký thông thường ....................................... 30 2.1.2.1 Sự khác nhau giữa chữ ký số và chữ ký thường (chữ ký viết tay) ..................................................... Error Bookmark not defined. 2.1.2.2 Sự khác nhau giữa chữ điện tử và chữ ký thông thườngError Bookmark no 2.1.4. Phân loại chữ ký số ............................................................................ 31 2.1.5. Sơ đồ tổng quan của một hệ thống chữ ký số điện tử ........................ 31 2.1.6. Điều kiện đảm bảo an toàn cho chữ ký số ......................................... 32 2.1.7. Về mô hình chứng thực chữ ký số ..................................................... 32 2.2. Xác thực thông báo và các hàm xác thực ................................................. 33 2.2.1. Xác thực thông báo............................................................................. 33 2.2.2. Các hàm xác thực ............................................................................... 36 2.3. Hàm băm ................................................................................................... 39 2.3.1. Hàm băm MD5 ................................................................................... 39 2.3.1.1 Giới thiệu ...................................................................................... 39 2.3.1.2 Khái niệm ...................................................................................... 40 2.3.1.3 Ứng dụng ...................................................................................... 40 2.3.1.4 Thuật giải ...................................................................................... 40 2.3.2. Hàm băm SHA-1 ................................................................................ 42 2.4. Một số lược đồ chữ ký số phổ biến .......................................................... 44 2.4.1. Định nghĩa .......................................................................................... 44 2.4.2. Yêu cầu của một hệ thống chữ ký điện tử .......................................... 45 2.4.3. Phân loại các lược đồ chữ ký số ......................................................... 45 2.4.3.1. Lược đồ RSA. .............................................................................. 46 2.4.3.2. Lược đồ Elgamal .......................................................................... 46 2.4.3.3. Chuẩn chữ ký số DSS .................................................................. 47 2.5. Các kiểu tấn công vào lược đồ chữ ký số ................................................. 48 2.6. Kết luận chương ........................................................................................ 49 Chương 3: cài đặt chương trình ứng dụng chữ ký số trong giao hành chính điện tử…………………………………………………………..50 3.1. Lĩnh vực ứng dụng của chương trình ....................................................... 50 3.2. Chức năng của chương trình ..................................................................... 50 3.3. Cài đặt chương trình ứng dụng ................................................................. 51 3.3.1 Các yêu cầu của ứng dụng : ................................................................ 51 3.3.2 Môi trường xây dựng ứng dụng : ........................................................ 52 3.4. Chương trình demo ................................................................................... 53 3.5. Kết luận chương ........................................................................................ 58 DANH MỤC TÀI LIỆU THAM KHẢO ............................................................ 61 DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT AES Advance Encryption Standard DES Data Encryption Standard MAC Message Authentication Code MD4 Message Digest 4 MD5 Message Digest 5 RSA Rivest, Shamir, Adleman SHA Secure Hash Algorithm TCPIP Transfer Control ProtocolInternet Protocol URL Uniform Resource Locator CMAC Mã xác thực thông báo mã hóa P Bản rõ C Bản mã. X Không gian các bản mã. D, Dk Hàm giải mã, hàm giải mã với khoá k. d, d A Số mũ giải mã, số mũ giải mã của cá thể A. E, Ek Hàm mã hoá, hàm mã hoá với khoá k. e, eA Số mũ mã hoá, số mũ mã hoá của cá thể A. IDA Định danh của cá thể A. k Khoá mã. M Bản rõ M Không gian bản rõ P Bản tin rõ. (n; e) Cặp số : n, e là các số nguyên dương. (e, d) Ước chung lớn nhất của hai số nguyên dương e và d. DANH MỤC CÁC HÌNH Hình 1.1 Quá trình thực hiện cơ chế mã hoá…………………………………........8 Hình 1.2: Mã hóa dữ liệu ........................................................................................... 9 Hình 1.3: Quy trình mã hóa...................................................................................... 10 Hình 1.4: Khóa bảng mã .......................................................................................... 14 Hình 1.5: Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai. ................ 18 Hình 2.1: Sơ đồ CBC-MAC ................................................................................... 35 Hình 2.3: Sơ đồ OMAC thông báo với độ dài khối cuối ngắn hơn các khối trước .................................................................................................................................. 36 Hình 2.4(b) Mã hoá khoá công khai: xác thực và chữ kí ......................................... 37 Hình 2.4(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ kí ............................ 37 Hình 2.5: Xác định thông tin dùng hàm băm ........................................................... 38 Hình 2.6 : Giải thuật MD5 ....................................................................................... 41 Hình 3.1: Giao diện demo kết quả chữ ký số ........................................................... 54 Hình 3.2: Giao diện lúc tạo khóa thành công ........................................................... 55 Hình 3.3: Giao diện khi tạo chữ ký thành công ....................................................... 56 Hình 3.4: Giao diện khi giãi mã chữ ký thành công ................................................ 57 Hình 3.5: Giao diện khi giãi mã chữ ký không thành công ..................................... 58 Trang 1 MỞ ĐẦU 1.1. Lý do chọn đề tài Trong xu thế phát triển của thế giới, với sự bùng nổ của mạng Internet hiện nay. Các ứng dụng của công nghệ thông tin đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, kinh tế, chính trị, quân sự và khi đó trở thành phương tiện điều hành các hệ thống truyền dữ liệu được sử dụng phổ biến trên toàn thế giới. Nó được sử dụng truyền thư điện tử, truy cập đến các Website, kết nối các trường học, công sở, giám sát các hệ thống từ xa, truyền tệp liên lạc với các khách hàng và sử dụng các dịch vụ ngân hàng, các giao dịch điện tử… Trong tương lai Internet sẽ trở thành môi trường truyền thông phổ cập cho toàn thế giới. Rõ ràng tiềm năng của mạng Internet là rất lớn nhưng nó lại bị hạn chế bởi thiết kế mở của mình. Như ta biết giao tiếp qua Internet chủ yếu sử dụng giao thức TCPIP. Các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy nó rất dễ bị xâm phạm, can thiệp, theo dõi và giả mạo trên đường truyền và biện pháp bảo mật bằng mật khẩu là không đảm bảo và có thể bị nghe trộm hoặc bị dò ra nhanh chóng, vì thế đã chuyển sang xu hướng mã hóa. Nhờ thông tin được người gửi mã hóa trước khi truyền qua mạng Internet nên dù kẻ trộm có “chặn” cũng không thể đọc. Khi tới đích người chặn sẽ sử dụng một công cụ đặc biệt để giải mã. Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an toàn thông tin. Trong mật mã vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặt biệt là trong mã hóa khóa công khai, vấn đề xác thực là vô cùng quan trọng. Để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả đó là phương pháp mã hóa và bảo mật phổ biến nhất đang được thế giới áp dụng đó là chữ ký số. Với chữ ký số, người sử dụng có thể mã hóa thông tin một cách hiệu quả, chống giả mạo, xác thực danh tính người gửi. Ngoài ra, chữ ký số còn là bằng chứng giúp chống chối cải nguồn gốc, ngăn chặn người gửi chối cải nguồn gốc tài liệu của mình đã gửi. Trang 2 Đối với các hoạt động môi trường mạng ngày càng phát triển như hiện nay, chữ ký số là một hình thức để bảo đảm tính pháp lý của các cam kết. Mặt khác, việc giao dịch bằng các thông điệp điện tử nói chung và các giao dịch ở dạng số nói riêng đã được luật hóa bằng luật giao dịch điện tử. Vì vậy, cần tìm hiểu, nghiên cứu về chữ ký số để tham mưu cho lãnh đạo trong việc bảo mật văn bản điện tử. Nhận thấy tính thiết thực của vấn đề này và được sự gợi ý của giáo viên hướng dẫn, nên em đã chọn đề tài “ CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ ” để làm đề tài nghiên cứu cho khóa luận tốt nghiệp của mình. 1.2. Mục tiêu của đề tài Nghiên cứu các giải pháp mã hóa để bảo mật thông tin và những phương pháp kỹ thuật tạo chữ ký số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệu hay văn bản của người gửi. Xây dựng một chương trình ứng dụng có khả năng bảo mật nội dung thông tin dưới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký số trên văn bản điện tử góp phần phục vụ những người quản lý đơn vị trao đổi thông tin mật với các đối tác, điều hành công việc từ xa. 1.3. Đối tượng và phạm vi nghiên cứu 1.3.1. Đối tượng nghiên cứu Tìm hiểu những cơ sở toán học, độ phức tạp của thuật toán và các thuật toán thường được sử dụng trong các hệ mã khóa công khai. Nghiên cứu tìm hiểu lý thuyết chung về nguyên lý, hoạt động và ứng dụng của hệ mã khóa công khai. Nghiên cứu tìm hiểu cụ thể các hệ mã khóa công khai đang được sử dụng nhiều nhất hiện nay bao gồm các hệ sau: + Hệ mật mã bí mật + Hệ mật mã công khai RSA Trang 3 Nghiên cứu tìm hiểu mô hình chữ ký số và ứng dụng trong việc ký các tài liệu, văn bản điện tử. Tìm hiểu các ngôn ngữ lập trình Java phục vụ cho công việc lập trình ứng dụng. Nghiên cứu về mật mã khóa công khai RSA, chữ ký số và ứng dụng thuật toán RSA. 1.3.2.Phạm vi nghiên cứu Tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật toán và độ phức tạp của mã hóa nói chung và của mã hóa khóa công khai nói riêng. 1.4. Phương pháp nghiên cứu Nghiên cứu các tài liệu về mã hóa, mật mã của các tác giả trong và ngoài nước, các bài báo trên các tạp chí khoa học và các tài liệu trên mạng Internet. Nghiên cứu ngôn ngữ lập trình Java để viết một ứng dụng nhỏ về chữ ký số. 1.5. Lịch sử nghiên cứu Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín. Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký số. Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký số ưmới đi vào cuộc sống một cách rộng rãi. Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng. Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử. Hiện nay, chữ ký số có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online. Trang 4 1.6. Đóng góp của đề tài Tìm hiểu các ngôn ngữ lập trình java phục vụ cho công việc lập trình ứng dụng. Nghiên cứu về mật mã khóa công khai RSA, chữ ký số và ứng dụng thuật toán RSA để viết một chương trình nhỏ về chữ ký số. 1.7. Cấu trúc đề tài Lời cảm ơn Mục lục Danh mục các chữ viết tắt Danh mục các bảng Danh mục các hình vẽ MỞ ĐẦU NỘI DUNG Chương 1: Một số hệ mật mã khóa thông dụng Chương 2: Chữ ký số Chương 3: Cài đặt chương trình ứng dụng chữ ký số trong giao dịch hành chính điện tử. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TÀI LIỆU THAM KHẢO Trang 5 NỘI DUNG NGHIÊN CỨU Chương 1: MỘT SỐ HỆ MẬT MÃ HÓA THÔNG DỤNG 1.1.Giới thiệu về các hệ mật mã Mật mã là một môn khoa học nghiên cứu cách viết bí mật. Về phương diện lịch sử, mật mã gắn liền với quá trình mã hóa, điều này có nghĩa là nó gắn với cách thức để chuyển đổi thông tin từ dạng này sang dạng khác, từ dạng thông thường có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được nếu như không có các thông tin bí mật. Quá trình mã hóa chủ yếu được sử dụng để đảm bảo được tính bí mật của các thông tin quan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng như các bí mật về kinh tế, thương mại. Mật mã được dùng để bảo vệ bí mật thông tin khi thông tin được truyền đi. Giả sử có hai người muốn trao đổi thông tin với nhau A và B. Khi đó chẳng hạn A muốn gửi thông tin là một văn bản nào đó dưới dạng điện tử, gọi là bản rõ cho B, muốn được bảo mật thì A phải mã hóa cho bản rõ đó, được bản mã và gửi cho B. Như vậy giữa A và B phải có sự thỏa thuận nào đó về việc dùng khóa để A có thể mã hóa thông tin để được bản mã và B giải mã thông tin từ bản mã nhằm thu được bản rõ. Khi đó, một người nào đó không có khóa thì dù họ có lấy được bản mã trên đường truyền thì cũng không thể dịch ngược thành bản rõ. Người ta chia hệ mã làm hai loại chính là hệ mã khóa bí mật và hệ mã khóa công khai. Các hệ mã khóa bí mật thực hiện việc bảo mật đều dựa trên cơ sở là có một khóa để dùng chung cho việc lập mã và giải mã. Các hệ mã khóa công khai là trong đó mỗi người tham gia vào quá trình truyền tin sẽ có hai khóa khác nhau, một khóa công khai để lập mã và một khóa bí mật dùng để giải mã. Khóa công khai được công khai hóa cho mọi người, còn khóa mật của mỗi người được giữ bí mật. Thông tin trước khi gửi được mã hóa bởi khóa công khai của người nhận. Chỉ có người nhận mới có khả năng giải mã bản mã bằng khóa mật của mình. Độ bảo mật Trang 6 của các hệ mã công khai rất cao vì được đảm bảo bằng độ phức tạp tính toán của thao tác tìm các số nguyên tố lớn và phân tích một số nguyên tố lớn thành tích các thừa số. Một hệ mật mã là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau: ▪ P là một tập hợp các bản rõ (chứa thông tin cần mã hóa). ▪ C là tập hữu hạn các bản mã (chứa thông tin đã được mã hóa từ bản rõ). ▪ K là tập hữu hạn các khóa. ▪ Với mỗi khóa kK tồn tại luật mã hóa ke  E và luật giải mã kd  D tương ứng. Luật mã hóa ke : P → C và luật giải mã ke : C → P là hai ánh xạ thỏa mãn kd ( ke (x)) = x,  x  P. Có 2 phương pháp mã hóa khóa, đó là phương pháp mã hóa khóa đối xứng và phương pháp mã hóa khóa không đối xứng. Những hệ mật mã dựa trên phương pháp mã hóa khóa đối xứng gọi là hệ mật mã khóa đối xứng (Symmetric Key Cryptography) hay hệ mật mã khóa bí mật. Ngược lại, các hệ mật mã dựa trên phương pháp mã hóa khóa không đối xứng gọi là hệ mật mã khóa không đối xứng (Asymmetric Key Cryptography) hay hệ mật mã khóa công khai (Public Key Cryptography). 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ó” có thể đọc được theo cách thông thường (gọi là Bản mã). 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 tính toán để thực hiện mã hóa hay giải mã. 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ủ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 cho rõ nó. Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc. Các thuộc tính được yêu cầu là: Trang 7 ▪ Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa đựng trong dạng đã mật mã hóa của nó. Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp. ▪ Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông hay không. ▪ Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không. Thuật toán mã hóa: Là một thuật toán nhằm mã hóa thông tin của chúng ta, biến đổi thông tin từ dạng rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung của thông tin. Thông thường các thuật toán sử dụng một hoặc nhiều khóa để giải mã. Bạn có thể coi khóa này như một password để có thể đọc được nội dung mã hóa. Người gửi sẽ dùng khóa mã hóa để mã hóa thông tin sang dạng mở, và người nhận sẽ dùng khóa giải mã thông tin sang dạng rõ. Chỉ có những người nào có khóa giải mã mới có thể đọc được nội dung. Nhưng đôi khi “ kẻ thứ ba” không có khóa giải mã vẫn có thể đọc được thông tin, bằng cách phá vỡ thuật toán. Và có một nguyên tắc là bất kỳ thuật toán mã hóa nào cũng đều có thể bị phá vỡ. Do đó không có bất kỳ thuật toán mã hóa nào được coi là an toàn mãi mãi. Độ an toàn của thuật toán được dựa vào nguyên tắc: ▪ Nếu chi phí để giải mã một khối lượng thông tin lớn hơn giá trị của khối lượng thông tin đó thì thuật toán đó được tạm coi là an toàn. ▪ Nếu thời gian để phá vỡ một thuật toán là quá lớn thì thuật toán được coi là an toàn. 1.2.Hệ mã khóa bí mật (Secrete Key Gryposystem - SKG) Hệ thống mã hoá khóa bí mật là hệ thống mã hóa trong đó quá trình mã hóa và giải mã đều được sử dụng chung một khóa gọi là khóa bí mật (Secret key). Quá trình thực hiện cơ chế mã hoá như sau: Trang 8 Hình 1.1 Quá trình thực hiện cơ chế mã hoá Hình 1.1 mô tả quá trình trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hoá đối xứng. Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khoá. Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí mật. Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng sẽ rất có lợi khi được áp dụng trong các cơ quan hay tổ chức đơn lẻ. Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của khoá phải được đặt lên hàng đầu. Để thực hiện mã hóa thông tin giữa hai bên thì: Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thỏa thuận khóa bí mật được dùng để mã hóa và giải mã. Vì chỉ cần biết được khóa bí mật này thì bên thứ ba có thể giải mã được thông tin, thông tin cần được bí mật truyền đi. Sau đó bên gửi sẽ dùng một thuật toán mã hóa với khóa bí mật tương ứng để mã hóa dữ liệu sắp được truyền đi. Khi bên nhận nhận được sẽ dùng chính khóa bí mật đó để giải mã dữ liệu. Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” khóa bí mật giữa bên gửi và bên nhận, vì nếu truyền khóa bí mật từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được khóa bí mật này. Trang 9 Hình 1.2: Mã hóa dữ liệu Việc bảo mật thông tin phụ thuộc vào việc bảo mật khóa. Nguyên lý cơ bản của hệ thống mã hoá khoá đối xứng được chỉ ra. Có thể thấy rằng bản chất của mã hoá đối xứng là cả phía thu và phía phát đều sử dụng cùng một khoá bí mật (SK), và thuật toán ở cả hai phía cũng đều giống nhau. Mã hoá đối xứng như trên dựa vào việc phân phối khoá một cách bảo mật giữa cả hai phía. Nhưng thực tế là khoá chung đó lại phân phối tới tất cả mọi người trong mạng, và vấn đề “kênh bảo mật” đã làm đau đầu những nhà quản trị mạng. Điều nguy hiểm nhất là bất cứ ai chiếm được khoá trong quá trình phân phối cũng có toàn quyền truy nhập tới dữ liệu do khoá đó bảo vệ. Do đó, quá trình phân phối khoá phải trên “kênh bảo mật”, bất kể là kênh logic hay kênh vật lý. Trang 10 Hình 1.3: Quy trình mã hóa ▪ Đặc điểm của hệ mã khóa bí mật: ▪ Ưu điểm: + Hệ mã hóa khóa đối xứng mã hóa và giải mã nhanh hơn hệ mã hóa khóa bất đối xứng. ▪ Hạn chế: + Hệ mã hóa khóa đối xứng chưa thật an toàn với lý do sau: Khóa phải được giữ bí mật tuyệt đối vì biết được khóa này dễ tính được khóa kia và ngược lại. + Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp. Người gửi và người nhận phải luôn thống nhất về khóa. Việc thay đổi khóa là rất khó và dễ bị lộ. Khóa chung phải được gửi cho nhau trên kênh an toàn. ▪ Ứng dụng: Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khóa chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ. Hệ mã hóa khóa đối xứng thường được sử dụng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn hệ mã hóa bất đối xứng. Trang 11 1.2.1 Hệ mã DES DES được công nhận vào năm 1977 bởi Viện nghiên cứu quốc gia về chuẩn của Mỹ (NIST – National Institut of Standards and Technology) ▪ Nguyên lý: + Sử dụng một khóa K tạo ra n khóa con K1, K2 , …, K n. + Hoán vị dữ liệu (Initial Permutation) + Thực hiện n vòng lặp, ở mỗi vòng lặp + Dữ liệu được chia thành hai phần + Áp dụng phép toán thay thế lên một phần, phần còn lại giữ nguyên + Hoán vị 2 phần cho nhau (trái↔ phải) + Hoán vị dữ liệu (Final Permutation) ▪ Đặc điểm của thuật toán DES: + DES là thuật toán mã hóa khối, độ dài mỗi khối là 64bits + Khóa dùng trong DES có độ dài toàn bộ là 64bits. Tuy nhiên chỉ có 56bits thực hiện được sử dụng, 8bits còn lại chỉ dùng cho việc kiểm tra + DES xuất ra bản mã 64bits + Thuật toán thực hiện 16 vòng + Mã hóa và giải mã được sử dụng cùng một khóa + DES được thiết để chạy trên phần cứng . 1.2.2. Hệ mã AES AES là một hệ mã hóa khóa bí mật. Chuẩn mã hóa AES cho phép xử lý các khối dữ liệu input có kích thước 128bits sử dụng các khóa có độ dài 128, 192, hoặc 256bits. Hệ mã hóa AES được thiết kế để có thể làm việc với các khóa và khối dữ liệu có độ dài lớn hơn, tuy nhiên khi được chọn là chuẩn do ủy ban tiêu chuẩn của Hoa Kỳ đưa ra vào năm 2001, nó được quy định chỉ làm việc với khối dữ liệu 128bits và các khóa có độ dài 128, 192 hoặc 256bits ( do đó còn đặt cho nó các tên AES-128, AES-192 hoặc AES 256 tương ứng với độ dài khóa sử dụng). Ưu điểm : + AES có độ an toàn cao và được sử dụng trong thông tin mật Trang 12 + AES sử dụng bảng tra và phép thuế có tính chất phi tuyến mạnh dẫn đến mức độ phân tán thông tin phức tạp làm tăng độ an toàn cho thuật toán + AES có mô tả toán học đơn giản, cấu trúc rõ ràng đơn giản. Nhược điểm : + Cấu trúc toán học của AES có mô tả toán học khá đơn giản. Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu cho rằng sẽ có người lợi dụng được cấu trúc này trong tương lai. Ứng dụng của AES : + Bảo vệ dữ liêu ở các ngân hàng, tài chính, chính phủ, thương mại điện tử, chữ ký điện tử…. + Mã hóa AES được ứng dụng nhanh với các phần cứng và phần mềm, chỉ yêu cầu một không gian lưu trữ nhỏ, lý tưởng để sử dụng cho việc mã hóa những thiết bị cầm tay nhỏ như ổ USB flash, ổ đĩa CD… + Mã hóa AES được sử dụng như một hàm băm + Xây dựng các hàm băm, ví dụ như hàm băm Whilrpool. 1.3. Hệ mã khóa công khai RSA 1.3.1. Giới thiệu về hệ mã khóa công khai Nhằm khắc phục các nhược điểm quan trọng của phương pháp mật mã khóa bí mật đã nêu ở trên, năm 1976 Diffie và Hellman ở trường đại học Stanford công bố một phát kiến mới trong mật mã. Hệ thống được dùng cập khóa như vậy được gọi là hệ mật mã khóa công khai hay hệ mật mã bất đối xứng. Phương pháp mã hóa này đã giải quyết được những nhược điểm của phương pháp mã hóa đối xứng. Đây chính là phương pháp mã hóa mà khóa luận này sẽ đi sâu nghiên cứu chi tiết, để giải quyết vấn đề đã đặt ra. Ngược lại với mã hoá đối xứng, thuật toán bất đối xứng hoạt động theo ít nhất là hai khoá, hay chính xác hơn là một cặp khoá. Khoá sử dụng được biết đến như là khoá bí mật và khoá công khai, do đó có khái niệm mã hoá khoá công khai. Mỗi Trang 13 khoá được sử dụng để mã hoá hay giải mã, nhưng khác với thuật toán đối xứng, giá trị của khoá ở mỗi phía là khác nhau. Trong hệ thống RSA, dữ liệu được mã hoá bằng khoá bí mật (KX u) và chỉ có thể giải mã được bằng khoá công khai của cặp khoá đó. Cặp khoá này được tạo ra cùng nhau và do đó có liên quan trực tiếp với nhau. Mặc dù có quan hệ với nhau nhưng nếu biết hay truy nhập được khoá công khai thì cũng không thể tính toán được giá trị của khoá bí mật. Do đó, công khai khoá mã cũng không làm ảnh hưởng tới tính bảo mật của hệ thống, nó cũng chỉ như một địa chỉ thư tín còn khoá bí mật vẫn luôn được giữ kín. Bản chất của mã hoá khoá công khai RSA là bất cứ bản tin mật mã nào đều có thể được nhận thức nếu như nó được mã hoá bằng khoá bí mật còn giải mã bằng khoá công khai. Từ đó, phía thu còn xác định được cả nguồn gốc của bản tin. Bất cứ người nào giữ khoá công khai đều có thể nghe trộm bản tin mật mã bằng cách tính toán với kho bí mật, không chỉ đảm bảo tính tin cậy của bản tin (trong một nhóm) mà còn được nhận thức, hay còn gọi là không thể từ chối, ví dụ như người gửi không thể từ chối rằng chính họ là tác giả của bản tin đó. Nó hoàn toàn trái ngược với hoạt động của khoá đối xứng, trong đó bản tin mật mã được đảm bảo tính toàn vẹn giữa phía mã hoá và giải mã, nhưng bất kỳ ai có được khoá chung đều có thể phát bản tin và từ chối rằng chính mình đã phát nó, còn phía thu thì không thể biết được đâu là tác giả của bản tin đó. Thuật toán đối xứng yêu cầu khả năng tính toán lớn hơn và do đó tốc độ quá trình mã hoá chậm hơn so với mã hoá đối xứng. Đó cũng là trở ngại chính trong các hệ thống cho phép tỷ lệ lỗi lớn như trong truyền thông thoại. Do đó, mã hoá khoá công khai không phù hợp với các bản tin có chiều dài thông thường, tuy nhiên khi kết hợp cả hai chế độ với nhau lại có thể đảm bảo tính nhận thức, tin cậy và toàn vẹn của bản tin. Nói chung, các ứng dụng sử dụng thuật toán bất đối xứng là: o Sử dụng một giá trị “băm” nhỏ làm chữ ký số. o Mã hoá các khoá bí mật được sử dụng trong thuật toán đối xứng. Trang 14 o Thỏa thuận mã khóa bí mật giữa các phía trong truyền thông. Hình 1.4: Khóa bảng mã Khóa công khai (Public Key) là khóa được công bố công khai, mọi người có thể dùng để mã hóa thông tin gửi đển cho người nhận. Khóa bí mật (Private Key) hay còn gọi là khóa riêng là khóa được giữ bí mật để giải mã thông tin mà người khác đã mã hóa bằng khóa công khai. Mật mã khóa công khai đã cố gắng giải quyết hai vấn đề khó khăn nhất trong hệ mã khóa bí mật đó là : sự phân phối khóa và chữ ký số. Các bước trong hệ mã khóa công khai o Hệ thống cuối trong mạng tạo ra một cập khóa để dùng cho mã hóa và giải mã thông điệp mà nó sẽ nhận. o Mỗi hệ thống công bố rộng rãi khóa mã hóa đây là khóa công khai, khóa còn lại được giữ bí mật. Đặc điểm Ưu điểm: + Thuật toán viết một lần, công khai cho nhiều lần dùng, nhiều người dùng, họ chỉ cần giữ bí mật khóa riêng của mình. + Khi biết các tham số ban đầu của hệ mã hóa, việc tính ra cặp khóa công khai và bí mật phải là “dễ”. + Khả năng lộ khóa bí mật khó hơn vì chỉ có một người giữ. + Nếu thám mã biết khóa công khai và bản mã C, thì việc tìm ra bản rõ P là một bài toán “khó”, số phép thử là vô cùng lớn, không khả thi. Hạn chế: Trang 15 Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng. Ứng dụng: Hệ mã hóa khóa công khai được sử dụng chủ yếu trên mạng công khai như internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn. Đặc trưng nổi bật của hệ mã hóa khóa công khai là cả khóa công khai và bản mã C đều có thể gửi đi trên một kênh thông tin không an toàn. Hệ mã hóa RSA được 3 nhà toán học R.L.Rivesrt, A.Shamir và L.M.Adleman tìm ra năm 1977, công bố năm 1978. Tính an toàn của mã RSA dựa trên độ phức tập của thuật toán phân tích số nguyên thành thừa số nguyên tố. Cũng giống như các hệ mã hóa khóa công khai, thuật toán RSA có 2 khóa là khóa công khai và khóa bí mật. Thường thì khóa công khai được công bố rộng rãi và dùng để giải mã, thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng. 1.3.2. Các khái niệm cơ bản Chữ ký số (Digital Signature) là một chuỗi dữ liệu liên kết với một thông điệp và thực thể tạo ra thông điệp. Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) là một phương pháp sinh chữ ký số. Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) là một phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó được thực sự tạo ra bởi một bên chỉ định. Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ ký số và giải thuật kiểm tra chữ ký số. “Chữ ký số” là thông tin đi kèm theo dữ liệu (văn bản,hình ảnh , video...) nhằm mục đích xác định người chủ của dữ liệu đó. Trang 16 Chữ ký số được sử dụng trong các giao dịch điện tử. Xuất phát từ thực tế, chữ ký số cũng cần đảm bảo các chức năng: xác định được người chủ của một dữ liệu nào đó như văn bản, ảnh, video, ... dữ liệu đó có bị thay đổi hay không. Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm: + Giải thuật tạo chữ ký số. + Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được. Quá trình kiểm tra chữ ký số (Digital Signature verification process) bao gồm: + Giải thuật kiểm tra chữ ký số + Phương pháp khôi phục dữ liệu từ thông điệp Hàm băm là hàm toán học chuyển đổi thông điệp có độ dài bất kỳ thành một dãy bít có độ dài cố định. Dãy bits này được gọi là thông điệp rút gọn hay giá trị băm đại diện cho thông điệp ban đầu. + Hàm băm SHA-1: Thuật toán SHA-1 nhận thông điệp ở đầu vào có chiều dài k < 2 64 bits, thực hiện xử lý và đưa ra thông điệp thu gọn có chiều dài cố định 160 bits. Quá trình tính toán cũng thực hiện theo từng khối 512 bits, nhưng bộ đệm xử lý dùng 5 thanh ghi 32 bits. Thuật toán này chạy tốt với các bộ vi xử lý có cấu trúc 32 bits. 1.3.3. Các nguyên lý của hệ mã khóa công khai Năm 1976, Diffie và Hellman công bố một phát triển mới mang tên “các phương hướng mới trong mật mã” . Công trình đề xuất một dạng mới của hệ thống mật mã, trong đó người gửi và người nhận sử dụng các khoá mã khác nhau nhưng có mối liên hệ với nhau, và một trong hai khoá đó được giữ bí mật. Bên nhận dữ liệu giữ một khoá bí mật cho phép giải mã với khoá đó, còn bên gửi sử dụng một khoá khác tương ứng với khoá bí mật trên để mã hoá dữ liệu, khoá đó gọi là khoá công khai. Hệ thống dùng khoá như vậy gọi là hệ thống “bất đối xứng” bởi vì nó bảo đảm bí mật cho việc truyền tin chỉ một chiều, muốn thiết lập bí mật truyền tin theo chiều ngược lại phải sử dụng một cặp khoá khác. Để dùng một hệ thống mật Trang 17 mã khoá công khai trong một hệ thống có n cá thể cùng trao đổi các thông tin mật. Mỗi cá thể chọn cho mình một khoá lập mã ki và một hàm mã hoá Eki được thông báo công khai. Như vậy có n khoá lập mã được công khai k1, k 2,…,k n. Khi cá thể thứ i muốn gửi thông điệp cho cá thể thứ j: mỗi chữ trong thông điệp được số hoá, nhóm thành từng “khối” với độ dài nào đó. Mỗi khối P trong văn bản được mã hoá bằng khoá lập mã kj của cá thể thứ j (đã được thông báo công khai) dùng hàm mã hoá Ej , và gửi đi dưới dạng: C = Ek j (P). Để giải mã thông điệp này, cá thể thứ j chỉ cần dùng khoá riêng của mình (chỉ một mình cá thể j biết khoá này) với hàm giải mã Dk j : Dk j (C) = Dk j ( Ek j (P)) = P Bộ ( Ek j , Dk j ) là cặp khoá của cá thể j, trong đó: Ek j : là khoá lập mã. (khoá công khai) Dk j : là khoá giải mã (khoá riêng hay còn gọi là khoá bí mật) Như vậy, các thuật toán khoá công khai sử dụng một khoá riêng để mã hoá và một khoá chung khác để giải mã (tạo thành một cặp khoá), chúng có các tính chất và đặc điểm quan trọng sau: (i) Không cần phải thiết lập một kênh bảo vệ với những thể thức phức tạp, rườm rà để truyền khoá như trong hệ mã bí mật (mật mã đối xứng). (ii) Cặp khoá công khai được tạo ra theo một phương pháp đặc biệt có quan hệ với nhau và được chọn trong nhiều khoá có thể (trong đó nếu khoá này dùng để mã hoá thì khoá kia dùng để giải mã). Hình 1.5 mô tả rõ ràng mối quan hệ đó. Trang 18 Hình 1.5: Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai. Trong đó: o Ks gọi là mầm khoá hay còn gọi là khoá khởi thảo được chọn theo phương pháp ngẫu nhiên. o Hai thuật toán F, G dùng để tính toán các khoá. Bên nhận dùng hai thuật toán F và G cùng với mầm khoá k s để tạo ra hai khoá: khoá giải mã kd bí mật được giữ lại sử dụng riêng cho mình và khoá k e công khai gửi cho bên gửi để mã hóa tin gửi cho mình. o P là bản tin rõ, C là bản mã. Eke : thuật toán mã hoá với khoá công khai k e , Dkd : thuật toán giải mã với khoá bí mật k d (hai thuật toán E và D là đồng nhất, sở dĩ các kết quả mà chúng đưa ra khác nhau là vì khoá mã k e và k d khác nhau). 1.3.4. Các thuật toán của hệ mã khóa công khai Thuật toán sinh khóa : Để sử dụng được hệ mật mã khóa công khai RSA trước tiên mỗi người phải tạo riêng cho mình một cặp khóa gồm khóa công khai, và khóa bí mật. Việc tạo ra khóa công khai và khóa bí mật thực hiện theo các bước sau: + Sinh ra 2 số nguyên tố lớn p và q ngẫu nhiên (p và q). + Tính n = pq. + 2φ(n) = (p - 1)(q - 1). + Chọn một số tự nhiên e sao cho 1 < e < φ(n) và là số nguyên tố cùng nhau với φ(n). + Tính d sao cho de ≡ 1 (mod φ(n)) với 1 < d < φ(n). + Khóa công khai (e,n), khóa bí mật (d,n). Thuật toán mã hóa : Hệ RSA là một hệ mật mã điển hình về kiểu mã hóa khối. Nghĩa là, thông điệp được chia thành nhiều khối (hoặc chuỗi) có chiều dài cố định, và mỗi khối sẽ Trang 19 được mã hóa riêng. Giả sử để gửi thông điệp bí mật M cho người nhận B trong nhóm gửi thông tin an toàn, người gửi A phải thực hiện các bước như sau: + Thu nhận khóa công khai (e,n) của người nhận B. + Thực hiện một thuật toán để biến đổi thông điệp M thành những số nguyên mi tương ứng sao cho mi < n, (i = 1,…, k). Thuật toán giải mã : Để thực hiện quá trình giải mã, khôi phục lại nội dung của thông điệp M từ bản mã C nhận được, người nhận B sẽ thực hiện các bước như sau: + Tính mi = Cdi (mod n) với 0 ≤ mi ≤ n. + Thực hiện phép biến đổi ngược từ các số mi thành chuỗi ký tự tương ứng chứa thông tin M ban đầu. 1.3.5. Hệ mã khóa công khai RSA Hệ mật mã khóa công khai RSA là hệ thống mật mã do các giáo sư Ronald Rivest, Adi Sharmir và Leonard Adleman phát mình năm 1978 tại học viện Công nghệ Massachusetts (MIT). Hệ mã RSA được xây dựng trên cơ sở mã hóa khối trong đó khóa mã hóa là cặp (e,n) gồm số mũ e và module n. Với n là tích số của 2 số nguyên tố rất lớn nào đó, n = pq còn (e, φ(n)) = 1, với φ (n) là giá trị hàm Euler của n, trong trường hợp này φ(n) = (p - 1)(q - 1). Các bước chủ yếu khi thực hiện mã hoá khoá công khai: Bước 1: Mỗi user tạo ra một cặp khoá được sử dụng cho việc mã hoá và giải mã thông điệp. Bước 2: Mỗi user đặt một trong hai khoá trong một đăng ký công cộng. Đây là khoá công khai. Khoá còn lại được giữ kín. Bước 3: Muốn gửi một tin nhắn bí mật cho mã hoá tin nhắn bằng cách sử dụng khoá công khai. Trang 20 Bước 4: Khi nhận được tin nhắn, muốn giải mã nó bằng cách sử dụng khoá riêng của mình. Không có ai khác có thể giải mã thông điệp bởi vì chỉ có người biết khoá riêng. Ứng dụng của hệ mật mã RSA Trên cơ sở mức độ phức tạp của thuật toán phân tích số nguyên thành thừa số, có thể đảm bảo tính an toàn cao của giải pháp bảo mật sử dụng thuật toán RSA. Giải pháp bảo mật sử dụng thuật toán RSA thỏa mãn 5 yêu cầu: Độ mật cao (để giải mã được mà không biết khóa thì phải tốn rất nhiều thời gian). Thực hiện nhanh (mã hóa và giải mã tốn ít thời gian). Có thể dùng chung. Chống từ chối (xác định rõ người thực hiện, dùng làm chữ kí điện tử). Hiện nay, trên thị trường có nhiều giải pháp bảo mật để tăng cường tính an toàn cho hệ thống công nghệ thông tin đặc biệt cho ngành Tài chính – Ngân hàng. Tuy nhiên, xét về mức độ an toàn dựa trên thuật toán, thì giải pháp sử dụng thuật toán RSA luôn có độ tin cậy cao. Đây là điểm đáng lưu tâm trong bối cảnh nguy cơ rủi ro an ninh an toàn thông tin như hiện nay. Theo đánh giá của Công ty Forrester Research ( Theo đánh giá của Công ty Forrester Research(www.forrester.com)) , một công ty toàn cầu chuyên nghiên cứu thị trường và đánh giá các sản phẩm công nghệ thì giải pháp xác thực hai yếu tố RSA đạt mức an toàn rất cao và đáng tin cậy. Nhận thức được tầm quan trọng và bảo mật thông tin, Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV) đã nghiên cứu và đầu tư về bảo mật hệ thống công nghệ thông tin, đặc biệt, là giải pháp xác thực hai yếu tố RSA cho hệ thống ngân hàng cốt lõi corebanking và một số giải pháp bảo mật khác cho các ứng dụng phục vụ bảo mật cho các giao dịch của ngân hàng. Trang 21 Thực tiễn cho thấy tốc độ thực hiện của RSA là chậm. Tuy nhiên, người ta tìm thấy ở hệ mã RSA những khả năng ứng dụng độc đáo khác, thay vì trực tiếp mã hoá văn bản. + Tạo vỏ bọc an toàn cho văn bản. + Tạo chữ ký số cho văn bản. Thuật toán RSA Hệ mã hóa RSA được mô tả như sau: Tính số nguyên n = p.q từ 2 số nguyên tố ngẫu nhiên p,q Tính Φ (n) = (p – 1)(q -1) Chọn một số e sao cho e và Φ (n) là hai số nguyên tố cùng nhau Tính số d sao cho e.d ≡ 1 mod Φ (n) Khi đó: khóa công khai là cặp số (e,n) và khóa mật là cặp số (d,n) Mã hóa một văn bản m theo phương pháp mã hóa RSA như sau: C = Encrypt(m) = me mod n c: văn bản đã được mã hóa Giải mã từ văn bản mã hóa c như sau: m = Decyrpt(c) = cd mod n Thuật toán phân tích một số nguyên n thành thừa số lại cần đến một thời gian tăng theo cấp số lũy thừa so với chiều dài của n . Nghĩa là, độ dài của số nguyên n tăng thêm vài kí tự thì thời gian cần để phân tích n thành thừa số sẽ tăng gấp đôi. Về lý thuyết, việc phân tích này không phải là không thể, tuy nhiên, số nguyên tố đã được các nhà toán học nghiên cứu từ rất lâu mà vẫn chưa có phương pháp nào phân tích số nguyên n thành thừa số nguyên tố trong khoảng thời gian đủ ngắn. RSA là thuật toán đầu tiên phù hợp với việc tạo ra chữ kí điện tử, đồng thời với việc mã hóa, đánh dấu sự phát triển vượt bậc của lĩnh vực mật mã học trong Trang 22 việc sử dụng khóa công khai. RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn. Hệ mã hóa RSA được sử dụng rất rộng rãi trong các ứng dụng: bảo mật xác thực người sử dụng, chữ kí số,… Thuật toán RSA Xây dựng: Chọn các tham số 1. Chọn hai số nguyên tố lớn p và q. Tính n = p x q và m =  (n) = (p = 1) x (q-1). 2. Chọn e, 1 e  m -1, sao cho gcd (e, m) = 1. 3. Tìm d sao cho e d = 1 (mod m), tức là tính d = e-1 (mod m), giải theo thuật toán gcd mở rộng đã trình bày ở phần trước. Khóa công khai (Public key) là (e, n) Khoá dùng riêng (Private key) là d, p, q) Giả sử X là một khối tin gốc (plaintext), Y là một khối mã tương ứng của X, và ( zA ,Z A ) là các thành phần công khai và riêng của khoá Mã hoá: Muốn gửi một thông báo mã hoá ta chỉ việc dùng khoá công khai Giải mã: Muốn giải mã Y, ta chỉ việc dùng khoá riêng zA = d để thực hiện. 1.3.6. Hệ Elgamal 1.3.6.1 Hệ Elgamal là hệ mật mã công khai + Hệ Elgamal dựa trên logarit bài toán rời rạc. Tính an toàn của nó tùy thuộc vào độ phức tạp của bài toán logarit. + Hệ Elgamal là một biến thể của sơ đồ phân phối khóa Diffie-Hellman đưa ra năm 1985. + So với RSA hệ Elgamal không có nhiều rắc rối về bản quyền sử dụng. Trang 23 1.3.6.2 Mã hóa và giải mã hệ Elgamal Ban đầu người ta sẽ chọn một số nguyên tố lớn p và hai số nguyên tuỳ ý nhỏ hơn p là a (a là 1 phần tử nguyên thủy của Z P) và x (x là của người nhận, bí mật) sau đó tính: y= ax mod p Để mã hóa một thông điệp M (là một số nguyên trên ZP) thành bản mã C người gửi chọn một số ngẫu nhiên k nhỏ hơn p và tı́nh khóa mã hóa K: K = y k mod p Sau đó tı́nh cặp bản mã: C1 = ak mod p, C2 = (K.M)mod p Và gửi bản mã C = (C1, C2) (chú ý là sau đó k sẽ bị huỷ). Để giải mã thông điệp đầu tiên ta cần tı́nh lại khóa mã hóa thông điệp K: K = (C1 (p-1-x) ) mod p = (ak.(p-1-x) )mod p Sau đó tı́nh M bằng cách giải phương trình sau đây: M = (C2 . K)mod p Việc giải mã bao gồm việc tı́nh lại khóa tạm thời K (rất giống với mô hình của Diffie - Hellman đưa ra). Khóa công khai của hệ mã là (p, a, y), khóa bí mật là x. 1.3.6.3 Ưu điểm và nhược điểm: Ưu điểm: + Độ phức tạp của bài toán logarit lớn nên độ an toàn cao. + Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ 1 bản rõ ta có thể có nhiều bản mã khác nhau. Nhược điểm: + Tốc độ chậm( do phải xử lý số nguyên lớn) + Dung lượng bộ nhớ dành cho việc lưu trữ khóa cũng lớn. 1.4. Đánh giá hệ mã khóa công khai RSA 1.4.1. Độ an toàn của RSA Độ an toàn của RSA được thiết kế dựa trên độ khó giải bài toán phân tích ra thừa số nguyên tố n = pq với 2 số nguyên tố bí mật lớn p, q. Nếu ta chọn các số p, q khoảng 100 chữ số thập phân thì nó sẽ có khoảng 200 chữ số thập phân. Để phân Trang 24 tích một số nguyên cỡ lớn như thế với các thuật toán nhanh nhất hiện nay cùng với những máy tính hiện đại nhất cũng mất hàng triệu năm. Như vậy việc phân tích số nguyên n thành các thừa số nguyên tố p, q nhằm mục đích bẻ gãy hệ mật mã RSA là điều khó có thể tín...

Trang 1

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

- -

HUỲNH THỊ CHI

CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ

KHOÁ LUẬN TỐT NGHIỆP ĐẠI HỌC

Quảng Nam, tháng 04 năm 2017

Trang 2

UBND TỈNH QUẢNG NAM TRƯỜNG ĐẠI HỌC QUẢNG NAM KHOA: CÔNG NGHỆ THÔNG TIN

 -KHÓA LUẬN TỐT NGHIỆP

Tên đề tài:

CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO DỊCH HÀNH CHÍNH ĐIỆN TỬ

Sinh viên thực hiện:

HUỲNH THỊ CHI MSSV: 2113021042

Trang 3

LỜI CẢM ƠN

Đầu tiên cho em xin gửi lời cảm ơn đến tất cả các thầy cô trong khoa Công Nghệ Thông Tin trường Đại học Quảng Nam đã cho em những kiến thức trong 4 năm qua và lấy kiến thức để thực hiện khóa luận này

Đặc biệt em xin gửi lời cảm ơn đến Th.S Hồ Tuấn Anh – người đã trực tiếp hướng dẫn em hoàn thành khóa luận này Bên cạnh đó là những ý kiến đóng góp của bạn bè, đã cho em nguồn động viên lớn để hoàn thành nhiệm vụ của khóa luận Qua đó, em đã đạt được nhiều tiến bộ về kiến thức cũng như những kĩ năng làm việc bổ ích

Em chân thành gửi lời cảm ơn sâu sắc đến toàn thể thầy cô và các bạn!

Trang 4

MỤC LỤC

LỜI CẢM ƠN MỤC LỤC

DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT DANH MỤC CÁC HÌNH

MỞ ĐẦU 1

1.1 Lý do chọn đề tài 1

1.2 Mục tiêu của đề tài 2

1.3 Đối tượng và phạm vi nghiên cứu 2

1.3.1 Đối tượng nghiên cứu 2

NỘI DUNG NGHIÊN CỨU 5

Chương 1: MỘT SỐ HỆ MẬT MÃ HÓA THÔNG DỤNG 5

1.1.Giới thiệu về các hệ mật mã 5

1.2.Hệ mã khóa bí mật 7

1.2.1 Hệ mã DES 11

1.2.2 Hệ mã AES 11

1.3 Hệ mã khóa công khai RSA 12

1.3.1 Giới thiệu về hệ mã khóa công khai 12

1.3.2 Các khái niệm cơ bản 15

1.3.3 Các nguyên lý của hệ mã khóa công khai 16

1.3.4 Các thuật toán của hệ mã khóa công khai 18

1.3.5 Hệ mã khóa công khai RSA 19

1.3.6 Hệ Elgamal 22

1.3.6.1 Hệ Elgamal là hệ mật mã công khai 22

1.3.6.2 Mã hóa và giải mã hệ Elgamal 23

1.4 Đánh giá hệ mã khóa công khai RSA 23

1.4.1 Độ an toàn của RSA 23

1.4.2 Hiệu suất thực hiện của thuật toán RSA 24

Trang 5

1.5 Một số phương pháp tấn công hệ mã RSA 25

1.5.1 Phương thức thứ nhất 26

1.5.2 Phương thức thứ hai 26

1.6 Ứng dụng của hệ mật mã RSA Error! Bookmark not defined 1.7 Thuật toán RSA Error! Bookmark not defined 1.8 Kết luận chương 26

Chương 2: CHỮ KÝ SỐ 26

2.1 Giới thiệu chung 27

2.1.1 Khái niệm và các ưu điểm của chữ ký số 28

2.1.1.1 Khái niệm 28

2.1.2 So sánh chữ ký số và chữ ký thông thường 30

2.1.2.1 Sự khác nhau giữa chữ ký số và chữ ký thường (chữ ký viết tay) Error! Bookmark not defined 2.1.2.2 Sự khác nhau giữa chữ điện tử và chữ ký thông thườngError! Bookmark no2.1.4 Phân loại chữ ký số 31

2.1.5 Sơ đồ tổng quan của một hệ thống chữ ký số điện tử 31

2.1.6 Điều kiện đảm bảo an toàn cho chữ ký số 32

2.4.2 Yêu cầu của một hệ thống chữ ký điện tử 45

2.4.3 Phân loại các lược đồ chữ ký số 45

2.4.3.1 Lược đồ RSA 46

2.4.3.2 Lược đồ Elgamal 46

Trang 6

2.5 Các kiểu tấn công vào lược đồ chữ ký số 48

3.3.1 Các yêu cầu của ứng dụng : 51

3.3.2 Môi trường xây dựng ứng dụng : 52

3.4 Chương trình demo 53

3.5 Kết luận chương 58

DANH MỤC TÀI LIỆU THAM KHẢO 61

Trang 7

DANH MỤC CÁC KÝ HIỆU VÀ CÁC TỪ VIẾT TẮT

AES Advance Encryption Standard DES Data Encryption Standard MAC Message Authentication Code MD4 Message Digest 4

M Không gian bản rõ P Bản tin rõ.

(n; e) Cặp số : n, e là các số nguyên dương

(e, d) Ước chung lớn nhất của hai số nguyên dương e và d

Trang 8

Hình 2.4(b) Mã hoá khoá công khai: xác thực và chữ kí 37

Hình 2.4(c) Mã hoá khoá công khai: Bí mật, xác thực và chữ kí 37

Hình 2.5: Xác định thông tin dùng hàm băm 38

Hình 2.6 : Giải thuật MD5 41

Hình 3.1: Giao diện demo kết quả chữ ký số 54

Hình 3.2: Giao diện lúc tạo khóa thành công 55

Hình 3.3: Giao diện khi tạo chữ ký thành công 56

Hình 3.4: Giao diện khi giãi mã chữ ký thành công 57

Hình 3.5: Giao diện khi giãi mã chữ ký không thành công 58 

Trang 9

MỞ ĐẦU 1.1 Lý do chọn đề tài

Trong xu thế phát triển của thế giới, với sự bùng nổ của mạng Internet hiện nay Các ứng dụng của công nghệ thông tin đang ngày càng đóng vai trò thiết yếu trong mọi lĩnh vực hoạt động của toàn xã hội, kinh tế, chính trị, quân sự và khi đó trở thành phương tiện điều hành các hệ thống truyền dữ liệu được sử dụng phổ biến trên toàn thế giới Nó được sử dụng truyền thư điện tử, truy cập đến các Website, kết nối các trường học, công sở, giám sát các hệ thống từ xa, truyền tệp liên lạc với các khách hàng và sử dụng các dịch vụ ngân hàng, các giao dịch điện tử… Trong tương lai Internet sẽ trở thành môi trường truyền thông phổ cập cho toàn thế giới

Rõ ràng tiềm năng của mạng Internet là rất lớn nhưng nó lại bị hạn chế bởi thiết kế mở của mình Như ta biết giao tiếp qua Internet chủ yếu sử dụng giao thức TCP/IP Các gói tin truyền từ điểm nguồn tới điểm đích sẽ đi qua rất nhiều máy tính trung gian, vì vậy nó rất dễ bị xâm phạm, can thiệp, theo dõi và giả mạo trên đường truyền và biện pháp bảo mật bằng mật khẩu là không đảm bảo và có thể bị nghe trộm hoặc bị dò ra nhanh chóng, vì thế đã chuyển sang xu hướng mã hóa

Nhờ thông tin được người gửi mã hóa trước khi truyền qua mạng Internet nên dù kẻ trộm có “chặn” cũng không thể đọc Khi tới đích người chặn sẽ sử dụng một công cụ đặc biệt để giải mã Mật mã học là một trong những vấn đề quan trọng trong lĩnh vực bảo mật và an toàn thông tin Trong mật mã vấn đề bảo mật luôn đi đôi với vấn đề xác thực thông tin, đặt biệt là trong mã hóa khóa công khai, vấn đề xác thực là vô cùng quan trọng Để giải quyết vấn đề trên người ta đưa ra một cách giải quyết hiệu quả đó là phương pháp mã hóa và bảo mật phổ biến nhất đang được thế giới áp dụng đó là chữ ký số Với chữ ký số, người sử dụng có thể mã hóa thông tin một cách hiệu quả, chống giả mạo, xác thực danh tính người gửi Ngoài ra, chữ ký số còn là bằng chứng giúp chống chối cải nguồn gốc, ngăn chặn người gửi chối cải nguồn gốc tài liệu của mình đã gửi

Trang 10

Đối với các hoạt động môi trường mạng ngày càng phát triển như hiện nay, chữ ký số là một hình thức để bảo đảm tính pháp lý của các cam kết Mặt khác, việc giao dịch bằng các thông điệp điện tử nói chung và các giao dịch ở dạng số nói riêng đã được luật hóa bằng luật giao dịch điện tử Vì vậy, cần tìm hiểu, nghiên cứu về chữ ký số để tham mưu cho lãnh đạo trong việc bảo mật văn bản điện tử

Nhận thấy tính thiết thực của vấn đề này và được sự gợi ý của giáo viên hướng

dẫn, nên em đã chọn đề tài “ CHỮ KÝ SỐ VÀ ỨNG DỤNG TRONG GIAO

DỊCH HÀNH CHÍNH ĐIỆN TỬ ” để làm đề tài nghiên cứu cho khóa luận tốt

nghiệp của mình

1.2 Mục tiêu của đề tài

Nghiên cứu các giải pháp mã hóa để bảo mật thông tin và những phương pháp kỹ thuật tạo chữ ký số trên các tài liệu, văn bản điện tử để xác thực nguồn gốc tài liệu hay văn bản của người gửi

Xây dựng một chương trình ứng dụng có khả năng bảo mật nội dung thông tin dưới dạng văn bản điện tử, tạo chữ ký trên văn bản điện tử cần thiết và chứng thực chữ ký số trên văn bản điện tử góp phần phục vụ những người quản lý đơn vị trao

đổi thông tin mật với các đối tác, điều hành công việc từ xa

1.3 Đối tượng và phạm vi nghiên cứu 1.3.1 Đối tượng nghiên cứu

Tìm hiểu những cơ sở toán học, độ phức tạp của thuật toán và các thuật toán thường được sử dụng trong các hệ mã khóa công khai

Nghiên cứu tìm hiểu lý thuyết chung về nguyên lý, hoạt động và ứng dụng của hệ mã khóa công khai

Nghiên cứu tìm hiểu cụ thể các hệ mã khóa công khai đang được sử dụng nhiều nhất hiện nay bao gồm các hệ sau:

+ Hệ mật mã bí mật

+ Hệ mật mã công khai RSA

Trang 11

Nghiên cứu tìm hiểu mô hình chữ ký số và ứng dụng trong việc ký các tài liệu, văn bản điện tử

Tìm hiểu các ngôn ngữ lập trình Java phục vụ cho công việc lập trình ứng dụng

Nghiên cứu về mật mã khóa công khai RSA, chữ ký số và ứng dụng thuật toán RSA

1.3.2.Phạm vi nghiên cứu

Tập trung nghiên cứu và làm rõ hơn về ý tưởng, cơ sở toán học, thuật toán và độ phức tạp của mã hóa nói chung và của mã hóa khóa công khai nói riêng

1.4 Phương pháp nghiên cứu

Nghiên cứu các tài liệu về mã hóa, mật mã của các tác giả trong và ngoài nước, các bài báo trên các tạp chí khoa học và các tài liệu trên mạng Internet

Nghiên cứu ngôn ngữ lập trình Java để viết một ứng dụng nhỏ về chữ ký số

1.5 Lịch sử nghiên cứu

Con người đã sử dụng các hợp đồng dưới dạng điện tử từ hơn 100 năm nay với việc sử dụng mã Morse và điện tín Vào năm 1889, tòa án tối cao bang New Hampshire (Hoa kỳ) đã phê chuẩn tính hiệu lực của chữ ký số Tuy nhiên, chỉ với những phát triển của khoa học kỹ thuật gần đây thì chữ ký số ưmới đi vào cuộc sống một cách rộng rãi

Vào thập kỷ 1980, các công ty và một số cá nhân bắt đầu sử dụng máy fax để truyền đi các tài liệu quan trọng Mặc dù chữ ký trên các tài liệu này vẫn thể hiện trên giấy nhưng quá trình truyền và nhận chúng hoàn toàn dựa trên tín hiệu điện tử

Hiện nay, chữ ký số có thể bao hàm các cam kết gửi bằng email, nhập các số định dạng cá nhân (PIN) vào các máy ATM, ký bằng bút điện tử với thiết bị màn hình cảm ứng tại các quầy tính tiền, chấp nhận các điều khoản người dùng (EULA) khi cài đặt phần mềm máy tính, ký các hợp đồng điện tử online

Trang 12

Danh mục các chữ viết tắt Danh mục các bảng

Danh mục các hình vẽ MỞ ĐẦU

Trang 13

NỘI DUNG NGHIÊN CỨU

Chương 1: MỘT SỐ HỆ MẬT MÃ HÓA THÔNG DỤNG 1.1.Giới thiệu về các hệ mật mã

Mật mã là một môn khoa học nghiên cứu cách viết bí mật Về phương diện lịch sử, mật mã gắn liền với quá trình mã hóa, điều này có nghĩa là nó gắn với cách thức để chuyển đổi thông tin từ dạng này sang dạng khác, từ dạng thông thường có thể nhận thức được thành dạng không thể nhận thức được, làm cho thông tin trở thành dạng không thể đọc được nếu như không có các thông tin bí mật Quá trình mã hóa chủ yếu được sử dụng để đảm bảo được tính bí mật của các thông tin quan trọng, chẳng hạn trong công tác tình báo, quân sự hay ngoại giao cũng như các bí mật về kinh tế, thương mại

Mật mã được dùng để bảo vệ bí mật thông tin khi thông tin được truyền đi Giả sử có hai người muốn trao đổi thông tin với nhau A và B Khi đó chẳng hạn A muốn gửi thông tin là một văn bản nào đó dưới dạng điện tử, gọi là bản rõ cho B, muốn được bảo mật thì A phải mã hóa cho bản rõ đó, được bản mã và gửi cho B Như vậy giữa A và B phải có sự thỏa thuận nào đó về việc dùng khóa để A có thể mã hóa thông tin để được bản mã và B giải mã thông tin từ bản mã nhằm thu được bản rõ Khi đó, một người nào đó không có khóa thì dù họ có lấy được bản mã trên đường truyền thì cũng không thể dịch ngược thành bản rõ

Người ta chia hệ mã làm hai loại chính là hệ mã khóa bí mật và hệ mã khóa công khai Các hệ mã khóa bí mật thực hiện việc bảo mật đều dựa trên cơ sở là có một khóa để dùng chung cho việc lập mã và giải mã Các hệ mã khóa công khai là trong đó mỗi người tham gia vào quá trình truyền tin sẽ có hai khóa khác nhau, một khóa công khai để lập mã và một khóa bí mật dùng để giải mã Khóa công khai được công khai hóa cho mọi người, còn khóa mật của mỗi người được giữ bí mật Thông tin trước khi gửi được mã hóa bởi khóa công khai của người nhận Chỉ có người nhận mới có khả năng giải mã bản mã bằng khóa mật của mình Độ bảo mật

Trang 14

của các hệ mã công khai rất cao vì được đảm bảo bằng độ phức tạp tính toán của thao tác tìm các số nguyên tố lớn và phân tích một số nguyên tố lớn thành tích các thừa số

Một hệ mật mã là một bộ năm (P, C, K, E, D) thỏa mãn các điều kiện sau: ▪ P là một tập hợp các bản rõ (chứa thông tin cần mã hóa)

▪ C là tập hữu hạn các bản mã (chứa thông tin đã được mã hóa từ bản rõ) ▪ K là tập hữu hạn các khóa

▪ Với mỗi khóa kK tồn tại luật mã hóa ek E và luật giải mã dk D tương ứng Luật mã hóa ek: P → C và luật giải mã ek: C → P là hai ánh xạ thỏa mãn dk (

e (x)) = x, x  P

Có 2 phương pháp mã hóa khóa, đó là phương pháp mã hóa khóa đối xứng và phương pháp mã hóa khóa không đối xứng Những hệ mật mã dựa trên phương pháp mã hóa khóa đối xứng gọi là hệ mật mã khóa đối xứng (Symmetric Key Cryptography) hay hệ mật mã khóa bí mật Ngược lại, các hệ mật mã dựa trên phương pháp mã hóa khóa không đối xứng gọi là hệ mật mã khóa không đối xứng (Asymmetric Key Cryptography) hay hệ mật mã khóa công khai (Public Key Cryptography)

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ó” có thể đọc được theo cách thông thường (gọi là Bản mã) 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 tính toán để thực hiện mã hóa hay giải mã 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ủ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 cho rõ nó

Mật mã hóa được sử dụng phổ biến để đảm bảo an toàn cho thông tin liên lạc Các thuộc tính được yêu cầu là:

Trang 15

▪ Bí mật: Chỉ có người nhận đã xác thực có thể lấy ra được nội dung của thông tin chứa đựng trong dạng đã mật mã hóa của nó Nói khác đi, nó không thể cho phép thu lượm được bất kỳ thông tin đáng kể nào về nội dung của thông điệp

▪ Nguyên vẹn: Người nhận cần có khả năng xác định được thông tin có bị thay đổi trong quá trình truyền thông hay không

▪ Xác thực: Người nhận cần có khả năng xác định người gửi và kiểm tra xem người gửi đó có thực sự gửi thông tin đi hay không

Thuật toán mã hóa: Là một thuật toán nhằm mã hóa thông tin của chúng ta, biến đổi thông tin từ dạng rõ sang dạng mờ, để ngăn cản việc đọc trộm nội dung của thông tin

Thông thường các thuật toán sử dụng một hoặc nhiều khóa để giải mã Bạn có thể coi khóa này như một password để có thể đọc được nội dung mã hóa Người gửi sẽ dùng khóa mã hóa để mã hóa thông tin sang dạng mở, và người nhận sẽ dùng khóa giải mã thông tin sang dạng rõ Chỉ có những người nào có khóa giải mã mới có thể đọc được nội dung

Nhưng đôi khi “ kẻ thứ ba” không có khóa giải mã vẫn có thể đọc được thông tin, bằng cách phá vỡ thuật toán Và có một nguyên tắc là bất kỳ thuật toán mã hóa nào cũng đều có thể bị phá vỡ Do đó không có bất kỳ thuật toán mã hóa nào được coi là an toàn mãi mãi Độ an toàn của thuật toán được dựa vào nguyên tắc:

▪ Nếu chi phí để giải mã một khối lượng thông tin lớn hơn giá trị của khối lượng thông tin đó thì thuật toán đó được tạm coi là an toàn

▪ Nếu thời gian để phá vỡ một thuật toán là quá lớn thì thuật toán được coi là an toàn

1.2.Hệ mã khóa bí mật (Secrete Key Gryposystem - SKG)

Hệ thống mã hoá khóa bí mật là hệ thống mã hóa trong đó quá trình mã hóa và giải mã đều được sử dụng chung một khóa gọi là khóa bí mật (Secret key)

Quá trình thực hiện cơ chế mã hoá như sau:

Trang 16

Hình 1.1 Quá trình thực hiện cơ chế mã hoá

Hình 1.1 mô tả quá trình trao đổi thông tin giữa bên gửi và bên nhận thông qua việc sử dụng phương pháp mã hoá đối xứng Trong quá trình này, thì thành phần quan trọng nhất cần phải được giữ bí mật chính là khoá Việc trao đổi, thoả thuận về thuật toán được sử dụng trong việc mã hoá có thể tiến hành một cách công khai, nhưng bước thoả thuận về khoá trong việc mã hoá và giải mã phải tiến hành bí mật Chúng ta có thể thấy rằng thuật toán mã hoá đối xứng sẽ rất có lợi khi được áp dụng trong các cơ quan hay tổ chức đơn lẻ Nhưng nếu cần phải trao đổi thông tin với một bên thứ ba thì việc đảm bảo tính bí mật của khoá phải được đặt

lên hàng đầu

Để thực hiện mã hóa thông tin giữa hai bên thì:

Đầu tiên bên gửi và bên nhận bằng cách nào đó sẽ phải thỏa thuận khóa bí mật được dùng để mã hóa và giải mã Vì chỉ cần biết được khóa bí mật này thì bên thứ ba có thể giải mã được thông tin, thông tin cần được bí mật truyền đi

Sau đó bên gửi sẽ dùng một thuật toán mã hóa với khóa bí mật tương ứng để mã hóa dữ liệu sắp được truyền đi Khi bên nhận nhận được sẽ dùng chính khóa bí mật đó để giải mã dữ liệu

Vấn đề lớn nhất của phương pháp mã hóa đối xứng là làm sao để “thỏa thuận” khóa bí mật giữa bên gửi và bên nhận, vì nếu truyền khóa bí mật từ bên gửi sang bên nhận mà không dùng một phương pháp bảo vệ nào thì bên thứ ba cũng có thể dễ dàng lấy được khóa bí mật này

Trang 17

Hình 1.2: Mã hóa dữ liệu

Việc bảo mật thông tin phụ thuộc vào việc bảo mật khóa

Nguyên lý cơ bản của hệ thống mã hoá khoá đối xứng được chỉ ra Có thể thấy rằng bản chất của mã hoá đối xứng là cả phía thu và phía phát đều sử dụng cùng một khoá bí mật (SK), và thuật toán ở cả hai phía cũng đều giống nhau Mã hoá đối xứng như trên dựa vào việc phân phối khoá một cách bảo mật giữa cả hai phía Nhưng thực tế là khoá chung đó lại phân phối tới tất cả mọi người trong mạng, và vấn đề “kênh bảo mật” đã làm đau đầu những nhà quản trị mạng Điều nguy hiểm nhất là bất cứ ai chiếm được khoá trong quá trình phân phối cũng có toàn quyền truy nhập tới dữ liệu do khoá đó bảo vệ Do đó, quá trình phân phối khoá phải trên “kênh bảo mật”, bất kể là kênh logic hay kênh vật lý

Trang 18

Hình 1.3: Quy trình mã hóa

▪ Đặc điểm của hệ mã khóa bí mật:

▪ Ưu điểm: + Hệ mã hóa khóa đối xứng mã hóa và giải mã nhanh hơn hệ mã hóa khóa bất đối xứng

▪ Hạn chế: + Hệ mã hóa khóa đối xứng chưa thật an toàn với lý do sau: Khóa phải được giữ bí mật tuyệt đối vì biết được khóa này dễ tính được khóa kia và ngược lại

+ Vấn đề thỏa thuận khóa và quản lý khóa chung là khó khăn và phức tạp Người gửi và người nhận phải luôn thống nhất về khóa Việc thay đổi khóa là rất khó và dễ bị lộ Khóa chung phải được gửi cho nhau trên kênh an toàn

▪ Ứng dụng: Hệ mã hóa khóa đối xứng thường được sử dụng trong môi trường mà khóa chung có thể dễ dàng trao chuyển bí mật, chẳng hạn trong cùng một mạng nội bộ Hệ mã hóa khóa đối xứng thường được sử dụng để mã hóa những bản tin lớn, vì tốc độ mã hóa và giải mã nhanh hơn hệ mã hóa bất đối xứng

Trang 19

+ Áp dụng phép toán thay thế lên một phần, phần còn lại giữ nguyên + Hoán vị 2 phần cho nhau (trái↔ phải)

+ Hoán vị dữ liệu (Final Permutation) ▪ Đặc điểm của thuật toán DES:

+ DES là thuật toán mã hóa khối, độ dài mỗi khối là 64bits

+ Khóa dùng trong DES có độ dài toàn bộ là 64bits Tuy nhiên chỉ có 56bits thực hiện được sử dụng, 8bits còn lại chỉ dùng cho việc kiểm tra

+ DES xuất ra bản mã 64bits + Thuật toán thực hiện 16 vòng

+ Mã hóa và giải mã được sử dụng cùng một khóa + DES được thiết để chạy trên phần cứng

1.2.2 Hệ mã AES

AES là một hệ mã hóa khóa bí mật Chuẩn mã hóa AES cho phép xử lý các khối dữ liệu input có kích thước 128bits sử dụng các khóa có độ dài 128, 192, hoặc 256bits Hệ mã hóa AES được thiết kế để có thể làm việc với các khóa và khối dữ liệu có độ dài lớn hơn, tuy nhiên khi được chọn là chuẩn do ủy ban tiêu chuẩn của Hoa Kỳ đưa ra vào năm 2001, nó được quy định chỉ làm việc với khối dữ liệu 128bits và các khóa có độ dài 128, 192 hoặc 256bits ( do đó còn đặt cho nó các tên AES-128, AES-192 hoặc AES 256 tương ứng với độ dài khóa sử dụng)

Ưu điểm :

+ AES có độ an toàn cao và được sử dụng trong thông tin mật

Trang 20

+ AES sử dụng bảng tra và phép thuế có tính chất phi tuyến mạnh dẫn đến mức độ phân tán thông tin phức tạp làm tăng độ an toàn cho thuật toán

+ AES có mô tả toán học đơn giản, cấu trúc rõ ràng đơn giản

Nhược điểm :

+ Cấu trúc toán học của AES có mô tả toán học khá đơn giản Tuy điều này chưa dẫn đến mối nguy hiểm nào nhưng một số nhà nghiên cứu cho rằng sẽ có người lợi dụng được cấu trúc này trong tương lai

+ Mã hóa AES được sử dụng như một hàm băm

+ Xây dựng các hàm băm, ví dụ như hàm băm Whilrpool

1.3 Hệ mã khóa công khai RSA

1.3.1 Giới thiệu về hệ mã khóa công khai

Nhằm khắc phục các nhược điểm quan trọng của phương pháp mật mã khóa bí mật đã nêu ở trên, năm 1976 Diffie và Hellman ở trường đại học Stanford công bố một phát kiến mới trong mật mã Hệ thống được dùng cập khóa như vậy được gọi là hệ mật mã khóa công khai hay hệ mật mã bất đối xứng Phương pháp mã hóa này đã giải quyết được những nhược điểm của phương pháp mã hóa đối xứng Đây chính là phương pháp mã hóa mà khóa luận này sẽ đi sâu nghiên cứu chi tiết, để giải quyết vấn đề đã đặt ra

Ngược lại với mã hoá đối xứng, thuật toán bất đối xứng hoạt động theo ít nhất là hai khoá, hay chính xác hơn là một cặp khoá Khoá sử dụng được biết đến như là khoá bí mật và khoá công khai, do đó có khái niệm mã hoá khoá công khai Mỗi

Trang 21

khoá được sử dụng để mã hoá hay giải mã, nhưng khác với thuật toán đối xứng, giá trị của khoá ở mỗi phía là khác nhau Trong hệ thống RSA, dữ liệu được mã hoá bằng khoá bí mật (KX u) và chỉ có thể giải mã được bằng khoá công khai của cặp khoá đó Cặp khoá này được tạo ra cùng nhau và do đó có liên quan trực tiếp với nhau Mặc dù có quan hệ với nhau nhưng nếu biết hay truy nhập được khoá công khai thì cũng không thể tính toán được giá trị của khoá bí mật

Do đó, công khai khoá mã cũng không làm ảnh hưởng tới tính bảo mật của hệ thống, nó cũng chỉ như một địa chỉ thư tín còn khoá bí mật vẫn luôn được giữ kín Bản chất của mã hoá khoá công khai RSA là bất cứ bản tin mật mã nào đều có thể được nhận thức nếu như nó được mã hoá bằng khoá bí mật còn giải mã bằng khoá công khai Từ đó, phía thu còn xác định được cả nguồn gốc của bản tin Bất cứ người nào giữ khoá công khai đều có thể nghe trộm bản tin mật mã bằng cách tính toán với kho bí mật, không chỉ đảm bảo tính tin cậy của bản tin (trong một nhóm) mà còn được nhận thức, hay còn gọi là không thể từ chối, ví dụ như người gửi không thể từ chối rằng chính họ là tác giả của bản tin đó Nó hoàn toàn trái ngược với hoạt động của khoá đối xứng, trong đó bản tin mật mã được đảm bảo tính toàn vẹn giữa phía mã hoá và giải mã, nhưng bất kỳ ai có được khoá chung đều có thể phát bản tin và từ chối rằng chính mình đã phát nó, còn phía thu thì không thể biết được đâu là tác giả của bản tin đó

Thuật toán đối xứng yêu cầu khả năng tính toán lớn hơn và do đó tốc độ quá trình mã hoá chậm hơn so với mã hoá đối xứng Đó cũng là trở ngại chính trong các hệ thống cho phép tỷ lệ lỗi lớn như trong truyền thông thoại Do đó, mã hoá khoá công khai không phù hợp với các bản tin có chiều dài thông thường, tuy nhiên khi kết hợp cả hai chế độ với nhau lại có thể đảm bảo tính nhận thức, tin cậy và toàn vẹn của bản tin Nói chung, các ứng dụng sử dụng thuật toán bất đối xứng là:

o Sử dụng một giá trị “băm” nhỏ làm chữ ký số

o Mã hoá các khoá bí mật được sử dụng trong thuật toán đối xứng

Trang 22

o Thỏa thuận mã khóa bí mật giữa các phía trong truyền thông

Các bước trong hệ mã khóa công khai

o Hệ thống cuối trong mạng tạo ra một cập khóa để dùng cho mã hóa và giải mã thông điệp mà nó sẽ nhận

o Mỗi hệ thống công bố rộng rãi khóa mã hóa đây là khóa công khai, khóa còn lại được giữ bí mật

+ Khả năng lộ khóa bí mật khó hơn vì chỉ có một người giữ

+ Nếu thám mã biết khóa công khai và bản mã C, thì việc tìm ra bản rõ P là một bài toán “khó”, số phép thử là vô cùng lớn, không khả thi

Hạn chế:

Trang 23

Mã hóa và giải mã chậm hơn hệ mã hóa khóa đối xứng

Ứng dụng:

Hệ mã hóa khóa công khai được sử dụng chủ yếu trên mạng công khai như internet, khi mà việc trao chuyển khóa bí mật tương đối khó khăn Đặc trưng nổi bật của hệ mã hóa khóa công khai là cả khóa công khai và bản mã C đều có thể gửi đi trên một kênh thông tin không an toàn

Hệ mã hóa RSA được 3 nhà toán học R.L.Rivesrt, A.Shamir và L.M.Adleman tìm ra năm 1977, công bố năm 1978 Tính an toàn của mã RSA dựa trên độ phức tập của thuật toán phân tích số nguyên thành thừa số nguyên tố

Cũng giống như các hệ mã hóa khóa công khai, thuật toán RSA có 2 khóa là khóa công khai và khóa bí mật Thường thì khóa công khai được công bố rộng rãi và dùng để giải mã, thông tin được mã hóa bằng khóa công khai chỉ có thể được giải mã bằng khóa bí mật tương ứng

1.3.2 Các khái niệm cơ bản

Chữ ký số (Digital Signature) là một chuỗi dữ liệu liên kết với một thông điệp và thực thể tạo ra thông điệp

Giải thuật tạo ra chữ ký số (Digital Signature generation algorithm) là một phương pháp sinh chữ ký số

Giải thuật kiểm tra chữ ký số (Digital Signature verification algorithm) là một phương pháp xác minh tính xác thực của chữ ký số, có nghĩa là nó được thực sự tạo ra bởi một bên chỉ định

Một hệ chữ ký số (Figital Signature Scheme) bao gồm giải thuật tạo chữ ký số và giải thuật kiểm tra chữ ký số

“Chữ ký số” là thông tin đi kèm theo dữ liệu (văn bản,hình ảnh , video )

nhằm mục đích xác định người chủ của dữ liệu đó

Trang 24

Chữ ký số được sử dụng trong các giao dịch điện tử Xuất phát từ thực tế, chữ ký số cũng cần đảm bảo các chức năng: xác định được người chủ của một dữ liệu nào đó như văn bản, ảnh, video, dữ liệu đó có bị thay đổi hay không

Quá trình tạo chữ ký số (Digital Signature signing process) bao gồm: + Giải thuật tạo chữ ký số

+ Phương pháp chuyển dữ liệu thông điệp thành dạng có thể ký được

Quá trình kiểm tra chữ ký số (Digital Signature verification process) bao gồm: + Giải thuật kiểm tra chữ ký số

+ Phương pháp khôi phục dữ liệu từ thông điệp

Hàm băm là hàm toán học chuyển đổi thông điệp có độ dài bất kỳ thành một dãy bít có độ dài cố định Dãy bits này được gọi là thông điệp rút gọn hay giá trị băm đại diện cho thông điệp ban đầu

+ Hàm băm SHA-1: Thuật toán SHA-1 nhận thông điệp ở đầu vào có chiều dài k < 264 bits, thực hiện xử lý và đưa ra thông điệp thu gọn có chiều dài cố định 160 bits Quá trình tính toán cũng thực hiện theo từng khối 512 bits, nhưng bộ đệm xử lý dùng 5 thanh ghi 32 bits Thuật toán này chạy tốt với các bộ vi xử lý có cấu trúc 32 bits

1.3.3 Các nguyên lý của hệ mã khóa công khai

Năm 1976, Diffie và Hellman công bố một phát triển mới mang tên “các

phương hướng mới trong mật mã” Công trình đề xuất một dạng mới của hệ thống mật mã, trong đó người gửi và người nhận sử dụng các khoá mã khác nhau nhưng có mối liên hệ với nhau, và một trong hai khoá đó được giữ bí mật Bên nhận dữ liệu giữ một khoá bí mật cho phép giải mã với khoá đó, còn bên gửi sử dụng một khoá khác tương ứng với khoá bí mật trên để mã hoá dữ liệu, khoá đó gọi là khoá công khai Hệ thống dùng khoá như vậy gọi là hệ thống “bất đối xứng” bởi vì nó bảo đảm bí mật cho việc truyền tin chỉ một chiều, muốn thiết lập bí mật truyền tin theo chiều ngược lại phải sử dụng một cặp khoá khác Để dùng một hệ thống mật

Trang 25

mã khoá công khai trong một hệ thống có n cá thể cùng trao đổi các thông tin mật Mỗi cá thể chọn cho mình một khoá lập mã ki và một hàm mã hoá Eki được thông báo công khai Như vậy có n khoá lập mã được công khai k1, k2,…,kn Khi cá thể thứ i muốn gửi thông điệp cho cá thể thứ j: mỗi chữ trong thông điệp được số hoá, nhóm thành từng “khối” với độ dài nào đó Mỗi khối P trong văn bản được mã hoá bằng khoá lập mã kj của cá thể thứ j (đã được thông báo công khai) dùng hàm mã hoá Ej, và gửi đi dưới dạng: C = Ekj (P)

Để giải mã thông điệp này, cá thể thứ j chỉ cần dùng khoá riêng của mình (chỉ

một mình cá thể j biết khoá này) với hàm giải mã Dkj :

Dkj (C) = Dkj ( Ekj (P)) = P

Bộ ( Ekj , Dkj ) là cặp khoá của cá thể j, trong đó:

Ekj : là khoá lập mã (khoá công khai)

Dkj : là khoá giải mã (khoá riêng hay còn gọi là khoá bí mật)

Như vậy, các thuật toán khoá công khai sử dụng một khoá riêng để mã hoá và một khoá chung khác để giải mã (tạo thành một cặp khoá), chúng có các tính chất và đặc điểm quan trọng sau:

(i) Không cần phải thiết lập một kênh bảo vệ với những thể thức phức tạp, rườm rà để truyền khoá như trong hệ mã bí mật (mật mã đối xứng)

(ii) Cặp khoá công khai được tạo ra theo một phương pháp đặc biệt có quan hệ với nhau và được chọn trong nhiều khoá có thể (trong đó nếu khoá này dùng để mã

hoá thì khoá kia dùng để giải mã) Hình 1.5 mô tả rõ ràng mối quan hệ đó

Trang 26

Hình 1.5: Sơ đồ khối nguyên lý hoạt động của mật mã khoá công khai

o P là bản tin rõ, C là bản mã.

Eke : thuật toán mã hoá với khoá công khai ke, Dkd : thuật toán giải mã với

khoá bí mật kd (hai thuật toán E và D là đồng nhất, sở dĩ các kết quả mà chúng đưa ra khác nhau là vì khoá mã ke và kd khác nhau)

1.3.4 Các thuật toán của hệ mã khóa công khai

Thuật toán sinh khóa :

Để sử dụng được hệ mật mã khóa công khai RSA trước tiên mỗi người phải tạo riêng cho mình một cặp khóa gồm khóa công khai, và khóa bí mật Việc tạo ra khóa công khai và khóa bí mật thực hiện theo các bước sau:

+ Sinh ra 2 số nguyên tố lớn p và q ngẫu nhiên (p và q) + Tính n = p*q

Thuật toán mã hóa :

Hệ RSA là một hệ mật mã điển hình về kiểu mã hóa khối Nghĩa là, thông điệp được chia thành nhiều khối (hoặc chuỗi) có chiều dài cố định, và mỗi khối sẽ

Trang 27

được mã hóa riêng Giả sử để gửi thông điệp bí mật M cho người nhận B trong nhóm gửi thông tin an toàn, người gửi A phải thực hiện các bước như sau:

+ Thu nhận khóa công khai (e,n) của người nhận B

+ Thực hiện một thuật toán để biến đổi thông điệp M thành những số nguyên mi tương ứng sao cho mi < n, (i = 1,…, k)

Thuật toán giải mã :

Để thực hiện quá trình giải mã, khôi phục lại nội dung của thông điệp M từ bản mã C nhận được, người nhận B sẽ thực hiện các bước như sau:

+ Tính mi= Cd

i (mod n) với 0 ≤ mi ≤ n

+ Thực hiện phép biến đổi ngược từ các số mi thành chuỗi ký tự tương ứng chứa thông tin M ban đầu

1.3.5 Hệ mã khóa công khai RSA

Hệ mật mã khóa công khai RSA là hệ thống mật mã do các giáo sư Ronald Rivest, Adi Sharmir và Leonard Adleman phát mình năm 1978 tại học viện Công nghệ Massachusetts (MIT) Hệ mã RSA được xây dựng trên cơ sở mã hóa khối trong đó khóa mã hóa là cặp (e,n) gồm số mũ e và module n Với n là tích số của 2 số nguyên tố rất lớn nào đó, n = p*q còn (e, φ(n)) = 1, với φ (n) là giá trị hàm Euler của n, trong trường hợp này φ(n) = (p - 1)*(q - 1)

Các bước chủ yếu khi thực hiện mã hoá khoá công khai:

Bước 1: Mỗi user tạo ra một cặp khoá được sử dụng cho việc mã hoá và giải mã thông điệp

Bước 2: Mỗi user đặt một trong hai khoá trong một đăng ký công cộng Đây là khoá công khai Khoá còn lại được giữ kín

Bước 3: Muốn gửi một tin nhắn bí mật cho mã hoá tin nhắn bằng cách sử dụng khoá công khai

Trang 28

Bước 4: Khi nhận được tin nhắn, muốn giải mã nó bằng cách sử dụng khoá riêng của mình Không có ai khác có thể giải mã thông điệp bởi vì chỉ có người biết khoá riêng

Ứng dụng của hệ mật mã RSA

Trên cơ sở mức độ phức tạp của thuật toán phân tích số nguyên thành thừa số, có thể đảm bảo tính an toàn cao của giải pháp bảo mật sử dụng thuật toán RSA Giải pháp bảo mật sử dụng thuật toán RSA thỏa mãn 5 yêu cầu:

Độ mật cao (để giải mã được mà không biết khóa thì phải tốn rất nhiều thời gian)

Thực hiện nhanh (mã hóa và giải mã tốn ít thời gian) Có thể dùng chung

Chống từ chối (xác định rõ người thực hiện, dùng làm chữ kí điện tử)

Hiện nay, trên thị trường có nhiều giải pháp bảo mật để tăng cường tính an toàn cho hệ thống công nghệ thông tin đặc biệt cho ngành Tài chính – Ngân hàng Tuy nhiên, xét về mức độ an toàn dựa trên thuật toán, thì giải pháp sử dụng thuật toán RSA luôn có độ tin cậy cao Đây là điểm đáng lưu tâm trong bối cảnh nguy cơ rủi ro an ninh an toàn thông tin như hiện nay

Theo đánh giá của Công ty Forrester Research ( Theo đánh giá của Công ty Forrester Research(www.forrester.com)) , một công ty toàn cầu chuyên nghiên cứu thị trường và đánh giá các sản phẩm công nghệ thì giải pháp xác thực hai yếu tố RSA đạt mức an toàn rất cao và đáng tin cậy

Nhận thức được tầm quan trọng và bảo mật thông tin, Ngân hàng Đầu tư và Phát triển Việt Nam (BIDV) đã nghiên cứu và đầu tư về bảo mật hệ thống công nghệ thông tin, đặc biệt, là giải pháp xác thực hai yếu tố RSA cho hệ thống ngân hàng cốt lõi corebanking và một số giải pháp bảo mật khác cho các ứng dụng phục vụ bảo mật cho các giao dịch của ngân hàng

Trang 29

Thực tiễn cho thấy tốc độ thực hiện của RSA là chậm Tuy nhiên, người ta tìm thấy ở hệ mã RSA những khả năng ứng dụng độc đáo khác, thay vì trực tiếp mã hoá văn bản

+ Tạo vỏ bọc an toàn cho văn bản + Tạo chữ ký số cho văn bản

Thuật toán RSA

Hệ mã hóa RSA được mô tả như sau:

Tính số nguyên n = p.q từ 2 số nguyên tố ngẫu nhiên p,q Tính Φ (n) = (p – 1)(q -1)

Chọn một số e sao cho e và Φ (n) là hai số nguyên tố cùng nhau Tính số d sao cho e.d ≡ 1 mod Φ (n)

Khi đó: khóa công khai là cặp số (e,n) và khóa mật là cặp số (d,n) Mã hóa một văn bản m theo phương pháp mã hóa RSA như sau: C = Encrypt(m) = me mod n

c: văn bản đã được mã hóa

Giải mã từ văn bản mã hóa c như sau: m = Decyrpt(c) = cd mod n

Thuật toán phân tích một số nguyên n thành thừa số lại cần đến một thời gian tăng theo cấp số lũy thừa so với chiều dài của n Nghĩa là, độ dài của số nguyên n tăng thêm vài kí tự thì thời gian cần để phân tích n thành thừa số sẽ tăng

gấp đôi Về lý thuyết, việc phân tích này không phải là không thể, tuy nhiên, số nguyên tố đã được các nhà toán học nghiên cứu từ rất lâu mà vẫn chưa có phương

pháp nào phân tích số nguyên n thành thừa số nguyên tố trong khoảng thời gian đủ

ngắn

RSA là thuật toán đầu tiên phù hợp với việc tạo ra chữ kí điện tử, đồng thời với việc mã hóa, đánh dấu sự phát triển vượt bậc của lĩnh vực mật mã học trong

Trang 30

việc sử dụng khóa công khai RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với điều kiện độ dài khóa đủ lớn

Hệ mã hóa RSA được sử dụng rất rộng rãi trong các ứng dụng: bảo mật xác thực người sử dụng, chữ kí số,…

Thuật toán RSA

Xây dựng: Chọn các tham số

1 Chọn hai số nguyên tố lớn p và q Tính n = p x q và m = (n) = (p = 1) x (q-1)

2 Chọn e, 1 e  m -1, sao cho gcd (e, m) = 1

3 Tìm d sao cho e * d = 1 (mod m), tức là tính d = e-1 (mod m), giải theo thuật toán gcd mở rộng đã trình bày ở phần trước

Khóa công khai (Public key) là (e, n) Khoá dùng riêng (Private key) là d, p, q)

Giả sử X là một khối tin gốc (plaintext), Y là một khối mã tương ứng của X, và ( zA,ZA) là các thành phần công khai và riêng của khoá

Mã hoá: Muốn gửi một thông báo mã hoá ta chỉ việc dùng khoá công khai Giải mã: Muốn giải mã Y, ta chỉ việc dùng khoá riêng zA = d để thực hiện

1.3.6 Hệ Elgamal

1.3.6.1 Hệ Elgamal là hệ mật mã công khai

+ Hệ Elgamal dựa trên logarit bài toán rời rạc Tính an toàn của nó tùy thuộc vào độ phức tạp của bài toán logarit

+ Hệ Elgamal là một biến thể của sơ đồ phân phối khóa Diffie-Hellman đưa ra năm 1985

+ So với RSA hệ Elgamal không có nhiều rắc rối về bản quyền sử dụng

Trang 31

1.3.6.2 Mã hóa và giải mã hệ Elgamal

Ban đầu người ta sẽ cho ̣n mô ̣t số nguyên tố lớn p và hai số nguyên tuỳ ý nhỏ hơn p là a (a là 1 phần tử nguyên thủy của Z * P) và x (x là của người nhận, bí mật) sau đó tính: y= ax mod p

Để mã hóa một thông điệp M (là một số nguyên trên ZP) thành bản mã C người gửi cho ̣n mô ̣t số ngẫu nhiên k nhỏ hơn p và tı́nh khóa mã hóa K: K = yk mod p

Sau đó tı́nh cặp bản mã: C1 = ak mod p, C2 = (K.M)mod p Và gửi bản mã C = (C1, C2) (chú ý là sau đó k sẽ bị huỷ)

Để giải mã thông điệp đầu tiên ta cần tı́nh lại khóa mã hóa thông điệp K: K = (C1(p-1-x)) mod p = (ak.(p-1-x))mod p

Sau đó tı́nh M bằng cách giải phương trình sau đây: M = (C2 K)mod p

Việc giải mã bao gồm việc tı́nh lại khóa ta ̣m thời K (rất giống với mô hình của Diffie - Hellman đưa ra) Khóa công khai của hệ mã là (p, a, y), khóa bí mật là x

1.3.6.3 Ưu điểm và nhược điểm:

Ưu điểm:

+ Độ phức tạp của bài toán logarit lớn nên độ an toàn cao

+ Bản mã phụ thuộc vào bản rõ x và giá trị ngẫu nhiên nên từ 1 bản rõ ta có thể có nhiều bản mã khác nhau

Nhược điểm:

+ Tốc độ chậm( do phải xử lý số nguyên lớn)

+ Dung lượng bộ nhớ dành cho việc lưu trữ khóa cũng lớn

1.4 Đánh giá hệ mã khóa công khai RSA 1.4.1 Độ an toàn của RSA

Độ an toàn của RSA được thiết kế dựa trên độ khó giải bài toán phân tích ra thừa số nguyên tố n = p*q với 2 số nguyên tố bí mật lớn p, q Nếu ta chọn các số p, q khoảng 100 chữ số thập phân thì nó sẽ có khoảng 200 chữ số thập phân Để phân

Trang 32

tích một số nguyên cỡ lớn như thế với các thuật toán nhanh nhất hiện nay cùng với những máy tính hiện đại nhất cũng mất hàng triệu năm Như vậy việc phân tích số nguyên n thành các thừa số nguyên tố p, q nhằm mục đích bẻ gãy hệ mật mã RSA là điều khó có thể tính toán nổi nếu như trong quá trình thiết kế hệ RSA ta chọn số nguyên N lớn

1.4.2 Hiệu suất thực hiện của thuật toán RSA

Tốc độ thực hiện của hệ RSA là một trong những điểm yếu so với các hệ mật mã khóa đối xứng Theo ước tính, thực hiện mã hóa và giải mã bằng hệ mật mã RSA chậm hơn 100 lần so với hệ mật mã khóa đối xứng DES (khi thực hiện bằng phần mềm) Và chậm hơn 1000 lần so với DES (khi thực hiện bằng phần cứng)

1.4.3 Một số tính chất của hệ RSA

Trong các hệ mật mã RSA, một bản tin có thể được mã hóa trong thời gian tuyến tính Đối với các bản tin dài, độ dài của các số được dùng cho các khóa có thể được coi như là hằng Tương tự như vậy, nâng một số lên lũy thừa được thực hiện trong thời gian hằng, các số không được phép dài hơn một độ dài hằng Thực ra tham số này che dấu nhiều chi tiết cài đặt có liên quan đến việc tính toán với các số dài, chi phí của một phép toán thực sự là một yếu tố ngăn cản sự phổ biến ứng dụng của phương pháp này Phần quan trọng nhất của việc tính toán có liên quan đến việc mã hóa bản tin Nhưng chắc chắn là sẽ không có hệ mã hóa nào hết nếu không tính ra được các khóa của chúng là các số lớn

Các khóa cho hệ mã hóa RSA có thể được tạo ra mà không phải tính toán quá nhiều Một lần nữa, ta lại nói đến các phương pháp kiểm tra số nguyên tố Mỗi số nguyên tố lớn có thể được phát sinh bằng cách đầu tiên tạo ra một số ngẫu nhiên lớn, sau đó kiểm tra các số kế tiếp cho tới khi tìm được số nguyên tố Một phương pháp đơn giản thực hiên một phép tính trên một con số ngẫu nhiên, với xác suất ½ sẽ chứng minh rằng số được kiểm tra không phải nguyên tố Bước cuối cùng tính p dựa vào thuật toán Euclid

Trang 33

Như phần trên đã trình bày, trong hệ mã khóa công khai thì khóa giải mã KB và các thừa số p.q là được giữ bí mật và sự thành công của phương pháp là tùy thuộc vào kẻ địch có khả năng tìm ra được giá trị của KB hay không, nếu cho trước N và KB Rất khó có thể tìm ra được KB từ KB cần biết từ p và q, như vậy cần phân tích N ra thành thừa số để tính p và q

Nhưng việc phân tích ra một thừa số là một việc làm tốn rất nhiều thời gian, với kỹ thuật hiện đại ngày nay thì cần đến hàng triệu năm để phân tích một số có 200 chữ số ra thừa số

Độ an toàn của thuật toán RSA dựa trên cơ sở những khó khăn của việc xác định các thừa số nguyên tố của một số lớn Bảng dưới đây cho biết các thời gian dự đoán, giả sử rằng mỗi phép toán thực hiện trong một micro giây

Bảng 1.1: Thời gian dự đoán của mỗi phép toán thực hiện trong một micro giây

Số các chữ số trong số được phân tích

Thời gian phân tích

1.5 Một số phương pháp tấn công hệ mã RSA

Một nhận định chung là tất cả các cuộc tấn công giải mã đều mang mục đích không tốt Trong phần độ an toàn của hệ mã hoá RSA sẽ đề cập đến một vài phương thức tấn công điển hình của kẻ địch nhằm giải mã trong thuật toán này Chúng ta xét đến trường hợp khi kẻ địch nào đó biết được modulo N, khoá công khai KB và bản tin mã hoá C, khi đó kẻ địch sẽ tìm ra bản tin gốc (Plaintext) như

Trang 34

thế nào Để làm được điều đó kẻ địch thường tấn vào hệ thống mật mã bằng hai phương thức sau đây:

1.5.1 Phương thức thứ nhất

Trước tiên dựa vào phân tích thừa số modulo N Tiếp theo sau chúng sẽ tìm cách tính toán ra hai số nguyên tố p và q, và có khả năng thành công khi đó sẽ tính được λ(N) và khoá bí mật kB Ta thấy N cần phải là tích của hai số nguyên tố, vì nếu N là tích của hai số nguyên tố thì thuật toán phân tích thừa số đơn giản cần tối đa N bước, bởi vì có một số nguyên tố nhỏ hơn N Mặt khác, nếu N là tích của n số nguyên tố, thì thuật toán phân tích thừa số đơn giản cần tối đa N 1/n bước

Một thuật toán phân tích thừa số có thể thành phức tạp hơn, cho phép phân tích một số N ra thành thừa số trong O (P) bước, trong đó p là số chia nhỏ nhất của N, việc chọn hai số nguyên tố là cho thuật toán tăng hiệu quả

1.5.2 Phương thức thứ hai

Phương thức tấn công thứ hai vào hệ mã hoá RSA là có thể khởi đầu bằng cách giải quyết trường hợp thích hợp của bài toán logarit rời rạc Trường hợp này kẻ địch đã có trong tay bản mã C và khoá công khai KB tức là có cặp (KB,C) Cả hai phương thức tấn công đều cần một số bước cơ bản, đó là :

O(exp lnNln lnN , trong đó N là số modulo

1.6 Kết luận chương

Chương này đã thể hiện những nội dung sau:

- Trình bày khát quát về mật mã, khái niệm về hệ mật mã khoá bí mật và hệ mật mã hoá khoá công khai

- Trình bày một số thuật toán và định lý toán học dùng trong các hệ mã công khai

- Trình bày chi tiết hệ mật mã hoá khoá công khai, thuật toán mã hoá, giải mã và một số phương pháp tấn công hệ mã RSA

Trang 35

Chương 2: CHỮ KÝ SỐ

2.1 Giới thiệu chung

Trong đời sống hằng ngày, chữ ký (viết tay) trên một văn bản là một minh chứng về “bản quyền” hoặc ít nhất cũng là sự “tán đồng, thừa nhận” các nội dung trong văn bản Chẳng hạn như trên việc ký vào phiếu nhận tiền từ ngân hàng, hợp đồng mua bán, chuyển nhượng, thừa kế, tố tụng…Chữ ký viết tay được chính tay người ký nên không thể sao chụp được Thông thường chữ ký viết tay trên văn bản thì được dùng để xác nhận người ký nó Về mặt lý tưởng thì:

o Chữ ký là bằng chứng thể hiện người ký có chủ định khi ký văn bản

o Chữ ký thể hiện “chủ quyền”, nó làm cho người nhận văn bản biết rằng ai đích thị là người đã ký văn bản

o Chữ ký không thể “ tái sử dụng”, tức là nó là một phần của văn bản mà không thể sao chép sang các văn bản khác

o Văn bản đã ký không thể thay đổi được

o Chữ ký không thể giả mạo và cũng là thứ không thể chối bỏ ( người đã ký văn bản không thể phủ định việc mình đã ký văn bản và người khác không thể tạo ra chữ ký đó)

Trong cuộc sống đời thường, việc tạo ra mô hình “lý tưởng” như trên là không dễ vì việc ký trên văn bản giấy có thể giả mạo chữ ký nhưng với khả năng kiểm định sát sao thì việc làm thay đổi không phải dễ Tuy nhiên trong thế giới máy tính thì vấn đề ký như trong thực tế sẽ gặp rất nhiều khó khăn: các dòng thông tin trên máy tính có thể thay đổi dễ dàng, hình ảnh chữ ký tay của một người cũng dễ dàng cho “ sang - truyền” từ một văn bản này sang văn bản khác Và việc thay đổi nội dung một văn bản điện tử (sau khi ký) cũng chẳng để lại vết gì về phương tiện sau khi tẩy, xóa…

Để có được những đặc tính như trên, giao thức (“ ký trong thế giới điện tử”) cần phải có sự hỗ trợ của công nghệ mã hóa Ta cần dùng chữ ký để xác nhận các

Ngày đăng: 04/06/2024, 16:10

Tài liệu cùng người dùng

Tài liệu liên quan