Crypto ++ - Crypto++
Vývojáři | původně Wei Dai, projekt Crypto ++ od roku 2015 |
---|---|
První vydání | 1995 |
Stabilní uvolnění | 8.2 / 28. dubna 2019 |
Úložiště | |
Napsáno | C ++ |
Operační systém | Cross-platform |
Typ | Bezpečnostní knihovna |
Licence | Zvyšte licenci softwaru (dříve Licence Crypto ++ ) / jednotlivé soubory do veřejná doména |
webová stránka | www |
Crypto ++ (také známý jako CryptoPP, libcrypto ++, a libcryptopp) je zdarma a open-source C ++ třída knihovna z kryptografické algoritmy a schémata napsaná uživatelem Wei Dai. Crypto ++ byl široce používán v akademické sféře, studentských projektech, open source a nekomerčních projektech i v podnicích.[1] Vydáno v roce 1995, knihovna plně podporuje 32-bit a 64-bit architektury pro mnoho hlavních operačních systémů a platforem, včetně Androidu (pomocí STLport ), Jablko (Mac OS X a iOS), BSD, Cygwin, IBM AIX a S / 390, Linux, MinGW, Solaris, Okna, Windows Phone a Windows RT. Projekt také podporuje kompilaci pomocí běhových knihoven C ++ 03, C ++ 11 a C ++ 17; a různé překladače a IDE, počítaje v to Borland Turbo C ++, Borland C ++ Builder, Zvonit, CodeWarrior Pro, GCC (včetně GCC společnosti Apple), Překladač Intel C ++ (ICC), Microsoft Visual C / C ++, a Sun Studio.
Algoritmy
Crypto ++ obvykle poskytuje kompletní kryptografické implementace a často zahrnuje méně populární a méně často používaná schémata. Například, Kamélie je ISO /NESSIE /IETF -schválený bloková šifra zhruba ekvivalent k AES, a vířivá vana je ISO /NESSIE /IETF -schválený hashovací funkce zhruba ekvivalent k SHA; oba jsou obsaženy v knihovně.[2][3]
Knihovna Crypto ++ navíc někdy umožňuje navrhované a krvácející algoritmy a implementace dostupné pro studium kryptografickou komunitou. Například, VMAC, univerzální hash-based ověřovací kód zprávy, byl přidán do knihovny během jejího odeslání do Pracovní skupina pro internetové inženýrství (pracovní skupina CFRG); a Brainpoolovy křivky, navržené v březnu 2009 jako Koncept internetu v RFC 5639, byly přidány do Crypto ++ 5.6.0 ve stejném měsíci.[4][5]
Knihovna také zpřístupňuje primitiva pro teoretické operace s čísly, jako jsou rychlá celá čísla s přesnou přesností; generování a ověřování prvočísel; aritmetika konečných polí, včetně GF (p) a GF (2n); eliptické křivky; a polynomiální operace.
Knihovna dále uchovává soubor nezabezpečených nebo zastaralých algoritmů pro zpětnou kompatibilitu a historickou hodnotu: MD2, MD4, MD5, Panama Hash, DES, ARC4, SEAL 3.0, WAKE, WAKE-OFB, DESX (DES-XEX3), RC2, SAFER, 3-WAY, GOST, SHARK, CAST-128, and Square.
Výkon
V roce 2007 ECRYPT seminární práce zaměřená na veřejný klíč implementace osmi knihovny, Ashraf Abusharekh a Kris Kaj zjistili, že „Crypto ++ 5.1 [sic] vede, pokud jde o podporu kryptografických primitiv a schémat, ale je nejpomalejší ze všech zkoumaných knihoven.“[6]
V roce 2008 provedl testy rychlosti Timo Bingmann pomocí sedmi open-source bezpečnostní knihovny s 15 blokové šifry „Crypto ++ 5.5.2 byla nejvýkonnější knihovnou pod dvěma blokovými šiframi a nezařadila se pod průměrný výkon knihovny pod zbývajícími blokovými šiframi.[7]
Crypto ++ také obsahuje funkci automatického srovnávání, která je k dispozici z příkazového řádku (cryptest.exe b), jehož výsledky jsou k dispozici na Crypto ++ 5.6.0 Benchmarky.[8]
Stejně jako u mnoha jiných kryptografických knihoven dostupných pro 32bitové a 64bitové verze x86 architektury, Crypto ++ zahrnuje montážní rutiny pro AES použitím AES-NI. S AES-NI se výkon AES dramaticky zlepšuje: 128bitový AES /GCM propustnost se zvyšuje z přibližně 28,0 cyklů na bajt na 3,5 cyklů na bajt.[9][10][11]
Vydání verzí
Crypto ++ 1.0 byl vydán v červnu 1995. Od svého počátečního vydání prošla knihovna téměř dvěma desítkami revizí, včetně architektonické změny ve verzi 5.0.[12][13] Od března 2009 bylo vydáno deset verzí používajících architekturu verze 5.0.[14]
Verze | Datum vydání |
---|---|
Crypto ++ 5.6.0 | 15. března 2009 |
Crypto ++ 5.6.1 | 9. srpna 2010 |
Crypto ++ 5.6.2 | 20. února 2013 |
Crypto ++ 5.6.3 | 20. listopadu 2015 |
Crypto ++ 5.6.4 | 11. září 2016 |
Crypto ++ 5.6.5 | 11. října 2016 |
Crypto ++ 6.0.0 | 22. ledna 2018 |
Crypto ++ 6.1.0 | 22. února 2018 |
Crypto ++ 7.0.0 | 8. dubna 2018 |
Crypto ++ 8.0.0 | 28. prosince 2018 |
Crypto ++ 8.1.0 | 11. února 2019 |
Crypto ++ 8.2.0 | 28.dubna 2019 |
Kompilaci předchozích vydání Crypto ++ od Lawrencea Tea z roku 1995 najdete v archivech skupiny uživatelů.[15]
Ověření FIPS
Crypto ++ obdržel tři Federální standard pro zpracování informací (FIPS) Ověření modulu 140-2 úrovně 1 bez problémů po ověření.[16]
Verze | Osvědčení | Termíny |
---|---|---|
Crypto ++ 5.0.4 | Certifikát 343[17] | 2003-09-05, 2005-10-28 |
Crypto ++ 5.2.3 | Osvědčení 562[18] | 2005-07-29, 2005-08-24, 2005-10-28 |
Crypto ++ 5.3.0 | Osvědčení 819[19] | 2007-08-13, 2007-08-17 |
Crypto ++ byl přesunut do CMVP Seznam historických ověření v roce 2016. Tento krok efektivně znamená, že knihovna již není ověřována.
Licencování
Od verze 5.6.1 se Crypto ++ skládá pouze z veřejná doména soubory s autorskými právy ke kompilaci a jediným souborem open source licence pro autorská práva ke kompilaci:[20]
Licence Crypto ++ je mezi projekty open source poněkud neobvyklá. Rozlišuje se mezi knihovnou jako sestavení (tj. kolekce), která je chráněna autorskými právy Wei Dai a jednotlivé soubory v něm, které jsou veřejná doména Knihovna je chráněna autorskými právy jako kompilace, aby bylo možné do licence umístit určitá zřeknutí se odpovědnosti (týkající se záruky, exportu a patentů) a zachovat neporušené atributy a prohlášení o veřejné doméně, pokud je Crypto ++ distribuován ve formě zdrojového kódu. Skutečnost, že jednotlivé soubory jsou veřejnou doménou, znamená, že legálně můžete do svého vlastního projektu umístit segmenty kódu, celé soubory nebo malé sady souborů (až do limitu stanoveného čestným použitím) a dělat s nimi cokoli chcete, aniž byste se museli starat o autorská práva.
Viz také
Reference
- ^
- J. Kelsey, B. Schneier, D. Wagner, C. Hall (1998). „Kryptanalytické útoky na generátory pseudonáhodných čísel“. Rychlé softwarové šifrování, 5. mezinárodní sborník. http://www.schneier.com/paper-prngs.pdf. Citováno 2010-08-10.
- C. Adjih, D. Raffo, P. Mühlethaler (2004). „OLSR: Distributed Key Management for Security“ Archivováno 21.07.2011 na Wayback Machine. Nezávislý výzkum. http://www2.lifl.fr/SERAC/downloads/attacks-olsr-dkm.pdf . Citováno 2010-08-10.
- X. Yinglian, M. K. Reiter, D. O'Hallaron (2006). „Ochrana soukromí v systémech vyhledávání klíčových hodnot“. Konference o aplikacích zabezpečení počítače (ACSAC). https://www.cs.cmu.edu/~ylxie/papers/report03.pdf. Citováno 2010-08-10.
- T. Zidenberg (2010). „Optimalizace knihovny Crypto ++ pro P4“ Archivováno 21.07.2011 na Wayback Machine. Technion, Izraelský technologický web. http://softlab-pro-web.technion.ac.il/projects/cryptoppopt/html/projectBook.html . Citováno 2010-08-10.
- ^ „První japonská 128bitová bloková šifra„ Camellia “schválena jako nový standardní šifrovací algoritmus na internetu“. physorg.com. Citováno 2010-08-12.
- ^ A. Hartikainen; T. Toivanen; H. Kiljunen (2005). Msgstr "Funkce hašování Whirlpool". Zabezpečená komunikace, seminář. Lappeenranta University of Technology. CiteSeerX 10.1.1.98.6099. Chybějící nebo prázdný
| url =
(Pomoc) - ^ „Standardní eliptické křivky kryptografie (ECC) Brainpool a generování křivek“. RFC 5639. IETF. 2009. Citováno 2010-08-08.
- ^ „Poznámky k verzi Crypto ++ 5.6.0“. Web Crypto ++. 2009. Citováno 2010-08-08.
- ^ A. Abusharekh; K. Kaj (2007). „Srovnávací analýza softwarových knihoven pro kryptografii veřejných klíčů“ (PDF). Workshop ECRYPT o vylepšení výkonu softwaru pro šifrování a dešifrování. Citováno 2010-08-12.[trvalý mrtvý odkaz ]
- ^ T. Bingmann (2008). „Rychlý test a srovnání knihoven kryptografie s otevřeným zdrojovým kódem a příznaků kompilátoru“. Weblog Timo Bingmann. Citováno 2010-08-10.
- ^ „Crypto ++ 5.6.0 Benchmarky“. Web Crypto ++. 2009. Citováno 2010-08-10.
- ^ P. Schmid; A. Roos (2010). „Analyzován výkon AES-NI“. Tomův hardware. Citováno 2010-08-10.
- ^ T. Krovetz; W. Dai (2010). „Chybná detekce endometrie MIPS a jak získat rychlé volání AES?“. Skupina uživatelů Crypto ++. Citováno 2010-08-11.
- ^ „Benchmarky Crypto ++ 5.6.0 Pentium 4“. Web Crypto ++. 2009. Citováno 2010-08-10.
- ^ Oznámení (2002). „K dispozici je beta verze Crypto ++ 5.0“. Seznam adresářů Crypto ++. Citováno 2010-08-09.
- ^ Oznámení (2002). „Aktualizace Crypto ++ 5.0“. Seznam adresářů Crypto ++. Citováno 2010-08-09.
- ^ "Seznam oznámení Crypto ++". Sourceforge.net. Citováno 2010-08-14.
- ^ L. Teo (2002). „Data vydání předchozích verzí“. Seznam adresářů Crypto ++. Citováno 2010-08-09.
- ^ „Bezpečnostní zásady knihovny Crypto ++ verze 5.3.0 [32bitová a 64bitová]“ (PDF). Program ověřování kryptografických modulů (CMVP). 2007. Citováno 2010-08-08.
- ^ „Ověřené kryptografické moduly FIPS 140-1 a FIPS 140-2 (2003)“. Program ověřování kryptografických modulů (CMVP). 2003. Citováno 2010-08-08.
- ^ „Ověřené kryptografické moduly FIPS 140-1 a FIPS 140-2 (2005)“. Program ověřování kryptografických modulů (CMVP). 2005. Citováno 2010-08-08.
- ^ „Ověřené kryptografické moduly FIPS 140-1 a FIPS 140-2 (2007)“. Program ověřování kryptografických modulů (CMVP). 2007. Citováno 2010-08-08.
- ^ "Autorské právo na kompilaci pro Crypto ++". Web Crypto ++. Citováno 2010-08-15.
externí odkazy
- Oficiální webové stránky
- Crypto ++ projekt GitHub
- Seznam projektů, které používají Crypto ++ (Zahrnuje neziskové a neziskové projekty)
- Skupina uživatelů Crypto ++