Keys and cryptography
Key lifecycles, signatures, encryption and application data.
Authenticated encryption for mobile data
Encrypted content can still be modified. AEAD combines confidentiality with integrity verification and associated-data binding.
Read the guideNonce discipline with AES-GCM
AES-GCM security depends on correct key and nonce use. Reusing a nonce under the same key can cause serious security failure.
Read the guideWhen to consider ChaCha20-Poly1305
ChaCha20-Poly1305 is an authenticated-encryption option. Evaluate device performance, platform support and protocol requirements together.
Read the guideNonce, IV and challenge: different requirements
These values are not interchangeable random strings. Requirements depend on the algorithm or protocol.
Read the guideCryptographically secure randomness on mobile
Cryptographic values need unpredictability. Randomness used for animation or game logic may be unsuitable.
Read the guideContext separation in HKDF key derivation
Deriving keys for different purposes requires domain separation. HKDF provides a defined construction for key derivation.
Read the guideChoosing cost for password-based key derivation
User passwords have different entropy from random keys. Derivation needs an appropriate method and parameters that increase guessing cost.
Read the guideHMAC, message integrity and shared secrets
HMAC verifies integrity between parties sharing a key. Every party with that key can also create valid tags.
Read the guideDigital signatures versus encryption
A signature verifies approval by a key; encryption restricts reading. One does not imply the other.
Read the guideWhat JWS and JWE provide in mobile protocols
JWS protects integrity and supports source authentication; JWE carries encrypted content. Dot-separated token fields are not necessarily confidential.
Read the guideEnvelope encryption for mobile data
Separating data-encryption keys from the keys protecting them can simplify lifecycle management. This is commonly called envelope encryption.
Read the guideKey versions and older encrypted data
After rotation, the application must know which key opens existing data. Make version identity explicit in the format.
Read the guideRecovery after mobile key invalidation
Device security or key-policy changes can make a key unavailable. Applications need a safe recovery route.
Read the guideReducing the lifetime of secrets in memory
Encrypted data may become plaintext when used. Unnecessary copies and long lifetimes broaden exposure.
Read the guideWhat a file hash establishes
Cryptographic hashes help compare files. An untrusted expected hash does not independently establish legitimacy.
Read the guideConstant-time APIs for secret comparisons
Comparison timing can reveal information about secret values. Suitable library APIs help reduce that exposure.
Read the guideQuestions to ask when buying white-box cryptography
White-box approaches target difficult environments where applications use keys locally. Evaluate claims against your application and threat model.
Read the guideDeveloping iOS cryptography with CryptoKit
CryptoKit supplies cryptographic APIs on Apple platforms. API choice remains connected to storage and protocol design.
Read the guideWhat Tink offers mobile projects
Tink aims to make cryptography easier to use safely. Confirm language and platform support in current documentation.
Read the guideUsing libsodium securely in mobile applications
libsodium offers high-level cryptographic options. Mobile integrations also depend on binding maintenance and native-library versions.
Read the guideLocal database encryption with SQLCipher
SQLCipher encrypts SQLite data. Key management is as important as the database solution itself.
Read the guideVerification with cryptographic test vectors
Successfully decrypting your own output is not sufficient verification. Known valid and invalid vectors reveal implementation defects.
Read the guideCryptographic agility and data formats
Future algorithm or policy changes require prepared formats. Flexibility must not allow clients to choose arbitrary weak methods.
Read the guideResponding to mobile key exposure
Compromise requires more than issuing a replacement. Determine what the old key could read or authorize.
Read the guideKMS and HSM roles in mobile architectures
KMS and HSM services manage server keys. They do not automatically place every phone-held secret inside the same boundary.
Read the guide