Wolna encyklopedia
Szyfr Vernama - nazywany też szyfrem idealnym. Należy do grupy szyfrów wieloalfabetycznych. Gilbert Vernam w 1917 roku skonstruował maszynę, która wykorzystuje szyfr z kluczem jednokrotnym tzn. szyfr, w którym klucz jest losową sekwencją znaków i jest używany bez powtórzeń. Dzięki jego maszynie możliwe jest stosowanie szyfrów z kluczem jednokrotnym w systemach komputerowych. Urządzenie to Vernam skonstruował do łączności telegraficznej korzystającej z 32-znakowego kodu Baudota. Każdy znak kodu jest kombinacją pięciu sygnałów lub ich braku, co odpowiada bitom 1 i 0 w komputerach. Niepowtarzalny, losowy ciąg znaków klucza jest wyperforowany na taśmie papierowej i każdy bit tekstu jawnego jest dodawany modulo 2 do kolejnego bitu klucza.
Polega na tym, że każdy bit wiadomości M = m1,m2,m3,...,mn dodajemy modulo 2 (funkcja XOR) z bitem pochodzącym z idealnego generatora losowego K = k1,k2,k3,...,kn. Taki generator można traktować jako ciąg losowy n doświadczeń Bernoulliego z prawdopodobieństwem
(np. rzut symetryczną monetą ). Szyfrogram C = c1,c2,c3,...,cn odczytujemy w analogiczny sposób wykorzystując ciąg bitów wygenerowany przy szyfrowaniu:
Na podstawie twierdzenia: jeżeli dwie zmienne losowe X1 i X2 są niezależne i X2 ma rozkład jednostajny nad {0,1} to
ma rozkład jednostajny nad {0,1} otrzymujemy wiadomość zaszyfrowaną. Idealność szyfru polega na tym, że wnioskowanie o następnym bicie szyfrogramu możliwe jest jedynie z prawdopodobieństwem równym
. Innymi słowy nie ma żadnej metody, która pozwoliłaby powiększyć szansę zgadnięcia następnego bitu szyfrogramu nad ślepy traf.
Zasadniczą wadą szyfru Vernama jest rozmiar klucza, który jest równy długości wiadomości.
Przykład
Załóżmy, że:
Ciąg bitów tekstu jawnego:
Ciąg bitów klucza:
Wtedy szyfr Vernama generuje ciąg bitów kryptogramu
gdzie
dla 
Litera tekstu jawnego A (11000 w kodzie Baudota)
Litera klucza D (10010 w kodzie Baudota)
Szyfrowanie polega na dodaniu litery tekstu jawnego do litery klucza






