(и еще 1 записям на сайте сопоставлена такая метка)
Другие метки пользователя ↓
aes asm c&c ost demoscene dune e3 old republic gary tonge hybrid - blackout md5 mta roleplay rpg star wars vkontakte vtm w40k warhammer 40000 warhammer 40000 фанфик графоманство wod xperiment бред взлом война впечатления от книг грузия имя россии книги костюм комиссара криптография маркс мир тьмы накатило некромунда нонстоп 24 обо всем и ни о чем ) осетия открытое хранение файлов песенка пешки ультраимпериализма поиски себя полевка полуночный бред реальный доллар ролевка сардукары смерть капитализму стоимость доллара тест фашизм холодное оружие
Относительно безопасный способ открытого хранения важных файлов в Сети. |
Дневник |
В свободное от работы и домашних дел время родилась идея быстрого и относительно безопасного способа хранения важных данных в интернете. Все мы уже давно привыкли к файлообменникам - очень удобный и относительно быстрый способ передачи файлов между удаленными узлами. (А в моем случае и между двумя ОС на одной машине. Увы, увидеть нормально NTFS под OpenBSD я так пока и не смог.) Естественно встает вопрос о сохранении конфиденциальности хранимой и передаваемой таким образом информации. Понятное дело, что нужен криптографический алгоритм. Вопрос только в том какой и как криптовать большие количества данных.
После беглого просмотра всех доступных алгоритмов я решил остановиться на AES (к слову сказать - это стандарт шифрования данных для правительства США. А с 256-битным ключом у них шифруются даже документы с грифом "TOP SECRET"), выбор разрядности ключа для меня не так был важен. На мой выбор повлияли 2 параметра:
1. Высокая криптостойкость.
2. Доступность реализаций алгоритма как для WinXX, так и для *nix.
В качестве реализации AES-алгоритма был выбран aescrypt вот отсюда http://www.aescrypt.com/ (не путать с aescrypt с http://aescrypt.sourceforge.net).
Плюсы реализации:
1. LGPL-лицензия.
2. Реализован для всех популярных платформ (win32, *nix, mac). Небольшую оговорочку сделаю, что для BSD-систем нужно внести незначительные коррективы в Makefile (Указать LIBC=-liconv).
3. Система работы входной_файл ---> выходной_файл.aes
4. Реализована поддержка всех размерностей ключей.
Теперь встает вопрос о массовости криптозащиты. Массовость можно обеспечить тремя способами:
1. Группу целевых файлов шифровать каждый отдельно с одним и тем же ключом.
2. Группу целевых файлов шифровать каждый отдельно с разными ключами, а ключ помещать в имя файла. Либо добавлять ключ в конец файла (например в base64-коде).
3. Помещать группу целевых файлов в архив, который шифровать с выбранным ключом.
Я лично попробовал реализовать второй вариант с AES-256. В качестве испытуемого был выбран несложный текст программы на С. В качестве ключа была выбрана md5-сумма содержимого файла (длина которой, как вы помните, всегда равняется 32 байтам, что равно 256 битам. Следовательно алгоритм шифрования AES-256). Сам файл был затем переименован так, что имя файла - это ключ. А расширение aes было спрятано под видом jpg. Согласен с возражением о том, что имя файла выдает в себе md5-сумму. Но с другой стороны - это было сделано чисто как proof-of-concept. К тому же md5-сумма в качестве имени файла может использоваться и с целью критерия проверки идентичности расшифрованного файла исходному до криптования (md5-суммы должны совпадать).
Кто хочет побаловаться с данным методом - милости прошу.
Исходный файл (программа helloworld.c) и зашифрованный посредством AESCrypt файл - http://www.onlinedisk.ru/file/295346/
AESCrypt - http://www.aescrypt.com/
md5sum (win32 console version) - http://www.etree.org/md5com.html
Метки: криптография md5 aes открытое хранение файлов |
Страницы: | [1] |