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

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

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)

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

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

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

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

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

Kønsproportion og familiemønstre.

Kvantitative Metoder 1 - Efterår Dagens program

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

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

Hvad er formel logik?

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

Tidligere Eksamensopgaver MM505 Lineær Algebra

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

DesignMat Uge 1 Gensyn med forårets stof

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

2.1. (T, W)-THRESHOLD SCHEMES derfor eksempelvis være en form for smart-card med indbygget elektronisk chip, som hver indeholder en digital signatur evt. udstedt af bankens ledelse. Låsen skulle så kun kunne åbnes, hvis nøgler med forskellige gyldige signaturer benyttes. Det ville således være umuligt at lave flere nøgler, som kan bruges samtidigt på grund af signaturen, som kun bankens ledelse kan lave. 2.1.2 Eksempel: (t, w)-threshold scheme i p I det følgende beskrives en konkret algebraisk konstruktion af et threshold scheme efter Shamir (beskrevet i [Shamir]), nemlig (t, w)-threshold i p. I dette eksempel er hemmelighed og shares elementer i det endelige legeme p = /p med p elementer, hvor p er et primtal, og rekonstruktion foregår ved beregning i dette legeme 1. Lad t, w med t w, og lad p være et primtal med w p+1. Antag, at der gælder D P. Dealeren D ønsker at dele en hemmelighed s 0 K= p. Schemet virker nu som følger: Initialisation D vælger w forskellige ikke-nul-elementer x i p, 1 i w. D giver x i til person p i for alle 1 i w. Værdierne af x i er offentligt tilgængelige, dvs. ikke hemmelige. Share-distribution 1. D vælger i hemmelighed s 0 p og dernæst hemmeligt og tilfældigt t 1 elementer a 1,...,a t 1 p. 2. D udregner s i = a(x i ) for alle 1 i w, hvor t 1 a(x)= s 0 + a j x j mod p. j=1 3. D giver i hemmelighed share s i til person p i for alle 1 i w. Nu vises, hvordan personerne p 1,..., p t på en entydig måde kan finde frem til hemmeligheden s 0 = a(0). De kender de t funktionsværdier s i = a(x i ), 1 i t 1 At p er et legeme er et grundlæggende resultat i basal algebra. 26

2.1. (T, W)-THRESHOLD SCHEMES for det hemmelige polynomium a(x) p [x]. a(x) er af grad højst t 1, dvs. a(x)=a t 1 x t 1 + +a 1 x+a 0, hvor elementerne a 0,...,a t 1 p er ubekendte med a 0 = s 0. Ligningerne s i = a(x i ), 1 i t udgør derfor t lineære ligninger med t ubekendte med aritmetik i p. Hvis disse ligninger er uafhængige, er der en entydig løsning med a 0 som D s hemmelighed. Det viser sig imidlertid, at dette system af ligninger faktisk har en entydig løsning, som det fremgår af det følgende. Systemet af de t lineære ligninger i p er s 1 = a t 1 x t 1 1 + +a 2 x 2 1 + a 1x 1 + a 0 s 2 = a t 1 x t 1 2 + +a 2 x 2 2 + a 1x 1 + a 0. s t = a t 1 x t 1 t + +a 2 x 2 t+ a 1 x t + a 0, hvilket kan skrives 1 x 1 x 2 1 x t 1 1 a 0 s 1 1 x 2 x 2 2 x t 1 2 a 1 s 2. =......... 1 x t x 2 t x t 1 t a t 1 s t Koefficientmatricen, kald den A, hedder også en Vandermonde-matrix, og den har som bekendt 2 determinanten det(a) = (x k x j ) mod p, 1 j<k t hvilket altid er forskelligt fra nul i p, da alle faktorer er forskellige fra nul. Ingen af faktorerne (x k x j ) kan være nul, da alle x i erne er forskellige. Da p er et primtal, er p et legeme, og så er produktet af ikke-nul-elementer altid forskelligt fra nul. Dvs. det(a) 0. Det gælder derfor, at enhver delmængde af mindst t personer vil finde en entydig værdi for hemmeligheden a 0. Hvad sker der nu, når en delmængde af t 1 personer samler deres shares? Det første, der sker, er, at de får t 1 ligninger med t ubekendte. Nu kan de forsøge at gætte på en værdi g 0 for hemmeligheden. Dette vil give en t te ligning 2 Velkendt resultat fra lineær algebra. a 0 = a(0)=g 0 27

