Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

AES. Расшифровка - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ожидание файла (постоянное) http://www.cyberforum.ru/cpp-beginners/thread680736.html
есть пустая папка, как только в папку ложится(попадает) файл, программа должна начать его обработку. Обработка написана, а как сделать ожидание файла в папке, и как узнать скопировался он полностью в...
C++ Сортировка слов по алфавиту слова из файла с пробелами я считал, теперь надо отсортировать в алфавитном порядке (сравнить каждое с каждым словом от пробела до пробела) и с записать в столбик... Как реализовать вообще непонимаю... http://www.cyberforum.ru/cpp-beginners/thread680731.html
Консольный морской бой. Расстановка кораблей C++
Добрый вечер, уважаемые форумчане. Хочу написать консольный морской бой. Начал с функции автоматической расстановки кораблей. Весь день не получается найти где спяталась ошибка в моем коде. ...
C++ Даны массивы целых чисел A[25] и B[25]
Даны массивы целых чисел A и B.Сформировать третий массив, в который включить все положительные элементы обоих массивов, меньших 10. Нужно решить в C++.
C++ Конечный автомат http://www.cyberforum.ru/cpp-beginners/thread680716.html
Здравствуйте! Возникли проблемы с задачей: дан набор правил q0 -> aq1, q1 -> bq2, q1 -> q2, q1 -> cq2, q2 -> aq3 и др. Нужно написать программу, которая считывает количество символов в слове и...
C++ не отображается робота программы Начал изучать С++, и сталкиваюсь каждый раз с новыми проблемами в изучении.. Вот уже книгу нашел подходящую(Брюс Эккель - Филосовия С++ 1 том) но опять же столкнулся с проблемой вывода роботы... подробнее

Показать сообщение отдельно
Crait
0 / 0 / 0
Регистрация: 26.09.2012
Сообщений: 32
27.10.2012, 11:30  [ТС]
Перефразирую: Обратна ли эта функция функции shift_rows
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
void aes_inv_shift_rows(unsigned char* state) {
  unsigned char t = state[13];
 
  /* вторая строка */
  state[13] = state[9];
  state[9] = state[5];
  state[5] = state[1];
  state[1] = t;
 
  /* третья строка */
  t = state[10];
  state[10] = state[2];
  state[2] = t;
  t = state[14];
  state[14] = state[6];
  state[6] = t;
 
  /* четвертая строка */
  t = state[3];
  state[3] = state[7];
  state[7] = state[11];
  state[11] = state[1];
  state[1] = t; 
}
И обратна ли эта функция самой себе:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
oid aes_mix_columns(unsigned char* state) {
  unsigned char tmp, tm, t;
  int i;
 
  for(i = 0; i < 4; i++) { /* для каждого столбца */
    t = state[i << 2];
    tmp = t ^ state[(i<<2)+1] ^ state[(i<<2)+2] ^ state[(i<<2)+3];
 
    /* первый элемент */
    tm = t ^ state[(i << 2) + 1];
    tm = (tm & 0x80) ? (tm << 1) ^ 0x1B : tm << 1;
    state[i << 2] ^= tm ^ tmp;
 
    /* второй элемент */ 
    tm = state[(i << 2) + 1] ^ state[(i << 2) + 2];
    tm = (tm & 0x80) ? (tm << 1) ^ 0x1B: tm << 1;
    state[(i << 2) + 1] ^= tm ^ tmp;
    
    /* третий элемент */
    tm = state[(i << 2) + 2] ^ state[(i << 2) + 3];
    tm = (tm & 0x80) ? (tm << 1) ^ 0x1B: tm << 1;
    state[(i << 2) + 2] ^= tm ^ tmp;
    
    /* четвертый элемент */
    tm = state[(i << 2) + 3] ^ t;
    tm = (tm & 0x80) ? (tm << 1) ^ 0x1B: tm << 1;
    state[(i << 2) + 3] ^= tm ^ tmp;
  }
}
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru