I want to encrypt my network communications with RC4. The reason for choosing RC4 is the simple implementation and speed.
I need to have a pure Python implementation, because I cannot compile for my target system. My implementation is slightly modified from TLS Lite.
If I understand the security issues correctly, the main problem is that the algorithm is not designed to be used with a nonce. As proposed at Wikipedia, my approach is to generate an MD5 hash of the key and a nonce and use this as encryption key.
Is this enough or do I have to implement the
dropN variant, too? Any other weak spot I have to look at?
A fast and simple alternative to RC4 would be appreciated, too.
Update After reading Cryptology ePrint Archive: Report 2002/067, I think I should definitely use the
dropN approach (with at least 512 bytes).
Update 2 Reviewing my implementation would also be nice.