2.2. VISUAL THRESHOLD SCHEMES samt en ny Vandermonde-matrix med entydig løsning. Dvs. for hvert gæt g 0 på værdien af hemmeligheden fremkommer der en entydig løsning, et entydigt polynomium a g0, med s j = a g0 (x i ), 1 j t g 0 = a g0 (0). Enhver værdi af hemmeligheden er altså mulig. En delmængde af t 1 personer har derfor ingen ikke-triviel information om hemmeligheden. I praksis ville en autoriseret delmængde beregne s 0 ved hjælp af Lagrange interpolation, hvilket giver t s 0 = b j s j, hvor hver koefficient b j = j=1 1 k t,k j x k x k x j kan beregnes fra starten, da x i erne jo var offentligt kendte. 2.2 Visual threshold schemes Dette er et eksempel på en konkret implementering af en form for secret sharing, hvor både hemmelighed og shares er digitale billeder. Hemmeligheden, som dealeren ønsker at dele, er altså et digitalt billede, og hver share er også et digitalt billede, der som sædvanligt er tilfældigt konstrueret umiddelbart inden schemets distributionsfase. Shares er selvfølgelig konstrueret, så autoriserede delmængder kan kombineres tilbage til hemmeligheden, men også så de uautoriserede delmængder - og specielt hver enkelt share ikke afslører noget ikke-trivielt. Det vil sige, at hver share enten kan ligne tilfældig støj, eller de kan ligne rigtig grafik, som dog stadig intet afslører om det hemmelige billede. Ideen i den generelle konstruktion er at inddele hvert pixel fra hemmeligheden i et antal subpixels, som så afhængig af den enkelte share kan være farvede eller ej. Man udnytter derefter en additiv egenskab ved farverne til at emulere farven af hele det færdige pixel. Det færdige pixel er på denne måde en form for mosaik af subpixels lagt ovenpå hinanden. I det følgende vil ordet pixel derfor betegne et pixel fra hemmeligheden, hvorimod shares siges at bestå af subpixels. Antallet af subpixels for hvert pixel kaldes schemets pixel expansion. De schemes, der præsenteres her, kaldes visual threshold schemes (VTS), idet deres access-strukturer er threshold-strukturer. Faktisk er det endda muligt at lave et perfekt sort/hvid visuel secret sharing scheme blot med almindelige OHP-transparenter, som det er gjort i f.eks. [Stinson2], hvor kombination af shares foregår ved at lægge trensparenterne ovenpå hinanden på projektoren. Ideen er illustreret på pixel-basis i figur 2.1 på næste side. I eksemplet fra figur 2.1 er hvert pixel fra hemmeligheden inddelt i to subpixels, så schemets pixel expansion er 2. Farven på hvert af hemmelighedens pixels skulle 28

2.2. VISUAL THRESHOLD SCHEMES Figur 2.1. Visuelt (2, 2)-threshold scheme i sort/hvid gerne fortolkes som enten sort eller hvidt. I virkeligheden er hvert hvidt pixel dog halvt sort og halvt hvidt med et bidrag fra hvert subpixel. Der er nu, som det er vist på figur 2.1, i alt fire kombinationer af subpixels, hvoraf de to giver et hvidt pixel (der i virkeligheden fremstår som gråt), og de sidste to giver et sort pixel. Det ses, at schemet er perfekt, da en uniform fordeling af shares også giver en uniform fordeling af pixelværdier. Dette følger umiddelbart af, at halvdelen af kombinationerne af shares giver den ene farve, mens den anden halvdel giver den anden. Dette forhold, at hemmelighedens pixels ikke helt får deres rigtige farve, bliver vigtigt, når man generaliserer VTS fra sort/hvide billeder til farvebilleder (color VTS). Det giver anledning til følgende definition af den såkaldte color ratio, der er et mål for, hvor stor en andel af et pixels subpixels, der har den korrekte farve: Definition 20. For et (k, n)-visual threshold scheme defineres for hvert pixel (i, j) med farve c i det hemmelige billede følgende color ratio R c, når k shares lægges sammen: # subpixels med farve c R c =. # subpixels Det er nu klart, at repræsentationen af den rekonstruerede hemmelighed bliver mere farveægte, jo højere ovennævnte color ratio er for hvert at dens pixels. Derfor er man generelt interesseret i at maksimere color ratio. I sort/hvid-eksemplet fra figur 2.1 er de to farvers color ratios R hvid = 1/2, mens R sort = 1. Det er ligeledes klart, at jo større et schemes pixel expansion er, jo større er dets shares. I et scheme med pixel expansion p, kommer hver share netop til at have p gange større opløsning. Man vil derfor forsøge at minimere et schemes pixel expansion. Som det kendes fra f.eks. tv-skærme, så er det muligt at emulere et farvebillede ved brug af subpixels med de tre grundfarver, blå, gul og grøn eller mere præcist 29

2.2. VISUAL THRESHOLD SCHEMES (på engelsk): cyan, yellow og green, hvor cyan netop er komplementærfarven til rød. I [Adhikari, Sikdar] vises følgende eksistenssætning for (2, n)-vts: Sætning 21 ([Adhikari, Sikdar], sætning 3). For alle n 3 findes et (2, n)-color VTS med grundfarverne cyan (C), yellow (Y), green (G) med pixel expansion 4m, hvor m er givet ved m= ( n n/2 ), og hvor farvernes color ratios er 3 R Y = R C = 8 + n 1 8 for n lige 3 8 + n 8 for n ulige 1 R G = 4 + n 1 4 for n lige 1 4 + n 4 for n ulige For n=2 findes et (2, n)-color VTS med color ratio 1 2 og pixel expansion 4. I ovennævnte artikel gives desuden også en en konstruktion af et scheme, der opfylder denne sætning. Det ville dog desværre føre for vidt at medtage denne her. I stedet vil vi se, hvad der sker, hvis man øger antallet af farver fra 3 til 6: Sætning 22 ([Adhikari, Sikdar], sætning 4). For alle n 3 findes et (2, n)-color VTS med grundfarverne cyan (C), yellow (Y), green (G), red (R), blue (B), magenta (M) med pixel expansion 6m, hvor m er givet ved m = ( n n/2 ), og hvor farvernes color ratios er 1 R C = R Y = R M = 4 + n 1 12 for n lige 1 4 + n 12 for n ulige 1 R G = R R = R B = 6 + n 1 6 for n lige 1 6 + n 6 for n ulige For n=2 findes et (2, n)-color VTS med color ratio 1 3 og pixel expansion 6. Det ses, at color ratios aftager for alle de tre farver fra det trefarvede scheme, og den gennemsnitlige color ratio taget over samtlige farver er også aftaget. Til gengæld er pixel expansion vokset. Det skal bemærkes, at der findes color VTS med vilkårligt mange farver, men en uheldig effekt af øget farvedybde er bl.a. også en mindsket color ratio. Det kan vises, at der findes en nedre grænse på color ratios, som afhænger omvendt proportionalt med antallet af farver. Til gengæld er denne nedre grænse uafhængig af antallet af shares, dvs. af n. Pixel expansion afhænger ligeledes kun af antallet af farver. Dvs. når man øger farvedybden, så har det to negative sideeffekter: Color ratios aftager, og pixel expan- 30

