Шифрование RSA, получая плохую длину

Я думаю, что можно найти много документации о kmalloc + mmap часть. Однако я не уверен, что Вы можете kmalloc такая память непрерывным способом, и всегда иметь его в том же месте. Несомненно, если все всегда - то же, тогда Вы могли бы получить базовый адрес. Однако каждый раз, когда Вы изменяете код ядра, Вы получите различный адрес, таким образом, я не пошел бы с kmalloc решением.

я думаю, что необходимо зарезервировать некоторую память во время начальной загрузки, т.е. зарезервировать некоторую физическую память так, чтобы был, не затронут ядром. Тогда Вы можете ioremap эта память, которая даст Вам виртуальный адрес ядра, и затем Вы можете mmap это и писать хороший драйвер устройства.

Это забирает нас к драйверы устройств Linux в формате PDF. Взгляните на главу 15, она описывает эту технику на Редактировании страницы 443

: ioremap и mmap. Я думаю, что это могло бы быть легче отладить выполнение вещей в два, ступите: сначала разберитесь в ioremap и протестируйте его с помощью эксплуатации устройства посимвольного ввода-вывода, т.е. чтения-записи. Как только Вы знаете, что у Вас может безопасно быть доступ к целому ioremapped чтению использования памяти / запись, тогда Вы пробуете к mmap целый диапазон ioremapped.

И если Вы входите в проблему, может быть сообщение другой вопрос об отображении

Редактирование: remap_pfn_range ioremap возвращает virtual_adress, который необходимо преобразовать в pfn для remap_pfn_ranges. Теперь, я не понимаю точно, каков pfn (Число Страничного блока), но я думаю, что можно получить один вызов

virt_to_phys(pt) >> PAGE_SHIFT

, Это, вероятно, не Правильный Путь (TM), чтобы сделать это, но необходимо попробовать его

, необходимо также проверить, что FOO_MEM_OFFSET является физическим адресом блока RAM. Т.е. прежде чем что-либо происходит с mmu, Ваша память доступна в 0 в карте распределения памяти Вашего процессора.

50
задан blowdart 29 September 2009 в 21:42
поделиться

2 ответа

RSA encryption is only mean for small amounts of data, the amount of data you can encrypt is dependent on the size of the key you are using, for example for 1024 bit RSA keys, and PKCS # 1 V1.5 padding, you can encrypt 117 bytes at most, with a 2048 RSA key, you can encrypt 245 bytes.

There's a good reason for this, asymmetric encryption is computationally expensive. If you want to encrypt large amounts of data you should be using symmetric encryption. But what if you want non-repudiation? Well what you then do is use both. You create a symmetric key and exchange it using asymmetric encryption, then that safely exchanged symmetric key to encrypt your large amounts of data. This is what SSL and WS-Secure use underneath the covers.

69
ответ дан 7 November 2019 в 10:38
поделиться

Для будущих поисков, касающихся исключений RSA с плохой длиной...

Вы можете вычислить максимальное количество байт, которые могут быть зашифрованы с определенным размером ключа с помощью следующего:

((KeySize - 384) / 8) + 37

Однако, если параметр оптимальной подкладки асимметричного шифрования (OAEP) верен, как в исходном сообщении, то для вычисления максимального количества байт можно использовать следующее:

((KeySize - 384) / 8) + 7

Легальные размеры ключей 384 - 16384 с размером пропуска 8.

46
ответ дан 7 November 2019 в 10:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: