|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Камрады привет. С пятницей.
... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2019, 17:10 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Update. Поисковые сети нам сообщают примерчик. Код: sql 1. 2.
Цепочка хешей и редукций Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 20:33 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Если внутри другой chain, появляется pwd=nus, то цепочка частично повторяется. Код: sql 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 23:28 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Если одну функцию редукции R заменить на набор различных функций R1,R2,R3... то коллизий в цепочках не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.12.2019, 23:31 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Кроме статей Филиппа Ошлина - практически ничего нет. Видео-материалы по теме на 99% состоят либо из практического руководства по установке или использованию rt-gen, либо из докладов Индусов которые рисуют корявые картинки на тему самих основ. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2019, 22:09 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
С английским у меня не очень, поэтому сначала опишу как я понял принцип работы. Подготовка 1. Выстраивается цепочка N пар Ключ-Шифр, типа Код: sql 1.
где Шифр1 это какой-то постоянный текст зашифрованный с помощью Ключ1 Ключ2 генерируется из Шифр1 алгоритмом редукции. 2. Заполнение таблицы. Генерим цепочку для каждого значения ключа и если внутри цепочки ни один Шифр i не присутствует в таблице, то пара {Ключ1, ШифрN} добавляются в таблицу. Таким образом происходит сжатие таблицы всех возможных пар {Ключ, Шифр} в N раз, где N длина цепочки. Использование : берем какой-то ШифрХ и гоним его по цепочке пока не получим известный нам ШифрN из таблицы. Затем берем Ключ1 и по цепочке получаем КлючХ Выводы Как я понимаю задача функции редукции генерация Ключ i+1 из Шифр i . Т.е. функция редукции может делать что угодно, например посчитать хэш/CRC/AES/XOR и привести к требуемому алфавиту ключа. Основное требование к функции это сгенерить как можно меньше зацикленных и вырождающихся (уходящих в другую) цепочек, т.е. в идеале из каждого уникального Шифр i должен получаться уникальный Ключ i+1 . Ну и желательно чтобы функция побыстрее работала, т.к. цепочки достаточно длинные. Я так понимаю автор проблему зацикливания решить не смог, поэтому обошел ее применив две разные функции, надеясь что для каждого конкретного значения шифра найдется цепочка хотя бы в одной таблице. Приведение к алфавиту ключа не проблема. Легко решается по аналогии с переводом из одной системы счисления в другую. Например Base64. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 08:29 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Dima T, да все норм у тебя с английским. Тут вопрос не в языке а в способности оценить рациональное зерно. Щас пригоню следующий вопрос. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 15:22 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Вот допустим у меня есть следующая (не радужная) табличка Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
И я хочу применить данный метод. Слева - ключ (12 символов). Справа дайджест типа SHA1. Почему SHA1? Потому-что он мне нужен. Он - меня интересует. Далее я хочу сформировать функцию редукции с учотом алфавита. Альфа-нумерик + верхний и нижний кейс. Возьму Base64. Она - подходит. 12 символов кратно 3 и 4 тоесть отображается на base64 идеально без padding. И дальше ... - меня терзают смутные сомнения. Что-то здесь не то в моих рассуждениях. Ключи это все 12-символьные слова которые я взял из нашего 1.2млрд текстового файлика который использовался в топиках толстой сортировки. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 17:01 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Литература по теме. (Имена файлов - не оригинальные. Я переименовывал для своего удобства. Но легко гуглятся.) Cryptoanalytic.Time-Memory.Tradeoff.for.Password.Hashing.Schemes.pdf Making.a.Faster.Cryptoanalytic.Time-Memory.Trade-Off.pdf Rainbow.Tables.explained.pdf Reducing.Time.Complexity.in.RFID.Systems.pdf Time-Memory.Trade-Offs.False.Alarm.Detection.Using.Checkpoints.pdf ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 17:24 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Твоя задача не решается этим методом. 64^12 примерно 10^21 паролей. Прикинь сколько времени уйдет на полный перебор для построения таблицы. PS Пишу с телефона, подробности позже ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 18:56 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Вот такая вот туфта получается. Ну и где тут экономия? Какой болт мне с таких редукций? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Пока я только проиграл в размере. Я так понимаю что самый правый редукт (в последней колонке) должен оказать мне помощь в поиске keys? Но как? На вход поступает к примеру хешик UDCBFxAlGMhxyEkXga5mY6HUZ/LF0VWcrpuK8K6Lazs=. Что дальше? Какова логика поиска? Кому интересно поломать дальше - вот сорц. Вобщем в топик призываются все криптуны, математики, маги и колдуны и прочие книжники и фарисеи. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 19:01 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Ага. Сам допёр. Тоесть если их так расписать. И потом развернуть левое и правое и проиндексировать. Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Тогда подсвеченное - и будет искомой строкой. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 19:13 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
А с этим как быть? Код: sql 1.
Маги и колдуны. Помогайте. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 19:14 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Этот инструмент тут не подходит. Это алгоритм ускорения массового подбора паролей. Тут это запрещено обсуждать, но тема тупиковая, поэтому продолжим. Этот алгоритм оптимизирует подбор конкретного пароля, у автора ускорилось в 7 раз по сравнению с тупым перебором, но перебор не исчез, просто перебор происходит заранее, но в более тяжелой форме для построения таблицы цепочек 22046586 , т.е. польза будет если только массово подбирать, получить один пароль перебором будет быстрее. У тебя 10 21 вариантов паролей, лень считать точно, но прикинув на глаз могу сказать что построение таблицы может занять годы, а может и десятилетия, может еще больше... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 20:57 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Я не хочу обсуждать такие темы как перебор паролей. Поэтому в дальнейшем я буду использовать такие термины как ключ. И хеш. И применение я искал не в атаках на несчастных владельцев Windows а для других задач. Хотя-бы для подписывания блоков блокчейна. Как вариант. Да. Вот тема топика. Оптимизация подписывания блокчейна. За это и буду топить. А таблицы эти уже построены. Проект называется http://project-rainbowcrack.com/ Поэтому к той теме я ничего нового не добавлю. Просто сижу. Разбираюсь. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:04 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
mayton Я не хочу обсуждать такие темы как перебор паролей. Зачем тогда ее поднял? Ничего криминального тут нет, раз все обсуждают, то почему нам не обсудить? Эта тема старье и об этом давно всем известно, в т.ч. тебе, т.к. ты не спроста сделал 12 символов в пароле. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:19 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Ну. Дык. Где рациональное зерно? Радужка оптимизирует хранение за счет более медленного доступа. По сути это торговля. Мы продаем диск. Но покупаем CPU. Вместо верчения циклом - итеративный поиск по дисковому файлу. Я так перевожу себе trace-off. Как сделка. Обмен. Торг. А где в моём случае сделка? Редукция? Да работает. А как двигаться по чейну справа налево? Я не знаю. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:29 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
mayton Ну. Дык. Где рациональное зерно? Нет его тут, совсем. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:31 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
mayton, подробнее свою задачу опиши, может я вижу совсем не то что тебе надо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:34 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Представь что я ищу ключ по SHA1. Обратная операция по отношению к хешированию. Код: sql 1. 2. 3. 4. 5. 6. 7. 8.
По сути мне надо найти любую символьную последовательность которая удовлетворяет первому хешу ad52bb899f98da83ad1a5ddd6eeae1f210757c1ef27df945f4d264ed29b9f3cd. Не обязательно она должна быть ключом Ondertrouwd8. Это может быть любая другая последовательность. Не суть. Я хочу сэкономить. Я не хочу вращать циклы. Я заранее знаю формулу которая порождает ключи. Например ключи - это всегда даты 2015-01-01. Или некие комбинации даты и суммы. Я хочу выиграть время. Я хочу находить ключ менее чем за 10 минут. Большее время - я потерял деньги. Уложился в 9 минут - заработал. Я могу использовать железо на базе видеокарт. Но я ищу альтернативные векторы развития. Зачем вкладываться только в вычислительные модули? Когда есть модули хранения которые дешевы и их много. И есть принцип memory trade-off о котором так долго пишет несчастный французик. Впрочем всё это поток моего сознания. Можете критиковать. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2019, 21:49 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
И функции редукции у меня неправильные. Одинаковые. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 00:21 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
mayton Я заранее знаю формулу которая порождает ключи. Например ключи - это всегда даты 2015-01-01. Или некие комбинации даты и суммы. Ключ должен быть (псевдо)случайным "и здесь нет темы для обсуждения". Как надёжно зашифровать ключ на коротком пароле - отдельная тема. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 07:02 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
mayton По сути мне надо найти любую символьную последовательность которая удовлетворяет первому хешу ad52bb899f98da83ad1a5ddd6eeae1f210757c1ef27df945f4d264ed29b9f3cd. Не обязательно она должна быть ключом Ondertrouwd8. Это может быть любая другая последовательность. Не суть. Я хочу сэкономить. Я не хочу вращать циклы. Я заранее знаю формулу которая порождает ключи. Например ключи - это всегда даты 2015-01-01. Или некие комбинации даты и суммы. Тут ты сам себе противоречишь. Или у тебя хэш от 12 символов любых буквоцифр или дата. В первом случае 64^12 вариантов, во втором 737 300 (365*2020). Второй элементарно перебирается без всяких оптимизаций. mayton Я заранее знаю формулу которая порождает ключи. Если ее знаешь, то хэш обратим и проблемы нет, взял и посчитал по формуле, получил ключ. Тут используется формула генерации какого-то ключа из хэша, т.е. ключ не от этого хэша, а просто какой-то ключ удовлетворяющий требованиям к ключу. mayton Я хочу выиграть время. Я хочу находить ключ менее чем за 10 минут. Большее время - я потерял деньги. Уложился в 9 минут - заработал. Считаем: Размер одной записи таблицы 9 (ключ) + 32 (хэш) = 43 байта Допустим таблица 4.3 Тб (4.3*10 12 ), т.е. 10 11 записей Всего у тебя 4.7*10 21 (64 12 ) вариантов ключа, следовательно в одной записи цепочка из 4.7*10 10 пар {ключ, хэш} Для получения ключа по хэшу требуется пройти всю цепочку (движение возможно только слева направо, а надо сделать шаг назад), поэтому прикидываем минимальную скорость: 4.7*10 10 / 600 сек. = 78 млн. раз в секунду делать редукцию и считать хэш. Плюс по-началу еще надо каждый хэш искать в таблице пока не найдем. В принципе скорость 7.8*10 7 вполне достижимая, т.е. можно получить ключ менее чем за 10 минут, но давай прикинем время построения таблицы с такой же скоростью. Допустим мы изобрели супер оптимальный алгоритм когда хэш каждого ключа считается однократно: 4.7*10 21 / 7.8*10 7 = 6*10 13 секунд = 694.4 млн дней = 1.9 млн лет. И это идеальный алгоритм, реальный будет намного хуже, т.к. потребует повторных рассчетов, кроме того при распараллеливании Закон Амдала сработает. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 08:56 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Нужен перерыв. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 09:07 |
|
Тяпничный криптунЪ и редукция
|
|||
---|---|---|---|
#18+
Пока надо отъехать назад. Короткий брейншторм. Alpha-num - множество символов латиницы + цифры. 26 + 26 + 10 = 62 Пишу на псевдо-языке. Код: sql 1. 2. 3.
Я получил файл ключей ранжированных по хешу. И возможность вести поиск любого ключа или доказать что в базе нет ключа соотвевтвующего данному хешу. Длина файла: Код: sql 1.
52 Гигабайта сортированных по хешу ключей. Грубо говоря за 36 итераций дихотомического поиска я в этом файле нахожу любой ключ либо доказываю что его нет. Теперь - размер. Для 6 символьных ключей - да. Еще можно понять. Но для 12 символьных размер этого файла получается неподъемным. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.12.2019, 11:09 |
|
|
start [/forum/topic.php?fid=16&msg=39907347&tid=1339856]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
37ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
1ms |
others: | 237ms |
total: | 389ms |
0 / 0 |