ПККС 1
Эта статья нуждается в дополнительных цитатах для проверки . ( март 2019 г. ) |
В криптографии Стандарты PKCS #1 является первым из семейства стандартов под названием « криптографии с открытым ключом» (PKCS) , опубликованных RSA Laboratories . В нем представлены основные определения и рекомендации по реализации алгоритма RSA для криптографии с открытым ключом . Он определяет математические свойства открытых и закрытых ключей, примитивные операции шифрования и подписей, безопасные криптографические схемы и соответствующие ASN.1 представления синтаксиса .
Текущая версия — 2.2 (27 октября 2012 г.). По сравнению с версией 2.1 (14 июня 2002 г.), которая была переиздана как RFC 3447, версия 2.2 обновляет список разрешенных алгоритмов хеширования, чтобы привести их в соответствие со стандартом FIPS 180-4, поэтому добавляются SHA-224, SHA-512/224 и SHA-. 512/256.
Ключи
[ редактировать ]Стандарт PKCS #1 определяет математические определения и свойства, которыми должны обладать открытые и закрытые ключи RSA. Традиционная пара ключей основана на модуле n , который является произведением двух различных больших простых чисел , p и q , таких, что .
Начиная с версии 2.1, это определение было обобщено, чтобы разрешить использование ключей с несколькими простыми числами, где количество различных простых чисел может быть два или более. При работе с ключами с несколькими простыми числами все простые факторы обычно обозначаются как для некоторого i такого, что:
- для
Для удобства обозначения и .
Открытый ключ RSA представлен в виде кортежа , где целое число e — это общедоступный показатель.
Закрытый ключ RSA может иметь два представления. Первой компактной формой является кортеж , где d — частный показатель. Во второй форме не менее пяти членов или более для ключей с несколькими простыми числами. Хотя дополнительные условия математически избыточны для компактной формы, они допускают определенную вычислительную оптимизацию при использовании ключа. В частности, второй формат позволяет получить открытый ключ. [1]
Примитивы
[ редактировать ]Стандарт определяет несколько основных примитивов. Примитивные операции предоставляют фундаментальные инструкции по превращению необработанных математических формул в вычислимые алгоритмы.
- I2OSP — примитив строки из целого числа в октет — преобразует (потенциально очень большое) неотрицательное целое число в последовательность байтов (строку октетов).
- OS2IP — строка октетов в целочисленный примитив — интерпретирует последовательность байтов как неотрицательное целое число.
- RSAEP — примитив шифрования RSA — шифрует сообщение с использованием открытого ключа.
- RSADP — примитив дешифрования RSA — расшифровывает зашифрованный текст с использованием закрытого ключа.
- RSASP1 — Примитив подписи RSA 1 — создает подпись над сообщением с использованием закрытого ключа.
- RSAVP1 — примитив проверки RSA 1 — проверяет подпись сообщения с использованием открытого ключа.
Схемы
[ редактировать ]Сами по себе примитивные операции не обязательно обеспечивают какую-либо безопасность. Концепция криптографической схемы заключается в определении алгоритмов более высокого уровня или использовании примитивов для достижения определенных целей безопасности.
Существует две схемы шифрования и дешифрования:
- RSAES-PKCS1-v1_5 : более старая схема шифрования/дешифрования (ES), впервые стандартизированная в версии 1.5 PKCS #1. Известный-уязвимый.
- РГАЭС-ОАЭП : улучшенная ES; на основе схемы оптимального асимметричного шифрования (OAEP), предложенной Михиром Белларе и Филиппом Рогавеем . Рекомендуется для новых приложений. [а]
Также существуют две схемы работы с подписями:
- RSASSA-PKCS1-v1_5 : старая схема подписи с приложением (SSA), впервые стандартизированная в версии 1.5 PKCS #1. По мнению Джагера и соавт. , невозможно подделать. (2018). [2]
- RSASSA-PSS : улучшенный SSA; на основе схемы вероятностной подписи (PSS), первоначально изобретенной Белларом и Рогавеем. Рекомендуется для новых приложений.
Две схемы подписи используют отдельно определенные методы кодирования:
- EMSA-PKCS1-v1_5 : старый метод кодирования приложения подписи (EMSA), впервые стандартизированный в версии 1.5 PKCS #1.
- EMSA-PSS : улучшенный EMSA, основанный на схеме вероятностной подписи. Рекомендуется для новых приложений.
Схемы подписей на самом деле представляют собой подписи с приложением , что означает, что вместо прямой подписи некоторых входных данных сначала используется хэш-функция для создания промежуточного представления данных, а затем подписывается результат хеширования. Этот метод почти всегда используется с RSA, поскольку объем данных, которые могут быть подписаны напрямую, пропорционален размеру ключей; что почти всегда намного меньше объема данных, которые приложение может захотеть подписать.
- ^ Примечание. В RSAES-OAEP в PKCS #1 версии 2.1 было внесено небольшое изменение, в результате чего RSAES-OAEP в PKCS #1 версии 2.0 стал полностью несовместимым с RSA-OAEP в PKCS #1 версии 2.1 и версии 2.2.
История версий
[ редактировать ]- Версии 1.1–1.3, с февраля по март 1991 г., распространяются частным образом.
- Версия 1.4, июнь 1991 г., опубликована для семинара разработчиков NIST/OSI.
- Версия 1.5, ноябрь 1993 г. Первая публичная публикация. Переиздано как РФК 2313 .
- Версия 2.0, сентябрь 1998 г. Переиздано как РФК 2437 . Введена схема шифрования RSAEP-OAEP.
- Версия 2.1, июнь 2002 г. Переиздано как РФК 3447 . Представлены multi-prime RSA и схема подписи RSASSA-PSS.
- Версия 2.2, октябрь 2012 г. Переиздано как РФК 8017 .
Реализации
[ редактировать ]Ниже приведен список библиотек шифрования, обеспечивающих поддержку PKCS#1:
Атаки
[ редактировать ]Было обнаружено множество атак на PKCS #1 v1.5, в частности на его схему заполнения. [3] [4]
В 1998 году Дэниел Бляйхенбахер опубликовал основополагающую статью о так называемой атаке Блейхенбахера (также известной как «атака миллиона сообщений»). Атака использует отступы как оракул. [4] [5] PKCS #1 впоследствии был обновлен в версии 2.0, и для пользователей, желающих продолжить использование старой версии стандарта, были выпущены исправления. [3] Однако уязвимая схема заполнения по-прежнему используется и привела к последующим атакам:
- Барду и др. (2012) обнаружили, что некоторые модели токенов PKCS 11 по-прежнему используют схему заполнения v1.5 для RSA. Они предлагают улучшенную версию атаки Блейхенбахера, требующую меньшего количества сообщений. В результате этого усовершенствования им удалось извлечь секретный ключ из нескольких моделей менее чем за час. Они также показывают, что схема AES-CBC уязвима для другой атаки оракула с заполнением . [4] [6]
- Бёк и др. (2018) сообщают, что многие современные HTTPS- серверы уязвимы для разновидности атаки. TLS 1.2 содержит контрмеры против Блейхенбахера, но обходные пути не реализованы правильно во многих программах из-за их явной сложности. [7]
В 2006 году Бляйхенбахер представил новую поддельную атаку на схему подписи RSASSA-PKCS1-v1_5. [8] О вариантах этой атаки сообщалось в 2008 году. [9] и 2014. [10] Этот класс атак использует ошибочную реализацию проверки подписи; правильная реализация не будет уязвимой. [2]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Илмари Каронен (27 октября 2017 г.). «Могу ли я получить открытый ключ из закрытого ключа RSA?» . Обмен стеками .
- ↑ Перейти обратно: Перейти обратно: а б Ягер, Тибор; Какви, Сакиб А.; Мэй, Александр (15 октября 2018 г.). О безопасности схемы подписи PKCS#1 v1.5 (PDF) . Вторая международная конференция по доступности, надежности и безопасности (ARES'07). стр. 1195–1208. дои : 10.1145/3243734.3243798 .
- ↑ Перейти обратно: Перейти обратно: а б Жан-Себастьян Корон, Марк Джой, Дэвид Наккаш и Паскаль Пайе (2000). Достижения в криптологии — EUROCRYPT 2000 (PDF) . Конспекты лекций по информатике. Том. 1807. ЕВРОКРИПТ . стр. 369–381. дои : 10.1007/3-540-45539-6 . ISBN 978-3-540-67517-4 . S2CID 8447520 .
{{cite book}}
: CS1 maint: несколько имен: список авторов ( ссылка ) - ↑ Перейти обратно: Перейти обратно: а б с Ромен Барду; Риккардо Фокарди; Юсуке Кавамото; Лоренцо Симионато; Грэм Стил; Джо-Кай Цай (2012). Эффективные атаки Oracle на криптографическое оборудование с заполнением . Рр-7944 (отчет). ИНРИА . п. 19.
- ^ RFC 3218 – Предотвращение атаки миллиона сообщений на синтаксис криптографических сообщений
- ^ Грин, Мэтью (21 июня 2012 г.). «Плохие пару лет для индустрии криптографических токенов» . Несколько мыслей о криптографической инженерии .
- ^ Ханно Бёк; Юрай Соморовский; Крейг Янг. «Атака роботов: возвращение угрозы оракула Бляйхенбахера» . Проверено 27 февраля 2018 г.
- ^ Тэцуя Изу; Масахико Такенака; Такеши Симояма (апрель 2007 г.). «Анализ фальсификационной атаки Блейхенбахера». Вторая международная конференция по доступности, надежности и безопасности (ARES'07) . ИИЭЭ . стр. 1167–1174. дои : 10.1109/ARES.2007.38 . ISBN 978-0-7695-2775-8 . S2CID 2459509 .
- ^ Кюн, Ульрих; Пышкин, Андрей; Тьюс, Эрик; Вайнманн, Ральф-Филипп (2008): Варианты атаки Бляйхенбахера с низкой экспонентой на сигнатуры RSA PKCS # 1. БЕЗОПАСНОСТЬ 2008 – Безопасность, защита и надежность. Материалы 4-го ежегодного собрания отдела безопасности Gesellschaft für Informatik eV (GI). Бонн: Общество компьютерных наук e. В. ПИСН 1617-5468. ISBN 978-3-88579-222-2 . стр. 97–109. Регулярные исследовательские статьи. Саарбрюккен. 2.- 4 апреля 2008 г.
- ^ «Расширенное исследование угроз | Безопасность Intel» . 1 апреля 2015 г. Архивировано из оригинала 1 апреля 2015 г.
Внешние ссылки
[ редактировать ]- RFC 8017 — PKCS #1: Спецификации криптографии RSA, версия 2.2
- PKCS # 1 v2.2: Стандарт криптографии RSA на Wayback Machine (архивировано 10 апреля 2016 г.)
- Повышение стандарта подписей RSA: RSA-PSS на Wayback Machine (архивировано 4 апреля 2004 г.)