Kody i szyfry
5. Szyfry i kryptografia
5.10. Szyfry idealne
Szyfr Vernama to inaczej szyfr idealny lub szyfr z kluczem jednokrotnym (ang. one pad cipher).
Idealnym z kryptograficznego punktu widzenia jest szyfr z jednokrotnym kluczem losowym generowanym w ciągu prób Bernoulliego. Szyfr z kluczem jednokrotnym charakteryzuje się bezpieczeństwem idealnym, ponieważ przy przechwyceniu szyfrogramu c o określonej długości n prawdopodobieństwo warunkowe wystąpienia danego tekstu jawnego m (długości n) pod warunkiem odebrania c nie zależy od m.
Szczególnym przypadkiem szyfru jednokrotnego jest szyfr Vernama, przekształcający ciągi zerojedynkowe na ciągi zerojedynkowe. Szyfr ten został wynaleziony w 1917 roku przez dwóch Amerykanów: Gilberta S. Vernama (pracującego dla American Telephone and Telegraph Company, w skrócie AT&T) i Josepha O. Mauborgne ( z US Army Signal Corps.)
Rys. 1. Szyfr Vernama. Szyfrowanie: ci  mi  ki . Deszyfrowanie: mi  ci  ki
Algorytm deszyfrowania jest następujący: mi  ci  ki . Jego poprawność wynika z łączności sumy modulo 2 i faktu, że ki  ki  0.
Wadą szyfru Vernama jest to, że klucz jest tak długi, jak wiadomość jawna. Jednak w pewnych zastosowaniach użycie klucza jednokrotnego jest uzasadnione (dyplomacja, wojsko).
W praktyce często zastępuje się ciąg losowy k  k1 k2 ...kt  {0,1}* ciągiem pseudolosowym. Np. mamy do zaszyfrowania tekst jawny (mi) o długości N0  , generujemy pseudolosowy ciąg bitów (ki )
 o długości N0  , generujemy pseudolosowy ciąg bitów (ki ) i szyfrujemy tekst jawny jako (ci)
 i szyfrujemy tekst jawny jako (ci) , gdzie ci  ki  ai dla każdego i i1 i=1,2,..., N0 .
, gdzie ci  ki  ai dla każdego i i1 i=1,2,..., N0 .
Szyfr Vernama jest szyfrem strumieniowym. Można go uogólnić z przypadku binarnego na dowolny alfabet skończony zastępując sumę modulo 2 sumą modulo n.