Emerging applications such as those of e-commerce typically demand a high level of security for their data transmitted over the network, thereby espousing the need for effective encryption with minimal overheads and costs. Encryption algorithms are generally expensive with regard to computation and power. Compounding this problem further is the pervasive use of hand-held and other portable devices in personal environments, which are limited in computation capacities and available battery power.
Algorithms for encryption are varied in their characteristics, mainly on account of the exact concerns addressed by the algorithm designer. This naturally leads to a whole range of values that different algorithms could produce in terms of desired performance metrics such as level of security, speed of execution and so on. This may force an application developer, who is characterized by a lack of specific/theoretic knowledge about encryption strategies, to use sophisticated ``knobs'' that allow him to choose from a range of options for better performance. These knobs in turn, complicate the implementation of protocols, interfaces to these protocols and ways to reason about the correctness of these protocols.
In a personal environment with devices of varying capabilities, the relative importance of some of the performance metrics differ from that of a traditional network environment and some issues like battery life become very critical. Hence, considering these new metrics, we need to study whether the knobs as described earlier should continue to be used at all.
If universal encryption, i.e all network communication being encrypted, is possible at negligible costs, then the use of such current knobs would be rendered unnecessary. Otherwise, even if strong encryption is possible only for a class of applications and environment, there is a compulsive need to precisely characterize them, thereby providing an application developer with a quick reference to reason about the use of knobs for his purposes. Hence a study that analyses the feasibility and costs of universal encryption is essential.
In this project, we quantitatively analyzed the feasibility of universal encryption. We analyzed software encryption performance, using Twofish[Twofish] as a representative encryption algorithm of the future. We performed experiments to find the overheads of encryption with respect to power consumption, latency and maximum throughput sustainable, across a class of devices including the PentiumPro, Pentium III, the PalmPilot and a Sun Workstation. We then studied a few applications in greater detail to find the costs of encryption with respect to latency and throughput.
From our experiments, we found that among devices we considered, which included a PalmPilot, an encryption rate of at least 100 kbps could easily be sustained. For typical applications that we studied, encryption can very easily match network bandwidth. However, software encryption introduces large overheads with respect to power consumption. In general, the battery power required for encryption is found to be an order of magnitude higher than that required for transmission over the network. The latency of encryption is however dependent on the network speeds. For local intranet, the latency was found to be around 10%-16%, but over the internet, the overhead is a mere 0.6%. Our studies conclude that universal encryption is not feasible in the strictest sense of the term. However for typical applications, adding encryption introduces only acceptable overheads.
The rest of this paper is organized as follows. Section 2 provides the background for this topic and presents the related work. Section 3 describes the proposed solution, wherein we define the problem that we are trying to solve in precise terms and discuss our experimental framework. In section 4, we present the results of our experiments and in section 5 draw conclusions from the results. We finally conclude in section 6 with a few limitations of our study and future research work.