Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
#1

Необходимо разработать программу генерации ПСП - C++

28.02.2010, 03:14. Просмотров 1197. Ответов 2
Метки нет (Все метки)

Прошу помочь. Кто учился на ЗС, ЗИ, Зм, в общем защитники инфы и те кто знаком с основами инф. Безопасности (криптографии) -
Необходимо разработать программу генерации ПСП.
Вид ГПСП: Пороговый генератор.
Количество ЛРЗР: 5
Полином обратного соединения для линейного рекуррентного регистра сдвига ЛРЗР: (25,3,0); (11,2,0); (17,6,0); (7,1,0); (18,7,0).
полученную последовательность в двоичном виде записывать в файл по-байтно (по 8 бит - 8 двоичных символов)
Последовательности должны бить записаны в файл GAMA.DAT, файл должен быть не меньше 1 МБ.

Вот программа с таким же результатом, но без алгоритма. http://www.cyberforum.ru/cpp-beginne...tml#post560610
Простой ксор. Она тянет на 3 бала (по 5й системе). Хочется разобраться в чем-то посерьезнее…
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.02.2010, 03:14     Необходимо разработать программу генерации ПСП
Посмотрите здесь:

Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. - C++
Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. Сначала в...

Необходимо разработать программу, в которой выполняется ввод списка записей определенного типа, а затем - обработка списка. Сначала в программе должен - C++
Вывести на экран все записи товаров, определенного ценового диапазона. Ценовой диапазон указывается пользователем. ТОВАР: наименование...

Генерация ПСП - C++
Пожалуста, помогите. Задача состоит в том чтобы написать на С++ генератор псевдослучайных последовательностей по формуле: Y=F*Y, где F...

генератор ПСП по методу Фибоначчи - C++
Нужно реализовать генератор ПСП по методу Фибоначчи, используя полином 9D (16) = 1001 1101 (2) Имеем к примеру начальное...

Составить программу генерации всех перстановок: натуральных чисел от 1 до n - C++
Перестановкой из n элементов называется последова-тельность длины n, все элементы которой различны. Со-ставить программу генерации всех...

Предлагаю программу для генерации командной строки g++ (нахождения *.a в частности) - C++
То есть, если один файл *.a надо найти да тем более знаешь где он , то это не представляет трудностей. А как вам такая командная строка? ...

Необходимо подправить программу - C++
я написал программу: #include <iostream> #include "liquid.h" #include "SpNapitki.h" using namespace std; void...

Необходимо разобрать программу - C++
Добрый день . встретились такие операторы как"ch+=(char) 32" и "ch-=(char) 32" Объясните принцип работы этих операторов. В моей книге об...

Необходимо написать программу в C++ - C++
Найти производную функции f(x)=sinxcosx по определению (\Delta =0,001 ) в точках их интервала (0,5) с шагом 1.

Необходимо изменить программу в C++ - C++
Здравствуйте. Собственно есть программа, которая минимизирует модель методом сопряженных направлений Пауэлла. Код: #include...

необходимо изменить программу - C++
#include <iostream> int main() { const int N = 5; using namespace std; double n; int count = N; float...

