Primeiro Ato
Criptografia em ação
A Cifra de César – Comunicação Segura
Durante a missão de combate à Serpent Council, você e sua equipe de agentes secretos precisam garantir a segurança das comunicações. Para isso, decidem utilizar a Cifra de César, um método de criptografia simples e eficaz.
A Cifra de César é um sistema de criptografia por substituição, onde cada letra da mensagem original é substituída por outra letra, que se encontra um número fixo de posições à frente no alfabeto. Esse número de posições é conhecido como “chave” e pode variar dependendo da necessidade de segurança.
Por exemplo, se escolhermos uma chave de 3, a letra “A” seria substituída pela letra “D”, “B” pela letra “E”, e assim por diante. Dessa forma, a palavra “SEGURANCA” seria criptografada como “VHJXUDQFD“.
Essa técnica é chamada de Cifra de César porque foi utilizada pelo imperador romano Júlio César em suas comunicações militares. Ele escolhia uma chave fixa e enviava mensagens criptografadas para garantir que apenas pessoas autorizadas pudessem entender o conteúdo.
Na sua equipe, cada agente possui uma chave de criptografia única. Isso significa que, para se comunicarem entre si, eles devem utilizar a mesma chave para cifrar e decifrar as mensagens. Essa medida de segurança impede que interceptadores compreendam facilmente o conteúdo das mensagens.
Dessa forma, você e sua equipe podem se comunicar de forma segura, protegendo informações cruciais contra a Serpent Council. O uso da Cifra de César permite que as mensagens interceptadas não revelem seu conteúdo real, mantendo a confidencialidade das comunicações.
Agora, equipados com o conhecimento da Cifra de César e os programas adequados, você e sua equipe estão prontos para enfrentar os desafios da missão. Lembre-se de compartilhar a chave de criptografia de forma segura entre os membros da equipe para garantir a comunicação eficaz e segura.
A segurança está em suas mãos habilidosas. Use a Cifra de César com sabedoria e vença a batalha contra a Serpent Council!
Você e sua equipe estão infiltrados em uma instalação altamente protegida da Serpent Council. O objetivo é obter informações cruciais sobre seu próximo plano de sabotagem. Enquanto você e Chloe estão vasculhando os sistemas de segurança, você decide usar o programa abaixo para se comunicar com os outros membros da equipe de forma segura.
# importa o módulo de rádio micro:bit para que seu script possa chamar seus métodos
# o módulo de rádio faz parte do MicroPython
from microbit import *
import radio
# função para criptografar a mensagem usando cifra de César
def cryptcesar(message, shift):
encrypted_message = ""
for char in message:
if char.isalpha():
# determina o deslocamento com base no parâmetro shift
shifted_char = chr((ord(char.upper()) - ord('A') + shift) % 26 + ord('A'))
if char.islower():
shifted_char = shifted_char.lower()
encrypted_message += shifted_char
else:
encrypted_message += char
return encrypted_message
# o rádio consome energia para funcionar, por padrão ele é mantém o status desligado fazendo a bateria durar mais
# o método radio.on() liga o rádio, a partir daí o rádio pode transmitir e receber mensagens
# Lembre-se de que ele também consumirá mais corrente e descarregará a bateria mais rapidamente :)
radio.on()
# O método de configuração do módulo de rádio permite configurar o rádio de muitas maneiras diferentes
# alguns exemplos de uso, incluem potência de transmissão de rádio, comprimento máximo da mensagem,
# número máximo de mensagens recebidas a serem armazenadas e a configuração do canal.
# neste exemplo, iremos utilizar somente a configuração de canal, que pode ser definida de 0 a 255
# é importante salientar que a micro:bit somente se comunicam via rádio quando configurados para o mesmo canal
# por exemplo: um par de micro:bit executando scripts com group = 30 e um segundo par de micro:bit usando
# group = 20. neste cenário as micro:bit's usando channel = 10 não receberão nenhuma mensagem enviada
# pelas micro:bit's usando o group = 20 e vice-versa
radio.config(group = 100)
# pausa de 1 segundo
sleep(1000)
while True:
if button_a.was_pressed():
# imprime a string "enviar mensagem" para o terminal
print("enviar mensagem")
# cria uma variável (mensagem) que armazena uma string com os caracteres "Alo mundo..."
salto = 3
mensagem = cryptcesar("equipe, encontrei o local onde estao escondendo os arquivos confidenciais. preciso de ajuda para desativar as defesas.", salto)
# imprime no terminal o valor armazenado na variável mensagem concatenada com a string "Enviar: "
print("Enviar: " + "#"+ mensagem +"#")
# usa o rádio da micro:bit para transmitir o conteúdo da variável mensagem
radio.send(mensagem)
# imprime a string "enviado!" no terminal
print("enviado!")
Nota: Ao usar o simulador, para visualizar as mensagens, clique em Show Serial.
Após criar rapidamente o programa e enviar para seu micro:bit, com a seguinte mensagem cifrada: “Equipe, encontrei o local onde estão escondendo os arquivos confidenciais. Preciso de ajuda para desativar as defesas.“, você se prepara para transmitir a mensagem ao pressionar o botão A do micro:bit.
Com um único toque, a mensagem criptografada é enviada para a Dra. Amelia e o Agente Jake, que estão monitorando a situação a partir de um ponto de observação remota. A tensão toma conta do ambiente enquanto você espera ansiosamente por uma resposta.
Pouco tempo depois, uma notificação aparece em seu micro:bit, indicando a chegada de uma mensagem. Como sempre, naturalmente, você se concentra em decifrar a mensagem recebida de Jake:
#uhfhelgr. ydprv qrv lqilowudu h ghvdelolwdu dv ghihvdv. pdqwhqkd-qrv lqirupdgrv vreuh r surjuhvvr.#
Sem perder tempo, você mergulhou na construção do programa para decifrar a mensagem. Cada linha de código é cuidadosamente escrita, com a cifra de César em mente. Cada item é analisado e transformado em sua forma original, revelando assim o significado oculto da mensagem.
A medida que o programa toma forma, você sente a urgência de desvendar a mensagem cifrada. Cada instante é crucial, e você se concentra intensamente para garantir que cada detalhe seja tratado com precisão e exatidão.
Finalmente, o programa está completo.
from microbit import *
# função para criptografar a mensagem usando cifra de César
def cryptcesar(message, shift):
encrypted_message = ""
for char in message:
if char.isalpha():
# determina o deslocamento com base no parâmetro shift
shifted_char = chr((ord(char.upper()) - ord('A') + shift) % 26 + ord('A'))
if char.islower():
shifted_char = shifted_char.lower()
encrypted_message += shifted_char
else:
encrypted_message += char
return encrypted_message
# função para decifrar a mensagem usando cifra de César
def decryptcesar(message, shift):
decrypted_message = ""
for char in message:
if char.isalpha():
# determina o deslocamento inverso com base no parâmetro shift
shifted_char = chr((ord(char.upper()) - ord('A') - shift) % 26 + ord('A'))
if char.islower():
shifted_char = shifted_char.lower()
decrypted_message += shifted_char
else:
decrypted_message += char
return decrypted_message
while True:
if button_b.was_pressed():
salto = 7
mensagem = decryptcesar("COLOQUE AQUI A MENSAGEM CIFRADA", salto)
# imprime no terminal o valor armazenado na variável mensagem decifrada
print("Mensagem: " + mensagem)
Chegou o momento de testar e desvendar o verdadeiro significado da mensagem. Com o pressionamento do botão B, você ativa o programa no seu micro:bit, ansioso para ver a mensagem decifrada surgir no serial do ambiente de programação.
A emoção toma conta de você quando a mensagem decifrada é revelada:
Seu esforço em decifrar a mensagem foi bem-sucedido, garantindo uma comunicação segura e eficiente.
Enquanto espera por Chloe para concluir a desativação das defesas de segurança, uma notificação aparece em seu micro:bit. É uma resposta de Amelia, que traz consigo mais informações sobre a missão:
#rwlpr wudedokr, djhqwh. hvwdprv udvwuhdqgr rv dutxlyrv frqilghqfldlv gd SV. iltxh dwhqwr d txdotxhu lqirupdfdr uhohydqwh.#
Com o coração acelerado, algo poderia ter dado errado, você decifra a mensagem de Amelia e assimila seu conteúdo. Cada palavra chega a você, trazendo um sentimento vital.
Nesse momento, Chloe surge ao seu lado, trazendo boas notícias. Com um sorriso de satisfação, ela informa que as defesas foram neutralizadas com sucesso. Um sentimento de alívio e confiança preencha o ar, pois vocês superaram mais um obstáculo perigoso juntos.
Com as defesas inativas, é hora de seguir seguindo em direção ao objetivo final. Vocês formam uma equipe imbatível, prontos para enfrentar qualquer desafio que a Serpent Council possa lançar em seu caminho. Juntos, vocês seguem adiante, certos de encontrar os arquivos válidos e desvendar os segredos obscuros da organização.
Com uma missão clara em mente, você se prepara para se juntar à equipe e seguir em direção ao ponto de encontro.
O próximo alvo da Serpent Council está à espera, envolto em mistério e perigo e vocês estão prontos para enfrentar os desafios e proteger a segurança da missão, confiantes de que a criptografia é uma ferramenta poderosa ao seu lado.