UNPKG

privacy-utils-secure-agg

Version:

Secure aggregation protocols for privacy-preserving multi-party computation

89 lines (63 loc) 2.65 kB
# Privacy Utils Secure Aggregation Secure aggregation protocols for privacy-preserving multi-party computation and federated learning. ## Features - **Secure Multi-Party Computation**: Privacy-preserving collaborative computation - **Federated Learning**: Distributed model training without data sharing - **Homomorphic Encryption**: Encrypted data processing - **Secret Sharing**: Distributed secret reconstruction - **Masking Techniques**: Differential privacy with secure aggregation - **WebSocket Communication**: Real-time secure aggregation protocols - **Threshold Cryptography**: Distributed key generation and signing ## Installation ```bash npm install privacy-utils-secure-agg ``` ## Usage ```typescript import { SecureAggregator, SecretSharer, MaskingEngine, WebSocketAggregator } from 'privacy-utils-secure-agg'; // Create secure aggregator const aggregator = new SecureAggregator({ minParticipants: 3, maxParticipants: 10, privacyBudget: { epsilon: 1.0, delta: 1e-5 } }); // Add participant data aggregator.addParticipant('user1', [1, 2, 3, 4, 5]); aggregator.addParticipant('user2', [2, 3, 4, 5, 6]); aggregator.addParticipant('user3', [3, 4, 5, 6, 7]); // Perform secure aggregation const result = await aggregator.aggregate(); // Secret sharing const sharer = new SecretSharer({ threshold: 3, totalShares: 5 }); const shares = sharer.shareSecret('sensitive-data'); // Reconstruct secret (needs threshold number of shares) const reconstructed = sharer.reconstructSecret(shares.slice(0, 3)); // WebSocket-based aggregation const wsAggregator = new WebSocketAggregator({ port: 8080, participants: ['ws://node1:8080', 'ws://node2:8080', 'ws://node3:8080'] }); wsAggregator.start(); ``` ## API Reference For complete API documentation, see the TypeScript definitions or visit the [main repository](https://github.com/sicmundu/privacy-utils). ## Architecture The package provides both client and server components: - **Client**: Participates in secure aggregation protocols - **Server**: Coordinates the aggregation process - **Network Layer**: WebSocket-based communication - **Crypto Layer**: Homomorphic encryption and secret sharing ## Security Model - **End-to-End Encryption**: All communications are encrypted - **Zero-Knowledge Proofs**: Verify computations without revealing data - **Differential Privacy**: Add noise to protect individual contributions - **Threshold Security**: No single party can reconstruct sensitive data ## License MIT ## Contributing Contributions are welcome! Please see the [main repository](https://github.com/sicmundu/privacy-utils) for contribution guidelines.