crypto Flashcards

1
Q

Hva er Kerckhoffs prinsipp?

A

Unngå security through obscurity.

Det eneste en angriper ikke har tilgang til i et kryptosystem, er de private nøklene

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hva er perfekt sikkerhet?

A

Gitt c, så er det umulig å ekskludere noen enkelt klartekst p.

Altså, for hver p finnes en k som krypterer til c. Antall nøkler er da >= antall klartekster

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvilket shiffer er det eneste som gir perfekt sikkerhet?

A

One-time-pad

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvordan fungerer one-time-pad?

A

lengde(nøkkel) = lengde(klartekst)

nøkkel og klartekst er binære strenger

Bruker XOR til å kryptere og dekryptere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hva er et problem med one-time-pad?

A

Krever veldig lange nøkler. Nøkler kan heller ikke gjenbrukes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hva er beregningsmessig sikkerhet?

A

Gitt en c, så tar det lang tid å ekskludere en enkelt klartekst p

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Nevn 3 problemer som (vi tror) er vanskelige å løse i praksis

A

Faktorisering av store tall

Å invertere AES-blokkchifferprimitivet

Å finne diskrete logaritmer på en elliptisk kurve

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvilket beregningsmessig vanskelig problem utnyttes i RSA?

A

At det er vanskelig å faktorisere store tall

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvilket beregningsmessig vanskelig problem brukes i AES?

A

At AES-blokkchifferprimitivet er vanskelig å invertere

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvilket beregningsmessig vanskelig problem brukes i ECDH?

A

At det er vanskelig å finne dikrete logaritmer på en elliptisk kurve

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvordan definerer vi “lang tid” når vi snakker om beregningsmessig sikkerhet?

A

At tidsbruk på et problem vokser tilnærmet-eksponentielt med nøkkelstørrelse

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

I praksis, hva går de vanligste angrepene innen kryptografi ut på?

A

Sårbarheter i programvare oppstår på grunn av feil bruk av kryptografiske algoritmer

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Gi 3 eksempler på feil bruk av kryptografiske algoritmer

A

Nøkler postes på Git

Signaturer valideres ikke, eller bare delvis valideres

Nonces genereres basert på klientkontrollerte verdier

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hva er et monoalfabetisk substitusjonschiffer?

A

Hver bokstav i klartekst-alfabetet mappes til én bokstav i chiffertekst alfabetet

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hva er noen problemer med monoalfabetisk substitusjonschiffer?

A

Språkstrukturer bevares slik at frekvensanalyse kan benyttes i cryptanalysis

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hva er et blokkchiffer?

A

Et blokkchiffer opererer på blokker, ikke individuelle tegn

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hva er et blokkchifferprimitiv?

A

Hvordan én blokk krypteres individuelt

Krypteringsfunksjonen E i primitivet har som output en ny blokk. Ingen to blokker gjøres om til samme blokk

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

Hva er et blokkchiffermodus?

A

Hvordan en lengre tekst krypteres ved å bruke blokkchifferprimitivet flere ganger

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Hva er en permutasjon i blokkchiffre?

A

En funksjon som stokker om på mengden mulige blokker

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
20
Q

Hvilken sikkerhetsantagelse gjør vi om primitiver (for eksempel AES)?

A

At det gir beregningsmessig sikkerhet. Altså er E(k, b) pseudorandom

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
21
Q

Nevn en egenskap AES trolig har

A

Pseudorandomness

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
22
Q

Hva er pseudorandomness?

A

Dersom man har én kryptert blokk og én blokk med tilfeldig data, skal man ikke kunne gjette hvilken blokk som er kryptert og hvilken som er tilfeldig mer enn 50% av gangene

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
23
Q

Hva er IND-CPA?

A

Indistinguishability under Chosen Plaintext Attack

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
24
Q

Beskriv ECB mode

A

Primitivet blir brukt på hver blokk

Plaintext_blokk_1 -> E(key, -) -> ciphertext_blokk_1

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
25
Nevn et problem med ECB
Like klartekstblokker krypteres likt
26
Beskriv CBC mode
iv: Initialiseringsvektor Steg: p_n XOR c_(n-1) -> E(key, -) -> c_n Ved kryptering av første blokk XORes p_1 med iv
27
I CBC: Hva skjer om det oppstår én bit-feil i én chiffertekstblokk?
Feilen fører til at dekryptering av denne blokken scrambles helt. Én bit i dekrypteringen av neste blokk blir flippet (samme bit som er feil i c-blokken)
28
Beskriv CTR mode
CTR mode er et flytchiffer IV sendes i klartekst Kryptering og dekryptering kan paralleliseres
29
Hva bestemmer nøkkelstrømmen i CTR mode?
nøkkel + IV
30
Hva er et flytchiffer?
Et symmetrisk nøkkelchiffer nøkkel er en pseudorandom bit-strøm. Klartekst blir kryptert en og en bit om gangen Kryptering og dekryptering bruker XOR
31
Hva er AEAD?
Authenticated encryption with associated data Krypterer ved bruk av CTR. Regner så ut en MAC basert på ciphertext-blokkene
32
Hva er GCM?
Chiffertextblokkene betraktes som polynom i GF(2^128) Polynomet evalueres i et hemmelig punkt Resultatet av dette er taggen
33
For flytchiffre, hva avhenger nøkkelstrømmen ofte av?
Nøkkel og IV
34
Hvilken fordel er det at nøkkelstrøm i flytchiffre ofte kun avhenger av nøkkel + IV?
Gir høy ytelse
35
Nevn 3 eksempler på flytchiffre
Salsa20 ChaCha AES-CTR
36
Hva er autentisitet?
Bekrefter om en melding er modifisert eller ikke
37
Hva brukes MAC til?
Autentisitet
38
Hvordan fungerer MAC?
2 algoritmer: Sign(), verify() k: nøkkel m: melding S(k, m): gir en tak t V(k, m, t'): Godtar eller avviser en tag t' basert på k og m
39
Hva er målet med MAC?
Det skal være vanskelig for en part å lage en gyldig tag uten kjennskap til k
40
Hvordan brukes MACs?
Inkluderer en tag(MAC) når en melding sendes Når melding mottas, sjekk at V(k, m, t) er gyldig Dersom melding m er modifisert underveis vil verifiserings-funksjonen detektere dette
41
Hva er en egenskap med en kryptografisk hashfunksjon?
Lett å beregne, vanskelig å invertere
42
Hva brukes hashfunksjoner til?
Lagring av sensitiv data, i.e. passord
43
Hvordan bør passord lagres, og hvorfor?
Lagre (salt, H(salt||passord) salt: gjør at like passord ikke får samme hasher
44
Hvilke 3 krav har vi til kryptografiske hashfunksjoner?
Preimage-motstand Second preimage Kollisjonsmotstand
45
Hva er preimage motstand?
Gitt y, kan ikke finne en x slik at H(x) = y
46
Hva er second preimage?
Gitt x1, kan ikke finne en x2 != x1 slik at H(x1) = H(x2)
47
Hva er kollisjonsmotstand?
Kan ikke finne s1 != s2 slik at H(s1) = H(s2)
48
Ranger vanskelighetsgraden til de 3 kravene til hashfunksjoner. Øverst = vanskeligst
Primage second preimage kollisjon
49
Nevn 2 hashfunksjoner som er antatt sikre
SHA2, SHA3
50
Hvilket angrep er SHA2 sårbar mot
length extension (pga. at SHA2 baseres på Merkle Damgård)
51
Hva er HMAC?
Implementasjon av MAC via hasher HMAC = H ((k′ ⊕ opad)||H((k′ ⊕ ipad)||m)) k' = H(k)
52
Når er Z_p en gruppe?
Tall mod p, med ganging som operasjon, siden vi kan dele
53
Beskriv diffie hellman
Asymmetrisk, jobber (mod p) Offentlig: (p, g) A og B genererer a og b A sender g^a B sender g^b Delt hemmelighet: (g^a)^b = (g^b)^a
54
Hva er diskrete logaritme problemet?
Gitt p, g og g^x (mod p), finn x
55
Hva er det som gjør DH sikkert?
Diskrete logaritme problemet
56
I hvilke grupper er DLOG vanskelig?
(Z_p, ECC) ikke i alle (R)
57
Hva er de 3 komponentene av elgamal?
KeyGen Encrypt Decrypt
58
Hva er nøklene i elgamal?
Velger tilfeldig a, beregner g^a public: (g, g^a) private: (g, a)
59
Hva er nøklene i RSA?
Public: (e, n) Private: (d, p, q)
60
Beskriv dekrypteringsfunksjonen til RSA
m = c^d mod n
61
Beskriv krypteringsfunksjonen til RSA
c = m^e mod n
62
Hvilket beregningsmessig vanskelig problem er det som gjør at RSA fungerer?
Vanskelig å primtallsfaktorisere
63
Hva gjør at RSA fungerer?
Eulers teorem d = e^-1 mod ((p-1)(q-1)) Dette gjør at: m^ed = m mod pq hvor n = pq
64
Hva er eulers teorem?
Om hverken p eller q deler m, så er: m^(p-1)(q-1) = 1 mod (pq)
65
Hva er noen problemer med skolebok-rsa?
Om like meldinger krypteres likt, så kan vi bekrefte riktig gjetning av melding. Primtall bør være tilnærmet like store Om tallene er små nok og e liten, så blir DLOG mer lik LOG ettersom man ikke wrapper like mye rundt. LOG er lett å beregne
66
Hvordan kan man løse problemene med skolebok-rsa?
Legg til padding før kryptering padding bør være litt tilfeldig og "stor"
67
Hva er fordelen med å bruke elliptiske kurver?
For 100-bit sikkerhet i DH kreves nøkler av størrelse tilnærmet 1000 På grunn av kompleksiteten til elliptiske kurver kan man oppnå samme nivå av sikkerhet ved bruk av betydelig mindre nøkler
68
Definer en elliptisk kurve
Samling punkter (x, y) ∈ E som tilfredstiller: y² = x³ + Ax + B for heltall A og B slik at: 4A³ + 27B² != 0 I tillegg eksisterer et spesielt punk O som ligger i uendeligheten
69
Hvordan brukes elliptiske kurver i krypto?
(x, y)∈Z_p -> koordinater og likningen forstås (mod p) En primtallstørrelse på 256 bits gir en sikkerhet på 128-bit
70
Hvordan fungerer DH med elliptiske kurver?
Bli enige om kurve E og F_p, og startpunkt G∈E A og B genererer hver sin a,b ∈ {2, ..., p-1} A genererer Ga = [a]G -> send til B B genererer Gb = [b]G -> send til A Felles hemmelighet: Gab = [a]Gb = [b]Ga
71
Hvordan fungerer signaturer?
private key brukes til å generere en signatur public key brukes til å verifisere signaturen
72
Hva er formålet med en signatur?
En gyldig signatur garanterer at eieren av tilhørende private nøkkel skrev meldingen
73
Hva er sammenhengen mellom DH og elgamal?
Elgamal er DH gjort om til et kryptosystem
74
Hvor store nøkler må RSA ha for å være sikker?
Nøkler >= 2048-bit
75
Når fungerer DSA, DH og Elgamal?
Når DLOG er vanskelig, både ved bruk av mod p og elliptiske kurver. mod p trenger derimot større nøkler
76
Hvor store nøkler krever DH med DLOG i Z_p for 128-bit sikkerhet?
Tilnærmer 3000
77
Hva gir P+(-P)?
Uendelig fjernt punkt: O = (uendelig, uendelig) (Kan være dette er feil, litt vanskelig å tolke slides)
78
Når n er stor nok, hva blir [n]P?
O
79
Hva er ECC-DLOG?
Gitt G, H, finn n slik at: [n]G = H
80
Hva er viktig å huske på når man skal bruke RSA til signering?
Ikke bruk skolebok-rsa, altså: Bruk H(m) samt padding, ikke m
81
Hva er DSA?
Signatur algoritme
82
Hva krever DSA for hver signatur?
Krever en unik og hemmelig nonce per signatur
83
Hva avhenger sikkerheten til DSA på?
At DLOG er vanskelig
84
Hva er EdDSA?
Deterministisk DSA-variant som spesifiserer nonce-generering utifra privat nøkkel og melding
85
Hvilken implementeringsfeil kan gjøre DSA sårbar?
Nonce reuse
86
Hva er hensikten til sertifikater?
Koble en identitet med offentlig nøkkel En identitet kan være: mailadresse, domene, etc.
87
Hvordan vet vi at vi kan stole på signaturer?
Kjenner til andre public keys som kan verifisere at det sertifikatet vi skal ta stilling til faktisk er gyldig.
88
Beskriv noen komponenter i en PKI
ROT-CA: Alle kjenner til public-keyene til disse og stoler på de Sertifikat kjede: Har et sertifikat utstedt av pk2 som sier at pk1 er til å stole på Har et sertifikat utstedt av pk3 som sier at pk2 er til å stole på ... fortsetter ned til pk-en vi selv stoler på
89
Hvordan setter du opp en ID som kan verifiseres av andre?
Spør en CA om å validere IDen og signere et sertifikat Lagre sertifikatet Andre som vil validere IDen din, viser du sertifikatet til
90
Hvilke 2 algoritmer kan vi bruke til å lage signaturer med?
RSA (med hashing og padding) ECDSA (med unik og hemmelig nonce)
91
Hva er fokuset til wireguard?
Fokus på sikkerhet over konfigurerbarhet
92
Hvilke steg består WireGuard handshaken av?
Initialiseringsmelding Fullføringsmelding Kryptert melding
93
Hva er forward secrecy?
Session nøkler vil ikke bli kompromittert, dersom long-term nøkler som ble brukt i utvekslingen av session-nøklene, kommer på avveie. Altså, forward secrecy beskytter tidligere sessions mot fremtidig kompromittering