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.