Шифрование с помощью умножения матриц - PullRequest
0 голосов
/ 08 марта 2012

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

Структура проекта такова:

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

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

Но я хочу пойти немного дальше и иметь возможность любой файл (текст, 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 Ответ

0 голосов
/ 08 марта 2012

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

...