Faglig Rapport. Udvalgte pointer angående secret sharing og multi-party computation. Fjerde faglige rapport til Rejselegat for matematikere



Relaterede dokumenter
Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Note omkring RSA kryptering. Gert Læssøe Mikkelsen Datalogisk institut Aarhus Universitet

Af Marc Skov Madsen PhD-studerende Aarhus Universitet

Køreplan Matematik 1 - FORÅR 2005

Sikre Beregninger. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Konfidentialitet og kryptografi 31. januar, Jakob I. Pagter

Camp om Kryptering. Datasikkerhed, RSA kryptering og faktorisering. Rasmus Lauritsen. August 27,

RSA Kryptosystemet. Kryptologi ved Datalogisk Institut, Aarhus Universitet

Matematik YY Foråret Kapitel 1. Grupper og restklasseringe.

Kryptologi 101 (og lidt om PGP)

Matematikken bag kryptering og signering NemID RSA Foredrag i UNF

Introduktion til Kryptologi

Opgave 1 Regning med rest

Kryptologi og RSA. Jonas Lindstrøm Jensen

Fejlkorrigerende koder, secret sharing (og kryptografi)

Affine rum. a 1 u 1 + a 2 u 2 + a 3 u 3 = a 1 u 1 + (1 a 1 )( u 2 + a 3. + a 3. u 3 ) 1 a 1. Da a 2

{ } { } {( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( ) ( )}

Taylors formel. Kapitel Klassiske sætninger i en dimension

4 Oversigt over kapitel 4

UENDELIG, MERE UENDELIG, ENDNU MERE UENDELIG, Indledning

Lad os som eksempel se på samtidigt kast med en terning og en mønt:

Lineære 1. ordens differentialligningssystemer

Fortroligt dokument. Matematisk projekt

Lineære normale modeller (1) udkast. 1 Flerdimensionale stokastiske variable

Kryptering kan vinde over kvante-computere

KRYPTOLOGI ( Litt. Peter Landrock & Knud Nissen : Kryptologi)

Integer Factorization

Pointen med Funktioner

Affine - et krypteringssystem

Pointen med Differentiation

Tue Tjur: Hvad er tilfældighed?

Her er et spørgsmål, du måske aldrig har overvejet: kan man finde to trekanter med samme areal?

Matematisk modellering og numeriske metoder. Lektion 16

Gult Foredrag Om Net

Noter til Perspektiver i Matematikken

Skriftlig Eksamen Algoritmer og Sandsynlighed (DM538)

Matroider Majbritt Felleki

Elementær Matematik. Mængder og udsagn

sætning: Hvis a og b er heltal da findes heltal s og t så gcd(a, b) = sa + tb.

Perspektiverende Datalogi 2014 Uge 39 Kryptologi

Om hypoteseprøvning (1)

Algebra - Teori og problemløsning

Gruppeteori. Michael Knudsen. 8. marts For at motivere indførelsen af gruppebegrebet begynder vi med et eksempel.

Projekt 7.9 Euklids algoritme, primtal og primiske tal

Side 9 sætningen: Kolmogorov s konsistensætning Tue Tjur, Institut for Matematisk Statistik

Analyse 2. Gennemgå bevis for Sætning Supplerende opgave 1. Øvelser. Sætning 1. For alle mængder X gælder #X < #P(X).

En statistikstuderendes bekendelser Søren Wengel Mogensen

Kryptografi Anvendt Matematik

Funktionsterminologi

Introduktion til Kryptologi. Mikkel Kamstrup Erlandsen

Matematisk modellering og numeriske metoder. Lektion 5

Secret sharing - om at dele en hemmelighed Matematiklærerdag 2017

1 Om funktioner. 1.1 Hvad er en funktion?

Lineære differentialligningers karakter og lineære 1. ordens differentialligninger

Vi indleder med at minde om at ( a) = a gælder i enhver gruppe.

Matematikken bag kryptering og signering RSA

Funktionsterminologi

1 Sætninger om hovedidealområder (PID) og faktorielle

Kursusgang 3: Autencificering & asymmetrisk kryptering. Krav til autentificering. Kryptering som værktøj ved autentificering.

TØ-opgaver til uge 46

TØ-opgaver til uge 45

Definition. Definitioner

Chapter 3. Modulpakke 3: Egenværdier. 3.1 Indledning

Kønsproportion og familiemønstre.

Kvantitative Metoder 1 - Efterår Dagens program

Reeksamen 2014/2015 Mål- og integralteori

Et udtryk på formena n kaldes en potens med grundtal a og eksponent n. Vi vil kun betragte potenser hvor grundtallet er positivt, altså a>0.

Afstande, skæringer og vinkler i rummet

Euklids algoritme og kædebrøker

Polynomiumsbrøker og asymptoter

Introduktion til differentialregning 1. Jens Siegstad og Annegrethe Bak

Afstande, skæringer og vinkler i rummet

Nanostatistik: Stokastisk variabel

t a l e n t c a m p d k Matematiske Metoder Anders Friis Anne Ryelund 25. oktober 2014 Slide 1/42

Eulers sætning Matematikken bag kryptering og signering v.hj.a. RSA Et offentlig nøgle krypteringssytem

Ølopgaver i lineær algebra

Kursus i IT Sikkerhed

Projekt 3.5 faktorisering af polynomier

Statistik Lektion 3. Simultan fordelte stokastiske variable Kontinuerte stokastiske variable Normalfordelingen

MATEMATIK B. Videooversigt

Billedbehandling og mønstergenkendelse: Lidt elementær statistik (version 1)

Lidt alment om vektorrum et papir som grundlag for diskussion

Lineære 1. ordens differentialligningssystemer

Lineære 1. ordens differentialligningssystemer

Polynomier. Indhold. Georg Mohr-Konkurrencen. 1 Polynomier 2. 2 Polynomiumsdivision 4. 3 Algebraens fundamentalsætning og rødder 6

Plan. Markovkæder Matematisk modelling af kølængde, yatzy, smittespredning og partikelbevægelser. Materiale mm.

Appendiks 6: Universet som en matematisk struktur

De rigtige reelle tal

Bilag 7. SFA-modellen

Iteration af et endomorft kryptosystem. Substitutions-permutations-net (SPN) og inversion. Eksklusiv disjunktion og dens egenskaber

Kursusindhold: Produkt og marked - matematiske og statistiske metoder. Monte Carlo

Hvad er formel logik?

Deskriptiv statistik. Version 2.1. Noterne er et supplement til Vejen til matematik AB1. Henrik S. Hansen, Sct. Knuds Gymnasium

Sandsynlighedsregning 3. forelæsning Bo Friis Nielsen

Tidligere Eksamensopgaver MM505 Lineær Algebra

Punktmængdetopologi. Mikkel Stouby Petersen. 1. marts 2013

DesignMat Uge 1 Gensyn med forårets stof

Nanostatistik: Stokastisk variabel

i x-aksens retning, så fås ). Forskriften for g fås altså ved i forskriften for f at udskifte alle forekomster af x med x x 0

Et eksempel på en todimensional normalfordeling Anders Milhøj September 2006

Transkript:

Faglig Rapport Fjerde faglige rapport til Rejselegat for matematikere af Kåre Janussen ESAT/COSIC, Katholieke Universiteit Leuven, august 2007 Udvalgte pointer angående secret sharing og multi-party computation Bilag: Template Attacks on Masking: An Interpretation Rotor Exercises

Indhold Indledning 1 1 Basal teori 3 1.1 Basal informationsteori......................... 3 1.2 One-way functions........................... 5 1.3 Basal kryptologi............................. 8 1.4 Public-key systemer........................... 10 1.4.1 Generelt kryptosystem..................... 13 1.5 Secret sharing.............................. 16 1.6 Perfekt secret sharing.......................... 17 1.6.1 Eksempel: Brickells vektorrumskonstruktion......... 18 1.7 Multi-Party computation........................ 21 2 Secret sharing, eksempler 25 2.1 (t, w)-threshold schemes........................ 25 2.1.1 Eksempel: Bankboks (1).................... 25 2.1.2 Eksempel: (t, w)-threshold scheme i p............ 26 2.2 Visual threshold schemes........................ 28 3 Multi-party computation 33 3.1 Sikkerhedsmodeller i multi-party computation............. 33 3.1.1 Semi-honest model....................... 34 3.1.2 1. malicious model....................... 35 3.1.3 2. malicious model....................... 38 3.1.4 Adaptiv malicious model.................... 39 3.2 Hovedresultater............................. 41 3.2.1 Multi-Party computation.................... 41 3.2.2 Verifiable threshold schemes.................. 43 Litteratur 45 Indeks 47 i

Indledning Denne rapport er udarbejdet på grundlag af den vigtigste del af det stof, jeg har studeret under min studierejse i studieåret 2006/2007. Rapporten vil, for ikke at blive i omfang som en lærebog, forudsætte en grundlæggende viden om visse emner indenfor basal algebra og kryptologi, men visse basale konstruktioner og definitioner er for fuldkommenhedens skyld alligevel gennemgået her. Eftersom al litteratur, jeg har læst om disse emner, har været på engelsk, er de fleste begreber engelske, som det ikke altid er særlig elegant at oversætte til dansk. Visse engelske ord og udtryk vil derfor blive anvendt præcis som om, de var en del af det danske sprog. Emnerne, der behandles, er hovedsageligt kryptologi, secret sharing og multiparty computation, hvor der er en vis propagering igennem det meste af stoffet. Efter en kort indføring i basal informationsteori præsenteres nogle basale definitioner og konstruktioner fra grundlæggende kryptologi. En del af dette bruges i afsnittet om secret sharing. I den del, der omhandler multi-party computation, bruges begreber og egenskaber, der er hentet både fra afsnit om kryptologi og om secret sharing. Verifiable secret sharing er en udvidelse af klassisk secret sharing og har meget med multi-party computation at gøre. Som en sidebemærkning omkring secret sharing er der indskudt et kapitel omhandlende praktiske eksempler på secret sharing. Netop denne del har ikke nogen decideret tråd efter sig i efterfølgende kapitler. Indholdet er inddelt i tre kapitler: Kapitel 1 indeholder noget grundlæggende og ekstremt basal teori om informationsteori og kryptologi samt secret sharing og multiparty computation. Det er kort sagt basale beskrivelser af de emner, rapporten behandler. Se [Stinson1], [Delfs, Knebl] eller [Goldreich2] for en mere udførlig gennemgang af disse store emner. Nogle vigtige eksempler på secret sharing er beskrevet i kapitel 2, og endelig omhandler kapitel 3 multi-party computation. Der er vedlagt en artikel, Template Attacks on Masking: An Interpretation, om template side-channel attacks vedlagt som bilag. Det er den workshop-artikel, jeg har været medforfatter på. Et andet bilag til rapporten, Rotor Exercises, er et sæt opgaver om rotormaskiner, jeg blev bedt om at lave til et kursus i basal algebra. Der er en mængde stof, som på baggrund af artikler, jeg har studeret, kunne have været medtaget, men som er blevet udeladt for ikke gøre denne rapport for omfattende. Det kunne have været emner som f.eks. proaktiv secret sharing, multiplikativ lineær secret sharing samt andre former for robusthed, hvor man enten arbejder med andre 1

Indledning modstandermodeller eller med andre access-strukturer, end det er gjort her. Mit studieophold har givet mig mulighed for at studere en række forskellige emner, som enten har været helt nye for mig eller har været en videreudvikling af emner, jeg tidligere har arbejdet med under mit studium i Danmark. Ud over de førnævnte artikler, jeg har studeret, har der været andre emner, som var nye for mig. Det er stof, jeg har stødt på dels i kurser lokalt på COSIC eller i Eindhoven, og dels er det stof, der er blevet præsenteret på workshops og til konferencer, jeg har deltaget i, hvilket hovedsageligt er beskrevet i tidligere rapporter. Derudover var det en ny og spændende erfaring at være med til at skrive side-channel-artiklen. Rotormaskiner har jeg heller ikke haft mulighed for at studere før, da det er historiske, mekaniske kryptoapperater fra begyndelsen af forrige århundrede, så det var interessant at prøve at lave algebraopgaver på denne baggrund. 2

Kapitel 1 Basal teori Dette kapitel er en gennemgang af de redskaber fra den grundlæggende matematik og informationsteori, som jeg vil benytte mig af i resten af denne tekst, og er for så vidt ikke nødvendigvis en del af den teori, det ville være nødvendigt at gennemgå, hvis det blot antages, at læseren besidder et bredt og stedvist dybt matematisk kendskab. Jeg har dog valgt at lave en kortfattet gennemgang af dette stof dels for fuldstændighedens skyld og dels for at indføre den notation, jeg vil benytte i rapportens følgende kapitler. Læseren kan derfor gå hurtigt igennem dette kapitel, hvis denne mener at besidde de kundskaber, der står beskrevet, men jeg vil fraråde at springe kapitlet helt over. 1.1 Basal informationsteori Vi skal her gennemgå lidt klassisk informationsteori (efter Shannon), hvor begrebet entropi indføres, og nogle basale egenskaber opsummeres. Det ønskes at opstille et mål for usikkerheden på udfaldene af en stokastisk variabel. Dette mål kaldes entropi og er beslægtet med det tilsvarende begreb fra fysikkens termodynamik. C. E. Shannon introducerede begrebet entropi i forbindelse med opbygningen af den moderne informationsteori i 1948 (se evt. [Shannon1]) og brugte det i kryptologi-sammenhæng i 1949 i [Shannon2]. Definition 1. Lad X være en endelig stokastisk variabel med sandsynlighedsfordeling P(X). Da defineres entropien af denne stokastiske variabel til at være H(X)= hvor P i = P(X=x i ) for 1 i n. n P i log 2 P i, i=1 Heraf ses det bl.a., at når en stokastisk variabel X er helt fastlagt, så er H(X) = 0. Hvis derimod den stokastiske variabel X er fuldstændig uniform, så alle punktsandsynlig- 3

1.1. BASAL INFORMATIONSTEORI heder er ens, er H(X) maksimal med H(X)=log 2 n. Se også [Stinson1]. Man kan sige, at entropien betegner usikkerheden på den betragtede stokastiske variabel. Hvis udfaldet af den stokastiske variabel kendes, er usikkerheden og dermed entropien lille. Hvis overhovedet ingen ikke-triviel information (kaldet Shannon-information) kendes om udfaldet, er det bedste, man kan gøre, at gætte tilfældigt over en uniform fordeling. I dette tilfælde har X så maksimal entropi. Spørgsmålet om entropien af en stokastisk variabel afhænger altså af den mængde af ikke-triviel information om udfaldet, som er tilgængelig. Desuden kan defineres følgende: Definition 2. Lad X, Y være stokastiske variable. Da defineres H(XY) = P(X=x, Y= y) log 2 P(X=x, Y= y), x X y Y H(X Y= y) = P(X=x Y= y) log 2 P(X=x Y= y), x X H(X Y) = P(Y= y) log 2 P(X Y= y). y Y Der gælder iflg. [Stinson1] følgende egenskaber: Proposition 3. Lad X, Y, Z være stokastiske variable. Da gælder 1. H(XY) H(X), 2. H(X Y) H(X YZ), 3. H(XY) H(X)+H(Y), hvor = gælder, hvis og kun hvis X og Y er uafhængige, 4. H(X Y)=H(XY) H(Y). Af pkt. 4 ovenfor følger, at H(XY Z)=H(XYZ) H(Z) = H(Y XZ)+ H(XZ) H(Z) da H(Y XZ)=H(XYZ) H(XZ) = H(Y XZ)+ H(X Z) da H(X Z)= H(XZ) H(Z). Af pkt. 3 & 4 ovenfor følger, at H(X Y)=H(XY) H(Y) H(X)+H(Y) H(Y)= H(X) som vel også intuitivt kunne forventes, da viden om Y kunne mindske usikkerheden om X. Det følger også af pkt. 3, at = gælder, hvis og kun hvis X og Y er uafhængige. 4

1.2. ONE-WAY FUNCTIONS Hvis X og Y ikke er uafhængige, vil en observation af Y afsløre information om X og derfor reducere usikkerheden omkring X. Dvs. den reduktion i usikkerhed omkring X, der forårsages af at observere Y, er lig med den information, der opnås om X ved observation af Y. Den information, som Y afslører omkring X, kaldes the mutual information mellem X og Y og skrives I(X; Y) med en formel givet således: Definition 4. Hvis X og Y er stokastiske variable, defineres deres mutual information I(X; Y) ved I(X; Y)=H(X) H(X Y)=H(X)+H(Y) H(X, Y)=I(Y; X). (1.1) Bemærk den symmetriske egenskab, at mængden af information, Y afslører om X, er lig med mængden af information, X afslører om Y. Mutual information opfylder 0 I(X; Y) H(X), hvor I(X; Y) = 0, hvis og kun hvis X og Y er uafhængige. Den øvre grænse opnås, præcis når Y entydigt bestemmer X. Dvs. jo større mutual information er, jo tættere er relationen mellem X og Y på at være en deterministisk 1-1-relation. 1.2 One-way functions Vi skal her indføre et vigtigt begreb, kaldet one-way functions, som ligeledes er afgørende for forståelsen af de resterende kapitler. Kendt fra kompleksitetsteori er klasser af matematiske problemer, der regnes for at være svære i den forstand, at der ingen effektive generelle algoritmer findes til at løse dem. Ved en effektiv algoritme menes en såkaldt polynomiel-tid (poly-time) algoritme (hvis antal skridt maksimalt er et polynomium af bitlængden af dens input x). Algoritmen kan være probabilistisk (hvis den gør brug af en grad af tilfældighed, dvs. foretager møntkast undervejs) eller deterministisk. Klassen af problemer, der kan løses af deterministiske poly-time algoritmer, kaldes P, mens klassen, der kan løses af probabilistiske poly-time algoritmer, kaldes NP. En kendt klasse af såkaldt svære problemer er de, der siges at være NPkomplette. Det er pr. definition de sværeste problemer indenfor kompleksitetsklassen NP (se [Papadimitriou]). Problemer i denne klasse er ikke nødvendigvis svære for alle inputs, men de er det for visse tilfælde. Man kalder det worst-case hardness. Bemærk, at det klart gælder, at P NP. For moderne kryptografi er det en nødvendig (men ikke tilstrækkelig) betingelse, at P NP, og det er også en udbredt formodning, at denne ulighed gælder, men dette såkaldte P NP-problem er fortsat kompleksitetsteoriens mest berømte uløste problem. En one-way function er kort beskrevet en funktion f, der skal være let at udregne funktionsværdier af, men svær at invertere. Mere præcist skal det være muligt at beregne f (x) med en poly-time algoritme. Derimod må ingen probabilistisk poly-time algoritme findes, som beregner et urbillede af f (x) med mere end negligibel sandsynlighed, når x vælges uniformt tilfældigt. 5

1.2. ONE-WAY FUNCTIONS Nedenfor er en mere præcis definition af one-way functions, men først skal vi præcisere, hvad der forstås ved, at en størrelse er negligibel : Definition 5. En funktionµ: siges at være negligibel, hvis der for alle positive polynomier p findes et N, så det for alle n> N gælder, at µ(n) < 1 p(n). Her skal det defineres, hvad en one-way function er. Faktisk er det følgende definitionen af en såkaldt strong one-way function, men forskellen vil jeg ikke gå nærmere ind på i denne rapport. Definition 6. En funktion f :{0, 1} {0, 1} kaldes en one-way function, hvis følgede er opfyldt: 1. Der skal findes en deterministisk poly-time algoritme A, som på input x giver f (x) som output. 2. Lad U n være stokastisk variabel, uniformt fordelt over{0, 1} n. For alle poly-time algoritmer A, alle positive polynomier p og alle tilstrækkeligt store n skal det gælde, at P [ A ( f (U n ), 1 n) f 1( f (U n ) ) ] < 1 p(n), hvor sandsynlighed er taget over alle værdier for U n samt alle uniforme møntkast hos A. Bemærk: Inverteringsalgoritmen A skal ikke finde et bestemt urbillede af f. Det er nok, hvis A kan finde et vilkårligt x med f (x )= f (x). Desværre er det et uløst problem, hvorvidt one-way functions faktisk eksiterer eller ej. Man har bevist, at hvis de eksisterer, så giver de anledning til en række andre nyttige kryptografiske konstruktioner. Specielt gælder det også, at P NP, hvis og kun hvis one-way functions eksisterer. Man håber derfor, at de eksisterer og har derfor fundet kandidater til funktioner, som kunne være one-way. De mest kendte funktioner, man antager, er one-way, er konstrueret, så invertering af funktionen kræver løsning af et NP-komplet problem. Eksempler på disse er følgende: Heltalsfaktorisering Hvis p, q er ulige primtal med p q 3 mod 4, er funktionen f (p, q)= p q let at udregne, mens inverteringen pq (p, q) kræver en heltalsfaktorisering, hvilket er NP-komplet. 6

1.2. ONE-WAY FUNCTIONS Diskret logaritme Hvis g er frembringer for en cyklisk gruppe, er funktionen f (x) = g x let at udregne, mens inverteringen g x x er kendt som diskret logaritmeproblemet, hvilket er NP-komplet. For kryptografiske one-way functions er worst-case hardness imidlertid ikke nok. Det er jo klart, at et kryptosystem, hvor en uautoriseret modstander let kan bryde krypteringen af en del af de krypterede beskeder, ikke er acceptabelt. Heller ikke selvom visse andre dele er næsten umulige at bryde. Det, man ønsker sig af et kryptosystem, er snarere noget, man kan kalde average-case hardness, hvor langt de fleste plaintexts er svære at bryde. NP-komplette problemer kan derfor godt udgøre en del af en one-way function, men der må være andre ingredienser til stede også, som kan give average hardness. Begrebet one-way function giver anledning til det afledte begreb trapdoor oneway permutation, som a priori er en bijektiv one-way function, men med den særlige egenskab, at der findes en såkaldt trapdoor, som er en stump information (et tal/bitstreng), der kan bruges til at invertere funktionen i polynomiel-tid. Uden kendskab til denne trapdoor, skal funktionen fortsat være svær at invertere. Dvs. det er bijektioner, der kun med negligibel sandsynlighed lader sig invertere af en poly-time algoritme. Følgende definition er som definition 6, men med bijektivitet og trapdooregenskaben hægtet på: Faktisk kan man definere en form for trapdoor one-way function, kaldet trapdoor permutationer. Selve definitionen fra [Goldreich2] er temmelig teknisk, så den vil jeg udelade her. Blot kan det løst siges, at Definition 7. En bijektion f :{0, 1} {0, 1} kaldes en trapdoor one-way permutation, hvis følgede er opfyldt: 1. Der skal findes en deterministisk poly-time algoritme A, som på input x giver f (x) som output. 2. Lad U n være stokastisk variabel, uniformt fordelt over{0, 1} n. For alle poly-time algoritmer A, alle positive polynomier p og alle tilstrækkeligt store n skal det gælde, at P [ A ( f (U n ), 1 n) f 1( f (U n ) ) ] < 1 p(n), hvor sandsynlighed er taget over alle værdier for U n samt alle uniforme møntkast hos A. 3. Der skal findes en strengτ {0, 1}, kaldettrapdoor samt en deterministisk poly-time algoritme B, som tager inputτ, så det for alle x gælder, at B ( τ, f (x) ) = x. 7

1.3. BASAL KRYPTOLOGI e ke (x)=y d kd (y)= x x A y B x k e E k d y??? Figur 1.1. Almindeligt setup 1.3 Basal kryptologi Kryptologi er læren om hemmeligholdelse af information og har eksisteret lige så længe, der har været skriftlige kilder til. Ordet hemmeligholdelse skal her ikke forstås som det at holde på en hemmelighed, men snarere som det at kunne opbevare eller transmittere det hemmelige indhold, kaldet plaintext, i en ulæselig form, kaldet ciphertext, over en usikker kanal. Målet er at opnå dette, uden at en tredje part ud fra ciphertext en er i stand til at lære noget brugbart om plaintext en. Processen, der transformerer information fra en læselig form til en ulæselig, kaldes kryptering. For at dette kan være brugbart må der naturligvis eksistere en metode til at bringe den hemmelige information tilbage til dens eksakt oprindelige form. Transformationen tilbage til læselig form kaldes dekryptering. Både kryptering og dekryptering gør som regel brug af en hemmelig nøgle, der er et ekstra stykke hemmelig information, der er nødvendig for at foretage kryptering og dekryptering. Krypterings- og dekrypteringsnøglerne kan enten være ens eller forskellige, hvilket giver anledning til de to begreber, symmetrisk og asymmetrisk kryptering. Som regel illustreres det ovenfor beskrevede setup som i figur 1.1, hvor en person A (Alice) med sin hemmelige krypteringsnøgle k e krypterer et stykke plaintext x (f.eks. en bitstreng) og sender den resulterende ciphertext y over en usikker kanal til en anden person B (Bob), som med sin dekrypteringsnøgle k d kan dekryptere og læse x. Men fordi kommunikationskanalen antages at være usikker, kan den onde tredje person E (Eva 1 ) opsnappe ciphertext en. Alice og Bob håber nu, deres kryptosystem er stærkt nok til, at Eva, som ingen dekrypteringsnøgle har, ud fra ciphertext en y ikke er i stand til at finde frem til hverken plaintext en x eller dekrypteringsnøglen k d. Normalt betegnes kryptering og dekryptering som følgende bijektive funktioner, der hver afhænger af deres respektive nøgler: e ke : x y d kd : y x 1 Eve på engelsk, forkortelse af ordet eavesdropper 8

1.3. BASAL KRYPTOLOGI hvor det naturligvis må gælde, at de er hinandens inverse, dvs. så d e(x) = x, så dekryptering altid giver det ønskede resultat. Ideelt set ville et kryptosystem være sikkert, hvis ciphertext en aldrig afslørede nogen ikke-triviel information om plaintext en. Dette er en løs formulering af den såkaldte informationsteoretiske sikkerhedsmodel, som kan præciseres ved det følgende: Definition 8. Et kryptosystem, hvor ciphertext en vælges fra den stokastiske variabel Y, og dekrypteringsnøglen er en værdi af den stokastiske variabel K, siges at være informationsteoretisk sikkert, hvis H(X Y)=H(Y). Ovenstående definition kan også være praktisk at formulere ved brug af mutual information fra ligning(1.1), som præcis angiver, hvor meget Shannon-information, ciphertext en røber om nøglen: Definition 9. Et kryptosystem, hvor plaintext en vælges fra den stokastiske variabel X, og dekrypteringsnøglen er en værdi af den stokastiske variabel K, siges at være informationsteoretisk sikkert, hvis I(Y; X)=0. Desværre er informationsteoretisk sikre systemer generelt meget ineffektive, hvilket skyldes følgende vigtige resultat af Shannon, som siger, at dekrypteringsnøglen i et informationsteoretisk sikkert system altid er mindst lige så lang som plaintext en 2 : Sætning 10. I et informationsteoretisk sikkert system, hvor plaintext en vælges fra den stokastiske variabel X, og dekrypteringsnøglen er en værdi af den stokastiske variabel K, er H(K) H(X). Filosofien bag informationsteoretisk sikkerhed er, at ciphertext en ikke må overføre nogen som helst ikke-triviel information om plaintext en. Men der er en slækkelse, man med fordel kan foretage: I stedet for informationsteoretisk sikre systemer, der som før nævnt er ineffektive, benytter man sig i praksis af det, man kalder computational security, hvor man ikke bekymrer sig om, om ciphertexts bærer information om plaintexts, kun om denne information nemt kan ekstraheres eller ej. Man forlader sig på kandidater til beregningsmæssigt svære problemer, så man i stedet kan tænke på krypteringsfunktionen som en trapdoor one-way function, hvor dekrypte- 2 Længden af bitstrengene er uløseligt forbundet med entropien, som er et mål for usikkerheden, dvs. for den minimale mængde information, det kræver at beskrive deres værdier. 9

1.4. PUBLIC-KEY SYSTEMER ringsnøglen er den trapdoor-information, der kan anvendes til invertering (som input i dekrypteringsfunktionen). Der gælder faktisk følgende om eksistensen af symmetriske systemer: Sætning 11. Hvis trapdoor one-way function eksisterer, så findes der computationally secure symmetriske systemer. Det er vigtigt at notere sig, at inden Alice kan sende sin besked til Bob, skal hun først have genereret sin hemmelige krypteringsnøgle k e, og Bob skal have den tilsvarende hemmelige dekrypteringsnøgle k d. Af hensyn til sikkerheden er det i denne indledende fase vigtigt, at de hemmelige nøgler vælges fra så stor en mængde, at Eva ikke indenfor rimelig tid kan gennemprøve alle muligheder, samt at Bob får sin dekrypteringsnøgle over en sikker kanal, som Eva overhovedet ingen adgang har til. I et symmetrisk system (k e = k d ) vil Alice og Bob altså typisk på forhånd aftale den hemmelige nøgle over en sikker kanal. 1.4 Public-key systemer En upraktisk egenskab ved symmetrisk kryptering er, at udveksling af den hemmelige nøgle mellem de to parter A og B er nødt til at foregå over en sikker kanal, og dette skal oven i købet gøres på ny, hvis A også ønsker at tale med C. Og A skal huske at bruge forskellige nøgler til hver eneste person, hun ønsker at kommunikere med. Derfor er det umådelig praktisk at være i stand til at konstruere asymmetriske systemer, hvor krypteringsnøgle og dekrypteringsnøgle ikke bare er forskellige, men hvor en endnu stærkere egenskab gælder: Det skal ud fra den ene nøgle være umuligt a priori at sige noget som helst brugbart om den anden. Dvs. k d skal være statistisk uafhængig af k e. Der er indledningsvist en kort initialiseringsfase, hvor B i hemmelighed ved hjælp af en poly-time algoritme genererer et nøglepar (ke, B kd B ), som er statistisk uafhængige. Dernæst gemmer han den hemmelige nøgle kd B på et sikkert sted og offentliggør3 sin offentlige nøgle ke B f.eks. på sin hjemmeside på internettet eller i telefonbogen. Nu er B klar til at kommunikere med hvem som helst. Hvis A vil sende en besked x til B, finder hun B s offentlige nøgle ke B og krypterer sin besked, hvilket giver y=e k B e (x). Denne ciphertext sender hun til B, som nu er den eneste i Verden, der kan dekryptere beskeden, fordi han har sin hemmelige dekrypteringsnøgle kd B. Et public-key system er på denne måde at betragte som en sikker kanal, fordi det kan bruges mange gange med det samme nøglesæt og ikke behøver nogen forudgående nøgleudveksling. 3 Deraf navnet public-key 10

1.4. PUBLIC-KEY SYSTEMER Denne type asymmetriske kryptosystemer kaldes public-key systemer, og hvis det kan antages, at alle parter er i stand til at generere hemmelige nøgler, er der tale om en såkaldt Public-Key Infrastruktur (PKI). Public-key system 1. B vælger en hemmelig nøgle kd B og anvender en one-way function til at beregne den offentlige nøgle ke B = f (kd B), som offentliggøres. 2. A finder B s offentlige nøgle ke B og krypterer med denne plaintext en x. Derpå sender A den resulterende ciphertext y=e k B e (x) til B, som med sin hemmelige nøgle dekrypterer og får d k B(y)= x. d Det er klart, at et krav til ethvert public-key system må være, at det skal være nemt ud fra den hemmelige dekrypteringsnøgle kd B at generere den offentlige krypteringsnøgle ke B, men at det samtidig skal være uoverstigeligt svært at regne den modsatte vej. Hele sikkerheden i systemet beror jo netop på, at Bob skal kunne offentliggøre sin offentlige krypteringsnøgle, uden at Eva må kunne beregne hans hemmelige dekrypteringsnøgle. Der skal altså eksistere en funktion f : k B d kb e som Bob kan bruge til at generere sin offentlige krypteringsnøgle med, og denne funktion skal være one-way. Det kan lade sig gøre at vise følgende sætning vedrørende forbindelsen mellem public-key systemer og trapdoor permutationer: Sætning 12. Hvis trapdoor permutationer eksisterer, så findes der sikre publickey systemer. Det skal senere defineres, hvad der menes med sikkerhed for public-key systemer. Denne definition af sikkerhed er den førnævnte computational security, der også omtales som semantic security for public-key systemer i definition 15. 11

1.4. PUBLIC-KEY SYSTEMER Det klart mest anvendte public-key system er RSA 4, som anvendes overalt i hverdagen på PC ere og internet. Sikkerheden i RSA er hovedsageligt den førnævnte faktoriseringsantagelse, men det er et åbent spørgsmål, om man er nødt til at faktorisere, for at bryde systemet. Man håber selvsagt, at systemet er sikkert, og denne antagelse kaldes RSA-antagelsen. Se [Papadimitriou] for mere om denne. Det kan imidlertid vises, at RSA-antagelsen, dvs. antagelse af sværheden ved at invertere RSA-kryptering, er ækvivalent med en antagelse om, at RSA-krypteringsfunktionen en trapdoor permutation. Desværre er der i forbindelse med brugen af public-key systemer forbundet nogle mere komplicerede beregninger end i symmetrisk kryptering, hvilket får implementeringer af public-key systemer til at køre op til 1000 gange langsommere end de symmetriske. Dette gør public-key kryptosystemer upraktiske at bruge til store datamængder. Derfor bruges symmetriske systemer i praksis til dette, men disse kræver jo som beskrevet en sikker kanal til overførsel af nøglen, og til denne begrænsede mængde information kan et public-key system anvendes, idet en nøgle næsten altid vil være meget mindre end den mængde data, der ønskes krypteret. Dette giver anledning til de såkaldte hybridsystemer, der anvender public-key teknologi til etablering af en session key, som derefter benyttes i symmetrisk kryptering af data. Hybridsystemer fungerer efter følgende model: Hybridsystem 1. A vælger en session key k til et symmetrisk system. 2. A finder B s offentlige nøgle ke B og krypterer i public-key systemet den valgte session key og sender ciphertext en z = e k B e (k) til B, som dekrypterer og får nøglen d k B(z)=k. d 3. A krypterer data x i det symmetriske system med nøglen k og sender ciphertext en y=e k (x) til B, som dekrypterer med nøglen k og får d k (y)= x. Mange moderne implementeringer af kryptosystemer er hybridsystemer, der som ovenfor beskrevet benytter public-key til etablering af en session key, derpå bruges til kryptering af det ønskede data i et symmetrisk system. 4 For mere om RSA, se f.eks. [Stinson1] 12

1.4. PUBLIC-KEY SYSTEMER En variant, som også er umådeligt anvendt, gør i stedet for trin 1 og 2 ovenfor brug af Diffie-Hellman key exchange, som er baseret på diskret logaritme. Målet for personerne A og B er i fællesskab at etablere en fælles session key over en usikker kanal: Diffie-Hellman key exchange 1. A og B enes offentligt om en endelig cyklisk gruppe samt en frembringer g. 2. - A vælger i hemmelighed et tilfældigt naturligt tal a samt udregner og sender y 1 = g a til B. - B vælger i hemmelighed et tilfældigt naturligt tal b samt udregner og sender y 2 = g b til A. 3. - På baggrund af det modtagede udregner A nu (y 2 ) a = (g b ) a = g ab. - På baggrund af det modtagede udregner B nu (y 1 ) b = (g a ) b = g ab. Det er nu klart, at A og B nu deler den fælles værdi g ab, mens en eavesdropper E kun har g, g a og g b. For at beregne g ab kræves en løsning af diskret logaritme-problemet, hvilket som før nævnt regnes for svært. 1.4.1 Generelt kryptosystem Vi skal nu se en mere præcis definition på et generelt kryptosystem (private- eller public-key) samt give en definition af, hvad der kan menes med et sikkert system. Notationen i det følgende er således, at{0, 1} n betegner en ikke nærmere bestemt bitstreng (en følge af 1 er og 0 er) af længde n, mens{0, 1} betegner en bitstreng af vilkårlig længde. Endelig betegner 1 n en bitstreng af længde n, hvor længden er det primære, og værdien af de enkelte bits lige så godt alle kunne være 1. 13

1.4. PUBLIC-KEY SYSTEMER Definition 13. Et generelt kryptosystem er en tupel (G, E, D) af tre probabilistiske poly-time algoritmer, der opfylder det følgende: 1. Algoritmen G, kaldet key-generator tager input 1 n, hvor n (længden af input et) er en såkaldt sikkerhedsparameter. Output et er et par af bitstrenge (k e, k d ). 2. For ethvert par (k e, k d ) i G(1 n ) s billede, for alle x {0, 1}, for alle algoritmer E (encryption) og alle algoritmer D (decryption) gælder P [ D ( k d, E(k e, x) ) = x ] = 1, hvor sandsynligheden er taget over de lokale møntkast i algoritmerne E og D. Ethvert par (k e, k d ) i G(1 n ) s billede udgør et nøglepar, hvor k e er krypteringsnøglen, og k d er dekrypteringsnøglen. Strengen E(k e, x) er ciphertext en fremkommet ved kryptering af plaintext x ved nøgle k e i krypteringsfunktionen E. Strengen D(k d, y) er plaintext en fremkommet ved dekryptering af ciphertext en y ved nøgle k d i dekrypteringsfunktionen D. Bemærk: De to algoritmer E og D er præcis de to krypterings- hhv. dekrypteringsfunktioner, der før har heddet e og d. Bemærk også, at denne generelle definition dækker både symmetriske og asymmetriske kryptosystemer, idet der i et symmetrisk system blot gælder k e = k d. Den ovenstående definition siger imidlertid intet om sikkerhed, dvs. ovenstående er ikke en definition af et sikkert system! Det er kun en definition af et system, som ved hjælp af nøgler transformerer plaintext om til ciphertext og tilbage igen. Definitionen dækker derfor også det trivielle og meget lidt anvendelige eksempel, hvor krypteringsog dekrypteringsfunktionerne begge er identiteten: E(k e, x)= x og D(k d, y)=y. Vi skal nu se en definition på sikkerhed af et kryptosystem. Der findes ingen fastlagt definition af computational security, da det afhænger af, hvad det er for en modstander, man vil beskytte sig imod. Den følgende definition er ret anvendelig og kaldes semantic security. Den dækker dog udelukkende plaintext-strenge af en længde, der højst er et polynomium af sikkerhedsparameteren, dvs. hvis x X er en plaintext fra fordelingen X, så er X poly(n), hvor poly er et vilkårligt polynomium. Det samme skal gælde for outputs af de to polynomielt begrænsede funktioner f og h. Der er en definition for private-key og en for public-key systemer: 14

1.4. PUBLIC-KEY SYSTEMER Definition 14 (Semantic security, private-key). Et generelt kryptosystem (G, E, D) siges at være semantically secure, hvis der for alle probabilistiske polytime algoritmer A eksisterer en probabilistisk poly-time algoritme A, så der for alle x med x poly(n), for alle par af polynomielt begrænsede funktioner f, h :{0, 1} {0, 1} og for alle positive polynomier p og tilstrækkeligt store n gælder, at P [ A ( 1 n, E ke (X), 1 X, h(1 n, X) ) = f (1 n, X) ] < P [ A ( 1 n, 1 X, h(1 n, X) ) = f (1 n, X) ] + 1 p(n), hvor sandsynligheden er taget over X samt alle lokale møntkast i algoritmerne G, E, A og A. Den tilsvarende definition for generelle public-key systemer adskiller sig kun fra private-key semantic security ved det, at modstanderen A, der ingen plaintext ser, gerne må se krypteringsnøglen k e : Definition 15 (Semantic security, public-key). Et generelt kryptosystem (G, E, D) siges at være semantically secure, hvis der for alle probabilistiske polytime algoritmer A eksisterer en probabilistisk poly-time algoritme A, så der for alle x med x poly(n), for alle par af polynomielt begrænsede funktioner f, h :{0, 1} {0, 1} og for alle positive polynomier p og tilstrækkeligt store n gælder, at P [ A ( 1 n, E ke (X), 1 X, h(1 n, X) ) = f (1 n, X) ] < P [ A ( 1 n, k e, 1 X, h(1 n, X) ) = f (1 n, X) ] + 1 p(n), hvor sandsynligheden er taget over X samt alle lokale møntkast i algoritmerne G, E, A og A. Løst sagt, kan begrebet semantic security af et kryptosystem fortolkes således, at systemet regnes for semantically secure, hvis ciphertext en ikke afslører nogen ikketriviel Shannon-information. I de ovenstående definitioner er det formuleret således, at systemet er semantically secure, hvis enhver poly-time modstander A, der ser en ciphertext kun kan identificere den tilhørende plaintext med marginalt større sandsynlighed end en anden poly-time modstander A, der ingen ciphertext ser. Det kan vises, at semantic security er ækvivalent med en sikkerhedsdefinition, der kaldes indistinguishability of encryptions, hvor idéen er, at kryptering af to tilfældigt valgte plaintexts altid skal være computationally indistinguishable, hvilket betyder, at ingen poly-time modstander vil have mere end en negligibel sandsynlighed (jvf. defi- 15

1.5. SECRET SHARING nition 5) for at kende forskel på de to ciphertexts 5. Begrebet computational indistinguishability bliver vigtigt igen senere, så det er passende at give en formel definition: Definition 16. To familier af stokastiske variable X={X n } n og Y={Y n } n siges at være computationally indistinguishable, hvis det for alle probabilistiske poly-time algoritmer D, alle positive polynomier p og tilstrækkeligt store n gælder, at P [ D(Xn, 1 n )=1 ] P [ D(Y n, 1 n )=1 ] < 1 p(n). Dette skrives også som X c Y. 1.5 Secret sharing Vi skal her opsummere nogle basale begreber vedrørende secret sharing schemes samt se et par eksempler på konkrete konstruktioner. Senere i dette kapitel præsenteres også en mere generel beskrivelse samt perfekthed. Det sidste er en ønskværdig egenskab for secret sharing schemes, idet det udtrykker, dels at schemet deler hemmeligheden korrekt, samt at uautoriserede delmængder af personer intet ikke-trivielt kan lære om hemmeligheden. I sektion 3.2.2 præsenteres en endnu mere generel men også mere teknisk, protokolteoretisk definition af threshold schemes. I et secret sharing scheme findes en bestemt central dealer D, som vælger en hemmelighed s 0 K ud af en endelig mængde K af hemmeligheder. Desuden er der en endelig mængde P bestående af ialt n personer samt en mængde af delmængder af personerγ 2 P kaldet access-strukturen. Et secret sharing scheme (herefter ofte forkortet SSS) for access-strukturenγ er da en måde for dealeren D at dele sin hemmelighed, s 0, ud blandt personerne i P ved at give hver person p P et stykke hemmelig information en share s p S, hvor S <, således at netop delmængderne i Γ (de autoriserede delmængder) senere er i stand til i fællesskab at rekonstruere hemmeligheden s 0 entydigt ved hjælp af deres shares. Secret sharing er altså en proces, der kan siges at foregå i to faser, som det er illustreret i figuren på modstående side. Det antages foreløbig, at dealeren samt alle delmængderne i Γ er ærlige, dvs. ikke lyver om værdien af deres respektive shares under rekonstruktionen. Schemes, som er resistente overfor uærlighed, er beskrevet i sektion 3.2.2. Det er nu klart, at accessstrukturen normalt må være en monoton mængde af delmængder af P, dvs. hvis A B, og A Γ, så er B Γ. Enkelte forfattere 6 har dog under noget besvær konstrueret schemes for access-strukturer, som ikke er monotone, men dette har ikke umiddelbart den store interesse i teorien for secret sharing. For det første fordi det er svært at 5 Givet to forskellige plaintexts samt tilhørende ciphertexts, skal det være svært at afgøre, hvilken ciphertext svarer til hvilken plaintext. 6 For reference til dette, se [Martin], p. 59. 16

1.6. PERFEKT SECRET SHARING Figur 1.2. Fordeling Figur 1.3. Rekonstruktion s 1 s 1 s 2 s 2 s 0 D s 3 s 3 A s 0.. Fase 1: Fordeling af hemmeligheden s 0 gennem dealeren D til personerne {p 1, p 2,..., p n }=P ved udsendelse af shares s 1,..., s n. s n s k Fase 2: Rekonstruktion af hemmeligheden s 0 gennem en autoriseret delmængde {p 1,..., p k }=A P med A Γ ved samling af shares s 1,..., s k. finde på anvendelser, hvor en ikke-monoton access-struktur er nødvendig, og for det andet fordi netop monotoni i access-strukturen giver nogle gode egenskaber, når SSS repræsenteres som matematiske objekter. LadΓ være familien af minimale mængder i en monoton access-strukturγ. En sådan familieγ siges da også at være basis forγ. Det antages, at enhver person p P er indeholdt i en af delmængderne fraγ. Dette er det samme som at antage, at der ikke er neglegible personer p, hvor der for alle A P gælder implikationen p A Γ A\{p } Γ. Ligeledes kan det for at undgå neglegible personer antages, at intet par af personer i P altid får samme shares. Personerne adskiller sig jo kun fra hinanden ved værdien af deres respektive shares. Schemes, som opfylder dette krav, kaldes sammenhængende. Vi vil kun behandle sammenhængende schemes. 1.6 Perfekt secret sharing Et generelt SSS kan beskrives som følger. Dealeren har en hemmelighed s 0, som er udvalgt fra mængden K af mulige hemmeligheder med sandsynligheden P(s 0 ). Til fordeling blandt de n personer i P bruger dealeren alfabeternes 1,...,S n, fra hvilke han udvælger de n shares s 1,..., s n. Han giver share s i til person p i uden at afsløre noget om værdien af de andre personers shares. Den samlede fordeling har sandsynlighed P s0 (s 1,..., s n ). Her definerer P altså sandsynlighedsfordelingen på produktmængdens (n) = K S 1 S n. Nu kaldes parret ( P,S (n)) for et SSS og hvert punkt (s 0, s 1,..., s n ) benævnes en fordelingsfunktion. Alle shares s i kan nu realiseres som værdierne af tilsvarende stokastiske variable S i med simultan fordeling P med P(s 0, s 1,..., s n )=P(s 0 )P s0 (s 1,..., s n ), da s 0 er uafhængig af hver enkelt s i, for 1 i n. Lad A P være en delmængde af personerne. Lad da P(s 0 s p, p A) betegne sandsynligheden for, at man gætter på s 0 som værdien af hemmeligheden, givet at man kender mængden af distribuerede shares til A, nemlig{s p p A}. Dvs. hvis personerne i A samler deres shares, så betegner P(s 0 s p, p A) sandsynligheden for, 17

1.6. PERFEKT SECRET SHARING at de i fællesskab når frem til værdien s 0 for hemmeligheden. Definition 17. Et secret sharing scheme for access-strukturen Γ siges at være perfekt, hvis følgende er opfyldt: 1. s 0 K: P(s 0 s p, p A) {0, 1}, hvis A Γ, 2. s 0 K: P(s 0 s p, p A)=P(s 0 ), hvis A Γ. Γ siges så at være en perfekt access-struktur. Den første betingelse udtrykker, at for hver værdi s 0 vil en autoriseret mængde A Γ altid enten finde frem til denne værdi for hemmeligheden eller udelukke denne værdi. Den næste betingelse kræver, at sandsynligheden for, at en uautoriseret delmængde A Γ gætter på s 0 som værdien af hemmeligheden, er den samme som den sandsynlighed, hvormed hemmeligheden blev valgt. Dvs. den uautoriserede delmængde har ingen Shannon-information og kan derfor ikke gøre andet end at gætte tilfældigt på værdien af hemmeligheden. Denne informationsteoretisk inspirerede definition kan naturligvis også udtrykkes ved entropi: Definition 18. Et secret sharing scheme for access-strukturen Γ siges at være perfekt, hvis følgende er opfyldt: 1. H(s 0 s p, p A)=0, hvis A Γ, 2. H(s 0 s p, p A)=H(s 0 ), hvis A Γ. Γ siges så at være en perfekt access-struktur. 1.6.1 Eksempel: Brickells vektorrumskonstruktion Nu vises et spændende eksempel på secret sharing scheme med Brickells vektorrumskonstruktion. Det skal vises, at dette scheme er perfekt. Det kan faktisk også relativt nemt vises, at dette scheme er en generalisering af Shamirs threshold scheme. LadΓvære en access-struktur, lad p være et primtal og lad d med d 2. Da er ( p ) d det endelige d-dimensionale vektorrum af d-tupler over legemet p. Det ønskes at konstruere et SSS med K=S=( p ) d. Antag at der findes en funktion som opfylder, at φ : P ( p ) d, (1, 0,...,0) sp{φ(p i ) p i A} A Γ. Vektoren (1, 0,...,0) ( p ) d kan altså udtrykkes entydigt ved en linearkombination af vektorer fra billedmængdenφ(a). 18

1.6. PERFEKT SECRET SHARING Initialisation D giver vektorenφ(p i ) ( p ) d til personen p i for alle 1 i P. Disse vektorer er offentligt kendte. Share-distribution 1. D ønsker at dele hemmeligheden K p. D vælger hemmeligt og tilfældigt d 1 elementer a 2,...,a d p. 2. D udregner for alle 1 i P værdien af s i = ā φ(p i ), hvor ā=(k, a 2,...,a d ). 3. D giver værdien s i som share til personen p i for alle 1 i P. For enhver vektor ā=(a 1, a 2,...,a d ) ( p ) d defineres altså en distributionsfunktion fā F a1 fra rummetf a1 af alle distributionsfunktioner på hemmeligheden K= a 1. Distributionsfunktionen er fā : P S med fā(x)=ā φ(x) x P, hvor betegner det indre produkt modulo p. HverF K indeholder præcis p d 1 forskellige distributionsfunktioner. Det, at D vælger de d 1 elementer tilfældigt i trin 1 i ovennævnte share-distribution, betyder, at alle sandsynlighedsfordelingerne p FK er uniforme, dvs. p FK ( f )= 1 for alle f F p d 1 K. Rekonstruktionen kan foretages af personerne i A Γ på følgende måde. Da netop (1, 0,...,0) sp{φ(p i ) p i A}, findes en linearkombination, så (1, 0,...,0)= {i p i A} c i φ(p i ) (1.2) med c i p. Den i te share er s i = ā φ(p i ), hvor ā ( p ) d er D s hemmelige vektor med K= a 1 = ā (1, 0,...,0). Ved brug af ovenstående linearkombination samt lineariteten af skalarproduktet 19

1.6. PERFEKT SECRET SHARING fås K= ā (1, 0,...,0) = ā c i φ(p i ) = = {i p i A} {i p i A} {i p i A} c i ā φ(p i ) Personerne i A skal så beregne koefficienterne c i ud fra ligning (1.2), idet dette system jo har en løsning. Nu skal sikkerheden af dette scheme undersøges ved at studere, hvad der sker, hvis en uautoriseret delmængde af personer B Γ samler deres shares. Lad c i s i. e=dim(sp{φ(p i ) p i B}) Da (1, 0,...,0) sp{φ(p i ) p i B}, er sp{φ(p i ) p i B} et ægte underrum af ( p ) d af dimension e < d. Betragt ligningssystemet φ(p i ) ā= s i, p i B (1, 0,...,0) ā=k. Dette består af lineære ligninger med d de ubekendte a 1, a 2,...,a d. Dette system har rang e+1, idet (1, 0,...,0) sp{φ(p i ) p i B}. Det skal undersøges, om der er en løsning til dette system. Vektoren ā, valgt af D, er en løsning til de første B ligninger, og da (1, 0,...,0) sp{φ(p i ) p i B}, kan den sidste ligning også løses med løsningen ā, så den sidste ligning er konsistent med de første B ligninger. Nu hvor ligningssystemet er konsistent, har løsningsrummet altså dimension d (e+1)=d e 1. Lad en hemmelighed K K være givet. For hver distribution af shares til mængden B vil der da findes p d e 1 forskellige distributionsfunktioner if K. Det ønskes vist, at personerne i B ikke får nogen information om hemmeligheden, dvs. det skal vises, at H(K B)= H(K) for alle K K. Pr. definition af entropien er det imidlertid nok at vise, at p K (K f B )= p K (K) for alle K K og alle f B F, hvor f B F K betegner en fordelingsfunktion restringeret til B på hemmeligheden K. Dvs. givet K K så er 20 f B (p i )= s i p i B.

1.7. MULTI-PARTY COMPUTATION Der gælder p K (K f B )= p S (B)( f B K)p K (K). p S (B) ( f B ) Dvs. beviset er færdigt, hvis det bliver vist, at p S (B) ( f B K) = p S (B) ( f B ). Men da D vælger med en uniform fordeling, er det det samme som at vise, at antallet af fordelingsfunktioner er uafhængigt af den valgte hemmelighed K. Men det er jo netop konstateret, at der til hver distribution af shares til B findes præcis p d e 1 forskellige distributionsfunktioner if K. Dermed er det vist, at Brickells vektorrumskonstruktion udgør et perfekt secret sharing scheme. 1.7 Multi-Party computation Secure multi-party computation er et begreb fra kryptografisk protokolteori, der minder om secret sharing, idet der også her er tale om en mængde spillere med lokale (hemmelige) inputs, som de i fællesskab kombinerer til en helhed. Men multi-party computation kan på en måde siges at være mere generelt, idet de deltagende parter i dette setup i fællesskab vil være i stand til at konstruere en beregning af en hvilken som helst funktionalitet, de måtte ønske og ikke blot én bestemt værdi, som i et secret sharing scheme. Desuden er secure multi-party computation også en mere robust familie af cryptografiske protokoller, idet de er mulige at gennemføre, selv hvis spillerne ikke kan stole på hinanden. Der findes resultater for, under hvilke omstændigheder protokollerne er sikre, hvilket afhænger af den anvendte sikkerhedsmodel, dvs. hvor lidt spillerne kan stole på hinanden. Og mest afgørende er det, at der i multi-party computation ikke antages en såkaldt third trusted party, som ellers er dealerens rolle i secret sharing. Kort sagt er en third trusted party en enhed, som ikke er en normal spiller i protokollen, og som, alle spillere kan stole på, følger protokollen. Problemet med third trusted parties er enten, at de generelt ikke eksisterer ret tit i en praktisk emplementering af noget system, eller også, at arbejdet for at etablere en sådan enhed gør protokollen for kompliceret. Hvis man havde haft en third trusted party, kunne alle spillere i protokollen blot have givet deres lokale inputs til denne betroede enhed og bedt om at få beregnet og offentliggjort resultatet af den ønskede funktionalitet. Denne idealiserede situation er illustreret i figur 1.4 på næste side. Nu, hvor man vil lave protokoller uden trusted party, er målet at konstruere protokollerne, så alle spillere ved at kommunikere med hinanden, som i figur 1.5, alligevel kan få foretaget den samme fælles beregning på en lige så sikker måde, som hvis der havde været en trusted party. Man konstruerer derfor den konkrete protokol i den reelle model (uden trusted party) således, at de kan siges at emulere adfærden af en idealiseret ideel model, hvori der optræder en imaginær trusted party. Dvs. alle spillere behandler deres lokale inputs på en måde, så det eneste, de ser som input og outputs i den reelle protokol (deres VIEW ), er identisk med det, de ville kunne have set i en protokol i den ideelle model, 21

1.7. MULTI-PARTY COMPUTATION Figur 1.4. Ideel model med trusted party Figur 1.5. Reel model uden trusted party Spiller 1 Spiller 1 Spiller 5 Trusted Party Spiller 2 Spiller 5 Spiller 2 Spiller 4 Spiller 3 Spiller 4 Spiller 3 Alle spillere giver deres lokale inputs til en third trusted party, som beregner den ønskede funktionalitet og offentliggør resultatet. Alle spillere indgår i en protokol, der emulerer den ideelle model, men uden trusted party. hvor de hver især udelukkende kommunikerer med en trusted party. Denne emulering af den ideelle model er den strategi, der generelt bruges i beviserne for multi-party computation-protokoller. Man viser altså, at den reelle protokol beregner den ønskede funktionalitet samt, at spillernes VIEWs (ærlige såvel som uærlige spilleres VIEWs) er som i den ideelle model 7. Et simpelt eksempel på et problem, der kræver multi-party computation er millionær-problemet, hvor to millionærer, Alice og Bob, vil finde ud af, hvem der er rigest, men vel at mærke uden at hverken Alice eller Bob afsløre den præcise størrelse af deres egen formue overfor hinanden. I stedet for at hviske i øret på en trusted party, vil de benytte en protokol, hvis effekt er den samme. Hvis x 1 og x 2 er størrelsen af de to formuer, så findes der altså en protokol 8, der beregner, hvorvidt x 1 > x 2. Denne information er det eneste, de to spillere lærer ved at køre protokollen. Der afsløres intet andet om den anden spillers formue! Ovenstående er et eksempel på en såkaldt funktionalitet med to lokale inputs (x 1, x 2 ), som to spillere A og B i fællesskab kan beregne. I ovenstående tilfælde ville det være fortegnet af funktionen f (x 1, x 2 )= x 1 x 2. Generelt betragter vi protokoller med n spillere, der hver har et lokalt input, som kun de selv kender værdien af. De n spillere ønsker nu at beregne funktionaliteten f (x 1,..., x n ) af alle de n lokale inputs på en måde, så ingen værdier af de lokale inputs bliver afslørede for andre spillere. Begrebet funktionalitet er løst sagt det samme som en funktion, der også afhænger af en grad af tilfældighed. 7 Faktisk vil vi kun kræve, at det reelleview er computationally indistinguishable fra det ideelleview. 8 En løsning, der dog er for teknisk til at blive gennemgået her, er givet i [Yao], selvom den ikke er effektiv nok til at være praktisk. Den fungerer også kun for ærlige spillere. 22

1.7. MULTI-PARTY COMPUTATION Definition 19. En funktionalitet af n inputs er en probabilistisk proces, der afbilder n inputs over i n outputs. En deterministisk funktionalitet af n inputs er en funktion af n variable over i n funktionsværdier. Bemærk, at funktionaliteter er generaliserede funktioner, der indkorporerer tilfældighed. Dette forstås i den forstand, at en funktion f (x 1,..., x n )=(y 1,...,y n ) blot er det specialtilfælde, der kaldes en deterministisk funktionalitet. Man kan også betragte en funktionalitet F som en sandsynlighedsfordeling over en familie af funktioner { f (i)}, hvor F er lig f (i) med sandsynlighed p i. Det er i øvrigt ækvivalent med en funktion F (r, x 1,..., x n ), der tager en tilfældig værdi r og giver restriktionen f (r) (x 1,..., x n ) som output. Vi vil kun beskæftige os med poly-time funktionaliteter. Et udmærket eksempel på en 2-party computation er faktisk Diffie-Hellman key exchange som gennemgået på side 13. Her har A det lokale input x 1 = a, mens B har lokalt input x 2 = b, og funktionaliteten, de ønsker at beregne, er f (x 1, x 2 )=g ab. (1.3) I stedet for at sende a hhv. b til en trusted party, som udfører beregningen og returnerer g ab, følger A og B en protokol, hvori de sender andre ting til hinanden, som på grund af kryptering undervejs (her vha. diskret logaritme) ikke afslører de lokale inputs. Til sidst ender begge parter med værdien g ab. Denne protokol er sikker overfor en såkaldt passiv modstander som Eva, der kan lytte med på al kommunikation, men ikke ændre den. Men bemærk: Man kan tænke sig andre typer af modstandere (modstandermodeller), som er mere alsidige, og som kan andre eller flere ting, måske endda aktivt kontrollere visse uærlige spilleres adfærd. Denne tankgang giver anledning til forskellige sikkerhedsmodeller, hvor en protokol, der er sikker i én model ikke nødvendigvis er det i en anden. Det er da også, hvad vi ville forvente, når det er forskellige trusselsscenarier, man beskytter sig imod. En protokol, der udfører en multi-party computation af en funktionalitet f på en måde, der er sikker i en bestemt sikkerhedsmodel, siges også at beregne f i denne sikkerhedsmodel. F.eks. er førnævnte Diffie-Hellman key exchange en protokol, der beregner funktionaliteten i ligning (1.3) sikkert i passiv modstander-modellen. 23

Kapitel 2 Secret sharing, eksempler 2.1 (t, w)-threshold schemes Her beskrives et meget kendt og simpelt eksempel på et SSS, nemlig (t, w)-threshold schemet for t w, hvor access-strukturen består af samtlige delmængder af personer A P med A t og P = w. Dvs. alle delmængder af mindst t personer kan beregne hemmeligheden, men ingen delmængde af t 1 personer kan få nogen som helst brugbar information (Shannon-information). Denne konstruktion er formentlig den mest intuitive og nok også umiddelbart den, som er lettest at finde på realistiske anvendelser for. Denne specielle access-struktur kaldes også en threshold-struktur. Herunder gives to eksempler på threshold schemes. Det første eksempler er et forsøg på at anskueliggøre nogle realistiske anvendelser, idet de udgør to løsninger til det såkaldte bankboksproblem. Det andet eksempel er den rent matematiske konstruktion af Shamirs threshold scheme i det endelige legeme p. 2.1.1 Eksempel: Bankboks (1) Et ofte brugt eksempel på en anvendelse er problemet med en bankboks, som det ikke er forsvarligt at lade én enkelt ansat have nøglen til. Det vurderes dog at være forsvarligt at lade eksempelvis 3 betroede ansatte om at åbne boksen sammen. Derfor konstruerer man en lås med 3 nøglehuller, som man så skal have 3 nøgler for at åbne. Låsen er konstrueret, så alle 3 nøgler skal bruges samtidigt for at åbne låsen, så det kræver, at mindst tre personer med nøgler er tilstede. Antag, at der er 10 betroede ansatte. En nøgle gives af bankens ledelse til hver betroet ansat. Nu kan enhver delmængde af betroede ansatte af kardinalitet mindst 3 åbne boksen i fællesskab ved at mødes og bruge nøglerne. Dette er et eksempel på et lidt primitivt (3, 10)-threshold scheme. I praksis ville man dog naturligvis være nødt til at sikre sig imod, at nøglerne kan kopieres. Ellers kunne enhver med en nøgle lave kopier til sine venner, som så med kopinøglerne kunne udgive sig for at være betroet medarbejder. Nøglerne kunne 25