다음을 통해 공유


DSA 클래스

정의

모든 디지털 서명 알고리즘(DSA)의 구현이 상속되어야 하는 기본 추상 클래스를 나타냅니다.

public ref class DSA abstract : System::Security::Cryptography::AsymmetricAlgorithm
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[System.Runtime.InteropServices.ComVisible(true)]
public abstract class DSA : System.Security.Cryptography.AsymmetricAlgorithm
[<System.Runtime.Versioning.UnsupportedOSPlatform("browser")>]
type DSA = class
    inherit AsymmetricAlgorithm
type DSA = class
    inherit AsymmetricAlgorithm
[<System.Runtime.InteropServices.ComVisible(true)>]
type DSA = class
    inherit AsymmetricAlgorithm
Public MustInherit Class DSA
Inherits AsymmetricAlgorithm
상속
파생
특성

설명

클래스 및 파생 클래스를 사용하여 DSA 데이터의 무결성을 보호하는 데 도움이 되는 디지털 서명을 만들 수 있습니다. 는 DSACryptoServiceProvider 이 클래스의 구현을 제공합니다.

공개 키 시스템을 사용하여 메시지에 디지털 서명하기 위해 발신자는 먼저 메시지에 해시 함수를 적용하여 메시지 다이제스트를 만듭니다. 그런 다음 보낸 사람의 개인 키를 사용하여 메시지 다이제스트를 암호화하여 보낸 사람의 개인 서명을 만듭니다. 메시지와 서명을 받으면 수신자는 보낸 사람의 공개 키를 사용하여 서명의 암호를 해독하여 메시지 다이제스트를 복구하고 발신자가 사용한 것과 동일한 해시 알고리즘을 사용하여 메시지를 해시합니다. 수신자가 계산하는 메시지가 보낸 사람으로부터 받은 메시지 다이제스트와 정확히 일치하는 경우 수신자는 전송 중에 메시지가 변경되지 않았다고 가정할 수 있습니다. 보낸 사람의 공개 키는 일반적인 지식이므로 누구나 서명을 확인할 수 있습니다.

중요

DSA 알고리즘의 작성자는 해당 알고리즘에 대한 지원을 철회했습니다. 클래스 대신 클래스 또는 클래스를 ECDsa 사용하는 RSA 것이 좋습니다DSA. 사용 하 여 DSA 레거시 애플리케이션 및 데이터를 사용 하 여 호환성을 위해서만 합니다.

두 가지 버전의 DSA 알고리즘이 있습니다. FIPS 186-2에 설명된 원래 양식은 SHA-1을 해시 알고리즘으로 사용해야 하며 512비트에서 1024비트까지의 키 길이를 64비트 단위로 지원합니다. 업데이트된 버전의 알고리즘은 FIPS 186-3에서 설명되었으며, 이를 통해 SHA-2 해시 알고리즘 제품군을 사용할 수 있으며 2048비트 키와 3072비트 키에 대한 지원을 추가했습니다. 이 형식의 모든 파생 구현이 DSA에 대한 FIPS 186-3 개선 사항을 지원하는 것은 아닙니다. 속성을 통해 LegalKeySizes 지원을 검색할 수 있습니다.

생성자

DSA()

DSA 클래스의 새 인스턴스를 초기화합니다.

필드

KeySizeValue

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 나타냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizesValue

비대칭 알고리즘에서 지원하는 키 크기를 지정합니다.

(다음에서 상속됨 AsymmetricAlgorithm)

속성

KeyExchangeAlgorithm

파생 클래스에 재정의하는 경우 키 교환 알고리즘의 이름을 가져옵니다. 그렇지 않으면 NotImplementedException이 throw됩니다.

(다음에서 상속됨 AsymmetricAlgorithm)
KeySize

비대칭 알고리즘에서 사용하는 키 모듈러스의 크기(비트 단위)를 가져오거나 설정합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizes

비대칭 알고리즘에서 지원하는 키 크기를 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
SignatureAlgorithm

파생 클래스에서 구현하는 경우 서명 알고리즘 이름을 가져옵니다. 그렇지 않으면 항상 NotImplementedException이 throw됩니다.

(다음에서 상속됨 AsymmetricAlgorithm)

메서드

Clear()

AsymmetricAlgorithm 클래스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
Create()

비대칭 알고리즘을 수행하는 데 사용하는 기본 암호화 개체를 만듭니다.

Create(DSAParameters)

지정된 DSA 키 매개 변수를 이용하여 새 임시 DSA 키를 만듭니다.

Create(Int32)

지정된 키 크기를 이용하여 새 임시 DSA 키를 만듭니다.

Create(String)
사용되지 않음.

비대칭 알고리즘을 수행하는 데 사용하는 지정된 암호화 개체를 만듭니다.

CreateSignature(Byte[])

파생 클래스에서 재정의되는 경우 지정된 해시 값에 대한 DSA 시그니처를 만듭니다.

CreateSignature(Byte[], DSASignatureFormat)

지정된 해시 값의 DSA 시그니처를 표시된 형식으로 만듭니다.

CreateSignatureCore(ReadOnlySpan<Byte>, DSASignatureFormat)

지정된 해시 값의 DSA 시그니처를 표시된 형식으로 만듭니다.

Dispose()

AsymmetricAlgorithm 클래스의 현재 인스턴스에서 사용하는 모든 리소스를 해제합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
Dispose(Boolean)

AsymmetricAlgorithm 클래스에 사용되는 관리되지 않는 리소스를 해제하고, 필요에 따라 관리되는 리소스를 해제합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
Equals(Object)

지정된 개체가 현재 개체와 같은지 확인합니다.

(다음에서 상속됨 Object)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Byte>, PbeParameters)

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters)

PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 바이트 기반 암호인 PEM 인코딩으로 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters)

PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 문자 기반 암호인 PEM 인코딩으로 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportParameters(Boolean)

파생 클래스에서 재정의하는 경우 DSAParameters를 내보냅니다.

ExportPkcs8PrivateKey()

PKCS#8 PrivateKeyInfo 형식으로 현재 키를 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportPkcs8PrivateKeyPem()

PKCS#8 PrivateKeyInfo 형식인 PEM 인코딩으로 현재 키를 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfo()

X.509 SubjectPublicKeyInfo 형식으로 된 현재 키의 퍼블릭 키 부분을 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ExportSubjectPublicKeyInfoPem()

PEM 인코딩된 X.509 SubjectPublicKeyInfo 형식으로 현재 키의 공개 키 부분을 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
FromXmlString(String)

XML 문자열에서 DSA 개체를 다시 만듭니다.

GetHashCode()

기본 해시 함수로 작동합니다.

(다음에서 상속됨 Object)
GetMaxSignatureSize(DSASignatureFormat)

표시된 형식의 이 키로 생성된 시그니처의 최대 크기(바이트)를 가져옵니다.

GetType()

현재 인스턴스의 Type을 가져옵니다.

(다음에서 상속됨 Object)
HashData(Byte[], Int32, Int32, HashAlgorithmName)

파생 클래스에서 재정의할 때 지정된 해싱 알고리즘을 사용하여 지정된 바이트 배열 부분의 해시 값을 계산합니다.

HashData(Stream, HashAlgorithmName)

파생 클래스에서 재정의할 때 지정된 해싱 알고리즘을 사용하여 지정된 이진 스트림의 해시 값을 계산합니다.

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

바이트 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조체에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

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

파생 클래스에서 재정의되는 경우, 바이트 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, ReadOnlySpan<Byte>, Int32)

문자 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

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

파생 클래스에서 재정의되는 경우, 문자 기반 암호로 해독한 다음 이 개체의 키를 대체하여 PKCS#8 EncryptedPrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

