Здравствуйте, я понимаю сам алгоритм rsa, но не понимаю его программной реализации.
Ведь когда я шифрую переменную типа char, то у меня значение должно быть около 2 тысяч, но char лежит в границах от [0;255] именно поэтому когда я переменной присваиваю около 2 тысяч, она берётся по модулю 256 и становится невозможно расшифровать шифрованный текст.
Программист, математик, задрот и даже чуть инженер
Ну Вам вообще-то было бы не плохо познакомится с длинной арифметикой. Ну, и загоняете в неё данные, ведь данные - это просто биты, вектор единичек и нулей. А char - это вектор бит длины 8. В длинной арифметике предела нет и всё ограничивается модулем. Как-то так.
@VoloshinAlex777 Так по реализации возможно вы не до конца ее поняли. Вам необходимо реализовать длинную арифметику. Т.е. если у вас ключ 512 бит, то вы должны уметь умножать числа длиной в 512 бит. Если вы будете просто с помощью рса кодировать по букве, то у вас реальнор шифр превратится в шифр подстановки.
Предположим вы используете упрощенную реализацию без длинной арифметики, и у вас ключ длинной всего 32 бита.
1) у вас могут быть проблемы с переполнением поэтому рекомендую для операций использовать инт64.
2) У вас есть строка байтов, положим длинной не кратной 4, например 102, вЫ еще расширяете двумя нулями до длины 104, и используете каждые 4 байта как один инт, у вас получается массив интов, которые вы шифруете вашей функцией, и на выходе тоже получите массив интов.
Который можно сохранять в файл например функцией fwrite: devoid.com.ua/functions-about/c-functions/fwrite.html