ECDSA significa Elliptic Curve Digital Signature Algorithm (Algoritmo de assinatura digital de curva elíptica). Este sistema é usado para criar uma assinatura digital que permite a verificação por terceiros sem comprometer a segurança.
Princípios Básicos da ECDSA
O funcionamento matemático e algorítmico do ECDSA é bastante complexo. Para começar, A ECDSA baseia sua operação com base em uma equação matemática que desenha uma curva. O processo, em termos gerais, seria o seguinte:
Clique aqui para abrir sua conta de usuário em espanhol GRATUITAMENTE e com segurança e receber um presente de 5€.
Este Algoritmo ECDSA funciona através de um mecanismo de criptografia chamado criptografia assimétrica. Esse sistema de assinatura gera duas chaves chamadas de chave privada e chave pública. Ambas as chaves são relacionadas por uma operação matemática complexa realizada em uma função de curva elíptica.
Sob esse esquema operacional, o ECDSA garante, em primeira instância, o seguinte:
- Assinaturas exclusivas e irrepetíveis para cada conjunto de geração de chaves privadas e públicas.
- A impossibilidade prática de falsificar assinaturas digitais. Isso ocorre porque a potência computacional necessária para isso está fora dos limites atuais.
Graças a essas duas características, o ECDSA é considerado um padrão seguro para a implantação de sistemas de assinatura digital. Hoje, seu uso é tão variado que é aplicado em quase todos os campos da informática. Por exemplo, a infraestrutura do certificado de segurança SSL y TLS A Internet faz uso intenso de ECDSA. Bitcoin, o precursor da tecnologia blockchain, também faz uso do ECDSA para atingir o alto nível de segurança que o caracteriza.
Nesta curva, um ponto é escolhido aleatoriamente e é considerado seu ponto de origem.
Em seguida, um número aleatório é gerado, é precisamente esse número aleatório, que conheceremos como chave privada.
Então, usando a chave privada e o ponto de origem, você executa outra equação e obtemos um segundo ponto na curva, que é sua chave pública. É precisamente o uso dessa nova equação, juntamente com o ponto de origem e a chave pública, que permite estabelecer a relação entre a chave pública e a privada.
Esse processo é considerado seguro, porque no momento só pode ser feito de uma maneira. Em outras palavras, só é possível estabelecer o relacionamento matemático de uma chave privada para uma chave pública, mas não o contrário.
Dessa forma, quando um usuário deseja assinar um arquivo, ele usará sua chave privada (o número aleatório) com um hash do arquivo (um número único para representar o arquivo) em uma equação mágica e que lhe dará sua assinatura. Se alguém quiser verificar a veracidade das informações, precisará apenas da chave pública e com ela poderá verificar a autenticidade.
Então as chaves públicas podem ser conhecidos por todos, sem comprometer a autenticidade de nossa assinatura, pois a chave pública serve apenas para verificar, não para assinar.
Por que usamos o ECDSA?
A necessidade de criar um sistema de assinatura como o ECDSA decorre de poder compartilhar dados com segurança. Em um mundo conectado por redes, é necessário um esquema no qual possamos compartilhar informações e validá-las. Tudo sem ter que revelar segredos. Vamos ver com o seguinte exemplo:
Uma empresa fez um relatório econômico de suas atividades. Este relatório é entregue a certos investidores com nível limitado de acesso à informação. Esses investidores desejam verificar a autenticidade do relatório e os dados oferecidos.
Nesse momento, nos perguntamos: o administrador fornecerá a ele a chave de acesso total aos dados da empresa? Ou, pelo contrário, não dará aos investidores acesso às informações para que possam verificá-las?
Ambas as situações não são boas e o uso do ECDSA pode resolvê-lo graças a uma terceira abordagem:
O administrador utiliza um sistema de assinatura assimétrica ECDSA. Com isso, o administrador assina o relatório com sua chave privada e entrega a chave pública aos investidores. Imediatamente depois, os investidores podem verificar, usando a chave pública, a autenticidade das informações oferecidas. Isso sem a necessidade de acesso irrestrito aos dados.
Chave pública privada e assinaturas
O esquema operacional da ECDSA baseia-se nos pilares a seguir:
- A chave privada, que na verdade é um número secreto conhecido apenas pela pessoa que a gerou. Uma chave privada é essencialmente um número gerado aleatoriamente. No Bitcoin, alguém com a chave privada correspondente aos fundos da blockchain é o único que pode gastar esses fundos.
- A chave pública, que é um número gerado a partir de um relacionamento matemático usando a chave privada. Ela só pode ser obtida conhecendo a chave privada com antecedência, e não o contrário. Esta chave é gerada com o propósito de ser compartilhada publicamente para que outros possam determinar se uma assinatura é genuína.
A assinatura, na verdade, é simplesmente um número que indica ao verificador que a operação de assinatura digital foi realizada com sucesso. Uma assinatura é gerada matematicamente a partir do hash do que deve ser assinado, mais uma chave privada. A assinatura em si são dois números conhecidos como "r"E"s«. Com a chave pública, um algoritmo matemático pode ser usado na assinatura. O objetivo disso é determinar o que foi originalmente produzido a partir do hash e a chave privada. Um sistema que funciona perfeitamente, sem a necessidade de conhecer a chave privada.
ECDSA e tecnologia blockchain
Um dos principais problemas que enfrentou Satoshi Nakamoto com o Bitcoin, foi a distribuição de chaves públicas. A visão de Nakamoto era permitir o compartilhamento de pequenas chaves públicas, seguras, com baixo custo computacional e fáceis de usar.
Esses recursos seriam possíveis graças à criptografia de curva elíptica. Por isso, Nakamoto decidiu usar o ECDSA em seu sistema. E com isso, ele garantiu que:
- Era um sistema muito seguro. Satoshi decidiu usar o padrão de curva elíptica secp256k1 para Bitcoin. Esta curva elíptica tem uma segurança muito bem comprovada, por isso foi perfeita para aplicá-la.
- O custo computacional da geração de chaves e validação de assinaturas é muito baixo.
- Permite a geração de chaves públicas infinitas.
No entanto, as chaves ECDSA de 256 bits são muito extensas. Considerando isso, Nakamoto decidiu refatorar chaves públicas para torná-las mais curtas. Foi assim que usando Codificação Base58 y funções de hash como SHA-256 y RIPEMD-160, reduziu o tamanho das chaves públicas e criou os Endereços de Bitcoin.
Por exemplo, este endereço: 1PfS6w6MonCT976xe2jD9tqwo8QkDnonRW.
Tudo isso resultou em um sistema de computador que permitiu que seus usuários enviassem e recebessem bitcoin com segurança.
Brincando com ECDSA
Na Internet, existem muitos espaços onde podemos brincar e aprender um pouco mais sobre como a ECDSA funciona. Um desses sites é o Github de Kenji Urushima.
Urushima é um trabalhador da Fuji Xerox no Japão. Na sua web Possui uma ferramenta interativa que ajuda a entender como o ECDSA funciona. Neste site, podemos criar chaves públicas e privadas e assinar mensagens personalizadas. Experimentar um pouco pode ser a chave para entender um pouco mais como esse sistema de assinatura digital funciona.
Clique aqui para abrir sua conta de usuário em espanhol GRATUITAMENTE e com segurança e receber um presente de 5€.