Python Forensics - Cracking an Encryption
Neste capítulo, aprenderemos como quebrar os dados de um texto buscados durante a análise e a evidência.
Um texto simples em criptografia é algum texto legível normal, como uma mensagem. Um texto cifrado, por outro lado, é a saída de um algoritmo de criptografia obtido depois que você insere o texto simples.
Um algoritmo simples de como transformamos uma mensagem de texto simples em um texto cifrado é o Caesar cipher, inventado por Júlio César para manter o texto simples em segredo de seus inimigos. Essa cifra envolve o deslocamento de cada letra da mensagem "para a frente" em três casas do alfabeto.
A seguir está uma ilustração de demonstração.
a → D
b → E
c → F
....
w → Z
x → A
y → B
z → C
Exemplo
Uma mensagem inserida quando você executa um script Python fornece todas as possibilidades de caracteres, que são usados para evidência de padrão.
Os tipos de evidências de padrão usados são os seguintes -
- Trilhas e marcas de pneus
- Impressions
- Fingerprints
Todos os dados biométricos são compostos por dados vetoriais, que precisamos quebrar para reunir evidências completas.
O seguinte código Python mostra como você pode produzir um texto cifrado a partir de texto simples -
import sys
def decrypt(k,cipher):
plaintext = ''
for each in cipher:
p = (ord(each)-k) % 126
if p < 32:
p+=95
plaintext += chr(p)
print plaintext
def main(argv):
if (len(sys.argv) != 1):
sys.exit('Usage: cracking.py')
cipher = raw_input('Enter message: ')
for i in range(1,95,1):
decrypt(i,cipher)
if __name__ == "__main__":
main(sys.argv[1:])
Resultado
Agora, verifique a saída deste código. Quando inserimos um texto simples "Radhika", o programa produzirá o seguinte texto cifrado.