Szyfr (lub szyfr) to algorytm do wykonywania szyfrowania (kodowania) lub odszyfrowywania (dekodowania). Jest to seria dobrze zdefiniowanych kroków, które można wykonać w ramach procedury. Szyfrowanie lub kodowanie polega na przekształceniu informacji z czystego tekstu w szyfr lub kod.
W zastosowaniach nietechnicznych "szyfr" często oznacza to samo, co "kod"; jednak w kryptografii szyfr różni się od kodu. Jedno z XX-wiecznych źródeł podaje takie wyjaśnienie: szyfr jest "metodą, w której podstawową jednostką ukrycia jest litera". Dla porównania, kod jest formą ukrywania, w której podstawową jednostką jest słowo". Pod koniec XX wieku "kody" w tym kryptograficznym znaczeniu stały się rzadkością. Kryptografia XXI wieku w większości szyfruje strumienie bitów.
Kody obsługiwane przez podstawianie według dużej książki kodowej, która połączyła losowy ciąg znaków lub liczb ze słowem lub frazą. Na przykład, "UQJHSE" może być kodem dla "Przejdź do następujących współrzędnych".
Szyfr jest używany do zmiany oryginalnej informacji ("plaintext") na zaszyfrowaną formę "ciphertext". Wiadomość szyfrująca zawiera wszystkie informacje zawarte w wiadomości typu "plaintext", ale nie może być odczytana przez człowieka lub komputer bez odpowiedniego mechanizmu do jej odszyfrowania. Do odszyfrowania lub odszyfrowania potrzebny jest "klucz". W szyfrowaniu, klucz określa konkretną transformację tekstu zwykłego w szyfrujący lub odwrotnie podczas odszyfrowywania.
Według typu klucza używane szyfrów są podzielone na:
- algorytmy klucza symetrycznego (kryptografia klucza prywatnego): ten sam klucz jest używany do szyfrowania i odszyfrowywania, oraz
- algorytmy klucza asymetrycznego (kryptografia klucza publicznego): do szyfrowania i deszyfrowania używane są dwa różne klucze.
Słowo szyfr w języku francuskim to cifre, a w średniowiecznej łacinie cifra, od arabskiego sifr, oznaczające "zero". Pierwsze znane angielskie użycie słowa "zero" miało miejsce w 1598 roku.