Implementation is rather simple and uses two crypt/decrypt operations
over the key and initialization vector.
+@verbatim
+# for each KiB of data
+def mesh(old_key, old_iv):
+ new_key = ecb_decrypt(old_key, MESH_CONST)
+ new_iv = ecb_encrypt(old_key, old_iv)
+ return new_key, new_iv
+@end verbatim
+
It has already showed usefulness: there is @url{https://sweet32.info/,
Sweet32} attack on all 64-bit blockciphers, that is not applicable to
when key meshing used.
Реализация проста и заключается в применении пары операций
шифрования/дешифрования над ключом и вектором инициализации.
+@verbatim
+# для каждого KiB данных
+def mesh(old_key, old_iv):
+ new_key = ecb_decrypt(old_key, MESH_CONST)
+ new_iv = ecb_encrypt(old_key, old_iv)
+ return new_key, new_iv
+@end verbatim
+
На практике он себя уже проявил: есть @url{https://sweet32.info/, Sweet32}
атака на все 64-битные блочные шифры, которая при использовании алгоритма
запутывания ключа уже не применима.