secretflow / yacl

YACL (Yet Another Common crypto library) is a C++ library that contains cryptography, network and io modules which other SecretFlow code depends on.
Apache License 2.0
73 stars 61 forks source link

在YACL上支持恶意Beaver三元组和shuffle算法 #160

Open JosefinaYang opened 10 months ago

JosefinaYang commented 10 months ago

In YACL, all existing algorithms are under the semi-honest model.

My question is: is it possible to implement a Beaver Triple and shuffling protocols in the malicious setting? We need those protocols as primitives to design a new protocol and use secretflow to test our protocol for benchmarking to publish academic papers.

The necessary knowledge that might be used in this issue includes cryptography, oblivious transfer, and secret shared shuffle.
And let's consider the computational security parameter is $\kappa=128$.

Some related works are provided as follows. Ferret: Fast extension for correlated OT with small communication. In Proceedings of the 2020 ACM SIGSAC Conference on Computer and Communications Security. Secret-shared shuffle. ASIACRYPT 2020

Jamie-Cui commented 10 months ago

implement ... Beaver Triple ... ?

Yes, the short answer is: it is possible to implement beaver's triple with Yacl's OT protocols in the malicious setting. We provide a malicious OTe (KOS with security fix), but i'm not currently having in mind the "paper" to actually implement triple with a malicious OT (you need some kind of consistency check).

implement ... Secret-Shared Shuffle?

Yes, it only uses OT, prg and RO.

BTW, are you trying to implement your research work? We may provide additional help if you like.

Jamie-Cui commented 10 months ago

FYI, for security parameter, we are currently in the process of supporting explicit declaration of $\kappa$ for different Yacl modules. And for your task, we can configure the low-level crypto to support at least 128-bit security.