SHA е акроним за Secure Hash Algorithm, стандарт за криптиране, изобретен от Агенцията за национална сигурност и публикуван от Националните институти за стандарти и технологии. Установено е, че оригиналният SHA алгоритъм има слабости в методите си за криптиране и е заменен с SHA-1 за по-голяма сигурност.
Сигурен хеш алгоритъм
SHA е криптографска хеш функция. Хеш функцията приема първоначален некриптиран текст, наречен обикновен текст, и произвежда теоретично уникален номер, който съставлява криптираното съобщение. SHA създава 160-битово число, което е число между 0 и 1,46 x 10^48. Не е възможно този номер да бъде гарантирано уникален за всички възможни съобщения в обикновен текст, тъй като броят на такива съобщения е теоретично безкрайно, но шансовете са приблизително 2^80, или 1,21 x 10^24, срещу две съобщения, произвеждащи едно и също криптирано резултат. Ако това се случи, това се нарича сблъсък. Сблъсъкът осигурява математическа атака върху алгоритъм за криптиране, което прави възможно криптографът да декриптира открития текст.
Видео на деня
SHA-0 и SHA-1
След публикуването му бяха открити пропуски в оригиналния SHA алгоритъм, които позволиха на криптографска атака да доведе до хеш колизии, което сериозно отслаби неговата ефективност. Разработена е ревизирана SHA версия, SHA-1, която създава същите 160-битови резултати без оригиналните недостатъци в алгоритъма. Оригиналният SHA беше преименуван със задна дата SHA-0, за да се направи разлика между използването му и използването на SHA-1.
Промени в SHA-1
Оригиналните недостатъци в SHA-0 никога не са публикувани, тъй като тези недостатъци предоставят инструментариум за всеки нападател, който се опитва да декриптира съобщение, използвайки SHA-0 криптиране. Единствената публична информация за слабостите в оригиналния алгоритъм показва, че хеш колизиите са по-вероятни отколкото от случаен случай при използване на SHA-0 и че сблъсъците, използващи непубликувания метод, се елиминират при използване SHA-1. Тъй като SHA-1 и SHA-0 дават математически резултати с еднаква дължина, SHA-1 може да се използва като добавен заместител в компютърен софтуер за оригиналния алгоритъм SHA-0, без да се изискват големи пренаписвания в останалата част от софтуер.
SHA-2 и SHA-3
Установено е, че SHA-1 е по-стабилен от SHA-0, но оставя място за подобрение. Математически анализ на резултатите от SHA-1 демонстрира метод, чрез който SHA-1 криптирането може да бъде нарушено 2000 пъти по-бързо, отколкото би било теоретично възможно чрез проверка на всички 10^48 възможни комбинации от неговите изход. Тъй като идеалният криптографски алгоритъм предотвратява подобрения на скоростта на декриптиране от този вид, алгоритъмът SHA-2 едновременно избягва тази атака и увеличава възможния размер на хеша до 512-бита или 1,34 x 10^154. SHA-3, все още по-мощен алгоритъм за криптиране, в момента се разработва.