Những gì bạn đang nói về rất rất rất lỏng lẻo trông giống như thực hiện một thuật toán mã hóa không đối xứng khác trong khuôn khổ .Net.
. Net sử dụng hai nhánh cho mã hóa không đối xứng !!!
- RSA ** Grand Mac daddy sử dụng cho tất cả các mục đích không đối xứng.
- DSA ** liên quan nhiều hơn đến việc sử dụng và tạo chữ ký kỹ thuật số để xác minh tác giả.
Cả hai đều Tóm tắt
Cả hai đều rất giống với nhau như thế nào họ làm việc và làm thế nào một nhà phát triển thực hiện chúng, nhưng bên dưới Tôi đã đọc rằng hai thuật toán rất khác nhau tồn tại.
Bạn đang nói tùy chọn 2.
Net cung cấp một lớp được gọi là DSACryptoServiceProvider cho phép bạn tag dữ liệu của bạn với một giá trị được thường được gọi là chữ ký.
Theo sách giáo khoa khóa học chính thức của MS, nó gần như hoạt động như thế nào.
dữ liệu >>> Hash Alg >>> Hash Value >>>>>>>>> Asymm' Alg >>>> Chữ ký PVT.KEY người gửi >>>
Dưới đây cho thấy cách Bob có thể kiểm tra để xem liệu Alice có thực sự là người gửi hay không.
Dữ liệu >>> Hash Alg >>> Giá trị băm || Giải mã Chữ ký < < < Asymm' Alg < < < Chữ ký < < < người gửi PUB.KEY ? ==?
Như bạn có thể thấy, Bob phải so sánh Chữ băm và Chữ ký được giải mã được tạo ra để xác minh rằng Alice là người gửi. Lớp DSACrypto có 4 phương thức mà có thể được sử dụng ở đây nhưng chỉ có hai phương pháp nói theo ngữ cảnh hiệu quả. Tại thời điểm này, đây là tất cả những gì Bob có thể làm, nếu khóa công khai của anh ta không phải là khóa công khai của alice, thì về cơ bản ứng dụng phần mềm sẽ ngăn Bob chết trong các bài hát của anh ta. cố giao tiếp với Alice. Đây là mối quan hệ được áp đặt và nhấn mạnh tầm quan trọng của khóa công khai. Chữ ký cho phép bạn xác minh chủ sở hữu khóa công khai.
Tại sao? ::
Nếu Bob có khóa công khai của Alice thì anh ta có thể sử dụng cùng một thuật toán lần nữa để giải mã dữ liệu được mã hóa bằng phương thức .VerifyHash hoặc VerifyData. Nên thẳng về phía trước những gì họ làm cho bối cảnh này. Tất cả điều này được thực hiện bằng cách sử dụng Khóa công khai của Alice. Chỉ Alice mới có thể sử dụng các phương thức SignHash và SignData khi chúng yêu cầu khóa riêng của Alice.
Như bạn có thể thấy ở trên, một mức chức năng nhất định được gói gọn trong các lớp DSA và RSA CryptoServiceProvider. Nó tóm tắt về việc bạn triển khai chúng như thế nào để xác minh Alice là người gửi mọi lúc vì thuật toán DSA cho phép bạn xác nhận người gửi bằng cách kết hợp đầu ra được tạo ra. Một chữ ký và băm nhất định phải khớp với nhau, nếu chúng thực chất thì DSA đã cấp cho bạn một mức độ bảo mật nhất định giữa Bob và Alice.
Vì vậy, bạn cần phải xác minh TẤT CẢ các byte của khóa công khai? Có một phần cụ thể của chìa khóa mà bạn có thể xem xét để đảm bảo rằng nó có thực sự giữa bạn hay không? Dấu vân tay có đủ để khớp không? – tbarbe
Không, bạn sử dụng khóa công khai để giải mã băm của thông báo (chữ ký), sau đó băm thông điệp của chính bạn làm người nhận. Nếu băm phù hợp, thì bạn biết nó được gửi bởi Alice. http://en.wikipedia.org/wiki/Digital_signature – Nathan
Ah vâng ... md5 hoặc SHA-1 - vâng? Vì vậy, một khi cert đến đích - cách xác minh tất cả ok là so sánh md5 và SHA-1 .... các chứng chỉ tôi có - hiển thị cả hai điều này ...và tôi đoán đây là những gì Im đọc về 'so sánh chúng ra khỏi ban nhạc' - có nghĩa là không làm điều đó trên một thiết lập không an toàn? – tbarbe