finitefields 0.0.4 → 0.0.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/galois.ts CHANGED
@@ -19,17 +19,16 @@ fail = (...args:any[]): never => {
19
19
  return void 0 as never;
20
20
  }
21
21
 
22
- const arithmetics = (p:bigint,op:fieldops) =>
22
+ const arithmeticsℤp = (p:bigint,op:fieldops) =>
23
23
  (op==fieldops.$add) ?
24
- (a:bigint,b:bigint) => (a+b)%p :
24
+ (a:bigint,b:bigint=0n) => (a+b)%p :
25
25
  (op==fieldops.$sub) ?
26
- (a:bigint,b:bigint) => (a-b)%p :
26
+ (a:bigint,b:bigint=0n) => ((a-b)<1)?(a-b+p):(a-b)%p :
27
27
  (op==fieldops.$mul) ?
28
- (a:bigint,b:bigint) => (a*b)%p :
29
- (op==fieldops.$div) ?
30
- (a:bigint,b:bigint) => (b%p)?(a/b)%p:fail() :
31
- fail();
32
-
28
+ (a:bigint,b:bigint=0n) => (a*b)%p :
29
+ (op==fieldops.$inv) ?
30
+ (a:bigint) => (!a)?fail('0 has no inverse'):Util.sqmul(a,(p-2n),p) :
31
+ fail('unknown field operation');
33
32
 
34
33
  Util = {
35
34
  countbits(x:bigint): bigint {
@@ -87,6 +86,45 @@ Util = {
87
86
  return (val%max);
88
87
  else
89
88
  return val;
89
+ },
90
+
91
+ eea(x:bigint,p:bigint): bigint {
92
+ return fail('eea() not implemented') as never;
93
+ },
94
+
95
+ sqmul(a:bigint,e:bigint,p:bigint): bigint {
96
+ let bitstring:boolean[];
97
+ let bitlen:bigint;
98
+ let n:bigint;
99
+ let val:bigint;
100
+ let mul:(y:bigint,z:bigint,p_:bigint)=>bigint;
101
+ let sq:(y:bigint,p_:bigint)=>bigint;
102
+
103
+ log(`${a}^${e} (mod ${p}) = `);
104
+
105
+ mul = (y:bigint,z:bigint,p_:bigint):bigint => ((y*z)%p_);
106
+ sq = (y:bigint,p_:bigint):bigint => ((y*y)%p_);
107
+
108
+ val = a;
109
+ bitlen = this.countbits(e);
110
+ if (!bitlen)
111
+ return fail('error: n ≯ 0');
112
+ n = (bitlen-1n);
113
+ bitstring = new Array<boolean>(Number(bitlen))
114
+ .fill(false,0,Number(bitlen))
115
+ .map((x:boolean,idx:number):boolean =>
116
+ (((e>>n--)&1n)===1n) && (!!idx));
117
+ // log(bitstring.map((x:boolean):number => (x)?1:0));
118
+ bitstring
119
+ .forEach((x:boolean):void => {
120
+ val = (x) ?
121
+ mul(a,sq(val,p),p) :
122
+ sq(a,p);
123
+
124
+ return void 0;
125
+ });
126
+
127
+ return (val%p);
90
128
  }
91
129
  }
92
130
 
@@ -94,10 +132,14 @@ enum fieldops {
94
132
  $add,
95
133
  $sub,
96
134
  $mul,
97
- $div
135
+ $inv
98
136
  }
99
137
 
100
138
  interface Igalois {
139
+ add: (a:bigint,b:bigint)=>bigint;
140
+ sub: (a:bigint,b:bigint)=>bigint;
141
+ mul: (a:bigint,b:bigint)=>bigint;
142
+ inv: (a:bigint)=>bigint;
101
143
  verify:()=>void;
102
144
  constructor:Function;
103
145
  }
@@ -106,38 +148,55 @@ interface Iutil {
106
148
  isprime: (p:bigint,bitlen?:bigint,s?:number)=>boolean;
107
149
  countbits: (x:bigint)=>bigint;
108
150
  rnd: (bitlen:bigint,max:bigint)=>bigint;
151
+ eea: (x:bigint,p:bigint)=>bigint;
152
+ sqmul: (a:bigint,e:bigint,p:bigint)=>bigint;
109
153
  }
110
154
 
111
- class GF implements Igalois {
112
- private modulus: bigint;
113
- private bitlen: bigint;
114
- private add: (a:bigint,b:bigint)=>bigint;
115
- private sub: typeof this.add;
116
- private mul: typeof this.add;
117
- private div: typeof this.add;
155
+ abstract class GF implements Igalois {
156
+ protected modulus: bigint;
157
+ protected bitlen: bigint;
158
+ public abstract add: (a:bigint,b:bigint)=>bigint;
159
+ public abstract sub: typeof this.add;
160
+ public abstract mul: typeof this.add;
161
+ public abstract inv: (a:bigint)=>bigint;
162
+
163
+ public abstract verify(): void;
164
+
165
+ constructor(field:bigint,bitlen:bigint) {
166
+ this.modulus = field;
167
+ this.bitlen = bitlen;
168
+ this.verify();
169
+
170
+ return this;
171
+ }
172
+
173
+ }
174
+
175
+ class PrimeField extends GF implements Igalois {
176
+ public add: (a:bigint,b:bigint)=>bigint;
177
+ public sub: typeof this.add;
178
+ public mul: typeof this.add;
179
+ public inv: (a:bigint)=>bigint;
118
180
 
119
181
  public verify(): void {
120
182
  if (!Util.isprime(this.modulus))
121
- return fail(this.modulus, 'needs to be prime');
183
+ return fail('error: p ');
122
184
  else if (Util.countbits(this.modulus) > this.bitlen)
123
- return fail(this.modulus, 'does not fit in bitlen:', this.bitlen);
185
+ return fail('error: p ≮ 2ⁿ', this.bitlen);
124
186
 
125
187
  return void 0;
126
188
  }
127
189
 
128
190
  constructor(field:bigint,bitlen:bigint) {
129
- this.modulus = field;
130
- this.bitlen = bitlen;
131
- this.verify();
132
-
133
- this.add = arithmetics(this.modulus, fieldops.$add);
134
- this.sub = arithmetics(this.modulus, fieldops.$sub);
135
- this.mul = arithmetics(this.modulus, fieldops.$mul);
136
- this.div = arithmetics(this.modulus, fieldops.$div);
191
+ super(field,bitlen);
192
+ this.add = arithmeticsℤp(this.modulus, fieldops.$add);
193
+ this.sub = arithmeticsℤp(this.modulus, fieldops.$sub);
194
+ this.mul = arithmeticsℤp(this.modulus, fieldops.$mul);
195
+ this.inv = arithmeticsℤp(this.modulus, fieldops.$inv);
137
196
 
138
197
  return this;
139
198
  }
140
199
 
141
200
  }
142
201
 
143
- export { Util, GF };
202
+ export { Util, PrimeField };
package/main.js CHANGED
@@ -1,5 +1,6 @@
1
1
  /* main.ts */
2
2
  import { Polynomial } from './polynomial.js';
3
+ import { Util, PrimeField } from './galois.js';
3
4
  let log;
4
5
  log = console.log;
5
6
  let p1;
@@ -20,4 +21,5 @@ p2 = new Polynomial({ tobject: 0n, x3: 1n, x2: 0n, x: 1n, 1: 1n }, 2n);
20
21
  p3 = new Polynomial(1n << 254n, 2n);
21
22
  log(p3, p3.eval());
22
23
  // log(p3.eval());
24
+ export { Polynomial, Util, PrimeField };
23
25
  //# sourceMappingURL=main.js.map
package/main.ts CHANGED
@@ -1,5 +1,6 @@
1
1
  /* main.ts */
2
2
  import { Polynomial } from './polynomial.js';
3
+ import { Util,PrimeField } from './galois.js';
3
4
 
4
5
  let log:(...x:any[])=>void;
5
6
  log = console.log;
@@ -26,3 +27,4 @@ p3 = new Polynomial(1n<<254n, 2n);
26
27
  log(p3, p3.eval());
27
28
  // log(p3.eval());
28
29
 
30
+ export { Polynomial,Util,PrimeField };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "finitefields",
3
3
  "type": "module",
4
- "version": "0.0.4",
4
+ "version": "0.0.6",
5
5
  "description": "Galois/Finite field crypto and raw elliptic curves",
6
6
  "main": "main.js",
7
7
  "scripts": {
package/galois.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"galois.d.ts","sourceRoot":"","sources":["galois.ts"],"names":[],"mappings":"AAWA,QAAA,IAAI,IAAI,EAAC,KAAK,CAAC;AAwFf,UAAU,OAAO;IACb,MAAM,EAAC,MAAI,IAAI,CAAC;IAChB,WAAW,EAAC,QAAQ,CAAC;CACxB;AAED,UAAU,KAAK;IACX,OAAO,EAAE,CAAC,CAAC,EAAC,MAAM,EAAC,MAAM,CAAC,EAAC,MAAM,EAAC,CAAC,CAAC,EAAC,MAAM,KAAG,OAAO,CAAC;IACtD,SAAS,EAAE,CAAC,CAAC,EAAC,MAAM,KAAG,MAAM,CAAC;IAC9B,GAAG,EAAE,CAAC,MAAM,EAAC,MAAM,EAAC,GAAG,EAAC,MAAM,KAAG,MAAM,CAAC;CAC3C;AAED,cAAM,EAAG,YAAW,OAAO;IACvB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,GAAG,CAA8B;IACzC,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,GAAG,CAAkB;IAC7B,OAAO,CAAC,GAAG,CAAkB;IAEtB,MAAM,IAAI,IAAI;gBAST,KAAK,EAAC,MAAM,EAAC,MAAM,EAAC,MAAM;CAazC;AAED,OAAO,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC"}
package/galois.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"galois.js","sourceRoot":"","sources":["galois.ts"],"names":[],"mappings":"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"}
package/main.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":""}
package/main.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"main.js","sourceRoot":"","sources":["main.ts"],"names":[],"mappings":"AAAA,aAAa;AACb,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,IAAI,GAAsB,CAAC;AAC3B,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AAElB,IAAI,EAAa,CAAC;AAClB,IAAI,EAAa,CAAC;AAClB,IAAI,EAAa,CAAC;AAClB,IAAI,EAAS,CAAC;AACd,IAAI,EAAS,CAAC;AACd,IAAI,EAAS,CAAC;AACd,IAAI,EAAS,CAAC;AAEd,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACf,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AAEf,EAAE,GAAG,IAAI,UAAU,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;AAC1C,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,OAAO,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,EAAE,EAAC,EAAE,EAAE,CAAC,EAAC,EAAE,EAAE,CAAC,EAAC,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;AAClE,4BAA4B;AAC5B,8BAA8B;AAC9B,EAAE,GAAG,IAAI,UAAU,CAAC,EAAE,IAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAElC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC;AACnB,kBAAkB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"polynomial.d.ts","sourceRoot":"","sources":["polynomial.ts"],"names":[],"mappings":"AAWA,QAAA,IAAI,GAAG,EAAC,CAAC,EAAE,EAAC,MAAM,EAAE,EAAC,EAAE,EAAC,MAAM,EAAE,KAAG,MAAM,CAAC;AAc1C,KAAK,OAAO,GAAG;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAA;CAAC,CAAC;AACnC,KAAK,MAAM,GAAG,OAAO,EAAE,CAAC;AAExB,KAAK,EAAE,GACD,SAAS,GACT,GAAG,GACH,GAAG,GACH,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,GACJ,IAAI,CAAC;AAEX,KAAK,UAAU,GACT,MAAM,GACN,MAAM,EAAE,GACR,OAAO,CAAC;AAEd,KAAK,OAAO,GAAG;KACV,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM;CACrB,CAAA;AAED,UAAU,WAAW;IACjB,OAAO,CAAC,GAAG,EAAC,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5B,OAAO,CAAC,GAAG,EAAC,OAAO,GAAG,IAAI,CAAC;IAC3B,OAAO,CAAC,GAAG,EAAC,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,KAAK,EAAC,MAAM,GAAG,OAAO,CAAC;IACnC,IAAI,IAAI,MAAM,CAAC;IACf,WAAW,EAAE,QAAQ,CAAC;CACzB;AAED,cAAM,UAAW,YAAW,WAAW;IACnC,OAAO,CAAC,IAAI,CAAU;IACtB,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,KAAK,CAAQ;IAErB,MAAM,CAAC,OAAO,CAAC,GAAG,EAAC,MAAM,GAAG,MAAM,EAAE;IAIpC,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAE,GAAG,EAAC,MAAM,EAAE,GAAG,MAAM,EAAE;IAenD,MAAM,CAAC,QAAQ,CAAC,GAAG,EAAC,MAAM,EAAE,EAAE,KAAK,EAAC,MAAM,GAAG,MAAM;IAInD,MAAM,CAAC,SAAS,CAAC,GAAG,EAAC,MAAM,EAAE,EAAE,KAAK,EAAC,MAAM,EAAE,GAAG,EAAC,MAAM,GAAG,MAAM;IAmBhE,MAAM,CAAC,GAAG,CAAC,CAAC,EAAC,UAAU,EAAE,CAAC,EAAC,UAAU,GAAG,UAAU;gBAa/B,GAAG,EAAC,UAAU,EAAE,KAAK,EAAC,MAAM;IAmCxC,OAAO,CAAC,GAAG,EAAC,MAAM,EAAE,GAAG,IAAI;IAS3B,OAAO,CAAC,GAAG,EAAC,OAAO,GAAG,IAAI;IAW1B,OAAO,CAAC,GAAG,EAAC,MAAM,GAAG,IAAI;IASzB,WAAW,CAAC,KAAK,EAAC,MAAM,GAAG,OAAO;IAclC,IAAI,IAAI,MAAM;CAGxB;AAED,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,CAAC"}
package/polynomial.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"polynomial.js","sourceRoot":"","sources":["polynomial.ts"],"names":[],"mappings":"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"}