wiki:StudentTasksProposals

Version 49 (modified by Arno Wacker, 12 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.

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 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.
  • Lorenz SZ42 encryption: Implement and analyze. Integrate in CT2 a C# version of the ADA code of the winner from here.
  • Identity-based encyrption (IBE) according to C. Cocks, based on quadratic rescues. Implement, analyze, document (online help in English and one further language)

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