aboutsummaryrefslogtreecommitdiff
path: root/gp-scripts/smc.gp
diff options
context:
space:
mode:
Diffstat (limited to 'gp-scripts/smc.gp')
-rw-r--r--gp-scripts/smc.gp35
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 @@
1/* search for a random prime with the specified amount of bits */
2\\ randomprime(bits:small=127)=
3\\ {
4\\ local(r:int=4);
5\\ while(!isprime(r),
6\\ r = bitor(2^(bits-1) + random(2^(bits-1)-1), 1);
7\\ );
8\\ r;
9\\ }
10
11smc_hextodec(s:str) =
12{
13 local(v:vecsmall = Vecsmall(s), ret:int = 0);
14 for(i = 1, #v,
15 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"))
16 );
17 ret;
18}
19
20smc_genbid(k:small, bid:small, g)=
21{
22 vector(k,j,g^(bid==j));
23}
24
25smc_genalpha(k:small, b:vec, r:vec, y)=
26{
27 vector(k, j, b[j]*y^r[j]);
28}
29
30smc_genbeta(k:small, r:vec, g)=
31{
32 vector(k, j, g^r[j]);
33}
34
35