Здравствуйте.
Написал алгоритм шифрования RSA (просто поучится) и все отлично работает, но какой-то костыль выходит.
Генерация ключей и алгоритм шифрования - отлично, а проблема вот в чем:
Для шифрования я перевожу объект в массив байт, потом байт перевожу в int, затем необходимо число возвести в степень n и взять остаток от деления по модулю m, затем результат опять в байтовый вид.. какая-то нереальная схема.. как тоже самое сделать в байтовом виде? То есть взять байт, возвести в степень и поделить по модулю?
Спасибо.
Поскольку в ходе работы RSA могут получаться числа с более чем 64 битами, для их хранения нужно использовать так называемую "длинную арифметику". Если ее дополнить функцией modexp() и функциями перевода любого массива байт в "длинное число" и обратно, вы сможете реализовать RSA буквально в три строки кода.