From: Sergey Matveev Date: Sat, 2 Sep 2017 09:16:09 +0000 (+0300) Subject: Key meshing example X-Git-Url: http://www.git.cypherpunks.ru/?p=gost-www.git;a=commitdiff_plain;h=c24c446ba9bbf0fcc611e36ade7ade0ae2ccf713 Key meshing example --- diff --git a/en/meshing.texi b/en/meshing.texi index ff3292b..2521f71 100644 --- a/en/meshing.texi +++ b/en/meshing.texi @@ -10,6 +10,14 @@ developers tell that it is intended to resist side-channel attacks. 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. diff --git a/ru/meshing.texi b/ru/meshing.texi index 90cce0e..8f9043b 100644 --- a/ru/meshing.texi +++ b/ru/meshing.texi @@ -11,6 +11,14 @@ Реализация проста и заключается в применении пары операций шифрования/дешифрования над ключом и вектором инициализации. +@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-битные блочные шифры, которая при использовании алгоритма запутывания ключа уже не применима.