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.. Trong bài n
Trang 1Lập Trình C#
Nhóm 1 Lớp 07CT113
MÃ HÓA VÀ BẢO MẬT
THÔNG TIN
Trang 2Như 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
Trang 3Mã 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
Trang 4Cryptography (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
Khái Niệm
Trang 5Mộ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
Trang 6Plaintext (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ữ
Trang 7Password: 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
Trang 81 ) 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
Trang 9Symmetric 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
Trang 10Hashing 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
Trang 11Hàm Hash
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.
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ỏ.
Trang 121) 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
2) Frequency analysis: thống kê tần suất, chỉ có thể áp dụng
được đối với các thuật toán cổ điển dùng phương pháp thay thế, ví
dụ phương pháp Caesar Để thực hiện phương pháp này ta 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
Tấn Công Mã Hóa Thông Tin
Trang 131 One-time Pad (OTP) : Còn có tên gọi khác là Vernam
Cipher, OTP được mệnh danh là cái 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
Trang 14One-time Pad (OTP):
OTP là thuật toán duy nhất chứng minh được về lý thuyết là không thể phá được ngay cả với tài nguyên vô tận (tức là có thể chống lại kiểu tấn công brute-force) Để 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
Trang 15DES
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 này được sử dụng rộng rãi trên
phạm vi thế giới Ngay từ đầu, thuật toán của nó đã gây ra rất nhiều tranh cãi, do nó bao gồm các thành 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
Trang 16DES
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 việc kiểm tra nên chiều dài khóa thực tế là 56 bit
Với chiều dài khóa như vậy thì việc tấn công bằng cách thử hết các khóa phải thử đến 2^56, trung bình là 2^55= 36,028,797,018,968,968 ( hơn 30 triệu tỉ lần thử)
Một Số Thuật Toán Mã Hóa
Trang 17• 1998 khi tổ chức Electronic Frontier Foundation (EFF), một tổ chức hoạt động cho quyền công dân trên Internet, xây dựng một
hệ thống chuyên biệt để phá mã với giá thành 250000 đô la Mỹ Động cơ thúc đẩy EFF trong hành động này là nhằm chứng
minh DES có thể bị phá vỡ trên lý thuyết cũng 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 lý của Bộ Tư pháp Hoa Kỳ (DOJ) vẫn tuyên bố rằng DES là không thể bị phá vỡ
DES Một Số Thuật Toán Mã Hóa
Trang 18Tháng 12 năm 1997, viện tiêu chuẩn và công nghệ Mỹ (NIST – National Institute of Standard and Technology) kêu gọi phát triển một thuật toán mới thay thế cho 3DES (một biến thể an toàn hơn của DES với chìa khóa dài 112 bit) Thuật toán được chọn phải là thuật toán khối có kích thước khối là 128 bit, hỗ trợ chìa khóa có kích thước 128 bit, 192 bit và 256 bit
15 thuật toán được gửi đến từ nhiều nơi trên thế giới, 5 thuật toán 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
Trang 19Trong 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 Nó đánh dấu một sự tiến bộ vượt bậc 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)
RSA Một Số Thuật Toán Mã Hóa
Trang 20RSA đả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ó
Ngoài ra RSA còn được dùng để tạo chữ ký điện tử
Để tạo 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
RSA Một Số Thuật Toán Mã Hóa
Trang 21MD5 (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 có chiều dài bất kì thành một khối
có kích thước cố định 128 bits
MD5 Một Số Thuật Toán Mã Hóa
Trang 22• MD5 có 2 ứng dụng quan trọng:
• 1/ MD5 được sử dụng rộng rải trong thế giới phần mềm để đảm bảo rằng tập tin tải về không bị hỏng Người sử dụng có thể so sánh giữa thông số kiểm tra phần mềm bằng MD5 được công bố với thông số kiểm tra phần mềm tải về bằng MD5 Hệ điều hành Unix sử dụng MD5 để kiểm tra các gói mà nó phân phối, trong khi hệ điều hành Windows sử dụng phần mềm của hãng 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)
MD5 Một Số Thuật Toán Mã Hóa
Trang 23• 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à bất kỳ nhà phát triển nào cũng sẽ sử dụng
• 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ổng Kết
Trang 24Nguyễn Thị Nữ Việt