Skip to content

rpicard/unfair

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

unfair

This tool generates a bunch of keystream data from stream ciphers and tracks the distribution of bytes at each position. The idea is to catch biases like those shown in RC4 here: http://www.isg.rhul.ac.uk/tls/biases.pdf

The interface and such is still in flux, but to test a new cipher you will basically add a ciphername_streamer.go file which will have a type for CipherName and implement the interface in main.go.

Usage: unfair -c [-f] [-s] [-l]

chart potential biases in stream cipher keystreams

Options:
  -f, --format="html"    output format (html or json)
  -c, --cipher=""        which cipher are we testing?
  -s, --samples="1000"   how many samples should we take?
  -l, --length="256"     how many positions in the keystream do we care about?

TODO

  • Write script to spin up lots of ec2 spot instances, run this tool and post the resulting .json file to s3

  • Make the sample generation parallel, and have it take advantage of all cores on the machine.

    I can't even tell if it's doing this at this point. It runs at the same speed on my 4 core machine and an ec2 machine with 36 cores. Slower on a micro instance though.

  • Polish up the information on the generated chart page.

  • Add the option to import the generated data from one or more json files

  • Give the tool a nice little CLI to set options like random key length, number of samples, etc.

  • Chart the probability of a byte showing up at a position instead of the number of times that byte showed up.

About

look for bias in stream cipher keystreams

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published