Tor-Eirik Bakke Lunde

Størrelse: px
Begynne med side:

Download "Tor-Eirik Bakke Lunde"

Transkript

1 Obligatorisk oppgave 2 INF-2310 < Sikkerhet i distribuerte systemer > 15. oktober 2003 Obs! Denne rapporten forutsetter kjennskap til medlagte JavaDoc informasjon. Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no

2 Problemstilling: Implementere en nettverksprotokoll som gjør både hemmelighold og etterlater seg bevis i form av signaturer. Dette innebærer bruk av JCE til kryptografisk hash, signering og kryptering med RSAnøkler. Angrepsvinkel: Ved starten av oppgaven har man to distinkte verktøy til rådighet - filen ProtocolBase.java og testprogrammet simplemsg.java som benytter seg av denne. Det vil si at vi har en fungerende protokoll og et testprogram som benytter seg av denne protokollen. I vår objektorienterte verden har det, forutsatt en rimelig kvalitetsstandard selvsagt, ingen formål å ikke benytte seg av ferdigutviklede elementer. Løsningsmetode: For å benytte seg av funksjonalitet som allerede er implementert i ProtocolBase, arves det fra denne klasse. Funksjoner som er relevant for oss er sendmessage( ) og revievemessage( ), og disse overstyres for å passe oppgaven. Målet er altså at ett program som allerede benytter seg av den allerede eksisterende protokollen skal kunne bruke vår nye sikre protokoll med mindre eller ingen modifikasjoner. Forutsetter at utveksling av offentlige nøkler foregår separat fra vår protokoll, og ved bruk forutsettes det at nøkler allerede er distribuert. Likevel manglende nøkler burde detekteres og resultere i en Exception. Implementasjon: Oppretter en ny klasse kalt SecureProtocol som arver i fra klassen ProtocolBase. I denne nye klassen overstyrer vi funksjonene sendmessage( ) og revievemessage( ), og i starten lar dem gjøre lite annet enn å kalle opp de tilsvarende funksjonene i superklassen. Resultatet er at vi nå har en fungerende nettverksprotokoll, om enn bare ett skall uten den funksjonaliteten vi var ute, men det kommer etter hvert. Testprogrammet simplemsg endres til å arve ifra den nye sikre protokollen og en testkjøring bekrefter at alt fungerer slik det skal gjøre. Ett rask overblikk på oppgaven viser en datastruktur bestående av en indre og en ytre beskjed. Den ytre beskjeden er brukt under overføring, mens den indre inneholder data relatert og inkludert det som overføres. Figur: M Y = A, B, {K I }K B, IV, {M I }K I MI (beskjed) = A, B, I, TA, XA, σka-1 MI (kvittering)= A, B, K, TA, H(XA), σka-1 Hvor: M Y A B K I {}K B IV M I {}K I I T A X A σk -1 A = Ytre beskjed, brukt under overføring = Senders identifikator = Mottakers identifikator = Tilfeldig generert IDEA nøkkel = Kryptert med mottakers offentlig nøkkel ved bruk av RSA = Tilfeldig generert initialiseringsvektor, for bruk med IDEA = Indre beskjed, brukt til å holde data = Kryptert med generert IDEA nøkkel = Innleveringsidentifikator = Tidsstempel = Data som skal overføres = RSA signatur generert på basis av overført data

3 H( ) = Kryptografisk hash Generelt sett en simpel sak, men vi har tre manglende elementer for å kunne fullføre oppgaven, nemlig funksjonalitet for kryptering og signering ved bruk av RSA algoritmen samt kryptografisk hash. RSA: RSA er en kryptografisk algoritme for bruk i relasjon til offentlig-nøkkel kryptering. Den er i stand til å både kryptere og dekryptere data, men er generelt sett lite brukt ettersom lengden av dataen som skal krypteres må være mindre enn nøkkelstørrelse. Nøkkellengden kan varieres, men på grunn av ueffektivitet brukes denne algoritmen svært sjelden sett bort fra ett distinkt område: overføring av krypteringsnøkler. Grunnen til at vi kan bruke RSA til overføring av nøkler er ikke bare på grunn av at til dags dato foreligger det ingen metoder for å knekke nøklene, men at ved bruk av offentlige og private nøkler er det mulig å kontrollere hvem som skal kunne dekryptere dataen. Dette vil i så fall si at Kari kan hente ned Olas offentlige nøkkel fra for eksempel Olas hjemmeside og bruke denne til å kryptere en hemmelig sesjonsnøkkel. En del av offentlig nøkkel kryptografi tilsier at data dermed krypteres med en offentlig nøkkel alle har tilgang på, men en hemmeligholdt privat nøkkel kun kan dekryptere nevnte data. Dette vil si at Kari, selv om hun krypterte dataen ikke kan dekryptere den dette er noe kun Ola kan gjøre. I implementasjonen brukes RSA algoritmen i EBC modus med PKCS#1 padding. Electronic Code Book (EBC): EBC modus er en av de enkleste cipher-modusene, og samtidig en veldig usikker modus dersom brukt kun i seg selv. Modusen tar 64-bit blokker som inndata, padder ut den siste til en full blokk. Hver blokk blir kryptert med en hemmelig nøkkel. Ettersom modusen opererer kun på blokker av data vil samme data gi samme resultat, og dermed vil to påfølgende identiske blokker gi den samme ciphertekst. Dette vil si at en kan tilegne seg informasjon ved å se på repeterende blokker ciphertekst, samt at ettersom blokkene er uavhengige kan de dermed stokkes om. Public-Key Cryptography Standard (PKCS): Et sett av standarder, PKCS#1-15, laget for å definere standarder for hvordan en beskjed skal formateres før kryptering med f.eks. RSA. PKCS#n standardene er konstruert med hensyn på å stoppe flere sikkerhetstrusler mot RSA, og dermed forhindre brukerfeil som lett kunne uheldige kombinasjoner som kan gjøre krypteringen mindre sikrere. PKCS#1, som brukes her definerer følgende anbefalte standard for formatering: minst 8 tilfeldig genererte Data oktetter ikke lik null (lengde < nøkkelstørrelse) Kryptering med RSA: For å kryptere med RSA har jeg laget en slags wrapperklasse for å rydde opp i det obskure utseendet til JCE og lette lesning og forståelse av protokoll-implementasjonen. Denne klassen har jeg kalt RSA_Crypto og fungerer de funksjoner en kan forvente. Ettersom denne klassen wrapper rundt JCE burde ikke unntakshåndtering være ett problem og er mer eller mindre neglisjert ettersom det er forventet at sikkerhetsprotokollen ikke leverer fra seg misformet eller ukorrekt data. En del feil vil oppstå dersom Cryptix ikke er installert, eller ikke satt opp rett. Det endelige UML diagrammet for klassen er vist til høyre. Funksjonaliteten er som antydet veldig begrenset og nærmest basisk. Funksjonen encrypt( )

4 operer med og krever den offentlige delen av ett nøkkelpar, mens decrypt( ) trenger den private delen av nevnte nøkkelpar. Begge funksjonene returnerer null dersom en feil oppsto i funksjonskallet, i tillegg til at stack-trace skrives til skjermen. Klassen kan eksekveres for å teste dens funksjonalitet, og samtidig bekrefte at Cryptix fungerer. Ved bruk av JCE refereres beskrevne funksjon under algoritmenavnet RSA/ECB/PKCS#1. Signering med RSA: I likhet med kryptering er det opprettet en wrapperklasse, med navn RSA_Signature, for signering og verifisering av Signatur ved bruk av JCE. Denne signerer ved bruk av RSA, eller det vil si mer nøyaktig en signatur i form av en MD5 hash med RSA kryptering. I forhold til JCE spesifikt gir dette algoritmenavnet MD5withRSA. PKCS#1, som brukes her definerer følgende anbefalte standard for formatering: minst 8 oktetter ASN.1 formatert hashtype med verdi ff 16 identifikator og selve hashen. Hvor av ASN.1 står for Abstract Syntax Notation 1, og er ett system for å beskrive data i dette tilfelle beskrive hvilken type hashfunksjon som genererte den medfølgende hashen. MD5: RSA_Signature klassen støtter kun de to funksjonene lag signatur og verifiser signatur. Ettersom mengden av data som oftest er for stor til å effektivt å kunne benytte seg av RSA direkte lages signaturen isteden med basis i en MD5 hash av denne dataen. Dette gir ett marginalt tap i sikkerhet, men enormt mye i form av potensiell økt effektivitet jevnt over (Mer om MD5 i neste punkt). UML diagrammet til høyre oppsummerer klassens funksjonalitet. I likhet med RSA_ Crypto blir lite unntakshåndtering gjennomført, men så lenge Cryptix er installert og fungerer så burde det ikke oppstå noen uventede bieffekter. I tilfelle feil returnerer verify alltid verdien false, og sign returnerer null. Oppgaven krever en eller annen form for kryptografisk hash, og den mest brukte for tiden er uten tvil og MD4 og MD5. Valget falt på den nyere MD5 hashing funksjonen ettersom den er mindre fokusert på hastighet, men heller sikkerhet i forhold til MD4. Kryptografisk hash er definert som en enveis funksjon, ettersom det skal være vanskelig eller upraktisk å beregne hvilken inndata produserte forskjellige datahasher. For at denne skal være kryptografisk sikker, kreves det at det er i all praktisk sans umulig å finne to forskjellige inndata som produserer samme hash til tross for at det kanskje er en teoretisk mulighet for dette. Med dette i tankene kan vi benytte oss av denne egenskapen til å oppdage dersom data er forandret, på basis av en kryptografisk hash av gammel og ny data, og det er her vårt behov kommer inn: En kryptografisk hash av sendt data signeres og kan verifiseres. Med fornevnte egenskap kan vi oppdage dersom den mottatte data er endret ifra den som ble sendt, ettersom det ikke bare er praktisk vanskelig å endre data på en måte at den gir samme

5 kryptografisk hashverdi, men bortimot teoretisk umulig å samtidig kunne gjøre dette på en måte som gir noen spesiell mening eller format hos mottaker. MD5 fungerer svært likt MD4. Den produserte hashverdien er en 128 bit sekvens produsert på bakgrunn av gitt data, i blokker á 512 bit. For hvert steg i prosesseringen tas verdien av hashen og modifiseres ved bruk av neste datablokk. Hvert steg foretas fire ganger for hver 128bit del av datablokken som prosesseres. MD5 til forskjell fra MD4 bruker en varierende konstant for hver av de fire gjennomgangene i hver av de fire stegene. Implementasjon av hash funksjonen er gjort i all enkelhet, og som UML diagrammet (diagram nedenfor) støtter lite eller ingenting utover JCE funksjonalitet, men tjener mer som en lettforståelig sak på ett generelt nivå. MD5 brukes implisitt ved signering og kryptering, men mer direkte ved generering av ett fingeravtrykk for overført data til bruk i kvitteringer returnert til avsender som bekreftelse. Denne implementasjon er ment å være generell for de hash funksjonene som er støttet originalt og gjennom Cryptix. Ved bruk av argumentløs konstruktør benyttes MD5 som standard. Dersom hash funksjonene feiler returneres verdien null, men burde ikke forekomme ettersom feil burde vært fanget opp eller resultert i en Exception ved initiering av en instans av denne klassen. Sikker nettverksprotokoll: Implementasjonen, se filen SecureProtocol.java, legger til sikker overføring på allerede eksisterende funksjonalitet i klassen ProtocolBase. For å unngå å reimplementere ting arves det fra denne klassen, og som under punktet løsningsmetode arves det fra ProtocolBase og de mest sentrale funksjonene recievemessage( ) og sendmessage( ) overstyres for å gi plass til ønsket funksjonalitet (Endelig resultat ser ikke slik ut, men kommer til det etter hvert). Sende data: Starter med funksjonen sendmessage( ), og har nå ett definert behov for å legge på bygge opp indre (inneholder dataen som skal sendes) og ytre beskjed i henhold til definert sikkerhetsprotokoll (se oppstilling i begynnelsen av punktet implementasjon). For å kunne gjøre dette atskilt fra sendmessage( ) funksjonen etter opprettelsen av en gyldig melding naturlig nok er behøvd i flere sammenhenger defineres en ny funksjon encodemessage( ). Sette sammen gyldig beskjed (encodemessage( )): Starter med forhåndsarbeidet med å sette opp og generere de datastrukturerer som behøves videre i funksjonen. Det vil si: Generer tilfeldig IDEA nøkkel og initialiseringsvektor. Hent offentlig nøkkel til mottaker fra det offentlig-nøkkel biblioteket vi har til rådighet.

6 På grunn av en intern avhengighet mellom indre og ytre beskjed må den indre beskjeden, som etter hvert vil utgjøre ett enkelt datum i den ytre beskjeden, være ferdig sammensatt. Sammensetting av den indre beskjeden gjøres helt enkelt ved å følge oppstillingen av protokollstrukturen sekvensielt og legge dem til en etter en. Legger først til vår egen identifikator fulgt av mottakers identifikator. Neste datum som legges til er den såkalte innleveringsiden tifikator fulgt av et tidsstemple formatert ved bruk av SimpleDateFormat tilbydd av pakken java.text. Neste datum varierer på bakgrunn av innleveringsidentifikator: I (ny beskjed) = X A K (kvittering) = H(X A ) Siste element av den indre beskjeden som skal legges til består av en signatur laget på basis av nåværende indre beskjed, dvs. før signaturen legges til. Sammensetning av den ytre beskjeden, kan nå gjøres da ett av dens elementer ikke lenger avhenger av data som ikke er ferdig sammensatt ennå. Starter med å først legge til vår egen identifikator fulgt av mottakers identifikator. Som neste datum legges til den tilfeldig genererte IDEA nøkkelen, kryptert ved hjelp av RSA og fulgt som neste datum den medfølgende genererte initialiseringsvektoren. Som siste datum i den ytre beskjeden legges til den indre beskjeden kryptert med nevnte IDEA nøkkel og initialiseringsvektor. Etter at funksjonen vår har satt sammen dataen i henhold til spesifikasjon er meldingen klar til å transporteres, noe som utføres med ett enkelt kall til tilsvarende funksjon i superklassen. Ettersom vi nå har funksjonalitet for å sende data sikkert over ett usikkert medium, men som en følge av dette tillegget som potensielt kan kaste ett NoSuchPublicKeyException stemmer ikke definisjonen av denne funksjonen direkte overens med funksjonen den overstyrer. For å løse dette endres funksjonens navn til s_sendmessage. Dette stemmer ikke helt overens med målet om minimale endringer i eksisterende i eksisterende programmer som allerede benytter seg av ProtocolBase. Løsningen er like enkel som den er kortfattet, men vi kommer tilbake til dette punktet på ett senere tidspunkt. Mottak av data: Grunnlaget for denne funksjonen ligger i den allerede implementerte funksjonen tilbydd av superklassen, nemlig recievemessage( ) og første steg er at vi benytter oss av denne funksjonen og får ut den informasjonen som ble sendt (dvs. den ferdig krypterte meldingen). Å baklengs gjenta hvert steg i denne teksten er overdokumentering og drøfter fremover kun de mer interessante delene av den. Dekryptere overført data (decodemessage( )): Helt i starten sjekkes det opp mot forventet antall elementer for å sjekke at meldingen

7 ikke er korrupt eller misformet på noen måte. Kaster en CorruptedMessageException dersom den finner noe galt på dette tidspunkt. Den ytre delen av beskjeden inneholder den informasjon vi trenger til å dekryptere den indre beskjeden. IDEA nøkkelen er kryptert ved hjelp av RSA, og vi benytter oss av en instans av klasse RSA_Crypto til å dekryptere denne. Hvis dekrypteringen feiler kastes en CorruptedMessageException med beskjed om dette. Nå er vi klar til å dekryptere den indre beskjeden og CryptoEngine implementert i forrige obligatoriske oppgave tar seg av denne biten uten problemer. På dette tidspunktet har vi den data vi er ute etter, men uten å verifisere den mottatte dataen mot den medfølgende signaturen kan vi ikke verifisere at den er autentisk. Dersom noen har prøvd å endre på data, senders identifikator, eller signaturen vil denne sjekken oppdage dette og en SignatureException kastes med beskjed om mulig forfalskning. Som nevnt krever dette også senders identifikator og i likhet med encodemessage( ) kastes en NoSuchPublicKeyException dersom vi ikke har tilgang på den tilsvarende offentlige nøkkelen. Hvis mottatt data overlever alle disse sjekkpunktene og ingen Exception kastes vet vi at den mottatte dataen er autentisk og vi har autentisert at den som sendte dataen også er den person /datamaskin som sitter med den private delen av nøkkelen. Ettersom recievemessage( ) trenger mer informasjon enn bare den overførte dataen, men også innleveringsidentifikator osv. returneres denne. Likevel vet vi at dataen autentisk og vi kan med sikkerhet gjøre dette. Med basis av at det er kun en type innleveringsidentifikator som er interessant for programmer som bruker protokollen, nemlig beskjedene med identifikatoren I. Dersom vi finner identifikatoren K, har vi mottatt en kvittering som det foretas noen få prosesseringer på. For å filtrere disse to typene identifikatorerer leses beskjedene inn i en løkke frem til vi har funnet en melding som er passende for å returneres. Hvis vi mottar en melding med identifikatoren I sendes en kvittering tilbake til avsenderen for å bekrefte mottaket, noe som funksjonene s_ sendreciept( ) tar seg av. I likhet med det vi gjorde med vår implementerte sendmessage( ) endrer vi navnet på denne funksjonen fra recievemessage( ) til s_recievemessage( ). Håndtering av kvitteringer: Så langt har den implementerte protokollen ikke foretatt noen håndtering av kvitteringer på sendt data annen enn å dumpe en beskrivelse til debug. Minimum for en oppgave av denne typen er å bekrefte at kvitteringer stemmer overens med sendt data. Ettersom protokollen skal antas å kunne kommunisere med andre implementasjoner basert på samme definisjon kan en ikke forvente at til ethvert tidspunkt er neste mottatte melding en kvittering på forrige utsendte melding. Grunnen til dette kan være at en for eksempel hardt belastet mottaker heller velger å utsette utsending av kvitteringer til etter at belastningen har avtatt, noe som kan være gjort ettersom Internett-trafikk i praksis er belastningsmessig kraftig varierende bursty. Tatt dette i betraktning falt valget på å implementere en helt elementær beskjedloggingsfunksjon. Denne funksjonen skal ha to elementære funksjoner: Oppbevare data i påvente bekreftelse på at den er bekreftet mottatt av mottaker. Ta imot kvitteringer og verifisere mot allerede sendt data.

8 Loggen fungerer på en slik måte at hvert loggelement som blir lagt til inneholder all informasjon som skal til for å reprodusere beskjeden som ble sendt samt en kryptografisk hash som brukes til å identifisere dette eksakte loggelementet. Mottatte kvitteringer inneholder en kryptografisk hash som skal stemme overens med ett av loggelementene. Hva som skjer med det aktuelle elementet som korresponderer til oppgitte hash avhenger av verdien til delete_policy internt i MessageLog objektet, men nærmere forklaring av det punktet overlates til medhørende JavaDoc. Dersom mottatt kvittering ikke stemmer overens med sendt data kastes en MessageLogException med en mer beskrivende beskjed. Avhengende av delete_policy kan det forekomme at en mottar kvittering for data som allerede er kvittert for, og i så fall resulterer dette i en kastet MessageConfirme dexception. Bakoverkompatibilitet: Som tidligere nevnt var det ikke mulig å overstyre funksjonene fra ProtocolBase direkte ettersom våre funksjoner kan kaste flere unntak ( Exception ), og dermed stemmer definisjonene ikke lenger overens. Løsningen er å opprette en ny klasse kalt SimpleSecureProtocol som arver fra SecureProtocol, men overstyrer nevnte funksjoner og tar imot eventuelle unntak. En effekt av dette er at programmer som originalt benytter seg av ProtocolBase ikke trenger å endres mer enn innlesning av nøkkelbiblioteker og å settes til å bruke/ arve fra SimpleSecureProtocol. Nye programmer som skal benytte seg av protokollen kan dermed som effekt av dette foreta unntakshåndtering på en mer profesjonell måte eller bare satse på at ingenting uforutsett skjer. Ett eksempel på program som benytter seg av SimpleSecureProtocol, og dermed også tester ut all implementert funksjon SecureProtocol er å finne i det vedlagte eksempelprogrammet simplemsg. Evaluering: Vedlagte program, ProtocolTest, tester implementasjonen mot test data for å sjekke at beskjeder dekodes korrekt, samt at feil oppdages. For å teste at implementert funksjonalitet fungerer slik den skal kan programmet simplemsg kjøres. Med lette modifikasjoner fungerer sikkerhetsdelen av protokollen sømløst uten at programmereren eller brukeren trenger å vite noe om det, bare høste fordelene av sikker overføring. Alt i alt burde dette regnes som en suksessfull implementasjon.

