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

Метод гаммирования с обратной связью - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 38, средняя оценка - 4.87
celir
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 20
20.12.2012, 23:14     Метод гаммирования с обратной связью #1
имею код программы без алгоритма шифрования. если я все правильно понимаю, то сейчас эта программа просто переписывает строку текста из одного файла в другой. но после выполнения программы, в выходном файле лишь невидимые символы в количестве символов исходного текста. что не так?

и второй вопрос: помогите понять как рабоатет метод шифрования гаммированием. я не понимаю алгоритм образования гаммы шифра и как его реализовать.

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
#include<stdio.h>
#include<string.h>
#include<conio.h>
#include<clocale>
#include<windows.h> 
#include <fstream> 
using namespace std;
 
void main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
 
setlocale( LC_CTYPE,"Russian" ); //включаем поддержку русского языка
FILE*f,*f1; //описываем переменные f1, типа file в виде указателей, через них мы обратимся к файлам типа TXT
f=fopen("in.txt","r");  //открываем файл, с которого будем считывать текст
f1=fopen("out.txt","w");  //открываем файл в который будем записывать текст
char d;
 
while(d=fgetc(f)!=EOF)
{
    //поместить сюда цикл гаммирования
 
    fputc(d,f1);
}
fclose(f);
fclose(f1);
 
 
getch();
}
Добавлено через 7 часов 46 минут
Прошу модераторов удалить тему, т.к. сам во всем разобрался
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.12.2012, 23:14     Метод гаммирования с обратной связью
Посмотрите здесь:

Метод Крамера или обратной матрцы! C++
Метод итераций для нахождения обратной матрицы C++
Бинарные деревья с обратной связью C++
Метод обратной матрицы C++
C++ Гаммирование с обратной связью
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
beats
 Аватар для beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
11.04.2013, 18:40     Метод гаммирования с обратной связью #2
Так выложи код, чтобы поделится со всеми. Не только тебе это интересно!
celir
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 20
01.07.2013, 13:41  [ТС]     Метод гаммирования с обратной связью #3
ограничение - латинский алфавит
для расшифровки вводим тот же ключ, что и для зашифровки
Вложения
Тип файла: zip gamm.zip (5.4 Кб, 507 просмотров)
Тип файла: txt in.txt (16 байт, 302 просмотров)
Тип файла: txt out.txt (16 байт, 247 просмотров)
XRuZzz
Антикодер
577 / 478 / 23
Регистрация: 15.09.2012
Сообщений: 2,429
01.07.2013, 13:51     Метод гаммирования с обратной связью #4
Цитата Сообщение от celir Посмотреть сообщение
и второй вопрос: помогите понять как рабоатет метод шифрования гаммированием. я не понимаю алгоритм образования гаммы шифра и как его реализовать.
гаммирование без обратной связи понимаете?
Гаммирование

Добавлено через 2 минуты
вот кстати товарищ уже объяснял в теме Гаммирование с обратной связью
celir
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 20
01.07.2013, 17:06  [ТС]     Метод гаммирования с обратной связью #5
я во всем разобрался, программа, выложенная выше - моего написания. Обратная связь, как я понял, значит, что при создании гаммы, кждое следующее значения получается с использованием предыдущего, т.е. Просто рекурсивное уравнение
Наби
0 / 0 / 0
Регистрация: 09.12.2015
Сообщений: 1
10.12.2015, 14:10     Метод гаммирования с обратной связью #6
Цитата Сообщение от celir Посмотреть сообщение
ограничение - латинский алфавит
для расшифровки вводим тот же ключ, что и для зашифровки
а у вас остался исходный код программы?
celir
1 / 1 / 0
Регистрация: 20.12.2012
Сообщений: 20
10.12.2015, 21:28  [ТС]     Метод гаммирования с обратной связью #7
да, вам повезло)
Этот код я последний раз трогал года 2 назад, вроде бы это окончательно рабочий.
Вложения
Тип файла: zip rgr.zip (1.5 Кб, 114 просмотров)
yaro78
0 / 0 / 0
Регистрация: 19.11.2015
Сообщений: 1
04.01.2016, 23:06     Метод гаммирования с обратной связью #8
В листинг, приведенной выше программной реализации гаммирования с обратной связью, следовало добавить сложение по модулю два.
Вот, теперь работает по-настоящему в Visual Studio 2010

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
#include "stdafx.h"
 
#include <iostream>
 
using namespace std;
 
const int FIRST_SYMBOL = ' '; // первый символ
const int SYMBOL_NUMBER = 95; // для простоты кодируем только английский алфавит 
 
void GammaCoding( char *input, char *gamma, char *result )
{
  for( char *i=input, *j=gamma; *i; i++, j++ )
  {
    if(!(*j)) j=gamma;
    int Ti = *i - FIRST_SYMBOL;
    int Gi = *j - FIRST_SYMBOL;
    *(result++) = FIRST_SYMBOL+(Ti+Gi)%SYMBOL_NUMBER;
  }
  *result = '\0';
}
 
void GammaDecoding( char *input, char *gamma, char *result )
{
  for( char *i=input, *j=gamma; *i; i++, j++ )
  {
    if(!(*j)) j=gamma;
    int Ci = *i - FIRST_SYMBOL;
    int Gi = *j - FIRST_SYMBOL;
    *(result++) = FIRST_SYMBOL+(Ci-Gi+SYMBOL_NUMBER)%SYMBOL_NUMBER;
  }
  *result = '\0';
}
 
int main()
{
    setlocale(LC_ALL, "rus");
    char str1[256], gamma[256], rez[256];
 
    cout << "Введите исходное сообщение: ";
    cin >> str1;
    cout << "Введите гамму: ";
    cin >> gamma;
 
    GammaCoding( str1, gamma, rez );
    cout << "Зашифрованное сообщение: ";
    cout << rez << endl;
  
    cout << "Введите зашифрованное сообщение: ";
    cin >> rez;
 
    GammaDecoding( rez, gamma, str1 );
    cout << "Исходное сообщение: ";
    cout << str1 << endl;
 
    system("pause");
    return 0;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.03.2016, 16:30     Метод гаммирования с обратной связью
Еще ссылки по теме:

метод обратной прогонки C++
C++ Метод обратной матрицы
C++ Шифры (метод гаммирования)

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

Или воспользуйтесь поиском по форуму:
Nichers
0 / 0 / 0
Регистрация: 30.10.2012
Сообщений: 5
10.03.2016, 16:30     Метод гаммирования с обратной связью #9
Цитата Сообщение от yaro78 Посмотреть сообщение
В листинг, приведенной выше программной реализации гаммирования с обратной связью, следовало добавить сложение по модулю два.
Вот, теперь работает по-настоящему в Visual Studio 2010
Твоя программа работает согласно госту 28147-89 ?
Yandex
Объявления
10.03.2016, 16:30     Метод гаммирования с обратной связью
Ответ Создать тему
Опции темы

Текущее время: 22:22. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru