31.07.2013 Views

Part 1: General - Computer Security Resource Center - National ...

Part 1: General - Computer Security Resource Center - National ...

Part 1: General - Computer Security Resource Center - National ...

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

March, 2007<br />

APPENDIX A: Cryptographic and Non-cryptographic Integrity and<br />

Authentication Mechanisms<br />

Integrity and authentication services are particularly important in protocols that include key<br />

management. When integrity or authentication services are discussed in this recommendation,<br />

they are afforded by “strong” cryptographic integrity or authentication mechanisms. Secure<br />

communications and key management are typically provided using a communications protocol<br />

that offers certain services, such as integrity or a "reliable" transport service. However, the<br />

integrity or reliable transport services of communications protocols are not necessarily adequate<br />

for cryptographic applications, particularly for key management, and there might be confusion<br />

about the meaning of terms such as “integrity”.<br />

All communications channels have some noise (i.e., unintentional errors inserted by the<br />

transmission media), and other factors, such as network congestion, can cause packets to be lost.<br />

Therefore, integrity and reliable transport services for communications protocols are designed to<br />

function over a channel with certain worst-case noise characteristics. Transmission bit errors are<br />

typically detected using 1) a non-cryptographic checksum 31 to detect transmission errors in a<br />

packet, and 2) a packet counter that is used to detect lost packets. A receiving entity that detects<br />

damaged packets (i.e., packets in which errors have been detected) or lost packets may request<br />

the sender to retransmit them. The non-cryptographic checksums are generally effective at<br />

detecting transmission noise. For example, the common CRC-32 checksum algorithm used in<br />

local area network applications detects all error bursts with a span of less than 32 bits, and<br />

detects longer random bursts with a 2 -32 failure probability. However, the non-cryptographic<br />

CRC-32 checksum does not detect the swapping of 32-bit message words, and specific errors in<br />

particular message bits cause predictable changes in the CRC-32 checksum. The sophisticated<br />

attacker can take advantage of this to create altered messages that pass the CRC-32 integrity<br />

checks, even, in some cases, when the message is encrypted.<br />

Forward error correcting codes are a subset of non-cryptographic checksums that can be used to<br />

correct a limited number of errors without retransmission. These codes may be used, depending<br />

on the application and noise properties of the channel.<br />

Cryptographic integrity mechanisms, on the other hand, protect against an active, intelligent<br />

attacker who might attempt to disguise his attack as noise. Typically, the bits altered by the<br />

attacker are not random; they are targeted at system properties and vulnerabilities. Cryptographic<br />

integrity mechanisms are effective in detecting random noise events, but they also detect the<br />

more systematic deliberate attacks. Cryptographic hash algorithms, such as SHA-256 are<br />

designed to make every bit of the hash value a complex, nonlinear function of every bit of the<br />

message text, and to make it impractical to find two messages that hash to the same value. On<br />

average, it is necessary to perform 2 128 SHA-256 hash operations to find two messages that hash<br />

to the same value, and it is much harder than that to find another message whose SHA-256 hash<br />

31 Checksum: an algorithm that uses the bits in the transmission to create a checksum value. The checksum value is<br />

normally sent in the transmission. The receiver re-computes the checksum value using the bits in the received<br />

transmission, and compares the received checksum value with the computed value to determine whether or not the<br />

transmission was correctly received. A non-cryptographic checksum algorithm uses a well-known algorithm without<br />

secret information (i.e., a cryptographic key).<br />

123

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!