Version 58 (modified by Matthäus Wander, 10 years ago) (diff)


Open tasks

This page lists open tasks which can be performed by students with no previous experience with CT2. The proposed tasks are grouped into the following categories:

  • Thesis -- tasks which may be suitable for a bachelor, master or diploma thesis.
  • Project -- tasks which probably require an effort of a couple of weeks, but which do not qualify as a thesis topic. Tasks may be combined to a single project if one task proves to be less comprehensive than expected.
  • Week -- tasks which can be performed within one or at most two weeks, for example as homework or as test task to figure out whether a candidate is qualified to perform major CT2 tasks.

Note: The grouping is a rough estimation to collect ideas. Before assigning a task it's the tutor's duty to verify whether the task actually is suitable for the student.


  • Visualization and advanced cryptanalysis of Enigma
  • SIGABA encryption, visualization and cryptanalysis
  • Any hash function from SHA-3 contest, for the weak ones preferably with an attack sample (overview) -- e.g. MD6 implementation (Spec)
  • Straddling Checkerboard, Ché Guevara, Boconian and their according cryptanalysis
  • Steganography visualization of different methods of steganography. (Example)
  • Implement the current status of cryptanalysis against hash algorithms. Show the effectiveness against reduced algorithms (explain collision resistance, 1st and 2nd preimage)
  • Visualize hash functions (e.g. SHA1) in a modern way (not only the sensitivy and changes at the resulting hash value, but all changed bits after each step or round). See here
  • Implement all major algorithms on permutations in CT2. See 1 and 2. This discusses the six major types of combinatorial collections with examples and formulas for counting. Expands with a C# generics-based set of classes for enumerating each meta-collection.
  • NTRU: implement, analyze, document (online help in English and one further language)
  • McElize: implement, analyze, document (online help in English and one further language)
  • Cryptanalysis with neural networks or artificial intelligence. See here and here.
  • Implement the full cryptanalysis toolbox used to crack Simon Singh's contest. See How We Cracked the Code Book Ciphers by Fredrik Almgren, Gunnar Andersson, Torbjörn Granlund, Lars Ivansson, Staffan Ulfberg
  • Implementation of current cryptanalytical successes like RFID, WLAN, MiFare, Crypto1, A5/1 ... For more details on the cryptoanalytical successes read the proceedings of current conferences, e.g. see here.
  • Bar code and matrix codes: implement and visualize them. Also analyze scanned bar codes.
  • Identity-based encryption (IBE) according to C. Cocks, based on quadratic rescues. Implement, analyze, document (online help in English and one further language)
  • Import and export Cryptographic Keys in PKCS#8 and X.509 formats, see also
  • Describe and characterize the variants of cryptographic signatures and implement/visualize/document some of the them like blind signatures. An extension could be to implement applications like electronic cash and voting systems to describe and implement them from a cryptanalytic perspective.
  • We are also open for other suggestions.


  • HexEditor (#11)
  • Authoring tool for online help (#4)
  • Enhance the frequency test with a tabular presentation (similar to CT1) and a comparative feature: two text-inputs should be compared, the primary one is displayed as a chart, and the color of each bar is green if it matches the second input and red if not (and the entire color-span inbetween for matching values from good to bad). In case no secondary input is provided, standard english or german should be used for comparision
  • TextEditor (AvalonEdit)
  • Fuzzy string search (Example, Wikipedia)
  • Enhance existing WordPatterns plugin (see comments in source code)
  • Build wrapper around BouncyCastle C#, or maybe around Crypto++ (latter is more powerful, but C++)
  • Statistical tests for randomness (see NIST), maybe a new random number generator (see existing one first), see also 1, 2, 3, 4, 5, 6, 7
  • Measure password strength
  • Google Search (Input: Text search string, Output: Hit count)
  • Man-in-the-Middle-Plugin to modify traversing data
  • Improve SimpleEditor to resemble the classical interface of CrypTool 1


  • Create foreach plugin (takes array input, outputs single objects)

Assigned tasks

  • Network sniffer (#32): Matthäus Wander, Uni Due
  • Full Internationalization / Localization (#127): Sven Rech, Florian Marchal
  • Lorenz SZ42 encryption: Implement and analyze. Integrate in CT2 a C# version of the ADA code of the winner from here. Assigned to: Wilmer Daza

Finished tasks

  • ArrayIndexer (retrieve one object via numeric index from an array): Christian Arnold, Uni Due
  • LengthOf (get length of string or array): Christian Arnold, Uni Due
  • Check whether the plugin templates work: Matthäus Wander, Uni Due
  • Create plugin similar to Substring (or enhance Substring) which cuts CryptoolStream and/or byte[] (see CRC32-sample for usage scenario): CT2 Team Transposition, Uni Due
  • Create ButtonTrigger plugin which fires a bool output when user clicks a buttonj: CT2 Team Transposition, Uni Due
  • Create regular expression plugin(s), for example match and replace (see System.Text.RegularExpressions): CT2 Team Transposition, Uni Due
  • Combine Stream/String converters (add byte[] type): CT2 Team Distributed Cryptanalysis, Uni Due
  • Create all cost functions used in enigma as plugins (i.e. entropy, log2-trigrams..): CT2 Teams Distributed Cryptanalysis & Transposition, Uni Due
  • MD5 collider: Holger Pretzsch, Uni Due
  • Nihilist: Fabian Enkler
  • Vigenère-Autokey: Dennis Nolte, Uni Due
  • Concept for (semi-)automatic plugin testing: Matthäus Wander, Uni Due