Välkommen till en översikt av...

Relevanta dokument
Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Krypteringteknologier. Sidorna ( ) i boken

Ekvivalensrelationer

Föreläsning Datastrukturer (DAT036)

Blockkedjor. en introduktion för datavetare. Rikard Hjort, 24 maj 2019

Grundläggande datalogi - Övning 4

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Implementering av tabellen. Operationer på tabellen

Datastrukturer. föreläsning 10. Maps 1

Magnus Nielsen, IDA, Linköpings universitet

Karlstads Universitet, Datavetenskap 1

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Fredag 10 juni 2016 kl 8 12

Föreläsning 5 Datastrukturer (DAT037)

Kryptografiska mekanismer och valutor

Programmeringsmetodik DV1 Programkonstruktion 1. Moment 8 Om abstrakta datatyper och binära sökträd

Kryptografiska mekanismer och valutor

Dugga Datastrukturer (DAT036)

Datasäkerhet. Petter Ericson

Ännu mera träd: 2-3-träd, B-träd, rödsvarta träd, träd Weiss, avsnitt 4.7, 11.5, 12.2, etc.

Tentamen Datastrukturer D DAT 035/INN960

Programkonstruktion och. Datastrukturer

Prov i DAT 312: Algoritmer och datastrukturer för systemvetare

Det är principer och idéer som är viktiga. Skriv så att du övertygar rättaren om att du har förstått dessa även om detaljer kan vara felaktiga.

Sökning. Översikt. Binärt sökträd. Linjär sökning. Binär sökning. Sorterad array. Linjär sökning. Binär sökning Hashtabeller

Datastrukturer. föreläsning 6. Maps 1

Datastrukturer och algoritmer

Institutionen för Datavetenskap Department of Computer Science

TDDI16 Datastrukturer och algoritmer. Prioritetsköer, heapar, Union/Find

Datastrukturer, algoritmer och programkonstruktion (DVA104, VT 2015) Föreläsning 6

Föreläsning 4 Datastrukturer (DAT037)

Föreläsninsanteckningar till föreläsning 3: Entropi

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Föreläsning 10 Datastrukturer (DAT037)

BINÄRA TRÄD. (X = pekarvärdet NULL): struct int_bt_node *pivot, *ny; X X X 12 X X 12 X X -3 X X

Algoritmer och datastrukturer 2012, fo rela sning 8

Programkonstruktion och. Datastrukturer

Datastrukturer, algoritmer och programkonstruktion (DVA104, HT 2014) Föreläsning 5

Föreläsning 9 Innehåll

Tabeller. Programkonstruktion. Moment 8 Om abstrakta datatyper och binära sökträd. Specifikationer för tabellfunktionerna. Operationer på tabellen

Tentamen Datastrukturer, DAT037 (DAT036)

Innehåll. Föreläsning 10. Specifikation. Mängd. Specifikation. Konstruktion av mängd. Mängd Lexikon Hashtabell

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Självbalanserande träd AVL-träd. Koffman & Wolfgang kapitel 9, avsnitt 1 2

Hashing Bakom kulisserna på Pythons dictionary

Innehåll. Föreläsning 12. Binärt sökträd. Binära sökträd. Flervägs sökträd. Balanserade binära sökträd. Sökträd Sökning. Sökning och Sökträd

Tentamen med lösningsförslag Datastrukturer för D2 DAT 035

Hashing Bakom kulisserna på Pythons dictionary. Leta i listor Osorterade listor. Leta i listor Sorterade listor

Filsystem. Varför? Hur? För att kunna lagra data mer permanent än i RAM. Vettig organisation Vettiga namn

Kryptografi - När är det säkert? Föreläsningens innehåll. Kryptografi - Kryptoanalys. Kryptering - Huvudsyfte. Kryptografi - Viktiga roller

Lösningsförslag för tentamen i Datastrukturer (DAT037) från

Föreläsning 9 Datastrukturer (DAT037)

Öppna filer och filsystem i PintOS Hemuppgift TDDI81, 21/

