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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
#1

Криптоалгоритм Khazad - C++

21.11.2014, 16:06. Просмотров 669. Ответов 26
Метки нет (Все метки)

Предоставьте пожалуйста исходник.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.11.2014, 16:06
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Криптоалгоритм Khazad (C++):

криптоалгоритм исходник не компилируется! - C++
Помогите! Есть исходник криптоалгоритма на С. Компилируется с ошибками: исходник daginda.с ...

Как работает алгоритм Khazad - C++
очень нужно обясните

Подключение CyaSSL (yaSSL), криптоалгоритм NTRU - C++
Всем доброго времени суток! Передо мной стоит задача - запрограммировать данный алгоритм шифрования, используя стандартные библиотеки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 19:57 #16
А, там беззнаковый.
C++
1
unsigned char key[16] = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
21.11.2014, 20:04  [ТС] #17
Цитата Сообщение от nmcf Посмотреть сообщение
А, там беззнаковый.
C++
1
static void crypt(const u8 plaintext[/*8*/], u8 ciphertext[/*8*/],сonst u64 roundKey[R + 1])
как же теперь с этой функцией?
C++
1
typedef unsigned char u8;
что значит typedef?

Добавлено через 1 минуту
C++
1
typedef unsigned long long u64;
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 20:07 #18
Нет, твоя функция NESSIEencrypt()
Первый парметр - та же структура, затем блоки -исходный и для зашифрованных данных. По 8 байт вроде бы. Тут не совсем ясно.

Добавлено через 1 минуту
typedef - определение типа.

Так наверно:
C++
1
u8 b[8];
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
21.11.2014, 20:16  [ТС] #19
Цитата Сообщение от nmcf Посмотреть сообщение
Нет, твоя функция NESSIEencrypt()
Первый парметр - та же структура, затем блоки -исходный и для зашифрованных данных. По 8 байт вроде бы. Тут не совсем ясно.
Добавлено через 1 минуту
typedef - определение типа.
C++
1
NESSIEencrypt(&f,"Sumonsdf","Sumonsdf") ;
как мне вывести на все это на екран? в консоле
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 20:41 #20
Нет, третий парметр должен быть массивом unsigned char.
Там же просто числа будут. Ну выводи через cout << hex << b[i] в цикле.
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
21.11.2014, 20:48  [ТС] #21
Цитата Сообщение от nmcf Посмотреть сообщение
Нет, третий парметр должен быть массивом unsigned char.
Там же просто числа будут. Ну выводи через cout << hex << b[i] в цикле.
теперь я так понимаю нужно функцию NESSIEdecrypt()?
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 20:50 #22
Для дешифрования - да.
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
21.11.2014, 20:51  [ТС] #23
Итого:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
int main()
{
NESSIEstruct f;
 
char key[17] = "0123456789ABCDEF";
char b[9]={0};
char d[10]={0};
NESSIEkeysetup(key,&f);
NESSIEencrypt(&f,"Sumonsdf",b) ;
cout<<endl;
NESSIEdecrypt(&f,b,d);
 
cout<<hex<<d;
getch();
return 0;
}
зачем нужна переменная &f;
b[i] - это туда будет записываться шифрований текст?
почему текст должен быть тока на 8 байт?
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 20:54 #24
f - это структура с ключом в том виде, который нужен алгоритму шифрования.
b[i] - это один байт из блока. Я предположил, что 8 байт - размер блока, судя по тексту функций. Там циклов нет, прямая нумерация 0 - 7.
А если тебе надо шифровать больше, то в цикле блоками по 8.
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
21.11.2014, 21:26  [ТС] #25
Цитата Сообщение от nmcf Посмотреть сообщение
f - это структура с ключом в том виде, который нужен алгоритму шифрования.
b[i] - это один байт из блока. Я предположил, что 8 байт - размер блока, судя по тексту функций. Там циклов нет, прямая нумерация 0 - 7.
А если тебе надо шифровать больше, то в цикле блоками по 8.
хм..
a[8];
например: строка с STR[16] . Разбить ее на 8 и 8 . скопировать первых 8 в массив a[8] зашифровать,a[8]скопировать в b[16], скопировать следущии 8 символов в массив а[8] зашифровать. скопировать a в[16]..
Потом след действия сделать при разшифровке?


можете еще объяснить что это
C++
1
2
3
4
5
6
7
LL(0xbad3d268bbb96a01), LL(0x54fc4d19e59a66b1), LL(0x2f71bc93e26514cd), LL(0x749ccdb925871b51),
    LL(0x53f55102f7a257a4), LL(0xd3686bb8d0d6be03), LL(0xd26b6fbdd6deb504), LL(0x4dd72964b35285fe),
    LL(0x50f05d0dfdba4aad), LL(0xace98a26cf09e063), LL(0x8d8a0e83091c9684), LL(0xbfdcc679a5914d1a),
    LL(0x7090ddad3da7374d), LL(0x52f65507f1aa5ca3), LL(0x9ab352c87ba417e1), LL(0x4cd42d61b55a8ef9),
    LL(0xea238f65460320ac), LL(0xd56273a6c4e68411), LL(0x97a466f155cc68c2), LL(0xd16e63b2dcc6a80d),
    LL(0x3355ccffaa85d099), LL(0x51f35908fbb241aa), LL(0x5bed712ac7e20f9c), LL(0xa6f7a204f359ae55),
    LL(0xde7f5f81febec120), LL(0x48d83d75ad7aa2e5), LL(0xa8e59a32d729cc7f), LL(0x99b65ec771bc0ae8),
nmcf
5309 / 4629 / 1550
Регистрация: 14.04.2014
Сообщений: 18,437
21.11.2014, 22:39 #26
Да не надо ничего копировать, просто перемещай указатель на 8 и всё.
Это какие-то таблицы шифрования для данного алгоритма. Читай теорию.
Zver6233
36 / 36 / 8
Регистрация: 21.06.2013
Сообщений: 271
Записей в блоге: 1
22.11.2014, 00:43  [ТС] #27
Цитата Сообщение от nmcf Посмотреть сообщение
Да не надо ничего копировать, просто перемещай указатель на 8 и всё.
Это какие-то таблицы шифрования для данного алгоритма. Читай теорию.
я с указателями не дружу. по сых пор не знаю как они работают.
Yandex
Объявления
22.11.2014, 00:43
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru