Skip to content

Commit a643043

Browse files
authored
init
1 parent f6af378 commit a643043

File tree

1 file changed

+52
-22
lines changed

1 file changed

+52
-22
lines changed

README.md

Lines changed: 52 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -17,77 +17,107 @@
1717
</div>
1818
<br />
1919

20-
21-
2220
# Table of Contents
2321
- [Credits](#credits)
2422
- [Purpose](#purpose)
2523
- [How it Works](#how-it-works)
2624
- [API](#api)
2725
- [Example Usage](#example-usage)
28-
26+
<br>
2927

3028
# Credits
31-
This repository hosts a refined implementation of **Schnorr's protocol**, innovatively incorporating a state seed for enhanced security measures. While the underlying proofs may appear intricate, I aim to elucidate their functionality to the best of my ability. However, for a deeper understanding, I encourage referencing the seminal research papers underpinning this implementation, as they offer comprehensive insights.
3229

33-
For further exploration:
30+
This repository hosts a refined implementation of [**Schnorr's protocol**](https://en.wikipedia.org/wiki/Schnorr_signature) , innovatively incorporating a state seed for enhanced security measures. While the underlying proofs may appear intricate, I aim to elucidate their functionality to the best of my ability. However, for a deeper understanding, I encourage referencing the seminal research papers underpinning this implementation, as they offer comprehensive insights.
31+
32+
---
33+
34+
![Detailed Schematic Overview of Schnorr's Protocol (Example)](assets/Schnorr's%20Protocol.png)
35+
<br>
36+
<br>
37+
38+
**For further exploration:**
39+
40+
[**Elliptic Curve Based "Zero-Knowledge" Proofs and Their Applicability on Resource Constrained Devices by Ioannis Chatzigiannakis, Apostolos Pyrgelis, Paul G. Spirakis, and Yannis C. Stamatiou**](https://arxiv.org/pdf/1107.1626.pdf)
3441

35-
[Elliptic Curve Based "Zero-Knowledge" Proofs and Their Applicability on Resource Constrained Devices by Ioannis Chatzigiannakis, Apostolos Pyrgelis, Paul G. Spirakis, and Yannis C. Stamatiou](https://arxiv.org/pdf/1107.1626.pdf)
42+
---
43+
44+
![Detailed Schematic Overview of Elliptic Curves (Example)](assets/Elliptic%20Curve.png)
45+
<br>
3646

3747
Additionally, this repository delves into the concepts of **"Zero-Knowledge" Proofs (ZKPs)** and **Hash-based Message Authentication Codes (HMACs)**. **ZKPs** are cryptographic protocols that allow one party **(the prover)** to prove to another party **(the verifier)** that a given statement is true, without revealing any additional information beyond the validity of the statement itself. This property is particularly valuable for preserving privacy while establishing trust.
48+
<br>
3849

3950
On the other hand, **HMACs** are a type of cryptographic hash function used for message authentication. They involve a cryptographic hash function **(such as SHA-256)** and a secret cryptographic key. **HMACs** provide a way to verify both the data integrity and the authenticity of a message, ensuring that it has not been altered or tampered with during transmission and that it indeed originates from the purported sender.
40-
51+
<br>
52+
<br>
4153

4254
# Purpose
43-
In today's rapidly evolving IT and application development landscape, **"Zero-Knowledge" Proofs (ZKPs)** emerge as a pivotal paradigm for authentication security. Their capacity to affirm the validity of a claim—such as proving possession of a secret password—without revealing any sensitive information about the claim itself, such as passwords or hashes, revolutionizes the assurance of secure AAA operations (authentication, authorization, and accounting).
55+
56+
In today's rapidly evolving IT and application development landscape, **"Zero-Knowledge" Proofs (ZKPs)** emerge as a pivotal paradigm for authentication security. Their capacity to affirm the validity of a claim, such as proving possession of a secret password — without revealing any sensitive information about the claim itself, such as passwords or hashes, revolutionizes the assurance of secure AAA operations (authentication, authorization, and accounting).
57+
58+
---
59+
60+
![The Purpose of our Repositories and The Overall Technology](assets/Purpose-1.png)
61+
<br>
4462

4563
**zk-Call & Labs** represents an implementation of a [**Non-Interactive "Zero-Knowledge" Proof**](https://en.wikipedia.org/wiki/Non-interactive_zero-knowledge_proof) **(NIZKP)** protocol tailored specifically for validating text-based secrets. This framework proves invaluable for safeguarding passwords and other authentication mechanisms, ensuring robust security measures without compromising privacy. Additionally, the integration of **HMAC (Hash-Based Message Authentication Code)** further fortifies the authentication process, enhancing data integrity and thwarting potential security breaches.
64+
<br>
65+
<br>
4666

4767
# How It Works
4868

49-
**The authentication protocol employed in this system operates based on two fundamental concepts:**
69+
The authentication protocol employed in this system operates based on two fundamental concepts:
5070
**"Zero-Knowledge" Proofs (ZKPs)** and **Hash-Based Message Authentication Code (HMAC)**. Let's delve into each of these components and understand how they synergize to ensure secure authentication in messaging applications.
5171
<br>
5272

53-
"Zero-Knowledge" Proofs (ZKPs):
73+
"Zero-Knowledge" Proofs (ZKPs)
74+
---
75+
76+
77+
#### **"Zero-Knowledge" Proofs (ZKPs):**
78+
**ZKPs** form the bedrock of privacy-preserving authentication mechanisms. These proofs allow one party **(the prover)** to demonstrate the validity of a claim to another party **(the verifier)** without revealing any additional information beyond the claim's validity. In essence, **ZKPs** enable authentication without the need for the prover to disclose sensitive data, such as passwords or cryptographic keys.
79+
5480
---
5581

5682
![Detailed Schematic Overview of "Zero-Knowledge" Technology (1)](assets/ZKP-HMAC-1.png)
5783
![Detailed Schematic Overview of "Zero-Knowledge" Technology (2)](assets/ZKP-HMAC-2.png)
5884
![Detailed Schematic Overview of "Zero-Knowledge" Technology (3)](assets/ZKP-HMAC-3.png)
5985
![Detailed Schematic Overview of "Zero-Knowledge" Technology (4)](assets/ZKP-HMAC-4.png)
86+
<br>
6087

61-
---
62-
63-
**"Zero-Knowledge" Proofs (ZKPs)** form the bedrock of privacy-preserving authentication mechanisms. These proofs allow one party **(the prover)** to demonstrate the validity of a claim to another party **(the verifier)** without revealing any additional information beyond the claim's validity. In essence, **ZKPs** enable authentication without the need for the prover to disclose sensitive data, such as passwords or cryptographic keys.
6488

65-
**Application in Authentication:**
89+
#### **Application in Authentication:**
6690
In the context of messaging applications, **ZKPs** play a pivotal role in verifying a user's identity without the need to transmit explicit credentials over the network. Instead, users can generate cryptographic proofs attesting to their identity or possession of certain credentials without exposing those credentials themselves. This ensures that sensitive information remains confidential during the authentication process, bolstering security and privacy.
91+
<br>
92+
<br>
6793

94+
95+
Hash-Based Message Authentication Code (HMAC)
6896
---
6997

98+
#### **Hash-Based Message Authentication Code (HMAC):**
99+
**HMAC** provides a robust mechanism for verifying the integrity and authenticity of messages exchanged between parties. It involves the use of a cryptographic hash function in conjunction with a secret key to generate a unique code **(the HMAC)** for each message. This code serves as a digital signature, allowing the recipient to verify that the message has not been tampered with or altered during transmission.
70100

71-
Hash-Based Message Authentication Code (HMAC):
72101
---
73102

74103
![Detailed Schematic Overview of HMAC Encryption](assets/HMAC.png)
75104

76-
---
77-
78-
**Hash-Based Message Authentication Code (HMAC):**
79-
**HMAC** provides a robust mechanism for verifying the integrity and authenticity of messages exchanged between parties. It involves the use of a cryptographic hash function in conjunction with a secret key to generate a unique code **(the HMAC)** for each message. This code serves as a digital signature, allowing the recipient to verify that the message has not been tampered with or altered during transmission.
80105

81-
**Application in Authentication:**
106+
#### **Application in Authentication:**
82107
In messaging applications, **HMAC** can be employed to authenticate message senders and ensure the integrity of communication channels. By appending an **HMAC** to each message using a shared secret key, both the sender and recipient can validate the message's authenticity upon receipt. Any unauthorized modifications to the message would result in a mismatch between the **computed HMAC** and the **received HMAC**, thereby alerting the recipient to potential tampering.
108+
<br>
109+
<br>
83110

111+
Synergistic Operation:
84112
---
85-
86-
**Synergistic Operation:**
87113
When combined, **"Zero-Knowledge" Proofs** and **HMAC** create a formidable framework for secure authentication in messaging applications. **ZKPs** facilitate identity verification without divulging sensitive information, while **HMAC** ensures the integrity and authenticity of messages exchanged between parties. Together, these mechanisms uphold the confidentiality, integrity, and authenticity of communication channels, safeguarding users' privacy and security in the digital realm.
88114

89115
---
90116

117+
![The Advantages of Synergy between "Zero-Knowledge" Proof and HMAC](assets/Synergistic%20Operation.png)
118+
<br>
119+
<br>
120+
91121
# API
92122

93123
The **`"Zero-Knowledge"`** Python API is meant to be simple and intuitive:<br>

0 commit comments

Comments
 (0)