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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2012, 19:12   #1
Lokomoss
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 17
Восклицание Шифрование методом RSA c++\c

Начала писать элементы для шифровки.


Мой код:
Код:
#include<stdio.h>
#include <math.h>
#include <stdlib.h>
int main(void)
{
    double i,p,q,n,m,e,d,c;
    char s;
    printf("vvedite prostoe p:\n");
    scanf("p=%lf\n",&p);
    printf("vvedite prostoe q:\n");
    scanf("p=%lf\n",&q);
    n=p*q;
    printf("n=%lf\n",n);
    m=(p-1)*(q-1);
    printf("m=%lf\n",m);
    d=m;
    for(i=d;i<=1;i--){
    c=i;
    while(i!=m){
                if(i>m){
                        i=i-m;
                        }
                       else {
                            i=m-i;
                            }
                if(i=1){
                        break;
                        }
                }
                
                }
                d=c;
      printf("d=%lf\n",d); 
   for(i=1;i<=d;i++){
     if ((i*d)== (1 % m)){ //не нравится компилятору эта строчка,в чем дело?
                 e=i;
                 break;
                 }
                 }
      printf("e=%lf\n",e);
      system("pause"); 
       return 0;                       
}
Lokomoss вне форума Ответить с цитированием
Старый 28.10.2012, 21:31   #2
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

"Не нравится" - это как? У него начинается рвота и заливает клавиатуру, или всё-таки выводится некоторое сообщение об ошибке? В последнем случае стоило бы оное сообщение привести, Вам не кажется?
Оператор % в C++, если не изменяет склероз, неприменим к вещественному аргументу.

И какое отношение это имеет к RSA? Шифрование на основе функции Эйлера использует сверхдлинные целые, а не вещественные числа.
Abstraction вне форума Ответить с цитированием
Старый 29.10.2012, 14:59   #3
Lokomoss
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 17
По умолчанию

[QUOTE=Abstraction;1120816]"не так. просто так описан был этот алгоритм.саму шифровку еще не делала,но он даже эти параметры не рассчитывает. в с++ нет библиотеки gmp ,пока у меня компилятор говорит,что такого нет.
% для double Тоже ведь используют ,иначе у меня просто нет возможности узнать остаток от деления.
просто это 5 или 6 урок программирования на с++ ,а нам дают уэже написать такие программы. достаточно сложно,когда тебе приходится быстрым темпом учить теорию и писать значительные проги с большими выкладками.
Lokomoss вне форума Ответить с цитированием
Старый 29.10.2012, 15:00   #4
Lokomoss
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 17
По умолчанию

[QUOTE=Abstraction;1120816]"и если бы вы были внимательны ,то заметили ,что в самой проге я указываю на то место,где он ругается. у меня такой компилятор ,он не говорит ,что именно ему не нравится,только выделяет строчку
Lokomoss вне форума Ответить с цитированием
Старый 29.10.2012, 15:03   #5
Helloween
Форумчанин
 
Регистрация: 24.04.2012
Сообщений: 300
По умолчанию

По-моему вы неправильно поняли суть задания для начала. % по-моему тоже только к целочисленному делению применяется.
Помог? Оставляем отзыв =)
Helloween вне форума Ответить с цитированием
Старый 29.10.2012, 15:12   #6
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Ещё раз: любой код, имеющий отношение к RSA, использует только целочисленные типы (за вычетом, возможно, генератора псевдослучайных чисел, но сомневаюсь, что Вы его пишете). Потому что при расчётах такого рода вносимая расчётами с "вещественными" числами погрешность неприемлема.

Далее, остаток от деления 1 на любое целое число больше 1 равен... правильно, 1. Понятие остатка от деления на вещественное число не имеет в алгебре общепринятого определения и оператор % C++ неприменим к аргументам нецелых типов; С++ содержит функцию fmod на такой случай. Но она Вам не нужна - повторюсь ещё раз, для RSA нельзя использовать тип double. Используйте unsigned int для учебных примеров.
Abstraction вне форума Ответить с цитированием
Старый 01.11.2012, 16:42   #7
Lokomoss
Пользователь
 
Регистрация: 12.10.2012
Сообщений: 17
По умолчанию

а вот кто-нибудь может рассказать про библиотеку gmp, которую советуют использовать для написания этого шифра.
Это библиотека не входит в основную базу с++. как тогда поступать?
Lokomoss вне форума Ответить с цитированием
Старый 01.11.2012, 16:48   #8
Abstraction
Старожил
 
Аватар для Abstraction
 
Регистрация: 25.10.2011
Сообщений: 3,178
По умолчанию

Скачать, подключить к проекту. Инструкции по подключению, если не подводит память, есть на сайте библиотеки.
Abstraction вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
шифрование методом RSA на Delphi Тёма(C@$pEr) Помощь студентам 13 17.12.2012 17:42
RSA шифрование на C++ Lervil Фриланс 9 04.07.2011 09:38
DES и RSA шифрование! korneplodik Помощь студентам 0 16.05.2011 10:56
RSA шифрование Slimbr Помощь студентам 0 12.12.2009 13:30
Шифрование по алгоритму RSA Эльмирчик (ms) Помощь студентам 1 05.06.2009 20:51