Verfügbare kryptographische Software Kathrin Tofall

Download Report

Transcript Verfügbare kryptographische Software Kathrin Tofall

Verfügbare kryptographische
Software
Kathrin Tofall
Übersicht
-
-
-
Verfügbare Bibliotheken
Java, C++, Basic etc.
Beispiele/Einzelprogramme
Rjindael, RSA, Elliptische Kurven
Online-benutzbare Verschlüsselungen
Vigenère, Caesar usw.
Einige Bibliotheken









borZoi (http://dragongate-technologies.com/products.html)
Botan (http://botan.randombit.net/)
Bouncy Castle Crypto (http://www.bouncycastle.org/latest_releases.html)
Catacomb (http://www.excessus.demon.co.uk/misc-hacks/#catacomb)
Cryptix (http://www.cryptix.org/)
Cryptlib (http://www.cs.auckland.ac.nz/%7Epgut001/cryptlib/)
Crypto++ (http://www.eskimo.com/~weidai/cryptlib.html)
Miracl (http://indigo.ie/~mscott/#download)
Secude Toolkit (http://indigo.ie/~mscott/#download)
borZoi

C++
 Open Source
 Unterstützt folgende Algorithmen (auf elliptische Kurven)
- Elliptic Curve Diffie-Hellman Key Agreement Scheme
- ECDSA (Elliptic Curve Digital Signature Algorithm)
- ECIES (Elliptic Curve Integrated Encryption Scheme)
- AES (Symmetric Encryption Scheme)
- SHA-1 (Hash Algorithm)

Handbuch
 Autor: Anthony Mulcahy
Botan

C++
 Open Source
 Autor: Jack Lloyd
 Dokumentation
Beinhaltet Algorithmen aus folgenden Gebieten:
• Public Key Algorithmen
(Diffie-Hellman, DSA, ElGamal, Nyberg-Rueppel, Rabin-Williams, RSA )
• Stream Ciphers
(ARC4, ISAAC, SEAL, WiderWake4+1)
Botan
•
Block Ciphers
(Blowfish, CAST-128, CAST-256, CS-Cipher, DES/DESX/TripleDES, GOST, IDEA,
Lion, Luby-Rackoff, MISTY1, RC2, RC5, RC6, Rijndael, SAFER-SK, Serpent,
SHARK, Skipjack, Square, TEA, Threeway, Twofish, XTEA)
•
Hash Functions
(HAS-160, HAVAL, MD2, MD4, MD5, RIPEMD-128, RIPEMD-160, SHA-160, SHA256, SHA-384, SHA-512, Tiger, Whirlpool)
•
Checksums
(Adler32, CRC24, CRC32 )
• MACs
(ANSI X9.19 MAC, EMAC, HMAC, MD5-MAC)
Bouncy Castle Crypto

Java
 Open Source
 Scheint kein eigenes Handbuch zu haben
Enthält unter anderem folgendes:
 SHA1, MD2, MD4, MD5
 AES, DES, IDEA, RSA
 ElGamal
Catacomb

C
 Open Source
 Kurze Beschreibung mit im Zip-File
Unterstützt u.a.
 Block Ciphers
 Secret Sharing
 RSA Padding Support
 Hash Funktionen
 Public Key Algorithmen
Man braucht zusätzlich mLib
(http://www.excessus.demon.co.uk/misc-hacks/#mLib).
Cryptix

Java
 Open Source
Unterstützt angeblich mehr Algorithmen als jede andere verfügbare JavaKrypto-Bibliothek, u.a.
- DES, Rjindael/AES
- Block-Cipher
- Hash-Funktionen
- ElGamal
Cryptlib







C
Open Source
Manual
Weit verbreitete Verschlüsselungsalgorithmen und -systeme
Digitale Unterschriften und Schlüsselerzeugungsroutinen
S/MIME, SSL/TLS, Authentifizierungsservices wie CMP and
OCSP,
Bietet ein komplettes Public/Private-Key Interface
Crypto++

C++
 Open Source
 Kurze Beschreibungen im Zip-File
Enthält u.a. folgendes:
- AES und AES-Kandidaten RC6, MARS, Twofish, Serpent, CAST256
- Symmetric Block Ciphers
IDEA, DES, Triple-DES, RC2, RC5, Blowfish, SHARK etc.
- Generic Cipher Modes: ECB, CBC, CFB, OFB
- Stream Ciphers: Panama, ARC4, BLumBlumShub usw.
- Public Key: RSA, DAS, ElGamal, NR, Rabin, Rabin-Williams...
- Padding Schemes: PKCS, OAEP...
Crypto++
-
Schlüsselaustausch: Diffie-Hellmann, Menezes-Qu-Vanstone...
Elliptische Kurven: ECDSA, ECNR, ECIES, ECDH, ECMQV
One-Way-Hash-Functions: SHA1, MD2, MD4, MD5...
Authentifizierungscodes: MD5-MAC, HMAC...
Pseudozufallsgeneratoren: ANSI X9.17, PGP‘s RandPool
Shamirs Secret Sharing Scheme
Kompression/Dekompression
Schnelle Integer- und Polynomoperationen
Arithmetik über endlichen Körpern (p, 2^n)
Primzahlgenerierung, - verifizierung
CrypTool

Freeware
 Demonstrations- und Referenzprogramm für Kryptographie
 Deutsch und englisch
 Wird von der TU Darmstadt weiterentwickelt
Enthält Programme zum/zur/zu
- Verschlüsseln (Cäsar, RSA, AES, elliptische Kurven)
- Automatische Analysen für klassische Verschlüsselungsverfahren
- Hashfunktionen, Zufallsdaten
- Komprimierung/Dekomprimierung
CrypTool


Online-Hilfe
Skript mit eher mathematisch orientierten Informationen zu
kryptographischen Verfahren, zu Primzahlen und zur elementaren
Zahlentheorie
Benutzt folgende Bibliotheken:
 Secude-Toolkit (Version 5.4.15) der Secude GmbH für Hashfunktionen, symmetrische und asymmetrische Verschlüsselungsverfahren und
das Schlüsselmanagement
 Miracl (Version 4.4.3) der Shamus Software Ltd für die Langzahlarithmetik (zur Demonstration des RSA-Kryptosystem und zur Faktorisierung von Zahlen) zu
Miracl

C/C++
 Open Source
 Umfangreiches Handbuch, in dem alle Routinen beschrieben werden
Folgende Routinen sind z.B. enthalten
- Mersenne-Zahlen generieren
- Faktorisieren mit Hilfe von
Brute Force, Brent-Pollard, Pollard, Williams, Lenstra, Qsieve
- DL-Problembehandlung
Kangaroo, Pollard-Rho für DL
- Public Key
Demo zu Diffie-Hellmann/ElGamal, RSA, Standardmethoden für
digitale Signaturen, Routinen mir elliptischen Kurven
Secude Toolkit

Nicht frei verfügbar, aber Testversion
Folgende Produkte:
- SECUDE AuthenteMail for Outlook
- SECUDE FileSafe
- SECUDE SmartLogon
- SECUDE AuthenteMail for Lotus Notes
- SECUDE for mySAP.com
- SECUDE Secure Login
- SECUDE TransFair FrameWork
- SECUDE CA Management
- SECUDE SDK (C/C++)
- SECUDE SDK (Java)
Weitere Bibliotheken+Links

Mozilla (http://www.mozilla.org/projects/security/pki/nss/)
 Flexiprovider (http://www.flexiprovider.de/)
 OpenPGP Implementations (http://cypherspace.org/openpgp/)
 OpenCDK (http://www.winpt.org/opencdk.html)
 libgcrypt (ftp://ftp.gnupg.org/gcrypt/alpha/libgcrypt/)
Die Liste lässt sich natürlich noch fortsetzen.
Beispiele

Rijndael
 RSA
 Algorithmen über elliptischen Kurven
Beispiel I: Rijndael
Es gibt sehr viele Rjindael-Implementationen, auch
außerhalb von Krypto-Bibliotheken:

Maple, Universität Paderborn (Rijndael, Rijndael-Test)
 Matlab, Hochschule Bremen (Zip-File, PDF-engl., PDF-dt.)
 C/C++/Assembler, Brian Gladman
 C, Mike Scott
 C++, Szymon Stefanek
 Java, Paulo Barreto
 Visual Basic 6, Phil Fresle
 Delphi, EldoS Group
Auch diese Liste läßt sich natürlich noch fortsetzen.
Beispiel I: Rijndael
Implementierung u.a. in folgenden Bibliotheken:
- Catacomb
- Cryptix
- Crypto++
- CrypTool
Beispiel II - RSA

RSAEuro (außerdem DES, Diffie-Hellmann)
 RSA-Java-Implementation
 ‚Faster‘-Java-Implementation (Neal Wagner)
 RSA in Java und C
Bibliotheken
RSA ist in den meisten Bibliotheken enthalten
(Botan, Crypto++, Miracl)
Beispiel III – Ell. Kurven

EC-DL-Problem, IEEE P1363 Home Page
 Verschiedenes (Papers, Software, Links)
 Crypto Kong benutzt elliptische Kurven
 Elliptic Package
 Links zu ell. Kurven (Anwendungen/Formales)
Bibliotheken:
- borZoi
- Crypto++
Verschiedenes

Krypto-Bibliotheken für JAVA
Im Rahmen des Forschungsverbundes Datensicherheit NRW ist ein Überblick zu verfügbarenKrypto-Bibliotheken entstanden. Diese Bibliotheken lassen sich einfach in Java integrieren, so
dass über definierte Schnittstellen auf kryptographische Funktionen zugegriffen werden kann
Online-Verfügbares








Affine-Cipher
Euklidischer Algorithmus
Keyword-Cipher
Rail-Fence-Cipher
RSA-Berechnung
RSA-Simulation mit JavaScript
Transposition-Cipher
Vigenère-Cipher