Υπογραφή ElGamal

Από testwiki
Αναθεώρηση ως προς 09:18, 13 Σεπτεμβρίου 2018 από τον imported>Sotkil (-Κατηγορία:Αλγόριθμοι; ±Κατηγορία:ΚρυπτογραφίαΚατηγορία:Κρυπτογραφικοί αλγόριθμοι (με το HotCat))
(διαφορά) ← Παλαιότερη αναθεώρηση | Τελευταία αναθεώρηση (διαφορά) | Νεότερη αναθεώρηση → (διαφορά)
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Οι υπογραφές ElGamal βασίζονται στη μη υπολογισιμότητα του προβλήματος του διακριτού λογαρίθμου σε ένα πεπερασμένο πεδίο: είναι εύκολο να υψωθεί ένας ακέραιος g σε μια δύναμη x, αλλά είναι δύσκολο να υπολογιστεί το x απο το gx.[1] Για τη δημιουργία κλειδιών, κάθε οντότητα A τρέχει τον παρακάτω βασικό αλγόριθμο για το σχήμα ElGamal:

Δημιουργία κλειδιών ElGamal

  1. Επίλεξε ένα μεγάλου μεγέθους πρώτο αριθμό p και ένα γεννήτορα g για μια ομάδα p*.
  2. Επίλεξε έναν τυχαίο αριθμό x, τέτοιον ώστε 1xp2.
  3. Υπολόγισε y=gx mod p.

Το δημόσιο κλειδί του A είναι το EA=(p,g,y) και το ιδιωτικό του κλειδί είναι το DA=x.

Για την κρυπτογράφηση ενός μηνύματος m για τη B, η A αποκτά το

EB και εκτελεί τον παρακάτω αλγόριθμο:

Κρυπτογράφηση ElGamal

  1. Αναπαράστησε το m με ένα σύνολο απο τμήματα mi, το καθένα στο διάστημα [0,p1].
  2. Διάλεξε έναν τυχαίο ακέραιο k, τέτοιον ώστε 1kp2.
  3. Υπολόγισε το a=gk mod p και b=miyk mod p.

Το κρυπτογράφημα για τη B είναι τα (a,b). Η B αποκρυπτογραφεί κάθε ένα από τα (a,b), το οποίο είναι δυο φορές το μέγεθος του αρχικού μηνύματος,[2] χρησιμοποιώντας το DB και εκτελώντας:

Αποκρυπτογράφηση ElGamal

  1. Υπολόγισε το ap1x mod p.
  2. Υπολόγισε το mi=axb mod p.

Το σπάσιμο της κρυπτογράφησης ElGamal είναι ισοδύναμο με το να λυθεί το πρόβλημα του διακριτού λογάριθμου. Παρ'όλα αυτά, ο τυχαίος αριθμός k πρέπει να επιλεχθεί διαφορετικός και ανεξάρτητα για διαφορετικές κρυπτογραφήσεις. Αλλιώς, η πιθανή γνώση του μηνύματος θα μπορούσε να οδηγήσει στην ανάκτηση άλλων μηνυμάτων που κρυπτογραφήθηκαν με το ίδιο k.

Η υπογραφή ElGamal είναι ένα τυχαίο σχήμα και δημιουργεί υπογραφές με προσθήκη, χρησιμοποιώντας μια μονόδρομη συνάρτηση σύνοψης h:{0,1}*p. Για να υπογράψει ένα μήνυμα m οποιουδήποτε μήκους, ο A εκτελεί τον παρακάτω αλγόριθμο με το ιδιωτικό του κλειδί DA:

Δημιουργία Υπογραφής ElGamal

  1. Επέλεξε έναν τυχαίο ακέραιο k, τέτοιον ώστε 1kp2 και gcd(k,p1)=1. Ο k πρέπει να κρατηθεί μυστικός.
  2. Υπολόγισε r=gk mod p.
  3. Υπολόγισε k1 mod (p1).
  4. Υπολόγισε s=k1(h(m)xr) mod (p1).

To ζεύγος (r,s) είναι η υπογραφή του A στο m. [3]Οποιαδήποτε άλλη οντότητα που έχει το EA μπορεί να επιβεβαιώσει την υπογραφή με τα παρακάτω βήματα:

Επιβεβαίωση Υπογραφής ElGamal

  1. Επιβεβαίωσε ότι 1rp1, αλλιώς απόρριψε την υπογραφή.
  2. Υπολόγισε u1=yrrs mod p.
  3. Υπολόγισε h(m).
  4. Υπολόγισε u2=gh(m) mod p.
  5. Έλεγξε αν u1=u2. Αν ναι, αποδέξου την υπογραφή.

Η επιβεβαίωση μιας υπογραφής ElGamal είναι πιο αργή απο αυτή μιας υπογραφής RSA με μικρό εκθέτη. Είναι δυνατόν να γίνουν η ύψωση σε δύναμη με υπόλοιπο και ο Ευκλείδειος Αλγόριθμος(Βήματα 2 και 3 της Δημιουργίας Υπογραφής) εκ των προτέρων. Παρ'όλα αυτά η επιβεβαίωση θα παραμείνει σημαντικά πιο αργή απο αυτή του RSA. Συνιστάται η χρήση υπολοίπου p μήκους 1024 bits ή μεγαλύτερου.

Παραπομπές

  1. Quantum Information Theory, P.W Shor,pp 816-838,2000.
  2. Handbook of Applied Cryptography, A. Menezes, S. Vastone, October 1996
  3. Σύγχρονη κρυπτογραφία θεωρία και εφαρμογές,MIKE BURMESTER, ΣΤΕΦΑΝΟΣ ΓΚΡΙΤΖΑΛΗΣ, ΣΩΚΡΑΤΗΣ ΚΑΤΣΙΚΑΣ, ΒΑΣΙΛΕΙΟΣ ΧΡΥΣΙΚΟΠΟΥΛΟΣ, ΑΘΗΝΑ 2011

Πηγές

  • Σύγχρονη κρυπτογραφία θεωρία και εφαρμογές,MIKE BURMESTER, ΣΤΕΦΑΝΟΣ ΓΚΡΙΤΖΑΛΗΣ, ΣΩΚΡΑΤΗΣ ΚΑΤΣΙΚΑΣ, ΒΑΣΙΛΕΙΟΣ ΧΡΥΣΙΚΟΠΟΥΛΟΣ, ΑΘΗΝΑ 2011
  • Handbook of Applied Cryptography, A. Menezes, S. Vastone, October 1996