I would say MiMC is the simplest block cipher with plausible security. The idea is to cube the state, add a random constant, and repeat. This is typically done in a large prime field, but it is trivial to implement field arithmetic in any language with big integer support. Here's a Python implementation: def mimc(x, p, k, constants): x = (x + k) % p ...


The one time pad technically meets all your criteria and I think it's the simplest. It gets used all the time within encryption schemes where it's usually called blinding. Otherwise I would look into small block ciphers. For example, RC5 and skip32. These are probably the simplest beside the OTP.


I will throw tiny encryption algorithm into the mix: https://en.m.wikipedia.org/wiki/Tiny_Encryption_Algorithm It's a very respectable block cipher. It really works as a block cipher with convinient block size of 64 bits and key size of 128 bits. So it behaves much like a DES or AES as in how you use it securely. It's a feistiel network which anyone starting ...

Only top voted, non community-wiki answers of a minimum length are eligible