Криптоанализ зашифрованного текста с использованием Java - PullRequest
5 голосов
/ 14 апреля 2011

Я ищу несколько идей по заданию.

У меня есть 7 зашифрованных файлов, каждый из которых зашифрован с использованием того же симметричного ключа , длина которого 3 символа и букв Алгоритм шифрования не предусмотрен, но в спецификации указано, что это самодельный алгоритм и наивный (что бы это ни значило).Моя цель - расшифровать эти файлы.Я просто ищу идеи атак, которые я могу провести с этими файлами.

До сих пор я проводил частотный анализ, атаку методом "грубой силы" для обнаружения Ceasar Cipher, метод Красинского для обнаружения Vigenere Cipher,Зашифрованный текст XOR для обнаружения простой версии потокового шифра.Я подозреваю, что файлы были зашифрованы с использованием некоторого набора шифров.

Кстати, дешифрованный открытый текст должен содержать только простое сообщение, но зашифрованный текст показывает использование более 97 различных символов ASCII!

Любая общая помощь, идеи или указания приветствуются!Честно говоря, я не собираюсь расшифровывать эти файлы, но тогда я могу также доказать, что мой профессор ошибался с вашей помощью.Спасибо!

РЕДАКТИРОВАТЬ

Я ищу атаки на блочные или потоковые шифры.По крайней мере, это то, что я подозреваю ...

Ответы [ 4 ]

3 голосов
/ 14 апреля 2011

Знаменитая машина Enigma использовала 3 симметричные буквенные клавиши.97 символов ASCII?ASCII работает от 32 до 126, что дает 94 символа.\ N и \ r добавляют еще два для 96, а затем маркер конца сообщения, например \ 0 для 97. Иными словами, наивная копия ранних машин Engima (с фиксированным отражателем), шифрующая текстовые данные в стиле Windowsбудет очень хорошо соответствовать подсказкам.

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

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

Можно использовать грубую силу Enigma, если вы знаете, как выглядят роторы и отражатель.Не зная, что у вас есть около 10 ^ 15 возможностей для исследования в этом случае.

2 голосов
/ 14 апреля 2011

Почему бы не пойти дальше и начать грубое форсирование всех возможностей 26**3 для каждого из самых популярных алгоритмов симметричного ключа:

И любые другие, которые вы можете найти.

1 голос
/ 14 апреля 2011

Поскольку алгоритм прост и самоделен, вы можете попробовать следующие наивные алгоритмы:

  • повторное XOR с ключом шифрования каждый третий символ
  • повторяется XOR с ключом шифрования каждые 2 или 1 символ
  • XOR и вращение / сдвиг: ключ шифрования xor'ed с зашифрованным текстом и повернут / сдвинут

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

0 голосов
/ 14 апреля 2011

Итак, вы сказали, что провели статистический анализ. Если алгоритм фактически наивен, частоты символов не будут распределены равномерно. Некоторые символы будут встречаться чаще. Это так? Если так, я бы оттуда покопался.

Я мог бы также доказать, что мой профессор не так с вашей помощью

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

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