Лабораторная работа: Алгоритм формирования ключей в процессе функционирования DES

C16 : 0011111111111111110000000000

D16 : 0111010110010110000111001101

4 шаг. Перестановка битов ключа с использованием таблицы PC1

До финальной перестановки битов ключей, необходимо слияние каждой пары данных. После того, как для каждого битового блока Cn Dn , где 1<=n <=16 осуществиться соответствующая перестановка по таблице (см ниже), формируя ключи. Только 48 бит каждой объединенной пары сохраняется в перестановленном ключе.

14 17 11 24 1 5
3 28 15 6 21 10
23 19 12 4 26 8
16 7 27 20 13 2
41 52 31 37 47 55
30 40 51 45 33 48
44 49 39 56 34 53
46 42 50 36 29 32

Все подключи:

K 1 : 111001111101001101110010001100110001010011011101

K 2 : 111001101101001101110011111011100011011001010110

K 3 : 101011111101001111011011001111011110001011101010

K 4 : 001111100101001111011011011101001101110001000011

K 5 : 001111100101100111011001100011101010010001111110

K 6 : 000111110110100111011101101010011111111011000000

K 7 : 000111100110110110011101011111001100011000110011

K 8 : 010111100010110110101101100111110100110001001110

K 9 : 010110111010110110101101010001010001111010110110

K 10 : 110110001010110010101111110110010010100011111001

K 11 : 111100001010111010100110001000111101101000011101

K 12 : 111100011011111000100110000101110011010010110110

K 13 : 111000011011011001110110111010010000100011100101

K 14 : 111001001101011001110110010001101110101010011111

K 15 : 111001111101001101110010001100110001010011011101

K 16 : 111001101101001101110011111011100011011001010110

Исходный код

#include <stdio.h>

#include<math.h>

#include<string.h>

#include<stdlib.h>

int main (int argc, char *argv[]) {

int

i, b, y, r, j, v, p, m, l, f, u, k, a, s, q, D[100] [100], Y[100] [100], U[100] [100], X[1000] [1000], E[100] [100], G[100] [100], W[100] [100], P[100] [1 $

double z;

int key[16]={1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};

К-во Просмотров: 397
Бесплатно скачать Лабораторная работа: Алгоритм формирования ключей в процессе функционирования DES