Open Source Computing

Week 3

Monday, Jan 26

Plans for teams

We will use Daniel Bernstein's ChaCha cipher as a random-number generator. See https://cr.yp.to/chacha/chacha-20080120.pdf.

ChaCha achieves cryptographic mixing through additions, xors and shifts. No multiplications or divisions are used.

echo "hello and welcome to Open Source" | shasum -a 512

python3
import numpy as np
from randomgen import ChaCha
seed=0x1234567
rg=np.random.Generator(ChaCha(seed, rounds=20))    # use the seed from above
# now int(rg.integers(A,B)) chooses a good random value between A and B-1, inclusive


Licenses

Look at full Apache license

GPL

Wednesday

GPL patents clause; how murky is the GPL?