Рейтинг:0

Увеличение распараллеливания Triple-DES

флаг in
Jim

Triple-DES шифрует с помощью первого ключа, затем второго ключа, затем третьего ключа. Два ключа ждут. Почему бы не зашифровать всеми тремя ключами одновременно?

Вы берете 192 бита открытого текста (три 64-битных подблока) и пропускаете все 192 бита через MDS-матрицу в качестве предварительного шага. Далее параллельно вы одновременно шифруете первый блок первым ключом, второй блок вторым ключом и третий блок третьим ключом.

Вы повторяете 192-битную MDS-матрицу. Затем параллельно вы шифруете третий блок первым ключом, первый блок вторым ключом и второй блок третьим ключом.

Вы повторяете 192-битную MDS-матрицу. Затем параллельно вы шифруете второй блок первым ключом, третий блок вторым ключом и первый блок третьим ключом.

Блок1 = Ключ1, Ключ2, Ключ3

Блок2 = Ключ2, Ключ3, Ключ1

Блок3 = Ключ3, Ключ1, Ключ2

Шифрование с помощью третьего ключа, второго ключа, а затем первого ключа ничем не отличается от шифрования с помощью первого ключа, второго ключа, а затем третьего ключа, поэтому потери безопасности не будет. Это также будет устойчивым к атаке с размером блока 64 бит. Насколько реально увеличится производительность при параллельном шифровании всеми тремя ключами? Усложнит ли это реализацию до такой степени, что оно того не стоит?

kodlu avatar
флаг sa
Матрица MDS основана на дизайне смешивающего слоя AES, она не имеет ничего общего с DES, поэтому ее использование должно иметь цель, какая именно? Когда вы говорите, что шифрование k1,k2,k3 (перефразируя для комментария) ничем не отличается от шифрования k2,k3,k1, это другое сопоставление шифрования. пожалуйста, сделайте вопрос явным, а не "вы делаете то же самое" и т. д.
флаг ph
Что значит для ключа сидеть и ждать? Когда вы говорите о параллелизме, вы обычно имеете в виду, что процессорные ядра будут сидеть и ждать. Почему это лучше, чем запуск 3DES на нескольких блоках одновременно?
Рейтинг:0
флаг my

По сути, это 192-битный блочный шифр; изменение любого бита входных данных имело бы непредсказуемый эффект на все 192 бита выходных данных. Некоторые примечания:

  • 192 — блочный шифр нечетного размера; если бы я был разработчиком, у меня был бы сильный соблазн добавить еще одну полосу и сделать ее 256-битным блочным шифром.

  • Первоначальный MDS криптографически бесполезен — это общедоступная операция, поэтому криптоаналитику легче ее вычислить.

  • На первый взгляд может показаться, что вы ничего не получаете, переключая клавиши между слоями; входные данные (скажем) конкретного DES на втором уровне являются линейной функцией всех трех выходных данных DES на предыдущем уровне. В некотором смысле все три функции DES на определенном уровне эквивалентны; Я бы упростил его, сделав каждый уровень «ключом 1, ключом 2, ключом 3» (и, возможно, добавив «ключ 4», если вы придерживаетесь идеи 256-битного блока, описанной выше).

  • «Шифрование с помощью третьего ключа, второго ключа, а затем первого ключа ничем не отличается от шифрования с помощью первого ключа, второго ключа, а затем третьего ключа, поэтому потери безопасности не будет». - держи это прямо здесь, бако - добавление операций в середине влияет на безопасность и может снизить ее. Он может быть безопасным (то есть, по крайней мере, таким же безопасным, как обычный 3DES), однако это необходимо показать, а не просто предположить.

  • Лучшая атака, которая пришла мне в голову (не то, чтобы это было доказательством того, что нет лучшей): подход, основанный на насыщении (где вы держите два входных блока постоянными и циклически перебираете все возможности третьего блока — да , это $2^{64}$ блоки ввода); после второй матрицы МДР сумма по всем $2^{64}$ блоки входных данных для любого из блоков DES последнего раунда будут равны 0 — это позволит вам проверить угадывание ключа DES ценой примерно $2^{64}$ пробные расшифровки, т. $2^{112}$ расшифровки, чтобы выполнить полный поиск. Неизвестно, сможете ли вы провести более эффективную атаку.

Что касается производительности, то она сильно зависит от аппаратного обеспечения (производительность всегда зависит) — очевидно, если у вас есть программная реализация, которая может выполнять только одну операцию DES за раз, вы не быстрее, чем обычный 3DES (и на самом деле немного медленнее; как из-за промежуточных операций IP/FP, так и из-за операций MDS). Предполагая, что у вас есть оборудование, которое может выполнять несколько операций DES параллельно, вы можете получить некоторый выигрыш, однако (для выполнения вычисления BOTE) шифрование 48 байтов потребует 6 (3x параллельных) операций DES; шифрование тех же 48 байтов с помощью AES потребует 3 операций AES - я ожидаю, что последний будет быстрее.

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

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