wiki:StudentTasksProposals

Version 42 (modified by Arno Wacker, 12 years ago) (diff)

Added thesis about cryptanalysis with neural networks

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.

Thesis

  • 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)
  • Vigenère-Autokey, Nihilist, Starddling 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 permuations in CT2. See 1 and 2. Tsis 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, here and here.

Project

  • 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
  • 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

Week

  • 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
  • Create all cost functions used in enigma as plugins (i.e. entropy, log2-trigrams..): CT2 Teams Distributed Cryptanalysis & Transposition, Uni Due