
TitanCrypt | A file encryption system with a Zero-Trust architecture
A web based file encryption system with a Zero-Trust architecture that performs all cryptographic operations within the user's browser. The server never has access to encryption keys or raw data. This project is capable of processing large files up to 10 gigabytes and beyond without high memory consumption.
This project is a full stack application that uses Node.js and Express on the server side and Vanilla JavaScript on the client side. Its primary goal is to demonstrate the ability to implement complex security systems using only standard browser APIs.
Key technical features:
Advanced security:
Implementation of AES-256-GCM encryption using the Web Crypto API
Use of PBKDF2 with 600,000 iterations for key derivation, providing resistance against brute force attacks
Zero-Trust architecture meaning the server has no access to keys or unencrypted data
Implementation of SHA-256 to ensure file integrity and authenticity
Server side security layer with Helmet.js, Content Security Policy, and Rate Limiting
Memory and performance management:
Chunked streaming file processing with 1 megabyte segments
Consistently low and stable memory usage even for files over 10 gigabytes
Real time display of progress percentage, speed in megabytes per second, and remaining time
No software installation required, fully web based
User experience:
Glass-morphism design with a dark theme
Drag and drop support for file upload
Toast notification system with automatic dismissal
Key management including random key generation, copying, import, and export as JSON files
Technical documentation:
Complete white paper of over 20 pages including architectural diagrams, encryption flowcharts, sequence diagrams, performance analysis, and threat modeling
Documentation of encryption standards including NIST SP 800-38D, FIPS 180-4, and FIPS 197
Mermaid diagrams illustrating system architecture, encryption processes, and key management
Technologies used
Backend:
Node.js
Express.js
Helmet.js for security
Express Rate Limit for request throttling
Dotenv for configuration management
Frontend:
Vanilla JavaScript without any frameworks
Web Crypto API including SubtleCrypto
HTML5 File API and Blob API
CSS3 with advanced features including Glass-morphism, animations, and dark theme
Implemented concepts:
Zero-Trust Architecture
Chunked File Processing
Asynchronous Programming using Async/Await
Client-Side Cryptography
Memory-Efficient Streaming
Technical challenges I solved
Client side encryption without third-party libraries: Instead of using JavaScript libraries for encryption, I used the standard Web Crypto API built into the browser. This API is natively implemented in the browser and benefits from CPU hardware acceleration. It also eliminates the need to trust third-party code.
Processing large files without high memory consumption: I split large files up to 10 gigabytes and beyond into 1 megabyte chunks. Each chunk is read, encrypted, and then cleared from memory separately. The final result is assembled as a Blob in the browser. Memory usage remains stable throughout the process at approximately 26 megabytes.
True Zero-Trust architecture: In this architecture, the server only serves static files including HTML, CSS, and JavaScript. All encryption logic runs on the client side. Encryption keys and raw data are never sent to the server. Even if the server is fully compromised, an attacker has no access to any sensitive data.
Responsive user interface during heavy processing: By using asynchronous functions and chunked processing, the user interface remains fully responsive even during encryption of large files. The progress bar updates in real time with speed calculations and remaining time estimates.
Why is this project valuable?
This project demonstrates the following capabilities:
Deep mastery of JavaScript and Web APIs: I have built a complex security application without using any frameworks
Understanding of advanced security concepts: Zero-Trust architecture, AES-GCM encryption, and secure key derivation with PBKDF2
Memory management and optimization: Processing large files without crashes or system slowdowns
Technical documentation skills: Writing a professional white paper with architectural diagrams
Clean software architecture: Separation of encryption logic, file management, and user interface
Creative problem solving: Providing solutions to real world challenges such as large file encryption within a browser
GitHub: https://github.com/paxmatixamevt/TitanCrypt

















