<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Crypto%2B%2B</id>
	<title>Crypto++ - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://en.zaoniao.it/index.php?action=history&amp;feed=atom&amp;title=Crypto%2B%2B"/>
	<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Crypto%2B%2B&amp;action=history"/>
	<updated>2026-06-10T10:08:45Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.32.0</generator>
	<entry>
		<id>http://en.zaoniao.it/index.php?title=Crypto%2B%2B&amp;diff=2346&amp;oldid=prev</id>
		<title>Admin: Created page with &quot;'''Crypto++''' (also known as '''CryptoPP''', '''libcrypto++''', and '''libcryptopp''') is a free and open source C++ class library of [...&quot;</title>
		<link rel="alternate" type="text/html" href="http://en.zaoniao.it/index.php?title=Crypto%2B%2B&amp;diff=2346&amp;oldid=prev"/>
		<updated>2019-03-20T04:17:21Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;&amp;#039;&amp;#039;&amp;#039;Crypto++&amp;#039;&amp;#039;&amp;#039; (also known as &amp;#039;&amp;#039;&amp;#039;CryptoPP&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;libcrypto++&amp;#039;&amp;#039;&amp;#039;, and &amp;#039;&amp;#039;&amp;#039;libcryptopp&amp;#039;&amp;#039;&amp;#039;) is a free and &lt;a href=&quot;/Open_source&quot; title=&quot;Open source&quot;&gt;open source&lt;/a&gt; &lt;a href=&quot;/index.php?title=C%2B%2B&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;C++ (page does not exist)&quot;&gt;C++&lt;/a&gt; class &lt;a href=&quot;/index.php?title=Library_(computer_science)&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Library (computer science) (page does not exist)&quot;&gt;library&lt;/a&gt; of [...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;'''Crypto++''' (also known as '''CryptoPP''', '''libcrypto++''', and '''libcryptopp''') is a free and [[open source]] [[C++]] class [[Library (computer science)|library]] of [[Cryptography|cryptographic]] [[algorithms]] and schemes written by [[Wei Dai]]. Crypto++ has been widely used in academia, student projects, open source and non-commercial projects, as well as businesses. Released in 1995, the library fully supports [[32-bit]] and [[64-bit]] [[Computer architecture|architectures]] for many major operating systems and platforms, including Android (using [[STLport]]), [[Apple Inc.|Apple]] (Mac OS X and iOS), [[BSD]], [[Cygwin]], IBM [[IBM AIX|AIX]] and [[IBM ESA/390|S/390]], [[Linux]], [[MinGW]], [[Solaris (operating system)|Solaris]], [[Microsoft Windows|Windows]], [[Windows Phone]] and [[Windows RT]]. The project also supports compilation using C++03, C++11 and C++17 runtime libraries; and a variety of [[compilers]] and [[Integrated development environment|IDE]]s, including [[Borland C++|Borland Turbo C++]], [[Borland C++|Borland C++ Builder]], [[Clang]], [[CodeWarrior|CodeWarrior Pro]], [[GNU Compiler Collection|GCC]] (including Apple's GCC), [[Intel C++ Compiler|Intel C++ Compiler (ICC)]], [[Visual C++|Microsoft Visual C/C++]], and [[Oracle_Developer_Studio|Sun Studio]].&lt;br /&gt;
&lt;br /&gt;
== Algorithms ==&lt;br /&gt;
Crypto++ ordinarily provides complete cryptographic implementations, and often includes less popular, less frequently-used schemes. For example, [[Camellia (cipher)|Camellia]] is an [[International Organization for Standardization|ISO]]/[[NESSIE]]/[[IETF]]-approved [[block cipher]] roughly equivalent to [[Advanced Encryption Standard|AES]], and [[Whirlpool (cryptography)|Whirlpool]] is an [[International Organization for Standardization|ISO]]/[[NESSIE]]/[[IETF]]-approved [[hash function]] roughly equivalent to [[Secure Hash Algorithm (disambiguation)|SHA]]; both are included in the library.&lt;br /&gt;
&lt;br /&gt;
Additionally, the Crypto++ library sometimes makes proposed and bleeding edge algorithms and implementations available for study by the cryptographic community. For example, [[VMAC]], a universal hash-based [[message authentication code]], was added to the library during its submission to the [[Internet Engineering Task Force|Internet Engineering Task Force (CFRG Working Group)]]; and Brainpool curves, proposed in March 2009 as an [[Internet Draft]] in RFC 5639, were added to Crypto++ 5.6.0 in the same month.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ Crypto++ algorithms and implementations&lt;br /&gt;
!Primitive or Operation !! Algorithms or Implementations&lt;br /&gt;
|-&lt;br /&gt;
| [[Pseudorandom number generator]]s&lt;br /&gt;
| [[Linear congruential generator|LCG]], [[KDF2 (cryptography)|KDF2]], [[Blum Blum Shub]], [[ANSI X9.17]], [[Mersenne Twister]], [[RDRAND|RDRAND and RDSEED]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Stream cipher|High speed stream ciphers]]&lt;br /&gt;
| [[ChaCha_(cipher)|ChaCha8/12/20]], [[Panama (cryptography)|Panama]], [[SOSEMANUK]], [[Salsa20]], [[XSalsa20]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Advanced Encryption Standard|AES]] and AES candidates&lt;br /&gt;
| [[Rijndael]] ([[Advanced Encryption Standard process|AES selection]]), [[RC6]], [[MARS (cryptography)|MARS]], [[Twofish]], [[Serpent (cipher)|Serpent]], [[CAST-256]]&lt;br /&gt;
|-&lt;br /&gt;
| [[block cipher|Other block ciphers]]&lt;br /&gt;
| [[International Data Encryption Algorithm|IDEA]], [[Triple-DES]] (DES-EDE2 and DES-EDE3), [[Camellia (cipher)|Camellia]], [[SEED]], [[RC5]], [[Blowfish (cipher)|Blowfish]], [[Tiny Encryption Algorithm|TEA]], [[XTEA]], [[Skipjack (cipher)|Skipjack]], [[SHACAL-2]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Block cipher modes of operation]]&lt;br /&gt;
| [[Block cipher modes of operation#Electronic codebook .28ECB.29|ECB]], [[Block cipher mode of operation#Cipher Block Chaining (CBC)|CBC]], [[Ciphertext stealing|CTS]], [[Block cipher modes of operation#Cipher feedback .28CFB.29|CFB]], [[Block cipher mode of operation#Output feedback .28OFB.29|OFB]], [[Block cipher modes of operation#Counter .28CTR.29|CTR]]&lt;br /&gt;
|-&lt;br /&gt;
| [[authenticated encryption|Authenticated encryption modes]]&lt;br /&gt;
| [[CCM mode|CCM]], [[Galois/Counter Mode|GCM]], [[EAX mode|EAX]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Padding (cryptography)|Block ciphers padding schemes]]&lt;br /&gt;
| [[PKCS|PKCS#5]], [[PKCS|PKCS#7]], [[Padding (cryptography)#Zero padding|Zeros]], [[Padding (cryptography)#Bit padding|One and zeros]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Message authentication codes]]&lt;br /&gt;
| [[VMAC]], [[HMAC]], [[CMAC]], [[CBC-MAC]], [[DMAC (cryptography)|DMAC]], [[Two-Track-MAC]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Cryptographic hash function]]&lt;br /&gt;
| [[BLAKE_(hash_function)|BLAKE2]] (BLAKE2b and BLAKE2s), [[Keccak]], [[SHA-1]], [[SHA-2]] (SHA-224, SHA-256, SHA-384, and SHA-512), [[SHA3]], [[Tiger (cryptography)|Tiger]], [[WHIRLPOOL]], [[RIPEMD]] (RIPEMD-128, RIPEMD-160, RIPEMD-256, and RIPEMD-320)&lt;br /&gt;
|-&lt;br /&gt;
| [[Key derivation function|Password based key derivation functions]]&lt;br /&gt;
| [[PBKDF1]] and [[PBKDF2]] from [[Public-Key Cryptography Standards|PKCS #5]], PBKDF from [[PKCS12|PKCS #12 appendix B]], [[Key derivation function|Krawczyk and Eronen's HKDF]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Public-key cryptography]]&lt;br /&gt;
| [[RSA (algorithm)|RSA]], [[Digital Signature Algorithm|DSA]], [[ElGamal]], [[Nyberg-Rueppel]] (NR), [[Rabin-Williams]] (RW), [[Lucas sequence#Applications|LUC]], [[LUCELG]], [[DLIES]] (variants of [[DHAES]]), [[ESIGN]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Padding (cryptography)#Public key cryptography|Padding schemes for public-key systems]]&lt;br /&gt;
| PKCS#1 v2.0, [[OAEP]], [[PSS (cryptography)|PSS]], [[PSSR]], [[IEEE P1363]] [[EMSA2]] and [[EMSA5]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Key-agreement protocol|Key agreement schemes]]&lt;br /&gt;
| [[Diffie–Hellman key exchange|Diffie-Hellman]] (DH), Unified Diffie-Hellman (DH2), [[Menezes-Qu-Vanstone]] (MQV), [[Menezes-Qu-Vanstone|Hashed MQV]] (HMQV), [[Menezes-Qu-Vanstone|Fully Hashed MQV]] (FHMQV), [[LUCDIF]], [[XTR-DH]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Elliptic curve cryptography]]&lt;br /&gt;
| [[ECDSA]], [[ECNR]], [[ECIES]], [[ECDH]], [[ECMQV]]&lt;br /&gt;
|-&lt;br /&gt;
| [[Secret sharing|Secret Sharing]]&lt;br /&gt;
| [[Shamir's Secret Sharing|Shamir's secret sharing scheme]], [[information dispersal algorithm|Rabin's information dispersal algorithm]] (IDA)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The library also makes available primitives for number theoretic operations such as a fast multi-precision integers; prime number generation and verification; finite field arithmetic, including GF(p) and GF(2&amp;amp;lt;sup&amp;amp;gt;n&amp;amp;lt;/sup&amp;amp;gt;); elliptical curves; and polynomial operations.&lt;br /&gt;
&lt;br /&gt;
Furthermore, the library retains a collection of insecure or obsolescent algorithms for backward compatibility and historical value: 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.&lt;br /&gt;
&lt;br /&gt;
== Performance ==&lt;br /&gt;
In a 2007 [[ECRYPT]] workshop paper focusing on [[public key]] implementations of eight [[Library (computing)|libraries]], Ashraf Abusharekh and Kris Kaj found that &amp;quot;Crypto++ 5.1 &amp;amp;lt;nowiki&amp;amp;gt;[sic]&amp;amp;lt;/nowiki&amp;amp;gt; leads in terms of support for cryptographic primitives and schemes, but is the slowest of all investigated libraries.&amp;quot;&lt;br /&gt;
&lt;br /&gt;
In 2008, speed tests carried out by Timo Bingmann using seven [[open source]] [[Library (computing)|security libraries]] with 15 [[block cipher]]s, Crypto++ 5.5.2 was the top performing library under two block ciphers, and did not rank below the average library performance under the remaining block ciphers.&lt;br /&gt;
&lt;br /&gt;
Crypto++ also includes an auto-benchmarking feature, available from the command line (''cryptest.exe b''), the results of which are available at ''Crypto++ 5.6.0 Benchmarks''.&lt;br /&gt;
&lt;br /&gt;
As with many other cryptographic libraries available for 32-bit and 64-bit [[x86]] [[Computer architecture|architectures]], Crypto++ includes assembly routines for [[Advanced Encryption Standard|AES]] using [[AES-NI]]. With AES-NI, AES performance improves dramatically: 128-bit [[Advanced Encryption Standard|AES]]/[[GCM mode|GCM]] throughput increases from approximately 28.0 cycles per byte to 3.5 cycles per byte.&lt;br /&gt;
&lt;br /&gt;
== Version releases ==&lt;br /&gt;
&lt;br /&gt;
Crypto++ 1.0 was released in June 1995. Since its initial release, the library has seen nearly two dozen revisions, including an architectural change in version 5.0. There have been nine releases using the version 5.0 architecture as of February 2013.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ Crypto++ releases since version 5.0&lt;br /&gt;
! Version !! Released Date&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;125pt&amp;quot; | Crypto++ 5.0&lt;br /&gt;
| width=&amp;quot;150pt&amp;quot; align=&amp;quot;right&amp;quot; | September 11, 2002&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.1&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | March 24, 2003&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.2.1&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | July 21, 2004&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.4&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | December 23, 2006&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.5.1&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | May 25, 2007&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.5.2&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | September 24, 2007&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.0&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | March 15, 2009&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.1&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | August 9, 2010&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.2&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | February 20, 2013&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.3&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | November 20, 2015&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.4&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | September 11, 2016&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.6.5&lt;br /&gt;
| align=&amp;quot;right&amp;quot; | October 11, 2016&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Lawrence Teo's compilation of previous Crypto++ releases dating back to 1995 can be found in the users group archives.&lt;br /&gt;
&lt;br /&gt;
== FIPS validations ==&lt;br /&gt;
&lt;br /&gt;
Crypto++ has received three [[Federal Information Processing Standard]] (FIPS) 140-2 Level 1 module validations with no post-validation issues.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ FIPS validated Crypto++ modules&lt;br /&gt;
! Version !! Certificate !! Dates&lt;br /&gt;
|-&lt;br /&gt;
| width=&amp;quot;120pt&amp;quot; | Crypto++ 5.0.4 || width=&amp;quot;120pt&amp;quot; | Certificate 343 || 2003-09-05, 2005-10-28&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.2.3 || Certificate 562 || 2005-07-29, 2005-08-24, 2005-10-28&lt;br /&gt;
|-&lt;br /&gt;
| Crypto++ 5.3.0 || Certificate 819 || 2007-08-13, 2007-08-17&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Licensing ==&lt;br /&gt;
&lt;br /&gt;
As of version 5.6.1, Crypto++ consists of only [[public domain]] files, with a compilation copyright and a single [[open source license]] for the compilation copyright:&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Computer science]]&lt;br /&gt;
* [[Symmetric cipher]]&lt;br /&gt;
* [[Comparison of cryptography libraries]]&lt;br /&gt;
&lt;br /&gt;
==Source==&lt;br /&gt;
&lt;br /&gt;
[http://wikipedia.org/ http://wikipedia.org/]&lt;br /&gt;
[[Category:Cryptography]]&lt;br /&gt;
[[Category:Cryptographic algorithms]]&lt;br /&gt;
[[Category:Open source]]&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
		
	</entry>
</feed>