Cryptographic System - Searisal/Cryptography-Implementation GitHub Wiki

The total crpytographic system involves using both the RSA alorigthm and the Enigma cipher. Although the RSA algorithm is, for all intents and purposes, nigh unbreakable, it does have its flaws. Namely, proposed method of converting the plaintext to binary, and from that to an integer, and then performing RSA upon that number, would be ridiculously computationally expensive. The phrase "Hello World" Would become the number 5735816763073854918203775149089. Given this massive size, finding, for example, this to some massive exponent would take far too long to be a reasonable method of security. Thus, I elected to use the enigma cipher to encrypt the plaintext message, and then use the convert the rotor starting positions (the enigma cryptosystem key) into a six digit number. This number was then used as the plaintext for the RSA algorithm. Thus, by sending both of these ciphertexts, this system maintains the anonymous key sharing abilities of public key cryptography while also keeping the speed associated with symmetric key systems. Finally, by applying the RSA algorithm in reverse to the enigma key after encryption, the receiver will only decrypt a valid message if the sender's identity is accurate. Thus, this system satisfies all primary goals of security,