Chave (computação)
# Chave (computação)

Em Computação, o termo chave apresenta dois sentidos comuns. Em um banco de dados, uma chave é um valor que permite identificar registros em um repositório de dados. Em criptografia, uma chave é um valor que deve ser passado para o algoritmo, com o objetivo de codificar ou decodificar uma determinada mensagem.

## Chaves em Bancos de Dados

Geralmente, a chave é um dos campos de um registro. O conceito de chave está também intimamente relacionado aos conceitos de índices e tabelas. Existem vários tipos de chave, por exemplo:
* Uma chave é dita única se ela identifica, de forma inequívoca, um determinado item armazenado no repositório. Uma chave não-única, ou ambígua, identifica mais de um item dentro do repositório.
* Uma chave primária é uma chave única, utilizada como referência preferencial para identificar um item dentro de um repositório. Por exemplo, o nome de um usuário de um sistema informatizado, ou o número de registro de um carro, podem ser utilizados como chaves primárias para localizar os respectivos itens.
* Uma chave estrangeira é uma chave armazenada em um determinado repositório, que permite localizar informações contidas em outros regitros.
* Uma chave simples é associada a um único valor, ou campo, do registro. Uma chave composta corresponde à combinação de duas ou mais chaves, e pode ser necessária para eliminar a ambiguidade, formando um identificador único.
* Eventualmente, a chave pode ser obtida através da aplicação de uma função de transformação (por exemplo, uma função hash) sobre um ou mais campos do registro, de forma a obter um valor único que seja mais conveniente para a aplicação em questão.

## Chaves em Criptografia

O processo de codificação e decodificação de uma mensagem envolve o uso de chaves. Em alguns algoritmos, a mesma chave é utilizada nos dois processos. Neste caso, a chave deve permanecer em segredo, pois o seu conhecimento abre a possibilidade de leitura da mensagem; neste caso, é uma chave fechada. A distribuição da chave secreta é um problema nos sistemas dessa natureza, pois ela é necessária para que recipiente decodifique a mensagem original, mas deve ser feita com segurança para evitar violação das mensagens. Há outros algoritmos que utilizam chaves distintas para codificação e decodificação. Uma categoria especial de algoritmos, conhecida como Chave pública, utiliza uma combinação entre uma chave secreta conhecida localmente e uma chave pública, conhecida por todos. A combinação é utilizada para ambos os processos, reduzindo os problemas inerentes à distribuição da chave secreta entre os participantes.