Tìm hiểu các thuật toán mã hóa thông tin

49 34 0
Tìm hiểu các thuật toán mã hóa thông tin

Đ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

TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN o0o ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC NGÀNH: CÔNG NGHỆ THÔNG TIN TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN Giáo viên hướng dẫn : ThS Trần Thị Kim Oanh Sinh viên thực hiên : Nguyễn Văn Thắng Lớp : 48K – CNTT MSSV : 0751070348 NGHỆ AN – 12/2011 TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN LỜI CẢM ƠN Em xin gửi lời cảm ơn chân thành tới quý thầy cô giáo khoa Công Nghệ Thông Tin, trường Đại Học Vinh nói chung thầy giáo mơn Các Hệ Thống Thơng Tin nói riêng, giúp đỡ, tạo điều kiện cho em suốt trình làm đồ án Đặc biệt em xin chân thành cảm ơn cô giáo ThS Trần Thị Kim Oanh, người giúp đỡ, bảo, hướng dẫn tận tình cho em trình làm đồ án Trong thời gian làm việc với cô, em học hỏi nhiều kiến thức bổ ích phương pháp mã hóa tầm quan trọng mã hóa liệu thời đại ngày mà học tinh thần làm việc, thái độ nghiên cứu khoa học nghiêm túc cô Xin gửi lời cảm ơn chân thành đến gia đình, cha mẹ bạn bè nguồn động viên to lớn, giúp đỡ vượt qua khó khăn suốt q trình làm việc Mặc dù em cố gắng hoàn thành đề tài với tất nổ lực thân chắn khơng tránh khỏi thiếu sót Em kính mong nhận cảm thơng nhận đóng góp q thầy bạn Một lần nữa, em xin chân thành cảm ơn! Ngày 05 tháng 12 năm 2011 Sinh viên thực Nguyễn Văn Thắng TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN MỤC LỤC DANH MỤC VIẾT TẮT, THUẬT NGỮ DANH MỤC HÌNH VẼ MỞ ĐẦU - CHƯƠNG TỔNG QUAN VỀ HỆ MẬT MÃ - - 1.1 Khái niệm mã hóa thơng tin - 1.1.1 Khái niệm - 1.1.2 Vai trị mã hóa - 1.1.3 Các thành phần hệ mã hóa - 1.2 Tiêu chuẩn để đánh giá hệ mã hóa - 1.2.1 Độ an tồn thuật tốn - 1.2.2 Tốc độ mã hóa giải mã - 1.2.3 Phân phối khóa - 1.3 Khóa - 1.3.1 Khái niệm - 1.3.2 Ví dụ - 1.4 Phân loại thuật tốn mã hóa - 1.4.1 Phân loại theo phương pháp - 1.4.2 Phân loại theo số lượng khóa - CHƯƠNG MỘT SỐ PHƯƠNG PHÁP MÃ HÓA CỔ ĐIỂN - 2.1 Hệ mã hóa thay - 2.1.1 Hệ mã hóa CEASAR - 2.1.2 Hệ mã hóa VIGENERE - 2.2 Hệ mã hóa hốn vị - 11 2.2.1 Đảo ngược toàn rõ - 11 2.2.2 Mã hóa theo mẫu hình học - 11 2.2.3 Đổi chỗ cột - 11 2.2.4 Hoán vị ký tự rõ theo chu kì cố định - 12 CHƯƠNG MỘT SỐ THUẬT TOÁN MÃ HÓA HIỆN ĐẠI - 14 - 3.1 Thuật tốn mã hóa DES (Data Encryption Standard) - 14 3.1.1 Lịch sử đời - 14 3.1.2 Mô tả thuật toán DES - 14 3.1.3 Giải mã DES - 24 3.1.4 Độ an tồn thuật tốn - 24 3.2 Thuật tốn mã hóa RSA (Rivest, Shamir, Adleman) - 25 2.2.1 Khái quát RSA - 25 3.2.2 Mơ tả thuật tốn - 25 3.2.3 Một số phương pháp công - 29 3.2.4 Đánh giá thuật toán - 31 3.3 Thuật tốn mã hóa MD5(Message-Digest algorithm 5) - 31 3.3.1 Hàm băm MD5 - 31 3.3.2 Thuật toán MD5 - 34 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN - 43 - Kết đạt - 43 Hướng phát triển - 43 Kết luận - 43 TÀI LIỆU THAM KHẢO - 44 - TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN DANH MỤC VIẾT TẮT, THUẬT NGỮ STT Từ viết tắt DES AES RC CATS MD SHA FIPS 10 RSA MIT NSA Giải nghĩa Data Encryption Standard Advanced Encryption Standard Rivest Cipher Carlisle Adams, and Stafford Tavares Message Digest Secure Hash Alorithm Federal Information Processing Standard (tiêu chuẩn xử lý thông tin liên bang) Rivest, Shamir, Adleman Học viện công nghệ Massachusetts Cơ quan Bảo mật quốc gia Hoa Kỳ TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN DANH MỤC HÌNH VẼ Hình 1.1: Mơ hình mã hóa - Hình 1.2: Mơ hình mã hóa khóa bí mật - Hình 1.3: Mơ hình mã hóa khóa cơng khai - Hình 2.1: Hình vng Vigenere - 10 Hình 3.1: Sơ đồ tổng qt mã hóa DES - 15 Hình 3.2: Sơ đồ tạo khóa - 16 Hình 3.3: Biểu diễn dãy 64 bit x chia thành thành phần L0,R0 - 18 Hình 3.4: Sơ đồ chi tiết vịng - 18 Hình 3.5: Sơ đồ hoạt động hàm f - 19 Hình 3.6: Hốn vị mở rộng - 20 Hình 3.7: Sơ đồ thuật tốn RSA - 27 Hình 3.8: Mơ hình vịng - 33 Hình 3.9: Sơ đồ vịng lặp MD5 - 35 Hình 3.10: Sơ đồ khối tổng quát - 39 Hình 3.11: Sơ đồ xử lý 512 bit - 41 - Tìm hiểu số phương pháp mã hóa thơng tin MỞ ĐẦU Lí chọn đề tài: Hiện nay, nước ta giai đoạn tiến hành cơng nghiệp hóa, đại hóa đất nước Tin học xem ngành mũi nhọn Tin học đóng góp nhiều cho xã hội khía cạnh sống Mã hóa thơng tin ngành quan trọng có nhiều ứng dụng đời sống xã hội Ngày nay, ứng dụng mã hóa bảo mật thơng tin sử dụng ngày phổ biến lĩnh vực khác giới, từ lĩnh vực an ninh, quân sự, quốc phòng, … lĩnh vực dân thương mại điện tử, ngân hàng, … Ứng dụng mã hóa bảo mật thông tin hệ thống thương mại điện tử, giao dịch chứng khoán,… trở nên phổ biến giới ngày trở nên quen thuộc với người dân Việt Nam Tháng 7/2000, thị trường chứng khốn lần hình thành Việt Nam, thẻ tín dụng bắt đầu sử dụng, ứng dụng hệ thống thương mại điện tử bước đầu quan tâm xây dựng Do đó, mã hóa có vai trị quan trọng, đặc biệt giao dịch điện tử Nó giúp đảm bảo bí mật, tồn vẹn thơng tin, thơng tin truyền mạng Mã hóa tảng kĩ thuật chữ ký điện tử, hệ thống PKI (Public key infrastructure – Hạ tầng khóa cơng khai), Chính em chọn “Tìm hiểu thuật tốn mã hóa thơng tin” làm đề tài tốt nghiệp Cấu trúc đề tài sau:  Chương 1: Tổng quan hệ mật mã  Chương 2: Một số phương pháp mã hóa cổ điển  Chương 3: Một số thuật tốn mã hóa đại -1- TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN CHƯƠNG TỔNG QUAN VỀ HỆ MẬT MÃ 1.1 Khái niệm mã hóa thơng tin 1.1.1 Khái niệm Mã hóa thơng tin chuyển đổi thơng tin từ dạng rõ (dạng đọc được) sang dạng mờ (dạng đọc được) ngược lại Nhằm mục đích ngăn chặn nguy truy cập thông tin truyền mạng cách bất hợp pháp Thông tin truyền mạng dạng mờ đọc với cố tình muốn lấy thơng tin [1, 2, 3] Khi có nhu cầu trao đổi thơng tin, Internet mơi trường khơng an tồn, đầy rủi ro nguy hiểm, khơng có đảm bảo thơng tin mà truyền khơng bị đọc trộm đường truyền Vì mã hóa biện pháp giúp ta bảo vệ thơng tin mà ta gửi Ngồi mã hóa cịn đảm bảo tính tồn vẹn liệu 1.1.2 Vai trị mã hóa Các hệ mã hóa phải thực vai trị sau  Các hệ mã hóa phải che dấu nội dung văn rõ (PlainText) để đảm bảo cho người chủ hợp pháp thông tin có quyền truy cập thơng tin, hay nói cách khác chống truy cập không quyền hạn  Tạo yếu tố xác thực thông tin, đảm bảo thông tin lưu hành hệ thống đến người nhận hợp pháp xác thực  Tổ chức sơ đồ chữ ký điện tử, đảm bảo khơng có tượng giả mạo, mạo danh để gửi thông tin mạng Ưu điểm lớn hệ mã hóa đánh giá độ phức tạp tính toán mà “kẻ địch” phải giải toán để lấy thơng tin liệu Tuy nhiên hệ mã hóa có số ưu nhược điểm khác nhau, nhờ đánh giá độ phức tạp tính tốn, mức độ an tồn hệ mã hóa mà ta ứng dụng cụ thể tùy theo yêu cầu độ an toàn [1, 2] 1.1.3 Các thành phần hệ mã hóa Một hệ mã hóa (P, C, D, K, E) thõa mã điều kiện sau: - P tập hợp hữu hạn rõ (PlainText), cịn gọi khơng gian rõ -2- TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN - C tập hợp hữu hạn mã (CipherText), cịn gọi khơng gian mã Mỗi phần tử C nhận cách áp dụng phép mã hóa Ek lên phần tử P - K tập hợp hữu hạn khóa hay cịn gọi khơng gian khóa Đối với phần tử k K gọi khóa (Key) Số lượng khơng gian khóa phải đủ lớn để “kẻ địch” không đủ thời gian để thử khóa (phương pháp vét cạn) - E D tập luật mã hóa giải mã Với k K có quy tắc mã hóa ek: PC quy tắc giải mã tương ứng dk € D Mỗi ek: PC dk: CP hàm mà: dk(ek(x))=x với rõ x € P Hình 1.1: Mơ hình mã hóa 1.2 Tiêu chuẩn để đánh giá hệ mã hóa 1.2.1 Độ an tồn thuật tốn Ngun tắc mã hố “Thuật tốn bị phá vỡ” Các thuật toán khác cung cấp mức độ an toàn khác nhau, phụ thuộc vào độ phức tạp để phá vỡ chúng Tại thời điểm, độ an tồn thuật tốn phụ thuộc [3] o Nếu chi phí hay phí tổn cần thiết để phá vỡ thuật tốn lớn giá trị thơng tin mã hóa thuật tốn thuật tốn tạm thời coi an toàn o Nếu thời gian cần thiết dùng để phá vỡ thuật toán q lâu thuật tốn tạm thời coi an tồn -3- TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN o Nếu lượng liệu cần thiết để phá vỡ thuật toán lớn so với lượng liệu mã hố thuật tốn tạm thời coi an tồn 1.2.2 Tốc độ mã hóa giải mã Khi đánh giá hệ mã hóa phải ý đến tốc độ mã hóa giải mã Hệ mã hóa tốt thời gian mã hóa giải mã nhanh 1.2.3 Phân phối khóa Một hệ mã hóa phụ thuộc vào khóa, khóa truyền cơng khai hay truyền bí mật Phân phối khóa bí mật chi phí cao so với thuật tốn mã hóa khóa cơng khai Vì tiêu chí lựa chọn hệ mã hóa 1.3 Khóa 1.3.1 Khái niệm Một khóa mã hóa phần thơng tin đặc biệt kết hợp với thuật toán để thi hành mã hóa giải mã Mỗi khóa khác tạo văn mã hóa khác nhau, khơng chọn khóa khơng thể mở tài liệu mã hóa trên, cho dù biết thuật tốn dùng thuật tốn mã hóa gì, sử dụng khóa phức tạp độ an tồn liệu lớn [1, 2, 3] 1.3.2 Ví dụ Mã hóa nội dung thư với khóa “Thay ký tự xuất thư ký tự đứng thứ sau nó” Cùng thật tốn sử dụng khóa “Thay ký tự xuất thư ký tự đứng thứ sau nó” Như kết thư có nội dung sau sử dụng hai khóa khác có hai mã khác 1.4 Phân loại thuật toán mã hóa 1.4.1 Phân loại theo phương pháp 1.4.1.1 Mã hoá cổ điển Xuất lịch sử, thuật tốn sử dụng khóa đơn giản, dễ hiểu Là phương pháp mà ký tự (hay nhóm ký tự) rỏ thay ký tự (hay nhóm ký tự) khác tạo nên mã Bên nhận cần đảo ngược lại trình tự thay nhận rõ ban đầu [1, 3] -4- TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN Mã hóa cổ điển có hai phương pháp bật là: Mã hóa thay mã hóa hốn vị Các hệ mã hóa thường sử dụng lịch sử là: Hệ mã hóa Ceasar, Vigenere, Hill… 1.4.1.2 Mã hóa đối xứng Mã hóa đối xứng hay mã hóa chia sẻ khóa mơ hình mã hóa hai chiều, có nghĩa tiến trình mã hóa giải mã dùng chung khóa Khóa chuyển giao bí mật hai đối tượng tham gia giao tiếp Khóa cấu hình phần mềm (software) mã hóa phần cứng (hardware) Mã hóa đối xứng thực nhanh gặp rủi ro khóa bị đánh cắp [1, 3] Một số thuật tốn mã hóa đối xứng tiếng như: DES, AES, RC2, RC4, RC5, RC6… Ngồi cịn số thuật toán như: Skipjact, Blowfish, CATS-128 1.4.1.3 Mã hóa bất đối xứng Mã hóa bất đối xứng mơ hình mã hóa hai chiều sử dụng cặp khóa khóa chung (Public Key) khóa riêng (Private Key) Trong khóa chung Public Key công bố rộng rãi Thông thường thông tin người gửi sử dụng khóa Public Key để mã hóa gửi Người nhận thơng tin dùng khóa Private Key để giải mã Khóa Private Key người giữ phương pháp mã hóa bất đối xứng đảm bảo tính bí mật Một điều quan trọng phương pháp mã hóa cặp khóa Public Key Private Key phải tương đồng Có nghĩa có Private Key cặp khóa giải mã liệu mã hóa khóa Public Key tương ứng [1, 2, 3] Thuật tốn mã hóa bất đối xứng tiếng sử dụng nhiều RSA Ngồi cịn số thuật tốn khác như: Hellman, Elgamal… 1.4.1.4 Mã hóa hàm băm Là cách thức mã hóa chiều tiến hành biến đổi rõ thành mã mà không giải mã Người ta ví loại mã hóa củ hành băm nhuyễn khơng tái tạo lại củ hành ban đầu [1, 2, 3] -5- TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN 3.2.3.2 Áp dụng thuật tốn phân tích thừa số Có nhiều thuật tốn để phân tích thừa số Tuy nhiên thuật toán Pollard p-1, thuật tốn đơn giản, hiệu quả, dùng để phân tích thừa số nguyên tố số nguyên lớn, ta phân tích số nguyên n dựa vào phân tích p-1 với p ước nguyên tố n Các bước thuật toán: Bước 1: Xác định đầu vào hai số n b ( n số nguyên lẻ cần phân tích, b giá trị giới hạn) Bước 2: Gán a = Bước 3: for j = to b a = aj mod n Bước 4: Tìm d = gcd(a-1,n) d ước chung lớn a-1 n Bước 5: Nếu 1< d < n then d thừa số nguyên tố n (thành công) Ngược lại Không xác định thừa số nguyên tố n Giải thuật hiệu công phương pháp RSA trường hợp n có thừa số nguyên tố p mà p-1 có ước số nguyên tố nhỏ Do dễ dàng xây dựng hệ mã hóa cơng cộng RSA an tồn giải thuật cơng p-1 Cách đơn giản tìm số nguyên tố p1 lớn mà p = 2p1+1 số nguyên tố, tương tự, tìm q1 số nguyên tố lớn mà q = 2q1+1 nguyên tố 3.2.3.3 Bẻ khóa dựa công lặp lại Siimons Norris hệ thống RSA bị tổn thương sử dụng phương pháp công lặp lại liên tiếp Đó đối thủ biết cặp khóa cơng cộng (e,n) từ khóa C họ tính chuổi từ khóa sau C1 = Ce mod n C2 = C1e mod n Ci = Ci-1e mod n - 30 - TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN Nếu có phần tử Cj chuỗi C1, C2,…, Ci Sao cho Cj = C kẻ cơng sẻ tìm M = Cj-1 Cj = Cej-1 mod n C = Me mod n Ví dụ : Giả sử biết {e, n, C} = {17, 35, 3} Người ta sẻ tính C1 = Ce mod n = 317 mod 35 = 33 C2 = C1e mod n = 3317 mod 35 = Vì C2 = C nên M = C1 =33 3.2.4 Đánh giá thuật toán - RSA đơn giản, dễ hiểu, dễ cài đặt - Hiệu suất hoạt động: RSA chạy chậm việc phát sinh khố cơng khai, khố bí mật hay q trình mã hố, giải mã tốn nhiều thời gian phải tính tốn số ngun dương cực lớn, có chiều dài vượt khả chứa ghi nên phải thực lại nhiều lần sử dụng nhiều đến xử lý Do đó, RSA khơng sử dụng vào mục đích mã hố khối lượng liệu lớn mà ứng dụng chữ ký điện tử để mã hố thơng điệp ngắn qua hàm băm (hash), giải thuật trao đổi khố bí mật (khoá dùng cho hệ thống mã hoá đối xứng, hay khoá riêng) mã hoá liệu với số lượng nhỏ - Tính bảo mật: Độ an tồn RSA dựa tốn phân tích thừa số nguyên tố Do đó, chiều dài số lớn khó phân tích thừa số ngun tố 3.3 Thuật tốn mã hóa MD5(Message-Digest algorithm 5) 3.3.1 Hàm băm MD5 3.3.1.1 Khái niệm MD5 hàm băm để mã hóa với giá trị băm 128 bit Từng xem chuẩn Internet, MD5 sử dụng rộng rãi chương trình an ninh mạng, thường dùng để kiểm tra tính nguyên vẹn tập tin MD5 thiết kế Ronald Rivest vào năm 1991 để thay cho hàm băm trước MD4 (cũng ông thiết kế, trước MD2) [1, 5] - 31 - TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN 3.3.1.2 Ứng dụng MD5 có ứng dụng quan trọng:  MD5 sử dụng rộng rãi giới phần mềm để đảm bảo tập tin tải khơng bị hỏng Người sử dụng so sánh thông số kiểm tra phần mềm MD5 công bố với thông số kiểm tra phần mềm tải MD5 Hệ điều hành Unix sử dụng MD5 để kiểm tra gói tin mà phân phối, hệ điều hành Windows sử dụng phần mềm hãng thứ ba  MD5 dùng để mã hóa mật Mục đích việc mã hóa biến đổi chuỗi mật thành đoạn mã khác, cho từ đoạn mã khơng thể lần trở lại mật Có nghĩa việc giải mã phải khoảng thời gian vơ tận (đủ để làm nản lịng hacker) 3.3.1.3 Thuật giải MD5 biến đổi thông điệp có chiều dài thành khối có kích thước cố định 128 bit Thơng điệp đưa vào cắt thành khối 512 bit Thông điệp đưa vào đệm để chiều dài chia hết cho 512 Bộ đệm hoạt động sau: - Trước tiên chèn bit vào cuối thông điệp - Tiếp hàng loạt bit Zero chiều dài nhỏ bội số 512 khoảng 64 bit - Phần lại lấp đầy số nguyên 64 bit biểu diễn chiều dài ban đầu thông điệp Thuật tốn MD5 hoạt động 128 bit Chia nhỏ thành từ 32 bit, ký hiệu A, B, C D Các giá trị số cố định Sau thuật tốn ln phiên hoạt động khối 512 bit Mỗi khối phối hợp với Q trình xử lý khối thơng điệp bao gồm bước tương tự nhau, gọi vòng (“round”) Mỗi vịng lại gồm 16 q trình tương tự dựa hàm chiều F, phép cộng module phép xoay trái… Hình bên mơ tả q trình vịng Có hàm hiều F sử dụng Mỗi vịng sử dụng hàm khác - 32 - TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN Hình 3.8: Mơ hình vịng Hàm băm MD5 (cịn gọi hàm tóm tắt thông điệp - message degests) trả chuỗi số hexa phân gồm 32 số liên tiếp Dưới ví dụ mơ tả kết thu sau băm MD5("nguyễn văn thắng") = 6C6D5920B7A3C9EE8C751FA87977B627 Thậm chỉ cần thay đổi nhỏ làm thay đổi hoàn toàn kết trả : MD5(“ Nguyễn Văn Thắng “) = FEA7430AFC36693677F7430D321AC0CE Ngay chuổi rỗng cho kết phức tạp: MD5(“”) = d41d8cd98f00b204e9800998ecf8427e - 33 - TÌM HIỂU CÁC THUẬT TỐN MÃ HĨA THƠNG TIN 3.3.2 Thuật tốn MD5 3.3.2.1 Mơ tả Đầu vào khối 512 bit, chia cho 16 khối 32 bit Đầu thuật tốn thiết lập khới 32 bit để tạo thành một hàm Băm 128 bit Đầu tiên, ta chia thông điệp thành khối 512 bit, với khối cuối (đặt x x

Ngày đăng: 03/10/2021, 12:52

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

Tài liệu liên quan