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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
Ерунда! 24.03.03 18:26  Число просмотров: 2708
Автор: Persicum Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А ты не задумывался, почему дажее к самым дорогим и фирменным
прогам пишут кейгены?
Там хешируются имена, а толку что?
От кейгенов спасает только Асимм_Хеш(Обычный_Хеш(Имя))).
<theory>
Характеристики Хэша 21.03.03 18:19  
Автор: ZLynxZ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Здравствуйте!
У меня есть вопрос скорее к криптоаналитикам чем к криптографам. Проблемма в следующем: Я придумал и реализовал алгоритм хэширования паролей. По моим испытаниям рассеивание не плохое, но я хотел бы посоветоваться с профессионалами. Как мне можно узнать характеристики данной функции и насколько она годиться для использования в системах безопасности?
Алгоритм могу дать. Реализован на Ассемблере.
Заранее спасибо.
Характеристики Хэша 24.03.03 19:05  
Автор: ZLynxZ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Алгоритм буду описывать на псевдокоде, как в "Основах современной криптографии".
Алгоритм заключается в следущем: Пусть есть пароль длины n символов и его привязка из 4-х символов (идею привязки cgbplbk из Unix).
---------------------------------
P[] - буфер пароля
A, B - имеют размерность 32 бита
c - размерность 8 бит

A = B = Привязка

For i = 1 to n {
A = A xor P[i]
B = ((B + A) mod 2^32) <<< 1
c = P[n-i+1] and 00011111b
A = A >>> c
}

Выход = A xor B
---------------------------------
Ну там потом ещё декодиг хэша должен идти, типа чтобы он состоял из одних букв, но на криптостойкость это не влияет... Поэтому не загружаю форум ;)))
Мда, на Асме она больше выглядит... Ну да ладно... Подскажите что с ней ещё можно сделать, что бы повысить время вычисления, и необратимость...
Заранее всем спасибо.
а ты его в лоб пробовал? 25.03.03 08:23  
Автор: cybervlad <cybervlad> Статус: Elderman
<"чистая" ссылка>
> Подскажите что с ней ещё можно сделать, что бы повысить
> время вычисления, и необратимость...
ну, необратим он по определению - если пароль 8 символов, то из 32 бит ты его не восстановишь в общем случае.
насчет сложности. в свое время, в процессе изучения системы аутентификации netware, меня очень заинтересовала возможность подбора пароля по данным handshake. пароль там сначала хешируется (размер хеша - 128 бит, 16 байт то есть), причем алгоритм "немноожко" потяжелее, чем у тебя. тем не менее, лобовая атака (bruteforce) до определенного предела имеет смысл.
результат здесь:
http://cybervlad.port5.com/nwpass/netware.pdf (полный вариант)
http://cybervlad.port5.com/nwpass/index.html (журнальный вариант)

также рекомендую посмотреть проект Pandora на www.nmrc.org, там есть подбиралка пароля под нетваревый хеш в стиле John the Ripper.
Характеристики Хэша. дык отож 25.03.03 03:35  
Автор: andrew Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Алгоритм буду описывать на псевдокоде, как в "Основах
> современной криптографии".
> Алгоритм заключается в следущем: Пусть есть пароль длины n
> символов и его привязка из 4-х символов (идею привязки
> cgbplbk из Unix).
увы, не в курсе, что за зверь, но вообще не важно, если оно однократное...
> ---------------------------------
> P[] - буфер пароля
> A, B - имеют размерность 32 бита
навскидку - мало. сейчас хэш - минимум 128, есть и 160, а в ГОСТе 256 бит
> c - размерность 8 бит
>
> A = B = Привязка
>
> For i = 1 to n {
> A = A xor P[i]
ах, не однократное! то тут тонкость, мне не очень понятная...
> B = ((B + A) mod 2^32) <<< 1
младший бит = нулю
> c = P[n-i+1] and 00011111b
а тут 3 старших
> A = A >>> c
если это не циклический сдвиг, то
> }
>
> Выход = A xor B
можно предсказать 4 бита из 32 на предыдущем цикле, 2^28 бит/2^4 еще на предыдущем, итого за 8 циклов можно подобрать нужный хэш -требуется "аппендикс" в 24 байта.
стоимость перебора (2^4*2^32*2^3)/2= 2^38. даже не разговор. можно еще понизить на порядки (двоичные) за счет таблицы, но потребуется память и предвычисления. аналог алгоритма голича - балансировка "время-память".

> ---------------------------------
> Ну там потом ещё декодиг хэша должен идти, типа чтобы он
> состоял из одних букв, но на криптостойкость это не
> влияет... Поэтому не загружаю форум ;)))
а и верно...
> Мда, на Асме она больше выглядит... Ну да ладно...
дык он и помладше псевдокода будет, петька (почти анекдот 8-))

> Подскажите что с ней ещё можно сделать, что бы повысить
> время вычисления, и необратимость...
повысить время? вставь с десяток пустых циклов... 8-))
а по делу - дык шеннон давно все сказал - берем туеву хучу тривиальных функций (подстановка и перемешивание) и пользуем их, бедолаг, совместно (есть такое слово - суперпозиция)

у тебя направление мысли верное, но биты предыдущего цикла не "размазываются" на весь массив хэша, а это @#$ово. я бы на твоем месте издевался над двумерным МАССИВОМ хэша типа 8х8 (примерно как сделано в АЕС) - в четных циклах над строками, а внечетных над столбцами. всего 2 доп. указателя, а как хреново становится жить аналитику 8-). на последнем цикле "свертывал" этот массив по медиане (ну или главной диагонали) для пущей вредности 8-))

заходи на ru.crypt там таких добрых много
8-))

а еще почитай ЧаВО - последовательно заходи, ручками, а то прямая ссылка сваливается почему-то:
ftp://ftp.wtc-ural.ru/
pub/
ru.crypto/
faq/
rucrypt.faq
32 бита очень мало 24.03.03 20:20  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 24.03.03 20:23  Количество правок: 1
<"чистая" ссылка>
Выход в 32 бита очень мал для хеширования пароля. Нужно как минимум 64.

Кроме этого, очень легко вычислить/подобрать некоторый пароль, который даст заданный хэш. Можно просто перебором (атакой в лоб), а если немного подумать то еще быстрее...

Чтобы получить более-менее приемлемые параметры, нужно дополнительно задействовать mul, и сдедать не менее 5 "больших" циклов.

Например так:
A = B = xxx
for i = 0 to 8 
{
    for j = 0 to n - 1
    {
        A = A xor P[j] + B
        B = (A * B + j) <<< 5
        A = A >>> P[n-j]
    }
}
Выход = (A << 32) + B

---
Удачи.
Ну давай :-) 21.03.03 18:41  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 21.03.03 18:43  Количество правок: 1
<"чистая" ссылка>
Ну давай :-)
Не обижайся, но думаю за час-два анализа мы твой алгоритм "угробим"...
Чем он лучше чем RIPEMD-128/160, SHA-1, HAVAL или MD5 ?

P.S.
Советую ознакомиться http://citeseer.nj.nec.com/408835.html
не говори гоп... 22.03.03 00:50  
Автор: RElf <M> Статус: Member
<"чистая" ссылка>
> Ну давай :-)
> Не обижайся, но думаю за час-два анализа мы твой алгоритм
> "угробим"...

Откуда такая уверенность?

> Чем он лучше чем RIPEMD-128/160, SHA-1, HAVAL или MD5 ?

Может быть и ничем. Но легко придумать алгоритм, отличный от известных, который потребует куда больше чем "час-два анализа", а то и будет ничуть не хуже перечисленных.
Создан именно для паролей 22.03.03 11:31  
Автор: ZLyxZ Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Я создал этот алгоритм для хэширования паролей... И мне хотелось бы только узнать его характеристики и предложения по улучшению... Если вы возьмётесь за его испытание, то оставьте свой Е-Майл и я пришлю вам саму реализацию и заодно програмку для проверки... Спасибо.
Создан именно для паролей 24.03.03 11:32  
Автор: andrew Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> Я создал этот алгоритм для хэширования паролей... И мне
> хотелось бы только узнать его характеристики и предложения
> по улучшению... Если вы возьмётесь за его испытание, то
> оставьте свой Е-Майл и я пришлю вам саму реализацию и
> заодно програмку для проверки... Спасибо.
а зачем реализация? я может и ассемблера то не знаю 8-))
опубликуй алгоритм, тогда будет предмет для обсуждения, а сейчас это сотрясение воздуха
Ерунда! 24.03.03 18:26  
Автор: Persicum Статус: Незарегистрированный пользователь
<"чистая" ссылка>
А ты не задумывался, почему дажее к самым дорогим и фирменным
прогам пишут кейгены?
Там хешируются имена, а толку что?
От кейгенов спасает только Асимм_Хеш(Обычный_Хеш(Имя))).
Ерунда! разумеется, бред! 25.03.03 03:01  
Автор: andrew Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> А ты не задумывался, почему дажее к самым дорогим и
> фирменным
> прогам пишут кейгены?
задумывался. видимо денег зарабатывают. нет?
> Там хешируются имена, а толку что?
> От кейгенов спасает только Асимм_Хеш(Обычный_Хеш(Имя))).
я стесняюсь спросить, это ко мне вопрос?
тогда попрошу уточнений, что такое "обычный хэш"? "ассиметричный хэш (видимо ЭЦП или ассим. алгоритм в режиме ГСЧ)?
и наконец - вопрос победителю: что есть сильный и слабый MDC ?
причем, цинично замечу, что в схеме (просто сильный хэш, определяющий искажения) мне никто не помешает заранее рассовать значение хэша по всем Инетовским заборам и даже написать "в общественном парижском туалете". и чем это отличается от распространения "открытого ключа" в предложенной мне схеме?
при использовании СИЛЬНОГО хэша, потребуется очень нехилый математик, класса - кочера, заломавшего pkzip за 2^38, против 2^96, заложенных в алгоритме...
позволю себе еще и последнее - когда я писал свое письмо, то исходил из закона керкхоффа, а не из "security by ostrich".
1




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


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