PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers

Programmable Logic Controllers (PLCs) are control devices widely used in industrial automation. They can be found in critical infrastructures like power grids, water systems, nuclear plants, manufacturing systems, etc. This paper introduces PLCrypto, a software cryptographic library that implements...

Full description

Bibliographic Details
Main Authors: Zheng Yang, Zhiting Bao, Chenglu Jin, Zhe Liu, Jianying Zhou
Format: Article
Language:English
Published: Ruhr-Universität Bochum 2021-09-01
Series:IACR Transactions on Symmetric Cryptology
Subjects:
Online Access:https://tosc.iacr.org/index.php/ToSC/article/view/9178
id doaj-33fae8dabcde4b1ebb4ff452e0768504
record_format Article
spelling doaj-33fae8dabcde4b1ebb4ff452e07685042021-09-25T14:25:19ZengRuhr-Universität BochumIACR Transactions on Symmetric Cryptology2519-173X2021-09-012021310.46586/tosc.v2021.i3.170-217PLCrypto: A Symmetric Cryptographic Library for Programmable Logic ControllersZheng Yang0Zhiting Bao1Chenglu Jin2Zhe Liu3Jianying Zhou4Southwest University, Chongqing, ChinaChongqing Institute of Engineering, Chongqing, ChinaCentrum Wiskunde & Informatica, Amsterdam, The NetherlandsNanjing University of Aeronautics and Astronautics, Nanjing, China Singapore University of Technology and Design, Singapore, Singapore Programmable Logic Controllers (PLCs) are control devices widely used in industrial automation. They can be found in critical infrastructures like power grids, water systems, nuclear plants, manufacturing systems, etc. This paper introduces PLCrypto, a software cryptographic library that implements lightweight symmetric cryptographic algorithms for PLCs using a standard PLC programming language called structured text (ST). To the best of our knowledge, PLCrypto is the first ST-based cryptographic library that is executable on commercial off-the-shelf PLCs. PLCrypto includes a wide range of commonly used algorithms, totaling ten algorithms, including one-way functions, message authentication codes, hash functions, block ciphers, and pseudo-random functions/generators. PLCrypto can be used to protect the confidentiality and integrity of data on PLCs without additional hardware or firmware modification. This paper also presents general optimization methodologies and techniques used in PLCrypto for implementing primitive operations like bit-shifting/rotation, substitution, and permutation. The optimization tricks we distilled from our practice can also guide future implementation of other computationheavy programs on PLCs. To demonstrate a use case of PLCrypto in practice, we further realize a cryptographic protocol called proof of aliveness as a case study. We benchmarked the algorithms and protocols in PLCrypto on a commercial PLC, Allen Bradley ControlLogix 5571, which is widely used in the real world. Also, we make our source codes publicly available, so plant operators can freely deploy our library in practice. https://tosc.iacr.org/index.php/ToSC/article/view/9178Programmable Logic ControllersIndustrial AutomationSymmetric CryptographyCryptographic Library
collection DOAJ
language English
format Article
sources DOAJ
author Zheng Yang
Zhiting Bao
Chenglu Jin
Zhe Liu
Jianying Zhou
spellingShingle Zheng Yang
Zhiting Bao
Chenglu Jin
Zhe Liu
Jianying Zhou
PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
IACR Transactions on Symmetric Cryptology
Programmable Logic Controllers
Industrial Automation
Symmetric Cryptography
Cryptographic Library
author_facet Zheng Yang
Zhiting Bao
Chenglu Jin
Zhe Liu
Jianying Zhou
author_sort Zheng Yang
title PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
title_short PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
title_full PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
title_fullStr PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
title_full_unstemmed PLCrypto: A Symmetric Cryptographic Library for Programmable Logic Controllers
title_sort plcrypto: a symmetric cryptographic library for programmable logic controllers
publisher Ruhr-Universität Bochum
series IACR Transactions on Symmetric Cryptology
issn 2519-173X
publishDate 2021-09-01
description Programmable Logic Controllers (PLCs) are control devices widely used in industrial automation. They can be found in critical infrastructures like power grids, water systems, nuclear plants, manufacturing systems, etc. This paper introduces PLCrypto, a software cryptographic library that implements lightweight symmetric cryptographic algorithms for PLCs using a standard PLC programming language called structured text (ST). To the best of our knowledge, PLCrypto is the first ST-based cryptographic library that is executable on commercial off-the-shelf PLCs. PLCrypto includes a wide range of commonly used algorithms, totaling ten algorithms, including one-way functions, message authentication codes, hash functions, block ciphers, and pseudo-random functions/generators. PLCrypto can be used to protect the confidentiality and integrity of data on PLCs without additional hardware or firmware modification. This paper also presents general optimization methodologies and techniques used in PLCrypto for implementing primitive operations like bit-shifting/rotation, substitution, and permutation. The optimization tricks we distilled from our practice can also guide future implementation of other computationheavy programs on PLCs. To demonstrate a use case of PLCrypto in practice, we further realize a cryptographic protocol called proof of aliveness as a case study. We benchmarked the algorithms and protocols in PLCrypto on a commercial PLC, Allen Bradley ControlLogix 5571, which is widely used in the real world. Also, we make our source codes publicly available, so plant operators can freely deploy our library in practice.
topic Programmable Logic Controllers
Industrial Automation
Symmetric Cryptography
Cryptographic Library
url https://tosc.iacr.org/index.php/ToSC/article/view/9178
work_keys_str_mv AT zhengyang plcryptoasymmetriccryptographiclibraryforprogrammablelogiccontrollers
AT zhitingbao plcryptoasymmetriccryptographiclibraryforprogrammablelogiccontrollers
AT chenglujin plcryptoasymmetriccryptographiclibraryforprogrammablelogiccontrollers
AT zheliu plcryptoasymmetriccryptographiclibraryforprogrammablelogiccontrollers
AT jianyingzhou plcryptoasymmetriccryptographiclibraryforprogrammablelogiccontrollers
_version_ 1717368698558218240