RSA Encryptor/Decryptor/Key Generator/Cracker

Directions are at the bottom.










Directions

To use this, enter the parts of the key required for the operation you intend to do (in hexadecimal), enter your plaintext or ciphertext, and click the appropriate button. Plaintexts are limited to 128 characters, so don't try to encrypt an essay. You can also generate a random key, but be advised that the random number generator used is not cryptographically strong (not to mention the fact that the private keys are sent over an unencrypted connection) so this should not be used for generating keys to be used in sensitive applications. Detailed directions for the more patient below.

Encryption

Fill in the public exponent and modulus (e and n) and your plaintext message. Click Encrypt. Your key must be a single number in hexadecimal, but your plaintext can be ASCII text or a series of bytes in hexadecimal. If you don't know what this means, keep the"Character String" radio button selected. 0x31 0x32 0x33 0x34 in hex mode is equivalent to 1234 in string mode.

Decryption

Fill in the public and private exponents and the modulus (e, d, and n) as well as the cryptotext. The key and cryptogram must both be in hex. The parts of the key should each be a single hex number, while the cryptotext should be a sequence of bytes. Here are some acceptable (equivalent) examples for the cryptotext:

Key Generation

To generate a key pair, just click the Generate button. This will generate a 1024 bit key. Other key sizes are on the bottom of my todo list. Keys generated this way are not suitable for keeping things secret. I claim no responsibility if you go to jail or are foiled because you decided to encrypt your plans to take over the world using a key generated here.

Signing

To generate a signature of a hash, enter the hash in the text field and click the sign button. The hash should be entered as hex values like the rest of the stuff on here. If you just want to do a signing operation on a string, use the character string radio button and it should work.

Verification

To verify a signature, put the signature in the text field and click verify. If you signed an ascii string instead of a hash, you can use the character string mode to see the original.

Cracking

To crack a key, enter the public modulus and exponent in hex and click the crack button. This function will only crack keys 40 bits long or shorter. Please do not use 40 bit keys to encrypt your sensitive data.

Interesting historical note: The export policies of the United States did not allow encryption schemes using keys longer than 40 bits to be exported until 1996. By that point, 40 bit keys could easily be cracked in under 4 hours by a cluster of workstations. The method used behind the scenes on this site is a simple brute force search of 203,280,221 sorted primes. I could probably get it going faster by changing the order but it's just not worth it. As it stands, my test key can be cracked in less than 4 tenths of a second.

Standalone

I hacked this into a standalone program that you can run locally. It's still not suitable for real cryptographic work, since it uses your computer's pseudorandom number generator, but it's here.

page generated in 0.000986099243164 seconds