/crypto-kdf

Cryptography project [AGH UST]. Notebook about Key Derivation Functions. Short lab with simple implementation of KDF.

Primary LanguageJupyter Notebook

Key Derivation Function

Cryptography project [AGH UST] Contains notebook about key derivation functions and simple implementation of KDF.

Content

  1. Wstęp teoretyczny. Czym jest KDF?
  2. Od podstaw do czegoś skomplikowanego.
    1. SHA oraz salt. Funkcje haszujące.
    2. Dobra funkcja KDF? Co powinna zapewniać (Memory-Hardness).
    3. Scrypt omówienie.
    4. Atak kanałem bocznym w scrypt (Side Channel Attack) oraz Resistance to Cache Attacks. https://crypto.stanford.edu/cs359c/17sp/projects/MarkAnderson.pdf
    5. Yescrypt bazujący na scrypt.
  3. Ciekawostka Balloon Hashing.

Directory layout

.
├── src
│   ├── salsa20.py
│   └── main.py
├── tests
│   ├── test_implementation.py
│   └── README.md
├── .gitignore
├── kdf.ipynb
├── README.md
└── requirements.txt

Usage

    $> cd /directory/with/this/program
    $> jupyter notebook

Credits and used links for inspirations

  1. Funkcje wyprowadzania klucza (KDF) wykorzystujące odwzorowanie logistyczne - Grzegorz Frejek
  2. https://qvault.io/cryptography/key-derivation-functions/
  3. https://cryptobook.nakov.com/mac-and-key-derivation/hmac-and-key-derivation
  4. https://cryptography.io/en/latest/hazmat/primitives/key-derivation-functions/
  5. https://en.wikipedia.org/wiki/Block_cipher
  6. https://en.wikipedia.org/wiki/Key_stretching
  7. https://docs.python.org/3/library/hmac.html
  8. https://en.wikipedia.org/wiki/Avalanche_effect
  9. https://crypto.stanford.edu/cs359c/17sp/projects/MarkAnderson.pdf
  10. https://www.openwall.com/yescrypt/
  11. https://www.tarsnap.com/scrypt.html
  12. https://datatracker.ietf.org/doc/html/rfc7914
  13. https://qvault.io/cryptography/very-basic-intro-to-the-scrypt-hash/
  14. https://courses.csail.mit.edu/6.857/2016/files/salsa20.py
  15. https://github.com/Daeinar/salsa20
  16. https://en.wikipedia.org/wiki/Balloon_hashing
  17. http://www.tarsnap.com/scrypt/scrypt.pdf
  18. https://eprint.iacr.org/2016/027.pdf

Annotations

  1. Annotations