0

Wynik dekodowania

Szyfr Afiniczny
A
B

Wynik kodowania

Szyfr Afiniczny
A
B

O Szyfrze Afinicznym

Szyfr Afiniczny to rodzaj szyfru monoalfabetycznego, w którym każda litera tekstu jawnego jest zamieniana na inną literę za pomocą funkcji matematycznej.

Zastępowanie znaków odbywa się według następującego wzoru:

E(x) = (ax + b) mod m

m to rozmiar alfabetu. x to wartość liczbowa przypisana do litery (0 dla pierwszej litery, m-1 dla ostatniej). a i b to klucze szyfrujące.

Na przykład dla alfabetu angielskiego (26 liter), m = 26, a x przyjmuje wartości od 0 do 25 (A=0, B=1, ..., Z=25).

ZnakABCDEFGHIJKLMNOPQRSTUVWXYZ
x012345678910111213141516171819202122232425

Jeśli a = 5, b = 3, proces szyfrowania wygląda następująco:

PrzedSECRET
x184217419
(5x + 3)932313882398
(5x + 3) mod 26152313102320
PoPXNKXU

Wynik szyfrowania wszystkich liter angielskich dla a = 5, b = 3:

Przed : ABCDEFGHIJKLMNOPQRSTUVWXYZ
Po    : DINSXCHMRWBGLQVAFKPUZEJOTY

Jeśli a = 1, to szyfr staje się Szyfrem Cezara (przesunięcie o b). a = 1, b = 13 to ROT13. a = -1, b = -1 daje efekt szyfru Atbash.

Wartość a musi być względnie pierwsza z m (największy wspólny dzielnik a i m musi wynosić 1). Na przykład dla m = 26, a = 4 jest nieprawidłowe, ponieważ dzieli się przez 2. W DenCode, jeśli podano nieprawidłowe a, znaki nie są szyfrowane.

Obsługa innych języków

Oprócz alfabetu łacińskiego, obsługiwana jest cyrylica oraz japońska Hiragana/Katakana.

Wyniki szyfrowania dla a = 5, b = 3:

Cyrylica
Przed : АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ
Po    : ГИНТЧЬБЖЛРХЪЯДЙОУШЭВЗМСЦЫАЕКПФЩЮ

m = 32 (32 znaki).

Japońska Hiragana/Katakana
Przed : ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔ
Po    : いぉぎこじそぢでぬぱぶほむゅりわゔぅおくごすぞっとねひぷぼめゆるゐぁうかぐさずたつどのびへぽもょれゑあぇがけざせだづなはぴべまゃよろをぃえきげしぜちてにばふぺみやらゎん
Przed : ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴ
Po    : イォギコジソヂデヌパブホムュリワヴゥオクゴスゾットネヒプボメユルヰァウカグサズタツドノビヘポモョレヱアェガケザセダヅナハピベマャヨロヲィエキゲシゼチテニバフペミヤラヮン

Kolejność znaków jest zgodna z definicją w Unicode. Znaki takie jak „ゕ”, „ゖ”, „ヵ”, „ヶ”, „ヷ”, „ヸ”, „ヹ”, „ヺ” nie są szyfrowane.

m = 84 (84 znaki).