Для плагина хранения пароля (написанного на C) для Rockbox мне нужно сгенерировать векторы инициализации.
Проблема в том, что у меня нет хорошего источника случайности.Функция random (), предоставляемая Rockbox, не является криптографической ГСЧ.И у меня почти нет источников случайности, к которым я могу получить доступ (никаких движений мыши, ... на IPod, работающем с Rockbox).
Ключ в настоящее время получен через PBKDF2 из предоставленного пользователем пароля и соли(который является постоянным префиксом + некоторые данные из random ()).Я думаю, что псевдослучайные данные должны быть достаточно хороши для соли с 10000 итерациями PBKDF2.
Однако, откуда взять вектор инициализации?Это нормально, если я возьму некоторые полуслучайные данные (время + случайный ()) и SHA, скажем, 10000 раз?Должен ли я взять arc4random с начальным числом, взятым из random ()?
Нужен ли мне даже IV, если я фактически никогда не использую один и тот же ключ дважды (соль пересчитывается каждый раз при изменении сохраненных данных)?Как лучше всего справляться с подобными ситуациями?
Редактировать: Всего один пользователь (я, владелец IPod), алгоритм шифрования: AES-CBC 256 бит.Файл просто хранит список сайтов / учетных записей / паролей для различных сайтов.Он редко изменяется (всякий раз, когда я создаю новую учетную запись на веб-сайте), когда это происходит, новая соль и генерируется новый IV.