-
HINTERGRUND
-
Die vorliegende Offenbarung betrifft Datenverschlüsselung und insbesondere Datenverschlüsselung für eine Datenübertragung zwischen Systemen.
-
Eine Ende-zu-Ende-Verschlüsselung (E2EE) hat ein Verschlüsseln von Daten an dem Sendersystem, ein Übertragen der verschlüsselten Nachricht an den Empfänger und ein Entschlüsseln der Nachricht an dem Empfängersystem zur Folge. Da die Nachricht verschlüsselt wird, bevor sie den Sender verlässt, ist es keinem System möglich, das Zugriff auf die Nachricht zwischen dem Sender und dem Empfänger hat, die Nachricht zu lesen.
-
KURZDARSTELLUNG DER ERFINDUNG
-
Gemäß Ausführungsformen der vorliegenden Offenbarung wird ein Verfahren für sichere Datenübertragungen bereitgestellt. Das Verfahren umfasst ein Übertragen eines Geheimschlüssels zu einem Empfängersystem. Ein One-Time-Pad wird durch Verwenden des Geheimschlüssels und eines Zählers generiert. Eine verschlüsselte Nachricht wird durch Durchführen einer XOR-Operation an einer ersten Nachricht durch Verwenden des One-Time-Pad generiert. Die verschlüsselte Nachricht und der Zähler werden an das Empfängersystem gesendet.
-
Gemäß weiteren Ausführungsformen der vorliegenden Offenbarung wird ein zweites Verfahren für sichere Datenübertragungen bereitgestellt. Das Verfahren umfasst ein Empfangen eines Geheimschlüssels von einem Sendersystem. Ein erstes One-Time-Pad wird durch Verwenden des Geheimschlüssels und eines Zählers generiert. Eine verschlüsselte Nachricht wird von dem Sendersystem empfangen. Die verschlüsselte Nachricht wird durch Durchführen einer XOR-Operation an der verschlüsselten Nachricht mit dem ersten One-Time-Pad entschlüsselt.
-
Gemäß weiteren Ausführungsformen der vorliegenden Offenbarung wird ein System und ein Computerprogrammprodukt zum Durchführen der Verfahren bereitgestellt.
-
Die oben angegebene Kurzdarstellung ist nicht dazu gedacht, jede veranschaulichte Ausführungsform oder jede Umsetzung der vorliegenden Offenbarung zu beschreiben.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
Die in der vorliegenden Anmeldung enthaltenen Zeichnungen sind in die Patentschrift integriert und bilden einen Bestandteil von dieser. Sie veranschaulichen Ausführungsformen der vorliegenden Offenbarung und dienen zusammen mit der Beschreibung zum Erklären der Grundgedanken der Offenbarung. Die Zeichnungen dienen nur zur Veranschaulichung von bestimmten Ausführungsformen und schränken die Offenbarung keinesfalls ein.
- 1 stellt gemäß Ausführungsformen einen veranschaulichenden Ablaufplan einer ersten Handshake-Operation zwischen einem Sender-Datenverarbeitungssystem und einem Empfänger-Datenverarbeitungssystem durch Verwenden von asymmetrischer Kryptografie dar.
- 2 stellt einen Ablaufplan eines Verfahrens für ein Sendersystem dar, das gemäß Ausführungsformen einen Geheimschlüssel gemeinsam mit einem Empfänger nutzt.
- 3 stellt einen Ablaufplan eines Verfahrens für ein Empfängersystem dar, das gemäß Ausführungsformen den Geheimschlüssel von einem Sendersystem erhält.
- 4 stellt einen veranschaulichenden Ablaufplan einer Ende-zu-Ende-Verschlüsselung von Nachrichten gemäß Ausführungsformen dar.
- 5 stellt einen Ablaufplan eines Verfahrens zum Generieren von One-Time-Pads gemäß Ausführungsformen dar.
- 6 stellt einen Ablaufplan eines Verfahrens für ein Sendersystem zum Senden einer verschlüsselten Nachricht gemäß Ausführungsformen dar.
- 7 stellt einen Ablaufplan eines Verfahrens zum Entschlüsseln einer verschlüsselten Nachricht durch ein Empfängersystem gemäß Ausführungsformen dar.
- 8 stellt ein Übersichtsblockschaubild eines beispielhaften Computersystems gemäß Ausführungsformen dar.
-
Obwohl die Erfindung für verschiedene Modifizierungen und alternative Formen offen ist, wurden Besonderheiten davon als Beispiel in den Zeichnungen gezeigt und werden ausführlich beschrieben. Es sollte jedoch klar sein, dass die Erfindung keinesfalls auf die beschriebenen speziellen Ausführungsformen eingeschränkt werden soll. Die Erfindung soll im Gegenteil alle Modifizierungen, Entsprechungen und Alternativen abdecken, die unter den Erfindungsgedanken und Schutzumfang der Erfindung fallen.
-
AUSFÜHRLICHE BESCHREIBUNG
-
Aspekte der vorliegenden Offenbarung betreffen eine verschlüsselte Datenübertragung zwischen Datenverarbeitungssystemen, und speziellere Aspekte betreffen eine verschlüsselte Datenübertragung zwischen Datenverarbeitungssystemen durch Verwenden von Geheimschlüsseln und einer Zählermodus-Verschlüsselung. Obwohl die vorliegende Offenbarung nicht notwendigerweise auf derartige Anwendungen beschränkt ist, können verschiedene Aspekte der Offenbarung durch eine Erläuterung von verschiedenen Beispielen unter Verwendung dieses Kontexts gewürdigt werden.
-
Eine exponentielle Zunahme ist bei verteilten Systemen vorhanden, die fähig sein müssen, große sichere Datenvolumen schnell zu transferieren. Mit fortschreitenden Technologien, wie beispielsweise 5G-Netzwerke, verschiebt sich der Datentransfer-Engpass von der Transfergeschwindigkeit hin zu Verarbeitungskapazitäten der Einheiten selbst. Um die Sicherheit von Daten zu gewährleisten, die transferiert werden, müssen die Daten vor dem Senden verschlüsselt werden und entschlüsselt werden, sobald sie empfangen wurden. In Prozessen des Stands der Technik befinden sich Verschlüsselungs- und Entschlüsselungs-Operationen auf dem kritischen Pfad für den Datentransfer. Ein Entfernen der Verschlüsselungs- und Entschlüsselungs-Operationen aus dem kritischen Pfad kann die Geschwindigkeit eines Datentransfers in einer Ende-zu-Ende-Verschlüsselung verbessern.
-
Ausführungsformen der vorliegenden Offenbarung stellen ein Verfahren, ein System und ein Computerprogrammprodukt für eine Ende-zu-Ende-Verschlüsselung bereit, die Verschlüsselungs- und Entschlüsselungs-Operationen aus dem kritischen Pfad für den Datentransfer entfernen. Ausführungsformen der vorliegenden Offenbarung können eine Kombination von asymmetrischen Schlüsseln, symmetrischen Schlüsseln und Zählermodus-Verschlüsselung verwenden.
-
In einer ersten Handshake-Operation kann ein Sendersystem einen Geheimschlüssel durch Verwenden von asymmetrischer Kryptografie an ein Empfängersystem übertragen. Das Sendersystem kann anschließend eine Zählermodus-Verschlüsselung verwenden, die einen Zähler und den Geheimschlüssel zum Generieren eines One-Time-Pads verwendet. Das Sendersystem kann anschließend eine verschlüsselte Nachricht generieren, indem eine XOR- (exklusives OR) Operation an einer Nachricht durch Verwenden des One-Time-Pads durchgeführt wird. Die verschlüsselte Nachricht kann anschließend an das Empfängersystem mit dem Zähler gesendet werden, der zum Generieren des in der XOR-Operation verwendeten One-Time-Pads verwendet wurde. Das Empfängersystem kann sein eigenes One-Time-Pad durch Verwenden eines Zählers und des Geheimschlüssels generieren und eine XOR-Operation durch Verwenden des One-Time-Pads und des Chiffretextes durchführen, um die Klartextnachricht zu generieren.
-
Insbesondere können beide Systeme das One-Time-Pad generieren, bevor es zum Verschlüsseln einer Nachricht verwendet werden muss. Indem die Generierung des One-Time-Pads von der Nachricht unabhängig gemacht wird, wird ermöglicht, dass das One-Time-Pad vor oder parallel mit der Nachricht generiert wird, wodurch die Geschwindigkeit eines Datentransfers in einer Ende-zu-Ende-Verschlüsselung verbessert werden kann. Verglichen mit Verfahren nach dem Stand der Technik werden die kritischen Pfadelemente von Verschlüsselung-Datenübertragung-Entschlüsselung durch XOR-Datenübertragung-XOR ersetzt. XOR ist eine einfachere Operation, die weniger Zeit zum Abschließen benötigt als herkömmliche Verschlüsselungsoperationen und Entschlüsselungsoperationen. Somit kann die Geschwindigkeit einer Datenübertragung gegenüber Verfahren nach dem Stand der Technik verbessert werden.
-
In einigen Ausführungsformen kann das Empfängersystem eine Mehrzahl von One-Time-Pads generieren und sie zusammen mit den Werten des Zählers speichern, die verwendet wurden, um sie zu generieren. Wenn das Empfängersystem den Zähler und die verschlüsselte Nachricht von dem Sender empfängt, kann das Empfängersystem das richtige gespeicherte One-Time-Pad durch Verwenden des Werts des empfangenen Zählers identifizieren. Somit ermöglichen diese Ausführungsformen ein Entschlüsseln von Nachrichten, die nicht der Reihe nach empfangen wurden.
-
Zwar wurde hierin auf ein Sendersystem und ein Empfängersystem Bezug genommen, doch kann jedes System in einigen Ausführungsformen so konfiguriert werden, dass es entweder als das Sendersystem oder das Empfängersystem arbeitet. Ferner kann ein einzelnes System in einigen Ausführungsformen gleichzeitig als Empfängersystem in Bezug auf ein erstes Datenverarbeitungssystem arbeiten, während es als ein Sendersystem in Bezug auf ein zweites Datenverarbeitungssystem arbeitet.
-
Unter folgender Bezugnahme auf 1 wird gemäß Ausführungsformen ein veranschaulichender Ablaufplan einer ersten Handshake-Operation zwischen einem Sender-Datenverarbeitungssystem und einem Empfänger-Datenverarbeitungssystem durch Verwenden von asymmetrischer Kryptografie dargestellt. Zu einer asymmetrischen Kryptografie gehört die Verwendung von öffentlichen und privaten Schlüsseln. Ein öffentlicher Schlüssel kann zum Verschlüsseln von Daten verwendet werden, sodass sie nur durch Verwenden des entsprechenden privaten Schlüssels entschlüsselt werden können. Der öffentliche Schlüssel kann für andere zum Verschlüsseln von Daten verfügbar gemacht werden, wobei der entsprechende private Schlüssel geheim gehalten werden kann, sodass nur der Inhaber des privaten Schlüssels Daten entschlüsseln kann, die durch Verwenden des öffentlichen Schlüssels verschlüsselt werden.
-
Das Sender-Datenverarbeitungssystem kann einen eindeutigen Geheimschlüssel 110 zur Verwendung für zukünftige Datenübertragungen mit dem Empfänger-Datenverarbeitungssystem generieren. Das Sender-Datenverarbeitungssystem kann einen verschlüsselten Geheimschlüssel 140 durch Verschlüsseln, 130, des Geheimschlüssels 110 mit einem öffentlichen Schlüssel 120 des Empfängers generieren. Das Sendersystem kann anschließend den verschlüsselten Geheimschlüssel 140 über ein oder mehrere Netzwerke zu dem Empfänger-Datenverarbeitungssystem übertragen. Das Empfänger-Datenverarbeitungssystem kann den verschlüsselten Geheimschlüssel 140 durch Verwenden des privaten Schlüssels 150 des Empfängers entschlüsseln, 160.
-
Wie gezeigt, wird nur der verschlüsselte Geheimschlüssel 140 über das eine oder die mehreren Netzwerke übertragen. Da der verschlüsselte Geheimschlüssel 140 nur durch Verwenden des privaten Schlüssels 150 des Empfängers entschlüsselt werden kann, wenn der verschlüsselte Geheimschlüssel 140 kompromittiert wird, wenn er durch das eine oder die mehreren Netzwerke übertragen wird (z.B. durch einen Person-in-the-Middle-Angriff), bleibt der Geheimschlüssel geschützt. Somit können nach der ersten Handshake-Operation, die in 1 dargestellt wird, das Sendersystem und das Empfängersystem jeweils einen Geheimschlüssel 110 haben, der nur zwischen den beiden Datenverarbeitungssystemen verfügbar ist.
-
Unter folgender Bezugnahme auf 2 wird ein Ablaufplan eines Verfahrens 200 für ein Sendersystem dargestellt, das gemäß Ausführungsformen einen Geheimschlüssel gemeinsam mit einem Empfänger nutzt. Das Verfahren 200 kann durch Verwenden jedes geeigneten Datenverarbeitungssystems durchgeführt werden. Das Verfahren 200 kann zum Beispiel durch ein Computersystem 801 durchgeführt werden, das unter Bezugnahme auf 8 beschrieben wird.
-
Das Verfahren 200 beginnt mit einem Generieren eines Geheimschlüssels in einer Operation 210. Der Geheimschlüssel kann ein eindeutiger Schlüssel sein, der nur zur Datenübertragung mit dem Empfänger-Datenverarbeitungssystem verwendet wird. Der Geheimschlüssel kann gemäß jedem geeigneten Algorithmus generiert werden.
-
In einer Operation 220 wird der Geheimschlüssel mit dem öffentlichen Schlüssel des Empfängers verschlüsselt. Wie hierin beschrieben, kann der öffentliche Schlüssel des Empfängers zum Verschlüsseln von Daten verwendet werden, sodass sie nur durch Verwenden des privaten Schlüssels des Empfängers entschlüsselt werden können. Die Verschlüsselung kann durch Verwenden jedes geeigneten Verschlüsselungsalgorithmus durchgeführt werden.
-
In einer Operation 230 wird der verschlüsselte Geheimschlüssel an den Empfänger gesendet. Der verschlüsselte Geheimschlüssel kann über ein oder mehrere Netzwerke zu einem Empfängersystem übertragen werden.
-
In einer Operation 240 kann das Sendersystem eine verschlüsselte Bestätigung von dem Empfängersystem in Reaktion auf ein Senden des verschlüsselten Geheimschlüssels empfangen. Wie unter Bezugnahme auf 3 beschrieben wird, kann das Empfänger-Datenverarbeitungssystem eine Bestätigung generieren und die Bestätigung durch Verwenden des Geheimschlüssels verschlüsseln, der von dem Sendersystem empfangen wurde.
-
In einer Operation 250 entschlüsselt das Sendersystem die verschlüsselte Bestätigung durch Verwenden des Geheimschlüssels, um die Bestätigung zu erhalten. Die verschlüsselte Bestätigung kann durch Verwenden jedes geeigneten Entschlüsselungsalgorithmus entschlüsselt werden, der dem Verschlüsselungsalgorithmus entspricht.
-
In einer Operation 260 überprüft das Sendersystem die Bestätigung. In einigen Ausführungsformen kann das Datenverarbeitungssystem die Bestätigung durch Vergleichen der Bestätigung mit einer erwarteten Bestätigung überprüfen, um festzustellen, ob eine Übereinstimmung vorliegt. In einigen Ausführungsformen kann das Datenverarbeitungssystem die Bestätigung überprüfen, indem bestimmt wird, ob die Bestätigung lesbar ist. Wenn die Bestätigung überprüft ist, kann das Sendersystem damit beginnen, den Geheimschlüssel wie hierin beschrieben zu verwenden, um verschlüsselte Nachrichten zu dem Empfänger zu übertragen.
-
Unter folgender Bezugnahme auf 3 wird ein Ablaufplan eines Verfahrens 300 für ein Empfängersystem dargestellt, das gemäß Ausführungsformen den Geheimschlüssel von einem Sendersystem erhält. Das Verfahren 300 kann durch Verwenden jedes geeigneten Datenverarbeitungssystems durchgeführt werden. Das Verfahren 300 kann zum Beispiel durch ein Computersystem 801 durchgeführt werden, das unter Bezugnahme auf 8 beschrieben wird.
-
In einer Operation 310 empfängt das Empfängersystem den verschlüsselten Geheimschlüssel von dem Sender über ein oder mehrere Netzwerke. Der verschlüsselte Geheimschlüssel kann durch Verwenden des öffentlichen Schlüssels des Empfängers verschlüsselt werden.
-
In einer Operation 320 wird der verschlüsselte Geheimschlüssel durch Verwenden des privaten Schlüssels des Empfängers entschlüsselt. Das Empfängersystem kann jeden geeigneten Entschlüsselungsalgorithmus verwenden, der dem Verschlüsselungsalgorithmus entspricht.
-
In einer Operation 330 kann das Empfängersystem eine Bestätigungsnachricht durch Verwenden des Geheimschlüssels verschlüsseln. Das Empfängersystem kann jede geeignete Verschlüsselung verwenden, die eine Entschlüsselung durch den Empfänger durch Verwenden des gleichen Geheimschlüssels ermöglichen würde.
-
In einer Operation 340 kann das Empfängersystem die verschlüsselte Bestätigung an den Sender über ein oder mehrere Netzwerke senden. Ein Senden der durch den privaten Schlüssel verschlüsselten Bestätigung kann dem Sendersystem zeigen, dass das Empfängersystem den privaten Schlüssel empfangen hat.
-
Unter folgender Bezugnahme auf 4 wird ein veranschaulichender Ablaufplan einer Ende-zu-Ende-Verschlüsselung von Nachrichten gemäß Ausführungsformen dargestellt. Der veranschaulichte Ablauf umfasst eine Zählermodus-Verschlüsselung durch Verwenden eines Geheimschlüssels 420. Wie dargestellt, können das Sendersystem und das Empfängersystem jeweils den gleichen Geheimschlüssel 420 haben. Der Geheimschlüssel 420 kann durch das Sender-Datenverarbeitungssystem generiert und in einer ersten Handshake-Operation, wie hierin beschrieben, an das Empfänger-Datenverarbeitungssystem gesendet werden.
-
Wie dargestellt, können sowohl das Sendersystem als auch das Empfängersystem eine Kombination aus einer Nonce (generierte Zufallszahl) 405 und dem Zähler 410 durch Verwenden des Geheimschlüssels 420 verschlüsseln, 430, um ein One-Time-Pad 440 zu generieren. Die Nonce 405 kann ein Initialisierungsvektor mit einer eingestellten Länge sein. Der Zähler 410 kann ein numerischer Zähler mit einem Wert sein, der jedes Mal erhöht wird, wenn ein One-Time-Pad generiert wird. Der Zähler 410 kann von beliebiger Größe sein, ist im Idealfall aber groß genug, um sicherzustellen, dass er nicht überläuft (d.h. die Anzahl von generierten Pads überschreitet den Höchstwert des Zählers nicht). Der Zähler kann mit jedem Wert beginnen und kann konfiguriert werden, sich um jeden Wert für ein Generieren jedes anschließenden One-Time-Pads zu erhöhen. Zum Beispiel kann der Zähler bei 0000 für ein Generieren des ersten One-Time-Pads beginnen und sich für jedes anschließende One-Time-Pad um 1 erhöhen. Somit würde der Zähler in diesem Beispiel für ein um Generieren des zweiten One-Time-Pads 0001 lauten. Zwar werden die Nonce 405 und der Zähler 410 getrennt darstellt, sie können aber Teile der gleichen Zeichenfolge sein.
-
Wie dargestellt, kann das Empfängersystem das generierte One-Time-Pad 440 in einer One-Time-Pad-Liste 445 speichern. Das Empfängersystem kann anschließend damit fortfahren, One-Time-Pads durch Erhöhen des Zählers zu generieren und die Nonce und den Zähler mit dem Geheimschlüssel 420 zu verschlüsseln. Zwar zeigt 4 keine entsprechende One-Time-Pad-Liste auf dem Sendersystem, in einigen Ausführungsformen kann das Sendersystem aber auch eine One-Time-Pad-Liste für eine zukünftige Verwendung haben.
-
Das Sendersystem kann eine Sendernachricht 450 durch Durchführen einer XOR-Operation 460 mit dem One-Time-Pad 440 verschlüsseln, um eine verschlüsselte Nachricht 470 zu generieren. Das Sendersystem kann anschließend den Zähler 410 verketten, der dem One-Time-Pad 440 und der verschlüsselten Nachricht 470 entspricht. Zum Beispiel kann der X Byte lange Zähler dem Anfang der verschlüsselten Nachricht hinzugefügt werden, und das Empfängersystem kann konfiguriert werden, um die ersten X Bytes als den Zähler und die restlichen Bytes als die verschlüsselte Nachricht zu identifizieren.
-
Das Sendersystem kann den Zähler 410 und die verschlüsselte Nachricht 470 über ein oder mehrere Netzwerke an das Empfängersystem senden. Das Empfängersystem kann das One-Time-Pad 440 identifizieren, das dem Zähler 410 in einer One-Time-Pad-Liste 445 entspricht. Zum Beispiel kann das Empfängersystem eine Tabellensuche unter Verwendung des Zählers durchführen, um das entsprechende One-Time-Pad zu identifizieren.
-
Das Empfängersystem kann eine XOR-Operation 460 an der verschlüsselten Nachricht 470 durch Verwenden des One-Time-Pads 440 durchführen, um die Sendernachricht 450 zu generieren.
-
Wie gezeigt, werden nur die verschlüsselte Nachricht 470 und der Zähler 410 über das eine oder die mehreren Netzwerke übertragen. Der Zähler muss nicht verschlüsselt werden, weil der Zähler allein ohne den Geheimschlüssel nicht verwendet werden kann, um die verschlüsselte Nachricht zu entschlüsseln, und der Geheimschlüssel ist nur dem Sendersystem und dem Empfängersystem bekannt. Wenn daher die verschlüsselte Nachricht kompromittiert wird, wenn sie durch das eine oder die mehreren Netzwerke übertragen wird (d.h. durch einen Angriff einer Person-in-the-Middle), ist die Nachricht des Senders geschützt.
-
Zwar stellt 4 ein Sendersystem dar, das verschlüsselte Nachrichten an ein Empfängersystem sendet, in einigen Ausführungsformen kann das Empfängersystem aber auch konfiguriert werden, um verschlüsselte Nachrichten an das Sendersystem zu senden. In einigen Ausführungsformen können die von dem Empfängersystem an das Sendersystem gesendeten Nachrichten einen anderen Zähler von Nachrichten verwenden, die von dem Sendersystem an das Empfängersystem gesendet wurden. Wenn zum Beispiel One-Time-Pads zum Senden von Nachrichten von dem Sendersystem an das Empfängersystem generiert werden, können beide Systeme geradzahlige Zählerwerte verwenden, während ungeradzahlige Zählerwerte für Nachrichten von dem Empfängersystem an das Sendersystem verwendet werden.
-
Unter folgender Bezugnahme auf 5 wird ein Ablaufplan eines Verfahrens 500 zum Generieren von One-Time-Pads gemäß Ausführungsformen dargestellt. Das Verfahren 500 kann von einem Sendersystem oder einem Empfängersystem durchgeführt werden. Das Verfahren 500 kann durch Verwenden jedes geeigneten Datenverarbeitungssystems durchgeführt werden. Das Verfahren 500 kann zum Beispiel durch ein Computersystem 801 durchgeführt werden, das unter Bezugnahme auf 8 beschrieben wird.
-
Das Verfahren 500 kann nach der ersten Handshake-Operation beginnen, die unter Bezugnahme auf 1 bis 3 beschrieben wurde. In einer Operation 510 kann das System ein One-Time-Pad generieren, indem die Nonce und der Zähler mit dem Geheimschlüssel verschlüsselt werden. Das System kann jeden geeigneten Verschlüsselungsalgorithmus zum Generieren eines One-Time-Pads verwenden.
-
In einer Operation 520 kann das System das One-Time-Pad speichern. Das One-Time-Pad und der Zähler können in jedem geeigneten Computerspeicher so gespeichert werden, dass das System das entsprechende One-Time-Pad auf Grundlage des Zählers suchen kann.
-
In einer Operation 530 kann das System bestimmen, ob eine Schwellenwertanzahl von One-Time-Pads gespeichert worden ist. Die Schwellenwertanzahl von One-Time-Pads kann vorab konfiguriert werden. In einigen Ausführungsformen ist die Schwellenwertanzahl die maximale Anzahl von One-Time-Pads, die auf Grundlage der Größe des Zählers generiert werden können (z.B. kann der Schwellenwert erreicht werden, wenn der Zähler seinen maximalen Wert erreicht hat). In einigen Ausführungsformen kann die Schwellenwertanzahl auf Grundlage der Rate von gesendeten Nachrichten ausgewählt werden, um sicherzustellen, dass One-Time-Pads verfügbar sind, wenn sie benötigt werden.
-
Wenn die Schwellenwertanzahl von gespeicherten One-Time-Pads nicht erreicht worden ist, kann das System den Zähler in einer Operation 540 erhöhen und die Operationen 510 und 520 wiederholen. Wenn der Schwellenwert erreicht worden ist, endet das Verfahren 500.
-
Unter folgender Bezugnahme auf 6 wird ein Ablaufplan eines Verfahrens 600 für ein Sendersystem zum Senden einer verschlüsselten Nachricht gemäß Ausführungsformen dargestellt. Das Verfahren 600 kann durch Verwenden jedes geeigneten Datenverarbeitungssystems durchgeführt werden. Das Verfahren 600 kann zum Beispiel durch ein Computersystem 801 durchgeführt werden, das unter Bezugnahme auf 8 beschrieben wird.
-
In einer Operation 610 wird eine Nachricht bereitgestellt, die an ein Empfängersystem gesendet werden soll. In einer Operation 620 generiert das Sendersystem eine verschlüsselte Nachricht durch Durchführen einer XOR-Operation an der Nachricht mit einem One-Time-Pad. Das Sendersystem kann eine Mehrzahl von One-Time-Pads generiert haben und sie mit ihren zugehörigen Zählern speichern, wie unter Bezugnahme auf 5 beschrieben. Das Sendersystem kann ein One-Time-Pad aus den gespeicherten One-Time-Pads zum Durchführen der XOR-Operation auswählen. Dieses One-Time-Pad kann auf Grundlage seiner Zugehörigkeit zu dem niedrigsten Zähler ausgewählt werden.
-
In einer Operation 630 werden die verschlüsselte Nachricht und der Zähler, der dem One-Time-Pad zugehörig ist, das zum Verschlüsseln der Nachricht verwendet wird, über ein oder mehrere Netzwerke an das Sendersystem gesendet. Der Zähler und die verschlüsselte Nachricht können auf eine vorbestimmte Weise verkettet werden. Zum Beispiel kann der Zähler vor der verschlüsselten Nachricht so hinzugefügt werden, dass die ersten Bytes der Zähler sind und die restlichen Bytes die verschlüsselte Nachricht sind.
-
Unter folgender Bezugnahme auf 7 wird ein Ablaufplan eines Verfahrens 700 zum Entschlüsseln einer verschlüsselten Nachricht durch ein Empfängersystem gemäß Ausführungsformen dargestellt. Das Verfahren 700 kann durch Verwenden jedes geeigneten Datenverarbeitungssystems durchgeführt werden. Das Verfahren 700 kann zum Beispiel durch ein Computersystem 801 durchgeführt werden, das unter Bezugnahme auf 8 beschrieben wird.
-
In einer Operation 710 empfängt das Empfängersystem den Zähler und die verschlüsselte Nachricht von dem Sendersystem. In einer Operation 720 identifiziert der Empfänger ein One-Time-Pad, das dem empfangenen Zähler entspricht. Wie unter Bezugnahme auf 5 beschrieben, kann das Empfängersystem eine Mehrzahl von One-Time-Pads haben, die mit ihren zugehörigen Zählern gespeichert sind. Das Empfängersystem kann das korrekte One-Time-Pad identifizieren, indem eine Tabellensuche unter Verwendung des empfangenen Zählers durchgeführt wird. In einer Operation 730 generiert das System die Nachricht des Senders durch Durchführen einer XOR-Operation an der verschlüsselten Nachricht mit dem One-Time-Pad.
-
Unter folgender Bezugnahme auf 8 wird ein Übersichtsblockschaubild eines beispielhaften Computersystems 801 gezeigt, das beim Umsetzen von einem oder mehreren der Verfahren, Werkzeuge und Module und allen zugehörigen Funktionen verwendet werden kann (z.B. durch Verwenden von einer oder mehreren Prozessorschaltungen oder Computerprozessoren des Computers), die hierin gemäß Ausführungsformen der vorliegenden Offenbarung beschrieben werden. In einigen Ausführungsformen können die Hauptkomponenten des Computersystems 801 eine oder mehrere CPUs 802, ein Arbeitsspeicher-Subsystem 804, eine Endgeräteschnittstelle 812, eine Speicherschnittstelle 816, eine E/A- (Eingabe/Ausgabe)-Einheitenschnittstelle 814 und eine Netzwerkschnittstelle 818 aufweisen, die alle direkt oder indirekt für eine Datenübertragung zwischen Komponenten über einen Arbeitsspeicherbus 803, einen E/A-Bus 808 und eine E/A-Bus-Schnittstelleneinheit 810 im Datenaustausch verbunden sind.
-
Das Computersystem 801 kann eine oder mehrere programmierbare Universal-Zentraleinheiten (CPUs) 802A, 802B, 802C und 802D enthalten, auf die hierin allgemein als die CPU 802 Bezug genommen wird. In einigen Ausführungsformen kann das Computersystem 801 mehrere Prozessoren enthalten, die für ein relativ großes System typisch sind; in anderen Ausführungsformen kann das Computersystem 801 jedoch alternativ ein einzelnes CPU-System sein. Jede CPU 802 kann Anweisungen ausführen, die in dem Arbeitsspeicher-Subsystem 804 gespeichert sind, und kann eine oder mehrere Ebenen von integriertem Cache umfassen.
-
Ein Systemarbeitsspeicher 804 kann von einem Computersystem lesbare Medien in der Form von flüchtigem Arbeitsspeicher wie beispielsweise einen Direktzugriffspeicher (RAM) 822 oder einen Cache-Arbeitsspeicher 824 umfassen. Das Computersystem 801 kann ferner andere austauschbare/nicht austauschbare, flüchtige/nicht flüchtige Computersystem-Speichermedien enthalten. Nur als Beispiel kann das Speichersystem 826 zum Lesen von einem und Schreiben auf einen nicht austauschbaren, nicht flüchtigen Magnetdatenträger bereitgestellt werden wie zum Beispiel ein „Festplattenlaufwerk“. Obwohl nicht gezeigt, kann ein Magnetplattenlaufwerk zum Auslesen und Beschreiben einer austauschbaren, nicht flüchtigen Magnetplatte (z.B. eine „Diskette“) oder ein optisches Plattenlaufwerk zum Auslesen oder Beschreiben einer austauschbaren, nicht flüchtigen optischen Platte wie einem CD-ROM, DVD-ROM oder anderen optischen Datenträgern bereitgestellt werden. Außerdem kann der Arbeitsspeicher 804 einen Flash-Speicher, z.B. ein Flash-Speicherstick-Laufwerk oder Flash-Laufwerk umfassen. Arbeitsspeichereinheiten können über eine oder mehrere Datenträgerschnittstellen mit einem Bus 803 verbunden werden. Der Arbeitsspeicher 804 kann mindestens ein Programmprodukt mit einem Satz (z.B. mindestens einem) von Programmmodulen umfassen, die konfiguriert sind, um die Funktionen von verschiedenen Ausführungsformen auszuführen.
-
Ein oder mehrere Programme/Dienstprogramme 828 mit jeweils mindestens einem Satz von Programmmodulen 830 können in dem Arbeitsspeicher 804 gespeichert sein. Die Programme/Dienstprogramme 828 können einen Hypervisor (der auch als Überwachung einer virtuellen Maschine bezeichnet wird), ein oder mehrere Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten umfassen. Jedes der Betriebssysteme, ein oder mehrere Anwendungsprogramme, andere Programmmodule und Programmdaten oder eine Kombination davon können eine Umsetzung einer vernetzten Umgebung umfassen. Die Programmmodule 830 führen im Allgemeinen die Funktionen oder Methodiken von verschiedenen Ausführungsformen aus.
-
Obwohl der Arbeitsspeicherbus 803, der in 8 als eine einzelne Busstruktur gezeigt wird, die einen direkten Datenübertragungspfad zwischen den CPUs 802, dem Arbeitsspeicher-Subsystem 804 und der E/A-Bus-Schnittstelle 810 bereitstellt, kann der Arbeitsspeicher-Bus 803 in einigen Ausführungsformen mehrere verschiedene Busse oder Datenübertragungspfade umfassen, die in jeder beliebigen von verschiedenen Formen angeordnet sein können, wie zum Beispiel Punkt-zu-Punkt-Verbindungen in einer hierarchischen, sternförmigen oder Web-Konfiguration, mehreren hierarchischen Bussen, parallelen und redundanten Pfaden oder jedem anderen geeigneten Konfigurationstyp. Zwar werden die E/A-Bus-Schnittstelle 810 und der E/A-Bus 808 jeweils als einzelne Einheiten gezeigt, doch kann das Computersystem 801 in einigen Ausführungsformen ferner mehrere E/A-Bus-Schnittstelleneinheiten 810, mehrere E/A-Busse 808 oder beides enthalten. Während ferner mehrere E/A-Schnittstelleneinheiten gezeigt werden, die den E/A-Bus 808 von verschiedenen Datenübertragungspfaden trennen, die zu den verschiedenen E/A-Einheiten führen, können einige oder alle der E/A-Einheiten in anderen Ausführungsformen direkt mit einem oder mehreren System-E/A-Bussen verbunden sein.
-
In einigen Ausführungsformen kann das Computersystem 801 ein Mehrbenutzer-Mainframe-Computersystem, ein Einzelplatzsystem oder ein Server-Computer oder eine ähnliche Einheit sein, die wenig oder gar keine direkte Benutzeroberfläche hat, aber Anforderungen von anderen Computersystemen (Clients) empfängt. Ferner kann das Computersystem 801 in einigen Ausführungsformen als Desktop-Computer, tragbarer Computer, Laptop- oder Notebook-Computer, Table-Computer, Taschencomputer, Telefon, Smartphone, Schaltnetzwerk oder Router oder jeder andere geeignete Typ einer elektronischen Einheit umgesetzt werden.
-
Es wird angemerkt, dass 8 die repräsentativen Hauptkomponenten eines beispielhaften Computersystems 801 darstellen soll. In einigen Ausführungsformen können einzelne Komponenten jedoch eine größere oder geringere Komplexität aufweisen als in 8 dargestellt, es können andere oder zusätzliche Komponenten zu denjenigen vorhanden sein, die in 8 gezeigt werden, und die Anzahl, der Typ und die Konfiguration solcher Komponenten kann unterschiedlich sein.
-
Zusätzlich zu den oben beschriebenen Ausführungsformen werden andere Ausführungsformen mit weniger Arbeitsschritten, mehr Arbeitsschritten oder verschiedenen Arbeitsschritten in Erwägung gezogen. Einige Ausführungsformen können auch einige oder alle der vorgenannten Arbeitsschritte in einer anderen Reihenfolge ausführen. Die Module werden gemäß einer Ausführungsform aufgelistet und zur Veranschaulichung beschrieben und sollen keine Notwendigkeit eines bestimmten Moduls oder eine Ausschließlichkeit von anderen potentiellen Modulen (oder Funktionen/Zwecken in Bezug auf ein spezifisches Modul) angeben.
-
Im Vorgenannten wird auf verschiedene Ausführungsformen Bezug genommen. Es sollte jedoch klar sein, dass diese Offenbarung nicht auf die speziell beschriebenen Ausführungsformen beschränkt ist. Stattdessen wird jede Kombination der beschriebenen Merkmale und Elemente, gleichgültig, ob sie zu verschiedenen Ausführungsformen in Beziehung stehen, zum Umsetzen und Ausüben dieser Offenbarung in Erwägung gezogen. Für Fachleute können viele Modifizierungen und Variationen offenkundig sein, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Ausführungsformen abweichen. Obwohl Ausführungsformen dieser Offenbarung des Weiteren Vorteile gegenüber anderen möglichen Lösungen oder gegenüber dem Stand der Technik erlangen können, stellt das Erreichen oder Nicht-Erreichen eines bestimmten Vorteils durch eine bestimmte Ausführungsform keine Einschränkung dieser Offenbarung dar. Daher dienen die beschriebenen Aspekte, Merkmale, Ausführungsformen und Vorteile nur zur Veranschaulichung und sind nicht als Elemente oder Einschränkungen der Ansprüche im Anhang zu betrachten, es sei denn in Fällen, in denen sie explizit in einem Anspruch (bzw. mehreren Ansprüchen) zitiert werden.
-
Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt handeln. Das Computerprogrammprodukt kann ein durch einen Computer lesbares Speichermedium (oder -medien) mit durch einen Computer lesbaren Programmanweisungen enthalten, um einen Prozessor dazu zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
-
Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine physische Einheit handeln, die Anweisungen zur Verwendung durch eine Einheit zum Ausführen von Anweisungen beibehalten und speichern kann. Das durch einen Computer lesbare Speichermedium kann zum Beispiel eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiter-Speichereinheit oder jede geeignete Kombination aus dem Vorgenannten sein, es ist aber nicht darauf beschränkt. Zu einer nicht erschöpfenden Liste von spezifischeren Beispielen des durch einen Computer lesbaren Speichermediums gehören die Folgenden: eine tragbare Computerdiskette, eine Festplatte, ein Direktzugriffsspeicher (RAM), ein Nur-Lese-Speicher (ROM), ein löschbarer programmierbarer Nur-Lese-Speicher (EPROM bzw. Flash-Speicher), ein statischer Direktzugriffsspeicher (SRAM), ein tragbarer CD-ROM, eine DVD, ein Arbeitsspeicher-Stick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhabene Strukturen in einer Rille, auf denen Anweisungen gespeichert sind, und jede geeignete Kombination des Vorgenannten. Ein durch einen Computer lesbares Speichermedium soll, wie hierin verwendet, nicht als flüchtige Signale an sich aufgefasst werden, wie zum Beispiel Funkwellen oder andere sich frei ausbreitende elektromagnetische Wellen, elektromagnetische Wellen, die sich durch einen Wellenleiter oder andere Übertragungsmedien ausbreiten (z.B. durch ein Lichtwellenleiterkabel geleitete Lichtimpulse) oder durch einen Draht übertragene elektrische Signale.
-
Hierin beschriebene durch einen Computer lesbare Programmanweisungen können von einem durch einen Computer lesbaren Speichermedium auf jeweilige Datenverarbeitungs-/Verarbeitungseinheiten oder über ein Netzwerk wie zum Beispiel das Internet, ein lokales Netzwerk, ein Weitverkehrsnetzwerk und/oder ein drahtloses Netzwerk auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, drahtlose Übertragung, Leitwegrechner, Firewalls, Vermittlungseinheiten, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder Netzwerkschnittstelle in jeder Datenverarbeitungs-/Verarbeitungseinheit empfängt durch einen Computer lesbare Programmanweisungen aus dem Netzwerk und leitet die durch einen Computer lesbaren Programmanweisungen zur Speicherung in einem durch einen Computer lesbaren Speichermedium innerhalb der entsprechenden Datenverarbeitungs-/Verarbeitungseinheit weiter.
-
Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Arbeitsschritten der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination von einer oder mehreren Programmiersprachen geschrieben sind, darunter objektorientierte Programmiersprachen wie Java, Smalltalk, C++ oder dergleichen, sowie herkömmliche prozedurale Programmiersprachen wie die Programmiersprache „C“ oder ähnliche Programmiersprachen. Die durch einen Computer lesbaren Programmanweisungen können vollständig auf dem Computer des Benutzers, teilweise auf dem Computer des Benutzers, als eigenständiges Software-Paket, teilweise auf dem Computer des Benutzers und teilweise auf einem entfernt angeordneten Computer oder vollständig auf dem entfernt angeordneten Computer oder Server ausgeführt werden. In dem letzteren Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers durch jeden Typ von Netzwerk verbunden werden, darunter ein lokales Netzwerk (LAN) oder ein Weitverkehrsnetzwerk (WAN), oder die Verbindung kann zu einem externen Computer hergestellt werden (zum Beispiel über das Internet unter Verwendung eines Internet-Dienstanbieters). In einigen Ausführungsformen können elektronische Schaltungen, darunter zum Beispiel programmierbare Logikschaltungen, feldprogrammierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die computerlesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der computerlesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
-
Aspekte der vorliegenden Erfindung werden hierin unter Bezugnahme auf Veranschaulichungen von Ablaufplänen und/oder Blockschaubildern von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es sollte klar sein, dass jeder Block der Ablaufplanveranschaulichungen und/oder der Blockschaubilder und Kombinationen von Blöcken in den Ablaufplanveranschaulichungen und/oder den Blockschaubildern mittels durch einen Computer lesbare Programmanweisungen umgesetzt werden können.
-
Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung bereitgestellt werden, um eine Maschine zu erzeugen, sodass die über den Prozessor des Computers bzw. eine andere programmierbare Datenverarbeitungsvorrichtung ausgeführten Anweisungen ein Mittel zur Umsetzung der in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte erzeugen. Diese durch einen Computer lesbaren Programmanweisungen können auch auf einem durch einen Computer lesbaren Speichermedium gespeichert sein, das einen Computer, eine programmierbare Datenverarbeitungsvorrichtung und/oder andere Einheiten so steuern kann, dass sie auf eine bestimmte Art funktionieren, sodass das durch einen Computer lesbare Speichermedium, auf dem Anweisungen gespeichert sind, ein Herstellungsprodukt aufweist, darunter Anweisungen, die Aspekte der/des in dem Block bzw. den Blöcken des Ablaufplans und/oder der Blockschaubilder angegebenen Funktion/Schritts umsetzen.
-
Die durch einen Computer lesbaren Programmanweisungen können auch auf einen Computer, eine andere programmierbare Datenverarbeitungsvorrichtung oder eine andere Einheit geladen werden, um das Ausführen einer Reihe von Arbeitsschritten auf dem Computer bzw. der anderen programmierbaren Vorrichtung oder anderen Einheit zu verursachen, um einen durch einen Computer umgesetzten Prozess zu erzeugen, sodass die auf dem Computer, einer anderen programmierbaren Vorrichtung oder einer anderen Einheit ausgeführten Anweisungen die in dem Block bzw. den Blöcken der Ablaufpläne und/oder der Blockschaubilder angegebenen Funktionen/Schritte umsetzen.
-
Die Ablaufpläne und Blockschaubilder in den Figuren veranschaulichen die Architektur, die Funktionalität und den Betrieb möglicher Ausführungen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Ablaufplänen oder den Blockschaubildern ein Modul, ein Segment oder einen Teil von Anweisungen darstellen, die eine oder mehrere ausführbare Anweisungen zum Umsetzen der bestimmten logischen Funktion(en) aufweisen. In einigen alternativen Umsetzungen können die in dem Block angegebenen Funktionen in einer anderen Reihenfolge als in den Figuren angegeben auftreten. Zum Beispiel können zwei nacheinander gezeigte Blöcke tatsächlich als ein Schritt erreicht werden, der gleichzeitig, im Wesentlichen gleichzeitig, in einer teilweise oder vollständig zeitlich überlappenden Weise ausgeführt wird, oder die Blöcke können manchmal in der umgekehrten Reihenfolge ausgeführt werden, was von der beteiligten Funktionalität abhängt. Es ist ferner anzumerken, dass jeder Block der Blockschaubilder und/oder der Ablaufplandarstellungen sowie Kombinationen von Blöcken in den Blockschaubildern und/oder der Ablaufplandarstellung durch spezielle auf Hardware beruhende Systeme umgesetzt werden können, welche die angegebenen Funktionen oder Handlungen durchführen oder Kombinationen aus Spezial-Hardware und Computeranweisungen ausführen.
-
Zwar bezieht sich das Vorhergehende auf beispielhafte Ausführungsformen, doch sind andere und weitere Ausführungsformen der Erfindung denkbar, ohne von deren grundlegendem Schutzumfang abzuweichen, und deren Schutzumfang wird durch die folgenden Ansprüche festgelegt. Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Offenbarung wurden zum Zweck der Veranschaulichung erstellt, sie sollen aber keineswegs erschöpfend oder auf die offenbarten Ausführungsformen eingeschränkt sein. Für Fachleute sind viele Modifizierungen und Variationen offenkundig, die nicht von dem Schutzumfang und Erfindungsgedanken der beschriebenen Ausführungsformen abweichen. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, der praktischen Anwendung oder technischen Verbesserung gegenüber auf dem Markt gefundenen Technologien zu erklären oder anderen Fachleuten das Verständnis der hierin offenbarten Ausführungsformen zu ermöglichen.
-
Die hierin verwendete Terminologie dient nur zum Zweck der Beschreibung von bestimmten Ausführungsformen und soll die verschiedenen Ausführungsformen keinesfalls einschränken. Die hierin verwendeten Singularformen „ein“, „eine“ und „der/die/das“ sollen auch die Pluralformen mit einschließen, es sei denn, der Kontext gibt eindeutig anderes vor. „Satz aus“, „Gruppe von“, „Bündel von“ usw. sollen eines oder mehreres umfassen. Es versteht sich des Weiteren, dass die Begriffe „umfasst“ und/oder „umfassend“ bei Verwendung in dieser Patentschrift das Vorhandensein der ausgewiesenen Merkmale, Ganzzahlen, Schritte, Operationen, Elemente und/oder Komponenten angeben, das Vorhandensein oder die Hinzufügung von einem oder mehreren anderen Merkmalen, Ganzzahlen, Schritten, Vorgängen, Elementen, Komponenten und/oder Gruppen davon aber nicht ausschließen. In der vorhergehenden ausführlichen Beschreibung von beispielhaften Ausführungsformen der verschiedenen Ausführungsformen wird auf die begleitenden Zeichnungen Bezug genommen (in denen gleiche Bezugszeichen für gleiche Elemente stehen), die einen Bestandteil davon bilden und in denen spezifische beispielhafte Ausführungsformen, in denen die verschiedenen Ausführungsformen ausgeführt werden können, durch Veranschaulichung gezeigt werden. Diese Ausführungsformen wurden ausreichend detailliert beschrieben, um dem Fachmann ein Ausführen der Ausführungsformen zu ermöglichen, doch können auch andere Ausführungsformen verwendet werden, und logische, mechanische, elektrische und andere Änderungen können vorgenommen werden, ohne von dem Schutzumfang der verschiedenen Ausführungsformen abzuweichen. In der vorhergehenden Beschreibung wurden zahlreiche spezifische Details dargelegt, um für ein umfassendes Verständnis der verschiedenen Ausführungsformen zu sorgen. Die verschiedenen Ausführungsformen können aber ohne diese spezifischen Details ausgeführt werden. In anderen Fällen wurden bekannte Schaltungen, Strukturen und Techniken nicht im Detail gezeigt, um die Ausführungsformen nicht unverständlich zu machen.