Рейтинг:1

Формальное определение моноалфавитного шифра замены

флаг cn

Я пытаюсь написать формальное определение моноалфавитного шифра замены. Я пробовал следующее


$\mathcal{М}:=$ Набор всех возможных строк текста на английском языке произвольной длины с удалением всех знаков препинания, цифр и пробелов в строке.

$\mathcal{C}=\mathcal{M}$

$\mathcal{K}:=S_{26}$

Позволять $m=m_1m_2\cdots m_l \in \mathcal{M}$ тогда

$Enc_{k}(m):=k(m_1)k(m_2)\cdots k(m_l)=c=c_1c_2\cdots c_l \ \text{где} \ \ c_i=k(m_i)$

&

$Dec_k(c):=k^{-1}(c_1)k^{-1}(c_2)\cdots k^{-1}(c_l)$


Мой вопрос заключается в том, как определить алгоритм генерации ключа $Gen$?

kelalaka avatar
флаг in
Выбрать случайный ключ из $\mathcal{K}$? И $c_i=k(m_i)$ непонятно для шифра подстановки. Должно быть $c_i = (m_i + k) \bmod 26$. Также важной частью является кодирование и декодирование сообщений $A=0, B=1,...$
Saikat avatar
флаг cn
Да, это нормально. Но есть ли какой-то алгоритм для этого?
kelalaka avatar
флаг in
зависит от языка, да, алгоритмического высказывания «равномерно выбрать элемент из» должно быть достаточно.
флаг ph
@kelalaka это не дополнительный мод 26, вы думаете о шифре Цезаря.
флаг ph
Но я согласен с тем, что генерация ключей не обязательно должна быть частью алгоритма.
kelalaka avatar
флаг in
@ bmm6o это шифр замены, частью которого является шифр Цезаря. Он содержит только 26 из 26 шифров перестановки! ключи.
Рейтинг:1
флаг tl

Прежде всего, моноалфавитным шифром замены может быть концепция моноалфавитной замены или шифрование только с использованием этого метода. Это означает, что Ceaser является одноалфавитной заменой, потому что использует это понятие. Отличие от «настоящей» одноалфавитной замены в том, что генерация ключа не является полностью случайной.

лично я бы не определил $\mathcal{M}, \mathcal{C}, \mathcal{K}$ так, как вы это сделали, потому что я думаю, что это недостаточно ясно. Более математическое определение могло бы быть лучше:

  • $\mathcal{M} = \{ a,b,c,...,z\}^*$ и $\mathcal{C} = \{ a,b,c,...,z\}^*$

Я также хочу избежать $\mathcal{M} = \mathcal{C}$ потому что это может быть математически правильно, но может означать неправильное понимание для читателя. Я выбрал $\{ а,б,в,...,г\}^*$, потому что обычно пространство сообщений $\{0,1\}^*$ и я адаптировал это к данному контексту.

Теперь я думаю, что вы не можете определить $\mathcal{K} = S_{26}$. Что $S$? я бы определил $\mathcal{K} = \{f_k\mid k \in \{a,...,z\}\}$, куда $f_k$ является биективной функцией замены.

Шифрование и дешифрование выглядит хорошо. Я бы сделал это так для сообщения $m = m_1, ... m_n \in \mathcal{M}$:

  • $Enc_k(м)$: $c_i = f_{m_i}(m_i)\forall i \in \{1,...,n\}$
  • $Dec_k(c)$: $m_i = f^{-1}_{c_i}(c_i) \forall i \in \{1,...,n\}$

Генерация может быть определена как:

  • $Gen$: выбрать случайную замену $f_k$ для каждого $k \in \{a,...,z\}$, так что $f^{-1}_k$ биективная обратная функция

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.