diff options
| author | Markus Teich <markus.teich@stusta.mhn.de> | 2016-06-01 01:08:43 +0200 |
|---|---|---|
| committer | Markus Teich <markus.teich@stusta.mhn.de> | 2016-06-01 01:08:43 +0200 |
| commit | a30d711f12d65b32db027ade5c30d1507ffd97f1 (patch) | |
| tree | 53ae7ec8b08c10eba3a83a2f972be4bdc9d863f4 /smc.gp | |
| parent | 7d259108852146df0623999e749b73dd9e33fc48 (diff) | |
add autofoo stuff
Diffstat (limited to 'smc.gp')
| -rw-r--r-- | smc.gp | 31 |
1 files changed, 31 insertions, 0 deletions
@@ -0,0 +1,31 @@ +/* search for a random prime with the specified amount of bits */ +\\ randomprime(bits:small=127)= +\\ { +\\ local(r:int=4); +\\ while(!isprime(r), +\\ r = bitor(2^(bits-1) + random(2^(bits-1)-1), 1); +\\ ); +\\ r; +\\ } + +smc_hextodec(s:str) = +{ + local(v:vecsmall = Vecsmall(s), ret:int = 0); + for(i = 1, #v, + ret = (ret<<4) + if(v[i]<=57 && v[i]>=48, v[i]-48, v[i]<=70 && v[i]>=65, v[i]-55, v[i]<=102 && v[i]>=97, v[i]-87, error("invalid input format")) + ); + ret; +} + +smc_genfield(p:int, g)= +{ + local(q:int); + q = (p - 1) / 2; + [Mod(g^2, p), q]; +} + +smc_genkeypair(field:vec)= +{ + local(x:int=random(field[2])); + [x, field[1]^x]; +} |
