Μετάβαση στο περιεχόμενο

Αλγόριθμος κρυπτογράφησης Vigenère: Διαφορά μεταξύ των αναθεωρήσεων

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια
Περιεχόμενο που διαγράφηκε Περιεχόμενο που προστέθηκε
→‎Ιστορική Εξέλιξη: Διόρθωση άρθρων (ο, η)
μερική επιμέλεια και διορθώσεις, προσθήκες
Γραμμή 1: Γραμμή 1:
{{επιμέλεια|εσωτερικοί σύνδεσμοι, ορθογραφία, ξένοι όροι χωρίς ελληνική απόδοση}}
{{επιμέλεια|ξένοι όροι χωρίς ελληνική απόδοση}}
Η κρυπτογράφηση Vigenère είναι μια μέθοδος κρυπτογράφησης σε αλφαβητικό κείμενο χρησιμοποιώντας μια σειρά από διαφορετικούς αλγόριθμους κρυπτογράφησης του Καίσαρα με βάση τα γράμματα μιας λέξης-κλειδιού. Είναι μια απλή μορφή της πολυαλφαβιτική υποκατάστασης.
Ο αλγόριθμος κρυπτογράφησης Vigenère (γαλλική προφορά: {{IPA|[viʒnɛːʁ]}}) είναι μία μέθοδος κρυπτογράφησης σε αλφαβητικό κείμενο στο οποίο εφαρμόζονται διαφορετικοί αλγόριθμοι [[Κώδικας του Καίσαρα|κρυπτογράφησης Καίσαρα]] με βάση τη θέση των γραμμάτων μιας λέξης ή φράσης κλειδί. Είναι μια απλή μορφή της πολυαλφαβητικής υποκατάστασης.
Η κρυπτογράφηση Vigenère (γαλλική προφορά: [viʒnɛ ː ʁ]) έχει εφευρεθεί εκ νέου πολλές φορές. Η μέθοδος αρχικά περιγράφεται από τον Giovan Battista Bellaso το 1553 στο βιβλίο του La cifra del. Sig. Giovan Battista Bellaso.
Η κρυπτογράφηση Vigenère έχει εφευρεθεί εκ νέου πολλές φορές. Τη μέθοδο αρχικά περιέγραψε ο [[Giovan Battista Bellaso]] το [[1553]].
Ο αλγόριθμος είναι γνωστός, γιατί, ενώ είναι εύκολο να τον κατανοήσει και να τον εφαρμόσει ακόμα και ένας αρχάριος στην κρυπτογράφηση, φαίνεται συχνά να είναι αδύνατη η αποκρυπτογράφηση του κρυπτογραφημένου κειμένου. Αυτός είναι και ο λόγος που κέρδισε την περιγραφή ''«η κρυπτογράφηση που δεν αποκρυπτογραφείται»'' (γαλλικά: ''Le Chiffre indéchiffrable''). [[Αρχείο:AlgorithmV.png|right]]
Η κρυπτογράφηση είναι γνωστή, γιατί, ενώ είναι εύκολο να τη κατανοήσουν και να την εφαρμόσουν, φαίνεται συχνά από τους αρχάριους να είναι ακατόρθωτο, αυτό ήταν που κέρδισε την περιγραφή Le Chiffre indéchiffrable (γαλλικά για «την ανεξιχνίαστη κρυπτογράφηση»). Κατά συνέπεια, πολλοί άνθρωποι προσπάθησαν να εφαρμόσουν συστήματα κρυπτογράφησης που είναι ουσιαστικά αλγόριθμοι κρυπτογράφησης Vigenère , μόνο για να τους αποκρυπτογραφήσουν. [[Αρχείο:AlgorithmV.png|right]]


==Ιστορική Εξέλιξη==
==Ιστορική Εξέλιξη==


Η πρώτη καλά τεκμηριωμένη περιγραφή της κρυπτογράφησης διατυπώθηκε από τον [[Leon Battista Alberti]] γυρω στο [[1467]] και χρησιμοποιούσε ένα μεταλλικό δίσκο για εναλλαγή μεταξύ των αλφαβήτων κρυπτογράφησης.
Η πρώτη τεκμηριωμένη πολυαλφαβιτική περιγραφή της κρυπτογράφησης διατυπώθηκε από τον ''Leon Battista Alberti'' γυρω στο '''1467''' με ένα δίσκο από μέταλλο που χρησιμοποιείται για κρυπτογράφηση και εναλλαγή μεταξύ των αλφαβήτων κρυπτογράφησης. Το σύστημα του ''Alberti'' ενεργοποιείται μόνο με αλφάβητα μετά από αρκετές λέξεις, και οι διακόπτες που υποδεικνύονται από τη σύνταξη της επιστολής του αντίστοιχου αλφαβήτου στο κρυπτογράφημα. Αργότερα, το '''1508''', o ''Johannes Trithemius'', στο έργο του Poligraphia, εφηύρε το ''tabula Recta'', ένα κρίσιμο συστατικό της κρυπτογράφησης ''Vigenère''. Η κρυπτογράφηση ''Trithemius'', όμως, μόνο με μια προϋπόθεση το προοδευτικό, άκαμπτο και προβλέψιμο σύστημα για την εναλλαγή μεταξύ αλφάβητων κρυπτογράφησης.


Το σύστημα του ''Alberti'' άλλαζε αλφάβητο κρυπτογράφησης μόνο μετά από έναν αριθμό λέξεων, χρησιμοποιώντας ενδείξεις που αναφέρονταν στη σύνταξη της επιστολής. Αργότερα, το [[1508]], o [[Johannes Trithemius]], στο έργο του «Poligraphia», επινόησε τον πίνακα αντικατάστασης (''tabula Recta''), ένα κρίσιμο στοιχείο της κρυπτογράφησης ''Vigenère''.
Αυτό που είναι τώρα γνωστό ως κρυπτογράφηση ''Vigenère'' αρχικά περιγράφεται από τον ''Giovan Battista Bellaso'' το '''1553''' στο βιβλίο του ''La cifra del. Sig. Giovan Battista Bellaso''. Έχτισε από την ''tabula Recta'' του ''Trithemius'', αλλά πρόσθεσε ένα επαναλαμβανόμενο "παρασύνθημα" (κλειδί) κρυπτογράφησης για να αλλάξει αλφάβητα με κάθε γράμμα. Επιπροσθέτως, ''Alberti'' και ''Trithemius'' χρησιμοποίησαν ένα σταθερό μοτίβο αντικαταστάσεων, το σύστημα ''Bellaso'' σήμαινε το μοτίβο των αντικαταστάσεων που θα μπορούσε να αλλάξει εύκολα, απλά επιλέγοντας ένα νέο κλειδί. Κλειδιά ήταν συνήθως μεμονωμένες λέξεις ή μικρές φράσεις, που είναι γνωστό ότι τα δύο μέρη εκ των προτέρων, ή να μεταδοθεί "εκτός φράσης" μαζί με το μήνυμα. Για τη μέθοδο ''Bellaso'' απαιτείται ισχυρή ασφάλεια μόνο για το κλειδί. Δεδομένου ότι είναι σχετικά εύκολο να εξασφαλίσουν μια σύντομη φράση-κλειδί, ας πούμε από μια προηγούμενη ιδιωτική συνομιλία, το σύστημα ''Bellaso'' ήταν πολύ πιο ασφαλής.


