22-07-2025, 04:23 PM
23-07-2025, 01:00 AM
The problem with this type of encoding can already be seen in a simple letter frequency analysis. The frequency distribution is far too even. Although this is an advantage from a cryptographic point of view, it does not correspond to the distribution in the VMS. The VMS corresponds more to the Latin text before encryption.
Distribution in the Latin text:
[attachment=11064]
Distribution after encryption:
[attachment=11065]
Distribution in the VMS:
[attachment=11066]
Distribution in the Latin text:
[attachment=11064]
Distribution after encryption:
[attachment=11065]
Distribution in the VMS:
[attachment=11066]
24-07-2025, 01:09 AM
I can't recall the exact mappings I improvised, but it was as described in the picture. Inspired by the parsing of EVA minims as separate characters, the idea started by mapping "M" and "N" to something like "N11" and "N1" respectively, with an initial character ("N") acting as a deliniter. I then extended it to other groups of characters in a similar fashion. I didn't try to make it consistent with the way the character is actually handwritten a la Stroke Theory, it's just a rough verbose mapping I made to get some quick stats.
24-07-2025, 01:50 PM
I have written a Python script that maps the encrypted text (see You are not allowed to view links. Register or Login to view. ) in such a way that the entropy is drastically reduced ( 2.93129 ). The mapping is reversible.
The program is called with parameters.
Encoding:
python mapping.py encode input.txt encoded.txt
Decoding:
python mapping.py decode encoded.txt decoded.txt
The mapped text:
N18N2N24N13N14N13N7N6N18 N14N18N8N20N19N6 N20N1 N5N11N25N24N17N7N11 N14N13N26N20N22N12N15 N20N24 N18N2N6N7N13 N18N13N18N5N11N20N22N7N12N11N24 N7N18N22N24N2N13 N6N17N22N17N3N7N24 N8N2N20N19N25N3N8N18N19N9N8N20 N4N22 N2N4N5N9N18
N22N20N16N20N4 N14N26N9 N25N4N22N2N3 N8N12N15N20 N22N2N6N11N19 N13N12N2N1N4 N2N11N3N18N19N3N4N19N5 N11N5N20N8N25N26N25N3 N24N22N24N8N12N20 N5N11N4 N7N1N6N16N2N5N14 N25N4N24 N5N11N12N17N2N5 N15N20N14 N8N25N11N22N26N8 N18N25N17 N20N19N15N20N26 N16N15N25N11 N17N7N12N13N12N15 N2N7N8N17N12N6N22 N26N15N16 N19N18N14N19N25N7N17N20 N5N11N4 N7N6N1N22N19N18N24N3N12 N22N2N20 N4N25N24N9N26N9N20N25N7 N17N24N16 N6N16 N7N6N15 N18N8N18N19 N1N6N1 N8N7N13N17N7N17N18 N5N16N20N22N20N6N11N9N22 N15N25N13N22N20N1N5N14 N25N4N24 N9N18N13N3N6 N4N9N14N6N22N26 N8N7N8 N17N22N14N26N4N19N12N11N14 N22N2N20N19N4N18N2N3N12 N15N20N9 N2N13N24N13N16 N12N11N12N20 N2N17N2N7N24N1 N4N13N7N24N16N6N25N24N1 N25N4N8N1N12N16N22 N17N7N17N7 N11N1N13N3N24N13N5N4N7 N16N3N18N12N20N13N3N24N13N5N4N7 N17N3N6N7N12N2N5 N25N9N14N9N20N26N15N7N6N9 N13N12N22N24 N3N13N3N15 N6N5N11 N26N8N20 N16N11N19N4N5N11 N2N1N6 N18N17N12N13N12N25 N14N25N14N1N16N9N18N3N4N3N7 N17N3N20N11N14 N17N7N1N26N1 N6N8N4N9N14N4N9N19N20N11N19 N8N19N13N18N19 N8N14 N24N2N19N5N9N15 N26N25N17N16N3 N8N9 N25N4 N13N7N24N13N16 N3N2N22N24N13N16 N26N4N22N7N12N2N19N18N22 N3N4 N26N5N9N13N3N22N7 N3N14N9N8N3N14 N24N2N19N5N9N15 N18N2N14N6N5N25N9 N15N16 N25N14N7N6 N7N13N17N22N2 N17N5N20N22N20N26 N7N13N6N5N15N4N13N14N19 N17N7N11 N19N25N16N2N6N22N14N13N16 N1N12N22 N26N25N8N9 N2N13N24N3 N1N9N2N17N18N2N3N18N4N14N4N7 N11N9N5N9N18 N25N26 N3N18N5N20N15N5N6N12N16 N6N16N17N24N17N12N2N15N25N26N25N3 N17N24 N20N1N5N24N13N16 N19N18N3N4 N9N19N9N22 N13N12N17N6N15N2 N8N14N25N4N14N26N3N8 N6N12N16N8N14 N5N4N19N12N11N14 N15N20N26N4N13 N20N1N19N18N3N17N1N2N11 N20N6N16 N22N26N1 N19N5N15N14N19N4N19N26N9N13 N11N19N12N2N3N12N13N3N14N25N14
N20N22 N2N5N6 N12N6N1N6N25N9N14N13N16 N22N26N25N18N2 N5N16N11N19N20N26N25N11 N24N8N13N14N24N17N24 N3N4 N7N24N9N26N19N9N18 N25N26 N20N1N5 N16N12N7N18N22N12N13N12N25 N6N12N5N4N14N3N12N13N22 N14N26N9N26N3 N1N6N11N3N18N22 N26N25N19N25N7 N13N14 N26N14N26N4N19N2N7N12N2N5 N11N14N15 N8N19N4N3N8N18N8N14N25N2 N26N8N1N16N17N1N2N17N3N13N3 N13N25N2N3N7N13 N22N8N4N25N14N13N16 N1N12N22 N11N16N8N14N15 N20N25N2N7 N8N14N18N24N6 N26N8N7N13N17N2N13N16N26 N15N26N1N6N11 N14N13N8N13N22 N8N19N4N5N11N14 N4N14N7N2N1N4N13 N24N3N22 N6N22N8N25N2 N14N26N9N11N9N20N25N7 N13N14 N15N20N26N4N13 N26N5N26N15N1N5N20N25 N22N5N24N13N14N24N25N14N26N9N26N3 N17N24N15N20N22 N2N5N8N14 N3N18N22N15N1N12N7N13N17N18N2 N11N3 N14N18N8N14N25N26N5 N14 N17N24N18N19N26N9N11N15N5N16N1N6 N16N26N12 N2N22N16N6 N20N19N5 N12N17N2N3N18 N22N20N5N6 N18N2N15N5N8 N4N3N7N24N5N20N14N24N7N8N14N17 N1N6N11N16N3 N18N13N7N24N22N26 N24N6N25N14N15N25N26N15N1N11N1N4 N11N20N9N15 N20N22 N12N22 N8N17N2N5N20N6N16N6N25N24N1 N18N4N14N13N26 N5N8N9 N17N24N7N13N16N17N22N5N8 N14N17N20N1 N4N9N5N6N12N22N24N2N17N3N13N22N16N22N26 N5N6 N17N22N12N17N2N3N12N6N12N15 N26N11N20 N7N13N17N7N22N12N24N7N16N11N16N19 N4N9N3 N14N7N1N16N5N11N20N22N5N26N5N8 N14N15 N13N25N17 N25N4N8N7N19 N26N3N4 N8N14N2N1N20N4N8N25N26N5N9 N13N18N7 N24N7N8N14N18N7N6N18 N12N24N7N8N25N8N22N12N13 N8N14N18 N2N20N14N4N18N25N8N12 N18N25N8N9N8N20 N25N4N26N1N6N16N17N22N12N24N7N16N11N16N3 N8N12N15N20 N9N15N16N22N1N16N2N6N12N25 N11N16N20N11N26N15N1N11N19N14N4 N26N11N14N17N7N26N19N26 N5N15N5N17 N24N1N2 N18N17N3N17 N25N4N14N15N14N17 N18N24N6N16N19N26N8N9 N5N11N15 N25N18N8N26N25N7N19 N15N25N3N4N9N22 N26N5N1N2N7N17N18N24N13N25N8N25N2 N12N2N1N16N8N7N11 N22N15N8N7N3N12N13N22N8 N15N20N15 N25N13N12N15N16N26N12 N18N25N18 N5N20N5N11N15N1N4N13N26 N6N12N6 N1N26N1N12N15N25N11 N17N24N17 N11N22N1N5N4N26N1N9N22 N5N26N15N6N5N16 N3N14N3N14N18N17N4 N24N8N13N17N16N12N13N3N14N25N14N17 N20N19N15N19N3N17N7N1N2N13N17N16N3 N8N9 N13N3N22 N3N8N18N19N18N22 N26N5N1N2N7N17N18N24N13N25N8N17N12N2N5 N11N15N5N6 N22N8N4N3N7N24N8N13 N18N19 N6N22N6N22N26 N5N26N15N3N18N11N1N20N11N14 N19N20 N25N14N1N16N11N1N2N7N12 N2N12N13N18N13N7N24N11N1N2N1N5 N19N26 N20N4N8N9N15 N1N5N20N1N11N12N2N5 N24N8N18N17N4 N9N13N14 N4N17N7N8N7N12 N2N12N13N18N24N12N11N24 N18N25N3 N12N5N25N14N3N8N18N22 N4N9N19N26N3N4N8N17N20 N18N2N19N9N11N19N12N2N22N12N15 N16N22N1N5N11 N14N19N18 N22N17N7N12N20N14N13N7N16 N22N26N3N8 N17 N13N22N1N2N7 N19N26N4N19N8N25N4N19 N1N6N1 N12N5N25N14N3N8N18N19N9N13 N4N3N12N25N24N13N16 N19N18N14N18N2 N6N12N26N25N18N2N6N22N24N3N7 N1N12N22N24N2N11N15N5N4N16 N19N9N11 N16N11N1N14N4N22N12N6N12 N18N8N2N17N2N17N18N2N5 N22N20N6N24N22N2 N11N2N1N9N14N13N26 N14N13N7N1N16N15N2 N20N19N25N3N8N18N19N9N8N20 N7N6N1N2N11N15N14N1 N6N7 N19N18N3N17N1N5N4N16 N7N6N12 N2N12 N9N6N12N25N4 N24N13N14N26 N15N26N7N12N2N15N5N19N3N13N14N13N17 N24N25 N14N25 N4N7N8N17N18N25 N17N7N8N19 N13N22N16N22N4N19N18N3N4 N9N11 N14N4N16N6N1N16N17N24N2 N24N2N11N12N24N2N1N13 N19N9N14N4N18N8N7N19 N4N15N26 N6N18N11N15N25N26N11N15N14N1 N13N12N6N7N24N1 N9N14N6N17N22N12N4N3N6 N12N15N16 N20N1N4 N24N8N18N17N24N7N24N3N13N16 N14N24N15N5N6N15N16N6N17N2N17 N24N25 N7N22N12N11N12N24N2N17N16N3 N25N3N8N1N6N16N19
So in principle, mapping can reduce entropy, but it doesn't have to be as drastic as in the example.
The program is called with parameters.
Encoding:
python mapping.py encode input.txt encoded.txt
Decoding:
python mapping.py decode encoded.txt decoded.txt
Code:
import sys
import os
def build_mapping():
"""
Create mapping from uppercase A-Z to N1–N26
and the reverse mapping from N1–N26 back to A–Z.
"""
mapping = {chr(ord('A') + i): f'N{i+1}' for i in range(26)}
reverse_mapping = {v: k for k, v in mapping.items()}
return mapping, reverse_mapping
def encode(text, mapping):
"""
Encode all uppercase letters using the mapping.
All other characters remain unchanged.
"""
return ''.join(mapping.get(c, c) for c in text)
def decode(text, reverse_mapping):
"""
Decode N-prefixed tokens (N1–N26) back to their original letters.
Ensures unambiguous parsing even with multi-digit codes.
"""
result = []
i = 0
while i < len(text):
if text[i] == 'N':
matched = False
for l in [3, 2]: # Try to match longest possible token
token = text[i:i+l]
if token in reverse_mapping:
result.append(reverse_mapping[token])
i += l
matched = True
break
if not matched:
result.append('N')
i += 1
else:
result.append(text[i])
i += 1
return ''.join(result)
def main():
if len(sys.argv) != 4:
print("Usage: python mapping.py <encode|decode> <input_file> <output_file>")
sys.exit(1)
mode = sys.argv[1].lower()
input_file = sys.argv[2]
output_file = sys.argv[3]
if not os.path.isfile(input_file):
print(f"Error: File '{input_file}' not found.")
sys.exit(1)
with open(input_file, "r", encoding="utf-8") as f:
content = f.read()
mapping, reverse_mapping = build_mapping()
if mode == "encode":
result = encode(content, mapping)
elif mode == "decode":
result = decode(content, reverse_mapping)
else:
print("Error: Mode must be 'encode' or 'decode'")
sys.exit(1)
# Output to console
print("\n--- Result ---")
print(result)
# Save to output file
with open(output_file, "w", encoding="utf-8") as f:
f.write(result)
print(f"\nOutput written to '{output_file}'")
if __name__ == "__main__":
main()
The mapped text:
N18N2N24N13N14N13N7N6N18 N14N18N8N20N19N6 N20N1 N5N11N25N24N17N7N11 N14N13N26N20N22N12N15 N20N24 N18N2N6N7N13 N18N13N18N5N11N20N22N7N12N11N24 N7N18N22N24N2N13 N6N17N22N17N3N7N24 N8N2N20N19N25N3N8N18N19N9N8N20 N4N22 N2N4N5N9N18
N22N20N16N20N4 N14N26N9 N25N4N22N2N3 N8N12N15N20 N22N2N6N11N19 N13N12N2N1N4 N2N11N3N18N19N3N4N19N5 N11N5N20N8N25N26N25N3 N24N22N24N8N12N20 N5N11N4 N7N1N6N16N2N5N14 N25N4N24 N5N11N12N17N2N5 N15N20N14 N8N25N11N22N26N8 N18N25N17 N20N19N15N20N26 N16N15N25N11 N17N7N12N13N12N15 N2N7N8N17N12N6N22 N26N15N16 N19N18N14N19N25N7N17N20 N5N11N4 N7N6N1N22N19N18N24N3N12 N22N2N20 N4N25N24N9N26N9N20N25N7 N17N24N16 N6N16 N7N6N15 N18N8N18N19 N1N6N1 N8N7N13N17N7N17N18 N5N16N20N22N20N6N11N9N22 N15N25N13N22N20N1N5N14 N25N4N24 N9N18N13N3N6 N4N9N14N6N22N26 N8N7N8 N17N22N14N26N4N19N12N11N14 N22N2N20N19N4N18N2N3N12 N15N20N9 N2N13N24N13N16 N12N11N12N20 N2N17N2N7N24N1 N4N13N7N24N16N6N25N24N1 N25N4N8N1N12N16N22 N17N7N17N7 N11N1N13N3N24N13N5N4N7 N16N3N18N12N20N13N3N24N13N5N4N7 N17N3N6N7N12N2N5 N25N9N14N9N20N26N15N7N6N9 N13N12N22N24 N3N13N3N15 N6N5N11 N26N8N20 N16N11N19N4N5N11 N2N1N6 N18N17N12N13N12N25 N14N25N14N1N16N9N18N3N4N3N7 N17N3N20N11N14 N17N7N1N26N1 N6N8N4N9N14N4N9N19N20N11N19 N8N19N13N18N19 N8N14 N24N2N19N5N9N15 N26N25N17N16N3 N8N9 N25N4 N13N7N24N13N16 N3N2N22N24N13N16 N26N4N22N7N12N2N19N18N22 N3N4 N26N5N9N13N3N22N7 N3N14N9N8N3N14 N24N2N19N5N9N15 N18N2N14N6N5N25N9 N15N16 N25N14N7N6 N7N13N17N22N2 N17N5N20N22N20N26 N7N13N6N5N15N4N13N14N19 N17N7N11 N19N25N16N2N6N22N14N13N16 N1N12N22 N26N25N8N9 N2N13N24N3 N1N9N2N17N18N2N3N18N4N14N4N7 N11N9N5N9N18 N25N26 N3N18N5N20N15N5N6N12N16 N6N16N17N24N17N12N2N15N25N26N25N3 N17N24 N20N1N5N24N13N16 N19N18N3N4 N9N19N9N22 N13N12N17N6N15N2 N8N14N25N4N14N26N3N8 N6N12N16N8N14 N5N4N19N12N11N14 N15N20N26N4N13 N20N1N19N18N3N17N1N2N11 N20N6N16 N22N26N1 N19N5N15N14N19N4N19N26N9N13 N11N19N12N2N3N12N13N3N14N25N14
N20N22 N2N5N6 N12N6N1N6N25N9N14N13N16 N22N26N25N18N2 N5N16N11N19N20N26N25N11 N24N8N13N14N24N17N24 N3N4 N7N24N9N26N19N9N18 N25N26 N20N1N5 N16N12N7N18N22N12N13N12N25 N6N12N5N4N14N3N12N13N22 N14N26N9N26N3 N1N6N11N3N18N22 N26N25N19N25N7 N13N14 N26N14N26N4N19N2N7N12N2N5 N11N14N15 N8N19N4N3N8N18N8N14N25N2 N26N8N1N16N17N1N2N17N3N13N3 N13N25N2N3N7N13 N22N8N4N25N14N13N16 N1N12N22 N11N16N8N14N15 N20N25N2N7 N8N14N18N24N6 N26N8N7N13N17N2N13N16N26 N15N26N1N6N11 N14N13N8N13N22 N8N19N4N5N11N14 N4N14N7N2N1N4N13 N24N3N22 N6N22N8N25N2 N14N26N9N11N9N20N25N7 N13N14 N15N20N26N4N13 N26N5N26N15N1N5N20N25 N22N5N24N13N14N24N25N14N26N9N26N3 N17N24N15N20N22 N2N5N8N14 N3N18N22N15N1N12N7N13N17N18N2 N11N3 N14N18N8N14N25N26N5 N14 N17N24N18N19N26N9N11N15N5N16N1N6 N16N26N12 N2N22N16N6 N20N19N5 N12N17N2N3N18 N22N20N5N6 N18N2N15N5N8 N4N3N7N24N5N20N14N24N7N8N14N17 N1N6N11N16N3 N18N13N7N24N22N26 N24N6N25N14N15N25N26N15N1N11N1N4 N11N20N9N15 N20N22 N12N22 N8N17N2N5N20N6N16N6N25N24N1 N18N4N14N13N26 N5N8N9 N17N24N7N13N16N17N22N5N8 N14N17N20N1 N4N9N5N6N12N22N24N2N17N3N13N22N16N22N26 N5N6 N17N22N12N17N2N3N12N6N12N15 N26N11N20 N7N13N17N7N22N12N24N7N16N11N16N19 N4N9N3 N14N7N1N16N5N11N20N22N5N26N5N8 N14N15 N13N25N17 N25N4N8N7N19 N26N3N4 N8N14N2N1N20N4N8N25N26N5N9 N13N18N7 N24N7N8N14N18N7N6N18 N12N24N7N8N25N8N22N12N13 N8N14N18 N2N20N14N4N18N25N8N12 N18N25N8N9N8N20 N25N4N26N1N6N16N17N22N12N24N7N16N11N16N3 N8N12N15N20 N9N15N16N22N1N16N2N6N12N25 N11N16N20N11N26N15N1N11N19N14N4 N26N11N14N17N7N26N19N26 N5N15N5N17 N24N1N2 N18N17N3N17 N25N4N14N15N14N17 N18N24N6N16N19N26N8N9 N5N11N15 N25N18N8N26N25N7N19 N15N25N3N4N9N22 N26N5N1N2N7N17N18N24N13N25N8N25N2 N12N2N1N16N8N7N11 N22N15N8N7N3N12N13N22N8 N15N20N15 N25N13N12N15N16N26N12 N18N25N18 N5N20N5N11N15N1N4N13N26 N6N12N6 N1N26N1N12N15N25N11 N17N24N17 N11N22N1N5N4N26N1N9N22 N5N26N15N6N5N16 N3N14N3N14N18N17N4 N24N8N13N17N16N12N13N3N14N25N14N17 N20N19N15N19N3N17N7N1N2N13N17N16N3 N8N9 N13N3N22 N3N8N18N19N18N22 N26N5N1N2N7N17N18N24N13N25N8N17N12N2N5 N11N15N5N6 N22N8N4N3N7N24N8N13 N18N19 N6N22N6N22N26 N5N26N15N3N18N11N1N20N11N14 N19N20 N25N14N1N16N11N1N2N7N12 N2N12N13N18N13N7N24N11N1N2N1N5 N19N26 N20N4N8N9N15 N1N5N20N1N11N12N2N5 N24N8N18N17N4 N9N13N14 N4N17N7N8N7N12 N2N12N13N18N24N12N11N24 N18N25N3 N12N5N25N14N3N8N18N22 N4N9N19N26N3N4N8N17N20 N18N2N19N9N11N19N12N2N22N12N15 N16N22N1N5N11 N14N19N18 N22N17N7N12N20N14N13N7N16 N22N26N3N8 N17 N13N22N1N2N7 N19N26N4N19N8N25N4N19 N1N6N1 N12N5N25N14N3N8N18N19N9N13 N4N3N12N25N24N13N16 N19N18N14N18N2 N6N12N26N25N18N2N6N22N24N3N7 N1N12N22N24N2N11N15N5N4N16 N19N9N11 N16N11N1N14N4N22N12N6N12 N18N8N2N17N2N17N18N2N5 N22N20N6N24N22N2 N11N2N1N9N14N13N26 N14N13N7N1N16N15N2 N20N19N25N3N8N18N19N9N8N20 N7N6N1N2N11N15N14N1 N6N7 N19N18N3N17N1N5N4N16 N7N6N12 N2N12 N9N6N12N25N4 N24N13N14N26 N15N26N7N12N2N15N5N19N3N13N14N13N17 N24N25 N14N25 N4N7N8N17N18N25 N17N7N8N19 N13N22N16N22N4N19N18N3N4 N9N11 N14N4N16N6N1N16N17N24N2 N24N2N11N12N24N2N1N13 N19N9N14N4N18N8N7N19 N4N15N26 N6N18N11N15N25N26N11N15N14N1 N13N12N6N7N24N1 N9N14N6N17N22N12N4N3N6 N12N15N16 N20N1N4 N24N8N18N17N24N7N24N3N13N16 N14N24N15N5N6N15N16N6N17N2N17 N24N25 N7N22N12N11N12N24N2N17N16N3 N25N3N8N1N6N16N19
So in principle, mapping can reduce entropy, but it doesn't have to be as drastic as in the example.
24-07-2025, 02:27 PM
This is the way character set reduction works, with the new character set of 11 symbols per character entropy cannot be larger than 3.45, but also this encoding is heavily skewed towards using N very often.
It easy to even bring the entropy well below 1 (I think), just encode any code N as a sequence of N zeros and mark the end of the sequence with 1.
It easy to even bring the entropy well below 1 (I think), just encode any code N as a sequence of N zeros and mark the end of the sequence with 1.
24-07-2025, 03:32 PM
Generally, this is a deterministic cipher, the same complete plaintext always produces the same ciphertext. I don't think the cipher in the Voynich Manuscript is deterministic, otherwise the labels and the paragraph (or page) starters would produce an easy break-in point. I suspect that Voynichese is one-to-many, but the choice of the mapping in each case is to some extent arbitrary and this is allows the scribe to use different glyphs near the right margin or in the topmost lines, depending on the excess space or lack of space.
24-07-2025, 03:35 PM
If the mapped letters are reduced to 12, an entropy of 3.87455 is achieved, which corresponds approximately to that in the VMS.
Sorry, I was a bit slow with posting.
Sorry, I was a bit slow with posting.
24-07-2025, 04:23 PM
It is possible to achieve any entropy figure via mapping. Generally, it's possible to match any single statistical metric of Voynichese with almost any cipher using some post-processing. The problem is matching most of them simultaneously.
For example:
1) single character entropy
2) ngram entropy
3) word repetitions and repetitions with minor changes
4) almost total lack of duplicated characters, except I and E
This is just off the top of my head.
Not many cipher types would cover all of these.
For example:
1) single character entropy
2) ngram entropy
3) word repetitions and repetitions with minor changes
4) almost total lack of duplicated characters, except I and E
This is just off the top of my head.
Not many cipher types would cover all of these.
24-07-2025, 05:35 PM
Personally I don't see how one cipher could check all the VMS stats without some 'post-processing' - the simpler explanation to me is that it's a chronistically conceivable cipher muddled with contrived noise
24-07-2025, 05:51 PM
For me, the question arises as to whether certain text characteristics (e.g., word repetitions or repetitions with minor variations) depend heavily on the original nature of the text or not. For example, a poem should produce a different output than a medical free text. This applies in particular to an encryption which is essentially a (deterministic) substitution.
What kind of encryption could possibly fulfill all these conditions in one go?
(24-07-2025, 04:23 PM)oshfdk Wrote: You are not allowed to view links. Register or Login to view.Not many cipher types would cover all of these.
What kind of encryption could possibly fulfill all these conditions in one go?