Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Ранцевої криптосистеми Меркля-Хеллмана

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Не вказано

Інформація про роботу

Рік:
2010
Тип роботи:
Лабораторна робота
Предмет:
Криптографічні системи та протоколи
Група:
БІ-31

Частина тексту файла

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ НАЦІОНАЛЬНИЙ УНІВЕРСИТЕТ “ЛЬВІВСЬКА ПОЛІТЕХНІКА” Лабораторна робота № 3 з дисципліни “Криптографічні системи та протоколи” на тему: “ Ранцевої криптосистеми Меркля-Хеллмана ” Мета роботи: вивчитити алгоритм ранцевої криптосистеми Меркля-Хеллмана 1. Завдання. Реалізувати програму, що дозволяє шифрувати інформацію з використанням ранцевої криптосистеми Меркля-Хеллмана 2. Фрагменти тексту програми. кодування даних … void encoding(FILE *inputFile,FILE *outputFile, FILE *filePublicKey) { int count=-1; string mask=""; int ch; char bitBuffer[8]; fread(&useN,sizeof(int),1,filePublicKey); fread(&publicKey,sizeof(unsigned long int),useN,filePublicKey); fclose(filePublicKey); fseek(inputFile,0,0); do { ch = fgetc(inputFile); if (ch!=-1) { int chD=ch; itoa(ch,bitBuffer,2); for(int j=8-1;j>0;j--) { if(chD<(pow(2,j)-1)) mask+="0"; else { for(int k=0;k<=j;k++) mask+=bitBuffer[k]; break; } } } if(mask.length()==useN) { unsigned long int temp=0; for(int i=0;i<mask.length();i++) if(mask[i]=='1') temp+=publicKey[i]; fwrite(&temp,sizeof(unsigned long int),1,outputFile); mask=""; } } while(ch!=EOF); if(mask!="") { for(int i=0;i<useN-mask.length();i++) mask+="0"; unsigned long int temp=0; for(int i=0;i<mask.length();i++) if(mask[i]=='1') temp+=publicKey[i]; fwrite(&temp,sizeof(unsigned long int),1,outputFile); } fwrite(&count,sizeof(int),1,outputFile); fclose(inputFile); fclose(outputFile);} … декодування даних … void decoding(FILE *inputFile,FILE *outputFile, FILE *filePrivateKey) { unsigned long int temp=0; unsigned long int x; string mask=""; fread(&useN,sizeof(int),1,filePrivateKey); fread(&x,sizeof(unsigned long int),1,filePrivateKey); fread(&qr.q,sizeof(unsigned long int),1,filePrivateKey); fread(&privateKey,sizeof(unsigned long int),useN,filePrivateKey); fclose(filePrivateKey); fseek(inputFile,0,0); fread(&temp,sizeof(unsigned long int),1,inputFile); while(temp!=-1) { temp=(temp*x)%qr.q; if(temp==0) temp=qr.q; for(int i=useN-1;i>=0;i--) if(temp>=privateKey[i]) { temp-=privateKey[i]; mask="1"+mask; } else mask="0"+mask; char ch=0; int k=0, p=8; do { for(int i=k;i<(k+8);i++) { p--; if(mask[i]=='1') ch+=pow(2,p); } k+=8; p=8; fwrite(&ch,sizeof(char),1,outputFile); } while(k<useN); mask=""; fread(&temp,sizeof(unsigned long int),1,inputFile); } fclose(outputFile); fclose(inputFile);} … 5. Результати роботи  Рисунок 1 – Шифрування даних з використанням ранцевої криптосистеми Меркля-Хеллмана. Висновок: На даній лабораторній роботі було засвоєно та реалізовано ранцеву криптосистему Меркля-Хеллмана
Антиботан аватар за замовчуванням

12.03.2013 15:03

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини