Ột cách lý tưởng, bạn sử dụng một giải thuật bất đối xứng để mật hóa tất cả dữ

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 35 - 36)

liu, như thế tránh được nhu cu trao đổi các khóa đối xng. Tuy nhiên, tc độ

ca các gii thut bt đối xng khi mt hóa và gii mt hóa d liu khiến chúng không thc tế cho vic s dng vi các lượng ln d liu. S dng các gii thut không thc tế cho vic s dng vi các lượng ln d liu. S dng các gii thut bt đối xng để mt hóa các khóa phiên đối xng là mt gii pháp tuy phc tp hơn, nhưng là tt nht c hai mt: tính linh hot và tính nhanh chóng.

Thư viện lớp .NET Framework hỗ trợ việc trao đổi khóa chỉ với giải thuật RSA, nhưng bạn phải lựa chọn giữa hai formatting scheme: OptimalAsymmetric Encryption Padding (OAEP) phải lựa chọn giữa hai formatting scheme: OptimalAsymmetric Encryption Padding (OAEP) và PKCS #1 v 1.5. Bàn về các formattingscheme này vượt quá phạm vi của quyển sách này. Nói chung, bạn nên sử dụng OAEP formatting trừ khi bạn có nhu cầu giao tiếp với một hệ thống cũ có sử dụng PKCS formatting. Hai lớp dưới đây hiện thực cơ chế trao đổi khóa, mỗi cơ chế ứng với một formatting scheme:

• System.Security.Cryptography.RSAOAEPKeyExchangeFormatter• System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter • System.Security.Cryptography.RSAPKCS1KeyExchangeFormatter

Để chuẩn bị một khóa đối xứng dùng cho trao đổi, bạn phải tạo một đối tượng formatter với kiểu như mong muốn và rồi ấn định một đối tượng giải thuật bất đối xứng kiểu như mong muốn và rồi ấn định một đối tượng giải thuật bất đối xứng (RSACryptoServiceProvider) cho formatter bằng phương thức SetKey của formatter. Bạn phải cấu hình cho giải thuật bất đối xứng sử dụng khóa công khai của người nhận. Khi đã cấu hình xong, gọi phương thức CreateKeyExchange của formatter và truyền một mảng byte chứa khóa phiên đối xứng mà bạn cần định dạng. Phương thức CreateKeyExchange trả về một mảng byte chứa dữ liệu bạn sẽ gửi đi.

Giải định dạng cho khóa ngược với quá trình định dạng. Có hai lớp deformatter, mỗi lớp ứng với một formatting scheme. với một formatting scheme.

• System.Security.Cryptography.RSAOAEPKeyExchangeDeformatter

• System.Security.Cryptography.RSAPKCS1KeyExchangeDeformatter

Để giải định dạng một khóa phiên đã được định dạng, hãy tạo một đối tượng deformatter với kiểu phù hợp rồi gọi phương thức SetKey của nó để ấn định một đối tượng giải thuật bất đối kiểu phù hợp rồi gọi phương thức SetKey của nó để ấn định một đối tượng giải thuật bất đối xứng. Bạn phải nạp khóa riêng của bạn vào giải thuật bất đối xứng. Cuối cùng, gọi phương thức DecryptKeyExchange với đối số là dữ liệu trao đổi. Phương thức này trả về một mảng byte chứa khóa phiên đối xứng gốc.

File KeyExchangeExample.cs chứa ví dụ minh họa cho việc trao đổi khóa. Phương thức Main

mô phỏng việc tạo, định dạng, trao đổi, và giải định dạng một khóa phiên đối xứng. Nó sẽ tạo một cặp khóa bất đối xứng để sử dụng cho cả ví dụ này. Thực tế, người gửi (người tạo khóa một cặp khóa bất đối xứng để sử dụng cho cả ví dụ này. Thực tế, người gửi (người tạo khóa đối xứng) chỉ có khóa công khai của người nhận; người nhận có khóa riêng (được giữ 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 35 - 36)

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

(53 trang)