Please use this identifier to cite or link to this item: http://dspace.lib.uom.gr/handle/2159/15100
Author: Σαλονικίδης, Διονύσιος
Title: Συγκριτική μελέτη διεπιφανειών παράλληλου προγραμματισμού σε εφαρμογές εύρεσης κωδικού κρυπτογραφημένου με αλγόριθμο MD5.
Date Issued: 2012
Department: Πρόγραμμα Μεταπτυχιακών Σπουδών Ειδίκευσης στην Εφαρμοσμένη Πληροφορική
Supervisor: Μαργαρίτης, Κωνσταντίνος
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) η μεγαλύτερη ασφάλεια στο λειτουργικό της σύστημα.
Keywords: Αλγόριθμος MD5
Τεχνική Brute Force
Παράλληλες διεπιφάνειες προγραμματισμού εφαρμογών
Παράλληλος προγραμματισμός
OpenMP
TPL
CUDA
Information: Διπλωματική εργασία--Πανεπιστήμιο Μακεδονίας, Θεσσαλονίκη, 2012.
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