This is the brief summary of the Github repo: https://github.com/jl4730/BGPHijacking/, which is based on the mininet demo attack https://github.com/mininet/mininet/wiki/BGP-Path-Hijacking-Attack-Demo and a paper (https://www2.cs.arizona.edu/~bzhang/paper/07-dsn-hijack.pdf).
GP hijacking occurs when a malicious attackers or rogue AS advertises a false IP prefix that it does not own or control to reroute internet traffic. These vulnerabilities still cause routing disruptions and connectivity issues for individual hosts, networks, and sometimes entire countries.
BGP favors a shorter route to save money for the providers or to
decrease number of hops to an IP prefix.
For a hijack to be successful it must: A. Advertise a shorter route…
This post is a brief summary of the repo here https://github.com/jl4730/BellmanFordinDistanceVectorProtocol. The repo implemented the Bellman-Ford algorithm in the Distance Vector routing protocol. This project is very similar to the previous post about the Spanning Tree Algorithm, except that we are solving a routing problem here, not a switching problem. In this project, we will develop a distributed Bellman-Ford algorithm and use it to calculate routing paths in a network.
Here is the wiki link to the algorithm: [Bellman-Ford](https://en.wikipedia.org/wiki/Bellman%E2%80%93Ford_algorithm) For our project, the algorithm will be used to calculate the shortest path from one node to another. …
This is a brief summary of the repo https://github.com/jl4730/SpanningTreeAlgo, which developed a simplified distributed version of the https://en.wikipedia.org/wiki/Spanning_Tree_Protocol that can be run on an arbitrary layer 2 topology.
Using bridges to connect LANs fails if the network topology results in loops (cycles). In that case, the bridges loop through packets forever. The answer to this problem is excluding links that lead to loops by running the spanning tree algorithm. The goal of the spanning tree algorithm is to have the bridges select which links (ports) to use for forwarding eliminating loops.
The algorithm runs in “rounds” and at every round…
This weekend I studied an interesting topic on RSA, which is a public-key cryptosystem. I was intrigued by all the mathematical ideas and did some work on python implementation. This post is to share my understanding of it. Like my other posts, it is pretty elementary and is created for myself and other beginners only.
RSA is one of the most widely-used public-key cryptosystems in the world. It’s composed of three algorithms: key generation (Gen), encryption (Enc), and decryption (Dec). In RSA, the public key is a pair of integers (e, N), and the private key is an integer d.
Github repo: https://github.com/jl4730/GitProLearning
This summer I have helped the tech team with some simple tech tickets. Through which I have some exposure to SDE’s work: daily standup, scrum master, Jira ticket, stash repo, etc. It’s a lot of fun. I want to take this chance to summarize some basic commands used to help someone who never had such experience. This is not for experienced developers as the information here is super basic.
Here is a graph showing the branches. We can see some recent work based on the develop branch committed by colleagues.
Now we can create a branch based…
This post is to summarize the deep learning classes from Udacity Data Science Nano Degree Program. Github repo: https://github.com/jl4730/DeepLearning
This video above shows a simple 0/1 classification problem and how why gradually gets to the optimal classification line.
But most of the time we need to deal with more complicated problems with multiple classes and complicated classification boundaries (not a line, but a curve or something higher dimensional).
One-hot encoding is introduced to label the multiple classes before doing classification. And then softmax function will help give each category a probability after the model produced the result.
This post is to summarize the capstone project I did for Udacity Data Science Nano Degree Program. The goal of the project is to classify images of dogs according to their breed. CNN (Convolutional neural network) is the methodology used to achieve the target.
The link to the Github Repo is here: https://github.com/jl4730/DogBreed
The main task is to build an algorithm that accepts user-supplied images as input. If a dog is detected in the image, it will provide an estimate of the dog’s breed. …
A lifelong learner, always eager to learn more.