  Bilinear pairing is a fundamental operation that is widely used in
cryptographic algorithms (e.g., identity-based cryptographic algorithms) to
secure IoT applications. Nonetheless, the time complexity of bilinear pairing
is $O(n^3)$, making it a very time-consuming operation, especially for
resource-constrained IoT devices. Secure outsourcing of bilinear pairing has
been studied in recent years to enable computationally weak devices to securely
outsource the bilinear pairing to untrustworthy cloud servers. However, the
state-of-art algorithms often require to pre-compute and store some values,
which results in storage burden for devices. In the Internet of Things, devices
are generally with very limited storage capacity. Thus, the existing algorithms
do not fit the IoT well. In this paper, we propose a secure outsourcing
algorithm of bilinear pairings, which does not require pre-computations. In the
proposed algorithm, the outsourcer side's efficiency is significantly improved
compared with executing the original bilinear pairing operation. At the same
time, the privacy of the input and output is ensured. Also, we apply the
Ethereum blockchain in our outsourcing algorithm to enable fair payments, which
ensures that the cloud server gets paid only when he correctly accomplished the
outsourced work. The theoretical analysis and experimental results show that
the proposed algorithm is efficient and secure.
