Безопасность Exclusive-OR (XOR) шифрования - PullRequest
3 голосов
/ 18 октября 2010

Шифрование XOR, как известно, довольно слабое.Но насколько он слаб, если у меня есть ключ, состоящий из нескольких ключей разной (в идеале простой) длины, которые объединяются в более длинный ключ.например, у меня есть текстовые ключи длиной 5, 9 и 11. Если я просто применю первый ключ с использованием шифрования XOR, то его будет легко сломать, поскольку байт шифрования будет повторяться каждые 5 байтов.Однако, если я «наложу» три из этих клавиш, я получу эффективную неповторяющуюся длину 5 * 9 * 11 = 495. Это звучит для меня довольно сильно.Если я использую пару стихов стихотворения, используя каждую строку в качестве ключа, моя неповторяющаяся длина будет намного больше, чем у большинства файлов.Насколько сильным это будет (при условии, что ключ остается секретным! :))

Ответы [ 3 ]

7 голосов
/ 18 октября 2010

Шифрование XOR точно так же сильно, как и поток ключей. Если вы выполняете XOR с «One time pad» - последовательностью физически сгенерированных случайных чисел, которые вы используете только один раз, то ваше шифрование теоретически невозможно сломать. Однако у вас есть проблема с сокрытием и распространением ключа.

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

4 голосов
/ 18 октября 2010

А как насчет атаки «известным открытым текстом»? Если вам известны зашифрованные и открытые версии одной и той же строки, вы можете получить ключ.

http://en.wikipedia.org/wiki/XOR_cipher

http://en.wikipedia.org/wiki/Known-plaintext_attack

http://en.wikipedia.org/wiki/Stream_cipher_attack

2 голосов
/ 18 октября 2010

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

...