Anatoli Kot

Anatoli Kot

Software Engineer · Cybersecurity

Small security tools — a packet sniffer, a malware detector, cryptographic protocols, and more.

Built for coursework and self-study, not production use — see each project's README for details.

project
Packet Sniffer
security
Python/Scapy coursework project: a UDP client and server on localhost port 12321, a separate adversary script that sniffs their packets, and a simulated dropped-packet-and-resend step.The assignment was to build a UDP client/server, an adversary that captures their traffic without being part of the connection, and a defense against an active adversary dropping chosen packets, where the client sends an XOR of the data packets so a missing one can be rebuilt. The committed code covers the sniffer and a simpler version of the loss handling: the server asks for a resend instead of rebuilding the packet from the XOR.
UDP Client ↔ Server
Resend Lost Packet
Sniff & Print
project
Monitar Malware Detector
security
Python/Tkinter desktop tool that scans a machine for known indicator-of-compromise file paths and reports a risk level, built for a cybersecurity course case study on a fictional utility-company malware strain.Simulates the detection side of an incident-response case study: given a set of known malicious file paths, determine whether a machine shows signs of the MONITAR malware. Educational demo, not a production antivirus: it doesn't scan file contents, hashes, or behavior.
Known Paths
Scan Filesystem
Risk Level
project
Secure Voting System
security
Terminal-based e-voting prototype combining ECC key exchange, AES-GCM authenticated encryption, and Twilio SMS voter verification, so ballots are tallied without ever exposing a plaintext vote in storage.Explores how public-key cryptography can protect a vote's confidentiality: each ballot is encrypted with the voter's own key and only decrypted if that voter re-verifies to change their vote. The README is upfront about the limits: the SMS re-entry step isn't a true zero-knowledge proof, the election authority could still decrypt any ballot, and all state lives in memory.
Register Voter
SMS Verify
Encrypt Ballot
Tally
project
Zero-Knowledge Sudoku Proof
security
Interactive terminal demo of a zero-knowledge proof for Sudoku: the verifier opens rows, columns, and 3x3 boxes of a hidden solution one at a time, each shown only as a sorted list, until a chosen confidence level is reached.Hands-on exploration of zero-knowledge proof theory for advanced cryptography coursework: convince a verifier that a puzzle has a valid solution without showing the solved grid. The protocol is simplified. Revealed units are sorted rather than cryptographically committed, and the user at the terminal answers whether each revealed unit is valid.
Solve Puzzle
Split 27 Packets
Reveal Sorted
Approve Packet
project
Password Encryption Program
security
Early Python/Tkinter password manager that saves usernames with passwords encoded by a home-made rotation cipher, and decodes them on request with the same key.A first pass at encryption basics: keep saved passwords out of plaintext by substituting each character through a key. It's a Caesar-style substitution, not real cryptography, and the key itself is saved unencrypted in key.txt next to the password file.
Set Rotation Key
Encode & Save
Decode on Lookup
System Status
>_anatoli@portfolio|OS: PortfolioOS (Next.js 16.3.4)Kernel: React 19.2.8CPU: TurbopackProjects: 14Languages: TypeScript, JavaScript, Python, Java