THMMY.gr

Μαθήματα Βασικού Κύκλου => Αντικειμενοστραφής Προγραμματισμός => Topic started by: Apostolof on October 25, 2016, 14:14:09 pm



Title: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Apostolof on October 25, 2016, 14:14:09 pm
Ανέβηκε η τρίτη εργασία του μαθήματος εδώ (https://elearning.auth.gr/mod/assign/view.php?id=296985). Happy programming

Programming Task 3


Κατάθεση εργασίας για βαθμολογία

  • Κατεβάζετε τα 2 συνοδευτικά αρχεία της Άσκησης, με τον κώδικα (ps3.scm (https://elearning.auth.gr/pluginfile.php/502493/mod_assign/intro/ps3.scm)) και τα τεστ (tester3.scm (https://elearning.auth.gr/pluginfile.php/502493/mod_assign/intro/tester3.scm)).
  • Συμπληρώνετε τα τμήματα του κώδικα που λείπουν στο πρώτο.
  • Συμπληρώνετε επιπλέον τεστ στο δεύτερο --παρόμοιο αρχείο θα εκτελεστεί στον server για να βαθμολογηθείτε.
  • Ανεβάστε το πρώτο αρχείο με τις δικές αλλαγές στο CMS (http://83.212.97.65:8888/)
  • Επαναλάβετε τα βήματα 2-4 μέχρι η βαθμολογία να σας είναι ικανοποιητική, ή παρέλθει ο χρόνος παράδοσης, ή βρείτε να κάνετε κάτι καλύτερο με το χρόνο σας.


Κωδικοποίηση RSA

Οι οδηγίες βρίσκονται στο επισυναπτόμενο PDF (https://elearning.auth.gr/pluginfile.php/502493/mod_assign/intro/rsa.pdf).


Η σχετική συζήτηση στο elearning ΕΔΩ (https://elearning.auth.gr/mod/forum/view.php?id=295789)!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on October 25, 2016, 14:44:19 pm
12 σελιδες εκφωνηση  ;D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: potirikolonato on October 26, 2016, 15:41:11 pm
Epic εργασία. Θα φτύσουμε, όμως, αίμα να την τελειώσουμε..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Argirios on October 27, 2016, 08:00:47 am
Τί ακάουντ χρησιμοποιούμε στο cms για να ανεβάσουμε τις εργασίες?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Jim D. Ace on October 27, 2016, 11:41:22 am
Τί ακάουντ χρησιμοποιούμε στο cms για να ανεβάσουμε τις εργασίες?
πρεπει να κανεις εγγραφη αν θυμαμαι καλα και σου στελνουν μειλ με ττους κωδικους


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: kongr45gpen on October 27, 2016, 13:40:09 pm
Τί ακάουντ χρησιμοποιούμε στο cms για να ανεβάσουμε τις εργασίες?

Κάνεις εγγραφή στις Προγραμματιστικές Τεχνικές (2016 - 2017) στο elearning, και μετά στέλνεις e-mail στο fcdimitr@auth.gr για να πάρεις τα στοιχεία εισόδου στο cms.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Μπουγάτσας on October 27, 2016, 17:28:50 pm
Μπορεί να εξηγήσει κάποιος πώς δουλεύει η let ?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: 00128419 on October 27, 2016, 17:56:26 pm
Μπορεί να εξηγήσει κάποιος πώς δουλεύει η let ?

Νομίζω το χρησιμοποιείς για να φτιάξεις προσωρινή συνάρτηση. Ίδιο πράγμα με το να έκανες define μέσα στο define δηλαδή


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: thaptali on October 28, 2016, 15:35:54 pm
Ενώ  η συνάρτηση RSA-unconvert  λειτουργεί κανονικά και τα αποτελέσματα είναι τα νούμερα που δίνονται στο pdf, όταν βάζω την

(define(RSA-decrypt intlist key)
  (RSA-unconvert-list (intlist->string intlist) key))
μου βγάζει το σφάλμα της εικόνας που έχω στο συννημένο. Έχω προσπαθήσει αρκετή ώρα και δεν μπορώ να βρω τι φταίει. Μήπως μπορείτε να βοηθήσετε;
()

θέλω να λύσω το πρόβλημα μήπως παίξει ρόλο στο ανέβασμα της εργασίας και παρόλο που πιθανώς να λειτουργεί (κατά τ'άλλα ) θα μου βγάζει 0/10.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on October 28, 2016, 16:54:34 pm
Να ρωτησω κατι ακυρο?
Στη σελιδα 9 που ειναι το υποβαθρο της εργασιας τι υποτιθεται οτι ειναι?
Εκει με τη συνομιλια


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: 00128419 on October 28, 2016, 20:01:09 pm
Ενώ  η συνάρτηση RSA-unconvert  λειτουργεί κανονικά και τα αποτελέσματα είναι τα νούμερα που δίνονται στο pdf, όταν βάζω την

(define(RSA-decrypt intlist key)
  (RSA-unconvert-list (intlist->string intlist) key))
μου βγάζει το σφάλμα της εικόνας που έχω στο συννημένο. Έχω προσπαθήσει αρκετή ώρα και δεν μπορώ να βρω τι φταίει. Μήπως μπορείτε να βοηθήσετε;
()

θέλω να λύσω το πρόβλημα μήπως παίξει ρόλο στο ανέβασμα της εργασίας και παρόλο που πιθανώς να λειτουργεί (κατά τ'άλλα ) θα μου βγάζει 0/10.

Λογικά έχεις δώσει λάθος όρισμα στην car, δοκίμασε στις car και cdr που θα χρησιμοποιήσεις να έχεις μόνο λίστες ως ορίσματα. Δες και την convert list στην tester, η συνάρτηση που θα βγάλεις πρέπει να μοιάζει αρκετά σε αυτή.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: thaptali on October 28, 2016, 22:33:46 pm
Λογικά έχεις δώσει λάθος όρισμα στην car, δοκίμασε στις car και cdr που θα χρησιμοποιήσεις να έχεις μόνο λίστες ως ορίσματα. Δες και την convert list στην tester, η συνάρτηση που θα βγάλεις πρέπει να μοιάζει αρκετά σε αυτή.

H συνάρτηση unconvert  δουλεύει άρα δεν υπάρχουν λάθη. Αν δεν ήταν σωστά ορισμένα δεν θα μου έβγαζε τα σωστά νούμερα που λέει στο pdf απλώς όταν βάζω unconvert στην
(define(RSA-decrypt intlist key2)
  (RSA-unconvert-list (intlist->string intlist) key2))
 εκεί βγαίνει το πρόβλημα πράγμα που μου δημιουργεί παραπέρα προβλήματα και παρακάτω..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: potirikolonato on October 28, 2016, 23:22:11 pm
Ενώ  η συνάρτηση RSA-unconvert  λειτουργεί κανονικά και τα αποτελέσματα είναι τα νούμερα που δίνονται στο pdf, όταν βάζω την

(define(RSA-decrypt intlist key)
  (RSA-unconvert-list (intlist->string intlist) key))
μου βγάζει το σφάλμα της εικόνας που έχω στο συννημένο. Έχω προσπαθήσει αρκετή ώρα και δεν μπορώ να βρω τι φταίει. Μήπως μπορείτε να βοηθήσετε;
()

θέλω να λύσω το πρόβλημα μήπως παίξει ρόλο στο ανέβασμα της εργασίας και παρόλο που πιθανώς να λειτουργεί (κατά τ'άλλα ) θα μου βγάζει 0/10.

Νομίζω ότι βγαίνεις εκτός ορίων της λίστας.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: afro on October 29, 2016, 20:24:45 pm
H RSA-unconvert δέχεται ως όρισμα ( intlist) μία λίστα ακεραίων (list of integers) και όχι string.Όμως εσύ στην ουσία προσπαθείς να στείλεις ένα string (μέσω της intlist->string intlist) που είναι μάλλον η αιτία που σου βγάζει error.

δοκίμασε αυτό:

(define (RSA-decrypt intlist key)
(intlist->string (RSA-unconvert-list intlist key)))

το αποτέλεσμα της rsa-unconvert δεν είναι string αλλά λίστα ακεραίων και μέσω της   intlist->string(rsa...) μετατρέπεται σε string και σου εμφανίζει το μήνυμα.

ελπίζω να βοήθησα...



Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: potirikolonato on October 29, 2016, 20:58:35 pm
Στην Άσκηση 2 στο κομμάτι του decryption ο tester μου βγάζει error στην compress.
Όταν όμως ανεβάζω την εργασία παίρνω 5/10.

Παίζει πρόβλημα με την tester ή να διορθώσω εγώ;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: terzmich on October 29, 2016, 21:38:30 pm
Παιδιά στην συνάρτηση (RSA-unconvert-list intlist key), η οποία δέχεται ιδιωτικό key μπορώ με κάποιον τρόπο να πάρω πρόσβαση στο "e" που είναι στοιχείο δημόσιου key?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: thaptali on October 29, 2016, 22:43:08 pm
 Expected: '(29283862 . -166669675)
; (solve-ax+by=1 233987973
;          41111687)
Είιναι λάθος. Σωστό '(-11827825 . 67318298)  (αντί του  '(29283862 . -166669675) που δίνει στα παραδείγματα)
Έκανα τις πράξεις με κομπιουτεράκι..(αν κάνω λάθος φταίει η ώρα!) :D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: 00128419 on October 29, 2016, 23:16:33 pm
Expected: '(29283862 . -166669675)
; (solve-ax+by=1 233987973
;          41111687)
Είιναι λάθος. Σωστό '(-11827825 . 67318298)  (αντί του  '(29283862 . -166669675) που δίνει στα παραδείγματα)
Έκανα τις πράξεις με κομπιουτεράκι..(αν κάνω λάθος φταίει η ώρα!) :D

Και γω το ίδιο βγάζω. Μάλλον έχει λάθος η tester


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Μπουγάτσας on October 30, 2016, 14:22:02 pm
Μπορει καποιος να εξηγησει τη χρηση της modulo στην rsa convert ?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on October 31, 2016, 14:46:56 pm
Μπορει καποιος να εξηγησει τη χρηση της modulo στην rsa convert ?
κανείς;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 01, 2016, 05:45:18 am
Expected: '(29283862 . -166669675)
; (solve-ax+by=1 233987973
;          41111687)
Είιναι λάθος. Σωστό '(-11827825 . 67318298)  (αντί του  '(29283862 . -166669675) που δίνει στα παραδείγματα)
Έκανα τις πράξεις με κομπιουτεράκι..(αν κάνω λάθος φταίει η ώρα!) :D

Ναι έλεος τόσο βγαίνει και μου βγαλε την πιστη αυτό το λάθος της tester... Πέρα βρέχει...


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: fcdimitr on November 01, 2016, 12:54:30 pm
Ναι έλεος τόσο βγαίνει και μου βγαλε την πιστη αυτό το λάθος της tester... Πέρα βρέχει...

Υπάρχουν άπειρες λύσεις στην εξίσωση, η tester δίνει μία

http://mathworld.wolfram.com/DiophantineEquation.html


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Xplicit on November 01, 2016, 13:39:49 pm
Καλησπέρα, απο όσο έχω καταλάβει απο τη θεωρία της άσκησης για να αποκρυπτογραφήσουμε εναν αριθμό απο RSA δεν αρκεί απλά να έχουμε το ζεύγος (n,d) και να κάνουμε το (s^d)mod(n)?  Αυτό κάνει και η rsa-convert απλα για λίστες, αρα αμα δώσουμε στην rsa-convert το key (n,d) θεωρητικά θα μας κάνει αποκρυπτογράφηση? Προφανως και  κάπου είμαι λάθος αλλα δεν μπορώ να καταλάβω που. Έτρεξα και τον έτοιμο κώδικα της rsa-convert και είδα οτι το πρώτο αποτέλεσμα βγαίνει σωστα  :D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: MrRobot on November 01, 2016, 14:17:01 pm
Καλησπέρα, απο όσο έχω καταλάβει απο τη θεωρία της άσκησης για να αποκρυπτογραφήσουμε εναν αριθμό απο RSA δεν αρκεί απλά να έχουμε το ζεύγος (n,d) και να κάνουμε το (s^d)mod(n)?  Αυτό κάνει και η rsa-convert απλα για λίστες, αρα αμα δώσουμε στην rsa-convert το key (n,d) θεωρητικά θα μας κάνει αποκρυπτογράφηση? Προφανως και  κάπου είμαι λάθος αλλα δεν μπορώ να καταλάβω που. Έτρεξα και τον έτοιμο κώδικα της rsa-convert και είδα οτι το πρώτο αποτέλεσμα βγαίνει σωστα  :D

Δες ακριβως τι κάνει ή convert .. αν κρυπτογραφουσε απλά τον κάθε αριθμό θα μπορούσες να τη καλέσεις με το ζεύγος (n,d). Το θέμα είναι ότι κάθε αριθμός της λίστας που παράγει εξαρτάται από τους προηγούμενους .. πρέπει να δεις πως θα χειριστεις αυτο το κομματι


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: terzmich on November 01, 2016, 14:54:07 pm
. . application: not a procedure;
 expected a procedure that can be applied to arguments
  given: "Test message from user 1 to user 2  "
  arguments...: [none]
>

Για την άσκηση 2 στο authenticate-and-decrypt ενώ πιστεύω πως έχω σωστά τον κώδικα μου πετάει αυτό το error.Ξέρει κανείς πότε πετάει τέτοιο error η γλώσσα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Xplicit on November 01, 2016, 15:19:59 pm
Μήπως σου λείπουν παρενθέσεις?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mprizou on November 01, 2016, 21:43:35 pm
πως μπορω να εχω προσβαση στο τελευταιο στοιχειο της λιστας?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: potirikolonato on November 01, 2016, 21:56:06 pm
πως μπορω να εχω προσβαση στο τελευταιο στοιχειο της λιστας?

Code:
(define (last_element l)
  (cond ((null? (cdr l)) (car l))
        (else (last_element (cdr l)))))
Με αυτή την συνάρτηση ίσως..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: MrRobot on November 02, 2016, 02:41:22 am
πως μπορω να εχω προσβαση στο τελευταιο στοιχειο της λιστας?

Επίσης υπάρχει και έτοιμη συνάρτηση
Code:
(last list)


Και τώρα η δική μου απορία, η συνάρτηση unconvert δουλεύει σχεδόν καλά .. επιστρέφει τους σωστούς αριθμούς αλλά σε μορφή που δεν τους δέχεται η decrypt  >:( >:(. Μου βγάζει αυτό το error. Είχε κανείς ίδιο πρόβλημα;
(https://s17.postimg.org/ghck6cwi7/aaaa.jpg) (https://postimg.org/image/rgxrhymx7/)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Μπουγάτσας on November 02, 2016, 11:49:18 am
Εφοσον η RSA-transform δεχεται σαν ορισμα ενα number και ενα key , γιατι οταν την καλει στην RSA-convert της δινει ορισμα  (modulo (- (car l) sum) n), καταλαβαινω γιατι αφαιρει το sum αλλα γιατι modulo n ?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 02, 2016, 15:57:59 pm
Καλησπέρα, απο όσο έχω καταλάβει απο τη θεωρία της άσκησης για να αποκρυπτογραφήσουμε εναν αριθμό απο RSA δεν αρκεί απλά να έχουμε το ζεύγος (n,d) και να κάνουμε το (s^d)mod(n)?  Αυτό κάνει και η rsa-convert απλα για λίστες, αρα αμα δώσουμε στην rsa-convert το key (n,d) θεωρητικά θα μας κάνει αποκρυπτογράφηση? Προφανως και  κάπου είμαι λάθος αλλα δεν μπορώ να καταλάβω που. Έτρεξα και τον έτοιμο κώδικα της rsa-convert και είδα οτι το πρώτο αποτέλεσμα βγαίνει σωστα  :D

Αυτό που λες το κάνει η RSA-transform και όχι η convert! Η convert είναι πιο περίπλοκη και παρακάτω ακολουθεί κι εμένα η απορία μου για την convert.


Εφοσον η RSA-transform δεχεται σαν ορισμα ενα number και ενα key , γιατι οταν την καλει στην RSA-convert της δινει ορισμα  (modulo (- (car l) sum) n), καταλαβαινω γιατι αφαιρει το sum αλλα γιατι modulo n ?

Όταν η rsa-convert καλεί την RSA-transform της δίνει όντως ένα όρισμα number και ένα όρισμα key (φαντάζομαι το public key).
μέσα στην convert δηλαδή καλείται έτσι:
(RSA-transform (modulo (- (car l) sum) n) key)
Εδώ δηλαδή το πρώτο όρισμα number είναι ολόκληρο το (modulo (- (car l) sum) n)
και το δεύτερο όρισμα key είναι προφανώς το key

Τώρα γιατί χρησιμοποιεί και sum και modulo αυτό προέρχεται από την εκφώνηση η οποία λέει:

"κρυπτογραφούμε τον πρώτο αριθμό, τον αφαιρούμε από το δεύτερο αριθμό (modulo n) και κρυπτογραφούμε το αποτέλεσμα, και ούτω καθεξής, έτσι ώστε κάθε αριθμός στην τελική λίστα να εξαρτάται όλους τους προηγούμενους"



Και εδώ είναι και η απορία μου:

Εν τέλει η rsa-convert επιστρέφει ένα pair με δύο αριθμούς εκ των οποίων απ ότι καταλαβαίνω ο πρώτος είναι το transform του προτελευταίου iteration και ο δεύτερος το transform του τελευταίου iteration.
Οπότε όταν θέλουμε να κάνουμε unconvert επομένως την αντίστροφη διαδικασία (σωστα?) κινούμαστε ακριβώς ανάποδα. Δηλαδή πρώτα κάνουμε αποκρυπτογράφηση του τελευτίου αριθμού με το private key το οποίο θα μας επιστρέψει ότι είχε μέσα η κρυπτογράφηση. Άρα (modulo (- (car l) sum) n) σωστα;;;
Το sum το γνωρίζουμε από τον πρώτο αριθμό του pair (δηλαδή το x του προταλευταίου iteration) και θέλουμε να βρούμε το l (δηλαδή το τελευταίο στοιχείο της λίστας όταν είμαστε στην πρώτη επανάληψη της unconvert). Το n το γνωρίζουμε και αυτό αφού είναι το n του public key (η και του private key).
Για να βρούμε λοιπόν το l δεν πρέπει να κάνουμε αντίστροφο modulo με δεδομένα τον αριθμό που έχουμε και το n?
Έχουμε δηλαδή [(- (car l) sum) modulo n] με γνωστό το n και το αποτέλεσμα...
Και αν ναι πώς κάνουμε το αντρίστροφο modulo?? προσπαθώ με την (invert-modulo) αλλά δεν μου δουλεύει;

Εσείς πως το κάνατε;

Mr. Robot δωσε ενα hint αφού το κατάφερες...


Edit: pair ήταν επειδή δοκίμαζα για δυο αριθμούς. Για περισσότερους είναι list. Η ερώτηση παραμένει η ίδια


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: TheoProt on November 02, 2016, 16:32:07 pm
'Οταν τρέχω αρχικά την tester χωρίς να πειράξω τίποτα, δεν μου εμφανίζει κανένα αποτέλεσμα στο παράθυρο, δηλαδή δεν μου εμφανίζει το Result1. Ξέρει κανείς γιατί μπορεί να συμβαίνει αυτό ;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 02, 2016, 17:06:30 pm
'Οταν τρέχω αρχικά την tester χωρίς να πειράξω τίποτα, δεν μου εμφανίζει κανένα αποτέλεσμα στο παράθυρο, δηλαδή δεν μου εμφανίζει το Result1. Ξέρει κανείς γιατί μπορεί να συμβαίνει αυτό ;

Δεν πρέπει να στο εμφανίζει από μόνη της η tester. Τρέχεις, γράφεις εσύ manualy το result1 και τότε πρέπει να σου εμφανίσει:
(209185193 793765302 124842465 169313344 117194397 237972864)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 02, 2016, 18:47:59 pm
Δύο παρατηρήσεις
-Στο pdf ζητάει
(authenticate-and-decrypt result2 test-public-key1 test-private-key2)

ενώ η tester εξετάζει
(authenticate-and-decrypt result3 test-public-key1 test-private-key2)

-Επίσης, στο CMS η προθεσμία του task είναι μέχρι το Σάββατο στις 23:00.

Και μια ερώτηση
Στην decrypt-and-identify ζητάει να επιστρέφει το αποκρυπτογραφημένο μήνυμα. Όμως στην εκφώνηση της εργασίας ζητάει να βρούμε και ποιος έστειλε το μήνυμα. Η tester δεν το εξετάζει αυτό. Αλλα στο CMS το εξετάζει λογικά γιατί μου βγάζει κάποιες εξόδους λάθος. Κάποιος τα φώτα του. :)




Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: 00128419 on November 02, 2016, 19:30:00 pm
Δύο παρατηρήσεις
-Στο pdf ζητάει
(authenticate-and-decrypt result2 test-public-key1 test-private-key2)

ενώ η tester εξετάζει
(authenticate-and-decrypt result3 test-public-key1 test-private-key2)

-Επίσης, στο CMS η προθεσμία του task είναι μέχρι το Σάββατο στις 23:00.

Και μια ερώτηση
Στην decrypt-and-identify ζητάει να επιστρέφει το αποκρυπτογραφημένο μήνυμα. Όμως στην εκφώνηση της εργασίας ζητάει να βρούμε και ποιος έστειλε το μήνυμα. Η tester δεν το εξετάζει αυτό. Αλλα στο CMS το εξετάζει λογικά γιατί μου βγάζει κάποιες εξόδους λάθος. Κάποιος τα φώτα του. :)




Και γω παίρνω πάντα 9/10 στο CMS και μου βγάζει δυο εξόδους λάθος. Την decrypt-and-identify την έβαλα να επιστρέφει μόνο το μήνυμα αφού γίνει έλεγχος για τον κάθε πολιτικό και η tester μου επιστρέφει το σωστό αποτέλεσμα. Δεν έχω ιδέα τι παίζει


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 02, 2016, 19:38:37 pm
Δοκίμασε να την ανεβάσεις ξανά. Εγώ την ανέβασα, πήρα 10 με μία λάθος έξοδο και όταν δοκίμασα κάτι άλλο έπεσα στα 8. Από τότε ανεβάζω την έκδοση με το 10 και μου βγάζει πάντα λάθος δύο εξόδους με βαθμό 9. Δεν έχω ιδέα τι γίνεται και τι πρέπει να διορθώσω


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: terzmich on November 02, 2016, 19:46:53 pm
Για την 7 πρέπει να γράψουμε κάτι? Δικιά μας συνάρτηση ή είναι φιλοσοφικό ερώτημα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 02, 2016, 19:51:12 pm
Για την 7 πρέπει να γράψουμε κάτι? Δικιά μας συνάρτηση ή είναι φιλοσοφικό ερώτημα?

Ή τρολαρεις ή έχεις κατεβάσει λάθος εργασία. 6 είναι τα ερωτήματα


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: terzmich on November 02, 2016, 20:01:47 pm
Δες την φωτο


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mono dakrya on November 02, 2016, 20:12:53 pm
αυτο το ps3.pdf που το βρηκες?δεν υπαρχει κατι τετοιο στο e-learning


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: terzmich on November 02, 2016, 20:15:04 pm
Στο CMS (εκεί που ανεβάζεις την εργασία) αν δείς στο statement έχει ενα "Download task statement" εκείνο είναι.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 02, 2016, 20:58:05 pm
Στο CMS (εκεί που ανεβάζεις την εργασία) αν δείς στο statement έχει ενα "Download task statement" εκείνο είναι.
Σόρρυ, και εγώ απο το e-learning κατέβασα το pdf. Αφού εκεί είναι η εκφώνηση της άσκησης.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Xplicit on November 02, 2016, 22:59:28 pm
Αυτό που λες το κάνει η RSA-transform και όχι η convert! Η convert είναι πιο περίπλοκη και παρακάτω ακολουθεί κι εμένα η απορία μου για την convert.


Όταν η rsa-convert καλεί την RSA-transform της δίνει όντως ένα όρισμα number και ένα όρισμα key (φαντάζομαι το public key).
μέσα στην convert δηλαδή καλείται έτσι:
(RSA-transform (modulo (- (car l) sum) n) key)
Εδώ δηλαδή το πρώτο όρισμα number είναι ολόκληρο το (modulo (- (car l) sum) n)
και το δεύτερο όρισμα key είναι προφανώς το key

Τώρα γιατί χρησιμοποιεί και sum και modulo αυτό προέρχεται από την εκφώνηση η οποία λέει:

"κρυπτογραφούμε τον πρώτο αριθμό, τον αφαιρούμε από το δεύτερο αριθμό (modulo n) και κρυπτογραφούμε το αποτέλεσμα, και ούτω καθεξής, έτσι ώστε κάθε αριθμός στην τελική λίστα να εξαρτάται όλους τους προηγούμενους"



Και εδώ είναι και η απορία μου:

Εν τέλει η rsa-convert επιστρέφει ένα pair με δύο αριθμούς εκ των οποίων απ ότι καταλαβαίνω ο πρώτος είναι το transform του προτελευταίου iteration και ο δεύτερος το transform του τελευταίου iteration.
Οπότε όταν θέλουμε να κάνουμε unconvert επομένως την αντίστροφη διαδικασία (σωστα?) κινούμαστε ακριβώς ανάποδα. Δηλαδή πρώτα κάνουμε αποκρυπτογράφηση του τελευτίου αριθμού με το private key το οποίο θα μας επιστρέψει ότι είχε μέσα η κρυπτογράφηση. Άρα (modulo (- (car l) sum) n) σωστα;;;
Το sum το γνωρίζουμε από τον πρώτο αριθμό του pair (δηλαδή το x του προταλευταίου iteration) και θέλουμε να βρούμε το l (δηλαδή το τελευταίο στοιχείο της λίστας όταν είμαστε στην πρώτη επανάληψη της unconvert). Το n το γνωρίζουμε και αυτό αφού είναι το n του public key (η και του private key).
Για να βρούμε λοιπόν το l δεν πρέπει να κάνουμε αντίστροφο modulo με δεδομένα τον αριθμό που έχουμε και το n?
Έχουμε δηλαδή [(- (car l) sum) modulo n] με γνωστό το n και το αποτέλεσμα...
Και αν ναι πώς κάνουμε το αντρίστροφο modulo?? προσπαθώ με την (invert-modulo) αλλά δεν μου δουλεύει;

Εσείς πως το κάνατε;

Mr. Robot δωσε ενα hint αφού το κατάφερες...


Edit: pair ήταν επειδή δοκίμαζα για δυο αριθμούς. Για περισσότερους είναι list. Η ερώτηση παραμένει η ίδια

Για την πρώτη συνάρτηση δεν ρωτάς? Λοιπόν, μεταξύ τύχης και διαφόρων δοκιμών βρήκα το σωστό. Αμα εφαρμοσεις την rsa-convert με το (n,d) αυτο που παιρνεις ειναι το στοιχειο που σου εδωσε το αποτελεσμα που εχεις, Για το πρωτο ειναι το πρωτο, για αυτο και βγαινει σωστο απο μονο του, για τα επομενα ομως αλλαζει λιγο το πραγμα. Αυτο που σου ερχεται ειναι το (στοιχειο που θελουμε-το προηγουμενο μεταφρασμενο)modn. Αρα το στοιχειο που θελουμε αν "βγαλεις" το mod ειναι y=το προηγουμενο μεταφρασμενο+rsa-transform σωστα? Σε ολο αυτο τωρα εφαρμοσε το modn και βουαλα. Μην ρωτας πολλα για το mod, δεν ξερω να απαντησω, για κατι αλλο ρωτα, τα εγραψα ολα παραστατικα και ισως μπερδευτεις  ;D ;D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Xplicit on November 02, 2016, 23:02:32 pm
Επίσης υπάρχει και έτοιμη συνάρτηση
Code:
(last list)


Και τώρα η δική μου απορία, η συνάρτηση unconvert δουλεύει σχεδόν καλά .. επιστρέφει τους σωστούς αριθμούς αλλά σε μορφή που δεν τους δέχεται η decrypt  >:( >:(. Μου βγάζει αυτό το error. Είχε κανείς ίδιο πρόβλημα;
(https://s17.postimg.org/ghck6cwi7/aaaa.jpg) (https://postimg.org/image/rgxrhymx7/)

Ναι το ειχα και εγω το προβλημα αυτο, για να παρεις τα αποτελεσματα γραφεις κωδικα στην tester3? Αν ναι, μην γραφεις τιποτα και απλα πηγαινε στο section του καθε υποερωτηματος και σβησε το ;
Αμα δεις θα λεει και απο πανω τι περιμενει

Edit: Εγω το ειχα σε επομενη συναρτηση οποτε παιζει να ειναι διαφορετικο το προβλημα, δες τι απαντησα στο παιδι απο πανω για το πως εκανα εγω την unconvert, ισως βοηθησει


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Egkelados on November 02, 2016, 23:20:29 pm
Στο CMS (εκεί που ανεβάζεις την εργασία) αν δείς στο statement έχει ενα "Download task statement" εκείνο είναι.

Δεν έχουμε την 7η άκηση διότι 1ον δεν την ορίζει πουθενά στον tester3.scm 2ον δεν υπάρχει αντίστοιχη συνάρτηση στο ps3.scm για να την υλοποιήσεις. Μάλλον απλά είναι λάθος απροσεξίας μη σε απασχολεί


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mprizou on November 02, 2016, 23:32:39 pm
νομιζω πως εχει ανεβει αλλο pdf χωρις την ασκηση 7(αυτο που χω κατεβασει δεν την εχει)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 03, 2016, 01:26:43 am
Για την πρώτη συνάρτηση δεν ρωτάς? Λοιπόν, μεταξύ τύχης και διαφόρων δοκιμών βρήκα το σωστό. Αμα εφαρμοσεις την rsa-convert με το (n,d) αυτο που παιρνεις ειναι το στοιχειο που σου εδωσε το αποτελεσμα που εχεις, Για το πρωτο ειναι το πρωτο, για αυτο και βγαινει σωστο απο μονο του, για τα επομενα ομως αλλαζει λιγο το πραγμα. Αυτο που σου ερχεται ειναι το (στοιχειο που θελουμε-το προηγουμενο μεταφρασμενο)modn. Αρα το στοιχειο που θελουμε αν "βγαλεις" το mod ειναι y=το προηγουμενο μεταφρασμενο+rsa-transform σωστα? Σε ολο αυτο τωρα εφαρμοσε το modn και βουαλα. Μην ρωτας πολλα για το mod, δεν ξερω να απαντησω, για κατι αλλο ρωτα, τα εγραψα ολα παραστατικα και ισως μπερδευτεις  ;D ;D

Καλό! Θενξ!

Οπότε πάμε παρακάτω τώρα...

Τι εννοεί ο ποιητής με το: (make-signed-message message signature)
Εννοεί απλά πάρε το message πάρε και το signature και ένωσέ τα???
πχ message = (1234 5678)
signature = (1111)
signed-message = (1234 5678 1111)???

Ή κάτι άλλο?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Xplicit on November 03, 2016, 08:14:23 am
Καλό! Θενξ!

Οπότε πάμε παρακάτω τώρα...

Τι εννοεί ο ποιητής με το: (make-signed-message message signature)
Εννοεί απλά πάρε το message πάρε και το signature και ένωσέ τα???
πχ message = (1234 5678)
signature = (1111)
signed-message = (1234 5678 1111)???

Ή κάτι άλλο?

Αυτό,πρόσεχε όμως οτι ενωνεις λιστα με αριθμό, το αποτέλεσμα που έγραψες δεν ειναι το σωστό, εχει μεγαλη σημασια για τη συνέχεια


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Μπουγάτσας on November 03, 2016, 16:12:26 pm
Για την πρώτη συνάρτηση δεν ρωτάς? Λοιπόν, μεταξύ τύχης και διαφόρων δοκιμών βρήκα το σωστό. Αμα εφαρμοσεις την rsa-convert με το (n,d) αυτο που παιρνεις ειναι το στοιχειο που σου εδωσε το αποτελεσμα που εχεις, Για το πρωτο ειναι το πρωτο, για αυτο και βγαινει σωστο απο μονο του, για τα επομενα ομως αλλαζει λιγο το πραγμα. Αυτο που σου ερχεται ειναι το (στοιχειο που θελουμε-το προηγουμενο μεταφρασμενο)modn. Αρα το στοιχειο που θελουμε αν "βγαλεις" το mod ειναι y=το προηγουμενο μεταφρασμενο+rsa-transform σωστα? Σε ολο αυτο τωρα εφαρμοσε το modn και βουαλα. Μην ρωτας πολλα για το mod, δεν ξερω να απαντησω, για κατι αλλο ρωτα, τα εγραψα ολα παραστατικα και ισως μπερδευτεις  ;D ;D
Ρώτησα τον φλώρο για το modn γιατι είχα την ίδια απορία και είπε οτι χρησιμοποιείται γιατι αλλιώς θα ξέφευγαν πολυ τα αθροίσματα και θα είχαμε προβλημα(κατι τετοιο τέλος παντων). Και παλι δεν εχω καταλαβει πλήρως πάντως αλλα γιολο ::)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Souras on November 03, 2016, 16:47:43 pm
Μπορεί κάποιος να δώσει φώτα για το πώς γίνεται η κρυπτογράφηση της μη κρυπτογραφημένης υπογραφής? Η compress παίρνει σαν ορισμα το κρυπτογραφημένο μήνυμα και δημιουργεί μια μη κρυπτογραφημένη υπογραφή. Πως θα κρυπτογραφησουμε αυτήν την υπογραφή με το ιδιωτικό του αποστολέα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: TheoProt on November 03, 2016, 17:14:16 pm
Για ποιο λόγο όταν ανεβάζω το αρχείο η βαθμολογία είναι 0/10 ενώ όταν τρέχω την tester με τις εντολές που πρέπει βγαίνουν τα ζητούμενα αποτελέσματα ;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: afro on November 03, 2016, 18:56:21 pm
Μπορεί κάποιος να δώσει φώτα για το πώς γίνεται η κρυπτογράφηση της μη κρυπτογραφημένης υπογραφής? Η compress παίρνει σαν ορισμα το κρυπτογραφημένο μήνυμα και δημιουργεί μια μη κρυπτογραφημένη υπογραφή. Πως θα κρυπτογραφησουμε αυτήν την υπογραφή με το ιδιωτικό του αποστολέα?
Θα την κρυπτογραφήσεις καλώντας την  rsa-transform με ορίσματα το compress( κρυπτογραφημένο μήνυμα) και το s-private key.
H rsa-transform  στέλνει έναν αριθμό για κρυπτογράφηση,την χρησιμοποιεί και η rsa-convert για να στείλει ένα ένα τα στοιχεία της λίστας..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: iGNUcious on November 03, 2016, 18:57:52 pm
Έχω κολήσει στο Α ερώτημα... Γράφω την υλοποίηση όπως νομίζω πως είναι και παίρνω ένα πολύ περίεργο αποτέλεσμα..

Quote
(RSA-decrypt result1 test-private-key1)
"This{)7&\u0003<a7k\u0003st messaB&r%\u0003"

Κάποιες συλλαβές τις βγάζει σωστά ενώ κάποιες άλλες όχι..  :o μα πως γένεν αυτό ; έχει κανένας παρόμοιο πρόβλημα  :D :D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: afro on November 03, 2016, 19:15:56 pm
Έχω κολήσει στο Α ερώτημα... Γράφω την υλοποίηση όπως νομίζω πως είναι και παίρνω ένα πολύ περίεργο αποτέλεσμα..

Κάποιες συλλαβές τις βγάζει σωστά ενώ κάποιες άλλες όχι..  :o μα πως γένεν αυτό ; έχει κανένας παρόμοιο πρόβλημα  :D :D
Λογικά η rsa-unconvert σου έχει κάποιο πρόβλημα και για αυτό σου δίνει αυτό το αποτέλεσμα.
Αν τρέξεις αυτό
(RSA-unconvert-list result1 test-private-key1) σου δίνει  (242906196 69006496 213717089 229128819 205322725 67875559)?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Μπουγάτσας on November 03, 2016, 20:29:35 pm
Έχω κολήσει στο Α ερώτημα... Γράφω την υλοποίηση όπως νομίζω πως είναι και παίρνω ένα πολύ περίεργο αποτέλεσμα..

Κάποιες συλλαβές τις βγάζει σωστά ενώ κάποιες άλλες όχι..  :o μα πως γένεν αυτό ; έχει κανένας παρόμοιο πρόβλημα  :D :D

Ειχα το ιδιο προβλημα, οταν εμφανιζεις το x στο cons δοκιμασε να εμφανισεις το (modulo x n) 8))


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 03, 2016, 20:41:38 pm
Ειχα το ιδιο προβλημα, οταν εμφανιζεις το x στο cons δοκιμασε να εμφανισεις το (modulo x n) 8))


<3 το ιδιο προβλημα ειχα  :D

Ωστοσο μπορεις να διαφωτησεις πως το σκεφτηκες γιατι δεν μπορω να καταλαβω :/


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 03, 2016, 21:39:18 pm
Λοιπόν. Στο crack-rsa έχω θέμα...
Σκέφτηκα πρώτα να βρίσκω μια λίστα με όλους τους πρώτους αριθμούς που είναι μικρότεροι από το n του public-key που μας δίνεται. Στη συνέχεια να δοκιμάζω έναν έναν όλους τους συνδυασμούς μέχρι να βρώ αυτόν που δίνει το n και στο τέλος έχοντας πλέον το p και q βρίσκω το d (private-key).

Για μικρούς αριθμούς λειτουργεί μια χαρά αλλά για αυτούς που έχει η άσκηση θέλει αρκετή ώρα. Το πρόβλημα είναι ότι όταν πάω να την ανεβάσω στο server κάνει time out οπότε δεν παίρνω βαθμό...

Σκέφτηκα να βάλω από πριν μια λίστα με έτοιμους τους πρώτους αριθμούς μέχρι πχ το 5000 για να γλιτώσω το χρόνο της εύρεσης των πρώτων αριθμών αλλά έχω θέμα στην υλοποίηση οπότε είπα να ρωτήσω πρώτα πριν χάσω κι άλλο χρόνο.

Εσείς πως το λύσατε; Καμια καλή ιδέα κανένας;


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 03, 2016, 21:41:52 pm
Λοιπόν. Στο crack-rsa έχω θέμα...
Σκέφτηκα πρώτα να βρίσκω μια λίστα με όλους τους πρώτους αριθμούς που είναι μικρότεροι από το n του public-key που μας δίνεται. Στη συνέχεια να δοκιμάζω έναν έναν όλους τους συνδυασμούς μέχρι να βρώ αυτόν που δίνει το n και στο τέλος έχοντας πλέον το p και q βρίσκω το d (private-key).

Για μικρούς αριθμούς λειτουργεί μια χαρά αλλά για αυτούς που έχει η άσκηση θέλει αρκετή ώρα. Το πρόβλημα είναι ότι όταν πάω να την ανεβάσω στο server κάνει time out οπότε δεν παίρνω βαθμό...

Σκέφτηκα να βάλω από πριν μια λίστα με έτοιμους τους πρώτους αριθμούς μέχρι πχ το 5000 για να γλιτώσω το χρόνο της εύρεσης των πρώτων αριθμών αλλά έχω θέμα στην υλοποίηση οπότε είπα να ρωτήσω πρώτα πριν χάσω κι άλλο χρόνο.

Εσείς πως το λύσατε; Καμια καλή ιδέα κανένας;

εγω χρησιμοποιω την smallest-divisor , για να βρω το p κοκ απλα στην tester τρεχει κι σωστα , ενω στο συστημα με μηδενιζει  :'(


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mprizou on November 03, 2016, 22:02:00 pm
συμφωνα με την εκφωνηση τη smallest-divisor χρησιμοποιουμε και βγαινει πιο απλα


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: filip on November 04, 2016, 00:24:17 am
συμφωνα με την εκφωνηση τη smallest-divisor χρησιμοποιουμε και βγαινει πιο απλα
εγω χρησιμοποιω την smallest-divisor , για να βρω το p κοκ απλα στην tester τρεχει κι σωστα , ενω στο συστημα με μηδενιζει  :'(

Ναι όντως το λέει η εκφώνηση.  :-[
Αλλά τελικά βγήκε και με την έτοιμη λίστα. Χρειάστηκε να βάλω μέχρι το 50000 για να λειτουργήσει. Ξέρω δεν είναι και πολύ σωστή λύση αλλά αφού δουλεύει ολα καλά.

Ελπίζω οι επόμενες εργασίες να μην είναι τόσο μεγάλες.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 04, 2016, 12:55:35 pm
Στη δευτερη ασκηση στη δομη απλα να τα ενωσουμε δεν θελει?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mprizou on November 04, 2016, 13:07:48 pm
ναι  :)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on November 04, 2016, 13:28:27 pm
Στην 6 που θέλει να πλαστογραφήσουμε το μήνυμα, μπορεί κάποιος να εξηγήσει τι ακριβώς θέλει να κάνουμε? Λέει ότι η συνάρτηση επιστρέφει ένα signed-message...(κάτι δεν έχω καταλάβει :P)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 13:38:15 pm
Στην 6 που θέλει να πλαστογραφήσουμε το μήνυμα, μπορεί κάποιος να εξηγήσει τι ακριβώς θέλει να κάνουμε? Λέει ότι η συνάρτηση επιστρέφει ένα signed-message...(κάτι δεν έχω καταλάβει :P)

Η συνάρτηση σου θα μοιάζει πάρα πολύ με μια προηγούμενη,  αλλά από την στιγμή που σου λείπει το  private key ,πρέπει να βρεις τρόπο να το "εντάξεις "στον κώδικα


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on November 04, 2016, 13:44:14 pm
Η συνάρτηση σου θα μοιάζει πάρα πολύ με μια προηγούμενη,  αλλά από την στιγμή που σου λείπει το  private key ,πρέπει να βρεις τρόπο να το "εντάξεις "στον κώδικα

Ναι κατι τέτοιο κατάλαβα! Απλά όταν την ανέβασα με μηδένιζε το σύστημα...ενώ χωρίς αυτήν έπαιρνα 8...κατι για να το τεστάρουμε στην tester?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 13:46:32 pm
Ναι κατι τέτοιο κατάλαβα! Απλά όταν την ανέβασα με μηδένιζε το σύστημα...ενώ χωρίς αυτήν έπαιρνα 8...κατι για να το τεστάρουμε στην tester?

στην τεστερ υπάρχουν κάτι εντολές (προς το τέλος)  οι οποίες έχουν ένα ερωτηματικό από μπροστά... Η τελευταία εντολή αναφαίρεται στην forged ,σβήσε το ερωτηματικό κι πάτα run


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on November 04, 2016, 13:50:48 pm
στην τεστερ υπάρχουν κάτι εντολές (προς το τέλος)  οι οποίες έχουν ένα ερωτηματικό από μπροστά... Η τελευταία εντολή αναφαίρεται στην forged ,σβήσε το ερωτηματικό κι πάτα run

Xαχα, ωραίος! Δεν τις είχα δει και καθόμουν κ έγραφα εγώ τις εντολές κάθε φορά!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 14:10:15 pm
Για ποιο λόγο όταν ανεβάζω το αρχείο η βαθμολογία είναι 0/10 ενώ όταν τρέχω την tester με τις εντολές που πρέπει βγαίνουν τα ζητούμενα αποτελέσματα ;

Είχα το ίδιο πρόβλημα χθες, δεν ξέρω αν τελικά τα κατάφερες να το διορθώσεις,  αλλά σε μένα έφταιγε το γεγονός ότι είχε γραφτεί ένα 6 στον κώδικα μου (συγκεκριμένα στην γραμμή 1 , κι έτσι ο  grader με μηδένισε... Μετά από κάνα 2 ωρο το βρήκα και τελικά λύθηκε!  άρα σε συμβουλεύω να ελέγξεις μέχρι και τη πιο μικρή λεπτομέρεια

Xαχα, ωραίος! Δεν τις είχα δει και καθόμουν κ έγραφα εγώ τις εντολές κάθε φορά!

τίποτα!   ;)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on November 04, 2016, 14:18:26 pm
Έχει πάρει κανένας 10/10? Γιατί και σε εμένα μου βγάζει 9/10 (με τις 2 εξόδους λάθος, που έλεγε και ένα παιδί παραπάνω)


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 14:23:01 pm

<3 το ιδιο προβλημα ειχα  :D

Ωστοσο μπορεις να διαφωτησεις πως το σκεφτηκες γιατι δεν μπορω να καταλαβω :/

Όταν χρησιμοποιείς την convert οι αριθμοί γίνονται scale από 0 έως n-1 λόγω της mod n
άρα όταν το χρησιμοποίησες εσύ στην unconvert ,ουσιαστικά είχες τον ίδιο αριθμό χωρίς το scale ...Οποτε για αυτό βάζεις mod n

τουλάχιστον έτσι το σκέφτηκα εγώ


Έχει πάρει κανένας 10/10? Γιατί και σε εμένα μου βγάζει 9/10 (με τις 2 εξόδους λάθος, που έλεγε και ένα παιδί παραπάνω)

 -περισσότερη- πληροφορία?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: stefkar89 on November 04, 2016, 14:27:14 pm
Στον server εκεί που δείχνει τα details έχει 2 Outputs που είναι "isn't correct"...Από την tester όλα καλά όμως..


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 14:36:38 pm
Στον server εκεί που δείχνει τα details έχει 2 Outputs που είναι "isn't correct"...Από την tester όλα καλά όμως..

αυτό σημαίνει ότι κάποιο σημείου του κώδικα σου,  δεν καλύπτει όλες τις πιθανές περιπτώσεις


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 04, 2016, 15:20:34 pm
Έχει πάρει κανένας 10/10? Γιατί και σε εμένα μου βγάζει 9/10 (με τις 2 εξόδους λάθος, που έλεγε και ένα παιδί παραπάνω)

Αν σου βγάζει λάθος την 12η και 15η από το τέλος τότε ανέβασε ξανά το αρχείο σου, χωρίς καμιά αλλαγή. Κάποια στιγμή θα μείνει μόνο η 15η από το τέλος λάθος και θα πάρεις 10/10. (Ετυχε να παρω 9/10 με το ίδιο αρχείο με τη 12η και 13η από το τέλος λάθος, αλλά πάντα εκεί κοντά ήταν οι λαθος έξοδοι)

Η tester δεν μου βγάζει κανένα λάθος, και δεν μπορώ να καταλάβω τι ζητάει η tester του cms.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 15:36:45 pm
Αν σου βγάζει λάθος την 12η και 15η από το τέλος τότε ανέβασε ξανά το αρχείο σου, χωρίς καμιά αλλαγή. Κάποια στιγμή θα μείνει μόνο η 15η από το τέλος λάθος και θα πάρεις 10/10. (Ετυχε να παρω 9/10 με το ίδιο αρχείο με τη 12η και 13η από το τέλος λάθος, αλλά πάντα εκεί κοντά ήταν οι λαθος έξοδοι)

Η tester δεν μου βγάζει κανένα λάθος, και δεν μπορώ να καταλάβω τι ζητάει η tester του cms.

ο grader κάθε φορά κάνει με διαφορετικά νούμερα έλεγχο και επίσης το 10 με μια λάθος έξοδο είναι το λεγόμενο "κίτρινο δεκάρι " που ουσιαστικά είναι 9.5 (πληροφοριακά  :P )


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: Panthera Leo on November 04, 2016, 15:46:37 pm
Το κατάλαβα ότι χρησιμοποιεί άλλα νούμερα. Το θέμα είναι ότι και η tester που κατεβάζουμε δεν χρησιμοποιεί τα ίδια νούμερα, με το generate-rsa-key-pair, αλλά ό,τι αποτελέσματα ζητάει να ελέγξουμε μου βγαίνουν σωστά. Οπότε δεν καταλαβαίνω τι πρέπει να διορθώσω για να δουλεύει τέλεια και στο cms.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: mixalismilo on November 04, 2016, 16:32:30 pm
Για την πρώτη συνάρτηση δεν ρωτάς? Λοιπόν, μεταξύ τύχης και διαφόρων δοκιμών βρήκα το σωστό. Αμα εφαρμοσεις την rsa-convert με το (n,d) αυτο που παιρνεις ειναι το στοιχειο που σου εδωσε το αποτελεσμα που εχεις, Για το πρωτο ειναι το πρωτο, για αυτο και βγαινει σωστο απο μονο του, για τα επομενα ομως αλλαζει λιγο το πραγμα. Αυτο που σου ερχεται ειναι το (στοιχειο που θελουμε-το προηγουμενο μεταφρασμενο)modn. Αρα το στοιχειο που θελουμε αν "βγαλεις" το mod ειναι y=το προηγουμενο μεταφρασμενο+rsa-transform σωστα? Σε ολο αυτο τωρα εφαρμοσε το modn και βουαλα. Μην ρωτας πολλα για το mod, δεν ξερω να απαντησω, για κατι αλλο ρωτα, τα εγραψα ολα παραστατικα και ισως μπερδευτεις  ;D ;D

(let ((x (+ (modulo (RSA-transform (car l) key ) n) sum)))

Αυτο εννοεις?? Δεν βγαζει σωστο αποτελεσμα!!!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: JasonTheModel on November 04, 2016, 17:10:17 pm
(let ((x (+ (modulo (RSA-transform (car l) key ) n) sum)))

Αυτο εννοεις?? Δεν βγαζει σωστο αποτελεσμα!!!

δοκιμασε αυτο να βαλεις το + sum μεσα στο modulo.εμενα δουλεψε
((x (modulo (+ sum (RSA-transform (car l) key)) n)))


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 04, 2016, 17:14:35 pm
Το κατάλαβα ότι χρησιμοποιεί άλλα νούμερα. Το θέμα είναι ότι και η tester που κατεβάζουμε δεν χρησιμοποιεί τα ίδια νούμερα, με το generate-rsa-key-pair, αλλά ό,τι αποτελέσματα ζητάει να ελέγξουμε μου βγαίνουν σωστά. Οπότε δεν καταλαβαίνω τι πρέπει να διορθώσω για να δουλεύει τέλεια και στο cms.

η tester κάνει με στάνταρ νούμερα ελέγχους


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: opet on November 04, 2016, 18:39:48 pm
Ρε και σε μένα,ενώ τo result1 είναι σωστό(στο 2 έχω αποκλίσεις απ το pdf),σαν αποτέλεσμα μου βγάζει 0/10.Εκτός από λάθος στον κώδικα είχε κανένας άλλος αντίστοιχο πρόβλημα;Έχω και την εικόνα απ τα details του 0/10 μου.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: spoun on November 04, 2016, 19:28:35 pm
Ξέρει κανείς αν υπάρχει υπάρχει έτοιμη συνάρτηση για την αντιστροφή του mod ?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: iGNUcious on November 04, 2016, 19:45:54 pm
Ρε και σε μένα,ενώ τo result1 είναι σωστό(στο 2 έχω αποκλίσεις απ το pdf),σαν αποτέλεσμα μου βγάζει 0/10.Εκτός από λάθος στον κώδικα είχε κανένας άλλος αντίστοιχο πρόβλημα;Έχω και την εικόνα απ τα details του 0/10 μου.
Και γω το ίδιο θέμα μέχρι που έκανα και την (decrypt-and-identify) και μου έβαλε 5/10... Ότι να ναι είναι το σύστημα σε αυτήν την εργασία.. Αν σου βγαίνουν σωστά μη μασάς προχώρα.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: gkouziik on November 05, 2016, 21:28:42 pm
στην decrypt-and-identify πως κανετε τον επαναλυπτικο βρογχο ωστε να τσεκαρει ολα τα public key?? εγω τα περασα σε μια λιστα αλλα δεν μπορω να την διαπερνω για καποιο λογο σε καθε επαναληψη


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: thanosthehuge on November 06, 2016, 11:37:03 am
Μπορεί κάποιος να βοηθήσει για το πως ακριβώς να πάω "ανάποδα" στη λίστα των ακεραίων μου? Δηλαδή να ξεκινάω από το τελευταίο στοιχείο και να φτάνω στο πρώτο? Για το πρώτο ερώτημα μιλάω πάντα  :-\ :-\


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 06, 2016, 13:00:56 pm
Παιδια ενω ειμαι σιγουρη οτι εχω σωστη την crack-rsa (με βαση αυτα που λεει το ps3.pdf) το d μου βγαινει αρνητικο....
Ειναι λογικο????


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 06, 2016, 13:19:40 pm
Μπορεί κάποιος να βοηθήσει για το πως ακριβώς να πάω "ανάποδα" στη λίστα των ακεραίων μου? Δηλαδή να ξεκινάω από το τελευταίο στοιχείο και να φτάνω στο πρώτο? Για το πρώτο ερώτημα μιλάω πάντα  :-\ :-\

αν κοιταξεις λιγο πιο πισω στο θεμα , σχεδον εχει γραφτει κι η λυση και εχουν πει κι αυτο που ρωτας ..επισης , να ξερεις οτι δεν χρειαζεται να ξεκινησεις απο το τελος  ;)

Παιδια ενω ειμαι σιγουρη οτι εχω σωστη την crack-rsa (με βαση αυτα που λεει το ps3.pdf) το d μου βγαινει αρνητικο....
Ειναι λογικο????

χρησιμοποιεις την solve?!


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 06, 2016, 13:24:03 pm
χρησιμοποιεις την solve?!
ναι....
αρα λες αυτη να εχει το προβλημα?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 06, 2016, 13:32:23 pm
ναι....
αρα λες αυτη να εχει το προβλημα?

προσωπικα , δεν καταφερα να μορφοποιησω την solve ετσι ωστε να φυγει αυτος ο αρνητικος αριθμος , ξερω ομως οτι υπαρχει τροπος γιατι ξερω ατομα που την ελυσαν ετσι!

Αρα αν θες παιδευεσαι μεχρι να το βρεις , ή ψαχνεις μια εναλλακτικη λυση η οποια δεν εμπεριεχει καθολου την solve  ;) και χρησιμοποιει μια αλλη ετοιμη συναρτηση της tester που αναφαιρεται στο modulo.


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 06, 2016, 13:41:08 pm
προσωπικα , δεν καταφερα να μορφοποιησω την solve ετσι ωστε να φυγει αυτος ο αρνητικος αριθμος , ξερω ομως οτι υπαρχει τροπος γιατι ξερω ατομα που την ελυσαν ετσι!

Αρα αν θες παιδευεσαι μεχρι να το βρεις , ή ψαχνεις μια εναλλακτικη λυση η οποια δεν εμπεριεχει καθολου την solve  ;) και χρησιμοποιει μια αλλη ετοιμη συναρτηση της tester που αναφαιρεται στο modulo.

και με αυτη μου βγαζει λαθος αποτελεσματα.... θετικο μεν d αλλα λαθος και το d και το μνμ .....


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 06, 2016, 13:50:21 pm
και με αυτη μου βγαζει λαθος αποτελεσματα.... θετικο μεν d αλλα λαθος και το d και το μνμ .....

αν βαζεις τα σωστα ορισματα :/ δεν βλεπω καποιον λογο να μην τρεχει


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: NaVi.Mitsos on November 06, 2016, 15:47:18 pm
στην decrypt-and-identify πως κανετε τον επαναλυπτικο βρογχο ωστε να τσεκαρει ολα τα public key?? εγω τα περασα σε μια λιστα αλλα δεν μπορω να την διαπερνω για καποιο λογο σε καθε επαναληψη

μια βοήθεια εδώ  αν γίνεται


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: leukosaraphs! on November 06, 2016, 16:04:59 pm
μια βοήθεια εδώ  αν γίνεται

εγω απλα ελεγξα ενα ενα τα κλειδια για να δω ποιος ειναι :Ρ κοινο μυστικο ειναι οτι το συγκεκριμενο υποερωτημα δεν βαθμολογειται απο τον grader  8))


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: NaVi.Mitsos on November 06, 2016, 16:39:42 pm
εγω απλα ελεγξα ενα ενα τα κλειδια για να δω ποιος ειναι :Ρ κοινο μυστικο ειναι οτι το συγκεκριμενο υποερωτημα δεν βαθμολογειται απο τον grader  8))
μαλισταααα  :) :) :) :) θενκς


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: alekosts on November 06, 2016, 20:35:32 pm
μηπως ξερει κανεις οι εξοδοι 9-10-11-13 με ποια συναρτηση σχετιζονται?


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: RFed the King on November 06, 2016, 21:00:28 pm
αν βαζεις τα σωστα ορισματα :/ δεν βλεπω καποιον λογο να μην τρεχει

Νταξει αυτο το ποστ επρεπε να το προσεξω πριν τα παρατησω :D
Ειχα βαλει αναποδα τα ορισματα :Ρ
THANKS  :D


Title: Re: [Προγραμματιστικές Τεχνικές] Task 3 - Κυριακή 6/11 11:55 μμ
Post by: dimikara on November 06, 2016, 22:21:28 pm
Ρε παιδιά και εγώ είχα 8/10 μέχρι που έγραψα το τελευταίο..... Έχει κανείς κανά insight?

εδιτ: το διόρθωσα και παίρνω 10/10 με μια λάθος έξοδο