-
Gebiet der Erfindung
-
Die vorliegende Erfindung betrifft die sichere Datenübertragung und insbesondere die Erlangung eines verbesserten Schutzes vor Verletzung der Datensicherheit auch dann, wenn die Daten über einen Kanal gesendet werden, der abgehört werden kann.
-
Hintergrund der Erfindung
-
Der Schutz von Daten während der Übertragung ist im Verlauf der gesamten Menschheitsgeschichte von Bedeutung gewesen und eine sichere Datenübertragung hat in der Wirtschaft seit jeher eine wichtige Rolle gespielt.
-
In neuerer Zeit und insbesondere seit der weiten Verbreitung von Rechentechnik und technischen Einrichtungen zur Datenübertragung in Verbindung mit ausgeklügelten Mitteln zur Sicherung der über Telekommunikationskanäle übertragenen Daten und ebenso ausgeklügelten technischen Mitteln zur Entschlüsselung von Nachrichten hat sich ein immer schnellerer Wettlauf zwischen denjenigen, die Nachrichten sicher übertragen wollen, und denjenigen herausgebildet, die diese „knacken“ wollen.
-
Ständig wird nach neuen technischen Mitteln zum Schützen von Daten während der Übertragung durch Erschweren der Entschlüsselung, gleichzeitig aber auch nach Mitteln gesucht, die bisher für unmöglich gehaltenen Entschlüsselungen ermöglichen. Desgleichen spielen die Verarbeitungs- und Übertragungskosten für das sichere Versenden von Daten eine Rolle. Das Volumen der im Verlauf von Geschäftsvorgängen zu übertragenden Daten nimmt zu, und die Kosten für die Nutzung der öffentlichen Telefonnetze sinken ständig, während die Kosten für die Nutzung privater Netze immer mehr steigen. Von Vorteil wäre es, wenn mehr Daten, insbesondere bei Anwendungen mit hohem Datenaufkommen, über preiswertere öffentliche Kanäle wie beispielsweise das Internet übertragen werden könnten, aber der Schutz der Datenübermittlung über ein solches Medium mit dem für gewerbliche Zwecke erforderlichen Mindestmaß an Vertraulichkeit ist schwierig.
-
Mittels der modernen Chiffrierverfahren können Daten sehr sicher verschlüsselt werden, sodass eine Verschlüsselung heutzutage nur mit sehr hohem Aufwand und sehr viel Zeit oder praktisch gar nicht geknackt werden kann. Die Schwachpunkte des herkömmlichen Ansatzes „Daten verschlüsseln, Daten senden, Daten empfangen und entschlüsseln" bestehen jedoch darin, dass (1) die Daten in ihrer Gesamtheit gesendet werden und (2) normalerweise nur ein Chiffrier-/Dechiffrierschlüssel verwendet wird.
-
In der veröffentlichten Europäischen Patentanmeldung
EP 0 993 142 A1 wird zum Beispiel ein Verfahren zur Gewährleistung der Datensicherheit vorgeschlagen, bei dem die Masse der übertragenen Daten verschlüsselt und über einen grundsätzlich unsichereren Kanal, ausgewählte Datensegmente jedoch über einen normalerweise privaten Kanal übertragen werden, zum Beispiel über das Telefonnetz. Ein Lauscher auf dem unsichereren Kanal kann somit nicht alle Daten lesen. Beschrieben wird auch die Idee der Verwendung eines oder mehrerer Verwürfelungsalgorithmen, um die Daten gemäß einer direkt von den Daten abgeleiteten Formel zu verwürfeln.
-
In der veröffentlichen PCT-Patentanmeldung
WO 00/18078 wird ein Verfahren vorgeschlagen, bei dem eine Nachricht aufgeteilt und so über zwei Kanäle übertragen wird, dass der über den unsichereren Kanal zu sendende Teil der Nachricht verschlüsselt wird, während der über den sicheren Kanal zu übertragende Teil unverschlüsselt bleibt.
-
In der veröffentlichten US-Patentanmeldung
2004/0083361A1 wird ein Verfahren zur sicheren Datenübermittlung beschrieben, bei dem die Daten adaptiv umgewandelt und dann einzeln auf mehrere Übertragungskanäle verteilt werden.
-
In der
WO 00/04 681 A1 ist ein Verfahren zur sicheren Datenübermittlung gezeigt, bei dem die Nachricht fragmentiert und die Nachrichtenfragmente einzeln verschlüsselt und über verschiedene Übertragungswege versendet werden.
-
Aus der
WO 2007/144215 A1 ist ein Verfahren bekannt, bei dem zum Verschlüsseln der Nachrichtenfragmente intelligente Agenten verwendet werden.
-
Diese bekannten Verfahren tragen ein wenig dazu bei, die oben beschriebenen Sicherheitsprobleme zu beheben. Bei der Suche nach noch sichereren Verfahren muss jedoch eine Lösung gefunden werden, die den Schutz einer Nachricht weiter verbessert, indem sie den Einsatz von Rechentechnik einer unberechtigten Person für den Zugriff auf den Informationsgehalt der Nachricht weiter einschränkt, und die zugleich die Verarbeitungs- und Übertragungskosten senkt.
-
Überblick über die Erfindung
-
Gemäß einem ersten Aspekt stellt die vorliegende Erfindung demzufolge ein Verfahren zur sicheren Datenübertragung von einem Sendercomputersystem an ein Empfängercomputersystem bereit, wobei das Verfahren die folgenden Schritte umfasst:
- Empfangen einer Nachricht in Klartext durch eine erste intelligente Agentenumgebung im Sendercomputersystem;
-
Aufteilen der Nachricht in eine Vielzahl von Nachrichtenfragmenten durch eine Teilungskomponente der ersten intelligenten Agentenumgebung; Erzeugen eines intelligenten Agenten für jedes der Nachrichtenfragmente durch einen Agentengenerator in der ersten intelligenten Agentenumgebung; Erzeugen eines Schlüssels für jedes der Nachrichtenfragmente durch einen Schlüsselgenerator jedes intelligenten Agenten; Verschlüsseln jedes der Nachrichtenfragmente durch eine Verschlüsselungsfunktion jedes der intelligenten Agenten, um ein entsprechendes verschlüsseltes Nachrichtenfragment zu erzeugen; und Übertragen jedes der intelligenten Agenten mit dem zugehörigen verschlüsselten Nachrichtenfragment als Datennutzlast.
-
Das Verfahren kann ferner die folgenden Schritte umfassen: Empfangen jedes der intelligenten Agenten mit dem entsprechenden Nachrichtenfragment als Datennutzlast durch eine zweite intelligente Agentenumgebung im Empfängercomputersystem; Auffinden jedes anderen Agenten aus der Gruppe der Agenten durch jeden der intelligenten Agenten; Entschlüsseln jedes der entsprechenden verschlüsselten Nachrichtenfragmente durch eine Entschlüsselungsfunktion jedes der intelligenten Agenten, um ein entsprechendes Nachrichtenfragment in Klartext zu erzeugen; und Zusammenwirken jedes der intelligenten Agenten aus der Gruppe von Agenten, um alle entsprechenden Nachrichtenfragmente in Klartext wieder zusammenzusetzen und so eine Nachricht in Klartext zu erzeugen.
-
Vorzugsweise umfasst der Schritt des Übertragens jedes der intelligenten Agenten das Übertragen über einen aus einer Vielzahl von Leitwegen ausgewählten Leitweg, um die zur Übertragung aller anderen intelligenten Agenten genutzten Leitwege auszuschließen. Vorzugsweise umfasst der Schritt des Verschlüsselns jedes der Nachrichtenfragmente das Verschlüsseln durch eine aus einer Vielzahl von Verschlüsselungsfunktionen ausgewählten Verschlüsselungsfunktion, um die zur Verschlüsselung aller anderen Nachrichtenfragmente genutzten Verschlüsselungsfunktionen auszuschließen. Vorzugsweise umfasst der Schritt des Aufteilens der Nachricht in eine Vielzahl von Nachrichtenfragmenten ferner das Anhängen von Sequenzmetadaten an jedes der Nachrichtenfragmente.
-
Vorzugsweise umfasst der Schritt des Zusammenwirkens beim Zusammensetzen das Ordnen der Nachrichtenfragmente in Klartext gemäß den Sequenzmetadaten. Vorzugsweise umfasst der Schritt des Entschlüsselns ferner das Verzögern bis zu einem vorgegebenen Zeitpunkt.
-
Gemäß einem zweiten Aspekt stellt die vorliegende Erfindung eine Vorrichtung zur sicheren Datenübertragung von einem Sendercomputersystem an ein Empfängercomputersystem bereit, wobei die Vorrichtung Folgendes umfasst: eine erste intelligente Agentenumgebung im Sendercomputersystem, die zum Empfangen einer Nachricht in Klartext dient; eine Teilungskomponente der ersten intelligenten Agentenumgebung, die zum Aufteilen der Nachricht in eine Vielzahl von Nachrichtenfragmenten dient; einen Agentengenerator in der ersten intelligenten Agentenumgebung, der zum Erzeugen eines intelligenten Agenten für jedes der Nachrichtenfragmente dient; einen Schlüsselgenerator jedes der intelligenten Agenten, der zum Erzeugen eines Schlüssels für jedes der Nachrichtenfragmente dient; eine Verschlüsselungskomponente jedes der intelligenten Agenten, die zum Erzeugen eines entsprechenden verschlüsselten Nachrichtenfragments durch Verschlüsseln jedes der Nachrichtenfragmente dient; und ein Mittel zum Übertragen jedes der intelligenten Agenten mit dem entsprechenden verschlüsselten Nachrichtenfragment als Datennutzlast.
-
Die Vorrichtung kann ferner Folgendes umfassen: eine zweite intelligente Agentenumgebung im Empfängercomputersystem, die zum Empfangen jedes der intelligenten Agenten mit dem entsprechenden verschlüsselten Nachrichtenfragment als Datennutzlast dient; ein Mittel Auffinden jedes anderen Agenten aus der Gruppe von Agenten durch jeden einzelnen intelligenten Agenten; eine Entschlüsselungskomponente jedes der intelligenten Agenten, die zum Erzeugen eines entsprechenden Nachrichtenfragments in Klartext durch Entschlüsseln jedes der entsprechenden verschlüsselten Nachrichtenfragmente dient; und ein Mittel zum Zusammenwirken jedes der intelligenten Agenten aus der Gruppe der Agenten, um jedes der entsprechenden Nachrichtenfragmente in Klartext wieder zusammenzusetzen und so eine Nachricht in Klartext zu erzeugen.
-
Vorzugsweise umfasst das Mittel zum Übertragen jedes der intelligenten Agenten ein Mittel zum Übertragen über einen aus seiner Vielzahl von Leitwegen ausgewählten Leitweg, um die zur Übertragung aller anderen intelligenten Agenten genutzten Leitwege auszuschließen. Vorzugsweise umfasst die Verschlüsselungskomponente eine aus einer Vielzahl von Verschlüsselungsfunktionen ausgewählten Verschlüsselungsfunktion, um die zur Verschlüsselung aller anderen aus der Vielzahl von Nachrichtenfragmenten genutzten Verschlüsselungsfunktionen auszuschließen. Vorzugsweise umfasst die Teilungskomponente ferner ein Mittel zum Anhängen von Sequenzmetadaten an jedes der Nachrichtenfragmente.
-
Vorzugsweise umfasst das Mittel zum Zusammenwirken beim Zusammensetzen ein Mittel zum Ordnen der Nachrichtenfragmente in Klartext gemäß den Sequenzmetadaten. Vorzugsweise umfasst der Schritt des Entschlüsselns ferner das Verzögern bis zu einem vorgegebenen Zeitpunkt.
-
Gemäß einem dritten Aspekt stellt die vorliegende Erfindung ein Computerprogramm bereit, das einen Computerprogrammcode umfasst, der in ein Computersystem geladen und ausgeführt werden kann, um alle Schritte des Verfahrens gemäß dem ersten Aspekt auszuführen.
-
Kurzbeschreibung der Zeichnungen
-
Im Folgenden wird eine bevorzugte Ausführungsart der vorliegenden Erfindung unter Bezug auf die beiliegenden Zeichnungen lediglich anhand eines Beispiels beschrieben, wobei:
- 1 ein Funktionsschaubild ist, das eine Vorrichtung gemäß einer gegenwärtig bevorzugten Ausführungsart der vorliegenden Erfindung veranschaulicht;
- die 2 und 3 Ablaufdiagramme sind, die entsprechende Teile eines Verfahrens gemäß einer bevorzugten Ausführungsart der vorliegenden Erfindung darstellen.
-
Detaillierte Beschreibung bevorzugter Ausführungsarten
-
Eine bevorzugte Ausführungsart der vorliegenden Erfindung bietet eine sichere Datenlieferung durch mehrere über verschiedene Leitwege übertragene verschlüsselte Fragmente unter Verwendung der Verschlüsselung und Entschlüsselung im Zusammenwirken mehrerer Agenten unter der Bedingung, dass alle Fragmente am Ziel ankommen, bevor sie entschlüsselt und komplett wieder zur ursprünglichen Datenform zusammengesetzt werden können. Wenn Daten über unsichere oder nicht vertrauenswürdige Kanäle gesendet werden, bietet dies zusätzlichen Schutz und gestattet die zufallsgesteuerte Erzeugung mehrerer Chiffrierschlüssel, die nicht an Dritte weitergegeben werden.
-
Diese Erfindung verwendet mehrere Schlüssel und gemeinschaftlich agierende Agenten, um die Quelldaten in einzelne Fragmente aufzuteilen, die jeweils unter Verwendung verschiedener Schlüssel mit denselben oder mit unterschiedlichen Algorithmen verschlüsselt werden. Das Abfangen und Aufklären eines einzelnen Fragments verschafft einem Angreifer nicht den Zugriff auf die gesamten Daten. Wenn Daten über unsichere oder nicht vertrauenswürdige Verbreitungskanäle gesendet werden, bietet dies zusätzlichen Schutz. Ein Vorteil besteht darin, dass keinem Benutzer am Ausgangs- und Zielpunkt ein Schlüssel mitgeteilt werden muss.
-
Die bevorzugte Ausführungsart der vorliegenden Erfindung verwendet eine allgemein bewährte portierbare Technologie wie beispielsweise Java und mobile Agenten und insbesondere Aglets. Obwohl Aglets, die von den Forschern im IBM Tokyo Research Laboratory erfunden und sowohl in akademischen als auch Unternehmenspublikationen umfangreich veröffentlicht wurden, in der Technik bestens bekannt sind, könnten einige Anmerkungen zu Aglets und deren Anwendung hilfreich sein. Das Aglet-Paket für Softwareentwickler (Aglet Software Developer's Kit, ASDK) wird als Open-Source-Lizenz vertrieben und kann durch interessierte Softwareentwickler aus dem Internet kostenlos heruntergeladen werden. Kurz gesagt, Aglets stellen Agentenobjekte mit einem definierten Inventar an Verfahren dar, durch welche sie in die Lage versetzt werden, sich autonom zu verhalten, indem sie als Reaktion auf einen bestimmten „Auslöser“ Exemplare von sich erzeugen (sich instantiieren) und dann ihren Programmcode und ihre Daten serialisieren, um sich selbstständig an ferne Systeme zu versenden. Ferner sind sie in der Lage, sich zu verschiedenen Zwecken zu klonen, zum Beispiel um Kopien von sich an ferne Systeme zu senden. Aglets verfügen ferner über Fähigkeiten, die programmgesteuert aktiviert werden können, zum Beispiel auf bestimmten vorgegebenen Wegen Daten mit ihren Hostsystemen sowie mit anderen in demselben Hostsystem vorhandenen Aglets auszutauschen.
-
Daten, die sicher von A nach B gesendet werden sollen, werden durch mehrere mobile Agenten verarbeitet, zum Beispiel durch die beschriebenen Aglets. In einem ersten Schritt werden die Daten in Klartext an eine sichere Agentenumgebung gesendet, in der Agenten erzeugt werden können. Die Agenten teilen die Quelldaten unter sich auf und verschlüsseln jeweils ihr Fragment mit ihrem eigenen Schlüssel. Die Fragmentierung kann so kompliziert wie nötig erfolgen, damit sichergestellt wird, dass immer noch nicht genügend Daten in verständlicher Form zur Nutzung bereitstehen, falls doch einmal irgendein Fragment ausspioniert werden sollte. Als Beispiel sei eine sehr einfache Fragmentierung genannt, bei der die Daten in zwei Fragmente so aufgeteilt werden, dass in jedem Fragment jedes zweite Wort enthalten ist, d.h. die Wörter 1,3,5,7.... und die Wörter 2,4,6,8.
-
Während der Fragmentierung kennt jeder Agent die Anzahl der anderen beteiligten Agenten und deren Identitäten und für welches Fragment sie im Einzelnen zuständig sind.
-
Dann senden die Agenten ihre verschlüsselten Datenfragmente unter Verwendung ihrer selbst gewählten Leitwege. Dann begeben sich die Agenten zur Zielagentenumgebung. Die sichere Zielumgebung bewahrt dann die Datenfragmente und die Agenten so lange auf, bis alle abgesendeten Fragmente und Agenten eingetroffen sind. Während des Aufenthalts in der Zielumgebung prüft jeder Agent sein eigenes Datenfragment und setzt sich mit den anderen Agenten in Verbindung, damit jeder erfährt, dass alle bekannten abgesendeten Agenten eingetroffen sind, und damit jeder dieser Agenten bestätigt, dass er jeweils sein Datenfragment als Nutzlast dabei hat. Nachdem dies geschehen ist, können die Agenten jeder für sich die eigenen Datenfragmente entschlüsseln und im Zusammenwirken mit den anderen Agenten die Fragmente wieder zusammensetzen, um eine Gesamtnachricht zu bilden.
-
Zu keinem Zeitpunkt wird auch nur ein einziger Chiffrierschlüssel preisgegeben, sodass die Daten nahtlos von einer sicheren Umgebung an eine andere sichere Umgebung gesendet und dabei automatisch wirksam verschlüsselt und entschlüsselt werden können. Außerdem können beliebige zeitliche Verzögerungen in das System eingefügt werden, sodass sich die Ankunftszeiten der Daten über eine bestimmte Zeitspanne verteilen. Der Ankunftszeitpunkt des letzten Fragments muss auch nicht mit dem Zeitpunkt der letzten Entschlüsselung übereinstimmen, da die Agenten an der Quelle angewiesen werden können, erst zu einem bestimmten Datum und einer bestimmten Uhrzeit zusammenzuwirken und die Daten zu entschlüsseln.
-
Die Quelle und das Ziel bestehen aus sicheren Umgebungen, in denen mobile Agenten und Daten aufbewahrt werden können. Die sicher zu übertragenden Daten werden in die sichere Umgebung eingegeben, vorzugsweise zusammen mit anderen geeigneten Parametern wie die Anzahl der Fragmente, Zeitparameter und die Anzahl der genutzten Übertragungswege.
-
Die Parameter und die Daten werden vorzugsweise durch einen Hauptagenten/ein Haupt-Aglet verarbeitet. Die Aufgabe des Hauptagenten besteht darin:
- 1. Aus den Parametern und dem Datentyp die Anzahl der benötigen Agenten zu ermitteln. Nach vorgegebenen Regeln des Hauptagenten können weitere Parameter und/oder Faktoren berechnet werden, welche die verfügbaren Ressourcen und weitere externe Faktoren berücksichtigen.
- 2. Die gewünschte Anzahl der Agenten/Aglets zu erzeugen/hervorzubringen.
- 3. Allen Agenten einen eindeutigen Kennungsschlüssel zuzuteilen, anhand dessen sich die Agenten am Ziel erkennen und Daten untereinander austauschen können. Bei Bedarf kann dieser Schlüssel oder ein anderer zugeteilter Schlüssel auch zur Verschlüsselung des Datenaustauschs zwischen den Agenten verwendet werden.
- 4. Die Quelldaten aufzuteilen/zu fragmentieren und jedem Unteragenten die zu ihm gehörenden Daten und Metadaten zuzuweisen, die anzeigen, wie die Daten fragmentiert wurden. Die Fragmentierung kann einfach oder komplex erfolgen. Folgendes Beispiel kann für eine komplexe Fragmentierung stehen: Erzeugen von Segmenten unterschiedlicher Länge unter Verwendung einer Schleifenkombination von Head-and-Tail-Funktionen, indem jedes nachfolgende Kopfsegment nach einem Längenintervall aus den Daten ausgeschnitten wird, das durch einen Zahlengenerator für beschränkte Pseudozufallszahlen erzeugt wurde.
-
Die Unteragenten/Unter-Aglets verschlüsseln die ihnen zugeteilten Datenfragmente mit selbst erzeugten Zufallsschlüsseln und frei wählbarem Algorithmus und senden/leiten dann die Datenfragmente an das gewünschte Ziel. Dann begeben sie sich selbst, wenn möglich auf einem anderen Leitweg, zum Zielort. Die Agenten können ihren Abgangszeitpunkt verzögern, damit sie nicht im selben Zeitraum wie die Daten übertragen werden. Als Teil des Zusammenwirkens während der Schritte Fragmentierung, Verschlüsselung und Transport können die Agenten dann sicherstellen, dass sie nicht alle dieselben Verbindungen und Leitwege zum Zielort verwenden oder dass sie diese Leitwege mit geeigneten Verzögerungszeiten nutzen, damit sie räumlich und zeitlich möglichst weit voneinander entfernt sind.
-
Nach ihrem Eintreffen in der sicheren Umgebung werden die Daten und Agenten so lange aufbewahrt/gesammelt, bis alle Beteiligten angelangt sind. Die Agenten sind in der Lage, Daten untereinander auszutauschen und dadurch anzuzeigen, dass sie alle unversehrt und ohne Schaden angekommen sind, und wirken dann beim Entschlüsseln und Zusammensetzen der Fragmente zusammen, um die Ausgangsdaten in ihrer ursprünglichen Form wiederherzustellen.
-
1 zeigt ein Funktionsschaubild, das eine Vorrichtung gemäß einer gegenwärtig bevorzugten Ausführungsart der vorliegenden Erfindung darstellt.
-
1 zeigt eine Umgebung von Sender-Aglets 100, die zum Empfangen einer Eingangsnachricht 102 mit einem Netzwerk zusammenwirken kann. Nach dem Empfang der Eingangsnachricht 102 wird das Haupt-Aglet 104 instantiiert und ein Verfahren aufgerufen, um die Nachricht in aufeinander folgende Fragmente aufzuteilen, die durch die Nachrichten-Teilungseinheit/Sequenzierungseinheit 106 mittels der Sequenzmetadaten gekennzeichnet werden. Das Haupt-Aglet 104 bringt eine Vielzahl der hier als AGLET 1, AGLET 2, ... bezeichneten Aglets 112, 112' hervor. Die Anzahl der Aglets wird wie oben beschrieben festgelegt, jedoch werden hier zum leichteren Verständnis der Figur und der kürzeren Beschreibung halber nur zwei gezeigt. Die Aglets 112, 112' dienen zum Aufrufen von Verfahren zum Erzeugen von Schlüsseln durch die Schlüsselgeneratoren 108, 108' und zum Verschlüsseln ihrer jeweiligen Fragmente der Nachricht durch Aufrufen von Verfahren der Verschlüsselungs-/Entschlüsselungseinheiten. Sowie die Aglets 112, 112' in der Umgebung von Sender-Aglets instantiiert sind, werden weitere Verfahren zum Zusammensetzen der Nachrichtenfragmente durch die Nachrichtenrekombinierungseinheiten 122, 122' außer Kraft gesetzt. Dem Fachmann ist klar, dass Aglets eine Vielzahl von Verfahren enthalten können, die je nach der Umgebung, in der die Aglets instantiiert werden, sowie anderen extern oder intern erzeugten Auslösern aktiviert oder deaktiviert werden.
-
Die Aglets 112, 112' sind in der Lage, für ihre Übertragung durch ein Netzwerk, zum Beispiel durch ein öffentliches Netz wie beispielsweise durch das Internet, von einer Umgebung von Sender-Aglets 100 an eine Umgebung von Empfänger-Aglet 116 zu sorgen. Die Aglets 112, 112' können ihre verschlüsselten Datenfragmente als Datennutzlast mit sich führen oder dafür sorgen, dass ihre Datennutzlast getrennt durch das Netzwerk gesendet und durch die Umgebung von Empfänger-Aglets 116 vom Netzwerk empfangen wird.
-
Nach ihrem Eintreffen in der Aglet-Umgebung 116 werden die Aglets 112, 112' aktiviert und können unter Verwendung der in der Technik bestens bekannten Verfahren Daten untereinander austauschen. Die Aglets 112, 112' wirken in der Weise zusammen, dass sie festlegen, alle Nachrichtenfragmente zu entschlüsseln und wieder zusammenzusetzen, wenn alle betreffenden Aglets (und wahlweise, wenn beliebige getrennt übertragene Daten) in der Umgebung von Empfänger-Aglets eingetroffen sind. Alternativ können die Aglets 112, 112' auch nach dem Eintreffen aller Fragmente die Weiterverarbeitung bis zu einem vorgegebenen Zeitpunkt verzögern. Wenn alle Aglets 112, 112' bereit sind, rufen sie die Verschlüsselungs-/Entschlüsselungsverfahren 110, 110' auf, um ihre jeweiligen Fragmente zu entschlüsseln und dann die Nachrichtenrekombinierungsverfahren 122, 122' aufzurufen und die Fragmente gemäß den Sequenzmetadaten wieder zusammenzusetzen, die ihnen durch die Nachrichten-Teilungseinheit/Sequenzierungseinheit 106 mitgegeben wurden. Nach dem Abarbeiten ihrer Entschlüsselungs- und Rekombinierungsverfahren sind die Aglets 112, 112' in der Lage, die entschlüsselte und wieder zusammengesetzte Nachricht 124 bereitzustellen.
-
2 zeigt die Schritte für den Übertragungsteil eines Verfahrens gemäß einer gegenwärtig bevorzugten Ausführungsart. 2 veranschaulicht auch die die zum Umsetzen einer gegenwärtig bevorzugten Ausführungsart der vorliegenden Erfindung in einem Computerprogrammprodukt erforderlichen Schritte des Computerprogrammcodes, jedoch werden die Schritte des Verfahrens hier der Kürze halber beschrieben. Dem Programmierer ist klar, dass sich das Verfahren zur Umsetzung als Programmcodemittel anbietet, die jeden der logischen Schritte des Verfahrens realisieren.
-
Das Verfahren beginnt mit Schritt 200 (START), und in Schritt 202 wird die Nachricht 202 in Klartext durch die Umgebung von Sender-Aglets 100 empfangen. In Schritt 204 beginnt der Prozess der Aufteilung der Nachricht in Fragmente durch die Nachrichten-Teilungseinheit/-Sequenzierungseinheit 106. Unter Verwendung eines Head-and-Tail-Prozesses wird in Schritt 204 das Kopffragment vom Fußfragment abgetrennt und in Schritt 206 ein Aglet mit dem Kopffragment als Nutzlast hervorgebracht (erzeugt). Die Verarbeitung des nächsten Kopffragments durchläuft die Schritte 204, 206 so lange, bis bei der Prüfung in Schritt 208 festgestellt wird, dass der Fußteil leer ist, das heißt keine weiteren Fragmente der Nachricht mehr verarbeitet werden können. In Schritt 210 werden die Schlüsselgeneratoren 108, 108'... und in Schritt 212 die Verschlüsselungsfunktionen 110, 110'... für jedes Aglet aufgerufen. In Schritt 214 werden die Übertragungsfunktionen für jedes Aglet aufgerufen und schließlich in Schritt 216 (ENDE) der Übertragungsteil des Verfahrens der bevorzugten Ausführungsart abgeschlossen.
-
3 zeigt die Schritte des Empfangsteils eines Verfahrens gemäß einer gegenwärtig bevorzugten Ausführungsart. 3 veranschaulicht auch die zur Umsetzung einer gegenwärtig bevorzugten Ausführungsart der vorliegenden Erfindung als Computerprogrammprodukt erforderlichen Schritte des Computerprogrammcodes, jedoch werden die Schritte des Verfahrens der Kürze halber hier beschrieben. Dem Programmierer ist klar, dass sich das Verfahren zur Umsetzung als Programmcodemittel anbietet, um jeden der logischen Schritte des Verfahrens zu realisieren.
-
Das Verfahren beginnt mit Schritt 300 (START), und in Schritt 302 trifft ein Aglet 112, 112'... in der Umgebung von Empfänger-Aglets 116 ein. Durch das Wiederholen von Schritt 304 (zugehörige Aglets auffinden), Schritt 306 (Prüfung „alle vorhanden?“) und Schritt 308 (Warten) wird sichergestellt, dass alle zugehörigen Aglets 112, 112'... in der Umgebung von Empfänger-Aglets 116 vorliegen. In Schritt 310 werden die Entschlüsselungsfunktionen 110, 110'... für die Nachrichtenfragmente aufgerufen, die als Nutzlast durch jedes Aglet 112, 112'... mitgeführt wurden, und der Prozess durchläuft wiederholt Schritt 312 (Prüfung), Schritt 314 (Warten) und Schritt 310 (Entschlüsseln) so lange, bis alle Nachrichtenfragmente entschlüsselt worden sind. In Schritt 316 werden die Rekombinierungsfunktionen 122, 122'... für jedes Aglet aufgerufen, und der Prozess durchläuft wiederholt den Schritt 318 (Prüfung) so lange, bis die Sequenz vollständig ist, das heißt bis die entschlüsselten Nachrichtenfragmente wieder zu einer entschlüsselten Nachricht 124 in Klartext zusammengesetzt sind. In Schritt 320 wird die entschlüsselte und wieder zusammengesetzte Nachricht zurückgegeben und in Schritt 322 (ENDE) der Empfangsteil des Verfahrens abgeschlossen.
-
Dem Fachmann ist klar, dass das Verfahren der bevorzugten Ausführungsarten der vorliegenden Erfindung ganz oder teilweise auf geeignete Weise und zweckmäßig in einer Logikvorrichtung oder einer Vielzahl von Logikvorrichtungen realisiert werden kann, deren Logikelemente so angeordnet sind, dass sie die Schritte des Verfahrens ausführen können, und dass solche Logikelemente Hardware-Komponenten, Firmware-Komponenten oder deren Kombination umfassen können.
-
Desgleichen ist dem Fachmann klar, dass eine Logikanordnung gemäß den bevorzugten Ausführungsarten der vorliegenden Erfindung ganz oder teilweise auf geeignete Weise in einer Logikvorrichtung realisiert werden kann, die Logikelemente zum Ausführen der Schritte des Verfahrens umfasst, und dass solche Logikelemente Komponenten wie Logikgatter beispielsweise in einer programmierbaren Logikschaltung oder einem anwendungsspezifischen integrierten Schaltkreis umfassen kann. Eine solche Logikanordnung kann ferner auch durch das Aktivieren von Elementen zum zeitweiligen oder ständigen Schaffen von Logikstrukturen in einer solchen Schaltung oder einem Schaltkreis beispielweise unter Verwendung einer virtuellen Hardware-Deskriptorsprache realisiert werden, die unter Verwendung fest eingebauter oder übertragbarer Trägermedien gespeichert und übertragen werden kann.
-
Es ist klar, dass das oben beschriebene Verfahren und die Anordnung auf geeignete Weise auch ganz oder teilweise als Software ausgeführt werden kann, die auf einem oder mehreren (in den Figuren nicht gezeigten) Prozessoren ausgeführt wird, und dass die Software in Form eines oder mehrerer Computerprogrammelemente bereitgestellt werden kann, die auf einem (ebenfalls in den-Figuren nicht gezeigten) geeigneten Datenträger wie beispielsweise einer Magnetplatte oder einer optischen Speicherplatte oder Ähnlichem gespeichert sind. Kanäle für die Datenübertragung können ebenso Speichermedien aller Ausführungen sowie Medien zur Signalspeicherung umfassen, zum Beispiel fest verdrahtete oder drahtlose Medien zur Signalspeicherung.
-
Ein Verfahren wird im Allgemeinen als eine aufeinander abgestimmte Folge von Schritten angesehen, die zu einem gewünschten Ergebnis führen. Diese Schritte erfordern den konkreten Umgang mit physischen Größen. Normalerweise, aber nicht unbedingt, handelt es sich bei diesen Größen um elektrische oder magnetische Signale, die gespeichert, übertragen, verknüpft, verglichen oder anderweitig verarbeitet werden können. Mitunter ist es insbesondere für den täglichen Gebrauch zweckdienlich, diese Signale als Bits, Werte, Parameter, Einheiten, Elemente, Objekte, Symbole, Zeichen, Ausdrücke, Zahlen oder Ähnliches zu bezeichnen. Es wird jedoch darauf hingewiesen, dass alle diese Begriffe und ähnliche Begriffe den passenden physischen Größen zugeordnet werden müssen und lediglich als zweckmäßige Bezeichnungen diesen, die für diese Größen verwendet werden.
-
Die vorliegende Erfindung kann ferner auf geeignete Weise auch als Computerprogrammprodukt zur Verwendung mit einem Computersystem realisiert werden. Eine solche Umsetzung kann eine Reihe von computerlesbaren Anweisungen umfassen, die entweder auf einem gegenständlichen Medium wie einem computerlesbaren Medium, zum Beispiel einer Diskette, CD-ROM, ROM oder Festplatte, fest gespeichert sind oder über einen Modem oder eine andere Schnittstelleneinheit entweder über ein gegenständliches Medium, darunter, aber nicht darauf beschränkt, optische oder analoge Datenübertragungsleitungen, oder nicht gegenständlich unter Verwendung von drahtlosen Verfahren an ein Computersystem übertragen werden können, darunter, aber nicht darauf beschränkt, Mikrowellen-, Infrarot- oder andere Übertragungsverfahren. Die Folge von computerlesbaren Anweisungen setzt die zuvor hier beschriebene Funktionalität ganz oder teilweise um.
-
Dem Fachmann ist klar, dass solche computerlesbaren Anweisungen in einer Anzahl von Programmiersprachen geschrieben werden können, die zusammen mit vielen Computerarchitekturen oder Betriebssystemen verwendet werden. Ferner können solche Anweisungen unter Verwendung anderer heutiger oder zukünftiger Speicherverfahren gespeichert werden, darunter, aber nicht darauf beschränkt, Halbleiter-, Magnet- oder optische Speicher, oder unter Verwendung beliebiger gegenwärtiger oder zukünftiger Datenübertragungsverfahren übertragen werden, darunter, aber nicht darauf beschränkt, Verfahren im optischen, infraroten oder Mikrowellenbereich. Es wird davon ausgegangen, dass ein solches Computerprogrammprodukt als austauschbares Medium mit zugehöriger Dokumentation in gedruckter oder elektronischer Form vertrieben werden kann, zum Beispiel als in Folie eingeschweißte Software, in ein Computersystem vorab geladen und zum Beispiel auf einer System-ROM oder einer Festplatte oder von einem Server oder einem elektronischen Postfach über ein Netzwerk wie beispielsweise das Internet oder das World Wide Web vertrieben werden kann.
-
Bei einer Alternative kann die bevorzugte Ausführungsart der vorliegenden Erfindung in Form eines computergestützten Verfahrens zum Installieren eines Dienstes realisiert werden kann, der Schritte zum Installieren eines Computerprogrammcodes umfasst, der bei Installation in einer Computerinfrastruktur und Ausführung in dieser das Computersystem veranlasst, alle Schritte des Verfahrens auszuführen.
-
Bei einer weiteren Alternative kann die bevorzugte Ausführungsart der vorliegenden Erfindung in Form eines Datenträgers mit darauf gespeicherten Funktionsdaten realisiert werden, wobei die Funktionsdaten wirksame Computerdatenstrukturen umfassen, die in ein Computersystem geladen und durch dieses ausgeführt werden können, um das Computersystem in die Lage zu versetzen, alle Schritte des Verfahrens auszuführen.
-
Dem Fachmann ist klar, dass an der obigen beispielhaften Ausführungsart Verbesserungen und Modifikationen vorgenommen werden können, ohne vom Geltungsbereich der vorliegenden Erfindung abzuweichen.