RC4 не генерирует правильный зашифрованный массив состояний - PullRequest
0 голосов
/ 03 ноября 2019

У меня есть следующий код для генерации массива зашифрованных состояний, однако, он, похоже, не генерирует правильно рандомизированный массив состояний для ключа (51323).

unsigned char* generateStateArray(unsigned long key) {
    unsigned char s[256];
    //Load the state array from 1-255
    for (int i = 0; i < 256; i++) {
        s[i] = i;
    }

    //Get the binary representation of the key
    unsigned long n = key;

    int binary[64];
    for (int i = 0; i < 64; i++) {
        binary[i] = 0;
        std::cout << binary[i];
    }
    std::cout << std::endl;

    for (int i = 0; n > 0; i++) {
        binary[i] = n % 2;
        n /= 2;
    }

    //Randomize the entries
    int j = 0;

    for (int i = 0; i < 256; i++) {
        j = (j + binary[i % 64] + s[i]) & 255;

        char c = s[i];
        s[i] = s[j];
        s[j] = c;    
    }
}  

Выход для Sдолжно выглядеть так:

Output

Но это дает мне такой вывод:

my output

Любая идея, что я делаю неправильно икак я могу это исправить?

...