Coder Social home page Coder Social logo

farmers-tan / cwtoolkit Goto Github PK

View Code? Open in Web Editor NEW

This project forked from scls19fr/cwtoolkit

0.0 1.0 0.0 155 KB

Morse code toolkit including decoder and statistics generator, and transmitter with optional inclusion of statistical characterization and noise. Now includes a covert channel

License: GNU General Public License v3.0

Python 100.00%

cwtoolkit's Introduction

cwtoolkit version 0.3b

joshua davis (cwtoolkit -*- covert.codes)

Introduction

This was designed for Linux, with Python 2.7. This software was created for proof-of-concept demonstration of a covert channel. This is not production grade. It does do a pretty good job of encoding, and decoding as long as the input isn't too noisy. It does have the capability of forming statistics from the CW message, which may be unique among such systems. If you have trouble using the decoder, adjust the amplification, offset, and other relevant parameters.

Required packages include: numpy, scipy, and scikits.audiolab

cwstats.py: Decode and generate statistics for Morse code from a wav audio file. Statistics include the average and standard deviation for intervals (dots, dashes, voids).

cwtx.py: Generate Morse code and optionally apply statistical variation and noise to it. E.g. you can determine the statistics of a signal using cwstats.py, then apply those statistics to a computer generated message using this tool. Gaussian noise can be added with user defined parameters. The cwtxt.py statfile can be generated by cwstats.py (-o STATFILE). If statistics are given to cwtxt.py via the -s switch, it will ignore the -w wpm switch and generate 'characterized' output; that is, the signal elements will be formulated according to the statistics in STATFILE. We use a normal distribution for this.

Usage

The -h switch gives help for any of the commands.

The transmitter and receiver now include the capability to send covert messages. This is done by varying the timing of the overt (carrier) message. See -h for usage information.

Transmitting and recovering covert messages

Send a covert message like this: $ ./cwtx.py -m "this is a cover message" -o message.wav -s statfile -c "covert message" -k "secret"

The covert message must be shorter than the cover message.

Recovering a covert message is more difficult, due to sampling in digital systems, and radio effects on the signal. See the paper on http://covert.codes for a more detailed explaination.

First, try this:
$ ./cwstats.py -i message.wav -c statfile -k "secret"

Then mess with the tolerance and the filter. For a weak signal you may have to turn off the filter and reduce the tolerance, even to get the overt message:
$ ./cwstats.py -i message.wav -c statfile -k "secret" -n -t 0.9

References

http://www.kent-engineers.com/codespeed.htm
https://en.wikipedia.org/wiki/Morse_code

cwtoolkit's People

Contributors

scls19fr avatar

Watchers

James Cloos avatar

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.