System.Security.Cryptography.RSAParameters 구조체

이 문서에서는 이 API에 대한 참조 설명서에 대한 추가 설명서를 제공합니다.

구조체는 RSAParameters RSA 알고리즘에 대한 표준 매개 변수를 나타냅니다.

클래스는 RSA 구조체의 형태로 원시 RSA 키를 검색할 수 있는 메서드를 노출 ExportParameters 합니다 RSAParameters .

이 구조의 내용을 이해하려면 알고리즘의 작동 방식을 RSA 숙지하는 데 도움이 됩니다. 다음 섹션에서는 알고리즘에 대해 간략하게 설명합니다.

RSA 알고리즘

키 쌍을 생성하려면 먼저 p와 q라는 두 개의 큰 소수를 만듭니다. 이러한 숫자를 곱하고 결과를 n이라고 합니다. p와 q는 모두 소수이기 때문에 n의 유일한 요소는 1, p, q 및 n입니다.

n보다 작은 숫자만 고려하면 n보다 상대적으로 소수인 숫자의 수, 즉 n, equals(p - 1)(q - 1)와 공통된 요소가 없는 수입니다.

이제 계산한 값에 상대적으로 소수인 숫자 e를 선택합니다. 이제 공개 키가 {e, n}으로 표시됩니다.

프라이빗 키를 만들려면 d(d)(e) mod(p - 1)(q - 1) = 1과 같은 숫자인 d를 계산해야 합니다. 유클리드 알고리즘에 따라 프라이빗 키는 이제 {d, n}입니다.

일반 텍스트 m에서 암호 텍스트 c로의 암호화는 c = (m ^ e) mod n으로 정의됩니다. 암호 해독은 m = (c ^ d) mod n으로 정의됩니다.

필드 요약

PKCS #1: RSA 암호화 표준섹션 A.1.2는 RSA 프라이빗 키에 대한 형식을 정의합니다.

다음 표에서는 구조체의 필드를 요약합니다 RSAParameters . 세 번째 열은 PKCS #1: RSA 암호화 표준A.1.2 섹션에 해당 필드를 제공합니다.

RSAParameters 필드 포함 해당 PKCS #1 필드
D d, 프라이빗 지수 privateExponent
DP d mod(p - 1) exponent1
DQ d mod(q - 1) exponent2
Exponent e, 공용 지수 publicExponent
InverseQ (InverseQ) (q) = 1 mod p 계수
Modulus n 모듈러스
P p prime1
Q q prime2

RSA의 보안은 공개 키 { e, n }을 감안할 때 직접 또는 p 및 q로 n을 팩터링하여 d를 계산할 수 없다는 사실에서 비롯됩니다. 따라서 d, p 또는 q와 관련된 키의 모든 부분은 비밀로 유지되어야 합니다. 공개 키 정보만 호출 ExportParameters 하고 요청하는 경우 이것이 바로 수신만 Exponent 받는 이유입니다 Modulus. 다른 필드는 프라이빗 키에 대한 액세스 권한이 있고 요청하는 경우에만 사용할 수 있습니다.

RSAParameters 은 어떤 방식으로든 암호화되지 않으므로 프라이빗 키 정보와 함께 사용할 때는 주의해야 합니다. 모든 멤버가 RSAParameters serialize됩니다. 누구든지 프라이빗 키 매개 변수를 파생하거나 가로챌 수 있는 경우 키와 암호화되거나 서명된 모든 정보가 손상됩니다.