Cicada-mpc

Latest version: v2.0.0

Safety actively analyzes 715032 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.7.0

* Added ActiveProtocol, our first protocol with a security model against active adversaries.
* Added private summation and private dot product operations to all protocol objects.
* Added TLS support to SocketCommunicator.split() and SocketCommunicator.shrink().
* Added SocketCommunicator.run_forever() for starting MPC services.
* Created cicada.communicator as an example of MPC-as-a-service.
* Regression tests use the calculator service, eliminating lots of repetitive test code.
* Rename Tags -> Tag for consistency, clarity.
* Rename all_gather() -> allgather() for consistency, clarity.
* Raise a better error if a send operation would block.
* NetstringSocket didn't handle sending large messages correctly.

0.6.0

* SocketCommunicator.run() would sometimes hang returning results from large numbers of players.
* Sped-up regression tests significantly by removing unnecessary redundancy.
* Began formally testing Cicada with Python 3.8 and 3.10.
* Added user guide sections on Shamir sharing and fault recovery.
* Reorganized SocketCommunicator statistics, and added statistics organized by message type.
* Added the cicada-perf command for benchmarking communications.
* Added `indices` and `threshold` properties to ShamirBasicProtocol and ShamirProtocol.
* SocketCommunicator setup didn't always use the correct rank and name in log output.
* Fixed a problem with the way thresholds are constrained in ShamirProtocol.
* Explicitly specify process names for debugging with SocketCommunicator.run().
* Removed obsolete code.

0.5.1

* A botched merge left some changes out of the 0.5.0 release.

0.5.0

* ShamirProtocol provides the same operations as AdditiveProtocol.
* New ShamirBasicProtocol provides a subset of operations, but with relaxed constraints on share degree.
* Reduced per-message SocketCommunicator overhead.
* SocketCommunicator.run, SocketCommunicator.shrink, and SocketCommunicator.split support Unix domain sockets.
* Rewrite the SocketCommunicator.shrink implementation for simplicity.
* SocketCommunicator can raise exceptions while sending.
* Rewrote the SocketCommunicator message queue for reduced resource consumption and greater flexibility.
* Point-to-point SocketCommunicator operations support user-defined message tags.
* Reduced the number of coordinating messages during logging.
* Many improvements in library logging output.
* Added a user guide article on logging.

0.4.0

* SocketCommunicator supports TLS encryption.
* SocketCommunicator supports Unix domain sockets.
* Moved SocketCommuniator initialization into a separate module.
* Fixed problems with AdditiveProtocol.private_public_power.
* Reduced default log output, and made log output more consistent.
* Raise an exception trying to use a communicator that's been freed.
* Removed the cicada.bind module.

0.3.0

* Improved code coverage from 80% to 95%.
* Greatly improved SocketCommunicator startup behavior.
* SocketCommunicator can choose random ports for players other than root.
* Made SocketCommunicator.override() more flexible.
* Fixed a bug in AdditiveProtocol.zigmoid().
* Eliminated warnings waiting for interactive user input.
* cicada.interactive.secret_input() just prompts for input.
* Created new `cicada` command to replace `cicada-exec`, which is deprecated.

Page 2 of 3

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.