Affine κρυπτογράφηση κρυπτογράφησης με χρήση Python

Affine Kryptographese Kryptographeses Me Chrese Python



Θέμα Περιεχομένων:

  1. Εισαγωγή
  2. Προαπαιτούμενη Γνώση
  3. Affine Cipher Equation
  4. Affine κρυπτογράφηση κρυπτογράφησης με χρήση Python
  5. Proof of Concept
  6. συμπέρασμα
  7. Συχνές Ερωτήσεις (FAQ)

Ο κρυπτογράφηση Affine αντιπροσωπεύει ένα συγκεκριμένο είδος κρυπτογράφησης υποκατάστασης, που εμπίπτει στην κατηγορία των μονοαλφαβητικών κρυπτογράφησης. Σε αντίθεση με τον πιο διάσημο κρυπτογράφηση του Καίσαρα, ο οποίος μετατοπίζει κάθε γράμμα σε απλό κείμενο κατά έναν σταθερό αριθμό τριών θέσεων, ο κρυπτογράφηση Affine χρησιμοποιεί δύο πλήκτρα (α και β). Η επιλογή των κλειδιών χρειάζεται ιδιαίτερη προσοχή.

Προαπαιτούμενη Γνώση

Για να κατανοήσετε σε βάθος το σημερινό θέμα, πρέπει να κατανοήσετε τις ακόλουθες έννοιες:







  • Ο Μεγαλύτερος Κοινός Διαιρέτης (GCD) & Συν-πρώτος αριθμός
  • Αρθρωτή αριθμητική

Αυτές οι έννοιες επεξηγούνται λεπτομερώς στο προηγούμενο άρθρο με τίτλο «Affine Cipher Mathematical Approach».



Affine Cipher Equation

Ας ξεκινήσουμε με τον τύπο για την κρυπτογράφηση κρυπτογράφησης Affine:



E(x) = (a.x + b) mod m
Πρώην) Υποδηλώνει μια κρυπτογράφηση του αλφαβητικού ευρετηρίου x
ένα Μια τιμή ευρετηρίου του 'ειδικού' πρώτου κλειδιού
Χ Μια τιμή ευρετηρίου του απλού γράμματος
σι Μια τιμή ευρετηρίου του δεύτερου κλειδιού (πρόσθετη τιμή μετατόπισης)
mod m Οι λειτουργίες modulo του συνολικού ποσού του αλφαβήτου που είναι 26


Alt-εικόνα και λεζάντα : Affine Cipher Equation





Για παράδειγμα, θέλουμε να κρυπτογραφήσουμε το απλό κείμενο «BIMANDO» με τα πλήκτρα 7 και 13. Χρησιμοποιώντας το ακόλουθο ευρετήριο πίνακα, μετατρέπουμε πρώτα το απλό κείμενο στον αντίστοιχο αριθμό:


Alt-εικόνα και λεζάντα : Αρίθμηση ευρετηρίου



Το απλό κείμενο 'BIMANDO' μετατρέπεται σε αριθμό ευρετηρίου σε '1 8 12 0 13 3 14'.


Alt-εικόνα και λεζάντα : Μετατροπή απλού κειμένου σε τιμή αρίθμησης ευρετηρίου

Στη συνέχεια, εφαρμόζουμε τον υπολογισμό της εξίσωσης και το αποτέλεσμα εμφανίζεται ως εξής:


Alt-εικόνα και λεζάντα : Affine Ciphering

Έτσι, το απλό κείμενο «BIMANDO» κρυπτογραφείται με χρήση κρυπτογράφησης Affine με τα κλειδιά 7 και 13 που καταλήγει σε «URTNAIH».

Affine κρυπτογράφηση κρυπτογράφησης με χρήση Python

Τώρα, ας υποθέσουμε ότι θέλουμε να στείλουμε ένα εμπιστευτικό μήνυμα που περιέχει μια δέσμη παραγράφων. Η κρυπτογράφηση κρυπτογράφησης Affine με τη μη αυτόματη διαδικασία απαιτεί πολλή προσπάθεια και χρόνο και έχει μεγάλες πιθανότητες υπολογισμού αποτυχίας, σωστά; Επομένως, χρειαζόμαστε ένα πρόγραμμα που αυτοματοποιεί τη διαδικασία κρυπτογράφησης Affine Cipher. Ακολουθεί η διαδικασία βήμα προς βήμα για τη δημιουργία ενός προγράμματος Python:

1. Εισαγάγετε τις Απαιτούμενες Βιβλιοθήκες
Το πρόγραμμά μας ξεκινάει με την εισαγωγή των απαραίτητων λειτουργικών μονάδων όπως argparse, string και os για ανάλυση ορίσματος γραμμής εντολών, λειτουργίες συμβολοσειράς και λειτουργικότητα που σχετίζεται με το λειτουργικό σύστημα, αντίστοιχα.

εισαγωγή argparse
εισαγωγή σειρά
εισαγωγή εσείς

2. Καθορισμός της χαρτογράφησης αλφαβήτου
Στη συνέχεια, ορίζουμε το αλφάβητο ως μια σειρά από πεζά αγγλικά γράμματα. Αυτό χρησιμοποιείται για τη χαρτογράφηση των χαρακτήρων κατά τη διαδικασία κρυπτογράφησης αργότερα.

αλφάβητο = σειρά . ascii_πεζά

3. Λειτουργία κρυπτογράφησης Affine Cipher
Αυτή είναι η βασική λειτουργία του προγράμματός μας. Παίρνει το κείμενο εισαγωγής και δύο πλήκτρα, 'a' και 'b', και εφαρμόζει την κρυπτογράφηση κρυπτογράφησης Affine στο κείμενο, διατηρώντας τη δομή του κειμένου.

def affine_cipher_encryption ( κείμενο , ένα , σι ) :
κρυπτογραφημένο_κείμενο = ''
Για απανθρακώνω σε κείμενο:
αν απανθρακώνω. πιο χαμηλα ( ) σε αλφάβητο:
αν απανθρακώνω. isupper ( ) :
encrypted_text + = χρ ( ( ( ένα * ( λέξη ( απανθρακώνω. πιο χαμηλα ( ) ) - 97 ) + β ) % 26 ) + 65 )
αλλού :
encrypted_text + = χρ ( ( ( ένα * ( λέξη ( απανθρακώνω ) - 97 ) + β ) % 26 ) + 97 )
αλλού :

4. Κύριος έλεγχος υπό όρους
Σε αυτόν τον κωδικό μπλοκ, ελέγξτε αν εκτελείται ως το κύριο πρόγραμμα. Ρυθμίζει τον αναλυτή ορισμάτων με περιγραφές για το σενάριο και τα ορίσματά του. Το απαιτούμενο όρισμα είναι μόνο μια διαδρομή εισαγωγής αρχείου κειμένου. Όταν δεν καθορίζουμε τη διαδρομή εξόδου, θέλουμε να ορίσει ως προεπιλογή το όνομα του αρχείου εισόδου με το '_encrypted' να προσαρτάται σε αυτό. Για το όρισμα «κλειδιά», θέλουμε να μορφοποιηθεί σε «a,b». Αλλά αν το ρυθμίσουμε, η προεπιλογή είναι 5 και 8.

αν __όνομα__ == '__κύριος__' :
αναλυτής = argparse. ArgumentParser ( περιγραφή = 'Προσθήκη κρυπτογράφησης κρυπτογράφησης από αρχείο κειμένου' )
αναλυτής . add_argument ( 'αρχείο_εισόδου' , βοήθεια = 'Διαδρομή προς το αρχείο κειμένου εισαγωγής' )
αναλυτής . add_argument ( '-κ' , '--κλειδιά' , τύπος = str , Προκαθορισμένο = '5,8' , βοήθεια = 'Κλειδιά για τον Affine Cipher σε μορφή 'a,b'' )
args = αναλυτής . parse_args ( )

ένα , σι = χάρτης ( ενθ , args. κλειδιά . διαίρεση ( ',' ) )

με Άνοιξε ( args. input_file , 'r' ) όπως και αρχείο :
κείμενο = αρχείο . ανάγνωση ( )

# Εξαγάγετε το όνομα του αρχείου από τη διαδρομή του αρχείου εισόδου
input_filename , επέκταση = εσείς . μονοπάτι . splitext ( args. input_file )
default_output_file = input_filename + '_encrypted' + επέκταση

# Κρυπτογραφήστε το κείμενο χρησιμοποιώντας τον συγγενικό κρυπτογράφηση
κρυπτογραφημένο_κείμενο = affine_cipher_encryption ( κείμενο , ένα , σι )

# Γράψτε το κρυπτογραφημένο κείμενο σε ένα νέο αρχείο
με Άνοιξε ( default_output_file , 'Σε' ) όπως και αρχείο :
αρχείο . γράφω ( κρυπτογραφημένο_κείμενο )

Τέλος, μόλις ολοκληρωθεί η λειτουργία κρυπτογράφησης, το πρόγραμμα μας θα αποθηκεύσει την έξοδο με την ίδια επέκταση αρχείου με το αρχείο εισόδου.

Τώρα, αποθηκεύστε το στο 'affine_cipher.py'. Τώρα, εκτελέστε το πρόγραμμα πληκτρολογώντας την ακόλουθη εντολή:

python affine_cipher. py

Εάν δεν βρείτε σφάλμα, η έξοδος μοιάζει με την ακόλουθη εικόνα:


Alt-εικόνα και λεζάντα : Πρόγραμμα Affine Cipher Python

Proof of Concept

Έχουμε ένα εμπιστευτικό μήνυμα με το ακόλουθο όνομα 'message.txt' και θέλουμε να το μεταδώσουμε στα μέλη μας:


Alt-εικόνα και λεζάντα : Απλό κείμενο

Έτσι, χρησιμοποιούμε το πρόγραμμα που δημιουργήσαμε πριν θελήσουμε να κρυπτογραφήσουμε αυτό το μήνυμα χρησιμοποιώντας κρυπτογράφηση Affine με τα κλειδιά 3 και 7. Η εντολή είναι η εξής:

python affine_cipher. py μήνυμα. κείμενο 3 , 7


Alt-εικόνα και λεζάντα : Πρόγραμμα Affine Cipher Python

Με την ταχύτητα ενός βλεφαριού, το κρυπτογραφημένο μήνυμα δημιουργείται με επιτυχία και αποθηκεύεται στο 'message_encrypted.txt'. Ας δούμε πώς φαίνεται το μήνυμα:


Alt-εικόνα και λεζάντα : Affine κρυπτογραφημένο κείμενο

Όπως μπορείτε να δείτε, το μήνυμα είναι κωδικοποιημένο. Μόνο τα μέλη μας που γνωρίζουν τη μέθοδο κρυπτογράφησης και τα κλειδιά της μπορούν να αποκρυπτογραφήσουν το μήνυμα.

Δοκιμάστε το μόνοι σας

Κατεβάστε αυτόν τον πηγαίο κώδικα του προγράμματος στη σελίδα μας στο GitHub στη διεύθυνση https://github.com/bimando/Affine-Cipher .

συμπέρασμα

Συμπερασματικά, η μέθοδος κρυπτογράφησης κρυπτογράφησης Affine, μια μορφή κρυπτογράφησης μονοαλφαβητικής αντικατάστασης, προσφέρει αυξημένη ασφάλεια μέσω της χρήσης δύο κλειδιών, απαιτώντας προσεκτική εξέταση κατά την επιλογή κλειδιού. Η κατανόηση των εννοιών όπως ο μεγαλύτερος κοινός διαιρέτης (GCD), οι συνπρώτοι αριθμοί και η αρθρωτή αριθμητική είναι απαραίτητες για την κατανόηση των περιπλοκών του κρυπτογράφησης Affine.

Η εξίσωση κρυπτογράφησης Affine, E(x) = (a.x + b) mod m, χρησιμεύει ως το θεμελιώδες εργαλείο για κρυπτογράφηση όπου τα 'a' και 'b' αντιπροσωπεύουν τα κλειδιά και το 'x' συμβολίζει το ευρετήριο του γράμματος απλού κειμένου. Η υλοποίηση ενός αυτοματοποιημένου προγράμματος Python για τη διαδικασία κρυπτογράφησης κρυπτογράφησης Affine αποδείχθηκε ότι εξορθολογίζει αποτελεσματικά τις εργασίες κρυπτογράφησης μεγάλης κλίμακας. Το πρόγραμμα ενσωματώνει τις βασικές λειτουργίες, όπως εισαγωγή βιβλιοθηκών, αντιστοίχιση αλφαβήτου, συνάρτηση κρυπτογράφησης και ανάλυση ορίσματος γραμμής εντολών για διαδρομές εισόδου και εξόδου. Συγκεκριμένα, το σενάριο ενεργοποιεί τις προεπιλεγμένες ρυθμίσεις για τα κλειδιά και τα ονόματα των αρχείων εξόδου για να διευκολύνει μια απρόσκοπτη διαδικασία κρυπτογράφησης.

Συχνές Ερωτήσεις (FAQ)

Ε1: Τι είναι ο κρυπτογράφησης Affine και σε τι διαφέρει από τον κρυπτογράφηση του Caesar;

A1: Ο κρυπτογράφηση Affine είναι ένας τύπος κρυπτογράφησης μονοαλφαβητικής αντικατάστασης που χρησιμοποιεί δύο κλειδιά, 'a' και 'b', για κρυπτογράφηση. Αντίθετα, η κρυπτογράφηση του Καίσαρα χρησιμοποιεί μια σταθερή μετατόπιση τριών θέσεων για κάθε γράμμα στο απλό κείμενο.

Ε2. Ποιες είναι οι προϋποθέσεις για την κατανόηση του κρυπτογράφησης Affine;

A2: Για να κατανοήσετε πλήρως τον κρυπτογράφηση Affine, είναι σημαντικό να κατανοήσετε έννοιες όπως ο μεγαλύτερος κοινός διαιρέτης (GCD), οι συν-πρώτοι αριθμοί και η αρθρωτή αριθμητική.

Ε3: Πώς μπορώ να κρυπτογραφήσω ένα μήνυμα χρησιμοποιώντας τον κρυπτογράφηση Affine στην Python;

A3: Για να αυτοματοποιήσετε τη διαδικασία κρυπτογράφησης κρυπτογράφησης Affine, μπορείτε να χρησιμοποιήσετε το πρόγραμμα Python που περιγράφεται στο άρθρο. Το πρόγραμμα κρυπτογραφεί αποτελεσματικά εισαγωγές κειμένου μεγάλης κλίμακας, απλοποιώντας τη διαδικασία κρυπτογράφησης. Το άρθρο παρέχει οδηγίες βήμα προς βήμα για την εισαγωγή των βιβλιοθηκών, τον ορισμό της αντιστοίχισης αλφαβήτου, τη δημιουργία της συνάρτησης κρυπτογράφησης και την ανάλυση των ορισμάτων της γραμμής εντολών για διαδρομές εισόδου και εξόδου.