Tìm hiểu một số thuật toán mã hóa dữ liệu và ứng dụng luận văn tốt nghiệp đại học

51 1.1K 7
Tìm hiểu một số thuật toán mã hóa dữ liệu và ứng dụng luận văn tốt nghiệp đại học

Đ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 Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng TRƯỜNG ĐẠI HỌC VINH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN TỐT NGHIỆP ĐẠI HỌC Đề tài: TÌM HIỂU MỘT SỐ THUẬT TỐN MÃ HĨA DỮ LIỆU VÀ ỨNG DỤNG Giáo viên hướng dẫn Sinh viên thực VINH – 2011 : ThS Cao Thanh Sơn : Trần Thị Kim Nhung Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 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 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 đề tài Đặc biệt em xin chân thành cảm ơn thầy giáo ThS Cao Thanh Sơn, người giúp đỡ, bảo, hướng dẫn tận tình cho em trình làm đề tài Trong thời gian làm việc với thầy, 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 thầy Xin gửi lời cảm ơn chân thành đến gia đình, cha mẹ bạn bè ln 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 tận tình bảo quý thầy cô bạn Một lần nữa, em xin chân thành cảm ơn mong nhận đóng góp quý báu tất người Ngày 20 tháng năm 2011 Sinh viên thực Trần Thị Kim Nhung Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng MỤC LỤC LỜI CẢM ƠN Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng DANH MỤC VIẾT TẮT, THUẬT NGỮ STT Từ viết tắt Giải nghĩa DES Data Encryption Standard AES Advanced Encryption Standard RC Rivest Cipher CATS MD Message Digest SHA Secure Hash Alorithm FIPS RSA Rivest, Shamir, Adleman MIT Học viện công nghệ Massachusetts 10 NSA Cơ quan Bảo mật quốc gia Hoa Kỳ Carlisle Adams, and Stafford Tavares Federal Information Processing Standard (tiêu chuẩn xử lý thơng tin liên bang) Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng DANH MỤC HÌNH VẼ Hình 1.1: Mơ hình mã hóa .7 Hình 1.2: Mơ hình mã hóa khóa bí mật 10 Hình 1.3: Mơ hình mã hóa khóa cơng khai 11 Hình 2.1: Hình vng Vigenere 15 Hình 3.1: Sơ đồ tổng qt mã hóa DES 20 Hình 3.2: Sơ đồ tạo khóa 21 Hình 3.3: Biểu diễn dãy 64 bit x chia thành thành phần L0,R0 23 Hình 3.4: Sơ đồ chi tiết vịng 23 Hình 3.5: Sơ đồ hoạt động hàm f 24 Hình 3.6: Hốn vị mở rộng 25 Hình 3.7: Sơ đồ thuật tốn RSA .32 Hình 3.8: Mơ hình vịng 38 Hình 3.9: Sơ đồ vịng lặp MD5 40 Hình 3.10: Sơ đồ khối tổng quát 44 Hình 3.11: Sơ đồ xử lý 512 bit .46 Hình 3.12: Ứng dụng MD5 đăng ký quyền công ty 48 Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng MỞ ĐẦU Lí chọn đề tài Trong năm gần đây, mạng Internet trở thành tảng cho trao đổi thơng tin tồn cầu Có thể thấy cách rõ ràng Internet tác động lên nhiều mặt đời sống từ việc tìm kiếm thơng tin, trao đổi liệu đến việc hoạt động thương mại, học tập nghiên cứu làm việc trực tuyến Nhờ Internet mà việc trao đổi thông tin ngày tiện lợi, nhanh chóng hơn, khái niệm thư điện tử (email) khơng cịn xa lạ với người Tuy nhiên môi trường truyền thông này, ngồi mặt tích cực Internet tiềm ẩn tiêu cực vấn đề bảo vệ thơng tin Do đó, yêu cầu đặt việc trao đổi thông tin mạng:  Bảo mật tuyệt đối thông tin giao dịch  Đảm bảo tính tồn vẹn thơng tin  Chứng thực tính đắn pháp lí thực thể tham gia trao đổi thông tin  Đảm bảo thực thể phủ nhận hay chối bỏ trách nhiệm họ hoạt động giao dịch Internet 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 ứ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 Thế giới, từ lĩnh vực an ninh, quân sự, quốc phòng… Cho đến lĩnh vực dân thương mại điện tử, ngân hàng… Trong đề tài tơi tìm hiểu số phương pháp mã hóa sử dụng rộng rãi Cấu trúc khóa luận 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 Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng CHƯƠNG 1: 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 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 [1, 2, 7] 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 tốn mà “kẻ địch” phải giải tố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, 3] Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 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õ - 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 [1, 7] o Nếu chi phí hay phí tổn cần thiết để phá vỡ thuật toá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 tồn Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng o Nếu thời gian cần thiết dùng để phá vỡ thuật toán lâu thuật tốn tạm thời coi an toàn Nếu lượng liệu cần thiết để phá vỡ thuật toán lớn o so với lượng liệu mã hố thuật tốn tạm thời coi an toà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 tố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, 7] 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 Trang Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 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.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ã [1, 7] Bên nhận cần đảo ngược lại trình tự thay nhận rõ ban đầu 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 Software mã hóa Hardware Mã hóa đối xứng thực nhanh gặp rủi ro khóa bị đánh cắp [1, 7] 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 tố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, 7] Trang 10 Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng Có nhiều thuật tốn để phân tích thừa số Tuy nhiên thuật tốn Pollard p-1, thuật toán đơn giải, 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ố p lớn mà p = 2p1+1 số nguyên tố, tương tự, tìm q 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 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 Trang 37 Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 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 khoá bí mật (khố dùng cho hệ thống mã hố đố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ố ngun 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 3.3.1 Hàm băm MD5 3.3.1.1 Khái niệm MD5 (Message-Digest algorithm 5) 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) [5, 8] 3.3.1.2 Ứng dụng MD5 có ứng dụng quan trọng: Trang 38 Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụ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ã khơng thể 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 luân phiên hoạt động khối 512 bit Mỗi khối phối hợp với Quá 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 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 Trang 39 Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 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("cộng hòa xã hội chủ nghĩa việt nam") = 7b8e76fac176d53c53cb24843e31e759 Thậm chỉ cần thay đổi nhỏ làm thay đổi hoàn toàn kết trả : MD5(“ Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam “) = 4B290F07CAC9A678797B6D23CCD1062B Ngay chuổi rỗng cho kết phức tạp: MD5(“”) = d41d8cd98f00b204e9800998ecf8427e Trang 40 Tìm Hiểu Một Số Thuật Tốn Mã Hóa Dữ Liệu Và Ứng Dụng 3.3.2 MD5 3.3.2.1 Mô tả Đầu vào là khối 512 bit, chia cho 16 khới 32 bit Đầu của thuật tốn là một thiết lập của khối 32 bit để tạo thành một hàm Băm 128 bit nhất Đầu tiên, ta chia thông điệp thành các khối 512 bit, với khối cuối (đặt là x và x

Ngày đăng: 22/12/2013, 13:02

Từ khóa liên quan

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

  • Đang cập nhật ...

Tài liệu liên quan