LINUX.ORG.RU

Как устроена функция crypt?

 


0

2

man 3 crypt гласит, что данная функция принимает 8 символьное сообщение и 2 символа соли. Из которых она делает 56-битный ключ и 12-битную соль. На выходе она выдает блок текста из 13 символов, из которые первые 2 - это сама соль.

В мане написано, что она основана на DES. Как работает DES я уже разобрался, туда подается 8 байт на вход - и получается 8 байт на выходе.

Как взаимосвязаны DES и crypt? Что нужно внутри крипта скормить DES'у, чтобы из 8 символов получить 13?

★★

The returned value points to the encrypted password, a series of 13 printable ASCII characters (the first two characters represent the salt itself).
printable

Соль это печатные символы, а 64 бита, пропущенные через Base64, станут 11 символами (ceil(64/6) = 11).

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

Может, кстати, и не Base64, в исходниках написано «6-битный ASCII».

xaizek ★★★★★
()
Ответ на: комментарий от xaizek

А что с солью? Я где то прочитал, что в алгоритме DES просто вместо таблицы перестановок E (которая применяется 16 раз для подключа, чтобы из 32 бит сделать 48) используется E+, которая как то зависит от соли.

Но дальше была ссылка на пдфку на каком то хостинге немецкого универа. Мёртвая.

anonymous
()
Ответ на: комментарий от anonymous

Ну, мне не надо новых реализаций, та что мне нужна точно на DES базируется - в исходниках дергала DES_encrypt из openssl.

wolph ★★
() автор топика
Ответ на: комментарий от anonymous

как то зависит от соли

Ага, но детали процесса так с ходу не ясны (вроде, по тем двум байтам набирается битовая маска, которая потом используется для тасования смежных элементов таблицы):

  /*
   * This is the only crypt change to DES:
   * entries are swapped in the expansion table
   * according to the bits set in the salt.
   */
crypt_util.c.

xaizek ★★★★★
()
Ответ на: комментарий от buddhist

Используя crypt() на базе DES - получаются трипкоды, которые используются для аутентификации на имиджбордах. Я хочу упороться CUDA, и как практическую задачу взять - брут этих самых хешей на видеокарте.

Заодно и интересно, какая будет разница в производительности.

wolph ★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.