LINUX.ORG.RU

Последовательное применение алгоритмов шифрования с одним ключом.


0

1

Какие из свободных и хорошо известных алгоритмов шифрования, поддерживающих 256-битный ключ можно применять последовательно к тексту так, чтобы это не приводило к снижению криптостойкости зашифрованного сообщения. При этом предполагается применение одного и того же ключа. Интересует, в частности, возможность совместного применения алгоритмов AES, Serpent, Blowfish, HPC и ГОСТ.

★★★★★

http://security.stackexchange.com/questions/18087/is-multiple-encryption-a-go...

Assuming your message is multiply-encrypted in a nested fashion (anything else doesn't make sense) with independent keys/passphrases like multiply_encrypted_file = Blowfish(AES(file)). If an attacker gets a hold of encrypted_file it is not in any way weaker than getting hold of encrypted_file = AES(file) though you should beware of exposing yourself to known-plaintext attacks which could weaken security if you used the same key/passphrase at all levels and have a guessable header/structure of the file after the first level of decryption.

getup
()
Ответ на: комментарий от getup

общие слова, ни разу не ответ на вопрос

next_time ★★★★★
() автор топика

Теоретически типы алгоритмов в цепочке, их количество и порядок это дополнительные биты к ключу (если не публиковать эти сведения). Ну и криптоатаки сложнее проводить.

На деле же у вас всё утечёт благодаря человеческому фактору, вводя вас в заблуждение относительно «непобедимости».

ziemin ★★
()
Ответ на: комментарий от ziemin

утечёт благодаря человеческому фактору

это уже будут не мои проблемы

Теоретически типы алгоритмов в цепочке

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

мой вопрос — именно про сочетаемость конкретных алгоритмов

next_time ★★★★★
() автор топика

При этом предполагается применение одного и того же ключа.

В таком случае, если вскрывается конечный алгоритм, то предыдущие становятся бесполезны.

Интересует, в частности, возможность совместного применения алгоритмов AES, Serpent, Blowfish, HPC и ГОСТ.

Twofish забыл.

мой вопрос — именно про сочетаемость конкретных алгоритмов

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

Кстати, ты ещё про хэшфункции забыл.

// reference manual

1 2 3 4 5 6

Umberto ★☆
()
Последнее исправление: Umberto (всего исправлений: 1)
Ответ на: комментарий от next_time

теоретически различные алгоритмы могут плохо сочетаться друг с другом, создавая уязвимости при последовательном применении

Нет.
Приведу пример. Когда, скажем, две стороны не могут договориться каким алгоритмом шифровать сообщение, чтобы было безопасно и проходило по закону (например, забугорный DES или Российский ГОСТ?), то шифруют по очереди обоими. Получается очень стойко и надёжно для обеих сторон.

Winnerer
()
Ответ на: комментарий от next_time

Что мешает в следующем шифровании использовать md5 ключа? Обеим сторонам всё и так известно. А остальные пусть копят бабло на квантовые кампутеры.

ziemin ★★
()
Ответ на: комментарий от Umberto

В таком случае, если вскрывается конечный алгоритм, то предыдущие становятся бесполезны.

Доводы?

Twofish забыл.

оуч, да

В таком случае, если вскрывается конечный алгоритм, то предыдущие становятся бесполезны.

Не очевидно. «Для блочных шифров актуальной остается работа Маурера, в которой доказывается, что в каскаде блочных шифров самым слабым звеном является первый шифр каскада.»  — выжимка из этой работы по ссылкам не приведена даже вкратце. А хотелось бы узнать поподробнее.

next_time ★★★★★
() автор топика
Ответ на: комментарий от ziemin

Какая разница чем вы шифруете - ключом или md5 от ключа? К тому же при использовании шифра у вас появятся коллизии, т.е. может подходить несколько разных паролей, оно вам надо?

Winnerer
()
Ответ на: комментарий от next_time

разными ключами или одним?

По факту всё равно — алгоритмы то разные. Если бы у вас XOR был, да по одному ключу — тогда бы волновались, что на выходе открытый текст получится. А алгоритмы, используемые в современных криптосистемах, этой проблеме не подвержены. Для надёжности можно разными.

Winnerer
()
Ответ на: комментарий от Winnerer

Какая разница чем вы шифруете - ключом или md5 от ключа?

Ну тебе-то никакой, а вот взломщики поерахаются выяснять, один раз ты прогнал или миллион.

ziemin ★★
()
Ответ на: комментарий от ziemin

Что мешает в следующем шифровании использовать md5 ключа?

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

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Да нет же. Все уязвимости md5 направленны на подделку, а тут ты делаешь md5 (или любой другой хэш, а лучше все вместе) 1000xN раз. Т.е. Интерпретируешь по-другому.

ziemin ★★
()
Ответ на: комментарий от Winnerer

По факту всё равно — алгоритмы то разные.

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

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Так пользуйтесь современными алгоритмами на проблеме дискретного логарифмирования, например. Для них всё доказано.

Winnerer
()
Ответ на: комментарий от Winnerer

Вы не поняли предложения, а оно было следующим: зашифровать X 1-ым ключом 1-ым алгоритмом, затем зашифровать результат 2-ым алгоритмом, юзающим в качестве 2-го ключа md5 сумму от первого ключа. Мысль здравая, ибо уменьшает вероятность наличия уязвимости в суммарном алгоритме.

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

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

Как я уже говорил, слабое звено человек.

Но если тебя это не волнует, запомни простую истину: нельзя передавать исходный ключ по одному каналу. Лучше разбить на части. Цепочка шифрований, методика преобразования ключа и количество преобразований самым естественным образом бьются на части. А ещё лучше, что бы каналы не знали, что они ключ передают.

ziemin ★★
()
Ответ на: комментарий от next_time

Увеличивает уязвимость во втором случае. Смотрите: k - ключ, который вы передадите на функцию хэширования h. можут получиться следующая ситуация:
h(k) → k_hashed
h(k2) → k_hashed
ввиду того, что h — не взаимно однозначная функция. Тем самым вы облегчите задачу взломщикам.

Winnerer
()
Ответ на: комментарий от next_time

Доводы?

Я не криптограф и не компетентен чтоб приводить доводы. Подними тему на пгпру, может расширят и углубят аргументами предыдущие упоминания.

А с практической, утилитарной точки зрения, лучше пользоваться «best practices».

Umberto ★☆
()
Ответ на: комментарий от Winnerer

то, что там написано совсем не к месту, ziemin предлагает «нестандартное» применение md5, НЕ в целях подписывания/удостоверения целостности, поэтому все приведённые вами по ссылке атаки не сработают

next_time ★★★★★
() автор топика
Ответ на: комментарий от ziemin

использовать цепочку преобразований ключа

Вы в исходники DES заглядываали хоть раз? Плюс учтите, что ГОСТ (номер не вспомню) — практически слизанный с него.

нельзя передавать исходный ключ по одному каналу

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

Winnerer
()
Ответ на: комментарий от ziemin

не зная цепочки шифрования и алгоритмов преобразования ключа на каждом шаге

будет открыто

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

Плюс учтите, что ГОСТ (номер не вспомню) — практически слизанный с него.

Он даже близко не похож на DES, ибо использует таблицу замен — кстати в этом отношении совершенно уникальный алгоритм

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

асимметричное шифрование, которому в общем-то наплевать, что изначально ключ могут перехватить

ещё как не наплевать. оно совершенно не защищает от атак по середине

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Я уже привёл аргумент как можно сделать приведённый алгоритм слабее. Вот из-за того, что применяют не к месту алгоритмы, не предназначенные для этого и получается, что доверять криптографию нужно специалистам.

Winnerer
()
Ответ на: комментарий от next_time

не зная цепочки шифрования и алгоритмов преобразования ключа на каждом шаге

будет открыто

Тогда всё опять упирается в сохранность ключа. В этом случае алгоритмы лучше скрыть в ключе. Например сумма бит через один чётная? Производим des. Делится на три? Тогда ещё и ГОСТ. Может одна из частей ключа НОК к 23456789? Ну так дополнительно ещё тыщу преобразования ключа на каждом шаге.

PS: Примеры неудачные, но смысл понятен. А публиковать стоит, что при шифровании используются следующие алгоритмы: ...

ziemin ★★
()
Последнее исправление: ziemin (всего исправлений: 1)
Ответ на: комментарий от Winnerer

h(k) → k_hashed

h(k2) → k_hashed

допустим мы сначала зашифровали сообщение алгоритмом А, так что: А(k_hashed, text), а затем алгоритмом А2: А2(k, A(k_hashed, text)) при таком условии коллизии в md5 не помогут, так как в процессе перебора вариантов потребуется найти однозначное соответствие md5 суммы ключу из которого она была сгенерирована, если md5 сумма соответствует нескольким ключам, придётся перебрать их все

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

Там есть какие-то таблицы, но они строго определены, нет такой болтанки «что хочу, то и ворочу», как в ГОСТ. И используются они иначе. Да и ключ в результате 56-битный, а не полноценный, как в ГОСТ.

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Посмотрите лучше в сторону режимов алгоритмов. Там есть и с двумя ключами, серьёзно. Не изобретайте велосипед.

Winnerer
()
Ответ на: комментарий от Winnerer

man атака человек по середине, от неё вообще, строго говоря, защиты нет никакой.

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

Не годится. Велосипед изобрёл не я, а авторы True Crypt. И даже не они были первыми.

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Те самые какие-то таблицы и есть таблицы замен. К слову в DES они строго заданы, потому что так безопаснее - проводились эксперименты аналитиками и именно такие константы были заданны для соответствующего уровня безопасности. В ГОСТЕ же есть рекомендации.

Winnerer
()
Ответ на: комментарий от ziemin

В этом случае алгоритмы лучше скрыть в ключе. Ну так дополнительно ещё тыщу преобразования ключа на каждом шаге.

Слишком сложно, да и не нужно. На самом деле, любой современный алгоритм обеспечит достаточно серьёзную криптостойкость. Задача - избавиться от теоретических, ещё не опубликованных уязвимостей. Вариант с md5 суммой интересен. Причём, достаточно взять md5-сумму всего один раз.

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

Так вот, применение md5 суммы от основного ключа достаточно сильно устраняет вероятность уязвимости в результате «скрещивания» алгоритмов. Хотя, этот вопрос требует дополнительного изучения.

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

К слову в DES они строго заданы.

О чём и речь. Это не тоже самое, что таблицы замен в ГОСТе. Кроме того, в ГОСТе она одна, а в DES их вроде несколько.

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Слишком сложно, да и не нужно. На самом деле, любой современный алгоритм обеспечит достаточно серьёзную криптостойкость.

...на три минуты. Если закон Мура не соблюдается для пиф-паф-пфьию видюшек это не значит, что он достиг предела. Скорее объзьянки (которые вместо программистов) даже в наркотическом угаре уже не могут родить код, который современные процессоры нагрузит. А ведь твой оппонент не дремлет. И уж у него точно самые лучшие алгоритмы и люди.

ziemin ★★
()
Ответ на: комментарий от ziemin

существует доказательство того, что даже достаточной простой симметричный шифр, кодирующий 256-битным ключом, даёт шифрование, устойчивое к атаке полным перебором в течении нескольких миллиардов лет, при условии, что взломщик использует на расшифровку всю доступную энергию Вселенной

next_time ★★★★★
() автор топика
Ответ на: комментарий от Winnerer

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

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Ты сам-то это доказательство видел? Современные компутеры не могут смоделировать. что внутри атома происходит. Зато испоьзуют его в качестве элементов компьютера. А он уж точно не использует «всю энергию вселенной»

ziemin ★★
()
Ответ на: комментарий от ziemin

дело в том, что согласно квантовой механике существует минимально возможный для манипуляций сгусток энергии, если даже учесть, что у нас на одну операцию уходит один такой сгусток (что для современной техники невозможно), всё равно, 2 в 256 степени настолько большое число, что для того, чтобы перебрать такое число вариантов потребуется неисчислимое количество энергии, в общем, гугл ит

next_time ★★★★★
() автор топика
Ответ на: комментарий от next_time

Это методом пузырька? Считай сплошное моделирование.

А я про алгоритмы. Ты уверен, что они тебе все доступны. Я не о том, что их скрывают. Перерыть все исследования этого месяца уже невозможно. Наука двигается только потому, что учёные, в первую очередь бегут всем рассказать что они открыли. А если нет? Это же известная тема фанастов: открытие осталось незамеченным.

ziemin ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.