I have created a text encryption system that uses a Latin square created from all the printable ASCII characters.
You type in a password/key when encrypting text. The password is padded or truncated to a fixed length of X characters and concatenated with the text to be encrypted.
Now since the keytable is a Latin square of all printable ASCII characters, each char in the password corresponds to a row in the Latin square. A special function uses this relationship to shuffle the ordering of all the chars in the text to be encrypted so that it becomes an unreadable mess. Then another function replaces each char in the shuffled text by looking up the corresponding char position in the ciphertext row corresponding to the text char's position modulus the password/key length.
When decrypting the process is reversed. But after decrypting the text in memory, the key stored in the decrypted text is compared with the key given for decryption to see if they match. Only if they match is the encrypted text visibly outputted. In any case, they can't match if they're different because the decryption key is used to reverse the process just as the encryption key is used to encrypt, so if the two don't match then the decrypted text will never match the encrypted text.
The most difficult part of the process was creating a Latin square from over a hundred chars. I used an algorithm very much like the one used to create sudoku puzzles. It runs very quickly when you're creating a square from just 9 values. But time increases with the number of values. For over a hundred values, the algorithm had to run for hours - days!
What are these series of videos about? I mean where are the problems, files,etc,. she is referring to. Thanks!
a fresh video for caesar, i hope i can get the remaining one line code that is missing.
You type in a password/key when encrypting text. The password is padded or truncated to a fixed length of X characters and concatenated with the text to be encrypted.
Now since the keytable is a Latin square of all printable ASCII characters, each char in the password corresponds to a row in the Latin square. A special function uses this relationship to shuffle the ordering of all the chars in the text to be encrypted so that it becomes an unreadable mess. Then another function replaces each char in the shuffled text by looking up the corresponding char position in the ciphertext row corresponding to the text char's position modulus the password/key length.
When decrypting the process is reversed. But after decrypting the text in memory, the key stored in the decrypted text is compared with the key given for decryption to see if they match. Only if they match is the encrypted text visibly outputted. In any case, they can't match if they're different because the decryption key is used to reverse the process just as the encryption key is used to encrypt, so if the two don't match then the decrypted text will never match the encrypted text.
The most difficult part of the process was creating a Latin square from over a hundred chars. I used an algorithm very much like the one used to create sudoku puzzles. It runs very quickly when you're creating a square from just 9 values. But time increases with the number of values. For over a hundred values, the algorithm had to run for hours - days!