<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Blom-Verfahren</id>
	<title>Blom-Verfahren - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki-de.moshellshocker.dns64.de/index.php?action=history&amp;feed=atom&amp;title=Blom-Verfahren"/>
	<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Blom-Verfahren&amp;action=history"/>
	<updated>2026-06-25T01:49:05Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Wikipedia (Deutsch) – Lokale Kopie</subtitle>
	<generator>MediaWiki 1.43.8</generator>
	<entry>
		<id>https://wiki-de.moshellshocker.dns64.de/index.php?title=Blom-Verfahren&amp;diff=1077483&amp;oldid=prev</id>
		<title>imported&gt;LepusHI: /* growthexperiments-addlink-summary-summary:1|1|0 */</title>
		<link rel="alternate" type="text/html" href="https://wiki-de.moshellshocker.dns64.de/index.php?title=Blom-Verfahren&amp;diff=1077483&amp;oldid=prev"/>
		<updated>2025-05-01T21:28:26Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;growthexperiments-addlink-summary-summary:1|1|0&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Das &amp;#039;&amp;#039;&amp;#039;Verfahren von Blom&amp;#039;&amp;#039;&amp;#039; ist ein kryptographisches Protokoll zum Austausch symmetrischer Schlüssel mit Hilfe einer vertrauenswürdigen Partei. Das Verfahren ist wesentlich schneller als ein [[Asymmetrisches Kryptosystem|asymmetrisches Verfahren]]. Somit läuft es auch auf leistungsschwachen Mikrochips. Es wird derzeit im [[HDCP]]-Protokoll (dem Kopierschutzverfahren des [[HDTV]]) eingesetzt.&lt;br /&gt;
&lt;br /&gt;
== Das Protokoll ==&lt;br /&gt;
Der Schlüsselaustausch erfordert eine vertrauenswürdige Partei (Trent) und &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Benutzer (neue Benutzer können auch nachträglich bequem hinzugefügt werden). Die vertrauenswürdige Partei gibt dabei jedem der &amp;lt;math&amp;gt;n&amp;lt;/math&amp;gt; Teilnehmer einen geheimen privaten Schlüssel sowie eine öffentliche Identifikationsnummer. Mit diesen Daten kann jeder Protokollteilnehmer mit jedem anderen Teilnehmer mit Hilfe einfacher Berechnungen (nur lineare Algebra) einen symmetrischen Schlüssel austauschen.&lt;br /&gt;
&lt;br /&gt;
Wenn &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; oder mehr kompromittierte Benutzer zusammenarbeiten sollten, können sie das Verfahren knacken (d.&amp;amp;nbsp;h., sie können den Master-Schlüssel der o.&amp;amp;nbsp;g. vertrauenswürdigen Partei berechnen). Weniger als &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Benutzer können (bei optimaler Parameterwahl) nichts ausrichten. Es handelt sich dabei um ein Schwellwertverfahren (englisch &amp;#039;&amp;#039;threshold scheme&amp;#039;&amp;#039;).&lt;br /&gt;
&lt;br /&gt;
[[Alice und Bob]] seien im Folgenden zwei Benutzer.&lt;br /&gt;
&lt;br /&gt;
=== Protokoll-Vorbereitung ===&lt;br /&gt;
Die vertrauenswürdige Partei Trent wählt als Master-Schlüssel eine geheime, [[Zufallsmatrix|zufällige]] und [[Symmetrische Matrix|symmetrische]] &amp;lt;math&amp;gt;k \times k&amp;lt;/math&amp;gt;-Matrix &amp;lt;math&amp;gt;D&amp;lt;/math&amp;gt; über &amp;lt;math&amp;gt;GF(p)&amp;lt;/math&amp;gt;, wobei &amp;lt;math&amp;gt;p&amp;lt;/math&amp;gt; eine Primzahl sein muss. Diese Matrix muss zum Hinzufügen eines neuen Benutzers bekannt sein.&lt;br /&gt;
&lt;br /&gt;
D sei zum Beispiel (&amp;lt;math&amp;gt;p = 17&amp;lt;/math&amp;gt;): &amp;lt;math&amp;gt;\begin{pmatrix} 1&amp;amp;6&amp;amp;2\\6&amp;amp;3&amp;amp;8\\2&amp;amp;8&amp;amp;2\end{pmatrix}\mod 17&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Hinzufügen eines neuen Teilnehmers ===&lt;br /&gt;
Ein neuer Benutzer Alice möchte der Schlüsselaustausch-Gruppe beitreten.&lt;br /&gt;
Trent wählt für Alice eine öffentliche Benutzerkennung (am besten abhängig von ihrem Namen).&lt;br /&gt;
Dies ist hier mathematisch gesehen ein Vektor &amp;lt;math&amp;gt;I_A&amp;lt;/math&amp;gt; mit &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Komponenten aus &amp;lt;math&amp;gt;GF(p)&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Anschließend berechnet Trent den privaten Schlüssel von Alice: &amp;lt;math&amp;gt;g_A = (D*I)&amp;lt;/math&amp;gt;&lt;br /&gt;
Der private Schlüssel kann nun von Alice verwendet werden, um einen gemeinsamen Schlüssel mit einem beliebigen anderen Gruppenteilnehmer zu berechnen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_A = \begin{pmatrix} 3 \\ 10 \\ 11 \end{pmatrix}&amp;lt;/math&amp;gt;, dann ist &amp;lt;math&amp;gt;g_A = \begin{pmatrix} 1&amp;amp;6&amp;amp;2\\6&amp;amp;3&amp;amp;8\\2&amp;amp;8&amp;amp;2\end{pmatrix} \cdot \begin{pmatrix} 3 \\ 10 \\ 11 \end{pmatrix} = \begin{pmatrix} 0\\0\\6\end{pmatrix}\mod 17&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;I_B = \begin{pmatrix} 1 \\ 3 \\ 15 \end{pmatrix}&amp;lt;/math&amp;gt;, dann ist &amp;lt;math&amp;gt;g_B = \begin{pmatrix} 1&amp;amp;6&amp;amp;2\\6&amp;amp;3&amp;amp;8\\2&amp;amp;8&amp;amp;2\end{pmatrix} \cdot \begin{pmatrix} 1 \\ 3 \\ 15 \end{pmatrix} = \begin{pmatrix} 15\\16\\5\end{pmatrix}\mod 17&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Berechnung eines gemeinsamen Schlüssels zwischen Alice und Bob ===&lt;br /&gt;
Nun möchte Alice mit Bob kommunizieren.&lt;br /&gt;
Alice kennt hierzu Bobs Identifikation (nämlich den Vektor &amp;lt;math&amp;gt;I_B&amp;lt;/math&amp;gt;) und den eigenen privaten Schlüssel &amp;lt;math&amp;gt;g_A&amp;lt;/math&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Sie berechnet nun das Produkt daraus: &amp;lt;math&amp;gt;k_{AB} = g_A^T \cdot I_B&amp;lt;/math&amp;gt; (&amp;lt;math&amp;gt;T&amp;lt;/math&amp;gt; bedeutet [[Transponierte Matrix|transponiert]])&lt;br /&gt;
&lt;br /&gt;
Bob kann dasselbe machen (aber natürlich mit seinem privaten Schlüssel und Alices Identifikationsvektor).&lt;br /&gt;
&lt;br /&gt;
Beispiele:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;k_{AB} = \begin{pmatrix} 0\\0\\6 \end{pmatrix}^T \cdot \begin{pmatrix} 1\\3\\15 \end{pmatrix} = 0 \cdot 1 + 0 \cdot 3 + 6 \cdot 15 = 5\mod 17&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;k_{BA} = \begin{pmatrix} 15\\16\\5 \end{pmatrix}^T \cdot \begin{pmatrix} 3\\10\\11 \end{pmatrix} = 15 \cdot 3 + 16 \cdot 10 + 5 \cdot 11 = 5\mod 17&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bemerkungen ==&lt;br /&gt;
Damit erst &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; oder mehr korrumpierte Benutzer das System knacken können, müssen ihre Benutzerkennungen (also die Vektoren &amp;lt;math&amp;gt;I_{Benutzer}&amp;lt;/math&amp;gt;) in &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Gruppen linear unabhängig sein, d.&amp;amp;nbsp;h., jede Auswahl von &amp;lt;math&amp;gt;k&amp;lt;/math&amp;gt; Vektoren ist [[linear unabhängig]].&lt;br /&gt;
Dies kann dadurch erreicht werden, dass die durch alle Benutzervektoren aufgespannte Matrix einen [[MDS-Code]] darstellt (Maximum-Distance-Separable-Fehlerkorrekturcode).&lt;br /&gt;
Die Benutzerkennungen sind dabei die Spalten dieser Matrix.&lt;br /&gt;
&lt;br /&gt;
== Quellen ==&lt;br /&gt;
* A. Menezes, P. van Oorschot, S. Vanstone: &amp;#039;&amp;#039;Handbook of applied cryptography&amp;#039;&amp;#039;, CRC Press, 1996&lt;br /&gt;
* [https://www.csl.mtu.edu/cs6461/www/Reading/blom-eurocrypt84.pdf R. Blom, &amp;quot;An optimal class of symmetric key generation systems&amp;quot;] (PDF; 158&amp;amp;nbsp;kB)&lt;br /&gt;
* [https://www.iacr.org/cryptodb/data/paper.php?pubkey=2084 IACR-Seite zur Publikation]&lt;br /&gt;
&lt;br /&gt;
[[Kategorie:Kryptologisches Verfahren]]&lt;/div&gt;</summary>
		<author><name>imported&gt;LepusHI</name></author>
	</entry>
</feed>