암호화된 RFC 7468 PEM으로 인코딩된 프라이빗 키를 가져와 이 개체의 키를 바꿉니다.

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Byte>)

파생 클래스에서 재정의할 때 암호화된 RFC 7468 PEM으로 인코딩된 키를 가져와 이 개체의 키를 바꿉니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

암호화된 RFC 7468 PEM으로 인코딩된 프라이빗 키를 가져와 이 개체의 키를 바꿉니다.

ImportFromEncryptedPem(ReadOnlySpan<Char>, ReadOnlySpan<Char>)

파생 클래스에서 재정의할 때 암호화된 RFC 7468 PEM으로 인코딩된 키를 가져와 이 개체의 키를 바꿉니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportFromPem(ReadOnlySpan<Char>)

RFC 7468 PEM으로 인코딩된 키를 가져와 이 개체의 키를 바꿉니다.

ImportFromPem(ReadOnlySpan<Char>)

파생 클래스에서 재정의할 때 RFC 7468 텍스트로 인코딩된 키를 가져와 이 개체의 키를 바꿉니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportParameters(DSAParameters)

파생 클래스에서 재정의하는 경우 지정된 DSAParameters를 가져옵니다.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 PKCS#8 PrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

파생 클래스에서 재정의되는 경우, 해독한 다음 이 개체의 키를 대체하여 PKCS#8 PrivateKeyInfo 구조에서 퍼블릭/프라이빗 키 쌍을 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

해독한 다음 이 개체의 키를 대체하여 X.509 SubjectPublicKeyInfo 구조에서 퍼블릭 키를 가져옵니다.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

파생 클래스에서 재정의되는 경우, 해독한 다음 이 개체의 키를 대체하여 X.509 SubjectPublicKeyInfo 구조에서 퍼블릭 키를 가져옵니다.

(다음에서 상속됨 AsymmetricAlgorithm)
MemberwiseClone()

현재 Object의 단순 복사본을 만듭니다.

(다음에서 상속됨 Object)
SignData(Byte[], HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 바이트 배열의 해시 값을 계산하고 결과 해시 값을 서명합니다.

SignData(Byte[], HashAlgorithmName, DSASignatureFormat)

지정된 데이터의 해시 값을 계산하고 지정된 시그니처 형식을 사용하여 해당 값에 서명합니다.

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

지정된 해시 알고리즘을 사용하여 지정된 바이트 배열 일부의 해시 값을 계산하고 결과 해시 값을 서명합니다.

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

지정된 데이터의 해시 값을 계산하고 지정된 시그니처 형식을 사용하여 해당 값에 서명합니다.

SignData(Stream, HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 스트림의 해시 값을 계산하고 결과 해시 값을 서명합니다.

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

지정된 데이터의 해시 값을 계산하고 지정된 시그니처 형식을 사용하여 해당 값에 서명합니다.

SignDataCore(ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

지정된 데이터의 해시 값을 계산하고 지정된 시그니처 형식을 사용하여 해당 값에 서명합니다.

SignDataCore(Stream, HashAlgorithmName, DSASignatureFormat)

지정된 데이터의 해시 값을 계산하고 지정된 시그니처 형식을 사용하여 해당 값에 서명합니다.

ToString()

현재 개체를 나타내는 문자열을 반환합니다.

(다음에서 상속됨 Object)
ToXmlString(Boolean)

현재 DSA 개체의 XML 문자열 표현을 만들고 반환합니다.

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

표시된 형식으로 지정된 해시 값의 DSA 시그니처를 만들어 제공된 버퍼에 넣으려고 합니다.

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

제공된 버퍼에 지정된 해시의 DSA 시그니처를 만들려고 합니다.

TryCreateSignatureCore(ReadOnlySpan<Byte>, Span<Byte>, DSASignatureFormat, Int32)

표시된 형식으로 지정된 해시 값의 DSA 시그니처를 만들어 제공된 버퍼에 넣으려고 합니다.

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

바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

파생 클래스에서 재정의되는 경우, 바이트 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKey(ReadOnlySpan<Char>, PbeParameters, Span<Byte>, Int32)

문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

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

파생 클래스에서 재정의되는 경우, 문자 기반 암호를 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Byte>, PbeParameters, Span<Char>, Int32)

바이트 기반 암호인 PEM 인코딩을 사용하여 PKCS#8 EncryptedPrivateKeyInfo 형식으로 현재 키를 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportEncryptedPkcs8PrivateKeyPem(ReadOnlySpan<Char>, PbeParameters, Span<Char>, Int32)

PKCS#8 EncryptedPrivateKeyInfo 형식의 현재 키를 문자 기반 암호인 PEM 인코딩으로 내보냅니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportPkcs8PrivateKey(Span<Byte>, Int32)

PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

TryExportPkcs8PrivateKey(Span<Byte>, Int32)

파생 클래스에서 재정의되는 경우, PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportPkcs8PrivateKeyPem(Span<Char>, Int32)

PEM으로 인코딩된 PKCS#8 PrivateKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

TryExportSubjectPublicKeyInfo(Span<Byte>, Int32)

파생 클래스에서 재정의되는 경우, X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryExportSubjectPublicKeyInfoPem(Span<Char>, Int32)

PEM으로 인코딩된 X.509 SubjectPublicKeyInfo 형식의 현재 키를 제공된 버퍼로 내보내려고 시도합니다.

(다음에서 상속됨 AsymmetricAlgorithm)
TryHashData(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, Int32)

제공된 버퍼에 제공된 데이터의 해시 값을 컴퓨팅하려고 시도합니다.

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

표시된 형식으로 지정된 데이터의 DSA 시그니처를 만들어 제공된 버퍼에 넣으려고 합니다.

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

제공된 버퍼에 지정된 데이터의 DSA 시그니처를 만들려고 합니다.

TrySignDataCore(ReadOnlySpan<Byte>, Span<Byte>, HashAlgorithmName, DSASignatureFormat, Int32)

표시된 형식으로 지정된 데이터의 DSA 시그니처를 만들어 제공된 버퍼에 넣으려고 합니다.

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

지정된 해시 알고리즘을 사용하여 지정된 데이터의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.

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

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

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

지정된 해시 알고리즘을 사용하여 바이트 배열 일부에 있는 데이터의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.

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

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

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

지정된 해시 알고리즘을 사용하여 바이트 범위에 있는 데이터의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 시그니처가 유효한지 확인합니다.

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

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

VerifyData(Stream, Byte[], HashAlgorithmName)

지정된 해시 알고리즘을 사용하여 지정된 스트림의 해시 값을 계산한 다음 이 값을 제공된 서명과 비교하여 디지털 서명이 유효한지 확인합니다.

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

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

VerifyDataCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

VerifyDataCore(Stream, ReadOnlySpan<Byte>, HashAlgorithmName, DSASignatureFormat)

제공된 데이터의 디지털 시그니처가 유효한지 확인합니다.

VerifySignature(Byte[], Byte[])

파생 클래스에서 재정의된 경우 지정한 데이터에 대한 DSA 서명을 확인합니다.

VerifySignature(Byte[], Byte[], DSASignatureFormat)

제공된 해시의 디지털 시그니처가 유효한지 확인합니다.

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

제공된 데이터 해시의 디지털 시그니처가 유효한지 확인합니다.

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

제공된 해시의 디지털 시그니처가 유효한지 확인합니다.

VerifySignatureCore(ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, DSASignatureFormat)

제공된 해시의 디지털 시그니처가 유효한지 확인합니다.

명시적 인터페이스 구현

IDisposable.Dispose()

이 API는 제품 인프라를 지원하며 코드에서 직접 사용되지 않습니다.

이 멤버에 대한 설명은 Dispose()를 참조하세요.

(다음에서 상속됨 AsymmetricAlgorithm)

적용 대상

추가 정보