defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Δεν απέφυγες τα σχόλια γιατί κατά την προσφιλή σου τακτική προσπαθείς να κάνεις discredit οτιδήποτε διαφορετικό από αυτό που γράφεις εσύ. Και οι 2 τρόποι είναι απόλυτα θεμιτοί και εξίσου χρησιμοποιούμενοι, με συγκεκριμένα + και -. EDIT: Επίσης η αναφορά του encapsulation σε νήμα της C ως "επιχείρημα" είναι εξαρχής καταδικασμένο να δημιουργήσει σχόλια. Κάτσε να δεις ποιός άλλος έχει κάνει σε δικό του κώδικα αυτό ακριβώς που λέω... ποιός ήταν... ποιός ήταν... α ναι! Εσύ ήσουν! Δε θα ασχοληθώ περισσότερο. Ο τίτλος του undisputed βασιλιά της C στο insomnia πρώτον ποτέ δε με απασχόλησε και δεύτερον είναι πολύ ευτελής με τα δικά μου κριτήρια. You can keep it.
Re4cTiV3 Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Φστώ!! > char line[ 128 ] = {'\0'}; while( !feof (pFile) ) { if ( fgets( line, 128, pFile) ) sscanf( line, "%d %d %d", &num1, &num2, &num3 ); printf("%d %d %d\n", num1, num2, num3); }
παπι Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Φστώ!! > char line[ 128 ] = {'\0'}; while( !feof (pFile) ) { if ( fgets( line, 128, pFile) ) sscanf( line, "%d %d %d", &num1, &num2, &num3 ); printf("%d %d %d\n", num1, num2, num3); } Γιατι δυσκολευετε τα απλα πραγματα; >#include <stdio.h> int main(int argc, char **argv) { int a,b,c; FILE *fp = fopen("test.txt","r"); while(fscanf(fp,"%d %d %d",&a,&b,&c) == 3) { printf("%d %d %d\n",a,b,c); } fclose(fp); return 0; }
migf1 Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Κάτσε να δεις ποιός άλλος έχει κάνει σε δικό του κώδικα αυτό ακριβώς που λέω... ποιός ήταν... ποιός ήταν... α ναι! Εσύ ήσουν! Όταν ηρεμήσεις, και ξαναδιαβάσεις με ησυχία το νήμα θα διαπιστώσεις πως εγώ δεν απέρριψα τον τρόπο που παρέθεσες, ούτε απέτρεψα κανέναν από τον να τον χρησιμοποιεί. Αντίθετα, είπα πως είναι εξίσου θεμιτός και χρησιμοποιούμενος με τον "λιτό" που προσέθεσα. Προφανώς τους χρησιμοποιώ και τους 2 κατά βούληση, όπως όλος ο κόσμος άλλωστε. Φστώ!! > char line[ 128 ] = {'\0'}; while( !feof (pFile) ) { if ( fgets( line, 128, pFile) ) sscanf( line, "%d %d %d", &num1, &num2, &num3 ); printf("%d %d %d\n", num1, num2, num3); } Τίποτα ρε συ Γιατι δυσκολευετε τα απλα πραγματα; >#include <stdio.h> int main(int argc, char **argv) { int a,b,c; FILE *fp = fopen("test.txt","r"); while(fscanf(fp,"%d %d %d",&a,&b,&c) == 3) { printf("%d %d %d\n",a,b,c); } fclose(fp); return 0; } Ωραίος! ΥΓ. Εγώ την αποφεύγω την fscanf() ... βασικά με δάγκωσε 3-4 φόρες άσχημα, οπότε έκτοτε την έκανα σχεδόν erase από το... λεξιλόγιό μου Πλην κάποιων πολύ απλών περιπτώσεων, αλλά ακόμα και σε αυτές δεν αισθάνομαι σίγουρος να τις υποδείξω χωρίς να τις δοκιμάσω πρώτα (ενώ π.χ αυτό με την fgets() δεν το δοκίμασα καν πριν το προτείνω στον φίλο reactive )
Directx Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 [..]Δε θα ασχοληθώ περισσότερο. Ο τίτλος του undisputed βασιλιά της C στο insomnia πρώτον ποτέ δε με απασχόλησε και δεύτερον είναι πολύ ευτελής με τα δικά μου κριτήρια. You can keep it. Αλίμονο δεν είχα ποτέ καμία αμφιβολία, στόχος σου ο τίτλος του Dr. "Know-All"
defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Αλίμονο δεν είχα ποτέ καμία αμφιβολία, στόχος σου ο τίτλος του Dr. "Know-All" Με ξαφνιάζει η απότομη είσοδός σου στη συζήτηση, αλλά πάντα είναι ευπρόσδεκτος όποιος έχει να συνεισφέρει ουσιαστικά. Ζητώ συγγνώμη που δεν καταφέρνω να υποστηρίξω τις απόψεις μου με βαριά επιχειρήματα όπως αυτά του migf1 "αυτός ο τρόπος είναι ενδεδειγμένος" ή όπως η δική σου ατάκα από χθες "απο προσωπική εμπειρία στην ανάπτυξη μερικών συμμετρικών κρυπτοσυστημάτων". Fuck data, προσωπική εμπειρία rules. Αλήθεια, το κατάλαβες ότι το link που έδωσες στο τέλος με επιβεβαιώνει; There's a widely held misconception that digital signatures must be randomized. This isn't true, but it's understandable that people might think this, since it's a common property of the signatures we actually use. The world is fucked up όταν "Know-All" γίνεται αυτός που δικαιολογεί τη θέση του, don't you think?
Directx Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Με ξαφνιάζει η απότομη είσοδός σου στη συζήτηση, αλλά πάντα είναι ευπρόσδεκτος όποιος έχει να συνεισφέρει ουσιαστικά. Να είσαι καλά, κάνω ότι μπορώ για να συνεισφέρω ουσιαστικά στην αιτία της έριδος του παρόντος θέματος. Χαίρομαι λοιπόν που το αναγνωρίζεις Υ.Γ. Θες να παίξουμε αυτό το παιχνίδι Dr; Κανένα πρόβλημα, ας δούμε λοιπόν συνολικά το άρθρο εδώ: Πάμε παρέα λοιπόν για να δούμε πόσο σημαντικό είναι ένα Secure RNG, θα το κάνω με την προσφιλή σου μέθοδο (fragments). Πάμε λοιπόν.. -- This doesn't work with CBC mode, since that actually does require an unpredictable IV at the head of each chain. You can hack around this requirement in various ways, but I'm not going to talk about those here; nothing good will come of it. -- When it comes to generating keys with a bad (P)RNG, the only winning move is not to play. -- Public-key encryption. Unfortunately, public-key encryption is much more difficult to get right without a good RNG. Τώρα πόσο διαφωνεί μαζί μου το άρθρο από την "προσωπική μου εμπειρία" Dr; Και έχω και άλλα αν χρειασθεί αλλά όπως πάντα απομονώνεις ένα σημείο του άρθρου (όπως χθες περί των one-time pads), εκείνο που σε συμφέρει πάντα και ύστερα "τα γνωστά".
Star_Light Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Τώρα, όταν εισαγάγεις το μήκος του arr ως όρισμα στην συνάρτηση, τότε έχει νόημα ο έλεγχος μέσα στην συνάρτηση ως good-practice, γιατί σε μεγάλα projects μπορεί να σου ξεφύγει και να περάσεις αντικανονική τιμή στην κλήση της συνάρτησης (π.χ. αρνητική ή μεγαλύτερη από MAX_ELEMS). Ειδικά αν το όρισμα το περνάς υπό μορφή μεταβλητής που μπορεί κατά λάθος να έχει αντικανονική τιμή. Ψάχνω να δω ποτε μπορει να συμβει αυτο που λες > #include <stdio.h> #define size 2 void foo(int [] , int ); int main(void) { int a[2]={0,1} , len; puts("Πριν το λάθος...."); foo(a,size); len=100; foo(a,len); return 0; } void foo(int a[] , int len) { printf("%d , %d\n" , len , a[len]); return ; } //---------------------------------------------------------------------- Αυτη ειναι μια πιθανη περιπτωση... αυτην εννοεις???? εδω κανει overflow με UB. ΑΛλιως το size δεν αλλαζει.... και εκτος αυτου μολις την καλεις με ορισμα το size γινεται παντα η αντικατασταση της σταθεράς που εχεις ορισει εξαρχης και απο τις πρωτες πριν ακομη αποκτησεις τον πονοκεφαλο του προτζεκτ αρα ηξερες τι εκανες.... εχω αδικο? Υπάρχει άλλη περίπτωση??? Εχεις κανα ευκαιρο παραδειγμα ? EDIT: Εκτος και αν αλλαξει τοπικα με καποιο τροπο το len μεσα στην συνάρτηση και πας μετα να προσπελάσεις τα στοιχεια του πίνακα με αυτην σαν μήκος. EDIT2: Μαλλον κατι τετοιο εννοεις γιατι ξαναβλεπω το αρχικο σου ποστ που λεει οτι αν περασεις αντικανονικη τιμη στην συνάρτηση.... δεδομενου οτι μια defined δεν μπορει να αλλαξει επομενως δεν μιλάς καθολου για αυτην. Κατι τετοιο εννοεις χοντρικα σαν το παραδειγμα που εφτιαξα....
defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Αυτό είπα εγώ (και συ διαφώνησες): Όπως είπα ήδη πολλές φορές, για salting δεν απαιτείται randomness αλλά unpredictability. Και αυτό λέει το άρθρο σού: Symmetric encryption. The good news is that symmetric encryption can be done securely with no randomness at all, provided that you have a strong encryption key and the ability to keep state between messages. [...] This (σημ: κάτι άσχετο, μιλούσε για counters πριν) doesn't work with CBC mode, since that actually does require an unpredictable IV at the head of each chain. You can hack around this requirement in various ways, but I'm not going to talk about those here; nothing good will come of it. Μάθε να διαβάζεις. Ξέρω ότι υπάρχει μεγαλύτερη πιθανότητα να βγάλω φτερά παρά να παραδεχτείς έσυ ή κάποιος άλλος ότι είτε δεν είχε κατανοήσει σωστά είτε δεν είχε εκφραστεί σωστά (λες και θα σας πέσει ο κώλος) αλλά whatever.
Directx Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Αυτό είπα εγώ (και συ διαφώνησες): Και αυτό λέει το άρθρο σού: Μάθε να διαβάζεις. Ξέρω ότι υπάρχει μεγαλύτερη πιθανότητα να βγάλω φτερά παρά να παραδεχτείς έσυ ή κάποιος άλλος ότι είτε δεν είχε κατανοήσει σωστά είτε δεν είχε εκφραστεί σωστά (λες και θα σας πέσει ο κώλος) αλλά whatever. Όχι δεν θα παίξουμε όπως σε βολεύει, θα μάθεις σε αυτή την ηλικία να παίζεις το παιχνίδι σωστά (εγώ δεν είμαι φοιτητής σου ή υφιστάμενος σου να φοβηθώ να σε στεναχωρήσω). Μάθε λοιπόν πότε πρέπει να το βουλώνεις. Ιδού ολόκληρο το fragment του άρθρου (για την συμμετρική κρυπτογράφηση μιας και το πιάσαμε εκεί): Symmetric encryption. The good news is that symmetric encryption can be done securely with no randomness at all, provided that you have a strong encryption key and the ability to keep state between messages. An obvious choice is to use CTR mode encryption. Since CTR mode IVs needn't be unpredictable, you can set your initial IV to zero, then simply make sure that you always hang onto the last counter value between messages. Provided that you never ever re-use a counter value with a given key (even across system restarts) you'll be fine.** This doesn't work with CBC mode, since that actually does require an unpredictable IV at the head of each chain. You can hack around this requirement in various ways, but I'm not going to talk about those here; nothing good will come of it. -- ** If you're going to do this, you should also be sure to use a MAC on your ciphertext, including the initial counter value for each message. Συνεπώς χρειάζεσαι ένα ασφαλές RNG για να λάβεις αποτελέσματα με υψηλό unpredictability διαφορετικά "τον έκαψες τον πελάτη" σου (με απλά λόγια).
defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 I have to ask... παίρνεις χάπια; Το "this" το σχολίασα και μόνος μου ότι αναφέρεται στο "hanging on to the last counter" και στη χρήση του counter + 1 σαν την επόμενη τιμή του counter στο επόμενο encryption. ΚΑΤΙ ΠΟΥ ΦΥΣΙΚΑ ΔΕΝ ΕΙΝΑΙ UNPREDICTABLE ΓΙΑΤΙ ΑΥΞΑΝΕΤΑΙ ΚΑΤΑ ΕΝΑ ΚΑΘΕ ΦΟΡΑ. ΠΙΟ PREDICTABLE ΔΕ ΓΙΝΕΤΑΙ. Εσύ μετά από το γεγονός ότι αυτό δε δουλεύει γιατί είναι predictable πηδάς με κάποιο μαγικό τρόπο στο συμπέρασμα ότι το μόνο που δουλεύει είναι true randomness από την καρδιά του χάους. Ότι κάποιος πρέπει να μάθει πότε να το βουλώνει αυτό είναι σίγουρο. Update: Δε νομίζω ότι χρειάζεται αυτό, αλλά υπάρχουν κάποιοι τύποι ανθρώπων που πραγματικά με ευχαριστεί να ταπώνω οπότε I 'll indulge myself απαντώντας σε μία ακόμα από τις ευγενικές προτροπές σου να δικαιολογηθώ. Εγώ: Όπως είπα ήδη πολλές φορές, για salting δεν απαιτείται randomness αλλά unpredictability. Το σημείο του άρθρου με το οποίο με βάζεις στη θέση μου: When it comes to generating keys with a bad (P)RNG, the only winning move is not to play. Είμαι βέβαιος ότι κάποιος με εμπειρία στην υλοποίηση κρυπτοσυστημάτων όπως εσύ καταλαβαίνει τη διαφορά ανάμεσα σε IV (που τυπικά το μεταδίδεις χύμα μαζί με τα κρυπτογραφημένα δεδομένα) και encryption key (που το φυλάς σαν τα μάτια σου). Υπάρχει κάποια άλλη απορία;
Directx Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 I have to ask... παίρνεις χάπια; Το "this" το σχολίασα και μόνος μου ότι αναφέρεται στο "hanging on to the last counter" και στη χρήση του counter + 1 σαν την επόμενη τιμή του counter στο επόμενο encryption. ΚΑΤΙ ΠΟΥ ΦΥΣΙΚΑ ΔΕΝ ΕΙΝΑΙ UNPREDICTABLE ΓΙΑΤΙ ΑΥΞΑΝΕΤΑΙ ΚΑΤΑ ΕΝΑ ΚΑΘΕ ΦΟΡΑ. ΠΙΟ PREDICTABLE ΔΕ ΓΙΝΕΤΑΙ. Εσύ μετά από το γεγονός ότι αυτό δε δουλεύει γιατί είναι predictable πηδάς με κάποιο μαγικό τρόπο στο συμπέρασμα ότι το μόνο που δουλεύει είναι true randomness από την καρδιά του χάους. Ότι κάποιος πρέπει να μάθει πότε να το βουλώνει αυτό είναι σίγουρο. Καταρχήν μιας και φωνάζεις προφανώς είναι ώρα να πάρεις το χάπι σου - εγώ πηδώ από μόνος μου στο συμπέρασμα; This doesn't work with CBC mode, since that actually does require an unpredictable IV at the head of each chain. You can hack around this requirement in various ways, but I'm not going to talk about those here; nothing good will come of it. Όταν δουλεύεις σε CBC πρέπει το IV σου να είναι απρόβλεπτο, συνεπώς για να το επιτύχεις αυτό θα πρέπει να λάβεις κάποιες τυχαίες τιμές. Σωστά; ε, τα περισσότερα λογισμικά εκεί χρησιμοποιούν ασφαλείς RNG για να τις παράξουν ενώ ορισμένα άλλα χρησιμοποιούν κατευθείαν ασφαλείς ρουτίνες που παράγουν σωρούς από υψηλής τυχαιότητας bytes σε buffers έτοιμους προς χρήση (παρέχει και το Windows Crypto API τέτοια καλούδια btw -πχ. CryptGenRandom για salt & IVs). Τώρα τι να κάνω μαζί σου; Διαφωνούμε για αυτό το ζήτημα (αξία χρήσης ασφαλής RNG για κρυπτογράφηση) από χθες. Δηλαδή τι να κάνω; Να λέω ελαφριά την καρδιά χρησιμοποιείστε την srand / rand για αυτές τις δουλειές ή να λέω ότι αν το πρόγραμμα σας κινδυνεύει να το σπάσει το FBI τότε μόνο ταλαιπωρηθείτε με τέτοιου είδους θέματα; (Ναι θα μπορούσα να ζητώ έξτρα τυχαιότητα από τον χρήστη αλά PGP και GPG το ξέρω αυτό - αλλά εκεί θα με κυνηγούσες κυριολεκτικά). Και να πεις ότι είναι δύσκολη η χρήση ενός Secure RNG πάει στο καλό.. Υ.Γ. Δεν σε έχω δει μια φορά να κάνεις πίσω στις απόψεις σου εδώ τουλάχιστον (εκτός και αν μου έχει ξεφύγει οπότε πάσο), κατά τα άλλα κατακρίνεις τους άλλους ότι είναι ισχυρογνώμονες (δεν πάει έτσι).
defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Όταν δουλεύεις σε CBC πρέπει το IV σου να είναι απρόβλεπτο, συνεπώς για να το επιτύχεις αυτό θα πρέπει να λάβεις κάποιες τυχαίες τιμές. Σωστά; ε, τα περισσότερα λογισμικά εκεί χρησιμοποιούν ασφαλείς RNG για να τις παράξουν ενώ ορισμένα άλλα χρησιμοποιούν κατευθείαν ασφαλείς ρουτίνες που παράγουν σωρούς από υψηλής τυχαιότητας bytes σε buffers έτοιμους προς χρήση (παρέχει και το Windows Crypto API τέτοια καλούδια btw). Τώρα τι να κάνω μαζί σου; Έχεις δυσκολία στην κατανόηση της διαφοράς των εννοιών "απρόβλεπτο" και "τυχαίο" όπως αυτές χρησιμοποιούνται στο computer science? Ένα λεξικό θα σε βοηθήσει. Αν δεν έχεις, ορίστε ένα παράδειγμα: Το "συνεπώς" με ποιό ακριβώς τρόπο είναι συνεπώς; Ας υποθέσουμε ότι για IV μου φτάνουν 5 bits or so. Ανοίγω ένα αγγλικό βιβλίο σε μια σελίδα στην τύχη και διαβάζω το πρώτο γράμμα. Η επιλογή μου είναι φυσικά απρόβλεπτη (γιατί αν σου δώσω μία ευκαιρία να μαντέψεις δε θα τα καταφέρεις) αλλά δεν είναι τυχαία (γιατί ο αριθμός των q στο βιβλίο δεν είναι ίδιος με τον αριθμό των e) -- υπάρχει ένα τεράστιο bias που κάνει την επιλογή του e πολύ πιθανότερη. Παρόλα αυτά, αν μου έφταναν τα 5 bits η επιλογή του IV/salt μ' αυτό τον τρόπο θα ήταν μια χαρά βολική. Αν έκανα το ίδιο για την παραγωγή encryption key από την άλλη θα ήταν εγκληματικό. Τι να κάνεις: να σταματήσεις να μου τα σπας όταν λέω ότι δε χρειάζεται κάτι καλύτερο απο rand() για το IV. Πρέπει βέβαια να κάνεις seed με κάτι απρόβλεπτο, αλλά αυτό ισχύει για οποιονδήποτε PRNG όσο καλός κι αν είναι (παράδειγμα). Το γεγονός ότι (όπως άλλωστε συμφώνησα) στην πράξη θα χρησιμοποιήσεις κάτι καλύτερο γιατί έτσι κι αλλιώς θα σου χρειαστεί (π.χ. για keys) οπότε αφού ήδη έχεις τη χειροβομβίδα στο χέρι τη χρησιμοποιείς και πάνω σε σπουργίτι δεν αλλάζει κάτι από τα παραπάνω. Δεν σε έχω δει μια φορά να κάνεις πίσω στις απόψεις σου εδώ τουλάχιστον (εκτός και αν μου έχει ξεφύγει οπότε πάσο), κατά τα άλλα κατακρίνεις τους άλλους ότι είναι ισχυρογνώμονες (δεν πάει έτσι). Ίσως είναι επειδή συνήθως τα άτομα με τα οποία "παραδοσιακά" διαφωνώ δεν κάνουν τον κόπο να δώσουν επιχειρήματα και παρόλα αυτά επιμένουν στην άποψή τους. Με έχεις δει ποτέ να τα βάζω με τον imitheo, με τον timon ή με τον thanoscaster; Γιατί λες να κάνω τέτοιες διακρίσεις; Και με συγχωρείς, αλλά ακριβώς έτσι πάει. Δε βγαίνουμε παρέα να φάμε οπότε τη μια θα πάμε για ψάρια και την άλλη για κρέατα για να είναι όλοι ευχαριστημένοι. Πραγματευόμαστε πράγματα στα οποία υπάρχει το σωστό και το λάθος. Αν υποστηρίζεις αυτό που μου φαίνεται λάθος 10 φορές στις 10 και δε δίνεις επιχειρήματα, 10 φορές στις 10 θα σε πώ ισχυρογνώμονα. Το αστείο είναι πως ακόμα και όταν εγώ θα έχω λάθος, αν δεν πέσουν επιχειρήματα δε θα το μάθουμε ποτέ.
Directx Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Τι να κάνεις: να σταματήσεις να μου τα σπας όταν λέω ότι δε χρειάζεται κάτι καλύτερο απο rand() για το IV. Πρέπει βέβαια να κάνεις seed με κάτι απρόβλεπτο, αλλά αυτό ισχύει για οποιονδήποτε PRNG όσο καλός κι αν είναι. Το γεγονός ότι (όπως άλλωστε συμφώνησα) στην πράξη θα χρησιμοποιήσεις κάτι καλύτερο γιατί έτσι κι αλλιώς θα σου χρειαστεί (π.χ. για keys) οπότε αφού έχεις τη χειροβομβίδα στο χέρι ήδη τη χρησιμοποιείς και πάνω σε σπουργίτι δεν αλλάζει κάτι από τα παραπάνω. Οκ, ας το θέσω διαφορετικά και καλόπιστα το ζήτημα, γιατί τότε όλοι οι κρυπτογράφοι δίνουν τεράστια σημασία στην χρήση ασφαλών RNG και απαυδούν των srand / rand(); Αν ήταν έτσι γιατί να δίδεται τόση σημασία στον ορισμό του IV και του SALT; Μήπως εδώ τα πράγματα δεν είναι τόσο απλά; Το άρθρο που παρέθεσα σημειώνει 4 πράγματα σχετικά με τους RNG τα οποία θέλουν προσοχή: α) Predictable output, β) Resetting output, γ) Shared output και δ) Non-uniform or biased output. Μήπως εκεί είναι η ανάγκη αποφυγής των rand / srand; Ίσως είναι επειδή συνήθως τα άτομα με τα οποία "παραδοσιακά" διαφωνώ δεν κάνουν τον κόπο να δώσουν επιχειρήματα. Και με συγχωρείς, αλλά ακριβώς έτσι πάει. Δε βγαίνουμε παρέα να φάμε οπότε τη μια θα πάμε για ψάρια και την άλλη για κρέατα για να είναι όλοι ευχαριστημένοι. Πραγματευόμαστε πράγματα στα οποία υπάρχει το σωστό και το λάθος. Αν υποστηρίζεις αυτό που μου φαίνεται λάθος 10 φορές στις 10 και δε δίνεις επιχειρήματα, 10 φορές στις 10 θα σε πώ ισχυρογνώμονα. Ο.Κ. αλλά εδώ λες "μου φαίνεται" άρα είναι υποκειμενικό, τώρα εγώ σου έδωσα ένα άρθρο πάνω στο θέμα το οποίο είναι νομίζω εμπεριστατωμένο, όμως το δέχεσαι νομίζω επιλεκτικά για να υποστηρίξεις την θέση σου για αυτό και εκνευρίζομαι μαζί σου (σπάνια μπαίνω σε flame εδώ και 10+ χρόνια που γράφω στο παρόν forum). Αυτή την συμπεριφορά του να διαφωνείς στα άρθρα πηγές που σου παραθέτουν οι συνομιλητές σου την έχω δει να την κάνεις και άλλοτε (για αυτό εκνευρίζομαι μαζί σου) -νομίζω και στο παρόν topic μερικές σελίδες πίσω; .. Υ.Γ. Όσον αφορά την εμπειρία μου τώρα, δεν λέω ποτέ πράγματα που δεν έχω κάνει (είναι αρχή μου), έχω γράψει μερικά προγράμματα κρυπτογράφησης και με BLOCK CIPHERS και με STREAM CIPHERS και για PC και για κινητά (και για κρίσιμα δεδομένα..), πάντα το ιερό δισκοπότηρο ήταν μεταξύ άλλων και ένα ασφαλές RNG, για αυτό επιμένω.
defacer Δημοσ. 19 Ιουλίου 2012 Δημοσ. 19 Ιουλίου 2012 Οκ, ας το θέσω διαφορετικά και καλόπιστα το ζήτημα, γιατί τότε όλοι οι κρυπτογράφοι δίνουν τεράστια σημασία στην χρήση ασφαλών RNG και απαυδούν των srand / rand(); Αν ήταν έτσι γιατί να δίδεται τόση σημασία στον ορισμό του IV και του SALT; Μήπως εδώ τα πράγματα δεν είναι τόσο απλά; Γιατί όταν ο J. Random Programmer πάει να υλοποιήσει κρυπτοσύστημα πιάνει την πρώτη rand() που θα βρει μπροστά του και τη χρησιμοποιεί για τα πάντα, με καταστροφικά αποτελέσματα. Αν έλεγες "το ευκολότερο είναι να χρησιμοποιείς CRNG παντού" δε θα σχολίαζα. Το "πρέπει να χρησιμοποιείς CRNG παντού" όμως είναι λάθος και γι' αυτό το σχολίασα. Πολύ ευγενικά και καλόπιστα (στην αρχή). Ο.Κ. αλλά εδώ λες "μου φαίνεται" άρα είναι υποκειμενικό, τώρα εγώ σου έδωσα ένα άρθρο πάνω στο θέμα το οποίο είναι νομίζω εμπεριστατωμένο, όμως το δέχεσαι νομίζω επιλεκτικά για να υποστηρίξεις την θέση σου για αυτό και εκνευρίζομαι μαζί σου (σπάνια μπαίνω σε flame εδώ και 10+ χρόνια που γράφω στο παρόν forum). Αυτή την συμπεριφορά του να διαφωνείς στα άρθρα πηγές που σου παραθέτουν οι συνομιλητές σου την έχω δει να την κάνεις και άλλοτε (για αυτό εκνευρίζομαι μαζί σου) -νομίζω και στο παρόν topic μερικές σελίδες πίσω; Το τι μου φαίνεται είναι υποκειμενικό. Το τι είναι σωστό είναι αντικειμενικό. Λέω "μου φαίνεται" γιατί α) είμαι άνθρωπος και μπορεί να κάνω λάθος και β) το αντίθετο θα ήταν ένδειξη μη σεβασμού προς το συνομιλητή μου. Εγώ από μέσα μου μπορεί να πιστεύω ότι έχω τόσο δίκιο όσο και ο Αριστείδης (ο Δίκαιος), αλλά δε γίνεται να κατεβώ μ' αυτό σαν επιχείρημα. Τα άρθρα τα παίρνω επιλεκτικά γιατί η διαφωνία μας είναι σε ένα συγκεκριμένο πράγμα οπότε κάνω quote μόνο τα σχετικά. Αν πιστεύεις εσύ ή οποιοσδήποτε άλλος ότι το quoting μου διαστρεβλώνει τα λεγόμενα του άρθρου πάντα είμαι ανοιχτός σε υποδείξεις. Αν πιστεύεις ότι δε σε βολεύει το συμπέρασμα που βγαίνει (γενικά μιλάω, μη το πάρεις προσωπικά σε παρακαλώ) τότε πιες ξύδι. Τέλος, αν προσέξεις θα δεις ότι δεν έχω διαφωνήσει με το περιεχόμενο των άρθρων (χωρίς να το αποκλείω για το μέλλον, αλλά μέχρι τώρα δε μου έχει κάνει κανείς quote σκουπίδια). Έχω διαφωνήσει όμως με τη σχετικότητα των άρθρων πάνω στην κουβέντα και κυρίως με την ερμηνεία που δίνει στα άρθρα ο συνομιλητής μου. Υ.Γ. Όσον αφορά την εμπειρία μου τώρα, δεν λέω ποτέ πράγματα που δεν έχω κάνει (είναι αρχή μου), έχω γράψει μερικά προγράμματα κρυπτογράφησης και με BLOCK CIPHERS και με STREAM CIPHERS και για PC και για κινητά (και για κρίσιμα δεδομένα..), πάντα το ιερό δισκοπότηρο ήταν μεταξύ άλλων και ένα ικανό SRNG, για αυτό επιμένω. Δεν έχω καμία αμφιβολία ότι έχεις κάνει όλα αυτά που λες και ακόμα περισσότερα (είναι φανερό από άπειρα threads ότι έχεις μακρόχρονη σταδιοδρομία στο χώρο). Αλλά αυτό δεν είναι επιχείρημα εκτός κι αν μιλάς σε κάποιον με εμφανώς απείρως λιγότερη εμπειρία απο σένα. Υποθετικά μιλώντας, μπορεί να ασχολείσαι 25 χρόνια και να κάνεις 25 χρόνια πατάτες. Δε συνδέονται η ποσότητα και η ποιότητα της δουλειάς. Και γω έχω υλοποιήσει κρυπτοσυστήματα σε C++ πάνω σε bare sockets (όλα manually, ξεκινώντας από Diffie-Hellman). Έχει σημασία; Από πού θα κρίνεις εσύ αν ξέρω τι μου γίνεται, από αυτά που λέω εδώ ή από το πώς δουλεύουν τα προγράμματά μου που δεν τα έχεις δει ποτέ;
Προτεινόμενες αναρτήσεις