FLARE is a next-generation post-quantum secure Private Set Intersection (PSI) system built using cutting-edge lattice-based cryptography. It enables two parties to securely identify common elements in their datasets without revealing any sensitive information, featuring comprehensive analytics and modular architecture.
- ποΈ Modular PSI Architecture: Separated client and server logic for better maintainability
- π Advanced Analytics Engine: Comprehensive noise analysis, performance profiling, and security assessment
- π§ Build Tag System: Production and analytics builds with different optimization levels
- π Real-time Performance Monitoring: Detailed timing, throughput, and quality metrics
- π‘οΈ Enhanced Security Assessment: Post-quantum security evaluation and recommendations
- π Multi-format Reporting: HTML dashboards, JSON statistics, and optimization reports
- Post-Quantum Security: Built on lattice-based cryptography, resistant to quantum computer attacks
- Laconic PSI Protocol: Efficient Private Set Intersection with sublinear communication complexity
- Homomorphic Operations: Perform computations on encrypted data using advanced polynomial arithmetic
- Configurable Security Levels: Support for ring dimensions 256, 512, 1024, and 2048 bits
- Comprehensive Noise Analysis: Real-time monitoring of cryptographic noise levels and distribution
- Performance Profiling: Detailed timing analysis, throughput measurement, and efficiency scoring
- Quality Metrics: Advanced correctness checking with match percentage analysis
- Memory Optimization: Efficient polynomial operations with NTT (Number Theoretic Transform)
- Clean Separation: Distinct client and server implementations in modular packages
- Flexible Storage: SQLite-based cryptographic accumulator storage with tree structures
- Parallel Processing: Optimized Go concurrency for enhanced performance
- Extensible Design: Easy to extend with new PSI variants and optimization techniques
FLARE/
βββ cmd/Flare/ # Application entry points
β βββ main.go # Production build (fast execution)
β βββ main_analytics.go # Analytics build (comprehensive reporting)
βββ internal/ # Internal packages
β βββ crypto/ # Cryptographic operations
β β βββ PSI/ # Modular PSI implementation
β β β βββ common.go # Shared utilities and types
β β β βββ client.go # Client-side PSI logic
β β β βββ server.go # Server-side PSI logic
β β βββ psi.go # Main PSI interface
β β βββ psi_analytics.go # Analytics-enabled PSI (build tag)
β β βββ helpers.go # Cryptographic utilities
β β βββ parameters.go # System parameter management
β βββ storage/ # Database operations
βββ pkg/ # Public packages
β βββ LE/ # Lattice Encryption core
β βββ matrix/ # Polynomial and matrix operations
βββ utils/ # Utility functions
β βββ report_generation.go # Advanced analytics reporting
βββ data/ # Data storage
βββ results/ # Generated reports and analytics
- Go: Version 1.24.1 or higher
- SQLite3: For cryptographic accumulator storage
- Git: For version control and dependency management
- Clone the repository:
git clone https://github.com/SanthoshCheemala/FLARE.git
cd FLARE- Install dependencies:
go mod tidy- Build the application:
Production Build (Optimized for Performance):
go build -o flare cmd/Flare/main.goAnalytics Build (Comprehensive Reporting):
go build -tags analytics -o flare-analytics cmd/Flare/main_analytics.go# Basic PSI with default parameters
./flare -columns="type,amount" -LIMIT=100
# Process specific columns
./flare -columns="user_id,timestamp,amount" -LIMIT=50# Full analytics with default settings
./flare-analytics -columns="type,amount" -LIMIT=50
# Advanced analytics with custom parameters
./flare-analytics \
-columns="type,amount" \
-columns-merge="user_id,timestamp" \
-LIMIT=100 \
-ring-dimension=512 \
-output-dir="analysis_results" \
-advanced-analytics=true \
-verbose=true
# Custom security analysis
./flare-analytics \
-columns="sensitive_data" \
-ring-dimension=1024 \
-report-format="both" \
-LIMIT=200-columns: Comma-separated list of columns to process (required)-LIMIT: Number of rows to process (default: production=2, analytics=50)
-columns-merge: Additional columns to merge for enhanced security-ring-dimension: Lattice ring dimension - 256, 512, 1024, 2048 (default: 256)-output-dir: Directory for generated reports (default: "data")-advanced-analytics: Enable comprehensive analytics (default: true)-report-format: Output format - "html", "json", or "both" (default: "html")-verbose: Enable detailed logging (default: false)
The system expects a SQLite database at data/transactions.db with financial transaction data:
CREATE TABLE finanical_transactions (
id INTEGER PRIMARY KEY,
type TEXT,
amount REAL,
user_id TEXT,
timestamp DATETIME,
category TEXT,
description TEXT
);Analytics mode generates comprehensive reports:
-
π Advanced HTML Dashboard (
flare_psi_advanced_report.html)- Real-time noise analysis with interactive charts
- Performance metrics and timing breakdowns
- Security assessment and recommendations
- Quality scoring and efficiency analysis
-
π JSON Statistics (
flare_psi_statistics.json)- Detailed numerical data for further analysis
- Noise distribution patterns
- Error analysis and timing metrics
- Cryptographic parameter effectiveness
-
β‘ Performance Profile (
performance_profile.json)- Operation timing distributions
- Throughput analysis and bottleneck identification
- Memory usage patterns
- Optimization recommendations
-
π‘οΈ Security Assessment (
security_assessment.json)- Post-quantum security evaluation
- Vulnerability risk analysis
- Parameter strength assessment
- Compliance scoring
-
π§ Optimization Report (
optimization_recommendations.json)- Performance improvement opportunities
- Parameter tuning suggestions
- ROI analysis for optimizations
- Implementation roadmap
- Noise Analysis: Maximum/average noise levels, distribution patterns
- Performance: Throughput, latency, efficiency scores
- Quality: Match percentages, correctness validation
- Security: Parameter strength, post-quantum readiness
- Stability: System reliability and error patterns
Lattice Encryption (LE) Parameters:
type LE struct {
Q uint64 // Modulus (180143985094819841)
D int // Ring dimension (256/512/1024/2048)
N int // Matrix dimension (4)
Layers int // Tree layers (auto-calculated)
Sigma float64 // Gaussian noise parameter
// ... additional cryptographic parameters
}PSI Architecture:
// Modular PSI package structure
package psi
// Ciphertext structure for secure communication
type Cxtx struct {
C0 []*matrix.Vector // First ciphertext component
C1 []*matrix.Vector // Second ciphertext component
C *matrix.Vector // Combined ciphertext
D *ring.Poly // Polynomial component
}
// Client-side PSI implementation
func Client(clientTx, serverTx []Transaction, treePath string) ([]Transaction, error)
// Server-side PSI implementation
func Server(pp *Vector, msg *Poly, serverTx []Transaction, le *LE) []Cxtx- π Parallel Cryptographic Operations: Concurrent key generation and encryption
- β‘ NTT Transformations: Efficient polynomial multiplication algorithms
- πΎ Optimized Memory Management: Smart allocation patterns for large datasets
- ποΈ Modular Architecture: Clean separation enabling independent optimization
- π Real-time Monitoring: Performance tracking with minimal overhead
- π‘οΈ Post-Quantum Resistance: Based on Learning With Errors (LWE) problem
- π Configurable Security Levels: Adjustable ring dimensions for different threat models
- π Noise Management: Advanced noise analysis and threshold monitoring
- π Correctness Validation: Probabilistic verification with configurable thresholds
- π Security Assessment: Automated evaluation of cryptographic strength
We welcome contributions! Please see our contribution guidelines:
- Fork the repository and create a feature branch
- Follow Go best practices and maintain code quality
- Add tests for new functionality
- Update documentation including this README
- Submit a pull request with clear description
This project is licensed under the MIT License - see the LICENSE file for details.
FLARE 2.0 implements state-of-the-art research in:
- Laconic Private Set Intersection: Efficient PSI with sublinear communication
- Lattice-based Cryptography: Post-quantum secure cryptographic primitives
- Homomorphic Encryption: Computation on encrypted data without decryption
- Cryptographic Accumulators: Efficient membership proofs using tree structures
- Performance Analytics: Real-time cryptographic system monitoring
This implementation builds upon research in:
- Lattice-based cryptography and the LWE problem
- Private Set Intersection protocols and optimizations
- Homomorphic encryption schemes and applications
- Post-quantum cryptographic security analysis
Important: This is a research implementation designed for educational and experimental purposes. While built on sound cryptographic principles:
- π Security Review Required: Thorough security audit recommended before production use
- π Parameter Validation: Default parameters optimized for demonstration, not production security
- π‘οΈ Threat Model: Designed for semi-honest adversaries in research contexts
- βοΈ Compliance: Users responsible for regulatory compliance in their jurisdiction
- π Issues: Report bugs via GitHub Issues
- π‘ Feature Requests: Suggest improvements via GitHub Discussions
- π Documentation: Additional docs in
/docdirectory - π¬ Research: Contact maintainers for academic collaboration
β‘ FLARE 2.0 - Advancing the frontiers of post-quantum Private Set Intersection
Built with β€οΈ for the cryptographic research community