Diskussion:Elliptic Curve Cryptography: Unterschied zwischen den Versionen
K Textersetzung - „““ durch „"“ |
K Textersetzung - „http://“ durch „https://“ |
||
Zeile 21: | Zeile 21: | ||
== Effizienz und Sicherheit == | == Effizienz und Sicherheit == | ||
Da das Problem des diskreten Logarithmus in elliptischen Kurven (ECDLP) deutlich schwerer ist als die Berechnung des diskreten Logarithmus in endlichen Körpern oder die [[Faktorisierung]] ganzer Zahlen, kommen Kryptosysteme, die auf elliptischen Kurven beruhen – bei vergleichbarer Sicherheit – mit erheblich kürzeren Schlüsseln aus als die herkömmlichen asymmetrischen Kryptoverfahren, wie z. B. das [[RSA]] oder der [[Diffie-Hellman]]. Die derzeit schnellsten Algorithmen sind der [[Babystep-Giantstep-Algorithmus]] und die [[Pollard-Rho-Methode]], deren Laufzeit bei <math>\mathcal{O}(2^{n/2})</math> liegt, wobei <math>n</math> die Bitlänge der Größe des zugrundeliegenden Körpers ist. Nach heutigem Kenntnisstand wird z. B. mit einer Schlüssellänge von 160 Bit eine ähnliche Sicherheit erreicht wie bei RSA mit 1024 Bit.<ref name="keylength_com">{{Internetquelle | url= | Da das Problem des diskreten Logarithmus in elliptischen Kurven (ECDLP) deutlich schwerer ist als die Berechnung des diskreten Logarithmus in endlichen Körpern oder die [[Faktorisierung]] ganzer Zahlen, kommen Kryptosysteme, die auf elliptischen Kurven beruhen – bei vergleichbarer Sicherheit – mit erheblich kürzeren Schlüsseln aus als die herkömmlichen asymmetrischen Kryptoverfahren, wie z. B. das [[RSA]] oder der [[Diffie-Hellman]]. Die derzeit schnellsten Algorithmen sind der [[Babystep-Giantstep-Algorithmus]] und die [[Pollard-Rho-Methode]], deren Laufzeit bei <math>\mathcal{O}(2^{n/2})</math> liegt, wobei <math>n</math> die Bitlänge der Größe des zugrundeliegenden Körpers ist. Nach heutigem Kenntnisstand wird z. B. mit einer Schlüssellänge von 160 Bit eine ähnliche Sicherheit erreicht wie bei RSA mit 1024 Bit.<ref name="keylength_com">{{Internetquelle | url=https://www.keylength.com/ | titel=Cryptographic Key Length Recommendation | hrsg=BlueKrypt | zugriff=2011-11-03 | sprache=EN }}</ref> | ||
ECC eignet sich daher besonders dann, wenn die Speicher- oder Rechenkapazität begrenzt ist, z. B. in [[Smartcard]]s oder anderen [[eingebettete Systeme|eingebetteten Systemen]]. | ECC eignet sich daher besonders dann, wenn die Speicher- oder Rechenkapazität begrenzt ist, z. B. in [[Smartcard]]s oder anderen [[eingebettete Systeme|eingebetteten Systemen]]. | ||
Zeile 62: | Zeile 62: | ||
=== Seitenkanalangriffe === | === Seitenkanalangriffe === | ||
Im Mai 2011 veröffentlichten die Forscher Billy Bob Brumley und Nicola Tuveri eine wissenschaftliche Arbeit,<ref name=timingattackpaper>{{Internetquelle | url= | Im Mai 2011 veröffentlichten die Forscher Billy Bob Brumley und Nicola Tuveri eine wissenschaftliche Arbeit,<ref name=timingattackpaper>{{Internetquelle | url=https://eprint.iacr.org/2011/232 | titel=Remote Timing Attacks are Still Practical | autor=Billy Bob Brumley, Nicola Tuveri | werk=Cryptology ePrint Archive: Report 2011/232 | datum=2011-05-11 | zugriff=2011-11-03 | sprache=EN | kommentar=Abruf als PDF möglich }}</ref> in welcher sie einen erfolgreichen [[Seitenkanalattacke|Timing-Angriff]] auf ECDSA beschreiben.<ref name="heise_timingangriffe">{{Internetquelle | url=https://heise.de/-1247697 | titel=Erfolgreiche Timing-Angriffe auf Kryptografie mit elliptischen Kurven | hrsg=heise.de | datum=2011-05-23 | zugriff=2011-11-03 | sprache=DE }}</ref> | ||
Dabei setzten die Forscher einen Server mit [[OpenSSL]] auf. Der Angriff erfolgte über die Tatsache, dass das Ver- und Entschlüsseln mit unterschiedlichen ECDSA-Schlüsseln in der Implementierung von OpenSSL (Versionen 0.9.8o und 1.0.0.a) unterschiedlich viel Zeit in Anspruch nimmt. So konnten Brumley und Tuveri ohne Zugriff auf den Server den privaten Schlüssel berechnen. Eine Implementierung mit randomisierten Parametern oder eine geeignete Wahl der Kurvenparameter erlaubt jedoch Operationen mit konstantem Zeitbedarf.<ref name="safecurves.cr.yp.to">{{Internetquelle | url=https://safecurves.cr.yp.to/ | titel=SafeCurves: choosing safe curves for elliptic-curve cryptography | sprache=EN | zugriff=2016-06-07 }}</ref> | Dabei setzten die Forscher einen Server mit [[OpenSSL]] auf. Der Angriff erfolgte über die Tatsache, dass das Ver- und Entschlüsseln mit unterschiedlichen ECDSA-Schlüsseln in der Implementierung von OpenSSL (Versionen 0.9.8o und 1.0.0.a) unterschiedlich viel Zeit in Anspruch nimmt. So konnten Brumley und Tuveri ohne Zugriff auf den Server den privaten Schlüssel berechnen. Eine Implementierung mit randomisierten Parametern oder eine geeignete Wahl der Kurvenparameter erlaubt jedoch Operationen mit konstantem Zeitbedarf.<ref name="safecurves.cr.yp.to">{{Internetquelle | url=https://safecurves.cr.yp.to/ | titel=SafeCurves: choosing safe curves for elliptic-curve cryptography | sprache=EN | zugriff=2016-06-07 }}</ref> | ||
== Verwendung == | == Verwendung == | ||
Elliptic Curve Cryptography wird von modernen Windows-Betriebssystemen (ab Vista) unterstützt.<ref name="asit_eccToday">{{Internetquelle | url= | Elliptic Curve Cryptography wird von modernen Windows-Betriebssystemen (ab Vista) unterstützt.<ref name="asit_eccToday">{{Internetquelle | url=https://www.a-sit.at/pdfs/Technologiebeobachtung/eccToday.pdf | titel=Kryptosysteme basierend auf Elliptischen Kurven Einsatz und Verbreitung in Standardsoftware | autor=Elisabeth Oswald | hrsg=Zentrum für sichere Informationstechnologie - Austria (A-SIT) | datum=2009-07-29 | zugriff=2011-11-02 | sprache=DE | format=PDF; 445 kB | archiv-url=https://web.archive.org/web/20140305163816/https://www.a-sit.at/pdfs/Technologiebeobachtung/eccToday.pdf | archiv-datum=2014-03-05 | offline=ja | archiv-bot=2019-03-08 18:20:35 InternetArchiveBot }}</ref> | ||
Produkte der [[Mozilla Foundation]] (u. a. [[Mozilla Firefox|Firefox]], [[Mozilla Thunderbird|Thunderbird]]) unterstützen ECC mit min. 256 Bit Key-Länge (P-256 aufwärts).<ref name="mozilla_root_cas"> | Produkte der [[Mozilla Foundation]] (u. a. [[Mozilla Firefox|Firefox]], [[Mozilla Thunderbird|Thunderbird]]) unterstützen ECC mit min. 256 Bit Key-Länge (P-256 aufwärts).<ref name="mozilla_root_cas"> | ||
{{Internetquelle | url= | {{Internetquelle | url=https://www.mozilla.org/projects/security/certs/policy/MaintenancePolicy.html | titel=Mozilla CA Certificate Maintenance Policy (Version 2.0) | hrsg=mozilla.org| datum=2011-11-04 | zugriff=2011-11-04 | sprache=EN | zitat=We consider the following algorithms and key sizes to be acceptable and supported in Mozilla products: … Elliptic Curve Digital Signature Algorithm (using ANSI X9.62) over SECG and NIST named curves P-256, P-384, and P-512; }}</ref> | ||
Die in Österreich gängigen Bürgerkarten (e-card, Bankomat- oder a-sign Premium Karte) verwenden ECC seit ihrer Einführung 2004/2005, womit Österreich zu den Vorreitern in deren breitem Einsatz zählt.<ref name="asit_ecc_curves">{{Internetquelle | url=https://www.a-sit.at/de/technologiebeobachtung/ecc_curves/index.php | titel=Elliptische Kurven | zugriff=2011-11-03 | sprache=DE | archiv-url=https://web.archive.org/web/20111205115655/ | Die in Österreich gängigen Bürgerkarten (e-card, Bankomat- oder a-sign Premium Karte) verwenden ECC seit ihrer Einführung 2004/2005, womit Österreich zu den Vorreitern in deren breitem Einsatz zählt.<ref name="asit_ecc_curves">{{Internetquelle | url=https://www.a-sit.at/de/technologiebeobachtung/ecc_curves/index.php | titel=Elliptische Kurven | zugriff=2011-11-03 | sprache=DE | archiv-url=https://web.archive.org/web/20111205115655/https://www.a-sit.at/de/technologiebeobachtung/ecc_curves/index.php | archiv-datum=2011-12-05 | offline=ja | archiv-bot=2019-03-08 18:20:35 InternetArchiveBot }}</ref> | ||
Die [[Reisepass|Reisepässe]] der meisten Europäischen Staaten (u. a. Deutschland) verwenden ECC zumindest für den Schutz des Zugriffs auf den Chip mittels [[Deutscher Reisepass#Extended Access Control|Extended Access Control]], einige Länder (u. a. Deutschland und Schweiz) verwenden es auch, um die auf dem Chip gespeicherten Daten mit [[Deutscher Reisepass#Passive Authentication|Passive Authentication]] zu schützen.<ref name="buslab_zdenek_riha">{{Internetquelle | url= | Die [[Reisepass|Reisepässe]] der meisten Europäischen Staaten (u. a. Deutschland) verwenden ECC zumindest für den Schutz des Zugriffs auf den Chip mittels [[Deutscher Reisepass#Extended Access Control|Extended Access Control]], einige Länder (u. a. Deutschland und Schweiz) verwenden es auch, um die auf dem Chip gespeicherten Daten mit [[Deutscher Reisepass#Passive Authentication|Passive Authentication]] zu schützen.<ref name="buslab_zdenek_riha">{{Internetquelle | url=https://www.buslab.org/SummerSchool2008/slides/Zdenek_Riha.pdf | titel=Electronic passports | autor=Zdeněk Říha | hrsg=JRC Ispra, European Commission, Masaryk University, Brno | datum=2008-09-13 | archiv-url=https://web.archive.org/web/20100215182600/https://www.buslab.org/SummerSchool2008/slides/Zdenek_Riha.pdf | archiv-datum=2010-02-15 | zugriff=2011-11-03 | sprache=EN | format=PDF }}</ref> | ||
In Deutschland verwendet der [[Personalausweis (Deutschland)#Der elektronische Personalausweis (nPA)|neue Personalausweis]] ebenfalls ECC, sowohl für Extended Access Control als auch für Passive Authentication.<ref name="bsi_fuer_buerger_pdf_locher">{{Internetquelle | url=https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Veranstaltungen/ITSiKongress/11ter/pdfdownload/14_Mai_Parksaal/Manfred_Lochter_pdf.pdf?__blob=publicationFile | titel=Ein neuer Standard für elliptische Kurven | autor=Dr. Manfred Lochter und Dr. Johannes Merkle | datum=2009-05 | zugriff=2018-01-14 | sprache=DE | format=PDF; 796 kB | kommentar=Vortrag vom 11. Deutschen IT-Sicherheitskongress 2009 }}</ref> | In Deutschland verwendet der [[Personalausweis (Deutschland)#Der elektronische Personalausweis (nPA)|neue Personalausweis]] ebenfalls ECC, sowohl für Extended Access Control als auch für Passive Authentication.<ref name="bsi_fuer_buerger_pdf_locher">{{Internetquelle | url=https://www.bsi.bund.de/SharedDocs/Downloads/DE/BSI/Veranstaltungen/ITSiKongress/11ter/pdfdownload/14_Mai_Parksaal/Manfred_Lochter_pdf.pdf?__blob=publicationFile | titel=Ein neuer Standard für elliptische Kurven | autor=Dr. Manfred Lochter und Dr. Johannes Merkle | datum=2009-05 | zugriff=2018-01-14 | sprache=DE | format=PDF; 796 kB | kommentar=Vortrag vom 11. Deutschen IT-Sicherheitskongress 2009 }}</ref> | ||
Zeile 82: | Zeile 82: | ||
Laut der US-amerikanischen [[National Security Agency]] (NSA) sind Implementierungen mit Patentproblemen konfrontiert. Vor allem die kanadische [[Certicom]] Inc. besitzt demnach mehr als 130 Patente, die für ECC oder [[Public-Key-Kryptographie]] benötigt werden. 26 davon wurden von der NSA lizenziert, um ECC-Verfahren zu Zwecken nationaler Sicherheit zu implementieren.<ref name="nsa-ellipticcurves" /> | Laut der US-amerikanischen [[National Security Agency]] (NSA) sind Implementierungen mit Patentproblemen konfrontiert. Vor allem die kanadische [[Certicom]] Inc. besitzt demnach mehr als 130 Patente, die für ECC oder [[Public-Key-Kryptographie]] benötigt werden. 26 davon wurden von der NSA lizenziert, um ECC-Verfahren zu Zwecken nationaler Sicherheit zu implementieren.<ref name="nsa-ellipticcurves" /> | ||
In einer Studie des [[Zentrum für sichere Informationstechnologie|Zentrums für sichere Informationstechnologie Austria]] (A-SIT) wird auf Patente in effizienten Implementierungen hingewiesen, wobei ECC selbst "prinzipiell patentfrei" sei.<ref name="asit_ElliptischeKurven_und_Signatur_Studie">{{Internetquelle | url= | In einer Studie des [[Zentrum für sichere Informationstechnologie|Zentrums für sichere Informationstechnologie Austria]] (A-SIT) wird auf Patente in effizienten Implementierungen hingewiesen, wobei ECC selbst "prinzipiell patentfrei" sei.<ref name="asit_ElliptischeKurven_und_Signatur_Studie">{{Internetquelle | url=https://www.a-sit.at/pdfs/2001%20ElliptischeKurven_und_Signatur_Studie.pdf | titel=Einsatz und Bedeutung Elliptischer Kurven für die elektronische Signatur | autor=Elisabeth Oswald | hrsg=A-SIT | seiten=27 | datum=2001 | zugriff=2011-11-02 | sprache=DE | format=PDF; 443 kB | archiv-url=https://web.archive.org/web/20140203105008/https://www.a-sit.at/pdfs/2001%20ElliptischeKurven_und_Signatur_Studie.pdf | archiv-datum=2014-02-03 | offline=ja | archiv-bot=2019-03-08 18:20:35 InternetArchiveBot }}</ref> | ||
RFC 6090 beschreibt grundlegende ECC-Algorithmen, die bereits 1994 oder vorher veröffentlicht wurden (und daher heute keinen Patenten mehr unterliegen können). Die im Internet heute weit verbreiteten ECC-Verfahren basieren auf diesen Algorithmen, so dass sie sich nach Veröffentlichung von RFC 6090 recht unproblematisch durchsetzen konnten. | RFC 6090 beschreibt grundlegende ECC-Algorithmen, die bereits 1994 oder vorher veröffentlicht wurden (und daher heute keinen Patenten mehr unterliegen können). Die im Internet heute weit verbreiteten ECC-Verfahren basieren auf diesen Algorithmen, so dass sie sich nach Veröffentlichung von RFC 6090 recht unproblematisch durchsetzen konnten. | ||
Zeile 91: | Zeile 91: | ||
* ANSI X9.62 (ECDSA) | * ANSI X9.62 (ECDSA) | ||
* ANSI X9.63 (Key Agreement und Key Transport) | * ANSI X9.63 (Key Agreement und Key Transport) | ||
Die Kurven von X9.62-2005 wurden vom Geheimdienst NSA entworfen und eine Hintertür kann aufgrund der Freiheitsgrade in der Kurvenauswahlmethode nicht ausgeschlossen werden.<ref name="bada55-20150927.pdf">https://bada55.cr.yp.to/bada55-20150927.pdf</ref> Nach einer Analyse von [[Dan Bernstein]] ist der Beweis für die Zufälligkeit der Kurven, den die Kurvenauswahlmethode nach der Behauptung des Standards darstellt, schlichtweg nicht existent.<ref name="rigid.html"> | Die Kurven von X9.62-2005 wurden vom Geheimdienst NSA entworfen und eine Hintertür kann aufgrund der Freiheitsgrade in der Kurvenauswahlmethode nicht ausgeschlossen werden.<ref name="bada55-20150927.pdf">https://bada55.cr.yp.to/bada55-20150927.pdf</ref> Nach einer Analyse von [[Dan Bernstein]] ist der Beweis für die Zufälligkeit der Kurven, den die Kurvenauswahlmethode nach der Behauptung des Standards darstellt, schlichtweg nicht existent.<ref name="rigid.html">https://safecurves.cr.yp.to/rigid.html</ref><ref name="bada55-20150927.pdf" /> | ||
=== NIST === | === NIST === | ||
* FIPS 186-3<ref name="fips_186_3">(ECDSA) {{Internetquelle | url= | * FIPS 186-3<ref name="fips_186_3">(ECDSA) {{Internetquelle | url=https://csrc.nist.gov/publications/fips/fips186-3/fips_186-3.pdf | titel=Digital Signature Standard (DSS) | titelerg=FIPS PUB 186-3 | hrsg=National Institute of Standards and Technology (NIST) | datum=2009-06 | zugriff=2011-11-03 | sprache=EN | format=PDF; 1,2 MB }}</ref> | ||
{{Belege fehlen|Für die Einschätzung der Sicherheit dieser Kurven wären wissenschaftliche Quellen erforderlich. Die beiden angegebenen Webseiten stellen nur Behauptungen auf. [[user:Troubled asset|Troubled @sset]] 12:18, 23. Nov. 2020 (CET)|Die Behauptungen in diesem Absatz|Plural=1}} | {{Belege fehlen|Für die Einschätzung der Sicherheit dieser Kurven wären wissenschaftliche Quellen erforderlich. Die beiden angegebenen Webseiten stellen nur Behauptungen auf. [[user:Troubled asset|Troubled @sset]] 12:18, 23. Nov. 2020 (CET)|Die Behauptungen in diesem Absatz|Plural=1}} | ||
Zeile 118: | Zeile 118: | ||
=== ISO === | === ISO === | ||
* ISO 14888-3<ref name="iso_14888_3">{{Internetquelle | url= | * ISO 14888-3<ref name="iso_14888_3">{{Internetquelle | url=https://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=45306 | titel=Information technology -- Security techniques -- Digital signatures with appendix -- Part 3: Discrete logarithm based mechanisms | hrsg=ISO/IEC | zugriff=2011-11-03 | sprache=EN | kommentar=Kostenpflichtiger PDF-Abruf | zitat=ISO/IEC 14888-3:2006 specifies digital signature mechanisms with appendix whose security is based on the discrete logarithm problem. It provides a general description of a digital signature with appendix mechanism, and a variety of mechanisms that provide digital signatures with appendix.}}</ref> | ||
* ISO 15946<ref name="iso_15946">{{Internetquelle | url= | * ISO 15946<ref name="iso_15946">{{Internetquelle | url=https://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_tc_browse.htm?commid=45306 | titel=Information technology -- Security techniques -- Cryptographic techniques based on elliptic curves | hrsg=ISO/IEC | zugriff=2011-11-03 | sprache=EN | kommentar=Kostenpflichtiger PDF-Abruf | zitat=ISO/IEC 15946 specifies public-key cryptographic techniques based on elliptic curves. It consists of five parts and includes the establishment of keys for symmetric cryptographic techniques, and digital signature mechanisms (Part 15946-2 was revoked in 2007, and replaced by 14888-8). }}</ref> | ||
=== IEEE === | === IEEE === | ||
* IEEE 1363<ref name="ieee_1363"> | * IEEE 1363<ref name="ieee_1363"> | ||
{{Internetquelle | url= | {{Internetquelle | url=https://grouper.ieee.org/groups/1363/index.html | titel=Standard Specifications For Public-Key Cryptography | titelerg=The IEEE P1363 project develops Standard Specifications For Public-Key Cryptography, towards the goal of issuing a series of IEEE standards documents. | hrsg=IEEE | datum=2008-10-10 | zugriff=2011-11-03 | sprache=EN | archiv-url=https://web.archive.org/web/20111101190721/https://grouper.ieee.org/groups/1363/index.html | archiv-datum=2011-11-01 | offline=ja | archiv-bot=2019-03-08 18:20:35 InternetArchiveBot }} | ||
</ref> | </ref> | ||
Zeile 134: | Zeile 134: | ||
=== SECG === | === SECG === | ||
Die "Standards for Efficient Cryptography Group" (SECG) ist ein 1998 gegründetes Konsortium zur Förderung des Einsatzes von ECC-Algorithmen. SECG hat als erste die 521-Bit-Kurve spezifiziert, die dann vom NIST übernommen wurde. Diese spezielle Wahl beruht auf der Tatsache, dass auf Primzahlen der Form <math>2^{{n}}-1</math> zurückgegriffen werden sollte, um das Rechnen mit Restklassen modulo dieser Primzahl zu beschleunigen. Für <math>300< n <600</math> ist jedoch nur <math>2^{{521}}-1</math> eine Primzahl.<ref> | Die "Standards for Efficient Cryptography Group" (SECG) ist ein 1998 gegründetes Konsortium zur Förderung des Einsatzes von ECC-Algorithmen. SECG hat als erste die 521-Bit-Kurve spezifiziert, die dann vom NIST übernommen wurde. Diese spezielle Wahl beruht auf der Tatsache, dass auf Primzahlen der Form <math>2^{{n}}-1</math> zurückgegriffen werden sollte, um das Rechnen mit Restklassen modulo dieser Primzahl zu beschleunigen. Für <math>300< n <600</math> ist jedoch nur <math>2^{{521}}-1</math> eine Primzahl.<ref>https://www.secg.org/sec2-v2.pdf</ref> | ||
SECG SEC 2 greift auf die Kurven der NSA aus dem NIST-Standard zurück und übernimmt zusätzlich die nicht zutreffende Behauptung des ANSI-Standards, sie seien verifizierbar zufällig gewählt worden.<ref name="rigid.html" /><ref name="bada55-20150927.pdf" /> | SECG SEC 2 greift auf die Kurven der NSA aus dem NIST-Standard zurück und übernimmt zusätzlich die nicht zutreffende Behauptung des ANSI-Standards, sie seien verifizierbar zufällig gewählt worden.<ref name="rigid.html" /><ref name="bada55-20150927.pdf" /> | ||
Zeile 156: | Zeile 156: | ||
== Weblinks == | == Weblinks == | ||
* [ | * [https://www.archive.org/movies/details-db.php?collection=msri&collectionid=lecture11687 Video einer Vorlesung von Neal Koblitz ´über Elliptic-Curve-Cryptology], 1998, (MPG; 1,8 GB, englisch) | ||
* [https://www.teletrust.de/fileadmin/files/oid/oid_ECC-Brainpool-Standard-curves-V1.pdf ECC-Arbeitsgruppe, Domainparameter] | * [https://www.teletrust.de/fileadmin/files/oid/oid_ECC-Brainpool-Standard-curves-V1.pdf ECC-Arbeitsgruppe, Domainparameter] | ||
* [https://www.academic-signature.org/ Freie Implementation des "Elliptic Curve DSA" für Windows und Linux, Download und Anleitung(englisch)] | * [https://www.academic-signature.org/ Freie Implementation des "Elliptic Curve DSA" für Windows und Linux, Download und Anleitung(englisch)] | ||
Zeile 185: | Zeile 185: | ||
}}</ref> | }}</ref> | ||
<ref name="nsa-ellipticcurves">{{Internetquelle | url=https://www.nsa.gov/business/programs/elliptic_curve.shtml | titel=The Case for Elliptic Curve Cryptography | datum=2009-01-15 | zugriff=2011-11-03 | sprache=EN }}</ref> | <ref name="nsa-ellipticcurves">{{Internetquelle | url=https://www.nsa.gov/business/programs/elliptic_curve.shtml | titel=The Case for Elliptic Curve Cryptography | datum=2009-01-15 | zugriff=2011-11-03 | sprache=EN }}</ref> | ||
<ref name="ecrypt">{{Internetquelle | url= | <ref name="ecrypt">{{Internetquelle | url=https://cordis.europa.eu/docs/projects/cnect/6/216676/080/deliverables/002-DSPA20.pdf | titel=ECRYPT II Yearly Report on Algorithms and Keysizes (2011–2012) | datum=2012-09-30 | zugriff=2016-12-15 |format=PDF; 885,7 kB |sprache=EN }}</ref> |
Version vom 7. April 2025, 14:49 Uhr
Wikipedia
Unter Vorlage:Lang (ECC) oder Vorlage:DeS versteht man asymmetrische Kryptosysteme, die Operationen auf elliptischen Kurven über endlichen Körpern verwenden. Diese Verfahren sind nur sicher, wenn diskrete Logarithmen in der Gruppe der Punkte der elliptischen Kurve nicht effizient berechnet werden können.
Jedes Verfahren, das auf dem diskreten Logarithmus in endlichen Körpern basiert, wie z. B. der Digital Signature Algorithm, das Elgamal-Kryptografieverfahren oder der Diffie-Hellman, lässt sich in einfacher Weise auf elliptische Kurven übertragen und somit zu einem Elliptic-Curve-Kryptosystem umformen. Dabei werden die beim Originalverfahren eingesetzten Operationen (Multiplikation und Potenzieren) auf dem endlichen Körper ersetzt durch entsprechende Operationen (Punktaddition und Skalarmultiplikation) der Punkte auf der elliptischen Kurve. Das -fache Addieren eines Punktes zu sich selbst (also die Multiplikation mit dem Skalar ) wird mit bezeichnet und entspricht einer Potenz im ursprünglichen Verfahren.
Das Prinzip wurde Mitte der 1980er Jahre von Victor S. Miller[1] und Neal Koblitz[2] unabhängig voneinander vorgeschlagen.
Funktionsprinzip
Auf elliptischen Kurven kann eine additive zyklische Gruppe definiert werden, die aus den Vielfachen eines Punktes auf der Kurve, des Erzeugers der Gruppe, besteht. Das Addieren zweier Punkte in der Gruppe ist einfach, es gibt aber Kurven, auf denen die "skalare Division" für einen Punkt schwer ist, d. h., es ist kein effizientes Verfahren bekannt, um zu dem gegebenen Punkt in einer von einem Punkt erzeugten Gruppe eine natürliche Zahl mit zu finden. Damit gibt es auf diesen Kurven ein Analogon zum Diskreten Logarithmus-Problem (DLP) in multiplikativen Gruppen, das ebenfalls DLP genannt wird.
Analog kann man das Computational-Diffie-Hellman-Problem (CDH, zu gegebenen und berechne ) und das Decisional-Diffie-Hellman-Problem (DDH) definieren. Dadurch können kryptographische Verfahren, deren Sicherheit auf diesen Problemen beruht, auf elliptische Kurven übertragen werden, für die diese Probleme vermutlich schwierig sind. Beispiele dafür sind
- Elliptic Curve Diffie-Hellman (ECDH)
- Elliptic Curve Integrated Encryption Scheme (ECIES), auch Integrated Encryption Scheme (IES) genannt
- Elliptic Curve Digital Signature Algorithm (ECDSA)
- ECMQV, ein von Menezes, Qu und Vanstone vorgeschlagenes Protokoll zur Schlüsselvereinbarung
Darüber hinaus gibt es Kurven , auf denen eine Pairing genannte bilineare Abbildung in eine Gruppe existiert. In diesen Kurven ist zwar DDH leicht, da gilt, die Existenz des Pairings erlaubt aber viele neuartige Anwendungen.
Effizienz und Sicherheit
Da das Problem des diskreten Logarithmus in elliptischen Kurven (ECDLP) deutlich schwerer ist als die Berechnung des diskreten Logarithmus in endlichen Körpern oder die Faktorisierung ganzer Zahlen, kommen Kryptosysteme, die auf elliptischen Kurven beruhen – bei vergleichbarer Sicherheit – mit erheblich kürzeren Schlüsseln aus als die herkömmlichen asymmetrischen Kryptoverfahren, wie z. B. das RSA oder der Diffie-Hellman. Die derzeit schnellsten Algorithmen sind der Babystep-Giantstep-Algorithmus und die Pollard-Rho-Methode, deren Laufzeit bei liegt, wobei die Bitlänge der Größe des zugrundeliegenden Körpers ist. Nach heutigem Kenntnisstand wird z. B. mit einer Schlüssellänge von 160 Bit eine ähnliche Sicherheit erreicht wie bei RSA mit 1024 Bit.[3] ECC eignet sich daher besonders dann, wenn die Speicher- oder Rechenkapazität begrenzt ist, z. B. in Smartcards oder anderen eingebetteten Systemen.
Beispielhaft werden hier die vom US-amerikanischen National Institute of Standards and Technology (NIST) und ECRYPT angegebenen äquivalenten Schlüssellängen für RSA- bzw. Diffie-Hellman-Schlüssel für bestimmte Sicherheitsniveaus aufgelistet.
Sicherheitsniveau | RSA/DH (NIST) | RSA/DH (ECRYPT) | ECDH |
---|---|---|---|
80 | 1024 | 1248 | 160 |
112 | 2048 | 2432 | 224 |
128 | 3072 | 3248 | 256 |
192 | 7680 | 7936 | 384 |
256 | 15360 | 15424 | 512[6] |
Sicherheitsniveau (bit) | Verhältnis bei DH : ECDH |
---|---|
80 | 3:1 |
112 | 6:1 |
128 | 10:1 |
192 | 32:1 |
256 | 64:1 |
Die Spalte Sicherheitsniveau bezieht sich auf die Bitlänge eines vergleichbar sicheren symmetrischen Kryptografiealgorithmus.
Die mathematischen Operationen auf elliptischen Kurven sind aufwändiger zu berechnen als Operationen in vergleichbar großen endlichen Körpern oder RSA-Modulen. Allerdings kann mit erheblich kürzeren Schlüsseln ein Sicherheitsniveau erreicht werden, das mit Verfahren auf Basis des diskreten Logarithmus oder mit RSA vergleichbar ist. Unter anderem durch die kürzeren Schlüssel können Elliptische-Kurven-Kryptosysteme daher bei einem vergleichbaren Sicherheitsniveau schneller sein.[7] Ein Vergleich der Recheneffizienz dieser kryptographischen Verfahren hängt jedoch stark von den Details der Implementierung (kryptographische Parameter, Arithmetik, Optimierungen, Programmiersprache und Compiler, zugrunde liegende Hardware) ab.
Seitenkanalangriffe
Im Mai 2011 veröffentlichten die Forscher Billy Bob Brumley und Nicola Tuveri eine wissenschaftliche Arbeit,[8] in welcher sie einen erfolgreichen Timing-Angriff auf ECDSA beschreiben.[9] Dabei setzten die Forscher einen Server mit OpenSSL auf. Der Angriff erfolgte über die Tatsache, dass das Ver- und Entschlüsseln mit unterschiedlichen ECDSA-Schlüsseln in der Implementierung von OpenSSL (Versionen 0.9.8o und 1.0.0.a) unterschiedlich viel Zeit in Anspruch nimmt. So konnten Brumley und Tuveri ohne Zugriff auf den Server den privaten Schlüssel berechnen. Eine Implementierung mit randomisierten Parametern oder eine geeignete Wahl der Kurvenparameter erlaubt jedoch Operationen mit konstantem Zeitbedarf.[10]
Verwendung
Elliptic Curve Cryptography wird von modernen Windows-Betriebssystemen (ab Vista) unterstützt.[11]
Produkte der Mozilla Foundation (u. a. Firefox, Thunderbird) unterstützen ECC mit min. 256 Bit Key-Länge (P-256 aufwärts).[12]
Die in Österreich gängigen Bürgerkarten (e-card, Bankomat- oder a-sign Premium Karte) verwenden ECC seit ihrer Einführung 2004/2005, womit Österreich zu den Vorreitern in deren breitem Einsatz zählt.[13]
Die Reisepässe der meisten Europäischen Staaten (u. a. Deutschland) verwenden ECC zumindest für den Schutz des Zugriffs auf den Chip mittels Extended Access Control, einige Länder (u. a. Deutschland und Schweiz) verwenden es auch, um die auf dem Chip gespeicherten Daten mit Passive Authentication zu schützen.[14]
In Deutschland verwendet der neue Personalausweis ebenfalls ECC, sowohl für Extended Access Control als auch für Passive Authentication.[15]
Sony benutzt Elliptic Curve DSA zur digitalen Signierung von Software für die PlayStation 3. Im Jahr 2010 gelang einer Hackergruppe die Ermittlung des benutzten Private Key und somit ein fast vollständiger Bruch der Sicherheitssysteme. Dies war jedoch vor allem auf Implementierungsfehler von Sony zurückzuführen und nutzte keine Sicherheitslücken im verwendeten ECC-Verfahren aus.[16]
Patente
Laut der US-amerikanischen National Security Agency (NSA) sind Implementierungen mit Patentproblemen konfrontiert. Vor allem die kanadische Certicom Inc. besitzt demnach mehr als 130 Patente, die für ECC oder Public-Key-Kryptographie benötigt werden. 26 davon wurden von der NSA lizenziert, um ECC-Verfahren zu Zwecken nationaler Sicherheit zu implementieren.[4]
In einer Studie des Zentrums für sichere Informationstechnologie Austria (A-SIT) wird auf Patente in effizienten Implementierungen hingewiesen, wobei ECC selbst "prinzipiell patentfrei" sei.[17]
RFC 6090 beschreibt grundlegende ECC-Algorithmen, die bereits 1994 oder vorher veröffentlicht wurden (und daher heute keinen Patenten mehr unterliegen können). Die im Internet heute weit verbreiteten ECC-Verfahren basieren auf diesen Algorithmen, so dass sie sich nach Veröffentlichung von RFC 6090 recht unproblematisch durchsetzen konnten.
Standardisierungsgremien und Normen
ANSI
ANSI X9.62-2005 ist die aktuelle Standardisierung des ECDSA.[18]
- ANSI X9.62 (ECDSA)
- ANSI X9.63 (Key Agreement und Key Transport)
Die Kurven von X9.62-2005 wurden vom Geheimdienst NSA entworfen und eine Hintertür kann aufgrund der Freiheitsgrade in der Kurvenauswahlmethode nicht ausgeschlossen werden.[19] Nach einer Analyse von Dan Bernstein ist der Beweis für die Zufälligkeit der Kurven, den die Kurvenauswahlmethode nach der Behauptung des Standards darstellt, schlichtweg nicht existent.[20][19]
NIST
- FIPS 186-3[21]
Die NIST-Kurven wurden vom Geheimdienst NSA entworfen[22] und basieren auf Grundkonstanten ungeklärter Herkunft, wodurch eine Hintertür nicht ausgeschlossen werden kann.[20] Sie sind auch bezüglich einiger wünschenswerter Eigenschaften nicht sicher.[10] Einen Beleg dafür, dass eine nur der NSA bekannte Hintertür existiert, gibt es bisher allerdings nicht.
IETF
- RFC 6090 (Algorithmen für ECC)
- RFC 3279, RFC 5480, RFC 5758 (Nutzung von ECC in X.509 Zertifikaten)
- RFC 2409, RFC 4754, RFC 5903 (Nutzung von ECC in IKE)
- RFC 4492, RFC 5246, RFC 5289, RFC 5489, RFC 6040 (Nutzung von ECC in TLS)
- RFC 5656, RFC 6239, RFC 6594 (Nutzung von ECC in SSH)
- RFC 5753, RFC 6161, RFC 6162, RFC 6278 (Nutzung von ECC in CMS)
- RFC 4050 (Nutzung von ECC in XML-Signaturen)
- RFC 6637 (Nutzung von ECC in OpenPGP)
- RFC 6605 (Nutzung von ECC in DNSSEC)
- RFC 5349 (Nutzung von ECC in Kerberos)
- RFC 5915 (Elliptic Curve Private Key Structure, z. B. für PKCS#8)
- RFC 5114 (zusätzliche elliptische Kurven für X.509 Zertifikate, IKE, TLS, SSH und S/MIME)
- RFC 5639 (zusätzliche elliptische Kurven für X.509 Zertifikate, IKE, TLS, XML Signaturen und CMS)
- RFC 5901, RFC 6507 (Identitätsbasierte Elliptische-Kurven-Kryptosysteme)
Die RFCs greifen auf die Brainpool-Kurven zurück.
ISO
IEEE
- IEEE 1363[25]
Der IEEE-Standard greift auf die gleiche Kurvenauswahlmethode wie der ANSI-Standard zurück, so dass die gleiche Kritik daran geäußert wurde.[20][19]
ECC-Brainpool
Der ECC-Brainpool, eine Arbeitsgruppe des staatlich-industriellen Vereins TeleTrusT (Mitglieder u. a. BKA, BSI) zum Thema Elliptic Curve Cryptography, hat 2005 eine Anzahl von elliptischen Kurven spezifiziert, welche im März 2010 im RFC 5639 der IETF standardisiert wurde. Bei diesen Kurven ist besonders die Wahl der Bitlänge 512 zu erwähnen, abweichend zur von vielen anderen Institutionen (z. B. NIST, SECG) präferierten Bitlänge 521.
Der angebliche Designraum der Brainpool-Kurven enthält viele Freiheitsgrade, die aber bei der Konstruktion gar nicht ausgenutzt wurden. So hält sich weiter das Gerücht, dass eine Hintertür eingebaut wurde.[19] Tatsächlich hat die seinerzeit öffentlich tagende Brainpool-Gruppe zuerst die Konstanten und Design-Parameter gewählt und erst danach wurden durch das BSI die entsprechenden Kurven gesucht. Den Brainpool-Kurven fehlen allerdings auch einige der sogenannten wünschenswerten Eigenschaften. Ihre Sicherheit wird dadurch aber nicht eingeschränkt.[10]
SECG
Die "Standards for Efficient Cryptography Group" (SECG) ist ein 1998 gegründetes Konsortium zur Förderung des Einsatzes von ECC-Algorithmen. SECG hat als erste die 521-Bit-Kurve spezifiziert, die dann vom NIST übernommen wurde. Diese spezielle Wahl beruht auf der Tatsache, dass auf Primzahlen der Form zurückgegriffen werden sollte, um das Rechnen mit Restklassen modulo dieser Primzahl zu beschleunigen. Für ist jedoch nur eine Primzahl.[26]
SECG SEC 2 greift auf die Kurven der NSA aus dem NIST-Standard zurück und übernimmt zusätzlich die nicht zutreffende Behauptung des ANSI-Standards, sie seien verifizierbar zufällig gewählt worden.[20][19]
BSI
Das Bundesamt für Sicherheit in der Informationstechnik legt in der Technical Guideline TR-03111 Version 2.0 bzw. 2.1[27] Vorgaben und Empfehlungen für die Implementierung von Elliptische-Kurven-Kryptographie fest. Man beachte jedoch, dass der in der Version 2.0 definierte Algorithmus EC-Schnorr nicht kompatibel zu den in ISO 14888-3 definierten Schnorr-Signaturen EC-SDSA und EC-FSDSA ist.
SafeCurves
Das SafeCurves-Projekt von Bernstein hat mit den sicheren, akademischen Kurven Curve25519 (bzw. Ed25519), Ed448-Goldilocks und E-521 inzwischen einen De-facto-Standard geschaffen. Die staatlichen Kurven haben das Vertrauen mancher führenden Kryptographen verloren, da die Kurvenwahl nicht vollständig transparent nachvollziehbar ist[19] und somit eine ähnliche kleptographische Hintertür wie bei Dual_EC_DRBG oder eine sonstige Hintertür nicht sicher ausgeschlossen werden kann.[28]
Siehe auch
Literatur
Weblinks
- Video einer Vorlesung von Neal Koblitz ´über Elliptic-Curve-Cryptology, 1998, (MPG; 1,8 GB, englisch)
- ECC-Arbeitsgruppe, Domainparameter
- Freie Implementation des "Elliptic Curve DSA" für Windows und Linux, Download und Anleitung(englisch)
Einzelnachweise
- ↑ Hochspringen nach: 1,0 1,1 Vorlage:Literatur
- ↑ Hochspringen nach: 2,0 2,1 Vorlage:Literatur
- ↑
- ↑ Hochspringen nach: 4,0 4,1 4,2 4,3
- ↑ Hochspringen nach: 5,0 5,1
- ↑ NIST hat nur eine 521-bit Kurve standardisiert und gibt daher als äquivalentes Sicherheitsniveau 521 bit an.
- ↑ R. Szerwinski, T. Güneysu: Exploiting the Power of GPUs for Asymmetric Cryptography. Proceedings of CHES 2008, pp. 79–99, 2008
- ↑
- ↑
- ↑ Hochspringen nach: 10,0 10,1 10,2
- ↑
- ↑
- ↑
- ↑
- ↑
- ↑
- ↑
- ↑ ANSI X9.62-2005, Public Key Cryptography for the Financial Services Industry: The Elliptic Curve Digital Signature Algorithm (ECDSA)
- ↑ Hochspringen nach: 19,0 19,1 19,2 19,3 19,4 19,5 https://bada55.cr.yp.to/bada55-20150927.pdf
- ↑ Hochspringen nach: 20,0 20,1 20,2 20,3 https://safecurves.cr.yp.to/rigid.html
- ↑ (ECDSA)
- ↑ https://www.miracl.com/press/backdoors-in-nist-elliptic-curves
- ↑
- ↑
- ↑
- ↑ https://www.secg.org/sec2-v2.pdf
- ↑ [1]
- ↑ https://www.schneier.com/blog/archives/2013/09/the_nsa_is_brea.html#c1675929