Jump to content

Шифрование с сохранением формата

В криптографии открытый шифрование с сохранением формата ( FPE ) относится к шифрованию таким образом, что выходные данные ( зашифрованный текст ) имеют тот же формат, что и входные данные ( текст ). Значение слова «формат» варьируется. Обычно используются только конечные наборы символов; числовой, буквенный или буквенно-цифровой. Например:

  • Шифрование 16-значного номера кредитной карты так, чтобы зашифрованный текст представлял собой еще одно 16-значное число.
  • Шифрование английского слова так, чтобы зашифрованный текст представлял собой другое английское слово.
  • Шифрование n -битного числа так, чтобы зашифрованный текст представлял собой другое n -битное число (это определение n -битного блочного шифра).

Для таких конечных областей и для целей обсуждения ниже шифр эквивалентен перестановке N целых чисел {0, ..., N −1 }, где N — размер области.

Мотивация

[ редактировать ]

Ограниченная длина или формат полей

[ редактировать ]

Одной из причин использования FPE являются проблемы, связанные с интеграцией шифрования в существующие приложения с четко определенными моделями данных. Типичным примером может служить номер кредитной карты , например 1234567812345670 (длина 16 байт, только цифры).

Добавление шифрования в такие приложения может оказаться затруднительным, если необходимо изменить модели данных, поскольку обычно это связано с изменением ограничений длины полей или типов данных. Например, выходные данные типичного блочного шифра преобразуют номер кредитной карты в шестнадцатеричный формат (например, 0x96a45cbcf9c2a9425cde9e274948cb67, 34 байта, шестнадцатеричные цифры) или Base64 (например, значение lqRcvPnCqUJc3p4nSUjLZw==, 24 байта, буквенно-цифровые и специальные символы), что нарушит работу всех существующих приложений, ожидающих, что номер кредитной карты будет состоять из 16 цифр.

Помимо простых проблем с форматированием, при использовании AES-128-CBC номер кредитной карты может быть зашифрован до шестнадцатеричного значения. 0xde015724b081ea7003de4593d792fd8b695b39e095c98f3a220ff43522a2df02. Помимо проблем, вызванных созданием недопустимых символов и увеличением размера данных, данные, зашифрованные с использованием режима CBC алгоритма шифрования, также меняют свое значение при повторном расшифровке и зашифровании. Это происходит потому, что случайное начальное значение , которое используется для инициализации алгоритма шифрования и включается как часть зашифрованного значения, различно для каждой операции шифрования. По этой причине невозможно использовать данные, зашифрованные в режиме CBC, в качестве уникального ключа для идентификации строки в базе данных.

FPE пытается упростить процесс перехода, сохраняя форматирование и длину исходных данных, позволяя заменять значения открытого текста их зашифрованными текстами в устаревших приложениях.

Сравнение с действительно случайными перестановками

[ редактировать ]

Хотя действительно случайная перестановка является идеальным шифром FPE, для больших доменов невозможно заранее сгенерировать и запомнить действительно случайную перестановку. Таким образом, проблема FPE состоит в том, чтобы сгенерировать псевдослучайную перестановку из секретного ключа таким образом, чтобы время вычисления одного значения было небольшим (в идеале постоянным, но, что наиболее важно, меньшим, чем O(N) ).

Сравнение с блочными шифрами

[ редактировать ]

представляет Технически n- битный блочный шифр собой FPE на множестве {0,...,2. н -1 }. Если FPE необходим для одного из этих наборов стандартного размера (например, n = 64 для DES и n = 128 для AES), можно использовать блочный шифр нужного размера.

Однако в типичном использовании блочный шифр используется в режиме работы , который позволяет ему шифровать сообщения произвольной длины, и с вектором инициализации, как обсуждалось выше. В этом режиме блочный шифр не является FPE.

Определение безопасности

[ редактировать ]

В криптографической литературе (см. большинство ссылок ниже) мерой «хорошего» FPE является то, может ли злоумышленник отличить FPE от действительно случайной перестановки. Предполагаются различные типы злоумышленников в зависимости от того, имеют ли они доступ к оракулам или известным парам зашифрованный/открытый текст.

Алгоритмы

[ редактировать ]

В большинстве перечисленных здесь подходов хорошо понятный блочный шифр (например, AES в качестве примитива вместо идеальной случайной функции используется ). Преимущество этого подхода состоит в том, что включение секретного ключа в алгоритм упрощается. Там, где в следующем обсуждении упоминается AES, подойдет любой другой хороший блочный шифр.

Конструкции FPE Black и Rogaway

[ редактировать ]

Реализация FPE с безопасностью, доказуемо связанной с безопасностью базового блочного шифра, была впервые предпринята в статье криптографов Джона Блэка и Филиппа Рогауэя . [1] в котором описаны три способа сделать это. Они доказали, что каждый из этих методов так же безопасен, как и блочный шифр, который используется для его создания. Это означает, что если алгоритм AES используется для создания алгоритма FPE, то полученный алгоритм FPE так же безопасен, как и AES, поскольку злоумышленник, способный победить алгоритм FPE, также может победить алгоритм AES. Следовательно, если AES безопасен, то построенные на его основе алгоритмы FPE также безопасны. Во всем нижеследующем E обозначает операцию шифрования AES, которая используется для построения алгоритма FPE, а F обозначает операцию шифрования FPE.

FPE из префиксного шифра

[ редактировать ]

Один простой способ создать алгоритм FPE для {0,..., N -1} — это присвоить псевдослучайный вес каждому целому числу, а затем отсортировать по весу. Веса определяются путем применения существующего блочного шифра к каждому целому числу. Блэк и Рогауэй назвали этот метод «префиксным шифром» и показали, что он, вероятно, не уступает используемому блочному шифру.

Таким образом, чтобы создать FPE в домене {0,1,2,3}, учитывая ключ K, примените AES( K ) к каждому целому числу, дав, например,

weight(0) = 0x56c644080098fc5570f2b329323dbf62weight(1) = 0x08ee98c0d05e3dad3eb3d6236f23e7b7weight(2) = 0x47d2e1bf72264fa01fb274465e56ba20weight(3) = 0x077de40941c93774857961a8a772650d

Сортировка [0,1,2,3] по весу дает [3,1,2,0], поэтому шифр имеет вид

F(0) = 3F(1) = 1F(2) = 2F(3) = 0

Этот метод полезен только для небольших N. значений Для больших значений размер таблицы поиска и необходимое количество шифрований для инициализации таблицы становятся слишком большими, чтобы их можно было использовать на практике.

СПО от велосипедной ходьбы

[ редактировать ]

существует набор M Если в области псевдослучайной перестановки P разрешенных значений (например, P может быть блочным шифром, например AES), алгоритм FPE может быть создан из блочного шифра путем многократного применения блочного шифра до тех пор, пока результат не будет одно из разрешенных значений (в пределах M ).

CycleWalkingFPE(x) {    if P(x) is an element of M then        return P(x)    else        return CycleWalkingFPE(P(x))}

Рекурсия гарантированно завершится. (Поскольку P взаимно однозначен, а область определения конечна, повторное применение P образует цикл, поэтому, начиная с точки в M, цикл в конечном итоге завершится в M .)

Это имеет то преимущество, что элементы M не нужно отображать в последовательную последовательность {0,..., N -1} целых чисел. Недостаток этого подхода заключается в том, что когда M намного меньше домена P , для каждой операции может потребоваться слишком много итераций. Если P — блочный шифр фиксированного размера, такой как AES, это серьезное ограничение на размеры M , для которых этот метод эффективен.

Например, приложению может потребоваться зашифровать 100-битные значения с помощью AES таким образом, чтобы создать еще одно 100-битное значение. С помощью этого метода шифрование AES-128-ECB может применяться до тех пор, пока оно не достигнет значения, в котором все его 28 старших бит установлены в 0, что в среднем займет 2 28 итерации, которые должны произойти.

FPE из сети Feistel

[ редактировать ]

Также возможно составить алгоритм FPE с использованием сети Фейстеля . Сеть Фейстеля нуждается в источнике псевдослучайных значений для дополнительных ключей для каждого раунда, и выходные данные алгоритма AES могут использоваться в качестве этих псевдослучайных значений. Когда это будет сделано, полученная конструкция Фейстеля будет хороша, если будет использовано достаточное количество патронов. [2]

Один из способов реализации алгоритма FPE с использованием AES и сети Фейстеля — использовать столько бит вывода AES, сколько необходимо, чтобы равняться длине левой или правой половины сети Фейстеля. Например, если в качестве дополнительного ключа требуется 24-битное значение, для этого значения можно использовать младшие 24 бита вывода AES.

