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:
- Chave privada
- 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
- Melhorar a segurança da transferência de informações.
- Melhore o fluxo de trabalho mais digitalizado.
- Melhor experiência do cliente.
- Melhore a eficiência comercial e a validade legal.
- Reduz o esforço manual e economiza tempo.
Demerits of Cryptography Digital Signature
- Isso requer muito tempo para verificação.
- Não protege contra vulnerabilidades
- 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 -
- Softwares de assinatura digital com trabalho
- Criptografia vs criptografia | Top 6 Comparação
- O que é criptografia assimétrica?
- Introdução aos tipos de assinatura digital