При реализации алгоритма шифрования TEA написанного на Си и
переводе его на РВ выяснилось что он не работает по банальной
причине - нет unsigned long(int,quad). Может кто-то что нибудь посоветует? Код вот такой
void encipher(unsigned long v[],
unsigned long w[],
unsigned long k[])
{
unsigned long y=v[0], z=v[1], sum=0;
unsigned long delta= 0x12345678;
unsigned long a=k[0], b=k[1], c=k[2], d=k[3];
int n=32;
while(n-->0)
{
sum += delta;
y += (z << 4)+a ^ z+sum ^ (z >> 5)+b; <----
z += (y << 4)+c ^ y+sum ^ (y >> 5)+d; <----Здесь нужны беззнаковые числа.
}
w[0]=y; w[1]=z; <--- Это зашифрованные данные на выходе
}И почему их нельзя было реализовать в стандарте РВ? Кто нибудь это объяснит?