Das Verfahren von Blom ist ein kryptographisches Protokoll zum Austausch symmetrischer Schlüssel mit Hilfe einer vertrauenswürdigen Partei. Das Verfahren ist wesentlich schneller als ein asymmetrisches Verfahren. Somit läuft es auch auf leistungsschwachen Mikrochips. Es wird derzeit im HDCP-Protokoll (dem Kopierschutzverfahren des HDTV) eingesetzt.

Das Protokoll Bearbeiten

Der Schlüsselaustausch erfordert eine vertrauenswürdige Partei (Trent) und   Benutzer (neue Benutzer können auch nachträglich bequem hinzugefügt werden). Die vertrauenswürdige Partei gibt dabei jedem der   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.

Wenn   oder mehr kompromittierte Benutzer zusammenarbeiten sollten, können sie das Verfahren knacken (d. h., sie können den Master-Schlüssel der o. g. vertrauenswürdigen Partei berechnen). Weniger als   Benutzer können (bei optimaler Parameterwahl) nichts ausrichten. Es handelt sich dabei um ein Schwellwertverfahren (englisch threshold scheme).

Alice und Bob seien im Folgenden zwei Benutzer.

Protokoll-Vorbereitung Bearbeiten

Die vertrauenswürdige Partei Trent wählt als Master-Schlüssel eine geheime, zufällige und symmetrische  -Matrix   über  , wobei   eine Primzahl sein muss. Diese Matrix muss zum Hinzufügen eines neuen Benutzers bekannt sein.

D sei zum Beispiel ( ):  

Hinzufügen eines neuen Teilnehmers Bearbeiten

Ein neuer Benutzer Alice möchte der Schlüsselaustausch-Gruppe beitreten. Trent wählt für Alice eine öffentliche Benutzerkennung (am besten abhängig von ihrem Namen). Dies ist hier mathematisch gesehen ein Vektor   mit   Komponenten aus  .

Anschließend berechnet Trent den privaten Schlüssel von Alice:   Der private Schlüssel kann nun von Alice verwendet werden, um einen gemeinsamen Schlüssel mit einem beliebigen anderen Gruppenteilnehmer zu berechnen.

 , dann ist  

 , dann ist  

Berechnung eines gemeinsamen Schlüssels zwischen Alice und Bob Bearbeiten

Nun möchte Alice mit Bob kommunizieren. Alice kennt hierzu Bobs Identifikation (nämlich den Vektor  ) und den eigenen privaten Schlüssel  .

Sie berechnet nun das Produkt daraus:   (  bedeutet transponiert)

Bob kann dasselbe machen (aber natürlich mit seinem privaten Schlüssel und Alices Identifikationsvektor).

Beispiele:

 

 

Bemerkungen Bearbeiten

Damit erst   oder mehr korrumpierte Benutzer das System knacken können, müssen ihre Benutzerkennungen (also die Vektoren  ) in   Gruppen linear unabhängig sein, d. h., jede Auswahl von   Vektoren ist linear unabhängig. Dies kann dadurch erreicht werden, dass die durch alle Benutzervektoren aufgespannte Matrix einen MDS-Code darstellt (Maximum-Distance-Separable-Fehlerkorrekturcode). Die Benutzerkennungen sind dabei die Spalten dieser Matrix.

Quellen Bearbeiten