У криптографії шифрування, що зберігає формат англ. Format-preserving encryption (FPE), відноситься до шифрування таким чином, що вихід (шифрований текст) має той самий формат як вхідні дані (відкритий текст). Значення терміну «формат» різне. Зазвичай використовуються лише скінченні набори символів; числові, алфавітні або буквено-цифрові. Наприклад:
- Шифрування 16-значного номера кредитної картки, щоб зашифрований текст був іншим 16-значним номером.
- Шифрування англійського слова, щоб зашифрований текст був іншим англійським словом.
- Шифрування n-бітного числа, щоб зашифрований текст був іншим n-бітовим числом (це визначення n-бітного блочного шифру).
Для таких скінченних областей визначення, а також для цілей обговорення нижче, шифр еквівалентний перестановці N цілих чисел {0, ... , N−1}, де N — це розмір області визначення.
Мотивація
Обмеження довжини полів або форматів
Однією з мотивів використання FPE є проблеми, пов'язані з інтеграцією шифрування в існуючі програми з чітко визначеними моделями даних. Типовим прикладом може бути [en], наприклад 1234567812345670
(16 байтів, лише цифри).
Додавання шифрування до таких програм може бути складним, якщо потрібно змінити моделі даних, оскільки зазвичай це передбачає зміну обмежень довжини поля або типів даних. Наприклад, вихід із типового блокового шифру перетворить номер кредитної картки на шістнадцяткове значення (наприклад,0x96a45cbcf9c2a9425cde9e274948cb67
, 34 байти, шістнадцяткові цифри) або значення Base64 (наприклад, lqRcvPnCqUJc3p4nSUjLZw==
, 24 байти, буквено-цифрові та спеціальні символи), що порушить роботу всіх існуючих програм, які очікують, що номер кредитної картки буде 16-значним.
Окрім простих проблем із форматуванням, за допомогою AES-128-CBC цей номер кредитної картки може бути зашифрований до шістнадцяткового значення 0xde015724b081ea7003de4593d792fd8b695b39e095c98f3a220ff43522a2df02
. На додаток до проблем, викликаних створенням недійсних символів і збільшенням розміру даних, дані, зашифровані за допомогою режиму алгоритму шифрування CBC, також змінюють своє значення, коли їх розшифровують і знову шифрують. Це відбувається тому, що випадкове початкове значення, який використовується для ініціалізації алгоритму шифрування і включений як частина зашифрованого значення, відрізняється для кожної операції шифрування. Через це неможливо використовувати дані, зашифровані в режимі CBC, як унікальний ключ для ідентифікації рядка в базі даних.
FPE намагається спростити процес переходу, зберігаючи форматування та довжину вихідних даних, дозволяючи замінити значення відкритого тексту їх шифротекстом у застарілих програмах.
Порівняння з дійсно випадковими перестановками
Хоча справді випадкова перестановка є ідеальним шифром FPE, для великих областей визначення неможливо попередньо створити та запам'ятати справді випадкову перестановку. Отже, проблема FPE полягає в тому, щоб створити псевдовипадкову перестановку з секретного ключа, таким чином, щоб час обчислення для окремого значення був малим (в ідеалі постійним, але, що найважливіше, меншим, ніж O(N)).
Порівняння з блочними шифрами
n-бітовий блочний шифр технічно є FPE на наборі {0, ..., 2n-1}. Якщо FPE потрібен для одного з цих наборів стандартного розміру (наприклад, n = 64 для DES і n = 128 для AES) можна використовувати блочний шифр потрібного розміру.
Однак у типовому використанні блочний шифр використовується в режимі роботи, що дозволяє йому шифрувати довільно довгі повідомлення, і з вектором ініціалізації, як обговорювалося вище. У цьому режимі блочний шифр не є FPE.
Визначення безпеки
У криптографічній літературі (див. більшість посилань нижче) міра «хорошого» FPE полягає в тому, чи може зловмисник відрізнити FPE від дійсно випадкової перестановки. Постулюються різні типи зловмисників залежно від того, чи мають вони доступ до оракулів або відомих пар шифртекст/відкритий текст.
Алгоритми
У більшості перерахованих тут підходів добре зрозумілий блочний шифр (наприклад, AES) використовується як примітив, який замінює ідеальну випадкову функцію. Це має перевагу в тому, що включення секретного ключа в алгоритм є простим. Там, де AES згадується в наступному обговоренні, будь-який інший хороший блочний шифр також буде працювати.
Конструкції FPE від Блека та Рогевея
Впровадження FPE із стійкістю, доказово пов'язаною з базовим блочним шифром, було вперше здійснено у статті криптографами [en] та [en], де описано три способи зробити це. Вони довели, що кожен із цих методів настільки ж безпечний, як і блочний шифр, який використовується для його створення. Це означає, що якщо алгоритм 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) до кожного цілого числа, даючи, наприклад,
вага(0) = 0x56c644080098fc5570f2b329323dbf62 вага(1) = 0x08ee98c0d05e3dad3eb3d6236f23e7b7 вага(2) = 0x47d2e1bf72264fa01fb274465e56ba20 вага(3) = 0x077de40941c93774857961a8a772650d
Сортування [0,1,2,3] за вагою дає [3,1,2,0], тому шифр
F(0) = 3 F(1) = 1 F(2) = 2 F(3) = 0
Цей метод корисний лише для малих значень N. Для більших значень розмір таблиці пошук та необхідна кількість шифрувань для ініціалізації таблиці стають занадто великими для практичного застосування.
FPE з обходу циклу
Якщо в областівизначення псевдовипадкової перестановки P існує набір M дозволених значень (наприклад, 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 не потрібно відображати в послідовність {0,…,N-1} цілих чисел. Цей алгоритм має той недолік, коли M набагато менше за область визначення P, що для кожної операції може знадобитися занадто багато ітерацій. Якщо P є блоковим шифром фіксованого розміру, наприклад AES, є суворе обмеження на розміри M, для яких цей метод ефективний.
Наприклад, програма може захотіти зашифрувати 100-бітові значення за допомогою AES таким чином, щоб створити інше 100-бітове значення. За допомогою цього методу шифрування AES-128-ECB можна застосовувати, доки воно не досягне значення, для якого всі 28 найвищих бітів встановлені на 0, для чого знадобиться в середньому 228 ітерацій.
FPE з мережі Фейстеля
Також можна створити алгоритм FPE, використовуючи мережу Фейстеля. Мережа Фейстеля потребує джерела псевдовипадкових значень для підключів для кожного раунду, а вихідні дані алгоритму AES можна використовувати як ці псевдовипадкові значення. Коли це буде зроблено, отримана конструкція Фейстеля буде гарною, якщо використовується достатня кількість раундів.
Один із способів реалізації алгоритму FPE з використанням AES і мережі Файстеля полягає в тому, щоб використовувати стільки бітів виводу AES, скільки необхідно, щоб дорівнювати довжині лівої або правої половини мережі Фейстеля. Наприклад, якщо підключем потрібне 24-розрядне значення, для цього значення можна використовувати найнижчі 24 біти виводу AES.
Це може призвести до того, що вихідні дані мережі Фейстеля не збережуть формат вхідних даних, але можна повторити мережу Фейстеля так само, як і техніку обходу циклу, щоб забезпечити збереження формату. Оскільки можна налаштувати розмір входів для мережі Фейстеля, можна зробити дуже ймовірним, що ця ітерація в середньому закінчиться дуже швидко. У випадку номерів кредитних карток, наприклад, існує 1015 можливих 16-значних номерів кредитних карток (з урахуванням надлишкової контрольної цифри), а оскільки 1015 ≈ 249.8, використовуючи 50-бітну мережу Фейстеля разом із циклічним обходом, буде створено алгоритм FPE, який в середньому шифрує досить швидко.
Перетасування Торпа
Перетасування Торпа схоже на ідеалізоване перемішування карт або, що еквівалентно, на максимально незбалансований шифр Фейстеля, де одна сторона є одним бітом. Для незбалансованих шифрів Фейстеля легше довести безпеку, ніж для збалансованих.
Режим зі змінним розміром входу
Для розмірів домену, які мають ступінь двійки, і існуючого блочного шифру з меншим розміром блоку, новий шифр може бути створений за допомогою режиму змінним розміром входу, як описано [en], Рогевеєм.
Шифр Hasty Pudding
[en] використовує спеціальні конструкції (не залежать від існуючих блочних шифрів як примітивів) для шифрування довільних скінченних малих областей визначення.
Режим FFSEM/FFX AES
Режим FFSEM AES (специфікація) який був прийнятий до розгляду NIST, використовує конструкцію мережі Фейстеля описану вище Блеком та Рогевеєм, з функцією раунду AES з однією невеликою модифікацією: використовується один ключ, який трохи змінюється для кожного раунду.
Станом на лютий 2010 року FFSEM був замінений режимом FFX, написаним [en], Філіпом Рогевеєм та Теренсом Спайсом. (специфікація, , 2010, архів оригіналу за 4 вересня 2017, процитовано 25 березня 2022).
FPE для шифрування JPEG 2000
У стандарті JPEG 2000 коди маркерів (у діапазоні від 0xFF90 до 0xFFFF) не повинні відображатися в відкритому тексті та зашифрованому тексті. Просту техніку модульного складання 0xFF90 неможливо застосувати для вирішення проблеми шифрування JPEG 2000. Наприклад, слова зашифрованого тексту 0x23FF і 0x9832 є дійсними, але їх комбінація 0x23FF9832 стає недійсною, оскільки вводить код маркера 0xFF98. Аналогічно, проста техніка обходу циклів не може бути застосована для вирішення проблеми шифрування JPEG2000, оскільки два дійсних блоки шифротексту можуть дати недійсний шифртекст, коли вони об'єднуються. Наприклад, якщо перший блок зашифрованого тексту закінчується байтами «…30FF», а другий блок шифротексту починається байтами «9832…», то в зашифрованому тексті з'явиться код маркера «0xFF98».
У статті Хунджуна Ву і Ді Ма «Efficient and Secure Encryption Schemes for JPEG2000» наведено два механізми шифрування JPEG 2000, що зберігає формат. Метод шифрування JPEG 2000 із збереженням формату полягає у виключенні байта «0xFF» у шифруванні та дешифруванні. Потім механізм шифрування JPEG 2000 виконує додавання за модулем n з потоковим шифром; інший механізм шифрування JPEG 2000 виконує техніку обходу циклів з блоковим шифром.
Інші конструкції FPE
Кілька конструкцій FPE засновані на додаванні вихідних даних стандартного шифру за модулем n до даних, які підлягають шифруванню, з різними методами протидії зміщенню результату. Додавання за модулем n, яке поділяється багатьма конструкціями, є відразу очевидним рішенням проблеми FPE (тому воно використовується в ряді випадків), причому основні відмінності полягають у використаних механізмах протидії зміщенню.
Розділ 8 FIPS 74, Federal Information Processing Standards Publication 1981 Guidelines for Implementing and Using the NBS Data Encryption Standard, описує спосіб використання алгоритму шифрування DES у спосіб, який зберігає формат даних за допомогою додавання за модулем n з подальшою операцією протидії зміщенню. Цей стандарт було скасовано 19 травня 2005 року, тому методику слід вважати застарілою з точки зору формального стандарту.
Іншим раннім механізмом шифрування, що зберігає формат, було"Шифрування даних з обмеженим діапазоном значень" авторства [en], який знову виконує додавання за модулем n для будь-якого шифру з деякими налаштуваннями, щоб зробити результат однорідним, при цьому отримане шифрування буде таким же стійким, як і основний алгоритм шифрування, на якому воно засноване.
У статті «Using Datatype-Preserving Encryption to Enhance Data Warehouse Security» Майкла Брайтвелла та Гаррі Сміта описується спосіб використання алгоритму шифрування DES таким чином, щоб зберегти формат відкритого тексту. Здається, ця методика не застосовує крок протидії зміщенню, як інші методи за модулем n, на які тут є посилання.
У статті «Format-Preserving Encryption» автор Міхір Белларе і Томас Рістенпарт описують використання «майже збалансованих» мереж Фейстеля для створення безпечних алгоритмів FPE.
У статті «Format Controlling Encryption Using Datatype Preserving Encryption» Ульф Маттссон описує інші способи створення алгоритмів FPE.
Прикладом алгоритму FPE є FNR (Flexible Naor and Reingold).
Прийняття алгоритмів FPE органами стандартизації
Спеціальна публікація NIST 800-38G «Recommendation for Block Cipher Modes of Operation: Methods for Format-Preserving Encryption» визначає два методи: FF1 і FF3. Детальну інформацію про пропозиції, подані для кожного, можна знайти на сайті NIST Block Cipher Modes Development, включаючи інформацію про патенти та тестові вектори. Зразки значень доступні як для FF1, так і для FF3.
- FF1 є FFX[Radix] «Режим шифрування на основі мережі Фейстеля зі збереженням формату», який також знаходиться в процесі стандартизації у ANSI X9 як X9.119 і X9.124. Він був поданий до NIST Міхіром Белларе з Каліфорнійського університету в Сан-Дієго, Філіпом Рогевеєм з Каліфорнійського університету в Девісі та Теренсом Спайсом з Voltage Security Inc. Постачаються тестові вектори, а частина їх запатентована. DRAFT SP 800-38G Rev 1 вимагає, щоб мінімальний розмір області визначення шифруваних даних становив 1 мільйон (раніше 100).
- FF3 — це BPS, названий на честь авторів. Його було подано до NIST Еріком Браєром, Томасом Пейріном та Жаком Стерном з Індженіко, Франція. Автори заявили NIST, що їхній алгоритм не запатентований. Хоча CyberRes Voltage product [ 20 березня 2022 у Wayback Machine.] заявляє, що має патенти також на режим BPS. 12 квітня 2017 року NIST дійшов висновку, що FF3 «більше не підходить як метод FPE загального призначення», оскільки дослідники виявили вразливість.
- FF3-1 (DRAFT SP 800-38G Rev 1) замінює FF3 і вимагає, щоб мінімальний розмір домену шифруваних даних становив 1 мільйон (раніше 100).
Інший режим був включений до проекту керівництва NIST, але був вилучений перед остаточною публікацією.
- FF2 — це схема VAES3 для FFX: додаток «Режим роботи FFX для зберігаючого шифрування»: набір параметрів для рядків шифрування з довільним принципом з операцією підключем для подовження терміну служби ключа шифрування. Він був поданий до NIST Йоахімом Венсом з VeriFone Systems Inc. Тестові вектори не постачаються окремо від FF1, а їх частини запатентовані. Автори подали модифікований алгоритм як DFF, який активно розглядається NIST.
Корея також розробила стандарт FPE FEA-1 і FEA-2.
Реалізація
Реалізації FF1 і FF3 з відкритим кодом є загальнодоступними мовами C, Go, Java, Node.js, Python, C#/.Net та Rust
Примітки
- John Black and Philip Rogaway, Ciphers with Arbitrary Domains, Proceedings RSA-CT, 2002, pp. 114—130. http://citeseer.ist.psu.edu/old/black00ciphers.html [ 16 грудня 2009 у Wayback Machine.] (http://www.cs.ucdavis.edu/~rogaway/papers/subset.pdf [ 23 жовтня 2020 у Wayback Machine.])
- Jacques Patarin, Luby-Rackoff: 7 Rounds Are Enough for 2n(1-epsilon) Security, Proceedings of CRYPTO 2003, Lecture Notes in Computer Science, Volume 2729, Oct 2003, pp. 513—529. https://www.iacr.org/archive/crypto2003/27290510/27290510.pdf [ 1 лютого 2017 у Wayback Machine.]; also Jaques Patrin: Security of Random Feistel Schemes with 5 or more Rounds. https://www.iacr.org/archive/crypto2004/31520105/Version%20courte%20Format%20Springer.pdf [ 20 жовтня 2016 у Wayback Machine.]
- Morris, Ben; Rogaway, Phillip; Stegers, Till (2009), (PDF), CRYPTO, архів оригіналу (PDF) за 23 жовтня 2020, процитовано 25 березня 2022
- Bellare, Mihir; Rogaway, Phillip (1999), (PDF), архів оригіналу (PDF) за 16 липня 2011, процитовано 25 березня 2022
- Terence Spies, Feistel Finite Set Encryption Mode http://csrc.nist.gov/groups/ST/toolkit/BCM/documents/proposedmodes/ffsem/ffsem-spec.pdf [ 12 червня 2009 у Wayback Machine.]
- Mihir Bellare, Phillip Rogaway, Terence Spies: (PDF), 2010, архів оригіналу (PDF) за 27 травня 2010, процитовано 25 березня 2022
- Mihir Bellare, Phillip Rogaway, Terence Spies: (PDF), 2010, архів оригіналу (PDF) за 16 травня 2017, процитовано 25 березня 2022
- Hongjun Wu, Di Ma, «Efficient and Secure Encryption Schemes for JPEG2000», International Conference on Acoustics, Speech, and Signal Processing (ICASSP 2004). MSP-L 1.6, Vol. V, pp. 869—872. http://www3.ntu.edu.sg/home/wuhj/research/publications/2004_ICASSP_JPEG2000.pdf [ 19 лютого 2018 у Wayback Machine.]
- FIPS 74, Federal Information Processing Standards Publication 1981 Guidelines for Implementing and Using the NBS Data Encryption Standard http://www.itl.nist.gov/fipspubs/fip74.htm [ 2014-01-03 у Wayback Machine.]
- Peter Gutmann, «Encrypting data with a restricted range of values», 23 January 1997, https://groups.google.com/group/sci.crypt/browse_thread/thread/6caf26496782e359/e576d7196b6cdb48 [ 9 листопада 2012 у Wayback Machine.]
- Michael Brightwell and Harry Smith, "Using Datatype-Preserving Encryption to Enhance Data Warehouse Security, Proceedings of the 1997 National Information Systems Security Conference https://portfolio.du.edu/portfolio/getportfoliofile?uid=135556 [ 2011-07-19 у Wayback Machine.]
- Mihir Bellare and Thomas Ristenpart, Format-Preserving Encryption http://eprint.iacr.org/2009/251 [ 4 серпня 2020 у Wayback Machine.]
- Ulf Mattsson, Format Controlling Encryption Using Datatype Preserving Encryption http://eprint.iacr.org/2009/257 [ 3 лютого 2019 у Wayback Machine.]
- Sashank Dara, Scott Fluhrer. . Cisco Systems Inc. Архів оригіналу за 16 жовтня 2014. Процитовано 26 березня 2022.
- Dworkin, Morris (2016), NIST Special Publication 800-38G, Recommendation for Block Cipher Modes of Operation: Methods for Format-Preserving Encryption, doi:10.6028/NIST.SP.800-38G
- , архів оригіналу за 4 вересня 2017, процитовано 25 березня 2022
- , архів оригіналу за 27 березня 2016, процитовано 26 березня 2022
- . NIST. Feb 2019. Архів оригіналу за 2 квітня 2019. Процитовано 1 квітня 2019.
- (PDF), архів оригіналу (PDF) за 9 березня 2016, процитовано 26 березня 2022
- , архів оригіналу за 15 вересня 2017, процитовано 26 березня 2022
- (PDF), архів оригіналу (PDF) за 15 лютого 2017, процитовано 26 березня 2022
- . NIST. 12 квітня 2017. Архів оригіналу за 2 березня 2020. Процитовано 5 травня 2020.
- (PDF), архів оригіналу (PDF) за 9 квітня 2016, процитовано 26 березня 2022
- C [ 14 листопада 2021 у Wayback Machine.]
- Go [ 26 березня 2022 у Wayback Machine.]
- Java [ 26 березня 2022 у Wayback Machine.]
- Node.js [ 26 березня 2022 у Wayback Machine.]
- Python [ 26 березня 2022 у Wayback Machine.]
- C#/.Net [ 26 березня 2022 у Wayback Machine.]
- Rust [ 26 березня 2022 у Wayback Machine.]
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
U kriptografiyi shifruvannya sho zberigaye format angl Format preserving encryption FPE vidnositsya do shifruvannya takim chinom sho vihid shifrovanij tekst maye toj samij format yak vhidni dani vidkritij tekst Znachennya terminu format rizne Zazvichaj vikoristovuyutsya lishe skinchenni nabori simvoliv chislovi alfavitni abo bukveno cifrovi Napriklad Shifruvannya 16 znachnogo nomera kreditnoyi kartki shob zashifrovanij tekst buv inshim 16 znachnim nomerom Shifruvannya anglijskogo slova shob zashifrovanij tekst buv inshim anglijskim slovom Shifruvannya n bitnogo chisla shob zashifrovanij tekst buv inshim n bitovim chislom ce viznachennya n bitnogo blochnogo shifru Dlya takih skinchennih oblastej viznachennya a takozh dlya cilej obgovorennya nizhche shifr ekvivalentnij perestanovci N cilih chisel 0 N 1 de N ce rozmir oblasti viznachennya MotivaciyaObmezhennya dovzhini poliv abo formativ Odniyeyu z motiviv vikoristannya FPE ye problemi pov yazani z integraciyeyu shifruvannya v isnuyuchi programi z chitko viznachenimi modelyami danih Tipovim prikladom mozhe buti en napriklad 1234567812345670 16 bajtiv lishe cifri Dodavannya shifruvannya do takih program mozhe buti skladnim yaksho potribno zminiti modeli danih oskilki zazvichaj ce peredbachaye zminu obmezhen dovzhini polya abo tipiv danih Napriklad vihid iz tipovogo blokovogo shifru peretvorit nomer kreditnoyi kartki na shistnadcyatkove znachennya napriklad 0x96a45cbcf9c2a9425cde9e274948cb67 34 bajti shistnadcyatkovi cifri abo znachennya Base64 napriklad lqRcvPnCqUJc3p4nSUjLZw 24 bajti bukveno cifrovi ta specialni simvoli sho porushit robotu vsih isnuyuchih program yaki ochikuyut sho nomer kreditnoyi kartki bude 16 znachnim Okrim prostih problem iz formatuvannyam za dopomogoyu AES 128 CBC cej nomer kreditnoyi kartki mozhe buti zashifrovanij do shistnadcyatkovogo znachennya 0xde015724b081ea7003de4593d792fd8b695b39e095c98f3a220ff43522a2df02 Na dodatok do problem viklikanih stvorennyam nedijsnih simvoliv i zbilshennyam rozmiru danih dani zashifrovani za dopomogoyu rezhimu algoritmu shifruvannya CBC takozh zminyuyut svoye znachennya koli yih rozshifrovuyut i znovu shifruyut Ce vidbuvayetsya tomu sho vipadkove pochatkove znachennya yakij vikoristovuyetsya dlya inicializaciyi algoritmu shifruvannya i vklyuchenij yak chastina zashifrovanogo znachennya vidriznyayetsya dlya kozhnoyi operaciyi shifruvannya Cherez ce nemozhlivo vikoristovuvati dani zashifrovani v rezhimi CBC yak unikalnij klyuch dlya identifikaciyi ryadka v bazi danih FPE namagayetsya sprostiti proces perehodu zberigayuchi formatuvannya ta dovzhinu vihidnih danih dozvolyayuchi zaminiti znachennya vidkritogo tekstu yih shifrotekstom u zastarilih programah Porivnyannya z dijsno vipadkovimi perestanovkamiHocha spravdi vipadkova perestanovka ye idealnim shifrom FPE dlya velikih oblastej viznachennya nemozhlivo poperedno stvoriti ta zapam yatati spravdi vipadkovu perestanovku Otzhe problema FPE polyagaye v tomu shob stvoriti psevdovipadkovu perestanovku z sekretnogo klyucha takim chinom shob chas obchislennya dlya okremogo znachennya buv malim v ideali postijnim ale sho najvazhlivishe menshim nizh O N Porivnyannya z blochnimi shiframin bitovij blochnij shifr tehnichno ye FPE na nabori 0 2n 1 Yaksho FPE potriben dlya odnogo z cih naboriv standartnogo rozmiru napriklad n 64 dlya DES i n 128 dlya AES mozhna vikoristovuvati blochnij shifr potribnogo rozmiru Odnak u tipovomu vikoristanni blochnij shifr vikoristovuyetsya v rezhimi roboti sho dozvolyaye jomu shifruvati dovilno dovgi povidomlennya i z vektorom inicializaciyi yak obgovoryuvalosya vishe U comu rezhimi blochnij shifr ne ye FPE Viznachennya bezpekiU kriptografichnij literaturi div bilshist posilan nizhche mira horoshogo FPE polyagaye v tomu chi mozhe zlovmisnik vidrizniti FPE vid dijsno vipadkovoyi perestanovki Postulyuyutsya rizni tipi zlovmisnikiv zalezhno vid togo chi mayut voni dostup do orakuliv abo vidomih par shifrtekst vidkritij tekst AlgoritmiU bilshosti pererahovanih tut pidhodiv dobre zrozumilij blochnij shifr napriklad AES vikoristovuyetsya yak primitiv yakij zaminyuye idealnu vipadkovu funkciyu Ce maye perevagu v tomu sho vklyuchennya sekretnogo klyucha v algoritm ye prostim Tam de AES zgaduyetsya v nastupnomu obgovorenni bud yakij inshij horoshij blochnij shifr takozh bude pracyuvati Konstrukciyi FPE vid Bleka ta Rogeveya Vprovadzhennya FPE iz stijkistyu dokazovo pov yazanoyu z bazovim blochnim shifrom bulo vpershe zdijsneno u statti kriptografami en ta en de opisano tri sposobi zrobiti ce Voni doveli sho kozhen iz cih metodiv nastilki zh bezpechnij yak i blochnij shifr yakij vikoristovuyetsya dlya jogo stvorennya Ce oznachaye sho yaksho algoritm AES vikoristovuyetsya dlya stvorennya algoritmu FPE to otrimanij algoritm FPE takij zhe bezpechnij yak i AES oskilki suprotivnik zdatnij zlamati algoritm FPE takozh mozhe zlamati algoritm AES Otzhe yaksho AES bezpechnij to i algoritmi FPE pobudovani na jogo osnovi takozh bezpechni U nizhche vikladenomu E poznachaye operaciyu shifruvannya AES yaka vikoristovuyetsya dlya pobudovi algoritmu FPE a F poznachaye operaciyu shifruvannya FPE FPE z prefiksnogo shifru Odin prostij sposib stvoriti algoritm FPE na 0 N 1 priznachiti psevdovipadkovu vagu kozhnomu cilomu a potim vidsortuvati za vagoyu Vagi viznachayutsya shlyahom zastosuvannya isnuyuchogo blochnogo shifru do kozhnogo cilogo chisla Blek i Rogavej nazvali cyu tehniku prefiksnim shifrom i pokazali sho vona jmovirno nastilki zh garna yak vikoristovuvanij blokovij shifr Takim chinom shob stvoriti FPE na mnozhini 0 1 2 3 za dopomogoyu klyucha K zastosuvati AES K do kozhnogo cilogo chisla dayuchi napriklad vaga 0 0x56c644080098fc5570f2b329323dbf62 vaga 1 0x08ee98c0d05e3dad3eb3d6236f23e7b7 vaga 2 0x47d2e1bf72264fa01fb274465e56ba20 vaga 3 0x077de40941c93774857961a8a772650d Sortuvannya 0 1 2 3 za vagoyu daye 3 1 2 0 tomu shifr F 0 3 F 1 1 F 2 2 F 3 0 Cej metod korisnij lishe dlya malih znachen N Dlya bilshih znachen rozmir tablici poshuk ta neobhidna kilkist shifruvan dlya inicializaciyi tablici stayut zanadto velikimi dlya praktichnogo zastosuvannya FPE z obhodu ciklu Yaksho v oblastiviznachennya psevdovipadkovoyi perestanovki P isnuye nabir M dozvolenih znachen napriklad P mozhe buti blochnim shifrom takim yak AES algoritm FPE mozhna stvoriti z blochnogo shifru shlyahom bagatorazovogo zastosuvannya blochnogo shifru poki rezultat ne stane odnim iz dozvolenih znachen v mezhah M CycleWalkingFPE x if P x is an element of M then return P x else return CycleWalkingFPE P x Rekursiya garantovano zavershitsya Oskilki P ye vidobrazhennya odin v odin a oblast viznachennya ye skinchennoyu povtorne zastosuvannya P utvoryuye cikl tomu pochinayuchi z tochki M cikl v kincevomu pidsumku zakinchitsya na M Ce maye perevagu v tomu sho elementi M ne potribno vidobrazhati v poslidovnist 0 N 1 cilih chisel Cej algoritm maye toj nedolik koli M nabagato menshe za oblast viznachennya P sho dlya kozhnoyi operaciyi mozhe znadobitisya zanadto bagato iteracij Yaksho P ye blokovim shifrom fiksovanogo rozmiru napriklad AES ye suvore obmezhennya na rozmiri M dlya yakih cej metod efektivnij Napriklad programa mozhe zahotiti zashifruvati 100 bitovi znachennya za dopomogoyu AES takim chinom shob stvoriti inshe 100 bitove znachennya Za dopomogoyu cogo metodu shifruvannya AES 128 ECB mozhna zastosovuvati doki vono ne dosyagne znachennya dlya yakogo vsi 28 najvishih bitiv vstanovleni na 0 dlya chogo znadobitsya v serednomu 228 iteracij FPE z merezhi Fejstelya Takozh mozhna stvoriti algoritm FPE vikoristovuyuchi merezhu Fejstelya Merezha Fejstelya potrebuye dzherela psevdovipadkovih znachen dlya pidklyuchiv dlya kozhnogo raundu a vihidni dani algoritmu AES mozhna vikoristovuvati yak ci psevdovipadkovi znachennya Koli ce bude zrobleno otrimana konstrukciya Fejstelya bude garnoyu yaksho vikoristovuyetsya dostatnya kilkist raundiv Odin iz sposobiv realizaciyi algoritmu FPE z vikoristannyam AES i merezhi Fajstelya polyagaye v tomu shob vikoristovuvati stilki bitiv vivodu AES skilki neobhidno shob dorivnyuvati dovzhini livoyi abo pravoyi polovini merezhi Fejstelya Napriklad yaksho pidklyuchem potribne 24 rozryadne znachennya dlya cogo znachennya mozhna vikoristovuvati najnizhchi 24 biti vivodu AES Ce mozhe prizvesti do togo sho vihidni dani merezhi Fejstelya ne zberezhut format vhidnih danih ale mozhna povtoriti merezhu Fejstelya tak samo yak i tehniku obhodu ciklu shob zabezpechiti zberezhennya formatu Oskilki mozhna nalashtuvati rozmir vhodiv dlya merezhi Fejstelya mozhna zrobiti duzhe jmovirnim sho cya iteraciya v serednomu zakinchitsya duzhe shvidko U vipadku nomeriv kreditnih kartok napriklad isnuye 1015 mozhlivih 16 znachnih nomeriv kreditnih kartok z urahuvannyam nadlishkovoyi kontrolnoyi cifri a oskilki 1015 249 8 vikoristovuyuchi 50 bitnu merezhu Fejstelya razom iz ciklichnim obhodom bude stvoreno algoritm FPE yakij v serednomu shifruye dosit shvidko Peretasuvannya Torpa Peretasuvannya Torpa shozhe na idealizovane peremishuvannya kart abo sho ekvivalentno na maksimalno nezbalansovanij shifr Fejstelya de odna storona ye odnim bitom Dlya nezbalansovanih shifriv Fejstelya legshe dovesti bezpeku nizh dlya zbalansovanih Rezhim zi zminnim rozmirom vhodu Dlya rozmiriv domenu yaki mayut stupin dvijki i isnuyuchogo blochnogo shifru z menshim rozmirom bloku novij shifr mozhe buti stvorenij za dopomogoyu rezhimu zminnim rozmirom vhodu yak opisano en Rogeveyem Shifr Hasty Pudding en vikoristovuye specialni konstrukciyi ne zalezhat vid isnuyuchih blochnih shifriv yak primitiviv dlya shifruvannya dovilnih skinchennih malih oblastej viznachennya Rezhim FFSEM FFX AES Rezhim FFSEM AES specifikaciya yakij buv prijnyatij do rozglyadu NIST vikoristovuye konstrukciyu merezhi Fejstelya opisanu vishe Blekom ta Rogeveyem z funkciyeyu raundu AES z odniyeyu nevelikoyu modifikaciyeyu vikoristovuyetsya odin klyuch yakij trohi zminyuyetsya dlya kozhnogo raundu Stanom na lyutij 2010 roku FFSEM buv zaminenij rezhimom FFX napisanim en Filipom Rogeveyem ta Terensom Spajsom specifikaciya 2010 arhiv originalu za 4 veresnya 2017 procitovano 25 bereznya 2022 FPE dlya shifruvannya JPEG 2000 U standarti JPEG 2000 kodi markeriv u diapazoni vid 0xFF90 do 0xFFFF ne povinni vidobrazhatisya v vidkritomu teksti ta zashifrovanomu teksti Prostu tehniku modulnogo skladannya 0xFF90 nemozhlivo zastosuvati dlya virishennya problemi shifruvannya JPEG 2000 Napriklad slova zashifrovanogo tekstu 0x23FF i 0x9832 ye dijsnimi ale yih kombinaciya 0x23FF9832 staye nedijsnoyu oskilki vvodit kod markera 0xFF98 Analogichno prosta tehnika obhodu cikliv ne mozhe buti zastosovana dlya virishennya problemi shifruvannya JPEG2000 oskilki dva dijsnih bloki shifrotekstu mozhut dati nedijsnij shifrtekst koli voni ob yednuyutsya Napriklad yaksho pershij blok zashifrovanogo tekstu zakinchuyetsya bajtami 30FF a drugij blok shifrotekstu pochinayetsya bajtami 9832 to v zashifrovanomu teksti z yavitsya kod markera 0xFF98 U statti Hundzhuna Vu i Di Ma Efficient and Secure Encryption Schemes for JPEG2000 navedeno dva mehanizmi shifruvannya JPEG 2000 sho zberigaye format Metod shifruvannya JPEG 2000 iz zberezhennyam formatu polyagaye u viklyuchenni bajta 0xFF u shifruvanni ta deshifruvanni Potim mehanizm shifruvannya JPEG 2000 vikonuye dodavannya za modulem n z potokovim shifrom inshij mehanizm shifruvannya JPEG 2000 vikonuye tehniku obhodu cikliv z blokovim shifrom Inshi konstrukciyi FPE Kilka konstrukcij FPE zasnovani na dodavanni vihidnih danih standartnogo shifru za modulem n do danih yaki pidlyagayut shifruvannyu z riznimi metodami protidiyi zmishennyu rezultatu Dodavannya za modulem n yake podilyayetsya bagatma konstrukciyami ye vidrazu ochevidnim rishennyam problemi FPE tomu vono vikoristovuyetsya v ryadi vipadkiv prichomu osnovni vidminnosti polyagayut u vikoristanih mehanizmah protidiyi zmishennyu Rozdil 8 FIPS 74 Federal Information Processing Standards Publication 1981 Guidelines for Implementing and Using the NBS Data Encryption Standard opisuye sposib vikoristannya algoritmu shifruvannya DES u sposib yakij zberigaye format danih za dopomogoyu dodavannya za modulem n z podalshoyu operaciyeyu protidiyi zmishennyu Cej standart bulo skasovano 19 travnya 2005 roku tomu metodiku slid vvazhati zastariloyu z tochki zoru formalnogo standartu Inshim rannim mehanizmom shifruvannya sho zberigaye format bulo Shifruvannya danih z obmezhenim diapazonom znachen avtorstva en yakij znovu vikonuye dodavannya za modulem n dlya bud yakogo shifru z deyakimi nalashtuvannyami shob zrobiti rezultat odnoridnim pri comu otrimane shifruvannya bude takim zhe stijkim yak i osnovnij algoritm shifruvannya na yakomu vono zasnovane U statti Using Datatype Preserving Encryption to Enhance Data Warehouse Security Majkla Brajtvella ta Garri Smita opisuyetsya sposib vikoristannya algoritmu shifruvannya DES takim chinom shob zberegti format vidkritogo tekstu Zdayetsya cya metodika ne zastosovuye krok protidiyi zmishennyu yak inshi metodi za modulem n na yaki tut ye posilannya U statti Format Preserving Encryption avtor Mihir Bellare i Tomas Ristenpart opisuyut vikoristannya majzhe zbalansovanih merezh Fejstelya dlya stvorennya bezpechnih algoritmiv FPE U statti Format Controlling Encryption Using Datatype Preserving Encryption Ulf Mattsson opisuye inshi sposobi stvorennya algoritmiv FPE Prikladom algoritmu FPE ye FNR Flexible Naor and Reingold Prijnyattya algoritmiv FPE organami standartizaciyiSpecialna publikaciya NIST 800 38G Recommendation for Block Cipher Modes of Operation Methods for Format Preserving Encryption viznachaye dva metodi FF1 i FF3 Detalnu informaciyu pro propoziciyi podani dlya kozhnogo mozhna znajti na sajti NIST Block Cipher Modes Development vklyuchayuchi informaciyu pro patenti ta testovi vektori Zrazki znachen dostupni yak dlya FF1 tak i dlya FF3 FF1 ye FFX Radix Rezhim shifruvannya na osnovi merezhi Fejstelya zi zberezhennyam formatu yakij takozh znahoditsya v procesi standartizaciyi u ANSI X9 yak X9 119 i X9 124 Vin buv podanij do NIST Mihirom Bellare z Kalifornijskogo universitetu v San Diyego Filipom Rogeveyem z Kalifornijskogo universitetu v Devisi ta Terensom Spajsom z Voltage Security Inc Postachayutsya testovi vektori a chastina yih zapatentovana DRAFT SP 800 38G Rev 1 vimagaye shob minimalnij rozmir oblasti viznachennya shifruvanih danih stanoviv 1 miljon ranishe 100 FF3 ce BPS nazvanij na chest avtoriv Jogo bulo podano do NIST Erikom Brayerom Tomasom Pejrinom ta Zhakom Sternom z Indzheniko Franciya Avtori zayavili NIST sho yihnij algoritm ne zapatentovanij Hocha CyberRes Voltage product 20 bereznya 2022 u Wayback Machine zayavlyaye sho maye patenti takozh na rezhim BPS 12 kvitnya 2017 roku NIST dijshov visnovku sho FF3 bilshe ne pidhodit yak metod FPE zagalnogo priznachennya oskilki doslidniki viyavili vrazlivist FF3 1 DRAFT SP 800 38G Rev 1 zaminyuye FF3 i vimagaye shob minimalnij rozmir domenu shifruvanih danih stanoviv 1 miljon ranishe 100 Inshij rezhim buv vklyuchenij do proektu kerivnictva NIST ale buv viluchenij pered ostatochnoyu publikaciyeyu FF2 ce shema VAES3 dlya FFX dodatok Rezhim roboti FFX dlya zberigayuchogo shifruvannya nabir parametriv dlya ryadkiv shifruvannya z dovilnim principom z operaciyeyu pidklyuchem dlya podovzhennya terminu sluzhbi klyucha shifruvannya Vin buv podanij do NIST Joahimom Vensom z VeriFone Systems Inc Testovi vektori ne postachayutsya okremo vid FF1 a yih chastini zapatentovani Avtori podali modifikovanij algoritm yak DFF yakij aktivno rozglyadayetsya NIST Koreya takozh rozrobila standart FPE FEA 1 i FEA 2 Realizaciya Realizaciyi FF1 i FF3 z vidkritim kodom ye zagalnodostupnimi movami C Go Java Node js Python C Net ta RustPrimitkiJohn Black and Philip Rogaway Ciphers with Arbitrary Domains Proceedings RSA CT 2002 pp 114 130 http citeseer ist psu edu old black00ciphers html 16 grudnya 2009 u Wayback Machine http www cs ucdavis edu rogaway papers subset pdf 23 zhovtnya 2020 u Wayback Machine Jacques Patarin Luby Rackoff 7 Rounds Are Enough for 2n 1 epsilon Security Proceedings of CRYPTO 2003 Lecture Notes in Computer Science Volume 2729 Oct 2003 pp 513 529 https www iacr org archive crypto2003 27290510 27290510 pdf 1 lyutogo 2017 u Wayback Machine also Jaques Patrin Security of Random Feistel Schemes with 5 or more Rounds https www iacr org archive crypto2004 31520105 Version 20courte 20Format 20Springer pdf 20 zhovtnya 2016 u Wayback Machine Morris Ben Rogaway Phillip Stegers Till 2009 PDF CRYPTO arhiv originalu PDF za 23 zhovtnya 2020 procitovano 25 bereznya 2022 Bellare Mihir Rogaway Phillip 1999 PDF arhiv originalu PDF za 16 lipnya 2011 procitovano 25 bereznya 2022 Terence Spies Feistel Finite Set Encryption Mode http csrc nist gov groups ST toolkit BCM documents proposedmodes ffsem ffsem spec pdf 12 chervnya 2009 u Wayback Machine Mihir Bellare Phillip Rogaway Terence Spies PDF 2010 arhiv originalu PDF za 27 travnya 2010 procitovano 25 bereznya 2022 Mihir Bellare Phillip Rogaway Terence Spies PDF 2010 arhiv originalu PDF za 16 travnya 2017 procitovano 25 bereznya 2022 Hongjun Wu Di Ma Efficient and Secure Encryption Schemes for JPEG2000 International Conference on Acoustics Speech and Signal Processing ICASSP 2004 MSP L 1 6 Vol V pp 869 872 http www3 ntu edu sg home wuhj research publications 2004 ICASSP JPEG2000 pdf 19 lyutogo 2018 u Wayback Machine FIPS 74 Federal Information Processing Standards Publication 1981 Guidelines for Implementing and Using the NBS Data Encryption Standard http www itl nist gov fipspubs fip74 htm 2014 01 03 u Wayback Machine Peter Gutmann Encrypting data with a restricted range of values 23 January 1997 https groups google com group sci crypt browse thread thread 6caf26496782e359 e576d7196b6cdb48 9 listopada 2012 u Wayback Machine Michael Brightwell and Harry Smith Using Datatype Preserving Encryption to Enhance Data Warehouse Security Proceedings of the 1997 National Information Systems Security Conference https portfolio du edu portfolio getportfoliofile uid 135556 2011 07 19 u Wayback Machine Mihir Bellare and Thomas Ristenpart Format Preserving Encryption http eprint iacr org 2009 251 4 serpnya 2020 u Wayback Machine Ulf Mattsson Format Controlling Encryption Using Datatype Preserving Encryption http eprint iacr org 2009 257 3 lyutogo 2019 u Wayback Machine Sashank Dara Scott Fluhrer Cisco Systems Inc Arhiv originalu za 16 zhovtnya 2014 Procitovano 26 bereznya 2022 Dworkin Morris 2016 NIST Special Publication 800 38G Recommendation for Block Cipher Modes of Operation Methods for Format Preserving Encryption doi 10 6028 NIST SP 800 38G arhiv originalu za 4 veresnya 2017 procitovano 25 bereznya 2022 arhiv originalu za 27 bereznya 2016 procitovano 26 bereznya 2022 NIST Feb 2019 Arhiv originalu za 2 kvitnya 2019 Procitovano 1 kvitnya 2019 PDF arhiv originalu PDF za 9 bereznya 2016 procitovano 26 bereznya 2022 arhiv originalu za 15 veresnya 2017 procitovano 26 bereznya 2022 PDF arhiv originalu PDF za 15 lyutogo 2017 procitovano 26 bereznya 2022 NIST 12 kvitnya 2017 Arhiv originalu za 2 bereznya 2020 Procitovano 5 travnya 2020 PDF arhiv originalu PDF za 9 kvitnya 2016 procitovano 26 bereznya 2022 C 14 listopada 2021 u Wayback Machine Go 26 bereznya 2022 u Wayback Machine Java 26 bereznya 2022 u Wayback Machine Node js 26 bereznya 2022 u Wayback Machine Python 26 bereznya 2022 u Wayback Machine C Net 26 bereznya 2022 u Wayback Machine Rust 26 bereznya 2022 u Wayback Machine