Ardiot / Semantic-Cipher

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Semantic-Cipher

Semantic cypher is a cryptosystem based on sha256.
The main goal is to change each word for other in a deterministic and secure way.
imagen

First of all we will hash each word from our ordered dictionary with a password.
imagen

Second, we will sort all these hashes in a list that we we call Sorted_Hash_List
imagen

Now we are ready to encrypt. The aplication that we will use for encrypt is this : f(dictionary[i])= Sorted_Hash_List[i] imagen

This could be one possible output imagen

If you encrypt something with this dictiorany it will be trivial to decrypt. But instead of using a 8 words dictonary if you use a list of more than 1 M words you will have 1000000! possible permutations for the Sorted_Hash_List and they will change "in a random way" depending on the password you choose. For example, using a file with more than 1065200 words and 12345 as a password, the phrase I am looking for a job will be converted to bullshitterting torture's corneliaring tubulether defamia immanencyses

About


Languages

Language:Python 100.0%