В вычислительной технике Unix crypt или enigma — это служебная программа, используемая для шифрования. Из-за простоты взлома она считается устаревшей.
Программа обычно используется как фильтр , и традиционно реализуется с использованием алгоритма «роторной машины», основанного на машине Enigma . Считается, что она слишком слаба с криптографической точки зрения, чтобы обеспечить какую-либо защиту от атак методом подбора с помощью современных персональных компьютеров . [1]
Некоторые версии Unix поставлялись с еще более слабой версией команды crypt(1) для того, чтобы соответствовать современным законам и правилам, которые ограничивали экспорт криптографического программного обеспечения . Некоторые из них были просто реализациями шифра Цезаря (фактически не более безопасными, чем ROT13 , который реализован как шифр Цезаря с хорошо известным ключом).
Криптограф Роберт Моррис написал криптографию на основе M-209 , которая впервые появилась в версии 3 Unix , чтобы поощрить эксперименты по взлому кодов; Моррису удалось взломать криптографию вручную. Деннис Ритчи автоматизировал расшифровку с помощью метода Джеймса Ридса, а новая версия на основе Enigma появилась в версии 7 , которую Ридс и Питер Дж. Вайнбергер также взломали. [2]
Дистрибутивы Linux обычно не включают в себя совместимую с Unix версию команды crypt . Это во многом обусловлено сочетанием трех основных факторов:
Исходный код нескольких старых версий команды crypt доступен в Unix Archive Общества наследия Unix. [3] Последний исходный код crypt доступен в проекте OpenSolaris . Версия , находящаяся в открытом доступе, доступна в Crypt Breaker's Workbench.
Расширенные утилиты симметричного шифрования доступны для Linux (и также должны быть переносимы на любую другую Unix-подобную систему), включая mcrypt и ccrypt . [4] Хотя они обеспечивают поддержку гораздо более сложных и современных алгоритмов, их можно использовать для шифрования [5] и дешифрования файлов, совместимых с традиционной командой crypt(1), указав правильные параметры командной строки.
Программы для взлома шифрования crypt(1) широко доступны. Общедоступная программа Crypt Breaker's Workbench Боба Болдуина, написанная в 1984-1985 годах, представляет собой интерактивный инструмент, который предоставляет последовательные предположения открытого текста, которые должны быть исправлены пользователем. Он также предоставляет рабочую реализацию crypt(1), используемую современными дистрибутивами BSD. [6]
Взломщик unixcrypt Питера Селинджера использует простую статистическую модель, похожую на атаку по словарю, которая берет набор простых текстов в качестве входных данных и обрабатывает его, чтобы угадать правдоподобные простые тексты, и не требует взаимодействия с пользователем. [7]
Существует также хэш-функция пароля Unix с тем же именем, crypt . Хотя обе они используются для защиты данных в некотором смысле, в остальном они по сути не связаны. Чтобы различать их, авторы часто называют служебную программу crypt(1) , поскольку она документирована в разделе 1 страниц руководства Unix , а хэш-функцию пароля — crypt(3) , поскольку ее документация находится в разделе 3 руководства.