Två fall: q Tom sekvens: () q Sekvens av element: (a b c) ; (sum-rec '(2 4 6)) = 12. q Första elementet uppfyller vissa villkor: (2 a b c)

Programmering för Språkteknologer II. Innehåll. Associativa datastrukturer. Associativa datastrukturer. Binär sökning.

Tentamen Datastrukturer D DAT 035/INN960

ZFS. Linuxadministration I 1DV417. Wednesday, January 23, 13

Föreläsning Datastrukturer (DAT036)

Operativsystem ID2200 Tentamen TEN1 3.8 hp :00-18:00

Tentamen (del 2) (4 högskolepoäng) i Programkonstruktion och datastrukturer (1DL201)

TDDC74 Programmering: Abstraktion och modellering Datortenta , kl 14-18

Föreläsning 7. Träd och binära sökträd

HP StoreEasy 5000 Network Storage Solution Installation and Startup Service

DAI2 (TIDAL) + I2 (TKIEK)

Tentamen Datastrukturer D DAT 035/INN960 (med mycket kortfattade lösningsförslag)

Föreläsning Datastrukturer (DAT036)

Hashing Bakom kulisserna på Pythons dictionary

Hot mot nyckelhantering i DNSSEC och lite om hur man undviker dem. Anne-Marie Eklund Löwinder Kvalitets- och säkerhetschef

TENTAMEN TDDD12 Databasteknik 7 januari 2010, kl 14-18

TENTAMEN: Algoritmer och datastrukturer. Läs detta!

Jämförelse av skrivtekniker till cacheminne

Tentamen kl Uppgift 4. Uppgift 5

Datastrukturer. föreläsning 10. Maps 1

Tentamen, Distribuerade System/Programvaruarkitektur

Försättsblad till skriftlig tentamen vid Linköpings Universitet

Din manual HP PAVILION DV7-1103EA

Lösningsförslag till tentamen Datastrukturer, DAT037,

Föreläsning 4 Datastrukturer (DAT037)

Tentamen i Databasteknik

Trädstrukturer och grafer

Föreläsning 1. Introduktion och sökning i graf. Vad är en algoritm?

Algoritmer och datastrukturer

Binära sökträd. Seminarium 9 Binära sökträd Innehåll. Traversering av binära sökträd. Binära sökträd Definition. Exempel på vad du ska kunna

Datastrukturer. Föreläsning 5. Maps 1

Instruktioner - Datortentamen TDDD73 Funktionell och imperativ programmering i Python

Upplägg. Binära träd. Träd. Binära träd. Binära träd. Antal löv på ett träd. Binära träd (9) Binära sökträd (10.1)

Lägg uppgifterna i ordning. Skriv uppgiftsnummer och din anmälningskod överst i högra hörnet på alla papper.

Innehåll. F7: Tabell, hashtabell, relation & lexikon. Gränsyta till Tabell. Tabell. Tabell Hashtabell Relation Lexikon.

TENTAMEN. TDDD12 Databasteknik TDDD46 Databasteknik. 16 augusti 2010, kl 14-18

Programmering för språkteknologer II, HT2014. Rum

Övning 4. Hashning, sortering, prioritetskö, bästaförstsökning. Hitta på en perfekt hashfunktion för atomer. Hur stor blir hashtabellen?

TDDC74 Lab 02 Listor, sammansatta strukturer

Föreläsning Datastrukturer (DAT037)

Lösningsförslag för tentamen i Datastrukturer (DAT036) från

Tentamen Datastrukturer, DAT037 (DAT036)

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 8 Jonas Lindgren, Institutionen för Datavetenskap, LiU

DRAFT. CVS kurs laboration 1 Checka in, ut och uppdatera. Marcus Rejås. 17 november 2002

Hashtabeller. TDA416, lp3 2016

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 9 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Tentamen Datastrukturer D DAT 036/INN960

Transkript:

Välkommen till en översikt av... Data Integrity (In the context of networked file systems)

Björn Lalin (d00-bla) Gör exjobb på IBM Research Lab, Schweiz

Vad det kommer handla om Motivering Modell och sammanhang Kända tekniker Vanliga hashfunktioner Inkrementella hashfunktioner Ackumulatorer Hashträd Entropi Översikt & Sammanfattning Vad jag tänkte göra Ciao, frohe Weihnachten och gutes neues Jahr!!

Motivering Snabbt ökande mängd av känslig data. Behov av att hantera data på säkert sätt. (Kher & Kim, Univ. of Minnesota, 2005)

Modell Filservrar ej betrodda nycklar, etc. på betrodd server På betrodd server vill vi ha Lite kommunikation Lite minnesåtgång (många använder samma autentiseringsserver, har eventuellt lite beräkningskraft och/eller lagringsutrymme)

Modell av data på lagringsmedia Vår bild av en typisk fil av storlek N bytes:

Modell av data på lagringsmedia Vår bild av en typisk fil av storlek N bytes: READ(address) WRITE(addr, data)

Modell av data på lagringsmedia Vår bild av en typisk fil av storlek N bytes: READ(address) WRITE(addr, data) Invasive respektive Non-invasive Online respektive Offline

Definition av Integritet Vad är det vi vill göra? Informellt: Ge en garanti för att data som läses är identisk med den data som skrevs allra senast.

Motståndare / Möjliga attacker Förstöra data I den här modellen antar vi att en aktiv motståndare har både läs- och skrivmöjligheter till data. Vi kan inte göra något mot detta. Modifiera data Returnera gammal data (s k replay attack)

Ett enkelt (men kanske inte så bra) sätt Beräkna en hash/fingerprint för varje fil. (t.ex SHA-256 32 bytes) Var lagrar vi fingeravtrycket? Tillsammans med data på icke betrodd server? På vår betrodda server?

Ett enkelt (men kanske inte så bra) sätt Fördelar: Nackdelar: Exempel: Enkelt Ett unikt värde för hela filen (tar lite plats) Långsamt att skriva: O(N) Långsamt att läsa(verifiera): O(N) Tripwire och liknande system (separat, inte i filsystemet) Många filsystem som implementerar integritet gör det så här.

Men det här då...? Om vi lagrar ett fingeravtryck för varje block istället? (Där vi kan variera block till att vara allt mellan en byte och hela filen). Större block snabbare verifiering, snabbare uppdatering Mindre block Mer lagringsutrymme och last på betrodd server Fördelar / Nackdelar: Kan balansera kostnader mellan minne/belastning och prestanda

En (lite) bättre variant? Vanlig hashfunktion: H(x) = y H envägsfunktion (svårt finna x givet y) H kollisions-fri(resistent) H(x) << x Inkrementell hashfunktion: Alla egenskaper som en vanlig hashfunktion. Dessutom, om vi uppdaterar x x' så kan vi beräkna H(x') till en kostnad proportionell mot diff(x, x')

Inkrementella hashfunktioner Två operationer HASH och UPDATE istället för en. Fil M, består av b block HASH: UPDATE: (Bellare, Goldreich, Goldwasser)

Inkrementella hashfunktioner Två operationer HASH och UPDATE istället för en. Fil M, består av b block HASH: h = H(M) = g i M[i] (mod P), g i ett slumpvis element i gruppen M[i] block i av filen M UPDATE: h' = U(h,M,m',j) = h * g j - M[i] * g j m' (Bellare, Goldreich, Goldwasser)

Inkrementella hashfunktioner Fördelar: Nackdelar: Kommentarer: O(1) för uppdateringar, dvs. skrivning Tar lite plats, O(1) minne Långsamt att läsa(verifiera): O(N) Visserligen O(1) för uppdateringar, men detta innefattar ett konstant antal exponentieringar, som är relativt dyra. Finns andra typer av inkrementella hashfunktioner med billigare primitiver.

Ackumulator Ackumulator (eng. Cryptographic Accumulator) en funktion F : X Y X, där f(f(x 1,y 1 ),y 2 ) = f(f(x 1,y 2 ),y 1 ). Svår att invertera x = e(x,y) = x y mod N (Benaloh, de Mare) Poäng: O(n) att uppdatera. O(1) att verifiera.

( Christmas tree lecture... ) Log (n) arbete för uppdatering, Log(n) arbete för verifiering, Vi använder en trädstruktur!

Hashträd (Ralph Merkle) H <i,j> = H( H <i, (i+j-1)/2>, H <(i+j+1)/2,j> ) om i j H <i,j> = H(B i ) om i = j H root = H <0,n-1>, n = #block i filen

Hashträd (Ralph Merkle) H <i,j> = H( H <i, (i+j-1)/2>, H <(i+j+1)/2,j> ) om i j H <i,j> = H(B i ) om i = j H root = H <0,n-1>, n = #block i filen Vi lagrar bara H root på en säker plats (dvs på en betrodd server). Resten av trädet lagrar vi tillsammans med data på filserver.

Hashträd (Ralph Merkle) H <i,j> = H( H <i, (i+j-1)/2>, H <(i+j+1)/2,j> ) om i j H <i,j> = H(B i ) om i = j H root = H <0,n-1>, n = #block i filen Vi lagrar bara H root på en säker plats (dvs på en betrodd server). Resten av trädet lagrar vi tillsammans med data på filserver. Verifiera: För att verifiera block B 1, beräkna hela stigen upp till root. Uppdatera: För att uppdatera måste hela stigen från uppdaterade noden beräknas på nytt.

Hashträd (Ralph Merkle) Fördelar: verifiera: O(log N) skriva: O(log N) lagrar bara H root i trusted storage -> lite belastning Nackdelar: Om filens storlek ökar måste trädet byggas om. (Gör t.ex trädet lite extra stort så sannolikheten för ombyggnad är liten)

Kombination: Hashträd och inkrementell hash Kontext: Många skrivningar mellan varje verifiering Många accesser till samma adress Idé: Ha ett hashträd till att börja med. Första gången vi läser data från fil så verifierar vi och flyttar till en annan datastruktur byggd med inkrementell hashing. Exempel på användning: Trusted computing. Verifiera minnet som använts, men endast vid kritiska operationer. (Clarke, Suh, Gassend, Sudan, van Dijk, Devadas)

Utnyttja struktur i data (entropi) Kontext: Förslag: Inte skriva på obetrodd lagringsplats (non-invasive). Minimera betrodd lagringsplats (tillståndsinfo). Använd strukturen hos data för integritet. (Oprea, Reiter, Yang) content(adress, data) = C_tweak(data,adress,key) isrand(adress, data) yes / no Nackdelar: Inget skydd mot replay attacks. Vad om datan inte har någon struktur (slumpmässig data)?

Snabb sammanfattning Fingerprint av hela filen O(N) O(N) Fingerprint / block O(1) O(N) O(1) O(N) Tradeoff minne/prestanda Inkrementell hashfunktion O(N) O(1) Hashträd (log N) O(log N) Ackumulator O(1) O(N) Dyr exponentierings- Funktion

GOD JUL & GOTT NYTT ÅR