Блоктық шифр
Блок шифрына кіріс n биттік Блок және k-биттік кілт болып табылады. Шығу кезінде шифрлау түрлендіруін қолданғаннан кейін n-биттік шифрланған блок алынады, ал кіріс деректеріндегі шамалы айырмашылықтар әдетте нәтиженің айтарлықтай өзгеруіне әкеледі. Блоктық шифрлар кейбір негізгі түрлендірулердің бастапқы мәтін блоктарына бірнеше рет қолдану арқылы жүзеге асырылады.
Негізгі түрлендірулер:
Блоктың бір жергілікті бөлігінде күрделі түрлендіру.
Блок бөліктері арасындағы қарапайым түрлендіру.
Түрлендіру блок түрінде жүргізілетіндіктен, жеке қадам ретінде бастапқы деректерді қажетті өлшемдегі блоктарға бөлу қажет. Бұл жағдайда бастапқы деректердің форматына қарамастан, мәтіндік құжаттар, суреттер немесе басқа файлдар болсын, олар екілік көрініске түсіндірілуі керек және содан кейін ғана блоктарға бөлінуі керек. Жоғарыда айтылғандардың барлығын бағдарламалық жасақтамамен де, аппараттық құралдармен де жасауға болады.
Д
|
0xC4
|
1100
|
0100
|
Ж
|
0xC6
|
1101
|
0110
|
а
|
0xE0
|
1110
|
0000
|
а
|
0xE0
|
1111
|
0000
|
у
|
0xF3
|
1111
|
0011
|
н
|
0xED
|
1110
|
1101
|
л
|
0xEB
|
1110
|
1011
|
с
|
0xF1
|
1110
|
0001
|
е
|
0xE5
|
1110
|
0101
|
а
|
0xE0
|
1110
|
0000
|
т
|
0xF2
|
1111
|
0010
|
я
|
0xFF
|
1111
|
1111
|
Шифр:C4,E0,F3,EB,E5,F2
Ключ: C6,E0,ED,F1,EO,FF
0000
1234
|
0000
5678
|
0000
9101112
|
0000
13141516
|
1100
17181920
|
0100
21222324
|
1110
25262728
|
0000
29303132
|
1111
333435366
|
0011
37383940
|
1110
41424344
|
1011
45464748
|
1110
49505152
|
0101
53545556
|
1111
57585960
|
0010
61626364
|
58 50 42 34 26 18 10 02
60 52 44 36 28 20 12 04
62 54 46 38 30 22 14 06
64 56 48 40 32 24 16 08
57 49 41 33 25 17 09 01
59 51 43 35 27 19 11 03
61 53 45 37 29 21 13 05
63 55 47 39 31 23 15 07
1111
|
F
|
1100
|
C
|
1001
|
9
|
0000
|
0
|
0100
|
4
|
0100
|
4
|
1100
|
C
|
1000
|
8
|
1111
|
F
|
1100
|
C
|
1111
|
F
|
1000
|
8
|
0010
|
2
|
0000
|
0
|
1011
|
B
|
0000
|
0
|
Осылай екіге бөлеміз
L0=F94CFF2B R0= C048C800
0000
|
0000
|
0000
|
0000
|
1101
|
0110
|
1111
|
0000
|
1234
|
5678
|
9101112
|
13141516
|
17181920
|
21222324
|
25262728
|
29303132
|
1110
|
1101
|
1110
|
0001
|
1110
|
0000
|
1111
|
1111
|
33343536
|
37383940
|
41424344
|
45464748
|
49505152
|
53545556
|
57585960
|
61626364
|
Мәліметтерді шифрлау алгоритмінің сипаттамасын аяқтау үшін 48 разрядты K(i), i=1...16 кілттерін алу алгоритмін беру қалады. Әрбір итерацияда бастапқы K кілтінен есептелетін жаңа кілттік мән K(i) пайдаланылады. K 8,16,24,32,40,48 позицияларында орналасқан сегіз паритет биттері бар 64 биттік блок, 56, 64.
Басқару разрядтарын алып тастау және қалғандарын қайта реттеу үшін кілтті бастапқы дайындаудың G функциясы қолданылады.
57 49 41 33 25 17 09
01 58 50 42 34 26 18
10 02 59 51 43 35 27
19 11 03 60 52 44 36
63 55 47 39 31 23 15
07 62 54 46 38 30 22
14 06 61 53 45 37 29
21 13 05 28 20 12 04
1111
|
1100
|
1111
|
1100
|
1111
|
1000
|
1000
|
1000
|
0100
|
1001
|
0100
|
1001
|
0000
|
1100
|
1111 1111 1111 0000 1000 1000 0001
1001 1001 0001 0001 0011 0011 1001
1111
|
1111
|
1111
|
0000
|
1000
|
1000
|
0001
|
1001
|
1234
|
5678
|
9101112
|
13141516
|
17181920
|
21222324
|
25262728
|
29303132
|
1001
|
0001
|
0001
|
0011
|
0011
|
1001
|
33343536
|
37383940
|
41424344
|
45464748
|
49505152
|
53545556
|
0110
|
6
|
1111
|
F
|
0111
|
F
|
1001
|
9
|
1010
|
1
|
1000
|
8
|
1010
|
A
|
0100
|
4
|
1101
|
D
|
1100
|
C
|
1010
|
A
|
|
|
0011
|
3
|
|
| -Ключ 1 раунда
R0= FCF87088
1111
|
1100
|
1111
|
1000
|
0011
|
0000
|
1000
|
1000
| 1111 1001 1111 0000 0110 0001 0001 00
f функциясының мәнін есептеу үшін келесі матрицалық функциялар қолданылады:
E - 32-биттік тізбекті 48-битке дейін кеңейту,
S1, S2, ... , S8 - 6 разрядты блокты 4 разрядты блокқа түрлендіру,
P - 32 биттік тізбектегі биттік ауыстыру.
Кеңейту функциясы Е 3-кестеде анықталған. Осы кестеге сәйкес E(R(i-1)) бірінші 3 биті 32, 1 және 2 биттері, ал соңғылары 31, 32 және 1 биттері болып табылады.
32 01 02 03 04 05
04 05 06 07 08 09
08 09 10 11 12 13
12 13 14 15 16 17
16 17 18 19 20 21
20 21 22 23 24 25
24 25 26 27 28 29
28 29 30 31 32 01
Ro=1111 1111 1111 1111 1010 0001 0100 0101 0000 0000 1111 0011
Ko=0110 1111 0001 0111 0110 0111 0100 1000 0100 0010 0110 0011
1001 0000 1110 1000 1110 0110 0000 1101 0100 0010 1001 0000
6-БИТ ,S- БЛОК
100100 001110 100011 100110 000011 010100 001010 010000
S1 S2 S3 S4 S5 S6 S7 S8
номер строки номер столбца
S1 10=2 0010=2 4=0100
S2 00=0 0111=7 8=1000
S3 11=3 0001=1 12=1100
S4 10=2 0011=3 8=1000
S5 01=1 0001=1 15=1111 F
S6 00=0 1010= A 10 6=0110
S7 00=0 0101 =5 15=1111
S8 00=0 1000=8 3=0011
|
Номер столбца
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
|
Н
о
м
е
р
с
т
р
о
к
и
|
0
1
2
3
|
14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7
0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8
4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0
15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13
|
S1
|
0
1
2
3
|
15 1 8 14 6 11 3 4 9 7 2 13 12 0 5 10
3 13 4 7 15 2 8 14 12 0 1 10 6 9 11 5
0 14 7 11 10 4 13 1 5 8 12 6 9 3 2 15
13 8 10 1 3 15 4 2 11 6 7 12 0 5 14 9
|
S2
|
0
1
2
3
|
10 0 9 14 6 3 15 5 1 13 12 7 11 4 2 8
13 7 0 9 3 4 6 10 2 8 5 14 12 11 15 1
13 6 4 9 8 15 3 0 11 1 2 12 5 10 14 7
1 10 13 0 6 9 8 7 4 15 14 3 11 5 2 12
|
S3
|
0
1
2
3
|
7 13 14 3 0 6 9 10 1 2 8 5 11 12 4 15
13 8 11 5 6 15 0 3 4 7 2 12 1 10 14 9
10 6 9 0 12 11 7 13 15 1 3 14 5 2 8 4
3 15 0 6 10 1 13 8 9 4 5 11 12 7 2 14
|
S4
|
0
1
2
3
|
2 12 4 1 7 10 11 6 8 5 3 15 13 0 14 9
14 11 2 12 4 7 13 1 5 0 15 10 3 9 8 6
4 2 1 11 10 13 7 8 15 9 12 5 6 3 0 14
11 8 12 7 1 14 2 13 6 15 0 9 10 4 5 3
|
S5
|
0
1
2
3
|
12 1 10 15 9 2 6 8 0 13 3 4 14 7 5 11
10 15 4 2 7 12 9 5 6 1 13 14 0 11 3 8
9 14 15 5 2 8 12 3 7 0 4 10 1 13 11 6
4 3 2 12 9 5 15 10 11 14 1 7 6 0 8 13
|
S6
|
0
1
2
3
|
4 11 2 14 15 0 8 13 3 12 9 7 5 10 6 1
13 0 11 7 4 9 1 10 14 3 5 12 2 15 8 6
1 4 11 13 12 3 7 14 10 15 6 8 0 5 9 2
6 11 13 8 1 4 10 7 9 5 0 15 14 2 3 12
|
S7
|
0
1
2
3
|
13 2 8 4 6 15 11 1 10 9 3 14 5 0 12 7
1 15 13 8 10 3 7 4 12 5 6 11 0 14 9 2
7 11 4 1 9 12 14 2 0 6 10 13 15 3 5 8
2 1 14 7 4 10 8 13 15 12 9 0 3 5 6 11
|
S8
|
Нәтижесінде 32биттік блок аламыз
0100
|
1000
|
1100
|
1000
|
1111
|
0110
|
1111
|
0011
|
1234
|
5678
|
9101112
|
13141516
|
17181920
|
21222324
|
2526728
|
29303132
|
1010
|
0011
|
0011
|
1111
|
1000
|
1101
|
1100
|
1001
|
Конечная перестановка
16 07 20 21
29 12 28 17
01 15 23 26
05 18 31 10
02 08 24 14
32 27 03 09
19 13 30 06
22 11 04 25
1010 0011 0011 1111 1000 1101 1100 1001
A 3 3 F 8 D C 9
F= A33F8DC9 (XOR)модульне саламыз
L0=1111 1001 0100 1100 1111 1111 0010 1011
F= 1010 0011 0011 1111 1000 1101 1100 1001
0101 1010 0111 0111 0111 0010 1110 0011 = R1
5 A 7 7 7 2 E 3
Қорытынды: C048C800 5A7772E3
Достарыңызбен бөлісу: |