.
.
fleXOR: flexible garbling for XOR gates that beats free-XOR
. .
Vladimir Kolesnikov ≫
- Payman Mohassel ≫
◮
Mike Rosulek ≫ .
. Vladimir Kolesnikov . . Payman Mohassel Mike Rosulek . - - PowerPoint PPT Presentation
fle XOR : flexible garbling for XOR gates that beats free- XOR . Vladimir Kolesnikov . . Payman Mohassel Mike Rosulek . . background 1 . . . Enc A C B Enc A C B Enc A C B Enc A C B . background: garbled
.
. .
Vladimir Kolesnikov ≫
◮
Mike Rosulek ≫ .
.
.
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
EncA
B
C EncA
B
C EncA
B
C EncA
B
C
.
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
EncA0,B0(C0) EncA0,B1(C1) EncA1,B0(C1) EncA1,B1(C0)
.
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
EncA0,B0(C0) EncA0,B1(C1) EncA1,B0(C1) EncA1,B1(C0)
.
.
.
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C DecA
B n
.
EncA0,B0(C0) EncA0,B1(C0) EncA1,B0(C0) EncA1,B1(C1)
.
Garbled row reduction [NaorPinkasSumner99,PinkasSchneiderSmartWilliams09]
. . Fix one of the ciphertexts to be all zeroes Corresponding wire label must be Dec
n , not uniform
Only 3 ciphertexts needed for garbled gate More advanced technique reduces size to 2 ciphertexts .
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C DecA
B n
.
EncA0,B0(C0) 0n EncA0,B1(C0) EncA1,B0(C0) EncA1,B1(C1)
.
Garbled row reduction [NaorPinkasSumner99,PinkasSchneiderSmartWilliams09]
. .
◮ Fix one of the ciphertexts to be all zeroes
Corresponding wire label must be Dec
n , not uniform
Only 3 ciphertexts needed for garbled gate More advanced technique reduces size to 2 ciphertexts .
.
.
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := DecA0,B0(0n)
.
EncA0,B0(C0) 0n EncA0,B1(C0) EncA1,B0(C0) EncA1,B1(C1)
.
Garbled row reduction [NaorPinkasSumner99,PinkasSchneiderSmartWilliams09]
. .
◮ Fix one of the ciphertexts to be all zeroes ◮ Corresponding wire label must be Dec(0n), not uniform
Only 3 ciphertexts needed for garbled gate More advanced technique reduces size to 2 ciphertexts .
.
. .
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := DecA0,B0(0n)
.
EncA0,B1(C0) EncA1,B0(C0) EncA1,B1(C1)
.
Garbled row reduction [NaorPinkasSumner99,PinkasSchneiderSmartWilliams09]
. .
◮ Fix one of the ciphertexts to be all zeroes ◮ Corresponding wire label must be Dec(0n), not uniform ◮ Only 3 ciphertexts needed for garbled gate ◮ More advanced technique reduces size to 2 ciphertexts
.
.
.
.
. .
false: A0 true: A1
A0 ⊕ A1
.
false: B0 true: B1
B0 ⊕ B1
.
false: C0 true: C1
C0 ⊕ C1
.
Definition
. . Offset of a wire = XOR of its two wire labels .
Free XOR optimization [KolesnikovSchneider08]:
. . all wires have same (secret) offset wire labels for XOR gate satisfy C A B compute output wire label by XOR’ing input wire labels (no crypto!) .
.
. .
false: A true: A ⊕ ∆A
.
false: B true: B ⊕ ∆B
.
false: C true: C ⊕ ∆C
.
Definition
. . Offset of a wire = XOR of its two wire labels .
Free XOR optimization [KolesnikovSchneider08]:
. . all wires have same (secret) offset wire labels for XOR gate satisfy C A B compute output wire label by XOR’ing input wire labels (no crypto!) .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: C true: C ⊕ ∆
.
Definition
. . Offset of a wire = XOR of its two wire labels .
Free XOR optimization [KolesnikovSchneider08]:
. .
◮ all wires have same (secret) offset ∆
wire labels for XOR gate satisfy C A B compute output wire label by XOR’ing input wire labels (no crypto!) .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: A ⊕ B true: A ⊕ B ⊕ ∆
.
Definition
. . Offset of a wire = XOR of its two wire labels .
Free XOR optimization [KolesnikovSchneider08]:
. .
◮ all wires have same (secret) offset ∆ ◮ wire labels for XOR gate satisfy C = A ⊕ B
compute output wire label by XOR’ing input wire labels (no crypto!) .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: A ⊕ B true: A ⊕ B ⊕ ∆
.
Definition
. . Offset of a wire = XOR of its two wire labels .
Free XOR optimization [KolesnikovSchneider08]:
. .
◮ all wires have same (secret) offset ∆ ◮ wire labels for XOR gate satisfy C = A ⊕ B ◮ compute output wire label by XOR’ing input wire labels (no crypto!)
.
.
.
Free XOR limitations:
. .
[ChoiKatzKumaresanZhou12]
.
Motivating Question
. . Can we overcome these limitations, while retaining Free XOR’s benefits (as much as possible)? Hint: yes! .
.
.
Free XOR limitations:
. .
[ChoiKatzKumaresanZhou12]
.
Motivating Question
. . Can we overcome these limitations, while retaining Free XOR’s benefits (as much as possible)? Hint: yes! .
.
.
Free XOR limitations:
. .
[ChoiKatzKumaresanZhou12]
.
Motivating Question
. . Can we overcome these limitations, while retaining Free XOR’s benefits (as much as possible)? Hint: yes! .
.
.
.
. .
false: A true: A ⊕ ∆A
.
false: B true: B ⊕ ∆B
.
false: true:
.
EncA A EncA
A A
C
.
EncB B EncB
B B
C
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C
, then use free XOR apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
??
.
??
.
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: true:
.
EncA A EncA
A A
C
.
EncB B EncB
B B
C
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C
, then use free XOR apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
??
.
??
.
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA A EncA
A A
C
.
EncB B EncB
B B
C
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR
apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA(A∗) EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB B EncB
B B
C
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR
apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA(A∗) EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB(B∗) EncB⊕∆B(B∗ ⊕ ∆C)
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR
apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA(A∗) EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB(B∗) EncB⊕∆B(B∗ ⊕ ∆C)
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR
apply row reduction : each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA(A∗) 0n EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB(B∗) 0n EncB⊕∆B(B∗ ⊕ ∆C)
.
A DecA
n
.
A A
.
B DecB
n
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR ◮ apply row reduction
: each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA(A∗) 0n EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB(B∗) 0n EncB⊕∆B(B∗ ⊕ ∆C)
.
A∗ := DecA(0n)
.
A A
.
B∗ := DecB(0n)
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR ◮ apply row reduction
: each “adjustment” requires 1 ciphertext if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆A
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA⊕∆A(A∗ ⊕ ∆C)
.
EncB⊕∆B(B∗ ⊕ ∆C)
.
A∗ := DecA(0n)
.
A A
.
B∗ := DecB(0n)
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR ◮ apply row reduction: each “adjustment” requires 1 ciphertext
if
A C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆C
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA
A A
C
.
EncB⊕∆B(B∗ ⊕ ∆C)
.
A DecA
n
.
A∗ := A
.
B∗ := DecB(0n)
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR ◮ apply row reduction: each “adjustment” requires 1 ciphertext ◮ if ∆A = ∆C, no need to “adjust” first wire at all!
garble XOR gate using 0, 1, or 2 ciphertexts
depending on how many of
A B C
are distinct
.
.
. .
false: A∗ true: A∗ ⊕ ∆C
.
false: A true: A ⊕ ∆C
.
false: B∗ true: B∗ ⊕ ∆C
.
false: B true: B ⊕ ∆B
.
false: A∗ ⊕ B∗ true: A∗ ⊕ B∗ ⊕ ∆C
.
EncA
A A
C
.
EncB⊕∆B(B∗ ⊕ ∆C)
.
A DecA
n
.
A∗ := A
.
B∗ := DecB(0n)
.
Flexible XOR (fleXOR) technique [this work]:
. .
◮ “adjust” offsets of both input wires to ∆C, then use free XOR ◮ apply row reduction: each “adjustment” requires 1 ciphertext ◮ if ∆A = ∆C, no need to “adjust” first wire at all! ◮ garble XOR gate using 0, 1, or 2 ciphertexts
· · ·
depending on how many of {∆A, ∆B, ∆C} are distinct
.
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
while avoiding circularity assumption of Free-XOR? keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆1
.
∆1
.
while avoiding circularity assumption of Free-XOR? keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆2
.
∆1
.
∆2
.
∆1
.
while avoiding circularity assumption of Free-XOR? keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆3
.
∆2
.
∆1
.
∆3
.
∆2
.
∆1
.
while avoiding circularity assumption of Free-XOR? keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆3
.
∆2
.
∆1
.
∆3
.
∆4
.
∆2
.
∆1
.
∆4
while avoiding circularity assumption of Free-XOR? keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆3
.
∆2
.
∆1
.
∆3
.
∆4
.
∆2
.
∆1
.
∆4
· · ·
while avoiding circularity assumption of Free-XOR?
· · ·
keeping compatibility with 2-row-reduction for non-XOR gates? combinatorial constraints of wire ordering .
.
.
Wire ordering:
. . Group circuit’s wires into equivalence classes (same class ⇔ same offset) . .
∆1
.
∆3
.
∆2
.
∆1
.
∆3
.
∆4
.
∆2
.
∆1
.
∆4
· · ·
while avoiding circularity assumption of Free-XOR?
· · ·
keeping compatibility with 2-row-reduction for non-XOR gates?
.
.
.
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: C true: C ⊕ ∆
.
EncA,B(C) EncA,B⊕∆(C) EncA⊕∆,B(C) EncA⊕∆,B⊕∆(C ⊕ ∆)
.
EncA B C junk junk junk
. EncA
B
C junk, Key cycle: same secret in key and message! .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: C true: C ⊕ ∆
.
EncA,B(C) EncA,B⊕∆(C) EncA⊕∆,B(C) EncA⊕∆,B⊕∆(C ⊕ ∆)
.
EncA B C junk junk junk
. EncA
B
C junk, Key cycle: same secret in key and message! .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: C true: C ⊕ ∆
.
EncA,B(C) EncA,B⊕∆(C) EncA⊕∆,B(C) EncA⊕∆,B⊕∆(C ⊕ ∆)
.
EncA,B(C) junk junk junk
.
EncA⊕∆,B⊕∆(C ⊕ ∆) ≈ junk, Key cycle: same secret in key and message! .
.
. .
false: A true: A ⊕ ∆
.
false: B true: B ⊕ ∆
.
false: C true: C ⊕ ∆
.
EncA,B(C) EncA,B⊕∆(C) EncA⊕∆,B(C) EncA⊕∆,B⊕∆(C ⊕ ∆)
.
EncA,B(C) junk junk junk
.
EncA⊕∆,B⊕∆(C ⊕ ∆) ≈ junk,
◮ Key cycle: same secret ∆ in key and message!
.
.
.
Recipe: how to avoid a “key cycle”
. .
. .
i
.
j
.
k
.
encrypts
.
encrypts
. .
i
.
j
.
k
.
encrypts, if i k
.
encrypts, if j k
.
Definition: monotone wire ordering
. . .
i
.
j
.
k
. k max i j . .
i
.
j
.
k
. k max i j .
.
.
Recipe: how to avoid a “key cycle”
. .
. .
∆i
.
∆j
.
∆k
.
encrypts
.
encrypts
. .
∆i
.
∆j
.
∆k
.
encrypts, if i k
.
encrypts, if j k
.
Definition: monotone wire ordering
. . .
i
.
j
.
k
. k max i j . .
i
.
j
.
k
. k max i j .
.
.
Recipe: how to avoid a “key cycle”
. .
. .
∆i
.
∆j
.
∆k
.
encrypts
.
encrypts
. .
∆i
.
∆j
.
∆k
.
encrypts, if i k
.
encrypts, if j k
.
Definition: monotone wire ordering
. . .
i
.
j
.
k
. k max i j . .
i
.
j
.
k
. k max i j .
.
.
Recipe: how to avoid a “key cycle”
. .
. .
∆i
.
∆j
.
∆k
.
encrypts
.
encrypts
. .
∆i
.
∆j
.
∆k
.
encrypts, if i = k
.
encrypts, if j = k
.
Definition: monotone wire ordering
. . .
i
.
j
.
k
. k max i j . .
i
.
j
.
k
. k max i j .
.
.
Recipe: how to avoid a “key cycle”
. .
. .
∆i
.
∆j
.
∆k
.
encrypts
.
encrypts
. .
∆i
.
∆j
.
∆k
.
encrypts, if i = k
.
encrypts, if j = k
.
Definition: monotone wire ordering
. . .
∆i
.
∆j
.
∆k
.
⇒ k > max{i, j}
. .
∆i
.
∆j
.
∆k
.
⇒ k ≥ max{i, j}
.
.
.
Results
. .
◮ Same assumption required for OT-extension [Ishai+03]
.
.
. .
i
XOR gates: k max i j
max i j
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
i
XOR gates: k max i j
max i j
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
∆1
.
◮ XOR gates: k ≥ max{i, j}
max i j
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
◮ XOR gates: k ≥ max{i, j} ◮ other gates: k > max{i, j}
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
∆3
.
◮ XOR gates: k ≥ max{i, j} ◮ other gates: k > max{i, j}
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
∆3
.
∆4
.
◮ XOR gates: k ≥ max{i, j} ◮ other gates: k > max{i, j}
.
.
. .
∆1
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
∆3
.
∆4
.
∆3
◮ XOR gates: k ≥ max{i, j} ◮ other gates: k > max{i, j}
.
.
. .
S
.
S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
. .
S
.
S
.
S
.
∆4
.
∆4
.
∆4
.
∆4
.
∆4
.
∆4
.
∆4
.
∆4
.
∆4 S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
. .
S
.
S
.
S
.
∆3
.
∆3
.
∆3
.
∆3
.
∆4
.
∆4
.
∆3
.
∆3
.
∆4
.
∆4
.
∆4
.
∆4
.
∆3
.
∆3
.
∆4
.
∆4
.
∆4 S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
. .
S
.
S
.
∆3
.
∆3
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆2
.
∆2
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆2
.
∆2
.
∆2
.
∆2
.
∆4
.
∆4
.
∆3
.
∆3
.
∆4
.
∆4
.
∆4 S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
. .
∆3
.
∆3
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
∆2
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆2
.
∆2
.
∆2
.
∆2
.
∆4
.
∆4
.
∆3
.
∆3
.
∆4
.
∆4
.
∆4 S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
. .
∆3
.
∆3
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆1
.
∆1
.
∆1
.
∆1
.
∆2
.
∆2
.
∆2
.
∆2
.
∆3
.
∆3
.
∆4
.
∆4
.
∆2
.
∆2
.
∆2
.
∆2
.
∆4
.
∆4
.
∆3
.
∆3
.
∆4
.
∆4
.
∆4 S := {output gate} i := depth repeat:
S via XOR paths
All XOR gates are free!
.
.
.
Observation
. . [offset given to wire w] + [# AND gates between w and output] = constant . . Smarter heuristic:
max of # AND gates in a path from w to output
i to w so that i
d w constant .
.
.
Observation
. . [offset given to wire w] + [# AND gates between w and output] = constant . . Smarter heuristic:
i to w so that i
d w constant .
.
.
Observation
. . [offset given to wire w] + [# AND gates between w and output] = constant . .
3
.
3
.
2
.
2
.
2
.
2
.
1
. . Smarter heuristic:
i to w so that i
d w constant .
.
.
Observation
. . [offset given to wire w] + [# AND gates between w and output] = constant . .
∆1
.
∆1
.
∆2
.
∆2
.
∆2
.
∆2
.
∆3
.
∆4
.
∆4
Smarter heuristic:
.
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 . 1.15
+19% +2% +11% +10% +34% +28%
. .
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 . 1.15
+19% +2% +11% +10% +34% +28%
. .
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 . 1.15
+19% +2% +11% +10% +34% +28%
. .
.
.
.
. .
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := DecA0,B0(0n)
.
C F A A B B
.
C F A A B B
.
EncA0,B0(C0) 0n EncA0,B1(C0) EncA1,B0(C0) EncA1,B1(C1)
.
Row reductions
. .
◮ 4 → 3 reduction
: C set implicitly reduction: both C C set implicitly no control over offset of output wire! .
.
. .
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := F(A0, A1, B0, B1)
.
C F A A B B
.
3κ bits
.
Row reductions
. .
◮ 4 → 3 reduction: C0 set implicitly
reduction: both C C set implicitly no control over offset of output wire! .
.
. .
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := F(A0, A1, B0, B1)
.
C1 := F′(A0, A1, B0, B1)
.
2κ bits
.
Row reductions
. .
◮ 4 → 3 reduction: C0 set implicitly ◮ 4 → 2 reduction: both C0, C1 set implicitly
no control over offset of output wire! .
.
. .
false: A0 true: A1
.
false: B0 true: B1
.
false: C0 true: C1
.
C0 := F(A0, A1, B0, B1)
.
C1 := F′(A0, A1, B0, B1)
.
2κ bits
.
Row reductions
. .
◮ 4 → 3 reduction: C0 set implicitly ◮ 4 → 2 reduction: both C0, C1 set implicitly
⇒ no control over offset of output wire!
.
.
.
Definition: safe wire ordering
. . .
∆i
& . .
∆j
⇒
i = j
... plus some fine print
.
Results
. .
row reduction, when offsets chosen via safe wire ordering
XOR gates cost 0, 1, or 2; other gates cost 2
Output wires of AND-gates get distinct offsets (in topological order) All other wires get offset
.
.
.
Definition: safe wire ordering
. . .
∆i
& . .
∆j
⇒
i = j
... plus some fine print
.
Results
. .
row reduction, when offsets chosen via safe wire ordering
XOR gates cost 0, 1, or 2; other gates cost 2
Output wires of AND-gates get distinct offsets (in topological order) All other wires get offset
.
.
.
Definition: safe wire ordering
. . .
∆i
& . .
∆j
⇒
i = j
... plus some fine print
.
Results
. .
chosen via safe wire ordering
◮ XOR gates cost 0, 1, or 2; other gates cost 2
Output wires of AND-gates get distinct offsets (in topological order) All other wires get offset
.
.
.
Definition: safe wire ordering
. . .
∆i
& . .
∆j
⇒
i = j
... plus some fine print
.
Results
. .
chosen via safe wire ordering
◮ XOR gates cost 0, 1, or 2; other gates cost 2
◮ Output wires of AND-gates get distinct offsets (in topological order) ◮ All other wires get offset ∆0
.
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 1.15 FleXOR circular 0.72 1.89 1.39 1.56 0.50 . 0.94
+12% -32% -24%
+0% +4%
. .
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 1.15 FleXOR circular 0.72 1.89 1.39 1.56 0.50 . 0.94
+12% -32% -24%
+0% +4%
. .
.
.
Garbled circuit size (ciphertexts per gate)
. . scheme assump AES DES SHA1 SHA2 HamDst IntMult classical OWF 2.00 2.00 2.00 2.00 2.00 2.00 Free XOR circular 0.64 2.79 1.82 2.05 0.50 . 0.90 FleXOR related-key 0.76 2.84 2.02 2.26 0.67 1.15 FleXOR circular 0.72 1.89 1.39 1.56 0.50 . 0.94
+12% -32% -24%
+0% +4%
. .
.
.
.
both!
compatibility with protocols that break “garbling scheme” abstraction boundary
.
.
compatibility with protocols that break “garbling scheme” abstraction boundary
.
.
that break “garbling scheme” abstraction boundary
.
.
that break “garbling scheme” abstraction boundary
.
.
.
.
.
FleXOR = Flexible XOR!
. .
◮ New way to garble XOR gates: costs 0, 1, or 2 ciphertexts per gate ◮ Get results competitive with Free-XOR, from weaker assumption ◮ Get results often better than Free-XOR, by leveraging 4 → 2
row-reduction .
.
◮ better wire-ordering heuristics? guaranteed approximation ratio? ◮ hardness of approximation? ◮ use ideas from approximations of “multi-cut” problem
instead of simply minimizing # of non-XOR gates
fastest garbling scheme (JustGarble) uses fixed-key AES: need to re-analyze FleXOR security wire orderings computed on the fly, or stored with circuit? revisit row reduction?
.
.
◮ better wire-ordering heuristics? guaranteed approximation ratio? ◮ hardness of approximation? ◮ use ideas from approximations of “multi-cut” problem
◮ instead of simply minimizing # of non-XOR gates
fastest garbling scheme (JustGarble) uses fixed-key AES: need to re-analyze FleXOR security wire orderings computed on the fly, or stored with circuit? revisit row reduction?
.
.
◮ better wire-ordering heuristics? guaranteed approximation ratio? ◮ hardness of approximation? ◮ use ideas from approximations of “multi-cut” problem
◮ instead of simply minimizing # of non-XOR gates
◮ fastest garbling scheme (JustGarble) uses fixed-key AES: need to
re-analyze FleXOR security
◮ wire orderings computed on the fly, or stored with circuit? ◮ revisit 4 → 2 row reduction?
.
.