PKCS #1

PKCS #1 (Public-Key Cryptography Standards #1) — это один из ключевых стандартов, определяющих использование алгоритма RSA в криптографических протоколах. Он регламентирует:

  • форматы открытых и закрытых ключей;
  • способы шифрования и создания цифровой подписи с использованием RSA;
  • методы управления параметрами ключей.

Этот стандарт разработан компанией RSA Laboratories и широко используется в современных системах безопасности для реализации асимметричного шифрования и электронной подписи.

Основные характеристики

ХарактеристикаОписание
Полное названиеRSA Cryptography Standard
Текущая версияv2.2 (на 2025 год)
СтандартыRFC 8017
Основное назначениеШифрование и подпись данных с использованием RSA
Ключевые функцииOAEP, PSS, ASN.1 синтаксис ключей и подписей

Основные разделы стандарта

1. Форматирование данных

  • EME-OAEP — схема шифрования с дополнением, обеспечивающая защиту от ряда атак;
  • EMSA-PSS — метод формирования подписи с случайным солью, повышающий криптостойкость.

2. Синтаксис ключей

  • Описывает структуру хранения RSA-ключей в формате ASN.1;
  • Указывает поля для модуля (n), открытого экспоненты (e) и закрытого ключа (d), а также другие параметры.

Пример структуры закрытого ключа в ASN.1:

RSAPrivateKey ::= SEQUENCE {
    version           Version,
    modulus           INTEGER,  -- n
    publicExponent    INTEGER,  -- e
    privateExponent   INTEGER,  -- d
    prime1            INTEGER,  -- p
    prime2            INTEGER,  -- q
    exponent1         INTEGER,  -- d mod (p-1)
    exponent2         INTEGER,  -- d mod (q-1)
    coefficient       INTEGER   -- (inverse of q) mod p
}

3. Процедуры шифрования и подписи

  • Подробно описаны этапы генерации и проверки подписи;
  • Приведены рекомендации по безопасному использованию RSA в различных приложениях.

Где применяется PKCS #1?

  1. SSL/TLS и HTTPS: используется для обмена ключами и аутентификации сервера;
  2. Электронная цифровая подпись (ЭЦП): применяется в сертификатах X.509, формируемых удостоверяющими центрами;
  3. Управление ключами в PKI: стандартный способ представления RSA-ключей в системах открытых ключей;
  4. Форматы файлов: файлы .pem, .der, .p7b, .pfx могут содержать ключи и подписи, соответствующие спецификации PKCS #1.

Версии стандарта

ВерсияГод выпускаКраткое описание
v1.51993Первая широ́ко принятая версия, до сих пор используется в старых системах.
v2.01998Введены более безопасные схемы: OAEP и PSS.
v2.12002Добавлены улучшения для совместимости и безопасности.
v2.22012Актуальная версия, содержит обновления и исправления.

Преимущества стандарта

  • Широкая поддержка — используется в большинстве библиотек и приложений, работающих с RSA;
  • Стандартизация — позволяет добиться совместимости между различными платформами и системами;
  • Гибкость — поддерживает несколько схем шифрования и подписи;
  • Безопасность — новые версии стандарта используют устойчивые к атакам методы формирования подписи и шифрования.

Как проверить или использовать PKCS #1?

Примеры команд OpenSSL:

# Просмотр приватного RSA-ключа
openssl rsa -in private.key -text -noout

# Генерация RSA-ключа по стандарту PKCS #1
openssl genrsa -out private.key 2048

# Проверка сертификата на соответствие PKCS #1
openssl x509 -in certificate.pem -text -noout

Отличие от других стандартов

СтандартНазначениеОсобенности
PKCS #1Шифрование и подпись RSAБазовый стандарт работы с RSA
PKCS #7Подпись и шифрование сообщенийИспользует сертификаты для защиты данных
PKCS #8Хранение закрытых ключейОбёртка для приватных ключей, в т.ч. RSA
PKCS #12Хранение пары ключей + сертификатовПоддерживает защищённое хранение нескольких элементов

Заключение

PKCS #1 — фундаментальный стандарт, который обеспечивает корректную и безопасную работу алгоритма RSA в современных криптографических протоколах. Он лежит в основе множества технологий, используемых в интернете, государственных системах и корпоративных решениях.

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