Эта статья требует дополнительных ссылок для проверки . ( март 2019 г. ) ( Узнайте, как и когда удалить это сообщение-шаблон ) |
В криптографии , 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-УАМИАЭ: улучшена Е ncryption / дешифрования S cheme; основан на схеме оптимального асимметричного шифрования , предложенной Михиром Белларе и Филиппом Рогэуэем .
- RSAES-PKCS1-v1_5: старая схема шифрования / дешифрования, впервые стандартизированная в версии 1.5 PKCS # 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:
- Ботан
- Надувной Замок
- cryptlib
- Крипто ++
- Libgcrypt
- mbed TLS
- Крапива
- OpenSSL
- волк
Атаки [ править ]
Было обнаружено несколько атак на PKCS # 1 v1.5. [2] [3]
В 1998 году Даниэль Блейхенбахер опубликовал основополагающую статью о том, что стало известно как атака Блейхенбахера (также известная как «атака миллиона сообщений»). [3] [4] PKCS # 1 был впоследствии обновлен в версии 2.0, и для пользователей, желающих продолжить использование старой версии стандарта, были выпущены исправления. [2] С небольшими вариациями эта уязвимость все еще существует на многих современных серверах. [5]
В 2006 году Блейхенбахер представил новую атаку подделки подписи RSASSA-PKCS1-v1_5. [6]
См. Также [ править ]
- Сравнение криптографических библиотек
Ссылки [ править ]
- ^ Ilmari Karonen (27 октября 2017). «Могу ли я получить открытый ключ из закрытого ключа RSA?» . Обмен стеками .
- ^ 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)
- ^ a b Ромен Барду, Риккардо Фокарди, Юсуке Кавамото, Лоренцо Симионато, Грэм Стил, Джо-Кай Цай (2012). «Эффективное противодействие атакам Oracle на криптографическое оборудование» . РР-7944 . ИНРИА : 19.CS1 maint: uses authors parameter (link)
- ^ RFC 3218 - Предотвращение атаки миллиона сообщений на синтаксис криптографических сообщений
- ^ Ханно Бёк; Юрай Соморовский; Крейг Янг. «Робот-атака: возвращение угрозы оракула Блейхенбахера» . Проверено 27 февраля 2018 года .
- ^ 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 г.)