Παρακαλώ χρησιμοποιήστε αυτό το αναγνωριστικό για να παραπέμψετε ή να δημιουργήσετε σύνδεσμο προς αυτό το τεκμήριο: http://dspace.lib.uom.gr/handle/2159/15100
Συγγραφέας: Σαλονικίδης, Διονύσιος
Τίτλος: Συγκριτική μελέτη διεπιφανειών παράλληλου προγραμματισμού σε εφαρμογές εύρεσης κωδικού κρυπτογραφημένου με αλγόριθμο MD5.
Ημερομηνία Έκδοσης: 2012
Τμήμα: Πρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης στην Εφαρμοσμένη Πληροφορική
Επόπτης Καθηγητής: Μαργαρίτης, Κωνσταντίνος
Περίληψη: Η συγκεκριμένη έρευνα επιχειρεί να συγκρίνει την απόδοση εφαρμογών εύρεσης κωδικού κρυπτογραφημένου με 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) η μεγαλύτερη ασφάλεια στο λειτουργικό της σύστημα.
Λέξεις Κλειδιά: Αλγόριθμος MD5
Τεχνική Brute Force
Παράλληλες διεπιφάνειες προγραμματισμού εφαρμογών
Παράλληλος προγραμματισμός
OpenMP
TPL
CUDA
Πληροφορίες: Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2012.
Εμφανίζεται στις Συλλογές:Π.Μ.Σ. στην Εφαρμοσμένη Πληροφορική (M)

Αρχεία σε αυτό το Τεκμήριο:
Αρχείο Περιγραφή ΜέγεθοςΜορφότυπος 
SalonikidisDionysiosMsc2012extra.zipΚώδικας11.41 MBzipΠροβολή/Ανοιγμα
SalonikidisDionysiosMsc2012present.pdfΠαρουσίαση1.16 MBAdobe PDFΠροβολή/Ανοιγμα
SalonikidisDionysiosMsc2012.pdf2.73 MBAdobe PDFΠροβολή/Ανοιγμα


Αυτό το τεκμήριο προστατεύεται από Αδεια Creative Commons Creative Commons