{"id":22342924,"url":"https://github.com/pirate-emperor/cipherx","last_synced_at":"2026-01-26T00:40:35.940Z","repository":{"id":263127629,"uuid":"882365320","full_name":"Pirate-Emperor/CipherX","owner":"Pirate-Emperor","description":"CipherX is a verification project for Advanced Encryption Standard (AES-128) using Universal Verification Methodology (UVM). It leverages Verilog, SystemVerilog, and Python to ensure robust encryption algorithm validation, integrating comprehensive UVM components and tests.","archived":false,"fork":false,"pushed_at":"2024-11-16T11:08:21.000Z","size":2737,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-30T01:58:19.277Z","etag":null,"topics":["aes-128","cryptography","cryptography-algorithms","dataencryption","dataencryptionstandards","digitaldesign","encrytption","hardwareverification","python","security","testing-framework","uvm","verification","verilog"],"latest_commit_sha":null,"homepage":"","language":"Verilog","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Pirate-Emperor.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-11-02T16:29:45.000Z","updated_at":"2024-11-16T11:54:04.000Z","dependencies_parsed_at":"2024-11-20T11:16:17.552Z","dependency_job_id":"5ad7c2df-3587-4f2f-b28a-afad966d114f","html_url":"https://github.com/Pirate-Emperor/CipherX","commit_stats":null,"previous_names":["pirate-emperor/cipherx"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Pirate-Emperor/CipherX","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FCipherX","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FCipherX/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FCipherX/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FCipherX/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Pirate-Emperor","download_url":"https://codeload.github.com/Pirate-Emperor/CipherX/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Pirate-Emperor%2FCipherX/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28762981,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-26T00:37:26.264Z","status":"ssl_error","status_checked_at":"2026-01-26T00:37:25.959Z","response_time":113,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["aes-128","cryptography","cryptography-algorithms","dataencryption","dataencryptionstandards","digitaldesign","encrytption","hardwareverification","python","security","testing-framework","uvm","verification","verilog"],"created_at":"2024-12-04T08:14:08.931Z","updated_at":"2026-01-26T00:40:35.934Z","avatar_url":"https://github.com/Pirate-Emperor.png","language":"Verilog","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003clink rel=\"stylesheet\" type=\"text/css\" href=\"style.css\"\u003e\n\n\u003c!-- \nAuthor: Pirate-Emperor\nDate: [Insert Date]\nDescription: README file for CipherX project.\n--\u003e\n\n# CipherX\n![CipherX](docs/cipherx.png)\n\n## Project Overview\n\nCipherX is a project aimed at verifying the Advanced Encryption Standard (AES-128) using the Universal Verification Methodology (UVM). It involves using UVM components to ensure the correctness and robustness of AES-128 encryption and decryption functionalities. The project utilizes Verilog, SystemVerilog, and Python to achieve its goals.\n\n## Project Directory Structure\n\nHere's an overview of the project directory structure and the purpose of each file and folder:\n\n### Root Directory\n\n- **`src/`**: Contains source files and utilities.\n  - **`cipher_text.txt`**: Stores cipher text data.\n  - **`data.txt`**: Contains data for encryption and decryption.\n  - **`encrypt.py`**: Python script for encryption tasks.\n  - **`gen_random.py`**: Python script for generating random data.\n  - **`key.txt`**: Contains encryption keys.\n  - **`run.sh`**: Shell script to run the encryption and verification processes.\n\n- **`uvm/`**: Contains UVM components and SystemVerilog files for AES-128 verification.\n  - **`AES_act_agent.svh`**: Reference model and components.\n  - **`AES_driver.svh`**: RTL and UVM driver components.\n  - **`AES_env.svh`**: UVM environment components.\n  - **`AES_if.svh`**: Interface components for UVM.\n  - **`AES_monitor.svh`**: UVM monitor components.\n  - **`AES_package.sv`**: UVM package containing necessary definitions.\n  - **`AES_pas_agent.svh`**: Additional reference model components.\n  - **`AES_scoreboard.svh`**: UVM scoreboard for result verification.\n  - **`AES_sequence.svh`**: UVM sequence components.\n  - **`AES_sequence_item.svh`**: UVM sequence item definitions.\n  - **`AES_sequencer.svh`**: UVM sequencer components.\n  - **`AES_subscriber.svh`**: UVM subscriber components.\n  - **`AES_test.svh`**: UVM testbench components.\n  - **`top.sv`**: Top-level SystemVerilog module.\n\n## Technology Stack\n\n- **Verilog**: 67.1%\n- **C**: 17.8%\n- **SystemVerilog**: 12.4%\n- **Python**: 2.6%\n- **Shell**: 0.1%\n\n## Flow Charts\n\n### 1. AES-128 Encryption Flow\n![AES-128 Encryption Flow](docs/1.png)\n\n### 2. AES-128 Decryption Flow\n![AES-128 Decryption Flow](docs/2.png)\n\n### 3. UVM Verification Flow\n![UVM Verification Flow](docs/3.png)\n\n## SDLC\n\nThe Software Development Life Cycle (SDLC) for CipherX includes:\n\n1. **Requirements Analysis**: Understanding and documenting the requirements for AES-128 verification.\n2. **Design**: Creating system architecture, flowcharts, and detailed design documents for the UVM components and AES-128 verification.\n3. **Implementation**: Coding the UVM components and verification scripts using Verilog, SystemVerilog, and Python.\n4. **Testing**: Conducting simulation and verification tests to ensure the AES-128 implementation meets the required standards.\n5. **Deployment**: Integrating the verification components into a testing environment.\n6. **Maintenance**: Monitoring and updating the verification components based on feedback and new requirements.\n\n## Highlight Testing Scripts\n\nTesting is crucial for ensuring the correctness of the AES-128 implementation:\n\n- **`encrypt.py`**: Encrypts data using AES-128.\n- **`gen_random.py`**: Generates random data for encryption tests.\n- **`run.sh`**: Executes the verification process including running simulations and tests.\n\n## Skills Used\n\n- **Verilog**: For hardware description and verification.\n- **SystemVerilog**: For UVM-based verification components.\n- **Python**: For utility scripts and data handling.\n- **Shell**: For scripting and automation.\n\n## Steps to Run\n\nFollow these steps to set up and run the CipherX project:\n\n### 1. Clone the Repository\n\nClone the repository using Git:\n\n```bash\ngit clone https://github.com/Pirate-Emperor/CipherX.git\n```\n\n### 2. Set Up Environment\n\nEnsure that you have the necessary tools installed:\n\n- **Verilog/SystemVerilog Simulator**: For running UVM simulations.\n- **Python**: For running the utility scripts.\n\n### 3. Run Encryption and Verification\n\nExecute the shell script to start the encryption and verification process:\n\n```bash\n./run.sh\n```\n\n### 4. Check the Results\n\nReview the generated results and logs to verify the correctness of the AES-128 implementation.\n\n## Contributing\n\nFeel free to fork the repository, make changes, and submit pull requests. Contributions are welcome!\n\n## License\n\nThis project is licensed under the Pirate-Emperor License. See the [LICENSE](LICENSE) file for details.\n\n## Author\n\n**Pirate-Emperor**\n\n[![Twitter](https://skillicons.dev/icons?i=twitter)](https://twitter.com/PirateKingRahul)\n[![Discord](https://skillicons.dev/icons?i=discord)](https://discord.com/users/1200728704981143634)\n[![LinkedIn](https://skillicons.dev/icons?i=linkedin)](https://www.linkedin.com/in/piratekingrahul)\n\n[![Reddit](https://img.shields.io/badge/Reddit-FF5700?style=for-the-badge\u0026logo=reddit\u0026logoColor=white)](https://www.reddit.com/u/PirateKingRahul)\n[![Medium](https://img.shields.io/badge/Medium-42404E?style=for-the-badge\u0026logo=medium\u0026logoColor=white)](https://medium.com/@piratekingrahul)\n\n- GitHub: [Pirate-Emperor](https://github.com/Pirate-Emperor)\n- Reddit: [PirateKingRahul](https://www.reddit.com/u/PirateKingRahul/)\n- Twitter: [PirateKingRahul](https://twitter.com/PirateKingRahul)\n- Discord: [PirateKingRahul](https://discord.com/users/1200728704981143634)\n- LinkedIn: [PirateKingRahul](https://www.linkedin.com/in/piratekingrahul)\n- Skype: [Join Skype](https://join.skype.com/invite/yfjOJG3wv9Ki)\n- Medium: [PirateKingRahul](https://medium.com/@piratekingrahul)\n\nThank you for visiting the CipherX project!\n\n---\n\nFor more details, please refer to the [GitHub repository](https://github.com/Pirate-Emperor/CipherX).","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Fcipherx","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpirate-emperor%2Fcipherx","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpirate-emperor%2Fcipherx/lists"}