US10623187B2 - Generating cryptographic checksums - Google Patents
Generating cryptographic checksums Download PDFInfo
- Publication number
- US10623187B2 US10623187B2 US15/558,844 US201515558844A US10623187B2 US 10623187 B2 US10623187 B2 US 10623187B2 US 201515558844 A US201515558844 A US 201515558844A US 10623187 B2 US10623187 B2 US 10623187B2
- Authority
- US
- United States
- Prior art keywords
- message
- polynomial
- checksum
- cryptographic checksum
- cryptographic
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/09—Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/158—Finite field arithmetic processing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Definitions
- the invention relates to a method of a communication device for generating a cryptographic checksum, a corresponding computer program, a corresponding computer program product, and a checksum generator for generating a cryptographic checksum.
- WiMAX and Wireless Local Area Networks (WLAN)/WiFi networks use authentication also for the user plane.
- a known way of protecting user plane messaging is to use authentication tags which are generated by applying keyed cryptographic hash functions to messages, such as keyed-Hash Message Authentication Codes (HMAC) or Cipher Block Chaining Message Authentication Codes (CBC-MAC).
- HMAC keyed-Hash Message Authentication Codes
- CBC-MAC Cipher Block Chaining Message Authentication Codes
- a cryptographic hash function is a hash function that generates a cryptographic hash value, also known as message digest, for an arbitrary block of data, such as a message, such that any accidental or intentional change to the message, i.e., an error or modification, will change the hash value, at least with a certain high probability. Accordingly, the message digest can be used for providing integrity assurance on the message.
- a first problem with keyed cryptographic hash functions is that they are comparatively resource consuming, which hampers their use in constrained devices, i.e., devices with limited computing and battery resources such as Machine-to-Machine (M2M) and Internet-of-Things (IoT) types of devices.
- M2M Machine-to-Machine
- IoT Internet-of-Things
- a second problem is that in current state of the art, security cannot be assured by a formal/mathematical proof, at least not with a proof that is free from other cryptographic assumptions, e.g., assuming that the Advanced Encryption Standard (AES) or some other function is secure.
- AES Advanced Encryption Standard
- CRC codes are a type of separable cyclic codes which are very resource-efficient and widely used in data communication and data storage for detecting burst errors.
- CRC processing can be efficiently implemented with Linear-Feedback Shift Registers (LFSRs).
- LFSRs Linear-Feedback Shift Registers
- Common CRCs are (CRC-n means that a generator polynomial of degree n is used for encoding and decoding the CRC, where the degree is the largest coefficient of the CRC's generator polynomial):
- a CRC with a generator polynomial of degree n is able to detect all burst errors of length less than or equal to n and any error which is not a multiple of the generator polynomial.
- FEC Forward Error Correction
- LTE Long Term Evolution
- Turbo codes are frequently used as FEC codes. Since Turbo code decoding is based on probabilistic decisions, errors may be introduced into the message during the decoding process.
- a common type of error introduced by Turbo code decoders is double-bit errors, where the two flipped bits are not necessarily consecutive. Therefore, for communications relying on Turbo codes, e.g., as in LTE networks, it is important to detect, and preferably correct, double-bit errors introduced by the Turbo code decoding stage. For this reason, LTE uses types of CRCs which are able to detect double-bit errors, also known as two-bit errors, such as CRC-24.
- While traditional CRC techniques are suitable for detecting random errors, they can easily be defeated by a malicious adversary. Since it is known to an adversary which generator polynomial is used by a certain CRC, he may easily craft a modified message which passes the CRC check at the receiver. This may, e.g., be achieved by adding to the original message an error which corresponds to a multiple of the generator polynomial.
- a more resource efficient solution for providing data integrity in the user plane is to replace the conventional CRC by a cryptographically secure CRC, in the following also referred to as cryptographic CRC or cryptographic checksum.
- a cryptographic CRC has the same capability of detecting random errors as a traditional CRC, but is also capable of detecting, with high probability, any malicious error injected by an adversary.
- a method of generating a cryptographic checksum for a message M(x) is provided.
- the method is performed by a communication device.
- the method comprises calculating the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x)) mod p(x)).
- the primitive polynomial is selected, based on a first cryptographic key, from the set of primitive polynomials of degree n ⁇ 1 over a Galois Field, in particular GF(2).
- a computer program comprises computer-executable instructions for causing a device to perform the method according to an embodiment of the first aspect of the invention, when the computer-executable instructions are executed on a processing unit comprised in the device.
- a computer program product comprises a computer-readable storage medium which has the computer program according to the second aspect of the invention embodied therein.
- a checksum generator for generating a cryptographic checksum for a message M(x) is provided.
- the checksum generator comprises means which are configured for calculating the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x))mod p(x)).
- the primitive polynomial is selected, based on a first cryptographic key, from the set of primitive polynomials of degree n ⁇ 1 over a Galois Field, in particular GF(2).
- the checksum generator may, e.g., be comprised in a communication device.
- a communication device may, e.g., be a sender device, a receiver device, a mobile terminal, a User Equipment (UE), a mobile phone, a smartphone, a tablet, a computer, a node of a Radio Access Network (RAN), or the like.
- UE User Equipment
- RAN Radio Access Network
- the invention makes use of an understanding that an efficient authentication of a message may be provided by replacing the standard checksum, such as a CRC, with a cryptographic checksum which is based on a generator polynomial which is a product of a primitive polynomial and a fixed polynomial (1 ⁇ x).
- a generator polynomial which is a product of a primitive polynomial and a fixed polynomial (1 ⁇ x).
- primitive polynomials are reducible and have a non-zero constant term.
- the proposed cryptographic checksum may be used for providing integrity assurance on the message, i.e., for detecting random and intentional message changes, with a known level of security which is derived further below.
- the proposed checksum is guaranteed to detect double-bit errors, which may be introduced by a Turbo code decoder, up to a message length of 2 n-1 ⁇ 1 bits [see, e.g., W. H. Press, S. A. Teukolsky, W. T. Vetterling, and B. P. Flannery, “Section 22.4 Cyclic Redundancy and Other Checksums” in “Numerical Recipes: The Art of Scientific Computing (3rd ed.)”, New York: Cambridge University Press]. Since the maximum allowed transport block size for data in LTE is 6114 bits, a checksum of order 24, such as CRC-24, is capable of detecting all double-bit errors in messages. The proposed checksum is also capable of detecting any single-bit error and any error in the odd number of bits.
- a message is binary-coded information which frequently is cast into a certain format.
- the format may be dictated by a protocol to which the message relates.
- the message comprises a header and payload, and the cryptographic checksum is preferably generated for the entire message, i.e., header and payload.
- Embodiments of the invention are advantageous over the prior art in that, by replacing a conventional CRC with a cryptographic checksum which has the same capability of detecting random errors as the traditional CRC while additionally providing integrity assurance for a message, the message format is not changed. In particular, the length of the message is not increased, in contrast to known solutions which are based on adding additional MACs to the message.
- Generating the proposed generator polynomial requires testing for primitiveivity, with a computational complexity of order n 3 bit operations [see, e.g., M. ⁇ ivkovi ⁇ , “Generation of primitive binary polynomials”, International Conference on Algebra, Logic and Discrete Mathematics, Apr.
- selecting the primitive polynomial may be controlled by means of a probability distribution for the primitive polynomial.
- a probability distribution may effectively limit the set of available polynomials.
- maintaining a database of only a subset of all primitive polynomials of degree n ⁇ 1 over a Galois Fields amounts to enforcing a probability distribution which has zero probability for the polynomials which are not contained in the database.
- the method further comprises selecting the primitive polynomial and calculating the generator polynomial by the communication device.
- the primitive polynomial may be selected by each communication device, based on a deterministic scheme involving a shared secret.
- the generator polynomial is calculated by each communication device based on the primitive polynomial which it has selected.
- the primitive polynomial, or information describing how to generate the primitive polynomial may be received by the communication device, and the generator polynomial is calculated based on the received primitive polynomial or the received information describing how to generate the primitive polynomial.
- the communication devices e.g., the sender
- the generator polynomial is then calculated by each communication device based on the primitive polynomial selected by the sender.
- the primitive polynomial may also be selected by a third party, i.e., a network node which is not involved in the communication session between the two communication devices, and the primitive polynomial or the information describing how to generate the primitive polynomial is then distributed to the two communication devices.
- the third party may, e.g., be a key server or an Authentication, Authorization, and Accounting, (AAA) server in a communications network.
- AAA Authentication, Authorization, and Accounting
- the generator polynomial, or information describing the generator polynomial may be received by the communication device.
- one of the communication devices e.g., the sender, may calculate the generator polynomial, either based on a primitive polynomial which it has selected or based on a received primitive polynomial, and transmit the generator polynomial or information describing how to generate the generator polynomial to the receiver.
- the generator polynomial may also be calculated by a third party, i.e., a network node which is not involved in the communication session between the two communication devices, such as a key server or an AAA server in a communications network, and the generator polynomial or the information describing how to generate the generator polynomial is then distributed to the two communication devices.
- a third party i.e., a network node which is not involved in the communication session between the two communication devices, such as a key server or an AAA server in a communications network
- the primitive polynomial is pseudo-randomly selected.
- pseudo-random selection is understood to be a process which appears random, i.e., which results in sequences of primitive polynomials which exhibit statistical randomness or computational randomness, but which in fact relies on deterministic rules.
- Statistical randomness means that the probability distribution of the generated primitive polynomials is close, in some metric, to the uniform distribution over the set of all primitive polynomials.
- Computational randomness means that no efficient algorithm is able to distinguish that the probability distribution of the generated primitive polynomials, in some metric, from the uniform distribution over the set of all primitive polynomials.
- the method further comprises pseudo-randomly generating a pad s of length n, wherein the first function comprises an addition with the pad.
- Adding a pseudo-randomly generated pad is advantageous in that the linear transformation of generating a cryptographic checksum by means of a hash function is converted into an affine transformation. In absence of the pad, an adversary may successfully inject an all-zero message.
- the pad may be pseudo-randomly generated. Further optionally, the pad may be generated based on a second cryptographic key, which may be equal to, or different from, the first cryptographic key.
- the primitive polynomial is selected additionally based on information which is specific for the message. That is, the primitive polynomial is selected based on message specific information in a way which is only known to the sender and the receiver of the message while appearing random to an adversary.
- the message specific information may, e.g., comprise any one or a combination of a message sequence number, a message identifier, a time stamp comprised in the message, or the like.
- the message specific information does not need to be secret, only the way in which it effects the selection of the primitive polynomial needs to be secret.
- the method is performed by a sender device.
- the method comprises acquiring the message, generating a cryptographic checksum for the message, appending the generated cryptographic checksum to the message, encoding the message and the appended cryptographic checksum into a codeword of an FEC code, and transmitting the FEC codeword.
- the encoding the message and the appended cryptographic checksum encoded into a codeword of an FEC code comprises generating one or more check bits of the FEC code based on the message and the appended cryptographic checksum, and appending the generated FEC check bits to the message and the appended cryptographic checksum.
- the check bits can be separated from the FEC codeword at the receiver.
- FEC codes are commonly referred to as separable codes.
- the method is performed by a receiver device.
- the method comprises receiving a codeword of an FEC code, extracting the message and an appended first cryptographic checksum from the FEC codeword, generating a second cryptographic checksum for the message, and verifying if the first cryptographic checksum and the second cryptographic checksum are identical. If not, the integrity of the message could not be established. That is, the message has been modified, either intentionally or accidentally.
- the message and the appended first cryptographic checksum are extracted from the FEC codeword by decoding the FEC codeword.
- the FEC codeword comprises the message, the appended first cryptographic checksum, and one or more appended check bits of the FEC code
- the extracting the message and an appended first cryptographic checksum from the FEC codeword comprises correcting the message and the appended first cryptographic checksum based on the appended FEC check bits. This is the case for separable FEC codes.
- FIG. 1 shows a communication system
- FIG. 2 shows a codeword
- FIG. 3 shows a block diagram illustrating message authentication.
- FIG. 4 shows a flow chart for a method of a sender, in accordance with an embodiment of the invention.
- FIG. 5 shows a flow chart for a method of a receiver, in accordance with an embodiment of the invention.
- FIG. 6 shows a sender, in accordance with an embodiment of the invention.
- FIG. 7 shows a receiver, in accordance with an embodiment of the invention.
- FIG. 8 shows a sender, in accordance with another embodiment of the invention.
- FIG. 9 shows a receiver, in accordance with another embodiment of the invention.
- FIG. 10 shows an IC, in accordance with an embodiment of the invention.
- FIG. 11 shows a mobile phone, in accordance with an embodiment of the invention.
- a communication system 100 which comprises two communication devices, a sender device 101 and a receiver device 102 , throughout this disclosure referred to as sender and receiver, respectively, which are configured for communicating over a communications network 103 .
- sender 101 is configured for transmitting a message 105
- receiver 102 is configured for receiving message 105
- communication devices 101 and 102 are configured for transmitting and receiving messages.
- Sender 101 and receiver 102 may be any type of device capable of effecting communications over communications network 103 , such as computers, mobile terminals, User Equipments (UEs), M2M/IoT type of devices, or nodes of a Radio Access Network (RAN), such as gateways, Radio Network Controllers (RNCs), Radio Base Stations (RBSs), NodeBs, or eNodeBs.
- Communications network 103 may be any one, or a combination of, a wired or wireless network, e.g., a RAN such as GSM, UMTS, LTE, a WLAN/WiFi network, an Ethernet network, a corporate network, the Internet, or the like.
- Adversary 104 may intercept message 105 transmitted by sender 101 and re-transmit a modified copy of the message to receiver 102 .
- Adversary 104 may also attempt to generate new messages without relying on modifications of messages received from sender 101 .
- the intent of adversary 104 is to inject malicious messages into receiver 102 , in particular a network interface, operating system, or application, of receiver 102 .
- FEC Forward Error Correction
- the invention may be useful also in scenarios which do not rely on FEC. For example, this may be the case if a channel between a sender and a receiver for some reason has a tendency to introduce double-bit errors, akin to what may occur in an FEC decoder, as discussed above.
- a checksum 203 such as a CRC, is generated for a message 204 , which in FIG. 2 is illustrated as comprising a header 201 and a body 202 carrying payload, and appended to message 204 .
- Message 204 and the appended checksum 203 are subsequently encoded into an FEC codeword 206 .
- FEC codeword 206 If an FEC algorithm with separable FEC codes is used, as is illustrated in the upper part 210 of FIG. 2 , a number of FEC check bits 205 are generated based on the FEC algorithm and appended to message 204 and checksum 203 , resulting in an FEC codeword 206 with separable check bits 205 .
- an FEC algorithm with separable FEC codes is used, as is illustrated in the upper part 210 of FIG. 2
- FEC check bits 205 are generated based on the FEC algorithm and appended to message 204 and checksum 203 , resulting in an FEC codeword 206 with separable check bits
- FEC codeword 206 which has an increased length as compared to the combined length of message 204 and checksum 203 , to provide for redundant bits.
- Codeword 206 (corresponding to, or carried in, message 105 in FIG. 1 ) is then transmitted to receiver 102 where the integrity of message 204 is verified, as is described in the following with reference to FIG. 3 , which shows a block diagram 300 illustrating the sender side (left in FIG. 3 ) and the receiver side (right in FIG. 3 ), corresponding to sender 101 and receiver 102 , respectively, of FIG. 1 .
- message 204 which is to be transmitted to receiver 102 is acquired, e.g., received from a higher layer of a protocol stack of sender 101 , and fed into an algorithm 301 configured for calculating a first checksum (CS in FIG. 3 ) 203 , in particular a CRC.
- checksum algorithm 301 receives a shared secret as input, e.g., a cryptographic key, and generates first checksum 203 as output.
- checksum algorithm 301 may additionally receive an Initialization Value (IV) as input, based on which first checksum 203 is generated.
- IV Initialization Value
- the IV may be a separate input to checksum algorithm 301 , or it may be input as part of message 204 , e.g., by prepending or appending it to message 204 . Then, message 204 and checksum 203 are combined, by appending checksum 203 to message 204 before they are encoded, by an FEC encoding algorithm 311 , into an FEC codeword 206 which subsequently is transmitted as message 105 to receiver 102 , e.g., via communications network 103 .
- an FEC codeword 216 is received and fed into an FEC decoding algorithm 312 , which corresponds to FEC encoder 311 and is capable of detecting and correcting burst errors introduced during transmission of FEC codeword 206 originating from sender 101 .
- FEC codeword 216 received by receiver 102 is identical to FEC codeword 206 transmitted by sender 101 .
- An output from FEC decoder 312 is a message 214 and its checksum 213 (CS′ in FIG. 3 ). Note that message 214 and checksum 213 may be different from message 204 and checksum 203 , respectively, fed into FEC encoder 311 on the sender side, owing to errors introduced by FEC decoder 312 .
- Such errors may be introduced by Turbo code decoders which are frequently used in LTE, since Turbo code decoding is based on probabilistic decisions.
- a common type of error introduced by Turbo code decoders is double-bit errors, where the two flipped bits are not necessarily consecutive.
- checksum algorithm 301 which is identical to checksum algorithm 301 of sender 101 and which generates a second checksum 223 (CS′′ in FIG. 3 ) based on message 314 and further based on a shared secret which is identical to the shared secret used by sender 101 .
- checksum algorithm 301 may additionally receive an IV as input which is identical to the IV used by sender 101 . Then, the integrity of message 314 is verified by feeding the second checksum 223 into a comparator 305 and comparing it to the first checksum 213 extracted from the received codeword 206 .
- the result of the comparison is made available by comparator 305 for further use, e.g., for a higher layer of a communication stack of receiver 102 , and indicates whether the first checksum 213 and the second checksum 223 are identical or not.
- the result output by comparator 305 may be a Boolean value, wherein a high value (Boolean “1”) indicates that the two checksums are identical and a low value (Boolean “0”) indicates that the two checksums differ, or vice versa.
- the integrity of message 304 may be assumed, i.e., that message 214 received by receiver 102 is identical to message 204 transmitted by sender 101 . By verifying the integrity of message 214 , it can be inferred with a certain probability that message 204 has not been modified during transmission 105 .
- CRCs which are cryptographic hash functions like HMAC or CBC-MAC
- CRCs which are cryptographic hash functions like HMAC or CBC-MAC
- a CRC with a generator polynomial p(x) of degree n is capable of detecting all burst errors of length less than or equal to n.
- a CRC will detect any error which is not a multiple of its generator polynomial p(x). Encoding and decoding of CRCs can efficiently be implemented by hardware, using LFSRs, and software.
- message M(x) 204 is typically first multiplied by x n and then divided modulo generator polynomial p(x).
- the polynomial coefficients of the remainder, r ( x ) M ( x ) ⁇ x n mod p ( x ) (1), constitute the CRC checksum 203 , i.e., the message digest, and are added to the data bits, M(x) ⁇ x n , to form the combination of message 204 and checksum 203 .
- ⁇ is a finite GF multiplication (which for the finite GF(2) is equivalent to the Boolean AND) operation and “mod” is the remainder of polynomial modulo division in the finite field.
- multiplication by x n shifts message M(x) 204 by n bits. That is, message M(x) 204 is shifted before combining with CRC checksum 203 . As a result, the message bits are separable from the checksum bits.
- message 204 and checksum 203 are encoded into an FEC codeword 206 by FEC encoder 311 , which operates in accordance with a certain FEC algorithm. In LTE, Turbo codes are commonly used.
- the data bits M′(x) ⁇ x n received in FEC codeword 216 are first fed into FEC decoder 312 , which operates in correspondence with FEC encoder 311 , thereby extracting message 214 and checksum 213 , which subsequently are divided modulo generator polynomial p(x).
- the polynomial coefficients of the resulting remainder, checksum 223 , r ′( x ) M ′( x ) ⁇ x n mod p ( x ) (2), are compared with the check bits r(x) 213 (CS′) received with codeword 206 .
- a resource efficient solution for providing data integrity, and in particular in the user plane, is to replace the conventional CRC by a cryptographically secure CRC, which has the same capability of detecting random errors as a traditional CRC but which is also capable of detecting, with high probability, any intentional or malicious modification.
- An advantage of using a cryptographically secure CRC of the same size as a traditional CRC is that existing protocol stacks can be extended to support message authentication without requiring to redesign the entire protocol stack in order to account for a change in message size.
- the cryptographically secure CRC proposed by Krawczyk is based on the idea to let the generator polynomial be a shared secret, known only to sender 101 and receiver 102 . Thereby, adversary 104 cannot design messages so as to pass the integrity check at receiver 102 . This works satisfactorily from a security point of view, but the generator polynomial proposed by Krawczyk does not allow detecting double-bit errors.
- embodiments of the invention which are described in the following are advantageous in that the integrity of message 105 transmitted from sender 101 to receiver 102 can be verified by means of a cryptographic checksum which is of the same size as a conventional CRC but which is capable of detecting intentional of malicious modifications with a high probability in addition to random errors, to which conventional CRCs are limited.
- a cryptographic checksum which is of the same size as a conventional CRC but which is capable of detecting intentional of malicious modifications with a high probability in addition to random errors, to which conventional CRCs are limited.
- embodiments of the invention are further advantageous in that the proposed generator polynomials have the capability of detecting double-bit errors which may be introduced by FEC decoder 312 .
- embodiments of the invention utilize a cryptographic checksum which replaces the conventional checksum 203 , such as a CRC, illustrated in FIGS. 2 and 3 .
- message 204 or parts thereof, e.g., body 202 , may also be encrypted in some embodiments of the invention.
- receiver 102 may first decrypt the message, or parts of the message, before performing integrity verification.
- at least part of the decryption process may be interleaved with the checksum verification.
- receiver 102 typically first needs to decrypt the at least parts of received codeword 216 .
- sender 101 first encrypts message 204 before computing checksum 203 over the encrypted message, then receiver 102 may postpone decryption until after checksum 223 has been calculated and the integrity of the received encrypted message has been verified.
- decryption is performed as required.
- checksum algorithm 301 which is used for generating cryptographically secure checksums at sender 101 (CS in FIG. 3 ) and receiver 102 (CS′′ in FIG. 3 ), respectively, is modified in comparison with that proposed by Krawczyk as is described in the following.
- the primitive polynomial p 1 (x) may be selected based on a first cryptographic key, i.e., a shared secret which is known to sender 101 and receiver 102 .
- the shared secret may, e.g., be established by public key techniques or symmetric techniques supported by Subscriber Identity Modules (SIM), Universal SIMs (USIM), or the like, as is known in the art.
- the selection of the primitive polynomial p 1 (x) and the calculation of the generator polynomial p(x) according to Eq. (4) may be performed by sender 101 and receiver 102 , e.g., in checksum algorithm 301 .
- sender 101 and/or receiver 102 may also be configured for receiving the primitive polynomial p 1 (x), or information describing how to generate the primitive polynomial p 1 (x), and calculating the generator polynomial p(x) based on the received primitive polynomial p 1 (x) or the received information describing how to generate the primitive polynomial p 1 (x).
- sender 101 may be configured for selecting the primitive polynomial p 1 (x), calculating the generator polynomial p(x), and transmitting the primitive polynomial p 1 (x), or information describing how to generate the primitive polynomial p 1 (x), to receiver 102 .
- receiver 102 may be configured for receiving the primitive polynomial p 1 (x), or information describing how to generate the primitive polynomial p 1 (x), and calculating the generator polynomial p(x) based on the received primitive polynomial p 1 (x) or the received information describing how to generate the primitive polynomial p 1 (x).
- both sender 101 and receiver 102 may be configured for receiving the primitive polynomial p 1 (x), or information describing how to generate the primitive polynomial p 1 (x), from a third party, such as a key or AAA server 106 , or the like, and calculating the generator polynomial p(x) based on the received primitive polynomial p 1 (x) or the received information describing how to generate the primitive polynomial p 1 (x).
- the received primitive polynomial p 1 (x), or the received information describing how to generate the primitive polynomial p 1 (x) is used as input to checksum algorithm 301 , instead of the shared secret and the optional IV.
- sender 101 and/or receiver 102 may also be configured for receiving the generator polynomial p(x) or information describing how to generate the generator polynomial p(x).
- sender 101 may be configured for selecting the primitive polynomial p 1 (x), calculating the generator polynomial p(x), and transmitting the generator polynomial p(x), or information describing how to generate the generator polynomial p(x), to receiver 102 .
- receiver 102 may be configured for receiving the generator polynomial p(x), or information describing how to generate the generator polynomial p(x).
- both sender 101 and receiver 102 may be configured for receiving the generator polynomial p(x) or information describing how to generate the generator polynomial p(x) from a third party, such as key or AAA server 106 , or the like. It will be appreciated that, in this case, the received generator polynomial p(x) or the received information describing how to generate the generator polynomial p(x) is used as input to checksum algorithm 301 , instead of the shared secret and the optional IV.
- Information describing how to generate the primitive polynomial p 1 (x) or the generator polynomial p(x) may, e.g., comprise an index into a list of primitive polynomials or generator polynomials, which list is known to both sender 101 and receiver 102 , or the coefficients of the primitive polynomial p 1 (x) or the generator polynomial p(x), respectively.
- the information describing how to generate the primitive polynomial may be a seed which is used as input to a deterministic algorithm which generates a primitive polynomial in dependence of the seed.
- the seed may be an arbitrary polynomial and the deterministic algorithm may operate by testing, in lexicographic order starting from the seed input, consecutive polynomials until a primitive polynomial is found.
- a certain polynomial is primitive or not is well known in the art [see, e.g., ⁇ ivkovi ⁇ , “Generation of primitive binary polynomials”, International Conference on Algebra, Logic and Discrete Mathematics, Apr. 14-16, 1995, Ni ⁇ ].
- the primitive polynomial p 1 (x), the generator polynomial p(x), or information describing how to generate the primitive polynomial p 1 (x) or the generator polynomial p(x), respectively, may be provided to devices involved in a communication session, such as sender 101 and/or receiver 102 , during a handshake procedure which is performed as part of an initialization process of the communication session.
- a handshake procedure which is performed as part of an initialization process of the communication session.
- the key produced by the AKA may be used as the aforementioned first cryptographic key, and may further be used as input to a deterministic algorithm generating a primitive polynomial as describe above.
- the first cryptographic key may be used as an index into a pre-computed table of suitable primitive polynomials.
- Pad s may be generated pseudo-randomly, e.g., based on a second cryptographic key which may be identical to, or different from, the first cryptographic key.
- the first and/or the second cryptographic key may be generated from a third cryptographic key, e.g., by generating pseudo-random bit sequence from the third cryptographic key and some information known to sender 101 and receiver 102 , and selecting a portion of the generated bit sequence to be the first cryptographic key and the remaining bits of the bit sequence to be the second cryptographic key.
- receiver 102 may either (i) first remove pad s by decryption and then treat only h p (M) as checksum 213 , or (ii) not remove pad s and rather treat h p (M)+s as checksum 213 .
- the pad used in embodiments of the invention is similar to the well-known one-time pad introduced by Vernam in the early 1900's.
- the message was combined bit-by-bit with the pad using the Boolean XOR operation.
- the pad is combined with the cryptographic checksum in an analogous fashion.
- t ( M ) h p ( M )+ s (10)
- a primitive polynomial p 1 (x) is generated, preferably pseudo-randomly
- the generator polynomial p(x) is formed according to Eq. (4)
- hash function h p is evaluated, and a pseudo-randomly generated pad s is added, either explicitly or as part of an encryption process.
- generating the primitive polynomial p 1 (x) either requires to run a test for primitiveivity for each polynomial pseudo-randomly selected from the set of all polynomials of degree n ⁇ 1 over a Galois Field, or to pseudo-randomly draw each primitive polynomial p 1 (x) from a database comprising a set of, preferably all, primitive polynomials of order n ⁇ 1 over a Galois Field.
- Eq. (11) leads to an upper bound of any adversary's probability of success, no matter what computational resources the adversary may have at its disposal.
- Eq. (12) can be approximated as ⁇ ( m+n ⁇ 1)/2 n-2 (14).
- the proposed cryptographically secure CRC has approximately the same collision probability (Eq. (13)) as the cryptographically secure CRC of Krawczyk (Eq. (15)), and thus provides similar security.
- the presented cryptographically secure CRC can detect all double-bit errors for messages of size up to 2 n-1 ⁇ 1 bits, which is not the case for the cryptographically secure CRC of Krawczyk.
- Embodiments of the invention are based on an, for adversary 104 , unpredictable change of at least one of generator polynomial p(x) and pad s in a fashion which is deterministic for sender 101 and receiver 102 . That is, the change of the generator polynomial p(x) and/or the pad s has to be synchronized between sender 101 and receiver 102 .
- checksum algorithm 301 may optionally select the primitive polynomial p 1 (x) based on some (non-secret) message dependent data, such as a sequence number of the message or some other unique information in the message, e.g., a time stamp, a message identifier, or a random number. Such additional information may, e.g., be carried in header 201 of message 204 .
- Method 400 comprises acquiring 401 the message, e.g., from a higher layer of a communication stack of sender 101 or an application being executed by sender 101 , generating a cryptographic checksum for the message, appending 406 the generated cryptographic checksum to the message, encoding 407 the message and the appended cryptographic checksum into a codeword of an FEC code, and transmitting 408 the FEC codeword.
- Method 400 comprises acquiring 401 the message, e.g., from a higher layer of a communication stack of sender 101 or an application being executed by sender 101 , generating a cryptographic checksum for the message, appending 406 the generated cryptographic checksum to the message, encoding 407 the message and the appended cryptographic checksum into a codeword of an FEC code, and transmitting 408 the FEC codeword.
- generating the cryptographic checksum comprises calculating 405 the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x)) mod p(x)).
- the first cryptographic key is a shared secret known to the sender and the receiver of the message.
- the primitive polynomial is selected pseudo-randomly.
- Method 400 may further comprise selecting 402 the primitive polynomial and calculating 403 the generator polynomial.
- method 400 may further comprise receiving the primitive polynomial, or information describing how to generate the primitive polynomial, and calculating the generator polynomial based on the received primitive polynomial or the received information describing how to generate the primitive polynomial (not shown in FIG. 4 ).
- method 400 may further comprise receiving the generator polynomial or information describing how to generate the generator polynomial (not shown in FIG. 4 ).
- the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial may be received from another device involved in the communication session, or from a third party.
- sender 101 may receive the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial, from receiver 102 , key or AAA server 106 , or the like.
- Encoding 407 the message and the appended cryptographic checksum into an FEC codeword may optionally comprise generating one or more check bits of the FEC code based on the message and the appended cryptographic checksum, and appending the generated FEC check bits to the message and the appended cryptographic checksum. This is the case for separable FEC codes.
- Method 400 may further comprise pseudo-randomly generating 404 a pad s of length n, wherein the first function g comprises an addition with the pad s.
- Pad s may be generated based on a second cryptographic key which may be equal to, or different from, the first cryptographic key.
- the second and the first cryptographic keys are shared secret known to the sender and the receiver of the message.
- at least one of primitive polynomial p 1 (x) and pad s, or both, may be generated dependent on information which is specific for the message, such as a message sequence number, a time stamp, a random number, or the like.
- Method 500 comprises receiving 501 an FEC codeword, i.e., an encoded representation of the message and an appended first cryptographic checksum, extracting 502 the message and the appended first cryptographic checksum from the FEC codeword by decoding the FEC codeword, generating a second cryptographic checksum for the message, and verifying 508 if the first cryptographic checksum and the second cryptographic checksum are identical. If not, the integrity of the message could not be established. That is, the message has been modified, either accidentally/randomly or intentionally/maliciously.
- generating the second cryptographic checksum comprises calculating 505 the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x)) mod p(x)).
- the first cryptographic key is a shared secret known to the sender and the receiver of the message.
- the primitive polynomial is pseudo-randomly selected.
- Method 500 may further comprise selecting 504 the primitive polynomial and calculating 505 the generator polynomial.
- method 500 may further comprise receiving the primitive polynomial, or information describing how to generate the primitive polynomial, and calculating the generator polynomial based on the received primitive polynomial or the received information describing how to generate the primitive polynomial (not shown in FIG. 5 ).
- method 500 may further comprise receiving the generator polynomial or information describing how to generate the generator polynomial (not shown in FIG. 5 ).
- the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial may be received from another device involved in the communication session, or from a third party.
- receiver 102 may receive the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial, from sender 101 , key or AAA server 106 , or the like.
- the FEC codeword may comprise the message, the appended first cryptographic checksum, and one or more appended check bits of the FEC code.
- method 500 may further comprise correcting 503 the message and the appended first cryptographic checksum based on the appended FEC check bits.
- Method 500 may further comprise pseudo-randomly generating 506 a pad s of length n, wherein the first function g comprises an addition with the pad s.
- Pad s may be generated based on a second cryptographic key which may be equal to, or different from, the first cryptographic key.
- the second and the first cryptographic keys are shared secret known to the sender and the receiver of the message.
- at least one of primitive polynomial p 1 (x) and pad s, or both, may be generated dependent on information which is specific for the message, such as a message sequence number, a time stamp, a random number, or the like.
- the computation of cryptographic checksums in accordance with embodiments of the invention is based on the same type of operations as is used for conventional CRCs. Therefore, it retains most of the simplicity of traditional CRCs except that embodiments of the invention utilize a variable pseudo-random generator polynomial. Accordingly, implementing embodiments of the invention in hardware is simple, and the resulting implementations are very resource efficient.
- the operation of division modulo a polynomial over GF(2) may be implemented through an LFSR, where the taps of the LFSR determine the generator polynomial p(x), as is known in the art. Even multiplication by x n can be implemented in hardware with high performance.
- a cryptographic checksum in accordance with embodiments of the invention requires an implementation in which the feedback connections are programmable. It is the actual configuration of these feedback connections which is the key for the hashing and which should be changeable and secret.
- some non-cryptographic CRC circuits also may use programmable connections if they need to support different CRC standards based on different generator polynomials, or to support different polynomial degrees [see, e.g., J. Birch, L. G. Christensen, and M. Skov, “A programmable 800 Mbit/s CRC check/generator unit for LANG and MANs”, Comp. Networks and ISDN Sys., 1992].
- the functions in the hash function family are essentially defined by the generator polynomial p(x), and not by the length of the messages to which the hash functions are applied. Therefore, they can be applied to messages of different lengths, as is desirable in practice.
- the polynomial corresponding to a message M(x) should have “1” as leading coefficient, rather than “0” (if M is of length m, then M(x) is of proper degree m). This determines a one-to-one mapping between messages and polynomials and, in particular, prevents changing the message by just appending zeros to it. For instance, a message 01011 should be treated as a 4-bit message 1011 rather than as a 5-bit message.
- an explicit length indication may be used as input to the authentication/verification process, e.g., by prepending or appending the message length to the message.
- FSM Finite State Machine
- MAC Medium Access Control
- the checksum decoder re-computes the check bits for the received message elements as they arrive one-by-one, i.e., bit-by-bit.
- the comparator compares the re-computed check bits with the check bits received in the message, i.e., the authentication tag or checksum. If the re-computed and the received check bits disagree, the comparator sends an error signal to the control block, indicating that the integrity of the message could not be verified.
- Sender 600 comprises a message buffer 601 for acquiring the message, e.g., from a higher layer of a communication stack of sender 600 or an application being executed by sender 600 , a checksum generator 602 for generating a cryptographic checksum for the message, a codeword buffer 603 for forming a codeword by appending the generated cryptographic checksum to the message, an FEC encoder 604 for encoding the message and the appended cryptographic checksum into an FEC codeword, an interface 604 for transmitting the FEC codeword (“I/O” in FIG.
- Interface 605 may, e.g., be a network interface or a radio transceiver configured for effecting communications with a RAN.
- checksum generator 602 is configured for generating the cryptographic checksum by calculating the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x)) mod p(x)).
- sender 600 in particular checksum generator 602 , may be configured for selecting the primitive polynomial and calculating the generator polynomial. Alternatively, they may be configured for receiving the primitive polynomial, or information describing how to generate the primitive polynomial, and calculating the generator polynomial based on the received primitive polynomial or the received information describing how to generate the primitive polynomial (not shown in FIG. 6 ). As yet a further alternative, they may be configured for receiving the generator polynomial or information describing how to generate the generator polynomial (not shown in FIG. 6 ).
- the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial may be received from another device involved in the communication session, or from a third party.
- sender 101 may receive the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial, from receiver 102 , key or AAA server 106 , or the like.
- Checksum generator 602 may further be configured for pseudo-randomly generating a pad s of length n, wherein the first function g comprises an addition with the pad s.
- Pad s may be generated based on a second cryptographic key which may be equal to, or different from, the first cryptographic key.
- the second cryptographic key is a shared secret known to sender 600 and the receiver of the message.
- shared secret module 606 may further be configured for providing the second cryptographic key to checksum generator 602 .
- pad s may be provided by an encryption algorithm, as was described hereinbefore, rather than being generated by checksum generator 602 .
- checksum generator 602 may be configured for generating at least one of primitive polynomial p 1 (x) and pad s, or both, dependent on information which is specific for the message, such as a message sequence number, a time stamp, a random number, or the like. Such information may be utilized as input to checksum generator 602 , in particular to an LFSR comprised in checksum generator 602 .
- Receiver 700 comprises an interface 701 for receiving an FEC codeword (“I/O” in FIG. 7 ), i.e., an encoded representation of the message and an appended first cryptographic checksum, an FEC decoder 702 for extracting the message and then appended first cryptographic checksum from the FEC codeword, a codeword buffer 704 for extracting the message and the first cryptographic checksum from the codeword output by FEC decoder 702 , a checksum generator 703 for generating a second cryptographic checksum for the message, a comparator 705 for verifying if the first cryptographic checksum and the second cryptographic checksum are identical, and a shared secret module 707 for providing checksum generator 703 with the first cryptographic key, i.e., a shared secret known to receiver 700 and the sender of the message.
- FEC codeword (“I/O” in FIG. 7 )
- FEC decoder 702 for extracting the message and then appended first cryptographic checksum from the FEC codeword
- Receiver 700 may further comprise a message buffer 706 for storing the received message and passing the message to a higher layer of a communication stack of receiver 700 or an application being executed by receiver 700 in response to an indication received by comparator 705 that the integrity of the received message has been verified.
- Interface 701 may, e.g., be a network interface or a radio transceiver configured for effecting communications with a RAN.
- checksum generator 703 is similar to checksum generator 602 described with reference to FIG. 6 and is configured for generating the second cryptographic checksum by calculating the cryptographic checksum as a first function g of a division of a second function of M(x), ⁇ (M(x)), modulo a generator polynomial p(x) of degree n, g( ⁇ (M(x)) mod p(x)).
- receiver 700 in particular checksum generator 703 , may be configured for selecting the primitive polynomial and calculating the generator polynomial. Alternatively, they may be configured for receiving the primitive polynomial, or information describing how to generate the primitive polynomial, and calculating the generator polynomial based on the received primitive polynomial or the received information describing how to generate the primitive polynomial (not shown in FIG. 7 ). As yet a further alternative, they may be configured for receiving the generator polynomial or information describing how to generate the generator polynomial (not shown in FIG. 7 ).
- the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial may be received from another device involved in the communication session, or from a third party.
- receiver 102 may receive the primitive polynomial, the generator polynomial, or information describing how to generate the respective polynomial, from sender 101 , key or AAA server 106 , or the like.
- Checksum generator 703 may further be configured for pseudo-randomly generating a pad s of length n, wherein the first function g comprises an addition with the pad s.
- Pad s may be generated based on a second cryptographic key which may be equal to, or different from, the first cryptographic key.
- the second cryptographic key is a shared secret known to receiver 700 and the sender of the message. Accordingly, shared secret module 707 may further be configured for providing the second cryptographic key to checksum generator 703 .
- pad s may be provided by an encryption algorithm, as was described hereinbefore, rather than being generated by checksum generator 703 .
- checksum generator 703 may be configured for generating at least one of primitive polynomial p 1 (x) and pad s, or both, dependent on information which is specific for the received message, such as a message sequence number, a time stamp, a random number, or the like. Such information may be utilized as input to checksum generator 703 , in particular to an LFSR comprised in checksum generator 703 .
- Embodiments of sender 600 and receiver 700 may be implemented in hardware, software, or a combination thereof, as is known in the art.
- modules 601 - 606 and modules 701 - 707 may be implemented by means of electronic circuitry, in particular digital binary logic.
- modules 601 - 606 and modules 701 - 707 may be implemented based on Digital Signal Processors (DSPs).
- DSPs Digital Signal Processors
- interfaces 605 and 701 may comprise analog electronic circuitry configured for transmitting or receiving, respectively, the codeword over the air interface of a RAN.
- Embodiments of checksum generators 602 and 703 operate very similar to standard CRC generators, the implementation of which is known in the art.
- Embodiments of checksum generators 602 and 703 which rely on a pseudo-randomly generated pad s may implement the addition of pad s by a bit-wise XOR operation between the n-bit string representing ⁇ (M(x)) mod p(x) and the n-bit pad s.
- Sender 800 comprises a processor 801 , e.g., a DSP, a memory 802 comprising software, i.e., a computer program 803 comprising computer-executable instructions, for causing sender 800 to implement an embodiment of the method of a sender of authenticating a message described hereinbefore, in particular with reference to FIG. 4 , when the computer-executable instructions are executed on processor 801 .
- Sender 800 may further comprise an interface 804 (“I/O” in FIG. 8 ) for effecting communications via a communications network, e.g., communications network 103 .
- Interface 804 may, e.g., be a network interface or a radio transceiver configured for effecting communications with a RAN.
- Receiver 900 comprises a processor 901 , e.g., a DSP, a memory 902 comprising software, i.e., a computer program 903 comprising computer-executable instructions, for causing receiver 900 to implement an embodiment of the method of a receiver of authenticating a message described hereinbefore, in particular with reference to FIG. 5 , when the computer-executable instructions are executed on processor 901 .
- Receiver 900 may further comprise an interface 904 (“I/O” in FIG. 9 ) for effecting communications via a communications network, e.g., communications network 103 .
- Interface 904 may, e.g., be a network interface or a radio transceiver configured for effecting communications with a RAN.
- Embodiments 1001 of the sender and the receiver described with reference to FIGS. 6 to 9 may be implemented in an Integrated Circuit (IC) 1000 illustrated in in FIG. 10 . Further, embodiments 1101 of the sender and the receiver described with reference to FIGS. 6 to 9 may also be implemented in a mobile terminal, such as mobile phone 1100 illustrated in FIG. 11 . As yet a further alternative, embodiments 1101 of the sender and the receiver described with reference to FIGS. 6 to 9 may also be implemented in a node of a RAN, e.g., a gateway, an RNC, or a radio access node, such as an RBS, a NodeB, an eNodeB, a WLAN access point, or the like.
- a RAN e.g., a gateway, an RNC, or a radio access node, such as an RBS, a NodeB, an eNodeB, a WLAN access point, or the like.
- a family of hash functions is ⁇ -opt-secure if it is +-linear and ⁇ -balanced.
- the family of hash functions based on generator polynomials of the type according to Eq. (1) is +-linear since the division modulo a polynomial is a linear operation, where addition is equivalent to a bit-wise XOR operation.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Power Engineering (AREA)
- Quality & Reliability (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Mobile Radio Communication Systems (AREA)
- Detection And Prevention Of Errors In Transmission (AREA)
Abstract
Description
-
- CRC-16-CDMA2000: used in 3G mobile networks
- CRC-CCITT: used in Bluetooth
- CRC-24: used in LTE
- CRC-32: used in Ethernet and High-Level Data Link Control (HDLC) protocols
- CRC-40-GSM: used in GSM control channel.
r(x)=M(x)·x n mod p(x) (1),
constitute the
r′(x)=M′(x)·x n mod p(x) (2),
are compared with the check bits r(x) 213 (CS′) received with
t(M)=g(ƒ(M(x))mod p(x)) (3),
where
h p(M)=ƒ(M(x))mod p(x) (4)
is the hash function. The generator polynomial is of the form
p(x)=(1−x)·p 1(x) (5),
where p1(x) is a primitive polynomial of degree n−1 which is selected from the set of primitive polynomials over a Galois Field, in particular the Galois field of order 2, GF(2). The primitive polynomial p1(x) may be selected based on a first cryptographic key, i.e., a shared secret which is known to
p 1(x)=Σi=0 n-1 c i ·x i (6),
the information describing how to generate the primitive polynomial p1(x) may comprise the set of coefficients {ci}, where ci=0 or 1, for all i=0, . . . , n−1, for GF(2).
p(x)=Σi=0 n c′ i ·x i (7),
the information describing how to generate the generator polynomial p(x) may comprise the set of coefficients {c′i}, where c′i=0 or 1, for all i=0, . . . , n, for GF(2).
g(h p(M))=h p(M)+s (8),
where “+” is the Boolean bitwise XOR operation. Pad s may be generated pseudo-randomly, e.g., based on a second cryptographic key which may be identical to, or different from, the first cryptographic key. The first and/or the second cryptographic key may be generated from a third cryptographic key, e.g., by generating pseudo-random bit sequence from the third cryptographic key and some information known to
h p(M)=M(x)·x n mod p(x) (9).
t(M)=h p(M)+s (10),
a primitive polynomial p1(x) is generated, preferably pseudo-randomly, the generator polynomial p(x) is formed according to Eq. (4), hash function hp is evaluated, and a pseudo-randomly generated pad s is added, either explicitly or as part of an encryption process. Note that generating the primitive polynomial p1(x) either requires to run a test for primitivity for each polynomial pseudo-randomly selected from the set of all polynomials of degree n−1 over a Galois Field, or to pseudo-randomly draw each primitive polynomial p1(x) from a database comprising a set of, preferably all, primitive polynomials of order n−1 over a Galois Field.
maxM,M′Pr[h p(M)=h p(M′)] (11),
where the maximum is taken over all distinct m-bit messages M and M′, and the probability Pr is taken over random choices of generator polynomial p(x), according to Eq. (4), defining the hash function. Note that the presence of the pad s does not affect the probability, since hp(M)+s=hp(M′)+s if, and only if, hp(M)=hp(M′). Note further that the probability is a statistical quantity, and the optimal strategy to predict a random event is to make predictions according to the statistical distribution of the event. For example, predicting whether a coin-flip (of a hypothetical, perfect coin) comes up heads or tails cannot be done with success greater than ½, no matter what resources are available. Therefore, Eq. (11) leads to an upper bound of any adversary's probability of success, no matter what computational resources the adversary may have at its disposal.
ε≤(m+n−1)/φ(2n-1−1) (12),
where φ is the well-known Euler totient function. The probability ε is called the collision probability. If 2n-1−1 is prime, Eq. (12) reduces to
ε≤(m+n−1)/(2n-1−2) (13).
ε≤(m+n−1)/2n-2 (14).
εKr≤(m+n)/2n-1 (15).
p(x)=(1+x)·p 1(x), (1)
where p1(x) is a primitive polynomial of degree n−1, is ε-opt-secure for
Proof: A family of hash functions is ε-opt-secure if it is +-linear and ε-balanced. The family of hash functions based on generator polynomials of the type according to Eq. (1) is +-linear since the division modulo a polynomial is a linear operation, where addition is equivalent to a bit-wise XOR operation. To show that the family is also ε-balanced, we observe that, on one hand, for any polynomial p(x) of degree n over GF(2), any non-zero message M of length m, and any string c of length n, hp(M)=c if and only if M(x)·xn mod p(x)=c(x). On the other hand, M(x)·xn mod p(x)=c(x) if and only if p(x) divides M(x)·xn−c(x).
Claims (18)
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/EP2015/059482 WO2016177385A1 (en) | 2015-05-04 | 2015-05-04 | Generating cryptographic checksums |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20180069706A1 US20180069706A1 (en) | 2018-03-08 |
| US10623187B2 true US10623187B2 (en) | 2020-04-14 |
Family
ID=54843798
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US15/558,844 Active 2035-12-24 US10623187B2 (en) | 2015-05-04 | 2015-05-04 | Generating cryptographic checksums |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US10623187B2 (en) |
| EP (1) | EP3292653A1 (en) |
| KR (1) | KR20170137872A (en) |
| CN (1) | CN107592968B (en) |
| WO (1) | WO2016177385A1 (en) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP4657758A1 (en) * | 2024-05-30 | 2025-12-03 | Samsung Electronics Co., Ltd. | Error correction code circuit, operating method thereof, and storage device |
Families Citing this family (13)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR3043807B1 (en) * | 2015-11-18 | 2017-12-08 | Bull Sas | COMMUNICATION VALIDATION DEVICE |
| US10594491B2 (en) * | 2015-12-24 | 2020-03-17 | Intel Corporation | Cryptographic system memory management |
| KR101988849B1 (en) * | 2017-08-30 | 2019-06-13 | 에스케이텔레콤 주식회사 | Networlk device and message integrity check method thereof |
| TW201919361A (en) * | 2017-11-09 | 2019-05-16 | 張英輝 | Method for block cipher enhanced by nonce text protection and decryption thereof |
| US11032061B2 (en) * | 2018-04-27 | 2021-06-08 | Microsoft Technology Licensing, Llc | Enabling constant plaintext space in bootstrapping in fully homomorphic encryption |
| US12040897B2 (en) * | 2018-08-21 | 2024-07-16 | The George Washington University | Learning-based high-performance, energy-efficient, fault-tolerant on-chip communication design framework |
| KR101942030B1 (en) * | 2018-11-13 | 2019-01-24 | 동국대학교 산학협력단 | Electronic device for performing code-based encryption supporting integrity verification of a message and operating method thereof |
| CN111835691B (en) * | 2019-04-22 | 2022-09-27 | 中国移动通信有限公司研究院 | Authentication information processing method, terminal and network device |
| CN111262686A (en) * | 2020-01-17 | 2020-06-09 | 通号万全信号设备有限公司 | Security verification method for RSSP-I secure communication |
| CN113765851B (en) * | 2020-06-03 | 2022-11-08 | 华为技术有限公司 | Data processing method and equipment thereof |
| CN111831974B (en) * | 2020-06-30 | 2024-02-23 | 深圳数字电视国家工程实验室股份有限公司 | Interface protection method, device, electronic equipment and storage medium |
| GB202301467D0 (en) * | 2023-02-01 | 2023-03-15 | Nordic Semiconductor Asa | Radio devices |
| CN115882876B (en) * | 2023-02-16 | 2023-06-13 | 苏州浪潮智能科技有限公司 | Data coding verification method, system, equipment, medium and circuit |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5345507A (en) * | 1993-09-08 | 1994-09-06 | International Business Machines Corporation | Secure message authentication for binary additive stream cipher systems |
Family Cites Families (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN100425017C (en) * | 2005-12-08 | 2008-10-08 | 西安电子科技大学 | Encoder and Fast Encoding Method of Parallel Convolutional LDPC Codes Based on Precoding |
| WO2012098543A2 (en) * | 2011-01-18 | 2012-07-26 | Fortress Gb Ltd. | System and method for computerized negotiations based on coded integrity |
-
2015
- 2015-05-04 US US15/558,844 patent/US10623187B2/en active Active
- 2015-05-04 WO PCT/EP2015/059482 patent/WO2016177385A1/en not_active Ceased
- 2015-05-04 EP EP15807812.1A patent/EP3292653A1/en not_active Ceased
- 2015-05-04 CN CN201580079983.5A patent/CN107592968B/en active Active
- 2015-05-04 KR KR1020177032971A patent/KR20170137872A/en not_active Ceased
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5345507A (en) * | 1993-09-08 | 1994-09-06 | International Business Machines Corporation | Secure message authentication for binary additive stream cipher systems |
Non-Patent Citations (11)
| Title |
|---|
| Birch, Jesper et al., "A programmable 800 Mbit/s CRC check/generator unit for LANs and MANS", Computer Networks and ISDN Systems 24, 1992, 109-118. |
| Dubrova, Elena et al., "Cryptographically Secure CRC for Lightweight Message Authentication", International Association for Cryptologic Research, Jan. 15, 2015, 1-12. |
| Gao, Shuhong et al., "Tests and Constructions of Irreducible Polynomials over Finite Fields", Foundations of Computational Mathematics, 1997, 1-16. |
| Krawczyk, Hugo, "LFSR-based Hashing and Authentication", Advances in Cryptology (CRYPTO), 1994, 129-139. |
| Peterson, W. W. et al., "Cyclic Codes for Error Detection", Proceedings of the IRE, vol. 49, Issue: Jan. 1, 1961, 228-235. |
| Press, William H. et al., "Cyclic Redundancy and Other Checksums", Numerical Recipes-The Art of Scientific Computing, Third Edition, Chapter 22.4, 2007, 1168-1175. |
| Press, William H. et al., "Cyclic Redundancy and Other Checksums", Numerical Recipes—The Art of Scientific Computing, Third Edition, Chapter 22.4, 2007, 1168-1175. |
| Unknown, Author, "Cyclic redundancy check", Wikipedia, Apr. 29, 2015, 1-10. |
| Unknown, Author, "IEEE Standard for Local and metropolitan area networks-Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs)", IEEE Standard 802.15.1-2011, XP-002728593, Sep. 5, 2011, 1-47. |
| Unknown, Author, "IEEE Standard for Local and metropolitan area networks—Part 15.4: Low-Rate Wireless Personal Area Networks (LR-WPANs)", IEEE Standard 802.15.1-2011, XP-002728593, Sep. 5, 2011, 1-47. |
| Zivkovic, Miodrag, "Generation of Primitive Binary Polynomials", International Conference on Algebra, Logic and Discrete Mathematics, Apr. 14-16, 1995, 1-5. |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP4657758A1 (en) * | 2024-05-30 | 2025-12-03 | Samsung Electronics Co., Ltd. | Error correction code circuit, operating method thereof, and storage device |
Also Published As
| Publication number | Publication date |
|---|---|
| KR20170137872A (en) | 2017-12-13 |
| US20180069706A1 (en) | 2018-03-08 |
| CN107592968B (en) | 2021-05-11 |
| CN107592968A (en) | 2018-01-16 |
| WO2016177385A1 (en) | 2016-11-10 |
| EP3292653A1 (en) | 2018-03-14 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10396996B2 (en) | Generating cryptographic checksums | |
| US20180069706A1 (en) | Generating Cryptographic Checksums | |
| US10313125B2 (en) | Generating cryptographic checksums | |
| CN114902605B (en) | Public/private key system with increased security | |
| CN112715016B (en) | Key Encapsulation Protocol | |
| EP0644676A2 (en) | Secure message authentication for binary additive stream cipher systems | |
| Dubrova et al. | CRC-based message authentication for 5G mobile technology | |
| CN105981346B (en) | Energy saving in wireless devices | |
| JP3728500B2 (en) | Modulation message authentication system and method | |
| CN104995866B (en) | Message Authentication Using a Universal Hash Function Computed with Carry-Free Multiplication | |
| EP2087635A2 (en) | Processing method for message integrity with tolerance for non-sequential arrival of message data | |
| Liu et al. | A joint encryption and error correction scheme based on chaos and LDPC | |
| Lee et al. | Ciphertext-only attack on linear feedback shift register-based Esmaeili-Gulliver cryptosystem | |
| Dubrova et al. | Error-correcting message authentication for 5g | |
| Zajac | Hybrid encryption from McEliece cryptosystem with pseudo-random error vector | |
| Steinwandt et al. | Group Key Exchange: Living on the Edge with a Quantum Adversary | |
| CN121967019A (en) | Multi-user information sharing method and system based on probabilistic asymmetric encryption protocol |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| AS | Assignment |
Owner name: TELEFONAKTIEBOLAGET LM ERICSSON (PUBL), SWEDEN Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:DUBROVA, ELENA;MILDH, GUNNAR;NAESLUND, MATS;AND OTHERS;SIGNING DATES FROM 20150508 TO 20160303;REEL/FRAME:043604/0089 |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NON FINAL ACTION MAILED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
| CC | Certificate of correction | ||
| MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 4TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1551); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 4 |