-
Die
vorliegende Erfindung betrifft die Verschlüsselungsunterstützung und
insbesondere die Verschlüsselungsunterstützung für kurze
Vorgänge.
-
Data
Encryption Standard (DES) ist ein weit verbreitetes Verfahren zur
Datenverschlüsselung
unter Verwendung privater Schlüssel.
Unter DES gibt es Millionen möglicher
Verschlüsselungsschlüssel, die
zum Schutz von Paketen zwischen Teilnehmern über elektronische Netze verwendet
werden können.
Für jedes
Paket bzw. jede Nachricht wird ein Schlüssel zufällig ausgewählt. Wie bei anderen Verschlüsselungsverfahren
mit symmetrischem Schlüssel
müssen
sowohl der Sender als auch der Empfänger denselben privaten Schlüssel kennen
und verwenden.
-
DES
wendet einen 56-Bit-Schlüssel
auf jeden 64-Bit-Block von Daten an. Der Prozess kann mehrere Modi
ausführen
und beinhaltet 16 Runden von Vorgängen. Obwohl dies als starke
Verschlüsselung
betrachtet wird, verwenden viele Unternehmen Triple-DES (TDES),
wobei auf jedes Paket drei aufeinander folgende Schlüssel verwendet
werden.
-
DES
wurde ursprünglich
von IBM im Jahr 1977 entwickelt und vom US-Verteidigungsministerium übernommen.
Es wird in den ANSI-Standards
X3.92 und X3.106 und in den Federal Information Processing Standards
(FIPS) 46 und 81 definiert.
-
Normalerweise
werden Verschlüsselungsverfahren
schwerpunktmäßig auf
große
Pakete (größer als etwa
80 Byte) angewandt. Wenn ein DES-System für kleinere Pakete verwendet
wird, kann die Leistungsfähigkeit
um eine Größenordnung
sinken.
-
Daher
besteht ein Bedarf an einem System und einem Verfahren zur Verschlüsselungsunterstützung für DES-Vorgänge, das
einen hohen Durchsatz für
lange (> 80 Byte)
und kürzere
Pakete aufweist.
-
Die
vorliegende Erfindung stellt ein Verschlüsselungsverfahren mit symmetrischem
Schlüssel
für kurze
Vorgänge
bereit, wie es in Anspruch 1 beansprucht wird.
-
Vorzugsweise
ist das Verschlüsselungsverfahren
mit symmetrischem Schlüssel
ein Data Encryption Standard- (DES-) Verfahren. Die kurzen Vorgänge können zwischen
8 und 80 Byte liegen.
-
Vorzugsweise
beinhaltet das Verfahren die Stapelverarbeitung der Vielzahl von
Vorgangsparametern und einer Vielzahl von DES-Vorgängen in
einer einzigen Anforderung, wobei für jeden Vorgang in der Anforderung
DES aufgerufen wird, und das gesonderte Ausführen von DES für jeden
Vorgang gemäß dem entsprechenden
Vorgangsparameter.
-
Außerdem beinhaltet
das Verfahren die Stapelverarbeitung der Vielzahl von Vorgangsparametern
und einer Vielzahl von DES-Vorgängen in
einer einzigen Anforderung, wobei DES für die gestapelten Vorgänge aufgerufen
wird, und das gesonderte Ausführen
von DES für
jeden Vorgang gemäß dem entsprechenden
Vorgangsparameter. Jede Anforderung wird mit einem Chip- Rücksetzvorgang, einem Schlüssel und
einem Initialisierungsvektor (initialization vector) ausgeführt. Das
Aufrufen von DES für
die gestapelten Vorgänge
umfasst außerdem
das Umschalten eines Kontextes für
dieselben. Die Kontextumschaltung (context switch) erfolgt zwischen
einer Anwendungsschicht und einer Systemsoftwareschicht.
-
Zu
dem Verfahren gehören
das Lesen der gestapelten Parameter aus einem dynamischen Arbeitsspeicher
(dynamic random access memory) und das Senden jedes Vorgangs durch
eine DES-Maschine gemäß dem Vorgangsparameter.
-
Vorzugsweise
beinhaltet das Verfahren das Bereitstellen eines Schlüsselindexes
für eine
Maschine und das Pumpen der Vorgänge
in einer Massenverarbeitung durch die Maschine, wobei die Bytes
nicht von einer Zentraleinheit bearbeitet werden. Die Maschine ist
vorzugsweise eine DES-Maschine.
-
Vorzugsweise
beinhaltet das Verfahren das Zurücksetzen
eines Maschinenchips für
einen Vorgang, das Lesen eines Initialisierungsvektors und das Laden
des Initialisierungsvektors in den Maschinenchip. Außerdem enthält das Verfahren
vorzugsweise das Festlegen eines Schlüssels aus dem Schlüsselindex,
das Laden des Schlüssels
in den Maschinenchip und das Lesen einer Datenlänge für den Vorgang.
-
Vorzugsweise
beinhaltet das Verfahren das Senden der Datenlänge durch einen Eingangskanal
in den Maschinenchip und das Senden der Datenlänge durch einen Ausgangskanal.
Die Kanäle
sind vorzugsweise FIFOs.
-
Im
Folgenden werden bevorzugte Ausführungsformen
der vorliegenden Erfindung mit Bezugnahme auf die begleitenden Zeichnungen
ausführlicher
beschrieben:
-
1 ist
eine Darstellung der DES-Architektur gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
2 ist
eine andere Darstellung der DES-Architektur gemäß einer Ausführungsform
der vorliegenden Erfindung;
-
3 ist
noch eine andere Darstellung der DES-Architektur gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
4 ist
noch eine andere Darstellung der DES-Architektur gemäß einer
Ausführungsform
der vorliegenden Erfindung;
-
5 ist
eine Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor
gemäß einer
Ausführungsform
der vorliegenden Erfindung unterstützt;
-
6 ist
eine andere Darstellung der FIFO-Struktur, die DES/TDES mit einem
Coprozessor gemäß einer
Ausführungsform
der vorliegenden Erfindung unterstützt;
-
7 ist
noch eine andere Darstellung der FIFO-Struktur, die DES/TDES mit
einem Coprozessor gemäß einer
Ausführungsform
der vorliegenden Erfindung unterstützt;
-
8 ist
noch eine andere Darstellung der FIFO-Struktur, die DES/TDES mit
einem Coprozessor gemäß einer
Ausführungsform
der vorliegenden Erfindung unterstützt;
-
9 ist
eine weitere Darstellung der FIFO-Struktur, die DES/TDES mit einem
Coprozessor gemäß einer
Ausführungsform
der vorliegenden Erfindung unterstützt;
-
10 ist
eine Darstellung der FIFO-Struktur, die DES/TDES mit einem Coprozessor
gemäß einer Ausführungsform
der vorliegenden Erfindung unterstützt;
-
11 ist
ein Flussdiagramm einer Anwendungen, die zwei Vorgänge als
gesonderte SCC-Anforderungen (sccRequests) nach dem Stand der Technik
bearbeitet;
-
12 ist
ein Flussdiagramm, das eine stapelweise verarbeitete Host-Karten-Interaktion
gemäß einer Ausführungsform
der vorliegenden Erfindung darstellt;
-
13 ist
ein Flussdiagramm von mehreren Vorgängen, die gemäß einer
Ausführungsform
der vorliegenden Erfindung in einem einzigen Aufruf gestapelt wurden;
-
14 ist
ein Flussdiagramm eines Verfahrens, das Datenübertragungsvorgänge für jeden
Vorgang gemäß einer
Ausführungsform
der vorliegenden Erfindung verringert;
-
15 ist
ein Flussdiagramm eines Verfahrens, das Parameter für alle Vorgänge gemäß einer
Ausführungsform
der vorliegenden Erfindung in einen Block stapelt; und
-
16 ist
ein Diagramm, das DES-Geschwindigkeiten für verschiedene Ausführungsformen
der vorliegenden Erfindung darstellt.
-
Die
vorliegende Erfindung stellt ein System und ein Verfahren zur Verschlüsselungsunterstützung bereit,
das einen hohen Durchsatz für
lange und kurze Vorgänge
aufweist. Gemäß einer
Ausführungsform
der vorliegenden Erfindung enthält
das System ein eingebettetes Modul mit mehreren Chips (multi-chip
embedded module), das in einer Peripheral Component Interconnect-
(PCI-) Karte angeordnet ist. Neben der Verschlüsselungshardware und einer
Schaltung zur Erkennung von und Antwort auf Manipulationen (circuitry
for tamper detection and response) wird eine Universaldatenverarbeitungsumgebung
bereitgestellt, zu der eine Zentraleinheit und in einem ROM und/oder
einem Flash-Speicher gespeicherte Ausführungssoftware gehören.
-
Mit
Bezugnahme auf 1 werden die Softwarearchitektur
mit mehreren Schichten des Client 101 und der Host 105 gezeigt.
Zur Client-Seite gehören
die grundlegende Sicherheitskontrolle in den Schichten 0 und 1 102,
ein Softwaresystem auf Überwachungsebene
(supervisor-level software system) in der Schicht 2 103 und
eine Softwareanwendung auf Benutzerebene in der Schicht 3 104.
Die Schicht 2 103 unterstützt die Anwendungsentwicklung.
In der Schicht 2 103 stellt ein Systemkern die Betriebssystemabstraktionen
von mehreren Prozessen und Adressräumen bereit; diese Abstraktionen
unterstützen
unabhängige
Verwaltungseinrichtungen, die Verschlüsselungshardware und andere
grundlegende Ein-/Ausgabe- (E/A-)
Vorgänge
bearbeiten, und stellen Anwendungsprogrammschnittstellen (APIs)
der höheren
Ebene für
die Anwendung 104 der Schicht 3 bereit. Eine API ist das
von einem Computer oder einem anderen Programm vorgeschriebene,
spezifische Verfahren, mit Hilfe dessen ein Programmierer, der ein
Anwendungsprogramm schreibt, Anforderungen des Betriebssystems oder
einer anderen Anwendung machen kann. Normalerweise stellt die Anwendung 104 der
Schicht 3 ihrerseits eine Abstraktion ihrer eigenen API für eine Anwendung 107 auf
der Hostseite bereit.
-
Zur
Hostseite 105 gehören
ein Einheitentreiber 106 und eine Hostanwendung 107.
Gemäß 2 gibt die
Anwendung 107 der Hostseite einen Aufruf an den Einheitentreiber 106 der
Hostseite aus, damit die Anwendung 104 der Schicht 3 einen
von der Anwendung der Kartenseite bereitgestellten Dienst verwenden
kann. Der Einheitentreiber 106 öffnet eine SCC-Anforderung 108 an
das System 103 der Schicht 2 in der Einheit. Die Schicht
2 103 benachrichtigt die in der Einheit befindliche Anwendung 104 der
Schicht 3 über
das Vorliegen der Anforderung und die zusammen mit der Anforderung übertragenen
Parameter des Host.
-
Gemäß den 3 und 4 bearbeitet
die Anwendung 104 der Schicht 3 die Anforderung der Hostanwendung
nach dem Dienst, beispielsweise kann sie die Schicht 2 103 zum Übertragen
von Daten 109 an den Einheitentreiber 106 steuern
und die notwendigen Verschlüsselungsvorgänge ausführen. Die
Anwendung 104 der Schicht 3 schließt die SCC-Anforderung 110 und überträgt die Ausgabe
zurück 111 an
die Hostanwendung 107.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wird eine Einheit zur schnellen Verschlüsselung
bereitgestellt. Die Einheit enthält
einen Coprozessor mit einer Zentraleinheit (CPU), mindestens zwei Ebenen
von interner Software und mindestens drei Datenpfaden. Die Softwareebenen
können
eine Betriebssystem- oder eine Systemkernebene und eine Anwendungsebene
enthalten. Die Datenpfade können
einen Pfad von einem externen zu einem internen Speicher und/oder
einer CPU, einen Pfad von einem internen Speicher und/oder einer
CPU zu einer symmetrischen Maschine und einen Kanal zwischen dem
externen System und der symmetrischen Maschine beinhalten. Der Kanal
kann ein FirstIn/FirstOut (FIFO) sein. Gemäß einer Ausführungsform
der vorliegenden Erfindung enthält
die Einheit eine FIFO-Ablaufsteuereinheit. Die FIFO-Ablaufsteuereinheitstruktur
transportiert oder treibt Daten in die und aus der Verfahrensmaschine.
-
Obwohl
die vorliegende Erfindung hinsichtlich einer symmetrischen Verschlüsselungsfunktion
(z.B. DES) dargelegt wird, sei darauf hingewiesen, dass sie jede
parametrisierte Funktion mit Daten mit veränderlicher Länge berücksichtigt.
Folglich wird DES als ein Beispiel einer Ausführungsform der vorliegenden
Erfindung bereitgestellt, und unter Voraussetzung der hierin bereitgestellten
Lehre der vorliegenden Erfindung können Fachleute diese und ähnliche
Realisierungen oder Konfigurationen der vorliegenden Erfindung betrachten.
-
Mit
Bezugnahme auf 5 arbeitet die FIFO-Struktur
mit der DES/TDES-Maschine zusammen. Die vorliegende Erfindung wird
bzgl. eines Coprozessors 4758 von IBM beschrieben, insbesondere
bzgl. der Modelle 002/023 von PCI-Verschlüsselungscoprozessoren, unter
Voraussetzung der hierin bereitgestellten Lehre der vorliegenden
Erfindung können Fachleute
jedoch diese und ähnliche
Realisierungen oder Konfigurationen betrachten.
-
In
der Modell-2-Hardware unterstützt
die FIFO-Struktur außerdem
einen schnellen sicheren Hash-Algorithmus 1 (SHA-1); die Struktur
kann jedoch auf jede Verfahrensmaschine angewandt werden.
-
Für die Ein-
und Ausgabe werden zwei Paare von FIFOs 501 bis 504,
ein PCI-FIFO-Paar 501 und 502 sowie ein internes
FIFO-Paar 503 und 504 für die externe
bzw. interne Übertragung
sowie eine Steuereinheit 505 und 506 mit direktem
Speicherzugriff (DMA) für
eine CPU-freie Übertragung
in den und aus dem internen dynamischen Arbeitsspeicher (DRAM) 507 bereitgestellt.
-
Die
interne CPU 508 wählt über Steuerregister
(nicht gezeigt) aus, welche Datenpfade aktiviert werden müssen und
welchen Schlüssel,
welchen Initialisierungsvektor (IV) und welche anderen Funktionsparameter die
DES-Maschine 500 verwenden kann. Der IV wird von einem
Zufallsgenerator erzeugt, der normalerweise im Schicht-2-System
enthalten ist, und mit dem unverschlüsselten Text und dem Schlüssel verknüpft. Der Schlüssel ist
ein veränderlicher
Wert, der auf einen Block von unverschlüsseltem Text angewandt wird,
um verschlüsselten
Text zu erzeugen.
-
Zu
Konfigurationen der DES-Maschine 500 gehören extern-extern-DES für große Datenmengen
(bulk external-to-external DES) (in 8 gezeigt),
intern-intern-DES für
große
Datenmengen (Ausgabe von DMA 506 an interne Eingabe-FIFO 503 zu
DES 500, anschließend
zurück
durch interne Ausgabe-FIFO 504 und PCI-Ausgabe-FIFO 502) und DMA-Übertragung
(z.B. PCI-Eingabe-FIFO 501 an interne Eingabe-FIFO 503 zu Eingabe-DMA 505 und
von Ausgabe-DMA-Steuereinheit 506 an interne Ausgabe-FIFO 504 und
an PCI-Ausgabe-FIFO 502). Außerdem kann die DES-Hardware
in einem Umgehungsmodus (bypass mode) konfiguriert werden, in dem
das handelsübliche
Schicht-2-System die Hardware nicht verwendet.
-
Eine
Einschränkung
im System besteht darin, dass entweder beide internen FIFO-DES-Pfade
ausgewählt
werden müssen
(Massenmodus (bulk mode)) oder keiner von diesen ausgewählt werden
darf. Eine andere Einschränkung
besteht darin, dass die FIFO-Konfigurationen erst geändert werden
können,
wenn die Datenübertragung
gestoppt wird, und die die FIFOs ansteuernde Ablaufsteuereinheit überträgt Daten
synchron, bis die Ressourcen erschöpft sind.
-
Die
interne CPU 508 kann die FIFO-Hardware konfigurieren, so
dass sie Kartenanwendungen auf unterschiedliche Art und Weise unterstützt. Beispielsweise
zeigt 6 eine Konfiguration, in der die FIFOs über den
DMA Daten in die Karte bringen, zum Beispiel wenn die Hostanwendung
für die
Kartenanwendung eine SCC-Anforderung öffnet. Die Daten werden von
der PCI-Eingabe-FIFO 501 über 601 an
die interne Eingabe-FIFO 503, über 602 an die Eingabe-DMA-Steuereinheit 505 sowie über 603 und 604 an
den DRAM 507 geleitet.
-
Mit
Bezugnahme auf 7, die eine DES-Anforderung
darstellt, kann die Karte die Funktionsparameter vom DRAM 507 in
den DES-Chip 500 übertragen.
Die interne CPU 508 lädt
die Funktionsparameter über die
Leitungen 701 bis 703 aus dem DRAM 507 in
den DES-Chip 500.
-
Gemäß 8 konfiguriert
die Karte die FIFOs, so dass sie die Daten vom Host durch den DES-Chip 500 hinein-
und wieder zurück
zum Host leiten, falls es sich um eine DES-Anforderung für extern-extern-DES handelt.
Die CPU 508 kann die FIFOs 501 bis 504 so
konfigurieren, dass sie Daten über
die Leitungen 801 bis 804 vom Host durch den DES-Chip
und zurück
zum Host leiten.
-
Falls
die DES-Anforderung für
intern-intern-DES bestimmt ist und sich als zu kurz für DMA erweist, kann
die Karte außerdem
die Datenbytes manuell hindurchleiten. Die CPU 508 kann
Daten aus dem DRAM 507 über
die programmierte E/A und die Leitungen 901 bis 904 durch
die DES/TDES-Maschine treiben.
-
Wie
in 10 dargestellt wird, kann die Karte die Ergebnisse
nach der Ausführung
der SCC-Anforderung über
DMA an den Host rückübertragen.
Die interne CPU 508 kann die FIFOs so konfigurieren, dass
sie Daten aus dem DRAM 507 über DMA und die Leistungen 1001 bis 1004 an
den Host rückübertragen.
-
Eine
Basisrealisierung wurde unter Verwendung eines Modell-2-Prototyps für die folgenden
Ausführungsformen
eingerichtet. Gemäß 11 bearbeitet
die Hostanwendung jeden Vorgang 1101 und 1102 als eine
gesonderte SCC-Anforderung 1103 und 1104 mit Programmed
Input/Output- (PIO-) DES. Die Realisierung beinhaltet die Hostanwendung,
die Folgen von kurzen DES-Anforderungen
(Chiffrierschlüssel,
IV, Daten) erzeugt, und die Anwendung auf der Kartenseite. Die Anwendung
auf der Kartenseite erfasst jede Anforderung, entpackt den Schlüssel, überträgt die Daten,
den Schlüssel
und den IV an die DES-Maschine
und rücküberträgt die Ergebnisse
an den Host. Die Schlüssel
wurden über
einen Satz von Chiffrierschlüsseln
zufällig ausgewählt. Durch
das Erfassen der Schlüssel
in der Karte fiel der zusätzliche
Schritt der Entschlüsselung
des TDES-Schlüssels
weg, und die Geschwindigkeit 1602 wurde erhöht.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann die Leistungsfähigkeit für kurze DES-Vorgänge gesteigert
werden, indem die Interaktion zwischen Host und Karte verringert
wird. Mit Bezugnahme auf 12 beinhaltet
dies die stapelweise Verarbeitung einer großen Folge von kurzen DES-Anforderungen
in einer SCC-Anforderung 1201. Die Anwendung auf der Kartenseite
wurde entsprechend geändert, um
die Folge in einem Schritt zu empfangen, jeden Vorgang 1202 bis 1205 zu
verarbeiten und die verkettete Ausgabe in einem Schritt 1206 zurück an den
Host zu übertragen.
Die Anwendung der Schicht 3 ruft für jeden Vorgang 1202 und 1204 DES
auf. Die Schicht 2 führt
für jeden
Vorgang 1203 und 1205 gesondert DES aus. Die für die obigen
Bezugsdaten erhaltenen Geschwindigkeiten betrugen zwischen 18 und
23 kB/s und bis zu 40 kB/s mit der Schlüsselerfassung 1603.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung kann die Leistungsfähigkeit für kurze DES-Vorgänge gesteigert
werden 1604, indem das Zurücksetzen des DES-Chips für jeden
Vorgang wegfällt. Durch
die Erzeugung einer Folge von Anforderungen für kurze DES-Vorgänge, die
alle einen Schlüssel
verwenden, eine Richtung (entschlüsseln oder verschlüsseln) und
IVs von null aufweisen (obwohl die IVs willkürlich sein können), kann
eine Geschwindigkeit von etwa 360 kB/s erreicht werden. Die Anwendung
auf der Kartenseite empfängt
die Vorgangsfolge und überträgt diese
an das Schicht-2-System. In der Schicht 2 richtet eine geänderte DES-Verwaltungseinrichtung
(die die DES-Hardware steuernde Komponente) den Chip mit dem Schlüssel und
einem IV von null ein und sendet die Daten durch den Chip. Am Ende
jedes Vorgangs führt
die DES-Verwaltungseinrichtung eine Exklusiv-ODER-Verknüpfung (XOR) aus, um die Verkettung
aufzuheben. Zur Verschlüsselung
führt die
Software beispielsweise manuell eine Exklusiv-ODER-Verknüpfung des
letzten Blocks von chiffriertem Text aus dem vorhergehendem Vorgang
mit dem ersten Block von unverschlüsseltem Text für den Vorgang
aus, um die Exklusiv-ODER-Verknüpfung, die
der Chip ausführen
würde,
aufzuheben.
-
Gemäß dem Stapelverarbeitungsverfahren
wird neben einer Verringerung der Anzahl von Chip-Rücksetzvorgängen die
Anzahl von Kontextumschaltungen zwischen der Schicht 3 und der Schicht
2 von 0(n) zu 0(1) verringert, wobei n die Anzahl von Vorgängen im
Stapel ist. Mit Bezugnahme auf 13 wurde
gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung die Anwendung 1302 auf der Kartenseite
unter Verwendung der Einstellung mit einem Mehrfachschlüssel und
einem von null verschiedenen IV (Ergebnisse als 1603 gezeigt)
geändert,
so dass sie stapelweise verarbeitete Anforderungen 1301 an
eine geänderte DES-Verwaltungseinrichtung
(Schicht 2) 1303 und 1304 überträgt, wodurch die Anzahl von
Kontextumschaltungen verringert wird. Die Anwendung 1302 auf
der Kartenseite ruft DES für
die gestapelten Vorgänge
auf. Die geänderte
DES-Verwaltungseinrichtung 1303 und 1304 verarbeitet
jede Anforderung mit einem Chip-Rücksetzvorgang und einem neuen
Schlüssel
und einem neuen IV. Die Anforderungen werden an den Host 1305 übertragen.
Die unter Verwendung der geänderten
DES-Verwaltungseinrichtung 1303 und 1304 erhaltenen
Ergebnisse werden in 16 als 1604 gezeigt.
-
Gemäß noch einer
anderen Ausführungsform
der vorliegenden Erfindung pumpt die FIFO-Ablaufsteuereinheit Datenbytes
in einem Massenverarbeitungsmodus durch DES. Folglich bearbeitet die
CPU die Datenbytes nicht. Gemäß den früheren Verfahren
wurde jedes Byte des Chiffrierschlüssels, des IV und der Daten viele
Male bearbeitet. Die Bytes gelangten mit einer anfänglichen
SCC-Anforderung zur Pufferübertragung über FIFOs
und DMA in den DRAM. Die CPU entnimmt die Bytes aus dem DRAM und übergibt
sie dem DES-Chip. Die CPU entnimmt die Daten dem DES-Chip und leitet
sie zurück
in den DRAM. Die CPU rücküberträgt die Daten
durch die FIFOs an den Host. Dementsprechend kann der Durchsatz
durch eine Verringerung der Anzahl von Datenübertragungsvorgängen erhöht werden 1605.
Das Entpacken des Schlüssels
fällt als
integrierter Bestandteil der API weg. Jede Anwendung kann ein einmaliges
Verfahren des Entpackens aufweisen, wodurch das Entpacken der API
unnötig
wird. In jeder Anwendung endet ein Initialisierungsschritt mit einer
Schlüsseltabelle
für unverschlüsselten
Text, die sich im Einheiten-DRAM befindet. Die Vorgangslängen wurden
auf 40 Byte standardisiert. Außerdem
wurde die Hostanwendung geändert,
so dass sie Folgen von Anforderungen erzeugt, die an Stelle eines
Chiffrierschlüssels
einen Index in die interne Schlüsseltabelle
enthalten. Folglich ruft die Anwendung 1401 auf der Kartenseite
die geänderte
DMA-Verwaltungseinrichtung 1402 und 1407 auf und
stellt dieser die Schlüsseltabelle 1403 und 1408 zur
Verfügung,
anstatt die Anforderungsfolge sofort von der PCI-Eingabe-FIFO in
den DRAM zu leiten. Für
jeden Vorgang setzt die geänderte
DES-Verwaltungseinrichtung 1402 und 1407 den DES-Chip
zurück;
liest den IV und lädt
diesen in den Chip; liest und überprüft die Schlüsseltabelle,
sucht den Schlüssel
und lädt
diesen in den Chip; und liest die Datenlänge für den Vorgang. Die geänderte DES-Verwaltungseinrichtung
richtet die Ablaufsteuereinheit so ein, dass sie diese Anzahl von
Bytes durch die Eingabe-FIFOs in den DES-Chip und anschließend über die
Ausgabe-FIFOs 1404 bis 1406 und 1409 bis 1411 hinaus
leitet. Die Anwendung auf der Kartenseite beendet die Anforderung 1412. Die
Ergebnisse werden in 16 als 1605 gezeigt.
-
Gemäß einer
Ausführungsform
der vorliegenden Erfindung wurde die Anzahl von Industry Standard Architecture-
(ISA-) E/A-Befehlen
erhöht
(verdoppelt), wodurch der Durchsatz um die Hälfte verringert wurde, was
eine Korrelation zwischen den ISA-E/A-Befehlen und der Durchsatzgeschwindigkeit
zeigt. Die oben (bezüglich 1605 und 14)
beschriebene geänderte
DES-Verwaltungseinrichtung
wurde sodann geändert,
so dass sie an Stelle von ISA-E/A auf den Speicher abgebildete E/A-Anschlüsse verwendet,
wenn diese verfügbar
sind (die verwendete Hardware stellte nicht für alle Exemplare auf den Speicher
abgebildete E/A-Anschlüsse
bereit). Die Software wurde ebenfalls geändert, so dass alle störenden FIFO-Lesevorgänge, die
durch bestimmte Abfragevorgänge
der Ablaufsteuereinheit zeitweise verursacht wurden, entfallen.
Die Ergebnisse werden in 16 als 1606 gezeigt.
-
Mit
Bezugnahme auf 15 können die Parameter durch eine
Stapelverarbeitung derselben über
auf den Speicher abgebildete Vorgänge gelesen werden, wobei eine Änderung
der FIFO-Konfiguration
und der Datenverarbeitung ermöglicht
wird. Die Schicht 3 ruft DES für
die stapelweise verarbeiteten Vorgänge 1501 auf. Die
Hostanwendung stapelt die Parameter pro Vorgang in eine Gruppe 1503,
die mit den Eingabedaten verbunden ist. Die geänderte DES-Verwaltungseinrichtung
richtet die internen FIFOs und die Ablaufsteuereinheit so ein, dass
die gestapelten Parameter unter Umgehung des DES-Chip 1502 gelesen
werden; liest die gestapelten Parameter über auf den Speicher abgebildete
E/A aus der internen Ausgabe-FIFO in den DRAM 1504 und 1508;
konfiguriert die FIFOs neu; und richtet die Ablaufsteuereinheit
und den DES-Chip unter Verwendung der gepufferten Parameter so ein,
dass sie die Daten 1506 und 1510 jedes Vorgangs
aus den Eingabe-FIFOs durch den DES und anschließend zurück aus den Ausgabe-FIFOs 1505, 1507, 1509 und 1511 leiten.
Die Schicht 3 beendet die Anforderung 1512. Die Ergebnisse
werden in 16 als 1607 gezeigt.
Die Genauigkeit des Verfahrens kann erhöht werden, indem durch das
ISA-Verfahren 1608 auf
den IV und die Datenlängenregister
zugegriffen wird.
-
Die
Geschwindigkeit für
kurze DES-Vorgänge
kann gemäß dem folgenden
Zusammenhang ermittelt werden:
wobei Batches die Anzahl
von Host-Karte-Stapelverarbeitungsvorgängen (host-card
batches), Ops die Anzahl von Vorgängen pro Stapel, DataLen die
durchschnittliche Datenlänge
pro Vorgang ist und C
1, C
2 sowie
C
3 unbekannte Konstanten sind, die den Systemaufwand
pro Stapel, pro Vorgang bzw. pro Byte darstellen.
-
Es
ist hilfreich, den Systemaufwand C1 pro
Stapel durch Ändern
Interaktion zwischen dem Hosteinheitentreiber und der Schicht 2
zu beseitigen, um eine unbeschränkte
SCC-Anforderung mit einer hinzugefügten Abfrage oder Meldung zu
ermöglichen,
um anzuzeigen, wenn zusätzliche
Daten zur Übertragung
bereit sind. Der Systemaufwand C2 pro Vorgang
kann verringert werden, indem die Anzahl von Parameterübertragungen pro
Vorgang auf ein Minimum herabgesetzt wird. Beispielsweise kann die
Hostanwendung in einem Stapel von Vorgängen Parameterblöcke verschachteln,
die Parameter geltend machen, z.B. dass die nächsten N Vorgänge alle
einen bestimmten Schlüssel
verwenden.
-
Bei
diesem Verfahren muss der Schlüsselindex
nicht bei jeder Wiederholung übergeben
und gelesen werden. Ein weiteres Beispiel beinhaltet die Verarbeitung
der IVs durch die Hostanwendung vor oder nach der Übertragung
der Daten an die Karte. Dies ist kein Sicherheitsproblem, falls
die Hostanwendung zur Bereitstellung der IVs gesichert ist. Bei
diesem Verfahren müssen
die IVs nicht eingelesen und nicht geladen werden, da der DES-Chip
nach dem Rücksetzvorgang
einen Standard-IV von Null hat.
-
Gemäß einer
anderen Ausführungsform
der vorliegenden Erfindung kann der Systemaufwand pro Vorgang verringert
werden, indem die FIFOs und die Ablaufsteuereinheit neu gestaltet
werden. Indem die DES-Maschine so geändert wird, dass sie eine Dateneingabe
erwartet, die mit Daten verschachtelte Parameter enthält, kann
der Systemaufwand C2 pro Vorgang sich dem
Systemaufwand C3 pro Byte annähern. Die
Ablaufsteuereinheit bearbeitet weniger Ausgabebytes als Eingabebytes,
und die CPU steuert die Kategorie von Maschinenvorgängen, die
im zulässigen
Bereich der beispielsweise extern ausgewählten Parameter liegen. Beispielsweise
ist es der externen Instanz möglicherweise
gestattet, nur bestimmte Typen von Verschlüsselungsvorgängen auszuwählen. Außerdem kann
die CPU entscheiden, welche der von der externen Instanz ausgewählten Parameter
für die
Maschine sichtbar sind, z.B. stellt die externe Instanz einen Index
in eine interne Tabelle bereit.