On Colin Plumb's suggestion, I rewrote my first Shamir secret sharing program to work over GF(2^8). I didn't do this the first time because I thought writing all the low level GF math routines would be a pain -- so I opted out by using G++'s Integer class to work over Z_p. Imagine my surprise when it turned out the math code over GF is easier. The hard part was actually generating the tables for x=g^n and n=lg x (g=primitive element), but I got maple to do it for me after I read the docs. Multiplication is simply the macro A*B=g^(lg A + lg B) (3 table lookups) and addition is, of course, XOR. And x^-1 is just two table lookups unlike the euclidean algorithm I needed to work over Z_p. (p being huge) Since I'm working over GF(2^8), I adapted my program to work on arbitrary length binary files instead of integers. Now you can take any file and split it up into m pieces, k being needed for reconstruction. The program is much more usable now. It's also written in C now, not G++. As before, if you want it, e-mail me. -Ray -- Ray Cromwell | Engineering is the implementation of science; -- -- rjc@gnu.ai.mit.edu | politics is the implementation of faith. --
participants (1)
-
rjc@gnu.ai.mit.edu