a symmetry encryption algorithm based on fountain code.
- PKCS7 padding and depadding
- symmetry
- support key bits from 8 to - that's times of 8
this algorithm just use the bitwise xor to encrypt the message, but it cycle the key, and use a mask to cover the key, so it's really difficute to guess the start encrypt data block without know the key.
for a block data of 64 bits, the encrypt process start with the source block data on the first turn, but the second turn will base on the previous result. so if one want to decrypt the source data, he or she need to inverse key sequence used in encryption. start from the last turn, use all the inverse key.
for fast encrypting and decrypting data, the main algorithm use the static c types.
encrypt process for a block of data with 8 bit key
decrypt process for a block cliper with 8 bit key
python setup.py build_ext
python setup.py install
requirements:
- PyCrypto
- gnuplot
- matplotlib
- cython
- scipy
current tester:
- key bits length tester
- message length tester
- common symmetric data encryption
- binary tester, images, voice, video
- encrypted data compress test(gzip)
- snow breakdown test
./tester --help