BÁO CÁO THỰC TẬP-XÂY DỰNG ỨNG DỤNG MÃ HÓA MD5 & 3DES TRAO ĐỔI THÔNG TIN TRÊN MẠNG

20 848 3
BÁO CÁO THỰC TẬP-XÂY DỰNG ỨNG DỤNG MÃ HÓA MD5 & 3DES TRAO ĐỔI THÔNG TIN TRÊN MẠNG

Đ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

TRƯỜNG ĐẠI HỌC BÁCH KHOA KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ TRUYỀN THÔNG   ĐỒ ÁN LẬP TRÌNH MẠNG NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI : XÂY DỰNG ỨNG DỤNG MÃ HÓA MD5 & 3DES TRAO ĐỔI THÔNG TIN TRÊN MẠNG Sinh viên : Trần Văn Huynh : Trần Văn Nghĩa Lớp : 11TLT.CNTT Cán bộ hướng dẫn : ThS. Mai Văn Hà Đà Nẵng 03/2013 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà Đề cương chi tiết I.1. Mục tiêu của đề tài 4 I.2. Hướng giải quyết 4 I.3. Triển khai 4 CHƯƠNG II. CƠ SỞ LÝ THUYẾT 4 I Khái niệm về mã hóa và giải mã 5 I.1. Giới thiệu 5 I.2. Các nguyên lý cơ bản của quá trình bảo mật và mã hóa 5 I.3. Khái niệm về chìa khoá 6 I.4. Thuật toán mã hóa 6 I.5. Hàm hash 7 II. Tổng quan về lập trình mạng 8 II.1. Mô hình Client-Server 8 II.1.1. Dựa vào chức năng có thể chia thành các loại server như sau 9 II.1.2. Ưu điểm và nhược điểm của mô hình Client-Server 9 II.2. Kiến trúc mô hình Client-Server 10 II.2.1. Các chế độ giao tiếp 10 II.3. Socket 11 II.3.1. Khái niệm Sockets 11 II.3.2. Phân loại Sockets 12 II.4. Giao Thức TCP 12 II.4.1. Đặc điểm của giao thức TCP( có kết nối) 12 II.4.2. Hoạt động của giao thức TCP 13 II.4.3. Thiết lập kết nối 13 II.4.4. Truyền dữ liệu 13 II.4.5. Kết thúc kết nối 14 II.4.6. Cấu trúc gói tin TCP 14 III. Thuật toán mã hóa MD5 15 III.1. Giới thiệu 15 III.2. Mô tả thuật toán MD5 16 III.3. Các bước mã hóa thông điệp 18 III.4. Ứng dụng của MD5 Trong thực tế 19 III.5. Tổng kết 19 IV. Thuật toán mã hóa 3DES 19 IV.1. Giới thiệu 19 VI.2. Các mẫu hoạt động của 3DES 20 VI.3. Ưu và nhược điểm của 3DES 20 VI.4. Ứng dụng của thuật toán DES trong thực tế 20 CHƯƠNG III. XÂY DỰNG CHƯƠNG TRÌNH 20 CHƯƠNG IV. KẾT QUẢ 21 CHƯƠNG V. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 21 CHƯƠNG I TỔNG QUAN VỀ ĐỀ TÀI SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 3 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà I.1. Mục tiêu của đề tài - Xây dựng được một chương trình mã hóa MD5 và 3DES - Tìm hiểu về bảo mật trong java. - Tìm hiểu các hàm băm. - Tìm hiểu gói java lập trình mạng. I.2. Hướng giải quyết - Tìm hiểu cơ chế hoạt động của thuật toán MD5 và 3DES - Xây dựng chương trình bằng ngôn ngữ java - Cài đặt các công cụ cần thiết hỗ trợ chương trình. - Từ đó tìm ra hướng giải quyết và viết chương trình mô phỏng cho bài toán. I.3. Triển khai Chương trình mô phỏng mã hóa và giả mã hai thuật toán MD5 và 3DES trong mô hình Client – Server. CHƯƠNG II. CƠ SỞ LÝ THUYẾT SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 4 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà I Khái niệm về mã hóa và giải mã I.1. Giới thiệu Mật mã và bảo mật trong hệ thống viễn thông là một lĩnh vực có nhiều thuật ngữ có thể làm cho nhiều người "ngơ ngác": như "hash function", "one-time pad" hay Rijndael Thread này nhằm giải thích các khái niệm thường dùng trong ngành mật mã học (cryptography) với hy vọng có thể giúp ích cho những ai mong muốn tìm hiểu về lĩnh vực này. Trước tiên mật mã học (crypto) là một nghệ thuật nhằm giấu thông tin, bằng cách chuyển đổi (encrypt) thông tin thành dạng thông tin không đọc được (cipher text). Chỉ có những người giữ chìa khóa (key) bí mật mới có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu được (plain text). Thông tin đôi khi bị giải mã mà không cần biết khóa bí mật. Ngành học nghiên cứu về việc bẻ khóa (attack/crack/hack) này còn gọi là cryptanalysis. Hình 1:Sơ đồ mã hóa và giải mã. I.2. Các nguyên lý cơ bản của quá trình bảo mật và mã hóa  Tính bí mật (confidentiality/privacy): tính chất này đảm bảo thông tin chỉ được hiểu bởi những ai biết chìa khóa bí mật.  Tính toàn vẹn (integrity): tính chất này đảm bảo thông tin không thể bị thay đổi mà không bị phát hiện. Tính chất này không đảm bảo thông tin không bị thay đổi, nhưng một khi nó bị nghe lén hoặc thay đổi thì người nhận được thông tin có thể biết được là thông tin đã bị nghe lén hoặc thay đổi. Các hàm một chiều (one-way function) như MD5, SHA-1, MAC được dùng để đảm bảo tính toàn vẹn cho thông tin.  Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng minh đúng . Người ta có thể dụng một password, một challenge dựa trên một thuật toán mã hóa hoặc một bí mật chia sẻ giữa hai người để xác thực. Sự xác thực này có thể thực hiện một chiều (one-way) hoặc hai chiều (multual authentication).  Tính không chối bỏ (non-repudiation): người gửi hoặc nhận sau này không thể chối bỏ việc đã gửi hoặc nhận thông tin. Thông thường điều này được thực hiện thông qua một chữ ký điện tử (electronic signature). SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 5 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà  Tính nhận dạng (identification): người dùng của một hệ thống, một tài nguyên sở hữu một chứng minh thư (identity) như là một chìa khóa ban đầu (primary key). identity này sẽ xác định những chức năng của người dùng, giới hạn cho phép của người dùng cũng như các thuộc tính liên quan (thường gọi chung là credential). Identity có thể là login, dấu vân tay, ADN, giản đồ võng mạc mắt, âm thanh I.3. Khái niệm về chìa khoá  Password: mật khẩu, là một hay nhiều từ mà người dùng phải biết để được cấp quyền truy cập. Trong thực tế, mật khẩu do người dùng tạo ra thường không đủ độ an toàn để được dùng trực tiếp trong thuật toán. Vì vậy, trong bất cứ hệ thống mã hóa dữ liệu nghiêm túc nào cũng phải có bước chuyển đổi mật khẩu ban đầu thành chìa khóa có độ an toàn thích hợp. Bước tạo chìa khóa này thường được gọi là key derivation, key stretching hay key initialization.  Key Derivation Function: là một hàm hash (sẽ giải thích rõ hơn ở phần sau) được thiết kế sao cho chìa an toàn hơn đối với tấn công kiểu brute-force hay cổ điển. Hàm này được thực hiện lại nhiều lần trên mật khẩu ban đầu cùng với một số ngẫu nhiên để tạo ra một chìa khóa có độ an toàn cao hơn. Số ngẫu nhiên này gọi là salt, còn số lần lặp lại là iteration.  Keylength (Keysize): Độ dài (hay độ lớn) của chìa khóa. Nói một chìa khóa có độ dài 128 bit có nghĩa chìa đó là một số nhị phân có độ dài 128 chữ số. Một thuật toán có chìa khóa càng dài thì càng có nhiều khả năng chống lại tấn công kiểu brute-force.  Brute-force attack: (exhaustive key search): phương pháp tấn công bằng cách thử tất cả những chìa khóa có thể có. Đây là phương pháp tấn công thô sơ nhất và cũng khó khăn nhất. Theo lý thuyết, tất cả các thuật toán hiện đại đều có thể bị đánh bại bởi brute-force nhưng trong thực tiễn việc này chỉ có thể thực hiện được trong thời gian dài. Vì thế có thể coi một thuật toán là an toàn nếu như không còn cách nào khác để tấn công nó dễ hơn là brute-force. Ngoài ra để chống lại tấn công này, chìa khóa bị mật được thay đổi một cách thường xuyên hơn. I.4. Thuật toán mã hóa  Cổ điển(cái này ngày nay vẫn hay dùng trong trò chơi tìm mật thư). • Substitution (thay thế): phương pháp mã hóa trong đó từng kí tự (hoặc từng nhóm kí tự) của văn bản ban đầu được thay thế bằng một (hay một nhóm) kí tự khác. Tuy không còn được sử dụng nhưng ý tưởng của phương pháp này vẫn được tiếp tục trong những thuật toán hiện đại • Transposition (hoán vị): phương pháp mã hóa trong đó các kí tự trong văn bản ban đầu chỉ thay đổi vị trí cho nhau còn bản thân các kí tự không hề bị biến đổi.  Hiện đại SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 6 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà • Symmetric cryptography (mã hóa đối xứng): Tức là cả hai quá trình mã hóa và giải mã đều dùng một chìa khóa. Để đảm bảo tính an toàn, chìa khóa này phải được giữ bí mật. Vì thế các thuật toán loại này còn có tên gọi khác là secret key cryptography (hay private key cryptography), tức là thuật toán mã hóa dùng chìa khóa riêng (hay bí mật). Các thuật toán loại này lý tưởng cho mục đích mã hóa dữ liệu của cá nhân hay tổ chức đơn lẻ nhưng bộc lộ hạn chế khi thông tin đó phải được chia sẻ với một bên thứ hai. • Block ciphers (thuật toán khối): Trong đó từng khối dữ liệu trong văn bản ban đầu được thay thế bằng một khối dữ liệu khác có cùng độ dài. Độ dài mỗi khối gọi là block size, thường được tính bằng đơn vị bit. Ví dụ thuật toán 3-Way có kích thước khối bằng 96 bit. Một số thuật toán khối thông dụng là: DES, 3DES, RC5, RC6, 3-Way, CAST, Camelia, Blowfish, MARS, Serpent, Twofish, GOST  Stream ciphers (thuật toán dòng): trong đó dữ liệu đầu vào được mã hóa từng bit một. Các thuật toán dòng có tốc độ nhanh hơn các thuật toán khối, được dùng khi khối lượng dữ liệu cần mã hóa chưa được biết trước, ví dụ trong kết nối không dây. Có thể coi thuật toán dòng là thuật toán khối với kích thước mỗi khối là 1 bit. Một số thuật toán dòng thông dụng: RC4, A5/1, A5/2, Chameleon.  Mã hóa bất đối xứng(Asymmetric cryptography) • Sử dụng một cặp chìa khóa có liên quan với nhau về mặt toán học, một chìa công khai dùng để mã hoá (public key) và một chìa bí mật dùng để giải mã (private key). Một thông điệp sau khi được mã hóa bởi chìa công khai sẽ chỉ có thể được giải mã với chìa bí mật tương ứng. Do các thuật toán loại này sử dụng một chìa khóa công khai (không bí mật) nên còn có tên gọi khác là public-key cryptography (thuật toán mã hóa dùng chìa khóa công khai). Một số thuật toán bất đối xứng thông dụng là : RSA, Elliptic Curve, ElGamal, Diffie Hellman • Một trong những hạn chế của các thuật toán mã hóa bất đối xứng là tốc độ chậm, do đó trong thực tế người ta thường sử dụng một hệ thống lai tạp trong đó dữ liệu được mã hóa bởi một thuật toán đối xứng, chỉ có chìa dùng để thực hiện việc mã hóa này mới được mã hóa bằng thuật toán bất đối xứng. Hay nói một cách khác là người ta dùng thuật toán bất đối xứng để chia sẻ chìa khóa bí mật rồi sau đó dùng thuật toán đối xứng với chìa khóa bí mật trên để truyền thông tin. I.5. Hàm hash  Hàm hash (hash function): là hàm một chiều mà nếu đưa một lượng dữ liệu bất kì qua hàm này sẽ cho ra một chuỗi có độ dài cố định ở đầu ra.  Hai tính chất quan trọng của hàm này là: • Tính một chiều: không thể suy ra dữ liệu ban đầu từ kết quả, điều này tương tự như việc bạn không thể chỉ dựa vào một dấu vân tay lạ mà suy ra ai là chủ của nó được. SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 7 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà • Tính duy nhất: xác suất để có một vụ va chạm (hash collision), tức là hai thông điệp khác nhau có cùng một kết quả hash, là cực kì nhỏ.  Một số ứng dụng của hàm hash: • Chống và phát hiện xâm nhập: chương trình chống xâm nhập so sánh giá trị hash của một file với giá trị trước đó để kiểm tra xem file đó có bị ai đó thay đổi hay không. • Bảo vệ tính toàn vẹn của thông điệp được gửi qua mạng: Bằng cách kiểm tra giá trị hash của thông điệp trước và sau khi gửi nhằm phát hiện những thay đổi cho dù là nhỏ nhất. • Tạo chìa khóa từ mật khẩu. • Tạo chữ kí điện tử. II. Tổng quan về lập trình mạng II.1. Mô hình Client-Server Client-server là mô hình mạng trên đó có các máy chủ (server) và máy khách (client) giao tiếp với nhau theo 1 hoặc nhiều dịch vụ. Ý tưởng của mô hình này là máy con (đóng vài trò là máy khách) gửi một yêu cầu (request) để máy chủ (đóng vai trò người cung ứng dịch vụ), máy chủ sẽ xử lý và trả kết quả về cho máy khách. Hình 2: Mô hình client – server Trong mô hình mạng khách-chủ có một hệ thống máy tính cung cấp các tài nguyên và dịch vụ cho cả hệ thống mạng sử dụng gọi là các máy chủ (server). Một hệ thống máy tính sử dụng các tài nguyên và dịch vụ này được gọi là máy khách (client). Chương trình server và client nói chuyện với nhau bằng các thông điệp (messages) thông qua một cổng truyền thông liên tác IPC (Interprocess Communication). Thực tế trong các ứng dụng của mô hình client/server, các chức năng hoạt động chính là sự kết hợp giữa client và server với sự chia sẻ tài nguyên, dữ liệu trên cả 2 máy Vai trò của client Trong mô hình client/server, client được coi như là người sử dụng các dịch vụ trên mạng do một hoặc nhiều máy chủ cung cấp SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 8 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà và server được coi như là người cung cấp dịch vụ để trả lời các yêu cầu của các clients. Điều quan trọng là phải hiểu được vai trò hoạt động của nó trong một mô hình cụ thể, một máy client trong mô hình này lại có thể là server trong một mô hình khác. Máy client có thể sử dụng các hệ điều hành bình thường như Win9x, DOS, OS/2 Các server thường có cấu hình mạnh (tốc độ xử lý nhanh, kích thước lưu trữ lớn) hoặc là các máy chuyên dụng nên nó hoạt động sẽ tốt hơn nếu hệ điều hành của nó là đa nhiệm với các tính năng hoạt động độc lập song song với nhau như hệ điều hành UNIX, WINDOWS II.1.1. Dựa vào chức năng có thể chia thành các loại server như sau  File Server: phục vụ các yêu cầu hệ thống tập tin trong mạng.  Print Server: phục vụ các yêu cầu in ấn trong mạng.  Application Server: cho phép các ứng dụng chạy trên các server và trả về kết quả cho client.  Mail Server: cung cấp các dịch vụ về gởi nhận e-mail.  Web Server: cung cấp các dịch vụ về web.  Database Server: cung cấp các dịch vụ về lưu trữ, tìm kiếm thông tin.  Communication Server: quản lý các kết nối từ xa. II.1.2. Ưu điểm và nhược điểm của mô hình Client-Server  Ưu điểm : • Với mô hình client-server thì mọi thứ dường như đều nằm trên bàn của người sử dụng, nó có thể truy cập dữ liệu từ xa (bao gồm các công việc như gửi và nhận file, tìm kiếm thông tin, ) với nhiều dịch vụ đa dạng mà mô hình cũ không thể làm được. • Có nhiều loại server như Mail Server, File Server, Web Server nên dữ liệu được phân tán rõ ràng và dễ quản lý hơn. • Dữ liệu được lưu trữ tập trung nên dễ dàng bổ sung hoặc nâng cấp server. • Tất cả các dữ liệu đều nằm trên máy chủ nên việc bảo mật được tốt hơn (máy chủ thường được bảo mật tốt hơn máy khách). Máy chủ có thể kiểm soát truy cập tài nguyên để đảm bảo rằng chỉ những máy khách được cho phép mới có quyền truy cập và thay đổi dữ liệu. • Mô hình client/server cung cấp một nền tảng lý tưởng cho phép tích hợp các kỹ thuật hiện đại như mô hình thiết kế hướng đối tượng, hệ chuyên gia, hệ thông tin địa lý (GIS) • Nhược điểm : • Client-Server không phải là mô hình dữ liệu dùng chung nên các hệ thống con có thể sử dụng các tổ chức dữ liệu khác nhau. Do đó, việc trao đổi dữ liệu có thể không hiệu quả. SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 9 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà • Các server chuyên dụng rất đắt tiền, và dữ liệu tập trung trên máy chủ nên cần được bảo mật, do đó: phải có nhà quản trị cho hệ thống. • Một khi số lượng các máy khách truy cập đồng thời quá nhiều, máy chủ có thể trở nên quá tải ảnh hưởng đến việc truy cập dữ liệu. • Do phải trao đổi dữ liệu giữa 2 máy ở 2 khu vực khác nhau cho nên dễ dàng xảy ra hiện tượng thông tin truyền trên mạng bị lộ. II.2. Kiến trúc mô hình Client-Server Client/Server là mô hình tổng quát nhất, trên thực tế thì một server có thể được nối tới nhiều server khác nhằm làm việc hiệu quả và nhanh hơn. Đầu tiên, client sẽ gởi một thông điệp yêu cầu (Request Message) mô tả về công việc muốn server thực hiện. Khi nhận được 1 yêu cầu từ client, server tiến hành phân tích để xác định công việc cần phải thực thi. Nếu việc thực hiện yêu cầu này có sinh ra kết quả trả về, server sẽ gởi nó cho client trong một thông điệp trả lời (Reply Message). Nếu không được thì server này có thể gửi tiếp yêu cầu vừa nhận được cho server khác để xử lý rồi trả kêt quả về cho client. Dạng thức (format) và ý nghĩa của các thông điệp trao đổi giữa client và server được qui định rõ bởi giao thức (protocol) của ứng dụng. II.2.1. Các chế độ giao tiếp Quá trình giao tiếp giữa client và server có thể diễn ra theo hai chế độ là nghẽn (blocked) hay không nghẽn (Non blocked).  Chế độ nghẽn: Trong chế độ này, khi quá trình client hay server phát ra lệnh gởi dữ liệu, (thông thường bằng lệnh send) , sự thực thi của nó sẽ bị tạm dừng cho đến khi quá trình nhận phát ra lệnh nhận số dữ liệu đó (thường là lệnh receive). SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 10 Hình 3:quá trình yêu cầu và trả lời thông điệp Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà Hình 4: Chế độ ngẽn. Tương tự cho trường hợp nhận dữ liệu, nếu quá trình nào đó, client hay server, phát ra lệnh nhận dữ liệu, mà ở thời điểm đó chưa có dữ liệu gởi đến, sự thực thi của nó cũng tạm dừng cho đến khi có dữ liệu gởi đến.  Chế độ không nghẽn Hình 5: Chế độ không ngẽn. II.3. Socket II.3.1. Khái niệm Sockets  Socket là một giao diện lập trình ứng dụng (API) mạng, thông qua giao diện này chúng ta có thể lập trình điều khiển việc truyền thông giữa hai máy sử dụng các giao thức mức thấp là TCP, UDP… SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 11 [...]... tạo ra 2 thông điệp có cùng mã số thông điệp, hoặc tạo ra một thông điệp với mã số cho trước.Thuật toán MD5 được dự tính áp dụng cho những ứng dụng chữ ký điện tử, ở đó một file lớn phải được “nén“ một cách an toàn trước khi mã hóa với một khóa cá nhân ( private key ) dưới một hệ mã hóa công khai như RSA Thuật toán MD5 SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 15 Báo cáo Đồ án- Lập Trình Mạng GVHD:... DES  Nhược điểm: Vì 3DES sử dụng 3 lần mã hoá DES cho nên tốc độ mã hoá sẽ chậm hơn rất nhiều so với DES Phần mềm ứng dụng tỏ ra rất chậm đối với hình ảnh số và một số ứng dụng dữ liệu tốc độ cao vì kích thước khối 64 bit vẫn còn là một nhược điểm đối với những hệ có tốc độ của thế kỷ 21 VI.4 Ứng dụng của thuật toán DES trong thực tế Một ứng dụng rất quan trọng của DES là ứng dụng cho các văn bản... không thuộc về header Giá trị của trường này là thông tin dành cho các tầng trên (trong mô hình 7 lớp OSI) Thông tin về giao thức của tầng trên không được chỉ rõ trong phần header mà phụ thuộc vào cổng được chọn Thuật toán mã hóa MD5 III.1 Giới thiệu Thuật toán nhận vào 1 thông điệp độ dài tùy ý và tạo ra một số 128 bit, là một dạng “vân tay “ hay mã số thông điệp” ( message digest ) của đầu vào Người... dụng đã “xuất bản” ở trên Thì OK, không có vấn đề Nếu hai tín hiệu md này khác nhau, có thể có trong file download có virut hay cái gì đó tương tự Một ứng dụng thường được dùng nữa là hash một password Được dùng cho việc bảo mật một ứng dụng, hay những gì tương tự … III.5 Tổng kết Thuật toán số hóa thông điệp MD5 khá đơn giản để thực hiện, cung cấp một dạng “vân tay“ hay mã số của thông điệp với độ dài.. .Báo cáo Đồ án- Lập Trình Mạng  GVHD: Th.S Mai Văn Hà Socket là sự trừu tượng hoá ở mức cao, có thể tưởng tượng nó như là thiết bị truyền thông hai chiều gửi – nhận dữ liệu giữa hai máy tính với nhau II.3.2 Phân loại Sockets  Stream socket: Sử dụng giao thức TCP có thiết lập kết nối giữa hai máy trước khi trao đổi dữ liệu Stream socket cung cấp cơ chế trao đổi dữ liệu theo 2 chiều, bảo đảm tính tin. .. cho rằng độ khó để tìm được 2 thông điệp có cùng mã số là khoảng 2^64 bước tính, và độ khó để tim được một thông điệp với mã số cho trước là 2^128 bước tính Thuật toán MD5 đã được dò tìm điểm yếu một cách cẩn thận Tuy nhiên đây là một thuật toán tương đối mới và việc phân tích cẩn thận về sự an toàn là cần thiết IV Thuật toán mã hóa 3DES IV.1 Giới thiệu Thuật toán mã hoá 3DES là một biến thể phụ của... liệu được mã hoá với chìa khoá đầu tiên, và được giải mã với chìa khoá 2, sau đó mã hoá lần nữa với chìa khoá thứ 3 để thu được dữ liệu mã hoá cuối cùng VI.2 Các mẫu hoạt động của 3DES  Triple ECB (Triple Electronic Code Book): Sách mã hoá điện tử  Triple CBC (Triple Cipher Chaining): Móc nối khối ký số VI.3 Ưu và nhược điểm của 3DES  Ưu điểm: Khác với DES, thuật toán mã hoá 3DES được mã hoá 3 lần... thúc độc lập với nhau Khi một bên muốn kết thúc, nó gửi đi một gói tin FIN và bên kia gửi lại tin báo nhận ACK Vì vậy, một quá trình kết thúc tiêu biểu sẽ có 2 cặp gói tin trao đổi Một kết nối có thể tồn tại ở dạng "nửa mở": một bên đã kết thúc gửi dữ liệu nên chỉ nhận thông tin, bên kia vẫn tiếp tục gửi II.4.6 Cấu trúc gói tin TCP Một gói tin TCP bao gồm 2 phần:  header  dữ liệu Phần header có 11 trường... máy có mục đích đặc biệt để tìm ra khóa Thuật toán mã hoá 3DES gồm 3 chìa khoá 64 bit, tức là toàn bộ chiều dài khoá là 192 bit Trong khi mã hoá riên tư, chúng ta đơn giản là nhập toàn bộ 192 bit khoá đơn là vào mỗi 3 chìa khoá cá nhân SVTH: Trần Văn Huynh – Trần Văn Nghĩa Trang: 19 Báo cáo Đồ án- Lập Trình Mạng GVHD: Th.S Mai Văn Hà Hình 10: Mô tả 3DES Thủ tục mã hoá cũng tương tự DES nhưng nó được... nhanh trên các máy 32 bit, có thể được thực hiện một cách khá gọn Thuật toán MD5 là sự mở rộng của thuật toán MD4 MD5 chậm hơn một chút so với MD4 nhưng an toàn hơn MD5 được thiết kế vì người ta cảm thấy có thể MD4 đã được chấp nhận trong sử dụng quá nhanh so với sự đánh giá nó MD4 được thiết kế để chạy rất nhanh, nó đã “nằm trên ranh giới“ theo cách nói về nguy cơ của sự thành công trong việc phá mã MD5 . CÔNG NGHỆ THÔNG TIN BỘ MÔN MẠNG VÀ TRUYỀN THÔNG   ĐỒ ÁN LẬP TRÌNH MẠNG NGÀNH CÔNG NGHỆ THÔNG TIN ĐỀ TÀI : XÂY DỰNG ỨNG DỤNG MÃ HÓA MD5 & 3DES TRAO ĐỔI THÔNG TIN TRÊN MẠNG Sinh viên. II.4.6. Cấu trúc gói tin TCP 14 III. Thuật toán mã hóa MD5 15 III.1. Giới thiệu 15 III.2. Mô tả thuật toán MD5 16 III.3. Các bước mã hóa thông điệp 18 III.4. Ứng dụng của MD5 Trong thực tế 19 III.5 có thể giải mã (decrypt) thông tin thành dạng thông tin có thể hiểu được (plain text). Thông tin đôi khi bị giải mã mà không cần biết khóa bí mật. Ngành học nghiên cứu về việc bẻ khóa (attack/crack/hack)

Ngày đăng: 02/06/2015, 16:55

Từ khóa liên quan

Mục lục

  • CHƯƠNG II. CƠ SỞ LÝ THUYẾT

    • II.1.1. Dựa vào chức năng có thể chia thành các loại server như sau

    • II.1.2. Ưu điểm và nhược điểm của mô hình Client-Server

    • II.2.1. Các chế độ giao tiếp

    • II.3.1. Khái niệm Sockets

    • II.3.2. Phân loại Sockets

    • II.4.1. Đặc điểm của giao thức TCP( có kết nối)

    • II.4.2. Hoạt động của giao thức TCP

    • II.4.3. Thiết lập kết nối

    • II.4.4. Truyền dữ liệu

    • II.4.5. Kết thúc kết nối

    • II.4.6. Cấu trúc gói tin TCP

    • CHƯƠNG III. XÂY DỰNG CHƯƠNG TRÌNH

    • CHƯƠNG IV. KẾT QUẢ

    • CHƯƠNG V. KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

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

Tài liệu liên quan