PCF-3

Questões comentadas, artigos e notícias

Resposta do Desafio I: Criptografia Básica

Posted by papacharliefox3 em 23/03/2009

Olá amigos!

Em um post passado, lançamos um desafio de criptografia, agora vamos mostrar a resolução. O desafio pode ser acessado aqui. A resposta para o desafio pode ser resolvida com o script que escrevi, conforme abaixo:

$ ./caesar.sh ‘TXH WDO FRQWULEXLU FRP R EORJ :)’ -3
QUE TAL CONTRIBUIR COM O BLOG :)
$ ./caesar.sh ‘DQS OD YDPRV QRV’ -3
ANP LA VAMOS NOS

A chave para a cifra é 3, ao utilizar no script com o sinal de “-“, realiza-se a operação contrária (decifração, descriptografia). Segue script (bash) que escrevi baseado no algoritmo da Cifra de César:

#!/bin/sh
#
# Caesar Cipher in Bash
#
# Use key = 13 for ROT-13 cipher
# key can be a negative number (decrypt)
#
# Author: alexandre.abreu@gmail.com
# Date: 20/03/09
#
# http://en.wikipedia.org/wiki/Caesar_cipher

[ -n "$1" ] || {
   echo "Usage: $0 \"Message\" [key=3]"
   exit 1
}

KEY=${2:-3}

# more sanitization
KEY=$(expr $KEY \% 26 2>/dev/null) || {
   echo "Key must be an integer between 1 and 25"
   exit 1
}

IFS="
"
for char in `echo -n "$1" | tr '[a-z]' '[A-Z]' | grep -o "."`; do
   dec=$(printf "%d" \'${char})
   ( [ $dec -lt 65 ] || [ $dec -gt 90 ] ) && {
      echo -n $char
      continue
   }
   dec=$[dec+KEY]
   [ $dec -gt 90 ] && dec=$[(64+dec)%90]
   char=$(printf "%02X" $dec)
   printf "\x${char}"
done

echo

exit 0

Inclusive, publiquei-o no registro do Wikipedia para que outras pessoas (estudantes, principalmente) possam utilizá-lo.

Parabéns ao ‘foxtrote’ pela resposta mais rápida! :) Até o próximo desafio!

Abraços

4 Respostas to “Resposta do Desafio I: Criptografia Básica”

  1. […] basta chamar nosso editor oficial de questões ‘criptográficas’, vencedor do primeiro desafio do blog: […]

  2. […] 20Software Illustrated: O processo de boot do KernelPetrobras 2007 – Eng. de Software – Cargo 5Resposta do Desafio I: Criptografia BásicaCódigos de Autenticação de Mensagem (MAC)Prova 2002: Q42 Programação webProva 2004 Regional: […]

  3. Tr00 said

    Iae paparcharliefox3, fiz uma Cifra de César que usa a tabela ASCII como “alfabeto”…

    Se quiseres ver: http://pastebin.com/m299ea0b7

  4. papacharliefox3 said

    Legal cara! Eu fiz o script para assimilar melhor…não sou especialista em crypto. Mas tem uma galera aí acessando o blog que é até ‘doutorando’ nessa matéria! :-O

    Crypto vai pegar na prova! Aos estudos…

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

 
%d blogueiros gostam disto: