| Ten artykuł od 2010-03 wymaga uzupełnienia źródeł podanych informacji. Informacje nieweryfikowalne mogą zostać zakwestionowane i usunięte. Aby uczynić artykuł weryfikowalnym, należy podać przypisy do materiałów opublikowanych w wiarygodnych źródłach. |
Sól (ang. salt) lub ciąg zaburzający – w kryptografii dane dodawane podczas szyfrowania lub przygotowywania skrótu.
Podobne znaczenie i zastosowanie ma wektor inicjalizujący, jednak jest on zawsze losowy, podczas gdy sól może nie być wartością losową.
Spis treści |
Podczas tworzenia skrótów, które mają być trudne do podrobienia (tzn. trudno ustalić dane, które będą dawały dany skrót), stosuje się sól w celu powiększenia rozmiaru danych będących argumentem funkcji skrótu bez potrzeby rzeczywistego zwiększenia rozmiarów danych. Ma to zastosowanie przy zapisywaniu skrótów np. haseł, gdy nie możemy zmusić użytkowników do wydłużenia hasła.
Podczas sprawdzania skrótu (np. weryfikacji hasła przy logowaniu) należy dodać sól w tym samym miejscu, w którym została dodana podczas tworzenia skrótu (np. przy zakładania konta), do którego porównujemy.
Załóżmy, że mamy 3-znakowe hasło. Wiedząc, że znaków możliwych do wprowadzenia ze standardowej klawiatury jest 94 (ASCII), obliczmy liczbę prób potrzebnych do złamania tego hasła (zakładając, że jedyną metodą łamania jest brute force):

Otrzymujemy względnie niewiele możliwości, około 830 tysięcy (co przy tak krótkim haśle było do przewidzenia). Jednak po dodaniu soli w postaci 32 bitów liczba możliwości powiększy się
razy.
Biorąc pod uwagę, że złodziej haseł może posłużyć się tęczowymi tablicami, możemy powiększyć dane do takiego rozmiaru, przy którym używanie tęczowych tablic przestanie mieć sens. Np. gdy tęczowe tablice nadają się do łamania skrótów, które powstały od danych mających od 1 do 8 bajtów, wystarczy dodać 8 bajtów soli, aby uniemożliwić ich stosowanie. Nawet jeśli złodziej zna sól, nie będzie w stanie jej ominąć.
Przy tym zastosowaniu można za każdym razem generować nową sól i zapisywać ją razem ze skrótem, gdyż jej znajomość przez atakującego nie ma wpływu na bezpieczeństwo.
Podczas szyfrowania symetrycznego i asymetrycznego sól może być dodawana do klucza. Dzięki temu zwiększa się bezpieczeństwo, ponieważ im dłuższy klucz, tym bezpieczniejszy. Jednak wzrost bezpieczeństwa jest mniejszy niż w przypadku użycia całkowicie losowego klucza o tej długości.