In Cryptography we trust... "ROT13", ο τρωτός. Κάποιοι έκαναν πλάκα...

In Cryptography we trust... "ROT13", ο τρωτός. Κάποιοι έκαναν πλάκα...

   Η γερμανική μηχανή κρυπτογράφησης Lorenz-SZ42. 

  Ο ROT13 είναι κρυπτογραφικός αλγόριθμος κατακερματισμού παλαιότερης γενηάς (χρησιμοποιείτο για το "κλείδωμα"π.χ. ηλεκτρονικών εκδόσεων αλλά όχι μόνο
και βασίζεται σε ένα πανάρχαιο ρωμαϊκό σύστημα κρυπτογράφησης με "κυκλική μετάθεση γραμμάτων" (εδώ ανά 13, rotation μεν, rotten εν τέλει δε). Η κρυπτογράφηση με κυκλική μετάθεση χαρακτήρων (σταθερή) είναι ένα σύστημα που διαισθητικά εφαρμόζουν οι χρήστες όταν η εμβάθυνση στην κρυπτογραφία τους μοιάζει στριφνή. Δεν χωρεί αμφιβολία πως κάθε κρυπτογράφος, ακόμα και αρχάριος, θα έπρεπε να τον αποφεύγει χωρίς δεύτερη κουβέντα.
Και όμως. Φαίνεται κάποιοι έκαναν πλάκα στους χρήστες εφαρμόζοντας κατά κόρον κρυπτογράφηση με ROT13, διότι αυτός απαντάτο συχνά και την προηγούμενη δεκαετία για κρυπτογράφηση κωδικών ακόμα και ηλεκτρονικού ταχυδρομείου.
Αυτό φυσικά, δεν σημαίνει κάτι άλλο, παρά το ότι ο άτρωτος αλγόριθμος απλά δεν υπάρχει.
Ο ασφαλής αλγόριθμος κατακερματισμού είναι ο ντετερμινιστικός, αυτός που δεν αντιστρέφεται. Και πάντα μέχρι νεωτέρας, ώσπου να βρεθεί εκείνος που θα "σπάσει" και αυτόν. Ο ROT 13 είναι η λύση στον απλό γρίφο της εύρεσης της αδύναμης κρυπτογράφησης των δύο προηγούμενων αναρτήσεων στη σειρά "In Cryptography we trust..." http://www.minter.gr/blog/in-cryptography-we-trust. Στις αριθμημένες σειρές κατωτέρω (1. έως και 16.) μέσα σε εισαγωγικά " " είναι το αποτέλεσμα της κρυπτογράφησης μιας συμβολοσειράς. Και στις 16 περιπτώσεις η εισαγωγή (input) ήταν η ΙΔΙΑ, αλλά το αποτέλεσμα (η έξοδος/output) διαφορετικό, αναλόγως της ισχύος του αλγορίθμου κρυπτογράφησης. Χρησιμοποιήθηκαν 16 αλγόριθμοι κατακερματισμού (Hashing) από μια ευρέως διαδεδομένη γεννήτρια Hash. Ο χρήστης είτε απλώς παρατηρώντας είτε δοκιμάζοντας την ασφάλεια καθενός από τους 16 αλγορίθμους μπορεί να βρει τι κρυπτογραφήθηκε αρχικά (μπορεί να ήταν μια λέξη, μια φράση, μια παράγραφος κειμένου, μια τυχαία αλληλουχία γραμμάτων ή/και αριθμών (αλφαριθμητικό / συμβολοσειρά), ένα αρχείο κειμένου, ένα ολόκληρο βιβλίο ως κείμενο ή .pdf, ένα ονοματεπώνυμο, κλπ). 
Το Hashing είναι το Α και το Ω για οποιαδήποτε κρυπτογράφηση περιεχομένου, και για την ηλεκτρονική επικοινωνία και για την ασφάλεια του ιδιωτικού και του δημόσιου κλειδιού του ψηφιακού πορτοφολιού. 
Βάσει αυτού του απλού τεστ κάθε χρήστης μπορεί να τσεκάρει αν η συνάρτηση κατακερματισμού που χρησιμοποιεί για να κρυπτογραφήσει το περιεχόμενό του ή τα κλειδιά (δημόσιο και ιδιωτικό) του ψηφιακού του  πορτοφολιού, είναι ΥΨΗΛΗΣ ΑΣΦΑΛΕΙΑΣ. Δοκιμάζοντας hashing στο αποτέλεσμα δεν πρέπει να δύναται να κτηθεί αυτό που αρχικά κρυπτογραφήθηκε. Του δίνεις Α, θα λαμβάνεις πάντα Β. Του δίνεις Β θα λαμβάνεις πάντα Γ. Αν όμως δώσεις Β και λάβεις Α, τότε ο αλγόριθμος που χρησιμοποιήθηκε είναι τρωτός.
Οι 16 αλγόριθμοι κατακερματισμού που χρησιμοποιήθηκαν για τις 16 κρυπτογραφήσεις (1.-16.) είναι οι εξής:
ADLER32, CRC32, LM, NTLM, MD2, MD4, MD5, SHA1, SHA256, SHA384, SHA512, BASE64, ROT13, RIPEMD160, HAVAL256-4, WHIRLPOOL64

Και το αποτέλεσμα που έδωσε κάθε ένας είναι το παρακάτω, με τη σειρά και κατ'αντιστοιχία.

1. "468b05e0"

2. "59253cd0"

3. "2d273d0aa7a1d1c3ee4ed730c3533ba3"

4. "0b621489505105a19c5b3802b7b98bb4"

5. "061cb40c7e664d32665ef2a20136c14b"

6. "2ad7c77c1e64bf7d9c37a77f5f2f2f3f"

7. "3815046e95c04d2412ff33f70361c8e8"

8. "55861aae0c18e1a39560a5ee225d5952d324e782"

9. "0fb9d2d02099b9235648945710843ac2d79ba62de0ceb7b371d99f9eaf15c531"

10. "89366610d4c3766fa4aeeb4b2c75e9116ab7652a9e784715cfa7f3fac14f733d94196f2ade83d4d8c8481feb65effabe"

11. "f95df74c3f2c25491d6ef847cf73b7423c5e1492fa4492f324ddebc04efa7284c5dd323f0ec6d1f432b59439b392cd80eec03678f79977ab2bbfd4ea22cfe364"

12. "UElDSyBBIE5PTkNFIFRSWSBBIEhBU0g="

13. "CVPX N ABAPR GEL N UNFU"

14. "f37c506a76311b84a46d4c158a1e44a64335101f"

15. "ffec51137af802649b04ddb3fd1051e0cd076240059d704bf6204b204ff48bb5"

16. "0da8f75e623ccde167d3b165c8e54892eb28a50b593c162e41ab5a38412bf1b4538315f8c45b922ca9a6bf5590f788f98e34162306c8f2966b5976388e5a643f"