Một số thuật toán trong trò chơi trí tuệ và xây dựng chương trình thử nghiệm

52 546 0
Một số thuật toán trong trò chơi trí tuệ và xây dựng chương trình thử nghiệm

Đ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

LỜI CẢM ƠN Sau thời gian học tập nghiên cứu em hoàn thành khóa luận tốt nghiệp với đề tài: “Chuẩn mã liệu DES xây dựng chương trình ứng dụng” Em xin tỏ lòng biết ơn sâu sắc đến thầy giáo TS Trịnh Đình Vinh, trường Đại học sư phạm Hà Nội tận tình giúp đỡ truyền đạt nhiều kinh nghiệm để đề tài thực hoàn thành Em xin cảm ơn thầy, cô giáo khoa Công nghệ Thông tin, trường Đại học sư phạm Hà Nội 2, suốt bốn năm học vừa qua trang bị cho em kiến thức cần thiết bổ ích giúp em hoàn thành khóa luận tốt nghiệp kỹ nghề nghiệp sau Cuối cùng, em xin bày tỏ lòng biết ơn tới gia đình bạn bè giúp đỡ, động viên em nhiều suốt trình học tập để em hoàn thành đề tài khóa luận Tuy có cố gắng định thời gian trình độ có hạn nên khóa luận nhiều thiếu sót hạn chế định Kính mong nhận góp ý thầy cô bạn Hà Nội, ngày 15 tháng 05 năm 2013 Sinh viên Nguyễn Thị Huệ LỜI CAM ĐOAN Tên em là: NGUYỄN THỊ HUỆ Sinh viên lớp: K35 - Tin học, khoa Công nghệ Thông tin, trường Đại học sư phạm Hà Nội Em xin cam đoan: Đề tài: “Chuẩn mã liệu DES xây dựng chương trình ứng dụng” nghiên cứu riêng em, hướng dẫn thầy giáo TS Trịnh Đình Vinh Khóa luận hoàn toàn không chép tác giả khác Nếu sai em xin hoàn toàn chịu trách nhiệm Hà Nội, ngày 15 tháng 05 năm 2013 Người cam đoan Nguyễn Thị Huệ MỤC LỤC MỞ ĐẦU CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái niệm sở liệu 1.2 An toàn bảo mật thông tin 1.3 Mục tiêu nguyên tắc chung an toàn bảo mật thông tin 1.4 Giới thiệu SQL Server Visual Basic.NET 1.4.1 SQL Server 1.4.2 Microsoft.NET Visual Basic.NET CHƯƠNG 2: CÁC HỆ MÃ HÓA CỔ ĐIỂN 13 2.1 Giới thiệu hệ mật mã 13 2.1.1 Khái niệm hệ mật mã 13 2.1.2 Một số ứng dụng mật mã học 14 2.1.3 Phân loại thuật toán hệ mật mã 15 2.2 Các hệ mã thông dụng 16 2.2.1 Hệ mã hoá thay (subtitution cipher) 16 2.2.2 Hệ mã Caesar 17 2.2.3 Hệ mã Affine 18 2.2.4 Hệ mã Vigenere 19 2.2.5 Hệ mã Hill 20 CHƯƠNG 3: HỆ MÃ CHUẨN DES 21 3.1 Các khái niệm 21 3.2 Lịch sử DES (Data Encryption Standards) 23 3.3 Đặc tả DES 23 3.3.1 Mô tả sơ đồ mã hoá DES 23 3.3.2 Mô tả hàm f 26 3.3.3 Hoán vị IP hoán vị ngược IP-1 28 3.3.4 Hàm (ánh xạ) mở rộng E 29 3.3.5 Mô tả hộp S-box hộp P-box 30 3.3.6 Thuật toán sinh khóa 33 3.4 Tính chất DES 36 3.5 Lập mã DES 37 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 42 4.1 Giới thiệu toán 42 4.2 Chương trình thử nghiệm 43 4.2.1 Formmain 43 4.2.2 Form Lập mã Des 44 4.2.3 Form Giải mã Des 44 KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 45 TÀI LIỆU THAM KHẢO 46 DANH MỤC HÌNH Trang Hình 3.1 Biểu diễn dãy bit thành phần L R 24 Hình 3.2 Quy trình phát sinh dãy 64 bit LiRi từ dãy 64 bit Li-1Ri-1 khóa Ki 24 Hình 3.3 Sơ đồ mã hóa DES 25 Hình 3.4 Sơ đồ hàm f 27 Hình 3.5 Sơ đồ tạo khóa DES 34 Hình 4.1 Formmain 43 Hình 4.2 Form Lập mã DES 44 Hình 4.3 Form Giải mã DES 44 DANH MỤC BẢNG Trang Bảng 2.1 Bảng đánh số chữ Tiếng anh 18 Bảng 3.1 Bảng hoán vị IP 28 Bảng 3.2 Bảng hoán vị IP-1 28 Bảng 3.3 Bảng mô tả hàm mở rộng E 29 Bảng 3.4 Hộp S1 31 Bảng 3.5 Hộp S2 31 Bảng 3.6 Hộp S3 31 Bảng 3.7 Hộp S4 31 Bảng 3.8 Hộp S5 32 Bảng 3.9 Hộp S6 32 Bảng 3.10 Hộp S7 32 Bảng 3.11 Hộp S8 32 Bảng 3.12 Hộp P-box 33 Bảng 3.13 Hộp PC-1 35 Bảng 3.14 Hộp PC-2 35 MỞ ĐẦU Lí chọn đề tài Hiện nay, nước ta giai đoạn tiến hành công nghiệp hoá, đại hoá đấ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 Thông tin có vai trò quan trọng, phải đảm bảo tính suốt thông tin nghĩa thông tin không bị sai lệch, bị thay đổi, bị lộ trình truyền từ nơi gửi đến nơi nhận Với phát triển nhanh công nghệ mạng máy tính đặc biệt mạng Internet khối lượng thông tin ngày chuyển tải nhiều Những tập đoàn công nghiệp, công ty đa quốc gia, thị trường chứng khoán tiến hành xử lý truyền nhận thông tin đắt giá, phiên giao dịch hay mua bán cổ phiếu, trái phiếu tiến hành qua mạng Giờ với tăng trưởng nhanh siêu thị điện tử, thương mại điện tử hàng ngày có khối lượng tiền lớn lưu chuyển mạng toàn cầu Internet, vấn đề khó khăn đặt giữ thông tin bí mật giữ cho tiền đến địa cần đến Mã hoá thông tin phương pháp đảm bảo tính suốt thông tin 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 Thế giới như: 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… Với mong muốn tìm hiểu cách bảo mật thông tin, em chọn đề tài “Chuẩn mã liệu DES xây dựng chương trình ứng dụng” với chức lập mã, giải mã Mục đích nhiệm vụ nghiên cứu Mục đích nghiên cứu tìm hiểu chuẩn mã liệu để mã hóa giải mã chuỗi văn nhằm đảm bảo tính xác, an toàn cho liệu truyền đi, tránh nguy bị hỏng hóc hay mát liệu Nhiệm vụ nghiên cứu tìm hiểu chuẩn mã liệu DES xây dựng chương trình ứng dụng Đối tượng nghiên cứu - Nghiên cứu hệ mã hóa cổ điển: Hệ mã hóa thay (subtitution cipher), hệ mã Caesar, hệ mã Affine, hệ mã Vigenere, hệ mã Hill… - Nghiên cứu hệ mật mã: Khái niệm hệ mật mã, số ứng dụng hệ mật mã, phân loại thuật toán hệ mật mã… - Nghiên cứu hệ mã chuẩn DES, thành phần có DES: hàm f, bảng hoán vị IP hoán vị ngược IP-1, hàm mở rộng E, hộp S - box P - box - Tìm hiểu ngôn ngữ VB.NET Phạm vi nghiên cứu Khóa luận tập trung nghiên cứu hệ mã chuẩn DES gồm quy trình mã hóa giải mã sử dụng chuẩn DES 16 vòng ứng dụng thực tế Phương pháp nghiên cứu - Nghiên cứu qua việc đọc sách, báo tài liệu liên quan nhằm xây dựng sở lý thuyết đề tài biện pháp cần thiết để giải vấn đề đề tài - Tham khảo ý kiến chuyên gia để thiết kế chương trình phù hợp với thực tiễn - Thông qua quan sát thực tế, yêu cầu sở lý luận nghiên cứu kết đạt qua phương pháp Ý nghĩa khoa học thực tiễn đề tài Đề tài giới thiệu hướng nghiên cứu ứng dụng chuẩn mã liệu DES vào thực tế Nếu giải tốt vấn đề bảo mật thông tin mang lại ý nghĩa to lớn: làm cho người sử dụng tin tưởng thực giao dịch mạng, nhà cung cấp dịch vụ giao dịch trực tuyến đảm bảo thông tin khách hàng giao dịch mạng an toàn… Nếu chuẩn mã liệu DES đưa vào nghiên cứu đóng vai trò quan trọng việc tạo phương pháp mã hóa bảo mật phép công khai thường sử dụng để mô tả kỹ thuật phân tích giải mã phương pháp mã hóa Cấu trúc khóa luận Ngoài phần mở đầu, kết luận… nội dung khóa luận chia làm chương sau: Chương 1: Cơ sở lý thuyết Chương 2: Các hệ mã hóa cổ điển Chương 3: Hệ mã chuẩn DES Chương 4: Xây dựng chương trình ứng dụng Kết đạt Từ mục đích, yêu cầu, nhiệm vụ đề ban đầu khóa luận đạt kết sau: Tìm hiểu chuẩn mã liệu DES 16 vòng xây dựng chương trình ứng dụng chuẩn mã liệu DES với ngôn ngữ lập trình VB.NET làm công việc lập mã, giải mã với chuỗi nhập vào không dấu giúp cho việc bảo mật thông tin tốt CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 1.1 Khái niệm sở liệu Cơ sở liệu (CSDL) nguồn cung cấp thông tin cho hệ thống thông tin máy tính, liệu lưu trữ cách có cấu trúc theo quy định nhằm giảm thiểu dư thừa đảm bảo toàn vẹn liệu Hệ quản trị sở liệu chương trình để xử lý, thay đổi liệu Theo nghĩa này, hệ quản trị sở liệu có nhiệm vụ quan trọng biên dịch với ngôn ngữ bậc cao nhằm giúp người sử dụng dùng hệ thống mà nhiều không cần quan tâm đến thuật toán chi tiết biểu diễn liệu máy tính Có mô hình CSDL sử dụng, là: - Mô hình phân cấp: Mô hình liệu cây, nút biểu diễn tập thực thể, nút nút cha liên hệ theo mối quan hệ xác định - Mô hình mạng: Mô hình biểu diễn đồ thị có hướng Mô hình mạng gần giống mô hình cây, nút cha có nhiều nút khác nút nút cha mà có nhiều nút cha Do việc truy cập thông tin mềm dẻo - Mô hình quan hệ: Mô hình dựa cở sở lý thuyết tập hợp quan hệ Các liệu chuyển vào bảng hai chiều, bảng gồm hàng cột, hàng xác định ghi, cột xác định trường liệu Các móc nối với để thể mối quan hệ 1.2 An toàn bảo mật thông tin Trải qua nhiều kỷ hàng loạt giao thức (protocol) chế tạo để đáp ứng nhu cầu an toàn bảo mật thông tin mà truyền tải phương tiện vật lý Thường mục tiêu an toàn bảo mật thông tin đạt đơn dựa vào thuật toán toán học giao thức, mà S5 12 10 11 14 11 12 13 15 10 11 10 13 15 12 11 12 13 15 14 15 13 14 9 6 14 10 Bảng 3.8 Hộp S5 S6 12 10 15 13 14 11 12 13 14 11 14 15 12 10 13 11 12 15 10 11 14 13 10 15 Bảng 3.9 Hộp S6 S7 11 14 15 13 12 10 13 11 10 14 12 15 11 13 12 14 10 15 11 13 10 15 14 12 Bảng 3.10 Hộp S7 S8 13 15 11 10 14 12 15 13 10 12 11 14 11 12 14 10 13 15 14 10 13 15 12 11 Bảng 3.11 Hộp S8 Ví dụ 3.2: Giả sử đầu vào hộp S6 chuỗi bit 110011 từ 31 đến 36 Bit bit cuối kết hợp lại thành 11 tương ứng với hàng hộp S6 Bốn bit có giá trị 1001, tương ứng với cột Như vậy, giá trị 32 nhận 14 (số đếm cột, hàng 0) giá trị 1110 thay cho giá trị 110110 đầu b) Hộp P-Box Việc hoán vị mang tính đơn ánh, nghĩa bit đầu vào cho bit đầu ra, không bit sử dụng hai lần hay bị bỏ qua Hộp P-Box thực chất làm chức xếp đơn theo bảng sau: Bảng mô tả hộp P-box(P): 16 20 21 29 12 28 17 15 23 26 18 31 10 24 14 32 27 19 13 30 22 11 25 Bảng 3.12 Hộp P-box Ví dụ 3.3: Như bit 21 dịch chuyển đến bit thứ 4, bit thứ lại dịch chuyển đến bit 31 Kết cuối hộp P-Box lại XOR với nửa trái khối 64 bit sau nửa trái nửa phải đảo cho bắt đầu vòng khác 3.3.6 Thuật toán sinh khóa K xâu có độ dài 64 bit, có 56 bit dùng làm khoá bit dùng để kiểm tra (để phát lỗi) Các bit vị trí 8, 16 … 64 xác định, cho byte chứa số lẻ số Vì vậy, lỗi phát bit Các bit kiểm tra bỏ qua tính khoá Mười sáu vòng lặp DES chạy thuật toán với 16 khóa khác Các khóa sinh từ khóa DES thuật toán sinh khóa Khóa K(64 bit) qua 16 bước biến đổi, bước biến đổi khóa sinh với độ dài 48 bit 33 Các bước thực hiện: Cho khoá 64 bit K, loại bỏ bit kiểm tra hoán vị bit lại K tương ứng với hoán vị (cố định) PC-1 Ta viết PC-1(K) = C0D0, với C0 bao gồm 28 bit PC-1(K) D0 28 bit lại Với i nằm khoảng từ đến 16, ta tính: Ci = LSi(Ci-1) Di = LSi(Di-1) Và Ki = PC - 2(CiDi), LSi biểu diễn phép chuyển chu trình (cyclic shift) sang trái hai vị trí tuỳ thuộc vào vị trí i; đẩy vị trí i = 1, 2, 16 đẩy vị trí trường hợp lại PC-2 hoán vị cố định khác Sơ đồ sinh khóa DES: Khóa (64 bit) PC-1 C0 (28 bit) D0 (28 bit) LS1 LS1 C1 (28 bit) D1 (28 bit) LS2 LS2 Ci (28 bit) Di (28 bit) LS1 LS1 C16 (28 bit) D16 (28 bit) PC-2 K1 (48bit) PC-2 Ki (48bit) PC-2 K16 (48bit) Hình 3.5 Sơ đồ tạo khóa DES 34 Các bảng PC-1 PC-2 sau: PC-1 57 49 41 33 25 17 58 50 42 34 26 18 10 59 51 43 35 27 19 11 34 60 52 44 36 63 55 39 31 23 15 62 54 46 38 30 22 14 61 53 45 37 29 21 13 28 20 12 Bảng 3.13 Hộp PC-1 PC-2 14 17 11 24 28 15 21 10 23 19 12 26 16 27 20 13 41 50 31 37 47 55 30 40 51 45 33 48 44 49 39 56 34 53 46 42 50 36 29 32 Bảng 3.14 Hộp PC-2 Ví dụ 3.4: Bit vị trí 33 khóa dịch sang vị trí 35 ngoài, bit vị trí 18 khóa bị bỏ qua Chính việc dịch vòng tạo nên tập hợp khóa sử dụng tổ hợp khóa Mỗi bit sử dụng khoảng 14 lần tổng số 16 tổ hợp khóa 35 3.4 Tính chất DES Tác dụng đồng loạt: Khi ta thay đổi bit khóa gây tác động đồng loạt làm thay đổi nhiều bit mã Đây tính chất mong muốn khóa thuật toán mã hóa Nếu thay đổi bit đầu vào khóa kéo theo thay đổi nửa số bit đầu Do đoán khóa Có thể nói DES thể tác động đồng loạt mạnh Sức mạnh DES - Kích thước khóa Độ dài khóa DES 56 bit có 256=7.2 × 1016 giá trị khác Đây số lớn nên tìm kiếm duyệt khó khăn Các thành tựu gần thời gian cần thiết để giải trang mã DES mà khóa là: sau vài tháng Internet năm 1997; vài ngày thiết bị phần cứng tăng cường năm 1998; sau 22 kết hợp biện pháp năm 1999 Như đoán rõ sau khoảng thời gian định, có nguồn lực máy tính mạnh Chính người ta xét vài biến thể DES nhằm nâng cao sức mạnh cho DES Sức mạnh DES - công thời gian Đây dạng công vào cài đặt thực tế mã Ở sử dụng hiểu biết trình cài đặt thuật toán mà suy thông tin số khóa khóa Đặc biệt sử dụng kết luận tính toán chiếm khoảng thời gian khác phụ thuộc vào giá trị đầu vào Do kẻ thám mã theo dõi thời gian thực mà phán đoán khóa Sức mạnh DES - công thám mã Có số phân tích thám mã DES Rồi cách thu thập thông tin mã, đoán biết tất số khóa dùng Nếu cần thiết tìm duyệt khóa lại Nói chung, công dựa phương pháp thống kê bao gồm: thám mã sai phân, thám mã tuyến tính công khóa liên kết 36 3.5 Lập mã DES Đây ví dụ việc lập mã sử dụng DES Giả sử ta mã hoá rõ sau dạng thập phân (Hexadecimal): 0123456789ABCDEF Sử dụng khoá thập lục phân: 133457799BBCDFF1 Khoá dạng nhị phân bit kiểm tra là: 00010010 01101001 01011011 11001001 101101111011011111111000 Áp dụng IP, ta nhận L0 R0 (trong dạng nhị phân): L0 = 11001100000000001100110011111111 L1 = R0 = 11110000101010101111000010101010 16 vòng lập mã thể sau: E(R0) = 011110100001010101010101011110100001010101010101 K1 = 000110110000001011101111111111000111000001110010 E(R0)  K1 = 011000010001011110111010100001100110010100100111 Output S-hop = 01011100100000101011010110010111 f(R0,K1) = 00100011010010101010100110111011 L2 = R1 = 11101111010010100110010101000100 E(R1) = 011101011110101001010100001100001010101000001001 K2 = 011110011010111011011001110110111100100111100101 E(R1)  K2 = 000011000100010010001101111010110110001111101100 Output S-hop = 11111000110100000011101010101110 f(R1, K2) = 00111100101010111000011110100011 L3 = R2 = 11001100000000010111011100001001 37 E(R2) = 111001011000000000000010101110101110100001010011 K3 = 010101011111110010001010010000101100111110011001 E(R2)  K3 = 101100000111110010001000111110000010011111001010 Output S-box = 00100111000100001110000101101111 f(R2, K3) = 01001101000101100110111010110000 L4 = R3 = 10100010010111000000101111110100 E(R3) = 010100000100001011111000000001010111111110101001 K4 = 011100101010110111010110110110110011010100011101 E(R3)  K4 = 001000101110111100101110110111100100101010110100 S-box output = 00100001111011011001111100111010 f(R3, K4) = 10111011001000110111011101001100 L5 = R4 = 01110111001000100000000001000101 E(R4) = 101110101110100100000100000000000000001000001010 K5 = 011111001110110000000111111010110101001110101000 E(R4)  K5 = 110001100000010100000011111010110101000110100010 Output S-box = 01010000110010000011000111101011 f(R4, K5) = 00101000000100111010110111000011 L6 = R5 = 10001010010011111010011000110111 E(R5) = 110001010100001001011111110100001100000110101111 K6 = 011000111010010100111110010100000111101100101111 E(R5)  K6 = 101001101110011101100001100000001011101010000000 Output S-box = 01000001111100110100110000111101 f(R5, K6) = 10011110010001011100110100101100 L7 = R6 = 11101001011001111100110101101001 38 E(R6) = 111101010010101100001111111001011010101101010011 K7 = 111011001000010010110111111101100001100010111100 E(R6)  K7 = 000110011010111110111000000100111011001111101111 output S-box = 00010000011101010100000010101101 f(R6, K7) = 10001100000001010001110000100111 L8 = R7 = 00000110010010101011101000010000 E(R7) = 000000001100001001010101010111110100000010100000 K8 = 111101111000101000111010110000010011101111111011 E(R7)  K8 = 111101110100100001101111100111100111101101011011 output S-box = 01101100000110000111110010101110 f(R7, K8) = 00111100000011101000011011111001 L9 = R8 = 11010101011010010100101110010000 E(R8) = 011010101010101101010010101001010111110010100001 K9 = 111000001101101111101011111011011110011110000001 E(R8)  K9 = 100010100111000010111001010010001001101100100000 output S-box = 00010001000011000101011101110111 f(R8, K9) = 00100010001101100111110001101010 L10 = R9 = 00100100011111001100011001111010 E(R9) = 000100001000001111111001011000001100001111110100 K10 = 101100011111001101000111101110100100011001001111 E(R9)  K10 = 101000010111000010111110110110101000010110111011 output S-box = 11011010000001000101001001110101 f(R9, K10) = 01100010101111001001110000100010 L11 = R10 = 10110111110101011101011110110010 39 E(R10) = 010110101111111010101011111010101111110110100101 K11 = 001000010101111111010011110111101101001110000110 E(R10)  K11 = 011110111010000101111000001101000010111000100011 output S-box = 01110011000001011101000100000001 f(R10, K11) = 11100001000001001111101000000010 L12 = R11 = 11000101011110000011110001111000 E(R11) = 011000001010101111110000000111111000001111110001 K12 = 011101010111000111110101100101000110011111101001 E(R11)  K12 = 000101011101101000000101100010111110010000011000 output S-box = 01111011100010110010011000110101 f(R11, K12) = 11000010011010001100111111101010 L13 = R12 = 01110101101111010001100001011000 E(R12) = 001110101011110111111010100011110000001011110000 K13 = 100101111100010111010001111110101011101001000001 E(R12) K13 = 101011010111100000101011011101011011100010110001 output S-box = 10011010110100011000101101001111 f(R12, K13) = 11011101101110110010100100100010 L14 = R13 = 00011000110000110001010101011010 E(R13) = 000011110001011000000110100010101010101011110100 K14 = 010111110100001110110111111100101110011100111010 E(R13) K14 = 010100000101010110110001011110000100110111001110 output S-box = 01100100011110011001101011110001 f(R13, K14) = 10110111001100011000111001010101 L15 = R14 = 11000010100011001001011000001101 40 E(R14) = 111000000101010001011001010010101100000001011011 K15 = 101111111001000110001101001111010011111100001010 E(R14) K15 = 010111111100010111010100011101111111111101010001 output S-box = 10110010111010001000110100111100 f(R14, K15) = 01011011100000010010011101101110 L16 = R15 = 01000011010000100011001000110100 E(R15) = 001000000110101000000100000110100100000110101000 K16 = 110010110011110110001011000011100001011111110101 E(R15) K16 = 111010110101011110001111000101000101011001011101 output S-box = 10100111100000110010010000101001 f(R15, K16) = 11001000110000000100111110011000 R16 = 00001010010011001101100110010101 Cuối cùng, áp dụng IP-1 cho R16L16 ta nhận mã dạng thập lục phân sau: 85E813540F0AB405 41 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 4.1 Giới thiệu toán - Phát biểu toán: Ta có đầu vào chuỗi x có độ dài 64 bit sử dụng khóa k có độ dài 56 bit Vậy làm để mã hóa chúng thành chuỗi y có độ dài 64 bit? Bài toán sử dụng phương pháp DES mã hoá chuỗi x có độ dài 64 bit với khoá k có độ dài 56 bit thành chuỗi y có độ dài 64 bit: - Thuật toán mã hoá bao gồm giai đoạn: + Input: chuỗi x, khóa k + Output: chuỗi y Bước 1: Với rõ cho trước x, xâu bít x0 xây dựng cách hoán vị bit x theo phép hoán vị cố định ban đầu IP Ta viết: x0 = IP(X) = L0R0, L0 gồm 32 bít đầu R0 gồm 32 bít cuối Bước 2: Sau tính toán 16 lần lặp theo hàm xác định Ta tính LiRi, ≤ i ≤ 16 theo quy tắc sau: Li = Ri-1 Ri = Li-1  f(Ri-1, Ki) Trong đó: +  kí hiệu phép loại trừ hai xâu bít (cộng theo modulo 2) + f hàm + K1, K2 … K16 xâu bít độ dài 48 tính hàm khóa K tạo thành bảng khóa Bước 3: Áp dụng phép hoán vị ngược IP-1 cho xâu bit R16L16, ta thu mã y Tức y = IP-1 (R16L16) Hãy ý thứ tự đảo L16 R16 - Thuật toán giải mã: thực nhờ thuật toán thuật toán mã hóa đầu vào y dùng bảng khóa theo thứ tự ngược lại K16, K15 … K1 Đầu thuật toán rõ x 42 + Input: chuỗi y, khóa k + Output: chuỗi x Bước 1: Với mã y, xâu bít y16 xây dựng cách hoán vị bit y theo phép hoán vị ngược IP-1 Ta viết: y16 = IP-1(y) = L16R16, L16 gồm 32 bít đầu R16 gồm 32 bít cuối Bước 2: Sau tính toán 16 lần lặp theo hàm xác định Ta tính LiRi, ≤ i ≤ 16 theo quy tắc sau: Li = Ri-1 Ri = Li-1  f (Ri, Ki) Trong đó: +  kí hiệu phép loại trừ hai xâu bít (cộng theo modulo 2) + f hàm + Ki: i = 16, 15, …, Trong K16, K15 … K1 xâu bít độ dài 48 tính hàm khóa K tạo thành bảng khóa Bước 3: Áp dụng phép hoán vị IP cho xâu bit R0L0, ta thu rõ x Tức x = IP (R0L0) Hãy ý thứ tự đảo L0 R0 4.2 Chương trình thử nghiệm 4.2.1 Formmain Hình 4.1 Formmain 43 4.2.2 Form Lập mã Des Hình 4.2 Form Lập mã DES 4.2.3 Form Giải mã Des Hình 4.3 Form Giải mã DES 44 KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN  Kết luận: Qua trình tìm hiểu, phân tích, nghiên cứu khóa luận đạt kết sau: + Tìm hiểu số hệ mã cổ điển Affine, Caesar, Vigenere, Hill… + Tìm hiểu, sử dụng thành thạo ngôn ngữ lập trình VB.NET + Xây dựng chương trình ứng dụng chuẩn mã liệu Des 16 vòng với ngôn ngữ lập trình VB.NET làm công việc lập mã, giải mã giúp cho việc bảo mật thông tin tốt Đó kết sơ mà em tìm hiểu trình nghiên cứu lý thuyết thiết kế chương trình Tuy nhiên chương trình dừng lại việc lập mã giải mã với chuỗi nhập vào không dấu Sau thời gian nghiên cứu xây dựng đề tài giúp đỡ thầy cô bạn bè giúp em hoàn thành khóa luận đáp ứng nhu cầu thực tiễn đặt Do điều kiện thời gian kinh nghiệm chưa nhiều nên không tránh khỏi sai sót chương trình báo cáo Em mong nhận đóng góp ý kiến thầy cô bạn để chương trình thêm hoàn thiện  Hướng phát triển đề tài: Đây đề tài có ứng dụng rộng rãi, mang tính chất thực tế phát triển tiếp Hướng phát triển đề tài là: + Xây dựng chương trình thử nghiệm chuẩn mã liệu Des 16 vòng để lập mã giải mã với chuỗi nhập vào có dấu, lập giải mã với file văn + Tìm hiểu xây dựng chương trình thử nghiệm với thuật toán Triple DES (hay mã hóa DES lần) 45 TÀI LIỆU THAM KHẢO Tiếng Việt TS Trần Văn Dũng, An toàn bảo mật thông tin, Trường Đại học Giao thông An toàn bảo mật thông tin, Khoa Công nghệ thông tin, Trường Đại học Hàng Hải Giáo trình quản trị sở liệu SQL Server, Khoa CNTT, Trường Đại học Huế Nguyễn Hoàng Cương, Tài liệu Lý thuyết mật mã http://doc.edu.vn/tai-lieu/de-tai-ma-hoa-bao-mat-trong-wimax-2722/ http://vi.wikipedia.org/wiki/DES_(mã_hóa) Tiếng Anh SQL Server 2005, T-SQL Recipes: Problem, Solution, Approach Sams Tech yourself Microsoft SQL Server 2005 Express in 24 hours Dave Grundgeiger, Giáo trình Lập trình với Visual Basic NET, Nhà xuất thống kê dịch 46 [...]... dạng trực quan +) Chạy một chương trình Visual Basic - Nhắp chuột vào nút start màu xanh trên standard bar để chạy chương trình (bạn cũng có thể ấn phím F5) - Ấn thử nút Answer và Quit thử xem +) Cửa sổ thuộc tính Properties Cho phép thay đổi thông số của đối tượng thiết kế form sau này Bạn thử mở giao diện chương trình MusicTrivia và click vào một phần tử bất kỳ rồi thay đổi thử các thuộc tính của... được tạo nên từ nhiều thuật toán mã hoá thay thế đơn Ánh xạ 1 - 1 như trong trường hợp thay thế đơn, nhưng có thể thay đổi trong phạm vi một thông điệp Ví dụ, có thể có năm thuật toán mã hoá đơn khác nhau được sử dụng Đặc biệt thuật toán mã hoá đơn được sử dụng thay đổi theo vị trí của mỗi ký tự trong bản rõ 4 Thay thế đa sơ đồ (A pologram substitution cipher): là thuật toán trong đó các khối ký tự... các kỹ thuật mạnh hơn hoặc dịch vụ thương mại điện tử cho phép tiến hành các giao dịch an toàn trên các kênh truyền thông không an toàn như Internet 2.1.3 Phân loại các thuật toán của hệ mật mã Phân loại các thuật toán mật mã học dựa vào hai tiêu chí:  Tiêu chí thứ nhất: dựa vào các dịch vụ an toàn bảo mật mà các thuật toán cung cấp, dựa vào số lượng khoá sử dụng (0, 1, 2), chúng ta có các thuật toán. .. hàm băm (Hash function) Các hàm băm là các thuật toán mã hoá không khoá hoặc có khoá và thường được sử dụng trong các hệ chữ ký điện tử hoặc các hệ mã khoá công khai  Tiêu chí thứ hai: phân loại các thuật toán mã hoá dựa trên cách thức xử lý input của thuật toán (tức là bản rõ), dựa trên tiêu chí này chúng ta có hai loại thuật toán mã hoá sau: 1 Các thuật toán mã hoá khối (chẳng hạn như DES, AES…)... Các thuật toán mã hoá dòng (RC4…) coi bản rõ là một luồng bit, byte liên tục 2.2 Các hệ mã thông dụng 2.2.1 Hệ mã hoá thay thế (subtitution cipher) Hệ mã hoá thay thế là hệ mã hoá trong đó mỗi ký tự của bản rõ được thay thế bằng ký tự khác trong bản mã (có thể là một chữ cái, một số hoặc một ký hiệu) Có 4 kỹ thuật thay thế sau đây: 1 Thay thế đơn (A simple substitution cipher): là hệ trong đó một ký... SQL có những vai trò như sau: 7 SQL là ngôn ngữ hỏi có tính tương tác: Người sử dụng có thể dễ dàng thông qua các trình tiện ích để gửi các yêu cầu dưới dạng các câu lệnh SQL đến cơ sở dữ liệu và nhận kết quả trả về từ cơ sở dữ liệu SQL là ngôn ngữ lập trình cơ sở dữ liệu: Các lập trình viên có thể nhúng các câu lệnh SQL vào trong các ngôn ngữ lập trình để xây dựng nên các chương trình ứng dụng giao... thành 1 vành 2.1.2 Một số ứng dụng của mật mã học Ngày nay các ứng dụng trên máy tính đều sử dụng các thuật toán và các giao thức mật mã học Từ các ứng dụng cho các máy tính cá nhân (Desktop Applications) cho tới các chương trình hệ thống như các hệ điều hành hoặc các ứng dụng mạng như Yahoo Messenger hoặc các hệ cơ sở dữ liệu đều có thể sử dụng các thuật toán mã hoá mật khẩu người dùng bằng một hệ... hiệu +) và phép nhân (ký hiệu x) Phép cộng và phép nhân trong Zm được thực hiện tương tự trong Z, ngoại trừ kết quả tính theo module m 13 Ví dụ 2.1: Giả sử ta cần tính giá trị 11 x 13 trong Z16 Trong Z, ta có kết quả của phép nhân 11 x 13 Do 143 = 15 (mod16) nên 11 x 13 = 15 trong Z16 Một số tính chất của Zm: 1 Phép cộng đóng trong Zm, i.e., a, b Î Zm, a + b Î Zm 2 Tính giao hoán của phép cộng trong. .. có các thuật toán mã hoá sau: 1 Các thuật toán mã hoá bí mật tương ứng với các hệ mã mật khoá bí mật hay khoá đối xứng SKC (Symmetric Key Crytosystem), do vai trò của người nhận và người gửi là như nhau, cả hai đều có thể mã hoá và giải mã thông điệp, như Caesar, DES, AES… Khoá sử dụng cho các thuật toán này là một khoá cho cả việc mã hoá và giải mã 2 Các thuật toán mã hoá công khai tương ứng với các... bản mã và bản rõ cũng là các thông điệp được tạo thành từ một bảng chữ cái A như trong hệ mã Ceasar, các chữ cái được đánh số từ 0 tới N - 1, trong đó N là số phần tử của bảng chữ cái Không gian khoá K được xác định như sau: + Với mỗi số nguyên dương M, khoá có độ dài M là một xâu ký tự có độ dài M, K = k1k2 … kM + Để mã hoá một bản rõ P người ta chia P thành các đoạn độ dài M và chuyển thành số thứ ... là: + Xây dựng chương trình thử nghiệm chuẩn mã liệu Des 16 vòng để lập mã giải mã với chuỗi nhập vào có dấu, lập giải mã với file văn + Tìm hiểu xây dựng chương trình thử nghiệm với thuật toán. .. Thuật toán sinh khóa 33 3.4 Tính chất DES 36 3.5 Lập mã DES 37 CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG 42 4.1 Giới thiệu toán 42 4.2 Chương trình thử. .. vị trí số khối vào di chuyển đến vị trí số khối bit vị trí số 21 đầu vào di chuyển đến vị trí 30 32 đầu 29 3.3.5 Mô tả hộp S-box hộp P-box a) Mô tả hộp S-box Đối với sơ đồ mã hoá DES, tính toán

