Upload
poldi-mumper
View
103
Download
0
Embed Size (px)
Citation preview
Praktikant: Lijun Liao
Betreuer: M.Sc. Mark Manulis
Fachbereich: Lehrstuhl Netz- und Datensicherheit
Datum: 19.10.2004
Java-Implementierung von „Tree-Based Group Diffie-Hellman
(TGDH)“
Gliederung
• Grundlage
• Protokolle: Join, Leave, Partition und Merge
• Java-Implementierung
• Literatur
Grundlage
- K<0,0>: Gruppenschlüssel
- 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>
• Schlüsselvereinbarungsprotokoll für dynamische Gruppen
Join-Protokoll
• 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
• Schritt 3:- Aktualisiere den Schlüsselbaum- Berechne alle Schlüsselpaare im Pfad
Leave-Protokoll
• 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
• Schritt 2: - Aktualisiere den Schlüsselbaum- Berechne alle Schlüsselpaare im Pfad
Partition-Protokoll I
• 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 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>
- M2 und M6 generieren neue key und bkey
• Schritt 3: – M3 und M5 aktualisieren den Schlüsselbaum und berechnen alle Schlüsselpaare im Pfad.
Partition-Protokoll II
• Schritt 1 - Entferne alle Knoten außer <3,0>, <2,2> und <0,0>
• Schritt 2: - Aktualisiere den Schlüsselbaum- Berechne alle Schlüsselpaare im Pfad
- Entferne BK<1,0>, BK<0,0> und BK<1,1>
- M1 und M4 generieren neue key und bkey
Merge-Protokoll
• Schritt 1: - M5 und M7 generieren neue key und bkey
• Schritt 2: - Füge die beiden Schlüsselbäume zusammen- M2:
• 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.treeNode, LeafNode, Coordinate, BasicTree, Tree, TreeInfo
• tgdh.cryptoTgdhKeySpec, TgdhPrivateKey, TgdhPublicKey
• tgdh.commTgdhMessage, ErrorMessage, JoinMessage, LeaveMessage, MergeMessage, PartitionMessage, UpdateMessage, MessageWithTry, TgdhSuspectEvent
UML I
UML II
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/