2010-10-04 5 views
0

У меня есть функция/библиотека, которая может быстро шифровать изображение на устройстве с низким энергопотреблением (сотовый телефон, планшет и т. Д.).Быстрое «дешевое» шифрование изображения

Мне нужно указать строку, которая может действовать как пароль для шифрования и дешифрования файла изображения.

В идеале, мне бы хотелось что-то, что сохранит формат файла изображения и просто скремблирует пиксели. Я попытался прототипировать это и не смог найти эффективный метод для этого (10-30 секунд для шифрования на ПК, сбоев на устройстве). Идея здесь - визуально показать пользователю, что их изображение было зашифровано. Я понимаю, что мне, возможно, придется подделывать эту функцию или обойтись без нее полностью.

Мне нужен файл изображения, который будет зашифрован на клиенте и отправлен на сервер, где он может храниться без беспокойства пользователя о том, кто может получить к нему доступ. Шифрование не должно быть ужасно жестким (ссылаясь на вопрос NSA). Затем файл изображения будет загружен пользователем и дешифрован с паролем.

Есть ли что-нибудь, что подходит для этого описания?

+0

Какой уровень безопасности вам нужен? Нужно ли останавливать NSA? – JoshD

+0

какое шифрование вы хотите? симметричный или нет? – Andrey

ответ

3

Я бы попробовал AES. Часто шифрование гораздо меньше шеи бутылки, чем другие шаги, такие как сжатие изображения. Но, конечно, не зная каких-либо конкретных подробностей вашей установки, сложно сделать надежные прогнозы.

+1

Я закончил работу с функциями шифрования ImageMagick, которые используют шифрование AES. У них есть сборка для iOS. –

1

RC4 алгоритм быстрый (это, в основном, операция XOR с действительно хорошим ключом сеанса) и гибкий, если вы найдете реализацию для своей платформы для мобильных телефонов. Имейте в виду, однако, что RC4 требует идеального ключа сеанса, то есть, в первую очередь, хорошего источника случайных данных. Стандарт RC4 (IIRC) имеет спецификацию для такого рандомизатора, но я не знаю, предоставляют ли все библиотеки, обеспечивающие шифрование, также функцию рандомизации.

Обратите внимание, что криптографически сильный рандомизатор не может быть заменен на обычные функции rand() или аналогичные функции.

1

Что такое шифрование изображений? вы имеете в виду Стеганографию? (Скрытие данных внутри изображений?)

или сжатие изображения? таких как PNG/GIF/Jpeg?

Если вы имеете в виду шифрование шифрования, вы можете выбрать Blowfish/RSA/DES/AES/Rijndael, которые шифруют фактические данные, составляющие изображение.

+0

это ответ? нет. – Andrey

Смежные вопросы