Как стать автором
Обновить

Комментарии 22

В Java-стрингах не рекомендуют хранить пароли. Лучше в массиве.

Для данного конкретного примера это не важно. Скажем так, пароль в открытом виде вообще в коде лучше не использовать. И по логике, боб должен вводить его вручную в своей программе.
Недостаток симметричного шифра заключается в том что если мы знаем часть шифрособщения которое поступило в шифратор, то можем раскрыть часть секретного ключа и значительно сократить время перебора. А если таким каналом передаются вовсе стандартные сообщения… то ключ ломается на раз-два. Поэтому метод шифрования как самостоятельный нынче не используется от слова совсем.
Недостаток симметричного шифра… то ключ ломается на раз-два… Поэтому метод шифрования как самостоятельный нынче не используется от слова совсем.

AES, A5/1, A5/2, A5/3 — примеры симметричных шифров, используемых в сотовых системах связи. Ждём от вас утилиту, ломающую на раз-два AES-128 (т.е. вычисляющую ключ шифрования) при ПОЛНОСТЬЮ известном шифрсообщении, размер сообщения предлагаю взять любой удобный, например 1 Гбайт.

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

Ждём от вас утилиту

Для A5/1 — наслаждайтесь: srlabs.de/wp-content/uploads/2010/07/Attacking.Phone_.Privacy_Karsten.Nohl_1-1.pdf opensource.srlabs.de/projects/a51-decrypt
Вы упустили вот этот важный момент

Извините, конечно же речь о полностью известном открытом тексте, описАлся, в первую очередь криптоаналитики исследуют шифры исходя из того, что им известно ВСЁ что угодно за исключением ключа шифрования, если в таком варианте шифр взламывается — появляются конкретные требования к исходным данным, получить которые уже задача не криптоаналитика, а кого-то другого.

Для A5/1 — наслаждайтесь

В А5/1 и А5/2 есть уязвимости, это давно известно, я просил утилиту для AES-128.
Я подозреваю, что имелось в виду не шифросообщение (которое ciphertext), а открытое сообщение (которое plain text). Хотя и здесь тоже все зависит от алгоритма, насколько я понимаю.
Всё равно. Хороший симметричный шифр устойчив к атакам по открытому тексту (когда Еве известно и сообщение, и соответствующий шифротекст, надо найти ключ). И даже к атакам по произвольному открытому тексту (у Евы есть возможность самой придумать сообщение, пропустить через шифратор и посмотреть, что на выходе).
Примеры — AES, Twofish, Serpent.
Именно что хороший алгоритм, а не самый простой. А так называемый хороший основан на том же простом алгоритме, который применяется таким образом чтобы противостоять атаке. Посмотреть в множество алгоритмов, в основе увидим всё тот же XOR…
Если ключ не короче сообщения и не повторяется, то XOR вообще абсолютно стойкий. Добавить генератор длинной непредсказуемой гаммы — и получится отличный шифр.
А тот же AES не основан на XOR. Точнее, основан, но не в большей степени, чем на сложении, битовом сдвиге и остальной арифметике.
Добавить генератор длинной непредсказуемой гаммы — и получится отличный шифр.

К сожалению нет, не отличный. При отсутствии дополнительной защиты вроде MAC при атаке MItM атакующий может манипулировать отдельными битами сообщения по своему выбору, даже не зная их. Т.е. изменение одного бита шифртекста приводит к такому же точно изменению того же самого бита в расшифрованном тексте.
Задача шифратора — предотвращение несанкционированного доступа к семантике и не более того, контроль целостности сообщения, защищенный обмен ключами и т.д. к шифратору не относятся.
Это примеры использования симметричных алгоритмов шифрования. Если посмотреть те же алгоритмы DES то это пример использования симметричного алгоритма в целях противостоять определённым атакам, в частности атаке на подбор ключа по известному открытому тексту и статистическому методу. В основном это многократное применение более простых симметричных алгоритмов. Сам DES это алгоритм использования метода симметричного шифрования XOR так чтобы избежать многих атак на алгоритм шифрования. Это скорей метод использования алгоритма простого шифрования.
Да, криптостойкость большинства современных симметричных алгоритмов шифрования основана на многораундовости (AES, KASUMI), но утверждение о низкой криптостойкости таких алгоритмов в общем случае неверное. Криптостойкость того же AES-128 на текущий момент оценивается в 2^126,5, была опубликована работа кого-то из авторов RSA о возможности взлома KASUMI (используется в 2G и 3G) при наличии нескольких гигабайт открытого текста, но о практической реализации такой атаки я ничего не слышал.

Атака на основе открытых текстов. Даже старый DES прекрасно ей противостоит, требую 2 в 47 степени пар открытый текст/шифротекст для эффективной атаки. Что более чем много, и в нормальных условиях атака невозможна. Не говоря уже о более новых шифрах типа AES.

Не вводите людей в заблуждение. Не спорю, что какой-нибудь плохой симметричный шифр может быть подвержен описанной вами атаке (кстати она называется Known-plaintext attack), но все современные симметричные шифры (как минимум финалисты конкурса AES) обязаны быть стойкими к следующим основным типам атак:

1. Атака на основе шифротекста
2. Атака на основе известного открытого текста
3. Атака на основе подобранного открытого текста
4. Атака на основе адаптивно подобранного открытого текста

А у вас в функции decryptMessage объявляется decMessage, а возвращается encMessage...

Аналогия с сейфом применима


  1. "Болгарки" пока ни у кого нет.
  2. Схемы сейфов исследуются специалистами на наличие лазеек.
Спорно. Любой обыватель знает, что сейфы вскрываются отмычками, стетоскопом, мастер-ключами, болгарками и динамитом. Не советую использовать аналогию с сейфом в маркетинговых целях, если вы не выставляете свои конкурентным преимуществом наличие мастер-ключа, которым можно открыть сейф, если клиентский ключ утрачен.
Спасибо за доступный и наглядный язык изложения материала. Жду продолжения.
Интересное начало статей. Хорошо бы в данной статье добавить некое оглавление на следующие статьи.
Плюсанул, но на мой взгляд статья слабовата. По этому поводу написано множество хороших книг, да и на Хабре аналогичных материалов предостаточно. Но посмотрим, что будет дальше.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории