Introduksjon til Kryptografi 2 - itnett/FTD02H-N GitHub Wiki

Her er det teoretiske og praktiske grunnlaget for hvert av læringsmålene i kryptografikurset. Dette hjelper deg med å forstå de sentrale begrepene og teknikkene du vil lære, og hvordan du kan bruke dem i praksis.


1. Sentrale konsepter, metoder og definisjoner innen kryptografi

Teoretisk grunnlag:

  • Kryptografi er vitenskapen om å sikre kommunikasjon ved å bruke matematiske algoritmer.
    • Konfidensialitet: Sikrer at kun autoriserte parter kan få tilgang til informasjon.
    • Integritet: Garanterer at informasjon ikke er blitt endret.
    • Autentisering: Bekrefter identiteten til partene som kommuniserer.
    • Uavviselighet: Garanterer at en avsender ikke kan nekte for å ha sendt en melding.

Praktisk grunnlag:

  • Symmetrisk kryptografi: Brukes i situasjoner der både sender og mottaker deler samme nøkkel, f.eks. i AES (Advanced Encryption Standard).
  • Asymmetrisk kryptografi: Brukes når to forskjellige nøkler brukes for kryptering og dekryptering, f.eks. RSA (Rivest–Shamir–Adleman).
  • Verktøy: Du kan bruke OpenSSL til å utføre symmetrisk og asymmetrisk kryptering i praksis.

2. Symmetriske primitiver: blokkchiffer, hashfunksjoner og autentiseringskoder

Teoretisk grunnlag:

  • Blokkchiffer: En algoritme som krypterer faste blokker av data (f.eks. 128 bit) om gangen. Kjente eksempler er DES og AES.
  • Hashfunksjoner: Algoritmer som genererer en fast størrelse hash-verdi fra en hvilken som helst mengde data. De brukes for integritetsbeskyttelse (f.eks. SHA-2, SHA-3).
  • Meldingautentiseringskoder (MAC): Brukes for å autentisere meldinger og verifisere deres integritet, f.eks. HMAC.

Praktisk grunnlag:

  • Blokkchiffer i praksis: Implementasjon av AES kan testes ved hjelp av CyberChef eller OpenSSL.
  • Hashfunksjoner i praksis: Du kan bruke CyberChef eller Hashcat til å beregne og analysere hash-verdier.
  • HMAC i praksis: Test HMAC med hashingverktøy som OpenSSL for å sikre meldingers integritet og autentisering.

3. Symmetriske primitiver: konkrete eksempler som DES, AES, SHA-2, HMAC

Teoretisk grunnlag:

  • DES (Data Encryption Standard): En eldre symmetrisk algoritme, nå betraktet som usikker på grunn av kort nøkkellengde (56-bit).
  • AES (Advanced Encryption Standard): Den nåværende standarden for blokkchiffer, bruker nøkkelstørrelser på 128, 192 eller 256 bit.
  • SHA-2 (Secure Hash Algorithm 2): En hashfunksjon som produserer faste lengdeutganger og brukes i sikker kommunikasjon.
  • HMAC (Hash-based Message Authentication Code): En prosess som kombinerer en hashfunksjon med en hemmelig nøkkel.

Praktisk grunnlag:

  • DES: Bruk OpenSSL til å kryptere og dekryptere med DES, selv om det ikke brukes i moderne applikasjoner.
  • AES: Kryptering og dekryptering av tekst ved hjelp av AES i CBC (Cipher Block Chaining) modus via CyberChef eller OpenSSL.
  • SHA-2 og HMAC: Lag hash-funksjoner og HMACer for å autentisere meldinger ved å bruke kommandoer som:
    openssl dgst -sha256 -hmac "key" file.txt
    

4. Asymmetriske primitiver: asymmetrisk kryptering, digitale signaturer, nøkkelutveksling

Teoretisk grunnlag:

  • Asymmetrisk kryptering: Innebærer bruk av en offentlig nøkkel for kryptering og en privat nøkkel for dekryptering, f.eks. i RSA.
  • Digitale signaturer: Brukes til å verifisere identiteten til avsenderen av en melding, f.eks. med DSA (Digital Signature Algorithm).
  • Nøkkelutveksling: Algoritmer som Diffie-Hellman tillater sikre nøkkelutvekslinger over usikre kanaler.

Praktisk grunnlag:

  • RSA i praksis: Bruk OpenSSL til å generere offentlige og private nøkler, kryptere meldinger med den offentlige nøkkelen og dekryptere med den private.
  • Digitale signaturer: Opprett digitale signaturer og verifiser dem med ECDSA (Elliptic Curve Digital Signature Algorithm).
  • Nøkkelutveksling: Bruk OpenSSL til å utføre en Diffie-Hellman nøkkelutveksling.

5. Eksempler på asymmetriske primitiver: RSA, ElGamal, (EC)DSA, Diffie-Hellman

Teoretisk grunnlag:

  • RSA: Basert på faktoriseringsproblemet, brukes til både kryptering og digitale signaturer.
  • ElGamal: Et alternativ til RSA, basert på det diskrete logaritmeproblemet.
  • Diffie-Hellman: Et av de første algoritmene for nøkkelutveksling.
  • ECDSA: En variant av DSA som bruker elliptiske kurver for økt effektivitet og sikkerhet.

Praktisk grunnlag:

  • RSA nøkkelgenerering og kryptering: Lag offentlige og private RSA-nøkler i OpenSSL, krypter data med den offentlige nøkkelen, og dekrypter med den private.
  • Diffie-Hellman nøkkelutveksling: Utfør en nøkkelutveksling ved hjelp av OpenSSL eller Python-biblioteker som Cryptography.

6. Matematikk bak kryptografi: faktoriseringsproblem og diskret logaritmeproblem

Teoretisk grunnlag:

  • Faktoriseringsproblemet: RSA er basert på at det er vanskelig å faktorisere et stort produkt av to primtall.
  • Diskret logaritmeproblem: Grunnlaget for sikkerheten i ElGamal og Diffie-Hellman. Det er ekstremt vanskelig å beregne den diskrete logaritmen for store tall.

Praktisk grunnlag:

  • RSA i praksis: Generer store primtall og utfør RSA-operasjoner i OpenSSL eller Python.
  • ElGamal i praksis: Bruk Python- eller Crypto-biblioteker for å eksperimentere med diskrete logaritmeproblemer.

7. Anvendelse av matematikk i kryptografi: algebra, tallteori, sannsynlighetsteori

Teoretisk grunnlag:

  • Algebra: Brukes til å forstå gruppeteori og hvordan nøkler genereres og manipuleres i kryptografi.
  • Tallteori: Involverer primtall og modulfeltar, grunnlaget for RSA og Diffie-Hellman.
  • Sannsynlighetsteori: Brukes for å vurdere sjansene for kollisjoner i hashfunksjoner, og analysere hvor sikkert et system er mot brute-force-angrep.

Praktisk grunnlag:

  • Tallteori i praksis: Eksperimenter med modulær aritmetikk ved hjelp av Python eller matematiske verktøy som SageMath.
  • Sannsynlighetsteori: Analyser sannsynligheten for kryptografiske kollisjoner ved å bruke algoritmer som birthday attack simuleringer.

🎓 Oppsummering

Gjennom dette kurset vil du oppnå en dyp forståelse av både de teoretiske grunnene bak kryptografi og hvordan du kan implementere og bruke disse prinsippene i praksis. Kryptografiens anvendelser er allestedsnærværende, fra nettlesersikkerhet (SSL/TLS) til blockchain, og verktøy som OpenSSL, CyberChef, og Hashcat vil hjelpe deg med å mestre denne vitenskapen.