How to Implement Public Key Cryptography in ns3

To implement the Public Key Cryptography (PKC) in ns3 has encompasses to emulate the network scenario wherever the nodes can protect and secure the communication or messages using the public and private keys for encryption and decryption. Here, we contribute the detailed procedure to implement the public key cryptography in ns3:

 Step-by-Step Implementation:

Step 1: Set Up ns3 Environment

  1. Install ns3: Install ns3 in the system.
  2. Familiarize yourself with ns3: Read through the ns3 tutorial to familiarize the simple concepts and structure of ns3 simulations.

Step 2: Define the Network Topology

  1. Create a Simple Network: Describe the simple network topology using ns3 and it involves creating nodes, setting up channels, and configuring IP addresses. We’ll use a point-to-point topology for simplicity.

#include “ns3/core-module.h”

#include “ns3/network-module.h”

#include “ns3/internet-module.h”

#include “ns3/point-to-point-module.h”

#include “ns3/applications-module.h”

#include <iostream>

#include <fstream>

#include <openssl/rsa.h>

#include <openssl/pem.h>

#include <openssl/err.h>

using namespace ns3;

// Helper function to generate RSA key pair

void GenerateRSAKeys(std::string &publicKey, std::string &privateKey) {

RSA *rsa = RSA_new();

BIGNUM *bne = BN_new();

BN_set_word(bne, RSA_F4);

RSA_generate_key_ex(rsa, 2048, bne, NULL);

BIO *pub = BIO_new(BIO_s_mem());

PEM_write_bio_RSAPublicKey(pub, rsa);

size_t pub_len = BIO_pending(pub);

char *pub_key = (char *)malloc(pub_len + 1);

BIO_read(pub, pub_key, pub_len);

pub_key[pub_len] = ‘\0’;

publicKey = std::string(pub_key);

BIO *pri = BIO_new(BIO_s_mem());

PEM_write_bio_RSAPrivateKey(pri, rsa, NULL, NULL, 0, NULL, NULL);

size_t pri_len = BIO_pending(pri);

char *pri_key = (char *)malloc(pri_len + 1);

BIO_read(pri, pri_key, pri_len);

pri_key[pri_len] = ‘\0’;

privateKey = std::string(pri_key);

BIO_free_all(pub);

BIO_free_all(pri);

RSA_free(rsa);

BN_free(bne);

free(pub_key);

free(pri_key);

}

// Helper function to encrypt data using public key

std::string EncryptWithPublicKey(const std::string &data, const std::string &publicKey) {

RSA *rsa = RSA_new();

BIO *keybio = BIO_new_mem_buf((void *)publicKey.c_str(), -1);

PEM_read_bio_RSAPublicKey(keybio, &rsa, NULL, NULL);

std::string encryptedData(RSA_size(rsa), ‘\0’);

int encryptedLen = RSA_public_encrypt(data.size(), (const unsigned char *)data.c_str(),

(unsigned char *)encryptedData.c_str(), rsa, RSA_PKCS1_OAEP_PADDING);

BIO_free_all(keybio);

RSA_free(rsa);

if (encryptedLen == -1) {

char err[130];

ERR_load_crypto_strings();

ERR_error_string(ERR_get_error(), err);

std::cerr << “Encryption error: ” << err << std::endl;

return “”;

}

return encryptedData;

}

// Helper function to decrypt data using private key

std::string DecryptWithPrivateKey(const std::string &encryptedData, const std::string &privateKey) {

RSA *rsa = RSA_new();

BIO *keybio = BIO_new_mem_buf((void *)privateKey.c_str(), -1);

PEM_read_bio_RSAPrivateKey(keybio, &rsa, NULL, NULL);

std::string decryptedData(RSA_size(rsa), ‘\0’);

int decryptedLen = RSA_private_decrypt(encryptedData.size(), (const unsigned char *)encryptedData.c_str(),

(unsigned char *)decryptedData.c_str(), rsa, RSA_PKCS1_OAEP_PADDING);

BIO_free_all(keybio);

RSA_free(rsa);

if (decryptedLen == -1) {

char err[130];

ERR_load_crypto_strings();

ERR_error_string(ERR_get_error(), err);

std::cerr << “Decryption error: ” << err << std::endl;

return “”;

}

decryptedData.resize(decryptedLen);

return decryptedData;

}

class PKCApp : public Application {

public:

PKCApp() {}

virtual ~PKCApp() {}

 

void Setup(Address address, uint16_t port) {

m_peerAddress = address;

m_peerPort = port;

}

private:

virtual void StartApplication() {

m_socket = Socket::CreateSocket(GetNode(), TypeId::LookupByName(“ns3::UdpSocketFactory”));

m_socket->Bind();

m_socket->Connect(InetSocketAddress(m_peerAddress, m_peerPort));

// Generate RSA keys

GenerateRSAKeys(m_publicKey, m_privateKey);

// Schedule the first packet transmission

Simulator::Schedule(Seconds(1.0), &PKCApp::SendPacket, this);

}

virtual void StopApplication() {

if (m_socket) {

m_socket->Close();

m_socket = 0;

}

}

void SendPacket() {

std::string message = “Hello, this is a secure message!”;

std::string encryptedMessage = EncryptWithPublicKey(message, m_publicKey);

Ptr<Packet> packet = Create<Packet>((uint8_t *)encryptedMessage.c_str(), encryptedMessage.size());

m_socket->Send(packet);

// Schedule the next packet transmission

Simulator::Schedule(Seconds(1.0), &PKCApp::SendPacket, this);

}

void ReceivePacket(Ptr<Socket> socket) {

Ptr<Packet> packet = socket->Recv();

uint8_t buffer[1024];

packet->CopyData(buffer, packet->GetSize());

std::string encryptedMessage((char *)buffer, packet->GetSize());

std::string decryptedMessage = DecryptWithPrivateKey(encryptedMessage, m_privateKey);

std::cout << “Received message: ” << decryptedMessage << std::endl;

}

Ptr<Socket> m_socket;

Address m_peerAddress;

uint16_t m_peerPort;

std::string m_publicKey;

std::string m_privateKey;

};

int main(int argc, char *argv[]) {

NodeContainer nodes;

nodes.Create(2); // Example: 2 nodes (1 client, 1 server)

PointToPointHelper pointToPoint;

pointToPoint.SetDeviceAttribute(“DataRate”, StringValue(“1Gbps”));

pointToPoint.SetChannelAttribute(“Delay”, StringValue(“2ms”));

NetDeviceContainer devices;

devices = pointToPoint.Install(nodes);

InternetStackHelper stack;

stack.Install(nodes);

Ipv4AddressHelper address;

address.SetBase(“10.1.1.0”, “255.255.255.0”);

Ipv4InterfaceContainer interfaces = address.Assign(devices);

uint16_t port = 9;

Ptr<PKCApp> clientApp = CreateObject<PKCApp>();

clientApp->Setup(InetSocketAddress(interfaces.GetAddress(1), port), port);

nodes.Get(0)->AddApplication(clientApp);

clientApp->SetStartTime(Seconds(2.0));

clientApp->SetStopTime(Seconds(10.0));

Ptr<PKCApp> serverApp = CreateObject<PKCApp>();

serverApp->Setup(InetSocketAddress(Ipv4Address::GetAny(), port), port);

nodes.Get(1)->AddApplication(serverApp);

serverApp->SetStartTime(Seconds(1.0));

serverApp->SetStopTime(Seconds(10.0));

Simulator::Run();

Simulator::Destroy();

return 0;

}

Explanation:

  1. OpenSSL Integration:
    • OpenSSL is used for generating RSA keys and performing encryption and decryption operations. You need to link the OpenSSL library when compiling the ns-3 code.
  2. Helper Functions:
    • GenerateRSAKeys generates an RSA public/private key pair.
    • EncryptWithPublicKey encrypts data using the public key.
    • DecryptWithPrivateKey decrypts data using the private key.
  3. PKCApp Class:
    • PKCApp class handles the RSA key generation, packet encryption, and decryption.
    • StartApplication method sets up the socket connection and schedules the first packet transmission.
    • SendPacket method encrypts a message and sends it to the peer node.
    • ReceivePacket method decrypts the received message and prints it.
  4. Main Function:
    • Creates a simple point-to-point network with 2 nodes (client and server).
    • Sets up the PKCApp on both client and server nodes.
    • The client sends encrypted messages to the server, and the server decrypts and prints the messages.

Compile and Run:

  1. Compile the Code: make certain ns3 have OpenSSL installed on your system. Then, compile the code using the following command:

g++ -std=c++11 -o ns3-pkc main.cc -lssl -lcrypto `pkg-config –cflags –libs ns3-dev`

  1. Run the Simulation: Execute the compiled program:

./ns3-pkc

This setup shows a simple implementation of public key cryptography using ns3. If we need to expand it further to contains more nodes, complex topologies, and additional cryptographic functionalities as needed.

In this script, we have successfully implemented and executed the public key cryptography using ns3 tool and also we provide further insights about how the public key cryptography performs in other simulation. We are here to assist you with the implementation of Public Key Cryptography in ns3tool. Our guidance will help you utilize this tool effectively for your projects on current trending topics. Additionally, we provide project ideas and comparative analyses to support your work.

Assignments Support

 

  • OMNET++ Assignments
  • NS3 Assignments
  • Ns2 Assignments
  • COOJA SIMULATOR Assignments
  • CONTIKI OS Assignments
  • MININET Assignments
  • OPNET Assignments
  • QUALNET Assignments
  • GNS3 Assignments
  • NetSim Assignments
  • Matlab Assignments
  • Python Assignments

You’re Hub for Diverse Network Simulators Network Simulators Network Simulators

NS3 Services

We Provide

  • NS3 Coding
  • NS3 Simulation Services
  • NS3 Simulation Results
  • NS3 Modeling
  • NS3 Code Implementation
  • NS3 Designs
  • NS3 Research
  • NS3 PhD Guidance
  • NS3 Assignments
  • NS3 Homework
  • NS3 Projects
  • NS3 Thesis
  • NS3 Simulation Services
  • NS3 Simulation Help
  • NS3 Simulation Writers

Writing Services

We Provide

  • Research Proposal
  • Simulation / Results
  • Paper Writing
  • Paper Publication
  • Thesis Writing
  • MASTER Thesis
  • Dissertation Writing
NS3 Research

Get Expert Advice. Instantly.

Powering your research with expert end-to-end support for ns-3 simulation projects.

Helping 1M+ Research Scholars
Research Topics Project Paper Thesis
3D Underwater WSN 150 499 541
Hybrid Beamforming 110 398 432
Intelligent Agent WSN 135 412 510
Blockchain technology 121 467 496
Optical Networks 149 398 465
Vehicular sensor Network 250 491 534
Industrial IoT 114 378 431
Service Discovery 170 419 489
Named Data Networking 121 386 423
SDN-NDN 110 427 498
D2D Communication 131 389 425
M2M Communication 108 389 411
UWB communication 124 495 510
5G Network Slicing 137 437 492
Delay Tolerant Network 105 469 533
Multi-Microgrid 111 326 379
Content-centric network 100 296 304
5G Beyond networks 131 379 409
Cloud-RAN 127 352 389
Fog-RAN 145 310 378
FANET 178 395 400
Cognitive adhoc network 153 325 363
Vehicular NDN 175 310 425
Multimedia sensor network205 275 315
V2X communication 151 200 308
Software-defined WSN 176 248 358
5G 201 289 365
Fibre Channel / Cellular / 5G topics
Cellular Networks 185 235 397
CRN 204 268 348
IoT 163 287 395
Intrusion Detection system110 257 348
LiFi 101 279 386
LTE 159 208 345
MANET 175 247 395
MIMO 142 298 354
Mobile Computing 114 254 308
RPL 189 275 357
SDN 109 258 346
VANET 152 278 359
Vertical Handover 108 241 367
Wireless Body Area Network121 198 348
Wireless Communication 178 248 371
Wireless Sensor Networks106 213 369
NS3 Research
Professional guidance and complete assistance for your ns-3 simulation research and development.

Complete NS-3 Simulation Support

Contact

End-to-End Project Assistance

From Topic selection to Final submission support.

Code Debugging & Error Fixing

Fix build errors, runtime issues, and simulation crashes.

Scenario Design & Custom Topologies

Create real-time research-based network scenarios.

Performance Optimization

Improve simulation efficiency and execution time.

Thesis & Journal Paper Support

Help with result interpretation, graphs, and documentation.

Online Demo & Explanation Support

Project explanation for viva, review, and presentations.

Network Communication Domains

Your Trusted Your Trusted Your Trusted NS-3 Research Companion

Your one-stop solution for NS-3 protocols, routing strategies, and parameter optimization—fully tailored to your research needs.

  • Physical Layer
  • Data Link Layer
  • Network Layer
  • Transport Layer
  • Session Layer
  • Presentation Layer
  • Application Layer
  • Traffic Analysis Attack
  • Sniffer Attack
  • SS7 Attack
  • DDoS
  • Spoofing Wireshark
  • Ping Sweep Attack
  • Packet Injection
  • Network Probe Attack
  • ICMP Attack
  • ICMP Redirect Attack
  • Passive Attacks
  • Botnets
  • Eavesdropping Attack
  • Wireless Attacks
  • Internet Attacks
  • Hello Flood Attack
  • Hping3 SYN Flood Attack
  • Intrusion Attacks
  • Active Attacks
  • Password Sniffing Attacks
  • Packet Flooding Attack
  • Birthday Attack
  • Fragmentation Attack
  • Ransomware Attack
  • Firewall Attack
  • Teardrop Attack
  • Masquerade Attack
  • Quench Attack
  • Bus Topology
  • Star Topology
  • Ring Topology
  • Mesh Topology
  • Tree Topology
  • Hybrid Topology
  • Point-to-Point Topology
  • Point-to-Multipoint Topology
  • Daisy Chain Topology
  • Fully Connected Topology
  • Partial Mesh Topology
  • Extended Star Topology
  • Hierarchical Topology
  • Line Topology
  • Circular Topology
  • Grid Topology
  • Cellular Topology
  • Cluster Topology
  • Peer-to-Peer Topology
  • Overlay Topology
  • Logical Topology
  • Physical Topology
  • Wireless Mesh Topology
  • Fibre Channel Arbitrated Loop (FC-AL) Topology
  • Token Ring Topology
  • Dual Ring Topology
  • Flat Topology
  • Mixed Topology
  • Zigbee Topology
  • Network-on-Chip (NoC) Topology
  • Switched Mesh Topology
  • Irregular Topology
  • Bus-Star Hybrid Topology
  • Hierarchical Star Topology
  • Ring-Mesh Hybrid Topology
  • Star-Bus Hybrid Topology
  • Extended Bus Topology
  • Wireless Topology
  • Bluetooth Topology
  • Fiber Optic Topology
  • Network traffic analysis
  • Network Routing
  • Network designs optimization
  • Network Topology
  • QoS Attainment
  • QoE Attainment
  • Physical layer technologies
  • Network Security Analysis
  • Multi-RAT
  • AP Selection
  • Delay Assessment
  • Packets Transmission
  • Mobility Handoff Management
  • Mobility Management
  • Distributed Systems
  • Energy Management
  • Channel Equalization
  • Trust model
  • Clustering
  • MAC protocol design
  • 3D Beam alignment
  • Blockage mitigation
  • Offloading
  • Data fusion
  • Bundling protocols
  • DTN data management
  • DTN architectures
  • DTN prototypes
  • Network Content Sharing
  • Data Synchronization
  • Trust Models Design
  • IP Addressing
  • Namespaces
  • PID Management
  • Rendezvous, Discovery
  • Bootstrapping
  • Data Transmission Privacy
  • Social Network Analysis
  • Ransomware Target
  • StableBitcoins
  • Interoperability
  • Consensus Protocol Design
  • Protocol Optimization
  • Lightweight Blockchain Design
  • VNFs Orchestration
  • Containerized Services
  • Quantum Communication
  • Physical Layer Communication
  • NFV Communication
  • Scalability Improvement
  • Network Softwarization
  • Interact Different Networks
  • Fusion of Fronthaul
  • Backhaul
  • Small Cell Nets
  • Allocation in HetNets
  • slicing HetNets
  • Interoperability B5G
  • Coexistence of OFDMA
  • NAMO
  • Traffic differentiation
  • Traffic Offloading
  • M2M Radio Link
  • Mesh Communication
  • Sensor Management
  • Device Management
  • Spectral Efficiency
  • Network Resource Allocation
  • Cross Layer Design
  • Multimedia Transmission
  • Next Generation
  • Channel Rate Adaptation
  • Multi-Hop Energy
  • Flying Vehicle Communication
  • Submarine Data Transmission
  • Visual MIMO
  • Large-Scale Networks
  • mmWave
  • Node Deployment
  • OSI layers Security
  • Trust based Routing
  • Reputation based Routing
  • Network Port Access
  • Multi-level Firewall
  • En-Route Filtering
  • End-to-End Encryption
  • Radio Fingerprinting
  • Scalable Parameterization
  • Channel Interference Avoidance
  • Radio Resource Allocation
  • Frequency Hopping
  • Data Suppression
  • Data Compression
  • Beamforming
  • Multimedia Routing
  • Cell Sectorization
  • Satellite Constellations 5G
  • Satellite Constellations B5G
  • AI based Resource Allocation
  • Energy Harvesting
  • Energy Consumption
  • Route Readjustment
  • Path Prediction
  • Mobile Sink Location
  • Relocation
  • Intelligent Agents Deployed
  • 3D Wireless Sensor Modeling
  • 4D Wireless Sensor Modeling
  • 6TiSCH Sensors Communication
  • TSCH based Sensors Communication
  • New Waveform
  • Channel Modeling
  • Spectrum Allocation
  • Energy Harvesting in URLLC
  • Energy Harvesting eNBB
  • Security Preservation
  • Bio-Inspired Routing
  • Deep Learning based Routing
  • Route by Hybrid Protocols
  • Routing Protocols Design
  • Multi-Criteria based Routing
  • Network Structure
  • Topology based Routing
  • MIMO Routing
  • Hybrid Beamforming
  • Interference Management
  • Channel Characterization
  • Pilot Contamination
  • 3D Channel Modeling
  • HD Video Streaming
  • Mobile Data Networking
  • Carrier Aggregation
  • Channel Aggregation
  • Packet Scheduling
  • Scheduling Cell Resource
  • Uplink Synchronization
  • Downlink Synchronization
  • QoS aware Routing
  • QoS aware Clustering
  • 3D MANET Massive Users
  • 4D MANET Massive Users
  • Interoperability to D2D
  • Interoperability Cloud
  • Interoperability 5G
  • MANET-IoT
  • Massive Channel Access
  • H&off Management
  • Video Traffic Scheduling
  • Secondary Users Routing
  • PUEA Detection
  • Spectrum & Power Allocation
  • Error Control & Fault Prediction
  • Dynamic Spectrum Access
  • Channel Scheduling
  • Channel Sensing
  • Relay Selection
  • Power Allocation
  • Coverage Improvement
  • Capacity Improvement
  • Power allocation
  • scheduling
  • Content Dissemination
  • VSN
  • Mobile Sensing
  • Network Collision Avoidance
  • Traffic Congestion Info
  • Systems on a chip
  • Optical fibers
  • line switching
  • Passive optical networks
  • Rapid fault handling
  • Optics in 5G networks
  • Satellite optical
  • Low earth orbit satellite
  • M2M satellite communication
  • Heterogeneous satellite-cooperative
  • Hybrid satellite terrestrial relay network
  • Inter-satellite Optical communication
  • DWDM in Fiber
  • Packet Switching
  • Optimal Routing
  • Optical Visual MIMO
  • Burst Loss Probability
  • Flexible Branching
  • Path planning AUV
  • cluster transmission
  • Prediction sensor location
  • Range Free Localization
  • Gateway Placement
  • Mobility Control
  • Adjustment of power
  • Demodulation
  • ISI mitigation
  • Reactive obstacle prediction
  • Localization schemes
  • Channel coding
  • Aggregation
  • Co-channel interference
  • Nearest Antenna Selection
  • Spatial Modulation
  • PAPR Mitigation
  • Multiple Access
  • Filtered OFDM
  • MAC Frame Design
  • In-body, On-body & Off-body
  • Emergency Data Prediction
  • Remote Patient Monitoring
  • Energy Aware Resource Allocation
  • Power Optimized Data Transmission
  • Flow Rule Placement
  • Multimedia Flows Routing
  • Buffer Management
  • Network Traffic Analysis
  • Dynamic Offloading
  • Controller Placement
  • Emergency Message Dissemination
  • Vehicle Traffic Analysis
  • Network Penetration Testing
  • Security Information and Event Management
  • Network Threat Intelligence
  • Task Offloading Decision
  • Traffic aware Routing
  • Network Privacy
  • DODAG Fault Tolerance
  • Network Traffic Balancing
  • Traffic Control
  • Congestion Control
  • Mobility Control
  • Network Incident Response
  • Service Discovery
  • Network Design and Architecture
  • Network Management
  • Network Performance Analysis
  • Network Monitoring
  • Network Troubleshooting
  • Network Privacy
  • Network Anonymity
  • Network Secure Shell
  • Network Telnet
  • Video Conferencing
  • Network Telepresence
  • Collaboration Tools
  • Network Cloud Storage
  • Network Wireshark Analysis
  • Network Packet Tracing
  • Network Business Continuity
  • Network Traffic Shaping
  • Autonomous Network Management
  • Internet Governance
  • Secure Multi-Party Computation
  • Network Service Chaining
  • Network Slicing
  • Network Microsegmentation
  • Network Coding
  • Cross Layer Design
  • Network Neutrality
  • Network Edge Intelligence
  • Machine Learning for Network Optimization
  • Network Analytics
  • Network Digital Twins
  • Network Service Orchestration
  • Network Policy Based Management
  • Network Intent Based Networking
  • Virtualized Security
  • Ransomware Detection
  • Anti-forensic Techniques
  • Malware Detection
  • Virus Detection
  • Access Control
  • Privacy Control
  • Insider Threat
  • Intrusion Detection
  • Attacks Mitigation
  • Node Authentication
  • Behavioral Detection
  • Multi-Attacks Detection
  • Threats Analysis
  • Multi-Factor Authentication
  • CoC Preservation
  • Types of Forensics
  • Refine Forensics Architecture
  • SDN Forensics
  • IaaS Cloud Forensics
  • Lightweight Architecture
  • Public Key Cryptography
  • Symmetric Key Cryptography
  • Identity based Cryptography
  • Certificateless Cryptography
  • Cryptographic Hashing
  • Lightweight Cryptography
  • Fiber Optical Security
  • ANN based Steganography
  • Internet Traffic Transforming
  • Blockchain based IDS
  • Anomaly based IDS
  • Hybrid Signature
  • Retraining Massive Data
  • Source Location Privacy
  • Phishing Defense
  • Network Disaster Recovery
  • Network Security Architecture
  • Network Security Engineering
  • Network Security Operations
  • Network Security Awareness
  • Network Cybersecurity Frameworks
  • Network Cybersecurity Policies
  • Network Cybersecurity Compliance
  • Network Cybersecurity Auditing
  • Network Threat Hunting
  • Network Penetration Testing Methodologies
  • Network Vulnerability Assessment
  • Network Risk Assessment
  • Network Security Posture
  • Security Metrics
  • Industrial Control Systems Security
  • SCADA Network Security
  • Data Security
  • Privacy Protection
  • Application Security
  • Web Security
  • Mobile Security
  • Cloud Security
  • Endpoint Security
  • Identity and Access Management (IAM)
  • Zero Trust Security
  • Secure Coding Practice
  • Antivirus and Anti-malware
  • Security Architecture
  • Advanced Persistent Threats
  • Cyber-Physical Systems Security
  • Industrial Control Systems Security
  • SCADA Security
  • IoT Security
  • Bring Your Own Device Security
  • Blockchain Security
  • Quantum Cryptography
  • Autonomous Vehicle Security
  • Cybersecurity in Healthcare
  • Cybersecurity in Finance
  • Cybersecurity in Education
  • Cybersecurity in Government
  • Cybersecurity in Retail
  • Cybersecurity in Telecommunications
  • Artificial Intelligence Security
  • Machine Learning Security
  • Cybersecurity in Big Data
  • Cybersecurity in Cloud Computing
  • Cybersecurity in Edge Computing
  • Fog Computing Security
  • Serverless Computing Security
  • Cybersecurity in 5G Networks
  • Wireless Security
  • Security in E-Commerce
  • Security Incident Management
  • Insider Threat Management
  • Cyber Espionage
  • Cyber Warfare
  • Cybersecurity in Supply Chain Management
  • Cybersecurity in Manufacturing
  • Cybersecurity in Renewable Energy Systems
  • Embedded Systems Security
  • Firmware Security
  • Biometric Security
  • Mobile Application Security
  • Next-Generation Firewalls
NS3 Worldwide Support

Enquire Now