Пример 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, получаем
Получаем “соловей вылетел”