arni Δημοσ. 4 Μαΐου 2006 Δημοσ. 4 Μαΐου 2006 Πολύ καλή δουλειά.. Ερώτηση 1: Είναι ανιχνεύσιμο? Ερώτηση 2: Πόσο ανιχνεύσιμο είναι? Thanx Arni
Pablo_Hasan Δημοσ. 16 Μαΐου 2006 Δημοσ. 16 Μαΐου 2006 fusika kai einai, afou uparxoun mono 26 pi8ana kleidia. Opote dokimazeis mexri na breis kapoio keimeno pou exei nohma. Kata meso oro xreiazontai 26/2 = 13 dokimes.
yorgosd Δημοσ. 17 Μαΐου 2006 Δημοσ. 17 Μαΐου 2006 mporei kapoios na mou eksigisei pos akrivos simperiferete o alogithmos tou kairasa??
nick_csd Δημοσ. 17 Μαΐου 2006 Δημοσ. 17 Μαΐου 2006 polu kalh douleia, 8a proteina na to ebazes sth wikipedia thn ellhnikh mias kai 8elei mono copy paste
FarCry Δημοσ. 17 Μαΐου 2006 Δημοσ. 17 Μαΐου 2006 mporei kapoios na mou eksigisei pos akrivos simperiferete o alogithmos tou kairasa?? einai poli aplo. dedomenou enos kleidiou to opoio einai arithmos antikathistas ola ta grammata me to gramma = gramma proigoumeno + kleidi paradeigma. to K me kleidi 3 tha ginei N diladi metathesi 3 grammata mprosta N=K+3
yorgosd Δημοσ. 18 Μαΐου 2006 Δημοσ. 18 Μαΐου 2006 esas sas ginete compile o kodikas pou dothike gia ton algorithmo tou kaisara??giati ego prospatho kai olo error petaei....
Directx Δημοσ. 18 Μαΐου 2006 Δημοσ. 18 Μαΐου 2006 Πολύ καλή δουλειά.. Ερώτηση 1: Είναι ανιχνεύσιμο? Ερώτηση 2: Πόσο ανιχνεύσιμο είναι? Thanx Arni Όπως είπαν και οι προλαλήσαντες, Το κρυπτογράφημα του Καίσαρα (ανήκει στην κατηγορία των «κρυπτογραφημάτων υποκατάστασης γραμμάτων») είναι το πιο διαδεδομένο και συνεπώς εύκολο να ξεκλειδωθεί κρυπτογράφημα, μάλιστα έχει γνωρίσει διαμέσου των αιώνων διάφορες παραλλαγές. Η χρήση του δεν προτείνεται σε καμία περίπτωση για την διασφάλιση του απόρρητου του μεταφερόμενου μηνύματος καθώς δεν είναι ανθεκτικό σε κρυπταναλυτικές επιθέσεις , μάλιστα είναι το πρώτο κρυπτογράφημα που μαθαίνουν να σπάνε οι κρυπταναλυτές , πρωτοπόροι στο σπάσιμο του υπήρξαν οι Άραβες μαθηματικοί. Για περισσότερες πληροφορίες σχετικά με την συγκεκριμένη γενιά κρυπτογραφημάτων διαβάστε από την σελ. 32+ του «Κώδικες και Μυστικά» (Simon Singh).
Directx Δημοσ. 18 Μαΐου 2006 Δημοσ. 18 Μαΐου 2006 Το παρακάτω πρόγραμμα σε Borland C/C++ Builder 2006, εμπνευσμένο από προηγηθέν ανάλογο του που όμως στάθηκε αδύνατον να γίνει compile, υλοποιεί τον αλγόριθμο κρυπτογράφησης του Καίσαρα σε μικρούς αγγλικούς χαρακτήρες: > // CEASAR Cryptography in C by DIRECTX #include <stdio.h> #include <string.h> //--------------------------------------------------------------------------- char *_Ceasar(char *pszPlaintext,int nKey); //--------------------------------------------------------------------------- char szBuffer[128], szKey[128]; int nKey; int main(int argc, char* argv[]) { for(; { printf(" ENTER KEY 1..26 (NOTHING TO QUIT):"); gets(szKey); if(!strlen(szKey)) break; if(!(nKey=atoi(szKey)) || nKey>26) { printf(" ERROR, INVALID KEY : %d (RANGE: 1..26)\n",nKey); continue; } printf(" ENTER STRING:"); gets(szBuffer); if(strlen(szBuffer)) printf(" CEASAR:%s\n",_Ceasar(strlwr(szBuffer),atoi(szKey))); } return 0; } //--------------------------------------------------------------------------- char *_Ceasar(char *pszPlaintext,int nKey) { int nCharIdx, nPlainLetter; // Approved values for nKey 1 to 26 if(nKey<1 || nKey>26) return NULL; for(nCharIdx=0;nCharIdx<strlen(pszPlaintext);nCharIdx++) { nPlainLetter = pszPlaintext[nCharIdx]; // Are we dealing with small letter english alphabet? if(pszPlaintext[nCharIdx]>='a' && pszPlaintext[nCharIdx]<='z') { // Does our key + plain character leads outside english alphabet letters? if(nPlainLetter+nKey>'z') pszPlaintext[nCharIdx] = (char)96+(nPlainLetter+nKey)-'z'; // Swap to z => a etc.. else pszPlaintext[nCharIdx]+=nKey; // plain char + nKey } } return pszPlaintext; } Πυρήνας της εφαρμογής είναι η ρουτίνα _Caesar η οποία μεταθέτει κατά nKey θέσεις τους προς κρυπτογράφηση χαρακτήρες pszPlainText. Ιδιαίτερη μνεία χρειάζεται η συνθήκη: > if(nPlainLetter+nKey>'z') pszPlaintext[nCharIdx] =(char)96+(nPlainLetter+nKey)-'z'; Με την οποία εάν ένας χαρακτήρας του pszPlainText συν το nKey είναι μεγαλύτερος του τελευταίου αγγλικού γράμματος z (ASCII) ανακυκλώνεται στην αρχή του αλφάβητου (a) συν τις εναπομείνασες θέσεις. Ο αριθμός 96 συμβολίζει τον ASCII χαρακτήρα ` ο οποίος προηγείται του αγγλικού a στο ASCII αλφάβητο οπότε εάν το υπόλοιπο της προσθαφαίρεσης (nPlainLetter+nKey)-'z' για παράδειγμα είναι 1 τότε 96+1 = 97 -> a στο ASCII character set. Σε αυτό το σημείο ελπίζω να μην έχει παρεισφρήσει λάθος στους υπολογισμούς μου (δεν τα πάω καλά με τα μαθηματικά). Πρακτικά με την βοήθεια του συγκεκριμένου λογισμικού κατάφερα να διαβάσω το ανάλογο κρυπτογράφημα που παρέχει ο Simon Singh στο «Κώδικες και Μυστικά» στην σελ. 538 (Στάδιο 2: Μεταθετικό Κρυπτόγραμμα του Καίσαρα). Καλή συνέχεια
Jaco Δημοσ. 12 Νοεμβρίου 2006 Μέλος Δημοσ. 12 Νοεμβρίου 2006 Επειδή είδα πως αρκετοί έχουν πρόβλημα με το compilation, ενώ δεν βλέπω κάποιο πρόβλημα στον κώδικα, ας μου πουν τι error τους δίνει ο compiler... επειδή είναι C++ τα libraries, δεν θα δουλέψει σε C compiler...! Για C compilers τρέξτε το πρόγραμμα που έδωσε επάνω ο DirectX... ΥΓ. Thanks DirectX...
memtsas Δημοσ. 11 Δεκεμβρίου 2006 Δημοσ. 11 Δεκεμβρίου 2006 και εγω που νομιζα οτι σπουδαζοντας Ιατρικη εκανα κατι πολυπλοκο.... τα Μετσοβια σας μεσα! Μπραβο ρε παλικαρια.Παντως J@co δεν ξερω αν φυλας καλα σκοπια,αλλα σιγουρα οι Τουρκαλαδες scrambled message δεν προκειται να περασουν μεσα στη μοναδα.... get going
atoukala Δημοσ. 20 Δεκεμβρίου 2006 Δημοσ. 20 Δεκεμβρίου 2006 re palikaria eimai kainourgios sto programmatismo se c!!!!mipos exete tpt na me voithisi....dioti den exo katalavi tous diktes katholou!!!thanks
chiossif Δημοσ. 21 Δεκεμβρίου 2006 Δημοσ. 21 Δεκεμβρίου 2006 @atoukala: Καλως ήρθες στην συζήτηση για τον Προγραμματισμό. Φοβάμαι όμως ότι μπήκες από το παράθυρο, φορώντας γάντια. Λοιπόν, σε αυτο το θέμα "Κρυπτογράφηση..." δεν συζητούν για δείκτες (αυτό είναι το θέμα σου σωστά αλλά για κρυπτογράφηση. Πρέπει πρώτα να αναζητήσεις στο forum αν το θέμα σου έχει ήδη συζητηθεί και που ή μπορείς αν θέλεις να ανοίξης δικό σου θέμα ή να διαβάσεις κάποιο από τα ήδη ανοιγμένα-παραπλήσια με το θέμα σου όπως το http://www.insomnia.gr/vb3/showthread.php?t=167487 Τώρα σου'γραψα ότι φορούσες γάντια διότι έγραφες etsi και όχι έτσι. Φαντάζομαι ότι αφού διαβασεις αυτό ο διαχειριστής θα το σβήσει και πολύ καλά θα κάνει...
chiossif Δημοσ. 21 Δεκεμβρίου 2006 Δημοσ. 21 Δεκεμβρίου 2006 Μια και πέρασα απ' αυτό το θέμα είπα να ρίξω και εγώ τον "οβολό" μου. Έφτιαξα τον αλγόριθμο κρυπτογράφησης του Καίσαρα και σας τον στέλνω σε πηγαίο κώδικα C. Για το καλό όλων μας το πρόγραμμα αυτό στο σύνολό του ακολουθεί GNU General Public License (πιο πολλά byte είναι η άδεια παρά ο κώδικας ). Αφού μεταγλωτιστεί σε οποιοδήποτε μεταγλωτιστή της C θα πρέπει να κάνει σωστά τα ακόλουθα: 1. Να κρυπτογραφεί ένα αρχείο σε ένα νέο με μετάθεση κατά ένα ακέραιο αριθμό για παράδειγμα: ...>Caesar_cipher file1.any file2.any 3 2. Να αποκρυπτογραφεί με την χρήση αντίθετης μετάθεσης για παράδειγμα: ...>Caesar_cipher file2.any file3.any -3. Αν εκτελεστούν οι δύο αυτές εντολές στην σειρά θα πρέπει να αρχεία file1.any και file3.any να είναι ίδια. 3. Επίσης: Έχει απλό έλεγχο σφαλμάτων. Σ'αυτόν περιλαμβάνεται η προσπάθεια αποφυγής καταστροφής υπάρχοντος αρχείου (αν και αυτό δεν είναι απίθανο ιδιαίτερα στα σύγχρονα συστήματα πολυεπεξεργασιών εξαιτίας της χρήσης της fopen και όχι της open - μάλλον πρόκειται για άλλο θέμα). Έχει σίγουρα σφάλματα ή/και παραλείψεις ελπίζω όχι σοβαρά. Λειτουργεί με κάθε μορφής αρχεία ακόμα και συμπιεσμένα -και αυτό το ελπίζω-. Προφανώς σε αυτήν την περίπτωση η αποκρυπτογράφηση χωρίς την γνώση του κλειδιού-αριθμού μετάθεσης ΚΑΙ του τύπου του αρχείου πχ gz jpg θα είναι μάλλον κοπιαστική αλλά στο κάτω κάτω, με το χέρι θα την κάνετε; Γι'αυτό σας συμβουλεύω ΝΑ ΜΗΝ ΤΟ ΕΜΙΣΤΕΥΤΕΙΤΕ για την μετάδοση των πολύτιμων μυστικών σας. Γιατί ΟΛΟΙ όσοι το έχουν δει μπορούν να φτιάξουν έναν απλό εξαντλητικό αλγόριθμο και να σπάσουν τον κώδικα σε λεπτά ή ώρες ανάλογα με τον επεξεργαστή που θα έχουν στην διάθεση τους να προγραμματίσουν. Για περισσότερα στο θέμα ρίξτε μια ματιά: http://en.wikipedia.org/wiki/Caesar_cipher ( Όσοι δεν με πιστεύετε για το σπάσιμο του κώδικα ή εμπιστεύεστε το "κόλπο" του Καίσαρα, ρίξτε μια καλή ματιά στους εξωτερικούς συνδέσμους του προηγούμενου άρθρου της wikipedia ) ΠΡΟΣΟΧΗ ! Για να αποσυμπιεστεί ΠΡΕΠΕΙ να μετονομαστεί από <Ceasar_Cipher.c.zip> σε <Ceasar_Cipher.c.gz> και φυσικά να χρησιμοποιηθεί το gzip ή κάποιο συμβατό του αποσυμπιεστικό αφού με αυτό συμπιέστηκε. Λυπάμαι για όλα αυτά αλλά δεν προβλέπεται επισύναψη gz αρχείων στο insomnia. Ceasar_Cipher.c.zip
alkiss Δημοσ. 17 Ιανουαρίου 2007 Δημοσ. 17 Ιανουαρίου 2007 ειναι φοβερο, οστοσο σε ολουσ τουσ κωδικουσ μου βγαζει προβληματα μπορει καποιοσ (απο αυτα που εχουμε πει) να κανει εναν κωδικο για C++ ή Visual Basic .net (2005)??
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.