9 Filoversikt: Her følger en oversikt over medfølgende filer med forklaring i henhold til oppgave relasjon dersom dette er nødvendig. Egenproduksjon, og eller modifiserte versjoner av filer gitt sammen med oppgaven: CryptoEngine.java Min egen IDEA/CBC/PKCS#5 implementasjon fra obligatorisk oppgave 1 med mindre modifikasjoner for å legge til bruk av SecureRandom. Hash.java MakeKeys.java MessageLog.java MessageLogTest.java ProtocolTest.java RSA_Crypto.java RSA_Signature.java SecureProtocol.java Wrapper klasse som letter bruk av kryptografisk hash ved bruk av JCE. Applikasjon brukt til å legge til nye offentlige/private nøkkelpar i nøkkelbibliotekene i vedlagte testdata filer. Enkel implementasjon av en beskjedlogg for oppbevaring av informasjon sendt og synking mot mottatte kvitteringer. Tester funksjonalitet gitt av MessageLog.java. Tester SecureProtocol implementasjon mot testdata. Wrapper klasse som letter kryptering og dekryptering av data med RSA algoritmen og JCE. Wrapper klasse som letter signering og verifisering av data med RSA algoritmen. Bruker JCE til generell funksjonalitet. Hovedimplementasjonen av oppgaven. simplemsg.java Testprogram omtalt i rapporten for uttesting av protokollimplementasjon. Viser bruk av SimpleSecureProtocol, og dermed også superklassen SecureProtocol. SimpleSecureProtocol.java Enklere implementasjon som overstyrer funksjon i ProtocolBase og erstatter dem med funksjonalitet funnet i SecureProtocol. Filer gitt av oppgaven: Message.java ProtocolBase.java Testdata: public-keys.store private_keys/ Klasse brukt til å sette sammen meldinger/beskjeder. Implementasjon av generell nettverksprotokoll. Bibliotek for oppbevaring av offentlige nøkkel. Katalog som inneholder brukte offentlig/private nøkkelpar.

Tor-Eirik Bakke Lunde

Tor-Eirik Bakke Lunde Obligatorisk oppgave 3 INF-2310 < Sikkerhet i distribuerte systemer > 18. november 2003 Obs! Denne rapporten forutsetter kjennskap til vedlagte JavaDoc informasjon samt oblig2. Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no

Detaljer

Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no

Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no Obligatorisk oppgave 1 INF-3200 12. oktober 2003 Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no Oppgavebeskrivelse: Designe og implementere en distribuert ray-tracing applikasjon, med basis i kontroller-

Detaljer

Forelesning 2: Kryptografi

Forelesning 2: Kryptografi Universitetet i Oslo IN2120 Informasjonssikkerhet Høst 2018 Workshop-spørsmål med svarforslag Forelesning 2: Kryptografi Spørsmål 1 a. For hvilke informasjonstilstander (lagring, overføring, behandling)

Detaljer

Veiledning i kryptering med Open PGP

Veiledning i kryptering med Open PGP Veiledning i kryptering med Open PGP GNU Privacy Guard for Windows (Gpg4win) er en gratis programvare for kryptering av tekst, filer og eposter ved hjelp av standarden OpenPGP for Windows-operativsystem.

Detaljer

Obligatorisk Oppgave 1. INF Sikkerhet i distribuerte systemer

Obligatorisk Oppgave 1. INF Sikkerhet i distribuerte systemer Obligatorisk Oppgave 1 INF-2310 - Sikkerhet i distribuerte systemer 1 Innholdsfortegnelse: Forside s. 01 Innholdsfortegnelse s. 02 Del I Selvtest s. 03 Del II CBC/PKCS#5 s. 05 Generalisert PKCS#5 Implementasjon

Detaljer

Eksamen i TMA4155 Kryptografi Intro Høst 2003 Løsningsskisse

Eksamen i TMA4155 Kryptografi Intro Høst 2003 Løsningsskisse 2004-10-25 Eksamen i TMA4155 Kryptografi Intro Høst 2003 Løsningsskisse 1 Et blokkchiffer med blokklengde l og nøkkellengde s består av to funksjoner Ẽ (krypteringsfunksjonen) og D (dekrypteringsfunksjonen)

Detaljer

1. Krypteringsteknikker

1. Krypteringsteknikker Krypteringsteknikker Olav Skundberg Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget 1. Krypteringsteknikker 1.1. Fire formål med sikker kommunikasjon Aller først, pålitelig

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

ECC i akademia vs. industrien

ECC i akademia vs. industrien Conax AS 2007 RSA ECC Utbredelse Kampen mellom ECC og RSA har pågått lenge. I akademia går ECC av som vinner, mens i industrien er det fortsatt RSA som gjelder. RSA RSA ECC Utbredelse I 1977 publiserte

Detaljer

VEDLEGG 7 SIKKERHET 1. KRAV TIL SIKRING AV DATAFILER VED OVERFØRING TIL/FRA BANKEN

VEDLEGG 7 SIKKERHET 1. KRAV TIL SIKRING AV DATAFILER VED OVERFØRING TIL/FRA BANKEN VEDLEGG 7 SIKKERHET 1. KRAV TIL SIKRING AV DATAFILER VED OVERFØRING TIL/FRA BANKEN 1.1 Sikkerhetskravene bygger på at det til enhver tid skal være et 1 til 1-forhold mellom det som er registrert i Virksomhetens

Detaljer

Kryptografi og nettverkssikkerhet

Kryptografi og nettverkssikkerhet Kryptografi og nettverkssikkerhet Kapittel : Blokkchiffere og DES (the Data Encryption Standard) Moderne symmetrisk kryptografi Skal se på moderne blokkchiffere, en av de mest brukte kryptoalgoritmene.

Detaljer

Kryptografi og nettverkssikkerhet

Kryptografi og nettverkssikkerhet Kryptografi og nettverkssikkerhet Kapittel : Blokkchiffere og DES (the Data Encryption Standard) Moderne symmetrisk kryptografi Skal se på moderne blokkchiffere, en av de mest brukte kryptoalgoritmene.

Detaljer

OFFENTLIG-NØKKELKRYPTOGRAFI

OFFENTLIG-NØKKELKRYPTOGRAFI OFFENTLIG-NØKKELKRYPTOGRAFI S. O. SMALØ Abstract. I dette notatet, som skal inngå som pensum i etterog viderutdanningskurs i datasikkerhet, vil vi gi en kort innføring i oentlig-nøkkel-kryptogra med illustrasjoner

Detaljer

INF1040 Oppgavesett 14: Kryptering og steganografi

INF1040 Oppgavesett 14: Kryptering og steganografi INF1040 Oppgavesett 14: Kryptering og steganografi (Kapittel 19) Husk: De viktigste oppgavetypene i oppgavesettet er Tenk selv - og Prøv selv - oppgavene. Fasitoppgaver 1. Krypter følgende strenger ved

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand

Hash-funksjoner. Introduksjon. Steg 1: Strekkoder. Eksempel. Skrevet av: Martin Strand Hash-funksjoner Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Tidligere har vi sett hvordan

Detaljer

Forelesning 2: Kryptografi

Forelesning 2: Kryptografi Universitetet i Oslo IN2120 Informasjonssikkerhet Høst 2019 Workshop-oppgaver med løsningsforslag Forelesning 2: Kryptografi Oppgave 1 a. For hvilke informasjonstilstander (lagring, overføring, behandling)

Detaljer

Eksamen i emne TTM4135 Informasjonssikkerhet Løsningsforslag.

Eksamen i emne TTM4135 Informasjonssikkerhet Løsningsforslag. ksamen i emne TTM4135 Informasjonssikkerhet 2006-05-22. Løsningsforslag. Oppgave 1 1.1. (6 p.) Feltene i AH er som følger: - neste hode (8 bit): Identifiserer type hode som følger umiddelbart etter dette

Detaljer

INF Obligatorisk innlevering 7

INF Obligatorisk innlevering 7 INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven

Detaljer

IN1000 Obligatorisk innlevering 7

IN1000 Obligatorisk innlevering 7 IN1000 Obligatorisk innlevering 7 Frist for innlevering: 23.10. kl 12:00 Introduksjon I denne innleveringen skal du lage et program som simulerer cellers liv og død. Dette skal du gjøre ved hjelp av en

Detaljer

Tor-Eirik Bakke Lunde

Tor-Eirik Bakke Lunde Obligatorisk oppgave 1 INF-3201 < Parallellprogrammering> 13. oktober 2003 Tor-Eirik Bakke Lunde torebl@stud.cs.uit.no 0: Analyse av sekvensiell kode: Identifiser og beskriv datastrukturer: Den sekvensielle

Detaljer

Installere JBuilder Foundation i Mandrake Linux 10.0

Installere JBuilder Foundation i Mandrake Linux 10.0 Installere JBuilder Foundation i Mandrake Linux 10.0 Installasjon av JBuilder Foundation på Linux (dekker her spesifikt fremgangen ved bruk av Mandrake Linux 10.0, men distribusjon vil gjøre liten eller

Detaljer

KTN1 - Design av forbindelsesorientert protokoll

KTN1 - Design av forbindelsesorientert protokoll KTN1 - Design av forbindelsesorientert protokoll Beskrivelse av A1 A1 skal tilby en pålitelig, forbindelsesorientert tjeneste over en upålitelig, forbindelsesløs tjeneste A2. Det er flere ting A1 må implementere

Detaljer

Obligatorisk oppgave 4 i INF1010, våren 2014: "Leger og resepter" Versjon 1.1

Obligatorisk oppgave 4 i INF1010, våren 2014: Leger og resepter Versjon 1.1 Obligatorisk oppgave 4 i INF1010, våren 2014: "Leger og resepter" Versjon 1.1 Denne oppgaven skal løses to og to vha. systemutviklingsmetoden Parprogrammering. For å få levere må alle registrere seg gjennom

Detaljer

Oppgaver til kapittel 19 - Kryptering og steganografi

Oppgaver til kapittel 19 - Kryptering og steganografi Oppgaver til kapittel 19 - Kryptering og steganografi Oppgave 1 - Cæsars kode (plenum) I symmetrisk kryptering brukes samme nøkkel både for å kryptere og dekryptere. Avhengig av hvordan nøkkelen utformes

Detaljer

Basis interoperabilitetstest - ebxml

Basis interoperabilitetstest - ebxml Basis interoperabilitetstest - ebxml Testversjon: 1.0 2 Basis interoperabilitetstest - ebxml Innholdsfortegnelse 1. Revisjonshistorikk... 3 2. Basis interoperabilitetstest - ebxml... 4 Hvordan gjennomføre

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG AVDELING FOR INFORMATIKK OG E-LÆRING Kandidatnr: Eksamensdato: 9.mai 2005 Varighet: Fagnummer: Fagnavn: 3 timer LV 252 D Internett og sikkerhet Klasse(r): Studiepoeng: 6 Faglærer(e):

Detaljer

INF2220: Forelesning 3

INF2220: Forelesning 3 INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) ABSTRAKTE DATATYPER 2 Abstrakte datatyper En ADT består av: Et sett med objekter. Spesifikasjon

Detaljer

Populærvitenskapelig foredrag Kryptering til hverdag og fest

Populærvitenskapelig foredrag Kryptering til hverdag og fest IN1020 - Introduksjon til datateknologi Populærvitenskapelig foredrag 18.10.2017 Kryptering til hverdag og fest Håkon Kvale Stensland & Andreas Petlund Plan for nettverksdelen av IN1020 18. oktober Populærvitenskapelig

Detaljer

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved

... Når internminnet blir for lite. Dagens plan: Løsning: Utvidbar hashing. hash(x) katalog. O modellen er ikke lenger gyldig ved Dagens plan: Utvidbar hashing (kapittel 5.6) B-trær (kap. 4.7) Abstrakte datatyper (kap. 3.1) Stakker (kap. 3.3) Når internminnet blir for lite En lese-/skriveoperasjon på en harddisk (aksesstid 7-12 millisekunder)

Detaljer

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering

Hashtabeller. Lars Vidar Magnusson Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Hashtabeller Lars Vidar Magnusson 12.2.2014 Kapittel 11 Direkte adressering Hashtabeller Chaining Åpen-adressering Dictionaries Mange applikasjoner trenger dynamiske sett som bare har dictionary oparsjonene

Detaljer

Obligatorisk oppgave 6 i INF1010: Dekryptering

Obligatorisk oppgave 6 i INF1010: Dekryptering Obligatorisk oppgave 6 i INF1010: Dekryptering INF1010 Frist: mandag 8. mai 2017 kl. 12:00 Versjon 1.0 (8cb4fee ) Innhold 1 Innledning 1 2 Modell 2 3 Pakke for lytting på kanaler og dekryptering 2 4 Implementasjon

Detaljer

INF2120 V2005. Gruppe 2 christrc ieronnin kjetimk noushinm sjuros. Trafikanten+ Innlevering

INF2120 V2005. Gruppe 2 christrc ieronnin kjetimk noushinm sjuros. Trafikanten+ Innlevering INF2120 V2005 Gruppe 2 christrc ieronnin kjetimk noushinm sjuros Trafikanten+ Innlevering 2 29.04.2005 Intensjon Vårt trafikkoppfølgingssystem skal være et system for brukerne av rutetrafikk, ved at disse

Detaljer

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5)

INF2220: Forelesning 3. Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) INF2220: Forelesning 3 Map og hashing Abstrakte datatyper (kapittel 3.1) Map (kapittel 4.8) Hashing (kapittel 5) Map og hashing Ett minutt for deg selv: Hva vet du om maps/dictionarys og hashing fra tidligere?

Detaljer

Steg 1: Regneoperasjoner på en klokke

Steg 1: Regneoperasjoner på en klokke Diffie-Hellman nøkkelutveksling Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Du har tidligere

Detaljer

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller

Hashing. INF Algoritmer og datastrukturer HASHING. Hashtabeller Hashing INF2220 - Algoritmer og datastrukturer HØSTEN 200 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning : Hashing Hashtabeller (kapittel.) Hash-funksjoner (kapittel.2) Kollisjonshåndtering

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

Elementær Kryptografi (Appendix A, Cryptography Basics, Building Secure Software)

Elementær Kryptografi (Appendix A, Cryptography Basics, Building Secure Software) 1 Elementær Kryptografi (Appendix A, Cryptography Basics, Building Secure Software) Mich ael Morten sen m ich aelm @ii.u ib.n o 10/ 10/ 05 INF329 Utviklin g av sikre ap p likasjon er 2 Elementær kryptografi

Detaljer

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer

Løsningsforslag Eksamen i TDT4190 Distribuerte systemer Institutt for datateknikk og informasjonsvitenskap Løsningsforslag Eksamen i TDT4190 Distribuerte systemer Faglig kontakt under eksamen: Norvald Ryeng Tlf.: 97 17 49 80 Eksamensdato: Fredag 6. juni 2014

Detaljer

Kryptering med vigenere-metoden

Kryptering med vigenere-metoden Kryptonøtt Skrevet av: Arve Seljebu Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Kryptering har lenge vært i bruk i kommunikasjon. Faktisk

Detaljer

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner

Forelesning 14. Rekursjon og induksjon. Dag Normann februar Oppsummering. Oppsummering. Beregnbare funksjoner Forelesning 14 og induksjon Dag Normann - 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt om ekvivalensrelasjoner og partielle ordninger. Vi snakket videre om funksjoner.

Detaljer

- analyse og implementasjon

- analyse og implementasjon - analyse og implementasjon Hvem er vi? Vi heter Anders S Finnerud Dennis JMJ Lundh studerer til bachelorgraden i ingeniørfag for data ved Høgskolen i Oslo. Oppgaven Lage et lett system som kan utføre

Detaljer

Steg 1: Rest etter divisjon

Steg 1: Rest etter divisjon Primtall og effektivitet Skrevet av: Martin Strand Kurs: Python Tema: Tekstbasert, Kryptografi Fag: Matematikk, Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon I matematikktimene

Detaljer

INF 2820 V2015: Obligatorisk innleveringsoppgave 3

INF 2820 V2015: Obligatorisk innleveringsoppgave 3 INF 2820 V2015: Obligatorisk innleveringsoppgave 3 Besvarelsene skal leveres i devilry innen fredag 17.4 kl 18.00 Filene det vises til finner du i o /projects/nlp/inf2820/cfg Del 1 RD Parsing Oppgave 1:

Detaljer

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14.

Informasjon Eksamen i IN1000 og IN1001 høsten a) 1 poeng. 1b) 1 poeng. Tid. Oppgavene. Tillatte hjelpemidler. 30. november kl. 14. IN1000-INF1001-2018 Informasjon Eksamen i IN1000 og IN1001 høsten 2018 Tid 30. november kl. 14.30 (4 timer) Faglærere vil besøke lokalet ca kl 15-16. Oppgavene Oppgave 1a-f er kortsvarsoppgaver som rettes

Detaljer

Installere JBuilder Foundation i Windows XP

Installere JBuilder Foundation i Windows XP Installere JBuilder Foundation i Windows XP Installasjon av JBuilder Foundation på Windows (dekker her spesifikt fremgangen ved bruk av Microsoft Windows XP Professional, men det vil mest trolig ikke være

Detaljer

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000

Drosjesentralen. I-120: Obligatorisk oppgave 2, 2000 Drosjesentralen I-120: Obligatorisk oppgave 2, 2000 Frist Mandag 20. November 2000 kl.10:00, i skuff merket I120 på UA. Krav Se seksjon 4 for kravene til innlevering. Merk krav om generisk løsning for

Detaljer

Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196)

Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196) Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196) Sammendrag Oppgaven går ut på å implementere RSA-krypteringen. Deloppgaver for denne krypteringen er å implementere

Detaljer

MAT1030 Diskret matematikk

MAT1030 Diskret matematikk MAT1030 Diskret matematikk Forelesning 14: Rekursjon og induksjon Dag Normann Matematisk Institutt, Universitetet i Oslo 27. februar 2008 Oppsummering Mandag repeterte vi en del om relasjoner, da spesielt

Detaljer

Standardisering av krypto i offentlig sektor

Standardisering av krypto i offentlig sektor Direktoratet for forvaltning og IKT (Difi) Standardisering av krypto i offentlig sektor Vedlegg - Kryptografi og bruksområder Versjon 1.0 2011-07-22 Innhold 1 Teoretisk grunnlag 3 1.1 Kryptografi 3 1.2

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Kandidatnr Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: Onsdag 1. desember 2010 Tid for eksamen: 14.00 18.00

Detaljer

Gruppe KTN2 innlevering. Endringer gjort siden KTN1:

Gruppe KTN2 innlevering. Endringer gjort siden KTN1: Gruppe 210 - KTN2 innlevering Endringer gjort siden KTN1: - Sekvensdiagram forenklet. Fjernet en del unødvendige sekvenser med portnr. Nå viser det veldig enkelt og greit gangen i tilkobling, sending av

Detaljer

Et større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte

Et større programeksempel. Hvordan løse et reelt problem med en objektorientert fremgangsmåte Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte Plan for forelesingen Beskrive en større problemstilling Planlegge programmet Skrive koden, én klasse om gangen

Detaljer

Sekventkalkyle for utsagnslogikk

Sekventkalkyle for utsagnslogikk Sekventkalkyle for utsagnslogikk Tilleggslitteratur til INF1800 Versjon 11. september 2007 1 Hva er en sekvent? Hva er en gyldig sekvent? Sekventkalkyle er en alternativ type bevissystem hvor man i stedet

Detaljer

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler

Plan for dagen. Vprg 4. Dagens tema - filbehandling! Strømmer. Klassen FilLeser.java. Tekstfiler Plan for dagen Vprg 4 LC191D Videregående programmering Høgskolen i Sør-Trøndelag Avdeling for informatikk og e-læring Anette Wrålsen Del: Intro til tekstfiler Del II: Mer om tekstfiler, Scanner-klassen

Detaljer

INF1000: noen avsluttende ord

INF1000: noen avsluttende ord Pensum INF1000: noen avsluttende ord Arne og Ole Christian Det som er gjennomgått på forelesningene Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

Innføring i blokkjedeteknologi. Slobodan Petrović, NTNU Gjøvik 14/

Innføring i blokkjedeteknologi. Slobodan Petrović, NTNU Gjøvik 14/ Innføring i blokkjedeteknologi Slobodan Petrović, NTNU Gjøvik 14/09-2018 Innhold Innledning Grunnkomponenter av en blokkjede (blockchain) Kryptografiske hash funksjoner (spredefunksjon, avtrykkfunksjon)

Detaljer

6105 Windows Server og datanett

6105 Windows Server og datanett 6105 Windows Server og datanett Oppgave a: Installere Active Directory Certificate Services Bruk av kryptering i Windows forutsetter at brukerne får utstedt digitale sertifikater med krypteringsnøkler.

Detaljer

