Много ли небольших файлов, зашифрованных одним и тем же шифром и ключом, представляют собой уязвимость системы безопасности? - PullRequest
0 голосов
/ 08 августа 2009

Мне любопытно, если у меня много файлов, некоторые размером до нескольких килобайт, некоторые размером всего 2, 4, 8 байтов. Будет ли дыра в безопасности? Что делать, если у меня на одном диске 10 000 файлов, зашифрованных по одному и тому же алгоритму (скажем, SHA512, поскольку я знаю, что существует SHA512CryptoServiceProvider)

Это будет уязвимость безопасности? Так как многие файлы используют один и тот же шифр и ключ? Разве это плохо, что они тоже маленькие? Файлы могут быть в известных форматах, таких как pdf, png, doc, jpg и т. Д. Влияет ли это на что-либо, поскольку известны первые несколько байтов этих файлов?

Ответы [ 5 ]

4 голосов
/ 08 августа 2009

SHA512 - это алгоритм хеширования, а не шифр и, конечно, не криптосистема. Вы не можете зашифровать его (в одиночку).

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

редактировать

«Является ли X безопасным» невозможно ответить, не зная, что такое X . То, как вы планируете шифрование, вплоть до последней детали, является частью X .

Но я могу дать вам вероятный ответ: Крипто очень сложно. Кажется, что он работает (вывод выглядит нечитаемым), даже когда это не так (он только выглядел нечитаемым, но на самом деле не был). Совершить ошибку, разрушающую безопасность, очень легко. Так что, скорее всего, когда вы внедрите свою собственную криптосистему, она не будет безопасной.

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

0 голосов
/ 08 августа 2009

Как все говорили, SHA - это не шифр, это ХЭШ. Одно это должно быть хорошим признаком того, что вам НЕ следует внедрять свой собственный шифр.

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

Также вы сказали, что хотите зашифровать разные файлы одним и тем же ключом?, Большинство шифров зашифровывают блоки одинакового размера, некоторые из этих файлов, такие как pdf, атакующий может знать, скажем, первые 64 бита. Если он знает простой текст (первые 64 бита), если ваш шифр является детерминированным, восстановление ключа является тривиальным.

Мое предложение, придерживайтесь хорошо известного шифра, общедоступной реализации, такой как AES, и с хорошим режимом шифрования, так как ваши первые блоки, вероятно, будут равны, ECB, предложенный выше, даст что-то небезопасное. CBC или CFB, вероятно, ваша лучшая ставка.

0 голосов
/ 08 августа 2009

При правильном шифровании с хорошим режимом шифрования (не ECB) - со случайным вектором инициализации (IV) - даже при использовании большого количества маленьких файлов с одним и тем же ключом зашифрованные файлы будут достаточно отличаться Криптоанализ возможен. Действительно, это определение криптографического алгоритма звука.

0 голосов
/ 08 августа 2009

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

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

0 голосов
/ 08 августа 2009

Я помню некоторую опасность, связанную с файлами размером менее 30 или 40 байт или около того. Это также было в первые дни, когда DES по-прежнему считался небьющимся (до тех пор, пока мощность процессора не стала достаточной). Опасность была как-то связана с угадыванием пары сообщений полностью по их длине и тем самым извлечением ключа.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...