Version 29 (modified by Matthäus Wander, 12 years ago) (diff)

added week task

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.


  • MD6 implementation (Spec)
  • Visualization and advanced cryptanalysis of Enigma
  • Create a simple editor, which resembles the classical interface of CrypTool 1.
  • SIGABA encryption and visualization
  • Any hash function from SHA-3 contest, for the weak ones preferably with an attack sample (overview)
  • Vigenere-Autokey and cryptanalysis


  • Concept for (semi-)automatic plugin testing
  • 64 Bit support (see also #9)
  • Network sniffer (#32)
  • HexEditor (#11)
  • Replace commercial WPF components with open source ones (Dock, Ribbon, Navigation)
  • Authoring tool for online help (#4)
  • Full Internationalization / Localization (related to #63)
  • 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


  • Create all cost functions used in enigma as plugins (i.e. entropy, log2-trigrams..)
  • Create foreach plugin (takes array input, outputs single objects)

Assigned tasks

  • MD5 collider: Holger Pretzsch, Uni Due

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