New Immissions/Updates:
boundless - educate - edutalab - empatico - es-ebooks - es16 - fr16 - fsfiles - hesperian - solidaria - wikipediaforschools
- wikipediaforschoolses - wikipediaforschoolsfr - wikipediaforschoolspt - worldmap -

See also: Liber Liber - Libro Parlato - Liber Musica  - Manuzio -  Liber Liber ISO Files - Alphabetical Order - Multivolume ZIP Complete Archive - PDF Files - OGG Music Files -

PROJECT GUTENBERG HTML: Volume I - Volume II - Volume III - Volume IV - Volume V - Volume VI - Volume VII - Volume VIII - Volume IX

Ascolta ""Volevo solo fare un audiolibro"" su Spreaker.
CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
Rabin-Kryptosystem - Wikipedia

Rabin-Kryptosystem

aus Wikipedia, der freien Enzyklopädie

Das Rabin-Kryptosystem ist innerhalb der Kryptologie ein asymmetrisches Kryptosystem, das auf dem Faktorisierungsproblem beruht und mit RSA verwandt ist. Es lässt sich prinzipiell auch zur Signatur verwenden. In der Praxis findet das Verfahren allerdings wegen bestimmter Angriffsmöglichkeiten kaum Anwendung.

Inhaltsverzeichnis

[Bearbeiten] Geschichte

Das Verfahren wurde im Januar 1979 von Michael O. Rabin veröffentlicht. Das Rabin-Kryptosystem war das erste asymmetrische Kryptosystem, dessen Sicherheit – das Faktorisierungsproblem als unlösbar vorausgesetzt – auf mathematischem Weg bewiesen werden konnte.

[Bearbeiten] Schlüsselerzeugung

Wie alle asymmetrischen Kryptosysteme verwendet auch das Rabin-Kryptosystem einen öffentlichen und einen geheimen Schlüssel. Der öffentliche dient später der Verschlüsselung und kann veröffentlicht werden, während der geheime nur den Empfängern der Nachricht bekannt sein darf.

Es folgt nun eine genaue mathematische Beschreibung der Schlüsselerzeugung:

Seien p und q zwei möglichst große Primzahlen, häufig kurz als p, q \in \mathbb{P} geschrieben, für die eine bestimmte Kongruenzbedingung gelten muss (s. unten). Der öffentliche Schlüssel n wird durch Multiplikation der beiden Zahlen erzeugt, also n = p \cdot q. Der geheime Schlüssel ist das Paar (p,q). Anders ausgedrückt: Wer nur n kennt, kann ver- aber nicht entschlüsseln, wer dagegen p und q kennt, kann damit auch entschlüsseln. Zum Erzeugen des öffentlichen Schlüssels müssen die Zahlen p und q bekannt sein: Der öffentliche Schlüssel lässt sich nur genau aus den beiden Primzahlen erzeugen.

Wären p und q keine Primzahlen, so ließe sich das Verfahren übrigens nicht anwenden.

Seien beispielhaft p = 7, q = 11 (in der praktischen Anwendung handelt es sich um sehr viel größere Zahlen, um die Entschlüsselung durch Dritte so schwierig wie möglich zu machen). Daraus ergibt sich der öffentliche Schlüssel n = p \cdot q = 77.

[Bearbeiten] Kongruenzbedingung

Im Rabin-Kryptosystem werden die Primzahlen p und q normalerweise so gewählt, dass die Kongruenzbedingung p\equiv q\equiv 3\pmod{4} gilt.

Diese Bedingung vereinfacht und verschnellert die Entschlüsselung. Allgemein gilt nämlich: Sei r eine Primzahl mit r \equiv 3 \pmod{4} und a \in \mathbb{Z} mit a \equiv b^2 \pmod{ r} dann findet man eine Quadratwurzel s von a mit

s\equiv a^{\frac{(r+1)}{4}}\pmod{r}.

Es gilt also s^2\equiv a\pmod{r}.

Da r eine Primzahl ist gilt zudem entweder s\equiv b\pmod{r} oder s\equiv -b\pmod{r}.

Wegen 7 \equiv 11 \equiv 3 \pmod{4} ist die Kongruenzbedingung im Beispiel bereits erfüllt.

[Bearbeiten] Verschlüsselung

Verschlüsselung
Verschlüsselung

Man kann sich eine Verschlüsselung so vorstellen, dass ein Text, etwa aus einem Buch, durch ein geeignetes Verfahren in eine Zeichenfolge gewandelt wird, die nicht mehr ohne größeren Aufwand lesbar ist.

Nebenstehende Abbildung veranschaulicht die Verschlüsselung von Klartexten mit asymmetrischen Kryptosystemen wie dem in diesem Artikel beschriebenen. Ein Klartext wird in einen Geheimtext unter Verwendung eines öffentlichen Schlüssels verwandelt. Einen solchen Schlüssel kann man sich ebenfalls als kurzen Textabschnitt vorstellen. Zur Handhabung im Rechner verwendet man jedoch eine Folge von Zahlen, in die sich ein solcher Textabschnitt jedoch leicht verwandeln lässt.

Für das Rabin-Kryptosystem wird nachfolgend dieser Prozess auf mathematischem Weg präzisiert:

Sei nun P = {0,...,n − 1} der Klartextraum (er besteht also aus Zahlen) und m \in P der Klartext. Nun lässt sich der Geheimtext c durch

c = m^2 \, \bmod \, n

bestimmen. Dabei ist c der Quadratische Rest von zu der Quadratzahl m2 zum Modulo der Schlüssel-Zahl n. Im praktischen Einsatz bietet sich die Verwendung von Blockchiffre an.

In unserem Beispiel sei P = {0,...,76} der Klartextraum, m = 20 der Klartext. Der Geheimtext ist hierbei nun c = m^2 \, \bmod \, n = 15.

Dabei muss man beachten, dass für genau vier verschiedene m das c den Wert 15 aufweist, nämlich für m \in \{ 13, 20, 57, 64 \}. Ähnliches gilt für die meisten c.

[Bearbeiten] Entschlüsselung

Entschlüsselung
Entschlüsselung

Auch die Entschlüsselung in asymmetrischen Kryptosystemen im Allgemeinen und im Rabin-Kryptosystem im Speziellen ist nebenstehend in einer Abbildung dargestellt. Der zuvor durch Verschlüsselung entstandene Geheimtext wird unter Verwendung des geheimen Schlüssels wieder in den Klartext gewandelt.

Das genaue mathematische Vorgehen wird nun beschrieben:

Seien allgemein c und r bekannt, gesucht wird m \in \{ 0,  ..., n-1 \} mit m^2 \equiv c \, \bmod \, r. Für zusammengesetzte r (beispielsweise unsere n) existiert kein effizientes Verfahren zur Bestimmung von m. Ansonsten, wenn also r \in \mathbb{P} (in unserem Fall p und q), dann lässt sich jedoch der chinesische Restsatz ausnutzen.

In unserem Fall sind nun die Quadratwurzeln

m_p = \sqrt{c} \, \bmod \, p

und

m_q = \sqrt{c} \, \bmod \, q

gesucht.

Wegen obiger Kongruenzbedingung gilt:

m_p = c^{\frac{(p+1)}{4}} \, \bmod \, p

und

m_q = c^{\frac{(q+1)}{4}} \, \bmod \, q.

In unserem Beispiel ergeben sich mp = 1 und mq = 9.

Mit dem erweiterten euklidischen Algorithmus werden nun yp und yq, mit y_p \cdot p + y_q \cdot q = 1, bestimmt. In unserem Beispiel erhalten wir yp = − 3 und yq = 2.

Nun werden unter Ausnutzung des chinesischen Restsatzes die vier Quadratwurzeln + r, r, + s und s von c + n \mathbb{Z} \in \mathbb{Z} / n \mathbb{Z} berechnet (\mathbb{Z} / n \mathbb{Z} steht hierbei wie üblich für die Menge der Restklassen modulo n; die vier Quadratwurzeln liegen in der Menge {0,...,n − 1}):

\begin{matrix} r  & = & ( y_p \cdot p \cdot m_q + y_q \cdot q \cdot m_p) \, \bmod \, n  \\ -r & = & n - r  \\ s  & = & ( y_p \cdot p \cdot m_q - y_q \cdot q \cdot m_p) \, \bmod \, n  \\ -s & = & n - s  \end{matrix}

Eine dieser Quadratwurzeln \mod \, n ist wieder der anfängliche Klartext m. Im Beispiel gilt m \in \{ 64, \mathbf{20}, 13, 57 \}.

[Bearbeiten] Bewertung

[Bearbeiten] Effektivität

Die Entschlüsselung liefert zusätzlich zum Klartext drei weitere Ergebnisse, das richtige Ergebnis muss daher erraten werden. Dies ist der große Nachteil des Rabin-Kryptosystems.

Man kann aber Klartexte mir spezieller Struktur wählen. Hierdurch geht jedoch die Äquivalenz zum Faktorisierungsproblem verloren, wie sich zeigen lässt. Das System wird dadurch also geschwächt.

[Bearbeiten] Effizienz

Bei der Verschlüsselung muss eine Quadrierung \mod \, n durchgeführt werden. Das ist effizienter als RSA mit dem Exponenten 3.

Die Entschlüsselung erfordert die Anwendung des chinesischen Restsatzes und je eine modulare Exponentiation \mod \, p und \mod \, q. Die Effizienz der Entschlüsselung ist mit RSA vergleichbar.

[Bearbeiten] Sicherheit

Der große Vorteil des Rabin-Kryptosystems ist, dass man es nur dann brechen kann, wenn man das beschriebene Faktorisierungsproblem effizient lösen kann.

Anders als etwa bei RSA lässt sich zeigen, dass das Rabin-Kryptosystem genauso schwer zu brechen ist wie das Faktorisierungsproblem, auf dem es beruht. Es ist somit sicherer. Wer also das Rabin-Verfahren brechen kann, der kann auch das Faktorisierungsproblem lösen und umgekehrt. Es gilt daher als sicheres Verfahren, solange das Faktorisierungsproblem ungelöst ist. Vorausgesetzt ist dabei wie bereits beschrieben aber, dass die Klartexte keine bestimmte Struktur aufweisen.

Da man auch außerhalb der Kryptologie bemüht ist Faktorisierungsprobleme zu lösen, würde sich eine Lösung rasch in der Fachwelt verbreiten. Doch das ist bislang nicht geschehen. Man kann also davon ausgehen, dass das zugrundeliegende Faktorisierungsproblem derzeit unlösbar ist. Ein Angreifer, der nur belauscht, wird daher derzeit nicht in der Lage sein, das System zu brechen.

Ein aktiver Angreifer aber kann das System mit einem Angriff mit frei wählbarem Geheimtext (englisch chosen-ciphertext attack) brechen, wie sich mathematisch zeigen lässt. Aus diesem Grund findet das Rabin-Kryptosystem in der Praxis kaum Anwendung.

Durch Hinzufügen von Redundanz, z.B. Wiederholen der letzten 64 Bit, wird die Wurzel eindeutig. Dadurch ist der Angriff vereitelt (weil der Entschlüssler nur noch die Wurzel zurück liefert, die der Angreifer schon kennt). Dadurch ist die Äquvalenz der Sicherheit zum Rabin-Kryptosystem nicht mehr beweisbar. Allerdings, laut dem Handbook of Applied Cryptography von Menezes, Oorschot und Vanstone, hält die Äquivalenz unter der Annahme, dass das Wurzelziehen ein zweigeteilter Prozess ist (1. Wurzel \mod\ p und Wurzel \mod\ q ziehen und 2. Chinesischen Restsatzalgorithmus anwenden).

Da bei der Kodierung nur die quadratischen Reste verwendet werden (im Beispiel n = 77 sind das nur 23 der 76 möglichen Zustände) ist das Verfahren zusätzlich angreifbar.

[Bearbeiten] Literatur

Static Wikipedia (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2007 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -

Static Wikipedia 2006 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu

Static Wikipedia February 2008 (no images)

aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu