Evoluce kryptograficky spolehlivých booleovských funkcí

Abstract
Jednou z vlastností, vyžadovaných ve všech moderních digitálních systémech, je kryptografická bezpečnost. Tato bezpečnost je zajišťována různými typy šifer, které musí být důmyslně sestaveny ze stavebních bloků, známých jako kryptografická primitiva. Jedním z těchto primitiv jsou kryptograficky spolehlivé booleovské funkce. Funkce s dobrými, nebo dokonce optimálními, kryptografickými vlastnostmi jsou velmi vzácné, a protože vyhodnocování těchto vlastností je časově náročné, je extrémně obtížné tyto funkce najít. Dále, protože jsou objevovány stále nové typy kryptografických útoků, a protože výpočetní výkon moderních počítačů se neustále zvyšuje, nestačí objevovat jen nové konkrétní funkce. Místo toho je nutné vyvíjet nové, účinnější metody jejich návrhu, schopné generovat stálý přísun nových, jedinečných funkcí. V ideálním případě způsobem, který je rychlý, levný, efektivní, a který se neomezuje na funkce z nějaké malé podmnožiny všech možných kryptografických funkcí s danými vlastnostmi. Tato práce se zaměřuje na jeden ze dvou hlavních způsobů návrhu booleovských funkcí, obecně na heuristické vyhledávání pomocí evolučních algoritmů a konkrétně na genetické programování. Nejprve ukazuje, že tuto úlohu je možné snadno paralelizovat na více procesorech pomocí ostrovního modelu i modelu zaměstnavatel-pracovník. Dále zkoumá několik variant genetického programování (stromové, kartézské a lineární), aby ukázala, že jsou pro řešení této úlohy vhodnější než ostatní typy evolučních algoritmů, a že všechny tři tyto varianty jsou konkurenceschopné. Žádná z nich není striktně lepší než ostatní a její ideální výběr závisí na tom, jaká konkrétní podmnožina kryptografických vlastností je od navrhované funkce vyžadována. Pro ověření správnosti těchto závěrů byl proveden návrh několika typů jedno-výstupových kryptograficky spolehlivých booleovských funkcí, s využitím v proudových šifrách, a maskovacích funkcí, poskytujících ochranu proti útokům postranními kanály. Závěrem práce také ukazuje, že evoluční návrh booleovských funkcí lze zkombinovat s metodami z druhého hlavního způsobu jejich návrhu, známými jako algebraické konstrukce. Za tímto účelem byl navržen nový, sémantický genetický operátor mutace pro návrh jednoho konkrétního typu booleovských funkcí, známých jako ohnuté funkce, který vedl k masivnímu zlepšení efektivity jejich návrhu.
Cryptographic security is a property required in all modern-day digital systems. This security is provided by various types of ciphers, which need to be thoughtfully constructed from building blocks known as cryptographic primitives, one of which are the cryptographically sound Boolean functions. Functions with good or even ideal cryptographic properties are extremely rare, and evaluating their properties is a time-consuming process. This makes them extremely difficult to find. Furthermore, as new types of cryptographic attacks are discovered, and as the processing power of modern computers steadily increases, it is not enough to discover new individual functions. Instead, it is necessary to develop new and more efficient design methods, capable of generating a steady supply of new and unique functions. Ideally, in a way that is quick, cheap, efficient, and not constrained to any small subset of all possible Boolean functions with the desired cryptographic properties. This thesis focuses on one of two main approaches to designing Boolean functions a heuristic search via evolutionary algorithms, in general, and genetic programming, in particular. First, it shows that the task can be easily parallelized on multiple processors, via an island or employer-worker model. Next, it examines multiple variants of genetic programming (tree-based, Cartesian, and linear), to show that they are more suitable for this task than other types of evolutionary algorithms and that all three of these variants are competitive. None of them is strictly better than the others, and the ideal choice depends on the specific subset of required properties. To verify these observations we design multiple types of single-output cryptographically sound Boolean functions, usable in stream ciphers, and masking functions useful for defense against side-channel attacks. Lastly, the thesis shows that the evolutionary design of Boolean functions can be combined with the other main design approach, known as algebraic construction. To do this, we propose a new semantic genetic mutation operator for the design of one specific type of Boolean functions, known as bent functions, which resulted in a massive improvement in the efficiency of the design process.
Description
Citation
HUSA, J. Evoluce kryptograficky spolehlivých booleovských funkcí [online]. Brno: Vysoké učení technické v Brně. Fakulta informačních technologií. .
Document type
Document version
Date of access to the full text
Language of document
en
Study field
Výpočetní technika a informatika
Comittee
prof. Dr. Ing. Jan Černocký (předseda) doc. Ing. Jan Hajný, Ph.D. (člen) prof. RNDr. Ing. Martin Holeňa, CSc. (člen) prof. RNDr. Václav Matyáš, M.Sc., Ph.D. (člen) prof. Ing. Pavol Zajac, Ph.D. (člen)
Date of acceptance
Defence
The student presented the goals and results, which he achieved within the solution of the dissertation. The student has competently answered the questions of the committee members and reviewer. The discussion is recorded on the discussion sheets, which are attached to the protocol. Number of discussion sheets: 4 The committee recommends awarding the thesis the deans prize.
Result of defence
práce byla úspěšně obhájena
Document licence
Standardní licenční smlouva - přístup k plnému textu bez omezení
DOI
Collections
Citace PRO