Introduzindo EP11 sobre gRPC-Plano Padrão

O Enterprise PKCS #11 (EP11) é projetado para clientes que estão buscando suporte para padrões abertos e segurança aprimorada. A biblioteca EP11 fornece uma interface stateless, que é semelhante à Public-Key Cryptography Standards(PKCS)#11 APIpadrão de mercado. A API PKCS #11 define uma API independente de plataforma para tokens criptográficos, tais como hardware security modules (HSM) e cartões inteligentes. Os aplicativos existentes que usam o PKCS #11 podem se beneficiar da segurança aprimorada com criptografia de chave segura, bem como de uma interface sem estado, que torna as operações criptográficas muito mais eficientes.

Mais informações sobre a Biblioteca EP11 podem ser localizadas no Enterprise PKCS #11(EP11)Documento da estrutura da biblioteca. Para obter mais informações sobre recursos e extensões do EP11, consulte EP11 introdução.

Os IBM Cloud® Hyper Protect Crypto Services fornecem um conjunto de chamadas da API EP11 sobre gRPC (GREP11), com as quais todas as funções de criptografia são executadas no HSM em nuvem dos Hyper Protect Crypto Services. A API GREP11 é uma interface stateless para operações criptográficas em nuvem.

O Hyper Protect Crypto Services alavanca estruturas como gRPC para ativar o acesso remoto de aplicativos. gRPC é uma moderna estrutura de chamada de procedimento remoto (RPC) de software livre de alto desempenho que pode conectar serviços em e entre os data centers para balanceamento de carga, rastreio, verificação de funcionamento e autenticação. Os aplicativos acessam o Hyper Protect Crypto Services chamando a API EP11 remotamente por meio de gRPC. Para obter mais informações sobre gRPC, consulte a documentação gRPC.

Com a API GREP11, é possível executar as operações a seguir:

  • Geração de chave.
  • Criptografar e decriptografar.
  • Assinar e verificar.
  • Agrupar e desagrupar chaves.
  • Derivar chaves.
  • Construir trecho da mensagem.
  • Recuperar informações do mecanismo.

Para algumas operações, há uma série de suboperações. Por exemplo, a operação de criptografia de dados de diversas partes é composta pelas suboperações EncryptInit(), EncryptUpdate() e EncryptFinal().

  • EncryptInit() é usado para inicializar uma operação.
  • Encrypt() é usado para criptografar dados de parte única sem a necessidade de executar as suboperações EncryptUpdate() e EncryptFinal(). Essa operação precisa ser executada após a chamada EncryptInit().
  • EncryptUpdate() e EncryptFinal() são usados em combinação para executar a criptografia de dados de diversas partes. Essas suboperações precisam ser executadas após a chamada EncryptInit().
  • EncryptSingle() é uma extensão IBM EP11 para a especificação do PKCS n.º 11 padrão e é usada para executar uma única chamada para criptografar dados de parte única sem a necessidade de executar as suboperações EncryptInit() e Encrypt().

O diagrama a seguir mostra os três fluxos de sequência de chamada de funções do GREP11 usados para executar a criptografia. Os fluxos também podem se aplicar a outras operações, como decriptografia, compilação, assinatura e verificação. Para obter mais informações sobre a API GREP11, consulte Referência de API GREP11.

GREP11 funções chamando fluxo para criptografia
Figura 1. Três fluxos de chamada de funções do GREP11 para criptografia

A API GREP11 pode processar até 500 solicitações / segundo para uma única unidade criptográfica

Suporte de criptografia pós-quantum

Com a API GREP11, também é possível executar operações criptográficas pós-quantum. A criptografia tradicional conta com problemas matemáticos complicados que são difíceis para os computadores clássicos resolverem. No entanto, com as capacidades de computação, os computadores quantum podem resolver esses problemas. A criptografia pós-quantum é considerada resistente a ataques criptanalíticos de computadores quantum. Ela geralmente usa algoritmos assimétricos e tem várias abordagens.

A API GREP11 fornece o algoritmo Dilithium para criptografia pós-quantum. Trata-se de um esquema de assinatura digital baseado em Lattice e que pode ser usado para geração e verificação de assinatura. Atualmente, apenas a versão de alta segurança da rodada 2 Dilithium é suportada e ela não está disponível para operações SignUpdate e VerifyUpdate.

O algoritmo Dilithium é suportado apenas pelo cartão de criptografia IBM 4769, também referido como Crypto Express 7S (CEX7S). Se você criar suas instâncias em regiões baseadas em Virtual Private Cloud (VPC), em que as placas de criptografia CEX7S são usadas, será possível usar o algoritmo Dilithium para criptografia pós-quantum com a API GREP11. Para uma lista de regiões baseadas em VPC, consulte Regiões e locais.

Para obter mais informações sobre o suporte do algoritmo Dilithium em GREP11, consulte Referência da API GREP11. Também é possível localizar exemplos de código de algoritmo Dilithium nos repositórios a seguir: