Crypto++
(CryptoPP libcrypto ++ 'libcryptopp' )は、フリーでオープンソースの[[C ++] ] 暗号 アルゴリズムのクラスライブラリおよびWei Daiによって書かれたスキーム。 Crypto ++は、アカデミア、学生プロジェクト、オープンソースおよび非商用プロジェクト、そしてビジネスで広く使用されています。 1995年にリリースされたこのライブラリは、Androidを含む多くの主要なオペレーティングシステムとプラットフォーム([[STLport]を使用))、 ([Apple Inc. | Apple])(Mac OS XとiOS)、[BSD]、[Cygwin]、IBM AIX、[[IBM ESA / 390 | S / 390] ]、Linux、MinGW、[Solaris(オペレーティングシステム)| Solaris]、[Microsoft Windows | Windows]、[Windows Phone]、[Windows RT]このプロジェクトでは、C ++ 03、C ++ 11、およびC ++ 17ランタイムライブラリを使用したコンパイルもサポートされています。 Borland C ++ | Borland Turbo C ++]、[Borland C ++ | Borland C ++ Builder]、Clangなどのさまざまなコンパイラと[[統合開発環境| IDE] CodeWarrior Pro、[GNU Compiler Collection | GCC](AppleのGCCを含む)、インテルC ++コンパイラ(ICC)、[[Visual C ++ | Microsoft Visual C / C ++] ]、 Sun Studioを選択します。
アルゴリズム[編集]
Crypto ++は通常、完全な暗号化の実装を提供し、あまり一般的でなく、頻繁に使用されないスキームも含みます。例えば、 CamelliaはISO標準化機構 / NESSIE / IETF - 承認された[[ブロック暗号] AES]] [Whirlpool(暗号化)| Whirlpool]は[ISO標準化機構] / [NESSIE] / IETF承認済みの[[ハッシュ関数] ] SHAとほぼ同じです。どちらもライブラリに含まれています。
さらに、Crypto ++ライブラリは、暗号化コミュニティによる研究のために、提案された最新のアルゴリズムと実装を利用できることがあります。例えば、 Internet Engineering Task Force(CFRG Working Group)への提出中に、汎用のハッシュベースのメッセージ認証コード VMACがライブラリに追加されました。 ; 2009年3月にRFC 5639のインターネットドラフトとして提案されたBrainpool曲線は、同じ月にCrypto ++ 5.6.0に追加されました。
+ Crypto ++のアルゴリズムと実装
!プリミティブかオペレーション!アルゴリズムまたは実装 |
- | 擬似乱数発生器 s | LCG、 KDF2、Blum Blum Shub、ANSI X9.17、[Mersenne Twister]、[RDRAND | RDRANDとRDSEED]] | - | 高速ストリーム暗号 | ChaCha8 / 12/20]]、[Panama(暗号)| Panama]、[SOSEMANUK]、[Salsa20]、XSalsa20 | - | AESとAES候補 | Rijndael([Advanced Encryption Standard process | AES selection])、[RC6]、[MARS(暗号化)| MARS]、[Twofish]、[蛇(暗号)|蛇]]、CAST-256 | - | その他のブロック暗号 | IDEA、Triple-DES(DES-EDE2とDES-EDE3)、[Camellia(暗号)| Camellia]]、SEED、RC5 、 Blowfish、 TEA、XTEA、[Skipjack(暗号)| Skipjack]]、SHACAL-2 | - | 操作のブロック暗号モード | CBC、[暗号文の盗用| CTS]、 CFB、 OFB、 CTR | - | 認証された暗号化モード | CCM、 GCM、 EAX | - | Block Ciphers Padding Schemes | PKCS#5、 PKCS#7、ゼロ、 1と0 | - | メッセージ認証コード | VMAC、HMAC、[CMAC]、[CBC-MAC]、 DMAC、2トラックMAC | - | 暗号ハッシュ関数 | SHA-224、SHA-256、SHA-384、SHA-384、SHA-256、SHA- (RIPEMD-128、RIPEMD-160、RIPEMD-256、およびRIPEMD-128)、[SHA-512]、SHA3、[Tiger(暗号化)| Tiger]、[WHIRLPOOL] 320) | - | パスワードベースのキー導出関数 | PKCS#12付録B]からのPBKDF、[Key derivation関数| KrawczykとEronenのHKDFからのPBKDF] PBKDF1と[[PBKDF2] ]] | - | 公開鍵暗号 | RSA、[デジタル署名アルゴリズム| DSA]、[ElGamal]、[Nyberg-Rueppel](NR)、[Rabin-Williams] [Lucas sequence#Applications | LUC]]、LUCELG、DLIES([DHAES]の亜種)、ESIGN | - | 公開鍵システムのための埋め込みスキーム | PSS]、PSSR、IEEE P1363 EMSA2および[[EMSA5] | - | 鍵合意方式 | Hashed MQV] (HMQV)、[Menezes-Qu-Vanstone |完全にハッシュされたMQV](FHMQV)、LUCDIF、XTR-DH | - | 楕円曲線暗号 | ECDSA、ECNR、ECIES、ECDH、ECMQV | - | シークレットシェアリング | Shamirの秘密分散スキーム]、 Rabinの情報分散アルゴリズム(IDA) |
ライブラリはまた、高速多倍精度整数のような数論的操作のためのプリミティブを利用可能にする。素数生成と検証。 GF(p)およびGF(2n n / sup)を含む有限体演算;楕円曲線。多項式演算。
MD2、MD4、MD5、パナマハッシュ、DES、ARC4、SEAL 3.0、WAKE、WAKE-OFB、DESX(DES-XEX3)、RC2、およびその他の旧バージョンとの互換性と履歴値のための安全でないアルゴリズムや陳腐化していないアルゴリズムのコレクションを保持しています。より安全、3-Way、GOST、SHARK、CAST-128、およびSquare。
パフォーマンス[編集]
Ashraf AbusharekhとKris Kajは、8つの[Library(computing)| libraries]の実装[public key]実装に焦点を当てた2007年のECRYPTワークショップで、 "Crypto ++ 5.1 nowiki> [sic] < ; / nowiki&gt;は、暗号化プリミティブとスキームのサポートの面でリードしていますが、調査されたすべてのライブラリの中で最も遅いです。
2008年には、Timo Bingmannが15個の[ブロック暗号]、Crypto ++ 5.5.2で7つのオープンソース [セキュリティライブラリ]を使用して実行したスピードテストは、残りのブロック暗号の下で平均ライブラリ性能を下回っていませんでした。
Crypto ++には、コマンドライン( cryptest.exe b )から利用できる自動ベンチマーク機能も含まれています。その結果は、 Crypto ++ 5.6.0 Benchmarks にあります。
Crypto ++には、32ビットおよび64ビットの[[x86アーキテクチャ]アーキテクチャー]で利用可能な他の多くの暗号化ライブラリと同様に、[AES-NI]を使用した[Advanced Encryption Standard | AES] ]。 AES-NIでは、AESのパフォーマンスが大幅に向上します。128ビットの[Advanced Encryption Standard | AES] / GCMスループットは、1バイトあたり約28.0サイクルから1バイトあたり3.5サイクルに増加します。
バージョンリリース[編集]
Crypto ++ 1.0は1995年6月にリリースされました。最初のリリース以来、ライブラリはバージョン5.0でのアーキテクチャの変更を含む約2ダースの改訂を見ました。 2013年2月現在、バージョン5.0アーキテクチャを使用している9つのリリースがあります。
+ Crypto ++リリース5.0以降
!バージョン !!リリース日 |
- | Crypto ++ 5.0 | 2002年9月11日 | - | Crypto ++ 5.1 | 2003年3月24日 | - | Crypto ++ 5.2.1 | 2004年7月21日 | - | Crypto ++ 5.4 | 2006年12月23日 | - | Crypto ++ 5.5.1 | 2007年5月25日 | - | Crypto ++ 5.5.2 | 2007年9月24日 | - | Crypto ++ 5.6.0 | 2009年3月15日 | - | Crypto ++ 5.6.1 | 2010年8月9日 | - | Crypto ++ 5.6.2 | 2013年2月20日 | - | Crypto ++ 5.6.3 | 2015年11月20日 | - | Crypto ++ 5.6.4 | 2016年9月11日 | - | Crypto ++ 5.6.5 | 2016年10月11日 |
Lawrence Teoの1995年までのCrypto ++の以前のリリースの解説は、ユーザーグループのアーカイブにあります。
FIPS検証[編集]
Crypto ++は、検証後の問題がなく、3つの[FIPS(Federal Information Processing Standard)] 140-2レベル1モジュールの検証を受けました。
+ FIPSで検証済みのCrypto ++モジュール
!バージョン !!証明書!日付 |
- | Crypto ++ 5.0.4 | 証明書343 | 2003-09-05、2005-10-28 | - | Crypto ++ 5.2.3 | 証明書562 | 2005-07-29、2005-08-24、2005-10-28 | - | Crypto ++ 5.3.0 | 証明書819 | 2007-08-13、2007-08-17 |
ライセンス[編集]
バージョン5.6.1から、Crypto ++はパブリックドメインファイルのみで構成され、編集著作権とコンパイル用のオープンソースライセンスが1つあります: