idnits 2.17.1 draft-smyshlyaev-mgm-17.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: ---------------------------------------------------------------------------- No issues found here. Checking nits according to https://www.ietf.org/id-info/checklist : ---------------------------------------------------------------------------- No issues found here. Miscellaneous warnings: ---------------------------------------------------------------------------- == The copyright year in the IETF Trust and authors Copyright Line does not match the current year -- The document date (March 18, 2020) is 1500 days in the past. Is this intentional? Checking references for intended status: Informational ---------------------------------------------------------------------------- No issues found here. Summary: 0 errors (**), 0 flaws (~~), 1 warning (==), 1 comment (--). Run idnits with the --verbose option for more detailed information about the items above. -------------------------------------------------------------------------------- 2 Network Working Group S. Smyshlyaev, Ed. 3 Internet-Draft CryptoPro 4 Intended status: Informational V. Nozdrunov 5 Expires: September 19, 2020 V. Shishkin 6 TC 26 7 E. Smyshlyaeva 8 CryptoPro 9 March 18, 2020 11 Multilinear Galois Mode (MGM) 12 draft-smyshlyaev-mgm-17 14 Abstract 16 Multilinear Galois Mode (MGM) is an authenticated encryption with 17 associated data (AEAD) block cipher mode based on EtM principle. MGM 18 is defined for use with 64-bit and 128-bit block ciphers. 20 MGM has been standardized in Russia. It is used as an AEAD mode for 21 the GOST block cipher algorithms in many protocols, e.g. TLS 1.3 and 22 IPsec. This document provides a reference for MGM to enable review 23 of the mechanisms in use and to make MGM available for use with any 24 block cipher. 26 Status of This Memo 28 This Internet-Draft is submitted in full conformance with the 29 provisions of BCP 78 and BCP 79. 31 Internet-Drafts are working documents of the Internet Engineering 32 Task Force (IETF). Note that other groups may also distribute 33 working documents as Internet-Drafts. The list of current Internet- 34 Drafts is at https://datatracker.ietf.org/drafts/current/. 36 Internet-Drafts are draft documents valid for a maximum of six months 37 and may be updated, replaced, or obsoleted by other documents at any 38 time. It is inappropriate to use Internet-Drafts as reference 39 material or to cite them other than as "work in progress." 41 This Internet-Draft will expire on September 19, 2020. 43 Copyright Notice 45 Copyright (c) 2020 IETF Trust and the persons identified as the 46 document authors. All rights reserved. 48 This document is subject to BCP 78 and the IETF Trust's Legal 49 Provisions Relating to IETF Documents 50 (https://trustee.ietf.org/license-info) in effect on the date of 51 publication of this document. Please review these documents 52 carefully, as they describe your rights and restrictions with respect 53 to this document. Code Components extracted from this document must 54 include Simplified BSD License text as described in Section 4.e of 55 the Trust Legal Provisions and are provided without warranty as 56 described in the Simplified BSD License. 58 Table of Contents 60 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 61 2. Conventions Used in This Document . . . . . . . . . . . . . . 3 62 3. Basic Terms and Definitions . . . . . . . . . . . . . . . . . 3 63 4. Specification . . . . . . . . . . . . . . . . . . . . . . . . 4 64 4.1. MGM Encryption and Authentication Procedure . . . . . . . 4 65 4.2. MGM Decryption and Authentication Check Procedure . . . . 7 66 5. Rationale . . . . . . . . . . . . . . . . . . . . . . . . . . 8 67 6. Security Considerations . . . . . . . . . . . . . . . . . . . 9 68 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 9 69 8. References . . . . . . . . . . . . . . . . . . . . . . . . . 10 70 8.1. Normative References . . . . . . . . . . . . . . . . . . 10 71 8.2. Informative References . . . . . . . . . . . . . . . . . 10 72 Appendix A. Test Vectors . . . . . . . . . . . . . . . . . . . . 10 73 Appendix B. Contributors . . . . . . . . . . . . . . . . . . . . 14 74 Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 14 76 1. Introduction 78 Multilinear Galois Mode (MGM) is an authenticated encryption with 79 associated data (AEAD) block cipher mode based on EtM principle. MGM 80 is defined for use with 64-bit and 128-bit block ciphers. The MGM 81 design principles can easily be applied to other block sizes. 83 MGM has been standardized in Russia. It is used as an AEAD mode for 84 the GOST block cipher algorithms in many protocols, e.g. TLS 1.3 and 85 IPsec. This document provides a reference for MGM to enable review 86 of the mechanisms in use and to make MGM available for use with any 87 block cipher. 89 This document does not have IETF consensus and does not imply IETF 90 support for MGM. 92 2. Conventions Used in This Document 94 The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", 95 "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and 96 "OPTIONAL" in this document are to be interpreted as described in BCP 97 14 [RFC2119] [RFC8174] when, and only when, they appear in all 98 capitals, as shown here. 100 3. Basic Terms and Definitions 102 This document uses the following terms and definitions for the sets 103 and operations on the elements of these sets: 105 V* the set of all bit strings of a finite length (hereinafter 106 referred to as strings), including the empty string; 107 substrings and string components are enumerated from right to 108 left starting from zero; 110 V_s the set of all bit strings of length s, where s is a non- 111 negative integer. For s = 0, the V_0 consists of a single 112 empty string; 114 |X| the bit length of the bit string X (if X is an empty string, 115 then |X| = 0); 117 X || Y concatenation of strings X and Y both belonging to V*, i.e., 118 a string from V_{|X|+|Y|}, where the left substring from 119 V_{|X|} is equal to X, and the right substring from V_{|Y|} 120 is equal to Y; 122 a^s the string in V_s that consists of s 'a' bits: a^s = (a, a, 123 ... , a), 'a' in V_1; 125 (xor) exclusive-or of the two bit strings of the same length, 127 Z_{2^s} ring of residues modulo 2^s; 129 MSB_i: V_s -> V_i the transformation that maps the string X = 130 (x_{s-1}, ... , x_0) in V_s into the string MSB_i(X) = 131 (x_{s-1}, ... , x_{s-i}) in V_i, i <= s, (most significant 132 bits); 134 Int_s: V_s -> Z_{2^s} the transformation that maps a string X = 135 (x_{s-1}, ... , x_0) in V_s into the integer Int_s(X) = 136 2^{s-1} * x_{s-1} + ... + 2 * x_1 + x_0 (the interpretation 137 of the bit string as an integer); 139 Vec_s: Z_{2^s} -> V_s the transformation inverse to the mapping 140 Int_s (the interpretation of an integer as a bit string); 142 E_K: V_n -> V_n the block cipher permutation under the key K in V_k; 144 k the bit length of the block cipher key; 146 n the block size of the block cipher (in bits); 148 len: V_s -> V_{n/2} the transformation that maps a string X in V_s, 149 0 <= s <= 2^{n/2} - 1, into the string len(X) = 150 Vec_{n/2}(|X|) in V_{n/2}, where n is the block size of the 151 used block cipher; 153 [+] the addition operation in Z_{2^{n/2}}, where n is the block 154 size of the used block cipher; 156 (x) multiplication in GF(2^n), where n is the block size of the 157 used block cipher; if n = 64, then the field polynomial is 158 equal to f = x^64 + x^4 + x^3 + x + 1; if n = 128, then the 159 field polynomial is equal to f = x^128 + x^7 + x^2 + x + 1; 161 incr_l: V_n -> V_n the transformation that maps a string L || R, 162 where L, R in V_{n/2}, into the string incr_l(L || R ) = 163 Vec_{n/2}(Int_{n/2}(L) [+] 1) || R; 165 incr_r: V_n -> V_n the transformation that maps a string L || R, 166 where L, R in V_{n/2}, into the string incr_r(L || R ) = L || 167 Vec_{n/2}(Int_{n/2}(R) [+] 1). 169 4. Specification 171 An additional parameter that defines the functioning of Multilinear 172 Galois Mode (MGM) is the bit length S of the authentication tag, 32 173 <= S <= n. The value of S MUST be fixed for a particular protocol. 174 The choice of the value S involves a trade-off between message 175 expansion and the forgery probability. 177 4.1. MGM Encryption and Authentication Procedure 179 The MGM encryption and authentication procedure takes the following 180 parameters as inputs: 182 1. Encryption key K in V_k. 184 2. Initial counter nonce ICN in V_{n-1}. 186 3. Plaintext P, 0 <= |P| < 2^{n/2}. If |P| > 0, then P = P_1 || 187 ... || P*_q, P_i in V_n, for i = 1, ... , q - 1, P*_q in V_u, 1 188 <= u <= n. If |P| = 0, then by definition P*_q is empty, and the 189 q and u parameters are set as follows: q = 0, u = n. 191 4. Associated authenticated data A, 0 <= |A| < 2^{n/2}. If |A| > 0, 192 then A = A_1 || ... || A*_h, A_j in V_n, for j = 1, ... , h - 1, 193 A*_h in V_t, 1 <= t <= n. If |A| = 0, then by definition A*_h is 194 empty, and the h and t parameters are set as follows: h = 0, t = 195 n. The associated data is authenticated but is not encrypted. 197 The MGM encryption and authentication procedure outputs the following 198 parameters: 200 1. Initial counter nonce ICN. 202 2. Associated authenticated data A. 204 3. Ciphertext C in V_{|P|}. 206 4. Authentication tag T in V_S. 208 The MGM encryption and authentication procedure consists of the 209 following steps: 211 +----------------------------------------------------------------+ 212 | MGM-Encrypt(K, ICN, P, A) | 213 |----------------------------------------------------------------| 214 | 1. Encryption step: | 215 | - Y_1 = E_K(0 || ICN), | 216 | - For i = 2, 3, ... , q do | 217 | Y_i = incr_r(Y_{i-1}), | 218 | - For i = 1, 2, ... , q - 1 do | 219 | C_i = P_i (xor) E_K(Y_i), | 220 | - C*_q = P*_q (xor) MSB_u(E_K(Y_q)), | 221 | - C = C_1 || ... || C*_q. | 222 | | 223 | 2. Padding step: | 224 | - A_h = A*_h || 0^{n-t}, | 225 | - C_q = C*_q || 0^{n-u}. | 226 | | 227 | 3. Authentication tag T generation step: | 228 | - Z_1 = E_K(1 || ICN), | 229 | - sum = 0, | 230 | - For i = 1, 2, ..., h do | 231 | H_i = E_K(Z_i), | 232 | sum = sum (xor) ( H_i (x) A_i ), | 233 | Z_{i+1} = incr_l(Z_i), | 234 | - For j = 1, 2, ..., q do | 235 | H_{h+j} = E_K(Z_{h+j}), | 236 | sum = sum (xor) ( H_{h+j} (x) C_j ), | 237 | Z_{h+j+1} = incr_l(Z_{h+j}), | 238 | - H_{h+q+1} = E_K(Z_{h+q+1}), | 239 | - T = MSB_S(E_K(sum (xor) H_{h+q+1} (x) | 240 | (len(A) || len(C)))). | 241 | | 242 | 4. Return (ICN, A, C, T). | 243 |----------------------------------------------------------------+ 245 The ICN value for each message that is encrypted under the given key 246 K must be chosen in a unique manner. 248 Users who do not wish to encrypt plaintext can provide a string P of 249 zero length. Users who do not wish to authenticate associated data 250 can provide a string A of zero length. The length of the associated 251 data A and of the plaintext P MUST be such that 0 < |A| + |P| < 252 2^{n/2}. 254 4.2. MGM Decryption and Authentication Check Procedure 256 The MGM decryption and authentication procedure takes the following 257 parameters as inputs: 259 1. The encryption key K in V_k. 261 2. The initial counter nonce ICN in V_{n-1}. 263 3. The associated authenticated data A, 0 <= |A| < 2^{n/2}. A = 264 A_1 || ... || A*_h, A_j in V_n, for j = 1, ... , h - 1, A*_h in 265 V_t, 1 <= t <= n. 267 4. The ciphertext C, 0 <= |C| < 2^{n/2}. C = C_1 || ... || C*_q, C_i 268 in V_n, for i = 1, ... , q - 1, C*_q in V_u, 1 <= u <= n. 270 5. The authenticated tag T in V_S. 272 The MGM decryption and authentication procedure outputs FAIL or the 273 following parameters: 275 1. Plaintext P in V_{|C|}. 277 2. Associated authenticated data A. 279 The MGM decryption and authentication procedure consists of the 280 following steps: 282 +----------------------------------------------------------------+ 283 | MGM-Decrypt(K, ICN, A, C, T) | 284 |----------------------------------------------------------------| 285 | 1. Padding step: | 286 | - A_h = A*_h || 0^{n-t}, | 287 | - C_q = C*_q || 0^{n-u}. | 288 | | 289 | 2. Authentication tag T verification step: | 290 | - Z_1 = E_K(1 || ICN), | 291 | - sum = 0, | 292 | - For i = 1, 2, ..., h do | 293 | H_i = E_K(Z_i), | 294 | sum = sum (xor) ( H_i (x) A_i ), | 295 | Z_{i+1} = incr_l(Z_i), | 296 | - For j = 1, 2, ..., q do | 297 | H_{h+j} = E_K(Z_{h+j}), | 298 | sum = sum (xor) ( H_{h+j} (x) C_j ), | 299 | Z_{h+j+1} = incr_l(Z_{h+j}), | 300 | - H_{h+q+1} = E_K(Z_{h+q+1}), | 301 | - T' = MSB_S(E_K(sum (xor) H_{h+q+1} (x) | 302 | (len(A) || len(C)))), | 303 | - If T' != T then return FAIL. | 304 | | 305 | 3. Decryption step: | 306 | - Y_1 = E_K(0 || ICN), | 307 | - For i = 2, 3, ... , q do | 308 | Y_i = incr_r(Y_{i-1}), | 309 | - For i = 1, 2, ... , q - 1 do | 310 | P_i = C_i (xor) E_K(Y_i), | 311 | - P*_q = C*_q (xor) MSB_u(E_K(Y_q)), | 312 | - P = P_1 || ... || P*_q. | 313 | | 314 | 4. Return (P, A). | 315 |----------------------------------------------------------------+ 317 5. Rationale 319 The MGM was originally proposed in [PDMODE]. 321 From the operational point of view the MGM is designed to be 322 parallelizable, inverse free, online and to provide availability of 323 precomputations. 325 Parallelizability of the MGM is achieved due to its counter-type 326 structure and the usage of the multilinear function for 327 authentication. Indeed, both encryption blocks E_K(Y_i) and 328 authentication blocks H_i are produced in the counter mode manner, 329 and the multilinear function determined by H_i is parallelizable in 330 itself. Additionally, the counter-type structure of the mode 331 provides the inverse free property. 333 The online property means the possibility to process message even if 334 it is not completely received (so its length is unknown). To provide 335 this property the MGM uses blocks E_K(Y_i) and H_i which are produced 336 basing on two independent source blocks Y_i and Z_i. 338 Availability of precomputations for the MGM means the possibility to 339 calculate H_i and E_K(Y_i) even before data is retrieved. It is 340 holds due to again the usage of counters for calculating them. 342 6. Security Considerations 344 The security properties of the MGM are based on the following: 346 o Different functions generating the counter values: 347 The functions incr_r and incr_l are chosen to minimize 348 intersection (if it happens) of counter values Y_i and Z_i. 350 o Encryption of the multilinear function output: 351 It allows to resist attacks based on padding and linear properties 352 (see [Ferg05] for details). 354 o Multilinear function for authentication: 355 It allows to resist the small subgroup attacks [Saar12]. 357 o Encryption of the nonces (0 || ICN) and (1 || ICN): 358 The use of this encryption minimizes the number of plaintext/ 359 ciphertext pairs of blocks known to an adversary. It allows to 360 resist attacks that need substantial amount of such material 361 (e.g., linear and differential cryptanalysis, side-channel 362 attacks). 364 It is crucial to the security of MGM to use unique ICN values. Using 365 the same ICN values for two different messages encrypted with the 366 same key eliminates the security properties of this mode. 368 A security analysis for MGM regarding privacy and authenticity was 369 performed in [SecMGM]. 371 7. IANA Considerations 373 This document does not require any IANA actions. 375 8. References 377 8.1. Normative References 379 [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate 380 Requirement Levels", BCP 14, RFC 2119, 381 DOI 10.17487/RFC2119, March 1997, 382 . 384 [RFC7801] Dolmatov, V., Ed., "GOST R 34.12-2015: Block Cipher 385 "Kuznyechik"", RFC 7801, DOI 10.17487/RFC7801, March 2016, 386 . 388 [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 389 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, 390 May 2017, . 392 8.2. Informative References 394 [Ferg05] Ferguson, N., "Authentication weaknesses in GCM", 2005. 396 [GOST3412-2015] 397 Federal Agency on Technical Regulating and Metrology, 398 "Information technology. Cryptographic data security. 399 Block ciphers", GOST R 34.12-2015, 2015. 401 [PDMODE] Nozdrunov, V., "Parallel and double block cipher mode of 402 operation (PD-mode) for authenticated encryption", CTCrypt 403 2017 proceedings, pp. 36-45, 2017. 405 [Saar12] Saarinen, O., "Cycling Attacks on GCM, GHASH and Other 406 Polynomial MACs and Hashes", FSE 2012 proceedings, pp. 407 216-225, 2012. 409 [SecMGM] Akhmetzyanova, Liliya R and Alekseev, Evgeny K and 410 Karpunin, Grigory and Nozdrunov, Vladislav, "Security of 411 Multilinear Galois Mode (MGM).", IACR Cryptology ePrint 412 Archive 2019, p. 123, 2019. 414 Appendix A. Test Vectors 416 Test vectors for the Kuznyechik block cipher (n = 128, k = 256) 417 defined in [GOST3412-2015] (the English version can be found in 418 [RFC7801]). 420 Encryption key K: 421 00000: 88 99 AA BB CC DD EE FF 00 11 22 33 44 55 66 77 422 00010: FE DC BA 98 76 54 32 10 01 23 45 67 89 AB CD EF 424 Associated authenticated data A: 425 00000: 02 02 02 02 02 02 02 02 01 01 01 01 01 01 01 01 426 00010: 04 04 04 04 04 04 04 04 03 03 03 03 03 03 03 03 427 00020: EA 05 05 05 05 05 05 05 05 429 Plaintext P: 430 00000: 11 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88 431 00010: 00 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 432 00020: 11 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 433 00030: 22 33 44 55 66 77 88 99 AA BB CC EE FF 0A 00 11 434 00040: AA BB CC 436 1. Encryption step: 438 0^1 || ICN: 439 00000: 11 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88 441 Y_1: 442 00000: 7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CD 443 E_K(Y_1): 444 00000: B8 57 48 C5 12 F3 19 90 AA 56 7E F1 53 35 DB 74 446 Y_2: 447 00000: 7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CE 448 E_K(Y_2): 449 00000: 80 64 F0 12 6F AC 9B 2C 5B 6E AC 21 61 2F 94 33 451 Y_3: 452 00000: 7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED CF 453 E_K(Y_3): 454 00000: 58 58 82 1D 40 C0 CD 0D 0A C1 E6 C2 47 09 8F 1C 456 Y_4: 457 00000: 7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED D0 458 E_K(Y_4): 459 00000: E4 3F 50 81 B5 8F 0B 49 01 2F 8E E8 6A CD 6D FA 461 Y_5: 462 00000: 7F 67 9D 90 BE BC 24 30 5A 46 8D 42 B9 D4 ED D1 463 E_K(Y_5): 464 00000: 86 CE 9E 2A 0A 12 25 E3 33 56 91 B2 0D 5A 33 48 466 C: 467 00000: A9 75 7B 81 47 95 6E 90 55 B8 A3 3D E8 9F 42 FC 468 00010: 80 75 D2 21 2B F9 FD 5B D3 F7 06 9A AD C1 6B 39 469 00020: 49 7A B1 59 15 A6 BA 85 93 6B 5D 0E A9 F6 85 1C 470 00030: C6 0C 14 D4 D3 F8 83 D0 AB 94 42 06 95 C7 6D EB 471 00040: 2C 75 52 473 2. Padding step: 475 A_1 || ... || A_h: 476 00000: 02 02 02 02 02 02 02 02 01 01 01 01 01 01 01 01 477 00010: 04 04 04 04 04 04 04 04 03 03 03 03 03 03 03 03 478 00020: EA 05 05 05 05 05 05 05 05 00 00 00 00 00 00 00 480 C_1 || ... || C_q: 481 00000: A9 75 7B 81 47 95 6E 90 55 B8 A3 3D E8 9F 42 FC 482 00010: 80 75 D2 21 2B F9 FD 5B D3 F7 06 9A AD C1 6B 39 483 00020: 49 7A B1 59 15 A6 BA 85 93 6B 5D 0E A9 F6 85 1C 484 00030: C6 0C 14 D4 D3 F8 83 D0 AB 94 42 06 95 C7 6D EB 485 00040: 2C 75 52 00 00 00 00 00 00 00 00 00 00 00 00 00 487 3. Authentication tag T generation step: 489 1^1 || ICN: 490 00000: 91 22 33 44 55 66 77 00 FF EE DD CC BB AA 99 88 492 Z_1: 493 00000: 7F C2 45 A8 58 6E 66 02 A7 BB DB 27 86 BD C6 6F 494 H_1: 495 00000: 8D B1 87 D6 53 83 0E A4 BC 44 64 76 95 2C 30 0B 496 current sum: 497 00000: 4C F4 27 F4 AD B7 5C F4 C0 DA 39 D5 AB 48 CF 38 499 Z_2: 500 00000: 7F C2 45 A8 58 6E 66 03 A7 BB DB 27 86 BD C6 6F 501 H_2: 502 00000: 7A 24 F7 26 30 E3 76 37 21 C8 F3 CD B1 DA 0E 31 503 current sum: 504 00000: 94 95 44 0E F6 24 A1 DD C6 F5 D9 77 28 50 C5 73 506 Z_3: 507 00000: 7F C2 45 A8 58 6E 66 04 A7 BB DB 27 86 BD C6 6F 508 H_3: 509 00000: 44 11 96 21 17 D2 06 35 C5 25 E0 A2 4D B4 B9 0A 510 current sum: 511 00000: A4 9A 8C D8 A6 F2 74 23 DB 79 E4 4A B3 06 D9 42 513 Z_4: 514 00000: 7F C2 45 A8 58 6E 66 05 A7 BB DB 27 86 BD C6 6F 515 H_4: 516 00000: D8 C9 62 3C 4D BF E8 14 CE 7C 1C 0C EA A9 59 DB 517 current sum: 518 00000: 09 FE 3F 6A 83 3C 21 B3 90 27 D0 20 6A 84 E1 5A 520 Z_5: 521 00000: 7F C2 45 A8 58 6E 66 06 A7 BB DB 27 86 BD C6 6F 522 H_5: 523 00000: A5 E1 F1 95 33 3E 14 82 96 99 31 BF BE 6D FD 43 524 current sum: 525 00000: B5 DA 26 BB 00 EB A8 04 35 D7 97 6B C6 B5 46 4D 527 Z_6: 528 00000: 7F C2 45 A8 58 6E 66 07 A7 BB DB 27 86 BD C6 6F 529 H_6: 530 00000: B4 CA 80 8C AC CF B3 F9 17 24 E4 8A 2C 7E E9 D2 531 current sum: 532 00000: DD 1C 0E EE F7 83 C8 EB 2A 33 F3 58 D7 23 0E E5 534 Z_7: 535 00000: 7F C2 45 A8 58 6E 66 08 A7 BB DB 27 86 BD C6 6F 536 H_7: 537 00000: 72 90 8F C0 74 E4 69 E8 90 1B D1 88 EA 91 C3 31 538 current sum: 539 00000: 89 6C E1 08 32 EB EA F9 06 9F 3F 73 76 59 4D 40 541 Z_8: 542 00000: 7F C2 45 A8 58 6E 66 09 A7 BB DB 27 86 BD C6 6F 543 H_8: 544 00000: 23 CA 27 15 B0 2C 68 31 3B FD AC B3 9E 4D 0F B8 545 current sum: 546 00000: 99 1A F5 C9 D0 80 F7 63 87 FE 64 9E 7C 93 C6 42 548 Z_9: 549 00000: 7F C2 45 A8 58 6E 66 0A A7 BB DB 27 86 BD C6 6F 550 H_9: 551 00000: BC BC E6 C4 1A A3 55 A4 14 88 62 BF 64 BD 83 0D 552 len(A) || len(C): 553 00000: 00 00 00 00 00 00 01 48 00 00 00 00 00 00 02 18 554 sum (xor) H_9 (x) (len(A) || len(C)): 555 00000: C0 C7 22 DB 5E 0B D6 DB 25 76 73 83 3D 56 71 28 557 Tag T: 558 00000: CF 5D 65 6F 40 C3 4F 5C 46 E8 BB 0E 29 FC DB 4C 560 Appendix B. Contributors 562 o Evgeny Alekseev 563 CryptoPro 564 alekseev@cryptopro.ru 566 o Alexandra Babueva 567 CryptoPro 568 babueva@cryptopro.ru 570 o Lilia Akhmetzyanova 571 CryptoPro 572 lah@cryptopro.ru 574 o Grigory Marshalko 575 TC 26 576 marshalko_gb@tc26.ru 578 o Vladimir Rudskoy 579 TC 26 580 rudskoy_vi@tc26.ru 582 o Alexey Nesterenko 583 National Research University Higher School of Economics 584 anesterenko@hse.ru 586 Authors' Addresses 588 Stanislav Smyshlyaev (editor) 589 CryptoPro 591 Phone: +7 (495) 995-48-20 592 Email: svs@cryptopro.ru 594 Vladislav Nozdrunov 595 TC 26 597 Email: nozdrunov_vi@tc26.ru 599 Vasily Shishkin 600 TC 26 602 Email: shishkin_va@tc26.ru 603 Ekaterina Smyshlyaeva 604 CryptoPro 606 Email: ess@cryptopro.ru