Algorithms¶
Below lists all available algorithms on pychat including additional parameters and usages
CaesarCipher¶
Parameters listed below are optional
| Parameter | Description |
-o
|
Set the offset value of how many letters down in the caesarcipher
translation the algorithm should go
|
Example¶
Set the offset value to 13 (Commonly known as ROTL13 encryption)
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a CaesarCipher -o 13
RandomCaesarCipher¶
Parameters listed below are optional
| Parameter | Description |
| -s | Set the seed value for the rand. Used for generating the scrambled alphabet
|
| -o | Set the offset value of how many letters down in the caesarcipher translation
the algorithm should go
|
Example¶
Set the offset value to 5 and a randomization seed to 20
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a RandomCaesarCipher -o 5 -s 20
TranspositionCipher¶
Parameters listed below are required
| Parameter | Description |
| -k | Set the key used for generating the transposition table
|
Example¶
Set the key value to ‘spaghetti’
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a TranspositionCipher -k spaghetti
VigenereCipher¶
Parameters listed below are required
| Parameter | Description |
| -k | Set the key word used for encryption
|
Example¶
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a VigenerCipher -k spaghetti
BeaufortCipher¶
Parameters listed below are required
| Parameter | Description |
| -k | Set the key word used for encryption
|
Example¶
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a BeaufortCipher -k spaghetti
AESCipher¶
Parameters listed below are required
This does not do a secure Diffie-Hellman Key Exchange of a randomly generated AES key, it uses SHA256 to hash the password passed by the user
| Parameter | Description |
| -k | Set the password which is then turned into the 256bit key for encryption
|
Example¶
Set the key password to ‘spaghetti’
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a AESCipher -k spaghetti
PureAESCipher¶
PureAESCipher differs from AESCipher in being a pure implementation written by Kurtis Bohlen. Use of the pycrypto library is not incorporated in this implementation
Parameters listed below are required
| Parameter | Description |
| -k | Set the key for encryption (must be 16,24, or 32 bytes long)
|
| -m | Set the block cipher mode of operation (default is CBC)
|
Example¶
Set the key to ‘asixteenbyteword` and the mode to ‘CBC’ (default mode)
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a PureAESCipher -k asixteenbyteword -m CBC
DESCipher¶
Parameters listed below are required
| Parameter | Description |
| -k | Set the key for encryption. It must be 16 characters long.
Both users must enter the same key
|
Example¶
Set the key password to ‘spaghetti’
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a DESCipher -k spaghetti
PureRSA¶
PureRSA differs from a normal RSA implementation as it is a pure implementation written by Ben Soer. The pycrypto library is not incorporated in the implementation of this algorithm
Parameters listed below are required
| Parameter | Description |
| -p1 | Set first prime number for generating the public/private key pair
|
| -p2 | Set second prime number for generating the public/private key pair
|
Example¶
Set the prime numbers to 5 and 11
python3 pychat.py -h localhost -p 7000 -lp 8000 -u bert -a PureRSA -p1 5 -p2 11