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

Потоковый шифр на основе РСЛОС - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Просуммировать нечетные и перемножить четные действительные числа http://www.cyberforum.ru/cpp-beginners/thread808290.html
нужно в общем просумировать нечетные и переумножать четные ДЕЙСТВИТЕЛЬНЫЕ числа, просмотрите что я там налепил и помогите исправить: #include <stdio.h> #include <conio.h> #include <math.h>...
C++ Разработать класс, инкапсулирующий банковский счет Разработать класс, инкапсулирующий банковский счет (номер счета, баланс, ФИО владельца, валюта счета). Реализовать методы снятия со счета и пополнение счета. Помогите пожалуйста) http://www.cyberforum.ru/cpp-beginners/thread808222.html
C++ Двумерные массивы (Определить Количество строк, номер столбца)
Дана целочисленная прямоугольная матрица.Определить: 1)Количество строк,содержащих хотя бы один нулевой элемент 2)номер столбца,в котором находится самая длинная серия одинаковых элементов
Дано целое число K, а также K наборов ненулевых целых чисел. c++ C++
Дано целое число K, а также K наборов ненулевых целых чисел. Ка- ждый набор содержит не менее двух элементов, признаком его завершения является число 0. Для каждого набора выполнить следующее...
C++ Нужен очень простой работающий пример QT XML writer http://www.cyberforum.ru/cpp-beginners/thread808185.html
Всем доброе утро разыскивается очень простой работающий пример QT XML writerа и ридера если не лень))) на подобие как здесь делают: http://www.cplusplus.com/reference/map/map/count/...
C++ с++ Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию Дано целое число N и набор из N целых чисел, упорядоченный по возрастанию. Данный набор может содержать одинаковые элементы. Вы- вести в том же порядке все различные элементы данного набора. в с++ подробнее

Показать сообщение отдельно
litbit
0 / 0 / 0
Регистрация: 14.03.2013
Сообщений: 150

Потоковый шифр на основе РСЛОС - C++

14.03.2013, 11:43. Просмотров 1338. Ответов 1
Метки (Все метки)

Здравствуйте.
Нужна помощь в проверке и до работке кода программы потокового шифрования на основе РСЛОС.
Отводная последовательность РСЛОС задается полиномом x^24*+*x^4*+*x^3*+*x*+*1.
Кто может исправьте работу программы, если алгоритм работает не корректно и напишите комментарии к программе. Очень признателен.
Теорию по данной теме добавляю во вложение


Задание:
Разработать программу – генератор псевдослучайной последовательности бит для шифрования и расшифровывания текста при помощи шифра гаммирования. Программа должны обеспечивать:
задание режима работы (генерация гаммы с записью ее в файл/шифрование), имени входного файла, имени результирующего файла;
ввод параметров генератора с клавиатуры;
генерирование последовательности длиной 20000 бит с записью ее в файл
шифрование информации, находящейся в текстовом файле, с записью результата в другой файл.Зашифровать и расшифровать файл, с использованием разработанной программы.

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
#include <vcl.h>
#include <string.h>
#include <stdio.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
unsigned long Regist = 1;
char *filenameIn; / имя открываемого файла
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
if (OpenDialog1->Execute())
        {Memo1->Lines->LoadFromFile(OpenDialog1->FileName);
        Button1->Enabled=true;
        }
else
        {ShowMessage("Ошибка при открытии файла!");
        Button1->Enabled=false;
        }}
//---------------------------------------------------------------------------
void __fastcall TForm1::BitBtn2Click(TObject *Sender)
{
if (SaveDialog1->Execute())
        {Memo2->Text="";
        Button1->Enabled=true;
        }
else
        {ShowMessage("Ошибка при открытии файла!");
        Button1->Enabled=false;
        }}
//---------------------------------------------------------------------------
int RSLOS (TMemo *Memo3)
{
 
int i=0;
unsigned long uL = StrToInt (Memo3->Lines->Strings[i]);
for (int i=0;i<Memo3->Lines->Count-1;i++)
        {uL^=(Regist>>StrToInt(Memo3->Lines->Strings[i]));
        }
uL&=0x00000001;
uL<<=StrToInt(Memo3->Lines->Strings[0]);
uL|=(Regist>>1);
Regist = uL;
return Regist &0x00000001;
}
void __fastcall TForm1::Button1Click(TObject *Sender)
{
unsigned char ch;
FILE *INfile, *OUTfile;
filenameIn=OpenDialog1->FileName.c_str();
char *filenameOut=SaveDialog1->FileName.c_str();
        INfile=fopen(filenameIn, "rb");
        OUTfile=fopen(filenameOut, "wb");
Regist=StrToInt(Edit1->Text);
 
unsigned char byte = 0;
while (!feof(INfile))
{
        if (fread(&ch,sizeof(unsigned char),1,INfile))
        {
                for(int i = 0; i < 8; i++)
                {
                        byte |= (unsigned char)RSLOS(Memo3);
                        byte <<= 1;
                }
                byte ^= ch;
                int count=fwrite(&byte,sizeof(unsigned char),1,OUTfile);
                }
}
fclose(INfile);
fclose(OUTfile);}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Memo2->Lines->LoadFromFile(OpenDialog2->FileName);}
0
Вложения
Тип файла: docx теория.docx (95.4 Кб, 41 просмотров)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru