ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
999052 Топик полностью
Nikolay_Po (26.04.2020 12:33, просмотров: 425) ответил klen на посмотрите ссылку, реализован aes128/192/256. я это взял за основу, перепилил в С++ добавил xtea3, слил в один хидер чтоб все инлайнилось. хорошо работает, мне понравилось
Адаптировал для своего случая код AES-256, режим CTR. Подумал, было, что нашёл уязвимость в стандартном шифре. Настолько оригинально написан счётчик вектора инициализации. Задача - инкрементировать на единицу 128-битное беззнаковоге число в массиве IV[16]. 
  for (int i = 15; i >= 0; --i){
    if (IV[i] == 255){
      IV[i] = 0;
      continue;
    }
    IV[i] += 1;
    break;
  }

Исходник.

На первый взгляд показалось, что всё обернётся за 256 запусков цикла. Но нет, счётчик честный, на 128 бит, пришлось вникнуть. Уфф... Отлегло, а то думал, что уникальность вектора инициализации не обеспечивается, делая возможной атаку " chosen-plaintext attack" и это заговор!