Шифрование с помощью умножения матриц

Работа над проектом колледжа для простого шифрования на основе матричного умножения.

План проекта таков;

текстовый файл в матрицу, умноженный на матрицу ключей шифрования = зашифрованный файл.

Зашифрованный файл в матрицу, умноженный на обратную матрицу ключей = Расшифрованный файл.

Но я хочу пойти немного дальше и иметь возможность создавать любые файлы (текстовые, mp3, gif и т. Д.).

Я часами искал, пытаясь решить эту проблему, и начинаю немного расстраиваться.

Лучший (и единственный) способ, который я могу придумать, - это чтобы программа считывала необработанный двоичный файл и выполняла шифрование.

Итак -> вопросы:

  1. Могу ли я извлечь сырой двоичный файл из файла, поместить в матрицу, выполнить умножение матрицы и (по существу) записать двоичный файл в файл?

  2. Кроме того, какова жизнеспособность такого метода на разных компьютерах и платформах? (Я думаю, что, может быть, если я преобразую из двоичного в int и при расшифровке преобразую обратно, это может измениться - разные размеры на разных компьютерах и т. Д.?)

Кроме того, я приветствую мнение о лучших решениях

---> Но основной алгоритм должен основываться на умножении матриц.

Мой код:

int writetomatrix(int current_variable)
{
    if (counter == 9){
        counter=0;
        b=0;
        a=0;}

    if (b==3) b=0;
    if (a==3) {b++;
                a=0;}
    counter++;
    B[a][b]=current_variable;
    a++;

}
    int main () {
        int *buffer= new int[1];
        ifstream input;
        input.open ("input.txt",ios::in|ios::binary);
        input.read ((char*)&buffer, 1);
        writetomatrix(buffer);
    }

Ошибка, которую я получаю:

initializing argument 1 of ‘int writetomatrix(int)’

1 ответ

Вы можете прочитать двоичный файл, используя fread к массиву char или int. Пока порядок байтов остается прежним, вы можете прочитать любой файл и записать его обратно. Вы можете делать что хотите с байтами или словами, которые вы читаете. Ты можешь использовать sizeof знать размер int. На большинстве платформ сегодня это 4 байта.

Другие вопросы по тегам