quimqu > 27-06-2025, 10:34 AM
oshfdk > 27-06-2025, 10:56 AM
(27-06-2025, 10:34 AM)quimqu Wrote: You are not allowed to view links. Register or Login to view.The curve shapes are now visibly closer to Voynich CUVA, with the most similar being De Docta Ignorantia and Romeo and Juliet. However, the Voynich text still has:
- ...
- A more gradual “tail” beyond n=9, where others flatten or zero out
nablator > 27-06-2025, 10:57 AM
quimqu > 27-06-2025, 11:01 AM
(27-06-2025, 10:56 AM)oshfdk Wrote: You are not allowed to view links. Register or Login to view.(27-06-2025, 10:34 AM)quimqu Wrote: You are not allowed to view links. Register or Login to view.The curve shapes are now visibly closer to Voynich CUVA, with the most similar being De Docta Ignorantia and Romeo and Juliet. However, the Voynich text still has:
- ...
- A more gradual “tail” beyond n=9, where others flatten or zero out
The graph seems to show exactly the opposite, the Voynich Curve is the first to zero out and flatten, closely followed by Romeo and Juliet, with the rest having much more gradual tail.
I have to ask this, is any part of your analysis AI generated?
quimqu > 27-06-2025, 11:08 AM
(27-06-2025, 10:57 AM)nablator Wrote: You are not allowed to view links. Register or Login to view.I'm surprised that the curves in the last diagram are so close especially up to 3-grams, because your homophonic ciphertext must have a lot more symbols than CUVA and the (random?) choice of homophone must add a lot of entropy... how is it possible?
Koen G > 27-06-2025, 11:22 AM
oshfdk > 27-06-2025, 11:25 AM
(27-06-2025, 11:08 AM)quimqu Wrote: You are not allowed to view links. Register or Login to view.I attach the function to cipher:
def homophonic_cipher_3c(words):
letter_map = {c: [c + str(i) for i in range(3)] for c in 'abcdefghijklmnopqrstuvwxyz'}
out = []
for word in words:
new_word = ''.join(random.choice(letter_map.get(c, [c])) for c in word)
out.append(new_word)
return out
It's a simple homophonic cipher. First creates a letter map for each alphabetical character (so, each letter will have three different letters to choose randomly during the cipher).
In the cipher, I use alphabetical characters. Imagine that I use voynichese characters instead. I would use only the CUVA symbols. But beware, in order to decipher, it is tricky, as one CUVA symbol might be deciphered also into 3 natural language charaters. So there must be another hidden rule to decipher.
nablator > 27-06-2025, 11:29 AM
(27-06-2025, 11:08 AM)quimqu Wrote: You are not allowed to view links. Register or Login to view.I attach the function to cipher:
def homophonic_cipher_3c(words):
letter_map = {c: [c + str(i) for i in range(3)] for c in 'abcdefghijklmnopqrstuvwxyz'}
out = []
for word in words:
new_word = ''.join(random.choice(letter_map.get(c, [c])) for c in word)
out.append(new_word)
return out
It's a simple homophonic cipher. First creates a letter map for each alphabetical character (so, each letter will have three different letters to choose randomly during the cipher).
import random
def homophonic_cipher_3c(words):
letter_map = {c: [c + str(i) for i in range(3)] for c in 'abcdefghijklmnopqrstuvwxyz'}
out = []
for word in words:
new_word = ''.join(random.choice(letter_map.get(c, [c])) for c in word)
out.append(new_word)
return out
pt = input('Enter plaintext: ')
print(f'Ciphertext of plaintext "{pt}" is {homophonic_cipher_3c(pt)}')
quimqu > 27-06-2025, 11:31 AM
(27-06-2025, 11:22 AM)Koen G Wrote: You are not allowed to view links. Register or Login to view.Interesting work!
A homophonic substitution cipher with positional restraints is basically the same thing as positional allography, right? So we would be looking for one glyph that's the equivalent of another glyph, and their positions tend to be mutually exclusive.
I think this is an underexplored avenue that might solve a lot of our problems. But it creates new problems also. Let's say in practice, a medieval text may use something like 22 letters frequently (we can do without w, u/v, j...). To enable homophonic substitution, the number of frequently used characters needs to increase. So you would end up with something like Arabic with 40+ letterforms.
However, if the 20 something frequent glyphs of CUVA are our expanded set, then that means that solving the homophonic part of the cipher would mean a drastic decrease of the number of letters. To accommodate for that, you would need a cipher that's polyphonic and homophonic at the same time. (Which might not even be as impractical as it sounds).
Koen G > 27-06-2025, 11:34 AM