Αυτό που γνωρίζουμε σήμερα σαν ''αλγόριθμο κρυπτογράφησης Vigenère'' το περιέγραψε αρχικά ο Giovan Battista Bellaso, το [[1553]], στο βιβλίο του «''La cifra del. Sig. Giovan Battista Bellaso''». Χρησιμοποίησε τον πίνακα αντικατάστασης (''tabula Recta'') του ''Trithemius'', αλλά πρόσθεσε ένα επαναλαμβανόμενο "παρασύνθημα" (κλειδί) κρυπτογράφησης ώστε να αλλάζει το αλφάβητο αντικατάστασης σε κάθε γράμμα. Και ενώ οι ''Alberti'' και ''Trithemius'' χρησιμοποίησαν ένα σταθερό μοτίβο αντικαταστάσεων, το σύστημα ''Bellaso'' έκανε φανερό ότι η κρυπτογράφηση θα μπορούσε να αλλάξει εύκολα, απλά επιλέγοντας ένα νέο κλειδί. Το κλειδί ήταν συνήθως μεμονωμένες λέξεις ή μικρές φράσεις, που ήταν γνωστές και στα δύο μέρη εκ των προτέρων, ή είχαν μεταδοθεί παράλληλα, μαζί με το μήνυμα. Για τη μέθοδο ''Bellaso'' απαιτείται ισχυρή ασφάλεια μόνο για το κλειδί. Δεδομένου ότι είναι σχετικά εύκολο να εξασφαλιστεί μια σύντομη φράση-κλειδί, για παράδειγμα σε μια προηγούμενη ιδιωτική συνομιλία, το σύστημα ''Bellaso'' ήταν πολύ πιο ασφαλές.
Ο ''Blaise de Vigenère'' δημοσίευσε την περιγραφή ενός παρόμοιου, αλλά ισχυρότερου από την κρυπτογράφηση autokey ενώπιον του δικαστηρίου του ''Ερρίκου Γ'' της Γαλλίας, το '''1586'''. Αργότερα, τον '''19ο αιώνα''', η εφεύρεση της κρυπτογράφησης ''Bellaso'' ήταν ασύγκριτη από την ''Vigenère''. Ο ''David Kahn'', στο βιβλίο του ''oι'' ''Codebreakers'' θρήνησε τη λάθος υπαγωγή λέγοντας ότι «η ιστορία είχε αγνοήσει αυτήν την σημαντική συμβολή και αντί να ονομάζεται μια φθίνουσα και στοιχειώδη κρυπτογράφηση νόμιζε ότι δεν είχε τίποτα να κάνει με αυτό».


Ο ''Blaise de Vigenère'' δημοσίευσε την περιγραφή ενός παρόμοιου, βασισμένου επίσης στην απλή κρυπτογράφηση του Καίσαρα, ενώπιον του δικαστηρίου του ''Ερρίκου Γ'' της Γαλλίας, το [[1586]]. Αργότερα, τον [[19ος αιώνας|19ο αιώνα]], η κρυπτογράφηση ''Bellaso'' εσφαλμένα αποδόθηκε στον ''Vigenère''. Ο ''David Kahn'', στο βιβλίο του ''oι Codebreakers'' εξέφρασε τη λύπη του για τη λάθος αναφορά λέγοντας πως η ιστορία είχε αγνοήσει αυτήν την σημαντική συμβολή και αποδόθηκε στον αλγόριθμο το όνομα του Vigenère παρόλο που δεν είχε τίποτα να κάνει με αυτό.
Η κρυπτογράφηση ''Vigenère'' απέκτησε τη φήμη ότι είναι εξαιρετικά ισχυρή. Σημειώνεται ότι ο συγγραφέας και μαθηματικός ''Charles Dodgson Lutwidge (Lewis Carroll)'' ονόμασε από την κρυπτογράφηση ''Vigenère'' άθραυστο το '''1868''' το κομμάτι του "Το Αλφάβητο κρυπτογράφησης" σε ένα περιοδικό για παιδιά. Το '''1917''', το ''Scientific American'', περιέγραψε την ''Vigenère'' κρυπτογράφηση ως "αδύνατο της μετάφρασης». Αυτή η φήμη δεν της άξιζε. Ο ''Τσαρλς Μπάμπατζ'' ήταν γνωστό ότι είχε σπάσει μια παραλλαγή του αλγόριθμου νωρίτερα από το '''1854'''. Ωστόσο, δεν είχε δημοσιεύσει το έργο του ''Kasiski'' που έσπασε εντελώς την κρυπτογράφηση και την τεχνική που δημοσιεύθηκε τον '''19ο αιώνα'''. Ακόμη και πριν από αυτό, όμως, κάποιοι εξειδικευμένοι κρυπτογράφοι θα μπορούσαν να σπάσουν την κρυπτογράφηση περιστασιακά τον '''16ο αιώνα'''.


Η κρυπτογράφηση ''Vigenère'' απέκτησε τη φήμη ότι είναι εξαιρετικά ισχυρή. Σημειώνεται ότι ο συγγραφέας και μαθηματικός ''Τσαρλς Λούτγουϊτζ Ντότζσον (γνωστός ως [[Λιούις Κάρολ]])'' ονόμασε, το [[1868]], την κρυπτογράφηση ''Vigenère'' άσπαστη, στο δημοσίευμά του «Το Αλφάβητο κρυπτογράφησης» σε ένα περιοδικό για παιδιά. Το [[1917]], το περιοδικό [[Scientific American]], περιέγραψε την ''κρυπτογράφηση Vigenère'' ως ''"αδύνατη να αποκρυπτογραφηθεί"''<ref>State of the Art in Applied Cryptography: Course on Computer Security and Industrial Cryptograph Leuven Belgium, June 1997 Revised Lectures</ref>. Αυτή η φήμη δεν της άξιζε. Είναι γνωστό ότι [[Τσαρλς Μπάμπατζ]] είχε σπάσει μια παραλλαγή του αλγόριθμου νωρίτερα από το [[1854]]. Ωστόσο, δεν είχε ακόμα δημοσιευθεί το έργο του ''Kasiski'' που έσπασε εντελώς την κρυπτογράφηση και την τεχνική που δημοσιεύθηκε τον 19ο αιώνα. Ακόμη και πριν από αυτό, όμως, κάποιοι εξειδικευμένοι κρυπτογράφοι θα μπορούσαν να σπάσουν την κρυπτογράφηση περιστασιακά, ήδη από τον [[16ος αιώνας|16ο αιώνα]].
Η κρυπτογραφική slide κανόνα χρησιμοποιείται ως βοήθημα για τον υπολογισμό από τον ελβετικό στρατό μεταξύ '''1914''' και '''1940'''.


