DSA 클래스

정의

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

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

설명

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

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

Important

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

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

생성자

Name Description
DSA()

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

필드

Name Description
KeySizeValue

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

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizesValue

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

(다음에서 상속됨 AsymmetricAlgorithm)

속성

Name Description
KeyExchangeAlgorithm

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

(다음에서 상속됨 AsymmetricAlgorithm)
KeySize

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

(다음에서 상속됨 AsymmetricAlgorithm)
LegalKeySizes

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

(다음에서 상속됨 AsymmetricAlgorithm)
SignatureAlgorithm

파생 클래스에서 구현되는 경우 서명 알고리즘의 이름을 가져옵니다. 그렇지 않으면 항상 .를 NotImplementedExceptionthrow합니다.

(다음에서 상속됨 AsymmetricAlgorithm)

메서드

Name Description
Clear()

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

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

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

Create(DSAParameters)

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

Create(Int32)

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

Create(String)
사용되지 않음.

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

CreateSignature(Byte[], DSASignatureFormat)

지정된 해시 값에 대한 DSA 서명을 표시된 형식으로 만듭니다.

CreateSignature(Byte[])

파생 클래스에서 재정의되는 경우 지정된 해시 값에 대한 서명을 만듭니다 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)

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

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

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

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

파생 클래스 DSAParameters에서 재정의된 경우 .

ExportPkcs8PrivateKey()

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

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

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

(다음에서 상속됨 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<Char>)

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

ImportFromPem(ReadOnlySpan<Char>)

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

ImportParameters(DSAParameters)

파생 클래스에서 재정의된 경우 지정된 DSAParameters.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

암호 해독 후 PKCS#8 PrivateKeyInfo 구조체에서 퍼블릭/프라이빗 키페어를 가져와 이 개체의 키를 대체합니다.

ImportPkcs8PrivateKey(ReadOnlySpan<Byte>, Int32)

파생 클래스에서 재정의된 경우 암호 해독 후 PKCS#8 PrivateKeyInfo 구조체에서 public/private Keypair를 가져와 이 개체의 키를 대체합니다.

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

암호 해독 후 X.509 SubjectPublicKeyInfo 구조체에서 공개 키를 가져와서 이 개체의 키를 대체합니다.

ImportSubjectPublicKeyInfo(ReadOnlySpan<Byte>, Int32)

파생 클래스에서 재정의된 경우 암호 해독 후 X.509 SubjectPublicKeyInfo 구조체에서 공개 키를 가져와서 이 개체의 키를 대체합니다.

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

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

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

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

SignData(Byte[], HashAlgorithmName)

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

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

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

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

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

SignData(Stream, HashAlgorithmName, DSASignatureFormat)

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

SignData(Stream, HashAlgorithmName)

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

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)

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

(다음에서 상속됨 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, DSASignatureFormat)

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

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

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

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

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

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

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

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

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

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

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

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

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

VerifyData(Stream, Byte[], HashAlgorithmName)

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

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

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

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

디지털 서명이 제공된 데이터에 대해 유효한지 확인합니다.

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

디지털 서명이 제공된 해시에 유효한지 확인합니다.

VerifySignature(Byte[], Byte[])

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

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

디지털 서명이 제공된 해시에 유효한지 확인합니다.

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

디지털 서명이 제공된 데이터 해시에 대해 유효한지 확인합니다.

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

디지털 서명이 제공된 해시에 유효한지 확인합니다.

명시적 인터페이스 구현

Name Description
IDisposable.Dispose()

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

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

(다음에서 상속됨 AsymmetricAlgorithm)

적용 대상

추가 정보