idnits 2.17.1 draft-aanchal4-ntp-mac-03.txt: Checking boilerplate required by RFC 5378 and the IETF Trust (see https://trustee.ietf.org/license-info): ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/1id-guidelines.txt: ---------------------------------------------------------------------------- == Mismatching filename: the document gives the document name as 'draft-aanchal4-ntp-mac-02', but the file name used is 'draft-aanchal4-ntp-mac-03' Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- ** The document seems to lack an IANA Considerations section. (See Section 2.2 of https://www.ietf.org/id-info/checklist for how to handle the case when there are no actions for IANA.) ** The abstract seems to contain references ([RFC5905], [RFC6151], [RFC4493], [BCK]), which it shouldn't. Please replace those with straight textual mentions of the documents in question. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (October 25, 2016) is 2730 days in the past. Is this intentional? Checking references for intended status: Proposed Standard ---------------------------------------------------------------------------- (See RFCs 3967 and 4897 for information about using normative references to lower-maturity documents in RFCs) == Unused Reference: 'GK' is defined on line 505, but no explicit reference was found in the text ** Downref: Normative reference to an Informational RFC: RFC 2104 ** Downref: Normative reference to an Informational RFC: RFC 4493 ** Downref: Normative reference to an Informational RFC: RFC 6151 ** Obsolete normative reference: RFC 7539 (Obsoleted by RFC 8439) ** Obsolete normative reference: RFC 7630 (Obsoleted by RFC 7860) Summary: 7 errors (**), 0 flaws (~~), 3 warnings (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Internet Engineering Task Force A. Malhotra 3 Internet-Draft S. Goldberg 4 Intended status: Standards Track Boston University 5 Expires: April 28, 2017 October 25, 2016 7 Message Authentication Codes for the Network Time Protocol 8 draft-aanchal4-ntp-mac-02 10 Abstract 12 The Network Time Protocol (NTP) RFC 5905 [RFC5905] uses a message 13 authentication code (MAC) to cryptographically authenticate its UDP 14 packets. Currently, NTP packets are authenticated by appending a 15 128-bit key to the NTP data, and hashing the result with MD5 to 16 obtain a 128-bit tag. However, as discussed in [BCK] and [RFC6151], 17 this is not a secure MAC. As such, this draft considers different 18 secure MAC algorithms for use with NTP, evaluates their performance, 19 and recommends the use of CMAC-AES [RFC4493]. We also suggest 20 deprecating the use of MD5 as defined in [RFC5905] for authenticating 21 NTP packets. 23 Status of This Memo 25 This Internet-Draft is submitted in full conformance with the 26 provisions of BCP 78 and BCP 79. 28 Internet-Drafts are working documents of the Internet Engineering 29 Task Force (IETF). Note that other groups may also distribute 30 working documents as Internet-Drafts. The list of current Internet- 31 Drafts is at http://datatracker.ietf.org/drafts/current/. 33 Internet-Drafts are draft documents valid for a maximum of six months 34 and may be updated, replaced, or obsoleted by other documents at any 35 time. It is inappropriate to use Internet-Drafts as reference 36 material or to cite them other than as "work in progress." 38 This Internet-Draft will expire on April 28, 2017. 40 Copyright Notice 42 Copyright (c) 2016 IETF Trust and the persons identified as the 43 document authors. All rights reserved. 45 This document is subject to BCP 78 and the IETF Trust's Legal 46 Provisions Relating to IETF Documents 47 (http://trustee.ietf.org/license-info) in effect on the date of 48 publication of this document. Please review these documents 49 carefully, as they describe your rights and restrictions with respect 50 to this document. Code Components extracted from this document must 51 include Simplified BSD License text as described in Section 4.e of 52 the Trust Legal Provisions and are provided without warranty as 53 described in the Simplified BSD License. 55 Table of Contents 57 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 58 1.1. Requirements Language . . . . . . . . . . . . . . . . . . 2 59 2. MAC Algorithms . . . . . . . . . . . . . . . . . . . . . . . 3 60 3. Requirements . . . . . . . . . . . . . . . . . . . . . . . . 3 61 3.1. Performance Requirements . . . . . . . . . . . . . . . . 3 62 3.2. Security Requirements . . . . . . . . . . . . . . . . . . 4 63 4. Performance Results . . . . . . . . . . . . . . . . . . . . . 4 64 5. Other Hardware Platforms . . . . . . . . . . . . . . . . . . 5 65 6. Security Considerations . . . . . . . . . . . . . . . . . . . 6 66 6.1. Why is GMAC not suitable for NTP? . . . . . . . . . . . . 7 67 7. Use HMAC or CMAC instead . . . . . . . . . . . . . . . . . . 9 68 8. GMAC-SIV - Another Potential MAC Candidate . . . . . . . . . 9 69 9. Recommendations . . . . . . . . . . . . . . . . . . . . . . . 10 70 10. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 10 71 11. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 72 11.1. Normative References . . . . . . . . . . . . . . . . . . 10 73 11.2. Informative References . . . . . . . . . . . . . . . . . 11 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12 76 1. Introduction 78 NTP uses a message authentication code (MAC) to authenticate its 79 packets. Currently, NTP packets are authenticated by appending a 80 128-bit key to the NTP data, and hashing the result with MD5 to 81 obtain a 128-bit tag. However, as discussed in [BCK] and [RFC6151], 82 this not a secure MAC. As such, this draft considers different 83 secure MAC algorithms for use with NTP, evaluates their performance, 84 and recommends the use of CMAC-AES [RFC4493]. We also suggest 85 deprecating the use of MD5, as defined in [RFC5905], for 86 authenticating NTP packets. 88 1.1. Requirements Language 90 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 91 "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this 92 document are to be interpreted as described in RFC 2119 [RFC2119]. 94 2. MAC Algorithms 96 We consider five diverse MAC algorithms, which encompass hash-based 97 HMAC-MD5 and HMAC-SHA224 [RFC2104], block cipher-based CMAC-AES 98 [RFC4493], and universal hashing-based Galois MAC (GMAC) [RFC4543] 99 and Poly1305(ChaCha20) as in section 2.6 of [RFC7539]. For 100 completeness we also benchmark the legacy MD5(key||message) from 101 [RFC5905]. 103 +--------------------+----------------------+-----------------------+ 104 | Algorithm | Input Key Length | Output Tag Length | 105 | | (Bytes) | (Bytes) | 106 +--------------------+----------------------+-----------------------+ 107 | legacy MD5 | 16 | 16 | 108 | HMAC-MD5 | 16 | 16 | 109 | HMAC-SHA224 | 16 | 16 | 110 | CMAC(AES) | 16 | 16 | 111 | GMAC(AES) | 16 | 16 | 112 | Poly1305(ChaCha20) | 32 | 16 | 113 +--------------------+----------------------+-----------------------+ 115 The choice of algorithms evaluated here is motivated, in part, by 116 standardization and availablity of their open source implementations. 117 All algorithms we consider, other than the plain MD5, are 118 standardized. Four out of five algorithms are at least available in 119 the OpenSSL library, while Poly1305(ChaCha20) is implemented in 120 LibreSSL (a fork of OpenSSL) and also in BoringSSL (Google's 121 implementation of OpenSSL). 123 The output tag length for HMAC-SHA224 is 28 bytes, but we truncate it 124 to 16 bytes as in section 4 of [RFC7630] to fit into the NTP packet. 125 As noted in section 6 of [RFC2104] it is safe to truncate the output 126 of MACs as long as the truncated length is greater than 80-bits and 127 not less than half the length of the hash output. 129 3. Requirements 131 3.1. Performance Requirements 133 In order to accurately compute the time, NTP ideally requires MAC 134 algorithms to have a constant computational latency. However, this 135 is generally not possible, since latency depends on the CPU load, 136 temperature, and other uncontrollable factors. Instead, a MAC 137 algorithm that requires fewer clock cycles for computation is 138 prefered over one that requires more clock cycles, as this directly 139 translates to a reduction in jitter (i.e., the variance of the 140 latency for computing the MAC). 142 Throughput is another important consideration. NTP servers may have 143 to deal with thousands of client requests per second. A study [NIST] 144 on the usage analysis of NIST's NTP stratum 1 servers shows that 145 these servers cater to 28,000 requests/second on an average, per 146 server. 148 Most of the Internet is served by stratum 2 and stratum 3 servers, 149 some of which are a part of voluntary NTP pool. These machines may 150 be running old hardware. Generally, while benchmarking MAC 151 algorithms, several optimization techniques on custom specialized 152 hardware are used to get the best results. However, for the reason 153 stated above we choose to benchmark performance on a range of 154 software and hardware platforms with and without optimizations. 156 3.2. Security Requirements 158 There are several more constraints specific to NTP that need to be 159 taken into account. 161 1. NTP servers are stateless, i.e. they do not keep per client 162 state. 164 2. Per [RFC5905], NTP uses a pre-shared symmetric key. This makes 165 key management difficult because there is no in-band mechanism 166 for distributing keys. As such, to simplify key management, some 167 deployments use the same pre-shared key at many servers 168 (typically at the same stratum). In other words, the same key is 169 used for several client/server associations. 171 3. [RFC5905] also has no in-band mechanism to refresh keys. 173 4. Performance Results 175 The NTP header is 48 bytes long. We therefore consider the latency 176 and throughput for several secure MAC algorithms when computed over 177 48-byte messages. 179 We customize the in-built speed utility of OpenSSL-1.0.2g (03 May 180 2016) version to compute the latency and throughput for each MAC as 181 shown in the tables below. OpenSSL, however, does not implement 182 stream-cipher ChaCha20-based Poly1305 MAC algorithm. To speed test 183 this MAC, we use LibreSSL 2.3.1, a fork of OpenSSL implementation. 184 OpenSSL and LibreSSL are the most widely used cryptographic libraries 185 and are used by the current NTP implementations. 187 Since the introduction of New Instruction (NI) set for hardware 188 support in Intel chips, certain MACs like CMAC and GMAC have 189 performance advantage on such machines. Based on this, we perform 190 two different benchmarks: one with AES-NI enabled and the other with 191 it disabled. Benchmarks were taken on an x86_64, Intel(R) Xeon(R) 192 CPU E5-2676 v3 @ 2.40GHz with one core CPU. 194 This table shows throughput in terms of number of 48-byte NTP payload 195 processed per second. 197 +--------------------+-------------+-----------------+ 198 | Algorithm | with AES-NI | without AES-NI | 199 +--------------------+-------------+-----------------+ 200 | legacy MD5 | 3118K | 3165K | 201 | HMAC-MD5 | 2742K | 2749K | 202 | HMAC-SHA224 | 1265K | 1267K | 203 | CMAC(AES) | 7567K | 4388K | 204 | GMAC(AES) | 16612K | 4627K | 205 | Poly1305(ChaCha20) | 2598K | 2398K | 206 +--------------------+-------------+-----------------+ 208 This table shows latency in terms of number of CPU cycles per byte 209 (cpb) when processing a 48-byte NTP payload. 211 +--------------------+-------------+-----------------+ 212 | Algorithm | with AES-NI | without AES-NI | 213 +--------------------+-------------+-----------------+ 214 | legacy MD5 | 16.0 | 15.7 | 215 | HMAC-MD5 | 18.2 | 18.1 | 216 | HMAC-SHA224 | 39.4 | 39.0 | 217 | CMAC(AES) | 6.6 | 11.3 | 218 | GMAC(AES) | 3.0 | 10.8 | 219 | Poly1305(ChaCha20) | 14.4 | 15.0 | 220 +--------------------+-------------+-----------------+ 222 5. Other Hardware Platforms 224 We also perform tests on the following ARM CPU cores and 225 PowerPC(PPC)core with OpenSSL 1.0.2h released May 2016. These cores 226 are most commonly used in consumer products and Industrial Control 227 Systems (ICS) components. We select these cores to cover the ARM 228 architecture versions 5/6 to 8. The results vary depending on the 229 availability of CPU specific optimizations. For example the used 230 Cortex-A9 and Cortex-A53 CPU have a NEON unit and OpenSSL can utilize 231 it to accelerate AES. 233 1. Freescale/Apple PPC74xx 1.5GHz 235 2. NXP i.MX6 1GHz (dual core) ARM Cortex-A9 237 3. Broadcom BCM2837 1.2GHz (quad core) ARM Cortex-A53 238 4. Marvell 88F6281 1.2GHz 88FR131 (ARMv5te compliant) 240 The table below shows throughput in terms of number of 48-byte NTP 241 payload processed per second. 243 +--------------------+---------+------------+-------------+---------+ 244 | Algorithm | PPC74xx | ARM | ARM Cortex | Marvell | 245 | | | Cortex-A9 | A-53 | | 246 +--------------------+---------+------------+-------------+---------+ 247 | legacy MD5 | 600K | 543K | 748K | 383k | 248 | HMAC-MD5 | 463K | 415K | 864K | 438k | 249 | HMAC-SHA224 | 276K | 245K | 357K | 150k | 250 | CMAC(AES) | 576K | 412K | 614K | 246k | 251 | GMAC(AES) | 681K | 1362K | 2193K | 453k | 252 | Poly1305(ChaCha20) | 335K | 379K | 580K | 273k | 253 +--------------------+---------+------------+-------------+---------+ 255 The table below shows latency in terms of number of CPU cycles per 256 byte (cpb) when processing a 48-byte NTP payload. 258 +--------------------+---------+------------+-------------+---------+ 259 | Algorithm | PPC74xx | ARM | ARM Cortex | Marvell | 260 | | | Cortex-A9 | A-53 | | 261 +--------------------+---------+------------+-------------+---------+ 262 | legacy MD5 | 52.1 | 38.4 | 33.4 | 65.3 | 263 | HMAC-MD5 | 67.4 | 50.3 | 29.0 | 57.1 | 264 | HMAC-SHA224 | 113.3 | 85.2 | 70.1 | 166.5 | 265 | CMAC(AES) | 54.2 | 50.5 | 40.7 | 101.2 | 266 | GMAC(AES) | 50.0 | 15.3 | 11.4 | 55.1 | 267 | Poly1305(ChaCha20) | 93.1 | 55.0 | 43.1 | 91.7 | 268 +--------------------+---------+------------+-------------+---------+ 270 6. Security Considerations 272 The MD5 (key||message) "message authentication code" specified in 273 [RFC5905] is vulnerable to length extension attacks, and uses the 274 insecure MD5 hash function, and therefore MUST be deprecated. 276 Therefore, we consider hash-based MACs (HMAC-MD5, HMAC-SHA224), and 277 cipher-based MACs (CMAC-AES, Poly1305 (ChaCha20)). The upper bound 278 on the security level provided by any MAC against brute-force attacks 279 is min (key-length, tag-length). The security of these MACs can be 280 worse but not better than this bound. All MAC algorithms we consider 281 have comparable key-lengths and output tag-lengths. So the advantage 282 of an adversary that wishes to forge a MAC is lower-bounded by 283 1/2^{128}. 285 Assume that an adversary can obtain a valid MAC for q distinct 286 messages. Then the table below describes the advantage of an 287 adversary that wishes to forge a MAC in terms of number of queries 288 (q) it launches. 290 +--------------------------+-------------------------------+ 291 | Algorithm | Advantage | 292 +--------------------------+-------------------------------+ 293 | HMAC-MD5 [MB] | q^2/2^{128} | 294 | HMAC-SHA224 [BCK] | q^2/2^{224} | 295 | CMAC(AES)[IK] | q^2/2^{128} | 296 | GMAC(AES) [IOM] | q^2/2^{128} | 297 | Poly1305(ChaCha20) [DJB] | {e^{{q^2}/{2^{129}}}}/2^{103} | 298 +--------------------------+-------------------------------+ 300 Poly1305 can easily handle up to q=2^{64} but security degrades 301 pretty rapidly after that. 303 However, the bounds in the table above are somewhat optimistic, for 304 the following reasons. 306 1. GMAC has an initialization vector (IV) that [RFC4106] allows to 307 be 1 <= len(IV) <= 2^{64}-1. Per [RFC4106], implementations are 308 optimized to handle a 12-octet IV. With a 12-octet IV, the total 309 number of message invocations is bound to 2^{48}. Moreover, if 310 the IV is reused even once (for the same secret authentication 311 key and different input messages), then [Joux] shows that the 312 secret authetication key can easily be recovered by the 313 adversary. Notice that this attack is even stronger than a 314 message forgery because it recovers the authentication key. This 315 is known as nonce-reuse vulnerability. 317 2. The other three algorithms evaluated here do not suffer from 318 nonce reuse vulnerabilities where an adversary can recover the 319 authentication key if the nonce is reused just once. 321 3. The table above suggests that for CMAC, the total number of 322 invocations of the MAC is limited to 2^{64}. However, [NIST-CMAC] 323 recommends, to be on the safe side, that the total number of 324 invocations of the block cipher algorithm during the lifetime of 325 the key is limited to 2^{48}. 327 6.1. Why is GMAC not suitable for NTP? 329 [Joux] showed that for GMAC-AES, if the IV is repeated just once, 330 then the authentication key can be fully recovered. None of the 331 other algorithms evaluated here have this vulnerability. Thus, for 332 GMAC-AES to be secure, we need to make sure that IV is never 333 repeated. 335 [NIST-GMAC] recommends constructing the 12-byte IV used in GMAC by 336 concatenating a fixed 4-byte salt value concatenate with a variable 337 8-byte nonce i.e. IV = ( salt|| nonce). Here salt is an implicit 338 value established when a session is established, remains fixed for 339 all exchanges in a session (i.e. for all invocations that use the 340 same authenication key) between the sender and the receiver. 341 Meanwhile, the nonce is freshly generated for each authenticated 342 message. 344 Because NTP servers do not keep per-client state, the nonce can not 345 be a sequential value. Instead, this nonce must be randomly 346 generated 8-bytes value chosen freshly for each authenticated 347 message. According to birthday bound, the nonce value will be 348 repeated, with high probability, after 2^{32} messages sent in a 349 given association. This leads to a repeated IV value and to [Joux]'s 350 attack. Thus, to prevent repeated nonces, we would need to require 351 the authentication key to be refreshed for the association after 352 2^{32} messages. 354 On one hand, 2^{32} is a lot of queries for an honest client, 355 assuming that the client queries once per minute (which is NTP's 356 minimum polling interval [RFC5905]). On the other hand, a man-in- 357 the-middle (MiTM) can quickly and easily exhaust this number by 358 replaying old authenticated queries to the NTP server. 360 The main problem here is that NTP lacks an explict in-band key 361 refresh mechanism that can be invoked automatically (without operator 362 intervention). And a key refresh mechanism is unlikely to be adopted 363 as it would allow denial-of-service (DoS) attacks. The state less 364 nature makes NTP resilient against DoS attacks. 366 Even if there was a method by which key-refresh could be performed, 367 there is an additional problem. An NTP server does not keep per- 368 client state. Therefore, it cannot keep track of the number of 369 messages it sent in a given association. One idea is to have the 370 client keep this state, and then send an authenicated request for a 371 key refresh. However, a man-in-the-middle could replay old 372 authenticated queries to the NTP server, and then intercept the 373 server's' response before they reach the legitimate client. In this 374 case, the client would never know when to ask for a key refresh. 376 Alternatively, the server could maintain a global counter (since it 377 can't afford to keep per client counter). And after 2^{32} messages, 378 it can refresh the keys with all its clients. However, a man-in-the- 379 middle could exhaust this number quickly and the server will have to 380 refresh keys with all the clients very frequently. 382 Thus, we conclude that a scheme that requires refreshing the key 383 after 2^{32} client queries is not a good idea at all. 385 Even in the absence of a man-in-the-middle, there is also the problem 386 of multiple servers using the same authentication key. The salt 387 could be used to distinguish IVs across different client/server 388 associations that use the same authenication key. However, this 389 brings us back to the original key management problem. One way to 390 deal with this is to choose the 4-byte salt at random. However, this 391 gives rise to a birthday bound of 2^{16} = 65,000 unique IVs. If we 392 consider 20,000 stratum 3 clients synchronizing to three stratum 2 393 servers each, all of which are in the same organization and share the 394 same symmetric key, we get very close to the birthday bound. This is 395 another disadvantage of using GMAC with NTP. 397 7. Use HMAC or CMAC instead 399 1. CMAC seems to be the next best choice. Leaving out GMAC, it has 400 the best performance with and without hardware support. It is 401 not vulnerable to nonce misuse issues. 403 2. HMACs are inherently slower because of their structure and also 404 in some cases because of lack of built-in hardware support. 406 3. On the other hand, it is much easier to get the right 407 implementation for HMAC compared to CMAC. 409 8. GMAC-SIV - Another Potential MAC Candidate 411 GMAC-SIV is another possible MAC candidate, which claims to be nonce- 412 misuse resistant [SIV]. There is an IETF Internet draft for the 413 standardization of GCM-SIV AEAD mode. 415 In terms of security, GCM-SIV (AEAD) achieves usual notion of nonce- 416 based security of an authenticated encryption mode as long as a 417 unique nonce is used per authentication key per message. If, 418 however, the nonce is reused authenticity is still retained (unlike 419 in GMAC). 421 But there is not many implementations for GCM-SIV available except 422 for the one from the authors. We customized this code for 423 authentication only mode GMAC-SIV and run it on an x86_64, Intel(R) 424 Xeon(R) CPU E5-2676 v3 @ 2.40GHz with one core CPU with AES-NI 425 enabled. GMAC-SIV takes ~5.9 CPU cycles/byte to generate a tag of 426 length 16 bytes on a 48-byte NTP payload. The performance efficiency 427 is far less than GMAC, but is slightly better than CMAC. CMAC, on 428 the other hand is a standardized mode of operation and has several 429 open source implementations. 431 9. Recommendations 433 From the tables we clearly see that GMAC(AES) has the best latency 434 and throughput performance in both hardware and software 435 implementations. It is freely available, and there is a flexibilty 436 of changing the underlying block-cipher. However there are several 437 security problems surrounding the use of this mode, as highlighted 438 above, so it is not recommended. 440 CMAC, on the other hand, is the next best choice in terms of 441 performance and security. So we recommend the use of CMAC (AES). 443 10. Acknowledgements 445 The authors wish to acknowledge useful discussions with Leen 446 Alshenibr, Daniel Franke, Ethan Heilman, Kenny Paterson, Leonid 447 Reyzin, Harlan Stenn, Mayank Varia. 449 11. References 451 11.1. Normative References 453 [RFC2104] Krawczyk, H., Bellare, M., and R. Canetti, "HMAC: Keyed- 454 Hashing for Message Authentication", RFC 2104, 455 DOI 10.17487/RFC2104, February 1997, 456 . 458 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 459 Requirement Levels", BCP 14, RFC 2119, 460 DOI 10.17487/RFC2119, March 1997, 461 . 463 [RFC4106] Viega, J. and D. McGrew, "The Use of Galois/Counter Mode 464 (GCM) in IPsec Encapsulating Security Payload (ESP)", 465 RFC 4106, DOI 10.17487/RFC4106, June 2005, 466 . 468 [RFC4493] Song, JH., Poovendran, R., Lee, J., and T. Iwata, "The 469 AES-CMAC Algorithm", RFC 4493, DOI 10.17487/RFC4493, June 470 2006, . 472 [RFC4543] McGrew, D. and J. Viega, "The Use of Galois Message 473 Authentication Code (GMAC) in IPsec ESP and AH", RFC 4543, 474 DOI 10.17487/RFC4543, May 2006, 475 . 477 [RFC5905] Mills, D., Martin, J., Ed., Burbank, J., and W. Kasch, 478 "Network Time Protocol Version 4: Protocol and Algorithms 479 Specification", RFC 5905, DOI 10.17487/RFC5905, June 2010, 480 . 482 [RFC6151] Turner, S. and L. Chen, "Updated Security Considerations 483 for the MD5 Message-Digest and the HMAC-MD5 Algorithms", 484 RFC 6151, DOI 10.17487/RFC6151, March 2011, 485 . 487 [RFC7539] Nir, Y. and A. Langley, "ChaCha20 and Poly1305 for IETF 488 Protocols", RFC 7539, DOI 10.17487/RFC7539, May 2015, 489 . 491 [RFC7630] Merkle, J., Ed. and M. Lochter, "HMAC-SHA-2 Authentication 492 Protocols in the User-based Security Model (USM) for 493 SNMPv3", RFC 7630, DOI 10.17487/RFC7630, October 2015, 494 . 496 11.2. Informative References 498 [BCK] Bellare, M., Canetti, R., and H. Krawczyk, "Keyed Hash 499 Functions and Message Authentication", in Proceedings of 500 Crypto'96, 1996. 502 [DJB] Bernstein, D., "The Poly1305-AES message-authentication 503 code", in Fast Software Encryption, 2005. 505 [GK] Gueron, S. and V. Krasnov, "The fragility of AES-GCM 506 authentication algorithm", in Proceedings of 11th 507 International Conference on Information Technology: New 508 Generations 2014, 2014. 510 [IK] Iwata, T. and K. Kurosawa, "Keyed Hash Functions and 511 Message Authentication", in Progress in Cryptology- 512 INDOCRYPT 2003, 2003. 514 [IOM] Iwata, T., Ohashi, K., and K. Minematsu, "Breaking and 515 Repairing GCM Security Proofs", in Proceedings of CRYPTO 516 2012, 2012. 518 [Joux] Joux, A., "Authentication Failures in NIST version of 519 GCM", 520 . 523 [MB] Bellare, M., "New Proofs for NMAC and HMAC:Security 524 without Collision-Resistance", in Proceedings of 525 Crypto'96, 1996. 527 [NIST] Sherman, J. and J. Levine, "Usage Analysis of the NIST 528 Internet Time Service", in Journal of Research of the 529 National Institute of Standards and Technology, 2016. 531 [NIST-CMAC] 532 Dworkin, M., "Recommendation for Block Cipher Modes of 533 Operation: The CMAC Mode for Authentication", in NIST 534 Special Publication 800-38B, 2005. 536 [NIST-GMAC] 537 Dworkin, M., "Recommendation for Block Cipher Modes of 538 Operation: Galois/Counter Mode (GCM) and GMAC", in NIST 539 Special Publication 800-38D, 2007. 541 [SIV] Gueron, S., Langley, A., and Y. Lindell, 542 "https://tools.ietf.org/html/draft-gueron-gcmsiv-00", 543 in Work in Progress, 2016. 545 Authors' Addresses 547 Aanchal Malhotra 548 Boston University 549 111 Cummington St 550 Boston, MA 02215 551 US 553 Email: aanchal4@bu.edu 555 Sharon Goldberg 556 Boston University 557 111 Cummington St 558 Boston, MA 02215 559 US 561 Email: goldbe@cs.bu.edu