{"id":25065670,"url":"https://github.com/programming-sai/cryptanalysis","last_synced_at":"2025-08-02T14:06:42.098Z","repository":{"id":272618938,"uuid":"917181195","full_name":"Programming-Sai/CryptAnalysis","owner":"Programming-Sai","description":"An exploration of cryptographic concepts, including modular exponentiation, RSA algorithm analysis, and brute-force password cracking techniques. This repository contains Python implementations, performance evaluations, and visualizations as part of the MATH 359 project for the 2024/25 academic year.","archived":false,"fork":false,"pushed_at":"2025-02-11T09:37:07.000Z","size":1939,"stargazers_count":1,"open_issues_count":1,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-14T18:57:23.723Z","etag":null,"topics":["discrete-mathematics","jupyter-notebook","mathematics","modular-exponentiation"],"latest_commit_sha":null,"homepage":"https://programming-sai.github.io/CryptAnalysis/","language":"HTML","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Programming-Sai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-01-15T14:07:49.000Z","updated_at":"2025-02-11T09:37:11.000Z","dependencies_parsed_at":"2025-01-15T17:10:16.088Z","dependency_job_id":"66e12098-e37a-43b4-8932-5b7f71ec7867","html_url":"https://github.com/Programming-Sai/CryptAnalysis","commit_stats":null,"previous_names":["programming-sai/cryptanalysis"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Programming-Sai/CryptAnalysis","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FCryptAnalysis","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FCryptAnalysis/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FCryptAnalysis/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FCryptAnalysis/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Programming-Sai","download_url":"https://codeload.github.com/Programming-Sai/CryptAnalysis/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Programming-Sai%2FCryptAnalysis/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268401594,"owners_count":24244464,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-02T02:00:12.353Z","response_time":74,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["discrete-mathematics","jupyter-notebook","mathematics","modular-exponentiation"],"created_at":"2025-02-06T19:44:43.857Z","updated_at":"2025-08-02T14:06:42.018Z","avatar_url":"https://github.com/Programming-Sai.png","language":"HTML","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CryptAnalysis\n\n## Project Overview\n\nAn exploration of cryptographic concepts, including modular exponentiation, RSA algorithm analysis, and brute-force password cracking techniques. This repository contains Python implementations, performance evaluations, and visualizations as part of the **MATH 359 project for the 2024/25 academic year.**\n\n- Modular exponentiation algorithms.\n- Performance evaluation of the RSA algorithm and its complexity.\n- Brute-force password cracking techniques for different scenarios.\n\nOur goal is to implement these concepts using Python, analyze their performance, and present the findings in a well-documented and collaborative manner.\n\n[Go here to see the Presentation](https://programming-sai.github.io/CryptAnalysis/)\n\n---\n\n## Table of Contents\n\n1. [Getting Started](#getting-started)\n2. [Features](#features)\n3. [Usage](#usage)\n4. [Project Structure](#project-structure)\n5. [Contributors](#contributors)\n\n---\n\n## Getting Started\n\n### Prerequisites\n\nTo run the code in this repository, ensure you have the following installed:\n\n- Python 3.8 or higher\n- Jupyter Notebook\n- Required libraries (listed in `requirements.txt`)\n\n### Installation\n\n1. **Fork the Repository**\n\n   - Go to the [CryptAnalysis repository](https://github.com/Programming-Sai/CryptAnalysis) on GitHub.\n   - In the top-right corner, click the **Fork** button to create your own copy of the repository.\n   - After forking, you’ll be directed to your own forked repository.\n\n2. **Clone Your Forked Repository**\n\n   - Clone the repository to your local machine by using your forked version’s URL:\n\n   ```bash\n   git clone https://github.com/\u003cyour-username\u003e/CryptAnalysis.git\n   ```\n\n   Replace `\u003cyour-username\u003e` with your GitHub username.\n\n3. **Navigate to the Project Directory**\n\n   ```bash\n   cd CryptAnalysis\n   ```\n\n4. **Create a Virtual Environment**\n\n   ```bash\n   python -m venv .crypt-venv\n   ```\n\n5. **Activate the Virtual Environment**\n\n   ```bash\n   .\\.crypt-venv\\Scripts\\activate  # Windows\n\n   # OR\n\n   source .crypt-venv/bin/activate  # MacOS/Linux\n   ```\n\n6. **Install Dependencies**\n   ```bash\n   pip install -r requirements.txt\n   ```\n\n---\n\n### Working with the Repository\n\n1. **Create a Branch for Your Work**  \n   After cloning your forked repository, **create a new branch** to work on your task (e.g., implementing modular exponentiation or brute force password cracking).\n\n   ```bash\n   git checkout -b my-feature-branch\n   ```\n\n   Example:\n\n   ```bash\n   git checkout -b modular-exp-work\n   ```\n\n\u003e [!TIP]  \n\u003e _For naming your branches, please make sure that the section you chose would be part of them name of your branch. For example, your can name your branch `mod-exp` (if you are doing the Modular exponentiation work) `rsa-prob` (for the RSA one) or `pswd-cracking` (for the password and bruteforcing.)._\n\n2. **Make Changes**  \n   Modify the appropriate files as per the assigned task. For example, you’ll be working inside `notebooks/Modular_Exponentiation_Problems/` if working on modular exponentiation.\n\n3. **Stage and Commit Your Changes**  \n   After making changes, **stage** and **commit** them to your branch:\n\n   ```bash\n   git add .\n   git commit -m \"Implemented modular exponentiation function\"\n   ```\n\n4. **Push Your Branch to Your Fork**  \n   Push your branch to your **forked repository** on GitHub:\n\n   ```bash\n   git push origin my-feature-branch\n   ```\n\n5. **Create a Pull Request (PR)**\n   - Go to your forked repository on GitHub.\n   - You should see a banner asking if you want to **Create a Pull Request** for the branch you just pushed.\n   - Click on **\"Compare \u0026 pull request\"**.\n   - Add a **title** and **description** for your PR (e.g., \"Implemented modular exponentiation function\").\n   - Make sure the **base repository** is `Programming-Sai/CryptAnalysis` and the **base branch** is `main`.\n   - Click **\"Create Pull Request\"** to submit your PR for review.\n\n---\n\n### Reviewing and Making Changes\n\n- If changes are requested after the pull request review, make the necessary edits locally.\n- **Commit** and **push** the changes to your branch. Your pull request will automatically update.\n\n```bash\ngit add .\ngit commit -m \"Updated implementation as per review\"\ngit push origin my-feature-branch\n```\n\n---\n\n### Summary Workflow:\n\n1. **Fork** the repository.\n2. **Clone** your forked repo.\n3. **Create a branch** for your work.\n4. **Make changes**, **stage**, and **commit**.\n5. **Push** the branch to your fork.\n6. **Submit a pull request** to the main repository.\n\n\u003e [!IMPORTANT]  \n\u003e _At the bottom of the page, update this readme with your name and ID (Please for this README, make changes to only your details. leave everything else as is!!)._\n\n---\n\n## Features\n\n- **Modular Exponentiation Algorithm**: Python function implementation with performance comparison.\n- **RSA Decryption Complexity**: Analyzing brute-force decryption time for varying key sizes.\n- **Password Cracking**: Brute-force attack simulations for numeric and alphanumeric PINs.\n- **Visualization**: Graphs for performance comparisons and password cracking times.\n\n---\n\n## Usage\n\n1. Open the Jupyter Notebook in the project folder:\n   ```bash\n   jupyter notebook CryptAnalysis.ipynb\n   ```\n2. Run the cells to view the implementation, results, and visualizations.\n3. Edit or contribute by creating new branches for your work.\n\n---\n\n## Project Structure\n\n```\nCryptAnalysis/\n│── data/                                # Store input/output files if needed\n│── result/                              # Store final results\n│── logs/                                # Store timing and performance logs\n│── figures/                             # Store generated graphs and plots\n│── scripts/                             # Reusable Python scripts for calculations\n│── presentation/                        # Final slides and summary notebook\n│── notebooks/                           # Jupyter Notebooks for team members\n│   ├── Modular_Exponentiation_Problems/ # Modular exponentiation work\n│   ├── Password_And_BruteForcing/       # Brute-force password attack work\n│   └── RSA_Problems/                    # RSA decryption work\n│── .gitignore                           # Ignore unnecessary files in version control\n│── README.md                            # Overview and instructions\n└── requirements.txt                     # Dependencies (if any)\n\n```\n\n---\n\n## Contributors\n\nThis project is a group effort by the following team members:\n\n_Add your name, ID and selected selection here_\n\n- **[Menah Lartey Isaiah Nii Lartey] - [11222100]**: Modular Exponentiation Algorithm\n\n- **[⁠Tattah Abel Mawunyo] - [11335775]**: RSA Algorithm Analysis\n\n- **[Anti Bright Gyeadu] - [11340436]**: Brute-Force Password Cracking\n\n- **[Ebenezer Ofori Acquah] - [11154989]**: RSA Algorithm Analysis\n\n- **[Addo Reuben Nii Addotey] - [11019527]**: Modular Exponentiation Algorithm\n\n- **[Angela Acquah] - [11033579]**: Modular Exponentiation Algorithm\n\n- **[Abormegah Elisah Yaw] - [10823700]**:\n\n    \u003cbr\u003e\n    \u003cbr\u003e\n\n\u003e [!NOTE]  \n\u003e _If you're a team member, ensure you’ve been added as a collaborator. Reach out if you need access._\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramming-sai%2Fcryptanalysis","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fprogramming-sai%2Fcryptanalysis","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fprogramming-sai%2Fcryptanalysis/lists"}