@atlasauth/pca-mpc 0.3.0 → 0.4.1

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.
Files changed (85) hide show
  1. package/README.md +81 -3
  2. package/dist/beaver.js +4 -0
  3. package/dist/beaver.js.map +1 -1
  4. package/dist/compose.d.ts +9 -2
  5. package/dist/compose.js +24 -1
  6. package/dist/compose.js.map +1 -1
  7. package/dist/ec.d.ts +6 -3
  8. package/dist/ec.js +27 -9
  9. package/dist/ec.js.map +1 -1
  10. package/dist/enc.d.ts +46 -0
  11. package/dist/enc.js +88 -0
  12. package/dist/enc.js.map +1 -0
  13. package/dist/endemic-ot.js +24 -1
  14. package/dist/endemic-ot.js.map +1 -1
  15. package/dist/hybrid-ot.js +3 -0
  16. package/dist/hybrid-ot.js.map +1 -1
  17. package/dist/kem-ot.js +2 -0
  18. package/dist/kem-ot.js.map +1 -1
  19. package/dist/mascot.d.ts +81 -30
  20. package/dist/mascot.js +232 -113
  21. package/dist/mascot.js.map +1 -1
  22. package/dist/net/certs.d.ts +14 -0
  23. package/dist/net/certs.js +30 -0
  24. package/dist/net/certs.js.map +1 -0
  25. package/dist/net/faults.d.ts +49 -0
  26. package/dist/net/faults.js +222 -0
  27. package/dist/net/faults.js.map +1 -0
  28. package/dist/net/forensics.d.ts +81 -0
  29. package/dist/net/forensics.js +181 -0
  30. package/dist/net/forensics.js.map +1 -0
  31. package/dist/net/gadget.d.ts +44 -0
  32. package/dist/net/gadget.js +102 -0
  33. package/dist/net/gadget.js.map +1 -0
  34. package/dist/net/index.d.ts +11 -0
  35. package/dist/net/index.js +28 -0
  36. package/dist/net/index.js.map +1 -0
  37. package/dist/net/launch-local.d.ts +53 -0
  38. package/dist/net/launch-local.js +190 -0
  39. package/dist/net/launch-local.js.map +1 -0
  40. package/dist/net/launch-support.d.ts +6 -0
  41. package/dist/net/launch-support.js +65 -0
  42. package/dist/net/launch-support.js.map +1 -0
  43. package/dist/net/mesh.d.ts +135 -0
  44. package/dist/net/mesh.js +491 -0
  45. package/dist/net/mesh.js.map +1 -0
  46. package/dist/net/offline-net.d.ts +58 -0
  47. package/dist/net/offline-net.js +485 -0
  48. package/dist/net/offline-net.js.map +1 -0
  49. package/dist/net/ot-net.d.ts +42 -0
  50. package/dist/net/ot-net.js +219 -0
  51. package/dist/net/ot-net.js.map +1 -0
  52. package/dist/net/pa.d.ts +65 -0
  53. package/dist/net/pa.js +118 -0
  54. package/dist/net/pa.js.map +1 -0
  55. package/dist/net/party-main.d.ts +48 -0
  56. package/dist/net/party-main.js +146 -0
  57. package/dist/net/party-main.js.map +1 -0
  58. package/dist/net/prep.d.ts +40 -0
  59. package/dist/net/prep.js +12 -0
  60. package/dist/net/prep.js.map +1 -0
  61. package/dist/net/protocol.d.ts +126 -0
  62. package/dist/net/protocol.js +655 -0
  63. package/dist/net/protocol.js.map +1 -0
  64. package/dist/net/wire.d.ts +89 -0
  65. package/dist/net/wire.js +242 -0
  66. package/dist/net/wire.js.map +1 -0
  67. package/dist/ot.d.ts +176 -17
  68. package/dist/ot.js +479 -252
  69. package/dist/ot.js.map +1 -1
  70. package/dist/otx.d.ts +76 -0
  71. package/dist/otx.js +238 -0
  72. package/dist/otx.js.map +1 -0
  73. package/dist/runner.d.ts +1 -1
  74. package/dist/runner.js +6 -1
  75. package/dist/runner.js.map +1 -1
  76. package/dist/sharing.d.ts +2 -0
  77. package/dist/sharing.js +7 -4
  78. package/dist/sharing.js.map +1 -1
  79. package/dist/spdz-runner.d.ts +20 -3
  80. package/dist/spdz-runner.js +21 -3
  81. package/dist/spdz-runner.js.map +1 -1
  82. package/dist/spdz.d.ts +96 -22
  83. package/dist/spdz.js +196 -47
  84. package/dist/spdz.js.map +1 -1
  85. package/package.json +15 -6