Ngày đăng: 08/11/2015, 20:02

Từ khóa liên quan

Mục lục

  • Người cam đoan

  • DANH MỤC HÌNH

  • DANH MỤC BẢNG

  • Bảng 2.1. Bảng đánh số các chữ cái Tiếng anh 18

  • MỞ ĐẦU

  • CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

    • 1.1. Khái niệm cơ bản về cơ sở dữ liệu

    • 1.2. An toàn bảo mật thông tin

    • 1.3. Mục tiêu và nguyên tắc chung của an toàn bảo mật thông tin

    • 1.4. Giới thiệu về SQL Server và Visual Basic.NET

      • 1.4.1. SQL Server

      • 1.4.2. Microsoft.NET và Visual Basic.NET

      •  Tổng quan

      • Microsoft.NET gồm 2 phần chính:

      • Framework và Integrated Development Environment (IDE). Framework cung cấp những gì cần thiết và căn bản, chữ Framework có nghĩa là khung hay khung cảnh trong đó ta dùng những hạ tầng cơ sở theo một qui ước nhất định để công việc được trôi chảy. IDE thì cung cấp một môi trường giúp chúng ta triển khai dễ dàng và nhanh chóng các ứng dụng dựa trên nền tảng .NET. Nếu không có IDE chúng ta cũng có thể dùng một trình soạn thảo như Notepad hay bất cứ trình soạn thảo văn bản nào và sử dụng command line để biên dịch và thực thi, tuy nhiên việc này mất nhiều thời gian.

        •  Kiến trúc .NET Framework

        •  Sơ lược về Visual Basic.Net

        • 2.1. Giới thiệu về hệ mật mã

          • 2.1.1. Khái niệm hệ mật mã

          • 2.1.2. Một số ứng dụng của mật mã học

          • 2.1.3. Phân loại các thuật toán của hệ mật mã

          • 2.2. Các hệ mã thông dụng

            • 2.2.1. Hệ mã hoá thay thế (subtitution cipher)

            • 2.2.2. Hệ mã Caesar

            • Bảng 2.1. Bảng đánh số các chữ cái tiếng Anh

              • 3.1. Các khái niệm

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

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

Tài liệu liên quan