Η κρυπτογράφηση ''Vigenère'' είναι αρκετά απλό να είναι ένα πεδίο κρυπτογράφησης αν χρησιμοποιείται σε συνδυασμό με δίσκους κρυπτογράφησης. Οι ομόσπονδες Πολιτείες της Αμερικής, για παράδειγμα, χρησιμοποιούσαν ένα δίσκο κρυπτογράφησης ορείχαλκου για την εφαρμογή της κρυπτογράφησης ''Vigenère'' κατά τη διάρκεια του Αμερικανικού Εμφυλίου Πολέμου. Τα μηνύματα της συνομοσπονδίας ήταν μακριά από το μυστικό και η Ένωση ράγισε τακτικά τα μηνύματα τους. Κατά τη διάρκεια του πολέμου, η ομόσπονδη ηγεσία στηρίχθηκε κυρίως σε τρεις φράσεις κλειδιά, «Manchester Bluff», «Complete Victory» και, όπως ο πόλεμος ήρθε σε έναν περίβολο, "Come Retribution" .
Η κρυπτογράφηση ''Vigenère'' είναι αρκετά απλοϊκή αν χρησιμοποιείται σε συνδυασμό με δίσκους κρυπτογράφησης. Οι [[Συνομόσπονδες Πολιτείες της Αμερικής|ομόσπονδες Πολιτείες της Αμερικής]], για παράδειγμα, χρησιμοποιούσαν ένα δίσκο κρυπτογράφησης ορείχαλκου για την εφαρμογή της κρυπτογράφησης ''Vigenère'' κατά τη διάρκεια του [[Αμερικανικός Εμφύλιος Πόλεμος|Αμερικανικού Εμφυλίου Πολέμου]]. Τα μηνύματα της Συνομοσπονδίας δεν ήταν και τόσο ασφαλή και η Ένωση έσπαγε τακτικά τον κώδικά τους. Κατά τη διάρκεια του πολέμου, η ομόσπονδη ηγεσία στηρίχθηκε κυρίως σε τρεις φράσεις κλειδιά, «''Manchester Bluff''», «''Complete Victory''» και, όταν ο πόλεμος έφτανε στο τέλος, "''Come Retribution''".
Ο ''Gilbert Vernam'' προσπάθησε να επισκευάσει τη σπασμένη κρυπτογράφηση (με τη δημιουργία ''Vernam-Vigenère'' κρυπτογράφησης το '''1918'''), αλλά, δεν έχει σημασία τι έκανε, η κρυπτογράφηση ήταν ακόμη ευάλωτη στην κρυπτανάλυση. Το έργο ''Vernam'' , ωστόσο, οδήγησε τελικά στην εξέδρα ένα αποδεδειγμένα άθραυστο χρόνο κρυπτογράφησης.</big>


==Περιγραφή==
==Περιγραφή==


Σε ένα κρυπτογράφημα Καίσαρα, κάθε γράμμα της αλφαβήτου μετατοπίζεται κατά ένα αριθμό θέσεων, για παράδειγμα, σε ένα κρυπτογράφημα Καίσαρα της αλλαγής 3, το Α θα γίνει D, Β θα γίνει Ε, Y θα γίνει Β και ούτω καθεξής. Η κρυπτογράφηση Vigenère αποτελείται από πολλούς αλγόριθμους κρυπτογράφησης του Καίσαρα σε ακολουθία με διαφορετικές τιμές μετατόπισης.
Σε ένα κρυπτογράφημα Καίσαρα, κάθε γράμμα της αλφαβήτου μετατοπίζεται κατά ένα αριθμό θέσεων. Για παράδειγμα, σε ένα κρυπτογράφημα Καίσαρα με μετατόπιση 3, το ''Α'' θα γίνει ''Δ'', το ''Β'' θα γίνει ''Ε'', το ''Ψ'' θα γίνει ''Β'' και ούτω καθεξής. Η κρυπτογράφηση Vigenère αποτελείται από πολλούς αλγόριθμους κρυπτογράφησης του Καίσαρα με διαφορετικές τιμές μετατόπισης που χρησιμοποιούνται σε ακολουθία.

Για την κρυπτογράφηση, ένας πίνακας του αλφάβητου μπορεί να χρησιμοποιηθεί, ως πίνακας αντικατάστασης (''tabula Recta, Vigenère square, ή Vigenère table''). Αποτελείται από το αλφάβητο, που αναγράφεται σε διαφορετικές γραμμές (ή στήλες) τόσες φορές όσες και τα γράμματα του αλφαβήτου και κάθε αλφάβητο μετατοπίζεται κυκλικά σε σχέση με το προηγούμενο αλφάβητο, ώστε να υπάρχουν όλοι οι πιθανοί αλγόριθμοι κρυπτογράφησης του Καίσαρα. Κατά τη διαδικασία κρυπτογράφησης, χρησιμοποιείται διαφορετικό αλφάβητο σε κάθε ένα από τα γράμματα. Το αλφάβητο που χρησιμοποιείται σε κάθε γράμμα εξαρτάται από μια επαναλαμβανόμενη λέξη-κλειδί.
{| class="wikitable" style="text-align:center;font-size:85%; float:right;"
|
!ο
|-
|Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω
|- style="background: silver"
|Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α
|-
|Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β
|- style="background: silver"
|Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ
|-
|Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ
|- style="background: silver"
|Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε
|-
|Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ
|- style="background: silver"
|Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η
|-
|Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ
|- style="background: silver"
|Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι
|-
|Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ
|- style="background: silver"
|Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ
|-
|Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ
|- style="background: silver"
|Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν
|-
|Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ
|- style="background: silver"
|Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο
|-
|Ρ||Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π
|- style="background: silver"
|Σ||Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ
|-
|Τ||Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ
|- style="background: silver"
|Υ||Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ
|-
|Φ||Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ
|- style="background: silver"
|Χ||Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ
|-
|Ψ||Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ
|- style="background: silver"
|Ω||Α||Β||Γ||Δ||Ε||Ζ||Η||Θ||Ι||Κ||Λ||Μ||Ν||Ξ||Ο||Π||Ρ||Σ||Τ||Υ||Φ||Χ||Ψ
|}

