Коли швидкість перебору паролів зросте до 2 мільярдів в секунду

Я не впевнений, що тема актуально, але:

Чи стане актуальним з виходом GF9800
Коли швидкість перебору паролів зросте до 2 мільярдів в секунду.

Про процеси Nvidia в порівнянні з багатоядерними Pentium сумісними






// для розуміння початкових кодів

Щоб отримати 4-кратне збільшення швидкості перебору на 4-ядерному Pentium, потрібно запустити одночасно (наприклад) 4 PasswordsPro. Ну це в принципі все що можна вичавити.


З процесорами Nvidia трохи по-іншому.

Мультипроцесорів в GF8800GTX - 16 штук.
Причому в кожному мультипроцесорі 8 процесорів, разом 128.

Кожен процесор Nvidia виконує інструкцію за 4 такту (GF9800 2400 МГц.), Але 8 процесорів в 32 потоках виконують однакову інструкцію теж за 4 такту.
тобто (128 * 4) 512 потоку на GF8800ULTRA будуть виконуватися з тією ж швидкістю як на 128-ядерному Pentium 1500 МГц


Тепер про недоліки:

Інструкції читання-запису в глобальну пам'ять виконуються за 400..600 тактів.
Вирішується запуском більшої кількості потоків, ніж процесорів * 4.

Зі швидкістю інструкція за 4 такту процесора виконують тільки однакові інструкції.






Якщо потоки розійшлися слід використовувати __syncthreads (); У MD5 все інструкції синхронні.

Швидкості для GF8800GT (112 процесорів 1.625Гц.)
1 hash 400млн. п / c
2..9 hashs 400 - 310 млн. П / c
9..1000000 hashs 310 - 200 млн. П / c

Командна строка:
nvCUDA_md5.exe c = loweralpha-numeric f = md5pas.txt s = 1 e = 9 b = 70 o = find.txt

c = набір символів з charset.txt
f = файл звідки беремо хеші
s = початкова довга пароля
e = кінцева довга пароля (15 max)
b = ((кількість процесорів) / 8) * 5 або експериментуємо.
o = файл куди будуть записуватися знайдені паролі


Mini Release nvCUDA.exe
XP необхідно встановити останні драйвери ForceWare: 169.21
MD5 хеш-кодування // заточена на популярну GF8600GT

Попередня атака 2..5 символів (0x21..0x7f)

Командна строка:
// перебирає 0..9, a..z
nvCUDA.exe -f = mypas.txt -s = 7 -e = 7
-f = файл з паролями до 50 шт. типу admin: 9987d22788e810116a45109f2ea88648
-s = початкова кількість символів в паролі 6 - by default
-e = кінцеве кількість символів в паролі 8 - by default

Необхідні бібліотеки dll.rar (158кб.) // cudart.dll. cutil32.dll
Зібраний файл + nvCUDA_md5.cu (исходник) (82кб.)

Тестим швидкість, описуємо глюки.
У мене на GeForce 8600 GT TOP

105 mln pas / sec
Якщо ні хто (з більш досвідчених програмістів АНТІЧАТа) не візьметься писати, продовжу сам.

Mini Release nvCUDAsql.exe
MySql хеші

Командна строка:
nvCUDAsql.exe -f = mysqlpas.txt -s = 4 -e = 10 -sl = 91 -bl = 20

Швидкість перебору одного хешу 8 000 000 000 000 п / c. на GF8600GT


Ps
2 b3d3l - Pupkin-Zade c xakep.ru обіцяв премію виписати.

Поки продумую 3D інтерфейс ...