mirror of
https://github.com/mukul975/Anthropic-Cybersecurity-Skills.git
synced 2026-06-15 07:24:56 +03:00
Initial commit - 611 cybersecurity skills across all subdomains
This commit is contained in:
@@ -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]
|
||||
```
|
||||
Reference in New Issue
Block a user