Размер блока зашифрованных данных RSA

как вы храните зашифрованный блок данных RSA? вывод может быть значительно больше, чем исходный размер блока входных данных, и я не думаю, что люди тратят память, заполняя загрузку ведра нулями перед каждым блоком данных. кроме того, как бы они были удалены? или каждый блок хранится в новых строках в файле? если это так, как бы вы отличили допустимую новую строку от символа '\ n', записанного в файл?

что мне не хватает? Я пишу часть «запись в файл» на Python, так что, возможно, это одно из различий между:

open(file,'w')
open(file,'w+b')
open(file,'wb')

этого я не знаю. Или что-то еще?


person calccrypto    schedule 03.05.2010    source источник


Ответы (1)


Вам не хватает того, что они действительно заполняют целым набором случайных битов.

Некоторые схемы заполнения используют первые несколько байтов, чтобы описать, сколько байтов заполняется; у других есть заполнение «все до первого 0x00».

person BlueRaja - Danny Pflughoeft    schedule 03.05.2010
comment
нет. ждать. я не имею в виду в конце данных. я имею в виду значение, которое появляется после того, как один блок был зашифрован - person calccrypto; 04.05.2010
comment
@calcrypto: после того, как блок был зашифрован, он (должен быть) неотличим от случайного мусора. Больше с ним ничего не делается - это последний шаг шифрования. Результат значительно больше из-за дополнения, добавленного перед шифрованием. - person BlueRaja - Danny Pflughoeft; 04.05.2010
comment
да, но когда вы записываете данные в файл, вы должны писать в символах ascii, верно? но поскольку на выходе может быть 1 символ, скажем, 10 символов, как вы различите каждый блок? - person calccrypto; 04.05.2010
comment
@calcrypto: Нет, вы выводите случайные биты как случайные биты. Вы не можете представить все возможные байты в ASCII. Однако иногда, когда вы хотите отправить какие-либо двоичные данные (а не только зашифрованные данные), используя старые протоколы электронной почты (или что-то еще, что не позволяет передавать произвольные двоичные данные), вы будете кодировать данные, используя какой-либо вид представления ASCII, например Base64. Однако даже в этом случае все блоки имеют одинаковый размер. - person BlueRaja - Danny Pflughoeft; 04.05.2010