Из Википедии, свободной энциклопедии
  (Перенаправлено с PKCS1 )
Перейти к навигации Перейти к поиску

В криптографии , PKCS # 1 является первым из семейства стандартов называется открытым ключом стандарты криптографии (PKCS) , опубликованной RSA Laboratories . В нем представлены основные определения и рекомендации по реализации алгоритма RSA для криптографии с открытым ключом . Он определяет математические свойства открытых и закрытых ключей, примитивные операции для шифрования и подписей, безопасные криптографические схемы и соответствующие представления синтаксиса ASN.1 .

Текущая версия - 2.2 (27.10.2012). По сравнению с 2.1 (2002-06-14), который был переиздан как RFC 3447, версия 2.2 обновляет список разрешенных алгоритмов хеширования, чтобы привести их в соответствие с FIPS 180-4, поэтому добавлены SHA-224, SHA-512/224 и SHA- 512/256.

Ключи [ править ]

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

Начиная с версии 2.1, это определение было обобщено, чтобы разрешить использование ключей с несколькими простыми числами, где количество различных простых чисел может быть два или более. При работе с ключами с несколькими простыми числами все простые множители обычно помечаются как некоторые , например:

для

Для удобства обозначений и .

Открытый ключ RSA представлен в виде кортежа , где целое число является публичной экспонентой.

Закрытый ключ RSA может иметь два представления. Первая компактная форма - кортеж , где - частный показатель. Вторая форма имеет не менее пяти членов (p, q, dp, dq, qinv) или более для ключей с несколькими простыми числами. Хотя дополнительные термины математически избыточны для компактной формы, они допускают определенные вычислительные оптимизации при использовании ключа. В частности, второй формат позволяет получить открытый ключ. [1]

Примитивы [ править ]

Стандарт определяет несколько основных примитивов. Примитивные операции предоставляют фундаментальные инструкции по превращению необработанных математических формул в вычислимые алгоритмы.

  • I2OSP - Примитив целого числа в октетную строку - преобразует (потенциально очень большое) неотрицательное целое число в последовательность байтов (октетную строку).
  • OS2IP - октетная строка в целочисленный примитив - интерпретирует последовательность байтов как неотрицательное целое число
  • RSAEP - RSA Encryption Primitive - шифрует сообщение с помощью открытого ключа.
  • RSADP - RSA Decryption Primitive - расшифровывает зашифрованный текст с помощью закрытого ключа
  • RSASP1 - RSA Signature Primitive 1 - Создает подпись над сообщением с использованием закрытого ключа.
  • RSAVP1 - RSA Verification Primitive 1 - проверяет подпись для сообщения с использованием открытого ключа.

Схемы [ править ]

Сами по себе примитивные операции не обязательно обеспечивают безопасность. Концепция криптографической схемы заключается в определении алгоритмов более высокого уровня или использования примитивов для достижения определенных целей безопасности.

Есть две схемы шифрования и дешифрования:

Примечание. В RSAES-OAEP в PKCS # 1 версии 2.1 было внесено небольшое изменение, в результате чего RSAES-OAEP в PKCS # 1 версии 2.0 стал полностью несовместимым с RSA-OAEP в PKCS # 1 версии 2.1 и версии 2.2.

Также есть две схемы работы с подписями:

  • RSASSA-ПСС: улучшена Р robabilistic S IGNATURE S cheme с приложением; основан на схеме вероятностной подписи, первоначально изобретенной Белларе и Рогэвэем.
  • RSASSA-PKCS1-v1_5: старый S IGNATURE S cheme с РИЛОЖЕНИЕ в качестве первого стандартизированы в версии 1.5 PKCS # 1.

Две схемы подписи используют отдельно определенные методы кодирования:

  • EMSA-PSS: метод кодирования приложения подписи, вероятностная схема подписи.
  • EMSA-PKCS1-v1_5: метод кодирования для приложения подписи, впервые стандартизованный в версии 1.5 PKCS # 1.

Схемы подписи на самом деле являются подписями с приложением , что означает, что вместо того, чтобы подписывать некоторые входные данные напрямую, сначала используется хеш-функция для создания промежуточного представления данных, а затем подписывается результат хеширования. Этот метод почти всегда используется с RSA, потому что объем данных, которые могут быть подписаны напрямую, пропорционален размеру ключей; который почти всегда намного меньше, чем объем данных, которые приложение может пожелать подписать.

История версий [ править ]

  • Версии 1.1–1.3, с февраля по март 1991 г., частное распространение.
  • Версия 1.4, июнь 1991 г., опубликована для семинара разработчиков NIST / OSI.
  • Версия 1.5, ноябрь 1993 г. Первая публичная публикация. Переиздан как RFC 2313.
  • Версия 2.0, сентябрь 1998 г. Переиздано как RFC 2437.
  • Версия 2.1, июнь 2002 г. Переиздано как RFC 3447.
  • Версия 2.2, октябрь 2012 г. Переиздано как RFC 8017.

Реализации [ править ]

Ниже приведен список библиотек криптографии, которые обеспечивают поддержку PKCS # 1:

Атаки [ править ]

Было обнаружено несколько атак на PKCS # 1 v1.5. [2] [3]

В 1998 году Даниэль Блейхенбахер опубликовал основополагающую статью о том, что стало известно как атака Блейхенбахера (также известная как «атака миллиона сообщений»). [3] [4] PKCS # 1 был впоследствии обновлен в версии 2.0, и для пользователей, желающих продолжить использование старой версии стандарта, были выпущены исправления. [2] С небольшими вариациями эта уязвимость все еще существует на многих современных серверах. [5]

В 2006 году Блейхенбахер представил новую атаку подделки подписи RSASSA-PKCS1-v1_5. [6]

См. Также [ править ]

  • Сравнение криптографических библиотек

Ссылки [ править ]

  1. ^ Ilmari Karonen (27 октября 2017). «Могу ли я получить открытый ключ из закрытого ключа RSA?» . Обмен стеками .
  2. ^ a b Жан-Себастьен Корон, Марк Джой, Дэвид Наккаш и Паскаль Пайе (2000). Новые атаки на шифрование PKCS # 1 v1.5 (PDF) . Конспект лекций по информатике. 1807 . ЕВРОКРИПТ . С. 369–381. DOI : 10.1007 / 3-540-45539-6 . ISBN  978-3-540-67517-4. S2CID  8447520 .CS1 maint: multiple names: authors list (link)
  3. ^ a b Ромен Барду, Риккардо Фокарди, Юсуке Кавамото, Лоренцо Симионато, Грэм Стил, Джо-Кай Цай (2012). «Эффективное противодействие атакам Oracle на криптографическое оборудование» . РР-7944 . ИНРИА : 19.CS1 maint: uses authors parameter (link)
  4. ^ RFC 3218 - Предотвращение атаки миллиона сообщений на синтаксис криптографических сообщений 
  5. ^ Ханно Бёк; Юрай Соморовский; Крейг Янг. «Робот-атака: возвращение угрозы оракула Блейхенбахера» . Проверено 27 февраля 2018 года .
  6. ^ Tetsuya Идзу, Масахико Такэнака, Такеши Shimoyama (апрель 2007). "Анализ атаки на подделку документов Блейхенбахером". Вторая международная конференция по доступности, надежности и безопасности (ARES'07) . IEEE . С. 1167–1174. DOI : 10,1109 / ARES.2007.38 . ISBN 978-0-7695-2775-8. S2CID  2459509 .CS1 maint: uses authors parameter (link)

Внешние ссылки [ править ]

  • RFC  8017 - PKCS # 1: Спецификации криптографии RSA, версия 2.2
  • PKCS # 1 v2.2: стандарт криптографии RSA на Wayback Machine (архивировано 10 апреля 2016 г.)
  • Повышение стандарта для подписей RSA: RSA-PSS на Wayback Machine (архивировано 4 апреля 2004 г.)