diff options
Diffstat (limited to 'gp-scripts/smc.gp')
-rw-r--r-- | gp-scripts/smc.gp | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/gp-scripts/smc.gp b/gp-scripts/smc.gp new file mode 100644 index 0000000..2b7e188 --- /dev/null +++ b/gp-scripts/smc.gp @@ -0,0 +1,35 @@ +/* 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_genbid(k:small, bid:small, g)= +{ + vector(k,j,g^(bid==j)); +} + +smc_genalpha(k:small, b:vec, r:vec, y)= +{ + vector(k, j, b[j]*y^r[j]); +} + +smc_genbeta(k:small, r:vec, g)= +{ + vector(k, j, g^r[j]); +} + + |