Это может не привести к тому, что выходные данные сети Фейстеля сохранят формат входных данных, но можно итерировать сеть Фейстеля таким же образом, как это делает метод велосипедной ходьбы, чтобы гарантировать сохранение формата. Поскольку можно настроить размер входных данных сети Фейстеля, можно сделать очень вероятным, что эта итерация в среднем завершится очень быстро. Например, в случае номеров кредитных карт их 10. 15 возможные 16-значные номера кредитных карт (с учетом избыточной контрольной цифры ), а поскольку 10 15 ≈ 2 49.8 Использование 50-битной сети Фейстеля вместе с велосипедной прогулкой позволит создать алгоритм FPE, который в среднем шифрует довольно быстро.

Перетасовка Торпа

[ редактировать ]

Тасование Торпа похоже на идеализированное тасование карт или, что эквивалентно, максимально несбалансированный шифр Фейстеля, где одна сторона представляет собой один бит. Легче доказать безопасность несбалансированных шифров Фейстеля, чем сбалансированных. [3]

ХОЧУ моду

[ редактировать ]

Для размеров домена, равных степени двойки, и существующего блочного шифра с меньшим размером блока новый шифр может быть создан с использованием режима VIL, как описано Белларе, Рогауэй. [4]

Поспешный пудинговый шифр

[ редактировать ]

Шифр Hasty Pudding Cipher использует специальные конструкции (не зависящие от существующих блочных шифров в качестве примитивов) для шифрования произвольных конечных небольших доменов.

Режим FFSEM/FFX AES

[ редактировать ]

Режим FFSEM AES (спецификация [5] ), который был принят к рассмотрению NIST, использует описанную выше структуру сети Фейстеля Блэка и Рогавея с AES для функции раунда, с одной небольшой модификацией: используется один ключ, который слегка настраивается для каждого раунда.

По состоянию на февраль 2010 года FFSEM был заменен режимом FFX, написанным Михиром Белларе , Филиппом Рогауэем и Теренсом Спайсом. (спецификация, [6] [7] Разработка режимов блочного шифрования NIST , 2010 ).

FPE для шифрования JPEG 2000

[ редактировать ]

В стандарте JPEG 2000 коды маркеров (в диапазоне от 0xFF90 до 0xFFFF) не должны появляться в открытом тексте и зашифрованном тексте. Простой метод модульного 0xFF90 не может быть применен для решения проблемы шифрования JPEG 2000. Например, слова зашифрованного текста 0x23FF и 0x9832 действительны, но их комбинация 0x23FF9832 становится недействительной, поскольку она вводит код маркера 0xFF98. Аналогичным образом, простой метод обхода цикла не может быть применен для решения проблемы шифрования JPEG2000, поскольку два действительных блока зашифрованного текста могут дать неверный зашифрованный текст при их объединении. Например, если первый блок зашифрованного текста заканчивается байтами «...30FF», а второй блок зашифрованного текста начинается с байтов «9832...», то в зашифрованном тексте появится код маркера «0xFF98».

Два механизма шифрования JPEG 2000 с сохранением формата были описаны в статье «Эффективные и безопасные схемы шифрования для JPEG2000». [8] Хунцзюнь Ву и Ди Ма. Чтобы выполнить шифрование JPEG 2000 с сохранением формата, необходимо исключить байт «0xFF» из шифрования и дешифрования. Затем механизм шифрования JPEG 2000 выполняет сложение по модулю n с потоковым шифрованием; другой механизм шифрования JPEG 2000 реализует метод циклического обхода с блочным шифром.

Другие конструкции FPE

[ редактировать ]

Некоторые конструкции FPE основаны на добавлении результатов стандартного шифра по модулю n к шифруемым данным с различными методами смещения результата. Сложение по модулю n, общее для многих конструкций, является очевидным решением проблемы FPE (поэтому его использование в ряде случаев), при этом основные различия заключаются в используемых механизмах несмещения.

Раздел 8 FIPS 74, Публикация федеральных стандартов обработки информации 1981 г., Рекомендации по внедрению и использованию стандарта шифрования данных NBS , [9] описывает способ использования алгоритма шифрования DES таким образом, чтобы сохранить формат данных посредством сложения по модулю n с последующей операцией несмещения. Этот стандарт был отменен 19 мая 2005 г., поэтому эту методику следует считать устаревшей с точки зрения формального стандарта.

