Szyfr afiniczny jest to szyfr należący do grupy monoalfabetycznych szyfrów podstawieniowych.
Rodzina szyfrów monoalfabetycznych posiada jedną bardzo ważną cechę, a mianowicie jednej literze alfabetu jawnego odpowiada dokładnie jedna litera alfabetu tajnego. Funkcja szyfrująca wygląda następująco:
$$ f(x)=ax+b\mod \ m$$
x - szyfrowana litera,
(a,b) - klucz,
m - liczba liter w alfabecie (zwykle 26 bo tyle liter ma język angielski, w naszym kalkulatorze użyliśmy 35 liter z polskimi).
Łatwo zauważyć, że jeśli a = 1, to mamy do czynienia ze zwykłym przesunięciem (jak w szyfrze Cezara).
Szyfr afiniczny ma sens tylko wtedy, gdy funkcja afiniczna f jest różnowartościowa tzn. gdy dla dowolnego y należącego do zbioru klas reszt \begin{align} {\mathbb {Z} }_{m}\end{align} równanie
$$ ax+b\equiv y\mod \ m$$
ma co najwyżej jedno rozwiązanie ze względu na zmienną x. Zapiszmy nasze równanie w sposób następujący:
$$ ax\equiv y-b\mod \ m$$
Zauważmy, że gdy wartości y przebiegają cały zbiór $$ {\mathbb {Z} }_{m} $$, to i wartości y-b się wyczerpują, czyli wystarczy jeśli zbadamy rozwiązywalność równań
$$ ax\equiv y\mod \ m$$
dla $$ y\in {\mathbb {Z} }_{m}$$
Równanie to ma dokładnie jedno rozwiązanie dla każdego
$$ y\in {\mathbb {Z} }_{m}$$
wtedy i tylko wtedy, gdy
$$\rm {NWD}(a,m)=1$$ (gdzie NWD oznacza największy wspólny dzielnik dwóch liczb).
Funkcja deszyfrująca dla tego szyfru wygląda tak :
$$ d(y)=a^{-1}*(y-b)\mod m$$
gdzie $$ a^{-1}$$ jest odwrotnością a w pierścieniu $$ {\mathbb {Z} }_{26} $$
Wzór wynika z wyliczeń:
\begin{aligned}{\mbox{D}}({\mbox{E}}(x))&=a^{-1}({\mbox{E}}(x)-b)\mod {m}\\&=a^{-1}(((ax+b)\mod {m})-b)\mod {m}\\&=a^{-1}(ax+b-b)\mod {m}\\&=a^{-1}ax\mod {m}\\&=x\mod {m}.\end{aligned}
Więcej na: Wikipedia - Szyfr afiniczny