Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 24 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
24
Dung lượng
1,61 MB
Nội dung
Lập Trình C# Nhóm 1 Lớp 07CT113 MÃ HÓA VÀ BẢO MẬT THÔNG TIN Như các bạn đã biết ngay từ xa xưa con người chúng ta đã biết truyền thông .Việc truyền đạt thông tin phải thông qua người đưa tin do đó việc lộ tin tức là điều không tránh khỏi.Để bảo mật những thông tin đó , người ta đã nghĩ ra cách mã hóa nó đi để an toàn bằng những cơ chế mã hóa đơn giản . Ngày nay , trong nhiều lĩnh vực vẫn cần sự hỗ trợ đến mã hóa như ngân hàng , bưu chính … Nhiều thuật tóan mã hóa ra đời và ngày càng phát triển hơn Lời Nói Đầu Mã hóa với mục đích làm cho dữ liệu không thể đọc được bởi bất cứ ai, ngoại trừ những ai được cho chép đọc. Mã hóa sử dụng thuật toán và khóa để biến đổi dữ liệu từ hình thức đơn giản rõ ràng (plain hay cleartext), làm biến dữ liệu sang hình tức mật mã vô nghĩa (code hay ciphertext). Chỉ có những ai có thông tin giải mã thì mới giải mã được và đọc được dữ liệu. Giới Thiệu Cryptography (hay crypto) - mật mã học – ngành khoa học nghiên cứu về việc giấu thông tin. Cụ thể hơn, mật mã học là ngành học nghiên cứu về những cách chuyển đổi thông tin từ dạng "có thể hiểu được" thành dạng "không thể hiểu được" và ngược lại. 1.1) Đặc điểm Tính bí mật (confidentiality): thông tin chỉ được tiết lộ cho những ai được phép. Tính toàn vẹn (integrity): thông tin không thể bị thay đổi mà không bị phát hiện . Tính xác thực (authentication): người gửi (hoặc người nhận) có thể chứng minh đúng họ. 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. Khái Niệm Một Số Thuật Ngữ Cryptosystem (viết tắt của cryptographic system): hệ thống mã hóa thông tin, có thể là phần mềm như PGP, Ax-Crypt, Truecrypt giao thức như SSL, IPsec hay đơn giản là một thuật toán như DES. Encrypt (encipher): mã hóa – quá trình biến đổi thông tin từ dạng ban đầu - có thể hiểu được thành dạng không thể hiểu được, với mục đích giữ bí mật thông tin đó. Decrypt (decipher): giải mã – quá trình ngược lại với mã hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã hóa. Plaintext (cleartext): dữ liệu gốc (chưa được mã hóa). Ciphertext: dữ liệu đã được mã hóa. Cipher (hay cypher): thuật toán dùng để thực hiện quá trình mã hóa hay giải mã. Trong bài này gọi tắt là thuật toán Key: chìa khóa – thông tin dùng cho qui trình mã hóa và giải mã. Code: cần phân biệt code trong mật mã học với code trong lập trình hay code trong Zip code Cryptanalysis: nếu coi mật mã học là việc cất dữ liệu của bạn vào một cái hộp sau đó dùng chìa khóa khóa lại, thì cryptanalysis là ngành nghiên cứu những phương pháp mở hộp để xem dữ liệu khi không có chìa khóa. Một Số Thuật Ngữ 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. Key Derivation Function: là một hàm hash đượ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. 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. Chìa Khóa 1 ) Cổ điển 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. Thuật Toán Mã Hóa 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). Asymmetric cryptography: Mã hóa bất đối xứng, 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). 2) Hiện đại Thuật Toán Mã Hóa Hashing là một phương thức mật mã nhưng nó không phải là một thuật toán mã hoá .Đúng như vậy, hashing chỉ sử dụng một chứng chỉ số duy nhất được biết đến với tên như “hash value – giá trị hash”, “hash – băm”, Message Authentication Code (MAC), fingerprint – vân tay, hay một đoạn message. 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. Và không thể suy ngược lại. Hàm Hash [...]... • Lý thuyết kỹ thuật mật mã hiện đại cực kỳ khó hiểu và đòi hỏi một mức kiến thức toán học mà tương đối ít người có được • May mắn là thư viện lớp NET Framework cung cấp các hiện thực dễ sử dụng cho hầu hết các kỹ thuật mật mã thông dụng và hỗ trợ các giải thuật phổ biến nhất Đề Tài: Mã Hóa Và Bảo Mật Thông Tin Tài liệu tham khảo: “ Các giải pháp lập trình c# ” “ C# 2005 – Lập trình windows form” Nhóm... của lĩnh vực mật mã học trong việc sử dụng khóa công cộng RSA đang được sử dụng phổ biến trong thương mại điện tử và được cho là đảm bảo an toàn với diiều kiện độ dài khóa đủ lớn RSA sử dụng khóa công khai để mã hóa và sử dụng khóa cá nhân để giải mã ( 2 khóa này có quan hệ mật thiết với nhau) Một Số Thuật Toán Mã Hóa RSA RSA đảm bảo dữ liệu được an toàn khi truyền qua mạng Việc bị lộ mã là rất khó... Để có thể đạt được mức độ bảo mật của OTP, tất cả những điều kiện sau phải được thỏa mãn: Độ dài của chìa khóa phải đúng bằng độ dài văn bản cần mã hóa Chìa khóa chỉ được dùng một lần Chìa khóa phải là một số ngẫu nhiên thực Một Số Thuật Toán Mã Hóa DES DES là một phương pháp mật mã hóa được FIPS (Tiêu chuẩn Xử lý Thông tin Liên bang Hoa Kỳ) chọn làm chuẩn chính thức vào năm 1976 Sau đó chuẩn... thứ ba • 2/ MD5 được dùng để mã hóa mật khẩu Mục đích của việc mã hóa này là biến đổi một chuổi mật khẩu thành một đoạn mã khác, sao cho từ đoạn mã đó không thể nào lần trở lại mật khẩu Có nghĩa là việc giải mã là không thể hoặc phải mất một khoãng thời gian vô tận (đủ để làm nản lòng các hacker) Tổng Kết • Mã Hóa (cryptography) là một trong những mặt phức tạp nhất của quá trình phát triển phần mềm mà... lọt vào vòng hai: Rijndael, Twofish, Serpent, RC6 và MARS Tháng 11 năm 2001, Rijndael đuợc chọn làm AES (một phần nhờ có tốc độ nhanh hơn so với các đối thủ), chính thức thay thế DES trong vai trò chuẩn mã hóa dữ liệu Một Số Thuật Toán Mã Hóa RSA Trong mật mã học , RSA là một thuật toán mã hóa khóa công khai Đây là thuật toán đầu tiên phù hợp với việc tạo ra chữ ký điện tử đồng thời với việc mã hóa. .. phần thiết kế mật, độ dài khóa tương đối ngắn, và các nghi ngờ về cửa sau để Cơ quan An ninh quốc gia Hoa Kỳ (NSA) có thể bẻ khóa Do đó, DES đã được giới nghiên cứu xem xét rất kỹ lưỡng, việc này đã thúc đẩy hiểu biết hiện đại về mật mã khối (block cipher) và các phương pháp thám mã tương ứng Một Số Thuật Toán Mã Hóa DES Chiều dài khóa là 64 bit ( 8 Byte) Nhưng các bit thứ 8 trong khóa được dùng trong... như trên thực tế: "Nhiều người không tin vào chân lý cho đến khi họ nhìn thấy sự việc bằng chính mắt mình Xây dựng một bộ máy có thể phá khóa DES trong vòng vài ngày là cách duy nhất chứng tỏ với mọi người rằng họ không thể đảm bảo an ninh thông tin dựa vào DES." Hệ thống này đã tìm được khóa DES bằng phương pháp duyệt toàn bộ trong thời gian hơn 2 ngày; trong khi vào khoảng thời gian đó, một chưởng... ra một bản mã hóa có độ an toàn tương đương với DES RSA sẽ phải mất nhiều thời gian hơn Một Số Thuật Toán Mã Hóa MD5 MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit Từng được xem là một chuẩn trên Internet, MD5 đã được sữ dụng rông rải trong các chương trình an ninh mạng, và cũng thường được dùng để kiểm tra tính nguyên vẹn của tập tin MD5 biến đổi một thông điệp... chén thánh của ngành mã hóa dữ liệu ( bất khả xâm phạm ) 2 DES :DES (viết tắt của Data Encryption Standard, hay Tiêu chuẩn Mã hóa Dữ liệu) 3 AES : viết tắt của Advance Encryption Standard 4 RSA : Viết tắt của 3 người tạo ra : Ronald Rivest, Adi Shamir và Leonard Adleman 5 MD5 : MD5 (Message-Digest algorithm 5) là một hàm băm để mã hóa với giá trị băm là 128bit Một Số Thuật Toán Mã Hóa One-time Pad (OTP):... cần một lượng văn bản đã mã hóa đủ lớn để phép thống kê được chính xác 3) Differential cryptanalysis: Eli Biham và Adi Shamir tìm ra phương pháp này vào khoảng cuối những năm 1980; nó thường được sử dụng để tấn công các thuật toán khối Phương pháp này dựa trên việc phân tích những biến đổi của hai văn bản gốc có liên quan khi được mã hóa bởi cùng một chìa Một Số Thuật Toán Mã Hóa 1 One-time Pad (OTP) . quá trình mã hóa hay giải mã. Trong bài này gọi tắt là thuật toán Key: chìa khóa – thông tin dùng cho qui trình mã hóa và giải mã. Code: cần phân biệt code trong mật mã học với code trong lập. Lập Trình C# Nhóm 1 Lớp 07CT113 MÃ HÓA VÀ BẢO MẬT THÔNG TIN Như các bạn đã biết ngay từ xa xưa con người chúng ta đã biết truyền thông .Việc truyền đạt thông tin phải thông qua. ngược lại với mã hóa, khôi phục lại thông tin ban đầu từ thông tin đã được mã hóa. Plaintext (cleartext): dữ liệu gốc (chưa được mã hóa) . Ciphertext: dữ liệu đã được mã hóa. Cipher