privacy-utils-secure-agg
Version:
Secure aggregation protocols for privacy-preserving multi-party computation
89 lines (63 loc) • 2.65 kB
Markdown
# 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.