DE102021130643A1 - Verbessertes umhüllen von schlüsselblöcken - Google Patents

Verbessertes umhüllen von schlüsselblöcken Download PDF

Info

Publication number
DE102021130643A1
DE102021130643A1 DE102021130643.4A DE102021130643A DE102021130643A1 DE 102021130643 A1 DE102021130643 A1 DE 102021130643A1 DE 102021130643 A DE102021130643 A DE 102021130643A DE 102021130643 A1 DE102021130643 A1 DE 102021130643A1
Authority
DE
Germany
Prior art keywords
key
data
computer
encryption
concatenated
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102021130643.4A
Other languages
English (en)
Inventor
Richard Victor Kisley
Michael Miele
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of DE102021130643A1 publication Critical patent/DE102021130643A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/088Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0637Modes of operation, e.g. cipher block chaining [CBC], electronic codebook [ECB] or Galois/counter mode [GCM]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0822Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Abstract

Aspekte der Erfindung umfassen ein Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das eine Verwendung des unverschlüsselten Schlüssels steuert. Der unverschlüsselte Schlüssel umfasst Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und einem zweiten und einem dritten 8-Byte-Abschnitt sowie einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels. Das durch einen Computer realisierte Verfahren umfasst ferner ein Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten, ein Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel, ein Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut unter Verwendung des Berechtigungsprüfungsschlüssels, ein Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten, und ein Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock zu bilden.

