|
||||
Меню:
Главная
Форум
Литература: Программирование и ремонт Импульсные блоки питания Неисправности и замена Радиоэлектронная аппаратура Микросхема в ТА Рубрикатор ТА Кабельные линии Обмотки и изоляция Радиоаппаратура Гибкие диски часть 2 часть 3 часть 4 часть 5 Ремонт компьютера часть 2 Аналитика: Монтаж Справочник Электроника Мощные высокочастотные транзисторы 200 микросхем Полупроводники ч.1 Часть 2 Алгоритмические проблемы 500 микросхем 500 микросхем Сортировка и поиск Монады Передача сигнала Электроника Прием сигнала Телевидиние Проектирование Эвм Оптимизация Автомобильная электроника Поляковтрансиверы Форт Тензодатчик Силовые полевые транзисторы Распределение частот Резисторные и термопарные Оберон Открытые системы шифрования Удк |
[198] rtab[i] = strt ; strt <<= 1 ; if( strt&0x10000 ) strt A= 0x11011 ; } /* Modified slightly to fit the callers needs. */ void encrypt(twy ctx *c, word32 *a) char i ; for( i=0 ; i<NMBR ; i++ ) { a[0] A= c->k[0] A (c->ercon[i]<<16) ; a[1] A= c->k[1] ; a[2] A= c->k[2] A c->ercon[i] ; rho(a) ; a[0] A= c->k[0] A (c->ercon[NMBR]<<16) ; a[1] A= c->k[1] ; a[2] A= c->k[2] A c->ercon[NMBR] ; theta(a) ; /* Modified slightly to meet callers needs. */ void decrypt(twy ctx *c, word32 *a) char i ; mu(a) ; for( i=0 ; i<NMBR ; i++ ) { a[0] A= c->ki[0] A (c->drcon[i]<<16) ; a[1] A= c->ki[1] ; a[2] A= c->ki[2] A c->drcon[i] ; rho(a) ; a[0] A= c->ki[0] A (c->drcon[NMBR]<<16) ; a[1] A= c->ki[1] ; a[2] A= c->ki[2] A c->drcon[NMBR] ; theta(a) ; mu(a) ; void twy key(twy ctx *c, u4 *key){ c->ki[0] = c->k[0] = key[0]; c->ki[1] = c->k[1] = key[1]; c->ki[2] = c->k[2] = key[2]; theta(c->ki); mu(c->ki); rndcon gen(STRT E,c->ercon); rndcon gen(STRT D,c->drcon); /* Encrypt in ECB mode. */ void twy enc(twy ctx *c, u4 *data, int blkcnt){ int i; d = data; for(i=0;i<blkcnt;i++) { encrypt(c,d); d +=3; /* Decrypt in ECB mode. */ void twy dec(twy ctx *c, u4 *data, int blkcnt){ u4 *d; int i; d = data; for(i=0;i<blkcnt;i++){ decrypt(c,d); /* Scrub sensitive values from memory before deallocating. */ void twy destroy(twy ctx *c){ int i; for(i=0;i<3;i++) c->k[i] = c->ki[i] = 0; void printvec(char *chrs, word32 *d){ printf("%20s : %08lx %08lx %08lx \n",chrs,d[2],d[1],d[0]); twy ctx gc; word32 a[9],k[3]; /* Test vector 1. */ k[0]=k[1]=k[2]=0; a[0]=a[1]=a[2]=1; twy key(&gc,k); printf("**********\n"); printvec("KEY = ",k); printvec("PLAIN = ",a); encrypt(&gc,a); printvec("CIPHER = ",a); /* Test vector 2. */ k[0]=6;k[1]=5;k[2]=4; a[0]=3;a[1]=2;a[2]=1; twy key(&gc,k); printf("**********\n"); printvec("KEY = ",k); printvec("PLAIN = ",a); encrypt(&gc,a); printvec("CIPHER = ",a); /* Test vector 3. */ k[2]=0xbcdef012;k[1]=0x4 56789ab;k[0]=0xdef01234; a[2]=0x01234567;a[1]=0x9abcdef0;a[0]=0x23456789; twy key(&gc,k); printf("**********\n"); printvec("KEY = ",k); printvec("PLAIN = ",a); encrypt(&gc,a); printvec("CIPHER = ",a); /* Test vector 4. */ k[2]=0xcab920cd;k[1]=0xd614 4138;k[0]=0xd2f05b5e; a[2]=0xad21ecf7;a[1]=0x83ae9dc4;a[0]=0x4059c7 6e; twy key(&gc,k); printf("**********\n"); printvec("KEY = ",k); printvec("PLAIN = ",a); encrypt(&gc,a); printvec("CIPHER = ",a); /* TEST VALUES key: 00000000 00000000 00000000 plaintext : 00000001 00000001 00000001 ciphertext : ad21ecf7 83ae9dc4 4059c76e key: 00000004 00000005 00000006 plaintext : 00000001 00000002 00000003 ciphertext : cab920cd d6144138 d2f05b5e key: bcdef012 456789ab def01234 plaintext : 01234567 9abcdef0 23456789 ciphertext : 7cdb76b2 9cdddb6d 0aa55dbb key: cab920cd d6144138 d2f05b5e plaintext : ad21ecf7 83ae9dc4 4059c76e ciphertext : 15b155ed 6b13f17c 478ea871 /* Enc/dec test: */ for(i=0;i<9;i++) a[i]=i; twy enc(&gc,a,3); for(i=0;i<9;i+=3) printf("Block %01d encrypts to %08lx %08lx %08lx\n", i/3,a[i],a[i+1],a[i+2]); twy dec(&gc,a,2); twy dec(&gc,a+6,1); for(i=0;i<9;i+=3) printf("Block %01d decrypts to %08lx %08lx %08lx\n", i/3,a[i],a[i+1],a[i+2]); |
Среды: Smalltalk80 MicroCap Local bus Bios Pci 12С ML Микроконтроллеры: Atmel Intel Holtek AVR MSP430 Microchip Книги: Емкостный датчик 500 схем для радиолюбителей часть 2 (4) Структура компьютерных программ Автоматическая коммутация Кондиционирование и вентиляция Ошибки при монтаже Схемы звуковоспроизведения Дроссели для питания Блоки питания Детекторы перемещения Теория электропривода Адаптивное управление Измерение параметров Печатная плата pcad pcb Физика цвета Управлении софтверными проектами Математический аппарат Битовые строки Микроконтроллер nios Команды управления выполнением программы Перехода от ahdl к vhdl Холодный спай Усилители hi-fi Электронные часы Сердечники из распылённого железа Анализ алгоритмов 8-разрядные КМОП Классификация МПК История Устройства автоматики Системы и сети Частотность Справочник микросхем Вторичного электропитания Типы видеомониторов Радиобиблиотека Электронные системы Бесконтекстный язык Управление техническими системами Монтаж печатных плат Работа с коммуникациями Создание библиотечного компонента Нейрокомпьютерная техника Parser Пи-регулятор ч.1 ПИ-регулятор ч.2 Обработка списков Интегральные схемы Шина ISAВ Шина PCI Прикладная криптография Нетематическое: Взрывной автогидролиз Нечеткая логика Бытовые установки (укр) Автоматизация проектирования Сбор и защита Дискретная математика Kb радиостанция Энергетика Ретро: Прием в автомобиле Управление шаговым двигателем Магнитная запись Ремонт микроволновки Дискретные системы часть 2 | ||