Funkční šifrování pro kvadratické funkce
Functional encryption for quadratic functions
bachelor thesis (DEFENDED)
View/ Open
Permanent link
http://hdl.handle.net/20.500.11956/174176Identifiers
Study Information System: 239288
Collections
- Kvalifikační práce [10932]
Author
Advisor
Referee
Růžička, Pavel
Faculty / Institute
Faculty of Mathematics and Physics
Discipline
General Mathematics
Department
Department of Algebra
Date of defense
16. 6. 2022
Publisher
Univerzita Karlova, Matematicko-fyzikální fakultaLanguage
Czech
Grade
Excellent
Keywords (Czech)
Funkční šifrování|Aritmetické větvící programy|Partial GarblingKeywords (English)
Functional Encryption|Arithmetic Branching Programs|Partial GarblingV této práci se budeme zabývat funkčním šifrováním pro kvadratické funkce. Zprávu v podobě vektoru z chceme zašifrovat na otevřený text ct a vytvořit soukromý klíč skf pro kvadratickou funkci f tak, aby dešifrování ct vrátilo f(z), ale aby nešlo pomocí ct ani skf získat žádné informace o z. Představíme jednu konstrukci funkčního šifrování. Cílem bude připravit potřebné nástroje a pomocí nich tuto konstrukci detailně popsat a ověřit její korektnost. V práci představíme Aritmetické větvící programy. To jsou objekty, které nám pomohou uchopit a reprezentovat funkci f. Dále představíme Garbling a Partial garbling schémata. Ty nám pomohou se "znáhodněním" části šifrovacího algoritmu. Na závěr sestavíme šifrovací algoritmus, jehož výsledek lineárně transformujeme. Ten využijeme v hlavní konstrukci šifry pro systémy kvadratických funkcí. 1
In this thesis we will be studying functional encryption for quadratic functions. We want to encrypt a message, in form of a vector, z to a plaintext ct and create a secret key skf for a quadratic function f, which will allow us to decrypt ct to f(z), while the ct and skf will not leak any information about z. We will introduce one concrete design. The aim of this thesis will be the preparation of necessary preliminaries, which will allow us to describe the design, and to verify correctness of the algorithms. We will describe Arithmetic Branching Programs. Such objects will help us represent function f. Furthermore, we will introduce Garbling and Partial Garbling schemes. Those will allow us to "randomize"a part of the algorithm. We will also specify an encryption algorithm for linear transformation and use it to describe the main encryption algorithm for quadratic functions. 1