Python Forensics - łamanie szyfrowania
W tym rozdziale dowiemy się, jak złamać dane tekstowe pobrane podczas analizy i dowodów.
Zwykły tekst w kryptografii to zwykły, czytelny tekst, taki jak wiadomość. Z drugiej strony, zaszyfrowany tekst jest wynikiem algorytmu szyfrowania pobranego po wprowadzeniu zwykłego tekstu.
Prosty algorytm, w jaki sposób zamieniamy zwykłą wiadomość tekstową na zaszyfrowany tekst, to Caesar cipher, wymyślony przez Juliusza Cezara, aby ukryć zwykły tekst przed wrogami. Ten szyfr polega na przesunięciu każdej litery w wiadomości „do przodu” o trzy miejsca w alfabecie.
Poniżej znajduje się ilustracja demonstracyjna.
a → D
b → E.
c → F.
....
w → Z
x → A
y → B
z → C
Przykład
Komunikat wprowadzany podczas uruchamiania skryptu w Pythonie daje wszystkie możliwości znaków, które są używane jako dowód wzorców.
Typy wykorzystywanych dowodów wzorców są następujące:
- Ślady i oznaczenia opon
- Impressions
- Fingerprints
Każde dane biometryczne składa się z danych wektorowych, które musimy złamać, aby zebrać pełne dowody.
Poniższy kod w Pythonie pokazuje, jak można utworzyć zaszyfrowany tekst ze zwykłego tekstu -
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:])
Wynik
Teraz sprawdź wyjście tego kodu. Kiedy wprowadzimy prosty tekst „Radhika”, program wygeneruje następujący zaszyfrowany tekst.