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 представляет стандартные параметры для алгоритма 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 |
|
| DP |
|
| DQ |
|
| Exponent |
|
| InverseQ |
|
| Modulus |
|
| P |
|
| Q |
|