Authentication of communication apparatuses in computer networks adapted to industrial control

The CRC field in data packets is repurposed for sender authentication in industrial control systems, enhancing security and reliability by using a shared encryption key and table of words, ensuring compatibility with existing systems.

WO2026099713A1PCT designated stage Publication Date: 2026-05-15CAREL IND SPA
View PDF 4 Cites 0 Cited by

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
CAREL IND SPA
Filing Date
2025-11-03
Publication Date
2026-05-15

AI Technical Summary

Technical Problem

Existing communication protocols in industrial control systems, such as modBUS RTU and modBUS TCP, lack effective methods for authenticating the sender of data packets while maintaining backward compatibility and ensuring security against cyber attacks.

Method used

Utilize the CRC field in data packets to authenticate the sender by calculating it differently for each communication session using a shared encryption key and a table of encryption words, ensuring compatibility with existing systems by allowing old and new receivers to coexist.

Benefits of technology

Achieves high security and reliability by authenticating senders without requiring significant computing resources, allowing seamless integration with existing systems and detecting potential cyber attacks.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure IB2025061182_15052026_PF_FP_ABST
    Figure IB2025061182_15052026_PF_FP_ABST
Patent Text Reader

Abstract

Herein described is an electronic control system (200) according to the invention comprising: a computer network (210), transmitter apparatuses (220) adapted to transmit data packets (240) according to a communication protocol through the computer network (210), and receiver apparatuses (230) adapted to receive data packets (240) according to the communication protocol through the computer network (210); the communication protocol provides that each data packet (240) has a format comprising an error handling field (242), for example a CRC field; the error handling field (242) is used by a receiver apparatus (230) not only to detect and possibly correct errors in the data, but also to authenticate the sender (220) of the data packet (240). The transmission of data packets involves communication sessions preceded by a communication session initialisation phase, which is preceded by a general communication initialisation phase; these phases serve to establish a generator polynomial and an initialisation vector for the calculation of CRC codes, and a table of encryption words to be combined, through a Boolean operation, with the CRC codes to generate the content of the CRC field of the data packets. Other aspects of the invention relate to a transmission method, a reception method, a transmitter apparatus and a receiver apparatus.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] AUTHENTICATION OF COM M UNICATION APPARATUSES IN COMPUTER NETWORKS ADAPTED TO INDUSTRIAL CONTROL

[0002] DESCRIPTION

[0003] In the field of electronic industrial control systems, it is common to use a plurality of electronic control units electrically connected to each other to exchange information, in particular control information and configuration information.

[0004] The electronic control units are often called "controllers". Among the most popular controllers are the so-called "programmable logic controllers" or "PLCs".

[0005] The connection between electronic control units is often made through computer networks, for example LAN (= Local Area Network). These networks can have different connection topologies, for example star or series ("daisy chain").

[0006] There are various communication protocols for computer networks. A very popular network protocol for industrial control applications is the modBUS protocol. As is known, there are two versions: the "modBUS RTU" and the "modBUS TCP".

[0007] In general, all protocols implement methods that make it possible to identify (and sometimes even correct) "transmission errors". In fact, it is very important that a receiver apparatus can determine whether the data it has received corresponds to the data that a transmitter apparatus has transmitted. It is also useful, but not essential, that the receiver apparatus is able to correct any "transmission errors", that is, having understood that the data received does not correspond exactly to the data transmitted, to reconstruct the transmitted data from the received data without the need to ask the transmitter apparatus to transmit the data again.

[0008] An issue that becomes more and more important every day is the security of electronic industrial control systems. It is important to ensure that the control takes place as designed and as desired, avoiding that an (unwanted) computer intrusion into the system can lead to a different, unwanted or even harmful operation of the plant under control.

[0009] To this end, one possibility is to ensure that a receiver apparatus can verify that the information received actually comes from a certain transmitter apparatus of the computer network, that is that the receiver apparatus can authenticate the transmitter apparatus thanks to the network protocol.

[0010] Obviously, new ad-hoc protocols can be designed that implement authentication methods.

[0011] For example, from the article "Method for authentication of sensors connected on Modbus TCP" a variant of the "modBUS TCP" protocol is known in which the "Options" field of the header of the TCP packet is used for the authentication of the sender. Such a method is applicable only in the case of information transported using TCP packets and therefore not in the case of "modBUS RTU"; moreover, even if the modBUS protocol is "application" level, the authentication functionality is based on a characteristic of the "transport" level TCP protocol.

[0012] The general purpose of this invention is to implement an authentication method on an existing communication protocol, in particular a protocol for computer networks adapted to industrial control, more in particular the modBUS protocol (preferably both its "RTU" version and its "TCP" version), ensuring backward compatibility.

[0013] In other words, the main objective is to keep the structure of the "data packet" (and possibly also its size, that is, the amount of bits contained in the packet) unchanged. In this way, the transmission and reception of the packets can be carried out as before; that is, backward compatibility is guaranteed. The authentication is therefore a functionality that is added (for example through additional software routines) to the other standard functionalities of the protocol. This allows, for example, an existing electronic control system to be easily updated and to make it more secure.

[0014] The above-mentioned general purpose and the main objective, as well as further secondary objectives, are achieved thanks to what is the subject of the claims attached hereto, which relate to transmission methods, reception methods, transmitter apparatus, receiver apparatus and electronic control systems.

[0015] The idea behind this invention is to implement the authentication between sender and recipient of a packet using a field of the data packet dedicated to error handling according to the standard but making sure that it is also able to allow authentication of the sender. In general, this field can be a field dedicated to error identification, for example a CRC field, or to error identification + correction; in the case of the modBUS protocol, this field is the CRC field of the ADU (= Application Data Unit).

[0016] As will be understood from the detailed description below, this idea can be advantageously implemented in such a way that the devices (for control of the electronic control system which typically include at least one receiver or receiver apparatus) do not require large computing capacity.

[0017] Furthermore, as will be understood from the detailed description below, this idea can be advantageously implemented in such a way that, if in the system there are devices (for control of the electronic control system that typically include at least one receiver or receiver apparatus) that are not updated to operate according to the new method which is the object of this invention, these can continue to operate according to the old method. More specifically, according to preferred embodiments of this invention, the data contained in the CRC field comprised in a "data packet" according to this invention are different (but always of the same length in terms of number of bits) from those that would be calculated and then transmitted according to the standard, in particular the modBUS standard. It is the transmitter apparatus that calculates the CRC field data differently and then transmits it along with the packet. This means that if such a packet were received by a receiver apparatus not in accordance with this invention, the apparatus would signal the presence of errors in the packet. If, on the other hand, such a packet is received by a receiver apparatus according to this invention, not only does the apparatus not report errors (of course, if there are none), but it also establishes whether the packet comes from the actual transmitter apparatus.

[0018] If, for example, "new" receivers and "old" receivers coexist in a system, a transmitter could decide to calculate the data for the CRC field in the "old" manner when transmitting packets to an "old" device and in the "new" manner when transmitting packets to a "new" device. Of course, according to such an embodiment, the "old" receivers would not be able to authenticate the sender.

[0019] It should be noted that in the past it had already been proposed to use a field of a data packet dedicated to error handling also for the authentication of the sender; see, for example, patent documents US 2021 / 006567 A1 , EP 2719551 A1 and US 2005 / 193193 A1.

[0020] Advantageously, according to this invention and as will be understood from the detailed description below, a general initialisation phase of the communications between the transmitter apparatus and the receiver apparatus is foreseen. This phase serves, in particular, to ensure that the two apparatuses have a common key, hereinafter referred to as "authentication key"; this common key does not serve to encrypt the messages exchanged between the two apparatuses to carry out the control functions of the control system, but to carry out the negotiation of so-called "session encryption keys", for example by means of a Diffie-Hellman algorithm. This initialisation phase can take place, for example, during the installation of the network or the reinstallation of the network, in any case well before the two apparatuses begin to exchange data packets to carry out the control functions of the control system.

[0021] Furthermore, advantageously, according to this invention and as will be understood from the detailed description below, the communication between the two apparatuses for carrying out the control functions of the control system can be divided into several successive communication sessions (at least one is needed). The duration of a session can be predetermined (for example a day or a month) or it can depend on external factors. Each session advantageously provides for a communication session initialisation phase between the transmitter apparatus and the receiver apparatus which serves at least to agree on how to calculate the data of the error handling field, for example the CRC field, during the session, that is, elements called "generator polynomial" and "initialisation vector" for the calculation of CRC codes and "encryption word table" to be combined, through a Boolean operation, with the CRC codes to generate the content of the CRC field.

[0022] The approach briefly described above based on (one) general initialisation phase, (at least one) session initialisation phase and (at least one) communication session, not previously known and not derivable from known solutions, in particular from patent document EP 2719551 A1 , allows a high level of security and reliability to be achieved. The use of a "table of encryption words" which stores components of a "Hash Chain", according to preferred embodiments of this invention, contributes greatly to security and reliability.

[0023] From what has been said, it is understood that, according to this invention, the authentication of the sender is linked to the ability of a receiver apparatus to use the CRC field, or an equivalent field (previously called "error handling field"), included in the data packets coming from that sender. Simply put, if the CRC field works (that is, it allows you to identify errors in the packet) it means that the data packet comes from the right sender. According to this invention, it is possible and advantageous to provide the following operation. If a receiver apparatus according to this invention receives a data packet and on the basis of its CRC field determines that there is an error, the receiver apparatus requests the transmitter apparatus to retransmit the packet. If this fact is repeated more than a certain number of times consecutively (it could be, for example, a predetermined number equal to "3"), the transmitter apparatus assumes that a cyber attack is in progress. In this case, for example, the receiver apparatus may decide to implement a "communications silence" (it could be, for example, of a predetermined duration equal to, for example, 20 seconds); subsequently, for example, the receiver apparatus may attempt to negotiate a new communication session with the transmitter apparatus.

[0024] This invention, its main technical aspects as well as its advantages will become clearer from the following detailed description to be considered in conjunction with the accompanying drawings in which:

[0025] Fig. 1 shows a very general flowchart of the possible operational phases of a pair of devices, in particular "master"-"slave" or "client"-"server", in a system according to this invention,

[0026] Fig. 2 shows a very general block diagram of a system according to this invention which highlights, for simplicity, a single device that operates as "master / client" with its own transmitter apparatus, a single device that operates as "slave / server" with its receiver apparatus, a computer network and a single data packet exchanged between the two devices,

[0027] Fig. 3 shows schematically the operations for calculating a CRC field according to typical embodiments of this invention, and

[0028] Fig. 4 shows a message exchange diagram between the transmitter apparatus and the receiver apparatus aimed at negotiating an "encryption key" by means of a Diffie- Hellman algorithm using an "authentication key" that is known to both apparatuses.

[0029] As is clear from the introduction, this invention deals with communications between devices of an electronic control system.

[0030] There are generally a plurality of devices in an electronic control system. Some devices can perform control functions directly. Some devices may indirectly perform control functions by sending control commands to other devices in the system.

[0031] In an electronic control system, there may therefore be devices that operate (always or almost always) as "master", with a term here equivalent to "client", and therefore transmit control commands, and devices that operate (always or almost always) as "slave", with a term here equivalent to "server", and therefore receive control commands and execute them. Obviously, in order to transmit commands, a transmitter apparatus adapted to perform a transmission method is necessary, and in order to receive commands, a receiver apparatus adapted to perform a reception method is necessary.

[0032] There is therefore a need in an electronic control system to transmit and receive data packets. In general, the transfer of data packets is carried out through a computer network using, for example, an "application" level communication protocol.

[0033] In such a context, it is important, according to this invention, that the recipient of a data packet is able to authenticate the sender.

[0034] In the following, reference will be made to the "modBUS" protocol, in particular to the "modBUS RTU" version. This invention has been conceived specifically for this protocol, but is not strictly limited to this protocol adapted to industrial control.

[0035] Fig. 2 shows a very general block diagram of an electronic control system 200 according to this invention which highlights, for simplicity: a single device 220 that operates as a "master" and comprising (at least) a transmitter apparatus, a single device 230 that operates as a "slave" and comprising (at least) a receiver apparatus, a computer network 210 and a single data packet 240 exchanged between the two devices 220 and 230.

[0036] As already mentioned, this invention is based on a field of the data packet field adapted to handle errors. In Fig. 2, the field 242 of the packet 240 is adapted to handle errors, in particular it is a CRC field of a data packet according to the "modBUS RTU" standard.

[0037] Fig. 1 shows a very general flowchart 100 of the operational steps of a pair of devices, in particular a "master" such as, for example, the device 220 of Fig. 2 and a "slave" such as, for example, the device 230 of Fig. 2, in a system according to this invention, for example, system 200 of Fig. 2.

[0038] The diagram 100 highlights a phase 110 of general initialisation of the communication between "master" and "slave", in particular between the devices 220 and 230, a phase 120 of initialisation of the communication session between "master" and "slave", in particular between the devices 220 and 230 and a phase 130 of exchange of data packets, in particular between the devices 220 and 230. In general, step 130 is repeated several times because a "master" needs to send several data packets to the "slave" in particular during the same communication session. Step 120 may be repeated more than once (although this is not shown in Fig. 2) since the communication between "master" and "slave" may include several communication sessions, one after the other, which may have, for example, the same duration or during different durations.

[0039] In general, before a communication session (generally, there are a plurality of sessions), a communication session initialisation phase is provided; during the communication session initialisation phase, a generator polynomial, an initialisation vector, and an encryption word table are established using a session encryption key. It should be noted that, in general, one or more of these three elements could be fixed (for example, the generator polynomial) and one or more of these three elements could be variable (for example, the initialisation vector and / or the encryption word table), that is, deriving from the execution of an algorithm during the initialisation phase of the communication session; therefore, the term "establish" is not necessarily intended as a synonym for choosing or calculating.

[0040] In general, before a communication session initialisation phase, there is a general communication initialisation phase; during the general communication initialisation phase an authentication key is stored in the devices (or rather in their transmitter and receiver apparatuses).

[0041] The encryption key is negotiated, between the devices (or rather between their transmitter and receiver apparatuses), using the authentication key.

[0042] Fig. 3 helps to understand some embodiments of this invention that are typical and advantageous, in particular in terms of security, and that correspond to variants of the calculation of the CRC code according to the "modBUS RTU" standard; this figure is not to be understood as limiting the scope of this invention. In the following, reference can also be made (non-limiting) to what has just been described with reference to Fig. 1 and Fig. 2.

[0043] The diagram of Fig. 3 comprises several blocks; there is a block 330 corresponding to a calculation of a CRC-type code 340 starting from a message 310 on the basis of an initialisation vector 320 and of a generator polynomial which is, in this case, to be understood as an integral part of the block 330; there is a block 360 corresponding to a Boolean operation, in particular an XOR operation, between the CRC-type code 340 and a word 351 chosen from a plurality of words contained in a table 350 of encryption words according to a predetermined criterion; this Boolean operation generates a content 370 of a CRC field of a data packet to be transmitted. The contents of the table 350 will be illustrated below according to various embodiments of this invention.

[0044] The way to calculate the CRC field and use it in the transfer of data packets between "master" and "slave" allows the "slave" to verify that the "master" is the sender of the packets, that is, to carry out an authentication. Basically, according to some embodiments of this invention, the CRC field is calculated differently (with the same formula, but with different parameters) for each "master" - "slave" pair; in the case of several communication sessions, the calculation is advantageously different (with the same formula, but with different parameters) also for each session.

[0045] Considering the diagram of Fig. 3, there are basically two differences with respect to the calculation of the CRC code according to the modBUS standard; these are preferably combined together in particular to achieve authentication and greater security.

[0046] According to the first difference, the initialisation vector for the calculation of the CRC code does not correspond to that of the modBUS standard; according to a first alternative, the generator polynomial could be the same as the standard, and, according to a second alternative, it could be different.

[0047] According to the second difference, an encryption word is applied to the calculated CRC code by means of an XOR operation. The encryption word is not fixed and predetermined but varies and may advantageously be chosen from a plurality of encryption words stored in a table. For example, a different encryption word is used for each data packet; with reference to Fig. 3, for the packet "0" (that is, the first packet of the communication session) the word hO is used, for the packet "1" that is, the second packet of the communication session) the word hi is used,... , for the packet "i" the word hi is used,.... Advantageously, the encryption word table stores components of a so-called "Hash Chain"; as is known, the components of a "Hash Chain" are linked together in sequence by a cryptographic function starting from an initialisation value. A "Hash Chain" can be "consumed" according to different strategies, depending on system requirements and operational constraints; when the real-time communication is a priority and the memory limits are less relevant, a "backward consumption" strategy can be advantageously adopted in which values are used by hN towards hO; when the communication delays are acceptable and the efficiency of the memory is the main concern, a "forward consumption" strategy can be advantageously adopted in which values are used by hO towards hN. In the first case, the secrecy of the values used is guaranteed by the preimage resistance property of the cryptographic function, while in the second case the secrecy of the values can be preserved by incorporating a secret key into the calculation process of the cryptographic function.

[0048] During the initialisation phase of the communication session it is possible to establish, in particular for that session, an initialisation value and / or a cryptographic function for the calculation of the "Hash Chain"; for simplicity, it is possible to decide to keep the cryptographic function constant.

[0049] If all the encryption words contained in the table were “consumed” during a communication session, a new communication session could be started.

[0050] Advantageously, the generator polynomial, for example that incorporated in the block 330, which can be indicated with the symbol G(x), has the following characteristics: - it has a degree equal to the number of bits of the CRC field,

[0051] - it is divisible by "x+1",

[0052] - it is not divisible by "x",

[0053] - it is irreducible and primitive.

[0054] Advantageously, the initialisation vector can be a function of the session encryption key or of a part of the session encryption key; in other words, during the communication session initialisation phase, the initialisation vector can be established, in particular for that session, on the basis of the session encryption key. The function used to generate the vector is deterministic; for example, according to a first type, the function can be an extraction of a sub-sequence of the bits of the key or a (deterministic) transformation of the bits of the key or a combination of these; for example, according to a second type, the function can be cryptographic applied to the key, for example a secure hash function. In light of what has just been described, the bit string inserted in the CRC field of the data packet to be transmitted depends on certain factors (and is also calculated based on these factors): the initialisation vector, the generator polynomial, the encryption word that can be contained in a table of encryption words.

[0055] The possibility of authentication of the sender (transmitter) by the recipient (receiver) is based on the possibility of correct interpretation of the bit string in the CRC field by the recipient. For this to happen, it is done so that both (sender and recipient) use (locally) the same initialisation vector, the same generator polynomial, the same encryption word that can be contained in the same table of encryption words.

[0056] These factors can always remain the same, for example throughout the operation of the electronic control system (see initialisation phase 110 in Fig. 1), or may vary from communication session to communication session (see initialisation phase 120 in Fig. 1). As mentioned, the generator polynomial could be the one according to the "modBUS RTU" standard and therefore could not only always remain the same but could also be the same for all the devices of the electronic control system; this is the case of the diagram of Fig. 3.

[0057] It will be explained below how it is possible to make sure that a transmitter (of a device of an electronic control system) and a receiver (of a device of an electronic control system) can share the same factors for the calculation of the bit string in the CRC field. The phases 110 and 120 in Fig. 1 are used to achieve this sharing respectively at the level of general communication and at the level of communication of the communication session.

[0058] According to this invention, at least some of these factors may be transmitted via a secure communication channel that is established between a transmitter, typically the transmitter of a "master / client" device (hereinafter referred to simply as "master"), and a receiver, typically the receiver of a "slave / server" device (hereinafter referred to simply as "slave"). The secure communication channel is typically valid for a single communication session between "master" and "slave". The secure communication channel is based on an "encryption key" that can also be called a "session encryption key". The "encryption key" is negotiated, for example in a known manner by means of a Diffie-Hellman algorithm, between "master" and "slave" by means of an "authentication key" that is known to both the "master" and the "slave" (see, for example, the exchange of messages in Fig. 4) and using the "User-Defined Functions" provided by the modBUS standard; the "authentication key" can also be called "long-term master key"; the "authentication key" can be stored previously in both the "master" and the "slave" by, for example, reading data from removable memory media or typing from a keyboard or receiving data from an external device through a computer network.

[0059] According to some embodiments, the "encryption key" can contain the initialisation vector or be a starting element to derive this vector.

[0060] According to some embodiments, the table with the encryption words can be generated (locally) from a single number "I" (for example the initialisation value of a "Hash Chain") from both the "master" and the "slave". This number "I" can be generated randomly, for example by the "master" and sent for example to the "client" by means of a secure communication channel, that is, by means of an "encryption key", for example at the start of a communication session. The table may be generated (locally), for example on the basis of an initialisation value and a cryptographic function, in a single step or in successive steps, for example, first N encryption words, then (for example when the first have been consumed) second N encryption words, then (for example when the second have been consumed) third N encryption words, and so on.

[0061] It is obvious to the person skilled in the art that there are many possible alternatives to what is described above.

[0062] In light of the above and the accompanying figures, it is possible to illustrate this invention in its various aspects (methods, apparatuses and system) considering the technical characteristics, in particular the essential and non-essential ones.

[0063] In general, according to a first aspect, this invention relates to a method for transmitting a data packet; the data packet must be transferred from a transmitter apparatus, for example a "master" device, to a receiver apparatus, for example a "slave" device, through a computer network which implements a modBUS protocol, in particular modBUS RTU (or an equivalent protocol). The data packet to be transmitted comprises a CRC field (or an equivalent field). The CRC field contains a string of bits resulting from a Boolean operation, in particular an XOR operation, between a CRC type code and an encryption word. The CRC type code is calculated from a message contained in the data packet to be transmitted on the basis of a polynomial and an initialisation vector known to both the transmitter apparatus and the receiver apparatus. The encryption word is chosen from a plurality of words contained in a table of encryption words according to a predetermined criterion known to both the transmitter apparatus and the receiver apparatus. The table of encryption words is known to both the transmitter apparatus and the receiver apparatus.

[0064] Typically, a transmitter apparatus will have to transmit several data packets and the method described above will therefore be repeated; that is, for each packet, the calculation of the CRC field will be carried out in the manner indicated above and then the packet with such a CRC field will be transmitted.

[0065] The encryption word for the Boolean operation may advantageously be chosen from those contained in the table in such a way that it is different for each transmitted data packet. Obviously, both the transmitter apparatus and the receiver apparatus must choose it, each to time, in the same way. In particular, in this case, the encryption word for the Boolean operation can be chosen in the table by an increasing or decreasing index; for example, for the first packet the first word of the table is used, for the second packet the second word of the table is used, and so on.

[0066] The transmission method, and likewise the reception method, provides for a general initialisation phase of communication between the transmitter apparatus and the receiver apparatus (see for example phase 110 in Fig. 1). During this phase an authentication key, that is, the same authentication key, is stored both in the transmitter apparatus and in the receiver apparatus. This authentication key might not come from the above- mentioned computer network and / or not be transferred by means of the above- mentioned protocol and / or be stored by means independent of the computer network, in particular coming from a physical memory medium adapted to be connected to the transmitter apparatus and the receiver apparatus.

[0067] In general, during this general communication initialisation phase, this authentication key can be used to directly or indirectly generate: 1) the above-mentioned polynomial and / or 2) the above-mentioned initialisation vector and / or 3) the above-mentioned encryption word table and / or 4) a session encryption key (as mentioned above).

[0068] The transmission method, and also the reception method, provides for a communication session initialisation phase between the transmitter apparatus and the receiver apparatus (see for example phase 120 in Fig. 1); during this phase a session encryption key is generated.

[0069] In general, during this communication session phase, the following can be generated directly or indirectly: 1) the session encryption key based on the authentication key and / or 2) the encryption word table based on the authentication key and / or 3) the session encryption key.

[0070] The authentication key may be used to generate, for each session, an initialisation vector and a session encryption key. The session encryption key may be used, for example, to share a random session number between the receiver apparatus and the transmitter apparatus, in particular generated by the transmitter apparatus and transmitted to the receiver apparatus. The session encryption key and the random session number can be used by the transmitter apparatus and the receiver apparatus in the same manner to locally generate the session encryption word table which is therefore known to both the transmitter apparatus and the receiver apparatus.

[0071] In general, according to a second aspect, this invention also relates to a method for receiving a data packet comprising functionalities adapted to a correct reception of a data packet transmitted using the innovative transmission method.

[0072] Essentially, the reception method must use the CRC field (or an equivalent field) of each data packet received in a dual manner as described above for the packet error control. In general, according to a third aspect, this invention relates to an apparatus for transmitting data packets over a computer network adapted to perform the innovative transmission method.

[0073] In general, according to a fourth aspect, this invention relates to an apparatus for receiving data packets from a computer network adapted to perform the innovative reception method.

[0074] It is understood that these apparatuses (as well as the devices that they comprise) do not require greater than normal computing capacity to authenticate the sender while communicating. In fact, the only additional operation compared to normal is to select a word in a table and perform an XOR between two words.

[0075] In general, according to a fifth aspect, this invention relates to an electronic control system as, for example, shown by way of example in Fig. 2 and indicated in its entirety with reference 200.

[0076] An innovative system may comprise:

[0077] - a computer network (see for example the network 210 in Fig. 2),

[0078] - transmitter apparatuses (see for example the device 220 in Fig. 2 comprising a transmitter apparatus) adapted to transmit data packets (see for example the packet 240 in Fig. 2) according to a communication protocol through the computer network, and

[0079] - receiver apparatuses (see for example the device 230 in Fig. 2 which comprises a receiver apparatus) adapted to receive data packets see for example the packet 240 in Fig. 2) according to the communication protocol through the computer network.

[0080] At least one of the transmitter apparatuses is adapted to perform the innovative transmission method and at least one of the receiver apparatuses is adapted to perform the innovative reception method.

[0081] This communication protocol provides that each data packet has a format that comprises an error handling field (see for example field 242 in Fig. 2). The error handling field is used by a receiver apparatus not only to detect and possibly correct errors in the data, but also to authenticate the sender of the data packet.

[0082] The error handling field may correspond, for example, to a CRC field of the data packet, in particular the CRC field of the packet according to the "modBUS RTU" standard. In the event that the inventive solution is used for the "modBUS TCP" protocol, the CRC code generated according to what is taught here can be entered in the "Options" field of the TCP packet header.

[0083] The protocol mentioned above will typically be at the "Application Layer" level. In particular, it can be the "modBUS RTU" protocol; in this case, the error handling field advantageously corresponds to the CRC field of the protocol "modBUS RTU". Alternatively, it can be the "modBUS TCP" protocol.

[0084] The error handling field can be encoded in a known manner only to a transmitter apparatus operating as a sender (or to a small number of apparatuses of the innovative system) and only to a receiver apparatus operating as a recipient (or to a small number of apparatuses of the innovative system) in order to allow authentication of the sender by the recipient.

[0085] This known manner is advantageously set during the installation or configuration of the system (or part of the system).

[0086] As already mentioned, according to some embodiments of this invention, non-innovative transmitter apparatuses and non-innovative receiver apparatuses can also coexist in an innovative system. For example, a "master" device can be expected to implement this invention when communicating with innovative "slave" devices and not implement this invention when communicating with non-innovative "slave" devices, that is, according to the prior art before this patent application.

Claims

Claims1 . A method for transmitting a data packet (240), said data packet (240) being to be transferred from a transmitter apparatus (220) to a receiver apparatus (230) via a computer network (210) implementing a modBUS protocol, in particular modBUS RTU, wherein the data packet (240) to be transmitted comprises a CRC field (242), wherein the CRC field (242) contains a string of bits (370) resulting from a Boolean operation (360), in particular an XOR operation, between a CRC type code (340) and an encryption word (351), wherein the CRC type code (340) is calculated (330) from a message (310) contained in the data packet (240) to be transmitted on the basis of a polynomial and an initialisation vector (320) known to both the transmitter apparatus (220) and the receiver apparatus (230), wherein the encryption word (351) is chosen from a plurality of words contained in a table (350) of encryption words according to a predetermined criterion known to both the transmitter apparatus (220) and the receiver apparatus (230), wherein the table (350) of encryption words is known to both the transmitter apparatus (220) and the receiver apparatus (230). wherein the transmission of said data packet (240) occurs during a communication session between said transmitter apparatus (220) and said receiver apparatus (230), wherein, before said communication session, there is a communication session initialisation phase between said transmitter apparatus (220) and said receiver apparatus (230), wherein during said communication session initialisation phase said polynomial, said initialisation vector and said table of encryption words are established using a session encryption key, wherein, before said communication session initialisation phase, there is a general communication initialisation phase between said transmitter apparatus (220) and said receiver apparatus (230), wherein during said general communication initialisation phase an authentication key is stored both in said transmitter apparatus (220) and said receiver apparatus (230), and wherein said session encryption key is negotiated, between said transmitter apparatus (220) and said receiver apparatus (230), using said authentication key.

2. The method according to claim 1 , wherein the encryption word for said Boolean operation is chosen in said table such that it is different for each transmitted data packet.

3. The method according to claim 2, wherein the encryption word for said Boolean operation is chosen from a plurality of words contained in said table of encryption words by means of an increasing ordecreasing index.

4. The method according to any one of claims 1 to 3, wherein said table of encryption words stores components of a Hash Chain.

5. The method according to claim 4, wherein during said communication session initialisation phase an initialisation value is established for the calculation of said Hash Chain.

6. The method according to claim 5, wherein said initialisation value:- is generated, preferably randomly or pseudo-randomly, by said transmitter apparatus (220) or said receiver apparatus (230), and- is exchanged between said transmitter apparatus (220) and said receiver apparatus (230).

7. The method according to claim 4 or 5 or 6, wherein during said communication session initialisation phase a cryptographic function is established for the calculation of said Hash Chain.

8. The method according to any one of claims 1 to 7, wherein said polynomial has the following characteristics:- it has a degree equal to the number of bits of the CRC field,- it is divisible by "x+1",- it is not divisible by "x",- it is irreducible and primitive.

9. The method according to any one of claims 1 to 8, wherein said initialisation vector is a function of said session encryption key or a part of said session encryption key.

10. The method according to any one of claims 1 to 9, wherein said authentication key is used to directly or indirectly generate: said polynomial and / or said initialisation vector and / or said table of encryption words, and / or a session encryption key.

11. The method according to any one of claims 1 to 10, wherein there is at least one communication session initialisation phase between the transmitter apparatus and the receiver apparatus, wherein during said at least one step at least one corresponding session encryption key is generated.

12. The method according to claim 11 , wherein said authentication key is used to generate, for each session, an initialisation vector and a session encryption key, wherein said session encryption key is used to share a random session number between the receiver apparatus and the transmitter apparatus, in particular generated by the transmitter apparatus and transmitted to the receiver apparatus, wherein said session encryption key and said random session number are used by the transmitter apparatus and the receiver apparatus in the same way to locally generate said session encryption word table which is therefore known to both the transmitter apparatus and the receiver apparatus.

13. A method for receiving a data packet, said data packet being to be transferred from a transmitter apparatus to a receiver apparatus via a computer network implementing a modBUS protocol, in particular modBUS RTU, wherein the method for receiving comprises functionalities adapted to a correct reception of a data packet transmitted using the method for transmitting according to any one of claims 1 to 12.

14. An apparatus for transmitting data packets over a computer network implementing a modBUS protocol, in particular modBUS RTU, characterised in that it is adapted to perform the method according to any one of claims 1 to 12.

15. An apparatus for receiving data packets from a computer network implementing a modBUS protocol, in particular modBUS RTU, characterised in that it is adapted to perform the method according to claim 13.

16. An electronic control system (200) comprising:- a computer network (210),- transmitter apparatuses (220) adapted to transmit data packets (240) according to a communication protocol via said computer network (210), and- receiver apparatuses (230) adapted to receive data packets (240) according to said communication protocol via said computer network (210), wherein said communication protocol provides that each data packet (240) has a format which comprises an error handling field (242), wherein the error handling field (242) is used by a receiver apparatus (230) not only to detect and possibly correct errors in the data, but also to authenticate the sender (220) of the data packet (240), characterised in that at least one of said transmitter apparatuses (220) is adapted to carry out the method according to any one of claims 1 to 12 and that at least one of said receiver apparatuses (230) is adapted to carry out the method according to claim 13.

17. The system according to claim 16, wherein said error handling field corresponds to a CRC field of said data packet.

18. The system according to claim 16 or 17, wherein said protocol is at "ApplicationLayer" level.

19. The system according to claim 16, wherein said protocol is modBUS RTU.

20. The system according to claim 19, wherein said error handling field corresponds to the CRC field of the modBUS RTU protocol.

21. The system according to claim 16, wherein said protocol is modBUS TCP.

22. The system according to any one of claims 16 to 21 , wherein said error handling field of said protocol is encoded in a known manner to at least one transmitter apparatus operating as sender and to at least one receiver apparatus operating as recipient in order to allow authentication of the sender.

23. The system according to claim 22, wherein said known manner is set during installation or configuration of the system or part of the system.