RSAParameters Структура

Определение

Представляет стандартные параметры для алгоритма RSA.

public value class RSAParameters
public struct RSAParameters
[System.Serializable]
public struct RSAParameters
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public struct RSAParameters
type RSAParameters = struct
[<System.Serializable>]
type RSAParameters = struct
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type RSAParameters = struct
Public Structure RSAParameters
Наследование
RSAParameters
Атрибуты

Комментарии

Структура RSAParameters представляет стандартные параметры для алгоритма RSA.

Класс RSA предоставляет метод ExportParameters, который позволяет получить необработанный ключ RSA в форме структуры RSAParameters.

Чтобы понять содержимое этой структуры, полезно знать, как работает алгоритм RSA. В следующем разделе описывается краткое описание алгоритма.

Алгоритм RSA

Чтобы создать пару ключей, сначала создайте два больших простых числа с именем p и q. Эти числа умножаются, и результат называется n. Поскольку p и q являются простыми числами, единственными факторами n являются 1, p, q и n.

Если рассматривать только числа, которые меньше n, количество чисел, которые относительно простые к n, то есть не имеют факторов общего с n, равно (p - 1)(q - 1).

Теперь вы выбираете число e, которое относительно просто для вычисляемого значения. Открытый ключ теперь представлен как {e, n}.

Чтобы создать закрытый ключ, необходимо вычислить d — число, такое что (d)(e) mod ((p - 1)(q - 1)) = 1. В соответствии с алгоритмом Euclidean закрытый ключ теперь {d, n}.

Шифрование открытого текста m в шифртекст c обозначается как c = (m ^ e) mod n. Затем расшифровка будет определена как m = (c ^ d) mod n.

Сводка полей

Раздел A.1.2 PKCS #1: RSA Cryptography Standard определяет формат закрытых ключей RSA.

В таблице RSAParameters ниже перечислены поля структуры. Третий столбец предоставляет соответствующее поле в разделе A.1.2 PKCS #1: RSA Cryptography Standard.

RSAParameters Поле Содержит Соответствующее поле PKCS #1
D d, частный экспонент закрытыйЭкспонент
DP d mod (p - 1) экспонент1
DQ d mod (q - 1) экспонент2
Exponent e, общедоступная экспонента открытый_экспонент
InverseQ (InverseQ)(q) = 1 мод p коэффициент
Modulus н модуль
P п прайм1
Q q prime2

Безопасность RSA происходит от того факта, что, имея открытый ключ { e, n }, вычислительно невозможно определить d, либо напрямую, либо через разложение n на p и q. Поэтому любая часть ключа, связанная с d, p или q, должна храниться в секрете. Если вы звоните ExportParameters и запрашиваете только информацию открытого ключа, то именно поэтому вы получите только Exponent и Modulus. Другие поля доступны только в том случае, если у вас есть доступ к закрытому ключу, и вы запрашиваете его.

RSAParameters не шифруется каким-либо образом, поэтому при использовании его с информацией о закрытом ключе необходимо быть осторожным. Все члены RSAParameters были сериализованы. Если любой пользователь может получить или перехватить параметры закрытого ключа, ключ и все данные, зашифрованные или подписанные с ним, скомпрометированы.

Поля

Имя Описание
D

D Представляет параметр для алгоритмаRSA.

DP

DP Представляет параметр для алгоритмаRSA.

DQ

DQ Представляет параметр для алгоритмаRSA.

Exponent

Exponent Представляет параметр для алгоритмаRSA.

InverseQ

InverseQ Представляет параметр для алгоритмаRSA.

Modulus

Modulus Представляет параметр для алгоритмаRSA.

P

P Представляет параметр для алгоритмаRSA.

Q

Q Представляет параметр для алгоритмаRSA.

Применяется к

См. также раздел