<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>http://it-forensik.fiw.hs-wismar.de/index.php?action=history&amp;feed=atom&amp;title=Key_Derivation_Function</id>
	<title>Key Derivation Function - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="http://it-forensik.fiw.hs-wismar.de/index.php?action=history&amp;feed=atom&amp;title=Key_Derivation_Function"/>
	<link rel="alternate" type="text/html" href="http://it-forensik.fiw.hs-wismar.de/index.php?title=Key_Derivation_Function&amp;action=history"/>
	<updated>2026-10-31T11:42:15Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in IT-Forensik Wiki</subtitle>
	<generator>MediaWiki 1.43.11</generator>
	<entry>
		<id>http://it-forensik.fiw.hs-wismar.de/index.php?title=Key_Derivation_Function&amp;diff=2834&amp;oldid=prev</id>
		<title>St221486: /* Key Derivation Function */</title>
		<link rel="alternate" type="text/html" href="http://it-forensik.fiw.hs-wismar.de/index.php?title=Key_Derivation_Function&amp;diff=2834&amp;oldid=prev"/>
		<updated>2023-07-13T18:19:27Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Key Derivation Function&lt;/span&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 13. Juli 2023, 18:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l15&quot;&gt;Zeile 15:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 15:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Hashbasierte-KDFs ===&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;=== Hashbasierte-KDFs ===&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktionalität von Hashbasierten-KDFs überschneidet sich mit der von &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hash-&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Die Funktionalität von Hashbasierten-KDFs überschneidet sich mit der von &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hashfunktionen&lt;/ins&gt;. Allgemein besitzt eine Hashfunktion folgende Eigenschaften[2]:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;funktionen&lt;/del&gt;. Allgemein besitzt eine Hashfunktion folgende Eigenschaften[2]:&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Sie verschlüsselt Daten deterministisch (gleiche Eingabe, gleiche Ausgabe)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Sie verschlüsselt Daten deterministisch (gleiche Eingabe, gleiche Ausgabe)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Unabhängig von der Eingabe hat die Ausgabe einer &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hash-Funktion &lt;/del&gt;immer die gleiche Größe.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Unabhängig von der Eingabe hat die Ausgabe einer &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hashfunktion &lt;/ins&gt;immer die gleiche Größe.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Anhand der Ausgabe lässt sich nicht die Eingabe berechnen (Einwegfunktion)&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* Anhand der Ausgabe lässt sich nicht die Eingabe berechnen (Einwegfunktion)&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key it_forensik_wiki:diff:1.41:old-2833:rev-2834:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>St221486</name></author>
	</entry>
	<entry>
		<id>http://it-forensik.fiw.hs-wismar.de/index.php?title=Key_Derivation_Function&amp;diff=2833&amp;oldid=prev</id>
		<title>St221486: Die Seite wurde neu angelegt: „== Key Derivation Function ==  === Einleitung ===  Eine Schlüsselableitungsfunktion (engl. Key Derivation Function, KDF) ist eine grundlegende und wesentliche…“</title>
		<link rel="alternate" type="text/html" href="http://it-forensik.fiw.hs-wismar.de/index.php?title=Key_Derivation_Function&amp;diff=2833&amp;oldid=prev"/>
		<updated>2023-07-13T18:18:11Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „== Key Derivation Function ==  === Einleitung ===  Eine Schlüsselableitungsfunktion (engl. Key Derivation Function, KDF) ist eine grundlegende und wesentliche…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== Key Derivation Function ==&lt;br /&gt;
