МІНІСТЕРСТВО ОСВІТИ УКРАЇНИ
НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА”
Кафедра автоматики та телемеханіки
Курсова робота
з курсу: „Методи та засоби криптографічних перетворень”
на тему: “Симетричні та асиметричні методи зашифрування інформації”
Львів – 2005
Зміст
Завдання 1
Теоретичні відомості
Вибір ключа
Блок-схема алгоритму
Список ідентифікаторів
Текст програми
Відкритий текст
Результат зашифрування
Завдання 2
Теоретичні відомості
Вибір ключа
Зашифрування
Розшифрування
Висновок
Завдання 1
Вибрати ключі та розробити програму для за шифрування файлу даних заданим афінним шифром. Тип афінного шифру визначається останньою цифрою i НЗК. Об‘єм алфавіту визначається передостанньою цифрою j НЗК і дорівнює .
i
i mod 6
Тип афінного шифру
j
Розрядність алфавіту
Об‘єм алфавіту
4
4
Лінійний -го порядку
4
9
512
Теоретичні відомості
Афінні шифри- підклас шифрів заміни, що включає, як частковий випадок шифр Віжінера і навіть шифр перестановки з фіксованим періодом.
N-символьний алфавіт ототожнюємо з кільцем . А саме кожна буква замінюється своїм номером у алфавіті, причому нумерація починається з нуля. Наприклад, латинська абетка ототожнюється із , а українська із . Літера а української абетки трактується як нуль, літера б як 1, в як 2. Тепер до букв відкритого тексту ми можемо вільно застосовувати операцію додавання та множення за відповідним модулем.
Лінійний шифр.
Ключі: a таке, що , .
Шифрування. У повідомлені кожна буква заміщується буквою .
Дешифрування. У криптотексті кожна буква заміщуються буквою ,де .
Афінні шифри вищих порядків.
Для розширення попереднього методу потрібно щоб вони оперували з -грамами для довільного .
Для реалізації лінійного шифру -го порядку необхідно -граму (стовпець з елементів) вхідних символів помножити на матрицю-ключ .
Ключ. .
Шифрування. Повідомлення розбивається на -грами. Кожна -грама заміщується -грамою .
Дешифрування. Кожна -грама заміщується -грамою , де , де є дешифруючим ключем.
Вибір ключів
Блок-схема алгоритму
Список ідентифікаторів
Ідентифікатори
Призначення
const int a[2][2]
Ключ
const int n=512
Розмір алфавіту
FILE *fin
Вхідний файл
FILE *fout
Зашифрований файл
int eoffin
Прапорець кінця файлу
int x_OK
Прапорець готовності прочитаного символа
int x_OK
Прапорець готовності зашифрованого символа
unsigned long buf1
Вхідний буфер (32 біти)
unsigned long buf2
Вихідний буфер (32 біти)
unsigned long x
Проміжний символ (9 біт)
unsigned long x1[2]
Вхідний масив символів
unsigned long x2[2]
Вихідний масив символів
int c1
Лічильник непрочитаних бітів вхідного буфера
int c2
Лічильник незаповнених бітів вихідного буфера
int c4
Лічильник символів для реалізації блокового шифрування
Текст програми
#include <stdio.h>
#include <math.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
const int a[2][2]={{103, 199}, {203, 123}}, n=512;
void main(void)
{
char *str;
FILE *fin, *fout;
int eoffin=0, x_OK=1, x_OK1;
unsigned long buf1, buf2 = 0, x, x1[2], x2[2];
int c1=32, c2=32, c4=0, i;
if ( (fin=fopen("c:\\file.pl", "rb")) == NULL )
{
printf("cannot open the file data.fb");
getch();
exit(1);
}
else
if ( (fout=fopen("c:\\file.enc", "wb")) == NULL )
{
printf("cannot open the file data.fbc");
getch();
exit(1);
}
else
{
if (fread(&buf1, 1, 4, fin) != 0)
while (!eoffin)
{
if (c1<=0)
{
if (fread(&buf1, 1, 4, fin) != 0)
{
x |= (buf1 << (9+c1)) & 511;
buf1 >>= (-c1);
c1 += 32;
x_OK = 1 & !(c1==32);
}
else
{
eoffin = 1;
x_OK = 1;
}
}
else
{
x = buf1 & 511;
buf1 >>= 9;
c1 -= 9;
x_OK = 1 & (c1>=0);
}
/*--------------------------------*/
if (x_OK)
{
x1[c4]=x;
if (c4==2)
{
for(i=0;i<2;i++)
{
x2[i]=(unsigned int)fmod((a[i][0]*x1[0]+a[i][1]*x1[1]), n);
itoa(x2[i], str, 10);
fputs(strcat(str, " "), stdout);
}
c4=0;
x_OK1 = 1;
}
else
c4++;
if (x_OK1)
{
x_OK1 = 0;
for(i=0;i<2;i++)
{
buf2 |= x2[i] << (32-c2);
c2 -= 9;
if (c2<=0)
{
fwrite(&buf2, 4, 1, fout);
buf2 &= 0;
if (c2==0)
c2 = 32;
else
{
buf2 |= x2[i] >> (32+c2);
c2 += 32;
}
}
}
}
}
}
fcloseall();
getch();
}
}
Відкритий текст
Звертаючи увагу на своєрідність історичних форм спільності людей, необхідно підкреслити надзвичайну важливість правильності розуміння категорії "нація" та філософських аспектів національного питання. Звичайно, своєрідність різних філософських підходів до проблеми нації виявляється лише в контексті системних співвідношень нації, народу, етносу та іні Тому без зясуванння співвідношення цих феноменів, не можна, адекватно зрозуміти сутність нації. Водночас недопустимо ототожнювати специфічні сфери філософського дослідження таких історичних спільностей людей, як народ, нація, етнос, та їх політичне, юридичне тлумачення і використання в суспільно-політичній практиці, в практиці законотворчості. Зв'язок між цими сферами, звичайно, є. Проте політичні, юридичні, морально-етичні висновки з філософських концепцій та практика тієї чи іншої конкретної політики і права, виразу морального або аморального вимірів поведінки людей у сфері расових і міжрасових, національних та міжнаціональних взаємин не тільки,.можуть бути, а й реально бувають настільки неоднозначними, часто-густо навіть протилежними, що в зв'язку з цим виникає ціла низка принципово важливих питань.
По-перше, це питання послідовності морально-етичного, юридичного і політичного тлумачень, а також практичної реалізації певної філософсько-теоретичної концепції, питання сутності, і прояву історичних форм спільності людей. По-друге,.це питайия логіко-філософської послідовності, несуперечливості тієї чи іншої філософсько-теоретичної концепції, її ціннісних орієнтирів, відповідності її основним суттєвим рисам, тенденціям історичного процесу розвитку форм спільності людей. по-третє, це питання про місце спадщини або запозичень з інших концепцій в даній філософській концепції, з одного боку,, і в морально-етичній, юридичній і політичній концепціях - з іншого. Вони можуть бути або еклектичними, або гармонійно відповідати духові основної концепції.
Результат шифрування
360 408 401 379 447 446 48 320 89 311 475 491 99 135 382 135 107 291 83 151 404 375 59 245 333 409 345 87 411 501 376 296 237 343 395 72 323 487 478 123 399 183 362 34 288 80 128 75 266 98 42 312 248 122 242 26 205 466 266 98 107 239 366 173 313 197 505 341 193 464 384 195 235 191 175 148 116 347 115 375 504 205 281 409 114 218 49 209 397 469 108 380 184 298 178 73 336 112 222 340 52 155 182 142 333 23 427 214 316 92 297 124 60 379 375 379 121 366 38 177 431 323 28 358 302 284 185 165 406 386 250 450 222 22 85 220 364 428 133 81 63 230 318 385 489 165 123 436 276 123 362 242 25 503 219 207 65 141 294 384 240 251 289 349 353 6 478 289 178 234 458 276 244 347 474 418 361 135 59 76 35 327 62 31 259 313 10 66 416 335 435 477 246 254 404 443 255 190 337 445 68 336 304 378 39 187 426 322 10 275 29 9 287 434 410 441 88 328 361 244 132 226 269 425 442 89 373 485 210 442 465 33 349 81 131 7 324 107 287 453 410 370 278 342 94 60 213 465 154 145 205 253 427 303 206 188 460 76 200 312 509 434 154 41 501 289 249 20 500 123 66 298 237 270 342 270 325 321 134 173 313 197 54 142 373 454 286 361 61 313 212 335 435 29 412 508 133 2 186 38 351 147 506 66 266 275 10 66 352 265 197 403 383 211 28 500 84 443 426 306 457 382 182 157 346 418 177 88 392 221 362 34 288 128 368 275 374 382 404 363 31 421 32 112 249 407 203 72 386 426 161 338 26 311 376 88 148 416 464 479 117 337 8 461 505 319 447 19 188 411 175 95 314 258 257 114 426 234 1 93 275 168 120 307 262 318 431 72 280 11 332 236 85 187 351 316 84 468 317 39 203 103 335 115 217 189 9 101 189 121 240 123 191 222 464 32 421 5 177 149 490 242 49 121 53 15 175 387 416 122 322 97 174 278 400 164 116 194 507 351 136 350 262 320 420 164 201 343 347 81 509 313 88 470 110 49 445 377 240 152 296 331 254 246 25 209 13 509 51 279 206 76 140 375 303 3 32 282 354 161 131 375 127 424 248 395 364 332 305 62 406 455 159 211 410 460 492 317 81 61 124 20 52 175 96 384 258 478 454 372 130 426 433 447 275 44 491 111 366 478 262 440 441 389 28 12 460 255 20 20 181 132 212 66 100 404 16 251 351 344 322 106 289 105 437 416 417 477 353 234 498 433 271 291 348 390 206 92 236 268 389 247 155 491 419 199 446 126 86 447 399 227 352 306 282 25 156 220 299 184 200 459 502 14 497 292 276 188 170 178 273 337 493 59 329 357 177 68 420 479 53 433 506 319 307 174 72 56 53 471 107 470 435 151 142 322 10 275 23 459 336 371 215 166 114 346 25 334 118 84 297 69 377 144 368 122 82 314 113 27 367 115 425 69 49 490 370 153 377 373 387 241 205 39 338 106 72 69 497 405 223 19 90 143 243 461 118 46 67 303 499 131 502 190 176 164 116 194 104 72 288 272 80 392 314 258 257 100 372 22 118 46 67 396 460 39 220 28 107 397 185 319 13 89 9 432 224 115 139 143 142 11 95 191 387 263 4 258 426 9 169 85 30 261 289 432 139 303 144 183 155 463 19 375 494 7 267 429 458 258 288 265 197 403 155 351 302 125 233 63 66 42 349 151 43 214 223 19 90 143 243 461 481 493 218 39 75 127 503 491 316 113 77 39 124 348 453 487 203 427 275 119 238 362 82 119 403 215 148 358 446 1 218 338 264 452 276 482 364 332 305 409 437 229 379 191 206 31 323 13 136 504 189 410 354 121 82 330 46 340 52 219 184 168 241 404 4 320 315 383 398 64 320 32 1 189 97 101 145 261 35 487 64 100 308 98 100 164 477 466 266 98 475 415 174 61 329 49 420 164 137 73 421 405 282 146 200 390 206 188 20 340 377 422 46 168 43 431 462 365 361 464 269 105 310 189 9 101 367 3 476 52 404 155 393 37 73 112 256 129 186 386 401 15 115 333 393 165 433 52 468 79 435 487 207 219 207 101 173 425 272 137 405 244 168 344 393 371 71 449 303 419 402 189 9 101 480 256 258 93 329 415 502 14 497 400 112 122 335 451 410 293 497 279 506 114 48 182 78 25 119 107 316 59 383 382 64 208 469 258 26 308 387 295 350 331 479 419 509 409 230 21 129 453 490 370 441 500 84 443 297 69 377 306 234 130 387 295 350 317 361 123 133 81 63 189 9 101 484 356 353 158 390 52 476 252 241 62 310 57 473 69 390 40 120 187 371 311 404 356 68 95 218 338 8 321 221 359 495 451 416 432 320 1 330 466 449 503 43 144 8 376 61 234 498 433 353 141 36 228 436 2 96 240 29 389 49 277 212 84 285 167 11 131 228 228 393 76 12 463 283 143 237 422 110 28 175 195 452 308 388 494 219 159 302 332 396 375 104 88 61 168 120 307 92 412 107 281 85 367 504 104 265 12 44 141 272 416 105 69 465 27 417 173 90 68 420 479 53 433 506 116 4 2 366 438 198 486 366 424 227 7 302 505 21 413 403 7 283 167 427 85 248 40 69 500 388 226 344 264 389 318 262 18 43 431 334 24 104 151 478 278 85 34 74 201 164 196 83 455 411 278 27 383 208 301 105 260 392 184 265 350 118 187 406 414 508 507 463 179 113 45 397 363 31 261 393 469 120 133 305 405 490 498 449 467 199 211 431 131 160 258 298 129 286 134 220 459 463 254 479 499 112 244 68 110 24 408 510 264 488 152 396 28 376 152 232 439 341 65 29 390 206 316 15 435 401 427 191 3 377 101 438 387 215 429 239 403 25 94 214 473 353 141 36 228 436 2 96 240 29 389 49 277 372 116 221 260 196 29 65 509 161 226 394 449 239 483 42 319 307 174 316 348 25 91 127 156 217 5 386 100 4 283 133 81 63 230 318 385 489 165 123 121 53 79 36 100 45 5 273 163 251 63 430 78 118 132 47 51 487 107 287 453 57 133 388 213 177 112 434 154 201 336 304 378 223 275 490 78 422 363 328 136 438 497 45 213 291 311 49 157 137 63 364 332 305 355 407 283 224 368 477 144 224 501 211 279 468 301 441 37 109 265 274 102 46 476 439 171 92 493 41 132 55 395 266 226 362 263 5 465 63 101 145 261 479 275 90 292 452 507 340 404 441 261 433 405 98 266 33 183 219 355 307 295 411 490 114 265 173 169 288 169 165 431 362 114 337 23 427 214 316 92 297 263 43 199 441 229 186 290 330 201 302 278 200 335 435 29 72 504 193 80 464 364 139 399 382 226 90 282 355 359 260 258 426 9 120 328 247 77 329 408 284 380 357 493 41 388 347 287 270 417 413 109 186 354 55 452 292 31 447 387 55 0 416 466 476 252 241 396 236 497 473 69 390 152 56 216 511 403 48 315 431 261 376 72 503 155 95 254 81 477 142 446 182 185 371 87 510 77 217 493 75 95 123 6 478 289 434 490 458 413 393 319 144 80 272 248 152 336 435 151 142 101 401 181 192 464 477 490 370 153 305 173 489 133 161 48 412 252 245 494 502 242 1 13 34 408 40 235 207 291 32 259 471 37 39 59 322 484 180 194 130 426 433 125 377 420 401 413 102 505 373 443 32 432 285 443 383 102 410 274 200 365 489 216 131 23 97 453 465 419 403 503 94 300 156 310 186 354 247 282 354 161 288 224 244 238 406 84 415 3 465 165 1 412 205 41 166 203 415 503 408 504 148 298 178 73 47 451 28 78 374 340 96 240 29 269 201 356 163 199 78 100 4 283 449 77 218 354 266 465 478 406 93 295 139 35
Завдання 2
Зашифрувати Слово відкритого тексту за алгоритмом RSA. Слово визначається останньою буквою і НЗК. Для генерування ключів використати числа p та q, які визначаються передостанньою цифрою j НЗК.
i
Слово
j
p
q
4
ШУМ
4
5
11
Теоретичні відомості
Генерування ключів. Вибирають два досить великі прості числа . Для їх добутку значення функції Ойлера дорівнює . Далі випадковим чином вибирають елемент , що не перевищує значення і взаємно простий з ним. Іншими словами, є випадковим елементом із множини . Для за алгоритмом Евкліда знаходять елемент , обернений до в , тобто такий, що і
.
Як результат покладають:
Відкритий ключ:
Таємний ключ:.
Шифрування відбувається блоками. Для цього повідомлення записують у цифровій формі і розбивають на блоки так, що кожен блок позначає число, яке не перевищує . Якщо блок записаний у вигляді двійкового слова довжини , то повинна виконуватись нерівність . Блок розглядається як елемент кільця і як такий, може підноситись до степеня за модулем .
Алгоритм шифрування у системі полягає у піднесені до степеня . Записується це так:
Вибір ключів
Зашифрування
Ш
У
М
27
23
16
27
23
16
47
23
36
Розшифрування
Висновок: Під час виконання даної курсової роботи я набув практичних навичок та кращого розуміння афінних шифрів та асиметричного шифру RSA. Щоправда, при зашифруванні RSA деякі символи вхідного і вихідного тексту співпадали. Це, мабуть, пов‘язано з тим, що в якості ключа і модуля (n) використовувались малі числа.