# Integrating Elliptic Curve Cryptography with the Modbus TCP SCADA Communication Protocol
## 2 Related Work  
There is a significant number of research papers and standards focusing on SCADA security, vulnerabilities, and ways to protect the infrastructures that deploy SCADA. When it comes to protecting SCADA systems themselves from attacks, there are many studies that suggest the use of cryptographic techniques. There are several standards published, both, by specialized US agencies, such as NSA and NIST, as well as private organizations that propose several SCADA security methods, including cryptography. Many of those studies are, mostly, focused on the integration of authentication and cryptographic protocols, as a means of protecting industrial systems' Internet traffic [8]. In [9], the authors deploy and assess both symmetric and asymmetric cryptography as a means to protect Modbus and IEC 6087 traffic. In a previous paper, [10], the authors deploy the already existing mechanisms for integrity in SCADA systems to develop a new, low latency, cryptographic protocol. They also make use of block ciphers for the encryption of the SCADA Internet traffic. The authors of [11] add an additional field to the standard Modbus packet and use both RSA (Rivest-Shamir-Adleman) public-key cryptosystem and AES (Advanced Encryption Standard) to generate keys and encrypt Internet traffic. Another work, discussed in [12], proposed the possible use of Elliptic Curves for Lowpan sensor networks, and particularly their integration into the TLS (Transport Layer Security) protocol. Our concrete approach for this functionality is to use the Elliptic Curve based Diffie Hellman key exchange protocol to generate and exchange shared communication keys, thus providing an alternative to the RSA and AES cryptosystems used in the previous papers. Extensive research has also been conducted for the identification of the vulnerabilities and the specialized attack vectors of SCADA systems. An attack taxonomy given in [13] categorized the SCADA attacks according to the type (Serial/TCP) of Modbus. In [14], a study was published on the security concerns about IP-based SCADA networks. In [15] a study can be found on the vulnerabilities of SCADA systems and potential security strengthening approaches. The authors also carried out experiments on SCADA/DNP3 testbeds and presented their results with respect to SCADA systems' robustness against cyberattacks. There have been some recent efforts to incorporate encryption capabilities in the Modbus protocol [16] by the Modbus Organization. This approach relies on TLS to support the encryption, thus requiring the setup of a PKI (Public Key Infrastructure) which may impose several other functional dependencies on third party libraries. Another similar approach to securing SCADA communications has been published [17], which uses ECC (Elliptic Curves Cryptography) to secure Modbus communications. Our approach is different from this since it evaluates the computational load, in terms of additional execution time required, in specific resource limited devices, a Linux PC and an Android IIoT device. Although, an Android device may not be a traditional SCADA device, it has already been proposed and implemented [17; 18] and it may gain more popularity in the future, with the growing needs for easier industrial control and remote monitoring. Authentication functionality is, also, necessary for the authentication of each IoT device as well the data the devices exchange. However, it is often neglected over the confidentiality functionality. In our approach, the IoT devices participating in the communication can exchange encrypted messages among themselves and the SCADA infrastructure after having been authenticated first. In summary, to the best of our knowledge, our approach comprises one of the first studies in embedding Elliptic Curve Cryptography functionality in Modbus as a pillar to SCADA systems. Moreover, this enhancement of Modbus comes at a full compatibility with existing Modbus deployments since the client/server interface layers have not been changed.