

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

# Was ist der AWS Encryption SDK?
<a name="introduction"></a>

Dabei AWS Encryption SDK handelt es sich um eine clientseitige Verschlüsselungsbibliothek, die entwickelt wurde, um jedem das Verschlüsseln und Entschlüsseln von Daten mithilfe von Industriestandards und bewährten Methoden zu erleichtern. Es ermöglicht Ihnen, sich auf die Kernfunktionalität Ihrer Anwendung zu konzentrieren und nicht darauf, wie Sie Ihre Daten am besten verschlüsseln und entschlüsseln können. Die AWS Encryption SDK wird kostenlos unter der Apache 2.0-Lizenz zur Verfügung gestellt.

Das AWS Encryption SDK beantwortet Fragen wie die folgenden für Sie:
+ Welche Verschlüsselungsalgorithmus sollte ich verwenden?
+ Wie oder in welchem Modus sollte ich diesen Algorithmus verwenden?
+ Wie kann ich den Verschlüsselungsschlüssel generieren?
+ Wie kann ich den Verschlüsselungsschlüssel schützen, und wo sollte ich ihn speichern?
+ Wie kann ich meine verschlüsselten Daten portierbar machen?
+ Wie kann ich sicherstellen, dass der beabsichtigte Empfänger meine verschlüsselten Daten lesen kann?
+ Wie kann ich sicherstellen, dass meine verschlüsselten Daten zwischen dem Schreiben und dem Lesen nicht verändert werden?
+ Wie verwende ich die Datenschlüssel, die AWS KMS zurückgegeben werden?

Mit dem AWS Encryption SDK definieren Sie einen [Hauptschlüsselanbieter oder einen [Schlüsselbund](concepts.md#keyring)](concepts.md#master-key-provider), der festlegt, welche Wrapping-Schlüssel Sie zum Schutz Ihrer Daten verwenden. Anschließend verschlüsseln und entschlüsseln Sie Ihre Daten mit einfachen Methoden, die von der bereitgestellt werden. AWS Encryption SDK Das AWS Encryption SDK macht den Rest.

Ohne das AWS Encryption SDK investieren Sie möglicherweise mehr Aufwand in die Entwicklung einer Verschlüsselungslösung als in die Kernfunktionalität Ihrer Anwendung. The AWS Encryption SDK beantwortet diese Fragen, indem es die folgenden Informationen bereitstellt.

**Eine Standard-Implementierung, die die bewährten Methoden der Kryptografie befolgt**  
Standardmäßig AWS Encryption SDK generiert der einen eindeutigen Datenschlüssel für jedes Datenobjekt, das er verschlüsselt. Dies entspricht den bewährten Methoden der Kryptografie, eindeutige Datenschlüsseln für jede Verschlüsselungsoperation zu verwenden.  
Der AWS Encryption SDK verschlüsselt Ihre Daten mithilfe eines sicheren, authentifizierten, symmetrischen Schlüsselalgorithmus. Weitere Informationen finden Sie unter [Unterstützte Algorithmus-Suiten in der AWS Encryption SDK](supported-algorithms.md).

**Ein Framework zum Schutz von Datenschlüsseln durch Wrapping Keys**  
Das AWS Encryption SDK schützt die Datenschlüssel, die Ihre Daten verschlüsseln, indem es sie unter einem oder mehreren Umschließungsschlüsseln verschlüsselt. Durch die Bereitstellung eines Frameworks zum Verschlüsseln von Datenschlüsseln mit mehr als einem Umschließungsschlüssel AWS Encryption SDK trägt das dazu bei, dass Ihre verschlüsselten Daten portabel sind.   
Verschlüsseln Sie beispielsweise Daten mit einem Eingang AWS KMS und AWS KMS key einem Schlüssel aus Ihrem lokalen HSM. Sie können einen der Wrapping-Schlüssel verwenden, um die Daten zu entschlüsseln, falls einer nicht verfügbar ist oder der Anrufer nicht berechtigt ist, beide Schlüssel zu verwenden.

**Eine formatierte Nachricht, die verschlüsselte Datenschlüssel mit den verschlüsselten Daten speichert**  
Der AWS Encryption SDK speichert die verschlüsselten Daten und den verschlüsselten Datenschlüssel zusammen in einer [verschlüsselten Nachricht](concepts.md#message), die ein definiertes Datenformat verwendet. Das bedeutet, dass Sie die Datenschlüssel, die Ihre Daten verschlüsseln, nicht nachverfolgen oder schützen müssen, da dies für Sie AWS Encryption SDK erledigt wird.

Für einige Sprachimplementierungen von ist ein AWS SDK AWS Encryption SDK erforderlich, für das AWS Encryption SDK ist jedoch kein AWS-Konto und es ist auch von keinem AWS Dienst abhängig. Sie benötigen ein AWS-Konto nur, wenn Sie es [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#kms-keys)zum Schutz Ihrer Daten verwenden möchten.

## Entwickelt in Open-Source-Repositorien
<a name="esdk-repos"></a>

Das AWS Encryption SDK wurde in Open-Source-Repositorien am entwickelt. GitHub Sie können diese Repositorien verwenden, um den Code einzusehen, Probleme zu lesen und einzureichen sowie Informationen zu finden, die für Ihre Sprachimplementierung spezifisch sind.
+ AWS-Verschlüsselungs-SDK for C — [aws-encryption-sdk-c](https://github.com/aws/aws-encryption-sdk-c/)
+ AWS Encryption SDK [für.NET — .NET-Verzeichnis](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/) des `aws-encryption-sdk` Repositorys.
+ AWS Verschlüsselung CLI — [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/)
+ AWS-Verschlüsselungs-SDK for Java — [aws-encryption-sdk-java](https://github.com/aws/aws-encryption-sdk-java/)
+ AWS-Verschlüsselungs-SDK for JavaScript — [aws-encryption-sdk-javascript](https://github.com/aws/aws-encryption-sdk-javascript/)
+ AWS-Verschlüsselungs-SDK for Python — [aws-encryption-sdk-python](https://github.com/aws/aws-encryption-sdk-python/)
+ AWS Encryption SDK für [Rust — Rust-Verzeichnis](https://github.com/aws/aws-encryption-sdk-dafny/tree/mainline/AwsEncryptionSDK/runtimes/rust/) des `aws-encryption-sdk` Repositorys.
+ AWS Encryption SDK für [Go — Go-Verzeichnis](https://github.com/aws/aws-encryption-sdk/tree/mainline/releases/go/encryption-sdk/) des `aws-encryption-sdk` Repositorys

## Kompatibilität mit Verschlüsselungsbibliotheken und -services
<a name="intro-compatibility"></a>

Das AWS Encryption SDK wird in mehreren [Programmiersprachen](programming-languages.md) unterstützt. Alle Sprachimplementierungen sind interoperabel. Sie können mit einer Sprachimplementierung verschlüsseln und mit einer anderen entschlüsseln. Die Interoperabilität ist möglicherweise von Spracheinschränkungen abhängig. Wenn dies der Fall ist, werden diese Einschränkungen im Thema zur Sprachimplementierung beschrieben. Außerdem müssen Sie beim Verschlüsseln und Entschlüsseln kompatible Schlüsselbünde oder Masterschlüssel und Masterschlüsselanbieter verwenden. Details hierzu finden Sie unter [Schlüsselbund-Kompatibilität](choose-keyring.md#keyring-compatibility).

Sie können jedoch AWS Encryption SDK nicht mit anderen Bibliotheken zusammenarbeiten. Da jede Bibliothek verschlüsselte Daten in einem anderen Format zurückgibt, können Sie nicht mit einer Bibliothek verschlüsseln und mit einer anderen entschlüsseln.

**DynamoDB Encryption Client und clientseitige Amazon S3 S3-Verschlüsselung**  <a name="ESDK-DDBEC"></a>
Die Daten, die mit dem [DynamoDB Encryption Client oder der clientseitigen [Amazon S3 S3-Verschlüsselung](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingClientSideEncryption.html)](https://docs.aws.amazon.com/dynamodb-encryption-client/latest/devguide/) verschlüsselt wurden, AWS Encryption SDK können nicht entschlüsselt werden. [Diese Bibliotheken können die von ihnen zurückgegebene verschlüsselte Nachricht nicht entschlüsseln.](concepts.md#message) AWS Encryption SDK  

**AWS Key Management Service (AWS KMS)**  <a name="ESDK-KMS"></a>
Sie AWS Encryption SDK können [Datenschlüssel verwenden [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys), um Ihre Daten](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#data-keys) zu schützen, einschließlich KMS-Schlüssel für mehrere Regionen. Sie können die beispielsweise so konfigurieren, AWS Encryption SDK dass Ihre Daten unter einem oder mehreren AWS KMS keys in Ihrem verschlüsselt werden. AWS-Konto Sie müssen jedoch den verwenden, AWS Encryption SDK um diese Daten zu entschlüsseln.   
Der Chiffretext, den die Verschlüsselungs- oder Operationen zurückgeben, AWS Encryption SDK kann nicht AWS KMS [entschlüsselt](https://docs.aws.amazon.com/kms/latest/APIReference/API_Encrypt.html) werden. [ReEncrypt](https://docs.aws.amazon.com/kms/latest/APIReference/API_ReEncrypt.html) [Ebenso kann der AWS KMS[Decrypt-Vorgang](https://docs.aws.amazon.com/kms/latest/APIReference/API_Decrypt.html) die zurückgesendete verschlüsselte Nachricht nicht entschlüsseln.](concepts.md#message) AWS Encryption SDK   
Der AWS Encryption SDK unterstützt nur KMS-Schlüssel mit [symmetrischer Verschlüsselung](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#symmetric-cmks). Sie können keinen [asymmetrischen KMS-Schlüssel](https://docs.aws.amazon.com/kms/latest/developerguide/symm-asymm-concepts.html#asymmetric-cmks) für die Verschlüsselung oder Anmeldung in verwenden. AWS Encryption SDK Das AWS Encryption SDK generiert eigene ECDSA-Signaturschlüssel für [Algorithmen-Pakete](supported-algorithms.md), die Nachrichten signieren.

## Support und Wartung
<a name="support"></a>

Das AWS Encryption SDK verwendet dieselbe [Wartungsrichtlinie](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html) wie das AWS SDK und die Tools, einschließlich der Versionierungs- und Lebenszyklusphasen. Als [bewährte Methode](best-practices.md) empfehlen wir, dass Sie die neueste verfügbare Version von AWS Encryption SDK für Ihre Programmiersprache verwenden und ein Upgrade durchführen, sobald neue Versionen veröffentlicht werden. Wenn für eine Version wesentliche Änderungen erforderlich sind, z. B. das Upgrade von AWS Encryption SDK Versionen vor 1.7. *x* auf Versionen 2.0. *x* und später stellen wir [detaillierte Anweisungen](migration.md) zur Verfügung, um Ihnen zu helfen.

Jede Programmiersprachenimplementierung von AWS Encryption SDK wird in einem separaten GitHub Open-Source-Repository entwickelt. Der Lebenszyklus und die Supportphase der einzelnen Versionen variieren wahrscheinlich je nach Repositorium. Beispielsweise AWS Encryption SDK könnte sich eine bestimmte Version von in einer Programmiersprache in der Phase der allgemeinen Verfügbarkeit (vollständiger Support) befinden, die end-of-support Phase jedoch in einer anderen Programmiersprache. Wir empfehlen, wann immer möglich eine vollständig unterstützte Version zu verwenden und Versionen zu vermeiden, die nicht mehr unterstützt werden.

Informationen zur Lebenszyklusphase von AWS Encryption SDK Versionen für Ihre Programmiersprache finden Sie in der `SUPPORT_POLICY.rst` Datei in den einzelnen AWS Encryption SDK Repositorys.
+ AWS-Verschlüsselungs-SDK for C [— Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-c/blob/master/SUPPORT_POLICY.rst)
+ AWS Encryption SDK [für .NET — Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-dafny/blob/mainline/SUPPORT_POLICY.rst)
+ AWS Verschlüsselungs-CLI — [Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-cli/blob/master/SUPPORT_POLICY.rst)
+ AWS-Verschlüsselungs-SDK for Java — [Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-java/blob/master/SUPPORT_POLICY.rst)
+ AWS-Verschlüsselungs-SDK for JavaScript — [Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-javascript/blob/master/SUPPORT_POLICY.rst)
+ AWS-Verschlüsselungs-SDK for Python — [Support\$1Policy.rst](https://github.com/aws/aws-encryption-sdk-python/blob/master/SUPPORT_POLICY.rst)

Weitere Informationen finden Sie unter [Versionen von AWS Encryption SDK](about-versions.md) und [AWS SDKs und in den Wartungsrichtlinien für Tools](https://docs.aws.amazon.com/sdkref/latest/guide/maint-policy.html) im Tools-Referenzhandbuch. AWS SDKs 

## Mehr lernen
<a name="intro-see-also"></a>

Weitere Informationen zur Verschlüsselung AWS Encryption SDK und zur clientseitigen Verschlüsselung finden Sie in diesen Quellen.
+ Hilfe zu den Begriffen und Konzepten in diesem SDK finden Sie unter [Konzepte in der AWS Encryption SDK](concepts.md).
+ Richtlinien für bewährte Verfahren finden Sie unter. [Bewährte Methoden für AWS Encryption SDK](best-practices.md)
+ Weitere Information zur Funktionsweise dieses SDK finden Sie unter [Wie das SDK funktioniert](how-it-works.md).
+ Beispiele, die zeigen, wie Optionen in der konfiguriert werden AWS Encryption SDK, finden Sie unter[Konfiguration der AWS Encryption SDK](configure.md).
+ Detaillierte technische Informationen finden Sie unter [AWS Encryption SDK Referenz](reference.md).
+ Die technischen Spezifikationen für finden Sie in der [AWS Encryption SDK Spezifikation](https://github.com/awslabs/aws-encryption-sdk-specification/) unter GitHub. AWS Encryption SDK
+ Antworten auf Ihre Fragen zur Nutzung des AWS Encryption SDK Crypto Tools Discussion Forum finden Sie im [AWS Crypto Tools Discussion Forum](https://forums.aws.amazon.com/forum.jspa?forumID=302).

Für Informationen über Implementierungen von AWS Encryption SDK in verschiedenen Programmiersprachen.
+ **C**: Siehe [AWS-Verschlüsselungs-SDK for C](c-language.md) die AWS Encryption SDK [C-Dokumentation](https://aws.github.io/aws-encryption-sdk-c/html/) und das [aws-encryption-sdk-c](https://github.com/aws/aws-encryption-sdk-c/)Projektarchiv unter GitHub.
+ **C\$1/.NET**: Siehe [AWS Encryption SDK für .NET](dot-net.md) und das [aws-encryption-sdk-net](https://github.com/aws/aws-encryption-sdk/tree/mainline/AwsEncryptionSDK/runtimes/net/)Verzeichnis des Repositorys ist aktiviert. `aws-encryption-sdk` GitHub
+ **Befehlszeilenschnittstelle**: Siehe[AWS Encryption SDK Befehlszeilenschnittstelle](crypto-cli.md), [Lesen Sie die Dokumentation](https://aws-encryption-sdk-cli.readthedocs.io/en/latest/) für die AWS Encryption CLI und das [aws-encryption-sdk-cli](https://github.com/aws/aws-encryption-sdk-cli/)Repository auf GitHub.
+ **Java**: Siehe[AWS-Verschlüsselungs-SDK for Java](java.md), das AWS Encryption SDK [Javadoc](https://aws.github.io/aws-encryption-sdk-java/) und das [aws-encryption-sdk-java](https://github.com/aws/aws-encryption-sdk-java/)Repository ist aktiviert. GitHub

  **JavaScript**: Siehe [AWS-Verschlüsselungs-SDK for JavaScript](javascript.md) und das [aws-encryption-sdk-javascript](https://github.com/aws/aws-encryption-sdk-javascript/)Repository ist aktiviert. GitHub 
+ **Python**: Siehe [AWS-Verschlüsselungs-SDK for Python](python.md) die AWS Encryption SDK [Python-Dokumentation](https://aws-encryption-sdk-python.readthedocs.io/en/latest/) und das [aws-encryption-sdk-python](https://github.com/aws/aws-encryption-sdk-python/)Repository unter GitHub.

## Senden von Feedback
<a name="report-issues"></a>

Wir freuen uns über Ihr Feedback\$1 Wenn Sie eine Frage oder einen Kommentar haben oder ein Problem melden möchten, verwenden Sie bitte die folgenden Ressourcen.
+ Wenn Sie eine potenzielle Sicherheitslücke in der entdecken AWS Encryption SDK, [benachrichtigen Sie bitte den AWS Sicherheitsdienst](https://aws.amazon.com/security/vulnerability-reporting/). Erstellen Sie kein öffentliches GitHub Problem.
+ Um Feedback zu geben AWS Encryption SDK, reichen Sie ein Problem im GitHub Repository für die von Ihnen verwendete Programmiersprache ein. 
+ Verwenden Sie die Feedback-Links auf dieser Seite, um **Feedback** zu dieser Dokumentation zu geben. Sie können auch ein Problem melden oder zu [aws-encryption-sdk-docs](https://github.com/awsdocs/aws-encryption-sdk-docs)dem Open-Source-Repository für diese Dokumentation beitragen. GitHub

# Konzepte in der AWS Encryption SDK
<a name="concepts"></a>

In diesem Abschnitt werden die in der AWS Encryption SDK verwendeten Konzepte vorgestellt und ein Glossar sowie eine Referenz bereitgestellt. Es soll Ihnen helfen, zu verstehen, wie das AWS Encryption SDK funktioniert und mit welchen Begriffen wir es beschreiben.

Benötigen Sie Hilfe? 
+ Erfahren Sie, wie die [Umschlagverschlüsselung AWS Encryption SDK](#envelope-encryption) verwendet, um Ihre Daten zu schützen.
+ Erfahren Sie mehr über die Elemente der Umschlagverschlüsselung: die [Datenschlüssel](#DEK), die Ihre Daten schützen, und die [Umhüllungsschlüssel](#master-key), die Ihre Datenschlüssel schützen. 
+ Erfahren Sie mehr über die [Schlüsselanhänger](#keyring) und [Hauptschlüsselanbieter](#master-key-provider), die bestimmen, welche Wrap-Schlüssel Sie verwenden.
+ Erfahren Sie mehr über den [Verschlüsselungskontext](#encryption-context), der Ihrem Verschlüsselungsprozess Integrität verleiht. Es ist optional, aber es ist eine bewährte Methode, die wir empfehlen.
+ Erfahren Sie mehr über die [verschlüsselte Nachricht](#message), die von den Verschlüsselungsmethoden zurückgegeben wird. 
+ Dann sind Sie bereit, das AWS Encryption SDK in Ihrer bevorzugten [Programmiersprache](programming-languages.md) zu verwenden.

**Topics**
+ [

## Umschlagverschlüsselung
](#envelope-encryption)
+ [

## Datenschlüssel
](#DEK)
+ [

## Schlüssel zum Umschließen
](#master-key)
+ [

## Schlüsselanhänger und Hauptschlüsselanbieter
](#keyring)
+ [

## Verschlüsselungskontext
](#encryption-context)
+ [

## Verschlüsselte Nachricht
](#message)
+ [

## Algorithmen-Paket
](#crypto-algorithm)
+ [

## Manager von kryptographischen Materialien
](#crypt-materials-manager)
+ [

## Symmetrische und asymmetrische Verschlüsselung
](#symmetric-key-encryption)
+ [

## Wichtiges Engagement
](#key-commitment)
+ [

## Verpflichtungspolitik
](#commitment-policy)
+ [

## Digitale Signaturen
](#digital-sigs)

## Umschlagverschlüsselung
<a name="envelope-encryption"></a>

Die Sicherheit Ihrer verschlüsselten Daten hängt teilweise vom Schutz des Datenschlüssels ab, der sie entschlüsseln kann. Eine akzeptierte bewährte Methode zum Schutz des Datenschlüssels ist seine Verschlüsselung. Dazu benötigen Sie einen weiteren Verschlüsselungsschlüssel, der als Schlüsselverschlüsselungsschlüssel oder *[Wrapping-Schlüssel](#master-key)* bezeichnet wird. *Die Praxis, Datenschlüssel mit einem Wrapping-Schlüssel zu verschlüsseln, wird als Envelope-Verschlüsselung bezeichnet.*

**Schutz von Datenschlüsseln**  
Die AWS Encryption SDK verschlüsselt jede Nachricht mit einem eindeutigen Datenschlüssel. Anschließend verschlüsselt es den Datenschlüssel unter dem von Ihnen angegebenen Wrapping-Schlüssel. Es speichert den verschlüsselten Datenschlüssel zusammen mit den verschlüsselten Daten in der verschlüsselten Nachricht, die es zurückgibt.  
Um Ihren Wrapping-Schlüssel anzugeben, verwenden Sie einen [Schlüsselbund](#keyring) oder einen [Master-Key-Anbieter](#master-key-provider).  

![\[Umschlagverschlüsselung mit dem AWS Encryption SDK\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/envelope-encryption-70.png)


**Verschlüsseln derselben Daten unter mehreren Wrapping Keys**  
Sie können den Datenschlüssel unter mehreren Umschließungsschlüsseln verschlüsseln. Möglicherweise möchten Sie unterschiedliche Umschließungsschlüssel für verschiedene Benutzer oder Umschließungsschlüssel unterschiedlichen Typs oder an verschiedenen Speicherorten bereitstellen. Jeder der Umschließungsschlüssel verschlüsselt denselben Datenschlüssel. Der AWS Encryption SDK speichert alle verschlüsselten Datenschlüssel zusammen mit den verschlüsselten Daten in der verschlüsselten Nachricht.   
Um die Daten zu entschlüsseln, müssen Sie einen Umschließungsschlüssel angeben, mit dem einer der verschlüsselten Datenschlüssel entschlüsselt werden kann.  

![\[Jeder Umschließungsschlüssel verschlüsselt denselben Datenschlüssel, sodass für jeden Umhüllungsschlüssel ein verschlüsselter Datenschlüssel entsteht\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/multiple-wrapping-keys-70.png)


**Kombination der Stärken mehrerer Algorithmen**  
Um Ihre Daten zu verschlüsseln, AWS Encryption SDK verwendet der standardmäßig eine ausgeklügelte [Algorithmussuite](supported-algorithms.md) mit symmetrischer AES-GCM-Verschlüsselung, einer Schlüsselableitungsfunktion (HKDF) und Signierung. Um den Datenschlüssel zu verschlüsseln, können Sie einen [symmetrischen oder asymmetrischen](#symmetric-key-encryption) Verschlüsselungsalgorithmus angeben, der Ihrem Wrapping-Schlüssel entspricht.   
Im Allgemeinen sind symmetrische Schlüsselverschlüsselungsalgorithmen schneller und erzeugen kleinere Verschlüsselungstexte als eine asymmetrische Verschlüsselung oder eine *Verschlüsselung mit öffentlichem Schlüssel*. Algorithmen mit öffentlichem Schlüssel unterstützen jedoch eine inhärente Rollentrennung und eine einfachere Schlüsselverwaltung. Um beide Stärken zu kombinieren, können Sie Ihre Daten mit symmetrischer Schlüsselverschlüsselung verschlüsseln und anschließend den Datenschlüssel mit Public-Key-Verschlüsselung verschlüsseln.

## Datenschlüssel
<a name="DEK"></a>

Ein *Datenschlüssel* ist ein Verschlüsselungsschlüssel, den das AWS Encryption SDK verwendet, um Ihre Daten zu verschlüsseln. Jeder Datenschlüssel ist ein Byte-Array, das die Anforderungen für kryptografische Schlüssel erfüllt. Sofern Sie nicht das [Zwischenspeichern von Datenschlüsseln](data-key-caching.md) verwenden, AWS Encryption SDK verwendet der einen eindeutigen Datenschlüssel, um jede Nachricht zu verschlüsseln.

Sie müssen Datenschlüssel nicht spezifizieren, generieren, implementieren, erweitern, schützen oder verwenden. Das AWS Encryption SDK übernimmt diese Aufgabe für Sie, wenn Sie die Ver- und Entschlüsselungsoperationen aufrufen. 

Um Ihre Datenschlüssel zu schützen, werden sie mit einem oder mehreren AWS Encryption SDK *Schlüsselschlüsseln verschlüsselt, die als Wrapping Keys* [oder Master Keys](#master-key) bezeichnet werden. Nachdem der Ihre Klartext-Datenschlüssel AWS Encryption SDK verwendet hat, um Ihre Daten zu verschlüsseln, werden sie so schnell wie möglich aus dem Speicher entfernt. Die verschlüsselten Datenschlüssel werden dann mit den verschlüsselten Daten in der [verschlüsselten Nachricht](#message) gespeichert, die die Verschlüsselungsoperationen zurückgibt. Details hierzu finden Sie unter [So AWS Encryption SDK funktioniert das](how-it-works.md).

**Tipp**  
In der AWS Encryption SDK unterscheiden wir *Datenschlüssel von *Datenverschlüsselungsschlüsseln**. Mehrere der unterstützten [Algorithmen-Pakete](#crypto-algorithm), einschließlich des Standardpakets, verwenden eine [Schlüsselableitungsfunktion](https://en.wikipedia.org/wiki/Key_derivation_function), die verhindert, dass der Datenschlüssel seine kryptografische Grenze erreicht. Die Schlüsselableitungsfunktion nimmt den Datenschlüssel als Eingabe entgegen und gibt einen Datenverschlüsselungsschlüssel zurück, mit dem die Daten letztlich verschlüsselt werden. Aus diesem Grund sagen wir oft, dass die Daten „unter“ einem Datenschlüssel verschlüsselt werden, statt „von“ dem Datenschlüssel.

Jeder verschlüsselte Datenschlüssel enthält Metadaten, einschließlich der Kennung des Wrapping-Schlüssels, mit dem er verschlüsselt wurde. Diese Metadaten erleichtern es den, gültige Wrapping-Schlüssel beim Entschlüsseln AWS Encryption SDK zu identifizieren.

## Schlüssel zum Umschließen
<a name="master-key"></a>

Ein *Wrapping Key* ist ein Schlüssel zur AWS Encryption SDK Verschlüsselung des [Datenschlüssels, mit dem Ihre Daten](#DEK) verschlüsselt werden. Jeder Klartext-Datenschlüssel kann mit einem oder mehreren Umschließungsschlüsseln verschlüsselt werden. Sie legen fest, welche Umschließungsschlüssel zum Schutz Ihrer Daten verwendet werden, wenn Sie einen [Schlüsselbund](#keyring) oder einen [Hauptschlüsselanbieter](#master-key-provider) konfigurieren.

**Anmerkung**  
*Wrapping Key* bezieht sich auf die Schlüssel in einem Schlüsselbund oder einem Hauptschlüsselanbieter. *Der Hauptschlüssel* ist normalerweise der `MasterKey` Klasse zugeordnet, die Sie instanziieren, wenn Sie einen Hauptschlüsselanbieter verwenden.

Der AWS Encryption SDK unterstützt mehrere häufig verwendete Wrapping-Schlüssel, wie z. B. AWS Key Management Service (AWS KMS) symmetrische Schlüssel [AWS KMS keys](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)(einschließlich [KMS-Schlüssel für mehrere Regionen), AES-GCM-Rohschlüssel](configure.md#config-mrks) (Advanced Encryption Standard/Galois Counter Mode) und RSA-Rohschlüssel. Sie können auch Ihre eigenen Wrapping-Schlüssel erweitern oder implementieren. 

Wenn Sie die Envelope-Verschlüsselung verwenden, müssen Sie Ihre Wrapping-Schlüssel vor unbefugtem Zugriff schützen. Sie können dies auf eine der folgenden Arten tun:
+ Verwenden Sie einen Webservice, der für diesen Zweck vorgesehen ist, wie z. B. [AWS Key Management Service (AWS KMS)](https://aws.amazon.com/kms/).
+ Verwenden Sie ein [Hardwaresicherheitsmodul (HSM)](https://en.wikipedia.org/wiki/Hardware_security_module), wie z. B. die Angebote von [AWS CloudHSM](https://aws.amazon.com/cloudhsm/).
+ Verwenden Sie andere wichtige Verwaltungstools und -dienste.

Wenn Sie kein Schlüsselverwaltungssystem haben, empfehlen wir AWS KMS. Das AWS Encryption SDK lässt sich integrieren AWS KMS , um Ihnen zu helfen, Ihre Verpackungsschlüssel zu schützen und zu verwenden. Für das AWS Encryption SDK ist jedoch kein AWS Service erforderlich AWS .

## Schlüsselanhänger und Hauptschlüsselanbieter
<a name="keyring"></a>

Um die Wrapping-Schlüssel anzugeben, die Sie für die Verschlüsselung und Entschlüsselung verwenden, verwenden Sie einen Schlüsselbund oder einen Hauptschlüsselanbieter. Sie können die von ihm bereitgestellten Schlüsselringe und Hauptschlüsselanbieter verwenden oder Ihre AWS Encryption SDK eigenen Implementierungen entwerfen. Der AWS Encryption SDK stellt Schlüsselringe und Hauptschlüsselanbieter bereit, die je nach Spracheinschränkungen miteinander kompatibel sind. Details hierzu finden Sie unter [Schlüsselbund-Kompatibilität](choose-keyring.md#keyring-compatibility). 

Ein *Schlüsselbund* generiert, verschlüsselt und entschlüsselt Datenschlüssel. Wenn Sie einen Schlüsselbund definieren, können Sie die [Umschließungsschlüssel angeben, mit denen Ihre Datenschlüssel](#master-key) verschlüsselt werden. Die meisten Schlüsselbunde spezifizieren mindestens einen Umschließungsschlüssel oder einen Dienst, der Schlüssel zum Umschließen bereitstellt und schützt. Sie können auch einen Schlüsselbund ohne Umschließungsschlüssel oder einen komplexeren Schlüsselbund mit zusätzlichen Konfigurationsoptionen definieren. Hilfe bei der Auswahl und Verwendung der von definierten Schlüsselbunden AWS Encryption SDK finden Sie unter. [Schlüsselringe](choose-keyring.md) 

Schlüsselringe werden in den folgenden Programmiersprachen unterstützt:
+ AWS-Verschlüsselungs-SDK for C
+ AWS-Verschlüsselungs-SDK for JavaScript
+ AWS Encryption SDK für .NET
+ Version 3. *x* der AWS-Verschlüsselungs-SDK for Java
+ Ausführung 4. *x* von AWS-Verschlüsselungs-SDK for Python, wenn es mit der optionalen Abhängigkeit der [Cryptographic Material Providers Library](https://github.com/aws/aws-cryptographic-material-providers-library) (MPL) verwendet wird.
+ Version 1. *x* von der AWS Encryption SDK für Rust
+ Version 0.1. *x* oder höher von AWS Encryption SDK for Go

Ein *Hauptschlüsselanbieter* ist eine Alternative zu einem Schlüsselbund. Der Hauptschlüsselanbieter gibt die von Ihnen angegebenen Wrapping-Schlüssel (oder Hauptschlüssel) zurück. Jeder Masterschlüssel ist einem Masterschlüssel-Anbieter zugeordnet, aber ein Masterschlüssel-Anbieter stellt in der Regel mehrere Masterschlüssel bereit. Master-Key-Anbieter werden in Java, Python und der AWS Encryption CLI unterstützt. 

Sie müssen einen Schlüsselbund (oder einen Hauptschlüsselanbieter) für die Verschlüsselung angeben. Sie können denselben Schlüsselbund (oder Hauptschlüsselanbieter) oder einen anderen für die Entschlüsselung angeben. Bei der Verschlüsselung AWS Encryption SDK verwendet der alle von Ihnen angegebenen Umschließungsschlüssel, um den Datenschlüssel zu verschlüsseln. Beim Entschlüsseln AWS Encryption SDK verwendet der nur die von Ihnen angegebenen Umschließungsschlüssel, um einen verschlüsselten Datenschlüssel zu entschlüsseln. [Die Angabe von Umschließungsschlüsseln für die Entschlüsselung ist optional, hat sich aber bewährt. AWS Encryption SDK](best-practices.md) 

Einzelheiten zum Angeben von Schlüsseln zum Umschließen von Schlüsseln finden Sie unter[Auswahl von Schlüsseln zum Umbrechen](configure.md#config-keys). 

## Verschlüsselungskontext
<a name="encryption-context"></a>

Um die Sicherheit Ihrer kryptographischen Operationen zu verbessern, fügen Sie einen Verschlüsselungskontext in alle Anfragen zur Verschlüsselung von Daten ein. Die Verwendung eines Verschlüsselungskontexts ist optional, aber wir empfehlen dies als bewährte Methode für die Kryptografie.

Ein *Verschlüsselungskontext* ist eine Gruppe von Name-Wert-Paaren mit willkürlichen, nicht geheimen, zusätzlich authentifizierten Daten. Der Verschlüsselungskontext kann beliebige Daten enthalten, aber er besteht in der Regel aus Daten, die für die Protokollierung und Verfolgung nützlich sind, wie z. B. Daten über den Dateityp, den Zweck oder das Eigentum. Wenn Sie Daten verschlüsseln, wird der Verschlüsselungskontext kryptografisch an die verschlüsselten Daten gebunden, sodass derselbe Verschlüsselungskontext zur Entschlüsselung der Daten benötigt wird. Das AWS Encryption SDK enthält den Verschlüsselungskontext als Klartext im Header der [verschlüsselten Nachricht](#message), die es zurückgibt.

Der verwendete Verschlüsselungskontext besteht aus dem von Ihnen angegebenen Verschlüsselungskontext und einem öffentlichen key pair, das der [Cryptographic Materials Manager](#crypt-materials-manager) (CMM) hinzufügt. AWS Encryption SDK Genauer gesagt: Wann immer Sie einen [Verschlüsselungsalgorithmus mit Signatur](algorithms-reference.md) verwenden, fügt der CMM ein Name-Wert-Paar zum Verschlüsselungskontext hinzu, der aus einem reservierten Namen, `aws-crypto-public-key` und einem Wert besteht, der den öffentlichen Verifizierungsschlüssel darstellt. Der `aws-crypto-public-key` Name im Verschlüsselungskontext ist für den reserviert AWS Encryption SDK und kann nicht als Name in einem anderen Paar im Verschlüsselungskontext verwendet werden. Weitere Informationen finden Sie unter [AAD](message-format.md#header-aad) in *Nachrichtenformat – Referenz*.

Der folgende Beispiel-Verschlüsselungskontext besteht aus zwei Verschlüsselungskontext-Paaren, die in der Anfrage angegeben werden, und dem öffentlichen Schlüsselpaar, das der (CMM) hinzufügt.

```
"Purpose"="Test", "Department"="IT", aws-crypto-public-key=<public key>
```

Zum Entschlüsseln der Daten übergeben Sie die verschlüsselte Nachricht. Da der den Verschlüsselungskontext aus dem verschlüsselten Nachrichtenheader extrahieren AWS Encryption SDK kann, müssen Sie den Verschlüsselungskontext nicht separat angeben. Der Verschlüsselungskontext kann jedoch helfen zu bestätigen, dass Sie die richtige verschlüsselte Nachricht entschlüsselt wurde. 
+ Wenn Sie in der [AWS Encryption SDK -Befehlszeilenschnittstelle](crypto-cli.md) einen Verschlüsselungskontext in einem Entschlüsselungsbefehl angeben, überprüft die CLI, dass die Werte im Verschlüsselungskontext der verschlüsselten Nachricht vorhanden sind, bevor sie die Klartextdaten zurückgibt. 
+ In anderen Programmiersprachenimplementierungen umfasst die Entschlüsselungsantwort den Verschlüsselungskontext und die Klartextdaten. Die Entschlüsselungsfunktion in Ihrer Anwendung sollte immer überprüfen, ob der Verschlüsselungskontext in der decrypt-Antwort den Verschlüsselungskontext in der Verschlüsselungsanfrage (oder einer Teilmenge) enthält, bevor sie die Klartextdaten zurückgibt.

**Anmerkung**  
Die folgenden Versionen unterstützen den [erforderlichen Verschlüsselungskontext CMM](configure.md#config-required-encryption-context-cmm), den Sie verwenden können, um einen Verschlüsselungskontext für alle Verschlüsselungsanforderungen vorzuschreiben.  
Version 3. *x* der AWS-Verschlüsselungs-SDK for Java
Ausführung 4. *x* und höher von AWS Encryption SDK für .NET
Version 4. *x* von AWS-Verschlüsselungs-SDK for Python, wenn es mit der optionalen Abhängigkeit der [Cryptographic Material Providers Library](https://github.com/aws/aws-cryptographic-material-providers-library) (MPL) verwendet wird.
Version 1. *x* von der AWS Encryption SDK für Rust
Version 0.1. *x* oder höher von AWS Encryption SDK for Go

Wenn Sie einen Verschlüsselungskontext wählen, denken Sie daran, dass dies kein Geheimnis ist. Der Verschlüsselungskontext wird im Klartext im Header der [verschlüsselten Nachricht](#message) angezeigt, die AWS Encryption SDK zurückgegeben wird. Wenn Sie verwenden AWS Key Management Service, wird der Verschlüsselungskontext möglicherweise auch im Klartext in Prüfaufzeichnungen und Protokollen angezeigt, z. B. AWS CloudTrail

Beispiele für das Einreichen und Überprüfen eines Verschlüsselungskontextes in Ihrem Code finden Sie in den Beispielen für Ihre bevorzugte [Programmiersprache](programming-languages.md).

## Verschlüsselte Nachricht
<a name="message"></a>

Wenn Sie Daten mit dem verschlüsseln AWS Encryption SDK, wird eine verschlüsselte Nachricht zurückgegeben.

Eine *verschlüsselte Nachricht* ist eine übertragbare, [formatierte Datenstruktur](message-format.md), die die verschlüsselten Daten zusammen mit verschlüsselten Kopien der Datenschlüssel, der Algorithmus-ID und optional einem [Verschlüsselungskontext](#encryption-context) und einer [digitalen](#digital-sigs) Signatur enthält. Verschlüsselungsoperationen im AWS Encryption SDK geben eine verschlüsselte Nachricht zurück, und Entschlüsselungsoperationen nehmen eine verschlüsselte Nachricht als Eingabe entgegen. 

Die Kombination der verschlüsselten Daten und ihrer verschlüsselten Datenschlüssel rationalisiert den Entschlüsselungsvorgang und befreit Sie von der Notwendigkeit, verschlüsselte Datenschlüssel unabhängig von den verschlüsselten Daten zu speichern und zu verwalten.

Technische Informationen über die verschlüsselte Nachricht finden Sie unter [Verschlüsseltes Nachrichtenformat](message-format.md).

## Algorithmen-Paket
<a name="crypto-algorithm"></a>

Der AWS Encryption SDK verwendet eine Algorithmus-Suite, um die Daten in der [verschlüsselten Nachricht](#message) zu verschlüsseln und zu signieren, die bei den Verschlüsselungs- und Entschlüsselungsvorgängen zurückgegeben werden. Das AWS Encryption SDK unterstützt mehrere [Algorithmen-Pakete](supported-algorithms.md). Alle unterstützten Pakete verwenden Advanced Encryption Standard (AES) als primären Algorithmus und kombinieren ihn mit anderen Algorithmen und Werten. 

Das AWS Encryption SDK legt eine empfohlene Algorithmussuite als Standard für alle Verschlüsselungsvorgänge fest. Die Vorgabe kann sich ändern, wenn sich Standards und bewährte Methoden verbessern. Sie können bei Anfragen zur Verschlüsselung von Daten oder bei der Erstellung eines [Cryptographic Materials Manager (CMM)](#crypt-materials-manager) eine alternative Algorithmus-Suite angeben. Sofern für Ihre Situation jedoch keine Alternative erforderlich ist, empfiehlt es sich, die Standardeinstellung zu verwenden. Die aktuelle Standardeinstellung ist AES-GCM mit einer HMAC-basierten extract-and-expand [Schlüsselableitungsfunktion ([HKDF](https://en.wikipedia.org/wiki/HKDF)), Key](https://en.wikipedia.org/wiki/HKDF) [Commitment](#key-commitment), einer ECDSA-Signatur ([Elliptic Curve Digital Signature Algorithm](#digital-sigs)) und einem 256-Bit-Verschlüsselungsschlüssel. 

Wenn Ihre Anwendung eine hohe Leistung erfordert und die Benutzer, die Daten verschlüsseln, und diejenigen, die Daten entschlüsseln, gleichermaßen vertrauenswürdig sind, sollten Sie erwägen, eine Algorithmus-Suite ohne digitale Signatur anzugeben. Wir empfehlen jedoch dringend eine Algorithmussuite, die Schlüsselzusage und eine Funktion zur Schlüsselableitung umfasst. Algorithmus-Suiten ohne diese Funktionen werden nur aus Gründen der Abwärtskompatibilität unterstützt.

## Manager von kryptographischen Materialien
<a name="crypt-materials-manager"></a>

Der Cryptographic Materials Manager (CMM) stellt die kryptografischen Materialien zusammen, die zum Verschlüsseln und Entschlüsseln von Daten verwendet werden. Die *kryptografischen Materialien* umfassen Klartext- und verschlüsselte Datenschlüssel und einen optionalen Nachrichten-Signaturschlüssel. Sie interagieren nie direkt mit dem CMM. Die Ver- und Entschlüsselungsmethoden übernehmen das für Sie.

Sie können das Standard-CMM oder das von ihm bereitgestellte [Cache-CMM](data-key-caching.md) verwenden oder ein AWS Encryption SDK benutzerdefiniertes CMM schreiben. Und Sie können ein CMM angeben, das ist jedoch nicht erforderlich. Wenn Sie einen Schlüsselbund oder einen Hauptschlüsselanbieter angeben, AWS Encryption SDK erstellt dieser ein Standard-CMM für Sie. Das Standard-CMM ruft die Ver- oder Entschlüsselungsmaterialien von dem Schlüsselbund oder Hauptschlüsselanbieter ab, den Sie angeben. Dabei könnte es sich um einen Aufruf eines kryptographischen Dienstes handeln, z. B. [AWS Key Management Service](https://docs.aws.amazon.com/kms/latest/developerguide/) (AWS KMS).

Da das CMM als Bindeglied zwischen dem AWS Encryption SDK und einem Schlüsselbund (oder Hauptschlüsselanbieter) fungiert, ist es ein idealer Ort für Anpassungen und Erweiterungen, z. B. zur Unterstützung der Richtliniendurchsetzung und Zwischenspeicherung. [Das AWS Encryption SDK bietet ein CMM für die Zwischenspeicherung von Datenschlüsseln.](data-key-caching.md) 

## Symmetrische und asymmetrische Verschlüsselung
<a name="symmetric-key-encryption"></a>

Bei der *symmetrischen Verschlüsselung* wird derselbe Schlüssel zum Verschlüsseln und Entschlüsseln von Daten verwendet. 

*Asymmetrische Verschlüsselung* verwendet ein mathematisch verwandtes Datenschlüsselpaar. Ein Schlüssel des Paares verschlüsselt die Daten; nur der andere Schlüssel im Paar kann die Daten entschlüsseln.

Der AWS Encryption SDK verwendet die [Envelope-Verschlüsselung](#envelope-encryption). Es verschlüsselt Ihre Daten mit einem symmetrischen Datenschlüssel. Es verschlüsselt den symmetrischen Datenschlüssel mit einem oder mehreren symmetrischen oder asymmetrischen Wrapping-Schlüsseln. Es gibt eine [verschlüsselte Nachricht](#message) zurück, die die verschlüsselten Daten und mindestens eine verschlüsselte Kopie des Datenschlüssels enthält. 

**Verschlüsseln Ihrer Daten (symmetrische Verschlüsselung)**  
Um Ihre Daten zu verschlüsseln, AWS Encryption SDK verwendet der einen symmetrischen [Datenschlüssel](#DEK) und eine [Algorithmussuite, die einen symmetrischen Verschlüsselungsalgorithmus](#crypto-algorithm) enthält. Um die Daten zu entschlüsseln, AWS Encryption SDK verwendet der denselben Datenschlüssel und dieselbe Algorithmussuite.

**Verschlüsselung Ihres Datenschlüssels (symmetrische oder asymmetrische Verschlüsselung)**  
Der [Schlüsselbund](#keyring) oder [Hauptschlüsselanbieter, den Sie für einen Verschlüsselungs- und Entschlüsselungsvorgang angeben, bestimmt, wie der symmetrische Datenschlüssel](#master-key-provider) ver- und entschlüsselt wird. Sie können einen Schlüsselbund- oder Hauptschlüsselanbieter wählen, der symmetrische Verschlüsselung verwendet, z. B. einen AWS KMS Schlüsselbund, oder einen Anbieter, der asymmetrische Verschlüsselung verwendet, z. B. einen RSA-Rohschlüsselbund oder. `JceMasterKey`

## Wichtiges Engagement
<a name="key-commitment"></a>

Das AWS Encryption SDK unterstützt *Key Commitment* (manchmal auch als *Robustheit* bezeichnet), eine Sicherheitseigenschaft, die garantiert, dass jeder Chiffretext nur in einen einzigen Klartext entschlüsselt werden kann. Zu diesem Zweck garantiert Key Commitment, dass nur der Datenschlüssel, mit dem Ihre Nachricht verschlüsselt wurde, zur Entschlüsselung verwendet wird. [Das Verschlüsseln und Entschlüsseln mit Key Commitment ist eine AWS Encryption SDK bewährte Methode.](best-practices.md)

Die meisten modernen symmetrischen Chiffren (einschließlich AES) verschlüsseln Klartext unter einem einzigen geheimen Schlüssel, z. B. dem [eindeutigen Datenschlüssel](#DEK), mit dem jede Klartextnachricht verschlüsselt wird AWS Encryption SDK . Beim Entschlüsseln dieser Daten mit demselben Datenschlüssel wird ein Klartext zurückgegeben, der mit dem Original identisch ist. Die Entschlüsselung mit einem anderen Schlüssel schlägt normalerweise fehl. Es ist jedoch möglich, einen Chiffretext unter zwei verschiedenen Schlüsseln zu entschlüsseln. In seltenen Fällen ist es möglich, einen Schlüssel zu finden, der einige Byte Chiffretext in einen anderen, aber dennoch verständlichen Klartext entschlüsseln kann. 

Der verschlüsselt AWS Encryption SDK immer jede Klartext-Nachricht unter einem eindeutigen Datenschlüssel. Es kann diesen Datenschlüssel unter mehreren Umschließungsschlüsseln (oder Hauptschlüsseln) verschlüsseln, aber die Umschließungsschlüssel verschlüsseln immer denselben Datenschlüssel. Dennoch kann eine ausgeklügelte, manuell erstellte [verschlüsselte Nachricht](#message) tatsächlich unterschiedliche Datenschlüssel enthalten, von denen jeder mit einem anderen Umschließungsschlüssel verschlüsselt ist. Entschlüsselt beispielsweise ein Benutzer die verschlüsselte Nachricht, wird 0x0 (falsch) zurückgegeben, während ein anderer Benutzer, der dieselbe verschlüsselte Nachricht entschlüsselt, 0x1 (wahr) erhält.

Um dieses Szenario zu verhindern, AWS Encryption SDK unterstützt der Key Commitment beim Verschlüsseln und Entschlüsseln. Beim AWS Encryption SDK Verschlüsseln einer Nachricht mit Schlüsselzusage wird der eindeutige Datenschlüssel, der den Chiffretext erzeugt hat, kryptografisch an die *Schlüsselverbindungszeichenfolge gebunden, eine nicht geheime Datenschlüssel-ID*. Anschließend speichert es die Schlüsselbestätigungszeichenfolge in den Metadaten der verschlüsselten Nachricht. Beim Entschlüsseln einer Nachricht mit Schlüsselzusage wird AWS Encryption SDK überprüft, ob der Datenschlüssel der einzige Schlüssel für diese verschlüsselte Nachricht ist. Wenn die Überprüfung des Datenschlüssels fehlschlägt, schlägt der Entschlüsselungsvorgang fehl. 

Die Support für Key Commitment wurde in Version 1.7 eingeführt. *x*, das Nachrichten mit Key Commitment entschlüsseln kann, aber nicht mit Key Commitment verschlüsselt. Sie können diese Version verwenden, um die Fähigkeit zur Entschlüsselung von Chiffretext mit Schlüsselbindung vollständig auszuschöpfen. Version 2.0. *x* beinhaltet volle Unterstützung für Key Commitment. Standardmäßig verschlüsselt und entschlüsselt es nur mit Key Commitment. Dies ist eine ideale Konfiguration für Anwendungen, die keinen Chiffretext entschlüsseln müssen, der mit früheren Versionen von verschlüsselt wurde. AWS Encryption SDK

Obwohl das Verschlüsseln und Entschlüsseln mit Schlüsselbindung eine bewährte Methode ist, überlassen wir Ihnen die Entscheidung, wann es verwendet wird, und Sie können das Tempo, in dem Sie es einführen, anpassen. Ab Version 1.7. *x* AWS Encryption SDK unterstützt eine [Commitment-Richtlinie](#commitment-policy), die die [standardmäßige Algorithmussuite](supported-algorithms.md) festlegt und die Anzahl der Algorithmus-Suiten einschränkt, die verwendet werden können. Diese Richtlinie legt fest, ob Ihre Daten mit Schlüsselbindung ver- oder entschlüsselt werden. 

Key Commitment führt zu einer [etwas größeren (\$1 30 Byte) verschlüsselten Nachricht](message-format.md) und die Verarbeitung nimmt mehr Zeit in Anspruch. Wenn Ihre Anwendung sehr empfindlich auf Größe oder Leistung reagiert, können Sie sich dafür entscheiden, die Schlüsselzuweisung zu deaktivieren. Aber tun Sie das nur, wenn Sie müssen. 

Weitere Informationen zur Migration auf Versionen 1.7. *x* und 2.0. *x*, einschließlich ihrer wichtigsten Commitment-Funktionen, siehe[Migrieren Sie Ihre AWS Encryption SDK](migration.md). Technische Informationen zu den wichtigsten Verpflichtungen finden Sie unter [AWS Encryption SDK Referenz zu Algorithmen](algorithms-reference.md) und[AWS Encryption SDK Referenz auf das Nachrichtenformat](message-format.md).

## Verpflichtungspolitik
<a name="commitment-policy"></a>

Eine *Commitment-Richtlinie ist eine Konfigurationseinstellung, die bestimmt, ob Ihre Anwendung mit [Key](#key-commitment) Commitment* ver- oder entschlüsselt wird. [Das Verschlüsseln und Entschlüsseln mit Key Commitment ist eine bewährte Methode.AWS Encryption SDK](best-practices.md) 

Die Verpflichtungspolitik hat drei Werte.

**Anmerkung**  
Möglicherweise müssen Sie horizontal oder vertikal scrollen, um die gesamte Tabelle zu sehen.


**Verbindungspolitische Werte**  

| Wert | Verschlüsselt mit Schlüsselzusage | Verschlüsselt ohne Schlüsselbindung | Entschlüsselt mit Schlüsselbindung | Entschlüsselt ohne Schlüsselbindung | 
| --- | --- | --- | --- | --- | 
| ForbidEncryptAllowDecrypt | ![\[Red circle with white X inside, indicating prohibition or cancellation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-no.png)  | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png)  | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | 
| RequireEncryptAllowDecrypt | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | ![\[Red circle with white X inside, indicating prohibition or cancellation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-no.png) | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | 
| RequireEncryptRequireDecrypt | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | ![\[Red circle with white X inside, indicating prohibition or cancellation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-no.png) | ![\[Green checkmark icon indicating approval or confirmation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-yes.png) | ![\[Red circle with white X inside, indicating prohibition or cancellation.\]](http://docs.aws.amazon.com/de_de/encryption-sdk/latest/developer-guide/images/icon-no.png) | 

Die Richtlinieneinstellung für Verpflichtungen wurde in AWS Encryption SDK Version 1.7 eingeführt. *x.* Es ist in allen unterstützten [Programmiersprachen](programming-languages.md) gültig.
+ `ForbidEncryptAllowDecrypt`entschlüsselt mit oder ohne Key Commitment, verschlüsselt aber nicht mit Key Commitment. Dieser Wert wurde in Version 1.7 eingeführt. *x* wurde entwickelt, um alle Hosts, auf denen Ihre Anwendung ausgeführt wird, darauf vorzubereiten, mit Key Commitment zu entschlüsseln, bevor sie jemals auf einen mit Key Commitment verschlüsselten Chiffretext stoßen. 
+ `RequireEncryptAllowDecrypt`verschlüsselt immer mit Key Commitment. Es kann mit oder ohne Schlüsselbindung entschlüsselt werden. Dieser Wert wurde in Version 2.0 eingeführt. *x*, ermöglicht es Ihnen, mit der Verschlüsselung mit Schlüsselzusage zu beginnen, ältere Chiffretexte aber trotzdem ohne Schlüsselbindung zu entschlüsseln.
+ `RequireEncryptRequireDecrypt`verschlüsselt und entschlüsselt nur mit Schlüsselzusage. Dieser Wert ist der Standardwert für Version 2.0. *x.* Verwenden Sie diesen Wert, wenn Sie sicher sind, dass alle Ihre Chiffretexte mit Schlüsselbindung verschlüsselt sind.

Die Richtlinieneinstellung „Commitment“ bestimmt, welche Algorithmus-Suites Sie verwenden können. Ab Version 1.7. *x*, der AWS Encryption SDK unterstützt [Algorithmus-Suites](supported-algorithms.md) für Key Commitment; mit und ohne Signierung. Wenn Sie eine Algorithmus-Suite angeben, die mit Ihrer Commitment-Richtlinie in Konflikt steht, wird ein Fehler AWS Encryption SDK zurückgegeben. 

Hilfe bei der Festlegung Ihrer Verpflichtungsrichtlinie finden Sie unter[Festlegung Ihrer Verpflichtungspolitik](migrate-commitment-policy.md).

## Digitale Signaturen
<a name="digital-sigs"></a>

Die AWS Encryption SDK verschlüsselt Ihre Daten mithilfe eines authentifizierten Verschlüsselungsalgorithmus, AES-GCM, und der Entschlüsselungsprozess überprüft die Integrität und Authentizität einer verschlüsselten Nachricht ohne Verwendung einer digitalen Signatur. Da AES-GCM jedoch symmetrische Schlüssel verwendet, könnte jeder, der den zur Entschlüsselung des Chiffretextes verwendeten Datenschlüssel entschlüsseln kann, auch manuell einen neuen verschlüsselten Chiffretext erstellen, was zu potenziellen Sicherheitsbedenken führen könnte. Wenn Sie beispielsweise einen AWS KMS key als Umschließungsschlüssel verwenden, könnte ein Benutzer mit entsprechenden Berechtigungen verschlüsselte Chiffretexte erstellen, ohne ihn anzurufen. `kms:Decrypt` `kms:Encrypt`

Um dieses Problem zu vermeiden, AWS Encryption SDK unterstützt der das Hinzufügen einer ECDSA-Signatur (Elliptic Curve Digital Signature Algorithm) am Ende verschlüsselter Nachrichten. Wenn eine Signaturalgorithmus-Suite verwendet wird, AWS Encryption SDK generiert sie für jede verschlüsselte Nachricht ein temporäres Paar aus privatem Schlüssel und öffentlichem Schlüssel. Der AWS Encryption SDK speichert den öffentlichen Schlüssel im Verschlüsselungskontext des Datenschlüssels und verwirft den privaten Schlüssel. Dadurch wird sichergestellt, dass niemand eine weitere Signatur erstellen kann, die mit dem öffentlichen Schlüssel verifiziert wird. Der Algorithmus bindet den öffentlichen Schlüssel als zusätzliche authentifizierte Daten im Nachrichtenkopf an den verschlüsselten Datenschlüssel und verhindert so, dass Benutzer, die nur Nachrichten entschlüsseln können, den öffentlichen Schlüssel ändern oder die Signaturüberprüfung beeinträchtigen.

Die Signaturüberprüfung führt zu erheblichen Leistungseinbußen bei der Entschlüsselung. Wenn die Benutzer, die Daten verschlüsseln, und die Benutzer, die Daten entschlüsseln, gleichermaßen vertrauenswürdig sind, sollten Sie erwägen, eine Algorithmussuite zu verwenden, die das Signieren nicht beinhaltet.

**Anmerkung**  
Wenn der Schlüsselbund oder der Zugriff auf das kryptografische Umhüllungsmaterial nicht zwischen Verschlüsselern und Entschlüsselern unterscheidet, bieten digitale Signaturen keinen kryptografischen Wert.

[AWS KMS Schlüsselbunde, einschließlich](use-kms-keyring.md) des asymmetrischen RSA-Schlüsselbunds, können auf der Grundlage von AWS KMS Schlüssel- und IAM-Richtlinien zwischen Verschlüsselern und Entschlüsselern unterscheiden. AWS KMS 

Aufgrund ihres kryptografischen Charakters können die folgenden Schlüsselbunde nicht zwischen Verschlüsselern und Entschlüsselern unterscheiden:
+ AWS KMS Hierarchischer Schlüsselbund
+ AWS KMS ECDH-Schlüsselanhänger
+ Unformatierter AES-Schlüsselbund
+ Unformatierter RSA-Schlüsselbund
+ Roher ECDH-Schlüsselanhänger

# So AWS Encryption SDK funktioniert das
<a name="how-it-works"></a>

[In den Workflows in diesem Abschnitt wird erklärt, wie Daten AWS Encryption SDK verschlüsselt und verschlüsselte Nachrichten entschlüsselt werden.](concepts.md#message) In diesen Workflows wird der grundlegende Prozess unter Verwendung der Standardfunktionen beschrieben. Einzelheiten zur Definition und Verwendung benutzerdefinierter Komponenten finden Sie im GitHub Repository für jede unterstützte [Sprachimplementierung](programming-languages.md).

Der AWS Encryption SDK verwendet Umschlagverschlüsselung, um Ihre Daten zu schützen. Jede Nachricht wird unter einem eindeutigen Datenschlüssel verschlüsselt. Anschließend wird der Datenschlüssel mit den von Ihnen angegebenen Wrapping-Schlüsseln verschlüsselt. Um die verschlüsselte Nachricht zu entschlüsseln, AWS Encryption SDK verwendet der die von Ihnen angegebenen Umschließungsschlüssel, um mindestens einen verschlüsselten Datenschlüssel zu entschlüsseln. Dann kann es den Chiffretext entschlüsseln und eine Klartext-Nachricht zurückgeben.

Benötigen Sie Hilfe mit der Terminologie, die wir in der verwenden? AWS Encryption SDK Siehe [Konzepte in der AWS Encryption SDK](concepts.md).

## Wie AWS Encryption SDK verschlüsselt der Daten
<a name="encrypt-workflow"></a>

Das AWS Encryption SDK stellt Methoden zur Verschlüsselung von Zeichenketten, Byte-Arrays und Byte-Streams bereit. Codebeispiele finden Sie im Thema Beispiele in den einzelnen [Programmiersprachen](programming-languages.md) Abschnitten.

1. Erstellen Sie einen [Schlüsselbund](choose-keyring.md) (oder einen [Hauptschlüsselanbieter](concepts.md#master-key-provider)), der die Umschließungsschlüssel angibt, die Ihre Daten schützen.

1. Übergeben Sie den Schlüsselbund und die Klartextdaten an eine Verschlüsselungsmethode. [Wir empfehlen, einen optionalen, nicht geheimen Verschlüsselungskontext zu verwenden.](concepts.md#encryption-context)

1. Die Verschlüsselungsmethode fragt den Schlüsselbund nach Verschlüsselungsmaterial. Der Schlüsselbund gibt eindeutige Datenverschlüsselungsschlüssel für die Nachricht zurück: einen Klartext-Datenschlüssel und eine Kopie dieses Datenschlüssels, der mit jedem der angegebenen Umschließungsschlüssel verschlüsselt wurde.

1. Die Verschlüsselungsmethode verwendet den Klartext-Datenschlüssel, um die Daten zu verschlüsseln, und verwirft dann den Klartext-Datenschlüssel. Wenn Sie einen Verschlüsselungskontext angeben (eine AWS Encryption SDK [bewährte](best-practices.md) Methode), bindet die Verschlüsselungsmethode den Verschlüsselungskontext kryptografisch an die verschlüsselten Daten.

1. Die Verschlüsselungsmethode gibt eine [verschlüsselte Nachricht](concepts.md#message) zurück, die die verschlüsselten Daten, die verschlüsselten Datenschlüssel und andere Metadaten, einschließlich des Verschlüsselungskontextes, falls Sie einen verwendet haben, enthält.

## Wie AWS Encryption SDK entschlüsselt der eine verschlüsselte Nachricht
<a name="decrypt-workflow"></a>

Das AWS Encryption SDK bietet Methoden, mit denen die [verschlüsselte Nachricht entschlüsselt und Klartext](concepts.md#message) zurückgegeben wird. Codebeispiele finden Sie im Thema Beispiele in den einzelnen [Programmiersprachen](programming-languages.md) Abschnitten.

Der [Schlüsselbund](choose-keyring.md) (oder der [Hauptschlüsselanbieter](concepts.md#master-key-provider)), der die verschlüsselte Nachricht entschlüsselt, muss mit dem Schlüsselbund kompatibel sein, der zum Verschlüsseln der Nachricht verwendet wurde. Einer seiner Wrapping-Schlüssel muss in der Lage sein, einen verschlüsselten Datenschlüssel in der verschlüsselten Nachricht zu entschlüsseln. Hinweise zur Kompatibilität mit Schlüsselringen und Hauptschlüsselanbietern finden Sie unter. [Schlüsselbund-Kompatibilität](choose-keyring.md#keyring-compatibility)

1. Erstellen Sie einen Schlüsselbund oder einen Hauptschlüsselanbieter mit Wrap-Schlüsseln, der Ihre Daten entschlüsseln kann. Sie können denselben Schlüsselbund verwenden, den Sie für die Verschlüsselungsmethode bereitgestellt haben, oder einen anderen.

1. Übergeben Sie die [verschlüsselte Nachricht](concepts.md#message) und den Schlüsselbund an eine Entschlüsselungsmethode.

1. Bei der Entschlüsselungsmethode wird der Schlüsselbund oder der Hauptschlüsselanbieter aufgefordert, einen der verschlüsselten Datenschlüssel in der verschlüsselten Nachricht zu entschlüsseln. Es übergibt Informationen aus der verschlüsselten Nachricht, einschließlich der verschlüsselten Datenschlüssel.

1. Der Schlüsselbund verwendet seinen Umhüllungsschlüssel zum Entschlüsseln einer der verschlüsselten Datenschlüssel. Wenn sie erfolgreich ist, enthält die Antwort den Klartext-Datenschlüssel. Wenn keiner der vom Schlüsselbund oder Hauptschlüsselanbieter angegebenen Umschließungsschlüssel einen verschlüsselten Datenschlüssel entschlüsseln kann, schlägt der Entschlüsselungsaufruf fehl.

1. Die Entschlüsselungsmethode verwendet den Klartext-Datenschlüssel, um die Daten zu entschlüsseln, verwirft den Klartext-Datenschlüssel und gibt die Klartextdaten zurück.

# Unterstützte Algorithmus-Suiten in der AWS Encryption SDK
<a name="supported-algorithms"></a>

Ein *Algorithmen-Paket* ist eine Sammlung von kryptografischen Algorithmen und zugehörigen Werten. Kryptografische Systeme verwenden die Algorithmen-Implementierung, um die Verschlüsselungstext-Nachricht zu generieren.

Die AWS Encryption SDK Algorithmus-Suite verwendet den Advanced Encryption Standard (AES) -Algorithmus im Galois/Counter Modus (GCM), auch bekannt als AES-GCM, zur Verschlüsselung von Rohdaten. Der AWS Encryption SDK unterstützt 256-Bit-, 192-Bit- und 128-Bit-Verschlüsselungsschlüssel. Die Länge des Initialisierungsvektors (IV) beträgt immer 12 Bytes. Die Länge des Authentifizierungs-Tags beträgt immer 16 Bytes.

[Standardmäßig AWS Encryption SDK verwendet der eine Algorithmussuite mit AES-GCM mit einer HMAC-basierten extract-and-expand Schlüsselableitungsfunktion (HKDF), Signierung und einem 256-Bit-Verschlüsselungsschlüssel.](https://en.wikipedia.org/wiki/HKDF) Wenn die [Commitment-Richtlinie](concepts.md#commitment-policy) [Key Commitment](concepts.md#key-commitment) erfordert, AWS Encryption SDK wählt der eine Algorithmus-Suite aus, die auch Key Commitment unterstützt. Andernfalls wählt er eine Algorithmus-Suite mit Schlüsselableitung und -signierung, aber nicht mit Key Commitment.

## Empfohlen: AES-GCM mit Schlüsselableitung, Signierung und Schlüsselzusage
<a name="recommended-algorithms"></a>

Der AWS Encryption SDK empfiehlt eine Algorithmussuite, die einen AES-GCM-Verschlüsselungsschlüssel ableitet, indem sie der HMAC-basierten Schlüsselableitungsfunktion (HKDF) einen 256-Bit-Datenverschlüsselungsschlüssel zur Verfügung stellt. extract-and-expand Das AWS Encryption SDK fügt eine ECDSA-Signatur (Elliptic Curve Digital Signature Algorithm) hinzu. Zur Unterstützung von [Key Commitment](concepts.md#key-commitment) leitet diese Algorithmus-Suite auch eine *Key-Commitment-Zeichenfolge* ab — eine nicht geheime Datenschlüssel-ID —, die in den Metadaten der verschlüsselten Nachricht gespeichert wird. Diese Schlüsselbestätigungszeichenfolge wird ebenfalls über HKDF abgeleitet, wobei ein Verfahren verwendet wird, das dem Ableiten des Datenverschlüsselungsschlüssels ähnelt.


**AWS Encryption SDK Algorithmus-Suite**  

| Verschlüsselungsalgorithmus | Länge des Datenverschlüsselungsschlüssels (in Bit) | Schlüsselableitungsalgorithmus | Signatur-Algorithmus | Wichtiges Engagement | 
| --- | --- | --- | --- | --- | 
| AES-GCM | 256 | HKDF mit SHA-384 | ECDSA mit P-384 und SHA-384 | HKDF mit SHA-512 | 

Das HKDF hilft Ihnen, die versehentliche Wiederverwendung eines Datenverschlüsselungsschlüssels zu vermeiden und reduziert das Risiko einer übermäßigen Verwendung eines Datenschlüssels. 

Zum Signieren verwendet diese Algorithmussuite ECDSA mit einem kryptografischen Hashfunktionsalgorithmus (SHA-384). ECDSA wird standardmäßig verwendet, auch wenn es nicht in der Richtlinie für den zugrundeliegenden Masterschlüssel angegeben ist. Durch das [Signieren von Nachrichten](concepts.md#digital-sigs) wird überprüft, ob der Nachrichtenabsender berechtigt war, Nachrichten zu verschlüsseln, und gewährleistet die Nichtabstreitbarkeit. Sie ist besonders nützlich, wenn die Berechtigungsrichtlinie für einen Masterschlüssel es einer Gruppe von Benutzern erlaubt, Daten zu verschlüsseln, und einer anderen Gruppe von Benutzern, Daten zu entschlüsseln. 

Algorithmus-Suites mit Schlüsselbindung stellen sicher, dass jeder Chiffretext nur in einen Klartext entschlüsselt wird. Dazu überprüfen sie die Identität des Datenschlüssels, der als Eingabe für den Verschlüsselungsalgorithmus verwendet wird. Bei der Verschlüsselung leiten diese Algorithmus-Suites eine Schlüsselbestätigungszeichenfolge ab. Vor der Entschlüsselung überprüfen sie, ob der Datenschlüssel mit der Zeichenfolge für die Schlüsselzusage übereinstimmt. Ist dies nicht der Fall, schlägt der Entschlüsselungsaufruf fehl.

## Andere unterstützte Algorithmen-Pakete
<a name="other-algorithms"></a>

Der AWS Encryption SDK unterstützt aus Gründen der Abwärtskompatibilität die folgenden alternativen Algorithmus-Suiten. Im Allgemeinen empfehlen wir diese Algorithmen-Pakete nicht. Wir sind uns jedoch bewusst, dass das Signieren die Leistung erheblich beeinträchtigen kann. Deshalb bieten wir für diese Fälle eine Suite mit Schlüsselableitung an. Für Anwendungen, die größere Leistungseinbußen eingehen müssen, bieten wir weiterhin Suiten an, denen es an Signierung, Schlüsselbindung und Schlüsselableitung mangelt.

**AES-GCM ohne grundlegende Verpflichtung**  
Algorithmus-Suites ohne Schlüsselbindung validieren den Datenschlüssel vor der Entschlüsselung nicht. Daher können diese Algorithmus-Suiten einen einzelnen Chiffretext in verschiedene Klartext-Nachrichten entschlüsseln. Da jedoch Algorithmus-Suiten mit Schlüsselbindung eine [etwas größere (\$130 Byte) verschlüsselte Nachricht](message-format.md) erzeugen und ihre Verarbeitung länger dauert, sind sie möglicherweise nicht für jede Anwendung die beste Wahl.   
Die AWS Encryption SDK unterstützt eine Algorithmus-Suite mit Schlüsselableitung, Schlüsselzusage und Signierung sowie eine Suite mit Schlüsselableitung und Schlüsselzusage, aber ohne Signierung. Wir empfehlen nicht, eine Algorithmus-Suite ohne Schlüsselbindung zu verwenden. Wenn Sie müssen, empfehlen wir eine Algorithmus-Suite mit Schlüsselableitung und Schlüsselzusage, aber ohne Signierung. Wenn Ihr Anwendungsleistungsprofil jedoch die Verwendung einer Algorithmussuite unterstützt, ist die Verwendung einer Algorithmussuite mit Schlüsselbindung, Schlüsselableitung und Signierung eine bewährte Methode.

**AES-GCM ohne Signierung**  
Algorithmus-Suiten ohne Signatur fehlt die ECDSA-Signatur, die für Authentizität und Unwiderlegbarkeit sorgt. Verwenden Sie diese Suiten nur, wenn die Benutzer, die Daten verschlüsseln, und die Benutzer, die Daten entschlüsseln, gleichermaßen vertrauenswürdig sind.   
Wenn Sie eine Algorithmus-Suite ohne Signatur verwenden, empfehlen wir Ihnen, eine Suite mit Schlüsselableitung und Schlüsselbindung zu wählen. 

**AES-GCM ohne Schlüsselableitung**  
Algorithmus-Suiten ohne Schlüsselableitung verwenden den Datenverschlüsselungsschlüssel als AES-GCM-Verschlüsselungsschlüssel, anstatt eine Schlüsselableitungsfunktion zur Ableitung eines eindeutigen Schlüssels zu verwenden. Wir raten davon ab, diese Suite zur Generierung von Chiffretext zu verwenden, sie unterstützt sie jedoch aus Kompatibilitätsgründen. AWS Encryption SDK 

Weitere Informationen darüber, wie diese Pakete in der Bibliothek dargestellt und verwendet werden, finden Sie unter [AWS Encryption SDK Referenz zu Algorithmen](algorithms-reference.md).