IN1010 V19, Obligatorisk oppgave 2

IN1010 V19, Obligatorisk oppgave 2 IN1010 V19, Obligatorisk oppgave 2 Innleveringsfrist: Tirsdag 26.02 kl 23.59 Introduksjon I de obligatoriske oppgavene fremover skal du lage et system som holder styr på leger, pasienter, resepter og legemidler.

Detaljer

Nasjonal sikkerhetsmyndighet

Nasjonal sikkerhetsmyndighet Nasjonal sikkerhetsmyndighet IT-veiledning for ugradert nr 2 (U-02) Oppdatert: 2014-02-03 E-post Kryptering av e-postoverføring Beskrivelse av grunnleggende tiltak for sikring av overføring av e-post mellom

Detaljer

Datastrukturer for rask søking

Datastrukturer for rask søking Søking Søkeproblemet Gitt en datastruktur med n elementer: Finnes et bestemt element (eller en bestemt verdi) x lagret i datastrukturen eller ikke? Effektiviteten til søkealgoritmer avhenger av: Om datastrukturen

Detaljer

Oversikt over flervalgstester på Ifi

Oversikt over flervalgstester på Ifi Oversikt over flervalgstester på Ifi Christian Kringstad Kielland christkk@ifi.uio.no 1. august 2003 Introduksjon Dette dokumentet beskriver hvordan systemet for flervalgstester på Ifi fungerer. Systemet

Detaljer

Veileder for innsendingssystemet IPIS. Versjon 1.9/07.12.2010/TJ. Helsedirektoratet

Veileder for innsendingssystemet IPIS. Versjon 1.9/07.12.2010/TJ. Helsedirektoratet Veileder for innsendingssystemet IPIS Versjon 1.9/07.12.2010/TJ Helsedirektoratet 2 Endringshistorikk Versjonsnr Dato Beskrivelse av endringer 1.1 27.04.2006 Nedlasting av.net Framework er fjernet i kap

Detaljer

DELLEVERANSE 1 INF2120 V06

DELLEVERANSE 1 INF2120 V06 DELLEVERANSE 1 INF2120 V06 GRUPPE 22 VERSION: FINAL 22 FEBRUARY, 2006 MORTEN FOLLESTAD RAYNER VINTERVOLL ANISH RAJA IVA N. IVANOVA BJØRN BRÆNDSHØI Page 1 REVISJONSOVERSIKT Revisjonsoversikt Versjon Forfattere

Detaljer

INF1000 Prøveeksamen Oppgave 7 og 9

INF1000 Prøveeksamen Oppgave 7 og 9 INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med

Detaljer

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i. Skilpaddeskolen Skrevet av: Oversatt fra Code Club UK (//codeclub.org.uk) Oversatt av: Bjørn Einar Bjartnes Kurs: Python Tema: Tekstbasert Fag: Programmering, Kunst og håndverk Klassetrinn: 8.-10. klasse

Detaljer

Obligatorisk oppgave 1 INF1020 h2005

Obligatorisk oppgave 1 INF1020 h2005 Obligatorisk oppgave 1 INF1020 h2005 Frist: fredag 7. oktober Oppgaven skal løses individuelt, og må være godkjent for å kunne gå opp til eksamen. Før innlevering må retningslinjene Krav til innleverte

Detaljer

Teori om sikkerhetsteknologier

Teori om sikkerhetsteknologier Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Tomas Holt 22.8.2007 Lærestoffet er utviklet for faget LN479D/LV473D Nettverksikkerhet Innhold 1 1 1.1 Introduksjon til faget............................

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type (kapittel.) Hash-funksjoner (kapittel..)

Detaljer

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er:

! Ytelsen til I/O- systemer avhenger av flere faktorer: ! De to viktigste parametrene for ytelse til I/O er: Dagens temaer! Ulike kategorier input/output! Programmert! Avbruddstyrt! med polling.! Direct Memory Access (DMA)! Asynkrone vs synkrone busser! Med! Fordi! -enheter menes de enheter og mekanismer som

Detaljer

INF Puslegruppa - Kom i gang med PusleChat

INF Puslegruppa - Kom i gang med PusleChat INF1010 - Puslegruppa - Kom i gang med PusleChat Sigmund Hansen sigmunha@student.uio.no 31. mars 2011 Last ned dokumentasjonen til kildekoden. 1 1 Klassestruktur 1.1 inf1010.pusle.chat.client.chatclient

Detaljer

Informasjon Prøveeksamen i IN1000 høsten 2018

Informasjon Prøveeksamen i IN1000 høsten 2018 Prøveeksamen IN1000-INF1001-H18 Informasjon Prøveeksamen i IN1000 høsten 2018 Tid Fra tirsdag 6.11 kl. 14:15 til tirsdag 13.11 kl. 12:00 (Normal eksamenstid er 4 timer) Oppgavene Oppgave 2b og 2c er flervalgsoppgaver.

Detaljer

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi

Akseptansetest av mottak Rekvirering av medisinske tjenester Medisinsk biokjemi Akseptansetest av mottak Rekvirering av medisinske tjenester Meldingsversjon: versjon 1.4, datert 20.05.2005 2 Akseptansetest av mottak Rekvirering av medisinske tjenester Innholdsfortegnelse 1. Revisjonshistorikk...

Detaljer

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting

TDT4165 PROGRAMMING LANGUAGES. Exercise 02 Togvogn-skifting TDT4165 PROGRAMMING LANGUAGES Fall 2012 Exercise 02 Togvogn-skifting Problembeskrivelse Du er sjef for å skifte vognene til et tog. Vi antar at hver vogn selv har en motor og at toget ikke har noe lokomotiv.

Detaljer

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den.

Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. PXT: Stein, saks, papir Skrevet av: Bjørn Hamre Kurs: Microbit Introduksjon Her skal du lære å programmere micro:biten slik at du kan spille stein, saks, papir med den eller mot den. Steg 1: Velge tilfeldig

Detaljer

Sondre Granlund Moen

Sondre Granlund Moen Kryptering i sjøforsvaret Sondre Granlund Moen 27.06.17 Innhold Hva er kryptering?... 3 Symmetrisk kryptering... 3 Asymmetrisk kryptering... 3 Historie:... 3 Egypterne... 3 Cæsar- siffer (alfabetet)...

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler

Detaljer

Characteristics of a good design

Characteristics of a good design Characteristics of a good design (PPT. side 1) Innledning Høykvalitetsdesign bør ha visse karakteristikker for å oppnå kvalitetsprodukter, dvs.: enkelt å forstå enkelt å implementere enkelt å teste enkelt

Detaljer

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array

Maps og Hashing. INF Algoritmer og datastrukturer. Map - ADT. Map vs Array Maps og Hashing INF0 - Algoritmer og datastrukturer HØSTEN 00 Institutt for informatikk, Universitetet i Oslo INF0, forelesning : Maps og Hashing Map - Abstrakt Data Type Hash-funksjoner hashcode Kollisjonshåndtering

Detaljer

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering...

1 INNLEDNING... 2. 1.1 Om Altinn... 2. 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3. 2.1 Nedlasting... 3. 2.2 Registrering... INNHOLD Mamut for Altinn INNHOLD 1 INNLEDNING... 2 1.1 Om Altinn... 2 1.2 Skjemaer som støttes... 2 2 INSTALLASJON OG OPPSTART... 3 2.1 Nedlasting... 3 2.2 Registrering... 5 2.3 Opprett en bruker... 7

Detaljer

Instruksjon for å ta i bruk Digipost i Vivaldi. 1) Aktiver din Digipost-virksomhetskonto

Instruksjon for å ta i bruk Digipost i Vivaldi. 1) Aktiver din Digipost-virksomhetskonto Instruksjon for å ta i bruk Digipost i Vivaldi 1) Aktiver din Digipost-virksomhetskonto Etter at din bedrift har sendt inn en Digipost Brukeravtale får du beskjed fra Posten om at din virksomhetskonto

Detaljer

Akseptansetest av sending og mottak Applikasjonskvittering

Akseptansetest av sending og mottak Applikasjonskvittering Akseptansetest av sending og mottak Applikasjonskvittering Meldingsversjon: 1.0 Akseptansetest av sending og mottak Applikasjonskvittering 2 Innholdsfortegnelse 1. Revisjonshistorikk 3 2. Akseptansetest

Detaljer

INF100/INF100-F - INNLEVERING 2 HØSTEN 2005

INF100/INF100-F - INNLEVERING 2 HØSTEN 2005 INF100/INF100-F - INNLEVERING 2 HØSTEN 2005 Krav til innlevering For at innleveringen skal godkjennes må følgende leveres: Oversikt Et dokument som inneholder en oversikt over innleveringen. Den skal inneholde

Detaljer

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde

PXT: Hermegåsa. Introduksjon. Skrevet av: Felix Bjerke og Tjerand Silde PXT: Hermegåsa Skrevet av: Felix Bjerke og Tjerand Silde Kurs: Microbit Introduksjon Hermegåsa er et spill der en person er spilleder, og går ut på at han utfører instruksjoner på micro:biten sin som de

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2015

TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2015 Øving 3 Frist: 2014-02-07 Mål for denne øvinga:

Detaljer

INF Innleveringsoppgave 6

INF Innleveringsoppgave 6 INF1010 - Innleveringsoppgave 6 Frist: Onsdag 16. mars, 10:00 Maks 6 poeng Om obligatorisk oppgave 4, 6 og 7 i INF1010, våren 2016: "Leger og resepter" Du skal jobbe med en problemstilling omkring leger

Detaljer

Forelesning 24 mandag den 10. november

Forelesning 24 mandag den 10. november Forelesning 24 mandag den 10. november 6.3 RSA-algoritmen Merknad 6.3.1. Én av de meste berømte anveldesene av tallteori er i kryptografi. Alle former for sikre elektroniske overføringer er avhengige av

Detaljer

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon

PXT: Hermegåsa. Steg 1: Sjekk at du har riktig utstyr. Sjekkliste. Introduksjon PXT: Hermegåsa Nybegynner Micro:bit Introduksjon Hermegåsa er et spill der en person er spilleder, og går ut på at han utfører instruksjoner på micro:biten sin som de andre spillerene skal gjenta, altså

Detaljer

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Kompleksitetsanalyse Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Helge Hafting 25.1.2005 Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder Innhold 1 1 1.1 Hva er en algoritme?............................... 1 1.2

Detaljer

INF Algoritmer og datastrukturer

INF Algoritmer og datastrukturer INF2220 - Algoritmer og datastrukturer HØSTEN 2009 Institutt for informatikk, Universitetet i Oslo INF2220, forelesning 3: Maps og Hashing Bjarne Holen (Ifi, UiO) INF2220 H2009, forelesning 3 1 / 25 Maps

Detaljer

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt! Microbit PXT: Terning Skrevet av: Geir Arne Hjelle Kurs: Microbit Språk: Norsk bokmål Introduksjon Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt! Steg 1: Vi rister løs Vi

Detaljer

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L

Representasjon av tall på datamaskin Kort innføring for MAT-INF1100L Representasjon av tall på datamaskin Kort innføring for MAT-INF00L Knut Mørken 3. desember 204 Det er noen få prinsipper fra den første delen av MAT-INF00 om tall som studentene i MAT-INF00L bør kjenne

Detaljer

Veileder for bruk av tynne klienter

Veileder for bruk av tynne klienter Veileder for bruk av tynne klienter Dette dokumentet er en veileder for bruk av terminaltjener/klient (tynne klienter) for å skille samtidige brukerrettigheter i åpne og sikre soner. April 2005 Postadresse:

Detaljer

Kvantekryptografi. Hva er kryptografi? Symmetrisk kryptografi

Kvantekryptografi. Hva er kryptografi? Symmetrisk kryptografi Kvantekryptografi Lars Lydersen og Johannes Skaar Institutt for elektronikk og telekommunikasjon, NTNU, og Universitetssenteret på Kjeller (UNIK). 26. mai 2014 Kvantekryptografi er kunsten å kommunisere

Detaljer

Offentlig nøkkel kryptografi og RSA

Offentlig nøkkel kryptografi og RSA Offentlig nøkkel kryptografi og RSA Jens Otto Hatlevold Jan Magne Tjensvold Oktober 2006 Sammendrag Utgangspunktet for prosjektet er offentlig nøkkel kryptografi og hvordan denne teknikken benyttes i praksis.

Detaljer

Symmetrisk En hemmelig nøkkel ( passord ) som brukes både ved kryptering og dekryptering.

Symmetrisk En hemmelig nøkkel ( passord ) som brukes både ved kryptering og dekryptering. 1 Hva? Hva er informasjonssikkerhet? Information security encompasses the study of the concepts, techniques, technical measures, and administrative measures used to protect information assets from deliberate

Detaljer

Verktøy for boligkartlegging

Verktøy for boligkartlegging Verktøy for boligkartlegging Rapporter Versjon 3.0 Opprettet 15.05.2005 av Pål Guddal Sist endret 23.01.2007 av André Teig Bli kjent med Bokart- Rapporter Side 2 Hva er filter, og hva brukes de til? Filter

Detaljer

Elektronisk tilbudsinnlevering

Elektronisk tilbudsinnlevering Elektronisk tilbudsinnlevering Anskaffelseskonferansen 5. november 2015 Vibeke Engesæth Direktoratet for forvaltning og IKT Prosjektleder elektronisk tilbudsinnlevering Avdeling for offentlige anskaffelser

Detaljer

AVGJØRELSE 22. oktober 2015 Sak PAT 15/011. Klagenemnda for industrielle rettigheter sammensatt av følgende utvalg:

AVGJØRELSE 22. oktober 2015 Sak PAT 15/011. Klagenemnda for industrielle rettigheter sammensatt av følgende utvalg: AVGJØRELSE 22. oktober 2015 Sak PAT 15/011 Klager: Philip Morris Products S.A. Representert ved: Onsagers AS Klagenemnda for industrielle rettigheter sammensatt av følgende utvalg: Lill Anita Grimstad,

Detaljer