Skip to content
forked from aycwabtu/aycwabtu

AYCWABTU is a brute force control word calculation tool for the DVB common scrambling algorithm (csa) that finds keys in encrypted transport streams

Notifications You must be signed in to change notification settings

kluzas/aycwabtu

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AYCWABTU Improved

overview

AYCWABTU Improved is an improved version of the original AYCWABTU.

AYCWABTU is a proof of concept for a brute force control word calculation tool for the common scrambling algorithm used in digital video broadcasting.

AYCWABTU is not useful for live decryption of pay TV channels because the search for one key needs much more time than the key renewal interval. Majority of channels change keys multiple times a minute and AYCWABTU needs months to brute force one key. AYCWABTU is intended as proof of concept, and is not intended to be used for illegal purposes. The author does not accept responsibility for ANY damage incurred by the use of it.

It uses parallel bit slice technique. Other csa parallel bit slice implementations (like libdvbcsa) are meant for stream processing. They encrypt or decrypt many packets with one key. AYCWABTU uses parallel bit slice for decrypting one packet with many keys.

Performance Improvements over the original AYCWABTU

  • Different compiler flags for GCC compilation when using Linux
  • Added support for OpenMP
  • Small improvements on the code

Performance (Ryzen 1600 @3.6GHz) Linux gcc-6:

  • Initial version (Single threaded): 5 Mcw/s
  • Compiler flags and code cleanup(Single threaded): 7 Mcw/s
  • 6 OpenMP threads: 40 Mcw/s
  • 12 OpenMP threads (SMT): 41 Mcw/s

Performance (Ryzen 1600 @3.6GHz) Windows Visual Studio 2019:

  • Single threaded: 5 Mcw/s
  • 12 OpenMP threads (SMT): 30.671 Mcw/s

features

  • Open source. License: GPL
  • read three encrypted data packets from ts file with many checks for valid data
  • writes a small probe ts file with these packets for sharing and distributed attack
  • test frame included to make sure, it really finds the keys. Also suitable for other brute force tools
  • written in C. Developed in Visual Studio 2013, tested with gcc 4.8.2+cygwin 2.844
  • much potential for speed improvements

To do list

  • Improve the code quality
  • Support for 256 bits parallel with advanced vector extensions AVX
  • OpenCL support
  • Optimize the block sbox boolean equations. Only slightly faster with 128 bits. See da_diett.pdf Chpt. 3.1
  • Check, why aycw_block_sbox(&sbox_out) fails in gcc, possible speedup ~19%
  • block decrypt first (does not depend on stream). Then stream afterwards, stop XORing immediately if foreseeable there is no PES header

developers

  • after changing the code, run tests with SELFTEST enabled to make sure the algorithm still works. It's too easy to break things.
  • run "make test"
  • test all the batch size implementations
  • publish all your work please, AYCWABTU is released under GPL

credits

About

AYCWABTU is a brute force control word calculation tool for the DVB common scrambling algorithm (csa) that finds keys in encrypted transport streams

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 85.7%
  • Python 5.9%
  • C++ 3.6%
  • Perl 2.2%
  • Shell 1.5%
  • Makefile 0.6%
  • TypeScript 0.5%