eXeL@B —› Программирование —› Помогите с брутом. |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 07 декабря 2011 00:42 · Личное сообщение · #1 Приветствую форумчане! Столкнулся со следующей проблемой: Пытаюсь сгенить ключ "подписанный" 48-битной константой. Берется 12 бит от хвида и эти 48 бит константы, далее 64-битный буфер (4 бита - нули) шифруется константой, а затем полученным значением 32 раза шифруются начальные данные. Одному индексу соответствует один 64-битный хэш в таблице. Всего хэшей в таблице 4096 и для каждого нужно сбрутить свою 48-битную константу. Проблема в том, что брут занимает очень много времени. Сам я в оптимизации не силен, сократил операции до минимума и развернул циклы. Огромная просьба взглянуть на алго и помочь с оптимизацией или, если будет толк, переводом на CUDA. Code:
|
|
Создано: 07 декабря 2011 07:00 · Поправил: PE_Kill · Личное сообщение · #2 Убрал лишние ROT'ы: Code:
Кстати, можно же сделать распределенный брут. Каждый возьмет себе по несколько хешей, да сбрутит. PS Еще немного оптимизировал CreateKeyBody ----- Yann Tiersen best and do not fuck |
|
Создано: 07 декабря 2011 07:51 · Личное сообщение · #3 PE_Kill пишет: Убрал лишние ROT'ы Code:
Code:
Я как один раз так жестоко на%бался. При этой операции младшее слово не должно изменятся, твой вариант влияет на di. Code:
разве push\pop быстрее нескольких rol? Может тогда для счетчика переменную на стэке завести и обращаться через esp? PE_Kill пишет: Кстати, можно же сделать распределенный брут. Каждый возьмет себе по несколько хешей, да сбрутит. Было бы, конечно, хорошо, но мне бы не хотелось кого то уж сильно напрягать... Если кто то все же согласен помочь, прикрепляю таблицу хэшей. Я бручу в два потока с 8000000000000000 в сторону понижения и повышения. В сторону повышения сейчас 8000000C3E90277E, понижения - 7FFFFFF380963411. Это за ночь сбрутило. Как видно, скорость не ахти b55c_07.12.2011_EXELAB.rU.tgz - Dump_00415118_00010000.bin |
|
Создано: 07 декабря 2011 08:39 · Личное сообщение · #4 |
|
Создано: 07 декабря 2011 09:01 · Поправил: PE_Kill · Личное сообщение · #5 Olenevod пишет: разве push\pop быстрее нескольких rol? Может тогда для счетчика переменную на стэке завести и обращаться через esp? Я проверил -> быстрее. Там же не несколько rot, а цикл из 3 итераций в цикле из 32 итераций. Olenevod пишет: Я как один раз так жестоко на%бался. При этой операции младшее слово не должно изменятся, твой вариант влияет на di. Гмм, при каких обстоятельствах? Младшие биты нули, а переполнение старших бит уходит в процессорные флаги. ЗЫ. А что и ключи и данные инициализируются одним и тем же значением? ----- Yann Tiersen best and do not fuck |
|
Создано: 07 декабря 2011 11:29 · Личное сообщение · #6 |
|
Создано: 07 декабря 2011 14:35 · Личное сообщение · #7 |
|
Создано: 07 декабря 2011 16:11 · Личное сообщение · #8 |
|
Создано: 07 декабря 2011 16:34 · Личное сообщение · #9 V0ldemAr чего бы? ГПСЧ нет, перестановок нет, и прочего тоже нет. Насчет брута толпой. Если будет нормальный софт, где не надо юзать отладчик или компилятор, а просто в ини файле задал параметры, запустил, потом забрал результирующий файл, то могу подключить ~60-~80 квадров. Ну на софт тогда еще и ложится определение числа процов и распараллеливание на ядра. ----- Yann Tiersen best and do not fuck |
|
Создано: 07 декабря 2011 18:23 · Личное сообщение · #10 |
|
Создано: 07 декабря 2011 18:51 · Личное сообщение · #11 |
|
Создано: 07 декабря 2011 18:54 · Личное сообщение · #12 |
|
Создано: 07 декабря 2011 20:24 · Личное сообщение · #13 Я проверил -> быстрее. Поверю твоему опыту. Младшие биты нули, а переполнение старших бит уходит в процессорные флаги. Утренний тупняк у меня.) А что и ключи и данные инициализируются одним и тем же значением? Тут не совсем понял вопрос. Данные шифруются своим собственным шифрованным значением, т.е. грубо говоря сами собой. Спасибо всем откликнувшимся. Если честно, мне бы не хотелось кого то особо напрягать, т.к. брутить, возможно, придется не один раз и по разным алгоритмам. Но софтинку простенькую накидаю на всякий случай.) |
|
Создано: 07 декабря 2011 20:46 · Личное сообщение · #14 PE_Kill пишет: Tyra ты явно в программировании не шаришь, ибо данный функционал решается на раз-два Так а где привязка потоков к процессорам? Тогда уже надо аффинити маски заюзать. А то ведь все потоки могут на одном процессоре исполняться. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 08 декабря 2011 05:16 · Личное сообщение · #15 |
|
Создано: 08 декабря 2011 07:31 · Личное сообщение · #16 Выяснил что данные дополнительно шифруются 64-битной константой . Брут откладывается пока я не выдерну алгоритм и не расшифрую хэши, пока просто пропатчил проверку. Вопрос к тем кто работал с видеокартами: есть смысл заморачиваться и писать брут на CUDA? Просто для меня написать что то на Си равносильно подвигу... |
|
Создано: 08 декабря 2011 10:49 · Личное сообщение · #17 |
|
Создано: 08 декабря 2011 14:14 · Личное сообщение · #18 |
|
Создано: 08 декабря 2011 14:20 · Личное сообщение · #19 -Sanchez- пишет: А CUDA только у NVidia? Да. У ATI/AMD FireStream. ----- 127.0.0.1, sweet 127.0.0.1 | Сообщение посчитали полезным: -Sanchez- |
|
Создано: 08 декабря 2011 16:59 · Личное сообщение · #20 -Sanchez- пишет: А CUDA только у NVidia? Нет. FirePro держит куду, точнее общий для них OpenCL. Переписать под куду что ли... Можно еще сделать вариант для Core iX (SSE3), но это уже не ко мне... s0l пишет: если я не ошибаюсь, то в скорости брута с гпу дешевенькой видяхи, не может соревноваться ни один из самых дорогих процессоров Ошибаешься. Ноутбучная карточка 520M работает с той же скоростью, что и Core i7... Все зависит от задачи и от реализации алгоритма. Есть задачи, которые вообще нельзя распределитель на параллельные рассчетные узлы. Короче все не так однозначно. |
|
Создано: 08 декабря 2011 18:24 · Личное сообщение · #21 |
|
Создано: 08 декабря 2011 19:03 · Личное сообщение · #22 |
|
Создано: 09 декабря 2011 01:24 · Личное сообщение · #23 |
|
Создано: 09 декабря 2011 02:26 · Личное сообщение · #24 |
|
Создано: 09 декабря 2011 04:41 · Личное сообщение · #25 |
|
Создано: 09 декабря 2011 08:42 · Личное сообщение · #26 |
|
Создано: 09 декабря 2011 11:52 · Личное сообщение · #27 |
|
Создано: 09 декабря 2011 11:59 · Личное сообщение · #28 |
|
Создано: 09 декабря 2011 12:49 · Личное сообщение · #29 |
|
Создано: 09 декабря 2011 14:28 · Личное сообщение · #30 |
. 1 . 2 . >> |
eXeL@B —› Программирование —› Помогите с брутом. |