Kryptografie – základy a principy

1. Úvod do kryptografie

Co je kryptografie?

Kryptografie je obor zabývající se:

  • ochranou informací

  • utajením obsahu zpráv

  • ověřením identity

  • zajištěním integrity dat

Základní pojmy

  • Plaintext – původní zpráva

  • Ciphertext – zašifrovaná zpráva

  • Šifrování – převod plaintext → ciphertext

  • Dešifrování – převod ciphertext → plaintext

  • Klíč – tajná informace určující výsledek šifrování

  • Algoritmus – matematický postup šifrování

Cíle kryptografie

  • Důvěrnost (Confidentiality)

  • Integrita (Integrity)

  • Autentizace (Authentication)

  • Nepopiratelnost (Non-repudiation)


2. Symetrická kryptografie

Princip

  • Stejný klíč pro šifrování i dešifrování

  • Klíč musí být bezpečně předán oběma stranám

1*62blCQs9eJ9MPxY7q27aCg

Výhody

  • Rychlá

  • Vhodná pro velké objemy dat

Nevýhody

  • Problém distribuce klíče

  • Nutnost zabezpečeného kanálu pro předání klíče

Příklady algoritmů

  • Cesarova šifra

  • AES

  • DES (historický)

  • 3DES

  • ChaCha20

Ukázka (Python – AES s knihovnou cryptography)

from cryptography.fernet import Fernet

key = Fernet.generate_key()
cipher = Fernet(key)

text = b"Tajna zprava"
encrypted = cipher.encrypt(text)
decrypted = cipher.decrypt(encrypted)

print(encrypted)
print(decrypted)

3. Asymetrická kryptografie

Princip

  • Dvojice klíčů:

  • veřejný klíč (public key)

  • soukromý klíč (private key)

  • Co zašifruje jeden klíč, může dešifrovat pouze druhý

Asymmetric encryption padlock analogy

Využití

  • Šifrování komunikace

  • Digitální podpis

  • SSL/TLS

Výhody

  • Není potřeba sdílet tajný klíč

  • Umožňuje digitální podpis

Nevýhody

  • Pomalejší než symetrická kryptografie

Příklady algoritmů

  • RSA

  • ECC (Elliptic Curve Cryptography)

  • ElGamal

Hybridní šifrování

V praxi se používá kombinace:

  1. Asymetrická kryptografie → výměna symetrického klíče

  2. Symetrická kryptografie → samotný přenos dat

Např. HTTPS.


4. Hashovací funkce

Co je hash?

Hashovací funkce:

  • převádí data libovolné délky

  • na pevně dlouhý otisk (hash)

Vlastnosti:

  • deterministická

  • rychlá

  • odolná vůči kolizím

  • jednosměrná

Co je hash?

9vWp6aU4y8kwnpS6w1FvPDaFgyHbYctr59iq5JsXyxJdNfJaccivEBVAaFcxMkjMVbUdcN9aYLYcn1GnV58qShvBuP6CKB5jF4r8b8mrusKDs6XV2fcihwiJHd49LVUKUQFLcuLCXMTBLfZqg?format=match&mode=fit

Příklady hash funkcí

  • MD5 (nedoporučený)

  • SHA-1 (nedoporučený)

  • SHA-256

  • SHA-3

  • BLAKE2

Ukázka (Python)

import hashlib

text = b"heslo123"
hash_value = hashlib.sha256(text).hexdigest()

print(hash_value)

Použití hash funkcí

  • Ukládání hesel

  • Kontrola integrity souborů

  • Digitální podpis

  • Blockchain


5. Digitální podpis

Princip

  1. Vytvoří se hash dokumentu

  2. Hash se zašifruje soukromým klíčem

  3. Ověření probíhá pomocí veřejného klíče

Zajišťuje:

  • Autenticitu

  • Integritu

  • Nepopiratelnost

Princip

digital signature 796

6. Certifikáty a PKI

PKI (Public Key Infrastructure)

Systém důvěry založený na:

  • certifikačních autoritách (CA)

  • digitálních certifikátech

Digitální certifikát obsahuje:

  • veřejný klíč

  • identitu vlastníka

  • podpis CA

  • dobu platnosti

PKI (Public Key Infrastructure)

0*C2zknZt05Fj9uEsx

HTTPS a TLS

  • Využívá asymetrickou kryptografii

  • Po navázání spojení přechází na symetrickou

HTTPS gif

7. Blockchain

Co je blockchain?

  • Distribuovaná databáze

  • Řetězec bloků

  • Každý blok obsahuje hash předchozího bloku

5e81c66dd4cabdcc1674a08d 0nt8 YaCOJ ED51A163rrtjq4mA4Qp1MsIXdDUR4iUAVBYYM5thrRmXCJsZHNa95 yQ3poZep9S8hkUffFkdqbIt9EXmk0bUbLfV0TJWOTH2dwUp6sSsCtnPx8esAE DROgkKAAT

Struktura bloku

  • Data

  • Timestamp

  • Hash předchozího bloku

Proč je blockchain bezpečný?

  • Změna jednoho bloku změní všechny následující hashe

  • Nutnost přepočítat celý řetězec

  • Konsenzuální mechanismy

Využití

  • Kryptoměny

  • Smart contracts

  • Decentralizované aplikace


8. Útoky na kryptografii

Typy útoků

  • Brute force

  • Dictionary attack

  • Man-in-the-middle

  • Replay attack

Post-kvantová kryptografie

  • Kvantové počítače ohrožují RSA a ECC

  • Vývoj nových algoritmů odolných vůči kvantovým útokům


9. Praktické zásady bezpečnosti

  • Nepoužívat zastaralé algoritmy

  • Používat dostatečně dlouhé klíče

  • Používat osvědčené knihovny

  • Nesnažit se implementovat kryptografii „ručně“

  • Pravidelně aktualizovat software


10. Shrnutí

  • Symetrická kryptografie → rychlá, problém distribuce klíče

  • Asymetrická kryptografie → řeší výměnu klíče

  • Hash → integrita a jednosměrnost

  • Digitální podpis → ověření identity

  • Blockchain → distribuovaná důvěra


Otázky k diskusi

  • Proč se v HTTPS používá hybridní šifrování?

  • Proč není MD5 bezpečný?

  • Jak by šel napadnout blockchain?

  • Jaké jsou výhody ECC oproti RSA?