Рейтинг:0

Форматировать сохраняющие числа в пределах диапазона смещения?

флаг br

Очень короткий вопрос.

Можно ли зашифровать с помощью FPE последовательность чисел в диапазоне от 10 000 до n, где возможные зашифрованные значения смещены и могут попадать только в диапазон от 10 000 до n?

Например. Порядковый номер, содержащий не более 10 цифр, будет дополнен нулями (0000 0532 12) и зашифрован в часть IAN номера PAN (эквивалентный размер цифр). Любой порядковый номер, превышающий 9999, не должен шифроваться, чтобы иметь IAN с шестью ведущими нулями xxxx xxxx 0000 0020 31y.

Рейтинг:0
флаг my

Можно ли зашифровать с помощью FPE последовательность чисел в диапазоне от 10 000 до n, где возможные зашифрованные значения смещены и могут попадать только в диапазон от 10 000 до n?

Без труда; вот простой трехэтапный процесс шифрования значения $x \in [10000, n]$:

  • Вычесть 10000 из n

  • Зашифруйте его с помощью метода FPE, который обрабатывает диапазон $[0, n-10000]$. Это может включать выбор подходящей базы и, возможно, повторное шифрование зашифрованного текста, если он выходит за пределы диапазона.

  • Добавьте 10000 к результату

Соответствующий процесс расшифровки должен быть очевиден...


И стандартный способ обработки открытых текстов/зашифрованных текстов в диапазоне $[0, х]$ с базой $б^е > х$ является:

  • Выразите открытый текст как $е$ база-$б$ цифры (с использованием базовой процедуры преобразования)

  • Зашифровать открытый текст с помощью ключа

  • Если результат окажется $> х$, затем повторно зашифруйте этот результат тем же ключом (и повторяйте, пока результат не окажется в пределах допустимого диапазона)

  • Преобразуйте этот результат в зашифрованный текст (используя другую базовую процедуру преобразования)

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

spurtin avatar
флаг br
Спасибо! На самом деле я пришел к выводу о повторном шифровании вывода, если он выходит за пределы диапазона, всего за несколько минут до проверки вашего ответа XD Только для документации. Первый пример тоже имеет смысл. Очевидные проблемы есть. Во-первых, найти базу, которая достаточно близка к размеру диапазона, а во-вторых, снова зашифровать вывод. Проще просто отказаться от трехэтапного процесса.
poncho avatar
флаг my
@spurtin: ну да, если $n$ — хорошее значение (скажем, степень 2 или даже лучше, 256) и $n \ggg 10000$, то просто отбрасываем значения $[0, 9999]$ имеет смысл

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.