Курсовая, необходимо написать программу-интерпретатор - C++
Написать программу-интерпретатор, вычисляющую значение выражения, вводимого с клавиатуры в виде строки вида "12+173/27-15,5". ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MeGAbait
Сообщений: n/a
03.04.2010, 01:35     Необходимо разработать программу генерации ПСП #2
Не поверишь сейчас тоже самое в инэте ищу *(((

Вот ребята 2 года назад сдавали прогу >>>
C++
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
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <string.h>
//---------------------------------------------------------------------------
struct B
  {
   unsigned v:1;
  }vposl[34];
void main(int argc,char *tvp[])
{
  int i,j,point,k,byt,f,nfile,type;
  char *mas,fname[20];
  FILE *fout;
  clrscr();
struct A
  {
   unsigned p:1;
  }polinom[34];
 
struct C
  {
   unsigned r1:1;
   unsigned r2:1;
   unsigned r3:1;
   unsigned r4:1;
   unsigned r5:1;
   unsigned r6:1;
   unsigned r7:1;
   unsigned r8:1;
  }rez;
struct dump
  {
   unsigned t:1;
  }reztemp[8],temp[34],temp1,temp2,temp3,rtemp;
if(argc==2)
{ mas=tvp[1];
 cout<<"Џ®«гзҐ**л© Ї*а*¬Ґва: ";//"Полученный параметр: "
  for(i=0;i<34;i++)
 {
  vposl[i].v=mas[i];
  cout<<vposl[i].v;
 }
}
for(i=0;i<34;i++)//заполнение полинома
 {
  polinom[i].p=0;
  if( i==33 || i==14 || i==13 || i==0 )  polinom[i].p=1;
 }
if(argc==1)
  {cout<<"‚ўҐ¤ЁвҐ Ї®б«Ґ¤®ў*⥫м*®бвм Ё§ 34 ЎЁв (0/1): ";//"Введите последовательность из 34 бит (0/1): "
  for(i=0;i<34;i++)//ввод произвольной последовательности
  {
   vposl[i].v=getch();
   cout<<vposl[i].v;
  }
 }
rtemp.t=0;
cout<<endl<<"‚ўҐ¤ЁвҐ Є®«ЁзҐбвў® д*©«®ў: "; cin>>nfile;//"Введите количесво вайлов: "
cout<<"‚ўҐ¤ЁвҐ а*§¬Ґа д*©«®ў (Ў*©в): "; cin>>byt;//"Введите размер генерируемого файла(ов): "
cout<<"‚лЎЁаЁвҐ бЇ®б®Ў ЈҐ*ҐаЁа®ўЁ*Ёп (1-Є®¬ЎЁ**жЁп ‘‹ђђ / 0-®¤Ё**а*л© ‘‹ђђ): "; cin>>type;//выбирите способ генерирования 1-комбинация СЛРР/0-одинарный СЛРР
cout<<"Ћв®Ўа*¦*вм бЈҐ*ҐаЁа®ў***лҐ ЎЁвл? (1-¤* / 0-*Ґв): "; cin>>point;//"Вкл. визуализацию процесса генерации? "
for(f=0;f<nfile;f++)
{
cout<<endl<<"‚ўҐ¤ЁвҐ Ё¬п Ё а*биЁаҐ*ЁҐ "<<f+1<<" д*©«*: "; scanf("%20s",&fname);//"Введите имя и размер файла"
cout<<"Џ®¤®¦¤ЁвҐ, д*©« ";printf("%s",&fname);cout<<" ЈҐ*ҐаЁагҐвбп..."<<endl;//"подождите,файл генерируется... "
fout=fopen(fname,"wb");
if(type==1)
{
 for(j=0;j<byt;j++)//цикл в котором формируется байт, биты которого - псп
 {
   for (k=0;k<24;k++)//цикл генерации бит
  {
   for(i=0;i<34;i++)//перемножение битов полинома и введенной последовательности
   {
    temp[i].t=vposl[i].v*polinom[i].p;
    rtemp.t=rtemp.t^temp[i].t;//суммирование по модулю два результата перемножения
   }
    if(k%3==0) {temp1.t=vposl[33].v; vposl[0].v=rtemp.t;}//присвоение байту псп бита, постановка утого бита на превое место в рез. перемнож.
    if(k%3==1) {temp2.t=vposl[33].v; vposl[0].v=rtemp.t;}
    if(k%3==2) {temp3.t=vposl[33].v; vposl[0].v=rtemp.t;
                if(k==2)  rez.r1=temp1.t^temp2.t^temp3.t;
                if(k==5)  rez.r2=temp1.t^temp2.t^temp3.t;
                if(k==8)  rez.r3=temp1.t^temp2.t^temp3.t;
                if(k==11) rez.r4=temp1.t^temp2.t^temp3.t;
                if(k==14) rez.r5=temp1.t^temp2.t^temp3.t;
                if(k==17) rez.r6=temp1.t^temp2.t^temp3.t;
                if(k==20) rez.r7=temp1.t^temp2.t^temp3.t;
                if(k==23) rez.r8=temp1.t^temp2.t^temp3.t;
                }
     for(i=34;i!=0;i--)//сдвиг последоват. полученой в результате перемножения полинома и введенной посл.
    {
     vposl[i].v=vposl[i-1].v;
    }
  }
 if(point==1)cout<<rez.r1<<rez.r2<<rez.r3<<rez.r4<<rez.r5<<rez.r6<<rez.r7<<rez.r8<<endl;
 fwrite(&rez,1,1,fout);
 }
fclose(fout);
cout<<"”*©« ";printf("%s",&fname);cout<<" бЈҐ*ҐаЁа®ў** Ё б®еа**Ґ*."<<endl;//"Файл сгенерирован и сохранен."
}
}
//------------------------------------------//
if(type==0)
{   
 for(j=0;j<byt;j++)//цикл в котором формируется байт, биты которого - псп
 {
   for (k=0;k<8;k++)//цикл генерации бит
  {
   for(i=0;i<34;i++)//перемножение битов полинома и введенной последовательности
   {
    temp[i].t=vposl[i].v*polinom[i].p;
    rtemp.t=rtemp.t^temp[i].t;//суммирование по модулю два результата перемножения
   }
     if(k==0) { rez.r1=vposl[33].v; }
     if(k==1) { rez.r2=vposl[33].v; }
     if(k==2) { rez.r3=vposl[33].v; }
     if(k==3) { rez.r4=vposl[33].v; }
     if(k==4) { rez.r5=vposl[33].v; }
     if(k==5) { rez.r6=vposl[33].v; }
     if(k==6) { rez.r7=vposl[33].v; }
     if(k==7) { rez.r8=vposl[33].v; }
     vposl[0].v=rtemp.t;
     for(i=34;i!=0;i--)//сдвиг последоват. полученой в результате перемножения полинома и введенной посл.
    {
     vposl[i].v=vposl[i-1].v;
    }
  }
 if(point==1)cout<<rez.r1<<rez.r2<<rez.r3<<rez.r4<<rez.r5<<rez.r6<<rez.r7<<rez.r8<<endl;
 fwrite(&rez,1,1,fout);
 }
fclose(fout);
cout<<"”*©« ";printf("%s",&fname);cout<<" бЈҐ*ҐаЁа®ў** Ё б®еа**Ґ*."<<endl;//"Файл сгенерирован и сохранен."
}
 
 
cout<<endl<<"ѓҐ*ҐаЁа®ў**ЁҐ Ё §*ЇЁбм ўбҐе д*©«®ў - §*ўҐаиҐ*л.";//"Генерация и сохранение всех вайлов завершено"
cout<<endl<<"Ќ*¦¬ЁвҐ «оЎго Є«*ўЁиг ¤«п ўл室*...";//"Нажмите любую клавишу для выхода"
getch();
}
ПавелИтель
8 / 8 / 1
Регистрация: 21.02.2010
Сообщений: 75
11.04.2010, 01:04  [ТС]     Необходимо разработать программу генерации ПСП #3
Кое как сам смог разработать… Но ваша мне нравится больше!))) Большое спасибо!
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru