Система шифрования данных DES


ХГТУСА
КМИТ


   Ищенко В.Н.
   Бережный Д.А.
   Белоус И. А.
   ЕКБ-31(2008г.)



Вернутся на главную
 О программе


Теоретические сведения о DES.

  Алгоритм шифрования данных DES разработан для зашифрования и расшифрования данных разрядностью 64 бит на основе 64-битового ключа. Расшифрование выполняется по тому же ключу, что и зашифрование, но этот процесс является инверсным по отношению к процессу зашифрования данных. При описании алгоритма шифрования используются следующие обозначения. Если L и R - последовательности бит, то через LR будем обозначать конкатенацию последовательностей L и R, т.е. последовательность бит, размерность которой равна сумме размерностей L и R. В этой последовательности биты последовательности R следуют за битами последовательности L. Конкатенация битовых строк является ассоциативной, то есть запись ABCDE, означает, что за битами последовательности A, следуют, биты последовательности B, затем C и т.д. Символом + будем обозначать операцию побитового сложения по модулю 2.

Процесс шифрования.
Процесс шифрования данных поясняется рисунком 1. Сначала 64 бита входной последовательности перестанавливаются в соответствии с таблицей 1. Таким образом, бит 58 входной последовательности становится битом 1, бит 50 – 2 и т.д.
 Таблица 1. "Начальная перестановка"

58	50	42	34	26	18	10	2
60	52	44	36	28	20	12	4
62	54	46	38	30	22	14	6
64	56	48	40	32	24	16	8
57	49	41	33	25	17	9	1
59	51	43	35	27	19	11	3
61	53	45	37	29	21	13	5
63	55	47	39	31	23	15	7
Полученная последовательность бит разделяется на две последовательности: L(0) (биты 58, 50, 42, ..., 8) и R(0) (биты 57, 49, 41, ..., 7), каждая из которых содержит 32 бита. Затем выполняется итеративный процесс шифрования, который описывается следующими формулами: L(i)=R(i-1), i=1,2,...,16. R(i)=L(i-1) + F(R(i-1),K(i)), i=1,2,...,16. Функция F называется функцией шифрования. Ее аргументами являются последовательность R, полученная на предыдущем шаге, и 48-битовый ключ K(i), который является результатом функции преобразования 64-битового ключа шифра. Подробно функция шифрования и алгоритм получения ключей K(i) описаны ниже. На последнем шаге итерации будут получены последовательности L(16) и R(16), которые конкатенируются в 64-х битовую последовательность R(16)L(16). Видно, что в полученной последовательности 64 бита, перестанавливаются в соответствии с таблицей 2. Как легко видеть данная перестановка является обратной по отношению к начальной (см. таблицу 1).
Таблица 2. "Конечная перестановка"

40	8	48	16	56	24	64	32
39	7	47	15	55	23	63	31
38	6	46	14	54	22	62	30
37	5	45	13	53	21	61	29
36	4	44	12	52	20	60	28
35	3	43	11	51	19	59	27
34	2	42	10	50	18	58	26
33	1	41	9	49	17	57	25
Полученная последовательность из 64 бит и будет являться зашифрованной последовательностью.
Процесс шифрования данных Процесс шифрования данных
1  2  3



 
|  Create by Ishcenko Vladislav  |


Hosted by uCoz