2012-05-18 3 views
2

Можно получить ключ, используемый для шифрования безопасности символов с помощью xor?XOR ключ шифрования и дешифрования

Пример

Допустим, что у меня есть следующие строки: 1456, так что:

  • 1 - 49 ASCII - 00110001 двоичное
  • 4 - 52 ASCII - 00110100 двоичное
  • 5 - 53 ascii - 00110101 двоичный
  • 6 - 54 ascii - 00110110 двоичный

Ключ: 100

Затем я делаю следующее: 1^100 (разговаривает в двоичном формате: 00110001^01100100) и получаю следующий результат: «UPQR», откуда я знаю, что я использовал ключ 100 в xor чтобы зашифровать «1456», получив «UPQR».

Заранее благодарен!

+2

XOR не делает много шифрования, больше его кодирует ... –

+0

@ Алгоритм K-ballo ARCFOUR (RC4) - это точно шифрование XOR, и все же это широко используемый алгоритм шифрования, используемый в SSL/TLS, а также в других местах. –

ответ

3

Если вы знаете, как оригинальный и кодированный последовательность, то для каждого компонента должно быть, что

original[i]^encoded[i] == key 

Если вы не знаете, оригинальное содержание, то вы должны попробовать с каждым возможным ключом и посмотрите, имеет ли смысл какой-либо смысл (для некоторого определения смысла).

+0

Будет ли то же самое, если я использую & или | вместо? –

+0

Уверен ... точно так же, как '1 + 1' то же самое, что' 1 - 1' или '1 * 1' –

+0

Я пробовал оригинальные [i] и закодировал [i], но не дал мне правильную клавишу , –

0

Если вы находитесь в состоянии разрыва кода, то вам обязательно нужно узнать Sinkov's Elementary Cryptanlysis и Gaines's Cryptanalysis: A Study of Ciphers and Their Solution. Обе эти книги идут на хорошую глубину при восстановлении ключей для Vigenère Cipher, что довольно похоже на последовательное применение операций XOR.

1

Примечание комментарий Википедии о XOR cipher

Само собой, используя постоянный повторяющийся ключ, простой гаммирование может быть тривиальным сломана с помощью frequency analysis.

Хотя, если ключ является размером сообщения (и случайным, и используется только один раз), у вас есть one-time pad. Это просто нерушимый период. Хотя это слишком громоздко для большинства, чтобы использовать.

+1

Это только одноразовый блок, если ключ _random_.:) – sarnold

+1

@sarnold Почему безопасность и шифрование всегда сводятся к техническим требованиям? :) – HostileFork

Смежные вопросы