SNEPprovides a number of unique advantages. First, it has low communication overhead since it only adds bytes per message. Second, like many cryptographic protocols it uses a counter, but we avoid transmitting the counter value by keeping state at both end points. Third, SNEPachieves even semantic security, a strong security property which prevents eavesdroppers from inferring the message content from the encrypted message. Finally, the same simple and efficient protocol also gives us data authentication, replay protection, and weak message freshness.
Data confidentiality is one of the most basic security primitives and it is used in almost every security protocol. A simple form of confidentiality can be achieved through encryption, but pure encryption is not sufficient. Another important security property is semantic security, which ensures that an eavesdropper has no information about the plaintext, even if it sees multiple encryptions of the same plaintext [12]. For example, even if an attacker has an encryption of a bit and an encryption of a bit, it will not help it distinguish whether a new encryption is an encryption of or . The basic technique to achieve this is randomization: Before encrypting the message with a chaining encryption function (i.e. DES-CBC), the sender precedes the message with a random bit string. This prevents the attacker from inferring the plaintext of encrypted messages if it knows plaintext-ciphertext pairs encrypted with the same key.
However, sending the randomized data over the RF channel requires more energy. So we construct another cryptographic mechanism that achieves semantic security with no additional transmission overhead. Instead, we rely on a shared counter between the sender and the receiver for the block cipher in counter mode (CTR) (as we discuss in Section 6). Since the communicating parties share the counter and increment it after each block, the counter does not need to be sent with the message. To achieve two-party authentication and data integrity, we use a message authentication code (MAC).
The combination of these mechanisms form our Sensor Network Encryption Protocol
SNEP. The encrypted data has the following format: , where is the data, the encryption key is , and the counter is . The MAC is . We derive the keys and from the
master secret key as we show in Section 6. The
complete message that sends to is:
SNEPoffers the following nice properties:
Plain SNEPprovides weak data freshness only, because it only enforces a sending order on the messages within node , but no absolute assurance to node that a message was created by in response to an event in node .
Node achieves strong data freshness for a response from node through a
nonce (which is a random number sufficiently long such that it is
unpredictable). Node generates randomly and sends it along with a
request message to node . The simplest way to achieve strong freshness
is for to return the nonce with the response message in an
authenticated protocol. However, instead of returning the nonce to the sender,
we can optimize the process by using the nonce implicitly in the MAC
computation. The entire SNEPprotocol providing strong freshness for 's
response is:
If the MAC verifies correctly, node knows that node generated the response after it sent the request. The first message can also use plain SNEP if confidentiality and data authentication are needed.