Θα χρησιμοποιήσουμε το διπλανό απλό πίνακα αντικατάστασης για την ελληνική γλώσσα και για άτονα κεφαλαία γράμματα:


Για την κρυπτογράφηση, ένας πίνακας του αλφάβητου μπορεί να χρησιμοποιηθεί, ως tabula Recta, Vigenère square, ή Vigenère table. Αποτελείται από το αλφάβητο, που αναγράφεται 26 φορές σε διαφορετικές γραμμές, κάθε αλφάβητο μετατοπίζεται κυκλικά προς τα αριστερά σε σχέση με την προηγούμενη αλφάβητο, που αντιστοιχούν στους 26 πιθανούς αλγόριθμους κρυπτογράφησης του Καίσαρα. Σε διάφορα σημεία κατά τη διαδικασία κρυπτογράφησης, η κρυπτογράφηση χρησιμοποιεί διαφορετικό αλφάβητο σε κάθε μια από τις σειρές. Το αλφάβητο που χρησιμοποιείται σε κάθε σημείο εξαρτάται από μια επαναλαμβανόμενη λέξη-κλειδί.
[[Αρχείο:Vigenère.svg.png|thumb|right]]
Για παράδειγμα, ας υποθέσουμε ότι το κείμενο για κρυπτογράφηση είναι: <br />
Για παράδειγμα, ας υποθέσουμε ότι το κείμενο για κρυπτογράφηση είναι: <br />
:'''ΔΕΝΒΡΗΚΑΦΑΓΗΤΟ'''
ATTACKATDAWN
Το άτομο που στέλνει το μήνυμα επιλέγει μια λέξη-κλειδί και το επαναλαμβάνει μέχρι να ταιριάζει με το μήκος του απλού κειμένου, για παράδειγμα, η λέξη "lemon": <br />
Το άτομο που στέλνει το μήνυμα επιλέγει μια λέξη-κλειδί και την επαναλαμβάνει μέχρι να ταιριάζει με το μήκος του απλού κειμένου, για παράδειγμα, η (άτονη) λέξη "απλα": <br />
:'''απλααπλααπλααπ'''
LEMONLEMONLE

Κάθε στήλη περιέχει τον αλγόριθμο αντικατάστασης του Καίσαρα για ένα γράμμα της λέξης κλειδί.

Παρά το γεγονός ότι υπάρχουν εικοσιτέσσερις στήλες θα χρησιμοποιήσουμε μόνο τις στήλες που έχουν σαν κεφαλίδα τα γράμματα της λέξης κλειδί. Επομένως θα χρησιμοποιήσουμε μόνο τις τρεις στήλες αφού το κλειδί περιέχει δύο φορές το γράμμα άλφα.
Για το πρώτο γράμμα του μηνύματος θα χρησιμοποιήσουμε τη στήλη του "α" δηλαδή την πρώτη στήλη. Όπως βλέπουμε στη στήλη αυτή κάθε γράμμα αντιστοιχεί στο ακριβώς όμοιό του. Επομένως το πρώτο γράμμα θα είναι το ίδιο (δηλαδή το "Δ").
Για το δεύτερο γράμμα του μηνύματος θα χρησιμοποιήσουμε τη στήλη που αντιστοιχεί στο "π". Επομένως το "Ε" που είναι το δεύτερο γράμμα του μηνύματος θα γίνει "Υ".
: Κρυπτογραφημένο μήνυμα: '''ΔΥΨΒΡΧΥΑΦΠΝΗΤΖ'''

Η αποκρυπτογράφηση γίνεται γράμμα-γράμμα. Για το πρώτο γράμμα πηγαίνουμε στη στήλη του πίνακα που αντιστοιχεί στο πρώτο γράμμα της λέξης κλειδί. Βρίσκουμε στη στήλη αυτή το πρώτο γράμμα του κρυπτογραφημένου μηνύματος ("Δ") που είναι το ίδιο ουσιαστικά. Πηγαίνουμε στη στήλη που έχει το δεύτερο γράμμα του κλειδιού (στήλη "π"). Βρίσκουμε στη στήλη αυτή το δεύτερο γράμμα του κρυπτογραφημένου μηνύματος (Υ) και βλέπουμε ότι αντιστοιχεί στο "Ε".

== Ασφάλεια ==


Στο παράδειγμά μας βλέπουμε ότι χρησιμοποιήθηκαν μόνο τρία είδη αλφαβητικής μετατόπισης. Μεγαλύτερα κλειδιά μπορεί να χρησιμοποιήσουν και τα 24 πιθανά είδη αλφαβητικής μετατόπισης. Βλέπουμε επίσης ότι το γράμμα Α που υπάρχει δύο φορές στο κείμενό μας, την πρώτη φορά κρυπτογραφήθηκε σαν "Α" και τη δεύτερη σαν "Π". Αυτό βοηθάει εν μέρει στην αποτροπή ''επίθεσης με βάση τη στατιστική κατανομή των γραμμάτων''.
Κάθε γραμμή ξεκινά με ένα πλήκτρο του γράμματος. Το υπόλοιπο της σειράς κατέχει τα γράμματα Α έως το Z(σε σειρά μετατόπισης ). Παρά το γεγονός ότι υπάρχουν 26 βασικές, εσείς θα χρησιμοποιήσετε τόσα κλειδιά (διαφορετικά αλφάβητα) όσα και τα μοναδικά γράμματα που υπάρχουν στο κλειδί σειρά, εδώ μόλις 5 κλειδιά {L, E, M, O, N}. Για διαδοχικά γράμματα από ένα μήνυμα, θα πάρουμε τα διαδοχικά γράμματα από τη σειρά κλειδί, και η κρυπτογράφηση για κάθε μήνυμα θα γίνει χρησιμοποιώντας το αντίστοιχο πλήκτρο της γραμμής. Επιλέξτε το επόμενο γράμμα του κλειδιού, πάτε κατά μήκος της στήλης αυτό το γράμμα για να βρείτε την κεφαλίδα της στήλης που ταιριάζει με το μήνυμα του χαρακτήρα , το γράμμα στη διασταύρωση των [key-row ,msg-col] είναι to κρυπτογραφημένο γράμμα.


