
Python용 자체 포함 암호화 라이브러리
.. 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 키 컨테이너
Shamir의 비밀 공유(Secret Sharing) 기법
난수는 사용자 공간의 CSPRNG가 아닌 OS에서 직접 가져옵니다
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