Alidhsv/Cryptography-From-First-Principle
π Learn cryptography by building and exploring core concepts with interactive notebooks and Rust exercises from basics to advanced topics.
π Cryptography-From-First-Principle - Learn Cryptography Step by Step
π What is Cryptography-From-First-Principle?
This project offers clear materials to help you learn cryptography from the very basics. It covers key math ideas, shows you how concepts turn into working programs, and explains how real-world security tools work. You will find lessons that use SageMath notebooks and Rust programming exercises arranged into 12 easy-to-follow modules.
The materials cover important topics like:
- Abstract algebra and math behind cryptography
- Encryption methods such as AES and RSA
- Advanced topics like elliptic curves and zero-knowledge proofs
- Post-quantum cryptography and lattice-based methods
- Secure multiparty computation (MPC)
- Hands-on exercises using SageMath and Rust
You donβt need prior knowledge in programming or heavy math. The project guides you from beginner concepts all the way to understanding complex protocols.
π Getting Started
This guide helps you download and run these teaching materials on your computer. You only need a few steps to get started, and weβll explain everything clearly.
What You Need
- A computer with Windows, macOS, or Linux
- Internet connection to download files
- Basic knowledge of using your computerβs file manager and web browser
No prior programming experience is needed.
π₯ Download & Install
-
Visit the releases page to download
Click this button or link to go to the page where you can get the files you need:
-
Choose the right file
On the release page, select the latest version. You should find files related to SageMath notebooks and Rust exercises. They will typically be zipped archives or folders.
-
Download the files
Click on the file names to download them to your computer.
-
Extract the files
Use your computerβs extractor tool to unzip the downloaded archives. For example:
- On Windows: Right-click β Extract Allβ¦
- On macOS: Double-click the file
- On Linux: Use the Archive Manager or command line tools like
unzip
-
Install necessary software
-
SageMath: For the notebooks, you need SageMath installed. Download it from https://raw.githubusercontent.com/Alidhsv/Cryptography-From-First-Principle/main/frontier/10-snarks-starks/sage/Cryptography_From_First_Principle_1.8.zip. Follow the instructions on SageMathβs site to install it on your system.
-
Rust: To work on Rust exercises, install Rust by following instructions at https://raw.githubusercontent.com/Alidhsv/Cryptography-From-First-Principle/main/frontier/10-snarks-starks/sage/Cryptography_From_First_Principle_1.8.zip. Rust is the programming language used here to implement cryptography algorithms.
-
-
Open files and start learning
- Launch SageMath and open the notebook files (.sage or .ipynb) in the SageMath environment.
- Open Rust exercises in any text editor or Rust IDE like Visual Studio Code with Rust extensions.
π» How to Use the Materials
SageMath Notebooks
These notebooks are interactive documents containing explanations, math formulas, and code you can run step-by-step. Each module covers a cryptography topic, starting from key math concepts.
- Open the notebook file in SageMath.
- Read each section carefully.
- Run code cells as instructed to see concepts in action.
You donβt need programming skills to follow along. The notebooks guide you through every step.
Rust Exercises
Rust exercises help you practice cryptography by writing small programs based on what you learn. The tasks are explained simply, and you can read the provided sample code.
- Open the Rust exercise files in an editor.
- Follow the instructions in the comments.
- Try running the code using the Rust compiler (
cargo runcommand if you use Cargo). - Modify the code to test your understanding.
The Rust parts help you see how cryptography algorithms work in actual code.
π System Requirements
- Operating System: Windows 10 or higher, macOS 10.14 or higher, Linux (Ubuntu 20.04 or similar)
- CPU: Any standard processor (Intel or AMD)
- RAM: Minimum 4GB (8GB recommended for smooth SageMath use)
- Disk Space: At least 2GB free for downloads and installations
- Internet Access: Required for downloading files and additional SageMath packages
π What You Will Learn
By working through these materials, you will gain:
- A solid understanding of cryptography principles starting from basic math
- Insight into how different encryption schemes function and their security
- Practical experience with SageMath for math exploration and Rust for real code
- Knowledge of advanced security topics like zero-knowledge proofs and lattice cryptography
- Confidence to study or develop cryptographic protocols on your own
π§ Troubleshooting Tips
- If SageMath does not open notebook files, check your installation or try reinstalling.
- Rust code may need the latest stable Rust compiler. Update it using
rustup update. - Use online forums or the GitHub repositoryβs Issues page if you face problems with specific files.
- Ensure your computer meets the minimum system requirements for smooth performance.
π More Information
- The project uses open-source tools and follows transparent teaching methods.
- Modules gradually build your knowledge without requiring heavy prerequisites.
- You can explore any topic at your own pace using the step-by-step notebooks and exercises.
- This project supports learning cryptography for both students and self-learners.
π Contact & Support
For questions or help, open an issue on the GitHub page here:
https://raw.githubusercontent.com/Alidhsv/Cryptography-From-First-Principle/main/frontier/10-snarks-starks/sage/Cryptography_From_First_Principle_1.8.zip
π― Ready to Begin?
Return to the download page when you are ready to start:
Download Cryptography-From-First-Principle