Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.06.2012, 23:04   #1 (permalink)
kostuzhoff
Новичок
 
Регистрация: 13.06.2012
Сообщений: 1
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию C++. Упрощённая реализация RSA. Не хватает доступного диапазона чисел для корректных

Убедительная просьба помочь. Схематично реализую алгоритм шифрования RSA. Каждый символ введённой строчки преобразуется в ASCII-код, после чего этот код шифруется и дешифруется. Ссылка на педивикию: RSA — Википедия.
С математикой вроде бы всё в порядке, но из за нехватки диапазона чисел, выдаёт неправильные цифры и символы. Как быть?

Код:
#include "StdAfx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <math.h>


void main()
{
    const short p=11,q=23;
    char af[20];
    int i,e,d;
    char ch;
    int shifr,a,deshifr;
    unsigned long long f,n,b,c;
    n=q*p;
    printf("n=%d\n",n);
    f=(p-1)*(q-1);
    printf("f=%d\n",f);
    d=17;
    printf("d=%d\n",d);
    e=13;
    printf("e=%d\n",e);
    printf("Vvedite message!\n");
    gets(af);
    for(i=0;i<strlen(af);i++)
        {
        a=af[i];
        printf("  %c  ",af[i]);
        printf(" -> ");
        printf("%5d",a);
        printf(" -> ");
        b=1;
        for(int o=1;o<=e;o++)
            {
                b=b*a;
            }
        shifr=b%n;
        printf("%5d",shifr);
        printf(" -> ");
        //send "shifr" to 2nd
        c=1;
        for(int o=1;o<=d;o++)
            {
                c=c*shifr;
            }
        deshifr=c%n;
        printf("%5d",deshifr);
        printf(" -> ");
        ch=deshifr;
        printf("  %c  \n",ch);
        }
    getch();
}
kostuzhoff вне форума   Ответить с цитированием

Старый 13.06.2012, 23:04
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Советую вам обратить внимание на похожие обсуждения

Ошибка монитора - "вне диапазона"
Pascal ABC: File23. Дан файл вещественных чисел, создать файл целых чисел
Нужна схемка жука не FM-диапазона
Идея моддинга и её реализация
Реализация окна с эфектом туннеля

Старый 14.06.2012, 01:31   #2 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Наверное длинная арифметика. (файлы + например тип vector)
kreol вне форума   Ответить с цитированием
Старый 14.06.2012, 02:28   #3 (permalink)
kreol
Member
 
Аватар для kreol
 
Регистрация: 27.02.2010
Сообщений: 659
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 1312
По умолчанию

Можно еще посмотреть к примеру в сторону библиотеки GMP
kreol вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




Часовой пояс GMT +4, время: 14:22.

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.