Scriptie 2025 · BSc Informatica

Representing Block Ciphers in a Computer Algebra System

  • Universiteit Leiden
  • Begeleiders: Nuša Zidarič en Nele Mentens

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.

[ 01 ]

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.

[ 02 ]

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.

[ 01 ]

Eindig veld

Symbolische AES-expressies opgebouwd uit bewerkingen over een eindig veld.

[ 02 ]

Vectorruimte

Dezelfde bewerkingen weergegeven als vectoren over F(2).

[ 03 ]

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.

[ 03 ]

Relevantie

  1. Waarden onderling vergelijken

    Doordat de package is ontworpen om met andere ciphers te worden uitgebreid, ontstaat de mogelijkheid ciphers wederzijds met elkaar te vergelijken.

  2. Cryptografische eigenschappen analyseren

    Booleaanse functies kunnen worden toegevoegd, waarmee eigenschappen als non-lineariteit, algebraïsche graad en algebraïsche immuniteit kunnen worden onderzocht.

  3. 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.

[ 04 ]

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
Afronding

Diploma-uitreiking

Uitreiking van het bachelordiploma aan de Universiteit Leiden
De uitreiking van het bachelordiploma, Universiteit Leiden.
Downloaden

De volledige scriptie

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