Skip to content

Commit

Permalink
added masking with zero sharing
Browse files Browse the repository at this point in the history
  • Loading branch information
rdragos committed Oct 17, 2024
1 parent c77b20f commit 4a98d90
Show file tree
Hide file tree
Showing 3 changed files with 12 additions and 7 deletions.
2 changes: 1 addition & 1 deletion iris-mpc-cpu/benches/hnsw.rs
Original file line number Diff line number Diff line change
Expand Up @@ -127,7 +127,7 @@ fn bench_gr_primitives(c: &mut Criterion) {
let ds_and_ts = gr_replicated_pairwise_distance(&mut player_session, &pairs)
.await
.unwrap();
let ds_and_ts = gr_to_rep3(&player_session, ds_and_ts).await.unwrap();
let ds_and_ts = gr_to_rep3(&mut player_session, ds_and_ts).await.unwrap();
ng_cross_compare(
&mut player_session,
ds_and_ts[0].clone(),
Expand Down
2 changes: 1 addition & 1 deletion iris-mpc-cpu/src/hawkers/galois_store.rs
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,7 @@ impl VectorStore for LocalNetAby3NgStoreProtocol {
let ds_and_ts = gr_replicated_pairwise_distance(&mut player_session, &pairs)
.await
.unwrap();
let ds_and_ts = gr_to_rep3(&player_session, ds_and_ts).await.unwrap();
let ds_and_ts = gr_to_rep3(&mut player_session, ds_and_ts).await.unwrap();
ng_cross_compare(
&mut player_session,
ds_and_ts[0].clone(),
Expand Down
15 changes: 10 additions & 5 deletions iris-mpc-cpu/src/next_gen_protocol/ng_worker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -345,19 +345,24 @@ pub async fn ng_replicated_is_match(
Ok(opened.convert())
}

/// Converts additive sharing (from trick_dot output) to a replicated sharing by
/// masking it with a zero sharing
pub async fn gr_to_rep3(
session: &Session,
session: &mut Session,
items: Vec<RingElement<u16>>,
) -> eyre::Result<Vec<Share<u16>>> {
let network = session.network().clone();
let sid = session.session_id();
let next_party = session.next_identity()?;

let masked_items: Vec<_> = items
.iter()
.map(|x| session.prf_as_mut().gen_zero_share() + x)
.collect();
// sending to the next party
let shares_a = items.clone();
network
.send(
NetworkValue::VecRing16(items).to_network(),
NetworkValue::VecRing16(masked_items.clone()).to_network(),
&next_party,
&sid,
)
Expand All @@ -374,7 +379,7 @@ pub async fn gr_to_rep3(
_ => Err(eyre!("Error in receiving in gr_to_rep3 operation")),
}
}?;
let res: Vec<Share<u16>> = shares_a
let res: Vec<Share<u16>> = masked_items
.into_iter()
.zip(shares_b)
.map(|(a, b)| Share::new(a, b))
Expand Down Expand Up @@ -699,7 +704,7 @@ mod tests {
.await
.unwrap();
let opened_x = open_additive(&player_session, x.clone()).await.unwrap();
let x_rep = gr_to_rep3(&player_session, x).await.unwrap();
let x_rep = gr_to_rep3(&mut player_session, x).await.unwrap();
let opened_x_rep = open_t_many_16(&player_session, x_rep).await.unwrap();
(opened_x, opened_x_rep)
});
Expand Down

0 comments on commit 4a98d90

Please sign in to comment.