2.2. VISUAL THRESHOLD SCHEMES sion vokser. Det første betyder, at den rekonstruerede hemmelighed får en større grad af farveforvrængning, mens det andet betyder, at hver share bliver større i opløsning og dermed i datastørrelse. Man kan diskutere, hvorvidt farveforvrængningseffekten diskvalificerer sådanne VTS fra at være perfekte i overensstemmelse med definition 17. Det er jo ikke den eksakte hemmelighed, men en forvrænget udgave af den, der bliver rekonstrueret. Derudover kan det hurtigt blive upraktisk med for store pixel expansions, der besværliggør håndteringen af shares både i genererings-, fordelings- og rekonstruktionsfasen. 31

Kapitel 3 Multi-party computation Dette kapitel drejer sig om multi-party computation, hvor det vil blive præsenteret, hvordan definitioner og resultater formuleres i kryptografisk protokolteori. Metoderne minder mere om teoretisk datalogi end om matematik. Jeg har valgt ikke at give nogen konstruktioner af konkrete protokoller, da det hurtigt ville blive meget omfattende. I stedet henvises til f.eks. [Goldreich1] og [Goldreich2]. Desværre er mange af definitionerne i dette kapitel så lange, at det ikke er muligt at omgive dem med en enkelt kasse i typografien. De er derfor placeret i kasser, der deler sig over page breaks, selvom det eventuelt kan virke en anelse forstyrrende. 3.1 Sikkerhedsmodeller i multi-party computation Vi skal i denne sektion definere tre sikkerhedsmodeller: En såkaldt semi-honest og to såkaldte malicious models. En semi-honest model kaldes også af og til for passiv eller honest but curious, da det betegner en modstander, som følger protokollen, men dybest set er ude på at lære så meget som muligt om andre spilleres inputs mv. Han vil i det hele taget forsøge at snyde så meget, som det nu er muligt uden at bryde protokollen. De to malicious models dækker begge over modeller, hvor modstanderen er aktiv og kan foretage vilkårlige (poly-time) afvigelser fra protokollen. Den første af disse tillader malicious premature abortion 1. Den anden gør det ikke. Definitionenerne er opbygget omkring en sammenligning mellem en ideel og en reel model, som det er illustreret i sektion 1.7. Eftersom disse to malicious models tillader uærlige spillere at gøre næsten hvad som helst, kan de uærlige spillere specielt også antages at samarbejde. Især i en private channel-model, hvor de kan antages at kommunikere indbyrdes udenom de ærlige spillere. Det kan derfor være nyttigt at forestille sig mængden af evt. samarbejdende modstandere som én enkelt ekstern modstander, der tager fuld kontrol over en række 1 utidig abort, protokollen afsluttes, før den er tilendebragt. 33

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION spillere. Denne generaliserede eksterne modstanderabstraktion vil vi derfor repræsentere ved en enkelt poly-time algoritme. De to malicious models er: Første malicious model I denne model kan de vilkårligt mange uærlige spillere tvinge protokollen til utidig abort, hvorved den øjeblikkeligt stopper, og dens output blot bliver en følge af er. Anden malicious model I denne model er der kun tilladt et strengt mindretal af uærlige spillere, hvorved de ærlige ved simulering af det uærlige mindretal kan forhindre utidig abort. Det er vigtigt at lægge mærke til, at modstanderen i de to malicious models på forhånd skal vælge, præcis hvilke spille, han vil tage kontrol over, og denne delmængde skal holdes konstant gennem hele kørslen af protokollen. En modstander, der undervejs kan vælge at kontrollere nye spillere, kaldes en adaptiv modstander. En adaptiv modstander er en form for aktiv modstander, der kan alt, hvad en modstandere i 2. malicious model kan, men derudover kan den også løbende under kørslen af protokollen vælge nye spillere at kontrollere. Den må dog stadig, ligesom i 2. malicious model, kun kontrollere et strengt mindretal af spillerne. Årsagen til dette krav har med verifiable secret sharing at gøre. Det bliver forklaret i sektion 3.2.2. 3.1.1 Semi-honest model Indledende definitioner: Private computing vil i det følgende betyde, at en mængde af passive modstandere kun lærer samme information ved at deltage i protokollen, som kan udledes af deres input og output. Det er det samme som at sige, at de ikke kan kigge over skuldrene på ærlige spilleres inputs og beregninger. En m-input funktionalitet vil i det følgende være en stokastisk afbildning af følger (bitstrenge) på formen x=(x 1,..., x m ) over i stokastiske variable ( f 1 ( x),..., f m ( x)). Dvs. f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)) (x 1,..., x m ) ( f 1 (x 1,..., x m ),..., f m (x 1,..., x m ) ), hvilket skal forstås således, at den i te spiller har lokalt input x i og modtager output f i ( x). Vi antager desuden, at alle lokale inputs er af samme længde, dvs. x i = x j for alle i, j. Husk at skrivemåden X c Y betegner, at de to ikke-uniforme fordelinger X og Y er computationally indistinguishable, jvf. definition 16. Definition 23 (Semi-honest privacy, private channel-model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)). fortsættes 34

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION fortsat fra forrige side For I={i 1,...,i t } [m]={1,...,m} betegner f I ( x) delfølgen{ f i ( x)} I. Lad Π være en m-party protokol, der beregner f. Den i te spillers VIEW i løbet af protokollen, der kører på input x er VIEW Π i ( x)=(x i, r, m 1,...,m k ), hvor r er udfaldet af i te spillers lokale møntkast, og m j er den j te besked, spilleren har modtaget. For I={i 1,...,i t } defineres VIEW Π I ( x)=( I,VIEW Π i 1 ( x),...,view Π i t ( x) ). Den i te spillers output eroutput Π i, hvorved protokollens samlede output bliver OUTPUT Π ( x)= ( OUTPUT Π 1,...,OUTPUTΠ m). Deterministisk tilfælde: Hvis f er en deterministisk funktionalitet (en funktion), så sigesπat beregne f privately, hvis der findes en poly-time algoritme S, så det for alle I [m] gælder, at {( S ( I, ( xi1,..., x it ), fi ( x) ), f I ( x) )} x {0,1} m c { VIEW Π I ( x) } x {0,1} m. Generelt: Protokollen Π siges at beregne f privately, hvis der findes en polytime algoritme S, så det for alle I [m] gælder {( ( ( ) S I, xi1,..., x it, fi ( x) ), f I ( x, f ( x)) )} c{ VIEW Π x {0,1} m I ( x),output Π ( x) } x {0,1} m. Bemærk: Det ses i sidste linie ovenfor, hvordan det kræves, at de uærlige spilleres opførsel kan simuleres af en poly-time simulatoralgoritme S. Bemærk også, at da dette er en private channel-model, erview Π I ( x) de lokale views mellem de uærlige spillere og altså ikke mellem de ærlige, da de uærlige spillere, som nævnt, har mulighed for at kommunikere i hemmelighed udenom de ærlige spillere. 3.1.2 1. malicious model Kørsel af protokollen i ideel model: Det skal indledningsvist slås fast, hvordan syntaksen er for den ideelle model. Dvs. hvordan spillerne kommunikerer samt håndterer inputs og outputs. Inputs: Hver spiller i modtager fra trusted party et lokalt input x i, som ved modtagelsen kun kendes af denne spiller (samt evt. af trusted party). 35

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION Sending af inputs til trusted party: Ærlige spillere sender deres personlige x i til trusted party. Malicious parties kan afhængig af x i, af ekstra-input z samt lokale møntkast vælge enten abort eller at sende et x i {0, 1} x i til trusted party. Trusted party svarer spiller 1: Hvis trusted party modtager (x 1,..., x m ), svarer trusted party med f 1 (x 1,..., x m ) til spiller 1. Hvis trusted party kun modtager (x 2,..., x m ), sender den (abort) til alle spillere. Trusted party svarer resten af spillerne: Hvis spiller 1 er malicious, kan denne tvinge trusted party til abort. Trusted party sender da til alle andre spillere. Ellers sender trusted party f i ( x) til spiller i. Outputs: Ærlige spillere vil altid give resultatet fra trusted party som output. En malicious spiller kan give et output, som er en poly-time funktionalitet af det oprindelige input, et ekstra-input, et lokalt random-tape samt output fra trusted party. Definition 24 (Ideelle model, 1. malicious model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)). For I={i 1,...,i t } [m]={1,...,m} betegner Ī= [m]\i, og x I = { } x i1,..., x it. Parret (I, B), hvor I [m] og B er en poly-time algoritme, repræsenterer en modstander i den ideelle model. Afviklingen af f under (I, B) i den ideelle model på input x og ekstra-input z betegnesideal (1) f,i,b(z) ( x) og er defineret ved uniformt tilfældigt at vælge et random-tape r for modstanderen og lade IDEAL (1) f,i,b(z) ( x)=υ( x, I, z, r), hvor Υ( x, I, z, r) er defineret ved følgende to tilfælde: spiller 1 er ærlig (1 I): Υ( x, I, z, r)= ( f Ī ( x ), B( x I, I, z, r, f I ( x )) ), hvor x = (x 1,..., x m) med x i = B( x I, I, z, r) i for i Iog x i = x i ellers. spiller 1 er uærlig (1 I): ( Ī, B( x I, I, z, r, f I ( x ), ) ) hvis B( x I, I, z, r, f I ( x )= Υ( x, I, z, r)= ( fī ( x ), B( x I, I, z, r, f I ( x )) ) ellers, hvor x = (x 1,..., x m ) med x i = B( x I, I, z, r) i for i Iog x i = x i ellers. 36

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION Grunden til opdelingen i de to tilfælde efter spiller 1 er, at man WLOG kan antage, at det er spiller 1, der forårsager en evt. abort af protokollen. Kørsel af protokollen i den reelle model: En malicious spiller kan vælge at følge enhver poly-time strategi dvs. enhver poly-time algoritme, som tager et ekstra-input (ærlige spillere ignorerer et sådant ekstra-input). Specielt kan en sådan spiller til ethvert tidspunkt vælge at aborte protokollen, hvorefter andre spillere intet output modtager fra protokollen. Følgende ting er mulige: Malicious spillere kan vælge fra starten ikke at deltage i protokollen. Malicious spillere kan vælge at ændre deres lokale input. Malicious spillere kan vælge at aborte protokollen i utide. Definition 25 (Modstander, 1. malicious reelle model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)) præcis som i definition 24 og ladπvære en m-party protokol, der beregner f. Lad Ā=(A 1,..., A m ) være en tupel af probabilistiske poly-time algoritmer, der repræsenterer strategier i den reelle model. En sådan tupel siges at være tilladt mht.π, hvis mindst én A i stemmer medπ. Kørsel afπunder Ā i den reelle model på input x og ekstra-input z giver outputreal Π,Ā(z) ( x) og er defineret som protokollens output-tupel fra interaktion med A 1 (x 1, z),..., A m (x m, z). Bemærk: Da enhver ærlig spiller A i ignorerer ekstra-input z, gør det ikke nogen forskel, at de får et sådant. Det er nu muligt at definere en sikker protokol i den reelle model som en sammenligning mellem den ideelle og den reelle model. Definition 26 (Sikkerhed, 1. malicious reelle model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)) som i definition 24. fortsættes 37

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION fortsat fra forrige side Kørsel af protokollenπunder (I, Ā) i den reelle model (definition 24) på input x og ekstra-input z giver outputreal Π,I,Ā(z) ( x) og er defineret som output-følgen efter interaktion mellem de m spillere, hvor beskederne fra spillerne i I (de uærlige) er beregnet i forhold til Ā( x I, I, z), og beskederne fra spillerne i Ī= [m]\i (de ærlige) er beregnet medπ. Beskederne fra uærlige spillere (dem i I) er bestemt af modstanderen Ā baseret på de oprindelige lokale inputs, ekstra-input z samt alle beskeder sendt indtil videre fra alle spillere (også fra de ærlige). ProtokollenΠsiges at beregne f på en sikker facon i den 1. malicious model, hvis der for enhver probabilistisk poly-time algoritme Ā (der repræsenterer en reel-model modstanderstrategi) eksisterer en poly-time algoritme B (der repræsenterer en ideel-model modstanderstrategi), så det for alle I [m] gælder, at { IDEAL (1) f,i,b(z) ( x)} x,z Da kaldes Π en implementering af f. c { REAL Π,I,Ā(z) ( x) } x,z. Bemærk: Modstanderen i definitionerne 24 og 26 kan aflytte alle kanaler. Hvis private channels kan antages, skalreal Π,I,Ā(z) ( x) modificeres, så Ā kun afhænger af informationerne modtaget af I. 3.1.3 2. malicious model Der antages strengt mindretal af uærlige spillere, hvilket i praksis umuliggør utidig abort af protokollen. Derfor antages det, at alle kørsler forløber og terminerer korrekt i forhold til protokollen. Den følgende definition minder teknisk set en del om definition 26. Definition 27 (Sikkerhed, 2. malicious model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)) som i definition 24. En ideel-model modstander er som i definition 24 bortset fra, at utidig abort ikke længere er tilladt. Kørsel afπiden ideelle model under (I, B) på input x og ekstra-input z betegnes IDEAL (2) f,i,b(z) ( x). Reel-model modstanderen er defineret som i definition 26 bortset fra, at strengt flere end halvdelen af A i erne skal følge protokollenπ. fortsættes 38

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION fortsat fra forrige side protokollen Π siges at beregne f på en sikker facon i den 2. malicious model, hvis der for hver probabilistisk poly-time algoritme A (der repræsenterer en reelmodel modstanderstrategi) eksisterer en poly-time algoritme B (der repræsenterer en ideel-model modstanderstrategi), så det for alle I [m] gælder, at Da kaldes Π en implementering af f. { IDEAL (1) f,i,b(z) ( x)} c { REAL x,z Π,I,Ā(z) ( x) }. x,z 3.1.4 Adaptiv malicious model I [Goldreich2] gives følgende skitse til en definition af sikkerhed i den adaptive malicious model. Opbygningen er teknisk set den samme som for de to malicious models i definitionerne 26 og 27, hvor man definerer sikkerhed som en computational indistinguishability mellem en ideel model og en reel model. Følgende definition er (også i [Goldreich2]) kun en skitse og indeholder derfor en masse tekst. Definition 28 (Sikkerhed, adaptiv malicious model). Lad f være en m-input funktionalitet givet ved f : ({0, 1}) m ({0, 1}) m x ( f 1 ( x),..., f m ( x)) som i definition 24. Lad t<m/2 være en grænse (threshold) for antallet af spillere, modstanderen tillades at kontrollere. t-adaptiv ideel-model-modstanderen er en probabilistisk process, der opererer i højst t+ 1 trin, som er inddelt i to faser. I hvert trin i første fase kan modstanderen, baseret på den til det tidspunkt tilgængelige information, beslutte, om den vil tage kontrol over endnu en spiller eller gå videre til anden fase. Hvis det første er tilfældet, bestemmer modstanderen identiteten af denne spiller og får dennes lokale input. Hvis det andet er tilfældet, benytter modstanderen sin tilgængelige information til at bestemme et input, som den giver til trusted party. Alle andre spillere giver deres lokale inputs til trusted party, som beregner og forsyner hver spiller med et output. Modstanderen modtager alle outputs fra de spillere, den kontrollerer og kan ikke forhindre ærlige spillere i at modtage deres output (ingen abort). fortsættes 39

3.1. SIKKERHEDSMODELLER I MULTI-PARTY COMPUTATION fortsat fra forrige side I hvert trin i anden fase kan modstanderen, baseret på den til det tidspunkt tilgængelige information, beslutte, om den vil tage kontrol over endnu en spiller. Modstanderen bestemmer da identiteten af denne spiller og får dennes lokale input og output. Kørsel af protokollen i den ideelle model under en adaptiv modstander giver en følge af samtlige outputs til ærlige spillere, modstanderens output samt følgen af spillere, der har været kontrolleret. t-adaptiv reel-model-modstanderen er en probabilistisk strategi, der svarer til et angreb på en virkelig kørsel af protokollen. En sådan modstander kan løbende vælge højst t spillere, som den ønsker at kontrollere og modtager deres øjeblikkeligeview. Modstanderen kan vælge et antal spillere før selve protokollen begynder, og nogen efter, at den er afsluttet. I alle tilfælde dog kun højst t. Kørsel af protokollen i den reelle model under en adaptiv modstander giver en følge af samtlige outputs til ærlige spillere, modstanderens output samt følgen af spillere, der har været kontrolleret. Definition af sikkerhed: En protokol Π, der beregner f, siges at være t-adaptively secure, hvis der for hver poly-time t-adaptiv reel-model-modstander A findes en poly-time t-adaptiv ideel-model-modstander B, så kørsel i den reelle model under A er computational indistinguishable fra kørsel i den ideelle model under B. Det skulle nu gerne være klart, at disse modeller, som før nævnt, er opbygget omkring en sammenligning mellem en ideel model og en reel model. Jeg vil her forsøge at klargøre idéen bag denne metode. Man starter med at definere en modstandermodel, dvs. hvilke handlinger modstanderen er i stand til at udføre. Når man så definerer den ideelle model, indebærer det som illustreret i sektion 1.7 en beskrivelse af protokollen med en modstander fra modstandermodellen samt med en trusted party, der udfører alle beregninger og distribuerer resultatet til spillerne. Man definerer så for denne ideelle model et VIEW, hvilket er den mængde information, spillerne har inklusivt alle inputs og outputs fra protokollen (fra trusted party). DetteVIEW kaldes for noget i stil medideal. I den reelle model er der ingen trusted party. Her er det den virkelige protokol, der er tale om, og her defineres også etview over hver spillers samlede information. Dette VIEW kaldes REAL. Eftersom vi ønsker at definere en sikker reel protokol, vil det være nærliggende at kræve, at den skal være lige så sikker som den ideelle model, hvor der er en trusted party. Og det er i princippet, hvad man gør. Dog er kravet ikke, at den reelle model 40

3.2. HOVEDRESULTATER skal være præcis som den ideelle, men blot, at det skal være umuligt for den enkelte spiller (og for modstanderen) at skelne imellem det VIEW (den information), de ser i de to modeller. Hvis alle spillere ser praktisk taget den samme information i den reelle model som i den ideelle, bliver modstanderen nødt til at benytte samme strategi i den reelle model som i den ideelle, som jo er sikker. 3.2 Hovedresultater I denne sektion skal en række vigtige resultater angående secure multi-party computation og verifiable secret sharing præsenteres. Først præsenteres resultater for multiparty computation i de forskellige modstandermodeller. Dernæst præsenteres en eksistenssætning for verifiable secret sharing, hvilket jo for det første også kan siges at være en form for multi-party computation og for det andet udgør et vigtigt redskab i konkrete protokoller for multi-party computation. 3.2.1 Multi-Party computation Først præsenteres et sikkerhedsresultat for semi-honest modellen. Dernæst for de to malicious modeller. Alle disse er uden private channels, men forudsætter enhanced trapdoor permutations. Efterfølgende ses et resultat for en adaptiv malicious modstander i en model med private channels. Slutteligt findes et resultat vedrørende en adaptiv malicious computationally unbounded modstander. Sætning 29 (Semi-honest modellen). Hvis der eksisterer familier af enhanced trapdoor permutations, så kan enhver m-funktionalitet beregnes sikkert i semihonest modellen. Sikkerheden er endda bevaret, selvom modstanderen er i stand til at aflytte al kommunikation mellem ærlige spillere (ingen private channels). Sætning 30 (De to malicious modeller). Hvis familier af enhanced trapdoor permutations eksisterer, så kan enhver m-input funktionalitet beregnes i begge malicious modeller, hvis netværket understøtter en PKI eller en broadcast channel. Sikkerheden er endda bevaret, selvom modstanderen er i stand til at aflytte al kommunikation mellem ærlige spillere (ingen private channels). Det er muligt at udvikle resultater, der gælder for en adaptiv malicious model, men det er også under antagelse af private channels. Den følgende sætning er et vigtigt resultat angående sikkerheden af secure multi-party computation i en adaptive malicious private channel model. 41

3.2. HOVEDRESULTATER Sætning 31 (Adaptiv malicious modellen, private channels). 1. I private channel-modellen kan enhver m-input funktionalitet beregnes på en m 1 3 -adaptively secure facon, og emuleringen er perfekt. 2. Under antagelse af sværheden af RSA og DLP kan enhver m-input funktionalitet beregnes på en m 1 3 -adaptively secure facon, også selvom en modstander kan aflytte alle kommunikationslinier. Bemærk at der i punkt 2 nævnes, at modstanderen kan aflytte alle kommunikationslinier, hvilket klart ikke er omfattet af private channel-modellen. Grunden til, at sætningen alligevel ikke strider imod denne model er, at kanalerne i punkt 2 netop sikres af public-key kryptering med (enhanced) trapdoor permutations baseret på RSA eller DLP. I det ovenstående har det hele tiden været antaget, at modstanderen var computationally bounded, dvs. kunne køres som en algoritme i polynomiel-tid. Det er imidlertid også muligt at vise resultater vedrørende en computationally unbounded modstander. Det er altså en modstander, der ikke er begrænset af nogen tidsmæssige forhold i sin algoritme. Det er det samme som at antage ubegrænset beregningskraft. Følgende resultat omhandler en sådan computationally unbounded modstander i private channel-modellen: Sætning 32 (Computationally unbounded modstander, private channels). Multiparty computation med en computationally unbounded modstander i et netværk med private channels er muligt, hvis: 1. Modstanderen er passiv og kontrollerer strengt mindre end halvdelen af spillerne. 2. Modstanderen er adaptiv malicious og kontrollerer strengt mindre end en tredjedel af spillerne. 3. Modstanderen er adaptiv malicious og kontrollerer højst halvdelen af spillerne. Dog kræves en broadcast channel. Jeg har udeladt begrebet fairness, der betegner den egenskab, at en vilkårlig spiller får sit eget korrekte output, hvis og kun hvis alle andre spillere får deres egne korrekte outputs. Problemet er, at en spiller i 1. malicious model kan vælge at aborte protokollen hurtigst muligt efter selv at have modtaget netop nok data. For en gennemgang af dette samt af concurrently secure og environmentally secure protocols henvises i stedet til [Goldreich2]. 42

3.2. HOVEDRESULTATER 3.2.2 Verifiable threshold schemes Først skal vi se en mere generel definition af et perfekt threshold secret sharing scheme. Den følgende definition baserer sig på (poly-time) algoritmer og sandsynlighedsfordelinger af stokastiske variable. I forhold til formuleringen i sektion 1.6 tillader den lettere en udvidelse til verifiable secret sharing, hvilket også er gjort efterfølgende. Definition 33. Et (t, m)-sss er et par af (evt. poly-time i m) algoritmer (G m,t, R m,t ), der opfylder det følgende: Syntaks: Share-genereringsalgoritmen G m,t er en probabilistisk afbildning fra mængden af hemmelige bits til m-følger af shares: For ethvertσ {0, 1} er den stokastiske variabel G m,t (σ) fordelt over ({0, 1} ) m. Rekonstruktionsalgoritmen R m,t afbilder t-følger af par fra [m] {0, 1} over i en bitσ, hvor [m]={1,...,m}. Rekonstruktionskrav: Alle t-delmængder skal kunne rekonstruere korrekt: For alleσ {0, 1} skal det gælde for enhver følge (s 1,..., s m ) i G m,t (σ) s billede og for enhver t-delmængde{i 1,...,i t } [m], at R m,t ( (i1, s i1 ),...,(i t, s it ) ) =σ. Sikkerhedskrav: For alle (t 1)-delmængder I [m] skal fordelingen af I-komponenterne af G m,t (σ) være uafhængige afσ: For enhver I={i 1,...,i t 1 } [m] og enhver følge (s 1,..., s m ) i G m,t (σ) s billede defineres den stokastiske variabel g I (σ)= ( (i 1, s i1 ),...,(i t, s it 1 ) ). For alle sådanne I skal g I (0) og g I (1) være identisk fordelt. En ulempe ved secret sharing schemes, som de er beskrevet i definition 33, er, at de antager ærlige (semi-honest) spillere. Dvs. de beskytter ikke mod nogen aktiv modstander. Dette giver anledning til begrebet verifiable secret sharing, der netop beskytter mod en sådan modstander i 1. malicious model. Det følgende er en lidt forsimplet definition af et verifiable threshold scheme, dvs. et VSS med en threshold-struktur. Der findes en mere stringent definition bl.a. i [Goldreich2], men den er fire gange så lang som den følgende og meget mere teknisk. Den benytter bl.a. et såkaldt commitment scheme undervejs og bidrager ellers ikke med noget væsentligt i denne sammenhæng. Løst sagt siger den følgende definition, at et VSS er et scheme, der beregner et definition 33-SSS s sharegenereringsfunktionalitet. Definition 34 (Threshold VSS, simpel version). Et (t, m)-vss er en m-party protokol, der implementerer (beregner sikkert i 1. malicious model) sharegenereringsfunktionaliteten fra et (t, m)-sss defineret i definition 33. 43

3.2. HOVEDRESULTATER Ud over at give mulighed for sikre secret sharing-konstruktioner spiller verifiable secret sharing (VSS) også en vigtig rolle i secure multi-party computation. Et VSS kan siges selv at være en form for secure multi-party computation, men det viser sig desuden, at VSS er en del af selve konstruktionerne af secure multi-party computationprotokoller, så snart disse inkluderer flere end to spillere. Disse protokoller bruger simpelthen VSS som et kryptografisk værktøj til at modificere protokoller, der er sikre i 1. malicious model til lignende protokoller, der er sikre i 2. malicious model. Måden, det gøres på, er, at hver spiller VSS-deler sit lokale input med de andre spillere, så mindst et strengt flertal af spillere kan rekonstruere om nødvendigt. Det er årsagen til, at 2. malicious model ikke tillader flere end et strengt mindretal af malicious spillere. Hvis nemlig man tænkte sig at tillade et flertal af malicious spillere, så ville det betyde, at de ærlige spillere ville blive nødt til at VSS-dele deres lokale inputs i et tilsvarende threshold scheme, hvor højst halvdelen af spillerne ville være autoriseret. Men så ville malicious spillere på egen hånd være i stand til at rekonstruere ærlige spilleres lokale inputs. Så den eneste måde, man kan undgå dette, er, hvis de uærlige spillere altid er for få til på egen hånd at rekonstruere i de anvendte VSS. Som værktøj er det vigtigt at forsøge at komme frem til eksistensresultater angående VSS. Det er jo ikke nemt at benytte et værktøj uden at vide under hvilke omstændigheder, det eksisterer. Sætning 35. Hvis trapdoor permutationer eksisterer, så findes der et (t, m)-vss for alle t m. Dette resultat viser, hvorledes trapdoor permutationer viser sig at være et helt centralt begreb for eksistensen af VSS og dermed også for secure multi-party computation. Det er fortsat et uløst problem at fastslå en nødvendig og tilstrækkelig betingelse for eksistensen af trapdoor permutationer. Et sådant resultat ville faktisk være et vigtigt gennembrud for den moderne kompleksitetsteori, idet trapdoor permutationer hænger sammen med one-way functions, hvilket som beskrevet i sektion 1.2 igen ville kunne afgøre P NP-problemet. Netop P NP-problemet (hvorvidt P NP eller ej) regnes af mange for at være umuligt at afgøre, og derfor skal man heller ikke forvente nødvendigvis at komme til at se et sådant gennembrud i studiet af trapdoor permutationer eller one-way functions. Derfor er moderne kryptografi og protokolteori til stadighed baseret på en vis mængde af formodninger som P NP-problemet eller eksistensen af one-way functions og trapdoor permutationer. 44

