GithubHelp home page GithubHelp logo

xorword's Introduction

xorword

How to run pipeline

  • Install just using cargo install just.
  • Execute just run to use the release code (faster).
  • On windows, you may have to set the default shell to powershell: just --shell powershell.exe --shell-arg -c

The Input

A signature from a p0f sensor, alphanumeric+special characters string

The Algorithm

The code takes the following steps:

  1. removes whitespace, commas from the signature to get string S0

  2. converts the signature into binary (ascii to binary) as a Vec

  3. breaks it into 32 bit chunks (last chunk might be smaller than 32 bit in length, is padded with zeros at the beginning)

  4. XORs these chunks to get a final 32-bit string S1

  5. Then, for i=4 to 2^14, for j = 1 to 1000,

    • generate i length random alphanumeric string
    • concatenate it with string S0, get string T0
    • convert T0 to binary
    • break into 32 bit chunks, pad the last chunk to 32 if necessary
    • XOR these chunks to get 32-bit string T1
    • calculate hamming distance between T1 and S1
    • calculate average distance over 1000 iterations for each i
  6. Then the program plots average distance versus i (chars added).

Observation

The average distance is seen to be converging to 6. The code writes the output to a text file and uses plotly to generate a line graph, that automatically loads an interactive graph to the browser. Clicking on the camera icon on the top right downloads a png snapshot of the plot.

xorword's People

Contributors

purnatag avatar dilawar avatar

Watchers

 avatar

Forkers

dilawar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.