Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > Разбить текст на блоки


Автор: byTrojan 2.4.2012, 23:07
В алгоритме шифрования RSA перед шифровкой надо разделить текст на блоки. 
"Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:
- разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0,1,2..., n-1( т.е. только до n-1). "
Но как это сделать я не понимаю. Может есть предложения или кто-нибудь делал подобное?

Автор: volatile 3.4.2012, 02:47
byTrojan, да просто разбить на блоки меньшие чем n

например, допустим n - число размером 555 бит.
ясно что число состоящее из 554 бита будет всегда меньше
Вот, на 554 бита и разбиваем текст.

Можно еще упростить, чтоб не работать с битовыми сдвигами.
В байте 8 бит. 554 бита не делится на 8, ближайшее число делящееся на 8 - 552
552 / 8 = 69 байт.
Вот на блоки по 69 байт и разбиваем текст.

Вобщем както так, не особо заморачиваясь. smile 

Автор: byTrojan 3.4.2012, 16:02
Извините, но я про реализацию этого на C++
И потом после этого разделения чтобы нормально расшифровать надо это воссоеденить?


И еще если можно то может лучше шифровать посимвольно?

Автор: volatile 3.4.2012, 23:13
Цитата(byTrojan @  3.4.2012,  16:02 Найти цитируемый пост)
Извините, но я про реализацию этого на C++

А в чем проблема то? разве в С++ нельзя разделить текст (или вообще что угодно) на блоки по n байт ?

Цитата(byTrojan @  3.4.2012,  16:02 Найти цитируемый пост)
И потом после этого разделения чтобы нормально расшифровать надо это воссоеденить?

После расшифровки, нужно будет соединить.

Цитата(byTrojan @  3.4.2012,  16:02 Найти цитируемый пост)
И еще если можно то может лучше шифровать посимвольно?

Это как, по 1 символу на блок. Слишком жирно будет.  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)