Python Forensics - Bẻ khóa mã hóa

Trong chương này, chúng ta sẽ tìm hiểu về cách bẻ khóa dữ liệu văn bản được lấy trong quá trình phân tích và bằng chứng.

Văn bản thuần túy trong mật mã là một số văn bản bình thường có thể đọc được, chẳng hạn như tin nhắn. Mặt khác, văn bản mật mã là đầu ra của một thuật toán mã hóa được tìm nạp sau khi bạn nhập văn bản thuần túy.

Thuật toán đơn giản về cách chúng tôi biến một tin nhắn văn bản thuần túy thành văn bản mật mã là Caesar cipher, do Julius Caesar phát minh ra để giữ bí mật văn bản thuần túy khỏi kẻ thù của mình. Mật mã này liên quan đến việc chuyển mọi chữ cái trong tin nhắn "chuyển tiếp" theo ba vị trí trong bảng chữ cái.

Sau đây là một minh họa demo.

a → D

b → E

c → F

....

w → Z

x → A

y → B

z → C

Thí dụ

Một thông báo được nhập khi bạn chạy một tập lệnh Python cung cấp tất cả các khả năng của các ký tự, được sử dụng cho bằng chứng mẫu.

Các loại bằng chứng mẫu được sử dụng như sau:

  • Dấu vết và dấu lốp
  • Impressions
  • Fingerprints

Mọi dữ liệu sinh trắc học đều bao gồm dữ liệu vectơ, chúng tôi cần bẻ khóa để thu thập bằng chứng đầy đủ.

Đoạn mã Python sau đây cho thấy cách bạn có thể tạo văn bản mật mã từ văn bản thuần túy:

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

Đầu ra

Bây giờ, hãy kiểm tra đầu ra của mã này. Khi chúng ta nhập một văn bản đơn giản "Radhika", chương trình sẽ tạo ra văn bản mật mã sau.