GenerateMultiPrimeKey generates a multi-prime RSA keypair of the given bit size and the given random source, as suggested in 1. Although the public keys are compatible (actually, indistinguishable) from the 2-prime case, the private keys are not. To every one using rsa and openssl and wanting to encrypt a large file like 5 Kbyte. Please remeber that the public key should be proportional or bigger in size to what you want to encrypt otherwise you will get a 'file to big to be encrypted fault.' Online RSA Key Generator. Key Size 1024 bit. 512 bit; 1024 bit; 2048 bit; 4096 bit Generate New Keys Async. RSA Encryption Test. Text to encrypt: Encrypt / Decrypt. Oct 05, 2007 When generating new RSA keys you should use at least 2048 bits of key length unless you really have a good reason for using a shorter and less secure key. The key length for DSA is always 1024 bits as specified in FIPS 186-2.
-->Note
This feature is in preview and available only in the Azure regions East US 2 EUAP and Central US EUAP.
For added assurance when you use Azure Key Vault, you can import or generate a key in a hardware security module (HSM); the key will never leave the HSM boundary. This scenario often is referred to as bring your own key (BYOK). Key Vault uses the nCipher nShield family of HSMs (FIPS 140-2 Level 2 validated) to protect your keys.
Use the information in this article to help you plan for, generate, and transfer your own HSM-protected keys to use with Azure Key Vault.
Note
This functionality is not available for Azure China 21Vianet.
This import method is available only for supported HSMs.
For more information, and for a tutorial to get started using Key Vault (including how to create a key vault for HSM-protected keys), see What is Azure Key Vault?.
Overview
Here's an overview of the process. Specific steps to complete are described later in the article.
- In Key Vault, generate a key (referred to as a Key Exchange Key (KEK)). The KEK must be an RSA-HSM key that has only the
import
key operation. Only Key Vault Premium SKU supports RSA-HSM keys. - Download the KEK public key as a .pem file.
- Transfer the KEK public key to an offline computer that is connected to an on-premises HSM.
- In the offline computer, use the BYOK tool provided by your HSM vendor to create a BYOK file.
- The target key is encrypted with a KEK, which stays encrypted until it is transferred to the Key Vault HSM. Only the encrypted version of your key leaves the on-premises HSM.
- A KEK that's generated inside a Key Vault HSM is not exportable. HSMs enforce the rule that no clear version of a KEK exists outside a Key Vault HSM.
- The KEK must be in the same key vault where the target key will be imported.
- When the BYOK file is uploaded to Key Vault, a Key Vault HSM uses the KEK private key to decrypt the target key material and import it as an HSM key. This operation happens entirely inside a Key Vault HSM. The target key always remains in the HSM protection boundary.
Prerequisites
The following table lists prerequisites for using BYOK in Azure Key Vault:
Requirement | More information |
---|---|
An Azure subscription | To create a key vault in Azure Key Vault, you need an Azure subscription. Sign up for a free trial. |
A Key Vault Premium SKU to import HSM-protected keys | For more information about the service tiers and capabilities in Azure Key Vault, see Key Vault Pricing. |
An HSM from the supported HSMs list and a BYOK tool and instructions provided by your HSM vendor | You must have permissions for an HSM and basic knowledge of how to use your HSM. See Supported HSMs. |
Azure CLI version 2.1.0 or later | See Install the Azure CLI. |
Supported HSMs
Vendor name | Vendor Type | Supported HSM models | More information |
---|---|---|---|
Thales | Manufacturer | SafeNet Luna HSM 7 family with firmware version 7.3 or later | SafeNet Luna BYOK tool and documentation |
Fortanix | HSM as a Service | Self-Defending Key Management Service (SDKMS) | Exporting SDKMS keys to Cloud Providers for BYOK - Azure Key Vault |
Note
To import HSM-protected keys from the nCipher nShield family of HSMs, use the legacy BYOK procedure.
Supported key types
Key name | Key type | Key size | Origin | Description |
---|---|---|---|---|
Key Exchange Key (KEK) | RSA | 2,048-bit 3,072-bit 4,096-bit | Azure Key Vault HSM | An HSM-backed RSA key pair generated in Azure Key Vault |
Target key | RSA | 2,048-bit 3,072-bit 4,096-bit | Vendor HSM | The key to be transferred to the Azure Key Vault HSM |
Generate and transfer your key to the Key Vault HSM
To generate and transfer your key to a Key Vault HSM:
Step 1: Generate a KEK
A KEK is an RSA key that's generated in a Key Vault HSM. The KEK is used to encrypt the key you want to import (the target key).
The KEK must be:
- An RSA-HSM key (2,048-bit; 3,072-bit; or 4,096-bit)
- Generated in the same key vault where you intend to import the target key
- Created with allowed key operations set to
import
Note
The KEK must have 'import' as the only allowed key operation. 'import' is mutually exclusive with all other key operations.
Use the az keyvault key create command to create a KEK that has key operations set to
import
. Record the key identifier (kid
) that's returned from the following command. (You will use the kid
value in Step 3.)Step 2: Download the KEK public key
Generate Rsa Key Given Bit Size 4
Use az keyvault key download to download the KEK public key to a .pem file. The target key you import is encrypted by using the KEK public key.
Transfer the KEKforBYOK.publickey.pem file to your offline computer. You will need this file in the next step.
Step 3: Generate and prepare your key for transfer
Refer to your HSM vendor's documentation to download and install the BYOK tool. Follow instructions from your HSM vendor to generate a target key, and then create a key transfer package (a BYOK file). The BYOK tool will use the
kid
from Step 1 and the KEKforBYOK.publickey.pem file you downloaded in Step 2 to generate an encrypted target key in a BYOK file.Transfer the BYOK file to your connected computer.
Note
Importing RSA 1,024-bit keys is not supported. Currently, importing an Elliptic Curve (EC) key is not supported.
Known issue: Importing an RSA 4K target key from SafeNet Luna HSMs is only supported with firmware 7.4.0 or newer.
Step 4: Transfer your key to Azure Key Vault
To complete the key import, transfer the key transfer package (a BYOK file) from your disconnected computer to the internet-connected computer. Use the az keyvault key import command to upload the BYOK file to the Key Vault HSM.
If the upload is successful, Azure CLI displays the properties of the imported key.
Next steps
You can now use this HSM-protected key in your key vault. For more information, see this price and feature comparison.