DSA Klasa

Definicja

Reprezentuje abstrakcyjną klasę bazową, z której wszystkie implementacje algorytmu podpisu cyfrowego (DSA) muszą dziedziczyć.Represents the abstract base class from which all implementations of the Digital Signature Algorithm (DSA) must inherit.

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
Dziedziczenie
Pochodne
Atrybuty

Uwagi

Można użyć klasy DSA i klas pochodnych do tworzenia podpisów cyfrowych, które pomagają chronić integralność danych.You can use the DSA class and derived classes to create digital signatures that help protect the integrity of your data. DSACryptoServiceProvider zawiera implementację tej klasy.The DSACryptoServiceProvider provides an implementation of this class.

Aby użyć systemu klucza publicznego do cyfrowego podpisywania wiadomości, nadawca najpierw stosuje funkcję skrótu do wiadomości, aby utworzyć skrót wiadomości.To use a public-key system to digitally sign a message, the sender first applies a hash function to the message to create a message digest. Nadawca szyfruje następnie skrót wiadomości z kluczem prywatnym nadawcy w celu utworzenia podpisu osobistego nadawcy.The sender then encrypts the message digest with the sender's private key to create the sender's personal signature. Po odebraniu komunikatu i podpisu odbiorca odszyfrowuje podpis przy użyciu klucza publicznego nadawcy w celu odzyskania skrótu wiadomości i mieszania komunikatu przy użyciu tego samego algorytmu wyznaczania wartości skrótu, który został użyty przez nadawcę.Upon receiving the message and signature, the receiver decrypts the signature using the sender's public key to recover the message digest and hashes the message using the same hash algorithm that the sender used. Jeśli skrót wiadomości, który jest obliczany przez odbiorcę dokładnie pasuje do skrótu wiadomości otrzymanego od nadawcy, odbiorca może założyć, że komunikat nie został zmodyfikowany podczas przesyłania.If the message digest that the receiver computes exactly matches the message digest received from the sender, the receiver can assume that the message was not altered while in transit. Należy pamiętać, że podpis może być zweryfikowany przez każdego użytkownika, ponieważ klucz publiczny nadawcy jest powszechną wiedzą.Note that a signature can be verified by anyone, because the sender's public key is common knowledge.

Ważne

Dostępne są nowsze algorytmy asymetryczne.Newer asymmetric algorithms are available. Rozważ użycie klasy RSA lub klasy ECDsa zamiast klasy DSA.Consider using the RSA class or the ECDsa class instead of the DSA class. Używaj DSA tylko w celu zapewnienia zgodności ze starszymi aplikacjami i danymi.Use DSA only for compatibility with legacy applications and data.

Istnieje dwie różne wersje algorytmu DSA.Two different versions of the DSA algorithm exist. Oryginalny formularz, opisany w standardzie FIPS 186-2, wymaga użycia algorytmu SHA-1 jako algorytm wyznaczania wartości skrótu i obsługuje długości kluczy z 512 bitów do 1024 bitów w przyrostach wynoszących 64 bitów.The original form, described in FIPS 186-2, requires the use of SHA-1 as the hash algorithm and supports key lengths from 512 bits to 1024 bits in increments of 64 bits. Zaktualizowana wersja algorytmu została opisana w standardzie FIPS 186-3, który umożliwia korzystanie z rodziny SHA-2 algorytmów wyznaczania wartości skrótu i dodanie obsługi kluczy bitowych 2048 oraz 3072 klucze bitowe.An updated version of the algorithm was described in FIPS 186-3, which enabled the use of the SHA-2 family of hash algorithms and added support for 2048 bit keys and 3072 bit keys. Nie wszystkie pochodne implementacje tego typu nie obsługują rozszerzeń FIPS 186-3 dla DSA.Not all derived implementations of this type support the FIPS 186-3 enhancements to DSA. Pomoc techniczna może zostać wykryta za pośrednictwem właściwości LegalKeySizes.Support can be detected via the LegalKeySizes property.

Konstruktory

DSA()

Inicjuje nowe wystąpienie klasy DSA klasy.Initializes a new instance of the DSA class.

Pola

KeySizeValue

Reprezentuje rozmiar (w bitach) modułu klucza używanego przez algorytm asymetryczny.Represents the size, in bits, of the key modulus used by the asymmetric algorithm.

(Odziedziczone po AsymmetricAlgorithm)
LegalKeySizesValue

Określa rozmiary kluczy, które są obsługiwane przez algorytm asymetryczny.Specifies the key sizes that are supported by the asymmetric algorithm.

(Odziedziczone po AsymmetricAlgorithm)

Właściwości

KeyExchangeAlgorithm

Gdy jest zastępowany w klasie pochodnej, pobiera nazwę algorytmu wymiany kluczy.When overridden in a derived class, gets the name of the key exchange algorithm. W przeciwnym razie zgłasza NotImplementedException.Otherwise, throws an NotImplementedException.

(Odziedziczone po AsymmetricAlgorithm)
KeySize

Pobiera lub ustawia rozmiar (w bitach) modułu klucza używanego przez algorytm asymetryczny.Gets or sets the size, in bits, of the key modulus used by the asymmetric algorithm.

(Odziedziczone po AsymmetricAlgorithm)
LegalKeySizes

Pobiera rozmiary kluczy, które są obsługiwane przez algorytm asymetryczny.Gets the key sizes that are supported by the asymmetric algorithm.

(Odziedziczone po AsymmetricAlgorithm)
SignatureAlgorithm

Po zaimplementowaniu w klasie pochodnej pobiera nazwę algorytmu podpisu.When implemented in a derived class, gets the name of the signature algorithm. W przeciwnym razie zawsze zgłasza NotImplementedException.Otherwise, always throws a NotImplementedException.

(Odziedziczone po AsymmetricAlgorithm)

Metody

Clear()

Zwalnia wszystkie zasoby używane przez klasę AsymmetricAlgorithm.Releases all resources used by the AsymmetricAlgorithm class.

(Odziedziczone po AsymmetricAlgorithm)
Create()

Tworzy domyślny obiekt kryptograficzny używany do wykonywania algorytmu asymetrycznego.Creates the default cryptographic object used to perform the asymmetric algorithm.

Create(DSAParameters)

Tworzy nowy klucz tymczasowych DSA z określonymi parametrami klucza DSA.Creates a new ephemeral DSA key with the specified DSA key parameters.

Create(Int32)

Tworzy nowy klucz tymczasowych DSA o określonym rozmiarze klucza.Creates a new ephemeral DSA key with the specified key size.

Create(String)

Tworzy określony obiekt kryptograficzny używany do wykonywania algorytmu asymetrycznego.Creates the specified cryptographic object used to perform the asymmetric algorithm.

CreateSignature(Byte[])

Gdy jest zastępowany w klasie pochodnej, tworzy podpis DSA dla określonej wartości skrótu.When overridden in a derived class, creates the DSA signature for the specified hash value.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy AsymmetricAlgorithm.Releases all resources used by the current instance of the AsymmetricAlgorithm class.

(Odziedziczone po AsymmetricAlgorithm)
Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez klasę AsymmetricAlgorithm i opcjonalnie zwalnia zasoby zarządzane.Releases the unmanaged resources used by the AsymmetricAlgorithm class and optionally releases the managed resources.

(Odziedziczone po AsymmetricAlgorithm)
Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

Eksportuje bieżący klucz w formacie EncryptedPrivateKeyInfo PKCS # 8 z hasłem opartym na bajcie.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a byte-based password.

(Odziedziczone po AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

Eksportuje bieżący klucz w formacie EncryptedPrivateKeyInfo PKCS # 8 przy użyciu hasła opartego na znakach.Exports the current key in the PKCS#8 EncryptedPrivateKeyInfo format with a char-based password.

(Odziedziczone po AsymmetricAlgorithm)
ExportParameters(Boolean)

Gdy jest zastępowany w klasie pochodnej, eksportuje DSAParameters.When overridden in a derived class, exports the DSAParameters.

ExportPkcs8PrivateKey()

Eksportuje bieżący klucz w formacie PrivateKeyInfo PKCS # 8.Exports the current key in the PKCS#8 PrivateKeyInfo format.

(Odziedziczone po AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

Eksportuje część klucza publicznego bieżącego klucza w formacie X. 509 SubjectPublicKeyInfo.Exports the public-key portion of the current key in the X.509 SubjectPublicKeyInfo format.

(Odziedziczone po AsymmetricAlgorithm)
FromXmlString(String)

Rekonstruuje obiekt DSA z ciągu XML.Reconstructs a DSA object from an XML string.

GetHashCode()

Służy jako domyślna funkcja skrótu.Serves as the default hash function.

(Odziedziczone po Object)
GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

Gdy jest zastępowany w klasie pochodnej, oblicza wartość skrótu określonej części tablicy bajtowej przy użyciu określonego algorytmu wyznaczania wartości skrótu.When overridden in a derived class, computes the hash value of a specified portion of a byte array by using a specified hashing algorithm.

HashData(Stream, HashAlgorithmName)

Gdy jest zastępowany w klasie pochodnej, oblicza wartość skrótu określonego strumienia binarnego przy użyciu określonego algorytmu wyznaczania wartości skrótu.When overridden in a derived class, computes the hash value of a specified binary stream by using a specified hashing algorithm.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, Int32)

Importuje parę kluczy publiczny/prywatny ze struktury EncryptedPrivateKeyInfo PKCS # 8 Po odszyfrowaniu przy użyciu hasła opartego na bajtach, zastępując klucze dla tego obiektu.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a byte-based password, replacing the keys for this object.

ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

Importuje parę kluczy publiczny/prywatny ze struktury EncryptedPrivateKeyInfo PKCS # 8 Po odszyfrowaniu przy użyciu hasła opartego na znakach, zastępując klucze dla tego obiektu.Imports the public/private keypair from a PKCS#8 EncryptedPrivateKeyInfo structure after decrypting with a char-based password, replacing the keys for this object.

ImportParameters(DSAParameters)

Gdy jest zastępowany w klasie pochodnej, importuje określony DSAParameters.When overridden in a derived class, imports the specified DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

Importuje parę kluczy publiczny/prywatny ze struktury PrivateKeyInfo PKCS # 8 Po odszyfrowaniu, zastępując klucze dla tego obiektu.Imports the public/private keypair from a PKCS#8 PrivateKeyInfo structure after decryption, replacing the keys for this object.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

Importuje klucz publiczny z struktury SubjectPublicKeyInfo X. 509 po odszyfrowaniu, zastępując klucze dla tego obiektu.Imports the public key from an X.509 SubjectPublicKeyInfo structure after decryption, replacing the keys for this object.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
SignData(Byte[], HashAlgorithmName)

Oblicza wartość skrótu określonej tablicy bajtów przy użyciu określonego algorytmu wyznaczania wartości skrótu i podpisuje wynikową wartość skrótu.Computes the hash value of the specified byte array using the specified hash algorithm and signs the resulting hash value.

SignData(Byte[], Int32, Int32, HashAlgorithmName)

Oblicza wartość skrótu części określonej tablicy bajtów przy użyciu określonego algorytmu wyznaczania wartości skrótu i podpisuje wynikową wartość skrótu.Computes the hash value of a portion of the specified byte array using the specified hash algorithm and signs the resulting hash value.

SignData(Stream, HashAlgorithmName)

Oblicza wartość skrótu określonego strumienia przy użyciu określonego algorytmu wyznaczania wartości skrótu i podpisuje wynikową wartość skrótu.Computes the hash value of the specified stream using the specified hash algorithm and signs the resulting hash value.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)
ToXmlString(Boolean)

Tworzy i zwraca reprezentację ciągu XML bieżącego obiektu DSA.Creates and returns an XML string representation of the current DSA object.

TryCreateSignature(ReadOnlySpan<Byte>, Span<Byte>, Int32)

Próbuje utworzyć podpis DSA dla określonego skrótu do podanego buforu.Attempts to create the DSA signature for the specified hash into the provided buffer.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters, Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie EncryptedPrivateKeyInfo PKCS # 8 do podanego buforu przy użyciu hasła opartego na bajtach.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a byte-based password.

TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie EncryptedPrivateKeyInfo PKCS # 8 do podanego buforu przy użyciu hasła opartego na znakach.Attempts to export the current key in the PKCS#8 EncryptedPrivateKeyInfo format into a provided buffer, using a char-based password.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie PrivateKeyInfo PKCS # 8 do podanego buforu.Attempts to export the current key in the PKCS#8 PrivateKeyInfo format into a provided buffer.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

Próbuje wyeksportować bieżący klucz w formacie X. 509 SubjectPublicKeyInfo do podanego buforu.Attempts to export the current key in the X.509 SubjectPublicKeyInfo format into a provided buffer.

TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Próbuje obliczyć wartość skrótu dostarczonych danych do podanego buforu.Attempts to compute the hash value of the provided data into a provided buffer.

TrySignData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

Próbuje utworzyć podpis DSA dla określonych danych w podanym buforze.Attempts to create the DSA signature for the specified data into the provided buffer.

VerifyData(Byte[], Byte[], HashAlgorithmName)

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu określonych danych przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując go z podaną sygnaturą.Verifies that a digital signature is valid by calculating the hash value of the specified data using the specified hash algorithm and comparing it to the provided signature.

VerifyData(Byte[], Int32, Int32, Byte[], HashAlgorithmName)

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu danych w części tablicy bajtowej przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podaną sygnaturą.Verifies that a digital signature is valid by calculating the hash value of the data in a portion of a byte array using the specified hash algorithm and comparing it to the provided signature.

VerifyData(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName)

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu danych w zakresie bajtów przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując ją z podaną sygnaturą.Verifies that a digital signature is valid by calculating the hash value of the data in a byte span using the specified hash algorithm and comparing it to the provided signature.

VerifyData(Stream, Byte[], HashAlgorithmName)

Sprawdza, czy podpis cyfrowy jest prawidłowy, obliczając wartość skrótu określonego strumienia przy użyciu określonego algorytmu wyznaczania wartości skrótu i porównując go z podaną sygnaturą.Verifies that a digital signature is valid by calculating the hash value of the specified stream using the specified hash algorithm and comparing it to the provided signature.

VerifySignature(Byte[], Byte[])

Gdy jest zastępowany w klasie pochodnej, sprawdza DSA podpisu dla określonych danych.When overridden in a derived class, verifies the DSA signature for the specified data.

VerifySignature(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>)

Sprawdza, czy podpis cyfrowy jest prawidłowy dla podanego skrótu danych.Verifies that a digital signature is valid for a provided data hash.

Jawne implementacje interfejsu

IDisposable.Dispose()

Aby uzyskać opis tego elementu członkowskiego, zobacz Dispose().For a description of this member, see Dispose().

(Odziedziczone po AsymmetricAlgorithm)

Dotyczy

Zobacz też