Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/nickory/cipher

Six cryptography experiments for the Application Cryptography course at NUIST(南京信息工程大学应用密码学), featuring GUIs for intuitive learning. Includes RSA, AES, Feistel networks and more
https://github.com/nickory/cipher

cipher nuist

Last synced: about 1 month ago
JSON representation

Six cryptography experiments for the Application Cryptography course at NUIST(南京信息工程大学应用密码学), featuring GUIs for intuitive learning. Includes RSA, AES, Feistel networks and more

Awesome Lists containing this project

README

        

# Cipher - Application Cryptography Experiments
# 密码实验 - 应用密码学课程实验

This repository contains a collection of six experiments required for the Application Cryptography course at Nanjing University of Information Science & Technology (NUIST). Each experiment is organized with a Graphical User Interface (GUI) to make the understanding and usage more intuitive. The experiments cover fundamental cryptographic concepts, and this project serves as a convenient tool for learning and improving cryptographic techniques.

本项目包含南京信息工程大学应用密码学课程所需的六个实验。每个实验都配备了图形用户界面 (GUI),以使其理解和使用更加直观。这些实验涵盖了密码学的基本概念,是学习和改进密码学技术的便捷工具。

## Features
- **GUI for each experiment**: Each cryptography experiment has been designed with a user-friendly interface, allowing for a more hands-on and visual experience.
- **Comprehensive collection**: The repository includes all six experiments from the course, providing a complete set of tools for learning application cryptography.

## Experiments

### Experiment 1: Extended Euclidean Algorithm / 扩展欧几里得算法
- **Description**: Implement and verify the extended Euclidean algorithm. This experiment computes the greatest common divisor (GCD) of two integers and determines coefficients that satisfy Bézout's identity.
- **GUI Preview**:
![Experiment 1 GUI](images/experiment1-gui.png)

### Experiment 2: Substitution Cipher / 单表密码
- **Description**: Implement substitution cipher encryption and decryption. Analyze the frequency of letters in ciphertext to explore its vulnerability to attacks.
- **GUI Preview**:
![Experiment 2 GUI](images/experiment2-gui.png)

### Experiment 3: Playfair Cipher / Playfair密码
- **Description**: Implement and analyze the Playfair cipher, including its performance and avalanche effect.
- **GUI Preview**:
![Experiment 3 GUI](images/experiment3-gui.png)

### Experiment 4: Feistel Algorithm / Feistel算法
- **Description**: Implement the Feistel encryption algorithm, test its security properties, and evaluate its avalanche effect.
- **GUI Preview**:
![Experiment 4 GUI](images/experiment4-gui.png)

### Experiment 5: AES Algorithm / AES算法
- **Description**: Implement the AES encryption algorithm using Python's cryptographic libraries. Analyze its behavior in different scenarios, such as CTR mode.
- **GUI Preview**:
![Experiment 5 GUI](images/experiment5-gui.png)

### Experiment 6: RSA Algorithm / RSA算法
- **Description**: Implement the RSA encryption algorithm. Generate large prime numbers, compute public/private keys, and evaluate the performance of encryption and decryption.
- **GUI Preview**:
![Experiment 6 GUI](images/experiment6-gui.png)

## License
This project is licensed under the **Creative Commons Attribution-NoDerivatives (CC BY-ND)** license. You are free to share the code, but **you cannot modify it**. See the [LICENSE](LICENSE) file for details.

## Acknowledgements
This project was developed for the **Application Cryptography** course at **Nanjing University of Information Science & Technology (NUIST)**. Special thanks to **Professor Zhiguo Qu** for his guidance throughout the project.
This project is funded by the **National College Student Innovation and Entrepreneurship Project**, Fund Number: **ZR2022MF338**. Special thanks to **Professor Baowei Wang** for his support.