1e41f4b71Sopenharmony_ci# Introduction to Crypto Architecture Kit 2e41f4b71Sopenharmony_ci 3e41f4b71Sopenharmony_ciCrypto Architecture Kit provides cryptographic functionalities, such as encryption and decryption, signing and signature verification, message authentication code (MAC) generation, hash computation, random number generation, and key derivation. 4e41f4b71Sopenharmony_ci 5e41f4b71Sopenharmony_ciCrypto Architecture Kit shields the implementation differences of third-party cryptographic algorithm libraries to elevate your app experience. 6e41f4b71Sopenharmony_ci 7e41f4b71Sopenharmony_ci## Constraints 8e41f4b71Sopenharmony_ci 9e41f4b71Sopenharmony_ci- Crypto Architecture Kit does not support multi-thread concurrent operations. 10e41f4b71Sopenharmony_ci 11e41f4b71Sopenharmony_ci- Currently, Crypto Architecture Kit supports only OpenSSL. 12e41f4b71Sopenharmony_ci 13e41f4b71Sopenharmony_ci- Crypto Architecture Kit provides common algorithms. Some algorithms and specifications, such as MD5, do not apply to scenarios with high security requirements. You need to select the proper algorithms based on service requirements. 14e41f4b71Sopenharmony_ci 15e41f4b71Sopenharmony_ci## Capability Scope 16e41f4b71Sopenharmony_ci 17e41f4b71Sopenharmony_ciCrypto Architecture Kit provides the following functionalities, with algorithm specifications and development guides for your reference. 18e41f4b71Sopenharmony_ci 19e41f4b71Sopenharmony_ci- [Key Generation and Conversion](crypto-key-generation-conversion-overview.md) 20e41f4b71Sopenharmony_ci 21e41f4b71Sopenharmony_ci- [Encryption and Decryption](crypto-encryption-decryption-overview.md) 22e41f4b71Sopenharmony_ci 23e41f4b71Sopenharmony_ci- [Signing and Signature Verification](crypto-sign-sig-verify-overview.md) 24e41f4b71Sopenharmony_ci 25e41f4b71Sopenharmony_ci- [Key Agreement](crypto-key-agreement-overview.md) 26e41f4b71Sopenharmony_ci 27e41f4b71Sopenharmony_ci- [Message Digest](crypto-generate-message-digest.md) 28e41f4b71Sopenharmony_ci 29e41f4b71Sopenharmony_ci- [MAC Operation](crypto-compute-mac.md) 30e41f4b71Sopenharmony_ci 31e41f4b71Sopenharmony_ci- [Random Number Generation](crypto-generate-random-number.md) 32e41f4b71Sopenharmony_ci 33e41f4b71Sopenharmony_ci- [Key Derivation](crypto-key-derivation-overview.md) 34e41f4b71Sopenharmony_ci 35e41f4b71Sopenharmony_ci## Basic Concepts 36e41f4b71Sopenharmony_ci 37e41f4b71Sopenharmony_ciBefore you get started, be sure to understand the following concepts: 38e41f4b71Sopenharmony_ci 39e41f4b71Sopenharmony_ci- Symmetric key 40e41f4b71Sopenharmony_ci 41e41f4b71Sopenharmony_ci A symmetric key is a key used both to encrypt and decrypt data. In symmetric encryption, the sender converts information in plaintext into ciphertext using a key and certain algorithm for security purposes. The receiver converts the ciphertext into plaintext using the same key and algorithm. 42e41f4b71Sopenharmony_ci 43e41f4b71Sopenharmony_ci- Asymmetric key 44e41f4b71Sopenharmony_ci 45e41f4b71Sopenharmony_ci In the asymmetric cryptography, a private and public key pair is required. The private key is used to encrypt the plaintext, and the public key is used to decrypt the ciphertext. 46e41f4b71Sopenharmony_ci 47e41f4b71Sopenharmony_ci For encryption and decryption operations, the public key is used to encrypt plaintext, and the public key is used to decrypt the ciphertext. 48e41f4b71Sopenharmony_ci 49e41f4b71Sopenharmony_ci For signing and signature verification, the private key is used to sign the plaintext, and the public key is used to verify the signature. 50e41f4b71Sopenharmony_ci 51e41f4b71Sopenharmony_ci## Related Kits 52e41f4b71Sopenharmony_ci 53e41f4b71Sopenharmony_ciCrypto Architecture Kit provides cryptographic operations, but not key management. It is used when temporary session keys are used only in the memory or the applications implement secure key storage. 54e41f4b71Sopenharmony_ci 55e41f4b71Sopenharmony_ciIf key management (such as key storage) is required, use [Universal Keystore Kit](../UniversalKeystoreKit/huks-overview.md). 56