www.chms.ru - вывоз мусора в Балашихе 

Динамо-машины  Сигналы и спектры 

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 [ 307 ] 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358

1. Ml X Zl (первый подключ выходного преобразования)

2. Мг X Хг

3. Мз X 23

4. X Z

Таблица 14.12. Шаги каждого цикла алгоритма IDEA

1. м, X zr.

2. 2 X

3. Мз X 2з lt;*. 4 М4 X Z/ .

5. К результатам шагов (1) и (3) применяется операция XOR.

6. К результатам шагов (2) и (4) - операция XOR.

7. Результат шага (5) умножается на Zs .

8. Складываются результаты шагов (6) и (7).

9. Результат шага (8) умножается на Zs .

10. Складываются результаты шагов (7) и (9).

11. К результатам шагов (1) и (9) применяется операция XOR.

12. К результатам шагов (3) и (9) - операция XOR.

13. К результатам шагов (2) и (10) - операция XOR.

14. К результатам шагов (4) и (10) - операция XOR.

Пример 14.8. Первый цикл шифра ШЕЛ

Пусть сообщение (слово HI ) сначала нужно записать в шестнадцатеричной форме. Начнем с ASCII-кода, представленного на рис. 2.3, на котором бит 1 представляет собой самый младший разряд. Затем добавим равный нулю восьмой бит старшего разряда, который обычно используется ддя проверки четности, и вьшолним необходимое преобразование, взяв по четыре бита (порядок - от старшего разряда до младшего). Таким образом, буква Н в сообщении преобразуется Б 0048, а буква 1 - б 0049. Для этого примера выберем 128-битовый ключ о, выраженный восемью группами подключей из 4-разряаных шестнадцатеричных чисел; = 0008 0007 0006 0005 0004 0003 0002 0001, где крайний правый подключ представляет самый младший разряд. Используя этот ключ и шифр IDEA, найдите выход цикла 1.

Решение

Сначала сообщение делится на 64-битовые блоки данных. Каждый из этих блоков затем делится на подблоки М где (= 1, 46, кахсдый из которых содержит 16-битоБые или 4-значные шестнадцатеричные цифры. В этом примере длина сообщения HI равна всего 16 бит; следовательно, (используя шестнадцатеричное обозначение) Л/=4849 и Л/г = Л/з = Mi = 0000. Сложение производится по модулю 2, а умножение - по модулю 2 + 1. 128-битоБый ключ, определенный для первого цикла, делится на восемь 16-битоБых подключей, начиная с младшей фуппы шестнадцатеричных кодов: Zi = 0001, Zj = 0002, Zs = 0003, Z/ = 0004, Z/ gt; = 0005, 2б = 0006, Z, = 0007 и Zf gt; = 0008. Шаги, обозначенные в табл. 14.11, дают следующие результаты.

Операция XOR (исключающее ИЛИ) определяется следующим образом: О XOR О - О, О XOR 1 = 1, 1 XOR0 = 1, 1 XOR 1 = 0.

лл с dr++iwrt:r-



1. Л/i X Zi = 4849 X 0001 = 4849.

2. Л/2 X = 0000 + 0002 = 0002.

3. Мъхгъ = 0000 + 0003 = ОООЗ.

4. MixZi 0000 X 0004 = 0000.

5. К результатам шагов (1) и (3) применяется операция XOR, в результате чего получится следующее: 4849 XOR 0003 = 484А.

0100 1000 0100 1001 (4849 из шестнадцатеричной системы переведено в двоичную) XOR 0000 0000 0000 ООН (0003 из шестнадцатеричной системы переведено в двоичную)

0100 1000 0100 1010

Обратное преобразование в шестнадцатеричную систему дает следующее: 484А (где А - ше-стнадцатеричное обозначение двоичного числа 1010).

6. К результатам шагов (2) и (4) применяется операция XOR: 0002 XOR 0000 = 0002.

7. Результат шага (5) умножается на Zi. 484А х 0005 = 6971.

8. Результаты шагов (6) и (7) складываются: 0002 + 6971 = 6973.

9. Результат шага (8) умножается на Zi. 6973 х 0006 = 78В0.

10. Результаты шагов (7) и (9) складываются: 6971 + 78В0 = Е221.

П. К результатам шагов (1) и (9) применяется операция XOR: 4849 XOR 78В0 = 30F9.

12. К результатам шагов (3) и (9) применяется операция XOR: 0003 XOR 78В0 = 78ВЗ

13. К результатам шагов (2) и (10) применяется операция XOR: 0002 XOR Е221 = Е223.

14. К результатам шагов (2) и (10) применяется операция XOR: 0000 XOR Е221 = Е221.

Выход цикла 1 (результат шагов 11-14): 30F9 78ВЗ Е223 Е221. Перед началом цикла 2 переставляются два внутренних слова выхода цикла 1. Затем производится еще семь циклов и выполняется окончательное выходное преобразование.

14.6.2. Алгоритмы Диффи-Хэллмана (вариант Элгемала) и RSA

Для шифрования ключа сеанса PGP предлагает на выбор два алгоритма ключа шифрования общего доступа, RSA и протокол Диффи-Хэллмана (Diffie-Hellman) (вариант Элгемала (Elgamal)). Для алгоритмов RSA и Диффи-Хэллмана допустимый размер ключа составляет от 1024 до 4096 бит. Ключ размером 1024 бит считается безопасным для большинства сеансов обмена информацией. Защищенность алгоритма RSA (см. раздел 14.5.3) основана на сложности разложения на множители больших чисел.

Протокол Диффи-Хэллмана был разработан Вайтфилдом Диффи (Whitefield Diffie), Мартином Е. Хэллманом (Martin Е. Hellman) и Ральфом С. Мерклем (Raph С Merkle) в 1976 году [19, 20] для обмена информацией по незащищенному каналу с помощью открытого ключа. Данный протокол основан на сложности задачи нахождения дискретного логарифма для конечных полей [21]. Он предполагает, что вычислить , зная только g и g*, практически невозможно. Патент №4 200 770 (США), срок которого истек в 1997 году, содержит протокол Диффи-Хэллмана и его разновидности, такие как вариант Элгемала. Данный вариант, разработанный Тахером Элгемалом (Taher Elgamal), расширяет протокол Диффи-Хэллмана на шифрование сообщений. В PGP вариант Элгемала алгоритма Диффи-Хэллмана применяется для шифрования ключа сеанса.

14.6.2.1. Описание алгоритма Диффи-Хэллмана, вариант Элгемала

Протокол имеет два системных параметра и и g, которые являются общедоступными. Параметр и - это большое простое число, а параметр g - целое число, меньшее и, которое обладает следующим сюйством: для любого числа р, лежащего между 1 и п-\ включительно, существует степень к числа g, при которой g* = р mod и. Ниже

СкК.Г\ Гпаоа 14 I 11мНпГаяыма м nai11мгЬпППЯ14МР



описывается схема шифрования Элгемала [19, 21], позволяющая пользователю В посылать сообщение пользователю А.

Пользователь А случайным образом выбирает большое целое число а (это частный ключ пользователя А).

Открытый ключ пользователя А вычисляется следующим образом: у = g mod п.

Пользователь В желает послать пользователю А сообщение М. Сначала пользователь В генерирует случайное число к, меньшее п.

Пользователь В вычисляет следующие величины:

У1 = g* mod п

У2 = М X (у* mod и) (напомним, что у - это открытый ключ пользователя А).

Пользователь В посылает пользователю А шифрованный текст (уь у г).

После получения шифрованного текста (yi, уг) пользователь А вычисляет открытое сообщение М.

у deg; mod и

Пример 14.9. Применение алгоритма Диффи-Хэллмана (вариант Элгемала) для шифрования сообщения

Пусть общедоступными системными параметрами являются и=11 Hg = 7. Предположим, что пользователь А в качестве частного ключа выбрал я = 2. Покажите, как вычисляется открытый ключ пользователя А. Покажите также, как пользователь В будет шифровать сообщение М = 13, которое должно быть отправлено пользователю А, и как пользователь А последовательно дешифрует полученный шифрованный текст.

Решение

Открытый ключ пользователя Л (у = g mod п) вычисляется следующим образом: у = 7 mod 11 = 5. Пользователь В желает послать пользователю А сообщение М= 13. В данном примере пусть пользователь В в качестве случайного значения к (меньшего и = 11) выбирает к=\. Далее пользователь В вычисляет шифрованную пару.

Ух = g* mod и = 7 mod 11 = 7

У2 = М X (у mod п) = 13 X (5 mod 11) = 13 х 5 = 65 Пользователь А получает шифрованный текст (7, 65) и вычисляет сообщение М.

M=-i = = =13 yfmodw 7modll 5

14.6.3. Шифрование сообщения в системе PGP

Алгоритмы с частным ключом, применяемые PGP для шифрования сообщения, были представлены в разделе 14.6.1. Алгоритмы с открытым ключом, используемые PGP для щифрования ключа частного сеанса, бьши представлены в разделе 14.6.2. Чтобы проиллюстрировать технологию-шифрования PGP, изображенную на рис. 14.20, рассмотрим следующий пример, объединяющий алгоритмы двух типов.

ЛА (\ РГОНЛ/ Г5ГЧГЧН DriV/QVf VI



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 [ 307 ] 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358