În primul rând, un cifr de substituție monoalfabetică poate fi conceptul de substituție monoalfabetică sau o criptare numai folosind această tehnică. Asta înseamnă că Ceaser este o substituție monoalfabetică, deoarece folosește acest concept. Diferența față de substituția monoalfabetică „reala” este că generarea cheii nu este complet aleatorie.
Eu personal nu as defini $\mathcal{M}, \mathcal{C}, \mathcal{K}$ așa cum ai făcut-o, pentru că cred că nu este suficient de clar. O definiție mai matematică ar putea fi mai bună:
- $\mathcal{M} = \{ a,b,c,...,z\}^*$ și $\mathcal{C} = \{ a,b,c,...,z\}^*$
Vreau si eu sa evit $\mathcal{M} = \mathcal{C}$ deoarece poate fi corect din punct de vedere matematic, dar ar putea implica o înțelegere greșită pentru cititor. am ales $\{ a,b,c,...,z\}^*$, deoarece în mod normal spațiul mesajului este $\{0,1\}^*$ și am adaptat asta la contextul dat.
Acum cred că nu poți defini $\mathcal{K} = S_{26}$. Ce este $S$? aș defini $\mathcal{K} = \{f_k\mid k \in \{a,...,z\}\}$, Unde $f_k$ este o funcție de substituție bijectivă.
Criptarea și decriptarea arată bine. Aș face așa pentru un mesaj $m = m_1, ... m_n \in \mathcal{M}$:
- $Enc_k(m)$: $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\}$
Generația poate fi definită astfel:
- $Gen$: Alegeți o înlocuire aleatorie $f_k$ pentru fiecare $k \in \{a,...,z\}$, astfel încât $f^{-1}_k$ este funcția inversă bijectivă