информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsГде водятся OGRыSpanning Tree Protocol: недокументированное применение
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / theory
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Я не понял про 108 бит. Это что уязвимость MD5? Тогда можно... 11.01.07 11:37  Число просмотров: 5183
Автор: Maksim Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > > Чтобы дешифровать достаточно известных первых 16
> байт
> > > текста и получения прообраза 108 битов для MD5 на
> 108
> > > битах(Пароль нам не нужен, достаточны найти хэш
> от
> > него).
> > > Увеличение длины блоков даст прирост в стойкости,
> но
> > тогда
> > > ты еще больше отстанешь по скорости.
> Ты поспорь с тем, что сказано выше, про твои хэши я все
> понял, ты внимательно текст прочитай.
Я не понял про 108 бит. Это что уязвимость MD5? Тогда можно использовать SHA-1. Алгоритм от этого не меняется. Знание первых 16 байт ничего не дает. т.е. не помогает при расшифровке следующего блока данных. Можно подробнее про 108 бит, если можно, то ссылку.
Пример:
key=значение;
delta=первоначальное значение;
EncData[0]=Data[0] ^ Hash(key+delta); // первый блок
delta=Data[0];
EncData[1]=Data[1] ^ Hash(key+delta); // второй блок
delta=Data[1];
Т.е. даже зная EncData[0], Data[0], delta, Hash(key+delta) и EncData[1] как найти Data[1] или Hash(key+delta) или key ?
Математической формулы нет. Если только уязвимость конкретной хеш-функции.

> А ты спроси у кого-нибудь, кто дизассемблировал наваянное
> на vc++ c шаблонами и прочим ооп. Оптимизация компилятора
> все это неплохо убивает.
Я прекрасно знаю, как раскрываются шаблоны. Вот простой пример:
vector<int> a;
a.resize(16);
for(int i=0; i<a.size(); i++) a[i]=~a[i];
В этом примере в выражении a[i]=~a[i] при каждой итерации происходит проверка значения индекса i на допустимость диапазона (реализовано в самом шаблоне vector), хотя она здесь явно не нужна. И в шаблонах таких проверок очень много. С одной стороны, это копейки, но когда это все находится в цикле на несколько милльонов итераций - это тоже сказывается на производительности. Плюс в программе есть места простого копирования блоков памяти, без которого тоже можно обойтись. На мой взгляд имеет смысл оптимизировать, пока загрузка процессора станет ниже скорости чтения данных с винчестера. Вот тогда будет действительно хорошая скорость.
<theory> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach