Προς το περιεχόμενο

Μετατροπη απο bytes σε int32 (c#)


tsakitsan95

Προτεινόμενες αναρτήσεις

Όπως το σκεφτομαι πρέπει να χρησιμοποιήσεις απλό RSA χωρίς padding . Είσαι σίγουρος ότι η κλάση που χρησιμοποιείς δεν κάνει padding ?

Και γω αυτο πιστευω οτι ειναι το προβλημα. Προσπαθω στο κωδικα να βγαλω το padding , αλλα δεν ειμαι 100% σιγουρος αν το κανω σωστα.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

  • Απαντ. 39
  • Δημ.
  • Τελ. απάντηση

Συχνή συμμετοχή στο θέμα

Προσωπικα θα μετέφερα αυτο τον κώδικα Java σε C#. Θα έκανα test οτι δουλέυει. Στη συνέχεια θα διόρθωνα τα issues που αναφέρει στην αρχή (απλά φτιάχνεις επαναλήψεις) και τέλος.

 

Ουτε άγνωστες βιβλιοθήκες, ουτε paddings, ουτε byte conversions. Έτσι και αλλιώς για ακαδημαικό σκοπό είναι.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Προσωπικα θα μετέφερα αυτο τον κώδικα Java σε C#. Θα έκανα test οτι δουλέυει. Στη συνέχεια θα διόρθωνα τα issues που αναφέρει στην αρχή (απλά φτιάχνεις επαναλήψεις) και τέλος.

 

Ουτε άγνωστες βιβλιοθήκες, ουτε paddings, ουτε byte conversions. Έτσι και αλλιώς για ακαδημαικό σκοπό είναι.

Ευχαριστω πολυ θα κατσω να μετατρεψω και αυτον να δοκιμασω!

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Τι νόημα έχει να κάτσεις να υλοποιήσεις (σίγουρα με λάθη) κάτι που δεν έχει πρακτική χρησιμότητα (υπάρχει ήδη) μεταφέροντας έτοιμο κώδικα από αλλού (οπότε δε θα μάθεις κιόλας, ή τουλάχιστον όχι όσο θα μάθαινες μόνος σου)?

 

Δε διάβασα με πολλή προσοχή αλλά απ' ότι νομίζω το πρόβλημά σου πηγάζει από τα εξής:

  • Διάβασες κάπου ότι "μεταχειριζόμαστε το μήνυμα σαν αριθμό" ή κάτι παρόμοιο αλλά δεν κατάλαβες τι σημαίνει αυτό και πήρες λάθος δρόμο (ParseInt κλπ)
  • Προσπαθείς να υλοποιήσεις κάτι που βασίζεται σε μαθηματικά αλλά δεν έχεις το σχετικό μαθηματικό υπόβαθρο, οπότε το πας "με το μάτι"

 

Αν έχω δίκιο θα σου πρότεινα να αφήσεις τις υλοποιήσεις και να αυξήσεις πρώτα το βαθμό κατανόησης της θεωρίας.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)

Τι νόημα έχει να κάτσεις να υλοποιήσεις (σίγουρα με λάθη) κάτι που δεν έχει πρακτική χρησιμότητα (υπάρχει ήδη) μεταφέροντας έτοιμο κώδικα από αλλού (οπότε δε θα μάθεις κιόλας, ή τουλάχιστον όχι όσο θα μάθαινες μόνος σου)?

 

Δε διάβασα με πολλή προσοχή αλλά απ' ότι νομίζω το πρόβλημά σου πηγάζει από τα εξής:

  • Διάβασες κάπου ότι "μεταχειριζόμαστε το μήνυμα σαν αριθμό" ή κάτι παρόμοιο αλλά δεν κατάλαβες τι σημαίνει αυτό και πήρες λάθος δρόμο (ParseInt κλπ)
  • Προσπαθείς να υλοποιήσεις κάτι που βασίζεται σε μαθηματικά αλλά δεν έχεις το σχετικό μαθηματικό υπόβαθρο, οπότε το πας "με το μάτι"

 

Αν έχω δίκιο θα σου πρότεινα να αφήσεις τις υλοποιήσεις και να αυξήσεις πρώτα το βαθμό κατανόησης της θεωρίας.

Το μαθηματικο υποβαθρο θεωρω οτι το εχω.Το θεμα μου ειναι ο προγραμματισμος, στον οποιο εκανα ενα μεγαλο βημα , μετα απο 2 χρονια σχεδον αποχης και γνωσεις κατα κυριο λογο απο Αναπτυξη εφαρμογων λυκειου και λιγο c μεσω της σχολης, εκατσα και εμαθα μονος c#. Στην ουσια δουλευω πανω σε ενα project ομομορφικης κρυπτογραφισης , στο οποιο θα πρεπει εκτος των αλλων να εφαρμοσω και μια υλοποιηση. Επελεξα των RSA και ξεκινησα να τον μεταφραζω απο ψευδοκωδικα μονος , λογω του γεγονοτος οτι ειναι πιο ευκολος στην κατανοηση αλλα και στο οτι "σπαει" προκειμενου να παρουσιασω και αυτο το σεναριο. Παρολα αυτα βρεθηκα σε αδιεξοδο σε καποιο σημειο και αναγκαστηκα να χρησιμοποιησω την ετοιμη βιβλιοθηκη. Στοχος μου ειναι η υλοποιηση μιας multiclient server (n clients) εφαρμογης , στην οποια θα στελνω απο τους clients κρυπτογραφημενους αριθμους στο server , αυτος θα βρισκει το γινομενο αυτων και θα το αποκρυπτογραφει. Στην συνεχεια με packet sniffing θα "πιασω" τα πακετα και θα προσπαθησω να αποκρυπτογραφησω ή να αντλησω οτι πληροφορια μπορω μεσω αυτων. Το μηνυμα που θα διαβαζει καθε client απο το χρηστη θελω να ειναι integer. Θα μπορουσα να ξεκινουσα και διαβαζοντας string αλλα ειναι μια επιπλεον μετατροπη.

Επεξ/σία από tsakitsan95
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο rsa εχει δυο κλειδια. Απο αυτα το ενα ειναι εκθετιμενο, το public key. Με αυτο ομως κανεις one way κρυπτογραφηση. Για να το αποκρυπτογραφησεις, θα πρεπει να εχεις και το αλλο κλειδι, το private. Το οποιο δεν υπαρχει κανενας λογος να το εχεις, για αυτο και δεν το εχεις, δεν ειναι εκθετιμενο.

 

Να στο πω αλλιως, δεν θες σνιφαρισμα. Παιρνεις το public key, κρυπτογραφεις ενα μηνυμα και με bf ψαχνεις το private key.

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ο rsa εχει δυο κλειδια. Απο αυτα το ενα ειναι εκθετιμενο, το public key. Με αυτο ομως κανεις one way κρυπτογραφηση. Για να το αποκρυπτογραφησεις, θα πρεπει να εχεις και το αλλο κλειδι, το private. Το οποιο δεν υπαρχει κανενας λογος να το εχεις, για αυτο και δεν το εχεις, δεν ειναι εκθετιμενο.

Να στο πω αλλιως, δεν θες σνιφαρισμα. Παιρνεις το public key, κρυπτογραφεις ενα μηνυμα και με bf ψαχνεις το private key.

Βεβαιως ναι συμφωνω. Στην περιπτωση ομως που το μεγεθος του κλειδιου ειναι πχ 256bit , υπαρχουν 2^256 πιθανοι συνδιασμοι.Το πιθανοτερο ειναι το κλειδι να βρεθει καπου στη μεση δηλαδη σε (2^256)/2=2^255 δοκιμες. Συνεπως δεν νομιζω να μπορω να εχω καποιο αποτελεσμα συντομα σε τετοιου μεγεθους κλειδια. Θα προσπαθησω αν μου το επιτρεψει ο χρονος να κανω διαφορες επιθεσεις.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η παραπάνω μετατροπή που λες ίσως έχει νόημα για να μπεις περισσότερο στο πνεύμα (ίσως και όχι, δεν ξέρω). Αλλά δεν καταλαβαίνω τι ακριβώς λες για packet sniffing και τέτοια. Δε βγάζει νόημα όπως το διαβάζω. Εκτός από brute forcing, το οποίο δεν έχει κανένα πρακτικό ενδιαφέρον, τι άλλο σκοπεύεις να κάνεις;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Η παραπάνω μετατροπή που λες ίσως έχει νόημα για να μπεις περισσότερο στο πνεύμα (ίσως και όχι, δεν ξέρω). Αλλά δεν καταλαβαίνω τι ακριβώς λες για packet sniffing και τέτοια. Δε βγάζει νόημα όπως το διαβάζω. Εκτός από brute forcing, το οποίο δεν έχει κανένα πρακτικό ενδιαφέρον, τι άλλο σκοπεύεις να κάνεις;

 

Γιατί το λές αυτο ?

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Γιατί το λές αυτο ?

 

Το λέω από την οπτική της ενασχόλησης με κρυπτογραφία. Τι νόημα έχει να κάνεις κάτι που είναι απλούστατο και κατανοητότατο και απλά "χρειάζεται πολύ χρόνο" για να γίνει;

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εμένα όλο αυτό μου θυμίζει κάποιον που προσπαθεί να σπάσει κρυπρογράφηση Wi-Fi. Packet sniffing και κρυπτογράφηση σημαίνουν ότι είτε πας να σπάσεις το https (καλά κρασιά), είτε κάποια παρόμοια καγκουριά. Εκτός κι αν χρησιμοποιείς λάθος όρους.

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Εμένα όλο αυτό μου θυμίζει κάποιον που προσπαθεί να σπάσει κρυπρογράφηση Wi-Fi. Packet sniffing και κρυπτογράφηση σημαίνουν ότι είτε πας να σπάσεις το https (καλά κρασιά), είτε κάποια παρόμοια καγκουριά. Εκτός κι αν χρησιμοποιείς λάθος όρους.

Φιλε μου για ποιο https μιλας; Εγω στηνω τον server και τους client , εγω βαζω οτι ασφαλεια θελω πανω στην συνδεση.

Η παραπάνω μετατροπή που λες ίσως έχει νόημα για να μπεις περισσότερο στο πνεύμα (ίσως και όχι, δεν ξέρω). Αλλά δεν καταλαβαίνω τι ακριβώς λες για packet sniffing και τέτοια. Δε βγάζει νόημα όπως το διαβάζω. Εκτός από brute forcing, το οποίο δεν έχει κανένα πρακτικό ενδιαφέρον, τι άλλο σκοπεύεις να κάνεις;

Θελω να πιασω τα πακετα που μεταφερονται απο και προς το server , και να αντλησω οσο περισσοτερη πληροφορια μπορω ή τουλαχιστον να δοκιμασω. Δηλαδη πχ να καταφερω να βρω το κλειδι δοθεντων των plaintext και cyphertext.

Το λέω από την οπτική της ενασχόλησης με κρυπτογραφία. Τι νόημα έχει να κάνεις κάτι που είναι απλούστατο και κατανοητότατο και απλά "χρειάζεται πολύ χρόνο" για να γίνει;

Γενικως το bf δεν ειναι πλεον αποδοτικο , λογω της αυξησης μεγεθους των κλειδιων.
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Το λέω από την οπτική της ενασχόλησης με κρυπτογραφία. Τι νόημα έχει να κάνεις κάτι που είναι απλούστατο και κατανοητότατο και απλά "χρειάζεται πολύ χρόνο" για να γίνει;

 

Μα για να αποδείξεις ότι σπάει σε "εύλογο" διάστημα με απλό τρόπο  :)

 

Στην συγκεκριμένη περίπτωση που ουσιαστικά θέλεις να κάνεις πράξεις αριθμών (ακέραιων μάλιστα) γνωρίζοντας το δημόσιο κλειδί πόσο χρόνος χρειάζεται για να φτιάξεις τα ciphers των αριθμων ? Δεν μιλάμε για κλειδιά και passphrases με μεγάλο μήκος μιλάμε για αριθμούς με κάποιο νόημα. Επομένως το να κάνεις ενα proof of concept με ενα μικρό προγραμμα απλά αποδυκνύεις σε πρακτικό επιπεδο το θεωρητικό κομμάτι.

 

Όπως και να έχει η ομομορφική κρυπτογράφηση πρέπει να γίνει σε basic RSA που ειναι ευπαθής. Αρα και η ομομορφική υλοποίηση ειναι ευπαθής

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Ξαναλεω, ο rsa εχει δυο κλειδια. Εσυ με σνιφαρισμα θα βρεις το public key. Το οποιο δεν ειναι κρυφο!!!!

Ναι το γνωριζω! Μα δε θα γινει το sniffing για να πιασω καποιο κλειδι. Θα πιασω τους αριθμους που στελνονται και στην συνεχει δεδομενου και του αποτελεσματος θα προσπαθησω να βρω το κλειδι( οχι με το χερι εννοειται) . Να προσπαθουσα να πιασω το κλειδι θα ηταν τελειως χαζο:P

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...