
.. image:: https://github.com/Legrandin/pycryptodome/workflows/Integration%20test/badge.svg :target: https://github.com/Legrandin/pycryptodome/actions
.. image:: https://badge.fury.io/py/pycryptodome.svg :target: https://pypi.org/project/pycryptodome
.. image:: https://badge.fury.io/py/pycryptodomex.svg :target: https://pypi.org/project/pycryptodomex
PyCryptodomeは、低レベルの暗号プリミティブを提供する自己完結型のPythonパッケージです。
Python 2.7、Python 3.7以降、およびPyPyをサポートしています。
インストール手順は、ライブラリをどのパッケージに入れたいかによって異なります。PyCryptodomeは次のように使用できます。
#. 旧PyCryptoライブラリのほぼドロップイン代替品。 次のようにインストールします::
pip install pycryptodome
この場合、すべてのモジュールは Crypto パッケージの下にインストールされます。
PyCryptoとPyCryptodomeの両方を同時にインストールすることは避ける必要があります。互いに干渉するためです。
したがって、このオプションは、アプリケーション全体が virtualenv にデプロイされていることが確実な場合にのみ推奨されます。
#. 旧PyCryptoから独立したライブラリ。 次のようにインストールします::
pip install pycryptodomex
この場合、すべてのモジュールは Cryptodome パッケージの下にインストールされます。PyCryptoとPyCryptodomeは共存できます。
Unixで公開鍵操作を高速化するには、システムに GMP_ をインストールする必要があります。
PyCryptodomeはPyCryptoのフォークです。PyCryptoの最後の公式バージョン(2.6.1)に比べて、以下の機能が強化されています。
認証付き暗号化モード(GCM、CCM、EAX、SIV、OCB、KW、KWP)
ハイブリッド公開鍵暗号(HPKE)
AES-NIによるIntelプラットフォームでのAES高速化
PyPyのファーストクラスサポート
楕円曲線暗号(NIST P曲線、Ed25519、Ed448、Curve25519、Curve448)
より良い、よりコンパクトなAPI(暗号の nonce および iv 属性、ランダムなnonceとIVの自動生成、簡素化されたCTR暗号モードなど)
SHA-3ハッシュアルゴリズム(FIPS 202)および派生関数(NIST SP-800 185):
KangarooTwelve、TurboSHAKE128、TurboSHAKE256 XOF
切り詰められたハッシュアルゴリズム SHA-512/224 および SHA-512/256(FIPS 180-4)
BLAKE2bおよびBLAKE2sハッシュアルゴリズム
Salsa20およびChaCha20/XChaCha20ストリーム暗号
Poly1305 MAC
ChaCha20-Poly1305およびXChaCha20-Poly1305認証付き暗号
scrypt、bcrypt、HKDF、およびNIST SP 800 108r1カウンターモード鍵導出関数
決定論的(EC)DSAおよびEdDSA
パスワード保護されたPKCS#8鍵コンテナ
シャミアの秘密分散法
乱数はOSから直接取得されます(ユーザー空間のCSPRNGからではありません)
簡素化されたインストールプロセス(Windowsサポートの向上を含む)
よりクリーンなRSAおよびDSA鍵生成(主にFIPS 186-4に基づく)
コードベースの大幅な整理と簡素化
PyCryptodomeは、OpenSSL のような独立したCライブラリのラッパーではありません。アルゴリズムは可能な限り純粋なPythonで実装されています。ブロック暗号など、パフォーマンスに極めて重要な部分のみがC拡張として実装されています。
詳細については、homepage_ を参照してください。
セキュリティの問題については、[email protected] までメールをお送りください。
すべてのコードは GitHub_ からダウンロードできます。
.. _homepage: https://www.pycryptodome.org
.. _GMP: https://gmplib.org
.. _GitHub: https://github.com/Legrandin/pycryptodome