Python Forensics - Bir Şifrelemeyi Kırma

Bu bölümde, analiz ve kanıt sırasında getirilen bir metin verisini kırmayı öğreneceğiz.

Kriptografide düz bir metin, mesaj gibi bazı normal okunabilir metindir. Öte yandan bir şifreleme metni, siz düz metin girdikten sonra getirilen bir şifreleme algoritmasının çıktısıdır.

Düz bir metin mesajını şifreli bir metne nasıl dönüştürdüğümüzün basit algoritması, Caesar cipher, Julius Caesar tarafından düz metni düşmanlarından gizli tutmak için icat edildi. Bu şifre, mesajdaki her harfin alfabede üç basamak "ileri" kaydırılmasını içerir.

Aşağıda bir demo örneği verilmiştir.

a → D

b → E

c → F

....

w → Z

x → A

y → B

z → C

Misal

Bir Python betiğini çalıştırdığınızda girilen bir mesaj, kalıp kanıtı için kullanılan tüm karakter olasılıklarını verir.

Kullanılan desen kanıtı türleri aşağıdaki gibidir -

  • Lastik İzleri ve İşaretleri
  • Impressions
  • Fingerprints

Her biyometrik veri, tam kanıt elde etmek için kırmamız gereken vektör verilerinden oluşur.

Aşağıdaki Python kodu, düz metinden nasıl bir şifre metni üretebileceğinizi gösterir -

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:])

Çıktı

Şimdi, bu kodun çıktısını kontrol edin. Basit bir "Radhika" metni girdiğimizde, program aşağıdaki şifre metnini üretecektir.