RSAParameters 구조체

정의

RSA 알고리즘에 대한 표준 매개 변수를 나타냅니다.Represents the standard parameters for the RSA algorithm.

public value class RSAParameters
[System.Runtime.InteropServices.ComVisible(true)]
[System.Serializable]
public struct RSAParameters
type RSAParameters = struct
Public Structure RSAParameters
상속
RSAParameters
특성

설명

RSA 노출 클래스는 ExportParameters 형태로 원시 RSA 키를 검색할 수 있는 메서드는 RSAParameters 구조입니다.The RSA class exposes an ExportParameters method that enables you to retrieve the raw RSA key in the form of an RSAParameters structure. 이 구조체의 내용을 이해를 잘 알아야 하는 방법을 RSA 알고리즘의 작동 합니다.Understanding the contents of this structure requires familiarity with how the RSA algorithm works. 다음 섹션에서는 알고리즘을 간략하게 설명합니다.The next section discusses the algorithm briefly.

RSA 알고리즘RSA Algorithm

키 쌍을 생성 하려면 p 및 q 라는 두 개의 큰 소수를 만들어 시작 합니다.To generate a key pair, you start by creating two large prime numbers named p and q. 이러한 숫자를 곱합니다 및 결과 n 이라고 합니다.These numbers are multiplied and the result is called n. 되므로 p 및 q 모두 소수, n은 1, p, q, n의 유일한 요소입니다.Because p and q are both prime numbers, the only factors of n are 1, p, q, and n.

N 보다 작은 숫자만 생각 하는 경우, n에 있는 숫자의 개수 공통점이 없습니다 요소 n, equals (p-1)(q-1) 합니다.If we consider only numbers that are less than n, the count of numbers that are relatively prime to n, that is, have no factors in common with n, equals (p - 1)(q - 1).

이제는 비교적 소수 계산한 값에 숫자 e를 선택 합니다.Now you choose a number e, which is relatively prime to the value you calculated. 공개 키가 이제 {e, n}로 표시 됩니다.The public key is now represented as {e, n}.

개인 키를 만들려면 d 숫자를 계산 해야 되도록 (위해 mod (p-1)(q-1) = 1입니다.To create the private key, you must calculate d, which is a number such that (d)(e) mod (p - 1)(q - 1) = 1. 유클리드 알고리즘에 따라 개인 키가 이제 {d, n}.In accordance with the Euclidean algorithm, the private key is now {d, n}.

C로 정의 된 일반 텍스트 암호 텍스트 c m 암호화 = (m ^ e) mod n입니다.Encryption of plaintext m to ciphertext c is defined as c = (m ^ e) mod n. 암호 해독 한 다음 m으로 정의할 수 = (c ^ d) mod n입니다.Decryption would then be defined as m = (c ^ d) mod n.

필드의 요약Summary of Fields

PKCS #1의 섹션 A. 1.2: Rsa 연구소 웹 사이트의 rsa 암호화 표준은 rsa 개인 키에 대 한 형식을 정의 합니다.Section A.1.2 of the PKCS #1: RSA Cryptography Standard on the RSA Laboratories Web site defines a format for RSA private keys.

다음 표에서 필드는 RSAParameters 구조입니다.The following table summarizes the fields of the RSAParameters structure. 세 번째 열은 PKCS #1의 섹션 A. 1.2에 해당 하는 필드를 제공 합니다. RSA 암호화 표준입니다.The third column provides the corresponding field in section A.1.2 of PKCS #1: RSA Cryptography Standard.

RSAParameters 필드RSAParameters field 포함Contains PKCS # 1의 해당 필드Corresponding PKCS #1 field
D d, 개인 지 수d, the private exponent privateExponentprivateExponent
DP d mod (p-1)d mod (p - 1) exponent1exponent1
DQ d mod (q-1)d mod (q - 1) exponent2exponent2
Exponent 공개 지 수 ee, the public exponent publicExponentpublicExponent
InverseQ (InverseQ)(q) = 1 mod p(InverseQ)(q) = 1 mod p 계수coefficient
Modulus nn T:System.Security.Cryptography.RSAmodulus
P pp prime1prime1
Q qq prime2prime2

Rsa 보안, 지정 된 공개 키 {e, n}, 아닌지 직접적으로 또는 p 및 q n 팩터링 하 여 d를 계산 하는 것이 불가능 팩트에서 파생 됩니다.The security of RSA derives from the fact that, given the public key { e, n }, it is computationally infeasible to calculate d, either directly or by factoring n into p and q. 따라서 d, p, q와 관련 된 키의 일부가 기밀로 유지 해야 합니다.Therefore, any part of the key related to d, p, or q must be kept secret. 호출 하는 경우If you call

ExportParameters 이 때문에 받게만 공개 키 정보를 묻습니다 ExponentModulus입니다.ExportParameters and ask for only the public key information, this is why you will receive only Exponent and Modulus. 다른 필드는 개인 키에 액세스할 수 있고 요청 하는 경우에 사용할 수 있습니다.The other fields are available only if you have access to the private key, and you request it.

RSAParameters 개인 키 정보를 사용 하는 경우 주의 해야 하므로 어떤 방식으로든에서 암호화 되지 않습니다.RSAParameters is not encrypted in any way, so you must be careful when you use it with the private key information. 사실, 개인 키 정보를 포함 하는 필드를 하나도 serialize 할 수 있습니다.In fact, none of the fields that contain private key information can be serialized. Serialize 하려는 경우는 RSAParameters 구조는 원격 서비스를 사용 하 여 호출 하거나 serializer 중 하나를 사용 하 여 공개 키 정보에만 받게 됩니다.If you try to serialize an RSAParameters structure with a remoting call or by using one of the serializers, you will receive only public key information. 개인 키 정보를 전달 하려는 사용 하는 경우에 해당 데이터를 직접 보내도록 합니다.If you want to pass private key information, you will have to manually send that data. 모든 경우에서 파생 되는 매개 변수를 전송 하는 키 쓸모 없게 합니다.In all cases, if anyone can derive the parameters, the key that you transmit becomes useless.

.Net Core 2.1.0 이상: Serialization 제한이 제거 되었고의 RSAParameters 모든 멤버가 serialize 됩니다..NET Core 2.1.0 and later: The serialization restrictions have been removed and all members of RSAParameters are serialized. 주의 excercised 작성 하거나.NET Core 2.1.0에 대 한 코드를 업그레이드 해야 합니다. 또는 나중에 파생 또는 개인 키 매개 변수를 가로챌 수 있습니다 누구나 키와 모든 정보 암호화 아니면 사용 하 여 서명 때문에 손상 됩니다.Care must be excercised when writing or upgrading code against .NET Core 2.1.0 or later, because if anyone can derive or intercept the private key parameters the key and all the information encrypted or signed with it are compromised.

필드

D

D 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the D parameter for the RSA algorithm.

DP

DP 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the DP parameter for the RSA algorithm.

DQ

DQ 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the DQ parameter for the RSA algorithm.

Exponent

Exponent 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the Exponent parameter for the RSA algorithm.

InverseQ

InverseQ 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the InverseQ parameter for the RSA algorithm.

Modulus

Modulus 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the Modulus parameter for the RSA algorithm.

P

P 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the P parameter for the RSA algorithm.

Q

Q 알고리즘에 대한 RSA 매개 변수를 나타냅니다.Represents the Q parameter for the RSA algorithm.

적용 대상

추가 정보