{"id":36994126,"url":"https://github.com/anonputraid/zetcipher","last_synced_at":"2026-01-13T23:46:21.035Z","repository":{"id":321742067,"uuid":"1086982028","full_name":"anonputraid/zetcipher","owner":"anonputraid","description":"Lightweight and secure text encryption tool built for developers and security enthusiasts.","archived":false,"fork":false,"pushed_at":"2025-10-31T07:50:49.000Z","size":2608,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-10-31T09:30:17.924Z","etag":null,"topics":["cryptography","data-encryption","encryption","security"],"latest_commit_sha":null,"homepage":"https://zetcipher.getbitlab.com","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/anonputraid.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,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-10-31T07:38:29.000Z","updated_at":"2025-10-31T07:50:53.000Z","dependencies_parsed_at":"2025-10-31T09:30:37.133Z","dependency_job_id":"78d26b95-4309-47f5-9658-81761877638e","html_url":"https://github.com/anonputraid/zetcipher","commit_stats":null,"previous_names":["anonputraid/zetcipher"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/anonputraid/zetcipher","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonputraid%2Fzetcipher","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonputraid%2Fzetcipher/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonputraid%2Fzetcipher/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonputraid%2Fzetcipher/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/anonputraid","download_url":"https://codeload.github.com/anonputraid/zetcipher/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/anonputraid%2Fzetcipher/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28405304,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-13T21:51:37.118Z","status":"ssl_error","status_checked_at":"2026-01-13T21:45:14.585Z","response_time":56,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5: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":["cryptography","data-encryption","encryption","security"],"created_at":"2026-01-13T23:46:20.968Z","updated_at":"2026-01-13T23:46:21.023Z","avatar_url":"https://github.com/anonputraid.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZETCIPHER — Paradigma Baru Kriptografi Dinamis\n\n\u003e **Cryptography for Secure Token and Verification**\n\n**📧 Author:** anonputraid\n**Created:** 14/10/2025\n**Version:** v1.0\n\n---\n\n![Banner Zet-cipher](src/images/zet-cipher.png \"Banner Zet-cipher\")\n\nZetCipher adalah **framework keamanan open‑source** yang memperkenalkan paradigma baru dalam dunia kriptografi: **Dynamic Per‑User Algorithm Cryptography**, yaitu kriptografi di mana **setiap user dan setiap project memiliki algoritma unik** yang tidak dapat diterapkan pada sistem lain.\n\nBerbeda dengan kriptografi tradisional (AES, RSA, SHA) yang bersifat **statis dan universal**, ZetCipher menempatkan keamanan pada **variabilitas**, **keunikan**, dan **konteks mental pengguna**, sehingga dua sistem bahkan dengan input yang sama dapat menghasilkan token yang sama sekali berbeda.\n\n## 👉 **Try it online:** [https://zetcipher.getbitlab.com](https://zetcipher.getbitlab.com)\n\n# 🔭 1. Pendahuluan: Masalah Kriptografi Statis\n\nSelama puluhan tahun, kriptografi modern dibangun di atas prinsip:\n\n\u003e *Algoritma harus bersifat publik dan universal, sementara hanya kunci yang disembunyikan.*\n\nModel ini sangat kuat di era komputer klasik, tetapi memiliki **masalah mendasar**:\n\n1. **Algoritma bersifat tetap** ❌\n2. **Semua project di dunia memakai algoritma yang sama** ❌\n3. **Jika quantum‑computer matang, algoritma universal runtuh secara serentak** ❌\n4. **Hash deterministik selalu menghasilkan output yang sama** ❌\n\nKonsekuensinya:\n\n* Jika database berisi 1 juta hash password dicuri, penyerang bisa melakukan serangan di komputer lain menggunakan algoritma yang sama.\n* Jika suatu hari quantum cracking menjadi stabil, seluruh dunia runtuh sekaligus.\n\nZetCipher diciptakan untuk menjawab masalah fundamental ini.\n\n---\n\n# 🌌 2. Paradigma Baru — Dynamic Per‑User Algorithm\n\nZetCipher tidak bekerja seperti AES/RSA/SHA.\n\n**Perbedaan utama:**\n\n| Konsep                   | Kriptografi Klasik             | ZetCipher                                      |\n| ------------------------ | ------------------------------ | ---------------------------------------------- |\n| Algoritma                | Statis, universal              | Berubah per user \u0026 per project                 |\n| Determinisme             | Input sama → output sama       | Input sama → output berbeda tergantung konteks |\n| Keamanan                 | Pada kunci                     | Pada struktur + identitas pengguna             |\n| Ketahanan serangan massa | Rentan                         | Tidak rentan (tiap project unik)               |\n| Relasi antar sistem      | Hash bisa diuji di sistem lain | Tidak bisa ditest silang                       |\n\nZetCipher memecahkan masalah determinisme dengan menciptakan **Secret Universe**, yakni dunia matematika unik yang terbentuk dari:\n\n* **planet** (template algoritma)\n* **coordinate** (arah rotasi cipher)\n* **passport** (urutan ekspansi algoritma)\n* **passphrase** (kunci manual user)\n\nHasil akhirnya adalah **algoritma unik**, tidak pernah sama antara user A dan user B.\n\n\u003e *“Jika kriptografi klasik adalah gembok pabrik, ZetCipher adalah gembok buatan tangan yang hanya pembuatnya yang paham mekanismenya.”*\n\n---\n\n# 🧠 3. Filosofi: Security Derived From the Mind\n\nZetCipher muncul dari prinsip sederhana:\n\n\u003e *Angka 100 tidak pernah netral — maknanya tergantung bagaimana ia dibuat: 50+50, 200-100, 10×10, dll.*\n\nJika proses pembentukannya tidak diketahui, angka itu tidak bermakna.\n\nZetCipher mengadopsi ide ini dan menerapkannya pada kriptografi.\n\nYang aman bukan hanya hasil akhirnya (token), melainkan **proses mental dan kontekstual** yang melahirkan token tersebut.\n\n---\n\n# 🧩 4. Secret Universe Architecture\n\nSetiap encoding adalah hasil dari beberapa lapisan:\n\n* Rotasi alfabet berdasarkan planet\n* Perpindahan indeks berdasarkan coordinate\n* Permutasi kompleks berdasarkan passport\n* Penguncian manual memakai passphrase\n* Penyesuaian angka berdasarkan konfigurasi environment\n\nItu sebabnya:\n\n* Hash dari project A **tidak berlaku** di project B.\n* Hash dari user X **tidak bisa digunakan** untuk user Y.\n* Bahkan jika `.env` bocor, cipher internal pengguna tetap tidak dapat direkonstruksi.\n\nDengan demikian, **ZetCipher kebal terhadap serangan mass‑bruteforce**.\n\n---\n\n## 🔐 **5. The Silent Void: Mengapa Quantum Attack Menemui Jalan Buntu**\n\nQuantum-computer (seperti Algoritma Grover) bekerja dengan cara memperbesar probabilitas jawaban yang *benar* melalui fungsi Oracle `f(x) = 1`.  \nNamun, **ZetCipher** memperkenalkan konsep pertahanan **\"The Missing Oracle\"** atau *Ketiadaan Verifikasi*.\n\n### **1. Jalan Tanpa Arah (Lack of Verifiability)**\n\nSerangan Brute Force (Klasik maupun Quantum) bergantung pada feedback: **Benar** atau **Salah**.\n\nPada ZetCipher, karena struktur algoritma terikat konteks unik (**Planet \u0026 Passport**) yang tidak diketahui penyerang, maka:\n\n- Jika penyerang mencoba mendekripsi token `88273...` dengan tebakan Planet A, hasilnya adalah angka acak `5521....`\n- Penyerang **tidak memiliki cara untuk memverifikasi** apakah `5521...` adalah data asli atau hanya sampah matematika.\n- Tidak ada sinyal **\"True\"** atau **\"False\"**.\n\n### **2. Kebuntuan Kuantum (Quantum Deadlock)**\n\nUntuk memecahkan kode, komputer kuantum membutuhkan target fungsi yang jelas.  \nKarena ZetCipher menghasilkan output numerik yang *tampak valid* dalam segala kondisi dekripsi (meski isinya salah), komputer kuantum akan:\n\n➡️ **Terjebak dalam superposisi tanpa akhir.**\n\n\u003e *\"ZetCipher membuat jalan tanpa arah, buntu, dan tanpa ujung.  \n\u003e Penyerang tidak bisa melakukan trial true/false karena mereka tidak tahu apa yang sedang mereka cari.\"*\n\nZetCipher menjadi **Information Theoretic Secure** dalam konteks tertutup,  \ndi mana **entropi ketidakpastian tetap maksimal** bagi pihak luar.\n\n---\n\n# 🧬 ZetCipher: Context-Bound Security \u0026 Quantum-Resistant by Design\n\nZetCipher bukanlah algoritma matematika rumit.  \nStrukturnya bahkan tampak sederhana — seperti matematika anak SD.\n\nNamun kekuatannya tidak berada pada angka, melainkan pada **konteks**.\n\nDi dunia kriptografi modern:  \n\u003e **Konteks yang tidak dapat direplikasi jauh lebih kuat daripada angka yang tidak dapat dihitung.**\n\nDokumentasi ini menjelaskan fondasi unik ZetCipher yang membuatnya:\n- Tidak bisa di-crack menggunakan brute force klasik\n- Tidak bisa diserang oleh komputer kuantum (Grover Deadlock)\n- Tidak bisa dibawa pulang untuk di-crack offline\n- Tidak bergantung pada oracle benar/salah\n- Tidak dapat dipahami tanpa environment aplikasi\n\n---\n\n## 🔐 The Missing Oracle: Mengapa Quantum Attack Tidak Mampu Menemukan “True State”\n\nQuantum computer (seperti Algoritma Grover) membutuhkan sebuah **oracle**:\n\n\u003e Fungsi yang memberi jawaban:  \n\u003e **Benar (1)** atau **Salah (0)**.\n\nNamun ZetCipher memperkenalkan pertahanan baru:\n\n\u003e **The Missing Oracle**  \n\u003e Tidak ada sinyal *True/False* untuk penyerang.\n\nTanpa oracle, quantum attack masuk ke kondisi **Quantum Deadlock**:\n- Tidak ada arah\n- Tidak ada probabilitas yang bisa diperbesar\n- Tidak ada jawaban “yang benar”\n\nSuperposisi hanya berputar tanpa konvergensi.\n\n---\n\n#  Analogi Daun Abu-Abu (Filosofi Makna Tersembunyi)\n\nSemua orang tahu daun itu warna hijau.\n\nTapi bayangkan saya menggambar daun **abu-abu**.\n\nOrang lain bertanya:\n\u003e “Kenapa daunmu warna abu-abu?”\n\nSaya mungkin menjawab:\n- karena kenangan pribadi,\n- karena emosi tertentu,\n- atau karena pengalaman yang hanya saya yang tahu.\n\nBahkan jika Anda mengambil otak saya,  \n**makna daun abu-abu itu tetap hanya saya yang mengerti.**\n\nHasilnya terlihat.  \nWarnanya terlihat.  \nTetapi maknanya tersembunyi.\n\nZetCipher menghasilkan angka.\n\nAngka itu terlihat.\n\nNamun maknanya:\n- tidak terlihat,\n- tidak universal,\n- tidak dapat ditebak,\n- tidak dapat dipecahkan dari luar.\n\nKarena:\n\u003e ZetCipher tidak membuat angka yang sulit.  \n\u003e ZetCipher membuat **konteks** yang sulit.\n\n\n\n---\n\n# 🛠 Instalasi dan Setup\n\n```bash\ncomposer require zetcipher/zetcipher\n```\n\n### 🔑 Initialize Setup\n```bash\nphp artisan zetcipher:key\n```\n\n### ⚙️ Configure `.env`\n```php\nZETCIPHER_CIPHER=ZET/IJK\nZETCIPHER_ACCESS_KEY_ID=50454574382075219881774744823615123462103932128744\nZETCIPHER_ACCESS_KEY=ZET/88867456/zFkSyIzsaLFFi095l85xSfNmiGwwprAmWwV/7Ih0scM=\nZETCIPHER_SIGNING_SECRET=2636727\nZETCIPHER_TOKEN_LIFETIME=3600\n```\n\n### 🧠 Encode a Token\n```php\n$expires = now()-\u003eaddMinutes(15)-\u003egetTimestamp();\n$hash = ZetCipher::encode(data: $data, expires: $expires);\n```\n\n**Example Output:**\n```php\n8269924689234252895754188963109595788351614743579034711872120201135421543216429311624454\n```\n\n**Decode Example:**\n```php\n\"Hello world, welcome to ZetCipher\"\n```\n\n---\n\n# 🧬 6. Keunggulan Teknis\n\n### **1. Output Numeric‑Only**\n\nMudah disimpan, dikirim via URL, atau dipakai dalam sistem IoT rendah bandwidth.\n\n### **2. Algoritma Berbasis User**\n\nJika user A terkena kebocoran, user B tidak terdampak.\n\n### **3. Tidak Ada Single Point of Failure**\n\nTidak seperti JWT atau API keys, 1 kebocoran tidak meruntuhkan sistem.\n\n### **4. Resistansi Terhadap Rainbow Table**\n\nTidak mungkin membuat rainbow table karena algoritma setiap user berbeda.\n\n### **5. Context‑Bound Token**\n\nToken tidak akan valid pada project lain.\n\n---\n\n# 🧾 7. Contoh Pemakaian\n\n### Passphrase Encryption\n```php\n$token = ZetCipher::encode(\n    data: $request-\u003einput('data'),\n    expires: $expires,\n    passphrase: $request-\u003einput('passphrase'),\n);\n```\n\n### Passphrase Decoding\n```php\n$decoded = ZetCipher::decode(\n    token: $request-\u003einput('data'),\n    passphrase: $request-\u003einput('passphrase'),\n);\n```\n\n### End-to-End Secure Parameters\nDefine your own **planet**, **coordinates**, and **passport** for additional uniqueness:\n```php\n$token = ZetCipher::decode(\n    token: $request-\u003einput('data'),\n    passphrase: $request-\u003einput('passphrase'),\n    planet: $request-\u003einput('planet'),\n    coordinates: $request-\u003einput('coordinate'),\n    passport: $request-\u003einput('passport'),\n);\n```\n\n---\n\n## 🪐 Planet Codes\n```php\n$security_codes = [\n  \"ZET/ACS\",\"ZET/DEF\",\"ZET/GHI\",\"ZET/JKL\",\"ZET/MNO\",\"ZET/PQR\",\n  \"ZET/STU\",\"ZET/VWX\",\"ZET/YZZ\",\"ZET/YZA\",\"ZET/BCD\",\"ZET/EFG\",\n  \"ZET/HIJ\",\"ZET/KLM\",\"ZET/NOP\",\"ZET/QRS\",\"ZET/TUV\",\"ZET/WXY\",\n  \"ZET/ZAB\",\"ZET/CDE\",\"ZET/FGH\",\"ZET/IJK\",\"ZET/LMN\",\"ZET/OPQ\",\n  \"ZET/RST\",\"ZET/UVW\",\"ZET/XYZ\",\"ZET/GHJ\",\"ZET/ZAA\",\"ZET/QRT\",\n  \"ZET/STV\",\"ZET/WXZ\",\"ZET/YZB\",\"ZET/BDE\",\"ZET/FGI\",\"ZET/HJL\",\n  \"ZET/KMO\",\"ZET/NPQ\",\"ZET/RSU\",\"ZET/TVW\",\"ZET/WYa\",\"ZET/YAB\",\n  \"ZET/CDF\",\"ZET/EGH\",\"ZET/HIK\",\"ZET/JLM\",\"ZET/NPR\",\"ZET/QST\",\n  \"ZET/UVX\",\"ZET/WYZ\",\"ZET/ZAC\",\"ZET/BCE\",\"ZET/DFG\",\"ZET/GIJ\",\n  \"ZET/HKL\",\"ZET/JMN\",\"ZET/LNP\",\"ZET/PQS\",\"ZET/RTU\",\"ZET/SVW\",\n  \"ZET/UXY\",\"ZET/ZAD\",\"ZET/BEF\",\"ZET/CGH\",\"ZET/DIJ\",\"ZET/EKL\",\n  \"ZET/FMN\",\"ZET/GOP\",\"ZET/HQR\",\"ZET/IST\",\"ZET/JUV\",\"ZET/KWX\",\n  \"ZET/LYZ\",\"ZET/MZA\",\"ZET/NBC\",\"ZET/ODE\",\"ZET/PFG\",\"ZET/QGH\",\n  \"ZET/RHI\",\"ZET/SIJ\",\"ZET/TKL\"\n];\n```\n\n---\n\n## ✍️ Signing and Verification\n\n### Token Sign\n```php\n$token = ZetCipher::sign(); // user-only token\n$token = ZetCipher::sign(passphrase: $request-\u003einput(\"pin\"));\n```\n\n### Handshake Between Users\n```php\n$token = ZetCipher::handshake(id: $request-\u003einput(\"user_id\"));\n$token = ZetCipher::handshake(id: $request-\u003einput(\"user_id\"), data: $request-\u003einput(\"message\"));\n```\n\n### Verification\n```php\n$token = ZetCipher::verifyHandshake(token: $request-\u003einput(\"token\"));\n$token = ZetCipher::verifySign($request-\u003etoken);\n```\n\n---\n\n## ✅ Input Validation Example\n```php\n$rules = [\n    'data'       =\u003e ['required','string','regex:/^[A-Za-z0-9\\-]+$/'],\n    'coordinate' =\u003e ['required','regex:/^\\d+$/','integer','min:1'],\n    'passport'   =\u003e ['required','integer','min:1','max:3628800'],   \n    'passphrase' =\u003e ['nullable','string'],\n    'planet'     =\u003e ['nullable','string'],\n];\n\n$messages = [\n    'data.required'       =\u003e 'Data field is required.',\n    'data.regex'          =\u003e 'Data can only contain letters, numbers, and dashes.',\n    'coordinate.required' =\u003e 'Coordinates are required.',\n    'coordinate.regex'    =\u003e 'Coordinates must be numeric.',\n    'passport.required'   =\u003e 'Passport field is required.',\n    'passport.integer'    =\u003e 'Passport must be an integer.',\n    'passport.max'        =\u003e 'Passport cannot exceed 3,628,800.',\n];\n```\n\n---\n\n# 🧪 8. Undangan Pengujian Keamanan\n\nZetCipher terbuka untuk diuji dan dikembangkan komunitas demi memperkuat fondasi keamanan.\n\nFormat pelaporan:\n\n```\nSubject: [ZETCIPHER][VULN] \u003csummary\u003e\n\n1) Summary of the finding  \n2) Steps to reproduce  \n3) Severity  \n4) Proof of concept  \n5) Suggested mitigation (optional)\n```\n\n---\n\n# 🧠 9. Penutup: Kriptografi Sebagai Ekspresi Pikiran\n\n\u003e *“Sebuah goresan di batu mungkin tak bermakna bagi dunia, tetapi hanya penciptanya yang memahami kosmos di baliknya.”*\n\nZetCipher mengembalikan kriptografi ke hakikat awalnya: **seni menyembunyikan makna**, bukan sekadar kekuatan brute‑force.\n\nIni adalah langkah menuju masa depan di mana keamanan bukan lagi statis, tetapi **unik seperti sidik jari penciptanya**.\n\n---\n\n**📌 License:** Apache-2.0\n**📧 Author:** anonputraid\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonputraid%2Fzetcipher","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fanonputraid%2Fzetcipher","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fanonputraid%2Fzetcipher/lists"}