Еще одним ранним механизмом шифрования с сохранением формата была работа Питера Гутмана «Шифрование данных с ограниченным диапазоном значений». [10] который снова выполняет сложение по модулю n для любого шифра с некоторыми корректировками, чтобы сделать результат однородным, при этом полученное шифрование будет таким же надежным, как и базовый алгоритм шифрования, на котором оно основано.

Статья «Использование шифрования с сохранением типа данных для повышения безопасности хранилищ данных» [11] Майкл Брайтвелл и Гарри Смит описывают способ использования алгоритма шифрования DES таким образом, чтобы сохранить формат открытого текста. Этот метод, похоже, не применяет несмещенный шаг, как другие методы по модулю n, упомянутые здесь.

Статья «Шифрование с сохранением формата». [12] Михир Белларе и Томас Ристенпарт описывают использование «почти сбалансированных» сетей Фейстеля для создания безопасных алгоритмов FPE.

Статья «Управление шифрованием формата с использованием шифрования с сохранением типа данных» [13] Ульф Маттссон описывает другие способы создания алгоритмов FPE.

Примером алгоритма FPE является FNR ( Flexible Naor and Reingold ). [14]

Принятие алгоритмов FPE органами стандартизации

[ редактировать ]

Специальная публикация NIST 800-38G, «Рекомендации по режимам работы блочного шифрования: методы шифрования с сохранением формата» [15] определяет два метода: FF1 и FF3. Подробную информацию о предложениях, представленных для каждого из них, можно найти на сайте NIST по разработке режимов блочного шифрования. [16] включая информацию о патентах и ​​тестовых векторах. Примеры значений доступны как для FF1, так и для FF3. [17]

  • FF1 — это FFX[Radix] «Режим шифрования на основе Фейстеля с сохранением формата», который также присутствует в стандартных процессах ANSI X9 как X9.119 и X9.124. Его представили в NIST Михир Белларе из Калифорнийского университета в Сан-Диего, Филип Рогавей из Калифорнийского университета в Дэвисе и Теренс Спайс из компании Voltage Security Inc. Поставляются тестовые векторы, и некоторые их части запатентованы. (ПРОЕКТ СП 800-38Г Ред. 1) [18] требует, чтобы минимальный размер домена шифруемых данных составлял 1 миллион (ранее 100).
  • FF3 — это BPS, названный в честь авторов. Его представили в NIST Эрик Брайер, Томас Пейрен и Жак Стерн из Ingenico, Франция. Авторы заявили NIST, что их алгоритм не запатентован. [19] Продукт CyberRes Volt , хотя и претендует на собственные патенты и на режим BPS. [20] [21] 12 апреля 2017 года NIST пришел к выводу, что FF3 «больше не подходит в качестве метода FPE общего назначения», поскольку исследователи обнаружили уязвимость. [22]
  • FF3-1 (ПРОЕКТ SP 800-38G Ред. 1) [18] заменяет FF3 и требует, чтобы минимальный размер домена шифруемых данных составлял 1 миллион (ранее 100).

Другой режим был включен в проект руководства NIST, но был удален до окончательной публикации.

  • FF2 — это схема VAES3 для FFX: дополнение к «Режиму работы FFX для сохранения шифрования»: набор параметров для зашифрованных строк произвольного основания с операцией подключа для продления срока службы ключа шифрования. Он был представлен в NIST Йоахимом Вэнсом из VeriFone Systems Inc. Тестовые векторы не поставляются отдельно от FF1, и некоторые их части запатентованы. Авторы представили модифицированный алгоритм как DFF. [23] который находится на активном рассмотрении NIST.

Корея также разработала стандарт FPE: FEA-1 и FEA-2.

Реализации

[ редактировать ]

