Шифры замены

Пример 1

Зашифровать строку “мир труд майя”, используя ключ “абв” над алфавитом

" абвгдеёжзийклмнопрстуфхцчшщъыьэюя"

Шифр Виженера циклически смещает буквы открытого текста на число позиций, соответствующее номеру соответствующей буквы в ключе. Если ключ короче открытого текста, он циклически повторяется.

Таким образом, при ключе “абв”, первая буква смещается на 2, вторая на 3, третья на 4, четвёртая на 2 и т.д. Таким образом, “м” становится “о”, “и” → “л”, “р” → “ф”, " " → “б” и т.д. Наконец, “я” циклически смещается на 2 позиции, получается “а”.

Результат: “олфбхфхжгогна”

Пример 2

Шифротекст “жбябёхсплуллжбябёофщлзёглулзхьцхю” зашифорван шифром Виженера используя ключ “дек” над алфавитом

" абвгдеёжзийклмнопрстуфхцчшщъыьэюя"

Расшифруйте.

Операция, обратная шифрованию.

Результат: “быть или не быть вот в чём вопрос”

Пример 3

Используя схему Блома с секретной матрицей в \(GF(11)\) \[D = \begin{pmatrix} 1 & 3 & 5 \\ 3 & 8 & 6 \\ 5 & 6 & 7 \\ \end{pmatrix},\]

Рассчитайте секретные ключи для участников с идентификаторами \[I_1 = \begin{pmatrix} 1 \\ 3 \\ 3 \end{pmatrix}\] \[I_2 = \begin{pmatrix} 1 \\ 3 \\ 7 \end{pmatrix}\] \[I_3 = \begin{pmatrix} 3 \\ 5 \\ 1 \end{pmatrix}\]

Секретный ключ рассчитывается как \(g_i = D I_j\). Тогда

\[g_1 = D I_1 = \begin{pmatrix} 3 \\ 1 \\ 0 \end{pmatrix}\] \[g_2 = D I_2 = \begin{pmatrix} 1 \\ 3 \\ 6 \end{pmatrix}\] \[g_3 = D I_3 = \begin{pmatrix} 1 \\ 0 \\ 8 \end{pmatrix}\]

Пример 4

После распределения ключей по схеме Блома, был получен идентификатор \[I_1 = \begin{pmatrix} 1 \\ 3 \\ 3 \end{pmatrix}\] и секретный ключ \[g = \begin{pmatrix} 3 \\ 1 \\ 0 \end{pmatrix}.\]

Вычислите общий ключ со стороной с идентификатором \[I_2 = \begin{pmatrix} 1 \\ 3 \\ 7 \end{pmatrix}\]

Общим ключом будет являться скалярное произведение секретного ключа и идентификатора второй стороны: \[k = g^{\mathrm T} I_2 = 6\]

Пример 5

После распределения ключей по схеме Блома, был получен идентификатор \[I_2 = \begin{pmatrix} 1 \\ 3 \\ 7 \end{pmatrix}\] и секретный ключ \[g = \begin{pmatrix} 1 \\ 3 \\ 6 \end{pmatrix}.\]

Вычислите общий ключ со стороной с идентификатором \[I_1 = \begin{pmatrix} 1 \\ 3 \\ 3 \end{pmatrix}\]

Общим ключом будет являться скалярное произведение секретного ключа и идентификатора второй стороны: \[k = g^{\mathrm T} I_1 = 6\]

Пример 6

В результате атаки типа “человек посередине” удалось перехватить секретные ключи участников схемы Блома в GF(11) с идентификаторами \[I_1 = \begin{pmatrix} 1 \\ 3 \\ 3 \end{pmatrix}\] \[I_2 = \begin{pmatrix} 1 \\ 3 \\ 7 \end{pmatrix}\] \[I_3 = \begin{pmatrix} 3 \\ 5 \\ 1 \end{pmatrix}\]

Они имеют вид соответственно \[g_1 = \begin{pmatrix} 3 \\ 1 \\ 0 \end{pmatrix}\] \[g_2 = \begin{pmatrix} 1 \\ 3 \\ 6 \end{pmatrix}\] \[g_3 = \begin{pmatrix} 1 \\ 0 \\ 8 \end{pmatrix}\]

Восстановите матрицу \(D\).

Секретные ключи являются произведениями матрицы \(D\) на идентификатор. Если обозначить элементы матрицы \(d_{ij}\), то можем записать систему уравнений: \[D I_1 = g_1\] \[D I_2 = g_2\] \[D I_3 = g_3\]

или покомпонентно

\[d_{11} I_{11} + d_{12} I_{12} + d_{13} I_{13} = g_{11}\] \[d_{21} I_{11} + d_{22} I_{12} + d_{23} I_{13} = g_{12}\] \[d_{31} I_{11} + d_{32} I_{12} + d_{33} I_{13} = g_{13}\]

\[d_{11} I_{21} + d_{12} I_{22} + d_{13} I_{23} = g_{21}\] \[d_{21} I_{21} + d_{22} I_{22} + d_{23} I_{23} = g_{22}\] \[d_{31} I_{21} + d_{32} I_{22} + d_{33} I_{23} = g_{23}\]

\[d_{11} I_{31} + d_{12} I_{32} + d_{13} I_{33} = g_{31}\] \[d_{21} I_{31} + d_{22} I_{32} + d_{23} I_{33} = g_{32}\] \[d_{31} I_{31} + d_{32} I_{32} + d_{33} I_{33} = g_{33}\]

Вспомнив, что матрица \(D\) симметрична и подставляя значения:

\[d_{11} + d_{12} 3 + d_{13} 3 = 3\] \[d_{12} + d_{22} 3 + d_{23} 3 = 1\] \[d_{13} + d_{23} 3 + d_{33} 3 = 0\]

\[d_{11} + d_{12} 3 + d_{13} 7 = 1\] \[d_{12} + d_{22} 3 + d_{23} 7 = 3\] \[d_{13} + d_{23} 3 + d_{33} 7 = 6\]

\[d_{11} 3 + d_{12} 5 + d_{13} = 1\] \[d_{12} 3 + d_{22} 5 + d_{23} = 0\] \[d_{13} 3 + d_{23} 5 + d_{33} = 8\]

Запишем матрицу считая неизвестными \(d_{11}, d_{12}, d_{13}, d_{22}, d_{23}, d_{33}\)

\[\left(\begin{array}{@{}cccccc|c{}} 1 & 3 & 3 & 0 & 0 & 0 & 3 \\ 0 & 1 & 0 & 3 & 3 & 0 & 1 \\ 0 & 0 & 1 & 0 & 3 & 3 & 0 \\ 1 & 3 & 7 & 0 & 0 & 0 & 1 \\ 0 & 1 & 0 & 3 & 7 & 0 & 3 \\ 0 & 0 & 1 & 0 & 3 & 7 & 6 \\ 3 & 5 & 1 & 0 & 0 & 0 & 1 \\ 0 & 3 & 0 & 5 & 1 & 0 & 0 \\ 0 & 0 & 3 & 0 & 5 & 1 & 8 \\ \end{array}\right)\]

Решим систему методом Гаусса:

\[\left(\begin{array}{@{}cccccc|c{}} 1 & 3 & 3 & 0 & 0 & 0 & 3 \\ 3 & 5 & 1 & 0 & 0 & 0 & 1 \\ 0 & 1 & 0 & 3 & 3 & 0 & 1 \\ 0 & 3 & 0 & 5 & 1 & 0 & 0 \\ 0 & 0 & 1 & 0 & 3 & 3 & 0 \\ 0 & 0 & 1 & 0 & 3 & 7 & 6 \\ \end{array}\right)\]

\[\left(\begin{array}{@{}cccccc|c{}} 1 & 3 & 3 & 0 & 0 & 0 & 3 \\ 0 & 1 & 0 & 3 & 3 & 0 & 1 \\ 0 & 0 & 1 & 0 & 3 & 3 & 0 \\ 0 & 0 & 0 & 1 & 3 & 2 & 7 \\ 0 & 0 & 0 & 0 & 1 & 2 & 9 \\ 0 & 0 & 0 & 0 & 0 & 1 & 7 \\ \end{array}\right)\]

\[\left(\begin{array}{@{}cccccc|c{}} 1 & 0 & 0 & 0 & 0 & 0 & 1 \\ 0 & 1 & 0 & 0 & 0 & 0 & 3 \\ 0 & 0 & 1 & 0 & 0 & 0 & 5 \\ 0 & 0 & 0 & 1 & 0 & 0 & 8 \\ 0 & 0 & 0 & 0 & 1 & 0 & 6 \\ 0 & 0 & 0 & 0 & 0 & 1 & 7 \\ \end{array}\right)\]

Исходная матрица таким образом

\[D = \begin{pmatrix} 1 & 3 & 5 \\ 3 & 8 & 6 \\ 5 & 6 & 7 \\ \end{pmatrix}.\]

Пример 7

В процессе генерации общего ключа по протоколу Диффи-Хеллмана, имеющего параметры \(g = 7\) и \(p=37\), выбрано случайное секретное число a=12. От второй стороны получено число B=33.

Вычислите общий ключ.

Используйте этот ключ чтобы расшифровать сообщение, зашифрованное шифром Цезаря (Виженера с ключом размера 1) над алфавитом "_!?.,абвгдежзийклмнопрстуфхцчшщъыьэюя":

“цшъшсетеышхч_п”.

Ключ интерпретировать как величину сдвига.

Общий ключ вычисляется как \(B^a \mod p\). В данном случае, \(33^12 \mod 37 = 10\).

Тогда каждый символ шифротекста циклически сдвинут на 10 символов вправо по алфавиту. Соответственно, чтобы получить исходную строку, нужно циклически сдвинуть каждый символ шифротекста на 10 символов влево по алфавиту:

  • ц → м
  • ш → о
  • ъ → р
  • ш → о
  • с → з
  • е → _
  • т → и
  • е → _
  • ы → с
  • ш → о
  • х → л
  • ч → н
  • _ → ц
  • п → е

Получаем “мороз и солнце”

Пример 8

В результате распределения ключей по схеме Блома (mod 11), получены идентификатор \(I = (1,3,7)^\mathrm T\) и ключ \(g = (1,3,6)^\mathrm T\).

От участника с идентификатором \(J=(3,5,1)^\mathrm T\) получено сообщение “урнрдзл?дэнзфзн”, зашифрованное шифром Цезаря (Виженера с ключом размера 1) над алфавитом "_!?.,абвгдежзийклмнопрстуфхцчшщъыьэюя", где величина сдвига – ключ, полученный по схеме Блома.

Общий ключ вычисляется как \(g^{\mathrm T} J\mod 11\). В данном случае, \((1,3,6)(3,5,1)^\mathrm T= 2 \mod 11\).

Тогда каждый символ шифротекста циклически сдвинут на 2 символа вправо по алфавиту. Аналогично примеру 7, получаем

Получаем “соловей вылетел”