Check out the new USENIX Web site. next up previous
Next: Benchmark evaluation Up: Performance evaluation Previous: Trace evaluation

Cryptographic cost


Table 4: Cryptographic primitive cost. This table lists the cost of the basic cryptographic primitives, and the file systems operations where they are incurred. The root signature and verification is done only once per file read or write, irrespective of the size of the file. Wire integrity is needed only for messages, not for file contents.
File system operation Crypto operation Crypto cost Incurred by Frequency
Filegroup creation RSA key generation 2500 ms owner per filegroup
  Block hash 0.11 ms writer per 4 KB block
  Block encrypt 0.59 ms writer
  Merkle root sign 28.5 ms writer
  Write verify 0.01 ms server
  Block hash 0.11 ms reader per 4KB block
  Block decrypt 0.61 ms reader
  Merkle root verify 8.5 ms reader
  Message encrypt 0.01 ms all per 100 byte message
  Message decrypt 0.01 ms all
  Message hash 0.003 ms all


Table 4 presents the impact of encryption/decryption on read and write latency. These are measurements of the cryptographic cost that includes write verification, data encryption, and wire-transmission overheads. These were done using code from Plutus' cryptography library on a 1.26 GHz Pentium 4 with 512 MB memory. In this evaluation, we used 4 KB as the size of the file fragment (corresponding to that of the prototype). As in the prototype, for data encryption, we used 1,024-bit RSA with a 256-bit file-verify key for reading and a 1,019-bit file-sign key for writing and 3DES CBC/CTS file-block key for bulk data encryption.

Owners incur a high one time cost to generate the read/write key pair; this is another reason why aggregating keys for multiple files using filegroups is beneficial. Though the write verification latency is negligible for writers and owners, if we choose to hide the identities of filegroups, then we pay an additional cost of decrypting it. The time spent in transmitting the Merkle hash tree depends on the size of the file being transmitted. In Plutus, block hashes are computed over 4 KB blocks, which contribute to about 1% overhead in data transmission.

For large files, the block encryption/decryption time dominates the cost of writing/reading the entire file. Though Plutus currently uses 3DES as the block cipher, from Dai's comparison of AES and 3DES [9], we expect a 3X speedup if AES were used.


next up previous
Next: Benchmark evaluation Up: Performance evaluation Previous: Trace evaluation
2003-01-06