-{SHA (Secure Hash Algorithm)}- је класа криптографских функција за сажимање. У овој фамилији криптографских функција најчешће коришћена функција је -{SHA-1}-, која је нашла примену у великом броју криптографских протокла као што су -{TLS}-, -{SSL}-, -{PGP}-, -{SSH}-, -{S/MIME}- и -{IPSec}-. -{SHA-1}- се може сматрати наследником чувеног -{MD5}- алгоритма. -{SHA}- алгоритми су креирани од америчке агенције за сигурност (НСА) и публикован као званичан стандард владе САД.

Први члан ове фамилије, публикован је 1993, и званично назван -{SHA}-, али се он често у литератури назива -{SHA-0}-, да би се спречила забуна са његовим каснијим наследницима. Две године касније настаје -{SHA-1}-, први наследник -{SHA}-. Још четири варијанте овог алгоритма су публиковане и то -{SHA-224}-, -{SHA-256}-, -{SHA-384}- и -{SHA-512}- и они се једним именом називају -{SHA-2}-, а разликује их само дужина сажетка који произилази из њих.

-{SHA-0}- и -{SHA-1}- алгоритми се данас не могу сматрати безбедним, јер постоје криптографски напади који су способни да пронађу колизију за релативно кратко време. За сада нигде није објављено да је извршен успешан криптографски напад на неки од алгоритама из класе -{SHA-2}-, али због сличности са претходним генерацијама, ускоро ће и они бити успешно нападнути.

-{SHA-0}- и -{SHA-1}- Оригиналне спецификације алгоритма су публиковане 1993. под називом -{Hash Standard, FIPS PUB 180}-, од стране америчке владине агенције Националног института за стандарде и технологију (НИСТ), и овај алгоритам је познат као -{SHA-0}-. Врло брзо после публикације -{SHA-0}-, НСА га је повукла због пронађених сигурносних пропуста и уместо њега је у примену ушао његов унапређени наследник -{SHA-1}-, 1995. године. НСА никада није објавила о каквим се пропустима ради и који су исправљени у наредној верзији. На оба ова алгоритма уочено је више недостатака, мада -{SHA-1}- пружа далеко већу сигурност.

-{SHA-0}- и -{SHA-1}- прави сажетке дужине 160 бита, при чему максимална дужина текста може бити 264, и у својој основи ови алгоритми су базирани на идејама професора Роналда Ривеста и његових -{MD4}- и -{MD5}- алгоритама.

Дуже варијанте Варијанте са дужим сажетком настатле су нешто касније и познате су под именом -{SHA-2}-. У ову групу спадају алгоритми -{SHA-224}-, -{SHA-256}-, -{SHA-384}- и -{SHA-512}- и ознаке бројева представљају дужину сажетка. Алгоритми -{SHA-256}-, -{SHA-384}- и -{SHA-512}- објављени су 2002. док је варијанта -{SHA-224}- објављена 2004. године. Ове дуже варијанте су знатно сигурније у односу на -{SHA-0}- и -{SHA-1}-, првенствено због дужине сажетка и одређених промена у алгоритму. Ове нове верзије користе друге вредности помераја као и додатне константе, али у суштини нема значајних промена у односу на претходнике. И поред веће сигурности они се и данас мање користе у односу на -{SHA-1}-, који представља индустријски стандард у криптографији.

Упоређење АлгоритамВеличина сажетка у битима Иницијална величина у битимаВеличина блока у бајтима -{SHA-0}- 160 -{SHA-1}- 160 160 64 -{SHA-224}- 224 256 64 -{SHA-256}- 256 256 64 -{SHA-384}- 384 512 128 -{SHA-512}- 512 512 128

-{SHA-1}- сажеци Пример примене -{SHA-1}- алгоритма. Реченицу у -{ASCII}- формату „-{The quick brown fox jumps over the lazy dog}-“ пустићемо кроз -{SHA-1}- алгоритам и добићемо 160-битни излаз у хексадецималном облику

-{SHA1("The quick brown fox jumps over the lazy dog") = 2fd4e1c67a2d28fced849ee1bb76e7391b93eb12}-

Чак и најмања промена само једног слова у реченици имаће као резултат промену целокупног хексадецималног излаза. На пример променићемо -{d}- у -{c}-:

-{SHA1("The quick brown fox jumps over the lazy cog") = de9f2c7fd25e1b3afad3e85a0bd17d9b100db4b3}-

Излаз -{SHA-1}- функције у случају празне ниске биће:

-{SHA1("") = da39a3ee5e6b4b0d3255bfef95601890afd80709}-

Упоређење -{MD5}-, -{SHA-1}- и -{RIPEMD-160}- алгоритма Упоређења SHA-1 алгоритма са -{MD5}- алгоритмом показују да је -{SHA-1}- алгоритам сигурнији од -{MD5}- алгоритма.

Види још SHA-2

Категорија:Криптографија Категорија:Контролни алгоритми