• ing. anahtar türetme fonksiyonu. şifreleme jargonunda bir şifreyi şifreleme anahtarına dönüştürme fonksiyonlarına denir.

    neredeyse tüm modern şifreleme algoritmalarında şifreleme anahtarları sabit uzunluktadır. (mesela 16-byte). oysa ki şifrelemek için kullanacağınız şifre değişken uzunlukta olabilir. sadece bu veriyi alıp kalan boşlukları doldurursanız, ya da daha uzun bir veriyi alıp kırparsanız elinizde rastgele olmayan zayıf bir şifreleme anahtarı olur. zayıf anahtarların zaafiyetleri şifrenin daha kolay çözülmesini sağlayabilir. o yüzden kırpmak ya da sonunu boş bırakmak yerine tamamen rastgele görünen ama aslında doğrudan verdiğiniz şifreden üretilebilen bir anahtar üretmek en sağlam yöntemdir.

    en basit anahtar türetme fonksiyonları hash algoritmalarıdır. ancak bunlar authentication özelliği barındırmazlar. o yüzden şifreli veriye dışardan müdahale edilirse şifreyi çözen taraf bu müdahaleyi anlamaz. bu sebepten anahtar türetme fonksiyonları genellikle hmac ile kullanılır. (bkz: hmac/@ssg)
  • esas amaçları bahsedildiği gibi key derivation dır. yani bir şifreden ya da paroladan (ve yanında ek inputlarla), istediğimiz uzunlukta bir key üretir. bu amaç uğruna hmac çok uygundur.

    ancak günümüzde belki de en çok şifre saklama işlemlerinde kullanılır. normalde şifre saklarken ilk zamanlar şifreler veritabanında plaintext olarak tutuluyordu. sonraları hashlemeye başladık, sonra salt + hash yapmaya başladık ama gel gelelim bunların yetersizliği hep anlaşıldı.

    bunun yetersizliğinin önemli bir nedeni de aslında hash fonksiyonlarının hızlı olması. o yüzden çevrimdışı saldırılara karşı çok dayanıklı olmuyorlardı. o yüzden, brute-force ataklarını daha zorlaştırsın ve yavaşlatsın diye, key derivation fonksiyonları kullanılmaya başladı. key stretching özelligi ve aynı zamanda bu işlemlerin bilinçli olarak daha yavaşlatılması bu sürece de yardımcı oldu.

    (bkz: pbkdf2)
    (bkz: argon2)

    ek:
    standartlardan bir diğeri de bcrypt tir. ancak o bir kdf değildir. kdf olması için girdi ve cıktıların tamamen bağımsız olması gerektiği için bcrypt bu statüye girmemiştir. password hash function olarak düşünülebilir.

    özetle, kdf ler iki şekilde kullanılır.
hesabın var mı? giriş yap