RU
lattice A basis of the lattice ℤ². The vectors are draggable.

The same card as plain text: curl 151.241.109.127, security.txt.

A flag in three parts is hidden somewhere here.

Imam Chobanov

I play CTF with 4x10m, take part in bug bounty programs, and administer all sorts of things.

pkd12305@gmail.com, GitHub, Telegram

Working on post-quantum encryption algorithms built on lattices and linear codes.

Studying classical ML and deep learning.

Permanently optimizing uptime down to zero — or, as it is otherwise known, “SRE”.

  1. The Plesken–Souvignier algorithm for the lattice isomorphism problem

    SageMath, Python Decides whether two integer bases span the same lattice.

    Given two bases, decide whether some integer change of basis with determinant ±1 maps one onto the other while preserving every inner product. Brute force is not an option: GL(n, ℤ) is infinite.

    Λ₁ ≅ Λ₂ ⟺ ∃U ∈ GLn(ℤ) : UTG₁U = G₂

    The Plesken–Souvignier algorithm. Both bases are LLL-reduced, short vectors are enumerated by Fincke–Pohst, candidates are pruned by a fingerprint of isometry-invariant characteristics, and the isometry is extended one vector at a time with backtracking.

    The lattice class, LLL reduction, Fincke–Pohst enumeration and fingerprint pruning are done. Backtracking is in progress.

  2. Lambda

    Rust A scoreboard platform for CTF.

    CTFd runs on Python and was slow, whereas Rust is fast and safe. I could not find a decent CTFd equivalent written in Rust either, so I decided to build my own.

  3. C0dex Fun Club

    Python, Docker, CTFd An autonomous CTF solver: a swarm of models works the challenges and submits the flags itself.

    I wanted an agent that solves a challenge rather than hints at it. Everything comes down to cost: racing several models on every challenge through a metered API is expensive, and without parallel attempts the solve rate drops.

    A coordinator LLM hands challenges out to swarms; inside a swarm three models race for the same flag and the first to confirm one wins. Requests go through a local cli-proxy-api over OAuth accounts rather than a metered API — that is where the savings come from. Each challenge lives in its own Docker container; a stuck solver gets topped up with its siblings’ findings and a fresh step budget, while a loop detector and a cost tracker keep the swarm from burning tokens for nothing.

Cryptography
SageMath, Magma, CyberChef
Machine Learning — Classical ML and Deep Learning
PyTorch, scikit-learn, pandas, NumPy, matplotlib
Infrastructure
Docker, Nginx, Linux, Wireshark

Reach me at pkd12305@gmail.com or on @hize_k.