Täiustatud tüübisüsteem privaatsusteadlikule programmeerimiskeelele ja selle praktilised rakendused
Date
2016
Authors
Journal Title
Journal ISSN
Volume Title
Publisher
Abstract
Privaatseid andmeid on tarvis analüüsida või töödelda mitmes valdkonnas, näiteks tehes poliitilisi otsusi kasutades riiklikke andmekogusid või pakkudes pilvepõhiseid teenuseid. Sharemind on raamistik turvalisust säilitavate rakenduste arendamiseks, mis võimaldab andmeid analüüsida ilma üksikuid väärtuseid avaldamata. Sharemind kasutab selleks turvalise ühisarvutuse tehnoloogiat. Sharemindi raamistikku kasutavad programmid on kirjutatud programmeerimiskeeles nimega SecreC. Sharemind ja SecreC toetavad erinevaid turvalise ühisarvutuse meetodeid, mida nimetame turvaaladeks. Erinevatel turvaaladel on erinevad turvagarantiid ja efektiivsus ning turvaala valik sõltub konkreetse rakenduse vajadustest, mistõttu peaks SecreC toetama erinevate turvaalade kasutamist vastavalt rakenduse nõuetele. Töö eesmärk on võimaldada SecreC keelele turvaalade lisamist lubades programmeerijal kirjeldada turvaala andmetüübid, aritmeetilised tehted ja tüübiteisendused SecreC keeles. Töö autor lõi keele täiendustele formaalselt kirjeldatud tüübisüsteemi, teostas muudatused SecreC kompilaatoris, kirjeldas muudatuste praktilisi rakendusi, tekkivaid uusi probleeme ja nende võimalikke lahendusi.
Confidential data needs to be processed in many areas, for example when making policy decisions using goverment databases or when providing cloud-based services. Sharemind is a framework for developing privacy-preserving applications which allows data to be analysed without revealing individual values. Sharemind uses a technology called secure multi-party computation. Programs using the Sharemind framework are written in a programming language called SecreC. Sharemind and SecreC are designed to support multiple secure multi-party computation methods which we call protection domain kinds. Different protection domain kinds have different security guarantees and performance characteristics and the decision about which one to use depends on the problem at hand which means SecreC should support different protection domain kinds that solve the needs of different applications. The goal of this thesis is to make it easier to add protection domain kinds to the SecreC language by allowing the programmer to define the protection domain kind data types, arithmetic operations and type conversions in the SecreC language without changing the compiler. The author developed a formal type system for the proposed language extensions, implemented them in the SecreC language compiler, described practical applications, open problems and proposed solutions.
Confidential data needs to be processed in many areas, for example when making policy decisions using goverment databases or when providing cloud-based services. Sharemind is a framework for developing privacy-preserving applications which allows data to be analysed without revealing individual values. Sharemind uses a technology called secure multi-party computation. Programs using the Sharemind framework are written in a programming language called SecreC. Sharemind and SecreC are designed to support multiple secure multi-party computation methods which we call protection domain kinds. Different protection domain kinds have different security guarantees and performance characteristics and the decision about which one to use depends on the problem at hand which means SecreC should support different protection domain kinds that solve the needs of different applications. The goal of this thesis is to make it easier to add protection domain kinds to the SecreC language by allowing the programmer to define the protection domain kind data types, arithmetic operations and type conversions in the SecreC language without changing the compiler. The author developed a formal type system for the proposed language extensions, implemented them in the SecreC language compiler, described practical applications, open problems and proposed solutions.