Introdução à criptografia de assinatura digital

A assinatura digital é uma técnica matemática criptográfica para validar a integridade e a segurança dos dados. A assinatura digital com criptografia é para resolver o problema do mundo real de representação e adulteração digital. Em palavras reais, para compartilhar informações confidenciais e garantir a origem das evidências, o status do documento eletrônico. A assinatura digital de criptografia usa o sistema de chave pública / privada. As chaves foram representadas em um número hexadecimal aleatório. Para criar uma assinatura digital criptográfica, o hash de dados unidirecional a ser assinado. Com a chave privada, a criptografia do hash será realizada.

A criptografia de uma assinatura digital é possível com dois termos principais:

  1. Chave privada
  2. Chave pública

Chave privada : o titular da conta possui uma chave que é um número hexadecimal aleatório. A chave privada será confidencial para o titular da conta e não exposta ao mundo real

Chave pública : um número hexadecimal aleatório que é compartilhado publicamente. Para criar uma assinatura digital de criptografia pública, a mensagem será assinada digitalmente primeiro e depois criptografada com a chave privada do remetente e com a chave pública do destinatário. Para descriptografar as mensagens compartilhadas entre o remetente e o destinatário, o destinatário deve descriptografar a camada interna da informação com a chave Pública do remetente e descriptografar a camada externa da informação usando a chave privada que o destinatário possui.

Arquitetura de criptografia de assinatura digital

Para executar assinatura digital usando criptografia, é necessário executar o seguinte:

No final do remetente, a mensagem / informação deve ser criptografada usando uma função de hash com a chave privada do remetente. As informações serão encaminhadas para o final do receptor com o modelo intermediário de assinatura digital. No final do receptor, o receptor verifica a assinatura digital descriptografando as informações recebidas usando a função hash. A descriptografia será realizada extraindo a camada interna usando a chave pública e a camada externa extraída usando a chave privada. Um grande desafio para compartilhar informações com segurança é enviar a mensagem em um formato criptografado. Em Criptografia com assinatura digital com chave pública compartilhada com o mundo externo, há uma chance de alguém falsificar a criptografia.

A criptografia de assinaturas digitais pode ser realizada de duas formas principais:

1. Assinatura digital seguida por criptografia

Nesse método, a assinatura do remetente é explorada pelo destinatário e as informações são compartilhadas com a parte externa sem criptografia. Como este formulário é menos seguro, isso não é preferível na indústria.

2. Criptografia seguida por assinatura digital

A abordagem mais comum no setor é a criptografia, seguida de uma assinatura digital, na qual o remetente envia os dados criptografados com a assinatura digital. Quando o destinatário recebe a mensagem, ele descriptografa a mensagem compartilhada pelo remetente usando a chave pública do remetente e a chave privada do remetente.

Assinatura digital de criptografia com RSA

O seguinte trecho de código explicará como a criptografia com assinatura digital é implementada em tempo real em python e também explicará como a criptografia e descriptografia são realizadas com assinatura digital usando RSA. Para executar criptografia com assinatura digital, exigimos o pacote pycrypto instalado e, em seguida, escreva o trecho abaixo.

importCrypto
fromPublicKey importRSA
fromCrypto import Random

Para executar criptografia com a assinatura digital, exigimos a inicialização da chave privada e da chave pública. Criamos uma função para gerar chaves RSA que terão uma chave privada e uma chave pública:

defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
return private_key, public_key
The above snippet returns the private key and public key.

1. Função de criptografia

defencrypt(public_key, text):
c_text=public_key.encrypt(text, 32)(0) val_cipher=base64.b64encode(c_text)
return val_cipher

Para criptografar a mensagem, usamos o código acima, que utilizará rsa_publickey e text como parâmetros para a função de criptografia. A função de criptografia executará a criptografia de chave pública e gerará a cifra; a cifra gerada será retornada quando a chamada da função for invocada.

2. Função de Descriptografia

defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
return text

Criptografia com uma assinatura digital usando criptografia de chave pública e descriptografia de texto realizada usando a chave privada. Para entender o significado do texto criptografado compartilhado como uma cifra, criamos uma função de descriptografia. A função usa private_key e a cifra gerada pela função de criptografia. Usando o método de decodificação, ele cria uma cifra descriptografada e, usando o método de decodificação, retornará o texto descriptografado.

3. Implementação

Nesta amostra, veremos como a criptografia do texto é realizada e como é descriptografada de volta ao texto original usando a chave privada. A função de criptografar e descriptografar será usada na amostra para mostrar como criptografar será criptografado e descriptografado.

Código:

importCrypto
fromPublicKey importRSA
fromCrypto import Random
importbase64
defrsa_keys():
l=1024
private_key = RSA.generate(l, Random.new().read)
public_key = private_key.publickey()
returnprivate_key, public_key
defencrypt(public_key, plain_text):
c_text=public_key.encrypt(plain_text, 32)(0) val_cipher=base64.b64encode(c_text)
returnval_cipher
defdecrypt(private_key, val_cipher):
d_cipher = base64.b64decode(val_cipher)
text = private_key.decrypt(d_cipher)
returntext
private_key, public_key=rsa_keys()
txt=b"Hello Peers!"
enc_cipher=encrypt(public_key, txt)
print('**'*10)
print("The ecncrypted text is ()".format(enc_cipher))
print('**'*10)
dec_cipher=decrypt(private_key, enc_cipher) #decryption
print("The decrypted cipher text is ()".format(dec_cipher))
print('**'*10)

Resultado:

Como podemos ver, o texto de entrada “Hello Peers!” Passado para a função de criptografia é criptografado usando a chave pública. A cifra criptografada passada como param para a função descriptografar descriptografa a mensagem original compartilhada usando a chave privada do receptor. Para executar a assinatura digital com criptografia, será necessário o método 'sign' e 'verificar', o sinal será realizado pelo remetente usando a chave privada; quando as informações forem transferidas para o receptor, a função de verificação será realizada usando a chave pública.

Méritos da assinatura digital de criptografia

  1. Melhorar a segurança da transferência de informações.
  2. Melhore o fluxo de trabalho mais digitalizado.
  3. Melhor experiência do cliente.
  4. Melhore a eficiência comercial e a validade legal.
  5. Reduz o esforço manual e economiza tempo.

Demerits of Cryptography Digital Signature

  1. Isso requer muito tempo para verificação.
  2. Não protege contra vulnerabilidades
  3. A infraestrutura e a criação de criptografia não são econômicas.

Conclusão

No mundo digital moderno, o algoritmo de assinatura digital com criptografia desempenha um papel vital no fornecimento de um ambiente seguro e é uma das melhores ferramentas para autenticação. No mundo tecnológico crescente, ele desempenhará seu papel crucial em termos de segurança contra ameaças e vulnerabilidades.

Artigo recomendado

Este é um guia para criptografia de assinatura digital. Aqui discutimos a arquitetura de criptografia de assinatura digital junto com a implementação do código. Você também pode consultar nossos outros artigos sugeridos para saber mais -

  1. Softwares de assinatura digital com trabalho
  2. Criptografia vs criptografia | Top 6 Comparação
  3. O que é criptografia assimétrica?
  4. Introdução aos tipos de assinatura digital