{"id":35174211,"url":"https://github.com/skygenesisenterprise/crux-256","last_synced_at":"2026-04-14T04:31:25.118Z","repository":{"id":319029752,"uuid":"1077292271","full_name":"skygenesisenterprise/crux-256","owner":"skygenesisenterprise","description":"CRUX-256: Experimental symmetric block cipher combining SPN and ARX architectures","archived":false,"fork":false,"pushed_at":"2025-10-16T05:17:55.000Z","size":24,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-05T20:39:50.908Z","etag":null,"topics":["aes-256","api-service","cryptography","database","dns","linux","macos","mail","rust","windows"],"latest_commit_sha":null,"homepage":"https://skygenesisenterprise.com","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/skygenesisenterprise.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-16T03:57:36.000Z","updated_at":"2025-10-16T05:17:59.000Z","dependencies_parsed_at":"2025-10-17T20:50:25.126Z","dependency_job_id":"29af353d-26f6-4d8f-997b-820fa2c3b794","html_url":"https://github.com/skygenesisenterprise/crux-256","commit_stats":null,"previous_names":["skygenesisenterprise/crux-256"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/skygenesisenterprise/crux-256","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fcrux-256","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fcrux-256/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fcrux-256/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fcrux-256/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/skygenesisenterprise","download_url":"https://codeload.github.com/skygenesisenterprise/crux-256/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/skygenesisenterprise%2Fcrux-256/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31782736,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T02:24:21.117Z","status":"ssl_error","status_checked_at":"2026-04-14T02:24:20.627Z","response_time":153,"last_error":"SSL_read: 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-256","api-service","cryptography","database","dns","linux","macos","mail","rust","windows"],"created_at":"2025-12-28T21:50:53.772Z","updated_at":"2026-04-14T04:31:25.101Z","avatar_url":"https://github.com/skygenesisenterprise.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CRUX-256\n\nCRUX-256 is an experimental symmetric block cipher designed for research purposes, combining Substitution-Permutation Network (SPN) and Add-Rotate-XOR (ARX) architectures. It operates on 256-bit blocks with 256-bit keys, featuring dynamic S-boxes, adaptive rounds, and strong bit diffusion.\n\n## Warning\n\nThis cipher is not cryptographically proven secure and should not be used in production environments. It is intended for educational and research purposes only. For secure applications, use established standards like AES.\n\n## Features\n\n- 256-bit block and key size\n- Dynamic S-boxes generated from the key\n- Adaptive number of rounds (8-16)\n- Hybrid SPN-ARX architecture for balanced security and performance\n\n## Usage\n\nAdd to your `Cargo.toml`:\n\n```toml\n[dependencies]\ncrux-256 = \"0.1.0\"\n```\n\n### Basic Block Encryption\n\n```rust\nuse crux_256::{encrypt_block, decrypt_block};\n\nlet key = [0u8; 32];\nlet mut block = [1u8; 32];\n\nencrypt_block(\u0026mut block, \u0026key);\n// block is now encrypted\n\ndecrypt_block(\u0026mut block, \u0026key);\n// block is back to original\n```\n\n### Modes for Variable-Length Data\n\n```rust\nuse crux_256::{cbc_encrypt, cbc_decrypt, ctr_encrypt, ctr_decrypt, pkcs7_pad, pkcs7_unpad};\n\nlet key = [0u8; 32];\nlet iv = [0u8; 32];\nlet nonce = [0u8; 16];\nlet mut data = b\"Hello, world!\".to_vec();\n\n// CBC mode\npkcs7_pad(\u0026mut data, 32);\nlet ciphertext = cbc_encrypt(\u0026data, \u0026key, \u0026iv);\nlet mut plaintext = cbc_decrypt(\u0026ciphertext, \u0026key, \u0026iv);\npkcs7_unpad(\u0026mut plaintext).unwrap();\n\n// CTR mode\nlet ciphertext = ctr_encrypt(b\"Hello, world!\", \u0026key, \u0026nonce);\nlet plaintext = ctr_decrypt(\u0026ciphertext, \u0026key, \u0026nonce);\n```\n\n### WebAssembly (Web)\n\nCompile with `cargo build --target wasm32-unknown-unknown --features wasm`, then use in JS:\n\n```javascript\nimport { wasm_encrypt_block, wasm_decrypt_block } from 'crux-256';\n\nconst key = new Uint8Array(32);\nconst block = new Uint8Array(32).fill(1);\nconst encrypted = wasm_encrypt_block(block, key);\n```\n\n### C/Python Integration\n\nUse FFI bindings. For Python, use `ctypes` to call `crux_encrypt_block`.\n\n### Database Example\n\nFor encrypting columns in a DB like PostgreSQL, use the FFI to create a UDF.\n\n### Messaging Protocol\n\nFor secure messaging, use CTR with key derivation (e.g., HKDF) and AEAD (future GCM mode).\n\n## Building\n\n```bash\ncargo build --release\n```\n\n## Testing\n\n```bash\ncargo test\n```\n\n## License\n\nThis Project use the MIT Licence [LICENSE](LICENSE)","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskygenesisenterprise%2Fcrux-256","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fskygenesisenterprise%2Fcrux-256","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fskygenesisenterprise%2Fcrux-256/lists"}