Рейтинг:0

схема расположения для хранения зашифрованных файлов

флаг jp

Я работаю над небольшим хобби-проектом, чтобы лучше понять криптографию.

https://app.gitbook.com/@noojee/s/dvault/

Цель состоит в том, чтобы упростить шифрование набора файлов в «хранилище» и их расшифровку позднее.

Инструмент cli будет работать следующим образом

# сгенерировать пару ключей rsa
dvault init -p парольная фраза

#создать зашифрованное хранилище, содержащее <путь к файлу>
dvault lock <путь к файлу>

# расшифровать хранилище, восстанавливая обычный текстовый файл.
dvault unlock <путь к хранилищу> -p парольная фраза 

Парольные фразы не будут передаваться через кли, это просто иллюстрация.

Таким образом, вопрос действительно касается структуры и процесса создания хранилища.

Насколько я понимаю, iv и соль должны быть случайными, но их не нужно шифровать.

Я намерен использовать aes 256 для шифрования файлов и использовать открытый ключ rsa для шифрования ключа aes.

Чтобы зашифровать содержимое файла, я создам файл «хранилище», который содержит:

открытым текстом:

rsaIV
rsaSalt

aes256iv
aes256Соль


зашифрованные элементы:

# сгенерировать, зашифровать и сохранить aeskey с открытым ключом rsa
aesKey = генератор aesKey
encRsa[aesKey] с использованием rsaPubKey, rsa256Iv, rsa256Salt

# сгенерировать, зашифровать и сохранить macKey с помощью ключа aes
aesMacKey = поколение aesMacKey
encAes[aesMacKey] с использованием aesKey, aesIV, aesSalt


# сгенерировать, зашифровать и сохранить bodykey с помощью ключа aes
aesBodyKey = генератор aesKey
encAes[aesBodyKey] с использованием aesKey, aesIV, aesSalt

# зашифровать/сохранить файл с помощью ключа aes
encBody = encAes256[файл] с использованием aesBodyKey, aes256Iv, aes256Salt

# сгенерировать mac из зашифрованного тела 
macOfEncBody = mac[encBody]

# зашифровать, сохранить mac с помощью aes
encAes256[macOfEncBody] с использованием aesMacKey, aes256IV, aes256Salt

Здесь я использовал три ключа aes. Насколько я понимаю, ключи mac и body aes должны быть разными. Могу ли я повторно использовать основной ключ aes для шифрования тела и ключа Mac и удалить ключ тела?

https://en.wikipedia.org/wiki/Authenticated_encryption (Зашифровать Mac)

Я разделил aes IV и Salt на три ключа, это нормально или мне нужна уникальная соль / iv для каждого ключа?

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.