I have an interest in data security,
so I looked for some tech that fits with Oberon's minimalism.
The first thing you need for crypto is a good random number source.
I didn't find one, but I did port the random number generators
from ETH System3 and
A2 to the Oberon-07 dialect.
I recommend using the A2 one.
If someone ever wanted to use this in production code, you'd have to get
some source of entropy, e.g. keystroke timings or mouse movements, and
feed the result through an algorithm like Fortuna instead.
Then the first actual crypto algorithm I looked at is
XXTEA
(implementation).
It's an interesting symmetric block cipher with a block size of 32 bits, so you can almost use it like a stream cipher (I just pad the last block with zeros).
There may be better algorithms, but it's small size is a good advantage.
In particular, I've found it useful for obfuscation of data-in-place on low-powered hardware.
In this scenario, very high security was not a requirement as the key is stored somewhere else on flash, we just wanted to increase the cost a lot for an attacker.
A nice place to take this work further would be to port
Dan Bernstein's
TweetNaCl and
CurveCP stack.