johnyc Δημοσ. 24 Μαΐου 2007 Δημοσ. 24 Μαΐου 2007 Παιδιά πρέπει να φτιάξω ένα προγραμμα το οποίο θα κρυπταναλύει, με χρήση της μεθόδου ανάλυσης συχνοτήτων, κείμενα που έχουν κρυπτογραφηθεί με τη μέθοδο της μονοαλφαβητικής αντικατάστασης. Έχει κάνει κανείς τπτ παρόμοιο; Θα μπορούσε να μου προτείνεται κανα site με χρήσιμες πληροφορίες για την υλοποίση ή για τον κώδικα (προτείνεται java). Eυχαριστώ!
paulogiann Δημοσ. 24 Μαΐου 2007 Δημοσ. 24 Μαΐου 2007 1) Για τί αλφάβητο μιλάμε? 2) Για τί μέγεθος κειμένου μιλάμε? 3) Η ανάλυση συχνοτήτων από μόνη της δεν προσφέρει πάρα πολλά (ανάλογα με το μήκος του κειμένου) και συνήθως συνδιάζεται με dictionary based attack. Θες να υλοποιήσεις κάτι τέτοιο? Εδώ
johnyc Δημοσ. 24 Μαΐου 2007 Μέλος Δημοσ. 24 Μαΐου 2007 1.Μιλάμε για αγγλικο αλφάβτητο μόνο κεφαλαία χωρίς σημεια στίξης χωρις τπτ. Μονο κεφαλαία και κενά. 2.Δεν προσδιορίζεται αλλα λογικά πρεπει να ναι τόσο ετσι ωστε να επιτευχθει η αποκρυπτογράφηση του χωρις να εινια φνωστο το "κλειδί" 3.Όντως σκεφτόμουνα να βαλω και λεξικό αλλά δεν ξέρω πως ακριβως γίνεται η υλοποίηση. Επίσης θα ήταν χρήσιμο να μπουν και συχνότητες καταλήξεων, λέξεων κ.α. Έχεις τπτ άλλο να προτείνεις ή καμια ιστοσελίδα που να γνωρίζεις;
RapidShade Δημοσ. 24 Μαΐου 2007 Δημοσ. 24 Μαΐου 2007 Καλά - μεταξύ μας η μονοαλφαβητική αντικατάσταση.... μόνο κρυπτογράφηση δεν λογίζεται... αλλά λέμε τώρα...
paulogiann Δημοσ. 24 Μαΐου 2007 Δημοσ. 24 Μαΐου 2007 Καλά - μεταξύ μας η μονοαλφαβητική αντικατάσταση....μόνο κρυπτογράφηση δεν λογίζεται... αλλά λέμε τώρα... Μεταξύ μας επίσης υπάρχουν μορφές μονολαφαβητικής υποκατάστασης όπως η χρήση ομοφώνων που σου βγαίνει η παναγία για να σπάσει.. Anyway ο φίλος παραπάνω μάλλον εκπαιδευτικά θέλει να ασχοληθεί..
johnyc Δημοσ. 24 Μαΐου 2007 Μέλος Δημοσ. 24 Μαΐου 2007 Όντως! Όχι τοσο ψαγμένα πραματα!! Πάντως εντόπισα και ένα πακέτο στη java το Java Cryptography Extension (JCE) το οποίο όμως δεν ξέρω και πως να το χρησιμοποιήσω στην περίπτωση μου! Καμιά ιδέα και για το λεξικό που λέγαμε πριν ή και για τις καταλήξεις;;
paulogiann Δημοσ. 24 Μαΐου 2007 Δημοσ. 24 Μαΐου 2007 1.Μιλάμε για αγγλικο αλφάβτητο μόνο κεφαλαία χωρίς σημεια στίξης χωρις τπτ. Μονο κεφαλαία και κενά.2.Δεν προσδιορίζεται αλλα λογικά πρεπει να ναι τόσο ετσι ωστε να επιτευχθει η αποκρυπτογράφηση του χωρις να εινια φνωστο το "κλειδί" 3.Όντως σκεφτόμουνα να βαλω και λεξικό αλλά δεν ξέρω πως ακριβως γίνεται η υλοποίηση. Επίσης θα ήταν χρήσιμο να μπουν και συχνότητες καταλήξεων, λέξεων κ.α. Έχεις τπτ άλλο να προτείνεις ή καμια ιστοσελίδα που να γνωρίζεις; Μια τσαπατσούλικη αλλά ικανοποιτική δουλειά θα μπορούσες να κάνεις ως εξής: Φτιάχνεις έναν πίνακα ακεραίων 256 θέσεων (τον οποίο αρχικοποιείς με μηδενικά) του οποίου κάθε θέση αντιστοιχεί σε έναν ASCII χαρακτήρα και κάθε φορά κάνεις > table[ciphertext[i]]++ ώστε στο τέλος το table[j] να περιέχει τις εμφανίσεις του χαρακτήρα j. Μετά με διαδοχικές προσπελάσεις του πίνακα κάνεις extract το συχνότερο γράμμα το οποίο το αντιστοιχείς σε ένα άλλο βάση της αντιστοίχισης συχνοτήτων. Τέλος σκανάρεις διαδοχικά το αποκωδικοποιημένο κείμενο για λέξεις όπως {"AND","THE" ....} και ανάλογα με τη συχνότητα που τις συναντάς στο κείμενο εξάγεις το βαθμό επιτυχημένης αποκωδικοποίησης.. Anyway, εγώ δεν έχω στο μυαλό μου κάποια straightforward προσέγγιση ακόμα και για σχετικά μεγάλο κείμενο. Σε περίπτωση που φτιάξεις κάτι αξιόλογο, αν θες κάνε ένα post εδώ να το δούμε και οι υπόλοιποι. Καλή συνέχεια ! PS1:Μπορείς να το υλοποιήσεις και πιο "ομορφα" δημιουργώντας στιγμιότυπα μιας ορίζομενης από εσένα κλάσης που θα περιέχουν κάθε char και έναν counter με τη συχνότητα εμφάνισής του και στο τέλος να τα ταξινομείς. PS2: Σε κείμενα με κενά ο συχνότερα συναντόμενος χαρακτήρας είναι συνήθως το κενό.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.