VPN System with Data Structures and Algorithms
VPN System with Data Structures and Algorithms
Project Supervisor:
Ma’am Darakshan
Submitted By:
Abdul Rehman Wahla 2023-CS-717
Abdullah khan 2023-CS-718
Hassan Khan 2023-CS-720
Course:
CSC-200 Data Structures and Algorithms
Objective:
To implement a system for creating a Virtual Private Network system based on the core
application of data structures and algorithms which performs the communication task securely
along with effective packet handling and also best data routing. All these operations shall be
fully done in the memory because real-time results are crucial here.
Scope:
The system will carry the following functionality:
User Authentication: An in-memory hash table in C++ for secure credential management.
Packet Transmission: Queue-based data structure for orderly and efficient packet handling.
Secure Routing: Graph representation and algorithms (e.g., Dijkstra's) for optimal and secure
data routing.
Encryption and Decryption: Binary Search Tree (BST) for managing encryption keys and
efficient retrieval.
Traffic Monitoring and Control: Policies implemented to ensure bandwidth fairness and detect
suspicious activities.
Technical Overview
1. Core Data Structures in C++:
Hash Table: Implemented using std::unordered-map for secure storage of hashed credentials.
Queue: Built using std::queue for handling packet transmission in an orderly fashion.
Graph: Implemented using adjacency matrices or adjacency lists for dynamic routing.
Binary Search Tree (BST): Designed for managing encryption keys with efficient search
capabilities.
2. Encryption Algorithms:
The following encryption methods will be used in the project implemented in C++:
RSA (Rivest-Shamir-Adleman): For secure key exchange.
AES (Advanced Encryption Standard): For robust data encryption and decryption.
3. Routing Algorithms:
C++ implementations of algorithms such as Dijkstra's and Bellman-Ford will optimize routing
paths considering factors such as network congestion and security.
4. In-Memory Design:
All data structures, including hash tables, queues, graphs, and BSTs, will be designed and
managed in complete memory to ensure fast and efficient operations.
Benefits:
C++ Proficiency: Get hands-on experience with advanced data structures and STL libraries.
Security Focused: Design secure communication techniques using the latest encryption
algorithms.
Real-World Relevance: Design a prototype that shows the core functionalities of VPN systems in
industries.
Expected Outcome:
The project will deliver a working VPN prototype in C++ that demonstrates secure
communication, packet management, and efficient routing. This system will form the basis for
future enhancements such as dynamic routing protocols and tunneling.
Conclusion:
It presents the chance to learn in actual projects where C++ is linked with networking and data
structures, and all such requirements will be tackled which form critical industry requirements
regarding safe communication systems.