Crypt (Unix)

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Crypt
Тип Шифрование файлов
Автор Роберт Моррис
Операционная система Research Unix V3-V7, OpenSolaris
Языки интерфейса Английский
Аппаратная платформа IA-32, x86-64 и другие
Состояние Устарела

В UNIX системах crypt является устаревшей утилитой, предназначенной для шифрования файлов.

История[править | править код]

Crypt был создан Робертом Моррисом и впервые появился в Version 3 Unix с целью стимулировать разработки по взлому шифров; в конечном итоге Моррис сам и взломал crypt. Деннис Ритчи сумел автоматизировать процесс расшифровки, используя метод, предложенный Джеймсом Ридсом, и усовершенствованная версия алгоритма crypt появилась в Version 7 Unix, которую Ридс и Питер Вейнбергер также взломали.[1].

Связь с хеш-функцией[править | править код]

Существует также криптографическая хеш-функция с одноимённым названием — crypt. Несмотря на то, что и утилита crypt и функция crypt используются для шифрования данных, между ними нет ничего общего. Чтобы различать их, обычно ссылаются на системную утилиту как crypt(1), так как она документирована в разделе 1 руководства UNIX, а на криптографическую хеш-функцию как crypt(3), так как она документирована в секции 3.

Команда crypt(1)[править | править код]

crypt(1) является простой утилитой для шифрования/дешифровки данных. Как правило она используется в качестве программы-фильтра (программы, которая принимает на вход строку и возвращает другую строку), и которая традиционно основывается на алгоритме, использовавшемся в машине Энигма. Алгоритм считается чрезмерно криптографически уязвимым, чтобы обеспечить защиту от полного перебора ключей современным бытовым персональным компьютером.

Некоторые версии UNIX поставлялись с даже более уязвимой версией команды crypt(1), чтобы обеспечить выполнение современных законов, ограничивающих экспорт криптографического программного обеспечения. Некоторые из реализаций crypt фактически являлись реализациями шифра Цезаря.

crypt(1) на Linux[править | править код]

Дистрибутивы Linux обычно не включают в себя UNIX-совместимую версию crypt по нескольким причинам:

  1. crypt считается весьма незащищённым от атак методом полного перебора (в дистрибутив обычно входит GnuPG, который достаточно криптографически стоек по современным меркам).
  2. На ранних этапах развития Linux были опасения, что crypt может не удовлетворить требованиям ITAR по экспорту криптографического программного обеспечения; по этой причине утилита была исключена из большинства дистрибутивов, разрабатывавшихся в США (разработчики предлагают пользователям скачать GnuPG или аналогичное программное обеспечение самостоятельно, иногда предоставляя скрипты для автоматизации процесса установки).

Исходный код для нескольких старых версий программы crypt доступен в архиве The Unix Heritage Society.

Последняя версия кода доступна в проекте OpenSolaris.

В настоящее время на Linux доступны усовершенствованные симметричные криптосистемы (они также портируемы на любую другую UNIX-подобную операционную систему), включая mcrypt и ccrypt.[2] Несмотря на то, что эти программы позволяют использовать весьма сложные алгоритмы шифрования, с помощью опций командной строки можно задать им режим работы, совместимый с классическим crypt(1).

Взлом crypt(1)[править | править код]

Программы для взлома шифров crypt(1) широко доступны. В 1984—1985 Боб Балдвин создал программу Crypt Breaker’s Workbench[3], которая является интерактивной утилитой, предоставляющей пользователю последовательно 'догадки' о пароле, а пользователь должен выбирать из них наиболее подходящий. Unixcrypt-breaker Питера Селингера[4] использует простую статистическую модель для отсеивания неподходящих паролей и не требует вмешательства пользователя.

Примечания[править | править код]

Ссылки[править | править код]