Выработка ключевых элементов.
В алгоритме DES ключевые элементы вырабатываются из ключа с использованием сдвигов и битовых выборок-перестановок. Таким образом, – и это очень важно, – ключевые элементы состоят исключительно из битов исходного ключа, "перетасованных" в различном порядке. Ключ имеет размер 64 бита, однако реально для выработки ключевых элементов используются только 56 из них. Самые младшие биты каждого байта ключа (NN8,16,…,64 или NN0,8,…,56 в x86) не попадают в ключевые элементы и служат исключительно для контроля четности – требуется, чтобы сумма битов каждого байта ключа была нечетной. Функциональная схема выработки ключевых элементов из ключа изображена на рисунке 5, а схема соответствующего алгоритма – на рисунке 6. 

Рис. 5. Функциональная схема выработки ключевых элементов DES.	
Рис. 6. Схема алгоритма выработки ключевых элементов.	
Выработка ключевых элементов из ключа (K, рис 6, шаг 0) начинается со входной выборки-перестановки битов (PC1, шаг 1) которая отбирает 56 из 64 битов ключа и располагает их в другом порядке. Далее полученный блок данных разделяется на две 28-битовые части: старшую (С0) и младшую (D0, шаг 2). Далее 16 раз выполняется следующая процедура: в зависимости от номера итерации обе части циклически сдвигаются на 1 или 2 бита влево (шаг 3), из полученных блоков с помощью выходной битовой выборки-перестановки (PC2, шаг 4) отбираются 48 битов, которые и формируют очередной ключевой элемент. 
Ниже приведены основные "примитивы" схемы выработки ключевых элементов: 
Входная битовая выборка-перестановка (PC1).
C0	 	C0	
157	249	341	433	525	617	79	старший байт	557	5415	5323	5231	5139	5047	4955	
81	958	1050	1142	1234	1326	1418	 	4863	476	4614	4522	4430	4338	4246	
1510	162	1759	1851	1943	2035	2127	 	4154	4062	395	3813	3721	3629	3537	
2219	2311	243	2560	2652	2744	2836	 	3445	3353	3261	314	3012	2920	2828	
D0	 	D0	
2963	3055	3147	3239	3331	3423	3515	 	271	269	2517	2425	2333	2241	2149	
367	3762	3854	3946	4038	4130	4222	 	2057	192	1810	1718	1626	1534	1442	
4314	446	4561	4653	4745	4837	4829	 	1350	1258	113	1011	919	827	735	
5021	5113	525	5328	5420	5512	564	младший байт	643	551	459	336	244	152	060	
Нумерация битов в оригинале DES	 	Нумерация битов в Intel x86	
Количество сдвигов на шагах выработки ключевых элементов ().
i	1	2	3	4	5	6	7	8	9	10	11	12	13	14	15	16	
pi	1	1	2	2	2	2	2	2	1	2	2	2	2	2	2	1	
Выходная битовая выборка-перестановка (PC2).
114	217	311	424	51	65	x1	4742	4639	4545	4432	4355	4251	
73	828	915	106	1121	1210	x2	4153	4028	3941	3850	3735	3646	
1323	1419	1512	164	1726	188	x3	3533	3437	3344	3252	3130	3048	
1916	207	2127	2220	2313	242	x4	2940	2849	2729	2636	2543	2454	
2541	2652	2731	2837	2947	3055	x5	2315	224	2125	2019	199	181	
3130	3240	3351	3445	3533	3648	x6	1726	1616	155	1411	1323	128	
3744	3849	3939	4056	4134	4253	x7	1112	107	917	80	722	63	
4346	4442	4550	4636	4729	4832	x8	510	414	36	220	127	024	
Нумерация битов в оригинале DES	 	Нумерация битов в Intel x86