Реализации FF1 и FF3 с открытым исходным кодом общедоступны в язык Си , Иди язык , Ява , Node.js , Питон , С#/.Net и Ржавчина

  1. ^ Джон Блэк и Филип Рогауэй, Шифры с произвольными доменами, Proceedings RSA-CT, 2002, стр. 114–130. http://citeseer.ist.psu.edu/old/black00ciphers.html ( http://www.cs.ucdavis.edu/~rogaway/papers/subset.pdf )
  2. Жак Патарен, Люби-Ракофф: 7 патронов достаточно для 2 n(1-эпсилон) Безопасность, Труды CRYPTO 2003, Конспекты лекций по информатике, том 2729, октябрь 2003 г., стр. 513–529. https://www.iacr.org/archive/crypto2003/27290510/27290510.pdf ; также Жак Патрен: Безопасность случайных схем Фейстеля с 5 или более раундами. https://www.iacr.org/archive/crypto2004/31520105/Version%20courte%20Format%20Springer.pdf
  3. ^ Моррис, Бен; Рогауэй, Филипп; Стегерс, Тилль (2009), «Как шифровать сообщения в небольшом домене» (PDF) , CRYPTO
  4. ^ Белларе, Михир; Рогауэй, Филлип (1999), О построении шифров с переменной входной длиной (PDF)
  5. ^ Теренс Спайс, Режим шифрования с конечным набором Фейстеля http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposemodes/ffsem/ffsem-spec.pdf
  6. ^ Михир Белларе, Филип Рогауэй, Теренс Спайс: Режим работы FFX для шифрования с сохранением формата (PDF) , 2010 г.
  7. ^ Михир Белларе, Филип Рогауэй, Теренс Спайс: Дополнение к «Режиму работы FFX для шифрования с сохранением формата» (PDF) , 2010 г.
  8. ^ Хунцзюнь Ву, Ди Ма, «Эффективные и безопасные схемы шифрования для JPEG2000», Международная конференция по акустике, речи и обработке сигналов (ICASSP 2004). МСП-Л 1.6, Том. В., стр. 869–872. http://www3.ntu.edu.sg/home/wuhj/research/publications/2004_ICASSP_JPEG2000.pdf. Архивировано 19 февраля 2018 г. на Wayback Machine.
  9. ^ FIPS 74, Публикация федеральных стандартов обработки информации 1981 г. Рекомендации по внедрению и использованию стандарта шифрования данных NBS http://www.itl.nist.gov/fipspubs/fip74.htm. Архивировано 3 января 2014 г. в Wayback Machine.
  10. ^ Питер Гутманн, «Шифрование данных с ограниченным диапазоном значений», 23 января 1997 г., https://groups.google.com/group/sci.crypt/browse_thread/thread/6caf26496782e359/e576d7196b6cdb48
  11. ^ Майкл Брайтвелл и Гарри Смит, «Использование шифрования с сохранением типа данных для повышения безопасности хранилищ данных», Труды Национальной конференции по безопасности информационных систем 1997 года https://portfolio.du.edu/portfolio/getportfoliofile?uid=135556. Архивировано в 2011-07-м. 19 в Wayback Machine
  12. ^ Михир Белларе и Томас Ристенпарт, Шифрование с сохранением формата http://eprint.iacr.org/2009/251
  13. ^ Ульф Маттссон, Шифрование управления форматом с использованием шифрования с сохранением типа данных http://eprint.iacr.org/2009/257
  14. ^ Сашанк Дара, Скотт Флюрер. «Гибкий Наор и Рейнгольд» . Сиско Системс Инк.
  15. ^ Дворкин, Моррис (2016), Специальная публикация NIST 800-38G, Рекомендации по режимам работы блочного шифрования: методы шифрования с сохранением формата , doi : 10.6028/NIST.SP.800-38G
  16. ^ Разработка режимов блочного шифрования NIST , 4 января 2017 г.
  17. ^ Примеры алгоритмов набора криптографических инструментов NIST , 29 декабря 2016 г.
  18. ^ Jump up to: а б «SP 800-38G Ред. 1 (ПРОЕКТ) Рекомендации по режимам работы блочного шифрования: методы шифрования с сохранением формата» . НИСТ . февраль 2019 года . Проверено 1 апреля 2019 г.
  19. ^ Патентная декларация авторов BPS (PDF) , 4 января 2017 г.
  20. ^ Патентные претензии HPE Volt
  21. ^ Пересмотренное гарантийное письмо по основным патентным претензиям Режим работы FFX для шифрования с сохранением формата (PDF)
  22. ^ «Недавний криптоанализ FF3» . НИСТ . 12 апреля 2017 года . Проверено 5 мая 2020 г.
  23. ^ Приложение к FF2 DFF (PDF)
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 29a60bde765a3ea7a7e72a4bfbb8c8a7__1697500860
URL1:https://arc.ask3.ru/arc/aa/29/a7/29a60bde765a3ea7a7e72a4bfbb8c8a7.html
Заголовок, (Title) документа по адресу, URL1:
Format-preserving encryption - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)