Этот вопрос является частью моих сомнений, изложенных в более широком вопросе об идеях реализации небольшой зашифрованной файловой системы на мобильных телефонах Java (J2ME, BlackBerry, Android).При условии получения небольшой обратной связи, учитывая плотность вопроса, я решил разделить эти сомнения на небольшие вопросы.
Итак, подведя итог, я планирую «создать» зашифрованную файловую систему для мобильных телефонов (с помощьюBoucyCastle или подмножество JCE), предоставляя API, который обеспечивает прозрачный доступ к ним.Шифрование будет выполняться на файловой основе (а не на блоках).
Мой вопрос такой:
Является ли хорошей идеей использовать для шифрования только симметричный ключ (возможно, AES-256)все файлы (их может быть не так много, может быть, десятки) и хранить этот ключ в хранилище ключей (защищенном булавкой), или вы предпочитаете шифровать каждый файл с помощью сгенерированного на лету ключа, хранящегося рядом с каждым файлом, шифрование этого ключа с помощью «главного» ключа, хранящегося в хранилище ключей?
Каковы преимущества / недостатки каждого подхода?