Secure file transmission using asymmetric cryptography
The secure file transmission mechanism, depicted in the diagram below, has the following properties
-
Authentication
Alice has a unique securely-held private key
-
Non-repudiation
Alice has a unique securely-held private key
-
Data Integrity
Program signs data using Alice’s private key
-
Data Confidentiality
Program encrypts data using Alice’s private key
graph LR
Program-->data[Encrypted Data]
data-->Service
subgraph Alice
priva[Alice's Private Key]-->Program
pubb[Server's Public Key]-->Program
file1[File]-->Program
end
subgraph Server
privb[Server's Private Key]-->Service
puba[Alice's Public Key]-->Service
Service-->file2[File]
end
Here’s how the mechanism works
- Program calculates a secure hash of file data
- Program encrypts file data using a randomly generated secret key
- Program encrypts hash and secret key using Alice’s private key, and Server’s public key
- Program transmits all encrypted data to Server
- Server decrypts hash and secret key using its private key and Alice’s public key
- Server decrypts file data using secret key
- Server calculates hash of file data and compares it with hash sent by Program