Szyfry zastępcze - działalność edukacyjna i naukowa Władimira Wiktorowicza Anisimowa. Dyskusje na temat semantyki kodu HTML z przykładami Układ semantyczny – co to jest
MATEMATYKA
Vestn. Om. nie-ta. 2016. Nr 3. S. 7-9.
UDC 512,4 VA Romankow
OPCJA SEMANTYCZNIE SILNEGO SZYFROWANIA W OPARCIU O RSA*
Głównym celem artykułu jest zaproponowanie innego sposobu doboru jednego z głównych parametrów schematu szyfrowania opartego na systemie kryptograficznym RSA zaproponowanym przez autora w poprzednie prace. Oryginalna wersja opiera się na złożoności obliczeniowej wyznaczania rzędów elementów w multiplikatywnych grupach pierścieni modułowych. Zaproponowana metoda zmienia tę podstawę w inny trudny do rozwiązania problem ustalenia, czy elementy grup multiplikatywnych pierścieni modułowych należą do potęg tych grup. Szczególnym przypadkiem takiego problemu jest klasyczny problem wyznaczania kwadratowości reszty, który jest uważany za trudny obliczeniowo. Zadanie to określa siłę semantyczną znanego systemu szyfrowania Goldwassera-Micali. W proponowanej wersji siła semantyczna schematu szyfrowania opiera się na złożoności obliczeniowej problemu określenia, czy elementy grup multiplikatywnych pierścieni modułowych należą do potęg tych grup.
Słowa kluczowe: system kryptograficzny RSA, szyfrowanie kluczem publicznym, pierścień modułowy, reszta kwadratowa, siła semantyczna.
1. Wstęp
Celem tej pracy jest wprowadzenie nowych elementów do wersji schematu szyfrowania opartej na RSA, wprowadzonej przez autora w . Mianowicie: zaproponowano inny sposób określenia podgrup występujących na tym schemacie. Metoda ta prowadzi do zastąpienia podstawowego, złożonego obliczeniowo problemu wyznaczania rzędów elementów grup multiplikatywnych pierścieni modułowych, skomplikowanym obliczeniowo problemem wprowadzania danych potęg tych grup. Szczególnym przypadkiem tego ostatniego problemu jest klasyczny problem wyznaczania kwadratowości reszty elementu grupy multiplikatywnej pierścienia modułowego.
System szyfrowania klucza publicznego RSA został wprowadzony przez Rivesta, Shamira i Adlemana w 1977 roku. Jest szeroko stosowany na całym świecie i jest zawarty w prawie wszystkich podręcznikach do kryptografii. Jeśli chodzi o ten system i jego siłę kryptograficzną, zobacz na przykład.
Podstawowa wersja systemu jest deterministyczna i z tego powodu nie posiada właściwości tajemnicy semantycznej, najważniejszego wskaźnika siły kryptograficznej systemu szyfrowania klucza publicznego. Dlatego w praktyce stosuje się warianty systemu, których celem jest wprowadzenie do niego elementu probabilistycznego i tym samym zapewnienie spełnienia własności tajemnicy semantycznej.
Instalacja: platforma szyfrująca
Niech n będzie iloczynem dwóch dużych różnych liczb pierwszych p i q. Jako platformę dla systemu szyfrowania wybrano pierścień pozostałości Zn. Moduł n i platforma Zn są otwarte elementy systemie, liczby p i q są tajne.
* Badanie zostało wsparte przez Rosyjską Fundację Badań Podstawowych (projekt 15-41-04312).
© Romankov V.A., 2016
Romankow V.A.
Funkcję Eulera oznaczamy przez φ:N ^ N, przyjmując w tym przypadku wartość φ(n)= (p-1)(q-1). Zatem rząd grupy multiplikatywnej Z*n pierścienia Zn wynosi (p-1)(q-1). Jeśli chodzi o te pojęcia, zobacz na przykład.
Następnie wybierane są dwie podgrupy M i H grupy Z*n odpowiednio pierwszych okresów r i t. Proponuje się zdefiniowanie tych podgrup poprzez ich elementy generujące M = gr(g1,...,gk), H = gr(j1,...,hl). Przypomnijmy, że okres t(G) grupy G jest najmniejszą liczbą t taką, że dr = 1 dla dowolnego elementu geG. Okresem grupy Z*n jest liczba t (n), równa najmniejszej wspólnej wielokrotności liczb p-1 i q-1. Podgrupy M i H mogą mieć charakter cykliczny i definiowany przez jeden element generujący. Elementy generujące podgrup M i H uważa się za otwarte, natomiast okresy podgrup r i t za tajne.
W i wyjaśniono, jak skutecznie przeprowadzić określoną selekcję podgrup M i H, znając tajne parametry p i q. Co więcej, możesz najpierw ustawić r i t, a następnie wybrać p i q, a dopiero potem przeprowadzić dalsze działania. Należy zauważyć, że konstrukcja elementów danych rzędów w polach skończonych odbywa się według standardowej skutecznej procedury, opisanej np. Przejście do konstruowania elementów danych rzędów w grupach multiplikatywnych Z*n pierścieni modułowych Zn odbywa się w oczywisty sposób za pomocą chińskiego twierdzenia o resztach lub . Instalacja: wybór kluczy Kluczem szyfrującym e jest dowolna liczba naturalna względnie pierwsza do r. Klucz deszyfrujący d = ^ jest obliczany z równości
(te)d1 = 1 (modr). (1)
Klucz d istnieje, ponieważ parametr d1 jest obliczany ze względu na wzajemną pierwszość te i r. Klucz e jest publiczny, klucz d i parametr d1 są tajne.
Algorytm szyfrowania transmisji przez otwarta sieć wiadomości - m element podgrupy M, Alicja wybiera losowy element h z podgrupy H i oblicza element hm. Przekładnia wygląda
c = (hm)e (nowoczesny). (2)
Algorytm deszyfrowania
Bob odszyfrowuje otrzymaną wiadomość c w następujący sposób:
cd=m(nowoczesne). (3)
Wyjaśnienie prawidłowego deszyfrowania
Ponieważ ed=1 (modr), istnieje liczba całkowita k taka, że ed = 1 + rk. Następnie
cd = (hm)ed = (ht)edi m (mr)k = m (mod n). (4) Zatem element h zapisuje się jako element podgrupy H w postaci wartości słowa grupowego u(x1,.,xl) z elementów generujących h1t...,hl podgrupy H. Właściwie to my
wybierz słowo u(x1,.,xl), a następnie oblicz jego wartość h = u(h1t..., hl). W szczególności oznacza to, że elementy generujące h1t...,hl są otwarte.
Siła kryptograficzna schematu
Siła kryptograficzna schematu opiera się na trudności określenia, z danych elementów generujących podgrupy H grupy Z*n, okresu lub rzędu tej podgrupy. Gdyby rząd elementu można było obliczyć za pomocą wydajnego algorytmu, to zliczając rzędy o rd(h1), ..., ord(hl) elementów generujących podgrupy H, moglibyśmy znaleźć jego okres t = t (H), równa ich najmniejszej wspólnej wielokrotności . Umożliwiłoby to usunięcie ta opcja współczynnik zacienienia szyfrowania h poprzez transformację c1 = met(modri), redukując procedurę deszyfrowania do klasycznego systemu RSA z publicznym kluczem szyfrującym et.
3. Inny sposób zdefiniowania podgrupy H
W artykule zaproponowano inną możliwość określenia podgrupy H w rozważanym schemacie szyfrowania. Rozważmy najpierw jego szczególny przypadek, związany z rozpoznanym, nierozwiązywalnym problemem wyznaczania kwadratowości reszty z grupy Z*n. Przypomnijmy, że resztę aeZ^ nazywa się kwadratową, jeśli istnieje element xeZ*n taki, że x2= a (modn). Wszystkie reszty kwadratowe tworzą podgrupę QZ*n grupy Z*n. Problem określenia kwadratowości dowolnej reszty grupy uważa się za trudny obliczeniowo. Na tej właściwości opiera się dobrze znany, silny semantycznie system szyfrowania Goldwassera-Micali. O jego stabilności semantycznej całkowicie decyduje nierozwiązywalność problemu określenia kwadratowości reszty.
Załóżmy, że parametry p i q zostały wybrane z warunkiem p, q = 3 (mod 4), tj. p = 4k +3, q = 41 +3. W schematach związanych z kwadratową naturą reszt założenie to wygląda naturalnie i występuje dość często. Jeśli tak jest, odwzorowanie p:QZ*n ^ QZ*n, p:x^x2 jest bijekcją.
Podgrupa reszt kwadratowych QZ*n grupy ma indeks 4 w Z*n, patrz na przykład. Jej rząd o^^2^) jest równy φ(n)/4 = (4k + 2)(41 + 2)/4= 4kl + 2k + 21 + 1, czyli jest liczbą nieparzystą.
W powyższym schemacie szyfrowania zakładamy H = QZ*n. Każdy element podgrupy H ma rząd nieparzysty, gdyż okres t(Z*n), równy najmniejszej wspólnej wielokrotności liczb p - 1 = 4k +2 i q - 1 = 41 +2, jest podzielny przez 2 , ale nie jest podzielna przez 4. Maksymalnie możliwym wyborem dla M jest podgrupa rzędu 4, której elementy mają parzyste rzędy 2 lub 4. Jeśli istnieje skuteczna metoda obliczanie rzędu (lub przynajmniej jego parzystości) dowolnego elementu
Semantycznie silna opcja szyfrowania oparta na RSA
grupa 2*n, wówczas problem określenia kwadratowości reszty jest skutecznie rozwiązany. Wadą schematu z tym wyborem jest mała moc przestrzeni tekstów - podgrupa M. W rzeczywistości schemat powiela wspomniany już dobrze znany schemat Gol-Dwasser-Micali.
Dzięki kolejnemu wyborowi zyskujemy większe możliwości. Niech s będzie liczbą pierwszą, którą można uznać za wystarczająco dużą. Niech p i q będą liczbami pierwszymi takimi, że przynajmniej jedna z liczb p - 1 lub q - 1 jest podzielna przez s. Wyjaśniono, że można wybrać s, a następnie skutecznie znaleźć p lub q o danej właściwości. Załóżmy, że szukana jest liczba p w postaci 2sx +1. x jest zmieniane, a wynikowe p jest sprawdzane pod kątem prostoty, aż okaże się proste.
Zdefiniujmy podgrupę Н =, złożoną z s-potęg elementów grupy 2*n (dla s = 2 jest to podgrupa QZ*n). Jeżeli p = 52k + su + 1 i q = 521 + sv +1 (lub q = sl + V +1), gdzie liczby u i V nie są podzielne przez s, to rząd o^(H) podgrupy H posiadający 2 w grupie *n indeks b2 (lub indeks s, jeśli q = sl + V +1) jest równy B2k1 + Bku + b1n + w>. Porządek ten jest względnie pierwszy do s. W szczególności oznacza to, że elementy podgrupy H mają rzędy niepodzielne przez s. Jeśli element znajduje się poza podgrupą H, to jego rząd jest dzielony przez s, ponieważ s dzieli rząd grupowy. Jeżeli problem obliczenia rzędu elementu grupy 2*n (lub określenia jego podzielności przez s) daje się skutecznie rozwiązać w grupie 2*n, to problem wejścia do podgrupy również jest w niej skutecznie rozwiązany
Przy wyborze w określony sposób podgrupę H mamy możliwość wyboru jako M cyklicznej podgrupy rzędu r = 52 (lub rzędu s). Taka podgrupa istnieje, ponieważ rząd grupy 2*n jest równy (p-1)^-1) = (52k + vi)^21 + sv) (lub (52k + vi)^1 + V)), jest podzielna przez 52 (na s). Aby określić H, wystarczy podać s. Co więcej, dla dowolnego wyboru podgrupy M mamy M*2 =1. Jeżeli przy odszyfrowaniu wiadomości m można otrzymać element postaci tel, gdzie ed jest względnie pierwsze z s, to znajdując liczby całkowite y i z takie, że edy + s2z = 1, możemy obliczyć teL = m.
Jednakże elementy generujące podgrupy H nie są wskazane przy określeniu typu, zatem jeśli istnieje algorytm obliczania rzędów elementów grupy 2*n, nie pozwala to na obliczenie okresu podgrupy
H, co byłoby możliwe w wersji oryginalnej z .
Siła kryptograficzna wersji schematu opiera się na trudności w ustaleniu kolejności elementu grupy 2*n. W proponowanej wersji opiera się to na trudności w określeniu okresu podgrupy Z*s. Siła semantyczna Należy pamiętać, że c = (hm")e (modn) jest zaszyfrowaną wiadomością w postaci (2), gdzie heH, m" = m1 lub m" = m2. Szyfrowanie uważa się za silne semantycznie, jeśli jest niemożliwe skutecznie określić, co odpowiada wszystkiemu c. Prawidłową odpowiedź mt (i = 1 lub 2) uzyskuje się wtedy i tylko wtedy, gdy cmje należy do H. Oznacza to, że szyfrowanie jest silne semantycznie wtedy i tylko wtedy, gdy problem wystąpienia w H jest faktycznie nierozstrzygalny w przypadku rozpatrywanym w tym artykule jest problemem wejścia do podgrupy s-reszt Z*s. W szczególnym przypadku s = 2 otrzymujemy dobrze znany, uważany za trudny do rozwiązania problem wejścia do Q2 *n, na którym opiera się siła semantyczna systemu szyfrowania Goldwassera-Micali i szeregu innych systemów szyfrowania.
LITERATURA
Romankov V. A. Nowy semantycznie silny system szyfrowania klucza publicznego oparty na RSA // Stosowana matematyka dyskretna. 2015. Nr 3 (29). s. 32-40.
Rivest R., Shamir A., Adleman L. Metoda uzyskiwania podpisów cyfrowych i kryptosystemów klucza publicznego // Comm. ACM. 1978. tom. 21, nr 2. s. 120126.
Hinek M. Kryptoanaliza RSA i jego wariantów. Boca Raton: Chapman & Hall/CRC, 2010.
Song Y. Y. Ataki kryptoanalityczne na RSA. Berlin: Springer, 2008.
Znaczek M., Niski R.M. Kryptanaliza stosowana. Łamanie szyfrów w realnym świecie. Hoboken: JohnWiley&Sons, 2007.
Roman"kov V.A. Nowe probabilistyczne szyfrowanie klucza publicznego oparte na kryptosystemie RAS // Croups, Complexity, Cryptology. 2015. Vol. 7, No. 2. P. 153156.
Romankow V.A. Wprowadzenie do kryptografii. M.: Forum, 2012.
Menezes A., Ojrschot P.C., Vanstone S.A. Podręcznik kryptografii stosowanej . Boca Raton: CRC Press, 1996.
Goldwasser S., Micali S. Szyfrowanie probabilistyczne i jak grać w mentalnego pokera, zachowując w tajemnicy wszystkie częściowe informacje // Proc. 14. Sympozjum Teorii Obliczeń, 1982, s. 365-377.
4.1. Podstawy szyfrowania
Istota szyfrowania metodą zastępczą jest następująca. Niech wiadomości w języku rosyjskim będą szyfrowane, a każda litera tych wiadomości musi zostać zastąpiona. Potem dosłownie A alfabet źródłowy jest porównywany z pewnym zestawem symboli (zastąpienie szyfru) M A, B – M B, …, I – M I. Podstawienia szyfru dobierane są w taki sposób, że dowolne dwa zbiory ( M ja I MJ, ja ≠ j) nie zawierał identycznych elementów ( M ja ∩ M jot = Ø).
Tabela pokazana na ryc. 4.1 jest kluczem szyfru zastępczego. Wiedząc o tym, możesz wykonać zarówno szyfrowanie, jak i deszyfrowanie.
A | B | ... | I |
MA | M B | ... | M ja |
Ryc.4.1. Tabela podstawień szyfrów
Podczas szyfrowania każda litera A otwórz wiadomość można zastąpić dowolną postacią z zestawu MA. Jeśli wiadomość zawiera kilka liter A, wówczas każdy z nich zostaje zastąpiony dowolnym znakiem z MA. Dzięki temu za pomocą jednego klucza można zdobyć różne opcje szyfrogramy dla tej samej otwartej wiadomości. Od setów M A, M B, ..., M I nie przecinają się parami, wówczas dla każdego symbolu szyfrogramu można jednoznacznie określić, do którego zestawu należy, a co za tym idzie, jaką literę otwartego komunikatu zastępuje. Dzięki temu możliwe jest odszyfrowanie, a otwarta wiadomość zostaje ustalona w unikalny sposób.
Powyższy opis istoty szyfrów podstawieniowych dotyczy wszystkich ich odmian z wyjątkiem , w którym te same szyfry podstawieniowe mogą służyć do szyfrowania różnych znaków alfabetu oryginalnego (tj. M ja ∩ M jot ≠ Ø, ja ≠ j).
Metoda wymiany jest często wdrażana przez wielu użytkowników podczas pracy na komputerze. Jeśli z powodu zapomnienia nie przełączysz zestawu znaków na klawiaturze z łacińskiego na cyrylicę, wówczas zamiast liter alfabetu rosyjskiego podczas wpisywania tekstu zostaną wydrukowane litery alfabetu łacińskiego („zamienniki szyfrów”).
Do zapisywania wiadomości oryginalnych i zaszyfrowanych używane są ściśle określone alfabety. Alfabety służące do zapisywania wiadomości oryginalnych i zaszyfrowanych mogą się różnić. Znaki obu alfabetów można przedstawić za pomocą liter, ich kombinacji, cyfr, obrazów, dźwięków, gestów itp. Jako przykład możemy przytoczyć tańczących mężczyzn z opowiadania A. Conana Doyle’a () oraz rękopis litery runicznej () z powieści „Podróż do wnętrza Ziemi” J. Verne’a.
Szyfry podstawieniowe można podzielić na następujące podklasy(odmiany).
Ryc.4.2. Klasyfikacja szyfrów podstawieniowych
I. Szyfry zwykłe. Zastąpienia szyfru składają się z tej samej liczby znaków lub są oddzielone od siebie separatorem (spacja, kropka, myślnik itp.).
Kod sloganu. Dla danego szyfru konstrukcja tabeli podstawień szyfrów opiera się na sloganie (kluczu) - łatwym do zapamiętania słowie. Drugi wiersz tabeli zamian szyfrów jest wypełniany najpierw hasłem (i powtarzające się litery są odrzucane), a następnie pozostałymi literami, które nie wchodzą w skład hasła, w kolejności alfabetycznej. Na przykład, jeśli wybrane zostanie hasło „UNCLE”, tabela będzie wyglądać następująco.
A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I |
D | I | I | N | A | B | W | G | mi | Siema | I | Z | Y | DO | L | M | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA |
Ryc.4.4. Tabela zamienników szyfru dla szyfru sloganowego
Podczas szyfrowania oryginalnej wiadomości „ABRAMOV” przy użyciu powyższego klucza, szyfrogram będzie wyglądał jak „DYAPDKMI”.
Kwadrat Polibijski. Szyfr został wynaleziony przez greckiego męża stanu, dowódcę i historyka Polibiusza (203-120 p.n.e.). W odniesieniu do alfabetu rosyjskiego i cyfr indyjskich (arabskich) istota szyfrowania była następująca. Litery zapisywane są w kwadracie 6x6 (niekoniecznie w kolejności alfabetycznej).
1 | 2 | 3 | 4 | 5 | 6 | |
1 | A | B | W | G | D | mi |
2 | Siema | I | Z | I | Y | DO |
3 | L | M | N | O | P | R |
4 | Z | T | U | F | X | C |
5 | H | Cii | SCH | Kommiersant | Y | B |
6 | mi | JA | I | - | - | - |
Ryc.4.5. Tabela podstawień szyfrów dla kwadratu Polybiana
Zaszyfrowana litera jest zastępowana współrzędnymi kwadratu (wiersz-kolumna), w którym jest zapisana. Na przykład, jeśli oryginalna wiadomość to „ABRAMOV”, wówczas szyfrogram to „11 12 36 11 32 34 13”. W Starożytna Grecja wiadomości przesyłano za pomocą telegrafii optycznej (przy użyciu pochodni). Dla każdej litery wiadomości podnoszono najpierw liczbę pochodni odpowiadającą numerowi rzędu litery, a następnie numer kolumny.
Tabela 4.1. Częstotliwość występowania rosyjskich liter w tekstach
NIE. | List | Częstotliwość, % | NIE. | List | Częstotliwość, % |
1 | O | 10.97 | 18 | B | 1.74 |
2 | mi | 8.45 | 19 | G | 1.70 |
3 | A | 8.01 | 20 | Z | 1.65 |
4 | I | 7.35 | 21 | B | 1.59 |
5 | N | 6.70 | 22 | H | 1.44 |
6 | T | 6.26 | 23 | Y | 1.21 |
7 | Z | 5.47 | 24 | X | 0.97 |
8 | R | 4.73 | 25 | I | 0.94 |
9 | W | 4.54 | 26 | Cii | 0.73 |
10 | L | 4.40 | 27 | JA | 0.64 |
11 | DO | 3.49 | 28 | C | 0.48 |
12 | M | 3.21 | 29 | SCH | 0.36 |
13 | D | 2.98 | 30 | mi | 0.32 |
14 | P | 2.81 | 31 | F | 0.26 |
15 | U | 2.62 | 32 | Kommiersant | 0.04 |
16 | I | 2.01 | 33 | Siema | 0.04 |
17 | Y | 1.90 |
Istnieją podobne tabele dla par liter (bigramów). Na przykład często spotykanymi bigramami są „to”, „ale”, „st”, „po”, „en” itp. Inna technika łamania szyfrogramów polega na eliminowaniu możliwych kombinacji liter. Na przykład w tekstach (jeśli są napisane bez błędów ortograficznych) nie można znaleźć kombinacji „chya”, „shchi”, „b” itp.
Aby skomplikować zadanie łamania szyfrów jeden do jednego, nawet w czasach starożytnych z oryginalnych wiadomości przed szyfrowaniem usuwano spacje i/lub samogłoski. Inną metodą utrudniającą otwarcie jest szyfrowanie biggramy(w parach liter).
4.3. Szyfry poligramowe
Poligramowe szyfry podstawieniowe- są to szyfry, w których jedno podstawienie szyfru odpowiada kilku znakom jednocześnie tekst źródłowy.
Porty szyfrowania Bigram. Szyfr Porty, przedstawiony w formie tabeli, jest pierwszym znanym szyfrem bigramowym. Rozmiar jego stołu wynosił 20 x 20 komórek; standardowy alfabet pisano u góry poziomo i pionowo po lewej stronie (nie zawierał liter J, K, U, W, X i Z). W komórkach tabeli można było wpisywać dowolne cyfry, litery czy symbole – sam Giovanni Porta używał symboli – pod warunkiem, że zawartość żadnej z komórek się nie powtarzała. W odniesieniu do języka rosyjskiego tabela podstawień szyfrów może wyglądać następująco.
A | B | W | G | D | mi (Siema) | I | Z | I (T) | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | |
A | 001 | 002 | 003 | 004 | 005 | 006 | 007 | 008 | 009 | 010 | 011 | 012 | 013 | 014 | 015 | 016 | 017 | 018 | 019 | 020 | 021 | 022 | 023 | 024 | 025 | 026 | 027 | 028 | 029 | 030 | 031 |
B | 032 | 033 | 034 | 035 | 036 | 037 | 038 | 039 | 040 | 041 | 042 | 043 | 044 | 045 | 046 | 047 | 048 | 049 | 050 | 051 | 052 | 053 | 054 | 055 | 056 | 057 | 058 | 059 | 060 | 061 | 062 |
W | 063 | 064 | 065 | 066 | 067 | 068 | 069 | 070 | 071 | 072 | 073 | 074 | 075 | 076 | 077 | 078 | 079 | 080 | 081 | 082 | 083 | 084 | 085 | 086 | 087 | 088 | 089 | 090 | 091 | 092 | 093 |
G | 094 | 095 | 096 | 097 | 098 | 099 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 | 120 | 121 | 122 | 123 | 124 |
D | 125 | 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 140 | 141 | 142 | 143 | 144 | 145 | 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 |
JEJ) | 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 175 | 176 | 177 | 178 | 179 | 180 | 181 | 182 | 183 | 184 | 185 | 186 |
I | 187 | 188 | 189 | 190 | 191 | 192 | 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 |
Z | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 |
Ja (Y) | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 |
DO | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 | 294 | 295 | 296 | 297 | 298 | 299 | 300 | 301 | 302 | 303 | 304 | 305 | 306 | 307 | 308 | 309 | 310 |
L | 311 | 312 | 313 | 314 | 315 | 316 | 317 | 318 | 319 | 320 | 321 | 322 | 323 | 324 | 325 | 326 | 327 | 328 | 329 | 330 | 331 | 332 | 333 | 334 | 335 | 336 | 337 | 338 | 339 | 340 | 341 |
M | 342 | 343 | 344 | 345 | 346 | 347 | 348 | 349 | 350 | 351 | 352 | 353 | 354 | 355 | 356 | 357 | 358 | 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 | 368 | 369 | 370 | 371 | 372 |
N | 373 | 374 | 375 | 376 | 377 | 378 | 379 | 380 | 381 | 382 | 383 | 384 | 385 | 386 | 387 | 388 | 389 | 390 | 391 | 392 | 393 | 394 | 395 | 396 | 397 | 398 | 399 | 400 | 401 | 402 | 403 |
O | 404 | 405 | 406 | 407 | 408 | 409 | 410 | 411 | 412 | 413 | 414 | 415 | 416 | 417 | 418 | 419 | 420 | 421 | 422 | 423 | 424 | 425 | 426 | 427 | 428 | 429 | 430 | 431 | 432 | 433 | 434 |
P | 435 | 436 | 437 | 438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 455 | 456 | 457 | 458 | 459 | 460 | 461 | 462 | 463 | 464 | 465 |
R | 466 | 467 | 468 | 469 | 470 | 471 | 472 | 473 | 474 | 475 | 476 | 477 | 478 | 479 | 480 | 481 | 482 | 483 | 484 | 485 | 486 | 487 | 488 | 489 | 490 | 491 | 492 | 493 | 494 | 495 | 496 |
Z | 497 | 498 | 499 | 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 508 | 509 | 510 | 511 | 512 | 513 | 514 | 515 | 516 | 517 | 518 | 519 | 520 | 521 | 522 | 523 | 524 | 525 | 526 | 527 |
T | 528 | 529 | 530 | 531 | 532 | 533 | 534 | 535 | 536 | 537 | 538 | 539 | 540 | 541 | 542 | 543 | 544 | 545 | 546 | 547 | 548 | 549 | 550 | 551 | 552 | 553 | 554 | 555 | 556 | 557 | 558 |
U | 559 | 560 | 561 | 562 | 563 | 564 | 565 | 566 | 567 | 568 | 569 | 570 | 571 | 572 | 573 | 574 | 575 | 576 | 577 | 578 | 579 | 580 | 581 | 582 | 583 | 584 | 585 | 586 | 587 | 588 | 589 |
F | 590 | 591 | 592 | 593 | 594 | 595 | 596 | 597 | 598 | 599 | 600 | 601 | 602 | 603 | 604 | 605 | 606 | 607 | 608 | 609 | 610 | 611 | 612 | 613 | 614 | 615 | 616 | 617 | 618 | 619 | 620 |
X | 621 | 622 | 623 | 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 | 632 | 633 | 634 | 635 | 636 | 637 | 638 | 639 | 640 | 641 | 642 | 643 | 644 | 645 | 646 | 647 | 648 | 649 | 650 | 651 |
C | 652 | 653 | 654 | 655 | 656 | 657 | 658 | 659 | 660 | 661 | 662 | 663 | 664 | 665 | 666 | 667 | 668 | 669 | 670 | 671 | 672 | 673 | 674 | 675 | 676 | 677 | 678 | 679 | 680 | 681 | 682 |
H | 683 | 684 | 685 | 686 | 687 | 688 | 689 | 690 | 691 | 692 | 693 | 694 | 695 | 696 | 697 | 698 | 699 | 700 | 701 | 702 | 703 | 704 | 705 | 706 | 707 | 708 | 709 | 710 | 711 | 712 | 713 |
Cii | 714 | 715 | 716 | 717 | 718 | 719 | 720 | 721 | 722 | 723 | 724 | 725 | 726 | 727 | 728 | 729 | 730 | 731 | 732 | 733 | 734 | 735 | 736 | 737 | 738 | 739 | 740 | 741 | 742 | 743 | 744 |
SCH | 745 | 746 | 747 | 748 | 749 | 750 | 751 | 752 | 753 | 754 | 755 | 756 | 757 | 758 | 759 | 760 | 761 | 762 | 763 | 764 | 765 | 766 | 767 | 768 | 769 | 770 | 771 | 772 | 773 | 774 | 775 |
Kommiersant | 776 | 777 | 778 | 779 | 780 | 781 | 782 | 783 | 784 | 785 | 786 | 787 | 788 | 789 | 790 | 791 | 792 | 793 | 794 | 795 | 796 | 797 | 798 | 799 | 800 | 801 | 802 | 803 | 804 | 805 | 806 |
Y | 807 | 808 | 809 | 810 | 811 | 812 | 813 | 814 | 815 | 816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 826 | 827 | 828 | 829 | 830 | 831 | 832 | 833 | 834 | 835 | 836 | 837 |
B | 838 | 839 | 840 | 841 | 842 | 843 | 844 | 845 | 846 | 847 | 848 | 849 | 850 | 851 | 852 | 853 | 854 | 855 | 856 | 857 | 858 | 859 | 860 | 861 | 862 | 863 | 864 | 865 | 866 | 867 | 868 |
mi | 869 | 870 | 871 | 872 | 873 | 874 | 875 | 876 | 877 | 878 | 879 | 880 | 881 | 882 | 883 | 884 | 885 | 886 | 887 | 888 | 889 | 890 | 891 | 892 | 893 | 894 | 895 | 896 | 897 | 898 | 899 |
JA | 900 | 901 | 902 | 903 | 904 | 905 | 906 | 907 | 908 | 909 | 910 | 911 | 912 | 913 | 914 | 915 | 916 | 917 | 918 | 919 | 920 | 921 | 922 | 923 | 924 | 925 | 926 | 927 | 928 | 929 | 930 |
I | 931 | 932 | 933 | 934 | 935 | 936 | 937 | 938 | 939 | 940 | 941 | 942 | 943 | 944 | 945 | 946 | 947 | 948 | 949 | 950 | 951 | 952 | 953 | 954 | 955 | 956 | 957 | 958 | 959 | 960 | 961 |
Ryc.4.10. Tabela zamiany szyfrów dla szyfru portów
Szyfrowanie odbywa się przy użyciu par liter oryginalnej wiadomości. Pierwsza litera pary wskazuje wiersz zastępujący szyfr, druga - kolumnę. Jeżeli w oryginalnej wiadomości jest nieparzysta liczba liter, dodawany jest do niej znak pomocniczy („znak pusty”). Na przykład oryginalna wiadomość „AB RA MO V”, zaszyfrowana - „002 466 355 093”. Litera „I” jest używana jako symbol pomocniczy.
Szyfr Playfair (angielski: „Fair game”). Na początku lat pięćdziesiątych XIX wieku. Charles Wheatstone wynalazł tak zwany „szyfr prostokątny”. Leon Playfair, bliski przyjaciel Wheatstone'a, mówił o tym szyfrze podczas oficjalnej kolacji w 1854 roku dla ministra spraw wewnętrznych, lorda Palmerstona i księcia Alberta. A ponieważ Playfair był dobrze znany w kręgach wojskowych i dyplomatycznych, dzieło Wheatstone’a na zawsze zostało przypisane nazwie „szyfr Playfair”.
Szyfr ten był pierwszym alfabetycznym szyfrem bigramowym (tabela bigramów Porty używała symboli, a nie liter). Został zaprojektowany w celu zapewnienia tajności komunikacji telegraficznej i był używany przez wojska brytyjskie podczas wojny burskiej i pierwszej wojny światowej. Był również używany przez Straż Przybrzeżną Wysp Australijskich podczas II wojny światowej.
Szyfr zapewnia szyfrowanie par symboli (digramów). Zatem szyfr ten jest bardziej odporny na pękanie niż prosty szyfr podstawieniowy, ponieważ analiza częstotliwości jest trudniejsza. Można to przeprowadzić, ale nie dla 26 możliwych znaków (alfabet łaciński), ale dla 26 x 26 = 676 możliwych bigramów. Analiza częstotliwości bigramów jest możliwa, ale jest znacznie trudniejsza i wymaga znacznie większej ilości tekstu zaszyfrowanego.
Aby zaszyfrować wiadomość, należy podzielić ją na bigramy (grupy dwóch symboli), a jeśli w bigramie zostaną znalezione dwa identyczne symbole, wówczas pomiędzy nimi zostanie dodany wcześniej uzgodniony symbol pomocniczy (w oryginale - X, dla alfabetu rosyjskiego - I). Na przykład „zaszyfrowana wiadomość” staje się „zaszyfrowaną wiadomością” I Komunikacja I" Aby utworzyć tabelę kluczy, wybiera się hasło, które następnie wypełnia się zgodnie z zasadami systemu szyfrowania Trisemus. Przykładowo dla hasła „UNCLE” tabela kluczy wygląda następująco.
D | I | I | N | A | B |
W | G | mi | Siema | I | Z |
Y | DO | L | M | O | P |
R | Z | T | U | F | X |
C | H | Cii | SCH | Kommiersant | Y |
B | mi | JA | - | 1 | 2 |
Ryc.4.11. Tabela kluczy dla szyfru Playfair
Następnie, kierując się poniższymi zasadami, szyfrowane są pary znaków w tekście źródłowym:
1. Jeżeli w jednym wierszu występują symbole bigramu tekstu źródłowego, wówczas symbole te zastępowane są symbolami umieszczonymi w najbliższych kolumnach na prawo od odpowiednich symboli. Jeśli znak jest ostatnim w linii, to zostaje zastąpiony pierwszym znakiem tej samej linii.
2. Jeżeli bigramy tekstu źródłowego występują w jednej kolumnie, wówczas są one konwertowane na znaki tej samej kolumny znajdujące się bezpośrednio pod nimi. Jeżeli znak jest dolnym znakiem w kolumnie, to zostaje on zastąpiony pierwszym znakiem tej samej kolumny.
3. Jeżeli bigramy tekstu źródłowego znajdują się w różnych kolumnach i różnych wierszach, wówczas zastępowane są one znakami znajdującymi się w tych samych wierszach, ale odpowiadającymi pozostałym rogom prostokąta.
Przykład szyfrowania.
Bigram „for” tworzy prostokąt - zastępuje go „zhb”;
Bigram „shi” znajduje się w jednej kolumnie i jest zastąpiony przez „yu”;
Bigram „fr” znajduje się w jednym wierszu i jest zastąpiony przez „xc”;
Bigram „ov” tworzy prostokąt - zastępuje go „yzh”;
Bigram „an” znajduje się w jednym wierszu - zastępuje go „ba”;
Bigram „ale” tworzy prostokąt - zastępuje go „am”;
Bigram „es” tworzy prostokąt - zastępuje go „gt”;
Bigram „oya” tworzy prostokąt - zastępuje go „ka”;
Bigram „około” tworzy prostokąt - zastępuje go „pa”;
Bigram „shche” tworzy prostokąt - zastępuje go „shyo”;
Bigram „ni” tworzy prostokąt - zostaje zastąpiony przez „an”;
Bigram „ee” tworzy prostokąt i jest zastępowany przez „gi”.
Kod to „zhb yue xs yzh ba am gt ka pa she an gi”.
Aby odszyfrować, należy zastosować odwrócenie tych zasad, odrzucając znaki I(Lub X), jeśli nie mają one sensu w oryginalnej wiadomości.
Składał się z dwóch dysków – zewnętrznego dysku stałego i wewnętrznego dysku ruchomego, na których wydrukowano litery alfabetu. Proces szyfrowania polegał na odnalezieniu litery tekstu jawnego dysk zewnętrzny i zastąpienie go literą s dysk wewnętrzny, stojąc pod nią. Następnie dysk wewnętrzny został przesunięty o jedną pozycję, a druga litera została zaszyfrowana przy użyciu nowego alfabetu szyfrującego. Kluczem do tego szyfru była kolejność liter na dyskach i początkowa pozycja dysku wewnętrznego względem zewnętrznego.
Stół Trisemusa. Jednym z szyfrów wymyślonych przez niemieckiego opata Trisemusa był szyfr wieloalfabetyczny oparty na tzw. „tablicy Trisemusa” – tabeli o bokach równych N, Gdzie N– liczba znaków w alfabecie. W pierwszym wierszu macierzy litery są zapisane w kolejności ich kolejności w alfabecie, w drugim - ten sam ciąg liter, ale z cyklicznym przesunięciem o jedną pozycję w lewo, w trzecim - z cyklicznym przesunięcie o dwie pozycje w lewo itp.
A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I |
B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A |
W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B |
G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W |
D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G |
mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D |
Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi |
I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema |
Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I |
I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z |
Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I |
DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y |
L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO |
M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L |
N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M |
O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N |
P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O |
R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P |
Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R |
T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z |
U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T |
F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U |
X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F |
C | H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X |
H | Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C |
Cii | SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H |
SCH | Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii |
Kommiersant | Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH |
Y | B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant |
B | mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y |
mi | JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B |
JA | I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi |
I | A | B | W | G | D | mi | Siema | I | Z | I | Y | DO | L | M | N | O | P | R | Z | T | U | F | X | C | H | Cii | SCH | Kommiersant | Y | B | mi | JA |
Ryc.4.17. Stół Trisemusa
Pierwsza linia jest także alfabetem dla liter tekstu jawnego. Pierwsza litera tekstu jest szyfrowana w pierwszym wierszu, druga litera w drugim i tak dalej. Po wykorzystaniu ostatniej linii wracają do pierwszej. Zatem wiadomość „ABRAMOV” przyjmie formę „AVTGRUZ”.
System szyfrowania Vigenère’a. W 1586 roku francuski dyplomata Blaise Vigenère przedstawił przed komisją Henryka III opis prostego, ale dość silnego szyfru, który opierał się na tablicy Trisemusa.
Przed szyfrowaniem wybierany jest klucz spośród znaków alfabetu. Sama procedura szyfrowania jest następująca. I-ty znak otwartej wiadomości w pierwszym wierszu określa kolumnę, a i-ty znak klucza w skrajnej lewej kolumnie określa wiersz. Na przecięciu wiersza i kolumny pojawi się i-ty znak szyfrogramu. Jeśli długość klucza jest krótsza niż wiadomość, jest on ponownie używany. Na przykład oryginalna wiadomość to „ABRAMOV”, klucz to „UNCLE”, kod szyfrujący to „DAFIYOYE”.
Gwoli uczciwości należy zauważyć, że autorstwo tego szyfru należy do Włocha Giovanniego Batisty Bellaso, który opisał go w 1553 roku. Historia „zignorowana ważny fakt i nazwał szyfr imieniem Vigenère, mimo że nie zrobił nic, aby go stworzyć. Bellazo zasugerował wywołanie tajnego słowa lub wyrażenia hasło(hasło włoskie; zwolnienie warunkowe francuskie - słowo).
W 1863 roku Fryderyk Kasiski opublikował algorytm ataku na ten szyfr, chociaż znane są już przypadki łamania jego szyfru przez niektórych doświadczonych kryptoanalityków. W szczególności w 1854 roku szyfr został złamany przez wynalazcę pierwszego komputera analitycznego, Charlesa Babbage'a, choć fakt ten stał się znany dopiero w XX wieku, kiedy grupa naukowców przeanalizowała obliczenia Babbage'a i osobiste notatki. Mimo to szyfr Vigenère’a cieszył się opinią wyjątkowo odpornego na „ręczne” łamanie. przez długi czas. I tak słynny pisarz i matematyk Charles Lutwidge Dodgson (Lewis Carroll) w swoim artykule „The Alphabetic Cipher”, opublikowanym w czasopiśmie dla dzieci w 1868 roku, nazwał szyfr Vigenère'a niezniszczalnym. W 1917 roku popularnonaukowy magazyn Scientific American również opisał szyfr Vigenère'a jako niemożliwy do złamania.
Maszyny obrotowe. Pomysły Albertiego i Bellaso wykorzystano do stworzenia elektromechanicznych maszyn rotacyjnych w pierwszej połowie XX wieku. Niektóre z nich były używane w różnych krajach aż do lat 80. XX wieku. Większość z nich wykorzystywała wirniki (koła mechaniczne), których względne położenie determinowało aktualny alfabet szyfrujący używany do wykonania podstawienia. Najbardziej znaną maszyną rotacyjną jest niemiecka maszyna Enigma z czasów II wojny światowej.
Piny wyjściowe jednego rotora łączy się z pinami wejściowymi kolejnego rotora i po naciśnięciu na klawiaturze oryginalnego symbolu komunikatu następuje zamknięcie obwodu elektrycznego, w wyniku czego zapala się żarówka z symbolem wymiany szyfru.
Ryc.4.19. System obrotowy Enigmy [www.cryptomuseum.com]
Efekt szyfrowania Enigmy jest pokazany po naciśnięciu dwóch klawiszy kolejno - prąd przepływa przez wirniki, „odbija się” od reflektora, a następnie ponownie przez wirniki.
Ryc.4.20. Schemat szyfrowania
Notatka. Szare linie pokazują inne możliwe obwody elektryczne wewnątrz każdego rotora. List A jest szyfrowany inaczej, gdy wykonywane są kolejne naciśnięcia klawiszy, jako pierwsze G, potem w C. Sygnał przemieszcza się inną trasą ze względu na obrót jednego z wirników po naciśnięciu poprzedniej litery pierwotnego komunikatu.
3. Opisać rodzaje szyfrów podstawieniowych.
(zastępstwa). W szyfrach podstawieniowych litery zamieniane są na inne litery tego samego alfabetu; podczas kodowania litery zamieniane są na coś zupełnie innego - obrazki, symbole innych alfabetów, ciągi różnych znaków itp. Zestawiona jest tabela zgodności jeden do jednego między alfabetem tekstu źródłowego a symbolami kodu i zgodnie z tą tabelą następuje kodowanie jeden do jednego. Aby rozszyfrować, musisz znać tabelę kodów.
Istnieje duża liczba kody stosowane w różnych obszarach życia człowieka. Dobrze znane kody są używane głównie dla wygody przesyłania informacji w taki czy inny sposób. Jeśli tabela kodów jest znana tylko nadawcy i odbiornikowi, wówczas w rezultacie powstaje raczej prymitywny szyfr, który można łatwo poddać analizie częstotliwościowej. Ale jeśli dana osoba jest daleka od teorii kodowania i nie jest zaznajomiona z analizą częstotliwości tekstu, rozwikłanie takich szyfrów będzie dla niego dość problematyczne.
A1Z26
Najprostszy szyfr. Nazywa się A1Z26 lub w wersji rosyjskiej A1Я33. Litery alfabetu zastępuje się ich numerami seryjnymi.
„NoZDR” można zaszyfrować jako 14-15-26-4-18 lub 1415260418.
Kod Morse'a
Litery, cyfry i niektóre znaki kojarzone są z zestawem kropek i kresek, które mogą być przekazywane drogą radiową, dźwiękową, pukaniem, telegrafem świetlnym i sygnałem flagowym. Ponieważ marynarze mają również odpowiednią flagę powiązaną z każdą literą, możliwe jest przekazanie wiadomości za pomocą flag.
Brajl
Braille to dotykowy system czytania dla niewidomych, składający się z sześciopunktowych znaków zwanych komórkami. Komórka składa się z trzech kropek o wysokości i dwóch kropek o szerokości.
Różne znaki brajlowskie powstają poprzez umieszczenie kropek w różnych miejscach komórki.
Dla wygody punkty są opisane przy czytaniu w następujący sposób: 1, 2, 3 od lewej strony od góry do dołu i 4, 5, 6 od prawej strony od góry do dołu.
Tworząc tekst, kieruj się następującymi zasadami:
jedna komórka (spacja) jest pomijana między słowami;
po przecinku i średniku komórka nie jest pomijana;
myślnik zapisuje się razem z poprzednim słowem;
przed numerem umieszczony jest znak cyfrowy.
Strony kodowe
W misjach i zagadkach komputerowych litery można kodować według ich kodów w różnych stronach kodowych - tabelach używanych na komputerach. W przypadku tekstów cyrylicowych najlepiej stosować najpopularniejsze kodowania: Windows-1251, KOI8, CP866, MacCyrillic. Chociaż w przypadku złożonego szyfrowania możesz wybrać coś bardziej egzotycznego.
Można kodować przy użyciu liczb szesnastkowych lub konwertować je na liczby dziesiętne. Przykładowo litera E w KOI8-R ma kod B3 (179), w CP866 - F0 (240), a w Windows-1251 - A8 (168). Możesz też poszukać pasujących liter w tabelach po prawej stronie w tabelach po lewej stronie, wtedy tekst okaże się wpisany w „szalonych słowach”, np. èαᬫº∩íαδ (866 → 437) lub Êðàêîçÿáðû (1251 → łac.-1).
Możesz też zmienić górną połowę znaków na dolną połowę w ramach jednej tabeli. Następnie dla Windows-1251 zamiast „krakozyabry” dostajesz „jp”jng ap(), zamiast „HELICOPTER” - „BEPRNK(R”. Takie przesunięcie w strona kodowa- jest to klasyczna utrata najbardziej znaczącego bitu podczas awarii zasilania serwery pocztowe. Znaki łacińskie można kodować z przesunięciem wstecznym w dół o 128 znaków. I takim kodowaniem będzie odmiana szyfru - ROT128, tylko nie dla zwykłego alfabetu, ale dla wybranej strony kodowej.
Dokładny czas powstania szyfru nie jest znany, ale niektóre odnalezione zapisy dotyczące tego systemu pochodzą z XVIII wieku. Odmiany tego szyfru były używane przez Zakon Różokrzyżowców i masonów. Ci ostatni używali go dość często w swoich tajnych dokumentach i korespondencji, dlatego szyfr zaczęto nazywać szyfrem masońskim. Nawet na nagrobkach masonów można zobaczyć napisy wykorzystujące ten kod. Podobny system szyfrowania był używany podczas wojny secesyjnej przez armię Jerzego Waszyngtona, a także przez więźniów w więzieniach federalnych Skonfederowanych Stanów Zjednoczonych.
Poniżej znajdują się dwie (niebieska i czerwona) możliwość wypełnienia siatki takich szyfrów. Litery ułożone są parami, druga litera z pary jest rysowana symbolem z kropką:
Szyfry autorskie
Wynaleziono ogromną różnorodność szyfrów, w których jednemu znakowi alfabetu (literze, cyfrze, znakowi interpunkcyjnemu) odpowiada jeden (rzadko więcej) znak graficzny. Większość z nich została wymyślona do wykorzystania w filmach science fiction, kreskówkach i gry komputerowe. Tutaj jest kilka z nich:
Tańczący mężczyźni
Jednym z najsłynniejszych szyfrów podstawieniowych autora jest „”. Został wymyślony i opisany przez angielskiego pisarza Arthura Conan Doyle'a w jednej ze swoich prac o Sherlocku Holmesie. Litery alfabetu zastąpiono symbolami, które wyglądają jak mali ludzie w różnych pozach. W książce nie wymyślono małych ludzików dla wszystkich liter alfabetu, więc fani twórczo zmodyfikowali i przerobili symbole, w wyniku czego powstał ten szyfr:
Alfabet Thomasa More’a
Ale taki alfabet opisał Tomasz More w swoim traktacie „Utopia” z 1516 roku:
Szyfry z serialu animowanego „Gravity Falls”
Szyfr Billa
Stanford Pines (pamiętnikarz)
Alfabet Jedi z Gwiezdnych Wojen
Obcy alfabet z Futuramy
Alfabet kryptoński Supermana
Alfabety Bionicle
Semantyka kodu HTML jest zawsze gorącym tematem. Niektórzy programiści starają się zawsze pisać kod semantyczny. Inni krytykują dogmatycznych zwolenników. Niektórzy nawet nie mają pojęcia, co to jest i dlaczego jest potrzebne. Semantyka jest zdefiniowana w HTML w postaci tagów, klas, identyfikatorów i atrybutów, które opisują cel, ale nie określają dokładnej zawartości, jaką zawierają. Oznacza to, że mówimy o oddzieleniu treści od jej formatu.
Zacznijmy od oczywistego przykładu.
Zła semantyka kodu
Dobra semantyka kodu
Tekst artykułu, który ktoś napisał. Inko Gnito- jego autor.Tytuł artykułu
Niezależnie od tego, czy uważasz, że HTML5 jest gotowy do użycia, czy nie, użycie Ale nie wszystko jest tak wyraźnie reprezentowane przez tagi HTML5. Przyjrzyjmy się zestawowi nazw klas i zobaczmy, czy spełniają one wymagania semantyczne. Nie kod semantyczny. To klasyczny przykład. Każdy stół roboczy z siatką CSS używa tego typu nazw klas do definiowania elementów siatki. Niezależnie od tego, czy jest to „yui-b”, „grid-4”, czy „spanHalf” - takie nazwy są bliższe określeniu znaczników niż opisowi treści. Jednak w większości przypadków ich użycie jest nieuniknione podczas pracy z modułowymi szablonami siatek. Kod semantyczny. Stopka zyskała duże znaczenie w projektowaniu stron internetowych. To jest dolna część strony, która zawiera takie elementy, jak powtarzająca się nawigacja, prawa użytkowania, informacje o autorze i tak dalej. Ta klasa definiuje grupę dla wszystkich tych elementów bez ich opisywania. Jeśli przełączyłeś się na używanie HTML5, lepiej użyć elementu Nie kod semantyczny. Precyzyjnie określa treść. Ale dlaczego tekst musi być duży? Aby wyróżnić się na tle innych mniejszych tekstów? W tym przypadku bardziej odpowiednie jest „standOut” (podświetlenie). Możesz zdecydować o zmianie stylu podświetlonego tekstu, ale nie zmieniać jego rozmiaru, w takim przypadku nazwa klasy może Cię zmylić. Kod semantyczny. W tym przypadku mówimy o określeniu poziomu ważności elementu w interfejsie aplikacji (na przykład akapitu lub przycisku). Element wyższego poziomu może mieć jasne kolory i większy rozmiar, podczas gdy elementy niższego poziomu mogą zawierać więcej treści. Ale w tym przypadku nie ma dokładnej definicji stylów, więc kod jest semantyczny. Ta sytuacja bardzo podobnie do używania tagów Kod semantyczny. Gdyby tylko każda nazwa klasy mogła być tak jasno zdefiniowana! W tym przypadku mamy opis sekcji, która zawiera treści, których przeznaczenie jest łatwe do opisania, podobnie jak „tweety”, „paginacja” czy „admin-nav”. Nie kod semantyczny. W tym przypadku mówimy o ustaleniu stylu pierwszego akapitu na stronie. Technikę tę stosuje się w celu przyciągnięcia uwagi czytelników do materiału. Lepiej jest używać nazwy „intro”, która nie wspomina o elemencie. Ale jeszcze lepiej jest użyć selektora dla takich akapitów, jak na przykład artykuł p:first-of-type lub h1 + p . Nie kod semantyczny. Jest to bardzo ogólna nazwa klasy używana do organizowania formatowania elementów. Ale nie ma w nim nic, co odnosiłoby się do opisu treści. Różni teoretycy semantyki zalecają używanie w takich przypadkach nazwy klasy, takiej jak „grupa”. Jest prawdopodobne, że mają rację. Ponieważ element ten niewątpliwie służy do grupowania kilku innych elementów, zalecana nazwa będzie lepiej określała jego przeznaczenie, bez wchodzenia w szczegóły. Nie kod semantyczny. Zbyt szczegółowy opis formatu treści. Lepiej wybrać inną nazwę, która będzie opisywała treść, a nie jej format. Kod semantyczny. Klasa bardzo dobrze opisuje stan treści. Na przykład wiadomość o powodzeniu może mieć zupełnie inny styl niż komunikat o błędzie. Nie kod semantyczny. W tym przykładzie podjęto próbę zdefiniowania formatu treści, a nie jej celu. „plain-jane” jest bardzo podobne do „normalnego” lub „regularnego”. Idealny kod CSS powinien być napisany w taki sposób, aby nie było potrzeby stosowania nazw klas typu „regular”, które opisują format treści. Nie kod semantyczny. Tego typu klasy są zwykle używane do definiowania elementów witryny, które nie powinny być uwzględniane w łańcuchu łączy. W takim przypadku lepiej użyć czegoś takiego jak rel=nofollow dla linków, ale nie klasy dla całej zawartości. Nie kod semantyczny. Jest to próba opisania formatu treści, a nie jej przeznaczenia. Załóżmy, że masz dwa artykuły na swojej stronie internetowej. A ty chcesz ich o to zapytać różne style. „Recenzje filmów” będą miały niebieskie tło, a „Wiadomości z ostatniej chwili” będą miały czerwone tło i większy rozmiar czcionki. Jednym ze sposobów rozwiązania problemu jest: Innym sposobem jest to: Z pewnością, jeśli przeprowadzisz wywiad z kilkoma programistami na temat tego, który kod jest bardziej zgodny z wymaganiami semantycznymi, większość wskaże pierwszą opcję. Doskonale odpowiada materiałowi tej lekcji: opis celu bez linków do formatowania. Druga opcja wskazuje format („blueBg” to nazwa klasy, która składa się z dwóch angielskie słowa, co oznacza „niebieskie tło”). Jeśli nagle zdecydujesz się zmienić wygląd recenzji filmów - na przykład zrobić zielone tło, wówczas nazwa klasy „blueBg” zamieni się w koszmar dewelopera. A nazwa „recenzja filmu” pozwoli Ci absolutnie łatwo zmieniać style projektowania, zachowując jednocześnie doskonały poziom obsługi kodu. Ale nikt nie twierdzi, że pierwszy przykład jest lepszy we wszystkich przypadkach bez wyjątku. Załóżmy, że w wielu miejscach witryny zastosowano określony odcień niebieskiego. Na przykład jest tłem dla niektórych stopek i obszarów na pasku bocznym. Możesz użyć następującego selektora: Recenzja filmu, stopka > div:n-ty-typu(2), na boku > div:n-ty-typu(4) ( tło: #c2fbff; ) Skuteczne rozwiązanie, ponieważ kolor ustala się tylko w jednym miejscu. Jednak taki kod staje się trudny w utrzymaniu, ponieważ ma długi selektor, który jest trudny do zrozumienia wizualnie. Będziesz także potrzebować innych selektorów, aby zdefiniować unikalne style, co spowoduje powtórzenie kodu. Możesz też zastosować inne podejście i zachować je oddzielnie: Recenzja filmu ( tło: #c2fbff; /* Definicja koloru */ ) stopka > div:nth-of-type(2) ( tło: #c2fbff; /* I jeszcze jedno */ ) na bok > div:nth-of - type(4) ( tło: #c2fbff; /* I jeszcze jedno */ ) Ten styl pomaga lepiej uporządkować plik CSS (w pliku zdefiniowano różne obszary). różne sekcje). Jednak ceną, jaką trzeba zapłacić, jest powtarzanie definicji. W przypadku dużych witryn identyfikacja tego samego koloru może sięgać kilku tysięcy razy. Straszny! Rozwiązaniem byłoby użycie klasy takiej jak „blueBg” w celu jednorazowego zdefiniowania koloru i wstawienia go do kodu HTML, gdy chcesz użyć tego projektu. Oczywiście lepiej nazwać go „mainBrandColor” lub „wtórna czcionka”, aby pozbyć się opisu formatowania. Możesz poświęcić semantykę kodu na rzecz oszczędzania zasobów. Projektanci i programiści stron internetowych uwielbiają rzucać żargonem i zawiłymi zwrotami, które czasami są dla nas trudne do zrozumienia. W tym artykule skupimy się na kodzie semantycznym. Dowiedzmy się, co to jest! Co to jest kod semantyczny? Nawet jeśli nie jesteś projektantem stron internetowych, prawdopodobnie wiesz, że Twoja witryna została napisana w języku HTML. Pierwotnie HTML miał służyć do opisu zawartości dokumentu, a nie do nadawania mu przyjemnego wizualnie wyglądu. Kod semantyczny powraca do tej oryginalnej koncepcji i zachęca projektantów stron internetowych do pisania kodu opisującego treść, a nie to, jak powinna wyglądać. Na przykład tytuł strony można zaprogramować w następujący sposób: To jest tytuł strony
Spowoduje to, że tytuł będzie duży i pogrubiony, nadając mu wygląd tytułu strony, ale nie ma w nim niczego, co opisuje go jako „tytuł” w kodzie. Oznacza to, że komputer nie może rozpoznać go jako tytułu strony. Pisząc tytuł semantycznie, aby komputer rozpoznał go jako „tytuł”, musimy użyć następującego kodu: Wygląd nagłówka można określić w osobny plik, zwane „kaskadowymi arkuszami stylów” (CSS), bez ingerencji w opisowy (semantyczny) kod HTML. Dlaczego kod semantyczny jest ważny? Zdolność komputera do prawidłowego rozpoznawania treści jest ważna z kilku powodów: Kod semantyczny ma także inne zalety: Jak upewnić się, że witryna korzysta z kodu semantycznego? NA ten moment nie ma narzędzia, które mogłoby sprawdzić kod semantyczny. Wszystko sprowadza się do sprawdzania kolorów, czcionek lub układów w kodzie, zamiast opisywać zawartość. Jeśli analiza kodu brzmi przerażająco, dobrym punktem wyjścia jest zapytanie projektanta stron internetowych – czy koduje z myślą o semantyce? Jeśli spojrzy na ciebie tępo lub zacznie śmiesznie gadać, możesz być pewien, że nie koduje w ten sposób. W tym momencie musisz zdecydować, czy nadać mu nowy kierunek w swojej pracy, czy znaleźć nowego projektanta?! ,
,
i tak dalej, ale do innych elementów interfejsu.
Ale...
To jest tytuł