Szyfr VIC – szyfr używany w latach 50 XX w. przez siatkę radzieckich szpiegów w Stanach Zjednoczonych Ameryki. Jego nazwa pochodzi od pierwszych liter imienia Victor, które było kryptonimem Reino Häyhänena – szyfranta i radiotelegrafisty siatki szpiegowskiej działającej w USA w latach 1948–1957 pod kierownictwem Williama Fishera ps. Rudolf Abel. W maju 1957 roku R.Häyhänen, zamiast zgodnie z rozkazem PGU KGB wrócić do Moskwy, zgłosił się do Ambasady USA w Paryżu i poprosił o azyl. Poza nazwiskami kilku radzieckich szpiegów działających w USA i Kanadzie, R.Häyhänen wyjawił Amerykanom zasady działania szyfru, o którego istnieniu nie wiedzieli. Okazało się, że użyto go do zaszyfrowania depeszy przechwyconej przez FBI w 1953 roku i mimo wysiłków amerykańskich kryptoanalityków dotąd nieodczytanej.
Historia Opracowując nowe szyfry w latach 20 i 30 XX wieku, radzieccy kryptolodzy oparli się na szyfrze nihilistów. Wykorzystali jego podstawowe funkcje (tj. najpierw zamiana liter tekstu jawnego na cyfry, a potem przekształcenie tego ciągu cyfr w oparciu o klucz), doskonaląc je, co spowodowało znaczne wzmocnienie tworzonych szyfrów. Opracowanych wtedy szyfrów używały w czasie II wojny światowej dwie najsłynniejsze siatki radzieckiego wywiadu pracujące przeciw III Rzeszy – Czerwona Orkiestra i grupa kierowana w Japonii przez Richarda Sorge. Według kryptologów szyfr używany przez Czerwoną Orkiestrę był nieco słabszy od tzw. szyfru Ramsaya używanego przez siatkę R.Sorgego. Jednak szczytowym osiągnięciem ewolucji radzieckich szyfrów był opracowany prawdopodobnie pod koniec lat 40 XX w. szyfr VIC. Był idealnym szyfrem ręcznym – wszystkie elementy potrzebne do jego użycia można było zapamiętać. Nie używano książek kodów lub jednorazowych bloczków szyfrujących, których bezpieczne przechowywanie i zabezpieczenie przed wykryciem było poważnym problemem szpiegów.
Algorytm Przekształcenie tekstu jawnego w zaszyfrowany jest w tym systemie podzielone na dwa etapy. Pierwszy etap to tworzenie kluczy i – w oparciu o nie – szachownicy z rozwidleniem i dwóch tablic, w których cyfry szyfru zostaną wymieszane. Aby wyznaczyć klucze, które będą użyte do dalszego szyfrowania potrzebnych jest pięć elementów: cztery stałe i jeden zmienny. Cztery stałe elementy to: Grupa złożona z 6 cyfr (zapamiętywana najprościej – jako data). W tym przykładzie jest to 941903, jako data: 9.4.1903 – dzień urodzin Stanisława Wigury, sławnego polskiego lotnika. Ciąg 20 liter (zapamiętywanych w formie tekstu). W tym przykładzie – 20 pierwszych liter wiersza "O wróbelku", K. I. Gałczyńskiego: Wróbelek jest mała ptaszyna. (W oryginalnej wersji szyfru były to słowa piosenki "Одинокая гармонь" (Samotna harmonia) napisanej do wiersza Michaiła Isakowskiego) Słowo-klucz – podstawa do wypełnienia szachownicy. W tym przykładzie będzie to ESTONIA (w wersji rosyjskiej było to słowo СНЕГОПАД); Jedna krótka liczba, która była indywidualna i wyjątkowa dla każdego agenta. W tym przykładzie będzie to 13 – takiej liczby używał do 1956 roku Reino Häyhänen. Element zmienny – grupa 5 cyfr, wymyślana jednorazowo do każdego nowego szyfrowanego tekstu i umieszczana w ostatecznej wersji zaszyfrowanej jako jedna z ostatnich 5-cyfrowych grup. Jej lokalizację wyznaczała ostatnia z sześciu stałych cyfr. W tym przykładzie jest to 3 czyli jednorazowa grupa – tu: 27185 – będzie dołączona do depeszy jako trzecia od końca.
Etap drugi to właściwe szyfrowanie. VIC był połączeniem szyfru podstawieniowego z przestawieniowym. Przy pomocy szachownicy tekst jest zamieniany na ciąg cyfr, który następnie w dwóch tablicach ulega przemieszaniu (przez przestawienie kolumn) usuwającemu wszelkie powiązania między cyframi. Na końcu uzyskany ciąg cyfr był dzielony na pięciocyfrowe grupy, dodawano w ustalonym miejscu grupę jednorazową i całość była zapisywana jako ostateczna wersja tekstu zaszyfrowanego. W tej postaci tekst był nadawany przez radio lub pozostawiany w umówionym miejscu jako zmniejszona fotokopia. Aby zaoszczędzić pracy odbiorcy oraz umożliwić sprawdzenie, czy przekaz został odebrany w całości, jako nagłówek wiadomości podawano ilość 5-cyfrowych grup.
Tworzenie kluczy i tablic VIC był opracowany do szyfrowania tekstów rosyjskich pisanych cyrylicą. W poniższym przykładzie zmodyfikowano niektóre elementy (np. szachownicę z rozwidleniem), żeby umożliwić użycie polskiego alfabetu.
Najpierw od wymyślonej grupy cyfr należy odjąć (modulo 10) pierwsze pięć cyfr stałej sześciocyfrowej grupy. 2 7 1 8 5 9 4 1 9 033095
Dwudziestoliterowy tekst jest dzielony na dwie połowy, które zapisuje się obok siebie (w poniższej tabeli – wiersz A). Następnie (dla każdej połowy oddzielnie) należy podpisać litery według ich kolejności w alfabecie kolejnymi liczbami od 1 do 0 (w tym szyfrze wszystkie ciągi cyfr i działania na liczbach są traktowane zgodnie z regułą modulo 10 czyli najniższą z dziesięciu liczb jest 1, a najwyższą 0). Jeżeli jakaś litera się powtarza, w każdym miejscu podpisuje się ją kolejnymi liczbami, zaczynając od lewej strony tekstu (wiersz B). Wynik odejmowania przeprowadzonego na początku wpisywany jest jako pierwsze 5 cyfr lewej połowy następnego wiersza (C), a następne 5 cyfr tworzy się według reguł ciągu Fibonacciego i modulo 10 – odrzucając część dziesiętną wyniku, czyli: 3 + 3 = 6, 3 + 0 = 3, 0 + 9 = 9, 9 + 5 = 14 (14 – 10 = 4), 5 + 6 = 11 (11 – 10 = 1). W prawej połowie wiersza C wpisuje się po kolei cyfry 1–0. Wiersz D to wynik dodania (modulo 10) cyfr z lewej strony wierszy B i C.
AW R Ó B E L E K J E S T M A Ł A P T A SB 0 9 8 1 2 7 3 6 5 4 7 9 5 1 4 2 6 0 3 8C 33095 6 3 9 4 1 1 2 3 4 5 6 7 8 9 0D 3 2 8 0 7 3 6 5 9 5
Aby utworzyć następną grupę dziesięciu cyfr (wiersz E), trzeba odszukać w prawej połowie wiersza C kolejne cyfry z wiersza D i zastąpić je cyframi stojącymi nad nimi w wierszu B (czyli 3 –> 5, 2 –> 9 itd.). Wiersz F to opis kolejności występowania cyfr w wierszu E według takiej samej reguły, jak przy tworzeniu wiersza B. Będzie on później użyty jako współrzędne kolumn w tabeli. Następnie zgodnie z regułami ciągu Fibonacciego należy utworzyć pięć grup dziesięciocyfrowych (wiersz G na podstawie wiersza E, dalej H na podstawie G i tak kolejno do K).
E 5 9 0 8 6 5 2 4 3 4 F 5 9 0 8 7 6 1 3 2 4 G 4 9 8 4 1 7 6 7 7 8 H 3 7 2 5 8 3 3 4 5 1 I 0 9 7 3 1 6 7 9 6 1 J 9 6 0 4 7 3 6 5 7 0 K 5 6 4 1 0 9 1 2 7 5
Teraz w oparciu o powstałą tabelę ustala się ilość i współrzędne kolumn dwóch tablic (tzw. bloków przestawieniowych), w których cyfry szyfru zostaną wymieszane. Posłuży do tego indywidualna liczba agenta (w tym przykładzie 13) i dwie cyfry z ostatniego wiersza powyższej tabeli (K) spełniające następujące warunki: mają to być dwie sąsiednie, ostatnie cyfry wiersza, różne i większe od zera. W tym przykładzie będą to cyfry 7 i 5 (ale gdyby ostatnią cyfrą wiersza było 0, to do tworzenia tablic należałoby użyć cyfr 2 i 7). Ilość wierszy tych tablic będzie zależeć od długości tekstu, ale ilość kolumn jest z góry założona, a określa ją wynik dodania do siebie indywidualnej liczby agenta i dwóch liczb z wiersza K. W tym przykładzie pierwsza tablica będzie miała 13 + 7 = 20, a druga 13 + 5 = 18 kolumn. Aby wypełnić pierwsze wiersze tych tablic, należy potrzebną ilość cyfr (20 + 18 = 38) wypisać z 10-cyfrowych grup G-K. Wypisywanie odbywa się pionowo (kolumnami), a kolejność czytanych kolumn wyznaczają cyfry w wierszu F.
Tabelę zbudowaną z wierszy G-K konstruowano tak, aby można było uzyskać potrzebną liczbę cyfr bez konieczności powtarzania choćby najmniejszej części ciągu. W związku z tym ilość grup tworzonych na podstawie wiersza E zależała od indywidualnej liczby agenta. Ponieważ ilość kolumn w dwóch tablicach wyznaczano dodaniem do tej liczby dwóch liczb z wiersza K, a te mogą mieć najwyższą wartość 8 i 9, to maksymalną ilość kolumn w obu tablicach opisuje wzór: największa ilość kolumn = (liczba agenta + 8) + (liczba agenta + 9). W przypadku liczby 13 potrzebne będą maksymalnie 43 cyfry. W 1956 roku indywidualną liczbę Häyhänena zmieniono na 20, więc największa potrzebna liczba cyfr wzrosła do 57. W związku z tym w procesie tworzenia grup na podstawie wiersza E dodano jedną grupę, co dawało 60 cyfr.
Wypisane w ten sposób kolejne 38 cyfr z grup G-K to: 6 3 7 6 1 7 5 6 7 7 7 4 9 5 2 8 1 1 0 5 4 3 0 9 5 7 3 6 3 9 1 8 1 7 0 4 5 3
Te cyfry należy zapisać jako oddzielne ciągi (pierwszy z 20 i drugi z 18 cyfr), a następnie opisać kolejność cyfr w ciągu cyframi od 1 do 20 (pierwszy) i od 1 do 18 (drugi). Utworzone w ten sposób wiersze będą współrzędnymi kolumn w blokach przestawieniowych. Ostateczny kształt tablice uzyskają, kiedy będzie znana całkowita liczba cyfr tekstu zaszyfrowanego.
63761756777495281105 1 blok przestawieniowy1051311114712151617619841823209
430957363918170453 2 blok przestawieniowy731715912411516114213188106
Teraz na podstawie ostatniej z utworzonych poprzednio 10-cyfrowych grup (K), opisując kolejność cyfr tej grupy cyframi od 1 do 0, tworzy się jeszcze jeden wiersz (L).
K5641091275L 5 7 4 1 0 9 2 3 8 6
Cyfry z tego wiersza będą współrzędnymi kolumn szachownicy, która posłuży do szyfrowania tekstu. Jest to szachownica z rozwidleniem, w której dodatkowo skomplikowano proces wypełniania jej literami. Słowo klucz (СНЕГОПАД) składało się z 8 liter, ale w drugim wierszu szachownicy wpisywano tylko 7. Pozostałe litery alfabetu (w tym ostatnią literę słowa-klucza) wpisywano w pola szachownicy kolumnami od lewej z pominięciem kolumn trzeciej i piątej (w oryginalnej szachownicy Häyhänena używano cyrylicy, której ilość liter sprawiała, że ostatnie pole o współrzędnych 22 również zostawało puste). W pustych polach umieszczono kropkę, przecinek oraz kilka symboli używanych w czasie szyfrowania tekstu: thumb|400px|Szachownica Häyhänena symbol powtórzenia (używany, aby uniknąć pomyłki przy zapisywaniu lub odczytywaniu ważnych fragmentów tekstu; w przechwyconym przez FBI szyfrogramie użyto go powtarzając oznaczenie punktu kontaktowego); symbol oznaczający słowo numer (w korespondencji między radzieckimi wywiadowcami i centralą w Moskwie powoływano się często na wcześniejsze szyfrogramy podając ich numery; użycie skrótu redukowało liczbę znaków w tekście zaszyfrowanym); symbol L/C oznaczający początek/koniec zapisu cyfr (osoba odszyfrowująca tekst po odczytaniu znaku L/C wiedziała, że następujące po nim cyfry nie są kodami liter, tylko elementami liczby; dopiero następne pojawienie się znacznika L/C oznaczało powrót do zaszyfrowanych liter; żeby uniknąć pomyłek, każdą cyfrę powtarzano trzykrotnie); symbol PT oznaczający początek tekstu (początek każdego szyfrogramu zawierał stałe elementy – np. kolejny numer depeszy – które mogły być wskazówką dla kryptoanalityków; z tego powodu przed rozpoczęciem szyfrowania tekst jawny dzielono w dowolnym miejscu i powstałe dwie części zamieniano miejscami; ukrywano w ten sposób początek wiadomości wewnątrz szyfrogramu oznaczając go właśnie symbolem PT). symbol P/Ł, który (na tej samej zasadzie jak L/C) oznaczał początek użycia alfabetu łacińskiego i miejsce powrotu do cyrylicy; litery alfabetu łacińskiego kodowano wg najprostszej tablicy: A = 01, B = 02, C = 03 itd. Nie było kodu zastępującego spację. Teksty szyfrowano bez odstępów między wyrazami.
Poniżej szachownica utworzona według elementów tego przykładu (słowo-klucz to ESTONIA).
5 7 4 1 0 9 2 3 8 6 E S T O N I A 3 Ą Ć Ż F Ź J Ł Ó Ś W 8 B D . G L/C K M P U Y 6 C Ę , H PT L Ń R V Z
Szyfrowanie W tym przykładzie do zaszyfrowania użyty będzie fragment opisu szyfru VIC rozpoczynający tę stronę: Szyfr używany w latach 50 XX w. przez siatkę radzieckich szpiegów w Stanach Zjednoczonych Ameryki. Uznawany jest za najlepszy w historii szyfr ręczny czyli taki, w którym do szyfrowania nie używano żadnych urządzeń mechanicznych lub elektrycznych. Jego nazwa pochodzi od pierwszych liter imienia Victor, które było kryptonimem Reino Häyhänen.
thumb|300px|left|Tekst jawny przekształcony wstępnie przy pomocy szachownicy