Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với .NET FrameWork

16 1.2K 1
Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với .NET FrameWork

Đ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

Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork MỤC LỤC MỞ ĐẦU CHƯƠNG TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 1.1 Lịch sử 1.2 Mô tả hoạt động 1.2.1 Tạo khóa .3 1.2.2 Mã hóa 1.2.3 Giải mã .4 1.3 Ví dụ .4 1.4 Đặc trưng hệ mật RSA .5 1.5 Độ an toàn hệ mật RSA 1.6 Quản lý khóa công hệ mật RSA 1.6.1 Phân phối khóa công khai 1.6.2 Trung tâm quản lý khóa công khai 1.6.3 Phương pháp sử dụng chứng khóa công khai 1.6.4 Sử dụng mã hóa công khai để phân phối khóa mật CHƯƠNG LẬP TRÌNH MÃ HÓA VÀ GIẢI MÃ DỮ LIỆU BẰNG RSA KẾT HỢP MỘT HỆ MẬT ĐỐI XỨNG BẰNG NET FRAMEWORK 2.1 Yêu cầu toán 2.2 Ý tưởng .9 2.3 Mô tả hoạt động 10 2.3.1 Chương trình sinh cặp khóa công khai 10 2.3.2 Chương trình mã hóa 10 2.3.3 Chương trình giải mã 11 2.4 Hướng dẫn sử dụng chương trình 12 2.4.1 Sinh cặp Public Key Private Key sử dụng RSA 12 2.4.2 Mã hóa 13 2.4.3 Giải mã 14 KẾT LUẬN .15 TÀI LIỆU THAM KHẢO 16 Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork MỞ ĐẦU Ngày nay, với phát triển mạnh mẽ công nghệ thông tin, mạng máy tính trở thành phương tiện hữu dụng phục vụ công tác điều hành, trao đổi thông tin lĩnh vực xã hội Song song với việc ứng dụng công nghệ thông tin sống, đặc biệt việc sử dụng mạng internet môi trường giao tiếp vấn đề an toàn thông tin/dữ liệu trình gửi nhận thông qua mạng có vai trò quan trọng Trên giới có nhiều hội nghị thường niên Hiệp hội quốc tế mã mật liên tục tổ chức; hội nghị Euro Crypt Châu Âu Crypto Mỹ thu hút quan tâm toàn giới chuyên gia an ninh thông tin Các công nghệ mã hoá (mã mật) đại không bảo mật công nghệ mã hoá (thuật toán mã hoá công khai), mà dựa vào bí mật chìa khoá giải mã (giải mã mật) Một hệ đáp ứng đầy đủ yêu cầu bảo mật thông tin, phù hợp với xu hướng trao đổi thông tin qua mạng máy tính Năm 1976, ý tưởng hệ mật khoá công khai Diffie Hellman đưa ra, sau Rivest, Shamir Adleman đưa hệ mật tiếng RSA vào 1977 Tiếp đời số hệ mật dựa thuật toán khác như: hệ mật xếp ba lô Markle-Hellman, hệ mật McElice, hệ mật Elgamal, hệ mật Chor-Rivest; hệ mật đường cong Elliptic,… Trong hệ mật khoá công khai trên, có hệ mật RSA hệ mật mã xây dựng (ra đời năm 1977 MIT) RSA liệt vào giải thuật mã hóa bất đối xứng dùng thông dụng ngày hôm nay, RSA đặt tên từ ba nhà khoa học phát minh nó: Ron Rivest, Adi Shamir, Leonard Adleman Hệ mật RSA ứng dụng rộng rãi mã hóa lập trình mật mã Trong thực tế, kịch phổ biến trường hợp cần mã hóa thông tin khối lượng lớn mã hóa thông tin giải thuật đối xứng, sử dụng giải thuật bất đối xứng(như RSA) để mã hóa khóa giải thuật đối xứng (khi mã hóa đối xứng, khóa mã cần gửi kèm với thông tin mã hóa để bên nhận giải mã Việc mã hóa khóa giúp đảm bảo an toàn Khi bên nhận sử dụng private key để giải mã khóa mã, dùng khóa mã giải mã thông tin cần nhận) Vì vậy, nhóm nghiên cứu chọn đề tài “Trình bày hệ mật RSA Viết chương trình mã hóa, giải mã liệu (file) RSA kết hợp hệ mật đối xứng sử dụng NET Framework.” Nhằm hiểu rõ hệ RSA cách mà thông điệp mã hóa để gửi thực tế Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork CHƯƠNG TỔNG QUAN VỀ CÁC HỆ MẬT MÃ 1.1 Lịch sử Do tác giả Ron Rivest (R), Adi Shamir(S) Len Adleman(A) Học viện Công nghệ Massachusetts (MIT) đưa năm 1977 Được MIT đăng ký sáng chế Hoa Kỳ vào năm 1983 (Số đăng ký 4,405,829) 1.2 Mô tả hoạt động Thuật toán RSA có hai khóa: - khóa công khai (Public Key): Khóa công khai công bố rộng rãi cho người dùng để mã hóa khóa bí mật ( Private Key): Khóa bí mật cá nhân giữ kín dùng để giải mã Ví dụ: Bob muốn gửi cho Alice thông tin mật “m” mà Bob muốn Alice đọc Bob mã hóa “m” Public Key Alice thu mã “c” gửi cho Alice Còn Alice giải mã “c” Private Key để ro “m” 1.2.1 Tạo khóa Giả sử Alice Bob cần trao đổi thông tin bí mật thông qua kênh không an toàn (ví dụ Internet) Với thuật toán RSA, Alice cần tạo cho cặp khóa gồm khóa công khai khóa bí mật theo bước sau: Các bước tạo khóa: Chọn số nguyên tố lớn p q , với p≠ q, lựa chọn ngẫu nhiên độc lập Tính: n = p.q Tính: giá trị hàm số Ơle ф(n) = (p-1)(q-1) Chọn số tự nhiên e cho < e < ф(n), số nguyên tố với ф(n) Tính: d cho d.e ≡ (mod ф(n).) Bộ ba (n; e; d) chìa khóa hệ mã Khóa công khai: (e, n) Khóa bí mật: (d, n) Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 1.2.2 Mã hóa Giả sử Bob muốn gửi đoạn thông tin “M” cho Alice Đầu tiên Bob chuyển “M” thành số m < n theo hàm đảo ngược(từ m xác định lại M) thỏa thuận trước Lúc Bob có m biết n e Alice gửi Bob tính c mã hóa m theo công thức: c = me mod n Hàm tính dễ dàng sử dụng phương pháp tính hàm mũ (môđun) phương pháp bình phương (exponentiation by squaring) Cuối Bob gửi c cho Alice 1.2.3 Giải mã Alice nhận c từ Bob biết khóa bí mật d Alice tìm m từ c theo công thức sau: m = cd mod n Biết m, Alice tìm lại M theo phương pháp thỏa thuận trước Quá trình giải mã hoạt động ta có: cd ≡ (me)d ≡ me.d (mod n) e.d m Do e.d ≡ (mod p-1) e.d ≡ (mod q-1), (theo Định lý Fermat nhỏ) nên: ≡ m (mod p) me.d ≡ m (mod q) Do p q hai số nguyên tố nhau, áp dụng định lý số dư Trung Hoa, ta có: me.d ≡ m (mod p.q) hay: cd ≡ m (mod n) 1.3 Ví dụ Lấy: p = 61 - số nguyên tố thứ (giữ bí mật hủy sau tạo khóa) q = 53 - số nguyên tố thứ hai (giữ bí mật hủy sau tạo khóa) n = p.q = 61.53 = 3233 - môđun (công bố công khai) e = 17 - số mũ công khai d = 2753 - số mũ bí mật Khóa công khai (e, n) Khóa bí mật (d,n) Hàm mã hóa là: encrypt(m) = me mod n = m17 mod 3233 ( với m rõ) Hàm giải mã là: decrypt(c) = cd mod n = c2753 mod 3233 (với c mã) Để mã hóa văn có giá trị 123, ta thực phép tính: encrypt(123) = 12317 mod 3233 = 855 Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork Để giải mã văn có giá trị 855, ta thực phép tính: decrypt(855) = 8552753 mod 3233 = 123 Cả hai phép tính thực hiệu nhờ giải thuật bình phương nhân 1.4 Đặc trưng hệ mật RSA Hệ mật RSA có đặc trưng sau: - - Không cần phải thiết lập kênh bảo vệ phức tạp để truyền khóa hệ mật khóa bí mật Cặp khóa công khai tạo theo phương pháp đặc biệt có quan hệ với chọn nhiều khóa ( khóa dùng để mã hóa khóa dùng để giải mã) Ứng với cặp p, q chọn nhiều khóa công khai (n;e;d) Mọi người hệ thống nhận mật C biết rõ P Với việc biết khóa mã hóa ke vào thông tin thuật toán tìm khóa giải mã kd thời gian chấp nhận (kể dùng hệ thống đại để tính toán) Nguồn cặp khóa B Khóa công khai Khóa bí mật Bên gửi A db eb C = Pebmod n Mã hóa Giải mã p= Cdbmod n Bên nhận Hình 2.1 Quá trình mã hóa công khai RSA Quá trình gửi nhận thông điệp (bản tin) thực sau: - Mỗi thành viên sinh cặp khóa (n; e) (n; d) Công khai khóa (n; e); giữ bí mật khóa (n; d) A gửi thông điệp cho B A mã hóa thông điệp khóa công khai (n; eb) B Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork - 1.5 B giải mã thông điệp khóa riêng (n; db) Không người khác giải mã thông điệp B, có B biết khóa riêng Độ an toàn hệ mật RSA Độ an toàn hệ mật RSA thể qua hai yếu tố: - Tính mật hệ RSA, chủ yếu dựa vào việc bảo vệ khóa riêng d giữ bí mật số nguyên tố p q Tính an toàn hệ RSA dựa vào độ khó toán RSA độ phức tạp toán phân tích số thành thừa số nguyên tố Với người thám mã công vào hệ mã RSA theo hình thức: 1.6 Vét cạn: không gian khóa RSA lớn công theo hướng thực Dựa sở toán học để tìm cách phân tích modulo n thành thừa số nguyên tố Quản lý khóa công hệ mật RSA 1.6.1 Phân phối khóa công khai Phương pháp khai báo công khai: Bất kỳ thành viên thông báo khóa công khai thành viên khác biết Giải pháp có nhược điểm giả mạo khóa công khai Phương pháp sử dụng thư mục công khai: Việc trì tổ chức thư mục công khai thuộc tổ chức tin cậy Một lược đồ bao gồm yếu tố sau: - Tổ chức có nhiệm vụ trì thư mục, thành viên có entry(định danh, khóa) thư mục Mỗi thành viên đăng ký khóa công khai với tổ chức quản lý thư mục Mỗi thành viên thay khóa công khai lúc cảm thấy khóa riêng bị lộ Cơ quan quản lý công bố toàn thư mụ có nhiệm vụ cập nhật thư mục cách định kỳ Mọi thành viên truy nhập vào thư mục lúc nào, việc truyền thông xác thực an toàn (từ quan quản lý đến thành viên) phải mang tính chất bắt buộc Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 1.6.2 Trung tâm quản lý khóa công khai Một quan trung tâm trì thư mục khóa công khai Mỗi thành viên biết khóa công khai trung tâm quản lý khóa công khai, trung tâm biết khóa riêng cặp Quá trình trao đổi thông tin bí mật diễn sau: - A gửi thông điệp có gán nhãn thời gian cho quan quản lý khóa công khai, yêu cầu khóa công khai thời B Cơ quan quản lý trả lời thông điệp Thông điệp mã hóa khóa riêng dauth quan quản lý bao gồm:  Khóa công khai eb B (A dùng để mã hóa thông điệp gửi cho B)  Yêu cầu gốc (request)- A so khớp yêu cầu với yêu cầu A gửi trước đó, nhờ A biết yêu cầu gốc có bị sửa đổi trước quan quản lý nhận hay không  Nhãn thời gian gốc- cho phép A xác định thông điệp cũ mà thông điệp có chứa khóa công khai thời B - - A lưu giữ khóa công khai B sử dụng để mã hóa thông điệp gửi cho B, thông điệp chứa tên A(IDA) giá trị (gọi nonce) để nhận dạng giao dịch B lấy khóa công khai A từ quan quản lý khóa (tương tự A lấy khóa công khai B) Như A B chuyển giao khóa công khai cho cách an toàn, họ gửi nhận tin 1.6.3 Phương pháp sử dụng chứng khóa công khai Các thành viên sử dụng chứng để trao đổi khóa mà không cần liên lạc với quan quản lý khóa công khai Mỗi chứng chứa khóa công khai thông tin khác Nó quan quản lý chứng tạo phát hành cho thành viên Mỗi thành viên thông báo khóa công khai cho thành viên khác thông qua chứng Đặc trưng quan trọng chứng là: “Các chứng phát hành mà không cần bảo vệ thông tin qua dịch vụ an toàn truyền thông để đảm bảo tính bí mật, xác thực toàn vẹn” Bởi chứng có khả tự bảo vệ chữ ký số CA Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork Lợi ích chứng khóa công khai người sử dụng có số lượng lớn khóa công khai thành viên khác cách tin cậy cần thông qua khóa công khai CA 1.6.4 Sử dụng mã hóa công khai để phân phối khóa mật Lược đồ Merkle: thủ tục A trao đổi thông tin mật với B: - A tạo cặp khóa (ea, da) truyền cho B khóa công khai ea tên A (IDA) B tạo khóa bí mật Ks gửi cho A: E ea (Ks) A tính toán để biết khóa bí mật Ks : Dda (Eea (K)) = Ks A hủy bỏ ea, da B hủy bỏ ea Bây A B trao đổi với khóa phiên Ks Sau trao đổi xong A B hủy bỏ Ks, theo cách việc đảm bảo tính bí mật tốt trước sau liên lạc không khóa tồn Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork CHƯƠNG LẬP TRÌNH MÃ HÓA VÀ GIẢI MÃ DỮ LIỆU BẰNG RSA KẾT HỢP MỘT HỆ MẬT ĐỐI XỨNG BẰNG NET FRAMEWORK 2.1 Yêu cầu toán Viết chương trình mã hóa, giải mã liệu (file) RSA kết hợp hệ mật đối xứng sử dụng NET Framework Yêu cầu: - Sinh viên chọn hệ mật đối xứng - Chương trình có chức sinh cặp khóa RSA với kích thước khóa người dùng chọn, xuất khóa công khai file XML, xuất cặp khóa file XML; - Khóa mã hóa (đối xứng) sinh ngẫu nhiên, mã hóa khóa công khai lưu file XML người dùng định - Tất thông tin cần thiết để giải mã (ngoại trừ khóa bí mật) lưu file với mã 2.2 Ý tưởng Bài toán mô tả cách mà người dùng mã hóa liệu gửi thực tế Trong thực tế, người ta sử dụng RSA kết hợp hệ mật đối xứng để mã hóa giải mã liệu với khối lượng lớn Người dùng dùng khóa mã hóa(đối xứng) để mã hóa liệu cần gửi Sau đó, dùng hệ mật RSA để mã khóa khóa đối xứng khóa công khai(Plublic Key) người nhận đính kèm vào gửi Người nhận sử dụng khóa riêng(Private Key)của để giải mã khóa đối xứng Tiếp dùng khóa đối xứng để giải mã Đầu tiên, sinh cặp khóa RSA với kích thước khóa người dùng chọn Dùng lệnh gcnew để sinh cặp khóa Để cho người dùng chọn độ dài khóa ta sử dụng Constructor: RSACryptoServiceProvider( int dwKeySize) Sau sinh cặp khóa công khai thành công, xuất cặp khóa file xml Chức thứ hai, mã hóa liệu thuật toán đối xứng(ở nhóm chọn DES) để mã hóa liệu mã hóa khóa đối xứng khóa công khai(Public Key) vừa sinh Thuật toán đối xứng sinh khóa sử dụng lớp DESCryptoServiceProvider phương thức: void GenerateIV() void GenerateKey() Tiếp theo, sau sinh khóa đối xứng xong, ta mã hóa key, iv DES khóa công khai(Public Key) dùng RSACryptoServiceProvider() mã hóa liệu thuật toán DES sử dụng key, iv vừa sinh Chức thứ ba, thực giải mã sử dụng khóa riêng(Private Key) người nhận Học viện Kỹ thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 2.3 Mô tả hoạt động 2.3.1 Chương trình sinh cặp khóa công khai a Sinh khóa String^ pubkey=txtPublicKey->Text; String^ prikey=txtPrivateKey->Text; keysize= trbKeySize->Value * 8; rsa = gcnew RSACryptoServiceProvider(keysize); b Xuất publicKey file XML String^ publicKey = rsa->ToXmlString(false); TextWriter^ streamWriter = gcnew StreamWriter( streamWriter->Write(publicKey); streamWriter->Close(); pubkey ); c Xuất PrivateKey file XML String^ privateKey = rsa->ToXmlString(true); streamWriter = gcnew StreamWriter(prikey); streamWriter->Write(privateKey); streamWriter->Close(); 2.3.2 Chương trình mã hóa a Tạo khóa đối xứng algSym->GenerateKey(); tạo IV algSym->GenerateIV(); b Tạo Stream đọc file nguồn, nghi file mã hóa FileStream^ fsOriginal= gcnew FileStream(stOriginalFile,FileMode::Open, FileAccess::Read); fsEncrypted= gcnew FileStream(stEncrypted,FileMode::Create); c Mã hóa key, iv DES rsa = gcnew RSACryptoServiceProvider(); TextReader^ streamReader = gcnew StreamReader(pubkeyfile); String^ publicKey = streamReader->ReadToEnd(); streamReader->Close(); rsa->FromXmlString(publicKey); EncryptedSymmetricKey = rsa->Encrypt( algSym->Key, false ); fsEncrypted->Write(EncryptedSymmetricKey,0,EncryptedSymmetricKey>Length); EncryptedSymmetricIV = rsa->Encrypt( algSym->IV, false ); fsEncrypted->Write(EncryptedSymmetricIV,0,EncryptedSymmetricIV>Length); Học viện Kỹ thuật Mật Mã Page 10 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork d Hàm mã hóa file nguồn DES CryptoStream^ cs= gcnew CryptoStream(fsOriginal,algSym>CreateEncryptor(),CryptoStreamMode::Read); unsigned int buf_size= 2048; array ^ buf= gcnew array(buf_size); int read_count; { read_count= cs-> Read(buf,0,buf_size); fsEncrypted->Write(buf,0,read_count); } while(read_count!=0); fsEncrypted->Close(); fsOriginal->Close(); 2.3.3 Chương trình giải mã a Get Key từ file XML rsa = gcnew RSACryptoServiceProvider(); TextReader^ streamReader = gcnew StreamReader(privatekeyfile); String^ privateKey = streamReader->ReadToEnd(); streamReader->Close(); rsa->FromXmlString(privateKey); b Giải mã hàm DES SymmetricAlgorithm^ algSym2; algSym2= gcnew DESCryptoServiceProvider; algSym2->GenerateKey(); algSym2->GenerateIV(); EncryptedSymmetricKey=rsa->Encrypt(algSym2->Key,false); EncryptedSymmetricIV=rsa->Encrypt(algSym2->IV,false); array< unsigned char>^ key; key= gcnew array< unsigned char>(EncryptedSymmetricKey>Length); fsEncrypted-> Read(key,0,EncryptedSymmetricKey->Length); EncryptedSymmetricKey=rsa->Decrypt(key,false); array< unsigned char>^ iv; iv= gcnew array(EncryptedSymmetricIV>Length); fsEncrypted-> Read(iv,0,EncryptedSymmetricIV->Length); EncryptedSymmetricIV= rsa->Decrypt(iv,false); algSym2->Key=EncryptedSymmetricKey; algSym2->IV=EncryptedSymmetricIV; CryptoStream^ csDecryptor= CryptoStream(fsDecrypted,algSym2>CreateDecryptor(),CryptoStreamMode::Write); Học viện Kỹ thuật Mật Mã gcnew Page 11 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork unsigned int buf_size= 2048; array ^ buf= gcnew array(buf_size); int read_count; { read_count=fsEncrypted->Read(buf,0,buf_size); csDecryptor->Write(buf,0,read_count); } while (read_count!=0); csDecryptor-> Close(); fsDecrypted-> Close(); fsEncrypted-> Close(); 2.4 Hướng dẫn sử dụng chương trình 2.4.1 Sinh cặp Public Key Private Key sử dụng RSA Bước 1: chọn tab SINH KHÓA Bước 2: chọn button KEY SIZE để chọn độ dài khóa Bước 3: chọn nơi lưu Public Key Bước 4: chọn nơi lưu Private Key Bước 5: Sinh khóa Học viện Kỹ thuật Mật Mã Page 12 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 2.4.2 Mã hóa Bước 1: chọn tab MÃ HÓA Bước 2: Nạp Public Key Bước 3: chọn rõ để mã hóa Bước 4: chọn nơi lưu mã Bước 5: mã hóa Học viện Kỹ thuật Mật Mã Page 13 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 2.4.3 Giải mã Bước 1: chọn tab GIẢI MÃ Bước 2: Nạp Private Key Bước 3: Chọn mã Bước 4: chọn nơi lưu giải mã Bước 5: chọn giải mã Học viện Kỹ thuật Mật Mã Page 14 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork KẾT LUẬN Thông qua đề tài, chúng em biết chế cách sử dụng thuật toán RSA kết hợp thuật toán đối xứng để mã hóa giải mã liệu nhằm mục đích bảo vệ thông tin người dùng cách viết chương trình mã hóa, giải mã liệu với NET FrameWork, với công cụ lập trình Microsoft Visual Studio Nắm rõ hàm sử dụng NET FrameWork để mã hóa, giải mã liệu, bước tiến hành để tạo chương trình đơn giản cho phép người sử dụng sinh khóa, mã hóa, giải mã liệu, thông tin cần thiết Bên cạnh kết đạt được, số hạn chế chương trình chưa xây dựng giao diện sử dụng hợp lý, phù hợp thực tế Học viện Kỹ thuật Mật Mã Page 15 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork TÀI LIỆU THAM KHẢO A Tài liệu tiếng anh : [1] Ứng dụng MSDN Microsoft B Tài liệu tiếng việt : [2] Slide giảng Mật mã nâng cao, giảng viên Nguyễn Tuấn Anh, khoa An toàn thông tin – Học viện Kỹ Thuật Mật Mã [3] Hệ mật RSA ứng dụng lược đồ chữ ký số xác thực thông tin : Luận văn ThS Công nghệ thông tin : 604810 / Đỗ Thanh Bình Học viện Kỹ thuật Mật Mã Page 16 [...]... để mã hóa Bước 4: chọn nơi lưu bản mã Bước 5: mã hóa Học viện Kỹ thuật Mật Mã Page 13 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với NET FrameWork 2.4.3 Giải mã Bước 1: chọn tab GIẢI MÃ Bước 2: Nạp Private Key Bước 3: Chọn bản mã Bước 4: chọn nơi lưu bản giải mã Bước 5: chọn giải mã Học viện Kỹ thuật Mật Mã Page 14 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file). .. dữ liệu, các bước tiến hành cơ bản để tạo được một chương trình đơn giản cho phép người sử dụng sinh khóa, mã hóa, giải mã dữ liệu, thông tin của mình khi cần thiết Bên cạnh những kết quả đạt được, vẫn còn một số hạn chế trong chương trình như chưa xây dựng được giao diện sử dụng hợp lý, phù hợp thực tế Học viện Kỹ thuật Mật Mã Page 15 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file). .. (file) với NET FrameWork KẾT LUẬN Thông qua đề tài, chúng em đã biết được về cơ chế và cách sử dụng thuật toán RSA kết hợp một thuật toán đối xứng để mã hóa và giải mã dữ liệu nhằm mục đích bảo vệ thông tin người dùng bằng cách viết một chương trình mã hóa, giải mã dữ liệu với NET FrameWork, với công cụ lập trình Microsoft Visual Studio Nắm rõ được các hàm sử dụng trong NET FrameWork để mã hóa, giải mã dữ. .. Hướng dẫn sử dụng chương trình 2.4.1 Sinh cặp Public Key và Private Key sử dụng RSA Bước 1: chọn tab SINH KHÓA Bước 2: chọn button KEY SIZE để chọn độ dài khóa Bước 3: chọn nơi lưu Public Key Bước 4: chọn nơi lưu Private Key Bước 5: Sinh khóa Học viện Kỹ thuật Mật Mã Page 12 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với NET FrameWork 2.4.2 Mã hóa Bước 1: chọn tab MÃ HÓA Bước 2:... algSym2->IV=EncryptedSymmetricIV; CryptoStream^ csDecryptor= CryptoStream(fsDecrypted,algSym2>CreateDecryptor(),CryptoStreamMode::Write); Học viện Kỹ thuật Mật Mã gcnew Page 11 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với NET FrameWork unsigned int buf_size= 2048; array ^ buf= gcnew array(buf_size); int read_count; do { read_count=fsEncrypted->Read(buf,0,buf_size);.. .Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã dữ liệu (file) với NET FrameWork d Hàm mã hóa file nguồn bằng DES CryptoStream^ cs= gcnew CryptoStream(fsOriginal,algSym>CreateEncryptor(),CryptoStreamMode::Read); unsigned int buf_size= 2048; array... liệu (file) với NET FrameWork TÀI LIỆU THAM KHẢO A Tài liệu tiếng anh : [1] Ứng dụng MSDN của Microsoft B Tài liệu tiếng việt : [2] Slide bài giảng Mật mã nâng cao, giảng viên Nguyễn Tuấn Anh, khoa An toàn thông tin – Học viện Kỹ Thuật Mật Mã [3] Hệ mật RSA và ứng dụng lược đồ chữ ký số trong xác thực thông tin : Luận văn ThS Công nghệ thông tin : 604810 / Đỗ Thanh Bình Học viện Kỹ thuật Mật Mã Page 16... } while(read_count!=0); fsEncrypted->Close(); fsOriginal->Close(); 2.3.3 Chương trình giải mã a Get Key từ file XML rsa = gcnew RSACryptoServiceProvider(); TextReader^ streamReader = gcnew StreamReader(privatekeyfile); String^ privateKey = streamReader->ReadToEnd(); streamReader->Close(); rsa->FromXmlString(privateKey); b Giải mã bằng hàm DES SymmetricAlgorithm^ algSym2; algSym2= gcnew DESCryptoServiceProvider; ... thuật Mật Mã Page Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork CHƯƠNG LẬP TRÌNH MÃ HÓA VÀ GIẢI MÃ DỮ LIỆU BẰNG RSA KẾT HỢP MỘT HỆ MẬT ĐỐI XỨNG BẰNG NET FRAMEWORK... private key để giải mã khóa mã, dùng khóa mã giải mã thông tin cần nhận) Vì vậy, nhóm nghiên cứu chọn đề tài Trình bày hệ mật RSA Viết chương trình mã hóa, giải mã liệu (file) RSA kết hợp hệ... chọn nơi lưu mã Bước 5: mã hóa Học viện Kỹ thuật Mật Mã Page 13 Mật Mã Nâng Cao – Viết chương trình mã hóa, giải mã liệu (file) với NET FrameWork 2.4.3 Giải mã Bước 1: chọn tab GIẢI MÃ Bước 2:

Ngày đăng: 30/12/2015, 18:49

Từ khóa liên quan

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

Tài liệu liên quan