implementing-zero-knowledge-proof-for-authentication
Implements the Schnorr identification protocol and a simplified Zero-Knowledge Password Proof (ZKPP) over the discrete logarithm problem, letting a prover authenticate by demonstrating knowledge of a secret without ever revealing it to the server. Use when designing or building password-less or password-secret-free authentication, or when a server must verify a user's credential without learning or storing the underlying secret.
Works with
--- name: implementing-zero-knowledge-proof-for-authentication description: Implements the Schnorr identification protocol and a simplified Zero-Knowledge Password Proof (ZKPP) over the discrete logarithm problem, letting a prover authenticate by demonstrating knowledge of a secret without ever revealing it to the server. Use when designing or building password-less or password-secret-free authentication, or when a server must verify a user's credential without learning or storing the underlying secret. license: Apache-2.0 --- # Implementing Zero-Knowledge Proof for Authentication ## Overview Zero-Knowledge Proofs (ZKPs) allow a prover to demonstrate knowledge of a secret (such as a password or private key) without revealing the secret itself. This skill implements the Schnorr identification protocol and a simplified ZKPP (Zero-Knowledge Password Proof) using the discrete logarithm problem, enabling authentication where the server never learns the user's password. ## When to Use - When deploying or configuring implementing zero knowledge proof for authentication capabilities in your environment - When establishing security controls aligned to compliance requirements - When building or improving security architecture for this domain - When conducting security assessments that require this implementation ## Prerequisites - Familiarity with cryptography concepts and tools - Access to a test or lab environment for safe execution - Python 3.8+ with required dependencies installed - Appropriate authorization for any testing activities ## Objectives - Implement Schnorr's identification protocol for ZKP authentication - Build a non-interactive ZKP using Fiat-Shamir heuristic - Implement zero-knowledge password proof (ZKPP) - Demonstrate completeness, soundness, and zero-knowledge properties - Compare ZKP authentication with traditional password verification ## Key Concepts ### ZKP Properties | Property | Description | |----------|------------| | Completeness | Honest prover always convinces honest verifier | | Soundness | Dishonest prover cannot convince verifier (except negligible probability) | | Zero-Knowledge | Verifier learns nothing beyond the statement's truth | ### Schnorr Protocol 1. **Setup**: Public generator g, prime p, q (order of g) 2. **Registration**: Prover computes y = g^x mod p (public key from secret x) 3. **Commitment**: Prover sends t = g^r mod p (random r) 4. **Challenge**: Verifier sends random c 5. **Response**: Prover sends s = r + c*x mod q 6. **Verify**: Check g^s == t * y^c mod p ## Security Considerations - Use cryptographically secure random number generators - Challenge must be unpredictable (from verifier's perspective) - For non-interactive proofs, use Fiat-Shamir with collision-resistant hash - ZKP alone does not provide forward secrecy; combine with TLS ## Validation Criteria - [ ] Honest prover always verifies successfully (completeness) - [ ] Random response without secret does not verify (soundness) - [ ] Server never receives the secret value - [ ] Non-interactive proof is verifiable offline - [ ] Multiple authentications produce different transcripts - [ ] Protocol resists replay attacks
More Security skills
entra-app-registration
microsoft/azure-skills
Guides Microsoft Entra ID app registration, OAuth 2.0 authentication, and MSAL integration. USE FOR: create app registration, register Azure AD app, configure OAuth, set up authentication, add API permissions, generate service principal, MSAL example, console app auth, Entra ID setup, Azure AD authentication. DO NOT USE FOR: Key Vault secrets (use azure-keyvault-expiration-audit), general Azure resource security guidance.
azure-messaging
microsoft/azure-skills
Troubleshoot and resolve issues with Azure Messaging SDKs for Event Hubs and Service Bus. Covers connection failures, authentication errors, message processing issues, and SDK configuration problems. WHEN: event hub SDK error, service bus SDK issue, messaging connection failure, AMQP error, event processor host issue, message lock lost, message lock expired, lock renewal, lock renewal batch, send timeout, receiver disconnected, SDK troubleshooting, azure messaging SDK, event hub consumer, service bus queue issue, topic subscription error, enable logging event hub, service bus logging, eventhub python, servicebus java, eventhub javascript, servicebus dotnet, event hub checkpoint, event hub not receiving messages, service bus dead letter, batch processing lock, session lock expired, idle timeout, connection inactive, link detach, slow reconnect, session error, duplicate events, offset reset, receive batch.
azure-compliance
microsoft/azure-skills
Run Azure compliance and security audits with azqr plus Key Vault expiration checks. Covers best-practice assessment, resource review, policy/compliance validation, and security posture checks. WHEN: compliance scan, security audit, BEFORE running azqr (compliance cli tool), Azure best practices, Key Vault expiration check, expired certificates, expiring secrets, orphaned resources, compliance assessment.

