Hybrid Cryptography
Asymetric Cryptography
ECC 571 bit
Generated on Server Side
Public Key shared with Client
Symmetric Cryptography
AES 256 bit
New Key generated on Client Side for each new record.
Data shall be encrypted using this key
This key shall be encrypted by the ECC public key and
sent over to the server
Security Level comparison of
algorithms
Encryption/Decryption Process
On Android device:
Generate an AES secret key
Encrypt the audio with that AES key
Encrypt the generated AES secret key using the ECC
public key
Combine the blobs from step 2 and step 3 into a single
blob and send to server
Encryption/Decryption Process
On server:
Split the blob into 2 parts
Use the ECC private key to decrypt the AES secret key
Use the decrypted AES secret key to decrypt the audio
** Added Security on Server:
The ECC Key Pair needs to be rotated/changed after a period
of time