Litteratur [Adhikari, Sikdar] Avishek Adhikari, Somnath Sikdar, A New (2, n)-visual Threshold Scheme for Color Images, INDOCRYPT 2003, Springer-Verlag 2003, LNCS 2904, pp. 148 161. [Delfs, Knebl] [Goldreich1] [Goldreich2] [Martin] [Papadimitriou] [Shamir] [Shannon1] [Shannon2] [Stinson1] [Stinson2] [Yao] Hans Delfs, Helmut Knebl, Introduction to Cryptography, Principles and Applications, Springer-Verlag (2002) Oded Goldreich, Foundations of Cryptography I, Cambrigde University Press, 2006. Oded Goldreich, Foundations of Cryptography II, Cambrigde University Press, 2004. Keith Murray Martin, Discrete Structures in the Theory of Secret Sharing, Ph.d. thesis, University of London. Christos H. Papadimitriou, Computational Complexity, Addison- Wesley Publishing Company. A. Shamir, How to share a secret, Communications of the ACM, 22 (1979), pp. 612 613. C. E. Shannon, A mathematical theory of communication, Bell Systems Technical Journal, 27 (1948), pp. 379 423, 623 656. C. E. Shannon, Communication theory of secret systems, Bell Systems Technical Journal, 28 (1949), pp. 656 715. Douglas R. Stinson, Cryptography Theory and Practice, The CRC Press Series on Discrete Mathematics and Its Applications. Douglas R. Stinson, Doug Stinson s Visual Cryptography Page, http://www.cacr.math.uwaterloo.ca/ dstinson/visual.html A. C. Yao, Protocols for Secure Computations (extended abstract), Proceedings of the 21st Annual IEEE Symposium on the Foundations of Computer Science, 1982, pp 160-164. 45

Indeks abort.............................. 34 access-struktur.................. 16, 28 basis for....................... 17 perfekt........................ 18 asymmetrisk kryptering............. 10 asymmetrisk kryptering.............. 8 bankboksproblemet................. 25 Brickells vektorrumskonstruktion. 18, 21 ciphertext........................... 8 color ratio..........................29 color VTS......................... 29 computational indistinguishability.... 15 computationally bounded....................... 42 unbounded..................... 42 dealer.......................... 16, 17 dekryptering........................ 8 nøgle........................... 8 Diffie-Hellman key exchange........ 13 diskret logaritme................. 6, 13 -problemet...................... 7 distributionsfunktion................ Se fordelingsfunktion DLP..... Se diskret logaritme-problemet entropi.......................... 3, 18 fairness............................ 42 faktorisering........................ 6 fordelingsfunktion.................. 17 funktionalitet....................... 23 deterministisk.................. 23 hardness average-case.................... 7 worst-case...................... 5 heltalsfaktorisering...................6 hemmelighed................... 16, 17 hybridsystem.......................12 ideel model...........21, 22, 35, 36, 38 implementering................. 38, 39 indistinguishable...... Se computational indistinguishability informationsteoretisk sikkerhed....... 9 informationsteori................. 3, 18 kryptering....................... 8, 14 asymmetrisk................. 8, 10 nøgle........................... 8 symmetrisk..................... 8 kryptologi...........................8 malicious model adaptiv........................ 39 unbounded...................42 anden...................33, 34, 38 første............... 33, 34, 36, 37 millionær-problemet................ 22 model ideel............. 21, 22, 35, 36, 38 reel................. 21, 22, 37, 38 modstander........................ 23 adaptiv..................... 34, 39 unbounded...................42 aktiv.......................... 33 passiv...................... 23, 33 modstandermodel............ 23, 37, 38 monotoni.......................... 16 multi-party computation......... 21, 33 47

INDEKS mutual information.................. 5 negligibel........................... 6 NP (kompleksitetsklasse)..........5, 44 NP-komplet......................... 5 nøgle............................... 8 dekrypterings-...................8 krypterings-..................... 8 one-way function................. 5, 11 trapdoor-....................... 7 P (kompleksitetsklasse)........... 5, 44 P NP-problemet................ 5, 44 perfekt access-struktur................. 18 secret sharing........ 17, 18, 21, 29 person......................... 16, 17 pixel.............................. 28 PKI......... Se public-key infrastruktur plaintext............................ 8 poly-time... Se polynomiel-tid algoritme polynomiel-tid algoritme............. 5 private channel........................ 33 computing..................... 34 privately beregne........................35 public-key......................... 10 infrastruktur................... 11 reel model............... 21, 22, 37, 38 RSA...............................12 RSA-antagelsen.................... 12 sammenhængende.................. 17 secret sharing scheme............... 16 perfekt.............. 17, 18, 21, 29 sammenhængende.............. 17 threshold................... 25, 43 visual......................... 25 semantic security................ 14, 15 semi-honest model.............. 33, 34 session key.........................12 Shamirs threshold scheme........18, 26 Shannon-information.................4 share........................... 16, 17 sikkerhed informationsteoretisk............ 9 semantic....................... 14 sikkerhedsmodel................ 23, 33 1. malicious............. 34, 36, 37 2. malicious................ 34, 38 adaptiv........................ 39 unbounded...................42 malicious...................... 33 semi-honest................ 33, 34 SSS........... Se secret sharing scheme subpixel........................... 28 symmetrisk kryptering............... 8 third trusted party...................21 threshold -struktur....................25, 28 VSS...........................43 threshold scheme................ 25, 43 Shamirs.................... 18, 26 verifiable...................... 43 visual......................... 25 tilladt..............................37 trapdoor............................ 7 one-way function................ 7 permutation..................... 7 trusted party....... Se third trusted party Vandermonde-matrix................27 verifiable secret sharing.................. 43 threshold scheme............... 43 VIEW............................. 21 visual threshold schemes............ 25 VSS.........Se verifiable secret sharing VTS....... Se visual threshold schemes color.......................... 29 48