Tööriist sümmeetriliste primitiivide formaalseks analüüsiks

Date

2012

Journal Title

Journal ISSN

Volume Title

Publisher

Tartu Ülikool

Abstract

Tänapäeva maailmas on krüpograafia laialt kasutusel, et turvata elektroonilist sidet. Seega on oluline, et vastavad krüptograafilised algoritmid oleksid tõestatavalt turvalised. Krüptograafiliste protokollide ehitamiseks kasutatakse krüptograafilisi primitiive ja terve protokolli turvalisus tõestatakse vastavate primitiivide turvalisusle tuginedes. Sümmeetrilised primitiivid kasutavad ühte salajast võtit nii krüpteerimiseks kui ka dekrüpteermiseks ja on kiiremad kui asümmeetrilised primitiivid. Seetõttu kasutatakse sümmeetrilisi primitiive paljudes protokollides ja seega on vaja leida vastavatele primitiividele turvatõestused. Üks võimalus turvatõestuste kirjutamiseks on kasutada krüptograafiliste mängude põhist tõestamist. Krüptograafilised mängud modelleerivad primitiive kindlas keskkonnas, kus leidub vastane. Mängude põhise tõestamise abil kirjutatakse esialgne mäng ümber nii, et primitiivi turvalisust oleks lihtsam tõestada. Selline tõestamise meetod on keeruline, kuna see nõuab palju ümberkirjutamist. Lisaks sellele võib mängude ümberkirjutamisel tekkida tõestusse vigu. Antud olukorra lahendamiseks kasutatakse tööriistu, mis abistavad tõestuse läbiviimist. Antud magistritöö teemaks on tööriista arendamine, mis aitab mängude põhiseid tõestusi läbi viia sümmeetriliste primitiivide jaoks. Vastava tööriista nimi on ProveIt ja see lubab modifitseerida krüptograafilisi mänge, kasutades kindlaid tõestuse skeeme. Vastava tõestusskeemi rakendamist nimetatakse transformatsiooniks. Minu eesmärgiks oli lisada antud programmis kasutatavale keelele semantika ja kasutada seda semantikat erinevate transformatsioonide lisamiseks programmi ProveIt. Magistritöö käigus implementeerisin ProveIt jaoks järgnevad transformatisoonid: Dead Code Elimination, Statement Switching, Remove Condition, Replace Function Call, Wrap ja Random Function Simulation. Surnud koodi eemaldamiseks oli vaja implementeerida elusate muutujate analüüs. Enne transformatsiooni implementeerimist tuleb tõestada vastav turvalisuse garantii ning seetõttu tõestasin magistritöös käsitletud trasformatsioonidele vastavad turvalisuse teoreemid. Edasise tööna tuleb ProveIt lisada keerukamaid transformatisoone, et võimaldada keerukamate turvatõestuste läbiviimist.
The master thesis is about improving a tool that is used for analyzing the security of symmetric primitives. This tool is named ProveIt and it can help researchers to verify the correctness and security of protocols that use symmetric primitives. Symmetric primitives are low-level symmetric-key al- gorithms. When given such protocol, the probability of breaking its security can be found by doing a finite number of reductions. However, it is not convenient to do such proofs on paper and therefore a tool can assist the researcher. ProveIt lets the user to choose which reductions to do on a given protocol. After parsing a protocol into an abstract syntax tree, ProveIt lets the user to transform the initial protocol one step at a time in order to find the probability of a successful attack against it. After a finite number of reductions the proof is complete and the probability of a successful attack is found. However, currently ProveIt is able to do only a few reductions and this limits the usability of the tool. The goal of this thesis is to add new reductions to ProveIt so that it would be possible to work with this tool using common techniques for proving the security of symmetric primitives. In order to add reductions to ProveIt it is necessary to analyze different symmetric primitives to find out which reductions are required. In the thesis we describe the necessary subset of transformations that are required for doing reduction based proofs. We show where different transformations can be applied and define how they change the security game. We prove for each transformation how they change the security game. After giving a proof we can describe how we implemented the transformations in ProveIt. As a result of this thesis ProveIt will have the basic functionalities re- quired for doing the security proofs of symmetric primitives. Besides that, all the implemented reductions have been analyzed and their effect to the security game has been proved.

Description

Keywords

Citation