количество циклов шифрования

Тема в разделе "WASM.BEGINNERS", создана пользователем newhere, 27 янв 2009.

  1. newhere

    newhere New Member

    Публикаций:
    0
    Регистрация:
    22 янв 2009
    Сообщения:
    2
    Встречал в некоторых программах такую опцию при шифровании, например как: пароль шифруется несколько раз до получения окончательного ключа шифрования. Это затрудняет использование оценочных атак и атак по словарю. И пользователем указывается количество циклов шифрования.

    Как это работает? Я так и не смог додуматься. Я чисто из своего любопытства пытаюсь это понять, фундаментальные книги читать пока нет времени.
     
  2. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Для преобразования пароля в ключ применяются хеш функции. В простейшем случае на входе пароль на выходе - хеш значение, которые используется в качестве ключа. Можно к этому значению еще раз прменит хеш функцию и т.д. При этом при расшифровке (подборе) к каждому паролю необходимо столько же раз применить хеш функцию, чтобы получить ключ, что резко замедляет скорость перебора. На практике, в хеш функциях есть количество итераций, которое и увеличивается до нужного значения.
     
  3. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    вообще кроме этого в некоторых алгоритмах, чем больше итераций произошло, тем больше зашифрованное сообщение похоже на последовательность равновероятных бит...
     
  4. Forever

    Forever Виталий

    Публикаций:
    0
    Регистрация:
    12 апр 2008
    Сообщения:
    244
    Одна из причин, почему осуществляют преобразование пароля в ключ состоит в следующем :
    Большая часть алгоритмов шифрования требуют ключи фиксированного размера ( 64, 128, 256, 513, ... бит ). Пароль же, как правило представляет собой обычную строку вроде k93eKJ-d=a. Если преобразование не производить, то перебор заметно сокращается, т.к. значительная часть ключа будет содержать нули. Поэтому применяется хэш-функция к паролю, для получения ключа. Применяют несколько раз, по причине, уже сказанной выше. Это увеличивает стойкость ключа и увеличивает время перебора.
     
  5. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Forever
    Поправлю, увеличивает не стойкость ключа (размер ключа постоянный), а стойкость коротких(слабых) паролей к перебору.
     
  6. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
  7. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    stellaco
    Найди книгу Шнайера "Практическая криптография" и почитай на досуге.
    Все, что ты написал - полный бред...
     
  8. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    K10
    Когдато читал... погляжу..может и вправду..с памятью моей что-то стало
     
  9. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    K10
    Как я и думал ).с памятью у меня..всё в порядке...
    Книга, Венбо Мао "современная криптография".......... почитай...
     
  10. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    зачем так сложно?

    у тебя пароль
    x = "dog";

    есть функция шифрования

    y = f(x) = sin(x[0])*100 % 10 + sin(x[1]) *100 % 100 + sin[x[2]] * 100 % 10;

    вот несколько циклов и есть

    y' = f(f(f(x)))

    в базе хранишь это y'

    если юзер введет свое значение x' сравшнишь f(f(f(x'))) со своим хэшем. причем админ пароля не знает. все честно.
    это даже не шифрование а хэширование. одностороннее, необратимое... хотя это еще вопрос.

    ===
    все. ты прочитал все свои книги)))
     
  11. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    ltshck
    Немного дополню, опять по своей памяти.
    y = f(x) и y' = f(f(f(x))) приводятся потому, что..чтоб стойкость шифра увеличить в 2 раза, надо функцию шифрования использовать не 2 а три раза =)

    Угу.. теоритически можно найти коллизию.
    тоесть, если у вас пароль
    "Мой пароль" в хешированном виде = "gfmj616919fnm19sf1h"
    то есть вероятность, то что, какоето слово... наподобии "Зелибоба" в хешированном виде будет тоже равно "gfmj616919fnm19sf1h"
    или слово "df54gh5sdfh6" в хеше равно "gfmj616919fnm19sf1h"

    Тоесть, в таком случаи, любые из этих трёх паролей будут верными. (так как хеши,всегда сверяются после шифрования, с эталонным паролем (записанным куда либо..например в БД))

    Админ легко может узнать пароль, если перехватчик поставит, и получит пароль до начала шифрования).. а вообще если доступна большая база с хешированными паролями. То можно легко применить простой перебор. И будет расшифрованно куча паролей. (парадокс дней рождений)
     
  12. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Парадо́кс дней рожде́ния — утверждение, что если дана группа из 23 или более человек, то вероятность того, что хотя бы у двух из них дни рождения (число и месяц) совпадут, превышает 50 %. Для группы из 60 или более человек вероятность совпадения дней рождения хотя бы у двух её членов составляет более 99 %, хотя 100 % она достигает, только когда в группе не менее 366 человек (с учётом високосных лет — 367).

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

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    stellaco
    Тема об увеличении количества итераций при разворачивании пароля. Если у тебя пароли будут проверяться со скоростью несколько паролей в секунду, то посчитай, насколько
     
  14. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    RAR-архив простым перебором со скорость примерно 30 паролей в секунду я взламывал примерно за полторы недели... за это время дошло до 6тизначного пароля... хеш-функцию нормальную тоже подобрать сложно... перебор - самая бредовая атака на пароль, надо дыры в математике алгоритма искать, чтобы его грамотно сломать))))

    а про парадокс дней рождений правильно сказал, что разница в восприятии... в реальной жизни нет ничего идеального, редко встретишь монету с распределением близким 50 на 50)))... а про игральные кости я ваще молчу))))
     
  15. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    Господи...тут кажется никто не понял что я имел ввиду.

    И про парадокс дней рождений.я говорил не про восприятие).. хотя нет..можно сейчас именно на это и обратить Ваше внимание..
    То как говорит K10..вот пример именно такого..восприятия)))...где кажется что-то ООЧЕНЬ трудным..а на самом деле...это проще в тысячи и больше раз ....... математика знаете ли...
     
  16. stellaco

    stellaco New Member

    Публикаций:
    0
    Регистрация:
    11 дек 2008
    Сообщения:
    193
    K10
    Так как не расписываю, что именно имею ввиду...
    произнесу наводящую информацию.

    Алгоритм шифрования известен.... что мешает записать чему равны пароли в хешированном виде от 1 - 9999999999999 .. а затем, ..просто сравнить эти хеши с другими хешами из базы данных........ ..
    шифровать каждый раз пароль?...вы что? больны? )))
     
  17. ltshck

    ltshck New Member

    Публикаций:
    0
    Регистрация:
    5 ноя 2007
    Сообщения:
    195
    группа из 23 человек? 50%?

    а разве надо не 356/2 = 178+1 человек чтобы было 50?

    если у каждого из них д.р. по номеру дня то для заполнения половины надо 178 и еще 1 который либо за пол года перевалит либо нет. и будет решаться не совпадение дней рождений. а в каком полугодии родился последний...

    итого 179 а не 23? я не прав?
     
  18. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    stellaco
    Я ведь не зря советовал тебе почитать основы криптографии...

    То, что ты описал есть rainbow таблицы. Похеривается такой способ элементарно использованием salt значений.
     
  19. Rel

    Rel Well-Known Member

    Публикаций:
    2
    Регистрация:
    11 дек 2008
    Сообщения:
    5.317
    в этом и заключается парадокс...

    блин... это тоже самое, что и атака грубой силой... тупо взять и подобрать все значения хеш-функции... не один алгоритм не выдержит атаку грубой силой (ну кроме того, о чем Ден Браун писал, однако это - фантастика), вопрос лишь в том, хватит ли ресурсов, чтобы перебрать все хеш-значения в удобоваримое время... поэтому я тебе про брутфорс раровского архива и писал...

    это кстати один из способов противодействия подобным атакам... однако, если все алгоритмы преобразования известны, он не спасает...
     
  20. K10

    K10 New Member

    Публикаций:
    0
    Регистрация:
    3 окт 2008
    Сообщения:
    1.590
    Rel
    Тоже почитай про радужные таблицы и salt. При некоторой длине salt, выгоднее окажется полный перебор ключа шифрования, к этому и требуется все свести, т.к. многократное хеширование пароля в процессе разворачивания направлено на повышение стойкости слабых(легкоподбираемых) паролей.