Đăng ký Đăng nhập
Trang chủ Ứng dụng maple trong an toàn thông tin với mật mã khóa công khai...

Tài liệu Ứng dụng maple trong an toàn thông tin với mật mã khóa công khai

.PDF
11
159
58

Mô tả:

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG --------------------------------------- Lê Thị Nguyệt ỨNG DỤNG MAPLE TRONG AN TOÀN THÔNG TIN VỚI MẬT MÃ KHÓA CÔNG KHAI Chuyên ngành: Kỹ thuật điện tử Mã số: 60.52.70 TÓM TẮT LUẬN VĂN THẠC SĨ HÀ NỘI – NĂM 2013 Luận văn được hoàn thành tại: HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG Người hướng dẫn khoa học: GS.TS Nguyễn Bình Phản biện 1: …………………………………………………………………………… Phản biện 2: ………………………………………………………………………….. Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện Công nghệ Bưu chính Viễn thông Vào lúc: ....... giờ ....... ngày ....... tháng ....... .. năm ............... Có thể tìm hiểu luận văn tại: - Thư viện của Học viện Công nghệ Bưu chính Viễn thông 1 BẢNG TÓM TẮT LUẬN VĂN ỨNG DỤNG MAPLE TRONG AN TOÀN THÔNG TIN VỚI MẬT MÃ KHÓA CÔNG KHAI MỞ ĐẦU Các hệ mã công khai như ELGAMAL, ELIPTIC thực hiện tính toán với các số nguyên lớn hàng trăm chữ số. Độ phức tạp trong việc giải mã các hệ mã này tỉ lệ thuận với độ lớn của các số nguyên tham gia vào việc tạo khóa mã hóa và khóa công khai. Do đó để hệ mã an toàn, cần tăng kích thước của các số nguyên. Mặt khác, khi kích thước của các số nguyên cần xử lý lớn thì thời gian xử lý của chương trình mã hóa cũng tăng lên. Thông tin cần mã hóa ngày càng đa dạng và có khối lượng lớn, đòi hỏi hệ mã giảm thiểu thời gian xử lý. Các công cụ và giải thuật nhằm bẻ khóa các hệ mật mã được cải tiến đòi hỏi hệ mã cần được nâng cấp tính bảo mật. Tuy nhiên, việc nghiên cứu và triển khai các nâng cấp trong việc tối ưu hóa về mặt thuật toán bằng ngôn ngữ lập trình mạnh của các hệ mã còn hạn chế. Để hỗ trợ giải quyết các vấn đề trên, đề tài này tập trung vào việc ứng dụng một số thuật toán tối ưu trên ngôn ngữ lập trình bậc cao nhằm tăng hiệu quả các phép tính toán thực hiện với số nguyên lớn. Từ tính cấp thiết của vấn đề tối ưu hóa các hệ mã công khai, đồng thời được sự hướng dẫn và gợi ý của GS.TS Nguyễn Bình tôi đã chọn đề tài cho luận văn tốt nghiệp Cao học ngành kỹ thuật điện tử là: “Ứng dụng Maple trong an toàn thông tin với mật mã khóa công khai”. Cấu trúc đề tài gồm: Phần mở đầu; phần nội dung; phần kết luận; tài liệu tham khảo; Nội dung chính của đề tài: - Chương 1: Tổng quan về hệ mật khóa công khai. - Chương 2: Ngôn ngữ Maple và định hướng ứng dụng trong an toàn thông tin. - Chương 3: Ứng dụng Maple trong mật mã khóa công khai. Trong suốt quá trình nghiên cứu, mặc dù đã hết sức cố gắng nhưng chắc chắn đề tài không tránh khỏi những thiếu sót, rất mong quý thầy cô góp ý để đề tài được hoàn chỉnh hơn. 2 Chương 1 TỔNG QUAN VỀ HỆ MẬT KHÓA CÔNG KHAI 1.1. Một số khái niệm cơ bản về mã hóa 1.1.1. Khái niệm chung về mật mã Hệ mật mã hiện đại thường gồm 5 thành phần (P, C, K, E, D) trong đó: P (Plaintext) tập hợp hữu hạn các bản rõ có thể (không gian các bản rõ). C (Ciphertext) tập hợp hữu hạn các bản mã có thể (không gian các bản mã). K (Key) tập hợp các bản khoá có thể. E (Encrytion) tập hợp các qui tắc mã hoá có thể. D (Decrytion) tập hợp các qui tắc giải mã có thể. Nội dung cần mã hóa thể hiện dưới dạng bản rõ (P). Người gửi sử dụng qui tắc (E) và khóa (K) mã hoá bản rõ (P), kết quả thu được gọi là bản mã E k (P) = C. Bản mã này được gửi đi trên một đường truyền tới người nhận, sau khi nhận được bản mã (C) người nhận sử dụng qui tắc (D) và khóa (K) giải mã nó để hiểu được nội dung thông điệp gốc D k (C) = P. 1.1.2. Những yêu cầu đối với hệ mật mã hiện đại Hệ mật mã hiện đại cần đảm bảo được hai yêu cầu sau: - Đảm bảo tính bảo mật. - Đảm bảo tính xác thực. 1.1.3 Các phương pháp mã hóa 1.1.3.1 Hệ thống mã hóa đối xứng . 1.1.3.2 Hệ thống mã hóa bất đối xứng Hệ thống mã hóa bất đối xứng hay còn gọi là mã hóa với khóa công khai đã được Martin Hellman, Ralph Merkle và Whitfield Diffie thuộc Đại học Stanford giới thiệu vào năm 1976. 3 Hệ mã này được áp dụng các kết quả của toán học đã khắc phục được các hạn chế của các phương pháp mã hóa khóa đối xứng. Phương pháp mã hóa bất đối xứng sử dụng hai loại khóa trong cùng một cặp khóa: Khóa công khai (public key) được công bố rộng rãi và sử dụng để mã hóa các thông điệp, khóa riêng (private key) chỉ do chủ thể nắm giữ và được sử dụng để giải mã thông điệp đã được mã hóa bằng khóa công khai. B n mã B n rõ Mã hóa Gi i mã Khóa mã Khóa gi i B n rõ Hình 1.2 Sơ đồ hoạt động của mã hóa khóa bất đối xứng Khi thực hiện mã hóa bất đối xứng, người A sử dụng khóa công khai do người B tạo để mã hóa thông điệp và gửi cho người B. Do biết được khóa riêng nên B mới có thể giải mã được thông điệp mà A đã mã hóa. Trong trường hợp bản mã bị một người thứ ba có được, nếu chỉ kết hợp với thông tin về khóa công khai đã được công bố, cũng rất khó có khả năng giải mã được bản mã này trong khoảng thời gian chấp nhận được do không nắm được khóa riêng của B. Khóa công khai và khóa riêng có quan hệ toán học với nhau theo nghĩa từ khóa riêng có thể tính toán để suy ra được khóa công khai, nhưng để từ khóa công khai suy ra khóa riêng sẽ rất phức tạp vì số lượng phép tính toán là rất lớn dẫn đến thời gian thực hiện để giải mã là không khả thi khi chiều dài của khóa đủ lớn. Đây cũng là mấu chốt của vấn đề bảo mật và tấn công trong các hệ mã khóa công khai. Đề tài này sẽ đề cập đến vấn đề an toàn của hệ mã công khai. Nghiên cứu đưa ra các giải pháp hỗ trợ làm tăng tính an toàn của các hệ mã này bằng cách cố gắng áp dụng các thuật toán xử lý nhanh với số lớn. Từ đó có thể tăng chiều dài của khóa mà vẫn đảm bảo yếu tố thời gian mã hóa và giải mã chấp nhận được. 1.2. Cơ sở toán học của mật mã 1.2.1. Hàm phi Euler 1.2.2. Lý thuyết đồng dư thức 1.2.3. Không gian Z n 4 1.2.4 Nhóm nhân Z n * 1.2.5 Thặng dư 1.2.6 Căn bậc hai Modulo 1.2.7 Các thuật toán trong Z n 1.2.8 Thuật toán kiểm tra tính nguyên tố 1.3 Giới thiệu về hệ mật với khóa công khai 1.3.1 Hệ mật khóa công khai RSA 1.3.2. Hệ mật mã khóa công khai ELGAMAL 1.3.2.1. Thuật toán tạo khoá Tóm lược: Mỗi đầu liên lạc tạo một khoá công khai và một khoá bí mật tương ứng : (1) Tạo 1 số nguyên tố p lớn và một phần tử sinh  của nhóm nhân Z*p của các số nguyên mod p . (2) Chọn một số nguyên ngẫu nhiên a, 1  a  p  2 và tính  a mod p .   (3) Khoá công khai là bộ 3 số p ,  ,  a , khoá bí mật là a. 1.3.2.2. Thuật Toán Mã Hoá Khóa Công Khai ElGamal Tóm lược: B mã hoá một thông tin báo m để gửi cho A bản mã cần gửi. Mã hoá: B phải thực hiện các bước sau:   (1) Nhận khoá công khai p ,  ,  a của A. (2) Biểu thị bản tin dưới dạng một số nguyên m trong dải 0 ,1 ,  , p  1. (3) Chọn số nguyên ngẫu nhiên k, 1  k  p  2 .   (4) Tính    k mod p và   m  a k mod p . (5) Gửi bản mã c   ,   cho A. Giải mã: Để khôi phục bản rõ m từ c, A phải thực hiện các bước sau: (1) Sử dụng khoá riêng a để tính  p 1 a mod p (Chú ý  p 1 a    a    ak ).   (2) Khôi phục bản rõ bằng cách tính   a  mod p . 1.3.3. Hệ mật mã khóa công khai trên đường cong Elliptic 5 Chương 2 NGÔN NGỮ MAPLE VÀ ĐỊNH HƯỚNG ỨNG DỤNG TRONG AN TOÀN THÔNG TIN 2.1. Giới thiệu phần mềm Maple 2.1.1. Giới thiệu chung Maple ra đời vào khoảng năm 1980, đến nay đã phát triển đến phiên bản 15.x và vẫn không ngừng phát triển. Maple có cách cài đặt đơn giản, chạy trên hầu hết các hệ điều hành, có cấu trúc linh hoạt để sử dụng tối ưu cấu hình máy và đặc biệt có trình trợ giúp rất dễ sử dụng. Maple có những đặc điểm nổi bật sau: - Tính toán số, tính toán ký hiệu nhanh và dễ hình dung, người sử dụng có thể vào biểu thức toán học theo ký hiệu truyền thống. Có thể tạo ra giao diện người sử dụng; - Dễ sử dụng, có thể tìm phần trợ giúp Help ngay trong chương trình hoặc trên Internet; - Có khả năng mở rộng: dễ dàng tích hợp chức năng xác định mới để tính toán những ứng dụng đặc biệt; - Được hầu hết các hệ điều hành hỗ trợ ( MS Windows, Linux, Unix, Mac OS); - Ngôn ngữ lập trình mạnh, dễ gỡ rối. Maple tích hợp ngôn ngữ lập trình dạng mệnh lệnh tương tự với Pascal, nó cho phép các biến đổi trong phạm vi mềm dẻo. Maple cũng có giao diện cho các ngôn ngữ khác như C, C#, Fortran, Java, Matlap, Visual Basic. Nó cũng có giao diện với Excel; - Có thể mở rộng thư viện các hàm toán học và các gói đặc biệt; Có hai giao diện tương tác là dòng lệnh và môi trường đồ thị. Những phần chính của Maple: Maple gồm có 3 phần, đó là giao diện, nhân (bộ phận tính toán cơ bản) và thư viện. Giao diện và nhân lập nên một phần nhỏ của hệ thống, chúng được viết bằng ngôn ngữ lập trình C và được tải đến khi phiên Maple bắt đầu. Giao diện nhận đầu vào của các biểu thức toán học, hiển thị đầu ra, vẽ đồ thị của các hàm số và hỗ trợ người sử dụng trong những liện lạc khác với hệ thống. Môi trường giao diện là các trang làm việc Maple. Trang làm việc Maple là một tài liệu mềm dẻo để khai thác các ý tưởng toán học và để tạo ra các báo cáo kỹ thuật phức tạp. Có thể tiếp cận đến sức mạnh của bộ máy tính toán Maple thông qua nhiều giao diện người sử dụng như: trang làm việc chuẩn, phiên bản dòng lệnh, trang làm việc cổ điển, và các ứng dụng Maple khách 6 thể hóa. Hệ thống Maple đầy đủ luôn sẵn sàng thông qua tất cả các giao diện này. Các giao diện chuẩn và giao diện tính toán được viết bằng Java, còn giao diện cổ điển được viết bằng C Nhân giải thích đầu vào của người sử dụng, thực hiện các phép toán đại số và giải quyết vấn đề quản lý lưu trữ. Thư viện gồm hai phần là thư viện cơ bản và tuyển tập các gói. Thư viện cơ bản gồm nhiều hàm mà ở đó có hầu hết các kiến thức toán học phổ biến của Maple và chúng được mã hóa bằng ngôn ngữ Maple. Mỗi gói chứa những lệnh đặc biệt để thực hiện những nhiệm vụ riêng khác nhau, từ những tính toán của sinh viên đến lý thuyết tương đối tổng quát. Hầu hết các chức năng của Maple được thực hiện bởi các thư viện số NAG, các thư viện ATLAS hoặc các thư viện GMP. Hầu hết các thư viện được viết bằng ngôn ngữ Maple và trong trường hợp này, có thể xem mã nguồn mở của chúng. 2.1.2. Những hiểu biết trước khi vận dụng Mapple 2.2. Các ký hiệu và phép toán trên Maple 2.2.1. Các ký hiệu phép toán số học, logic, quan hệ 2.2.2. Các hằng số, hàm số 2.2.3. Các thủ tục và Module 2.3. Các đầu vào và đầu ra 2.3.1. Đọc tệp 2.3.2. Ghi dữ liệu lên tệp 2.3.3. Xuất các Worksheets 2.4. Những nội dung Maple dùng nhiều trong mật mã 2.4.1. Các cấu trúc đại số 2.4.2. Các gói thống kê Chương 3 ỨNG DỤNG MAPLE TRONG MẬT MÃ KHÓA CÔNG KHAI Trong chương 1, phần 1.3 ta đã nói một cách xúc tích nhất về mặt lý thuyết của hệ mật Elgamal cũng như hệ mật trên đường cong Elliptic, đã đưa ra các bước của thuật toán tạo khóa, mã hóa và giải mã. Sang đến chương 2 với cách trình bày ngắn gọn nhất về phần mềm Maple cũng đã đưa ra những hàm hay sử dụng của ngôn ngữ Maple về mật mã và toán 7 học. Trong chương 3, với cơ sở lý thuyết của chương 1 và chương 2 sẽ thiết lập các thuật toán đó trong ngôn ngữ Maple với hai hệ là hệ ELGAMAL và hệ mật trên đường công ELLIPTIC. 3.1. Sử dụng hệ mật ELGAMAL 3.1.1. Thuật toán tạo khóa * Chương trình tìm số nguyên tố * Chương trình tìm phần tử sinh * Chương trình tìm số mũ bí mật a * Chương trình tìm khóa công khai 3.1.2. Thuật toán mã hóa 3.1.3. Thuật toán giải mã 3.2. Sử dụng hệ mật trên đường cong Elliptic Định nghĩa: cho p > 3 là số nguyên tố. Đường cong elliptic E (Z p ): y2 = x3 + ax +b trên Z p là tập các nghiêm (x,y) ϵ Z p xZ p của đồng dư thức y2 ≡ x3+ax+b (mod p). Trong đó: a,b ϵ Z p là các hằng số thỏa mãn 4a3 + 27b mod p cùng với điểm đặc biệt O được gọi là điểm vô hạn. Các điểm trên đường cong elliptic có thể trở thành nhóm Abel với việc xác định phép toán thích hợp trên các điểm của nó. Ta xét trường hợp đường cong elliptic E được xác định trên Z p .   Giả sử P  x1 , y1 , Q  x 2 , y 2  là các điểm trong nhóm E p a, b  , O là điểm vô cực. Các quy tắc đối với phép cộng trên nhóm con E p a , b  như sau: (1) P + O = O + P = P.       (2) Nếu x 2  x1 và y 2   y1 tức là P  x1 , y1 và Q  x 2 , y 2  x1 , y1  P thì P + Q = 0. (3)  x 3  2  x1  x 2 mod p   y 3   x1  x 3  y1 mod p Trong đó:  Nếu Q   P thì tổng P  Q  x 3 , y 3 được cho bởi: 8  y 2  y1  x  x    22 1  3 x1  a  2 y1 khi P  Q khi P  Q * Chương trình thực hiện phép cộng điểm * Chương trình thực hiện tính 2*P: * Chương trình thực hiện tính k*P: * Chương trình liệt kê các điểm của đường cong elliptic * Chương trình tín bậc của một điểm * Sơ đồ trao đổi khóa KẾT LUẬN Các kết quả đạt được Đề tài bước đầu đưa ra giải pháp để xử lý các phép toán số học với số lớn trong các hệ mã công khai dựa trên cơ sở toán học và tính toán độ an toàn của các hệ mã công khai. Các kết quả nghiên cứu và ứng dụng bước đầu đã thực hiện được mục đích của đề tài. Bằng việc tối ưu hóa các phép xử lý tính toán phức tạp trong hệ mã công khai và minh chứng trong hệ mã cụ thể như hệ Elgamal và hệ mật trên đường cong Elliptic. Chương trình hoàn thiện cần có sự đầu tư nhiều hơn về mặt thời gian và công sức. Đề tài có thể tiếp tục phát triển để đem lại ứng dụng đáp ứng được yêu cầu thực tế. Hướng phát triển đề tài Các kết quả của đề tài có thể được áp dụng trong nhiều hệ mã công khai khác nhau và tiếp tục được cải tiến để có được tốc độ thực thi tốt hơn. Các kết quả có thể được áp dụng trên nhiều hệ thống bảo mật, thực hiện trong các giao dịch trên mạng, thực hiện tạo và xác thực chữ ký điện tử bằng ngôn ngữ lập trình mạnh. Tác giả mong muốn có thể tiếp tục phát triển để đưa các kết quả đã nghiên cứu vào ứng dụng trong thực tế. 9
- Xem thêm -

Tài liệu liên quan