A codificação de mensagens se faz necessária quando precisamos transmitir informações sigilosas de forma segura, mesmo que estas estejam sendo observadas por intrusos. Por muito tempo, esta co- dificação se baseou no princípio que ambas as partes possuíam uma chave secreta. O compositor utilizava a chave para codificar a mensagem, enquanto o receptor utilizava a mesma chave para decodificá-la. Teoricamente, um intruso observador não tem conhecimento desta chave e, portanto, não pode descobrir o conteúdo da mensagem. Este método é chamado de sistema de criptografia de chave privada e sua desvantagem se dá pela necessidade de ambas as partes terem que combinar previamente qual será a chave secreta, antes de começarem a trocar informações. Na década de 70 surgiu então um novo método de troca de informações que não necessitava desta combinação prévia: o sistema de criptografia de chave pública. Basicamente, este sistema é construído utilizando problemas inversíveis de matemática, cuja função direta é computacionalmente simples e cuja função inversa é de extrema complexidade computacional. Neste minicurso apresentaremos um destes problemas, denominado por problema do logaritmo discreto, que pode ser introduzido sobre um grupo qualquer e apresentaremos o sistema de criptografia de chave pública ELGamal, que é análogo ao famoso e patenteado sistema RSA. A vantagem do ELGamal é que ele permite o uso da estrutura de grupo (comumente o grupo dos inversíveis de um corpo finito ou o grupo de pontos de uma curva elíptica sobre um corpo finito) para definir um tal sistema de criptografia. Finalizaremos o minicurso apresentando este sistema, além de sua variação devido a Menezes e Vanstone, que o torna mais eficiente.