Please use this identifier to cite or link to this item: http://dspace.lib.uom.gr/handle/2159/15100
Full metadata record
DC FieldValueLanguage
dc.contributor.advisorΜαργαρίτης, Κωνσταντίνοςel
dc.contributor.authorΣαλονικίδης, Διονύσιοςel
dc.date.accessioned2012-06-28T12:48:42Z-
dc.date.available2012-06-28T12:48:42Z-
dc.date.issued2012el
dc.identifier.urihttp://dspace.lib.uom.gr/handle/2159/15100-
dc.descriptionΔιπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2012.el
dc.description.abstractΗ συγκεκριμένη έρευνα επιχειρεί να συγκρίνει την απόδοση εφαρμογών εύρεσης κωδικού κρυπτογραφημένου με MD5, χρησιμοποιώντας διεπιφάνειες παράλληλου προγραμματισμού. Συγκεκριμένα μελετούνται τα παράλληλα APIs (Application Programming Interfaces - APIs) OpenMP (Open Multi-Processing), TPL (Task Parallel Library) και CUDA (Compute Unified Device Architecture). Για την υλοποίηση των προγραμμάτων χρησιμοποιήθηκαν τρία περιβάλλοντα ανάπτυξης εφαρμογών (Integrated Development Environments - IDEs) με διαφορετικές γλώσσες προγραμματισμού: Code Blocks με προγραμματισμό σε C, Visual Studio με προγραμματισμό σε C# και Visual Studio με προγραμματισμό σε CUDA C, αντίστοιχα. Οι υλοποιήσεις με OpenMP και TPL αφορούν τον παραλληλισμό με χρήση της CPU (Central Processing Unit), ενώ αυτή με CUDA τον παραλληλισμό με χρήση της GPU (Graphics Processing Unit). Οι εφαρμογές που χρησιμοποιούν την CPU πραγματοποιήθηκαν με δύο διαφορετικές υλοποιήσεις: την απλή εκτέλεση χωρίς παραλληλισμό και την υλοποίηση με παράλληλο API. Τα προγράμματα που χρησιμοποιούν την GPU πραγματοποιήθηκαν με δύο διαφορετικές παράλληλες υλοποιήσεις: η πρώτη για εύρεση της θέσης του κωδικού από την CPU και η δεύτερη για εύρεση της θέσης του κωδικού από την GPU. Για να υπάρχει άμεση σύγκριση των αποτελεσμάτων ο βασικός κορμός υλοποίησης είναι ο ίδιος για όλες τις εφαρμογές. Αρχικά ο χρήστης εισάγει έναν κωδικό σε αλφαριθμητική μορφή, μέγιστου μήκους 8 χαρακτήρων. Στη συνέχεια ο κωδικός αυτός κωδικοποιείται με MD5 (MD5 Hash) και κατόπιν το πρόγραμμα κάνοντας διαδοχικούς συνδυασμούς με την μέθοδο Brute Force προσπαθεί να τον βρει. Πριν την εκτέλεση της διαδικασίας Brute Force το πρόγραμμα εκτελεί έναν έλεγχο για ένα λεπτό από το οποίο συλλέγει τον χρόνο εκτέλεσης της συγκεκριμένης διαδικασίας. Η διαδικασία που χρησιμοποιείται στον έλεγχο αυτό είναι ίδια με αυτή που χρησιμοποιείται στη μέθοδο Brute Force. Με βάση τον χρόνο που μετρήθηκε υπολογίζεται ο μέγιστος χρόνος ολοκλήρωσης της μετατροπής όλων των απαιτούμενων συνδυασμών για n χαρακτήρες κάθε φορά, π.χ. ο χρόνος ολοκλήρωσης όλων των συνδυασμών για 2 χαρακτήρες, για 3 χαρακτήρες κ.λ.π. Στο τέλος εμφανίζονται τα τελικά αποτελέσματα που αναφέρουν τον κωδικό σε αλφαριθμητική μορφή, εφόσον βρεθεί, ή κατάλληλο μήνυμα, εφόσον δεν βρεθεί. Επίσης εμφανίζονται οι συνολικοί χρόνοι εκτέλεσης, ο αριθμός των συνδυασμών που ελέγχθηκαν, ο μέγιστος αριθμός συνδυασμών ανά δευτερόλεπτο που επιτεύχθηκε κ.λ.π. Σκοπός της έρευνας είναι να γίνει σύγκριση των παράλληλων υλοποιήσεων όχι μόνο ως προς την απόδοσή τους, αλλά και ως προς την ευχρηστία στον προγραμματισμό τους. Στόχος της έρευνας είναι να βρεθούν οι καλύτερες υλοποιήσεις των παράλληλων APIs ως προς τις μεθόδους προγραμματισμού τους, ώστε να επιτευχθεί σε κάθε περίπτωση η μέγιστη και καλύτερη αξιοποίηση της χρήσης της CPU ή της GPU. Για τις απλές υλοποιήσεις, χωρίς παραλληλισμό το πρόγραμμα παράγει διαδοχικούς συνδυασμούς χαρακτήρων τους οποίους θεωρεί ως έναν κωδικό που στη συνέχεια τον μετατρέπει σε MD5 Hash. Στο τέλος συγκρίνει τον MD5 κωδικό που παρήγαγε με τον αρχικό κώδικα που του δόθηκε. Αν είναι ίδιοι, θεωρεί ότι τον βρήκε, διαφορετικά συνεχίζει στον επόμενο. Δηλαδή η όλη διαδικασία ακολουθεί το σειριακό μοντέλο. Στις παράλληλες υλοποιήσεις οι συνδυασμοί που παράγονται μετατρέπονται σε MD5 Hash όχι σειριακά, αλλά παράλληλα σε ομάδες των Ν στοιχείων ανάλογα με τις υλοποιήσεις του κάθε API. Τα αποτελέσματα των παραπάνω υλοποιήσεων έδειξαν ότι η ταχύτερη παράλληλη διαδικασία σε επίπεδο CPU ήταν αυτή με το OpenMP. Οι μετρήσεις έδειξαν ότι απείχαν αρκετά από την υλοποίηση με το TPL. Στο θέμα του προγραμματισμού το OpenMP ήταν το ευκολότερο με την καλύτερη τεκμηρίωση και αυτό οφείλεται στο ότι χρησιμοποιείται αρκετά χρόνια και λόγω του ανοικτού κώδικά του έχει ωριμάσει περισσότερο από τα υπόλοιπα. Το TPL είναι κλειστό στον κώδικά του και υφίσταται πολλούς περιορισμούς στον προγραμματισμό του. Ο βασικότερος λόγος των περιορισμών αυτών είναι να διατηρηθεί από την Microsoft (η οποία αναπτύσσει το TPL) η μεγαλύτερη ασφάλεια στο λειτουργικό της σύστημα.el
dc.format.extent235el
dc.format.extent1185007 bytes-
dc.format.extent2781733 bytes-
dc.format.extent11685655 bytes-
dc.format.mimetypeapplication/pdf-
dc.format.mimetypeapplication/pdf-
dc.format.mimetypeapplication/winzip-
dc.language.isoelen
dc.publisherΠανεπιστήμιο Μακεδονίας Οικονομικών και Κοινωνικών Επιστημών.el
dc.subjectΑλγόριθμος MD5el
dc.subjectΤεχνική Brute Forceel
dc.subjectΠαράλληλες διεπιφάνειες προγραμματισμού εφαρμογώνel
dc.subjectΠαράλληλος προγραμματισμόςel
dc.subjectOpenMPen
dc.subjectTPLen
dc.subjectCUDAen
dc.titleΣυγκριτική μελέτη διεπιφανειών παράλληλου προγραμματισμού σε εφαρμογές εύρεσης κωδικού κρυπτογραφημένου με αλγόριθμο MD5.el
dc.typeElectronic Thesis or Dissertationen
dc.typeTexten
dc.contributor.departmentΠρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης στην Εφαρμοσμένη Πληροφορικήel
Appears in Collections:ΠΜΣ Εφαρμοσμένης Πληροφορικής (M)

Files in This Item:
File Description SizeFormat 
SalonikidisDionysiosMsc2012extra.zipΚώδικας11.41 MBzipView/Open
SalonikidisDionysiosMsc2012present.pdfΠαρουσίαση1.16 MBAdobe PDFView/Open
SalonikidisDionysiosMsc2012.pdf2.73 MBAdobe PDFView/Open


This item is licensed under a Creative Commons License Creative Commons