Description

  • HINTERGRUND
  • Die vorliegende Erfindung betrifft allgemein ein verbessertes Umhüllen (wrapping) von Schlüsselblöcken und konkreter Verfahren zum verbesserten Umhüllen von Schlüsselblöcken.
  • Bei Kryptografie handelt es sich um die Umwandlung verständlicher Informationen in eine scheinbar unverständliche Form, um Informationen vor unbefugten Dritten zu verbergen. Kryptografie wird zu verschiedenen Zwecken verwendet, zum Beispiel, um Informationen zu schützen, die über Datenübertragungsnetzwerke übertragen werden. Außerdem kann es sich hierbei um die wirtschaftlichste Möglichkeit zum Schützen gespeicherter Daten handeln. Kryptografische Prozeduren können verwendet werden, um nicht nur die Vertraulichkeit von Daten, sondern auch die Integrität von Daten zu schützen.
  • Die kryptografische Umwandlung von Daten wird gewöhnlich durch einen ausgewählten Algorithmus oder eine ausgewählte Prozedur unter der Steuerung eines Schlüssels definiert. Da der Algorithmus normalerweise öffentlich bekannt ist, hängt der Schutz der umgewandelten oder chiffrierten Daten von der Geheimhaltung des Schlüssels ab. Daher muss der Schlüssel geheim gehalten werden, um einen Gegner daran zu hindern, einfach unter Verwendung des bekannten Algorithmus und des Schlüssels die chiffrierten Daten wiederherzustellen. Der Schutz der Daten hängt daher von dem Schutz der geheimen Schlüssel ab.
  • KURZDARSTELLUNG
  • Ausführungsformen der vorliegenden Erfindung sind auf ein durch einen Computer realisiertes Verfahren zum verbesserten Umhüllen von Schlüsseln gerichtet. Ein nichteinschränkendes Beispiel des durch einen Computer realisierten Verfahrens umfasst ein Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das eine Verwendung des unverschlüsselten Schlüssels steuert. Der unverschlüsselte Schlüssel umfasst Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und einem zweiten und einem dritten 8-Byte-Abschnitt sowie einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels. Das durch einen Computer realisierte Verfahren umfasst ferner ein Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten, ein Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel, ein Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut unter Verwendung des Berechtigungsprüfungsschlüssels, ein Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten, und ein Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock zu bilden.
  • Andere Ausführungsformen der vorliegenden Ausführungsformen realisieren Merkmale des vorstehend beschriebenen Verfahrens in Computersystemen und Computerprogrammprodukten.
  • Weitere technische Merkmale und Vorteile werden durch die Techniken der vorliegenden Erfindung realisiert. Ausführungsformen und Aspekte der Erfindung werden hierin eingehend beschrieben und sind als Teil des beanspruchten Gegenstands zu betrachten. Zum besseren Verständnis siehe die ausführliche Beschreibung und die Zeichnungen.
  • Figurenliste
  • Die hierin beschriebenen Einzelheiten und ausschließlichen Rechte sind in den Ansprüchen im Anschluss an die Beschreibung in besonderer Weise hervorgehoben und eindeutig beansprucht. Die vorstehenden und andere Merkmale und Vorteile der Ausführungsformen der Erfindung werden anhand der folgenden eingehenden Beschreibung deutlich, die in Verbindung mit den beigefügten Zeichnungen zu lesen ist, wobei:
    • 1 ein CCA-Schlüssel-Token (CCA = Common Cryptographic Architecture) und ein AES-Schlüsselumhüllungs-Schlüssel-Token (AESKW-Schlüssel-Token) nach dem Advanced Encryption Standard (AES) zum AES-Umhüllen von Schlüsseln für ein CCA-Schlüssel-Token gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 2 ein System zum Umhüllen von Schlüsseln für ein CCA-Schlüssel-Token gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • die 3A bis B eine System von AESKW-Funktionen zum Umhüllen und Aufheben der Umhüllung (unwrapping) zum AES-Umhüllen von Schlüsseln bei einem CCA-Schlüssel-Token gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellen;
    • 4 ein grafisches Flussdiagramm ist, das ein Verfahren zum verbesserten Umhüllen von Schlüsseln gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 5 ein Flussdiagramm ist, das ein Verfahren zum verbesserten Umhüllen von Schlüsseln gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt;
    • 6 ein Flussdiagramm ist, das ein Verfahren zum verbesserten Aufheben der Schlüsselumhüllung gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt; und
    • 7 ein Computersystem zum Ausführen gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung darstellt.
  • Die hierin abgebildeten Schemata dienen der Veranschaulichung. Es sind viele Variationen an den Schemata oder den darin beschriebenen Operationen möglich, ohne dass diese Variationen Abweichungen vom Grundgedanken der Erfindung darstellen würden. Beispielsweise können die Aktionen in einer anderen Reihenfolge ausgeführt werden, oder es können Aktionen hinzugefügt, gelöscht oder modifiziert werden. Außerdem beschreiben der Begriff „verbunden“ und Variationen davon ein Vorliegen eines Datenaustauschweges zwischen zwei Elementen und schließen nicht stillschweigend eine direkte Verbindung zwischen den Elementen ohne zwischengeschaltete Elemente/Verbindungen zwischen ihnen ein. Alle diese Variationen werden als Teil der Beschreibung betrachtet.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen der vorliegenden Erfindung stellen ein System bereit, bei dem Schlüsselblock- und Umhüllungsverfahren mit einer Integritätsprüfung und einer Schlüsselverschleierung verbessert werden. Die Integritätsprüfung schließt einen Offset der 64-Byte-Struktur ein, die jetzt einen Nachrichten-Berechtigungsprüfungscode enthält, der auf einer 8-Byte-Chiffre gemäß dem Triple Data Encryption Standard beruht (triple data encryption standard cipher-based message authentication code, TDES-CMAC). Die Schlüsselverschleierung ist dadurch gekennzeichnet, dass alle drei Abschnitte des Schlüsselblocks, die zum Speichern der 8-Byte-Abschnitte von verschlüsseltem Schlüsselmaterial verwendet werden, stets mit verschlüsselten Daten belegt sind, wodurch die wahre Länge des Schlüssels verborgen wird. Das Umhüllungsverfahren ist dadurch gekennzeichnet, dass der Steuervektor in den Umhüllungsschlüssel nicht mehr XODER-verknüpft wird, ein CMAC über alle Bytes des Schlüsselblocks mit dem unverschlüsselten Schlüsselmaterial als Integritätsprüfung berechnet und danach bei Offset 40 abgelegt wird, die drei Abschnitte des Schlüssels unter Verwendung von SHA-256 und XODER miteinander verkettet und die drei Abschnitte des Schlüssels immer verschlüsselt und dann wieder zurück in dem Token abgelegt werden, wobei immer ein 24-Byte-Raum verwendet wird.
  • Zur Erinnerung: Bei einem Steuervektor handelt es sich um eine Datenstruktur, die ein oder mehrere Felder mit vordefinierten Werten umfasst, die zusammen die vorgesehene Verwendung eines kryptografischen Schlüssels beschreiben, dem er zugehörig ist. Der Steuervektor wird zum Zeitpunkt der Schlüsselerstellung durch den Urheber des Schlüssels angegeben. Bei einem Common-Cryptographic-Architecture-Schlüssel-Token (CCA-Schlüssel-Token) sind die Schlüsselattribute in dem Steuervektor gespeichert, der nicht verschlüsselt ist. Ein CCA-Schlüssel kann unter Verwendung einer anderen Art von Verschlüsselung, zum Beispiel AES-Umhüllen von Schlüsseln (AES key wrapping, AESKW), umhüllt werden, um ein AESKW-Schlüssel-Token zu erzeugen, das den CCA-Schlüssel und dessen Attribute enthält. AESKW ist in dem Standard X9.102 des American National Standards Institute (ANSI) definiert. In dem entstandenen AESKW-Schlüssel-Token sind einige Attribute, die in dem Steuervektorabschnitt eines CCA-Schlüssel-Tokens nicht verschlüsselt sind, in einen verschlüsselten Abschnitt eines AESKW-Schlüssel-Token verschoben. Diese Attribute sind von dem Steuervektor getrennt, sodass einige Attribute aus dem Steuervektor an den Schlüssel gebunden, aber nicht verschlüsselt sind, während andere Attribute zusammen mit dem Schlüssel selbst verschlüsselt sind. Bei verschiedenen Ausführungsformen kann eine geeignete Art von Verschlüsselung verwendet werden, um einen CCA-Schlüssel zu umhüllen.
  • Schlüssel sind im Allgemeinen verschlüsselt, wenn sich die Schlüssel außerhalb einer geschützten Umgebung befinden. Verschlüsselte Schlüssel werden in einer geschützten Datenstruktur mitgeführt, die als Schlüssel-Token oder Schlüsselblock (im Folgenden als Schlüssel-Token) bezeichnet wird. Ein AESKW-Schlüssel-Token enthält zwei Bereiche: Schlüsseldaten, die verschlüsselt sind, um den Schlüssel geheim zu halten; und Attribute, die zum Schutz vor Abänderung kryptografisch an den Schlüssel gebunden sind, aber nicht verschlüsselt sind und nicht geheim sein müssen. Ein CCA-Schlüssel-Token umfasst einen gebundenen, aber nicht verschlüsselten Steuervektor, einen Flag-Bereich, der weder verschlüsselt noch gebunden ist, und verschlüsselte Schlüsseldaten.
  • Ein älterer CCA-Schlüssel, der bei verschiedenen Ausführungsformen einen DES-Schlüssel (DES = data encryption standard) oder einen Dreifach-Schlüssel (TDES-Schlüssel) (TDES = triple DES) mit doppelter oder dreifacher Länge umfassen kann, kann zum Transport in ein AES-geschütztes Token exportiert werden, und das AES-geschützte Token kann zur Verwendung auf dem empfangenden System in das TDES-Format importiert werden. Der CCA-Schlüssel bei dem Empfangssystem entspricht dem CCA-Schlüssel auf dem sendenden System; der Schlüssel und die Attribute in dem CCA-Schlüssel auf einem importierenden System können mit dem CCA-Schlüssel auf einem exportierenden System mit der Ausnahme systemabhängiger Werte identisch sein. Beim Verschlüsseln unter Verwendung symmetrischer Schlüsseltechniken werden CCA-Schlüssel unter Verwendung anderer CCA-Schlüssel verschlüsselt, die als Schlüsselverschlüsselungsschlüssel (key encrypting keys, KEKs) bekannt sind. Der AES-Verschlüsselungsalgorithmus ist jedoch stärker als TDES, daher kann das Umhüllen älterer CCA-Schlüssel mit KEKs durchgeführt werden, um die Sicherheit der CCA-Schlüssel zu verstärken.
  • Bei einem DES- oder TDES-Schlüssel handelt es sich bei dem Steuervektor um eine Abfolge von Bits, die mit der Länge des Schlüssels selbst identisch sind, zum Beispiel entweder 8 oder 16 Bytes. Zum Beispiel sind bei einem 16-Byte-Steuervektor die zweiten 8 Bytes mit den ersten 8 Bytes mit der Ausnahme eines als Schlüsselformfeld bezeichneten Feldes identisch, das sie als zweiten Teil eines (16-Byte-)Steuervektors doppelter Länge kennzeichnet. Der Steuervektor besteht aus einer Anzahl von Bitfeldern unterschiedlicher Längen. Jedes Bitfeld enthält Werte, die Attribute des Schlüssels angeben, und die Steuervektorfelder werden durch die CCA-Firmware geprüft, um zu ermitteln, ob der Schlüssel infrage kommt, bei einer angeforderten Operation verwendet zu werden. Viele Bits in dem Steuervektor sind polymorph, was bedeutet, dass sich die Definition je nach der Gesamt-Schlüsselart ändert, die durch Felder mit festen Definitionen in dem Steuervektor angegeben ist. Verschiedene Arten von Informationen können zu einem Steuervektor eines CCA-Schlüssels codiert werden, wie z.B. die Schlüssellänge und die Schlüsselart sowie die Unterart, die die Operationen definiert, für die der Schlüssel verwendet werden kann, wie z.B.: Verschlüsseln/Entschlüsseln von Daten; Berechnen/Überprüfen von Nachrichten-Berechtigungsprüfungscodes; Verschlüsseln anderer Schlüssel (KEKs); Schützen von finanziellen persönlichen Identifikationsnummern (PINs); Ableiten anderer Schlüssel; und/oder Berechnen von Werten zur Überprüfung von Kreditkarten. Ein Exportsteuerfeld in dem Steuervektor gibt an, ob der Schlüssel in ein anderes System exportiert werden kann. Bei den meisten Schlüsselarten umfasst der Steuervektor ein oder mehrere Felder, die bestimmte Operationen auf unteren Ebenen angeben, für die der Schlüssel verwendet werden kann, oder bestimmte Datenformate, für die der Schlüssel verwendet werden kann. Die Schlüssellänge kann durch ein Drei-Bit-Schlüsselformfeld in dem Steuervektor des CCA-Tokens angegeben werden.
  • Der AESKW-Prozess verschlüsselt den zu umhüllenden Schlüssel, verschlüsselt aber die zugehörigen Daten für diesen Schlüssel nicht. Die zugehörigen Daten werden kryptografisch an den Schlüssel gebunden, sodass beliebige Änderungen erkannt werden können, aber die zugehörigen Daten werden mit dem Schlüssel in Klartextform (unverschlüsselt) transportiert. Somit werden Informationen, die die Sicherheit verringern können, wenn ihr Wert offenbart wird, nicht in den zugehörigen Daten abgelegt. Attribute, die keine Schäden dadurch verursachen, dass sie in Klartext vorkommen (und die manchmal sichtbar sein müssen, ohne das Schlüssel-Token zu entschlüsseln), werden in den zugehörigen Daten mitgeführt, während diejenigen, die aus Sicherheitsgründen geheim sein müssen, in der verschlüsselten Nutzlast mitgeführt werden. Während des Umhüllens eines CCA-Schlüssels in AESKW-Form werden Angaben über die Schlüssellänge aus dem Klartext-Steuervektor in das CCA-Token verschoben und in der verschlüsselten Nutzlast des AESKW-Tokens abgelegt. Dies ermöglicht, die Stärke eines kryptografischen Schlüssels zu verbergen, wenn der Schlüssel in Token-Form verschlüsselt ist; da kürzere Schlüssel leichter anzugreifen sind, erleichtert eine Kenntnis der Länge eines Schlüssels einem Angreifer, die einfachsten Schlüssel auszuprobieren und zu durchbrechen.
  • Nunmehr unter Bezugnahme auf 1 sind dort ein CCA-Schlüssel-Token 100 und ein AESKW-Schlüssel-Token 104 zum AES-Umhüllen von Schlüsseln für einen CCA-Schlüssel gezeigt. Das CCA-Schlüssel-Token 100 kann bei verschiedenen Ausführungsformen einen DES- oder einen TDES-Schlüssel umfassen und umfasst Schlüsseldaten 101, einen Steuervektor 102 und Flags 103. Die Schlüsseldaten 101 enthalten den Schlüssel selbst und werden zum Transport verschlüsselt, sodass die Schlüsseldaten 101 geheim gehalten werden, sind aber nicht verschlüsselt, wenn das CCA-Schlüssel-Token 100 auf einem sicheren System wie z.B. einem Hardwaresicherheitsmodul (HSM) gespeichert ist. Der Steuervektor 102 enthält zusätzliche Attribute und Informationen bezüglich des Schlüssels in den Schlüsseldaten 101 in dem CCA-Schlüssel-Token 100 und wird zum Transport nicht verschlüsselt, ist aber an das CCA-Schlüssel-Token 100 gebunden, um die Daten im Steuervektor 102 vor Abänderung zu schützen. Der Steuervektor 102 besteht aus einem ersten Satz von Feldern CV1 102A, die sicherheitskritisch sind und geheim gehalten werden müssen sowie eine Länge des Schlüssels umfassen können, und aus einem zweiten Satz von Feldern CV2 102B, die sicherheitskritisch sind und vor Abänderung geschützt werden, aber nicht geheim gehalten werden müssen. Flags 103 sind nicht verschlüsselt oder gebunden und enthalten nichtsicherheitskritische Informationen bezüglich des CCA-Schlüssel-Tokens 100. Das AESKW-Schlüssel-Token 104 umfasst verschlüsselte Schlüsseldaten 105, die zusätzlich zu anderen Informationen bezüglich des Schlüssels den Schlüssel selbst enthalten, und ist verschlüsselt. Die zugehörigen Daten 106 sind an das AESKW-Schlüssel-Token 104 gebunden, aber nicht verschlüsselt. Um das CCA-Schlüssel-Token 100 unter Verwendung von AES zu umhüllen, werden die Schlüsseldaten 101 unter Verwendung von AES in verschlüsselten Schlüsseldaten 105 verschlüsselt. Die Felder in CV1 102A in dem Steuervektor 102, die zum Beispiel eine Schlüssellängenangabe für das CCA-Schlüssel-Token 100 umfassen können, sind in den verschlüsselten Schlüsseldaten 105 mit den Schlüsseldaten 101 verschlüsselt. Die Felder CV2 102B in dem Steuervektor 102 werden verwendet, um die gebundenen, aber nicht verschlüsselten zugehörigen Daten 106 zu erstellen. Ferner sind die nicht-gebundenen Flags 103 in dem CCA-Schlüssel-Token 100 an das AESKW-Schlüssel-Token in den zugehörigen Daten 106 gebunden. CV2 102B und Flags 103 können bei einigen Ausführungsformen außerdem getrennt von dem AESKW-Schlüssel-Token 104 aus einem exportierenden System zu einem importierenden System übertragen werden. Bei verschiedenen Ausführungsformen können beliebige geeignete Felder aus dem Steuervektor 102 in CV1 102A oder CV2 102B enthalten sein.
  • Zusätzliche Layout-Informationen für einige Ausführungsformen der Schlüsseldaten 101, des Steuervektors 102, der Flags 103, der verschlüsselten Schlüsseldaten 105 und der zugehörigen Daten 106 sind verfügbar. Die Flags 103 können 1 Byte groß sein und somit bei einigen Ausführungsformen acht 1-Bit-Flags unterstützen.
  • 2 veranschaulicht eine Ausführungsform eines Systems 200 zum AES-Umhüllen von Schlüsseln für ein CCA-Schlüssel-Token. Das System 200 umfasst ein exportierendes System 201 und ein importierendes System 206, die jeweils eine beliebige Art von Computersystem umfassen können, unter anderem einen Prozessor und einen Hauptspeicher. Ein CCA-Schlüssel-Token 202A, das die Felder, die in Bezug auf das CCA-Schlüssel-Token 100 von 1 gezeigt sind, und einen Steuervektor wie z.B. den Steuervektor 102 umfasst, ist in einem HSM 207 auf dem exportierenden System 201 gespeichert. Um das CCA-Schlüssel-Token 202A zu exportieren, umhüllt das exportierende System 201 das CCA-Schlüssel-Token 202A unter Verwendung einer Schlüsselexportfunktion 203, die sich ebenfalls in dem HSM 207 befindet und nachstehend in Bezug auf 3A näher erörtert wird, um ein AESKW-Schlüssel-Token 204 zu erzeugen. Das AESKW-Schlüssel-Token 204 wird zum Transport verschlüsselt und umfasst die in Bezug auf das AESKW-Schlüssel-Token 104 von 1 gezeigten Felder und wird über ein Netzwerk 209 zum importierenden System 206 übertragen. Bei dem Netzwerk 209 kann es sich um eine beliebige Art von Verbindung zwischen dem exportierenden System 201 und dem importierenden System 206 handeln. Das AESKW-Schlüssel-Token 204 wird durch das importierende System 206 über das Netzwerk 209 empfangen. Das importierende System 206 verwendet eine Schlüsselimportfunktion 205, die sich in einem HSM 208 befindet und in Bezug auf 3B nachstehend ausführlicher erörtert wird, um die Umhüllung des AESKW-Schlüssel-Tokens 204 aufzuheben und ein CCA-Schlüssel-Token 202B zur Verwendung auf dem importierenden System 206 zu erzeugen. Das CCA-Schlüssel-Token 202B wird bei einigen Ausführungsformen auf dem importierenden System 206 sicher im HSM 208 gespeichert und entspricht dem CCA-Schlüssel-Token 202A auf dem exportierenden System 201. Bei anderen Ausführungsformen wird das CCA-Schlüssel-Token 202B verschlüsselt und auf dem importierenden System 208 außerhalb des HSM 208 gespeichert. Das CCA-Schlüssel-Token 202B kann zum Beispiel zur Datenübertragung zwischen dem exportierenden System 201 und dem importierenden System 206 oder zur Überprüfung sensibler Daten wie z.B. von persönlichen Identifikationsnummern (PINs) auf dem importierenden System 206 verwendet werden.
  • 3A veranschaulicht eine Ausführungsform einer Schlüsselexportfunktion 300A, die eine Schlüsselexportfunktion 203 von 2 umfassen kann und in Bezug auf die 1 und 2 erörtert wird. Die Schlüsselexportfunktion 300A kann bei einigen Ausführungsformen in einem HSM 207 im exportierenden System 201 realisiert sein. Die Schlüsselexportfunktion 300A empfängt unverschlüsselte Schlüsseldaten 101 und CV1 102A vom Steuervektor 102 im CCA-Schlüssel-Token 100/202 als Schlüssel und CV1 303. CV2 102B und Flags 103 werden durch die Schlüsselexportfunktion 300A als CV2 und Flags 301 empfangen, und ein Hash von CV2 und Flags 301 wird aus der Hash-Funktion 302 in eine AESKW-Umhüllung 304 eingegeben. Bei einigen Ausführungsformen kann die Hash-Funktion 302 den CV2 und die Flags 301 unter Verwendung einer Hash-Funktion mit einem sicheren Hash-Algorithmus (SHA-256) komprimiert werden, die einen Wert bereitstellt, der kurz genug zur Eingabe in die AESKW-Umhüllung 304 ist. Bei einigen Ausführungsformen kann die Hash-Funktion 302 weggelassen werden, und CV2 und Flags 301 können direkt in die AESKW-Umhüllung 304 eingegeben werden, um die zugehörigen Daten 106 zu erstellen. Der Schlüssel und der CV1 303 werden durch die AESKW-Umhüllung 304 unter Verwendung eines AES-KEK 305 verschlüsselt, um verschlüsselte Schlüsseldaten 105 eines umhüllten Schlüsselblocks 306 zu erzeugen, der wie in 1 gezeigt ein AESKW-Schlüssel-Token 104 umfasst. CV2 und Flags 301 werden nicht verschlüsselt, aber der Hash des CV2 und der Flags 301 sind als zugehörige Daten 106 im umhüllten Schlüsselblock 306 enthalten. CV2 und Flags 301 werden außerdem durch Einbeziehung von Bindeinformationen in den umhüllten Schlüsselblock 306 an den umhüllten Schlüsselblock 306 gebunden. CV2 und Flags 301 werden außerdem als verschlüsselter Klartext zusammen mit dem umhüllten Schlüsselblock 306 vom exportierenden System 201 zum importierenden System 206 übertragen. Das Binden von CV2 und Flags 301 an den umhüllten Schlüsselblock 306 stellt sicher, dass beliebige Änderungen an dem CV2 und den Flags 301 erkannt werden, die zum Beispiel während der Übertragung aufgetreten sein können.
  • 3B veranschaulicht eine Ausführungsform einer Schlüsselimportfunktion 300B, die eine Schlüsselimportfunktion 205 von 2 umfassen kann und in Bezug auf die 1 und 2 erörtert wird. Die Schlüsselimportfunktion 300B kann bei einigen Ausführungsformen in einem HSM 208 im importierenden System 206 realisiert sein. Die Schlüsselimportfunktion 300B empfängt ein AESKW-Schlüssel-Token 104/204, das den umhüllten Schlüsselblock 306 sowie den Klartext-CV2 und die Flags 301 umfasst, die die zugehörigen Daten 106 umfassen. Für CV2 und Flags 301 werden durch eine Hash-Funktion 307 Hashes berechnet und zusammen mit dem umhüllten Schlüsselblock 306 in eine AESKW-Umhüllungsaufhebung 308 eingegeben. Die Hash-Funktion 307 kann weggelassen werden, und CV2 und Flags 301 können direkt in die AESKW-Umhüllungsaufhebung 308 eingegeben werden. Der umhüllte Schlüsselblock 306 wird durch die AESKW-Umhüllungsaufhebung 308 unter Verwendung eines AES-KEK 309 entschlüsselt und als Schlüssel und CV1 303 ausgegeben. Die AESKW-Umhüllungsaufhebung 308 ermittelt außerdem auf der Grundlage des Hash von CV2 und Flags 301 sowie der Bindeinformationen, die in dem umhüllten Schlüsselblock 306 enthalten sind, ob CV2 und Flags 301 während des Transports abgeänderten wurden. Wenn festgestellt wird, dass CV2 und Flags 301 nicht abgeändert wurden, wird an einem Gültig/Ungültig-Ausgang 310 ein Gültig-Flag ausgegeben, und der empfangene Schlüssel kann durch auf dem importierenden System 206 empfangen werden; anderenfalls wird am Gültig/Ungültig-Ausgang 310 ein Ungültig-Flag ausgegeben und der empfangene Schlüssel wird nicht verwendet; bei anderen Ausführungsformen gibt die AESKW-Umhüllungsaufhebung 308 Schlüssel und CV1 303 auf der Grundlage eines Ungültig-Flags möglicherweise nicht aus. Der Schlüsselabschnitt von Schlüssel und CV1 303 umfasst unverschlüsselte Schlüsseldaten 101 von 1; CV1 (aus Schlüssel und CV1 303) und CV2 (aus CV2 und Flags 301) zusammen umfassen den Steuervektor 102 von 1, und die Flags aus CV2 und Flags 301 umfassen Flags 103 eines CCA-Schlüssel-Tokens 100/202.
  • In einigen Fällen wurde beobachtet, dass ein mangelnder Integritätsschutz des CV und ein Unvermögen zum Verschleiern einer Schlüssellänge vorliegen können.
  • Ein oder mehrere Ausführungsformen der vorliegenden Erfindung behandeln einen oder mehrere der vorstehend beschriebenen Menge des Standes der Technik durch Bereitstellen eines Verfahrens zum verbesserten Umhüllen von Schlüsseln (WRAPENH3), das einen Integritätsschutz des CV und eine Schlüssellängenverschleierung bereitstellt.
  • Die nachstehenden Abschnitte beziehen sich auf eine Struktur eines DES-Schlüssel-Tokens, die mit Aktualisierungen für WRAPENH3 gezeigt ist.
    typedef struct_des_key_token_structure {} des_key_token_structure
    Offset Länge Feld Kommentar/Definitionen
    0 1 UCHAR tokenFlag Intern/extern #Werte definieren:
    EMPTY_TOKEN_FLAG 0x00
    INTERNAL_TOKEN_FLAG 0x01
    EXTERNAL_TOKEN_FLAG 0x02
    1 1 UCHAR reservedl Reserviert
    2 2 UCHAR Oldmkvp[2] MK-Überprüfungsmuster
    4 1 UCHAR version Versionsnummer #Werte definieren:
    1. INTERNAL_VERSION_NUMBER 0x00
    a. unterstützt UMHÜLL.-VERBESS.
    b. nur interne Version bei WRAPENH2
    c. nur interne Version bei WRAPENH3
    2. INTERNAL_VERSION_NUMBER_TDES 0x01
    3. INTERNAL_VERSION_NUMBER_3 0x03
    4. INTERNAL_VERS!ON_NUMBER_AES 0x04
    5. EXTERNAL_VERSION_NUMBER 0x00
    a. unterstützt UMHÜLL.-VERBESS.
    b. nur externe Version bei WRAPENH2
    c. nur externe Version bei WRAPENH3
    6. EXTERNAL_VERSION_NUMBER_1 0x01
    7. EXTERNAL_RKX_VERSION_NUMBER 0x10
    5 1 UCHAR reserved2 Reserviert
    6 1 UCHAR flags (FLAGS-1) Byte des Schlüssel-Token-Flags #Werte definieren:
    MASK_KEY 0x80 // verschlüsselter Schlüssel &
    MKVP vorhanden
    MASK_CV 0x40 // CV im Token wurde
    angewendet
    S390-ONLY :: MASK_NOCV 0x20 // zur Verarbeitung ohne CV verwendeter KEK
    MASK_AKEK 0x10 // ANSI-KEK (AKEK)
    MASK_AKEK_DOUBLE 0x08 // AKEK ist Schlüssel mit doppelter Länge
    MASK_AKEK_PART_NOTARIZED 0x04 // AKEK ist teilweise beglaubigt
    MASK_ANSI_PARTIAL_KEY 0x02 // Schlüssel ist ein ANSI-Teilschlüssel
    MASK_XPORT_PROHIB 0x01 // Export untersagen, wenn Bit 0b1 lautet
    7 1 UCHAR flags2 (FLAGS-2) Byte des Schlüssel-Token-Flags 2 #Werte definieren:
    1. Bits 0 bis 2: Umhüllungsverfahren:
    a. ‚000xxxxx‘ WRAP_TK_LEGACY = 0,
    i. ECB/älteres Verfahren
    b. ‚001xxxxx‘ WRAP_TK_ENH_ CBC = 1,
    i. Schlüssel mit SHA-1 verketten, SHA-256-KDF -> KEK, Variante KEK, CBC-Verschlüsselung
    c. ‚010xxxxx‘ WRAP_TK_ENH_2 = 2,
    i. Schlüssel mit SHA-256 verketten, SHA-256-KDF -> KEK, Variante KEK, CBC-Verschlüsselung
    d. ‚011xxxxx‘ WRAP_TK_ENH_3 = 3,
    i. Schlüssel mit SHA-256 verketten,
    SHA-256-KDF -> MAC-Schlüssel, TDES-CMAC, SHA-256-KDF -> KEK, CBC-Verschlüsselung
    2. Bits 3 bis 5: ‚xxx000xx‘ reserviert
    3. Bit 6: ‚xxxxxxlx‘ für älteren Fall verwendet
    a. Bei Code vor 2009 war nicht klar, wie dies verwendet wird, es wird aber geprüft.
    4. Bit 7: ‚xxxxxxx0‘ reserviert
    8 8 UCHAR mkvp[8] (KEKVP) KEK- oder MK-Überprüfungsmuster
    16 8 UCHAR keyLeft[8] (K1) linker 8-Byte-Schlüssel (erster bzw. Schlüssel 1)
    24 8 UCHAR keyRight[8] (K2) rechter 8-Byte-Schlüssel (mittlerer bzw. Schlüssel 2) Bei WRAPENH3 enthält dieses Feld stets Chiffriertext, um die Länge eines Schlüssels mit einfacher oder doppelter Länge zu verschleiern.
    32 8 UCHAR cvBase[8] (CV1) CV-Basis Bei WRAPENH3 enthält dieses Feld eine Aktualisierung der Schlüsselformbits (Bits 40 bis 42). Diese Bits haben stets den Wert ,011', der einen Schlüssel mit dreifacher Länge, aber ohne garantierte eindeutige Hälften anzeigt.
    40 8 UCHAR CMAC[8] (CV2) Bei WRAPENH3 enthält dieses Feld einen 8-Byte-TDES-CMAC über den gesamten Schlüsselblock, wobei dieses Feld vor der Berechnung des TDES-CMAC auf 0x00-Bytes gesetzt wird.
    48 8 UCHAR keyThird[8] (K3) dritter 8-Byte-Schlüssel (letzter/Schlüssel 3) Bei WRAPENH3 enthält dieses Feld stets Chiffriertext, um die Länge eines Schlüssels mit einfacher oder doppelter Länge zu verschleiern.
    56 3 UCHAR reserved6[3] Reserviert
    59 1 UCHAR tokenmarks (TM) Token-Markierungen
    #Werte definieren:
    TM_KEY_LENGTH_SINGLE 0x00
    TM_KEY_LENGTH_DOUBLE 0x10
    TM_KEY_LENGTH_TRIPLE 0x20
    TM_CDMF_DATA 0x80
    TM_CDMF_KEK 0x80
    TM_DES_DATA 0x00
    TM_SYSTEM_DEFAULT_KEK 0x00
    TM_DES_KEK 0x40
    TM_KEY_LENGTH_MASK 0x30
    TM_TOKEN_MARKS_MASK 0xC0
    TM_TOKEN_MARKS_SINGLE_MASK 0xCF
    TM_RESERVED 0x0F
    60 4 uint32_t tvv (TVV) Token-Validierungswert
  • Die CCA-Kryptografiebefehle bilden einen vollständigen, konsistenten und sicheren Befehlssatz, der innerhalb manipulationsbeständiger Hardware ausgeführt wird. Die Kryptografiebefehle verwenden einen Satz aus eindeutigen DES-Schlüsseltypen, die ein sicheres Kryptografiesystem bereitstellen, das viele Angriffe blockiert, die gegen das System gerichtet sein können. CCA-Realisierungsformen verwenden einen Steuervektor, um DES-Schlüssel mit fester Länge in unterschiedliche Schlüsselarten zu trennen und die Verwendung eines Schlüssels weiter einzuschränken. Bei einem Steuervektor handelt es sich um einen nicht-geheimen Wert, der in Klartext in dem DES-/TDES-Schlüssel-Token zusammen mit dem unverschlüsselten Schlüssel mitgeführt wird, den er angibt.
  • Ein CV wird durch das Schlüsselblock-Umhüllungsverfahren einem DES-/TDES-Schlüssel kryptografisch zugeordnet. Dies bindet den CV dauerhaft an den Schlüssel, der in dem Schlüsselblock umhüllt ist. Beliebige Änderungen an dem ursprünglichen Steuervektor würden dazu führen, dass aus der Integritätsprüfverarbeitung des Prozesses zum Aufheben der Umhüllung ein Fehler zurückgegeben wird.
  • Nachdem ein DES-Schlüssel chiffriert ist, kann der Urheber des Schlüssels sicherstellen, dass die beabsichtigte Verwendung des Schlüssels erhalten bleibt, indem der Schlüsselverschlüsselungsschlüssel nur einem System übergeben wird, das die Ausgestaltung des CCA-Steuervektors realisiert und das durch eine auditierte Organisation verwaltet wird.
  • Prüfen eines DES-Steuervektors vor dem Verarbeiten eines kryptografischen Befehls.
  • Bevor eine kryptografische CCA-Einrichtung einen Befehl verarbeitet, der einen DES-/TDES-Schlüssel verwendet, prüft die Logik der Einrichtung den Steuervektor, der dem Schlüssel zugehörig ist. Der Steuervektor muss eine gültige Schlüsselart für den angeforderten Befehl angeben und beliebige Einschränkungsbits (Schlüsselverwendungsbits) des Steuervektors müssen für den Befehl entsprechend gesetzt sein. Wenn der Befehl eine Verwendung des Steuervektors zulässt, hebt die kryptografische Einrichtung die Umhüllung des Schlüssels auf und verwendet den Schlüssel zum Verarbeiten des Befehls.
  • Der Steuervektor enthält Abschnitte für diese Zwecke: allgemeine Schlüsselverwaltung und Schlüsselart- und Schlüsselverwendungsteuerung. Zur allgemeinen Schlüsselverwaltung enthalten diese Bytes Steuerbits, die für mehrere Schlüsselarten wie z.B. Import/Export des Schlüssels gelten. Zur Schlüsselart- und Schlüsselverwendungsteuerung geben diese Bytes an, für welche Dienste und Operationen der Schlüssel verwendet werden kann.
  • CV-Bytes zur allgemeinen Schlüsselverwaltung
  • Das Bit XPRTCPAC (Bit 59) steuert den Export von TDEA unter Verwendung eines systeminternen Dienstes und lautet in der Standardeinstellung ,0', die den Export nicht zulässt. Zu beachten ist die Nummerierung ,Byte 0 ... Byte 7' am Anfang. Die Aufschlüsselung jedes Bytes für Schlüsselart und -verwendung lautet in allgemeinen Begriffen ausgedrückt: Byte 0: Berechnungs-/Verfahrensbits, auf bestimmte Schlüsselarten anwendbar, Byte 1: Schlüsselart und -unterart, Byte 2: Verwendungs- oder Dienststeuerbits, zusammen mit Exportsteuerbits und den Bits in den Positionen 16 bis 22 und 33 bis 37 haben im Allgemeinen bei jeder Schlüsselklasse unterschiedliche Bedeutungen.
  • CV-Bytes für Schlüsselart/Schlüsselverwendung
  • Die nachstehende Tabelle zeigt die Standardeinstellungen der CV-Bytes für die Schlüsselarten, wenn diese erzeugt oder importiert werden. Die linke Hälfte und die rechte Hälfte sind dargestellt.
    Art CV Beschreibung
    Schlüsselverschlüsselungssechlüssel
    EXPORTER 00 41 7D 00 03 41 00 A0 00 41 7D 00 03 2100 A0 Zum Verschlüsseln eines Schlüssels verwendet, der aus diesem lokalen Knoten entnommen wurde.
    IKEYXLAT 00 42 42 00 03 4100 A0 00 42 42 00 03 2100 A0 Zum Entschlüsseln eines Eingabe-Schlüssel-Tokens in einem Schlüsselumsetzungsdienst verwendet, der ein externes Eingabe-Schlüssel-Token unter einem IKEYXLAT-KEK entschlüsselt, danach das Schlüsselmaterial als neues externes Ausgabe-Schlüssel-Token unter einem OKEYXLAT-KEK verschlüsselt.
    IMPORTER 00 42 7D 00 03 41 00 A0 00 42 7D 00 03 2100 A0 Zum Entschlüsseln eines Schlüssels verwendet, der in diesen lokalen Knoten eingebracht wurde.
    OKEYXLAT 00 41 42 00 03 4100 A0 00 41 42 00 03 2100 A0 Zum Verschlüsseln eines Ausgabeschlüssels in einem Schlüsselumsetzungsdienst verwendet, der ein externes Eingabe-Schlüssel-Token unter einem IKEYXLAT-KEK entschlüsselt, danach das Schlüsselmaterial als neues externes Ausgabe-Schlüssel-Token unter einem OKEYXLAT-KEK verschlüsselt.
    Datenschutzschlüssel
    CIPHERXI 00 0C 50 00 03 C0 00 A0 00 0C 50 00 03 A0 00 A0 Zum Entschlüsseln von Chiffriertext während der Textumsetzung aus 1 Chiffrierschlüssel in einen weiteren Chiffrierschlüssel verwendet.
    CIPHERXO 00 0C 60 00 03 C0 00 A0 00 0C 60 00 03 A0 00 A0 Zum Verschlüsseln von Chiffriertext während der Textumsetzung aus 1 Chiffrierschlüssel in einen weiteren Chiffrierschlüssel verwendet.
    CIPHERXL 00 0C 71 00 03 C0 00 A0 00 0C 71 00 03 A0 00 A0 Zum Entschlüsseln oder Verschlüsseln von Chiffriertext während der Textumsetzung verwendet.
    CIPHER 00 03 71 00 03 4100 A0 00 03 71 00 03 2100 A0 Nur zum Verschlüsseln oder Entschlüsseln von Daten verwendet.
    DATAC 00 00 71 00 03 41 00 A0 00 00 71 00 03 21 00 A0 Nur zum Verschlüsseln oder Entschlüsseln von Daten verwendet.
    DECIPHER 00 03 50 00 03 4100 A0 00 03 50 00 03 2100 A0 Nur zum Entschlüsseln von Daten verwendet.
    ENCIPHER 00 03 60 00 03 4100 A0 00 03 60 00 03 2100 A0 Nur zum Verschlüsseln von Daten verwendet.
    Datenintegritätsschlüssel
    DATAM 00 00 4D 00 03 41 00 A0 0000 4D 0003 2100 A0 Zum Erzeugen oder Überprüfen eines MAC verwendet.
    DATAMV 00 00 44 00 03 4100 A0 00 00 44 00 03 2100 A0 Zum Überprüfen eines MAC-Codes verwendet; kann nicht bei der MAC-Erzeugung verwendet werden
    MAC 00 05 4D 00 03 41 00 A0 0005 4D 0003 2100 A0 Zum Erzeugen oder Überprüfen eines MAC verwendet.
    MACVER 00 05 44 00 03 4100 A0 00 05 44 00 03 2100 A0 Zum Überprüfen eines MAC-Codes verwendet; kann nicht bei der MAC-Erzeugung verwendet werden
    PIN-Verarbeitungsschlüssel
    IPINENC 00 21 5F 00 03 41 00 A0 00 21 5F 00 03 2100 A0 Verschlüsselungsschlüssel für eingehende PINs, zum Entschlüsseln eines PIN-Blocks verwendet.
    OPINENC 00 24 77 00 03 4100 A0 00 24 77 00 03 2100 A0 Verschlüsselungsschlüssel für ausgehende PINs, zum Verschlüsseln eines PIN-Blocks verwendet
    PINGEN 00 22 7E 00 03 4100 A0 00 22 7E 00 03 2100 A0 Zum Erzeugen und Überprüfen von PIN-Werten verwendet.
    PINVER 00 22 42 00 03 4100 A0 00 22 42 00 03 2100 A0 Zum Überprüfen, aber nicht zum Erzeugen von PIN-Werten verwendet.
    Schlüsselerzeugungsschlüssel
    DKYGENKY 00 71 44 00 03 4100 A0 00 71 44 00 03 2100 A0 Zum Erzeugen eines verschiedenartigen Schlüssels auf der Grundlage eines Schlüsselerzeugungsschlüssels verwendet.
  • Umhüllungsoperationen
  • Unter Bezugnahme auf 4 umfasst eine WRAPENH3-Verarbeitung die folgenden Operationen: Verketten von Schlüsseldaten (1), Ableitung des Umhüllungsschlüssels (2), Ableitung des TDES-CMAC-Schlüssels (3), TDES-CMAC-Berechnung (4) und CBC-Verschlüsselung des Schlüssels (5). Die Operationen zur Ableitung des Verschlüsselungsschlüssels und des TDES-CMAC-Schlüssels verwenden eindeutige 16 Kennzeichnungen (labels) als Eingaben in die Schlüsselableitungsfunktion. Das Verketten von Schlüsseldaten schließt die Verwendung von SHA-256 als Hash-Funktion für WRAPENH3 ein. Die TDES-CMAC-Berechnung schließt die Berechnung von TDES-CMAC über einen gesamten Schlüsselblock hinweg unter Verwendung eines abgeleiteten CMAC-Schlüssels ein, der in einem CV2-Feld abgelegt ist.
  • Das Verketten von Schlüsseldaten der Operation (1) von 4.
  • Der zu umhüllende Schlüssel (*K) wird von rechts nach links verkettet, um den zu umhüllenden verketteten Schlüssel (*KC) zu erstellen.
    1. 1. Verarbeitung:
      1. a. Schlüssel werden stets als 168-Bit-Schlüssel umhüllt
        1. i. Schlüssel mit weniger als 168 Bit werden nach rechts mit 0x00-Bytes aufgefüllt.
      2. b. K3C = K3
      3. c. K2C = K2 ^ Hash(K3)
        1. i. Sicherstellen, dass die Parität von K2 und K3 angepasst wird
      4. d. K1C = K1 ^ Hash(K2)
        1. i. Sicherstellen, dass die Parität von K1 angepasst wird
      5. e. *KC = K1C | | K2C | | K3C
    2. 2. wobei:
      1. a. ^ bitweise erfolgendes Exklusiv-ODER bedeutet
      2. b. | | Verkettung bedeutet
      3. c. es sich bei Hash um eine Hash-Funktion handelt, die von dem Algorithmus abhängt
        1. i. bei WRAPENH3: Hash = SHA-256
  • Die Ableitung des Umhüllungsschlüssels von Operation (2) von 4.
  • Ein abgeleiteter Umhüllungsschlüssel wird in den Umhüllungsprozess eingegeben, der für das Ziel-Schlüssel-Token verwendet wird. Der abgeleitete Umhüllungsschlüssel wird durch einen Ableitungsprozess abgeleitet, der eine 16-Byte-Zeichenfolge nutzt, die in der Schlüsselhierarchie eindeutig ist, die gerade realisiert wird. Bei WRAPENH3 ist das Ableitungskennzeichen des Umhüllungsschlüssels eine eindeutige 16-Byte-Kennzeichnung. Der Schlüssel wird unter Verwendung eines Verfahrens abgeleitet, das in dem Standard SP 800-108, Recommendation for Key Derivation Using Pseudorandom Functions (Oktober 2009), des U.S. National Institute of Standards and Technology (NIST) definiert ist. Bei der Ableitung wird das Verfahren KDF im Zählermodus verwendet, wobei die Pseudozufallsfunktion (pseudo-random function, PRF) HMAC-SHA256 verwendet wird. Der Algorithmus (PRF) HMAC-SHA256 stellt eine ausreichende Stärke zum Ableiten von Schlüsseln für einen beliebigen verwendeten Algorithmus bereit. Der HMAC-Algorithmus ist definiert als:
    1. a. HMAC(K, text) = H((KO XOR opad ) | | H((KO XOR ipad) | | text))
    2. b. wobei:
      1. i. H eine genehmigte Hash-Funktion ist.
      2. ii. K ein geheimer Schlüssel ist, der durch den Urheber und die vorgesehenen Empfänger gemeinsam genutzt wird.
      3. iii. K0 der Schlüssel K nach einer beliebigen notwendigen Vorverarbeitung zum Bilden eines Schlüssels der ordnungsgemäßen Länge ist.
      4. iv. ipad die Konstante X'36' ist, die zum Bilden einer Zeichenfolge derselben Länge wie K0 wiederholt wird.
      5. v. opad die Konstante X'5C' ist, die zum Bilden einer Zeichenfolge derselben Länge wie K0 wiederholt wird, text der Text ist, für den einen Hash ermittelt werden muss.
      6. vi. | | Verkettung bedeutet
      7. vii. XOR bitweise erfolgendes Exklusiv-ODER bedeutet
    3. c. Wenn die Länge des Schlüssels K gleich der Größe des Eingabeblocks der Hash-Funktion ist (512 Bits bei SHA-256), wird K0 auf den Wert von K gesetzt. Anderenfalls wird K0 aus K durch Ermitteln eines Hash oder durch Auffüllen gebildet.
  • Die Spezifikation der Schlüsselableitungsfunktion (Key Derivation Function, KDF) des NIST verlangt Eingaben, die wahlweise Zwei-Byte-Zeichenfolgen, Kennzeichnung und Kontext umfassen. Der Kontext wird nicht verwendet. Da die Sicherheit des Ableitungsprozesses in der Sicherheit des Ableitungsschlüssels und in dem HMAC sowie in den Schlüsselableitungsfunktionen (KEF) selbst verwurzelt ist, muss diese Kennzeichnungszeichenfolge keine bestimmte Mindestgröße aufweisen. Das in dem NIST-Dokuments festgelegte Trennungsindikatorbyte von X'00' folgt der Kennzeichnung.
    • d. Die verwendete Kennzeichnung ist für das in dem Token verwendete Umhüllungsverfahren charakteristisch.
    • e. Die in dem NIST-Standard SP 800-108 definierten Parameter der Zählermodus-KDF sind:
      1. i. Feststehende Werte:
        1. 1. h Länge der Ausgabe der PRF, 256 Bit
        2. 2. r Länge des Zählers in Bits, 32. Bei den Zähler handelt es sich um einen vorzeichenlosen 4-Byte-Wert.
      2. ii. Eingaben:
        1. 1. KI (Eingabeschlüssel) - der Schlüssel, aus dem das Ableiten erfolgt. Dies ist der Eingabe-Masterschlüssel oder KEK.
        2. 2. Kennzeichnung - wie vorstehend gezeigt die Zuordnung zu den KDF-Wert
        3. 3. Trennzeichenbyte - auf den Kennzeichnungswert folgendes X'00'.
        4. 4. Kontext - eine Nullzeichenfolge. Es wird kein Kontext verwendet.
        5. 5. L - die Länge des abgeleiteten Schlüssels, der erzeugt werden soll, aufgerundet auf das nächste Vielfache von 256.
        6. 6. PRF - HMAC-SHA256.
  • Der TDES-CMAC der Operation (3) von 4.
  • Der abgeleitete TDES-CMAC-Schlüssel wird verwendet, um den TDES-CMAC über das Ziel-Schlüssel-Token hinweg zu erstellen. Diese Operation ist dieselbe wie bei WRAPENH3, „Ableitung des Umhüllungsschlüssels“, jedoch mit einer anderen Ableitungskennzeichnung. Dieser Umhüllungsschlüssel und der TDES-CMAC-Schlüssel dürfen nicht in Beziehung zueinander stehen, ausgenommen durch einen unumkehrbareren Prozess. Der Ableitungsprozess nutzt eine 16-Byte-Zeichenfolge, die in der Schlüsselhierarchie eindeutig ist, die gerade realisiert wird. Bei WRAPENH3 ist das Ableitungskennzeichen des TDES- CMAC-Schlüssels eine eindeutige 16-Byte-Kennzeichnung.
  • Die TDES-CMAC-Berechnung der Operation (4) von 4.
  • Ein TDES-CMAC wird über den vollständigen Schlüsselblock berechnet und an der CV2-Position (Offset 40) abgelegt. Die Verarbeitung geschieht wie folgt:
    1. 1. Schlüsselblock ausfüllen mit
      1. a. normalen Werten für:
        1. i. tokenFlag
        2. ii. reservedl
        3. iii. Oldmkvp
        4. iv. version (0x00)
        5. v. reserved2
        6. vi. flags,
        7. vii. mkvp,
      2. b. Auf 0x00 setzen:
        1. i. CV2-/CMAC-Feld
        2. ii. tokenmarks,
        3. iii. tvv
      3. c. flags2 enthält ,3', binär ,011', in den Bits 0 bis 2, 0b0 in den verbleibenden Bits.
      4. d. CV1 befindet sich an Ort und Stelle, wobei die Schlüsselform in allen Fällen auf ,011' gesetzt ist.
      5. e. Schlüsselwerte wie folgt löschen:
        1. i. K1
        2. ii. K2 (oder Bytes aus Nullen bei Schlüsseln mit einfacher Länge) an der K2-Position
          1. 1. keinesfalls K2 = K1 setzen, wenn ein Schlüssel mit doppelter Länge gespeichert wird, dies schwächt den Schlüssel, da sich K1 und K2 gegenseitig auslöschen, wodurch ein Schlüssel, der wie ein Schlüssel mit doppelter Länge aussieht, zu einem tatsächlichen Schlüssel mit einfacher Länge wird
        3. iii. K3 (oder Bytes aus Nullen bei einem Schlüssel mit einfacher oder doppelter Länge) an der K3-Position
    2. 2. 8-Byte-TDES-CMAC über den gesamten Schlüsselblock hinweg unter Verwendung eines abgeleiteten CMAC-Schlüssels aus dem Schritt „Ableitung des TDES-CMAC-Schlüssels“ berechnen.
    3. 3. 8-Byte-TDES-CMAC im CV2-Feld ablegen.
  • Die CBC-Verschlüsselung des Schlüssels der Operation (5) von 4.
  • Die Verschlüsselung des Schlüssels, der gerade umhüllt wird, wird wie folgt mit *KEKC und *K fortgesetzt:
    • e*KEK(*KC) = ecbCKEK3(dcbCKEK2(ecbcKEK1(K1C | | K2C | | K3C ))) wobei:
      1. 1. K1C, K2C, K3C die geänderten Abschnitte von *KC aus dem Schritt „Verketten von Schlüsseldaten“ sind.
      2. 2. KEK1, KEK2, KEK3 die Abschnitte der *KEK-Ausgabe aus dem Schritt „Ableitung des Umhüllungsschlüssels“ sind:
        1. a. Es erfolgt kein XODER von Inhalten zu *KEK, keine Schlüsselvariante wird zur Verwendung als Umhüllungsschlüssel erstellt.
        2. b. Bei 112-Bit-*KEKs wird KEK1 für KEK3 verwendet.
      3. 3. | | Verkettung bedeutet
      4. 4. ecbc Verschlüsselung unter Verwendung von Chiffrierblock-Verkettungsmodus bedeutet
      5. 5. dcbc Entschlüsselung unter Verwendung von Chiffrierblock-Verkettungsmodus bedeutet
      6. 6. 8 Bytes aus 0x00 als Initialisierungsvektor für die Verschlüsselung 0 verwendet werden
  • Unter Bezugnahme auf 5 wird ein Verfahren zum verbesserten Umhüllen von Schlüsseln bereitgestellt und umfasst ein Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das die Verwendung des unverschlüsselten Schlüssels (501) steuert. Der unverschlüsselte Schlüssel umfasst Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und einem zweiten und einem dritten 8-Byte-Abschnitt, die mit Schlüsseldaten belegt sind oder nicht belegt sind, sowie einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels. Das Verfahren umfasst ferner ein Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten (502), ein Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel (503), ein Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut unter Verwendung des Berechtigungsprüfungsschlüssels (504), ein Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten (505), und ein Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock (506) zu bilden.
  • Gemäß einer oder mehreren Ausführungsformen der vorliegenden Erfindung kann das Attribut einen Satz von Attributen umfassen, die steuern, wie der unverschlüsselte Schlüssel zu verbinden ist. Außerdem kann der Umhüllungsschlüssel unter Verwendung von mindestens einem aus einem Pseudozufallsfunktionsalgorithmus (PRF-Algorithmus) PRF = pseudo random function) und einem Schlüsselableitungsfunktionsalgorithmus (KDF-Algorithmus) (KDF = key derivation function) abgeleitet werden. Darüber hinaus kann es sich bei dem Berechtigungsprüfungscode um einen Nachrichten-Berechtigungsprüfungscode mit dreifacher Länge (TDES-CMAC) handeln, der auf einer Chiffre gemäß dem Triple Data Encryption Standard beruht, und die Verschlüsselung umfasst eine Verschlüsselung mit Verkettung von Chiffreblöcken (CBC-Verschlüsselung) (CBC = cipher block chaining).
  • Unter Bezugnahme auf 6 und gemäß weiteren Ausführungsformen der vorliegenden Erfindung kann das Verfahren ferner ein Aufheben der Umhüllung des Schlüsselblocks umfassen. Wie in 6 gezeigt umfasst das Aufheben der Umhüllung des Schlüsselblocks ein Bereitstellen eines Umhüllungsaufhebungsschlüssels auf der Grundlage des Umhüllungsschlüssels zum Aufheben der Umhüllung des Schlüsselblocks (601), ein Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsaufhebungsschlüssel (602), ein Ausführen einer Verschlüsselung über die verschlüsselten verketteten Schlüsseldaten hinweg unter Verwendung des Entschlüsselungsschlüssels, um verkettete Schlüsseldaten (603) zu erzeugen, ein Aufheben der Verkettung der verketteten Schlüsseldaten, um Schlüsseldaten (604) zu erzeugen, und ein Berechnen eines Berechtigungsprüfungscodes über die Schlüsseldaten und das Attribut hinweg unter Verwendung des Berechtigungsprüfungsschlüssels (605). Das Aufheben der Umhüllung gemäß dem Verfahren kann außerdem ein Überprüfen umfassen, dass der Berechtigungsprüfungscode mit dem Berechtigungsprüfungscode des Schlüsselblocks (606) übereinstimmt, und ein Zurückgeben eines Fehlers in einem Fall bzw. wenn der Berechtigungsprüfungscode nicht mit dem Berechtigungsprüfungscode des Schlüsselblocks (607) übereinstimmt.
  • Nunmehr unter Bezugnahme auf 7 ist dort ein Computersystem 700 zum verbesserten Umhüllen von Schlüsseln gezeigt. Die hierin beschriebenen Verfahren können in Hardware, Software (z.B. Firmware) oder in einer Kombination davon realisiert sein. Bei einer beispielhaften Ausführungsform sind die hierin beschriebenen Verfahren in Hardware als Teil des Mikroprozessors eines digitalen Spezial- oder Universalcomputers wie zum Beispiel eines Personal Computers, einer Workstation, eines Minicomputer oder eines Großrechners realisiert. Das System 700 kann daher einen Universalcomputer oder einen Großrechner umfassen, der in der Lage ist, mehrere Instanzen eines BS gleichzeitig auszuführen.
  • Bei einer beispielhaften Ausführung umfasst der Computer in Bezug auf die Hardwarearchitektur wie in 7 gezeigt einen oder mehrere Prozessoren 705, einen Hauptspeicher 710, der mit einer Hauptspeicher-Speichersteuereinheit 715 verbunden ist, und eine oder mehrere Eingabe- und/oder Ausgabeeinheiten (E/A-Einheiten) 740, 745 (oder Peripherieeinheiten), die zu Datenübertragungszwecken über eine lokale Eingabe/Ausgabe-Steuereinheit 735 verbunden sind. Bei der Eingabe/Ausgabe-Steuereinheit 735 kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um einen oder mehrere Busse oder andere drahtgebundene oder drahtlose Verbindungen handeln, die in der Technik bekannt sind. Die Eingabe/Ausgabe-Steuereinheit 735 kann weitere Elemente aufweisen, die aus Gründen der Einfachheit weggelassen wurden, wie z.B. Steuereinheiten, Puffer (Caches), Treiber, Repeater und Empfänger, um Datenübertragung zu ermöglichen. Ferner kann die lokale Schnittstelle Adress-, Steuer- und/oder Datenverbindungen umfassen, um eine entsprechende Datenübertragung zwischen den vorstehend erwähnten Komponenten zu ermöglichen. Die Eingabe/Ausgabe-Steuereinheit 735 kann eine Mehrzahl von Unterkanälen umfassen, die so konfiguriert sind, dass sie auf die Ausgabeeinheiten 740 und 745 zugreifen. Die Unterkanäle können Lichtwellenleiter-Datenübertragungsanschlüsse umfassen.
  • Bei dem Prozessor 705 handelt es sich um eine Hardwareeinheit zum Ausführen von Software, insbesondere derjenigen, die in einem Speicher 720 wie z.B. einem Cache-Speicher oder einem Hauptspeicher 710 gespeichert ist. Bei dem Prozessor 705 kann es sich um einen kundenspezifischen oder handelsüblichen Prozessor, eine Zentraleinheit (CPU), einen Hilfsprozessor unter mehreren zum Computer gehörenden Prozessoren, einen auf Halbleitern beruhender Mikroprozessor (in Form eines Mikrochips oder Chipsatzes), einen Makroprozessor oder allgemein eine beliebige Einheit zum Ausführen von Anweisungen handeln.
  • Bei dem Hauptspeicher 710 kann es sich um ein beliebiges oder eine Kombination aus flüchtigen Speicherelementen (z.B. Direktzugriffsspeicher (RAM wie z.B. DRAM, SRAM, SDRAM usw.)) und nichtflüchtigen Speicherelementen (z.B. ROM, löschbarer programmierbarer Nur-Lese-Speicher (EPROM), elektronisch löschbaren programmierbaren Nur-Lese-Speicher (EEPROM), programmierbaren Nur-Lese-Speicher (PROM), Band, Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), Platte, Diskette, Kassette, Bandkassette oder dergleichen usw.) handeln. Darüber hinaus können zum Hauptspeicher 710 elektronische, magnetische, optische und/oder andere Arten von Speichermedien gehören. Zu beachten ist, dass der Hauptspeicher 710 eine verteilte Architektur aufweisen kann, bei der verschiedene Komponenten voneinander entfernt angeordnet sind, auf die der Prozessor 705 aber zugreifen kann.
  • Die Anweisungen im Hauptspeicher 710 können ein oder mehrere separate Programme umfassen, von denen jedes eine geordnete Auflistung ausführbarer Anweisungen zum Realisieren von Logikfunktionen aufweist. Bei dem Beispiel von 7 bilden die Anweisungen im Hauptspeicher 710 ein geeignetes Betriebssystem (BS) 711. Das Betriebssystem 711 steuert im Wesentlichen die Ausführung anderer Computerprogramme und stellt eine Ablaufplanung, Eingabe-Ausgabe-Steuerung, Datei- und Datenverwaltung, Speicherverwaltung und Steuerung der Datenübertragung sowie zugehörige Dienste bereit.
  • Der Hauptspeicher 710 kann mehrere logische Partitionen (LPARs) umfassen, die jeweils eine Instanz eines Betriebssystems ausführen. Die LPARs können durch einen Hypervisor verwaltet werden, bei dem es sich um ein Programm handeln kann, das im Hauptspeicher 710 gespeichert ist und durch den Prozessor 705 ausgeführt wird.
  • Bei einer beispielhaften Ausführungsform können eine herkömmliche Tastatur 750 und Maus 755 mit der Eingabe/Ausgabe-Steuereinheit 735 verbunden sein. Andere Ausgabeeinheiten wie z.B. die E/A-Einheiten 740, 745 können Eingabeeinheiten umfassen, zum Beispiel und ohne auf diese beschränkt zu sein, einen Drucker, einen Scanner, ein Mikrofon und dergleichen. Schließlich können die E/A-Einheiten 740, 745 ferner Einheiten umfassen, die Datenübertragung sowohl für Eingänge als auch für Ausgänge realisieren, zum Beispiel und ohne auf diese beschränkt zu sein, eine Netzwerkschnittstellenkarte (Network Interface Card, NIC), einen Modulator/Demodulator (zum Zugreifen auf andere Dateien, Einheiten, Systeme oder ein Netzwerk) einen Hochfrequenz-Transceiver (HF-Transceiver) oder einen anderen Transceiver, eine Telefonschnittstelle, eine Bridge, einen Router und dergleichen. Das System 700 kann ferner eine Anzeigesteuereinheit 725 aufweisen, die mit einer Anzeige 730 verbunden ist. Bei einer beispielhaften Ausführungsform kann das System 700 ferner eine Netzwerkschnittstelle 760 zum Verbinden mit einem Netzwerk 765 umfassen. Bei dem Netzwerk 765 kann es sich um ein IP-Netzwerk zur Datenübertragung zwischen dem Computer und einem beliebigen externen Server, Client und dergleichen über eine Breitbandverbindung handeln. Das Netzwerk 765 sendet und empfängt Daten zwischen dem Computer und externen Systemen. Bei einer beispielhaften Ausführungsform kann es sich bei dem Netzwerk 765 um ein verwaltetes IP-Netzwerk handeln, das durch einen Diensteanbieter administriert wird. Das Netzwerk 765 kann in drahtloser Form realisiert sein, z.B. unter Verwendung von Drahtlos-Protokollen und -Technologien wie z.B. WLAN, WiMax usw. Bei dem Netzwerk 765 kann es sich außerdem um ein paketvermitteltes Netzwerk wie z.B. um ein lokales Netzwerk, ein Weitverkehrsnetzwerk, ein Hochgeschwindigkeitsnetzwerk, ein Internet-Netzwerk oder eine ähnliche Art von Netzwerkumgebung handeln. Bei dem Netzwerk 765 kann es sich um ein Fixed Wireless Network, ein drahtloses lokales Netzwerk (local area network, LAN), ein drahtloses Weitverkehrsnetzwerk (wide area network, WAN), ein Personal Area Network (PAN), ein virtuelles privates Netzwerk (VPN), ein Intranet oder ein anderes geeignetes Netzwerksystem handeln, das Ausrüstungen zum Empfangen und Senden von Signalen umfasst.
  • Wenn es sich bei dem Computer um einen PC, eine Workstation, eine intelligente Einheit oder dergleichen handelt, können die Anweisungen im Hauptspeicher 710 ferner ein Basic Input Output System (BIOS) umfassen (aus Gründen der Einfachheit weggelassen). Beim BIOS handelt es sich um einen Satz notwendiger Softwareroutinen, die beim Einschalten Hardware initialisieren und testen, das BS 711 starten und die Übertragung von Daten zwischen den Hardwareeinheiten unterstützen. Das BIOS ist im ROM gespeichert, sodass das BIOS ausgeführt werden kann, wenn der Computer aktiviert wird.
  • Im Betriebszustand des Computers ist der Prozessor 705 so konfiguriert, dass er die im Hauptspeicher 710 gespeicherten Anweisungen ausführt, Daten zum und vom Hauptspeicher 710 überträgt und den Anweisungen folgend allgemein die Operationen des Computers zu steuern.
  • Verschiedene Ausführungsformen der Erfindung sind hierin unter Bezugnahme auf die zugehörigen Zeichnungen beschrieben. Alternative Ausführungsformen der Erfindung können entwickelt werden, ohne vom Schutzbereich dieser Erfindung abzuweichen. Verschiedene Verbindungen und Positionsbeziehungen (z.B. über, unter, benachbart usw.) sind zwischen Elementen in der folgenden Beschreibung und in die Zeichnungen dargelegt. Sofern nichts anderes angegeben ist, können diese Verbindungen und/oder Positionsbeziehungen direkt oder indirekt sein, und die vorliegende Erfindung ist als in dieser Hinsicht nicht einschränkend zu betrachten. Dementsprechend kann ein Verbinden von Einheiten entweder ein direktes oder indirektes Verbinden bezeichnen, und bei einer Positionsbeziehung zwischen Einheiten kann es sich um eine direkte oder indirekte Positionsbeziehung handeln. Darüber hinaus können die hierin beschriebenen verschiedenen Aufgaben und Prozessschritte in eine umfangreichere Prozedur oder in einen umfangreicheren Prozess einbezogen sein, die zusätzliche Schritte oder eine zusätzliche Funktionalität enthalten, die hierin im Detail nicht beschrieben ist.
  • Ein oder mehrere der hierin beschriebenen Verfahren können mit einer beliebigen oder einer Kombination der folgenden Technologien realisiert werden, die der Technik allgemein bekannt sind: einer oder mehreren diskreten Logikschaltungen, die Logikgatter zum Realisieren von Logikfunktionen als Reaktion auf Datensignale enthalten, einer anwendungsspezifischen integrierten Schaltung (Application Specific Integrated Circuit, ASIC), die geeignete kombinatorische Logikgatter enthält, einer oder mehreren programmierbaren Gatteranordnungen (PGA), einer vor Ort programmierbaren Gatteranordnung (field programmable gate array, FPGA) usw.
  • Der Kürze wegen sind herkömmliche Techniken im Zusammenhang mit dem Herstellen und Verwenden von Aspekten der Erfindung hierin unter Umständen nicht ausführlich beschrieben. Insbesondere sind verschiedene Aspekte von Datenverarbeitungssystemen und bestimmten Computerprogrammen zum Realisieren der hierin beschriebenen verschiedenen technischen Merkmale allgemein bekannt. Dementsprechend sind der Kürze wegen viele herkömmliche Einzelheiten der Realisierung hierin lediglich kurz erwähnt oder ganz weggelassen, ohne allgemein bekannte System- und/oder Prozessdetails bereitzustellen.
  • Bei einigen Ausführungsformen können verschiedene Funktionen oder Aktionen an einer bestimmten Stelle und/oder in Verbindung mit dem Betrieb einer oder mehrerer Vorrichtungen oder eines oder mehrerer Systeme stattfinden. Bei einigen Ausführungsformen kann ein Abschnitt einer bestimmten Funktion oder Aktion auf einer ersten Einheit oder an einer ersten Stelle durchgeführt werden, und der Rest der Funktion oder Aktion kann auf einer oder mehreren weiteren Einheiten oder an einer oder mehreren weiteren Stellen durchgeführt werden.
  • Die hierin verwendete Terminologie dient ausschließlich zur Beschreibung bestimmter Ausführungsformen und ist nicht als Einschränkung gedacht. Im hierin verwendeten Sinne schließen die Einzahlformen „ein/eine“ und „der“ die/das“ auch die Pluralformen ein, sofern im Kontext nicht ausdrücklich etwas anderes angegeben ist. Es versteht sich des Weiteren, dass die Begriffe „aufweist“ und/oder „aufweisen/aufweisend“ bei Verwendung in der vorliegenden Beschreibung das Vorhandensein angegebener Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Elemente und/oder Komponenten bezeichnen, aber das Vorhandensein oder die Hinzufügung eines bzw. einer oder mehrerer anderer Merkmale, Ganzzahlen, Schritte, Abläufe, Operationen, Element-Komponenten und/oder Gruppen davon nicht ausschließen.
  • Die entsprechenden Strukturen, Materialien, Aktionen und Äquivalente aller Mittel bzw. Schritt-plus-Funktion-Elemente (Step Plus Function Elements) in den folgenden Ansprüchen sollen alle Strukturen, Materialien oder Aktionen zum Durchführen der Funktion in Verbindung mit anderen ausdrücklich beanspruchten Elementen mit einschließen. Die vorliegende Offenbarung soll der Veranschaulichung und Beschreibung dienen, ist jedoch nicht vollständig oder auf die offenbarte Form beschränkt. Für Fachleute sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der Offenbarung darstellen würden. Die Ausführungsformen wurden ausgewählt und beschrieben, um die Grundgedanken und die praktische Anwendung der Offenbarung auf bestmögliche Weise zu erklären und anderen Fachleuten das Verständnis der Offenbarung für verschiedene Ausführungsformen mit verschiedenen Abänderungen für die betreffende betrachtete Verwendung zu ermöglichen.
  • Die hierin abgebildeten Schemata dienen der Veranschaulichung. Es sind viele Abweichungen von dem Schema oder den darin beschriebenen Schritten (oder Operationen) möglich, ohne vom Grundgedanken der Offenbarung abzuweichen. Beispielsweise können die Aktionen in einer anderen Reihenfolge ausgeführt werden, oder es können Aktionen hinzugefügt, gelöscht oder modifiziert werden. Außerdem beschreibt der Begriff „verbunden“ ein Vorliegen eines Datenaustauschweges zwischen zwei Elementen und bedeutet nicht unbedingt eine direkte Verbindung zwischen den Elementen ohne zwischengeschaltete Elemente/Verbindungen. Alle diese Abweichungen gelten als Teil der vorliegende Offenbarung.
  • Die folgenden Definitionen und Abkürzungen sind zur Interpretation der Ansprüche und der Beschreibung zu verwenden. Im hierin verwendeten Sinne sind die Begriffe „weist auf“, „aufweisend“, „umfasst“, „umfassend“, „enthält“ oder „enthaltend“ oder beliebige andere Variationen davon als nicht ausschließliche Einbeziehung gedacht. Zum Beispiel ist eine Zusammensetzung, eine Mischung, ein Prozess, ein Verfahren, ein Artikel oder eine Vorrichtung, die eine Liste von Elementen aufweist, nicht zwangsläufig nur auf diese Elemente beschränkt, sondern kann andere Elemente umfassen, die nicht ausdrücklich aufgeführt oder für eine derartige Zusammensetzung, Mischung, einen derartigen Prozess, Artikel, ein derartiges Verfahren oder eine derartige Vorrichtung charakteristisch sind.
  • Darüber hinaus wird der Begriff „beispielhaft“ hierin in der Bedeutung von „als Beispiel, Exemplar oder der Veranschaulichung dienend“ verwendet. Beliebige Ausführungsformen oder Gestaltungsformen, die hierin als „beispielhaft“ beschrieben sind, sind nicht zwangsläufig als gegenüber anderen Ausführungsformen oder Gestaltungsformen bevorzugt oder vorteilhaft auszulegen. Die Begriffe „mindestens ein“ bzw. „mindestens eine“ und „ein(e) oder mehrere“ sind so zu verstehen, dass sie eine beliebige ganzzahlige Anzahl umfassen, die größer oder gleich eins ist, d.h. eins, zwei, drei, vier usw. Der Begriff „eine Mehrzahl“ ist so zu verstehen, dass er eine beliebige ganzzahlige Anzahl umfasst, die größer oder gleich zwei ist, d.h. zwei, drei, vier, fünf usw. Der Begriff „Verbindung“ kann sowohl eine indirekte „Verbindung“ als auch eine direkte „Verbindung“ umfassen.
  • Die Begriffe „ungefähr“, „im Wesentlichen“, „ca.“ und deren Variationen sind so zu verstehen, dass sie den mit der Messung der betreffenden Größe verbundenen Fehlergrad enthalten, der auf den zum Zeitpunkt der Einreichung der Anmeldung verfügbaren Ausrüstungen beruht. Beispielsweise kann der Begriff „ca.“ einen Bereich von ±8 % oder 5 % oder 2 % eines bestimmten Wertes umfassen.
  • Bei der vorliegenden Erfindung kann es sich um ein System, ein Verfahren und/oder ein Computerprogrammprodukt in einem beliebigen möglichen Integrationsgrad technischer Einzelheiten handeln. Das Computerprogrammprodukt kann (ein) durch einen Computer lesbare(s) Speichermedium (oder -medien) enthalten, auf dem/denen durch einen Computer lesbare Programmanweisungen gespeichert sind, um einen Prozessor zu veranlassen, Aspekte der vorliegenden Erfindung auszuführen.
  • Bei dem durch einen Computer lesbaren Speichermedium kann es sich um eine materielle Einheit handeln, auf der Anweisungen zur Verwendung durch eine Einheit zur Ausführung von Anweisungen aufbewahrt und gespeichert sein können. Bei dem durch einen Computer lesbaren Speichermedium kann es sich zum Beispiel, ohne auf diese beschränkt zu sein, um eine elektronische Speichereinheit, eine magnetische Speichereinheit, eine optische Speichereinheit, eine elektromagnetische Speichereinheit, eine Halbleiterspeichereinheit oder eine beliebige geeignete Kombination des Vorstehenden handeln. Eine nicht erschöpfende Liste genauerer Beispiele des durch einen Computer lesbaren Speichermediums umfasst Folgendes: eine transportable Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (RAM), einen Nur-Lese-Speicher (ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (EPROM oder Flash-Speicher), einen statischen Direktzugriffsspeicher (SRAM), einen transportablen Nur-Lese-Speicher in Form einer Compact Disc (CD-ROM), eine Digital Versatile Disc (DVD), einen Speicherstick, eine Diskette, eine mechanisch codierte Einheit wie zum Beispiel Lochkarten oder erhöhte Strukturen in einer Rille mit darauf aufgezeichneten Anweisungen oder beliebige geeignete Kombinationen des Vorstehenden. Ein durch einen Computer lesbares Speichermedium im hierin verwendeten Sinne ist nicht so auszulegen, dass es sich dabei um flüchtige Signale an sich handelt, beispielsweise um Funkwellen oder sich frei ausbreitende elektromagnetische Wellen, um elektromagnetische Wellen, die sich durch einen Hohlleiter oder andere Übertragungsmedien ausbreiten (z.B. ein Lichtwellenleiterkabel durchlaufende Lichtimpulse) oder um elektrische Signale, die über ein Kabel übertragen werden.
  • Hierin beschriebene, durch einen Computer lesbare Programmanweisungen können über ein Netzwerk, zum Beispiel das Internet, ein lokales Netzwerk ein Weitverkehrsnetzwerk und/oder ein Drahtlosnetzwerk von einem durch einen Computer lesbaren Speichermedium auf betreffende Datenverarbeitungs-/Verarbeitungseinheiten oder auf einen externen Computer oder eine externe Speichereinheit heruntergeladen werden. Das Netzwerk kann Kupferübertragungskabel, Lichtwellenübertragungsleiter, Drahtlosübertragung, Router, Firewalls, Switches, Gateway-Computer und/oder Edge-Server aufweisen. Eine Netzwerkadapterkarte oder eine Netzwerkschnittstelle bei 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 jeweiligen Datenverarbeitungs-/Verarbeitungseinheit weiter.
  • Bei durch einen Computer lesbaren Programmanweisungen zum Ausführen von Operationen der vorliegenden Erfindung kann es sich um Assembler-Anweisungen, ISA-Anweisungen (ISA = Instruction-Set-Architecture), Maschinenanweisungen, maschinenabhängige Anweisungen, Mikrocode, Firmware-Anweisungen, zustandssetzende Daten oder entweder Quellcode oder Objektcode handeln, die in einer beliebigen Kombination aus einer oder mehreren Programmiersprachen geschrieben sind, unter anderem objektorientierte Programmiersprachen wie z.B. Smalltalk, C++ oder dergleichen sowie prozedurale Programmiersprachen wie z.B. 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 Softwarepaket, 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. Beim letztgenannten Szenario kann der entfernt angeordnete Computer mit dem Computer des Benutzers über eine beliebige Art von Netzwerk verbunden sein, unter anderem über ein lokales Netzwerk (Local Area Network, LAN) oder über ein Weitverkehrsnetzwerk (Wide Area Network, WAN), oder die Verbindung kann zu einem externen Computer hergestellt sein (zum Beispiel über das Internet unter Nutzung eines Internet-Dienstanbieters (Internet Service Provider)). Bei einigen Ausführungsformen können elektronische Schaltungen, unter anderem zum Beispiel programmierbare Logikschaltungen, vor Ort programmierbare Gatter-Anordnungen (FPGA, field programmable gate arrays) oder programmierbare Logikanordnungen (PLA, programmable logic arrays) die durch einen Computer lesbaren Programmanweisungen ausführen, indem sie Zustandsinformationen der durch einen Computer lesbaren Programmanweisungen nutzen, um die elektronischen Schaltungen zu personalisieren, um Aspekte der vorliegenden Erfindung durchzuführen.
  • Aspekte der vorliegenden Erfindung sind hierin unter Bezugnahme auf Flussdiagrammdarstellungen und/oder Blockschemata von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsformen der Erfindung beschrieben. Es wird klar sein, dass jeder Block der Flussdiagramme und/oder der Blockschemata und Kombinationen von Blöcken in den Flussdiagrammen und/oder Blockschemata mit Hilfe von durch einen Computer lesbaren Programmanweisungen realisiert werden kann bzw. können.
  • Diese durch einen Computer lesbaren Programmanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder anderer programmierbaren Datenverarbeitungsvorrichtungen bereitgestellt werden, um eine Maschine zu erzeugen, sodass die Anweisungen, die über den Prozessor des Computers oder anderer programmierbarer Datenverarbeitungsvorrichtungen ausgeführt werden, Mittel schaffen, um die in einem Block bzw. in den Blöcken des Flussdiagramms bzw. der Flussdiagramme und/oder des Blockschemas bzw. der Blockschemata angegebenen Funktionen/Aktionen zu realisieren. Diese durch einen Computer lesbaren Programmanweisungen können ebenfalls in einem durch einen Computer lesbaren Medium gespeichert sein, das einen Computer, andere programmierbare Datenverarbeitungsvorrichtungen oder andere Einheiten anweisen kann, in einer bestimmten Weise zu funktionieren, sodass das durch einen Computer lesbare Medium mit darauf gespeicherten Anweisungen ein Erzeugnis aufweist, das Anweisungen enthält, die die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebene Funktion/Aktion realisieren.
  • Die durch einen Computer lesbaren Programmanweisungen können auch in einen Computer, in andere programmierbare Datenverarbeitungsvorrichtungen oder in andere Einheiten geladen werden, um zu bewirken, dass auf dem Computer, auf anderen programmierbaren Vorrichtungen oder anderen Einheiten eine Reihe von Operationen ausgeführt wird, um einen mittels Computer realisierten Prozess zu schaffen, sodass die Anweisungen, die auf dem Computer, auf anderen programmierbaren Vorrichtungen oder Einheiten ausgeführt werden, die in einem Block bzw. in den Blöcken der Flussdiagramme und/oder der Blockschemata angegebenen Funktionen/Aktionen realisieren.
  • Die Flussdiagramme und Blockschemata in den Figuren veranschaulichen die Architektur, Funktionalität und Wirkungsweise möglicher Realisierungsformen von Systemen, Verfahren und Computerprogrammprodukten gemäß verschiedenen Ausführungsformen der vorliegenden Erfindung. In diesem Zusammenhang kann jeder Block in den Flussdiagrammen bzw. in den Blockschemata ein Modul, ein Segment oder einen Abschnitt von Anweisungen darstellen, das bzw. der eine oder mehrere ausführbare Anweisungen zum Realisieren der angegebenen Logikfunktion bzw. Logikfunktionen aufweist. Bei einigen alternativen Realisierungsformen können die in dem Block angegebenen Funktionen in einer anderen als in der Reihenfolge ausgeführt werden, die in den Figuren angegeben ist. Zum Beispiel können zwei hintereinander aufgeführte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können je nach der mit den Blöcken verbundenen Funktionalität manchmal in umgekehrter Reihenfolge ausgeführt werden. Darüber hinaus ist anzumerken, dass jeder Block der Blockschemata und/oder Flussdiagrammdarstellungen sowie Kombinationen von Blöcken in den Blockschemata und/oder Flussdiagrammdarstellungen mit Hilfe zweckgebundener hardwaregestützter Systeme zum Ausführen der angegebenen Funktionen bzw. Aktionen oder mit Hilfe von Kombinationen aus zweckgebundener Hardware und zweckgebundenen Computeranweisungen realisiert werden kann bzw. können.
  • Die Beschreibungen der verschiedenen Ausführungsformen der vorliegenden Erfindung sollen der Veranschaulichung dienen, sind jedoch nicht als vollständig oder auf die Erfindung in der offenbarten Form beschränkt gedacht. Für den Fachmann sind viele Modifikationen und Variationen denkbar, ohne dass diese eine Abweichung vom Schutzbereich und Grundgedanken der beschriebenen Ausführungsformen darstellen würden. Die hierin verwendete Terminologie wurde gewählt, um die Grundgedanken der Ausführungsformen, die praktische Anwendung bzw. die technische Verbesserung gegenüber den auf dem Markt vorgefundenen Technologien auf bestmögliche Weise zu erläutern bzw. anderen mit entsprechenden Fachkenntnissen das Verständnis der hierin beschriebenen Ausführungsformen zu ermöglichen.

Claims (9)

  1. Mittels Computer realisiertes Verfahren zum verbesserten Umhüllen von Schlüsseln, wobei das mittels Computer realisierte Verfahren aufweist: Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das eine Verwendung des unverschlüsselten Schlüssels steuert, wobei der unverschlüsselte Schlüssel aufweist: Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und in einem zweiten und in einem dritten 8-Byte-Abschnitt; und einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels; Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten; Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel; Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut hinweg unter Verwendung des Berechtigungsprüfungsschlüssels; Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten; und Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock zu bilden.
  2. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei das Attribut einen Satz von Attributen aufweist, die steuern, wie der unverschlüsselten Schlüssel zu verwenden ist.
  3. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei der Umhüllungsschlüssel unter Verwendung einer Auswahl aus der Gruppe abgeleitet wird, die aus einem Pseudozufallsfunktionsalgorithmus (PRF-Algorithmus) PRF = pseudo random function) und einem Schlüsselableitungsfunktionsalgorithmus (KDF-Algorithmus) (KDF = key derivation function) besteht.
  4. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei es sich bei dem Berechtigungsprüfungscode um einen Nachrichten-Berechtigungsprüfungscode mit dreifacher Länge (TDES-CMAC) handelt, der auf einer Chiffre gemäß dem Triple Data Encryption Standard beruht.
  5. Mittels Computer realisiertes Verfahren nach Anspruch 1, wobei die Verschlüsselung eine Verschlüsselung mit Verkettung von Chiffreblöcken (CBC-Verschlüsselung) (CBC = cipher block chaining) aufweist.
  6. Mittels Computer realisiertes Verfahren nach Anspruch 1, das ferner ein Aufheben der Umhüllung des Schlüsselblocks aufweist, wobei das Aufheben der Umhüllung des Schlüsselblocks aufweist: Bereitstellen eines Umhüllungsaufhebungsschlüssels auf der Grundlage des Umhüllungsschlüssels zum Aufheben der Umhüllung des Schlüsselblocks; Ableiten von Entschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsaufhebungsschlüssel; Ausführen einer Entschlüsselung über die verschlüsselten verketteten Schlüsseldaten hinweg unter Verwendung des Entschlüsselungsschlüssels, um verkettete Schlüsseldaten zu erzeugen; Aufheben der Verkettung der verketteten Schlüsseldaten, um Schlüsseldaten zu erzeugen; und Berechnen eines Berechtigungsprüfungscodes über die Schlüsseldaten und das Attribut hinweg unter Verwendung des Berechtigungsprüfungsschlüssels.
  7. Mittels Computer realisiertes Verfahren nach Anspruch 6, wobei das Aufheben der Umhüllung ferner aufweist: Überprüfen, dass der Berechtigungsprüfungscode mit dem Berechtigungsprüfungscode des Schlüsselblocks übereinstimmt; und Zurückgeben eines Fehlers in einem Fall, in dem der Berechtigungsprüfungscode nicht mit dem Berechtigungsprüfungscode des Schlüsselblocks übereinstimmt.
  8. Computerprogrammprodukt, wobei das Computerprogrammprodukt ein durch einen Computer lesbares Speichermedium aufweist, das darauf verkörperte Programmanweisungen umfasst, wobei die Programmanweisungen durch einen Prozessor ausführbar sind, um zu bewirken, dass der Prozessor Operationen ausführt, die aufweisen: Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das eine Verwendung des unverschlüsselten Schlüssels steuert, wobei der unverschlüsselte Schlüssel aufweist: Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und in einem zweiten und in einem dritten 8-Byte-Abschnitt; und einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels; Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten; Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel; Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut hinweg unter Verwendung des Berechtigungsprüfungsschlüssels; Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten; und Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock zu bilden.
  9. System, das aufweist: einen Hauptspeicher, der durch einen Computer lesbare Anweisungen enthält; und einen oder mehrere Prozessoren zum Ausführen der durch einen Computer lesbaren Anweisungen, wobei die durch einen Computer lesbaren Anweisungen den einen oder die mehreren Prozessoren steuern, um Operationen auszuführen, die aufweisen: Bereitstellen eines unverschlüsselten Schlüssels mit einem Attribut, das eine Verwendung des unverschlüsselten Schlüssels steuert, wobei der unverschlüsselte Schlüssel aufweist: Schlüsseldaten in mindestens einem ersten 8-Byte-Abschnitt und in einem zweiten und in einem dritten 8-Byte-Abschnitt; und einen Umhüllungsschlüssel zum Umhüllen des unverschlüsselten Schlüssels; Verketten des ersten, des zweiten und des dritten 8-Byte-Abschnitts zusammen mit Nullen für diejenigen 8-Byte-Abschnitte, die nicht belegt sind, zu verketteten Schlüsseldaten; Ableiten von Verschlüsselungs- und Berechtigungsprüfungsschlüsseln aus dem Umhüllungsschlüssel; Berechnen eines Berechtigungsprüfungscodes über den unverschlüsselten Schlüssel und das Attribut hinweg unter Verwendung des Berechtigungsprüfungsschlüssels; Ausführen einer Verschlüsselung über die verketteten Schlüsseldaten hinweg unter Verwendung des Verschlüsselungsschlüssels zu erzeugten verschlüsselten, verketteten Schlüsseldaten; und Hinzufügen des Berechtigungsprüfungscodes, des Attributs und der verschlüsselten verketteten Schlüsseldaten, um einen Schlüsselblock zu bilden.
DE102021130643.4A 2020-12-14 2021-11-23 Verbessertes umhüllen von schlüsselblöcken Pending DE102021130643A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US17/120,326 2020-12-14
US17/120,326 US11575520B2 (en) 2020-12-14 2020-12-14 Key block enhanced wrapping

Publications (1)

Publication Number Publication Date
DE102021130643A1 true DE102021130643A1 (de) 2022-06-15

Family

ID=79269970

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021130643.4A Pending DE102021130643A1 (de) 2020-12-14 2021-11-23 Verbessertes umhüllen von schlüsselblöcken

Country Status (5)

Country Link
US (1) US11575520B2 (de)
JP (1) JP2022094333A (de)
CN (1) CN114629633A (de)
DE (1) DE102021130643A1 (de)
GB (1) GB2605676A (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11818260B1 (en) * 2022-12-15 2023-11-14 Intuit Inc. Systems and methods for blocking decryption capabilities in symmetric key encryption

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918728A (en) 1989-08-30 1990-04-17 International Business Machines Corporation Data cryptography operations using control vectors
US6708273B1 (en) * 1997-09-16 2004-03-16 Safenet, Inc. Apparatus and method for implementing IPSEC transforms within an integrated circuit
US7392384B2 (en) * 2002-06-28 2008-06-24 Hewlett-Packard Development Company, L.P. Method and system for secure storage, transmission and control of cryptographic keys
US20050149739A1 (en) 2003-12-31 2005-07-07 Hewlett-Packard Development Company, L.P. PIN verification using cipher block chaining
US7281068B2 (en) 2004-07-15 2007-10-09 International Business Machines Corporation Wireless-boot diskless mobile computing
US20120185699A1 (en) * 2011-01-14 2012-07-19 International Business Machines Corporation Space-efficient encryption with multi-block binding
US9264230B2 (en) 2011-03-14 2016-02-16 International Business Machines Corporation Secure key management
US8789210B2 (en) 2011-05-04 2014-07-22 International Business Machines Corporation Key usage policies for cryptographic keys
US8566913B2 (en) 2011-05-04 2013-10-22 International Business Machines Corporation Secure key management
US8675871B2 (en) 2011-05-31 2014-03-18 International Business Machines Corporation Protecting a control vector in an optional block of a standard key block
US8615081B2 (en) 2011-06-01 2013-12-24 International Business Machines Corporation Secure key creation
US8953789B2 (en) 2011-06-01 2015-02-10 International Business Machines Corporation Combining key control information in common cryptographic architecture services
US9252944B2 (en) 2014-03-21 2016-02-02 International Business Machines Corporation Key wrapping for common cryptographic architecture (CCA) key token
US10313129B2 (en) * 2015-06-26 2019-06-04 Intel Corporation Keyed-hash message authentication code processors, methods, systems, and instructions
US10303900B2 (en) * 2015-07-20 2019-05-28 Intel Corporation Technologies for secure programming of a cryptographic engine for trusted I/O
US20200082088A1 (en) * 2018-09-11 2020-03-12 Qualcomm Incorporated User/Enterprise Data Protection Preventing Non-Authorized Firmware Modification
US11675919B2 (en) * 2019-05-31 2023-06-13 Apple Inc. Separation of managed and unmanaged data in a computing device
US20210124818A1 (en) * 2019-10-23 2021-04-29 Qualcomm Incorporated Hardware-based throttling of user access
US11263310B2 (en) * 2019-11-26 2022-03-01 Red Hat, Inc. Using a trusted execution environment for a proof-of-work key wrapping scheme that verifies remote device capabilities

Also Published As

Publication number Publication date
US20220191039A1 (en) 2022-06-16
US11575520B2 (en) 2023-02-07
GB202117084D0 (en) 2022-01-12
CN114629633A (zh) 2022-06-14
GB2605676A (en) 2022-10-12
JP2022094333A (ja) 2022-06-24

Similar Documents

Publication Publication Date Title
DE112012002277B4 (de) Verknüpfen von Schlüssel-Steuerdaten bei Diensten allgemeiner kryptografischer Architektur
DE60314060T2 (de) Verfahren und Vorrichtung zur Schlüsselverwaltung für gesicherte Datenübertragung
DE102005030590B4 (de) Sicheres Patchsystem
DE102009061045B4 (de) Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
EP3149651B1 (de) System und verfahren zur sicheren überprüfung von auditprotokollen
US6307936B1 (en) Cryptographic key management scheme
DE112005001666B4 (de) Verfahren zum Bereitstellen von privaten Direktbeweis-Schlüsseln in signierten Gruppen für Vorrichtungen mit Hilfe einer Verteilungs-CD
US20230208622A1 (en) Secure key exchange electronic transactions
DE60302276T2 (de) Verfahren zur ferngesteuerten Änderung eines Kommunikationspasswortes
US5555309A (en) Cryptographic key management apparatus and methods
DE102018216915A1 (de) System und Verfahren für sichere Kommunikationen zwischen Steuereinrichtungen in einem Fahrzeugnetzwerk
DE102013227087A1 (de) Gesichertes Bereitstellen eines Schlüssels
DE10392528T5 (de) Microcode-Patch-Authentifizierung
DE102016112552A1 (de) Datenchiffrierung und -dechiffrierung auf der Grundlage einer Vorrichtungs- und Datenauthentifizierung
DE102010027586B4 (de) Verfahren zum kryptographischen Schutz einer Applikation
DE112005001672T5 (de) Verfahren zum Liefern eines geheimen Direktnachweisschlüssels an Vorrichtungen unter Verwendung eines Onlinedienstes
DE102016210786A1 (de) Komponente zur Anbindung an einen Datenbus und Verfahren zur Umsetzung einer kryptografischen Funktionalität in einer solchen Komponente
DE112012002332B4 (de) Schützen eines Steuervektors in einem kryptographischen System
DE112020000244T5 (de) Initialisierung einer Datenspeicherungsvorrichtung mit einer Managervorrichtung
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
DE112012000971T5 (de) Datenverschlüsselung
DE102021130643A1 (de) Verbessertes umhüllen von schlüsselblöcken
EP3206154B1 (de) Verfahren und vorrichtungen zum sicheren übermitteln von nutzdaten
US8619992B2 (en) Secure key creation
DE112020000235T5 (de) Anmeldung einer vorautorisierten vorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence