Chodzi mi o szyfrowanie homofoniczne.
z definicji:
"W szyfrach tych każdy znak tekstu jawnego mi jest odwzorowany na jeden znak ze zbioru
f(ni) tekstu zaszyfrowanego, przy czym zbiory f(ni) są rozłączne. Znaki zbioru f(ni)
nazywane są homofonami. Tekst jawny n = n1, n2, … jest zaszyfrowany jako z = z1, z2, …,
przy czym znaki ci wybiera się dowolnie ze zbioru homofonów f(ni)."
Przyklad tabeli homofonow:
Litera - Homofony
A - 19 34 41 56 60 73 83 96
B - 31
C - 27 59 62 81
D - 11 28 77
E - 10 23 42 49 61 88 99
F - 76
G - 23
Takze w szyfrze znak w texcie moze przyjmowac wartosci np dla litery A np .19, ale rownie dobrze moze przyjac ewatrtosc 41 lub inna ze zbioru jaki sobie zadeklarujemy.
Teraz moj problem jest nastepujący, nie mam pomyslu aby jakos schludnie ta tablice zbiorow homofonow zadeklarowac. Zakladam dopuszczalne znaki w texcie jawnym o indexach w kodzie ascii od 32 do 122 , czyli 90 znakow, pozostale znaki w ascii moga posluzyc mi jako homofony.
Wydaje mi sie ze deklarowanie z gory 90 tablic jest troche nieeleganckie. Chcialbym aby przy kazdym starcie programu do alfebetu znakow od 32 do 122 przyporzadkowywano losowo, za kazdym razem nowy zbior homofonow. Czy ma ktos jakis sposob oprocz deklarowania z gory 90ciu tablic ?