Διαδρομές
/
OCaml
OCaml
/
Ασκήσεις
/
Κρυπτογράφημα Atbash
Κρυπτογράφημα Atbash

Κρυπτογράφημα Atbash

Μέτριο

Οδηγίες

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

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

Μια κρυπτογράφηση Atbash για το λατινικό αλφάβητο θα ήταν η εξής:

Plain:  abcdefghijklmnopqrstuvwxyz
Cipher: zyxwvutsrqponmlkjihgfedcba

Είναι μια πολύ αδύναμη κρυπτογράφηση, επειδή έχει μόνο ένα πιθανό κλειδί και είναι μια απλή μονοαλφαβητική κρυπτογράφηση αντικατάστασης. Ωστόσο, αυτό μπορεί να μην ήταν πρόβλημα στην εποχή της κρυπτογράφησης.

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

Παραδείγματα

  • Η κωδικοποίηση του test δίνει gvhg
  • Η κωδικοποίηση του x123 yes δίνει c123b vh
  • Η αποκωδικοποίηση του gvhg δίνει test
  • Η αποκωδικοποίηση του gsvjf rxpyi ldmul cqfnk hlevi gsvoz abwlt δίνει thequickbrownfoxjumpsoverthelazydog

Κατάργηση της String.lowercase

Ανάλογα με την έκδοση της OCaml που εγκατέστησες, η χρήση της συνάρτησης String.lowercase δεν συνιστάται. Από την έκδοση 4.03.0, η String.lowercase έχει καταργηθεί και στη θέση της συνιστάται η String.lowercase_ascii. Έτσι, αντί να γράψεις

String.lowercase "Hello, World!"

χρησιμοποίησε

String.lowercase_ascii "Hello, World!"

Δες την τεκμηρίωση της String για περισσότερες χρήσιμες συναρτήσεις.


Πηγή

WikipediaΟ σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
Επεξεργασία μέσω GitHub Ο σύνδεσμος ανοίγει σε νέο παράθυρο ή καρτέλα
OCaml Exercism

Έτοιμος να ξεκινήσεις την άσκηση Κρυπτογράφημα Atbash;

Γράψου στο Exercism για να μάθεις και να κατακτήσεις OCaml με 60 ασκήσεις και πραγματική καθοδήγηση από ανθρώπους, όλα δωρεάν.