Qual é o algoritmo de assinatura ECDSA

De Área31 Hackerspace

ECDSA significa Algoritmo de Assinatura Digital de Curva Elíptica (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:

El algoritmo ECDSA funciona através de um mecanismo de criptografia chamado criptografia assimétrico. Esse sistema de assinatura gera duas chaves chamadas de chave privada e chave pública. Ambas as teclas 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ções chaves privadas e público. 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 do computador. 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.

exemplo de gráfico ecdsa

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 de 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 o chaves públicas Eles 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 três 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 é um número que prova que uma operação de assinatura foi realizada. Uma assinatura é gerada matematicamente a partir de um hash de algo a ser assinado, mais uma chave privada. A assinatura em si é composta por 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 ocorreu originalmente a partir do de 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 ele 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 tão usando Codificação Base58 y funções de hash como SHA-256 y RIPEMD-160, reduziu o tamanho das chaves públicas e criou o Endereços de Bitcoin.

Por exemplo, este endereço: 1PfS6w6MonCT976xe2jD9tqwo8QkDnonRW.

Tudo isso acabou, é 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 por Kenji Urushima.

Urushima é um trabalhador da Fuji Xerox no Japão. Na sua página 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.[1]


Referências: