Funkční šifrování pro kvadratické funkce
Functional encryption for quadratic functions
bakalářská práce (OBHÁJENO)

Zobrazit/ otevřít
Trvalý odkaz
http://hdl.handle.net/20.500.11956/174176Identifikátory
SIS: 239288
Kolekce
- Kvalifikační práce [11325]
Autor
Vedoucí práce
Oponent práce
Růžička, Pavel
Fakulta / součást
Matematicko-fyzikální fakulta
Obor
Obecná matematika
Katedra / ústav / klinika
Katedra algebry
Datum obhajoby
16. 6. 2022
Nakladatel
Univerzita Karlova, Matematicko-fyzikální fakultaJazyk
Čeština
Známka
Výborně
Klíčová slova (česky)
Funkční šifrování|Aritmetické větvící programy|Partial GarblingKlíčová slova (anglicky)
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