&lt;br /&gt;
=== Einleitung ===&lt;br /&gt;
&lt;br /&gt;
Eine Schlüsselableitungsfunktion (engl. Key Derivation Function, KDF) ist eine&lt;br /&gt;
grundlegende und wesentliche Komponente kryptographischer Systeme[1]. Sie wird&lt;br /&gt;
verwendet um einen oder mehrere einheitliche geheime Schlüssel aus einem geheimen&lt;br /&gt;
Wert wie z.B. einem Passwort zu generieren. Für die Schlüsselgenerierung wird eine&lt;br /&gt;
Pseudozufallsfunktion verwendet. Die Pseudozufallsfunktion ist typischerweise eine&lt;br /&gt;
kryptografische Hash-Funktion, Stromverschlüsselung oder Blockverschlüsselung. In&lt;br /&gt;
der Praxis werden KDFs eingesetzt um Schlüssel in längere Schlüssel (und damit&lt;br /&gt;
sicherere Schlüssel) umzuwandeln oder um Schlüssel in ein einheitliches Format zu&lt;br /&gt;
transformieren.&lt;br /&gt;
&lt;br /&gt;
=== Hashbasierte-KDFs ===&lt;br /&gt;
&lt;br /&gt;
Die Funktionalität von Hashbasierten-KDFs überschneidet sich mit der von Hash-&lt;br /&gt;
funktionen. Allgemein besitzt eine Hashfunktion folgende Eigenschaften[2]:&lt;br /&gt;
* Sie verschlüsselt Daten deterministisch (gleiche Eingabe, gleiche Ausgabe)&lt;br /&gt;
* Unabhängig von der Eingabe hat die Ausgabe einer Hash-Funktion immer die gleiche Größe.&lt;br /&gt;
* Anhand der Ausgabe lässt sich nicht die Eingabe berechnen (Einwegfunktion)&lt;br /&gt;
&lt;br /&gt;
Hashbasierte KDFs erweitern diese Eigenschaften um folgende Funktionalitäten:&lt;br /&gt;
* Key Stretching: Ein Schlüssel mit geringer Entropie (Sicherheit oder Zufälligkeit) wird in einen längeren, sichereren Schlüssel zu umgewandelt.&lt;br /&gt;
* Key Separation: KDFs ermöglichen die Erstellung von Unterschlüsseln auseinem Hauptschlüssel. Dies kann in Anwendungen wie Bitcoinverwendet werden, wo Unterschlüssel Teile einer Wallet kontrollieren können. Allerdings hat nur der Hauptschlüssel die volle Kontrolle. Erreicht wird dies durch die Verwendung verschiedener Salts (Zufälligkeit).&lt;br /&gt;
* Key Strengthening: Beim Key Strengthening wird ein Schlüssel um einen zufälligen Salt erweitert, der dann aber gelöscht wird, so dass dieser nicht mehr für eine Analyse verwendet werden kann. Dadurch wird der resultierende Schlüssel stärker, ohne dem System wesentliche Schwachstellen hinzuzufüge&lt;br /&gt;
&lt;br /&gt;
===Anwendungsbeispiele===&lt;br /&gt;
&lt;br /&gt;
* Diffie-Hellmann: Der Diffie-Hellman-Schlüsselaustausch erzeugt aus zufällig ausgewählten Geheimnissen ein gemeinsames Geheimnis, das zwar zufällig aber nicht gleichmäßig verteilt ist. Um dieses Geheimnis als symmetrischen Schlüssel zu verwenden, wird auf das gemeinsame Geheimnis eine Schlüsselableitungsfunktion angewandt.&lt;br /&gt;
* Zufallszahlengeneratoren: Kryptografische Zufallszahlengeneratoren aktualisieren sich in regelmäßigen Abständen mit Hilfe von zufälligen Werten. Diese werden durch die Messung von Zufallsereignissen wie Oszillatorzuständen, Netzpakettaktung, Mausbewegungen oder Tastatureingaben gewonnen. Diese Ereignisse sind nicht einheitlich, so dass eine KDF verwendet werden kann, um die Ausgabe zu vereinheitlichen[3].&lt;br /&gt;
* Passwort-Hashing: Passwörter sind nicht einheitlich, daher werden KDFs verwendet, um Passwörter in Schlüssel umzuwandeln. In diesem Fall werden spezielle passwortbasierte KDFs benutzt, welche einen Leistungsnachweis erzwingen, wodurch Brute-Force-Angriffe enorm erschwert werden[4].&lt;br /&gt;
Mit Stand vom Mai 2023 empfiehlt OWASP die folgenden KDFs für das Hashing von Passwörtern, aufgelistet in der Reihenfolge ihrer Priorität[5]:&lt;br /&gt;
&lt;br /&gt;
# Argon2id&lt;br /&gt;
# scrypt, wenn Argon2id nicht verfügbar ist&lt;br /&gt;
# bcrypt für Altsysteme&lt;br /&gt;
# PBKDF2, wenn FIPS-140-Konformität erforderlich ist&lt;br /&gt;
&lt;br /&gt;
=== Quellen ===&lt;br /&gt;
# Hugo Krawczyk. Cryptographic Extraction and Key Derivation: The HKDF Scheme. Cryptology ePrint Archive, Paper 2010/264. https://eprint.iacr.org/2010/264. 2010. url: https://eprint.iacr.org/2010/264&lt;br /&gt;
# Part 3: Step-by-step Tooling for iOS Research (via @bizzybarney). 2021. url: http : / / www . mac4n6 . com / blog / 2021 / 3 / 21 / part - 3 - step - by - step -tooling-for-ios-research-via-bizzybarney (Abruf vom 13. 07. 2023).&lt;br /&gt;
# Key derivation functions (KDF): What are they, what are their main purposes and how they can be used? 2016. url:https://crypto.stackexchange.com/a/40767/110359 (Abruf vom 11. 07. 2023).&lt;br /&gt;
# Thomas Ptacek. Applied Cryptography Engineering. 2013. url: https: //sockpuppet.org/blog/2013/07/22/applied-practical-cryptography/(Abruf vom 13. 07. 2023).&lt;br /&gt;
# Password Storage Cheat Sheet. 2023. url: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html (Abruf vom 11. 07. 2023)&lt;/div&gt;</summary>
		<author><name>St221486</name></author>
	</entry>
</feed>