Thư viện tri thức trực tuyến
Kho tài liệu với 50,000+ tài liệu học thuật
© 2023 Siêu thị PDF - Kho tài liệu học thuật hàng đầu Việt Nam

Tài liệu Mật mã ( Cryptography) phần 1 doc
Nội dung xem thử
Mô tả chi tiết
Chương 14 : Mật mã ( Cryptography)
Mật mã (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. Chương
này sẽ bàn về các vấn đề sau:
Tạo số ngẫu nhiên (mục 14.1).
Tạo và xác minh các mã băm mật mã và các mã băm có khóa (mục 14.2, 14.3, 14.4,
và 14.5).
Sử dụng giải thuật đối xứng và không đối xứng để mật hóa và giải mật hóa dữ liệu
(mục 14.6 và 14.8).
Tìm lại, lưu trữ, và chuyển đổi các khóa mật mã (mục 14.7, 14.9, và 14.10).
# Khi nghĩ cách áp dụng các kỹ thuật trong chương này vào mã lệnh, bạn nên
nhớ rằng mật mã chẳng phải là cái mà bạn hiện thực đơn lẻ. Mật mã không
ngang bằng với bảo mật (security); sử dụng mật mã chỉ là một phần nhỏ trong
việc tạo một giải pháp an toàn.
Đối với những ai chưa quen thuộc với mật mã, dưới đây là định nghĩa của một số từ quan
trọng:
• Encrypt (động từ, tạm dịch là mật hóa) là mã hóa thông tin theo cách nào đó để mọi
người không thể đọc được nó, trừ những ai có khóa.
• Decrypt (động từ, tạm dịch là giải mật hóa) là giải mã thông tin đã-được-mật-hóa.
• Key là chuỗi các bit dùng để mật hóa và giải mật hóa thông tin.
• Plaintext là text chưa-được-mật-hóa hay đã-được-giải-mật-hóa.
• Ciphertext là text đã-được-mật-hóa.
1.1 Tạo số ngẫu nhiên
V Bạn cần tạo một số ngẫu nhiên dùng cho các ứng dụng mật mã và bảo mật.
# Sử dụng một bộ tạo số ngẫu nhiên mật mã (cryptographic random number
generator), chẳng hạn
System.Security.Cryptography.RNGCryptoServiceProvider.
Lớp System.Random là một bộ tạo số giả ngẫu nhiên, nó sử dụng một giải thuật toán học
để mô phỏng việc tạo số ngẫu nhiên. Thực ra, giải thuật này là tất định (deterministic),
nghĩa là bạn luôn có thể tính được số kế tiếp sẽ là gì dựa trên số đã được tạo trước đó.