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:
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 ...