Ạn cần sử dụng phép mật hóa bất đối xứng (asymmetric encryption) để gửi một bí mật.

Một phần của tài liệu Các giải pháp lập trình C Sharp_9 pdf (Trang 28)

mt.

Th hin hóa lp gii thut bt đối xng System.Security.Cryptography. RSACryptoServiceProvider. S dng phương thc RSACryptoServiceProvider. RSACryptoServiceProvider. S dng phương thc RSACryptoServiceProvider. Encrypt và khóa công khai (public key) ca người nhn để mt hóa thông đip. Sau

đo, người nhn s s dng phương thc RSACryptoServiceProvider.Decryptkhóa riêng (private key) để gii mt hóa bí mt đã-được-mt-hóa. khóa riêng (private key) để gii mt hóa bí mt đã-được-mt-hóa.

.NET Framework định nghĩa một hệ thống phân cấp theo lớp cho các giải thuật bất đối xứng tương tự như đã định nghĩa cho các giải thuật đối xứng (đã được thảo luận trong mục 14.6). tương tự như đã định nghĩa cho các giải thuật đối xứng (đã được thảo luận trong mục 14.6). Tất cả các giải thuật bất đối xứng phải thừa kế một lớp cơ sở trừu tượng chung có tên là

System.Security.Cryptography.AsymmetricAlgorithm. Có hai hiện thực giải thuật bất đối xứng cụ thể: xứng cụ thể:

• System.Security.Cryptography.RSACryptoServiceProvider

• System.Security.Cryptography.DSACryptoServiceProvider

Vì có đuôi là CryptoServiceProvider nên cả hai lớp này đều bọc lấy các chức năng do Win32 CryptoAPI cung cấp. Tuy nhiên, chỉ có lớp RSACryptoServiceProvider là hỗ trợ việc mật hóa CryptoAPI cung cấp. Tuy nhiên, chỉ có lớp RSACryptoServiceProvider là hỗ trợ việc mật hóa dữ liệu. Lớp DSACryptoServiceProvider hiện thực Digital Signature Algorithm (DSA), bạn có thể sử dụng giải thuật này chỉ để tạo chữ ký số (xem Federal Information Processing Standard [FIPS] 186-2 tại [http://www.itl.nist.gov/fipspubs] để biết thêm chi tiết về DSA). Mặc dù bạn có thể tạo một đối tượng giải thuật bất đối xứng bằng phương thức tĩnh Create

Vì có đuôi là CryptoServiceProvider nên cả hai lớp này đều bọc lấy các chức năng do Win32 CryptoAPI cung cấp. Tuy nhiên, chỉ có lớp RSACryptoServiceProvider là hỗ trợ việc mật hóa CryptoAPI cung cấp. Tuy nhiên, chỉ có lớp RSACryptoServiceProvider là hỗ trợ việc mật hóa dữ liệu. Lớp DSACryptoServiceProvider hiện thực Digital Signature Algorithm (DSA), bạn có thể sử dụng giải thuật này chỉ để tạo chữ ký số (xem Federal Information Processing Standard [FIPS] 186-2 tại [http://www.itl.nist.gov/fipspubs] để biết thêm chi tiết về DSA). Mặc dù bạn có thể tạo một đối tượng giải thuật bất đối xứng bằng phương thức tĩnh Create dụng để mật hóa và giải mật hóa dữ liệu. Thay vào đó, bạn phải trực tiếp thể hiện hóa lớp

RSACryptoServiceProvider bằng một trong các phương thức khởi dựng của nó.

Trước khi mật hóa hay giải mật hóa dữ liệu với đối tượng RSACryptoServiceProvider, bạn cần truy xuất các khóa thích hợp. Khóa của giải thuật bất đối xứng khác nhiều so với khóa của cần truy xuất các khóa thích hợp. Khóa của giải thuật bất đối xứng khác nhiều so với khóa của giải thuật đối xứng. Thứ nhất, nó có hai thành phần: khóa công khai (public key) và khóa riêng (private key). Thứ hai, thay vì chỉ là một dãy các byte được sinh ngẫu nhiên, khóa bất đối xứng được tạo theo một cách thức đặc biệt. Có một mối quan hệ toán đặc biệt giữa khóa công khai và khóa riêng; mối quan hệ này cho phép giải thuật bất đối xứng mật hóa dữ liệu

Một phần của tài liệu Các giải pháp lập trình C Sharp_9 pdf (Trang 28)

Tải bản đầy đủ (PDF)

(53 trang)