(и еще 244 записям на сайте сопоставлена такая метка)
Другие метки пользователя ↓
aes duel of fates dune jedi jpeg md5 rpg sith starwars vkontakte vtm w40k warhammer 40000 warhammer 40000 фанфик графоманство wod взлом война впечатления от книг грузия жизнь завоевание галактики зюганов имя россии книги коммунизм костюм комиссара криптография маркс мегастеб механист мир тьмы накатило некромунда нонстоп 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] |