Initial commit - 611 cybersecurity skills across all subdomains

This commit is contained in:
mukul975
2026-02-25 10:47:44 +01:00
commit 22a7ab1462
1765 changed files with 280648 additions and 0 deletions
@@ -0,0 +1,29 @@
# Standards and References - Zero-Knowledge Proof for Authentication
## Academic References
### Schnorr Identification Protocol
- **Paper**: "Efficient Signature Generation by Smart Cards" (Claus-Peter Schnorr, 1989)
- **Standard**: ISO/IEC 9798-5 (Entity authentication using zero-knowledge techniques)
### Fiat-Shamir Heuristic
- **Paper**: "How To Prove Yourself" (Fiat, Shamir, 1986)
- **Description**: Converts interactive ZKP to non-interactive using hash function
### RFC 8235 - Schnorr Non-Interactive Zero-Knowledge Proof
- **URL**: https://www.rfc-editor.org/rfc/rfc8235
- **Description**: Standardized Schnorr NIZKP
### RFC 5054 - SRP (Secure Remote Password)
- **URL**: https://www.rfc-editor.org/rfc/rfc5054
- **Description**: Zero-knowledge password authentication protocol
## Python Libraries
### py-ecc
- **URL**: https://github.com/ethereum/py_ecc
- **Description**: Elliptic curve operations for ZKPs
### cryptography
- **URL**: https://cryptography.io/
- **Description**: Hash functions, modular arithmetic support
@@ -0,0 +1,46 @@
# Workflows - Zero-Knowledge Proof for Authentication
## Workflow 1: Schnorr Interactive ZKP
```
Prover (knows secret x) Verifier (knows y = g^x mod p)
| |
|-- Commitment: t = g^r mod p -------->|
| |
|<-- Challenge: c (random) ------------|
| |
|-- Response: s = (r + c*x) mod q ---->|
| |
| [Verify: g^s == t * y^c mod p]
| [Accept or Reject]
```
## Workflow 2: Non-Interactive ZKP (Fiat-Shamir)
```
Prover:
1. Choose random r
2. Compute t = g^r mod p
3. Compute c = H(g || y || t) (Fiat-Shamir)
4. Compute s = (r + c*x) mod q
5. Send proof (t, s) to verifier
Verifier:
1. Compute c = H(g || y || t)
2. Check g^s == t * y^c mod p
```
## Workflow 3: Registration and Authentication
```
[Registration]:
User --> [Choose password/secret x]
--> [Compute y = g^x mod p]
--> [Send y to server]
Server --> [Store y (public key only)]
[Authentication]:
User <--> Server: [Run Schnorr protocol]
Server: [Verifies proof without learning x]
Server: [Grants session token on success]
```