@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.
- package/README.md +81 -3
- package/dist/beaver.js +4 -0
- package/dist/beaver.js.map +1 -1
- package/dist/compose.d.ts +9 -2
- package/dist/compose.js +24 -1
- package/dist/compose.js.map +1 -1
- package/dist/ec.d.ts +6 -3
- package/dist/ec.js +27 -9
- package/dist/ec.js.map +1 -1
- package/dist/enc.d.ts +46 -0
- package/dist/enc.js +88 -0
- package/dist/enc.js.map +1 -0
- package/dist/endemic-ot.js +24 -1
- package/dist/endemic-ot.js.map +1 -1
- package/dist/hybrid-ot.js +3 -0
- package/dist/hybrid-ot.js.map +1 -1
- package/dist/kem-ot.js +2 -0
- package/dist/kem-ot.js.map +1 -1
- package/dist/mascot.d.ts +81 -30
- package/dist/mascot.js +232 -113
- package/dist/mascot.js.map +1 -1
- package/dist/net/certs.d.ts +14 -0
- package/dist/net/certs.js +30 -0
- package/dist/net/certs.js.map +1 -0
- package/dist/net/faults.d.ts +49 -0
- package/dist/net/faults.js +222 -0
- package/dist/net/faults.js.map +1 -0
- package/dist/net/forensics.d.ts +81 -0
- package/dist/net/forensics.js +181 -0
- package/dist/net/forensics.js.map +1 -0
- package/dist/net/gadget.d.ts +44 -0
- package/dist/net/gadget.js +102 -0
- package/dist/net/gadget.js.map +1 -0
- package/dist/net/index.d.ts +11 -0
- package/dist/net/index.js +28 -0
- package/dist/net/index.js.map +1 -0
- package/dist/net/launch-local.d.ts +53 -0
- package/dist/net/launch-local.js +190 -0
- package/dist/net/launch-local.js.map +1 -0
- package/dist/net/launch-support.d.ts +6 -0
- package/dist/net/launch-support.js +65 -0
- package/dist/net/launch-support.js.map +1 -0
- package/dist/net/mesh.d.ts +135 -0
- package/dist/net/mesh.js +491 -0
- package/dist/net/mesh.js.map +1 -0
- package/dist/net/offline-net.d.ts +58 -0
- package/dist/net/offline-net.js +485 -0
- package/dist/net/offline-net.js.map +1 -0
- package/dist/net/ot-net.d.ts +42 -0
- package/dist/net/ot-net.js +219 -0
- package/dist/net/ot-net.js.map +1 -0
- package/dist/net/pa.d.ts +65 -0
- package/dist/net/pa.js +118 -0
- package/dist/net/pa.js.map +1 -0
- package/dist/net/party-main.d.ts +48 -0
- package/dist/net/party-main.js +146 -0
- package/dist/net/party-main.js.map +1 -0
- package/dist/net/prep.d.ts +40 -0
- package/dist/net/prep.js +12 -0
- package/dist/net/prep.js.map +1 -0
- package/dist/net/protocol.d.ts +126 -0
- package/dist/net/protocol.js +655 -0
- package/dist/net/protocol.js.map +1 -0
- package/dist/net/wire.d.ts +89 -0
- package/dist/net/wire.js +242 -0
- package/dist/net/wire.js.map +1 -0
- package/dist/ot.d.ts +176 -17
- package/dist/ot.js +479 -252
- package/dist/ot.js.map +1 -1
- package/dist/otx.d.ts +76 -0
- package/dist/otx.js +238 -0
- package/dist/otx.js.map +1 -0
- package/dist/runner.d.ts +1 -1
- package/dist/runner.js +6 -1
- package/dist/runner.js.map +1 -1
- package/dist/sharing.d.ts +2 -0
- package/dist/sharing.js +7 -4
- package/dist/sharing.js.map +1 -1
- package/dist/spdz-runner.d.ts +20 -3
- package/dist/spdz-runner.js +21 -3
- package/dist/spdz-runner.js.map +1 -1
- package/dist/spdz.d.ts +96 -22
- package/dist/spdz.js +196 -47
- package/dist/spdz.js.map +1 -1
- 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
|
package/dist/otx.js.map
ADDED
|
@@ -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
|
|
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
|
-
|
|
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;
|
package/dist/runner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;GAcG;;
|
|
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(
|
|
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(
|
|
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;
|
package/dist/sharing.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG
|
|
1
|
+
{"version":3,"file":"sharing.js","sourceRoot":"","sources":["../src/sharing.ts"],"names":[],"mappings":"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"}
|
package/dist/spdz-runner.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
}
|