Автор работы: Пользователь скрыл имя, 06 Мая 2014 в 01:16, лабораторная работа
Краткие сведения о стандарте шифрования DES
DES (Data Encryption Standard) симметричный алгоритм шифрования, разработанный фирмой IBM и утвержденный правительством США в 1977 году как официальный стандарт (FIPS 46-3). DES имеет блоки по 64 бита и 16 цикловую структуру сети Фейстеля. Для шифрования использует ключ с длиной 56 бит. Алгоритм использует комбинацию нелинейных (S-блоки) и линейных (перестановки E, IP, IP-1) преобразований.
{
kluchC1[t] = kluchC0[1];
kluchD1[t] = kluchD0[1];
}
}
}
}
for (int m = 0; m < 56; m++)
{
if (m < 28)
{
KLUCHIPREDVORITELNII[i][m] = kluchC1[m];
}
else
{
KLUCHIPREDVORITELNII[i][m] = kluchD1[m-28];
}
}
for (int f = 0; f < 28; f++)
{
kluchC0[f] = kluchC1[f];
kluchD0[f] = kluchD1[f];
}
}
//преобразуем в ключевые элементы
for (int i = 0; i < 16; i++)
{
for (int h = 0; h < 48; h++)
{
KLUCHI[i][h] = KLUCHIPREDVORITELNII[i][PC2[h] - 1];
}
}
for (int i = 0; i < 16; i++)
{
listBox1.Items.Add((i + 1) + "й ключ после сдвига");
for (int n = 0; n < 56; n++)
{
if ((n == 7) || (n == 15) || (n == 23) || (n == 31) || (n == 39) || (n == 47))
{
bufff += (KLUCHIPREDVORITELNII[i][n] ? 1: 0).ToString();
bufff += " ";
}
else
{
bufff += (KLUCHIPREDVORITELNII[i][n] ? 1: 0).ToString();
}
}
listBox1.Items.Add(bufff);
bufff = "";
}
for (int i = 0; i < 16; i++)
{
listBox1.Items.Add((i + 1) + "й ключевой элемент");
for (int n = 0; n < 48; n++)
{
if ((n == 7) || (n == 15) || (n == 23) || (n == 31) || (n == 39) || (n == 47))
{
bufff += (KLUCHI[i][n] ? 1: 0).ToString();
bufff += " ";
}
else
{
bufff += (KLUCHI[i][n] ? 1: 0).ToString();
}
}
listBox1.Items.Add(bufff);
bufff = "";
}
}
Ра
В алгоритме шифрования DES исходный файл M разбивается на 64-битовые блоки (по 8 байтов): M = M(1)M(2)...M(n). Каждый из этих блоков кодируется независимо с использованием одного и того же ключа шифрования. Основное достоинство этого алгоритма - простота реализации. Недостаток - относительно слабая устойчивость против квалифицированных криптоаналитиков. В частности, не рекомендуется использовать данный режим работы для шифрования EXE файлов, потому что первый же блок - заголовок файла, является вполне удачным началом для взлома всего шифра.
В то же время следует признать, что этот режим в силу своей простой реализации наиболее популярен.
Процесс шифрования заключается в начальной перестановке битов 64-битового блока, шестнадцати циклах шифрования и обратной перестановки битов. Все перестановки и коды в таблицах подобраны разработчиками таким образом, чтобы максимально затруднить процесс расшифровки путем подбора ключа.
Алматы, 2014