■ Contents
xvi
■Chapter 13: Working with Cryptography ����������������������������������������������������������� 347
Cryptography ���������������������������������������������������������������������������������������������������������������� 347
Encryption ������������������������������������������������������������������������������������������������������������������������������������������ 347
Cryptanalysis �������������������������������������������������������������������������������������������������������������������������������������� 348
Pictorial Representation ���������������������������������������������������������������������������������������������������������������������348
Types of Encryption ������������������������������������������������������������������������������������������������������ 349
Symmetric Encryption ������������������������������������������������������������������������������������������������������������������������ 349
Asymmetric Encryption ���������������������������������������������������������������������������������������������������������������������� 351
Implement Key management ��������������������������������������������������������������������������������������� 353
Symmetric Keys ���������������������������������������������������������������������������������������������������������������������������������� 353
Asymmetric Keys �������������������������������������������������������������������������������������������������������������������������������� 353
Encrypt Stream������������������������������������������������������������������������������������������������������������� 354
Working with ProtectedData Class ������������������������������������������������������������������������������� 355
Protect() ���������������������������������������������������������������������������������������������������������������������������������������������� 355
Unprotect �������������������������������������������������������������������������������������������������������������������������������������������� 356
Manage and Create Digital Certificates ������������������������������������������������������������������������ 357
Create and Install Certificate ��������������������������������������������������������������������������������������������������������������357
Working with System�Security Namespace ����������������������������������������������������������������� 357
Code Access Security (CAS) ���������������������������������������������������������������������������������������������������������������� 358
Declarative ������������������������������������������������������������������������������������������������������������������������������������������358
Imperative �������������������������������������������������������������������������������������������������������������������������������������������358
Hashing ������������������������������������������������������������������������������������������������������������������������ 358
Salt Hashing ��������������������������������������������������������������������������������������������������������������������������������������� 360
Choosing an appropriate Algorithm ������������������������������������������������������������������������������ 360
Working with SecureString Class ��������������������������������������������������������������������������������� 361
Summary ���������������������������������������������������������������������������������������������������������������������� 362
Code Challenges ����������������������������������������������������������������������������������������������������������� 363
Practice Exam Questions ���������������������������������������������������������������������������������������������� 363