
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
PyCryptodome는 저수준 암호화 프리미티브를 제공하는 자체 완결형 Python 패키지입니다. pip install 한 번이면 되고, 시스템 라이브러리가 필요 없으며, AES와 RSA부터 HPKE, KangarooTwelve, 포스트 양자 ML-DSA에 이르기까지 광범위하고 일관된 API를 제공합니다.
Python 3.9 이상과 PyPy를 지원합니다.
다음과 같이 설치합니다::
pip install pycryptodome
모든 모듈은 Crypto 패키지 아래에 설치됩니다.
.. code-block:: python
from Crypto.Cipher import AES
from Crypto.Random import get_random_bytes
key = get_random_bytes(32)
cipher = AES.new(key, AES.MODE_GCM) # a random nonce is generated
ciphertext, tag = cipher.encrypt_and_digest(b"attack at dawn")
receiver = AES.new(key, AES.MODE_GCM, nonce=cipher.nonce)
plaintext = receiver.decrypt_and_verify(ciphertext, tag) # raises ValueError if tampered
.. note::
버전 3.x까지는 이 라이브러리가 pycryptodomex 프로젝트로도 배포되었으며,
Cryptodome 패키지 아래에 설치되었습니다.
버전 4.0부터 pycryptodomex는 더 이상 배포되지 않으며,
Crypto가 유일한 패키지 이름입니다.
마이그레이션하려면 import에서 Cryptodome을 Crypto로 바꾸면 됩니다.
AES, RSA(OAEP 및 PSS 포함), DSA
인증 암호화 모드(GCM, CCM, EAX, SIV, OCB, KW, KWP)
하이브리드 공개 키 암호화(HPKE)
타원 곡선 암호화(NIST P-곡선; Ed25519, Ed448, Curve25519, Curve448)
포스트 양자 서명: ML-DSA 및 HashML-DSA(FIPS 204), 외부 mu 포함
간결한 API(암호화용 nonce 및 iv 속성,
무작위 nonce 및 IV 자동 생성, 단순화된 CTR 암호 모드
등)
SHA-2 해시 알고리즘, 잘린 SHA-512/224 및 SHA-512/256 포함(FIPS 180-4)
HMAC 및 CMAC
SHA-3 해시 알고리즘(FIPS 202) 및 파생 함수(NIST SP-800 185):
KangarooTwelve, TurboSHAKE128, TurboSHAKE256 XOF
BLAKE2b 및 BLAKE2s 해시 알고리즘
Salsa20 및 ChaCha20/XChaCha20 스트림 암호
Poly1305 MAC
ChaCha20-Poly1305 및 XChaCha20-Poly1305 인증 암호
scrypt, bcrypt, HKDF 및 NIST SP 800 108r1 카운터 모드 키 유도 함수
결정적 (EC)DSA 및 EdDSA
암호로 보호된 PKCS#8 키 컨테이너
Shamir의 비밀 공유 기법
운영 체제에서 직접 가져온 난수
Windows를 포함한 간단한 설치
대부분 FIPS 186-4를 기반으로 한 RSA 및 DSA 키 생성
자세한 내용은 homepage_를 참조하십시오.
보안 문제가 있는 경우 [email protected]로 이메일을 보내 주십시오.
모든 코드는 GitHub_에서 다운로드할 수 있습니다.
.. _homepage: https://www.pycryptodome.org
.. _GitHub: https://github.com/Legrandin/pycryptodome