Rapport Semesteroppgave i datasikkerhet Harald Dahle (795955) og Joakim L. Gilje (796196)
|
|
- Frøydis Dale
- 8 år siden
- Visninger:
Transkript
1 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 nøkkelgenerator, kryptering og dekryptering. Det å implementere en nøkkelgenerator for RSA-krypteringen krever igjen at det er tilgjengelig en funksjon for å finne primtall. Valg av verktøy Da offentlig-nøkkel kryptering involverer bruk av store tall (som går langt utover 32 og 64-bits), har det også vært bruk for funksjonalitet for å jobbe med så store tall. Vi anså det som langt utenfor rammene av oppgaven å implementere et slikt bibliotek. På grunn av dette valgte vi å se etter et bibliotek og funksjoner for å jobbe mot svært store tall fra en tredje part. Valget falt på libcrypto, som er en del av OpenSSL [1]. Dette ga oss også en fordel da hovedoppgaven til libcrypto er nettopp kryptering, og vi har hatt muligheten til å verifisere f.eks. primtallene funnet ved vår implementasjon mot OpenSSL. Oppgaven er programmert i C. Utenom libcrypto er det kun benyttet standard C funksjoner. Oppgaven er utviklet og testet på IRIX, Solaris, MacOS X og Linux. Om RSA RSA er en algoritme for kryptering og dekryptering. Spesielt for RSA i motsetning tradisjonelle krypteringsalgoritmer er at man har en offentlig og en privat nøkkel. Den offentlige nøkkelen kan gjøres tilgjengelig for resten av verden (også «skumle» mennesker), mens man må se til at den private nøkkelen holdes hemmelig. RSA nøkkelgenerering består i 5 steg: 1. finn to ulike primtall, p og q 2. finn produktet av p og q, n 3. finn totient, (p-1)(q-1) 4. finn e, hvor e er mindre enn totient og relativt primtall til totient 5. finn d, som er invers av e modulo totient Offentlig nøkkel består av e og n, mens privat nøkkel består av d og n. Kryptering består da av C=M e mod n, mens dekryptering består av M =C d mod n. Her er M meldingen i klartekst, mens C er den krypterte meldingen (cipher-tekst). Implementering av oppgaven For å lære implementasjonen av RSA, har vi brukt Wikipedia [2] og Cryptography and Network Security [3]. Det å generere RSA nøkler krever i tillegg implementering av «Modular Exponentiation», «MillerRabin-test» og «Extended Euclidean Greatest Common Divisor». Her har vi fått hjelp av Wikipedia [4][5], Cryptography and Network Security [6], samt Algorithm Design [7]. RSA kryptering og dekryptering består kun av «Modular Exponentiation». «Modular Exponentiation» er regnestykker på følgende form: a b mod c. Årsaken til at man benytter en spesiell algoritme her, er for å slippe å regne ut a b som blir et nesten uendelig stort tall. I stedet «kortes» tallet hele tiden ned ved å trekke modulo-delen inn i regnestykket. «MillerRabin-test» er en algoritme for å sjekke om et tall kan være primtall. Dette er en av de største usikkerhetene ved hele nøkkelgenereringen da man aldri kan være sikker på at det er et primtall. For et tall n vil det kreve en sjekk på alle tall opp til n før man kan verifisere at n er et primtall. Da RSA-nøkler med størrelse på 2048 bit genereres ved to 1024-tall, blir det for mange tester å utføre i praksis. «MillerRabin-testen» vil istedet gi beskjed dersom det med sikkerhet kan
2 sies at tallet er faktoriserbart. For å minke sannsynligheten for å feilaktig godkjenne et faktoriserbart tall som et primtall, blir tallene testet 10 ganger. I gjennomsnitt skal man utføre 0.5 ln n søk [6]. «Extended Euclidean GCD» er en måte å regne ut den største felles nevner (GCD) mellom to tall. Det brukes under nøkkelgenerering under steg 4 og steg 5 (stegene er også angitt i kildekoden, under funksjonen generatekey(unsigned int)). I steg 4 ønsker en å sjekke at tallet e er relativt primtall til totienten, mens man i steg 5 ønsker å finne et tall d som tilfredstiller formelen de 1 mod totient. Begge deler kan finnes ved denne algoritmen, man må bare ta hensyn til hvilket tall som skal returneres fra funksjonen. Resultater Programmet er et enkelt kommandolinjebasert program. Man kan generere nøkler ved argumentet 'genkey' og ønsket bitlengde for nøkkelen. Programmet vil da generere et offentlig nøkkelpar og lagre offentlig nøkkel i filen pub, mens privat nøkkel lagres i priv. I tidligere versjoner av programmet ble libcrypto også brukt til å verifisere primtallene p og q under nøkkelgenerering. For å kryptere kaller man opp programmet med argumentet 'encrypt' samt hvilken nøkkel som skal brukes til krypteringen. Kryptert tekst lagres i filen cipher.txt. Tilsvarende for dekryptering kalles programmet med argumentet 'decrypt' samt hvilken nøkkel som skal brukes til dekrypteringen. Dekryptert tekst lagres i filen plain.txt. Programmet vil lese inn data fra stdin, og ofte er det enkleste på en Unix-plattform å bruke en «pipe»,, for å sende data inn til programmet. Eksempler på bruk # generering av et 2048-bits nøkkelpar./rsacrypt genkey 2048 # kryptere filen tekst cat tekst./rsacrypt encrypt mottakers-offentlige-nøkkel # dekryptere en mottatt fil mottatt-tekst cat mottatt-tekst./rsacrypt decrypt min-private-nøkkel Vi har verifisert «Modular Exponentiation», «Extended Euclidean GCD» og «Miller-Rabin test» mot implementasjoner som allerede eksisterer i OpenSSL, og fått bekreftet at disse fungerer korrekt. Begrensninger av implementeringen Når man krypterer en tekst blir den krypterte teksten lagret som en heksadesimal streng. Det betyr at den krypterte teksten bruker dobbel så stor plass som nødvendig. Under dekryptering blir den dekrypterte meldingen lagret som en streng, noe som forhindrer kryptering av binærer. Disse to tilfellene ville vært trivielle å forbedre, men vi ønsket ikke å komplisere oppgaven unødvendig. Vi har oppnådd hva vi ønsket. Konklusjon Programmet fungerer, og vi kan med sikkerhet si at programmet transformerer en klartekst til noe annet. Det er dessverre vanskelig for oss å verifisere en 2048-bits kryptering, men programmet har blitt testet ut fra blant annet eksempler gitt i boken med suksess.
3 Referanser [1] OpenSSL: [2] Wikipedia artikkel om RSA: [3] Cryptography and Network Security: kapittel 9 [4] Wikipedia artikkel om Miller-Rabin primtallstest: [5] Wikipedia artikkel om Extended Euclidean algoritmen: [6] Cryptography and Network Security: Kapittel 8 [7] Algorithm Design: Kapittel 10.1 Koden vår ligger under CVS-kontroll på
4 Kildekode Revision 1.13, Thu Oct 27 12:29: UTC CVS Tags: HEAD #include <math.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <openssl/bn.h> BIGNUM* one; BIGNUM* two; BN_CTX* BN_context; millerrabin-testen skal kjã res flere ganger derfor opprettes det et sett med BN som er felles for hvert kall typedef struct millerrabinbntemp { BIGNUM* d; BIGNUM* a; BIGNUM* tmp; BIGNUM* compare; BIGNUM* range; BIGNUM* testm1; BIGNUM* r; millerrabinbntemp; denne koden er presentert flerne steder... (bl.a. Figur 9.7, side 273 i CNS) b: base, e: exponent, m: modulus target: BN hvor resultatet lagres r: temp-verdi (raskere kalkulasjon nã r denne kjã res ofte) void modexponentiationbn(bignum* target, BIGNUM* b, BIGNUM* e, BIGNUM* m, BIGNUM* r) { int i; BN_set_word(target, 1); for (i = BN_num_bits(e); i >= 0; i--) { BN_mod_sqr(r, target, m, BN_context); if (BN_is_bit_set(e,i)) { BN_mod_mul(target, r, b, m, BN_context); else { BN_copy(target, r); return; initialiser innholdet i struct millerrabinbntemp void millerrabinbninit(millerrabinbntemp* bntemp) {
5 bntemp->d = BN_new(); bntemp->a = BN_new(); bntemp->tmp = BN_new(); bntemp->compare = BN_new(); bntemp->range = BN_new(); bntemp->testm1 = BN_new(); bntemp->r = BN_new(); rydd opp etter millerrabin-testen void millerrabinbnfree(millerrabinbntemp* bntemp) { BN_free(bnTemp->d); BN_free(bnTemp->a); BN_free(bnTemp->tmp); BN_free(bnTemp->compare); BN_free(bnTemp->range); BN_free(bnTemp->testM1); BN_free(bnTemp->r); Dette er en implementasjon av algoritmen presentert side 244 i CNS, og test - nummer à teste (n i boka) times - antall ganger à test Miller-Rabin testen viser egentlig om et tall med sikkerhet kan faktoriseres. Derfor returnerer testen sann (1) hvis tallet test kan faktoriseres. int millerrabintestbn(bignum* test, unsigned int times, millerrabinbntemp* bntemp) { unsigned int twoexp = 0; unsigned int i, j; unsigned int ok = 0; BN_sub(bnTemp->testM1, test, one); BN_copy(bnTemp->d, bntemp->testm1); while (! BN_is_odd(bnTemp->d)) { twoexp++; BN_rshift1(bnTemp->d, bntemp->d); // selve testen for (i = 0; i < times; i++) { BN_rand_range(bnTemp->a, test); if (BN_is_zero(bnTemp->a)) BN_one(bnTemp->a); ok = 0; modexponentiationbn(bntemp->compare, bntemp->a, bntemp->d, test, bntemp->r); if (BN_is_one(bnTemp->compare)) { // printf("inconclusive on T1: modexponentiation(a, yarr, test) == 1\n"); continue;
6 for (j = 0; j < twoexp; j++) { BN_set_word(bnTemp->range, (unsigned long) j); BN_exp(bnTemp->tmp, two, bntemp->range, BN_context); BN_mul(bnTemp->tmp, bntemp->tmp, bntemp->d, BN_context); >tmp, test, bntemp->r); modexponentiationbn(bntemp->compare, bntemp->a, bntemp- if (! BN_cmp(bnTemp->compare, bntemp->testm1)) { // printf("inconclusive on T2: modexponentiation(a, pow(2, j) * yarr, test) == (test - 1)\n"); ok = 1; break; if (ok) continue; // printf("composite\n"); // printf("probably prime\n"); return 0; et ganske dã rlig funksjonsnavn... dette er en implementasjon av "extended euclidean algorithm" relprime: angir om man tester pã om man har funnet to relative primtall (steg 4 i RSA-keygen) void extgcdbn(bignum* target, BIGNUM* z, BIGNUM* x, int relprime) { BIGNUM *a, *b, *c, *p, *q, *r, *s, *quot, *new_r, *new_s, *temp; a = BN_new(); b = BN_new(); c = BN_new(); p = BN_new(); q = BN_new(); r = BN_new(); s = BN_new(); quot = BN_new(); new_r = BN_new(); new_s = BN_new(); temp = BN_new(); BN_copy(a,z); BN_copy(b,x); BN_one(p); BN_one(s); BN_zero(q); BN_zero(r); while (! BN_is_zero(b)) { BN_div(quot, c, a, b, BN_context); BN_copy(a,b); BN_copy(b,c); BN_mul(temp,quot,r,BN_context); BN_sub(new_r,p,temp); BN_mul(temp,quot,s,BN_context); BN_sub(new_s,q,temp); BN_copy(p,r); BN_copy(q,s); BN_copy(r,new_r); BN_copy(s,new_s); // printf("p %s, q %s, r %s, s %s\n", BN_bn2dec(p), BN_bn2dec(q),
7 BN_bn2dec(r), BN_bn2dec(s)); if (relprime) { BN_copy(target, a); else { if (q->neg) { BN_add(target,s,q); else { BN_copy(target,q); BN_free(a); BN_free(b); BN_free(c); BN_free(p); BN_free(q); BN_free(r); BN_free(s); BN_free(quot); BN_free(new_r); BN_free(new_s); BN_free(temp); // printf("target %s\n", BN_bn2dec(target)); genererer en 'bits' stor RSA-nà kkel privat nã kkel lagres i filen 'priv' offentlig nã kkel lagres i filen 'pub' void generatekey(unsigned int bits) { BIGNUM* p = BN_new(); BIGNUM* q = BN_new(); BIGNUM* n = BN_new(); BIGNUM* totient = BN_new(); BIGNUM* d = BN_new(); BIGNUM* e = BN_new(); BIGNUM* gcd = BN_new(); unsigned p_tests = 1; unsigned q_tests = 1; millerrabinbntemp bntemp; FILE* key; // pã de fleste *NIX-plattformer blir random-generatoren til // OpenSSL automatisk seeded if (! RAND_status()) { printf("error; random-generator has not been seeded\n"); exit(1); // STEG 1 // generer et tilfeldig oddetall if (! BN_rand(p, (bits / 2), 1, 1)) { printf("error generating rand p\n"); if (! BN_rand(q, (bits / 2), 1, 1)) { printf("error generating rand q\n"); millerrabinbninit(&bntemp); printf("generating p\n"); while (millerrabintestbn(p, 10, &bntemp)) { BN_add(p, p, two); p_tests++;
8 printf("generating q\n"); while (millerrabintestbn(q, 10, &bntemp)) { BN_add(q, q, two); q_tests++; millerrabinbnfree(&bntemp); printf("p tested %d times, q tested %d times\n", p_tests, q_tests); // STEG 2 BN_mul(n, p, q, BN_context); // STEG 3 BN_sub_word(p, 1UL); BN_sub_word(q, 1UL); BN_mul(totient, p, q, BN_context); // STEG 4 do { BN_set_word(e, 0); while (BN_is_one(e) BN_is_zero(e)) { BN_rand_range(e, totient); extgcdbn(gcd, totient, e, 1); while (! BN_is_one(gcd)); // STEG 5 extgcdbn(d, totient, e, 0); key = fopen("priv", "w"); BN_print_fp(key, n); fprintf(key, "\n"); BN_print_fp(key, d); fprintf(key, "\n"); fclose(key); key = fopen("pub", "w"); BN_print_fp(key, n); fprintf(key, "\n"); BN_print_fp(key, e); fprintf(key, "\n"); fclose(key); printf("remember TO PROTECT FILE 'priv'\n"); krypterer stdin, lagrer til cipher.txt bruker offentlig nã kkel fra 'key' void RSAencrypt(FILE* key) { BIGNUM *n, *e, *plain, *cipher, *temp; size_t n_size, e_size; char *nstr, *estr; unsigned char *plaintext; unsigned int textpos = 0; unsigned int bitsize = 0; FILE* ciphertext; n_size = 1; while (fgetc(key)!= 0x0a) n_size++; e_size = 1; while (fgetc(key)!= 0x0a)
9 e_size++; if (n_size < e_size) { printf("error; n_size < e_size\n"); exit(1); bitsize = n_size - 1; nstr = malloc(n_size); estr = malloc(e_size); rewind(key); fread(nstr, n_size, 1, key); fread(estr, e_size, 1, key); nstr[bitsize] = 0x0; estr[bitsize] = 0x0; n = BN_new(); e = BN_new(); plain = BN_new(); cipher = BN_new(); temp = BN_new(); BN_hex2bn(&n, nstr); BN_hex2bn(&e, estr); ciphertext = fopen("cipher.txt", "w"); plaintext = malloc(bitsize / 2); while (! feof(stdin)) { char current = getchar(); if (feof(stdin)) { plaintext[bitsize / 2] = 0x0; textpos = bitsize; // printf("end!\n"); else { plaintext[textpos] = current; textpos++; if (textpos >= (bitsize / 2)) { plaintext[bitsize / 2] = 0x0; BN_bin2bn(plaintext, bitsize / 2, plain); modexponentiationbn(cipher, plain, e, n, temp); // printf("%s => %s\n", BN_bn2hex(plain), BN_bn2hex(cipher)); fprintf(ciphertext, "%0*s", bitsize, BN_bn2hex(cipher)); textpos = 0; memset(plaintext, 0, bitsize / 2); fclose(ciphertext); dekrypterer stdin, lagrer til plain.txt bruker privat nã kkel fra 'key' void RSAdecrypt(FILE* key) { BIGNUM *n, *d, *plain, *cipher, *temp; size_t n_size, d_size; char *nstr, *dstr;
10 char *ciphertext; unsigned char *plaintext; unsigned int textpos = 0; unsigned int bitsize = 0; FILE* plaintext; n_size = 1; while (fgetc(key)!= 0x0a) n_size++; d_size = 1; while (fgetc(key)!= 0x0a) d_size++; if (n_size < d_size) { printf("error; n_size < d_size\n"); exit(1); bitsize = n_size - 1; nstr = malloc(n_size); dstr = malloc(d_size); rewind(key); fread(nstr, n_size, 1, key); fread(dstr, d_size, 1, key); nstr[bitsize] = 0x0; dstr[bitsize] = 0x0; n = BN_new(); d = BN_new(); plain = BN_new(); cipher = BN_new(); temp = BN_new(); BN_hex2bn(&n, nstr); BN_hex2bn(&d, dstr); plaintext = fopen("plain.txt", "w"); ciphertext = malloc(bitsize); plaintext = malloc(bitsize); while (! feof(stdin)) { char current = getchar(); ciphertext[textpos] = current; textpos++; if (textpos >= (bitsize)) { ciphertext[bitsize] = 0x0; BN_hex2bn(&cipher, ciphertext); modexponentiationbn(plain, cipher, d, n, temp); // printf("%s => %s\n", BN_bn2hex(cipher), BN_bn2hex(plain)); BN_bn2bin(plain, plaintext); fprintf(plaintext, "%.*s", bitsize, plaintext); textpos = 0; fclose(plaintext);
11 int main (int argc, const char * argv[]) { FILE* key; dir\n" dir\n"); one = BN_new(); two = BN_new(); BN_context = BN_CTX_new(); BN_set_word(one, 1UL); BN_set_word(two, 2UL); if (argc <= 1) { printf("usage: \n" "\t'genkey (bits)': Generate Private/Public\n" "\t'encrypt': encrypts stdin using key in current "\t'decrypt': decrypts stdin using key in current if (! strcmp(argv[1], "genkey")) { unsigned int bits; if (argc <= 2) { printf("missing keylength\n"); bits = strtol(argv[2], NULL, 10); printf("generating %d bits key\n", bits); // TODO: sjekk stã rrelsen av nã kkel generatekey(bits); return 0; if (! strcmp(argv[1], "encrypt")) { if (argc <= 2) { printf("specify which private keyfile to use\n"); key = fopen(argv[2], "r"); if (! key) { printf("failed to open keyfile\n"); RSAencrypt(key); fclose(key); return 0; if (! strcmp(argv[1], "decrypt")) { if (argc <= 2) { printf("specify which private keyfile to use\n"); key = fopen(argv[2], "r"); if (! key) { printf("failed to open keyfile\n"); RSAdecrypt(key); fclose(key); return 0;
12 return 0;
1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO
1 ØVING I WINDOWS FRA CHRISTIAN ANDOLO Program fra sekunder Lag et program som leser inn en tid i sekunder (et stort tall). Deretter skal programmet skrive ut hvor mange timer, minutter og sekunder dette
DetaljerDel 1 En oversikt over C-programmering
Del 1 En oversikt over C-programmering 1 RR 2016 Starten C ble utviklet mellom 1969 og 1973 for å re-implementere Unix operativsystemet. Er et strukturert programmeringsspråk, hvor program bygges opp av
DetaljerOversikt. Introduksjon Kildekode Kompilering Hello world Hello world med argumenter. 1 C programmering. 2 Funksjoner. 3 Datatyper. 4 Pekere og arrays
Oversikt C programmering 1 C programmering Introduksjon Kildekode Kompilering Hello world Hello world med argumenter 2 Funksjoner 3 Datatyper 4 Pekere og arrays 5 Kontrollstrukturer Lars Vidar Magnusson
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: Varighet: Fagnummer: Fagnavn: Klasse(r): Studiepoeng: Faglærer(e): Hjelpemidler: Oppgavesettet består av:
DetaljerINF1040 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
DetaljerSteg 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
DetaljerDatabase security. Kapittel 14 Building Secure Software. Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no
Database security Kapittel 14 Building Secure Software Inf329, Høst 2005 Isabel Maldonado st10900@student.uib.no Kort introduksjon Database er en organisert samling av data. SQL(Structured Query Language)
DetaljerTDT4102 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 1 Frist: DD.MM.YYYY Mål for denne øvinga:
DetaljerKapittel 1 En oversikt over C-språket
Kapittel 1 En oversikt over C-språket RR 2015 1 Skal se på hvordan man En innføring i C Skriver data til skjermen Lese data fra tastaturet Benytter de grunnleggende datatypene Foretar enkle matematiske
DetaljerProgrammering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
DetaljerLynkurs i shellprogrammering under Linux
Lynkurs i shellprogrammering under Linux Interaktiv bruk av shell Shell/skall er en applikasjon som lar bruker taste inn tekstlige kommandoer til Linux en og en linje om gangen (leser linjer fra stdin).
DetaljerKryptering Kongruensregning Kongruensregning i kryptering Litteratur. Hemmelige koder. Kristian Ranestad. 9. Mars 2006
i kryptering 9. Mars 2006 i kryptering i kryptering i kryptering En hemmelig melding Kari sender til Ole den hemmelige meldingen: J MPWF V siden responsen er litt treg prøver hun påny med: U EVOL I Nå
DetaljerTDT4102 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 1 LF LØSNINGSFORSLAG Mål for denne øvinga:
DetaljerKanter, kanter, mange mangekanter
Kanter, kanter, mange mangekanter Nybegynner Processing PDF Introduksjon: Her skal vi se på litt mer avansert opptegning og bevegelse. Vi skal ta utgangspunkt i oppgaven om den sprettende ballen, men bytte
DetaljerAlgoritmer og Datastrukturer
Eksamen i Algoritmer og Datastrukturer IAI 21899 Høgskolen i Østfold Avdeling for informatikk og automatisering Torsdag 3. november 2, kl. 9. - 14. Hjelpemidler: Alle trykte og skrevne hjelpemidler. Kalkulator.
DetaljerTOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 4 Frist: 2016-02-12 Mål for denne øvingen:
DetaljerOppgaver 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
DetaljerSteg 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
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 2 Frist: 2016-01-29 Mål for denne øvingen:
DetaljerEn oppsummering (og litt som står igjen)
En oppsummering (og litt som står igjen) Pensumoversikt Hovedtanker i kurset Selvmodifiserende kode Overflyt Eksamen En oppsummering Oppsummering Pensum læreboken til og med kapittel 7 forelesningene de
DetaljerOppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.
Oppgaver uke 35: Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin. Oppgave 1. Skriv et C-program som leser mål i tommer og skriver det ut i fot og tommer. (Det er 12 tommer
DetaljerDel 4 Noen spesielle C-elementer
Del 4 Noen spesielle C-elementer 1 RR 2016 Header-filer inneholder Prototypene til funksjonene i standard biblioteket Verdier og definisjoner som disse funksjonene bruker #include #include
DetaljerIN 147 Program og maskinvare
Dagens tema Deklarasjon av nye typer Typekonvertering Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger Egne
DetaljerLøsningsforslag EKSAMEN
1 Løsningsforslag EKSAMEN Emnekode: ITF20006 000 Dato: 18. mai 2012 Emne: Algoritmer og datastrukturer Eksamenstid: 09:00 til 13:00 Hjelpemidler: 8 A4-sider (4 ark) med egne notater Faglærer: Gunnar Misund
DetaljerEKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Ingen. Elektronisk (WiseFlow) Robert Pettersen
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 20.02.2017 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Teorifagbygget, Hus 3,
DetaljerOffentlig 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.
DetaljerAlgoritmer - definisjon
Algoritmeanalyse Algoritmer - definisjon En algoritme er en beskrivelse av hvordan man løser et veldefinert problem med en presist formulert sekvens av et endelig antall enkle, utvetydige og tidsbegrensede
DetaljerKryptering 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
DetaljerNybegynnerkurs i C. Øyvind Grønnesby. 14. oktober Introduksjon Typer Operatorer Kontrollstrukturer Pekere Makroer Lenker
Nybegynnerkurs i C Øyvind Grønnesby 14. oktober 2004 Introduksjon pass-by-value svakt typet portabel assembler siste ISO-standard er C99 Hello world #i n c l u d e < s t d l i b. h> #i n c l u d e
DetaljerINF1010 notat: Binærsøking og quicksort
INF1010 notat: Binærsøking og quicksort Ragnhild Kobro Runde Februar 2004 I dette notatet skal vi ta for oss ytterligere to eksempler der rekursjon har en naturlig anvendelse, nemlig binærsøking og quicksort.
DetaljerINF1010 - Seminaroppgaver til uke 3
INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar
DetaljerHash-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
DetaljerSkilpaddefraktaler Erfaren Python PDF
Skilpaddefraktaler Erfaren Python PDF Introduksjon Vi vil nå jobbe videre med skilpaddekunsten fra tidligere. Denne gangen skal vi tegne forskjellige figurer som kalles fraktaler. Fraktaler er figurer
Detaljer<?php. count tar en array som argument, og returnerer et tall som uttrykker antallet innførsler i arrayen.
Hver gang funksjonen printhallo kalles utføres instruksjonene spesifisert i den. [Kurssidene] [ ABI - fagsider bibin ] Webprogrammering høsten 2015 //funksjonskall printhallo(); //enda en gang printhallo();
DetaljerMatematikk 1000. Øvingsoppgaver i numerikk leksjon 8 Matriser. Løsningsforslag
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 8 Matriser Løsningsforslag Oppgave 1 Redusert trappeform og løsning av lineære likningssystemer a) Totalmatrisa blir Vi tilordner dette i MATLAB: 5 1 1
DetaljerLøsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010
Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010 1. a) Ingen andre tall enn en deler en, og en deler fire, så (1, 4) = 1 b) 1 c) 7 er et primtall og 7 er ikke en faktor i 41, så største felles
DetaljerLøse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier og innlesing fra fil INF1000, uke4 Geir Kjetil Sandve Repetisjon fra forrige uke: while Syntaks: while (condition) do1; do2;... Eksempel:
DetaljerOrdliste. Obligatorisk oppgave 1 - Inf 1020
Ordliste. Obligatorisk oppgave 1 - Inf 1020 I denne oppgaven skal vi tenke oss at vi vil holde et register over alle norske ord (med alle bøyninger), og at vi skal lage operasjoner som kan brukes til f.
DetaljerUtførelse av programmer, metoder og synlighet av variabler i JSP
Utførelse av programmer, metoder og synlighet av variabler i JSP Av Alf Inge Wang 1. Utførelse av programmer Et dataprogram består oftest av en rekke programlinjer som gir instruksjoner til datamaskinen
DetaljerSikkerhet i GSM mobilteleforsystem
Sikkerhet i GSM mobilteleforsystem Sikkerhet i GSM mobilteleforsystem... 1 En enkel krypteringsmetode... 1 Oversikt over GSM... 2 Autentisering av telefon og SIM-kort... 3 IMEI og sjekksum... 3 IMSI og
DetaljerUniversitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk
Side 1 av 20 Universitetet i Bergen Det matematisk-naturvitenskapelige fakultet Institutt for informatikk Bokmål Eksamen i emnet INF100 Grunnkurs i programmering Torsdag 27. november 2014 Tid: 09:00 14:00
DetaljerØvingsforelesning 3 Python (TDT4110)
Øvingsforelesning 3 Python (TDT4110) For og While-løkker Ole-Magnus Pedersen Oversikt Praktisk Info Gjennomgang av øving 1 Programmering for Øving 3 2 Studasser og Piazza Studasser er der for å hjelpe
DetaljerPopulæ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
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2
Delkapittel 9.2 Rød-svarte og 2-3-4 trær Side 1 av 16 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2 9.2 Rød-svarte og 2-3-4 trær 9.2.1 B-tre av orden 4 eller 2-3-4 tre Et rød-svart tre og et
DetaljerClient-side Security
Client-side Security Kap. 15, Building Secure Software 31. oktober 2005 Inf 329, Utvikling av sikre applikasjoner Ståle Andreas Kleppe Innledning Never trust the client Klienten
DetaljerLØSNINGSFORSLAG SIF5015 DISKRET MATEMATIKK Onsdag 18. desember 2002
Norges teknisk naturvitenskapelige universitet Institutt for matematiske fag Side av 7 LØSNINGSFORSLAG SIF55 DISKRET MATEMATIKK Onsdag 8. desember 22 Oppgave a) Vi vil ha 77x (mod 3), så vi trenger en
DetaljerAlgoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2
Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien
DetaljerTDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering
1 TDT4105 Informasjonsteknologi grunnkurs: Uke 42 Strenger og strenghåndtering Anders Christensen anders@idi.ntnu.no Rune Sætre satre@idi.ntnu.no 2 Læringsmål og pensum Læringsmål Skal kunne forstå og
DetaljerKryptogra og elliptiske kurver
Kryptogra og elliptiske kurver Eivind Eriksen Høgskolen i Oslo Gjesteforelesning, 7. november 2007 Eivind Eriksen (Høgskolen i Oslo) Kryptogra og elliptiske kurver 1 / 23 Plan: 1 Generelt om kryptogra
DetaljerLøsningsforslag til eksamen 24. november 2015
Operativsystemer med Linux Løsningsforslag til eksamen 24. november 2015 Oppgave 1 a) Et OS deler tiden inn i små deler, typisk et hundredels sekund, og fordeler slike korte timeslices til alle prossene
DetaljerAlgoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3
Delkapittel 1.3 Ordnede tabeller Side 1 av 70 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.3 1.3 Ordnede tabeller 1.3.1 Permutasjoner En samling verdier kan settes opp i en rekkefølge. Hver
DetaljerHØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 25. mai 2005 Varighet: 4 timer (9:00 13:00) Fagnummer: LO182D Fagnavn: Programmering i C++ Klasse(r): FU
DetaljerOversikt over kryptografi
Oversikt over kryptografi Richard Williamson 3. desember 2014 Oppgave 1 Person A ønsker å sende meldingen Ha det! til person B, og ønsker å benytte RSAalgoritmen for å kryptere den. Den offentlige nøkkelen
Detaljer23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.
Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen
DetaljerAlgoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8
Delkapittel 1.8 Algoritmeanalyse Side 1 av 12 Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8 1.8 Algoritmeanalyse 1.8.1 En algoritmes arbeidsmengde I Delkapittel 1.1 ble det definert og diskutert
DetaljerMAT1030 Diskret matematikk
MAT1030 Diskret matematikk Plenumsregning 1: Kapittel 1 Roger Antonsen Matematisk Institutt, Universitetet i Oslo 17. januar 2008 Velkommen til plenumsregning for MAT1030 Torsdager 10:15 12:00 Gjennomgang
DetaljerTDT4102 Prosedyreog objektorientert programmering Vår 2016
Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyreog objektorientert programmering Vår 2016 Øving 5 Frist: 2016-02-19 Mål for denne øvingen:
DetaljerDagens tema: 12 gode råd for en kompilatorskriver. Sjekking av navn. Lagring av navn. Hvordan finne et navn?
Dagens tema: 12 gode råd for en kompilatorskriver Hva skal gjøres med navn? Sjekking av navn Hvordan sjekke navn? Testutskrifter 12 gode råd En kompilator må også sjekke riktig navnebruk: Det må ikke forekomme
DetaljerBOKMÅL Side 1 av 5. KONTERINGSEKSAMEN I FAG TDT4102 Prosedyre og objektorientert programmering. Onsdag 6. august 2008 Kl. 09.00 13.
BOKMÅL Side 1 av 5 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTERINGSEKSAMEN
DetaljerAlgoritmeanalyse. (og litt om datastrukturer)
Algoritmeanalyse (og litt om datastrukturer) Datastrukturer definisjon En datastruktur er den måten en samling data er organisert på. Datastrukturen kan være ordnet (sortert på en eller annen måte) eller
DetaljerE K S A M E N. Grunnleggende datakunnskap og programmering 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA
Høgskolen i Gjøvik E K S A M E N FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 15. desember 1998 KLASSE: 98HINDA / 98HINDB / 98HINEA 98HDMUA / 98HDMUB / 98HINGA
DetaljerAlgoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1
Delkapittel 9.1 Generelt om balanserte trær Side 1 av 13 Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.1 9.1 Generelt om balanserte trær 9.1.1 Hva er et balansert tre? Begrepene balansert og
DetaljerKryptering med Vigenère-metoden
Kryptonøtt Skrevet av: Arve Seljebu Oversatt av: Stein Olav Romslo Kurs: Python Tema: Tekstbasert Fag: Programmering Klassetrinn: 8.-10. klasse, Videregående skole Introduksjon Kryptering har vore i bruk
DetaljerKONTINUASJONSEKSAMEN
Høgskolen i Gjøvik Avdeling for teknologi KONTINUASJONSEKSAMEN FAGNAVN: FAGKODE: Grunnleggende datakunnskap og programmering L 182 A EKSAMENSDATO: 9. august 2002 KLASSE(R): 01HIND*, 01HINE*, 01HDMU*, 01HING*
DetaljerOppgave 1 a. INF1020 Algoritmer og datastrukturer. Oppgave 1 b
Oppgave 1 1 a INF1020 Algoritmer og datastrukturer Forelesning 14: Gjennomgang av eksamen vår 2001 oppgave 1,2,4 Arild Waaler Institutt for informatikk, Universitetet i Oslo Oppgave 1 a Programmer en ikke-rekursiv
DetaljerIN 147 Program og maskinvare
Dagens tema Mer om C Cs preprosessor Allokering av variable Separat kompilering Programmet make Pekere i C Operasjoner på pekere Pekere og vektorer Referanseparametre Pekere til «alt» og «ingenting» Dynamisk
DetaljerINF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004
INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere
DetaljerMer om C programmering og cuncurrency
Mer om C programmering og cuncurrency Lars Vidar Magnusson September 23, 2011 Lars Vidar Magnusson () Forelesning i Operativsystemer 20.09.2011 September 23, 2011 1 / 19 Oversikt Mer om C programmering
DetaljerEKSAMEN. Algoritmer og datastrukturer. Eksamensoppgaven: Oppgavesettet består av 11 sider inklusiv vedlegg og denne forsiden.
EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: Eksamenstid: 20. mai 2008 kl 09.00 til kl 13.00 Hjelpemidler: 4 A4-sider (2 ark) med valgfritt innhold Kalkulator Faglærer: Mari-Ann
DetaljerProgrammeringsspråket C
Programmeringsspråket C Bakgrunn Implementasjon av Unix ved AT&Ts laboratorium i Palo Alto 1960 75. Navnet kommer fra BCPL B C. Opphavsmannnen heter Dennis Ritchie. ANSI standard i 1988; omtrent alle følger
DetaljerLøsningsforslag for eksamensoppgave, våren 2004
Løsningsforslag for eksamensoppgave, våren 2004 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning Oppgave 1 Node.h // I oppgaven i n d i k e r e s d e t a t en s k a l kunne l a g r e t a l
DetaljerPå tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.
Tre på rad Erfaren Python Introduksjon På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad. Steg 1: Tegne
DetaljerRepetisjon Novice Videregående Python PDF
Repetisjon Novice Videregående Python PDF Introduksjon I denne oppgaven skal vi repetere litt Python-syntaks. Hele dette kurset er for de som har programmert Python før. Dersom ikke har mye erfaring med
DetaljerHØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING
HØYSKOLEN I OSLO, AVDELING FOR INGENIØRUTDANNING Eksamensoppgave i kurset: Programmering i C++. Fagnr: LV 121 A Eksamensdato: 10 februar, 2003. Faglærer: Cecilie Rolstad Antall oppgaver: 5 Antall sider,
DetaljerLøsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene
DetaljerTDT4105 IT Grunnkurs Høst 2014
TDT4105 IT Grunnkurs Høst 2014 Norges teknisknaturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap Øving 7 1 Teori a) Konverter tallet 69 fra det desimale til det binære og
DetaljerKontinuasjonseksamen
Høgskolen i Gjøvik Kontinuasjonseksamen FAGNAVN: FAGNUMMER: Grunnleggende datakunnskap, programmering og datastrukturer L 176 A EKSAMENSDATO: 5. januar 1999 KLASSE: 97HINDA / 97HINDB / 97HDMUA TID: 09.00-14.00
DetaljerTDT4102 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 1 Frist: 2014-01-24 Mål for denne øvinga:
DetaljerQED 1 7. Matematikk for grunnskolelærerutdanningen. Bind 2. Fasit kapittel 1 Tallenes hemmeligheter
QED 1 7 Matematikk for grunnskolelærerutdanningen Bind 2 Fasit kapittel 1 Tallenes hemmeligheter Kapittel 1 Oppgave 8. Nei Oppgave 9. Det nnes ikke nødvendigvis et minste element i mengden. Et eksempel
DetaljerHøgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N. Grunnleggende programmering
Høgskolen i Gjøvik Institutt for informatikk og medieteknikk E K S A M E N FAGNAVN: Grunnleggende programmering FAGNUMMER: IMT 1031 EKSAMENSDATO: 19.desember 2005 KLASSE(R): 05HBIND*, 05HBINFA, 05HBISA,
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerKAPITTEL 3 Litt logikk og noen andre småting
KAPITTEL 3 Litt logikk og noen andre småting Logikk er sentralt både i matematikk og programmering, og en innføring i de enkleste delene av logikken er hovedtema i dette kapitlet I tillegg ser vi litt
DetaljerAdministrivia INF 3110/ INF /02/2005 1
Administrivia Arild Fines Studentassistent for INF5110 Tok INF5110 våren 2004 Ingen tradisjonelle gruppetimer Veiledning over epost og/eller ved treffetid arild.fines@broadpark.no 03/02/2005 1 Lex/Flex
DetaljerEKSAMENSOPPGAVE. INF-1100 Innføring i programmering og datamaskiners virkemåte. Teorifagb, hus 3, og og Adm.bygget, Aud.max og B.
Fakultet for naturvitenskap og teknologi EKSAMENSOPPGAVE Eksamen i: Dato: 06.12.2016 Klokkeslett: 09:00 13:00 INF-1100 Innføring i programmering og datamaskiners virkemåte Sted: Tillatte hjelpemidler:
DetaljerMatematikk 1000. Øvingsoppgaver i numerikk leksjon 5 Skript
Matematikk 1000 Øvingsoppgaver i numerikk leksjon 5 Skript I denne øvinga skal vi lære oss mer om skript. Et skript kan vi se på som et lite program altså en sekvens av kommandoer. Til sist skal vi se
Detaljerstatic int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden
Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace
DetaljerEKSAMEN. Operativsystemer. 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre A-4 ark med selvskrevne notater.
EKSAMEN Emnekode: ITF22506 Emne: Operativsystemer Dato: 12. desember 2007 Eksamenstid: kl. 9.00 til kl. 13.00 Hjelpemidler: 1. Læreboken "A Practical Guide to Red Hat Linux" av Mark Sobell 2. Maks. tre
DetaljerINF 4130. 8. oktober 2009. Dagens tema: Uavgjørbarhet. Neste uke: NP-kompletthet
INF 4130 8. oktober 2009 Stein Krogdahl Dagens tema: Uavgjørbarhet Dette har blitt framstilt litt annerledes tidligere år Se Dinos forelesninger fra i fjor. I år: Vi tenker mer i programmer enn i Turing-maskiner
DetaljerFunksjonalitet og oppbygning av et OS (og litt mer om Linux)
Funksjonalitet og oppbygning av et OS (og litt mer om Linux) Hovedfunksjoner i et OS OS skal sørge for: Styring av maskinvaren Deling av maskinens ressurser Abstraksjon vekk fra detaljer om maskinvaren
DetaljerECC 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
DetaljerNy/utsatt EKSAMEN. Dato: 6. januar 2017 Eksamenstid: 09:00 13:00
Ny/utsatt EKSAMEN Emnekode: ITF20006 Emne: Algoritmer og datastrukturer Dato: 6. januar 2017 Eksamenstid: 09:00 13:00 Hjelpemidler: Alle trykte og skrevne Faglærer: Jan Høiberg Om eksamensoppgavene: Oppgavesettet
DetaljerBetinget eksekvering og logiske tester i shell
Betinget eksekvering og logiske tester i shell Betinget eksekvering *? Programmet utfører operasjon(er) bare hvis en logisk betingelse er sann Bash tilbyr to kontrollstrukturer for å kunne gjøre betinget
DetaljerKondisjonstest. Algoritmer og datastrukturer. Python-oppgaver. Onsdag 6. oktober Her er noen repetisjonsoppgaver i Python.
Algoritmer og datastrukturer Kondisjonstest Python-oppgaver Onsdag 6. oktober 2004 Her er noen repetisjonsoppgaver i Python. Som alltid er den beste måten å lære å programmere på å sette seg ned og programmere
DetaljerTre på rad mot datamaskinen. Steg 1: Vi fortsetter fra forrige gang. Sjekkliste. Introduksjon
Tre på rad mot datamaskinen Erfaren Python Introduksjon I dag skal vi prøve å skrive kode slik at datamaskinen kan spille tre på rad mot oss. Datamaskinen vil ikke spille så bra i begynnelsen, men etterhvert
DetaljerKryptografi 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.
DetaljerIN 147 Program og maskinvare
Dagens tema Deklarasjon av nye typer Typekonvertering mellom pekere Regning med pekere Pekere til funksjoner Pekere til pekere til... Vanlige feil ved bruk av pekere Feilsøking Debuggere lint Kompilatormeldinger
DetaljerDiverse eksamensgaver
Diverse eksamensgaver Noen har fått den idé å lage et språk hvor klasser kan ha noe tilsvarende byvalue-result -parametere. Klasser har ingen konstruktører, og by-value-result parametere spesifiseres som
Detaljer"Nelsons kaffebutikk"
"Nelsons kaffebutikk" et eksempel på systemutvikling med objekter Originale lysark av Jens Kaasbøll - mindre endringer av G. Skagestein og Knut Hegna IN105-javaNelson-1 Nelsons kaffebutikk Området som
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
Detaljer