шифрование пароля по DES


Не понимаю один момент ..

Во многих системах используется шифрование паролей пользователей с помощью алгоритма DES (например, в unix-like системах). Пароль в зашифрованном виде хранится в passwd.
Но по какому ключу шифруется пароль?? Откуда он берется? Или там наоборот – шифруется какой-то известный текст по ключу в виде пароля? Но тогда какой текст?
Допускаю, что этот ключ зашит в функции crypt() .. но как тогда работают дешифраторы (такие как John the Ripper)? Они ведь не знают из какой системы взят зашифрованный пароль ..

Разъясните, пожалуйста ..


Комментарии
— paranoid ant (01/08/2006 18:16)   
возмем для примера самый старый вариант – 56-битный DES.
пароль пользователя используется как ключ шифрования блока данных размером 64 бита заполненного нулями, полученный блок данных еще раз шифруется паролем пользователя и так несколько раз (если я правильно помню – 25 раундов). результат упаковывется в строку (транформируется в печатные символы)
— paranoid ant (01/08/2006 19:45)   
Модераторы, перенесите вопрос в OC Linux
Гость (01/08/2006 19:52)   
64 бита нулей это стандарт? Можно ожидать что все ОС и приложения шифрующие пароль по DES так себя поведут? Или тут кто во что горазд?
— paranoid ant (02/08/2006 10:57)   
egor, я не очень понимаю что в данном случае явлется стандартом
я описал алгоритм работы старых версий crypt(3) в Linux/BSD, так когда то шифровались пароли в /etc/passwd.
— spinore (30/09/2006 00:07)   
paranoid ant вообще маньяк. Я ещё понимаю, когда человек призрачно представляет плюсы и минусы тех или иных алгоритмов, и умеет хорошо польховаться программами, эти алгоритмы реализовывающими.... Но знать детально наизусть как работает дословно тот или иной алогритм или раелизация... О ужас, куда я попал. Одно криптоаналитики и хакиры кругом...
Гость (25/06/2007 14:03)   
"— paranoid ant (01/08/2006 18:16) <#>


пароль пользователя используется как ключ шифрования "

поспорю, пароль не используется в качестве ключа, чтоб получить ключ надо захешировать пароль
— unknown (25/06/2007 14:46)   
пароль пользователя используется как ключ шифрования "

поспорю, пароль не используется в качестве ключа, чтоб получить ключ надо захешировать пароль

Имеется ввиду способ использования шифра DES в необратимом преобразовании вместо функции хэширования. Позднее его действительно заменили на md5