140 likes | 283 Views
Java-Implementierung von „ T ree-Based G roup D iffie- H ellman ( TGDH ) “. Praktikant: Lijun Liao Betreuer: M.Sc. Mark Manulis Fachbereich: Lehrstuhl Netz- und Datensicherheit Datum: 19.10.2004. Gliederung. Grundlage Protokolle: Join, Leave, Partition und Merge Java-Implementierung
E N D
Java-Implementierung von„Tree-Based Group Diffie-Hellman (TGDH)“ Praktikant: Lijun Liao Betreuer: M.Sc. Mark Manulis Fachbereich: Lehrstuhl Netz- und Datensicherheit Datum: 19.10.2004
Gliederung • Grundlage • Protokolle: Join, Leave, Partition und Merge • Java-Implementierung • Literatur
Schlüsselvereinbarungsprotokoll für dynamische Gruppen • Knoten <l,v>: v-ter Knoten in Ebene l • Jeder Knoten • ein key K<l,v> • ein bkey BK<l,v> = g • : Menge der bkeys, die Mi kennt K<l,v> - K<0,0>: Gruppenschlüssel Grundlage
Schritt 1: • Schritt 2: • - Füge M4 hinzu und erweitere den Baum um den Knoten <2,3> • entferne BK<0,0>, BK<2,2> • M3 generiert neue key und bkey Join-Protokoll • Schritt 3: • Aktualisiere den Schlüsselbaum • Berechne alle Schlüsselpaare im Pfad
Schritt 1: • Entferne die Knoten <2,2> und <1,1> • Entferne BK<2,3>, BK<1,1> und BK<0,0> • M5 generiert neue key und bkey Leave-Protokoll • Schritt 2: • Aktualisiere den Schlüsselbaum • Berechne alle Schlüsselpaare im Pfad
M2 und M6 generieren neue key und bkey Partition-Protokoll I • Schritt 1: -Entferne die Knoten <3,0>, <2,2>, <2,0> und <1,1> • Entferne BK<2,0>, BK<1,0>, BK<0,0>, BK<2,3> und BK<1,1> • Schritt 2 - Aktualisiere den Schlüsselbaum • M2 und M6 berechnen alle Schlüsselpaare im Pfad • M2 oder M6 sendet den Baum mit allen bkeys an die Gruppe • Schritt 3: – M3 und M5 aktualisieren den Schlüsselbaum und • berechnen alle Schlüsselpaare im Pfad.
M1 und M4 generieren neue key und bkey Partition-Protokoll II • Schritt 1 • Entferne alle Knoten außer <3,0>, <2,2> und <0,0> • Entferne BK<1,0>, BK<0,0> und BK<1,1> • Schritt 2: • Aktualisiere den Schlüsselbaum • Berechne alle Schlüsselpaare im Pfad
Schritt 1: • M5 und M7 generieren neue key und bkey • Schritt 2: • Füge die beiden Schlüsselbäume zusammen • M2: Merge-Protokoll • Schritt 3: • Aktualisiere den Schlüsselbaum • Berechne alle Schlüsselpaare im Pfad
Java-Implementierung • Pakete und Klassen • UML • Demo
Pakete und Klassen • tgdh • TgdhException, TgdhUtil, Worker • tgdh.tree • Node, LeafNode, Coordinate, BasicTree, Tree, TreeInfo • tgdh.crypto • TgdhKeySpec, TgdhPrivateKey, TgdhPublicKey • tgdh.comm • TgdhMessage, ErrorMessage, JoinMessage, LeaveMessage, MergeMessage, PartitionMessage, UpdateMessage, MessageWithTry, TgdhSuspectEvent
Demo • Realisierung von • Join • Join auf bestimmter Position • Leave • Partition • Merge • Änderung des Gruppennamens mit Hilfe von „add tmp to group name“ • „remove tmp from group name“
Literatur • 1. Yongdae Kim et al., Tree-Based Group Key Agreement, • ACM Transactions on Information and System Security (TISSEC), • archive Volume 7, Issue 1 (February 2004), Pages: 60 - 96 • 2. PKCS#3: Diffie-Hellman Key Agreement Standard. http://www.rsasecurity.com/rsalabs/node.asp?id=2126 • 3. The Legion of the Bouncy Castle. • http://bouncycastle.org • 4. Log4J Project. • http://logging.apache.org/log4j/docs/index.html • 5. Commons Logging. • http://jakarta.apache.org/commons/logging/ • 6. The JGroups Project. • www.jgroups.org/javagroupsnew/docs/