Рейтинг:0

Какой-нибудь шифр числа в число?

флаг us

Мне любопытно (не технически информировано), является ли числовой шифр обычным/полезным в криптографии.

Представьте, мы хотим зашифровать целое число у в целое число Икс. Используя формулу, подобную

х = 2 * у - 1

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

Есть ли способ зашифровать целые числа, в то время как на выходе будет такое же целое число (не безумно большее; например, изменение 6-значного числа на 6-8-значное число)?

bk2204 avatar
флаг fr
Вы спрашиваете о дизайне, который обеспечивает согласованное сопоставление между входными и выходными числами (что небезопасно), или вы спрашиваете о безопасном дизайне?
флаг us
@ bk2204 это согласованное сопоставление, поскольку кто-то, у кого есть ключ, может напрямую получить «y» из «x». Конечно, это не так безопасно, как одностороннее хеширование; но сложность ключа затрудняет его расшифровку.
fgrieu avatar
флаг ng
Кажется, вы запрашиваете шифрование с сохранением формата, особую форму блочного шифра, которая может вмещать открытый текст и зашифрованный текст в заданном формате, например. 7-значный. Похоже, вы _не_ ищете потоковый шифр, поэтому я изменил тег.Если FPE выполняет эту работу, пожалуйста, закройте вопрос, если вам не нужна дополнительная информация о FPE (возможно, введение или простой пример алгоритма), и в этом случае укажите свои ограничения: выполнимо с помощью компьютера, портативного калькулятора, ручки и бумаги... фиксированные или переменные размер для открытого текста и зашифрованного текста, ведущий нулевой значащий или нет...
флаг us
@fgrieu спасибо за разъяснения. Вы правы, это, вероятно, не относится к поточному шифру, но это и не типичный блочный шифр. Режим - электронная шифровальная книга, но насколько я понимаю, блочный шифр превращает каждый символ в новый. Мой вопрос заключается в том, чтобы рассматривать ввод как число (а не набор цифр). Нам не нужно сохранять размер вывода равным входу. Я лишь подчеркнул, что выход не должен быть безумно большим. Например, мы используем формулу «x = a * y^3 + b * y^2 + c * y + d». Будет очень сложно расшифровать вывод, но он будет слишком большим.
fgrieu avatar
флаг ng
Если что-то, что может быть целым числом $[0..999999]$ (до 6 десятичных цифр) для открытого текста, в порядке, и вы позволяете выходу быть значительно больше, чем вход, например. целое число, скажем, $[0..2^{33}-1]$ (которое соответствует 10 десятичным цифрам), тогда вы можете использовать любой стандартный шифр, потоковый или нет (например, обычный AES-CTR) с простым преобразованием из десятичного в двоичный для открытого текста (20 бит) и двоичного в десятичный для IV + зашифрованный текст (13 + 20 бит). Вам не нужен полноценный FPE, конечно, IV маленький; и у вас нет аутентифицированного шифрования, но об этом не спрашивают. При необходимости могу подробно ответить.

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

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