Đăng ký Đăng nhập
Trang chủ Thể loại khác Chưa phân loại Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng ...

Tài liệu Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng otp

.PDF
74
205
141

Mô tả:

ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THU HƯƠNG NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG OTP LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN, 2016 ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG LÊ THU HƯƠNG NGHIÊN CỨU VẤN ĐỀ XÁC THỰC GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN SỬ DỤNG MẬT KHẨU DẠNG OTP Chuyên ngành: Khoa học máy tính Mã số: 60 48 01 01 LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH Người hướng dẫn khoa học: TS. VŨ VINH QUANG THÁI NGUYÊN, 2016 i LỜI CAM ĐOAN Sau quá trình học tập tại Trường Đại học công nghệ thông tin & truyền thông, với những kiến thức lý thuyết và thực hành đã tích lũy được, với việc vận dụng các kiến thức vào thực tế, em đã tự nghiên cứu các tài liệu, các công trình nghiên cứu, đồng thời có sự phân tích, tổng hợp, đúc kết và phát triển để hoàn thành luận văn thạc sĩ của mình. Em xin cam đoan luận văn này là công trình do bản thân em tự tìm hiểu, nghiên cứu và hoàn thành dưới sự hướng dẫn của thầy giáo TS. Vũ Vinh Quang. Thái Nguyên, tháng 12 năm 2016 Học viên Lê Thu Hương ii LỜI CẢM ƠN Trong thời gian hai năm của chương trình đào tạo thạc sỹ, trong đó gần một nửa thời gian dành cho các môn học, thời gian còn lại dành cho việc lựa chọn đề tài, giáo viên hướng dẫn, tập trung vào nghiên cứu, viết, chỉnh sửa và hoàn thiện luận văn. Với quỹ thời gian như vậy và với vị trí công việc đang phải đảm nhận, không riêng bản thân em mà hầu hết các sinh viên cao học muốn hoàn thành tốt luận văn của mình trước hết đều phải có sự sắp xếp thời gian hợp lý, có sự tập trung học tập và nghiên cứu với tinh thần nghiêm túc, nỗ lực hết mình; tiếp đến cần có sự ủng hộ về tinh thần, sự giúp đỡ về chuyên môn một trong những điều kiện không thể thiếu quyết định đến việc thành công của luận văn. Để hoàn thành được luận văn này trước tiên em xin gửi lời cảm ơn đến thầy giáo hướng dẫn TS. Vũ Vinh Quang, người đã có những định hướng cho em về nội dung và hướng phát triển của đề tài, người đã có những đóng góp quý báu cho em về những vấn đề chuyên môn của luận văn, giúp em tháo gỡ kịp thời những vướng mắc trong quá trình làm luận văn. Em cũng xin cám ơn các thầy cô giáo Trường Đại học Công nghệ thông tin và Truyền thông đã có những ý kiến đóng góp bổ sung cho đề tài luận văn của em. Em xin hứa sẽ cố gắng hơn nữa, tự trau dồi bản thân, tích cực nâng cao năng lực chuyên môn của mình để sau khi hoàn thành luận văn này sẽ có hướng tập trung nghiên cứu sâu hơn, không ngừng hoàn thiện hơn nữa luận văn của mình để có những ứng dụng thực tiễn cao trong thực tế. Thái Nguyên, tháng 12 năm 2016 Học viên Lê Thu Hương iii MỤC LỤC LỜI CAM ĐOAN ........................................................................................................ i LỜI CẢM ƠN .............................................................................................................ii MỤC LỤC ................................................................................................................. iii DANH MỤC CÁC CHỮ VIẾT TẮT ........................................................................ vi DANH MỤC HÌNH VẼ ............................................................................................vii MỞ ĐẦU .................................................................................................................... 1 Chương 1. MỘT SỐ KIẾN THỨC CƠ BẢN VỀ BẢO MẬT THÔNG TIN....... 3 1.1. Giới thiệu về an toàn và bảo mật thông tin .......................................................... 3 1.1.1. Các khái niệm cơ bản ........................................................................................ 3 1.1.2. Mục tiêu của an toàn bảo mật thông tin ............................................................ 3 1.1.3. Các chiến lược an toàn hệ thống ....................................................................... 4 1.1.4. An toàn thông tin bằng mật mã ......................................................................... 5 1.2. Một số hệ mã hóa thông dụng .............................................................................. 8 1.2.1. Hệ mã RSA ....................................................................................................... 8 1.2.2. Hệ mã Rabin ...................................................................................................... 9 1.2.3. Hệ mã Elgamal ................................................................................................ 10 1.2.4. Hệ mã MHK (Merkle -Hellman Knapsack) .................................................... 11 1.2.5. Hệ mật mã Rabin ............................................................................................. 12 1.2.6. Hệ mật mã McEliece ...................................................................................... 13 1.3. Giới thiệu về mật khẩu ....................................................................................... 15 1.3.1. Định nghĩa ....................................................................................................... 15 1.3.2. Phương pháp xác thực ..................................................................................... 16 1.3.3. Độ an toàn ....................................................................................................... 17 Chương 2. MỘT SỐ KHÁI NIỆM VỀ OTP CÁC PHƯƠNG PHÁP ................ 26 2.1. Giới thiệu về OTP ............................................................................................. 26 2.1.1. Định nghĩa về OTP.......................................................................................... 26 2.1.2. Ưu điểm ........................................................................................................... 26 2.1.3. Nhược điểm ..................................................................................................... 27 2.2. Ứng dụng của OTP ............................................................................................ 27 2.2.1. Ứng dụng trong xác thực................................................................................. 27 2.2.2. Ứng dụng trong đăng nhập .............................................................................. 28 iv 2.3. Giới thiệu về hàm băm mật mã, các thuật toán ................................................. 29 2.3.1. Giới thiệu......................................................................................................... 29 2.3.2. Cấu trúc, vai trò của hàm băm mật mã ........................................................... 29 2.3.3. Một số hàm băm mật mã thông dụng .............................................................. 36 2.3.4. Các ứng dụng cơ bản của hàm băm ............................................................... 37 2.4. Một số phương pháp sinh OTP .......................................................................... 41 2.4.1. Phương pháp sinh theo thời gian ..................................................................... 41 2.4.2. Phương pháp sinh theo thuật toán ................................................................... 42 2.4.3. Phương pháp sinh theo giải pháp S/KEY ....................................................... 44 2.4.4. Phương pháp sinh sử dụng HOTP................................................................... 44 2.4.5. Phương pháp sinh sử dụng Security token ...................................................... 44 2.4.6. Phương pháp sinh bằng giao thức ................................................................... 44 2.5. Các phương pháp chuyển giao OTP .................................................................. 45 2.5.1. Chuyển giao OTP bằng giấy ........................................................................... 45 2.5.2. Chuyển giao OTP bằng tin nhắn SMS ............................................................ 46 2.5.3. Tạo OTP sử dụng token .................................................................................. 47 2.5.4. Tạo OTP sử dụng điện thoại di động .............................................................. 49 2.5.5. Chuyển giao OTP sử dụng gmail .................................................................... 51 Chương 3. XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG XÁC THỰC SỬ DỤNG OTP TRONG GIAO DỊCH NGÂN HÀNG TRỰC TUYẾN ................. 53 3.1 Đặt vấn đề ........................................................................................................... 53 3.2 Mô hình sử dụng giao dịch trực tuyến của ngân hàng Eximbank ....................... 54 3.2.1. Giới thiệu Mobile OTP ................................................................................... 55 3.2.1. Hướng dẫn sử dụng Mobile OTP .................................................................... 56 3.3. Kết quả xây dựng mô hình thực nghiệm ............................................................ 56 3.4. Cài đặt ................................................................................................................ 56 3.5. Kết chương ......................................................................................................... 56 KẾT LUẬN .............................................................................................................. 57 TÀI LIỆU THAM KHẢO ...................................................................................... 58 PHỤ LỤC ................................................................................................................. 59 v DANH MỤC CÁC CHỮ VIẾT TẮT OTP One Time Password DES Data Encrypt Standar RSA R.Rivest A.Shamir L.Adleman MHK Merkle -Hellman Knapsack SHA Secure Hash Algorithm vi DANH MỤC HÌNH VẼ Hình 1: Hình 2: Mã hoá với khoá mã và khoá giải giống nhau...................................... 6 Minh họa xác thực mật khẩu .............................................................. 15 Hình 3: Minh họa đăng nhập một lần .............................................................. 16 Hình 4: Hình 5: Mô hình đăng nhập duy nhất SSO ...................................................... 26 Cơ chế hoạt động của openSSO ......................................................... 30 Hình 6: Hình 7: Người dùng truy cập vào ứng dụng khi ................................................ 32 Người dùng truy cập ứng dụng mà chưa ............................................ 32 Hình 8: Hình 9: Hình 10: Sơ đồ phân loại hàm băm ................................................................... 34 Cấu trúc tổng quát của hàm băm ........................................................ 35 Mô hình sinh mã OTP theo thời gian ................................................. 39 Hình 11: Hình 12: Hình 13: Thiết bị sinh OTP - OTP Token ......................................................... 40 Ứng dụng Mobile OTP - IOS ............................................................. 40 Ứng dụng Mobile OTP - Window Phone 8. ....................................... 42 Hình 14: Hình 15: Hình 16: Hình 17: Mô hình xác thực người dùng dựa trên giao thức ................................. 44 Thẻ mật khẩu OTP với mật khẩu in sẵn của VinaGame .................... 45 Chuyển giao OTP bằng tin nhắn SMS ............................................... 46 Minh họa thẻ EMV ............................................................................. 48 Hình 18: Hình 19: Hình 20: Hình 21: Minh họa thiết bị E-Token ................................................................. 49 Mô hình kết nối SSL VPN đến Vigor2950 có điện thoại ................... 49 Cài đặt phần mềm sinh OTP trên iPhone với Vigor2950 ................... 51 Mô hình nhận OTP qua gmail ............................................................ 53 Hình 22: Hình 23: Hình 24: Hình 25: Hình 26: Hình 27: Hình 28: Hình 29: Hướng dẫn cài đặt ứng dụng Mobile OTP ......................................... 54 Hướng dẫn đăng nhập và kích hoạt dịch vụ ....................................... 54 Hướng dẫn sử dụng Mobile OTP để xác thực giao dịch .................... 55 Hướng dẫn chức năng đồng bộ OTP .................................................. 55 Hướng dẫn cấp lại mật khẩu ............................................................... 56 Hướng dẫn đổi mật khẩu .................................................................... 56 Người dùng đăng nhập vào hệ thống.................................................. 56 Người dùng nhập thông tin chuyển khoản ......................................... 56 Hình 30: Hình 31: Hình 32: Người dùng chấp nhận chuyển khoản ................................................ 56 Người dùng chuyển khoản thành công ............................................... 56 Mô tả lịch sử giao dịch ....................................................................... 56 1 MỞ ĐẦU Trong kĩ thuật bảo mật thông tin, mật khẩu (password) được sử dụng rộng rãi trong quá trình đăng nhập (log-on) để xác thực người dùng khi truy nhập vào các hệ thống máy tính và mạng, các phần mềm ứng dụng trên máy tính cá nhân, máy chủ công ty và cả website của các tổ chức tài chính, ngân hàng. Phương pháp phổ thông thường hay dùng nhất để xác thực người dùng chỉ là mật khẩu (tên đăng nhập username - password). Tuy nhiên, hầu hết các chuyên gia bảo mật đều đánh giá là việc sử dụng password không còn an toàn trước các thủ đoạn tấn công tinh vi hiện nay. Mật khẩu có thể bị nghe lén, bị đánh cắp, hoặc bị phá mã. Một trong những hướng nghiên cứu để tăng cường độ an toàn của hệ thống là mật khẩu sử dụng một lần OTP (One Time Password). Đây là phương pháp được giới thiệu để tăng cường độ an toàn trong quá trình xác thực người dùng, xác thực các giao dịch, đặc biệt là các giao dịch thanh toán trực tuyến trong các hệ thống ngân hàng đang được sử dụng phổ biến hiện nay. Đề tài "Nghiên cứu vấn đề xác thực giao dịch ngân hàng trực tuyến sử dụng mật khẩu dạng OTP" được lựa chọn với mục đích nghiên cứu sâu về mật khẩu sử dụng một lần, các phương pháp sinh và tạo mật khẩu sử dụng một lần và ứng dụng trong việc xác thực các giao dịch ngân hàng, cài đặt thử nghiệm ứng dụng mật khẩu sử dụng một lần để nâng cao an toàn cho xác thực các giao dịch ngân hàng trực tuyến. Mục đích của luận văn Tìm hiểu nghiên cứu sâu về mật khẩu sử dụng một lần, các phương pháp sinh và tạo mật khẩu sử dụng một lần và ứng dụng trong xác thực giao dịch ngân hàng trực tuyến. Đối tượng và phạm vi nghiên cứu Luận văn tìm hiểu nghiên cứu về lý thuyết mật mã, các thuật toán mã hóa cơ bản, lý thuyết về hàm băm và thuật toán mã hóa SHA-1, lý thuyết về OTP và vấn đề xác thực các giao dịch ngân hàng trực tuyến. Xây dựng hệ thống xác thực các giao dịch ngân hàng bằng mật khẩu sử dụng 1 lần OTP trên ngôn ngữ Java. Cấu trúc của luận văn gồm có Phần mở đầu: Nêu lý do chọn đề tài và hướng nghiên cứu chính Chương 1: Các kiến thức cơ bản về lý thuyết bảo mật thông tin, một số thuật toán mã hóa cơ bản, khái niệm về mật khẩu và ứng dụng. 2 Chương 2: Giới thiệu tổng quan về mật khẩu OTP, các ứng dụng cơ bản, các phương pháp sinh mật khẩu OTP, các phương pháp chuyển giao Chương 3: Xây dựng chương trình ứng dụng xác thực trong giao dịch trực tuyến tại các ngân hàng Việt Nam dựa trên mật khẩu OTP 3 Chương 1 MỘT SỐ KIẾN THỨC CƠ BẢN VỀ BẢO MẬT THÔNG TIN Nội dung chính của chương 1 sẽ giới thiệu các khái niệm cơ bản về lý thuyết an toàn và bảo mật thông tin thông qua các hệ mật mã và mật khẩu, các kiến thức cơ bản này đã được tham khảo trong các tài liệu [1, 5, 6, 8]. 1.1. Giới thiệu về an toàn và bảo mật thông tin 1.1.1 Các khái niệm cơ bản Trong thời đại ngày nay, các phương thức truyền đạt thông tin ngày càng đa dạng và phát triển. Với sự ra đời của máy tính và mạng máy tính, việc trao đổi thông tin đã trở nên dễ dàng hơn, nhanh chóng hơn, đa dạng hơn. Nhưng kèm theo đó là các nguy cơ xâm phạm thông tin cũng ngày càng tăng. Khi nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng, các tiến bộ về điện tử - viễn thông và công nghệ thông tin không ngừng được phát triển ứng dụng để nâng cao chất lượng và lưu lượng truyền tin thì các quan niệm ý tưởng và biện pháp bảo vệ thông tin dữ liệu cũng được đổi mới. Bảo vệ an toàn thông tin dữ liệu là một chủ đề rộng, có liên quan đến nhiều lĩnh vực và trong thực tế có thể có rất nhiều phương pháp được thực hiện để bảo vệ an toàn thông tin dữ liệu. Các phương pháp bảo vệ an toàn thông tin dữ liệu có thể được phân thành ba nhóm sau: + Bảo vệ an toàn thông tin bằng các biện pháp hành chính. + Bảo vệ an toàn thông tin bằng các biện pháp kỹ thuật (phần cứng). + Bảo vệ an toàn thông tin bằng các biện pháp thuật toán (phần mềm). Ba nhóm trên có thể được ứng dụng riêng rẽ hoặc phối kết hợp. Môi trường khó bảo vệ an toàn thông tin nhất và cũng là môi trường đối phương dễ xâm nhập nhất đó là môi trường mạng và truyền tin. Biện pháp hiệu quả nhất và kinh tế nhất hiện nay trên mạng truyền tin và mạng máy tính là biện pháp thuật toán. 1.1.2. Mục tiêu của an toàn bảo mật thông tin Một hệ thống an toàn thông tin cần đảm bảo các yếu tố sau đây: + Tính bí mật (Confjdentialy): Đảm bảo dữ liệu được truyền đi một cách an toàn và không thể bị lộ thông tin. Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu. 4 + Tính xác thực (Authentication): Giúp cho người nhận dữ liệu xác định được chắc chắn dữ liệu mà họ nhận là dữ liệu gốc ban đầu. Người nhận có khả năng kiểm tra nguồn gốc thông tin mà họ nhận được. + Tính toàn vẹn (Integrity): dữ liệu không bị thay đổi trong quá trình truyền đi. + Tính không thể chối bỏ (Non-repudation): Người gửi hay người nhận không thể chối bỏ sau khi đã gửi hoặc nhận thông tin. 1.1.3. Các chiến lược an toàn hệ thống Để xây dựng một hệ thống an toàn thông tin, người ta thường sử dụng các chiến lược sau: + Giới hạn quyền hạn tối thiểu (Last Privilege): Đây là chiến lược cơ bản nhất theo nguyên tắc này bất kỳ một đối tượng nào cũng chỉ có những quyền hạn nhất định đối với tài nguyên mạng, khi thâm nhập vào mạng đối tượng đó chỉ được sử dụng một số tài nguyên nhất định. + Bảo vệ theo chiều sâu (Defence InDepth): Xây dựng hệ thống bảo vệ theo chiều sau để đảm bảo nâng cao hệ số an toàn. + Nút thắt (Choke Point): Tạo ra một “cửa khẩu” hẹp và chỉ cho phép thông tin đi vào hệ thống bằng con đường duy nhất chính, từ đó xây dựng tổ chức một cơ cấu kiểm soát và điều khiển thông tin đi qua cửa này. + Điểm nối yếu nhất (Weakest Link): Cần phải gia cố các vị trí yếu điểm nhất của hệ thống. Thông thường chúng ta chỉ quan tâm đến người tấn công trên mạng hơn là kẻ tiếp cận hệ thống, do đó an toàn vật lý được coi là yếu điểm nhất trong hệ thống của chúng ta. + Tính toàn cục: Các hệ thống an toàn đòi hỏi phải có tính toàn cục của các hệ thống cục bộ. Nếu có thể bẻ gãy một cơ chế an toàn thì chúng có thể thành công bằng cách tấn công hệ thống tự do của ai đó và sau đó tấn công hệ thống từ nội bộ bên trong. - Tính đa dạng bảo vệ: Cần phải sử dụng nhiều biện pháp bảo vệ khác nhau cho hệ thống khác nhau, nếu không có người tấn công vào được một hệ thống thì chúng cũng dễ dàng tấn công vào các hệ thống khác. 5 1.1.4. An toàn thông tin bằng mật mã Mật mã là một ngành khoa học chuyên nghiên cứu các phương pháp truyền tin bí mật. Mật mã bao gồm: Lập mã và phá mã. Lập mã bao gồm hai quá trình: mã hóa và giải mã. Để bảo vệ thông tin trên đường truyền người ta thường biến đổi nó từ dạng nhận thức được sang dạng không nhận thức được trước khi truyền đi trên mạng, quá trình này được gọi là mã hoá thông tin (encryption), ở trạm nhận phải thực hiện quá trình ngược lại, tức là biến đổi thông tin từ dạng không nhận thức được (dữ liệu đã được mã hoá) về dạng nhận thức được (dạng gốc), quá trình này được gọi là giải mã. Đây là một lớp bảo vệ thông tin rất quan trọng và được sử dụng rộng rãi trong môi trường mạng.  Vai trò của hệ mật mã + Che dấu nội dung của văn bản rõ (PlainText) để đảm bảo sao cho chỉ người chủ hợp pháp của thông tin mới có quyền truy cập thông tin (Secrety), hay nói cách khác là chống truy nhập không đúng quyền hạn. + Tạo các yếu tố xác thực thông tin, đảm bảo thông tin lưu hành trong hệ thống đến người nhận hợp pháp là xác thực (Authenticity). + Tổ chức các sơ đồ chữ ký điện tử, đảm bảo không có hiện tượng giả mạo, mạo danh để gửi thông tin trên mạng. Ưu điểm lớn nhất của bất kỳ hệ mật mã nào đó là có thể đánh giá được độ phức tạp tính toán phải giải quyết bài toán để có thể lấy được thông tin của dữ liệu đã được mã hoá. Tuy nhiên mỗi hệ mật mã có một số ưu và nhược điểm khác nhau, nhưng nhờ đánh giá được độ phức tạp tính toán mà ta có thể áp dụng các thuật toán mã hoá khác nhau cho từng ứng dụng cụ thể tuỳ theo độ yêu cầu về độ an toàn.  Các thành phần của một hệ mật mã: Một hệ mật mã là một bộ 5 (P,C,K,E,D) thoả mãn các điều kiện sau: + P: Là một tập hợp hữu hạn các bản rõ, nó được gọi là không gian bản rõ. + C: Là tập hữu hạn các bản mã, nó được gọi là không gian bản mã. Mỗi phần tử của C có thể nhận được bằng cách áp dụng phép mã hoá Ek lên một phần tử của P, với k  K + K: Là tập hữu hạn các khoá hay còn gọi là không gian khoá. Đối với mỗi phần tử k của K được gọi là một khoá. Số lượng của không gian khoá phải đủ lớn để “kẻ địch” không có đủ thời gian để thử mọi khoá có thể (phương pháp vét cạn). Đối với 6 mỗi k  K có một quy tắc mã ek: PC và một quy tắc giải mã tương ứng dk D. Mỗi ek: P C và dk: CP là những hàm mà: Dk (ek(x))=x với mọi bản rõ x P. Hình 1: Mã hoá với khoá mã và khoá giải giống nhau  Tiêu chuẩn đánh giá hệ mật mã Để đánh giá một hệ mật mã người ta thường đánh giá thông qua các tiêu chí sau: + Độ an toàn: Một hệ mật được đưa vào sử dụng điều đầu tiên phải có độ an toàn cao. Ưu điểm của mật mã là có thể đánh giá được độ an toàn thông qua độ an toàn tính toán mà không cần phải cài đặt. Một hệ mật được coi là an toàn nếu để phá hệ mật mã này phải dùng n phép toán. Mà để giải quyết n phép toán cần thời gian vô cùng lớn, không thể chấp nhận được. Một hệ mật mã được gọi là tốt thì nó cần phải đảm bảo các tiêu chuẩn sau: - Chúng phải có phương pháp bảo vệ mà chỉ dựa trên sự bí mật của các khoá, công khai thuật toán. - Khi cho khoá công khai eK và bản rõ P thì chúng ta dễ dàng tính được eK(P) = C. Ngược lại khi cho dK và bản mã C thì dễ dàng tính được dK(M)=P. Khi không biết dK thì không có khả năng để tìm được M từ C, nghĩa là khi cho hàm f: X Y thì việc tính y=f(x) với mọi x thuộc X là dễ còn việc tìm x khi biết y lại là vấn đề khó và nó được gọi là hàm một chiều. - Bản mã C không được có các đặc điểm gây chú ý, nghi ngờ. + Tốc độ mã và giải mã: Khi đánh giá hệ mật mã chúng ta phải chú ý đến tốc độ mã và giải mã. Hệ mật tốt thì thời gian mã và giải mã nhanh. 7 + Phân phối khóa: Một hệ mật mã phụ thuộc vào khóa, khóa này được truyền công khai hay truyền khóa bí mật. Phân phối khóa bí mật thì chi phí sẽ cao hơn so với các hệ mật có khóa công khai. Vì vậy đây cũng là một tiêu chí khi lựa chọn hệ mật mã.  Phân loại hệ mật mã Có nhiều cách để phân loại hệ mật mã. Dựa vào cách truyền khóa có thể phân các Hệ mật mã thành hai loại: - Hệ mật mã đối xứng (hay còn gọi là mật mã khóa bí mật): là những hệ mật mã dùng chung một khoá cả trong quá trình mã hoá dữ liệu và giải mã dữ liệu. Do đó khoá phải được giữ bí mật tuyệt đối. - Hệ mật mã bất đối xứng (hay còn gọi là mật mã khóa công khai) : Hay còn gọi là hệ mật mã công khai, các hệ mật mã này dùng một khoá để mã hoá sau đó dùng một khoá khác để giải mã, nghĩa là khoá để mã hoá và giải mã là khác nhau. Các khoá này tạo nên từng cặp chuyển đổi ngược nhau và không có khoá nào có thể suy được từ khoá kia. Khoá dùng để mã hoá có thể công khai nhưng khoá dùng để giải mã phải giữ bí mật. Ngoài ra nếu dựa vào thời gian đưa ra hệ mật mã ta còn có thể phân làm hai loại: Mật mã cổ điển (là hệ mật mã ra đời trước năm 1970) và mật mã hiện đại (ra đời sau năm 1970). Còn nếu dựa vào cách thức tiến hành mã thì hệ mật mã còn được chia làm hai loại là mã dòng (tiến hành mã từng khối dữ liệu, mỗi khối lại dựa vào các khóa khác nhau, các khóa này được sinh ra từ hàm sinh khóa, được gọi là dòng khóa) và mã khối (tiến hành mã từng khối dữ liệu với khóa như nhau). 1.2 Một số hệ mã hóa thông dụng 1.2.1 Hệ mã RSA Hệ mật mã RSA ra đời năm 1976 bởi các tác giả R.Rivets, A.Shamir, và L.Adleman. Sơ đồ mã hoá RSA là sơ đồ mã hoá khối, đoạn tin được mã hoá từng khối với mỗi khối có giá trị < n với n là số nguyên đủ lớn. RSA là hệ mã dựa vào bài toán logarit rời rạc và bài toán phân tích một số nguyên thành tích các thừa số nguyên tố, là hệ mã được sử dụng rộng rãi nhất. Nó cung cấp cả sự bí mật và chữ ký điện tử, và tính bảo mật của nó là cơ sở cho độ khó trong vấn đề tìm thừa số nguyên tố. Thuật toán Tạo khoá: Mỗi thực thể tạo một khoá công khai và một khoá riêng tương ứng. Thực thể A cần làm công việc sau: 8 1. Tạo 2 số nguyên tố lớn p và q bất kỳ có cỡ xấp xỉ nhau. 2. Tính n = p×q và Ф(n)= (p-1)(q-1). 3. Chọn 1 số nguyên e, 1 b1 + b2 + ... + bn. 2. Chọn số nguyên ngẫu nhiên W 1  W  M-1 sao cho UCLN(W, M) = 1. 3. Chọn một phép hoán vị ngẫu nhiên  của n số nguyên {1,2,...,n}. 4. Tính ai = Wb  (i) mod M với i = 1, 2, ..., n. 5. Khoá công khai là (a1, a2, ..., an), khoá riêng là (  , M, W, (b1,b2, ..., bn)). Mã hoá: B mã hoá văn bản m gửi cho A. 1. Thu được khoá công khai (a1, a2, ..., an) của A. 2. Biểu diễn văn bản m như một chuỗi nhị phân có độ dài n, m=m1m2...mn. 3. Tính số nguyên c = m1a1 + m2a2 + ... + mnan. 4. Gửi bản mã c cho A. Giải mã: Để khôi phục bản rõ m từ c, cần thực hiện các công việc sau: 1. Tính d = W-1c mod M. 2. Sử dụng thuật toán tìm lời giải bài toán tổng dãy siêu tăng để tìm các số nguyên r1,r2,...,rn,ri{0,1}, sao cho d=r1b1+r2b2+ ... +rnbn. 3. Các bit văn bản m là mi = r  (i), i = 1, 2, ..., n. Tính bảo mật Lược đồ mã hoá MHK có thể bị bẻ khoá bởi thuật toán thời gian đa thức. Trong cách thiết lập khoá công khai, thuật toán này tìm một cặp số nguyên U’, M’ sao cho U’/M’ là tỉ lệ với U/M (W và M là một phần khoá riêng, và U=W-1 mod M) và sao cho các số nguyên b’i = U’ai mod M, 1  i  n từ dãy siêu tăng. Dãy này có thể được một đối thủ sử dụng thay thế vào dãy (b1, b2, ..., bn) để giải mã văn bản. 1.2.5 Hệ mật mã Rabin Đây là hệ mật mã dựa trên độ phức tạp của việc tính căn bậc hai theo hợp số. Đây là hệ mật mã có độ an toàn về mặc tính toán chống lại được tấn công bản rõ lựa chọn và không có khả năng phân tích được n=pq. Thuật toán được ứng dụng rất nhiều trong thực tế. Quá trình tạo khóa: Để tạo ra khóa A cần phải thực hiện các thao tác sau: 1. Chọn 2 số nguyên tố ngẫu nhiên p và q, thỏa mãn điều kiện sau: p  q . 12 2. Tính tích p và q: n  p  q . 3. Chọn số ngẫu nhiên b  Z n* . 4. Sử dụng cặp (n, b) làm cặp khóa công cộng và cặp (p, q) làm khóa mật. Quá trình mã hóa: Để gởi thông tin mật M  Z n* cho A, B cần tạo ra bảng mã c như sau: c  M (M  b)(modn) Quá trình giải mã: Để giải mã bản mã c, A giải phương trình bậc hai sau: M 2  bM  c  0(mod n) Với M - Xem thêm -

Tài liệu liên quan