Conlang Cipher
Using a language as encryption
Languages are governed by certain laws/principles, that reflect the relationships between elements. For example, element frequency: you generally have a few elements which are very common, and a long tail of rare events.
To make a language hard to learn, break those rules. Make each word/phoneme/letter equally frequent. Common words are short and have several meanings, long words are rare and generally have fewer meanings (as they are more specific). Turn that the other way round. Make long words frequent and unspecific.
Early codes where cracked with frequency tables, ie the letters “e” and “t” being the most common symbols, so substitution ciphers were easily solved. Mix up the spelling of your words to make them semi-random (maybe add some random letters in the middle that are ignored).
The language you will end up with this way will be pretty unusable, and very hard to learn.
Kerckhoff’s principles
Simply put, the principle says that a system should be secure even though the details of the system (not the configuration parameters; the keys) are to be known by everyone.
- The system must be practically, if not mathematically, indecipherable;
- It should not require secrecy, and it should not be a problem if it falls into enemy hands;
- It must be possible to communicate and remember the key without using written notes, and correspondents must be able to change or modify it at will;
- It must be applicable to telegraph communications;
- It must be portable, and should not require several persons to handle or operate;
- Lastly, given the circumstances in which it is to be used, the system must be easy to use and should not be stressful to use or require its users to know and comply with a long list of rules.