Για το σπάσιμο του κώδικα, αρχικά θα πρέπει να υπολογιστεί το μήκος του κλειδιού. Αυτό είναι δυνατό μόνο αν το κλειδί είναι αρκετά μικρότερο από το κείμενο ώστε να επαναλαμβάνεται τουλάχιστον μία φορά. Αυτή τη στιγμή υπάρχουν μόνο δύο γνωστές μέθοδοι: Ο [[έλεγχος του Kasiski]] και ο [[δείκτης σύμπτωσης]].
Για παράδειγμα, το πρώτο γράμμα του plaintext, το Α, σε συνδυασμό με το L, το πρώτο γράμμα του κλειδιού. Έτσι, χρησιμοποιεί τη γραμμή L και τη στήλη Α από τη Vigenère square ,δηλαδή L. Ομοίως, για τo δεύτερo γράμμα της plaintext, το δεύτερο γράμμα του κλειδιού χρησιμοποιείται, το γράμμα στη γραμμή Ε και και στη στήλη Τ είναι το Χ. Το υπόλοιπο plaintext είναι κρυπτογραφημένο με παρόμοιο τρόπο:
<br />
Plaintext: ATTACKATDAWN<br />
Key (Κλειδί): LEMONLEMONLE<br />
Ciphertext: LXFOPVEFRNHR


Ο αλγόριθμος χρησιμοποιείται επίσης στο [[κρυπτοσύστημα Vernam]] σε συνδυασμό με [[Σημειωματάριο μιας χρήσης (κρυπτογραφία)|σημειωματάρια μιας χρήσης]]. Το κρυπτοσύστημα αυτό θεωρείται [[Κρυπτοσυστήματα άνευ όρων ασφαλή|άνευ όρων ασφαλές]].<ref>Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης σελ.88-</ref>
Η αποκρυπτογράφηση γίνεται με τη μετάβαση στη γραμμή του πίνακα που αντιστοιχεί στο κλειδί, βρίσκοντας τη θέση του γράμματος του ciphertext σε αυτή τη σειρά, και στη συνέχεια, χρησιμοποιώντας την ετικέτα της στήλης ως απλό κείμενο. Για παράδειγμα, στη σειρά L (from LEMON), το κρυπτογράφημα L εμφανίζεται στη στήλη Α, η οποία είναι το πρώτο γράμμα του plaintext. Στη συνέχεια πάμε στη γραμμή E (from LEMON), εντοπίστε το κρυπτογράφημα X που βρίσκεται στη στήλη Τ, έτσι το Τ είναι το δεύτερο γράμμα του plaintext.</big>


== Αλγοριθμική περιγραφή ==
== Αλγόριθμος κρυπτογράφησης Vigenère ==


=== Κρυπτογράφηση ===
Στον αλγόριθμο αυτό χρησιμοποιείται ένα μικρό επαναλαμβανόμενο κλειδί για να καθορίσει την τιμή του K για κάθε γράμμα .Σε κάθε βήμα , το γράμμα κλειδί προστίθεται στο γράμμα του κειμένου ώστε να μας δώσουν το κωδικοποιημένο γράμμα. Το κλειδί που χρησιμοποιήσαμε στον αλγόριθμό μας για την κρυπτογράφηση είναι :
Στον αλγόριθμο αυτό χρησιμοποιείται ένα μικρό επαναλαμβανόμενο κλειδί για να καθορίσει την τιμή του K για κάθε γράμμα .Σε κάθε βήμα , το γράμμα κλειδί προστίθεται στο γράμμα του κειμένου ώστε να μας δώσουν το κωδικοποιημένο γράμμα. Το κλειδί που χρησιμοποιήσαμε στον αλγόριθμό μας για την κρυπτογράφηση είναι :


Γραμμή 97: Γραμμή 205:
Βέβαια , δεν αρκεί μόνο να μπορείς να κρυπτογραφείς ένα κείμενο , χρειάζεται να μπορείς να το επαναφέρεις στην αρχική του μορφή ώστε να μπορεί να διαβαστεί από το δέκτη .Διαφορετικά , δε θα μπορέσουμε να επικοινωνήσουμε σωστά και η κωδικοποιημένη πληροφορία θα χαθεί . Για το λόγο αυτό ,παραθέτουμε στη συνέχεια τους αλγορίθμους αποκρυπτογράφησης των τριών παραπάνω αλγορίθμων κωδικοποίησης .</big>
Βέβαια , δεν αρκεί μόνο να μπορείς να κρυπτογραφείς ένα κείμενο , χρειάζεται να μπορείς να το επαναφέρεις στην αρχική του μορφή ώστε να μπορεί να διαβαστεί από το δέκτη .Διαφορετικά , δε θα μπορέσουμε να επικοινωνήσουμε σωστά και η κωδικοποιημένη πληροφορία θα χαθεί . Για το λόγο αυτό ,παραθέτουμε στη συνέχεια τους αλγορίθμους αποκρυπτογράφησης των τριών παραπάνω αλγορίθμων κωδικοποίησης .</big>


== Αποκρυπτογράφηση του αλγορίθμου Vigenère==
=== Αποκρυπτογράφηση ===


Για την αποκρυπτογράφηση των χαρακτήρων που διαβάζουμε από το αρχείο εισόδου, αφαιρούμε από τον κάθε χαρακτήρα τον αριθμό που βρίσκεται στη θέση '''key_table[i]''' ,(όπου i ένας μετρητής που αρχίζει από το μηδέν και μηδενίζεται όταν γίνει ίσος με το 6 κι έτσι παίρνουμε τον ASCII του αποκωδικοποιημένου χαρακτήρα.
Για την αποκρυπτογράφηση των χαρακτήρων που διαβάζουμε από το αρχείο εισόδου, αφαιρούμε από τον κάθε χαρακτήρα τον αριθμό που βρίσκεται στη θέση '''key_table[i]''' ,(όπου i ένας μετρητής που αρχίζει από το μηδέν και μηδενίζεται όταν γίνει ίσος με το 6 κι έτσι παίρνουμε τον ASCII του αποκωδικοποιημένου χαρακτήρα.
Γραμμή 108: Γραμμή 216:


Έτσι ,αφαιρώντας από το ASCII του Η το '''key_table[1]=84''' παίρνουμε το '''s''' . Ανάλογη διαδικασία γίνεται για κάθε γράμμα μέχρι να τελειώσει το αρχείο ή να βρούμε το τέλος του αλφαριθμητικού ,αν η εισαγωγή γίνεται από την οθόνη. </big>
Έτσι ,αφαιρώντας από το ASCII του Η το '''key_table[1]=84''' παίρνουμε το '''s''' . Ανάλογη διαδικασία γίνεται για κάθε γράμμα μέχρι να τελειώσει το αρχείο ή να βρούμε το τέλος του αλφαριθμητικού ,αν η εισαγωγή γίνεται από την οθόνη. </big>
== Βιβλιογραφία ==


== Σημειώσεις ==
{{σημειώσεις}}

== Βιβλιογραφία ==
* {{Cite book
| editor = Βασίλειος Α. Κάτος, Γεώργιος Χρ. Στεφανίδης
| title = Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης
| publisher = Ζυγός
| location = Θεσσαλονίκη
| year = 2003
| language = Ελληνικά
| ISBN = 960-8065-40-2
}}
* {{cite book|first=Lars R.|last=Knudsen|year=1998|title=State of the Art in Applied Cryptography: Course on Computer Security and Industrial Cryptograph Leuven Belgium, June 1997 Revised Lectures |chapter=Block Ciphers—a survey|editor=Bart Preneel and Vincent Rijmen|others=|pages=29|publisher=Springer|isbn=3-540-65474-7|location=Berlin ; London}}
* http://www.it.uom.gr/project/ergac/Cryptografisi/ERGASIA_C.htm
* http://www.it.uom.gr/project/ergac/Cryptografisi/ERGASIA_C.htm
*Mendelsohn, Charles J. (1940). "Blaise De Vigenère and The "Chiffre Carre"," Proceedings of the American Philosophical Society 82, no. 2
*Mendelsohn, Charles J. (1940). "Blaise De Vigenère and The "Chiffre Carre"," Proceedings of the American Philosophical Society 82, no. 2

Έκδοση από την 07:39, 6 Ιουλίου 2014

Ο αλγόριθμος κρυπτογράφησης Vigenère (γαλλική προφορά: [[viʒnɛːʁ]]) είναι μία μέθοδος κρυπτογράφησης σε αλφαβητικό κείμενο στο οποίο εφαρμόζονται διαφορετικοί αλγόριθμοι κρυπτογράφησης Καίσαρα με βάση τη θέση των γραμμάτων μιας λέξης ή φράσης κλειδί. Είναι μια απλή μορφή της πολυαλφαβητικής υποκατάστασης. Η κρυπτογράφηση Vigenère έχει εφευρεθεί εκ νέου πολλές φορές. Τη μέθοδο αρχικά περιέγραψε ο Giovan Battista Bellaso το 1553.

Ο αλγόριθμος είναι γνωστός, γιατί, ενώ είναι εύκολο να τον κατανοήσει και να τον εφαρμόσει ακόμα και ένας αρχάριος στην κρυπτογράφηση, φαίνεται συχνά να είναι αδύνατη η αποκρυπτογράφηση του κρυπτογραφημένου κειμένου. Αυτός είναι και ο λόγος που κέρδισε την περιγραφή «η κρυπτογράφηση που δεν αποκρυπτογραφείται» (γαλλικά: Le Chiffre indéchiffrable).

Αρχείο:AlgorithmV.png

Ιστορική Εξέλιξη

Η πρώτη καλά τεκμηριωμένη περιγραφή της κρυπτογράφησης διατυπώθηκε από τον Leon Battista Alberti γυρω στο 1467 και χρησιμοποιούσε ένα μεταλλικό δίσκο για εναλλαγή μεταξύ των αλφαβήτων κρυπτογράφησης.

Το σύστημα του Alberti άλλαζε αλφάβητο κρυπτογράφησης μόνο μετά από έναν αριθμό λέξεων, χρησιμοποιώντας ενδείξεις που αναφέρονταν στη σύνταξη της επιστολής. Αργότερα, το 1508, o Johannes Trithemius, στο έργο του «Poligraphia», επινόησε τον πίνακα αντικατάστασης (tabula Recta), ένα κρίσιμο στοιχείο της κρυπτογράφησης Vigenère.

Αυτό που γνωρίζουμε σήμερα σαν αλγόριθμο κρυπτογράφησης Vigenère το περιέγραψε αρχικά ο Giovan Battista Bellaso, το 1553, στο βιβλίο του «La cifra del. Sig. Giovan Battista Bellaso». Χρησιμοποίησε τον πίνακα αντικατάστασης (tabula Recta) του Trithemius, αλλά πρόσθεσε ένα επαναλαμβανόμενο "παρασύνθημα" (κλειδί) κρυπτογράφησης ώστε να αλλάζει το αλφάβητο αντικατάστασης σε κάθε γράμμα. Και ενώ οι Alberti και Trithemius χρησιμοποίησαν ένα σταθερό μοτίβο αντικαταστάσεων, το σύστημα Bellaso έκανε φανερό ότι η κρυπτογράφηση θα μπορούσε να αλλάξει εύκολα, απλά επιλέγοντας ένα νέο κλειδί. Το κλειδί ήταν συνήθως μεμονωμένες λέξεις ή μικρές φράσεις, που ήταν γνωστές και στα δύο μέρη εκ των προτέρων, ή είχαν μεταδοθεί παράλληλα, μαζί με το μήνυμα. Για τη μέθοδο Bellaso απαιτείται ισχυρή ασφάλεια μόνο για το κλειδί. Δεδομένου ότι είναι σχετικά εύκολο να εξασφαλιστεί μια σύντομη φράση-κλειδί, για παράδειγμα σε μια προηγούμενη ιδιωτική συνομιλία, το σύστημα Bellaso ήταν πολύ πιο ασφαλές.

Ο Blaise de Vigenère δημοσίευσε την περιγραφή ενός παρόμοιου, βασισμένου επίσης στην απλή κρυπτογράφηση του Καίσαρα, ενώπιον του δικαστηρίου του Ερρίκου Γ της Γαλλίας, το 1586. Αργότερα, τον 19ο αιώνα, η κρυπτογράφηση Bellaso εσφαλμένα αποδόθηκε στον Vigenère. Ο David Kahn, στο βιβλίο του oι Codebreakers εξέφρασε τη λύπη του για τη λάθος αναφορά λέγοντας πως η ιστορία είχε αγνοήσει αυτήν την σημαντική συμβολή και αποδόθηκε στον αλγόριθμο το όνομα του Vigenère παρόλο που δεν είχε τίποτα να κάνει με αυτό.

Η κρυπτογράφηση Vigenère απέκτησε τη φήμη ότι είναι εξαιρετικά ισχυρή. Σημειώνεται ότι ο συγγραφέας και μαθηματικός Τσαρλς Λούτγουϊτζ Ντότζσον (γνωστός ως Λιούις Κάρολ) ονόμασε, το 1868, την κρυπτογράφηση Vigenère άσπαστη, στο δημοσίευμά του «Το Αλφάβητο κρυπτογράφησης» σε ένα περιοδικό για παιδιά. Το 1917, το περιοδικό Scientific American, περιέγραψε την κρυπτογράφηση Vigenère ως "αδύνατη να αποκρυπτογραφηθεί"[1]. Αυτή η φήμη δεν της άξιζε. Είναι γνωστό ότι Τσαρλς Μπάμπατζ είχε σπάσει μια παραλλαγή του αλγόριθμου νωρίτερα από το 1854. Ωστόσο, δεν είχε ακόμα δημοσιευθεί το έργο του Kasiski που έσπασε εντελώς την κρυπτογράφηση και την τεχνική που δημοσιεύθηκε τον 19ο αιώνα. Ακόμη και πριν από αυτό, όμως, κάποιοι εξειδικευμένοι κρυπτογράφοι θα μπορούσαν να σπάσουν την κρυπτογράφηση περιστασιακά, ήδη από τον 16ο αιώνα.

Η κρυπτογράφηση Vigenère είναι αρκετά απλοϊκή αν χρησιμοποιείται σε συνδυασμό με δίσκους κρυπτογράφησης. Οι ομόσπονδες Πολιτείες της Αμερικής, για παράδειγμα, χρησιμοποιούσαν ένα δίσκο κρυπτογράφησης ορείχαλκου για την εφαρμογή της κρυπτογράφησης Vigenère κατά τη διάρκεια του Αμερικανικού Εμφυλίου Πολέμου. Τα μηνύματα της Συνομοσπονδίας δεν ήταν και τόσο ασφαλή και η Ένωση έσπαγε τακτικά τον κώδικά τους. Κατά τη διάρκεια του πολέμου, η ομόσπονδη ηγεσία στηρίχθηκε κυρίως σε τρεις φράσεις κλειδιά, «Manchester Bluff», «Complete Victory» και, όταν ο πόλεμος έφτανε στο τέλος, "Come Retribution".

Περιγραφή

Σε ένα κρυπτογράφημα Καίσαρα, κάθε γράμμα της αλφαβήτου μετατοπίζεται κατά ένα αριθμό θέσεων. Για παράδειγμα, σε ένα κρυπτογράφημα Καίσαρα με μετατόπιση 3, το Α θα γίνει Δ, το Β θα γίνει Ε, το Ψ θα γίνει Β και ούτω καθεξής. Η κρυπτογράφηση Vigenère αποτελείται από πολλούς αλγόριθμους κρυπτογράφησης του Καίσαρα με διαφορετικές τιμές μετατόπισης που χρησιμοποιούνται σε ακολουθία.

Για την κρυπτογράφηση, ένας πίνακας του αλφάβητου μπορεί να χρησιμοποιηθεί, ως πίνακας αντικατάστασης (tabula Recta, Vigenère square, ή Vigenère table). Αποτελείται από το αλφάβητο, που αναγράφεται σε διαφορετικές γραμμές (ή στήλες) τόσες φορές όσες και τα γράμματα του αλφαβήτου και κάθε αλφάβητο μετατοπίζεται κυκλικά σε σχέση με το προηγούμενο αλφάβητο, ώστε να υπάρχουν όλοι οι πιθανοί αλγόριθμοι κρυπτογράφησης του Καίσαρα. Κατά τη διαδικασία κρυπτογράφησης, χρησιμοποιείται διαφορετικό αλφάβητο σε κάθε ένα από τα γράμματα. Το αλφάβητο που χρησιμοποιείται σε κάθε γράμμα εξαρτάται από μια επαναλαμβανόμενη λέξη-κλειδί.

α β γ δ ε ζ η θ ι κ λ μ ν ξ ο π ρ σ τ υ φ χ ψ ω
Α Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω
Β Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α
Γ Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β
Δ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ
Ε Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ
Ζ Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε
Η Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ
Θ Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η
Ι Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ
Κ Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι
Λ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ
Μ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ
Ν Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ
Ξ Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν
Ο Ο Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ
Π Π Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο
Ρ Ρ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π
Σ Σ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ
Τ Τ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ
Υ Υ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ
Φ Φ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ
Χ Χ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ
Ψ Ψ Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ
Ω Ω Α Β Γ Δ Ε Ζ Η Θ Ι Κ Λ Μ Ν Ξ Ο Π Ρ Σ Τ Υ Φ Χ Ψ

Θα χρησιμοποιήσουμε το διπλανό απλό πίνακα αντικατάστασης για την ελληνική γλώσσα και για άτονα κεφαλαία γράμματα:

Για παράδειγμα, ας υποθέσουμε ότι το κείμενο για κρυπτογράφηση είναι:

ΔΕΝΒΡΗΚΑΦΑΓΗΤΟ

Το άτομο που στέλνει το μήνυμα επιλέγει μια λέξη-κλειδί και την επαναλαμβάνει μέχρι να ταιριάζει με το μήκος του απλού κειμένου, για παράδειγμα, η (άτονη) λέξη "απλα":

απλααπλααπλααπ

Κάθε στήλη περιέχει τον αλγόριθμο αντικατάστασης του Καίσαρα για ένα γράμμα της λέξης κλειδί.

Παρά το γεγονός ότι υπάρχουν εικοσιτέσσερις στήλες θα χρησιμοποιήσουμε μόνο τις στήλες που έχουν σαν κεφαλίδα τα γράμματα της λέξης κλειδί. Επομένως θα χρησιμοποιήσουμε μόνο τις τρεις στήλες αφού το κλειδί περιέχει δύο φορές το γράμμα άλφα. Για το πρώτο γράμμα του μηνύματος θα χρησιμοποιήσουμε τη στήλη του "α" δηλαδή την πρώτη στήλη. Όπως βλέπουμε στη στήλη αυτή κάθε γράμμα αντιστοιχεί στο ακριβώς όμοιό του. Επομένως το πρώτο γράμμα θα είναι το ίδιο (δηλαδή το "Δ"). Για το δεύτερο γράμμα του μηνύματος θα χρησιμοποιήσουμε τη στήλη που αντιστοιχεί στο "π". Επομένως το "Ε" που είναι το δεύτερο γράμμα του μηνύματος θα γίνει "Υ".

Κρυπτογραφημένο μήνυμα: ΔΥΨΒΡΧΥΑΦΠΝΗΤΖ

Η αποκρυπτογράφηση γίνεται γράμμα-γράμμα. Για το πρώτο γράμμα πηγαίνουμε στη στήλη του πίνακα που αντιστοιχεί στο πρώτο γράμμα της λέξης κλειδί. Βρίσκουμε στη στήλη αυτή το πρώτο γράμμα του κρυπτογραφημένου μηνύματος ("Δ") που είναι το ίδιο ουσιαστικά. Πηγαίνουμε στη στήλη που έχει το δεύτερο γράμμα του κλειδιού (στήλη "π"). Βρίσκουμε στη στήλη αυτή το δεύτερο γράμμα του κρυπτογραφημένου μηνύματος (Υ) και βλέπουμε ότι αντιστοιχεί στο "Ε".

Ασφάλεια

Στο παράδειγμά μας βλέπουμε ότι χρησιμοποιήθηκαν μόνο τρία είδη αλφαβητικής μετατόπισης. Μεγαλύτερα κλειδιά μπορεί να χρησιμοποιήσουν και τα 24 πιθανά είδη αλφαβητικής μετατόπισης. Βλέπουμε επίσης ότι το γράμμα Α που υπάρχει δύο φορές στο κείμενό μας, την πρώτη φορά κρυπτογραφήθηκε σαν "Α" και τη δεύτερη σαν "Π". Αυτό βοηθάει εν μέρει στην αποτροπή επίθεσης με βάση τη στατιστική κατανομή των γραμμάτων.

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

Ο αλγόριθμος χρησιμοποιείται επίσης στο κρυπτοσύστημα Vernam σε συνδυασμό με σημειωματάρια μιας χρήσης. Το κρυπτοσύστημα αυτό θεωρείται άνευ όρων ασφαλές.[2]

Αλγοριθμική περιγραφή

Κρυπτογράφηση

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

key_table = [ 84 , 72 , 65 , 78 , 79 , 83 ] = [ ‘T’ , ‘H’ , ‘A’ , ‘N’ , ‘O’ , ‘S’]

Τα βήματα για την υλοποίηση του αλγορίθμου είναι τα ακόλουθα :

Βήμα 1 : Εισάγουμε το όνομα του αρχείου που θα επεξεργαστούμε

καθώς και του αρχείου αποθήκευσης ή το κείμενο προς

κρυπτογράφηση , αν η έξοδος γίνεται στην οθόνη και

αρχικοποιούμε το μετρητή i=0.

Βήμα 2 : Διαβάζουμε έναν χαρακτήρα ch είτε από το αρχείο είτε από

το αποθηκευμένο κείμενο που δώσαμε με το πληκτρολόγιο.

Βήμα 3 : Προσθέτουμε στον χαρακτήρα ch που διαβάσαμε τον

αντίστοιχο αριθμό που βρίσκεται στη θεση key_table[i] και

παίρνουμε έτσι το κωδικοποιημένο γράμμα , το οποίο είτε

γράφουμε στο αρχείο εξόδου είτε εμφανίζουμε στην οθόνη .

Βήμα 4 : Αυξάνουμε το μετρητή i κατά ένα .Αν ο μετρητής είναι ίσος

με 6 τον μηδενίζουμε ,αφού θέλουμε να επαναλαμβάνεται

το κλειδί.

Βήμα 5 : Αν έχουμε φτάσει στο τέλος του αρχείου ή αν βρήκαμε το

χαρακτήρα τέλους των αλφαριθμητικών ‘\0’ ,σταματάμε .

Αλλιώς πάμε στο Βήμα 2.

Παράδειγμα για τον αλγόριθμο Vigenère

Ας δουμε πώς κωδικοποιείται το μήνυμα: meet me at the park

με τον αλγόριθμο Vigenère : Α­¦ΒoΐΉhΆΒoΗΌ­aΎ°ΕΏ


Στον αριθμό ASCII κάθε γράμματος προστίθεται ο αριθμός της θέσης του πίνακα-κλειδιού που τους αντιστοιχεί και το αποτέλεσμα είναι ένας νέος αριθμός ASCII που δείχνει ποιος χαρακτήρας θα εμφανιστεί.

Έτσι ,το m έχει ASCII 109 και του αντιστοιχεί η πρώτη θέση του πίνακα key_table ,δηλαδή το 84 .Επομένως ,το κωδικοποιημένο γράμμα είναι ο αριθμός ASCII 193.Ανάλογα κωδικοποιείται και το υπόλοιπο μήνυμα.


Βέβαια , δεν αρκεί μόνο να μπορείς να κρυπτογραφείς ένα κείμενο , χρειάζεται να μπορείς να το επαναφέρεις στην αρχική του μορφή ώστε να μπορεί να διαβαστεί από το δέκτη .Διαφορετικά , δε θα μπορέσουμε να επικοινωνήσουμε σωστά και η κωδικοποιημένη πληροφορία θα χαθεί . Για το λόγο αυτό ,παραθέτουμε στη συνέχεια τους αλγορίθμους αποκρυπτογράφησης των τριών παραπάνω αλγορίθμων κωδικοποίησης .

Αποκρυπτογράφηση

Για την αποκρυπτογράφηση των χαρακτήρων που διαβάζουμε από το αρχείο εισόδου, αφαιρούμε από τον κάθε χαρακτήρα τον αριθμό που βρίσκεται στη θέση key_table[i] ,(όπου i ένας μετρητής που αρχίζει από το μηδέν και μηδενίζεται όταν γίνει ίσος με το 6 κι έτσι παίρνουμε τον ASCII του αποκωδικοποιημένου χαρακτήρα.

Παράδειγμα αποκρυπτογράφησης του αλγορίθμου Vigenère

Το μήνυμα είναι το : Η­¦nΘΒΙhΆΒo

και μετά την αποκρυπτογράφηση γίνεται : see you at 6

Έτσι ,αφαιρώντας από το ASCII του Η το key_table[1]=84 παίρνουμε το s . Ανάλογη διαδικασία γίνεται για κάθε γράμμα μέχρι να τελειώσει το αρχείο ή να βρούμε το τέλος του αλφαριθμητικού ,αν η εισαγωγή γίνεται από την οθόνη.

Σημειώσεις

  1. State of the Art in Applied Cryptography: Course on Computer Security and Industrial Cryptograph Leuven Belgium, June 1997 Revised Lectures
  2. Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης σελ.88-

Βιβλιογραφία

  • Βασίλειος Α. Κάτος, Γεώργιος Χρ. Στεφανίδης, επιμ. (2003). Τεχνικές Κρυπτογραφίας & Κρυπτανάλυσης. Θεσσαλονίκη: Ζυγός. ISBN 960-8065-40-2. 
  • Knudsen, Lars R. (1998). «Block Ciphers—a survey». Στο: Bart Preneel and Vincent Rijmen. State of the Art in Applied Cryptography: Course on Computer Security and Industrial Cryptograph Leuven Belgium, June 1997 Revised Lectures. Berlin ; London: Springer. σελ. 29. ISBN 3-540-65474-7. 
  • http://www.it.uom.gr/project/ergac/Cryptografisi/ERGASIA_C.htm
  • Mendelsohn, Charles J. (1940). "Blaise De Vigenère and The "Chiffre Carre"," Proceedings of the American Philosophical Society 82, no. 2