-
Notifications
You must be signed in to change notification settings - Fork 210
/
permutation_ciphers.tex
48 lines (35 loc) · 4.6 KB
/
permutation_ciphers.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
\subsubsection{Шифры перестановки}
\selectlanguage{russian}
Шифры \emph{перестановки} реализуются следующим образом. Берут открытый текст, например буквенный, и разделяют на блоки определённой длины m: $x_1, x_2, \dots, x_m$, где $x_i$ - i-й символ, $i = 1, \dots , m$. Затем осуществляется перестановка позиций блока (вместе с символами). Перестановки могут быть однократные и многократные. Частный случай перестановки -- сдвиг. Приведём пример:
\begin{center}
секрет $\xrightarrow{\text{сдвиг}}$ ретсек $\xrightarrow{\text{перестановка}}$ рскете.
\end{center}
Ключ такого шифра указывает изменение порядка номеров позиций блока при шифровании и расшифровании.
Существуют так называемые \emph{маршрутные перестановки}. Используется какая-либо геометрическая фигура, например прямоугольник. Запись открытого текста ведётся по одному \emph{маршруту}, например по строкам, а считывание для шифрования осуществляется по другому маршруту, например по столбцам. Ключ шифра определяет эти маршруты.
В случае, когда рассматривается перестановка блока текста фиксированной длины, перестановку можно рассматривать как замену.
В полиалфавитных шифрах при шифровании открытый текст разбивается на блоки (последовательности) длины $n$, где $n$ -- \emph{период}. Этот параметр выбирает \emph{криптограф} и держит его в секрете.
Поясним процедуру шифрования полиалфавитным шифром. Запишем шифруемое сообщение в матрицу по столбцам определённой длины. Пусть открытый текст таков: <<Игры различаются по содержанию, характерным особенностям, а также по тому, какое место они занимают в жизни детей>>. Зададим $n=4$ и запишем этот текст в матрицу размера $(4 \times 24)$:
\begin{center} \resizebox{\textwidth}{!}{ \begin{tabular}{|*{24}{c|}}
\hline
и&р&и&т&о&е&н&а&т&ы&о&н&я&а&п&м&к&е&о&а&а&ж&и&е \\
г&а&ч&с&с&р&и&р&е&м&б&о&м&к&о&у&о&с&н&н&ю&и&д&й \\
р&з&а&я&о&ж&ю&а&р&о&е&с&а&ж&т&к&е&т&и&и&т&з&е& \\
ы&л&ю&п&д&а&х&к&н&с&н&т&т&е&о&а&м&о&з&м&в&н&т& \\
\hline
\end{tabular} } \end{center}
Выбираем $4$ различных моноалфавитных шифра.
Первую строку
\begin{center} \resizebox{\textwidth}{!}{ \begin{tabular}{|*{24}{c|}}
\hline
и&р&и&т&о&е&н&а&т&ы&о&н&я&а&п&м&к&е&о&а&а&ж&и&е \\
\hline
\end{tabular} } \end{center}
шифруем, используя первый шифр. Вторую строку
\begin{center} \resizebox{\textwidth}{!}{ \begin{tabular}{|*{24}{c|}}
\hline
г&а&ч&с&с&р&и&р&е&м&б&о&м&к&о&у&о&с&н&н&ю&и&д&й \\
\hline
\end{tabular} } \end{center}
шифруем, используя второй шифр, и~т.\,д.
Выполняя расшифрование, легальный пользователь знает период. Он записывает принятую шифрограмму по строкам в матрицу с длиной строки, равной периоду, к каждому столбцу применяет соответствующий ключ и расшифровывает сообщение, зная соответствующие шифры.
Шифры перестановки можно рассматривать как частный случай шифров замены, если отождествить один блок перестановки с одним символом большого алфавита.