ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Пятница
26 апреля
543810 Топик полностью
Гудвин, волшебник (02.09.2014 18:20, просмотров: 140) ответил Apтём на Ссылку на реализацию не подскажете?
Ну вот, например по ссылке. А вот, наример, декодеры XTEA и RTEA для массива, кратного 8 байт, из моих проектов: http://ru.wikibooks.org/wiki/%D0%9F%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%BD%D1%8B%D0%B5_%D1%80%D0%B5%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D0%B8_RC4
const unsigned long DELTA = 0x9E3779B9; const unsigned long N = 32; // 32 итерации const unsigned long key[4] = {0x11111111,0x11111111,0x11111111,0x11111111}; // 64 бит void XTEAdecode(unsigned long* data, unsigned char dataLength) { unsigned char i=0; unsigned long x1; unsigned long x2; unsigned long sum; while(i<dataLength) { sum = DELTA*N; // 32 итерации x1=*data; x2=*(data+1); while(sum != 0) { x2 -= ((x1<<4 ^ x1>>5) + x1) ^ (sum + *(key+(sum>>11&0x03))); sum-=DELTA; x1 -= ((x2<<4 ^ x2>>5) + x2) ^ (sum + *(key+(sum&0x03))); } *(data++)=x1; *(data++)=x2; i+=2; } } void RTEAdecode(unsigned long* data, unsigned char dataLength) { const unsigned long key[8]={0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111,0x11111111}; //ключ RTEA 256 бит unsigned char i=0; unsigned long a; unsigned long b; signed char r; while(i<dataLength) { a=*data; b=*(data+1); for (r=63;r>=0;r--) { a-=b+((b<<6)^(b>>8))+ (key[r%8]+r); r--; b-=a+((a<<6)^(a>>8))+ (key[r%8]+r); } *(data++)=a; *(data++)=b; i+=2; } }