Representing Block Ciphers in a Computer Algebra System
In deze scriptie is een package voor een computeralgebrasysteem ontworpen waarmee symbolische representaties van blockciphers kunnen worden gegenereerd. De package biedt in eerste instantie symbolische AES-expressies, die zowel in eindige-veld representatie als in vectorvorm representatie kunnen worden opgevraagd. Daarmee ontstaan meerdere manieren om de interne bewerkingen van het encryptiealgoritme te visualiseren en te manipuleren.
Onderzoeksvraag
How can a computer algebra system package be designed to generate symbolic representations of block ciphers?
Cryptografie is in de kern een wiskundige discipline. De werkwijze van een blockcipher worden doorgaans gedefinieerd over eindige velden (Galois velden), waarbij elementen vanF(2^n) evengoed als vectoren over F(2) kunnen worden weergegeven. Beide interpretaties zijn geldig, maar zij leggen verschillende eigenschappen van dezelfde waarde bloot.
Waar een implementatie doorgaans bitstrings verwerkt, laat een symbolische representatie zien welke bewerking op welke invoer wordt uitgevoerd. Daarmee wordt het mogelijk de opbouw van een bitstring te bestuderen in plaats van enkel de versleutelde uitkomst ervan.
SYMSPN
Voor dit onderzoek heb ik een package ontwikkeld binnen GAP (Groups, Algorithms, Programming). GAP is gekozen omdat het een eigen programmeertaal bevat, specifiek ontworpen voor het werken met groepen, eindige velden en andere discrete algebraïsche structuren, en breed wordt gebruikt binnen het wetenschappelijke domein. De package draagt de naamSYMSPN, een samenvoeging van symbolic en substitution-permutation network.
Eindig veld
Symbolische AES-expressies opgebouwd uit bewerkingen over een eindig veld.
Vectorruimte
Dezelfde bewerkingen weergegeven als vectoren over F(2).
Uitbreidbaar
Zodanig opgezet dat andere algoritmen aan de package kunnen worden toegevoegd.
AES is als eerste toepassing gekozen omdat het één van de meest gebruikte ciphers ter wereld is: in 2001 gestandaardiseerd door NIST en tot op heden de standaard, vanwege de goede beveiliging, de hoge prestaties en de flexibiliteit ervan. Naast het ontwerp zijn in de scriptie ook het testen van de package beschreven.
Relevantie
Waarden onderling vergelijken
Doordat de package is ontworpen om met andere ciphers te worden uitgebreid, ontstaat de mogelijkheid ciphers wederzijds met elkaar te vergelijken.
Cryptografische eigenschappen analyseren
Booleaanse functies kunnen worden toegevoegd, waarmee eigenschappen als non-lineariteit, algebraïsche graad en algebraïsche immuniteit kunnen worden onderzocht.
Bruikbaar voor vervolgonderzoek
De opzet is bewust gericht op uitbreiding, zodat de package een bijdrage kan leveren aan het vakgebied — mede met het oog op post-quantumcryptografie.
Opbouw scriptie
- 1Introduction
- 2.2Mathematical Background — eindige velden, vectorruimten, Booleaanse functies
- 2.3Cryptography — SPN, AES, cryptografische eigenschappen
- 2.4Symbolic Computation and Computer Algebra Systems
- 3.2Designing SYMSPN — structuur en record of symbols
- 3.3Symbolic AES in a Finite Field
- 3.4Symbolic AES in a Vector Space
- 3.5Testing
- 3.6Profiling and discussion
- 4Future Work and Conclusion
Diploma-uitreiking

De volledige scriptie
Het volledige verslag, inclusief de wiskundige achtergrond, het ontwerp van de package en de appendix met code en voorbeelden.