krypta (Unix)
Originalförfattare | Robert Morris |
---|---|
Utvecklare | AT&T Bell Laboratories |
Initial release | februari 1973 |
Operativ system | Unix , Unix-liknande , Inferno |
Typ | Kommando |
I Unix- datorer är crypt eller enigma ett verktygsprogram som används för kryptering. På grund av lättheten att bryta den anses den vara föråldrad.
Programmet används vanligtvis som ett filter , och det har traditionellt implementerats med en "rotormaskin" -algoritm baserad på Enigma-maskinen . Det anses vara kryptografiskt alldeles för svagt för att ge någon säkerhet mot brute-force-attacker från moderna, vanliga persondatorer .
Vissa versioner av Unix levererades med en ännu svagare version av kommandot crypt(1) för att följa samtida lagar och regler som begränsade exporten av kryptografisk programvara . Några av dessa var helt enkelt implementeringar av Caesar-chifferet (i praktiken inte säkrare än ROT13 , som är implementerat som ett Caesar-chiffer med en välkänd nyckel).
Historia
Kryptografen Robert Morris skrev en M-209 -baserad krypta , som först dök upp i version 3 Unix, för att uppmuntra kodbrytande experiment; Morris lyckades bryta kryptan för hand. Dennis Ritchie automatiserade dekryptering med en metod av James Reeds, och en ny Enigma-baserad version dök upp i version 7 , som även Reeds och Peter J. Weinberger bröt.
Crypt(1) under Linux
Linux-distributioner inkluderar i allmänhet inte en Unix-kompatibel version av kryptkommandot . Detta beror till stor del på en kombination av tre huvudfaktorer:
- krypten är relativt oklar och används sällan för e-postbilagor eller som filformat
- krypten anses vara kryptografiskt alldeles för svag för att motstå brute-force-attacker från moderna datorsystem (Linux-system levereras vanligtvis med GNU Privacy Guard som anses vara rimligt säkert enligt moderna standarder)
- Under de första åren av Linux-utveckling och -antagande fanns det en viss oro för att även så svag som algoritmen som användes av crypt var, att den fortfarande kunde gå i strid med ITAR :s exportkontroller; [ citat behövs ] så vanliga distributionsutvecklare i USA uteslöt det generellt, [ citat behövs ] och lämnade sina kunder för att hämta GnuPG eller annan stark kryptografisk programvara från internationella webbplatser, ibland med paket eller skript för att automatisera den processen.
Källkoden till flera gamla versioner av kryptkommandot finns tillgänglig i Unix Heritage Societys Unix Archive. Den senaste kryptokällkoden är tillgänglig i OpenSolaris- projektet. En för offentlig egendom är tillgänglig från Crypt Breakers Workbench.
Förbättrade symmetriska krypteringsverktyg är tillgängliga för Linux (och bör också vara portabla till alla andra Unix-liknande system) inklusive mcrypt och ccrypt . Även om dessa ger stöd för mycket mer sofistikerade och moderna algoritmer, kan de användas för att kryptera och dekryptera filer som är kompatibla med det traditionella crypt(1) -kommandot genom att tillhandahålla rätt kommandoradsalternativ.
Breaking crypt(1) kryptering
Program för att bryta kryptering(1)-kryptering är allmänt tillgängliga. Bob Baldwins public domain Crypt Breakers Workbench, som skrevs 1984-1985, är ett interaktivt verktyg som ger successiva klartextgissningar som måste korrigeras av användaren. Den tillhandahåller också en fungerande krypto(1)-implementering som används av moderna BSD-distributioner.
Peter Selinger's unixcrypt-breaker använder en enkel statistisk modell som liknar en ordboksattack som tar en uppsättning klartexter som input och bearbetar den för att gissa rimliga klartexter, och kräver inte användarinteraktion.
Förhållande till lösenordshash-funktion
Det finns också en Unix- lösenordshashfunktion med samma namn, crypt . Även om båda används för att säkra data i någon mening, är de annars väsentligen orelaterade. För att skilja mellan de två hänvisar skribenter ofta till verktygsprogrammet som crypt(1) , eftersom det finns dokumenterat i avsnitt 1 på Unix- manualsidorna och hänvisar till lösenordshashfunktionen som crypt(3) , eftersom dess dokumentation finns i avsnitt 3 i manualen.
Se även
- crypt Unix C biblioteksfunktion
- Nyckelhärledningsfunktion
externa länkar
- Källkod för crypt(1) från OpenSolaris (publicerad efter att exportreglerna har rensats)
- Källkod för crypt(1) från version 7 Unix (trivialiserad enrotors Enigma-liknande maskin)
- Källkod för crypt(1) från version 6 Unix (implementering av Boris Hagelins M -209 kryptografiska maskin)