Tài liệu Hệ mã hóa đối xứng và ứng dụng trong vấn đề bảo mật tài liệu tại Trung tâm Kỹ thuật tài liệu nghiệp vụ (Luận văn thạc sĩ)

  • Số trang: 67 |
  • Loại file: PDF |
  • Lượt xem: 144 |
  • Lượt tải: 0
huynguyen1267293

Tham gia: 11/07/2018

Mô tả:

ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN QUANG TRUNG HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH THÁI NGUYÊN, 2017 ĐẠI HỌC THÁI NGUYÊN ĐẠI HỌC CÔNG NGHỆ THÔNG TIN VÀ TRUYỀN THÔNG NGUYỄN QUANG TRUNG HỆ MÃ HÓA ĐỐI XỨNG VÀ ỨNG DỤNG TRONG VẤN ĐỀ BẢO MẬT TÀI LIỆU TẠI TRUNG TÂM KỸ THUẬT TÀI LIỆU NGHIỆP VỤ 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, 2017 ii 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 5 năm 2017 Học viên Nguyễn Quang Trung ii iii MỤC LỤC LỜI CAM ĐOAN .........................................................................................................ii MỤC LỤC ..................................................................................................................... iii DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT ............................................................. v DANH MỤC CÁC BẢNG BIỂU .................................................................................. vi DANH MỤC CÁC HÌNH VẼ .......................................................................................vii LỜI NÓI ĐẦU................................................................................................................. 1 CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT THÔNG TIN. 2 1.1. Tổng quan về an toàn và bảo mật thông tin .............................................................2 1.1.1. Khái niệm chung ................................................................................................... 2 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.2. Các kiến thức cơ bản về hệ mật mã ..........................................................................5 1.2.1. Khái niệm chung ................................................................................................... 5 1.2.2. Các thành phần của một hệ mật mã....................................................................... 6 1.2.3. Quy trình mã hóa và giải mã ................................................................................. 7 1.2.4. Phân loại hệ thống mã hóa .................................................................................... 8 1.2.5. Các đặc trưng của hệ thống mã hoá .................................................................... 12 1.2.6. Thám mã và tính an toàn của các hệ mã ............................................................. 13 1.3. Cơ sở toán học về mã hóa ......................................................................................16 1.3.1. Các thuật toán trong Z ......................................................................................... 17 1.3.2. Thuật toán Euclide............................................................................................... 17 1.3.3. Khái niệm về hàm Euler ...................................................................................... 18 1.3.4. Khái niệm về đồng dư thức ................................................................................. 19 1.3.5. Khái niệm về số nghịch đảo ................................................................................ 21 1.3.6. Định lý phần dư China CRT (Chinese Remainder Theorem) ............................. 21 1.3.7. Các thuật toán trong Zn ....................................................................................... 22 1.3.8. Thuật toán ............................................................................................................ 22 CHƯƠNG 2: MỘT SỐ HỆ MÃ HÓA ĐỐI XỨNG .................................................... 23 2.1. Giới thiệu ................................................................................................................23 2.2. Quá trình mã hóa và giải mã ..................................................................................25 iii iv 2.3. Một số hệ mã hóa đối xứng ....................................................................................25 2.3.1. Hệ mã Caesar ....................................................................................................... 25 2.3.2. Hệ mã mật Hill .................................................................................................... 25 2.3.3. Hệ mã Affine ....................................................................................................... 26 2.3.4. Hệ mã Vigenère ................................................................................................... 28 2.3.5. Phương pháp mã hóa khối ................................................................................... 29 2.4. Hệ mã DES .............................................................................................................30 2.4.1. Sơ đồ mã hóa ....................................................................................................... 30 2.4.2. Thuật toán mã hóa Triple DES ............................................................................ 34 2.4.3. Thuật toán mã hóa AES....................................................................................... 36 2.5. Mật mã dòng ...........................................................................................................43 CHƯƠNG 3: MỘT SỐ KẾT QUẢ ỨNG DỤNG......................................................... 46 3.1. Vấn đề bảo mật tài liệu tại trung tâm kỹ thuật tài liệu nghiệp vụ ..........................46 3.2. Mô tả dữ liệu thử nghiệm .......................................................................................47 3.3. Môi trường thử nghiệm và một số giao diện ..........................................................47 3.3.1. Môi trường thử nghiệm ....................................................................................... 47 3.4. Kịch bản thử nghiệm và kết quả .............................................................................48 3.4.1. Tốc độ mã hóa theo số lượng dữ liệu .................................................................. 48 3.4.2. Tốc độ giải mã theo số lượng dữ liệu .................................................................. 49 3.4.3. Tốc độ mã hóa theo các chế độ mã hóa............................................................... 50 3.4.4. Tốc độ mã hóa theo kích thước khóa .................................................................. 51 KẾT LUẬN VÀ HƯỚNG NGHIÊN CỨU................................................................... 52 TÀI LIỆU THAM KHẢO ............................................................................................. 53 PHỤ LỤC ...................................................................................................................... 54 iv v DANH MỤC CÁC KÍ HIỆU, CHỮ VIẾT TẮT STT 1 Đầy đủ Viết tắt AES Ý nghĩa Advanced Encryption Chuẩn mã hóa cao cấp Standard 2 BCNN Bội Chung Nhỏ Nhất CBC Cipher Block Chế độ mã hóa của AES khi mã hóa Chaining sử dụng cả key và kết quả của block trước làm tham số 3 DES Data Encryption Chuẩn mã hóa dữ liệu Standard ECB 4 GCD Electronic Code Chế độ mã hóa của AES trong đó các Book block được mã hóa riêng rẽ Greatest Common Ước chung lớn nhất Divisor 5 MDV Mã Dịch Vòng 6 TDES hoặc Triple DES DES bội ba Đơn vị thứ ba tin cậy 3DES 7 TTP Trusted Third Party 8 UCLN Ước Chung Lớn Nhất v vi DANH MỤC CÁC BẢNG BIỂU Bảng 1. 1. Quan hệ giữa độ dài khoá và thời gian dò khoá ..........................................15 Bảng 2. 1. Các thông số chính của AES........................................................................36 Bảng 3. 1. Bộ dữ liệu thử nghiệm thuật toán AES ........................................................47 Bảng 3. 2. Bảng kết quả đo tốc độ mã hóa theo số lượng dữ liệu (giây) ......................48 Bảng 3. 3. Bảng kết quả đo tốc độ giải mã theo số lượng dữ liệu (giây) ......................49 Bảng 3. 4. Bảng kết quả đo tốc độ mã hóa theo chế độ mã hóa (giây) .........................50 Bảng 3. 5. Bảng kết quả đo tốc độ mã hóa theo kích thước khóa (giây) ......................51 vi vii DANH MỤC CÁC HÌNH VẼ Hình 1. 1. Mã hoá với khoá mã và khoá giải giống nhau ...............................................7 Hình 1. 2. Quy trình mã hóa và giải mã ..........................................................................7 Hình 1. 3. Sơ đồ mã hóa và giải mã ................................................................................8 Hình 1. 4. Sơ đồ mã hóa và giải mã bằng khóa riêng .....................................................9 Hình 1. 5. Sơ đồ mã hóa và giải mã bằng khóa công khai ............................................10 Hình 2. 1. Mô hình hệ thống mã hóa đối xứng ............................................................. 24 Hình 2. 2. Hình vuông vigenère ....................................................................................29 Hình 2. 3. Sơ đồ hệ mã des ............................................................................................ 31 Hình 2. 4. DES bội hai (double des) .............................................................................34 Hình 2. 5. DES bội ba (triple des) dùng 2 khoá ............................................................ 35 Hình 2. 6. Thuật toán mã aes .........................................................................................37 Hình 2. 7. Quá trình biến đổi mảng trạng thái trong thuật toán aes .............................. 37 Hình 2. 8. Ma trận thay thế byte (s-box) .......................................................................39 Hình 2. 9. Thao tác dịch dòng .......................................................................................40 Hình 2. 10. Thuật toán mở rộng khoá của AES ............................................................ 42 Hình 3. 1. Biểu đồ tốc độ mã hóa theo số lượng dữ liệu ...............................................48 Hình 3. 2. Biểu đồ tốc độ tốc độ giải mã theo số lượng dữ liệu....................................49 Hình 3. 3. Biểu đồ tốc độ mã hóa theo chế độ mã hóa ..................................................50 Hình 3. 4. Biểu đồ tốc độ mã hóa theo kích thước khóa ...............................................51 vii 1 LỜI NÓI ĐẦU Mã hóa là công cụ cơ bản của việc đảm bảo an toàn dữ liệu. Thời kỳ sơ khai, con người đã sử dụng nhiều phương pháp để bảo vệ các thông tin bí mật. Ban đầu, mật mã học được sử dụng phổ biến trong quân đội, qua nhiều cuộc chiến tranh, vai trò của mật mã ngày càng quan trọng và mang lại nhiều thành quả không nhỏ, chúng là nền tảng cho mật mã học ngày nay. Ngày nay, các ứng dụng mã hóa và bảo mật thông tin đang được sử dụng ngày càng phổ biến trong các lĩnh vực khác nhau trên thế giới, từ các lĩnh vực an ninh, quân sự, quốc phòng cho đến các lĩnh vực dân sự như thương mại điện tử, ngân hàng… Với sự phát triển ngày càng nhanh chóng của Internet và các ứng dụng giao dịch điện tử trên mạng, nhu cầu bảo vệ thông tin trong các hệ thống và ứng dụng điện tử ngày càng được quan tâm và có ý nghĩa hết sức quan trọng. Cùng với sự phát triển của khoa học máy tính, các nghiên cứu và ứng dụng của các chuẩn mã hóa ngày càng trở nên đa dạng hơn. Hiện nay, có nhiều phương pháp mã hóa, mỗi phương pháp có ưu, nhược điểm riêng. Tùy theo yêu cầu của môi trường ứng dụng mà người ta có thể dùng phương pháp này hay phương pháp kia. Có những môi trường cần phải an toàn tuyệt đối bất kể thời gian và chi phí. Có những môi trường lại cần giải pháp “dung hòa” giữa bảo mật và chi phí. Vấn đề bảo đảm an toàn cho các hệ thống thông tin là một trong những vấn đề quan trọng cần cân nhắc trong suốt quá trình thiết kế, thi công, vận hành và bảo dưỡng hệ thống thông tin. Các hệ thống mã hóa được chia thành hai loại: hệ mã hóa khóa đối xứng (việc giải mã và mã hóa sử dụng chung một khóa) và hệ mã hóa công khai (mã hóa và giải mã dùng khóa khác nhau). Trong phạm vi luận văn của mình, tác giả tập trung vào nghiên cứu hệ mã hóa khoá đối xứng (mã hóa khóa bí mật), tập trung vào các thuật toán mã hóa cổ điển, chuẩn mã hóa dữ liệu DES và chuẩn mã hoá nâng cao AES. Hệ mã hóa công khai có nhược điểm là tốc độ mã hóa và giải mã rất chậm, do vậy chỉ phù hợp sử dụng trong trao đổi khóa, trong khi đó hệ mã hóa đối xứng có tốc độ xử lý nhanh hơn rất nhiều và phù hợp với nhu cầu xử lý số lượng lớn tài liệu. Dựa trên thực tế về yêu cầu mã hóa tại trung tâm kỹ thuật tài liệu nghiệp vụ có đặc điểm đa dạng về thể loại và số lượng. Chính vì vậy tác giả đã lựa chọn nghiên cứu và ứng dụng giải pháp mã hóa đối xứng cho bài toán thực tế nơi tác giả đang công tác. 1 2 CHƯƠNG 1: CÁC KHÁI NIỆM CƠ BẢN VỀ AN TOÀN BẢO MẬT THÔNG TIN Nội dung chính của chương 1 trình bày một số khái niệm cơ bản về vấn đề an toàn và bảo mật thông tin, khái niệm về hệ mật mã và cơ sở toán học về lý thuyết đồng dư. Các yêu cầu chính của một hệ thống mã hóa, khái niệm về thám mã làm cơ sở cho việc nghiên cứu các hệ mã hóa trong chương 2. Các kiến thức này được tham khảo trong các tài liệu [1, 2, 3, 4]. 1.1. Tổng quan về an toàn và bảo mật thông tin 1.1.1. Khái niệm chung Từ xưa đến nay thông tin luôn là yếu tố quan trọng trong các hoạt động của đời sống con người. 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ở lê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 tổng kết vào 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. An toàn thông tin bao gồm các nội dung sau: - Tính bí mật: tính kín đáo riêng tư của thông tin. 2 3 - Tính xác thực của thông tin, bao gồm xác thực đối tác (bài toán nhận danh), xác thực thông tin trao đổi. - Tính trách nhiệm: đảm bảo người gửi thông tin không thể thoái thác trách nhiệm về thông tin mà mình đã gửi. Để đảm bảo an toàn thông tin dữ liệu trên đường truyền tin và trên mạng máy tính có hiệu quả thì điều trước tiên là phải lường trước hoặc dự đoán trước các khả năng không an toàn, khả năng xâm phạm, các sự cố rủi ro có thể xảy ra đối với thông tin dữ liệu được lưu trữ và trao đổi trên đường truyền tin cũng như trên mạng. Xác định càng chính xác các nguy cơ nói trên thì càng quyết định được tốt các giải pháp để giảm thiểu các thiệt hại. Có hai loại hành vi xâm phạm thông tin dữ liệu đó là: vi phạm chủ động và vi phạm thụ động. Vi phạm thụ động chỉ nhằm mục đích cuối cùng là nắm bắt được thông tin (đánh cắp thông tin). Việc làm đó có khi không biết được nội dung cụ thể nhưng có thể dò ra được người gửi, người nhận nhờ thông tin điều khiển giao thức chứa trong phần đầu các gói tin. Người xâm nhập có thể kiểm tra được số lượng, độ dài và tần số trao đổi. Vì vậy vi pham thụ động không làm sai lệch hoặc hủy hoại nội dung thông tin dữ liệu được trao đổi. Vi phạm thụ động thường khó phát hiện nhưng có thể có những biện pháp ngăn chặn hiệu quả. Vi phạm chủ động là dạng vi phạm có thể làm thay đổi nội dung, xóa bỏ, làm trễ, sắp xếp lại thứ tự hoặc làm lặp lại gói tin tại thời điểm đó hoặc sau đó một thời gian. Vi phạm chủ động có thể thêm vào một số thông tin ngoại lai để làm sai lệch nội dung thông tin trao đổi. Vi phạm chủ động dễ phát hiện nhưng để ngăn chặn hiệu quả thì khó khăn hơn nhiều. Một thực tế là không có một biện pháp bảo vệ an toàn thông tin dữ liệu nào là an toàn tuyệt đối. Một hệ thống dù được bảo vệ chắc chắn đến đâu cũng không thể đảm bảo là an toàn tuyệt đối. 1.1.2. Mục tiêu của an toàn bảo mật thông tin Bên cạnh việc làm thế nào để che dấu nội dung thông tin thì mã hoá phải đảm bảo các mục tiêu sau: 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 nếu như có ai đó cố tình muốn có được nội dung của dữ liệu 3 4 gốc ban đầu. Chỉ những người được phép mới có khả năng đọc được nội dung thông tin ban đầu. 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 giả mạo không thể có khả năng để giả dạng một người khác hay nói cách khác không thể mạo danh để gửi dữ liệ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): Giúp cho người nhận dữ liệu kiểm tra được rằng dữ liệu không bị thay đổi trong quá trình truyền đi. Người giả mạo không thể có khả năng thay thế dữ liệu ban đầu bằng dữ liệu giả mạo. 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 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 In Depth): Nguyên tắc này nhắc nhở chúng ta : Không nên dựa vào một chế độ an toàn nào dù cho chúng rất mạnh, mà nên tạo nhiều cơ chế an toàn để tương hỗ lẫn nhau. 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 của mình bằng con đường duy nhất chính là “cửa khẩu” này. => phải 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) : Chiến lược này dựa trên nguyên tắc: “ Một dây xích chỉ chắc tại mắt duy nhất, một bức tường chỉ cứng tại điểm yếu nhất” Người tấn công thường tìm những chỗ yếu nhất của hệ thống để tấn công, do đó ta cần phải gia cố các yếu điểm của hệ thống. Thông thường chúng ta chỉ quan tâm đến 4 5 người tấn công trên mạng hơn là người 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ó một người nào đó 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. 1.2. Các kiến thức cơ bản về hệ mật mã 1.2.1. Khái niệm chung 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. Để bảo vệ thông tin bằng mật mã người ta thường tiếp cận theo hai hướng: - Theo đường truyền (Link_Oriented_Security). - Từ nút đến nút (End_to_End). Theo cách thứ nhất thông tin được mã hoá để bảo vệ trên đường truyền giữa hai nút mà không quan tâm đến nguồn và đích của thông tin đó. Ở đây ta lưu ý rằng thông tin chỉ được bảo vệ trên đường truyền, tức là ở mỗi nút đều có quá trình giải mã sau đó mã hoá để truyền đi tiếp, do đó các nút cần phải được bảo vệ tốt. 5 6 Ngược lại theo cách thứ hai thông tin trên mạng được bảo vệ trên toàn đường truyền từ nguồn đến đích. Thông tin sẽ được mã hoá ngay sau khi mới tạo ra và chỉ được giải mã khi về đến đích. Cách này mắc phải nhược điểm là chỉ có dữ liệu của người ung thì mới có thể mã hóa được còn dữ liệu điều khiển thì giữ nguyên để có thể xử lý tại các nút. Các hệ mật mã phải thực hiện được các nhiệm vụ sau đây: - Hệ mật mã phải che dấu được 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 mà “kẻ địch” 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. 1.2.2. 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 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. 6 7 Hình 1. 1. Mã hoá với khoá mã và khoá giải giống nhau 1.2.3. Quy trình mã hóa và giải mã Mã hóa dữ liệu là sử dụng một phương pháp biến đổi dữ liệu từ dạng bình thường sang một dạng khác mà một người không có thẩm quyền, không có phương tiện giải mã thì không thể đọc hiểu được. Giải mã dữ liệu là quá trình ngược lại, là sử dụng một phương pháp biến đổi dữ liệu đã được mã hóa về dạng thông tin ban đầu. Hình 1. 2. Quy trình mã hóa và giải mã Mã hóa: Quá trình chuyển đổi dữ liệu gốc thành dữ liệu được mã hóa sao cho người khác không thể đọc hiểu được. Giải mã: Là quá trình ngược lại của mã hóa, biến đổi dữ liệu đã được mã hóa thành dạng gốc ban đầu. Bản mã: Tệp dữ liệu đã được mã hóa. Một hệ thống mã hóa bao gồm các thành phần sau: - PlainText : Bản tin sẽ được mã hóa hay bản tin gốc. - CipherText : Bản tin đã được mã hóa hay bản tin mã. 7 8 Thuật toán mã hóa và giải mã : - Encryption : quá trình chuyển bản tin gốc sang dạng mật mã. - Decryption : quá trình giải bản tin dạng mật mã trở về bản tin gốc. - Cách chọn khóa : giá trị toán học dùng để thực hiện mã hóa. Nhiều phương pháp mã hóa đã được đưa ra dựa trên những giải thuật toán phức tạp, để tạo khó khăn cho những ai đó muốn phá mật mã mà không cần được ai trao chìa khóa. Nói tạo khó khăn là vì trên lý thuyết ta không thể nói việc tìm chìa khóa là vô phương. Nhưng nếu trở ngại đủ lớn để làm nản lòng người muốn phá khóa thì đã là một mức độ an toàn tốt. Quá trình mã hóa và giải mã có thể được minh họa theo sơ đồ sau : Bản tin gốc Quá trình mã hóa Bản tin mã ``` ``` ``` ------------------------------------------------------------- Quá trình truyền dữ liệu ``` ``` ``` Bản tin mã Quá trình giải mã ------------------------------------------------------------- Bản tin gốc Hình 1. 3. Sơ đồ mã hóa và giải mã 1.2.4. Phân loại hệ thống mã hóa Để phân loại hệ thống mã hóa, người ta phân loại dựa trên khóa như sau 1.2.4.1. Mã hóa bằng khóa bí mật Các hệ thống mã hóa với khóa bí mật còn được gọi là mã hóa bằng khóa riêng, mã hóa đối xứng sử dụng duy nhất một khóa cho cả quá trình mã hóa lẫn quá trình giải mã. Có hai loại thuật toán mã hóa bí mật : 8 9 - Stream Algorithms/Stream Ciphers : các thuật toán hoạt động trên văn bản bình thường theo từng bit một. - Block Algorithms/Block Ciphers : các thuật toán hoạt động trên văn bản theo các khối (32 bit, 64 bit, 128 bit,...). Một số thuật toán đang được sử dụng rộng rãi hiện nay : DES, Triple-DES, RC5, RC6, Rijndael... Quá trình mã hóa và giải mã bằng cách sử dụng khóa bí mật được minh họa như hình sau : Bản tin gốc Quá trình mã hóa Bản tin mã ``` ``` ``` ------------------------------------------------------------- Khóa bí mật(chỉ Có người mã hóa và người giải mã biết) Quá trình truyền dữ liệu ``` ``` Bản``` tin mã Quá trình giải mã ------------------------------------------------------------- Bản tin gốc Hình 1. 4. Sơ đồ mã hóa và giải mã bằng khóa riêng 1.2.4.2. Mã hóa bằng khóa công khai Mã hóa bằng khóa công khai còn gọi là mã hóa bất đối xứng hay mã hóa bằng khóa chung. Sự khác biệt cơ bản giữa một hệ thống mã hóa bằng khóa bí mật với hệ thống mã hóa bằng khóa công khai là hệ thống mã hóa khóa công khai dùng hai khóa khác nhau để mã hóa và giải mã. Do đó, một bộ mã công khai sẽ bao gồm hai khóa: một khóa dành cho người mã hóa thường được công khai, và khóa còn lại dùng cho người giải mã thường được giữ bí mật. Như vậy, hệ thống mã hóa với khóa công khai cần có một quá 9 10 trình sinh ra hai khóa để mã hóa và giải mã thông điệp. Các khóa này được xem như là một đôi : Public-key (khóa công khai): được phép công khai mà không phải chịu rủi ro về an toàn. Khóa này được dùng để mã hóa thông điệp. Private-key (khóa bí mật): không được để lộ. Mỗi thông điệp được mã hóa bằng public-key chỉ có thể giải mã bằng một khóa mật thích hợp. Một số thuật toán mã hóa công khai phổ biến : RSA, Diffie-Hellman Key-Exchange Algorithm (dùng cho việc phân phối và trao đổi khóa). Quá trình mã hóa và giải mã bằng cách sử dụng khóa công khai được minh họa như hình sau : Bản tin gốc Quá trình mã hóa Bản tin mã ``` ``` ``` ------------------------------------------------------------- Khóa công khai, chỉ dùng để mã hóa (có thể cho mọi người biết) Quá trình truyền dữ liệu ``` ``` ``` Bản tin mã Khóa mật, chỉ dùng để giải mã (cần được giữ bí mật) Quá trình giải mã ------------------------------------------------------------- Bản tin gốc Hình 1. 5. Sơ đồ mã hóa và giải mã bằng khóa công khai 10 11 Có thể thấy rằng các phương pháp có những ưu khuyết điểm chính như sau: a) Phương pháp mã hóa khóa bí mật Ưu điểm Khuyết điểm + Có thể được thiết kế để đạt tốc độ cao. + Trong quá trình truyền thông giữa hai Các thiết bị phần cứng hỗ trợ có thể đạt người, khóa phải được giữ bí mật cho cả tốc độ hàng trăm megabytes mỗi giây hai phía. trong khi việc thực thi bằng phần mềm + Trong một hệ thống mạng lớn, số chỉ đạt được khoảng vài megabytes mỗi lượng khóa cần được quản lý rất nhiều. giây. Do vậy việc quản lý khóa một cách hiệu + Khóa dùng cho mã hóa khóa đối xứng quả đòi hỏi sử dụng một bộ phận tin cậy tương đối ngắn. thứ ba (TTP :Trusted Third Party). + Được xem như thành phần cơ bản có + Khóa bí mật cần được thay đổi thường thể triển khai để xây dựng các kỹ thuật xuyên. mã hóa khác bao gồm khởi tạo các số + Kỹ thuật chữ ký số được phát triển từ ngẫu nhiên, các hàm băm, các kỹ thuật cơ chế mã hóa khóa đối xứng đòi hỏi sử tính toán. dụng các khóa lớn cho các hàm xác nhận + Có thể được kết hợp để tạo ra các thuật công khai hoặc là sử dụng một TTP. toán mã hóa mạnh hơn. b) Phương pháp mã hóa khóa công khai Ưu điểm Khuyết điểm + Chỉ có khóa riêng thì cần được giữ bí + Tốc độ cho các phương thức mã hóa mật (tuy nhiên việc xác nhận của các công khai thì chậm hơn rất nhiều so với khóa công khai cần được đảm bảo). các mô hình khóa đối xứng. + Việc quản trị các khóa trên mạng đòi + Kích thước khóa lớn hơn rất nhiều so hỏi sự tồn tại duy nhất một thành phần với cơ chế mã hóa khóa đối xứng. tin cậy TTP. + Không có mô hình khóa công khai nào + Cặp khóa riêng và công khai có thể được chứng minh là an toàn. Phần lớn được sử dụng trong thời gian dài. các mô hình mã hóa hiệu quả ngày nay có sự an toàn dựa trên các giả thuyết của 11 12 + Nhiều mô hình khóa công cộng được một tập nhỏ của các vấn đề lý thuyết số phát triển hình thành nên các kỹ thuật học. chữ ký số hiệu quả. Khóa được sử dụng + Hệ thống mã hóa công khai không có cho hàm kiểu công khai thì nhỏ hơn rất bề dày lâu đời như hệ thống mã hóa khóa nhiều so với dùng khóa đối xứng. đối xứng, nó chỉ được tìm ra vào giữa + Trong một mạng lớn, số lượng các khoảng những năm 1970. khóa cần thiết được quan tâm ít hơn so với việc dùng khóa đối xứng. 1.2.5. Các đặc trưng của hệ thống mã hoá Một hệ thống mã hóa bất kỳ được đặc trưng bởi 3 tiêu chí sau đây: - Phương pháp mã (operation): có hai phương pháp mật mã bao gồm thay thế (substitution) và chuyển vị (transposition). Trong phương pháp mã thay thế, các đơn vị thông tin (bit, ký tự, byte hoặc khối) trong thông tin gốc được thay thế bằng các đơn vị thông tin khác theo một quan hệ nào đó. Trong phương pháp mã chuyển vị, các đơn vị thông tin trong thông gốc được đổi chỗ cho nhau để tạo thành thông tin mã hóa. Các hệ thống mã hoá hiện đại thường kết hợp cả hai phương pháp thay thế và chuyển vị. - Số khóa sử dụng (number of keys): nếu phía mã hóa (phía gửi) và phía giải mã (phía nhận) sử dụng chung một khóa, ta có hệ thống mã dùng khoá đối xứng (symmetric key) gọi tắt là mã đối xứng hay còn có các tên gọi khác như mã một khóa (single-key), mã khóa bí mật (secret key) hoặc mã quy ước (conventional cryptosystem). Nếu phía mã hóa và phía giải mã dùng 2 khóa khác nhau, hệ thống này được gọi là mã bất đối xứng (asymmetric key), mã hai khóa (two key) hoặc mã khóa công khai (public key). - Cách xử lý thông tin gốc (mode of cipher): thông tin gốc có thể được xử lý liên tục theo từng phần tử , khi đó ta có hệ thống mã dòng (stream cipher). Ngược lại, nếu thông tin gốc được xử lý theo từng khối, ta có hệ thống mã khối (block cipher). Các hệ thống mã dòng thường phức tạp và không được phổ biến công khai, do đó chỉ được dùng trong một số ứng dụng nhất định (ví dụ trong thông tin di động GSM). Các thuật toán mật mã được giới thiệu trong tài liệu này chỉ tập trung vào cơ chế mã khối. 12
- Xem thêm -