Рейтинг:0

Многократное хеширование 64-битных счетчиков с разными ключами и операция XOR с блоками открытого текста: некоторые вопросы

флаг pf

Предположим, мне нужно 2048-битное блочное шифрование.

Я беру 512-битную хэш-функцию (как Blake2b), предоставляю счетчик и ключ, хеширую счетчик и, таким образом, XOR хешированного значения в блоке зашифрованного текста, и повторяю этот процесс несколько раз с разными счетчиками и ключами до четвертого ключа. (2048/4=512=бит хеш-функции).

Будет ли этот метод уязвим для MITM-атаки?

Будет ли этот метод уязвим для квантовых атак, и Алгоритм Грувера

Получу ли я 2048-битную стойкость шифрования?

kelalaka avatar
флаг in
Зачем вам 2048-битная симметричная защита? Даже 256-битный AES или ChaCha20 будет достаточно безопасным и квантово-безопасным!
phantomcraft avatar
флаг pf
Мне нужно, потому что я параноик, у меня есть совершенно секретные материалы, и я хочу создать программу шифрования диска, которая будет использовать ключи большего размера, чем 256/512.
kelalaka avatar
флаг in
[Параноид чего и кого?](https://xkcd.com/538/) Нет сущности, способной взломать 256-битное шифрование, классическое или квантовое, или то и другое вместе. Если вы действительно параноик, вы можете подумать об оценке своих рисков. Где вы шифруете файлы, кто и где имеет доступ, каков режим работы шифрования, как хранятся ключи...
phantomcraft avatar
флаг pf
Я шифрую свой внешний жесткий диск и свою ОС, ключи надежно хранятся, и другой человек, которого я попросил, уничтожит ключи, если я умру, я использую CTR в 3 слоя Threefish с 1024-битными ключами. Я верю, что я в безопасности.
kelalaka avatar
флаг in
Мы больше не шифруем жесткие диски в режиме CTR, предпочтение отдается XEX/XT. Почему бы вам просто не использовать Veracrypt для обработки наиболее важных частей?
phantomcraft avatar
флаг pf
Я написал модуль ядра Threefish с 1024-битным шифрованием, но он работает только с простыми IV, Threefish не имеет известных атак зашифрованного текста, поэтому мой выбор - CTR с простыми IV; XTS хорош, но при шифровании с помощью AES/Serpent/Twofish с 256-битным ключом проблема начинается с их 128-битного размера блока: https://crypto.stackexchange.com/questions/30212/is-xts-basically- самая дешевая форма-безопасного-двойного-шифрования -- Также взгляните на: https://eprint.iacr.org/2016/197
kelalaka avatar
флаг in
_Атака «встреча посередине» применяется к двойным XTS, как обычно, примерно за $2^{385}$ времени и $2^{384}$ места._ Кто может это сделать?
phantomcraft avatar
флаг pf
@kelalaka Люди не предназначены для того, чтобы их понимали, и я не понимаю, что вы придерживаетесь 256-битной безопасности, вы не понимаете, что мне нужны ключи больше 512 бит.
Рейтинг:0
флаг cn

Хотя можно построить потоковый шифр из хеш-функции. У этой конструкции есть один очень серьезный недостаток.

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

То, что вы фактически имеете, это следующее для каждого блока: Строительство

Кроме того, вы не получите здесь 2048-битного шифрования. Например, я могу атаковать первые 512 бит зашифрованного текста. Это означает, что мне нужно найти только первый ключ. То же самое для второго ключа и т. Д. Итак, для всего блока вам нужно найти только 4 ключа. Таким образом, вы фактически увеличили длину ключа только на 2 бита. Это связано с тем, что каждый ключ не зависит от другого, поэтому при атаке грубой силы изменение одного не влияет на другие ключи.Так что, если вашей целью было 2048 бит силы ключа, это даже хуже, чем встреча посередине атаки. В основном это настолько сильно, насколько сильна ваша стартовая длина ключей.

Также такой большой ключ бесполезен для симметричных шифров.

Постквантовая безопасность хеш-функций, таких как BLAKE2b, уже достаточно надежна, особенно с 512-битным дайджестом.

phantomcraft avatar
флаг pf
Я понял, спасибо за ответ.
phantomcraft avatar
флаг pf
Я думаю, вы ошибаетесь. Если кто-то должен перебрать два 512-битных ключа в этом методе, для каждой попытки в первом ключе он должен будет проверить еще 2 ^ 512 значений второго ключа, поэтому ему придется сделать 2 ^ (512 * 2) попытки в вся схема (1024-бит). Как кто-то может определить, является ли один ключ из 2 ^ 512 ключей правильным ключом, который создаст точный хешированный материал? Как кто-то может определить, является ли единственное хешированное значение в 2^512 результатах правильным хешем?
phantomcraft avatar
флаг pf
Предположим, я хеширую счетчик "123" с ключом K, генерируя хэш H. Как можно определить, что H является побочным продуктом "123" с ключом K?
флаг cn
В описанной вами конструкции каждый ключ отвечает только за 512-битный фрагмент в блоке. Поэтому мне нужно учитывать только каждый 512-битный фрагмент. Счетчик также не является секретным и может быть определен по длине зашифрованного текста. Так что это не влияет на силу ключа. Поскольку ключ - это просто число от 0 до 2 ^ n - 1. С вашей конструкцией из 4 ключей я мог бы попробовать ключ на каждом 512-битном фрагменте, которых 4. Итак, когда я считаю по клавишам, я делаю только 4 раза больше работы. Также нет компромисса с пространством, поэтому я говорю, что это хуже, чем атака MITM, если вашей целью является 2048-битный ключ.
флаг cn
Глядя на ваши другие комментарии и на тот факт, что вы обеспокоены пост-квантовой безопасностью. Симметричные блочные и потоковые шифры с 256 битами по-прежнему безумно безопасны. Возможно, вы сбиваете с толку силу битового ключа с асимметричными шифрами, такими как ECC и RSA, которые, если бы был достаточно большой квантовый компьютер, могли бы сломаться. Однако для симметричной криптографии: т.е. такие шифры, как AES, ChaCha20 и т. д. Достаточно 256-битного ключа. С большими ключами также сложнее обращаться безопасным образом. Разумно запомнить 256-битный ключ, 2048-битный ключ нужно будет хранить на чем-то, что можно украсть и т. д.
Рейтинг:0
флаг kr

Будет ли этот метод уязвим для MITM-атак?

То, что вы описываете, это режим ECB. Если вы используете один и тот же ключ более одного раза, то да, он уязвим для MITM-атак. MITM может заменить некоторые блоки в одном сообщении блоками с теми же номерами из другого сообщения. Измененное сообщение будет полностью расшифровано, и невозможно определить, было ли оно изменено.

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

phantomcraft avatar
флаг pf
Я имею в виду: хеширование счетчика. Каждый хешированный блок будет отличаться друг от друга.
флаг kr
@phantomcraft: Конечно, хэш-счетчик для 1-го блока будет отличаться от хэш-счетчика для 2-го блока. Но **все** сообщения будут иметь **одинаковый** хэш-счетчик для 1-го блока. И **все** сообщения будут иметь **одинаковый** хэш-счетчик для 2-го блока (отличный от 1-го блока, но одинаковый для всех сообщений). И т.д.
флаг kr
@phantomcraft: Следствие: поскольку все сообщения используют один и тот же хэш-счетчик для 1-го блока, злоумышленник может заменить 1-й блок сообщения A на 1-й блок сообщения B. В вашей схеме нет способа определить, является ли 1-й блок был заменен. Предположим, исходное содержание 1-го блока в сообщении А — «Перевести 1000 долларов США на счет 111111111.», 1-го блока в сообщении Б — «Перевести 1000000 долларов США на счет 222222222». Злоумышленник может заменить 1-й блок сообщения А на 1-й блок сообщения Б, даже не зная пароля, и вы его не обнаружите.

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

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