Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.12.2011, 10:25   #1
Quetzal
Новичок
Джуниор
 
Регистрация: 06.12.2011
Сообщений: 1
По умолчанию Ошибка в RSA кодиовании.

Здравствуйте!
Задание стандартное. Задаем p, q, e, d. и По формуле где шифруем.
Но у меня ошибка точно есть в расшифровке. А в шифровании я не уверена.
Помогите кто-нибудь, пожалуйста...
Код:
#include <iostream>
#include <locale.h>
#include <cmath>
#include <fstream>
#include <string>
using namespace std;
 
int main( )
{
	setlocale(LC_ALL, "russian");
	int q=19, p=13;
	int n, t, openExponent=0, ks=1, d=0;
	int A[100];
	char s;
	char B[100];
//	int code;
	cout<<"=============================="<<endl<<endl;
 
	cout<<"1. Выбираем два простых числа p = "<<p<<", q = "<<q<<endl;
	n = p * q;
	cout<<"2. Вычисляем модуль n = p * q = "<<p<<" * "<<q<<" = "<<n<<endl;
	cout<<"3. Введите открытый ключ e = ";
	cin>>openExponent;
        cout<<endl;
	cout<<"3. открытый ключ e = "<<openExponent<<endl;
	cout<<"4. Введите ключ расшифровки d = ";
	 cin>>d;
	cout<<"=============================="<<endl<<endl;
	
ifstream infile("file");
	
	if ( ! infile ) 
	{
		cerr << "Ошибка открытия входного файла.\n";
		return -1;
	}
	string word, newword;
	infile >> word;
	cout << word << ' ';
	t=word.size();
	cout<<t<<endl;
for (int i=0; i<t; i++){
		A[i]= int(word[i]);
		cout<<"ASCII код сточки текста "<<A[i];
		cout<<endl;
		for(int j=1; j<=openExponent; j++){
			ks=ks*A[i]%n;}
		s=char(ks);
		//cout<<"Зашифрованный символ "<<s<<endl;
		newword=newword+s;		
	}
	cout<<newword<<endl;
	string unkeyword;
	cout<<endl<<"=============================="<<endl;
	ks=1;
	for (int i=0; i<newword.size(); i++){
		A[i]= int(newword[i]);
		cout<<"ASCII код сточки текста "<<A[i];
		cout<<endl;
		for(int j=1; j<=d; j++){
			ks=ks*A[i]%n;}
		s=char(ks);
		//cout<<"Расшифрованный символ "<<s<<endl;
		unkeyword=unkeyword+s;		
	}
	cout<<unkeyword<<endl;
	system("pause");
	
        return 0;
		
}
Quetzal вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
RSA fawr Помощь студентам 0 02.05.2011 13:59
rsa zaya Помощь студентам 1 28.04.2011 17:07
RSA lennon Помощь студентам 0 22.11.2009 17:31
RSA daitro Фриланс 4 11.06.2009 12:19