package/dist/ot.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"ot.js","sourceRoot":"","sources":["../src/ot.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ot.js","sourceRoot":"","sources":["../src/ot.ts"],"names":[],"mappings":"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"}
package/dist/otx.d.ts ADDED
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Typed-array kernels for the OT-extension hot path (no per-bit BigInt, no per-bit objects).
3
+ *
4
+ * - `prgColumn`: AES-128-CTR keystream PRG for the column expansion (one cipher call per column per round).
5
+ * - `transposeCols`: 32x32 bit-block transpose from `KAPPA` bit-columns to row words.
6
+ * - `gf128*Words`: GF(2^128) as four little-endian u32 words (add = XOR, multiply-by-x, row accumulation).
7
+ * - `tmmoCrh`: batched tweakable correlation-robust hash H(x, t) = pi(pi(x) ^ t) ^ pi(x) with a fixed-key AES-128
8
+ * (the TMMO construction of Guo-Katz-Wang-Yu, ePrint 2019/074 section 7, secure in the ideal-cipher model),
9
+ * one ECB call over the whole batch, truncated to 64 bits.
10
+ * - `bigToBytes` / `bytesToBig`: boundary conversions (hex based) between the BigInt wire form and bytes.
11
+ *
12
+ * Every kernel has a naive reference in `otx.test.ts` and is compared on random and edge inputs.
13
+ */
14
+ /** Number of bit columns of the IKNP matrix (the security parameter kappa). */
15
+ export declare const COLS = 128;
16
+ /** Little-endian bytes of a non-negative bigint, exactly `len` bytes (caller range-checked). */
17
+ export declare function bigToBytes(v: bigint, len: number): Uint8Array;
18
+ /** The bigint with the given little-endian bytes. */
19
+ export declare function bytesToBig(b: Uint8Array): bigint;
20
+ /**
21
+ * `nwords` u32 words of the PRG stream of `seed` starting at AES block `startBlock` (16-byte blocks). The unused high bits
22
+ * of the last word are NOT masked here.
23
+ */
24
+ export declare function prgColumn(seed: Uint8Array, startBlock: number, nwords: number): Uint32Array;
25
+ /** Clear the bits at positions >= nbits in a little-endian word column. */
26
+ export declare function maskTail(col: Uint32Array, nbits: number): void;
27
+ /** In-place transpose of a 32x32 bit matrix stored as 32 u32 words (bit c of word r <-> bit r of word c). */
28
+ export declare function transpose32(a: Uint32Array, off?: number): void;
29
+ /**
30
+ * Transpose COLS = 128 bit-columns (each `W` words, concatenated) into `rows` rows of 128 bits (4 words each):
31
+ * bit `i` of row `j` is bit `j` of column `i`. Only the first `rows` rows are produced.
32
+ */
33
+ export declare function transposeCols(cols: Uint32Array, W: number, rows: number): Uint32Array;
34
+ /** acc ^= v for the 4-word element at `v[vo..]`. */
35
+ export declare function gfXorInto(acc: Uint32Array, v: Uint32Array, vo: number): void;
36
+ /** acc <- acc * x in GF(2^128) with x^128 = x^7 + x^2 + x + 1. */
37
+ export declare function gfMulX(acc: Uint32Array): void;
38
+ /** XOR into `acc` the element `chi[j]` (4 words) for every set bit j of the word column `col`. */
39
+ export declare function accumColumn(col: Uint32Array, chi: Uint32Array, acc: Uint32Array): void;
40
+ /**
41
+ * sum_i x^i * (sum_{j in col_i} chi_j) by Horner over the columns (127 multiplications by x in total), the KOS
42
+ * combination used by both roles. `cols` holds COLS columns of W words.
43
+ */
44
+ export declare function kosCombine(cols: Uint32Array, W: number, chi: Uint32Array): Uint32Array;
45
+ /** The 4-word little-endian form of a 128-bit bigint, and back. */
46
+ export declare function gfFromBig(v: bigint): Uint32Array;
47
+ export declare function gfToBig(w: Uint32Array): bigint;
48
+ /**
49
+ * The 128-bit tweak of an OT-extension hash call, as two parts: a 64-bit GLOBAL row index (`offset` + position within the
50
+ * call) in words 0..1 and a 64-bit session DOMAIN in words 2..3. `offset` is the number of rows the channel hashed in
51
+ * all earlier rounds, so no two hash calls of one channel share a tweak; `domain` (`otTweakDomain`) separates channels
52
+ * (sessions, directions, party pairs) that use the same fixed AES key. The default (offset 0, domain 0) is the legacy
53
+ * tweak (position within the call, XORed into the low word).
54
+ */
55
+ export interface OtTweak {
56
+ /** Rows hashed by this channel before this call (non-negative safe integer). */
57
+ offset: number;
58
+ /** 2 u32 words; see `otTweakDomain`. */
59
+ domain: Uint32Array;
60
+ }
61
+ /** The 64-bit session domain of a channel: SHA-256(tag, binding)[0..8], where `binding` is the channel's session binding bytes. */
62
+ export declare function otTweakDomain(binding: Uint8Array): Uint32Array;
63
+ /**
64
+ * H(tweak, row_j) for `n` rows of 128 bits (4 words each in `rows`): returns 2 u32 words (64 bits) per row, TMMO:
65
+ * H(x, t) = pi(pi(x) ^ t) ^ pi(x), pi = AES-128 under one fixed public key, truncated to the low 64 bits.
66
+ *
67
+ * TWEAK (R4-12): t_j = (domain[1] || domain[0] || hi || lo) where (hi || lo) = `tweak.offset + j` is the channel-global
68
+ * row index (64 bits, XORed into words 0..1) and the 64-bit session domain fills words 2..3. Hence every hash call of a
69
+ * channel, in every round, has a distinct tweak, and channels have disjoint tweaks except with probability 2^-64 per
70
+ * pair. (Before R4-12 the tweak was only the position j within the call, restarting at 0 each round; that was safe
71
+ * because the hashed rows are fresh PRG output, see docs/pca/security/pca-mpc-spdz-soundness.md section 8, but it left
72
+ * distinctness to the inputs alone.) Sender and receiver derive the same tweak from the same round counter.
73
+ */
74
+ export declare function tmmoCrh(rows: Uint32Array, n: number, tweak?: OtTweak): Uint32Array;
75
+ /** The 64-bit value of the two words at index j of a `tmmoCrh` output. */
76
+ export declare function word64(h: Uint32Array, j: number): bigint;
package/dist/otx.js ADDED
@@ -0,0 +1,238 @@
1
+ "use strict";
2
+ /**
3
+ * Typed-array kernels for the OT-extension hot path (no per-bit BigInt, no per-bit objects).
4
+ *
5
+ * - `prgColumn`: AES-128-CTR keystream PRG for the column expansion (one cipher call per column per round).
6
+ * - `transposeCols`: 32x32 bit-block transpose from `KAPPA` bit-columns to row words.
7
+ * - `gf128*Words`: GF(2^128) as four little-endian u32 words (add = XOR, multiply-by-x, row accumulation).
8
+ * - `tmmoCrh`: batched tweakable correlation-robust hash H(x, t) = pi(pi(x) ^ t) ^ pi(x) with a fixed-key AES-128
9
+ * (the TMMO construction of Guo-Katz-Wang-Yu, ePrint 2019/074 section 7, secure in the ideal-cipher model),
10
+ * one ECB call over the whole batch, truncated to 64 bits.
11
+ * - `bigToBytes` / `bytesToBig`: boundary conversions (hex based) between the BigInt wire form and bytes.
12
+ *
13
+ * Every kernel has a naive reference in `otx.test.ts` and is compared on random and edge inputs.
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.COLS = void 0;
17
+ exports.bigToBytes = bigToBytes;
18
+ exports.bytesToBig = bytesToBig;
19
+ exports.prgColumn = prgColumn;
20
+ exports.maskTail = maskTail;
21
+ exports.transpose32 = transpose32;
22
+ exports.transposeCols = transposeCols;
23
+ exports.gfXorInto = gfXorInto;
24
+ exports.gfMulX = gfMulX;
25
+ exports.accumColumn = accumColumn;
26
+ exports.kosCombine = kosCombine;
27
+ exports.gfFromBig = gfFromBig;
28
+ exports.gfToBig = gfToBig;
29
+ exports.otTweakDomain = otTweakDomain;
30
+ exports.tmmoCrh = tmmoCrh;
31
+ exports.word64 = word64;
32
+ const node_crypto_1 = require("node:crypto");
33
+ /** Number of bit columns of the IKNP matrix (the security parameter kappa). */
34
+ exports.COLS = 128;
35
+ const TAG_PRG_KEY = new TextEncoder().encode('atlas-pca-mpc/ot-prg-aes');
36
+ const TAG_CRH_KEY = new TextEncoder().encode('atlas-pca-mpc/ot-crh-aes-fixed-key');
37
+ /** Little-endian bytes of a non-negative bigint, exactly `len` bytes (caller range-checked). */
38
+ function bigToBytes(v, len) {
39
+ const hex = v.toString(16).padStart(len * 2, '0').slice(-len * 2); // low len bytes
40
+ return Uint8Array.from(Buffer.from(hex, 'hex').reverse());
41
+ }
42
+ /** The bigint with the given little-endian bytes. */
43
+ function bytesToBig(b) {
44
+ if (b.length === 0)
45
+ return 0n;
46
+ const hex = Buffer.from(b).reverse().toString('hex'); // Buffer.from(Uint8Array) copies, so the input is not reversed in place
47
+ return BigInt('0x' + hex);
48
+ }
49
+ const keyCache = new WeakMap();
50
+ /** The AES key for a seed (cached per seed object). */
51
+ function prgKey(seed) {
52
+ let k = keyCache.get(seed);
53
+ if (!k) {
54
+ k = (0, node_crypto_1.createHash)('sha256').update(TAG_PRG_KEY).update(seed).digest().subarray(0, 16);
55
+ keyCache.set(seed, k);
56
+ }
57
+ return k;
58
+ }
59
+ /**
60
+ * `nwords` u32 words of the PRG stream of `seed` starting at AES block `startBlock` (16-byte blocks). The unused high bits
61
+ * of the last word are NOT masked here.
62
+ */
63
+ function prgColumn(seed, startBlock, nwords) {
64
+ const iv = Buffer.alloc(16);
65
+ iv.writeBigUInt64BE(BigInt(startBlock), 8);
66
+ const c = (0, node_crypto_1.createCipheriv)('aes-128-ctr', prgKey(seed), iv);
67
+ const zeros = Buffer.alloc(nwords * 4);
68
+ const ks = c.update(zeros);
69
+ const out = new Uint32Array(nwords);
70
+ for (let i = 0; i < nwords; i++)
71
+ out[i] = ks.readUInt32LE(i * 4);
72
+ return out;
73
+ }
74
+ /** Clear the bits at positions >= nbits in a little-endian word column. */
75
+ function maskTail(col, nbits) {
76
+ const full = nbits >>> 5;
77
+ const rem = nbits & 31;
78
+ if (rem !== 0)
79
+ col[full] = (col[full] & ((1 << rem) - 1)) >>> 0;
80
+ for (let i = rem !== 0 ? full + 1 : full; i < col.length; i++)
81
+ col[i] = 0;
82
+ }
83
+ /** In-place transpose of a 32x32 bit matrix stored as 32 u32 words (bit c of word r <-> bit r of word c). */
84
+ function transpose32(a, off = 0) {
85
+ let m = 0x0000ffff;
86
+ for (let j = 16; j !== 0; j >>>= 1, m = (m ^ (m << j)) >>> 0) {
87
+ for (let k = 0; k < 32; k = (k + j + 1) & ~j) {
88
+ const t = (((a[off + k] >>> j) ^ a[off + k + j]) & m) >>> 0;
89
+ a[off + k] = (a[off + k] ^ (t << j)) >>> 0;
90
+ a[off + k + j] = (a[off + k + j] ^ t) >>> 0;
91
+ }
92
+ }
93
+ }
94
+ /**
95
+ * Transpose COLS = 128 bit-columns (each `W` words, concatenated) into `rows` rows of 128 bits (4 words each):
96
+ * bit `i` of row `j` is bit `j` of column `i`. Only the first `rows` rows are produced.
97
+ */
98
+ function transposeCols(cols, W, rows) {
99
+ const out = new Uint32Array(rows * 4);
100
+ const tmp = new Uint32Array(32);
101
+ const blocks = (rows + 31) >>> 5;
102
+ for (let rb = 0; rb < blocks; rb++) {
103
+ for (let cb = 0; cb < 4; cb++) {
104
+ for (let c = 0; c < 32; c++)
105
+ tmp[c] = cols[(cb * 32 + c) * W + rb];
106
+ transpose32(tmp);
107
+ const lim = Math.min(32, rows - rb * 32);
108
+ for (let r = 0; r < lim; r++)
109
+ out[(rb * 32 + r) * 4 + cb] = tmp[r];
110
+ }
111
+ }
112
+ return out;
113
+ }
114
+ // ---------------------------------------------------------------- GF(2^128) on u32 words
115
+ /** acc ^= v for the 4-word element at `v[vo..]`. */
116
+ function gfXorInto(acc, v, vo) {
117
+ acc[0] = (acc[0] ^ v[vo]) >>> 0;
118
+ acc[1] = (acc[1] ^ v[vo + 1]) >>> 0;
119
+ acc[2] = (acc[2] ^ v[vo + 2]) >>> 0;
120
+ acc[3] = (acc[3] ^ v[vo + 3]) >>> 0;
121
+ }
122
+ /** acc <- acc * x in GF(2^128) with x^128 = x^7 + x^2 + x + 1. */
123
+ function gfMulX(acc) {
124
+ const carry = acc[3] >>> 31;
125
+ acc[3] = ((acc[3] << 1) | (acc[2] >>> 31)) >>> 0;
126
+ acc[2] = ((acc[2] << 1) | (acc[1] >>> 31)) >>> 0;
127
+ acc[1] = ((acc[1] << 1) | (acc[0] >>> 31)) >>> 0;
128
+ acc[0] = ((acc[0] << 1) ^ (carry ? 0x87 : 0)) >>> 0;
129
+ }
130
+ /** XOR into `acc` the element `chi[j]` (4 words) for every set bit j of the word column `col`. */
131
+ function accumColumn(col, chi, acc) {
132
+ for (let w = 0; w < col.length; w++) {
133
+ let x = col[w];
134
+ const base = w << 5;
135
+ while (x !== 0) {
136
+ const lsb = x & -x;
137
+ const j = base + (31 - Math.clz32(lsb));
138
+ const o = j << 2;
139
+ acc[0] = (acc[0] ^ chi[o]) >>> 0;
140
+ acc[1] = (acc[1] ^ chi[o + 1]) >>> 0;
141
+ acc[2] = (acc[2] ^ chi[o + 2]) >>> 0;
142
+ acc[3] = (acc[3] ^ chi[o + 3]) >>> 0;
143
+ x = (x ^ lsb) >>> 0;
144
+ }
145
+ }
146
+ }
147
+ /**
148
+ * sum_i x^i * (sum_{j in col_i} chi_j) by Horner over the columns (127 multiplications by x in total), the KOS
149
+ * combination used by both roles. `cols` holds COLS columns of W words.
150
+ */
151
+ function kosCombine(cols, W, chi) {
152
+ const acc = new Uint32Array(4);
153
+ const part = new Uint32Array(4);
154
+ for (let i = exports.COLS - 1; i >= 0; i--) {
155
+ gfMulX(acc);
156
+ part.fill(0);
157
+ accumColumn(cols.subarray(i * W, (i + 1) * W), chi, part);
158
+ gfXorInto(acc, part, 0);
159
+ }
160
+ return acc;
161
+ }
162
+ /** The 4-word little-endian form of a 128-bit bigint, and back. */
163
+ function gfFromBig(v) {
164
+ const out = new Uint32Array(4);
165
+ for (let i = 0; i < 4; i++)
166
+ out[i] = Number((v >> BigInt(32 * i)) & 0xffffffffn);
167
+ return out;
168
+ }
169
+ function gfToBig(w) {
170
+ let v = 0n;
171
+ for (let i = 3; i >= 0; i--)
172
+ v = (v << 32n) | BigInt(w[i]);
173
+ return v;
174
+ }
175
+ // ---------------------------------------------------------------- correlation-robust hash
176
+ let crhKeyBuf;
177
+ function crhKey() {
178
+ crhKeyBuf ??= (0, node_crypto_1.createHash)('sha256').update(TAG_CRH_KEY).digest().subarray(0, 16);
179
+ return crhKeyBuf;
180
+ }
181
+ function aesEcb(buf) {
182
+ const c = (0, node_crypto_1.createCipheriv)('aes-128-ecb', crhKey(), null);
183
+ c.setAutoPadding(false);
184
+ const out = c.update(Buffer.from(buf.buffer, buf.byteOffset, buf.byteLength));
185
+ return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);
186
+ }
187
+ const TAG_TWEAK_DOMAIN = new TextEncoder().encode('atlas-pca-mpc/ot-crh-tweak-domain/v2');
188
+ const ZERO_DOMAIN = new Uint32Array(2);
189
+ /** The 64-bit session domain of a channel: SHA-256(tag, binding)[0..8], where `binding` is the channel's session binding bytes. */
190
+ function otTweakDomain(binding) {
191
+ const d = (0, node_crypto_1.createHash)('sha256').update(TAG_TWEAK_DOMAIN).update(binding).digest();
192
+ return new Uint32Array([d.readUInt32LE(0), d.readUInt32LE(4)]);
193
+ }
194
+ /**
195
+ * H(tweak, row_j) for `n` rows of 128 bits (4 words each in `rows`): returns 2 u32 words (64 bits) per row, TMMO:
196
+ * H(x, t) = pi(pi(x) ^ t) ^ pi(x), pi = AES-128 under one fixed public key, truncated to the low 64 bits.
197
+ *
198
+ * TWEAK (R4-12): t_j = (domain[1] || domain[0] || hi || lo) where (hi || lo) = `tweak.offset + j` is the channel-global
199
+ * row index (64 bits, XORed into words 0..1) and the 64-bit session domain fills words 2..3. Hence every hash call of a
200
+ * channel, in every round, has a distinct tweak, and channels have disjoint tweaks except with probability 2^-64 per
201
+ * pair. (Before R4-12 the tweak was only the position j within the call, restarting at 0 each round; that was safe
202
+ * because the hashed rows are fresh PRG output, see docs/pca/security/pca-mpc-spdz-soundness.md section 8, but it left
203
+ * distinctness to the inputs alone.) Sender and receiver derive the same tweak from the same round counter.
204
+ */
205
+ function tmmoCrh(rows, n, tweak) {
206
+ const offset = tweak?.offset ?? 0;
207
+ const dom = tweak?.domain ?? ZERO_DOMAIN;
208
+ if (!Number.isSafeInteger(offset) || offset < 0)
209
+ throw new RangeError('tmmoCrh: tweak offset must be a non-negative safe integer');
210
+ if (dom.length !== 2)
211
+ throw new RangeError('tmmoCrh: tweak domain must be 2 words');
212
+ const offHi = Math.floor(offset / 4294967296);
213
+ const offLo = offset % 4294967296;
214
+ const a = aesEcb(new Uint8Array(rows.buffer, rows.byteOffset, n * 16));
215
+ const aw = new Uint32Array(a.buffer.slice(a.byteOffset, a.byteOffset + n * 16));
216
+ const b = new Uint32Array(n * 4);
217
+ for (let j = 0; j < n; j++) {
218
+ const o = j * 4;
219
+ const v = offLo + j;
220
+ b[o] = (aw[o] ^ v) >>> 0;
221
+ b[o + 1] = (aw[o + 1] ^ (offHi + Math.floor(v / 4294967296))) >>> 0;
222
+ b[o + 2] = (aw[o + 2] ^ dom[0]) >>> 0;
223
+ b[o + 3] = (aw[o + 3] ^ dom[1]) >>> 0;
224
+ }
225
+ const c = aesEcb(new Uint8Array(b.buffer, 0, n * 16));
226
+ const cw = new Uint32Array(c.buffer.slice(c.byteOffset, c.byteOffset + n * 16));
227
+ const out = new Uint32Array(n * 2);
228
+ for (let j = 0; j < n; j++) {
229
+ out[2 * j] = (cw[4 * j] ^ aw[4 * j]) >>> 0;
230
+ out[2 * j + 1] = (cw[4 * j + 1] ^ aw[4 * j + 1]) >>> 0;
231
+ }
232
+ return out;
233
+ }
234
+ /** The 64-bit value of the two words at index j of a `tmmoCrh` output. */
235
+ function word64(h, j) {
236
+ return (BigInt(h[2 * j + 1]) << 32n) | BigInt(h[2 * j]);
237
+ }
238
+ //# sourceMappingURL=otx.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otx.js","sourceRoot":"","sources":["../src/otx.ts"],"names":[],"mappings":"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"}
package/dist/runner.d.ts CHANGED
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import { type OpenedMsg } from './beaver';
17
17
  import { type DecisionVector } from './party';
18
- import type { ComposedDecision } from './compose';
18
+ import { type ComposedDecision } from './compose';
19
19
  export interface MpcConfig {
20
20
  /** r-quantization domain {0..Q}. Must match the Q used to build the decision vectors. */
21
21
  Q?: number;
package/dist/runner.js CHANGED
@@ -17,10 +17,12 @@
17
17
  Object.defineProperty(exports, "__esModule", { value: true });
18
18
  exports.composeSecure = composeSecure;
19
19
  const field_1 = require("./field");
20
+ const csprng_1 = require("./csprng");
20
21
  const beaver_1 = require("./beaver");
21
22
  const sharing_1 = require("./sharing");
22
23
  const thermometer_1 = require("./thermometer");
23
24
  const party_1 = require("./party");
25
+ const compose_1 = require("./compose");
24
26
  const T_M = 3; // threshold domain {0..3}; party thresholds are always in {1,2,3}
25
27
  /** Compose stakeholder decision vectors under MPC. Requires >= 1 party (0 parties => fail closed). */
26
28
  function composeSecure(vectors, cfg = {}) {
@@ -28,7 +30,10 @@ function composeSecure(vectors, cfg = {}) {
28
30
  if (n === 0)
29
31
  throw new Error('composeSecure: no parties (fail closed)');
30
32
  const Q = cfg.Q ?? party_1.DEFAULT_Q;
31
- const rng = new field_1.FieldRng(cfg.seed);
33
+ (0, compose_1.assertDecisionVectors)(vectors, Q);
34
+ // No seed => cryptographically secure sharing randomness. (A fixed default seed would make every
35
+ // share predictable to anyone who reads this file.) A seed is for reproducible tests only.
36
+ const rng = cfg.seed === undefined ? new csprng_1.SecureFieldRng() : new field_1.FieldRng(cfg.seed);
32
37
  const opened = [];
33
38
  const sharings = [];
34
39
  let mults = 0;
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/dist/sharing.d.ts CHANGED
@@ -16,6 +16,8 @@ export type Share = bigint;
16
16
  /** A secret shared across N parties: `shares[i]` is held by party i. */
17
17
  export type SharedValue = bigint[];
18
18
  /** Split `secret` into `n` additive shares using `rng`. First n-1 uniform; last is the complement. */
19
+ /** Largest party count accepted (bounds allocation: `n` is attacker-influenced in some deployments). */
20
+ export declare const MAX_PARTIES = 1024;
19
21
  export declare function share(secret: bigint, n: number, rng: FieldRng): SharedValue;
20
22
  /**
21
23
  * Reconstruct the secret from ALL shares. Fails CLOSED: an empty vector, or any `undefined`
package/dist/sharing.js CHANGED
@@ -12,6 +12,7 @@
12
12
  * interaction — that is the Beaver-triple protocol in `beaver.ts`.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.MAX_PARTIES = void 0;
15
16
  exports.share = share;
16
17
  exports.reconstruct = reconstruct;
17
18
  exports.shareConstant = shareConstant;
@@ -23,9 +24,11 @@ exports.addPublicSV = addPublicSV;
23
24
  exports.notBitSV = notBitSV;
24
25
  const field_1 = require("./field");
25
26
  /** Split `secret` into `n` additive shares using `rng`. First n-1 uniform; last is the complement. */
27
+ /** Largest party count accepted (bounds allocation: `n` is attacker-influenced in some deployments). */
28
+ exports.MAX_PARTIES = 1024;
26
29
  function share(secret, n, rng) {
27
- if (!Number.isInteger(n) || n < 1)
28
- throw new Error('share: n must be a positive integer');
30
+ if (!Number.isInteger(n) || n < 1 || n > exports.MAX_PARTIES)
31
+ throw new Error(`share: n must be an integer in [1, ${exports.MAX_PARTIES}]`);
29
32
  const shares = [];
30
33
  let acc = 0n;
31
34
  for (let i = 0; i < n - 1; i++) {
@@ -56,8 +59,8 @@ function reconstruct(shares) {
56
59
  }
57
60
  /** Sharing of a PUBLIC constant: party 0 holds c, everyone else holds 0 (sums to c, no randomness). */
58
61
  function shareConstant(c, n) {
59
- if (!Number.isInteger(n) || n < 1)
60
- throw new Error('shareConstant: n must be a positive integer');
62
+ if (!Number.isInteger(n) || n < 1 || n > exports.MAX_PARTIES)
63
+ throw new Error(`shareConstant: n must be an integer in [1, ${exports.MAX_PARTIES}]`);
61
64
  const out = new Array(n).fill(0n);
62
65
  out[0] = (0, field_1.mod)(c);
63
66
  return out;
@@ -1 +1 @@
1
- {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
@@ -9,16 +9,20 @@
9
9
  * silent wrong answer. (Malicious-with-abort, dishonest-majority.)
10
10
  *
11
11
  * Offline phase (two interchangeable sources, same tiny interface):
12
- * - DEFAULT: a trusted dealer produces the authenticated triples / input sharings and knows α.
12
+ * - DEFAULT, labelled `'trusted-dealer'` in the result: a trusted dealer produces the authenticated
13
+ * triples / input sharings and knows the MAC keys. A dealer that hands out a wrong triple (c ≠ a·b) is
14
+ * now DETECTED: every delivered triple is certified by the sacrifice check with `SACRIFICE_PARTNERS`
15
+ * independent partners (spdz.ts `sacrificeVerify`) and a bad one aborts. The dealer is still trusted for
16
+ * PRIVACY (it knows every share and key).
13
17
  * - NO-DEALER: pass `cfg.offline` (a `NoDealerOffline` from `mascot.ts`) and the triples, input
14
18
  * sharings and the distributed MAC key all come from real oblivious transfer — no dealer, and α
15
19
  * is never reconstructed. Either way the ONLINE phase here is the same maliciously-secure protocol.
16
20
  * See spdz.ts + mascot.ts + docs §7 for the offline boundary.
17
21
  */
18
- import { type Deviation } from './spdz';
22
+ import { type DealerFault, type Deviation } from './spdz';
19
23
  import type { OfflineProvider } from './mascot';
20
24
  import { type DecisionVector } from './party';
21
- import type { ComposedDecision } from './compose';
25
+ import { type ComposedDecision } from './compose';
22
26
  export interface MaliciousMpcConfig {
23
27
  Q?: number;
24
28
  seed?: bigint;
@@ -30,6 +34,15 @@ export interface MaliciousMpcConfig {
30
34
  * absent, the trusted-dealer functions (`setupMac`/`genAuthTriple`/`authShare`) are used.
31
35
  */
32
36
  offline?: OfflineProvider;
37
+ /**
38
+ * Trusted-dealer mode only (ignored when `offline` is set). `verifyTriples` (default true) certifies every
39
+ * dealt triple by the sacrifice check; `fault` is a TEST-ONLY lying dealer.
40
+ */
41
+ dealer?: {
42
+ verifyTriples?: boolean;
43
+ partners?: number;
44
+ fault?: DealerFault;
45
+ };
33
46
  }
34
47
  export interface MaliciousMpcResult {
35
48
  composed: ComposedDecision;
@@ -39,6 +52,10 @@ export interface MaliciousMpcResult {
39
52
  opens: number;
40
53
  /** Number of authenticated Beaver multiplications performed. */
41
54
  multiplications: number;
55
+ /** Where the preprocessing came from: a trusted dealer who knows every share and key, or the OT-based no-dealer phase. */
56
+ offlineMode: 'trusted-dealer' | 'no-dealer';
57
+ /** Whether dealt triples were certified by the sacrifice check (always true for `no-dealer`). */
58
+ triplesVerified: boolean;
42
59
  /** True iff the SPDZ MAC-check passed (always true when a result is returned; an abort throws). */
43
60
  macChecked: true;
44
61
  }