Шифр Хилла (Расшифровка) C#

598
15 июня 2017, 03:41

Подскажите, что не так с моим кодом для дешифровки текста. Детерминант и матрицу алгебраических дополнений находит правильно, проверял.

private void button2_Click(object sender, EventArgs e)
{
    // Нахожу определитель ключа и делю по модулю на длину алфавита
    double key_det = digital_key.Det() % alf.Length;
    textBox9.Text = key_det.ToString();
    // Нахожу элемент обратный детерминанту
    int obr_det = 0;
    while (((key_det * obr_det) % alf.Length != 1) && obr_det < alf.Length)
    {
        obr_det++;
    }
    textBox11.Text = obr_det.ToString();
    // Нахожу матрицу алгебраических дополнений ключа и делю по модулю на длину алфавита
    Matrix key_dop = digital_key.AlgebDop();
    for (int i = 0; i < key_dop.n; i++)
    {
        for (int j = 0; j < key_dop.m; j++)
        {
            key_dop.M[i, j] = key_dop.M[i, j] % alf.Length;
            if (key_dop.M[i, j] < 0)
                key_dop.M[i, j] = key_dop.M[i, j] * (-1);
            textBox10.Text += String.Format("{0,6}", key_dop.M[i, j]) + " ";
        }
        textBox10.Text += "\r\n";
    }
    // Нахожу обратную матрицу и делю по модулю на длину алфавита
    Matrix Obr_key= key_dop * obr_det;
    for (int i = 0; i < Obr_key.n; i++)
    {
        for (int j = 0; j < Obr_key.m; j++)
        {
            Obr_key.M[i, j] = Obr_key.M[i, j] % alf.Length;
            textBox7.Text += String.Format("{0:0.00}",Obr_key.M[i, j]) + "   ";
        }
        textBox7.Text += "\r\n";
    }
    // Умножаю обратную матрицу ключа на столбец текста
    string text = String.Empty;
    for (int i = 0; i < digital_text.Count(); i++)
    {
        digital_text[i] = Obr_key * digital_text[i];
        for (int j = 0; j < digital_text[i].n; j++)
        {
            digital_text[i].M[j, 0] = digital_text[i].M[j, 0] % alf.Length;
            text += alf[(int)digital_text[i].M[j, 0]];
        }
    }
    textBox8.Text += text;   
}
READ ALSO
Обновление коллекции источника данных Datagrid

Обновление коллекции источника данных Datagrid

На форме есть 2 гридаDataContext для формы - отдельный класс(ViewModel)

236
OnPropertyChanged - Calculated property

OnPropertyChanged - Calculated property

Доброго времени сутокТакой вопрос:

243
Проблема с кодировкой C#

Проблема с кодировкой C#

Я работаю с VK APIПри запросах с браузера все работает стабильно, но при запросах из моей программы английские символы возвращаются правильно,...

275
Обработка исключений, скорость

Обработка исключений, скорость

У меня в конторе, где я работаю, есть множество кастомных библиотекВ том числе есть свой DAL для базы данных MSSQL

229