crypt (Unix)

Z Multimediaexpo.cz

crypt je v informatice název unixové knihovní funkce a též název méně používané utility pro příkazový řádek. Aby bylo obě možnosti možné odlišit, je v textu často knihovní funkce označována jako crypt(3) a utilita jako crypt(1), přičemž číslo vyjadřuje příslušnou sekci standardní manuálové stránky.

Obsah

Knihovní funkce crypt(3)

Knihovní funkce crypt() slouží k jednosměrnému zakódování hesla pomocí kryptografické hašovací funkce, které využívá též kryptografickou sůl. Výstupem je textový řetězec určité délky, který obsahuje sůl, identifikaci použitého algoritmu a vlastní hash. Existuje několik variant implementace této funkce. Linuxová knihovna GNU C Library obsahuje funkci, která podporuje od verze 2.7 algoritmy DES, MD5 a SHA.

Tradiční DES schéma

Tradičně je používána modifikovaná forma DES algoritmu. Před zakódováním je heslo oříznuto na osm znaků, jsou odstraněny nejvyšší bity (je použita jen dolní polovina ASCII), čímž vzniká 56bitový DES klíč, který je použit k zakódování vynulovaného bloku, přičemž kódování je se stejným klíčem celkem 25× opakováno. Jako kryptografická sůl je použito 12 bitů, které slouží k variaci DES algoritmu, takže standardní DES implementace nelze použít. Výsledek je převeden do prostého textu pomocí Base64.

Modifikace tradičního DES schéma

Rozšířené BSDi schéma

MD5 schéma

Blowfish schéma

NT Hash schéma

SHA schéma

Filtr crypt(1)

Příkaz crypt není běžnou součástí linuxových distribucí, protože je použit algoritmus ze šifrovacího stroje Enigma, který je pokládán za kryptograficky slabý a tudíž málo odolný vůči kryptoanalýze.

Související články

Externí odkazy